Ë
    ^ãjò9  ã                  óÐ  — d dl mZ ddh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	j0                  ej2                  ee«        e	j4                  ej2                  e«        e	j6                  ej2                  g d¢«        e	j8                  ej2                  d«       y)é    )ÚannotationsÚioÚstructN)Úcasté   )ÚImageÚ	ImageFileÚImagePaletteÚ_binaryF)ÚCallable)ÚIOc                  óJ   — 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
y	)Ú	BoxReaderz}
    A small helper class to read fields stored in JPEG2000 header boxes
    and to easily step into and read sub-boxes.
    c                óB   — || _         |dk\  | _        || _        d| _        y )Nr   éÿÿÿÿ)ÚfpÚ
has_lengthÚlengthÚremaining_in_box)Úselfr   r   s      úW/var/www/html/metafoliadorv2/venv/lib/python3.12/site-packages/PIL/Jpeg2KImagePlugin.pyÚ__init__zBoxReader.__init__'   s#   € ØˆŒØ  A™+ˆŒØˆŒØ "ˆÕó    c                ó®   — | j                   r+| j                  j                  «       |z   | j                  kD  ry| j                  dk\  r|| j                  k  S y)NFr   T)r   r   Útellr   r   )r   Ú	num_bytess     r   Ú	_can_readzBoxReader._can_read-   sH   € Ø�?Š?˜tŸw™wŸ|™|›~°	Ñ9¸D¿K¹KÒGàØ× Ñ  AÒ%à × 5Ñ 5Ñ5Ð5àr   c                óp  — | j                  |«      sd}t        |«      ‚| j                  j                  «       |z   dk\  rd}t        |«      ‚| j                  j	                  |«      }t        |«      |k  rd|› dt        |«      › d�}t        |«      ‚| j                  dkD  r| xj                  |z  c_        |S )NzNot enough data in headerì            úBox length too largezExpected to read z bytes but only got ú.r   )r   ÚSyntaxErrorr   r   ÚreadÚlenÚOSErrorr   )r   r   ÚmsgÚdatas       r   Ú_read_byteszBoxReader._read_bytes7   sª   € Ø�~‰~˜iÔ(Ø-ˆCÜ˜cÓ"Ð"Ø�7‰7�<‰<‹>˜IÑ%¨Ò.Ø(ˆCÜ˜cÓ"Ð"à�w‰w�|‰|˜IÓ&ˆÜˆt‹9�yÒ Ø% i [Ð0DÄSÈÃYÀKÈqÐQˆCÜ˜#“,Ðà× Ñ  1Ò$Ø×!Ò! YÑ.Õ!Øˆr   c                óz   — t        j                  |«      }| j                  |«      }t        j                  ||«      S ©N)r   Úcalcsizer(   Úunpack)r   Úfield_formatÚsizer'   s       r   Úread_fieldszBoxReader.read_fieldsH   s1   € Ü�‰˜|Ó,ˆØ×Ñ Ó%ˆÜ�}‰}˜\¨4Ó0Ð0r   c                óz   — | j                   }| j                  |«      }t        t        j                  |«      |«      S r*   )r   r(   r   r   ÚBytesIO)r   r.   r'   s      r   Ú
read_boxeszBoxReader.read_boxesM   s3   € Ø×$Ñ$ˆØ×Ñ Ó%ˆÜœŸ™ DÓ)¨4Ó0Ð0r   c                ó„   — | j                   r4| j                  j                  «       | j                  z   | j                  k  S y)NT)r   r   r   r   r   )r   s    r   Úhas_next_boxzBoxReader.has_next_boxR   s0   € Ø�?Š?Ø—7‘7—<‘<“> D×$9Ñ$9Ñ9¸D¿K¹KÑGÐGàr   c                óô  — | j                   dkD  rk| j                  j                  «       | j                   z   dk\  rd}t        |«      ‚| j                  j	                  | j                   t
        j                  «       d| _         t        d| j                  d«      «      \  }}|dk(  r!t        d| j                  d	«      d   «      }d
}nd}||k  s| j                  ||z
  «      sd}t        |«      ‚||z
  | _         |S )Nr   r   r    r   ztuple[int, bytes]z>I4sr   Úintz>Qé   é   zInvalid header length)
r   r   r   r"   ÚseekÚosÚSEEK_CURr   r/   r   )r   r&   ÚlboxÚtboxÚhlens        r   Únext_box_typezBoxReader.next_box_typeX   sã   € à× Ñ  1Ò$Ø�w‰w�|‰|‹~ × 5Ñ 5Ñ5¸Ò>Ø,�Ü! #Ó&Ð&Ø�G‰G�L‰L˜×.Ñ.´·±Ô<Ø "ˆÔô Ð-¨t×/?Ñ/?ÀÓ/GÓH‰
ˆˆdØ�1Š9Ü˜˜t×/Ñ/°Ó5°aÑ8Ó9ˆDØ‰DàˆDà�$Š;˜dŸn™n¨T°D©[Ô9Ø)ˆCÜ˜cÓ"Ð"à $ t¡ˆÔØˆr   N)r   )r   ú	IO[bytes]r   r6   ÚreturnÚNone)r   r6   rA   Úbool)r   r6   rA   Úbytes)r-   ÚstrrA   ztuple[int | bytes, ...])rA   r   )rA   rC   )rA   rD   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r(   r/   r2   r4   r?   © r   r   r   r   !   s*   „ ñô
#óóó"1ó
1ó
ôr   r   c                óÀ  — | j                  d«      }t        j                  |«      }|dk  rd}t        |«      ‚|| j                  |dz
  «      z   }t	        j
                  d|«      \  }}}}}}	}
}
}
}
}||z
  ||	z
  f}|dk(  r1t	        j
                  d|d«      }|d   dz  dz   d	kD  rd
}||fS d}||fS |dk(  rd}||fS |dk(  rd}||fS |dk(  rd}||fS d}t        |«      ‚)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%SIZ marker length must be at least 38z>HHIIIIIIIIHr   z>Br   é   r8   úI;16ÚLÚLAé   ÚRGBé   ÚRGBAz"unable to determine J2K image mode)r#   r   Úi16beÚ
ValueErrorr   Úunpack_fromr"   )r   ÚhdrÚlsizr&   ÚsizÚrsizÚxsizÚysizÚxosizÚyosizÚ_Úcsizr.   ÚssizÚmodes                  r   Ú_parse_codestreamre   q   s@  € ð �'‰'�!‹*€CÜ�=‰=˜Ó€DØˆb‚yØ5ˆÜ˜‹oÐØ
�—‘˜˜q™Ó!Ñ
!€CÜ=C×=OÑ=OØ˜ó>Ñ:€Dˆ$��d˜E 5¨!¨Q°°1°dð �5‰L˜$ ™,Ð'€DØˆq‚yÜ×!Ñ! $¨¨RÓ0ˆØ�‰G�d‰N˜aÑ !Ò#ØˆDð �ˆ:Ðð ˆDð �ˆ:Ðð 
�ŠØˆð �ˆ:Ðð 
�ŠØˆð �ˆ:Ðð 
�ŠØˆð
 �ˆ:Ðð 3ˆÜ˜#ÓÐr   c                ó0   — |dk(  ry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   )ÚnumÚdenomÚexps      r   Ú_res_to_dpirl   “   s*   € ð �‚zØØ�#‰I˜˜S™Ñ! e¨e¡mÑ4Ð4r   c                óh  — t        | «      }d}d}|j                  «       rU|j                  «       }|dk(  r|j                  «       }n/|dk(  r|j	                  d«      d   dk(  rd}|j                  «       rŒU|€J ‚d}d}d}d}d}	d}
d}|j                  «       �r|j                  «       }|dk(  r†|j	                  d	«      \  }}}}t        |t        «      sJ ‚t        |t        «      sJ ‚t        |t        «      sJ ‚||f}|d
k(  r|dz  dkD  rd}�n||d
k(  rd}�ns|dk(  rd}�nj|dk(  rd}�na|dk(  �r[d}�nW|dk(  r?|j	                  d«      \  }}}}|d
k(  �r6|dv rd}�n.|dk(  rd}|dk(  �r!d}�n|dk(  �rd}�n|dk(  �r|dv �r|dv�r|j	                  d«      \  }}t        |t        «      sJ ‚t        |t        «      sJ ‚d}|j	                  d d!|z  z   «      D ]  }t        |t        «      sJ ‚||kD  sŒ|}Œ |dk  �r�|dk(  r
|dk(  rdnd}nd}t        j                  |«      }
t        |«      D ]]  }g }|j	                  d d!|z  z   «      D ]%  }t        |t        «      sJ ‚|j                  |«       Œ' |
j                  t        |«      «       Œ_ |dk(  rd"nd#}nò|d$k(  rí|j                  «       }|j                  «       rÍ|j                  «       }|d%k(  r§|j	                  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|j                  «       rŒÍ|j                  «       r�Œ|�|€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   rN   r8   rO   rP   rL   rQ   rR   rS   rT   rU   s   colrz>BBBI)r   é   Ú1é   ÚCMYKé   s   pclr)rP   rQ   )ro   rP   z>HBú>ÚBÚPÚPAs   res s   rescz>HHHHBBzMalformed JP2 header)r   r4   r?   r2   r/   Ú
isinstancer6   r
   ÚrangeÚappendÚgetcolorÚtuplerl   r"   )$r   ÚreaderÚheaderÚmimetyper=   r.   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š   œ   s'  € ô �r‹]€FØ€FØ€HØ
×
Ñ
Ô
Ø×#Ñ#Ó%ˆà�7Š?Ø×&Ñ&Ó(ˆFØØ�WŠ_Ø×!Ñ! %Ó(¨Ñ+¨wÒ6Ø&�ð ×
Ñ
Õ
ð ÐÐÐà€DØ€DØ
€CØ	€BØ
€CØ€GØ€Dà
×
Ñ
Õ
Ø×#Ñ#Ó%ˆà�7Š?Ø%+×%7Ñ%7¸Ó%@Ñ"ˆF�E˜2˜sÜ˜f¤cÔ*Ð*Ð*Ü˜e¤SÔ)Ð)Ð)Ü˜c¤3Ô'Ð'Ð'Ø˜6�?ˆDØ�QŠw˜C $™J¨!Ò+Ø’Ø�q’Ø’Ø�q’Ø’Ø�q’Ø’Ø�q“Ø’Ø�WŠ_Ø!'×!3Ñ!3°GÓ!<ÑˆD�!�Q˜Ø�q‹yØ˜WÑ$Ø’DØ˜r’\Ø!�DØ˜Q“wØ%šØ˜r“\Ø’DØ�W‹_ ¨Ò!4¸ÀZÒ9OØ×(Ñ(¨Ó/‰GˆB�Ü˜b¤#Ô&Ð&Ð&Ü˜c¤3Ô'Ð'Ð'ØˆLØ"×.Ñ.¨s°c¸C±iÑ/@ÓAò ,�Ü! (¬CÔ0Ð0Ð0Ø˜lÓ*Ø#+‘Lð,ð ˜qÓ Ø˜!’8Ø-1°Vª^¡6À‘Là#(�LÜ&×3Ñ3°LÓA�Ü˜r›ò 3�AØ')�EØ!'×!3Ñ!3°C¸3À¹9Ñ4EÓ!Fò ,˜Ü)¨%´Ô5Ð5Ð5ØŸ™ UÕ+ð,ð ×$Ñ$¤U¨5£\Õ2ð3ð # cšk‘s¨t‘Ø�WŠ_Ø×#Ñ#Ó%ˆCØ×"Ñ"Ô$Ø×(Ñ(Ó*�Ø˜7’?Ø9<¿¹ÈÓ9SÑ6�D˜$  d¨D°$Ü% d¬CÔ0Ð0Ð0Ü% d¬CÔ0Ð0Ð0Ü% d¬CÔ0Ð0Ð0Ü% d¬CÔ0Ð0Ð0Ü% d¬CÔ0Ð0Ð0Ü% d¬CÔ0Ð0Ð0Ü& t¨T°4Ó8�DÜ& t¨T°4Ó8�DØÐ'¨DÐ,<Ø# T˜l˜Øð ×"Ñ"Õ$ðm ×
Ñ
Ö
ðL €|�t�|Ø$ˆÜ˜#ÓÐà��x  gÐ-Ð-r   c                  ót   ‡ — 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)c           
     óØ  — | j                   €J ‚| j                   j                  d«      }|dk(  r:d| _        t        | j                   «      \  | _        | _        | j                  «        nÉ|| j                   j                  d«      z   }|dk(  r™d| _        t        | j                   «      }|\  | _        | _        | _        }| _	        |�|| j                  d<   | j                   j                  d«      j                  d	«      r3t        | j                   «       | j                  «        nd
}t        |«      ‚d| _        d| _        d}d}	 | j                   j                  «       }t!        j"                  |«      j$                  }t1        j2                  dddg| j4                  ¢­d| j                  | j                  | j                  ||f«      g| _        y # t&        $ r‘ d}	 | j                   j)                  «       }| j                   j+                  dt,        j.                  «       | j                   j)                  «       }| j                   j+                  |«       n# t&        $ r d}Y nw xY wY Œêw xY w)NrT   ó   ÿOÿQÚj2kr8   ó      jP  
‡
Újp2r�   rp   s   jp2cÿOÿQznot a JPEG 2000 filer   r   Újpeg2k)r   r#   Úcodecre   Ú_sizeÚ_modeÚ_parse_commentrš   Úcustom_mimetyper‚   ÚinfoÚendswithr"   Ú_reduceÚlayersÚfilenor:   ÚfstatÚst_sizeÚ	Exceptionr   r9   r   ÚSEEK_ENDr	   Ú_Tiler.   Útile)r   Úsigr}   r�   r&   Úfdr   Úposs           r   Ú_openzJpeg2KImageFile._open  sõ  € Ø�w‰wÐ"Ð"Ð"Ø�g‰g�l‰l˜1‹oˆØÐ%Ò%ØˆDŒJÜ%6°t·w±wÓ%?Ñ"ˆDŒJ˜œ
Ø×ÑÕ!à˜Ÿ™Ÿ™ Q›Ñ'ˆCàÐ=Ò=Ø"�”
Ü*¨4¯7©7Ó3�ØRXÑO�”
˜DœJ¨Ô(<¸cÀ4Ä<Ø�?Ø'*�D—I‘I˜eÑ$Ø—7‘7—<‘< Ó#×,Ñ,Ð-DÔEÜ% d§g¡gÔ.Ø×'Ñ'Õ)à,�Ü! #Ó&Ð&àˆŒØˆŒàˆØˆð	Ø—‘—‘Ó!ˆBÜ—X‘X˜b“\×)Ñ)ˆFô �O‰OØØ�AÐ"˜Ÿ	™	Ñ"ØØ—‘˜TŸ\™\¨4¯;©;¸¸FÐCó	ð
ˆ�	øô ò 	ØˆBðØ—g‘g—l‘l“n�Ø—‘—‘˜Q¤§¡Ô,ØŸ™Ÿ™›�Ø—‘—‘˜SÕ!øÜò Ø’ðüð	ús7   Å9G ÇI)ÇA9IÉI)ÉI#É I)É"I#É#I)É(I)c                ó¸  — | j                   €J ‚	 | j                   j                  d«      }|sy |d   }|dv ry | j                   j                  d«      }t        j                  |«      }|dk  rd}t	        |«      ‚|dk(  r/| j                   j                  |dz
  «      dd  | j
                  d<   y | j                   j                  |dz
  t        j                  «       ŒÌ)NrL   r   )é�   éÙ   zMarker length too smalléd   Úcomment)	r   r#   r   rV   rW   r©   r9   r:   r;   )r   ÚmarkerÚtyprY   r   r&   s         r   r§   zJpeg2KImageFile._parse_commentH  sÄ   € Ø�w‰wÐ"Ð"Ð"ØØ—W‘W—\‘\ !“_ˆFÙØØ˜‘)ˆCØ�lÑ"àØ—'‘'—,‘,˜q“/ˆCÜ—]‘] 3Ó'ˆFØ˜ŠzØ/�Ü  “oÐ%Ø�dŠ{à'+§w¡w§|¡|°F¸Q±JÓ'?ÀÀÐ'C�—	‘	˜)Ñ$Øà—‘—‘˜V a™Z¬¯©Ô5ð% r   c                ó4   •— | j                   xs
 t        ‰| �  S r*   )r«   ÚsuperÚreduce)r   Ú	__class__s    €r   rÁ   zJpeg2KImageFile.reduce^  s   ø€ ð �|‰|Ò-œu™w™~Ð-r   c                ó   — || _         y r*   )r«   )r   r�   s     r   rÁ   zJpeg2KImageFile.reducej  s	   € àˆ�r   c                ó"  — | 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dg| j                  ¢­|d   |«      g| _         t        j                  j                  | «      S )Nr   r   rR   rT   rL   )r³   r«   r6   r.   r¥   rw   r{   r¬   r	   r²   Úload)r   ÚpowerÚadjustÚtÚt3s        r   rÅ   zJpeg2KImageFile.loadn  sü   € Ø�9Š9˜ŸšØ˜Ÿ™Ñ%ˆEØ˜a‘ZˆFä�T—Y‘Y˜q‘\ FÑ*¨eÑ3Ó4Ü�T—Y‘Y˜q‘\ FÑ*¨eÑ3Ó4ðˆDŒJð —	‘	˜!‘ˆAÜ˜a ™d¤EÔ*Ð*Ð*Ø�A‘$�q‘'˜4Ÿ<™<¨¯©°a¸±d¸1±g¸qÀ¹tÀA¹wÐGˆBÜ"Ÿ™¨¨1©°°1Ð/A°t·y±yÑ/AÀ1ÀQÁ4ÈÓLÐMˆDŒIä×"Ñ"×'Ñ'¨Ó-Ð-r   )rA   rB   )rA   zVCallable[[int | tuple[int, int], tuple[int, int, int, int] | None], Image.Image] | int)r�   r6   rA   rB   )rA   zImage.core.PixelAccess | None)rF   rG   rH   ÚformatÚformat_descriptionr·   r§   ÚpropertyrÁ   ÚsetterrÅ   Ú__classcell__)rÂ   s   @r   rœ   rœ     sT   ø„ Ø€FØ0Ðó1
óf6ð, ð	.ð	ô	.ó ð	.ð ‡]�]òó ð÷.r   rœ   c                ó$   — | j                  d«      S )N)rŸ   r¡   )Ú
startswith)Úprefixs    r   Ú_acceptrÒ   €  s   € Ø×ÑØFóð r   c                ó|  — | j                   }t        |t        «      r|j                  «       }|j	                  d«      s|j                  dd«      rd}nd}|j                  dd «      }|j                  dd «      }|j                  dd «      }|j                  d	d
«      }|j                  dd «      }	|	�5t        |	t        t        f«      rt        d„ |	D «       «      sd}
t        |
«      ‚|j                  dd«      }|j                  dd «      }|j                  dd «      }|j                  dd«      }|j                  dd«      }|j                  dd«      }|j                  dd«      }|j                  dd«      }|j                  d«      }t        |t        «      r|j                  «       }|j                  dd«      }d}t        |d«      r	 |j                  «       }|||||	|||||||||||f| _        t        j                  | |t        j                   dddg| j"                  ¢­d|«      g«       y # t        $ r d}Y Œbw xY w)Ns   .j2kÚno_jp2Fr    r¢   ÚoffsetÚtile_offsetÚ	tile_sizeÚquality_modeÚratesÚquality_layersc              3  óH   K  — | ]  }t        |t        t        f«      –— Œ y ­wr*   )rw   r6   Úfloat)Ú.0Úquality_layers     r   ú	<genexpr>z_save.<locals>.<genexpr>œ  s    è ø€ ò 
Ø8EŒJ�}¤s¬E l×3ñ
ùs   ‚ "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£   )Úencoderinforw   rE   Úencoderª   ÚgetÚlistr{   ÚallrW   Úhasattrr­   r°   Úencoderconfigr	   Ú_saver²   r.   )Úimr   Úfilenamer©   Ú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€LØ—X‘XÐ.°Ó5€NØÐ!Ü�>¤D¬% =Ô1Üñ 
ØIWô
ô 
ð =ˆÜ˜‹oÐà—h‘hÐ0°!Ó4€OØ—‘Ð)¨4Ó0€IØ—H‘H˜_¨dÓ3€MØ—8‘8˜N¨EÓ2€LØ—(‘(˜=¨&Ó1€KØ—(‘(˜=¨$Ó/€KØ
�(‰(�5˜!Ó
€CØ�X‰X�h Ó&€FØ�h‰h�yÓ!€GÜ�'œ3ÔØ—.‘.Ó"ˆØ
�(‰(�5˜%Ó
 €Cà	€BÜˆr�8Ôð	Ø—‘“ˆBð
 	ØØØØØØØØØØØØØ
ØØð!€BÔô& ‡O�O�B˜œYŸ_™_¨X¸¸1Ð7G¸r¿w¹wÑ7GÈÈDÓQÐRÕSøô- ò 	ØŠBð	ús   ÇH- È-H;È:H;)z.jp2z.j2kz.jpcz.jpfz.jpxz.j2cz	image/jp2)r   r@   rA   ztuple[tuple[int, int], str])ri   r6   rj   r6   rk   r6   rA   zfloat | None)r   r@   rA   zetuple[tuple[int, int], str, str | None, tuple[float, float] | None, ImagePalette.ImagePalette | None])rÑ   rD   rA   rC   )ró   zImage.Imager   r@   rô   zstr | bytesrA   rB   )Ú
__future__r   Ú__lazy_modules__r   r:   r   Útypingr   Ú r   r	   r
   r   ÚTYPE_CHECKINGÚcollections.abcr   r   r   re   rl   rš   rœ   rÒ   rò   Úregister_openrÊ   Úregister_saveÚregister_extensionsÚregister_mimerJ   r   r   ú<module>r     sô   ðõ  #à˜(Ð#Ð ã 	Û 	Û Ý ç 5Ó 5à€ÙÝ(Ý÷Mñ Mó`óD5ðn.Øðn.ðón.ôjl.�i×)Ñ)ô l.ó^ó@TðN €× Ñ �O×*Ñ*¨O¸WÔ EØ €× Ñ �O×*Ñ*¨EÔ 2à €× Ñ Ø×ÑÒLôð €× Ñ �O×*Ñ*¨KÕ 8r   