§
    Æ‡tj”  ã                   óÆ  — 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	 d dl
mZmZmZmZ d dlmZmZmZ d dlmZ d dlmZmZ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"m#Z#m$Z$m%Z% d dl&m'Z'm(Z(m)Z) d dl*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3 d dl4m5Z5 d dl6m7Z7m8Z8m9Z9 d dl:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@  ejA        eB¦  «        ZC G d„ de)¦  «        ZD G d„ deE¦  «        ZF G d„ de"¦  «        ZG G d„ de"¦  «        ZH G d„ de"¦  «        ZI G d„ de"¦  «        ZJ G d„ deJ¦  «        ZK G d„ d eL¦  «        ZM G d!„ d"eL¦  «        ZN G d#„ d$eJ¦  «        ZO e8d%¦  «        ZP e8d&¦  «        ZQ e8d'¦  «        ZR G d(„ d)¦  «        ZS G d*„ d+eS¦  «        ZT G d,„ d-eT¦  «        ZU G d.„ d/eS¦  «        ZV G d0„ d1¦  «        ZW G d2„ d3eW¦  «        ZX G d4„ d5eX¦  «        ZY G d6„ d7¦  «        ZZ G d8„ d9e ¦  «        Z[dS ):é    N)ÚCallableÚIterableÚIteratorÚKeysViewÚSequence)Úmd5Úsha256Úsha384Úsha512)ÚAnyÚClassVarÚcast)Údefault_backend)ÚCipherÚ
algorithmsÚmodes)Úsettings)ÚArcfour)Úsafe_int)Ú
NumberTree)ÚPDFExceptionÚPDFKeyErrorÚPDFObjectNotFoundÚPDFTypeError)Ú	PDFParserÚPDFStreamParserÚPDFSyntaxError)	ÚDecipherCallableÚ	PDFStreamÚdecipher_allÚ
dict_valueÚ	int_valueÚ
list_valueÚ	str_valueÚstream_valueÚ
uint_value)ÚPSEOF)ÚKWDÚLITÚliteral_name)ÚchoplistÚdecode_textÚformat_int_alphaÚformat_int_romanÚnunpackÚ	unpad_aesc                   ó   — e Zd ZdS )ÚPDFNoValidXRefN©Ú__name__Ú
__module__Ú__qualname__© ó    úR/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/pdfminer/pdfdocument.pyr2   r2   4   ó   € € € € € Ø€Dr8   r2   c                   ó   — e Zd ZdZdS )ÚPDFNoValidXRefWarningztLegacy warning for missing xref.

    Not used anymore because warnings.warn is replaced by logger.Logger.warn.
    N©r4   r5   r6   Ú__doc__r7   r8   r9   r<   r<   8   ó   € € € € € ðð ð ð r8   r<   c                   ó   — e Zd ZdS )ÚPDFNoOutlinesNr3   r7   r8   r9   rA   rA   ?   r:   r8   rA   c                   ó   — e Zd ZdS )ÚPDFNoPageLabelsNr3   r7   r8   r9   rC   rC   C   r:   r8   rC   c                   ó   — e Zd ZdS )ÚPDFDestinationNotFoundNr3   r7   r8   r9   rE   rE   G   r:   r8   rE   c                   ó   — e Zd ZdS )ÚPDFEncryptionErrorNr3   r7   r8   r9   rG   rG   K   r:   r8   rG   c                   ó   — e Zd ZdS )ÚPDFPasswordIncorrectNr3   r7   r8   r9   rI   rI   O   r:   r8   rI   c                   ó   — e Zd ZdZdS )ÚPDFEncryptionWarningzyLegacy warning for failed decryption.

    Not used anymore because warnings.warn is replaced by logger.Logger.warn.
    Nr=   r7   r8   r9   rK   rK   S   r?   r8   rK   c                   ó   — e Zd ZdZdS )Ú"PDFTextExtractionNotAllowedWarningzŠLegacy warning for PDF that does not allow extraction.

    Not used anymore because warnings.warn is replaced by logger.Logger.warn.
    Nr=   r7   r8   r9   rM   rM   Z   r?   r8   rM   c                   ó   — e Zd ZdS )ÚPDFTextExtractionNotAllowedNr3   r7   r8   r9   rO   rO   a   r:   r8   rO   ÚObjStmÚXRefÚCatalogc                   óz   — e Zd Zdeeef         fd„Zdee         fd„Z	dede
edz  eef         fd„Zdeddfd„ZdS )	ÚPDFBaseXRefÚreturnc                 ó   — t           ‚©N©ÚNotImplementedError©Úselfs    r9   Úget_trailerzPDFBaseXRef.get_trailerl   ó   € Ý!Ð!r8   c                 ó   — g S rW   r7   rZ   s    r9   Ú
get_objidszPDFBaseXRef.get_objidso   s   € Øˆ	r8   ÚobjidNc                 ó    — t          |¦  «        ‚rW   )r   ©r[   r`   s     r9   Úget_poszPDFBaseXRef.get_posu   s   € Ý˜%Ñ Ô Ð r8   Úparserc                 ó   — t           ‚rW   rX   )r[   rd   s     r9   ÚloadzPDFBaseXRef.loadx   r]   r8   )r4   r5   r6   ÚdictÚstrr   r\   r   Úintr_   Útuplerc   r   rf   r7   r8   r9   rT   rT   k   sª   € € € € € ð"˜T # s (œ^ð "ð "ð "ð "ð˜H SœMð ð ð ð ð!˜Sð ! U¨3°©:°s¸CÐ+?Ô%@ð !ð !ð !ð !ð"˜9ð "¨ð "ð "ð "ð "ð "ð "r8   rT   c                   óž   — e Zd Zdd„Zdefd„Zdeddfd„Zdeddfd„Zde	ee
f         fd„Zdee         fd	„Zd
edeedz  eef         fd„ZdS )ÚPDFXRefrU   Nc                 ó"   — i | _         i | _        d S rW   )ÚoffsetsÚtrailerrZ   s    r9   Ú__init__zPDFXRef.__init__}   s   € Ø?AˆŒØ')ˆŒˆˆr8   c                 ó<   — d| j                              ¦   «         ›d�S )Nz<PDFXRef: offsets=ú>©rn   ÚkeysrZ   s    r9   Ú__repr__zPDFXRef.__repr__�   s!   € Ø< D¤L×$5Ò$5Ñ$7Ô$7Ð<Ð<Ð<Ð<r8   rd   c                 ót  — 	 	 |                      ¦   «         \  }}|                     ¦   «         }|sŒ0n"# t          $ r}t          d¦  «        |‚d }~ww xY w|                     d¦  «        r|                     |¦  «         �nƒ|                     d¦  «        }t          |¦  «        dk    rd|›d|›�}t          |¦  «        ‚	 t          t          |¦  «        \  }}n*# t          $ r}d|›d|›�}t          |¦  «        |‚d }~ww xY wt          |||z   ¦  «        D ]ê}		 |                      ¦   «         \  }
}|                     ¦   «         }n"# t          $ r}t          d¦  «        |‚d }~ww xY w|                     d¦  «        }t          |¦  «        d	k    rd
|›d|›�}t          |¦  «        ‚|\  }}}|dk    rŒ�t          |¦  «        }t          |¦  «        }|�|�d ||f| j        |	<   ŒÍt                               d|	||¦  «         Œë�Œt                               d| j        ¦  «         |                      |¦  «         d S )NTz Unexpected EOF - file corrupted?ó   traileró    é   zTrailer not found: z: line=zInvalid line: é   zInvalid XRef format: z, line=ó   nzcNot adding object %s to xref because position %r or generation number %r cannot be parsed as an intzxref objects: %r)ÚnextlineÚstripr'   r2   Ú
startswithÚseekÚsplitÚlenÚmapri   Ú
ValueErrorÚranger   rn   ÚlogÚwarningÚdebugÚload_trailer)r[   rd   ÚposÚlineÚerrÚfÚ	error_msgÚstartÚnobjsr`   Ú_Úpos_bÚgenno_bÚuse_bÚpos_iÚgenno_is                   r9   rf   zPDFXRef.load„   s­  € ð-	ðRØ$ŸošoÑ/Ô/‘��dØ—z’z‘|”|�Øð Øðøåð Rð Rð RÝ$Ð%GÑHÔHÈcÐQøøøøðRøøøà�Š˜zÑ*Ô*ð Ø—’˜CÑ Ô Ð ÙØ—
’
˜4Ñ Ô ˆAÝ�1‰vŒv˜Š{ˆ{ØK°&ÐKÐKÀ4ÐKÐK�	Ý$ YÑ/Ô/Ð/ð9Ý!$¥S¨!¡¤‘�˜˜øÝð 9ð 9ð 9ØF¨VÐFÐF¸dÐFÐF�	Ý$ YÑ/Ô/°SÐ8øøøøð9øøøõ ˜u e¨e¡mÑ4Ô4ð ð �ðVØ &§¢Ñ 1Ô 1‘I�Q˜ØŸ:š:™<œ<�D�DøÝð Vð Vð VÝ(Ð)KÑLÔLÐRUÐUøøøøðVøøøà—J’J˜tÑ$Ô$�Ý�q‘6”6˜Q’;�;Ø Q¸Ð QÐ QÈÐ QÐ Q�IÝ(¨Ñ3Ô3Ð3Ø*+Ñ'�˜ Ø˜D’=�=Øå  ™œ�Ý" 7Ñ+Ô+�ØÐ$¨Ð)<Ø+/°¸Ð*@�D”L Ñ'Ð'å—K’KðMàØØñô ð ð ñO-	õ^ 	�	Š	Ð$ d¤lÑ3Ô3Ð3Ø×Ò˜&Ñ!Ô!Ð!Ð!Ð!sD   ƒ-2 ²
A¼AÁAÃ C Ã
D Ã#C;Ã;D Ä+EÅ
E$ÅEÅE$c                 óÈ  — 	 |                      ¦   «         \  }}|t          d¦  «        u sJ t          |¦  «        ¦   «         ‚|                     ¦   «         \  }}nB# t          $ r5 |                     d¦  «        }|st          d¦  «        d ‚|d         \  }}Y nw xY w| j                             t          |¦  «        ¦  «         t                               d| j        ¦  «         d S )Nrw   é   zUnexpected EOF - file corruptedr   z
trailer=%r)Ú	nexttokenr(   rh   Ú
nextobjectr'   Úpopr2   ro   Úupdater!   r…   r‡   )r[   rd   r�   ÚkwdÚdicÚxs         r9   rˆ   zPDFXRef.load_trailer·   sç   € ð	Ø×'Ò'Ñ)Ô)‰HˆQ�Ø�#˜j™/œ/Ð)Ð)Ð)­3¨s©8¬8Ñ)Ô)Ð)Ø×(Ò(Ñ*Ô*‰HˆQ��øÝð 	ð 	ð 	Ø—
’
˜1‘”ˆAØð RÝ$Ð%FÑGÔGÈTÐQØ˜”t‰HˆQ���ð		øøøð
 	Œ×Ò�J s™OœOÑ,Ô,Ð,Ý�	Š	�, ¤Ñ-Ô-Ð-Ð-Ð-s   ‚AA Á<BÂBc                 ó   — | j         S rW   ©ro   rZ   s    r9   r\   zPDFXRef.get_trailerÄ   ó
   € ØŒ|Ðr8   c                 ó4   — | j                              ¦   «         S rW   rs   rZ   s    r9   r_   zPDFXRef.get_objidsÇ   s   € ØŒ|× Ò Ñ"Ô"Ð"r8   r`   c                 ó   — | j         |         S rW   )rn   rb   s     r9   rc   zPDFXRef.get_posÊ   s   € ØŒ|˜EÔ"Ð"r8   ©rU   N)r4   r5   r6   rp   rh   ru   r   rf   rˆ   rg   r   r\   r   ri   r_   rj   rc   r7   r8   r9   rl   rl   |   sü   € € € € € ð*ð *ð *ð *ð=˜#ð =ð =ð =ð =ð1"˜9ð 1"¨ð 1"ð 1"ð 1"ð 1"ðf. 9ð .°ð .ð .ð .ð .ð˜T # s (œ^ð ð ð ð ð#˜H SœMð #ð #ð #ð #ð#˜Sð # U¨3°©:°s¸CÐ+?Ô%@ð #ð #ð #ð #ð #ð #r8   rl   c                   óJ   — e Zd Zdefd„Z ej        d¦  «        Zdeddfd„Z	dS )ÚPDFXRefFallbackrU   c                 ó<   — d| j                              ¦   «         ›d�S )Nz<PDFXRefFallback: offsets=rr   rs   rZ   s    r9   ru   zPDFXRefFallback.__repr__Ï   s!   € ØD¨D¬L×,=Ò,=Ñ,?Ô,?ÐDÐDÐDÐDr8   z^(\d+)\s+(\d+)\s+obj\brd   Nc                 ó   — |                      d¦  «         	 	 |                     ¦   «         \  }}n# t          $ r Y d S w xY w|                     d¦  «        rL|                      |¦  «         |                      |¦  «         t
                               d| j        ¦  «         d S |                     d¦  «        }| j	         
                    |¦  «        }|sŒ¾|                     ¦   «         \  }}t          |¦  «        }t          |¦  «        }	d ||	f| j        |<   |                      |¦  «         |                     ¦   «         \  }
}t          |t           ¦  «        �r&|                     d¦  «        t$          u �r	t'          |¦  «        }	 |d         }n1# t(          $ r$ t*          j        rt/          d|›�¦  «        d ‚d}Y nw xY wt1          |                     ¦   «         ¦  «        }g }	 	 |                     ¦   «         \  }
}|                     t7          t          |¦  «        ¦  «         Œ@# t          $ r Y nw xY wt9          |t;          |¦  «        d	z  ¦  «        }t=          |¦  «        D ]}||d	z           }||df| j        |<   Œ�Œi)
Nr   r—   rw   útrailer: %rzlatin-1ÚTypeÚNúN is not defined: ry   )r   r|   r'   r~   rˆ   r…   r‡   ro   ÚdecodeÚ
PDFOBJ_CUEÚmatchÚgroupsri   rn   r™   Ú
isinstancer   ÚgetÚLITERAL_OBJSTMr%   ÚKeyErrorr   ÚSTRICTr   r   Úget_dataÚappendr   Úminr�   r„   )r[   rd   r‰   Ú
line_bytesrŠ   ÚmÚobjid_sÚgenno_sr`   Úgennor�   ÚobjÚstreamÚnÚparser1ÚobjsÚindexÚobjid1s                     r9   rf   zPDFXRefFallback.loadÔ   s   € Ø�Š�A‰Œˆð(	=ðØ$*§O¢OÑ$5Ô$5Ñ!��j�jøÝð ð ð Ø��ðøøøà×$Ò$ ZÑ0Ô0ð Ø—’˜CÑ Ô Ð Ø×!Ò! &Ñ)Ô)Ð)Ý—	’	˜-¨¬Ñ6Ô6Ð6Ø�Ø×$Ò$ YÑ/Ô/ˆDØ”×%Ò% dÑ+Ô+ˆAØð ØØ!"§¢¡¤ÑˆW�gÝ˜‘L”LˆEÝ˜‘L”LˆEØ#'¨¨eÐ"4ˆDŒL˜Ñà�KŠK˜ÑÔÐØ×(Ò(Ñ*Ô*‰HˆQ�Ý˜#�yÑ)Ô)ñ =¨c¯gªg°f©o¬oÅÐ.OÑ.OÝ% cÑ*Ô*�ðØ˜sœ�A�AøÝð ð ð Ý”ð XÝ,Ð-LÀ&Ð-LÐ-LÑMÔMÐSWÐWØ�A�A�Aðøøøõ *¨&¯/ª/Ñ*;Ô*;Ñ<Ô<�Ø"$�ðð4Ø#*×#5Ò#5Ñ#7Ô#7™˜˜CØŸš¥D­¨c¡N¤NÑ3Ô3Ð3ð4øõ ð ð ð Ø�Dðøøøå˜�3˜t™9œ9¨™>Ñ*Ô*�Ý" 1™XœXð =ð =�EØ! %¨!¡)œ_�FØ,1°5¸!Ð+<�D”L Ñ(Ð(ñQ(	=s1   ˜0 °
>½>ÆF Æ+F<Æ;F<Ç#AH$ È$
H1È0H1)
r4   r5   r6   rh   ru   ÚreÚcompiler®   r   rf   r7   r8   r9   r¦   r¦   Î   sj   € € € € € ðE˜#ð Eð Eð Eð Eð �”Ð5Ñ6Ô6€Jð*=˜9ð *=¨ð *=ð *=ð *=ð *=ð *=ð *=r8   r¦   c                   óŽ   — e Zd Zdd„Zdefd„Zdeddfd„Zdeee	f         fd„Z
dee         fd„Zd	edeedz  eef         fd
„ZdS )ÚPDFXRefStreamrU   Nc                 óZ   — d | _         d | _        d | _        d | _        d | _        g | _        d S rW   )ÚdataÚentlenÚfl1Úfl2Úfl3ÚrangesrZ   s    r9   rp   zPDFXRefStream.__init__  s0   € Ø"&ˆŒ	Ø"&ˆŒØ#ˆŒØ#ˆŒØ#ˆŒØ-/ˆŒˆˆr8   c                 ó   — d| j         ›d�S )Nz<PDFXRefStream: ranges=rr   )rÏ   rZ   s    r9   ru   zPDFXRefStream.__repr__
  s   € Ø9¨¬Ð9Ð9Ð9Ð9r8   rd   c           	      ó  — |                      ¦   «         \  }}|                      ¦   «         \  }}|                      ¦   «         \  }}|                     ¦   «         \  }}t          |t          ¦  «        r|                     d¦  «        t
          urt          d¦  «        ‚|d         }|                     dd|f¦  «        }t          |¦  «        dz  dk    rt          d¦  «        ‚| j	         
                    t          t          t          t          t          f                  t          d|¦  «        ¦  «        ¦  «         |d         \  | _        | _        | _        | j        �| j        �| j        €J ‚|                     ¦   «         | _        | j        | j        z   | j        z   | _        |j        | _        t0                               d	d
                     t7          t8          | j	        ¦  «        ¦  «        | j        | j        | j        ¦  «         d S )Nrª   zInvalid PDF stream spec.ÚSizeÚIndexr   ry   zInvalid index numberÚWz&xref stream: objid=%s, fields=%d,%d,%dz, )r˜   r™   r±   r   r²   ÚLITERAL_XREFr2   r�   r   rÏ   Úextendr   r   rj   ri   r+   rÌ   rÍ   rÎ   r¶   rÊ   rË   Úattrsro   r…   r‡   Újoinr‚   Úrepr)	r[   rd   r�   Ú_objidÚ_gennoÚ_kwdr¿   ÚsizeÚindex_arrays	            r9   rf   zPDFXRefStream.load  s»  € Ø×&Ò&Ñ(Ô(‰ˆˆFØ×&Ò&Ñ(Ô(‰ˆˆFØ×$Ò$Ñ&Ô&‰	ˆˆDØ×'Ò'Ñ)Ô)‰ˆˆFÝ˜&¥)Ñ,Ô,ð 	=°·
²
¸6Ñ0BÔ0BÍ,Ð0VÐ0VÝ Ð!;Ñ<Ô<Ð<Ø�fŒ~ˆØ—j’j ¨1¨d¨)Ñ4Ô4ˆÝˆ{ÑÔ˜aÑ 1Ò$Ð$Ý Ð!7Ñ8Ô8Ð8ØŒ×Ò�4¥­­sµC¨x¬Ô 9½8ÀAÀ{Ñ;SÔ;SÑTÔTÑUÔUÐUØ)/°¬Ñ&ˆŒ�4”8˜TœXØŒxÐ#¨¬Ð(<ÀÄÐAUÐAUÐUØ—O’OÑ%Ô%ˆŒ	Ø”h ¤Ñ)¨D¬HÑ4ˆŒØ”|ˆŒÝ�	Š	Ø4Ø�IŠI•c�$ ¤Ñ,Ô,Ñ-Ô-ØŒHØŒHØŒHñ	
ô 	
ð 	
ð 	
ð 	
r8   c                 ó   — | j         S rW   r    rZ   s    r9   r\   zPDFXRefStream.get_trailer&  r¡   r8   c              #   ó  K  — | j         D ]z\  }}t          |¦  «        D ]e}| j        €J ‚| j        €J ‚| j        |z  }| j        ||| j        z   …         }t	          |d | j        …         d¦  «        }|dk    s|dk    r||z   V — ŒfŒ{d S )Nr—   ry   )rÏ   r„   rË   rÊ   r/   rÌ   )r[   rŽ   r�   ÚiÚoffsetÚentÚf1s          r9   r_   zPDFXRefStream.get_objids)  s¶   è è € Ø œKð 	$ð 	$‰LˆE�5Ý˜5‘\”\ð $ð $�Ø”{Ð.Ð.Ð.Ø”yÐ,Ð,Ð,Øœ q™�Ø”i ¨°$´+Ñ)=Ð =Ô>�Ý˜S  4¤8 œ_¨aÑ0Ô0�Ø˜’7�7˜b Ašg˜gØ !™)�O�O�Oøð$ð	$ð 	$r8   r`   c                 ó,  — d}| j         D ]#\  }}||k    r|||z   k     r
|||z
  z  } n||z  }Œ$t          |¦  «        ‚| j        €J ‚| j        €J ‚| j        �| j        �| j        €J ‚| 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—   ry   )rÏ   r   rË   rÊ   rÌ   rÍ   rÎ   r/   )
r[   r`   rÃ   rŽ   r�   râ   rã   rä   Úf2Úf3s
             r9   rc   zPDFXRefStream.get_pos4  sQ  € ØˆØ œKð 	%ð 	%‰LˆE�5Ø˜Š~ˆ~ %¨%°%©-Ò"7Ð"7Ø˜ ™Ñ&�Ø�à˜‘��å˜eÑ$Ô$Ð$ØŒ{Ð&Ð&Ð&ØŒyÐ$Ð$Ð$ØŒxÐ#¨¬Ð(<ÀÄÐAUÐAUÐUØ”˜uÑ$ˆØŒi˜ ¨$¬+Ñ!5Ð5Ô6ˆÝ�S˜˜4œ8˜”_ aÑ(Ô(ˆÝ�S˜œ D¤H¨t¬xÑ$7Ð7Ô8Ñ9Ô9ˆÝ�S˜œ D¤HÑ,Ð.Ð.Ô/Ñ0Ô0ˆØ�Š7ˆ7Ø˜"˜b�>Ð!Ø�1ŠWˆWØ˜˜A�;Ðõ ˜eÑ$Ô$Ð$r8   r¤   )r4   r5   r6   rp   rh   ru   r   rf   rg   r   r\   r   ri   r_   rj   rc   r7   r8   r9   rÈ   rÈ     sÙ   € € € € € ð0ð 0ð 0ð 0ð:˜#ð :ð :ð :ð :ð
˜9ð 
¨ð 
ð 
ð 
ð 
ð2˜T # s (œ^ð ð ð ð ð	$˜H SœMð 	$ð 	$ð 	$ð 	$ð%˜Sð % U¨3°©:°s¸CÐ+?Ô%@ð %ð %ð %ð %ð %ð %r8   rÈ   c                   óf  — e Zd ZU dZdZeedf         ed<   	 ddee	         de
eef         ded	d
fd„Zd d„Zd d„Zd d„Zd	efd„Zd	efd„Zd	efd„Zde	d	e	fd„Zde	d	e	fd„Zded	e	d
z  fd„Zde	d	e	d
z  fd„Zde	d	efd„Zde	d	e	d
z  fd„Z	 d!dedede	de
eef         d
z  d	e	f
d„Zdedede	d	e	fd„Zd
S )"ÚPDFStandardSecurityHandlers    (¿N^NuŠAd NVÿú.. ¶Ðh>€/©þdSiz)ry   rz   .Úsupported_revisionsÚ ÚdocidÚparamÚpasswordrU   Nc                 óX   — || _         || _        || _        |                      ¦   «          d S rW   )rì   rí   rî   Úinit)r[   rì   rí   rî   s       r9   rp   z#PDFStandardSecurityHandler.__init__U  s*   € ð ˆŒ
ØˆŒ
Ø ˆŒØ�	Š	‰Œˆˆˆr8   c                 ó¤   — |                       ¦   «          | j        | j        vrd| j        ›�}t	          |¦  «        ‚|                      ¦   «          d S )NzUnsupported revision: param=)Úinit_paramsÚrrê   rí   rG   Úinit_key)r[   r�   s     r9   rð   zPDFStandardSecurityHandler.init`  sR   € Ø×ÒÑÔÐØŒ6˜Ô1Ð1Ð1ØE°t´zÐEÐEˆIÝ$ YÑ/Ô/Ð/Ø�Š‰Œˆˆˆr8   c                 ó´  — t          | j                             dd¦  «        ¦  «        | _        t          | j        d         ¦  «        | _        t          | j        d         d¦  «        | _        t          | j        d         ¦  «        | _        t          | j        d         ¦  «        | _	        t          | j                             dd	¦  «        ¦  «        | _
        d S )
NÚVr   ÚRÚPé    ÚOÚUÚLengthé(   )r"   rí   r²   Úvró   r&   Úpr$   ÚoÚuÚlengthrZ   s    r9   rò   z&PDFStandardSecurityHandler.init_paramsg  sš   € Ý˜4œ:Ÿ>š>¨#¨qÑ1Ô1Ñ2Ô2ˆŒÝ˜4œ: cœ?Ñ+Ô+ˆŒÝ˜DœJ sœO¨RÑ0Ô0ˆŒÝ˜4œ: cœ?Ñ+Ô+ˆŒÝ˜4œ: cœ?Ñ+Ô+ˆŒÝ ¤
§¢¨x¸Ñ <Ô <Ñ=Ô=ˆŒˆˆr8   c                 ó`   — |                       | j        ¦  «        | _        | j        €t          ‚d S rW   )Úauthenticaterî   ÚkeyrI   rZ   s    r9   rô   z#PDFStandardSecurityHandler.init_keyo  s/   € Ø×$Ò$ T¤]Ñ3Ô3ˆŒØŒ8ÐÝ&Ð&ð Ðr8   c                 ó0   — t          | j        dz  ¦  «        S )Né   ©Úboolrÿ   rZ   s    r9   Úis_printablez'PDFStandardSecurityHandler.is_printablet  ó   € Ý�D”F˜Q‘JÑÔÐr8   c                 ó0   — t          | j        dz  ¦  «        S )Né   r  rZ   s    r9   Úis_modifiablez(PDFStandardSecurityHandler.is_modifiablew  r  r8   c                 ó0   — t          | j        dz  ¦  «        S )Né   r  rZ   s    r9   Úis_extractablez)PDFStandardSecurityHandler.is_extractablez  s   € Ý�D”F˜R‘KÑ Ô Ð r8   r  c                 ó  ‡— | j         dk    r't          |¦  «                             | j        ¦  «        S t	          | j        ¦  «        }|                     | j        d         ¦  «         t          |¦  «                             |                     ¦   «         ¦  «        }t          dd¦  «        D ]RŠd 	                    ˆfd„t          |¦  «        D ¦   «         ¦  «        }t          |¦  «                             |¦  «        }ŒS||z  }|S )Nry   r   r—   é   r8   c              3   ó>   •K  — | ]}t          |‰z  f¦  «        V — Œd S rW   ©Úbytes©Ú.0Úcrá   s     €r9   ú	<genexpr>z7PDFStandardSecurityHandler.compute_u.<locals>.<genexpr>‡  ó/   øè è € Ð@Ð@°�U A¨¡E 8™_œ_Ð@Ð@Ð@Ð@Ð@Ð@r8   )ró   r   ÚencryptÚPASSWORD_PADDINGr   r›   rì   Údigestr„   rØ   Úiter)r[   r  ÚhashÚresultÚkrá   s        @r9   Ú	compute_uz$PDFStandardSecurityHandler.compute_u}  sã   ø€ ØŒ6�QŠ;ˆ;å˜3‘<”<×'Ò'¨Ô(=Ñ>Ô>Ð>õ �tÔ,Ñ-Ô-ˆDØ�KŠK˜œ
 1œÑ&Ô&Ð&Ý˜S‘\”\×)Ò)¨$¯+ª+©-¬-Ñ8Ô8ˆFÝ˜1˜b‘\”\ð 4ð 4�Ø—H’HÐ@Ð@Ð@Ð@µd¸3±i´iÐ@Ñ@Ô@Ñ@Ô@�Ý  ™œ×+Ò+¨FÑ3Ô3��Ø�fÑˆFØˆMr8   c                 óf  — || j         z   d d…         }t          |¦  «        }|                     | j        ¦  «         |                     t	          j        d| j        ¦  «        ¦  «         |                     | j        d         ¦  «         | j        dk    r/t          t          | ¦  «        j        s|                     d¦  «         |                     ¦   «         }d}| j        dk    rE| j        dz  }t          d	¦  «        D ]+}t          |d |…         ¦  «                             ¦   «         }Œ,|d |…         S )
Nrù   ú<Lr   r  s   ÿÿÿÿé   rz   r  é2   )r  r   r›   r   ÚstructÚpackrÿ   rì   ró   r   ÚPDFStandardSecurityHandlerV4Úencrypt_metadatar  r  r„   )r[   rî   r   r!  rÀ   r�   s         r9   Úcompute_encryption_keyz1PDFStandardSecurityHandler.compute_encryption_keyŒ  s  € à˜tÔ4Ñ4°c°r°cÔ:ˆÝ�8‰}Œ}ˆØ�Š�D”FÑÔÐà�Š•F”K  d¤fÑ-Ô-Ñ.Ô.Ð.Ø�Š�D”J˜q”MÑ"Ô"Ð"àŒF�aŠKˆKÝÕ5°tÑ<Ô<ÔMð ð �KŠKÐ+Ñ,Ô,Ð,Ø—’‘”ˆØˆØŒ6�QŠ;ˆ;Ø”˜qÑ ˆAÝ˜2‘Y”Yð 2ð 2�Ý˜V B Q BœZ™œ×/Ò/Ñ1Ô1��Ø�b�q�bŒzÐr8   c                 óˆ   — |                      d¦  «        }|                      |¦  «        }|€|                      |¦  «        }|S )NÚlatin1)ÚencodeÚauthenticate_user_passwordÚauthenticate_owner_password)r[   rî   Úpassword_bytesr  s       r9   r  z'PDFStandardSecurityHandler.authenticate¡  sC   € Ø!Ÿš¨Ñ2Ô2ˆØ×-Ò-¨nÑ=Ô=ˆØˆ;Ø×2Ò2°>ÑBÔBˆCØˆ
r8   c                 ó^   — |                       |¦  «        }|                      |¦  «        r|S d S rW   )r,  Úverify_encryption_key)r[   rî   r  s      r9   r0  z5PDFStandardSecurityHandler.authenticate_user_password¨  s5   € Ø×)Ò)¨(Ñ3Ô3ˆØ×%Ò% cÑ*Ô*ð 	ØˆJà�4r8   c                 óŽ   — |                       |¦  «        }| j        dk    r|| j        k    S |d d…         | j        d d…         k    S )Nry   r  )r#  ró   r  )r[   r  r  s      r9   r4  z0PDFStandardSecurityHandler.verify_encryption_key¯  sG   € à�NŠN˜3ÑÔˆØŒ6�QŠ;ˆ;Ø˜œ’;ÐØ��"�Œv˜œ   œÒ$Ð$r8   c                 óŽ  ‡— || j         z   d d…         }t          |¦  «        }| j        dk    r3t          d¦  «        D ]#}t          |                     ¦   «         ¦  «        }Œ$d}| j        dk    r
| j        dz  }|                     ¦   «         d |…         }| j        dk    r(t          |¦  «                             | j        ¦  «        }nk| j        }t          ddd¦  «        D ]RŠd	 	                    ˆfd
„t          |¦  «        D ¦   «         ¦  «        }t          |¦  «                             |¦  «        }ŒS|                      |¦  «        S )Nrù   rz   r'  r&  r  ry   é   éÿÿÿÿr8   c              3   ó>   •K  — | ]}t          |‰z  f¦  «        V — Œd S rW   r  r  s     €r9   r  zIPDFStandardSecurityHandler.authenticate_owner_password.<locals>.<genexpr>Æ  r  r8   )r  r   ró   r„   r  r  r   Údecryptr   rØ   r  r0  )	r[   rî   r   r�   rÀ   r  Úuser_passwordr"  rá   s	           @r9   r1  z6PDFStandardSecurityHandler.authenticate_owner_password¶  s4  ø€ à˜tÔ4Ñ4°c°r°cÔ:ˆÝ�8‰}Œ}ˆØŒ6�QŠ;ˆ;Ý˜2‘Y”Yð *ð *�Ý˜4Ÿ;š;™=œ=Ñ)Ô)��ØˆØŒ6�QŠ;ˆ;Ø”˜qÑ ˆAØ�kŠk‰mŒm˜B˜Q˜BÔˆØŒ6�QŠ;ˆ;Ý# C™LœL×0Ò0°´Ñ8Ô8ˆMˆMà œFˆMÝ˜2˜r 2Ñ&Ô&ð Bð B�Ø—H’HÐ@Ð@Ð@Ð@µd¸3±i´iÐ@Ñ@Ô@Ñ@Ô@�Ý '¨¡
¤
× 2Ò 2°=Ñ AÔ A��Ø×.Ò.¨}Ñ=Ô=Ð=r8   r`   r½   rÊ   r×   c                 ó0   — |                       |||¦  «        S rW   )Údecrypt_rc4)r[   r`   r½   rÊ   r×   s        r9   r:  z"PDFStandardSecurityHandler.decryptÊ  s   € ð ×Ò  u¨dÑ3Ô3Ð3r8   c                 ój  — | j         €J ‚| j         t          j        d|¦  «        d d…         z   t          j        d|¦  «        d d…         z   }t          |¦  «        }|                     ¦   «         d t          t          |¦  «        d¦  «        …         }t          |¦  «                             |¦  «        S )Nr%  rz   ry   r  )	r  r(  r)  r   r  r¸   r�   r   r:  )r[   r`   r½   rÊ   r  r   s         r9   r=  z&PDFStandardSecurityHandler.decrypt_rc4Ó  s›   € ØŒxÐ#Ð#Ð#ØŒh�œ T¨5Ñ1Ô1°"°1°"Ô5Ñ5½¼ÀDÈ%Ñ8PÔ8PÐQSÐRSÐQSÔ8TÑTˆÝ�3‰xŒxˆØ�kŠk‰mŒmÐ/�c¥# c¡(¤(¨BÑ/Ô/Ð/Ô0ˆÝ�s‰|Œ|×#Ò# DÑ)Ô)Ð)r8   ©rë   r¤   rW   )r4   r5   r6   r  rê   rj   ri   Ú__annotations__r   r  rg   rh   r   rp   rð   rò   rô   r	  r
  r  r  r#  r,  r  r0  r4  r1  r:  r=  r7   r8   r9   ré   ré   O  sy  € € € € € € àUð ð ,2Ð˜˜s C˜xœÐ1Ð1Ñ1ð ð		ð 	à˜Œð	ð �C˜�HŒ~ð	ð ð		ð
 
ð	ð 	ð 	ð 	ðð ð ð ð>ð >ð >ð >ð'ð 'ð 'ð 'ð
 ˜dð  ð  ð  ð  ð ˜tð  ð  ð  ð  ð! ð !ð !ð !ð !ð˜Uð  uð ð ð ð ð¨uð ¸ð ð ð ð ð* Sð ¨U°T©\ð ð ð ð ð°5ð ¸UÀT¹\ð ð ð ð ð%¨ð %°4ð %ð %ð %ð %ð>°Eð >¸eÀd¹lð >ð >ð >ð >ð2 (,ð4ð 4àð4ð ð4ð ð	4ð
 �C˜�HŒ~ Ñ$ð4ð 
ð4ð 4ð 4ð 4ð* ð *¨Sð *¸ð *À%ð *ð *ð *ð *ð *ð *r8   ré   c                   óÞ   ‡ — e Zd ZU dZeedf         ed<   dˆ fd„Zdede	eee
ge
f         dz  fd„Z	 	 dd	ed
ede
deeef         dz  dedz  de
fd„Zd	ed
ede
de
fd„Zd	ed
ede
de
fd„Zˆ xZS )r*  )r  .rê   rU   Nc                 ó(  •— t          ¦   «                              ¦   «          d| _        t          | j                             d¦  «        ¦  «        | _        t          | j        d         ¦  «        | _        t          | j        d         ¦  «        | _	        t          | j                             dd¦  «        ¦  «        | _        | j        | j	        k    rd| j        ›�}t          |¦  «        ‚i | _        | j                             ¦   «         D ]R\  }}|                      t          |d         ¦  «        ¦  «        }|€d	| j        ›�}t          |¦  «        ‚|| j        |<   ŒS| j        | j        d
<   | j	        | j        vrd| j        ›�}t          |¦  «        ‚d S )Né€   ÚCFÚStmFÚStrFÚEncryptMetadataTz Unsupported crypt filter: param=ÚCFMz#Unknown crypt filter method: param=ÚIdentityzUndefined crypt filter: param=)Úsuperrò   r  r!   rí   r²   Úcfr*   ÚstmfÚstrfr	  r+  rG   ÚcfmÚitemsÚget_cfmÚdecrypt_identity)r[   r�   r"  rþ   rŒ   Ú	__class__s        €r9   rò   z(PDFStandardSecurityHandlerV4.init_paramsÞ  si  ø€ Ý‰Œ×ÒÑÔÐØˆŒÝ˜TœZŸ^š^¨DÑ1Ô1Ñ2Ô2ˆŒÝ  ¤¨FÔ!3Ñ4Ô4ˆŒ	Ý  ¤¨FÔ!3Ñ4Ô4ˆŒ	Ý $ T¤Z§^¢^Ð4EÀtÑ%LÔ%LÑ MÔ MˆÔØŒ9˜œ	Ò!Ð!ØI¸4¼:ÐIÐIˆIÝ$ YÑ/Ô/Ð/ØˆŒØ”G—M’M‘O”Oð 	ð 	‰DˆAˆqØ—’�\¨!¨E¬(Ñ3Ô3Ñ4Ô4ˆAØˆyØPÀ$Ä*ÐPÐP�	Ý(¨Ñ3Ô3Ð3ØˆDŒH�Q‰KˆKØ#Ô4ˆŒ�ÑØŒ9˜DœHÐ$Ð$ØG¸¼ÐGÐGˆIÝ$ YÑ/Ô/Ð/ð %Ð$r8   Únamec                 ó:   — |dk    r| j         S |dk    r| j        S d S )NÚV2ÚAESV2)r=  Údecrypt_aes128©r[   rS  s     r9   rP  z$PDFStandardSecurityHandlerV4.get_cfmô  s+   € Ø�4Š<ˆ<ØÔ#Ð#Ø�WŠ_ˆ_ØÔ&Ð&à�4r8   r`   r½   rÊ   r×   c                 ó®   — | j         s.|�,|                     d¦  «        }|�t          |¦  «        dk    r|S |€| j        } | j        |         |||¦  «        S )Nrª   ÚMetadata)r+  r²   r*   rM  rN  )r[   r`   r½   rÊ   r×   rS  Úts          r9   r:  z$PDFStandardSecurityHandlerV4.decryptü  se   € ð Ô$ð 	¨Ð):Ø—	’	˜&Ñ!Ô!ˆAØˆ}¥¨a¡¤°JÒ!>Ð!>Ø�Øˆ<Ø”9ˆDØˆtŒx˜Œ~˜e U¨DÑ1Ô1Ð1r8   c                 ó   — |S rW   r7   )r[   r`   r½   rÊ   s       r9   rQ  z-PDFStandardSecurityHandlerV4.decrypt_identity  s   € Øˆr8   c                 óD  — | j         €J ‚| j         t          j        d|¦  «        d d…         z   t          j        d|¦  «        d d…         z   dz   }t          |¦  «        }|                     ¦   «         d t          t          |¦  «        d¦  «        …         }|d d…         }|dd …         }t          t          j	        |¦  «        t          j        |¦  «        t          ¦   «         ¬¦  «        }|                     ¦   «                              |¦  «        }	t          |	¦  «        S )Nr%  rz   ry   s   sAlTr  ©Úbackend)r  r(  r)  r   r  r¸   r�   r   r   ÚAESr   ÚCBCr   Ú	decryptorr›   r0   )
r[   r`   r½   rÊ   r  r   Úinitialization_vectorÚ
ciphertextÚcipherÚ	plaintexts
             r9   rW  z+PDFStandardSecurityHandlerV4.decrypt_aes128  s  € ØŒxÐ#Ð#Ð#àŒHÝŒk˜$ Ñ&Ô& r¨ rÔ*ñ+åŒk˜$ Ñ&Ô& r¨ rÔ*ñ+ð ñð 	õ �3‰xŒxˆØ�kŠk‰mŒmÐ/�c¥# c¡(¤(¨BÑ/Ô/Ð/Ô0ˆØ $ S b S¤	ÐØ˜"˜#˜#”Yˆ
ÝÝŒN˜3ÑÔÝŒIÐ+Ñ,Ô,Ý#Ñ%Ô%ð
ñ 
ô 
ˆð
 ×$Ò$Ñ&Ô&×-Ò-¨jÑ9Ô9ˆ	Ý˜Ñ#Ô#Ð#r8   r¤   )NN)r4   r5   r6   rê   rj   ri   r@  rò   rh   r   r  rP  rg   r   r:  rQ  rW  Ú__classcell__©rR  s   @r9   r*  r*  Û  s\  ø€ € € € € € Ø+/Ð˜˜s C˜xœÐ/Ð/Ñ/ð0ð 0ð 0ð 0ð 0ð 0ð,˜Cð  H¨c°3¸Ð->ÀÐ-EÔ$FÈÑ$Mð ð ð ð ð (,Øð2ð 2àð2ð ð2ð ð	2ð
 �C˜�HŒ~ Ñ$ð2ð �D‰jð2ð 
ð2ð 2ð 2ð 2ð  cð °#ð ¸Uð Àuð ð ð ð ð$ Cð $°ð $¸5ð $ÀUð $ð $ð $ð $ð $ð $ð $ð $r8   r*  c            	       ó,  ‡ — e Zd ZdZdˆ fd„Zdedeeeegef         dz  fd„Z	dededz  fd„Z
dedefd	„Z	 dded
ededz  defd„Z	 dded
ededz  defd„Z	 dded
ededz  defd„Zededefd„¦   «         Zdedededefd„Zdedededefd„Zˆ xZS )ÚPDFStandardSecurityHandlerV5)r&  é   rU   Nc                 óÂ  •— 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 …         | _        d S )Né   ÚOEÚUErù   rý   )rJ  rò   r  r$   rí   ÚoeÚuer   Úo_hashÚo_validation_saltÚ
o_key_saltr  Úu_hashÚu_validation_saltÚ
u_key_salt)r[   rR  s    €r9   rò   z(PDFStandardSecurityHandlerV5.init_params'  s¸   ø€ Ý‰Œ×ÒÑÔÐØˆŒÝ˜DœJ tÔ,Ñ-Ô-ˆŒÝ˜DœJ tÔ,Ñ-Ô-ˆŒØ”f˜S˜b˜S”kˆŒØ!%¤¨¨2¨¤ˆÔØœ&   œ+ˆŒØ”f˜S˜b˜S”kˆŒØ!%¤¨¨2¨¤ˆÔØœ&   œ+ˆŒˆˆr8   rS  c                 ó    — |dk    r| j         S d S )NÚAESV3)Údecrypt_aes256rX  s     r9   rP  z$PDFStandardSecurityHandlerV5.get_cfm3  s   € Ø�7Š?ˆ?ØÔ&Ð&à�4r8   rî   c                 ó  — |                       |¦  «        }|                      || j        | j        ¦  «        }|| j        k    r�|                      || j        | j        ¦  «        }t          t          j        |¦  «        t          j
        d¦  «        t          ¦   «         ¬¦  «        }|                     ¦   «                              | j        ¦  «        S |                      || j        ¦  «        }|| j        k    r‰|                      || j        ¦  «        }t          t          j        |¦  «        t          j
        d¦  «        t          ¦   «         ¬¦  «        }|                     ¦   «                              | j        ¦  «        S d S )Ns                   r^  )Ú_normalize_passwordÚ_password_hashrs  r  rr  rt  r   r   r`  r   ra  r   rb  r›   rp  rv  ru  rw  rq  )r[   rî   Ú
password_br   re  s        r9   r  z)PDFStandardSecurityHandlerV5.authenticate9  sP  € Ø×-Ò-¨hÑ7Ô7ˆ
Ø×"Ò" :¨tÔ/EÀtÄvÑNÔNˆØ�4”;ÒÐØ×&Ò& z°4´?ÀDÄFÑKÔKˆDÝÝ”˜tÑ$Ô$Ý”	˜*Ñ%Ô%Ý'Ñ)Ô)ðñ ô ˆFð
 ×#Ò#Ñ%Ô%×,Ò,¨T¬WÑ5Ô5Ð5Ø×"Ò" :¨tÔ/EÑFÔFˆØ�4”;ÒÐØ×&Ò& z°4´?ÑCÔCˆDÝÝ”˜tÑ$Ô$Ý”	˜*Ñ%Ô%Ý'Ñ)Ô)ðñ ô ˆFð
 ×#Ò#Ñ%Ô%×,Ò,¨T¬WÑ5Ô5Ð5Øˆtr8   c                 ó|   — | j         dk    r|sdS ddlm}  ||¦  «        }|                     d¦  «        d d…         S )Nrk  r8   r   )Úsaslprepzutf-8é   )ró   Úpdfminer._saslprepr€  r/  )r[   rî   r€  s      r9   r|  z0PDFStandardSecurityHandlerV5._normalize_passwordO  sV   € ØŒ6�QŠ;ˆ;àð Ø�sØ3Ð3Ð3Ð3Ð3Ð3à�x Ñ)Ô)ˆHØ�Š˜wÑ'Ô'¨¨¨Ô-Ð-r8   ÚsaltÚvectorc                 ó„   — | j         dk    r|                      |||¦  «        S |                      ||dd…         |¦  «        S )z2Compute password hash depending on revision numberr&  r   r  )ró   Ú_r5_passwordÚ_r6_password)r[   rî   rƒ  r„  s       r9   r}  z+PDFStandardSecurityHandlerV5._password_hashY  sG   € ð Œ6�QŠ;ˆ;Ø×$Ò$ X¨t°VÑ<Ô<Ð<Ø× Ò  ¨4°°!°¬9°fÑ=Ô=Ð=r8   c                 ó    — t          |¦  «        }|                     |¦  «         |�|                     |¦  «         |                     ¦   «         S )z#Compute the password for revision 5)r	   r›   r  )r[   rî   rƒ  r„  r   s        r9   r†  z)PDFStandardSecurityHandlerV5._r5_passwordd  sI   € õ �hÑÔˆØ�Š�DÑÔÐØÐØ�KŠK˜ÑÔÐØ�{Š{‰}Œ}Ðr8   c                 óD  — t          |¦  «        }|                     |¦  «         |�|                     |¦  «         |                     ¦   «         }t           t          t          f}dx}}|dk     s	||dz
  k    r¡||z   |pdz   dz  }	|                      |dd…         |dd…         |	¬¦  «        }
||                      |
dd…         ¦  «                 } ||
¦  «                             ¦   «         }|
t          |
¦  «        dz
           }|dz  }|dk     °˜||dz
  k    °¡|dd…         S )	z#Compute the password for revision 6Nr   é@   rù   r8   r  )r  ÚivrÊ   r—   )r	   r›   r  r
   r   Ú_aes_cbc_encryptÚ_bytes_mod_3r�   )r[   rî   rƒ  r„  Úinitial_hashr"  ÚhashesÚround_noÚlast_byte_valÚk1ÚeÚ	next_hashs               r9   r‡  z)PDFStandardSecurityHandlerV5._r6_passwordq  s=  € õ ˜hÑ'Ô'ˆØ×Ò˜DÑ!Ô!Ð!ØÐØ×Ò Ñ'Ô'Ð'Ø×ÒÑ!Ô!ˆÝ�&¥&Ð)ˆØ#$Ð$ˆ�=Ø˜Šmˆm˜}¨x¸"©}Ò<Ð<Ø˜Q‘, & -¨CÑ0°BÑ6ˆBØ×%Ò%¨!¨C¨R¨C¬&°Q°r¸"°u´XÀBÐ%ÑGÔGˆAð ˜t×0Ò0°°3°B°3´Ñ8Ô8Ô9ˆIØ�	˜!‘”×#Ò#Ñ%Ô%ˆAØ�c !™fœf q™jœMˆMØ˜‰MˆHð ˜Šmˆm˜}¨x¸"©}Ò<Ð<ð ��"�Œvˆr8   Úinput_bytesc                 ó:   — t          d„ | D ¦   «         ¦  «        dz  S )Nc              3   ó    K  — | ]	}|d z  V — Œ
dS )rz   Nr7   )r  Úbs     r9   r  z<PDFStandardSecurityHandlerV5._bytes_mod_3.<locals>.<genexpr>�  s&   è è € Ð.Ð.˜Q�1�q‘5Ð.Ð.Ð.Ð.Ð.Ð.r8   rz   )Úsum)r•  s    r9   r�  z)PDFStandardSecurityHandlerV5._bytes_mod_3Š  s&   € õ Ð.Ð. +Ð.Ñ.Ô.Ñ.Ô.°Ñ2Ð2r8   r  r‹  rÊ   c                 óæ   — t          t          j        |¦  «        t          j        |¦  «        ¦  «        }|                     ¦   «         }|                     |¦  «        |                     ¦   «         z   S rW   )r   r   r`  r   ra  Ú	encryptorr›   Úfinalize)r[   r  r‹  rÊ   re  r›  s         r9   rŒ  z-PDFStandardSecurityHandlerV5._aes_cbc_encrypt�  sY   € Ý�
œ sÑ+Ô+­U¬Y°r©]¬]Ñ;Ô;ˆØ×$Ò$Ñ&Ô&ˆ	Ø×Ò Ñ%Ô%¨	×(:Ò(:Ñ(<Ô(<Ñ<Ð<r8   r`   r½   c                 ó6  — |d d…         }|dd …         }| j         €J ‚t          t          j        | j         ¦  «        t	          j        |¦  «        t          ¦   «         ¬¦  «        }|                     ¦   «                              |¦  «        }t          |¦  «        S )Nr  r^  )
r  r   r   r`  r   ra  r   rb  r›   r0   )r[   r`   r½   rÊ   rc  rd  re  rf  s           r9   rz  z+PDFStandardSecurityHandlerV5.decrypt_aes256”  s”   € Ø $ S b S¤	ÐØ˜"˜#˜#”Yˆ
ØŒxÐ#Ð#Ð#ÝÝŒN˜4œ8Ñ$Ô$ÝŒIÐ+Ñ,Ô,Ý#Ñ%Ô%ð
ñ 
ô 
ˆð
 ×$Ò$Ñ&Ô&×-Ò-¨jÑ9Ô9ˆ	Ý˜Ñ#Ô#Ð#r8   r¤   rW   )r4   r5   r6   rê   rò   rh   r   ri   r  rP  r  r|  r}  r†  r‡  Ústaticmethodr�  rŒ  rz  rg  rh  s   @r9   rj  rj  $  s)  ø€ € € € € Ø Ðð
&ð 
&ð 
&ð 
&ð 
&ð 
&ð˜Cð  H¨c°3¸Ð->ÀÐ-EÔ$FÈÑ$Mð ð ð ð ð Sð ¨U°T©\ð ð ð ð ð,.¨Cð .°Eð .ð .ð .ð .ð  $ð		>ð 	>àð	>ð ð	>ð ˜‘ð		>ð
 
ð	>ð 	>ð 	>ð 	>ð  $ð	ð àðð ðð ˜‘ð	ð
 
ðð ð ð ð"  $ð	ð àðð ðð ˜‘ð	ð
 
ðð ð ð ð2 ð3 %ð 3¨Cð 3ð 3ð 3ñ „\ð3ð= Eð =¨uð =¸Eð =Àeð =ð =ð =ð =ð

$ Cð 
$°ð 
$¸5ð 
$ÀUð 
$ð 
$ð 
$ð 
$ð 
$ð 
$ð 
$ð 
$r8   rj  c                   ó¶  — e Zd ZU dZeeeedœZee	e
ee         f                  ed<   	 	 	 d"dededed	ed
df
d„Z ed¦  «        Zd#ded
dfd„Zdede
de
d
efd„Zded
eee         e
f         fd„Zde
de
d
efd„Zde
d
efd„Zeeeeeef         Zd
ee         fd„Zd
ee         fd„Z dedee!z  d
efd„Z"dee!z  d
efd„Z#ded
e
fd„Z$dede
d ee%         d
dfd!„Z&dS )$Ú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—   ry   r  r&  Úsecurity_handler_registryrë   Trd   rî   ÚcachingÚfallbackrU   Nc                 ó   — || _         g | _        g | _        i | _        d| _        d| _        d| _        i | _        i | _        || _        | j         	                    | ¦  «         dx| _
        x| _        | _        	 |                      |¦  «        }|                      ||| j        ¦  «         nV# t          $ rI |rDd|_        t#          ¦   «         }|                     |¦  «         | j                             |¦  «         Y nw xY w| j        D ]º}|                     ¦   «         }|sŒd|v rLd|v rt+          |d         ¦  «        nd}	|	t-          |d         ¦  «        f| _        |                      |¦  «         d|v r-| j                             t-          |d         ¦  «        ¦  «         d|v rt-          |d         ¦  «        | _         nŒ»t1          d¦  «        ‚| j                             d	¦  «        t4          urt6          j        rt1          d
¦  «        ‚dS dS )z1Set the document to use a given PDFParser object.NTÚEncryptÚID)r8   r8   ÚInfoÚRootz(No /Root object! - Is this really a PDF?rª   zCatalog not found!)r¢  ÚxrefsÚinfoÚcatalogÚ
encryptionÚdecipherÚ_parserÚ_cached_objsÚ_parsed_objsÚset_documentr
  r  r  Ú	find_xrefÚread_xref_fromr2   r£  r¦   rf   r·   r\   r#   r!   Ú_initialize_passwordr   r²   ÚLITERAL_CATALOGr   rµ   )
r[   rd   rî   r¢  r£  r‰   ÚnewxrefÚxrefro   Úid_values
             r9   rp   zPDFDocument.__init__µ  s:  € ð ˆŒØ(*ˆŒ
ØˆŒ	Ø')ˆŒØ26ˆŒØ15ˆŒØˆŒØ;=ˆÔØACˆÔØˆŒØŒ×!Ò! $Ñ'Ô'Ð'ØGKÐKˆÔÐK˜DÔ.°Ô1Dð	+Ø—.’. Ñ(Ô(ˆCØ×Ò ¨¨T¬ZÑ8Ô8Ð8Ð8øÝð 	+ð 	+ð 	+Øð +Ø"&�”Ý)Ñ+Ô+�Ø—’˜VÑ$Ô$Ð$Ø”
×!Ò! 'Ñ*Ô*Ð*øøð	+øøøð ”Jð 	Mð 	MˆDØ×&Ò&Ñ(Ô(ˆGØð Øà˜GÐ#Ð#ð 9=À¸¸�: g¨d¤mÑ4Ô4Ð4ÈZ�Ø#+­Z¸À	Ô8JÑ-KÔ-KÐ"L�”Ø×)Ò)¨(Ñ3Ô3Ð3Ø˜Ð Ð Ø”	× Ò ¥¨G°F¬OÑ!<Ô!<Ñ=Ô=Ð=Ø˜Ð Ð å)¨'°&¬/Ñ:Ô:�”Ø�ð !õ
 !Ð!KÑLÔLÐLØŒ<×Ò˜FÑ#Ô#­?Ð:Ð:½x¼Ð:Ý Ð!5Ñ6Ô6Ð6ð ;Ð:Ð:Ð:s   Á71B) Â)AC<Ã;C<ó   objc                 ó0  — | j         €J ‚| j         \  }}t          |                     d¦  «        ¦  «        dk    rt          d|›�¦  «        ‚t	          |                     dd¦  «        ¦  «        }| j                             |¦  «        }|€t          d|›�¦  «        ‚ ||||¦  «        }|j        | _        |                     ¦   «         | _        | 	                    ¦   «         | _	        | 
                    ¦   «         | _
        | j        €J ‚d| j        _        d S )NÚFilterÚStandardzUnknown filter: param=rö   r   zUnknown algorithm: param=F)r¬  r*   r²   rG   r"   r¡  r:  r­  r
  r  r  r®  r£  )r[   rî   rì   rí   rþ   ÚfactoryÚhandlers          r9   r´  z PDFDocument._initialize_passwordð  s  € ØŒÐ*Ð*Ð*Øœ‰ˆ�Ý˜Ÿ	š	 (Ñ+Ô+Ñ,Ô,°
Ò:Ð:Ý$Ð%G¸eÐ%GÐ%GÑHÔHÐHÝ�e—i’i  QÑ'Ô'Ñ(Ô(ˆØÔ0×4Ò4°QÑ7Ô7ˆØˆ?Ý$Ð%JÀÐ%JÐ%JÑKÔKÐKØ�'˜% ¨Ñ1Ô1ˆØœˆŒØ#×0Ò0Ñ2Ô2ˆÔØ$×2Ò2Ñ4Ô4ˆÔØ%×4Ò4Ñ6Ô6ˆÔØŒ|Ð'Ð'Ð'Ø %ˆŒÔÐÐr8   r¿   rÃ   r`   c                 ó.  — |j         | j        v r| j        |j                  \  }}n9|                      |¦  «        \  }}| j        r|j         €J ‚||f| j        |j         <   |dz  |z   }	 ||         }n%# t          $ r}t          d|›�¦  «        |‚d }~ww xY w|S )Nry   zindex too big: )r`   r°  Ú_get_objectsr¢  Ú
IndexErrorr   )	r[   r¿   rÃ   r`   rÂ   rÀ   rá   r¾   r‹   s	            r9   Ú_getobj_objstmzPDFDocument._getobj_objstm  sÈ   € ØŒ<˜4Ô,Ð,Ð,ØÔ)¨&¬,Ô7‰IˆT�1�1à×)Ò)¨&Ñ1Ô1‰IˆT�1ØŒ|ð <Ø”|Ð/Ð/Ð/Ø37¸°)�Ô! &¤,Ñ/Ø�‰E�E‰Mˆð	GØ�q”'ˆCˆCøÝð 	Gð 	Gð 	GÝ Ð!<°5Ð!<Ð!<Ñ=Ô=À3ÐFøøøøð	Gøøøàˆ
s   Á'A0 Á0
BÁ:BÂBc                 ó  — |                      d¦  «        t          urt          j        rt	          d|›�¦  «        ‚	 t          t          |d         ¦  «        }n1# t          $ r$ t          j        rt	          d|›�¦  «        d ‚d}Y nw xY wt          | 	                    ¦   «         ¦  «        }| 
                    | ¦  «         g }	 	 |                     ¦   «         \  }}|                     |¦  «         Œ-# t          $ r Y nw xY w||fS )Nrª   zNot a stream object: r«   r¬   r   )r²   r³   r   rµ   r   r   ri   r´   r   r¶   r±  r™   r·   r'   )r[   r¿   rÀ   rd   rÂ   r�   r¾   s          r9   rÀ  zPDFDocument._get_objects  s-  € Ø�:Š:�fÑÔ¥^Ð3Ð3½¼Ð3Ý Ð!C¸Ð!CÐ!CÑDÔDÐDð	Ý•S˜& œ+Ñ&Ô&ˆAˆAøÝð 	ð 	ð 	ÝŒð PÝ$Ð%D¸&Ð%DÐ%DÑEÔEÈ4ÐOØˆAˆAˆAð	øøøõ ! §¢Ñ!2Ô!2Ñ3Ô3ˆØ×Ò˜DÑ!Ô!Ð!Øˆð	ð!Ø!×,Ò,Ñ.Ô.‘��CØ—’˜CÑ Ô Ð ð!øõ ð 	ð 	ð 	ØˆDð	øøøà�aˆyÐs#   ¼A Á+BÂBÃ.C0 Ã0
C=Ã<C=r‰   c                 óx  — | j         €J ‚| j                              |¦  «         | j                              ¦   «         \  }}| j                              ¦   «         \  }}| j                              ¦   «         \  }}||k    r`g }|| j        ur:| j                              ¦   «         \  }}|                     |¦  «         || j        u°:t          |¦  «        dk    r|d         }||k    rt          d|›d|›�¦  «        ‚|t          d¦  «        k    rt          d|›�¦  «        ‚| j                              ¦   «         \  }}|S )Nry   éþÿÿÿzobjid mismatch: ú=r¹  zInvalid object spec: offset=)	r®  r   r˜   ÚKEYWORD_OBJr·   r�   r   r(   r™   )	r[   r‰   r`   r�   rÄ   rÛ   rœ   rž   r¾   s	            r9   Ú_getobj_parsezPDFDocument._getobj_parse$  sE  € ØŒ|Ð'Ð'Ð'ØŒ×Ò˜#ÑÔÐØ”l×,Ò,Ñ.Ô.‰ˆˆFØ”l×,Ò,Ñ.Ô.‰ˆˆFØ”<×)Ò)Ñ+Ô+‰ˆˆCð �UŠ?ˆ?ØˆAØ˜TÔ-Ð-Ð-Øœ<×1Ò1Ñ3Ô3‘��CØ—’˜‘”�ð ˜TÔ-Ð-Ð-õ �1‰vŒv˜Š{ˆ{Ø˜2œ�à�UŠ?ˆ?Ý Ð!H°FÐ!HÐ!H¸uÐ!HÐ!HÑIÔIÐIà•#�f‘+”+ÒÐÝ Ð!GÀÐ!GÐ!GÑHÔHÐHØ”<×*Ò*Ñ,Ô,‰ˆˆCØˆ
r8   c                 óì  — | j         st          d¦  «        ‚t                               d|¦  «         || j        v r| j        |         \  }}�n'| j         D ]á}	 |                     |¦  «        \  }}}n# t          $ r Y Œ)w xY w	 |�:t          |                      |¦  «        ¦  «        }|  	                    |||¦  «        }n4|  
                    ||¦  «        }| j        rt          | j        |||¦  «        }t          |t          ¦  «        r|                     ||¦  «          n&# t           t"          f$ r Y ŒÞw xY wt%          |¦  «        ‚t                               d||¦  «         | j        r||f| j        |<   |S )z�Get object from PDF

        :raises PDFException if PDFDocument is not initialized
        :raises PDFObjectNotFound if objid does not exist in PDF
        zPDFDocument is not initializedzgetobj: objid=%rNzregister: objid=%r: %r)r©  r   r…   r‡   r¯  rc   r´   r%   ÚgetobjrÂ  rÈ  r­  r    r±   r   Ú	set_objidr'   r   r   r¢  )r[   r`   r¾   r½   r·  ÚstrmidrÃ   r¿   s           r9   rÊ  zPDFDocument.getobj@  s¯  € ð Œzð 	AÝÐ?Ñ@Ô@Ð@Ý�	Š	Ð$ eÑ,Ô,Ð,ð �DÔ%Ð%Ð%ØÔ,¨UÔ3‰LˆS�%‘%àœ
ð /ð /�ðØ-1¯\ª\¸%Ñ-@Ô-@Ñ*�V˜U E EøÝð ð ð Ø�HðøøøðØÐ)Ý!-¨d¯kªk¸&Ñ.AÔ.AÑ!BÔ!B˜Ø"×1Ò1°&¸%ÀÑGÔG˜˜à"×0Ò0°¸Ñ>Ô>˜Øœ=ð QÝ".¨t¬}¸eÀUÈCÑ"PÔ"P˜Cå! #¥yÑ1Ô1ð 4ØŸš e¨UÑ3Ô3Ð3Ø�EøÝ�~Ð.ð ð ð Ø�Hðøøøõ (¨Ñ.Ô.Ð.Ý�IŠIÐ.°°sÑ;Ô;Ð;ØŒ|ð 8Ø,/°¨<�Ô! %Ñ(Øˆ
s%   ÁA1Á1
A>Á=A>ÂBDÄD3Ä2D3c                 ó¨   ‡— d| j         vrt          ‚dt          dt          dt          t
          j                 fˆfd„Š ‰| j         d         d¦  «        S )NÚOutlinesÚentryÚlevelrU   c              3   ó˜  •K  — t          | ¦  «        } d| v rrd| v sd| v rjt          t          | d         ¦  «        ¦  «        }|                      d¦  «        }|                      d¦  «        }|                      d¦  «        }|||||fV — d| v rd| v r ‰| d         |dz   ¦  «        E d {V —† d| v r ‰| d         |¦  «        E d {V —† d S d S )	NÚTitleÚAÚDestÚSEÚFirstÚLastr—   ÚNext)r!   r,   r$   r²   )rÏ  rÐ  ÚtitleÚdestÚactionÚseÚsearchs         €r9   rÝ  z(PDFDocument.get_outlines.<locals>.searchn  s  øè è € Ý˜uÑ%Ô%ˆEØ˜%ÐÐ S¨E \ \°V¸u°_°_Ý#¥I¨e°G¬nÑ$=Ô$=Ñ>Ô>�Ø—y’y Ñ(Ô(�ØŸš 3™œ�Ø—Y’Y˜t‘_”_�Ø˜e T¨6°2Ð6Ð6Ð6Ð6Ø˜%ÐÐ F¨e O OØ!˜6 %¨¤.°%¸!±)Ñ<Ô<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ø˜ˆˆØ!˜6 %¨¤-°Ñ7Ô7Ð7Ð7Ð7Ð7Ð7Ð7Ð7Ð7Ð7ð ˆr8   r   )r«  rA   Úobjectri   r   r   ÚOutlineType)r[   rÝ  s    @r9   Úget_outlineszPDFDocument.get_outlinesj  sl   ø€ Ø˜Tœ\Ð)Ð)ÝÐð	8�&ð 	8­ð 	8µ½+Ô:QÔ1Rð 	8ð 	8ð 	8ð 	8ð 	8ð 	8ð ˆv�d”l :Ô.°Ñ2Ô2Ð2r8   c                 óœ   — | j         €J ‚	 t          | j         d         ¦  «        }n!# t          t          f$ r}t          |‚d}~ww xY w|j        S )záGenerate page label strings for the PDF document.

        If the document includes page labels, generates strings, one per page.
        If not, raises PDFNoPageLabels.

        The resulting iteration is unbounded.
        NÚ
PageLabels)r«  râ  r   r´   rC   Úlabels)r[   Úpage_labelsr‹   s      r9   Úget_page_labelszPDFDocument.get_page_labels}  sd   € ð Œ|Ð'Ð'Ð'ð	+Ý$ T¤\°,Ô%?Ñ@Ô@ˆKˆKøÝ�hÐ'ð 	+ð 	+ð 	+Ý! sÐ*øøøøð	+øøøð Ô!Ð!s   ‹& ¦A·?¿AÚcatr  c                 ó&  ‡‡‡— 	 t          | j        d         ¦  «        }n+# t          t          f$ r}t	          ‰‰f¦  «        |‚d }~ww xY wt          |‰         ¦  «        }dt
          t          t          f         dt          fˆˆˆfd„Š ‰|¦  «        S )NÚNamesÚdrU   c           	      óÚ  •— d| v r&t          | d         ¦  «        \  }}‰|k     s|‰k     rd S d| v rrt          | d         ¦  «        }t          t          t          t          t
          t          z  t          f                  t          d|¦  «        ¦  «        ¦  «        }|‰         S d| v r6t          | d         ¦  «        D ] } ‰	t          |¦  «        ¦  «        }|r|c S Œ!t          ‰‰f¦  «        ‚)NÚLimitsrè  ry   ÚKids)r#   rg   r   r   rj   rh   r  r   r+   r!   r   )
ré  r’  Úk2rÂ   Únamesr  rþ   ræ  r  Úlookups
          €€€r9   rï  z'PDFDocument.lookup_name.<locals>.lookup–  s÷   ø€ Ø˜1ˆ}ˆ}Ý% a¨¤kÑ2Ô2‘��RØ˜’8�8˜r Cšx˜xØ˜4Ø˜!ˆ|ˆ|Ý! ! G¤*Ñ-Ô-�ÝÝ�¥%­­e©µSÐ(8Ô"9Ô:½HÀQÈÑ<MÔ<MÑNÔNñô �ð ˜S”zÐ!Ø˜ˆ{ˆ{Ý# A f¤IÑ.Ô.ð !ð !�AØ˜�z¨!™}œ}Ñ-Ô-�AØð !Ø ˜˜˜ð!å˜s C˜jÑ)Ô)Ð)r8   )r!   r«  r   r´   r   rg   rh   r   )r[   ræ  r  rî  r‹   Úd0rï  s    ``   @r9   Úlookup_namezPDFDocument.lookup_nameŽ  s¹   øøø€ ð	3Ý˜tœ|¨GÔ4Ñ5Ô5ˆEˆEøÝ�hÐ'ð 	3ð 	3ð 	3Ý˜s C˜jÑ)Ô)¨sÐ2øøøøð	3øøøõ ˜˜cœ
Ñ#Ô#ˆð	*•d�3¥˜8”nð 	*­ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð$ ˆv�b‰zŒzÐs   …   A±AÁArS  c                 óô   — 	 |                       d|¦  «        }n_# t          $ rR d| j        vrt          |¦  «        d ‚t	          | j        d         ¦  «        }||vrt          |¦  «        d ‚||         }Y nw xY w|S )NÚDests)rñ  r´   r«  rE   r!   )r[   rS  r¾   rð  s       r9   Úget_destzPDFDocument.get_destª  s—   € ð
	à×"Ò" 7¨DÑ1Ô1ˆCˆCøÝð 	ð 	ð 	à˜dœlÐ*Ð*Ý,¨TÑ2Ô2¸Ð<Ý˜DœL¨Ô1Ñ2Ô2ˆBØ˜2ˆ~ˆ~Ý,¨TÑ2Ô2¸Ð<Ø�T”(ˆCˆCˆCð	øøøð ˆ
s   ‚ ™AA5Á4A5c                 óÌ  — d}|                      ¦   «         D ]¿}|                     ¦   «         }t                               d|¦  «         |dk    r„t                               d|¦  «         |                     ¦   «         st          d|›�¦  «        ‚t          |¦  «        }|dk    st          d|› �¦  «        ‚|dk    rt          d	|›�¦  «        ‚|c S |r|}ŒÀt          d
¦  «        ‚)z0Internal function used to locate the first XRef.r8   zfind_xref: %rs	   startxrefzxref found: pos=%rz!Invalid xref position, no digit: r   z!Invalid xref position, negative: l        z"Invalid xref position, too large: úUnexpected EOF)Úrevreadlinesr}   r…   r‡   Úisdigitr2   ri   )r[   rd   ÚprevrŠ   rŽ   s        r9   r²  zPDFDocument.find_xref¹  s   € ð ˆØ×'Ò'Ñ)Ô)ð 	ð 	ˆDØ—:’:‘<”<ˆDÝ�IŠI�o tÑ,Ô,Ð,à�|Ò#Ð#Ý—	’	Ð.°Ñ5Ô5Ð5à—|’|‘~”~ð WÝ(Ð)UÈTÐ)UÐ)UÑVÔVÐVå˜D™	œ	�à ’z�zÝ(Ð)TÈUÐ)TÐ)TÑUÔUÐUð ˜E’>�>Ý(Ð)WÈeÐ)WÐ)WÑXÔXÐXà���àð Ø�øåÐ-Ñ.Ô.Ð.r8   rŽ   r©  c                 ó–  — |                      |¦  «         |                     ¦   «          	 |                     ¦   «         \  }}n"# t          $ r}t	          d¦  «        |‚d}~ww xY wt
                               d||¦  «         t          |t          ¦  «        rM|                      |¦  «         |                     ¦   «          t          ¦   «         }| 
                    |¦  «         n@||j        u r|                     ¦   «          t          ¦   «         }| 
                    |¦  «         |                     |¦  «         |                     ¦   «         }t
                               d|¦  «         d|v r,t!          |d         ¦  «        }|                      |||¦  «         d|v r.t!          |d         ¦  «        }|                      |||¦  «         dS dS )z$Reads XRefs from the given location.rö  Nz"read_xref_from: start=%d, token=%rr©   ÚXRefStmÚPrev)r   Úresetr˜   r'   r2   r…   r‡   r±   ri   rÈ   rf   ÚKEYWORD_XREFr|   rl   r·   r\   r"   r³  )	r[   rd   rŽ   r©  r‰   Útokenr‹   r·  ro   s	            r9   r³  zPDFDocument.read_xref_fromØ  s¼  € ð 	�Š�EÑÔÐØ�Š‰Œˆð	<Ø!×+Ò+Ñ-Ô-‰LˆS�%�%øÝð 	<ð 	<ð 	<Ý Ð!1Ñ2Ô2¸Ð;øøøøð	<øøøå�	Š	Ð6¸¸uÑEÔEÐEÝ�e�SÑ!Ô!ð 
	à�KŠK˜ÑÔÐØ�LŠL‰NŒNˆNÝ -¡¤ˆDØ�IŠI�fÑÔÐÐà˜Ô+Ð+Ð+Ø—’Ñ!Ô!Ð!Ý‘9”9ˆDØ�IŠI�fÑÔÐØ�Š�TÑÔÐØ×"Ò"Ñ$Ô$ˆÝ�	Š	�- Ñ)Ô)Ð)Ø˜ÐÐÝ˜G IÔ.Ñ/Ô/ˆCØ×Ò ¨¨UÑ3Ô3Ð3Ø�WÐÐå˜G FœOÑ,Ô,ˆCØ×Ò ¨¨UÑ3Ô3Ð3Ð3Ð3ð Ðs   «A Á
A"ÁAÁA")rë   TTr?  )'r4   r5   r6   r>   ré   r*  rj  r¡  r   rg   ri   Útyper@  r   rh   r	  rp   r(   rÇ  r´  r   rÞ  rÂ  rj   ÚlistrÀ  rÈ  rÊ  r   rß  r   rà  rå  r  rñ  rô  r²  rT   r³  r7   r8   r9   r   r   ¡  s¤  € € € € € € ð
ð 
ð &Ø%Ø'Ø'ð	Xð XÐ˜x¨¨S°$Ð7QÔ2RÐ-RÔ(SÔTð ð ñ ð ØØð57ð 57àð57ð ð57ð ð	57ð
 ð57ð 
ð57ð 57ð 57ð 57ðn �#�f‘+”+€Kð&ð &¨Sð &¸$ð &ð &ð &ð &ð" Yð °sð À3ð È6ð ð ð ð ð 9ð °°t¸F´|ÀSÐ7HÔ1Ið ð ð ð ð( ð ¨Sð °Vð ð ð ð ð8&˜Cð & Fð &ð &ð &ð &ðP ˜˜S # s¨CÐ/Ô0€Kð3˜h {Ô3ð 3ð 3ð 3ð 3ð&" ¨#¤ð "ð "ð "ð "ð"˜sð ¨¨u©ð ¸ð ð ð ð ð8˜S 5™[ð ¨Sð ð ð ð ð/ 	ð /¨cð /ð /ð /ð /ð>"4àð"4ð ð"4ð �KÔ ð	"4ð
 
ð"4ð "4ð "4ð "4ð "4ð "4r8   r   c                   ó^   — e Zd ZdZedee         fd„¦   «         Zede	de
defd„¦   «         ZdS )râ  zWPageLabels from the document catalog.

    See Section 8.3.1 in the PDF Reference.
    rU   c           	   #   óÂ  K  — | j         }t          |¦  «        dk    s|d         d         dk    r3t          j        rt	          d¦  «        ‚|                     ddi f¦  «         t          |d¦  «        D ]ì\  }\  }}t          |¦  «        }|                     d¦  «        }t          t          |                     dd¦  «        ¦  «        ¦  «        }t          |                     dd¦  «        ¦  «        }|t          |¦  «        k    rt          j        |¦  «        }	n#||         \  }
}|
|z
  }t          |||z   ¦  «        }	|	D ]}|                      ||¦  «        }||z   V — Œ Œíd S )Nr   z"PageLabels is missing page index 0r—   ÚSrø   r8   ÚSt)Úvaluesr�   r   rµ   r   ÚinsertÚ	enumerater!   r²   r,   r$   r"   Ú	itertoolsÚcountr„   Ú_format_page_label)r[   rÏ   ÚnextrŽ   Úlabel_dict_uncheckedÚ
label_dictÚstyleÚprefixÚfirst_valuer  Úendr�   Úrange_lengthÚvalueÚlabels                  r9   rã  zPageLabels.labels  sz  è è € à”ˆõ ˆv‰;Œ;˜!ÒÐ˜v aœy¨œ|¨qÒ0Ð0ÝŒð *Ý$Ð%IÑJÔJÐJð —’˜a ! R Ñ)Ô)Ð)å3<¸VÀQÑ3GÔ3Gð 	%ð 	%Ñ/ˆDÑ/�5Ð.Ý#Ð$8Ñ9Ô9ˆJØ—N’N 3Ñ'Ô'ˆEÝ ¥¨:¯>ª>¸#¸sÑ+CÔ+CÑ!DÔ!DÑEÔEˆFÝ# J§N¢N°4¸Ñ$;Ô$;Ñ<Ô<ˆKà•s˜6‘{”{Ò"Ð"õ )2¬¸Ñ(DÔ(D��à œ‘��QØ" U™{�Ý˜{¨K¸,Ñ,FÑGÔG�àð %ð %�Ø×/Ò/°°uÑ=Ô=�Ø˜u‘nÐ$Ð$Ð$Ð$ð%ð	%ð 	%r8   r  r  c                 óÜ  — |€d}næ|t          d¦  «        u rt          | ¦  «        }nÅ|t          d¦  «        u r"t          | ¦  «                             ¦   «         }n’|t          d¦  «        u rt          | ¦  «        }nq|t          d¦  «        u r"t	          | ¦  «                             ¦   «         }n>|t          d¦  «        u rt	          | ¦  «        }nt
                               d|¦  «         d}|S )	z+Format page label value in a specific styleNrë   ÚDr÷   ró   rÓ  ÚazUnknown page label style: %r)r)   rh   r.   Úupperr-   r…   r†   )r  r  r  s      r9   r  zPageLabels._format_page_label"  så   € ð ˆ=ØˆEˆEØ•c˜#‘h”hÐÐÝ˜‘J”JˆEˆEØ•c˜#‘h”hÐÐÝ$ UÑ+Ô+×1Ò1Ñ3Ô3ˆEˆEØ•c˜#‘h”hÐÐÝ$ UÑ+Ô+ˆEˆEØ•c˜#‘h”hÐÐÝ$ UÑ+Ô+×1Ò1Ñ3Ô3ˆEˆEØ•c˜#‘h”hÐÐÝ$ UÑ+Ô+ˆEˆEå�KŠKÐ6¸Ñ>Ô>Ð>ØˆEØˆr8   N)r4   r5   r6   r>   Úpropertyr   rh   rã  rž  ri   r   r  r7   r8   r9   râ  râ  ý  s~   € € € € € ðð ð
 ð%˜ œð %ð %ð %ñ „Xð%ð< ð #ð ¨cð °cð ð ð ñ „\ðð ð r8   râ  )\r	  ÚloggingrÅ   r(  Úcollections.abcr   r   r   r   r   Úhashlibr   r	   r
   r   Útypingr   r   r   Úcryptography.hazmat.backendsr   Ú&cryptography.hazmat.primitives.ciphersr   r   r   Úpdfminerr   Úpdfminer.arcfourr   Úpdfminer.castingr   Úpdfminer.data_structuresr   Úpdfminer.pdfexceptionsr   r   r   r   Úpdfminer.pdfparserr   r   r   Úpdfminer.pdftypesr   r   r    r!   r"   r#   r$   r%   r&   Úpdfminer.psexceptionsr'   Úpdfminer.psparserr(   r)   r*   Úpdfminer.utilsr+   r,   r-   r.   r/   r0   Ú	getLoggerr4   r…   r2   ÚSyntaxWarningr<   rA   rC   rE   rG   rI   ÚUserWarningrK   rM   rO   r³   rÕ   rµ  rT   rl   r¦   rÈ   ré   r*  rj  r   râ  r7   r8   r9   ú<module>r.     s  ðØ Ð Ð Ð Ø €€€Ø 	€	€	€	Ø €€€Ø LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LØ /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ð /ðð ð ð ð ð ð ð ð ð ð 9Ð 8Ð 8Ð 8Ð 8Ð 8Ø LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ Là Ð Ð Ð Ð Ð Ø $Ð $Ð $Ð $Ð $Ð $Ø %Ð %Ð %Ð %Ð %Ð %Ø /Ð /Ð /Ð /Ð /Ð /ðð ð ð ð ð ð ð ð ð ð ð ð JÐ IÐ IÐ IÐ IÐ IÐ IÐ IÐ IÐ Ið
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð (Ð 'Ð 'Ð 'Ð 'Ð 'Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð €gÔ˜Ñ!Ô!€ð	ð 	ð 	ð 	ð 	�^ñ 	ô 	ð 	ðð ð ð ð ˜Mñ ô ð ð	ð 	ð 	ð 	ð 	�Lñ 	ô 	ð 	ð	ð 	ð 	ð 	ð 	�lñ 	ô 	ð 	ð	ð 	ð 	ð 	ð 	˜\ñ 	ô 	ð 	ð	ð 	ð 	ð 	ð 	˜ñ 	ô 	ð 	ð	ð 	ð 	ð 	ð 	Ð-ñ 	ô 	ð 	ðð ð ð ð ˜;ñ ô ð ðð ð ð ð ¨ñ ô ð ð	ð 	ð 	ð 	ð 	Ð"4ñ 	ô 	ð 	ð
 ��X‘”€Øˆs�6‰{Œ{€Ø�#�i‘.”.€ð"ð "ð "ð "ð "ñ "ô "ð "ð"O#ð O#ð O#ð O#ð O#ˆkñ O#ô O#ð O#ðd0=ð 0=ð 0=ð 0=ð 0=�gñ 0=ô 0=ð 0=ðfK%ð K%ð K%ð K%ð K%�Kñ K%ô K%ð K%ð\I*ð I*ð I*ð I*ð I*ñ I*ô I*ð I*ðXF$ð F$ð F$ð F$ð F$Ð#=ñ F$ô F$ð F$ðRz$ð z$ð z$ð z$ð z$Ð#?ñ z$ô z$ð z$ðzY4ð Y4ð Y4ð Y4ð Y4ñ Y4ô Y4ð Y4ðx
7ð 7ð 7ð 7ð 7�ñ 7ô 7ð 7ð 7ð 7r8   