Ë
    £ehÈ  ã                   ó  — d Z ddlmZmZ ddl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Zd	d
gZ ej$                  d«      Zd„ Zddœd„Zdd„Zedk(  r*ddlZ ej2                   eej4                  dd «      «       yy)zCFF2 to CFF converter.é    )ÚTTFontÚnewTable)ÚmakeOutputFileName)ÚTopDictIndexÚ
buildOrderÚbuildDefaultsÚtopDictOperatorsÚprivateDictOperatorsé   )ÚoptimizeWidths)ÚdefaultdictNÚconvertCFF2ToCFFÚmainzfontTools.cffLibc           	      óD  — d| _         t        d«      }| j                  D ]  }d|_        |j	                  |«       Œ || _        |d   }t        |d«      rt        d«      ‚t        t        «      }||_	        |j                  j                  «       D ]-  }||vsŒ|j                  |= t        ||«      sŒ"t        ||«       Œ/ |j                  }|j                  }t        t         «      }	t        t         «      }
|D ]�  }|j#                  d«       |j$                  }|
|_	        |
D ](  }||j                  vsŒ||	v sŒ|	|   |j                  |<   Œ* |j                  j                  «       D ]-  }||
vsŒ|j                  |= t        ||«      sŒ"t        ||«       Œ/ ŒŸ |j'                  «       D ]-  }|j)                  «        |j*                  j	                  d«       Œ/ | j,                  g|D �cg c]  }t/        |j$                  dg «      ‘Œ c}z   D ]$  }|D ]  }|j*                  j	                  d	«       Œ Œ& t1        t2        «      }|d
   j4                  }|j                  «       D ]7  }|j7                  |«      \  }}|dk(  rd}||   j	                  ||   d   «       Œ9 |j9                  «       D ]0  \  }}t;        |«      \  }}||   j$                  }||_        ||_        Œ2 |j                  «       D ]m  }|j7                  |«      \  }}|dk(  rd}||   j$                  }||   d   }||j<                  k7  sŒE|j*                  jA                  d||j>                  z
  «       Œo tC        |jD                  «      D ��ci c]  \  }}||rdtG        |«      z   nd“Œ }}}tI        tK        |jD                  «      «      D �cg c]  }|rdtG        |«      z   nd‘Œ c}|_"        |jL                  j9                  «       D ��ci c]  \  }}||   |“Œ c}}|_&        yc c}w c c}}w c c}w c c}}w )al  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 CFF 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.FÚendcharÚSubrsÚreturnÚhmtxÚcidz.notdef)'Úmajorr   ÚtopDictIndexÚcff2GetGlyphOrderÚappendÚhasattrÚ
ValueErrorr   r	   ÚorderÚrawDictÚkeysÚdelattrÚFDArrayÚCharStringsr   r
   ÚsetCFF2ÚPrivateÚvaluesÚ	decompileÚprogramÚGlobalSubrsÚgetattrr   ÚlistÚmetricsÚgetItemAndSelectorÚitemsr   ÚdefaultWidthXÚnominalWidthXÚinsertÚ	enumerateÚcharsetÚstrÚrangeÚlenÚcharStrings)ÚcffÚotFontÚtopDictDataÚitemÚtopDictÚopOrderÚkeyÚfdArrayr6   Údefaultsr   ÚfdÚprivateDictÚcsÚsubrSetsÚwidthsr+   Ú	glyphNameÚfdIndexÚ	widthListÚbestDefaultÚbestNominalÚprivateÚwidthÚnÚnameÚmappingÚvs                               úX/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/fontTools/cffLib/CFF2ToCFF.pyÚ_convertCFF2ToCFFrQ      s-  € ð €C„Iä˜tÓ$€KØ× Ñ ò !ˆà!%ˆÔØ×Ñ˜4Õ ð!ð #€CÔØ˜!‰n€Gäˆw˜
Ô#ÜÐPÓQÐQäÔ)Ó*€GØ€G„MØ�‰×#Ñ#Ó%ò &ˆØ�gÒØ—‘ Ð$Ü�w Õ$Ü˜ Õ%ð	&ð �o‰o€GØ×%Ñ%€KäÔ1Ó2€HÜÔ+Ó,€EØò .ˆØ
�
‰
�5ÔØ—j‘jˆØ!ˆÔØò 	9ˆCØ˜+×-Ñ-Ò-°#¸²/Ø+3°C©=�×#Ñ# CÒ(ð	9ð ×&Ñ&×+Ñ+Ó-ò 	.ˆCØ˜%ÒØ×'Ñ'¨Ð,Ü˜;¨Õ,Ü˜K¨Õ-ñ		.ð.ð × Ñ Ó"ò %ˆØ
�‰ŒØ
�
‰
×Ñ˜)Õ$ð%ð —_‘_Ð%Ø3:ö)Ø-/Œ�—
‘
˜G RÕ(ò)ñ ò (ˆð ò 	(ˆBØ�J‰J×Ñ˜hÕ'ñ	(ð(ô œÓ€FØ�V‰n×$Ñ$€GØ ×%Ñ%Ó'ò 6ˆ	Ø!×4Ñ4°YÓ?‰ˆˆGØ�dŠ?ØˆGØˆw‰×Ñ˜w yÑ1°!Ñ4Õ5ð	6ð
 %Ÿl™l›nò ,Ñˆ�Ü#1°)Ó#<Ñ ˆ�[Ø˜'Ñ"×*Ñ*ˆØ +ˆÔØ +ˆÕð	,ð
 !×%Ñ%Ó'ò @ˆ	Ø!×4Ñ4°YÓ?‰ˆˆGØ�dŠ?ØˆGØ˜'Ñ"×*Ñ*ˆØ˜	Ñ" 1Ñ%ˆØ�G×)Ñ)Ó)Ø�J‰J×Ñ˜a ¨×)>Ñ)>Ñ!>Õ?ð@ô ! §¡Ó1÷áˆAˆtð 	¡ˆu”s˜1“vŠ~¨	Ñ1ð€Gñ ô
 5:¼#¸g¿o¹oÓ:NÓ4OöØ/0™!ˆ”�A“Š Ñ*ò€G„Oð )4×(?Ñ(?×(EÑ(EÓ(G÷Ù$˜T 1ˆ�‰�qÑó€KÕùòG)ùó8ùòùós   Ç'PÍ4PÎ4PÏ2PT)ÚupdatePostTablec                ó¶   — | d   j                   }t        || «       | d= t        d«      x}| d<   ||_         |r"d| v r| d   }|j                  dk(  rd|_        y y y y )NÚCFF2zCFF Úpostg       @g      @)r7   rQ   r   Ú
formatType)ÚfontrR   r7   ÚtablerU   s        rP   r   r   w   sm   € Ø
ˆv‰,×
Ñ
€CÜ�c˜4Ô ØˆVˆÜ# FÓ+Ð+€EˆD�‰LØ€E„Iá˜6 T™>à�F‰|ˆØ�?‰?˜cÒ!Ø!ˆD�Oð "ð *€ó    c                 ó@  — | €ddl }|j                  dd } ddl}|j                  dd¬«      }|j	                  ddd	¬
«       |j	                  ddddd¬«       |j	                  dddd¬«       |j                  d¬«      }|j	                  dddd¬«       |j	                  dddd¬«       |j                  | «      }ddlm}  ||j                  rd n|j                  rd!nd"¬#«       ddl}|j                  }|j                  j                  |«      s |j                  d$j!                  |«      «       |j"                  st%        |d%d&¬'«      n|j"                  }	t'        ||j(                  d¬(«      }
t+        |
«       t,        j/                  d)|	«       |
j1                  |	«       y)*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.)rc   r^   z-qz--quietzTurn verbosity off.)ÚconfigLoggerÚDEBUGÚERRORÚINFO)ÚlevelzNo such file '{}'Tz-CFF)Ú	overWriteÚsuffix)ÚrecalcTimestampÚrecalcBBoxesz	Saving %s)ÚsysÚargvÚargparseÚArgumentParserÚadd_argumentÚadd_mutually_exclusive_groupÚ
parse_argsÚ	fontToolsrf   ÚverboseÚquietÚosr\   ÚpathÚisfileÚerrorÚformatÚoutputr   r   r`   r   ÚlogÚinfoÚsave)Úargsro   rq   ÚparserÚloggingGroupÚoptionsrf   ry   ÚinfileÚoutfilerW   s              rP   r   r   …   s²  € à€|Ûà�x‰x˜˜ˆ|ˆãà×$Ñ$Ø$Ø1ð %ó €Fð ×ÑØ˜Ð+Kð ô ð ×ÑØØØØØBð ô ð ×ÑØØØØIð	 ô ð ×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Ôä‡H�HØØôð 	‡I�IˆgÕrY   Ú__main__)N)Ú__doc__ÚfontTools.ttLibr   r   ÚfontTools.misc.cliToolsr   ÚfontTools.cffLibr   r   r   r	   r
   rK   r   Úcollectionsr   ÚloggingÚ__all__Ú	getLoggerr   rQ   r   r   Ú__name__ro   Úexitrp   © rY   rP   ú<module>r”      s‹   ðÙ ç ,Ý 6÷õ õ "Ý #Û ð ˜vÐ
&€ð €g×ÑÐ*Ó+€òYð@ /3ô "ó@ðF ˆzÒÛà€C‡H�H‰T�#—(‘(˜1˜2�,ÓÕ ð rY   