L iW`ddlddlmZddlmZddlmZmZmZddl m Z ddl m Z ddl mZmZmZdd lmZmZdd lmZdd lmZdd lmZdd lZdd lZdd lZdd lZej<dZGdde Z!GddZ"Gdde"Z#Gdde#Z$Gdde#Z%Gdde"Z&y ))*)TTFont) LerpGlyphSet) RecordingPenDecomposingRecordingPenRecordingPointPen)ControlBoundsPen)CairoPen)SegmentToPointPenPointToSegmentPenReverseContourPointPen)PerContourOrComponentPenSimpleRecordingPointPen)cycle)wraps)BytesIONzfontTools.varLib.interpolatableceZdZdZdZy)OverridingDictc||_yN parent_dict)selfrs i/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/fontTools/varLib/interpolatablePlot.py__init__zOverridingDict.__init__ s &c |j|Srr)rkeys r __missing__zOverridingDict.__missing__#s$$rN)__name__ __module__ __qualname__rr rrrrs '%rrc eZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d ZdZd ZdZdZdZdZd ZdZdZdZdZdZdZdZdZdZdZdZ d Z!dZ"dZ#dZ$dZ%dZ&dZ'dZ(d Z)d!Z*d"Z+dEd$Z,d%Z-d&Z.d'Z/d(d#d#d)d*Z0d(d#d#d)d+Z1d,Z2d-Z3d.Z4d/Z5d(d(d0d1Z6d(d(d0d2Z7d3d3d4d3d5d#d#d#d6d7Z8d3d3d#d8d9Z9d3d3d4d:d;d<Z:d3d3d4d:dd=d>Z;d3d3d4d?d@ZdFdDZ?y#)GInterpolatablePlotg @ig@r)333333?r)r))皙?r*r*)?r+r+?)皙?r-r-)皙?r.r.)rr-rffffff?)rr,rr/)rr+rr/)rrrr/)rrrr/ )rrrr/))rrr)rrr)rrr)rrr)rrr)rrr)rrr皙?z#Your font's good! Have a cupcake...)rr,r)r)rr)a ,@. ,@.@@,. ,@@,.@@@. @.@@@,. ,@@. @@@. @@. @@,. ,@@@.@,.@. @. @@@@,.@.@@,. ,@@.@. @@.@@. @,. .@' @' @@, ,@@. @. .@@.@@@. @@' @, ,@. @@. @, @. @,@@,. , .@@, @,. .@,@@,. .@@,. , .@@, @, @, @. .@. @ @@,. , @ @,.@@. @,. @@,. @. @,. @' @@||@,. @'@,. @@,. @@ @,. @'@@, @' \\@@@@' @,. @'@@@@' @@,. @@@' //@@@' |||||||| @@,. @@' ||||||| |@@@|@|| || \\\\\\\ ||@@@|| ||||||| ||||||| // ||||||| |||||| |||||| |||||| || \\\\\\ |||||| |||||| |||||| // |||||| ||||| ||||| ||||| || \\\\\ ||||| ||||| ||||| // ||||| |||| ||||| |||| || \\\\ |||| |||| |||| // |||||||||||||||||||||||| )rr)r)z\_(")_/z o /|\ / \ z o /O\ / \ z \o/ Nc ||_||_|xs|Dcgc] }t|c}|_i|_|j D],\}}t ||std|zt|||.|jdz |jdzz |_ |jdz |jdzz |jdzz |jz |_ycc}w)NzUnknown keyword argument: %sr0)out glyphsetsreprnamestocitemshasattr TypeErrorsetattrwidthpad panel_widthheight font_sizetitle_font_size panel_height)rr9r:r<kwargsgkvs rrzInterpolatablePlot.__init__rs": :1tAw: LLN DAq4# > BCC D!Q   ::>DHHqL8 KK!Odhhl *T^^a-? ?$BVBV V ;sCc|Srr$rs r __enter__zInterpolatablePlot.__enter__s rcyrr$rtypevalue tracebacks r__exit__zInterpolatablePlot.__exit__s rc.|xjdz c_y)Nr) page_numberrNs r show_pagezInterpolatablePlot.show_pages ArTshow_tolerance tolerance kinkinessc |j}|jd|jzz }|jd|jzz }|x}} |jd|| d||j| |jz } ddl} |D]} t jj| } | |j|jzz } |j| || d|| |j|jzz } | jt| djj} |jd | z||z| | | |jz } | jd rrt!| }d |vr|d nd}|sd D]R\}}|j#|}||j|d|||z| | | |j|jzz } TV| jdsiddlm}|| }dD]H\}}|j|dt)||||z| | | |j|jzz } J|j+||||j-y#t$rY%wxYw)Nr8r7zProblem report for:TxyboldrBrFr)r_r`rarBrbzsha1: %sr_r`rBz.ttfname)) Family name)r(r)Version)z: )z.glyphsz.glyphspackage)GSFont))re familyName) VersionMajor versionMajor) VersionMinor _versionMinorrY)rCrBrE draw_labelrGhashlibospathbasenamerFsha1openread hexdigestIsADirectoryErrorendswithrgetFirstDebugName glyphsLibrigetattr draw_legendrX)rfilesrZr[r\rCrBrEr_r`rpfile base_filehttFontrdwhatnameIDsnriffields radd_title_pagez!InterpolatablePlot.add_title_pageshh Q\)q488|+ A  !**   T ! !!+ 3D((.I $((* *A OOIad%O H $((* *A LLdD!1!6!6!89CCE Q!c'QeLT^^#}}V$)/6)9vf~t* 7 g!227;9$(,a0AGq(T^^dhh66 7<=,4L$ 3KD% OO$('!U*;<c'# $ $((22A 3A+ 3Z )Y)   M%  s1A!I++ I87I8c tj|j}|j}|j|jz |j dzz }|j d|jzz }||jdzz}||jdzz} |r1|jd| ||||j|j zz}|jd| |||j||jdzz |d|jz|j |j|j|j|jrD|j|j|j|j|j|j |j"|j%||j|j zz}|jd| |||j||jdzz |d|jz|j |jr)|j|j|j|jrD|j|j|j|j|j|j g|j&d |j(|j%||j|j zz}|jd | |||j+||||j d zz|j,|j.|j0 ||j|j zz}|jd | |||j3||||j d zz|j4|j6||j|j zz}|jd| |||j3||||j d zz|j8|j:||j|j zz}|jd| |||j=|||j>dzz ||j d zz|j@||j|j zz}|jd| |||j3||||j d zz|j8|jB||j|j zz}|jd| |||j=|||j>dzz ||j d zz|jB||j|j zz}|jd|||d||j|j zz}|4|jd|z| ||||j|j zz}|4|jd|z| ||||j|j zz}|jd|||d||j|j zz}y)Nr7r1z,Tolerance: badness; closer to zero the worserczUnderweight contoursr/g?z/Colored contours: contours with the wrong orderrz Kink artifactr,)r_r`diameter stroke_widthcolorz!Point causing kink in the contour)r_r`rrz!Suggested new contour start pointz4Contour start point in contours with wrong directionr)r_r`rz5Contour start point when the first two points overlapz!Contour start point and directionzLegend:Tr_r`rBraz!Kink-reporting aggressiveness: %gzError tolerance: %gz Parameters:)"cairoContextsurfacerCrErFrBro rectangleset_source_rgb fill_color fill_preserve stroke_colorset_line_widthrstroke_preserveset_source_rgbaweight_issue_contour_colorfillcontour_colors contour_alpha draw_circlekink_circle_sizekink_circle_stroke_widthkink_circle_colordraw_dotkink_point_sizekink_point_colorcorrected_start_point_sizecorrected_start_point_color draw_arrowstart_arrow_lengthwrong_start_point_colorstart_point_color) rrZr[r\crr_r`rBxxxxxs rr}zInterpolatablePlot.draw_legends ]]4<< ( HH KK$(( "T^^a%7 7 Q\) A $((Q,  OO>#RW   DNN* *A .#%H R$((S.(!S488^T^^L4??+     B  t00 1   d// 0    D;;<   TXX &&  =QV   R$((S.(!S488^T^^L ?? B  t /        B  t00 1   d// 0    GD//2GD4F4FG   TXX && 3!5A  $..3&&**66((   TXX && ;sauU $..3&&))''   TXX && ;sauU $..3&&4422   TXX &&  B   4**S00$..3&&..  TXX &&  C  $..3&&44((   TXX && ;sauU  4**S00$..3&&((  TXX &&  Q!5tD TXX &&  OO3i?   DNN* *A  OO% 1   DNN* *A  au4H TXX &&rc V|j}|jd|jzz }|jd|jzz }|x}}|jd||d||j||jz }t t }t|jD]#\}}|D]} || dj|%d|vr|d=t|d D]} ||jz }|jd | t|| fz|||d ||jz }t|| D]c}||jz|kDr|j|j|z}|j||d|zz||d|zz ||jz }e|jy) Nr8r7zSummary of problemsTr^rRnothingc(tj|Sr)InterpolatableProblemseverityr_s rz0InterpolatablePlot.add_summary..rs.C.L.LQ.Orrz%s: %drrc) rCrBrErorG defaultdictsetsortedr>addrFlenrX) rproblemsrCrBrEr_r`glyphs_per_problem glyphnameproblem problem_types r add_summaryzInterpolatablePlot.add_summaryYshh Q\)q488|+ A  !**   T ! !!(-#)(..*:#; C Ix# C"76?377 B C C * *"9-" $O  $L  A OOL#.@.N*OPP    A#$6|$DE $ t~~%.NN$,A QS[AUQQTW_UT^^#  $ $( rc b|j}|jd|jzz }|jd|jzz }|x}}|j|||d||j||j|jzz }d}|D]\} \} } | |k(r| }||j z|kDr|j |j |z}|j| |d|zz||d|zz |jt| ||d|zd||j z }|j y) Nr7Tr^rhrcr1r)r_r`rBalign)rCrBrErorGrFrXstr) rtitler>rCrBrEr_r`last_glyphnamepage_norrs r _add_listingzInterpolatablePlot._add_listings2hh Q\)q488|+ A  Q!$et?S?S   T ! !DHH ,,.3 *G*iN*&N4>>!F* NNS( OOIQWSO Q OOCLA!c'O K  A  rcj|jdt|jjy)NzTable of contentsrrr=r>rNs radd_table_of_contentsz(InterpolatablePlot.add_table_of_contentss# -vdhhnn6F/GHrcp|jdt|jjdy)NIndexc|ddS)Nrrr$rs rrz.InterpolatablePlot.add_index..s!A$q'rrrrNs r add_indexzInterpolatablePlot.add_indexs% '6$((..*:@Q#RSrrZshow_page_numbercf|jD]\}}d}g}|D]h}d|vr|dn |d|df} | |k(r|j|-|r'|j|||||jg}| }|j|j|sz|j|||||jy)N master_idx master_1_idx master_2_idxr)r>append add_problemrX) rrrZrglyphglyph_problems last_masterscurrent_glyph_problemspmasterss r add_problemszInterpolatablePlot.add_problemss%-^^%5 ! !E>L%' "# 1$q(lON+Q~->? l**11!4)$$.'5)9 % NN$-/*& &--a0) 1*&  *#1%5 !  ? !rc :t|ttfvr|g}|f|j|j<|dd:t d|D}t :fd|Ds+djt|Dchc]}|d c}:tjd:d|dvrdnd }|Dcgc] }|d| } }:tjk(r9tfd t|jD} | j!d| |j"} |j"} |j%d z| | |j&dd |j( t+d|D} | dkr6|r4|j%d| z| | |j,d|j"zz dd | |j(|j"zz } |j%d:z| | |j,d|j"zz |j&d | |j.|j"dzzz } g}t| D]\}}|j|}|j0|}|j%|| | |j2|j4d| |j.|j"zz } |'|j7|j9|||| | n|j;|j<| | | |j>|j.z|j"zz } tAd|Drv|j"|j4z|j"z} |j"} | |j(|j"dzzz } | |j.|j"zz } |j| d}|j| d}|j%d| | |j&|j4d| |j.|j"zz } tC||}|j9|ddig|Dcgc]8}|dtjDtjFtjHfvr|:c}zd| | t+|| |j>|j.z|j"zz } tAd|Dr|j%d| | |j&|j4d| |j.|j"zz } tK}tK}tMtN|}tMtN|}|jQ||jQ||D]B}|dtjRk(s|ddDcgc]}|jT|}}||_*D|D]}|dtjVk(s|jT|d }|jT|d }tY}t[|d!} |j]| tY}!t[|!d!} |j]| |d}"|d"rCtY}#t_|#}$|!j]|$|#}!ta|!jTdz |"z }"|!jTdd}%|!jTd#d}&|!jTdd#}'|'|"d|'d|"z}'|%|'z|&z|!_*tO}(tc|(d } |j]| tO})tc|)d } |!j]| |(jT|_*|)jT|_*||jT|d <||jT|d <|D] }|dtjDk(s|jT|d }|jT|d }tY}t[|d!} |j]| tY}!t[|!d!} |j]| |d$}|dz}*|jT|*dd}+|!jT|*dd},|dz ta|jTdz zdz}-|jT|-dd}.|!jT|-dd}/|dzta|jTdz zdz}0|jT|0dd}1|!jT|0dd}2te|+}+te|,},te|.}.te|/}/te|1}1te|2}2tg|+|.z tg|1|.z z }3tg|,|/z tg|2|/z z }4|3|4zdz }5|.|5|1|.z zz}+|/|5|2|/z zz},|jT|*d|+jh|+jjff|jT|*dddz|jT|*df|jT|*<|!jT|*d|,jh|,jjff|!jT|*dddz|!jT|*df|!jT|*<tO}(tc|(d } |j]| tO})tc|)d } |!j]| |(jT|_*|)jT|_*tO}6tO}7|jTD]'}8|6jTjm|8jT)|jTD]'}8|7jTjm|8jT)|6j\|6_(|7j\|7_(|6|<|7|< tC||}|j9|dd%id| | t+|| |j>|j"zz } n||j<}9tjF|vr |jp}9n=tjH|vr |jr}9ntjt|vr |jv}9|j;|9| | |rc|j%ty|jd|jz|j.z |j"z |j,|j&d&yycc}wcc}wcc}wcc}w#tn$r"|j;|j<| | Y=wxYw)'NrrRc3&K|] }|d ywrRNr$.0rs r z1InterpolatablePlot.add_problem..DGFODc3(K|] }|k( ywrr$rptrs rrz1InterpolatablePlot.add_problem..>"2%>z, zDrawing %s: %sr)r)rrc34K|]\}}| |ywrr$)rimrs rrz1InterpolatablePlot.add_problem..s# a1Y<;S s z Glyph name: T)r_r`rrrarFc3@K|]}|jddyw)r[rN)get)rrs rrz1InterpolatablePlot.add_problem..s@!k1-@srztolerance: %.2fr7)r_r`rBrraz Problems: )r_r`rBrrar,)r_r`rrBr)r_r`c3K|]b}|tjtjtjtjtj tj fvdywr)rNOTHINGWRONG_START_POINT CONTOUR_ORDERKINK UNDERWEIGHT OVERWEIGHTrrs rrz1InterpolatablePlot.add_problem..sZ   %--%77%33%**%11%00    sA(A*zmidway interpolationmidwayr_r`scalec3~K|]5}|tjtjtjfv7ywr)rrrrrs rrz1InterpolatablePlot.add_problem..Ss?  %77%33%**  s;=z proposed fixglyphsetvalue_2contourFreversedrSfixed)r_r`rBrr)>rRlisttupler=rWralljoinrloginforMISSINGnext enumerater:insertrCro head_colorrGminrBrFr< label_colorrDr draw_glyph draw_emoticonshrugrHanyrrrrrrrdrawrrSrr r replayrrr complexabsrealimagextend ValueError underweight overweightryayrrE);rrrrZr problem_typesr master_keysrKmaster_indices sample_glyphr_r`r[scaleswhichrrrd glyphset1 glyphset2midway_glyphsetr overriding1 overriding2perContourPen1perContourPen2rfixed_contours wrongContour1 wrongContour2points1 converterpoints2proposed_start new_points2 reversedPen beginPathendPathptssegment1segment2jpt0pt1j_prevpt0_prevpt1_prevj_nextpt0_nextpt1_nextr0r1r_midfixed1fixed2remoticonrs; ` @rrzInterpolatablePlot.add_problems  >$ . zH&/%:!!"{6* D8DD > >>99VH,UWV_,U%VWL !9l;x{* 1  3>>Q(1+a.>> 088 8 '7 L  ! !!\ 2 HH HH  Y &//**  @x@@ q=^ OO!I-jj1txx</   T ! !DHH ,,  < '**q488|+//   T^^dhhl **!*>!: ? E:~~j1H::j)D OO&&&&   $((* *A ". OOHi5AQROS""4::a"8 ""T^^3dhh> >A) ?,   $  4+++dhh6AA %%1 4 4A $((* *A~a'89I~a'89I OO&oo&&   $((* *A*9i@O OO(#$& y-22-99-88  &k#  ( ""T^^3dhh> >A  $   OOoo&&   $((* *A(3K(3K5{N6{N i % %n 5 i % %n 5# :6?&;&I&II9A!Y9O&45,,Q/&N&,:N(  :$+ M6?&;&M&MM$2$8$89K$LM$2$8$89K$LM01G 1'5 AI!((3/1G 1'5 AI!((3%,Y%7Nz*&7&9 &<[&I {3"-),W]]);a)?.)P!( bq 1I%mmBC0G!--"-Cno._n1EEC$-Og$=GM ,~H 1(D AINN9-+~H 1(D AINN9-+3..M'*2..M'?LN(();?!CF&}}V4Q7:H&}}V4Q7:H!eGMM(:Q(>?!CF&}}V4Q7:H&}}V4Q7:H!3-C!3-C&1H&1H&1H&1HS8^,s8h3F/GGBS8^,s8h3F/GGB"WME"Uh.A%BBC"Uh.A%BBC a(+88SXX.07==3CA3Fqr3JJ a(+(GMM!$  a(+88SXX.07==3CA3Fqr3JJ a(+(GMM!$ ,~H 1(D AINN9-+~H 1(D AINN9-+3..M'*2..M'CA 9H"^F!^F)// 3 ##GMM2 3)// 3 ##GMM2 3 --FK --FK%+K "%+K " 9".{K"H#W%f+  ""TXX- -AzzH$00MA++&11]B??&..-?88   x1  2  OOD$$%++.9jjoo   { -V?J h&Z 9""4::a"8 9s*: p= 7q=q7q /q'q<;q<r)rrrF)r_r`rrrarBrErFc| |j}| |j}| |j} tj|j } | j dtj|rtjntj| j| | j} | | z| dz } | j| | j} | j|| j|} | j|kDrD| || jz z} | j| | j} | j|} ||| jz |zz} || dz}| j| || j|y)Nz@cairo:r7r)rBrErFrrrselect_font_faceFONT_SLANT_NORMALFONT_WEIGHT_BOLDFONT_WEIGHT_NORMAL set_font_size font_extentsr text_extentsmove_to show_text)rlabelr_r`rrrarBrErFrrOextentslabel_xlabel_ys rrozInterpolatablePlot.draw_labels^ =JJE >[[F  I ]]4<< (    # #&*E " "0H0H #(  )LO;  #( 5!//%( ==5 . .I   Y '??,Looe,Guw}},55l1o% 7G$ Urrc "#t|ttfvr|g}td|D}|dd"t d|D#t "fd#Dsd"||} t } | j| t|} | j| t|} | j| | j} | d} | d| dz }| d | d z }|r+||j|z }nt||j|z }|r+||j|z }nt||j|z }|d }tj |j"}|j%|||j%|j||zz dz |j||zz dz |j'|| |j%| d | d  |j(ra|j*|j(|j-| d| d |||j/|j0|z |j3|j4s |j6rt9||}| j||j4r<"t:j<k7r)|j*|j4|j?|j6rG|j*|j6|j/|j@|z |jC|jEt:jF#vst:jH#vrtKt | }| j||D]~}|dt:jFt:jHfvs)|jL|d }|jt9|||jN|jP|jSt#fd t:jTt:jVt:jXhDr_|j[tj\| jLD]4\}}|s |d\}}|j_|||ja||6|jN|jb|j/|jd|z |j3| jLD]9\}}|s |ddD])\}}|j_|||ja||+;|jN|jf|j/|jh|z |j3| jLD]\}}|s |dvr|j^|d |dk(r?|D]\}}|ja|||jk|j^|dd|dk(ri|j`|d|jk|j^|d |j`|d|jk|j^|dҌ|jN|jl|j/|jn|z |j3d}|D]}|dt:jpk(s|d}ts|jt}tKt | }| j|tw|jLD]b\}}|||k(rty|}|jt9|||jNg||jz|jSd|D]}|dt:jTt:j|fvr|jd }||d k(rd|vrtKt | }| j|t}t|d}|jL||n||j||jL|dd}|j|j$||j'd |z d |z |j||j|j|j|dk(s|jds |j}n |j}d}d}|j| jLD]O\}}|dk(r|d}||dk(r|} n|d} |||k(r|jt|}t| } t| |z }!|j%|j|j|!r|jtj| j|jz | j|jz |j'd |z d |z |j||n6|j'd |z d |z |j||j||j|n d}|d z }R|j|dt:jk(s|jd }tKt | }| j|t}t|d}|jL||n||j||jL|dd}|j|j$||j'd |z d |z |r4|j||j|j|jn(|j||j|j|j|S)Nc3,K|] }|ddk(yw)rRrNr$rs rrz0InterpolatablePlot.draw_glyph..MsIWWV_0IsrrRc3&K|] }|d ywrr$rs rrz0InterpolatablePlot.draw_glyph..Orrc3(K|] }|k( ywrr$rs rrz0InterpolatablePlot.draw_glyph..Prrmixed)rrrrr7r8rrrc3&K|]}|v ywrr$)rtrs rrz0InterpolatablePlot.draw_glyph..s    sr)moveTolineToqCurveTocurveTorF)rrrr^ closePath)rrS)rrr)XrRrrrrrrrrr rboundsrDrrHrrr translater border_colorrrr border_widthstrokerrr r OPEN_PATHrrrnew_pathrrrrSrrrr NODE_COUNTNODE_INCOMPATIBILITY set_line_capLINE_CAP_ROUNDrQline_tooncurve_node_coloroncurve_node_diameteroffcurve_node_coloroffcurve_node_diameter new_sub_path handle_color handle_widthrrrr r rrrrr saverrrrestorerrrrrrrotatemathatan2rrrrrrrr)$rrrrr$r_r`rrr recordingdecomposedRecording boundsPenrc glyph_width glyph_heightrpen perContourPenrrsegmentargsmatchingcolorsrridxpointsr0 targetPointfirst_pt second_ptlengthrrs$ @@rrzInterpolatablePlot.draw_glyphIs >$ . zHIII{6* D8DD > >>"L# N  95h? &'$X. ""9-!! >!FQi&)+ ay6!9, }((;6E4#4#4|#CD }))L8E4#4#4|#CD =E ]]4<< ( Q    e 3 3q 8   !5 5 :   fQiZ&),    B  t00 1 LLF1I{L I   d//%7 8 IIK ??d//8R(C  & &s +<3H3R3R#R!!!4??3  "  !!!4#4#45!!$"3"3e";<""$ KKM " - - >$//=@4\HUM   ] +# 6?)55)44',11')2DEGNN8Hb#9:&B&&(G(GHGGI   &--%00%::   OOE00 1"5!:!: ! Bx1 1a  1a  ! B   7 7 8   d885@ A IIK"5!:!: %  "I%DAqJJq!$JJq!$% % B   8 8 9   d99EA B IIK"5!:!:   44BJJQ( * $)1 1a()OO%BJJR) )BJJQ(OO%BJJQ(BJJQ(OO%BJJR)% ( B   1 1 2   d//%7 8 IIK Gv"7"E"EE"9-t223 8 8!   /"+M,?,?"@JAw{a'  LENN8Hb#9:&B&&BBt/A/ABGGI    o Gv%--%77#kk),?uzi76J$<$x%M(..}=46F 1&% @I!'''/Xc]fY'"(,,wy/A"B1"EKGGI BLL+.HHQYE 2MM!%!@!@">>" JJLA:W[[%< 22E 88E %8%>%>)MGT(*#'7 ' +-$, $(G {a3h #*H#5$+Y$7 !$Y%9!: X]]HMMB!II $ $-NNX]]$B$-NNX]]$B!" HHQYE : OOBeO<HHQYE : MM ")-)H)H&+*  ?!#HFAS)V v"7"<"<<kk), 8 8! $**=902-fe< ##8+;C#OVV%ll77+;[[F  ]]4<< (5! (   7 79Q9Q   ( %a"1o  *Dood+GZ):):;J > )K *  QEJ&(<= Z%' '1 ,v e8K/Kq.P   Q $ ,D JJq!  LL  LLN + ,rc |j|j|j|j|j|jd|jzz dd|j |j |j|j|j|jz|jd|jzz |jd|jzz |jz |jy)Nr7r,T)r_r`rrBrrarF)r_r`rBrEr) rono_issues_labelrCno_issues_label_colorrBrGrcupcakerFrE cupcake_colorrNs r draw_cupcakezInterpolatablePlot.draw_cupcakes   hhhh,,**q488|+**    LLhhhh'**q488|+;;TXX->$$  rcn|j||||j|j|jy)Nr)remoticon_colorrDrH)rrHr_r`s rrz InterpolatablePlot.draw_emoticons7  %%""$$  rr)rr)@r!r"r#rBrErCrGrFrWr rrerfrrrrorprqrrrtrurrrrrrrrrrrrrrrrrrrrrrrrOrUrXrr}rrrrrrrorrrrrrrr$rrr&r&'s E F COIK J!K"LL J"LL)*#LL"2!",&O% &WNM!/;O'!MG2#N EK J C  (,ttDL-1DDF'P,\2IT8|j|jyyr)rrXrQs rrUzInterpolatableSVG.__exit__s << # NN  $rcNt||jj|jj |j jt|_tj|j |j|j|_yr) rrXrrr9rrgetvaluerrrrBrErs rrXzInterpolatableSVG.show_pagesf    **,-I '' 4::t{{K r)r!r"r#rOrUrXrrs@rrrs LLrr)'interpolatableHelpersfontTools.ttLibrfontTools.ttLib.ttGlyphSetrfontTools.pens.recordingPenrrr fontTools.pens.boundsPenr fontTools.pens.cairoPenr fontTools.pens.pointPenr r r&fontTools.varLib.interpolatableHelpersrr itertoolsr functoolsriorrryrqlogging getLoggerrdictrr&rrrrr$rrrs$"3 6,  g9:%T%c c L%!#5!3 4L*Lr