§
    Æ‡tj€C  ã                   ój  — d Z ddlZddlZddlZddlZddlZddlZddlZddlZddl	m
Z
mZmZ ddlmZmZmZmZmZmZ ddlmZ ddlmZmZ ddlmZmZ ddlmZmZmZm Z m!Z! dd	l"m#Z#m$Z$  ej%        e&¦  «        Z' G d
„ de¦  «        Z( G d„ d¦  «        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/ G d„ de-¦  «        Z0 G d„ de*¦  «        Z1 G d„ de-¦  «        Z2 G d „ d!¦  «        Z3 G d"„ d#e e         ¦  «        Z4dS )$zæAdobe character mapping (CMap) support.

CMaps provide the mapping between character codes and Unicode
code-points to character ids (CIDs).

More information is available on:

  https://github.com/adobe-type-tools/cmap-resources

é    N)ÚIterableÚIteratorÚMutableMapping)ÚAnyÚBinaryIOÚClassVarÚTextIOÚUnionÚcast)Úname2unicode)ÚPDFExceptionÚPDFTypeError)ÚPSEOFÚPSSyntaxError)ÚKWDÚ	PSKeywordÚ	PSLiteralÚPSStackParserÚliteral_name)ÚchoplistÚnunpackc                   ó   — e Zd ZdS )Ú	CMapErrorN©Ú__name__Ú
__module__Ú__qualname__© ó    úM/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/pdfminer/cmapdb.pyr   r   '   s   € € € € € Ø€Dr   r   c                   óš   — e Zd ZdZdeddfd„Zdefd„Zdededdfd	„Z	d
ede
ddfd„Zde
d
eez  e
z  ddfd„Zdd„Zd
edee
         fd„ZdS )ÚCMapBaser   ÚkwargsÚreturnNc                 ó8   — |                      ¦   «         | _        d S ©N)ÚcopyÚattrs©Úselfr#   s     r    Ú__init__zCMapBase.__init__.   s   € Ø28·+²+±-´-ˆŒ
ˆ
ˆ
r   c                 ó@   — | j                              dd¦  «        dk    S )NÚWModer   )r(   Úget©r*   s    r    Úis_verticalzCMapBase.is_vertical1   s   € ØŒz�~Š~˜g qÑ)Ô)¨QÒ.Ð.r   ÚkÚvc                 ó   — || j         |<   d S r&   )r(   )r*   r1   r2   s      r    Úset_attrzCMapBase.set_attr4   s   € ØˆŒ
�1‰ˆˆr   ÚcodeÚcidc                 ó   — d S r&   r   )r*   r5   r6   s      r    Úadd_code2cidzCMapBase.add_code2cid7   ó   € Øˆr   c                 ó   — d S r&   r   )r*   r6   r5   s      r    Úadd_cid2unichrzCMapBase.add_cid2unichr:   r9   r   Úcmapc                 ó   — d S r&   r   )r*   r<   s     r    Úuse_cmapzCMapBase.use_cmap=   r9   r   c                 ó   — t           ‚r&   )ÚNotImplementedError)r*   r5   s     r    ÚdecodezCMapBase.decode@   s   € Ý!Ð!r   )r<   r"   r$   N)r   r   r   ÚdebugÚobjectr+   Úboolr0   Ústrr4   Úintr8   r   Úbytesr;   r>   r   rA   r   r   r    r"   r"   +   s  € € € € € Ø€Eð@ ð @¨Dð @ð @ð @ð @ð/˜Tð /ð /ð /ð /ð˜#ð  &ð ¨Tð ð ð ð ð ð ¨3ð °4ð ð ð ð ð #ð ¨Y¸Ñ->ÀÑ-Dð Èð ð ð ð ðð ð ð ð"˜5ð " X¨c¤]ð "ð "ð "ð "ð "ð "r   r"   c            	       ó¬   — e Zd Zdeez  ddfd„Zdefd„Zdeddfd„Zde	de
e         fd	„Zej        dd
fdedeeef         dz  deedf         ddfd„ZdS )ÚCMapr#   r$   Nc                 ó8   — t          j        | fi |¤Ž i | _        d S r&   )r"   r+   Úcode2cidr)   s     r    r+   zCMap.__init__E   s&   € ÝÔ˜$Ð)Ð) &Ð)Ð)Ð)Ø+-ˆŒˆˆr   c                 ó\   — d                      | j                             d¦  «        ¦  «        S )Nz
<CMap: {}>ÚCMapName©Úformatr(   r.   r/   s    r    Ú__repr__zCMap.__repr__I   s$   € Ø×"Ò" 4¤:§>¢>°*Ñ#=Ô#=Ñ>Ô>Ð>r   r<   c                 ó  ‡— t          |t          ¦  «        s$J t          t          |¦  «        ¦  «        ¦   «         ‚dt          t
          t          f         dt          t
          t          f         dd fˆfd„Š ‰| j        |j        ¦  «         d S )NÚdstÚsrcr$   c                 ó˜   •— |                      ¦   «         D ]3\  }}t          |t          ¦  «        ri }|| |<    ‰||¦  «         Œ.|| |<   Œ4d S r&   )ÚitemsÚ
isinstanceÚdict)rR   rS   r1   r2   Údr'   s        €r    r'   zCMap.use_cmap.<locals>.copyO   sd   ø€ ØŸ	š	™œð ð ‘��1Ý˜a¥Ñ&Ô&ð Ø+-�AØ�C˜‘FØ�D˜˜A‘J”J�J�Jà�C˜‘F�Fðð r   )rV   rI   rE   ÚtyperW   rF   rC   rK   )r*   r<   r'   s     @r    r>   zCMap.use_cmapL   s�   ø€ Ý˜$¥Ñ%Ô%Ð6Ð6¥s­4°©:¬:¡¤Ñ6Ô6Ð%ð	•d�3¥˜;Ô'ð 	­dµ3½°;Ô.?ð 	ÀDð 	ð 	ð 	ð 	ð 	ð 	ð 	ˆˆTŒ]˜DœMÑ*Ô*Ð*Ð*Ð*r   r5   c              #   ó,  K  — t                                d| |¦  «         | j        }t          |¦  «        D ]^}||v rQ||         }t	          |t
          ¦  «        r|V — | j        }Œ/t          t          t
          t          f         |¦  «        }ŒW| j        }Œ_d S )Nzdecode: %r, %r)	ÚlogrB   rK   ÚiterrV   rF   r   rW   rC   )r*   r5   rX   ÚiÚxs        r    rA   zCMap.decodeZ   sœ   è è € Ý�	Š	Ð" D¨$Ñ/Ô/Ð/ØŒMˆÝ�d‘”ð 		"ð 		"ˆAØ�AˆvˆvØ�a”D�Ý˜a¥Ñ%Ô%ð 3Ø�G�G�GØœ�A�Aå�T¥#¥v +Ô.°Ñ2Ô2�A�Aà”M��ð		"ð 		"r   r   ÚoutrK   .c           	      óV  — |€	| j         }d}t          |                     ¦   «         ¦  «        D ]{\  }}g |¢|‘R }t          |t          ¦  «        r|                     d|›d|› d�¦  «         Œ>|                      |t          t          t          t          f         |¦  «        |¬¦  «         Œ|d S )Nr   zcode z = cid ú
)r_   rK   r5   )
rK   ÚsortedrU   rV   rF   ÚwriteÚdumpr   rW   rC   )r*   r_   rK   r5   r1   r2   Úcs          r    rd   z	CMap.dumph   sÂ   € ð ÐØ”}ˆHØˆDÝ˜8Ÿ>š>Ñ+Ô+Ñ,Ô,ð 	Pð 	P‰DˆAˆqØ�$�
˜�
�
ˆAÝ˜!�SÑ!Ô!ð PØ—	’	Ð3 !Ð3Ð3¨aÐ3Ð3Ð3Ñ4Ô4Ð4Ð4à—	’	˜c­Dµµc½6°kÔ1BÀAÑ,FÔ,FÈQ�	ÑOÔOÐOÐOð	Pð 	Pr   )r   r   r   rE   rF   r+   rP   r"   r>   rG   r   rA   ÚsysÚstdoutr	   rW   rC   Útuplerd   r   r   r    rI   rI   D   s
  € € € € € ð.  s¡ð .¨tð .ð .ð .ð .ð?˜#ð ?ð ?ð ?ð ?ð+˜Xð +¨$ð +ð +ð +ð +ð"˜5ð " X¨c¤]ð "ð "ð "ð "ð  ”jØ-1Ø "ð	Pð PàðPð �s˜F�{Ô# dÑ*ðPð �C˜�HŒoð	Pð
 
ðPð Pð Pð Pð Pð Pr   rI   c                   ó.   — e Zd Zdedeedf         fd„ZdS )ÚIdentityCMapr5   r$   .c                 óv   — t          |¦  «        dz  }|r$t          j        d|› d�|d |dz  …         ¦  «        S dS )Né   ú>ÚHr   ©ÚlenÚstructÚunpack©r*   r5   Úns      r    rA   zIdentityCMap.decodez   sD   € Ý�‰IŒI˜‰NˆØð 	Ý”=  Q   ¨4°°!°a±%°¬=Ñ9Ô9Ð9à�2r   N©r   r   r   rG   rh   rF   rA   r   r   r    rj   rj   y   ó>   € € € € € ð˜5ð  U¨3°¨8¤_ð ð ð ð ð ð r   rj   c                   ó.   — e Zd Zdedeedf         fd„ZdS )ÚIdentityCMapByter5   r$   .c                 ój   — t          |¦  «        }|r!t          j        d|› d�|d |…         ¦  «        S dS )Nrm   ÚBr   ro   rs   s      r    rA   zIdentityCMapByte.decodeƒ   s<   € Ý�‰IŒIˆØð 	Ý”=  Q   ¨4°°°¬8Ñ4Ô4Ð4à�2r   Nru   r   r   r    rx   rx   ‚   rv   r   rx   c                   ó^   — e Zd Zdeez  ddfd„Zdefd„Zdedefd„Zej	        fde
ddfd	„ZdS )
Ú
UnicodeMapr#   r$   Nc                 ó8   — t          j        | fi |¤Ž i | _        d S r&   )r"   r+   Ú
cid2unichrr)   s     r    r+   zUnicodeMap.__init__Œ   s&   € ÝÔ˜$Ð)Ð) &Ð)Ð)Ð)Ø*,ˆŒˆˆr   c                 ó\   — d                      | j                             d¦  «        ¦  «        S )Nz<UnicodeMap: {}>rM   rN   r/   s    r    rP   zUnicodeMap.__repr__�   s$   € Ø!×(Ò(¨¬¯ª¸
Ñ)CÔ)CÑDÔDÐDr   r6   c                 óT   — t                                d| |¦  «         | j        |         S )Núget_unichr: %r, %r)r[   rB   r~   ©r*   r6   s     r    Ú
get_unichrzUnicodeMap.get_unichr“   s&   € Ý�	Š	Ð&¨¨cÑ2Ô2Ð2ØŒ˜sÔ#Ð#r   r_   c                 ó–   — t          | j                             ¦   «         ¦  «        D ]!\  }}|                     d|› d|›d�¦  «         Œ"d S )Nzcid z = unicode ra   )rb   r~   rU   rc   )r*   r_   r1   r2   s       r    rd   zUnicodeMap.dump—   s^   € Ý˜4œ?×0Ò0Ñ2Ô2Ñ3Ô3ð 	4ð 	4‰DˆAˆqØ�IŠIÐ2˜QÐ2Ð2¨1Ð2Ð2Ð2Ñ3Ô3Ð3Ð3ð	4ð 	4r   )r   r   r   rE   rF   r+   rP   rƒ   rf   rg   r	   rd   r   r   r    r|   r|   ‹   sª   € € € € € ð-  s¡ð -¨tð -ð -ð -ð -ðE˜#ð Eð Eð Eð Eð$˜cð $ cð $ð $ð $ð $ð "%¤ð 4ð 4˜ð 4°ð 4ð 4ð 4ð 4ð 4ð 4r   r|   c                   ó   — e Zd Zdedefd„ZdS )ÚIdentityUnicodeMapr6   r$   c                 óX   — t                                d| |¦  «         t          |¦  «        S )z+Interpret character id as unicode codepointr�   )r[   rB   Úchrr‚   s     r    rƒ   zIdentityUnicodeMap.get_unichr�   s$   € å�	Š	Ð&¨¨cÑ2Ô2Ð2Ý�3‰xŒxˆr   N)r   r   r   rF   rE   rƒ   r   r   r    r†   r†   œ   s6   € € € € € ð˜cð  cð ð ð ð ð ð r   r†   c                   ó"   — e Zd Zdededdfd„ZdS )ÚFileCMapr5   r6   r$   Nc                 ó°  — t          |t          ¦  «        rt          |t          ¦  «        s3J t          t          |¦  «        t          |¦  «        f¦  «        ¦   «         ‚| j        }|d d…         D ]L}t          |¦  «        }||v r.t          t          t          t          f         ||         ¦  «        }ŒCi }|||<   |}ŒMt          |d         ¦  «        }|||<   d S )Néÿÿÿÿ)	rV   rE   rF   rY   rK   Úordr   rW   rC   )r*   r5   r6   rX   re   ÚciÚts          r    r8   zFileCMap.add_code2cid¤   sÜ   € Ý˜$¥Ñ$Ô$ð 	
­°C½Ñ)=Ô)=ð 	
ð 	
½sÝ�$‰ZŒZ�˜c™œÐ#ñ@
ô @
ñ 	
ô 	
Ð=ð ŒMˆØ�c�r�c”ð 	ð 	ˆAÝ�Q‘”ˆBØ�QˆwˆwÝ��c¥6˜kÔ*¨A¨b¬EÑ2Ô2��à')�Ø��"‘Ø��Ý��b”‰]Œ]ˆØˆˆ"‰ˆˆr   )r   r   r   rE   rF   r8   r   r   r    rŠ   rŠ   £   s=   € € € € € ð ð ¨3ð °4ð ð ð ð ð ð r   rŠ   c                   ó.   — e Zd Zdedeez  ez  ddfd„ZdS )ÚFileUnicodeMapr6   r5   r$   Nc                 ó$  — t          |t          ¦  «        s$J t          t          |¦  «        ¦  «        ¦   «         ‚t          |t          ¦  «        r1t          |j        t          ¦  «        sJ ‚t          |j        ¦  «        }n`t          |t          ¦  «        r|                     dd¦  «        }n4t          |t          ¦  «        rt          |¦  «        }nt          |¦  «        ‚|dk    r | j                             |¦  «        dk    rd S || j        |<   d S )NzUTF-16BEÚignoreõ   Â ú )rV   rF   rE   rY   r   Únamer   rG   rA   rˆ   r   r~   r.   )r*   r6   r5   Úunichrs       r    r;   zFileUnicodeMap.add_cid2unichr¶   sù   € Ý˜#�sÑ#Ô#Ð3Ð3¥S­¨c©¬¡^¤^Ñ3Ô3Ð#Ý�d�IÑ&Ô&ð 
	%å˜dœi­Ñ-Ô-Ð-Ð-Ð-Ý! $¤)Ñ,Ô,ˆFˆFÝ˜�eÑ$Ô$ð 	%à—[’[ ¨XÑ6Ô6ˆFˆFÝ˜�cÑ"Ô"ð 	%Ý˜‘Y”YˆFˆFå˜tÑ$Ô$Ð$ð �XÒÐ $¤/×"5Ò"5°cÑ":Ô":¸cÒ"AÐ"AØˆFØ%ˆŒ˜ÑÐÐr   )r   r   r   rF   r   rG   r;   r   r   r    r‘   r‘   µ   sG   € € € € € ð& #ð &¨Y¸Ñ->ÀÑ-Dð &Èð &ð &ð &ð &ð &ð &r   r‘   c                   ó,   ‡ — e Zd Zdededdfˆ fd„Zˆ xZS )ÚPyCMapr–   Úmoduler$   Nc                 óŠ   •— t          ¦   «                              |¬¦  «         |j        | _        |j        rd| j        d<   d S d S ©N)rM   é   r-   )Úsuperr+   ÚCODE2CIDrK   ÚIS_VERTICALr(   )r*   r–   rš   Ú	__class__s      €r    r+   zPyCMap.__init__Ë   sN   ø€ Ý‰Œ×Ò $ÐÑ'Ô'Ð'ØœˆŒØÔð 	$Ø"#ˆDŒJ�wÑÐÐð	$ð 	$r   )r   r   r   rE   r   r+   Ú__classcell__©r¡   s   @r    r™   r™   Ê   sR   ø€ € € € € ð$˜Sð $¨#ð $°$ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $r   r™   c                   ó0   ‡ — e Zd Zdedededdfˆ fd„Zˆ xZS )ÚPyUnicodeMapr–   rš   Úverticalr$   Nc                 ó˜   •— t          ¦   «                              |¬¦  «         |r|j        | _        d| j        d<   d S |j        | _        d S rœ   )rž   r+   ÚCID2UNICHR_Vr~   r(   ÚCID2UNICHR_H)r*   r–   rš   r¦   r¡   s       €r    r+   zPyUnicodeMap.__init__Ó   sP   ø€ Ý‰Œ×Ò $ÐÑ'Ô'Ð'Øð 	2Ø$Ô1ˆDŒOØ"#ˆDŒJ�wÑÐÐà$Ô1ˆDŒOˆOˆOr   )r   r   r   rE   r   rD   r+   r¢   r£   s   @r    r¥   r¥   Ò   sY   ø€ € € € € ð2˜Sð 2¨#ð 2¸ð 2À$ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2r   r¥   c                   ó^  — e Zd ZU i Zeeeef                  ed<   i Z	eeee
e         f                  ed<    G d„ de¦  «        Zedeeeef         ef         deeeef         ef         fd„¦   «         Zededee         fd	„¦   «         Zededefd
„¦   «         Zeddededefd„¦   «         ZdS )ÚCMapDBÚ_cmap_cacheÚ_umap_cachec                   ó   — e Zd ZdS )úCMapDB.CMapNotFoundNr   r   r   r    ÚCMapNotFoundr¯   à   s   € € € € € Øˆr   r°   rX   r$   c                 ó0  — t          | t          ¦  «        s| S i }|                      ¦   «         D ]g\  }}	 t          |¦  «        }n# t          t
          f$ r |}Y nw xY wt          |t          ¦  «        rt                               |¦  «        ||<   Œb|||<   Œh|S )zERecursively convert string keys to integers in CODE2CID dictionaries.)rV   rW   rU   rF   Ú
ValueErrorÚ	TypeErrorr«   Ú_convert_code2cid_keys)rX   Úresultr1   r2   Únew_keys        r    r´   zCMapDB._convert_code2cid_keysã   s³   € õ
 ˜!�TÑ"Ô"ð 	ØˆHØ$&ˆØ—G’G‘I”Ið 
	$ð 
	$‰DˆAˆqðÝ˜a™&œ&��øÝ¥	Ð*ð ð ð Ø���ðøøøõ ˜!�TÑ"Ô"ð $Ý"(×"?Ò"?ÀÑ"BÔ"B��w‘�à"#��w‘�Øˆs   ´AÁAÁAr–   c                 óÄ  — |                      dd¦  «        }t                               d|¦  «         t          j                             dd¦  «        t          j                             t          j                             t          ¦  «        d¦  «        f}|D �]°}|› d�}t          j                             ||¦  «        }t          j         
                    |¦  «        }t          j         
                    |¦  «        }|                     |t          j        z   ¦  «        �r't          j                             |¦  «        �rt                               d|¦  «         t          j        |d	d
¬¦  «        5 }t!          j        |¦  «        }	d|	v r'd„ |	d                              ¦   «         D ¦   «         |	d<   d|	v r'd„ |	d                              ¦   «         D ¦   «         |	d<   |	                     d¦  «        r|                      |	d         ¦  «        |	d<   t)          t+          |¦  «        d|	¦  «        cd d d ¦  «         c S # 1 swxY w Y   �Œ²t,                               |¦  «        ‚)Nú Ú zloading: %rÚ	CMAP_PATHz/usr/share/pdfminer/r<   z.json.gzzloading JSON: %rÚrtzutf-8)Úencodingr©   c                 ó4   — i | ]\  }}t          |¦  «        |“ŒS r   ©rF   ©Ú.0r1   r2   s      r    ú
<dictcomp>z%CMapDB._load_data.<locals>.<dictcomp>  ó1   € ð 0ð 0ð 0Ù*.¨!¨Q�C ™FœF Að0ð 0ð 0r   r¨   c                 ó4   — i | ]\  }}t          |¦  «        |“ŒS r   r¾   r¿   s      r    rÁ   z%CMapDB._load_data.<locals>.<dictcomp>  rÂ   r   rŸ   r   )Úreplacer[   rB   ÚosÚenvironr.   ÚpathÚjoinÚdirnameÚ__file__ÚrealpathÚ
startswithÚsepÚexistsÚgzipÚopenÚjsonÚloadrU   r´   rY   rE   r«   r°   )
Úclsr–   Ú
cmap_pathsÚ	directoryÚjson_filenameÚ	json_pathÚresolved_json_pathÚresolved_directoryÚgzfileÚdatas
             r    Ú
_load_datazCMapDB._load_dataø   s  € à�|Š|˜D "Ñ%Ô%ˆÝ�	Š	�- Ñ&Ô&Ð&åŒJ�NŠN˜;Ð(>Ñ?Ô?ÝŒG�LŠL�œŸš­Ñ2Ô2°FÑ;Ô;ð
ˆ
ð
 $ð 	5ñ 	5ˆIà#Ð-Ð-Ð-ˆMÝœŸš Y°Ñ>Ô>ˆIÝ!#¤×!1Ò!1°)Ñ!<Ô!<ÐÝ!#¤×!1Ò!1°)Ñ!<Ô!<Ðð "×,Ò,Ø"¥R¤VÑ+ñô ñ 5å”'—.’.Ð!3Ñ4Ô4ñ5õ —	’	Ð,¨iÑ8Ô8Ð8Ý”YÐ1°4À'ÐJÑJÔJð 5ÈfÝ+/¬9°VÑ+<Ô+<�Dà%¨Ð-Ð-ð0ð 0Ø26°~Ô2F×2LÒ2LÑ2NÔ2Nð0ñ 0ô 0˜˜^Ñ,ð &¨Ð-Ð-ð0ð 0Ø26°~Ô2F×2LÒ2LÑ2NÔ2Nð0ñ 0ô 0˜˜^Ñ,ð —x’x 
Ñ+Ô+ð XØ+.×+EÒ+EÀdÈ:ÔFVÑ+WÔ+W˜˜ZÑ(Ý¥ D¡	¤	¨2¨tÑ4Ô4ð5ð 5ð 5ð 5ñ 5ô 5ð 5ð 5ð 5ð 5ð 5ð 5ð 5ð 5øøøð 5ð 5ð 5ð 5ùõ  ×!Ò! $Ñ'Ô'Ð's   Å1B;H;È;H?	ÉH?	c                 óP  — |dk    rt          d¬¦  «        S |dk    rt          d¬¦  «        S |dk    rt          d¬¦  «        S |dk    rt          d¬¦  «        S 	 | j        |         S # t          $ r Y nw xY w|                      |¦  «        }t          ||¦  «        x| j        |<   }|S )Nz
Identity-Hr   )r-   z
Identity-Vr�   ÚOneByteIdentityHÚOneByteIdentityV)rj   rx   r¬   ÚKeyErrorrÜ   r™   )rÓ   r–   rÛ   r<   s       r    Úget_cmapzCMapDB.get_cmap  s×   € à�<ÒÐÝ aÐ(Ñ(Ô(Ð(Ø�\Ò!Ð!Ý aÐ(Ñ(Ô(Ð(ØÐ'Ò'Ð'Ý#¨!Ð,Ñ,Ô,Ð,ØÐ'Ò'Ð'Ý#¨!Ð,Ñ,Ô,Ð,ð	Ø”? 4Ô(Ð(øÝð 	ð 	ð 	ØˆDð	øøøà�~Š~˜dÑ#Ô#ˆÝ'-¨d°DÑ'9Ô'9Ð9ˆŒ˜Ñ Øˆs   ÁA' Á'
A4Á3A4Fr¦   c                 óÒ   ‡‡— 	 | j         ‰         |         S # t          $ r Y nw xY w|                      d‰› �¦  «        Šˆˆfd„dD ¦   «         | j         ‰<   | j         ‰         |         S )Nzto-unicode-c                 ó2   •— g | ]}t          ‰‰|¦  «        ‘ŒS r   )r¥   )rÀ   r2   rÛ   r–   s     €€r    ú
<listcomp>z*CMapDB.get_unicode_map.<locals>.<listcomp>8  s%   ø€ Ð TÐ TÐ TÀ¥¨d°D¸!Ñ!<Ô!<Ð TÐ TÐ Tr   )FT)r­   rà   rÜ   )rÓ   r–   r¦   rÛ   s    ` @r    Úget_unicode_mapzCMapDB.get_unicode_map1  sŠ   øø€ ð	Ø”? 4Ô(¨Ô2Ð2øÝð 	ð 	ð 	ØˆDð	øøøà�~Š~Ð2¨DÐ2Ð2Ñ3Ô3ˆØ TÐ TÐ TÐ TÐ TÀmÐ TÑ TÔ TˆŒ˜ÑØŒ˜tÔ$ XÔ.Ð.s   „ —
$£$N)F)r   r   r   r¬   r   rW   rE   r™   Ú__annotations__r­   Úlistr¥   r   r°   Ústaticmethodr
   rC   rF   r´   ÚclassmethodrY   r   rÜ   r"   rá   rD   r|   rå   r   r   r    r«   r«   Ü   ss  € € € € € € Ø/1€K�˜$˜s F˜{Ô+Ô,Ð1Ð1Ñ1Ø;=€K�˜$˜s D¨Ô$6Ð6Ô7Ô8Ð=Ð=Ñ=ðð ð ð ð �yñ ô ð ð ðØ��c˜6�kÔ" CÐ'Ô(ðà	ˆt�C˜�KÔ  #Ð%Ô	&ðð ð ñ „\ðð( ð$(˜cð $( d¨3¤ið $(ð $(ð $(ñ „[ð$(ðL ð˜Cð  Hð ð ð ñ „[ðð" ð/ð / 3ð /°$ð /À:ð /ð /ð /ñ „[ð/ð /ð /r   r«   c                   ó®  — e Zd Zdededdfd„Zdd„Z ed¦  «        Z ed¦  «        Z	 ed	¦  «        Z
 ed
¦  «        Z ed¦  «        Z ed¦  «        Z ed¦  «        Z ed¦  «        Z ed¦  «        Z ed¦  «        Z ed¦  «        Z ed¦  «        Z ed¦  «        Z ed¦  «        Z ed¦  «        Z ed¦  «        Zdededdfd„Zdeddfd„ZdS )Ú
CMapParserr<   Úfpr$   Nc                 ór   — t          j        | |¦  «         || _        d| _        t	          ¦   «         | _        d S )NT)r   r+   r<   Ú_in_cmapÚsetÚ	_warnings)r*   r<   rì   s      r    r+   zCMapParser.__init__=  s2   € ÝÔ˜t RÑ(Ô(Ð(ØˆŒ	àˆŒÝ#&¡5¤5ˆŒˆˆr   c                 ó’   — t          j        t          ¦  «        5  |                      ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S r&   )Ú
contextlibÚsuppressr   Ú
nextobjectr/   s    r    ÚrunzCMapParser.runD  s‡   € ÝÔ ¥Ñ'Ô'ð 	ð 	Ø�OŠOÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   š<¼A ÁA s	   begincmaps   endcmaps   usecmaps   defs   begincodespaceranges   endcodespaceranges   begincidranges   endcidranges   begincidchars
   endcidchars   beginbfranges
   endbfranges   beginbfchars	   endbfchars   beginnotdefranges   endnotdefrangeÚposÚtokenc                 ó^  — || j         u rd| _        |                      ¦   «          dS || j        u r	d| _        dS | j        sdS || j        u rZ	 |                      d¦  «        \  \  }}\  }}| j                             t          |¦  «        |¦  «         n# t          $ r Y nw xY wdS || j
        u r}	 |                      d¦  «        \  \  }}| j                             t                               t          |¦  «        ¦  «        ¦  «         n # t          $ r Y nt          j        $ r Y nw xY wdS || j        u r|                      ¦   «          dS || j        u r|                      ¦   «          dS || j        u r|                      ¦   «          dS || j        u �r»d„ |                      ¦   «         D ¦   «         }t'          d|¦  «        D �]‰\  }}	}
t)          |t*          ¦  «        s|                      d¦  «         Œ2t)          |	t*          ¦  «        s|                      d	¦  «         Œ]t)          |
t.          ¦  «        s|                      d
¦  «         Œˆt1          |¦  «        t1          |	¦  «        k    r|                      d¦  «         Œ¾|dd…         }|	dd…         }||k    r|                      d¦  «         Œî|dd…         }|	dd…         }t3          |¦  «        }t3          |¦  «        }t1          |¦  «        }t5          ||z
  dz   ¦  «        D ]D}|t7          j        d||z   ¦  «        | d…         z   }| j                             |
|z   |¦  «         ŒE�Œ‹dS || j        u r|                      ¦   «          dS || j        u r{d„ |                      ¦   «         D ¦   «         }t'          d|¦  «        D ]J\  }
}t)          |t*          ¦  «        r0t)          |
t.          ¦  «        r| j                             |
|¦  «         ŒKdS || j         u r|                      ¦   «          dS || j!        u �rd„ |                      ¦   «         D ¦   «         }t'          d|¦  «        D �]Ý\  }}	}t)          |t*          ¦  «        s|                      d¦  «         Œ2t)          |	t*          ¦  «        s|                      d¦  «         Œ]t1          |¦  «        t1          |	¦  «        k    r|                      d¦  «         Œ“t3          |¦  «        }t3          |	¦  «        }t)          |tD          ¦  «        rtt1          |¦  «        ||z
  dz   k    r|                      d¦  «         tG          t5          ||dz   ¦  «        |d¬¦  «        D ] \  }
}| j                             |
|¦  «         Œ!�Œ:t)          |t*          ¦  «        sJ ‚|dd…         }t3          |¦  «        }|dd…         }t1          |¦  «        }t5          ||z
  dz   ¦  «        D ]D}|t7          j        d||z   ¦  «        | d…         z   }| j                             ||z   |¦  «         ŒE�ŒßdS || j$        u r|                      ¦   «          dS || j%        u rˆd„ |                      ¦   «         D ¦   «         }t'          d|¦  «        D ]W\  }
}t)          |
t*          ¦  «        r=t)          |t*          ¦  «        r(| j                             t3          |
¦  «        |¦  «         ŒXdS || j&        u r|                      ¦   «          dS || j'        u r|                      ¦   «          dS |  (                    ||f¦  «         dS )z[ToUnicode CMaps

        See Section 5.9.2 - ToUnicode CMaps of the PDF Reference.
        TNFrl   r�   c                 ó   — g | ]\  }}|‘ŒS r   r   ©rÀ   Ú__Úobjs      r    rä   z)CMapParser.do_keyword.<locals>.<listcomp>ˆ  ó   € Ð7Ð7Ð7™I˜R �CÐ7Ð7Ð7r   é   z0The start object of begincidrange is not a byte.z.The end object of begincidrange is not a byte.z.The cid object of begincidrange is not a byte.z?The start and end byte of begincidrange have different lengths.éüÿÿÿzGThe prefix of the start and end byte of begincidrange are not the same.z>Lc                 ó   — g | ]\  }}|‘ŒS r   r   rú   s      r    rä   z)CMapParser.do_keyword.<locals>.<listcomp>°  rý   r   c                 ó   — g | ]\  }}|‘ŒS r   r   rú   s      r    rä   z)CMapParser.do_keyword.<locals>.<listcomp>»  rý   r   zThe start object is not a byte.zThe end object is not a byte.z.The start and end byte have different lengths.zPThe difference between the start and end offsets does not match the code length.)Ústrictc                 ó   — g | ]\  }}|‘ŒS r   r   rú   s      r    rä   z)CMapParser.do_keyword.<locals>.<listcomp>â  rý   r   ))ÚKEYWORD_BEGINCMAPrî   ÚpopallÚKEYWORD_ENDCMAPÚKEYWORD_DEFÚpopr<   r4   r   r   ÚKEYWORD_USECMAPr>   r«   rá   r°   ÚKEYWORD_BEGINCODESPACERANGEÚKEYWORD_ENDCODESPACERANGEÚKEYWORD_BEGINCIDRANGEÚKEYWORD_ENDCIDRANGEr   rV   rG   Ú
_warn_oncerF   rp   r   Úrangerq   Úpackr;   ÚKEYWORD_BEGINCIDCHARÚKEYWORD_ENDCIDCHARÚKEYWORD_BEGINBFRANGEÚKEYWORD_ENDBFRANGErç   ÚzipÚKEYWORD_BEGINBFCHARÚKEYWORD_ENDBFCHARÚKEYWORD_BEGINNOTDEFRANGEÚKEYWORD_ENDNOTDEFRANGEÚpush)r*   rö   r÷   Ú_r1   r2   ÚcmapnameÚobjsÚ
start_byteÚend_byter6   Ústart_prefixÚ
end_prefixÚsvarÚevarÚstartÚendÚvlenr]   r^   r5   Úunicode_valueÚvarÚbaseÚprefixs                            r    Ú
do_keywordzCMapParser.do_keywordY  s¶  € ð
 �DÔ*Ð*Ð*Ø ˆDŒMØ�KŠK‰MŒMˆMØˆFà�dÔ*Ð*Ð*Ø!ˆDŒMØˆFàŒ}ð 	ØˆFà�DÔ$Ð$Ð$ðØ#'§8¢8¨A¡;¤;Ñ ‘�!�Q™˜!˜QØ”	×"Ò"¥<°¡?¤?°AÑ6Ô6Ð6Ð6øÝ ð ð ð Ø�ðøøøàˆFà�DÔ(Ð(Ð(ðØ#'§8¢8¨A¡;¤;Ñ ‘�!�XØ”	×"Ò"¥6§?¢?µ<ÀÑ3IÔ3IÑ#JÔ#JÑKÔKÐKÐKøÝ ð ð ð Ø�ÝÔ&ð ð ð Ø�ðøøøàˆFà�DÔ4Ð4Ð4Ø�KŠK‰MŒMˆMØˆFØ�DÔ2Ð2Ð2Ø�KŠK‰MŒMˆMØˆFà�DÔ.Ð.Ð.Ø�KŠK‰MŒMˆMØˆFà�DÔ,Ð,Ñ,Ø7Ð7¨¯ª©¬Ð7Ñ7Ô7ˆDÝ-5°a¸Ñ->Ô->ð 9ñ 9Ñ)�
˜H cÝ! *­eÑ4Ô4ð Ø—O’OÐ$VÑWÔWÐWØÝ! (­EÑ2Ô2ð Ø—O’OÐ$TÑUÔUÐUØÝ! #¥sÑ+Ô+ð Ø—O’OÐ$TÑUÔUÐUØÝ�z‘?”?¥c¨(¡m¤mÒ3Ð3Ø—O’Oð-ñô ð ð Ø)¨#¨2¨#œ�Ø% c r cœ]�
Ø :Ò-Ð-Ø—O’Oð:ñô ð ð Ø! " # #”�Ø   ”}�Ý ™œ�Ý˜d‘m”m�Ý˜4‘y”y�Ý˜s U™{¨Q™Ñ/Ô/ð 9ð 9�AØ$¥v¤{°4¸À¹Ñ'CÔ'CÀTÀEÀFÀFÔ'KÑK�AØ”I×,Ò,¨S°1©W°aÑ8Ô8Ð8Ð8ñ9ð ˆFà�DÔ-Ð-Ð-Ø�KŠK‰MŒMˆMØˆFà�DÔ+Ð+Ð+Ø7Ð7¨¯ª©¬Ð7Ñ7Ô7ˆDÝ% a¨Ñ.Ô.ð 8ð 8‘	��TÝ˜d¥EÑ*Ô*ð 8­z¸#½sÑ/CÔ/Cð 8Ø”I×,Ò,¨S°$Ñ7Ô7Ð7øØˆFà�DÔ-Ð-Ð-Ø�KŠK‰MŒMˆMØˆFà�DÔ+Ð+Ñ+Ø7Ð7¨¯ª©¬Ð7Ñ7Ô7ˆDÝ.6°q¸$Ñ.?Ô.?ð ?ñ ?Ñ*�
˜H dÝ! *­eÑ4Ô4ð Ø—O’OÐ$EÑFÔFÐFØÝ! (­EÑ2Ô2ð Ø—O’OÐ$CÑDÔDÐDØÝ�z‘?”?¥c¨(¡m¤mÒ3Ð3Ø—O’OÐ$TÑUÔUÐUØÝ 
Ñ+Ô+�Ý˜hÑ'Ô'�Ý˜d¥DÑ)Ô)ð ?Ý˜4‘y”y C¨%¡K°!¡OÒ3Ð3ØŸšðFñô ð õ /2Ý˜e S¨1¡WÑ-Ô-¨t¸Eð/ñ /ô /ð Eð EÑ*˜˜]ð œ	×0Ò0°°mÑDÔDÐDÐDñEõ
 & d­EÑ2Ô2Ð2Ð2Ð2Ø˜r˜s˜sœ)�CÝ" 3™<œ<�DØ! # 2 #œY�FÝ˜s™8œ8�DÝ" 3¨¡;°¡?Ñ3Ô3ð ?ð ?˜Ø"¥V¤[°°t¸a±xÑ%@Ô%@À$ÀÀÀÔ%HÑH˜Øœ	×0Ò0°¸±¸AÑ>Ô>Ð>Ð>ñ?ð ˆFà�DÔ,Ð,Ð,Ø�KŠK‰MŒMˆMØˆFà�DÔ*Ð*Ð*Ø7Ð7¨¯ª©¬Ð7Ñ7Ô7ˆDÝ% a¨Ñ.Ô.ð Að A‘	��TÝ˜c¥5Ñ)Ô)ð A­j¸½uÑ.EÔ.Eð AØ”I×,Ò,­W°S©\¬\¸4Ñ@Ô@Ð@øØˆFà�DÔ1Ð1Ð1Ø�KŠK‰MŒMˆMØˆFà�DÔ/Ð/Ð/Ø�KŠK‰MŒMˆMØˆFà�	Š	�3˜�,ÑÔÐÐÐs,   ÁAB Â
B ÂB Â/AD	 Ä	
D&ÄD&Ä%D&Úmsgc                 óŒ   — || j         vr:| j                              |¦  «         d}t                               d||¦  «         dS dS )z!Warn once for each unique messagez‡Ignoring (part of) ToUnicode map because the PDF data does not conform to the format. This could result in (cid) values in the output. z%s%sN)rð   Úaddr[   Úwarning)r*   r,  Úbase_msgs      r    r  zCMapParser._warn_onceò  sU   € à�d”nÐ$Ð$ØŒN×Ò˜sÑ#Ô#Ð#ð/ð õ
 �KŠK˜ ¨#Ñ.Ô.Ð.Ð.Ð.ð %Ð$r   )r$   N)r   r   r   r"   r   r+   rõ   r   r  r  r	  r  r
  r  r  r  r  r  r  r  r  r  r  r  rF   r   r+  rE   r  r   r   r    rë   rë   <  s¢  € € € € € ð)˜Xð )¨8ð )¸ð )ð )ð )ð )ðð ð ð ð ˜˜LÑ)Ô)ÐØ�c˜*‘o”o€OØ�c˜*‘o”o€OØ�#�f‘+”+€KØ"% #Ð&<Ñ"=Ô"=ÐØ # Ð$8Ñ 9Ô 9ÐØ˜CÐ 0Ñ1Ô1ÐØ˜#˜nÑ-Ô-ÐØ˜3˜Ñ/Ô/ÐØ˜˜]Ñ+Ô+ÐØ˜3˜Ñ/Ô/ÐØ˜˜]Ñ+Ô+ÐØ˜#˜nÑ-Ô-ÐØ˜˜LÑ)Ô)ÐØ"˜sÐ#6Ñ7Ô7ÐØ ˜SÐ!2Ñ3Ô3ÐðW ˜cð W ¨)ð W ¸ð W ð W ð W ð W ðr	/˜cð 	/ dð 	/ð 	/ð 	/ð 	/ð 	/ð 	/r   rë   )5Ú__doc__rò   rÏ   rÑ   ÚloggingrÅ   Úos.pathrq   rf   Úcollections.abcr   r   r   Útypingr   r   r   r	   r
   r   Úpdfminer.encodingdbr   Úpdfminer.pdfexceptionsr   r   Úpdfminer.psexceptionsr   r   Úpdfminer.psparserr   r   r   r   r   Úpdfminer.utilsr   r   Ú	getLoggerr   r[   r   r"   rI   rj   rx   r|   r†   rŠ   r‘   r™   r¥   r«   rë   r   r   r    ú<module>r<     s«  ðð	ð 	ð Ð Ð Ð Ø €€€Ø €€€Ø €€€Ø 	€	€	€	Ø €€€Ø €€€Ø 
€
€
€
Ø >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð -Ð ,Ð ,Ð ,Ð ,Ð ,Ø =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø TÐ TÐ TÐ TÐ TÐ TÐ TÐ TÐ TÐ TÐ TÐ TÐ TÐ TØ ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,à€gÔ˜Ñ!Ô!€ð	ð 	ð 	ð 	ð 	�ñ 	ô 	ð 	ð"ð "ð "ð "ð "ñ "ô "ð "ð22Pð 2Pð 2Pð 2Pð 2Pˆ8ñ 2Pô 2Pð 2Pðjð ð ð ð �8ñ ô ð ðð ð ð ð �|ñ ô ð ð4ð 4ð 4ð 4ð 4�ñ 4ô 4ð 4ð"ð ð ð ð ˜ñ ô ð ðð ð ð ð ˆtñ ô ð ð$&ð &ð &ð &ð &�Zñ &ô &ð &ð*$ð $ð $ð $ð $ˆTñ $ô $ð $ð2ð 2ð 2ð 2ð 2�:ñ 2ô 2ð 2ð]/ð ]/ð ]/ð ]/ð ]/ñ ]/ô ]/ð ]/ð@/ð /ð /ð /ð /�˜yÔ)ñ /ô /ð /ð /ð /r   