§
    šŒÃi°7  ã                   ó   — d dl mZ d dlmZmZ d dlmZmZmZ d dl	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  ed
¬¦  «         G d„ d¦  «        ¦   «         Z ed
¬¦  «         G d„ d¦  «        ¦   «         Ze G d„ d¦  «        ¦   «         ZdS )é    )ÚSequence)Ú	dataclassÚfield)ÚAnyÚUnionÚcast)ÚArrayObjectÚDictionaryObjectÚ
NameObjecté   )Úget_encoding©Úadobe_glyphs)Úlogger_warning)Ú	FontFlagsT)Úfrozenc                   óÊ   — e Zd ZU dZdZeed<   dZeed<   dZeed<   dZ	e
ed<   dZe
ed	<   d
Ze
ed<   dZe
ed<   dZe
ed<   dZeed<    ed„ ¬¦  «        Zee
e
e
e
f         ed<   dS )ÚFontDescriptorzï
    Represents the FontDescriptor dictionary as defined in the PDF specification.
    This contains both descriptive and metric information.

    The defaults are derived from the mean values of the 14 core fonts, rounded
    to 100.
    ÚUnknownÚnameÚfamilyÚweightg     à…@Úascentç      iÀÚdescentg     À‚@Ú
cap_heightg     @@Úx_heightç        Úitalic_angleé    Úflagsc                  ó   — dS )N)g      YÀr   g     @�@g      Œ@© r#   ó    úU/var/www/html/jarvis.com/web/backend/venv/lib/python3.11/site-packages/pypdf/_font.pyú<lambda>zFontDescriptor.<lambda>!   s   € ÐLk€ r$   ©Údefault_factoryÚbboxN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   ÚstrÚ__annotations__r   r   r   Úfloatr   r   r   r   r!   Úintr   r)   Útupler#   r$   r%   r   r      sÚ   € € € € € € ðð ð €Dˆ#ÐÐÑØ€FˆCÐÐÑØ€FˆCÐÐÑà€FˆEÐÐÑØ€GˆUÐÐÑØ€J�ÐÐÑØ€HˆeÐÐÑØ€L�%ÐÐÑØ€Eˆ3€O€O�OØ.3¨eÐDkÐDkÐ.lÑ.lÔ.l€Dˆ%��u˜e UÐ*Ô
+ÐlÐlÑlÐlÐlr$   r   c                   ó4   — e Zd ZU eed<   eeef         ed<   dS )ÚCoreFontMetricsÚfont_descriptorÚcharacter_widthsN)r*   r+   r,   r   r/   Údictr.   r1   r#   r$   r%   r4   r4   $   s2   € € € € € € à#Ð#Ð#Ñ#Ø˜3 ˜8”nÐ$Ð$Ñ$Ð$Ð$r$   r4   c                   ó`  — e Zd ZU dZeed<   eeeeef         f         ed<    e	e¬¦  «        Z
eeef         ed<   dZeed<    e	e¬¦  «        Zeed<    e	d	„ ¬¦  «        Zeeef         ed
<   dZeeef         ed<   dZeed<   ededeeef         deeeeef         f         deeef         ddf
d„¦   «         Zededeeef         deeef         ddfd„¦   «         Zedeeef         deddfd„¦   «         Zededeeef         fd„¦   «         Zededd fd„¦   «         Zdefd„Zd dedefd„ZdS )!ÚFontaÈ  
    A font object for use during text extraction and for producing
    text appearance streams.

    Attributes:
        name: Font name, derived from font["/BaseFont"]
        character_map: The font's character map
        encoding: Font encoding
        sub_type: The font type, such as Type1, TrueType, or Type3.
        font_descriptor: Font metrics, including a mapping of characters to widths
        character_widths: A mapping of characters to widths
        space_width: The width of a space, or an approximation
        interpretable: Default True. If False, the font glyphs cannot
            be translated to characters, e.g. Type3 fonts that do not define
            a '/ToUnicode' mapping.

    r   Úencodingr'   Úcharacter_mapr   Úsub_typer5   c                  ó
   — ddiS )NÚdefaultéô  r#   r#   r$   r%   r&   zFont.<lambda>C   s   € ÀiÐQTÐEU€ r$   r6   éú   Úspace_widthTÚinterpretableÚpdf_font_dictÚchar_mapÚcurrent_widthsÚreturnNc                 óì  ‡‡
— t          t          | d         ¦  «        }|                      dd¦  «        Š
t          ‰t          ¦  «        s1|                     ˆˆ
fd„t          |¦  «        D ¦   «         ¦  «         dS t          |¦  «        D ]j\  }}|‰
z   }t          |g¦  «                             ‰d¦  «        }|                     |¦  «        }	|	rt          |¦  «        ||	<   ŒXt          |¦  «        ||<   ŒkdS )zcParses a TrueType or Type1 font's /Widths array from a font dictionary and updates character widthsú/Widthsz
/FirstCharr   c           	      ój   •— i | ]/\  }}‰                      |‰z   t          |‰z   ¦  «        ¦  «        |“Œ0S r#   )ÚgetÚchr)Ú.0ÚidxÚwidthr:   Ú
first_chars      €€r%   ú
<dictcomp>z8Font._collect_tt_t1_character_widths.<locals>.<dictcomp>S   sO   ø€ ð #ð #ð #á�C˜ð —’˜S :Ñ-­s°3¸Ñ3CÑ/DÔ/DÑEÔEÀuð#ð #ð #r$   NÚsurrogatepass)
r   r	   rJ   Ú
isinstancer.   ÚupdateÚ	enumerateÚbytesÚdecoder1   )rC   rD   r:   rE   Úwidths_arrayrM   rN   Ú	char_codeÚraw_charÚunicode_charrO   s     `       @r%   Ú_collect_tt_t1_character_widthsz$Font._collect_tt_t1_character_widthsG   s"  øø€ õ �K¨°yÔ)AÑBÔBˆØ"×&Ò& |°QÑ7Ô7ˆ
Ý˜(¥CÑ(Ô(ð 	à×!Ò!ð #ð #ð #ð #ð #å"+¨LÑ"9Ô"9ð#ñ #ô #ñ ô ð ð ˆFõ $ LÑ1Ô1ð 
	6ð 
	6‰JˆC�à˜jÑ(ˆIå˜i˜[Ñ)Ô)×0Ò0°¸?ÑKÔKˆHà#Ÿ<š<¨Ñ1Ô1ˆLØð 6Ý/2°5©z¬z�˜|Ñ,Ð,å+.¨u©:¬:�˜xÑ(Ð(ð
	6ð 
	6r$   Úd_fontc                 ó|  ‡‡— d„ |                      ¦   «         D ¦   «         Šd}|                      dg ¦  «        }t          |¦  «        D �]ò\  }}|                     ¦   «         }|r|dz  }Œ"t	          |t
          t          f¦  «        st          d|› d�t          ¦  «         ŒX||dz                                 ¦   «         }t	          |t          ¦  «        r|||}	}| 
                    ˆfd„t          t          t          t
          |¦  «        t          t
          |¦  «        t          |	¦  «        z   d¦  «        |	¦  «        D ¦   «         ¦  «         d}�Œt	          |t
          t          f¦  «        r·t	          ||dz                                 ¦   «         t
          t          f¦  «        r€||||dz                                 ¦   «         c}}
Š| 
                    ˆˆfd	„t          t          t
          |¦  «        t          t
          |
dz   ¦  «        d¦  «        D ¦   «         ¦  «         d}�ŒÙt          d
|› d�t          ¦  «         �ŒôdS )zRParses the /W array from a DescendantFont dictionary and updates character widths.c                 ó^   — i | ]*\  }}t          |t          ¦  «        ¯t          |¦  «        |“Œ+S r#   )rR   r.   Úord)rL   Ú_targetÚ
_surrogates      r%   rP   z6Font._collect_cid_character_widths.<locals>.<dictcomp>l   sD   € ð 
ð 
ð 
á#�˜Ý˜'¥3Ñ'Ô'ð
Ý�‰LŒL˜*ð
ð 
ð 
r$   r   z/Wr   z&Expected numeric value for width, got z. Ignoring it.c                 ó0   •— i | ]\  }}|‰v ¯	‰|         |“ŒS r#   r#   )rL   Ú_cidxÚ_widthÚord_maps      €r%   rP   z6Font._collect_cid_character_widths.<locals>.<dictcomp>‡   s<   ø€ ð ð ð á)˜E 6ð ! GÐ+Ð+ð   œ¨ð ,Ð+Ð+r$   é   c                 ó*   •— i | ]}|‰v ¯‰|         ‰“ŒS r#   r#   )rL   rc   Úconst_widthre   s     €€r%   rP   z6Font._collect_cid_character_widths.<locals>.<dictcomp>Ÿ   s8   ø€ ð ð ð à!ð ! GÐ+Ð+ð	   œ¨ð ,Ð+Ð+r$   z-Invalid font width definition. Last element: ú.N)ÚitemsrJ   rT   Ú
get_objectrR   r1   r0   r   r*   r   rS   ÚzipÚranger   Úlen)r\   rD   rE   Ú
skip_countÚ_wrM   Úw_entryÚw_next_entryÚ	start_idxÚ
width_listÚstop_idxrh   re   s              @@r%   Ú_collect_cid_character_widthsz"Font._collect_cid_character_widthsg   s•  øø€ ð

ð 
à'/§~¢~Ñ'7Ô'7ð
ñ 
ô 
ˆð ˆ
Ø�ZŠZ˜˜bÑ!Ô!ˆÝ% b™MœMð 6	ñ 6	‰LˆC�Ø×(Ò(Ñ*Ô*ˆGØð Ø˜a‘�
ØÝ˜g­­U |Ñ4Ô4ð õ Ð_ÈÐ_Ð_Ð_ÕaiÑjÔjÐjØà˜c A™gœ;×1Ò1Ñ3Ô3ˆLÝ˜,­Ñ1Ô1ð *Ø(/°˜:�	Ø×%Ò%ðð ð ð å-0Ý!Ý $¥S¨)Ñ 4Ô 4Ý $¥S¨)Ñ 4Ô 4µs¸:±´Ñ FØ !ñô ð
 'ñ.ô .ðñ ô ñô ð ð �
‘
å˜L­3µ¨,Ñ7Ô7ð ½JØ�3˜‘7”×&Ò&Ñ(Ô(­3µ¨,ñ=ô =ð ð Ø Ø�s˜Q‘w”K×*Ò*Ñ,Ô,ð 1�	˜8 [ð
 ×%Ò%ðð ð ð ð å%*Ý ¥ iÑ0Ô0µ$µs¸HÀq¹LÑ2IÔ2IÈ1ñ&ô &ðñ ô ñô ð ð �
‘
õ ØNÀGÐNÐNÐNÝñô ð ñ ðg6	ð 6	r$   r!   c                 óN  — | sd| d<   d S d| v rS| d         dk    rG|t           j        z  t           j        k    r| d         | d<   d S t          d| d         z  ¦  «        | d<   d S d„ |                      ¦   «         D ¦   «         }|rt	          |¦  «        t          |¦  «        z  nd| d<   d S )Nr?   r>   ú r   rf   c                 ó   — g | ]
}|d k    ¯|‘ŒS )r   r#   )rL   Úws     r%   ú
<listcomp>z+Font._add_default_width.<locals>.<listcomp>À   s   € ÐDÐDÐD˜a¸aÀ!ºe¸e˜¸e¸e¸er$   )r   ÚFIXED_PITCHr1   ÚvaluesÚsumrn   )rE   r!   Úvalid_widthss      r%   Ú_add_default_widthzFont._add_default_width°   sÐ   € àð 	Ø(+ˆN˜9Ñ%ØˆFà�.Ð Ð  ^°CÔ%8¸AÒ%=Ð%=à�	Ô-Ñ-µ)Ô2GÒGÐGØ,:¸3Ô,?�˜yÑ)Ø�å(+¨A°¸sÔ0CÑ,CÑ(DÔ(DˆN˜9Ñ%ØˆFð EÐD >×#8Ò#8Ñ#:Ô#:ÐDÑDÔDˆØNZÐ$c¥C¨Ñ$5Ô$5½¸\Ñ9JÔ9JÑ$JÐ$JÐ`cˆ�yÑ!Ð!Ð!r$   Úfont_descriptor_objc                 óÔ   — i }dD ]\  }}|| v r| |         ||<   Œd|v rJt          t          t          |d         ¦  «        ¦  «        }t          |¦  «        dk    s
J |¦   «         ‚||d<   |S )N)
)z	/FontNamer   )z/FontFamilyr   )z/FontWeightr   )z/Ascentr   )z/Descentr   )z
/CapHeightr   )z/XHeightr   )z/ItalicAngler   )z/Flagsr!   )ú	/FontBBoxr)   r)   é   )r2   Úmapr0   rn   )r�   Úfont_descriptor_kwargsÚ
source_keyÚ
target_keyÚ
bbox_tuples        r%   Ú_parse_font_descriptorzFont._parse_font_descriptorÃ   s˜   € à13Ðð'
ð 	Uð 	UÑ"ˆJ˜
ð Ð0Ð0Ð0Ø5HÈÔ5TÐ& zÑ2øàÐ+Ð+Ð+Ý�s¥5Ð*@ÀÔ*HÑIÔIÑJÔJˆJÝ�z‘?”? aÒ'Ð'Ð'¨Ñ'Ô'Ð'Ø-7Ð" 6Ñ*Ø%Ð%r$   c           
      óp  — ddl m} |                     dd¦  «                             d¦  «        }|                     dd¦  «                             d¦  «        }t	          |¦  «        \  }}d }i }d}	|                     d¦  «        dv �rr|d	k    r2d
|vr.t          d„ |                     d¦  «        pg D ¦   «         ¦  «        }	|	�r5d|v r|                      ||||¦  «         n||v r||         j        }||         j        }d|v r‰|                     dt          ¦   «         ¦  «         
                    ¦   «         }
d|
v r0t          t          |
d          
                    ¦   «         ¦  «        |d<   t          di |                      |
¦  «        ¤Ž}�n€d|v rit          t!          t"          t          t$          |d         ¦  «        ¦  «        ¦  «        }t'          |¦  «        dk    s
J |¦   «         ‚t          ||¬¦  «        }�nt)          t          t$          |d         ¦  «        ¦  «        D ]è\  }}t          t          | 
                    ¦   «         ¦  «        }|t          t$          |d         ¦  «        |<   |                      |||¦  «         d|v r0t          t          |d          
                    ¦   «         ¦  «        |d<   |                     dt          ¦   «         ¦  «         
                    ¦   «         }
t          di |                      |
¦  «        ¤Ž}Œé|st          |¬¦  «        }|                     dd¦  «        dk    r|                      ||j        ¦  «         |                     dd¦  «        }|dk    r6|j        t0          j        z  t0          j        k    r	|d         }n|d         dz  } | ||||||||	¬¦  «        S )Nr   )ÚCORE_FONT_METRICSú	/BaseFontr   ú/ú/SubtypeT)ú/Type1z/MMType1z	/TrueTypez/Type3ÚType3z
/ToUnicodec              3   ó(   K  — | ]}|t           v V — Œd S )Nr   )rL   Úcnames     r%   ú	<genexpr>z*Font.from_font_resource.<locals>.<genexpr>ñ   s;   è è € ð $ð $àð �\Ð)ð$ð $ð $ð $ð $ð $r$   z
/CharProcsrH   z/FontDescriptorz/MissingWidthr>   rƒ   r„   )r   r)   z/DescendantFontsz/DW)r   rx   rf   )r   r<   r:   r5   r;   r6   rA   rB   r#   )Úpypdf._codecs.core_font_metricsrŒ   rJ   Úremoveprefixr   Úallr[   r5   r6   r
   rk   r   r1   r   rŠ   r2   r…   r0   r	   rn   rT   rv   r€   r!   r   r|   )ÚclsrC   rŒ   r   r<   r:   r;   r5   r6   rB   r�   r‰   Ú
d_font_idxr\   rA   s                  r%   Úfrom_font_resourcezFont.from_font_resourceÛ   s$  € ð
 	FÐEÐEÐEÐEÐEð × Ò  ¨iÑ8Ô8×EÒEÀcÑJÔJˆØ ×$Ò$ Z°Ñ;Ô;×HÒHÈÑMÔMˆÝ".¨}Ñ"=Ô"=Ñˆ�-ØˆØ+-ÐØˆð ×Ò˜ZÑ(Ô(Ð,YÐYÑYð
 ˜7Ò"Ð" |¸=Ð'HÐ'HÝ #ð $ð $à!.×!2Ò!2°<Ñ!@Ô!@Ð!FÀBð$ñ $ô $ñ !ô !�ð ñ QØ Ð-Ð-Ø×7Ò7Ø% }°hÐ@Pñô ð ð ð Ð.Ð.Ð.Ø&7¸Ô&=Ô&M�OØ'8¸Ô'>Ô'OÐ$Ø$¨Ð5Ð5Ø*7×*;Ò*;Ð<MÕO_ÑOaÔOaÑ*bÔ*b×*mÒ*mÑ*oÔ*oÐ'Ø&Ð*=Ð=Ð=Ý6:½3Ð@SÐTcÔ@d×@oÒ@oÑ@qÔ@qÑ6rÔ6rÐ(¨Ñ3Ý&4Ð&gÐ&g°s×7QÒ7QÐReÑ7fÔ7fÐ&gÐ&g�O‘OØ  MÐ1Ð1å!&¥s­5µ$µ{ÀMÐR]ÔD^Ñ2_Ô2_Ñ'`Ô'`Ñ!aÔ!a�JÝ˜z™?œ?¨aÒ/Ð/Ð/°Ñ/Ô/Ð/Ý&4¸$ÀZÐ&PÑ&PÔ&P�Oùõ '0Ý•[ -Ð0BÔ"CÑDÔDñ'ô 'ð dð dÑ"�
˜Fõ Õ.°×0AÒ0AÑ0CÔ0CÑDÔD�ØSY••[ -Ð0BÔ"CÑDÔDÀZÑPØ×1Ò1Ø˜MÐ+;ñô ð ð ˜F�?�?Ý26µs¸FÀ5¼M×<TÒ<TÑ<VÔ<VÑ2WÔ2WÐ$ YÑ/Ø&,§j¢jÐ1BÕDTÑDVÔDVÑ&WÔ&W×&bÒ&bÑ&dÔ&dÐ#Ý"0Ð"cÐ"c°3×3MÒ3MÐNaÑ3bÔ3bÐ"cÐ"c��àð 	8Ý,°$Ð7Ñ7Ô7ˆOà×Ò 	¨1Ñ-Ô-°Ò2Ð2Ø×"Ò"Ð#3°_Ô5JÑKÔKÐKØ&×*Ò*¨3°Ñ2Ô2ˆØ˜!ÒÐØÔ%­	Ô(=Ñ=Å)ÔBWÒWÐWØ.¨yÔ9��à.¨yÔ9¸QÑ>�àˆsØØØØ+Ø'Ø-Ø#Ø'ð	
ñ 	
ô 	
ð 		
r$   c                 óX  — t          t          d¦  «        t          d¦  «        t          d¦  «        t          d| j        › �¦  «        t          d¦  «        t          d¦  «        t          d¦  «        t          d| j        › �¦  «        t          d¦  «        t          d	¦  «        i¦  «        S )
Nr�   r�   z/NamerŽ   z/Typez/Fontr�   z	/Encodingz/WinAnsiEncoding)r
   r   r   )Úselfs    r%   Úas_font_resourcezFont.as_font_resource1  s•   € õ Ý˜:Ñ&Ô&­
°8Ñ(<Ô(<Ý˜7Ñ#Ô#¥Z°°D´I°°Ñ%@Ô%@Ý˜7Ñ#Ô#¥Z°Ñ%8Ô%8Ý˜;Ñ'Ô'­°O¸¼	°O°OÑ)DÔ)DÝ˜;Ñ'Ô'­Ð4FÑ)GÔ)Gðñ ô ð	
r$   Ú Útextc                 ó<   ‡ — t          ˆ fd„|D ¦   «         d¦  «        S )zDSum of character widths specified in PDF font for the supplied text.c                 ó\   •— g | ](}‰j                              |‰j         d          ¦  «        ‘Œ)S )r>   )r6   rJ   )rL   Úcharrœ   s     €r%   r{   z#Font.text_width.<locals>.<listcomp>@  s5   ø€ Ð`Ð`Ð`ÐSWˆTÔ"×&Ò& t¨TÔ-BÀ9Ô-MÑNÔNÐ`Ð`Ð`r$   r   )r~   )rœ   rŸ   s   ` r%   Ú
text_widthzFont.text_width=  s0   ø€ åØ`Ð`Ð`Ð`Ð[_Ð`Ñ`Ô`Ðbeñ
ô 
ð 	
r$   )rž   )r*   r+   r,   r-   r.   r/   r   r7   r1   r   r;   r   r<   r   r5   r6   rA   r0   rB   ÚboolÚstaticmethodr
   r[   rv   r€   rŠ   Úclassmethodrš   r�   r£   r#   r$   r%   r9   r9   *   s°  € € € € € € ðð ð$ €I€I�IØ�C˜˜c 3˜hœÐ'Ô(Ð(Ð(Ñ(Ø$) E¸$Ð$?Ñ$?Ô$?€M�4˜˜S˜”>Ð?Ð?Ñ?Ø€HˆcÐÐÑØ&+ e¸NÐ&KÑ&KÔ&K€O�^ÐKÐKÑKØ', uÐ=UÐ=UÐ'VÑ'VÔ'VÐ�d˜3 ˜8”nÐVÐVÑVØ%(€K��u˜c�zÔ"Ð(Ð(Ñ(Ø€M�4ÐÐÑàð6Ø'ð6à�s˜C�x”.ð6ð ˜˜T # s (œ^Ð+Ô,ð6ð ˜S #˜Xœð	6ð
 
ð6ð 6ð 6ñ „\ð6ð> ðFØ ðFØ,0°°c°¬NðFØLPÐQTÐVYÐQYÌNðFà	ðFð Fð Fñ „\ðFðP ðd¨4°°S°¬>ð dÀ#ð dÈ$ð dð dð dñ „\ðdð$ ð&Ð4Dð &ÈÈcÐSVÈhÌð &ð &ð &ñ „\ð&ð. ðS
à'ðS
ð 
ðS
ð S
ð S
ñ „[ðS
ðj

Ð"2ð 

ð 

ð 

ð 

ð
ð 
˜sð 
¨Eð 
ð 
ð 
ð 
ð 
ð 
r$   r9   N)Úcollections.abcr   Údataclassesr   r   Útypingr   r   r   Úpypdf.genericr	   r
   r   Ú_cmapr   Ú_codecs.adobe_glyphsr   Ú_utilsr   Ú	constantsr   r   r4   r9   r#   r$   r%   ú<module>r¯      s‡  ðØ $Ð $Ð $Ð $Ð $Ð $Ø (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ø #Ð #Ð #Ð #Ð #Ð #Ð #Ð #Ð #Ð #à CÐ CÐ CÐ CÐ CÐ CÐ CÐ CÐ CÐ Cà Ð Ð Ð Ð Ð Ø .Ð .Ð .Ð .Ð .Ð .Ø "Ð "Ð "Ð "Ð "Ð "Ø  Ð  Ð  Ð  Ð  Ð  ð €�$ÐÑÔðmð mð mð mð mñ mô mñ Ôðmð, €�$ÐÑÔð%ð %ð %ð %ð %ñ %ô %ñ Ôð%ð
 ðV
ð V
ð V
ð V
ð V
ñ V
ô V
ñ „ðV
ð V
ð V
r$   