§
    aÒ³g\”  ã            	      óî  — d dl mZ d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	Z	d dl
mZmZmZmZmZ dud„Zi d	d
“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd “d!d"“d#d$“d%d&“d'd(“d)d*“i d+d,“d-d.“d/d0“d1d2“d3d4“d5d6“d7d8“d9d:“d;d<“d=d>“d?d@“dAdB“dCdD“dEdF“dGdH“dIdJ“dKdL“¥dMdNdOdPdQdRdSdTœ¥ZdvdV„Z G dW„ dXe¦  «        Zdwd]„Z G d^„ d_e¦  «        Z G d`„ dae¦  «        Z G db„ dce¦  «        Z G dd„ de¦  «        Z G df„ dg¦  «        Z G dh„ diee         ¦  «        Zerej        eeef         ef         Z nej        Z  G dj„ dke ¦  «        Z! G dl„ dm¦  «        Z" G dn„ do¦  «        Z#dxdr„Z$ G ds„ dt¦  «        Z%dS )yé    )ÚannotationsN)ÚIOÚTYPE_CHECKINGÚAnyÚ
NamedTupleÚUnionÚsÚstrÚreturnÚbytesc                óF   — t           j        |                      d¦  «        z   S )NÚ	utf_16_be)ÚcodecsÚBOM_UTF16_BEÚencode)r	   s    úK/var/www/html/mpstechhub/venv/lib/python3.11/site-packages/PIL/PdfParser.pyÚencode_textr      s   € ÝÔ §¢¨+Ñ!6Ô!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   â„¢é“   u   ï¬�é”   u   ï¬‚é•   u   Å�é–   u   Å’é—   u   Å é˜   u   Å¸u   Å½u   Ä±u   Å‚u   Å“u   Å¡u   Å¾u   â‚¬)é™   éš   é›   éœ   é�   éž   é    Úbc                ó  — | d t          t          j        ¦  «        …         t          j        k    r4| t          t          j        ¦  «        d …                              d¦  «        S d                     d„ | D ¦   «         ¦  «        S )Nr   Ú c              3  óf   K  — | ],}t                                |t          |¦  «        ¦  «        V — Œ-d S ©N)ÚPDFDocEncodingÚgetÚchr)Ú.0Úbytes     r   ú	<genexpr>zdecode_text.<locals>.<genexpr>E   s8   è è € ÐIÐI¸t•~×)Ò)¨$µ°D±	´	Ñ:Ô:ÐIÐIÐIÐIÐIÐIr   )Úlenr   r   ÚdecodeÚjoin)r?   s    r   Údecode_textrM   A   sq   € ØÐ	#�3�vÔ"Ñ#Ô#Ð	#Ô$­Ô(;Ò;Ð;Ø••VÔ(Ñ)Ô)Ð+Ð+Ô,×3Ò3°KÑ@Ô@Ð@à�wŠwÐIÐIÀqÐIÑIÔIÑIÔIÐIr   c                  ó   — e Zd ZdZdS )ÚPdfFormatErrorz\An error that probably indicates a syntactic or semantic error in the
    PDF file structureN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__© r   r   rO   rO   H   s   € € € € € ðð ð 	€Dr   rO   Ú	conditionÚboolÚerror_messageÚNonec                ó(   — | st          |¦  «        ‚d S rC   )rO   )rU   rW   s     r   Úcheck_format_conditionrZ   O   s"   € Øð ,Ý˜]Ñ+Ô+Ð+ð,ð ,r   c                  ó$   — e Zd ZU ded<   ded<   dS )ÚIndirectReferenceTupleÚintÚ	object_idÚ
generationN)rP   rQ   rR   Ú__annotations__rT   r   r   r\   r\   T   s"   € € € € € € Ø€N€N�NØ€O€O�O€O€Or   r\   c                  ó6   — e Zd Zdd„Zdd„Zdd	„Zdd
„Zdd„ZdS )ÚIndirectReferencer   r
   c                ó&   — | j         › d| j        › d�S )Nú z R©r^   r_   ©Úselfs    r   Ú__str__zIndirectReference.__str__Z   s   € Ø”.Ð6Ð6 4¤?Ð6Ð6Ð6Ð6r   r   c                óP   — |                       ¦   «                              d¦  «        S ©Núus-ascii)rh   r   rf   s    r   Ú	__bytes__zIndirectReference.__bytes__]   s   € Ø�|Š|‰~Œ~×$Ò$ ZÑ0Ô0Ð0r   ÚotherÚobjectrV   c                ó�   — | j         |j         urdS t          |t          ¦  «        sJ ‚|j        | j        k    o|j        | j        k    S )NF)Ú	__class__Ú
isinstancerb   r^   r_   ©rg   rm   s     r   Ú__eq__zIndirectReference.__eq__`   sK   € ØŒ> ¤Ð0Ð0Ø�5Ý˜%Õ!2Ñ3Ô3Ð3Ð3Ð3ØŒ $¤.Ò0ÐX°UÔ5EÈÌÒ5XÐXr   c                ó   — | |k     S rC   rT   rr   s     r   Ú__ne__zIndirectReference.__ne__f   s   € Ø˜E’MÐ"Ð"r   r]   c                ó8   — t          | j        | j        f¦  «        S rC   )Úhashr^   r_   rf   s    r   Ú__hash__zIndirectReference.__hash__i   s   € Ý�T”^ T¤_Ð5Ñ6Ô6Ð6r   N©r   r
   ©r   r   ©rm   rn   r   rV   ©r   r]   )rP   rQ   rR   rh   rl   rs   ru   rx   rT   r   r   rb   rb   Y   s|   € € € € € ð7ð 7ð 7ð 7ð1ð 1ð 1ð 1ðYð Yð Yð Yð#ð #ð #ð #ð7ð 7ð 7ð 7ð 7ð 7r   rb   c                  ó   — e Zd Zdd„ZdS )ÚIndirectObjectDefr   r
   c                ó&   — | j         › d| j        › d�S )Nrd   z objre   rf   s    r   rh   zIndirectObjectDef.__str__n   s   € Ø”.Ð8Ð8 4¤?Ð8Ð8Ð8Ð8r   Nry   )rP   rQ   rR   rh   rT   r   r   r~   r~   m   s(   € € € € € ð9ð 9ð 9ð 9ð 9ð 9r   r~   c                  óN   — e Zd Zdd„Zdd„Zdd	„Zdd
„Zdd„Zdd„Zdd„Z	dd„Z
dS )Ú	XrefTabler   rX   c                óB   — i | _         i | _        ddi| _        d| _        d S )Nr   i   F)Úexisting_entriesÚnew_entriesÚdeleted_entriesÚreading_finishedrf   s    r   Ú__init__zXrefTable.__init__s   s6   € àð 	Ôð ð 	Ôð !" 5˜zˆÔØ %ˆÔÐÐr   Úkeyr]   Úvalueútuple[int, int]c                ód   — | j         r|| j        |<   n
|| j        |<   || j        v r
| j        |= d S d S rC   )r†   r„   rƒ   r…   ©rg   rˆ   r‰   s      r   Ú__setitem__zXrefTable.__setitem__}   sQ   € ØÔ ð 	/Ø$)ˆDÔ˜SÑ!Ð!à).ˆDÔ! #Ñ&Ø�$Ô&Ð&Ð&ØÔ$ SÐ)Ð)Ð)ð 'Ð&r   c                óX   — 	 | j         |         S # t          $ r | j        |         cY S w xY wrC   )r„   ÚKeyErrorrƒ   ©rg   rˆ   s     r   Ú__getitem__zXrefTable.__getitem__…   sD   € ð	.ØÔ# CÔ(Ð(øÝð 	.ð 	.ð 	.ØÔ(¨Ô-Ð-Ð-Ð-ð	.øøøs   ‚ �)¨)c                ó  — || j         v r*| j         |         d         dz   }| j         |= || j        |<   d S || j        v r"| j        |         d         dz   }|| j        |<   d S || j        v r| j        |         }d S d|› d�}t          |¦  «        ‚)Né   z
object ID z+ cannot be deleted because it doesn't exist)r„   r…   rƒ   Ú
IndexError)rg   rˆ   r_   Úmsgs       r   Ú__delitem__zXrefTable.__delitem__‹   s¸   € Ø�$Ô"Ð"Ð"ØÔ)¨#Ô.¨qÔ1°AÑ5ˆJØÔ  Ð%Ø(2ˆDÔ  Ñ%Ð%Ð%Ø�DÔ)Ð)Ð)ØÔ.¨sÔ3°AÔ6¸Ñ:ˆJØ(2ˆDÔ  Ñ%Ð%Ð%Ø�DÔ(Ð(Ð(ØÔ-¨cÔ2ˆJˆJˆJàO˜sÐOÐOÐOˆCÝ˜S‘/”/Ð!r   rV   c                ó&   — || j         v p|| j        v S rC   )rƒ   r„   r�   s     r   Ú__contains__zXrefTable.__contains__™   s   € Ø�dÔ+Ð+ÐF¨s°dÔ6FÐ/FÐFr   c                ó  — t          t          | j                             ¦   «         ¦  «        t          | j                             ¦   «         ¦  «        z  t          | j                             ¦   «         ¦  «        z  ¦  «        S rC   )rJ   Úsetrƒ   Úkeysr„   r…   rf   s    r   Ú__len__zXrefTable.__len__œ   sl   € ÝÝ�Ô%×*Ò*Ñ,Ô,Ñ-Ô-Ý�$Ô"×'Ò'Ñ)Ô)Ñ*Ô*ñ+å�$Ô&×+Ò+Ñ-Ô-Ñ.Ô.ñ/ñ
ô 
ð 	
r   úset[int]c                óê   — t          | j                             ¦   «         ¦  «        t          | j                             ¦   «         ¦  «        z
  t          | j                             ¦   «         ¦  «        z  S rC   )rš   rƒ   r›   r…   r„   rf   s    r   r›   zXrefTable.keys£   s\   € å�Ô%×*Ò*Ñ,Ô,Ñ-Ô-µ°DÔ4H×4MÒ4MÑ4OÔ4OÑ0PÔ0PÑPÝ�Ô ×%Ò%Ñ'Ô'Ñ(Ô(ñ)ð 	)r   Úfú	IO[bytes]c                ó˜  — t          t          | j                             ¦   «         ¦  «        t          | j                             ¦   «         ¦  «        z  ¦  «        }t          t          | j                             ¦   «         ¦  «        ¦  «        }|                     ¦   «         }|                     d¦  «         |�rd }t          |¦  «        D ](\  }}|�	|dz   |k    r|}Œ|d |…         }||d …         } n|}g }|                     d|d         t          |¦  «        fz  ¦  «         |D ]Ÿ}	|	| j        v r$|                     d| j        |	         z  ¦  «         Œ/| 	                    d¦  «        }
t          |	|
k    d|	› d|
› �¦  «         	 |d         }n# t          $ r d}Y nw xY w|                     d|| j        |	         fz  ¦  «         Œ |�°|S )	Ns   xref
r“   s   %d %d
r   s   %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Ú	enumeraterJ   ÚpoprZ   r”   )rg   rŸ   r›   Údeleted_keysÚ	startxrefÚprevÚindexrˆ   Úcontiguous_keysr^   Úthis_deleted_object_idÚnext_in_linked_lists               r   r¤   zXrefTable.write¨   s'  € Ý•c˜$Ô*×/Ò/Ñ1Ô1Ñ2Ô2µS¸Ô9M×9RÒ9RÑ9TÔ9TÑ5UÔ5UÑUÑVÔVˆÝ�c $Ô"6×";Ò";Ñ"=Ô"=Ñ>Ô>Ñ?Ô?ˆØ—F’F‘H”Hˆ	Ø	�Š�	ÑÔÐØñ 	à#ˆDÝ'¨™oœoð 	ð 	‘
��sØ�< 4¨!¡8¨s¢? ?Ø�D�Dà&*¨6¨E¨6¤l�OØ   œ<�DØ�Eà"&�Ø�Ø�GŠG�J /°!Ô"4µc¸/Ñ6JÔ6JÐ!KÑKÑLÔLÐLØ,ð ð �	Ø Ô 0Ð0Ð0Ø—G’GÐ.°Ô1AÀ)Ô1LÑLÑMÔMÐMÐMà-9×-=Ò-=¸aÑ-@Ô-@Ð*Ý*Ø!Ð%;Ò;ðBÀYð Bð BØ)?ðBð Bñô ð ð
0Ø.:¸1¬oÐ+Ð+øÝ%ð 0ð 0ð 0Ø./Ð+Ð+Ð+ð0øøøà—G’GØ*Ø.°Ô0DÀYÔ0OÐPñQñô ð ð ð9 ñ 	ð@ Ðs   ÆFÆFÆFN©r   rX   )rˆ   r]   r‰   rŠ   r   rX   )rˆ   r]   r   rŠ   )rˆ   r]   r   rX   )rˆ   r]   r   rV   r|   )r   r�   )rŸ   r    r   r]   )rP   rQ   rR   r‡   r�   r‘   r–   r˜   rœ   r›   r¤   rT   r   r   r�   r�   r   s¸   € € € € € ð&ð &ð &ð &ð*ð *ð *ð *ð.ð .ð .ð .ð"ð "ð "ð "ðGð Gð Gð Gð
ð 
ð 
ð 
ð)ð )ð )ð )ð
%ð %ð %ð %ð %ð %r   r�   c                  ó¦   — e Zd ZU ded<   dd„Zdd„Zdd„Zdd„Zdd„Ze	dd„¦   «         Z
 e edd¦  «        ¦  «        d„ dD ¦   «         z
  Zdd„ZdS )ÚPdfNamer   ÚnameúPdfName | bytes | strr   rX   c                ó¼   — t          |t          ¦  «        r|j        | _        d S t          |t          ¦  «        r	|| _        d S |                     d¦  «        | _        d S rj   )rq   r°   r±   r   r   )rg   r±   s     r   r‡   zPdfName.__init__Ó   sU   € Ý�d�GÑ$Ô$ð 	0Øœ	ˆDŒIˆIˆIÝ˜�eÑ$Ô$ð 	0ØˆDŒIˆIˆIàŸš JÑ/Ô/ˆDŒIˆIˆIr   r
   c                ó6   — | j                              d¦  «        S rj   )r±   rK   rf   s    r   Úname_as_strzPdfName.name_as_strÛ   s   € ØŒy×Ò 
Ñ+Ô+Ð+r   rm   rn   rV   c                ób   — t          |t          ¦  «        o|j        | j        k    p
|| j        k    S rC   )rq   r°   r±   rr   s     r   rs   zPdfName.__eq__Þ   s1   € å�u�gÑ&Ô&ÐB¨5¬:¸¼Ò+Bð à�d”iÒð	 r   r]   c                ó*   — t          | j        ¦  «        S rC   )rw   r±   rf   s    r   rx   zPdfName.__hash__ã   s   € Ý�D”I‰ŒÐr   c                óJ   — | j         j        › dt          | j        ¦  «        › d�S )Nú(ú))rp   rP   Úreprr±   rf   s    r   Ú__repr__zPdfName.__repr__æ   s&   € Ø”.Ô)Ð>Ð>­D°´©O¬OÐ>Ð>Ð>Ð>r   Údatac                óH   —  | t                                |¦  «        ¦  «        S rC   )Ú	PdfParserÚinterpret_name)Úclsr½   s     r   Úfrom_pdf_streamzPdfName.from_pdf_streamé   s    € àˆs•9×+Ò+¨DÑ1Ô1Ñ2Ô2Ð2r   é!   é   c                ó,   — h | ]}t          |¦  «        ’ŒS rT   )Úord)rG   Úcs     r   ú	<setcomp>zPdfName.<setcomp>í   s   € Ð*IÐ*IÐ*I°a­3¨q©6¬6Ð*IÐ*IÐ*Ir   z#%/()<>[]{}c                óÀ   — t          d¦  «        }| j        D ]9}|| j        v r|                     |¦  «         Œ!|                     d|z  ¦  «         Œ:t          |¦  «        S )Nó   /s   #%02X)Ú	bytearrayr±   Úallowed_charsÚappendÚextendr   )rg   Úresultr?   s      r   rl   zPdfName.__bytes__ï   sf   € Ý˜4‘”ˆØ”ð 	,ð 	,ˆAØ�DÔ&Ð&Ð&Ø—’˜aÑ Ô Ð Ð à—’˜h¨™lÑ+Ô+Ð+Ð+Ý�V‰}Œ}Ðr   N)r±   r²   r   rX   ry   r{   r|   )r½   r   r   r°   rz   )rP   rQ   rR   r`   r‡   rµ   rs   rx   r¼   ÚclassmethodrÂ   rš   ÚrangerÌ   rl   rT   r   r   r°   r°   Ð   sæ   € € € € € € Ø€K€K�Kð0ð 0ð 0ð 0ð,ð ,ð ,ð ,ð ð  ð  ð  ð
ð ð ð ð?ð ?ð ?ð ?ð ð3ð 3ð 3ñ „[ð3ð �C˜˜˜b #™œÑ'Ô'Ð*IÐ*I¸=Ð*IÑ*IÔ*IÑI€Mðð ð ð ð ð r   r°   c                  ó   — e Zd Zdd„ZdS )ÚPdfArrayr   r   c                óL   — dd                      d„ | D ¦   «         ¦  «        z   dz   S )Ns   [ ó    c              3  ó4   K  — | ]}t          |¦  «        V — Œd S rC   )Úpdf_repr)rG   Úxs     r   rI   z%PdfArray.__bytes__.<locals>.<genexpr>û   s(   è è € Ð ;Ð ;°¥¨!¡¤Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;r   s    ])rL   rf   s    r   rl   zPdfArray.__bytes__ú   s-   € Ø�t—y’yÐ ;Ð ;°dÐ ;Ñ ;Ô ;Ñ;Ô;Ñ;¸eÑCÐCr   Nrz   )rP   rQ   rR   rl   rT   r   r   rÓ   rÓ   ù   s.   € € € € € ðDð Dð Dð Dð Dð Dr   rÓ   c                  ó&   — e Zd Zdd„Zdd	„Zdd„ZdS )ÚPdfDictrˆ   r
   r‰   r   r   rX   c                óˆ   — |dk    r#t           j                             | ||¦  «         d S || |                     d¦  «        <   d S )Nr½   rk   )ÚcollectionsÚUserDictÚ__setattr__r   rŒ   s      r   rÞ   zPdfDict.__setattr__  sH   € Ø�&Š=ˆ=ÝÔ ×,Ò,¨T°3¸Ñ>Ô>Ð>Ð>Ð>à+0ˆD�—’˜JÑ'Ô'Ñ(Ð(Ð(r   ústr | time.struct_timec                ó  — 	 | |                      d¦  «                 }n"# t          $ r}t          |¦  «        |‚d }~ww xY wt          |t          ¦  «        rt          |¦  «        }|                     d¦  «        �r|                     d¦  «        r
|dd …         }d}t          |¦  «        dk    rO|d         }t          |dd…         ¦  «        d	z  }t          |¦  «        d
k    r|t          |dd
…         ¦  «        z  }dd t          |¦  «        dz
  …         }t          j        |d t          |¦  «        dz   …         |¦  «        }|dv r9|d	z  }|dk    r|dz  }t          j        t          j        |¦  «        |z   ¦  «        }|S )Nrk   ÚDatezD:é   ÚZé   é   é   é<   é   é   z%Y%m%d%H%M%S)ú+ú-rê   éÿÿÿÿ)r   r�   ÚAttributeErrorrq   r   rM   ÚendswithÚ
startswithrJ   r]   ÚtimeÚstrptimeÚgmtimeÚcalendarÚtimegm)rg   rˆ   r‰   ÚeÚrelationshipÚoffsetÚformats          r   Ú__getattr__zPdfDict.__getattr__  s�  € ð	-Ø˜Ÿš JÑ/Ô/Ô0ˆEˆEøÝð 	-ð 	-ð 	-Ý  Ñ%Ô%¨1Ð,øøøøð	-øøøå�e�UÑ#Ô#ð 	'Ý Ñ&Ô&ˆEØ�<Š<˜ÑÔñ 	EØ×Ò Ñ%Ô%ð "Ø˜a˜b˜bœ	�àˆLÝ�5‰zŒz˜BŠˆØ$ Rœy�Ý˜U 2 b 5œ\Ñ*Ô*¨RÑ/�Ý�u‘:”: ’?�?Ø�c %¨¨2¨¤,Ñ/Ô/Ñ/�Fà#Ð$4¥c¨%¡j¤j°1¡nÐ$4Ô5ˆFÝ”M %Ð(9­#¨f©+¬+¸©/Ð(9Ô":¸FÑCÔCˆEØ˜zÐ)Ð)Ø˜"‘�Ø 3Ò&Ð&Ø˜b‘L�FÝœ¥H¤O°EÑ$:Ô$:¸VÑ$CÑDÔD�Øˆs   ‚ ž
=¨8¸=r   c                óœ  — t          d¦  «        }|                      ¦   «         D ]…\  }}|€Œt          |¦  «        }|                     d¦  «         |                     t	          t          |¦  «        ¦  «        ¦  «         |                     d¦  «         |                     |¦  «         Œ†|                     d¦  «         t	          |¦  «        S )Nó   <<ó   
rÕ   s   
>>)rË   Úitemsr×   rÎ   r   r°   )rg   Úoutrˆ   r‰   s       r   rl   zPdfDict.__bytes__&  s´   € Ý˜ÑÔˆØŸ*š*™,œ,ð 	ð 	‰JˆC�Øˆ}ØÝ˜U‘O”OˆEØ�JŠJ�uÑÔÐØ�JŠJ•u�W S™\œ\Ñ*Ô*Ñ+Ô+Ð+Ø�JŠJ�tÑÔÐØ�JŠJ�uÑÔÐÐØ�
Š
�7ÑÔÐÝ�S‰zŒzÐr   N)rˆ   r
   r‰   r   r   rX   )rˆ   r
   r   rß   rz   )rP   rQ   rR   rÞ   rù   rl   rT   r   r   rÚ   rÚ     sP   € € € € € ð1ð 1ð 1ð 1ðð ð ð ð6ð ð ð ð ð r   rÚ   c                  ó   — e Zd Zd	d„Zd
d„ZdS )Ú	PdfBinaryr½   úlist[int] | bytesr   rX   c                ó   — || _         d S rC   )r½   )rg   r½   s     r   r‡   zPdfBinary.__init__5  s   € ØˆŒ	ˆ	ˆ	r   r   c                óP   — dd                      d„ | j        D ¦   «         ¦  «        z  S )Ns   <%s>r   c              3  ó    K  — | ]	}d |z  V — Œ
dS )s   %02XNrT   ©rG   r?   s     r   rI   z&PdfBinary.__bytes__.<locals>.<genexpr>9  s&   è è € Ð!AÐ!A°! '¨A¡+Ð!AÐ!AÐ!AÐ!AÐ!AÐ!Ar   )rL   r½   rf   s    r   rl   zPdfBinary.__bytes__8  s*   € Ø˜ŸšÐ!AÐ!A°t´yÐ!AÑ!AÔ!AÑAÔAÑAÐAr   N)r½   r  r   rX   rz   )rP   rQ   rR   r‡   rl   rT   r   r   r   r   4  sB   € € € € € ðð ð ð ðBð Bð Bð Bð Bð Br   r   c                  ó   — e Zd Zd
d„Zdd„Zd	S )Ú	PdfStreamÚ
dictionaryrÚ   Úbufr   r   rX   c                ó"   — || _         || _        d S rC   )r  r	  )rg   r  r	  s      r   r‡   zPdfStream.__init__=  s   € Ø$ˆŒØˆŒˆˆr   c                óF  — 	 | j         d         }n# t          $ r
 | j        cY S w xY w|dk    rT	 | j         d         }n# t          $ r | j         d         }Y nw xY wt          j        | j        t          |¦  «        ¬¦  «        S dt          |¦  «        › d�}t          |¦  «        ‚)Ns   Filters   FlateDecodes   DLó   Length)Úbufsizezstream filter z unknown/unsupported)r  r�   r	  ÚzlibÚ
decompressr]   r»   ÚNotImplementedError)rg   ÚfilterÚexpected_lengthr•   s       r   rK   zPdfStream.decodeA  sÇ   € ð	Ø”_ YÔ/ˆFˆFøÝð 	ð 	ð 	Ø”8ˆOˆOˆOð	øøøà�^Ò#Ð#ð=Ø"&¤/°%Ô"8��øÝð =ð =ð =Ø"&¤/°)Ô"<���ð=øøøå”? 4¤8µS¸Ñ5IÔ5IÐJÑJÔJÐJàE¥4¨¡<¤<ÐEÐEÐEˆCÝ% cÑ*Ô*Ð*s   ‚ �$£$®< ¼AÁAN)r  rÚ   r	  r   r   rX   rz   )rP   rQ   rR   r‡   rK   rT   r   r   r  r  <  s<   € € € € € ðð ð ð ð+ð +ð +ð +ð +ð +r   r  rØ   r   c                óž  — | du rdS | du rdS | €dS t          | t          t          t          t          f¦  «        rt          | ¦  «        S t          | t          t          f¦  «        r"t          | ¦  «         	                    d¦  «        S t          | t          j        ¦  «        r.dt          j        d| ¦  «         	                    d¦  «        z   d	z   S t          | t          ¦  «        rt          t          | ¦  «        ¦  «        S t          | t          ¦  «        rt          t          | ¦  «        ¦  «        S t          | t          ¦  «        rt          t!          | ¦  «        ¦  «        S t          | t
          ¦  «        rJ|                      d
d¦  «        } |                      dd¦  «        } |                      d	d¦  «        } d| z   d	z   S t          | ¦  «        S )NTs   trueFs   falses   nullrk   s   (D:z%Y%m%d%H%M%SZó   )ó   \s   \\ó   (ó   \(s   \))rq   r°   rÚ   rÓ   r   r   r]   Úfloatr
   r   rð   Ústruct_timeÚstrftimeÚdictÚlistr×   r   Úreplace)rØ   s    r   r×   r×   Q  s‘  € ØˆD€y€yØˆwØ	
ˆeˆˆØˆxØ	
ˆØˆwÝ	�A�¥­(µIÐ>Ñ	?Ô	?ð Ý�Q‰xŒxˆÝ	�A��U�|Ñ	$Ô	$ð Ý�1‰vŒv�}Š}˜ZÑ(Ô(Ð(Ý	�A•tÔ'Ñ	(Ô	(ð Ø�œ o°qÑ9Ô9×@Ò@ÀÑLÔLÑLÈtÑSÐSÝ	�A•tÑ	Ô	ð Ý•W˜Q‘Z”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Œxˆr   c                  óÂ  — e Zd ZdZ	 	 	 	 	 dƒd„d„Zd…d„Zd†d„Zd‡d„Zd‡d„Zd‡d„Z	d‡d„Z
d‡d„Zdˆd„Zd‰d„Zd‡d„Z	 dŠd‹d"„ZdŒd(„Zd�d)„Zd‡d*„ZedŽd-„¦   «         Zd‡d.„ZdŠd�d1„Zd2Zd3Zd4Zd5Zed6z   Zed7z   Zd8Zd9Zeez   ez   Z e j!        ed:z   ez   d;z   ez   d<z   ez   d=z   ez   d>z   ez   d?z   e j"        ¦  «        Z# e j!        ed:z   ez   d@z   ez   d<z   ez   d=z   ez   d>z   ez   e j"        ¦  «        Z$d‡dA„Z%d�dC„Z& e j!        e¦  «        Z' e j!        edDz   ez   dEz   ¦  «        Z( e j!        edFz   ¦  «        Z) e j!        edGz   ez   ¦  «        Z*e+d‘dK„¦   «         Z, e j!        dL¦  «        Z-e+d’d“dR„¦   «         Z. e j!        edSz   ez   dEz   ¦  «        Z/ e j!        edTz   ez   dEz   ¦  «        Z0 e j!        edUz   ez   dEz   ¦  «        Z1 e j!        edVz   ez   dEz   ¦  «        Z2 e j!        edWz   ez   dEz   ¦  «        Z3 e j!        edXz   ¦  «        Z4 e j!        edYz   ¦  «        Z5 e j!        edZz   ez   d[z   ¦  «        Z6 e j!        ed\z   ¦  «        Z7 e j!        ed]z   ez   d]z   ez   d^z   ez   dEz   ¦  «        Z8 e j!        ed]z   ez   d]z   ez   d_z   ez   dEz   ¦  «        Z9 e j!        ed`z   ez   dEz   ¦  «        Z: e j!        daez   dbz   ez   dcz   ¦  «        Z; e j!        eddz   ¦  «        Z< e j!        edez   ez   dEz   ¦  «        Z=e+	 	 d”d•dl„¦   «         Z> e j!        dm¦  «        Z?i dndo“dpdq“drds“dtdu“dvdw“dada“dEdE“dxdx“ e@dn¦  «        do“ e@dp¦  «        dq“ e@dr¦  «        ds“ e@dt¦  «        du“ e@dv¦  «        dw“ e@da¦  «        da“ e@dE¦  «        dE“ e@dx¦  «        dx“ZAe+d–dz„¦   «         ZB e j!        ed{z   ez   ¦  «        ZC e j!        ed=z   ez   d=z   ez   ez   ¦  «        ZD e j!        d|¦  «        ZEd—d}„ZFd˜d™d~„ZG	 dŠdšd‚„ZHdS )›r¿   z|Based on
    https://www.adobe.com/content/dam/acom/en/devnet/acrobat/pdfs/PDF32000_2008.pdf
    Supports PDF up to 1.4
    Nr   ÚrbÚfilenameú
str | NonerŸ   úIO[bytes] | Noner	  úbytes | bytearray | NoneÚstart_offsetr]   Úmoder
   r   rX   c                óþ  — |r|rd}t          |¦  «        ‚|| _        || _        || _        || _        d| _        d| _        |� |€t          ||¦  «        x| _        }d| _        |�?|                      |¦  «        | _        d| _        |st          |d¦  «        r|j
        | _        i | _        |  |  |  |  | j        r|                      ¦   «          n‹dx| _        | _        t          ¦   «         | _        d | _        t          ¦   «         | _        d | _        t          ¦   «         | _        g | _        g | _        d | _        d | _        i | _        t5          ¦   «         | _        d| j        _        |r|                      ¦   «          d S d S )Nz4specify buf or f or filename, but not both buf and fFTr±   r   )ÚRuntimeErrorr   r	  rŸ   r$  Ú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)rg   r   rŸ   r	  r$  r%  r•   s          r   r‡   zPdfParser.__init__t  s›  € ð ð 	$�1ð 	$ØHˆCÝ˜sÑ#Ô#Ð#Ø ˆŒØ9<ˆŒØˆŒØ(ˆÔØ %ˆÔØ!&ˆÔØÐ A IÝ˜h¨Ñ-Ô-Ð-ˆDŒF�QØ%)ˆDÔ"Øˆ=Ø×-Ò-¨aÑ0Ô0ˆDŒHØ$(ˆDÔ!Øð '¥¨¨6Ñ 2Ô 2ð 'Ø !¤�”Ø<>ˆÔØÐ/ØÐ/ØÐ0ØÐ1ØŒ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œkˆDŒOØ+/ˆŒÔ(Øð 	Ø�MŠM‰OŒOˆOˆOˆOð	ð 	r   c                ó   — | S rC   rT   rf   s    r   Ú	__enter__zPdfParser.__enter__¥  s   € Øˆr   Úargsrn   c                ó.   — |                       ¦   «          d S rC   )Úclose)rg   r?  s     r   Ú__exit__zPdfParser.__exit__¨  s   € Ø�
Š
‰Œˆˆˆr   c                óV   — |                       ¦   «          |                      ¦   «          d S rC   )Ú	close_bufr<  rf   s    r   Ústart_writingzPdfParser.start_writing«  s#   € Ø�ŠÑÔÐØ�Š‰Œˆˆˆr   c                ó„   — t          | j        t          j        ¦  «        r| j                             ¦   «          d | _        d S rC   )rq   r	  ÚmmaprA  rf   s    r   rD  zPdfParser.close_buf¯  s5   € Ý�d”h¥¤	Ñ*Ô*ð 	ØŒH�NŠNÑÔÐØˆŒˆˆr   c                ó    — | j         r|                      ¦   «          | j        �)| j        r$| j                             ¦   «          d | _        d S d S d S rC   )r(  rD  rŸ   r)  rA  rf   s    r   rA  zPdfParser.close´  sU   € ØÔ ð 	Ø�NŠNÑÔÐØŒ6Ð $Ô"8ÐØŒF�LŠL‰NŒNˆNØˆDŒFˆFˆFð ÐÐÐr   c                ób   — | j         €J ‚| j                              dt          j        ¦  «         d S )Nr   )rŸ   ÚseekÚosÚSEEK_ENDrf   s    r   r<  zPdfParser.seek_end»  s.   € ØŒvÐ!Ð!Ð!ØŒ�Š�A•r”{Ñ#Ô#Ð#Ð#Ð#r   c                óL   — | j         €J ‚| j                              d¦  «         d S )Ns	   %PDF-1.4
)rŸ   r¤   rf   s    r   Úwrite_headerzPdfParser.write_header¿  s*   € ØŒvÐ!Ð!Ð!ØŒ�Š�]Ñ#Ô#Ð#Ð#Ð#r   r	   c                óx   — | j         €J ‚| j                              d|› d�                     ¦   «         ¦  «         d S )Nz% ú
)rŸ   r¤   r   )rg   r	   s     r   Úwrite_commentzPdfParser.write_commentÃ  s>   € ØŒvÐ!Ð!Ð!ØŒ�Š�Z˜!�Z�Z�Z×&Ò&Ñ(Ô(Ñ)Ô)Ð)Ð)Ð)r   rb   c                óê  — | j         €J ‚|                      ¦   «          |                      | j                              ¦   «         ¦  «        | _        |                      d¦  «        | _        |                      ¦   «          |                      | j        t          d¦  «        | j        ¬¦  «         |                      | j        t          d¦  «        t          | j
        ¦  «        | j
        ¬¦  «         | j        S )Nr   ó   Catalog)ÚTypeÚPagesó   Pages)rT  ÚCountÚKids)rŸ   Údel_rootÚnext_object_idr£   r2  r8  Úrewrite_pagesÚ	write_objr°   rJ   r6  rf   s    r   Úwrite_catalogzPdfParser.write_catalogÇ  sÌ   € ØŒvÐ!Ð!Ð!Ø�Š‰ŒˆØ×+Ò+¨D¬F¯KªK©M¬MÑ:Ô:ˆŒØ×,Ò,¨QÑ/Ô/ˆŒØ×ÒÑÔÐØ�Š�t”}­7°:Ñ+>Ô+>ÀdÄnˆÑUÔUÐUØ�ŠØŒNÝ˜Ñ"Ô"Ý�d”j‘/”/Ø”ð	 	ñ 	
ô 	
ð 	
ð Œ}Ðr   c                óZ  — g }t          | j        ¦  «        D ]Å\  }}| j        |         }| j        |j        = |                     |t          d¦  «                 ¦  «         || j        vrŒQi }|                     ¦   «         D ]\  }}||| 	                    ¦   «         <   Œ| j
        |d<    | j        di |¤Ž}t          | j        ¦  «        D ]\  }	}
|
|k    r
|| j        |	<   ŒŒÆ|D ]D}|r@| j        |         }|j        | j        v r| j        |j        = |                     dd ¦  «        }|°@ŒEg | _        d S )Ns   ParentÚParentrC   )r¥   r7  r-  r;  r^   rÍ   r°   r6  rý   rµ   r8  Ú
write_pagerE   )rg   Ú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                r   r[  zPdfParser.rewrite_pagesÖ  sƒ  € Ø%'Ð"Ý$ T¤_Ñ5Ô5ð 	1ð 	1‰KˆAˆxØÔ+¨HÔ5ˆIØ” Ô 2Ð3Ø&×-Ò-¨i½À	Ñ8JÔ8JÔ.KÑLÔLÐLØ˜tœzÐ)Ð)àà$&Ð!Ø'ŸošoÑ/Ô/ð Að A‘
��Uà;@Ð% c§o¢oÑ&7Ô&7Ñ8Ð8Ø.2¬nÐ! (Ñ+Ø*˜4œ?ÐIÐIÐ3HÐIÐIˆLÝ#,¨T¬ZÑ#8Ô#8ð 1ð 1‘��<Ø 8Ò+Ð+à$0�D”J˜q‘Møð1ð
 $>ð 	Kð 	KÐØ%ð KØ"&Ô"5Ð6IÔ"J�Ø&Ô0°D´OÐCÐCØœÐ(;Ô(EÐFØ&5×&9Ò&9¸)ÀTÑ&JÔ&JÐ#ð	 &ð Køð
 ˆŒˆˆr   Únew_root_refúIndirectReference | Nonec                óæ  — | j         €J ‚|r|                      ¦   «          || _        | j        r |                      d | j        ¦  «        | _        | j                             | j         ¦  «        }t          | j        ¦  «        }| j        |dœ}| j	        �
| j	        |d<   | j        r
| j        |d<   || _	        | j                              dt          t          |¦  «        ¦  «        z   d|z  z   ¦  «         d S )N)ó   Rootó   Sizeó   Prevó   Infos   trailer
s   
startxref
%d
%%%%EOF)rŸ   rY  r2  r3  r\  r4  r;  r¤   rJ   r9  r   rÚ   )rg   rk  Ú
start_xrefÚnum_entriesr:  s        r   Úwrite_xref_and_trailerz PdfParser.write_xref_and_traileró  s	  € ð ŒvÐ!Ð!Ð!Øð 	)Ø�MŠM‰OŒOˆOØ(ˆDŒMØŒ9ð 	<Ø ŸNšN¨4°´Ñ;Ô;ˆDŒMØ”_×*Ò*¨4¬6Ñ2Ô2ˆ
Ý˜$œ/Ñ*Ô*ˆà”]Ø ð0
ð 0
ˆð Ô(Ð4Ø$(Ô$AˆL˜Ñ!ØŒ9ð 	2Ø$(¤MˆL˜Ñ!Ø(2ˆÔ%ØŒ�ŠØÝ•G˜LÑ)Ô)Ñ*Ô*ñ+à)¨JÑ6ñ7ñ	
ô 	
ð 	
ð 	
ð 	
r   Úrefúint | IndirectReference | NoneÚobjsr   Údict_objc                ó´   — t          |t          ¦  «        r| j        |         n|}d|vrt          d¦  «        |d<   d|vr
| j        |d<    | j        |g|¢R i |¤ŽS )NrT  ó   Pager_  )rq   r]   r6  r°   r8  r\  )rg   ru  rw  rx  Úobj_refs        r   r`  zPdfParser.write_page  sx   € õ &0°µSÑ%9Ô%9ÐB�$”*˜S”/�/¸sˆØ˜Ð!Ð!Ý& wÑ/Ô/ˆH�VÑØ˜8Ð#Ð#Ø!%¤ˆH�XÑØˆtŒ~˜gÐ9¨Ð9Ð9Ð9°Ð9Ð9Ð9r   c                ó²  — | j         €J ‚| j         }|€(|                      |                     ¦   «         ¦  «        }n(|                     ¦   «         |j        f| j        |j        <   |                     t          t          |Ž ¦  «        ¦  «         | 	                    dd ¦  «        }|�t          |¦  «        |d<   |r"|                     t          |¦  «        ¦  «         |D ]$}|                     t          |¦  «        ¦  «         Œ%|�?|                     d¦  «         |                     |¦  «         |                     d¦  «         |                     d¦  «         |S )NÚstreamÚLengths   stream
s   
endstream
s   endobj
)rŸ   rZ  r£   r_   r;  r^   r¤   r   r~   r¦   rJ   r×   )rg   ru  rw  rx  rŸ   r}  Úobjs          r   r\  zPdfParser.write_obj  s>  € ð ŒvÐ!Ð!Ð!ØŒFˆØˆ;Ø×%Ò% a§f¢f¡h¤hÑ/Ô/ˆCˆCà./¯fªf©h¬h¸¼Ð-GˆDŒO˜CœMÑ*Ø	�Š•Õ'¨Ð-Ñ.Ô.Ñ/Ô/Ð/Ø—’˜h¨Ñ-Ô-ˆØÐÝ!$ V¡¤ˆH�XÑØð 	(Ø�GŠG•H˜XÑ&Ô&Ñ'Ô'Ð'Øð 	#ð 	#ˆCØ�GŠG•H˜S‘M”MÑ"Ô"Ð"Ð"ØÐØ�GŠG�KÑ Ô Ð Ø�GŠG�F‰OŒOˆOØ�GŠGÐ$Ñ%Ô%Ð%Ø	�Š�ÑÔÐØˆ
r   c                ól   — | j         €d S | j        | j         j        = | j        | j        d         j        = d S )NrV  )r2  r;  r^   r1  rf   s    r   rY  zPdfParser.del_root/  s8   € ØŒ=Ð ØˆFØŒO˜DœMÔ3Ð4ØŒO˜DœI hÔ/Ô9Ð:Ð:Ð:r   r    úbytes | mmap.mmapc                ó  — t          | d¦  «        r|                      ¦   «         S t          | d¦  «        r|                      ¦   «         S 	 t          j        |                      ¦   «         dt          j        ¬¦  «        S # t          $ r Y dS w xY w)NÚ	getbufferÚgetvaluer   )Úaccessr   )r,  rƒ  r„  rG  ÚfilenoÚACCESS_READÚ
ValueError)rŸ   s    r   r+  zPdfParser.get_buf_from_file5  s‹   € å�1�kÑ"Ô"ð 	Ø—;’;‘=”=Ð Ý�Q˜
Ñ#Ô#ð 	Ø—:’:‘<”<ÐðÝ”y §¢¡¤¨QµtÔ7GÐHÑHÔHÐHøÝð ð ð Ø�s�sðøøøs   Á
2A= Á=
BÂ
Bc                ó@  — | j         €J ‚t          | j         ¦  «        | _        | j        | j        z
  | _        |                      ¦   «          t          | j                             d¦  «        d ud¦  «         | j        d         | _	        | j	        €J ‚| j                             dd ¦  «        | _
        t          |                      | j	        ¦  «        ¦  «        | _        | j
        €t          ¦   «         | _        n,t          |                      | j
        ¦  «        ¦  «        | _        t          d| j        v d¦  «         t          | j        d         dk    d¦  «         t          | j                             d¦  «        d ud	¦  «         t          t          | j        d         t           ¦  «        d
¦  «         | j        d         | _        | j        €J ‚|                      | j        ¦  «        | _        |                      | j        ¦  «        | _        | j        d d …         | _        d S )Nrn  zRoot is missingrq  ó   Typez/Type missing in RootrS  z/Type in Root is not /CatalogrV  z/Pages missing in Rootz+/Pages in Root is not an indirect reference)r	  rJ   r/  r$  r0  Úread_trailerrZ   r:  rE   r2  r4  rÚ   Úread_indirectr1  r3  rq   rb   r8  r5  Úlinearize_page_treer6  r7  rf   s    r   r.  zPdfParser.read_pdf_infoA  sù  € ØŒxÐ#Ð#Ð#Ý" 4¤8™}œ}ˆÔØ"Ô2°TÔ5FÑFˆÔØ×ÒÑÔÐÝØÔ×!Ò! 'Ñ*Ô*°$Ð6Ð8Iñ	
ô 	
ð 	
ð Ô)¨'Ô2ˆŒØŒ}Ð(Ð(Ð(ØÔ)×-Ò-¨g°tÑ<Ô<ˆŒÝ˜D×.Ò.¨t¬}Ñ=Ô=Ñ>Ô>ˆŒ	ØŒ=Ð Ý™	œ	ˆDŒIˆIå × 2Ò 2°4´=Ñ AÔ AÑBÔBˆDŒIÝ˜w¨$¬)Ð3Ð5LÑMÔMÐMÝØŒI�gÔ *Ò,Ð.Mñ	
ô 	
ð 	
õ 	ØŒI�MŠM˜(Ñ#Ô#¨4Ð/Ð1Iñ	
ô 	
ð 	
õ 	Ý�t”y Ô*Õ,=Ñ>Ô>Ø9ñ	
ô 	
ð 	
ð œ 8Ô,ˆŒØŒ~Ð)Ð)Ð)Ø"×0Ò0°´Ñ@Ô@ˆÔØ×-Ò-¨dÔ.AÑBÔBˆŒ
ð œ* Q Q Qœ-ˆŒˆˆr   r÷   ú
int | Nonec                óÞ   — 	 t          t          | j                             ¦   «         ¦  «        dz   d¦  «        }n # t          $ r t          dd¦  «        }Y nw xY w|�|df| j        |j        <   |S )Nr“   r   )rb   Úmaxr;  r›   rˆ  r^   )rg   r÷   Ú	references      r   rZ  zPdfParser.next_object_ide  s€   € ð	0å)­#¨d¬o×.BÒ.BÑ.DÔ.DÑ*EÔ*EÈÑ*IÈ1ÑMÔMˆIˆIøÝð 	0ð 	0ð 	0Ý)¨!¨QÑ/Ô/ˆIˆIˆIð	0øøøàÐØ4:¸A°;ˆDŒO˜IÔ/Ñ0ØÐs   ‚7: º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]+s   trailers   <<(.*>>)s	   startxrefs   ([0-9]+)s   %%EOFó   $s	   <<(.*?>>)c                ó¶  — | j         €J ‚t          | j         ¦  «        dz
  }|| j        k     r| j        }| j                             | j         |¦  «        }t          |d ud¦  «         |}|r9|}| j                             | j         |                     ¦   «         dz   ¦  «        }|°9|s|}|€J ‚|                     d¦  «        }t          |                     d¦  «        ¦  «        | _	        |  
                    |¦  «        | _        t          ¦   «         | _        |                      | j	        ¬¦  «         d| j        v r"|                      | j        d         ¦  «         d S d S )Né @  ztrailer end not foundé   r“   râ   ©Úxref_section_offsetrp  )r	  rJ   r$  Úre_trailer_endÚsearchrZ   ÚstartÚgroupr]   r9  Úinterpret_trailerr:  r�   r;  Úread_xref_tableÚread_prev_trailer)rg   Úsearch_start_offsetÚmÚ
last_matchÚtrailer_datas        r   r‹  zPdfParser.read_trailer—  s`  € ØŒxÐ#Ð#Ð#Ý! $¤(™mœm¨eÑ3ÐØ Ô!2Ò2Ð2Ø"&Ô"3ÐØÔ×&Ò& t¤xÐ1DÑEÔEˆÝ˜q¨˜}Ð.EÑFÔFÐFàˆ
Øð 	EØˆJØÔ#×*Ò*¨4¬8°Q·W²W±Y´YÀ±^ÑDÔDˆAð ð 	Eð ð 	ØˆAØˆ}ˆ}ˆ}Ø—w’w˜q‘z”zˆÝ(+¨A¯GªG°A©J¬J©¬ˆÔ%Ø ×2Ò2°<Ñ@Ô@ˆÔÝ#™+œ+ˆŒØ×Ò°Ô1NÐÑOÔOÐOØ�dÔ'Ð'Ð'Ø×"Ò" 4Ô#4°WÔ#=Ñ>Ô>Ð>Ð>Ð>ð (Ð'r   r™  c                óÂ  — | j         €J ‚|                      |¬¦  «        }| j                             | j         ||dz   …         ¦  «        }t	          |d ud¦  «         |€J ‚|                     d¦  «        }t	          t          |                     d¦  «        ¦  «        |k    d¦  «         |                      |¦  «        }d|v r|                      |d         ¦  «         d S d S )Nr˜  r–  zprevious trailer not foundr“   râ   zGxref section offset in previous trailer doesn't match what was expectedrp  )	r	  rŸ  Úre_trailer_prevr›  rZ   r�  r]   rž  r   )rg   r™  Útrailer_offsetr¢  r¤  r:  s         r   r   zPdfParser.read_prev_trailer®  s÷   € ØŒxÐ#Ð#Ð#Ø×-Ò-ÐBUÐ-ÑVÔVˆØÔ ×'Ò'ØŒH�^ n°uÑ&<Ð<Ô=ñ
ô 
ˆõ 	˜q¨˜}Ð.JÑKÔKÐKØˆ}ˆ}ˆ}Ø—w’w˜q‘z”zˆÝÝ�—’˜‘
”
‰OŒOÐ2Ò2ØUñ	
ô 	
ð 	
ð ×-Ò-¨lÑ;Ô;ˆØ�lÐ"Ð"Ø×"Ò" <°Ô#8Ñ9Ô9Ð9Ð9Ð9ð #Ð"r   s   /([!-$&'*-.0-;=?-Z\\^-z|~]+)(?=r  rû   s   >>r¤  r   údict[bytes, Any]c           	     ó¾  — i }d}	 | j                              ||¦  «        }|sk| j                             ||¦  «        }t          |d uo$|                     ¦   «         t          |¦  «        k    dt          ||d …         ¦  «        z   ¦  «         nu|                      |                     d¦  «        ¦  «        }t          |t          ¦  «        sJ ‚|                      ||                     ¦   «         ¦  «        \  }}|||<   |€n|}Œýt          d|v ot          |d         t          ¦  «        d¦  «         t          d|v ot          |d         t          ¦  «        d¦  «         |S )	Nr   Tz+name not found in trailer, remaining data: r“   ro  z&/Size not in trailer or not an integerrn  z1/Root not in trailer or not an indirect reference)Úre_nameÚmatchÚre_dict_endrZ   ÚendrJ   r»   rÀ   r�  rq   r   Ú	get_valuer]   rb   )rÁ   r¤  Útrailerr÷   r¢  rˆ   r‰   Úvalue_offsets           r   rž  zPdfParser.interpret_trailerÉ  sx  € àˆØˆð	"Ø”×!Ò! ,°Ñ7Ô7ˆAØð Ø”O×)Ò)¨,¸Ñ?Ô?�Ý&Ø˜T�MÐB a§e¢e¡g¤gµ°\Ñ1BÔ1BÒ&BØAÝ˜<¨¨¨Ô0Ñ1Ô1ñ2ñô ð ð
 Ø×$Ò$ Q§W¢W¨Q¡Z¤ZÑ0Ô0ˆCÝ˜c¥5Ñ)Ô)Ð)Ð)Ð)Ø"%§-¢-°¸a¿eºe¹g¼gÑ"FÔ"FÑˆE�<Ø ˆG�C‰LØÐ#ØØ!ˆFð!	"õ" 	Ø�wÐÐD¥:¨g°gÔ.>ÅÑ#DÔ#DØ4ñ	
ô 	
ð 	
õ 	Ø�wÐÐR¥:¨g°gÔ.>Õ@QÑ#RÔ#RØ?ñ	
ô 	
ð 	
ð ˆr   s   ([^#]*)(#([0-9a-fA-F]{2}))?FÚrawÚas_textrV   ústr | bytesc                óš  — d}| j                              |¦  «        D ]‰}|                     d¦  «        rZ||                     d¦  «        t                               |                     d¦  «                             d¦  «        ¦  «        z   z  }Œq||                     d¦  «        z  }ŒŠ|r|                     d¦  «        S t          |¦  «        S )Nr   é   r“   rk   zutf-8)Úre_hashes_in_nameÚfinditerr�  rË   ÚfromhexrK   r   )rÁ   r±  r²  r±   r¢  s        r   rÀ   zPdfParser.interpret_nameê  s¶   € àˆØÔ&×/Ò/°Ñ4Ô4ð 	#ð 	#ˆAØ�wŠw�q‰zŒzð #Ø˜Ÿš ™
œ
¥Y×%6Ò%6°q·w²w¸q±z´z×7HÒ7HÈÑ7TÔ7TÑ%UÔ%UÑUÑU��à˜Ÿš ™
œ
Ñ"��Øð 	Ø—;’;˜wÑ'Ô'Ð'å˜‘;”;Ðr   s   null(?=s   true(?=s   false(?=s   ([-+]?[0-9]+)(?=s)   ([-+]?([0-9]+\.[0-9]*|[0-9]*\.[0-9]+))(?=s   \[ó   ]s   <(s   *)>r  s   ([-+]?[0-9]+)s   R(?=s   obj(?=s	   endobj(?=r  s	   %[^\r\n]*s   )*s   stream\r?\ns   endstream(?=rì   r½   úbytes | bytearray | mmap.mmapÚexpect_indirectÚmax_nestingútuple[Any, int | None]c                óJ  — |dk    rdS | j                              ||¦  «        }|r|                     ¦   «         }| j                             ||¦  «        }|�rKt	          t          |                     d¦  «        ¦  «        dk    d¦  «         t	          t          |                     d¦  «        ¦  «        dk    d¦  «         t	          |d u pS|t          t          |                     d¦  «        ¦  «        t          |                     d¦  «        ¦  «        ¦  «        k    d¦  «         |                      ||                     ¦   «         |dz
  ¬¦  «        \  }}|€|d fS | j	                             ||¦  «        }t	          |d ud	¦  «         |€J ‚||                     ¦   «         fS t	          | d
¦  «         | j
                             ||¦  «        }|rÌt	          t          |                     d¦  «        ¦  «        dk    d¦  «         t	          t          |                     d¦  «        ¦  «        dk    d¦  «         t          t          |                     d¦  «        ¦  «        t          |                     d¦  «        ¦  «        ¦  «        |                     ¦   «         fS | j                             ||¦  «        }|�rÐ|                     ¦   «         }i }| j                             ||¦  «        }|}	|sn|	€J ‚|                      ||	|dz
  ¬¦  «        \  }
}	|	€|d fS |                      ||	|dz
  ¬¦  «        \  }}	|||
<   |	€|d fS | j                             ||	¦  «        }|¯n|                     ¦   «         }	| j                             ||	¦  «        }|rë|                     d¦  «        }|�t          |t
          ¦  «        sd|› d�}t!          |¦  «        ‚||                     ¦   «         |                     ¦   «         |z   …         }| j                             ||                     ¦   «         |z   ¦  «        }t	          |d ud¦  «         |€J ‚|                     ¦   «         }	t%          t'          |¦  «        |¦  «        |	fS t'          |¦  «        |	fS | j                             ||¦  «        }|r¥|                     ¦   «         }g }| j                             ||¦  «        }|}	|sZ|	€J ‚|                      ||	|dz
  ¬¦  «        \  }}	|                     |¦  «         |	€|d fS | j                             ||	¦  «        }|¯Z||                     ¦   «         fS | j                             ||¦  «        }|rd |                     ¦   «         fS | j                             ||¦  «        }|rd|                     ¦   «         fS | j                             ||¦  «        }|rd|                     ¦   «         fS | j                             ||¦  «        }|rIt7          |                      |                     d¦  «        ¦  «        ¦  «        |                     ¦   «         fS | j                             ||¦  «        }|r6t          |                     d¦  «        ¦  «        |                     ¦   «         fS | j                             ||¦  «        }|r6t?          |                     d¦  «        ¦  «        |                     ¦   «         fS | j                              ||¦  «        }|r¥tC          d„ |                     d¦  «        D ¦   «         ¦  «        }tE          |¦  «        dz  dk    r"|                     tG          d¦  «        ¦  «         tB           $                    | %                    d¦  «        ¦  «        |                     ¦   «         fS | j&                             ||¦  «        }|r(|  '                    ||                     ¦   «         ¦  «        S dtQ          |||dz   …         ¦  «        › �}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)r¼  z(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-negativer  z&bad or missing Length in stream dict (rº   zstream end not foundTFc              3  ó"   K  — | ]
}|d v ¯|V — ŒdS )s   0123456789abcdefABCDEFNrT   r  s     r   rI   z&PdfParser.get_value.<locals>.<genexpr>¦  s6   è è € ð #ð #Ø¨Ð.GÐ)GÐ)G�Ð)GÐ)GÐ)GÐ)Gð#ð #r   ó   0rk   zunrecognized object: é    ))Ú
re_commentr«  r­  Úre_indirect_def_startrZ   r]   r�  rb   r®  Úre_indirect_def_endÚre_indirect_referenceÚre_dict_startr¬  Úre_stream_startrE   rq   rO   Úre_stream_endr  rÚ   Úre_array_startÚre_array_endrÍ   Úre_nullÚre_trueÚre_falserª  r°   rÀ   Úre_intÚre_realr  Úre_string_hexrË   rJ   rÆ   r¸  rK   Úre_string_litÚget_literal_stringr»   )rÁ   r½   r÷   r»  r¼  r¢  rn   Úobject_offsetrÏ   Úcurrent_offsetrˆ   r‰   Ú
stream_lenr•   Ústream_dataÚresultsÚ
hex_strings                    r   r®  zPdfParser.get_value(  s  € ð ˜!ÒÐØ�:ØŒN× Ò   vÑ.Ô.ˆØð 	Ø—U’U‘W”WˆFØÔ%×+Ò+¨D°&Ñ9Ô9ˆØñ 	#Ý"Ý�A—G’G˜A‘J”J‘” !Ò#ØNñô ð õ #Ý�A—G’G˜A‘J”J‘” 1Ò$ØMñô ð õ #Ø 4Ð'ð GØ"Ý$¥S¨¯ª°©¬¡_¤_µc¸!¿'º'À!¹*¼*±o´oÑFÔFòGàDñ	ô ð ð %(§M¢MØ�a—e’e‘g”g¨;¸©?ð %2ñ %ô %Ñ!ˆF�Mð Ð$Ø˜t�|Ð#ØÔ'×-Ò-¨d°MÑBÔBˆAÝ"Ø˜�ÐIñô ð ð �=�=�=Ø˜1Ÿ5š5™7œ7�?Ð"ÝØÐÐ!Gñ	
ô 	
ð 	
ð Ô%×+Ò+¨D°&Ñ9Ô9ˆØð 		PÝ"Ý�A—G’G˜A‘J”J‘” !Ò#ØMñô ð õ #Ý�A—G’G˜A‘J”J‘” 1Ò$ØLñô ð õ %¥S¨¯ª°©¬¡_¤_µc¸!¿'º'À!¹*¼*±o´oÑFÔFÈÏÊÉÌÐOÐOØÔ×#Ò# D¨&Ñ1Ô1ˆØñ  	3Ø—U’U‘W”WˆFØ%'ˆFØ”×%Ò% d¨FÑ3Ô3ˆAØ)/ˆNØð @Ø%Ð1Ð1Ð1Ø&)§m¢mØ˜.°kÀA±oð '4ñ 'ô 'Ñ#��^ð "Ð)Ø! 4˜<Ð'Ø(+¯ªØ˜.°kÀA±oð )6ñ )ô )Ñ%��~ð $��s‘Ø!Ð)Ø! 4˜<Ð'Ø”O×)Ò)¨$°Ñ?Ô?�ð ð @ð ŸUšU™WœWˆNØÔ#×)Ò)¨$°Ñ?Ô?ˆAØð 
OØ#ŸZšZ¨	Ñ2Ô2�
ØÐ%­Z¸
ÅCÑ-HÔ-HÐ%ØPÀ:ÐPÐPÐP�CÝ(¨Ñ-Ô-Ð-Ø" 1§5¢5¡7¤7¨Q¯UªU©W¬W°zÑ-AÐ#AÔB�ØÔ%×+Ò+¨D°!·%²%±'´'¸JÑ2FÑGÔG�Ý& q° }Ð6LÑMÔMÐMØ�}�}�}Ø!"§¢¡¤�Ý ¥¨¡¤°+Ñ>Ô>ÀÐNÐNÝ˜6‘?”? NÐ2Ð2ØÔ×$Ò$ T¨6Ñ2Ô2ˆØð 	$Ø—U’U‘W”WˆFØˆGØÔ ×&Ò& t¨VÑ4Ô4ˆAØ#ˆNØð AØ%Ð1Ð1Ð1Ø(+¯ªØ˜.°kÀA±oð )6ñ )ô )Ñ%��~ð —’˜uÑ%Ô%Ð%Ø!Ð)Ø" D˜=Ð(ØÔ$×*Ò*¨4°Ñ@Ô@�ð ð Að ˜AŸEšE™GœGÐ#Ð#ØŒK×Ò˜d FÑ+Ô+ˆØð 	!Ø˜Ÿš™œ�=Ð ØŒK×Ò˜d FÑ+Ô+ˆØð 	!Ø˜Ÿš™œ�=Ð ØŒL×Ò˜t VÑ,Ô,ˆØð 	"Ø˜!Ÿ%š%™'œ'�>Ð!ØŒK×Ò˜d FÑ+Ô+ˆØð 	DÝ˜3×-Ò-¨a¯gªg°a©j¬jÑ9Ô9Ñ:Ô:¸A¿EºE¹G¼GÐCÐCØŒJ×Ò˜T 6Ñ*Ô*ˆØð 	,Ý�q—w’w˜q‘z”z‘?”? A§E¢E¡G¤GÐ+Ð+ØŒK×Ò˜d FÑ+Ô+ˆØð 	.å˜Ÿš ™œÑ$Ô$ a§e¢e¡g¤gÐ-Ð-ØÔ×#Ò# D¨&Ñ1Ô1ˆØð 	Må"ð #ð #ØŸ7š7 1™:œ:ð#ñ #ô #ñ ô ˆJõ �:‰Œ Ñ" aÒ'Ð'à×!Ò!¥# d¡)¤)Ñ,Ô,Ð,Ý×$Ò$ Z×%6Ò%6°zÑ%BÔ%BÑCÔCÀQÇUÂUÁWÄWÐLÐLØÔ×#Ò# D¨&Ñ1Ô1ˆØð 	9Ø×)Ò)¨$°·²±´Ñ8Ô8Ð8àH¥d¨4°¸À"¹Ð0DÔ+EÑ&FÔ&FÐHÐHˆÝ˜SÑ!Ô!Ð!r   sF   (\\[nrtbf()\\])|(\\[0-9]{1,3})|(\\(\r\n|\r|\n))|(\r\n|\r|\n)|(\()|(\))ó   nrü   ó   ró   ó   tó   	ó   bó   ó   fó   r  útuple[bytes, int]c                óè  — d}t          ¦   «         }| j                             ||¦  «        D �]µ}|                     |||                     ¦   «         …         ¦  «         |                     d¦  «        r;|                     | j        |                     d¦  «        d                  ¦  «         �n|                     d¦  «        r?|                     t          |                     d¦  «        dd …         d¦  «        ¦  «         nË|                     d¦  «        rnµ|                     d¦  «        r|                     d¦  «         nŠ|                     d¦  «        r|                     d	¦  «         |dz  }nZ|                     d
¦  «        rE|dk    r%t          |¦  «        | 
                    ¦   «         fc S |                     d¦  «         |dz  }| 
                    ¦   «         }�Œ·d}t          |¦  «        ‚)Nr   r“   râ   é   rµ  é   rü   é   r  é   r  zunfinished literal string)rË   Úre_lit_str_tokenr·  rÎ   rœ  r�  Úescaped_charsrÍ   r]   r   r­  rO   )rÁ   r½   r÷   Únesting_depthrÏ   r¢  r•   s          r   rÒ  zPdfParser.get_literal_stringÊ  s¾  € ð ˆÝ‘”ˆØÔ%×.Ò.¨t°VÑ<Ô<ð 	ñ 	ˆAØ�MŠM˜$˜v¨¯ª©	¬	Ð1Ô2Ñ3Ô3Ð3Ø�wŠw�q‰zŒzð #Ø—’˜cÔ/°·²¸±
´
¸1´Ô>Ñ?Ô?Ð?Ñ?Ø—’˜‘”ð #Ø—’�c !§'¢'¨!¡*¤*¨Q¨R¨R¤.°!Ñ4Ô4Ñ5Ô5Ð5Ð5Ø—’˜‘”ð #ØØ—’˜‘”ð 	#Ø—’˜eÑ$Ô$Ð$Ð$Ø—’˜‘”ð #Ø—’˜dÑ#Ô#Ð#Ø Ñ"��Ø—’˜‘”ð #Ø  AÒ%Ð%Ý  ™=œ=¨!¯%ª%©'¬'Ð1Ð1Ð1Ð1Ø—’˜dÑ#Ô#Ð#Ø Ñ"�Ø—U’U‘W”WˆF‰FØ)ˆÝ˜SÑ!Ô!Ð!r   s   xrefs+   ([0-9]{10}) ([0-9]{5}) ([fn])( \r| \n|\r\n)c                óŠ  — | j         €J ‚d}| j                             | j         || j        z   ¦  «        }t	          |d ud¦  «         |€J ‚|                     ¦   «         }	 | j                             | j         |¦  «        }|st	          |d¦  «         �n0d}|                     ¦   «         }t          |                     d¦  «        ¦  «        }t          |                     d¦  «        ¦  «        }t          |||z   ¦  «        D ]À}| j
                             | j         |¦  «        }t	          |d ud¦  «         |€J ‚|                     ¦   «         }|                     d¦  «        d	k    }|sYt          |                     d¦  «        ¦  «        }	t          |                     d¦  «        ¦  «        |	f}
|| j        vr
|
| j        |<   ŒÁ�Œd|S )
NFzxref section start not foundTzxref subsection start not foundr“   râ   zxref entry not foundrµ  rà  )r	  Úre_xref_section_startr«  r$  rZ   r­  Úre_xref_subsection_startr]   r�  rÑ   Úre_xref_entryr;  )rg   r™  Úsubsection_foundr¢  r÷   Úfirst_objectÚnum_objectsrb  Úis_freer_   Ú	new_entrys              r   rŸ  zPdfParser.read_xref_tableñ  sÀ  € ØŒxÐ#Ð#Ð#Ø ÐØÔ&×,Ò,ØŒHÐ)¨DÔ,=Ñ=ñ
ô 
ˆõ 	˜q¨˜}Ð.LÑMÔMÐMØˆ}ˆ}ˆ}Ø—’‘”ˆð	7ØÔ-×3Ò3°D´H¸fÑEÔEˆAØð Ý&Ø$Ð&Gñô ð ñ Ø#ÐØ—U’U‘W”WˆFÝ˜qŸwšw q™zœz™?œ?ˆLÝ˜aŸgšg a™jœj™/œ/ˆKÝ˜<¨¸Ñ)CÑDÔDð 
7ð 
7�ØÔ&×,Ò,¨T¬X°vÑ>Ô>�Ý& q° }Ð6LÑMÔMÐMØ�}�}�}ØŸš™œ�ØŸ'š' !™*œ*¨Ò,�Øð 7Ý!$ Q§W¢W¨Q¡Z¤Z¡¤�JÝ!$ Q§W¢W¨Q¡Z¤Z¡¤°*Ð =�IØ ¤Ð/Ð/Ø-6˜œ¨Ñ*øñ+	7ð, ˆr   c                ó"  — | j         |d                  \  }}t          ||d         k    d|d         › d|d         › d|› d|› �¦  «         | j        €J ‚|                      | j        || j        z   t          |Ž |¬¦  «        d         }|| j        |<   |S )Nr   r“   zexpected to find generation z for object ID z) in xref table, instead found generation z at offset )r»  r¼  )r;  rZ   r	  r®  r$  rb   r-  )rg   ru  r¼  r÷   r_   r‰   s         r   rŒ  zPdfParser.read_indirect  sÞ   € Ø!œ_¨S°¬VÔ4Ñˆ�
ÝØ˜#˜aœ&Ò ðO¨3¨q¬6ð Oð OÀ#ÀaÄ&ð Oð OØ/9ðOð OØFLðOð Oñ	
ô 	
ð 	
ð
 ŒxÐ#Ð#Ð#Ø—’ØŒHØ�TÔ&Ñ&Ý-¨sÐ3Ø#ð	 ñ 
ô 
ð
 ôˆð $)ˆÔ˜CÑ Øˆr   ÚnodeúPdfDict | Noneúlist[IndirectReference]c                ó*  — |�|n| j         }t          |d         dk    d¦  «         g }|d         D ]b}|                      |¦  «        }|d         dk    r|                     |¦  «         Œ9|                     |                      |¬¦  «        ¦  «         Œc|S )NrŠ  rV  z%/Type of page tree node is not /Pagess   Kidsrz  )rõ  )r5  rZ   rŒ  rÍ   rÎ   r�  )rg   rõ  Ú	page_noder6  ÚkidÚ
kid_objects         r   r�  zPdfParser.linearize_page_tree#  s·   € ð !Ð,�D�D°$Ô2Eˆ	ÝØ�gÔ (Ò*Ð,Sñ	
ô 	
ð 	
ð ˆØ˜WÔ%ð 	Hð 	HˆCØ×+Ò+¨CÑ0Ô0ˆJØ˜'Ô" gÒ-Ð-Ø—’˜SÑ!Ô!Ð!Ð!à—’˜T×5Ò5¸:Ð5ÑFÔFÑGÔGÐGÐGØˆr   )NNNr   r  )r   r!  rŸ   r"  r	  r#  r$  r]   r%  r
   r   rX   )r   r¿   )r?  rn   r   rX   r®   )r	   r
   r   rX   )r   rb   rC   )rk  rl  r   rX   )ru  rv  rw  r   rx  r   r   rb   )ru  rl  rw  r   rx  r   r   rb   )rŸ   r    r   r�  )r÷   rŽ  r   rb   )r™  r]   r   rX   )r¤  r   r   r¨  )F)r±  r   r²  rV   r   r³  )Nrì   )
r½   rº  r÷   r]   r»  rl  r¼  r]   r   r½  )r½   rº  r÷   r]   r   râ  )r™  r]   r   r]   )rì   )ru  rb   r¼  r]   r   r   )rõ  rö  r   r÷  )IrP   rQ   rR   rS   r‡   r>  rB  rE  rD  rA  r<  rN  rQ  r]  r[  rt  r`  r\  rY  Ústaticmethodr+  r.  rZ  Ú	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Ÿ  rŒ  r�  rT   r   r   r¿   r¿   n  s¨  € € € € € ðð ð  $Ø"Ø(,ØØð/ð /ð /ð /ð /ðbð ð ð ðð ð ð ðð ð ð ðð ð ð ð
ð ð ð ð$ð $ð $ð $ð$ð $ð $ð $ð*ð *ð *ð *ðð ð ð ðð ð ð ð< 8<ð
ð 
ð 
ð 
ð 
ð4:ð :ð :ð :ðð ð ð ð0;ð ;ð ;ð ;ð ð	ð 	ð 	ñ „\ð	ð"(ð "(ð "(ð "(ðHð ð ð ð ð !€IØ>€OØ/€JØ?ÐØ$ tÑ+ÐØ%¨Ñ,Ðà 7ÐØ€LØ'¨,Ñ6Ð9RÑR€GØ�R”ZØØ
ñ	à
ñ	ð ñ	ð ñ		ð
 ñ	ð ñ	ð ñ	ð ñ	ð ñ		ð ñ
	ð ñ	ð 	Œ	ñô €Nð !�b”jØØ
ñ	à
ñ	ð ñ	ð ñ		ð
 ñ	ð ñ	ð ñ	ð ñ	ð ñ		ð ñ
	ð 	Œ	ñô €Oð?ð ?ð ?ð ?ð.:ð :ð :ð :ð" (˜RœZÐ(;Ñ<Ô<ÐØˆbŒjØØ
-ñ	.à
ñ	ð ñ	ñô €Gð �B”JÐ2°VÑ;Ñ<Ô<€MØ�"”*Ð0°6Ñ9Ð<OÑOÑPÔP€Kàðð ð ñ „[ðð< #˜œ
Ð#BÑCÔCÐàð
ð 
ð 
ð 
ñ „[ð
ð ˆbŒjÐ,¨{Ñ:¸_ÑLÈuÑTÑUÔU€GØˆbŒjÐ,¨{Ñ:¸_ÑLÈuÑTÑUÔU€GØˆrŒzÐ-°Ñ<¸ÑNÐQVÑVÑWÔW€HØˆRŒZØÐ2Ñ2°_ÑDÀuÑLñô €Fð ˆbŒjØØ
7ñ	8à
ñ	ð ñ	ñô €Gð  �R”ZÐ 3°fÑ <Ñ=Ô=€NØ�2”:Ð1°EÑ9Ñ:Ô:€LØ�B”JØ˜fÑ$Ð'8Ñ8¸7ÑBñô €Mð �B”JÐ2°VÑ;Ñ<Ô<€MØ&˜BœJØØ
ñ	à
ñ	ð ñ	ð ñ		ð
 ñ	ð ñ	ð ñ	ñ	ô 	Ðð '˜BœJØØ
ñ	à
ñ	ð ñ	ð ñ		ð
 ñ	ð ñ	ð ñ	ñ	ô 	Ðð %˜"œ*Ø˜mÑ+¨oÑ=ÀÑEñô Ðð �”ØÐ#Ñ# mÑ3°gÑ=ÀÑFñô €Jð !�b”jÐ!4°Ñ!FÑGÔG€OØ�B”JØÐ.Ñ.°Ñ@À5ÑHñô €Mð ð
 59ØðI"ð I"ð I"ð I"ñ „[ðI"ðV "�r”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ð& ð"ð "ð "ñ „[ð"ð6 '˜BœJÐ':¸XÑ'EÈÑ'OÑPÔPÐØ)˜rœzØØ
ñ	à
ñ	ð ñ	ð ñ		ð
 ñ	ñ ô  Ðð �B”JÐNÑOÔO€Mðð ð ð ðBð ð ð ð ð$ &*ðð ð ð ð ð ð r   r¿   )r	   r
   r   r   )r?   r   r   r
   )rU   rV   rW   r
   r   rX   )rØ   r   r   r   )&Ú
__future__r   ró   r   rÜ   rG  rK  r  rð   r  Útypingr   r   r   r   r   r   rD   rM   r'  rO   rZ   r\   rb   r~   r�   r°   r  rÓ   rÝ   r
   r   Ú	_DictBaserÚ   r   r  r×   r¿   rT   r   r   ú<module>r     sÜ  ðØ "Ð "Ð "Ð "Ð "Ð "à €€€Ø €€€Ø Ð Ð Ð Ø €€€Ø 	€	€	€	Ø 	€	€	€	Ø €€€Ø €€€Ø <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <ð
7ð 7ð 7ð 7ð*Øˆ(ð*àˆ(ð*ð 	ˆ(ð*ð 	ˆ(ð	*ð
 	ˆ(ð*ð 	ˆ(ð*ð 	ˆ(ð*ð 	ˆ(ð*ð 	ˆ(ð*ð 	ˆ(ð*ð 	ˆ(ð*ð 	ˆ(ð*ð 	ˆ(ð*ð 	ˆ(ð*ð 	ˆ(ð*ð  	ˆ(ð!*ð" 	ˆ(ð#*ð *ð$ 	ˆ(ð%*ð& 	ˆ(ð'*ð( 	ˆ(ð)*ð* 	ˆ(ð+*ð, 	ˆ(ð-*ð. 	ˆ(ð/*ð0 	ˆ(ð1*ð2 	ˆ(ð3*ð4 	ˆ(ð5*ð6 	ˆ(ð7*ð8 	ˆ(ð9*ð: 	ˆ(ð;*ð< 	ˆ(ð=*ð> 	ˆ(ð?*ð@ 	ˆ(ðA*ðB 	ˆ(ðC*ðD 	ˆ(ðE*ð *ðF Ø
Ø
Ø
Ø
Ø
Ø
ðS*ð *ð *€ðZJð Jð Jð Jð	ð 	ð 	ð 	ð 	�\ñ 	ô 	ð 	ð,ð ,ð ,ð ,ð
ð ð ð ð ˜Zñ ô ð ð
7ð 7ð 7ð 7ð 7Ð.ñ 7ô 7ð 7ð(9ð 9ð 9ð 9ð 9Ð)ñ 9ô 9ð 9ð
[ð [ð [ð [ð [ñ [ô [ð [ð|&ð &ð &ð &ð &ñ &ô &ð &ðRDð Dð Dð Dð Dˆt�CŒyñ Dô Dð Dð
 ð %ØÔ$ U¨3°¨:Ô%6¸Ð%;Ô<€I€IàÔ$€Ið-ð -ð -ð -ð -ˆiñ -ô -ð -ð`Bð Bð Bð Bð Bñ Bô Bð Bð+ð +ð +ð +ð +ñ +ô +ð +ð*ð ð ð ð:Cð Cð Cð Cð Cñ Cô Cð Cð Cð Cr   