Sindbad~EG File Manager

Current Path : /usr/local/lib/python3.12/site-packages/PIL/__pycache__/
Upload File :
Current File : //usr/local/lib/python3.12/site-packages/PIL/__pycache__/PdfParser.cpython-312.pyc

�

&ٜg\��	��ddlmZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
mZmZm
Z
mZmZdjd�Zidd�dd�d	d
�dd�d
d�dd�dd�dd�dd�dd�dd�dd�dd�dd �d!d"�d#d$�d%d&�id'd(�d)d*�d+d,�d-d.�d/d0�d1d2�d3d4�d5d6�d7d8�d9d:�d;d<�d=d>�d?d@�dAdB�dCdD�dEdF�dGdH��dIdJdKdLdMdNdOdP��ZdkdQ�ZGdR�dSe�ZdldT�ZGdU�dVe�ZGdW�dXe�ZGdY�dZe�ZGd[�d\�ZGd]�d^�ZGd_�d`ee
�Zerej:eeefe
fZ nej:Z Gda�dbe �Z!Gdc�dd�Z"Gde�df�Z#dmdg�Z$Gdh�di�Z%y)n�)�annotationsN)�IO�
TYPE_CHECKING�Any�
NamedTuple�Unionc�F�tj|jd�zS)N�	utf_16_be)�codecs�BOM_UTF16_BE�encode)�ss �8/usr/local/lib/python3.12/site-packages/PIL/PdfParser.py�encode_textrs��������+�!6�6�6����u˘�uˇ�uˆ�u˙�u˝�u˛�u˚�u˜�u•�u†�u‡�u…�u—�u–�uƒ�u⁄�u‹�u›�u−�u‰�u„�u“�u”�u‘�u’�u‚�u™�ufi�ufl�uŁ�uŒ�uŠ�uŸuŽuıułuœušužu€)�������c���|dttj�tjk(r+|ttj�djd�Sdj	d�|D��S)Nr
�c3�ZK�|]#}tj|t|�����%y�w�N)�PDFDocEncoding�get�chr)�.0�bytes  r�	<genexpr>zdecode_text.<locals>.<genexpr>Es"����I�q�t�~�)�)�$��D�	�:�q�s�)+)�lenrr�decode�join)�bs r�decode_textrJAs\���	#�3�v�"�"�#�$��(;�(;�;���V�(�(�)�+�,�3�3�K�@�@��w�w�I�q�I�I�Irc��eZdZdZy)�PdfFormatErrorz\An error that probably indicates a syntactic or semantic error in the
    PDF file structureN)�__name__�
__module__�__qualname__�__doc__�rrrLrLHs���	rrLc��|st|��yr?)rL)�	condition�
error_messages  r�check_format_conditionrUOs����]�+�+�rc�"�eZdZUded<ded<y)�IndirectReferenceTuple�int�	object_id�
generationN)rMrNrO�__annotations__rQrrrWrWTs���N��OrrWc�4�eZdZdd�Zdd�Zd	d�Zd	d�Zd
d�Zy)�IndirectReferencec�:�|j�d|j�d�S)N� z R�rYrZ��selfs r�__str__zIndirectReference.__str__Zs���.�.�!��4�?�?�"3�2�6�6rc�@�|j�jd�S�N�us-ascii)rcr
ras r�	__bytes__zIndirectReference.__bytes__]s���|�|�~�$�$�Z�0�0rc��|j|juryt|t�sJ�|j|jk(xr|j|jk(S)NF)�	__class__�
isinstancer]rYrZ�rb�others  r�__eq__zIndirectReference.__eq__`sM���>�>����0���%�!2�3�3�3����$�.�.�0�X�U�5E�5E����5X�Xrc��||k(Sr?rQrks  r�__ne__zIndirectReference.__ne__fs���E�M�"�"rc�D�t|j|jf�Sr?)�hashrYrZras r�__hash__zIndirectReference.__hash__is���T�^�^�T�_�_�5�6�6rN��return�str�rt�bytes�rl�objectrt�bool�rtrX)rMrNrOrcrgrmrorrrQrrr]r]Ys��7�1�Y�#�7rr]c��eZdZdd�Zy)�IndirectObjectDefc�:�|j�d|j�d�S)Nr_z objr`ras rrczIndirectObjectDef.__str__ns���.�.�!��4�?�?�"3�4�8�8rNrs)rMrNrOrcrQrrr}r}ms��9rr}c�L�eZdZd
d�Zdd�Zdd�Zd
d�Zdd�Zdd�Zdd�Z	dd�Z
y	)�	XrefTablec�@�i|_i|_ddi|_d|_y)NriF)�existing_entries�new_entries�deleted_entries�reading_finishedras r�__init__zXrefTable.__init__ss0���	
��
�	
��!"�5�z��� %��rc��|jr||j|<n||j|<||jvr|j|=yyr?)r�r�r�r��rb�key�values   r�__setitem__zXrefTable.__setitem__}sL��� � �$)�D���S�!�).�D�!�!�#�&��$�&�&�&��$�$�S�)�'rc�^�	|j|S#t$r|j|cYSwxYwr?)r��KeyErrorr��rbr�s  r�__getitem__zXrefTable.__getitem__�s8��	.��#�#�C�(�(���	.��(�(��-�-�	.�s��,�,c�F�||jvr2|j|ddz}|j|=||j|<y||jvr%|j|ddz}||j|<y||jvr|j|}yd|�d�}t|��)N�z
object ID z+ cannot be deleted because it doesn't exist)r�r�r��
IndexError)rbr�rZ�msgs    r�__delitem__zXrefTable.__delitem__�s����$�"�"�"��)�)�#�.�q�1�A�5�J�� � ��%�(2�D� � ��%�
�D�)�)�
)��.�.�s�3�A�6��:�J�(2�D� � ��%�
�D�(�(�
(��-�-�c�2�J��s�e�#N�O�C��S�/�!rc�>�||jvxs||jvSr?)r�r�r�s  r�__contains__zXrefTable.__contains__�s#���d�+�+�+�F�s�d�6F�6F�/F�Frc���tt|jj��t|jj��zt|j
j��z�Sr?)rF�setr��keysr�r�ras r�__len__zXrefTable.__len__�s^�����%�%�*�*�,�-��$�"�"�'�'�)�*�
+��$�&�&�+�+�-�.�
/�
�	
rc���t|jj��t|jj��z
t|jj��zSr?)r�r�r�r�r�ras rr�zXrefTable.keys�sS����%�%�*�*�,�-��D�4H�4H�4M�4M�4O�0P�P��� � �%�%�'�(�)�	)rc��tt|jj��t|jj��z�}tt|jj���}|j�}|j
d�|r�d}t|�D]\}}|�|dz|k(r|}�|d|}||d}n|}g}|j
d|dt|�fz�|D]�}	|	|jvr"|j
d|j|	z��3|jd�}
t|	|
k(d|	�d|
���	|d}|j
d||j|	fz���|r��|S#t$rd}Y�7wxYw)	Nsxref
r�s%d %d
rs%010d %05d n 
z*expected the next deleted object ID to be z, instead found s%010d %05d f 
)�sortedr�r�r�r��tell�write�	enumeraterF�poprUr�)rb�fr��deleted_keys�	startxref�prev�indexr��contiguous_keysrY�this_deleted_object_id�next_in_linked_lists            rr�zXrefTable.write�s����c�$�*�*�/�/�1�2�S��9M�9M�9R�9R�9T�5U�U�V���c�$�"6�"6�";�";�"=�>�?���F�F�H�	�	���	���#�D�'��o�
��s��<�4�!�8�s�?��D�&*�6�E�l�O����<�D��
.�#'����
�G�G�J�/�!�"4�c�/�6J�!K�K�L�,�	��� 0� 0�0��G�G�.��1A�1A�)�1L�L�M�-9�-=�-=�a�-@�*�*�!�%;�;�D�Y�K�P)�)?�(@�B��
0�.:�1�o�+��G�G�*�.��0D�0D�Y�0O�P�Q��-��@���
&�0�./�+�0�s�E>�>F�FN�rt�None)r�rXr��tuple[int, int]rtr�)r�rXrtr�)r�rXrtr�)r�rXrtrzr{)rtzset[int])r��	IO[bytes]rtrX)rMrNrOr�r�r�r�r�r�r�r�rQrrr�r�rs+��&�*�.�"�G�
�)�
%rr�c	���eZdZUded<dd�Zdd�Zdd�Zdd�Zdd�Ze	dd��Z
eed	d
��dD���chc]
}t|���c}}}z
Zdd�Zy
cc}}}w)�PdfNamerw�namec��t|t�r|j|_yt|t�r||_y|j	d�|_yre)rjr�r�rwr
)rbr�s  rr�zPdfName.__init__�s8���d�G�$��	�	�D�I�
��e�
$��D�I����J�/�D�Irc�8�|jjd�Sre)r�rGras r�name_as_strzPdfName.name_as_str�s���y�y���
�+�+rc�z�t|t�xr|j|jk(xs||jk(Sr?)rjr�r�rks  rrmzPdfName.__eq__�s4���u�g�&�B�5�:�:����+B� �
�d�i�i�
�	 rc�,�t|j�Sr?)rqr�ras rrrzPdfName.__hash__�s���D�I�I��rc�`�|jj�dt|j��d�S)N�(�))rirM�reprr�ras r�__repr__zPdfName.__repr__�s)���.�.�)�)�*�!�D����O�+<�A�>�>rc�8�|tj|��Sr?)�	PdfParser�interpret_name)�cls�datas  r�from_pdf_streamzPdfName.from_pdf_stream�s���9�+�+�D�1�2�2r�!�z#%/()<>[]{}c��td�}|jD]6}||jvr|j|��#|j	d|z��8t|�S)N�/s#%02X)�	bytearrayr��
allowed_chars�append�extendrw)rb�resultrIs   rrgzPdfName.__bytes__�sO���4������A��D�&�&�&��
�
�a� ��
�
�h��l�+�	�
�V�}�rN)r�zPdfName | bytes | strrtr�rsrxr{)r�rwrtr�rv)rMrNrOr[r�r�rmrrr��classmethodr�r��range�ordr�rg)rC�cr�s000rr�r��si��
�K�0�,� �
�?��3��3���b�#��'�=�*I�=�a�3�q�6�=�*I�I�M���+Js�A
r�c��eZdZdd�Zy)�PdfArrayc�>�ddjd�|D��zdzS)Ns[ � c3�2K�|]}t|����y�wr?)�pdf_repr)rC�xs  rrEz%PdfArray.__bytes__.<locals>.<genexpr>�s���� ;�d���!��d�s�s ])rHras rrgzPdfArray.__bytes__�s!���t�y�y� ;�d� ;�;�;�e�C�CrNrv)rMrNrOrgrQrrr�r��s��Drr�c�$�eZdZdd�Zdd�Zdd�Zy)�PdfDictc�z�|dk(r"tjj|||�y|||jd�<y)Nr�rf)�collections�UserDict�__setattr__r
r�s   rr�zPdfDict.__setattr__s4���&�=�� � �,�,�T�3��>�+0�D����J�'�(rc�`�	||jd�}t|t�rt|�}|j
d�r�|jd�r|dd}d}t|�dkDr5|d}t|dd�d	z}t|�d
kDr|t|dd
�z
}ddt|�dz
}tj|dt|�dz|�}|d
vr:d	z}|dk(r|dz}tjtj|�|z�}|S#t$r}t|�|�d}~wwxYw)Nrf�DatezD:��Z����<��z%Y%m%d%H%M%S)�+�-r����)r
r��AttributeErrorrjrwrJ�endswith�
startswithrFrX�time�strptime�gmtime�calendar�timegm)rbr�r��e�relationship�offset�formats       r�__getattr__zPdfDict.__getattr__s:��	-�����J�/�0�E��e�U�#���&�E��<�<�������%��a�b�	���L��5�z�B��$�R�y���U�2�b�\�*�R�/���u�:��?��c�%��2�,�/�/�F�#�$4�c�%�j�1�n�5�F��M�M�%�(9�#�f�+��/�":�F�C�E��z�)��"����3�&��b�L�F����H�O�O�E�$:�V�$C�D�����-�	-� ��%�1�,��	-�s�D�	D-�D(�(D-c�H�td�}|j�D]i\}}|��	t|�}|jd�|jt	t|���|jd�|j|��k|jd�t	|�S)N�<<�
r�s
>>)r��itemsr�r�rwr�)rb�outr�r�s    rrgzPdfDict.__bytes__&s��������*�*�,�J�C���}���U�O�E��J�J�u���J�J�u�W�S�\�*�+��J�J�t���J�J�u��'�	�
�
�7���S�z�rN)r�rur�rrtr�)r�rurtzstr | time.struct_timerv)rMrNrOr�r�rgrQrrr�r�s��1��6rr�c��eZdZdd�Zdd�Zy)�	PdfBinaryc��||_yr?)r�)rbr�s  rr�zPdfBinary.__init__5s	����	rc�L�ddjd�|jD��zS)Ns<%s>rc3�&K�|]	}d|z���y�w)s%02XNrQ�rCrIs  rrEz&PdfBinary.__bytes__.<locals>.<genexpr>9s����!A�y�!�'�A�+�y�s�)rHr�ras rrgzPdfBinary.__bytes__8s ������!A�t�y�y�!A�A�A�ArN)r�zlist[int] | bytesrtr�rv)rMrNrOr�rgrQrrr�r�4s
���Brr�c��eZdZdd�Zdd�Zy)�	PdfStreamc� �||_||_yr?)�
dictionary�buf)rbrrs   rr�zPdfStream.__init__=s��$�����rc�F�	|jd}|dk(r:	|jd}tj|jt|���Sdt
|��d�}t|��#t$r|jcYSwxYw#t$r|jd}Y�ywxYw)NsFiltersFlateDecodesDL�Length)�bufsizezstream filter z unknown/unsupported)rr�r�zlib�
decompressrXr��NotImplementedError)rb�filter�expected_lengthr�s    rrGzPdfStream.decodeAs���	��_�_�Y�/�F��^�#�
=�"&�/�/�%�"8���?�?�4�8�8�S��5I�J�J�"�4��<�.�0D�E�C�%�c�*�*���	��8�8�O�	��
�
=�"&�/�/�)�"<��
=�s"�A*�B�*B�B�B �B N)rr�rrwrtr�rv)rMrNrOr�rGrQrrrr<s���
+rrc���|dury|dury|�yt|ttttf�rt|�St|ttf�rt|�jd�St|tj�r+dtjd|�jd�zd	zSt|t�rtt|��St|t�rtt|��St|t�rtt!|��St|t
�r>|j#d
d�}|j#dd
�}|j#d	d�}d|zd	zSt|�S)NTstrueFsfalsesnullrfs(D:z
%Y%m%d%H%M%SZ�)�\s\\�(�\(s\))rjr�r�r�r�rwrX�floatrur
r��struct_time�strftime�dict�listr�r�replace)r�s rr�r�Qs-���D�y��	
�e���	
���	�A���(�I�>�	?��Q�x��	�A��U�|�	$��1�v�}�}�Z�(�(�	�A�t�'�'�	(���
�
�o�q�9�@�@��L�L�t�S�S�	�A�t�	��W�Q�Z� � �	�A�t�	��X�a�[�!�!�	�A�s�	���A��'�'�	�A�u�	�
�I�I�e�W�%��
�I�I�d�F�#��
�I�I�d�F�#���a�x�$����Q�x�rc�N�eZdZdZ					dS											dTd�ZdUd�ZdVd�ZdWd�ZdWd�ZdWd�Z	dWd	�Z
dWd
�ZdXd�ZdYd�Z
dWd
�Z	dZ			d[d�Z								d\d�Z								d]d�ZdWd�Zed^d��ZdWd�ZdZd_d�ZdZdZdZdZedzZedzZdZdZeezezZe jBedzezdzezdzezd zezd!zezd"ze jD�Z#e jBedzezd#zezdzezd zezd!zeze jD�Z$dWd$�Z%d`d%�Z&e jBe�Z'e jBed&zezd'z�Z(e jBed(z�Z)e jBed)zez�Z*e+dad*��Z,e jBd+�Z-e+dbdcd,��Z.e jBed-zezd'z�Z/e jBed.zezd'z�Z0e jBed/zezd'z�Z1e jBed0zezd'z�Z2e jBed1zezd'z�Z3e jBed2z�Z4e jBed3z�Z5e jBed4zezd5z�Z6e jBed6z�Z7e jBed7zezd7zezd8zezd'z�Z8e jBed7zezd7zezd9zezd'z�Z9e jBed:zezd'z�Z:e jBd;ezd<zezd=z�Z;e jBed>z�Z<e jBed?zezd'z�Z=e+		dd									ded@��Z>e jBdA�Z?idBdC�dDdE�dFdG�dHdI�dJdK�d;d;�d'd'�dLdL�e@dB�dC�e@dD�dE�e@dF�dG�e@dH�dI�e@dJ�dK�e@d;�d;�e@d'�d'�e@dL�dL�ZAe+						dfdM��ZBe jBedNzez�ZCe jBed zezd zezez�ZDe jBdO�ZEdgdP�ZFdhdidQ�ZG	dZ			djdR�ZHy)kr�z|Based on
    https://www.adobe.com/content/dam/acom/en/devnet/acrobat/pdfs/PDF32000_2008.pdf
    Supports PDF up to 1.4
    Nc���|r|r
d}t|��||_||_||_||_d|_d|_|�|�t||�x|_}d|_|�<|j|�|_d|_|st|d�r|j|_i|_|||||jr|j�n{dx|_
|_t�|_d|_t�|_d|_t�|_g|_g|_d|_d|_i|_t5�|_d|j6_|r|j;�yy)Nz4specify buf or f or filename, but not both buf and fFTr�r)�RuntimeError�filenamerr��start_offset�should_close_buf�should_close_file�open�get_buf_from_file�hasattrr��cached_objects�
read_pdf_info�file_size_total�file_size_thisr��root�root_ref�info�info_ref�page_tree_root�pages�
orig_pages�	pages_ref�last_xref_section_offset�trailer_dictr��
xref_tabler��seek_end)rbrr�rr�moder�s       rr�zPdfParser.__init__tsM���1�H�C��s�#�#� ��
�9<������(��� %���!&�����A�I��h��-�-�D�F�Q�%)�D�"��=��-�-�a�0�D�H�$(�D�!����6� 2� !����
�<>��������8�8���� �9:�:�D� �4�#6��	�D�I� �D�M��	�D�I� �D�M�")�)�D��24�D�J�79�D�O�!�D�N�,0�D�)�24�D��'�k�D�O�+/����(���M�M�O�
rc��|Sr?rQras r�	__enter__zPdfParser.__enter__�s���rc�$�|j�yr?)�close)rb�argss  r�__exit__zPdfParser.__exit__�s���
�
�rc�D�|j�|j�yr?)�	close_bufr1ras r�
start_writingzPdfParser.start_writing�s�������
�
�rc��t|jtj�r|jj�d|_yr?)rjr�mmapr6ras rr:zPdfParser.close_buf�s)���d�h�h��	�	�*��H�H�N�N����rc��|jr|j�|j�/|jr"|jj	�d|_yyyr?)rr:r�rr6ras rr6zPdfParser.close�sC��� � ��N�N���6�6��$�"8�"8��F�F�L�L�N��D�F�#9�rc�t�|j�J�|jjdtj�y)Nr)r��seek�os�SEEK_ENDras rr1zPdfParser.seek_end�s(���v�v�!�!�!������A�r�{�{�#rc�V�|j�J�|jjd�y)Ns	%PDF-1.4
)r�r�ras r�write_headerzPdfParser.write_header�s"���v�v�!�!�!������]�#rc�z�|j�J�|jjd|�d�j��y)Nz% �
)r�r�r
)rbrs  r�
write_commentzPdfParser.write_comment�s3���v�v�!�!�!������r�!��B�Z�&�&�(�)rc���|j�J�|j�|j|jj��|_|jd�|_|j
�|j|jtd�|j
��|j|j
td�t|j�|j��|jS)Nr�Catalog)�Type�Pages�Pages)rJ�Count�Kids)r��del_root�next_object_idr�r'r-�
rewrite_pages�	write_objr�rFr+ras r�
write_catalogzPdfParser.write_catalog�s����v�v�!�!�!��
�
���+�+�D�F�F�K�K�M�:��
��,�,�Q�/����������t�}�}�7�:�+>�d�n�n��U�����N�N���"��d�j�j�/����		�	
��}�}�rc��g}t|j�D]�\}}|j|}|j|j=|j|t
d��||jvr�Xi}|j�D]\}}|||j�<�|j|d<|jdi|��}t|j�D]\}	}
|
|k(s�||j|	<���|D]X}|s�|j|}|j|jvr|j|j=|jdd�}|r�S�Zg|_y)NsParent�Parentr?)
r�r,r"r0rYr�r�r+r�r�r-�
write_pagerA)
rb�pages_tree_nodes_to_delete�i�page_ref�	page_info�stringified_page_infor�r��new_page_ref�j�cur_page_ref�pages_tree_node_ref�pages_tree_nodes
             rrQzPdfParser.rewrite_pages�sM��%'�"�$�T�_�_�5�K�A�x��+�+�H�5�I����� 2� 2�3�&�-�-�i��	�8J�.K�L��t�z�z�)��$&�!�'�o�o�/�
��U�;@�%�c�o�o�&7�8�0�/3�n�n�!�(�+�*�4�?�?�I�3H�I�L�#,�T�Z�Z�#8���<��8�+�$0�D�J�J�q�M�$9�6�&$>��%�"&�"5�"5�6I�"J��&�0�0�D�O�O�C����(;�(E�(E�F�&5�&9�&9�)�T�&J�#�	&�$>���rc�$�|j�J�|r|j�||_|jr!|j	d|j�|_|jj|j�}t|j�}|j|d�}|j�|j|d<|jr|j
|d<||_	|jjdtt|��zd|zz�y)N)�Root�Size�Prev�Infostrailer
s
startxref
%d
%%%%EOF)r�rOr'r(rRr)r0r�rFr.rwr�)rb�new_root_ref�
start_xref�num_entriesr/s     r�write_xref_and_trailerz PdfParser.write_xref_and_trailer�s����v�v�!�!�!���M�M�O�(�D�M��9�9� �N�N�4����;�D�M��_�_�*�*�4�6�6�2�
��$�/�/�*���]�]� �0
���(�(�4�$(�$A�$A�L��!��9�9�$(�M�M�L��!�(2��%��������G�L�)�*�
+�)�J�6�
7�	
rc��t|t�r|j|n|}d|vrtd�|d<d|vr|j|d<|j
|g|��i|��S)NrJ�PagerU)rjrXr+r�r-rR)rb�ref�objs�dict_obj�obj_refs     rrVzPdfParser.write_page
sd��&0��S�%9�$�*�*�S�/�s����!�&�w�/�H�V���8�#�!%���H�X���t�~�~�g�9��9��9�9rc�n�|j�J�|j}|� |j|j��}n3|j�|jf|j|j
<|j
tt|���|jdd�}|�t|�|d<|r|j
t|��|D]}|j
t|���|�3|j
d�|j
|�|j
d�|j
d�|S)N�stream�Lengthsstream
s
endstream
sendobj
)r�rPr�rZr0rYr�rwr}r�rFr�)rbrlrmrnr�rq�objs       rrRzPdfParser.write_objs����v�v�!�!�!��F�F���;��%�%�a�f�f�h�/�C�./�f�f�h����-G�D�O�O�C�M�M�*�	����'��-�.�/����h��-����!$�V��H�X���
�G�G�H�X�&�'��C�
�G�G�H�S�M�"����
�G�G�K� �
�G�G�F�O�
�G�G�$�%�	������
rc��|j�y|j|jj=|j|jdj=y)NrL)r'r0rYr&ras rrOzPdfParser.del_root/s@���=�=� ���O�O�D�M�M�3�3�4��O�O�D�I�I�h�/�9�9�:rc��t|d�r|j�St|d�r|j�S	tj|j	�dtj
��S#t$rYywxYw)N�	getbuffer�getvaluer)�accessr)r!rvrwr=�fileno�ACCESS_READ�
ValueError)r�s rr zPdfParser.get_buf_from_file5sd���1�k�"��;�;�=� �
�Q�
�
#��:�:�<��
��y�y�����Q�t�7G�7G�H�H���
��
�s�3A.�.	A:�9A:c�P�|j�J�t|j�|_|j|jz
|_|j�t
|jjd�dud�|jd|_	|j�J�|jjdd�|_
t|j|j��|_
|j�t�|_n)t|j|j��|_t
d|jvd�t
|jddk(d�t
|jjd�dud	�t
t|jdt �d
�|jd|_|j"�J�|j|j"�|_|j'|j$�|_|j(dd|_y)NrbzRoot is missingre�Typez/Type missing in RootrIz/Type in Root is not /CatalogrLz/Pages missing in Rootz+/Pages in Root is not an indirect reference)rrFr$rr%�read_trailerrUr/rAr'r)r��
read_indirectr&r(rjr]r-r*�linearize_page_treer+r,ras rr#zPdfParser.read_pdf_infoAs����x�x�#�#�#�"�4�8�8�}���"�2�2�T�5F�5F�F�����������!�!�'�*�$�6�8I�	
��)�)�'�2��
��}�}�(�(�(��)�)�-�-�g�t�<��
��D�.�.�t�}�}�=�>��	��=�=� ��	�D�I��� 2� 2�4�=�=� A�B�D�I��w�$�)�)�3�5L�M���I�I�g��*�,�.M�	
�	��I�I�M�M�(�#�4�/�1I�	
�	��t�y�y��*�,=�>�9�	
����8�,����~�~�)�)�)�"�0�0����@����-�-�d�.A�.A�B��
��*�*�Q�-��rc���	tt|jj��dzd�}|�|df|j|j
<|S#t$rtdd�}Y�6wxYw)Nr�r)r]�maxr0r�r{rY)rbr��	references   rrPzPdfParser.next_object_idesm��	0�)�#�d�o�o�.B�.B�.D�*E��*I�1�M�I���4:�A�;�D�O�O�I�/�/�0����	�	0�)�!�Q�/�I�	0�s�0A�A)�(A)s[][()<>{}/%]s$[][()<>{}/%\000\011\012\014\015\040]s[\000\011\012\014\015\040]s#[\000\011\012\014\015\0400-9a-fA-F]�*�+s[\000\011\014\040]*s[\r\n]+strailers<<(.*>>)s	startxrefs([0-9]+)s%%EOF�$s	<<(.*?>>)c��|j�J�t|j�dz
}||jkr|j}|jj	|j|�}t|dud�|}|r<|}|jj	|j|j
�dz�}|r�<|s|}|�J�|jd�}t|jd��|_	|j|�|_t�|_
|j|j��d|jvr|j|jd�yy)N�@ztrailer end not found�r�r���xref_section_offsetrd)rrFr�re_trailer_end�searchrU�start�grouprXr.�interpret_trailerr/r�r0�read_xref_table�read_prev_trailer)rb�search_start_offset�m�
last_match�trailer_datas     rr~zPdfParser.read_trailer�s7���x�x�#�#�#�!�$�(�(�m�e�3����!2�!2�2�"&�"3�"3�����&�&�t�x�x�1D�E���q��}�.E�F��
���J��#�#�*�*�4�8�8�Q�W�W�Y��^�D�A����A��}��}��w�w�q�z��(+�A�G�G�A�J���%� �2�2�<�@���#�+�������1N�1N��O��d�'�'�'��"�"�4�#4�#4�W�#=�>�(rc��|j�J�|j|��}|jj|j||dz�}t	|dud�|�J�|jd�}t	t
|jd��|k(d�|j|�}d|vr|j|d�yy)Nr�r�zprevious trailer not foundr�r�zGxref section offset in previous trailer doesn't match what was expectedrd)	rr��re_trailer_prevr�rUr�rXr�r�)rbr��trailer_offsetr�r�r/s      rr�zPdfParser.read_prev_trailer�s����x�x�#�#�#��-�-�BU�-�V��� � �'�'��H�H�^�n�u�&<�=�
��	�q��}�.J�K��}��}��w�w�q�z��������
�O�2�2�U�	
��-�-�l�;���l�"��"�"�<��#8�9�#rs/([!-$&'*-.0-;=?-Z\\^-z|~]+)(?=rr�s>>c	�H�i}d}	|jj||�}|sX|jj||�}t|duxr|j	�t|�k(dt
||d�z�n`|j|jd��}t|t�sJ�|j||j	��\}}|||<|�n|}��td|vxrt|dt�d�td|vxrt|dt�d�|S)Nrz+name not found in trailer, remaining data: r�rcz&/Size not in trailer or not an integerrbz1/Root not in trailer or not an indirect reference)�re_name�match�re_dict_endrU�endrFr�r�r�rjrw�	get_valuerXr])r�r��trailerr�r�r�r��value_offsets        rr�zPdfParser.interpret_trailer�s1����������!�!�,��7�A���O�O�)�)�,��?��&��T�M�B�a�e�e�g��\�1B�&B�A��<���0�1�2��
��$�$�Q�W�W�Q�Z�0�C��c�5�)�)�)�"%�-�-��a�e�e�g�"F��E�<� �G�C�L��#��!�F�!�"	��w��D�:�g�g�.>��#D�4�	
�	��w��R�:�g�g�.>�@Q�#R�?�	
��rs([^#]*)(#([0-9a-fA-F]{2}))?c�^�d}|jj|�D]p}|jd�rI||jd�tj	|jd�jd��zz
}�]||jd�z
}�r|r|jd�St
|�S)Nr�r�rfzutf-8)�re_hashes_in_name�finditerr�r��fromhexrGrw)r��raw�as_textr�r�s     rr�zPdfParser.interpret_name�s������&�&�/�/��4�A��w�w�q�z������
�Y�%6�%6�q�w�w�q�z�7H�7H��7T�%U�U�U�������
�"��	5�
��;�;�w�'�'���;�rsnull(?=strue(?=sfalse(?=s([-+]?[0-9]+)(?=s)([-+]?([0-9]+\.[0-9]*|[0-9]*\.[0-9]+))(?=s\[�]s<(s*)>rs
([-+]?[0-9]+)sR(?=sobj(?=s	endobj(?=rs	%[^\r\n]*s)*sstream\r?\nsendstream(?=c�
�|dk(ry|jj||�}|r|j�}|jj||�}|�rt	t|j
d��dkDd�t	t|j
d��dk\d�t	|duxs?|tt|j
d��t|j
d���k(d�|j||j�|dz
��\}}|�|dfS|jj||�}t	|dud	�|�J�||j�fSt	|d
�|jj||�}|r�t	t|j
d��dkDd�t	t|j
d��dk\d�tt|j
d��t|j
d���|j�fS|jj||�}|�r�|j�}i}|jj||�}|}	|sh|	�J�|j||	|dz
��\}
}	|	�|dfS|j||	|dz
��\}}	|||
<|	�|dfS|jj||	�}|s�h|j�}	|jj||	�}|r�|jd
�}|�t|t
�sd|�d�}
t!|
��||j�|j�|z}|j"j||j�|z�}t	|dud�|�J�|j�}	t%t'|�|�|	fSt'|�|	fS|j(j||�}|r�|j�}g}|j*j||�}|}	|sT|	�J�|j||	|dz
��\}}	|j-|�|	�|dfS|j*j||	�}|s�T||j�fS|j.j||�}|rd|j�fS|j0j||�}|rd|j�fS|j2j||�}|rd|j�fS|j4j||�}|r9t7|j9|j
d���|j�fS|j:j||�}|r*t|j
d��|j�fS|j<j||�}|r*t?|j
d��|j�fS|j@j||�}|r�tCd�|j
d�D��}tE|�dzdk(r|j-tGd��tBjI|jKd��|j�fS|jLj||�}|r |jO||j��SdtQ|||dz���}
t!|
��)Nr)NNr�z<indirect object definition: object ID must be greater than 0r�z;indirect object definition: generation must be non-negativez2indirect object definition different than expected)�max_nestingz(indirect object definition end not foundz$indirect object definition not foundz;indirect object reference: object ID must be greater than 0z:indirect object reference: generation must be non-negativerz&bad or missing Length in stream dict (r�zstream end not foundTFc3�*K�|]}|dvs�|���
y�w)s0123456789abcdefABCDEFNrQr�s  rrEz&PdfParser.get_value.<locals>.<genexpr>�s����#�%�a��.G�)G��:�s�	��0rfzunrecognized object: � ))�
re_commentr�r��re_indirect_def_startrUrXr�r]r��re_indirect_def_end�re_indirect_reference�
re_dict_startr��re_stream_startrArjrL�
re_stream_endrr��re_array_start�re_array_endr��re_null�re_true�re_falser�r�r��re_int�re_realr�
re_string_hexr�rFr�r�rG�
re_string_lit�get_literal_stringr�)r�r�r��expect_indirectr�r�ry�
object_offsetr��current_offsetr�r��
stream_lenr��stream_data�results�
hex_strings                 rr�zPdfParser.get_value(s����!����N�N� � ��v�.����U�U�W�F��%�%�+�+�D�&�9���"��A�G�G�A�J��!�#�N�
�
#��A�G�G�A�J��1�$�M�
�
#��4�'�G�"�$�S������_�c�!�'�'�!�*�o�F�G�D�	
�%(�M�M��a�e�e�g�;��?�%2�%�!�F�M��$��t�|�#��'�'�-�-�d�M�B�A�"���
�I�
��=� �=��1�5�5�7�?�"����!G�	
�
�%�%�+�+�D�&�9���"��A�G�G�A�J��!�#�M�
�
#��A�G�G�A�J��1�$�L�
�%�S������_�c�!�'�'�!�*�o�F�����O�O����#�#�D�&�1����U�U�W�F�%'�F����%�%�d�F�3�A�)/�N��%�1�1�1�&)�m�m��.�k�A�o�'4�'�#��^�"�)�!�4�<�'�(+�
�
��.�k�A�o�)6�)�%��~�$��s��!�)�!�4�<�'��O�O�)�)�$��?����U�U�W�N��#�#�)�)�$��?�A��#�Z�Z�	�2�
��%�Z�
�C�-H�B�:�,�a�P�C�(��-�-�"�1�5�5�7�Q�U�U�W�z�-A�B���%�%�+�+�D�!�%�%�'�J�2F�G��&�q��}�6L�M��}�$�}�!"����� ����+�>��N�N��6�?�N�2�2����$�$�T�6�2����U�U�W�F��G�� � �&�&�t�V�4�A�#�N��%�1�1�1�(+�
�
��.�k�A�o�)6�)�%��~����u�%�!�)�"�D�=�(��$�$�*�*�4��@����A�E�E�G�#�#��K�K���d�F�+��������=� ��K�K���d�F�+��������=� ��L�L���t�V�,����!�%�%�'�>�!��K�K���d�F�+����3�-�-�a�g�g�a�j�9�:�A�E�E�G�C�C��J�J���T�6�*����q�w�w�q�z�?�A�E�E�G�+�+��K�K���d�F�+���������$�a�e�e�g�-�-����#�#�D�&�1���"�#��7�7�1�:�#��J��:���"�a�'��!�!�#�d�)�,��$�$�Z�%6�%6�z�%B�C�Q�U�U�W�L�L����#�#�D�&�1����)�)�$�����8�8�%�d�4���"��+E�&F�%G�H���S�!�!rsF(\\[nrtbf()\\])|(\\[0-9]{1,3})|(\\(\r\n|\r|\n))|(\r\n|\r|\n)|(\()|(\))�nr��r�
�t�	�b��f�rc�,�d}t�}|jj||�D�]\}|j|||j	��|jd�r1|j|j|jd�d�n�|jd�r.|jt|jd�ddd��n�|jd�rn�|jd�r|jd�nq|jd�r|jd	�|dz
}nI|jd
�r8|dk(rt|�|j�fcS|jd�|dz}|j�}��_d}t|��)
Nrr�r��r��r��r�rzunfinished literal string)r��re_lit_str_tokenr�r�r�r��
escaped_charsr�rXrwr�rL)r�r�r��
nesting_depthr�r�r�s       rr�zPdfParser.get_literal_string�sA���
�����%�%�.�.�t�V�<�A��M�M�$�v����	�2�3��w�w�q�z��
�
�c�/�/�����
�1�
�>�?�������
�
�c�!�'�'�!�*�Q�R�.�!�4�5�������������
�
�e�$�������
�
�d�#���"�
������ �A�%� ��=�!�%�%�'�1�1��
�
�d�#���"�
��U�U�W�F�%=�&*���S�!�!rsxrefs+([0-9]{10}) ([0-9]{5}) ([fn])( \r| \n|\r\n)c�Z�|j�J�d}|jj|j||jz�}t	|dud�|�J�|j�}	|jj|j|�}|st	|d�	|Sd}|j�}t|jd��}t|jd��}t|||z�D]�}|jj|j|�}t	|dud�|�J�|j�}|jd�d	k(}|r�bt|jd��}	t|jd��|	f}
||jvs��|
|j|<����F)
NFzxref section start not foundTzxref subsection start not foundr�r�zxref entry not foundr�r�)r�re_xref_section_startr�rrUr��re_xref_subsection_startrXr�r��
re_xref_entryr0)rbr��subsection_foundr�r��first_object�num_objectsrX�is_freerZ�	new_entrys           rr�zPdfParser.read_xref_table�s����x�x�#�#�#� ���&�&�,�,��H�H�)�D�,=�,=�=�
��	�q��}�.L�M��}��}��������-�-�3�3�D�H�H�f�E�A��&�$�&G��� �
� $���U�U�W�F��q�w�w�q�z�?�L��a�g�g�a�j�/�K��<���)C�D���&�&�,�,�T�X�X�v�>��&�q��}�6L�M��}�$�}�������'�'�!�*��,���!$�Q�W�W�Q�Z��J�!$�Q�W�W�Q�Z��*� =�I�����/�-6�����*�E�rc��|j|d\}}t||dk(d|d�d|d�d|�d|���|j�J�|j|j||jzt|�|��d}||j|<|S)Nrr�zexpected to find generation z for object ID z) in xref table, instead found generation z at offset )r�r�)r0rUrr�rr]r")rbrlr�r�rZr�s      rrzPdfParser.read_indirects���!�_�_�S��V�4���
���#�a�&� �*�3�q�6�(�/�#�a�&��J/�/9�l�+�f�X�
O�	
�
�x�x�#�#�#�����H�H��T�&�&�&�-�s�3�#�	�
�
�
��$)����C� ��rc��|�|n|j}t|ddk(d�g}|dD]N}|j|�}|ddk(r|j|��.|j	|j|����P|S)Nr}rLz%/Type of page tree node is not /PagessKidsrk)�node)r*rUrr�r�r�)rbr��	page_noder+�kid�
kid_objects      rr�zPdfParser.linearize_page_tree#s���!�,�D�$�2E�2E�	���g��(�*�,S�	
����W�%�C��+�+�C�0�J��'�"�g�-����S�!����T�5�5�:�5�F�G�&��r)NNNr�rb)rz
str | Noner�zIO[bytes] | Nonerzbytes | bytearray | NonerrXr2rurtr�)rtr�)r7ryrtr�r�)rrurtr�)rtr]r?)rf�IndirectReference | Nonertr�)rlzint | IndirectReference | Nonermrrnrrtr])rlr�rmrrnrrtr])r�r�rtzbytes | mmap.mmap)r�z
int | Nonertr])r�rXrtr�)r�rwrtzdict[bytes, Any])F)r�rwr�rzrtzstr | bytes)Nr�)
r��bytes | bytearray | mmap.mmapr�rXr�r�r�rXrtztuple[Any, int | None])r�r�r�rXrtztuple[bytes, int])r�rXrtrX)r�)rlr]r�rXrtr)r�zPdfDict | Nonertzlist[IndirectReference])IrMrNrOrPr�r4r8r;r:r6r1rDrGrSrQrirVrRrO�staticmethodr r#rP�	delimiter�delimiter_or_ws�
whitespace�whitespace_or_hex�whitespace_optional�whitespace_mandatory�whitespace_optional_no_nl�newline_only�newline�re�compile�DOTALLr�r�r~r��re_whitespace_optionalr�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�rr�rQrrr�r�ns|��� $�"�(,���
/��/��/�&�	/�
�/��
/�
�/�b����
�$�$�*�
��<8<�
�4�
�	
�
�4:�1�:�:=�:�KN�:�	�:��+��47��EH��	��0;��	��	�"(�H�!�I�>�O�/�J�?��$�t�+��%��,�� 7���L�'�,�6�9R�R�G��R�Z�Z��
�	�
�	��	��		�
�	��
	��	��	��		��
	��	�	�	�	��N�!�b�j�j��
�	�
�	��	��		�
�	��
	��	��	��		��
	�	�	�	�
�O�?�.:�"(�R�Z�Z�(;�<���b�j�j��
-�	.�
�	��	��G��B�J�J�2�V�;�<�M��"�*�*�0�6�9�<O�O�P�K�����<#��
�
�#B�C���
��
��b�j�j�,�{�:�_�L�u�T�U�G��b�j�j�,�{�:�_�L�u�T�U�G��r�z�z�-��<��N�QV�V�W�H�
�R�Z�Z��2�2�_�D�u�L��F��b�j�j��
7�	8�
�	��	��G� �R�Z�Z� 3�f� <�=�N��2�:�:�1�E�9�:�L��B�J�J��f�$�'8�8�7�B��M��B�J�J�2�V�;�<�M�&�B�J�J��
�	�
�	��	��		�
�	��
	��	�	��'�B�J�J��
�	�
�	��	��		�
�	��
	��	�	��%�"�*�*��m�+�o�=��E�������
�#�#�m�3�g�=��F��J�!�b�j�j�!4��!F�G�O��B�J�J��.�.��@�5�H��M��
59��I"�+�I"��I"�2�	I"�
�I"�
 �
I"��I"�V"�r�z�z�R�����e���e��	
�e��	
�e�	�
	
�e��	
�d�
�	
�d��	�u��	�D�	�5��	�D�	�5��	�D�	�5��	�D�	�5��	�D�	�5��	�D�	�4��	�D�	�4�� 	�E�
�E�!�M�&�"�0�"�:=�"�	�"��"�6'�B�J�J�':�X�'E��'O�P��)�r�z�z��
�	�
�	��	��		�
�	� ���B�J�J�N�O�M��B�$&*��"��	 �rr�)rrurtrw)rIrwrtru)rSrzrTrurtr�)r�rrtrw)&�
__future__rr�rr�r=rAr�r�r�typingrrrrrrr@rJrrLrUrWr]r}r�r�rr�r�rurw�	_DictBaser�r�rr�r�rQrr�<module>r�s���"��
���	�	���<�<�
7�*��(�*��(�*�	�(�*�	�(�	*�
	�(�*�	�(�
*�	�(�*�	�(�*�	�(�*�	�(�*�	�(�*�	�(�*�	�(�*�	�(�*�	�(�*� 	�(�!*�"	�(�#*�$	�(�%*�&	�(�'*�(	�(�)*�*	�(�+*�,	�(�-*�.	�(�/*�0	�(�1*�2	�(�3*�4	�(�5*�6	�(�7*�8	�(�9*�:	�(�;*�<	�(�=*�>	�(�?*�@	�(�A*�B	�(�C*�D	�(�E*�F�
�
�
�
�
�
�S*��ZJ�	�\�	�,�
�Z��
7�.�7�(9�)�9�
[�[�|&�&�RD�t�C�y�D�
��$�$�U�3��:�%6��%;�<�I��$�$�I�-�i�-�`B�B�+�+�*�:C�Cr

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists