
    HAi{                        S SK r S SKrS SKrS SKrS SKrS SK Jr  S SKJr  S SKJ	r	  S SK
JrJrJrJrJrJrJrJr  \R&                  SS S:  a  S SK
Jr  OS SKJr  SS	KJr  SS
KJrJr  SSKJrJrJrJrJ r J!r!J"r"  SSK#J$r$J%r%J&r&  Sr'Sr( " S S\5      r) " S S\)5      r* " S S\)5      r+ " S S\)5      r,Sr- " S S\.\)5      r/ " S S\0\)5      r1 " S S\2\)5      r3 " S S\4\)5      r5 " S  S!\4\)5      r6S"\4S#\24S$ jr7S%\S#\\S\*\,4      4S& jr8g)'    N)	unhexlify)log10)iter_unpack)AnyCallableClassVarDictOptionalSequenceUnioncast   )   
   )	TypeGuard)_pdfdoc_encoding_rev)PdfObjectProtocolPdfWriterProtocol)
StreamTypeclasspropertydeprecate_no_replacementdeprecate_with_replacementlogger_warningread_non_whitespaceread_until_regex)STREAM_TRUNCATED_PREMATURELYPdfReadErrorPdfStreamErrorzMathieu Fenniakzbiziqe@mathieu.fenniak.netc                      \ rS rSr% \R
                  r\S   \S'   \	S   \S'   S\
4S jrS\4S jrS\4S	 jrS
\SS 4S jr  SS
\S\S\	\\\\
4         SS 4S jjr SS\S
\S\S\4S jjrS\	S    4S jr SS\S\S\\4   SS4S jjrSrg)	PdfObject;   ).zhashlib._Hash	hash_funcIndirectObjectindirect_referencereturnc                 F    [        U R                  R                   S35      e)Q
Used to detect modified object.

Returns:
    Hash considering type and value.

z& does not implement .hash_bin() so farNotImplementedError	__class____name__selfs    O/var/www/html/land-ocr/venv/lib/python3.13/site-packages/pypdf/generic/_base.pyhash_binPdfObject.hash_bin@   s'     "~~&&''MN
 	
    c                 $    U  R                  5       $ N)encoder,   s    r.   hash_value_dataPdfObject.hash_value_dataL   s    !!r1   c                     U R                   R                   SU R                  U R                  5       5      R	                  5        3R                  5       $ )N:)r*   r+   r"   r5   	hexdigestr4   r,   s    r.   
hash_valuePdfObject.hash_valueO   sG    ~~&&'q~~d2245??ABD
&(	r1   pdf_destc                 $    U R                  U5      $ )z
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-   r<   s     r.   	replicatePdfObject.replicateU   s     zz(##r1    force_duplicateignore_fieldsc                 F    [        U R                  R                   S35      e)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-   r<   rC   rD   s       r.   r>   PdfObject.clonef   s'    6 "~~&&''HI
 	
r1   r>   c                     U(       d  UR                   R                  U:X  a  U$  U R                   nUR                  (       aM  UbJ  UR                  UR
                  :X  a0  UR                  [        UR                  5      ::  a  UR                  nO[        UR                  5      S-   nUGb  [        UR                  5      UR                  ;  aQ  0 UR                  [        UR                  5      '   UR                  UR                  [        UR                  5         S'   U(       du  UR                  UR                  [        UR                  5         ;   aE  UR                  UR                  [        UR                  5         UR                     5      nUc   eU$ XRR                  [        UR                  5         UR                  '    XR                  US-
  '   [        USU5      Ul         U$ ! [         a     GNf = f! [         a    Us $ f = f! [         a3    UR                  R                  U5        [        UR                  5      n Nsf = f)a  
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-   r>   r<   rC   indiobjs          r.   _reference_clone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 &
>?##BswwK0;	'',a!e$ $2!Q#A I  		
  	L	6  	'$$U+H%%&A	's4   "G0 H H 0
G>=G>HH:IIc                     U $ )zResolve indirect references.rB   r,   s    r.   rU   PdfObject.get_object       r1   Nstreamencryption_keyc                     [         er3   )r)   r-   r`   ra   s      r.   write_to_streamPdfObject.write_to_stream   s
     "!r1   FrB   )Fr3   )r+   
__module____qualname____firstlineno__hashlibsha1r"   r   __annotations__r
   intr/   bytesr5   r:   r   r@   boolr   r   strr>   r   r   r[   rU   r   rd   __static_attributes__rB   r1   r.   r    r    ;   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"	" "r1   r    c                       \ rS rSr  SS\S\S\\\\	\
4         SS 4S jjrS\
4S jr SS
\S\S	\	\4   SS	4S jjr\S
\SS 4S j5       rS\	4S jrS\S\4S jrS\
4S jrSrg	)
NullObject   rB   r<   rC   rD   r%   c                 J    [        SU R                  [        5       X5      5      $ )Clone object into pdf_dest.rs   )r   r[   rs   rF   s       r.   r>   NullObject.clone   s%     $//
hX
 	
r1   c                 .    [        U R                  45      $ r'   hashr*   r,   s    r.   r/   NullObject.hash_bin   s     T^^%&&r1   Nr`   ra   c                 D    Ub  [        SS5        UR                  S5        g )N/the encryption_key parameter of write_to_stream5.0.0   null)r   writerc   s      r.   rd   NullObject.write_to_stream   s%     %$A7 	Wr1   c                 Z    U R                  S5      nUS:w  a  [        S5      e[        5       $ )N   r   zCould not read Null object)readr   rs   )r`   nulltxts     r.   read_from_streamNullObject.read_from_stream   s+    ++a.g;<<|r1   c                     g)Nrs   rB   r,   s    r.   __repr__NullObject.__repr__   s    r1   otherc                 "    [        U[        5      $ r3   )
isinstancers   r-   r   s     r.   __eq__NullObject.__eq__   s    %,,r1   c                 "    U R                  5       $ r3   r/   r,   s    r.   __hash__NullObject.__hash__       }}r1   rf   r3   )r+   rg   rh   ri   r   ro   r
   r   r   rp   rm   r>   r/   r   rn   rd   staticmethodr   r   objectr   r   rq   rB   r1   r.   rs   rs      s     !&=?		
#	
 	
  sCx 9:		

 
	
'# ' MQ 27c58H2I	    # -F -t -# r1   rs   c                       \ rS rSrS\SS4S jr  SS\S\S\\	\
\\4         SS 4S	 jjrS\4S
 jrS\S\4S jrS\4S jrS\4S jr SS\S\
S\\4   SS4S jjr\S\SS 4S j5       rSrg)BooleanObject   valuer%   Nc                     Xl         g r3   r   )r-   r   s     r.   __init__BooleanObject.__init__   s    
r1   r<   rC   rD   c                 `    [        SU R                  [        U R                  5      X5      5      $ )rv   r   )r   r[   r   r   rF   s       r.   r>   BooleanObject.clone   s-     !!-

";XW
 	
r1   c                 D    [        U R                  U R                  45      $ ry   )r{   r*   r   r,   s    r.   r/   BooleanObject.hash_bin	  s     T^^TZZ011r1   oc                    [        U[        5      (       a  U R                  UR                  :H  $ [        U[        5      (       a  U R                  U:H  $ g)NF)r   r   r   ro   r-   r   s     r.   r   BooleanObject.__eq__  s@    a''::((a::?"r1   c                 "    U R                  5       $ r3   r   r,   s    r.   r   BooleanObject.__hash__  r   r1   c                 ,    U R                   (       a  S$ S$ )NTrueFalser   r,   s    r.   r   BooleanObject.__repr__  s    v00r1   r`   ra   c                     Ub  [        SS5        U R                  (       a  UR                  S5        g UR                  S5        g )Nr~   r      trues   false)r   r   r   rc   s      r.   rd   BooleanObject.write_to_stream   s8     %$A7 ::LL!LL"r1   c                     U R                  S5      nUS:X  a  [        S5      $ US:X  a  U R                  S5        [        S5      $ [        S5      e)Nr   r   Ts   falsrI   FzCould not read Boolean object)r   r   r   )r`   words     r.   r   BooleanObject.read_from_stream,  sJ    {{1~7? &&7?KKN '':;;r1   r   rf   r3   )r+   rg   rh   ri   r   r   r   ro   r
   r   r   rp   rm   r>   r/   r   r   r   r   r   rn   rd   r   r   rq   rB   r1   r.   r   r      s    c d  !&=?	

#

 

  sCx 9:	


 


2# 2 d # 1# 1 MQ
# 
#27c58H2I
#	
# < < < <r1   r   c                      \ rS rSrS\S\S\SS4S jrS\4S jrS\4S	 jrS
\	SS4S jr
  S'S
\	S\S\\\\\4         SS 4S jjr\S(S j5       rS\S   4S jrS\SS 4S jrS\S   4S jrS\S\4S jrS\S\4S jrS\S\4S jrS\4S jrS\4S jrS\4S jrS\4S jrS\4S jrS\S\4S  jrS\S\4S! jr  S)S"\!S#\S\\"4   SS4S$ jjr#\$S"\!S\SS 4S% j5       r%S&r&g)*r#   i7  rP   
generationrK   r%   Nc                 (    Xl         X l        X0l        g r3   )rP   r   rK   )r-   rP   r   rK   s       r.   r   IndirectObject.__init__8  s    
$r1   c                 l    [        U R                  U R                  [        U R                  5      45      $ r3   )r{   rP   r   rS   rK   r,   s    r.   r   IndirectObject.__hash__=  s$    TZZ"TXX,?@@r1   c                     [        U R                  U R                  U R                  [	        U R
                  5      45      $ ry   )r{   r*   rP   r   rS   rK   r,   s    r.   r/   IndirectObject.hash_bin@  s,     T^^TZZ"TXX,OPPr1   r<   r    c                 D    [        U R                  U R                  U5      $ r3   )r#   rP   r   r?   s     r.   r@   IndirectObject.replicateJ  s     djj$//8DDr1   rC   rD   c                 L   U R                   U:X  a	  U(       d  U $ [        U R                   5      UR                  ;  a"  0 UR                  [        U R                   5      '   U R                  UR                  [        U R                   5         ;   a  UR	                  UR                  [        U R                   5         U R                     5      nU(       aK  Uc   eUR
                  c   eUR
                  n[        UR                  UR                  UR                   5      $ O\U R	                  5       nUc(  [        5       n[        U [        45      (       d   eXl        UR                  UR                  XU5      5      nUc   S5       eUR
                  c   S5       eUR
                  $ )rv   mypy)rK   rS   rT   rP   rU   r$   r#   r   rs   r   _add_objectr>   )r-   r<   rC   rD   dupidrefrZ   s          r.   r>   IndirectObject.cloneP  sd    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::::)-&&&		(]CC &&%%19691%%%r1   c                     U $ r3   rB   r,   s    r.   r$   !IndirectObject.indirect_references  r_   r1   c                 8    U R                   R                  U 5      $ r3   )rK   rU   r,   s    r.   rU   IndirectObject.get_objectw  s    xx""4((r1   memoc                 X    [        U R                  U R                  U R                  5      $ r3   )r#   rP   r   rK   )r-   r   s     r.   __deepcopy__IndirectObject.__deepcopy__z  s    djj$//488DDr1   c                     U R                  5       n[        U[        5      (       a,  [        U R	                  5        SUR	                  5        35      eU$ )Nz references an IndirectObject )rU   r   r#   r   r   r   s     r.   _get_object_with_check%IndirectObject._get_object_with_check}  sK    OOa(( ==?##A!**,P  r1   namec                 r     [        U R                  5       U5      $ ! [         a    [        SU S35      ef = f)NzNo attribute z* found in IndirectObject or pointed object)getattrr   rM   r-   r   s     r.   __getattr__IndirectObject.__getattr__  sF    	4668$?? 	 v%OP 	s    6keyc                 (    U R                  5       U   $ r3   r   r-   r   s     r.   __getitem__IndirectObject.__getitem__  s    **,S11r1   c                 &    XR                  5       ;   $ r3   r   r   s     r.   __contains__IndirectObject.__contains__  s    11333r1   c                 >    U R                  5       R                  5       $ r3   )r   __iter__r,   s    r.   r   IndirectObject.__iter__  s    **,5577r1   c                 >    U R                  5       R                  5       $ r3   )rU   	__float__r,   s    r.   r   IndirectObject.__float__  s     **,,r1   c                 >    U R                  5       R                  5       $ r3   )rU   __int__r,   s    r.   r   IndirectObject.__int__       ((**r1   c                 >    U R                  5       R                  5       $ r3   )rU   __str__r,   s    r.   r   IndirectObject.__str__  r   r1   c                 l    SU R                   < SU R                  < S[        U R                  5       S3$ )NzIndirectObject(z, ))rP   r   rS   rK   r,   s    r.   r   IndirectObject.__repr__  s/     b0C2bl^STUUr1   r   c                     US L=(       ao    [        U[        5      =(       aX    U R                  UR                  :H  =(       a8    U R                  UR                  :H  =(       a    U R                  UR                  L $ r3   )r   r#   rP   r   rK   r   s     r.   r   IndirectObject.__eq__  sc     &5.1&

ekk)& 5#3#33& EII%	
r1   c                 .    U R                  U5      (       + $ r3   )r   r   s     r.   __ne__IndirectObject.__ne__  s    ;;u%%%r1   r`   ra   c                     Ub  [        SS5        UR                  U R                   SU R                   S3R	                  5       5        g )Nr~   r    z R)r   r   rP   r   r4   rc   s      r.   rd   IndirectObject.write_to_stream  sD     %$A7 	

|1T__$5R8??ABr1   c                    Sn U R                  S5      nU(       d  [        [        5      eUR                  5       (       a  OX#-  nMC  Sn U R                  S5      nU(       d  [        [        5      eUR                  5       (       a
  U(       d  MF  OXC-  nML  [	        U 5      nUS:w  a%  [        S[        U R                  5       5       35      e[        [        U5      [        U5      U5      $ )Nr1   rI      Rz0Error reading indirect object reference at byte )
r   r   r   isspacer   r   hextellr#   rm   )r`   rK   rP   tokr   rs         r.   r   IndirectObject.read_from_stream  s    ++a.C$%ABB{{}}LE  
++a.C$%ABB{{}}!J   '9B3v{{}CUBVW  c%j#j/3??r1   )r   rP   rK   rf   )r%   r#   r3   )'r+   rg   rh   ri   rm   r   r   r   r/   r   r@   ro   r
   r   r   rp   r>   propertyr$   rU   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rn   rd   r   r   rq   rB   r1   r.   r#   r#   7  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 @ @r1   r#      c                       \ rS rSr SS\S\\   SS 4S jjr  SS\S	\S
\\\	\
\4         SS 4S jjrS\4S jrS\
4S jrS\
4S jrS\4S jr SS\S\	S\
\4   SS4S jjrSrg)FloatObjecti  Nr   contextr%   c                      [        U5      n[         R                  X5      $ ! [         a6  n[        U SU S3[        5        [         R                  U S5      s S nA$ S nAff = f)Nz : FloatObject (z) invalid; use 0.0 insteadg        )float__new__rL   r   r+   )clsr   r  es       r.   r  FloatObject.__new__  s`    		+%LE==,, 	+ #%eW,FG ==c**	+s   " 
A"+AA"A"rB   r<   rC   rD   c                 L    [        SU R                  [        U 5      X5      5      $ )rv   r  )r   r[   r  rF   s       r.   r>   FloatObject.clone  s)     !!+d"3XO
 	
r1   c                 D    [        U R                  U R                  45      $ ry   r{   r*   
as_numericr,   s    r.   r/   FloatObject.hash_bin  s     T^^T__566r1   c                     U S:X  a  g[         [        [        [        U 5      5      5      -
  nU S[	        SU5       S3 R                  S5      R                  S5      $ )Nr   0.0.rI   f0)FLOAT_WRITE_PRECISIONrm   r   absmaxrstrip)r-   nbs     r.   myreprFloatObject.myrepr  sS    19"Ss4y)9%::qQAo&..s3::3??r1   c                 "    U R                  5       $ r3   )r  r,   s    r.   r   FloatObject.__repr__  s    {{}r1   c                     [        U 5      $ r3   )r  r,   s    r.   r  FloatObject.as_numeric
  s    T{r1   r`   ra   c                 ~    Ub  [        SS5        UR                  U R                  5       R                  S5      5        g Nr~   r   utf8)r   r   r  r4   rc   s      r.   rd   FloatObject.write_to_stream  s6     %$A7 	T[[]))&12r1   )r  Nrf   r3   )r+   rg   rh   ri   r   r
   r  ro   r   r   rp   rm   r>   r/   r  r   r  r  r   rn   rd   rq   rB   r1   r.   r  r    s    :>++*23-+	+" !&=?	



 

  sCx 9:	


 


7# 7@ @# E  MQ3 327c58H2I3	3 3r1   r  c                       \ rS rSr\R
                  " S5      rS\SS 4S jr  SS\S\	S	\
\\\\4         SS 4S
 jjrS\4S jrS\4S jr SS\S\S\\4   SS4S jjr\S\S\S   4S j5       rSrg)NumberObjecti  s	   [^+-.0-9]r   r%   c                      [         R                  U [        U5      5      $ ! [         a-    [        SU S3[        5        [         R                  U S5      s $ f = f)NzNumberObject(z) invalid; use 0 insteadr   )rm   r  
ValueErrorr   r+   )r  r   s     r.   r  NumberObject.__new__  sP    	';;sCJ// 	']5'1IJHU;;sA&&	's   ! 4AArB   r<   rC   rD   c                 L    [        SU R                  [        U 5      X5      5      $ )rv   r%  )r   r[   r%  rF   s       r.   r>   NumberObject.clone!  s)     !!,t"4hP
 	
r1   c                 L    [        U R                  U R                  5       45      $ ry   r  r,   s    r.   r/   NumberObject.hash_bin-  s     T^^T__%6788r1   c                 H    [        [        U 5      R                  S5      5      $ )Nr"  )rm   reprr4   r,   s    r.   r  NumberObject.as_numeric7  s    4:$$V,--r1   Nr`   ra   c                 t    Ub  [        SS5        UR                  [        U 5      R                  S5      5        g r!  )r   r   r.  r4   rc   s      r.   rd   NumberObject.write_to_stream:  s4     %$A7 	T$Z&&v./r1   )r%  r  c                 n    [        U [        R                  5      nSU;   a  [        U5      $ [        U5      $ )N   .)r   r%  NumberPatternr  )r`   nums     r.   r   NumberObject.read_from_streamC  s1    v|'A'AB3;s##C  r1   rf   r3   )r+   rg   rh   ri   recompiler4  r   r  ro   r
   r   r   rp   rm   r>   r/   r  r   rn   rd   r   r   rq   rB   r1   r.   r%  r%    s    JJ|,M'C 'N ' !&=?	



 

  sCx 9:	


 


9# 9.C . MQ0 027c58H2I0	0 ! !6S0T ! !r1   r%  c                       \ rS rSrSr  SS\S\S\\\	\
\4         SS 4S jjrS\4S	 jr\S\4S
 j5       r SS\S\	S\
\4   SS4S jjrS\
4S jrSrg)ByteStringObjectiK  a*  
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.
rB   r<   rC   rD   r%   c           
      ^    [        SU R                  [        [        U 5      5      X5      5      $ )rv   r:  )r   r[   r:  rn   rF   s       r.   r>   ByteStringObject.cloneT  s0     !! t-x
 	
r1   c                 B    [        U R                  [        U 5      45      $ ry   )r{   r*   rn   r,   s    r.   r/   ByteStringObject.hash_binb  s     T^^U4[122r1   c                     U $ )z7For compatibility with TextStringObject.original_bytes.rB   r,   s    r.   original_bytesByteStringObject.original_bytesl  s	     r1   Nr`   ra   c                     Ub  [        SS5        UR                  S5        UR                  [        R                  " U 5      5        UR                  S5        g )Nr~   r      <   >)r   r   binasciihexlifyrc   s      r.   rd    ByteStringObject.write_to_streamq  sH     %$A7 	TX%%d+,Tr1   c                     S/[        [        R                  5      QnU H  n U R                  U5      s  $    [        S5      e! [         a     M1  f = f)Nutf-16zCannot decode ByteStringObject.)list
NameObjectCHARSETSdecodeUnicodeDecodeErrorr   )r-   charset_to_tryencs      r.   r   ByteStringObject.__str__|  sZ    "?T**=*=%>?!C{{3'' "
 <== & s   A
AArf   r3   )r+   rg   rh   ri   __doc__r   ro   r
   r   r   rp   rm   r>   r/   r   rn   r@  r   rd   r   rq   rB   r1   r.   r:  r:  K  s     !&=?	

 
  sCx 9:	

 

3# 3   
 MQ	 	27c58H2I			> >r1   r:  c                       \ rS rSr% Sr\\S'   \\S'   \\S'   Sr\	\   \S'   S\
S	S 4S
 jr  SS\
S\S\	\\\\4         S	S 4S jjrS	\4S jr\S	\4S j5       rS	\4S jrS	\4S jr SS\S\S\\4   S	S4S jjrSrg)TextStringObjecti  z
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                    S n[        U[        5      (       a  UnUR                  S5      n[        R	                  X5      nX#l        SUl        SUl        SUl        UR                  S5      (       aH  Uc   S5       e [        R	                  XR                  S5      5      nX#l        SUl        US S	 Ul        U$  [        U5        SUl        U$ ! [         af  n[        U< SUR                  < 3[        5        [        R	                  XR                  S UR                   R                  S5      5      n S nANS nAff = f! [          a     SUl        ["        R$                  Ul         U$ f = f)
NcharmapFr1   )u   þÿu   ÿþr   rI  z
initial string:Tr   )r   rn   rM  rp   r  rX  rV  rU  rW  
startswithrN  r   r   r+   startencode_pdfdocencodingUnicodeEncodeErrorcodecsBOM_UTF16_BE)r  r   orgr   excs        r.   r  TextStringObject.__new__  sT   eU##CLL+EKK#"&+#<<011?*F*?OKKZZ%9: !$!%Abq'AK 2%a(.2+ ! & Og.szzn= KKZZ#))%<%C%CH%MNO & 2%)"$112s+   <$C :E 
D>AD99D>&E+*E+rB   r<   rC   rD   c                     [        U 5      nU R                  Ul        U R                  Ul        U R                  Ul        U R                  Ul        [        SU R                  XAU5      5      $ )rv   rT  )rT  rX  rU  rV  rW  r   r[   )r-   r<   rC   rD   rZ   s        r.   r>   TextStringObject.clone  sb     t$"22(,(F(F%#44 5 5c_ U
 	
r1   c                 D    [        U R                  U R                  45      $ ry   )r{   r*   r@  r,   s    r.   r/   TextStringObject.hash_bin  s     T^^T%8%89::r1   c                 T    U R                   b  U R                   $ U R                  5       $ )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.
)rX  get_original_bytesr,   s    r.   r@  TextStringObject.original_bytes  s+     +'''&&((r1   c                    U R                   (       a  U R                  [        R                  :X  a"  [        R                  U R	                  S5      -   $ U R                  [        R
                  :X  a"  [        R
                  U R	                  S5      -   $ U R	                  S5      $ U R                  (       a  [        U 5      $ [        S5      e)Nutf-16leutf-16bez#no information about original bytes)	rV  rW  r_  BOM_UTF16_LEr4   r`  rU  r]  rL   r,   s    r.   ri  #TextStringObject.get_original_bytes  s       ~~!4!44**T[[-DDD~~!4!44**T[[-DDD;;z**))(..=>>r1   c                     U R                   b  U R                   $ U R                  (       a  [        SSSSS5      e[        U 5      nU$ ! [         a    U R                  [
        R                  :X  a%  [
        R                  U R                  S5      -   n U$ U R                  [
        R                  :X  a%  [
        R                  U R                  S5      -   n U$ U R                  S5      n U$ f = f)N forcedrl  rm  )	rX  rV  r^  r]  rW  r_  rn  r4   r`  )r-   bytearrs     r.   get_encoded_bytes"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-A C-C-,C-r`   ra   c                 h   Ub  [        SS5        U R                  5       nUR                  S5        [        SU5       Ha  n[	        [
        US   5      nUR                  5       (       d%  US:w  a  UR                  S[        U5      -  5        MP  UR                  U5        Mc     UR                  S5        g )	Nr~   r      (cr       s   \%03o   ))r   ru  r   r   r   rn   isalnumord)r-   r`   ra   rt  c_ry  s         r.   rd    TextStringObject.write_to_stream  s     %$A7 ((*Tc7+BUBqE"A99;;19
 YQ/0Q , 	Tr1   rf   r3   )r+   rg   rh   ri   rR  ro   rl   rn   rX  r
   r   r  r   r   rp   rm   r>   r/   r   r@  ri  ru  r   rd   rq   rB   r1   r.   rT  rT    s      $#'+OXe_+C $6 F !&=?	

 
  sCx 9:	

 

 ;# ; 	) 	) 	)?E ? 5 ( MQ 27c58H2I	 r1   rT  c                   .   \ rS rSr% \R
                  " S5      rSr0 S V VVs0 s H!  n[        U5      SUS 3R                  5       _M#     snnn E\
" S5       V VVs0 s H!  n[        U5      SUS 3R                  5       _M#     snnn Er\\\\4      \S'     SS
\S\S\\\\\4         SS 4S jjrS\4S jr SS\S\S\\4   SS4S jjrS\4S jrSS jr\S\4S j5       r\S\S\4S j5       r Sr!\S\S\SS 4S j5       r"S	r#gs  snnn f s  snnn f )rK  i  s   \s+|[\(\)<>\[\]{}/%]   /s   #()<>[]{}/%#02X!   renumber_tablerB   r<   rC   rD   r%   c                 L    [        SU R                  [        U 5      X5      5      $ )rv   rK  )r   r[   rK  rF   s       r.   r>   NameObject.clone  s)     !!*T"2HN
 	
r1   c                 0    [        U R                  U 45      $ ry   rz   r,   s    r.   r/   NameObject.hash_bin'  s     T^^T*++r1   Nr`   ra   c                 `    Ub  [        SS5        UR                  U R                  5       5        g )Nr~   r   )r   r   renumberrc   s      r.   rd   NameObject.write_to_stream1  s+     %$A7 	T]]_%r1   c                 L   U S   R                  S5      nUS:w  a  [        SU  S3S5        U SS   HL  nUS:  a1  UR                  S5       H  nUS	US
 3R                  5       -  nM     M:   XR                  U   -  nMN     U$ ! [         a    XR                  S5      -  n Mr  f = f)Nr   utf-8r  z<Incorrect first char in NameObject, should start with '/': (r   6.0.0rI   ~r  r  )r4   r   r  KeyError)r-   outry  xs       r.   r  NameObject.renumber:  s    1gnnW%$;$NtfTUV abA3w'*AQqg;--//C +-..q11C  
   -88G,,C-s   +BB#"B#c                     [        U 5      SS n[        R                  " SSU5      n[        R                  " SSU5      n[        SU-   5      $ )z
Sanitize the NameObject's name to be a valid PDF name part
(alphanumeric, underscore, hyphen). The _sanitize method replaces
spaces and any non-alphanumeric/non-underscore/non-hyphen with
underscores.

Returns:
    NameObject with sanitized name.
rI   Nz\ _z[^a-zA-Z0-9_-]/)rp   r7  subrK  r   s     r.   	_sanitizeNameObject._sanitizeL  sG     4y}vveS$'vv'd3#*%%r1   c                     [        SSS5        g)Nsurfixprefixr  r  )r   )r  s    r.   r  NameObject.surfix[  s    "8Xw?r1   sinc                     U R                  SS5      nUS:  a?   U S U [        XS-   US-    5      -   XS-   S  -   n U R                  SUS-   5      nUS:  a  M?  U $ ! [         a    US-   n Nf = f)N   #r   rI   r   )findr   r'  )r  rY   s     r.   unnumberNameObject.unnumber`  s    HHT11f"1g	#!ea!e*< ==EGLHHT1q5) 1f 
	   Es   6A A,+A,)r  gbklatin1rK   c                 L   U R                  S5      nU[        R                  :w  a  [        S5      eU[	        U [        R
                  5      -  n [        R                  U5      n[        R                   H   n UR                  U5      n[        U5      s  $    [        SUSSS5      e! [         a     M@  f = f! [        [        4 a[  nUR                  (       d4  [        SU< S3[        5        [        UR                  S5      5      s S nA$ [        SU< S	35      UeS nAff = f)
NrI   zName read errorrq  r   zCode Not Foundz!Illegal character in NameObject (z-), you may need to adjust NameObject.CHARSETSrZ  z.). You may need to adjust NameObject.CHARSETS.)r   rK  r  r   r   delimiter_patternr  rL  rM  rL   rN  r^  strictr   r+   )r`   rK   r   rP  retr  s         r.   r   NameObject.read_from_streamo  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   (B8 8B'B8 B8 '
B51B8 4B55B8 8D#?DD#DD#rf   r3   )r%   rK  )$r+   rg   rh   ri   r7  r8  r  r  chrr4   ranger  r   r	   rp   rn   rl   r   ro   r
   r   r   rm   r>   r/   r   rd   r  r  r   r  r   r  rL  r   rq   ).0rY   r  s   000r.   rK  rK    s   

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

 


,# , MQ& &27c58H2I&	&% $& u   
e 
 
 
 *H # ,  s A
;s   (D	
(D
rK  unicode_stringr%   c                      [        U  Vs/ s H  n[        U   PM     sn5      $ s  snf ! [         a    [        SU SSS5      ef = f)Npdfdocencodingrs  z#does not exist in translation table)rn   r   r  r^  )r  ks     r.   r]  r]    sU    	
~F~!*1-~FGGF 
 1
 	

s   	* %* * Ar  c                     U SL =(       dN    [        U [        5      =(       a7    U R                  5       SL =(       d    [        U R                  5       [        5      $ )z0
Returns:
    True if x is None or NullObject.

N)r   r    rU   rs   )r  s    r.   is_null_or_noner    sE     9 1i  	O\\^t#Mz!,,.*'Mr1   )9rE  r_  rj   r7  sysr   mathr   structr   typingr   r   r   r	   r
   r   r   r   version_infor   typing_extensions_codecsr   
_protocolsr   r   _utilsr   r   r   r   r   r   r   errorsr   r   r   
__author____author_email__r    rs   r   r#   r  r  r  rm   r%  rn   r:  rp   rT  rK  r]  r  rB   r1   r.   <module>r     s5  6    	 
    Q Q QBQ7" + * =   P O
/ K"! K"\- -`;<I ;<|_@Y _@D  83% 83v1!3	 1!h8>ui 8>vJsI JZxi xv

# 

% 

	s 	ytZ/O)PQ 	r1   