Files
old-saburly-wagtail-web/env/lib/python3.10/site-packages/PIL/__pycache__/TiffImagePlugin.cpython-310.pyc

529 lines
52 KiB
Plaintext
Raw Normal View History

2024-08-27 20:33:44 +02:00
o
<00><><EFBFBD>f<EFBFBD>1<00>@s<> ddlmZddlZddlZddlZddlZddlZddlZddlZddl m
Z
ddl m Z ddl mZmZddlmZmZmZmZmZddlmZmZmZmZmZmZdd lmZdd
lm Z!dd lm"Z"dd l#m$Z$dd lm%Z%e<04>&e'<27>Z(dZ)dZ*dZ+dZ,dZ-dZ.dZ/dZ0dZ1dZ2dZ3dZ4dZ5dZ6dZ7dZ8dZ9dZ:dZ;d Z<d!Z=d"Z>d#Z?d$Z@d%ZAd&ZBd'ZCd(ZDd)ZEd*ZFd+ZGd,ZHd-ZId.ZJd/ZKd0ZLd1ZMd2ZNd3ZOd4ZPd5ZQd6ZRd7ZSd8ZTd9ZUd:ZVd;ZWidd<<3C>d=d><3E>d?d@<40>dAdB<64>dCdD<64>dEdF<64>dGdH<64>dIdJ<64>dKdL<64>dMdN<64>dOdP<64>dQdR<64>dSdT<64>dUdV<64>dWdX<64>dYdZ<64>d[d\<5C>ZXd]d^<5E>eX<65>Y<EFBFBD>D<00>ZZie-dd_dd_d`fda<64>e.dd_dd_d`fda<64>e-dd_d=d_d`fdb<64>e.dd_d=d_d`fdb<64>e-dd_dd_d`fdc<64>e.dd_dd_d`fdc<64>e-dd_d=d_d`fdd<64>e.dd_d=d_d`fdd<64>e-dd_dded`fdf<64>e.dd_dded`fdf<64>e-dd_d=ded`fdg<64>e.dd_d=ded`fdg<64>e-dd_dded`fdh<64>e.dd_dded`fdh<64>e-dd_d=ded`fdi<64>e.dd_d=ded`fdi<64>e-dd_ddjd`fdk<64>ie.dd_ddjd`fdk<64>e-dd_d=djd`fdl<64>e.dd_d=djd`fdl<64>e-dd_ddjd`fdm<64>e.dd_ddjd`fdm<64>e-dd_d=djd`fdn<64>e.dd_d=djd`fdn<64>e-dd_ddod`fdp<64>e.dd_ddod`fdp<64>e-dd_d=dod`fdq<64>e.dd_d=dod`fdq<64>e-dd_ddod`fdr<64>e.dd_ddod`fdr<64>e-ddeddod`fdr<64>e.ddeddod`fdr<64>e-dd_d=dod`fds<64>e.dd_d=dod`fds<64><01>ie-dd_ddtd`fdu<64>e-dd_ddvd`fdw<64>e-dd_ddvd`fdw<64>e.dd_ddvd`fdx<64>e-dd_d=dvd`fdy<64>e-ddeddvd`fdz<64>e.ddeddvd`fd{<7B>e-dd|dd}d`fd~<7E>e.dd|dd}d`fd<64>e-dd_dd}d`fd<><64>e-ddedd}d`fd<><64>e.ddedd}d`fd<><64>e-dd|dd}d`fd~<7E>e.dd|dd}d`fd<64>e-dd_dd<>defd<><64>e.dd_dd<>defd<><64>e-d=d_dd<>d`fd<><64><01>ie.d=d_dd<>d`fd<><64>e-d=d_d=d<>d`fd<><64>e.d=d_d=d<>d`fd<><64>e-d=d_dd<>d`fd<><64>e.d=d_dd<>d`fd<><64>e-d=d_dd<>d<EFBFBD>fd<><64>e.d=d_dd<>d<EFBFBD>fd<><64>e-d=d_dd<>d<EFBFBD>fd<><64>e.d=d_dd<>d<EFBFBD>fd<><64>e-d=d_dd<>d<EFBFBD>fd<><64>e.d=d_dd<>d<EFBFBD>fd<><64>e-d=d_dd<>d_fd<><64>e.d=d_dd<>d_fd<><64>e-d=d_dd<>d<EFBFBD>fd<><64>e.d=d_dd<>d<EFBFBD>fd<><64>e-d=d_dd<>d<EFBFBD>fd<><64>e.d=d_dd<>d<EFBFBD>fd<><64><01>ie-d=d_dd<>defd<><64>e.d=d_dd<>defd<><64>e-d=d_dd<>d<EFBFBD>fd<><64>e.d=d_dd<>d<EFBFBD>fd<><64>e-d=d_dd<>d<EFBFBD>fd<><64>e.d=d_dd<>d<EFBFBD>fd<><64>e-d=d_dd<>d<EFBFBD>fd<><64>e.d=d_dd<>d<EFBFBD>fd<><64>e-d=d_dd<>d`fd<><64>e.d=d_dd<>d`fd<><64>e-d=d_dd<>d`fd<><64>e.d=d_dd<>d`fd<><64>e-d=d_dd<>d<EFBFBD>fd<><64>e.d=d_dd<>d<EFBFBD>fd<><64>e-d=d_dd<>d_fd<><64>e.d=d_dd<>d_fd<><64>e-d=d_dd<>defd<><64><01>ie.d=d_dd<>defd<><64>e-d?d_dd_d`fd<><64>e.d?d_dd_d`fd<><64>e-d?d_d=d_d`fd<><64>e.d?d_d=d_d`fd<><64>e-d?d_dded`fd<><64>e.d?d_dded`fd<><64>e-d?d_d=ded`fd<><64>e.d?d_d=ded`fd<><64>e-d?d_ddjd`fd<><64>e.d?d_ddjd`fd<><64>e-d?d_d=djd`fd<><64>e.d?d_d=djd`fd<><64>e-d?d_ddod`fd<><64>e.d?d_ddod`fd<><64>e-d?d_dd<>d<EFBFBD>fd<><64>e-d?d_dd<>defd<><64><01>ie.d?d_dd<>defd<><64>e-d?d_d=dod`fd<><64>e.d?d_d=dod`fd<><64>e-dCd_dd<>d`fd<><64>e.dCd_dd<>d`fd<><64>e-dCd_dd<>d<EFBFBD>fd<><64>e.dCd_dd<>d<EFBFBD>fd<><64>e-dCd_dd<>d<EFBFBD>fd<><64>e.dCd_dd<>d<EFBFBD>fd<><64>e-dCd_dd<>d`fd<><64>e-dEd_ddod`fdr<64>e.dEd_ddod`fdr<64>e-dEd_dd<>d`fd<><64>e.dEd_dd<>d`fd<><64>e-dId_dd<>d`fd<><64>e.dId_dd<>d`fd<><64><01>Z[e\d<>d<EFBFBD><64>e[D<00><01>Z]gd<><64>Z^e_ej`d<>d<0F><03>sae$d<>d<EFBFBD><64>d<>d<EFBFBD>d<EFBFBD><64>Zad<61>d„Zbd<62>ZciZdiZed<65>dƄZfGd<>d<>e<0F>Zgd<67>Zhd<68>Zid<69>d΄Zje<12>r<>e
ekefZlne
ZlGd<>d<>el<65>Zmedem_deeem_ee%<25>Y<EFBFBD>D]#\ZnZoeo<65>pd<70>Zoeqemd<6D>eo<65><00>edend<00>eqemd<6D>eo<65><00>eeen<00><00>q<>[d[e[n[oGd<>dքd<>em<65>ZrerZsGd<>d<>ej<19>Ztid<>d<EFBFBD>e-ddd_df<06>d<>d<EFBFBD>e-dddodf<06>d<>d<EFBFBD>e-ddd<>d=f<06>d<>d<EFBFBD>e-d?ddodf<06>d<>d<EFBFBD>e-d?dd<>d=f<06>d<>d<EFBFBD>e-dd=d}df<06>d<>d<EFBFBD>e-dddvdf<06>d<>d<EFBFBD>e-dd=dvdf<06>d<>d<EFBFBD>e-dd?d}df<06>d<>d<EFBFBD>e-d=dd<>df<06>d<>d<EFBFBD>e-d=dd<>df<06>d<>d<EFBFBD>e-d=dd<>d=f<06>d<>d<EFBFBD>e-dCdd<>df<06>d<>d<EFBFBD>e-dEdd<>df<06>d<>d<EFBFBD>e-dIdd<>df<06>d<>d<EFBFBD>e.dd=d}df<06>d<>d<EFBFBD>e.dddvdf<06>d<>e.dd=dvdfd<>e.dd?d}dfd<><64><02>Zud<75>d<EFBFBD><64>ZvGd<>d<EFBFBD><64>d<><64>Zw<5A>dd<>d<EFBFBD><64>Zxe<18>yetjzetea<65>e<18>{etjzev<65>e<18>|etjzex<65>e<18>}etjzd<7A>d<EFBFBD>g<02>e<18>~etjzd<7A><64>dS(<00>)<01> annotationsN)<01>MutableMapping)<01>Fraction)<02>Number<65>Rational)<05>IO<49> TYPE_CHECKING<4E>Any<6E>Callable<6C>NoReturn<72>)<06>ExifTags<67>Image<67> ImageFile<6C>ImageOps<70> ImagePalette<74>TiffTags)<01>i16be)<01>i32be<62><01>o8)<01> deprecate<74><01>TYPESFT<46>sIIsMM<4D><4D><00>iiiii
i<00>iiiiiii(i-i1i2i;i=i@iBiC<00>DiEiJiRiSi[iii<><69>i<><69>iI<69>is<69>ii<69>i<>ii<><69>i<><69><00>raw<61><00>
tiff_ccitt<EFBFBD><00>group3<70><00>group4<70><00>tiff_lzw<7A><00> tiff_jpeg<65><00>jpeg<65><00>tiff_adobe_deflatei<03><00> tiff_raw_16i<05><00>packbitsi)<29><00>tiff_thunderscani<6E><69><00> tiff_deflateit<69><00> tiff_sgilogiu<69><00> tiff_sgilog24im<69><00>lzmaiP<69><00>zstdiQ<69><00>webpcCsi|]\}}||<01>qS<00>r7)<03>.0<EFBFBD>k<>vr7r7<00>U/home/amir/Desktop/saburlyweb/env/lib/python3.10/site-packages/PIL/TiffImagePlugin.py<70>
<dictcomp><3E>sr<<00>r r7)<02>1z1;I)r>z1;IR)r>r>)r>z1;R)r )<02>LzL;2I)r?zL;2IR)r?zL;2)r?zL;2R)r$)r?zL;4I)r?zL;4IR)r?zL;4)r?zL;4R)r,)r?zL;I)r?zL;IR)r?r?)r?zL;R)<01> )<02>I;16zI;12)<01>)rArA)<02>I;16BrC)rAzI;16R)<02>I<>I;16S)rD<00>I;16BS)r")<01> )<02>F<>F;32F)rH<00>F;32BF)rDzI;32N)rD<00>I;32S)rD<00>I;32BS)r,r,)<02>LArM)r,r,r,)<02>RGBrN)rNzRGB;R)r,r,r,r,)<02>RGBArO<00>r)rN<00>RGBX)r,r,r,r,r,<00>rr)rN<00>RGBXX)r,r,r,r,r,r,)rrr)rN<00>RGBXXX)rO<00>RGBa)r r)rO<00>RGBaX)r rr)rO<00>RGBaXX)r r)rO<00>RGBAX)r rr)rO<00>RGBAXX)i<>)rBrBrB)rNzRGB;16L)rNzRGB;16B)rBrBrBrB)rOzRGBA;16L)rOzRGBA;16B)rNzRGBX;16L)rNzRGBX;16B)rOzRGBa;16L)rOzRGBa;16B)<02>PzP;1)rZzP;1R)rZzP;2)rZzP;2R)rZzP;4)rZzP;4R)rZrZ)rZ<00>PX)<02>PAr\)rZzP;R)<02>CMYKr])r]<00>CMYKX)r]<00>CMYKXX)r]zCMYK;16L)<02>LABr`ccs<00>|] }t|d<00>VqdS)r$N)<01>len)r8<00>key_tpr7r7r;<00> <genexpr><00><02>rc)<06>MM*<2A>II*sMM*sII*sMM+sII+<00>libtiff_support_custom_tagsz*Support for LibTIFF earlier than version 4r@<00>prefix<69>bytes<65>return<72>boolcCs|dd<01>tvS<00>Nr$)<01>PREFIXES<45>rhr7r7r;<00>_accept<00>rocCs<t|<00>dk}t|r d|n|<00><01>|<01>}|r|ddd<02>S|S)Nr <00><><EFBFBD><EFBFBD><EFBFBD>)<03>abs<62> IFDRational<61>limit_rational)<04>val<61>max_val<61>inv<6E>n_dr7r7r;<00>_limit_rational!s rycCsPt|<00>}|j|jf}t|<04>|krt|t|<02><01>}t|<04>|kr&t|<04>}t||<01>}|S<00>N)r<00> numerator<6F> denominator<6F>minryrr<00>max)rurv<00>min_val<61>fracrxr7r7r;<00>_limit_signed_rational's   
r<>c<01><00>fdd<02>}|S)Ncst|j<01><00>|<01>Srz)<02>getattr<74>_val<61><02>self<6C>args<67><01>opr7r;<00>delegate=rpz_delegate.<locals>.delegater7)r<>r<>r7r<>r;<00> _delegate<s r<>c@sVeZdZdZ dZd8dd<05>Zedd<07><00>Zedd <09><00>Zd
d <0B>Z d9dd<0F>Z
d:dd<12>Z d;dd<17>Z dd<19>Z dd<1B>Z ed<1C>Zed<1D>Zed<1E>Zed<1F>Zed <20>Zed!<21>Zed"<22>Zed#<23>Zed$<24>Zed%<25>Zed&<26>Zed'<27>Zed(<28>Zed)<29>Zed*<2A>Zed+<2B>Zed,<2C>Z ed-<2D>Z!ed.<2E>Z"ed/<2F>Z#ed0<64>Z$ed1<64>Z%ed2<64>Z&ed3<64>Z'ed4<64>Z(ed5<64>Z)e*e+d6<64>r<>ed6<64>Z,d7Sd7S)<rsz<>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
)<03>
_numerator<EFBFBD> _denominatorr<72>r cCs<>t|t<01>r|j|_|j|_|j|_dSt|t<07>r!|j|_|j|_n||_||_|dkr2td<03>|_dS|dkr=t|<01>|_dSt||<02>|_dS)z<>
:param value: either an integer numerator, a
float/rational/other number, or an IFDRational
:param denominator: Optional integer denominator
Nr<00>nanr ) <09>
isinstancersr{r<>r|r<>r<>r<00>float)r<><00>valuer|r7r7r;<00>__init__Qs


zIFDRational.__init__cC<01>|jSrz)r<><00>r<>r7r7r;r{k<00>zIFDRational.numeratorcCr<>rz)r<>r<>r7r7r;r|or<>zIFDRational.denominatorcCs.|jdkr |j|jfS|j<02>|<01>}|j|jfS)z<>
:param max_denominator: Integer, the maximum denominator value
:returns: Tuple of (numerator, denominator)
r)r|r{r<><00>limit_denominator)r<><00>max_denominator<6F>fr7r7r;rtss
   zIFDRational.limit_rationalrj<00>strcCstt|j<02><01>Srz)r<>r<>r<>r<>r7r7r;<00>__repr__<5F>szIFDRational.__repr__<5F>intcCs
|j<00><01>Srz)r<><00>__hash__r<5F>r7r7r;r<><00>s
zIFDRational.__hash__<5F>other<65>objectrkcCs0|j}t|t<02>r |j}t|t<03>rt|<02>}||kSrz)r<>r<>rsr<>)r<>r<>rur7r7r;<00>__eq__<5F>s 

zIFDRational.__eq__cCs|j|j|jgSrz)r<>r<>r<>r<>r7r7r;<00> __getstate__<5F>rpzIFDRational.__getstate__cCs,t<00>|d<01>|\}}}||_||_||_dS)Nr)rsr<>r<>r<>r<>)r<><00>stater<65>r<>r<>r7r7r;<00> __setstate__<5F>s


zIFDRational.__setstate__<5F>__add__<5F>__radd__<5F>__sub__<5F>__rsub__<5F>__mul__<5F>__rmul__<5F> __truediv__<5F> __rtruediv__<5F> __floordiv__<5F> __rfloordiv__<5F>__mod__<5F>__rmod__<5F>__pow__<5F>__rpow__<5F>__pos__<5F>__neg__<5F>__abs__<5F> __trunc__<5F>__lt__<5F>__gt__<5F>__le__<5F>__ge__<5F>__bool__<5F>__ceil__<5F> __floor__<5F> __round__<5F>__int__Nr=<00>rjr<><00>rjr<>)r<>r<>rjrk)-<2D>__name__<5F>
__module__<EFBFBD> __qualname__<5F>__doc__<5F> __slots__r<5F><00>propertyr{r|rtr<>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<><00>hasattrrr<>r7r7r7r;rsCsZ





 <04>rscs<00><00>fdd<02>}|S)NcsBddlm}|j<02>d<03>r|jdd<00><00>dd<06>|<01><<00>|ft<05><|S)Nr r<00>load_r&<00>_<> )rrr<><00>
startswith<EFBFBD>replace<63>_load_dispatch)<02>funcr<00><02>idx<64>sizer7r;<00> decorator<6F>s
  z#_register_loader.<locals>.decoratorr7)r<>r<>r<>r7r<>r;<00>_register_loader<65>sr<>cr<>)Ncs |t<00><|Srz)<01>_write_dispatch)r<><00>r<>r7r;r<><00>sz#_register_writer.<locals>.decoratorr7)r<>r<>r7r<>r;<00>_register_writer<65>s r<>csZddlm}|\}<02>}|||<t<02>d<03><00><00><02><01><01>d<08><00>fdd<06> ft|<<00>fdd<06>t|<dS) Nr r<00>=Tcs|<00>t|<01><01><00><00><00><00>|<01>Srz)<02>_unpackra<00>r<><00>data<74>
legacy_api<EFBFBD><02>fmtr<74>r7r;<00><lambda><3E>sz!_register_basic.<locals>.<lambda>csd<01><00><01>fdd<03>|D<00><01>S)N<>c3s<00>|] }<01><01><00>|<01>VqdSrz)<01>_pack<63>r8r<>)r<>r<>r7r;rc<00>rdz4_register_basic.<locals>.<lambda>.<locals>.<genexpr><3E><01>join<69>r<><00>values)r<>r<>r;r<><00>s<01>T)rr<00>struct<63>calcsizer<65>r<>)<04> idx_fmt_namerr<><00>namer7r<>r;<00>_register_basic<69>s 
<08>r<>c@seZdZUdZiZded<iZded<   djdkdd<11>Zedd<13><00>Z edd<13><00>Z
edldd<17><04>Z e j dmdd<17><04>Z dndd<1C>Z dodd<1F>Zd d!<21>Zdpd#d$<24>Zd%d&<26>Zd'd(<28>Zd)d*<2A>Zd+d,<2C>Zdqd.d/<2F>Zd0d1<64>Zd2d3<64>Zd4d5<64>Zeeeejd6d7fejd8d9fejd:d;fej d<d=fej!d>d?fej"d@dAfej#dBdCfej$d8d9fej%dDdEfg <09><02>e&dFdF<64>drdHdI<64><01>Z'e(dF<64>dJdK<64><00>Z)e&dLdF<64>drdMdN<64><01>Z*e(dL<64>dOdP<64><00>Z+e&dQdR<64>drdSdT<64><01>Z,e(dQ<64>dUdV<64><00>Z-e&dWdF<64>drdXdY<64><01>Z.e(dW<64>dZd[<5B><00>Z/e&d\dR<64>drd]d^<5E><01>Z0e(d\<5C>d_d`<60><00>Z1dadb<64>Z2dcdd<64>Z3dsdfdg<64>Z4dhdi<64>Z5dS)t<>ImageFileDirectory_v2aThis 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<>zdict[int, Callable[..., Any]]r<><00>II*N<>ifhrirh<00> bytes | None<6E>group<75>
int | Nonerj<00>NonecCs<>t|<01>sdt|<01><01>d<02>}t|<04><01>|dur|n|dd<04>|_|jtkr&d|_n|jtkr/d|_nd}t|<04><01>|ddk|_||_i|_ |<00>
<EFBFBD>|jrT|<00> d |d
d<03><00>n |<00> d |d d<03><00>\|_ d |_ dS)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.
znot a TIFF file (header z not valid)Nr <00>><3E><znot a TIFF IFD<46>+<00>Qr,r?r$F)ro<00>repr<70> SyntaxError<6F>_prefix<69>MM<4D>_endian<61>II<49>_bigtiffr<66><00>tagtype<70>resetr<74><00>next<78> _legacy_api)r<>r<>rhr<><00>msgr7r7r;r<>*s$

,<06>
zImageFileDirectory_v2.__init__cCr<>rz)r<>r<>r7r7r;r<>O<00>zImageFileDirectory_v2.<lambda>cCr<>rz)<01>_offsetr<74>r7r7r;r<>PrrkcCr<>rz)rr<>r7r7r;r<>Rr<>z ImageFileDirectory_v2.legacy_apir<69>r cCs d}t|<02><01>)Nz"Not allowing setting of legacy api)<01> Exception)r<>r<>rr7r7r;r<>VscCs(i|_i|_i|_i|_d|_d|_dSrz)<06>_tags_v1<76>_tags_v2<76>_tagdatar<61><00>_nextrr<>r7r7r;r<>[s 
zImageFileDirectory_v2.resetr<74>cCs tt|<00><01>Srz)r<><00>dictr<74>r7r7r;<00>__str__c<00> zImageFileDirectory_v2.__str__cs<00>fdd<02><08><00><00>D<00>S)z<>
:returns: dict of name|key: value
Returns the complete tag dictionary, with named tags where possible.
cs"i|] \}}t<00>|<01>j<02>j|<02>qSr7)r<00>lookupr<70>r<>)r8<00>coder<65>r<>r7r;r<ls<10><06>z/ImageFileDirectory_v2.named.<locals>.<dictcomp>)<01>itemsr<73>r7r<>r;<00>namedfs
<06>zImageFileDirectory_v2.namedr<64>cC<01>tt|j<02>t|j<03>B<00>Srz)ra<00>setrrr<>r7r7r;<00>__len__q<00>zImageFileDirectory_v2.__len__cCsf||jvr|j|}|j|}|j|\}}||||j<04>||<|j|}|jr1t|ttf<02>s1|f}|Srz)rrr<>r<>r<>r<><00>tupleri)r<><00>tagr<67><00>typr<70><00>handlerrur7r7r;<00> __getitem__ts



z!ImageFileDirectory_v2.__getitem__cC<01>||jvp ||jvSrz)rr<00>r<>rr7r7r;<00> __contains__<00>z"ImageFileDirectory_v2.__contains__cCs|<00>|||j<01>dSrz)<02>_setitemr<6D>)r<>rr<>r7r7r;<00> __setitem__<5F>rz!ImageFileDirectory_v2.__setitem__c
s<>tttf}t<03>||j<05><02>t||<04>r|gn|}||jvr<><72>jr%<25>j|j|<n<>tj |j|<t
dd<02>|D<00><01>rGt
dd<02>|D<00><01>r@tj ntj |j|<nkt
dd<02>|D<00><01>r<>t
dd<02>|D<00><01>r`tj |j|<nRt
dd<02>|D<00><01>rptj|j|<nBt
dd<02>|D<00><01>r|tjntj|j|<n/t
dd<02>|D<00><01>r<>tj|j|<nt
d d<02>|D<00><01>r<>tj|j|<nt
d
d<02>|D<00><01>r<>tj|j|<|j|tj kr<>d d <0C>|D<00>}n|j|tj kr<>d d <0C>|D<00>}|j|tjko<>t|t<14>}|s<>t<15>fdd<02>|D<00><01>}|r<>|jn|j}|<06>sO<73>jdk<02>s|j|tjk<02>s<15>jdu<00>rOt|<05>dk<02>rO|<03>sO|<03>r'|j|tj tj fv<00>r'|f}z|\||<WdSt<1A>yNt<1B>d|<01>dt|<05><01>d<12><05>|d||<YdSw|||<dS)Ncs<01><00>|]}t|t<01>VqdSrz)r<>rs<00>r8r:r7r7r;rc<00><00><02>z1ImageFileDirectory_v2._setitem.<locals>.<genexpr>cs<01><00>|]}|dkVqdS<00>rNr7r r7r7r;rc<00><00><02>csrrz)r<>r<>r r7r7r;rc<00>r!css(<00>|]}d|ko dknVqdS)rrNr7r r7r7r;rc<00><00><02>&css(<00>|]}d|ko dknVqdS)i<00><><EFBFBD>i<00>Nr7r r7r7r;rc<00>r%csr"r#r7r r7r7r;rc<00>r$csrrz)r<>r<>r r7r7r;rc<00>r!csrrz)r<>r<>r r7r7r;rc<00>r!csrrz)r<>rir r7r7r;rc<00>r!cSs&g|]}t|t<01>r|<01>dd<01>n|<01>qS)<02>asciir<69>)r<>r<><00>encoder r7r7r;<00>
<listcomp><3E>s<18><06>z2ImageFileDirectory_v2._setitem.<locals>.<listcomp>cSs"g|] }t|t<01>r t|<01>n|<01>qSr7)r<>r<>r<>r r7r7r;r(<00>s"c3s<00>|]}<01><00>|<01>VqdSrz)<01>cvt_enumr<6D><00><01>infor7r;rc<00>r!r zMetadata Warning, tag z had too many entries: z , expected 1r)rrir<>rr r<>r<>r<><00>type<70> UNDEFINED<45>all<6C>RATIONAL<41>SIGNED_RATIONAL<41>SHORT<52> SIGNED_SHORT<52>LONG<4E> SIGNED_LONG<4E>DOUBLE<4C>ASCII<49>BYTEr rrr<00>lengthra<00>
ValueError<EFBFBD>warnings<67>warn)r<>rr<>r<><00> basetypesr<73><00>is_ifd<66>destr7r*r;r<00>sr

 <08>
<EFBFBD><08>
<EFBFBD> <08>  <08><06><04><02> zImageFileDirectory_v2._setitemrcCs.|j<00>|d<00>|j<02>|d<00>|j<03>|d<00>dSrz)r<00>poprrrr7r7r;<00> __delitem__<5F>sz!ImageFileDirectory_v2.__delitem__cCrrz)<04>iterrrrr<>r7r7r;<00>__iter__<5F>rzImageFileDirectory_v2.__iter__cCst<00>|j||<02>Srz)r<><00>unpackr<6B>)r<>r<>r<>r7r7r;r<><00>szImageFileDirectory_v2._unpackcGstj|j|g|<02>R<00>Srz)r<><00>packr<6B>)r<>r<>r<>r7r7r;r<><00>rzImageFileDirectory_v2._pack<63>H<>shortr?<00>long<6E>bz signed byte<74>hz signed short<72>lz signed longr<67>r<><00>d<>doubler<65><00>long8r TcC<01>|Srzr7r<>r7r7r;<00> load_byte<74><00>zImageFileDirectory_v2.load_bytecCs*t|t<01>r t|<01>}t|t<02>rt|f<01>}|Srz)r<>rsr<>ri<00>r<>r<>r7r7r;<00>
write_byte<EFBFBD>s


z ImageFileDirectory_v2.write_byter cCs"|<01>d<01>r |dd<02>}|<01>dd<04>S)N<>rqzlatin-1r<31>)<02>endswith<74>decoder<65>r7r7r;<00> load_strings
  z!ImageFileDirectory_v2.load_stringcCs0t|t<01>r t|<01>}t|t<03>s|<01>dd<02>}|dS)Nr&r<>rS)r<>r<>r<>rir'<00>r<>r<>r7r7r;<00> write_strings

 z"ImageFileDirectory_v2.write_stringr&r,c<01>V|<00>t|<01>d<00>d<02>|<01>}<03>fdd<04><08>t<02>fdd<06>t|ddd<07>|ddd<07><00>D<00><01>S) Nr$r?c<01><00>r||fSt||<01>Srz<00>rs<00><02>arH<00>r<>r7r;<00>combine<00>z4ImageFileDirectory_v2.load_rational.<locals>.combinec3<01><00>|]
\}}<02>||<02>VqdSrzr7<00>r8<00>num<75>denom<6F>r_r7r;rc<00><02>z6ImageFileDirectory_v2.load_rational.<locals>.<genexpr>r r <00>r<>rar<00>zip<69>r<>r<>r<><00>valsr7<00>r_r<>r;<00> load_rational<00> 0z#ImageFileDirectory_v2.load_rationalc<01>d<01><00>fdd<03>|D<00><01>S)Nr<4E>c3s(<00>|]}<01>jdgt|d<01><02>R<00>VqdS)<03>2Ll<00><EFBFBD>N)r<>ry<00>r8r<>r<>r7r;rcs<02>
<EFBFBD>z7ImageFileDirectory_v2.write_rational.<locals>.<genexpr>r<>r<>r7r<>r;<00>write_rationals<08>z$ImageFileDirectory_v2.write_rationalr*cCrNrzr7r<>r7r7r;<00>load_undefinedrPz$ImageFileDirectory_v2.load_undefinedcCs0t|t<01>r t|<01>}t|t<02>rt|<01><01>dd<02>}|S)Nr&r<>)r<>rsr<>r<>r'rWr7r7r;<00>write_undefined"s

z%ImageFileDirectory_v2.write_undefined<65>
crY) Nr$rJcrZrzr[r\r^r7r;r_.r`z;ImageFileDirectory_v2.load_signed_rational.<locals>.combinec3rarzr7rbrer7r;rc1rfz=ImageFileDirectory_v2.load_signed_rational.<locals>.<genexpr>r r rgrir7rkr;<00>load_signed_rational*rmz*ImageFileDirectory_v2.load_signed_rationalcrn)Nr<4E>c3s*<00>|]}<01>jdgt|dd<02><03>R<00>VqdS)<04>2li<6C><69><EFBFBD>i<00>N)r<>r<>rpr<>r7r;rc5s
<02><18>
<EFBFBD>z>ImageFileDirectory_v2.write_signed_rational.<locals>.<genexpr>r<>r<>r7r<>r;<00>write_signed_rational3s<08>z+ImageFileDirectory_v2.write_signed_rationalcCs8|<01>|<02>}t|<03>|krd|<02>dt|<03><01>d<03>}t|<04><01>|S)Nz&Corrupt EXIF data. Expecting to read <20> bytes but only got z. )<03>readra<00>OSError)r<><00>fpr<70><00>retrr7r7r;<00> _ensure_read:s
 <04><06><02>z"ImageFileDirectory_v2._ensure_readc
Csl|<00><00>|<01><01>|_<02>z|jr|<00>d|<00>|d<02><02>n |<00>d|<00>|d<04><02>d}t|<02>D]<5D>}|jr7|<00>d|<00>|d<07><02>n |<00>d|<00>|d <09><02>\}}}}t<07>||j <09>j
}t <0B> |d
<EFBFBD>} d |<08>d |<04>d | <09>d |<05>d<0E> }
z |j |\} } Wnty{t<0F>d|
|<05>Yq(w|| } | |jr<>dndkr<>|<01><01>}|<00>|jr<>dnd|<07>\}|
d|<0E>d|<0F><00>7}
|<01>|<0F>t<12>|| <0A>}|<01>|<0E>n|d| <0A>}t|<07>| kr<>t<15>d| <0A>dt|<07><01>d|<04><00><06>t<0F>|
<EFBFBD>q(|s<>t<0F>|
<EFBFBD>q(||j|<||j|<|
d| dkr<>d| nt|<07>7}
t<0F>|
<EFBFBD>q(|j<03>r |<00>d|<00>|d<02><02>n |<00>d|<00>|d<10><02>\|_WdSt<1B>y5}
zt<15>t|
<EFBFBD><01>WYd}
~
dSd}
~
ww)Nr<4E>r,rEr r<00>HHQ8s<38><00>HHL4sr@<00>unknownztag: <20> (<28>
) - type: <20>)z%s - unsupported type %sr$r?z Tag Location: z - Data Location: z/Possibly corrupt EXIF data. Expecting to read rxz. Skipping tag <20>
- value: rG<00><table: %d bytes>)r<><00>tellrr<>r<>r}<00>rangerr r<>r<>r<00>getr<74><00>KeyError<6F>logger<65>debug<75>seekr<00>
_safe_readrar:r;rr<>r<>r<>rzr<>)r<>r{<00> tag_count<6E>irr<00>countr<74><00>tagname<6D>typnamer<00> unit_sizerr<><00>here<72>offsetr7r7r;<00>loadDsz
<16><04> <16>
<EFBFBD>  <02>
    <04><04><04><04>



<06> <18> <0C><08><02>zImageFileDirectory_v2.loadrc
Cs<>|<00>dt|j<02><01>}g}|t|<02>t|j<02>dd}d}t|j<02><04><00>D]<5D>\}}|tkr/t|<03>}|j<06>|<05>}t<08> d||t
|<06><01>|t j koHt |t<0E>}|rs|jdkrSd} nd} t| |d<08>}
|j|} | <0B><04>D]\} } | |
| <qd|
<EFBFBD>|<01>}nt |t<12>rz|n|f} |j||g| <0B>R<00>}t <0B>||j<15>j}|r<>d nt<17>|d
<EFBFBD>}d |<0F>d |<05>d |<10>d |<07>d<0E> }|dt|<0E>dkr<>dt|<0E>nt| <0B>7}t<08> |<11>|r<>d}n|t jt jt jfvr<>t|<0E>}nt| <0B>}t|<0E>dkr<>|<03>||||<0E>dd<13>df<05>q#|<03>||||<00>d|<01>|f<05>|t|<0E>ddd7}q#|du<01>r8||\}}}}}|<0E>r!d}t|<11><01>|<00>d|<00>d|<06>d|<00>}|||||f||<|D]!\}}}}}t<08> d|||t
|<06>t
|<0E><01>||<00>d||||<06>7}<02>q:|d7}|D]\}}}}}||7}t|<0E>d@<00>rx|d7}<02>qb|S)NrEr@r$zTag %s, Type: %s, Value: %sr<73>sII*sMM*)r<><00>ifdr<64>zsave: r<>r<>r<>r<>rBr<>r rSr<>r?r z&multistrip support not yet implementedrz%s %s %s %s %sr<73>s) r<>rar<00>sortedr<00> STRIPOFFSETSr<53>r<>r<>r<>r<>rr3r<>r r<>r<><00>tobytesrr<>r r<>r<>rr<>r7r6r-<00>append<6E>ljust<73>NotImplementedErrorr<72>)r<>r<><00>result<6C>entries<65> stripoffsetsrr<>rr=r<>r<>r<><00>ifd_tag<61> ifd_valuer<65>r<>r<>rr<>r7r7r;r<><00>sl 
 

 <06>

 
<04>zImageFileDirectory_v2.tobytescCsN|<01><00>dkr|<01>|j|<00>ddd<04><00>|<01><00>}|<00>|<02>}|<01>|<03>|t|<03>S)Nr<00>HL<48>*r,)r<><00>writer<65>r<>r<>ra)r<>r{r<>r<>r7r7r;<00>save<76>s 

 zImageFileDirectory_v2.save)r<>NN)r<>rirhr<>r<>r<>rjr<>)rjrk)r<>rkrjr <00>rjr<>r<>r<>)rr<>rjr<>r<>rP)6r<36>r<>r<>r<>r<><00>__annotations__r<5F>r<>r<>rhr<>r<><00>setterr<72>r
rrrrrrr@rBr<>r<><00>list<73>mapr<70>rr1r3<00> SIGNED_BYTEr2r4<00>FLOATr5<00>IFD<46>LONG8r<38>rOr<>rRrVrXrlrqrrrsrurwr}r<>r<>r<>r7r7r7r;r<><00>s<>
 <  <0C> %   


 
P








<02><02><04> 
 
 
 
 

C Mr<4D>r<>r<>r<><00>write_cs<>eZdZUdZ<03>fdd<03>Zedd<05><00>Zedd<05><00>Zded< e d d
<EFBFBD><00>Z
dd d<0E>Z dd<10>Z ddd<13>Z dd<15>Zdd<17>Zdd<19>Z<10>ZS)<1C>ImageFileDirectory_v1a<31>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
cst<00>j|i|<02><01>d|_dS)NT)<03>superr<72>r)r<>r<><00>kwargs<67><01> __class__r7r;r<><00>s
zImageFileDirectory_v1.__init__cCr<>rz)rr<>r7r7r;r<>rzImageFileDirectory_v1.<lambda>cCr<>rz)rr<>r7r7r;r<>rzdict[int, int]r<>cCs(||jd<01>}|j|_|j|_|j|_|S)a2Returns 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`
rn)rhrr<>r<>)<03>cls<6C>originalr<6C>r7r7r;<00>from_v2s
zImageFileDirectory_v1.from_v2rjr<>cCs4t|jd<01>}t|j<03>|_t|j<04>|_t|j<05>|_|S)a2Returns 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`
rn)r<>rhr rr<>r)r<>r<>r7r7r;<00>to_v2s
  zImageFileDirectory_v1.to_v2cCrrz)rrrr7r7r;r*rz"ImageFileDirectory_v1.__contains__r<5F>cCrrz)rarrrr<>r7r7r;r-rzImageFileDirectory_v1.__len__cCrrz)rArrrr<>r7r7r;rB0rzImageFileDirectory_v1.__iter__cCsdD] }|<00>|||<03>qdS<00>N)FT)r)r<>rr<>r<>r7r7r;r3s<04>z!ImageFileDirectory_v1.__setitem__cCsn||jvr&|j|}|j|}|j|\}}dD] }|<00>|||||<06>|<06>q|j|}t|ttf<02>s5|f}|Sr<>)rrr<>r<>rr<>rri)r<>rr<>rr<>r<00>legacyrur7r7r;r7s



z!ImageFileDirectory_v1.__getitem__)rjr<>r<>)r<>r<>r<>r<>r<>r<><00>tags<67>tagdatar<61><00> classmethodr<64>r<>rrrBrr<00> __classcell__r7r7r<>r;r<><00>s
   


r<>cs<>eZdZdZdZdZd<1F>fdd<06> Zd d d
<EFBFBD>Zed d <0C><00>Z d!dd<10>Z
d!dd<12>Z d"dd<14>Z dd<16>Z <0A>fdd<18>Zd dd<1A>Zdd<1C>Zdd<1E>Z<11>ZS)#<23> TiffImageFile<6C>TIFFz
Adobe TIFFFNcs"d|_ d|_ t<02><00>||<02>dSrz)<04>tag_v2rr<>r<>)r<>r{<00>filenamer<65>r7r;r<>Qs
zTiffImageFile.__init__rjr<>cCs<>|j<00>d<01>}|ddkr||j<00>d<01>7}t|<01>|_d|_|jj|_|_d|_|j|_ g|_
d|_ t <0C> d<06>t <0C> d|j<06>t <0C> dt|<01><01>|<00>d <09>dS)
z#Open the first image in a TIFF filer,r r<>Nrqz*** TiffImageFile._open ***z - __first: %sz - ifh: %sr)r{ryr<>r<>r<>r<><00>_TiffImageFile__first<73>_TiffImageFile__next<78>_TiffImageFile__frame<6D>_fp<66>
_frame_pos<EFBFBD> _n_framesr<73>r<>r<><00>_seek)r<>r<>r7r7r;<00>_openZs  

zTiffImageFile._opencCsX|jdur)|<00><01>}|<00>t|j<04><01>|jdur$|<00>|<00><01>d<00>|jdus|<00>|<01>|jS)Nr )r<>r<>r<>rar<>r<>)r<><00>currentr7r7r;<00>n_framesus


<EFBFBD>
zTiffImageFile.n_frames<65>framer<65>cCs<|<00>|<01>sdS|<00>|<01>t<02>|j<04>tj<05>|j|j<04>|_dS)z%Select a given frame as current imageN) <09> _seek_checkr<6B>r<00>_decompression_bomb_checkr<6B><00>core<72>new<65>mode<64>im)r<>r<>r7r7r;r<>s

 zTiffImageFile.seekcCs<>|j|_|j<01><02>t|j<04>|kr<>|jsd}t|<02><01>t<07>d||j |j|j<01><02><00>|jdkr2d}t
|<02><01>|j<01> |j<05>|j<04> |j<05>t<07>d|j<01><02><00>|j <0A>|j<01>|j j|jvr[d|_n|j j|_|jdkrj|d|_t|j<04>dkrw|jdk|_|j d7_ t|j<04>|ks|j<01> |j|<00>|j <0A>|j<01>t|j vr<>|j t|jd<n d|jvr<>|jd=|<00><14>t<15>|j <0A>|_|_||_ |<00><19>dS) Nzno more images in TIFF filez9Seeking to frame %s, on frame %s, __next %s, location: %slzUnable to seek to framezLoading tags, location: %srr <00>xmp)r<>r{r<>rar<>r<><00>EOFErrorr<72>r<>r<>r9r<>r<>r<>r<>r<>r<><00> is_animated<65>XMPr+<00> _reload_exifr<66>r<>rr<><00>_setup)r<>r<>rr7r7r;r<><00>sN
<04>



 <0E>

 zTiffImageFile._seekcCr<>)zReturn the current frame number)r<>r<>r7r7r;r<><00>r<>zTiffImageFile.tellcCs<>i}|j<00>tjj<04>}|r`|dd<02>dkr`t|dd<04><00>}t<06>|ddd<00>d}t|d|d|<00><00>}|d|d||<00>}d|i||<|t<06>d||d<00>dd<01>}|dd<02>dks|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$s8BIMr(r r rtr<>) r<>r<>r <00>Base<73>ImageResources<65>i16<31>math<74>ceil<69>i32)r<><00>blocksru<00>id<69>nr<6E>r<>r7r7r;<00>get_photoshop_blocks<6B>s "<10>z"TiffImageFile.get_photoshop_blockscs|jr
|jr
|<00><02>St<03><00><04>Srz)<05>tile<6C>use_load_libtiff<66> _load_libtiffr<66>r<>r<>r<>r7r;r<><00>s 
zTiffImageFile.loadcCsn|jsd|_|j<02><03>|<00><04>}tjD] }||vrq|<01>|<02>qtj |dd<02>t
j j |j vr5|j t
j j =dSdS)NT)<01>in_place)r<><00>!_close_exclusive_fp_after_loadingr{r<><00>getexifr<00>TAGS_V2_GROUPS<50>get_ifdr<00>exif_transposer r<><00> Orientationr<6E>)r<><00>exif<69>keyr7r7r;<00>load_end<6E>s

 <04>zTiffImageFile.load_endc
Cs<>tj<00>|<00>|<00><02>t|j<04>dksd}t|<01><01>|jdd}t|jdd<00>}zt|jd<05>o2|j<08> <09>}t|jd<06>r>|j<08>
<EFBFBD>Wn tyJd}Ynw|rQ||d<t<00> |j d t |<03>|j<0E>}z |<05>|j|<02>Wntyy}zd
}t|<01>|<06>d }~ww|jo<>|j }t|jd <0C>r<>t<14>d <0A>|<05>|j<08><17><00>\}} n,|r<>t<14>d<0E>|s<>|j<08>d<03>|<05>d<0F>\}} nt<14>d<10>|j<08>d<03>|<05>|j<08><19><00>\}} g|_d|_|<00><1B>|r<>|j<08><1C>d |_| dkr<>t| <09><01>tj<00>|<00>S)zWOverload method triggered when we detect a compressed tiff
Calls out to libtiffr zNot exactly one tilerr"<00>fileno<6E>flushFr <00>libtiffzCouldn't set the imageN<65>getvaluez5have getvalue. just sending in a string from getvaluez3have fileno, calling fileno version of the decoder.sfpfpz+don't have fileno or getvalue. just reading)rr<><00> load_preparerar<>rzr<>r<>r{r<>r<><00> _getdecoderr<72>r<00> decoderconfig<69>setimager<65>r9<00> _exclusive_fpr<70>r<>r<>rUr<>r<>ry<00>readonlyr<79><00>close)
r<EFBFBD>r<00>extentsr<73>r{<00>decoder<65>e<> close_self_fpr<70><00>errr7r7r;r<><00>s`  
<04> <02><04>
<08><02> 

 
 
 zTiffImageFile._load_libtiffc
Cs<>d|jvr d}t|<01><01>t|j<00>td<03>|_|j<00>td<03>|_|j<00>td<04>}|jdkr+d}|j<00>t d<03>}t
<EFBFBD> d<07>t
<EFBFBD> d|j<05>t
<EFBFBD> d |<02>t
<EFBFBD> d
|j<07>t
<EFBFBD> d |<03>t
<EFBFBD> d |j <0C>t <0A><01>t|j<00>t<0F><01>}t|j<00>t<10><01>}||f|_t
<EFBFBD> d |j<12>|j<00>td<0E>}t|<06>dkr<>t|<06>t|<06>kr<>dkr<>nnd}|j<00>td<0E>}|j<00>td<0F>}|dvr<>d} n |dkr<>d} nd} | t|<08>7} t|<07>}
|j<00>t|jdkr<>|dvr<>dnd<03>} | tkr<>t
<EFBFBD>d| <0B>d}t|<01><01>| |
kr<>|d| <0B>}n | |
kr<>|
dkr<>|| }t|<07>| k<03>rd}t|<01><01>|jj|||||f} t
<EFBFBD> d| <0C>z t| \|_} Wnt <20>y6}z t
<EFBFBD> d<1A>d}t|<01>|<0E>d}~wwt
<EFBFBD> d| <0A>t
<EFBFBD> d|j!<21>|j|j"d<|j<00>t#d<03>}|j<00>t$d<03>}|<0F>r<>|<10>r<>|j<00>t%<25>}|dk<02>rq||f|j"d <n,|dk<02>r<>|d!|d!f|j"d <n|du<00>r<>||f|j"d <||f|j"d"<n||f|j"d"<d}}}g|_&t'<27>p<>|jd#k|_(|j(<28>r|dk<02>r<>| dd<11>d| dd<17>} t
<EFBFBD> d| <0C>t| \|_} | d$k<02>r<>d%} d&| v<00>r<>| <0A>)d&d'<27>} d(| v<00>r<>| <0A>)d(d'<27>} |dk<02>r|jd)k<02>r|jdk<02>rd*} | |jd+|jj*f}|j&<26>+d,dd||fd|f<04>n<>t,|jv<00>s't-|jv<00>r<>t,|jv<00>r?|jt,}|j<00>t.|<05>}|jd}n|jt-}|j<00>t/<2F>}|j<00>t0<74>}|D]h}|||k<04>rd|t1|<07>d-}nd}| }|jdk<02>rv| |}|| }|t|<1A>df}|j&<26>+|j||t|||<04>t|||<05>f||f<04>||}||jdk<05>r<>d||}}||jdk<05>r<>d}}|d7}<14>qRn t
<EFBFBD> d.<2E>d}t|<01><01>t2|jv<00>r<>|jt2|j"d/<|j!d0v<00>r<>d1d2<64>|jt3D<00>}t4<74>5d3d4<64>6|<1C><01>|_7dSdS)5z-Setup this image object based on current tagsi<01>z+Windows Media Photo files not yet supportedr rr)r(z*** Summary ***z- compression: %sz - photometric_interpretation: %sz- planar_configuration: %sz- fill_order: %sz- YCbCr subsampling: %sz
- size: %sr=r7)r r(r,r"r&r$)r r(z.More samples per pixel than can be decoded: %sz#Invalid value for samples per pixelNzunknown data organizationzformat key: %sz- unsupported formatzunknown pixel modez- raw mode: %sz- pil mode: %s<> compressionr <00>dpigR<67><1E><>Q@<40>
resolutionrrA<00>I;16Nz;16Bz;16Nz;16Lr+rNFr<46>r,z- unsupported data organization<6F> icc_profile<6C>rZr\cSsg|]}t|d<00><01>qS<00>rr)r8rHr7r7r;r(sz(TiffImageFile._setup.<locals>.<listcomp><3E>RGB;Lr<4C>)8r<38>rz<00>COMPRESSION_INFOr<4F><00> COMPRESSION<4F> _compression<6F>PLANAR_CONFIGURATION<4F>_planar_configuration<6F>PHOTOMETRIC_INTERPRETATION<4F> FILLORDERr<52>r<>r<00>YCBCRSUBSAMPLINGr<47><00>
IMAGEWIDTH<EFBFBD> IMAGELENGTH<54>_sizer<65><00> SAMPLEFORMATrar~r}<00> BITSPERSAMPLE<4C> EXTRASAMPLES<45>SAMPLESPERPIXEL<45>MAX_SAMPLESPERPIXEL<45>errorr<72>rh<00> OPEN_INFO<46>_moder<65>r<>r+<00> X_RESOLUTION<4F> Y_RESOLUTION<4F>RESOLUTION_UNITr<54><00> READ_LIBTIFFr<46>r<>r<>r<>r<><00> TILEOFFSETS<54> ROWSPERSTRIP<49> TILEWIDTH<54>
TILELENGTH<EFBFBD>sum<75>
ICCPROFILE<EFBFBD>COLORMAPrrr<><00>palette)r<>r<00>photo<74> fillorder<65>xsize<7A>ysize<7A> sample_format<61> bps_tuple<6C> extra_tuple<6C> bps_count<6E>bps_actual_count<6E>samples_per_pixelr<6C><00>rawmoder<00>xres<65>yres<65>resunit<69>x<>y<>layerr]<00>offsetsrI<00>wr<77><00>stride<64> tile_rawmoder)r7r7r;r<>Bs


  
, <04><04><04> 

<08><02>    


 
 

 
 
   
 
   <02><04><04><02>
  <04>zTiffImageFile._setup)NNr<4E>)r<>r<>rjr<>r<>)r<>r<>r<><00>format<61>format_descriptionr<6E>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r7r7r<>r;r<>Ls 


0 
Ur<55>r>r?rMrZr\rDrKrArErHrIrNrQrOr]<00>YCbCrr`rLrCrFrJ)rFrJc5 Csd z t|j\}}}}}}Wnty%} z d|j<01>d<02>}
t|
<EFBFBD>| <09>d} ~ wwt|d<03>} |j} |j} z| d}WntyM|j<07>d<04>}t |t
<EFBFBD>rKd}Ynw|durUd}n |dkr\d}n|dkrbd }t pg|dk}d
| t <|j d | t<|j d
| t<d | vr<>| d }nd | vr<>| d }t |t<10>r<>t<11><12>}|<11>|<10>|}ni}t<14>dt|<10><01>t |t<17>r<>|<10><18>}|D]/}t |tj<12>r<>|tjvr<>|<10>|<12>| |<n|<10>|<12>| |<z
|j|| j|<Wq<>ty<>Yq<>wi}t|d<0F>r<>|j<1F><18>}i|<13>t |di<00><03>}t!t"fD]
}||v<00>r||=q<>t|d<10><02>rEt#t$t%t&t't(fD]0}||j)v<00>rC|t&k<02>r3|j)j|tj*tj+fv<01>r3||=<00>q|j)|| |<|j)j|| j|<<00>q| <0C>d|j<07>d<11><01>}|<16>rV|| t,<t-dft$dft%dft$dft%dft#dft.dft/dft0dft1dff
D]\}}|| v<00>r<>| || |<<00>qv| <0C>d<1B>}|<18>r<>d| t#<|d | t$<|d
| t%<|dk<03>r<>|| t2<t3|<07>d
k<03>r<>t3|<07>| t4<|du<01>r<>|| t5<|d
k<03>r<>|| t"<t6| v<01>r<>|| t6<nF|jdv<00>r| t6d k<02>r|jdk<02>r|<00>7<EFBFBD>}|<19><13>}t8|j9<6A>D]}t8|j:<3A>D]}|||fd k<02>rd nd |||f<<00>q<><71>q<>|}nt;<3B><|<00>}|jd!v<00>rT|j=<3D>>d"d#<23>}g}t3|<1D>d$}t8d$<24>D]} |d%d&<26>||| || d
<00>D<00>7}|d gd'|7}<1E>q0|| t?<| t| t}!}"t3|<07>|!|d d(d)}#t@| v<01>r<>|<0F>r<>| <0C>d*tA<74>}$|#d k<02>r<>d
ntB|$|#|"<22>}%|dk<02>r<>tB|%d(d)d)|"<22>}%n|"}%|%d k<02>r<>d
}%|%| t@<|#d k<02>r<>d
n|#| t@}&|"| t@d
| t@}'|&d+k<05>r<>tjC| jtD<|&f|'d
|#|"|&|'d
f| tD<tEt8d |&|'|&<26><03>| tF<tG<74>|d
<EFBFBD>| tH<|jd,k<02>r tId-tJd.i<02>K<EFBFBD>D] \}}(| <0B>L||(<28><00>q<>tMtNtOtPg})|<0F>r<>d/| v<00>rB| d/}*t |*t
<EFBFBD><02>r-|*d k<00>s-|*d0k<04>r3d1}
tQ|
<EFBFBD><01>|dk<03>r>d2}
tQ|
<EFBFBD><01>|*| tR<t<14>d3<64>t<14>d4tS| <0B>K<EFBFBD><00><01>d }+t|d5<64><02>rsz|<01>Td <0B>tU<74>V|<01>W<EFBFBD><00>}+Wn tXjY<6A>yrYnwi},|)tZtJtDtFt[t\g7})t2|d i}-t]<5D>^| <0B>K<EFBFBD>|<14>K<EFBFBD><00>D]j\}}(|tj_v<01>r<>t tj`d6d7<64><03>s<><73>q<>|| jv<00>r<>| j||,|<nt |(t
tatbtf<04><02>s<><73>q<>t<19>c|<15>jd}.|.<2E>r<>|.|,|<||-v<01>r<>||)v<01>r<>t |(tb<74><02>r<>|(<28>ed8d9<64>d:|-|<<00>q<>t |(tf<74><02>r<>ta|(<28>|-|<<00>q<>|(|-|<<00>q<>t"|-v<00>rt3|-t"<00>d
k<02>r|-t"d |-t"<t<14>d;tS|-<2D>K<EFBFBD><00><01>|jd<v<00>r"d=}t|-<2D>K<EFBFBD><00>}/|/<2F>g<EFBFBD>|||+||/|,f}0t<11>h|jd>|0| <0A>}1|1<>i|j=d?|j <00> |1<>edA<64>d
d<00>\}2}3|+<2B>s[|<01>j|3<>|2<>r_n<02>qH|+<2B>rvztU<74>k|+<2B>Wn
t<03>yuYnw|2d k<00>r<>dB|2<>dC<64>}
t|
<EFBFBD><01>n |)D]}| |=<00>q<>| <0B>l|<01>}4tm<74>n||dd?|j |4||#d
ffg<01>dD| v<00>r<>| |_odSdS)ENzcannot write mode z as TIFFrnrrr)r+r1r-r r<00>tiffinfor<6F>zTiffinfo Keys: %srr<>r<00> descriptionr<00> x_resolution<6F> y_resolution<6F>resolution_unit<69>software<72> date_time<6D>artist<73> copyrightrr r=)r>r?r>rrrNr
r"cSsg|]}|d<00>qSr r7r r7r7r;r(<00>sz_save.<locals>.<listcomp>rr*r,<00>
strip_sizerrA)r r )rr<00><>rrLr<00>quality<74>dzInvalid quality settingz5quality setting only supported for 'jpeg' compressionzSaving using libtiff encoderz Items: %sr<73>rgFr&r<>rSzConverted items: %s)rCrArr<>rRTi@zencoder error z when writing image file<6C>_debug_multipage)p<> SAVE_INFOr<4F>r<>rzr<><00> encoderinfo<66> encoderconfigr+r<>r<>r<><00> WRITE_LIBTIFFrr<>rrrir<00>Exifr<66>r<>r<>r<>r<>r<>rr<>r<>r<>rr<>rr<><00>EXIFIFDrr rr<00>IPTC_NAA_CHUNK<4E>PHOTOSHOP_CHUNKr<4B>r<>r7r-r'<00>IMAGEDESCRIPTION<4F>SOFTWARE<52> DATE_TIME<4D>ARTIST<53> COPYRIGHTrrarrr<00>copyr<79><00>height<68>widthr<00>invertr<74><00>
getpaletter(r#<00>
STRIP_SIZEr}r3<00>STRIPBYTECOUNTSrr<><00>COMPRESSION_INFO_REVr r<00>REFERENCEBLACKWHITEr<00>
setdefaultr$r%r"<00>TILEBYTECOUNTSr9<00> JPEGQUALITYr<59>r<><00>os<6F>dupr<70><00>io<69>UnsupportedOperation<6F> OSUBFILETYPE<50>TRANSFERFUNCTION<4F>SUBIFD<46> itertools<6C>chain<69> LIBTIFF_COREr<45>r<>r<>r r,r'rs<00>sort<72> _getencoderr<72>r<>r<>r<>r<00>_saverO)5r<35>r{r<>r4rhr*r?<00>bits<74>extrarrr<>rQrRrr<>r+r<>r<><00>
legacy_ifd<EFBFBD> supplied_tagsr<00>iccr<63>r<00> inverted_im<69>pxr9r8<00>lut<75>colormap<61>colorsr<73>r<rIr=<00> im_strip_size<7A>rows_per_strip<69>strip_byte_counts<74>strips_per_imager<65><00> blocklistrMr<><00>types<65>attsr,r<>r]<00>encoder<65>errcoder<65>r<>r7r7r;ruCs<>
<08><02>
   
<04><02> 


<02>
 <02>

<08>
<02> <08> <08>
<04> <0C>
<04>
  
 



 &<04>
   &
 
<02>

  
<EFBFBD><08> <02>
<EFBFBD> 
 

 
<02><06>
     <04>  
<04><02>
 <02>

<04>

<04>ruc@seZdZgd<01>Zhd<02>Zd@dd<05>ZdAdd <09>ZdAd
d <0B>ZdAd d <0A>ZdBdd<0F>Z dCdd<13>Z
dDdd<16>Z e j fdd<18>ZdAdd<1A>ZdEdd<1E>ZdAdd <20>ZdFd$d%<25>ZdDd&d'<27>ZdDd(d)<29>ZdGd+d,<2C>ZdGd-d.<2E>ZdGd/d0<64>ZdGd1d2<64>ZdGd3d4<64>ZdAd5d6<64>ZdAd7d8<64>Z dHdId=d><3E>Zd?S)J<>AppendingTiffWriter)rr r r r$r,r r r r$r,r$r,r$r r$r,><00><00><00> <00> rrFcCstt|d<01>r ||_d|_n"||_d|_z t||rdnd<05>|_Wnty-t|d<04>|_Ynw|j<01><06>|_|<00><08>dS)NryFTzw+bzr+b) r<>r<><00>close_fpr<70><00>openrzr<><00> beginning<6E>setup)r<><00>fnr<6E>r7r7r;r<><00>s
 <02>  zAppendingTiffWriter.__init__rjr<>cCs<>|j<00>|jtj<04>d|_d|_|j<00>d<02>|_}|sd|_ dSd|_ |dkr,|<00>
d<06>n|dkr6|<00>
d<08>nd }t |<02><01>|<00> <0C>|<00> <0A>dS)
Nrr$TFrfr<>rer<>zInvalid TIFF file header)r<>r<>r<>ri<00>SEEK_SET<45>whereToWriteNewIFDOffset<65>offsetOfNewPagery<00>IIMM<4D>isFirst<73> setEndian<61> RuntimeError<6F>skipIFDs<44>goToEnd)r<><00>iimmrr7r7r;r<><00>s    zAppendingTiffWriter.setupcCs<>|jrdS|j<01>|j<03>|j<01>d<01>}|sdS||jkr!d}t|<02><01>|<00><07>}||j7}|j<01>|j<08>|<00> |<03>|j<01>|<03>|<00>
<EFBFBD>dS)Nr$z1IIMM of new page doesn't match IIMM of first page) r<>r<>r<>r<>ryr<>r<><00>readLongr<67><00> writeLong<6E>fixIFD)r<>r<>r<00>
ifd_offsetr7r7r;<00>finalize<7A>s 


  zAppendingTiffWriter.finalizecCs|<00><00>|<00><01>dSrz)r<>r<>r<>r7r7r;<00>newFrame<6D>s zAppendingTiffWriter.newFramecCs|Srzr7r<>r7r7r;<00> __enter__<5F>szAppendingTiffWriter.__enter__r<5F>r<>cGs|jr |<00><01>dSdSrz)r<>r<>r<>r7r7r;<00>__exit__<5F>s <04>zAppendingTiffWriter.__exit__r<5F>cCs|j<00><01>|jSrz)r<>r<>r<>r<>r7r7r;r<><00>rpzAppendingTiffWriter.tellcCs*|tjkr
||j7}|j<03>||<02>|<00><05>Srz)rir<>r<>r<>r<>r<>)r<>r<><00>whencer7r7r;r<><00>s

zAppendingTiffWriter.seekcCs^|j<00>dtj<03>|j<00><04>}d|d}d|krdkr'nn|j<00>t|<02><01>|j<00><04>|_dS)NrrB)r<>r<>ri<00>SEEK_ENDr<44>r<>rir<>)r<><00>pos<6F> pad_bytesr7r7r;r<><00>s 
 zAppendingTiffWriter.goToEnd<6E>endianr<6E>cCs4||_|j<00>d<01>|_|j<00>d<02>|_|j<00>d<03>|_dS)Nr?rE<00>HHL)r<><00>longFmt<6D>shortFmt<6D> tagFormat)r<>r<>r7r7r;r<><00>szAppendingTiffWriter.setEndiancCsP |<00><00>}|dkr|j<01><02>d|_dS|j<01>|<01>|<00><05>}|j<01>|dtj<07>q)NTrr$r@)r<>r<>r<>r<>r<><00> readShortri<00>SEEK_CUR)r<>r<><00>num_tagsr7r7r;r<><00>s <02>zAppendingTiffWriter.skipIFDsr<73>rir<>cCs |j<00>|<01>Srz)r<>r<>rQr7r7r;r<>r zAppendingTiffWriter.writecC<01>t<00>|j|j<03>d<01><01>\}|S)Nr )r<>rCr<>r<>ryrWr7r7r;r<><00>zAppendingTiffWriter.readShortcCr<>rl)r<>rCr<>r<>ryrWr7r7r;r<> r<>zAppendingTiffWriter.readLongr<67>cC<01>R|j<00>dtj<03>|j<00>t<05>|j|<01><02>}|dur%|dkr'd|<02>d<04>}t|<03><01>dSdS)N<><4E><EFBFBD><EFBFBD><EFBFBD>r$<00> wrote only <20> bytes but wanted 4<> r<>r<>rir<>r<>r<>rDr<>r<><00>r<>r<><00> bytes_writtenrr7r7r;<00>rewriteLastShortToLong<00>  <08>z*AppendingTiffWriter.rewriteLastShortToLongcCr<>)Nr<4E>r r<><00> bytes but wanted 2) r<>r<>rir<>r<>r<>rDr<>r<>r<>r7r7r;<00>rewriteLastShortr<>z$AppendingTiffWriter.rewriteLastShortcCr<>)N<><4E><EFBFBD><EFBFBD><EFBFBD>r$r<>r<>r<>r<>r7r7r;<00>rewriteLastLongr<>z#AppendingTiffWriter.rewriteLastLongcC<01>B|j<00>t<02>|j|<01><02>}|dur|dkrd|<02>d<03>}t|<03><01>dSdS)Nr r<>r<>)r<>r<>r<>rDr<>r<>r<>r7r7r;<00>
writeShort$<00>
 <08>zAppendingTiffWriter.writeShortcCr<>)Nr$r<>r<>)r<>r<>r<>rDr<>r<>r<>r7r7r;r<>*r<>zAppendingTiffWriter.writeLongcCs|<00><00>|j<01><02>dSrz)r<>r<>r<>r<>r7r7r;r<>0szAppendingTiffWriter.closec Cs<>|<00><00>}t|<01>D]s}t<02>|j|j<05>d<01><01>\}}}|j|}||}|dk}|s3|<00><08>|j } |<00>
| <09>||j vrq|j<05> <0C>}
|rT|j ||dk|dkd<04>|j<05>|
d<00>n|j<05>| <09>|j ||dk|dkd<04>|j<05>|
<EFBFBD>d} }
q|r{|j<05>dtj<10>qdS)Nr,r$r )<02>isShort<72>isLong)r<>r<>r<>rCr<>r<>ry<00>
fieldSizesr<EFBFBD>r<>r<><00>Tagsr<73><00>
fixOffsetsr<EFBFBD>rir<>) r<>r<>r<>r<00>
field_typer<EFBFBD><00>
field_size<EFBFBD>
total_size<EFBFBD>is_localr<6C><00>cur_posr7r7r;r<>4s4 



<06> <06> 
<02><04>zAppendingTiffWriter.fixIFDr<44>r<>rkr<>cCs<>|s
|s
d}t|<04><01>t|<01>D]J}|r|<00><02>n|<00><03>}||j7}|rK|dkrK|dkr/d}t|<04><01>|<00>|<06>|j<06>dtj <09>|<00>
t j <0C>|j<06>dtj <09>q|rS|<00> |<06>q|<00>|<06>qdS)Nz offset is neither short nor longrr znot implementedi<64><69><EFBFBD><EFBFBD>r,)r<>r<>r<>r<>r<>r<>r<>r<>rir<>r<>rr3r<>r<>)r<>r<>r<>r<>rr<>r<>r7r7r;r<>Ws$ 
 
   <04>zAppendingTiffWriter.fixOffsetsN)Fr<46>)rjr<>)r<>r<>rjr<>r<>)r<>r<>rjr<>)r<>rirjr<>)r<>r<>rjr<>)FF)r<>r<>r<>rkr<>rkrjr<>)r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>rkr<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r7r7r7r;r<>ws4
















$<10>r<EFBFBD>r<><00> Image.Imager{<00> IO[bytes]r<><00> str | bytesr<73>c Cs<>|j<00><01>}|j}t|<03>dg<00><02>}t|d<02>s|st|||<02>S|<00><07>}zWt|<01><01>;}|g|D]-}||_||_t|d<02>s<d} n|j } t
| <09>D]}
|<08> |
<EFBFBD>|<08> <0C>t|||<02>|<07> <0A>qCq,Wd<00>n1sdwYW|<00> |<06>dSW|<00> |<06>dS|<00> |<06>w)N<> append_imagesr<73>r )rQr]rRr<>r<>r<>rur<>r<>r<>r<>r<>r<>r<>) r<>r{r<>rQrRr<><00>cur_idx<64>tf<74>ims<6D>nfrr<72>r7r7r;<00> _save_allss2
 

 
 
<02><02><1E><02>r<>z.tifz.tiffz
image/tiff)rhrirjrk)r<>r<>r{r<>r<>r<>rjr<>)<>
__future__rrkrp<00>loggingr<67>rir<>r:<00>collections.abcr<00> fractionsr<00>numbersrr<00>typingrrr r
r <00>r rrrrr<00>_binaryrr<>rr<>r<00>
_deprecaterr<00> getLoggerr<72>r<>r!rS<00>IFD_LEGACY_APIrbr<>r<>rmrrrr rrrXr<>rr#rcrrrr rnrYrZr[<00> PREDICTORr(r$r%r"rgrorr<00>
JPEGTABLESrrer\rVrWr'rUr<>rh<00>IMAGEJ_META_DATA_BYTE_COUNTS<54>IMAGEJ_META_DATAr rrdrr~rrmr<>r<>roryr<>r<>r<>r<>rsr<>r<>r<>r<><00>
_IFDv2Baser<EFBFBD>r<>r<>r<><00>setattrr<72><00>ImageFileDirectoryr<79>rPrur<>r<><00> register_openr?<00> register_save<76>register_save_all<6C>register_extensions<6E> register_mimer7r7r7r;<00><module>sL (        
<02><02><02><02><02><02><02> <02>
<02> <02> <02> <02><02><02><02><02><04><02><02><02><02><02><02> <02>
<02> <02> <02> <02><02><02><02><02><02><04><02><02><02><02><02><02><02><02><02><02><02><02> <02>!<02>"<02>#<02>$<06>%<02>&<02>'<02>(<02>)<02>*<02>+<02>,<02>-<02>.<02>/<02>0<02>1<02>2<02>3<02>4<02>5<06>6<02>7<02>8<02>9<02>:<02>;<02><<02>=<02>><02>?<02>@<02>A<02>B<02>C<02>D<02>E<02>F<06>G<02>H<02>I<02>J<02>K<02>L<02>M<02>N<02>O<02>P<02>Q<02>R<02>S<02>T<02>U<02>V<02>W<06>X<02>Y<02>Z<02>[<02>\<02>]<02>^<02>_<02>`<02>a<02>b<02>c<02>d<02>e<02>f<02>g<02>h<06>i<02>j<02>k<02>l<02>m<02>n<02>o<02>p<02>q<02>r<02>s<02>t<02>w<02>x<02>y<02>z<06>}

| x \a<02><02><02><02><02><02> <02>
<02> <02> <02> <02><02><02><02><02><02><02><08>6 }