HEX
Server: Apache
System: Linux srv1.prosuiteplus.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: prosuiteplus (1001)
PHP: 8.3.20
Disabled: NONE
Upload Files
File: //usr/lib/python3/dist-packages/PIL/__pycache__/JpegImagePlugin.cpython-38.pyc
U

g�
^�l�A@s�ddlZddlZddlZddlZddlZddlZddlZddlmZm	Z	m
Z
ddlmZm
ZmZmZddlmZdd�Zdd	�Zd
d�Zdd
�Zdd�Zddefddefddefddefddefddefddefddefd d!d"efd#d$efd%d&efd'd(efd)d*efd+d,efd-d.efd/d0d1d2d3d4d5d6d7d8d9d:efdd;efd<d=efd>d?efd@dAefdBdCefdDdEefdFdGefdHdIefdJdKefdLdMefdNdOefdPdQefdRdSefdTdUefdVdWefdXdYefdZd[efd\d]efd^d_efd`daefdbdcefdddedfdgdhdidjdkdldmdndodpdqddrefds�?Zdtdu�ZGdvdw�dwe	j	�Zdxdy�Zdzd{�Zd|d}�Zd~d~ddd�d�d��Zd�Z ddd�d��Z!d�d��Z"d�d��Z#d�d��Z$d�d��Z%d�d�d��Z&e�'ej(e&e�e�)ej(e$�e�*ej(d�d�d�d�g�e�+ej(d��dS)��N�)�Image�	ImageFile�TiffImagePlugin)�i8�i16be�i32be�o8)�presetscCs&t|j�d��d}t�|j|�dS)N�)�i16�fp�readr�
_safe_read)�self�marker�n�r�5/usr/lib/python3/dist-packages/PIL/JpegImagePlugin.py�Skip2srcCs2t|j�d��d}t�|j|�}d|d@}||j|<|j�||f�|dkr�|dd�dkr�t|d�|jd<}t	|d	�|jd
<z$t
|d�}t|d�t|d
�f}Wntk
r�Yn(X|dkr�||jd<||jd<||jd<�n�|dk�r|dd�dk�rd|jk�rl||jd<�nN|dk�rH|dd�dk�rH||jd<�n$|dk�rt|dd�dk�rt|j�|��n�|dk�r�|dd�dk�rl|dd�}d}	i}
||	|	d�dk�r�|	d7}	zt||	�}Wnt
jk
�r�Y�q�YnX|	d7}	t
||	�}d|	|}	|	d@�r"|	d7}	t||	�}
|	d7}	||	|	|
�}|dk�r�t|dd��d t|dd��t|dd��d t|dd��d!�}||
|<|	|
}	|	d@�r�|	d7}	�q�|
|jd"<n�|d#k�r&|dd�d$k�r&t|d�|jd%<zt
|d�}Wntk
�rYnX||jd&<nF|dk�rl|dd�d'k�rl|dd�|jd(<|j��|d|jd)<d|jk�r.d|jk�r.z�|��}|d*}|d+}zt|d�|d}Wntk
�r�|}YnX|d,k�r�|d-9}t|d.�t|d.�f|jd<Wn(ttttfk
�r,d/|jd<YnXdS)0NrzAPP%d����sJFIF�Zjfif�Zjfif_version���
r�dpi�	jfif_unit�jfif_density��sExif�exif��sFPXRZflashpix��ICC_PROFILE���sPhotoshop 3.0rs8BIMi�i)ZXResolutionZDisplayedUnitsXZYResolutionZDisplayedUnitsY�	photoshop��sAdobeZadobe�adobe_transformsMPF�mpZmpoffseti(i�gR���Q@g�?)�Hr-)rr
rrr�app�applist�append�info�divmodr�	Exception�icclist�struct�error�i32�tell�getexif�float�	TypeError�int�KeyError�SyntaxError�
ValueError�ZeroDivisionError)rrr�sr.�versionrr Zblocks�offsetr(�codeZname_len�size�datar*r"Zresolution_unitZx_resolutionrrrr�APP7s�






�


"rGcCs@t|j�d��d}t�|j|�}||jd<|j�d|f�dS)Nr�COM)rr
rrrr.r/r0)rrrrArrrrH�s
rHc		Cs�t|j�d��d}t�|j|�}t|dd��t|dd��f|_t|d�|_|jdkrjtd|j��t|d�|_	|j	dkr�d|_
n2|j	dkr�d	|_
n |j	d
kr�d|_
ntd|j	��|d
kr�d|jd<|jd<|j�rL|j�
�t|jdd�t|j�k�r8g}|jD]}|�|dd���qd�|�}nd}||jd<d|_tdt|�d�D]N}|||d�}|j�|dt|d�dt|d�d@t|d�f��q\dS)Nrr,rrrzcannot handle %d-bit layersr�L�RGBr�CMYKzcannot handle %d-layer images)���������progressive�progression�
r'��icc_profile��r)rr
rrr�_sizer�bitsr>�layers�moder1r4�sort�lenr0�join�range�layer)	rrrrAZprofile�prT�i�trrr�SOF�s:"






rccCs�t|j�d��d}t�|j|�}t|�r�t|�dkr>td��t|d�}|ddkr�t�d|dd��|j	|d@<|dd�}q"dSq"dS)	Nr�Azbad quantization table markerrrV�Brr)
rr
rrrr\r>r�array�quantization)rrrrA�vrrr�DQT�s	riZSOF0zBaseline DCTZSOF1zExtended Sequential DCTZSOF2zProgressive DCTZSOF3zSpatial losslessZDHTzDefine Huffman tableZSOF5zDifferential sequential DCTZSOF6zDifferential progressive DCTZSOF7zDifferential spatial)ZJPGZ	ExtensionNZSOF9zExtended sequential DCT (AC)ZSOF10zProgressive DCT (AC)ZSOF11zSpatial lossless DCT (AC)ZDACz%Define arithmetic coding conditioningZSOF13z Differential sequential DCT (AC)ZSOF14z!Differential progressive DCT (AC)ZSOF15zDifferential spatial (AC))ZRST0z	Restart 0N)ZRST1z	Restart 1N)ZRST2z	Restart 2N)ZRST3z	Restart 3N)ZRST4z	Restart 4N)ZRST5z	Restart 5N)ZRST6z	Restart 6N)ZRST7z	Restart 7N)ZSOIzStart of imageN)ZEOIzEnd of imageNZSOSz
Start of scanzDefine quantization tableZDNLzDefine number of linesZDRIzDefine restart intervalZDHPzDefine hierarchical progressionZEXPzExpand reference componentZAPP0zApplication segment 0ZAPP1zApplication segment 1ZAPP2zApplication segment 2ZAPP3zApplication segment 3ZAPP4zApplication segment 4ZAPP5zApplication segment 5ZAPP6zApplication segment 6ZAPP7zApplication segment 7ZAPP8zApplication segment 8ZAPP9zApplication segment 9ZAPP10zApplication segment 10ZAPP11zApplication segment 11ZAPP12zApplication segment 12ZAPP13zApplication segment 13ZAPP14zApplication segment 14ZAPP15zApplication segment 15)ZJPG0zExtension 0N)ZJPG1zExtension 1N)ZJPG2zExtension 2N)ZJPG3zExtension 3N)ZJPG4zExtension 4N)ZJPG5zExtension 5N)ZJPG6zExtension 6N)ZJPG7zExtension 7N)ZJPG8zExtension 8N)ZJPG9zExtension 9N)ZJPG10zExtension 10N)ZJPG11zExtension 11N)ZJPG12zExtension 12N)ZJPG13zExtension 13N�Comment)?i��i��rLi�i�i�rMi�i�i�rNi�i�i�rOi�i�i�i�i�i�i�i�i�i�i���i�i�i�i�i�rr!r#i�i�i�i�i�i�i�i�i�i�r&r)i�i�i�i�i�i�i��i��i��i��i��i��i��i���i��cCs|dd�dkS)Nrr��r)�prefixrrr�_acceptHsroc@sDeZdZdZdZdd�Zdd�Zdd�Zd	d
�Zdd�Z	d
d�Z
dS)�
JpegImageFile�JPEGzJPEG (ISO 10918)cCs>|j�d�}t|�dkr td��d|_|_g|_i|_i|_i|_	i|_
g|_g|_t|�}|dkr�||j�d�}t
|�}n|j�d�}qV|tkr�t|\}}}|dk	r�|||�|dkr�|j}|jdkr�d}dd	|jd|d
ffg|_�q:|j�d�}qV|dk�s|dk�rd}qV|d
k�r0|j�d�}qVtd��qVdS)Nr�znot a JPEG filerrkrK�CMYK;I�jpeg�rr�i��rmi�zno marker found)r
rrr>rXrYr_Z
huffman_dcZ
huffman_acrgr.r/r4r�MARKERrZrE�tile)rrAra�nameZdescriptionZhandler�rawmoderrr�_openUsB



zJpegImageFile._opencCs|j�|�}|stjrdS|S)z�
        internal: read more image data
        For premature EOF and LOAD_TRUNCATED_IMAGES adds EOI marker
        so libjpeg can finish decoding
        s��)r
rrZLOAD_TRUNCATED_IMAGES)rZ
read_bytesrArrr�	load_read�s
zJpegImageFile.load_readcCsjt|j�dkrdS|jrdS|jd\}}}}d}|j}|ddkrZ|dkrZ||_|df}|�r"t|jd|d|jd|d�}dD]}	||	kr�q�q�|d|d|d|d|	d|	|d|d|d|	d|	|df}|jd|	d|	|jd|	d|	f|_|	}||||fg|_|df|_dd|dt|�|dt|�f}
|j|
fS)	NrrrJ)rI�YCbCrrv)rrrrrr,)r\rxZ
decoderconfigrErZ�minrWr:)rrZrE�d�e�o�aZscaleZ
original_sizerAZboxrrr�draft�s4&""�.
$zJpegImageFile.draftcCs�t��\}}t�|�tj�|j�r:t�dd||jg�nt	d��zt�
|�}|��|j|_W5zt�
|�Wntk
r�YnXX|jj|_|jj|_g|_dS)NZdjpeg�-outfilezInvalid Filename)�tempfileZmkstemp�os�close�path�exists�filename�
subprocess�
check_callr?�unlink�OSErrorr�open�load�imrZrErWrx)r�fr�Z_imrrr�
load_djpeg�s 



zJpegImageFile.load_djpegcCst|�S�N)�_getexif�rrrrr��szJpegImageFile._getexifcCst|�Sr�)�_getmpr�rrrr��szJpegImageFile._getmpN)�__name__�
__module__�__qualname__�formatZformat_descriptionr{r|r�r�r�r�rrrrrpPs2%rpcCst��}|�|�Sr�)r�Exif�_fixup_dict)Zsrc_dictr"rrrr��sr�cCsd|jkrdSt|���S)Nr")r1�dictr9r�rrrr��s
r�c	Cs�z|jd}Wntk
r$YdSXt�|�}|�d�}|dd�dkrNdnd}z,t�|�}|�|j�|�	|�t
|�}Wntk
r�td��YnXz|d}Wntk
r�td	��YnXg}z�|d
}	t
d|�D]�}
t�d�|�|	|
d
�}d}t
t||��}
t|
dd@�t|
dd@�t|
dd@�|
dd@d?|
dd@d?|
dd@d�}|ddk�rzd|d<ntd��ddddd d!d"d#�}|�|d$d%�|d$<||
d<|�|
�q�||d
<Wntk
�r�td&��YnX|S)'Nr+rrsMM*�>�<z)malformed MP Index (unreadable directory)��z(malformed MP Index (no number of images)i�rz{}LLLHHrV)�	AttributeZSizeZ
DataOffsetZEntryNo1ZEntryNo2r�li@i i�i�i���)ZDependentParentImageFlagZDependentChildImageFlagZRepresentativeImageFlagZReserved�ImageDataFormat�MPTyper�rqz!unsupported picture format in MPOZ	Undefinedz Large Thumbnail (VGA Equivalent)z$Large Thumbnail (Full HD Equivalent)zMulti-Frame Image (Panorama)zMulti-Frame Image: (Disparity)z Multi-Frame Image: (Multi-Angle)zBaseline MP Primary Image)riiiiiir�ZUnknownz!malformed MP Index (bad MP Entry))r1r=�io�BytesIOrrZImageFileDirectory_v2�seek�nextr�r�r3r>r^r5Zunpack_fromr��zip�bool�getr0)rrFZ
file_contents�headZ
endiannessr1r+ZquantZ	mpentriesZrawmpentriesZentrynumZ
unpackedentry�labelsZmpentryZmpentryattrZ	mptypemaprrrr��sl



�
�
�	r�rIrJrsr})�1rIrJZRGBXrKr})@rrrrUr'rr��rrrrRrV���*r,rr$����)�+�	��r���(�,�5r��� �'�-�4�6���!�&�.�3�7�<��"�%�/�2�8�;�=�#�$�0�1�9�:�>�?r))rrrrrr)rrrrrr)rrrrrrcsF�fdd�tt���D��t��D]\}��fdd�tD��|<q"�S)Ncsg|]}|�kr�|�qSrr)�.0�key)�qtablesrr�
<listcomp>Psz(convert_dict_qtables.<locals>.<listcomp>csg|]}�|�qSrr)r�ra)�tablerrr�Rs)r^r\�	enumerate�zigzag_index)r��idxr)r�r�r�convert_dict_qtablesOsr�cCsZt|d�r|jdkrdS|jddd�|jddd�|jddd�}t�|d�S)NrY)rr���rrr,r)�hasattrrYr_�	samplingsr�)r�Zsamplingrrr�get_samplingVs6r�cCs~zt|j}Wn"tk
r0td|j��YnX|j}dd�|�dd�D�}|�dd�}|�dd	�}|�d
�}|dkr�d}d}d}nx|tkr�t|}	d}|	�dd	�}|	�d�}nLt|t�s�t	d
��n8|tkr�t|�dd	�}t|t
�r�|tkr�t|�d�}|dk�rd}nV|dk�rd}nF|dk�r.d}n6|dk�r>d}n&|dk�rd|jdk�r\t	d��t|�}dd�}
|dk�r�|jdk�r�t	d��t
|dd�}|
|�}d}|�d�}|�rFd}
d}||
}g}|�r�|�|d|��||d�}�q�d}|D]N}t�dd|
t|��}|d|dt|�tt|��|7}|d7}�q�|�dd ��p^|�d!d �}|�d"d �}|�d#d�}t|tj��r�|��}|||�d$d�||�d%d�|d|d||||f|_d}|�s�|�r:|jd&k�r�d'|jd|jd}nB|d(k�s|dk�r&d|jd|jd}n|jd|jd}ttj|t|�d)t|�d�}t�||d*d|jd|fg|�dS)+Nzcannot write mode %s as JPEGcSsg|]}tt|���qSr)r<�round)r��xrrrr�msz_save.<locals>.<listcomp>rru�qualityr�subsamplingr�r�ZkeeprgzInvalid quality settingz4:4:4z4:2:2rz4:2:0rz4:1:1rqz3Cannot use 'keep' when original image is not a JPEGc	s(|dkr|St|t�rhzdd�|��D��Wntk
rHtd��Yn X�fdd�tdt��d�D�}t|tttf��r$t|t�r�t	|�}nt|t�r�t|�}dt|�kr�dks�ntd��t
|�D]T\}}z t|�dkr�t�t�d	|�}Wntk
�rtd��Yq�Xt|�||<q�|SdS)
NcSs.g|]&}|�dd�d��D]}t|��qqS)�#rr)�splitr<)r��lineZnumrrrr��s�z3_save.<locals>.validate_qtables.<locals>.<listcomp>zInvalid quantization tablecsg|]}�||d��qS)�@r)r�rA��linesrrr��srr�rz$None or too many quantization tablesre)
�
isinstance�str�
splitlinesr?r^r\�tuple�listr�r�r�r;rf)r�r�r�rr�r�validate_qtables�s4
�



z_save.<locals>.validate_qtablesrSrTr'rlz>Hs��r%rPFrQ�optimizer"ZsmoothZ
streamtyperKr�_rrt)�RAWMODErZr=r�Zencoderinfor�r
r�r<r?r�r�r��getattrr0r5Zpackr\r	rr��tobytesZ
encoderconfigrE�maxrZMAXBLOCK�_save)r�r
r�rzr1rr�r�r�Zpresetr�ZextrarTZICC_OVERHEAD_LENZMAX_BYTES_IN_MARKERZMAX_DATA_BYTES_IN_MARKERZmarkersrarrErPr�r"�bufsizerrrrds�







 

���
���

� rcCsB|��}t�dd||g�zt�|�Wntk
r<YnXdS)NZcjpegr�)Z_dumpr�r�r�r�r�)r�r
r�r�rrr�_save_cjpegsrc	Cstt||�}z0|��}|ddkr8ddlm}|�||�}Wn4ttfk
rRYntk
rnt�	d�YnX|S)Nr�r)�MpoImageFilezTImage appears to be a malformed MPO file, it will be interpreted as a base JPEG file)
rpr�ZMpoImagePluginrZadoptr;�
IndexErrorr>�warnings�warn)r
r�r�Zmpheaderrrrr�jpeg_factory
s
�
r
z.jfifz.jpez.jpgz.jpegz
image/jpeg)NN),rfr�r�r5r�r�rrvrrrZ_binaryrrrrr7r	ZJpegPresetsr
rrGrHrcrirwrorpr�r�r�r�r�r�r�r�rrr
Z
register_openr�Z
register_saveZregister_extensionsZ
register_mimerrrr�<module>"s�z
0�C
J�
�