Ë
    vl�jýN  ã            
       óz  — d dl Z d dlZd dlZd dlZd dlmZ d dlmZmZm	Z	m
Z
mZ d dlmZmZ d dlmZ  ej"                  e«      Zej(                  Zej*                  Zej,                  Zej.                  Zej0                  Z G d„ d«      Z G d„ d	e«      Z G d
„ de«      Z e
dee«      Z G d„ de	e   «      Z ee«      Z ee«      Zej@                  Z!ej@                  Z" e"d«      Z# e"d«      Z$ e"d«      Z% e"d«      Z& e"d«      Z' e"d«      Z(dede)fd„Z*dedefd„Z+ ejX                  d«      Z- ejX                  d«      Z. ejX                  d«      Z/ ejX                  d«      Z0 ejX                  d«      Z1 ejX                  d«      Z2 ejX                  d«      Z3 ejX                  d «      Z4 ejX                  d«      Z5 ejX                  d!«      Z6 ejX                  d"«      Z7d#d$d%d&d'd(d)d*d+œZ8ee9e:eee;f   Z< G d,„ d-«      Z= e
d.«      Z>ee)e9e:ee;e?e   e@eef   e>f   ZAeBeCeAe>   f   ZD G d/„ d0e=e	e>   «      ZEy)1é    N)ÚIterator)ÚAnyÚBinaryIOÚGenericÚTypeVarÚUnion)ÚpsexceptionsÚsettings)Úchoplistc                   ó   — e Zd ZdZy)ÚPSObjectz0Base class for all PS or PDF-related data types.N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__© ó    úG/var/www/html/pp/venv/lib/python3.12/site-packages/pdfminer/psparser.pyr   r      s   „ Ú:r   r   c                   ó:   — e Zd ZdZeeef   Zdeddfd„Zdefd„Z	y)Ú	PSLiteralaa  A class that represents a PostScript literal.

    Postscript literals are used as identifiers, such as
    variable names, property names and dictionary keys.
    Literals are case sensitive and denoted by a preceding
    slash sign (e.g. "/Name")

    Note: Do not create an instance of PSLiteral directly.
    Always use PSLiteralTable.intern().
    ÚnameÚreturnNc                 ó   — || _         y ©N©r   ©Úselfr   s     r   Ú__init__zPSLiteral.__init__/   ó	   € Øˆ�	r   c                 ó$   — | j                   }d|›�S ©Nú/r   r   s     r   Ú__repr__zPSLiteral.__repr__2   ó   € Ø�y‰yˆØ�4�(ˆ|Ðr   )
r   r   r   r   r   ÚstrÚbytesÚNameTyper   r#   r   r   r   r   r   !   s6   „ ñ	ð �S˜%�ZÑ €Hð˜Xð ¨$ó ð˜#ô r   r   c                   ó,   — e Zd ZdZdeddfd„Zdefd„Zy)Ú	PSKeywordaN  A class that represents a PostScript keyword.

    PostScript keywords are a dozen of predefined words.
    Commands and directives in PostScript are expressed by keywords.
    They are also used to denote the content boundaries.

    Note: Do not create an instance of PSKeyword directly.
    Always use PSKeywordTable.intern().
    r   r   Nc                 ó   — || _         y r   r   r   s     r   r   zPSKeyword.__init__B   r   r   c                 ó$   — | j                   }d|›�S r!   r   r   s     r   r#   zPSKeyword.__repr__E   r$   r   )r   r   r   r   r&   r   r%   r#   r   r   r   r)   r)   7   s&   „ ñð˜Uð  tó ð˜#ô r   r)   Ú_SymbolTc                   óJ   — e Zd ZdZdee   ddfd„Zdej                  defd„Z	y)ÚPSSymbolTablezƒA utility class for storing PSLiteral/PSKeyword objects.

    Interned objects can be checked its identity with "is" operator.
    Úklassr   Nc                 ó    — i | _         || _        y r   ©Údictr/   )r   r/   s     r   r   zPSSymbolTable.__init__S   s   € Ø8:ˆŒ	Ø%*ˆ�
r   r   c                 ó„   — || j                   v r| j                   |   }|S | j                  |«      }|| j                   |<   |S r   r1   )r   r   Úlits      r   ÚinternzPSSymbolTable.internW   sD   € Ø�4—9‘9ÑØ—)‘)˜D‘/ˆCð ˆ
ð —*‘*˜TÓ"ˆCØ!ˆD�I‰I�d‰OØˆ
r   )
r   r   r   r   Útyper,   r   r   r'   r5   r   r   r   r.   r.   M   s7   „ ñð
+˜d 8™nð +°ó +ð˜9×-Ñ-ð °(ô r   r.   ó   {ó   }ó   [ó   ]s   <<s   >>Úxr   c                 ó6  — t        | t        «      r=t        | j                  t        «      r| j                  S 	 t        | j                  d«      S t
        j                  rt        d| ›�«      ‚t        | «      S # t        $ r t        | j                  «      cY S w xY w)Núutf-8zLiteral required: )Ú
isinstancer   r   r%   ÚUnicodeDecodeErrorr
   ÚSTRICTÚPSTypeError)r;   s    r   Úliteral_namerB   n   s}   € Ü�!”YÔÜ�a—f‘fœcÔ"Ø—6‘6ˆMð	Ü�q—v‘v˜wÓ'Ð'ô �?Š?ÜÐ 2°1°%Ð8Ó9Ð9Ü�1‹vˆøô "ò 	Ü�q—v‘v“;Òð	ús   ¸A7 Á7BÂBc                 ó˜   — t        | t        «      s"t        j                  rt	        d| ›�«      ‚| }|S t        | j                  dd«      }|S )NzKeyword required: r=   Úignore)r>   r)   r
   r@   rA   r%   r   )r;   r   s     r   Úkeyword_namerE   |   sK   € Ü�aœÔ#Ü�?Š?ÜÐ 2°1°%Ð8Ó9Ð9àˆDð €Kô �1—6‘6˜7 HÓ-ˆØ€Kr   s   [\r\n]s   \ss   \Ss   [0-9a-fA-F]s   [#/%\[\]()<>{}\s]s   [^\s0-9a-fA-F]s   [0-9a-fA-F]{2}|.s   [^0-9]s   [()\134]s   [0-7]é   é	   é
   é   é   é(   é)   é\   )ó   bó   tó   nó   fó   ró   (ó   )ó   \c                   ó’  — e Zd ZdZdZdeddfd„Zdefd„Zdd„Z	d	e
ddfd
„Zdefd„Zdee
ef   fd„Zdee   fd„Zdede
de
fd„Zdeddfd„Zdede
de
fd„Zdede
de
fd„Zdede
de
fd„Zdede
de
fd„Zdede
de
fd„Zdede
de
fd„Zdede
de
fd„Zdede
de
fd„Zdede
de
fd„Zdede
de
fd„Zdede
de
fd„Z dee
ef   fd„Z!y) ÚPSBaseParserz=Most basic PostScript parser that performs only tokenization.i   Úfpr   Nc                 óB   — || _         d| _        | j                  d«       y )NFr   )rX   ÚeofÚseek©r   rX   s     r   r   zPSBaseParser.__init__¦   s   € ØˆŒØˆŒØ�	‰	�!�r   c                 ój   — d| j                   j                  › d| j                  ›d| j                  › d�S )Nú<z: z	, bufpos=ú>)Ú	__class__r   rX   Úbufpos©r   s    r   r#   zPSBaseParser.__repr__«   s0   € Ø�4—>‘>×*Ñ*Ð+¨2¨d¯g©g¨[¸	À$Ç+Á+ÀÈaÐPÐPr   c                  ó   — y r   r   rb   s    r   ÚflushzPSBaseParser.flush®   ó   € Ør   Úposc                 óê   — t         j                  d|«       | j                  j                  |«       || _        d| _        d| _        | j                  | _        d| _	        d| _
        g | _        d| _        y)z'Seeks the parser to the given position.zseek: %rr   r   FN)ÚlogÚdebugrX   r[   ra   ÚbufÚcharposÚ_parse_mainÚ_parse1Ú	_curtokenÚ_curtokenposÚ_tokensrZ   ©r   rf   s     r   r[   zPSBaseParser.seek±   s_   € ä�	‰	�*˜cÔ"Ø�‰�‰�SÔàˆŒØˆŒØˆŒà×'Ñ'ˆŒØˆŒØˆÔØ<>ˆŒØˆ�r   c                 ó  — | j                   t        | j                  «      k  ry| j                  j	                  «       | _        | j                  j                  | j                  «      | _        | j                  st        d«      ‚d| _         y)NFúUnexpected EOFr   )	rk   Úlenrj   rX   Útellra   ÚreadÚBUFSIZÚPSEOFrb   s    r   ÚfillbufzPSBaseParser.fillbufÀ   s_   € Ø�<‰<œ#˜dŸh™h›-Ò'Øà—g‘g—l‘l“nˆŒØ—7‘7—<‘< §¡Ó,ˆŒØ�xŠxÜÐ(Ó)Ð)ØˆŒØr   c                 ó†  — d}| j                   | j                  z   }d}	 | j                  «        |rF| j                  | j                  | j                  dz    }|dk(  r||z  }| xj                  dz  c_        n±t        j                  | j                  | j                  «      }|rM|| j                  | j                  |j                  d«       z  }|j                  d«      | _        |dd dk(  rd	}n7n8|| j                  | j                  d z  }t        | j                  «      | _        �Œ	t        j                  d
||«       ||fS )z3Fetches a next line that ends either with \r or \n.r   Fé   ó   
r   éÿÿÿÿNó   Tznextline: %r, %r)
ra   rk   ry   rj   ÚEOLÚsearchÚendrt   rh   ri   )r   ÚlinebufÚlineposÚeolÚcÚms         r   ÚnextlinezPSBaseParser.nextlineË   s  € àˆØ—+‘+ §¡Ñ,ˆØˆØØ�L‰LŒNÙØ—H‘H˜TŸ\™\¨D¯L©L¸1Ñ,<Ð=�à˜’:Ø˜q‘L�GØ—L’L AÑ%•LØÜ—
‘
˜4Ÿ8™8 T§\¡\Ó2ˆAÙØ˜4Ÿ8™8 D§L¡L°1·5±5¸³8Ð<Ñ<�Ø Ÿu™u Q›x�”Ø˜2˜3�< 5Ò(Ø‘Càà˜4Ÿ8™8 D§L¡L NÐ3Ñ3�Ü" 4§8¡8›}�”ñ' ô( 	�	‰	Ð$ g¨wÔ7à˜Ð!Ð!r   c              #   óî  K  — | j                   j                  dt        j                  «       | j                   j	                  «       }d}|dkD  r¦|}t        d|| j                  z
  «      }| j                   j                  |«       | j                   j                  ||z
  «      }|sy	 t        |j                  d«      |j                  d«      «      }|dk(  r||z   }n||d |z   –— |d| }d}ŒG|dkD  rŒ¥yy­w)ziFetches a next line backward.

        This is used to locate the trailers at the end of a file.
        r   r   r~   r|   r}   N)	rX   r[   ÚioÚSEEK_ENDru   Úmaxrw   rv   Úrfind)r   rf   rj   ÚprevposÚsÚns         r   ÚrevreadlineszPSBaseParser.revreadlinesè   sß   è ø€ ð
 	�‰�‰�QœŸ™Ô$Ø�g‰g�l‰l‹nˆØˆØ�AŠgØˆGÜ�a˜˜tŸ{™{Ñ*Ó+ˆCØ�G‰G�L‰L˜ÔØ—‘—‘˜W s™]Ó+ˆAÙØØÜ˜Ÿ™ ›¨¯©°«Ó7�Ø˜’7Ø˜c™'�CØØ˜˜�e˜c‘kÒ!Ø�b�q�E�Ø�ð ð �A�gùs   ‚C0C5Ã3C5rŽ   Úic                 óV  — t         j                  ||«      }|st        |«      S |j                  d«      }|||dz    }| j                  |z   | _        |dk(  rd| _        | j                  | _        |dz   S |dk(  rd| _        | j                  | _        |dz   S |dv s|j                  «       r|| _        | j                  | _        |dz   S |dk(  r|| _        | j                  | _        |dz   S |j                  «       r|| _        | j                  | _        |dz   S |dk(  r$d| _        d| _        | j                   | _        |dz   S |d	k(  rd| _        | j"                  | _        |dz   S |d
k(  rd| _        | j$                  | _        |dz   S |dk(  r|dz   S | j'                  t)        |«      «       |dz   S )Nr   r{   ó   %ó   /r   s   -+ó   .rS   ó   <ó   >ó    )ÚNONSPCr€   rt   Ústartra   ro   rn   Ú_parse_commentrm   Ú_parse_literalÚisdigitÚ_parse_numberÚ_parse_floatÚisalphaÚ_parse_keywordÚparenÚ_parse_stringÚ_parse_wopenÚ_parse_wcloseÚ
_add_tokenÚKWD©r   rŽ   r‘   r†   Újr…   s         r   rl   zPSBaseParser._parse_main   s¤  € Ü�M‰M˜!˜QÓˆÙÜ�q“6ˆMØ�G‰G�A‹JˆØˆa�!�a‘%ˆLˆØ ŸK™K¨!™OˆÔØ�Š9Ø!ˆDŒNØ×.Ñ.ˆDŒLØ�q‘5ˆLØ�$ŠYØ ˆDŒNØ×.Ñ.ˆDŒLØ�q‘5ˆLØ�%‰Z˜1Ÿ9™9œ;ØˆDŒNØ×-Ñ-ˆDŒLØ�q‘5ˆLØ�$ŠYØˆDŒNØ×,Ñ,ˆDŒLØ�q‘5ˆLØ�Y‰YŒ[ØˆDŒNØ×.Ñ.ˆDŒLØ�q‘5ˆLØ�$ŠYØ ˆDŒNØˆDŒJØ×-Ñ-ˆDŒLØ�q‘5ˆLØ�$ŠYØ ˆDŒNØ×,Ñ,ˆDŒLØ�q‘5ˆLØ�$ŠYØ ˆDŒNØ×-Ñ-ˆDŒLØ�q‘5ˆLØ�'Š\Ø�q‘5ˆLà�O‰OœC ›FÔ#Ø�q‘5ˆLr   Úobjc                 óR   — | j                   j                  | j                  |f«       y r   )rp   Úappendro   )r   rª   s     r   r¦   zPSBaseParser._add_token.  s   € Ø�‰×Ñ˜T×.Ñ.°Ð4Õ5r   c                 óð   — t         j                  ||«      }|s#| xj                  ||d  z  c_        t        |«      S |j	                  d«      }| xj                  ||| z  c_        | j
                  | _        |S ©Nr   )r   r€   rn   rt   rš   rl   rm   ©r   rŽ   r‘   r†   r©   s        r   r›   zPSBaseParser._parse_comment1  sg   € Ü�J‰J�q˜!ÓˆÙØ�NŠN˜a  ˜eÑ#�NÜ�q“6ˆMØ�G‰G�A‹JˆØ�Š˜!˜A˜a˜&Ñ �Ø×'Ñ'ˆŒð ˆr   c                 óÜ  — t         j                  ||«      }|s#| xj                  ||d  z  c_        t        |«      S |j	                  d«      }| xj                  ||| z  c_        |||dz    }|dk(  rd| _        | j                  | _        |dz   S 	 t        | j                  d«      }| j                  t        |«      «       | j                  | _        |S # t        $ r | j                  }Y ŒDw xY w)Nr   r{   ó   #r   r=   )ÚEND_LITERALr€   rn   rt   rš   ÚhexÚ_parse_literal_hexrm   r%   Ú	Exceptionr¦   ÚLITrl   )r   rŽ   r‘   r†   r©   r…   r   s          r   rœ   zPSBaseParser._parse_literal=  sÛ   € Ü×Ñ˜q !Ó$ˆÙØ�NŠN˜a  ˜eÑ#�NÜ�q“6ˆMØ�G‰G�A‹JˆØ�Š˜!˜A˜a˜&Ñ �Øˆa�!�a‘%ˆLˆØ�Š9ØˆDŒHØ×2Ñ2ˆDŒLØ�q‘5ˆLð	"Ü # D§N¡N°GÓ <ˆDð 	�‰œ˜D›	Ô"Ø×'Ñ'ˆŒØˆøô	 ò 	"Ø—>‘>ŠDð	"ús   ÂC ÃC+Ã*C+c                 óD  — |||dz    }t         j                  |«      r2t        | j                  «      dk  r| xj                  |z  c_        |dz   S | j                  r3| xj                  t        t        | j                  d«      f«      z  c_        | j                  | _        |S )Nr{   é   é   )	ÚHEXÚmatchrt   r³   rn   r&   Úintrœ   rm   ©r   rŽ   r‘   r…   s       r   r´   zPSBaseParser._parse_literal_hexQ  s{   € Øˆa�!�a‘%ˆLˆÜ�9‰9�QŒ<œC §¡›M¨AÒ-Ø�HŠH˜‰M�HØ�q‘5ˆLØ�8Š8Ø�NŠNœe¤S¨¯©°2Ó%6Ð$8Ó9Ñ9�NØ×*Ñ*ˆŒØˆr   c                 ó  — t         j                  ||«      }|s#| xj                  ||d  z  c_        t        |«      S |j	                  d«      }| xj                  ||| z  c_        |||dz    }|dk(  r+| xj                  |z  c_        | j
                  | _        |dz   S t        j                  t        «      5  | j                  t        | j                  «      «       d d d «       | j                  | _        |S # 1 sw Y   ŒxY w)Nr   r{   r•   )Ú
END_NUMBERr€   rn   rt   rš   rŸ   rm   Ú
contextlibÚsuppressÚ
ValueErrorr¦   r¼   rl   r¨   s         r   rž   zPSBaseParser._parse_number[  sÙ   € Ü×Ñ˜a Ó#ˆÙØ�NŠN˜a  ˜eÑ#�NÜ�q“6ˆMØ�G‰G�A‹JˆØ�Š˜!˜A˜a˜&Ñ �Øˆa�!�a‘%ˆLˆØ�Š9Ø�NŠN˜aÑ�NØ×,Ñ,ˆDŒLØ�q‘5ˆLÜ× Ñ ¤Ó,ñ 	1Ø�O‰OœC §¡Ó/Ô0÷	1à×'Ñ'ˆŒØˆ÷	1ð 	1ús   Â6%C6Ã6C?c                 ó”  — t         j                  ||«      }|s#| xj                  ||d  z  c_        t        |«      S |j	                  d«      }| xj                  ||| z  c_        t        j                  t        «      5  | j                  t        | j                  «      «       d d d «       | j                  | _        |S # 1 sw Y   ŒxY wr®   )r¿   r€   rn   rt   rš   rÀ   rÁ   rÂ   r¦   Úfloatrl   rm   r¯   s        r   rŸ   zPSBaseParser._parse_floatl  sŸ   € Ü×Ñ˜a Ó#ˆÙØ�NŠN˜a  ˜eÑ#�NÜ�q“6ˆMØ�G‰G�A‹JˆØ�Š˜!˜A˜a˜&Ñ �Ü× Ñ ¤Ó,ñ 	3Ø�O‰OœE $§.¡.Ó1Ô2÷	3à×'Ñ'ˆŒØˆ÷	3ð 	3ús   Á>%B>Â>Cc                 ó†  — t         j                  ||«      }|r*|j                  d«      }| xj                  ||| z  c_        n#| xj                  ||d  z  c_        t	        |«      S | j                  dk(  rd}n'| j                  dk(  rd}nt        | j                  «      }| j                  |«       | j                  | _        |S )Nr   s   trueTs   falseF)	ÚEND_KEYWORDr€   rš   rn   rt   r§   r¦   rl   rm   ©r   rŽ   r‘   r†   r©   Útokens         r   r¡   zPSBaseParser._parse_keywordx  s£   € Ü×Ñ˜q !Ó$ˆÙØ—‘˜“
ˆAØ�NŠN˜a  !˜fÑ$ŽNà�NŠN˜a  ˜eÑ#�NÜ�q“6ˆMØ�>‰>˜WÒ$Ø&*‰EØ�^‰^˜xÒ'Ø‰Eä˜Ÿ™Ó'ˆEØ�‰˜ÔØ×'Ñ'ˆŒØˆr   c                 óh  — t         j                  ||«      }|s#| xj                  ||d  z  c_        t        |«      S |j	                  d«      }| xj                  ||| z  c_        |||dz    }|dk(  rd| _        | j                  | _        |dz   S |dk(  r/| xj                  dz  c_        | xj                  |z  c_        |dz   S |dk(  r;| xj                  dz  c_        | j                  r| xj                  |z  c_        |dz   S | j                  | j                  «       | j                  | _        |dz   S )Nr   r{   rU   r   rS   rT   )Ú
END_STRINGr€   rn   rt   rš   ÚoctÚ_parse_string_1rm   r¢   r¦   rl   r¨   s         r   r£   zPSBaseParser._parse_stringŠ  s  € Ü×Ñ˜a Ó#ˆÙØ�NŠN˜a  ˜eÑ#�NÜ�q“6ˆMØ�G‰G�A‹JˆØ�Š˜!˜A˜a˜&Ñ �Øˆa�!�a‘%ˆLˆØ�Š:ØˆDŒHØ×/Ñ/ˆDŒLØ�q‘5ˆLØ�Š9Ø�JŠJ˜!‰O�JØ�NŠN˜aÑ�NØ�q‘5ˆLØ�Š9Ø�JŠJ˜!‰O�JØ�zŠzà—’ !Ñ#•Ø˜1‘u�Ø�‰˜Ÿ™Ô'Ø×'Ñ'ˆŒØ�1‰uˆr   c                 ó^  — |||dz    }t         j                  |«      r2t        | j                  «      dk  r| xj                  |z  c_        |dz   S | j                  ret	        | j                  d«      }|dk  sJ d| j                  ›d|› d�«       ‚| xj
                  t        |f«      z  c_        | j                  | _        |S |t        v r'| xj
                  t        t        |   f«      z  c_        n)|dk(  r$t        |«      |dz   kD  r||dz   |d	z    d
k(  r|dz  }| j                  | _        |dz   S )z;Parse literal strings

        PDF Reference 3.2.3
        r{   é   rF   é   zInvalid octal z (ú)r~   r¸   r|   )
Ú
OCT_STRINGr»   rt   rË   r¼   rn   r&   r£   rm   Ú
ESC_STRING)r   rŽ   r‘   r…   Úchrcodes        r   rÌ   zPSBaseParser._parse_string_1¤  s  € ð
 ˆa�!�a‘%ˆLˆÜ×Ñ˜AÔ¤3 t§x¡x£=°1Ò#4Ø�HŠH˜‰M�HØ�q‘5ˆLà�XŠXÜ˜$Ÿ(™( AÓ&ˆGØ˜S’=ÐK N°4·8±8°,¸bÀÀ	ÈÐ"KÓK�=Ø�NŠNœe W JÓ/Ñ/�NØ×-Ñ-ˆDŒLØˆHà”*‰_Ø�NŠNœe¤Z°¡]Ð$4Ó5Ñ5ŽNà�%ŠZœC ›F Q¨¡UšN¨q°°Q±¸¸Q¹Ð/?À5Ò/Hð �‰FˆAð ×)Ñ)ˆŒØ�1‰uˆr   c                 óœ   — |||dz    }|dk(  r-| j                  t        «       | j                  | _        |dz  }|S | j                  | _        |S )Nr{   r–   )r¦   ÚKEYWORD_DICT_BEGINrl   rm   Ú_parse_hexstringr½   s       r   r¤   zPSBaseParser._parse_wopenÁ  sV   € Øˆa�!�a‘%ˆLˆØ�Š9Ø�O‰OÔ.Ô/Ø×+Ñ+ˆDŒLØ�‰FˆAð ˆð  ×0Ñ0ˆDŒLØˆr   c                 óv   — |||dz    }|dk(  r| j                  t        «       |dz  }| j                  | _        |S )Nr{   r—   )r¦   ÚKEYWORD_DICT_ENDrl   rm   r½   s       r   r¥   zPSBaseParser._parse_wcloseË  s@   € Øˆa�!�a‘%ˆLˆØ�Š9Ø�O‰OÔ,Ô-Ø�‰FˆAØ×'Ñ'ˆŒØˆr   c                 ó|  — t         j                  ||«      }|s#| xj                  ||d  z  c_        t        |«      S |j	                  d«      }| xj                  ||| z  c_        t
        j                  d„ t        j                  d| j                  «      «      }| j                  |«       | j                  | _
        |S )Nr   c                 óL   — t        t        | j                  d«      d«      f«      S )Nr   r¹   )r&   r¼   Úgroup)r†   s    r   ú<lambda>z/PSBaseParser._parse_hexstring.<locals>.<lambda>Û  s   € ”eœS §¡¨£¨RÓ0Ð2Ó3€ r   r   )ÚEND_HEX_STRINGr€   rn   rt   rš   ÚHEX_PAIRÚsubÚSPCr¦   rl   rm   rÇ   s         r   rÖ   zPSBaseParser._parse_hexstringÓ  s˜   € Ü×!Ñ! ! QÓ'ˆÙØ�NŠN˜a  ˜eÑ#�NÜ�q“6ˆMØ�G‰G�A‹JˆØ�Š˜!˜A˜a˜&Ñ �Ü—‘Ù3Ü�G‰G�C˜Ÿ™Ó(ó
ˆð 	�‰˜ÔØ×'Ñ'ˆŒØˆr   c                 óö  — | j                   rt        d«      ‚| j                  sj	 | j                  «       }|r| j                  r| j                  dd«       n+| j                  | j                  | j                  «      | _        | j                  sŒj| j                  j                  d«      }t        j                  d|«       |S # t        $ r. | j                  dd«      | _        d| _         | j                  s‚ Y Œvw xY w)Nrs   r|   r   Tznexttoken: %r)rZ   rx   rp   ry   rn   rm   rj   rk   Úpoprh   ri   )r   Úchanged_streamrÈ   s      r   Ú	nexttokenzPSBaseParser.nexttokenâ  sÌ   € Ø�8Š8äÐ(Ó)Ð)Ø—,’,ðØ!%§¡£�Ù! d§n¢nð —L‘L ¨Õ*à#'§<¡<°·±¸$¿,¹,Ó#G�D”Lð —,“,ð$ —‘× Ñ  Ó#ˆÜ�	‰	�/ 5Ô)Øˆøô ò ð  $Ÿ|™|¨E°1Ó5�”Ø�”à—|’|Øñ $ðús   ¥AC Ã4C8Ã7C8©r   N)"r   r   r   r   rw   r   r   r%   r#   rd   r¼   r[   Úboolry   Útupler&   r‡   r   r�   rl   ÚPSBaseParserTokenr¦   r›   rœ   r´   rž   rŸ   r¡   r£   rÌ   r¤   r¥   rÖ   rä   r   r   r   rW   rW   ¡   sØ  „ ÙGà€Fð˜8ð ¨ó ð
Q˜#ó Qóð˜ð  ó ð	˜ó 	ð"˜%  U 
Ñ+ó "ð:˜h u™oó ð0,˜Uð , sð ,¨só ,ð\6Ð/ð 6°Dó 6ð
 ð 
¨#ð 
°#ó 
ð ð ¨#ð °#ó ð( Eð ¨cð °có ð˜uð ¨ð °ó ð"
˜eð 
¨ð 
°ó 
ð ð ¨#ð °#ó ð$˜uð ¨ð °ó ð4 ð ¨3ð °3ó ð:˜eð ¨ð °ó ð˜uð ¨ð °ó ð %ð ¨Cð °Có ð˜5 Ð&7Ð!7Ñ8ô r   rW   ÚExtraTc                   óô   — e Zd Zdeddfd„Zdd„Zdeddfd„Zdee	   ddfd	„Z
d
edeee	      fd„Zdeee	      fd„Zdee	   ddfd„Zdededdfd„Zdedeeeee	      f   fd„Zdededdfd„Zdee	   fd„Zy)ÚPSStackParserrX   r   Nc                 óP   — t         j                  | |«       | j                  «        y r   )rW   r   Úresetr\   s     r   r   zPSStackParser.__init__  s   € Ü×Ñ˜d BÔ'Ø�
‰
�r   c                 ó<   — g | _         d | _        g | _        g | _        y r   )ÚcontextÚcurtypeÚcurstackÚresultsrb   s    r   rí   zPSStackParser.reset  s   € ØQSˆŒØ#'ˆŒØ46ˆŒØ35ˆ�r   rf   c                 óP   — t         j                  | |«       | j                  «        y r   )rW   r[   rí   rq   s     r   r[   zPSStackParser.seek  s   € Ü×Ñ˜$ Ô$Ø�
‰
�r   Úobjsc                 ó:   — | j                   j                  |«       y r   )rñ   Úextend©r   rô   s     r   ÚpushzPSStackParser.push  s   € Ø�‰×Ñ˜TÕ"r   r�   c                 óF   — | j                   | d  }g | j                   | d  |S r   ©rñ   )r   r�   rô   s      r   râ   zPSStackParser.pop  s+   € Ø�}‰}˜a˜R˜SÐ!ˆØˆ�‰�q�b�cÐØˆr   c                 ó,   — | j                   }g | _         |S r   rú   r÷   s     r   ÚpopallzPSStackParser.popall!  s   € Ø�}‰}ˆØˆŒØˆr   c                 ó°   — 	 t         j                  d|«       | j                  j	                  |«       y # t        $ r t         j                  d«       Y Œ<w xY w)Nzadd_results: %rz!add_results: (unprintable object))rh   ri   rµ   rò   rö   r÷   s     r   Úadd_resultszPSStackParser.add_results&  sH   € ð	;Ü�I‰IÐ'¨Ô.ð 	�‰×Ñ˜DÕ!øô ò 	;Ü�I‰IÐ9Ö:ð	;ús   ‚4 ´AÁAr6   c                 ó´   — | j                   j                  || j                  | j                  f«       |g c| _        | _        t        j                  d||«       y )Nzstart_type: pos=%r, type=%r)rï   r¬   rð   rñ   rh   ri   )r   rf   r6   s      r   Ú
start_typezPSStackParser.start_type-  sD   € Ø�‰×Ñ˜S $§,¡,°·±Ð>Ô?Ø)-¨rÐ%ˆŒ�t”}Ü�	‰	Ð/°°dÕ;r   c                 ó&  — | j                   |k7  rt        d| j                   ›d|›�«      ‚| j                  D ��cg c]  \  }}|‘Œ	 }}}| j                  j	                  «       \  }| _         | _        t
        j                  d|||«       ||fS c c}}w )NzType mismatch: z != z"end_type: pos=%r, type=%r, objs=%r)rð   rA   rñ   rï   râ   rh   ri   )r   r6   Ú_rª   rô   rf   s         r   Úend_typezPSStackParser.end_type2  s…   € Ø�<‰<˜4ÒÜ °·±Ð/?¸tÀDÀ8ÐLÓMÐMØ$(§M¡M×2™˜˜C’Ð2ˆÑ2Ø-1¯\©\×-=Ñ-=Ó-?Ñ*ˆˆdŒl˜DœMÜ�	‰	Ð6¸¸TÀ4ÔHØ�Tˆ{Ðùó 3s   ºBrÈ   c                  ó   — y r   r   )r   rf   rÈ   s      r   Ú
do_keywordzPSStackParser.do_keyword:  re   r   c           	      óè  — | j                   �s'| j                  «       \  }}t        |t        t        t
        t        t        t        f«      r| j                  ||f«       �n©|t        k(  r| j                  |d«       �nŒ|t        k(  r#	 | j                  | j                  d«      «       �n`|t"        k(  r| j                  |d«       �nC|t$        k(  rt	 | j                  d«      \  }}t'        |«      dz  dk7  rd|›�}t)        |«      ‚t+        d|«      D ��ci c]  \  }}|�t-        |«      |“Œ }}}| j                  ||f«       nÆ|t.        k(  r| j                  |d«       nª|t0        k(  r"	 | j                  | j                  d«      «       nt        |t2        «      r5t4        j7                  d||| j8                  «       | j;                  ||«       n:t4        j=                  d||| j8                  «       | j;                  ||«       t>        ‚| j@                  r�Œ| jC                  «        | j                   s�Œ'| j                   jE                  d«      }	 t4        j7                  d	|«       |S # t        $ r t        j                   r‚ Y Œ|w xY wc c}}w # t        $ r t        j                   r‚ Y Œ¢w xY w# t        $ r t        j                   r‚ Y ŒÂw xY w# tF        $ r t4        j7                  d
«       Y |S w xY w)zÎYields a list of objects.

        Arrays and dictionaries are represented as Python lists and
        dictionaries.

        :return: keywords, literals, strings, numbers, arrays and dictionaries.
        ÚaÚdr¸   r   zInvalid dictionary construct: Úpz&do_keyword: pos=%r, token=%r, stack=%rz)unknown token: pos=%r, token=%r, stack=%rznextobject: %rz nextobject: (unprintable object))$rò   rä   r>   r¼   rÄ   ræ   r%   r&   r   rø   ÚKEYWORD_ARRAY_BEGINr   ÚKEYWORD_ARRAY_ENDr  rA   r
   r@   rÕ   rØ   rt   ÚPSSyntaxErrorr   rB   ÚKEYWORD_PROC_BEGINÚKEYWORD_PROC_ENDr)   rh   ri   rñ   r  ÚerrorÚPSExceptionrï   rd   râ   rµ   )	r   rf   rÈ   rô   Ú	error_msgÚkÚvr  rª   s	            r   Ú
nextobjectzPSStackParser.nextobject=  s¡  € ð —,“,ØŸ>™>Ó+‰LˆS�%Ü˜%¤#¤u¬d´C¼Ä	Ð!JÔKà—	‘	˜3 ˜,Ö'ØÔ-Ò-à—‘  SÖ)ØÔ+Ò+ðØ—I‘I˜dŸm™m¨CÓ0Ö1ð Ô,Ò,à—‘  SÖ)ØÔ*Ò*ðØ"&§-¡-°Ó"4‘K�S˜$Ü˜4“y 1‘}¨Ò)Ø&DÀTÀHÐ$M˜	Ü+¨IÓ6Ð6ô '/¨q°$Ó&7÷á"˜Q Ø˜=ô % Q›¨Ñ*ð�Añ ð
 —I‘I˜s A˜hÕ'ð Ô,Ò,à—‘  SÕ)ØÔ*Ò*ðØ—I‘I˜dŸm™m¨CÓ0Õ1ô ˜E¤9Ô-Ü—	‘	Ø<ØØØ—M‘Mô	ð —‘  UÕ+ä—	‘	Ø?ØØØ—M‘Mô	ð —‘  UÔ+Ü!Ð!Ø�|Š|Ùà—
‘
”ðA —,”,ðB �l‰l×Ñ˜qÓ!ˆð	:Ü�I‰IÐ&¨Ô,ð ˆ
øôu #ò Ü—’Øñ 'ðüóøô #ò Ü—’Øñ 'ðûô #ò Ü—’Øñ 'ðûô6 ò 	:Ü�I‰IÐ8Õ9Øˆ
ð	:ús[   Â I) ÃAJ ÄJ	Ä,J Å) J/ ÉK É)JÊJÊ	J ÊJ,Ê+J,Ê/KËKËK1Ë0K1rå   )r   r   r   r   r   rí   r¼   r[   ÚPSStackEntryré   rø   Úlistrâ   rü   rþ   r%   r   rç   ÚPSStackTyper  r)   r  r  r   r   r   rë   rë   
  sþ   „ ð˜8ð ¨ó ó6ð˜ð  ó ð#˜, vÑ.ð #°4ó #ð�Sð ˜T ,¨vÑ"6Ñ7ó ð
˜˜\¨&Ñ1Ñ2ó ð
" ¨fÑ!5ð "¸$ó "ð<˜cð <¨ð <°ó <ð
˜Sð  U¨3°°[ÀÑ5HÑ0IÐ+IÑ%Jó ð˜cð ¨)ð ¸ó ðN˜L¨Ñ0ô Nr   rë   )FrÀ   r‰   ÚloggingÚreÚcollections.abcr   Útypingr   r   r   r   r   Úpdfminerr	   r
   Úpdfminer.utilsr   Ú	getLoggerr   rh   r  rx   r  rA   ÚPSValueErrorr   r   r)   r,   r.   ÚPSLiteralTableÚPSKeywordTabler5   r¶   r§   r  r  r
  r  rÕ   rØ   r%   rB   rE   Úcompiler   rà   r™   rº   r²   rÝ   rÞ   r¿   rÆ   rÊ   rÑ   rÒ   rÄ   ræ   r&   rè   rW   ré   r  r2   r  rç   r¼   r  rë   r   r   r   ú<module>r#     sœ  ðã Û 	Û Û 	Ý $÷õ ÷ ,Ý #à€g×Ñ˜Ó!€ð ×&Ñ&€Ø×Ñ€Ø×*Ñ*€Ø×&Ñ&€Ø×(Ñ(€÷;ñ ;ô�ô ô,�ô ñ& �:˜y¨)Ó4€ô�G˜HÑ%ô ñ* ˜yÓ)€Ù˜yÓ)€Ø×Ñ€Ø×Ñ€Ù˜“YÐ Ù�t“9Ð Ù˜$“iÐ Ù˜“IÐ Ù˜“ZÐ Ù�u“:Ð ð�Cð ˜Có ð�Cð ˜Có ð €b‡j�j�Ó€Ø€b‡j�j�Ó€Ø	ˆ�‰�FÓ	€Ø€b‡j�j�Ó!€Øˆb�j‰jÐ.Ó/€Ø�—‘Ð.Ó/€Øˆ2�:‰:Ð*Ó+€ØˆR�Z‰Z˜
Ó#€
Øˆb�j‰jÐ.Ó/€ØˆR�Z‰Z˜Ó%€
ØˆR�Z‰Z˜	Ó"€
à
Ø
Ø
Ø
Ø
Ø
Ø
Øñ	€
ð ˜%  y°)¸UÐBÑCÐ ÷Yñ YñD 
�Ó	€ØØˆ��i ¨¨S©	°4¸¸S¸±>À6ÐIñ€ð �S˜+ fÑ-Ð-Ñ.€ôA�L '¨&¡/õ Ar   