
    .iw	                         d dl mZmZmZmZ d dlmZ d dlmZ d dl	m
Z
 ddlmZ deeef         defd	Zd
edefdZdeeeef                  dee         fdZdedefdZdedee         fdZdedefdZdS )    )AnyListOptionalUnion)	PDFObjRef)	PSLiteralPDFDocEncoding   )MalformedPDFExceptionsreturnc                    t          | t                    r.|                     d          rt          | dd         dd          S 	 d | D             }d                    d |D                       S # t
          $ r t          |           cY S w xY w)	zg
    Decodes a PDFDocEncoding string to Unicode.
    Adds py3 compatibility to pdfminer's version.
    s      Nzutf-16beignorec              3   b   K   | ]*}t          |t                    rt          |          n|V  +d S N)
isinstancestrord).0cs     Y/var/www/html/analyses/venv/lib/python3.11/site-packages/pdfplumber/utils/pdfinternals.py	<genexpr>zdecode_text.<locals>.<genexpr>   s;      ??*Q,,3A!??????     c              3   0   K   | ]}t           |         V  d S r   r	   )r   os     r   r   zdecode_text.<locals>.<genexpr>   s'      77Q~a(777777r   )r   bytes
startswithr   join
IndexError)r   ordss     r   decode_textr$   
   s    
 !U 0[ 9 9 01QRR5*h///??Q???ww77$777777   1vvs   *A0 0BBobjc                    t          | d          r|                                 } t          | t                    r"t          t	          t
          |                     S t          | t                    rt          | j                  S t          | t          t          f          rt          |           S t          | t                    r.|                                 D ]\  }}t          |          | |<   | S | S )z(Recursively resolve the metadata values.resolve)hasattrr'   r   listmapresolve_and_decoder   r$   namer   r   dictitems)r%   kvs      r   r+   r+      s    sI kkmm#t 	C*C00111	C	#	# 38$$$	C#u	&	& 3	C		 IIKK 	+ 	+DAq'**CFF
Jr   _listc                     d | D             S )Nc                 d    g | ]-}t          |t                    rt          |j                  n|.S  )r   r   r$   r,   )r   values     r   
<listcomp>z#decode_psl_list.<locals>.<listcomp>+   sF        $.eY#?#?JEJU  r   r4   )r1   s    r   decode_psl_listr7   *   s#        r   xc                 X    t          | t                    r|                                 S | S r   )r   r   r'   )r8   s    r   r'   r'   1   s'    !Y yy{{r   dc                     t          | t                    sd S |                     d          }t          |t                    rt	          |j                  S |S )NType)r   r-   getr   r$   r,   )r:   ts     r   get_dict_typer?   8   sO    a t	fA!Y 16"""r   c                    t          | t                    rZ|                                 }t          |          dk    r| S 	 t	          |          S # t
          $ r}t          |          d}~ww xY wt          | t          t          f          r" t          |           d | D                       S t          | t                    r8t          |           dk    rdgng fd|                                 D             S | S )zF
    Recursively resolves the given object and all the internals.
    PageNc              3   4   K   | ]}t          |          V  d S r   resolve_all)r   r0   s     r   r   zresolve_all.<locals>.<genexpr>R   s(      11!{1~~111111r   AnnotParentc                 B    i | ]\  }}||v r|nt          |          S r4   rC   )r   r/   r0   
exceptionss      r   
<dictcomp>zresolve_all.<locals>.<dictcomp>U   s1    RRR1Z11[^^RRRr   )r   r   r'   r?   rD   RecursionErrorr   r)   tupletyper-   r.   )r8   resolvederH   s      @r   rD   rD   B   s    !Y 99;; ""f,,H	+x((( 	+ 	+ 	+'***	+	Ae}	%	% tAww11q111111	At		 #0#3#3w#>#>hZZB
RRRR		RRRRs   A 
A.A))A.N)typingr   r   r   r   pdfminer.pdftypesr   pdfminer.psparserr   pdfminer.utilsr
   rH   r   r   r   r$   r+   r7   r'   r?   rD   r4   r   r   <module>rS      sf   - - - - - - - - - - - - ' ' ' ' ' ' ' ' ' ' ' ' ) ) ) ) ) ) - - - - - -5$     C C    $4in 56 49    s s    S Xc]    3 3      r   