From 0735d752196aca90f192d90045be8fae451747b6 Mon Sep 17 00:00:00 2001 From: Dan Kortschak Date: Fri, 5 Apr 2019 06:44:41 +1030 Subject: [PATCH] plotter: add line styling to Field --- plotter/field.go | 17 +++++++++++++---- plotter/field_test.go | 1 + plotter/testdata/field_golden.png | Bin 19894 -> 19310 bytes 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/plotter/field.go b/plotter/field.go index 34a47e32..6817f2f7 100644 --- a/plotter/field.go +++ b/plotter/field.go @@ -44,10 +44,14 @@ type Field struct { // but should not be used to determine size or // directions of the glyph. // - // If DrawGlyph is nil, a simple black arrow will - // be drawn. + // If DrawGlyph is nil, a simple arrow will be + // drawn. DrawGlyph func(c vg.Canvas, v XY) + // LineStyle is the style of the line used to + // render vectors if DrawGlyph is nil. + LineStyle draw.LineStyle + // max define the dynamic range of the field. max float64 } @@ -68,13 +72,18 @@ func NewField(f FieldXY) *Field { } return &Field{ - FieldXY: f, - max: max, + FieldXY: f, + LineStyle: DefaultLineStyle, + max: max, } } // Plot implements the Plot method of the plot.Plotter interface. func (f *Field) Plot(c draw.Canvas, plt *plot.Plot) { + c.Push() + c.SetLineStyle(f.LineStyle) + defer c.Pop() + trX, trY := plt.Transforms(&c) cols, rows := f.FieldXY.Dims() diff --git a/plotter/field_test.go b/plotter/field_test.go index 0e42b65e..7702840d 100644 --- a/plotter/field_test.go +++ b/plotter/field_test.go @@ -48,6 +48,7 @@ func ExampleField() { } }, }) + f.LineStyle.Width = 0.2 p, err := plot.New() if err != nil { diff --git a/plotter/testdata/field_golden.png b/plotter/testdata/field_golden.png index ba739acd5da0055ee6bd990b114b5fc1bdab2f1f..ccb426b820d37f14192aa4d1dc123c321bb382ae 100644 GIT binary patch literal 19310 zcmZ8}cRba9{IBe6k-f<(WhG=bDJwK&Rx(OPwvJ7d>;{>Yj1ozOvLz`cD~WKBnUTHS z=lTBb5?+terZZ-uvoX~WW1VDQtt%#b5SMUPoUZS>l?qKm|Ta7Euf<>YYj=usg> z)}55Bltn@!~=#+y5L z?zmp|^xPj+&!g%w`YB%YhQRdbsDp!p5bdE;r{WLQSQp1KY|;=27cXAi!N%6udF9HL ziOxa^>l?nl_wLE}~5jpgv#qR6FKSbgMJ3DbHsm8OZ z$;pmat~@I!m?9Ee=6p;{5;HO~f`hdK0ygKz+Gw6nb8T~#%^qk5jj~|clcDUuPsi_&dz2D$;d>Xc&enRC@CqKZ~5NqLnLc< zc6Omv#q8YN+UDAHL#$xm&!1fE?51bVC|#%x(@#-i#A}z8si>)0=;=Al4S#KEX>sYR z{QdSCZwWIaBV&AgJf$`z6%`}5{7_CtfJh(K+3V-a3qwyE`ueI$OV1rWdb#`UHG*Jy zadGkCLx;|rn^Q3^$b~XjW&}#(VWYX^YP-6UZw&o-VZOFBEkQdl+VUhOCZ@Z@g_Dgf zW&hPP=H|TGEQ^ba@4ct3UOTjGZmjY0@*X~X`1!MEpFe*-a`Y%x?Zbx;($dm)&FT7& zjIcG`zkaoMbl?YWG7IjNmVS5n3kN?xzo1}7W@cu(e`bpV_Ks3p=fsHAo}Dl@ zmKPBTS+9Bb?%j>0DL3U*tk%Y2x64os1q~B+gs7Z%x-ROl-i0)N(nA=b9386d{$<6Mb!P9pXZaiNEuqw@2Z@foJ^^G_wL;pwT$Pv zxv6Tt354j3W=;N?(hatO8Diaoy_WAhC+=g*ii_tS9gd(4`PA5Wp|}gbaNn>Xy1F|# zIb(VDKYRXsBE_XrIMB$-s&eV~{{8zs$6BBEl;Ei5<>je8EUen(>8;4m-^0zF+~03= zT{Vr6l%eb1wzk?HVBfh@ zP=k2T=)6Y#! zO$P=BUcY|*Nfc)x?%ur$x4~nET|H&)IeN(#FJG>=mA@g7Vq*vb=@l3 zAm{k8W1F}|(_JMA2?@EmlG@~EW?i_F@7}*JK9|3w!a5u(>a{vQ7W*5=Mp#6o)>dA^ zAobJN+lg^;NecEc*oD|w!y`wII5>=US_jJP+gD}VxZ}Wq1H8N`cn?iYO{Rz^+1Woj zIxgGWKX~}?^Ti^ssh;GNlpFsB>K{LTjPkHG`(>Y>pP!734Cg*8Jww9>cx5%;S?vCe z^op#kp@I6SeOBd}ZDTuj>|mg->*`WbQAs}ZNH10SA9kEu?qXO>jDe|X`^MT5+m0P) zUY!3kKF+ga2a0Ca)2H@dAMOv_Bpf(U^89S!vE#?9{1(Q$itVvMC-3iJWn){@2|U%b z6-(RuU^TC$x7Q%2?RYd#y?goFxAz-urKO}6)PDZ@b^h$xoc#PI%g+TbUi^t!+#cd^ z^(v|+*Fmqp5w{hYB23K8q(ns(E`FfZ=HZD}vi-zzy^()TDrk@|bY;D!d4#KJggM5Y zVR(+FL4|s5WiIc7N@&gUPs?f>4ReiisVKcl`}P$EYJRbi#UY597yb9|-^M{s>N&xo z(E1hB;7b=Tt}Yd?uCC%fgiKgkTE_os{`PHgcJ|OJ>vcme>N($;e+`p%c6K=iY2(Sa zWcbdW?Hp^%aX;X=q>GiQi(n>B(R-*`8X6Xsm-FSKWZ_?3ddq_+N|TTV_ zGxymuI&UKnFE0V?-qWYMjHX9MmR1)gitU@pO}^%ujt@4(;!*vkdQ>7S^YR)S8*kOv zG^HKnETwu{S=rm%?9!U08#=~&Yh|7oJ%>-|>EWTQs_NzC6~lYL`A5DP4-e1KaZ~C2 zGBWx`hj;DTh3A=Jli0N@nrA^W+u)5oO5F_9`o;L0CPoe_V3f9ndr%T7)VeA#ISy`5`9sL*U~Mxrjx&(Hsz zoD6j)*tKZF9SvBi5F*O9nsazd-ZCEgB}|v zr}v-F_qMr~*Q`g3PE9e<(UIRC92`V9si>$B9{BL#$l=3vDBY3377Ig-i5BJs8oo3A z!4(ziMoqTz%zVmP=bg2E{tbkurSTgz5nY{szdQQw&O+FMZxiF=XtWg<>ZsBF@zH%I zl)uSkXxzGWtJ-M9Rk^6B2=!-SVS&ZX%q$tj{;?1 zB;fOvIR6%rq2b(XF*-K3-HE3`Wq2<1t6ic%lGYv>nefinqqlICLTQ+TF18zWc6Pcr zI}ca>Nn_45&Kv5v7a92p1^LpYOTo<4({wkI>lcAY-S#E0MShU z{Yz;_c%GNHG2dp0sz|96K&+)wP*5l+Vs=S2Op*;&oDipd{OZ+p+=FVbz6hMQuj%T% z1tmpA+OHHp=ybbDq*#n1PuYeP;KWe6sO56sW_885tOYR^Pr=;^$AJ z=iE!SK&kEHFz4I9BuL-?<`*yWpjg4O&?+D%yFEuoQBPBe>IIU}MpY#6xd(x?~K7ATU z{<4b;Gv2}1$;rvWf^W%}`mv#&Ub!ogT((3CA4WqXptHadK#s-#(4kt?*5k1P*X-;* zmRJZgzj^Z}Jv|+O4CubP?;T2;wDhwlPX^Ub=3mtC_n9No(bJb5{`|tcx7Id#dGZq|g-RBf*AHtOl< zSXlmd$tGZD@`-cj&(rDlisAr+IUaoJ-M4QB=vtba%M?GC(OexAf8mG)uYUjjeY$cj#$33> z5NBeAIgaW@RegQE+4=Leof9*wD%l4*Iy&$dEPp_IuyHtvC?y>^Nyna;ojZr~Nl2fCj%Y(6+U~EBt zSw@BV`A2xKNc}tyUqesgA=8rX>4R9YxBFtW|g_MeL5p>v+;#ZpF|&F?kfsi zR8&;39{`7miOH0?hMV){%TyUkfq|$u#O|xxLtNe5w4d#~hfa+PTv%{HmV(~4{_dBD z`>*ylE&}I(gor=?GaEY>7Z)dGl3i`Mr4be$E@S?dVY53sD~o|wN$>ROow@taT4-s5 zMv7dO`Eacl7ripmg(AT*c=vv^p^oNOuygG+)68ZTOEVxnQR~x_!K)xWG|U1{-ESFl zQLz*c9Eivna8*ualQ2k1Nnz$!WnUHr3sU4^loW4cQ&Usx_q+Z=KsUB#=Ft)x!O!pA z+qa7#i~(ztC0LGr_dv~IB2WjQC(#d8T0C)k=k%{P&!0c1m$WPHLRoZiatfP>6;OYe zp3XGg43gYfv7wb~`s~po;d>{-w<4>m0u2n9EMiw;t0ksAzucDz+}Z%HHAcN@p3Feq zT3J~MDd0SM^eBOGloD(wT=61__hOIBBTK+V?%ms|*7xnxr%ydS7CQRV=_G^#kcV?! zea#(};lVy@4ZnHG?{61Y=0>({+Xf7|ZS~l(qepj1NMM_=;j9B0Yp6B@0~hJSft9_d zdw-8;JVu3xKh_So>ueyoSUe!Ff;Q-EA|=0wN>PKF~Zs#@e$Y#Vn;$@!yRrD zb8~uv?C1d?Rwtz!nav?Jneu?WHv6eUgv7+e@?X3lM)PuWU$(O&ufNm~vjKLFQxUX^ zf)kZPCg+k0P_Ck=c$Z*_y51~1c3^4h_u+?6uH%khse1EfXN3t@Q&6bwbdle}72!7p ze#M>>XPkxRZq50xElNpB@+rIaHzg}vzI@p=F?-Vu5(@slW&!kh=3Ug#6~TnM1FYI)M7OckkYz^xj~FXc16s+>)7ud?%$fP=)G?PsGsk z+&w(PCJa-RgWD^ss7)PsAQ}w33WFa(PS(t2`fSA z-QT`3IhNZ1_Bc4uc3PLZ*7Wr76#yEmy7rT)(bVP7c64n0fYIhO&$dyVXvo2SZ0~}*w@k$9~Vc~eD=%NulEuY zO^l7n$Ma0b6Ly^px)>saeOq>67&P+*VEWY5l>h8m$iCIY{snhE!z8`oC&y!h>W@Kw zLYr+)J4oZS4)p>ok=)t%ilbx8j~{z?@1{@^0QjC8*3V3;Bc`gjQ|JA792~sO!s7Jl za9h#28RFqem5_2b0e=2#cr$zZlB=BsjJ!&(OG+pV!EqImATX7dmDMZ^4-W&eXvtm4 zo$fASP8YK}e|~&)l-6ba^S#}uo~{+?=~mOBnM`FrQ*|Vm|hRYkW$FFkYm zbjOb$H%oe%Ei5dQTzVNgA>D~wOU*XU+ZgAhR(J_XO8DtXeq~p(y=P2K*Qef3`w0*& z8zCGWyK&>j)vLS915Q_sjgKFCvrrMs*gnFYwkBGIUR(w(Lkqi{4gH}}~v2@xu=s`&h3j;W@rYXwgpF#*^Vmpb(2 z%a_vv&1Pk z%$3}?&)d_}^0fo2QD0Y=qm2!;G^X~%?P4=|{7r#$o7_5+lanBgYTAG+M(58<=RU$} zik&Qmjz!wGg5wp*edWGvj+9fw!*+lv?A~5pswyhr&-}TCxw)>Mp5Y@Umu+o(-g`HH z{!Ev|AjrnX#?8IbW~jMsiwZOhFc!D6I;0Z!0vaR~Watk5x6St4&&?gJP9C|ix~-5| z>=rJ2YN`e9HG!bEWP|6ivP#dqX;n#3xza8Pb)^5+spx&D7IJ??>P!}QIdMc$xd=8M zy4#dJbU!WPdruETpOhBM5uhHii)ED5)PTWg0{hOr%rtbv{v_APqY(Jc4KL*F+p`Cv zTLz?Q)H9*9Teokcp#^Eimz9?8u_$Fpm$+(cOZmEM*K{P1WrSt`9vX+E);rR&l3;f7 zBz>j+;QYa5!uK0#8xVm71O)KOAbR8xtIq)ydt8a@m_aqWT%@!D~Tl* zI3sA6Sj5cU>S`fXRUS!!{a4zdaS;6dgI59hdMa*kN{Z87L{|a)*D6X%O3Kf70^K#z zy!s;_)=muXY<8*W}VI^wc-s)ql0OG|Zm`5iy~wzN+8 z?V5Cso7dTSS1u_a^tG*!xH$EJgF++q@v~MC?4U!n&wbLof8o<1m7%LxB)V`B;8_>` zdreJEW$q)j3lM>IbPLVQ%)mVG9=t}@XU{g+$i|63h61K#YRW#Q^4NPtA(-4ON)y)qZ*%Th^bT0J?f91L$!AK{chpI zEjIjV>+C_kk~eRJWz0I;+acRlAGZc%Im&ZFcttgyVcwHtPB6qi?Q3;)P`++@O3LnC zyH1}yOJh-b*iy6k(iO9%D9#DopF_iSB?IECh~tj2lm01exsp0ZK8ZEgB%Po)w5EiM)m7Sf1U zT=y3;OjD)eo>ttyA9rB=UxQ%vzzpUFEw{@7`r!etpW_ z-5qbgPE=7>$K~Wt7fz3l{|C{EqTY6G{VW}&C0T7Psa_w$Y2su^WsV@Wc64|yO<9)q z*3}I{m(+5Dee`dzff!mi<6V8weRfD!jLlTcBnQRlz`AGTD5w>b?{LXoTo~_gt%#35h1+VRX8S1)9}1gHwg9SX zWo0$t#9HQ9uihPeXK==gyi5mIcU20%)z(3t-6 zKG0d5?qlX`PLg}#&3&kMWdpT@1zQU)YVy@Rd{rE{5fROS6wI{d(=_x&Z-K+%TP?6NI43=O1}N zb7LcP30GW`ZNzAIZ|^0r3w*@Mp0YV;OcdS&>+1xcE0oFkF+=kKIBh=RHmyfkom)SB z{Sh<)-LGnSfW9=n!M@6{x7;^0t6@E-zv79Vy*>1rsN1(eU-wv7mgnc+IjHDAHyj;z zX9~p2$A5c>P;Ffu(eAo!CBOGR{;+MoLFJw0l@Z z!G6;BPUN)3-_Mray5i$6l=AT5u{&JaAGe1ex)l{QILrWO28>5{CHM7f4?HI%60-E9 z8;=8@q#NYmbJS*tLQswOT7Eq4sL0c5vu)wg$IqXyO#XTUv4zFW-@gLr3uY}eSm9OZ zqo9$s`;39M&EGl&Zx#Rj`#0`0rA1Z12AHFk8)`q;Y%JgO@Ao9wSXwyvHRS+ttZ~RE zwJQ2m=7)!ncj&@lZv@>^Ru*Jxb3q#*rVxHQDH(772hSyo-z3ENxMpN!aWR|JbVox2 zjpM<@&`^rLLGn4~i?*@5}zipVP)j~_Ym0TsV@8IUsW^QLoec~^5Y zb3w#Xst_%@NvQ%~7q?iV?&ZsWpnCN-tTd3MF$05`=xD}uO0K3%tZeN0uoljJ0XYm|_!ZTv7ootv2n~9o+2KYyG#c?qd#cA6$!O$^5_u;1CsMDsV{eMb6 ztuF=_Yd$rSBs9>MyG;!aCMGA3_4fxU@{9@UoYiKE2#sR7sG%R1$^^ka+;;Ki5SNss zO!$FsvHS<^92_KPHGzh1doaPf*sZ&2%}aUIp(~?8FFqv*_pITX z00S+iW*@vh^l8o0SO^SSC&d=-m(Ph3`kY6Pwn_PF2nmtx6+g=zKhM?FU%lj((mbb< z@)d6PQR!_h%n6B!@dF%h*oCEYcZP#n$CLK+SgWW$>m}J**b!JGT!Yn>6~_6cd~i0a zrgf80i~8^hCqap8*M4N)13$MRaMFtv1b8++HZG)?WTD*VFd z^*M4!Qq)1we3oY}q=)X|cy2BWM1}))IN|PHN=|!w`x}0KwF_`Tj$iLTHhcDPM`uSz z+57i(3wV6zt5-uOsQ#2Z8fU$I2r$W*Qh|2DH7SrD_Iqd)%+)+l>(1$)MT5ZNuIdSG z^y6NRzP>B(-l>)b)ZgA|D!nsLQ;;%Dxxt2-Hp_?)i+#R_VyAMv9H-!7v9PG zug>Fkms;uSZlBVTqU0M%YEH!?io9s&Q}<)f^UrFeG7UgWf)ZRAcu-L0Tl`zP`Afg) z0i@%yGq#7o;-|0xZlNtC7<_vYx>$7g!2|1e9#R?_8oPG=fuIFlc*b4ml#x+TR>|wv zM_T7Ri$2=M+vHkNQgVQxl>7d@ zIUr5mYjtV`TFLS!OK$7>8-YS!W8zL1_WNb6T!6+6`I(Pt1Zeqq3|~uY>#7hN8CQsq z-`X&JLtPz(ZtU)JHeq!KovXm>ftjG7^j7*GL?UE<-lO2lSwKNFugsgEx~@upA|Ahf z&93WWZ%;Znr2?KNEW>>X`J*h-_wL3N&6=HJKo2&g)bw5OqIB^G0MrTHNxO zhcrH;w;B7>w|8U?>Y}qo9EvG0a;u{(m#I-_22>nFG4-A!D+)IceA^`^R?02KKuyv3 zY+EQdWt`XYqG%Ok-k#*ztkj z{iESvcR+5a+hZATAu#~>=rHi%mX>Xi^Ln0x(goyL6tZAVj9#m0b zBot;M(;z(gD_O-|yj4W-N|AT_NF)Th+IqaLPE0$OUIsx?@YA+Gu;L=4qr)e_6XOZ& zr?h#jQDr$fIZHM6?qwROxEL1NPvMIuD$G3%aG>L?txTkvbIK~=&DGBAoSeEB z?4-cV@868g5r;pY#t>6Z;bNRM30JwOdU=4^D}s$VMNgi<%I7Y~F$OfxbFF~=Vgb|6>DsmUdBM*# zJBVeb!~7u{&^r!)ZK)&N7gEuSii|`Nqbo2xabk62sgLLfegu=NR6{|5t&y9cwjwsJOl8IIV25URJK&$&+itDK5(aM@|JcL`?8TBF~l8!VgH8 z**p28&^k8j_^;P<>nrZsZeJdty~7d-ojxwuKyzIyip9&r!_{P7F3FHCi?R(=L_|GD za`$ffcLx7Hs*F+Sep~@Eq;WVGaz27Z%H_!U^Q%Y|xo#j95ue~HmsGQ@!@=YCJ5TbI zRhA8HJGiDg_Z=a!&fL<6ZbTxs1OOwQPAVAEKYpAk)d1@u>GkBj%HH1IeQ&NlNKfwt zf`-DNq-CF`;jfxtJ&r_8Tmd~~oFM(Cri#MC z!E5mk9&~!ukno9AXHID;msHCLToj#EI0dCi205_hYZide_i)e`G=KdX9;Lzu+lLTOXfNbgb4lj0PYwt*2Q?S`#EMv5nh1cgGR1P3?0 zjD^_gsHDags)H$D_ytXjdH5k%X#t(sth5vfHc?TE0^kKk^lfdye;-#SyGvlt`=RLK zPnw8O1gVNai|D&@=#df0REicvA`>YSSJGz$KMW=<8)}HpAjl&$a@UQZU+ot*i)TLi zIy)DXl#~F5<>igxx)?Dg1ZOh+=G=1*T#1Z5(S&nGxDLGy#t1R3>%I3rHNgPz0z~L$ zqRxAIzIpLNrd$DZZn-sRjIDROD&Fk+4;-L3;4QCTn?kNymsC|f|H;1)9lUZ_`;k$c zxWL)`b8g_5RP-EV3owip=H`$>OgQGPx{XPbj! zme~{ufE9|Td?g8l=HJ1S5zOSPEXuE}Oy@PKUIa>6*)|_?{p$Z==w-*Hckfo990b0E zwA=i5KxLmvT8`4`R?2nrItUBq0 zUf2M8?PR$^5@J^Nl%lDbnVWO6vm?i|I6uX+#-z=e0Antzl{TrF8L7QQ3B%e2Pft(4 zyPG-R!*AYvmY4T6LsKvp=OGzF8d#Ch*6PAl+>K?OVyvs9qs)N=-XwVDk8m1EZ(c>b zW&5k8;Y4QOeB#JR=dWL?FkFz}L8xG7fH(s+Q>$y55N*~zb>Hc(SC{E6rXgfHI&Sam zD|M^;^^2!qX<^~$70vzo7Z9^`^|!Q4%Y1i|++PT7pJSiZI!t+>(m*MMAGBJLE+pTZ z-8QE4M{?9-HBR_&zaMpIu<0$F0rMpHz0Jy-*u$PqxRjxq*D02s7oFQ9eUHwGEp){R z2IT1IXwU>!vn=Ioue085at)328{ga7Og^;%kNn?UhQ5B9f<06D6S#Xi z3mu5#5ETUBYoJP5IjG9Xxxp8AWhRrp_YS-)GpYXK(PPI7&cC6{m6&S|3d9jjh2DyM zvUWh%%afffNH{%W zZK#nAz|QB^Y=3`0X^S`YY3b?BEBy8w>9KskHpOwgr5e9sSkqS(*jHCq*V*ZfT-J=E z|6dBM;HLygs;C4w#EXlSzH{OhTLbm5aM(!7hAjJJ`RZ~|-%&vd6v{ZTd=1F;#t+nZ@ zhzW!^!_?kyh)(avRaRC`N>#i90nEv19T*IGhJJ}U8x7XDgkx(&*%yx<1)CbFX=wB! z0$#w(#H10psb(Q4Ah1`=cT-R!PES11eDN=&ck~51M#gZkK%6FcMT9D6)FfjmGq45( zR`9V^^q|?2w77ymC`mJAb%7sv!w+#UXyS}YveUJu`_Li*jVx9e$!6)-h(@*qB1x}u zfmS501>eI6M&7qxljln-5l=(MIz&l6{T%gXvMhJ;5$qDuh3?#`BqtXfYlQ@OcXu}; z(ZQ>TXJutQK)21JyA81cB-ex386Ru3#V6$<#r_${ynomgxob~1w{61}hzxt7F1hBs z1LPW=n5a9f4uM%kgkKLT5*L0^HEn8W=txc*f`GL1qLTmF zMBqRQvaxT9i%pInZ>X*&8$AL(gZzNZo;^XGR2)%nFb%NmE*M%PD<@Y}Tud>J=d-l1 zU|?hnUWF`&m)|^X1|ZDG$0x6#fKhBZmN zg+jXgQDDci39s+c?a0WWvovDUL)eLMP1c{?-C(kH3(Nv)=gO|{BCrT>bC(fTt}n~V zV5H(_Z%%b}_2l$Vpq}RaHb@U(4alrc&TR0_O@|+QBK$i!&s5s%IfV|2zuH|L-lOpN zN-LXfeS!lDDYZ$dZES7zm+fJ&n{bNz2S$<%8MAI_g$VUiM~DFjQ&UsBR*SCKOJxh!uH#xmC!@_HmyC=$Af z$O|b&MMb@2`J<6R-mUkJJsBGv1+8GIww!!B_EZ{ z*R5)4_|8&F1!_o3(^>6(4oRHE>B9FTkU&?Mz*uN#Fg0G~KEh-HfNipAvG#cMer7VCjrA%9MB(N~SqZaXP>pjl+)PeJtdYye@V+8F9bL%8G^`Kc#L`U=5nOE2tv0!ELD+&+ zSP%}W6#N&n1lIt=9MHG$zdwI|72P9)S4@@*^djqVJ?{GPXLr-%;$%HWjh4Oar0?+{ zm;qC^M-enM1}P?Bqpi1V%gc9o_K#!0iF~}Sw)Q`y6@(Z!1S}f6;lz(4kQi{Ll(%Ai zXNl03ffpLDRwLPojvUmvgP_?!P%ZagD)Qm@>C4TG3B;J&&ae6IctKOEvJ4LF(@L_%x@ob@lpd_tBA4I#=*kB`%_BRSTJO6=T`v=Os33dKf< z0jb1BejD_$nTG4F<}apI0xO@a01{_S9-JAOBZVc!#K^jxu3kOpG0IZTjFAG&E0EoW z92U2zU~g+%UC-4dK^17iN=iK``YDre5i>J_DnXHuJyyYrYoZI`e8ZFp_FllG4g5K# zO-bQhyPl#$2Hth`@(P$6W;D{Xas?WuW=t=wawXQj65!Je;Pa^oYA!)w0l0tpsic(D z_Pq1_t(Fy;nf*|7t8D{N@27goA|q*S29YIzXNN`gmj+u$ThGgL1c1x>13-Z>17s)v zZXecUa?$9))KuxE4P>3o%(`%P5?#>Z!<>%8M!*P9|Lt%SOUp@Q+50Z=^6~YwwEP1G zqgVjWu|VyAS$^i^$uBVMaoI%(;-M!oW(2$d>rNOgFaQP@G##y1naX_M;87uX@<7J? z$B14t76rgjXZI)yF#3-efo{+miWEG1HeM!r4sNj3A({@JB6R=e ztp0S!ZKYDXzB3f|`L%yMm9}oQ5CV4{S8HF@dID)~=?tE2Y73Y`UuSz5iYgGIP3qEM z6((omr0s;qAWB8mhb+-_gtK-0VQXx?TSo){#lYN-Tqp|&$+GtbAo)WgD=HTK^TTZ3Qvwa^#?|S z03mKCCv(rlnxTSTzU(>pkufrkCO2m5EoJ9fVkXJ%1NbGESwGPU^K z*C#mE9m6x^q3TaEcGbr&Ne#6Hwrh^;bw&d-NK@UZ!T!O9n#t!QZR3!4^#acRON@wU z&b==!#ew8kxlTz+3PabUG8m0R+>p#6O6%f<3oUK`UL08W7Xna+yiUvsj!RG9yzqNi zHi?=1gW@9z7~Y2;-iW$$=Lp?(bo16hvfL`5T12wL`|fR>+Da9}IO3^OZkTMFN!MmU z9L>}7cZrLjQ6Ll%EJK|H@2QcGvPql4>_bDI+xFVYCkL+oqfyhuye6_=PYs__X{f)& zC+$93eagfn1-?BnPw*YbE$r0YX@;_A{1t*F_X55|0u08h@#+DFkJ$#da$dS175M-k#Pei|uMGHkD zssVjBaK?TY!|+y(!j`j>Q#oqkbvtV-E0P?p{37;sf!&1*|AxQvW+I!nLISoS*D(_c zl~fD4Vp%06gOevI#?b;Cu3UjTzKsUwn)-56}9HG3`x#d@QQ1eOBQZX4-KLk7r&*dfO~8CySmPxBL@!zjAG(}nEhZ6 z2mG3Uuw44*xD9)7{PWMhx!q`c|L$Gf1H^sF_i-s34r`vooGdClWYD1QV1T9kKH}fM z4BX|2!J|B#JbCi!)d>(^n?fUhQAfpxm6ZVqIvO?G$|Fskn2-?U#}wfX!4d?pv=gwW^DQ`B!PLSzAq4LfM?kCe33^0{$?BEw(DNHn#)0gaYDS(@GT~w z5KEi6Zpp`#^X{D=^kbbl(OhlFdr4_&GDoUYn2$d-Ms^hR@&61kdH?;nEie`Hi>m(_ zyb$k*UM)igmAZ-IHHMHIt`Rf}m{?mo>zbQ-v zgGkev|4s1=E!!-`;*?`4gEi=>Ls@Hs8hkHb-qm;eB_!fL|0Vu%elhikI$eGJ@U?*b zxZ_CqMRnf0e;?!6Qqt1o3m6^%JVc5>Ya?jW4fh1&>BMj3*bmf0;C{++Bsau#l3OlXDipx-&4>nnN?=l5B=1BDhJ-f_(q~km~=tJeZ}i(FoKypBjq@RR26_ zSj`Vq0m!0u0b4aQq|_S5kXJg5PlB;_Si?k;>nPR`kCwEMU(qcgdhAY+L>=S2;BgBJ z0(R4Nqv}sekiWPr-dW9=^x~wUng9J+GPd0_qt{vhzfH&Ggqm6{qclB#)tD z1Z+DxJGY>8zxSHlQPA1iI>6JC=n~GkbgAeZV)+;=K#KuqSN0sg%kmFI2YIJve+(QS zMTsJA2&2$oVF~l2@iUD{2<&0iV!0KDVH$vknNnZ9``Xk5slU@6 zw&MwdbhWXeAu$34(y=xU4!O7xK%PQRg}R*HLa_r_f_u8k{=~~1qqb-Q@Ry-sLZ(M0 z_fHRjtsx4CNg8JhcUb+W2_XaZ9qXycqmS`ZfXAI8sJi~^%W_LEKzK21HM5y|(Axl0 zl8+w`z%25gGGL^mLmL8ki;Ishdik>d#f@99CnhOo5mt=f`2t}MWIiQ%qQxy@&%ZP? zF;N%~bm}QBYEDaln6KhHE4G4h?zY-`;8%>G557f?M98A~GOm5r(oNT71i$kdkuy(7 z7%yIy^UlbNj{b`2inYHt@f8z*J7#~*L}Cne8W%9DZEO$6Rqz(HiyggAM~{Z1(ZJJ! zh0tR!xY}|J+b~-X>kle3g$h+fotvj8AlRMTw|DG4ypbWF+=SF9MqR`H18J7;JakJp zArbX_Y)(}f?C%${K=PY_nPaAi#MIRM%*<+A`S3`Lgo0@x*nB9U0eHxVQc&U>2ss=a z;Mz|mq&k6E+>D?ZM02G4RuCfn-Pw7zv@$a@h|mI6>sq%GaR4aU(Q)kK$742I3i9#= z)>TaG?g%kJ=8zZrhWOVfk`t+?_ZN)2cA+P|;p4{>IyzdahkxjB2#jF97EoWr8l?6D z%3s`l9IIfrm|xeXGX6|gZ3!qjaSgF!pcmByD(x<@Z}FQsP{d}g>NoEb^JN<^rXGYV z2U!HBA~K5FEVUc-5N$A(aHtY7^1+YMgRF$q5qD(iA=1GdoSnpXXIyu858wI(8w1qv z+@3Qy#0ZLQi8QPCpAR7oT43dB>xcdzm#up6;QOpB%Gup7yZ)jEKnFkkA?u$G0uaMr zQ-m*0ol`~M`+Qf*|Hmq^;2{F-`WYJhKc8wee)~4eL1ujB%(uqI6(gC%Os|wRdtX2@ z9RIa;;0<##GYBsnKLxY49G#r<(JWwW0kdMCGyJAF*_+R@JCtSOL2LH%7k5U^_ z=htKfd%Vb@58!X=PcZHK3V#v2@ zRiyaKOS02wq*tztBSH}V1u*HS(_2h5<2HcUevIM2G4Vr2c=gniV-*-h>h69INoD_j z3{sgv=!s0PzX;oVb-d#_uuPnDBK2VuM*uja`N1u#Gq9}1FJF?~UdyVeNLx#ikdgU1 z*Rc{*{hptNrGI$%M{h5}>_2jT!uy0*nlu!;s`=tZL}Fqa933PKAWk$!ywWHtDdF6l z6lp;y0+j`o#@M(O(nfgBj%)blk;X=7QKqL)?}xFyKD^X)lc!v{xw%dMWC{ZbRPm&$8vD2 zpL(wm7W_qog==i(8#@`OpER2rZLzdY_B#0;x3YqrGzUxsU4crfu}IxD;I2?4zByz2 zR>rIlWVf#e`e22`m3+r|%Ao-@SSRD{dH!ekutk>GL==8}1xM@8pSh18qovAU{>-ku z3JNF>!9-cPG&k1)b{C~KY_fTF2CLLBjg9eCNsZf*FeHHVL}Lk@(TWl2Q}jweE#9?Z z+lMsosI~t1!2$7TQ^K!qvI%StT?*)^qzv7Abuf%2Tnk$))Ol>r;)m-pSk003-| z*^dS+A0Ym~=e-g0(Ko_S&!45b9*z5tX;CP(PH@kVkDuLRQ>)Ad4|sNOH6gf zgRl9>q5My=M+qTO&B4QSqO$kZ<*4xRqZv6kLsRbWVzOXBV$MCa4iaHJf?yiIuei80 zr%`Cad&rn0;6%Tf7RnJuLOjf{-pzg!!#XJHeEj_3kr>24`1#0@uo;aRvgC-Un3(hf zE&?ll2w8zw#N7{`bItu-ke3J0Nw@Ou#fxkBww~Hf3#4qXZbjU_eF9DM`0)r9_31LaPFA~C8o}4@D0}V8of@bwDzG4QKjV`?P*RK->e=!n;n8)@O5*pOh%ph!Z zyHqX2#KgW0nELYv-9$`Un$*wG4K=O>;p*=-5lL z-_FSB!!8GGu8iPYTM%j_itdIg0o`w}Re31@Joseu?$_nzYAYdp)KD}`Bx^Tk|3BBY z704$n68=qdRp3N+RfL#Ef+@ zUKoxI{KXm@i+3K5Fih1hWh{*?qME=1fUOq6zzxE56_Ox9uXj#2uIHWTx;FnpAkgI% zJG*SGtwYP>$jC^{U~TVAJj_76I&49zfjF=-GB0+WydPJ0AC^B|%K=42(s+kO*(@$C n?wOLj`~d5E;5IU{t*v9FvH>Yg()dO#GBVwx21g1G*@XNra6`7b literal 19894 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 IHSMDR7f`NW2mk;8