Ë
    D·j”1 ã                  ól  — d dl m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
 d dlmZ d dlmZmZ d dlmZmZmZmZmZ ddlmZmZmZmZ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%  ejL                  e'«      Z(dZ)dZ*dZ+dZ,dZ-dZ.dZ/dZ0dZ1dZ2dZ3dZ4dZ5dZ6dZ7dZ8dZ9dZ:dZ;d Z<d!Z=d"Z>d#Z?d$Z@d%ZAd&ZBd'ZCd(ZDd)ZEd*ZFd+ZGd,ZHd-ZId.ZJd/ZKd0ZLd1ZMd2ZNd3ZOd4ZPd5ZQd6ZRd7ZSd8ZTd9ZUd:ZVd;ZWi dd<“d=d>“d?d@“dAdB“dCdD“dEdF“dGdH“dIdJ“dKdL“dMdN“dOdP“dQdR“dSdT“dUdV“dWdX“dYdZ“d[d\“ZXeXj³                  «       D � �ci c]  \  } }|| “Œ
 c}} ZZi e-d d]dd]d^fd_“e.d d]dd]d^fd_“e-d d]d=d]d^fd`“e.d d]d=d]d^fd`“e-dd]dd]d^fda“e.dd]dd]d^fda“e-dd]d=d]d^fdb“e.dd]d=d]d^fdb“e-d d]ddcd^fdd“e.d d]ddcd^fdd“e-d d]d=dcd^fde“e.d d]d=dcd^fde“e-dd]ddcd^fdf“e.dd]ddcd^fdf“e-dd]d=dcd^fdg“e.dd]d=dcd^fdg“e-d d]ddhd^fdi“i e.d d]ddhd^fdi“e-d d]d=dhd^fdj“e.d d]d=dhd^fdj“e-dd]ddhd^fdk“e.dd]ddhd^fdk“e-dd]d=dhd^fdl“e.dd]d=dhd^fdl“e-d d]ddmd^fdn“e.d d]ddmd^fdn“e-d d]d=dmd^fdo“e.d d]d=dmd^fdo“e-dd]ddmd^fdp“e.dd]ddmd^fdp“e-ddcddmd^fdp“e.ddcddmd^fdp“e-dd]d=dmd^fdq“e.dd]d=dmd^fdq“¥i e-dd]ddrd^fds“e-d d]ddtd^fdu“e-dd]ddtd^fdu“e.dd]ddtd^fdv“e-dd]d=dtd^fdw“e-ddcddtd^fdx“e.ddcddtd^fdy“e-d dzdd{d^fd|“e.d dzdd{d^fd}“e-dd]dd{d^fd~“e-ddcdd{d^fd“e.ddcdd{d^fd€“e-ddzdd{d^fd|“e.ddzdd{d^fd}“e-dd]dd�dcfd‚“e.dd]dd�dcfd‚“e-d=d]ddƒd^fd„“¥i e.d=d]ddƒd^fd„“e-d=d]d=dƒd^fd…“e.d=d]d=dƒd^fd…“e-d=d]dd†d^fd‡“e.d=d]dd†d^fd‡“e-d=d]dd†dˆfd‰“e.d=d]dd†dˆfd‰“e-d=d]ddŠd‹fdŒ“e.d=d]ddŠd‹fdŒ“e-d=d]dd�dŽfd�“e.d=d]dd�dŽfd�“e-d=d]dd†d]fd�“e.d=d]dd†d]fd�“e-d=d]ddŠd‘fd’“e.d=d]ddŠd‘fd’“e-d=d]dd�d“fd”“e.d=d]dd�d“fd”“¥i e-d=d]dd†dcfd‡“e.d=d]dd†dcfd‡“e-d=d]ddŠd•fd–“e.d=d]ddŠd•fd–“e-d=d]dd�d—fd˜“e.d=d]dd�d—fd˜“e-d=d]dd†d™fd‡“e.d=d]dd†d™fd‡“e-d=d]ddšd^fd›“e.d=d]ddšd^fdœ“e-d=d]dd�d^fdž“e.d=d]dd�d^fdŸ“e-d=d]dd�dˆfd “e.d=d]dd�dˆfd¡“e-d=d]dd�d]fd¢“e.d=d]dd�d]fd£“e-d=d]dd�dcfdž“¥i e.d=d]dd�dcfdŸ“e-d?d]dd]d^fd¤“e.d?d]dd]d^fd¤“e-d?d]d=d]d^fd¥“e.d?d]d=d]d^fd¥“e-d?d]ddcd^fd¦“e.d?d]ddcd^fd¦“e-d?d]d=dcd^fd§“e.d?d]d=dcd^fd§“e-d?d]ddhd^fd¨“e.d?d]ddhd^fd¨“e-d?d]d=dhd^fd©“e.d?d]d=dhd^fd©“e-d?d]ddmd^fdª“e.d?d]ddmd^fdª“e-d?d]dd�dˆfd«“e-d?d]dd�dcfd¬“¥i e.d?d]dd�dcfd¬“e-d?d]d=dmd^fd­“e.d?d]d=dmd^fd­“e-dCd]dd†d^fd®“e.dCd]dd†d^fd®“e-dCd]ddŠdˆfd¯“e.dCd]ddŠdˆfd¯“e-dCd]dd�d‹fd°“e.dCd]dd�d‹fd°“e-dCd]dd�d^fd±“e-dEd]ddmd^fdp“e.dEd]ddmd^fdp“e-dEd]ddƒd^fd‰“e.dEd]ddƒd^fd‰“e-dId]ddƒd^fd²“e.dId]ddƒd^fd²“¥Z[ e\d³„ e[D «       «      Z]g d´¢Z^ e_ejÀ                  dµd«      s	 e$d¶d·«       dèd¸„Zad¹„ Zbdº„ Zci Zdi Zed»„ Zf G d¼„ d½e«      Zgd¾„ Zhd¿„ ZidÀ„ Zjere
ekef   Zlne
Zl G dÁ„ dÂel«      Zmedem_d        eeem_e         e%j²                  «       D ]:  \  ZnZoeojá                  dÃdÄ«      Zo eqemdÅeo› �eden   d   «        eqemdÆeo› �eeen   «       Œ< [d[e[n[o G dÇ„ dÈem«      ZrerZs G dÉ„ dÊej2                  «      Zti dËdËe-ddd]df“dÌdÌe-dddmdf“dÍdÍe-ddd�d=f“dÎdÎe-d?ddmdf“dÏdÏe-d?dd�d=f“dÐdÑe-dd=d{df“dÒdÒe-dddtdf“dÓdÓe-dd=dtdf“dÔdÕe-dd?d{df“dÖdÖe-d=ddƒdf“d×d×e-d=dd†d f“dØdØe-d=dd†d=f“dÙdÙe-dCdd†df“dÚdÚe-dEddƒdf“dÛdÛe-dIddƒdf“dÜdÜe.dd=d{df“dÝdÝe.dddtdf“dÞe.dd=dtdfdße.dd?d{dfdàœ¥Zudá„ Zv G dâ„ dã«      Zwdédä„Zx ejò                  etjô                  etea«        ejö                  etjô                  ev«        ejø                  etjô                  ex«        ejú                  etjô                  dådæg«        ejü                  etjô                  dç«       yc c}} w )êé    )ÚannotationsN)ÚMutableMapping)ÚFraction)ÚNumberÚRational)ÚIOÚTYPE_CHECKINGÚAnyÚCallableÚNoReturné   )ÚExifTagsÚImageÚ	ImageFileÚImageOpsÚImagePaletteÚTiffTags)Úi16be)Úi32be)Úo8)Ú	deprecate©ÚTYPESFTé   s   IIs   MMéÿ   é   i  i  i  i  i
  i  é  i  i  i  i  i  i  i(  i-  i1  i2  i;  i=  i@  iB  iC  éD  iE  iJ  iR  iS  i[  i  i  i˜‚  i»ƒ  iI†  is‡  ii‡  i¼  i  i–Æ  i—Æ  Úrawé   Ú
tiff_ccitté   Úgroup3é   Úgroup4é   Útiff_lzwé   Ú	tiff_jpegé   Újpegé   Útiff_adobe_deflatei€  Útiff_raw_16i€  Úpackbitsi)€  Útiff_thunderscani²€  Útiff_deflateit‡  Útiff_sgilogiu‡  Útiff_sgilog24imˆ  ÚlzmaiPÃ  ÚzstdiQÃ  Úwebp©r   © )Ú1z1;I)r9   z1;IR)r9   r9   )r9   z1;R)r    )ÚLzL;2I)r:   zL;2IR)r:   zL;2)r:   zL;2R)r$   )r:   zL;4I)r:   zL;4IR)r:   zL;4)r:   zL;4R)r,   )r:   zL;I)r:   zL;IR)r:   r:   )r:   zL;R)é   )úI;16zI;12)é   )r<   r<   )úI;16Br>   )r<   zI;16R)ÚIúI;16S)r?   úI;16BS)r"   )é    )ÚFúF;32F)rC   úF;32BF)r?   zI;32N)r?   úI;32S)r?   úI;32BS)r,   r,   )ÚLArH   )r,   r,   r,   )ÚRGBrI   )rI   zRGB;R)r,   r,   r,   r,   )ÚRGBArJ   ©r   )rI   ÚRGBX)r,   r,   r,   r,   r,   ©r   r   )rI   ÚRGBXX)r,   r,   r,   r,   r,   r,   )r   r   r   )rI   ÚRGBXXX)rJ   ÚRGBa)r   r   )rJ   ÚRGBaX)r   r   r   )rJ   ÚRGBaXX)r    r   )rJ   ÚRGBAX)r    r   r   )rJ   ÚRGBAXX)iç  )r=   r=   r=   )rI   zRGB;16L)rI   zRGB;16B)r=   r=   r=   r=   )rJ   zRGBA;16L)rJ   zRGBA;16B)rI   zRGBX;16L)rI   zRGBX;16B)rJ   zRGBa;16L)rJ   zRGBa;16B)ÚPzP;1)rU   zP;1R)rU   zP;2)rU   zP;2R)rU   zP;4)rU   zP;4R)rU   rU   )rU   ÚPX)ÚPArW   )rU   zP;R)ÚCMYKrX   )rX   ÚCMYKX)rX   ÚCMYKXX)rX   zCMYK;16L)ÚLABr[   c              #  ó8   K  — | ]  }t        |d    «      –— Œ y­w)r$   N)Úlen)Ú.0Úkey_tps     úa/var/www/html/ai-video-generator/backend/venv/lib/python3.12/site-packages/PIL/TiffImagePlugin.pyú	<genexpr>ra     s   è ø€ ÒA¨Vœ#˜f Q™iŸ.ÑAùs   ‚)ó   MM *ó   II* s   MM* s   II *s   MM +s   II+ Úlibtiff_support_custom_tagsz*Support for LibTIFF earlier than version 4r;   c                ó   — | d d t         v S ©Nr$   )ÚPREFIXES©Úprefixs    r`   Ú_acceptrj     s   € Ø�"�1ˆ:œÐ!Ð!ó    c                óx   — t        | «      dkD  }t        |rd| z  n| «      j                  |«      }|r|d d d…   S |S )Nr   éÿÿÿÿ)ÚabsÚIFDRationalÚlimit_rational)ÚvalÚmax_valÚinvÚn_ds       r`   Ú_limit_rationalru   !  sA   € Ü
ˆc‹(�Q‰,€CÜ
¡�a˜#’g¨#Ó
.×
=Ñ
=¸gÓ
F€CÙˆ3‰t�ˆt‰9Ð$ Ð$rk   c                óÖ   — t        | «      }|j                  |j                  f}t        |«      |k  rt	        | t        |«      «      }t        |«      |kD  rt        |Ž } t	        | |«      }|S ©N)r   Ú	numeratorÚdenominatorÚminru   rn   Úmax)rq   rr   Úmin_valÚfracrt   s        r`   Ú_limit_signed_rationalr~   '  sa   € Ü�C‹=€DØ
�.‰.˜$×*Ñ*Ð
*€Cä
ˆ3ƒx�'ÒÜ˜c¤3 w£<Ó0ˆä
ˆ3ƒx�'ÒÜ˜ˆnˆÜ˜c 7Ó+ˆà€Jrk   c                ó   ‡ — ˆ fd„}|S )Nc                ó6   •—  t        | j                  ‰«      |Ž S rw   )ÚgetattrÚ_val)ÚselfÚargsÚops     €r`   Údelegatez_delegate.<locals>.delegate=  s   ø€ Ø%Œw�t—y‘y "Ó% tÐ,Ð,rk   r8   )r…   r†   s   ` r`   Ú	_delegater‡   <  s   ø€ ô-ð €Ork   c                  ó.  — e Zd ZdZ	 dZd(d„Zed„ «       Zed„ «       Zd„ Z	d)d„Z
d*d„Zd+d	„Zd
„ Zd„ Z	  ed«      Z ed«      Z ed«      Z ed«      Z ed«      Z ed«      Z ed«      Z ed«      Z ed«      Z ed«      Z ed«      Z ed«      Z ed«      Z ed«      Z ed«      Z ed«      Z ed«      Z  ed«      Z! ed«      Z" ed«      Z# ed «      Z$ ed!«      Z% ed"«      Z& ed#«      Z' ed$«      Z( ed%«      Z) e*e+d&«      r	 ed&«      Z,y'y'),ro   zÀImplements a rational class where 0/0 is a legal value to match
    the in the wild use of exif rationals.

    e.g., DigitalZoomRatio - 0.00/0.00  indicates that no digital zoom was used
    )Ú
_numeratorÚ_denominatorr‚   c                óˆ  — t        |t        «      r4|j                  | _        |j                  | _        |j                  | _        yt        |t        «      r#|j                  | _        |j                  | _        n|| _        || _        |dk(  rt        d«      | _        y|dk(  rt        |«      | _        yt        ||«      | _        y)z®
        :param value: either an integer numerator, a
        float/rational/other number, or an IFDRational
        :param denominator: Optional integer denominator
        Nr   Únanr   )	Ú
isinstancero   rx   r‰   ry   rŠ   r‚   r   Úfloat)rƒ   Úvaluery   s      r`   Ú__init__zIFDRational.__init__Q  s›   € ô �eœ[Ô)Ø#Ÿo™oˆDŒOØ %× 1Ñ 1ˆDÔØŸ
™
ˆDŒIØä�eœXÔ&Ø#Ÿo™oˆDŒOØ %× 1Ñ 1ˆDÕà#ˆDŒOØ +ˆDÔà˜!ÒÜ˜e›ˆD�IØ˜AÒÜ  ›ˆD�Iä  ¨Ó4ˆD�Irk   c                ó   — | j                   S rw   )r‰   ©rƒ   s    r`   rx   zIFDRational.numeratork  s   € à�‰Ðrk   c                ó   — | j                   S rw   )rŠ   r’   s    r`   ry   zIFDRational.denominatoro  s   € à× Ñ Ð rk   c                ó¶   — | j                   dk(  r| j                  | j                   fS | j                  j                  |«      }|j                  |j                   fS )z…

        :param max_denominator: Integer, the maximum denominator value
        :returns: Tuple of (numerator, denominator)
        r   )ry   rx   r‚   Úlimit_denominator)rƒ   Úmax_denominatorÚfs      r`   rp   zIFDRational.limit_rationals  sN   € ð ×Ñ˜qÒ Ø—>‘> 4×#3Ñ#3Ð3Ð3à�I‰I×'Ñ'¨Ó8ˆØ�{‰{˜AŸM™MÐ)Ð)rk   c                ó>   — t        t        | j                  «      «      S rw   )ÚstrrŽ   r‚   r’   s    r`   Ú__repr__zIFDRational.__repr__€  s   € Ü”5˜Ÿ™Ó#Ó$Ð$rk   c                ó6   — | j                   j                  «       S rw   )r‚   Ú__hash__r’   s    r`   rœ   zIFDRational.__hash__ƒ  s   € Ø�y‰y×!Ñ!Ó#Ð#rk   c                ó’   — | j                   }t        |t        «      r|j                   }t        |t        «      rt        |«      }||k(  S rw   )r‚   r�   ro   rŽ   )rƒ   Úotherrq   s      r`   Ú__eq__zIFDRational.__eq__†  s;   € Ø�i‰iˆÜ�eœ[Ô)Ø—J‘JˆEÜ�eœUÔ#Ü˜“*ˆCØ�e‰|Ðrk   c                óH   — | j                   | j                  | j                  gS rw   )r‚   r‰   rŠ   r’   s    r`   Ú__getstate__zIFDRational.__getstate__Ž  s   € Ø—	‘	˜4Ÿ?™?¨D×,=Ñ,=Ð>Ð>rk   c                óf   — t         j                  | d«       |\  }}}|| _        || _        || _        y )Nr   )ro   r�   r‚   r‰   rŠ   )rƒ   Ústater‚   r‰   rŠ   s        r`   Ú__setstate__zIFDRational.__setstate__‘  s4   € Ü×Ñ˜T 1Ô%Ø).Ñ&ˆˆj˜,ØˆŒ	Ø$ˆŒØ(ˆÕrk   Ú__add__Ú__radd__Ú__sub__Ú__rsub__Ú__mul__Ú__rmul__Ú__truediv__Ú__rtruediv__Ú__floordiv__Ú__rfloordiv__Ú__mod__Ú__rmod__Ú__pow__Ú__rpow__Ú__pos__Ú__neg__Ú__abs__Ú	__trunc__Ú__lt__Ú__gt__Ú__le__Ú__ge__Ú__bool__Ú__ceil__Ú	__floor__Ú	__round__Ú__int__Nr7   ©Úreturnr™   ©rÁ   Úint)rž   ÚobjectrÁ   Úbool)-Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú	__slots__r�   Úpropertyrx   ry   rp   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·   r¸   r¹   rº   r»   r¼   r½   r¾   Úhasattrr   r¿   r8   rk   r`   ro   ro   C  s‚  „ ñðð
 7€Ió5ð4 ñó ðð ñ!ó ð!ò*ó%ó$óò?ò)ðñ ˜	Ó"€GÙ˜Ó$€HÙ˜	Ó"€GÙ˜Ó$€HÙ˜	Ó"€GÙ˜Ó$€HÙ˜MÓ*€KÙ˜^Ó,€LÙ˜^Ó,€LÙ˜oÓ.€MÙ˜	Ó"€GÙ˜Ó$€HÙ˜	Ó"€GÙ˜Ó$€HÙ˜	Ó"€GÙ˜	Ó"€GÙ˜	Ó"€GÙ˜+Ó&€IÙ�xÓ €FÙ�xÓ €FÙ�xÓ €FÙ�xÓ €FÙ˜Ó$€HÙ˜Ó$€HÙ˜+Ó&€IÙ˜+Ó&€Iáˆx˜Ô#Ù˜IÓ&‰ð $rk   ro   c                ó   ‡ ‡— ˆ ˆfd„}|S )Nc                ó¤   •— ddl m} | j                  j                  d«      r"| j                  dd  j	                  dd«      |‰<   ‰| ft
        ‰<   | S )Nr   r   Úload_r&   Ú_ú )r   r   rÆ   Ú
startswithÚreplaceÚ_load_dispatch)Úfuncr   ÚidxÚsizes     €€r`   Ú	decoratorz#_register_loader.<locals>.decoratorÀ  sL   ø€ Ý#à�=‰=×#Ñ# GÔ,ØŸ™ q rÐ*×2Ñ2°3¸Ó<ˆE�#‰JØ" D˜jŒ�sÑØˆrk   r8   )rÖ   r×   rØ   s   `` r`   Ú_register_loaderrÙ   ¿  s   ù€ õð Ðrk   c                ó   ‡ — ˆ fd„}|S )Nc                ó   •— | t         ‰<   | S rw   )Ú_write_dispatch)rÕ   rÖ   s    €r`   rØ   z#_register_writer.<locals>.decoratorÌ  s   ø€ Ø#Œ˜ÑØˆrk   r8   )rÖ   rØ   s   ` r`   Ú_register_writerrÝ   Ë  s   ø€ ôð Ðrk   c                ó’   ‡‡— ddl m} | \  }Š}|||<   t        j                  d‰› �«      Š‰dˆˆfd„	ft        |<   ˆfd„t
        |<   y )Nr   r   ú=c                óH   •— | j                  t        |«      ‰z  › ‰› �|«      S rw   )Ú_unpackr]   )rƒ   ÚdataÚ
legacy_apiÚfmtr×   s      €€r`   ú<lambda>z!_register_basic.<locals>.<lambda>Û  s)   ø€ Ø�L‰LœC ›I¨Ñ-Ð.¨s¨eÐ4°dÓ;ð rk   c                ó<   •‡ — dj                  ˆˆ fd„|D «       «      S )Nrk   c              3  óB   •K  — | ]  }‰j                  ‰|«      –— Œ y ­wrw   )Ú_pack)r^   r�   rä   rƒ   s     €€r`   ra   z4_register_basic.<locals>.<lambda>.<locals>.<genexpr>à  s   øè ø€ Ò<¨E�—‘˜C ×'Ñ<ùs   ƒ©Újoin)rƒ   Úvaluesrä   s   ` €r`   rå   z!_register_basic.<locals>.<lambda>ß  s   ù€ Ø�‰Ô<°VÔ<Ó<ð rk   ©T)r   r   ÚstructÚcalcsizerÔ   rÜ   )Úidx_fmt_namer   rÖ   Únamerä   r×   s       @@r`   Ú_register_basicrñ   Ó  sN   ù€ Ýà!�N€CˆˆdØ€Eˆ#�JÜ�?‰?˜Q˜s˜e˜9Ó%€Dàõ	
ð„N�3Ñó„O�CÒrk   c                  óX  — e Zd ZU dZi Zded<   i Zded<   	 	 	 d<	 	 	 	 	 	 	 d=d„Z ed„ «      Z	 ed	„ «      Z
ed>d
„«       Zej                  d?d„«       Zd@d„ZdAd„Zd„ ZdBd„Zd„ Zd„ Zd„ Zd„ ZdCd„Zd„ Zd„ Zd„ Z e eeej:                  ddfej<                  ddfej>                  ddfej@                  ddfejB                  d d!fejD                  d"d#fejF                  d$d%fejH                  ddfejJ                  d&d'fg	«      «        e&d(d(«      dDd)„«       Z' e(d(«      d*„ «       Z) e&d+d(«      dDd,„«       Z* e(d+«      d-„ «       Z+ e&d.d/«      dDd0„«       Z, e(d.«      d1„ «       Z- e&d2d(«      dDd3„«       Z. e(d2«      d4„ «       Z/ e&d5d/«      dDd6„«       Z0 e(d5«      d7„ «       Z1d8„ Z2d9„ Z3dEd:„Z4d;„ Z5y)FÚImageFileDirectory_v2a  This class represents a TIFF tag directory.  To speed things up, we
    don't decode tags unless they're asked for.

    Exposes a dictionary interface of the tags in the directory::

        ifd = ImageFileDirectory_v2()
        ifd[key] = 'Some Data'
        ifd.tagtype[key] = TiffTags.ASCII
        print(ifd[key])
        'Some Data'

    Individual values are returned as the strings or numbers, sequences are
    returned as tuples of the values.

    The tiff metadata type of each item is stored in a dictionary of
    tag types in
    :attr:`~PIL.TiffImagePlugin.ImageFileDirectory_v2.tagtype`. The types
    are read from a tiff file, guessed from the type added, or added
    manually.

    Data Structures:

        * ``self.tagtype = {}``

          * Key: numerical TIFF tag number
          * Value: integer corresponding to the data type from
            :py:data:`.TiffTags.TYPES`

          .. versionadded:: 3.0.0

    'Internal' data structures:

        * ``self._tags_v2 = {}``

          * Key: numerical TIFF tag number
          * Value: decoded data, as tuple for multiple values

        * ``self._tagdata = {}``

          * Key: numerical TIFF tag number
          * Value: undecoded byte string from file

        * ``self._tags_v1 = {}``

          * Key: numerical TIFF tag number
          * Value: decoded data in the v1 format

    Tags will be found in the private attributes ``self._tagdata``, and in
    ``self._tags_v2`` once decoded.

    ``self.legacy_api`` is a value for internal use, and shouldn't be changed
    from outside code. In cooperation with
    :py:class:`~PIL.TiffImagePlugin.ImageFileDirectory_v1`, if ``legacy_api``
    is true, then decoded tags will be populated into both ``_tags_v1`` and
    ``_tags_v2``. ``_tags_v2`` will be used if this IFD is used in the TIFF
    save routine. Tags should be read from ``_tags_v1`` if
    ``legacy_api == true``.

    z>dict[int, Callable[[ImageFileDirectory_v2, bytes, bool], Any]]rÔ   zdict[int, Callable[..., Any]]rÜ   Nc                óÐ  — t        |«      sdt        |«      › d�}t        |«      ‚|�|n|dd | _        | j                  t        k(  rd| _        n(| j                  t        k(  rd| _        nd}t        |«      ‚|d   dk(  | _        || _        i | _	        	 | j                  «        | j                  r| j                  d	|d
d «      n| j                  d|dd «      \  | _        d| _        y)a—  Initialize an ImageFileDirectory.

        To construct an ImageFileDirectory from a real file, pass the 8-byte
        magic header to the constructor.  To only set the endianness, pass it
        as the 'prefix' keyword argument.

        :param ifh: One of the accepted magic headers (cf. PREFIXES); also sets
              endianness.
        :param prefix: Override the endianness of the file.
        znot a TIFF file (header z not valid)Nr    ú>ú<znot a TIFF IFDé+   ÚQr,   r:   r$   F)rj   ÚreprÚSyntaxErrorÚ_prefixÚMMÚ_endianÚIIÚ_bigtiffÚgroupÚtagtypeÚresetrá   ÚnextÚ_legacy_api)rƒ   Úifhri   r   Úmsgs        r`   r�   zImageFileDirectory_v2.__init__*  sÝ   € ô  �sŒ|Ø,¬T°#«Y¨K°{ÐCˆCÜ˜cÓ"Ð"Ø!'Ð!3‘v¸¸R¸a¸ˆŒØ�<‰<œ2ÒØˆD�LØ�\‰\œRÒØˆD�Là"ˆCÜ˜cÓ"Ð"Ø˜A™ "™ˆŒØˆŒ
Ø')ˆŒØ'Ø�
‰
Œà*.¯-ª-ˆD�L‰L˜˜c ! "˜gÔ&¸T¿\¹\È#ÈsÐSTÐSUÈwÓ=Wñ 	ˆŒð !ˆÕrk   c                ó   — | j                   S rw   )rû   r’   s    r`   rå   zImageFileDirectory_v2.<lambda>O  ó
   €  4§<¡<€ rk   c                ó   — | j                   S rw   )Ú_offsetr’   s    r`   rå   zImageFileDirectory_v2.<lambda>P  r  rk   c                ó   — | j                   S rw   )r  r’   s    r`   rã   z ImageFileDirectory_v2.legacy_apiR  s   € à×ÑÐrk   c                ó   — d}t        |«      ‚)Nz"Not allowing setting of legacy api)Ú	Exception)rƒ   r�   r  s      r`   rã   z ImageFileDirectory_v2.legacy_apiV  s   € à2ˆÜ˜‹nÐrk   c                óX   — i | _         i | _        i | _        i | _        d | _        d | _        y rw   )Ú_tags_v1Ú_tags_v2Ú_tagdatar  Ú_nextr
  r’   s    r`   r  zImageFileDirectory_v2.reset[  s,   € Ø(*ˆŒØ(*ˆŒØ*,ˆŒØˆŒØˆŒ
Øˆ�rk   c                ó*   — t        t        | «      «      S rw   )r™   Údictr’   s    r`   Ú__str__zImageFileDirectory_v2.__str__c  s   € Ü”4˜“:‹Ðrk   c                ó¦   — | j                  «       D ��ci c]0  \  }}t        j                  || j                  «      j                  |“Œ2 c}}S c c}}w )z�
        :returns: dict of name|key: value

        Returns the complete tag dictionary, with named tags where possible.
        )Úitemsr   Úlookupr   rð   )rƒ   Úcoder�   s      r`   ÚnamedzImageFileDirectory_v2.namedf  sH   € ð  $Ÿz™z›|÷
á��eô �O‰O˜D $§*¡*Ó-×2Ñ2°EÑ9ó
ð 	
ùó 
s   ”5Ac                ój   — t        t        | j                  «      t        | j                  «      z  «      S rw   )r]   Úsetr  r  r’   s    r`   Ú__len__zImageFileDirectory_v2.__len__q  ó$   € Ü”3�t—}‘}Ó%¬¨D¯M©MÓ(:Ñ:Ó;Ð;rk   c                ó  — || j                   vrG| j                  |   }| j                  |   }| j                  |   \  }} || || j                  «      | |<   | j                   |   }| j                  rt        |t        t        f«      s|f}|S rw   )r  r  r  rÔ   rã   r�   ÚtupleÚbytes)rƒ   Útagrâ   Útypr×   Úhandlerrq   s          r`   Ú__getitem__z!ImageFileDirectory_v2.__getitem__t  s‚   € Ø�d—m‘mÑ#Ø—=‘= Ñ%ˆDØ—,‘,˜sÑ#ˆCØ ×/Ñ/°Ñ4‰MˆD�'Ù  d¨D¯O©OÓ<ˆD�‰IØ�m‰m˜CÑ ˆØ�?Š?¤:¨c´E¼5°>Ô#BØ�&ˆCØˆ
rk   c                ó>   — || j                   v xs || j                  v S rw   )r  r  ©rƒ   r"  s     r`   Ú__contains__z"ImageFileDirectory_v2.__contains__  ó   € Ø�d—m‘mÐ#Ò; s¨d¯m©mÐ';Ð;rk   c                ó>   — | j                  ||| j                  «       y rw   )Ú_setitemrã   )rƒ   r"  r�   s      r`   Ú__setitem__z!ImageFileDirectory_v2.__setitem__‚  s   € Ø�‰�c˜5 $§/¡/Õ2rk   c           	     óþ  ‡	— t         t        t        f}t        j                  || j
                  «      Š	t        ||«      r|gn|}|| j                  v�rØ‰	j                  r‰	j                  | j                  |<   �n±t        j                  | j                  |<   t        d„ |D «       «      rAt        d„ |D «       «      rt        j                  nt        j                  | j                  |<   �nAt        d„ |D «       «      r t        d„ |D «       «      rt        j                  | j                  |<   nÿt        d„ |D «       «      rt        j                  | j                  |<   nÏt        d„ |D «       «      rt        j                  nt        j                   | j                  |<   n�t        d„ |D «       «      rt        j"                  | j                  |<   n_t        d„ |D «       «      rt        j$                  | j                  |<   n/t        d	„ |D «       «      rt        j&                  | j                  |<   | j                  |   t        j                  k(  r2|D �cg c]&  }t        |t        «      r|j)                  d
d«      n|‘Œ( }}nJ| j                  |   t        j                  k(  r*|D �cg c]  }t        |t*        «      rt-        |«      n|‘Œ! }}| j                  |   t        j                  k(  xr t        |t.        «      }|st1        ˆ	fd„|D «       «      }|r| j2                  n| j4                  }|sˆ‰	j6                  dk(  s<| j                  |   t        j&                  k(  s‰	j6                  €Mt9        |«      dk(  r?|s=|r2| j                  |   t        j                  t        j                  fv r|f}	 |\  ||<   y |||<   y c c}w c c}w # t:        $ r0 t=        j>                  d|› dt9        |«      › d�«       |d   ||<   Y y w xY w)Nc              3  ó<   K  — | ]  }t        |t        «      –— Œ y ­wrw   )r�   ro   ©r^   Úvs     r`   ra   z1ImageFileDirectory_v2._setitem.<locals>.<genexpr>�  s   è ø€ ÒB°a”z !¤[×1ÑBùó   ‚c              3  ó&   K  — | ]	  }|d k\  –— Œ y­w©r   Nr8   r/  s     r`   ra   z1ImageFileDirectory_v2._setitem.<locals>.<genexpr>“  s   è ø€ Ò6¨!˜q A�vÑ6ùó   ‚c              3  ó<   K  — | ]  }t        |t        «      –— Œ y ­wrw   )r�   rÃ   r/  s     r`   ra   z1ImageFileDirectory_v2._setitem.<locals>.<genexpr>–  ó   è ø€ Ò<°œ A¤s×+Ñ<ùr1  c              3  ó<   K  — | ]  }d |cxk  xr dk  nc –— Œ y­w)r   r   Nr8   r/  s     r`   ra   z1ImageFileDirectory_v2._setitem.<locals>.<genexpr>—  s   è ø€ Ò:¨a˜1 ž> EŸ>˜>Ñ:ùr1  c              3  ó<   K  — | ]  }d |cxk  xr dk  nc –— Œ y­w)i €ÿÿi €  Nr8   r/  s     r`   ra   z1ImageFileDirectory_v2._setitem.<locals>.<genexpr>™  s   è ø€ ÒB°a˜X¨Ö1¨E×1Ð1ÑBùr1  c              3  ó&   K  — | ]	  }|d k\  –— Œ y­wr3  r8   r/  s     r`   ra   z1ImageFileDirectory_v2._setitem.<locals>.<genexpr>ž  s   è ø€ Ò":¨a 1¨¥6Ñ":ùr4  c              3  ó<   K  — | ]  }t        |t        «      –— Œ y ­wrw   )r�   rŽ   r/  s     r`   ra   z1ImageFileDirectory_v2._setitem.<locals>.<genexpr>¡  ó   è ø€ Ò>°!œ A¤u×-Ñ>ùr1  c              3  ó<   K  — | ]  }t        |t        «      –— Œ y ­wrw   )r�   r™   r/  s     r`   ra   z1ImageFileDirectory_v2._setitem.<locals>.<genexpr>£  r6  r1  c              3  ó<   K  — | ]  }t        |t        «      –— Œ y ­wrw   )r�   r!  r/  s     r`   ra   z1ImageFileDirectory_v2._setitem.<locals>.<genexpr>¥  r;  r1  ÚasciirÓ   c              3  ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wrw   )Úcvt_enum)r^   r�   Úinfos     €r`   ra   z1ImageFileDirectory_v2._setitem.<locals>.<genexpr>²  s   øè ø€ ÒD°E˜4Ÿ=™=¨×/ÑDùs   ƒr   zMetadata Warning, tag z had too many entries: z, expected 1r   ) r   r!  r™   r   r  r   r�   r  ÚtypeÚ	UNDEFINEDÚallÚRATIONALÚSIGNED_RATIONALÚSHORTÚSIGNED_SHORTÚLONGÚSIGNED_LONGÚDOUBLEÚASCIIÚBYTEÚencoderÃ   rŽ   r  r   r  r  Úlengthr]   Ú
ValueErrorÚwarningsÚwarn)
rƒ   r"  r�   rã   Ú	basetypesrë   r0  Úis_ifdÚdestrA  s
            @r`   r+  zImageFileDirectory_v2._setitem…  sE  ø€ ÜœU¤CÐ(ˆ	ä�‰˜s D§J¡JÓ/ˆÜ& u¨iÔ8�%‘¸eˆà�d—l‘lÒ"Ø�yŠyØ$(§I¡I�—‘˜SÓ!ä$,×$6Ñ$6�—‘˜SÑ!ÜÑB¸6ÔBÔBô Ñ6¨vÔ6Ô6ô !×)Ò)ä%×5Ñ5ð —L‘L Ó%ô
 Ñ<°VÔ<Ô<ÜÑ:°6Ô:Ô:Ü,4¯N©N˜Ÿ™ SÒ)ÜÑB¸6ÔBÔBÜ,4×,AÑ,A˜Ÿ™ SÒ)ô  #Ñ":°6Ô":Ô:ô %ŸMšMä!)×!5Ñ!5ð Ÿ™ SÒ)ô
 Ñ>°vÔ>Ô>Ü(0¯©�D—L‘L Ò%ÜÑ<°VÔ<Ô<Ü(0¯©�D—L‘L Ò%ÜÑ>°vÔ>Ô>Ü(0¯©�D—L‘L Ñ%à�<‰<˜Ñ¤× 2Ñ 2Ò2ð  öàô 1;¸1¼cÔ0B�—‘˜ )Ô,ÈÑIðˆFñ ð �\‰\˜#Ñ¤(×"3Ñ"3Ò3ØEKÖLÀ¤*¨Q´Ô"4”e˜A”h¸!Ñ;ÐLˆFÐLà—‘˜cÑ"¤h§m¡mÑ3ÒP¼
À6Ì4Ó8PˆÙÜÓD¸VÔDÓDˆFá *ˆt�}Š}°·±ˆñ Ø�[‰[˜AÒØ�|‰|˜CÑ ¤H§M¡MÒ1Ø—‘Ð#¬¨F«°qÒ(8Áñ ˜dŸl™l¨3Ñ/Ü×!Ñ!Ü×(Ñ(ð4ñ ð !˜�ð&Ø%‘��c’ð ˆD�ŠIùòUùò
 Møô4 ò &ä—‘Ø,¨S¨EÐ1HÜ˜6“{�m <ð1ôð # 1™I��S“	ð&ús   É+N9Ê!$N>Î+O Ï6O<Ï;O<c                ó¬   — | j                   j                  |d «       | j                  j                  |d «       | j                  j                  |d «       y rw   )r  Úpopr  r  r'  s     r`   Ú__delitem__z!ImageFileDirectory_v2.__delitem__Õ  s>   € Ø�‰×Ñ˜#˜tÔ$Ø�‰×Ñ˜#˜tÔ$Ø�‰×Ñ˜#˜tÕ$rk   c                ój   — t        t        | j                  «      t        | j                  «      z  «      S rw   )Úiterr  r  r  r’   s    r`   Ú__iter__zImageFileDirectory_v2.__iter__Ú  ó$   € Ü”C˜Ÿ™Ó&¬¨T¯]©]Ó);Ñ;Ó<Ð<rk   c                óH   — t        j                  | j                  |z   |«      S rw   )rí   Úunpackrý   )rƒ   rä   râ   s      r`   rá   zImageFileDirectory_v2._unpackÝ  s   € Ü�}‰}˜TŸ\™\¨CÑ/°Ó6Ð6rk   c                óH   — t        j                  | j                  |z   g|¢­Ž S rw   )rí   Úpackrý   )rƒ   rä   rë   s      r`   rè   zImageFileDirectory_v2._packà  s   € Ü�{‰{˜4Ÿ<™<¨#Ñ-Ð7°Ò7Ð7rk   ÚHÚshortr:   ÚlongÚbzsigned byteÚhzsigned shortÚlzsigned longr—   rŽ   ÚdÚdoublerø   Úlong8r   c                ó   — |S rw   r8   ©rƒ   râ   rã   s      r`   Ú	load_bytezImageFileDirectory_v2.load_byteô  ó   € àˆrk   c                ót   — t        |t        «      rt        |«      }t        |t        «      rt        |f«      }|S rw   )r�   ro   rÃ   r!  ©rƒ   râ   s     r`   Ú
write_bytez ImageFileDirectory_v2.write_byteø  s/   € ä�dœKÔ(Ü�t“9ˆDÜ�dœCÔ Ü˜$˜“>ˆDØˆrk   r    c                óR   — |j                  d«      r|d d }|j                  dd«      S )Nó    rm   zlatin-1rÓ   )ÚendswithÚdecoderk  s      r`   Úload_stringz!ImageFileDirectory_v2.load_string   s*   € à�=‰=˜ÔØ˜˜�9ˆDØ�{‰{˜9 iÓ0Ð0rk   c                ó†   — t        |t        «      rt        |«      }t        |t        «      s|j	                  dd«      }|dz   S )Nr>  rÓ   rr  )r�   rÃ   r™   r!  rN  ©rƒ   r�   s     r`   Úwrite_stringz"ImageFileDirectory_v2.write_string  s;   € ô �eœSÔ!Ü˜“JˆEÜ˜%¤Ô'Ø—L‘L ¨)Ó4ˆEØ�u‰}Ðrk   r&   r,   c           
     ó¦   ‡‡— | j                  t        |«      dz  › d�|«      }ˆfd„Št        ˆfd„t        |d d d…   |dd d…   «      D «       «      S )Nr$   r:   c                ó(   •— ‰r| |fS t        | |«      S rw   ©ro   ©Úard  rã   s     €r`   Úcombinez4ImageFileDirectory_v2.load_rational.<locals>.combine  ó   ø€ Ù'�A�q�6Ð>¬[¸¸AÓ->Ð>rk   c              3  ó6   •K  — | ]  \  }} ‰||«      –— Œ y ­wrw   r8   ©r^   ÚnumÚdenomr~  s      €r`   ra   z6ImageFileDirectory_v2.load_rational.<locals>.<genexpr>  ó   øè ø€ ÒV©Z¨S°%‘W˜S %×(ÑVùó   ƒr    r   ©rá   r]   r   Úzip©rƒ   râ   rã   Úvalsr~  s     ` @r`   Úload_rationalz#ImageFileDirectory_v2.load_rational  óU   ù€ à�|‰|œs 4›y¨A™~Ð.¨aÐ0°$Ó7ˆô	?ô ÓV¼3¸tÁCÀaÀC¹yÈ$ÈqÈtÐRSÈtÉ*Ó;UÔVÓVÐVrk   c                ó8   ‡ — dj                  ˆ fd„|D «       «      S )Nrk   c              3  óX   •K  — | ]!  } ‰j                   d gt        |d«      ¢­Ž –— Œ# y­w)Ú2Ll   ÿÿ N)rè   ru   ©r^   r}   rƒ   s     €r`   ra   z7ImageFileDirectory_v2.write_rational.<locals>.<genexpr>  s-   øè ø€ ò 
ØDHˆJˆD�J‰J�tÐ?œo¨d°IÓ>Ö?ñ
ùs   ƒ'*ré   ©rƒ   rë   s   ` r`   Úwrite_rationalz$ImageFileDirectory_v2.write_rational  s!   ø€ à�x‰xó 
ØLRô
ó 
ð 	
rk   r*   c                ó   — |S rw   r8   rk  s      r`   Úload_undefinedz$ImageFileDirectory_v2.load_undefined  rm  rk   c                ó’   — t        |t        «      rt        |«      }t        |t        «      rt        |«      j	                  dd«      }|S )Nr>  rÓ   )r�   ro   rÃ   r™   rN  rw  s     r`   Úwrite_undefinedz%ImageFileDirectory_v2.write_undefined"  s:   € ä�eœ[Ô)Ü˜“JˆEÜ�eœSÔ!Ü˜“J×%Ñ% g¨yÓ9ˆEØˆrk   é
   c           
     ó¦   ‡‡— | j                  t        |«      dz  › d�|«      }ˆfd„Št        ˆfd„t        |d d d…   |dd d…   «      D «       «      S )Nr$   rf  c                ó(   •— ‰r| |fS t        | |«      S rw   r{  r|  s     €r`   r~  z;ImageFileDirectory_v2.load_signed_rational.<locals>.combine.  r  rk   c              3  ó6   •K  — | ]  \  }} ‰||«      –— Œ y ­wrw   r8   r�  s      €r`   ra   z=ImageFileDirectory_v2.load_signed_rational.<locals>.<genexpr>1  r„  r…  r    r   r†  rˆ  s     ` @r`   Úload_signed_rationalz*ImageFileDirectory_v2.load_signed_rational*  r‹  rk   c                ó8   ‡ — dj                  ˆ fd„|D «       «      S )Nrk   c           	   3  óZ   •K  — | ]"  } ‰j                   d gt        |dd«      ¢­Ž –— Œ$ y­w)Ú2liÿÿÿi   €N)rè   r~   r�  s     €r`   ra   z>ImageFileDirectory_v2.write_signed_rational.<locals>.<genexpr>5  s3   øè ø€ ò 
àð ˆD�J‰J�tÐPÔ4°T¸9ÀhÓOÖPñ
ùs   ƒ(+ré   r�  s   ` r`   Úwrite_signed_rationalz+ImageFileDirectory_v2.write_signed_rational3  s!   ø€ à�x‰xó 
àô
ó 
ð 	
rk   c                ó~   — |j                  |«      }t        |«      |k7  rd|› dt        |«      › d�}t        |«      ‚|S )Nz&Corrupt EXIF data.  Expecting to read ú bytes but only got z. )Úreadr]   ÚOSError)rƒ   Úfpr×   Úretr  s        r`   Ú_ensure_readz"ImageFileDirectory_v2._ensure_read:  sN   € Ø�g‰g�d‹mˆÜˆs‹8�tÒð%Ø%) FÐ*>¼sÀ3»x¸jÈðLð ô ˜#“,ÐØˆ
rk   c           
     óx  — | j                  «        |j                  «       | _        	 | j                  r"| j	                  d| j                  |d«      «      n!| j	                  d| j                  |d«      «      d   }t        |«      D �]   }| j                  r"| j	                  d| j                  |d«      «      n!| j	                  d| j                  |d	«      «      \  }}}}t        j                  || j                  «      j                  }t        j                  |d
«      }	d|› d|› d|	› d|› d�	}
	 | j                  |   \  }}||z  }|| j                  rdndkD  rv|j                  «       }| j	                  | j                  rdnd|«      \  }|
d|› d|› �z  }
|j#                  |«       t%        j&                  ||«      }|j#                  |«       n|d | }t)        |«      |k7  r>t+        j,                  d|› dt)        |«      › d|› �«       t        j!                  |
«       �Œš|st        j!                  |
«       �Œ³|| j.                  |<   || j0                  |<   |
d|dkD  rd|z  n
t3        |«      z   z  }
t        j!                  |
«       �Œ | j                  r"| j	                  d| j                  |d«      «      n!| j	                  d| j                  |d«      «      \  | _        y # t        $ r t        j!                  d|
|«       Y �Œw xY w# t6        $ r(}
t+        j,                  t9        |
«      «       Y d }
~
y d }
~
ww xY w)Nrø   r,   ra  r    r   ÚHHQ8sé   ÚHHL4sr;   Úunknownztag: ú (ú
) - type: ú)z%s - unsupported type %sr$   r:   z Tag Location: z - Data Location: z/Possibly corrupt EXIF data.  Expecting to read r   z. Skipping tag ú
 - value: rB   ú<table: %d bytes>)r  Útellr
  rÿ   rá   r¥  Úranger   r  r   rð   r   ÚgetrÔ   ÚKeyErrorÚloggerÚdebugÚseekr   Ú
_safe_readr]   rQ  rR  r  r  rù   r  r¢  r™   )rƒ   r£  Ú	tag_countÚir"  r#  Úcountrâ   ÚtagnameÚtypnamer  Ú	unit_sizer$  r×   ÚhereÚoffsets                   r`   ÚloadzImageFileDirectory_v2.loadD  s  € Ø�
‰
ŒØ—w‘w“yˆŒð=	ð —=’=ð —‘˜S $×"3Ñ"3°B¸Ó":Ô;à—\‘\ # t×'8Ñ'8¸¸QÓ'?Ó@Øñ	ˆIô
 ˜9Ó%ó ."�ð —}’}ð —L‘L ¨$×*;Ñ*;¸BÀÓ*CÔDàŸ™ g¨t×/@Ñ/@ÀÀRÓ/HÓIñ &��S˜% ô #Ÿ/™/¨#¨t¯z©zÓ:×?Ñ?�ÜŸ)™) C¨Ó3�Ø˜g˜Y b¨¨¨Z¸°yÀÀ3À%ÀqÐI�ðØ)-×)<Ñ)<¸SÑ)AÑ&�I˜wð ˜yÑ(�Ø §¢™1°1Ò5ØŸ7™7›9�DØ $§¡°D·M²M©SÀsÈDÓ Q‘I�VØ˜_¨T¨FÐ2DÀVÀHÐMÑM�CØ—G‘G˜F”OÜ$×/Ñ/°°DÓ9�DØ—G‘G˜D•Mà  ˜;�Dä�t“9 Ò$Ü—M‘Mð-Ø-1¨FÐ2FÄsÈ4ÃyÀkð R)Ø),¨ð/ôô
 —L‘L Ô%ÙáÜ—L‘L Ô%Ùà%)�—‘˜cÑ"Ø$'�—‘˜SÑ!à�|Ø26¸²)Ð'¨$Ò.ÄÀdÃññ �ô —‘˜SÖ!ð]."ðd —=’=ð —‘˜S $×"3Ñ"3°B¸Ó":Ô;à—\‘\ # t×'8Ñ'8¸¸QÓ'?Ó@ñ ˆT�YøôG  ò Ü—L‘LÐ!;¸SÀ#ÔFÚðûôP ò 	Ü�M‰Mœ#˜c›(Ô#Üûð	ús=   §DL Ä.K!Å F L Ë! LÌL ÌLÌL Ì	L9ÌL4Ì4L9c                óF  — | j                  dt        | j                  «      «      }g }|t        |«      z   t        | j                  «      dz  z   dz   }d }t        | j                  j	                  «       «      D �]\  \  }}|t
        k(  rt        |«      }| j                  j                  |«      }t        j                  d||t        |«      «       |t        j                  k(  xr t        |t        «      }|r_| j                  dk(  rd}	nd}	t!        |	|¬«      }
| j                  |   }|j	                  «       D ]
  \  }}||
|<   Œ |
j#                  |«      }n+t        |t$        «      r|n|f} | j&                  |   | g|¢­Ž }t        j(                  || j*                  «      j,                  }|rd	nt/        j                  |d
«      }d|› d|› d|› d|› d�	}|dt        |«      dk\  rdt        |«      z  n
t1        |«      z   z  }t        j                  |«       |rd}nH|t        j2                  t        j4                  t        j6                  fv rt        |«      }nt        |«      }t        |«      dk  r(|j9                  ||||j;                  dd«      df«       �Œ |j9                  |||| j                  d|«      |f«       |t        |«      dz   dz  dz  z  }�Œ_ |�L||   \  }}}}}|rd}t=        |«      ‚| j                  d| j?                  d|«      d   |z   «      }|||||f||<   |D ]L  \  }}}}}t        j                  d|||t        |«      t        |«      «       || j                  d||||«      z  }ŒN |dz  }|D ]!  \  }}}}}||z  }t        |«      dz  sŒ|dz  }Œ# |S )Nra  r;   r$   zTag %s, Type: %s, Value: %srö   s   II*    s   MM *   )r   Úifdrª  zsave: r«  r¬  r­  r®  r=   r¯  r   rr  rk   r:   r    z&multistrip support not yet implementedr   z%s %s %s %s %sr©  s       ) rè   r]   r  Úsortedr  ÚSTRIPOFFSETSr  r²  r´  rµ  rù   r   rI  r�   r  rý   ró   Útobytesr   rÜ   r  r   rð   r   r™   rM  rL  rC  ÚappendÚljustÚNotImplementedErrorrá   )rƒ   r¿  ÚresultÚentriesÚstripoffsetsr"  r�   r#  rT  r  rÂ  rë   Úifd_tagÚ	ifd_valuerâ   r»  r¼  r  rº  s                      r`   rÅ  zImageFileDirectory_v2.tobytes‡  s˜  € à—‘˜C¤ T§]¡]Ó!3Ó4ˆàˆØœ#˜f›+Ñ%¬¨D¯M©MÓ(:¸RÑ(?Ñ?À!ÑCˆØˆô ! §¡×!4Ñ!4Ó!6Ó7ó (	3‰JˆC�Ø”lÒ"Ü" 7›|�Ø—,‘,×"Ñ" 3Ó'ˆCÜ�L‰LÐ6¸¸SÄ$ÀuÃ+ÔNØœHŸM™MÑ)ÒE¬j¸ÄÓ.EˆFÙØ—<‘< 3Ò&Ø7‘Cà7�CÜ+¨C°sÔ;�ØŸ™ sÑ+�Ø*0¯,©,«.ò -Ñ&�G˜YØ#,�C˜’Lð-à—{‘{ 6Ó*‘ä",¨U´EÔ":™ÀÀ�Ø0�t×+Ñ+¨CÑ0°Ð?¸Ò?�ä—o‘o c¨4¯:©:Ó6×;Ñ;ˆGÙ%‘e¬5¯9©9°S¸)Ó+DˆGØ˜7˜) 2 c U¨*°W°I¸RÀ¸uÀAÐFˆCØ�<Ü36°t³9À²?Ð#¤c¨$£iÒ/ÌÈFËññ ˆCô �L‰L˜Ôñ Ø‘ØœŸ™¬¯©¼×8JÑ8JÐKÑKÜ˜D›	‘ä˜F›�ä�4‹y˜AŠ~Ø—‘  S¨%°·±¸A¸uÓ1EÀsÐKÖLà—‘  S¨%°·±¸CÀÓ1HÈ$ÐOÔPØœ3˜t›9 q™=¨QÑ.°Ñ2Ñ2’ðQ(	3ðV Ð#Ø+2°<Ñ+@Ñ(ˆC��e˜U DÙØ>�Ü)¨#Ó.Ð.Ø—J‘J˜s D§L¡L°°eÓ$<¸QÑ$?À&Ñ$HÓIˆEØ$'¨¨e°U¸DÐ$@ˆG�LÑ!ð -4ò 	BÑ(ˆC��e˜U DÜ�L‰LÐ)¨3°°U¼DÀ»KÌÈdËÔTØ�d—j‘j ¨#¨s°E¸5ÓAÑA‰Fð	Bð
 	�+Ñˆð -4ò 	 Ñ(ˆC��e˜U DØ�d‰NˆFÜ�4‹y˜1‹}Ø˜%‘‘ð	 ð
 ˆrk   c                ó  — |j                  «       dk(  r/|j                  | j                  | j                  ddd«      z   «       |j                  «       }| j	                  |«      }|j                  |«       |t        |«      z   S )Nr   ÚHLé*   r,   )r°  Úwriterû   rè   rÅ  r]   )rƒ   r£  r¿  rÉ  s       r`   ÚsavezImageFileDirectory_v2.saveÔ  se   € Ø�7‰7‹9˜Š>à�H‰H�T—\‘\ D§J¡J¨t°R¸Ó$;Ñ;Ô<à—‘“ˆØ—‘˜fÓ%ˆØ
�‰�ÔØœ˜F›Ñ#Ð#rk   )s   II*     NN)r  r!  ri   zbytes | Noner   ú
int | NonerÁ   ÚNone)rÁ   rÅ   )r�   rÅ   rÁ   r   ©rÁ   rÔ  rÀ   rÂ   )r"  rÃ   rÁ   rÔ  rì   rK   )6rÆ   rÇ   rÈ   rÉ   rÔ   Ú__annotations__rÜ   r�   rË   ri   r¿  rã   Úsetterr  r  r  r  r%  r(  r,  r+  rX  r[  rá   rè   ÚlistÚmaprñ   r   rG  rI  ÚSIGNED_BYTErH  rJ  ÚFLOATrK  ÚIFDÚLONG8rÙ   rl  rÝ   rp  ru  rx  rŠ  r‘  r“  r•  rš  rž  r¥  rÀ  rÅ  rÒ  r8   rk   r`   ró   ró   ê  s™  … ñ:ðx VX€NÐRÓWØ57€OÐ2Ó7ð )Ø#Ø ð	#!àð#!ð ð#!ð ð	#!ð
 
ó#!ñJ Ñ/Ó0€FÙÑ/Ó0€Fàò ó ð ð ×Ñòó ðóóò	
ó<ò	ò<ò3òNó`%ò
=ò7ò8ñ 	ÙØà—‘  gÐ.Ø—‘  VÐ,Ø×%Ñ% s¨MÐ:Ø×&Ñ&¨¨^Ð<Ø×%Ñ% s¨MÐ:Ø—‘  gÐ.Ø—‘ # xÐ0Ø—‘˜s FÐ+Ø—‘  gÐ.ð
ó	
ôñ" �a˜Óòó ðñ �aÓñó ðñ �a˜Óò1ó ð1ñ
 �aÓñó ðñ �a˜ÓòWó ðWñ �aÓñ
ó ð
ñ
 �a˜Óòó ðñ �aÓñó ðñ �b˜!ÓòWó ðWñ �bÓñ
ó ð
òòAóFKóZ$rk   ró   rÑ   rÐ   rÏ   Úwrite_c                  óŒ   ‡ — e Zd ZU dZˆ fd„Z ed„ «      Z ed„ «      Zded<   	 e	d„ «       Z
dd„Zd	„ Zdd
„Zd„ Zd„ Zd„ Zˆ xZS )ÚImageFileDirectory_v1aþ  This class represents the **legacy** interface to a TIFF tag directory.

    Exposes a dictionary interface of the tags in the directory::

        ifd = ImageFileDirectory_v1()
        ifd[key] = 'Some Data'
        ifd.tagtype[key] = TiffTags.ASCII
        print(ifd[key])
        ('Some Data',)

    Also contains a dictionary of tag types as read from the tiff image file,
    :attr:`~PIL.TiffImagePlugin.ImageFileDirectory_v1.tagtype`.

    Values are returned as a tuple.

    ..  deprecated:: 3.0.0
    c                ó2   •— t        ‰| �  |i |¤Ž d| _        y )NT)Úsuperr�   r  )rƒ   r„   ÚkwargsÚ	__class__s      €r`   r�   zImageFileDirectory_v1.__init__ü  s   ø€ Ü‰Ñ˜$Ð) &Ò)ØˆÕrk   c                ó   — | j                   S rw   )r  r’   s    r`   rå   zImageFileDirectory_v1.<lambda>   s
   €  §¡€ rk   c                ó   — | j                   S rw   )r  r’   s    r`   rå   zImageFileDirectory_v1.<lambda>  s
   €  D§M¡M€ rk   zdict[int, int]r  c                ó’   —  | |j                   ¬«      }|j                  |_        |j                  |_        |j                  |_        |S )a2  Returns an
        :py:class:`~PIL.TiffImagePlugin.ImageFileDirectory_v1`
        instance with the same data as is contained in the original
        :py:class:`~PIL.TiffImagePlugin.ImageFileDirectory_v2`
        instance.

        :returns: :py:class:`~PIL.TiffImagePlugin.ImageFileDirectory_v1`

        rh   )ri   r  r  r  )ÚclsÚoriginalrÂ  s      r`   Úfrom_v2zImageFileDirectory_v1.from_v2  s<   € ñ ˜Ÿ™Ô)ˆØ×(Ñ(ˆŒØ×&Ñ&ˆŒØ—=‘=ˆŒØˆ
rk   c                óÎ   — t        | j                  ¬«      }t        | j                  «      |_        t        | j                  «      |_        t        | j
                  «      |_        |S )a2  Returns an
        :py:class:`~PIL.TiffImagePlugin.ImageFileDirectory_v2`
        instance with the same data as is contained in the original
        :py:class:`~PIL.TiffImagePlugin.ImageFileDirectory_v1`
        instance.

        :returns: :py:class:`~PIL.TiffImagePlugin.ImageFileDirectory_v2`

        rh   )ró   ri   r  r  r  r  )rƒ   rÂ  s     r`   Úto_v2zImageFileDirectory_v1.to_v2  sG   € ô $¨4¯;©;Ô7ˆÜ˜DŸM™MÓ*ˆŒÜ˜4Ÿ<™<Ó(ˆŒÜ˜DŸM™MÓ*ˆŒØˆ
rk   c                ó>   — || j                   v xs || j                  v S rw   )r  r  r'  s     r`   r(  z"ImageFileDirectory_v1.__contains__*  r)  rk   c                ój   — t        t        | j                  «      t        | j                  «      z  «      S rw   )r]   r  r  r  r’   s    r`   r  zImageFileDirectory_v1.__len__-  r  rk   c                ój   — t        t        | j                  «      t        | j                  «      z  «      S rw   )rZ  r  r  r  r’   s    r`   r[  zImageFileDirectory_v1.__iter__0  r\  rk   c                ó8   — dD ]  }| j                  |||«       Œ y ©N)FT)r+  )rƒ   r"  r�   rã   s       r`   r,  z!ImageFileDirectory_v1.__setitem__3  s!   € Ø'ò 	2ˆJØ�M‰M˜#˜u jÕ1ñ	2rk   c           	     ó  — || j                   vrR| j                  |   }| j                  |   }| j                  |   \  }}dD ]  }| j	                  | || ||«      |«       Œ | j                   |   }t        |t        t        f«      s|f}|S rñ  )r  r  r  rÔ   r+  r�   r   r!  )rƒ   r"  râ   r#  r×   r$  Úlegacyrq   s           r`   r%  z!ImageFileDirectory_v1.__getitem__7  s�   € Ø�d—m‘mÑ#Ø—=‘= Ñ%ˆDØ—,‘,˜sÑ#ˆCØ ×/Ñ/°Ñ4‰MˆD�'Ø'ò H�Ø—‘˜c¡7¨4°°vÓ#>ÀÕGðHà�m‰m˜CÑ ˆÜ˜#¤¤u˜~Ô.Ø�&ˆCØˆ
rk   )rÁ   ró   rÂ   )rÆ   rÇ   rÈ   rÉ   r�   rË   ÚtagsÚtagdatarÖ  Úclassmethodrê  rì  r(  r  r[  r,  r%  Ú__classcell__©rä  s   @r`   rà  rà  é  s`   ø… ñô$ ñ Ñ.Ó/€DÙÑ1Ó2€Gð ÓØ!àñó ðó"ò"<ó<ò=ò2ö
rk   rà  c                  ó€   ‡ — e Zd ZdZdZdZdˆ fd„	Zdd„Zed„ «       Z	dd„Z
dd„Zdd	„Zd
„ Zˆ fd„Zdd„Zd„ Zd„ Zˆ xZS )ÚTiffImageFileÚTIFFz
Adobe TIFFFc                óF   •— d | _         	 d | _        	 t        ‰| �  ||«       y rw   )Útag_v2r"  râ  r�   )rƒ   r£  Úfilenamerä  s      €r`   r�   zTiffImageFile.__init__Q  s&   ø€ ØˆŒØ5àˆŒØ"ä‰Ñ˜˜XÕ&rk   c                ó  — | j                   j                  d«      }|d   dk(  r|| j                   j                  d«      z  }t        |«      | _        d| _        | j                  j
                  x| _        | _        d| _        | j                   | _	        g | _
        d| _        t        j                  d«       t        j                  d| j                  «       t        j                  dt        |«      «       | j                  d	«       y)
z#Open the first image in a TIFF filer,   r    r÷   Nrm   z*** TiffImageFile._open ***z- __first: %sz	- ifh: %sr   )r£  r¡  ró   rý  rÂ  r  Ú_TiffImageFile__firstÚ_TiffImageFile__nextÚ_TiffImageFile__frameÚ_fpÚ
_frame_posÚ	_n_framesr´  rµ  rù   Ú_seek)rƒ   r  s     r`   Ú_openzTiffImageFile._openZ  sÃ   € ð �g‰g�l‰l˜1‹oˆØˆq‰6�RŠ<Ø�4—7‘7—<‘< “?Ñ"ˆCä+¨CÓ0ˆŒð ˆŒð &*§[¡[×%5Ñ%5Ð5ˆŒ�t”{ØˆŒØ—7‘7ˆŒØ%'ˆŒØ%)ˆŒä�‰Ð2Ô3Ü�‰�_ d§l¡lÔ3Ü�‰�[¤$ s£)Ô,ð 	�
‰
�1�rk   c                ó2  — | j                   €€| j                  «       }| j                  t        | j                  «      «       | j                   €/| j                  | j                  «       dz   «       | j                   €Œ/| j                  |«       | j                   S )Nr   )r  r°  r  r]   r  r¶  )rƒ   Úcurrents     r`   Ún_frameszTiffImageFile.n_framesu  sn   € à�>‰>Ð!Ø—i‘i“kˆGØ�J‰J”s˜4Ÿ?™?Ó+Ô,Ø—.‘.Ð(Ø—
‘
˜4Ÿ9™9›;¨™?Ô+ð —.‘.Ñ(à�I‰I�gÔØ�~‰~Ðrk   c                óú   — | j                  |«      sy| j                  |«       t        j                  | j                  «       t        j
                  j                  | j                  | j                  «      | _        y)z%Select a given frame as current imageN)	Ú_seek_checkr  r   Ú_decompression_bomb_checkr×   ÚcoreÚnewÚmodeÚim)rƒ   Úframes     r`   r¶  zTiffImageFile.seek  sQ   € à×Ñ Ô&ØØ�
‰
�5Ôô 	×'Ñ'¨¯	©	Ô2Ü—*‘*—.‘. §¡¨D¯I©IÓ6ˆ�rk   c                ó  — | j                   | _        | j                  j                  «        t        | j                  «      |k  �rÐ| j
                  sd}t        |«      ‚t        j                  d|| j                  | j
                  | j                  j                  «       «       | j
                  dk\  rd}t        |«      ‚| j                  j                  | j
                  «       | j                  j                  | j
                  «       t        j                  d| j                  j                  «       «       | j                  j                  | j                  «       | j                  j                  | j                  v rd| _        n| j                  j                  | _        | j
                  dk(  r
|dz   | _        t        | j                  «      dk(  r| j
                  dk7  | _        | xj                  dz  c_	        t        | j                  «      |k  r�ŒÐ| j                  j                  | j                  |   «       | j                  j                  | j                  «       t$        | j                  v r!| j                  t$           | j&                  d<   nd| j&                  v r| j&                  d= | j)                  «        t*        j-                  | j                  «      x| _        | _        || _	        | j3                  «        y )	Nzno more images in TIFF filez9Seeking to frame %s, on frame %s, __next %s, location: %sl            zUnable to seek to framezLoading tags, location: %sr   r   Úxmp)r  r£  r°  r]   r  r  ÚEOFErrorr´  rµ  r  rP  r¶  rÆ  rý  rÀ  r  r  Úis_animatedÚXMPrA  Ú_reload_exifrà  rê  r"  rÂ  Ú_setup)rƒ   r  r  s      r`   r  zTiffImageFile._seekŠ  s  € Ø—(‘(ˆŒð 	�‰�‰Œä�$—/‘/Ó" eÓ+Ø—;’;Ø3�Ü˜s“mÐ#Ü�L‰LØKØØ—‘Ø—‘Ø—‘—‘“ôð �{‰{˜eÒ#Ø/�Ü  “oÐ%Ø�G‰G�L‰L˜Ÿ™Ô%Ø�O‰O×"Ñ" 4§;¡;Ô/Ü�L‰LÐ5°t·w±w·|±|³~ÔFØ�K‰K×Ñ˜TŸW™WÔ%Ø�{‰{×Ñ 4§?¡?Ñ2ð  �•à"Ÿk™k×.Ñ.�”Ø�{‰{˜aÒØ!&¨¡�”Ü�4—?‘?Ó# qÒ(Ø#'§;¡;°!Ñ#3�Ô Ø�LŠL˜AÑ�Lô9 �$—/‘/Ó" eÔ+ð: 	�‰�‰�T—_‘_ UÑ+Ô,Ø�‰×Ñ˜Ÿ™Ô!Ü�$—+‘+ÑØ#Ÿ{™{¬3Ñ/ˆD�I‰I�eÒØ�d—i‘iÑØ—	‘	˜%Ð Ø×ÑÔä3×;Ñ;¸D¿K¹KÓHÐHˆŒ�4”8ØˆŒØ�‰�rk   c                ó   — | j                   S )zReturn the current frame number)r  r’   s    r`   r°  zTiffImageFile.tellº  s   € à�|‰|Ðrk   c                óŽ  — i }| j                   j                  t        j                  j                  «      }|r�|dd dk(  r…t        |dd «      }t        j                  |d   dz   dz  «      dz  }t        |d|z   d|z    «      }|d|z   d|z   |z    }d|i||<   |t        j                  d|z   |z   dz  «      dz  d }|dd dk(  rŒ…|S )	a5  
        Returns a dictionary of Photoshop "Image Resource Blocks".
        The keys are the image resource ID. For more information, see
        https://www.adobe.com/devnet-apps/photoshop/fileformatashtml/#50577409_pgfId-1037727

        :returns: Photoshop "Image Resource Blocks" in a dictionary.
        Nr$   s   8BIMr(   r   r    r–  râ   )	rý  r²  r   ÚBaseÚImageResourcesÚi16ÚmathÚceilÚi32)rƒ   Úblocksrq   ÚidÚnr×   râ   s          r`   Úget_photoshop_blocksz"TiffImageFile.get_photoshop_blocks¾  sâ   € ð ˆØ�k‰k�o‰oœhŸm™m×:Ñ:Ó;ˆÙØ�b�q�'˜WÒ$Ü˜˜Q˜q˜“]�Ü—I‘I˜s 1™v¨™z¨QÑ.Ó/°!Ñ3�Ü˜3˜q 1™u r¨A¡vÐ.Ó/�Ø˜2 ™6 B¨¡F¨T¡MÐ2�Ø$ d˜^��r‘
àœ$Ÿ)™) R¨!¡V¨d¡]°aÑ$7Ó8¸1Ñ<Ð>Ð?�ð �b�q�'˜WÓ$ð ˆrk   c                óp   •— | j                   r| j                  r| j                  «       S t        ‰| �  «       S rw   )ÚtileÚuse_load_libtiffÚ_load_libtiffrâ  rÀ  )rƒ   rä  s    €r`   rÀ  zTiffImageFile.loadÓ  s-   ø€ Ø�9Š9˜×.Ò.Ø×%Ñ%Ó'Ð'Ü‰w‰|‹~Ðrk   c                óš  — | j                   s\d| _        | j                  j                  «        | j	                  «       }t
        j                  D ]  }||vrŒ|j                  |«       Œ t        j                  | d¬«       t        j                  j                  | j                  v r&| j                  t        j                  j                  = y y )NT)Úin_place)r  Ú!_close_exclusive_fp_after_loadingr£  r°  Úgetexifr   ÚTAGS_V2_GROUPSÚget_ifdr   Úexif_transposer   r  ÚOrientationrý  )rƒ   ÚexifÚkeys      r`   Úload_endzTiffImageFile.load_endØ  sŸ   € ð ×ÒØ59ˆDÔ2ð �G‰G�L‰LŒNð —<‘<“>ˆDÜ×.Ñ.ò "�Ø˜d‘?ØØ—‘˜SÕ!ð"ô
 	×Ñ ¨tÕ4Ü�=‰=×$Ñ$¨¯©Ñ3Ø—‘œHŸM™M×5Ñ5Ñ6ð 4rk   c                óî  — t         j                   j                  | «       | j                  «        t        | j                  «      dk(  sd}t        |«      ‚| j                  d   d   }t        | j                  d   d   «      }	 t        | j                  d«      xr | j                  j                  «       }t        | j                  d«      r| j                  j                  «        |r||d<   t        j                  | j                  d	t        |«      | j                  «      }	 |j                  | j                   |«       | j$                  xr | j&                   }t        | j                  d«      rBt(        j+                  d«       |j-                  | j                  j/                  «       «      \  }}	n¥|rGt(        j+                  d«       |s| j                  j1                  d«       |j-                  d«      \  }}	n\t(        j+                  d«       | j                  j1                  d«       |j-                  | j                  j3                  «       «      \  }}	g | _        d| _        | j7                  «        |r!| j                  j9                  «        d| _        |	dk  rt        |	«      ‚t         j                   j                  | «      S # t
        $ r d}Y �Œïw xY w# t"        $ r}d
}t        |«      |‚d}~ww xY w)zWOverload method triggered when we detect a compressed tiff
        Calls out to libtiffr   zNot exactly one tiler   r"   ÚfilenoÚflushFr    ÚlibtiffzCouldn't set the imageNÚgetvaluez5have getvalue. just sending in a string from getvaluez3have fileno, calling fileno version of the decoder.s   fpfpz+don't have fileno or getvalue. just reading)r   rÀ  Úload_preparer]   r'  r¢  rØ  rÌ   r£  r6  r7  Ú_getdecoderr  r   ÚdecoderconfigÚsetimager  rP  Ú_exclusive_fpr  r´  rµ  rt  r9  r¶  r¡  Úreadonlyr4  Úclose)
rƒ   r  Úextentsr„   r£  ÚdecoderÚeÚclose_self_fpr$  Úerrs
             r`   r)  zTiffImageFile._load_libtiffí  sN  € ô 	�‰×Ñ˜Ôà×ÑÔä�4—9‘9‹~ Ò"Ø(ˆCÜ˜#“,Ðð —)‘)˜A‘,˜q‘/ˆÜ�D—I‘I˜a‘L ‘OÓ$ˆð

	Ü˜Ÿ™ (Ó+Ò@°·±·±Ó0@ˆBô �t—w‘w Ô(Ø—‘—‘”ñ ØˆD�‰Gä×#Ñ#Ø�I‰I�y¤%¨£+¨t×/AÑ/Aó
ˆð	&Ø×Ñ˜TŸW™W gÔ.ð
 ×*Ñ*ÒC°4×3CÑ3CÐ/CˆÜ�4—7‘7˜JÔ'ô �L‰LÐPÔQØ—^‘^ D§G¡G×$4Ñ$4Ó$6Ó7‰FˆA‰sÙä�L‰LÐNÔOÙ Ø—‘—‘˜Q”à—^‘^ GÓ,‰FˆA‰sô �L‰LÐFÔGØ�G‰G�L‰L˜ŒOà—^‘^ D§G¡G§L¡L£NÓ3‰FˆAˆsàˆŒ	ØˆŒà�‰ŒáØ�G‰G�M‰MŒOØˆDŒGà�Š7Ü˜#“,Ðä�{‰{×Ñ Ó%Ð%øôq ò 	ð ‹Bð	ûô ò 	&Ø*ˆCÜ˜#“, AÐ%ûð	&ús+   ÂA"K Ä"K ËKËKË	K4Ë!K/Ë/K4c                óp  — d| j                   v rd}t        |«      ‚t        | j                   j                  t        d«         | _        | j                   j                  t        d«      | _        | j                   j                  t        d«      }| j
                  dk(  rd}| j                   j                  t        d«      }t        j                  d«       t        j                  d| j
                  «       t        j                  d	|«       t        j                  d
| j                  «       t        j                  d|«       t        j                  d| j                  j                  t        «      «       t        | j                   j                  t        «      «      }t        | j                   j                  t         «      «      }||f| _        t        j                  d| j$                  «       | j                   j                  t&        d«      }t)        |«      dkD  r"t+        |«      t-        |«      cxk(  rdk(  rn nd}| j                   j                  t.        d«      }| j                   j                  t0        d«      }|dv rd}	n
|dk(  rd}	nd}	|	t)        |«      z  }	t)        |«      }
| j                   j                  t2        | j
                  dk(  r|dv rdnd«      }|t4        kD  r#t        j7                  d|«       d}t9        |«      ‚||
k  r|d| }n||
kD  r
|
dk(  r||z  }t)        |«      |k7  rd}t9        |«      ‚| j                   j:                  |||||f}t        j                  d|«       	 t<        |   \  | _        }t        j                  d|«       t        j                  d| jB                  «       | j
                  | jD                  d<   | j                   j                  tF        d«      }| j                   j                  tH        d«      }|r‹|r‰| j                   j                  tJ        «      }|dk(  r||f| jD                  d <   nS|dk(  r|d!z  |d!z  f| jD                  d <   n6|€#||f| jD                  d <   ||f| jD                  d"<   n||f| jD                  d"<   dx}x}}g | _&        tN        xs | j
                  d#k7  | _(        | jP                  rÛ|dk(  r5|dd dz   |dd z   }t        j                  d|«       t<        |   \  | _        }|d$k(  rd%}d&|v r|jS                  d&d'«      }d(|v r|jS                  d(d'«      }|dk(  r | j
                  d)k(  r| j                  dk(  rd*}|| j
                  d+| j                   jT                  f}| jL                  jW                  d,dd||fd|f«       �n¼tX        | j                   v stZ        | j                   v �rutX        | j                   v rC| j                   tX           }| j                   j                  t\        |«      }| j$                  d   }nQ| j                   tZ           }| j                   j                  t^        «      }| j                   j                  t`        «      }|D ]É  }||z   |kD  r|tc        |«      z  d-z  }nd}|}| j                  dk(  r
||   }||	z  }|t        |«      df}| jL                  jW                  | j
                  ||t-        ||z   |«      t-        ||z   |«      f||f«       ||z   }|| j$                  d   k\  sŒ§d||z   }}|| j$                  d   k\  sŒÁdx}}|dz  }ŒË n"t        j                  d.«       d}t9        |«      ‚td        | j                   v r | j                   td           | jD                  d/<   | jB                  d0v rW| j                   tf           D �cg c]  }ti        |d1z  «      ‘Œ }}tk        jl                  d2d3jo                  |«      «      | _8        yy# t@        $ r(}t        j                  d«       d}t9        |«      |‚d}~ww xY wc c}w )4z-Setup this image object based on current tagsi¼  z+Windows Media Photo files not yet supportedr   r   r)   r(   z*** Summary ***z- compression: %sz - photometric_interpretation: %sz- planar_configuration: %sz- fill_order: %sz- YCbCr subsampling: %sz
- size: %sr7   r8   )r    r(   r,   r"   r&   r$   )r    r(   z.More samples per pixel than can be decoded: %sz#Invalid value for samples per pixelNzunknown data organizationzformat key: %sz- unsupported formatzunknown pixel modez- raw mode: %sz- pil mode: %sÚcompressionr    ÚdpigR¸…ëQ@Ú
resolutionr   r<   úI;16Nz;16Bz;16Nz;16Lr+   rI   Fr8  r,   z- unsupported data organizationÚicc_profile©rU   rW   r   úRGB;Lrk   )9rý  r¢  ÚCOMPRESSION_INFOr²  ÚCOMPRESSIONÚ_compressionÚPLANAR_CONFIGURATIONÚ_planar_configurationÚPHOTOMETRIC_INTERPRETATIONÚ	FILLORDERr´  rµ  r"  ÚYCBCRSUBSAMPLINGrÃ   Ú
IMAGEWIDTHÚIMAGELENGTHÚ_sizer×   ÚSAMPLEFORMATr]   r{   rz   ÚBITSPERSAMPLEÚEXTRASAMPLESÚSAMPLESPERPIXELÚMAX_SAMPLESPERPIXELÚerrorrú   ri   Ú	OPEN_INFOÚ_moder³  r  rA  ÚX_RESOLUTIONÚY_RESOLUTIONÚRESOLUTION_UNITr'  ÚREAD_LIBTIFFr(  rÓ   r¿  rÆ  rÄ  ÚTILEOFFSETSÚROWSPERSTRIPÚ	TILEWIDTHÚ
TILELENGTHÚsumÚ
ICCPROFILEÚCOLORMAPr   r   r   rê   Úpalette)rƒ   r  ÚphotoÚ	fillorderÚxsizeÚysizeÚsample_formatÚ	bps_tupleÚextra_tupleÚ	bps_countÚbps_actual_countÚsamples_per_pixelr3  ÚrawmoderC  ÚxresÚyresÚresunitÚxÚyÚlayerr}  Úoffsetsre  Úwr¿  ÚstrideÚtile_rawmoderd  rl  s                                 r`   r  zTiffImageFile._setupB  sW  € ð �T—[‘[Ñ Ø?ˆCÜ˜#“,Ðô -¨T¯[©[¯_©_¼[È!Ó-LÑMˆÔØ%)§[¡[§_¡_Ô5IÈ1Ó%MˆÔ"ð —‘—‘Ô :¸AÓ>ˆð ×Ñ Ò+ØˆEà—K‘K—O‘O¤I¨qÓ1ˆ	ä�‰Ð&Ô'Ü�‰Ð(¨$×*;Ñ*;Ô<Ü�‰Ð7¸Ô?Ü�‰Ð1°4×3MÑ3MÔNÜ�‰Ð'¨Ô3Ü�‰Ð.°·±·±Ô=MÓ0NÔOô �D—K‘K—O‘O¤JÓ/Ó0ˆÜ�D—K‘K—O‘O¤KÓ0Ó1ˆØ˜E�\ˆŒ
ä�‰�\ 4§9¡9Ô-àŸ™Ÿ™¬°dÓ;ˆÜˆ}Ó Ò!¤c¨-Ó&8¼CÀÓ<NÔ&SÐRSÕ&Sð !ˆMà—K‘K—O‘O¤M°4Ó8ˆ	Ø—k‘k—o‘o¤l°BÓ7ˆØ�IÑØ‰IØ�aŠZØ‰IàˆIØ”S˜Ó%Ñ%ˆ	Ü˜y›>ÐØ ŸK™KŸO™OÜØ×"Ñ" kÒ1°e¸v±o‰AÈ1ó
Ðð
 Ô2Ò2ä�L‰LØ@ÐBSôð 8ˆCÜ˜cÓ"Ð"àÐ/Ò/ð "Ð"4Ð#4Ð5‰IØÐ!1Ò1Ð6FÈ!Ò6Kð "Ð$5Ñ5ˆIäˆy‹>Ð.Ò.Ø-ˆCÜ˜cÓ"Ð"ð �K‰K×ÑØØØØØð
ˆô 	�‰Ð% sÔ+ð	*Ü"+¨C¡.ÑˆDŒJ˜ô 	�‰Ð% wÔ/Ü�‰Ð% t§y¡yÔ1à#'×#4Ñ#4ˆ�	‰	�-Ñ à�{‰{�‰œ|¨QÓ/ˆØ�{‰{�‰œ|¨QÓ/ˆá‘DØ—k‘k—o‘o¤oÓ6ˆGØ˜!Š|Ø$(¨$ <�—	‘	˜%Ò Ø˜A’Ø$(¨4¡K°¸±Ð#=�—	‘	˜%Ò Ø�Ø$(¨$ <�—	‘	˜%Ñ ð +/°¨*�—	‘	˜,Ò'à*.°¨*�—	‘	˜,Ñ'ð ÐˆÐˆA�ØˆŒ	Ü ,Ò J°×0AÑ0AÀUÑ0JˆÔØ× Ò ð ˜AŠ~à˜"˜1�g ‘n s¨1¨2 wÑ.�Ü—‘Ð-¨sÔ3ô '0°¡nÑ#�”
˜Gð
 ˜&Ò Ø!�Ø˜Ñ Ø!Ÿ/™/¨&°&Ó9�Ø˜Ñ Ø!Ÿ/™/¨&°&Ó9�ð
 ˜’
Ø×%Ñ%¨Ò/Ø×.Ñ.°!Ò3à�ð ˜$×+Ñ+¨U°D·K±K×4FÑ4FÐGˆAØ�I‰I×Ñ˜i¨!¨Q°°uÐ)=¸qÀ!ÐDÖEä˜TŸ[™[Ñ(¬K¸4¿;¹;Ò,Fä˜tŸ{™{Ñ*ØŸ+™+¤lÑ3�Ø—K‘K—O‘O¤L°%Ó8�Ø—I‘I˜a‘L‘ð Ÿ+™+¤kÑ2�Ø—K‘K—O‘O¤IÓ.�Ø—K‘K—O‘O¤JÓ/�à!ò #�Ø�q‘5˜5’=Ø¤ Y£Ñ/°!Ñ3‘Fà�Fà&�Ø×-Ñ-°Ò2à#*¨5¡>�Là˜iÑ'�Fà!¤3 v£;°Ð2�Ø—	‘	× Ñ à×)Ñ)Ø˜Aœs 1 q¡5¨%Ó0´#°a¸!±e¸UÓ2CÐDØØð	ôð ˜‘E�Ø˜Ÿ	™	 !™Ó$Ø˜a !™e�q�AØ˜DŸI™I a™LÓ(Ø !˜	˜˜AØ ™
™ñ7#ô: �L‰LÐ:Ô;Ø-ˆCÜ˜cÓ"Ð"ô ˜Ÿ™Ñ$Ø'+§{¡{´:Ñ'>ˆD�I‰I�mÑ$ð �9‰9˜Ñ#Ø-1¯[©[¼Ñ-BÖC¨”r˜!˜s™(•|ÐCˆGÐCÜ'×+Ñ+¨G°S·X±X¸gÓ5FÓGˆD�Lð $øôA ò 	*Ü�L‰LÐ/Ô0Ø&ˆCÜ˜cÓ"¨Ð)ûð	*üòB Ds   Í._? Þ<`3ß?	`0à#`+à+`0)NNrÕ  )r  rÃ   rÁ   rÔ  rÂ   )rÆ   rÇ   rÈ   ÚformatÚformat_descriptionr,  r�   r  rË   r
  r¶  r  r°  r%  rÀ  r4  r)  r  r÷  rø  s   @r`   rú  rú  L  s_   ø„ Ø€FØ%ÐØ(-Ð%õ'óð6 ñó ðó	7ó.ó`òô*ó
7ò*S&öj^Hrk   rú  r9   r:   rH   rU   rW   r?   rF   r<   r@   rC   rD   rI   rL   rJ   rX   ÚYCbCrr[   rG   r>   rA   rE   )rA   rE   c                ó   — 	 t         | j                     \  }}}}}}t	        |¬«      }| j
                  }| j                  }	 |d   }|€d}n|dk(  rd}n|dk(  rd	}t        xs |dk7  }d
|t        <   | j                  d   |t        <   | j                  d
   |t        <   d|v r|d   }nCd|v r=|d   }t        |t         «      r*t#        j$                  «       }|j'                  |«       |}ni }t(        j+                  dt-        |«      «       t        |t.        «      r|j1                  «       }|D ]t  }t        |t"        j$                  «      r'|t2        j4                  v r|j7                  |«      ||<   n|j                  |«      ||<   	 |j8                  |   |j8                  |<   Œv i }t=        | d«      r| j>                  j1                  «       }i |¥tA        | di «      ¥}tB        tD        fD ]
  }||v sŒ||= Œ t=        | d«      r²tF        tH        tJ        tL        tN        tP        fD ]�  }|| jR                  v sŒ|tL        k(  r=| jR                  j8                  |   t2        jT                  t2        jV                  fvr||= ŒX| jR                  |   ||<   | jR                  j8                  |   |j8                  |<   Œ‘ |j                  d| j                  j                  d«      «      }|r	||tX        <   tZ        dftH        dftJ        dftH        dftJ        dftF        dft\        dft^        dft`        dftb        dff
D ]  \  }}||v sŒ||   ||<   Œ |j                  d«      }|r!d|tF        <   |d   |tH        <   |d
   |tJ        <   |dk7  r)||td        <   tg        |«      d
k7  rtg        |«      |th        <   |�	||tj        <   |d
k7  r	||tD        <   tl        |vr
||tl        <   n¨| j                  dv rš|tl           dk(  rŽ| j                  dk(  rj| jo                  «       }|j'                  «       }tq        |jr                  «      D ]/  }tq        |jt                  «      D ]  }|||f   d k(  rdnd |||f<   Œ Œ1 |} ntw        jx                  | «      } | j                  d!v rs| jz                  j}                  d"d#«      }g }tg        |«      d$z  }tq        d$«      D ]0  } |||| z  || d
z   z   D �!cg c]  }!|!d%z  ‘Œ	 c}!z  }|dgd%|z
  z  z  }Œ2 ||t~        <   |t           |t           }#}"tg        |«      |"|d   z  d&z   d'z  z  }$t€        |vr[|rG|j                  d(t‚        «      }%|$dk(  rd
nt…        |%|$z  |#«      }&|dk(  rt…        |&d&z   d'z  d'z  |#«      }&n|#}&|&dk(  rd
}&|&|t€        <   |$dk(  rd
n|$|t€           z  }'|#|t€           z   d
z
  |t€           z  }(|'d)k\  r!t2        j†                  |j8                  tˆ        <   |'f|(d
z
  z  |$|#z  |'|(d
z
  z  z
  fz   |tˆ        <   t‹        tq        d|'|(z  |'«      «      |tŒ        <   tŽ        j                  |d
«      |t�        <   | j                  d*k(  r6t’        d+t”        d,ij—                  «       D ]  \  }})|j™                  ||)«       Œ tš        tœ        tž        t         g}*|�rmd-|v rG|d-   }+t        |+t        «      r
|+dk  s|+d.kD  rd/}
t£        |
«      ‚|dk7  rd0}
t£        |
«      ‚|+|t¤        <   t(        j+                  d1«       t(        j+                  d2t§        |j—                  «       «      «       d},t=        |d3«      r5	 |j©                  d«       t«        j¬                  |j¯                  «       «      },i }-|*t´        t”        tˆ        tŒ        t¶        t¸        gz  }*td        |d   i}.t»        j¼                  |j—                  «       |j—                  «       «      D ]ò  \  }})|t2        j¾                  vr„tA        t"        jÀ                  d4d5«      sŒ4||j8                  v r|j8                  |   |-|<   nGt        |)t        tÂ        tÄ        t         f«      sŒvt3        jÆ                  |«      jÈ                  }/|/r|/|-|<   ||.vsŒ¡||*vsŒ¦t        |)tÄ        «      r|)jË                  d6d7«      d8z   |.|<   ŒÏt        |)tÌ        «      rtÃ        |)«      |.|<   Œî|)|.|<   Œô tD        |.v r(tg        |.tD           «      d
k(  r|.tD           d   |.tD        <   t(        j+                  d9t§        |.j—                  «       «      «       | j                  d:v rd;}t-        |.j—                  «       «      }0|0jÏ                  «        |||,||0|-f}1t#        jÐ                  | j                  d<|1|«      }2|2jÓ                  | jz                  d=| j                  z   «       	 |2jË                  d>«      d
d  \  }3}4|,s|jÕ                  |4«       |3rnŒ.|,r	 t«        jÖ                  |,«       |3dk  rXd?|3› d@�}
t        |
«      ‚|*D ]  }||= Œ |jÙ                  |«      }5tÛ        jÜ                  | |dd=| j                  z   |5||$d
ffg«       dA|v r|| _o        y y # t        $ r!}	d| j                  › d�}
t        |
«      |	‚d }	~	ww xY w# t        $ r1 | j                  j                  d«      }t        |t        «      rd }Y �
Œww xY w# t:        $ r Y �	Œ£w xY wc c}!w # t°        j²                  $ r Y �Œ†w xY w# t        $ r Y �Œw xY w)BNzcannot write mode z as TIFFrh   rG  r   r)   r+   r1   r-   r   r   Útiffinfor2  zTiffinfo Keys: %sr"  rý  rK  ÚdescriptionrI  Úx_resolutionÚy_resolutionÚresolution_unitÚsoftwareÚ	date_timeÚartistÚ	copyrightrH  r    r7   )r9   r:   r9   r   rL  rI   rM  r"   r   r*   r,   Ú
strip_sizer   r„  )r   r   )r   r   é€   r   r�  r   Úqualityéd   zInvalid quality settingz5quality setting only supported for 'jpeg' compressionzSaving using libtiff encoderz	Items: %sr6  rd   Fr>  rÓ   rr  zConverted items: %s)r>   r<   rJ  r8  rM   i @  zencoder error z when writing image fileÚ_debug_multipage)pÚ	SAVE_INFOr  r³  r¢  ró   ÚencoderinfoÚencoderconfigrA  r²  r�   rÃ   ÚWRITE_LIBTIFFrQ  r×   rV  rW  r!  r   ÚExifrÀ  r´  rµ  rØ  rà  rì  r   r.  r/  r  r  rÌ   r"  r�   ÚEXIFIFDrY  rc  ra  rb  ÚIPTC_NAA_CHUNKÚPHOTOSHOP_CHUNKr  rý  rM  rC  rj  ÚIMAGEDESCRIPTIONÚSOFTWAREÚ	DATE_TIMEÚARTISTÚ	COPYRIGHTrZ  r]   r\  r[  rS  Úcopyr±  ÚheightÚwidthr   Úinvertr  Ú
getpaletterk  rf  Ú
STRIP_SIZErz   rI  ÚSTRIPBYTECOUNTSr   rÄ  ÚCOMPRESSION_INFO_REVrO  rU  ÚREFERENCEBLACKWHITEr  Ú
setdefaultrg  rh  re  ÚTILEBYTECOUNTSrP  ÚJPEGQUALITYrÃ  r¶  ÚosÚdupr6  ÚioÚUnsupportedOperationÚOSUBFILETYPEÚTRANSFERFUNCTIONÚSUBIFDÚ	itertoolsÚchainÚLIBTIFF_COREr  rŽ   r™   r  rB  rN  ro   ÚsortÚ_getencoderr=  rÑ  r@  rÒ  r   Ú_saver“  )6r  r£  rþ  rw  ri   rm  r‚  ÚbitsÚextrarC  r  rÂ  r•  r–  rG  r8  rA  r2  r3  Ú
legacy_ifdÚsupplied_tagsr"  Úiccrð   rH  Úinverted_imÚpxr|  r{  ÚlutÚcolormapÚcolorsr¹  r0  r  re  r€  Úim_strip_sizeÚrows_per_stripÚstrip_byte_countsÚstrips_per_imager�   Ú	blocklistr‘  r  ÚtypesÚattsrB  rô  r}  ÚencoderÚerrcoderâ   r¿  s6                                                         r`   r¹  r¹  C  s  € ð"Ü6?ÀÇÁÑ6HÑ3ˆ�˜ ¨¨eô
   vÔ
.€Cà—.‘.€KØ×$Ñ$€MðØ! -Ñ0ˆð ÐØ‰Ø	˜Ò	#à‰Ø	˜Ò	&Ø*ˆäÒ3˜{¨eÑ3€Gð !"€CÔÑà—g‘g˜a‘j€CŒ
�OØ—w‘w˜q‘z€CŒÑð �[Ñ Ø˜:Ñ&‰Ø	�;Ñ	Ø˜6Ñ"ˆÜ�dœEÔ"Ü—:‘:“<ˆDØ�I‰I�dŒOØ‰DàˆÜ
‡L�LÐ$¤d¨4£jÔ1Ü�$Ô-Ô.Ø�z‰z‹|ˆØò ˆÜ�dœEŸJ™JÔ'¨C´8×3JÑ3JÑ,JØ—|‘| CÓ(ˆC�ŠHà—x‘x “}ˆC�‰Hð	Ø#Ÿ|™|¨CÑ0ˆC�K‰K˜Òðð €JÜˆr�5ÔØ—V‘V—\‘\“^ˆ
à?�zÐ?¤W¨R°¸2Ó%>Ð?€Mô 	äð	ò #ˆð �-ÒØ˜cÑ"ð#ô ˆr�8Ôô ÜÜÜÜÜð
ò 	>ˆCð �b—i‘iÒØœ.Ò(¨R¯Y©Y×->Ñ->¸sÑ-CÜ—M‘MÜ×&Ñ&ðLñ .ð & cÑ*à!Ÿy™y¨™~�C˜‘HØ')§y¡y×'8Ñ'8¸Ñ'=�C—K‘K Ò$ð!	>ð( �/‰/˜-¨¯©¯©°]Ó)CÓ
D€CÙ
ØˆŒJ‰ô 
˜=Ð)Ü	�|Ð$Ü	�|Ð$Ü	�~Ð&Ü	�~Ð&Ü	Ð+Ð,Ü	�:ÐÜ	�KÐ Ü	�ÐÜ	�KÐ ðò )‰	ˆˆTð �;ÒØ" 4Ñ(ˆC�ŠHð)ð �/‰/˜%Ó
 €CÙ
Ø ˆŒOÑØ ™FˆŒLÑØ ™FˆŒLÑàˆt‚|Ø!ˆŒMÑÜˆt‹9˜Š>Ü#& t£9ˆC”Ñ ØÐØ!ˆŒLÑØ�‚{Ø"ˆŒLÑä!¨Ñ,Ø*/ˆÔ&Ò'Ø	�‰�JÑ	 3Ô'AÑ#BÀaÒ#GØ�7‰7�cŠ>ØŸ'™'›)ˆKØ×!Ñ!Ó#ˆBÜ˜;×-Ñ-Ó.ò =�Ü˜{×0Ñ0Ó1ò =�AØ$& q¨! t¡H°¢O™q¸�B�q˜!�t’Hñ=ð=ð ‰Bä—‘ Ó$ˆBà	‡w�w�+ÑØ�e‰e×Ñ˜u gÓ.ˆØˆÜ�S“˜Q‘ˆÜ�q“ò 	-ˆAØ¨#¨f°q©j¸6ÀQÈÁUÑ;KÐ*LÖM Q˜˜S›ÒMÑMˆHØ˜˜˜s V™|Ñ,Ñ,‰Hð	-ð !ˆŒH‰àŒz‰?˜C¤Ñ,€q€AÜ�‹Y˜1˜t A™w™;¨™?¨qÑ0Ñ1€FÜ˜3ÑáØ'ŸO™O¨L¼*ÓEˆMØ"(¨A¢+™Q´3°}ÈÑ7NÐPQÓ3RˆNà˜fÒ$Ü!$ ~¸Ñ'9¸aÑ&?À1Ñ%DÀaÓ!H‘àˆNØ˜QÒØˆNØ*ˆŒLÑØ# qš[™¨f°s¼<Ñ7HÑ.HÐØ˜C¤Ñ-Ñ-°Ñ1°c¼,Ñ6GÑGÐØ˜EÒ!Ü'/§}¡}ˆ�‰”OÑ$Ø-Ð/Ð3CÀaÑ3GÑHØ�‰
Ð&Ð*:¸QÑ*>Ñ?Ñ?ðLñ €CŒÑô ÜˆaÐ"Ð%5Ñ5Ð7HÓIó€CŒÑô ,×/Ñ/°¸QÓ?€CŒÑà	‡w�w�'Òä˜fÜÐ!=ð
÷ ‰%‹'ò	'‰JˆC�ð �N‰N˜3 Õ&ð		'ô œJ¬´^ÐD€IÚØ˜Ñ#Ø! )Ñ,ˆGÜ˜g¤sÔ+¨w¸ª{¸gÈºmØ/�Ü  “oÐ%Ø˜fÒ$ØM�Ü  “oÐ%Ø&ˆC”Ñä�‰Ð3Ô4Ü�‰�[¤&¨¯©«Ó"5Ô6ØˆÜ�2�xÔ ðØ—‘˜”
Ü—f‘f˜RŸY™Y›[Ó)�ð
 ˆð 	ÜÜÜÜÜÜð
ñ 	
ˆ	ô ˜t A™wÐ'ˆô $Ÿ/™/¨#¯)©)«+°}×7JÑ7JÓ7LÓMò 	&‰JˆC�ð
 œ(×/Ñ/Ñ/ÜœuŸz™zÐ+HÈ%ÔPØà˜#Ÿ+™+Ñ%Ø!$§¡¨SÑ!1�E˜#’JÜ$ U¬S´%¼¼eÐ,DÔEØä#Ÿ?™?¨3Ó/×4Ñ4�DÙØ%)˜˜c™
Ø˜$Š 3¨iÒ#7Ü˜e¤SÔ)Ø %§¡¨W°iÓ @À5Ñ H�D˜’IÜ ¤{Ô3Ü % e£�D˜’Ià %�D˜’Ið/	&ô2 ˜4Ñ¤C¨¬\Ñ(:Ó$;¸qÒ$@Ø!%¤lÑ!3°AÑ!6ˆD”Ñä�‰Ð*¬F°4·:±:³<Ó,@ÔAð �7‰7Ð'Ñ'ØˆGô
 �D—J‘J“LÓ!ˆØ�	‰	ŒØ�k 3¨°$¸Ð>ˆÜ×#Ñ# B§G¡G¨Y¸¸=ÓIˆØ×Ñ˜Ÿ™ ¨¯©Ñ 0Ô1Øà#ŸN™N¨9Ó5°a°bÐ9‰MˆG�TÙØ—‘˜”ÙØð ñ ðÜ—‘˜”ð �QŠ;Ø" 7 )Ð+CÐDˆCÜ˜#“,Ðð ò 	ˆCØ�C‘ð	à—‘˜"“ˆä�‰Ø��e˜V b§g¡gÑ-¨v¸ÀÈÐ7KÐLÐMô	
ð
 ˜[Ñ(à!ˆÕð )øôY	 ò "Ø" 2§7¡7 )¨8Ð4ˆÜ�c‹l Ð!ûð"ûô ò Ø—g‘g—k‘k -Ó0ˆÜ�k¤3Ô'àˆKúð	ûôT ò 	Úð	üòz Nøôt ×*Ñ*ò Úðûôb ò Úðúse   ‚i Áj ÆkÓkÜ24k çk0 é	jé i<é<jê6j>ê=j>ë	këkëk-ë,k-ë0	k=ë<k=c                  óô   — e Zd Zg d¢Zh d£Zdd„Zdd„Zdd„Zdd„Zdd„Z	dd„Z
dd	„Zej                  fd
„Zdd„Zdd„Zdd„Zd d„Zdd„Zdd„Zd!d„Zd!d„Zd!d„Zd!d„Zd!d„Zdd„Zdd„Z	 d"	 	 	 	 	 	 	 d#d„Zy)$ÚAppendingTiffWriter)r   r   r   r    r$   r,   r   r   r    r$   r,   r$   r,   r$   r    r$   r,   >   é  é  é	  é   r   r   c                ó   — t        |d«      r|| _        d| _        n$|| _        d| _        	 t	        ||rdnd«      | _        | j                  j                  «       | _        | j                  «        y # t
        $ r t	        |d«      | _        Y ŒLw xY w)Nr¡  FTzw+bzr+b)	rÌ   r—   Úclose_fprð   Úopenr¢  r°  Ú	beginningÚsetup)rƒ   Úfnr  s      r`   r�   zAppendingTiffWriter.__init__•  sy   € Ü�2�vÔØˆDŒFØ!ˆD�MàˆDŒIØ ˆDŒMð)Ü˜b©3¡%°EÓ:�”ð Ÿ™Ÿ™›ˆŒØ�
‰
�øô ò )Ü˜b %›�–ð)ús   «A0 Á0BÂBc                ó¤  — | j                   j                  | j                  t        j                  «       d | _        d| _        | j                   j                  d«      x| _        }|sd| _	        y d| _	        |dk(  r| j                  d«       n$|dk(  r| j                  d«       nd	}t        |«      ‚| j                  «        | j                  «        y )
Nr   r$   TFrc   rö   rb   rõ   zInvalid TIFF file header)r—   r¶  rÖ  r­  ÚSEEK_SETÚwhereToWriteNewIFDOffsetÚoffsetOfNewPager¡  ÚIIMMÚisFirstÚ	setEndianÚRuntimeErrorÚskipIFDsÚgoToEnd)rƒ   Úiimmr  s      r`   r×  zAppendingTiffWriter.setup£  s¢   € à�‰�‰�D—N‘N¤B§K¡KÔ0à(,ˆÔ%Ø ˆÔàŸ6™6Ÿ;™; q›>Ð)ˆŒ	�DÙàˆDŒLØàˆŒØ�=Ò Ø�N‰N˜3ÕØ�]Ò"Ø�N‰N˜3Õà,ˆCÜ˜sÓ#Ð#à�‰ŒØ�‰�rk   c                óÜ  — | j                   ry | j                  j                  | j                  «       | j                  j	                  d«      }|sy || j
                  k7  rd}t        |«      ‚| j                  «       }|| j                  z  }| j                  j                  | j                  «       | j                  |«       | j                  j                  |«       | j                  «        y )Nr$   z1IIMM of new page doesn't match IIMM of first page)rÞ  r—   r¶  rÜ  r¡  rÝ  rà  ÚreadLongrÛ  Ú	writeLongÚfixIFD)rƒ   rã  r  Ú
ifd_offsets       r`   ÚfinalizezAppendingTiffWriter.finalize¼  s­   € Ø�<Š<Øð 	�‰�‰�D×(Ñ(Ô)à�v‰v�{‰{˜1‹~ˆÙàà�4—9‘9ÒØEˆCÜ˜sÓ#Ð#à—]‘]“_ˆ
Ø�d×*Ñ*Ñ*ˆ
Ø�‰�‰�D×1Ñ1Ô2Ø�‰�zÔ"Ø�‰�‰�JÔØ�‰�rk   c                óD   — | j                  «        | j                  «        y rw   )ré  r×  r’   s    r`   ÚnewFramezAppendingTiffWriter.newFrameÓ  s   € à�‰ŒØ�
‰
�rk   c                ó   — | S rw   r8   r’   s    r`   Ú	__enter__zAppendingTiffWriter.__enter__Ø  s   € Øˆrk   c                ó>   — | j                   r| j                  «        y y rw   )rÔ  r@  )rƒ   r„   s     r`   Ú__exit__zAppendingTiffWriter.__exit__Û  s   € Ø�=Š=Ø�J‰J�Lð rk   c                óP   — | j                   j                  «       | j                  z
  S rw   )r—   r°  rÜ  r’   s    r`   r°  zAppendingTiffWriter.tellß  s   € Ø�v‰v�{‰{‹}˜t×3Ñ3Ñ3Ð3rk   c                óž   — |t         j                  k(  r|| j                  z  }| j                  j	                  ||«       | j                  «       S rw   )r­  rÚ  rÜ  r—   r¶  r°  )rƒ   r¿  Úwhences      r`   r¶  zAppendingTiffWriter.seekâ  s<   € Ø”R—[‘[Ò Ø�d×*Ñ*Ñ*ˆFà�‰�‰�F˜FÔ#Ø�y‰y‹{Ðrk   c                ó>  — | j                   j                  dt        j                  «       | j                   j	                  «       }d|dz  z
  }d|cxk  rdk  r'n n$| j                   j                  t        |«      «       | j                   j	                  «       | _        y )Nr   r=   )r—   r¶  r­  ÚSEEK_ENDr°  rÑ  r!  rÜ  )rƒ   ÚposÚ	pad_bytess      r`   râ  zAppendingTiffWriter.goToEndé  sj   € Ø�‰�‰�A”r—{‘{Ô#Ø�f‰f�k‰k‹mˆð ˜˜r™‘Mˆ	ØˆyÔ˜2ÕØ�F‰F�L‰Lœ˜yÓ)Ô*Ø#Ÿv™vŸ{™{›}ˆÕrk   c                óŠ   — || _         | j                   › d�| _        | j                   › d�| _        | j                   › d�| _        y )Nr:   ra  ÚHHL)ÚendianÚlongFmtÚshortFmtÚ	tagFormat)rƒ   rù  s     r`   rß  zAppendingTiffWriter.setEndianó  s?   € ØˆŒØŸ+™+˜ aÐ(ˆŒØŸ;™;˜- qÐ)ˆŒØ ŸK™K˜=¨Ð,ˆ�rk   c                ó&  — 	 | j                  «       }|dk(  r#| j                  j                  «       dz
  | _        y | j                  j	                  |«       | j                  «       }| j                  j	                  |dz  t        j                  «       Œ‘)Nr   r$   r;   )rå  r—   r°  rÛ  r¶  Ú	readShortr­  ÚSEEK_CUR)rƒ   rè  Únum_tagss      r`   rá  zAppendingTiffWriter.skipIFDsù  sl   € ØØŸ™›ˆJØ˜QŠØ04·±·±³ÀÑ0A�Ô-Øà�F‰F�K‰K˜
Ô#Ø—~‘~Ó'ˆHØ�F‰F�K‰K˜ 2™¤r§{¡{Ô3ð rk   c                ó8   — | j                   j                  |«      S rw   )r—   rÑ  ro  s     r`   rÑ  zAppendingTiffWriter.write  s   € Ø�v‰v�|‰|˜DÓ!Ð!rk   c                ó|   — t        j                  | j                  | j                  j	                  d«      «      \  }|S )Nr    )rí   r^  rû  r—   r¡  rw  s     r`   rþ  zAppendingTiffWriter.readShort  s)   € Ü—=‘= §¡°·±·±¸A³Ó?‰ˆØˆrk   c                ó|   — t        j                  | j                  | j                  j	                  d«      «      \  }|S rf   )rí   r^  rú  r—   r¡  rw  s     r`   rå  zAppendingTiffWriter.readLong  s)   € Ü—=‘= §¡¨t¯v©v¯{©{¸1«~Ó>‰ˆØˆrk   c                óü   — | j                   j                  dt        j                  «       | j                   j	                  t        j                  | j                  |«      «      }|�|dk7  rd|› d�}t        |«      ‚y y )Néþÿÿÿr$   úwrote only ú bytes but wanted 4©	r—   r¶  r­  rÿ  rÑ  rí   r`  rú  rà  ©rƒ   r�   Úbytes_writtenr  s       r`   ÚrewriteLastShortToLongz*AppendingTiffWriter.rewriteLastShortToLong  óh   € Ø�‰�‰�BœŸ™Ô$ØŸ™Ÿ™¤V§[¡[°·±¸uÓ%EÓFˆØÐ$¨¸!Ò);Ø ˜Ð.AÐBˆCÜ˜sÓ#Ð#ð *<Ð$rk   c                óü   — | j                   j                  dt        j                  «       | j                   j	                  t        j                  | j                  |«      «      }|�|dk7  rd|› d�}t        |«      ‚y y )Nr  r    r  ú bytes but wanted 2)	r—   r¶  r­  rÿ  rÑ  rí   r`  rû  rà  r	  s       r`   ÚrewriteLastShortz$AppendingTiffWriter.rewriteLastShort  sh   € Ø�‰�‰�BœŸ™Ô$ØŸ™Ÿ™¤V§[¡[°·±ÀÓ%FÓGˆØÐ$¨¸!Ò);Ø ˜Ð.AÐBˆCÜ˜sÓ#Ð#ð *<Ð$rk   c                óü   — | j                   j                  dt        j                  «       | j                   j	                  t        j                  | j                  |«      «      }|�|dk7  rd|› d�}t        |«      ‚y y )Néüÿÿÿr$   r  r  r  r	  s       r`   ÚrewriteLastLongz#AppendingTiffWriter.rewriteLastLong  r  rk   c                ó¨   — | j                   j                  t        j                  | j                  |«      «      }|�|dk7  rd|› d�}t        |«      ‚y y )Nr    r  r  )r—   rÑ  rí   r`  rû  rà  r	  s       r`   Ú
writeShortzAppendingTiffWriter.writeShort$  sR   € ØŸ™Ÿ™¤V§[¡[°·±ÀÓ%FÓGˆØÐ$¨¸!Ò);Ø ˜Ð.AÐBˆCÜ˜sÓ#Ð#ð *<Ð$rk   c                ó¨   — | j                   j                  t        j                  | j                  |«      «      }|�|dk7  rd|› d�}t        |«      ‚y y )Nr$   r  r  )r—   rÑ  rí   r`  rú  rà  r	  s       r`   ræ  zAppendingTiffWriter.writeLong*  sR   € ØŸ™Ÿ™¤V§[¡[°·±¸uÓ%EÓFˆØÐ$¨¸!Ò);Ø ˜Ð.AÐBˆCÜ˜sÓ#Ð#ð *<Ð$rk   c                óX   — | j                  «        | j                  j                  «        y rw   )ré  r—   r@  r’   s    r`   r@  zAppendingTiffWriter.close0  s   € Ø�‰ŒØ�‰�‰�rk   c                ó"  — | j                  «       }t        |«      D �]p  }t        j                  | j                  | j
                  j                  d«      «      \  }}}| j                  |   }||z  }|dk  }|s.| j                  «       | j                  z   }	| j                  |	«       || j                  v r«| j
                  j                  «       }
|r9| j                  ||dk(  |dk(  ¬«       | j
                  j                  |
dz   «       nP| j
                  j                  	«       | j                  ||dk(  |dk(  ¬«       | j
                  j                  |
«       d x}	}
�ŒC|s�ŒG| j
                  j                  dt        j                   «       �Œs y )Nr,   r$   r    )ÚisShortÚisLong)rþ  r±  rí   r^  rü  r—   r¡  Ú
fieldSizesrå  rÜ  r  ÚTagsr°  Ú
fixOffsetsr¶  r­  rÿ  )rƒ   r   r¹  r"  Ú
field_typerº  Ú
field_sizeÚ
total_sizeÚis_localr¿  Úcur_poss              r`   rç  zAppendingTiffWriter.fixIFD4  sK  € Ø—>‘>Ó#ˆä�x“ó 	,ˆAÜ%+§]¡]°4·>±>À4Ç6Á6Ç;Á;ÈqÃ>Ó%RÑ"ˆC�˜UàŸ™¨Ñ4ˆJØ# eÑ+ˆJØ! Q‘ˆHáØŸ™›¨4×+?Ñ+?Ñ?�Ø×$Ñ$ VÔ,à�d—i‘iÑØŸ&™&Ÿ+™+›-�áØ—O‘OØ¨
°a©À*ÐPQÁ/ð $ô ð —F‘F—K‘K ¨!¡Õ,à—F‘F—K‘K Ô'Ø—O‘OØ¨
°a©À*ÐPQÁ/ð $ô ð —F‘F—K‘K Ô(à#'Ð'�šãà—‘—‘˜AœrŸ{™{Ö+ñ=	,rk   c                ó.  — |s|sd}t        |«      ‚t        |«      D ]ö  }|r| j                  «       n| j                  «       }|| j                  z  }|rœ|dk\  r—|dk7  rd}t        |«      ‚| j                  |«       | j                  j                  dt        j                  «       | j                  t        j                  «       | j                  j                  dt        j                  «       ŒÒ|r| j                  |«       Œæ| j                  |«       Œø y )Nz offset is neither short nor longr   r   znot implementediöÿÿÿr,   )rà  r±  rþ  rå  rÜ  r  r—   r¶  r­  rÿ  r  r   rI  r  r  )rƒ   rº  r  r  r  r¹  r¿  s          r`   r  zAppendingTiffWriter.fixOffsetsW  sÝ   € ñ ™vØ4ˆCÜ˜sÓ#Ð#ä�u“ò 	-ˆAÙ)0�T—^‘^Ô%°d·m±m³oˆFØ�d×*Ñ*Ñ*ˆFÙ˜6 Uš?à˜A’:Ø+�CÜ& sÓ+Ð+ð ×+Ñ+¨FÔ3Ø—‘—‘˜C¤§¡Ô-Ø—‘¤§¡Ô.Ø—‘—‘˜AœrŸ{™{Õ+ÙØ×%Ñ% fÕ-à×$Ñ$ VÕ,ñ%	-rk   N)FrÕ  )rÁ   rÎ  )r„   rÄ   rÁ   rÔ  rÂ   )rù  r™   rÁ   rÔ  )râ   r!  rÁ   rÓ  )r�   rÃ   rÁ   rÔ  )FF)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ß  rá  rÑ  rþ  rå  r  r  r  r  ræ  r@  rç  r  r8   rk   r`   rÎ  rÎ  w  s¯   „ ò€Jò(€Dóóó2ó.ó
óó4ð #%§+¡+ó ó-ó-ó	4ó"óóó$ó$ó$ó$ó$óó!,ðH AFð-Øð-Ø#'ð-Ø9=ð-à	ô-rk   rÎ  c                ór  — | j                   j                  «       }| j                  }t        |j	                  dg «      «      }t        | d«      s|st        | ||«      S | j                  «       }	 t        |«      5 }| g|z   D ]y  }||_         ||_        t        |d«      sd}	n|j                  }	t        |	«      D ]@  }
|j                  |
«       |j                  «        t        |||«       |j                  «        ŒB Œ{ 	 d d d «       | j                  |«       y # 1 sw Y   ŒxY w# | j                  |«       w xY w)NÚappend_imagesr
  r   )r•  r¡  r–  rØ  r²  rÌ   r¹  r°  rÎ  r
  r±  r¶  rÀ  rë  )r  r£  rþ  r•  r–  r$  Úcur_idxÚtfÚimsÚnfrrÖ   s              r`   Ú	_save_allr)  s  s  € Ø—.‘.×%Ñ%Ó'€KØ×$Ñ$€MÜ˜Ÿ™¨¸"Ó=Ó>€MÜ�2�zÔ"©=Ü�R˜˜XÓ&Ð&à�g‰g‹i€GðÜ  Ó$ð 	"¨Ø�t˜mÑ+ò "�Ø"-�”Ø$1�Ô!Ü˜s JÔ/Ø‘CàŸ,™,�Cä  ›:ò "�CØ—H‘H˜S”MØ—H‘H”JÜ˜#˜r 8Ô,Ø—K‘K•Mñ	"ñ"÷	"ð 	�‰�Õ÷	"ð 	"ûð 	�‰�Õús%   Á.D# Á9BDÃ=D# ÄD ÄD# Ä#D6z.tifz.tiffz
image/tiff)ri   r!  rÁ   rÅ   )r  zImage.Imager£  z	IO[bytes]rþ  zstr | bytesrÁ   rÔ  )Ú
__future__r   r¯  r´  Úloggingr  r­  rí   rQ  Úcollections.abcr   Ú	fractionsr   Únumbersr   r   Útypingr   r	   r
   r   r   Ú r   r   r   r   r   r   Ú_binaryr   r  r   r!  r   Ú
_deprecater   r   Ú	getLoggerrÆ   r´  rd  r—  ÚIFD_LEGACY_APIr¦  rþ   rü   r±  rV  rW  rZ  rO  rS  rT  rœ  rÄ  r\  rf  r§  ra  rb  rQ  rc  r²  r�  rž  rŸ  Ú	PREDICTORrk  rg  rh  re  r«  r³  r[  rY  Ú
JPEGTABLESrU  r©  r   rš  r›  rj  r™  r  r¬  ÚIMAGEJ_META_DATA_BYTE_COUNTSÚIMAGEJ_META_DATArN  r  r¨  r_  r{   r]  rg   r�   r  rj   ru   r~   rÔ   rÜ   r‡   ro   rÙ   rÝ   rñ   rÃ   Ú
_IFDv2Baseró   rÖ   rð   rÓ   Úsetattrrà  ÚImageFileDirectoryrú  r”  r¹  rÎ  r)  Úregister_openr‚  Úregister_saveÚregister_save_allÚregister_extensionsÚregister_mime)Úkr0  s   00r`   ú<module>rB     s  ðõR #ã 	Û Û Û Û 	Û Û Ý *Ý ß $ß =Õ =ç J× JÝ !Ý !Ý Ý !Ý à	ˆ×	Ñ	˜8Ó	$€ð €Ø€Ø€Ø€
à
€Ø
€ð €Ø€
Ø€Ø€Ø€Ø Ð Ø€	ØÐ Ø€Ø€Ø€Ø€Ø€Ø€ØÐ Ø€ØÐ Ø€Ø€	Ø	€Ø€	Ø€Ø€	Ø€
Ø€Ø€Ø	€Ø€Ø€Ø€
ØÐ ØÐ Ø€	Ø€Ø€Ø€
Ø
€Ø	€Ø€ð  %Ð ØÐ ðà€uðð €|ðð €xð	ð
 €xðð €zðð €{ðð €vðð Ððð 
ˆ=ðð 
ˆ:ðð 
Ððð 
ˆ>ðð 
ˆ=ðð 
ˆ?ðð  
ˆ6ð!ð" 
ˆ6ð#ð$ 
ˆ6ð%Ð ð* *:×)?Ñ)?Ó)A×B¡  A˜˜1™ÓBÐ ð{ð ˆˆD�!�T˜2Ð ð{ð ˆˆD�!�T˜2Ð ð	{ð
 ˆˆD�!�T˜2Ð ð{ð ˆˆD�!�T˜2Ð ð{ð ˆˆD�!�T˜2Ð 
ð{ð ˆˆD�!�T˜2Ð 
ð{ð ˆˆD�!�T˜2Ð ð{ð ˆˆD�!�T˜2Ð ð{ð ˆˆD�!�T˜2Ð ð{ð ˆˆD�!�T˜2Ð ð{ð ˆˆD�!�T˜2Ð ð{ð ˆˆD�!�T˜2Ð ð{ð ˆˆD�!�T˜2Ð ð{ð  ˆˆD�!�T˜2Ð ð!{ð" ˆˆD�!�T˜2Ð ð#{ð$ ˆˆD�!�T˜2Ð ð%{ð& ˆˆD�!�T˜2Ð ñ'{ð( ˆˆD�!�T˜2Ð ð){ð* ˆˆD�!�T˜2Ð ð+{ð, ˆˆD�!�T˜2Ð ð-{ð. ˆˆD�!�T˜2Ð ð/{ð0 ˆˆD�!�T˜2Ð ð1{ð2 ˆˆD�!�T˜2Ð ð3{ð4 ˆˆD�!�T˜2Ð ð5{ð6 ˆˆD�!�T˜2Ð ð7{ð8 ˆˆD�!�T˜2Ð ð9{ð: ˆˆD�!�T˜2Ð ð;{ð< ˆˆD�!�T˜2Ð ð={ð> ˆˆD�!�T˜2Ð 
ð?{ð@ ˆˆD�!�T˜2Ð 
ðA{ðB ˆˆD�!�T˜2Ð 
ðC{ðD ˆˆD�!�T˜2Ð 
ðE{ðF ˆˆD�!�T˜2Ð ðG{ðH ˆˆD�!�T˜2Ð òI{ðJ ˆˆD�!�U˜BÐÐ!1ðK{ðL ˆˆD�!�U˜BÐÐ!1ðM{ðN ˆˆD�!�U˜BÐÐ!1ðO{ðP ˆˆD�!�U˜BÐÐ!3ðQ{ðR ˆˆD�!�U˜BÐÐ!2ðS{ðT ˆˆD�!�U˜BÐ ðU{ðV ˆˆD�!�U˜BÐ ðW{ðX ˆˆD�!�U˜BÐ ðY{ðZ ˆˆD�!�U˜BÐ ð[{ð\ ˆˆD�!�U˜BÐ ð]{ð^ ˆˆD�!�U˜BÐ ð_{ð` ˆˆD�!�U˜BÐ ða{ðb ˆˆD�!�U˜BÐ ðc{ðd ˆˆD�!�U˜BÐ ðe{ðf ˆˆD�!�V˜TÐ" Lðg{ðh ˆˆD�!�V˜TÐ" Lði{ðj ˆˆD�!�Y Ð# ^òk{ðl ˆˆD�!�Y Ð# ^ðm{ðn ˆˆD�!�Y Ð#Ð%5ðo{ðp ˆˆD�!�Y Ð#Ð%5ðq{ðr ˆˆD�!�\ 2Ð&Ð(8ðs{ðt ˆˆD�!�\ 2Ð&Ð(8ðu{ðv ˆˆD�!�\ 4Ð(¨/ðw{ðx ˆˆD�!�\ 4Ð(¨/ðy{ðz ˆˆD�!�_ fÐ-Ð/?ð{{ð| ˆˆD�!�_ fÐ-Ð/?ð}{ð~ ˆˆD�!Ð'¨Ð3Ð5Fð{ð@ ˆˆD�!Ð'¨Ð3Ð5FðA{ðB ˆˆD�!�\ 4Ð(Ð*:ðC{ðD ˆˆD�!�\ 4Ð(Ð*:ðE{ðF ˆˆD�!�_ fÐ-Ð/@ðG{ðH ˆˆD�!�_ fÐ-Ð/@ðI{ðJ ˆˆD�!Ð'¨Ð3Ð5GðK{ðL ˆˆD�!Ð'¨Ð3Ð5GòM{ðN ˆˆD�!�\ 4Ð(Ð*:ðO{ðP ˆˆD�!�\ 4Ð(Ð*:ðQ{ðR ˆˆD�!�_ fÐ-Ð/@ðS{ðT ˆˆD�!�_ fÐ-Ð/@ðU{ðV ˆˆD�!Ð'¨Ð3Ð5GðW{ðX ˆˆD�!Ð'¨Ð3Ð5GðY{ðZ ˆˆD�!�\ 6Ð*Ð,<ð[{ð\ ˆˆD�!�\ 6Ð*Ð,<ð]{ð^ ˆˆD�!�\ 2Ð&Ð(:ð_{ð` ˆˆD�!�\ 2Ð&Ð(:ða{ðb ˆˆD�!Ð% rÐ*Ð,@ðc{ðd ˆˆD�!Ð% rÐ*Ð,@ðe{ðf ˆˆD�!Ð% tÐ,Ð.Aðg{ðh ˆˆD�!Ð% tÐ,Ð.Aði{ðj ˆˆD�!Ð% tÐ,Ð.Bðk{ðl ˆˆD�!Ð% tÐ,Ð.Bðm{ðn ˆˆD�!Ð% tÐ,Ð.Bòo{ðp ˆˆD�!Ð% tÐ,Ð.Bðq{ðr ˆˆD�!�T˜2Ð ðs{ðt ˆˆD�!�T˜2Ð ðu{ðv ˆˆD�!�T˜2Ð ðw{ðx ˆˆD�!�T˜2Ð ðy{ðz ˆˆD�!�T˜2Ð ð{{ð| ˆˆD�!�T˜2Ð ð}{ð~ ˆˆD�!�T˜2Ð ð{ð@ ˆˆD�!�T˜2Ð ðA{ðB ˆˆD�!�T˜2Ð ðC{ðD ˆˆD�!�T˜2Ð ðE{ðF ˆˆD�!�T˜2Ð ðG{ðH ˆˆD�!�T˜2Ð ðI{ðJ ˆˆD�!�T˜2Ð 
ðK{ðL ˆˆD�!�T˜2Ð 
ðM{ðN ˆˆD�!�V˜TÐ" KðO{ðP ˆˆD�!�V˜TÐ" LòQ{ðR ˆˆD�!�V˜TÐ" LðS{ðT ˆˆD�!�T˜2Ð ðU{ðV ˆˆD�!�T˜2Ð ðW{ðX ˆˆD�!�\ 2Ð&Ð(8ðY{ðZ ˆˆD�!�\ 2Ð&Ð(8ð[{ð\ ˆˆD�!�_ dÐ+Ð->ð]{ð^ ˆˆD�!�_ dÐ+Ð->ð_{ð` ˆˆD�!Ð'¨Ð0Ð2Dða{ðb ˆˆD�!Ð'¨Ð0Ð2Dðc{ðd ˆˆD�!Ð% rÐ*Ð,@ðe{ðf ˆˆD�!�T˜2Ð 
ðg{ðh ˆˆD�!�T˜2Ð 
ði{ðn ˆˆD�!�Y Ð# _ðo{ðp ˆˆD�!�Y Ð# _ðq{ðr ˆˆD�!�Y Ð# ^ðs{ðt ˆˆD�!�Y Ð# ^ñu{€	ñz ÑA°yÔAÓAÐ ò€ñ ˆu�z‰zÐ8¸$Ô?ÙÐ:¸BÔ?ó"ò%òð" €Ø€òôy'�(ô y'òx	òòñ" Ø  S Ñ)�Jà€Jôr$˜Jô r$ðj (6Ð Ô $Ø(7Ð Ô %Ø�—‘“ò J�I€CˆØ�<‰<˜˜SÓ!€DÙÐ! U¨4¨& >°>À#Ñ3FÀqÑ3IÔJÙÐ! V¨D¨6 ?°OÀCÑ4HÕIðJð �O S¨$ôXÐ1ô Xðx +Ð ôTH�I×'Ñ'ô THð|ð ˆ#ˆr�1�a˜˜tÐ	$ðð ˆ#ˆr�1�a˜˜tÐ	$ð	ð
 	ˆ4��Q˜˜6 1Ð
%ðð ˆ#ˆr�1�a˜˜tÐ	$ðð 	ˆ4��Q˜˜6 1Ð
%ðð ˆ'�2�q˜!˜U DÐ	)ðð ˆV�R˜˜A˜u dÐ+ðð ˆg�r˜1˜a ¨Ð-ðð ˆ'�2�q˜!˜U DÐ	)ðð 
ˆE�2�q˜!˜Y¨Ð-ðð ˆV�R˜˜A˜|¨QÐ/ðð ˆV�R˜˜A˜|¨QÐ/ðð ˆV�R˜˜A˜|¨TÐ2ðð  ˆg�r˜1˜a ¨DÐ1ð!ð" 
ˆE�2�q˜!˜Y¨Ð-ð#ð$ ˆx˜˜Q  5¨$Ð/ð%ð& ˆg�r˜1˜a ¨Ð-ð'ð( ˜˜Q  5¨$Ð/Ø˜˜Q  5¨$Ð/ò+€	ò2q"÷h	y-ñ y-óxð> €× Ñ �M×(Ñ(¨-¸Ô AØ €× Ñ �M×(Ñ(¨%Ô 0Ø €× Ñ ˜×,Ñ,¨iÔ 8à €× Ñ ˜-×.Ñ.°¸Ð0AÔ Bà €× Ñ �M×(Ñ(¨,Õ 7ùóS@ Cs   Ä+^0