o
    svXjêq  ã                   @   sÀ  d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZddl	m
Z
mZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ dd	lmZ d
d„ Zdd„ Zdd„ Zdd„ Zdd„ Zi dddef“dddef“dddef“dddef“d d!d"ef“d#d$d%ef“d&d'd(ef“d)d*d+ef“d,d-“d.d/d0ef“d1d2d3ef“d4d5d6ef“d7d8d9ef“d:d;d<ef“d=d>d?ef“d@dAdBef“dCdD“i dEdF“dGdH“dIdJ“dKdL“dMdN“dOdP“dQdR“dSdT“dUdV“dWdXdYef“dZdd[ef“d\d]d^ef“d_d`daef“dbdcddef“dedfdgef“dhdidjef“dkdldmef“¥i dndodpef“dqdrdsef“dtdudvef“dwdxdyef“dzd{d|ef“d}d~def“d€d�d‚ef“dƒd„d…ef“d†d‡dˆef“d‰dŠd‹ef“dŒd�dŽef“d�d�d‘ef“d’d“d”ef“d•d–d—ef“d˜d™“dšd›“dœd�“¥dždŸd d¡d¢d£d¤d¥d¦d§d¨dd©efdªœ¥Zd«d¬„ ZG d­d®„ d®ejƒZd¯d°„ Z d±d²„ Z!d³d³d´d´dµd¶d·œZ"d¸Z#d dd¹dºœZ$d»d¼„ Z%d½d¾„ Z&d¿dÀ„ Z'dÁdÂ„ Z(dÇdÃdÄ„Z)e
 *ej+e)e¡ e
 ,ej+e'¡ e
 -ej+g dÅ¢¡ e
 .ej+dÆ¡ dS )Èé    Né   )ÚImageÚ	ImageFile)Úi16be)Úi32be)Úo8)Úo16be©Ú	deprecate)Úpresetsc                 C   s&   t | j d¡ƒd }t | j|¡ d S )Né   )Úi16ÚfpÚreadr   Ú
_safe_read)ÚselfÚmarkerÚn© r   úP/var/www/html/myproject/venv/lib/python3.10/site-packages/PIL/JpegImagePlugin.pyÚSkip8   s   r   c                 C   s  t | j d¡ƒd }t | j|¡}d|d@  }|| j|< | j ||f¡ |dkrr|d d… dkrrt |dƒ | jd< }t	|d	ƒ| jd
< z|d }t |dƒt |dƒf}W n
 t
y\   Y �n@w |dkrf|| jd< || jd< || jd< �n*|dkr”|d d… dkr”d| jvr’|| jd< | j ¡ | d | _�n|dkr¦|d d… dkr¦|| jd< nö|dkr¹|d d… dkr¹| j |¡ nã|dk�rL|d d… dk�rLd}| j di ¡}	|||d … dk�rKzZ|d7 }t ||ƒ}
|d7 }|| }|d| 7 }||d@ 7 }t||ƒ}|d7 }|||| … }|
d k�r&t|d!ƒd" t |dƒt|dƒd" t |dƒd#œ}||	|
< ||7 }||d@ 7 }W n tj�y@   Y nw |||d … dksÛnP|d$k�ry|d d… d%k�ryt |dƒ| jd&< z|d' }W n
 t�yr   Y n*w || jd(< n#|dk�rœ|d d… d)k�rœ|dd … | jd*< | j ¡ | d | jd+< d| jv�rþd| jv �r z@|  ¡ }|d, }|d- }zt|d! ƒ|d  }W n t�yÍ   |}Y nw t |¡�rÖt‚|d.k�rß|d/9 }||f| jd< W d S  tttttf�yý   d0| jd< Y d S w d S d S )1Nr   zAPP%dé   éàÿ  é   s   JFIFé   Újfifé   Újfif_versioné   é   é
   r   ÚdpiÚ	jfif_unitÚjfif_densityéáÿ  s   Exif Úexifé   éâÿ  s   FPXR Úflashpixé   ó   ICC_PROFILE éíÿ  é   s   Photoshop 3.0 Ú	photoshops   8BIMií  r   i   )ÚXResolutionÚDisplayedUnitsXÚYResolutionÚDisplayedUnitsYéîÿ  s   AdobeÚadobeé   Úadobe_transforms   MPF ÚmpÚmpoffseti(  i  é   gR¸…ëQ@)éH   r9   )r   r   r   r   r   ÚappÚapplistÚappendÚinfoÚdivmodÚ	ExceptionÚtellÚ_exif_offsetÚicclistÚ
setdefaultÚi32ÚstructÚerrorÚ
IndexErrorÚgetexifÚfloatÚ	TypeErrorÚmathÚisnanÚ
ValueErrorÚKeyErrorÚSyntaxErrorÚZeroDivisionError)r   r   r   Úsr:   Úversionr"   r#   Úoffsetr-   ÚcodeÚname_lenÚsizeÚdatar5   r%   Úresolution_unitÚx_resolutionr!   r   r   r   ÚAPP=   sª   
ÿ



€


üÿç€ÿÿ
ûñrZ   c                 C   sJ   t | j d¡ƒd }t | j|¡}|| jd< || jd< | j d|f¡ d S )Nr   ÚcommentÚCOM)	r   r   r   r   r   r=   r:   r;   r<   )r   r   r   rQ   r   r   r   r\   ¶   s
   

r\   c           
      C   s”  t | j d¡ƒd }t | j|¡}t |dƒt |dƒf| _|d | _| jdkr1d| j› d�}t|ƒ‚|d | _| jdkr?d	| _	n| jdkrHd
| _	n| jdkrQd| _	nd| j› d�}t|ƒ‚|dv rjd | j
d< | j
d< | jrŸ| j ¡  | jd d t| jƒkr•g }| jD ]}| |dd … ¡ qƒd |¡}nd }|| j
d< g | _tdt|ƒdƒD ] }|||d … }	| j |	d |	d d |	d d@ |	d f¡ q§d S )Nr   r8   r   r   r   zcannot handle z-bit layersr   ÚLÚRGBr   ÚCMYKz-layer images)éÂÿ  éÆÿ  éÊÿ  éÎÿ  ÚprogressiveÚprogressioné   r,   ó    Úicc_profiler&   é   r   )r   r   r   r   r   Ú_sizeÚbitsrO   ÚlayersÚmoder=   rB   ÚsortÚlenr<   ÚjoinÚrangeÚlayer)
r   r   r   rQ   ÚmsgÚprofileÚprh   ÚiÚtr   r   r   ÚSOFÁ   s@   








.ýrx   c                    sÜ   t | j d¡ƒd }t | j|¡}t|ƒrl|d }|d dkr!dnd}d|d  }t|ƒ|k r5d}t|ƒ‚t |dkr=dnd|d|… ¡‰ tj	d	krR|dkrRˆ  
¡  ‡ fd
d„tD ƒ| j|d@ < ||d … }t|ƒsd S d S )Nr   r   ri   r   é@   zbad quantization table markerÚBÚHÚlittlec                    s   g | ]}ˆ | ‘qS r   r   )Ú.0rv   ©rW   r   r   Ú
<listcomp>  ó    zDQT.<locals>.<listcomp>r   )r   r   r   r   r   ro   rO   ÚarrayÚsysÚ	byteorderÚbyteswapÚzigzag_indexÚquantization)r   r   r   rQ   ÚvÚ	precisionÚ	qt_lengthrs   r   r~   r   ÚDQTó   s    õrŠ   iÀÿ  ÚSOF0zBaseline DCTiÁÿ  ÚSOF1zExtended Sequential DCTr`   ÚSOF2zProgressive DCTiÃÿ  ÚSOF3zSpatial losslessiÄÿ  ÚDHTzDefine Huffman tableiÅÿ  ÚSOF5zDifferential sequential DCTra   ÚSOF6zDifferential progressive DCTiÇÿ  ÚSOF7zDifferential spatialiÈÿ  )ÚJPGÚ	ExtensionNiÉÿ  ÚSOF9zExtended sequential DCT (AC)rb   ÚSOF10zProgressive DCT (AC)iËÿ  ÚSOF11zSpatial lossless DCT (AC)iÌÿ  ÚDACz%Define arithmetic coding conditioningiÍÿ  ÚSOF13z Differential sequential DCT (AC)rc   ÚSOF14z!Differential progressive DCT (AC)iÏÿ  ÚSOF15zDifferential spatial (AC)iÐÿ  )ÚRST0z	Restart 0NiÑÿ  )ÚRST1z	Restart 1NiÒÿ  )ÚRST2z	Restart 2NiÓÿ  )ÚRST3z	Restart 3NiÔÿ  )ÚRST4z	Restart 4NiÕÿ  )ÚRST5z	Restart 5NiÖÿ  )ÚRST6z	Restart 6Ni×ÿ  )ÚRST7z	Restart 7NiØÿ  )ÚSOIzStart of imageNiÙÿ  )ÚEOIzEnd of imageNéÚÿ  ÚSOSzStart of scaniÛÿ  zDefine quantization tableiÜÿ  ÚDNLzDefine number of linesiÝÿ  ÚDRIzDefine restart intervaliÞÿ  ÚDHPzDefine hierarchical progressionißÿ  ÚEXPzExpand reference componentr   ÚAPP0zApplication segment 0r$   ÚAPP1zApplication segment 1r'   ÚAPP2zApplication segment 2iãÿ  ÚAPP3zApplication segment 3iäÿ  ÚAPP4zApplication segment 4iåÿ  ÚAPP5zApplication segment 5iæÿ  ÚAPP6zApplication segment 6içÿ  ÚAPP7zApplication segment 7ièÿ  ÚAPP8zApplication segment 8iéÿ  ÚAPP9zApplication segment 9iêÿ  ÚAPP10zApplication segment 10iëÿ  ÚAPP11zApplication segment 11iìÿ  ÚAPP12zApplication segment 12r+   ÚAPP13zApplication segment 13r2   ÚAPP14zApplication segment 14iïÿ  ÚAPP15zApplication segment 15iðÿ  )ÚJPG0zExtension 0Niñÿ  )ÚJPG1zExtension 1Niòÿ  )ÚJPG2zExtension 2N)ÚJPG3zExtension 3N)ÚJPG4zExtension 4N)ÚJPG5zExtension 5N)ÚJPG6zExtension 6N)ÚJPG7zExtension 7N)ÚJPG8zExtension 8N)ÚJPG9zExtension 9N)ÚJPG10zExtension 10N)ÚJPG11zExtension 11N)ÚJPG12zExtension 12N)ÚJPG13zExtension 13NÚComment)ióÿ  iôÿ  iõÿ  iöÿ  i÷ÿ  iøÿ  iùÿ  iúÿ  iûÿ  iüÿ  éýÿ  iþÿ  c                 C   s   | d d… dkS )Nr8   s   ÿØÿr   )Úprefixr   r   r   Ú_acceptQ  s   rÍ   c                   @   sL   e Zd ZdZdZdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Z	dd„ Z
dd„ ZdS )ÚJpegImageFileÚJPEGzJPEG (ISO 10918)c                 C   s>  | j  d¡}t|ƒsd}t|ƒ‚d}d | _| _g | _i | _i | _i | _	i | _
g | _g | _	 |d }|dkrC|| j  d¡ }t|ƒ}n| j  d¡}q-|tv r‚t| \}}}|d ur^|| |ƒ |dkr{| j}| jd	krld
}dd| j d|dffg| _d S | j  d¡}n|dksŠ|dkr�d}n|dkr˜| j  d¡}nd}t|ƒ‚q.)Nr8   znot a JPEG fileó   ÿr   Téÿ   r   r¦   r_   úCMYK;IÚjpeg©r   r   Ú iÿÿ  i ÿ  zno marker found)r   r   rÍ   rO   rk   rl   rr   Ú
huffman_dcÚ
huffman_acr†   r:   r;   rB   r   ÚMARKERrm   rV   Útile)r   rQ   rs   rv   ÚnameÚdescriptionÚhandlerÚrawmoder   r   r   Ú_open^  sL   


ãzJpegImageFile._openc                 C   s.   | j  |¡}|stjrt| dƒsd| _dS |S )z›
        internal: read more image data
        For premature EOF and LOAD_TRUNCATED_IMAGES adds EOI marker
        so libjpeg can finish decoding
        Ú_endedTs   ÿÙ)r   r   r   ÚLOAD_TRUNCATED_IMAGESÚhasattrrß   )r   Ú
read_bytesrQ   r   r   r   Ú	load_read‘  s
   zJpegImageFile.load_readc                 C   s`  t | jƒdkr	d S | jrd S | jd \}}}}d}| j}|d dkr-|dv r-|| _|df}|r�t| jd |d  | jd |d  ƒ}dD ]}	||	krL nqD|d |d |d |d  |	 d |	 |d  |d |d  |	 d |	 |d  f}| jd |	 d |	 | jd |	 d |	 f| _|	}||||fg| _|df| _dd|d | |d | f}
| j|
fS )	Nr   r   r^   )r]   ÚYCbCrrÕ   )r   r   r   r   r   r8   )ro   rÙ   ÚdecoderconfigrV   rm   Úminrj   )r   rm   rV   ÚdÚeÚoÚaÚscaleÚoriginal_sizerQ   Úboxr   r   r   Údraft¡  s6   &ÿ""ü.

zJpegImageFile.draftc                 C   sæ   t  ¡ \}}t |¡ tj | j¡rt dd|| jg¡ nd}t	|ƒ‚z/t
 |¡�}| ¡  |j| _W d   ƒ n1 s<w   Y  W zt |¡ W n tyR   Y nw zt |¡ W w  tyc   Y w w | jj| _| jj| _g | _d S )NÚdjpegú-outfilezInvalid Filename)ÚtempfileÚmkstempÚosÚcloseÚpathÚexistsÚfilenameÚ
subprocessÚ
check_callrM   r   ÚopenÚloadÚimÚunlinkÚOSErrorrm   rV   rj   rÙ   )r   Úfrõ   rs   Ú_imr   r   r   Ú
load_djpegÅ  s2   

þ€ÿþÿ


zJpegImageFile.load_djpegc                 C   ó   t | ƒS ©N)Ú_getexif©r   r   r   r   r  ß  ó   zJpegImageFile._getexifc                 C   r  r  )Ú_getmpr  r   r   r   r  â  r  zJpegImageFile._getmpc                 C   sB   | j D ]\}}|dkr| dd¡\}}|dkr|  |¡  S qi S )z™
        Returns a dictionary containing the XMP tags.
        Requires defusedxml to be installed.

        :returns: XMP tags in a dictionary.
        r­   ó    r   s   http://ns.adobe.com/xap/1.0/)r;   ÚrsplitÚ_getxmp)r   ÚsegmentÚcontentr   Úxmp_tagsr   r   r   Úgetxmpå  s   €zJpegImageFile.getxmpN)Ú__name__Ú
__module__Ú__qualname__ÚformatÚformat_descriptionrÞ   rã   rî   r  r  r  r  r   r   r   r   rÎ   Z  s    3$rÎ   c                 C   s   d| j vrd S |  ¡  ¡ S )Nr%   )r=   rH   Ú_get_merged_dictr  r   r   r   r  õ  s   
r  c              
   C   s  z| j d }W n
 ty   Y d S w t |¡}| d¡}|d d… dkr&dnd}ddlm} z| |¡}| |j	¡ | 
|¡ t|ƒ}W n tyW } zd	}	t|	ƒ|‚d }~ww z|d
 }
W n tyq } zd}	t|	ƒ|‚d }~ww g }z�|d }td|
ƒD ]p}t |› d�||d ¡}d}tt||ƒƒ}t|d d@ ƒt|d d@ ƒt|d d@ ƒ|d d@ d? |d d@ d? |d d@ dœ}|d dkrËd|d< nd}	t|	ƒ‚ddd d!d"d#d$d%œ}| |d& d'¡|d&< ||d< | |¡ q~||d< W |S  t�y	 } zd(}	t|	ƒ|‚d }~ww ))Nr6   r   r   s   MM *ú>ú<r   )ÚTiffImagePluginz)malformed MP Index (unreadable directory)é°  z(malformed MP Index (no number of images)i°  r   ÚLLLHHri   )Ú	AttributeÚSizeÚ
DataOffsetÚEntryNo1ÚEntryNo2r  l        i   @i    i   é   i   é   iÿÿÿ )ÚDependentParentImageFlagÚDependentChildImageFlagÚRepresentativeImageFlagÚReservedÚImageDataFormatÚMPTyper%  rÏ   z!unsupported picture format in MPOÚ	Undefinedz Large Thumbnail (VGA Equivalent)z$Large Thumbnail (Full HD Equivalent)zMulti-Frame Image (Panorama)zMulti-Frame Image: (Disparity)z Multi-Frame Image: (Multi-Angle)zBaseline MP Primary Image)r   i  i  i  i  i  i   r&  ÚUnknownz!malformed MP Index (bad MP Entry))r=   rN   ÚioÚBytesIOr   rÕ   r  ÚImageFileDirectory_v2ÚseekÚnextrû   Údictr?   rO   rq   rE   Úunpack_fromÚzipÚboolÚgetr<   )r   rW   Úfile_contentsÚheadÚ
endiannessr  r=   r6   rè   rs   ÚquantÚ	mpentriesÚrawmpentriesÚentrynumÚunpackedentryÚlabelsÚmpentryÚmpentryattrÚ	mptypemapr   r   r   r  û  s€   ÿ




€þ
€þÿ
ú
ù	
ú
€þr  r]   r^   rÒ   rä   )Ú1r]   r^   ÚRGBXr_   rä   )@r   r   r   r&   r,   r   r  é   r   r   r   rf   ri   é   é   é*   r8   r   r)   é   é   é   é)   é+   é	   r4   é   r   é   é(   é,   é5   r    é   é   é    é'   é-   é4   é6   é   é   é!   é&   é.   é3   é7   é<   é   é"   é%   é/   é2   é8   é;   é=   é#   é$   é0   é1   é9   é:   é>   é?   r   ))r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   r   r   c                 C   s   t dddd� | S )NÚconvert_dict_qtablesr    zConversion is no longer needed)Úactionr	   ©Úqtablesr   r   r   ro  g  s   ro  c                 C   sZ   t | dƒr
| jdv rdS | jd dd… | jd dd…  | jd dd…  }t |d¡S )Nrl   )r   r   éÿÿÿÿr   r   r8   r   )rá   rl   rr   Ú	samplingsr2  )rü   Úsamplingr   r   r   Úget_samplingl  s   6rv  c                 C   sÚ  | j dks
| jdkrd}t|ƒ‚zt| j }W n ty/ } zd| j› d�}t|ƒ|‚d }~ww | j}dd„ | dd¡D ƒ}| d	d
¡}| dd
¡}	| d¡}
|dkrZd
}d}	d}
n=|t	v rpt	| }d
}| dd
¡}	| d¡}
n't
|tƒs{d}t|ƒ‚|	t	v r‡t	|	  dd
¡}	t
|
tƒr—|
t	v r—t	|
  d¡}
|	dkržd}	n(|	dkr¥d}	n!|	dkr¬d}	n|	dkr³d}	n|	dkrÆ| jdkrÂd}t|ƒ‚t| ƒ}	dd„ }|
dkrß| jdkrÙd}t|ƒ‚t| dd ƒ}
||
ƒ}
| dd¡}d}| d¡}|�r9d}|| }g }|�r| |d |… ¡ ||d … }|sþd}|D ]%}td| t|ƒ ƒ}|d| d  t|ƒ tt|ƒƒ | 7 }|d7 }�q| d!| j d!¡¡}| d"d#¡�pO| d$d#¡}| d%d#¡}| d&d¡}t
|tjƒ�rg| ¡ }t|ƒ|k�rtd'}t|ƒ‚||| d(d¡|| d)d¡|d |d |	|
|||f| _d}|�s—|�rË| jd*k�rªd+| jd  | jd  }n!|d,k�s´|d
k�rÁd| jd  | jd  }n
| jd | jd  }ttj|t|ƒd- t|ƒd ƒ}t | |d.d| j d|fg|¡ d S )/Nr   z cannot write empty image as JPEGzcannot write mode z as JPEGc                 S   s   g | ]}t |ƒ‘qS r   )Úround)r}   Úxr   r   r   r   ‡  r€   z_save.<locals>.<listcomp>r!   rÔ   Úqualityrs  Úsubsamplingrr  Úkeepr†   zInvalid quality settingz4:4:4z4:2:2r   z4:2:0r   z4:1:1rÏ   z3Cannot use 'keep' when original image is not a JPEGc                    sN  ˆd u rˆS t ˆtƒr9zdd„ ˆ ¡ D ƒ‰ W n ty) } zd}t|ƒ|‚d }~ww ‡ fdd„tdtˆ ƒdƒD ƒ‰t ˆtttfƒr¥t ˆtƒrT‡fdd„ttˆƒƒD ƒ‰n	t ˆtƒr]tˆƒ‰dtˆƒ  k ridk spn d	}t|ƒ‚t	ˆƒD ].\}}zt|ƒdkr�t
‚t d
|¡}W n t
y› } zd}t|ƒ|‚d }~ww t|ƒˆ|< qtˆS d S )Nc                 S   s.   g | ]}|  d d¡d   ¡ D ]}t|ƒ‘qqS )ú#r   r   )ÚsplitÚint)r}   ÚlineÚnumr   r   r   r   ´  s    ýþÿz3_save.<locals>.validate_qtables.<locals>.<listcomp>zInvalid quantization tablec                    s   g | ]
}ˆ ||d  … ‘qS )ry   r   )r}   rQ   )Úlinesr   r   r   ½  s    r   ry   c                    s   g | ]
}|ˆ v rˆ | ‘qS r   r   )r}   Úkeyrq  r   r   r   À  s    r   z$None or too many quantization tablesr{   )Ú
isinstanceÚstrÚ
splitlinesrM   rq   ro   ÚtupleÚlistr.  Ú	enumeraterJ   r�   )rr  rè   rs   ÚidxÚtabler   )r�  rr  r   Úvalidate_qtables¯  sH   

þ
€þ


ÿ

€þìz_save.<locals>.validate_qtablesÚextrarg   rË   rh   r,   s   ÿâr*   r[   rd   Fre   Úoptimizer%   zEXIF data is too longÚsmoothÚ
streamtyper_   r   é_   r   rÓ   )ÚwidthÚheightrM   ÚRAWMODErm   rN   rþ   Úencoderinfor2  r   rƒ  r~  r„  r  rv  Úgetattrr<   Úo16ro   r   r=   r   ÚExifÚtobytesÚencoderconfigrV   Úmaxr   ÚMAXBLOCKÚ_save)rü   r   r÷   rs   rÝ   rè   r=   r!   ry  rz  rr  Úpresetr‹  rŒ  ÚMAX_BYTES_IN_MARKERrh   ÚICC_OVERHEAD_LENÚMAX_DATA_BYTES_IN_MARKERÚmarkersrv   r   rV   r[   rd   r�  r%   Úbufsizer   r   r   rœ  z  sÜ   
€þ


%

þÿþý
üûÿ

ô $rœ  c                 C   s@   |   ¡ }t dd||g¡ zt |¡ W d S  ty   Y d S w )NÚcjpegrð   )Ú_dumprø   rù   ró   rý   rþ   )rü   r   r÷   rñ   r   r   r   Ú_save_cjpeg)  s   ÿr¥  c              	   C   sx   t | |ƒ}z| ¡ }|d dkrddlm} | ||¡}W |S W |S  ttfy-   Y |S  ty;   t 	d¡ Y |S w )Nr  r   )ÚMpoImageFilezTImage appears to be a malformed MPO file, it will be interpreted as a base JPEG file)
rÎ   r  ÚMpoImagePluginr¦  ÚadoptrJ   rG   rO   ÚwarningsÚwarn)r   r÷   rü   Úmpheaderr¦  r   r   r   Újpeg_factory5  s$   
	òøûÿûr¬  )z.jfifz.jpez.jpgz.jpegz
image/jpeg)NN)/r�   r)  rK   ró   rE   rø   r‚   rñ   r©  rÕ   r   r   Ú_binaryr   r   r   rD   r   r   r–  Ú
_deprecater
   ÚJpegPresetsr   r   rZ   r\   rx   rŠ   rØ   rÍ   rÎ   r  r  r“  r…   rt  ro  rv  rœ  r¥  r¬  Úregister_openr  Úregister_saveÚregister_extensionsÚregister_mimer   r   r   r   Ú<module>   sH  !y2
ÿ
þ
ý
ü
û
ú
ù
ø	÷

ö
õ
ô
ó
ò
ñ
ðïîíìëêéèçæ
å
ä
ã
â
á
 à
!ß
"Þ
#Ý
$Ü
%Û
&Ú
'Ù
(Ø
)×
*Ö
+Õ
,Ô
-Ó
.Ò
/Ñ
0Ð1Ï2Î3Í4ÁC	 Pú
ý 0
