ó
    oñ:iW­  ã                   ó`  • S SK 7  SSKJr  SSKJr  SSKJrJrJr  SSK	J
r
  SSKJr  SSKJrJrJr  SS	KJrJr  SS
KJr  SSKJr  SSKJr  SSKrSSKrSSKrSSKr\R<                  " S5      r " S S\ 5      r! " S S5      r" " S S\"5      r# " S S\#5      r$ " S S\#5      r% " S S\"5      r&g)é   )Ú*é    )ÚTTFont)ÚLerpGlyphSet)ÚRecordingPenÚDecomposingRecordingPenÚRecordingPointPen)ÚControlBoundsPen)ÚCairoPen)ÚSegmentToPointPenÚPointToSegmentPenÚReverseContourPointPen)ÚPerContourOrComponentPenÚSimpleRecordingPointPen)Úcycle)Úwraps)ÚBytesIONzfontTools.varLib.interpolatablec                   ó    • \ rS rSrS rS rSrg)ÚOverridingDicté   c                 ó   • Xl         g ©N©Úparent_dict)Úselfr   s     Úf/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/fontTools/varLib/interpolatablePlot.pyÚ__init__ÚOverridingDict.__init__    s   € Ø&Õó    c                 ó    • U R                   U   $ r   r   )r   Úkeys     r   Ú__missing__ÚOverridingDict.__missing__#   s   € Ø×Ñ Ñ$Ð$r   r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r"   Ú__static_attributes__© r   r   r   r      s   † ò'õ%r   r   c            	       óÀ  • \ rS rSrSrSrSrSrSrSr	Sr
S	rS
rSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSr Sr!Sr"Sr#Sr$Sr%Sr&Sr'Sr(S r)S!r*S"r+S#r,SGS% jr-S& r.S' r/S( r0S)S$S$S*.S+ jr1S)S$S$S*.S, jr2S- r3S. r4S/ r5S0 r6S)S)S1.S2 jr7S)S)S1.S3 jr8S4S4S5S4S6S$S$S$S7.S8 jr9S4S4S$S9.S: jr:S4S4S5S;S<.S= jr;S4S4S5S;SS>.S? jr<S4S4S5S@.SA jr=S4S4S5S$S$SB.SC jr>SD r?SHSE jr@SFrAg$)IÚInterpolatablePloté'   g      ƒ@i  gÍÌÌÌÌÌ@é   é   r   )ç333333Ó?r/   r/   )çš™™™™™É?r0   r0   )çÍÌÌÌÌÌì?r1   r1   ç      à?)çš™™™™™é?r3   r3   )çš™™™™™¹?r4   r4   )r   r3   r   çffffffæ?é   )r   r2   r   r5   é   )r   r1   r   r5   é   )r   r   r   r5   )r   r   r   r5   é	   )r   r   r   r5   é   ))r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   çš™™™™™Ù?z#Your font's good! Have a cupcake...)r   r2   r   )r/   r   r/   a  
                          ,@.
                        ,@.@@,.
                  ,@@,.@@@.  @.@@@,.
                ,@@. @@@.     @@. @@,.
        ,@@@.@,.@.              @.  @@@@,.@.@@,.
   ,@@.@.     @@.@@.            @,.    .@' @'  @@,
 ,@@. @.          .@@.@@@.  @@'                  @,
,@.  @@.                                          @,
@.     @,@@,.     ,                             .@@,
@,.       .@,@@,.         .@@,.  ,       .@@,  @, @,
@.                             .@. @ @@,.    ,      @
 @,.@@.     @,.      @@,.      @.           @,.    @'
  @@||@,.  @'@,.       @@,.  @@ @,.        @'@@,  @'
     \\@@@@'  @,.      @'@@@@'   @@,.   @@@' //@@@'
      |||||||| @@,.  @@' |||||||  |@@@|@||  ||
       \\\\\\\  ||@@@||  |||||||  |||||||  //
        |||||||  ||||||  ||||||   ||||||  ||
         \\\\\\  ||||||  ||||||  ||||||  //
          ||||||  |||||  |||||   |||||  ||
           \\\\\  |||||  |||||  |||||  //
            |||||  ||||  |||||  ||||  ||
             \\\\  ||||  ||||  ||||  //
              ||||||||||||||||||||||||
)r   r/   r/   z\_(")_/z
 o
/|\
/ \
z
 o
/O\
/ \
z \o/ Nc                 óØ  • Xl         X l        U=(       d    U Vs/ s H  n[        U5      PM     snU l        0 U l        UR                  5        H/  u  pg[        X5      (       d  [        SU-  5      e[        XU5        M1     U R                  S-  U R                  S-  -
  U l        U R                  S-  U R                  S-  -
  U R                  S-  -
  U R                  -
  U l        g s  snf )NzUnknown keyword argument: %sé   é   r6   )ÚoutÚ	glyphsetsÚreprÚnamesÚtocÚitemsÚhasattrÚ	TypeErrorÚsetattrÚwidthÚpadÚpanel_widthÚheightÚ	font_sizeÚtitle_font_sizeÚpanel_height)r   r?   r@   rB   ÚkwargsÚgÚkÚvs           r   r   ÚInterpolatablePlot.__init__r   sÇ   € ØŒØ"ŒØ×:±	Ó:²	¨1œt Ažw±	Ñ:ˆŒ
ØˆŒà—L‘L–N‰DˆAÜ˜4×#Ñ#ÜÐ >ÀÑ BÓCÐCÜ�D˜QÖñ #ð
  Ÿ:™:¨™>¨D¯H©H°q©LÑ8ˆÔà�K‰K˜!‰O˜dŸh™h¨™lÑ*¨T¯^©^¸aÑ-?Ñ?À$×BVÑBVÑVð 	Õùò ;s   šC'c                 ó   • U $ r   r)   ©r   s    r   Ú	__enter__ÚInterpolatablePlot.__enter__‚   s   € Øˆr   c                 ó   • g r   r)   ©r   ÚtypeÚvalueÚ	tracebacks       r   Ú__exit__ÚInterpolatablePlot.__exit__…   s   € Ør   c                 ó.   • U =R                   S-  sl         g )Nr   )Úpage_numberrU   s    r   Ú	show_pageÚInterpolatablePlot.show_pageˆ   s   € Ø×Ò˜AÑÖr   T©Úshow_toleranceÚ	toleranceÚ	kinkinessc          
      óú  • U R                   nU R                  SU R                   -  -
  nU R                  SU R                   -  -
  nU=p‰U R                  SUU	SUU R                  S9  X�R                  -  n	SS Kn
U GHÌ  n[        R                  R                  U5      nX�R                  U R                   -   -  n	U R                  XÈU	SUS9  X�R                  U R                   -   -  n	 U
R                  [        US5      R                  5       5      R                  5       nU R                  S	U-  X…-   X–S
9  X�R                  -  n	UR                  S5      (       a|  [!        U5      nSU;   a  US   OS nU(       aZ  S HQ  u  nnUR#                  U5      nUc  M  U R                  U< SU< 3X…-   X–S
9  X�R                  U R                   -   -  n	MS     GMV  GMY  UR                  S5      (       d  GMr  SSKJn  U" U5      nS HF  u  nnU R                  U< S[)        UU5      < 3X…-   U	US
9  X�R                  U R                   -   -  n	MH     GMÏ     U R+                  X#US9  U R-                  5         g ! [         a     GN8f = f)Nr>   r=   zProblem report for:T©ÚxÚyÚboldrH   rL   r   )ri   rj   rk   rH   Úrbzsha1: %s©ri   rj   rH   z.ttfÚname))úFamily name)é   r.   r   )ÚVersion)é   z: )z.glyphsz.glyphspackage)ÚGSFont))ro   Ú
familyName)ÚVersionMajorÚversionMajor)ÚVersionMinorÚ_versionMinorrc   )rI   rH   rK   Ú
draw_labelrM   ÚhashlibÚosÚpathÚbasenamerL   Úsha1ÚopenÚreadÚ	hexdigestÚIsADirectoryErrorÚendswithr   ÚgetFirstDebugNameÚ	glyphsLibrs   ÚgetattrÚdraw_legendra   )r   Úfilesrd   re   rf   rI   rH   rK   ri   rj   rz   ÚfileÚ	base_fileÚhÚttFontrn   ÚwhatÚnameIDsÚnrs   ÚfÚfields                         r   Úadd_title_pageÚ!InterpolatablePlot.add_title_page‹   sk  € ð �h‰hˆØ—
‘
˜Q §¡™\Ñ)ˆØ—‘˜q 4§8¡8™|Ñ+ˆØˆˆà�‰Ø!ØØØØØ×*Ñ*ð 	ñ 	
ð 	
×!Ñ!Ñ!ˆãäˆDÜŸ™×(Ñ(¨Ó.ˆIØ—‘ $§(¡(Ñ*Ñ*ˆAØ�O‰O˜I¨a°dÀ%ˆOÑHØ—‘ $§(¡(Ñ*Ñ*ˆAðØ—L‘L¤ d¨DÓ!1×!6Ñ!6Ó!8Ó9×CÑCÓE�Ø—‘ 
¨Q¡°!±'¸Q�ÑLØ—^‘^Ñ#�ð �}‰}˜V×$Ñ$Ü ›�Ø)/°6Ó)9�v˜f’~¸t�Þó*™˜˜gð !×2Ñ2°7Ó;˜Ø™9Ù$ØŸ™Û(,ªaÐ0°A±G¸qð (ñ ð Ÿ^™^¨d¯h©hÑ6Ñ6šô*ò ð —‘Ð<×=Ô=Ý,á˜4“L�ó$‘K�D˜%ð
 —O‘OÛ$(¬'°!°UÕ*;Ð<Ø™'ØØ#ð	 $ñ ð Ÿ™¨$¯(©(Ñ2Ñ2’Aô$ñA ðZ 	×ÑØ)È)ð 	ñ 	
ð 	�‰ÕøôM %ó Úðús   Ã&AI,É,
I:É9I:c          	      óL  • [         R                  " U R                  5      nU R                  nU R                  U R                  -
  U R
                  S-  -
  nU R                  SU R                  -  -
  nXPR                  S-  -   nXPR                  S-  -   n	U(       a,  U R                  SX–US9  X`R                  U R
                  -   -  nU R                  SX–US9  UR                  X€R                  S-  -
  USU R                  -  U R
                  5        UR                  " U R                  6   UR                  5         U R                  (       aD  UR                  " U R                  6   UR                  U R                  5        UR                  5         UR                   " U R"                  6   UR%                  5         X`R                  U R
                  -   -  nU R                  SX–US9  UR                  X€R                  S-  -
  USU R                  -  U R
                  5        U R                  (       a)  UR                  " U R                  6   UR                  5         U R                  (       aD  UR                  " U R                  6   UR                  U R                  5        UR                  5         UR                   " / U R&                  S	   QU R(                  P76   UR%                  5         X`R                  U R
                  -   -  nU R                  S
X–US9  U R+                  UUX`R
                  S-  -   U R,                  U R.                  U R0                  S9  X`R                  U R
                  -   -  nU R                  SX–US9  U R3                  UUX`R
                  S-  -   U R4                  U R6                  S9  X`R                  U R
                  -   -  nU R                  SX–US9  U R3                  UUX`R
                  S-  -   U R8                  U R:                  S9  X`R                  U R
                  -   -  nU R                  SU	UUS9  U R=                  UX€R>                  S-  -
  X`R
                  S-  -   U R@                  S9  X`R                  U R
                  -   -  nU R                  SU	UUS9  U R3                  UUX`R
                  S-  -   U R8                  U RB                  S9  X`R                  U R
                  -   -  nU R                  SX–US9  U R=                  UX€R>                  S-  -
  X`R
                  S-  -   U RB                  S9  X`R                  U R
                  -   -  nU R                  SXVUSS9  X`R                  U R
                  -   -  nUb0  U R                  SU-  U	UUS9  X`R                  U R
                  -   -  nUb0  U R                  SU-  U	UUS9  X`R                  U R
                  -   -  nU R                  SXVUSS9  X`R                  U R
                  -   -  ng )Nr=   r7   z,Tolerance: badness; closer to zero the worserm   zUnderweight contoursr5   g      ø?z/Colored contours: contours with the wrong orderr   zKink artifactr2   )ri   rj   ÚdiameterÚstroke_widthÚcolorz!Point causing kink in the contour)ri   rj   r•   r—   z!Suggested new contour start pointz4Contour start point in contours with wrong directionr/   ©ri   rj   r—   z5Contour start point when the first two points overlapz!Contour start point and directionzLegend:T©ri   rj   rH   rk   z!Kink-reporting aggressiveness: %gzError tolerance: %gzParameters:)"ÚcairoÚContextÚsurfacerI   rK   rL   rH   ry   Ú	rectangleÚset_source_rgbÚ
fill_colorÚfill_preserveÚstroke_colorÚset_line_widthr–   Ústroke_preserveÚset_source_rgbaÚweight_issue_contour_colorÚfillÚcontour_colorsÚcontour_alphaÚdraw_circleÚkink_circle_sizeÚkink_circle_stroke_widthÚkink_circle_colorÚdraw_dotÚkink_point_sizeÚkink_point_colorÚcorrected_start_point_sizeÚcorrected_start_point_colorÚ
draw_arrowÚstart_arrow_lengthÚwrong_start_point_colorÚstart_point_color)
r   rd   re   rf   Úcrri   rj   rH   ÚxxÚxxxs
             r   r‡   ÚInterpolatablePlot.draw_legendÑ   s¢  € Ü�]Š]˜4Ÿ<™<Ó(ˆà�H‰HˆØ�K‰K˜$Ÿ(™(Ñ" T§^¡^°aÑ%7Ñ7ˆØ—
‘
˜Q §¡™\Ñ)ˆà—‘˜A‘ÑˆØ—(‘(˜Q‘,ÑˆæØ�O‰OØ>À#ÐRWð ñ ð —‘˜DŸN™NÑ*Ñ*ˆAà�‰Ð.°#À%ˆÑHØ
�‰�RŸ(™( S™.Ñ(¨!¨S°4·8±8©^¸T¿^¹^ÔLØ
×Ò˜4Ÿ?™?Ñ+Ø
×ÑÔØ××Ø×Ò˜t×0Ñ0Ñ1Ø×Ñ˜d×/Ñ/Ô0Ø×ÑÔ Ø
×Ò˜D×;Ñ;Ñ<Ø
�‰Œ	Ø	�X‰X˜Ÿ™Ñ&Ñ&ˆà�‰Ø=ÀÐQVð 	ñ 	
ð 	�‰�RŸ(™( S™.Ñ(¨!¨S°4·8±8©^¸T¿^¹^ÔLØ�?�?Ø×Ò˜tŸ™Ñ/Ø×ÑÔØ××Ø×Ò˜t×0Ñ0Ñ1Ø×Ñ˜d×/Ñ/Ô0Ø×ÑÔ Ø
×ÒÐG˜D×/Ñ/°Ñ2ÐG°D×4FÑ4FÓGØ
�‰Œ	Ø	�X‰X˜Ÿ™Ñ&Ñ&ˆà�‰˜¨3¸5ˆÑAØ×ÑØØØ—.‘. 3Ñ&Ñ&Ø×*Ñ*Ø×6Ñ6Ø×(Ñ(ð 	ñ 	
ð 	
�X‰X˜Ÿ™Ñ&Ñ&ˆà�‰Ð;¸sÈuˆÑUØ�‰ØØØ—.‘. 3Ñ&Ñ&Ø×)Ñ)Ø×'Ñ'ð 	ñ 	
ð 	
�X‰X˜Ÿ™Ñ&Ñ&ˆà�‰Ð;¸sÈuˆÑUØ�‰ØØØ—.‘. 3Ñ&Ñ&Ø×4Ñ4Ø×2Ñ2ð 	ñ 	
ð 	
�X‰X˜Ÿ™Ñ&Ñ&ˆà�‰ØBØØØð	 	ñ 	
ð 	�‰ØØ×*Ñ*¨SÑ0Ñ0Ø—.‘. 3Ñ&Ñ&Ø×.Ñ.ð	 	ñ 	
ð 	
�X‰X˜Ÿ™Ñ&Ñ&ˆà�‰ØCØØØð	 	ñ 	
ð 	�‰ØØØ—.‘. 3Ñ&Ñ&Ø×4Ñ4Ø×(Ñ(ð 	ñ 	
ð 	
�X‰X˜Ÿ™Ñ&Ñ&ˆà�‰Ð;¸sÈuˆÑUØ�‰ØØ×*Ñ*¨SÑ0Ñ0Ø—.‘. 3Ñ&Ñ&Ø×(Ñ(ð	 	ñ 	
ð 	
�X‰X˜Ÿ™Ñ&Ñ&ˆà�‰˜	 Q°5¸tˆÑDØ	�X‰X˜Ÿ™Ñ&Ñ&ˆàÑ Ø�O‰OØ3°iÑ?ØØØð	 ñ ð —‘˜DŸN™NÑ*Ñ*ˆAàÑ Ø�O‰OØ%¨	Ñ1ØØØð	 ñ ð —‘˜DŸN™NÑ*Ñ*ˆAà�‰˜¨°uÀ4ˆÑHØ	�X‰X˜Ÿ™Ñ&Ñ&‰r   c           
      ó<  • U R                   nU R                  SU R                   -  -
  nU R                  SU R                   -  -
  nU=pVU R                  SUUSUU R                  S9  X`R                  -  n[        [        5      n[        UR                  5       5       H$  u  p�U H  n	XyS      R                  U5        M     M&     SU;   a  US	 [        US S	9 H±  n
X`R                  -  nU R                  S
U
[        Xz   5      4-  UUUSS9  X`R                  -  n[        Xz   5       H^  nX`R                  -   U:”  a  U R                  5         U R                  U-   nU R                  X…SU-  -   XcSU-  -
  S9  X`R                  -  nM`     M³     U R                  5         g )Nr>   r=   zSummary of problemsTrh   rZ   Únothingc                 ó(   • [         R                  U    $ r   )ÚInterpolatableProblemÚseverity©ri   s    r   Ú<lambda>Ú0InterpolatablePlot.add_summary.<locals>.<lambda>r  s   € Ô.C×.LÑ.LÈQÒ.Or   ©r!   z%s: %dr™   rm   )rI   rH   rK   ry   rM   ÚdefaultdictÚsetÚsortedrD   ÚaddrL   Úlenra   )r   ÚproblemsrI   rH   rK   ri   rj   Úglyphs_per_problemÚ	glyphnameÚproblemÚproblem_types              r   Úadd_summaryÚInterpolatablePlot.add_summaryY  s¥  € Ø�h‰hˆØ—
‘
˜Q §¡™\Ñ)ˆØ—‘˜q 4§8¡8™|Ñ+ˆØˆˆà�‰Ø!ØØØØØ×*Ñ*ð 	ñ 	
ð 	
×!Ñ!Ñ!ˆä(¬Ó-ÐÜ#)¨(¯.©.Ó*:Ö#;ÑˆIÛ#�Ø"¨6¡?Ñ3×7Ñ7¸	ÖBó $ñ $<ð Ð*Ó*Ø" 9Ð-ä"ØÑ$Oô
ˆLð —‘ÑˆAØ�O‰OØ˜L¬#Ð.@Ñ.NÓ*OÐPÑPØØØØð ñ ð —‘ÑˆAä#Ð$6Ñ$DÖE�	Ø—~‘~Ñ%¨Ó.Ø—N‘NÔ$ØŸ™¨Ñ,�AØ—‘ 	°°S±©[¸AÈQÐQTÉWÁ_�ÑUØ—^‘^Ñ#’ó Fñ
ð( 	�‰Õr   c           	      óD  • U R                   nU R                  SU R                   -  -
  nU R                  SU R                   -  -
  nU=pgU R                  XUSX@R                  S9  XpR                  U R                   -   -  nS nU HŠ  u  n	u  p«X¨:X  a  M  U
nXpR
                  -   U:”  a  U R                  5         U R
                  U-   nU R                  X¦SU-  -   XtSU-  -
  S9  U R                  [        U	5      XgSU-  SS9  XpR
                  -  nMŒ     U R                  5         g )	Nr=   Trh   rr   rm   r7   r   )ri   rj   rH   Úalign)rI   rH   rK   ry   rM   rL   ra   Ústr)r   ÚtitlerD   rI   rH   rK   ri   rj   Úlast_glyphnameÚpage_norÊ   rÈ   s               r   Ú_add_listingÚInterpolatablePlot._add_listing‡  s  € Ø�h‰hˆØ—
‘
˜Q §¡™\Ñ)ˆØ—‘˜q 4§8¡8™|Ñ+ˆØˆˆà�‰Ø˜! $¨e×?SÑ?Sð 	ñ 	
ð 	
×!Ñ! D§H¡HÑ,Ñ,ˆàˆÛ.3Ñ*ˆGÑ*�iØÓ*ÙØ&ˆNØ—>‘>Ñ! FÓ*Ø—‘Ô Ø—N‘N SÑ(�Ø�O‰O˜I¨Q°©W©¸ÈÈSÉÁˆOÑQØ�O‰OœC ›L¨A¸!¸c¹'ÈˆOÑKØ—‘ÑŠAñ /4ð 	�‰Õr   c                 ój   • U R                  S[        U R                  R                  5       5      5        g )NzTable of contents©rÕ   rÅ   rC   rD   rU   s    r   Úadd_table_of_contentsÚ(InterpolatablePlot.add_table_of_contents   s#   € Ø×ÑÐ-¬v°d·h±h·n±nÓ6FÓ/GÕHr   c                 ój   • U R                  S[        U R                  R                  5       S S95        g )NÚIndexc                 ó   • U S   S   $ )Nr   r   r)   r¿   s    r   rÀ   Ú.InterpolatablePlot.add_index.<locals>.<lambda>¤  s   € È!ÈAÉ$ÈqÊ'r   rÂ   rØ   rU   s    r   Ú	add_indexÚInterpolatablePlot.add_index£  s%   € Ø×Ñ˜'¤6¨$¯(©(¯.©.Ó*:Ñ@QÑ#RÕSr   ©rd   Úshow_page_numberc          	      ó|  • UR                  5        H¨  u  pES n/ nU Hn  nSU;   a  US   O	US   US   4n	X–:X  a  UR                  U5        M0  U(       a$  U R                  UUUUS9  U R                  5         / nU	nUR                  U5        Mp     U(       d  M†  U R                  UUUUS9  U R                  5         Mª     g )NÚ
master_idxÚmaster_1_idxÚmaster_2_idxrá   )rD   ÚappendÚadd_problemra   )
r   rÈ   rd   râ   ÚglyphÚglyph_problemsÚlast_mastersÚcurrent_glyph_problemsÚpÚmasterss
             r   Úadd_problemsÚInterpolatablePlot.add_problems¦  sè   € Ø%-§^¡^Ö%5Ñ!ˆEØˆLØ%'Ð"Û#�ð $ qÓ(ð �l’Oà˜NÑ+¨Q¨~Ñ->Ð?ð ð
 Ó*Ø*×1Ñ1°!Ô4Ùæ)Ø×$Ñ$ØØ.Ø'5Ø)9ð	 %ñ ð —N‘NÔ$Ø-/Ð*Ø&�Ø&×-Ñ-¨aÖ0ñ) $÷* &Ð%Ø× Ñ ØØ*Ø#1Ø%5ð	 !ñ ð —‘Ö ò? &6r   c                ó"  ^^:• [        U5      [        [        4;  a  U/nTU4U R                  U R                  '   US   S   m:[        S U 5       5      n[        U:4S jU 5       5      (       d-  SR                  [        U Vs1 s H  ofS   iM	     sn5      5      m:[        R                  STT:5        SUS   ;   a  SOS	nU Vs/ s H
  o‚S   U   PM     n	nT:[        R                  :X  a:  [        U4S
 j[        U R                  5       5       5      n
U	R!                  SU
5        U R"                  nU R"                  nU R%                  ST-   UUU R&                  SSU R(                  S9  [+        S U 5       5      nUS:  a8  U(       a1  U R%                  SU-  UUU R,                  SU R"                  -  -
  SSS9  XÀR(                  U R"                  -   -  nU R%                  ST:-   UUU R,                  SU R"                  -  -
  U R&                  SS9  XÀR.                  U R"                  S-  -   -  n/ n[        U	5       HÑ  u  nnU R                  U   nU R0                  U   nU R%                  UUUU R2                  U R4                  SS9  XÀR.                  U R"                  -   -  nUT   b"  UR7                  U R9                  UTX/X¼S95        OU R;                  U R<                  X¼S9  XÀR>                  U R.                  -   U R"                  -   -  nMÓ     [A        S U 5       5      (       Gas  U R"                  U R4                  -   U R"                  -   nU R"                  nXÀR(                  U R"                  S-  -   -  nXÀR.                  U R"                  -   -  nU R                  U	S      nU R                  U	S      nU R%                  SUUU R&                  U R4                  SS9  XÀR.                  U R"                  -   -  n[C        UU5      nU R9                  UTSS0/U Vs/ s H=  nUS   [        RD                  [        RF                  [        RH                  4;   d  M;  UPM?     sn-   S UU[+        U5      S9  XÀR>                  U R.                  -   U R"                  -   -  n[A        S U 5       5      (       Ga»  U R%                  SUUU R&                  U R4                  SS9  XÀR.                  U R"                  -   -  n[K        W5      n[K        W5      n[M        [N        US9n[M        [N        US9nUT   RQ                  U5        UT   RQ                  U5        U HH  nUS   [        RR                  :X  d  M  US   S    Vs/ s H  nURT                  U   PM     nnUUl*        MJ     U GHº  nUS   [        RV                  :X  d  M  URT                  US       nURT                  US       n[Y        5       n[[        US!5      n UR]                  U 5        [Y        5       n![[        U!S!5      n UR]                  U 5        US   n"US"   (       aC  [Y        5       n#[_        U#5      n$U!R]                  U$5        U#n![a        U!RT                  5      S-
  U"-
  n"U!RT                  S S n%U!RT                  S#S  n&U!RT                  SS# n'U'U"S  U'S U" -   n'U%U'-   U&-   U!l*        [O        5       n([c        U(S5      n UR]                  U 5        [O        5       n)[c        U)S5      n U!R]                  U 5        U(RT                  Ul*        U)RT                  Ul*        UURT                  US    '   UURT                  US    '   GM½     U GH  nUS   [        RD                  :X  d  M  URT                  US       nURT                  US       n[Y        5       n[[        US!5      n UR]                  U 5        [Y        5       n![[        U!S!5      n UR]                  U 5        US$   nUS-   n*URT                  U*   S   S   n+U!RT                  U*   S   S   n,US-
  [a        URT                  5      S-
  -  S-   n-URT                  U-   S   S   n.U!RT                  U-   S   S   n/US-   [a        URT                  5      S-
  -  S-   n0URT                  U0   S   S   n1U!RT                  U0   S   S   n2[e        U+6 n+[e        U,6 n,[e        U.6 n.[e        U/6 n/[e        U16 n1[e        U26 n2[g        U+U.-
  5      [g        U1U.-
  5      -  n3[g        U,U/-
  5      [g        U2U/-
  5      -  n4U3U4-   S-  n5U.U5U1U.-
  -  -   n+U/U5U2U/-
  -  -   n,URT                  U*   S   U+Rh                  U+Rj                  44URT                  U*   S   SS  -   URT                  U*   S   4URT                  U*'   U!RT                  U*   S   U,Rh                  U,Rj                  44U!RT                  U*   S   SS  -   U!RT                  U*   S   4U!RT                  U*'   [O        5       n([c        U(S5      n UR]                  U 5        [O        5       n)[c        U)S5      n U!R]                  U 5        U(RT                  Ul*        U)RT                  Ul*        GM     [O        5       n6[O        5       n7URT                   H(  n8U6RT                  Rm                  U8RT                  5        M*     URT                   H(  n8U7RT                  Rm                  U8RT                  5        M*     U6R\                  U6l(        U7R\                  U7l(        U6UT'   U7UT'    [C        UU5      nU R9                  UTSS%0S UU[+        U5      S9  XÀR>                  U R"                  -   -  nO~U R<                  n9[        RF                  U;   a  U Rp                  n9OA[        RH                  U;   a  U Rr                  n9O [        Rt                  U;   a  U Rv                  n9U R;                  U9X¼S9  U(       a`  U R%                  [y        U R                  5      SU Rz                  U R.                  -
  U R"                  -
  U R,                  U R&                  SS&9  g g s  snf s  snf s  snf s  snf ! [n         a    U R;                  U R<                  X¼S9   GN=f = f)'Nr   rZ   c              3   ó*   #   • U  H	  oS    v •  M     g7f©rZ   Nr)   ©Ú.0rË   s     r   Ú	<genexpr>Ú1InterpolatablePlot.add_problem.<locals>.<genexpr>Ñ  ó   é € ÐDº8° FžOº8ùó   ‚c              3   ó,   >#   • U  H	  oT:H  v •  M     g 7fr   r)   ©rõ   ÚptrÌ   s     €r   rö   r÷   Ò  ó   øé € Ð>²¨"˜Ö%²ùó   ƒz, zDrawing %s: %srä   )rä   )rå   ræ   c              3   ó<   >#   • U  H  u  pUT   c  M  Uv •  M     g 7fr   r)   )rõ   ÚiÚmrÊ   s      €r   rö   r÷   ß  s   øé € ð  Ú7‘d�a¸1¸Y¹<—‘Ò7ùs   ƒ“	zGlyph name: T)ri   rj   r—   rÐ   rk   rL   c              3   óD   #   • U  H  oR                  S S5      v •  M     g7f)re   r   N)Úget)rõ   rí   s     r   rö   r÷   ð  s   é € Ð@²x°!Ÿ™˜k¨1×-Ð-²xùs   ‚ r   ztolerance: %.2fr=   )ri   rj   rH   rÐ   rk   z
Problems: )ri   rj   rH   r—   rk   r2   )ri   rj   r—   rH   rÐ   )ri   rj   c              3   óà   #   • U  Hd  nU[         R                  [         R                  [         R                  [         R                  [         R
                  [         R                  4;   v •  Mf     g 7fr   )r½   ÚNOTHINGÚWRONG_START_POINTÚCONTOUR_ORDERÚKINKÚUNDERWEIGHTÚ
OVERWEIGHT©rõ   rü   s     r   rö   r÷     s[   é € ð 
ò $�ð ä%×-Ñ-Ü%×7Ñ7Ü%×3Ñ3Ü%×*Ñ*Ü%×1Ñ1Ü%×0Ñ0ðöò $ùs   ‚A,A.zmidway interpolationÚmidway©ri   rj   Úscalec              3   ó†   #   • U  H7  nU[         R                  [         R                  [         R                  4;   v •  M9     g 7fr   )r½   r  r  r  r  s     r   rö   r÷   S  s@   é € ð 
ò $�ð ä%×7Ñ7Ü%×3Ñ3Ü%×*Ñ*ðöò $ùs   ‚?Azproposed fix©ÚglyphsetÚvalue_2ÚcontourFÚreversedéÿÿÿÿr[   Úfixed)ri   rj   rH   r—   rÐ   )>rZ   ÚlistÚtuplerC   r`   rÄ   ÚallÚjoinrÅ   ÚlogÚinfor½   ÚMISSINGÚnextÚ	enumerater@   ÚinsertrI   ry   Ú
head_colorrM   ÚminrH   rL   rB   Úlabel_colorrJ   rç   Ú
draw_glyphÚdraw_emoticonÚshrugrN   Úanyr   r  r	  r
  r   r   r   Údrawr  r[   r  r	   r   Úreplayr   rÇ   r   ÚcomplexÚabsÚrealÚimagÚextendÚ
ValueErrorÚunderweightÚ
overweightr  ÚyayrÑ   rK   );r   rÊ   rÈ   rd   râ   Úproblem_typesrË   Úmaster_keysrQ   Úmaster_indicesÚsample_glyphri   rj   re   ÚscalesÚwhichrä   r  rn   Ú	glyphset1Ú	glyphset2Úmidway_glyphsetrí   Úoverriding1Úoverriding2ÚperContourPen1ÚperContourPen2r   Úfixed_contoursÚwrongContour1ÚwrongContour2Úpoints1Ú	converterÚpoints2Úproposed_startÚnew_points2ÚreversedPenÚ	beginPathÚendPathÚptsÚsegment1Úsegment2ÚjÚpt0Úpt1Új_prevÚpt0_prevÚpt1_prevÚj_nextÚpt0_nextÚpt1_nextÚr0Úr1Úr_midÚfixed1Úfixed2r  ÚemoticonrÌ   s;    `                                                        @r   rè   ÚInterpolatablePlot.add_problemÈ  sz  ù€ ô �‹>¤$¬ Ó.Ø �zˆHà&/°Ð%:ˆ�‰�×!Ñ!Ñ"à ‘{ 6Ñ*ˆÜÑD¹8ÓDÓDˆÜÔ>±Ó>×>Ñ>ØŸ9™9¤VÉHÓ,UÊHÀ°V¬_ÉHÑ,UÓ%VÓWˆLä�‰Ð! 9¨lÔ;ð ˜x¨™{Ó*ñ à1ð 	ñ
 3>Ó>²+¨Q 1™+ aœ.±+ˆÐ>àÔ0×8Ñ8Ó8Üô  Ü'¨¯©Ô7ó ó ˆLð ×!Ñ! ! \Ô2à�H‰HˆØ�H‰Hˆà�‰Ø˜YÑ&ØØØ—/‘/ØØØ×*Ñ*ð 	ñ 	
ô Ñ@±xÓ@Ó@ˆ	Ø�q‹=ž^Ø�O‰OØ! IÑ-ØØØ—j‘j 1 t§x¡x¡<Ñ/ØØð ñ ð 	
×!Ñ! D§H¡HÑ,Ñ,ˆØ�‰Ø˜<Ñ'ØØØ—*‘*˜q 4§8¡8™|Ñ+Ø—/‘/Øð 	ñ 	
ð 	
�^‰^˜dŸh™h¨™lÑ*Ñ*ˆàˆÜ!*¨>Ö!:ÑˆE�:Ø—~‘~ jÑ1ˆHØ—:‘:˜jÑ)ˆDà�O‰OØØØØ×&Ñ&Ø×&Ñ&Øð ñ ð —‘ $§(¡(Ñ*Ñ*ˆAà˜	Ñ"Ñ.Ø—‘Ø—O‘O H¨i¸ÈA�OÐSõð ×"Ñ" 4§:¡:°Ð"Ñ8Ø×"Ñ" T§^¡^Ñ3°d·h±hÑ>Ñ>ŠAñ) ";ô, ñ 
ñ $ó
÷ 
ò 
ð —‘˜4×+Ñ+Ñ+¨d¯h©hÑ6ˆAØ—‘ˆAØ×%Ñ%¨¯©°1©Ñ4Ñ4ˆAØ—‘ $§(¡(Ñ*Ñ*ˆAàŸ™ ~°aÑ'8Ñ9ˆIØŸ™ ~°aÑ'8Ñ9ˆIð �O‰OØ&ØØØ—o‘oØ×&Ñ&Øð ñ ð —‘ $§(¡(Ñ*Ñ*ˆAä*¨9°iÓ@ˆOØ�O‰OØØØ˜(Ð#Ð$ñ &ó	â%˜Ø˜‘yä-×2Ñ2Ü-×9Ñ9Ü-×8Ñ8ðñ÷ Ù%ñ	ñ
ð ØØÜ˜&“kð# ñ ð( ×"Ñ" T§^¡^Ñ3°d·h±hÑ>Ñ>ˆAäñ 
ñ $ó
÷ 
ò 
ð �O‰OØØØØ—o‘oØ×&Ñ&Øð ñ ð —‘ $§(¡(Ñ*Ñ*ˆAä(¨Ó3ˆKÜ(¨Ó3ˆKÜ5Ü {ñˆNô 6Ü {ñˆNð �iÑ ×%Ñ% nÔ5Ø�iÑ ×%Ñ% nÔ5ã#�Ø˜6‘?Ô&;×&IÑ&IÕIà9AÀ!¹ÀYÒ9Oó&Ú9O°A˜×,Ñ,¨QÔ/Ñ9Oð #ð &ð ,:�NÖ(ñ $ô $�Ø˜6‘?Ô&;×&MÑ&MÕMà$2×$8Ñ$8¸ÀÑ9KÑ$L�MØ$2×$8Ñ$8¸ÀÑ9KÑ$L�Mô 0Ó1�GÜ 1°'¸5Ó A�IØ!×(Ñ(¨Ô3Ü/Ó1�GÜ 1°'¸5Ó A�IØ!×(Ñ(¨Ô3à%,¨YÑ%7�Nð ˜z×*Ü&7Ó&9˜Ü&<¸[Ó&I˜ØŸ™ {Ô3Ø"-˜Ü),¨W¯]©]Ó);¸aÑ)?À.Ñ)P˜ð !(§¡¨b¨qÐ 1�IØ%Ÿm™m¨B¨CÐ0�GØ!Ÿ-™-¨¨"Ð-�CØ˜n˜oÐ.°°_°nÐ1EÑE�CØ$-°¡O°gÑ$=�G”Mô  ,›~�HÜ 1°(¸DÓ A�IØ—N‘N 9Ô-Ü+›~�HÜ 1°(¸DÓ A�IØ—N‘N 9Ô-ð +3¯.©.�MÔ'Ø*2¯.©.�MÔ'Ø?L�N×(Ñ(¨°Ñ);Ñ<Ø?L�N×(Ñ(¨°Ñ);Ô<ñW $ôZ $�à˜6‘?Ô&;×&@Ñ&@Õ@à$2×$8Ñ$8¸ÀÑ9KÑ$L�MØ$2×$8Ñ$8¸ÀÑ9KÑ$L�Mô 0Ó1�GÜ 1°'¸5Ó A�IØ!×(Ñ(¨Ô3Ü/Ó1�GÜ 1°'¸5Ó A�IØ!×(Ñ(¨Ô3à Ñ(�Að ˜A™�AØ!Ÿ-™-¨Ñ*¨1Ñ-¨aÑ0�CØ!Ÿ-™-¨Ñ*¨1Ñ-¨aÑ0�CØ !™e¬¨G¯M©MÓ(:¸QÑ(>Ñ?À!ÑC�FØ&Ÿ}™}¨VÑ4°QÑ7¸Ñ:�HØ&Ÿ}™}¨VÑ4°QÑ7¸Ñ:�HØ !™e¬¨G¯M©MÓ(:¸QÑ(>Ñ?À!ÑC�FØ&Ÿ}™}¨VÑ4°QÑ7¸Ñ:�HØ&Ÿ}™}¨VÑ4°QÑ7¸Ñ:�Hä! 3˜-�CÜ! 3˜-�CÜ&¨Ð1�HÜ&¨Ð1�HÜ&¨Ð1�HÜ&¨Ð1�Hô ˜S 8™^Ó,¬s°8¸hÑ3FÓ/GÑG�BÜ˜S 8™^Ó,¬s°8¸hÑ3FÓ/GÑG�BØ "™W¨™M�Eà" U¨h¸Ñ.AÑ%BÑB�CØ" U¨h¸Ñ.AÑ%BÑB�Cð  Ÿ™ aÑ(¨Ñ+ØŸ8™8 S§X¡XÐ.Ð0°7·=±=ÀÑ3CÀAÑ3FÀqÀrÐ3JÑJØŸ™ aÑ(¨Ñ+ð(�G—M‘M !Ñ$ð  Ÿ™ aÑ(¨Ñ+ØŸ8™8 S§X¡XÐ.Ð0°7·=±=ÀÑ3CÀAÑ3FÀqÀrÐ3JÑJØŸ™ aÑ(¨Ñ+ð(�G—M‘M !Ñ$ô  ,›~�HÜ 1°(¸DÓ A�IØ—N‘N 9Ô-Ü+›~�HÜ 1°(¸DÓ A�IØ—N‘N 9Ô-ð +3¯.©.�MÔ'Ø*2¯.©.�M×'ñC $ôH "“^ˆFÜ!“^ˆFØ)×/Ô/�Ø—‘×#Ñ# G§M¡MÖ2ñ 0à)×/Ô/�Ø—‘×#Ñ# G§M¡MÖ2ñ 0à Ÿ-™-ˆFŒKØ Ÿ-™-ˆFŒKà%+ˆK˜	Ñ"Ø%+ˆK˜	Ñ"ð9Ü".¨{¸KÓ"H�Ø—‘Ø#ØØ˜WÐ%ØØØÜ˜f›+ð  ñ ð ×"Ñ" T§X¡XÑ-Ñ-‰Að —z‘zˆHÜ$×0Ñ0°MÓAØ×+Ñ+‘Ü&×1Ñ1°]ÓBØŸ?™?‘Ü&×.Ñ.°-Ó?ØŸ8™8�Ø×Ñ˜x¨1ÐÑ2æØ�O‰OÜ�D×$Ñ$Ó%ØØ—+‘+ §¡Ñ.°·±Ñ9Ø—j‘jØ—o‘oØð ò ð ùò{	 -Vùò ?ùòJ	ùòh&øôZ ó 9Ø×"Ñ" 4§:¡:°Ð"Ô8ð9ús0   ÂqÃqÐ:qÑqÕ6q!ì$,q& ñ&$ròrr   )r   r   r   F)ri   rj   r—   rÐ   rk   rH   rK   rL   c                ó"  • Uc  U R                   nUc  U R                  nU	c  U R                  n	[        R                  " U R
                  5      n
U
R                  S[        R                  U(       a  [        R                  O[        R                  5        U
R                  U	5        U
R                  5       nX™-  US   -  n	U
R                  U	5        U
R                  5       nU
R                  " U6   U
R                  U5      nUR                   U:”  aC  X—UR                   -  -  n	U
R                  U	5        U
R                  5       nU
R                  U5      nX'UR                   -
  U-  -   nX;S   -   nU
R                  XÞ5        U
R                  U5        g )Nz@cairo:r=   r   )rH   rK   rL   rš   r›   rœ   Úselect_font_faceÚFONT_SLANT_NORMALÚFONT_WEIGHT_BOLDÚFONT_WEIGHT_NORMALÚset_font_sizeÚfont_extentsrž   Útext_extentsÚmove_toÚ	show_text)r   Úlabelri   rj   r—   rÐ   rk   rH   rK   rL   r¶   rd  ÚextentsÚlabel_xÚlabel_ys                  r   ry   ÚInterpolatablePlot.draw_label  sR  € ð ‰=Ø—J‘JˆEØ‰>Ø—[‘[ˆFØÑØŸ™ˆIÜ�]Š]˜4Ÿ<™<Ó(ˆØ
×ÑØÜ×#Ñ#Þ&*ŒE×"Ò"´×0HÑ0Hô	
ð
 	×Ñ˜Ô#Ø—‘Ó(ˆØÑ)¨L¸©OÑ;ˆ	Ø
×Ñ˜Ô#Ø—‘Ó(ˆà
×Ò˜5Ñ!à—/‘/ %Ó(ˆØ�=‰=˜5Ó à §¡Ñ.Ñ.ˆIØ×Ñ˜YÔ'ØŸ?™?Ó,ˆLØ—o‘o eÓ,ˆGð ˜wŸ}™}Ñ,°Ñ5Ñ5ˆØ 1‘oÑ%ˆØ
�
‰
�7Ô$Ø
�‰�UÕr   r  c          	      óÊ  ^"^#• [        U5      [        [        4;  a  U/n[        S U 5       5      nUS   S   m"[	        S U 5       5      m#[        U"4S jT# 5       5      (       d  Sm"X   n	[        5       n
U	R                  U
5        [        U5      nU	R                  U5        [        U5      nUR                  U5        UR                  nUc  SnUS   US   -
  nUS	   US
   -
  nU(       a+  Uc  U R                  U-  nO[        XpR                  U-  5      nU(       a+  Uc  U R                  U-  nO[        XpR                  U-  5      nUc  S
n[        R                   " U R"                  5      nUR%                  XV5        UR%                  U R                  Xç-  -
  S-  U R                  X÷-  -
  S-  5        UR'                  Xw* 5        UR%                  US   * US	   * 5        U R(                  (       a`  UR*                  " U R(                  6   UR-                  US   US
   Xï5        UR/                  U R0                  U-  5        UR3                  5         U R4                  (       d  U R6                  (       aÓ  [9        UU5      nUR                  U5        U R4                  (       a=  T"[:        R<                  :w  a)  UR*                  " U R4                  6   UR?                  5         U R6                  (       aG  UR*                  " U R6                  6   UR/                  U R@                  U-  5        URC                  5         URE                  5         [:        RF                  T#;   d  [:        RH                  T#;   a§  [K        [        US9nU
R                  U5        U H‚  nUS   [:        RF                  [:        RH                  4;   d  M,  URL                  US      nUR                  [9        UU5      5        URN                  " U RP                  6   URS                  5         M„     [        U#4S j[:        RT                  [:        RV                  [:        RX                  1 5       5      (       Gaz  UR[                  [        R\                  5        URL                   H8  u  nnU(       d  M  US   u  pVUR_                  XV5        URa                  XV5        M:     URN                  " U Rb                  6   UR/                  U Rd                  U-  5        UR3                  5         URL                   H?  u  nnU(       d  M  US S  H'  u  pVUR_                  XV5        URa                  XV5        M)     MA     URN                  " U Rf                  6   UR/                  U Rh                  U-  5        UR3                  5         URL                   Hß  u  nnU(       d  M  US;   a  UR^                  " US   6   M)  US:X  a@  U H  u  pVURa                  XV5        M     URk                  5         UR^                  " US   6   Mo  US:X  aj  UR`                  " US   6   URk                  5         UR^                  " US
   6   UR`                  " US   6   URk                  5         UR^                  " US   6   Mß  Má     URN                  " U Rl                  6   UR/                  U Rn                  U-  5        UR3                  5         S nU HÓ  nUS   [:        Rp                  :X  d  M  US   n[s        U Rt                  5      n[K        [        US9nU
R                  U5        [w        URL                  5       He  u  nnUU   U:X  a  M  [y        U5      nUR                  [9        UU5      5        URN                  " / UQU Rz                  P76   URS                  5         Mg     MÕ     U GH)  nUS   [:        RT                  [:        R|                  4;   Ga¾  UR                  S5      nUbè  US
:X  aâ  SU;   aÜ  [K        [        US9nUR                  U5        [�        5       n[ƒ        US5      nURL                  Uc  UOUU      R                  U5        URL                  US      S   nUR…                  5         UR$                  " U6   UR'                  S
U-  S
U-  5        U R‡                  UU Rˆ                  U RŠ                  S9  UR�                  5         US:X  d  UR                  S5      (       d  U RŽ                  nOU R�                  nS nSnUR…                  5         URL                   GHX  u  nnUS:X  a  US   nM  Uc  M  US:X  a  Un OUS   n Ub  UU:X  Ga   UR…                  5         [“        U6 n[“        U 6 n [•        U U-
  5      n!UR%                  UR–                  UR˜                  5        U!(       a}  UR›                  [œ        Rž                  " U R˜                  UR˜                  -
  U R–                  UR–                  -
  5      5        UR'                  S
U-  S
U-  5        U R¡                  UUS9  O3UR'                  S
U-  S
U-  5        U R‡                  UU Rˆ                  US9  UR�                  5         Ub    OS nUS
-  nGM[     UR�                  5         US   [:        R¢                  :X  d  GM  UR                  S5      n[K        [        US9nUR                  U5        [�        5       n[ƒ        US5      nURL                  Uc  UOUU      R                  U5        URL                  US      S   nUR…                  5         UR$                  " U6   UR'                  S
U-  S
U-  5        U(       a1  U R¥                  UU R¦                  U R¨                  U Rª                  S9  O%U R‡                  UU R¬                  U R®                  S9  UR�                  5         GM,     U$ )Nc              3   ó0   #   • U  H  oS    S:H  v •  M     g7f)rZ   r  Nr)   rô   s     r   rö   Ú0InterpolatablePlot.draw_glyph.<locals>.<genexpr>M  s   é € ÐIÂ°W˜V‘_¨Ö0Âùs   ‚r   rZ   c              3   ó*   #   • U  H	  oS    v •  M     g7fró   r)   rô   s     r   rö   ro  O  rø   rù   c              3   ó,   >#   • U  H	  oT:H  v •  M     g 7fr   r)   rû   s     €r   rö   ro  P  rý   rþ   Úmixed)r   r   r   r   r=   r>   r   r  r  c              3   ó.   >#   • U  H
  nUT;   v •  M     g 7fr   r)   )rõ   Útr3  s     €r   rö   ro  ž  s!   øé € ð 
ò�ð �Öòùs   ƒr  )ÚmoveToÚlineToÚqCurveToÚcurveTor  F)r•   r—   r  ru  Ú	closePath)r—   r[   )r•   r–   r—   )XrZ   r  r  r'  rÄ   r  r   r(  r   r
   r)  ÚboundsrJ   r"  rN   rš   r›   rœ   Ú	translater  Úborder_colorrž   r�   r¢   Úborder_widthÚstrokerŸ   r¡   r   r½   Ú	OPEN_PATHr    r–   r£   Únew_pathr	  r
  r   r[   r¤   r¥   r¦   r  Ú
NODE_COUNTÚNODE_INCOMPATIBILITYÚset_line_capÚLINE_CAP_ROUNDrf  Úline_toÚoncurve_node_colorÚoncurve_node_diameterÚoffcurve_node_colorÚoffcurve_node_diameterÚnew_sub_pathÚhandle_colorÚhandle_widthr  r   r§   r  r  r¨   r  r  r   r   Úsaver­   r°   r±   Úrestorerµ   r´   r*  r+  r,  r-  ÚrotateÚmathÚatan2r²   r  r©   rª   r«   r¬   r®   r¯   )$r   r  rÊ   rÈ   r8  ri   rj   r  r  ré   Ú	recordingÚdecomposedRecordingÚ	boundsPenrz  Úglyph_widthÚglyph_heightr¶   ÚpenÚperContourPenrË   r  ÚsegmentÚargsÚmatchingÚcolorsr   r—   ÚidxÚpointsrD  ÚtargetPointÚfirst_ptÚ	second_ptÚlengthrÌ   r3  s$                                     @@r   r$  ÚInterpolatablePlot.draw_glyphI  sl
  ù€ Ü�‹>¤$¬ Ó.Ø �zˆHäÑIÁÓIÓIˆØ ‘{ 6Ñ*ˆÜÑD¹8ÓDÓDˆÜÔ>±Ó>×>Ñ>Ø"ˆLØÑ#ˆä “Nˆ	Ø�
‰
�9ÔÜ5°hÓ?ÐØ�
‰
Ð&Ô'ä$ XÓ.ˆ	Ø×"Ñ" 9Ô-Ø×!Ñ!ˆØ‰>Ø!ˆFà˜Q‘i &¨¡)Ñ+ˆØ˜a‘y 6¨!¡9Ñ,ˆæØ‰}Ø×(Ñ(¨;Ñ6‘ä˜E×#4Ñ#4°|Ñ#CÓD�ÞØ‰}Ø×)Ñ)¨LÑ8‘ä˜E×#4Ñ#4°|Ñ#CÓD�Ø‰=ØˆEä�]Š]˜4Ÿ<™<Ó(ˆØ
�‰�QÔà
�‰Ø×Ñ Ñ 3Ñ3°qÑ8Ø×Ñ Ñ!5Ñ5¸Ñ:ô	
ð 	�‰�˜ÔØ
�‰�f˜Q‘i�Z &¨¡) Ô,à××Ø×Ò˜t×0Ñ0Ñ1Ø�L‰L˜ ™ F¨1¡I¨{ÔIØ×Ñ˜d×/Ñ/°%Ñ7Ô8Ø�I‰IŒKà�?�?˜d×/×/Ü˜8 RÓ(ˆCØ×&Ñ& sÔ+à�� <Ô3H×3RÑ3RÓ#RØ×!Ò! 4§?¡?Ñ3Ø× Ñ Ô"à× × Ø×!Ò! 4×#4Ñ#4Ñ5Ø×!Ñ! $×"3Ñ"3°eÑ";Ô<Ø×"Ñ"Ô$à�K‰KŒMô "×-Ñ-°Ó>Ü$×/Ñ/°=Ó@ä4´\ÈHÑUˆMØ×Ñ˜]Ô+Û#�Ø˜6‘?Ü)×5Ñ5Ü)×4Ñ4ð'õ ð ,×1Ñ1°'¸)Ñ2DÑE�GØ—N‘N¤8¨H°bÓ#9Ô:Ø×&Ò&¨×(GÑ(GÑHØ—G‘G–Iñ $ô ô 
ô &×-Ñ-Ü%×0Ñ0Ü%×:Ñ:ñó
÷ 
ò 
ð �O‰OœE×0Ñ0Ô1ð "5×!:Ô!:‘�˜ÞÙØ˜B‘x‘�Ø—
‘
˜1Ô Ø—
‘
˜1Ö ñ ";ð ×Ò × 7Ñ 7Ñ8Ø×Ñ˜d×8Ñ8¸5Ñ@ÔAØ�I‰IŒKð "5×!:Ô!:‘�˜ÞÙØ   "›I‘D�AØ—J‘J˜qÔ$Ø—J‘J˜qÖ$ó &ñ ";ð ×Ò × 8Ñ 8Ñ9Ø×Ñ˜d×9Ñ9¸EÑAÔBØ�I‰IŒKð "5×!:Ô!:‘�˜ÞÙØÐ 4Ó4Ø—J’J  Q¡Ó(Ø 
Ó*Û $™˜ØŸ
™
 1Ö(ñ !%à—O‘OÔ%Ø—J’J  R¡Ó)Ø 	Ó)Ø—J’J  Q¡Ñ(Ø—O‘OÔ%Ø—J’J  Q¡Ñ(Ø—J’J  Q¡Ñ(Ø—O‘OÔ%Ø—J’J  R¡Ó)áñ% ";ð( ×Ò × 1Ñ 1Ñ2Ø×Ñ˜d×/Ñ/°%Ñ7Ô8Ø�I‰IŒKàˆÛˆGØ�v‰Ô"7×"EÑ"EÕEØ" 9Ñ-�Ü˜t×2Ñ2Ó3�Ü 8Ü ¨8ñ!�ð × Ñ  Ô/Ü"+¨M×,?Ñ,?Ö"@‘J�A�wØ ‘{ aÓ'Ù Ü  ›L�EØ—N‘N¤8¨H°bÓ#9Ô:Ø×&Ò&ÐB¨ÐB¨t×/AÑ/AÓBØ—G‘G–Ió #Añ  ô   ˆGØ�v‰Ü%×-Ñ-Ü%×7Ñ7ð#ô ð —k‘k )Ó,�ð ‘? u°£z°iÀ7Ó6JÜ$<Ü$¨xñ%�Mð (×.Ñ.¨}Ô=Ü4Ó6�FÜ 1°&¸%Ó @�IØ!×'Ñ'Ø'Ñ/™°X¸c±]ñç‘f˜YÔ'Ø"(§,¡,¨w°yÑ/AÑ"BÀ1Ñ"E�KØ—G‘G”IØ—L’L +Ñ.Ø—H‘H˜Q ™Y¨¨E©	Ô2Ø—M‘MØØ!%×!@Ñ!@Ø"×>Ñ>ð "ñ ð
 —J‘J”Lð ˜A“: W§[¡[°×%<Ñ%<Ø ×2Ñ2‘Eà ×8Ñ8�EØ�Ø�Ø—‘”	Ø%8×%>Õ%>‘M�G˜TØ (Ó*Ø#'¨¡7˜Ù ØÑ'Ù Ø +Ó-Ø$,™	à$(¨¡G˜	à‘{ a¨3¤hØŸ™œ	Ü#*¨HÐ#5˜Ü$+¨YÐ$7˜	Ü!$ Y°Ñ%9Ó!:˜ØŸ™ X§]¡]°H·M±MÔBÞ!àŸI™IÜ $§
¢
Ø$-§N¡N°X·]±]Ñ$BØ$-§N¡N°X·]±]Ñ$Bó!"ôð ŸH™H Q¨¡Y°°E±	Ô:Ø ŸO™O¨B°e˜OÒ<ð ŸH™H Q¨¡Y°°E±	Ô:Ø ŸM™MØ "Ø)-×)HÑ)HØ&+ð *ñ ð
 Ÿ
™
œà™?Ù!à#�HØ˜‘F“AñS &?ðV —
‘
”à�v‰Ô"7×"<Ñ"<Ö<Ø—k‘k )Ó,�Ü 8Ü ¨8ñ!�ð $×*Ñ*¨=Ô9Ü0Ó2�Ü-¨f°eÓ<�	Ø×#Ñ#¨8Ñ+;¡CÀÈ#ÁÑO×VÑVØôð %Ÿl™l¨7°7Ñ+;Ñ<¸QÑ?�Ø—‘”	Ø—’˜kÑ*Ø—‘˜˜U™ A¨¡IÔ.ÞØ×$Ñ$ØØ!%×!6Ñ!6Ø%)×%BÑ%BØ"×4Ñ4ð	 %ò ð —M‘MØØ!%×!5Ñ!5Ø"×3Ñ3ð "ñ ð
 —
‘
—ñ_  ðb ˆr   é
   )ri   rj   r—   r•   c                óN  • UR                  5         UR                  U5        UR                  [        R                  5        UR                  X#5        UR                  X#5        [        U5      S:X  a  US-   nUR                  " U6   UR                  5         UR                  5         g )Nr>   ©r   )r�  r¢   rƒ  rš   r„  rf  r…  rÇ   r¤   r~  rŽ  )r   r¶   ri   rj   r—   r•   s         r   r­   ÚInterpolatablePlot.draw_dot[  sw   € Ø
�‰Œ	Ø
×Ñ˜(Ô#Ø
�‰œ×,Ñ,Ô-Ø
�
‰
�1ÔØ
�
‰
�1ÔÜˆu‹:˜‹?Ø˜D‘LˆEØ
×Ò˜EÑ"Ø
�	‰	ŒØ
�
‰
�r   )ri   rj   r—   r•   r–   c                óZ  • UR                  5         UR                  U5        UR                  [        R                  5        UR                  X#US-  SS[        R                  -  5        [        U5      S:X  a  US-   nUR                  " U6   UR                  5         UR                  5         g )Nr=   r   r>   r¦  )r�  r¢   rƒ  rš   ÚLINE_CAP_SQUAREÚarcr�  ÚpirÇ   r¤   r~  rŽ  )r   r¶   ri   rj   r—   r•   r–   s          r   r©   ÚInterpolatablePlot.draw_circleg  s   € ð 	�‰Œ	Ø
×Ñ˜,Ô'Ø
�‰œ×-Ñ-Ô.Ø
�‰ˆq�X ‘\ 1 a¬$¯'©'¡kÔ2Üˆu‹:˜‹?Ø˜D‘LˆEØ
×Ò˜EÑ"Ø
�	‰	ŒØ
�
‰
�r   r˜   c                óÖ  • UR                  5         [        U5      S:X  a  US-   nUR                  " U6   UR                  U R                  U-   U5        UR                  SS5        UR                  U R                  * U R                  * S-  5        UR                  U R                  * U R                  S-  5        UR                  5         UR                  5         UR                  5         g )Nr>   r¦  r   r;   )
r�  rÇ   r¤   r{  r³   rf  r…  Ú
close_pathr¦   rŽ  )r   r¶   ri   rj   r—   s        r   r²   ÚInterpolatablePlot.draw_arrowt  sÂ   € Ø
�‰Œ	Üˆu‹:˜‹?Ø˜D‘LˆEØ
×Ò˜EÑ"Ø
�‰�T×,Ñ,¨qÑ0°!Ô4Ø
�
‰
�1�aÔØ
�
‰
Ø×$Ñ$Ð$Ø×$Ñ$Ð$ sÑ*ô	
ð 	�
‰
Ø×$Ñ$Ð$Ø×#Ñ# cÑ)ô	
ð 	�‰ŒØ
�‰Œ	Ø
�
‰
�r   ©ri   rj   r—   rH   rK   c                óL  • Uc  U R                   nUc  U R                  nUR                  5       n[        R                  " U R
                  5      nUR                  " U6   UR                  U R                  5        UR                  S[        R                  [        R                  5        SnSn	UR                  5       n
U
S   nU
S   nU H-  nUR                  U5      n[        XŽR                  5      nX›-  n	M/     U(       d  g UR!                  X#5        [#        XX-  Xi-  5      nUR!                  XXU-  -
  S-  XiU-  -
  S-  5        UR%                  Xÿ5        UR!                  SU5        U H8  nUR'                  SS5        UR)                  U5        UR!                  SU5        M:     g )Nz@cairo:monospacer   r=   )rH   rK   Ú
splitlinesrš   r›   rœ   rž   rc  rL   r_  r`  rb  rd  re  ÚmaxÚ	x_advancer{  r"  r  rf  rg  )r   Útextri   rj   r—   rH   rK   r¶   Ú
text_widthÚtext_heightrd  Úfont_font_sizeÚfont_ascentÚlineri  r  s                   r   Ú	draw_textÚInterpolatablePlot.draw_text‡  sv  € Ø‰=Ø—J‘JˆEØ‰>Ø—[‘[ˆFà�‰Ó ˆÜ�]Š]˜4Ÿ<™<Ó(ˆØ
×Ò˜5Ñ!Ø
×Ñ˜Ÿ™Ô(Ø
×ÑØ¤× 7Ñ 7¼×9QÑ9Qô	
ð ˆ
ØˆØ—‘Ó(ˆØ% a™ˆØ" 1‘oˆÛˆDØ—o‘o dÓ+ˆGÜ˜Z×):Ñ):Ó;ˆJØÑ)ŠKñ ö ØØ
�‰�QÔÜ�EÑ&¨Ñ(<Ó=ˆà
�‰Ø %Ñ'Ñ'¨1Ñ,¨vÀeÑ8KÑ/KÈqÑ.Pô	
ð 	�‰�Ôà
�‰�Q˜Ô$ÛˆDØ�J‰J�q˜!ÔØ�L‰L˜ÔØ�L‰L˜˜NÖ+ò r   c                 óÜ  • U R                  U R                  U R                  U R                  U R                  U R                  SU R                  -  -
  SSU R
                  S9  U R                  U R                  U R                  U R                  U R                  -   U R                  SU R                  -  -
  U R                  SU R                  -  -
  U R                  -
  U R                  S9  g )Nr=   r2   T)ri   rj   r—   rH   rÐ   rk   rL   )ri   rj   rH   rK   r—   )ry   Úno_issues_labelrI   Úno_issues_label_colorrH   rM   r»  ÚcupcakerL   rK   Úcupcake_colorrU   s    r   Údraw_cupcakeÚInterpolatablePlot.draw_cupcake­  sÁ   € Ø�‰Ø× Ñ Ø�h‰hØ�h‰hØ×,Ñ,Ø—*‘*˜q 4§8¡8™|Ñ+ØØØ×*Ñ*ð 	ñ 		
ð 	�‰Ø�L‰LØ�h‰hØ�h‰h˜Ÿ™Ñ'Ø—*‘*˜q 4§8¡8™|Ñ+Ø—;‘;  T§X¡X¡Ñ-°·±Ñ>Ø×$Ñ$ð 	ò 	
r   c           	      óh   • U R                  UUUU R                  U R                  U R                  S9  g )Nr°  )r»  Úemoticon_colorrJ   rN   )r   r\  ri   rj   s       r   r%  Ú InterpolatablePlot.draw_emoticonÂ  s7   € Ø�‰ØØØØ×%Ñ%Ø×"Ñ"Ø×$Ñ$ð 	ò 	
r   )r@   rB   r?   rN   rJ   rC   r   )r   r   )Br$   r%   r&   r'   rH   rK   rI   rM   rL   r`   r!  r#  r|  r}  rŸ   r¡   r–   r†  r‡  rˆ  r‰  r‹  rŒ  r±   r°   r´   rµ   r³   r®   r¯   rª   r«   r¬   r§   r¨   r¥   r¾  r¿  rÁ  rÀ  rÅ  r&  r0  r1  r2  r   rV   r]   ra   r’   r‡   rÍ   rÕ   rÙ   rß   rï   rè   ry   r$  r­   r©   r²   r»  rÂ  r%  r(   r)   r   r   r+   r+   '   sÎ  † Ø€EØ€FØ
€CØ€OØ€IØ€KØ €JØ!€KØ"€LØ€LØ €JØ"€LØ€LØ)ÐØÐØ*ÐØÐØ#€LØ€LØ"2ÐØ!"ÐØ,ÐØ&ÐØÐØ€OØ%ÐØÐØ ÐØ&ÐØW€NØ€MØ!/ÐØ;€OØ'ÐØ!€Mð€Gð2 #€NØ€Eð€Kð
€Jð
 €Cô
ò òòð (,°tÀtõDðL -1¸DÈDõ F'òP,ò\ò2IòTð 8<Èdõ  !ðF 6:ÈDõPðl
 Ø
ØØØØØØõ-ð^ EFÈÐRVõ Pðd !" Q¨iÀ"õ 
ð ˜A Y¸È!õð #$ q°	õ ð& $%¨°À$Ètõ $,òL
÷*
r   r+   c                   ó.   ^ • \ rS rSrS rU 4S jrSrU =r$ )ÚInterpolatablePostscriptLikeiÍ  c                 ó8   • U R                   R                  5         g r   )rœ   ÚfinishrY   s       r   r]   Ú%InterpolatablePostscriptLike.__exit__Î  s   € Ø�‰×ÑÕr   c                 óV   >• [         TU ]  5         U R                  R                  5         g r   )Úsuperra   rœ   ©r   Ú	__class__s    €r   ra   Ú&InterpolatablePostscriptLike.show_pageÑ  s   ø€ Ü‰ÑÔØ�‰×ÑÕ r   r)   )r$   r%   r&   r'   r]   ra   r(   Ú__classcell__©rÏ  s   @r   rÈ  rÈ  Í  s   ø† ò÷!ó !r   rÈ  c                   ó   • \ rS rSrS rSrg)ÚInterpolatablePSiÖ  c                 ó|   • [         R                  " U R                  U R                  U R                  5      U l        U $ r   )rš   Ú	PSSurfacer?   rH   rK   rœ   rU   s    r   rV   ÚInterpolatablePS.__enter__×  s'   € Ü—’ t§x¡x°·±¸T¿[¹[ÓIˆŒØˆr   ©rœ   N©r$   r%   r&   r'   rV   r(   r)   r   r   rÔ  rÔ  Ö  s   † õr   rÔ  c                   ó   • \ rS rSrS rSrg)ÚInterpolatablePDFiÜ  c                 ó$  • [         R                  " U R                  U R                  U R                  5      U l        U R
                  R                  [         R                  S5        U R
                  R                  [         R                  S5        U $ )Nzfonttools varLib.interpolatableÚ )	rš   Ú
PDFSurfacer?   rH   rK   rœ   Úset_metadataÚPDF_METADATA_CREATORÚPDF_METADATA_CREATE_DATErU   s    r   rV   ÚInterpolatablePDF.__enter__Ý  sc   € Ü×'Ò'¨¯©°$·*±*¸d¿k¹kÓJˆŒØ�‰×!Ñ!Ü×&Ñ&Ð(Iô	
ð 	�‰×!Ñ!¤%×"@Ñ"@À"ÔEØˆr   rØ  NrÙ  r)   r   r   rÛ  rÛ  Ü  s   † õr   rÛ  c                   ó4   ^ • \ rS rSrS rS rU 4S jrSrU =r$ )ÚInterpolatableSVGiæ  c                 óš   • [        5       U l        [        R                  " U R                  U R                  U R
                  5      U l        U $ r   )r   Úsinkrš   Ú
SVGSurfacerH   rK   rœ   rU   s    r   rV   ÚInterpolatableSVG.__enter__ç  s2   € Ü“IˆŒ	Ü×'Ò'¨¯	©	°4·:±:¸t¿{¹{ÓKˆŒØˆr   c                 ó@   • U R                   b  U R                  5         g g r   )rœ   ra   rY   s       r   r]   ÚInterpolatableSVG.__exit__ì  s   € Ø�<‰<Ñ#Ø�N‰NÕð $r   c                 óP  >• [         TU ]  5         U R                  R                  5         U R                  R                  U R                  R                  5       5        [        5       U l        [        R                  " U R                  U R                  U R                  5      U l        g r   )rÍ  ra   rœ   rÊ  r?   rç   ræ  Úgetvaluer   rš   rç  rH   rK   rÎ  s    €r   ra   ÚInterpolatableSVG.show_pageð  sf   ø€ Ü‰ÑÔØ�‰×ÑÔØ�‰�‰˜Ÿ	™	×*Ñ*Ó,Ô-Ü“IˆŒ	Ü×'Ò'¨¯	©	°4·:±:¸t¿{¹{ÓKˆ�r   )ræ  rœ   )	r$   r%   r&   r'   rV   r]   ra   r(   rÑ  rÒ  s   @r   rä  rä  æ  s   ø† òò
÷Ló Lr   rä  )'ÚinterpolatableHelpersÚfontTools.ttLibr   ÚfontTools.ttLib.ttGlyphSetr   ÚfontTools.pens.recordingPenr   r   r	   ÚfontTools.pens.boundsPenr
   ÚfontTools.pens.cairoPenr   ÚfontTools.pens.pointPenr   r   r   Ú&fontTools.varLib.interpolatableHelpersr   r   Ú	itertoolsr   Ú	functoolsr   Úior   rš   r�  r{   ÚloggingÚ	getLoggerr  Údictr   r+   rÈ  rÔ  rÛ  rä  r)   r   r   Ú<module>rü     s¦   ðÜ $Ý "Ý 3÷ñ õ
 6Ý ,÷ñ ÷
õ Ý Ý Û Û Û 	Û à×ÒÐ9Ó:€ô%�Tô %÷c
ñ c
ôL%!Ð#5ô !ôÐ3ô ôÐ4ô ôLÐ*õ Lr   