Ë
    vl�j€C  ã                   ó  — 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jJ                  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   «      Z4y)$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y)Ú	CMapErrorN©Ú__name__Ú
__module__Ú__qualname__© ó    úE/var/www/html/pp/venv/lib/python3.12/site-packages/pdfminer/cmapdb.pyr   r   '   s   „ Ør   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y)ÚCMapBaser   ÚkwargsÚreturnNc                 ó.   — |j                  «       | _        y ©N)ÚcopyÚattrs©Úselfr#   s     r    Ú__init__zCMapBase.__init__.   s   € Ø28·+±+³-ˆ�
r   c                 ó@   — | j                   j                  dd«      dk7  S )NÚWModer   )r(   Úget©r*   s    r    Úis_verticalzCMapBase.is_vertical1   s   € Ø�z‰z�~‰~˜g qÓ)¨QÑ.Ð.r   ÚkÚvc                 ó"   — || j                   |<   y r&   )r(   )r*   r1   r2   s      r    Úset_attrzCMapBase.set_attr4   s   € Øˆ�
‰
�1Šr   ÚcodeÚcidc                  ó   — y r&   r   )r*   r5   r6   s      r    Úadd_code2cidzCMapBase.add_code2cid7   ó   € Ør   c                  ó   — y r&   r   )r*   r6   r5   s      r    Úadd_cid2unichrzCMapBase.add_cid2unichr:   r9   r   c                  ó   — y r&   r   )r*   Úcmaps     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y)ÚCMapr#   r$   Nc                 ó>   — t        j                  | fi |¤Ž i | _        y r&   )r"   r+   Úcode2cidr)   s     r    r+   zCMap.__init__E   s   € Ü×Ñ˜$Ñ) &Ò)Ø+-ˆ�r   c                 óV   — dj                  | j                  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                  «       y )NÚdstÚsrcr$   c                 ó‚   •— |j                  «       D ]+  \  }}t        |t        «      ri }|| |<    ‰||«       Œ'|| |<   Œ- y r&   )ÚitemsÚ
isinstanceÚdict)rR   rS   r1   r2   Údr'   s        €r    r'   zCMap.use_cmap.<locals>.copyO   sF   ø€ ØŸ	™	›ò ‘��1Ü˜a¤Ô&Ø+-�AØ�C˜‘FÙ˜˜A•Jà�C˜’Fñr   )rV   rI   rE   ÚtyperW   rF   rC   rK   )r*   r=   r'   s     @r    r>   zCMap.use_cmapL   s`   ø€ Ü˜$¤Ô%Ð6¤s¬4°«:£Ó6Ð%ð	”dœ3¤˜;Ñ'ð 	¬d´3¼°;Ñ.?ð 	ÀDõ 	ñ 	ˆT�]‰]˜DŸM™MÕ*r   r5   c              #   ó  K  — t         j                  d| |«       | j                  }t        |«      D ]V  }||v rD||   }t	        |t
        «      r|–— | j                  }Œ-t        t        t
        t        f   |«      }ŒK| j                  }ŒX y ­w)Nzdecode: %r, %r)	ÚlogrB   rK   ÚiterrV   rF   r   rW   rC   )r*   r5   rX   ÚiÚxs        r    rA   zCMap.decodeZ   sy   è ø€ Ü�	‰	Ð" D¨$Ô/Ø�M‰MˆÜ�d“ò 		"ˆAØ�A‰vØ�a‘D�Ü˜a¤Ô%Ø’GØŸ™‘AäœT¤#¤v +Ñ.°Ó2‘Aà—M‘M‘ñ		"ùs   ‚B	Br   ÚoutrK   .c           	      ó$  — |€| j                   }d}t        |j                  «       «      D ]d  \  }}g |¢|‘­}t        |t        «      r|j                  d|›d|› d�«       Œ6| j                  |t        t        t        t        f   |«      |¬«       Œf y )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‰DˆAˆqØ�$�
˜‘
ˆAÜ˜!œSÔ!Ø—	‘	˜E !  g¨a¨S°Ð3Õ4à—	‘	˜c¬D´´c¼6°kÑ1BÀAÓ,FÈQ�	ÕOñ	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‘jØ-1Ø "ñ	PàðPð �s˜F�{Ñ# dÑ*ðPð �C˜�H‰oð	Pð
 
ôPr   rI   c                   ó&   — e Zd Zdedeedf   fd„Zy)ÚIdentityCMapr5   r$   .c                 ód   — t        |«      dz  }|r t        j                  d|› d�|d |dz   «      S y)Né   ú>ÚHr   ©ÚlenÚstructÚunpack©r*   r5   Úns      r    rA   zIdentityCMap.decodez   s8   € Ü�‹I˜‰NˆÙÜ—=‘= 1 Q C q ¨4°°!°a±%¨=Ó9Ð9àr   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y)ÚIdentityCMapByter5   r$   .c                 óX   — t        |«      }|rt        j                  d|› d�|d | «      S y)Nrm   ÚBr   ro   rs   s      r    rA   zIdentityCMapByte.decodeƒ   s0   € Ü�‹IˆÙÜ—=‘= 1 Q C q ¨4°°¨8Ó4Ð4àr   Nru   r   r   r    rx   rx   ‚   rv   r   rx   c                   óf   — 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y)
Ú
UnicodeMapr#   r$   Nc                 ó>   — t        j                  | fi |¤Ž i | _        y r&   )r"   r+   Ú
cid2unichrr)   s     r    r+   zUnicodeMap.__init__Œ   s   € Ü×Ñ˜$Ñ) &Ò)Ø*,ˆ�r   c                 óV   — dj                  | j                  j                  d«      «      S )Nz<UnicodeMap: {}>rM   rN   r/   s    r    rP   zUnicodeMap.__repr__�   s    € Ø!×(Ñ(¨¯©¯©¸
Ó)CÓDÐDr   r6   c                 óN   — t         j                  d| |«       | j                  |   S )Núget_unichr: %r, %r)r[   rB   r~   ©r*   r6   s     r    Ú
get_unichrzUnicodeMap.get_unichr“   s"   € Ü�	‰	Ð&¨¨cÔ2Ø�‰˜sÑ#Ð#r   r_   c                 óŠ   — t        | j                  j                  «       «      D ]  \  }}|j                  d|› d|›d�«       Œ y )Nzcid z = unicode ra   )rb   r~   rU   rc   )r*   r_   r1   r2   s       r    rd   zUnicodeMap.dump—   sB   € Ü˜4Ÿ?™?×0Ñ0Ó2Ó3ò 	4‰DˆAˆqØ�I‰I˜˜Q˜C˜{¨1¨%¨rÐ2Õ3ñ	4r   )r   r   r   rE   rF   r+   rP   rƒ   rf   rg   r	   rd   r   r   r    r|   r|   ‹   sV   „ ð-  s¡ð -¨tó -ðE˜#ó Eð$˜cð $ có $ð "%§¡ñ 4˜ð 4°ô 4r   r|   c                   ó   — e Zd Zdedefd„Zy)ÚIdentityUnicodeMapr6   r$   c                 óF   — t         j                  d| |«       t        |«      S )z+Interpret character id as unicode codepointr�   )r[   rB   Úchrr‚   s     r    rƒ   zIdentityUnicodeMap.get_unichr�   s   € ä�	‰	Ð&¨¨cÔ2Ü�3‹xˆr   N)r   r   r   rF   rE   rƒ   r   r   r    r†   r†   œ   s   „ ð˜cð  cô r   r†   c                   ó    — e Zd Zdededdfd„Zy)ÚFileCMapr5   r6   r$   Nc                 óP  — t        |t        «      rt        |t        «      s$J t        t        |«      t        |«      f«      «       ‚| j                  }|d d D ];  }t        |«      }||v r!t        t        t        t        f   ||   «      }Œ3i }|||<   |}Œ= t        |d   «      }|||<   y )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œ˜c›Ð#ó@
ó 	
Ð=ð �M‰MˆØ�c�r�ò 	ˆAÜ�Q“ˆBØ�Q‰wÜœœc¤6˜kÑ*¨A¨b©EÓ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y)ÚFileUnicodeMapr6   r5   r$   Nc                 óÔ  — t        |t        «      sJ t        t        |«      «      «       ‚t        |t        «      r2t        |j
                  t        «      sJ ‚t        |j
                  «      }nJt        |t        «      r|j                  dd«      }n't        |t        «      rt        |«      }nt        |«      ‚|dk(  r| j                  j                  |«      dk(  ry || j                  |<   y )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¤S¬¨c«£^Ó3Ð#Ü�dœIÔ&ä˜dŸi™i¬Ô-Ð-Ð-Ü! $§)¡)Ó,‰FÜ˜œeÔ$à—[‘[ ¨XÓ6‰FÜ˜œcÔ"Ü˜“Y‰Fä˜tÓ$Ð$ð �XÒ $§/¡/×"5Ñ"5°cÓ":¸cÒ"AØØ%ˆ�‰˜Òr   )r   r   r   rF   r   rG   r;   r   r   r    r‘   r‘   µ   s&   „ ð& #ð &¨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<   y y ©N)rM   é   r-   )Úsuperr+   ÚCODE2CIDrK   ÚIS_VERTICALr(   )r*   r–   rš   Ú	__class__s      €r    r+   zPyCMap.__init__Ë   s:   ø€ Ü‰Ñ $ÐÔ'ØŸ™ˆŒØ×ÒØ"#ˆD�J‰J�wÒð r   )r   r   r   rE   r   r+   Ú__classcell__©r¡   s   @r    r™   r™   Ê   s"   ø„ ð$˜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<   y |j
                  | _        y rœ   )rž   r+   ÚCID2UNICHR_Vr~   r(   ÚCID2UNICHR_H)r*   r–   rš   r¦   r¡   s       €r    r+   zPyUnicodeMap.__init__Ó   s>   ø€ Ü‰Ñ $ÐÔ'ÙØ$×1Ñ1ˆDŒOØ"#ˆD�J‰J�wÒà$×1Ñ1ˆD�Or   )r   r   r   rE   r   rD   r+   r¢   r£   s   @r    r¥   r¥   Ò   s)   ø„ ð2˜Sð 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y)ÚCMapDBÚ_cmap_cacheÚ_umap_cachec                   ó   — e Zd Zy)úCMapDB.CMapNotFoundNr   r   r   r    ÚCMapNotFoundr¯   à   s   „ Ør   r°   rX   r$   c                 ó   — t        | t        «      s| S i }| j                  «       D ]?  \  }}	 t        |«      }t        |t        «      rt        j                  |«      ||<   Œ;|||<   ŒA |S # t        t
        f$ r |}Y ŒEw xY w)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ò 
	$‰DˆAˆqðÜ˜a›&�ô ˜!œTÔ"Ü"(×"?Ñ"?ÀÓ"B��w’à"#��w’ð
	$ð ˆøô ¤	Ð*ò Ø’ðús   ¬A)Á)A=Á<A=r–   c           	      óÀ  — |j                  dd«      }t        j                  d|«       t        j                  j                  dd«      t        j                  j                  t        j                  j                  t        «      d«      f}|D �]¢  }|› d�}t        j                  j                  ||«      }t        j                  j                  |«      }t        j                  j                  |«      }|j                  |t        j                  z   «      sŒŠt        j                  j                  |«      sŒªt        j                  d|«       t        j                  |d	d
¬«      5 }t!        j"                  |«      }	d|	v r3|	d   j%                  «       D �
�ci c]  \  }
}t'        |
«      |“Œ c}}
|	d<   d|	v r3|	d   j%                  «       D �
�ci c]  \  }
}t'        |
«      |“Œ c}}
|	d<   |	j                  d«      r| j)                  |	d   «      |	d<   t+        t-        |«      d|	«      cd d d «       c S  t.        j1                  |«      ‚c c}}
w c c}}
w # 1 sw Y   �ŒÑxY w)Nú Ú zloading: %rÚ	CMAP_PATHz/usr/share/pdfminer/r=   z.json.gzzloading JSON: %rÚrtzutf-8)Úencodingr©   r¨   rŸ   r   )Úreplacer[   rB   ÚosÚenvironr.   ÚpathÚjoinÚdirnameÚ__file__ÚrealpathÚ
startswithÚsepÚexistsÚgzipÚopenÚjsonÚloadrU   rF   r´   rY   rE   r«   r°   )Úclsr–   Ú
cmap_pathsÚ	directoryÚjson_filenameÚ	json_pathÚresolved_json_pathÚresolved_directoryÚgzfileÚdatar1   r2   s               r    Ú
_load_datazCMapDB._load_dataø   sú  € à�|‰|˜D "Ó%ˆÜ�	‰	�- Ô&ä�J‰J�N‰N˜;Ð(>Ó?Ü�G‰G�L‰LœŸ™Ÿ™¬Ó2°FÓ;ð
ˆ
ð
 $ó 	5ˆIà#˜f HÐ-ˆMÜŸ™Ÿ™ Y°Ó>ˆIÜ!#§¡×!1Ñ!1°)Ó!<ÐÜ!#§¡×!1Ñ!1°)Ó!<Ðð "×,Ñ,Ø"¤R§V¡VÑ+õä—'‘'—.‘.Ð!3Õ4Ü—	‘	Ð,¨iÔ8Ü—Y‘YÐ1°4À'ÔJð 5ÈfÜ+/¯9©9°VÓ+<�Dà%¨Ñ-à26°~Ñ2F×2LÑ2LÓ2N÷0Ù*.¨!¨QœC ›F A™Ió0˜˜^Ñ,ð &¨Ñ-à26°~Ñ2F×2LÑ2LÓ2N÷0Ù*.¨!¨QœC ›F A™Ió0˜˜^Ñ,ð —x‘x 
Ô+Ø+.×+EÑ+EÀdÈ:ÑFVÓ+W˜˜ZÑ(Ü¤ D£	¨2¨tÓ4÷5ó 5ð	5ô8 ×!Ñ! $Ó'Ð'ùó0ùó0÷5ñ 5ús+   Å$0IÆI
Æ*!IÇI
Ç!AIÉIÉI	c                 ó$  — |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| j	                  |«      }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Ó'9Ð9ˆ�‰˜Ñ Øˆs   ÁA Á	A!Á A!r¦   c                 óî   — 	 | j                   |   |   S # t        $ r Y nw xY w| j                  d|› �«      }dD �cg c]  }t        |||«      ‘Œ nc c}w c}| j                   |<   | j                   |   |   S )Nzto-unicode-)FT)r­   rÙ   rÕ   r¥   )rÌ   r–   r¦   rÔ   r2   s        r    Úget_unicode_mapzCMapDB.get_unicode_map1  s{   € ð	Ø—?‘? 4Ñ(¨Ñ2Ð2øÜò 	Ùð	úà�~‰~ ¨D¨6Ð2Ó3ˆØFSÖ TÀ¤¨d°D¸!Õ!<Ñ TùÔ Tˆ�‰˜ÑØ�‰˜tÑ$ XÑ.Ð.s   ‚ ”	 Ÿ »A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«   Ü   s   … Ø/1€K�˜$˜s F˜{Ñ+Ñ,Ó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                   óL  — 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y)Ú
CMapParserr=   Úfpr$   Nc                 ój   — t        j                  | |«       || _        d| _        t	        «       | _        y )NT)r   r+   r=   Ú_in_cmapÚsetÚ	_warnings)r*   r=   rã   s      r    r+   zCMapParser.__init__=  s)   € Ü×Ñ˜t RÔ(ØˆŒ	àˆŒÜ#&£5ˆ�r   c                 ó€   — t        j                  t        «      5  | j                  «        d d d «       y # 1 sw Y   y xY wr&   )Ú
contextlibÚsuppressr   Ú
nextobjectr/   s    r    ÚrunzCMapParser.runD  s/   € Ü× Ñ ¤Ó'ñ 	Ø�O‰OÔ÷	÷ 	ñ 	ús   š4´=s	   begincmaps   endcmaps   usecmaps   defs   begincodespaceranges   endcodespaceranges   begincidranges   endcidranges   begincidchars
   endcidchars   beginbfranges
   endbfranges   beginbfchars	   endbfchars   beginnotdefranges   endnotdefrangeÚposÚtokenc                 ó:  — || j                   u rd| _        | j                  «        y|| j                  u rd| _        y| j                  sy|| j                  u rA	 | j                  d«      \  \  }}\  }}| j                  j                  t        |«      |«       y|| j                  u rO	 | j                  d«      \  \  }}| j                  j                  t        j                  t        |«      «      «       y|| j                  u r| j                  «        y|| j                   u r| j                  «        y|| j"                  u r| j                  «        y|| j$                  u �rj| j                  «       D ��cg c]  \  }}|‘Œ	 }	}}t'        d|	«      D �]7  \  }
}}t)        |
t*        «      s| j-                  d«       Œ*t)        |t*        «      s| j-                  d«       ŒLt)        |t.        «      s| j-                  d	«       Œnt1        |
«      t1        |«      k7  r| j-                  d
«       Œ—|
dd }|dd }||k7  r| j-                  d«       Œ¸|
dd }|dd }t3        |«      }t3        |«      }t1        |«      }t5        ||z
  dz   «      D ]A  }|t7        j8                  d||z   «      | d z   }| j                  j;                  ||z   |«       ŒC �Œ: y|| j<                  u r| j                  «        y|| j>                  u ru| j                  «       D ��cg c]  \  }}|‘Œ	 }	}}t'        d|	«      D ]C  \  }}t)        |t*        «      sŒt)        |t.        «      sŒ(| j                  j;                  ||«       ŒE y|| j@                  u r| j                  «        y|| jB                  u �rº| j                  «       D ��cg c]  \  }}|‘Œ	 }	}}t'        d|	«      D �]‡  \  }
}}t)        |
t*        «      s| j-                  d«       Œ*t)        |t*        «      s| j-                  d«       ŒLt1        |
«      t1        |«      k7  r| j-                  d«       Œut3        |
«      }t3        |«      }t)        |tD        «      rft1        |«      ||z
  dz   k7  r| j-                  d«       tG        t5        ||dz   «      |d¬«      D ]!  \  }}| j                  j;                  ||«       Œ# �Œt)        |t*        «      sJ ‚|dd }t3        |«      }|dd }t1        |«      }t5        ||z
  dz   «      D ]A  }|t7        j8                  d||z   «      | d z   }| j                  j;                  ||z   |«       ŒC �ŒŠ y|| jH                  u r| j                  «        y|| jJ                  u r~| j                  «       D ��cg c]  \  }}|‘Œ	 }	}}t'        d|	«      D ]L  \  }}t)        |t*        «      sŒt)        |t*        «      sŒ(| j                  j;                  t3        |«      |«       ŒN y|| jL                  u r| j                  «        y|| jN                  u r| j                  «        y| jQ                  ||f«       y# t        $ r Y yw xY w# t        $ r Y yt        j                  $ r Y yw xY wc c}}w c c}}w c c}}w c c}}w )z[ToUnicode CMaps

        See Section 5.9.2 - ToUnicode CMaps of the PDF Reference.
        TNFrl   r�   é   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>Lz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.)Ústrict))Ú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Ú__ÚobjÚ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  s7  € ð
 �D×*Ñ*Ñ*Ø ˆDŒMØ�K‰KŒMØà�d×*Ñ*Ñ*Ø!ˆDŒMØà�}Š}Øà�D×$Ñ$Ñ$ðØ#'§8¡8¨A£;Ñ ‘�!�Q™˜!˜QØ—	‘	×"Ñ"¤<°£?°AÔ6ð à�D×(Ñ(Ñ(ðØ#'§8¡8¨A£;Ñ ‘�!�XØ—	‘	×"Ñ"¤6§?¡?´<ÀÓ3IÓ#JÔKð
 à�D×4Ñ4Ñ4Ø�K‰KŒMØØ�D×2Ñ2Ñ2Ø�K‰KŒMØà�D×.Ñ.Ñ.Ø�K‰KŒMØà�D×,Ñ,Ò,Ø)-¯©«×7™I˜R ’CÐ7ˆDÑ7Ü-5°a¸Ó->ó 9Ñ)�
˜H cÜ! *¬eÔ4Ø—O‘OÐ$VÔWØÜ! (¬EÔ2Ø—O‘OÐ$TÔUØÜ! #¤sÔ+Ø—O‘OÐ$TÔUØÜ�z“?¤c¨(£mÒ3Ø—O‘Oð-ôð Ø)¨#¨2˜�Ø% c r˜]�
Ø :Ò-Ø—O‘Oð:ôð Ø! " #��Ø  �}�Ü ›�Ü˜d“m�Ü˜4“y�Ü˜s U™{¨Q™Ó/ò 9�AØ$¤v§{¡{°4¸À¹Ó'CÀTÀEÀFÐ'KÑK�AØ—I‘I×,Ñ,¨S°1©W°aÕ8ò9ð;9ð@ à�D×-Ñ-Ñ-Ø�K‰KŒMØà�D×+Ñ+Ñ+Ø)-¯©«×7™I˜R ’CÐ7ˆDÑ7Ü% a¨Ó.ò 8‘	��TÜ˜d¤EÕ*¬z¸#¼sÕ/CØ—I‘I×,Ñ,¨S°$Õ7ð8ð à�D×-Ñ-Ñ-Ø�K‰KŒMØà�D×+Ñ+Ò+Ø)-¯©«×7™I˜R ’CÐ7ˆDÑ7Ü.6°q¸$Ó.?ó ?Ñ*�
˜H dÜ! *¬eÔ4Ø—O‘OÐ$EÔFØÜ! (¬EÔ2Ø—O‘OÐ$CÔDØÜ�z“?¤c¨(£mÒ3Ø—O‘OÐ$TÔUØÜ 
Ó+�Ü˜hÓ'�Ü˜d¤DÔ)Ü˜4“y C¨%¡K°!¡OÒ3ØŸ™ðFôô /2Ü˜e S¨1¡WÓ-¨t¸Eô/ò EÑ*˜˜]ð Ÿ	™	×0Ñ0°°mÕDòEô
 & d¬EÔ2Ð2Ð2Ø˜r˜s˜)�CÜ" 3›<�DØ! # 2˜Y�FÜ˜s›8�DÜ" 3¨¡;°¡?Ó3ò ?˜Ø"¤V§[¡[°°t¸a±xÓ%@À$ÀÀÐ%HÑH˜ØŸ	™	×0Ñ0°¸±¸AÕ>ò?ð9?ð> à�D×,Ñ,Ñ,Ø�K‰KŒMØà�D×*Ñ*Ñ*Ø)-¯©«×7™I˜R ’CÐ7ˆDÑ7Ü% a¨Ó.ò A‘	��TÜ˜c¤5Õ)¬j¸¼uÕ.EØ—I‘I×,Ñ,¬W°S«\¸4Õ@ðAð à�D×1Ñ1Ñ1Ø�K‰KŒMØà�D×/Ñ/Ñ/Ø�K‰KŒMØà�	‰	�3˜�,ÕøôE !ò ØØðûô !ò Øð ô ×&Ñ&ò ØØðüó  8ùóP 8ùó 8ùóN 8sC   Á?Y Â(AY" Å5ZÌZÎ/ZÖZÙ	YÙYÙ"	ZÙ-ZÚZÚmsgc                 óŠ   — || j                   vr5| j                   j                  |«       d}t        j                  d||«       yy)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ò  sA   € à�d—n‘nÑ$Ø�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Ó)ÐÙ˜*“o€OÙ˜*“o€OÙ�f“+€KÙ"%Ð&<Ó"=ÐÙ #Ð$8Ó 9ÐÙÐ 0Ó1ÐÙ˜nÓ-ÐÙ˜Ó/ÐÙ˜]Ó+ÐÙ˜Ó/ÐÙ˜]Ó+ÐÙ˜nÓ-ÐÙ˜LÓ)ÐÙ"Ð#6Ó7ÐÙ Ð!2Ó3ÐðW ˜cð 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ß TÕ Tß ,à€g×Ñ˜Ó!€ô	�ô 	÷"ñ "ô22Pˆ8ô 2Pôj�8ô ô�|ô ô4�ô 4ô"˜ô ôˆtô ô$&�Zô &ô*$ˆTô $ô2�:ô 2÷]/ñ ]/ô@/�˜yÑ)õ /r   