Ë
    6Š·jU$  ã                  ó  — d dl mZ d dlZd dlmZ d dlmZ ddlmZm	Z	m
Z
mZ 	 ddlmZ dZd
Zd Zdd„Zdd„Zdd„Z G d„ de
j                  «      Zdd„Z	 d	 	 	 	 	 	 	 	 	 dd„Z e	j.                  ej0                  ee«       erw e	j2                  ej0                  e«        e	j4                  ej0                  e«        e	j6                  ej0                  ddg«        e	j8                  ej0                  d«       yy# e$ r d	ZY ŒÙw xY w)é    )ÚannotationsN)ÚBytesIO)ÚIOé   )ÚExifTagsÚImageÚ	ImageFileÚImageSequence)Ú_avifTFÚautoc                óÖ   — t        j                  «       }|j                  d«      D ]A  }|j                  d«      d   | k(  sŒ|j                  d«      d   j                  d«      d   c S  y )Nz, z [r   ú:éÿÿÿÿú )r   Úcodec_versionsÚsplit)Ú
codec_nameÚversionsÚversions      úI/root/workspace/.venv/lib/python3.12/site-packages/PIL/AvifImagePlugin.pyÚget_codec_versionr      sg   € Ü×#Ñ#Ó%€HØ—>‘> $Ó'ò 8ˆØ�=‰=˜Ó˜qÑ! ZÓ/Ø—=‘= Ó% bÑ)×/Ñ/°Ó4°QÑ7Ò7ð8ð ó    c                ó:   — | dd dk7  ry| dd }|dv r	t         s	 yyy)	Né   é   s   ftypFé   )s   avifs   aviss   mif1s   msf1zEimage file could not be identified because AVIF support not installedT)Ú	SUPPORTED)ÚprefixÚmajor_brands     r   Ú_acceptr       s@   € Øˆa�€{�gÒØØ˜˜2�,€KØð ñ õ àWðð Ør   c                 ó¦   — t         rt         S t        t        d«      rt        t        j                  d«      «      S t        j
                  «       xs dS )NÚsched_getaffinityr   r   )ÚDEFAULT_MAX_THREADSÚhasattrÚosÚlenr"   Ú	cpu_count© r   r   Ú_get_default_max_threadsr)   8   s=   € ÝÜ"Ð"ÜŒrÐ&Ô'Ü”2×'Ñ'¨Ó*Ó+Ð+ä�|‰|‹~Ò" Ð"r   c                  óL   ‡ — e Zd ZdZdZdZd	d„Zd
d„Zdˆ fd„Zdd„Z	dd„Z
ˆ xZS )ÚAvifImageFileÚAVIFz
AVIF imager   c                óP  — t         sd}t        |«      ‚t        dk7  r&t        j                  t        «      sd}t        |«      ‚| j                  €J ‚t        j                  | j                  j                  «       t        t        «       «      | _
        | j                  j                  «       \  | _        | _        | _        }}}}| j                  dkD  | _        |r|| j                   d<   |r|| j                   d<   |dk7  s|r†t#        j$                  «       }|r<|j'                  |«       |j)                  t*        j,                  j.                  d«      }nd}||k7  r-||t*        j,                  j.                  <   |j1                  «       }|r|| j                   d<   | j3                  d«       y )	NzAimage file could not be opened because AVIF support not installedr   zInvalid opening codecr   Úicc_profileÚxmpÚexifr   )r   ÚSyntaxErrorÚDECODE_CODEC_CHOICEr   Údecoder_codec_availableÚ
ValueErrorÚfpÚAvifDecoderÚreadr)   Ú_decoderÚget_infoÚ_sizeÚn_framesÚ_modeÚis_animatedÚinfor   ÚExifÚloadÚgetr   ÚBaseÚOrientationÚtobytesÚseek)ÚselfÚmsgÚiccr0   Úexif_orientationr/   Ú	exif_dataÚoriginal_orientations           r   Ú_openzAvifImageFile._openF   se  € ÝØUˆCÜ˜cÓ"Ð"ä &Ò(´×1NÑ1NÜô2
ð *ˆCÜ˜S“/Ð!à�w‰wÐ"Ð"Ð"Ü×)Ñ)Ø�G‰G�L‰L‹NÜÜ$Ó&ó
ˆŒð �M‰M×"Ñ"Ó$ñ 	PˆŒ
�D”M 4¤:¨s°DÐ:JÈCð  Ÿ=™=¨1Ñ,ˆÔáØ'*ˆD�I‰I�mÑ$ÙØ"ˆD�I‰I�eÑà˜qÒ ¡DÜŸ
™
›ˆIÙØ—‘˜tÔ$Ø'0§}¡}´X·]±]×5NÑ5NÐPQÓ'RÑ$à'(Ð$ØÐ#7Ò7Ø7G�	œ(Ÿ-™-×3Ñ3Ñ4Ø ×(Ñ(Ó*�ÙØ $ˆD�I‰I�fÑØ�	‰	�!�r   c                ó    — | j                  |«      sy || _        t        j                  dd| j                  z   d| j
                  «      g| _        y )NÚraw)r   r   r   )Ú_seek_checkÚ_AvifImageFile__framer	   Ú_TileÚsizeÚmodeÚtile)rF   Úframes     r   rE   zAvifImageFile.seekq   sB   € Ø×Ñ Ô&Øð ˆŒÜ—_‘_ U¨F°T·Y±YÑ,>ÀÀ4Ç9Á9ÓMÐNˆ�	r   c                óˆ  •— | j                   r¨| j                  j                  | j                  «      \  }}}}t	        d||z  z  «      | j
                  d<   t	        d||z  z  «      | j
                  d<   | j                  r&| j                  r| j                  j                  «        t        |«      | _        t        ‰| �-  «       S )Niè  Ú	timestampÚduration)rT   r8   Ú	get_framerP   Úroundr>   r5   Ú_exclusive_fpÚcloser   Úsuperr@   )rF   ÚdataÚ	timescaleÚpts_in_timescalesÚduration_in_timescalesÚ	__class__s        €r   r@   zAvifImageFile.loady   s£   ø€ Ø�9Š9ð —‘×'Ñ'¨¯©Ó5ñ GˆD�)Ð.Ð0Fô &+¨4Ð3DÀyÑ3PÑ+QÓ%RˆD�I‰I�kÑ"Ü$)¨$Ð2HÈ9Ñ2TÑ*UÓ$VˆD�I‰I�jÑ!à�wŠw˜4×-Ò-Ø—‘—‘”Ü˜d“mˆDŒGä‰w‰|‹~Ðr   c                 ó   — y ©Nr(   )rF   Úposs     r   Ú	load_seekzAvifImageFile.load_seekˆ   s   € Ør   c                ó   — | j                   S rd   )rP   )rF   s    r   ÚtellzAvifImageFile.tell‹   s   € Ø�|‰|Ðr   )ÚreturnÚNone)rU   Úintri   rj   )ri   zImage.core.PixelAccess | None)re   rk   ri   rj   ©ri   rk   )Ú__name__Ú
__module__Ú__qualname__ÚformatÚformat_descriptionrP   rL   rE   r@   rf   rh   Ú__classcell__)rb   s   @r   r+   r+   A   s.   ø„ Ø€FØ%ÐØ€Gó)óVOõó÷r   r+   c                ó"   — t        | ||d¬«       y )NT)Úsave_all)Ú_save)Úimr5   Úfilenames      r   Ú	_save_allrx   �   s   € Ü	ˆ"ˆb�( TÖ*r   c                óŠ	  ‡#— | j                   j                  «       }|rt        |j                  dg «      «      }ng }h d£Š#t	        ˆ#fd„| g|z   D «       «      }|j                  dd«      }t        |t        «      r
|dk  s|dkD  rd}t        |«      ‚|j                  d	d«      }	|j                  d
|rdnd«      }
|j                  dd«      }|j                  dt        «       «      }|j                  dd«      }|dk7  r"t        j                  |«      sd}t        |«      ‚|j                  dd«      }|j                  dd«      }|j                  dd«      }t        |j                  dd«      «      }t        |j                  d||cxk(  xr dk(  nc «      «      }|j                  d| j                  j                  d«      «      }d}|j                  d«      x}rÆt        |t        j                  «      r|}n%t        j                  «       }|j                  |«       t         j"                  j$                  |v r>|j'                  t         j"                  j$                  «      }|r|j)                  «       nd}n*t        |t        j                  «      r|j)                  «       }|j                  d«      }t        |t*        «      r|j-                  d«      }|j                  d «      }|�Mt        |t.        «      r|j1                  «       }	 t3        |«      }t5        d!„ |D «       «      }|rd#}t        |«      ‚t        j8                  | j:                  |
||||||||||xs d|xs d||xs d|«      }d}d}| j=                  «       }| xr t?        | d$d«       }	 | g|z   D ]¿  }tA        jB                  |«      D ]¥  } | jD                  }!|jD                  d%vr3|jF                  rd&}!n|jD                  ‰#v rd'}!nd(}!| jI                  |!«      } t        |	t        t2        f«      r|	|   }n|	}|jK                  | j)                  d)|!«      || j:                  |!|«       |dz  }|rŒ¥ Œ¿ ŒÁ 	 | jM                  |«       |jO                  «       }"|"€d*}tQ        |«      ‚|jS                  |"«       y # t6        $ r d"}Y �ŒŠw xY w# | jM                  |«       w xY w)+NÚappend_images>   úI;16úI;16BúI;16LúI;16NÚ1ÚFÚIÚLc              3  ón   •K  — | ],  }t        j                  |«      D ]  }|j                  ‰v –— Œ Œ. y ­wrd   )r
   ÚIteratorrS   )Ú.0ÚimsrU   Úgrayscale_modess      €r   ú	<genexpr>z_save.<locals>.<genexpr>�   sB   øè ø€ ò àÜ"×+Ñ+¨CÓ0òð ð 	�
‰
�oÔ%ðØ%ñùs   ƒ25ÚqualityéK   r   éd   zInvalid quality settingrX   Úsubsamplingz4:0:0z4:2:0Úspeedé   Úmax_threadsÚcodecr   zInvalid saving codecÚrangeÚfullÚ	tile_rowsÚ	tile_colsÚalpha_premultipliedFÚ
autotilingr.   r   r0   r   r/   zutf-8Úadvancedc              3  ó^   K  — | ]%  }t        |t        «       xs t        |«      d k7  –— Œ' y­w)é   N)Ú
isinstanceÚtupler&   )r…   Úvs     r   rˆ   z_save.<locals>.<genexpr>Ò   s*   è ø€ ÒTÀaœj¨¬EÓ2Ð2ÒA´c¸!³fÀ±kÓAÑTùs   ‚+-Tzcadvanced codec options must be a dict of key-value string pairs or a series of key-value two-tuplesr=   >   r‚   ÚRGBÚRGBArž   r‚   r�   rN   z1cannot write file as AVIF (encoder returned None))*ÚencoderinfoÚcopyÚlistrA   Úallrš   rk   r4   r)   r   Úencoder_codec_availableÚboolr>   r   r?   r@   r   rB   rC   ÚpoprD   ÚstrÚencodeÚdictÚitemsr›   ÚanyÚ	TypeErrorÚAvifEncoderrR   rh   Úgetattrr
   r„   rS   Úhas_transparency_dataÚconvertÚaddrE   ÚfinishÚOSErrorÚwrite)$rv   r5   rw   rt   r>   rz   Ú	grayscaler‰   rG   rX   rŒ   r�   r�   r�   Úrange_Útile_rows_log2Útile_cols_log2r•   r–   r.   rI   r0   rJ   r/   r—   ÚinvalidÚencÚ	frame_idxÚframe_durationÚcur_idxÚis_single_framer†   rU   Úrawmoder^   r‡   s$                                      @r   ru   ru   “   sq  ø€ ð �>‰>×ÑÓ €DÙÜ˜TŸX™X o°rÓ:Ó;‰àˆâM€OÜó à�4˜-Ñ'ôó €Ið �h‰h�y "Ó%€GÜ�gœsÔ# w°¢{°gÀ²mØ'ˆÜ˜‹oÐà�x‰x˜
 AÓ&€HØ—(‘(˜=±Y©'ÀGÓL€KØ�H‰H�W˜aÓ €EØ—(‘(˜=Ô*BÓ*DÓE€KØ�H‰H�W˜fÓ%€EØ�‚œu×<Ñ<¸UÔCØ$ˆÜ˜‹oÐØ�X‰X�g˜vÓ&€FØ—X‘X˜k¨1Ó-€NØ—X‘X˜k¨1Ó-€NÜ˜tŸx™xÐ(=¸uÓEÓFÐÜ�d—h‘h˜|¨^¸~Ö-RÐQRÔ-RÓSÓT€Jà—(‘(˜=¨"¯'©'¯+©+°mÓ*DÓE€KØÐØ�x‰x˜ÓÐ€tÐÜ�dœEŸJ™JÔ'Ø‰IäŸ
™
›ˆIØ�N‰N˜4Ô Ü�=‰=×$Ñ$¨	Ñ1Ø(Ÿ}™}¬X¯]©]×-FÑ-FÓGÐÙ*3�9×$Ñ$Ô&¸‰DÜ˜œeŸj™jÔ)Ø×$Ñ$Ó&ˆDà
�(‰(�5‹/€Cä�#”sÔØ�j‰j˜Ó!ˆà�x‰x˜
Ó#€HØÐÜ�h¤Ô%Ø—~‘~Ó'ˆHð	UÜ˜X“ˆHô ÑTÈ8ÔTÓTˆGÙð<ð ô ˜S“/Ð!ô ×
Ñ
Ø
�‰ØØØØØØØØØØØÒ�sØŠ�ØØŠ
ˆsØó!€Cð( €IØ€NØ�g‰g‹i€GØ'Ð'ÒQ´¸¸MÈ5Ó0QÐ,Q€Oð$Ø�4˜-Ñ'ò  	ˆCÜ&×/Ñ/°Ó4ò �àŸ*™*�Ø—8‘8Ð#7Ñ7Ø×0Ò0Ø"(™ØŸ™ _Ñ4Ø"%™à"'˜Ø!ŸM™M¨'Ó2�Eô ˜h¬¬u¨Ô6Ø%-¨iÑ%8‘Nà%-�Nð —‘Ø—M‘M %¨Ó1Ø"Ø—J‘JØØ#ôð ˜Q‘�	âÙñ?ñ 	ðF 	�‰�Ôð �:‰:‹<€DØ€|ØAˆÜ�c‹lÐà‡H�HˆT…Nøôa ò 	Ø‹Gð	ûðP 	�‰�Õús%   ÌR ÎCR/ ÑR/ ÒR,Ò+R,Ò/Sz.avifz.avifsz
image/avif)r   r¦   ri   z
str | None)r   Úbytesri   z
bool | strrl   )rv   úImage.Imager5   ú	IO[bytes]rw   ústr | bytesri   rj   )F)
rv   rÀ   r5   rÁ   rw   rÂ   rt   r¤   ri   rj   )Ú
__future__r   r%   Úior   Útypingr   Ú r   r   r	   r
   r   r   ÚImportErrorr2   r#   r   r    r)   r+   rx   ru   Úregister_openrp   Úregister_saveÚregister_save_allÚregister_extensionsÚregister_mimer(   r   r   ú<module>rÍ      s6  ðÝ "ã 	Ý Ý ç 7Ó 7ðÝà€Ið Ð ØÐ óóó4#ôK�I×'Ñ'ô Kó\+ð
 MRðLØðLØ"ðLØ.9ðLØEIðLà	óLð^ €× Ñ �M×(Ñ(¨-¸Ô AÙØ€E×Ñ˜×,Ñ,¨eÔ4Ø€E×Ñ˜M×0Ñ0°)Ô<Ø€E×Ñ˜m×2Ñ2°W¸hÐ4GÔHØ€E×Ñ˜×,Ñ,¨lÕ;ð	 øðm ò Ø‚Iðús   ¤C< Ã<DÄD