§
    ¢”jG8  ã                  óŒ  — d dl mZ d dlZd dlZd dlZd dlmZ ddlmZm	Z	m
Z
mZ dZerd dlmZ d dlmZ  G d	„ d
¦  «        Zd&d„Zd'd„Zd(d„Z G d„ de	j	        ¦  «        Zd)d„Zd*d#„Z ej        ej        ee¦  «          ej        ej        e¦  «          ej        ej        g d$¢¦  «          ej        ej        d%¦  «         dS )+é    )ÚannotationsN)Úcasté   )ÚImageÚ	ImageFileÚImagePaletteÚ_binaryF)ÚCallable)ÚIOc                  óL   — e Zd ZdZddd	„Zdd„Zdd„Zdd„Zdd„Zdd„Z	dd„Z
dS )Ú	BoxReaderz}
    A small helper class to read fields stored in JPEG2000 header boxes
    and to easily step into and read sub-boxes.
    éÿÿÿÿÚfpú	IO[bytes]ÚlengthÚintÚreturnÚNonec                óF   — || _         |dk    | _        || _        d| _        d S )Nr   r   )r   Ú
has_lengthr   Úremaining_in_box)Úselfr   r   s      úd/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/PIL/Jpeg2KImagePlugin.pyÚ__init__zBoxReader.__init__%   s)   € ØˆŒØ  Aš+ˆŒØˆŒØ "ˆÔÐÐó    Ú	num_bytesÚboolc                óŽ   — | j         r'| j                             ¦   «         |z   | j        k    rdS | j        dk    r|| j        k    S dS )NFr   T)r   r   Útellr   r   )r   r   s     r   Ú	_can_readzBoxReader._can_read+   sM   € ØŒ?ð 	˜tœwŸ|š|™~œ~°	Ñ9¸D¼KÒGÐGà�5ØÔ  AÒ%Ð%à Ô 5Ò5Ð5à�4r   Úbytesc                ó,  — |                       |¦  «        sd}t          |¦  «        ‚| j                             |¦  «        }t	          |¦  «        |k     r%d|› dt	          |¦  «        › d�}t          |¦  «        ‚| j        dk    r| xj        |z  c_        |S )NzNot enough data in headerzExpected to read z bytes but only got ú.r   )r    ÚSyntaxErrorr   ÚreadÚlenÚOSErrorr   )r   r   ÚmsgÚdatas       r   Ú_read_byteszBoxReader._read_bytes5   sž   € Ø�~Š~˜iÑ(Ô(ð 	#Ø-ˆCÝ˜cÑ"Ô"Ð"àŒw�|Š|˜IÑ&Ô&ˆÝˆt‰9Œ9�yÒ Ð ØQ iÐQÐQÅSÈÁYÄYÐQÐQÐQˆCÝ˜#‘,”,ÐàÔ  1Ò$Ð$ØÐ!Ô! YÑ.Ð!Ô!Øˆr   Úfield_formatÚstrútuple[int | bytes, ...]c                ó~   — t          j        |¦  «        }|                      |¦  «        }t          j        ||¦  «        S ©N)ÚstructÚcalcsizer*   Úunpack)r   r+   Úsizer)   s       r   Úread_fieldszBoxReader.read_fieldsC   s6   € ÝŒ˜|Ñ,Ô,ˆØ×Ò Ñ%Ô%ˆÝŒ}˜\¨4Ñ0Ô0Ð0r   c                ó~   — | j         }|                      |¦  «        }t          t          j        |¦  «        |¦  «        S r/   )r   r*   r   ÚioÚBytesIO)r   r3   r)   s      r   Ú
read_boxeszBoxReader.read_boxesH   s7   € ØÔ$ˆØ×Ò Ñ%Ô%ˆÝ�œ DÑ)Ô)¨4Ñ0Ô0Ð0r   c                óh   — | j         r*| j                             ¦   «         | j        z   | j        k     S dS )NT)r   r   r   r   r   )r   s    r   Úhas_next_boxzBoxReader.has_next_boxM   s0   € ØŒ?ð 	Ø”7—<’<‘>”> DÔ$9Ñ9¸D¼KÒGÐGà�4r   c                óÜ  — | j         dk    r*| j                             | j         t          j        ¦  «         d| _         t          t          t          t          f         |  	                    d¦  «        ¦  «        \  }}|dk    r1t          t          |  	                    d¦  «        d         ¦  «        }d}nd}||k     s|  
                    ||z
  ¦  «        sd}t          |¦  «        ‚||z
  | _         |S )	Nr   r   z>I4sr   z>Qé   é   zInvalid header length)r   r   ÚseekÚosÚSEEK_CURr   Útupler   r!   r4   r    r$   )r   ÚlboxÚtboxÚhlenr(   s        r   Únext_box_typezBoxReader.next_box_typeS   s×   € àÔ  1Ò$Ð$ØŒG�LŠL˜Ô.µ´Ñ<Ô<Ð<Ø "ˆÔõ �%¥¥U 
Ô+¨T×-=Ò-=¸fÑ-EÔ-EÑFÔF‰
ˆˆdØ�1Š9ˆ9Ý�˜T×-Ò-¨dÑ3Ô3°AÔ6Ñ7Ô7ˆDØˆDˆDàˆDà�$Š;ˆ;˜dŸnšn¨T°D©[Ñ9Ô9ˆ;Ø)ˆCÝ˜cÑ"Ô"Ð"à $ t¡ˆÔØˆr   N)r   )r   r   r   r   r   r   )r   r   r   r   )r   r   r   r!   )r+   r,   r   r-   )r   r   )r   r   )r   r!   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r    r*   r4   r8   r:   rE   © r   r   r   r      s¯   € € € € € ðð ð
#ð #ð #ð #ð #ðð ð ð ðð ð ð ð1ð 1ð 1ð 1ð
1ð 1ð 1ð 1ð
ð ð ð ðð ð ð ð ð r   r   r   r   r   útuple[tuple[int, int], str]c                ó¨  — |                       d¦  «        }t          j        |¦  «        }||                       |dz
  ¦  «        z   }t          j        d|¦  «        \  }}}}}}}	}	}	}	}
||z
  ||z
  f}|
dk    r.t          j        d|d¦  «        }|d         dz  dz   dk    rd	}n/d
}n,|
dk    rd}n#|
dk    rd}n|
dk    rd}nd}t          |¦  «        ‚||fS )z‹Parse the JPEG 2000 codestream to extract the size and component
    count from the SIZ marker segment, returning a PIL (size, mode) tuple.é   z>HHIIIIIIIIHr   z>Bé&   r   é   r=   úI;16ÚLÚLAé   ÚRGBé   ÚRGBAz"unable to determine J2K image mode)r%   r	   Úi16ber0   Úunpack_fromr$   )r   ÚhdrÚlsizÚsizÚrsizÚxsizÚysizÚxosizÚyosizÚ_Úcsizr3   ÚssizÚmoder(   s                  r   Ú_parse_codestreamre   i   s  € ð �'Š'�!‰*Œ*€CÝŒ=˜ÑÔ€DØ
�—’˜˜q™Ñ!Ô!Ñ
!€CÝ=CÔ=OØ˜ñ>ô >Ñ:€Dˆ$��d˜E 5¨!¨Q°°1°dð �5‰L˜$ ™,Ð'€DØˆq‚y€yÝÔ! $¨¨RÑ0Ô0ˆØ�ŒG�d‰N˜aÑ !Ò#Ð#ØˆDˆDàˆDˆDØ	�ŠˆØˆˆØ	�ŠˆØˆˆØ	�ŠˆØˆˆà2ˆÝ˜#ÑÔÐà�ˆ:Ðr   Únumr   ÚdenomÚexpúfloat | Nonec                ó4   — |dk    rdS d| z  d|z  z  d|z  z  S )zµConvert JPEG2000's (numerator, denominator, exponent-base-10) resolution,
    calculated as (num / denom) * 10^exp and stored in dots per meter,
    to floating-point dots per inch.r   Néþ   é
   i'  rJ   )rf   rg   rh   s      r   Ú_res_to_dpirm   ˆ   s.   € ð �‚z€zØˆtØ�#‰I˜˜S™Ñ! e¨e¡mÑ4Ð4r   úetuple[tuple[int, int], str, str | None, tuple[float, float] | None, ImagePalette.ImagePalette | None]c                óÒ  — t          | ¦  «        }d}d}|                     ¦   «         rj|                     ¦   «         }|dk    r|                     ¦   «         }n;|dk    r!|                     d¦  «        d         dk    rd}|                     ¦   «         °j|€J ‚d}d}d}d}d}	d}
d}|                     ¦   «         �r”|                     ¦   «         }|dk    rž|                     d	¦  «        \  }}}}t          |t          ¦  «        sJ ‚t          |t          ¦  «        sJ ‚t          |t          ¦  «        sJ ‚||f}|d
k    r|dz  dk    rd}�nï|d
k    rd}�nå|dk    rd}�nÛ|dk    rd}�nÑ|dk    rd}�nÇ|dk    rD|                     d¦  «        \  }}}}|d
k    r"|dv rd}�n™|dk    rd}|dk    rd}�n‡|dk    rd}�n}|dk    �rH|dv �rC|dv�r>|                     d¦  «        \  }}t          |t          ¦  «        sJ ‚t          |t          ¦  «        sJ ‚d}|                     d d!|z  z   ¦  «        D ]!}t          |t          ¦  «        sJ ‚||k    r|}Œ"|dk    r±|dk    r|dk    rdnd}nd}t          j        |¦  «        }
t          |¦  «        D ]p}g }|                     d d!|z  z   ¦  «        D ].}t          |t          ¦  «        sJ ‚| 	                    |¦  «         Œ/|
 
                    t          |¦  «        ¦  «         Œq|dk    rd"nd#}�n.|d$k    �r'|                     ¦   «         }|                     ¦   «         rÿ|                     ¦   «         }|d%k    rÑ|                     d&¦  «        \  }}}}}} t          |t          ¦  «        sJ ‚t          |t          ¦  «        sJ ‚t          |t          ¦  «        sJ ‚t          |t          ¦  «        sJ ‚t          |t          ¦  «        sJ ‚t          | t          ¦  «        sJ ‚t          ||| ¦  «        }!t          |||¦  «        }"|!�|"�|!|"f}	n|                     ¦   «         °ÿ|                     ¦   «         �°”|�|€d'}#t          |#¦  «        ‚||||	|
fS )(zªParse the JP2 header box to extract size, component count,
    color space information, and optionally DPI information,
    returning a (size, mode, mimetype, dpi) tuple.Ns   jp2hs   ftypz>4sr   s   jpx z	image/jpxs   ihdrz>IIHBr   rO   r=   rP   rQ   rM   rR   rS   rT   rU   rV   s   colrz>BBBI)r   é   Ú1é   ÚCMYKé   s   pclr)rQ   rR   )rq   rQ   z>HBú>ÚBÚPÚPAs   res s   rescz>HHHHBBzMalformed JP2 header)r   r:   rE   r8   r4   Ú
isinstancer   r   ÚrangeÚappendÚgetcolorrA   rm   r$   )$r   ÚreaderÚheaderÚmimetyperC   r3   rd   ÚbpcÚncÚdpiÚpaletteÚcolrÚheightÚwidthÚmethra   ÚenumcsÚneÚnpcÚmax_bitdepthÚbitdepthÚpalette_modeÚiÚcolorÚvalueÚresÚtresÚvrcnÚvrcdÚhrcnÚhrcdÚvrceÚhrceÚhresÚvresr(   s$                                       r   Ú_parse_jp2_headerr›   ‘   s6  € õ �r‰]Œ]€FØ€FØ€HØ
×
Ò
Ñ
Ô
ð 'Ø×#Ò#Ñ%Ô%ˆà�7Š?ˆ?Ø×&Ò&Ñ(Ô(ˆFØØ�WŠ_ˆ_Ø×!Ò! %Ñ(Ô(¨Ô+¨wÒ6Ð6Ø&�ð ×
Ò
Ñ
Ô
ð 'ð ÐÐÐà€DØ€DØ
€CØ	€BØ
€CØ€GØ€Dà
×
Ò
Ñ
Ô
ñ DØ×#Ò#Ñ%Ô%ˆà�7Š?ˆ?Ø%+×%7Ò%7¸Ñ%@Ô%@Ñ"ˆF�E˜2˜sÝ˜f¥cÑ*Ô*Ð*Ð*Ð*Ý˜e¥SÑ)Ô)Ð)Ð)Ð)Ý˜c¥3Ñ'Ô'Ð'Ð'Ð'Ø˜6�?ˆDØ�QŠwˆw˜C $™J¨!Ò+Ð+Ø�‘Ø�q’�Ø�‘Ø�q’�Ø�‘Ø�q’�Ø�‘Ø�q’�Ø�ùØ�WŠ_ˆ_Ø!'×!3Ò!3°GÑ!<Ô!<ÑˆD�!�Q˜Ø�qŠyˆyØ˜WÐ$Ð$Ø�D‘DØ˜r’\�\Ø!�DØ˜Q’w�wØ%˜ùØ˜r’\�\Ø�DùØ�WŠ_‰_ ¨Ð!4Ñ!4¸ÀZÐ9OÑ9OØ×(Ò(¨Ñ/Ô/‰GˆB�Ý˜b¥#Ñ&Ô&Ð&Ð&Ð&Ý˜c¥3Ñ'Ô'Ð'Ð'Ð'ØˆLØ"×.Ò.¨s°c¸C±iÑ/@ÑAÔAð ,ð ,�Ý! (­CÑ0Ô0Ð0Ð0Ð0Ø˜lÒ*Ð*Ø#+�LøØ˜qÒ Ð Ø˜!’8�8Ø-1°Vª^¨^ 6 6À�L�Là#(�LÝ&Ô3°LÑAÔA�Ý˜r™œð 3ð 3�AØ')�EØ!'×!3Ò!3°C¸3À¹9Ñ4EÑ!FÔ!Fð ,ð ,˜Ý)¨%µÑ5Ô5Ð5Ð5Ð5ØŸš UÑ+Ô+Ð+Ð+Ø×$Ò$¥U¨5¡\¤\Ñ2Ô2Ð2Ð2Ø" cšk˜k�s�s¨t�ùØ�WŠ_‰_Ø×#Ò#Ñ%Ô%ˆCØ×"Ò"Ñ$Ô$ð Ø×(Ò(Ñ*Ô*�Ø˜7’?�?Ø9<¿ºÈÑ9SÔ9SÑ6�D˜$  d¨D°$Ý% d­CÑ0Ô0Ð0Ð0Ð0Ý% d­CÑ0Ô0Ð0Ð0Ð0Ý% d­CÑ0Ô0Ð0Ð0Ð0Ý% d­CÑ0Ô0Ð0Ð0Ð0Ý% d­CÑ0Ô0Ð0Ð0Ð0Ý% d­CÑ0Ô0Ð0Ð0Ð0Ý& t¨T°4Ñ8Ô8�DÝ& t¨T°4Ñ8Ô8�DØÐ'¨DÐ,<Ø# T˜l˜Øð ×"Ò"Ñ$Ô$ð ðm ×
Ò
Ñ
Ô
ñ DðL €|�t�|Ø$ˆÝ˜#ÑÔÐà��x  gÐ-Ð-r   c                  ór   ‡ — e Zd ZdZdZdd„Zdd„Zedˆ fd„¦   «         Zej	        dd„¦   «         Zdd„Z
ˆ xZS )ÚJpeg2KImageFileÚJPEG2000zJPEG 2000 (ISO 15444)r   r   c           
     ó  — | j         €J ‚| j                              d¦  «        }|dk    r>d| _        t          | j         ¦  «        \  | _        | _        |                      ¦   «          �n|| j                              d¦  «        z   }|dk    rÛd| _        t          | j         ¦  «        }|\  | _        | _        | _        }| _	        |�
|| j
        d<   | j                              d¦  «                             d	¦  «        rj| j                              d
¦  «        }t          j        |¦  «        }| j                              |d
z
  t          j        ¦  «         |                      ¦   «          nd}t#          |¦  «        ‚d| _        d| _        d}d}	 | j                              ¦   «         }t          j        |¦  «        j        }n—# t.          $ rŠ d}	 | j                              ¦   «         }| j                              dt2          j        ¦  «         | j                              ¦   «         }| j                              |¦  «         n# t.          $ r d}Y nw xY wY nw xY wt7          j        dd| j        z   d| j        | j        | j        ||f¦  «        g| _        d S )NrU   ó   ÿOÿQÚj2kr=   ó      jP  
‡
Újp2r‚   rr   s   jp2cÿOÿQrM   znot a JPEG 2000 filer   r   Újpeg2k©r   r   )r   r%   Úcodecre   Ú_sizeÚ_modeÚ_parse_commentr›   Úcustom_mimetyperƒ   ÚinfoÚendswithr	   rW   r>   r?   r@   r$   Ú_reduceÚlayersÚfilenoÚfstatÚst_sizeÚ	Exceptionr   r6   ÚSEEK_ENDr   Ú_Tiler3   Útile)	r   Úsigr~   r‚   rY   r   r(   ÚfdÚposs	            r   Ú_openzJpeg2KImageFile._open
  sd  € ØŒwÐ"Ð"Ð"ØŒg�lŠl˜1‰oŒoˆØÐ%Ò%Ð%ØˆDŒJÝ%6°t´wÑ%?Ô%?Ñ"ˆDŒJ˜œ
Ø×ÒÑ!Ô!Ð!Ñ!à˜œŸš Q™œÑ'ˆCàÐ=Ò=Ð=Ø"�”
Ý*¨4¬7Ñ3Ô3�ØRXÑO�”
˜DœJ¨Ô(<¸cÀ4Ä<Ø�?Ø'*�D”I˜eÑ$Ø”7—<’< Ñ#Ô#×,Ò,Ð-DÑEÔEð *Øœ'Ÿ,š, q™/œ/�CÝ$œ]¨3Ñ/Ô/�FØ”G—L’L ¨!¡­R¬[Ñ9Ô9Ð9Ø×'Ò'Ñ)Ô)Ð)øà,�Ý! #Ñ&Ô&Ð&àˆŒØˆŒàˆØˆð	Ø”—’Ñ!Ô!ˆBÝ”X˜b‘\”\Ô)ˆFˆFøÝð 	ð 	ð 	ØˆBðØ”g—l’l‘n”n�Ø”—’˜Q¥¤Ñ,Ô,Ð,ØœŸš™œ�Ø”—’˜SÑ!Ô!Ð!Ð!øÝð ð ð Ø���ðøøøøøð	øøøõ ŒOØØ˜œÑ"ØØ”˜Tœ\¨4¬;¸¸FÐCñ	ô ð
ˆŒ	ˆ	ˆ	s7   Æ
2F= Æ=IÇ
A1H<È;IÈ<IÉIÉ
IÉIÉIc                ó†  — | j         €J ‚	 | j                              d¦  «        }|sd S |d         }|dv rd S | j                              d¦  «        }t          j        |¦  «        }|dk    r/| j                              |dz
  ¦  «        dd …         | j        d<   d S | j                              |dz
  t          j        ¦  «         Œ¸)NTrM   r   )é�   éÙ   éd   Úcomment)r   r%   r	   rW   r«   r>   r?   r@   )r   ÚmarkerÚtyprY   r   s        r   r©   zJpeg2KImageFile._parse_comment?  sÂ   € ØŒwÐ"Ð"Ð"ð	6Ø”W—\’\ !‘_”_ˆFØð Ø�Ø˜”)ˆCØ�lÐ"Ð"à�Ø”'—,’,˜q‘/”/ˆCÝ”] 3Ñ'Ô'ˆFØ�dŠ{ˆ{à'+¤w§|¢|°F¸Q±JÑ'?Ô'?ÀÀÀÔ'C�”	˜)Ñ$Ø�à”—’˜V a™Z­¬Ñ5Ô5Ð5ð	6r   úVCallable[[int | tuple[int, int], tuple[int, int, int, int] | None], Image.Image] | intc                ó8   •— | j         pt          ¦   «         j        S r/   )r­   ÚsuperÚreduce)r   Ú	__class__s    €r   rÄ   zJpeg2KImageFile.reduceR  s   ø€ ð Œ|Ð-�u™wœwœ~Ð-r   r�   r   c                ó   — || _         d S r/   )r­   )r   r�   s     r   rÄ   zJpeg2KImageFile.reduce^  s   € àˆŒˆˆr   úImage.core.PixelAccess | Nonec                ó$  — | j         rë| j        räd| j        z  }|dz	  }t          | j        d         |z   |z  ¦  «        t          | j        d         |z   |z  ¦  «        f| _        | j         d         }t          |d         t          ¦  «        sJ ‚|d         d         | j        | j        |d         d         |d         d         f}t          j	        |d         d| j        z   |d         |¦  «        g| _         t          j         
                    | ¦  «        S )Nr   r   rS   rU   r¥   rM   )rµ   r­   r   r3   r§   ry   rA   r®   r   r´   Úload)r   ÚpowerÚadjustÚtÚt3s        r   rÉ   zJpeg2KImageFile.loadb  sþ   € ØŒ9ð 	N˜œð 	NØ˜œÑ%ˆEØ˜a‘ZˆFå�T”Y˜q”\ FÑ*¨eÑ3Ñ4Ô4Ý�T”Y˜q”\ FÑ*¨eÑ3Ñ4Ô4ðˆDŒJð ”	˜!”ˆAÝ˜a œd¥EÑ*Ô*Ð*Ð*Ð*Ø�A”$�q”'˜4œ<¨¬°a¸´d¸1´g¸qÀ¼tÀA¼wÐGˆBÝ"œ¨¨1¬¨v¸¼	Ñ/AÀ1ÀQÄ4ÈÑLÔLÐMˆDŒIåÔ"×'Ò'¨Ñ-Ô-Ð-r   )r   r   )r   rÁ   )r�   r   r   r   )r   rÇ   )rF   rG   rH   ÚformatÚformat_descriptionr¹   r©   ÚpropertyrÄ   ÚsetterrÉ   Ú__classcell__)rÅ   s   @r   r�   r�     s³   ø€ € € € € Ø€FØ0Ðð3
ð 3
ð 3
ð 3
ðj6ð 6ð 6ð 6ð& ð	.ð 	.ð 	.ð 	.ð 	.ñ „Xð	.ð „]ðð ð ñ „]ðð.ð .ð .ð .ð .ð .ð .ð .r   r�   Úprefixr!   r   c                ó,   — |                       d¦  «        S )N)r    r¢   )Ú
startswith)rÓ   s    r   Ú_acceptrÖ   t  s   € Ø×ÒØFñô ð r   ÚimúImage.ImageÚfilenameústr | bytesr   c                óD  — | j         }t          |t          ¦  «        r|                     ¦   «         }|                     d¦  «        s|                     dd¦  «        rd}nd}|                     dd ¦  «        }|                     dd ¦  «        }|                     dd ¦  «        }|                     d	d
¦  «        }|                     dd ¦  «        }	|	�Ft          |	t          t          f¦  «        rt          d„ |	D ¦   «         ¦  «        sd}
t          |
¦  «        ‚|                     dd¦  «        }|                     dd ¦  «        }|                     dd ¦  «        }|                     dd¦  «        }|                     dd¦  «        }|                     dd¦  «        }|                     dd¦  «        }|                     dd¦  «        }|                     d¦  «        }t          |t          ¦  «        r|                     ¦   «         }|                     dd¦  «        }d}t          |d¦  «        r(	 |                     ¦   «         }n# t          $ r d}Y nw xY w|||||	|||||||||||f| _        t          j        | |t          j        dd| j        z   d|¦  «        g¦  «         d S )Ns   .j2kÚno_jp2Fr¡   r£   ÚoffsetÚtile_offsetÚ	tile_sizeÚquality_modeÚratesÚquality_layersc              3  óN   K  — | ] }t          |t          t          f¦  «        V — Œ!d S r/   )ry   r   Úfloat)Ú.0Úquality_layers     r   ú	<genexpr>z_save.<locals>.<genexpr>�  sA   è è € ð 
ð 
Ø8E�J�}¥s­E lÑ3Ô3ð
ð 
ð 
ð 
ð 
ð 
r   z,quality_layers must be a sequence of numbersÚnum_resolutionsr   Úcodeblock_sizeÚprecinct_sizeÚirreversibleÚprogressionÚLRCPÚcinema_modeÚnoÚmctÚsignedr¾   Úpltr   r¯   r¤   r¥   )Úencoderinfory   r,   Úencoder¬   ÚgetÚlistrA   ÚallÚ
ValueErrorÚhasattrr¯   r²   Úencoderconfigr   Ú_saver´   r3   )r×   r   rÙ   r«   ÚkindrÝ   rÞ   rß   rà   râ   r(   rè   Ú	cblk_sizerê   rë   rì   rî   rð   rñ   r¾   rò   r·   s                         r   rû   rû   ~  s¾  € àŒ>€Då�(�CÑ Ô ð %Ø—?’?Ñ$Ô$ˆØ×Ò˜Ñ!Ô!ð  T§X¢X¨h¸Ñ%>Ô%>ð Øˆˆàˆà�XŠX�h Ñ%Ô%€FØ—(’(˜=¨$Ñ/Ô/€KØ—’˜ dÑ+Ô+€IØ—8’8˜N¨GÑ4Ô4€LØ—X’XÐ.°Ñ5Ô5€NØÐ!Ý�>¥D­% =Ñ1Ô1ð "åð 
ð 
ØIWð
ñ 
ô 
ñ 
ô 
ð "ð =ˆÝ˜‰oŒoÐà—h’hÐ0°!Ñ4Ô4€OØ—’Ð)¨4Ñ0Ô0€IØ—H’H˜_¨dÑ3Ô3€MØ—8’8˜N¨EÑ2Ô2€LØ—(’(˜=¨&Ñ1Ô1€KØ—(’(˜=¨$Ñ/Ô/€KØ
�(Š(�5˜!Ñ
Ô
€CØ�XŠX�h Ñ&Ô&€FØ�hŠh�yÑ!Ô!€GÝ�'�3ÑÔð #Ø—.’.Ñ"Ô"ˆØ
�(Š(�5˜%Ñ
 Ô
 €Cà	€BÝˆr�8ÑÔð ð	Ø—’‘”ˆBˆBøÝð 	ð 	ð 	ØˆBˆBˆBð	øøøð 	ØØØØØØØØØØØØØ
ØØð!€BÔõ& „O�B˜�Yœ_¨X°vÀÄÑ7GÈÈDÑQÔQÐRÑSÔSÐSÐSÐSs   È.I ÉIÉI)z.jp2z.j2kz.jpcz.jpfz.jpxz.j2cz	image/jp2)r   r   r   rK   )rf   r   rg   r   rh   r   r   ri   )r   r   r   rn   )rÓ   r!   r   r   )r×   rØ   r   r   rÙ   rÚ   r   r   )Ú
__future__r   r6   r?   r0   Útypingr   Ú r   r   r   r	   ÚTYPE_CHECKINGÚcollections.abcr
   r   r   re   rm   r›   r�   rÖ   rû   Úregister_openrÎ   Úregister_saveÚregister_extensionsÚregister_mimerJ   r   r   ú<module>r     sî  ðð  #Ð "Ð "Ð "Ð "Ð "à 	€	€	€	Ø 	€	€	€	Ø €€€Ø Ð Ð Ð Ð Ð à 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5à€Øð Ø(Ð(Ð(Ð(Ð(Ð(ØÐÐÐÐÐðGð Gð Gð Gð Gñ Gô Gð GðTð ð ð ð>5ð 5ð 5ð 5ðn.ð n.ð n.ð n.ðjk.ð k.ð k.ð k.ð k.�iÔ)ñ k.ô k.ð k.ð\ð ð ð ð@Tð @Tð @Tð @TðN €Ô �OÔ*¨O¸WÑ EÔ EÐ EØ €Ô �OÔ*¨EÑ 2Ô 2Ð 2à €Ô ØÔÐLÐLÐLñô ð ð €Ô �OÔ*¨KÑ 8Ô 8Ð 8Ð 8Ð 8r   