+
    i^.                     $   ^ RI H t  ^ RIHtHtHtHtHt ^ RIHtH	t	 ^ RI
Ht ^ RIHt ^ RIHt ^ RIHtHt ^ RIHtHt ^ R	IHt ^ R
IHtHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RItRR.t  ! R R4      t! ! R R]!]4      t" ! R R]!]]4      t#R# )    )array)AnyCallableDictOptionalTuple)MAX_F2DOT14floatToFixedToFloat)LogMixin)AbstractPointPenotRound)
LoggingPenPenError)TransformPenTransformPointPen)	ttProgram)flagOnCurve	flagCubic)Glyph)GlyphComponent)GlyphCoordinates)dropImpliedOnCurvePointsN
TTGlyphPenTTGlyphPointPenc                      a  ] tR t^t o RV 3R lR lltV 3R lR ltR tV 3R lR ltRV 3R	 lR
 lltR t	RR]
/V 3R lR llltRtV tR# )_TTGlyphBasePenc                P   < V ^8  d   QhRS[ S[S[S[3,          ,          RS[RR/# )   glyphSethandleOverflowingTransformsreturnNr   r   strr   bool)format__classdict__s   "y/Users/tonyclaw/.openclaw/workspace/skills/math-calculator/venv/lib/python3.14/site-packages/fontTools/pens/ttGlyphPen.py__annotate___TTGlyphBasePen.__annotate__   s6     ! !4S>*! &*! 
	!    c                >    Wn         W n        V P                  4        R# )a  
Construct a new pen.

Args:
    glyphSet (Dict[str, Any]): A glyphset object, used to resolve components.
    handleOverflowingTransforms (bool): See below.

If ``handleOverflowingTransforms`` is True, the components' transform values
are checked that they don't overflow the limits of a F2Dot14 number:
-2.0 <= v < +2.0. If any transform value exceeds these, the composite
glyph is decomposed.

An exception to this rule is done for values that are very close to +2.0
(both for consistency with the -2.0 case, and for the relative frequency
these occur in real fonts). When almost +2.0 values occur (and all other
values are within the range -2.0 <= x <= +2.0), they are clamped to the
maximum positive value that can still be encoded as an F2Dot14: i.e.
1.99993896484375.

If False, no check is done and all components are translated unmodified
into the glyf table, followed by an inevitable ``struct.error`` once an
attempt is made to compile them.

If both contours and components are present in a glyph, the components
are decomposed.
N)r    r!   init)selfr    r!   s   &&&r(   __init___TTGlyphBasePen.__init__   s    > !+F(		r+   c          
      L   < V ^8  d   QhRS[ RS[S[S[S[S[S[S[3,          /# )r   	glyphNametransformation)r$   r   float)r&   r'   s   "r(   r)   r*   9   s5     A AA eUE5%FGAr+   c                    V P                  W4      p\        V P                  V,          V P                  4      ! V4       R # N)transformPengetattrr    
drawMethod)r.   r2   r3   tpens   &&& r(   
_decompose_TTGlyphBasePen._decompose9   s0    
   6i($//:4@r+   c                    \         h)z&
Check if the current path is closed.
)NotImplementedErrorr.   s   &r(   	_isClosed_TTGlyphBasePen._isClosedA   s
     "!r+   c                   < V ^8  d   QhRR/# r   r"   N )r&   r'   s   "r(   r)   r*   G   s      d r+   c                >    . V n         . V n        . V n        . V n        R # r6   )pointsendPtstypes
componentsr?   s   &r(   r-   _TTGlyphBasePen.initG   s    
r+   Nc          
      l   < V ^8  d   QhRS[ RS[S[S[S[S[S[S[3,          RS[S[ ,          RS[RR/# )r   baseGlyphNamer3   
identifierkwargsr"   N)r$   r   r4   r   r   )r&   r'   s   "r(   r)   r*   M   sZ     
@ 
@
@ eUE5%FG
@ SM	
@
 
@ 

@r+   c                >    V P                   P                  W34       R# )z
Add a sub glyph.
N)rI   append)r.   rL   r3   rM   rN   s   &&&&,r(   addComponent_TTGlyphBasePen.addComponentM   s     	>?r+   c                   V P                   '       dI   \        ;QJ d&    R  V P                   4       F  '       g   K   RM	  RM! R  V P                   4       4      p. pV P                   EF  w  rEW@P                  9  d"   V P                  P                  RV R24       K7  V P                  '       g   V P                   '       d   X'       d   V P                  WE4       Kv  \        4       pWFn	        R VR,           4       w  Vn
        Vn        \        ;QJ d    . R VR,           4       F  NK  	  5M! R VR,           4       4      pVR8w  d   V P                   '       dg   \        ;QJ d    R	 V 4       F  '       g   K   RM	  RM! R	 V 4       4      '       d-   \        ;QJ d    . R
 V 4       F  NK  	  5M! R
 V 4       4      pVR,          VR,          3Vn        Wn        VP                  V4       EK  	  V# )c              3   j   "   T F)  w  rVR ,           F  pV^8  ;'       g    VR8  x  K  	  K+  	  R# 5i)N   NNrD   ).0r2   r3   ss   &   r(   	<genexpr>3_TTGlyphBasePen._buildComponents.<locals>.<genexpr>]   s?      3B/Y'++A AR+  3Bs   33TFz skipped non-existing component ''c              3   8   "   T F  p\        V4      x  K  	  R # 5ir6   r   rX   vs   & r(   rZ   r[   n   s     'O<Nq

<Ns   :rV   NNc              3   :   "   T F  p\        V^4      x  K  	  R# 5i)   N)r
   r^   s   & r(   rZ   r[   q   s      #4Fq#Ar**4Fs   rU   c              3   V   "   T F  p\         Tu;8  ;'       d    ^8*  Mu x  K!  	  R# 5ir   Nr	   rX   rY   s   & r(   rZ   r[   u   s#      <2@QK!((q((.s   ))c              3   ^   "   T F#  p\         Tu;8  d   ^8:  d
   M M\         MTx  K%  	  R# 5irc   rd   re   s   & r(   rZ   r[   y   s(      +!/A (3Q';!';B!/s   +-:Nr   N:r   NN)   r   r   rg   )r!   anyrI   r    logwarningrF   r;   r   r2   xytuple	transformflagsrP   )r.   componentFlagsoverflowingrI   r2   r3   	components   &&     r(   _buildComponents _TTGlyphBasePen._buildComponentsY   s   +++ # 37??### 37?? K
 
)-%I-  #CI;a!PQ{{{t???K	:&(I"+'ON2<N'O$IK #U #4B24F#UU #4B24F# N -333 <2@< <2@< 9 9 &+U +!/+UU +!/+ &N (6b'9>";M&N	#,Oi(9 *9: r+   roundc                J   < V ^8  d   QhRS[ RS[RS[S[.S[ 3,          RS[/# )r   rp   dropImpliedOnCurvesru   r"   )intr%   r   r4   r   )r&   r'   s   "r(   r)   r*      s>     & && "&
 %& 
&r+   c               T   V P                  4       '       g   \        R4      hV P                  V4      p\        4       p\	        V P
                  4      Vn        V P                  Vn        \        RV P                  4      Vn        V P                  4        V'       d   WEn        RVn        V# \        VP                  4      Vn        \         P"                  ! 4       Vn        VP$                  P'                  R4       V'       d   \)        V4       VP                  P+                  VR7       V# )z
Returns a :py:class:`~._g_l_y_f.Glyph` object representing the glyph.

Args:
    componentFlags: Flags to use for component glyphs. (default: 0x04)

    dropImpliedOnCurves: Whether to remove implied-oncurve points. (default: False)
zDidn't close last contour.Br+   )ru   )r@   r   rs   r   r   rF   coordinatesrG   endPtsOfContoursr   rH   ro   r-   rI   numberOfContourslenr   ProgramprogramfromBytecoder   toInt)r.   rp   rw   ru   rI   glyphs   &&&$  r(   r   _TTGlyphBasePen.glyph   s     ~~788**>:
,T[[9!%C,		  *%'E"  &))?)?%@E"%--/EMMM&&s+"(/##%#0r+   )rI   rG   r    r!   rF   rH   )Tr6   )rV   F)__name__
__module____qualname____firstlineno__r/   r;   r@   r-   rQ   rs   r   r   __static_attributes____classdictcell__)r'   s   @r(   r   r      sV     ! !FA A" 
@ 
@'R&
 )0& & &r+   r   c                      a a ] tR t^t oRtRt]tRV3R lV 3R llltV3R lR lt	V3R lR lt
V3R	 lR
 ltV3R lR ltV3R lR ltV3R lR ltV3R lR ltV3R lR ltV3R lR ltRtVtV ;t# )r   z
Pen used for drawing to a TrueType glyph.

This pen can be used to construct or modify glyphs in a TrueType format
font. After using the pen to draw, use the ``.glyph()`` method to retrieve
a :py:class:`~._g_l_y_f.Glyph` object representing the glyph.
drawc                V   < V ^8  d   QhRS[ S[S[S[3,          ,          RS[RS[RR/# )r   r    r!   outputImpliedClosingLiner"   Nr#   )r&   r'   s   "r(   r)   TTGlyphPen.__annotate__   sF     A A4S>*A &*A #'	A
 
Ar+   c                2   < \         SV `  W4       W0n        R # r6   )superr/   r   )r.   r    r!   r   	__class__s   &&&&r(   r/   TTGlyphPen.__init__   s     	?(@%r+   c                @   < V ^8  d   QhRS[ S[S[3,          RS[RR/# )r   pttpr"   N)r   r4   rx   )r&   r'   s   "r(   r)   r      s+      E%,/ S T r+   c                r    V P                   P                  V4       V P                  P                  V4       R # r6   )rF   rP   rH   )r.   r   r   s   &&&r(   	_addPointTTGlyphPen._addPoint   s&    2

"r+   c                   < V ^8  d   QhRR/# rC   rD   )r&   r'   s   "r(   r)   r      s      4 r+   c                n    V P                   P                  4        V P                  P                  4        R # r6   )rF   poprH   r?   s   &r(   	_popPointTTGlyphPen._popPoint   s    

r+   c                    < V ^8  d   QhRS[ /# r   r"   r%   )r&   r'   s   "r(   r)   r      s     
 
4 
r+   c                    V P                   '       * ;'       gE    V P                  ;'       d1    V P                  R,          \        V P                   4      ^,
          8H  # )rg   r{   )rF   rG   r   r?   s   &r(   r@   TTGlyphPen._isClosed   sD    KK 
 
KKCCDKKOs4;;/?!/CC	
r+   c                :   < V ^8  d   QhRS[ S[S[3,          RR/# r   r   r"   Nr   r4   )r&   r'   s   "r(   r)   r      s$     ( (ue|, ( (r+   c                2    V P                  V\        4       R # r6   )r   r   r.   r   s   &&r(   lineToTTGlyphPen.lineTo   s    r;'r+   c                :   < V ^8  d   QhRS[ S[S[3,          RR/# r   r   )r&   r'   s   "r(   r)   r      s$     ( (ue|, ( (r+   c                t    V P                  4       '       g   \        R 4      hV P                  V\        4       R# )z+"move"-type point must begin a new contour.N)r@   r   r   r   r   s   &&r(   moveToTTGlyphPen.moveTo   s)    ~~HIIr;'r+   c                   < V ^8  d   QhRR/# rC   rD   )r&   r'   s   "r(   r)   r      s     * *$ *r+   c                    \        V4      ^,          ^8X  g   Q hVRR  F  pV P                  V\        4       K  	  VR,          e   V P                  VR,          ^4       R# R# )r   Nr{   )r   r   r   r.   rF   r   s   &* r(   curveToTTGlyphPen.curveTo   sY    6{Q!###"+BNN2y)  ":!NN6":q) "r+   c                   < V ^8  d   QhRR/# rC   rD   )r&   r'   s   "r(   r)   r      s     * *4 *r+   c                    \        V4      ^8  g   Q hVRR  F  pV P                  V^ 4       K  	  VR,          e   V P                  VR,          ^4       R# R# rg   Nr{   )r   r   r   s   &* r(   qCurveToTTGlyphPen.qCurveTo   sU    6{a"+BNN2q!  ":!NN6":q) "r+   c                   < V ^8  d   QhRR/# rC   rD   )r&   r'   s   "r(   r)   r      s     " "4 "r+   c                
   \        V P                  4      ^,
          pV^ 8X  g1   V P                  '       d1   WP                  R,          ^,           8X  d   V P                  4        R# V P                  '       gq   ^ pV P                  '       d   V P                  R,          ^,           pV P                  V,          V P                  V,          8X  d   V P                  4        V^,          pV P                  P                  V4       R# r   )r   rF   rG   r   r   rP   )r.   endPtstartPts   &  r(   	closePathTTGlyphPen.closePath   s    DKK 1$ A:$+++%;;r?Q3F*FNN,,,G{{{++b/A-{{7#t{{5'99 
5!r+   c                   < V ^8  d   QhRR/# rC   rD   )r&   r'   s   "r(   r)   r      s       r+   c                &    V P                  4        R # r6   )r   r?   s   &r(   endPathTTGlyphPen.endPath   s    r+   )r   )NTF)r   r   r   r   __doc__r9   r   r7   r/   r   r   r@   r   r   r   r   r   r   r   r   __classcell__r   r'   s   @@r(   r   r      s      JLA A  
 

( (( (
* ** *" "&  r+   c                      a a ] tR t^t oRtRt]tV3R lV 3R lltV3R lR lt	RV3R lR llt
V3R	 lR
 ltRV3R lR lltRtVtV ;t# )r   a  
Point pen used for drawing to a TrueType glyph.

This pen can be used to construct or modify glyphs in a TrueType format
font. After using the pen to draw, use the ``.glyph()`` method to retrieve
a :py:class:`~._g_l_y_f.Glyph` object representing the glyph.

drawPointsc                   < V ^8  d   QhRR/# rC   rD   )r&   r'   s   "r(   r)   TTGlyphPointPen.__annotate__  s     . .d .r+   c                2   < \         SV `  4        R V n        R # r6   )r   r-   _currentContourStartIndex)r.   r   s   &r(   r-   TTGlyphPointPen.init  s    )-&r+   c                    < V ^8  d   QhRS[ /# r   r   )r&   r'   s   "r(   r)   r     s     6 64 6r+   c                    V P                   R J # r6   r   r?   s   &r(   r@   TTGlyphPointPen._isClosed  s    --55r+   c                :   < V ^8  d   QhRS[ S[,          RS[RR/# )r   rM   rN   r"   N)r   r$   r   )r&   r'   s   "r(   r)   r     s&     : :HSM :C :D :r+   c                |    V P                  4       '       g   \        R4      h\        V P                  4      V n        R# )z
Start a new sub path.
zDidn't close previous contour.N)r@   r   r   rF   r   )r.   rM   rN   s   &&,r(   	beginPathTTGlyphPointPen.beginPath  s.     ~~;<<),T[[)9&r+   c                   < V ^8  d   QhRR/# rC   rD   )r&   r'   s   "r(   r)   r     s     ' ' 'r+   c                v   V P                  4       '       d   \        R4      hV P                  \        V P                  4      8X  d
   RV n        R# V P
                  '       d   V P
                  R,          ^,           M^ pV P
                  P                  \        V P                  4      ^,
          4       RV n        V P                  p\        V\        V4      4       F[  pW#,          R8X  g   K  V^,
          pWA8  d   \        V4      ^,
          pW$,          ^ 8X  d   \        W$&   V^,          pK   \        W#&   K]  	  R# )z
End the current sub path.
zContour is already closed.Ncurver{   )r@   r   r   r   rF   rG   rP   rH   ranger   r   )r.   contourStartro   ijs   &    r(   r   TTGlyphPointPen.endPath  s    
 >>788))S-==-1D*.2kkkt{{2*q3t{{+a/0)-& 

|SZ0Ax7"E#E
QAh!m(EHFA& 1r+   c                   < V ^8  d   QhRS[ S[S[3,          RS[S[,          RS[RS[S[,          RS[S[,          RS[RR/# )	r   r   segmentTypesmoothnamerM   rN   r"   N)r   r4   r   r$   r%   r   )r&   r'   s   "r(   r)   r   6  sf      %, c] 	
 sm SM  
r+   c                   V P                  4       '       d   \        R4      hVf   V P                  P                  ^ 4       M|VR9   d!   V P                  P                  \        4       MUVR8X  d!   V P                  P                  \        4       M.VR8X  d   V P                  P                  R4       M\        V4      hV P                  P                  V4       R# )z&
Add a point to the current sub path.
z&Can't add a point to a closed contour.Nqcurver   )linemove)r@   r   rH   rP   r   AssertionErrorrF   )r.   r   r   r   r   rM   rN   s   &&&&&&,r(   addPointTTGlyphPointPen.addPoint6  s     >>CDDJJa ,,JJk*H$JJk*G#JJg& --2r+   r   r6   )NFNN)r   r   r   r   r   r9   r   r7   r-   r@   r   r   r   r   r   r   r   s   @@r(   r   r      sM      J$L. .6 6: :' '8  r+   )$r   typingr   r   r   r   r   fontTools.misc.fixedToolsr	   r
   fontTools.misc.loggingToolsr   fontTools.pens.pointPenr   fontTools.misc.roundToolsr   fontTools.pens.basePenr   r   fontTools.pens.transformPenr   r   fontTools.ttLib.tablesr   fontTools.ttLib.tables._g_l_y_fr   r   r   r   r   r   math__all__r   r   r   rD   r+   r(   <module>r      ss     7 7 F 0 4 - 7 G , B 1 : < D  *
+S SlQ* QhPox1A Pr+   