ó
    oñ:i	   ã                   ó2  • S r SSKJrJr  SSKJr  SSKJr  SSKJ	r	J
r
JrJrJrJr  SSKJr  SSKJr  SS	KJr  SS
KJr  SSKrSS/r\R2                  " S5      rS rSS.S jrSS jr\S:X  a*  SSKr\R@                  " \" \RB                  SS 5      5        gg)zCFF2 to CFF converter.é    )ÚTTFontÚnewTable)ÚmakeOutputFileName)ÚT2StackUseExtractor)ÚTopDictIndexÚ
buildOrderÚbuildDefaultsÚtopDictOperatorsÚprivateDictOperatorsÚFDSelecté   )ÚdesubroutinizeCharString)ÚspecializeProgram)ÚoptimizeWidths)ÚdefaultdictNÚconvertCFF2ToCFFÚmainzfontTools.cffLibc           	      óè
  • SU l         [        S5      nU R                   H  nSUl        UR	                  U5        M     X l        US   n[        US5      (       a  [        S5      e[        [        5      nXTl	        UR                  R                  5        H4  nXe;  d  M
  UR                  U	 [        XF5      (       d  M)  [        XF5        M6     UR                  nUR                  n[        US5      (       d.  [        5       =o”l        S/[!        UR"                  5      -  U	l        ['        [(        5      n
[        [(        5      nU Hª  nUR+                  S5        UR,                  nX½l	        U H,  nXmR                  ;  d  M  Xj;   d  M  X¦   UR                  U'   M.     UR                  R                  5        H4  nXk;  d  M
  UR                  U	 [        XÖ5      (       d  M)  [        XÖ5        M6     M¬     UR/                  5        H.  nUR1                  5         UR2                  R	                  S5        M0     U R4                  /U Vs/ s H  n[7        UR,                  S	/ 5      PM     sn-    H'  nU H  nUR2                  R	                  S
5        M      M)     [9        [:        5      nUS   R<                  nUR                  5        H9  nUR?                  U5      u  nnUS:X  a  SnUU   R	                  UU   S   5        M;     URA                  5        H1  u  nn[C        U5      u  nnUU   R,                  nUUl"        UUl#        M3     UR                  5        Hq  nUR?                  U5      u  nnUS:X  a  SnUU   R,                  nUU   S   nUURD                  :w  d  MH  UR2                  RI                  SUURF                  -
  5        Ms     UR                  5        H‰  nUR?                  U5      u  nnUc  SnUU   R,                  n[K        [7        US	/ 5      U R4                  US9nURM                  U5      nUS:”  d  Md  [O        U5        [Q        UR2                  5      Ul        M‹     U RS                  5         [U        URV                  5       VVs0 s H-  u  nnUU(       a  S[Y        U5      R[                  S5      -   OS_M/     nnn[]        [!        URV                  5      5       Vs/ s H)  nU(       a  S[Y        U5      R[                  S5      -   OSPM+     snUl+        UR"                  RA                  5        VVs0 s H  u  nnUU   U_M     snnUl        SUl/        gs  snf s  snnf s  snf s  snnf )aY  Converts this object from CFF2 format to CFF format. This conversion
is done 'in-place'. The conversion cannot be reversed.

The CFF2 font cannot be variable. (TODO Accept those and convert to the
default instance?)

This assumes a decompiled CFF2 table. (i.e. that the object has been
filled via :meth:`decompile` and e.g. not loaded from XML.)r   Nr   ÚVarStorez5Variable CFF2 font cannot be converted to CFF format.r   FÚendcharÚSubrsÚreturnÚhmtx)Úprivateé0   Úcidé   z.notdef)ÚAdobeÚIdentityr   )0Úmajorr   ÚtopDictIndexÚcff2GetGlyphOrderÚappendÚhasattrÚ
ValueErrorr   r
   ÚorderÚrawDictÚkeysÚdelattrÚCharStringsÚFDArrayr   ÚlenÚcharStringsÚgidArrayr	   r   ÚsetCFF2ÚPrivateÚvaluesÚ	decompileÚprogramÚGlobalSubrsÚgetattrr   ÚlistÚmetricsÚgetItemAndSelectorÚitemsr   ÚdefaultWidthXÚnominalWidthXÚinsertr   Úexecuter   r   Úremove_unused_subroutinesÚ	enumerateÚcharsetÚstrÚzfillÚrangeÚROS)ÚcffÚotFontÚtopDictDataÚitemÚtopDictÚopOrderÚkeyr-   ÚfdArrayÚfdSelectÚdefaultsr&   ÚfdÚprivateDictÚcsÚsubrSetsÚwidthsr7   Ú	glyphNameÚfdIndexÚ	widthListÚbestDefaultÚbestNominalr   ÚwidthÚ	extractorÚstackUseÚnÚnameÚmappingÚvs                                  Ú]/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/fontTools/cffLib/CFF2ToCFF.pyÚ_convertCFF2ToCFFra      sç  € ð €C„Iä˜tÓ$€KØ× Ô ˆà!%ˆÔØ×Ñ˜4Ö ñ !ð #ÔØ˜!‰n€Gäˆw˜
×#Ñ#ÜÐPÓQÐQäÔ)Ó*€GØ„MØ�‰×#Ñ#Ö%ˆØÕØ—‘ Ð$Ü�w×$Ó$Ü˜Ö%ñ	 &ð ×%Ñ%€Kà�o‰o€GÜ�7˜J×'Ñ'ä&.£jÐ0ˆÔ#Ø˜C¤# k×&=Ñ&=Ó">Ñ>ˆÔäÔ1Ó2€HÜÔ+Ó,€EÛˆØ
�
‰
�5ÔØ—j‘jˆØ!ÔÛˆCØ×-Ñ-Õ-°#µ/Ø+3©=�×#Ñ# CÓ(ñ ð ×&Ñ&×+Ñ+Ö-ˆCØÕØ×'Ñ'¨Ð,Ü˜;×,Ó,Ü˜KÖ-ó	 .ñ ð × Ñ Ö"ˆØ
�‰ŒØ
�
‰
×Ñ˜)Ö$ñ #ð —_‘_Ð%Ù3:ó)Ú3:¨RŒ�—
‘
˜G RÖ(±7ñ)ô ˆó ˆBØ�J‰J×Ñ˜hÖ'ó ñô œÓ€FØ�V‰n×$Ñ$€GØ ×%Ñ%Ö'ˆ	Ø!×4Ñ4°YÓ?‰ˆˆGØ�d‹?ØˆGØˆw‰×Ñ˜w yÑ1°!Ñ4Ö5ñ	 (ð
 %Ÿl™lžnÑˆ�Ü#1°)Ó#<Ñ ˆ�[Ø˜'Ñ"×*Ñ*ˆØ +ˆÔØ +ˆÖñ	 -ð
 !×%Ñ%Ö'ˆ	Ø!×4Ñ4°YÓ?‰ˆˆGØ�d‹?ØˆGØ˜'Ñ"×*Ñ*ˆØ˜	Ñ" 1Ñ%ˆØ�G×)Ñ)Õ)Ø�J‰J×Ñ˜a ¨×)>Ñ)>Ñ!>Ö?ñ (ð !×%Ñ%Ö'ˆ	Ø!×4Ñ4°YÓ?‰ˆˆGØ‰?ØˆGØ˜'Ñ"×*Ñ*ˆÜ'Ü�G˜W bÓ)¨3¯?©?ÀGñ
ˆ	ð ×$Ñ$ RÓ(ˆØ�b�=Ü$ RÔ(Ü*¨2¯:©:Ó6ˆBŽJñ (ð" ×!Ñ!Ô#ô ! §¡Ô1ôâ1‰GˆAˆtð 	®!ˆu”s˜1“v—|‘| A“Ò&°Ò:Ù1ð ñ ô
 >CÄ3ÀwÇÁÓCWÔ=XóÚ=X¸¦1ˆ”�A“—‘˜Q“Ò¨)Ò3Ñ=Xñ€G„Oð )4×(?Ñ(?×(EÑ(EÔ(GôÚ(G™W˜T 1ˆ�‰�qÒÑ(Gò€KÔð +€G…Kùòw)ùó`ùòùós   É!UÒ4U#Ó%0U)Ô:U.T)ÚupdatePostTablec                óâ   • SU ;  a  [        S5      eU S   R                  n[        X 5        U S	 [        S5      =o0S'   X#l        U(       a%  SU ;   a  U S   nUR                  S:X  a  SUl        g g g g )NÚCFF2z)Input font does not contain a CFF2 table.zCFF Úpostg       @g      @)r%   rE   ra   r   Ú
formatType)Úfontrb   rE   Útablere   s        r`   r   r   “   s{   € Ø�TÓÜÐDÓEÐEØ
ˆv‰,×
Ñ
€CÜ�cÔ ØˆVˆÜ# FÓ+Ð+€E�‰LØ„Iæ˜6 T›>à�F‰|ˆØ�?‰?˜cÓ!Ø!ˆD�Oð "ð *€ó    c                 ó^  • U c  SSK nUR                  SS n SSKnUR                  SSS9nUR	                  SSS	S
9  UR	                  SSSSSS9  UR	                  SSSSS9  UR	                  SSSS9  UR	                  SSSS9  UR                  SS9nUR	                  SSSSS9  UR	                  S S!SS"S9  UR                  U 5      nSS#KJn  U" UR                  (       a  S$OUR                  (       a  S%OS&S'9  SSKnUR                  nUR                  R                  U5      (       d   UR                  S(R!                  U5      5        UR"                  (       d  [%        US)S*S+9OUR"                  n	['        X…R(                  SS,9n
[+        U
5        UR,                  (       af  SS-KJn  SS.KJn  [6        R9                  S/5        U" 5       nU
R;                  U5        UR=                  S5        ['        USSS,9n
U" U
UR>                  S09  [6        RA                  S1U	5        U
R;                  U	5        g)2z%Convert CFF2 OTF font to CFF OTF fontNr   r   zfonttools cffLib.CFF2ToCFFz(Convert a non-variable CFF2 font to CFF.)ÚdescriptionÚinputz	INPUT.ttfzInput OTF file with CFF table.)ÚmetavarÚhelpz-oz--outputz
OUTPUT.ttfz3Output instance OTF file (default: INPUT-CFF2.ttf).)rm   Údefaultrn   z--no-recalc-timestampÚrecalc_timestampÚstore_falsez:Don't set the output font's timestamp to the current time.)ÚdestÚactionrn   z--remove-overlapsÚ
store_truez@Merge overlapping contours and components. Requires skia-pathops)rs   rn   z--ignore-overlap-errorszCDon't crash if the remove-overlaps operation fails for some glyphs.F)Úrequiredz-vz	--verbosezRun more verbosely.z-qz--quietzTurn verbosity off.)ÚconfigLoggerÚDEBUGÚERRORÚINFO)ÚlevelzNo such file '{}'Tz-CFF)Ú	overWriteÚsuffix)ÚrecalcTimestampÚrecalcBBoxes)ÚremoveOverlaps)ÚBytesIOzRemoving overlaps)ÚignoreErrorsz	Saving %s)!ÚsysÚargvÚargparseÚArgumentParserÚadd_argumentÚadd_mutually_exclusive_groupÚ
parse_argsÚ	fontToolsrv   ÚverboseÚquietÚosrl   ÚpathÚisfileÚerrorÚformatÚoutputr   r   rp   r   Úremove_overlapsÚfontTools.ttLib.removeOverlapsr   Úior€   ÚlogÚdebugÚsaveÚseekÚignore_overlap_errorsÚinfo)Úargsr‚   r„   ÚparserÚloggingGroupÚoptionsrv   rŒ   ÚinfileÚoutfilerg   r   r€   Ústreams                 r`   r   r   £   sM  € à�|Ûà�x‰x˜˜ˆ|ˆãà×$Ñ$Ø$Ø>ð %ð €Fð ×ÑØ˜Ð+Kð ñ ð ×ÑØØØØØBð ñ ð ×ÑØØØØIð	 ñ ð ×ÑØØØOð ñ ð
 ×ÑØ!ØØRð ñ ð
 ×6Ñ6ÀÐ6ÐF€LØ×ÑØˆk ,Ð5Jð ñ ð ×ÑØˆi Ð3Hð ñ ð ×Ñ Ó%€Gå&áØ!Ÿ/Ÿ/‰w¸'¿-¿-©wÈVòó à�]‰]€FØ�7‰7�>‰>˜&×!Ñ!Ø�‰Ð(×/Ñ/°Ó7Ô8ð �~�~ô 	˜6¨T¸&ÒAà�^‰^ð ô �&×*BÑ*BÐQVÑW€Dä�TÔà××ÝAÝä�	‰	Ð%Ô&á“ˆØ�	‰	�&ÔØ�‰�AŒÜ�f¨eÀ%ÑHˆÙØØ ×6Ñ6ò	
ô
 ‡H�HØØôð 	‡I�IˆgÕri   Ú__main__)N)"Ú__doc__ÚfontTools.ttLibr   r   ÚfontTools.misc.cliToolsr   ÚfontTools.misc.psCharStringsr   ÚfontTools.cffLibr   r   r	   r
   r   r   Ú
transformsr   Úspecializerr   rY   r   Úcollectionsr   ÚloggingÚ__all__Ú	getLoggerr•   ra   r   r   Ú__name__r‚   Úexitrƒ   © ri   r`   Ú<module>r±      s�   ðÙ ç ,Ý 6Ý <÷÷ õ 1Ý *Ý !Ý #Û ð ˜vÐ
&€ð ×ÒÐ*Ó+€òu+ðp /3õ "ô Yðx ˆzÓÛà‡H‚H‰T�#—(‘(˜1˜2�,ÓÕ ð ri   