Files
intellecton/venv/lib/python3.12/site-packages/PIL/__pycache__/PngImagePlugin.cpython-312.pyc
T

251 lines
62 KiB
Plaintext
Raw Normal View History

Ë
ß¼jÊãóª—ddlmZddlZddlZddlZddlZddlZddlZddlm Z ddl
m Z ddl m
Z
mZmZddlmZmZmZmZmZddlmZdd lmZdd
lmZdd lmZdd lmZdd
l m!Z!ddl"m#Z#dZ$e$rddl%m&Z&ddl m'Z'm(Z(ddlm)Z)ejTe+«Z,ejZd«j\Z/dZ0dddddddddddd d!d"d#d$œZ1ejZd%«Z2ejfZ4 d&e4zZ5 Gd'„d(e «Z6Gd)„d*e «Z7dWd+„Z8dXdYd,„Z9Gd-„d.«Z:Gd/„d0e;«Z<Gd1„d2«Z=Gd3„d4e«Z>Gd5„d6e:«Z?dZd7„Z@Gd8„d9ej&«ZAd:d;d<d=d>d?d@d@d@dAdBdCdDdEdFdGœZBd[dH„ZCGdI„dJ«ZDGdK„dL«ZEd\dM„ZFGdN„dOe«ZG d]dP„ZHd^dQ„ZIeCdf d_dR„ZJd`dS„ZKej˜eAjšeAe@«ejœeAjšeJ«ejžeAjšeI«ej eAjšdTdUg«ej¢eAjšdV«y)aé)Ú annotationsN)ÚIntEnum)ÚFraction)ÚIOÚ
NamedTupleÚcasté)ÚImageÚ
ImageChopsÚ ImageFileÚ ImagePaletteÚ
ImageSequence)Úi16be)Úi32be)Úo8)Úo16be)Úo32be)Ú deprecate)Ú
DeferredErrorF)ÚCallable)ÚAnyÚNoReturn)Ú_imagings\w\w\w\ws‰PNG

)Ú1r)ÚLúL;2)rúL;4)rr)úI;16úI;16B)ÚRGBr )r zRGB;16B)ÚPúP;1)r!úP;2)r!úP;4)r!r!)ÚLAr%)ÚRGBAzLA;16B)r&r&)r&zRGBA;16B))r r)ér)ér)ér)ér)r)r')r*r')r é)r'r+)r(r+)r)r+)r)r()r*r()r)é)r*r,s^ÿ*ÿ*$é@có—eZdZdZ dZ dZy)ÚDisposalrr r'N)Ú__name__Ú
__module__Ú __qualname__ÚOP_NONEÚ
OP_BACKGROUNDÚ OP_PREVIOUS©óúU/home/antigravity/intellecton/venv/lib/python3.12/site-packages/PIL/PngImagePlugin.pyr/r/ns$„Ø€Gðð€Mðð
€Kðr7r/có—eZdZdZ dZy)ÚBlendrr N)r0r1r2Ú OP_SOURCEÚOP_OVERr6r7r8r:r:ƒs„Ø€Iðð
€Gðr7r:cóŒ—tj«}|j|t«}|jr
d}t |«‚|S)Nz=Decompressed data too large for PngImagePlugin.MAX_TEXT_CHUNK)ÚzlibÚ
decompressobjÚ
decompressÚMAX_TEXT_CHUNKÚunconsumed_tailÚ
ValueError)ÚsÚdobjÚ plaintextÚmsgs r8Ú_safe_zlib_decompressrH‘s>€Ü × Ñ Ó €DØ—‘ ¤>Ó2€IØ ×ÒØMˆÜ˜‹oÐØ Ðr7có4—tj||«dzS)Nlÿÿ)r>Úcrc32)ÚdataÚseeds r8Ú_crc32rMšs€Ü �:‰:�d˜DÓ ! JÑ .Ð.r7có^—eZdZd d„Zd
d„Zdd„Zdd„Zdd„Zdd„Zdd„Z dd„Z
dd „Z ddd
„Z y )Ú ChunkStreamcó —||_g|_y©N)ÚfpÚqueue)ÚselfrRs r8Ú__init__zChunkStream.__init__£s€Ø$&ˆŒØ:<ˆ�
r7có¬—d}|j€J‚|jr:|jj«\}}}|jj|«nE|jj d«}|dd}|jj «}t
|«}t|«s*tjsdt|«›d�}t|«‚|||fS)z.Fetch a new chunk. Returns header information.Nr)r(zbroken PNG file (chunk ú)) rRrSÚpopÚseekÚreadÚtellÚi32Úis_cidr ÚLOAD_TRUNCATED_IMAGESÚreprÚ SyntaxError)rTÚcidÚposÚlengthrDrGs r8rZzChunkStream.read§s³€àˆà�w‰wÐ"Ð"Ð"Ø �:Š:Ø#Ÿz™zŸ~™~Ó/Ñ ˆC��fØ �G‰G�L‰L˜Õ à—‘— ‘ ˜Q“ˆAØ�A�B�%ˆCØ—'‘'—,‘,“.ˆCܘ“VˆFä�cŒ{Ü×2Ò2Ø/´°S³ ¨{¸!Ð<�Ü! #Ó&Ð&à�C˜ÐÐr7có—|SrQr6©rTs r8Ú __enter__zChunkStream.__enter__¼s€Øˆ r7có$—|j«yrQ)Úclose)rTÚargss r8Ú__exit__zChunkStream.__exit__¿s €Ø �
‰
� r7có —dx|_|_yrQ)rSrRres r8rhzChunkStream.closeÂs€Ø#Ð#ˆŒ
�T•Wr7có\—|j€J‚|jj|||f«yrQ)rSÚappend©rTrarbrcs r8ÚpushzChunkStream.pushÅs+€Ø�z‰zÐ%Ð%Ð%Ø �
‰
×ј3  VÐ,Õ-r7có|—tjd|||«t|d|jd«›�«||«S)z"Call the appropriate chunk handlerzSTREAM %r %s %sÚchunk_Úascii)ÚloggerÚdebugÚgetattrÚdecoderns r8ÚcallzChunkStream.callÉs>€ô � ‰ Ð&¨¨S°&Ô9Ø<Œw�t˜v c§j¡j°Ó&9Ð%:Ð;Ó<¸SÀ&ÓIÐIr7cóš—tjr|ddz dzr|j||«y|j€J‚ t |t |««}t |jj
d««}||k7rdt|«›d�}t|«‚y#tj$r }dt|«›d�}t|«|‚d}~wwxYw) zRead and verify checksumrér Nr(z(broken PNG file (bad header checksum in rWz(broken PNG file (incomplete checksum in ) r r^Úcrc_skiprRrMr\rZr_r`ÚstructÚerror)rTrarKÚcrc1Úcrc2rGÚes r8ÚcrczChunkStream.crcÏsÅ€ô × *Ò *°°A±¸!± ¸a²Ø �M‰M˜#˜tÔ $Ø à�w‰wÐ"Ð"Ð"ð *ܘ$¤ s£ Ó,ˆDÜ�t—w‘w—|‘| A“Ó'ˆDØ�tŠ|Ø@ÄÀcÃÀ È1ÐM�Ü! #Ó&Ð&ðøô�|‰|ò *Ø<¼TÀ#»Y¸KÀqÐIˆCܘcÓ"¨Ð )ûð *ús¾ABÂC
Â*CÃC
cóV—|j€J‚|jjd«y)z
Read checksumNr()rRrZ)rTrarKs r8rzzChunkStream.crc_skipäs#€ð�w‰wÐ"Ð"Ð"Ø �‰� ‰ �Q�r7có4—g}|j€J‚ |j«\}}}||k(r |S|j |t
j|j|««|j|«Œ_#tj$r}d}t |«|‚d}~wwxYw)Nztruncated PNG file) rRrZr{r|ÚOSErrorr€r Ú
_safe_readrm)rTÚendchunkÚcidsrarbrcrrGs r8ÚverifyzChunkStream.verifyêsŸ€ðˆà�w‰wÐ"Ð"Ð"Øð
*Ø#'§9¡9£;Ñ ��S˜&ð
�hŠØðˆ ð
�H‰H�Sœ)×.Ñ.¨t¯w©w¸Ó?Ô @Ø �K‰K˜Ô ðøô—<‘<ò
*Ø*�ܘc“l¨Ð)ûð
*ús“A1Á1BÂBÂBN©rRú IO[bytes]ÚreturnÚNone)rŠztuple[bytes, int, int])rŠrO)riÚobjectrŠr‹©rŠr‹)raÚbytesrbÚintrcr�rŠr‹)rarŽrbr�rcr�rŠrŽ)rarŽrKrŽrŠr‹)óIEND)r…rŽrŠz list[bytes])
r0r1r2rUrZrfrjrhrorwr€rzr‡r6r7r8rOrO¢s5„ó=ó ó*óó$ó.óJó *ó*õ r7rOcóJ—eZdZUdZded<ded<e d dd„«Zy) ÚiTXtzq
Subclass of string to allow iTXt chunks to look like strings while
keeping their extra information
zstr | bytes | NoneÚlangÚtkeyNcóN—tj||«}||_||_|S)zÇ
:param cls: the class to use when creating the instance
:param text: value for this key
:param lang: language code
:param tkey: UTF-8 version of the key name
)ÚstrÚ__new__r“r”)ÚclsÚtextr“r”rTs r8r—z iTXt.__new__
s'€ô�{‰{˜3 Ó%ˆØˆŒ ؈Œ ؈ r7)NN)r™r–r“ú
str | Noner”ršrŠr’)r0r1r2Ú__doc__Ú__annotations__Ú staticmethodr—r6r7r8r’r’sJ…ñð ÓØ
ÓààDHð
Øð
Ø(ð
Ø7Að
à
ò
óñ
r7r’cób—eZdZdZdd„Zdd d„Z d
d d„Z d d d„Zy)
ÚPngInfoz<
PNG chunk container (for use with save(pnginfo=))
có—g|_yrQ)Úchunksres r8rUzPngInfo.__init__!s €Ø79ˆ� r7có@—|jj|||f«y)a"Appends an arbitrary chunk. Use with caution.
:param cid: a byte string, 4 bytes long.
:param data: a byte string of the encoded data
:param after_idat: for use with private chunks. Whether the chunk
should be written after IDAT
N)r¡rm)rTrarKÚ
after_idats r8Úaddz PngInfo.add$s€ð
� ‰ ×јC  zÐ2Õ3r7cóЗt|t«s|jdd«}t|t«s|jdd«}t|t«s|jdd«}t|t«s|jdd«}|r8|jd|dz|zdz|zdzt j
|«z«y|jd|dz|zdz|zdz|z«y) zùAppends an iTXt chunk.
:param key: latin-1 encodable text key name
:param value: value for this key
:param lang: language code
:param tkey: UTF-8 version of the key name
:param zip: compression flag
úlatin-1Ústrictúutf-8óiTXtsósN)Ú
isinstancerŽÚencoder¤r>Úcompress)rTÚkeyÚvaluer“r”Úzips r8Úadd_itxtzPngInfo.add_itxt0sÖ€ô$˜#œuÔ%Ø—*‘*˜Y¨Ó1ˆCܘ%¤Ô'Ø—L‘L ¨(Ó3ˆEܘ$¤Ô&Ø—;‘;˜w¨Ó1ˆDܘ$¤Ô&Ø—;‘;˜w¨Ó1ˆDá Ø �H‰HØØ�kÑ! DÑ(¨5Ñ0°4Ñ7¸%Ñ?Ä$Ç-Á-ÐPUÓBVÑVõ
ð
�H‰H�W˜c I™o°Ñ4°uÑ<¸tÑCÀeÑKÈeÑSÕ Tr7có—t|t«rL|j|||j� |jnd|j�|j|¬«Sd|¬«St|t
«s |j
dd«}t|t
«s|j
dd«}|r,|jd|dztj|«z«y|jd|d z|z«y#t$r|j|||¬«cYSwxYw)
zæAppends a text chunk.
:param key: latin-1 encodable text key name
:param value: value for this key, text or an
:py:class:`PIL.PngImagePlugin.iTXt` instance
:param zip: compression flag
Nr7)r°r¦r§ózTXtóótEXtrª) r«r’r±r“r”rŽr¬Ú UnicodeErrorr¤r>r­)rTr®r¯r°s r8Úadd_textzPngInfo.add_textSs€ô �eœTÔ "Ø—=‘=ØØØ#Ÿj™jÐ4�—
’
¸#Ø#Ÿj™jÐ4�—
‘
Øð !óð
ð;>Øð !óð
ô˜%¤Ô'ð
:ØŸ ™  Y°Ó9�ô˜#œuÔ%Ø—*‘*˜Y¨Ó1ˆCá Ø �H‰H�W˜c G™m¬d¯m©m¸EÓ.BÑBÕ Cà �H‰H�W˜c E™k¨EÑ1Õ 2øô ò
:Ø—}‘} S¨%°S�}Ó9Ò9ð
:úsÁ.C)Ã)D ÄD Nr�©F)rarŽrKrŽr£ÚboolrŠr‹)ÚrºF) r®ú str | bytesr¯r»r“r»r”r»r°r¹rŠr‹)r®r»r¯zstr | bytes | iTXtr°r¹rŠr‹)r0r1r2r›rUr¤r±r·r6r7r8rŸrŸs�„ñó
:ô
4ð ØØð
!Uà
ð!Uðð!Uðð !Uð
ð !Uð ð
!Uð
ó!UðHHMð!3Øð!3Ø'9ð!3Ø@Dð!3à
ô!3r7rŸcó,—eZdZUded<ded<ded<y)Ú _RewindStatez dict[str | tuple[int, int], Any]Úinfozlist[ImageFile._Tile]Útilez
int | NoneÚseq_numN©r0r1r2rœr6r7r8r½r½{s…Ø
*Ó*Ø
ÓØ
Ôr7r½cóÀ‡—eZdZdˆfd„ Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Z dd„Z
dd „Z dd
„Z dd „Z
dd „Zdd
„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„ZˆxZS)Ú PngStreamcóÔ•—t‰|�|«i|_i|_d|_d|_g|_d|_d|_d|_ d|_
tigd«|_ d|_
y)N©rrrºr)ÚsuperrUÚim_infoÚim_textÚim_sizeÚim_modeÚim_tileÚ
im_paletteÚim_custom_mimetypeÚ im_n_framesÚ_seq_numr½Ú rewind_stateÚ text_memory)rTrRÚ __class__s €r8rUzPngStream.__init__‚slø€Ü
‰Ñ˜Ôð:<ˆŒ Ø.0ˆŒ ؈Œ ؈Œ Ø.0ˆŒ Ø48ˆŒØ.2ˆÔØ'+ˆÔØ$(ˆŒ
Ü(¨¨R°Ó6ˆÔàˆÕr7cóŠ—|xj|z
c_|jtkDrd|j›d�}t|«‚y)Nz%Too much memory used in text chunks: z>MAX_TEXT_MEMORY)rÑÚMAX_TEXT_MEMORYrC)rTÚchunklenrGs r8Úcheck_text_memoryzPngStream.check_text_memory“sN€Ø ×Ò˜HÑ$ÕØ × Ñ œoÒ -à7Ø×#Ñ#Ð$Ð$4ð6ð
ô˜S“/Ð !ð .r7có€—t|jj«|j|j«|_yrQ)r½rÇÚcopyrËrÏrÐres r8Ú save_rewindzPngStream.save_rewindœs-€Ü(Ø �L‰L× Ñ Ó Ø �L‰LØ �M‰Mó
ˆÕr7có—|jjj«|_|jj|_|jj |_yrQ)rÐr¾rØrÇr¿rËrÀrÏres r8ÚrewindzPngStream.rewind£sD€Ø×(Ñ(×-Ñ-×2Ñ2Ó4ˆŒ Ø×(Ñ(×-Ñ-ˆŒ Ø×)Ñ)×1Ñ1ˆ�
r7cóÒ—|j€J‚tj|j|«}|jd«}tj d|d|«||dz}tj d|«|dk7rd|›d�}t
|«‚ t||dzd«}||jd <|S#t$rtjrd}n‚YŒ0tj$rd}YŒFwxYw)
NrªziCCP profile name %rr zCompression method %srúUnknown compression method z in iCCP chunkr'Ú icc_profile)
rRr r„Úfindrsrtr`rHrCr^r>r|rÇ)rTrbrcrDÚiÚ comp_methodrGrÞs r8Ú
chunk_iCCPzPngStream.chunk_iCCP¨sñ€à�w‰wÐ"Ð"Ð"Ü × Ñ  §¡¨&Ó 1ˆð
�F‰F�5‹MˆÜ� ‰ Ð+¨Q¨r°¨UÔ3ؘ˜A™‘hˆ Ü� ‰ Ð,¨kÔ:Ø ˜!Ò Ø/° ¨}¸NÐKˆCܘcÓ"Ð "ð Ü/°°!°a±%°'°
Ó;ˆKð'2ˆ� ‰ �]Ñ#؈øôò Ü×.Ò.Ø"‘ àñô�z‰zò ØŠKð úsÂB0Â0C&ÃC&Ã%C&cóŒ—|j€J‚tj|j|«}|dkrtjr|Sd}t |«‚t |d«t |d«f|_ t|d|df\|_|_ |drd|jd <|d
r
d }t|«‚|S#t$rYŒ3wxYw) Né
zTruncated IHDR chunkrr(r)é é r Ú interlaceé zunknown filter category)
rRr r„r^rCr\rÉÚ_MODESrÊÚ
im_rawmodeÚ ExceptionrÇr`©rTrbrcrDrGs r8Ú
chunk_IHDRzPngStream.chunk_IHDRÄsÏ€à�w‰wÐ"Ð"Ð"Ü × Ñ  §¡¨&Ó 1ˆØ �BŠ;Ü×.Ò.Ø�Ø(ˆCܘS“/Ð !ܘ1˜a“y¤# a¨£)Ð+ˆŒ ð Ü,2°A°a±D¸!¸A¹$°<Ñ,@Ñ )ˆDŒL˜$œ/ð
ˆRŠ5Ø()ˆD�L‰L˜Ñ %Ø ˆRŠ5Ø+ˆCܘcÓ"Ð "؈øôò Ù ð úsÁ1B7Â7 CÃCcóL—d|jvr1tjd|jd||j«g}nK|j�d|jd<tjdd|j
z||j«g}||_||_d}t|«‚)NÚbboxr°TÚ
default_imagerÅzimage data found) rÇr Ú_TilerêrÎrÉrËÚim_idatÚEOFError)rTrbrcr¿rGs r8Ú
chunk_IDATzPngStream.chunk_IDATÙs�€à �T—\‘\Ñ !Ü—O‘O E¨4¯<©<¸Ñ+?ÀÀdÇoÁoÓVÐW‰Dà×ÑÐ+Ø04�— ‘ ˜_Ñ-Ü—O‘O E¨6°D·L±LÑ+@À#ÀtÇÁÓWÐXˆD؈Œ ؈Œ Ø ˆÜ�s‹mÐr7có—d}t|«‚)Nzend of PNG image)ró)rTrbrcrGs r8Ú
chunk_IENDzPngStream.chunk_IENDæs€Ø ˆÜ�s‹mÐr7có’—|j€J‚tj|j|«}|jdk(r d|f|_|S)Nr!r )rRr r„rÊrÌ©rTrbrcrDs r8Ú
chunk_PLTEzPngStream.chunk_PLTEêsD€à�w‰wÐ"Ð"Ð"Ü × Ñ  §¡¨&Ó 1ˆØ �<‰<˜3Ò Ø# Q˜hˆDŒO؈r7có@—|j€J‚tj|j|«}|jdk(rMtj |«r'|j
d«}|dk\r ||jd<|S||jd<|S|jdk(rt|«rdnd|jd<|S|jdvrt|«|jd<|S|jdk(r/t|«t|d «t|d
«f|jd<|S) Nr!rªrÚ transparencyréÿ)rrr r'r() rRr r„rÊÚ_simple_paletteÚmatchrßrÇÚi16)rTrbrcrDràs r8Ú
chunk_tRNSzPngStream.chunk_tRNSòs€à�w‰wÐ"Ð"Ð"Ü × Ñ  §¡¨&Ó 1ˆØ �<‰<˜3Ò Ü×$Ñ$ QÔ'ð—F‘F˜5“M�ؘ’6Ø34�D—L‘L Ñ0ðˆð01�— ‘ ˜^Ñ,ðˆð
�\‰\˜SÒ
Ü25°a´&©3¸aˆD�L‰L˜Ñ (ð
ˆð �\‰\˜]Ñ
*Ü+.¨q«6ˆD�L‰L˜Ñ (ðˆð�\‰\˜UÒ
"Ü+.¨q«6´3°q¸!³9¼cÀ!ÀQ»iÐ+GˆD�L‰L˜Ñ (؈r7có˜—|j€J‚tj|j|«}t|«dz |jd<|S)Nçjø@Úgamma)rRr r„r\rÇrøs r8Ú
chunk_gAMAzPngStream.chunk_gAMA sD€à�w‰wÐ"Ð"Ð"Ü × Ñ  §¡¨&Ó 1ˆÜ # A£¨Ñ 1ˆ� ‰ �WÑØˆr7cóì—|j€J‚tj|j|«}tjdt |«dz›d�|«}t
d„|D««|jd<|S)Nú>r(ÚIc3ó&K—|] }|dz –—Œ y­w)rNr6)Ú.0Úelts r8ú <genexpr>z'PngStream.chunk_cHRM.<locals>.<genexpr>sèø€Ò,PÀ¨S°8­^Ñ,Pùs‚Ú chromaticity)rRr r„r{ÚunpackÚlenÚtuplerÇ)rTrbrcrDÚraw_valss r8Ú
chunk_cHRMzPngStream.chunk_cHRMsi€ð�w‰wÐ"Ð"Ð"Ü × Ñ  §¡¨&Ó 1ˆÜ—=‘= 1¤S¨£V¨q¡[ M°Ð!3°QÓ7ˆÜ',Ñ,PÀxÔ,PÓ'Pˆ� ‰ �^Ñ$؈r7cóΗ|j€J‚tj|j|«}|dkrtjr|Sd}t |«‚|d|j
d<|S)Nr zTruncated sRGB chunkrÚsrgb)rRr r„r^rCrÇrìs r8Ú
chunk_sRGBzPngStream.chunk_sRGBse€ð�w‰wÐ"Ð"Ð"Ü × Ñ  §¡¨&Ó 1ˆØ �AŠ:Ü×.Ò.Ø�Ø(ˆCܘS“/Ð !Ø  ™tˆ� ‰ �VÑØˆr7cóP—|j€J‚tj|j|«}|dkrtjr|Sd}t |«‚t |d«t |d«}}|d}|dk(r|dz|dzf}||j d<|S|dk(r||f|j d <|S)
NråzTruncated pHYs chunkrr(r)r ç¦
F%uš?ÚdpiÚaspect)rRr r„r^rCr\rÇ) rTrbrcrDrGÚpxÚpyÚunitrs r8Ú
chunk_pHYszPngStream.chunk_pHYs+s¸€à�w‰wÐ"Ð"Ð"Ü × Ñ  §¡¨&Ó 1ˆØ �AŠ:Ü×.Ò.Ø�Ø(ˆCܘS“/Ð !Ü�Q˜“œC  1›IˆBˆØ�‰tˆØ �1Š9Ø�v‘+˜r F™{Ð*ˆCØ"%ˆD�L‰L˜Ñ ðˆð�QŠYØ%'¨ VˆD�L‰L˜Ñ "؈r7có~—|j€J‚tj|j|«} |jdd«\}}|rc|j dd«}|j dd«}|dk(r|n||j |<||j|<|jt|««|S#t$r|}d}YŒvwxYw)Nrªr r7r¦r§Úreplacesexif)
rRr r„ÚsplitrCrvrÇrÈrÖr)rTrbrcrDÚkÚvÚk_strÚv_strs r8Ú
chunk_tEXtzPngStream.chunk_tEXt=s¼€à�w‰wÐ"Ð"Ð"Ü × Ñ  §¡¨&Ó 1ˆð Ø—7‘7˜5 !Ó$‰DˆAˆqñ
Ø—H‘H˜Y¨Ó1ˆEØ—H‘H˜Y¨ Ó2ˆEà'(¨G¢|¡!¸ˆD�L‰L˜Ñ Ø"'ˆD�L‰L˜Ñ Ø × "Ñ "¤3 u£:Ô .àˆøôò àˆAØŠAð ús°B,Â,
B<Â;B<có@—|j€J‚tj|j|«} |jdd«\}}|r|d}nd}|dk7rd|›d�}t |«‚ t
|dd«}|r\|jdd«}|jdd «} | x|j|<|j|<|jt| ««|S#t$r|}d}YŒžwxYw#t$rtjrd}n‚YŒ’tj$rd}YŒ¨wxYw)
Nrªr r7rrÝz in zTXt chunkr¦r§r)rRr r„rrCr`rHr^r>r|rvrÇrÈrÖr)
rTrbrcrDr r!rárGr"r#s
r8Ú
chunk_zTXtzPngStream.chunk_zTXtQs6€à�w‰wÐ"Ð"Ð"Ü × Ñ  §¡¨&Ó 1ˆð Ø—7‘7˜5 !Ó$‰DˆAˆqñ
ؘA™$‰KàˆKØ ˜!Ò Ø/° ¨}¸NÐKˆCܘcÓ"Ð "ð Ü% a¨¨ eÓ,ˆAñ
Ø—H‘H˜Y¨Ó1ˆEØ—H‘H˜Y¨ Ó2ˆEà8=Ð =ˆD�L‰L˜Ñ  $§,¡,¨uÑ"5Ø × "Ñ "¤3 u£:Ô .àˆøô7ò ؈AØŠAð ûôò Ü×.Ò.Ø‘àñô�z‰zò ØŠAð ús)°CÁ&C'Ã
C$Ã#C$Ã'DÄDÄDcóF—|j€J‚tj|j|«x}} |jdd«\}}t |«dkr|S|d|d|dd}}} |jdd«\}} }
|dk7r|dk(r
t
|
«}
n|S|dk(r|
|jd< |jdd«} |jd d«} | jd d«}
|
jd d«}t|| |
«x|j| <|j| <|jt |««|S#t$r|cYSwxYw#t$r|cYSwxYw#t$rtjr|cYS‚tj$r|cYSwxYw#t$r|cYSwxYw)
Nrªr r'rsXML:com.adobe.xmpÚxmpr¦r§r¨)rRr r„rrCrrHr^r>r|rÇrvr¶r’rÈrÖ)rTrbrcÚrrDr ÚcfÚcmr“Útkr!r"Úlang_strÚtk_strr#s r8Ú
chunk_iTXtzPngStream.chunk_iTXttsÁ€à�w‰wÐ"Ð"Ð"Ü×$Ñ$ T§W¡W¨fÓ5Ð5ˆˆAð Ø—7‘7˜5 !Ó$‰DˆAˆqô ˆq‹6�AŠ:؈HØ�a‘D˜!˜A™$  ! " �ˆBˆð ØŸ'™' %¨Ó+‰KˆD�"�að �Š7Ø�QŠwðÜ-¨aÓ0‘Að�Ø Ð$Ò $Ø"#ˆD�L‰L˜Ñ ð Ø—H‘H˜Y¨Ó1ˆEØ—{‘{ 7¨HÓ5ˆHØ—Y‘Y˜w¨Ó1ˆFØ—H‘H˜W hÓ/ˆEô59¸ÀÈ&Ó4QÐQˆ� ‰ �UјdŸl™l¨5Ñ1Ø ×Ñœs 5›zÔ*àˆøôGò ØŠHð ûôò ØŠHð ûô "òÜ ×6Ò6Ø šàÜ—z‘zòØ’Hðûôò ØŠHð úsN²D8Á'E  EÂ+AFÄ8 EÅEÅ EÅEÅFÅ7FÆFÆ F ÆF có†—|j€J‚tj|j|«}d|z|jd<|S)NóExifÚexif)rRr r„rÇrøs r8Ú
chunk_eXIfzPngStream.chunk_eXIfŸs@€Ø�w‰wÐ"Ð"Ð"Ü × Ñ  §¡¨&Ó 1ˆØ.°Ñ2ˆ� ‰ �VÑØˆr7có¤—|j€J‚tj|j|«}|dkrtjr|Sd}t |«‚|j
�d|_t
jd«|St|«}|dk(s|dkDrt
jd«|S||_t|d«|jd<d|_
|S) Nr)z"APNG contains truncated acTL chunkz4Invalid APNG, will use default PNG image if possiblerlr(Úloopz
image/apng) rRr r„r^rCrÎÚwarningsÚwarnr\rÇrÍ)rTrbrcrDrGÚn_framess r8Ú
chunk_acTLzPngStream.chunk_acTL¦sÄ€Ø�w‰wÐ"Ð"Ð"Ü × Ñ  §¡¨&Ó 1ˆØ �AŠ:Ü×.Ò.Ø�Ø6ˆCܘS“/Ð !Ø × Ñ Ð 'Ø#ˆDÔ Ü �M‰MÐPÔ Q؈HÜ�q“6ˆØ �qŠ=˜H zÒ1Ü �M‰MÐPÔ Q؈HØ#ˆÔÜ" 1 a›yˆ� ‰ �VÑØ".ˆÔ؈r7có—|j€J‚tj|j|«}|dkrtjr|Sd}t |«‚t |«}|j €|dk7s|j �|j |dz
k7r
d}t|«‚||_t |d«t |d«}}t |d«t |d «} }|j\}
} ||z|
kDs| |z| kDr
d
}t|«‚|| ||z| |zf|jd <t|d «t|d
«}
} |
dk(rd}
t| «t|
«z dz|jd<|d|jd<|d|jd<|S)Néz"APNG contains truncated fcTL chunkrr ú#APNG contains frame sequence errorsr(r)rær*zAPNG contains invalid framesrïééédéèÚdurationéÚdisposaléÚblend) rRr r„r^rCr\rÏr`rÉrÇrÿÚfloat)rTrbrcrDrGÚseqÚwidthÚheightrrÚim_wÚim_hÚ delay_numÚ delay_dens r8Ú
chunk_fcTLzPngStream.chunk_fcTL»s~€Ø�w‰wÐ"Ð"Ð"Ü × Ñ  §¡¨&Ó 1ˆØ �BŠ;Ü×.Ò.Ø�Ø6ˆCܘS“/Ð !Ü�!‹fˆØ �M‰MÐ ! c¨Q¢hØ �M‰MÐ %¨$¯-©-¸3À¹7Ò*Bà7ˆCܘcÓ"Ð "؈Œ
ܘA˜q› ¤3 q¨!£9ˆvˆÜ�Q˜“œS  B›ZˆBˆØ—\‘\‰
ˆˆdØ
�‰:˜Ò   V¡ ¨dÒ 2Ø0ˆCܘcÓ"Ð "Ø " B¨¨U©
°B¸±KÐ@ˆ� ‰ �VÑÜ" 1 b›z¬3¨q°"«:�9ˆ Ø ˜Š>؈IÜ#(¨Ó#3´e¸IÓ6FÑ#FÈÑ#Mˆ� ‰ �ZÑ Ø#$ R¡5ˆ� ‰ �ZÑ Ø ! "¡ˆ� ‰ �WÑØˆr7cóx—|j€J‚|dkr?tjr"tj|j|«}|Sd}t |«‚tj|jd«}t |«}|j |dz
k7r
d}t|«‚||_|j|dz|dz
«S)Nr(z"APNG contains truncated fDAT chunkr r<) rRr r^r„rCr\rÏr`rô)rTrbrcrDrGrGs r8Ú
chunk_fdATzPngStream.chunk_fdATÙs«€Ø�w‰wÐ"Ð"Ð"Ø �AŠ:Ü×.Ò.Ü×(Ñ(¨¯©°&Ó9�Ø�Ø6ˆCܘS“/Ð !Ü × Ñ  §¡¨!Ó ,ˆÜ�!‹fˆØ �=‰=˜C !™GÒ #Ø7ˆCܘcÓ"Ð "؈Œ
Ø�‰˜s Q™w¨°©
Ó3Ð3r7rˆ)rÕr�rŠr‹r�)rbr�rcr�rŠrŽ)rbr�rcr�rŠr)r0r1r2rUrÖrÙrÛrârírôrörùrrrrrr$r&r/r3r9rNrPÚ
__classcell__©rÒs@r8rÃrÃ�snø„õó""ó
ó2ó
ó8ó* óóóó.óóó"ó$ó(!óF)óVóó*÷<4r7rÃcó,—|jt«SrQ)Ú
startswithÚ_MAGIC)Úprefixs r8Ú_acceptrWîs€Ø × Ñ œVÓ $Ð$r7c󈇗eZdZdZdZdd„Zedd„«Zdˆfd„ Zdd„Z ddd„Z
dd„Z dd „Z dd
„Z
dd „Zdd „Zdˆfd
„ ZˆxZS)Ú PngImageFileÚPNGzPortable network graphicscób—|j€J‚t|jjd««s
d}t|«‚|j|_d|_g|_t|j«|_ |jj«\}}} |jj|||«}|jj%||«ŒY#t$rYnvt$rktjd|||«tj|j|«}|ddj!«r|j j#||f«YŒšwxYw|jj&|_|jj*|_|jj.|_d|_|jj4|_|jj8|_|jj<xsd|_|j0jAdd«|_!|jjDr4|jjD\}}tGjH||«|_%|d k(r |d
z
|_&n||_&|jj<�ƒd|_'|jjQ«|jL|_)|jjU«|_+|jBr|xj>dz
c_|jYd«|j>dkD|_-y) Nr)znot a PNG filerú%r %s %s (unknown)r r'rðFófdATr().rRrWrZr`Ú_fpÚ_PngImageFile__frameÚprivate_chunksrÃÚpngrwróÚAttributeErrorrsrtr r„Úislowerrmr€rÊÚ_moderÉÚ_sizerÇr¾Ú_textrËr¿rÍÚcustom_mimetyperÎr8ÚgetrðrÌr
ÚrawÚpaletteÚ_PngImageFile__prepare_idatÚ!_close_exclusive_fp_after_loadingrÙÚ_PngImageFile__rewind_idatr[Ú_PngImageFile__rewindÚ_seekÚ is_animated)rTrGrarbrcrDÚrawmoderKs r8Ú_openzPngImageFile._openúsx€Ø�w‰wÐ"Ð"Ð"Ü�t—w‘w—|‘| A“Ô'Ø"ˆCܘcÓ"Ð "Ø—7‘7ˆŒØˆŒ ð
VXˆÔÜ%.¨t¯w©wÓ%7ˆŒàð $Ÿx™xŸ}™}›Ñ ˆC��fð
9Ø—H‘H—M‘M # s¨FÓ3�ð
�H‰H�L‰L˜˜aÔ ð!øôò
ÙÜ!ò
9Ü— ‘ Ð1°3¸¸VÔDÜ×(Ñ(¨¯©°&Ó9�Ø�q˜�8×#Ñ#Ô%Ø×'Ñ'×.Ñ.°°Q¨xÔ8ùð 
9úð—X‘X×%Ñ%ˆŒ
Ø—X‘X×%Ñ%ˆŒ
Ø—H‘H×$Ñ$ˆŒ Ø37ˆŒ
Ø—H‘H×$Ñ$ˆŒ Ø#Ÿx™x×:Ñ:ˆÔØŸ™×,Ñ,Ò1°ˆŒ
Ø!ŸY™YŸ]™]¨?¸EÓBˆÔà �8‰8× Ò Ø ŸH™H×/Ñ/‰MˆG�TÜ'×+Ñ+¨G°TÓ:ˆDŒLà �'Š>Ø"(¨1¡*ˆDÕ à"(ˆDÔ à �8‰8× Ñ Ð +Ø5:ˆDÔ 2Ø �H‰H× Ñ Ô "Ø!%×!4Ñ!4ˆDÔ Ø ŸH™HŸM™M›OˆDŒMØ×!Ò!à—
’
 Ñ"•
Ø �J‰J�qŒMØŸ=™=¨1Ñ,ˆÕsÂCÃ EÃA0EÅEcó—|j€c|jr*|j}|j|jdz
«|j «|jr|j«|j€J‚|jS)Nr )rfrpr_rYr8Úload)rTÚframes r8r™zPngImageFile.text>so€ð �:‰:Ð ð×ÒØŸ ™ �à— ‘ ˜$Ÿ-™-¨!Ñ+Ô,Ø �I‰IŒKØ×ÒØ— ‘ ˜%Ô Ø�z‰zÐ%Ð%Ð%Ø�z‰zÐr7có4•—|j€
d}t|«‚|jj|jdddz
«|j€J‚|jj «|jj