§
    ¢”j‡'  ã                   ó*  — d 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mZmZmZmZmZ ddlmZ ddlZdd	gZ ej        d
¦  «        Z G d„ de¦  «        Zd„ Zd„ Zdd„Zedk    r,ddlZ ej         eej        dd…         ¦  «        ¦  «         dS dS )zCFF to CFF2 converter.é    )ÚTTFontÚnewTable)ÚmakeOutputFileName)ÚT2WidthExtractor)ÚTopDictIndexÚFDArrayIndexÚFontDictÚ
buildOrderÚtopDictOperatorsÚprivateDictOperatorsÚtopDictOperators2ÚprivateDictOperators2)ÚBytesIONÚconvertCFFToCFF2ÚmainzfontTools.cffLibc                   ó   — e Zd Zd„ Zd„ ZdS )Ú_NominalWidthUsedErrorc                 ó   — | ‚©N© ©ÚselfÚothers     úi/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/fontTools/cffLib/CFFToCFF2.pyÚ__add__z_NominalWidthUsedError.__add__   ó   € Øˆ
ó    c                 ó   — | ‚r   r   r   s     r   Ú__radd__z_NominalWidthUsedError.__radd__   r   r   N)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r      s2   € € € € € ðð ð ðð ð ð ð r   r   c                 ó–  — | j         d         }t          |d¦  «        r|j        nd}|j        }| j        }|rd„ |D ¦   «         n3t          |d¦  «        r"t          |j        d¦  «        r|j        j        gng }|                     ¦   «         D ].}|                     |¦  «        \  }}	| 	                    ¦   «          Œ/|g|z   D ]‚}
|
D ]}}|j
        }t          |¦  «        x}}	 |                     d¦  «        }n# t          $ r Y nw xY w	 |                     d¦  «        }n# t          $ r Y nw xY wg |t          ||¦  «        d…<   Œ~Œƒd	}t          ¦   «         }|                     ¦   «         D �]�}|                     |¦  «        \  }}	|j
        }|	�||	         n't          |d¦  «        rt!          |j        dg ¦  «        ng }t#          |||d¦  «        }	 |                     |¦  «         nþ# t          $ rñ t          |¦  «        d
k    r©|d         dv rŸd}|                     d¦  «        }t)          |t*          ¦  «        s
J |¦   «         ‚|                     d¦  «        }|dk    r|j        n|j        }||z  }|dk    r|n|}||         j
        }||dd…<   t          |¦  «        d
k    r
|d         dv °Ÿt          |¦  «        dk    s
J |¦   «         ‚|                     d¦  «         Y nw xY w|r |d         dk    r|                     ¦   «          �ŒŸ|r|                      ¦   «          d
| _        | j        j        }t9          d|¦  «        }| j         D ]}|                     |¦  «         Œ|| _         |d         }t          |d¦  «        r|j        }nd}t=          t>          ¦  «        }||_         ||_!        t          |d¦  «        sótE          ¦   «         x}|_        d|_#        |j        |_        ||j        _$        |j        }|j%        r||j&        _$        n||_$        tO          ¦   «         }| (                    d¦  «         |                     |¦  «         ||_        t=          tR          ¦  «        }|�GtT          D ]?}|d         } | |vr1| |j+        v r|j+        | = t          || ¦  «        rtY          || ¦  «         Œ@nü|j        }t=          tR          ¦  «        }|D ]Þ}| (                    d¦  «         t[          |j+                             ¦   «         ¦  «        D ]3} | |j         vr(|j+        | = t          || ¦  «        rtY          || ¦  «         Œ4|j        }tT          D ]^}|d         } | |vrP| t[          |j+                             ¦   «         ¦  «        v r|j+        | = t          || ¦  «        rtY          || ¦  «         Œ_Œßt\          D ]F}|d         } | dk    rŒ| |vr1| |j+        v r|j+        | = t          || ¦  «        rtY          || ¦  «         ŒGt_          ¦   «         }!|  0                    |!|d¬¦  «         |! 1                    d¦  «         |  	                    |!|d¬¦  «         dS )a  Converts this object from CFF format to CFF2 format. This conversion
    is done 'in-place'. The conversion cannot be reversed.

    This assumes a decompiled CFF table. (i.e. that the object has been
    filled via :meth:`decompile` and e.g. not loaded from XML.)r   ÚFDArrayNc                 ó:   — g | ]}t          |j        d g ¦  «        ‘ŒS )ÚSubrs)ÚgetattrÚPrivate)Ú.0Úfds     r   ú
<listcomp>z%_convertCFFToCFF2.<locals>.<listcomp>/   s&   € Ð<Ð<Ð<¨b��”˜W bÑ	)Ô	)Ð<Ð<Ð<r   r(   r&   ÚreturnÚendcharFé   é   )ÚcallsubrÚ	callgsubrTr0   éÿÿÿÿÚcharset)ÚisCFF2)2ÚtopDictIndexÚhasattrr$   ÚCharStringsÚGlobalSubrsr(   r&   ÚkeysÚgetItemAndSelectorÚ	decompileÚprogramÚlenÚindexÚ
ValueErrorÚminr   r'   r   ÚexecuteÚpopÚ
isinstanceÚintÚ	localBiasÚ
globalBiasÚremove_unused_subroutinesÚmajorÚotFontÚgetGlyphOrderr   Úappendr
   r   ÚorderÚcff2GetGlyphOrderr   ÚstringsÚfdArrayÚcharStringsAreIndexedÚcharStringsIndexr	   ÚsetCFF2r   r   ÚrawDictÚdelattrÚlistr   r   ÚcompileÚseek)"ÚcffrI   ÚtopDictrO   ÚcharStringsÚglobalSubrsÚ
localSubrsÚ	glyphNameÚcsÚfdIndexÚsubrsÚsubrr<   ÚiÚjÚremoveUnusedSubrsÚnominalWidthXErrorÚthisLocalSubrsÚ	extractorÚ
subrNumberÚopÚbiasÚsubrSetÚsubrProgramrM   ÚtopDictDataÚitemÚprivateDictÚopOrderÚfontDictÚprivateOpOrderÚentryÚkeyÚfiles"                                     r   Ú_convertCFFToCFF2rv   !   s\  € ð Ô˜qÔ!€GÝ!(¨°)Ñ!<Ô!<ÐFˆgŒoˆoÀ$€GØÔ%€KØ”/€Kð ð	
Ð<Ð<°GÐ<Ñ<Ô<Ð<õ �w 	Ñ*Ô*ðÝ/6°w´ÈÑ/PÔ/PðˆWŒ_Ô"Ð#Ð#àð ð !×%Ò%Ñ'Ô'ð ð ˆ	Ø!×4Ò4°YÑ?Ô?‰ˆˆGØ
�Š‰Œˆˆð � Ñ+ð &ð &ˆØð 	&ð 	&ˆDØ”lˆGÝ˜‘L”LÐ ˆA�ðØ—M’M (Ñ+Ô+��øÝð ð ð Ø�ðøøøðØ—M’M )Ñ,Ô,��øÝð ð ð Ø�ðøøøà#%ˆG•C˜˜1‘I”I�K�KÑ Ð ð	&ð ÐÝ/Ñ1Ô1ÐØ ×%Ò%Ñ'Ô'ð ,ñ ,ˆ	Ø!×4Ò4°YÑ?Ô?‰ˆˆGØ”*ˆð Ð"ð �wÔÐõ ˜7 IÑ.Ô.ð•˜œ¨°"Ñ5Ô5Ð5àð 	õ %ØØØØñ	
ô 
ˆ	ð	Ø×Ò˜bÑ!Ô!Ð!Ð!øÝ%ð 	ð 	ð 	õ
 �g‘,”, !Ò#Ð#¨°¬
Ð6OÐ(OÐ(OØ$(Ð!Ø$Ÿ[š[¨™^œ^�
Ý! *­cÑ2Ô2Ð>Ð>°JÑ>Ô>Ð>Ø—[’[ ‘^”^�Ø.0°JÒ.>Ð.>�yÔ*Ð*ÀIÔDX�Ø˜dÑ"�
Ø,.°*Ò,<Ð,<˜.˜.À+�Ø% jÔ1Ô9�Ø)�˜˜˜‘õ �g‘,”, !Ò#Ð#¨°¬
Ð6OÐ(OÐ(Oõ �w‘<”< 1Ò$Ð$Ð$ gÑ$Ô$Ð$Ø�KŠK˜‰NŒNˆNˆNˆNð#	øøøð& ð 	�w˜r”{ iÒ/Ð/Ø�KŠK‰MŒMˆMùàð (Ø×%Ò%Ñ'Ô'Ð'ð €C„IØœ
Ô0ÐÝ˜tÐ%6Ñ7Ô7€KØÔ ð !ð !ˆà×Ò˜4Ñ Ô Ð Ð Ø"€CÔØ˜!Œn€GÝˆw˜	Ñ"Ô"ð Ø”oˆˆàˆÝÕ*Ñ+Ô+€GØ€G„MØ 1€GÔå�7˜IÑ&Ô&ð -2Ý$0¡N¤NÐ2ˆ�'”/ØˆŒØ%Ô1ˆÔØ&-ˆÔÔ#ØÔ)ˆØÔ,ð 	*Ø3:ˆKÔ(Ô0Ð0à")ˆKÔÝ‘:”:ˆØ×Ò˜ÑÔÐØ�Š�xÑ Ô Ð Ø&ˆÔÝ#Õ$9Ñ:Ô:ˆØÐ"Ý-ð 2ð 2�Ø˜A”h�Ø˜nÐ,Ð,Ø˜kÔ1Ð1Ð1à'Ô/°Ð4Ý˜{¨CÑ0Ô0ð 2Ý ¨SÑ1Ô1Ð1øøð ”/ˆÝ#Õ$9Ñ:Ô:ˆØð 	2ð 	2ˆHØ×Ò˜TÑ"Ô"Ð"Ý˜HÔ,×1Ò1Ñ3Ô3Ñ4Ô4ð /ð /�Ø˜hœnÐ,Ð,Ø Ô(¨Ð-Ý˜x¨Ñ-Ô-ð /Ý ¨#Ñ.Ô.Ð.øà"Ô*ˆKÝ-ð 2ð 2�Ø˜A”h�Ø˜nÐ,Ð,Ø�d ;Ô#6×#;Ò#;Ñ#=Ô#=Ñ>Ô>Ð>Ð>à'Ô/°Ð4Ý˜{¨CÑ0Ô0ð 2Ý ¨SÑ1Ô1Ð1øð2õ "ð &ð &ˆØ�AŒhˆð �)ÒÐØØ�gÐÐØ�g”oÐ%Ð%Ø”O CÐ(Ý�w Ñ$Ô$ð &Ý˜ Ñ%Ô%Ð%øõ ‰9Œ9€DØ‡K‚K��f T€KÑ*Ô*Ð*Ø‡I‚Iˆa�L„L€LØ‡M‚M�$˜ t€MÑ,Ô,Ð,Ð,Ð,s7   ÃC5Ã5
DÄDÄDÄ
D)Ä(D)ÇG$Ç$C8KËKc                 ó|   — | d         j         }| d= t          || ¦  «         t          d¦  «        x}| d<   ||_         d S )NzCFF ÚCFF2)rX   rv   r   )ÚfontrX   Útables      r   r   r   ã   sF   € Ø
ˆvŒ,Ô
€CØˆVˆÝ�c˜4Ñ Ô Ð Ý# FÑ+Ô+Ð+€EˆD�‰LØ€E„I€I€Ir   c                 ó„  — | €ddl }|j        dd…         } ddl}|                     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lm}  ||j	        rd n
|j
        rd!nd"¬#¦  «         ddl}|j        }|j                             |¦  «        s(|                     d$                     |¦  «        ¦  «         |j        st%          |d%d&¬'¦  «        n|j        }	t'          ||j        d¬(¦  «        }
t+          |
¦  «         t,                               d)|	¦  «         |
                     |	¦  «         dS )*z%Convert CFF OTF font to CFF2 OTF fontNr   r/   zfonttools cffLib.CFFToCFF2zUpgrade a CFF font to CFF2.)ÚdescriptionÚinputz	INPUT.ttfzInput OTF file with CFF table.)ÚmetavarÚhelpz-oz--outputz
OUTPUT.ttfz3Output instance OTF file (default: INPUT-CFF2.ttf).)r~   Údefaultr   z--no-recalc-timestampÚrecalc_timestampÚstore_falsez:Don't set the output font's timestamp to the current time.)ÚdestÚactionr   F)Úrequiredz-vz	--verboseÚ
store_truezRun more verbosely.)r„   r   z-qz--quietzTurn verbosity off.)ÚconfigLoggerÚDEBUGÚERRORÚINFO)ÚlevelzNo such file '{}'Tz-CFF2)Ú	overWriteÚsuffix)ÚrecalcTimestampÚrecalcBBoxesz	Saving %s)ÚsysÚargvÚargparseÚArgumentParserÚadd_argumentÚadd_mutually_exclusive_groupÚ
parse_argsÚ	fontToolsr‡   ÚverboseÚquietÚosr}   ÚpathÚisfileÚerrorÚformatÚoutputr   r   r�   r   ÚlogÚinfoÚsave)Úargsr�   r’   ÚparserÚloggingGroupÚoptionsr‡   rš   ÚinfileÚoutfilery   s              r   r   r   ë   s[  € à€|Øˆ
ˆ
ˆ
àŒx˜˜˜Œ|ˆà€O€O€Oà×$Ò$Ø$Ø1ð %ñ ô €Fð ×ÒØ˜Ð+Kð ñ ô ð ð ×ÒØØØØØBð ñ ô ð ð ×ÒØØØØIð	 ñ ô ð ð ×6Ò6ÀÐ6ÑFÔF€LØ×ÒØˆk ,Ð5Jð ñ ô ð ð ×ÒØˆi Ð3Hð ñ ô ð ð ×Ò Ñ%Ô%€Gà&Ð&Ð&Ð&Ð&Ð&à€LØ!œ/ÐSˆwˆw¸'¼-Ð/S¨w¨wÈVðñ ô ð ð €I€I€IàŒ]€FØŒ7�>Š>˜&Ñ!Ô!ð 9Ø�ŠÐ(×/Ò/°Ñ7Ô7Ñ8Ô8Ð8ð Œ~ð	Õ˜6¨T¸'ÐBÑBÔBÐBàŒ^ð õ �&¨'Ô*BÐQVÐWÑWÔW€Då�TÑÔÐå‡H‚HØØñô ð ð 	‡I‚IˆgÑÔÐÐÐr   Ú__main__r/   r   ) Ú__doc__ÚfontTools.ttLibr   r   ÚfontTools.misc.cliToolsr   ÚfontTools.misc.psCharStringsr   ÚfontTools.cffLibr   r   r	   r
   r   r   r   r   Úior   ÚloggingÚ__all__Ú	getLoggerr    Ú	Exceptionr   rv   r   r   r    r�   Úexitr‘   r   r   r   ú<module>rµ      s–  ðØ Ð à ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9ð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð Ð Ð Ð Ð Ð Ø €€€à˜vÐ
&€ð €gÔÐ*Ñ+Ô+€ðð ð ð ð ˜Yñ ô ð ð-ð -ð -ðDð ð ð@ð @ð @ð @ðF ˆzÒÐØ€J€J€Jà€C„HˆTˆT�#”(˜1˜2˜2”,ÑÔÑ Ô Ð Ð Ð ð Ðr   