Ë
    ìì�iWh  ã                   óæ  — d dl Z d dlZd dlZ	 d dlZ	 d dlmZ d dlmZ d dl	m
Z
 ddlmZ ddlmZ dd	lmZ dd
lmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlm Z  ddl!m"Z" ddl!m#Z# ddl!m$Z$  G d„ de«      Z% G d„ de«      Z& G d„ d e«      Z' G d!„ d"e«      Z( G d#„ d$e(«      Z) G d%„ d&e(«      Z* ed'«      Z+ ed(«      Z, ed)«      Z- G d*„ d+«      Z. G d,„ d-e.«      Z/ G d.„ d/e/«      Z0 G d0„ d1e.«      Z1 G d2„ d3«      Z2 G d4„ d5e2«      Z3 G d6„ d7e3«      Z4 G d8„ d9«      Z5y# e$ r d dlZY �ŒGw xY w# e$ r dxZZ
ddlmZ Y �ŒJw xY w):é    N)ÚARC4)ÚAES)ÚSHA256é   )Úarcfour)ÚPSEOF)Úliteral_name)ÚLIT)ÚKWD)ÚSTRICT)ÚPDFException)ÚPDFTypeError)Ú	PDFStream)ÚPDFObjectNotFound)Údecipher_all)Ú	int_value)Úbytes_value)Ú
list_value)Ú
dict_value)Ústream_value)ÚPDFSyntaxError)ÚPDFStreamParser)Úchoplist)Únunpack)Údecode_textc                   ó   — e Zd Zy)ÚPDFNoValidXRefN©Ú__name__Ú
__module__Ú__qualname__© ó    úy/var/www/ITT-ServiceAPI-Services/ITT-Document-Scan/mrzscanner/mrzenv/lib/python3.12/site-packages/pdfminer/pdfdocument.pyr   r   (   ó   „ Ør#   r   c                   ó   — e Zd Zy)ÚPDFNoOutlinesNr   r"   r#   r$   r'   r'   +   r%   r#   r'   c                   ó   — e Zd Zy)ÚPDFDestinationNotFoundNr   r"   r#   r$   r)   r)   .   r%   r#   r)   c                   ó   — e Zd Zy)ÚPDFEncryptionErrorNr   r"   r#   r$   r+   r+   1   r%   r#   r+   c                   ó   — e Zd Zy)ÚPDFPasswordIncorrectNr   r"   r#   r$   r-   r-   4   r%   r#   r-   c                   ó   — e Zd Zy)ÚPDFTextExtractionNotAllowedNr   r"   r#   r$   r/   r/   7   r%   r#   r/   ÚObjStmÚXRefÚCatalogc                   ó"   — e Zd ZdZd„ Zd„ Zd„ Zy)ÚPDFBaseXRefFc                 ó   — t         ‚©N)ÚNotImplementedError©Úselfs    r$   Úget_trailerzPDFBaseXRef.get_trailerF   s   € Ü!Ð!r#   c                 ó   — g S r6   r"   r8   s    r$   Ú
get_objidszPDFBaseXRef.get_objidsI   s   € Øˆ	r#   c                 ó   — t        |«      ‚r6   )ÚKeyError©r9   Úobjids     r$   Úget_poszPDFBaseXRef.get_posO   s   € Ü�u‹oÐr#   N)r   r    r!   Údebugr:   r<   rA   r"   r#   r$   r4   r4   B   s   „ à€Eò"òór#   r4   c                   óF   — e Zd Zd„ Zd„ Zd„ Z ed«      Zd„ Zd„ Z	d„ Z
d„ Zy	)
ÚPDFXRefc                 ó    — i | _         i | _        y r6   )ÚoffsetsÚtrailerr8   s    r$   Ú__init__zPDFXRef.__init__W   s   € ØˆŒØˆŒØr#   c                 ó<   — d| j                   j                  «       z  S )Nz<PDFXRef: offsets=%r>©rF   Úkeysr8   s    r$   Ú__repr__zPDFXRef.__repr__\   s   € Ø&¨$¯,©,×*;Ñ*;Ó*=Ñ>Ð>r#   c                 ó¦  — 	 	 |j                  «       \  }}|j                  «       sŒ&	 |st        d|z  «      ‚|j	                  d«      r|j                  |«       nê|j                  «       j                  d«      }t        |«      dk7  rt        d|›d|›�«      ‚	 t        t        |«      \  }}t        |||z   «      D ]„  }	 |j                  «       \  }}|j                  «       j                  d«      }t        |«      d	k7  rt        d
|›d|›�«      ‚|\  }}	}
|
dk7  rŒad t        |«      t        |	«      f| j                  |<   Œ† �ŒC| j                  r"t        j                  d| j                  z  «       | j!                  |«       y # t        $ r t        d«      ‚w xY w# t        $ r t        d|›d|›�«      ‚w xY w# t        $ r t        d«      ‚w xY w)Nz Unexpected EOF - file corrupted?zPremature eof: %ró   traileró    é   zTrailer not found: z: line=zInvalid line: é   zInvalid XRef format: z, line=ó   nzxref objects: %r)ÚnextlineÚstripr   r   Ú
startswithÚseekÚsplitÚlenÚmapÚintÚ
ValueErrorÚrangerF   rB   ÚloggingÚinfoÚload_trailer)r9   ÚparserÚposÚlineÚfÚstartÚnobjsr@   Ú_ÚgennoÚuses              r$   ÚloadzPDFXRef.load_   sÒ  € ØðIØ$Ÿo™oÓ/‘��dØ—z‘z”|Øð $ñ Ü$Ð%8¸6Ñ%AÓBÐBØ�‰˜zÔ*Ø—‘˜CÔ ØØ—
‘
“×"Ñ" 4Ó(ˆAÜ�1‹v˜Š{Ý$ÊÑQUÐ%VÓWÐWðSÜ!$¤S¨!£‘�˜ô ˜u e¨E¡kÓ2ò C�ðMØ &§¡Ó 1‘I�Q˜ð —J‘J“L×&Ñ& tÓ,�Ü�q“6˜Q’;Ý(ÊvÑW[Ð)\Ó]Ð]Ø$%Ñ!��e˜SØ˜$’;ØØ'+¬S°«X´s¸5³zÐ&B�—‘˜UÒ#ðCñ' ð> �:Š:”w—|‘|Ð$6¸¿¹Ñ$EÔFØ×Ñ˜&Ô!Øøô9 ò IÜ$Ð%GÓHÐHðIûô ò SÝ$ÂFÉDÐ%QÓRÐRðSûô
 ò MÜ(Ð)KÓLÐLðMús#   ƒ#F ÂF Ã F;ÆFÆF8Æ;GrN   c                 ó$  — 	 |j                  «       \  }}|| j                  u sJ ‚|j                  «       \  }}| j                  j                  t        |«      «       y # t        $ r) |j	                  d«      }|st        d«      ‚|d   \  }}Y ŒVw xY w)Nr   zUnexpected EOF - file corruptedr   )	Ú	nexttokenÚKEYWORD_TRAILERÚ
nextobjectr   Úpopr   rG   Úupdater   )r9   r`   rf   ÚkwdÚdicÚxs         r$   r_   zPDFXRef.load_trailer…   s”   € ð	Ø×'Ñ'Ó)‰HˆQ�Ø˜$×.Ñ.Ñ.Ð.Ð.Ø×(Ñ(Ó*‰HˆQ�ð 	�‰×ÑœJ s›OÔ,Øøô ò 	Ø—
‘
˜1“ˆAÙÜ$Ð%FÓGÐGØ˜‘t‰HˆQ’ð		ús   ‚6A Á/BÂBc                 ó   — | j                   S r6   ©rG   r8   s    r$   r:   zPDFXRef.get_trailer’   ó   € Ø�|‰|Ðr#   c                 ó6   — | j                   j                  «       S r6   rJ   r8   s    r$   r<   zPDFXRef.get_objids•   s   € Ø�|‰|× Ñ Ó"Ð"r#   c                 ó>   — 	 | j                   |   S # t        $ r ‚ w xY wr6   )rF   r>   r?   s     r$   rA   zPDFXRef.get_pos˜   s(   € ð	Ø—<‘< Ñ&Ð&øÜò 	Øð	ús   ‚ ‘N)r   r    r!   rH   rL   ri   r   rl   r_   r:   r<   rA   r"   r#   r$   rD   rD   U   s1   „ òò
?ò"ñH ˜*“o€Oòòò#ór#   rD   c                   ó<   — e Zd Zd„ Z ej
                  d«      Zd„ Zy)ÚPDFXRefFallbackc                 ó<   — d| j                   j                  «       z  S )Nz<PDFXRefFallback: offsets=%r>rJ   r8   s    r$   rL   zPDFXRefFallback.__repr__£   s   € Ø.°$·,±,×2CÑ2CÓ2EÑFÐFr#   s   ^(\d+)\s+(\d+)\s+obj\bc                 ó  — |j                  d«       	 	 |j                  «       \  }}|j                  d«      rV|j                  |«       | j	                  |«       | j
                  r&t        j                  d| j                  «       z  «       	 y | j                  j                  |«      }|sŒš|j                  «       \  }}t        |«      }t        |«      }d ||f| j                  |<   |j                  |«       |j                  «       \  }}t        |t         «      rj|j#                  d«      t$        u rSt'        |«      }		 |	d   }
t/        |	j1                  «       «      }g }	 	 |j                  «       \  }}|j3                  |«       Œ%�Œt# t        $ r Y y w xY w# t(        $ r t*        rt-        d|	z  «      ‚d}
Y Œtw xY w# t        $ r Y nw xY wt5        |
t7        |«      dz  «      }
t9        |
«      D ]  }||dz     }||df| j                  |<   Œ Œˆ)Nr   rN   útrailer: %rÚTypeÚNúN is not defined: %rrP   )rV   rS   r   rU   r_   rB   r]   r^   r:   Ú
PDFOBJ_CUEÚmatchÚgroupsrZ   rF   rm   Ú
isinstancer   ÚgetÚLITERAL_OBJSTMr   r>   r   r   r   Úget_dataÚappendÚminrX   r\   )r9   r`   ra   rb   Úmr@   rg   rf   ÚobjÚstreamÚnÚparser1ÚobjsÚindexÚobjid1s                  r$   ri   zPDFXRefFallback.load¨   sÿ  € Ø�‰�AŒØðØ$Ÿo™oÓ/‘��dð �‰˜zÔ*Ø—‘˜CÔ Ø×!Ñ! &Ô)Ø—:’:œwŸ|™|¨M¸D×<LÑ<LÓ<NÑ,NÔOØð> 	ð= —‘×%Ñ% dÓ+ˆAÙØØŸX™X›Z‰NˆU�EÜ˜“JˆEÜ˜“JˆEØ#'¨¨eÐ"4ˆD�L‰L˜Ñà�K‰K˜ÔØ×(Ñ(Ó*‰HˆQ�Ü˜#œyÔ)¨c¯g©g°f«oÄÑ.OÜ% cÓ*�ðØ˜s™�Aô
 *¨&¯/©/Ó*;Ó<�Ø�ðØØ#*×#5Ñ#5Ó#7™˜˜CØŸ™ CÔ(ð ñ? øô ò ØðH 	ðKûô*  ò ÝÜ,Ð-CÀfÑ-LÓMÐMØ’Aðûô ò Ùðúä˜œ3˜t›9 a™<Ó(�Ü" 1›Xò =�EØ! %¨¡'™]�FØ,1°5¸!Ð+<�D—L‘L Ò(ð=øs5   ”F Ä>F Å&F; Æ	FÆFÆF8Æ7F8Æ;	GÇGN)r   r    r!   rL   ÚreÚcompiler€   ri   r"   r#   r$   ry   ry   ¡   s    „ òGð �—‘Ð6Ó7€Jó*r#   ry   c                   ó4   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	y)	ÚPDFXRefStreamFc                 óX   — d | _         d | _        d x| _        x| _        | _        g | _        y r6   )ÚdataÚentlenÚfl1Úfl2Úfl3Úrangesr8   s    r$   rH   zPDFXRefStream.__init__Û   s/   € ØˆŒ	ØˆŒØ)-Ð-ˆŒÐ-�4”8˜dœhØˆŒØr#   c                 ó    — d| j                   z  S )Nz<PDFXRefStream: ranges=%r>)r›   r8   s    r$   rL   zPDFXRefStream.__repr__â   s   € Ø+¨t¯{©{Ñ;Ð;r#   c           	      óH  — |j                  «       \  }}|j                  «       \  }}|j                  «       \  }}|j                  «       \  }}t        |t        «      r|d   t        urt        d«      ‚|d   }|j                  dd|f«      }t        |«      dz  dk7  rt        d«      ‚| j                  j                  t        d|«      «       |d   \  | _        | _        | _        |j                  «       | _        | j                  | j                  z   | j                  z   | _        |j$                  | _        | j(                  rat+        j,                  d	d
j/                  t1        t2        | j                  «      «      | j                  | j                  | j                  fz  «       y )Nr}   zInvalid PDF stream spec.ÚSizeÚIndexr   rP   zInvalid index numberÚWz&xref stream: objid=%s, fields=%d,%d,%dz, )rk   rm   rƒ   r   ÚLITERAL_XREFr   r„   rX   r   r›   Úextendr   r˜   r™   rš   r†   r–   r—   ÚattrsrG   rB   r]   r^   ÚjoinrY   Úrepr)	r9   r`   rf   r@   rg   rp   r‹   ÚsizeÚindex_arrays	            r$   ri   zPDFXRefStream.loadå   sZ  € Ø×%Ñ%Ó'‰
ˆˆEØ×%Ñ%Ó'‰
ˆˆEØ×#Ñ#Ó%‰ˆˆCØ×'Ñ'Ó)‰ˆˆFÜ˜&¤)Ô,°°v±ÄlÑ0RÜ Ð!;Ó<Ð<Ø�f‰~ˆØ—j‘j ¨1¨d¨)Ó4ˆÜˆ{Ó˜aÑ 1Ò$Ü Ð!7Ó8Ð8Ø�‰×Ñœ8 A {Ó3Ô4Ø)/°©Ñ&ˆŒ�4”8˜TœXØ—O‘OÓ%ˆŒ	Ø—h‘h˜tŸx™xÑ'¨¯©Ñ0ˆŒØ—|‘|ˆŒØ�:Š:Ü�L‰LÐAØ—i‘i¤¤D¨$¯+©+Ó 6Ó7Ø—h‘h §¡¨$¯(©(ð4ñ4ô 5ð 	r#   c                 ó   — | j                   S r6   rt   r8   s    r$   r:   zPDFXRefStream.get_trailerû   ru   r#   c              #   ó   K  — | j                   D ]k  \  }}t        |«      D ]X  }| j                  |z  }| j                  ||| j                  z    }t	        |d | j
                   d«      }|dk(  s|dk(  sŒR||z   –— ŒZ Œm y ­w)Nr   rP   )r›   r\   r—   r–   r   r˜   )r9   rd   re   ÚiÚoffsetÚentÚf1s          r$   r<   zPDFXRefStream.get_objidsþ   s‡   è ø€ Ø"Ÿk™kò 	"‰NˆU�EÜ˜5“\ò "�ØŸ™ q™�Ø—i‘i  v¨d¯k©kÑ'9Ð:�Ü˜S  $§(¡(˜^¨QÓ/�Ø˜’7˜b A›gØ ™'“Mñ"ð	"ð 	ùs   ‚A/A>Á2A>c                 óê  — d}| j                   D ]!  \  }}||k  r|||z   k  r
|||z
  z  } n||z  }Œ# t        |«      ‚| j                  |z  }| j                  ||| j                  z    }t	        |d | j
                   d«      }t	        || j
                  | j
                  | j                  z    «      }t	        || j
                  | j                  z   d  «      }	|dk(  rd ||	fS |dk(  r||	dfS t        |«      ‚)Nr   r   rP   )r›   r>   r—   r–   r   r˜   r™   )
r9   r@   r�   rd   re   r«   r¬   r­   Úf2Úf3s
             r$   rA   zPDFXRefStream.get_pos  s  € ØˆØ"Ÿk™kò 	"‰NˆU�EØ˜Š~ %¨%°©+Ò"5Ø˜ ™Ñ&�Ùà˜‘‘ð	"ô ˜5“/Ð!Ø—‘˜uÑ$ˆØ�i‰i˜˜v d§k¡kÑ1Ð2ˆÜ�S˜˜$Ÿ(™(�^ QÓ'ˆÜ�S˜Ÿ™ $§(¡(¨4¯8©8Ñ"3Ð4Ó5ˆÜ�S˜Ÿ™ $§(¡(Ñ*Ð+Ð,Ó-ˆØ�Š7Ø˜"˜b�>Ð!Ø�1ŠWØ˜˜A�;Ðô ˜5“/Ð!r#   N)
r   r    r!   rB   rH   rL   ri   r:   r<   rA   r"   r#   r$   r”   r”   ×   s%   „ à€Eòò<òò,òó"r#   r”   c                   ór   — e Zd ZdZdZdd„Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zdd„Zd„ Zy)ÚPDFStandardSecurityHandlers    (¿N^NuŠAd NVÿú.. ¶Ðh>€/©þdSiz)rP   rQ   c                 óN   — || _         || _        || _        | j                  «        y r6   )ÚdocidÚparamÚpasswordÚinit)r9   r´   rµ   r¶   s       r$   rH   z#PDFStandardSecurityHandler.__init__(  s#   € ØˆŒ
ØˆŒ
Ø ˆŒØ�	‰	ŒØr#   c                 ó¤   — | j                  «        | j                  | j                  vrt        d| j                  z  «      ‚| j                  «        y )NzUnsupported revision: param=%r)Úinit_paramsÚrÚsupported_revisionsr+   rµ   Úinit_keyr8   s    r$   r·   zPDFStandardSecurityHandler.init/  sA   € Ø×ÑÔØ�6‰6˜×1Ñ1Ñ1Ü$Ð%EÈÏ
É
Ñ%RÓSÐSØ�‰ŒØr#   c                 ó”  — t        | j                  j                  dd«      «      | _        t        | j                  d   «      | _        t        | j                  d   «      | _        t        | j                  d   «      | _        t        | j                  d   «      | _        t        | j                  j                  dd«      «      | _	        y )	NÚVr   ÚRÚPÚOÚUÚLengthé(   )
r   rµ   r„   Úvrº   Úpr   ÚoÚuÚlengthr8   s    r$   r¹   z&PDFStandardSecurityHandler.init_params6  s‹   € Ü˜4Ÿ:™:Ÿ>™>¨#¨qÓ1Ó2ˆŒÜ˜4Ÿ:™: c™?Ó+ˆŒÜ˜4Ÿ:™: c™?Ó+ˆŒÜ˜TŸZ™Z¨™_Ó-ˆŒÜ˜TŸZ™Z¨™_Ó-ˆŒÜ §
¡
§¡¨x¸Ó <Ó=ˆŒØr#   c                 óh   — | j                  | j                  «      | _        | j                  €t        ‚y r6   )Úauthenticater¶   Úkeyr-   r8   s    r$   r¼   z#PDFStandardSecurityHandler.init_key?  s+   € Ø×$Ñ$ T§]¡]Ó3ˆŒØ�8‰8ÐÜ&Ð&Ør#   c                 ó2   — t        | j                  dz  «      S )Né   ©ÚboolrÆ   r8   s    r$   Úis_printablez'PDFStandardSecurityHandler.is_printableE  ó   € Ü�D—F‘F˜Q‘JÓÐr#   c                 ó2   — t        | j                  dz  «      S )Né   rÏ   r8   s    r$   Úis_modifiablez(PDFStandardSecurityHandler.is_modifiableH  rÒ   r#   c                 ó2   — t        | j                  dz  «      S )Né   rÏ   r8   s    r$   Úis_extractablez)PDFStandardSecurityHandler.is_extractableK  s   € Ü�D—F‘F˜R‘KÓ Ð r#   c                 óü  ‡— | j                   dk(  r.t        j                  |«      j                  | j                  «      S t        j
                  | j                  «      }|j                  | j                  d   «       t        j                  |«      j                  |j                  «       «      }t        dd«      D ]:  Št        ˆfd„|D «       «      }t        j                  |«      j                  |«      }Œ< ||z  }|S )NrP   r   r   é   c              3   ó(   •K  — | ]	  }|‰z  –— Œ y ­wr6   r"   ©Ú.0Úcrª   s     €r$   ú	<genexpr>z7PDFStandardSecurityHandler.compute_u.<locals>.<genexpr>X  ó   øè ø€ Ò1 q˜A �EÑ1ùó   ƒ)rº   r   ÚnewÚencryptÚPASSWORD_PADDINGÚmd5ro   r´   Údigestr\   Úbytes)r9   rÌ   ÚhashÚresultÚkrª   s        @r$   Ú	compute_uz$PDFStandardSecurityHandler.compute_uN  sÃ   ø€ Ø�6‰6�QŠ;ä—8‘8˜C“=×(Ñ(¨×)>Ñ)>Ó?Ð?ô —7‘7˜4×0Ñ0Ó1ˆDØ�K‰K˜Ÿ
™
 1™Ô&Ü—X‘X˜c“]×*Ñ*¨4¯;©;«=Ó9ˆFÜ˜1˜b“\ò 5�ÜÓ1¨CÔ1Ó1�ÜŸ™ !›×,Ñ,¨VÓ4‘ð5ð �fÑˆFØˆMr#   c                 óN  — || j                   z   d d }t        j                  |«      }|j                  | j                  «       |j                  t	        j
                  d| j                  «      «       |j                  | j                  d   «       | j                  dk\  r| j                  s|j                  d«       |j                  «       }d}| j                  dk\  rE| j                  dz  }t        d	«      D ](  }t        j                  |d | «      j                  «       }Œ* |d | S )
Né    z<lr   rÎ   s   ÿÿÿÿé   rQ   rÔ   é2   )rä   rå   ro   rÇ   ÚstructÚpackrÆ   r´   rº   Úencrypt_metadataræ   rÉ   r\   )r9   r¶   rè   ré   rŒ   rf   s         r$   Úcompute_encryption_keyz1PDFStandardSecurityHandler.compute_encryption_key]  sì   € à˜t×4Ñ4Ñ4°c°rÐ:ˆÜ�w‰w�xÓ ˆØ�‰�D—F‘FÔØ�‰”F—K‘K  d§f¡fÓ-Ô.Ø�‰�D—J‘J˜q‘MÔ"Ø�6‰6�QŠ;Ø×(Ò(Ø—‘Ð/Ô0Ø—‘“ˆØˆØ�6‰6�QŠ;Ø—‘˜qÑ ˆAÜ˜2“Yò 6�ÜŸ™ ¨¨ Ó,×3Ñ3Ó5‘ð6à�b�qˆzÐr#   c                 óN   — | j                  |«      }|€| j                  |«      }|S r6   )Úauthenticate_user_passwordÚauthenticate_owner_password©r9   r¶   rÌ   s      r$   rË   z'PDFStandardSecurityHandler.authenticateo  s,   € Ø×-Ñ-¨hÓ7ˆØˆ;Ø×2Ñ2°8Ó<ˆCØˆ
r#   c                 óL   — | j                  |«      }| j                  |«      r|S y r6   )ró   Úverify_encryption_keyr÷   s      r$   rõ   z5PDFStandardSecurityHandler.authenticate_user_passwordu  s(   € Ø×)Ñ)¨(Ó3ˆØ×%Ñ% cÔ*ØˆJàr#   c                 óŠ   — | j                  |«      }| j                  dk(  r|| j                  k(  S |d d | j                  d d k(  S )NrP   r×   )rë   rº   rÈ   )r9   rÌ   rÈ   s      r$   rù   z0PDFStandardSecurityHandler.verify_encryption_key|  sD   € à�N‰N˜3ÓˆØ�6‰6�QŠ;Ø˜Ÿ™‘;ÐØ��"ˆv˜Ÿ™  ˜Ñ$Ð$r#   c                 ó†  ‡— || j                   z   d d }t        j                  |«      }| j                  dk\  r3t        d«      D ]%  }t        j                  |j	                  «       «      }Œ' d}| j                  dk\  r| j
                  dz  }|j	                  «       d | }| j                  dk(  r/t        j                  |«      j                  | j                  «      }nV| j                  }t        ddd«      D ]:  Št        ˆfd	„|D «       «      }t        j                  |«      j                  |«      }Œ< | j                  |«      S )
Nrí   rQ   rï   rî   rÔ   rP   é   éÿÿÿÿc              3   ó(   •K  — | ]	  }|‰z  –— Œ y ­wr6   r"   rÜ   s     €r$   rß   zIPDFStandardSecurityHandler.authenticate_owner_password.<locals>.<genexpr>“  rà   rá   )rä   rå   rº   r\   ræ   rÉ   r   râ   ÚdecryptrÇ   rç   rõ   )	r9   r¶   rè   rf   rŒ   rÌ   Úuser_passwordrê   rª   s	           @r$   rö   z6PDFStandardSecurityHandler.authenticate_owner_passwordƒ  s  ø€ à˜t×4Ñ4Ñ4°c°rÐ:ˆÜ�w‰w�xÓ ˆØ�6‰6�QŠ;Ü˜2“Yò .�Ü—w‘w˜tŸ{™{›}Ó-‘ð.àˆØ�6‰6�QŠ;Ø—‘˜qÑ ˆAØ�k‰k‹m˜B˜QÐˆØ�6‰6�QŠ;Ü ŸH™H S›M×1Ñ1°$·&±&Ó9‰Mà ŸF™FˆMÜ˜2˜r 2Ó&ò C�ÜÓ1¨CÔ1Ó1�Ü $§¡¨£× 3Ñ 3°MÓ B‘ðCð ×.Ñ.¨}Ó=Ð=r#   Nc                 ó(   — | j                  |||«      S r6   )Údecrypt_rc4)r9   r@   rg   r–   r£   s        r$   rÿ   z"PDFStandardSecurityHandler.decrypt—  s   € Ø×Ñ  u¨dÓ3Ð3r#   c                 ó@  — | j                   t        j                  d|«      d d z   t        j                  d|«      d d z   }t        j                  |«      }|j	                  «       d t        t        |«      d«       }t        j                  |«      j                  |«      S )Nú<LrQ   rP   r×   )
rÌ   rð   rñ   rå   ræ   rˆ   rX   r   râ   rÿ   ©r9   r@   rg   r–   rÌ   rè   s         r$   r  z&PDFStandardSecurityHandler.decrypt_rc4š  s   € Ø�h‰hœŸ™ T¨5Ó1°"°1Ð5Ñ5¼¿¹ÀDÈ%Ó8PÐQSÐRSÐ8TÑTˆÜ�w‰w�s‹|ˆØ�k‰k‹mÐ.œS¤ S£¨2Ó.Ð/ˆÜ�x‰x˜‹}×$Ñ$ TÓ*Ð*r#   ©r#   r6   )r   r    r!   rä   r»   rH   r·   r¹   r¼   rÑ   rÕ   rØ   rë   ró   rË   rõ   rù   rö   rÿ   r  r"   r#   r$   r²   r²   "  s\   „ ðAÐà Ðóòòòò ò ò!òòò$òò%ò>ó(4ó+r#   r²   c                   ó<   ‡ — e Zd ZdZˆ fd„Zd„ Zdd„Zd„ Zd„ Zˆ xZ	S )ÚPDFStandardSecurityHandlerV4)rÎ   c                 ó$  •— t         t        | �  «        d| _        t	        | j
                  j                  d«      «      | _        t        | j
                  d   «      | _	        t        | j
                  d   «      | _
        t        | j
                  j                  dd«      «      | _        | j                  | j                  k7  rt        d| j
                  z  «      ‚i | _        | j                  j                  «       D ]K  \  }}| j!                  t        |d   «      «      }|€t        d	| j
                  z  «      ‚|| j                  |<   ŒM | j"                  | j                  d
<   | j                  | j                  vrt        d| j
                  z  «      ‚y )Né€   ÚCFÚStmFÚStrFÚEncryptMetadataTz"Unsupported crypt filter: param=%rÚCFMz%Unknown crypt filter method: param=%rÚIdentityz Undefined crypt filter: param=%r)Úsuperr  r¹   rÉ   r   rµ   r„   Úcfr	   ÚstmfÚstrfrÐ   rò   r+   ÚcfmÚitemsÚget_cfmÚdecrypt_identity)r9   rê   rÅ   rc   Ú	__class__s       €r$   r¹   z(PDFStandardSecurityHandlerV4.init_params¥  s@  ø€ ÜÔ*¨DÑ=Ô?ØˆŒÜ˜TŸZ™ZŸ^™^¨DÓ1Ó2ˆŒÜ  §¡¨FÑ!3Ó4ˆŒ	Ü  §¡¨FÑ!3Ó4ˆŒ	Ü $ T§Z¡Z§^¡^Ð4EÀtÓ%LÓ MˆÔØ�9‰9˜Ÿ	™	Ò!Ü$Ð%IÈDÏJÉJÑ%VÓWÐWØˆŒØ—G‘G—M‘M“Oò 	‰DˆAˆqØ—‘œ\¨!¨E©(Ó3Ó4ˆAØˆyÜ(Ð)PÐSW×S]ÑS]Ñ)]Ó^Ð^ØˆD�H‰H�QŠKð		ð
  $×4Ñ4ˆ�‰�ÑØ�9‰9˜DŸH™HÑ$Ü$Ð%GÈ$Ï*É*Ñ%TÓUÐUØr#   c                 óH   — |dk(  r| j                   S |dk(  r| j                  S y )NÚV2ÚAESV2)r  Údecrypt_aes128©r9   Únames     r$   r  z$PDFStandardSecurityHandlerV4.get_cfm¹  s+   € Ø�4Š<Ø×#Ñ#Ð#Ø�WŠ_Ø×&Ñ&Ð&àr#   c                 ó®   — | j                   s%|�#|j                  d«      }|�t        |«      dk(  r|S |€| j                  } | j                  |   |||«      S )Nr}   ÚMetadata)rò   r„   r	   r  r  )r9   r@   rg   r–   r£   r  Úts          r$   rÿ   z$PDFStandardSecurityHandlerV4.decryptÁ  sZ   € Ø×$Ò$¨Ð):Ø—	‘	˜&Ó!ˆAØˆ}¤¨a£°JÒ!>Ø�Øˆ<Ø—9‘9ˆDØˆt�x‰x˜‰~˜e U¨DÓ1Ð1r#   c                 ó   — |S r6   r"   ©r9   r@   rg   r–   s       r$   r  z-PDFStandardSecurityHandlerV4.decrypt_identityÊ  s   € Øˆr#   c                 ót  — | j                   t        j                  d|«      d d z   t        j                  d|«      d d z   dz   }t        j                  |«      }|j	                  «       d t        t        |«      d«       }t        j                  |t        j                  |d d ¬«      j                  |dd  «      S )Nr  rQ   rP   s   sAlTr×   ©ÚmodeÚIV)rÌ   rð   rñ   rå   ræ   rˆ   rX   r   râ   ÚMODE_CBCrÿ   r  s         r$   r  z+PDFStandardSecurityHandlerV4.decrypt_aes128Í  sš   € Ø�h‰hœŸ™ T¨5Ó1°"°1Ð5Ñ5¼¿¹ÀDÈ%Ó8PÐQSÐRSÐ8TÑTÐW^Ñ^ˆÜ�w‰w�s‹|ˆØ�k‰k‹mÐ.œS¤ S£¨2Ó.Ð/ˆÜ�w‰w�s¤§¡°$°s¸°)Ô<×DÑDÀTÈ"È#ÀYÓOÐOr#   )NN)
r   r    r!   r»   r¹   r  rÿ   r  r  Ú__classcell__©r  s   @r$   r  r  ¡  s#   ø„ àÐôò(ó2òöPr#   r  c                   ó4   ‡ — e Zd ZdZˆ fd„Zd„ Zd„ Zd„ Zˆ xZS )ÚPDFStandardSecurityHandlerV5)rî   c                 óœ  •— t         t        | �  «        d| _        t	        | j
                  d   «      | _        t	        | j
                  d   «      | _        | j                  d d | _	        | j                  dd | _
        | j                  dd  | _        | j                  d d | _        | j                  dd | _        | j                  dd  | _        y )Né   ÚOEÚUErí   rÄ   )r  r-  r¹   rÉ   r   rµ   ÚoeÚuerÇ   Úo_hashÚo_validation_saltÚ
o_key_saltrÈ   Úu_hashÚu_validation_saltÚ
u_key_salt)r9   r  s    €r$   r¹   z(PDFStandardSecurityHandlerV5.init_paramsØ  s­   ø€ ÜÔ*¨DÑ=Ô?ØˆŒÜ˜dŸj™j¨Ñ.Ó/ˆŒÜ˜dŸj™j¨Ñ.Ó/ˆŒØ—f‘f˜S˜b�kˆŒØ!%§¡¨¨2 ˆÔØŸ&™&  ˜+ˆŒØ—f‘f˜S˜b�kˆŒØ!%§¡¨¨2 ˆÔØŸ&™&  ˜+ˆŒØr#   c                 ó&   — |dk(  r| j                   S y )NÚAESV3)Údecrypt_aes256r  s     r$   r  z$PDFStandardSecurityHandlerV5.get_cfmå  s   € Ø�7Š?Ø×&Ñ&Ð&àr#   c                 ó¢  — |d d }t        j                  |«      }|j                  | j                  «       |j                  | j                  «       |j                  «       | j                  k(  r˜t        j                  |«      }|j                  | j                  «       |j                  | j                  «       t        j                  |j                  «       t        j                  d¬«      j                  | j                  «      S t        j                  |«      }|j                  | j                  «       |j                  «       | j                  k(  r}t        j                  |«      }|j                  | j                  «       t        j                  |j                  «       t        j                  d¬«      j                  | j                  «      S y )Né   s                   r&  )r   râ   ro   r5  rÈ   ræ   r4  r6  r   r)  rÿ   r2  r8  r7  r9  r3  )r9   r¶   rè   s      r$   rË   z)PDFStandardSecurityHandlerV5.authenticateë  s.  € Ø˜D˜S�>ˆÜ�z‰z˜(Ó#ˆØ�‰�D×*Ñ*Ô+Ø�‰�D—F‘FÔØ�;‰;‹=˜DŸK™KÒ'Ü—:‘:˜hÓ'ˆDØ�K‰K˜Ÿ™Ô(Ø�K‰K˜Ÿ™ÔÜ—7‘7˜4Ÿ;™;›=¬s¯|©|ÀÔM×UÑUÐVZ×V]ÑV]Ó^Ð^Ü�z‰z˜(Ó#ˆØ�‰�D×*Ñ*Ô+Ø�;‰;‹=˜DŸK™KÒ'Ü—:‘:˜hÓ'ˆDØ�K‰K˜Ÿ™Ô(Ü—7‘7˜4Ÿ;™;›=¬s¯|©|ÀÔM×UÑUÐVZ×V]ÑV]Ó^Ð^Ør#   c                 óŒ   — t        j                  | j                  t         j                  |d d ¬«      j	                  |dd  «      S )Nr×   r&  )r   râ   rÌ   r)  rÿ   r$  s       r$   r<  z+PDFStandardSecurityHandlerV5.decrypt_aes256ý  s4   € Ü�w‰w�t—x‘x¤c§l¡l°t¸C¸R°yÔA×IÑIÈ$ÈrÈsÈ)ÓTÐTr#   )	r   r    r!   r»   r¹   r  rË   r<  r*  r+  s   @r$   r-  r-  Ô  s   ø„ àÐôòòö$Ur#   r-  c                   ó�   — e Zd ZdZeedœZe�eed<   e�e	ed<   dZ
dd„Zdd„Zd	„ Zd
„ Z ed«      Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚPDFDocumentaP  PDFDocument object represents a PDF document.

    Since a PDF file can be very big, normally it is not loaded at
    once. So PDF document has to cooperate with a PDF parser in order to
    dynamically import the data as processing goes.

    Typical usage:
      doc = PDFDocument(parser, password)
      obj = doc.getobj(objid)

    )r   rP   NrÎ   rî   r   c                 ó¦  — || _         g | _        g | _        d| _        d| _        d| _        d| _        i | _        i | _        || _        | j                  j                  | «       dx| _
        x| _        | _        	 | j                  |«      }| j                  ||| j                  «       |r=d|_        t#        «       }|j%                  |«       | j                  j'                  |«       | j                  D ]�  }|j)                  «       }|sŒd|v r2t+        |d   «      t-        |d   «      f| _        | j/                  |«       d|v r'| j                  j'                  t-        |d   «      «       d|v sŒ|t-        |d   «      | _         n t1        d«      ‚| j                  j3                  d«      t4        urt6        rt1        d	«      ‚y# t        $ r d}Y �Œ)w xY w)
z1Set the document to use a given PDFParser object.NTÚEncryptÚIDÚInfoÚRootz(No /Root object! - Is this really a PDF?r}   zCatalog not found!)ÚcachingÚxrefsr^   ÚcatalogÚ
encryptionÚdecipherÚ_parserÚ_cached_objsÚ_parsed_objsÚset_documentrÑ   rÕ   rØ   Ú	find_xrefÚread_xref_fromr   Úfallbackry   ri   r‡   r:   r   r   Ú_initialize_passwordr   r„   ÚLITERAL_CATALOGr   )r9   r`   r¶   rG  rR  ra   ÚxrefrG   s           r$   rH   zPDFDocument.__init__  s¼  € àˆŒØˆŒ
ØˆŒ	ØˆŒØˆŒØˆŒØˆŒØˆÔØˆÔØˆŒØ�‰×!Ñ! $Ô'ØGKÐKˆÔÐK˜DÔ.°Ô1Dð	Ø—.‘. Ó(ˆCØ×Ñ ¨¨T¯Z©ZÔ8ñ Ø"ˆFŒOÜ"Ó$ˆDØ�I‰I�fÔØ�J‰J×Ñ˜dÔ#Ø—J‘Jò 	MˆDØ×&Ñ&Ó(ˆGÙØà˜GÑ#ä#-¨g°d©mÓ#<Ü#-¨g°iÑ.@Ó#Að#C�”à×)Ñ)¨(Ô3Ø˜Ñ Ø—	‘	× Ñ ¤¨G°F©OÓ!<Ô=Ø˜Ò ä)¨'°&©/Ó:�”Ùð	Mô" !Ð!KÓLÐLØ�<‰<×Ñ˜FÓ#¬?Ñ:ÝÜ$Ð%9Ó:Ð:Øøô9 ò 	Ø‹Hð	ús   Á8.G ÇGÇGc                 óÚ  — | j                   \  }}t        |j                  d«      «      dk7  rt        d|z  «      ‚t	        |j                  dd«      «      }| j
                  j                  |«      }|€t        d|z  «      ‚ ||||«      }|j                  | _        |j                  «       | _        |j                  «       | _	        |j                  «       | _
        d| j                  _        y )NÚFilterÚStandardzUnknown filter: param=%rr¾   r   zUnknown algorithm: param=%rF)rJ  r	   r„   r+   r   Úsecurity_handler_registryrÿ   rK  rÑ   rÕ   rØ   rL  rR  )r9   r¶   r´   rµ   rÅ   ÚfactoryÚhandlers          r$   rS  z PDFDocument._initialize_passwordO  sÒ   € ØŸ™‰ˆ�Ü˜Ÿ	™	 (Ó+Ó,°
Ò:Ü$Ð%?À%Ñ%GÓHÐHÜ�e—i‘i  QÓ'Ó(ˆØ×0Ñ0×4Ñ4°QÓ7ˆØˆ?Ü$Ð%BÀUÑ%JÓKÐKÙ˜% ¨Ó1ˆØŸ™ˆŒØ#×0Ñ0Ó2ˆÔØ$×2Ñ2Ó4ˆÔØ%×4Ñ4Ó6ˆÔØ %ˆ�‰ÔØr#   c                 ó8  — |j                   | j                  v r| j                  |j                      \  }}n;| j                  |«      \  }}| j                  r||f| j                  |j                   <   |dz  |z   }	 ||   }|S # t        $ r t        d|z  «      ‚w xY w)NrP   zindex too big: %r)r@   rN  Ú_get_objectsrG  Ú
IndexErrorr   )r9   r‹   r�   r@   rŽ   rŒ   rª   rŠ   s           r$   Ú_getobj_objstmzPDFDocument._getobj_objstm_  s£   € Ø�<‰<˜4×,Ñ,Ñ,Ø×)Ñ)¨&¯,©,Ñ7‰IˆT‘1à×)Ñ)¨&Ó1‰IˆT�1Ø�|Š|Ø37¸°)�×!Ñ! &§,¡,Ñ/Øˆa‰C�‰Iˆð	>Ø�q‘'ˆCð ˆ
øô ò 	>Ü Ð!4°uÑ!<Ó=Ð=ð	>ús   Á:B ÂBc                 óx  — |j                  d«      t        urt        rt        d|z  «      ‚	 |d   }t        |j                  «       «      }|j                  | «       g }	 	 |j                  «       \  }}|j                  |«       Œ%# t        $ r t        rt        d|z  «      ‚d}Y Œtw xY w# t        $ r Y ||fS w xY w)Nr}   zNot a stream object: %rr~   r   r   )r„   r…   r   r   r>   r   r†   rO  rm   r‡   r   )r9   r‹   rŒ   r`   rŽ   rf   rŠ   s          r$   r]  zPDFDocument._get_objectsm  sÍ   € Ø�:‰:�fÓ¤^Ñ3ÝÜ$Ð%>ÀÑ%GÓHÐHð	Ø�s‘ˆAô
 ! §¡Ó!2Ó3ˆØ×Ñ˜DÔ!Øˆð	ØØ!×,Ñ,Ó.‘��CØ—‘˜CÔ ð øô ò 	ÝÜ$Ð%;¸fÑ%DÓEÐEØŠAð	ûô ò 	ØØ�aˆyÐð	ús#   ­B Á&B* ÂB'Â&B'Â*	B9Â8B9s   objc                 óˆ  — | j                   j                  |«       | j                   j                  «       \  }}||k7  rt        d|›d|›�«      ‚| j                   j                  «       \  }}| j                   j                  «       \  }}|| j                  urt        d|z  «      ‚| j                   j                  «       \  }}|S )Nzobjid mismatch: ú=zInvalid object spec: offset=%r)rL  rV   rk   r   ÚKEYWORD_OBJrm   )r9   ra   r@   rf   r�   rg   rp   rŠ   s           r$   Ú_getobj_parsezPDFDocument._getobj_parse„  s§   € Ø�‰×Ñ˜#ÔØ—l‘l×,Ñ,Ó.‰ˆˆFØ�UŠ?Ý ºFÁEÐ!JÓKÐKØ—\‘\×+Ñ+Ó-‰
ˆˆEØ—<‘<×)Ñ)Ó+‰ˆˆCØ�d×&Ñ&Ñ&Ü Ð!AÀCÑ!GÓHÐHØ—<‘<×*Ñ*Ó,‰ˆˆCØˆ
r#   c                 ó  — |dk7  sJ ‚| j                   st        d«      ‚| j                  rt        j                  d|z  «       || j                  v r| j                  |   \  }}|S | j                   D ]¢  }	 |j                  |«      \  }}}	 |�.t        | j                  |«      «      }| j                  |||«      }n6| j                  ||«      }| j                  rt        | j                  |||«      }t        |t        «      r|j                  ||«        n t%        |«      ‚| j                  rt        j                  d|›d|›�«       | j&                  r||f| j                  |<   |S # t        $ r Y �Œw xY w# t         t"        f$ r Y �Œw xY w)Nr   zPDFDocument is not initializedzgetobj: objid=%rzregister: objid=z: )rH  r   rB   r]   rM  rA   r>   r   Úgetobjr_  rd  rK  r   rƒ   r   Ú	set_objidr   r   r   rG  )r9   r@   rŠ   rg   rU  Ústrmidr�   r‹   s           r$   rf  zPDFDocument.getobj‘  s}  € Ø˜ŠzÐˆzØ�zŠzÜÐ?Ó@Ð@Ø�:Š:Ü�M‰MÐ,¨uÑ4Ô5Ø�D×%Ñ%Ñ%Ø×,Ñ,¨UÑ3‰LˆS�%ð6 ˆ
ð3 Ÿ
™
ò /�ðØ-1¯\©\¸%Ó-@Ñ*�V˜U EðØÐ)Ü!-¨d¯k©k¸&Ó.AÓ!B˜Ø"×1Ñ1°&¸%ÀÓG™à"×0Ñ0°¸Ó>˜ØŸ=š=Ü".¨t¯}©}¸eÀUÈCÓ"P˜Cä! #¤yÔ1ØŸ™ e¨UÔ3Ùð!/ô( (¨Ó.Ð.Ø�zŠzÜ—’º%ÁÐEÔFØ�|Š|Ø,/°¨<�×!Ñ! %Ñ(Øˆ
øô-  ò Úðûô œ~Ð.ò Úðús%   Á5E'ÂBE7Å'	E4Å3E4Å7F
Æ	F
c                 ób   ‡— d| j                   vrt        ‚ˆfd„Š ‰| j                   d   d«      S )NÚOutlinesc              3   óT  •K  — t        | «      } d| v r[d| v sd| v rSt        t        | d   «      «      }| j                  d«      }| j                  d«      }| j                  d«      }|||||f–— d| v rd| v r ‰| d   |dz   «      D ]  }|–— Œ d| v r ‰| d   |«      D ]  }|–— Œ y ­w)	NÚTitleÚAÚDestÚSEÚFirstÚLastr   ÚNext)r   r   r   r„   )ÚentryÚlevelÚtitleÚdestÚactionÚserr   Úsearchs          €r$   ry  z(PDFDocument.get_outlines.<locals>.search¹  sÌ   øè ø€ Ü˜uÓ%ˆEØ˜%ÑØ˜%‘< 6¨U¡?Ü'¬°E¸'±NÓ(CÓD�EØ Ÿ9™9 VÓ,�DØ"ŸY™Y s›^�FØŸ™ 4›�BØ  %¨¨v°rÐ:Ò:Ø˜%Ñ F¨e¡OÙ  g¡°°a±Ó8ò �AØ“Gðà˜‰Ù  f¡¨uÓ5ò �AØ“Gðàùs   ƒB%B(r   )rI  r'   )r9   ry  s    @r$   Úget_outlineszPDFDocument.get_outlinesµ  s2   ø€ Ø˜TŸ\™\Ñ)ÜÐô	ñ  �d—l‘l :Ñ.°Ó2Ð2r#   c                 ó´   ‡‡‡— 	 t        | j                  d   «      }t        |‰   «      }ˆˆˆfd„Š ‰|«      S # t        t        f$ r t        ‰‰f«      ‚w xY w)NÚNamesc                 ó  •— d| v rt        | d   «      \  }}‰|k  s|‰k  ry d| v r(t        | d   «      }t        t        d|«      «      }|‰   S d| v r*t        | d   «      D ]  } ‰	t        |«      «      }|sŒ|c S  t	        ‰‰f«      ‚)NÚLimitsr|  rP   ÚKids)r   Údictr   r   r>   )
ÚdÚk1Úk2rŽ   ÚnamesrÞ   rÅ   ÚcatrÌ   Úlookups
          €€€r$   r†  z'PDFDocument.lookup_name.<locals>.lookupÓ  s¢   ø€ Ø˜1‰}Ü% a¨¡kÓ2‘��RØ˜’8˜r CšxØØ˜!‰|Ü! ! G¡*Ó-�ÜœX a¨Ó.Ó/�Ø˜S‘zÐ!Ø˜‰{Ü# A f¡IÓ.ò !�AÙœz¨!›}Ó-�AÚØ šð!ô ˜C ˜:Ó&Ð&r#   )r   rI  r   r>   )r9   r…  rÌ   r„  Úd0r†  s    ``  @r$   Úlookup_namezPDFDocument.lookup_nameË  sa   ú€ ð	'Ü˜tŸ|™|¨GÑ4Ó5ˆEô ˜˜c™
Ó#ˆö	'ñ �b‹zÐøô) œhÐ'ò 	'Ü˜C ˜:Ó&Ð&ð	'ús	   …: ºAc                 óÖ   — 	 | j                  d|«      }|S # t        $ rI d| j                  vrt        |«      ‚t	        | j                  d   «      }||vrt        |«      ‚||   }Y |S w xY w)NÚDests)rˆ  r>   rI  r)   r   )r9   r  rŠ   r‡  s       r$   Úget_destzPDFDocument.get_destä  s{   € ð
	à×"Ñ" 7¨DÓ1ˆCð ˆ
øô ò 	à˜dŸl™lÑ*Ü,¨TÓ2Ð2Ü˜DŸL™L¨Ñ1Ó2ˆBØ˜2‰~Ü,¨TÓ2Ð2Ø�T‘(‰CØˆ
ð	ús   ‚ –AA(Á'A(c                 ó$  — d}|j                  «       D ]B  }|j                  «       }| j                  rt        j                  d|z  «       |dk(  r n|sŒA|}ŒD t	        d«      ‚| j                  rt        j
                  d|z  «       t        |«      S )z0Internal function used to locate the first XRef.Nzfind_xref: %rs	   startxrefúUnexpected EOFzxref found: pos=%r)ÚrevreadlinesrT   rB   r]   r   r^   rZ   )r9   r`   Úprevrb   s       r$   rP  zPDFDocument.find_xrefó  sˆ   € ð ˆØ×'Ñ'Ó)ò 		3ˆDØ—:‘:“<ˆDØ�zŠzÜ—‘˜o°Ñ4Ô5Ø�|Ò#ÙÚØ‘ð		3ô !Ð!1Ó2Ð2Ø�:Š:Ü�L‰LÐ-°Ñ4Ô5Ü�4‹yÐr#   c                 ó  — |j                  |«       |j                  «        	 |j                  «       \  }}| j
                  rt        j                  d||fz  «       t        |t        «      r=|j                  |«       |j                  «        t        «       }|j                  |«       n9||j                  u r|j                  «        t        «       }|j                  |«       |j                  |«       |j!                  «       }| j
                  rt        j                  d|z  «       d|v r!t#        |d   «      }| j%                  |||«       d|v r!t#        |d   «      }| j%                  |||«       y# t        $ r t	        d«      ‚w xY w)z$Reads XRefs from the given location.r�  z"read_xref_from: start=%d, token=%rr|   ÚXRefStmÚPrevN)rV   Úresetrk   r   r   rB   r]   r^   rƒ   rZ   r”   ri   ÚKEYWORD_XREFrS   rD   r‡   r:   r   rQ  )r9   r`   rd   rH  ra   ÚtokenrU  rG   s           r$   rQ  zPDFDocument.read_xref_from  sM  € à�‰�EÔØ�‰Œð	3Ø!×+Ñ+Ó-‰LˆS�%ð �:Š:Ü�L‰LÐ=ÀÈÀÑNÔOÜ�eœSÔ!à�K‰K˜ÔØ�L‰LŒNÜ “?ˆDØ�I‰I�fÕà˜×+Ñ+Ñ+Ø—‘Ô!Ü“9ˆDØ�I‰I�fÔØ�‰�TÔØ×"Ñ"Ó$ˆØ�:Š:Ü�L‰L˜¨Ñ0Ô1Ø˜ÑÜ˜G IÑ.Ó/ˆCØ×Ñ ¨¨UÔ3Ø�WÑä˜G F™OÓ,ˆCØ×Ñ ¨¨UÔ3Øøô5 ò 	3Ü Ð!1Ó2Ð2ð	3ús   £E2 Å2F)r#   TTr  )r   r    r!   Ú__doc__r²   rY  r   r  r   r-  rB   rH   rS  r_  r]  r   rc  rd  rf  rz  rˆ  r‹  rP  rQ  r"   r#   r$   rA  rA    sƒ   „ ñ
ð &Ø%ñ!Ðð €Ø'CÐ! !Ñ$ØÐØ+GÐ% aÑ(à€Eó/ófò òñ* �f“+€Kò
ò"òH3ò,ò2òó& r#   rA  )6r‘   rð   r]   Úhashlibrå   ÚImportErrorÚCrypto.Cipherr   r   ÚCrypto.Hashr   Ú r   Úpsparserr   r	   r
   r   r   Úpdftypesr   r   r   r   r   r   r   r   r   r   Ú	pdfparserr   r   Úutilsr   r   r   r   r'   r)   r+   r-   r/   r…   r¡   rT  r4   rD   ry   r”   r²   r  r-  rA  r"   r#   r$   ú<module>r      sl  ðã 	Û Û ðÛð"Ý"Ý!Ý"õ Ý "Ý Ý Ý Ý "Ý "Ý Ý 'Ý "Ý Ý !Ý  Ý  Ý "Ý %Ý &Ý Ý Ý ô
	�^ô 	ô	�Lô 	ô	˜\ô 	ô	˜ô 	ô	Ð-ô 	ô	Ð"4ô 	ñ �X“€Ù�6‹{€Ù�i“.€÷
ñ ô&Gˆkô GôX1�gô 1ôlF"�Kô F"÷V|+ñ |+ô~0PÐ#=ô 0Pôf*UÐ#?ô *U÷^cò cøðy ò Þðûð ò "ØÐ€Cˆ&ß!Ð!ð"ús"   ŽE “E Å	EÅEÅE0Å/E0