§
    ¡”j�X  ã                  óÂ  — d dl mZ 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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dlmZ erd dlmZ d dlmZ d dlm Z  d dl!m"Z" 	 d dl#m$Z$ dZ%n# e&$ r dZ%Y nw xY wdZ'dZ(dZ)dZ*dZ+dZ,dZ-dZ. ed¬¦  «         G d„ d¦  «        ¦   «         Z/ ed¬¦  «         G d„ d¦  «        ¦   «         Z0e G d„ d ¦  «        ¦   «         Z1d!S )"é    )Úannotations)ÚSequence)Ú	dataclassÚfield)ÚTYPE_CHECKINGÚAnyÚcast)ÚArrayObjectÚDictionaryObjectÚ
NameObjectÚNumberObjectÚStreamObjecté   )Úget_encoding©Úadobe_glyphs)Úlogger_warning)Ú	FontFlags)ÚPdfReadError)ÚBytesIO)Útable__h_e_a_d)Útable__p_o_s_t)Útable_O_S_2f_2)ÚTTFontTFé   é   é   é   é	   é
   é   )Úfrozenc                  óÄ   — e Zd ZU dZdZded<   dZded<   dZded<   dZded	<   d
Z	ded<   dZ
ded<   dZded<   dZded<   dZded<    ed„ ¬¦  «        Zded<   dZd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ÚstrÚnameÚfamilyÚweightg     à…@ÚfloatÚascentç      iÀÚdescentg     À‚@Ú
cap_heightg     @@Úx_heightç        Úitalic_angleé    ÚintÚflagsc                 ó   — dS )N)g      YÀr,   ç     @�@g      Œ@© r7   ó    úZ/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/pypdf/_font.pyú<lambda>zFontDescriptor.<lambda><   s   € ÐLk€ r8   ©Údefault_factoryz!tuple[float, float, float, float]ÚbboxNzStreamObject | NoneÚ	font_file)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r'   Ú__annotations__r(   r)   r+   r-   r.   r/   r1   r4   r   r=   r>   r7   r8   r9   r$   r$   (   sæ   € € € € € € ðð ð €DÐÐÐÑØ€FÐÐÐÑØ€FÐÐÐÑà€FÐÐÐÑØ€GÐÐÐÑØ€JÐÐÐÑØ€HÐÐÐÑØ€LÐÐÐÑØ€E€O€O€O�OØ.3¨eÐDkÐDkÐ.lÑ.lÔ.l€DÐlÐlÐlÑlØ%)€IÐ)Ð)Ð)Ñ)Ð)Ð)r8   r$   c                  ó$   — e Zd ZU ded<   ded<   dS )ÚCoreFontMetricsr$   Úfont_descriptorúdict[str, int]Úcharacter_widthsN)r?   r@   rA   rC   r7   r8   r9   rE   rE   @   s*   € € € € € € à#Ð#Ð#Ñ#Ø$Ð$Ð$Ñ$Ð$Ð$r8   rE   c                  óŒ  — e Zd ZU dZded<   ded<    ee¬¦  «        Zded<   d	Zded
<    ee	¬¦  «        Z
ded<    ed„ ¬¦  «        Zded<   dZded<   dZded<   ed7d„¦   «         Zed8d„¦   «         Zed9d!„¦   «         Zed:d"„¦   «         Zed;d%„¦   «         Zed<d&„¦   «         Zed=d-„¦   «         Zed>d0„¦   «         Zd?d1„Zd@dAd5„Zd6S )BÚ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&   r'   ústr | dict[int, str]Úencodingr;   údict[Any, Any]Úcharacter_mapr%   Úsub_typer$   rF   c                 ó
   — ddiS )NÚdefaultéô  r7   r7   r8   r9   r:   zFont.<lambda>_   s   € ÀiÐQTÐEU€ r8   rG   rH   éú   zfloat | intÚspace_widthTÚboolÚinterpretableÚpdf_font_dictr   Úchar_mapÚcurrent_widthsÚreturnÚNonec                óì  ‡‡
— 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 r7   )ÚgetÚchr)Ú.0ÚidxÚwidthrL   Ú
first_chars      €€r9   ú
<dictcomp>z8Font._collect_tt_t1_character_widths.<locals>.<dictcomp>o   sO   ø€ ð #ð #ð #á�C˜ð —’˜S :Ñ-­s°3¸Ñ3CÑ/DÔ/DÑEÔEÀuð#ð #ð #r8   NÚsurrogatepass)
r	   r
   r_   Ú
isinstancer&   ÚupdateÚ	enumerateÚbytesÚdecoder3   )rW   rX   rL   rY   Úwidths_arrayrb   rc   Ú	char_codeÚraw_charÚunicode_charrd   s     `       @r9   Ú_collect_tt_t1_character_widthsz$Font._collect_tt_t1_character_widthsc   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ð 
	6r8   Ú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 r7   )rg   r&   Úord)ra   Ú_targetÚ
_surrogates      r9   re   z6Font._collect_cid_character_widths.<locals>.<dictcomp>ˆ   sD   € ð 
ð 
ð 
á#�˜Ý˜'¥3Ñ'Ô'ð
Ý�‰LŒL˜*ð
ð 
ð 
r8   r   z/Wr   z&Expected numeric value for width, got z. Ignoring it.c                ó0   •— i | ]\  }}|‰v ¯	‰|         |“ŒS r7   r7   )ra   Ú_cidxÚ_widthÚord_maps      €r9   re   z6Font._collect_cid_character_widths.<locals>.<dictcomp>£   s<   ø€ ð ð ð á)˜E 6ð ! GÐ+Ð+ð   œ¨ð ,Ð+Ð+r8   r   c                ó*   •— i | ]}|‰v ¯‰|         ‰“ŒS r7   r7   )ra   rx   Úconst_widthrz   s     €€r9   re   z6Font._collect_cid_character_widths.<locals>.<dictcomp>»   s8   ø€ ð ð ð à!ð ! GÐ+Ð+ð	   œ¨ð ,Ð+Ð+r8   z-Invalid font width definition. Last element: ú.N)Úitemsr_   ri   Ú
get_objectrg   r3   r*   r   r?   r   rh   ÚzipÚranger	   Úlen)rq   rX   rY   Ú
skip_countÚ_wrb   Úw_entryÚw_next_entryÚ	start_idxÚ
width_listÚstop_idxr|   rz   s              @@r9   Ú_collect_cid_character_widthsz"Font._collect_cid_character_widthsƒ   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	r8   r4   r3   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 )NrR   rQ   ú r   r   c                ó   — g | ]
}|d k    ¯|‘ŒS )r   r7   )ra   Úws     r9   ú
<listcomp>z+Font._add_default_width.<locals>.<listcomp>Ü   s   € ÐDÐDÐD˜a¸aÀ!ºe¸e˜¸e¸e¸er8   )r   ÚFIXED_PITCHr3   ÚvaluesÚsumr‚   )rY   r4   Úvalid_widthss      r9   Ú_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Ñ!Ð!Ð!r8   c                óž   — |                       dd¦  «        }|dk    r|S |t          j        z  t          j        k    r| d         S | d         dz  S )NrŒ   r   rQ   r   )r_   r   r�   )rH   r4   rT   s      r9   Ú_add_space_widthzFont._add_space_widthß   sY   € à&×*Ò*¨3°Ñ2Ô2ˆØ˜!ÒÐØÐà•IÔ)Ñ)­iÔ.CÒCÐCØ# IÔ.Ð.à 	Ô*¨aÑ/Ð/r8   Úfont_descriptor_objúdict[str, Any]c           
     ó¾  — i }dD ]\  }}|| v r| |         ||<   Œd|v rJt          t          t          |d         ¦  «        ¦  «        }t          |¦  «        dk    s
J |¦   «         ‚||d<   dD ]r}|| v rld|v rt	          d| › �¦  «        ‚	 | |                              ¦   «         }||d<   Œ=# t          $ r(}t          d|›d| › d	|› �t          ¦  «         Y d }~Œjd }~ww xY wŒs|S )
N)
)z	/FontNamer'   )z/FontFamilyr(   )z/FontWeightr)   )z/Ascentr+   )z/Descentr-   )z
/CapHeightr.   )z/XHeightr/   )z/ItalicAngler1   )z/Flagsr4   )ú	/FontBBoxr=   r=   r   )z	/FontFilez
/FontFile2z
/FontFile3r>   z!More than one /FontFile found in zFailed to get z in z: )ÚtupleÚmapr*   r‚   r   r   r   r?   )r—   Úfont_descriptor_kwargsÚ
source_keyÚ
target_keyÚ
bbox_tupler>   Úes          r9   Ú_parse_font_descriptorzFont._parse_font_descriptorê   sk  € à13Ðð'
ð 	Uð 	UÑ"ˆJ˜
ð Ð0Ð0Ð0Ø5HÈÔ5TÐ& zÑ2øàÐ+Ð+Ð+Ý�s¥5Ð*@ÀÔ*HÑIÔIÑJÔJˆJÝ�z‘?”? aÒ'Ð'Ð'¨Ñ'Ô'Ð'Ø-7Ð" 6Ñ*ð Dð 		lð 		lˆJØÐ0Ð0Ð0ØÐ"8Ð8Ð8Ý&Ð'`ÐK^Ð'`Ð'`ÑaÔaÐaðlØ 3°JÔ ?× JÒ JÑ LÔ L�IØ:CÐ*¨;Ñ7Ð7øÝ#ð lð lð lÝ"Ð#`°JÐ#`Ð#`ÐFYÐ#`Ð#`Ð]^Ð#`Ð#`ÕbjÑkÔkÐkÐkÐkÐkÐkÐkøøøøðløøøð 1ð &Ð%s   ÂB'Â'
CÂ1CÃCc           
     ó  — 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        ¦  «         |                      ||j        ¦  «        } | ||||||||	¬¦  «        S )Nr   )ÚCORE_FONT_METRICSú	/BaseFontr%   ú/ú/SubtypeT)ú/Type1z/MMType1z	/TrueTypez/Type3ÚType3z
/ToUnicodec              3  ó(   K  — | ]}|t           v V — Œd S )Nr   )ra   Úcnames     r9   ú	<genexpr>z*Font.from_font_resource.<locals>.<genexpr>$  s;   è è € ð $ð $àð �\Ð)ð$ð $ð $ð $ð $ð $r8   z
/CharProcsr]   z/FontDescriptorz/MissingWidthrQ   rš   r   )r'   r=   z/DescendantFontsz/DW)r'   ©r'   rO   rL   rF   rN   rH   rT   rV   r7   )Úpypdf._codecs.core_font_metricsr¤   r_   Úremoveprefixr   Úallrp   rF   rH   r   r   r	   r3   r$   r¢   r›   rœ   r*   r
   r‚   ri   rŠ   r”   r4   r–   )ÚclsrW   r¤   r'   rO   rL   rN   rF   rH   rV   r—   r    Ú
d_font_idxrq   rT   s                  r9   Ú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à×*Ò*Ð+;¸_Ô=RÑSÔSˆàˆsØØØØ+Ø'Ø-Ø#Ø'ð	
ñ 	
ô 	
ð 		
r8   Úheaderr   Ú
postscriptr   Úos2r   c                ót  — |r|j         }|j        dz	  }d}| j        t          z  s|r|j        t
          z  r|t          j        z  }|r|j        }|dk    r|t          j        z  }|r|j	        t          k    s|r|j        dk    r|t          j        z  }|r*|t          k    s|j        t          k    r|t          j        z  }|r8d|j        cxk    rdk    sn d|cxk    rdk    sn |dk    r|t          j        z  }|r0|t&          k    s|j        t(          t*          hv r|t          j        z  }n|t          j        z  }|S )	Né   r   r0   r   r    r   r   é   )ÚpanoseÚsFamilyClassÚmacStyleÚHEADER_MACSTYLE_ITALICÚfsSelectionÚOS2_FSSELECTION_ITALICr   ÚITALICÚitalicAngleÚbProportionÚ!OS2_PANOSE_BPROPORTION_MONOSPACEDÚisFixedPitchr�   ÚOS2_SFAMILYSCLASS_SCRIPTSÚbFamilyTypeÚOS2_PANOSE_BFAMILYTYPE_SCRIPTÚSCRIPTÚbSerifStyleÚSERIFÚOS2_SFAMILYSCLASS_SYMBOLICÚ!OS2_PANOSE_BFAMILYTYPE_DECORATIVEÚ OS2_PANOSE_BFAMILYTYPE_PICTORIALÚSYMBOLICÚNONSYMBOLIC)r´   rµ   r¶   rº   Úfamily_classr4   r1   s          r9   Ú%_font_flags_from_truetype_font_tablesz*Font._font_flags_from_truetype_font_tables`  sŸ  € ð ð 	1Ø”ZˆFð Ô+¨qÑ0ˆLØˆð Œ?Õ3Ñ3ð 	&¸ð 	&ÀÄÕRhÑ@hð 	&Ø•YÔ%Ñ%ˆEØð 	*Ø%Ô1ˆLØ˜sÒ"Ð"Ø�Ô)Ñ)�ð ð	+ØÔ'Õ+LÒLÐLØð MØ&Ô3°aÒ7Ð7à•YÔ*Ñ*ˆEð ð 	&ØÕ5Ò5Ð5¸Ô9KÕOlÒ9lÐ9là•YÔ%Ñ%ˆEð ð 	%Ø�Ô#Ð)Ð)Ò)Ð) rÒ)Ð)Ð)Ð)Ø�LÐ%Ð%Ò%Ð% AÒ%Ð%Ð%Ð%¨¸Ò):Ð):à•Y”_Ñ$ˆEð ð 	+ØÕ6Ò6Ð6ØÔÕ#DÕFfÐ"gÐgÐgà•YÔ'Ñ'ˆEˆEà•YÔ*Ñ*ˆEàˆr8   r>   r   c           
     óú  — t           st          d¦  «        ‚t          |¦  «        5 }|d         }|d         }|d         j        }|                     dd ¦  «        }|                     dd ¦  «        }|j        }d|z  }	i }
|                     dd ¦  «        }|rE|                     ¦   «         |
d<   |                     ¦   «         |
d	<   |                     ¦   «         |
d
<   t          t          |j        |	z  d¦  «        ¦  «        |
d<   t          t          |j        |	z  d¦  «        ¦  «        |
d<   |rb	 t          t          |j        |	z  d¦  «        ¦  «        |
d<   t          t          |j        |	z  d¦  «        ¦  «        |
d<   n# t          $ r Y nw xY w|                      |||¦  «        |
d<   t          |j        |	z  d¦  «        t          |j        |	z  d¦  «        t          |j        |	z  d¦  «        t          |j        |	z  d¦  «        f|
d<   t+          ¦   «         }|                     ¦   «         }|                     |¦  «         |                     t3          d¦  «        t5          t7          |¦  «        ¦  «        i¦  «         ||
d<   t9          di |
¤Ž}d}i }i }|                     ¦   «         }|                     d¦  «        }|rÆ|                     ¦   «         }t?          |¦  «        D ]¡\  }}|                     |¦  «        }|€ŒtA          |¦  «        }| !                    |¦  «        }| "                    dd¦  «        }| #                    dd¦  «        }|||<   t          t          ||         d         |	z  d¦  «        ¦  «        ||<   Œ¢ntI          d¦  «        ‚|  %                    ||
d         ¦  «         |  &                    ||
d         ¦  «        }d d d ¦  «         n# 1 swxY w Y    | |j'        d|||||d¬¦  «        S )NzDThe 'fontTools' library is required to use 'from_truetype_font_file'ÚheadÚhheaÚhmtxÚpostzOS/2r6   r'   r(   r)   r   r+   r-   r.   r/   r4   r=   z/Length1r>   Ú	utf_16_beÚcmapr   Úbigz	utf-16-berf   z$Font file does not have a cmap tableÚTrueTypeTr­   r7   )(ÚHAS_FONTTOOLSÚImportErrorr   Úmetricsr_   Ú
unitsPerEmÚgetBestFullNameÚgetBestFamilyNameÚgetBestSubFamilyNamer3   Úroundr+   r-   Ú
sCapHeightÚsxHeightÚAttributeErrorrÑ   ÚxMinÚyMinÚxMaxÚyMaxr   ÚgetvalueÚset_datarh   r   r   r‚   r$   ÚgetGlyphOrderÚbuildReversedMinri   r`   Ú
getGlyphIDÚto_bytesrk   r   r”   r–   r'   )r±   r>   Útt_font_objectr´   Úhorizontal_headerrÝ   rµ   r¶   Úunits_per_emÚscale_factorr�   ÚnamesÚfont_file_dataÚfont_file_raw_bytesrF   rL   rH   rN   Úglyph_orderÚtt_font_cmap_tableÚreverse_cmapÚgidÚglyphrm   ÚcharÚ	gid_bytesÚgid_key_stringrT   s                               r9   Úfrom_truetype_font_filezFont.from_truetype_font_file•  sÍ  € åð 	fÝÐdÑeÔeÐeÝ�IÑÔð K	b .ð
 $ FÔ+ˆFØ .¨vÔ 6ÐØ$ VÔ,Ô4ˆGð (×+Ò+¨F°DÑ9Ô9ˆJØ ×$Ò$ V¨TÑ2Ô2ˆCð "Ô,ˆLØ! LÑ0ˆLð 68Ð"Ø"×&Ò& v¨tÑ4Ô4ˆEØð PØ16×1FÒ1FÑ1HÔ1HÐ& vÑ.Ø38×3JÒ3JÑ3LÔ3LÐ& xÑ0Ø38×3MÒ3MÑ3OÔ3OÐ& xÑ0Ý/2µ5Ð9JÔ9QÐT`Ñ9`ÐbcÑ3dÔ3dÑ/eÔ/eÐ" 8Ñ,Ý03µEÐ:KÔ:SÐVbÑ:bÐdeÑ4fÔ4fÑ0gÔ0gÐ" 9Ñ-Øð ðÝ;>½uÀSÄ^ÐVbÑEbÐdeÑ?fÔ?fÑ;gÔ;gÐ*¨<Ñ8Ý9<½UÀ3Ä<ÐR^ÑC^Ð`aÑ=bÔ=bÑ9cÔ9cÐ*¨:Ñ6Ð6øÝ%ð ð ð Ø�Dðøøøð /2×.WÒ.WÐX^Ð`jÐloÑ.pÔ.pÐ" 7Ñ+õ �f”k LÑ0°!Ñ4Ô4Ý�f”k LÑ0°!Ñ4Ô4Ý�f”k LÑ0°!Ñ4Ô4Ý�f”k LÑ0°!Ñ4Ô4ð	.Ð" 6Ñ*õ *™^œ^ˆNØ"+×"4Ò"4Ñ"6Ô"6ÐØ×#Ò#Ð$7Ñ8Ô8Ð8Ø×!Ò!¥:¨jÑ#9Ô#9½<ÍÐL_ÑH`ÔH`Ñ;aÔ;aÐ"bÑcÔcÐcØ2@Ð" ;Ñ/å,ÐFÐFÐ/EÐFÐFˆOØ"ˆHà/1ÐØ,.ˆMà(×6Ò6Ñ8Ô8ˆKð "0×!3Ò!3°FÑ!;Ô!;ÐØ!ð KØ1×BÒBÑDÔD�Ý"+¨KÑ"8Ô"8ð 
gð 
g‘J�C˜Ø ,× 0Ò 0°Ñ 7Ô 7�IØ Ð(Ø Ý˜y™>œ>�DØ(×3Ò3°EÑ:Ô:�Cà #§¢¨Q°Ñ 6Ô 6�IØ%.×%5Ò%5°kÀ?Ñ%SÔ%S�NØ48�M .Ñ1Ý7:½5ÀÈÄÐPQÔARÐUaÑAaÐcdÑ;eÔ;eÑ7fÔ7fÐ$ ^Ñ4Ð4ð
gõ #Ð#IÑJÔJÐJà×"Ò"Ð#3Ð5KÈGÔ5TÑUÔUÐUØ×.Ò.Ð/?ÐAWÐX_ÔA`ÑaÔaˆKðWK	bð K	bð K	bñ K	bô K	bð K	bð K	bð K	bð K	bð K	bð K	bøøøð K	bð K	bð K	bð K	bðZ ˆsØ Ô%ØØØ+Ø'Ø-Ø#Øð	
ñ 	
ô 	
ð 		
s8   ¦DOÄ.AE?Å>OÅ?
FÆ	OÆFÆIOÏOÏ!O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    r9   Úas_font_resourcezFont.as_font_resourceñ  s•   € õ Ý˜:Ñ&Ô&­
°8Ñ(<Ô(<Ý˜7Ñ#Ô#¥Z°°D´I°°Ñ%@Ô%@Ý˜7Ñ#Ô#¥Z°Ñ%8Ô%8Ý˜;Ñ'Ô'­°O¸¼	°O°OÑ)DÔ)DÝ˜;Ñ'Ô'­Ð4FÑ)GÔ)Gðñ ô ð	
r8   Ú Útextr*   c                ó<   ‡ — t          ˆ fd„|D ¦   «         d¦  «        S )zDSum of character widths specified in PDF font for the supplied text.c                ó\   •— g | ](}‰j                              |‰j         d          ¦  «        ‘Œ)S )rQ   )rH   r_   )ra   rü   r  s     €r9   r�   z#Font.text_width.<locals>.<listcomp>   s5   ø€ Ð`Ð`Ð`ÐSWˆTÔ"×&Ò& t¨TÔ-BÀ9Ô-MÑNÔNÐ`Ð`Ð`r8   r0   )r’   )r  r  s   ` r9   Ú
text_widthzFont.text_widthý  s0   ø€ åØ`Ð`Ð`Ð`Ð[_Ð`Ñ`Ô`Ðbeñ
ô 
ð 	
r8   N)
rW   r   rX   rM   rL   rK   rY   rG   rZ   r[   )rq   r   rX   rM   rY   rG   rZ   r[   )rY   rG   r4   r3   rZ   r[   )rH   rG   r4   r3   rZ   r3   )r—   r   rZ   r˜   )rW   r   rZ   rJ   )r´   r   rµ   r   r¶   r   rZ   r3   )r>   r   rZ   rJ   )rZ   r   )r  )r  r&   rZ   r*   )r?   r@   rA   rB   rC   r   ÚdictrN   rO   r$   rF   rH   rT   rV   Ústaticmethodrp   rŠ   r”   r–   r¢   Úclassmethodr³   rÑ   rÿ   r  r  r7   r8   r9   rJ   rJ   F   s	  € € € € € € ðð ð$ €I€I�IØ"Ð"Ð"Ñ"Ø$) E¸$Ð$?Ñ$?Ô$?€MÐ?Ð?Ð?Ñ?Ø€HÐÐÐÑØ&+ e¸NÐ&KÑ&KÔ&K€OÐKÐKÐKÑKØ', uÐ=UÐ=UÐ'VÑ'VÔ'VÐÐVÐVÐVÑVØ"€KÐ"Ð"Ð"Ñ"Ø€MÐÐÐÑàð6ð 6ð 6ñ „\ð6ð> ðFð Fð Fñ „\ðFðP ðdð dð dñ „\ðdð$ ð0ð 0ð 0ñ „\ð0ð ð!&ð !&ð !&ñ „\ð!&ðF ðO
ð O
ð O
ñ „[ðO
ðb ð2ð 2ð 2ñ „\ð2ðh ðY
ð Y
ð Y
ñ „[ðY
ðv

ð 

ð 

ð 

ð
ð 
ð 
ð 
ð 
ð 
ð 
r8   rJ   N)2Ú
__future__r   Úcollections.abcr   Údataclassesr   r   Útypingr   r   r	   Úpypdf.genericr
   r   r   r   r   Ú_cmapr   Ú_codecs.adobe_glyphsr   Ú_utilsr   Ú	constantsr   Úerrorsr   Úior   ÚfontTools.ttLib.tables._h_e_a_dr   ÚfontTools.ttLib.tables._p_o_s_tr   ÚfontTools.ttLib.tables.O_S_2f_2r   ÚfontTools.ttLibr   rÛ   rÜ   r½   r¿   rÇ   rÌ   rÍ   rÃ   rÅ   rË   r$   rE   rJ   r7   r8   r9   ú<module>r     ss  ðØ "Ð "Ð "Ð "Ð "Ð "à $Ð $Ð $Ð $Ð $Ð $Ø (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ø +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ð +à _Ð _Ð _Ð _Ð _Ð _Ð _Ð _Ð _Ð _Ð _Ð _Ð _Ð _à Ð Ð Ð Ð Ð Ø .Ð .Ð .Ð .Ð .Ð .Ø "Ð "Ð "Ð "Ð "Ð "Ø  Ð  Ð  Ð  Ð  Ð  Ø  Ð  Ð  Ð  Ð  Ð  àð ?ØÐÐÐÐÐà>Ð>Ð>Ð>Ð>Ð>Ø>Ð>Ð>Ð>Ð>Ð>Ø>Ð>Ð>Ð>Ð>Ð>ðØ&Ð&Ð&Ð&Ð&Ð&Ø€M€MøØð ð ð Ø€M€M€Mðøøøð
 Ð ØÐ Ø !Ð Ø$%Ð !Ø#$Ð  Ø$%Ð !ØÐ ØÐ ð €�$ÐÑÔð*ð *ð *ð *ð *ñ *ô *ñ Ôð*ð. €�$ÐÑÔð%ð %ð %ð %ð %ñ %ô %ñ Ôð%ð
 ðz
ð z
ð z
ð z
ð z
ñ z
ô z
ñ „ðz
ð z
ð z
s   Á&A/ Á/A9Á8A9