Ë
    À[;j.,  ã                   ó^  — d dl mZmZ d dlmZ d dlmZ d dlmZm	Z	 d dl
mZ d dl­ d dlZ ej                  d«      Zeeeeeeed	œ ej(                  d
«      _        deeeeed„ eeed„ dœZi de“de“de“dd„ “de“d ee«      “de“de“de“de“de“de“de“de“de“dd „ “d!e“d"ei¥ ej(                  d#«      _        eeeeeeeeeeeeeed$œ ej(                  d%«      _        eeeeeeeeeeeeeed&œ ej(                  d'«      _        dd(„ eeeeed)œZd*„ Zi d+e“de“d,e“d-e“d.e“d/e“d0e“d1e“d2e“d3e“d4e“d5e“d6e“d7e“d8e“d9e“d:e“ ee«       ee«       ee«       ee«       ee«       ee«       ee«       ee«       ee«      d;œ	¥ ej(                  d<«      _         e ej(                  d<«      «      d=„ «       Z eeeeed>„ ed?„  ee!«      d@„ dAœ
 ej(                  dB«      _        ee!dCœx ej(                  dD«      _         ej(                  dE«      _        eedFœ ej(                  dG«      _        eedHœ ej(                  dI«      _        ee!e"eedJœ ej(                  dK«      _         e ej(                  dK«      «      dL„ «       Z dM„  ej(                  dN«      _        dO„  ej(                  dP«      _        dQ„  ej(                  dR«      _        dS„  ej(                  dT«      _         e ej(                  dU«      «      dV„ «       Z  e ej(                  dW«      «      dX„ «       Z y)Yé    )ÚttLibÚcffLib)ÚT2WidthExtractor)ÚDefaultTable)Ú
add_methodÚmergeObjects)ÚcomputeMegaCmap)Ú*NzfontTools.merge)r
   ÚtableTagÚtableVersionÚ	numGlyphsÚ
maxStorageÚmaxFunctionDefsÚmaxInstructionDefsÚmaxpé   c                  ó   — y©Nr   © ©Úbits    ú_G:\00. PROJECTS\API\Inventory\templateJSON\kerjaOCR\Lib\site-packages\fontTools/merge/tables.pyÚ<lambda>r   $   s   € �1ó    c                  ó   — yr   r   r   s    r   r   r   (   s   € �Ar   )Úsizer
   é   é   é   é   é   é   é   é   é   r   r   ÚfontRevisionÚcheckSumAdjustmentc                  ó   — yr   r   ©Úlsts    r   r   r   /   s   €  ar   ÚmagicNumberÚflagsÚ
unitsPerEmÚcreatedÚmodifiedÚxMinÚyMinÚxMaxÚyMaxÚmacStyleÚlowestRecPPEMÚfontDirectionHintc                  ó   — y)Nr   r   r)   s    r   r   r   ;   s   €  Qr   ÚindexToLocFormatÚglyphDataFormatÚhead)r
   r   r   ÚascentÚdescentÚlineGapÚadvanceWidthMaxÚminLeftSideBearingÚminRightSideBearingÚ
xMaxExtentÚcaretSlopeRiseÚcaretSlopeRunÚcaretOffsetÚnumberOfHMetricsÚhhea)r
   r   r   r;   r<   r=   ÚadvanceHeightMaxÚminTopSideBearingÚminBottomSideBearingÚ
yMaxExtentrB   rC   rD   ÚnumberOfVMetricsÚvheac                  ó   — yr   r   r   s    r   r   r   d   s   € �Qr   )r   r
   r   r   r   é   é	   c                 ó&  — t        | «      } t        d„ | D «       «      ryt        t        | «      «      D ]<  }| |   dz  r| |xx   dz  cc<   Œ| |   dz  r| |xx   dz  cc<   Œ/| |   dk(  sŒ8d| |<   Œ>  t	        t
        «      | «      }|dz  r|dz  }|S )	Nc              3   ó&   K  — | ]	  }|d k(  –— Œ y­w)r   Nr   )Ú.0Úitems     r   Ú	<genexpr>z!mergeOs2FsType.<locals>.<genexpr>o   s   è ø€ Ð
%¡˜ˆ4�1�9¡ùs   ‚r   é   éýÿÿÿrN   é   r   ióÿÿÿ)ÚlistÚallÚrangeÚlenÚ	mergeBitsÚos2FsTypeMergeBitMap)r*   ÚiÚfsTypes      r   ÚmergeOs2FsTyper`   m   s    € Ü
ˆs‹)€CÜ
Ñ
%¡Ó
%Ô%Øô ”3�s“8Ž_ˆàˆq‰6�FŠ?Ø�‹F�gÑŒFà�‰V�fŠ_Ø�‹F�fÑŒFà�‰V�q‹[ØˆC�ŠFð ð -ŒYÔ+Ó,¨SÓ1€Fà�‚Ø�'ÑˆØ€Mr   r
   ÚversionÚxAvgCharWidthr_   ÚpanoseÚulUnicodeRange1ÚulUnicodeRange2ÚulUnicodeRange3ÚulUnicodeRange4ÚfsFirstCharIndexÚfsLastCharIndexÚsTypoAscenderÚsTypoDescenderÚsTypoLineGapÚusWinAscentÚusWinDescent)	ÚulCodePageRange1ÚulCodePageRange2ÚsxHeightÚ
sCapHeightÚusDefaultCharÚusBreakCharÚusMaxContextÚusLowerOpticalPointSizeÚusUpperOpticalPointSizezOS/2c                 óâ   — t        j                  | ||«       | j                  dk  r| xj                  dz  c_        | j                  dk\  r$| j                  dz  r| xj                  dz  c_        | S )Nr   iÿüÿÿr   rN   éûÿÿÿ)r   Úmergera   r_   )ÚselfÚmÚtabless      r   rz   rz   ¦   s[   € ä×Ñ�t˜Q Ô'Ø‡|�|�aÒà�Š�wÑ�Ø‡|�|�qÒð �;‰;˜ÒØ�KŠK˜7Ñ"�KØ€Kr   c                  ó   — yr   r   r)   s    r   r   r   »   s   €  r   c                  ó   — yr   r   r)   s    r   r   r   ½   s   € ˜qr   c                 ó   — g S ©Nr   r)   s    r   r   r   ¿   s   € ™br   )
r
   r   Ú
formatTypeÚisFixedPitchÚminMemType42ÚmaxMemType42ÚminMemType1ÚmaxMemType1ÚmappingÚ
extraNamesÚpost)r   ÚmetricsÚvmtxÚhmtx)r   ÚnamesÚname)r
   r   Úloca)r   ÚglyphsÚ
glyphOrderÚ_reverseGlyphOrderÚaxisTagsÚglyfc                 óü   — t        |«      D ]X  \  }}|j                  j                  «       D ]6  }|r|j                  «        |j	                  «       sŒ&|j                  |«       Œ8 ŒZ t        j                  | ||«      S r�   )Ú	enumerater‘   ÚvaluesÚremoveHintingÚisCompositeÚexpandr   rz   )r{   r|   r}   r^   ÚtableÚgs         r   rz   rz   Ú   sh   € ä˜fÖ%‰ˆˆ5Ø—‘×$Ñ$Ö&ˆAÙð —‘Ô!ð �}‰}�Ø—‘˜•ñ 'ð &ô ×Ñ˜d A vÓ.Ð.r   c                 ó   — t        |«      S r�   ©Úfirst©r{   r*   s     r   r   r   é   ó   € ¼¸s¼r   Úprepc                 ó   — t        |«      S r�   rŸ   r¡   s     r   r   r   ê   r¢   r   Úfpgmc                 ó   — t        |«      S r�   rŸ   r¡   s     r   r   r   ë   r¢   r   zcvt c                 ó   — t        |«      S r�   rŸ   r¡   s     r   r   r   ì   s   € ¼Øô:r   ÚgaspzCFF c                 óª  — t        d„ |D «       «      rt        d«      ‚|D ]  }|j                  j                  «        Œ |d   }|j                  d   }|j                  }|j
                  |j                  }}g }	g }
t        |j                  «       «      }|j                  j                  D ])  }||vr|	j                  |«       Œ|
j                  |«       Œ+ t        |j                  «      }|j                  }t        j                  dt!        |«      «       t#        |dd  d¬«      D �]þ  \  }}|j                  d   }|j                  j
                  |j                  j                  }}||k7  xs ||k7  }||_        t        |j                  «       «      }|j                  j                  D ]  }||v sŒ|
j                  |«       Œ |j                  }|j                  j$                  }t        j                  d|t!        |«      «       |j'                  |j                  «       |j(                  r\t#        |j*                  t!        |«      ¬«      D ]9  \  }}||j*                  |<   |j,                  j.                  j                  d «       Œ; |j*                  D ]Œ  }|r€||   }t1        «       }t3        g g ||«      }|j5                  |«       |j6                  }||ur|j8                  j;                  d«       n|}||k7  r|j8                  j=                  d||z
  «       ||   ||<   ŒŽ �Œ ||_        t!        |«      |_        |
|	z   |j                  _	        |S )Nc              3   óN   K  — | ]  }t        |j                  d    d«      –— Œ y­w)r   ÚFDSelectN)ÚhasattrÚcff)rR   rœ   s     r   rT   zmerge.<locals>.<genexpr>ó   s    è ø€ Ð
A¹&°Œ7�5—9‘9˜Q‘< ×,¹&ùs   ‚#%z1Merging CID-keyed CFF tables is not supported yetr   zFONT 0 CharStrings: %d.r   )ÚstartzFont %d CharStrings: %d.) ÚanyÚNotImplementedErrorr­   ÚdesubroutinizeÚPrivateÚdefaultWidthXÚnominalWidthXÚsetÚgetGlyphOrderÚstringsÚappendrX   ÚcharsetÚCharStringsÚlogÚdebugr[   r—   ÚGlobalSubrsÚextendÚcharStringsAreIndexedÚcharStringsÚcharStringsIndexÚitemsÚobjectr   ÚexecuteÚwidthÚprogramÚpopÚinsertr   )r{   r|   r}   rœ   ÚnewcffÚnewfontÚprivateÚnewDefaultWidthXÚnewNominalWidthXÚstoredNamesStringsÚglyphOrderStringsr’   r�   ÚchrsetÚnewcsr^   Úfontr³   r´   ÚwidthsDifferÚfontGlyphOrderÚcsÚgsÚcÚdefaultWidthXTokenÚ	extractorrÅ   s                              r   rz   rz   ñ   sû  € ä
Ñ
A¹&Ó
AÔAÜ!Ð"UÓVÐVãˆØ�	‰	× Ñ Õ"ð ð �A‰Y€FØ�j‰j˜‰m€GØ�o‰o€GØ)0×)>Ñ)>À×@UÑ@UÐ&ÐØÐØÐÜ�W×*Ñ*Ó,Ó-€Jà—‘×'Ô'ˆØ�zÑ!Ø×%Ñ% dÕ+à×$Ñ$ TÕ*ð	 (ô �'—/‘/Ó"€FØ×Ñ€EÜ‡I�IÐ'¬¨U«Ô4ä˜f Q R˜j°×2Ð2‰ˆˆ5Ø�y‰y˜‰|ˆà�L‰L×&Ñ&Ø�L‰L×&Ñ&ð %ˆð
 Ð-Ñ-ÒR°ÐBRÑ1Rð 	ð ˆŒÜ˜T×/Ñ/Ó1Ó2ˆØ—L‘L×(Ô(ˆDØ�~Ò%Ø!×(Ñ(¨Õ.ð )ð ×ÑˆØ�Y‰Y×"Ñ"ˆÜ�	‰	Ð,¨a´°R³Ô9Ø�‰�d—l‘lÔ#Ø×&Ò&Ü$ R§^¡^¼3¸u»:×F‘��4Ø*+�×!Ñ! $Ñ'Ø×&Ñ&×,Ñ,×3Ñ3°DÕ9ð Gð —N”NˆDÙØ�t‘H�Ü%+£XÐ"Ü,¨R°°]ÐDVÓW�	Ø×!Ñ! !Ô$Ø!Ÿ™�ØÐ 2Ñ2ð —I‘I—M‘M !Õ$à)�EØÐ,Ò,Ø—I‘I×$Ñ$ Q¨Ð0@Ñ(@ÔAØ˜T™(ˆE�$ŠKò #ð- 3ðN €G„OÜ˜F›€GÔØ/Ð2DÑD€G‡O�OÔà€Mr   Úcmapc                 óJ  — t        |d«      st        ||«       |j                  }|j                  «       D ��ci c]  \  }}|dk  sŒ||“Œ }}}g | _        t        j                  d«      }t        |«      t        |«      k7  rL |j                  d   d«      }d|_	        d|_
        d|_        ||_        | j                  j                  |«        |j                  d   d«      }d|_	        d|_
        d|_        ||_        | j                  j                  d|«       |j                  }	|	rT |j                  d	   d	«      }
d|
_	        d
|
_
        d|
_        i |
_        |	|
_        | j                  j                  d|
«       d| _        t        | j                  «      | _        | S c c}}w )NrÚ   iÿÿ  rU   r   é
   r   rW   r   r$   r    )r¬   r	   rÚ   rÂ   r}   r   ÚgetTableModuler[   Úcmap_classesÚ
platformIDÚ	platEncIDÚlanguager¸   rÈ   ÚuvsDictr   ÚnumSubTables)r{   r|   r}   rÚ   ÚuniÚgidÚcmapBmpOnlyÚmoduleÚ	cmapTablerâ   ÚuvsTables              r   rz   rz   9  s„  € ä�1�fÔÜ˜˜6Ô"Ø�6‰6€Dà,0¯J©J¬LÔJ©L¡  S¸CÀ6»M�3˜‘8¨L€KÑJØ€D„KÜ×!Ñ! &Ó)€FÜ
ˆ;Óœ3˜t›9Ò$à+�F×'Ñ'¨Ñ+¨BÓ/ˆ	Ø ˆ	ÔØ ˆ	ÔØˆ	ÔØˆ	ŒØ�‰×Ñ˜9Ô%à&�×#Ñ# AÑ& qÓ)€IØ€IÔØ€IÔØ€IÔØ €I„Nà‡K�K×Ñ�q˜)Ô$à�i‰i€GÙà*�6×&Ñ& rÑ*¨2Ó.ˆØˆÔØˆÔØˆÔØˆŒØ"ˆÔà�‰×Ñ˜1˜hÔ'Ø€DÔÜ˜DŸK™KÓ(€DÔØ€KùóC Ks   ¸FÁF)#Ú	fontToolsr   r   ÚfontTools.misc.psCharStringsr   Ú#fontTools.ttLib.tables.DefaultTabler   ÚfontTools.merge.baser   r   ÚfontTools.merge.cmapr	   ÚfontTools.merge.utilÚloggingÚ	getLoggerr»   ÚmaxÚequalÚsumr    ÚgetTableClassÚmergeMapÚ
bitwise_orÚbitwise_andÚheadFlagsMergeBitMapr\   Úcurrent_timeÚminÚrecalculater]   r`   ÚonlyExistingrz   ÚsumDictsÚsumListsr   r   r   Ú<module>r      s4  ð÷
 $Ý 9Ý <ß 9Ý 0Ü "Û ð €g×ÑÐ)Ó*€ð 
ØØØØØØñ
(Ð €× Ñ �FÓ Ô $ð Ø	ØØØØÙØØØÙñÐ ð(Ø�ð(à�Cð(ð �Cð(ð ™-ð	(ð
 �5ð(ð ‰YÐ+Ó,ð(ð �%ð(ð ˆ|ð(ð �ð(ð ˆCð(ð ˆCð(ð ˆCð(ð ˆCð(ð �ð(ð �Sð(ð  ™ð!(ð" ˜ð#(ð$ �uñ%(Ð €× Ñ �FÓ Ô $ð, 
ØØØØØØØØØØØØØ#ñ(Ð €× Ñ �FÓ Ô $ð$ 
ØØØØØØØØØØØØØ#ñ(Ð €× Ñ �FÓ Ô $ð$ Ù	ØØØØØñÐ òð0(Øˆð(à�ð(ð ˆsð(ð �Uð	(ð
 ˆnð(ð ˆeð(ð �zð(ð �zð(ð �zð(ð �zð(ð ˜ð(ð �sð(ð �Sð(ð �cð(ð �Cð(ð  �3ð!(ð" �Cð#(ñ& % ZÓ0Ù$ ZÓ0á˜SÓ!Ù˜sÓ#Ù! %Ó(Ù Ó&Ù  Ó%á+¨CÓ0Ù+¨CÓ0ò;(Ð €× Ñ �FÓ Ô $ñB ÐˆE×Ñ Ó'Ó(ñó )ðð 
ØØØØÙ!ØÙ Ù˜HÓ%Ù ñ(Ð €× Ñ �FÓ Ô $ð ØñOð Ð €× Ñ �FÓ Ô $Ð': u×':Ñ':¸6Ó'BÔ'Kð Øñ(Ð €× Ñ �FÓ Ô $ð 
Øñ(Ð €× Ñ �FÓ Ô $ð ØØØ%Øñ(Ð €× Ñ �FÓ Ô $ñ ÐˆE×Ñ Ó'Ó(ñ/ó )ð/ñ (DÐ €× Ñ �FÓ Ô $Ù'CÐ €× Ñ �FÓ Ô $Ù'CÐ €× Ñ �FÓ Ô $ñ(Ð €× Ñ �FÓ Ô $ñ
 ÐˆE×Ñ Ó'Ó(ñDó )ðDñN ÐˆE×Ñ Ó'Ó(ñ&ó )ñ&r   