
    *'hx                        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 d dlmZ d dlm	Z	 d dl
mZmZmZmZmZmZmZmZ ej&                  dd dk\  rd dl
mZ nd dlmZ dd	l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#m$Z$ dZ%dZ& G d de      Z' G d de'      Z( G d de'      Z) G d de'      Z*dZ+ G d de,e'      Z- G d de.e'      Z/ G d de0e'      Z1 G d de2e'      Z3 G d  d!e2e'      Z4d"e2d#e0fd$Z5d%ed#eede(e*f      fd&Z6y)'    N)	unhexlify)log10)iter_unpack)AnyCallableClassVarDictOptionalSequenceUnioncast   )   
   )	TypeGuard)_pdfdoc_encoding_rev)PdfObjectProtocolPdfWriterProtocol)
StreamTypedeprecate_no_replacementlogger_warningread_non_whitespaceread_until_regex)STREAM_TRUNCATED_PREMATURELYPdfReadErrorPdfStreamErrorzMathieu Fenniakzbiziqe@mathieu.fenniak.netc                       e Zd ZU ej                  Zed   ed<   ed   ed<   de	fdZ
defdZdefdZd	edd fd
Z	 	 dd	ededeeeee	f         dd fdZ	 dded	ededefdZded    fdZ	 ddededeef   ddfdZy)	PdfObject).zhashlib._Hash	hash_funcIndirectObjectindirect_referencereturnc                 F    t        | j                  j                   d      )q
        Used to detect modified object.

        Returns:
            Hash considering type and value.

        z& does not implement .hash_bin() so farNotImplementedError	__class____name__selfs    Z/home/kushmeetdev/Regenta/Chatbot/venv/lib/python3.12/site-packages/pypdf/generic/_base.pyhash_binzPdfObject.hash_bin>   s'     "~~&&''MN
 	
    c                 $    |  j                         S N)encoder)   s    r+   hash_value_datazPdfObject.hash_value_dataJ   s    !!r-   c                     | j                   j                   d| j                  | j                               j	                          j                         S )N:)r'   r(   r   r1   	hexdigestr0   r)   s    r+   
hash_valuezPdfObject.hash_valueM   sG    ~~&&'q~~d2245??ABD
&(	r-   pdf_destc                 $    | j                  |      S )a/  
        Clone object into pdf_dest (PdfWriterProtocol which is an interface for PdfWriter)
        without ensuring links. This is used in clone_document_from_root with incremental = True.

        Args:
          pdf_dest: Target to clone to.

        Returns:
          The cloned PdfObject

        )cloner*   r6   s     r+   	replicatezPdfObject.replicateS   s     zz(##r-   force_duplicateignore_fieldsc                 F    t        | j                  j                   d      )a  
        Clone object into pdf_dest (PdfWriterProtocol which is an interface for PdfWriter).

        By default, this method will call ``_reference_clone`` (see ``_reference``).


        Args:
          pdf_dest: Target to clone to.
          force_duplicate: By default, if the object has already been cloned and referenced,
            the copy will be returned; when ``True``, a new copy will be created.
            (Default value = ``False``)
          ignore_fields: List/tuple of field names (for dictionaries) that will be ignored
            during cloning (applies to children duplication as well). If fields are to be
            considered for a limited number of levels, you have to add it as integer, for
            example ``[1,"/B","/TOTO"]`` means that ``"/B"`` will be ignored at the first
            level only but ``"/TOTO"`` on all levels.

        Returns:
          The cloned PdfObject

        z! does not implement .clone so farr%   r*   r6   r;   r<   s       r+   r8   zPdfObject.cloned   s'    6 "~~&&''HI
 	
r-   r8   c                 r   	 |s|j                   j                  |k(  r|S 	 | j                   }|j                  rJ|H|j                  |j
                  k(  r/|j                  t        |j                        k  r|j                  }nt        |j                        dz   }|t        |j                        |j                  vrQi |j                  t        |j                        <   |j                  |j                  t        |j                           d<   |sr|j                  |j                  t        |j                           v rD|j                  |j                  t        |j                           |j                           }|J |S ||j                  t        |j                           |j                  <   	 ||j                  |dz
  <   t        |d|      |_         |S # t        $ r Y w xY w# t        $ r |cY S w xY w# t        $ r3 |j                  j                  |       t        |j                        }Y pw xY w)aX  
        Reference the object within the _objects of pdf_dest only if
        indirect_reference attribute exists (which means the objects was
        already identified in xref/xobjstm) if object has been already
        referenced do nothing.

        Args:
          clone:
          pdf_dest:

        Returns:
          The clone

           	PreventGCr   )r!   pdf	ExceptionAttributeErrorincremental_readeridnumlen_objectsid_id_translated
get_object
IndexErrorappendr    )r*   r8   r6   r;   indiobjs          r+   _reference_clonezPdfObject._reference_clone   s   "	"u'?'?'C'Cx'O	))C   8+++		S!2!233		AH%%&*A?#''{("9"9979''3774DGGG''3774[A#II!8!8CGG!EE))++BswwK8C &
>?H##BswwK0;	'',Ha!e$ $2!Q#A I  		
  	L	6  	'$$U+H%%&A	's4   G G) 3G: 	G&%G&)G76G7:9H65H6c                     | S )zResolve indirect references. r)   s    r+   rL   zPdfObject.get_object       r-   Nstreamencryption_keyc                     t         r/   )r&   r*   rV   rW   s      r+   write_to_streamzPdfObject.write_to_stream   s
     "!r-   FrT   )Fr/   )r(   
__module____qualname__hashlibsha1r   r   __annotations__r
   intr,   bytesr1   r5   r   r:   boolr   r   strr8   r   r   rR   rL   r   rZ   rT   r-   r+   r   r   9   s   07Ix,-< !122

# 

" "E $#$ 
$( !&=?	
#
 
  sCx 9:	

 

@ PU88$58HL8	8tH[1 
 MQ" "27c58H2I"	"r-   r   c                       e Zd Z	 	 ddededeeeee	f         dd fdZ
de	fdZ	 dded	edeef   ddfd
Zededd fd       ZdefdZdedefdZy)
NullObjectr6   r;   r<   r"   c                 L    t        d| j                  t               ||            S )Clone object into pdf_dest.rf   )r   rR   rf   r>   s       r+   r8   zNullObject.clone   s'     $//
hX
 	
r-   c                 .    t        | j                  f      S r$   hashr'   r)   s    r+   r,   zNullObject.hash_bin   s     T^^%&&r-   NrV   rW   c                 B    |t        dd       |j                  d       y )N/the encryption_key parameter of write_to_stream5.0.0   null)r   writerY   s      r+   rZ   zNullObject.write_to_stream   s%     %$A7 	Wr-   c                 X    | j                  d      }|dk7  rt        d      t               S )N   rp   zCould not read Null object)readr   rf   )rV   nulltxts     r+   read_from_streamzNullObject.read_from_stream   s+    ++a.g;<<|r-   c                      y)Nrf   rT   r)   s    r+   __repr__zNullObject.__repr__   s    r-   otherc                 "    t        |t              S r/   )
isinstancerf   r*   ry   s     r+   __eq__zNullObject.__eq__   s    %,,r-   r[   r/   )r(   r\   r]   r   rc   r
   r   r   rd   ra   r8   r,   r   rb   rZ   staticmethodrv   rx   objectr}   rT   r-   r+   rf   rf      s     !&=?		
#	
 	
  sCx 9:		

 
	
'# ' MQ 27c58H2I	    # -F -t -r-   rf   c                       e Zd ZdeddfdZ	 	 ddededeee	e
ef         dd fdZdefd	Zd
edefdZde
fdZ	 ddede	de
ef   ddfdZededd fd       Zy)BooleanObjectvaluer"   Nc                     || _         y r/   r   )r*   r   s     r+   __init__zBooleanObject.__init__   s	    
r-   r6   r;   r<   c                 b    t        d| j                  t        | j                        ||            S )rh   r   )r   rR   r   r   r>   s       r+   r8   zBooleanObject.clone   s/     !!-

";XW
 	
r-   c                 D    t        | j                  | j                  f      S rj   )rl   r'   r   r)   s    r+   r,   zBooleanObject.hash_bin  s     T^^TZZ011r-   oc                    t        |t              r| j                  |j                  k(  S t        |t              r| j                  |k(  S y)NF)r{   r   r   rc   r*   r   s     r+   r}   zBooleanObject.__eq__  s:    a'::((a::?"r-   c                 "    | j                   rdS dS )NTrueFalser   r)   s    r+   rx   zBooleanObject.__repr__  s    v00r-   rV   rW   c                 ~    |t        dd       | j                  r|j                  d       y |j                  d       y )Nrn   ro      trues   false)r   r   rq   rY   s      r+   rZ   zBooleanObject.write_to_stream  s8     %$A7 ::LL!LL"r-   c                     | j                  d      }|dk(  rt        d      S |dk(  r| j                  d       t        d      S t        d      )Nrs   r   Ts   falsr@   FzCould not read Boolean object)rt   r   r   )rV   words     r+   rv   zBooleanObject.read_from_stream$  sJ    {{1~7? &&7?KKN '':;;r-   r[   r/   )r(   r\   r]   r   r   r   rc   r
   r   r   rd   ra   r8   r,   r   r}   rx   r   rb   rZ   r~   rv   rT   r-   r+   r   r      s    c d  !&=?	

#

 

  sCx 9:	


 


2# 2 d 1# 1 MQ
# 
#27c58H2I
#	
# < < < <r-   r   c                      e Zd ZdedededdfdZdefdZdefdZd	edd
fdZ		 	 d%d	ede
deeeeef         dd fdZed&d       Zded
   fdZdedd fdZded
   fdZdedefdZdedefdZdede
fdZdefdZdefdZdefdZdefdZdefdZdede
fdZdede
fd Z	 d'd!e d"edee!f   ddfd#Z"e#d!e dedd fd$       Z$y)(r    rG   
generationrB   r"   Nc                 .    || _         || _        || _        y r/   )rG   r   rB   )r*   rG   r   rB   s       r+   r   zIndirectObject.__init__0  s    
$r-   c                 l    t        | j                  | j                  t        | j                        f      S r/   )rl   rG   r   rJ   rB   r)   s    r+   __hash__zIndirectObject.__hash__5  s$    TZZ"TXX,?@@r-   c                     t        | j                  | j                  | j                  t	        | j
                        f      S rj   )rl   r'   rG   r   rJ   rB   r)   s    r+   r,   zIndirectObject.hash_bin8  s,     T^^TZZ"TXX,OPPr-   r6   r   c                 D    t        | j                  | j                  |      S r/   )r    rG   r   r9   s     r+   r:   zIndirectObject.replicateB  s     djj$//8DDr-   r;   r<   c                    | j                   |k(  r|s| S t        | j                         |j                  vr"i |j                  t        | j                         <   | j                  |j                  t        | j                            v r|j	                  |j                  t        | j                            | j                           }|r|J |j
                  J |j
                  }t        |j                  |j                  |j                         S | j	                         }|$t               }t        | t        f      sJ | |_        |j                  |j                  |||            }|J d       |j
                  J d       |j
                  S )rh   mypy)rB   rJ   rK   rG   rL   r!   r    r   rf   r{   _add_objectr8   )r*   r6   r;   r<   dupidrefrQ   s          r+   r8   zIndirectObject.cloneH  s^    88xKdhh<x66646H##BtxxL1::00DHH>>%%h&=&=bl&KDJJ&WXC&--999..%ekk53C3CUYYOO//#C{ l!$(9:::)-&&&		(O]CC &&%%19691%%%r-   c                     | S r/   rT   r)   s    r+   r!   z!IndirectObject.indirect_referencek  rU   r-   c                 8    | j                   j                  |       S r/   )rB   rL   r)   s    r+   rL   zIndirectObject.get_objecto  s    xx""4((r-   memoc                 X    t        | j                  | j                  | j                        S r/   )r    rG   r   rB   )r*   r   s     r+   __deepcopy__zIndirectObject.__deepcopy__r  s    djj$//488DDr-   c                     | j                         }t        |t              r,t        | j	                          d|j	                                |S )Nz references an IndirectObject )rL   r{   r    r   rx   r   s     r+   _get_object_with_checkz%IndirectObject._get_object_with_checku  sH    OOa( ==?##A!**,P  r-   namec                 p    	 t        | j                         |      S # t        $ r t        d| d      w xY w)NzNo attribute z* found in IndirectObject or pointed object)getattrr   rD   )r*   r   s     r+   __getattr__zIndirectObject.__getattr__~  sF    	4668$?? 	 v%OP 	s    5keyc                 (    | j                         |   S r/   r   r*   r   s     r+   __getitem__zIndirectObject.__getitem__  s    **,S11r-   c                 &    || j                         v S r/   r   r   s     r+   __contains__zIndirectObject.__contains__  s    d11333r-   c                 >    | j                         j                         S r/   )r   __iter__r)   s    r+   r   zIndirectObject.__iter__  s    **,5577r-   c                 >    | j                         j                         S r/   )rL   	__float__r)   s    r+   r   zIndirectObject.__float__  s     **,,r-   c                 >    | j                         j                         S r/   )rL   __int__r)   s    r+   r   zIndirectObject.__int__       ((**r-   c                 >    | j                         j                         S r/   )rL   __str__r)   s    r+   r   zIndirectObject.__str__  r   r-   c                 h    d| j                   d| j                  dt        | j                         dS )NzIndirectObject(z, ))rG   r   rJ   rB   r)   s    r+   rx   zIndirectObject.__repr__  s/     b0C2bl^STUUr-   ry   c                     |d uxr` t        |t              xrN | j                  |j                  k(  xr3 | j                  |j                  k(  xr | j                  |j                  u S r/   )r{   r    rG   r   rB   r|   s     r+   r}   zIndirectObject.__eq__  sc     &5.1&

ekk)& 5#3#33& EII%	
r-   c                 &    | j                  |       S r/   )r}   r|   s     r+   __ne__zIndirectObject.__ne__  s    ;;u%%%r-   rV   rW   c                     |t        dd       |j                  | j                   d| j                   dj	                                y )Nrn   ro    z R)r   rq   rG   r   r0   rY   s      r+   rZ   zIndirectObject.write_to_stream  sD     %$A7 	

|1T__$5R8??ABr-   c                    d}	 | j                  d      }|st        t              |j                         rn||z  }9d}	 | j                  d      }|st        t              |j                         r|s6n||z  }<t	        |       }|dk7  r%t        dt        | j                                      t        t        |      t        |      |      S )Nr-   r@      Rz0Error reading indirect object reference at byte )
rt   r   r   isspacer   r   hextellr    ra   )rV   rB   rG   tokr   rs         r+   rv   zIndirectObject.read_from_stream  s    ++a.C$%ABB{{}SLE  
++a.C$%ABB{{}!#J   '9B3v{{}CUBVW  c%j#j/3??r-   r[   )r"   r    r/   )%r(   r\   r]   ra   r   r   r   r,   r   r:   rc   r
   r   r   rd   r8   propertyr!   rL   r   r   r   r   r   r   r   r   r   rx   r   r}   r   r   rb   rZ   r~   rv   rT   r-   r+   r    r    /  s   c s   
A# AQ# QE#E 
E !&=?	!&#!& !&  sCx 9:	!&
 
!&F  )H[1 )E E)9 E(=   2s 2s 24 4 48# 8-3 -+ ++ +V# V
F 
t 
&F &t & MQC C27c58H2IC	C @ @# @:J @ @r-   r       c                       e Zd Z	 ddedee   dd fdZ	 	 ddededeeee	e
f         dd fd	Zde
fd
Zde	fdZde	fdZdefdZ	 ddedede	ef   ddfdZy)FloatObjectNr   contextr"   c                     	 t        |      }t         j                  | |      S # t        $ r6}t        | d| dt               t         j                  | d      cY d }~S d }~ww xY w)Nz : FloatObject (z) invalid; use 0.0 insteadg        )float__new__rC   r   r(   )clsr   r   es       r+   r   zFloatObject.__new__  sb    		+%LE==e,, 	+ #%eW,FG ==c**	+s    # 	A"+AA"A"r6   r;   r<   c                 N    t        d| j                  t        |       ||            S )rh   r   )r   rR   r   r>   s       r+   r8   zFloatObject.clone  s+     !!+d"3XO
 	
r-   c                 D    t        | j                  | j                  f      S rj   rl   r'   
as_numericr)   s    r+   r,   zFloatObject.hash_bin  s     T^^T__566r-   c                     | dk(  ryt         t        t        t        |                   z
  }| dt	        d|       dj                  d      j                  d      S )Nr   0.0.r@   f0)FLOAT_WRITE_PRECISIONra   r   absmaxrstrip)r*   nbs     r+   myreprzFloatObject.myrepr  sS    19"Ss4y)9%::qQAo&..s3::3??r-   c                 "    | j                         S r/   )r   r)   s    r+   rx   zFloatObject.__repr__  s    {{}r-   c                     t        |       S r/   )r   r)   s    r+   r   zFloatObject.as_numeric  s    T{r-   rV   rW   c                 |    |t        dd       |j                  | j                         j                  d             y Nrn   ro   utf8)r   rq   r   r0   rY   s      r+   rZ   zFloatObject.write_to_stream  s6     %$A7 	T[[]))&12r-   )r   Nr[   r/   )r(   r\   r]   r   r
   r   rc   r   r   rd   ra   r8   r,   r   rx   r   r   r   rb   rZ   rT   r-   r+   r   r     s    :>++*23-+	+" !&=?	



 

  sCx 9:	


 


7# 7@ @# E  MQ3 327c58H2I3	3r-   r   c                       e Zd Z ej                  d      Zdedd fdZ	 	 ddedede	e
eeef         dd fdZdefd	Zdefd
Z	 ddededeef   ddfdZededed   fd       Zy)NumberObjects	   [^+-.0-9]r   r"   c                     	 t         j                  | t        |            S # t        $ r- t        d| dt               t         j                  | d      cY S w xY w)NzNumberObject(z) invalid; use 0 insteadr   )ra   r   
ValueErrorr   r(   )r   r   s     r+   r   zNumberObject.__new__  sP    	';;sCJ// 	']5'1IJHU;;sA&&	's   ! 3AAr6   r;   r<   c                 N    t        d| j                  t        |       ||            S )rh   r   )r   rR   r   r>   s       r+   r8   zNumberObject.clone  s+     !!,t"4hP
 	
r-   c                 L    t        | j                  | j                         f      S rj   r   r)   s    r+   r,   zNumberObject.hash_bin%  s     T^^T__%6788r-   c                 H    t        t        |       j                  d            S )Nr   )ra   reprr0   r)   s    r+   r   zNumberObject.as_numeric/  s    4:$$V,--r-   NrV   rW   c                 r    |t        dd       |j                  t        |       j                  d             y r   )r   rq   r   r0   rY   s      r+   rZ   zNumberObject.write_to_stream2  s4     %$A7 	T$Z&&v./r-   )r   r   c                 j    t        | t        j                        }d|v rt        |      S t        |      S )N   .)r   r   NumberPatternr   )rV   nums     r+   rv   zNumberObject.read_from_stream;  s1    v|'A'AB3;s##C  r-   r[   r/   )r(   r\   r]   recompiler   r   r   rc   r
   r   r   rd   ra   r8   r,   r   r   rb   rZ   r~   rv   rT   r-   r+   r   r     s    BJJ|,M'C 'N ' !&=?	



 

  sCx 9:	


 


9# 9.C . MQ0 027c58H2I0	0 ! !6S0T ! !r-   r   c                       e Zd ZdZ	 	 ddededeeee	e
f         dd fdZde
fdZedefd       Z	 dd
eded	e	ef   dd	fdZde	fdZy	)ByteStringObjecta>  
    Represents a string object where the text encoding could not be determined.

    This occurs quite often, as the PDF spec doesn't provide an alternate way to
    represent strings -- for example, the encryption data stored in files (like
    /O) is clearly not text, but is still stored in a "String" object.
    r6   r;   r<   r"   c           
      `    t        d| j                  t        t        |             ||            S )rh   r   )r   rR   r   rb   r>   s       r+   r8   zByteStringObject.cloneL  s2     !! t-x
 	
r-   c                 B    t        | j                  t        |       f      S rj   )rl   r'   rb   r)   s    r+   r,   zByteStringObject.hash_binZ  s     T^^U4[122r-   c                     | S )z7For compatibility with TextStringObject.original_bytes.rT   r)   s    r+   original_byteszByteStringObject.original_bytesd  s	     r-   NrV   rW   c                     |t        dd       |j                  d       |j                  t        j                  |              |j                  d       y )Nrn   ro      <   >)r   rq   binasciihexlifyrY   s      r+   rZ   z ByteStringObject.write_to_streami  sH     %$A7 	TX%%d+,Tr-   c                     dgt        t        j                        }|D ]  }	 | j                  |      c S  t        d      # t        $ r Y .w xY w)Nutf-16zCannot decode ByteStringObject.)list
NameObjectCHARSETSdecodeUnicodeDecodeErrorr   )r*   charset_to_tryencs      r+   r   zByteStringObject.__str__t  s_    "?T**=*=%>?! 	C{{3''	
 <== & s   A	AAr[   r/   )r(   r\   r]   __doc__r   rc   r
   r   r   rd   ra   r8   r,   r   rb   r   r   rZ   r   rT   r-   r+   r   r   C  s     !&=?	

 
  sCx 9:	

 

3# 3   
 MQ	 	27c58H2I			> >r-   r   c                       e Zd ZU dZeed<   eed<   eed<   dZee   ed<   de	dd fd	Z
	 	 dd
e	dedeeeeef         dd fdZdefdZedefd       ZdefdZdefdZ	 ddededeef   ddfdZy)TextStringObjectz
    A string object that has been decoded into a real unicode string.

    If read from a PDF document, this string appeared to match the
    PDFDocEncoding, or contained a UTF-16BE BOM mark to cause UTF-16 decoding
    to occur.
    autodetect_pdfdocencodingautodetect_utf16	utf16_bomN_original_bytesr   r"   c                    d }t        |t              r|}|j                  d      }t        j	                  | |      }||_        d|_        d|_        d|_        |j                  d      rI|J d       	 t        j	                  | |j                  d            }||_        d|_        |d d	 |_        |S 	 t        |       d|_        |S # t        $ re}t        |d|j                  t               t        j	                  | |j                  d |j                   j                  d            }Y d }~d }~ww xY w# t         $ r  d|_        t"        j$                  |_        Y |S w xY w)
NcharmapFr-   )u   þÿu   ÿþr   r   z
initial string:Tr   )r{   rb   r  rd   r   r  r  r  r  
startswithr  r   r   r(   startencode_pdfdocencodingUnicodeEncodeErrorcodecsBOM_UTF16_BE)r   r   orgr   excs        r+   r   zTextStringObject.__new__  sX   eU#CLL+EKKU#"&+#<<01?*F*?OKKSZZ%9: !$A!%Abq'AK 2%a(.2+ ! & Og.szzn= KKSZZ#))%<%C%CH%MNO & 2%)"$112s+   3%C 3D8 	D5AD00D58%E! E!r6   r;   r<   c                     t        |       }| j                  |_        | j                  |_        | j                  |_        | j                  |_        t        d| j                  |||            S )rh   r
  )r
  r  r  r  r  r   rR   )r*   r6   r;   r<   rQ   s        r+   r8   zTextStringObject.clone  sd     t$"22(,(F(F%#44 5 5c8_ U
 	
r-   c                 D    t        | j                  | j                  f      S rj   )rl   r'   r   r)   s    r+   r,   zTextStringObject.hash_bin  s     T^^T%8%89::r-   c                 R    | j                   | j                   S | j                         S )a-  
        It is occasionally possible that a text string object gets created where
        a byte string object was expected due to the autodetection mechanism --
        if that occurs, this "original_bytes" property can be used to
        back-calculate what the original encoded bytes were.
        )r  get_original_bytesr)   s    r+   r   zTextStringObject.original_bytes  s+     +'''&&((r-   c                 |   | j                   r| j                  t        j                  k(  r"t        j                  | j	                  d      z   S | j                  t        j
                  k(  r"t        j
                  | j	                  d      z   S | j	                  d      S | j                  rt        |       S t        d      )Nutf-16leutf-16bez#no information about original bytes)	r  r  r  BOM_UTF16_LEr0   r  r  r  rC   r)   s    r+   r  z#TextStringObject.get_original_bytes  s       ~~!4!44**T[[-DDD~~!4!44**T[[-DDD;;z**))(..=>>r-   c                    	 | j                   | j                   S | j                  rt        ddddd      t        |       }|S # t        $ r | j                  t
        j                  k(  r%t
        j                  | j                  d      z   }Y |S | j                  t
        j                  k(  r%t
        j                  | j                  d      z   }Y |S | j                  d      }Y |S w xY w)N forcedr  r  )	r  r  r  r  r  r  r   r0   r  )r*   bytearrs     r+   get_encoded_bytesz"TextStringObject.get_encoded_bytes  s    	2##/+++$$(Xr2rBB+D1G  " 	2~~!4!44 --J0GG
 	 6#6#66 --J0GG  ++j1	2s#   A &A AC$?C$C$#C$rV   rW   c                 T   |t        dd       | j                         }|j                  d       t        d|      D ]Y  }t	        t
        |d         }|j                         s#|dk7  r|j                  dt        |      z         I|j                  |       [ |j                  d       y )	Nrn   ro      (cr       s   \%03o   ))r   r&  rq   r   r   rb   isalnumord)r*   rV   rW   r%  c_r)  s         r+   rZ   z TextStringObject.write_to_stream  s     %$A7 ((*Tc7+ 		 BUBqE"A99;19
 YQ/0Q		  	Tr-   r[   r/   )r(   r\   r]   r  rc   r`   rb   r  r
   r   r   r   r   rd   ra   r8   r,   r   r   r  r&  r   rZ   rT   r-   r+   r
  r
  ~  s      $#'+OXe_+C $6 F !&=?	

 
  sCx 9:	

 

 ;# ; 	) 	) 	)?E ? 5 ( MQ 27c58H2I	r-   r
  c                      e Zd ZU  ej                  d      ZdZdddddd ed	      D  ci c]   }t        |      d
|dj                         " c}}} Z
eeeef      ed<   	 	 ddededeeeeef         dd fdZdefdZ	 ddededeef   ddfdZdefdZededefd       ZdZedededd fd       Zyc c}}} w )r  s   \s+|[\(\)<>\[\]{}/%]   /s   #23s   #28s   #29s   #2Fs   #25)#(r   /%!   r1  02Xrenumber_tabler6   r;   r<   r"   c                 N    t        d| j                  t        |       ||            S )rh   r  )r   rR   r  r>   s       r+   r8   zNameObject.clone  s+     !!*T"2HoN
 	
r-   c                 0    t        | j                  | f      S rj   rk   r)   s    r+   r,   zNameObject.hash_bin#  s     T^^T*++r-   NrV   rW   c                 ^    |t        dd       |j                  | j                                y )Nrn   ro   )r   rq   renumberrY   s      r+   rZ   zNameObject.write_to_stream-  s+     %$A7 	T]]_%r-   c                 >   | d   j                  d      }|dk7  rt        d|  dd       | dd  D ]H  }|dkD  r.|j                  d      D ]  }|d	|d
j                         z  } 6	 || j                  |   z  }J |S # t        $ r ||j                  d      z  }Y lw xY w)Nr   utf-8r0  z<Incorrect first char in NameObject, should start with '/': (r   z6.0.0r@   ~r1  r6  )r0   r   r7  KeyError)r*   outr)  xs       r+   r;  zNameObject.renumber6  s    1gnnW%$;$NtfTUV ab 	-A3w'* 0AQqg;--//C0-4..q11C	- 
   -188G,,C-s   &A<<BBsinc                     | j                  dd      }|dk\  r?	 | d | t        | |dz   |dz          z   | |dz   d  z   } | j                  d|dz         }|dk\  r?| S # t        $ r |dz   }Y w xY w)N   #r   r@   r   )findr   r   )rB  rP   s     r+   unnumberzNameObject.unnumberH  s    HHT11f"1g	#a!ea!e*< ==AEGLHHT1q5) 1f 
	   Es   8A A*)A*)r=  gbklatin1rB   c                 4   | j                  d      }|t        j                  k7  rt        d      |t	        | t        j
                        z  }	 t        j                  |      }t        j                  D ]   }	 |j                  |      }t        |      c S  t        d|ddd      # t        $ r Y =w xY w# t        t        f$ rT}|j                  s3t        d|dt               t        |j                  d            cY d }~S t        d|d	      |d }~ww xY w)
Nr@   zName read errorr"  r   zCode Not Foundz!Illegal character in NameObject (z-), you may need to adjust NameObject.CHARSETSr  z.). You may need to adjust NameObject.CHARSETS.)rt   r  surfixr   r   delimiter_patternrF  r  r  rC   r  r  strictr   r(   )rV   rB   r   r  retr   s         r+   rv   zNameObject.read_from_streamW  s*   {{1~:$$$011 )E)EFF	 &&t,D!** ++c*C%c?* %Rq!5EFF !  #$67 	::7x @A A
 "$++i"8993D8 <> > 	sN   (B4 7B%B4 B4 %	B1.B4 0B11B4 4D9D<DDDr[   r/   )r(   r\   r]   r   r   rK  rJ  rangechrr0   r7  r   r	   rd   rb   r`   r   rc   r
   r   r   ra   r8   r,   r   rZ   r;  r~   rF  r  rv   ).0rP   rO  s   000r+   r  r    s]   "

#;<F2 27r
;
;A3q6Qqg;%%''
;2NHT#u*-.  !&=?	



 

  sCx 9:	


 


,# , MQ& &27c58H2I&	&% $ 
e 
 
 
 *H # ,  I <s   %B<
r  unicode_stringr"   c                     	 t        | D cg c]  }t        |    c}      S c c}w # t        $ r t        d| ddd      w xY w)Npdfdocencodingr$  z#does not exist in translation table)rb   r   r?  r  )rQ  ks     r+   r  r  v  sQ    	
~F!*1-FGGF 
 1
 	

s   	' "' ' A rA  c                     | du xsD t        | t              xr2 | j                         du xs t        | j                         t              S )z<
    Returns:
        True if x is None or NullObject.

    N)r{   r   rL   rf   )rA  s    r+   is_null_or_nonerV    sE     9 1i  	O\\^t#Mz!,,.*'Mr-   )7r   r  r^   r   sysr   mathr   structr   typingr   r   r   r	   r
   r   r   r   version_infor   typing_extensions_codecsr   
_protocolsr   r   _utilsr   r   r   r   r   errorsr   r   r   
__author____author_email__r   rf   r   r    r   r   r   ra   r   rb   r   rd   r
  r  r  rV  rT   r-   r+   <module>rc     s0  6    	 
    Q Q QBQ7" + * =  P O
/ K"! K"\*- *-Z8<I 8<v_@Y _@D  83% 83v1!3	 1!h8>ui 8>vJsI JZhi hV

# 

% 

	s 	ytZ/O)PQ 	r-   