
    ,h59                     H   U d dl 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 ddlmZmZ ddlmZ ddlmZ dd	lmZmZmZ d
ededede	eee
eeeef   f   eef   fdZdd e e ed      dgdz              i fZe	eee
eeeef   f   eeef   f   ed<   dddddddZ eeef   ed<   i ddddddddddd dd!dd"dd#d$d%d$d&d$d'd$d(d)d*d)d+d)d,d)d-d)d.diZ!eeef   ed/<   d0ed1ede	e
eeeef   f   ef   fd2Z"d0ed1ede	eeef   eee   f   fd3Z#d0ede$fd4Z%d5e$d6e&d7e&d8e
de	eef   f   d9eeef   d:ee   de	e&e&e
de	eef   f   f   fd;Z'd5e$d9eeef   d:ee   d8e
de	eef   f   de
de	eef   f   f
d<Z(d5e$d9eeef   d:ee   ddfd=Z)d0ed1ededefd>Z*y)?    N)	unhexlify)ceil)AnyDictListTupleUnioncast   )adobe_glyphscharset_encoding)logger_warning)PdfReadWarning)DecodedStreamObjectDictionaryObjectStreamObject	font_namespace_widthobjreturnc                 D   |d   d   |    }t        t        |d         }d}t        ||      \  }}t        ||      \  }}}|dk(  rd|vs|d   dk(  rd}n.d	}n+t	        |t
              r|D ]  }	|	d
k  s	t        |	      ||	<    	 t        t        t        |d            }t	        |t              r	 |j                  d      d   }
n|}
t        ||
|      }|t        |dz        |||fS # t        $ r Y Sw xY w# t        $ r" |j                  d	      }
|
d   d|
d   z  z   }
Y Yw xY w)zDetermine information about a font.

    This function returns a tuple consisting of:
    font sub-type, space_width/2, encoding, map character-map, font-dictionary.
    The font-dictionary itself is suitable for the curious.z
/Resourcesz/Font/Subtype     r   charmap	utf-16-be   	/BaseFontr         )r
   strparse_encodingparse_to_unicode
isinstancedictchr_default_fonts_space_width	Exceptionencodecompute_space_widthfloat)r   r   r   ft	font_type
space_codeencodingmap_dict	int_entryxspsp_widths               N/var/www/html/Resume-Scraper/venv/lib/python3.12/site-packages/PyPDF2/_cmap.pybuild_char_mapr7      sk    |,W5i@B#r*~.IJ)"j9Hj&6r:&F#Hj) 2~X"!2 !H"H 
Hd	# 	%ACx!!f	%0c2k?1KL *c"	%""9-a0B
 "2r;7H 	hl
     	%"";/BAr!u$B	%s$   C% .C4 %	C10C14(DDUnknowni'  r    u   �unknown_char_mapr   gbkgb2312)z/Identity-Hz/Identity-Vz	/GB-EUC-Hz	/GB-EUC-Vz/GBpc-EUC-Hz/GBpc-EUC-V_predefined_cmapz	/CourrieriX  z/Courier-Boldz/Courier-BoldObliquez/Courier-Obliquez
/Helveticai  z/Helvetica-Boldz/Helvetica-BoldObliquez/Helvetica-Obliquez/Helvetica-Narrow   z/Helvetica-NarrowBoldz/Helvetica-NarrowBoldObliquez/Helvetica-NarrowObliquez/Times-Roman   z/Times-Boldz/Times-BoldItalicz/Times-Italicz/Symbolz/ZapfDingbatsr(   r-   r/   c                    g }d| vrs	 d| v rPt        t        | d         t        v r7t        t	        t        d      t        t        t        | d                        }nd}|t        t        t        | d            fS | d   j                         }t        |t              r?	 |t        v rt        |   j                         }n|t        v r
t        |   }nt        d      nUt        |t              r.d|v r*	 t        t        t        |d            j                         }nt        d   j                         }d|v rMd}t        t        t        t        |      d         D ]'  }t        |t               r|}	 t"        |   ||<   |dz  }) t        |t$              rt        t	        t        d      |            }||fS # t        $ r# t        t        | d         dk(  rd|fcY S d|fcY S w xY w# t        $ r# t        j                  d	| d
t               |}Y w xY w# t        $ r9 t        j                  d	| d
t               t        d   j                         }Y "w xY w# t        $ r |||<   |dk(  r|}Y w xY w)Nz	/Encodingr   r    r   r   z/Type1r   z	not foundzAdvanced encoding z not implemented yetz/BaseEncodingz/StandardCodingz/Differencesr    r   )r
   r"   r   r&   zipranger(   r)   
get_objectr%   copyr<   warningswarnr   r   intr   list)r-   r/   r0   encr3   os         r6   r#   r#   q   s    79H"	&b T#r+%?CS%Sc
$4T#r+5O$PQ %7S"[/8RSSS )+;(B(B(DC#s	&&+C0557((+C0,, 
C)	*#/E	B'S#o2F(GHMMOH $$56;;=&-=s(CN(ST 
	A!S!'".q/HQK
 Q
	 (D!E#J12Za  	&CJ(H4 *,,:~%		&  	MM$SE)=> H	  	BMM$XJ.BC ((9:??AH	B" ! '"#HQKCx%&
'sN   A1F4 =G# 1(H /I4#G G G #)HH>III/.I/c           	          i }g }d| vri |g fS d}d}d }t        |       }|j                  d      D ]%  }t        |j                  d      |||||      \  }}}' |j	                         D ]  \  }	}
|
dk(  s|	} |||fS )N
/ToUnicodeF   
    r@   )
prepare_cmsplitprocess_cm_linestripitems)r-   r/   r1   r2   
process_rgprocess_charmultiline_rgcmlavalues              r6   r$   r$      s    
  "H I2:r!!JL 	  
BBXXe_ 
1@GGDM:|\8Y2
.
L,

 NN$ 5C<J Z**    c                 L   | d   }t        |t              r"t        t        | d         j	                         }n#t        |t
              r|j                  d      rd}t        t
              r|j                         }|j                         j                  dd      j                  dd      j                  dd	      j                  d
d      j                  dd      j                  dd      }|j                  d      }t        t        |            D ]P  }||   j                  d      }|dk\  s|dk(  rd}n||   d | j                  dd      }|dz   ||   |dz   d  z   ||<   R dj                  |      j                  dd      j                  dd      j                  dd      }|S )NrL   z	/Identitys,   beginbfrange
<0000> <0001> <0000>
endbfrange   beginbfchars   
beginbfchar
	   endbfchars   
endbfchar
   beginbfranges   
beginbfrange

   endbfranges   
endbfrange
s   <<s   
{
s   >>s   
}
   <   >r      .rN   r[   r      [s    [    ]s    ]
    rM   )r%   r   r
   r   get_datar"   
startswithr*   rR   replacerP   rB   lenfindjoin)r-   turW   llijcontents          r6   rO   rO      s   	L	B"l#%r,'78AAC	B	{!;>"cYY[ 	
	!3	4	/	0	"5	6	 1	2		!		!  
$B3r7^ 	4qEJJt6Av Q%)++D#6dNRU1q57^3BqE	4 
2	v		x	 			  Ir[   rX   rT   rU   rV   r1   r2   c                     | dv s| d   dk(  r|||fS d| v rd}n5d| v rd}n.d| v rd}n'd	| v rd}n |rt        | |||      }n|rt        | ||       |||fS )
N)r[   rN   r   %   r_   Tr`   Fr]   r^   )parse_bfrangeparse_bfchar)rX   rT   rU   rV   r1   r2   s         r6   rQ   rQ      s     	K1Q42:<55!
	!	
	1				$Q)\J	Q),|\11r[   c                 4   | j                  d      D cg c]  }|s|	 }}d}t        t        |d         t        |d               }t        |dz        |d<   d|d   dz  z  }|z|d   }	|d   }
|dd  D ]f  }|dk(  rd	} nt	        |      j                  d
d      |t	        ||	z        j                  |d   dk(  rdnd
d      <   |j                  |	       |	dz  }	h n-t        |d   d      }	t        |d   d      }
|d   dk(  rn|dd  D ]e  }|dk(  rd	} nt	        |      j                  d
d      |t	        ||	z        j                  |d   dk(  rdnd
d      <   |j                  |	       |	dz  }	g nt        |d   d      }dt        dt        |d               z  }d	}|	|
k  rht	        ||z        j                  d
d      |t	        ||	z        j                  |d   dk(  rdnd
d      <   |j                  |	       |	dz  }	|dz  }|	|
k  rh|rd S |	|
fS c c}w )NrN   Fr   r   r!   r   s   %%0%dXre   Tr   surrogatepassr      rd         )rP   maxrj   r   r   decodeappendrG   )rX   r1   r2   rV   r3   lstclosure_foundnbifmtrY   bsqcfmt2s                 r6   rt   rt     s    ggdm
)q1
)C
)M
c#a&k3s1v;
'Ca=HRL
x|a'
(COOab' 	BTz $ "$$[/B #'"))!)"!2I# QFA	 AOAOq6T>!"g :$(M bM((oF cAg&--%-b\Q%6	K'   #Q CFBAs1c#a&k22D Mq& dQh'..{OL cAg&--%-b\Q%6	K'   #QQ q& !4,q!f,e *s
   HHc                    | j                  d      D cg c]  }|s|	 }}t        |d         dz  |d<   t        |      dkD  rd}|d   dk7  r1t        |d         j                  t        |d         dk  rd	nd
d      }||t        |d         j                  |d   dk(  rd	nd
d      <   |j	                  t        |d   d             |dd  }t        |      dkD  ry y c c}w )NrN   r   r!   r   r   r   rc   rz   r   r   rw   rx   )rP   rj   r   r|   r}   rG   )rX   r1   r2   r3   r~   map_tos         r6   ru   ru   I  s    ggdm
)q1
)C
)s1v;!#HRL
c(Q,q6T>s1v&-- Q[1_	+F 	 	c!f$$%b\Q.	K	

 	SVR)!"g c(Q, *s
   CCc                    |dz  }g }i }d}d| v r| d   d   j                         }	 t        t        |d         |d<   d|v rt	        |d         }ng }t        |      dkD  r|d   }|d   }t        |t              rt        ||      D ]
  }	|d   ||	<    |d	d  }nLt        |t              r|D ]  }
|
||<   |dz  } |dd  }n%t        d
|d   j                         z   t               nt        |      dkD  r	 ||   }|S d| v rjt	        | d         }	 t        t        | d         }t        t        | d         }||kD  s||k  rt        d      |||z
     dk(  rt        d      |||z
     }|S |S # t        $ r	 d|d<   Y @w xY w# t        $ r |d   dz  }Y |S w xY w# t        $ rU d| v r dt        t        | d         v r| d   d   }Y |S d}d}|D ]  }	|	dkD  s	||	z  }|dz  } |t        d|      z  dz  }Y |S w xY w)Nr!   r   z/DescendantFontsz/DWr   g     @@z/Wr   ry   zunknown widths : 
g       @z/Widthsz
/FirstCharz	/LastCharzNot in rangez
null widthz/FontDescriptorz/MissingWidth)rC   r
   r,   r)   rH   rj   r%   rG   rB   r   __repr____name__r   r{   )r-   r/   r   r5   ww1stft1secondr3   yenmcpts                 r6   r+   r+   \  s    "AoH
A	BBR#$Q'224	%U,BrF 3;SYAA!fqj1BqTF&#&r6* !AaDBqE!abEFD) ABrF!GB abE)SY,@,@,BB # !fqj$	*~H: O1 
bI	/c2l+,B3;0BJ"z///b!Q&--b)H O8Om  	BrF	4  	2 6 O9	  	/ B&?d "%6"7? , /0A O  !A1uQq! s1c{?Q.O	/sB   E, 5F AF ,E>=E>FF*G7G7G76G7)+rE   binasciir   mathr   typingr   r   r   r   r	   r
   _codecsr   r   _utilsr   errorsr   genericr   r   r   r"   r,   rG   r7   r&   rA   rB   r9   __annotations__r<   r(   r#   r$   bytesrO   boolrQ   rt   ru   r+    r[   r6   <module>r      s      6 6 3 " " H H77!&7-=7
c4S>)*D2BB7x U3Z%3	'(	S %UE#tCH~*=$>S#XNO  $ $sCx. ..S. C. 	.
 #. s. c. #. . S. #C. . C. 3. .  S!." s#.$ S%. DcN ,= = &)= 
5d38n$%s*+= @++&)+
4S>3S	)*+:$# $ $N222 2 eCHo-.	2
 38n2 Cy2 4uT5c?2334228-8-38n8- Cy8- eCHo-.	8-
 4sCx !8-vE T#s(^ S	 d &AA&)A8=A
Ar[   