
    Ng                         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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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/ai-engine/env/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   r2   )r/   s    r   decode_psl_listr5   (   s#        r   xc                 X    t          | t                    r|                                 S | S r   )r   r   r%   )r6   s    r   r%   r%   /   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*   )r8   ts     r   get_dict_typer=   6   sO    a t	fA!Y 16"""r   c                    t          | t                    r8|                                 }t          |          dk    r| S t	          |          S 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.
    Pagec              3   4   K   | ]}t          |          V  d S r   resolve_all)r   r.   s     r   r   zresolve_all.<locals>.<genexpr>M   s(      11!{1~~111111r   AnnotParentc                 B    i | ]\  }}||v r|nt          |          S r2   rA   )r   r-   r.   
exceptionss      r   
<dictcomp>zresolve_all.<locals>.<dictcomp>P   s1    RRR1Z11[^^RRRr   )
r   r   r%   r=   rB   r'   tupletyper+   r,   )r6   resolvedrF   s     @r   rB   rB   @   s     !Y 99;; ""f,,H8$$$	Ae}	%	% tAww11q111111	At		 #0#3#3w#>#>hZZB
RRRR		RRRRr   N)typingr   r   r   r   pdfminer.pdftypesr   pdfminer.psparserr   pdfminer.utilsr
   r   r   r"   r)   r5   r%   r=   rB   r2   r   r   <module>rO      sT   - - - - - - - - - - - - ' ' ' ' ' ' ' ' ' ' ' ' ) ) ) ) ) )5$     C C    $4in 56 49    s s    S Xc]    3 3      r   