
    hY|                       S SK Jr  S SKrS SKrS SKrS SKrS SKrS SKrS SKrS SK	r	S SK
r
S SKJrJr  SSKJrJr  SSKJr  SSKJr  SSKJr  SS	KJr  SS
KJr  SSKJr  Sr\(       a  SSKJr  SS jr SS jr!SS jr"SS jr#SS jr$0 SSS\#4_SSS\#4_SSS\#4_SSS\#4_S S!S"\ 4_S#S$S%\#4_S&S'S(\#4_S)S*S+\#4_S,S-_S.S/S0\#4_S1S2S3\#4_S4S5S6\#4_S7S8S9\ 4_S:S;S<\#4_S=S>S?\#4_S@SASB\#4_SCSD_0 SESF_SGSH_SISJ_SKSL_SMSN_SOSP_SQSR_SSST_SUSV_SWSXSY\ 4_SZS[S\\$4_S]S^S_\ 4_S`SaSb\ 4_ScSdSe\#4_SfSgSh\ 4_SiSjSk\!4_SlSmSn\!4_E0 SoSpSq\!4_SrSsSt\!4_SuSvSw\!4_SxSySz\!4_S{S|S}\!4_S~SS\!4_SSS\!4_SSS\!4_SSS\!4_SSS\!4_SSS\!4_SSS\!4_SSS\!4_SSS\!4_SS_SS_SS_ESSSSSSSSSSSSS\"4S.Er%SS jr& " S S\R                   5      r'SS jr(SS jr)SSSSSSS.r*Sr+S SSS.r,SS jr-SS jr.SS jr/ S     SS jjr0\Rb                  " \'Rd                  \0\&5        \Rf                  " \'Rd                  \.5        \Rh                  " \'Rd                  / SQ5        \Rj                  " \'Rd                  S5        g)    )annotationsN)IOAny   )Image	ImageFile)i16be)i32be)o8)o16be)	deprecate)presetsFMpoImageFileJpegImageFilec                    [        U R                  R                  S5      5      S-
  n[        R                  " U R                  U5        g )N   )i16fpreadr   
_safe_read)selfmarkerns      E/var/www/html/env/lib/python3.13/site-packages/PIL/JpegImagePlugin.pySkipr   ?   s1    DGGLLOq A!$    c                >   [        U R                  R                  S5      5      S-
  n[        R                  " U R                  U5      nSUS-   3nX0R
                  U'   U R                  R                  XC45        US:X  a  UR                  S5      (       a  [        US5      =U R                  S'   n[        US5      U R                  S	'    US
   n[        US5      [        US5      4nUS:X  a  XpR                  S'   O%US:X  a  [        S U 5       5      U R                  S'   X`R                  S'   XpR                  S'   g US:X  au  UR                  S5      (       a_  SU R                  ;   a  U R                  S==   USS  -  ss'   g X0R                  S'   U R                  R                  5       U-
  S-   U l        g US:X  a9  UR                  S5      (       a#  UR                  SS5      S   U R                  S'   g US:X  a%  UR                  S5      (       a  X0R                  S'   g US:X  a2  UR                  S5      (       a  U R                   R                  U5        g US:X  a  UR                  S5      (       a  SnU R                  R#                  S 0 5      n	X8US!-    S":X  a   US!-  n[        X85      n
US-  nX8   nUSU-   -  nXS-  -  n[%        X85      nUS!-  nX8X-    nU
S#:X  a8  [%        US$5      S%-  [        US!5      [%        US5      S%-  [        US&5      S'.X'   OXU
'   X-  nXS-  -  nX8US!-    S":X  a  M  g g US(:X  aD  UR                  S)5      (       a.  [        US5      U R                  S*'    US+   nXR                  S,'   g US:X  aW  UR                  S-5      (       a@  US!S  U R                  S.'   U R                  R                  5       U-
  S!-   U R                  S/'   g g g ! [         a     g f = f! [&        R(                   a     g f = f! [*         a     g f = f)0Nr   APP     s   JFIF   jfif   jfif_version      
   r   dpic              3  *   #    U  H	  oS -  v   M     g7f)RQ@N ).0ds     r   	<genexpr>APP.<locals>.<genexpr>`   s     (H<aT<s   	jfif_unitjfif_density  s   Exif  exif      http://ns.adobe.com/xap/1.0/     xmp  s   FPXR flashpix   ICC_PROFILE   s   Photoshop 3.0    	photoshop   s   8BIMi  r   i      )XResolutionDisplayedUnitsXYResolutionDisplayedUnitsY  s   Adobeadobe   adobe_transforms   MPF mpmpoffset)r   r   r   r   r   appapplistappend
startswithinfodivmodtuple	Exceptiontell_exif_offsetspliticclist
setdefaulti32structerror
IndexError)r   r   r   srK   versionr1   r2   offsetr>   codename_lensizedatarH   s                  r   r   r   D   s   
 	DGGLLOq ATWWa(A}
CHHSMLL!ALL11&)!Qi/		&G$*7C$8		.!	5!Iq!9c!Rj0L A~#/		% a#((H<(H#H		% %.IIk"(4IIn%	6	all;77TYYIIf12& !IIf $ 2Q 6D	6	all+NOO777A.q1		%	6	all955 !		*	6	all+;<< 	A	6	all+?@@II((b9	!$/!1~!9!h,&1*$1~!&-06>'*4|e';+.tQ<'*4|e';+.tR=	'IO '+dO1*$3 !$/: 
6	all844 AY		'	;eO ,;II'(	6	all844AB%		$ !% 2Q 6		* 5	[  		B <<   		s7   O% #BO5 3P %
O21O25PP
PPc                   [        U R                  R                  S5      5      S-
  n[        R                  " U R                  U5      nX0R
                  S'   X0R                  S'   U R                  R                  SU45        g )Nr   commentCOM)	r   r   r   r   r   rO   rK   rL   rM   )r   r   r   r\   s       r   re   re      sb     	DGGLLOq ATWWa(AIIiHHUOLL
#r   c                D   [        U R                  R                  S5      5      S-
  n[        R                  " U R                  U5      n[        US5      [        US5      4U l        US   U l        U R                  S:w  a  SU R                   S3n[        U5      eUS   U l        U R                  S:X  a  S	U l	        OKU R                  S:X  a  S
U l	        O3U R                  S:X  a  SU l	        OSU R                   S3n[        U5      eUS;   a  S=U R                  S'   U R                  S'   U R                  (       a  U R                  R                  5         U R                  S   S   [        U R                  5      :X  a0  U R                   Vs/ s H  oUSS  PM	     nnSR                  U5      nOS nXpR                  S'   / U l        [        S[        U5      S5       H;  nX8US-    n	U R                   R#                  U	S   U	S   S-  U	S   S-  U	S   45        M=     g s  snf )Nr      r   r   r'   zcannot handle z-bit layersr"   LRGBr?   CMYKz-layer images)        progressiveprogression   r=   r   icc_profiler5      r    )r   r   r   r   r   _sizebitsSyntaxErrorlayers_moderO   rV   sortlenjoinrangelayerrM   )
r   r   r   r\   msgpprofilerr   its
             r   SOFr      s    	DGGLLOq ATWWa(AQC1I%DJ!DIyyA~tyyk5#A$DK{{a
		
		
t{{m=9#11>??		- 499]#;||<<?2#dll"33'+||4|!v|G4((7+KK#.		- 1c!fa !a%L

1Q41QqTBY!=> ! 5s   Hc                B   [        U R                  R                  S5      5      S-
  n[        R                  " U R                  U5      n[        U5      (       a  US   nUS-  S:X  a  SOSnSUS-  -   n[        U5      U:  a  Sn[        U5      e[        R                  " US:X  a  SOSUSU 5      n[        R                  S	:X  a  US:  a  UR                  5         [         V	s/ s H  oU	   PM	     sn	U R                  US
-  '   X6S  n[        U5      (       a  M  g g s  sn	f )Nr   r   rs   r   @   zbad quantization table markerBHlittler    )r   r   r   r   r   rz   rv   arraysys	byteorderbyteswapzigzag_indexquantization)
r   r   r   r\   v	precision	qt_lengthr~   rb   r   s
             r   DQTr      s     	DGGLLOq ATWWa(A
a&&aDr'Q,AQ		B&	q6I1Cc""{{)q.3c1Qy>J==H$QMMO6B$Cl!Wl$C!b&!jM a&& %Ds   #Di  SOF0zBaseline DCTi  SOF1zExtended Sequential DCTrk   SOF2zProgressive DCTi  SOF3zSpatial losslessi  DHTzDefine Huffman tablei  SOF5zDifferential sequential DCTrl   SOF6zDifferential progressive DCTi  SOF7zDifferential spatiali  )JPG	ExtensionNi  SOF9zExtended sequential DCT (AC)rm   SOF10zProgressive DCT (AC)i  SOF11zSpatial lossless DCT (AC)i  DACz%Define arithmetic coding conditioningi  SOF13z Differential sequential DCT (AC)rn   SOF14z!Differential progressive DCT (AC)i  SOF15zDifferential spatial (AC)i  )RST0z	Restart 0Ni  )RST1z	Restart 1Ni  )RST2z	Restart 2Ni  )RST3z	Restart 3Ni  )RST4z	Restart 4Ni  )RST5z	Restart 5Ni  )RST6z	Restart 6Ni  )RST7z	Restart 7Ni  )SOIzStart of imageNi  )EOIzEnd of imageN  SOSzStart of scani  r   zDefine quantization tablei  DNLzDefine number of linesi  DRIzDefine restart intervali  DHPzDefine hierarchical progressioni  EXPzExpand reference componentr!   APP0zApplication segment 0r3   APP1zApplication segment 1r9   APP2zApplication segment 2i  APP3zApplication segment 3i  APP4zApplication segment 4i  APP5zApplication segment 5i  APP6zApplication segment 6i  APP7zApplication segment 7i  APP8zApplication segment 8i  APP9zApplication segment 9i  APP10zApplication segment 10i  APP11zApplication segment 11i  APP12zApplication segment 12r<   APP13zApplication segment 13rE   APP14zApplication segment 14i  APP15zApplication segment 15i  )JPG0zExtension 0Ni  )JPG1zExtension 1Ni  )JPG2zExtension 2N)JPG3zExtension 3N)JPG4zExtension 4N)JPG5zExtension 5N)JPG6zExtension 6N)JPG7zExtension 7N)JPG8zExtension 8N)JPG9zExtension 9N)JPG10zExtension 10N)JPG11zExtension 11N)JPG12zExtension 12N)JPG13zExtension 13Nre   Comment)i  i  i  i  i  i  i  i  i  i    i  c                $    U R                  S5      $ )Ns   )rN   )prefixs    r   _acceptr   G  s    _--r   c                     ^  \ rS rSrSrSrSS jrSS jrSU 4S jjrSU 4S jjr	SS jr
      SS	 jrSS
 jrSS jrSS jrSS jrSrU =r$ )r   iP  JPEGzJPEG (ISO 10918)c                ^   U R                   R                  S5      n[        U5      (       d  Sn[        U5      eSnS=U l        U l        SU l        / U l        0 U l        0 U l	        0 U l
        0 U l        / U l        / U l         US   nUS:X  a)  XR                   R                  S5      -   n[        U5      nOU R                   R                  S5      nMR  U[        ;   a  [        U   u  pEnUb  U" X5        US:X  aM  U R                   nU R                   S:X  a  S	n["        R$                  " S
SU R&                  -   SUS45      /U l        OWU R                   R                  S5      nO8US;   a  SnO/US:X  a  U R                   R                  S5      nOSn[        U5      eGM  U R+                  5         g )Nrg   znot a JPEG file   r      r   r   rj   CMYK;Ijpegr   r    >   r     i   zno marker found)r   r   r   rv   ru   rw   rT   r}   _huffman_dc_huffman_acr   rK   rL   rV   r   MARKERmoder   _Tilera   tile_read_dpi_from_exif)r   r\   r~   r   namedescriptionhandlerrawmodes           r   _openJpegImageFile._openT  s   GGLLOqzz#Cc"" #$#	DK 79
+-+-24%'02$&!ADyQ'F GGLLOF{-3AY*7&D$;"iiGyyF*"*!0BAQS}U!DI GGLLOk!fGGLLO'!#&&? B 	  "r   c                Z    US;   a  [        US5        [        U SU-   5      $ [        U5      e)N)
huffman_ac
huffman_dcr@   _)r   getattrAttributeError)r   r   s     r   __getattr__JpegImageFile.__getattr__  s1    //dB4t,,T""r   c                R   > [         TU ]  5       U R                  U R                  /-   $ N)super__getstate__rw   r}   )r   	__class__s    r   r   JpegImageFile.__getstate__  s#    w#%djj(AAAr   c                H   > USS  u  U l         U l        [        TU ]  U5        g )Nr5   )rw   r}   r   __setstate__)r   stater   s     r   r   JpegImageFile.__setstate__  s$    "')TZU#r   c                    U R                   R                  U5      nU(       d.  [        R                  (       a  [	        U S5      (       d  SU l        gU$ )z{
internal: read more image data
For premature EOF and LOAD_TRUNCATED_IMAGES adds EOI marker
so libjpeg can finish decoding
_endedTs   )r   r   r   LOAD_TRUNCATED_IMAGEShasattrr  )r   
read_bytesr\   s      r   	load_readJpegImageFile.load_read  s>     GGLL$Y44WT8=T=T DKr   c                   [        U R                  5      S:w  a  g U R                  (       a  g U R                  S   u  p4pVSnU R                  n[	        U[
        5      (       d   eUS   S:X  a  US;   a
  Xl        US4nU(       a  [        U R                  S   US   -  U R                  S   US   -  5      nS H
  n	Xy:  d  M
    O   Uc   eUS   US   US   US   -
  W	-   S-
  U	-  US   -   US   US   -
  U	-   S-
  U	-  US   -   4nU R                  S   U	-   S-
  U	-  U R                  S   U	-   S-
  U	-  4U l        U	n[        R                  " X4XV5      /U l        US4U l        SSUS   U-  US   U-  4n
U R                  U
4$ )	Nr   r   ri   )rh   YCbCrr   )r'   r?   r   r   r   rg   )rz   r   decoderconfigra   
isinstancerQ   rx   minrt   r   r   r   )r   r   ra   r.   eoascaleoriginal_sizer\   boxs              r   draftJpegImageFile.draft  s    tyy>Q YYq\
a		!U####Q45=T^3JbA		!Q/1a1HIE!: " = =!!1!q1$*QqT11!q1$*QqT1	A  99Q<!+a/A5		!q8H18LQR7RSDJE__Q101	#QZ!]1%-}Q/?%/GHyy#~r   c                .   [         R                  " 5       u  p[        R                  " U5        [        R                  R                  U R                  5      (       a$  [        R                  " SSX R                  /5        O$ [        R                  " U5        Sn[        U5      e [        R                  " U5       nUR                  5         UR                  U l        S S S 5         [        R                  " U5        U R                  R                   U l        U R                  R$                  U l        / U l        g ! [         a     Nf = f! , (       d  f       Ns= f! [         a     Nkf = f!  [        R                  " U5        f ! [         a     f f = f= f)Ndjpeg-outfilezInvalid Filename)tempfilemkstemposclosepathexistsfilename
subprocess
check_callunlinkOSError
ValueErrorr   openloadimr   rx   ra   rt   r   )r   fr  r~   _ims        r   
load_djpegJpegImageFile.load_djpeg  s%    ""$
77>>$--((!!7Jmm"LM		$ %CS/!	D!S
&& "		$ WW\\
WW\\
	'   "!  		$ sl   D: %E+ ;"E
E+ &E :
EE

EE+ 
E('E(+F-FF
FFFFc                    [        U 5      $ r   )_getexifr   s    r   r+  JpegImageFile._getexif  s    ~r   c                   SU R                   ;   d  SU R                   ;  a  g  U R                  5       nUS   nUS   n [        US   5      US   -  n[        R
                  " U5      (       a  Sn[        U5      eUS:X  a  US	-  nXD4U R                   S'   g ! [         a    Un NRf = f! [        R                  [        [        [        [        [        4 a    S
U R                   S'    g f = f)Nr)   r4   i(  i  r   r   zDPI is not a numberrg   r+   )H   r/  )rO   getexiffloat	TypeErrormathisnanr"  rY   rZ   KeyErrorrv   ZeroDivisionError)r   r4   resolution_unitx_resolutionr)   r~   s         r   r   !JpegImageFile._read_dpi_from_exif  s    DIItyy!8	&<<>D"6lO<L#LO,|A> zz#+ o%!#t"xDIIe  #"# LL
 	&  &DIIe	&s5   B( B AB( B%"B( $B%%B( (=C('C(c                    [        U 5      $ r   )_getmpr,  s    r   r;  JpegImageFile._getmp  s    d|r   )r  rT   r   r   rx   rt   rK   rL   ru   r	  rV   r%  r}   rw   r   r   )returnNone)r   strr=  r   )r=  	list[Any])r   r@  r=  r>  )r  intr=  bytes)r   z
str | Nonera   ztuple[int, int] | Noner=  z0tuple[str, tuple[int, int, float, float]] | None)r=  dict[int, Any] | None)__name__
__module____qualname____firstlineno__formatformat_descriptionr   r   r   r   r  r  r(  r+  r   r;  __static_attributes____classcell__)r   s   @r   r   r   P  s`    F+6#p#B$ &&&<&	9&P>&: r   c                `    SU R                   ;  a  g U R                  5       R                  5       $ )Nr4   )rO   r0  _get_merged_dictr,  s    r   r+  r+    s&    TYY<<>**,,r   c           	         U R                   S   n[        R                  " U5      nUR	                  S5      nUR                  S5      (       a  SOSnSSKJn   UR                  U5      nUR                  UR                  5        UR                  U5        [        U5      n US	   n
/ n US   n[        U
5       H  n[         R"                  " U S3XS-  5      nSn[        [%        X5      5      n['        US   S-  5      ['        US   S-  5      ['        US   S-  5      US   S-  S-	  US   S-  S-	  US   S-  S.nUS   S:X  a  SUS'   OSn	[        U	5      eSSSS S!S"S#S$.nUR)                  US%   S&5      US%'   UUS'   UR+                  U5        M     XS'   U$ ! [         a     g f = f! [         a  nSn	[        U	5      UeS nAff = f! [         a  nS
n	[        U	5      UeS nAff = f! [         a  nS'n	[        U	5      UeS nAff = f)(NrI   r'   s   MM *><r   )TiffImagePluginz)malformed MP Index (unreadable directory)  z(malformed MP Index (no number of images)i  LLLHHrs   )	AttributeSize
DataOffsetEntryNo1EntryNo2rT  l        i   @i    i      i      i )DependentParentImageFlagDependentChildImageFlagRepresentativeImageFlagReservedImageDataFormatMPTyper_  r   r   z!unsupported picture format in MPO	Undefinedz Large Thumbnail (VGA Equivalent)z$Large Thumbnail (Full HD Equivalent)zMulti-Frame Image (Panorama)zMulti-Frame Image: (Disparity)z Multi-Frame Image: (Multi-Angle)zBaseline MP Primary Image)r   i  i  i  i  i  i   r`  Unknownz!malformed MP Index (bad MP Entry))rO   r5  ioBytesIOr   rN   r   rQ  ImageFileDirectory_v2seeknextr$  dictrR   rv   r|   rY   unpack_fromzipboolgetrM   )r   rb   file_contentshead
endiannessrQ  rO   rI   r  r~   quant	mpentriesrawmpentriesentrynumunpackedentrylabelsmpentrympentryattr	mptypemaps                      r   r;  r;    si   yy JJt$Ma D(;<<#J!&44T:499%		- $Z
&6

 I$&&zeH"..,e$lrMM QF3v56G,01E1Q,R+/0D0P+Q+/0D0P+Q$[1W="D$+K$8G$D#K!+.;K ,-217-.9!#&&%<@8:<5I %.MM+h2G$SK!#.GK W%= %> 6
 IA    &9#A%&  &8#A%&N  &1#A%&s[   F AF, "G *C0G, 
F)(F),
G	6GG	
G)G$$G),
H	6HH	rh   ri   r   r  )1rh   ri   RGBXrj   r  )@r   r   r"   r5   r=   r    rY     r   r?   r&   rq   rs         *   rg   r'   r@            )   +   	   rG      rZ     (   ,   5   r(             '   -   4   6         !   &   .   3   7   <      "   %   /   2   8   ;   =   #   $   0   1   9   :   >   ?   r   ))r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   r   r   c                    [        U [        5      (       a  U R                  S;   a  gU R                  S   SS U R                  S   SS -   U R                  S   SS -   n[        R                  US5      $ )N)r   r?   r   r   rg   r   )r
  r   rw   r}   	samplingsrl  )r%  samplings     r   get_samplingr    sl     b-((BII,?xx{1Q"((1+a"22RXXa[15EEH==2&&r   c                >   U R                   S:X  d  U R                  S:X  a  Sn[        U5      e [        U R                     nU R                  nUR                  SS5       Vs/ s H  n[        U5      PM     nnUR                  SS5      n	UR                  S	S5      n
UR                  S
5      nU	S:X  a  Sn	Sn
SnOU	[        ;   a/  [        U	   nSn	UR                  S	S5      n
UR                  S5      nO|[        U	[        5      (       d  Sn[        U5      eU
[        ;   a  [        U
   R                  S	S5      n
[        U[        5      (       a"  U[        ;   a  [        U   R                  S5      nU
S:X  a  Sn
OIU
S:X  a  Sn
O@U
S:X  a  Sn
O7U
S:X  a  Sn
O.U
S:X  a(  U R                  S:w  a  Sn[        U5      e[        U 5      n
    S4S jnUS:X  a*  U R                  S:w  a  Sn[        U5      e[!        U SS 5      nU" U5      nUR                  SS5      nSnUR                  S5      nU(       aK  SnUU-
  n[#        U5      U:  a  Sn[        U5      e[%        SU-   [#        U5      -   5      nUSU-   S-   U-   -  nUR                  S5      nU(       a  S nUU-
  n/ nU(       a"  UR'                  US U 5        UUS  nU(       a  M"  SnU HQ  n[%        SU-   [#        U5      -   5      nUS!U-   S"-   [)        U5      -   [)        [#        U5      5      -   U-   -  nUS-  nMS     UR                  S#U R*                  R                  S#5      5      nUR                  S$S%5      =(       d    UR                  S&S%5      nUR                  S'S%5      nUR                  S(S5      n[        U[,        R.                  5      (       a  UR1                  5       n[#        U5      U:  a  S)n[        U5      eU	UUR                  S*S5      UUR                  S+S%5      UR                  S,S5      UU
UR                  S-S5      UR                  S.S5      UUUU4U l        SnU(       d  U(       a  U R                  S/:X  a#  S0U R4                  S   -  U R4                  S   -  nONU	S1:  d  U	S:X  a#  SU R4                  S   -  U R4                  S   -  nOU R4                  S   U R4                  S   -  nU(       a  U[#        U5      S2-   -  nU(       a  U[#        U5      S-   -  nO%[7        U[#        U5      S2-   [#        U5      S-   5      n[8        R:                  " X[8        R<                  " S3SU R4                  -   SU5      /U5        g ! [
         a!  nSU R                   S3n[        U5      UeS nAff = fs  snf )5Nr   z cannot write empty image as JPEGzcannot write mode z as JPEGr)   r   qualityr  subsamplingqtableskeepr   zInvalid quality settingz4:4:4z4:2:2r   z4:2:0r   z4:1:1r   z3Cannot use 'keep' when original image is not a JPEGc                   U c  U $ [        U [        5      (       a   U R                  5        VVs/ s H9  nUR                  SS5      S   R                  5         H  n[	        U5      PM     M;     nnn[        S[        U5      S5       Vs/ s H	  oCXDS-    PM     n n[        U [        [        [        45      (       a  [        U [        5      (       a.  [        [        U 5      5       Vs/ s H  owU ;   d  M
  X   PM     n nO [        U [        5      (       a  [        U 5      n S[        U 5      s=:  a  S:  d  O  Sn[        U5      e[        U 5       HF  u  p [        U	5      S:w  a  Sn[        U5      e[        R                  " SU	5      n
[        U
5      X'   MH     U $ g s  snnf s  snf ! [         a  nSn[        U5      UeS nAff = fs  snf ! [         a  nSn[        U5      UeS nAff = f)	N#r   r   r   zInvalid quantization tabler"   z$None or too many quantization tablesr   )r
  r?  
splitlinesrU   rA  r|   rz   r"  rQ   listrh  	enumerater2  r   )r  linenumlinesr\   r  r~   keyidxtabletable_arrays              r   validate_qtables_save.<locals>.validate_qtables  s   
 ?Ngs##
P !( 2 2 4 4#zz#q1!4::< H<  4   7<As5z26NO6NV,6NOgtT233'4((,1#g,,?,?S'>LGL,?   GU++w-G(q(< o%'0
	55zR':'n,"'++c5"9K
 $(#4GL 1 N+ 4 P	  -2 o1,- ! 16C$S/q01sS   F' A F/F' 
F"'	G4G3GF' '
G1F??G
G)G$$G)extrar   r   r8   r}  zXMP data is too longs   r6   rr   r=   s   r;   rd   ro   Frp   optimizer4   zEXIF data is too longsmoothkeep_rgb
streamtyperestart_marker_blocksrestart_marker_rowsrj   r?   _   r"   r   )r  zKstr | tuple[list[int], ...] | list[list[int]] | dict[int, list[int]] | Noner=  zlist[list[int]] | None)widthheightr"  RAWMODEr   r5  r!  encoderinforl  roundr   r
  rA  r?  rH  r  r   rz   o16rM   r   rO   r   Exiftobytesencoderconfigra   maxr   _saver   )r%  r   r  r~   r   r  rO   xr)   r  r  r  presetr  r  MAX_BYTES_IN_MARKERr8   overhead_lenmax_data_bytes_in_markerra   rr   markersr   r   rd   ro   r  r4   bufsizes                                r   r  r    s   	xx1}		Q0o""''"
 >>D!XXeV4
54584C
5hhy"%G((="-Khhy!G&	G	!jj3**^,%%'o'!!+.22="EKgs##7(:g&**>:Gg						 		99GCS/!"2&(W( 
 	(T &99GCS/!"nd3w'GHHWc"E
((5/C
#6#E s8..(CS/!1|#c#h./t#&IICOO((=)K#6#E NN;'@(@AB%&>&?@K k Fq<'#f+56D"# Q% S\"	#
 E FA  hhy"''++i"89G
 ((=%0RDHH]E4RKxx
E*H88FC D$

##||~
4y&&%o 	1U#q!(!,&*B* G;77f"''!*nrwwqz1G]gm"''!*nrwwqz1Gggaj2771:-Gs4y1}$Gs5zA~%G gs4y1}c%j1n=OO
"'')91gFGu  ""277)84cl!" 6s   U, "V,
V6VVc                    U R                  5       n[        R                  " SSX#/5         [        R                  " U5        g ! [
         a     g f = f)Ncjpegr  )_dumpr  r  r  r   r!  )r%  r   r  r  s       r   _save_cjpegr  Z  sE    xxzH7JCD
		( s   A 
AAc                F   [        X5      n UR                  5       nUbH  US   S:  a?  UR                   H  u  pEUS:X  d  M  SU;   d  M  Us  $    SSKJn  UR
                  " X#5      nU$ ! [        [        4 a     U$ [         a    [        R                  " S5         U$ f = f)NrR  r   r   s    hdrgm:Version="r   zTImage appears to be a malformed MPO file, it will be interpreted as a base JPEG file)r   r;  rL   MpoImagePluginr   adoptr2  r[   rv   warningswarn)r   r  r%  mpheadersegmentcontentr   s          r   jpeg_factoryr  f  s     
r	$B
99;HUOa$7$&JJ f$)<)GI %/
 5 ##B1B I z"  I  
.	
 I
s)   1A* A* 
A* A* *B =B B )z.jfifz.jpez.jpgz.jpegz
image/jpeg)r   r   r   rA  r=  r>  )r   rB  r=  rk  )r   r   r=  rC  )r%  Image.Imager=  rA  )r%  r  r   	IO[bytes]r  zstr | bytesr=  r>  r   )r   r  r  zstr | bytes | Noner=  zJpegImageFile | MpoImageFile)6
__future__r   r   rc  r3  r  rY   r  r   r  r  typingr   r   r   r   r   _binaryr	   r   r
   rX   r   r   r  
_deprecater   JpegPresetsr   TYPE_CHECKINGr  r   r   r   re   r   r   r   r   r   r+  r;  r  r   r  r  r  r  r  register_openrH  register_saveregister_extensionsregister_mimer,   r   r   <module>r     s|  D #  	  	   
     ! !  ! !  ,%
g7T$-?`6@

V^S)@

V.4@
 V&,@
 V'-	@

 U*D1@
 V2C8@
 V3S9@
 V+S1@
 &@
 V3S9@
 W,c2@
 W137@
 U;TB@
 W8#>@
 W93?@
  W137!@
" '#@
$ '%@
& ''@
( ')@
* '+@
, '-@
. '/@
0 '1@
2 +3@
4 )5@
6 UOT*7@
8 U/59@
: U,d3;@
< U-t4=@
> U5s;?@
@ U0$7A@
B V,c2C@
D V,c2E@
F V,c2G@
H V,c2I@
J V,c2K@
L V,c2M@
N V,c2O@
P V,c2Q@
R V,c2S@
T V,c2U@
V W.4W@
X W.4Y@
Z W.4[@
\ W.4]@
^ W.4_@
` W.4a@
b )c@
d )e@
f )g@
h *))))))++++Is#@
F.AI'' AH-I` 
		 	'CL 37/!<   M((, @   M((% 0   -..0R S   M((, 7r   