
    hO              	       V   S SK Jr  S SKJr  S SKJr  S SKrS SKrSr	\R                  " SSS9u  rrr\R                  " S	S
S9r\" \R                  " S\	S-   -  SS95      r\" \R                  " S\	S-   -  SS95      r\" \" S S 5       6 5      r\" \R                  " S\	S-   -  S
S95      rS/r\" S\	S-   5       H7  r\S   r\" S \" \" \5      5       5       5      S-   r\R7                  \5        M9     \" S \ 5       5      rCC\" S \" \5       5       5      r\" S \" \5       5       5      r\" S \" \5       5       5      rS r  " S S\!5      r" " S S\5      r#\" \#SS9r$\" \#\S9r%\" \#\S9r&\" \#\\-  S9r'\" \#\\-  S9r(\" \#\\-  S9r)\RT                  S4S jr+\,S :X  a  \$" 5       r-\-R]                  S!5        \-R_                  S"5        \-R_                  S#5        \-Ra                  S$S%S&5        \-R_                  S'5        \-Rc                  5         \2" \-Rf                  5        gg)(    )BasePen)partial)countN   zt x yTrealcFzx:%d   zy:%dc              #   d   #    U  H&  n[         R                  " S [        S-   U4-  SS9v   M(     g7f)zp:%d[%s]r
   Tr   N)spsymbolsn).0ws     H/var/www/html/env/lib/python3.13/site-packages/fontTools/misc/symfont.py	<genexpr>r      s(     M1

:Q
2>s   .001zc:%d)r
   r   c              #   N   #    U  H  n[         US -
     [         U   -   v   M     g7fr
   N)last)r   js     r   r   r      s#     A0@1a!etAw&0@s   #%)r   c              #   >   #    U  H  n[        US S 5      v   M     g 7f)Nr   )tuple)r   items     r   r   r      s      M9LE$s),,9L   c              #   f   ^#    U  H&  u  mn[        U4S  j[        U5       5       5      v   M(     g7f)c              3   `   >#    U  H#  u  pU[         U-  -  S [         -
  TU-
  -  -  v   M%     g7fr   )t)r   ir	   r   s      r   r   <genexpr>.<genexpr>   s/     	F4EDA!ad(a!eQ'
'4Es   +.N)r   	enumerate)r   coeffsr   s     @r   r   r      s/      3	6 
	FIf4E	FFF3   .1c              #   f   ^#    U  H&  u  nm[        U4S  j[        S5       5       5      v   M(     g7f)c              3   b   >^#    U  H#  m[        U4S  j[        T5       5       5      v   M%     g7f)c              3   F   >#    U  H  u  p[         U   T   U-  v   M     g 7fN)P)r   r    	bernsteinr   s      r   r   <genexpr>.<genexpr>.<genexpr>!   s"     J4ILAAaDGi4Is   !Nsumr"   )r   r   
bernsteinss    @r   r   r!       s+      
A 	JIj4IJJJs   +/   N)r   ranger   r   r.   s     @r   r   r      s;      
 8:	 
 
q
   8r$   c              #   \   #    U  H"  u  p[        S  [        U5       5       5      v   M$     g7f)c              3   >   #    U  H  u  p[         U   U-  v   M     g 7fr(   )C)r   r    r*   s      r   r   r!   '   s     C-B\Q!y-Br   Nr,   r1   s      r   r   r   &   s,      7 CYz-BCCC7s   *,c                 &   [         R                  " [         R                  " U 5      [        5      * n U R	                  [
        US   [        US   05      n [         R                  " U [         R                  " US   [        5      -  [        SS45      n U $ )Nr   r
   )r   	integratesympifyysubsxdiffr   )fcurveXYs     r   greenr>   ,   sk    	bjjmQ	''A	71:q'!*-.A
QQ//!Q;AH    c                        \ rS rSrS rS rSrg)_BezierFuncsLazy3   c                     Xl         0 U l        g r(   )_symfunc	_bezfuncs)selfsymfuncs     r   __init___BezierFuncsLazy.__init__4   s    r?   c                    [        US-   5       Vs/ s H  nSU-  PM
     nn[        U R                  [        U   5      n[        R
                  " UR                  [        [        S5      5      5      n[        R                  " X45      $ s  snf )Nr
   zp%d )
r0   r>   rD   BezierCurver   	gcd_termscollectr-   r)   lambdify)rF   r    dargsr<   s        r   __missing___BezierFuncsLazy.__missing__8   sg    #(Q<0<a	<0$--Q0LL3q":./{{4## 1s   B)rE   rD   N)__name__
__module____qualname____firstlineno__rH   rR   __static_attributes__rK   r?   r   rA   rA   3   s    $r?   rA   c                   V    \ rS rSr0 r\S 5       rSS jrS rS r	S r
S rS	 rS
 rSrg)GreenPen?   c                     [        U5      nX R                  ;  a  [        U5      U R                  U'   U R                  U   $ r(   )str_BezierFuncsrA   )celffuncfuncstrs      r   _getGreenBezierFuncsGreenPen._getGreenBezierFuncsB   s=    d)+++)9$)?Dg&  ))r?   Nc                 j    [         R                  " X5        U R                  U5      U l        SU l        g )Nr   )r   rH   rb   _funcsvalue)rF   r`   glyphsets      r   rH   GreenPen.__init__I   s)    (//5
r?   c                     Xl         g r(   )_startPointrF   p0s     r   _moveToGreenPen._moveToN   s    r?   c                 z    U R                  5       nXR                  :w  a  U R                  U R                  5        g g r(   )_getCurrentPointrj   _lineTork   s     r   
_closePathGreenPen._closePathQ   s3    ""$!!!LL))* "r?   c                 N    U R                  5       nXR                  :w  a  [        eg r(   )rp   rj   NotImplementedErrorrk   s     r   _endPathGreenPen._endPathV   s'    ""$!!!%% "r?   c                 t    U R                  5       nU =R                  U R                  S   " X!5      -  sl        g )Nr
   rp   rf   re   )rF   p1rl   s      r   rq   GreenPen._lineTo\   s+    ""$

dkk!nR,,
r?   c                 v    U R                  5       nU =R                  U R                  S   " X1U5      -  sl        g )Nr/   ry   )rF   rz   p2rl   s       r   _qCurveToOneGreenPen._qCurveToOne`   s-    ""$

dkk!nRR00
r?   c                 v    U R                  5       nU =R                  U R                  S   " XAX#5      -  sl        g )Nr   ry   )rF   rz   r}   p3rl   s        r   _curveToOneGreenPen._curveToOned   s-    ""$

dkk!nRR44
r?   )re   rj   rf   r(   )rT   rU   rV   rW   r^   classmethodrb   rH   rm   rr   rv   rq   r~   r   rX   rK   r?   r   rZ   rZ   ?   s<    L* *
+
&-15r?   rZ   )r`   c                    Ub  [        SU-  5        [        SU < SU < S3US9  U H  u  pE[        SU-  US9  M     [        SSUS	9  S
 GH  n[        US-   5       VVs0 s H3  n[        S5        H   n[        U   U   [        [        /U   U   _M"     M5     n	nnU VVs/ s H  u  pE[        U[        U   5      PM     n
nnU
 Vs/ s H6  n[        R                  " UR                  [        [        S5      5      5      PM8     n
nU
 Vs/ s H  oUR                  U	5      PM     n
n[        R                  " U
SS [        5        5       S9u  p[        5         U H  u  pM[        SU-  US9  M     US:X  a  [        SUS9  O!US:X  a  [        SUS9  OUS:X  a
  [        SUS9  U H  u  pM[        SU< SU< 3US9  M     [        US9  [        U Vs/ s H  oUS   PM	     snU5       H  u  pM[        SU< SU< 3US9  M     GM     [        SU -  US9  U H!  u  pE[        SU< S[        U5      < S3US9  M#     [        SUS9  g s  snnf s  snnf s  snf s  snf s  snf ) Nz"""%s"""a  from fontTools.pens.basePen import BasePen, OpenContourError
try:
	import cython
except (AttributeError, ImportError):
	# if cython not installed, use mock module with no-op decorators and types
	from fontTools.misc import cython
COMPILED = cython.compiled


__all__ = ["z
"]

class zS(BasePen):

	def __init__(self, glyphset=None):
		BasePen.__init__(self, glyphset)
)filez		self.%s = 0aT  
	def _moveTo(self, p0):
		self._startPoint = p0

	def _closePath(self):
		p0 = self._getCurrentPoint()
		if p0 != self._startPoint:
			self._lineTo(self._startPoint)

	def _endPath(self):
		p0 = self._getCurrentPoint()
		if p0 != self._startPoint:
			raise OpenContourError(
							"Glyph statistics is not defined on open contours."
			)
 )endr   )r
   r/   r   r
   r/   rK   basicc              3   T   #    U  H  n[         R                  " S U-  5      v   M      g7f)zr%dN)r   Symbol)r   r    s     r   r    printGreenPen.<locals>.<genexpr>   s      ;7aRYYuqy))7s   &()optimizationsr   z!	@cython.locals(%s=cython.double)z	@cython.locals(x0=cython.double, y0=cython.double)
	@cython.locals(x1=cython.double, y1=cython.double)
	def _lineTo(self, p1):
		x0,y0 = self._getCurrentPoint()
		x1,y1 = p1
z	@cython.locals(x0=cython.double, y0=cython.double)
	@cython.locals(x1=cython.double, y1=cython.double)
	@cython.locals(x2=cython.double, y2=cython.double)
	def _qCurveToOne(self, p1, p2):
		x0,y0 = self._getCurrentPoint()
		x1,y1 = p1
		x2,y2 = p2
r   a=  	@cython.locals(x0=cython.double, y0=cython.double)
	@cython.locals(x1=cython.double, y1=cython.double)
	@cython.locals(x2=cython.double, y2=cython.double)
	@cython.locals(x3=cython.double, y3=cython.double)
	def _curveToOne(self, p1, p2, p3):
		x0,y0 = self._getCurrentPoint()
		x1,y1 = p1
		x2,y2 = p2
		x3,y3 = p3
z		z = r   z		self.z += zj
if __name__ == '__main__':
	from fontTools.misc.symfont import x, y, printGreenPen
	printGreenPen('%s', [z
		      ('z', z),z			     ]))printr0   r)   XYr>   rL   r   rM   rN   r-   r9   cser   zipr]   )penNamefuncsr   	docstringnamer<   r   r    r   r9   greensdefsexprsrf   s                 r   printGreenPenr   t   sa   j9$%	" G!	" %( o$40 		  %* /4QU|N|!U1X!Q!Q1%X|N:?@%wt%;q>*%@?EFv!",,qyyQ45vF(./1&&,/ff!;57;
 	KD5<4H  6 	 !V  !V
   KDu-D9   	4e4e!e4e<KDtU3$? =s x 
	 		
  tSV44@ 	+D!K O@F/j  5s   :I!I=I
II
__main__)d   r   )r      )r   r   )r      ),  r   )r   i^  )r   r   )4fontTools.pens.basePenr   	functoolsr   	itertoolsr   sympyr   sysr   r   r   r:   r8   r	   r   r   r   r   r)   r4   BinomialCoefficientr0   r    r   lenthisappendr"   BernsteinPolynomialrL   BezierCurveCr>   dictrA   rZ   AreaPen
MomentXPen
MomentYPenMomentXXPenMomentYYPenMomentXYPenstdoutr   rT   penmoveTolineTocurveTo	closePathr   rf   rK   r?   r   <module>r      sj   *    

**W4
(1aJJs	"**Vq1u%D
12	"**Vq1u%D
12	#MM
NO	"**Vq1u%E
23 h 	q!a%Ar"DAc$i0@AADHDt$ 
 M9LMM $ 23  
  
 ##67   "#67 	$t 	$'5w '5Z (
#XA&
XA&
hQU+hQU+hQU+ (+zzT u"p z
)CJJzJJzJJzKK
J
3JJzMMO	#)) r?   