intellecton/venv/lib/python3.12/site-packages/PIL/__pycache__/ImageFile.cpython-312.pyc

250 lines
35 KiB
Text
Raw Normal View History

<EFBFBD>
߼j<>t<00><01><00>ddlmZddlZddlZddlZddlZddlZddlZddlm Z m
Z
m Z m Z ddl mZmZddlmZmZdZerddlmZej,e<17>Zd Z d
ZdZ d d d ddd<10>Z d)d<11>Zd*d<13>ZGd<14>de <0B>ZGd<15>dej<00>Z Gd<17>dejB<00>Z"Gd<19>de ejF<00><1B>Z$Gd<1C>d<1D>Z%d+d,d<1E>Z& d- d.d<1F>Z'd/d <20>Z(Gd!<21>d"<22>Z)Gd#<23>d$<24>Z*Gd%<25>d&e*<2A>Z+Gd'<27>d(e*<2A>Z,y)0<>)<01> annotationsN)<04>IO<49>Any<6E>
NamedTuple<EFBFBD>cast<73>)<02>ExifTags<67>Image)<02> DeferredError<6F>is_pathF)<01>StrOrBytesPathiizimage buffer overrun errorzdecoding errorz unknown errorzbad configurationzout of memory error)<05><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>i<EFBFBD><69><EFBFBD><EFBFBD>c<01><><00> tjj|<00>}|s |rdnd<02>d|<00><00>}|d|rdnd<06>d<07>z }t |<02>S#t$rtj |<00>}Y<00>EwxYw)N<>encoder<65>decoderz error z when <20>writing<6E>readingz image file)r
<00>core<72>getcodecstatus<75>AttributeError<6F>ERRORS<52>get<65>OSError)<03>errorr<00>msgs <20>P/home/antigravity/intellecton/venv/lib/python3.12/site-packages/PIL/ImageFile.py<70> _get_oserrorr Vsv<00><00> <20><13>j<EFBFBD>j<EFBFBD>'<27>'<27><05>.<2E><03> <0F>%<25><19>9<EFBFBD>5<>W<EFBFBD>U<EFBFBD>G<EFBFBD>D<><03><07>V<EFBFBD><17>I<EFBFBD>i<EFBFBD>8<> <0B> D<>D<>C<EFBFBD> <12>3<EFBFBD><<3C><17><> <1A> <20><14>j<EFBFBD>j<EFBFBD><15><1F><03> <20>s<00>A<00>A'<03>&A'<03>_Tilec<01> <00>|dS)N<><00>)<01>ts r<00> _tilesortr&as <00><00> <0C>Q<EFBFBD>4<EFBFBD>K<EFBFBD>c<01>><00>eZdZUded<ded<dZded<dZd ed
<y) r!<00>str<74>
codec_name<EFBFBD> tuple[int, int, int, int] | None<6E>extentsr<00>int<6E>offsetNztuple[Any, ...] | str | None<6E>args)<06>__name__<5F>
__module__<EFBFBD> __qualname__<5F>__annotations__r.r/r$r'rr!r!fs!<00><00><13>O<EFBFBD> -<2D>-<2D><13>F<EFBFBD>C<EFBFBD>O<EFBFBD>)-<2D>D<EFBFBD>
&<26>-r'c<01><><00><00>eZdZdZ d d<12>fd<02> Zdd<03>Zdd<04>Zdd<05>Zdd<06>Zd<13>fd<07> Z dd<08>Z
dd <09>Z d<18>fd
<EFBFBD> Z d<19>fd <0B> Z dd <0C>Zdd <0A>Zdd<0E>Zdd<0F>Zdd<10>Z<12>xZS)<1C> ImageFilez*Base class for image file format handlers.c<01>D<00><01>t<00>|<00><00>d|_d|_g|_ d|_d|_t|_||t|<01>r3t|d<04>|_ tj|<01>|_d|_n.t!t"t$|<01>|_ |<02>|nd|_d|_ |j'<00>t)|t*<00>r#|j-<00>x}r|j|<00>|j<r$|j>ddks|j>ddkr d}t;|<05><00>y#t.t0t2t4t6j8f$r}t;|<04>|<04>d}~wwxYw#t@$r(|jr|jjC<00><00>wxYw) Nrrr$<00>rbT<62>Fznot identified by this driver)"<22>super<65>__init__<5F>
_min_frame<EFBFBD>custom_mimetype<70>tile<6C>readonly<6C> decoderconfig<69>MAXBLOCK<43>decodermaxblockr <00>open<65>fp<66>os<6F>fspath<74>filename<6D> _exclusive_fprr<00>bytes<65>_open<65>
isinstance<EFBFBD> StubImageFile<6C>_load<61>
IndexError<EFBFBD> TypeError<6F>KeyError<6F>EOFError<6F>structr<00> SyntaxError<6F>mode<64>size<7A> BaseException<6F>close)<07>selfrCrF<00>loader<65>vr<00> __class__s <20>rr:zImageFile.__init__usp<00><><00> <0E><07><18><1A><1B><04><0F>+/<2F><04><1C>!#<23><04> <09>*<2A><19><04> <0A>.0<EFBFBD><04><1A>'<27><04><1C> <0C> <0C> <12>2<EFBFBD>;<3B><1A>2<EFBFBD>t<EFBFBD>n<EFBFBD>D<EFBFBD>G<EFBFBD><1E>I<EFBFBD>I<EFBFBD>b<EFBFBD>M<EFBFBD>D<EFBFBD>M<EFBFBD>!%<25>D<EFBFBD> <1E><1B>2<EFBFBD>e<EFBFBD>9<EFBFBD>b<EFBFBD>)<29>D<EFBFBD>G<EFBFBD>(0<>(<<3C>H<EFBFBD>"<22>D<EFBFBD>M<EFBFBD>!&<26>D<EFBFBD> <1E> <12> ,<2C><14>
<EFBFBD>
<EFBFBD> <0C><1D>d<EFBFBD>M<EFBFBD>2<>!%<25><1A><1A><1C>-<2D>v<EFBFBD>-<2D><1E> <0B> <0B>D<EFBFBD>)<29><18>9<EFBFBD>9<EFBFBD><04> <09> <09>!<21> <0C><01> 1<>T<EFBFBD>Y<EFBFBD>Y<EFBFBD>q<EFBFBD>\<5C>Q<EFBFBD>5F<35>5<><03>!<21>#<23>&<26>&<26>6G<01><><1B><19><18><18><16> <0C> <0C> <0E> ,<2C>"<22>!<21>n<EFBFBD>!<21>+<2B><> ,<2C><><1D> <12><13>!<21>!<21><14><07><07> <0A> <0A><0F> <11>  <12>s+<00>1AD2<00>4=E.<00>2(E+<03> E&<03>&E+<03>+E.<00>.1Fc<01><00>y<00>Nr$<00>rWs rrIzImageFile._open<65><00><00><00> r'c<01><00>|Sr\r$r]s r<00> __enter__zImageFile.__enter__<5F><00><00><00><13> r'c<01>8<00>t|dd<02>rft|jt<00>sL|j|jk7r|jj <00>tt d<03><00>|_|jr|jj <00>yy)N<>_fpFzOperation on closed image)<07>getattrrJrcr rCrV<00>
ValueErrorr]s r<00> _close_fpzImageFile._close_fp<66>sd<00><00> <12>4<EFBFBD><15><05> &<26>z<EFBFBD>$<24>(<28>(<28>M<EFBFBD>/R<><13>x<EFBFBD>x<EFBFBD>4<EFBFBD>7<EFBFBD>7<EFBFBD>"<22><14><08><08><0E><0E> <20>$<24>Z<EFBFBD>0K<30>%L<>M<>D<EFBFBD>H<EFBFBD> <0F>7<EFBFBD>7<EFBFBD> <10>G<EFBFBD>G<EFBFBD>M<EFBFBD>M<EFBFBD>O<EFBFBD> r'c<01>L<00>t|dd<02>r|j<00>d|_y)NrGF)rdrfrC<00>rWr/s r<00>__exit__zImageFile.__exit__<5F>s<00><00> <12>4<EFBFBD><1F>%<25> 0<> <10>N<EFBFBD>N<EFBFBD> <1C><16><04>r'c<01><><00><01> |j<00>d|_t
<00>|<00><00>y#t$r }tj d|<01>Yd}~<01>3d}~wwxYw)a<>
Closes the file pointer, if possible.
This operation will destroy the image core and release its memory.
The image data will be unusable afterward.
This function is required to close images that have multiple frames or
have not had their file read and closed by the
:py:meth:`~PIL.Image.Image.load` method. See :ref:`file-handling` for
more information.
NzError closing: %s)rfrC<00> Exception<6F>logger<65>debugr9rV)rWrrZs <20>rrVzImageFile.close<73>sH<00><><00> 3<> <10>N<EFBFBD>N<EFBFBD> <1C><1A>D<EFBFBD>G<EFBFBD> <0E><07> <0A><0F><><19> 3<> <12>L<EFBFBD>L<EFBFBD>,<2C>c<EFBFBD> 2<> 2<><32> 3<>s<00>)<00> A<03>A <03> Ac<01><><00>g}|j<00>}g}tjj|vrR|tjj}|r3t |t
<00>s|f}|D<00>cgc]}|j |<05>|f<02><02>}}|jtjj<00>}|r^|jtjj<00>r5|j<00>J<00>|j||jjf<02>d}|D<00>]w\}} |j<00>J<00>|jj!<00>}
|<07>|
}|j} |<08><>|jtjj<00>} | <0C><>| t#|dd<02>z } |jj%| <0C>|jtjj&<00>} t | t(<00>sJ<00>|jj+| <0A>}t-j.|<0E>} t1j2| <0B>5}ddlm} <0C>/t ||j8<00>r| g|_|j=d<02>|j?<00>|j|<0F>ddd<00><00><01>z|<07>)|j<00>J<00>|jj%|<07>|Scc}w#1swY<00><01><>xYw)N<> _exif_offsetrr)<01>TiffImagePlugin) <20>getexifr <00>Base<73>SubIFDsrJ<00>tuple<6C> _get_ifd_dict<63>get_ifd<66>IFD<46>IFD1r<00> JpegIFOffset<65>_info<66>append<6E>nextrC<00>tellrd<00>seek<65>JpegIFByteCountr-<00>read<61>io<69>BytesIOr
rBr8rp<00> TiffImageFile<6C>
_frame_pos<EFBFBD>_seek<65>load)rW<00> child_images<65>exif<69>ifds<64>subifd_offsets<74> subifd_offset<65>ifd1r.<00>ifd<66>
ifd_offset<EFBFBD>current_offsetrC<00>thumbnail_offset<65>length<74>data<74>imrps r<00>get_child_imageszImageFile.get_child_images<65>sZ<00><00><19> <0C><13>|<7C>|<7C>~<7E><04><11><04> <13>=<3D>=<3D> <20> <20>D<EFBFBD> (<28>!<21>(<28>-<2D>-<2D>"7<>"7<>8<>N<EFBFBD><1D>!<21>.<2E>%<25>8<>&4<>%6<>N<EFBFBD>*8<><12>%<25><1A>'<27>'<27> <0A>6<> <0A>F<><12><04><12><14>|<7C>|<7C>H<EFBFBD>L<EFBFBD>L<EFBFBD>-<2D>-<2D>.<2E><04> <0F>D<EFBFBD>H<EFBFBD>H<EFBFBD>X<EFBFBD>]<5D>]<5D>7<>7<>8<><17>:<3A>:<3A>)<29> )<29>)<29> <10>K<EFBFBD>K<EFBFBD><14>t<EFBFBD>z<EFBFBD>z<EFBFBD><EFBFBD><EFBFBD>/<2F> 0<><15><06>#<23> (<28>O<EFBFBD>C<EFBFBD><1A><17>7<EFBFBD>7<EFBFBD>&<26> &<26>&<26>!<21>W<EFBFBD>W<EFBFBD>\<5C>\<5C>^<5E>N<EFBFBD><15>~<7E>'<27><06><15><17><17>B<EFBFBD><12><EFBFBD>#&<26>7<EFBFBD>7<EFBFBD>8<EFBFBD>=<3D>=<3D>+E<>+E<>#F<> <20>#<23>/<2F>$<24><07><04>n<EFBFBD>a<EFBFBD>(H<>H<>$<24><18>G<EFBFBD>G<EFBFBD>L<EFBFBD>L<EFBFBD>!1<>2<> <20>W<EFBFBD>W<EFBFBD>X<EFBFBD>]<5D>]<5D>%B<>%B<>C<>F<EFBFBD>%<25>f<EFBFBD>c<EFBFBD>2<>2<>2<><1F>7<EFBFBD>7<EFBFBD><<3C><<3C><06>/<2F>D<EFBFBD><1B><1A><1A>D<EFBFBD>)<29>B<EFBFBD><16><1A><1A>B<EFBFBD><1E> (<28>2<EFBFBD>-<2D>#<23>+<2B>
<EFBFBD><16><0F>5<>5<>1<12>&0<>L<EFBFBD>B<EFBFBD>M<EFBFBD><16>H<EFBFBD>H<EFBFBD>Q<EFBFBD>K<EFBFBD><12><07><07> <09><1C>#<23>#<23>B<EFBFBD>'<27> (<28> (<28>% (<28>: <12> <1D><17>7<EFBFBD>7<EFBFBD>&<26> &<26>&<26> <10>G<EFBFBD>G<EFBFBD>L<EFBFBD>L<EFBFBD><16> <20><1B><1B><>U<12>8 (<28> (<28>s<00>'J8<04>'AJ=<05>=K c<01><><00>|jr |jS|j<00>7tjj |jj <00><00>Syr\)r<<00>formatr
<00>MIMEr<00>upperr]s r<00>get_format_mimetypezImageFile.get_format_mimetype
sD<00><00> <0F> <1F> <1F><17>'<27>'<27> '<27> <0F>;<3B>;<3B> "<22><18>:<3A>:<3A>><3E>><3E>$<24>+<2B>+<2B>"3<>"3<>"5<>6<> 6<>r'c<01><<00><01>t<00>|<00><00>|jgzSr\)r9<00> __getstate__rF)rWrZs <20>rr<>zImageFile.__getstate__s<00><><00><14>w<EFBFBD>#<23>%<25><14><1D><1D><0F>7<>7r'c<01>b<00><01>g|_t|<01>dkDr
|d|_t<00>|<00>|<01>y)N<>)r=<00>lenrFr9<00> __setstate__)rW<00>staterZs <20>rr<>zImageFile.__setstate__s-<00><><00><16><04> <09> <0E>u<EFBFBD>:<3A><01>><3E>!<21>!<21>H<EFBFBD>D<EFBFBD>M<EFBFBD> <0A><07><1C>U<EFBFBD>#r'c<01>v<00>|jr&|jr|jj<00>d|_y)zCheck file integrityN)rGrCrVr]s r<00>verifyzImageFile.verifys'<00><00>
<10> <1D> <1D>$<24>'<27>'<27> <10>G<EFBFBD>G<EFBFBD>M<EFBFBD>M<EFBFBD>O<EFBFBD><16><04>r'c<01> <00>|js|j<00> d}t|<01><00>tjj |<00>}|js|Sd|_|j xrt|j<00>dk(}|j<00>J<00>d}t|d<05>r|j}d}n|jj}t|d<07>r|j}d}n|jj}|<03>ry|jd\}}} }
t|
t<00>r|
ddf}
|dk(<00>rJt|
t <00><00>r9t|
<EFBFBD>d k\<00>r*|
d|j"k(<00>r|
dtj$v<00>r| dkr d
}t'|<01><00> ddl} t+|j <00>5} | j)| j-<00>d| j.<00> <0B>|_ddd<01>| |j0d|
dzz|j
j1<00>kDr d }t|<01><00>tj2j5|j
|j0|| |
<EFBFBD>|_d}|j8rd|j8_|jA<00>d } |j
<00>s<>|jjCtD<00><0E>tG|dd<10>}tIjJ|jd<11><00>D<00><0F>cgc]\}}tM|<10>d<00><02>c}}|_tO|j<00>D<00>]I\}\}}} }
|| <09>tjP|j"||
|jR<00>} |jU|j6|<08>|jVr0|jY|j<00>|j[d<10>d} n<>|} |j\}|dzt|j<00>kr&|j|dzj^}|| kDr|| z
} ||<14>}|s!tfrn?dt|<13><00>d<15>}t|<01><00>||z}|j[|<13>\}} |dkrn||d}<13><>|ji<00><00><01>Lg|_||_5|jm<00>|jnr&|jpr|jjs<00>d|_|j
stfs| dkr tu| d<06><16><00>tjj |<00>S#1swY<00><03>2xYw#t<tt>f$r d|_Y<00><02><>wxYwcc}}w#t`tbjdf$r}tfrYd}~<17><01>d}t|<01>|<17>d}~wwxYw#|ji<00>wxYw)z"Load image data based on tile listNzcannot load this imagerr<00> load_readF<64> load_seek<65>raw<61>zTile offset cannot be negative)<01>accesszbuffer is not large enoughr<00><01>key<65> tile_prefixr'c<01><00>|d|d|dfS)Nrrr<>r$)r=s r<00><lambda>z ImageFile.load.<locals>.<lambda>rs<00><00>T<EFBFBD>!<21>W<EFBFBD>d<EFBFBD>1<EFBFBD>g<EFBFBD>t<EFBFBD>A<EFBFBD>w<EFBFBD>,G<>r'rzimage file is truncatedzimage file is truncated (z bytes not processed)<29>r);r=<00>_imrr
r<><00>maprFr<>rC<00>hasattrr<72>r<>r<>r~rJr)rtrS<00> _MAPMODESre<00>mmaprB<00>fileno<6E> ACCESS_READrTr<00>
map_bufferr<EFBFBD><00>palette<74>dirtyr<00> ImportError<6F> load_prepare<72>sortr&rd<00> itertools<6C>groupby<62>list<73> enumerate<74> _getdecoderr?<00>setimage<67>pulls_fd<66>setfd<66>decoderAr.rMrQr<00>LOAD_TRUNCATED_IMAGES<45>cleanupr><00>load_endrG<00>!_close_exclusive_fp_after_loadingrVr )rWr<00>pixel<65>use_mmapr>r<>r~<00> decoder_namer,r.r/r<>rC<00>err_code<64>prefix<69>_<>tiles<65>ir<00>b<>
read_bytes<EFBFBD> next_offset<65>s<>e<>ns rr<>zImageFile.load#s<><00><00><14>y<EFBFBD>y<EFBFBD>T<EFBFBD>X<EFBFBD>X<EFBFBD>-<2D>*<2A>C<EFBFBD><19>#<23>,<2C> <1E><15> <0B> <0B> <20> <20><14>&<26><05><13>y<EFBFBD>y<EFBFBD><18>L<EFBFBD>%)<29><04><08><17>=<3D>=<3D>8<>S<EFBFBD><14><19><19>^<5E>q<EFBFBD>%8<><08><13>w<EFBFBD>w<EFBFBD>"<22>"<22>"<22><14><08> <13>4<EFBFBD><1B> %<25><17>><3E>><3E>D<EFBFBD><1C>H<EFBFBD><17>7<EFBFBD>7<EFBFBD><<3C><<3C>D<EFBFBD> <12>4<EFBFBD><1B> %<25><17>><3E>><3E>D<EFBFBD><1C>H<EFBFBD><17>7<EFBFBD>7<EFBFBD><<3C><<3C>D<EFBFBD> <13>26<32>)<29>)<29>A<EFBFBD>,<2C> /<2F>L<EFBFBD>'<27>6<EFBFBD>4<EFBFBD><19>$<24><03>$<24><1C>a<EFBFBD><11>|<7C><04><1C><05>%<25><1E>t<EFBFBD>U<EFBFBD>+<2B><17><04>I<EFBFBD><11>N<EFBFBD><18><11>G<EFBFBD>t<EFBFBD>y<EFBFBD>y<EFBFBD>(<28><18><11>G<EFBFBD>u<EFBFBD><EFBFBD><EFBFBD>.<2E><19>A<EFBFBD>:<3A>:<3A>C<EFBFBD>$<24>S<EFBFBD>/<2F>)<29>$<24><1F><1D>d<EFBFBD>m<EFBFBD>m<EFBFBD>,<2C>V<01><02>#'<27>9<EFBFBD>9<EFBFBD>R<EFBFBD>Y<EFBFBD>Y<EFBFBD>[<5B>!<21>D<EFBFBD>DT<44>DT<44>9<EFBFBD>#U<><04><08>V<01><1D><04> <09> <09>!<21> <0C>t<EFBFBD>A<EFBFBD>w<EFBFBD> 6<>6<><14><18><18><1D><1D><1F>H<>:<3A><03>%<25>c<EFBFBD>l<EFBFBD>*<2A>#<23>j<EFBFBD>j<EFBFBD>3<>3<><1C><08><08>$<24>)<29>)<29>\<5C>6<EFBFBD>4<EFBFBD><16>D<EFBFBD>G<EFBFBD> !<21>H<EFBFBD><1C>|<7C>|<7C>-.<2E><04> <0C> <0C>*<2A> <0A><19><19><1B><15><08><13>x<EFBFBD>x<EFBFBD> <10>I<EFBFBD>I<EFBFBD>N<EFBFBD>N<EFBFBD>y<EFBFBD>N<EFBFBD> )<29><1D>T<EFBFBD>=<3D>#<23>6<>F<EFBFBD>
!*<2A> 1<> 1<><18>I<EFBFBD>I<EFBFBD>G<>!<12><0E><1C>A<EFBFBD>u<EFBFBD><15>U<EFBFBD> <0B>B<EFBFBD><0F><0E>D<EFBFBD>I<EFBFBD> =F<01>d<EFBFBD>i<EFBFBD>i<EFBFBD><P<>- &<26>8<><01>8<>L<EFBFBD>'<27>6<EFBFBD>4<EFBFBD><14>V<EFBFBD> <0C><1F>+<2B>+<2B><18>I<EFBFBD>I<EFBFBD>|<7C>T<EFBFBD>4<EFBFBD>3E<33>3E<33><12><07>(&<26><1B>$<24>$<24>T<EFBFBD>W<EFBFBD>W<EFBFBD>g<EFBFBD>6<><1E>'<27>'<27><1F> <0A> <0A>d<EFBFBD>g<EFBFBD>g<EFBFBD>.<2E>#*<2A>><3E>><3E>#<23>#6<>q<EFBFBD>#9<><08>"<22><01>"<22>)-<2D>)=<3D>)=<3D>J<EFBFBD> <20>1<EFBFBD>u<EFBFBD>s<EFBFBD>4<EFBFBD>9<EFBFBD>9<EFBFBD>~<7E>5<>.2<EFBFBD>i<EFBFBD>i<EFBFBD><01>A<EFBFBD><05>.><3E>.E<>.E<> <0B>#.<2E><16>#7<>1<<3C>v<EFBFBD>1E<31>J<EFBFBD>><3E>$(<28><1A>$4<><01>$%<25>#8<>$)<29>),<2C>,/<2F><01>F<EFBFBD>8<EFBFBD>3H<33>)J<01>%(<28>+2<>#<23>,<2C>$6<> !<21>A<EFBFBD><05>A<EFBFBD>*1<>.<2E>.<2E><11>*;<3B>K<EFBFBD>A<EFBFBD>x<EFBFBD> <20>1<EFBFBD>u<EFBFBD> %<25> !<21>!<21>"<22><05>A<EFBFBD>=#<23>B<1C>O<EFBFBD>O<EFBFBD>%<25>[- &<26>^<17><04> <09> <20><04> <0A> <0C> <0A> <0A><0F> <0F> <1D> <1D>$<24>"H<>"H<> <10>G<EFBFBD>G<EFBFBD>M<EFBFBD>M<EFBFBD>O<EFBFBD><16><04><07><13>x<EFBFBD>x<EFBFBD> 5<>(<28>Q<EFBFBD>,<2C><1E>x<EFBFBD><15>7<> 7<><14>{<7B>{<7B><1F><1F><04>%<25>%<25>yV<01>V<01><>'<27><07><1B>=<3D>$<24>#<23>D<EFBFBD>H<EFBFBD>$<24><><0E><>4%/<2F><06> <0C> <0C>#=<3D>><3E>#8<>$)<29>*C<>C<EFBFBD>*1<>#<23>,<2C>A<EFBFBD>$=<3D><> ><3E><>2<1C>O<EFBFBD>O<EFBFBD>%<25>so<00>T<00>2S;<03> B#T<00>T*<06>B(U+<02>>T0<02>AU+<02>;T<07>T<00>T'<03>&T'<03>0U(<05> U#<05>U+<02>U#<05>#U(<05>(U+<02>+U=c<01><><00>|j<00>9tjj|j|j
<00>|_|jdk(r tjj|<00>yy)N<>P)r<>r
r<00>newrSrTr<>r<>r]s rr<>zImageFile.load_prepare<72>sM<00><00> <0F>8<EFBFBD>8<EFBFBD> <1B><1B>j<EFBFBD>j<EFBFBD>n<EFBFBD>n<EFBFBD>T<EFBFBD>Y<EFBFBD>Y<EFBFBD><04> <09> <09>:<3A>D<EFBFBD>G<EFBFBD> <0F>9<EFBFBD>9<EFBFBD><03> <1B> <11>K<EFBFBD>K<EFBFBD> <1C> <1C>T<EFBFBD> "<22> r'c<01><00>yr\r$r]s rr<>zImageFile.load_end<6E><00><00><00> r'c<01><><00>||jks4t|d<01>r |j<00>)|t|d<02>|jzk\r d}t |<02><00>|j <00>|k7S)N<> _n_frames<65>n_framesz attempt to seek outside sequence)r;r<>r<>rdrPr})rW<00>framers r<00> _seek_checkzImageFile._seek_check<63>s]<00><00> <11>D<EFBFBD>O<EFBFBD>O<EFBFBD> #<23><1D>T<EFBFBD>;<3B>/<2F>D<EFBFBD>N<EFBFBD>N<EFBFBD>4J<34><19>W<EFBFBD>T<EFBFBD>:<3A>6<><14><1F><1F>H<>H<>5<>C<EFBFBD><1A>3<EFBFBD>-<2D> <1F><13>y<EFBFBD>y<EFBFBD>{<7B>e<EFBFBD>#<23>#r'r\)rCzStrOrBytesPath | IO[bytes]rFzstr | bytes | None<6E>return<72>None<6E>r<>r<>)r<>r5<00>r/<00>objectr<74>r<>)r<>zlist[ImageFile])r<><00>
str | None)r<><00> list[Any])r<>r<>r<>r<><00>r<>zImage.core.PixelAccess | None)r<>r-r<><00>bool)r0r1r2<00>__doc__r:rIr`rfrirVr<>r<>r<>r<>r<>r<>r<>r<>r<><00> __classcell__)rZs@rr5r5rst<00><><00>4<>NR<01>6<12>,<2C>6<12>8J<38>6<12> <0A>6<12>p <0A><14><1C><17>
<18>(3<1C>j<14>8<>$<24> <17>N&<26>`#<23> <0A> $r'r5c<01>:<00>eZdZdd<01>Zej
dd<02><04>Zy)<06> StubHandlerc<01><00>yr\r$<00>rWr<>s rrBzStubHandler.open<65>r^r'c<01><00>yr\r$r<>s rr<>zStubHandler.load<61>r<>r'N)r<>rKr<>r<>)r<>rKr<><00> Image.Image)r0r1r2rB<00>abc<62>abstractmethodr<64>r$r'rr<>r<><00>s!<00><00> <0A> <09><17><17> <0A><18> r'r<>c<01>d<00>eZdZdZej
dd<02><04>Zdd<03>Zej
dd<04><04>Zy) rKz<>
Base class for stub image loaders.
A stub loader is an image loader that can identify files of a
certain format, but relies on external code to load the file.
c<01><00>yr\r$r]s rrIzStubImageFile._open<65>r<>r'c<01><><00>|j<00>}|<01>d|j<00>d<02>}t|<02><00>|j|<00>}|<03>J<00>|j|_|j
|_|j<00>S)Nzcannot find loader for this z file)rLr<>rr<>rZ<00>__dict__)rWrXr<00>images rr<>zStubImageFile.load<61>sj<00><00><15><1A><1A><1C><06> <11>><3E>0<><14><1B><1B> <0A>U<EFBFBD>C<>C<EFBFBD><19>#<23>,<2C> <1E><16> <0B> <0B>D<EFBFBD>!<21><05><14> <20> <20> <20><1E><1F><1F><04><0E><1D><0E><0E><04> <0A><14>z<EFBFBD>z<EFBFBD>|<7C>r'c<01><00>y)z (Hook) Find actual image loader.Nr$r]s rrLzStubImageFile._load<61>s<00><00> r'Nr<4E>r<>)r<>zStubHandler | None) r0r1r2r<>r<>r<>rIr<>rLr$r'rrKrK<00>s@<00><00><08> <09><17><17> <0A><18> <0A>
<1C> <09><17><17> <0A><18> r'rK)<01> metaclassc<01>p<00>eZdZUdZdZdZded<dZded<dZded<d Z d Z
dd
<EFBFBD>Z dd <0B>Z dd <0C>Z dd <0A>Zdd<0E>Zy)<14>Parserzj
Incremental image parser. This class implements the standard
feed/close consumer interface.
NzImage.Image | Noner<65>z bytes | Noner<65>z,Image.core.ImagingDecoder | PyDecoder | Nonerrc<01>*<00>|j<00>Jd<02><00>y)z<>
(Consumer) Reset the parser. Note that you can only call this
method immediately after you've created a parser; parser
instances cannot be reused.
Nzcannot reuse parsers)r<>r]s r<00>resetz Parser.reset s<00><00> <14>y<EFBFBD>y<EFBFBD> <20>8<>"8<>8<> r'c<01>6<00>|jry|j<00>||_n|j|z|_|jr<>|jdkDrmt t |j<00>|j<00>}|j|d|_|j|z
|_|jdkDs |jsy|jj |j<00>\}}|dkr(d|_d|_|dkrd|_t|d<04><05><00>y|j|d|_y|jry tj|j<00>5}tj|<05>}ddd<01>td<06>xs t|d<07>}|s<>t |j<00>dk(r<>|j<00>|jd\}}} }
g|_tj |j"||
|j$<00>|_|jj'|j(|<04>| |_|jt |j<00>kr%|j|jd|_d|_||_y#1swY<00><01>xYw#t*$rYywxYw)z<>
(Consumer) Feed data to the parser.
:param data: A string buffer.
:exception OSError: If the parser failed to parse the image file.
NrrFr<46>r<>r<>)<16>finishedr<64>rr.<00>minr<6E>r<>r<>r r<>r<>r
rBr<>r=r<>r<>rSr?r<>r<>r) rWr<><00>skipr<70>r<>rCr<><00>flag<61>d<>o<>as r<00>feedz Parser.feeds<00><00> <10>=<3D>=<3D> <12> <0F>9<EFBFBD>9<EFBFBD> <1C><1C>D<EFBFBD>I<EFBFBD><1C> <09> <09>D<EFBFBD>(<28>D<EFBFBD>I<EFBFBD> <10><<3C><<3C><13>{<7B>{<7B>Q<EFBFBD><EFBFBD><1A>3<EFBFBD>t<EFBFBD>y<EFBFBD>y<EFBFBD>><3E>4<EFBFBD>;<3B>;<3B>7<><04> <20>I<EFBFBD>I<EFBFBD>d<EFBFBD>e<EFBFBD>,<2C><04> <09>"<22>k<EFBFBD>k<EFBFBD>D<EFBFBD>0<><04> <0B><17>;<3B>;<3B><11>?<3F>$<24>)<29>)<29><1A><17><<3C><<3C>&<26>&<26>t<EFBFBD>y<EFBFBD>y<EFBFBD>1<>D<EFBFBD>A<EFBFBD>q<EFBFBD><10>1<EFBFBD>u<EFBFBD> <20><04> <09> !<21><04> <0A><14>q<EFBFBD>5<EFBFBD>!%<25>D<EFBFBD>J<EFBFBD>&<26>q<EFBFBD>%<25>8<>8<><1B><1C> <09> <09>!<21>"<22> <0A>D<EFBFBD>I<EFBFBD> <11>Z<EFBFBD>Z<EFBFBD> <11> <20><17>Z<EFBFBD>Z<EFBFBD><04> <09> <09>*<2A>(<28>b<EFBFBD><1E><1A><1A>B<EFBFBD><1E>B<EFBFBD>(<28>
<1F>r<EFBFBD>;<3B>/<2F>K<>7<EFBFBD>2<EFBFBD>{<7B>3K<33><04><1B><03>B<EFBFBD>G<EFBFBD>G<EFBFBD> <0C><01> 1<><16>O<EFBFBD>O<EFBFBD>%<25>!#<23><17><17><11><1A>J<EFBFBD>A<EFBFBD>q<EFBFBD>!<21>Q<EFBFBD> <20>B<EFBFBD>G<EFBFBD>#(<28>#4<>#4<>R<EFBFBD>W<EFBFBD>W<EFBFBD>a<EFBFBD><11>B<EFBFBD>DT<44>DT<44>#U<>D<EFBFBD>L<EFBFBD><18>L<EFBFBD>L<EFBFBD>)<29>)<29>"<22>%<25>%<25><11>3<>#$<24>D<EFBFBD>K<EFBFBD><1B>{<7B>{<7B>c<EFBFBD>$<24>)<29>)<29>n<EFBFBD>4<>$(<28>I<EFBFBD>I<EFBFBD>d<EFBFBD>k<EFBFBD>k<EFBFBD>m<EFBFBD>$<<3C><04> <09>&'<27><04> <0B><1F><04>
<EFBFBD>)(<28>(<28><><1A> <15><14> <15>s*<00>6J <00>I?<03>+J <00>?J <07>J <00> J<03>Jc<01><00>|Sr\r$r]s rr`zParser.__enter__\rar'c<01>$<00>|j<00>yr\)rVrhs rrizParser.__exit___s <00><00> <0C>
<EFBFBD>
<EFBFBD> r'c<01>,<00>|jr8|jd<01>dx|_|_|js d}t |<01><00>|j
s d}t |<01><00>|jrjt j|j<00>5} tj|<02>|_|j
j<00> ddd<02>|j
S|j
S#|j
j<00>wxYw#1swY|j
SxYw)a
(Consumer) Close the stream.
:returns: An image object.
:exception OSError: If the parser failed to parse the image file either
because it cannot be identified or cannot be
decoded.
r'Nzimage was incompletezcannot parse this image) rrr<>rrr<>r<>r<>r
rBr<>)rWrrCs rrVz Parser.closebs<><00><00> <10><<3C><<3C> <10>I<EFBFBD>I<EFBFBD>c<EFBFBD>N<EFBFBD>'+<2B> +<2B>D<EFBFBD>I<EFBFBD><04> <0C><17>=<3D>=<3D>,<2C><03><1D>c<EFBFBD>l<EFBFBD>"<22><13>z<EFBFBD>z<EFBFBD>+<2B>C<EFBFBD><19>#<23>,<2C> <1E> <0F>9<EFBFBD>9<EFBFBD><14><1A><1A>D<EFBFBD>I<EFBFBD>I<EFBFBD>&<26> &<26>"<22>&<26>!&<26><1A><1A>B<EFBFBD><1E>D<EFBFBD>J<EFBFBD><18>J<EFBFBD>J<EFBFBD>O<EFBFBD>O<EFBFBD>%<25>  &<26>
<14>z<EFBFBD>z<EFBFBD><19>t<EFBFBD>z<EFBFBD>z<EFBFBD><19><><19>J<EFBFBD>J<EFBFBD>O<EFBFBD>O<EFBFBD>%<25><>  &<26>
<14>z<EFBFBD>z<EFBFBD><19>s$<00> C?<03> C <02>%C?<03> C<<05><C?<03>?Dr<>)r<>rHr<>r<>)r<>r<>r<>)r<>r<>)r0r1r2r<><00> incrementalr<6C>r3r<>rr.rr<>rr`rirVr$r'rr<>r<><00>sS<00><00><08>
<17>K<EFBFBD> $<24>E<EFBFBD> <1D>$<24><1D>D<EFBFBD>,<2C><1D><@<40>G<EFBFBD> 9<>@<40> <0E>F<EFBFBD><10>H<EFBFBD>9<>G <20>R<14><15>r'r<>c <01><><00>|j<00>t|d<01>sd|_|jt<00><03>t t ||jddz<00>} |j<00>}|j<00>t|||||<04>t|d<07>r|j<00>yy#ttjf$r}t||||d|<05>Yd}~<05>Ld}~wwxYw)z<>Helper to save image based on tile list
:param im: Image object.
:param fp: File object.
:param tile: Tile list.
:param bufsize: Optional buffer size
<20> encoderconfigr$r<>r<00>N<>flush)r<>r<>r r<>r&<00>maxr@rTr<>r<00> _encode_tilerr<><00>UnsupportedOperation)r<>rCr=<00>bufsize<7A>fh<66>excs r<00>_saver<00>s<><00><00><07>G<EFBFBD>G<EFBFBD>I<EFBFBD> <12>2<EFBFBD><EFBFBD> '<27><1D><02><18><08>I<EFBFBD>I<EFBFBD>)<29>I<EFBFBD><1C>
<12>(<28>G<EFBFBD>R<EFBFBD>W<EFBFBD>W<EFBFBD>Q<EFBFBD>Z<EFBFBD>!<21>^<5E>4<>G<EFBFBD>7<> <0F>Y<EFBFBD>Y<EFBFBD>[<5B><02>
<EFBFBD><08><08>
<EFBFBD><14>R<EFBFBD><12>T<EFBFBD>7<EFBFBD>B<EFBFBD>/<2F><0F>r<EFBFBD>7<EFBFBD><1B>
<EFBFBD><08><08>
<EFBFBD><1C><> <1B>B<EFBFBD>3<>3<> 4<>7<><14>R<EFBFBD><12>T<EFBFBD>7<EFBFBD>D<EFBFBD>#<23>6<>6<><36>7<>s<00>/B)<00>)C<03>C<03>Cc<01><<00>|D<00>]\}}}} |dkDr|j|<08>tj|j|| |j<00>}
|
j |j |<07>|
jr%|
j|<01>|
j<00>d} nE|r- |
j|<03>dd\} } |j| <0C>| rn<17>,|<04>J<00>|
j||<03>} | dkrt| d<03><04>|<05> |
j<00><00><01>y#|
j<00>wxYw)NrrTr<54>)r~r
<00> _getencoderrSr r<>r<><00> pushes_fdr<64><00>encode_to_pyfd<66>encode<64>write<74>encode_to_filer r<>) r<>rCr=rrr<00> encoder_namer,r.r/r<00>errcoder<65>s rrr<00>s<00><00>04<30><1E>+<2B> <0C>g<EFBFBD>v<EFBFBD>t<EFBFBD> <11>A<EFBFBD>:<3A> <0E>G<EFBFBD>G<EFBFBD>F<EFBFBD>O<EFBFBD><17>#<23>#<23>B<EFBFBD>G<EFBFBD>G<EFBFBD>\<5C>4<EFBFBD><12>AQ<41>AQ<41>R<><07> <1E> <13> <1C> <1C>R<EFBFBD>U<EFBFBD>U<EFBFBD>G<EFBFBD> ,<2C><16> <20> <20><17> <0A> <0A>b<EFBFBD>!<21>!<21>0<>0<>2<>1<EFBFBD>5<><07><16><1E>(/<2F><0E><0E>w<EFBFBD>(?<3F><01><02>(C<> <0A><07><14><1A><08><08><14><0E>"<22>!<21> <1F><1E>><3E>)<29>><3E>%<25>4<>4<>R<EFBFBD><17>A<>G<EFBFBD><16><11>{<7B>"<22>7<EFBFBD>D<EFBFBD>9<>s<EFBFBD>B<><1B> <14>O<EFBFBD>O<EFBFBD> <1D>1<1E><>0 <14>O<EFBFBD>O<EFBFBD> <1D>s <00>B%D <02> Dc<01><><00>|dkry|tkr.|j|<01>}t|<02>|kr d}t|<03><00>|Sg}|}|dkDrG|jt |t<00><00>}|sn%|j |<06>|t|<06>z}|dkDr<01>Gt d<04>|D<00><00>|kr d}t|<03><00>dj|<04>S)a<>
Reads large blocks in a safe way. Unlike fp.read(n), this function
doesn't trust the user. If the requested size is larger than
SAFEBLOCK, the file is read block by block.
:param fp: File handle. Must implement a <b>read</b> method.
:param size: Number of bytes to read.
:returns: A string containing <i>size</i> bytes of data.
Raises an OSError if the file is truncated and the read cannot be completed
rr'zTruncated File Readc3<01>2K<00>|]}t|<01><00><01><00>y<00>wr\)r<>)<02>.0<EFBFBD>blocks r<00> <genexpr>z_safe_read.<locals>.<genexpr><3E>s<00><00><><00>
*<2A>%<25>3<EFBFBD>u<EFBFBD>:<3A>
*<2A>s<00>)<08> SAFEBLOCKr<4B>r<>rrr{<00>sum<75>join)rCrTr<>r<00>blocks<6B>remaining_sizer#s r<00>
_safe_readr*<00>s<><00><00> <0C>q<EFBFBD>y<EFBFBD><12> <0B>y<EFBFBD><18><11>w<EFBFBD>w<EFBFBD>t<EFBFBD>}<7D><04> <0E>t<EFBFBD>9<EFBFBD>t<EFBFBD> <1B>'<27>C<EFBFBD><19>#<23>,<2C> <1E><13> <0B><1C>F<EFBFBD><19>N<EFBFBD>
<18>1<EFBFBD>
<1C><12><07><07><03>N<EFBFBD>I<EFBFBD>6<>7<><05><14> <11><0E> <0A> <0A>e<EFBFBD><1C><16>#<23>e<EFBFBD>*<2A>$<24><0E> <19>1<EFBFBD>
<1C>  <0B>
*<2A>6<EFBFBD>
*<2A>*<2A>T<EFBFBD>1<>#<23><03><15>c<EFBFBD>l<EFBFBD><1A> <0E>8<EFBFBD>8<EFBFBD>F<EFBFBD> <1B>r'c<01><00>eZdZdd<01>Zdd<02>Zy)<06> PyCodecStatec<01><<00>d|_d|_d|_d|_y)Nr)<04>xsize<7A>ysize<7A>xoff<66>yoffr]s rr:zPyCodecState.__init__<5F>s<00><00><16><04>
<EFBFBD><16><04>
<EFBFBD><15><04> <09><15><04> r'c<01><><00>|j|j|j|jz|j|jzfSr\)r0r1r.r/r]s rr,zPyCodecState.extents<74>s3<00><00><13>y<EFBFBD>y<EFBFBD>$<24>)<29>)<29>T<EFBFBD>Y<EFBFBD>Y<EFBFBD><14><1A><1A>%;<3B>T<EFBFBD>Y<EFBFBD>Y<EFBFBD><14><1A><1A>=S<>S<>Sr'Nr<4E>)r<>ztuple[int, int, int, int])r0r1r2r:r,r$r'rr,r,<00>s <00><00><16> Tr'r,c<01>N<00>eZdZUded<d d<03>Zd
d<04>Zd d<05>Zd d<06>Z d dd<08>Zy)<0F>PyCodeczIO[bytes] | None<6E>fdc<01>n<00>d|_t<00>|_d|_||_|j |<02>yr\)r<>r,r<>r5rS<00>init)rWrSr/s rr:zPyCodec.__init__<5F>s+<00><00>15<31><04><07>!<21>^<5E><04>
<EFBFBD><16><04><07><18><04> <09> <0C> <09> <09>$<24>r'c<01><00>||_y)z<>
Override to perform codec specific initialization
:param args: Tuple of arg items from the tile entry
:returns: None
N)r/rhs rr7z PyCodec.init<69>s <00><00><19><04> r'c<01><00>y)zT
Override to perform codec specific cleanup
:returns: None
Nr$r]s rr<>zPyCodec.cleanups<00><00> r'c<01><00>||_y)z<>
Called from ImageFile to set the Python file-like object
:param fd: A Python file-like object
:returns: None
N)r5)rWr5s rr<>z PyCodec.setfd s <00><00><15><04>r'Nc<01>D<00>||_|r<>|\}}}}|dks=|dks8||jjdkDs||jjdkDr d}t|<07><00>||j_||j_||z
|j_||z
|j_n7|jj\|j_|j_|jj dks|jjdkr d}t|<07><00>y)z<>
Called from ImageFile to set the core output image for the codec
:param im: A core image object
:param extents: a 4 tuple of (x0, y0, x1, y1) defining the rectangle
for this tile
:returns: None
rrz Tile cannot extend outside imagezSize must be positiveN)r<>rTrer<>r0r1r.r/)rWr<>r,<00>x0<78>y0<79>x1<78>y1rs rr<>zPyCodec.setimages<><00><00><15><04><07> <12>$<24>N<EFBFBD>B<EFBFBD><02>B<EFBFBD><02><11>A<EFBFBD>v<EFBFBD><12>a<EFBFBD><16>2<EFBFBD><04><07><07> <0C> <0C>Q<EFBFBD><0F>#7<>2<EFBFBD><04><07><07> <0C> <0C>Q<EFBFBD><0F>;O<>8<><03> <20><13>o<EFBFBD>%<25> <20>D<EFBFBD>J<EFBFBD>J<EFBFBD>O<EFBFBD> <20>D<EFBFBD>J<EFBFBD>J<EFBFBD>O<EFBFBD>!<21>B<EFBFBD>w<EFBFBD>D<EFBFBD>J<EFBFBD>J<EFBFBD> <1C>!<21>B<EFBFBD>w<EFBFBD>D<EFBFBD>J<EFBFBD>J<EFBFBD> <1C>15<31><17><17><1C><1C> .<2E>D<EFBFBD>J<EFBFBD>J<EFBFBD> <1C>d<EFBFBD>j<EFBFBD>j<EFBFBD>.<2E> <0F>:<3A>:<3A> <1B> <1B>q<EFBFBD> <20>D<EFBFBD>J<EFBFBD>J<EFBFBD>$4<>$4<><01>$9<>)<29>C<EFBFBD><1C>S<EFBFBD>/<2F> !<21>%:r')rSr)r/rr<>r<>)r/<00>tuple[Any, ...]r<>r<>r<>)r5<00> IO[bytes]r<>r<>r\)r<>zImage.core.ImagingCorer,r+r<>r<>) r0r1r2r3r:r7r<>r<>r<>r$r'rr4r4<00>sB<00><00><18><18><18><19> <0A><15>59<35>!"<22> "<22>!"<22>2<>!"<22>
<0E> !"r'r4c<01>H<00>eZdZdZdZedd<03><04>Zdd<04>Z d d
d<06>Zy) <0B> PyDecoderz<72>
Python implementation of a format decoder. Override this class and
add the decoding logic in the :meth:`decode` method.
See :ref:`Writing Your Own File Codec in Python<file-codecs-py>`
Fc<01><00>|jSr\)<01> _pulls_fdr]s rr<>zPyDecoder.pulls_fdCs <00><00><13>~<7E>~<7E>r'c<01><00>d}t|<02><00>)a=
Override to perform the decoding process.
:param buffer: A bytes object with the data to be decoded.
:returns: A tuple of ``(bytes consumed, errcode)``.
If finished with decoding return -1 for the bytes consumed.
Err codes are from :data:`.ImageFile.ERRORS`.
zunavailable in base decoder<65><01>NotImplementedError)rW<00>bufferrs rr<>zPyDecoder.decodeG<00><00><00>,<2C><03>!<21>#<23>&<26>&r'Nc<01>^<00>|s |j}tj|jd||<03>}|j<00>J<00>|j |j|j
j <00><00>|j|<01>}|ddk\r d}t|<06><00>|ddk7r d}t|<06><00>y)aS
Convenience method to set the internal image from a stream of raw data
:param data: Bytes to be set
:param rawmode: The rawmode to be used for the decoder.
If not specified, it will default to the mode of the image
:param extra: Extra arguments for the decoder.
:returns: None
r<>Nrznot enough image datarzcannot decode image data) rSr
r<>r<>r<>r<>r,r<>re)rWr<><00>rawmode<64>extrarr<>rs r<00>
set_as_rawzPyDecoder.set_as_rawSs<><00><00><17><1A>i<EFBFBD>i<EFBFBD>G<EFBFBD> <11> <1D> <1D>d<EFBFBD>i<EFBFBD>i<EFBFBD><15><07><15> ?<3F><01><13>w<EFBFBD>w<EFBFBD>"<22>"<22>"<22> <09>
<EFBFBD>
<EFBFBD>4<EFBFBD>7<EFBFBD>7<EFBFBD>D<EFBFBD>J<EFBFBD>J<EFBFBD>.<2E>.<2E>0<>1<> <0A>H<EFBFBD>H<EFBFBD>T<EFBFBD>N<EFBFBD><01> <0C>Q<EFBFBD>4<EFBFBD>1<EFBFBD>9<EFBFBD>)<29>C<EFBFBD><1C>S<EFBFBD>/<2F> !<21> <0C>Q<EFBFBD>4<EFBFBD>1<EFBFBD>9<EFBFBD>,<2C>C<EFBFBD><1C>S<EFBFBD>/<2F> !<21> r'<00>r<>r<>)rIz$bytes | Image.SupportsArrayInterfacer<65><00>tuple[int, int])Nr$)r<>rHrLr<>rMr@r<>r<>) r0r1r2r<>rE<00>propertyr<79>r<>rNr$r'rrCrC9sQ<00><00><08><16>I<EFBFBD> <0A><1E><0E><1E>
'<27>QS<01>"<22><19>"<22>$.<2E>"<22>>M<>"<22> <0A>"r'rCc<01>><00>eZdZdZdZedd<03><04>Zd d<04>Zd
d<05>Zd d<06>Z y) <0C> PyEncoderz<72>
Python implementation of a format encoder. Override this class and
add the decoding logic in the :meth:`encode` method.
See :ref:`Writing Your Own File Codec in Python<file-codecs-py>`
Fc<01><00>|jSr\)<01>
_pushes_fdr]s rrzPyEncoder.pushes_fdys <00><00><13><EFBFBD><EFBFBD>r'c<01><00>d}t|<02><00>)a 
Override to perform the encoding process.
:param bufsize: Buffer size.
:returns: A tuple of ``(bytes encoded, errcode, bytes)``.
If finished with encoding return 1 for the error code.
Err codes are from :data:`.ImageFile.ERRORS`.
zunavailable in base encoderrG)rWrrs rrzPyEncoder.encode}rJr'c<01><><00>|jsy|jd<02>\}}}|r)|j<00>J<00>|jj|<03>||fS)z<>
If ``pushes_fd`` is ``True``, then this method will be used,
and ``encode()`` will only be called once.
:returns: A tuple of ``(bytes consumed, errcode)``.
Err codes are from :data:`.ImageFile.ERRORS`.
)rrr)rrr5r)rW<00>bytes_consumedrr<>s rrzPyEncoder.encode_to_pyfd<66>sP<00><00><14>~<7E>~<7E><18>(,<2C> <0B> <0B>A<EFBFBD><0E>%<25><0E><07><14> <0F><17>7<EFBFBD>7<EFBFBD>&<26> &<26>&<26> <10>G<EFBFBD>G<EFBFBD>M<EFBFBD>M<EFBFBD>$<24> <1F><1D>w<EFBFBD>&<26>&r'c<01><><00>d}|dk(r9|j|<02>\}}}|dkDrtj|||d<00>|dk(r<01>9|S)z<>
:param fh: File handle.
:param bufsize: Buffer size.
:returns: If finished successfully, return 0.
Otherwise, return an error code. Err codes are from
:data:`.ImageFile.ERRORS`.
rN)rrDr)rWrrr<00>status<75>bufs rrzPyEncoder.encode_to_file<6C>sP<00><00><14><07><15><11>l<EFBFBD>#'<27>;<3B>;<3B>w<EFBFBD>#7<> <20>F<EFBFBD>G<EFBFBD>S<EFBFBD><15><01>z<EFBFBD><12><08><08><12>S<EFBFBD><16><17>\<5C>*<2A><16><11>l<EFBFBD><17>r'NrO)rr-r<>ztuple[int, int, bytes])r<>rP)rr-rr-r<>r-)
r0r1r2r<>rUrQrrrrr$r'rrSrSos/<00><00><08><17>J<EFBFBD> <0A><1F><0E><1F>
'<27>'<27> r'rS)rr-rr<>r<>r)r%r!r<>r-)r)
r<EFBFBD>r<>rCrAr=<00> list[_Tile]rr-r<>r<>r\)r<>r<>rCrAr=r\rr-rz
int | NonerzBaseException | Noner<65>r<>)rCrArTr-r<>rH)-<2D>
__future__rr<>r<>r<><00>loggingrDrQ<00>typingrrrrr8r r
<00>_utilr r <00> TYPE_CHECKING<4E>_typingr <00> getLoggerr0rlr@r%r<>rr r&r!r5<00>ABCr<43><00>ABCMetarKr<>rrr*r,r4rCrSr$r'r<00><module>rfs_<00><01>:#<23>
<EFBFBD> <09><10><0E> <09> <0A>,<2C>,<2C><1D>)<29><15> <0A><10>'<27> <1A><17> <1A> <1A>8<EFBFBD> $<24><06> <10><08> <04> <18> <09><1D><15>N<> %<25><18><17><1B><1D> 
<02><06><04><18><10>
.<2E>J<EFBFBD>.<2E>b$<24><05> <0B> <0B>b$<24>J  <0A>#<23>'<27>'<27> <0A> <0A>I<EFBFBD><13><1B><1B> <0A><@<1A>@<1A>L<13>D!%<25> <1E><13> <1E><11> <1E> <16> <1E><11> <1E>
<13> <1E>
<1E> <1E>
<EFBFBD> <1E>F <1C>FT<01>T<01>E"<22>E"<22>P3"<22><07>3"<22>l8<17><07>8r'