§
    Æ‡tjò  ã                   óÜ   — d dl Z d dlZd dlmZ d dlmZmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZ  ej        d¦  «        Z e j        e¦  «        Zd	ed
efd„Zded
dfd„Z G d„ d¦  «        ZdS )é    N)ÚIterable)ÚClassVarÚcast)Úglyphname2unicode)ÚENCODING©ÚPDFKeyError)Ú	PSLiteralz[0-9a-fA-F]+ÚnameÚreturnc                 ó@  ‡— t          | t          ¦  «        s"t          d| › dt          | ¦  «        › �¦  «        ‚|                      d¦  «        d         } |                      d¦  «        }t          |¦  «        dk    r(d                     t          t          |¦  «        ¦  «        S | t          v rt          |          S |  
                    d¦  «        r®|                      d¦  «        Št                               ‰¦  «        r~t          ‰¦  «        d	z  dk    rhˆfd
„t          dt          ‰¦  «        d	¦  «        D ¦   «         }|D ]}t          |¦  «         Œt          t           |¦  «        }d                     |¦  «        S n�|  
                    d¦  «        r{|                      d¦  «        }t                               |¦  «        rLd	t          |¦  «        cxk    rdk    r2n n/t#          |d¬¦  «        }t          |¦  «         t!          |¦  «        S t          d| › d�¦  «        ‚)a·  Converts Adobe glyph names to Unicode numbers.

    In contrast to the specification, this raises a KeyError instead of return
    an empty string when the key is unknown.
    This way the caller must explicitly define what to do
    when there is not a match.

    Reference:
    https://github.com/adobe-type-tools/agl-specification#2-the-mapping

    :returns unicode character if name resembles something,
    otherwise a KeyError
    z Could not convert unicode name "z?" to character because it should be of type str but is of type ú.r   Ú_é   Ú Úunié   c                 óH   •— g | ]}t          ‰||d z   …         d¬¦  «        ‘ŒS )r   é   ©Úbase)Úint)Ú.0ÚiÚname_without_unis     €úQ/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/pdfminer/encodingdb.pyú
<listcomp>z name2unicode.<locals>.<listcomp>1   sD   ø€ ð ð ð àõ Ð$ Q¨¨Q© YÔ/°bÐ9Ñ9Ô9ðð ð ó    Úué   r   r   z6" to character because it does not match specification)Ú
isinstanceÚstrr	   ÚtypeÚsplitÚlenÚjoinÚmapÚname2unicoder   Ú
startswithÚstripÚHEXADECIMALÚmatchÚrangeÚ#raise_key_error_for_invalid_unicodeÚchrr   )r   Ú
componentsÚunicode_digitsÚdigitÚ
charactersÚname_without_uÚunicode_digitr   s          @r   r(   r(      sJ  ø€ õ �d�CÑ Ô ð 
ÝðD¨tð Dð DÝ7;¸D±z´zðDð Dñ
ô 
ð 	
ð
 �:Š:�c‰?Œ?˜1Ô€DØ—’˜C‘”€Jå
ˆ:�„˜ÒÐØ�wŠw•s�<¨Ñ4Ô4Ñ5Ô5Ð5à	Õ"Ð	"Ð	"Ý  Ô&Ð&à	�Š˜Ñ	Ô	ð &ØŸ:š: eÑ,Ô,Ðå×ÒÐ-Ñ.Ô.ð 	'µ3Ð7GÑ3HÔ3HÈ1Ñ3LÐPQÒ3QÐ3Qðð ð ð å˜q¥#Ð&6Ñ"7Ô"7¸Ñ;Ô;ðñ ô ˆNð (ð ;ð ;�Ý3°EÑ:Ô:Ð:Ð:Ý�S .Ñ1Ô1ˆJØ—7’7˜:Ñ&Ô&Ð&øà	�Š˜Ñ	Ô	ð &ØŸš C™œˆå×Ò˜^Ñ,Ô,ð 	&°µc¸.Ñ6IÔ6IÐ1NÐ1NÒ1NÐ1NÈQÒ1NÐ1NÐ1NÐ1NÐ1NÝ °RÐ8Ñ8Ô8ˆMÝ/°Ñ>Ô>Ð>Ý�}Ñ%Ô%Ð%å
ð	*¨4ð 	*ð 	*ð 	*ñô ð r   r5   c                 óN   — d| cxk     rdk     rn dS t          d| › d�¦  «        ‚dS )z©Unicode values should not be in the range D800 through DFFF because
    that is used for surrogate pairs in UTF-16

    :raises KeyError if unicode digit is invalid
    iÿ×  i à  zUnicode digit z8 is invalid because it is in the range D800 through DFFFNr   )r5   s    r   r.   r.   H   sY   € ð ˆ}Ð$Ð$Ò$Ð$˜uÒ$Ð$Ð$Ð$Ð$Ð$Ýð3˜]ð 3ð 3ð 3ñ
ô 
ð 	
ð %Ð$r   c            
       óª  — e Zd ZU i Zeeeef                  ed<   i Z	eeeef                  ed<   i Z
eeeef                  ed<   i Zeeeef                  ed<   eD ]/\  ZZZZZ ee¦  «        Zereee<   eree	e<   eree
e<   ereee<   Œ0ee	e
edœZeeeeeef         f                  ed<   e	 dded	ee         dz  d
eeef         fd„¦   «         ZdS )Ú
EncodingDBÚstd2unicodeÚmac2unicodeÚwin2unicodeÚpdf2unicode)ÚStandardEncodingÚMacRomanEncodingÚWinAnsiEncodingÚPDFDocEncodingÚ	encodingsNr   Údiffr   c                 óÆ  — | j                              || j        ¦  «        }|r¾|                     ¦   «         }d}|D ]¥}t	          |t
          ¦  «        r|}Œt	          |t          ¦  «        rv	 t          t          t          |j
        ¦  «        ¦  «        ||<   nE# t          t          f$ r1}t                               t          |¦  «        ¦  «         Y d }~nd }~ww xY w|dz  }Œ¦|S )Nr   r   )rA   Úgetr9   Úcopyr!   r   r
   r(   r   r"   r   ÚKeyErrorÚ
ValueErrorÚlogÚdebug)Úclsr   rB   Úcid2unicodeÚcidÚxÚes          r   Úget_encodingzEncodingDB.get_encodingl   sö   € ð ”m×'Ò'¨¨c¬oÑ>Ô>ˆØð 	Ø%×*Ò*Ñ,Ô,ˆKØˆCØð ð �Ý˜a¥Ñ%Ô%ð Ø�C�CÝ ¥9Ñ-Ô-ð ð*Ý+7½½SÀ!Ä&Ñ8IÔ8IÑ+JÔ+J˜ CÑ(Ð(øÝ$¥jÐ1ð *ð *ð *ÝŸ	š	¥# a¡&¤&Ñ)Ô)Ð)Ð)Ð)Ð)Ð)Ð)øøøøð*øøøà˜1‘H�CøØÐs   Á+*BÂCÂ''CÃC)N)Ú__name__Ú
__module__Ú__qualname__r9   r   Údictr   r"   Ú__annotations__r:   r;   r<   r   r   ÚstdÚmacÚwinÚpdfr(   ÚcrA   Úclassmethodr   ÚobjectrO   © r   r   r8   r8   U   s–  € € € € € € Ø,.€K�˜$˜s C˜xœ.Ô)Ð.Ð.Ñ.Ø,.€K�˜$˜s C˜xœ.Ô)Ð.Ð.Ñ.Ø,.€K�˜$˜s C˜xœ.Ô)Ð.Ð.Ñ.Ø,.€K�˜$˜s C˜xœ.Ô)Ð.Ð.Ñ.Ø$,ð 	!ð 	!Ñ ˆˆc�3˜˜SØˆL˜ÑÔˆØð 	!Ø ˆK˜ÑØð 	!Ø ˆK˜ÑØð 	!Ø ˆK˜ÑØð 	!Ø ˆK˜Ñøð (Ø'Ø&Ø%ð	6ð 6€Iˆx˜˜S $ s¨C x¤.Ð0Ô1Ô2ð ð ñ ð ð )-ðð àðð �vÔ Ñ%ðð 
ˆc�3ˆhŒð	ð ð ñ „[ðð ð r   r8   )ÚloggingÚreÚcollections.abcr   Útypingr   r   Úpdfminer.glyphlistr   Úpdfminer.latin_encr   Úpdfminer.pdfexceptionsr	   Úpdfminer.psparserr
   Úcompiler+   Ú	getLoggerrP   rH   r"   r(   r   r.   r8   r\   r   r   ú<module>rg      s#  ðØ €€€Ø 	€	€	€	Ø $Ð $Ð $Ð $Ð $Ð $Ø !Ð !Ð !Ð !Ð !Ð !Ð !Ð !à 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø .Ð .Ð .Ð .Ð .Ð .Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'àˆbŒj˜Ñ)Ô)€à€gÔ˜Ñ!Ô!€ð5�sð 5˜sð 5ð 5ð 5ð 5ðp

°sð 

¸tð 

ð 

ð 

ð 

ð*ð *ð *ð *ð *ñ *ô *ð *ð *ð *r   