§
    ÛóÉj;F  ã                   óØ  — 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	 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mZmZ ddlmZmZ ddlmZmZmZ d„ Z G d„ de¦  «        Z G d„ de¦  «        Z  G d„ de¦  «        Z! G d„ de¦  «        Z" G d„ de¦  «        Z# G d„ de#¦  «        Z$ G d„ de#¦  «        Z%d„ Z& G d„ de#¦  «        Z'dd œd!„Z( G d"„ d#e¦  «        Z) G d$„ d%¦  «        Z*d&S )'zGlyphSets returned by a TTFont.é    )ÚABCÚabstractmethod)ÚMapping)Úcontextmanager)ÚcopyÚdeepcopy©ÚSimpleNamespace)ÚVector)ÚotRoundÚfixedToFloat)ÚdeprecateFunction)Ú	TransformÚDecomposedTransform)ÚTransformPenÚTransformPointPen)ÚDecomposingRecordingPenÚlerpRecordingsÚreplayRecordingc                 ó~  — d| v r| d         j         S d}|                      d¦  «        }|�|j        }d| v rpt          t	          | d         j                             ¦   «         ¦  «        ¦  «        }t          |j        dd ¦  «        }|�t          ||j
        j        j        ¦  «        }d„ t          |¦  «        D ¦   «         S )NÚfvarr   ÚgvarÚCFF2ÚvarStorec                 ó.   — g | ]}t          |¬ ¦  «        ‘ŒS )©ÚaxisTagr	   )Ú.0Úis     ú/home/lighthouse/badge-speaker-benchmark/.benchmark-venv-community/lib64/python3.11/site-packages/fontTools/ttLib/ttGlyphSet.pyú
<listcomp>z%_getVariationAxes.<locals>.<listcomp>%   s#   € ÐAÐAÐA¨1�O AÐ&Ñ&Ô&ÐAÐAÐAó    )ÚaxesÚgetÚ	axisCountÚnextÚiterÚcffÚvaluesÚgetattrÚCharStringsÚmaxÚ
otVarStoreÚVarRegionListÚRegionAxisCountÚrange)Úfontr%   r   r(   r   s        r    Ú_getVariationAxesr2      sÃ   € Ø�€~€~Ø�FŒ|Ô Ð ð €IØ�8Š8�FÑÔ€DØÐØ”Nˆ	Ø�€~€~Ý•4˜˜VœÔ(×/Ò/Ñ1Ô1Ñ2Ô2Ñ3Ô3ˆÝ˜3œ?¨J¸Ñ=Ô=ˆØÐÝØ˜8Ô.Ô<ÔLñô ˆIð BÐAµ°iÑ0@Ô0@ÐAÑAÔAÐAr"   c                   óŽ   — e Zd ZdZddœd„Zedefd„¦   «         Zed„ ¦   «         Zd„ Z	d	„ Z
d
„ Z ede¬¦  «        d„ ¦   «         ZdS )Ú_TTGlyphSetzlGeneric dict-like GlyphSet class that pulls metrics from hmtx and
    glyph shape from TrueType or CFF.
    T©ÚrecalcBoundsc                ó&  — || _         || _        t          |¦  «        | _        d„ | j        D ¦   «         | _        |�|ni | _        i | _        |�|ni | _        d| _        g | _	        g | _
        || _        |d         j        | _        t          |                     d¦  «        dd ¦  «        | _        d | _        |rYddlm} t          |                     d¦  «        dd ¦  «        | _        | j        �% || j        j        | j        |¦  «        | _        d S d S d S )	Nc                 ó   — i | ]
}|j         d “ŒS )r   r   )r   Úaxiss     r    ú
<dictcomp>z(_TTGlyphSet.__init__.<locals>.<dictcomp>1   s   € Ð)PÐ)PÐ)P¸d¨$¬,¸Ð)PÐ)PÐ)Pr"   r   ÚhmtxÚvmtxÚmetrics©ÚVarStoreInstancerÚHVARÚtable)r6   r1   r2   r#   ÚdefaultLocationNormalizedÚlocationÚrawLocationÚoriginalLocationÚdepthÚlocationStackÚrawLocationStackÚglyphsMappingr=   ÚhMetricsr*   r$   ÚvMetricsÚ	hvarTableÚfontTools.varLib.varStorer?   ÚVarStoreÚhvarInstancer)Úselfr1   rC   rI   r6   r?   s         r    Ú__init__z_TTGlyphSet.__init__-   s0  € Ø(ˆÔØˆŒ	Ý% dÑ+Ô+ˆŒ	Ø)PÐ)PÀdÄiÐ)PÑ)PÔ)PˆÔ&Ø$,Ð$8˜˜¸bˆŒØˆÔØ,4Ð,@  ÀbˆÔØˆŒ
ØˆÔØ "ˆÔØ*ˆÔØ˜VœÔ,ˆŒÝ §¢¨Ñ 0Ô 0°)¸TÑBÔBˆŒØˆŒØð 	ØCÐCÐCÐCÐCÐCå$ T§X¢X¨fÑ%5Ô%5°wÀÑEÔEˆDŒNØŒ~Ð)Ø%6Ð%6Ø”NÔ+¨T¬Y¸ñ&ô &�Ô"Ð"Ð"ð	ð 	ð *Ð)r"   Úresetc              #   óº  K  — | j                              | j        ¦  «         | j                             | j        ¦  «         |r=| j                             ¦   «         | _        | j                             ¦   «         | _        n%| j                             ¦   «         | _        i | _        | j                             |¦  «         | j                             |¦  «         	 d V — | j          	                    ¦   «         | _        | j         	                    ¦   «         | _        d S # | j          	                    ¦   «         | _        | j         	                    ¦   «         | _        w xY w©N)
rG   ÚappendrC   rH   rD   rE   r   rB   ÚupdateÚpop)rP   rC   rR   s      r    ÚpushLocationz_TTGlyphSet.pushLocationF   s8  è è € àÔ×!Ò! $¤-Ñ0Ô0Ð0ØÔ×$Ò$ TÔ%5Ñ6Ô6Ð6Øð 	"Ø Ô1×6Ò6Ñ8Ô8ˆDŒMØ#Ô=×BÒBÑDÔDˆDÔÐà œM×.Ò.Ñ0Ô0ˆDŒMØ!ˆDÔØŒ×Ò˜XÑ&Ô&Ð&ØÔ×Ò Ñ)Ô)Ð)ð	;ØˆJˆJˆJà Ô.×2Ò2Ñ4Ô4ˆDŒMØ#Ô4×8Ò8Ñ:Ô:ˆDÔÐÐøð !Ô.×2Ò2Ñ4Ô4ˆDŒMØ#Ô4×8Ò8Ñ:Ô:ˆDÔÐ:Ð:Ð:Ð:s   ÃD Ä>Ec              #   óŒ   K  — 	 | j         }| xj         dz  c_         |V — | xj         dz  c_         d S # | xj         dz  c_         w xY w)Né   )rF   )rP   rF   s     r    Ú	pushDepthz_TTGlyphSet.pushDepthY   sT   è è € ð	Ø”JˆEØˆJŒJ˜!‰OˆJŒJØˆKˆKˆKàˆJŒJ˜!‰OˆJŒJˆJˆJøˆDˆJŒJ˜!‰OˆJŒJˆJˆJˆJˆJs	   „1 ±Ac                 ó   — || j         v S rT   ©rI   ©rP   Ú	glyphNames     r    Ú__contains__z_TTGlyphSet.__contains__b   s   € Ø˜DÔ.Ð.Ð.r"   c                 óN   — t          | j                             ¦   «         ¦  «        S rT   )r'   rI   Úkeys©rP   s    r    Ú__iter__z_TTGlyphSet.__iter__e   s   € Ý�DÔ&×+Ò+Ñ-Ô-Ñ.Ô.Ð.r"   c                 ó*   — t          | j        ¦  «        S rT   )ÚlenrI   rc   s    r    Ú__len__z_TTGlyphSet.__len__h   s   € Ý�4Ô%Ñ&Ô&Ð&r"   z#use 'glyphName in glyphSet' instead)Úcategoryc                 ó   — || j         v S rT   r]   r^   s     r    Úhas_keyz_TTGlyphSet.has_keyk   s   € ð ˜DÔ.Ð.Ð.r"   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__rQ   r   ÚboolrX   r[   r`   rd   rg   r   ÚDeprecationWarningrj   © r"   r    r4   r4   (   sã   € € € € € ðð ð GKð ð ð ð ð ð2 ð;¨Dð ;ð ;ð ;ñ „^ð;ð$ ðð ñ „^ðð/ð /ð /ð/ð /ð /ð'ð 'ð 'ð ÐØ-Ð8Jðñ ô ð/ð /ñô ð/ð /ð /r"   r4   c                   ó&   ‡ — e Zd Zdˆ fd„	Zd„ Zˆ xZS )Ú_TTGlyphSetGlyfTc                 óª   •— |d         | _         t          ¦   «                              ||| j         |¬¦  «         |                     d¦  «        | _        d S )NÚglyfr5   r   )Ú	glyfTableÚsuperrQ   r$   Ú	gvarTable)rP   r1   rC   r6   Ú	__class__s       €r    rQ   z_TTGlyphSetGlyf.__init__s   sH   ø€ Ø˜fœˆŒÝ‰Œ×Ò˜˜x¨¬ÀlÐÑSÔSÐSØŸš &Ñ)Ô)ˆŒˆˆr"   c                 ó0   — t          | || j        ¬¦  «        S )Nr5   )Ú_TTGlyphGlyfr6   r^   s     r    Ú__getitem__z_TTGlyphSetGlyf.__getitem__x   s   € Ý˜D )¸$Ô:KÐLÑLÔLÐLr"   )T©rk   rl   rm   rQ   r|   Ú__classcell__©ry   s   @r    rs   rs   r   sS   ø€ € € € € ð*ð *ð *ð *ð *ð *ð
Mð Mð Mð Mð Mð Mð Mr"   rs   c                   óF   ‡ — e Zd Zˆ fd„Zd„ Zd„ Zedefd„¦   «         Zˆ xZ	S )Ú_TTGlyphSetCFFc                 ó
  •— d|v rdnd}t          ||         j                             ¦   «         ¦  «        d         j        | _        t          ¦   «                              ||| j        ¦  «         |                      |¦  «         d S )Nr   zCFF r   )Úlistr(   r)   r+   ÚcharStringsrw   rQ   ÚsetLocation)rP   r1   rC   ÚtableTagry   s       €r    rQ   z_TTGlyphSetCFF.__init__}   sx   ø€ Ø# t˜^˜^�6�6°ˆÝ  X¤Ô 2× 9Ò 9Ñ ;Ô ;Ñ<Ô<¸QÔ?ÔKˆÔÝ‰Œ×Ò˜˜x¨Ô)9Ñ:Ô:Ð:Ø×Ò˜Ñ"Ô"Ð"Ð"Ð"r"   c                 ó"   — t          | |¦  «        S rT   )Ú_TTGlyphCFFr^   s     r    r|   z_TTGlyphSetCFF.__getitem__ƒ   s   € Ý˜4 Ñ+Ô+Ð+r"   c                 ó°   — d | _         |rEddlm} t          | j        dd ¦  «        }|�% ||j        | j        |¦  «        }|j        | _         d S d S d | _         d S )Nr   r>   r   )ÚblenderrM   r?   r*   r„   r-   r#   ÚinterpolateFromDeltas)rP   rC   r?   r   Ú	instancers        r    r…   z_TTGlyphSetCFF.setLocation†   s|   € ØˆŒØð 
	 ð DÐCÐCÐCÐCÐCå˜tÔ/°¸TÑBÔBˆHØÐ#Ø-Ð-¨hÔ.AÀ4Ä9ÈhÑWÔW�	Ø(Ô>�”��ð $Ð#ð  ˆDŒLˆLˆLr"   rR   c              #   ó  K  — |                       |¦  «         t                               | ||¦  «        5 }	 |V — |                       | j        ¦  «         n# |                       | j        ¦  «         w xY w	 d d d ¦  «         d S # 1 swxY w Y   d S rT   )r…   r4   rX   rC   )rP   rC   rR   Úvalues       r    rX   z_TTGlyphSetCFF.pushLocation”   sÙ   è è € à×Ò˜Ñ"Ô"Ð"Ý×%Ò% d¨H°eÑ<Ô<ð 	0Àð0Ø���à× Ò  ¤Ñ/Ô/Ð/Ð/ø�× Ò  ¤Ñ/Ô/Ð/Ð/øøøÐ/ð		0ð 	0ð 	0ñ 	0ô 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0øøøð 	0ð 	0ð 	0ð 	0ð 	0ð 	0s'   ´B¶AºBÁA1Á1BÂBÂ	B)
rk   rl   rm   rQ   r|   r…   r   ro   rX   r~   r   s   @r    r�   r�   |   s}   ø€ € € € € ð#ð #ð #ð #ð #ð,ð ,ð ,ð ð  ð  ð ð0¨Dð 0ð 0ð 0ñ „^ð0ð 0ð 0ð 0ð 0r"   r�   c                   ó$   ‡ — e Zd Zˆ fd„Zd„ Zˆ xZS )Ú_TTGlyphSetVARCc                 ó€   •— || _         t          ¦   «                              |||¦  «         |d         j        | _        d S )NÚVARC)ÚglyphSetrw   rQ   rA   Ú	varcTable)rP   r1   rC   r“   ry   s       €r    rQ   z_TTGlyphSetVARC.__init__Ÿ   s8   ø€ Ø ˆŒÝ‰Œ×Ò˜˜x¨Ñ2Ô2Ð2Ø˜fœÔ+ˆŒˆˆr"   c                 óf   — | j         }||j        j        vr| j        |         S t	          | |¦  «        S rT   )r”   ÚCoverageÚglyphsr“   Ú_TTGlyphVARC)rP   r_   Úvarcs      r    r|   z_TTGlyphSetVARC.__getitem__¤   s6   € ØŒ~ˆØ˜DœMÔ0Ð0Ð0Ø”= Ô+Ð+Ý˜D )Ñ,Ô,Ð,r"   r}   r   s   @r    r�   r�   ž   sG   ø€ € € € € ð,ð ,ð ,ð ,ð ,ð
-ð -ð -ð -ð -ð -ð -r"   r�   c                   ó:   — e Zd ZdZddœd„Zed„ ¦   «         Zd„ ZdS )Ú_TTGlyphaS  Glyph object that supports the Pen protocol, meaning that it has
    .draw() and .drawPoints() methods that take a pen object as their only
    argument. Additionally there are 'width' and 'lsb' attributes, read from
    the 'hmtx' table.

    If the font contains a 'vmtx' table, there will also be 'height' and 'tsb'
    attributes.
    Tr5   c                óš  — || _         || _        || _        |j        |         \  | _        | _        |j        �|j        |         \  | _        | _        nd\  | _        | _        |j	        ra|j
        �\|j
        j        €|j                             |¦  «        n|j
        j        j        |         }| xj        |j        |         z  c_        d S d S d S )N©NN)r“   Únamer6   rJ   ÚwidthÚlsbrK   ÚheightÚtsbrC   rL   ÚAdvWidthMapr1   Ú
getGlyphIDÚmappingrO   )rP   r“   r_   r6   Úvaridxs        r    rQ   z_TTGlyph.__init__µ   sÚ   € Ø ˆŒØˆŒ	Ø(ˆÔØ'Ô0°Ô;ÑˆŒ
�D”HØÔÐ(Ø$,Ô$5°iÔ$@Ñ!ˆDŒK˜œ˜à$.Ñ!ˆDŒK˜œØÔð 	9 Ô!3Ð!?ð Ô%Ô1Ð9ð ”×(Ò(¨Ñ3Ô3Ð3àÔ'Ô3Ô;¸IÔFð ð
 ˆJŒJ˜(Ô0°Ô8Ñ8ˆJŒJˆJˆJð	9ð 	9Ð!?Ð!?r"   c                 ó   — t           ‚)údDraw the glyph onto ``pen``. See fontTools.pens.basePen for details
        how that works.
        )ÚNotImplementedError©rP   Úpens     r    Údrawz_TTGlyph.drawÇ   s
   € õ
 "Ð!r"   c                 óN   — ddl m} |                       ||¦  «        ¦  «         dS )úeDraw the glyph onto ``pen``. See fontTools.pens.pointPen for details
        how that works.
        r   )ÚSegmentToPointPenN)ÚfontTools.pens.pointPenr¯   r¬   )rP   r«   r¯   s      r    Ú
drawPointsz_TTGlyph.drawPointsÎ   s:   € ð 	>Ð=Ð=Ð=Ð=Ð=à�	Š	Ð#Ð# CÑ(Ô(Ñ)Ô)Ð)Ð)Ð)r"   N)rk   rl   rm   rn   rQ   r   r¬   r±   rq   r"   r    r›   r›   «   sg   € € € € € ðð ð =Að 9ð 9ð 9ð 9ð 9ð$ ð"ð "ñ „^ð"ð*ð *ð *ð *ð *r"   r›   c                   ó&   — e Zd Zd„ Zd„ Zd„ Zd„ ZdS )r{   c                 óâ   — |                       ¦   «         \  }}| j                             ¦   «         5 }|rd}|                     || j        j        |¦  «         ddd¦  «         dS # 1 swxY w Y   dS )r¨   r   N)Ú_getGlyphAndOffsetr“   r[   r¬   rv   ©rP   r«   ÚglyphÚoffsetrF   s        r    r¬   z_TTGlyphGlyf.drawØ   s¶   € ð ×/Ò/Ñ1Ô1‰ˆˆvàŒ]×$Ò$Ñ&Ô&ð 	=¨%Øð Ø�à�JŠJ�s˜DœMÔ3°VÑ<Ô<Ð<ð		=ð 	=ð 	=ñ 	=ô 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=øøøð 	=ð 	=ð 	=ð 	=ð 	=ð 	=ó   ±&A$Á$A(Á+A(c                 óâ   — |                       ¦   «         \  }}| j                             ¦   «         5 }|rd}|                     || j        j        |¦  «         ddd¦  «         dS # 1 swxY w Y   dS )r®   r   N)r´   r“   r[   r±   rv   rµ   s        r    r±   z_TTGlyphGlyf.drawPointsä   sË   € ð ×/Ò/Ñ1Ô1‰ˆˆvàŒ]×$Ò$Ñ&Ô&ð 	C¨%Øð Ø�à×Ò˜S $¤-Ô"9¸6ÑBÔBÐBð		Cð 	Cð 	Cñ 	Cô 	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cøøøð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cr¸   c                 óÔ   — | j         j        r!| j         j        �|                      ¦   «         }n| j         j        | j                 }t          |d¦  «        r| j        |j        z
  nd}||fS )NÚxMinr   )	r“   rC   rx   Ú_getGlyphInstancerv   rž   Úhasattrr    r»   )rP   r¶   r·   s      r    r´   z_TTGlyphGlyf._getGlyphAndOffsetð   si   € ØŒ=Ô!ð 	7 d¤mÔ&=Ð&IØ×*Ò*Ñ,Ô,ˆEˆEà”MÔ+¨D¬IÔ6ˆEå*1°%¸Ñ*@Ô*@ÐG�”˜EœJÑ&Ð&ÀaˆØ�fˆ}Ðr"   c           	      óâ  — ddl m} ddlm} ddlm} | j        }|j        }|j        j	        | j
                 }|j        }|j        }|                     | j
        ||¦  «        \  }	}
d\  }}|D ]¨} ||j        |j        ¦  «        }|sŒ|j        }d |v rq|€b|                     | j
        ||¦  «        \  }}|d         dk    r|d         n.t#          t%          t'          |d         ¦  «        ¦  «        ¦  «        } ||||¦  «        }|	 ||¦  «        |z  z  }	Œ©t)          || j
                 ¦  «        }t+          ||	|| j        ¬¦  «        \  }}}}|| _        || _        |j        €|| _        || _        |S )Nr   )Ú	iup_delta)ÚGlyphCoordinates)ÚsupportScalarr�   rZ   r5   )ÚfontTools.varLib.iupr¿   ÚfontTools.ttLib.tables._g_l_y_frÀ   ÚfontTools.varLib.modelsrÁ   r“   rv   rx   Ú
variationsrž   rJ   rK   Ú_getCoordinatesAndControlsrC   r#   Úcoordinatesrƒ   r0   rf   r   Ú_setCoordinatesr6   r    r¢   rL   rŸ   r¡   )rP   r¿   rÀ   rÁ   r“   rv   rÅ   rJ   rK   rÇ   Ú_Ú
origCoordsÚendPtsÚvarÚscalarÚdeltaÚcontrolr¶   rŸ   r    r¡   r¢   s                         r    r¼   z_TTGlyphGlyf._getGlyphInstanceù   sÔ  € Ø2Ð2Ð2Ð2Ð2Ð2ØDÐDÐDÐDÐDÐDØ9Ð9Ð9Ð9Ð9Ð9à”=ˆØÔ&ˆ	ØÔ'Ô2°4´9Ô=ˆ
ØÔ$ˆØÔ$ˆØ"×=Ò=ØŒI�x ñ
ô 
‰ˆ�Qð (Ñˆ
�FØð 	<ð 	<ˆCØ"�] 8Ô#4°c´hÑ?Ô?ˆFØð ØØ”OˆEØ�uˆ}ˆ}ØÐ%Ø*3×*NÒ*NØœ	 8¨Xñ+ô +Ñ'�J ð '.¨a¤j°A¢o o˜ œ
˜
½4ÅÅcÈ'ÐRSÌ*ÁoÄoÑ@VÔ@VÑ;WÔ;Wð ð "˜	 %¨°VÑ<Ô<�ØÐ+Ð+¨EÑ2Ô2°VÑ;Ñ;ˆKˆKå�Y˜tœyÔ)Ñ*Ô*ˆÝ"1Ø�; 	¸Ô8Ið#
ñ #
ô #
Ñˆˆs�F˜Cð ˆŒØˆŒØÔÐ%àˆDŒJØ ˆDŒKØˆr"   N)rk   rl   rm   r¬   r±   r´   r¼   rq   r"   r    r{   r{   ×   sS   € € € € € ð
=ð 
=ð 
=ð
Cð 
Cð 
Cðð ð ð(ð (ð (ð (ð (r"   r{   c                   ó   — e Zd Zd„ ZdS )rˆ   c                 óp   — | j         j        | j                                      || j         j        ¦  «         dS )r¨   N)r“   r„   rž   r¬   rŠ   rª   s     r    r¬   z_TTGlyphCFF.draw%  s1   € ð 	ŒÔ! $¤)Ô,×1Ò1°#°t´}Ô7LÑMÔMÐMÐMÐMr"   N)rk   rl   rm   r¬   rq   r"   r    rˆ   rˆ   $  s(   € € € € € ðNð Nð Nð Nð Nr"   rˆ   c                 óþ  — | j         dk    rH| j        }||         j        }|                     |d¦  «        }| j        }| j        }||cxk    o|k    nc S | j         dk    r#| j        }	|	|| j                 d         z  }	|	dk    S | j         dk    r!| j        D ]}
t          |
|||¦  «        s dS ŒdS | j         dk    r!| j        D ]}
t          |
|||¦  «        r dS ŒdS | j         dk    rt          | j        |||¦  «         S dS )	NrZ   r   é   é   FTé   é   )
ÚFormatÚ	AxisIndexr   r$   ÚFilterRangeMinValueÚFilterRangeMaxValueÚDefaultValueÚVarIdxÚConditionTableÚ_evaluateCondition)Ú	conditionr#   rC   rŒ   Ú	axisIndexr   Ú	axisValueÚminValueÚmaxValuerŽ   Úsubconditions              r    rÞ   rÞ   ,  sf  € ØÔ˜1ÒÐàÔ'ˆ	Ø�y”/Ô)ˆØ—L’L ¨!Ñ,Ô,ˆ	ØÔ0ˆØÔ0ˆØ˜9Ð0Ð0Ò0Ð0¨Ò0Ð0Ð0Ð0Ð0Ø	Ô	˜QÒ	Ð	àÔ&ˆØ�˜9Ô+Ô,¨QÔ/Ñ/ˆØ�qŠyÐØ	Ô	˜QÒ	Ð	à%Ô4ð 	ð 	ˆLÝ% l°D¸(ÀIÑNÔNð Ø�u�uðàˆtØ	Ô	˜QÒ	Ð	à%Ô4ð 	ð 	ˆLÝ! ,°°hÀ	ÑJÔJð Ø�t�tðàˆuØ	Ô	˜QÒ	Ð	å%ØÔ$ d¨H°iñ
ô 
ð 
ð 	
ð ˆur"   c                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )r˜   c                 óH  ‡— ddl m}m} | j        }|j        }|j        j                             | j        ¦  «        }|j	        j
        |         }ddlm}	 ddlm}
 |j        Š |	|j        ‰| j        j        ¦  «        }|j        D �]œ}|j        |j        z  r4|j        j        |j                 }t1          |‰| j        j        |¦  «        sŒFi }|j        �¶|j        j        |j                 }t9          |j        ¦  «        }|j        |k    r|t?          ||j                 d¦  «        z  }tA          |¦  «        tA          |¦  «        k    s&J tA          |¦  «        tA          |¦  «        f¦   «         ‚ˆfd„tC          ||¦  «        D ¦   «         }|j"        |k    r1||j"                 }tG          |¦  «        }| $                    |¦  «         |j%        }|j        |j&        z  }| j        j         '                    ||¦  «        5  | j         '                    ||¦  «        5  | j        |j(        k    }|s:	 | )                    |j(        || j        j*        ¦  «         n# tV          $ r d}Y nw xY w|rŒ| ,                    ¦   «         }|j(        | j        k    r| j        n|j        }||j(                 }|r&t[          ||¦  «        }| .                    |¦  «         n%t_          ||¦  «        }| 0                    |¦  «         ddd¦  «         n# 1 swxY w Y   ddd¦  «         n# 1 swxY w Y   �ŒždS )	r¨   r   )ÚVarComponentFlagsÚNO_VARIATION_INDEX)ÚMultiVarStoreInstancerr>   Né   c                 ó2   •— i | ]\  }}‰|         j         |“ŒS rq   r   )r   r   Úvr#   s      €r    r:   z&_TTGlyphVARC._draw.<locals>.<dictcomp>x  s%   ø€ ÐXÐXÐX±4°1°a˜D œGœO¨QÐXÐXÐXr"   T)1ÚfontTools.ttLib.tables.otTablesrç   rè   r“   r”   r–   r—   Úindexrž   ÚVarCompositeGlyphsÚVarCompositeGlyphÚfontTools.varLib.multiVarStoreré   rM   r?   r#   ÚMultiVarStorerC   Ú
componentsÚflagsÚHAVE_CONDITIONÚConditionListrÝ   ÚconditionIndexrÞ   ÚaxisIndicesIndexÚAxisIndicesListÚItemr   Ú
axisValuesÚaxisValuesVarIndexÚfi2flrf   ÚzipÚtransformVarIndexr   ÚapplyTransformDeltasÚ	transformÚRESET_UNSPECIFIED_AXESrX   r_   ÚaddVarComponentrD   ÚAttributeErrorÚtoTransformr   r±   r   r¬   )rP   r«   Ú
isPointPenrç   rè   r“   r™   Úidxr¶   ré   r?   rŒ   Úcomprß   rC   ÚaxisIndicesrû   Údeltasr  rR   ÚshouldDecomposeÚtÚcompGlyphSetÚgÚtPenr#   s                            @r    Ú_drawz_TTGlyphVARC._drawP  s  ø€ ð	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð
 ”=ˆØÔ!ˆØŒmÔ"×(Ò(¨¬Ñ3Ô3ˆØÔ'Ô9¸#Ô>ˆàIÐIÐIÐIÐIÐIØ?Ð?Ð?Ð?Ð?Ð?àŒ}ˆØ*Ð*ØÔ  d¤mÔ&<ñ
ô 
ˆ	ð Ô$ð 4	)ñ 4	)ˆDØŒzÐ-Ô<Ñ<ð Ø Ô.Ô=¸dÔ>QÔR�	Ý)Ø˜t T¤]Ô%;¸Yñô ð ð àˆHØÔ$Ð0Ø"Ô2Ô7¸Ô8MÔN�Ý# D¤OÑ4Ô4�
ØÔ*Ð.@Ò@Ð@Ø¥%¨	°$Ô2IÔ(JÈBÑ"OÔ"OÑO�JÝ˜;Ñ'Ô'­3¨z©?¬?Ò:Ð:Ð:Ý˜Ñ$Ô$Ý˜
‘O”Oð=Ñ:Ô:Ð:ð YÐXÐXÐX½3¸{ÈJÑ;WÔ;WÐXÑXÔX�àÔ%Ð);Ò;Ð;Ø" 4Ô#9Ô:�Ý ‘~”~�Ø×)Ò)¨&Ñ1Ô1Ð1ØœˆIà”JÐ!2Ô!IÑIˆEØ”Ô'×4Ò4°X¸uÑEÔEð )ð )Ø”]×/Ò/°¸%Ñ@Ô@ð )ð )Ø&*¤i°4´>Ò&A�Oà*ð 3ð3Ø×/Ò/Ø $¤°	¸4¼=Ô;Tñô ð ð øõ  .ð 3ð 3ð 3Ø.2˜O˜O˜Oð3øøøð 'ð )Ø%×1Ò1Ñ3Ô3˜ð  $œ~°´Ò:Ð:ð !œM˜Mà!)Ô!2ð %ð
 )¨¬Ô8˜Ø%ð )Ý#4°S¸!Ñ#<Ô#<˜DØŸLšL¨Ñ.Ô.Ð.Ð.å#/°°QÑ#7Ô#7˜DØŸFšF 4™LœL˜Lð1)ð )ð )ñ )ô )ð )ð )ð )ð )ð )ð )øøøð )ð )ð )ð )ð)ð )ð )ñ )ô )ð )ð )ð )ð )ð )ð )øøøð )ð )ð )ð )ùð74	)ð 4	)s[   Ç;LÈK>È+&IÉK>ÉI!	ÉK>É I!	É!BK>Ë2LË>LÌLÌLÌLÌL	ÌL	c                 ó2   — |                       |d¦  «         d S )NF©r  rª   s     r    r¬   z_TTGlyphVARC.drawœ  s   € Ø�
Š
�3˜ÑÔÐÐÐr"   c                 ó2   — |                       |d¦  «         d S )NTr  rª   s     r    r±   z_TTGlyphVARC.drawPointsŸ  s   € Ø�
Š
�3˜ÑÔÐÐÐr"   N)rk   rl   rm   r  r¬   r±   rq   r"   r    r˜   r˜   O  sE   € € € € € ðJ)ð J)ð J)ðXð ð ðð ð ð ð r"   r˜   Tr5   c                óZ  — t          |¦  «        dk    sJ ‚|d         d         }|d         d         }|d         d         }|d         d         }t          d¦  «        D ]}|d= Œ|                      ¦   «         rxt          |¦  «        t          | j        ¦  «        k    sJ ‚d„ | j        D ¦   «         | _        t	          || j        ¦  «        D ]$\  }	}
t          |
d	¦  «        r|	\  |
_        |
_        Œ%nO| j        dk    rt          |¦  «        dk    sJ ‚n.t          |¦  «        t          | j	        ¦  «        k    sJ ‚|| _	        |r|  
                    |¦  «         t          ||z
  ¦  «        }t          ||z
  ¦  «        }t          | j        |z
  ¦  «        }t          || j        z
  ¦  «        }||||fS )
NrÕ   éüÿÿÿr   éýÿÿÿéþÿÿÿrZ   éÿÿÿÿc                 ó,   — g | ]}t          |¦  «        ‘ŒS rq   )r   )r   r  s     r    r!   z#_setCoordinates.<locals>.<listcomp>°  s   € ÐDÐDÐD¨4�D ™JœJÐDÐDÐDr"   Úx)rf   r0   ÚisCompositeró   rþ   r½   r  ÚyÚnumberOfContoursrÇ   r6   r   r»   ÚyMax)r¶   Úcoordrv   r6   Ú	leftSideXÚ
rightSideXÚtopSideYÚbottomSideYrÉ   Úpr  ÚhorizontalAdvanceWidthÚverticalAdvanceWidthÚleftSideBearingÚtopSideBearings                  r    rÈ   rÈ   £  sÊ  € åˆu‰:Œ:˜Š?ˆ?ˆ?ˆ?Ø�b”	˜!”€IØ�r”˜1”€JØ�RŒy˜Œ|€HØ˜”)˜A”,€Kå�1‰XŒXð ð ˆØ�"ˆIˆIà×ÒÑÔð 
"Ý�5‰zŒz�S Ô!1Ñ2Ô2Ò2Ð2Ð2Ð2ØDÐD°5Ô3CÐDÑDÔDˆÔÝ˜5 %Ô"2Ñ3Ô3ð 	#ð 	#‰GˆAˆtÝ�t˜SÑ!Ô!ð #Ø!"‘�”˜œøð	#ð 
Ô	 1Ò	$Ð	$Ý�5‰zŒz˜QŠˆˆˆˆå�5‰zŒz�S Ô!2Ñ3Ô3Ò3Ð3Ð3Ð3Ø!ˆÔàð &Ø×Ò˜9Ñ%Ô%Ð%å$ Z°)Ñ%;Ñ<Ô<ÐÝ" 8¨kÑ#9Ñ:Ô:ÐÝ˜eœj¨9Ñ4Ñ5Ô5€OÝ˜X¨¬
Ñ2Ñ3Ô3€NàØØØð	ð r"   c                   ó2   — e Zd ZdZd	d„Zd„ Zd„ Zd„ Zd„ ZdS )
ÚLerpGlyphSeta+  A glyphset that interpolates between two other glyphsets.

    Factor is typically between 0 and 1. 0 means the first glyphset,
    1 means the second glyphset, and 0.5 means the average of the
    two glyphsets. Other values are possible, and can be useful to
    extrapolate. Defaults to 0.5.
    ç      à?c                 ó0   — || _         || _        || _        d S rT   )Ú	glyphset1Ú	glyphset2Úfactor)rP   r-  r.  r/  s       r    rQ   zLerpGlyphSet.__init__Ò  s   € Ø"ˆŒØ"ˆŒØˆŒˆˆr"   c                 ód   — || j         v r|| j        v rt          || ¦  «        S t          |¦  «        ‚rT   )r-  r.  Ú	LerpGlyphÚKeyError©rP   Ú	glyphnames     r    r|   zLerpGlyphSet.__getitem__×  s9   € Ø˜œÐ&Ð&¨9¸¼Ð+FÐ+FÝ˜Y¨Ñ-Ô-Ð-Ý�yÑ!Ô!Ð!r"   c                 ó&   — || j         v o|| j        v S rT   )r-  r.  r3  s     r    r`   zLerpGlyphSet.__contains__Ü  s   € Ø˜DœNÐ*ÐJ¨y¸D¼NÐ/JÐJr"   c                 ó–   — t          | j        ¦  «        }t          | j        ¦  «        }t          |                     |¦  «        ¦  «        S rT   )Úsetr-  r.  r'   Úintersection©rP   Úset1Úset2s      r    rd   zLerpGlyphSet.__iter__ß  s<   € Ý�4”>Ñ"Ô"ˆÝ�4”>Ñ"Ô"ˆÝ�D×%Ò% dÑ+Ô+Ñ,Ô,Ð,r"   c                 ó–   — t          | j        ¦  «        }t          | j        ¦  «        }t          |                     |¦  «        ¦  «        S rT   )r7  r-  r.  rf   r8  r9  s      r    rg   zLerpGlyphSet.__len__ä  s<   € Ý�4”>Ñ"Ô"ˆÝ�4”>Ñ"Ô"ˆÝ�4×$Ò$ TÑ*Ô*Ñ+Ô+Ð+r"   N)r+  )	rk   rl   rm   rn   rQ   r|   r`   rd   rg   rq   r"   r    r*  r*  É  sq   € € € € € ðð ðð ð ð ð
"ð "ð "ð
Kð Kð Kð-ð -ð -ð
,ð ,ð ,ð ,ð ,r"   r*  c                   ó   — e Zd Zd„ Zd„ ZdS )r1  c                 ó"   — || _         || _        d S rT   )Úglyphsetr4  )rP   r4  r?  s      r    rQ   zLerpGlyph.__init__ë  s   € Ø ˆŒØ"ˆŒˆˆr"   c                 ó|  — t          | j        j        ¦  «        }| j        j        | j                                      |¦  «         t          | j        j        ¦  «        }| j        j        | j                                      |¦  «         | j        j        }t          t          |j	        |j	        |¦  «        |¦  «         d S rT   )
r   r?  r-  r4  r¬   r.  r/  r   r   rŽ   )rP   r«   Ú
recording1Ú
recording2r/  s        r    r¬   zLerpGlyph.drawï  s™   € Ý,¨T¬]Ô-DÑEÔEˆ
ØŒÔ ¤Ô/×4Ò4°ZÑ@Ô@Ð@Ý,¨T¬]Ô-DÑEÔEˆ
ØŒÔ ¤Ô/×4Ò4°ZÑ@Ô@Ð@à”Ô%ˆå� zÔ'7¸Ô9IÈ6ÑRÔRÐTWÑXÔXÐXÐXÐXr"   N)rk   rl   rm   rQ   r¬   rq   r"   r    r1  r1  ê  s7   € € € € € ð#ð #ð #ðYð Yð Yð Yð Yr"   r1  N)+rn   Úabcr   r   Úcollections.abcr   Ú
contextlibr   r   r   Útypesr
   ÚfontTools.misc.vectorr   ÚfontTools.misc.fixedToolsr   r   rý   ÚfontTools.misc.loggingToolsr   ÚfontTools.misc.transformr   r   ÚfontTools.pens.transformPenr   r   ÚfontTools.pens.recordingPenr   r   r   r2   r4   rs   r�   r�   r›   r{   rˆ   rÞ   r˜   rÈ   r*  r1  rq   r"   r    ú<module>rM     s5  ðØ %Ð %à #Ð #Ð #Ð #Ð #Ð #Ð #Ð #Ø #Ð #Ð #Ð #Ð #Ð #Ø %Ð %Ð %Ð %Ð %Ð %Ø Ð Ð Ð Ð Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !Ø (Ð (Ð (Ð (Ð (Ð (Ø DÐ DÐ DÐ DÐ DÐ DÐ DÐ DØ 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø CÐ CÐ CÐ CÐ CÐ CÐ CÐ CØ GÐ GÐ GÐ GÐ GÐ GÐ GÐ Gðð ð ð ð ð ð ð ð ð ðBð Bð Bð(G/ð G/ð G/ð G/ð G/�'ñ G/ô G/ð G/ðTMð Mð Mð Mð M�kñ Mô Mð Mð0ð 0ð 0ð 0ð 0�[ñ 0ô 0ð 0ðD
-ð 
-ð 
-ð 
-ð 
-�kñ 
-ô 
-ð 
-ð)*ð )*ð )*ð )*ð )*ˆsñ )*ô )*ð )*ðXJð Jð Jð Jð J�8ñ Jô Jð JðZNð Nð Nð Nð N�(ñ Nô Nð Nð ð  ð  ðFQð Qð Qð Qð Q�8ñ Qô Qð Qðh >Bð #ð #ð #ð #ð #ðL,ð ,ð ,ð ,ð ,�7ñ ,ô ,ð ,ðBYð Yð Yð Yð Yñ Yô Yð Yð Yð Yr"   