From 8bdce01343d9c89af96a6d8f5d982d1ae5b15de5 Mon Sep 17 00:00:00 2001 From: shv Date: Tue, 12 Mar 2019 12:51:01 +0500 Subject: [PATCH] jap_lcd rewritten Completely rewritten. Support for nanoDLP was added. --- Lib/stepperQ/20171002_205103.jpg | Bin 0 -> 213752 bytes Lib/stepperQ/Examples/Blocking/Blocking.ino | 39 + .../Examples/ChangeSpeed/ChangeSpeed.ino | 42 + .../ProportionalControl.ino | 45 + .../ProportionalSpeedControl.ino | 46 + Lib/stepperQ/Examples/Quickstop/Quickstop.ino | 30 + Lib/stepperQ/Examples/RunToPos/Blocking.ino~ | 35 + Lib/stepperQ/Examples/RunToPos/RunToPos.ino | 50 ++ Lib/stepperQ/README.md | 51 ++ Lib/stepperQ/stepperQ.cpp | 809 +++++++++++------- Lib/stepperQ/stepperQ.h | 158 ++-- README.md | 39 +- jap_lcd.ino | 663 +++++++++----- 13 files changed, 1391 insertions(+), 616 deletions(-) create mode 100644 Lib/stepperQ/20171002_205103.jpg create mode 100644 Lib/stepperQ/Examples/Blocking/Blocking.ino create mode 100644 Lib/stepperQ/Examples/ChangeSpeed/ChangeSpeed.ino create mode 100644 Lib/stepperQ/Examples/ProportionalControl/ProportionalControl.ino create mode 100644 Lib/stepperQ/Examples/ProportionalSpeedControl/ProportionalSpeedControl.ino create mode 100644 Lib/stepperQ/Examples/Quickstop/Quickstop.ino create mode 100644 Lib/stepperQ/Examples/RunToPos/Blocking.ino~ create mode 100644 Lib/stepperQ/Examples/RunToPos/RunToPos.ino diff --git a/Lib/stepperQ/20171002_205103.jpg b/Lib/stepperQ/20171002_205103.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5e5d5c4ac6d4eba6a47dfba0d47116f8580ac768 GIT binary patch literal 213752 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𝔣m-%k3UazO{}f(i5MLU$i#cuV)l7R9%WE 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%0AHXZ8%)z@$qp+oEk0 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Øk!^`siGx4*DxBomge*rlKhwv)R>3 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 OSz_b%GRd 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

XENZp)83_(lh6BQEn>O;eKygbkanmmdV-A zk1w=Ft(yoR9La#KWz+%5+uPI1ATqbGwTu$wnPIgR^DXj)c5BvRwK-<>_m60lV;YBJ z%{fX^_Pdh-v2w{SK;U}UKWz0q8x(*vJm2l~q(+r_ECI)=@s1+7f4(s(V#Oo_H3>|`ul}AOaDo1!n($*+ z){WUc{oBzoD*Q^+5<{g-phYQBmw|qCiHF8M%Y@zn(1H|;LIER!(3GIn&VU-V4pglP zX0fUG1076SY?D_QxAZg1G*_AQ`*jmt4q@x*6G?NuBMf{xZ+$j3 zDqQunrHuF}WlHC(XnbP%{{Z-+yVL&wFrEw#^XcU9=hL+>v?cZ{$A_tTDsavd+AT3e z%=oadI5?Jn?NvRYH1CTG2|t;C_@AhN{{Riuf9=cu)=wTDrQd74f>KFpby%x!Tidi+ zi}~`1Hqm@Y*;X*6MY)65&KRU`uE{~#0C+&X2BJOj%k0VHN7S*^H2mNa?IdT`u?n;A zZpgf*q@6T_#@)#-(^C3=@TaE8yT$#Pek6TKx^EhF@{T6e5gQ)TAdk+I=L+n%%1f~i z;yqy=9G7$!_3B9tsuEAPG&3&T{2;Hzolnv$WAq72;y6yUy%afV#zfx0rZSf(chdgwzU&KVMMN982`u(Az@!I)v z=$`TA$N7kT>$H<5=iM9!-J>gRXRp%q+**HibLz=m<+f7L;Uf|D5e>et&0JXAE-+<`-2H8!=$MS(~W!40>qS^8vNmjMJ_W3-(U>N^J;80YN0-nIyB7QPRNLrK+>Ss|LYAMU*7EP085tBb0 zpx^ja6?6>vLf)duu!QYp=$W#>#WqnA}qIJQNt^n518f9@3ZF zjor<%+CZEX5N0LR*(Js&<^!I5AX`Oimoi+$_SnimGQmp{%L6t#+)}5<#=89 z&76`GE_h3-T8MXV(tl8Vi$4(=e`$AGnJZ8z#EP=D^M>#AD`}rU3D+3!;XPvAR>{l$ z*zC=Vl;4-GvxGc^*i+wx`$8eJb$vcwac*1oT3B{Z)28cKYF^K#0nW*=uTgh|<*soe z*$Y4Q67ECRCwC_3mpO|NmU@iheJ^4pSrRfTY^d+X6FHC1OxVhELg&YPEan6HlreLEsl zkXE%4bUAp^94?zOQcVD6%Pw73Bq)>%2u{Y!vL$wGa2?~9EZgl8TQ%AM019Oa#h)$* z*m`FMqCxV_;w)v@(QCR3u*ho*EY~|EF@-bK1Cv3<8E4-MQ3;gf4S1ehgd;Dq5*J$S z=|W4Ioi%pSA-3C6rWXN*UOeJdHf18KIFxz4d>{$C02wxbMo4a(;3mj*p5Reaq`HB2 zh2MrDVNIWO`03+VGVlvZf|E-5dHkYLW3VE8g)<4V&MI&@7U7uII~sU!;>_}66x$Ix z(jc2xV($V0&An*-Y40_gc#xCFBjXX7(+PL19I;nol!&a$5gkze@gBYG;4Ff}FO*JZ zhvDPaU1vy#-xq3$Q2^v#nhjwu8BRbp*2I|>d`=9-Q7LvlCsrRg%=ev{OPEW#imK;R z@`={hUvt%IDwv|l43Kib-!sGv;x>!5OC%%`Nq4P1KWOyY4JzBcnB_i6PUQBO$+UJ0 zqGlGa_hs+PgjpNKxoLuF zcv3wc42n^qvE><7{jgwKn7Vk<`f}?+#ljahcQQN@ogK2a;Z=$UI??gj?GIvfqchr`ndmYm~Joh)4{a z+cQ(1jYo}95u zmVr)55rZ~T%ZhxI(7e3KfteQ@|ggdK{wkT)_>O-Nc!xAde0p@%l!2;t5El?7QbwnSf78QdFkx2Ao_q zTRMGSE{&Gk`8I%)Eoo39jA{=8G>QvqwqNthm;=8GK7>RLcF)@EN)x4(4MNdSM>e5x zm@VZQyfnkJa3a@CpmqyzB>h{ixy22-t^WWC*ksx;qG1dbkXiZ@!}%7xx$WLhpI$w1 zr;drZmQL>_#$Gw{Y~!ex>F3sPz%Nx1)^KdQ;Ed}Fa2S~RF=46KtP~4ppUaFiD)VyH z5Na*eZ+^U?ZY9|6fDhIjws!uRC0LMip&Aj-_J%t(yG~hjU<c!+^You6K?^I+P!vcXH0Awh~wQ|Y1bg!oQ8 zqU>$6--#rGKqE+6Z5%yf6@OXr64Wl>k6hr}p8i-ERy+<**AYl$W$FVaFY5=$w2_vr zSdW`_TEVti{Nq#^M3FY01^E2n+19{A9P{&r2{T*Arhu-{b?Z-9)j%=Ws+}|dTG`>P zHsUq*ftkH?ilSKM_{Yu#C1KCX8f97=I9p}3*NiG$7CClw>#nqfQx#l~T?kla(~J@l z9rOM=eOT41t>>!SleQyj$u!v#DLGQV=5OA+Ip+9)+OB}O7a%66Z)Q#RF`+c?j;iGD{0|*N;*&>flIr+uCV6dbbyKv_O z-xnHY9`Ph_dVcYT@|hF!Cy0uJU^XBbxY~)R@zJ8gy;FrW%~?abEU1>20f#6@Wx7{6 zMQm`2C&Wij9w!uLoUDax=FXK)#;plHy2XuVvo|*p9U=5g$4hCA+8c0Gp}u^n6r zbJv9;Rb<&&U{nX|p`1EPu{}my2VWwE zEA-Re94s3bFHkh}>nMDYcE8)h?-E^?+0!v#2Oxf9!|fR**D|j|OgeN2t={g&QgF>F ztM^})U(UX=X(H2pYd|cQi z5)h*_kNRQVy4Tt(OZ(#za@(-88s(4Z1N{7;tApW=YJepHEtyk4wtkUfT|W(ygB7bG zl0#R@w2ezg(e%IOPjmVI06`Bfrhe>F`IKGjzgyaGM=&tQsVg&k3|VS zZ|+Ov{61k~Wuw90<@Scl&vU3p=s~38@ zANI{D8tNV~^PV3R2^XvHagf@-YXb;{j72A3comQaF8)NvDzk3{552v--Qu~$6?cPiu zmSGLRp1mP7jhVG0@=aLtKXcQ?iY0{YC5Inh{Ub+EKyRuIA$xB&q8ZyouCVuN{=*=*eb?;E&XWsOutB2+6{d}TLckeDj zvRYq(ipJTn$75(8YismPf;zTQ* zArix>Kysx>`Sp}}{Mw#mK^ae-&csW;d{-Q`HKUfp!-97`*IPP zuO@hAv|lq9M1~x7`$nkY3qH3Fom}L;L!F{}6Hq3!jK(jE+!Z+ zjjxu9AUV~tj*dM!;`P6Xr7vd+rRq5*#hR3S%roAbUX%t!Pq&Ojt+&+0=1z11ANE6c zb7zo9!i`i$W0Z7Zi6h44&pfi-Cu~D?T~jSH7y_bddeBCP*$tgdno?1jXHveNT6sc! zoY{$Xbh2|fmZ|-`A?j@R0v$qyMr00MxCVMdTBg)MzZ2yIkqH%=+?rR`50!6A<{~0( zMhg6Q2nK;HDHhN*{$WJB#AHv(E7^Abc}G=ltq-4FeFte}hKpF}$5m?&pVUQtF7rHG z#|7kgpIE(wEGc)E5(-qx6$BO|%y`7NX19(Ha?##JJKB#CtWoQ{mBtdT@m5b)%UCq1 zhRC-3JR;E~S}dzdg2o|+pz>#@&(bN2_hlzYQB2g3-Yx44o1otHzQs5H07{~yD1x~v z1j=6$Q=vcHmR41bnRo34mhzDHnH_}OH40*vY|^bm@naU!EXB5ap>veUNh90LpQKH$ zjo(X>G0h;6r_v^OzRfDmRwM+eB$gk)-YWgH+EvTV1gPd!kc_z^*JK(*n)llbBMKP< z(EiZ}yzfw>`KzsJVhMX+GZb8_oE9y#HLFHn4o{XfB6Ve+Tn%5-ggXmSDr|;lu5nsj z_lm=s=?+$F)kcrw*OWFmN^Xk^!Du-?zj%D@>zr2iZLVUNCCeQ%KHt1d?roU1Orj8@ z%!<}E#|W1p>P@{`m{N;*Z2IF57Y5{Q>&-gwA)<3(_-3>y0Hrs8i1f{oNTV(HvZgE{ zKa@B?scgD2qb`4iJRpb9GpsyWeikJrGX6tzxv`tkm>0B+MlZ~1T}&_h zL-_pTOef*CPM{wcc9pmrFwBo=(;Xxu*cUS;O_KD4cV)FwCgK?o#D8*if1i+zjE%+F z2C4OeXYM}7{mAtnD0FcoDagkAYhwW8mZ61XO?(E1BR6!xQ2Kgx^NqnbaCTEnNIsB` zf5SzX~2L&X1?c37>sSvaC#+F-vw>)S-RV8auEhO{f&BM$@Kq)v{#8EZZ$57Ao#>hK)Tuz>auKO#p={XZI7PX;y^azkV<9S3zzT_C z0C7Q{MwE>OBjB9brgn%!(1s!U>GFuZ`M8T@qDoM38sTh@C;hzRqmq8ggg8hPtf;r4 zHA}N8GSbx;*@LF8DW*;}@P_@(sX;12g9A~(9KU{ku`=2{khCEsJ(__u%jMV38LkTf zlv4E2f;^#kGD{rQcIq!i3xL8zu*I03Bi$!FnM+q?4InUQvh#f;QWK~f&7matN$8kCZiYpzjJU3<4mkXRN>s(|v2JO1CpYD*yyN-TrjJa%SpmLzc>Q9sw{Lb@vP$Wx8XiAJf)%{f z9FnfO(hI_{9(elxrHg0UHawaiWnNB@K?F8^aN+WbWjlK>P@(?-Y0t%>&g$Nbl+n#j zt=G+>o)Dv&FU&h{WdcIA`L<6S*}F(oq7)q=#uJg?{c!R_v|CLoU<4>uxsJYHIPT3` z07=TE9P}JI`bRognw1)q(?xH*{o3|q&yWe1nFBd$^3n1?IGyfCdflM>Jmr5-HU*M9 z>HgpMBzl9LB0#H3P9Q)iP$^J9s2vY4NT6@~tl4cqrPGB$Xd{L%ei0lAxY%;7RRiqZ zeR#pDS1}dN&u1LG9jy{$SAKbM?4-Me^DLX$-di1`}oBRue5D3(lT0)-S4m&>2;^o|Q)6@Gp` zkc#X-j0;j|w6P!%_)^t2LRvm1IUnr~Y z?W$HGiH}(x5jVRpkgq=`)9V?gi%gi=&3%uI3UKm*>?aV;4w$Y_3feG(?_>_eFRauN z^7h3{tM7{bA;+KCd*y(4L@`GpD z=ra2OpOU`@*O04L}F#wCIg|%n2CUw4OZ(G z6NqGU9OJX2)F{2OFy@DvB6BQL(Lh4}Vhys{Z6r|%50)dBlsikl5>6MW`NM>($AowG zrgI#c3A*-0t2tpuJRp4d`$LkJ0AK(EK?xUZFq&l8n+3T5wJSJAR|n7I1tMHt!EQhl z9t^_)DUPBIBCH5R4GNDWz~!f$J|MHe!IF+pTzeY=c^I}tP3$w1XFx7HMF$**7U!fR z+H2y~I?pjlo!Lp2lZk8{OCgahFZz{GNc^-ho-eK7%|!JkW+f6pLpv6BNbvpqUN*;i zmWlG@$iO7Yl#rqlqy0&TIg84=09*$=Lt)D*HNqrMXzw7R5-5ZWAaOdV@g(tx*t3-$ zo3E@n&rw<8{2|)Ia{wB?F~!R_CT)rkOSumr4i!-DG!Pn zEO$La3i-vcvO7E3qOFNlG=er`WyKUmS!eRd^~xszMkzB~RS9KSp+Y6XOY-`cAq8_3 z5|OFl8Jl>&6O$&XQmjL|Tp6Tiolpp<;Bxx(`hQ8!td(Mq9&gDC&8UVY%P+05-o2K{ zl4i_Hx8()YdWB>POvQwrwHQF0A^&Rm&* zjRCO#01n|boXJjj6Q_?q2Jz$VqoC0A#k)IFpQrRkE5^&4-BgU}V%RH1rC8@KWaX^8 z5>->nAP*)F7Y4@sJ*<#c0tUL1$rtMZF#@d099JNfPWaY%XBbJwCM1R+W7UHSTnbHlajx9Zk@Yt^?OztfU*}h z*94~5qxpD5*?YCq5gm9zO5Lvoc=0fFRgl$MY31)oBk^7j!X?u;YF>)_bA;>Ng8u-% zo{%)0Xs{fp0k4PF8h_zp>t}F@@Gk zDOPE55*xc=&SX$=q%61Il4J^yNP0Wh!a4Hmnc>DJ(d;z8hA}m}H$MT2#jw)J#ejI4 zo}c9oma9amDetp}pyI_nYD*-N~|68e)t9L%}0>Senun|~A6X|yY0#Zl zQo*KP)929+mfP(Ja1JA&8ABxde8rX>!J7y7Fk+<3K*X{GR-`|su@}9!h>+r1e9neC z81(jdt!LsKllF1&hv8#FDz$i%5$oG{2}vSYf0tgd61LtmCYMvF@YB*Hn;W`YO|1U_ zPExSDISe#3eCg{O;ipTv zBhNz;ak~3T00LbDQi7d$MzsWlZYtfL-JH2V6?fDtT%UwYKNb?e3TVNEJz6#{c+Cf2 z2y36R^S`w9)~yA!y9!;tI=fF@bkG&tlSXMhe=tY*biw*eN-uCZlR7+LDz){-5}ORd z{nGqv?Hrq6m_JE>2x5s_g(lGf#NBn)kd)o?Kd|~hMU{WrU#?L$mAF`$!#9B{(Fju_ zV95vn03N)c!)8{Xk0>3b?i8-m2L-}K%2R$*=@Lzi*jd(<0F;m(s_U%awuNIvyE>LY zNOEY|#jCsj0EhY0)C$2!)HhvtMcccb!^pCywV#JV>Tj<;5Q}d9B`o$=mn8*61{hNA zd1deRginCcCE5Mi*=$I}ye`_*zg!}#-gf^0Wsm8}Wd~{+Q;8aKAG}gqb-oK_u}2vx zK_!rvX6AMBXojpSP<CdncXGhci!nTmZZy` z#P&;IqBy7fn^wv(9F!=~0}uBt$2S%vI#dk^a6!<5J%~C!kzOQM2U`bA&zqGRUax~g zZ=2yoR$!^J<^YjU2>^L&GWGV&ia`X1sHF#tU2B}?m1_QdqN&=3& zN1R?8rub5qF_fenE)RQA=L~{U>}<)P$EA+!^5@ZaGRDMi;?-(6WlB>h{$&bRBgF8h zv}o{mxWTYfiu+k_!>ily`k&0cCLYAOPajhj1!2+4G zhMmvyPO7h;PXUrtUKNeY__tpU{{X4=G!6YnXJxnjbR5 zu3{>!r1l}&dawkb1$4if*wNqIy)&Bs&IlX>6uQfYKmnb>N6_DDOZUUR}updbO) zUNDK9b!Sr*%WTF}8hD<#2sE3$WAmUM3Q|&howE5w$39l;V>-{H^qlJPW>Nb808#qa z@f~IJfBnPxHO!@JSFf?lIXSX4$?t;MBM)X>MQRJb9VO7@A!$n zb64f8R1>!1dckA?rHy>G@y1$IYHsdY2JR{E=>3cgs3if5lA) zR+_yzKfgsy{{ZosZd|Eyq^@FSBw;f`i>PEfxsuwyJo2e5+Xg`XqKoi3k63-WZe&X# zSX_eP#=N6ng@+HlD`mYtq4viwvnTs4@dLCdX^OT_?9cr~B#n5X>!E*Gw{~;mYV|+? zYLzv$QZStOgTs;f!&TwE8x^L^1l$s4B_S(7ASK)LCssbAiHZ{c0NObSQS8)Iog3Y` zW)wCzV8Ftsyz3RDS}|Ib6*gqF99Tke02?o>MQ?W6Q6}Fda|ja2Axh9VEdFdduTwv@i-Tmj zCOfp;dS>_L%%g=6;8Vj-KSs`LwEO3~E`*tK+I6Cx#CMGc>OZ7v>TXY1lU=(JD$*KS z$j3)Qs9(VK%8^^`&%vC@c$XwOsRZUwovt@_Ih3la43^MbCmfhK@AQ>}UXBGcF6E+%Wp@i)Y=F-`d>jX@-@XL#Qy7GjxX1#r&p)!paUNcH#f~FkY{QhuRv~#b{ z2$Y~lAHPimPPIQSW0WPvgR#;@pzy30I@rMR_0#JJWKZi~<6k$9E_0gY14UTnF4kyu z>#wXBt7{Nn#+i6m$BFfZp=up<^@F=llue|veY<_VHfu^I6Wk{Z(VL*Nk&^rCqFbNJHJRHT)oLSF)bfco%IyVMlcOF3f%AIP=MXhc;B)J* z-WOOWl$}6@O$3b-aZV+Ujn_sWdq}Ky4*4o%nzy)%8cflvH(hBNp9X|MH@h_8lz;o8 zF{b@(C-Jj$)8r#%Z=oH_IUn_hEXQ827@K{H{{Yra@fl_LK#e+e?R^E$u?GA^aZ}6| z1O-Lou#tjH5mXeY>&FV9=v|yDjs(Yyc`<09X+(AanDiIWyFT4syG$98&b@tNG`m4L zljj9Ww6N9)6Nx+{%k7fm%&^+PEON423P@vKQ2Sxp@(UWa zW+KvO)2hG{+P@fFtR!33Ye-N8LCTQvUF`MzQl_gG&*>H|mevR!5lAzbAi35|N!KG^ ztQ>0X9J9O>WlRZ1%4cnMCVZu)(IrJnALbzc0L(ykYOqkJj$RJ?AGNaQ2K=iTpwNTB zjy|zx+bp4Bh>E{zcVr68$z;o#GFoyxlm>n=>9qQ_B~0dJ!RCuH=-E)T;!@Cna&iPA zysi?Qh*Efph^g-#j=q$IS_Gubl%MIOAeAYS0VT9@YCvbDS5EdDT(gBJeMs|Z1I{L>DmkLSRs-;6d(`^bQ zAgyn}0aBuJNCPr_yhJWtumI+ih#uMP7kXMk9FkO$p+_E6Vdubc8M;;+Rfyy2?jhm&?%AGRXRk=-N=B6uEqCnuo>3{fwqKPVu_3WsiA*^VArfQM zXiqN05-AW(=I>Tbg(RrD+q##jJU;NeXNnLi;`)a{+B@tE^TOuy4DB(`*Y z6nV30O>BMF?kQ6ksW>IRxzm@vydrI|8=Op_nUjVk<`badrhd7_y%CR#w^Xyoc#!=wp+0*n#1kQXzq9zMT{J6mVgpZPY`ul zjwj~EA1~`~=>wn6Bl4zkfn}2UQ)oOQH?_9PFwFeA=MSQ9bTgrtPJTrdQZJlHsijEMzQ@q#XUAWX$^VdKuek?uMkk`D~? z$y>CS^*pas)k-?y+CPO!c4IQrA!=m) zR5`?#&b%F%Rk_BJojip@2JkOj7IpsstGYVn9sF1!DJw<{`Q;ehnfGM(qdLy6{{VXl z0hOEXc~Zc&Qinel4eshdM{d(syBy)(%jtgvOz14)S))RqfNC^^)P3?FUVWXZ9n(>So~ z(zSCZAOq@8AG~9ahb`ip9jM8etTHV>)0pLg6ljTuh7w38fh6S;r{?Q z`ax>AXA1V-(FfT5H>L)L9%;VsnSs~Ny1bMgUFHN*MvuHyVRJQSdrN}N`NaB0l_bylvjvW z!eoo4fBjVXi1E8^AN3RI1m3$qq@hYkbpYTUOe452`SUYFD}xi(ydy4cTrn1ldy zZACHB6oqr`z^|?@g$(*&QLKOan$f zMZF704<}WexP*SEw$c6>jCsu4_#qveXXj1tEU-BZ8^RG=@2fSKGlePW1y!%NyhHEp z;aaU7*5T+r2Sfr`D(G^@6S2Y=rk^ClMN)pN_BV3^S~==a*R|dkEPKHe%KFJwBOJcKr~t z-?g&Q-INNIl`?K!G%`*^*~h)zPI!9y!s~457IFPW3`0Si@Q5bRZ$z3&7)5G)dg-Hn zJST(Jb==u_hYR3KX3CW)I*6x(_1A<>{@zQvWeR_Bh=NMysno1b?GwF;+{F7yWTfG% zlR(kF7}7kpOtPD{$Q7p1Hf>Z%iH5-Ldedn=#2hU6h+y1~v3U=MfhtH-g)CJ=Pbxv% z2e#_F@k*Qtm6}*pB?!3$rpEP%1{v1rD1x%JE5l{)Ipg!9B zMf-8x(`BS37I2US8M^g^`wzAWv`I|Vep2k=vLqULM<;K>%`VcLGKmuo5Wp7iWm=B2 zj0$LpSot#1KS>AIuSiL3v`+m}4~Qf7i5>5?D3pavQSPNBMDhTbgk4+Wk!uR<6iXIU zhHnSX4|? zglLhF@#pi1;*}+xKptd5xi^H89AG1m5IOf+ria21j$xb#&66Y!&WEMyHE-Eey4Km(0(0yXEuzr(bt09qy? zB4HG9`9x{Ofj(L0^`D4!8Cy`O$Kl*XxZj49qYV2%b?9Yy!QD3Tid4xeD&VB+ z$-y25K7C&MV`4=R3dqnouO^7SyKE;cw3%v_2%#oB=`C7$)o4d#*uPnxv--F>vp%Gso=FjyXDZ zDeX~mm#s2RSsJv;AMkdm#hGRJ1LVviMRe{u)igSiMRQTF*X!>V&8Kbd$zSA^l0UH| zk17G~A}e@rKGQKxArn$Ksj~OMyuH6P~kXfcgQKzMRBZ zmj}az*(r?Wsco1ghp6Db269nvEnJGa9Dz1IhhBU22 zMy_v$iPIG71@%&t{^^QJR!cONV{;c%cFT|Zk01`7o(o6C&VeGfVV%A-0P;d0R z_!@dKc-Pm~(%2;*=_3%)lHTQ^zRkZ$QkxB($Nj%}YtJ6X7yLJKyt97UGh{Tl@%ynv>t=o!?&}x}nkC{DC0I!<V#z2IE{wb-#I2FC#9|FoTHk(i?nR3Y~IKMG^(38{W5v{4TnM;v1AV~j#}gJG?fRGz>lV5d81M za%Evez)AvC%1Axr;wmkPG)$nJHj*kfEZ75aB|h!4YGB zg;*~sSfwgj!iHg-K7?i>yR&Yd(RR-5?7ieDw8>=mW+yfyLO)5&9}@%2{wvtAO&Zq998Dqun3!^{}T7pCl$ zD$r%kpcMy2b?XVulVn>7A)94(qVk%>R?9+D{{ZDsdT{&tL-y2fp4TNkoSQ`DOlrEx z!gd!m@7%pdDPe^jj@hk$-LMM*0DmR^U`>k-YQ+hids2@br6 zC*m}2nWLnn(3WYtNB;m3`SKV}vZ7%+Ay`kMfgY+9j@W)SESA~0m1dhMz;Z%Vkx%rM zA9%zc;qw-(Yb2AEIdITK`(@|Kl9~clsrl$RLl#zrw0#@c3*PCs%fXIWRz(GY9$E3z zbg5(6Ww1 zrEnw5ND^fzpUQbsE>N324m3BFd?4f|&h;qKp*|b*D{)L2Cx@Wx);tLsA43415}=us&RUBv{{Ru* z1N9Vv7c{+}vpfF)O!&7=*BErM+%{cAx_CS*E*B`!ama-mFPT8dcEtt4u}(%wE% zl~*B7*iLuz9*juEN-P_le6bW2;!qrZ|87QEcRtjl<86mX`uwM(u8I> z##~%=vChnMM->2Q@e$;zGzdHs9*z+n3X4PrkRz}IHa!Fh^$yj%5uvY-Uet!uyu3M{ zy5$#r)$q9>0oo}`J}f<(=?>FA7HmeCPpRSK90;V>W3gooW!{nrsq^EPRf!$Jx02RK z#NqsEdh&^G(tI0AQ<+l~m3oguPnWz>+iCFoZ?YUx!CFRSP}5K~@TZ(yqPv8db677F znnJZ0&Ra3PB}-Nn(Lk{k8pYLgZ8}yGMrsb(!e*#4O(twV+?!0KvQ?KKk%;mpgXspP zY{WtsXtb<0@T9nf$eR8lAX_N&< z2Af4VkGnm!QzRz}4|U1Ha;|<6Mf^eTr8ljl+6XeH1f?lb4LhQQjZ24m8pX5|1xi>k zw-&Nk*_L=yGxgOv*7w{K-MK@)&*R8#Jcg=OFY)ZfkNZQkBmn4gJY1D zhIS(-;T!R4p^?%v&jX1J+l#JErdUGDvXY?Hs5JI?PjT$n3=oXJQh?F&)6t@1XSooZ zlMh!t)}`e{ia**l%Pe8sLdMw}vfL%zXA$d2Y}=cW7AEkju0F^_v6v>}=+E%k3<7Abg8#&W|YIkWzv zI1YaKM5A~cbuP&zb5>gjU^Obx4rJ4mVte}cnQES?t8%rP2YO@&Alw*d&OOKB-i)=9 z@$>%xl^@mme7#OLP}cYhWI3Dc7iY3fw9mwGE^NcCeY681!_GA3?6+i#GD4IAnm}`+ zd_JdNC}Z7L#tS+G#QR*!@qdWA{{W2t04t{B9C&rb*ZTp}^gBO` zmzlrNdA8nw8j%2(d<`L=@Kvw8EVEho$Ip{H^d7t6s?7q1;j(D2gb_ky znx1_B0BDljv%9C3eo-7=eRY&ClWSy=$ES-$39l<-sOt%2h!oCH1c!q~HauEwtb~X0 zi0!b9+8k%ENJzOb#Sj}9>=v>V)54pqF=$3g$BH~fHe=(}tw+RIRrCs$cDJ)o&FS9jfY(t;4 zM=f@vYECtGKvI%Xs8Uo?LFY<0D3om-?5jk%QqB~KOIpxEY85d-O8IG&N0Vn|Oi*); zK|~C(1b|5KVEz&9G`hSK_g_B~$!m1_gt=C}1y{5?4KS%n0+~`H_M5dyp$D$D{x3r& zXXfmchbIBeeBsR-8iP^+QL9pi#79}mJ=-}L=aDrOotWcq_IS&}w1&l2;B|ouO;q6ED1Ba^+5*nhpv(SO0WSh>y#gqf~nx-Z)4BRn8#053*CG zt!i4-q?!OpEMMvG>lQSfhE(#O%mA$%JNW6!Flse0$L}+xrsGtNo7n>09Lf7Z`axber?^7$Qc1M7g{8OK?B+=+w*MgR;6cw zCYV!@^E!CLdUkqLr(EfPc;-)>Wl@yhw0jI%SYlNak`BK%?$v8>j^Z3q5AJp6NKYeV z(JW)0upf!5j;rD!w(#CiPjbwU`SXltxjrbEceA2@h8__U9A5mEA1DMij84sX+XXT%$^YN0^+YH*BpXT~ntTl_+yO zctq=C_dL1BCQG&@eL4|uCw57dDOf;U<|PEsILHAHJHC-TAwqa#i@Gvk)o#9#b_#=I ze$MV@&ndBY)ch&$q+6RWWeE%b08juLDy_6ttS(>S!6~jPcsGW=F>BmJfFCv#i{j-ZaZVl6wRNtf&J20Nbh4?;U=h)TN}!xpNoq zFH~m9r`$oeAGd;AStj>GlPN}kxpIT&mRvYRxjSGaOqts%T1>#l6&{&-Mts^`-Odux zFr=jG{*^zrR50zbJK47O(roHw2MHvDh@@)zme*Eu9iF40jN$pcH!ywD@-t(VJ(BKU zx7@sFRJAb*1Q2p#Mu-i`vJ$NLyCmVnL-|m9dc(HbZ3M(w=B)|Du!R(Xs+quUW}c@= zuQz|S7KzANoRWeR$#Ix${*?ZFi;?2g5+zKYdygD$j)&MuCUg8n=(M zljW%bOuTLhC5dKk9&ou6l%zS$oav-RGCX8*;@K2Snq~psCygspPZ*l^glnW%TQ{_` zW=&dFoFHYMK%Tm!<#TBcQx@O?-#k-JwX9dR?U9!RTg&jKZUbU3N2!uNk23Dv`^wM;t4h|EV2P5L%yWDBs*aTB6xw2imevs z0ad66k3Trm;?fEjB{#Mz*weFn9ogCyIH;1MwGmv_T`oztE6K+~tnykb`VknKuvgtm!U!6>3IfZZSt+7@e5MarIJ*osHsHrC)f%AzyJV=6p7F~EtvE5jI`kgOX0`ZQ*2YE zKsV(ec$lwud9o8Ms+v_a%nJzs7dUXfr-&dOOA45kUswFOf1N-b2EBgJqjHuBx23fb zB}@LAd-GODbRcoyRA?wku7TrjJsw84ZFTEh9#xDr9MOa(G!ik@mC`%~^%K~pc;cRig;Qz0_ZT^)u)nU9>C z=iZkcVP;`l-vzj}*6NR?;r00B8wtHjj5S*x43 z*Obu7Qe}<0R@O`qH}a?)TI8A^^OKzW(C`q@j5v4ol`e`uwQm( z*;^HDo=0gqaU|u8hkhV8TEn&7xX_XU!7ArhZayAydRnarmN6-kkX`sgRquE@(=b#L z3yRSF_{R@FSa{`7iaL0|4@z9-%QpTFkyc+j6Zm{MWCgzgm0RVhiS^U5(u#2q%4!B? z*XXA^eXB5Ai&+H{ksRS<>50^^^o-Kf zPF%Kh;ibioh(#}w7`I=x6X!@#v?Bt-$N`w)0W9L0lMI{E-qohYq;^sarlu>}8SXk;97wb{w6T9ll3xzQRWOD1S zFvVrMC86+ukaQVVBAHtVzS{3CR#K7@Rf+!qE`)iE!{?l69oVYPcv(oA$en{4Nuepi z52($&_{BYHx|1-3l!ZBLy6cQxJFnfo0F}(63JjWre5v66dvVBHh;GYn@n)(nl+be; z9~e=$n_VLBlvJYSDN?Yesw^KN)_fuBXtw1E3Y8>`U@$L0+&T2|nl_?b#g+D|$BDz8 zMx&z|(*YohKKCZxGm6V5QWWx$P(y$TUq2@01#be>5|pUq3!e%^b9ELF>LVhf<)2lF zUej1{u1vBVDPSHM);$d4w+W{oVI9RdDJYvJp-FMgCqtKk;CRFI^#unUGSqU1dsfJa zNl8ltqJ<)io&b8nJ*l|65*hHUVorWJ=>GtC`OC`G-HmXvGikj-PtCm{F3;~q&oM{iF%7%uyonfx}p4B3iH9lE&tY>TT)-lY$=?+<`)0ov6+7Ysin{@AeHdETmpMi_I zNo>H#X~={3(R-Zu(?y{v7KDk3B&1B1#LHIR#z%B*=sejSeYz`P;f_d`RY94l-^$H zXW?QyM7@da7tOp*{mOE#JiTo82xMfbY@0ERrhN^WsCF=8>Itmu@@QP#6M9EuV(Hdi|Tf_h)0b zOT{k&(x7S>g5zEhj5p`-7ME1X0HD>92Y1P`;ZwqyzO_tKF?G+j(*j6me^7XW)bOl# zXYTINc!aZ8{|i2T{@`*Oa2f=JkqyZ0_@ns;qvUe4#1w3q+3N-be)E zKp^TF>Cco+Zmr;1=1{Oa$JQt$k|UzjM=I7eLxBv{S6%rnUBaZcl^NvSePHdK+DVo< z;d0igXE3x9k{c&%#$kwK8HUepQUExOY9j5}`|t5qde&sR6RN32dFptB9lbpKXgo9e zGsblcGSOyQ%nOG7wf^SY-G9c|1WLDrsVu^9J?#GgQW(F8Y_f~1X}4{6-qL$XMqI!{ zg(QN~{l&1!Ni?qz$DLz? zlh~V!J&p{q%>_92YReONKM&@}s>=#NKbf)}b;25rmXv9LM#|lW`0SUwp)P7uF3{cS zYIZzI38IG}Unc@9{p;=!$|h`)-FGR|iDrTBJ83~k+4)KR3G;`G9iGlVG7;yj6+TLV zsHo6`*WN2#zu9T?){`k}NCAkb1i7wb(C~#xwdPHw(PX+Trlwj44t;&0=IXgDsxA+L@~C-A4hNjGKe<1~!5KX_!dY`lU=!q3e5yVJ?N;$gnY<8(66#N_16eZgi+rTwnn?Bv2e-% z0N#_slU6={%p9ZWkHpoR{{W}Y(u4m1aQXX3&k35xLr%CAAh0035HkS99Rz1*365co zknz~CPWB=_9tjcXgg-+`lLn+m9zBXU$~1I?<(Mwjb|qkf1z>X52g@*R1eut({qWG4 z;ZyA3B4`gmMQa&m=GuAEruIt(D?!4bTo6Wu+txmzn=m4|Mnm|s+^|9Xe2~R7n2|tJ zUiXOi^^AF9IxI=EH=>jh{{YAH64j~licfc&NEDG*JUB(Cb6d3MyuzaBs?7Iw>3qc8mhw{Q%Noc0Z z4#GLdl#>EMfhkmjOsYLBv@~rEk;ODG4zl2@LLQN~4ED(}86jw|Z`tKCmPH5!ykdEA z+1gqF(IeHfh=uQVVhTalkomG#)1fF=b!Y)39a?~o5glCf-$ppYX(MQk?FF0#Klcxm zKh3lT&)y=J<-Zc0=m+x%$HNJsn_*{>ZJs|#l`T}`i9opYtXZp>5Dnj5_@+*u{n%xt z{{XcvNgie<)`{Y=hby*e$Jp%EWeBY{wg*obPinP$MRmQ6w=yjA3J-Z*#GVRQ*g5iw z(&?qB%^Xqg+C}EdvBAyxBA4He-J4AFEhP3*NltW9xStI^T9Y>|u-&SR^?`*Yko5$N z&ylB(frvfPbS`Yka)nhfKtGPB=Nj{5c11E}B3eZf0DdP^>sb14Ueqp~rG|$G4X%D) z@_DTWH>t?=6Z!;6yZLqXg_17U${(a%fFCGZB3Kzm$yz;XBc|d$9dU*Bdx^zNIvG*b zh7m~?$i4S>1c!Kv%@sW1?`f|RP7$SIJcY%8bcpKBI_vKRnUUF(V!>bwSc2SZ zp~;)(*&GYT1BKVYRd6Y&5uxqY!!=~^^Xu;nyKQl%e1*$qIi%_oGWGY$HtF?V1o?bE z86GDt#bfZ#cp)E&OaA~=gpe!wL%9^=h4LkYSvLE|&~!-apVldzh}c_NEh(EV3P=T( zNX%3a+JbWRjXQAe+HBT(0?$JJ9`E%L=lZT(aLV>cHSqF1S4`>oax0W+d`ik>*~H{4 z;{H)9+5L;3HJnnP&YAS_Z&){HDoDh(0A^Hj@vfgJY1$3zNRlwgPiVY@ep*tdJf=-d zl%G3 ztGDQY-dlQVn>s)4KSqYx8y!B-aZDwjm;=k}4%e>JSgb?5ptTBN1QYEQKG*No(KwVy z22vkJ#6#+S#mBU3#ierWeEVPcgEoF5>3j=9@VqQm6uQb(u=Gu8Gp8RItG26t_KQQJ z&W_CnlpW$ee`t(ddp|LFjM7hND(+SJg0(ayo6aoFkKJn3`BD%+xmo`4)`kTXc{yd2 zowik1ZpTfUam`TR^p_K9wnM^)PQBo@Sx$l!>~8q_5S3r2BP~K4?0Z(s47K?Vx-kBm5!6DN7GuHS zc?*1f1QIsHKjdGb_oO@6@6?g`7ykf>Fuv}yauFi4%5ENzXs0-OexzD;?Ja33QWQZA z`G0B{ruO?~un{^_rARK5QJ1Hu4;txWo+CpFQs>$x6}`0!SglF${Ue9<88yT+eSXe8rE_XNE{~?|jIt`|4TH zoqs8D?G2W@@>>>BNAv2VliS@cp9{ZJzOFUe}mR z_2H4);g*MFgoRQ60MtVQYx8_^lgRk&i%~|T-Q|X5?=>qlvCCBwGEp3O^A1KqqG`Wv z<;t+2S>>n+s!l<>iOI+ra1h6T?_SGs*iwmjO2QclO-hxQCv&eS(8VEk+0}VZGbXx< znND2OM2-WLOjBD^k7HgPG_y@(g0{kL{hItzu`9eE^BTE&`o!Y=*tv4#I><>C<&y#F z!|M{6(qvd<)CbW#{&7&>n^bKIINJ`1dL(_}$+9l$t0dDHH?k#u=@9YcgYrA(B5)>#lIJ&AV>MVzsS}2tY35*qt)=hbxNV znP^rEG`2`BjL>kY=gH&f-8-US(=QWH_e;~sA2sSdW$xLCh@$8Oywiz9fCgpBW&@c# z{Nw3&!S>`6ci6<)iD}b@Iggq_9n^BdmT|@?zlXnt1g_OC(K$kDB%DoLDqfx;CChPW z(_8%Bw7UhHvO;HuUUyCms1b${XU+z>9p; z$yDJk&n)6t1U$w5kblxR2Xn!rJ=r!g!61K40cvK%tl!VfcoPQRRwYe1*EMP+lb)uh z>+KD;jhPxPL(SvKy?pViiPo1$!=78R&HShZ_hm%J?f}lfbLIDj(X&B7ryxU8gm^S8 zJ0-$m{Qm%m9KDrS{Y5uje=*6Pt1R8N{^wH%OwwWZQu?d?!fsuf5`hUM;x1hBZ;*sr zQ@go#oE@MpmkDCjEKPG6X%E9@R^R5U&~@qegO#&01w_N8Ncl!tWRvdBlEscatL#Yb zD<%*dMiDBr%ZLSv7fK`QKjrVCYrkPrJqCbgt5U6OD2h4k8pM288Y%x ziYi^P-Ep?|YsRz`q@%l)TZwNtv21n~B_TC9KmeWqFv<{Y{JEt{mXbTY<~8Nxn`IJI zSm!ekm~I)ii*Q9>vKy?KBG#)xnpTAwj+3EUf`_9px_t5f04N^?eCgL1V6|S8>heJFF=cpPFS-@kR#-l4AIDhj zu6g2Hgh%Zc)Zt#p`9ekQO8)@qoof|kctCc{tx~2YS!sm_31_Zx2G|J}grP!tDkWXt z_O@R>o+h&|)qm14DBbqX8N?|_!U4#R2R{e(&L0(Kc}9sA?sg1PY|SzR`SgEyQ@5MW z!VH;3lmjV4F9GGODcgOn7IX<{4tZ!Ii@!FpE>0C`US(A!gO1Qm8c zZV4JSYTR_;7q#PZ{wmGeB97pk@T>}tDjc#P)+$N&(nWBo{0v&(4|`~ZE`5ez`$J*EwnD8#MWDX%bj#lDFNJ*kz?bbW&77@qd&d-e%J-&Qmo9zJ(;E z*oSeLF*&=N`ig255;@oR{i288<>uuHeAHCl1CNhFJ!YlW7xDorFU^va){OyR+PMl~MrHfB`f zxoRORmZb!c2NKSGDg49&@7>i%D-GfApUtC2Iq*k}kL_R+r7W;686XC3PUanMZH2NR3M8H;pI=CSve+ex0+C#)*IK|#H3A8@TftSB zrKRG;38Vg!%}soL;#*|B3X+uy0s$Oq9CguGZMmf>oP+3Fi+K4#((IDh0HMLS51c7U zqMQbOhxm@QSgn1OlQAGIi8?_*5rvcoHD1jME4i|(pi=MlbEP> zF^DZYIW23%NO#VagJ)Srgm}NVUs&0TE51a_5%eEyw<~9~1Kmw|ePcH758+8e5ta_Q z0Nz==BHcg4?V`jJD$uXQNCAc=e^DG6W$}!ty8i&E#;4fb?O83Tc{5O=)s~_H)5xUP zz_T7Py-71WgGbGMtK5yQSnnagb}VxAe7fUK?LN)SLa(mC6S*geYsH`t`~b+|zNOaTGe5Q?INSQ^uSlsE?ly=5cx! zM+whKKJk2fhkb$+9A&mPejZw0A%8EQ!r#w~W{#c5Zk~{@2jtb!tW) zyEau4*V-fpa_7dUUyzBN)ilzr97trN+IVK(-hSlMH7cDUu@sUSh*t`VdB#-Q4WLDn zxo8*_h>q}Vx$~oOi+gd~>YZl@lQ@~SbyB6wzYR#`UzAO^>A4#<=OeU03d9{MPahE) zxRMvPjNxv*<&-3(0jq(S;NlQm`*UVo!5|;%R)VZWOc`w0nUW7=Q&iA#r2*z)n(f^} zWzPIa47VrEPX4ds^Ncf898qc9HiV*ly8fUzXHTq3_mLu)xI_l#v8_{N)tX{Y14RSt z^NUM*GEZZd3h+NKU!-~MQ>>AHA45V$f4}zDRHp4#68`{|{q=_{1*I!MS_mmna7Lmd z+hw~X+JbTZlbFw#@Z%4+UC3q2M6r@U0r`1#&av2CirOx^cFsVWB$WX$kN`YLi!SW8 zFl^$9M(vVqB6uVyEG@GXVdX)kBG|FpS+WpT(6<6&t72ikeWCKo8P|A{IYN6y>OiDT z;A|XbFNt{JMIySq_VfCZ$9Q*+DrPX6daa& z$D_nRV9`L)E;}Af$n+NlS^6Iec=C|~Ot|8a9I84YL2#`TA--bT50y3mA;AlVZLQh# z+GI?Wp!kwQLhNu+wlRF+b5P`yrCv~%SS{2G%rJc*e@ zwcU7OAxSwzA7-yopdCTF{i0c8v;&t}^{fI2weEY^EibOHwLWoL+&8I0`5gUX$FfcY z0}=92x>8&~zz`5ASOG*r2Fn@17JhNmEuaf81epV6v=@oYa!`*MaKy@JL3!O+swjAI zh8dOuD%orM#Ku^7Ds7l+SlN$0-sX8gjD?ajFjx2zrgv%*b3D0oiCW|a$Uu# zQ_(3aSBWeSlOJ6o^Sf^6IX5__w~co(w@&{6rc*5?j%6e2`F-Qs{uIWZuY2-beRw#% zS^oe9uTclXj?9VHiIbEZNdYN*u_^21K7LWAM7E?=9}PEV8yQ*u0GTmG_<#d?RxOgM z$1|?ymVIQ~@^$t$=&>w#lu_cCDGP&?V1-JLIY&qkR3*Hvcv4IcD30w-;Y=gMz?8_< zy3*y$B2kXbSo+6OsyqlGOSBKX2`Ye1lJVqAW`ad9^_~zF5u9^`0ISX#kSr?}aMyS< zS14OCf6OAcA%SLxMGItV)zx7n_0hWWgDs1MQ)YVjM!1P#OH=`CZg5J?deRA0?FZkk zxW^9vyt*X|mg-oj8m@flV{7 z9X%q@yLNWZXAdx?JYAuSX#OJ6D0X&9c-K$~pvyjfPpoh zDM0c1XRcHMP3v`Cw|F0jnkG(Qa0;5|-5NV*%O|KTTaNB5F~$C5t@=MIR7vd?)Cj8{d^CLgXkwGwJ@i_w1caW(S7P8|lJe!&iOsUpucS&% z#-ed3lKGP4`@-85mR=&44m#_cZ-$mJ_?}B9cPDIUvs|i}r%@!F^)X{?e#Ir(L5CAl z${DBMNRTm+%b9)=Cb~9{5DEs3;N!0d(YCloZN&coXZBJ|vg{P6%;-Ec>o}U(t)iTw znX~T^IQu+Iqv^||?+=r<$%lBb14yS4iI&N*NU;6z|o=|aPJipK`1zYEO{Of zb*E{ig$F8fS%aRwP?=&Hq*?bo@=}+~=k)f6IVuqtu-*)jhZaMR2zau~oUEmiJUae( zMt6*6;oP8Sqy)+kO0N09I+CHupox~kGo)6+_Y2V|LH27Ph==@rDKiA3p^UHzdc>wx z>3>joO`}wpai{7OV+0)t;?g19(Nb@i}Lh zY|>`SC;Bsj)W;xGgdTn7^@`_ec9uo1%ZWz}+!aawK}zhCPIwDuMvTX@C3Jsp?IJCB;A*6i!}Q} z=O?v8lZuMfm@zEhcZUy%Yl2Ot&Iu_hL14zc=Jd#VMn|@6Vx_5s#b7)S&y;1JJ<6G) zIViUF`+dKQpK2jW>?Nh8jR^#&7yZr~!yq0jTOPnFY_8r?!d9Qml3Nouc_%|$xl!Sq zT2UkfM~c0x3Xh{ytg8Owr{ed+)<)D;`YW%)5PtO{v@O#mpxgq$sd`G%(DoOJ$!9 zwe^bMWA++xo|GZV+;>6G%kLWVW%gphbW1bsr8bLM0Lqg>lqtf2A=q%lpr-vPB!WGc zP3Z~4#m&TjbLU-CUz0v*Hu)m^5x84Lr5}j36J@d^305Z)R+FkhqCul6Ttg*Q5h}d4 z`pINZV|U64I53%{I@Um9OVqx7<_}PjNU!$ees+s`%a%a=veQHc$-~srsxEb=P~W+$ ziglviB&isduv--pfCwdOcB50%JfqSrRxE35DI|FPT&1}$k8 zOtDfx$etVrDABh^!{wy*a?%qbP(AD{6i1f4NQRA>-aNahbEPU*Z#Xk8ATSKXK9#P% zaocai<>xi~8B*nq9V$_8GCf3aHGNIZ?T=xa4vn_5XXaj>hMKls7Hg))>LCe2SPD9n z)B}o?edFa%#P#!dTdj(><6m?%v?aimEEfPV%;uubOK6n0J}9??eJ*k)TWt&MfhIx{ zkcmLys3Y|(145!mPn+4l346=1+t8~W;8QNrqLj&6sEN7J@(X-{A?uxEgy(0gj8u3V z_7?H&?DD3Ogsl!!z=|Jmcth;lAJQ#-s`z-FW)C0*OUxt;yc^ytOMQ`OEVPuKV8$7v zLSuSt6{lTt`@)6D2@XpRa3swfVJ-VKU^IH9dEyQ3(Urtvn5M@u3dv4*e$eEr8DU6^ z+%{Y@5>yUK8dE3o%chBsZIxk72Bvz+Wvj!~i3Si^)eiP)`38Qv&KE`Q50PWb-W_bW zDFToS6v0mzm03_AToWRhS>Cr_VKoyAfT}67W1e2TVp?PvecGFlO|z2Dr0MU`hE1Hb z_L7q0yq@9l86Pk~jJRD*!HnEB+9r@pBAabGjN&${X%#aZB_IW5KwA;<)%6hfc-w#t z9VCEq65Fo=*>%^XGh1yf#uQAn@q{+HqdvF@l)>I1pEs_IAf9c-p1eB!!BSkpNY#d z^g%gT@U`HTxsLD>0O5J)~Yz(*5Gi*C?;Io3QxhV@P~7K2F_o<|EeUTjJyJ zINJSR<=i;ox@4Dhw&`DhkfjuWlwneiV+kWS&mrK<0E-)So5hfs^AjwkX<7hLO+Zpf zX9BecszxTgwyI}iF3b)TpsbOpb*uAvQom@oeiU)m$bW+mj_Z}Mn&M36wHkHbhXS?QO`38K74 zF)L){jWw(lGi9alIq``f;GPoAuyG#rfZJvGgl5sQvcogy#J7YbwQS73D)0xd3dDkS ziMq-fErGHm=hr?^$ix?wk*ihAgQ|si>*omMSvxfa%9$|>6beF$RG$I}p=yU>)pmu} z%R6{=*YOeS>fL|}yVFq*g`qN;ckGA7{l3bOiKJSR13bnH9iI5luuMPI zmoiGY{$c8u^Q2*!cF?B=hn~I>)C$u-oNP^*S@cSG#bw!mkv9s0(#fmm!@@k8i?iq(#TP$n4JMr(iTlQf+-CFV*yaSyS)FEC@1*{Me^O7K zM!Gh+`tGnOmQ7Cq*IZ&-v-d@ylR}Vq{UcN@3Y_fOyU^X5EpmHnIT(svDo+gKB42l9 zrb>zzFoFwZ<@>x{`;6XVtZM9MuM~-gTJ~xu^AGf$MO!{GWAA5nXqppflmfM*5TI)g zlv5W8(Ux`&MWEUx5~8Gbf!s6kbJwh1yVkI*$Z3C_h7rxd`9w=(t?y_=uFna^#4}|6 znni)Vdr_4wD*~fVCOo#aR#>I#zjI2NnXMNExH%(Q)8yZ1B2sN5^DT~@-@I8f_p5{R zp&%dP3cB{rOw|xl9B0M7BdC({3&m^G?1(Ij4WNe;0X*1xc)_zQHoxyf#o=^p1(I-d z%n3XJ0FJyPw!OozIdfmk9-a%sMLgH!zR0F7mD&=bCJ<76zJEx27P0%ow$bdJqD2Z) zudiB)L|s;;CW=7^!jQeJQS2|X?Yt~wnd|VWec*FFT115;VEv=Ss9XGkC&n7SH z42phWN^PPA@h5Em0MJ@L+6VstsV1JCJbdc5s;T1a+g03`GW_SdPJXjCKytC+LhKJ%R?49SV*`+0_y* z&hP;#p=d+~e3+t`iF36OoR`iPuFV8YL<>YfZ0c$ngP1u+U-*gmX;j53)niY6ok$s- zXn6R)lxjRMCCjIcBRt?fEcxrOJ4$7dDr!XiHud#^Gki)@6o zK$-@h>Tf`EKJ6df-qzwsDm6KH_2(F0$k2J>QbB(R zt0OK1t-y~gv^3n8$7qqt9R_U$Wd_SYk1Y|>rhzO{Ap&F=F$wm9L4l!d7Kj*_Pdd;a zr-4kg2w}W0fE~zwnkAGiysfbvyf0F!2Nli}&$SijlrOMdgyjU7A}bA$pWY-E3y+Va zF0oyKAU=Gde3VuRcOyX^gJ~3&_3S}53u@k~wWU74#SC8RYSJmK^GGJkYnB0|=~Mpz z?FqtLhG#wz?f(D^y3W_Ze&-LWE5<$iJTLzMr%K42Q$P0@vM@y>@Tq-;*=9<5%9?4Y z3jmKJUS5%R0~}7P7adkh{{T}uT6b_%2?>FTVhd1@8L`GT2(LB(n6IyEQ<7W5giAJx z*vavTJoT6siV2%2o~s_4CY~L9;KHtq25i`^px9JIwzq5*Dr}?#6(wJofJ{XX*v zgdV!<$`Q=6q~-zUV(1WMUUBL99mmTcRe3U>5ow@()UMOUFT-9rxNgnqh?%a z2O8w1{Hscl3{cVG^B zP-a1 zx}Uy$-oLykO3;v5jdMBm=@E(hPPv(q^`L|nsS0sZS|2{OhDtOeeUoYTy%-vG!W*oz z(vykmY4wI%Mbt)B;Kw*br8Z@`Ldj&V-hnU>a{EHtEv+a@Kss@VGOc*kIl9Ie{P;0MUaEUy-DyNJn1w@9YrD9dPPlj3Z2vqk zo}->sjX$xQmz52A}u&xdJ*_NP-On?$|QUkX#C|GiH$|W0TyPGYh zP@862PAstXOye2tZq%wuT`9y#WZ(`j778NrPsYXb%PL=yd<9R zIncj{nIAY7*6;e!YzPxr;2~6_o^gBM{{RfrZ!2Y@Y_u6tCN0rQumC#|-F9}aeB$oi zr@%a!Kq+VnG$l&|4~8kz04hg#BmzJn9D}zLt5C)H{{ZpLa;0GsWKNmI zU5*5fZ!o0$KP;YmvL6!GdsLA+Rh)#9umXx);3X#~%!)- zf$JQ5v8$Q<51xsBynt=EvTNV6}qOsSJs zJwYK1oB<$IsFf*nbf$?uUoY=FWW+7jRoVp*yhN3SB#_D^xghb6qaOi;tqZmUwlEP< zsw$>6rYc4m9TX)00OD0Whb;L! zcz8jwCWdYt3?=0Z+LzD61)6GcS>_7lQlLk%FToT;d!doNHAChVweauXUTvO|n8}gp|9{RAMOIQ=CVN zWljcM!9zloc=PayZqMA(KN#qiv5;ACfUSGV zWC8&Is5=KCMfD)rrmZ<8PC!50HTmVAIAy-JCQRj`V$uxBWzf8eNG|C*5I{86x(Km% zfp!`8bWRzt#My!~KBLgbBRn?EO?nSZ%r=eiS=Th#yEUYeq||p#6ISGO95}&SNxaEY zfh$-f424f$I3s*pD2Y~cJqZb!DI}olQUTMSk2(m)*6Z3~Q6#9BB)NR}dTAX@KGLyL zbZoneZjn79XsFA;(cZA%w42A3B|#Gu#aRZTEV#A%cj)2b4A|f>{gShVxK>WrKwv0;9>be;=?QmpvBu0WxG%1`bAXhKM3-u<64iw>7l72I%L2`a zGlvxb@NvcvUA9EaOFOwG__?QA!CPg!V{{S%oux}1byG+Y8@%=U9mQ)|QpnIw{$@8J7wf(v) z05${$ve){@!GQj_6}56vXkj5{Vum7L9PHJUqE!M!b;2$-d! zsef+{P}#EkQ#mY@5;0H>I{L+za>|!$vy%S+)d7@;s5%3a2LtAMXsq{9 zwuaFqX<2!)$a7BeNTJS#gf}PF6>Ln4N+v6{T8ar#ORFbSf#J)!iideu#i27L_9Z|ZK}9vK8Ql2g5*v>Dn5lj5%+)_$4op{>O_F;6wLnV0ZK3ib z?e>Vxy4VK2ap~f*wO{s;Xj)6)#!6Ud!K>xU55F%332PvnOi1za=gZ{{NCzTKZM*~K z`cTAf{+o+O15J4m`$SV_ujz~b05d;B;Q`vK)?zT=seH!us?F@7Ff?%3ZKP^9>;xtAgw-eEB8Tjgc@VjUB?m|uz zF(J!&#dWp!l93>kyOyZa`HFEMsvx9=S%h z-0#Niir!6@^OM+3$WClh7ojA8^35tHcU-VqqL}!dxTMOp&rFpCA@LzeAc7Q}KnA59 zgm?59>NyvzS>*cPd^uNm%D(>q_$uoajLcIZClZ{f9I8%KuMy)HX25P*eDH%*C4i{< z`tb3I7V2)BB#BaH+5$&uDH9U6aK#|EtqZ|>)%dGKgeev@gNBcmd@_F!+~dnUGG0fp zj$2ET(zv!R!(mQ2%0?l?)cFkjqO;x(^kuDWXHFE>ymZPl-IICKEh;ORqlwGnIcq@l z4s_SV!fWGf0tjOKe{Z}CgqM(8(PK`(lu0gK^LWx<4F3QSm|DeaQ_4|kQ&dNBM=5G^ z`BnN(NjcDl#`X=VNdUbMKcqKVw&(h#4M1o?^Yw%_(G-#N`uyE$1*%=46wTSS2DwBh z;tpU;xnql;Pv#K(C~rc2vPWY%*Z6V*CKBo>DWX*MB`j)5BxjS9{{Rzm6sE&mIgUp^ zr%fD8)jdM5FX?~oIY`cXXs}QZ1&Z*YtT*gMrRI`oqJxD%Q#6tfIs@em`%AXTk`sv~ zK}soVaOb1)hs~O{rAP`u32^PsHz1se{e+RJ&LlQHs+^C@FTfufr)3xjpmJ509<30dG+kGw#(+jKK*>+UEmJ~fDS$F?CrEgVY_SdUDh z`eyW2D7l!2J|D*zasjfl+hif^i}5k_ddsy|Yd|TO0B}8^P<7=RVCYP_FfmLA3_Wc&%uTaQRH>;cT1f;RTKGdd z#^}BTGzFkIplt=gf^;r90|q@8WgntRsW3SSq#Px{h>lu1Ru_r|9YP@Rh%yQ0B*JO3 zVZlNOoS1|g@W53!r-PK3B5E~&lx#G{ji%Y;PePEe;DS1M!<*5#*LK>13P_eoC{t;u zrcC_l#y8poR{QMTS}oRfppN)SC|00~hJSeHJn?IWk8;7i}``T0)CUmlu6_p_i8i2-O z2h0ZH*|0p`TzR%mG0jm?$+0P3yl!z>pmQSZ#ip9c@-L1>w6{{Y10p2;NH?zt(H zmTXMQcB%1wNq;&=UmhhB%FiQW%ZG6nb>AlOC!{vahK zJ)M?Vl#rYtBqpSOqDL&6t}1Iv7XI7oO`>9#GGQdU)S7T|@We~!8c~u=cD^>wY}Mja z!fV&k7Fp&A$#7VV!)x}2DHl;uWTcb8RK$~FwnA*l$&`T0QkjlJjv>ol5x)jX;r22~ z4A%6NRU)DZk$bIwnEqa}i(hKDIcf_COtQBWC~^rt0lZn_U9les7Rk(1oCJYD9p9H8 zo-Zs_@Kj9iXujqouqCo+mF&jD+U;ynEk*UhK;gnSj_!T~C8r9eAgIyGg&)taSkU(d z;%t^gcghe4fQ(FfFb?Xz3};Lsc9KZX02I?dcX#q=*INnj;U>(Nz=>%CI%(qt?^ojD z@4F9SW|nOez!_3l3ZNxKzV&a5N=ofh468X<0!)%qEToV^6rf6$2n<8v zA>ASw4&-ImyxWF8#ccwXJDLKw8RzMo9!)6x zPpZW%oE?2L;GSBn=|7o>=ljCzwn{(%3TPq?xA#Q($x38?Y(dMAe25;SBJrj754dTw zWy@Uf-OxzQqmGfhiR?D&jOl@CmEL^Yuaszwi}-Mqg?7_Iah574R>}0roO#5;@V;z! zWVEEVGen^*RDQ#miXVJC)3(~BtrAM5f+&<0IZ?>Ztm8_R3uXCv?S+cOoG1xWhKK{) z~u2BGIsKtDQEg&nucq{cBRaiD3MgKy3S!v8*wao-_b_ht4DWu)n5SEQy%i z;7Up2Mx&DuW4omnf^9Ru6N|Dqusb$%Z!UTcG|c8XB2jm4R>drkB&36z)%xo=li2QA zawYb1k`R&kQZgJ`A=}-(Z77mWnfppM9P6HRpyL48YuHh$l=JndEVYjAQL)qA3AaT{{`EwvQxQV{h zOqiJqCv;~n0gnmA{=YSD)*TU3ie{M!*{ zmSo6awFV?;;=ewt5UZ+r4&})%<^1!ArS)&@!j=gt=3WJJZ332nO%Dj!uGYOwud-c{ zpB6oWi{|R>78XuS-my8|74VrhiKRpWscB+)67B2f6;O+S}k9x*zp`W z#td@W>|U=2kBQ@cXm{SVyv?+#Xf6oCJ!5VB5qv`<@Mh|_EtMo6!mVbDlA=#!|>%o1i= zCt(Ol9pxy{uny`Z3O|Koe(rl=rCirMu(L}&pAytS1dx)olT%eG&SpM(d>-sFt@o{- zWYsESEXTJYMMOCKm453ig#a7!>dhMu#a==o_<@rF>+RkbXiFWubmE$${MU& zZ7Fk1koeq>G53iT@p__EvbAKK`9!`-8aH)yO_q!^YO3n~{{YM<+ncJ?sj|$9BvEx| zsHda(!{*K3sGKn(p}H`#@Y+dIlmx{Dlb1eT@Wmp@71J?kNMce)1Fw`l?z?^0u$eN= zXbG8R?+I#9B4S1=0IY~1{{S$jIA^h11`I2YmLwX%YQ!~(^t z;86NQ)i4Stc{_D&MWRpPhxF7BX+uI38jcym^dn4es`%}tE=DHbBM!QcVFBZye8FG4yACJ2VtKM6sYyBB4NsaCw7ID4_2- zDZ}1s@r+tI)x^0gFx11^ta$G zcImPb4`n50T2-QoM|ne&k_RwOq4k%q% zg)&VaCnd)dSI!3{(nDhsO|*CCV<~eP%0srlcwf6+p!`sLI9RrXIc^$t;(5A~w6cI8 z(W%0&@io}(h)lK!Mi#3MQIhO7sA$^FxtC*7610~B0+Qs1r(GEJ*&4--AY^LKg~^JUa!FdhGN#&i zWG5^SP#?lFKKE?>rLxkdU?$B-QO~-y0({v0qh8Z(@;U;#reTj>v>UfIy#G!%W#q#C# zi)QNDsZ$imP$fB!4m}8f>?X|=5WJbd9xo3&Kd^#Q%7OgEk~j}W^p13$n<813``TI( z>o`VEbknM532yu9TFa!ql&|si@`i1uxCHqIRwA50G0lodA;zKMvu183S^J>7x%m!! zH1>tiWTN)IrKPbD37~$uwI|Wx!M;@@zc+410eoQ`b8MNKRO)GN5<-_F)Z@W2ErKDz3N2`x& zbR$e+DX@ui(CizT5!*$rJ`DW`j9gcG<-RBLc2`cpkNnA_JIL8u z*)~Z>PFlo*>DgJRd?B?oiw^Xj6D;;%Vy2nJV|(p9;IawAGGzH`&j-6ljc}V5_p(QK zY?RQfL2Ppzez5&FW~VRnOi}TOS-cl74k?r@Xlv~j#=>m^Cxw7XW(-D$_Z;J1n_GfX z*%%~odanFf9!Jen{YFG=^x}|?+GYShFKDbFf3%hWXu=JEgE^TM<(aWvfjJC z6s@XDqFRn_#Ao51d_5@*x1YnMreFDzmONaK2ZwFWd~e$<1SWs}qFzeG8AF9YY7B-K z=cH;4ocQLsErSK58#yATVhKx@8KV#%_msZ~#=6YB@x$zNd>@N3J*RaFN&L!BU2rhX zZr$v}0;Da-txSC%M!?-x;f~KfN`mSztp`3}@aOV~&eQxGr9tJZ(7)~L0h6lXnre7q z^IQiEO*^(P{{Z3Xvr`jyOq(^Gb5_NOI8qXj@BW~wjyyy{{w4R}Dn+?=Rf2GYlA%%F z1;OxYjOsXu)Eki4&%s^dNzE<|8m>-J^S^(pT-(mpxsug~v}BSC6pV=R1-wIP9v`Qy z8TIqtw!!YMel`0eY@3X1dcH23J+e|~Nm5pv%4q2zv7rtN=a!HQlFU#7MF&*n6)ek{ za=)o(n53OTNdWkakDNPf#^0|V3H{X^jac}3Ry{VmqR#^HF+I@rUPfqYRGk(@t7p)q z6_D!j%ge_|d9vikhLrl!Dx2$WCZ=!+Khy5|J1gteVp%HtB^iey#(H>1opGaTm5!HY z$jg+XsbQSC)aLOZx83QQj06@r>DOGMsM)Q%nr0NLg1*OJ7?xjqLZK;3MKIUI2wO$A zNv>;|GR71R?+pHW_|^w_?BuhWL44n@ogzE38&0{1Nl|03ygl3Yh#{RSJ{5~d1|YZH zs6@4d3@=)7W^v9V9|#{9B1Nz8SBl4BFUYLx!d$Ctg<7nsNLWc&DP~Y1^BICNJmckM>vk$y ziWCS^OAvU*?)WqKw4AvD?X@o$l$nvnr@1(s zWN5td(-nNdjWJ*}Wm031If;N2L(ryx$788natssnTP`@M(axcd z#jYAaWXD2aq=*_!LI7G}zH$sWsKF{kQ!NQ)i1gV`ApXh*CBkH^bXk{vDYrakpjxCS z`m(_)12rYIYPio>qxJ`FF$AWM<4`{S5%d!ByMlp96d{kF-Z0n1F6)(d+CLR29?5ER z!6#nG;Dv8bwFEB-yweU?6Ys5l31=>_Y!mFO_eKd(J zmc|kwsE4e!5P{AV3Gj+_x6pj!vgXn*iWiBHXqX|iPA>{&&gzy9rjb5J1G?|I15#cHnM!#< z7iXoXST4|NAi}osgf@#of=H_aI%~gPUNAzYFzc^K^ySmW5|gh8VizKq_>Yw6kZQ$i zuP~8Me|XP!o3#o(;Pmv3JH8E^nP`_RN*IDwFp&8b1c6O*jOTdRRV_sd1Sl3G%j+LP z>FOCYu}_~>^*rWxDCBK$UfY7+5Hh7$2>$>sWW}NK!nRbwuBdQ1n7S`p@e-w}W~_3j zGBfauskxic5^ZUiw3XpR!jy`YFSA|&O8#snk3o@%-t)HUN|KyNT$N45fhrjU;j7W= zt`yft^PN|vZI=8ihuwM|{5@YTOiLD5b=ZRMFL)E}YbgZbau^@BO_xR`JA>S0>s-}~ zJh3rpNGq7H^5x=vf4H?7{GzYAq<3bllZHwR$)sk)umIG$%K*XnLY>_FOI|h!rB)f8 zo;JlSrx;jHK|_^m&NJe{wNRO6+|6IL{{RUV>8WL@Me}EGAmxXJVy3-518pS!zXs3e zuN@-r-FL_JzG6Zx7CBR9l&L{7lu%9(Nuq+{(7XORC1J%n?6jfB>Fn0zW(RpS@(}4q zX%wu+^Zo>FMu`MAt@{tJhX)&*{{V+&p-qiS@)`RE^o@w0kBb2R0QL)RPySTD{{ZWs zlr`SJ{6?(k1fuM<9vJ&10(gF6a;{otVQ7sNe!=_$Do!dnEX07|a^ubZw6(TN;DSV@ zc9=k0l2xfEI>k}7pZrWM#l@QMl7Yr#)hP1rr6_+TRr3v6muNmV@9E%^Ju-%fkt8QN zF;cOrnlVY@?F>$V+Hb2C(263S;SD8vyY1*nROH4Q-y z;69*MK3K1AZxtO<1W0fVc^!NdmkJyG5^VZL6OydQh|~T2h37l`@hP zR6>Thii?l5J055$B|gIC6JKvv{{V=sulkbgc2r1W$z0-8tl0Nb$rPyXs;n9+&5^t< z_T@;n+O6{@Oqgbl%|(y^B_JUQWO1lV=;t#cy7orRep#_42FrLPccrLdMC?DQB-0TL zbZXGo4LNMLTQ0Tsa}Y?D_yXJnsFHQ(T4$Is)70q}OndbI08}b6uH!w!cdqfYS|&}L znSG3>Nmu11D+x$_0l6E!JHgF9hTR0u3upmZS3xVOx;AH5P*w2RgzK`pb6r8$06mEdB?sorasdc zuA8E4=LkZUKz0H1@cP4=c0$r9WK8lw>y$cf+j#4+OkBhzDl0}7I#e2Yj$@IF5nmQl zs5=B4xz)S}j!+ZSW{}pH{F$Hln6}gLSuK0Y*tnU{D~vhz+r%}`;%z^8}Lg(A<~7U$3wRsq28T}bBvJhI8mgNzdFU3-q) z{{U)4*`q3eetBmWCigerChnGG+3>1!X;ChjskPt*PmzWVx!z!~*^IeVoV1XW{jM7k z@Zp|bS(<7UFcP&DllhdQyUfl5#2 z;Zx^GZXa#Xxo}q-Pqz~-3tGu_D7iczO`UOOAJiLzOdFN3K>aV-9n5czU#6sfqdEh@v9 zaO21Kg7%_v5h+Guf>M#*CV{?B;~AHBI}>WO&YHOkT&psaL742NCEbI)DV}3ZW0xr! zk)ZaMYGq2Q)}9(iEVqJHFB(W7hYi9j9j)A6B$W25Qi*jbY9+@k!0-SFFg=RRCdz_U zF=QbHvn7EggD}@FIzVm;i9OwaOH|N|LlG=fuarx#M5G5S2NOuG?rqJ?6XjY8#v~{# zx9TlW<4WZd{k*tUI!fh(gsBQk{{X0pd-y>jn8SNsa?>eO0ZtL9H1+a~<+R&ml`NbO z!0LIJl#K?)0dEnn)}&_(r~FsPznTsN9Nt9Hm-IkRUIUM?=a;EtlHrTcnT4x!-@sdt-a$NQML(TsH za|yD_6yPW^V_v%F5R0#BryD}0C=ifH3L`yo`Fg~wYcGY%lBJ|NfCaQXzkK0#T?=+k zWz!)cD9ee2yH~J@w5bYGib@@uUXP3wu^U9Gs2G!kjQ;>`FkaK`zhN?3FqH-SRif;a zSeHeV;co`vk%Ze9y8$NByFgJTY9)^oUK!~ME^A4^6_p+lY(DnWHqfaB1Q}{jeGU~d zI(5by7A=-G@wQOftm~2sV*oz}P*;YU!(Qz+9N49HSg`^1<&-SjO}I^(N~aL%OE~dR z6!jelD`0nwi)6mhAfy)zs%jz1R1FWiC%p;wD`HiPw6RQdT4bFc^3IpSVl^2p4w4@M zOxJx|yGoPzn>#5BPBavnC=dwpF`PHCyyYor^YM$%;k$VWpDf+;)&5{o z?4@7bhZ5xv6opJnWXd0?L*nm-S|t0UyjN?wLT0g@W>m{MxuFUsLCgM$LQgaroZ~m| zduJvo6J(>hv-wX7gPxf;(lmbWWg8{pyE%T!*pimePL>q39O;Q2qH->!Csv40#68lR zIWv_+kIeL=v~eX53o~9%_Zwz)*qxu9Dp*9qR6%!sElAkk3%dZ6OI@vFys*HQqDMbd zp0S>G0SUIvmWeK)wE@Ys^c_7TVDB$zrCnEHB!mQ{Aw1No005~Z$6hXlv}SGf?*(%& zC6Gd-AqGi70gAK6Gi)Z6%nl4L5F(+M8NZ1*1?v#05hS z-}j3vYqmjlHIPHfQFOMR9I0M!lbDTPm%O1QuMqC$$GxtcLv-+Xr+fo7MRC3@rkocj zqavadGb{kYa~Tjp{$a;rq^faB*6f`$if-}S$%fEs>0KD)A0jB@hOvC?mFk2^1;KD1 z#iQ4B{AxbjjMg8wm;MBRk_|vUe{YmQ?<;BS$^A^@?d=ENSHfl~M3J6By7@z8rC5Us zzMeW|^zw?-=HD(m114=P&npefVJcuvmR!XFKov1Ps@j9~DCi^S4gHADn!OgaDY#-J z{bT7)(5PAL7)Da8xLYsFDZZRMqvzeW%#ul08g=xHSr~yX#r~tm>0Y@(w~pK?6Z}?CH|8Nl*)5%$=|~--$dwl$Ka;d`rp6>rZpoygxxa)oY?km$*@{6=I9+Q(Nx0Bh4hI!Xy2GM^Neo^)CfJ(Xvs>lPXM2f?8AqjpRc|;>^ z)i4sEP8Rw2XC0X2(&>1Dx9Vkkq&m;q2@#^InRjE!00G~z=rE-fx z?A^7VTLa%%Y=ej9W02vBVL;(+>w`~M=Ppe@pQQ$yX|%JC)>!f33Eb-45Wt~>ky-RN=v(X zMYX>hf#nHEQ zO2g95up63KbJvV~sQd7^vgQxEeEp7QY+Ji< z&z#nsp;ereOhH&p0-CL!dY+yhc5ityRvGY|tJNaJ-j?eW3Xw4^p!#Rb9-1=M{dFot z#U+R!=f{B=4z!J3SEoTmYA|yL`U8VA_hsC_BwFRUAdeav^zia8G?9dm8;(XZ<-==I zSdvTg_lb47+)S_mFXJ9L#OSFP9m{V>)K_1;N#t9F0XkMGO^>#a1}7)1-{}rl<>NH1 z4T}O_786ov-a5T9^@~v4xT@^ zDEYLxY$I}f8SS5GW-?WpT|Ie2E`eqgy{!0FplHO3io#MN%J_%bb7#D52xbLpSZs)2 zev}k-9H{h))*luFKuM25vd1XwI0N)bl?Vdn);LT6M;#poD@v&xQeZNH{oun4vVuT? z2rwcFiDU*u7Xs}g%@$e#gQFfwngo#mQXps~aYiCLz}Vzkq)d}BE);=FRbPO}j0Ml%R0uESfrhV?sP4x>6H*AF;o%mK#9rt{wn0)71nF+1 zDTDJKVxBRR_6unhEozj$=|N%*2tK|Ml1R{*qNT4|XAd_B1z;a42!`BOhBVZ_KDsdb zWLX3er(XP^6CrWf>_I62aQnd)yGuME+3VvP7@CaWy`!E&VA~+eYQB`^vW2&O?hOuN zBX-D7XP(bky9JZmHLkGWCOkoGSLT|Yd!`qZhc5`}`OF$i*)K^172;;*}o+T1330LJHj!~9xeaB9hR0V63`!gN` z`Gyd03o-6YSR4sIBlP>iGkzIUTeR5}m-pxtb=B{tjgvipPP`#J)%a!O8EWm{o#82j z#D$L!T4}FeScS>oZH-kE7;_)Q9XES6H8=H> z=k|rICRN@q>PDZ~EtIUDyZXo_}c6o9^1NI_om#%a<(K(nO{s64tqhBMz%*+S{ODSe@hr*Bvqd9i~yJ+z?zUNEA z0-wr;D(mXYAgYQ`T2iJUpDg$q{{S(`Qa4cyle=WDVFF@^OtmbYVL>cBA6EO?I~BXx zDM&07KowB^U$&XFFl@EJgqOspDgNTc^9=3#@rkwEoFh7Mi76MfS8cdug#m>pCZq~w z%PccWK_q`@`+VcJYeSIv!jHxTkX{jdk;Llkf>8o~*hFKbL*P$H>+Y-uAxGhd-2Z>ad!1p+zmDXT(QKORAm;TwflBdE>Jzou8j# zm}W^%G>3GkP=|dPn6nrA#2WqD)v8+L6eTHLqwyuEpu8(fF~~H-LO4d&O~`_RR0gN( z8S`m&Ce3U~n`Tm9GMz{6IC@8`Sg`Bix*SZyCh@WZy3K{N+Kk@bc$0x3rPyL~P#=J- zPLa6V0m|H$b4*F=-!B-cFRhwfqQxW}pCICm{KFtYaKPtG{l94QI}US~+mr3?-&mP$zjHQwHL6_ccBIW(3xonIP8pVPczeccM$g(Z?B)%BDfz{p z@Y{1t7lfrL3jii-k_aE=sk7$XW05R-Q}&IjMB`&FMNhnK$VjQQtUm$T5U20~+rl;l z(Pc%B&gHwQ@N(IC^wD1YK5od%{7tT480{9B>Q5fev{n@obx;_&0tR9pcaeMci|mqn zsm+dO_JWeyi?W2@2Jz;0ouE!EX0$8?0B&9l{6^XARMxB*Eo|**;Fco0(>9o z4_0lT3+uMpoluEQMAt4J2Q2;sb1LAAXSkHSQb4>|GP$eiyQD994 zbcg#k>LdxBu$BbF`j|hD7zWsEn3#htVbGvK96_PV8j!m)eg6QpNxUrB13qJku0K0W=%qIDS}anKq*Hp zA2x{I_;w{SW=jl*?A+y0TMr!Av~_VkvEdNOdp$mUxrtg3r%A-%WnBEC$hGZs>sdl) z3Wt~|&J|2tDn}2LT05?~N8%YtMg<|N&6;}DL?djk87i48vLLAv%2&+eQLbW-)}2gF z!bl9AthCFPY|@A#VpdqC$fKM-Em~5#8rE0F>#f0SDwbUivT|UWlgWc|iIkf})y+a= zKWGy%z)4r>Acg>t2-JR8eIi@5SH13)%u>@W)`fxqG)j`ixwc;;SY+csN+mUKzvoTB ziR36tOQwwYwLE-b$7eRbuu_(krC-xpFs<;il0(w2l0t_*5KYmu6YUcUC81L$5Ka{4 zLUUkv2)=eZaw(m4CQRErwAziYw){Z=OcK*Aa{C1qd?b{viV4IrC82a7nJ(LI#ny`)sj{@8dQ9jwfhU-nH(4=8hlmMa@p+zxjc;`o? zOEz2KhSOxdZo*QjvVRw4nKEJrc3vAoNeVAV!V8?nPDBernXo=0Edt4PTEb2ei#pJg zM+A<|Cba!Q^QKYrDHpoH385K>%(VdUkD{L$k{2@Ww98A9LP-OHR+S$b46^i$f4e=$ zS}hWkZ~=u_T3{g50yD3e4bF`UWJP6Qw&-&C9v*QrnSKelJE;ZI3k_&IA+v5a9%Yhx zlC&r#6A%jbqh{Lv(24dmMV2JIFWzd@ zJ9xA{*d&6N&*cz3sM%SQ)hwYzVa}vGw*td2qm66}lEhMsBryTMc;MvWnoyQv5Kckr z?9Tmhg?5=ER$=Mk5PP#^EeW+QYKiRBO9yb;Q%aXCJ!ulXueqkGN|P>&AOL*Bk>uhM zShmGyO+r8%fa|8=39Z*c2^fGRWcq!1!hPQC^yEuvwN|H5eq5Os(K%TKj_DraenvkF!c z)MxJV>&gi-nl6o?x=}t}1=S=}KyE9Q7H|@P0&;IEACU5hKHXolks)f8S%6S^hokW5 z!CSGvr_Gd=&T^`_IR+(%kAynFq33M2I#r=y%uXdBcTb6k7V#%evMR|w&Z2`Ra%Q1G zp6tnGDnqtuEI}HikaLIK<857{RM|Wv|DVpJI>Ak?Gq}}fk#BdC@Dxe)?C!73KjgO9QW(8^6l0oeyMY% z0vd&u0+M_~k2s+I2lmNRtTxLEoc+A7PKOQ}a_b`&ZpzBXEKDOX?Z|*cLFMm} zCfPE{*_W2ADpr+Cg22--D%E}vsVfaSCR;~uGi9L@s?-GMU#^e$jLE(`GGtCDNv06s zacqcYe4_B)ZqcSxtXh}C9=d#;<0tJ6=Bd*Pi6@_3H@mRn=Ect^ksY043auZED*ph8 zXC)n)R7zR7w+@~SQgZ9>4mTafW~sE)@*jRp9krFkQJDl?TRk|bGjSGDK_HSk;_+qd zeb{DCv&(9(bfoh=@JOd8%ibgQo9bF7nKcRw8<7q?DPDwH`-HkXOTx|>!b+B`vPuaQ z*1SKI##X{;&|CYrc6J%z^F{!F+(Le_fwr<*)PaN-#5`KBoNX_P+e=xHhy3$W4=|8V z&7&jV%D@7&eIl~3QW`EaEhr8KuKqOhXm7kF%rk*WVBY=_B)X@ChZzn~O}^NKsg7rr zV;FQlSf-o-{c8-{Gdh24prWiHN*px|-dz0nzu4^E(0OU|@q;Wkk`!=)3W2B^QYgC} zw!YOgNl};ihb{zV;|v=sc~2nrg+aLGR_i#KS|_C`b9{Tmd zDlu)OyMZZD1KW${VhS*t7jyFZ`9yYY@VS5_Ql0J($FH<5zbz)vvT{hv!;g$fE*+Gh zBoG@qROQ!C?(|(d9)}m^HD33Wf4?)AlPk#f#ERK&EFsRBL&fE1RJlcDu%Oa}mf;I; z+r%JLQ6{`;;SM`Vep%*ORFte^Py`KVQhhVcjWXlU)pa@N;c*{A(EWTl!S_DZDn+Feki}A$h&@LGt7K~uD^1}paho`hl{=*a zB{-{S8^`3)%;JVo2a$7xnm^O3LaWYt%`+4qv^-d?NNgoFCW`ySp3$+=jhPb@G3^SP zq%KQ`38!Z(VgZauj_%uKEf$HrnhKJf)W<{1r;Ry2^fE%PrL` z33Ar35@w+)nV?QE6r$vJKrUR04K%%^Y^^PKQR9?y@3I#ROM>s`7IxTdRJjYZAv033 zESv-oag8!?2@OX+JR&zNwBb<6S&y_bJ?zguQ%0Y(-TwfJy5%fYK?N#2*b(L(kM9{u z*Rxenc4zi6tUewk_LdpaRIEirtu+pkoYL9rOsU19GkETqGpw^FOHxGXQ)VSn%RU#x zmFRGksV;ONv+3B>E!dQg9nu%&^W@XNTVLPE%rfpLEc!<+n;>xF#2kK-53%}1ue7@i zEOYGUWW=sq#7diuC4dTIQbE-jE5nXfuJE@TXIkvakvSq<@RC*tDNa5)mJV~vCek>k zvPM$6_GqXY)KU5KixYF(c&obBiTFE20-n)15}ZNGPZ6gawTlOEJG+xU^Ie8?#HSJ` zrde@?Q)PF8YSmg2vJOrgGMF=N_Y#Rpv>9`dJ0MmNqg97u5nSr+R}OTAPa2Y@H99X3 zh(C*qEwaF5NGejMqy+|SBQh#86drEoFno*dWTm)K<_=l=d1)GZa66W>-jXdTRMet$ zkW`T15|#`=;NYZ^@l|g#a-W1sX7++&N|crvf{+Or)K@X>oMpkLjul8ZA(qf3+7chS zzn@;Q-H_f5vg)0VOvMD2aQ($M5tdFLHt-E?&)l_|W!ECxE_!h&VJS{&m>&{z(1H%W zo$8cY(obPDg;0R6q5H<9gfmoKd-0KaS>0d>qb?ysLzNF5U($=-=E9kYGY~2`4i89y z+!Iw}o|5FsQn0ALPIFc)pS=4*7G4p$Z1%j7#2OEcA%Yv!Q-Zw$xn6MKt!fTz9~wwWGq)x7=Ps>_)K35Hva zEbU5HM)rpjvNBUplMlTD*6N{jYkN){ttG*O0^khC9$rA zP@h8-hS4pisA=?v{oh{y0Ee{5nhOkJ&j4vyrcr%-bnKw*B-((Y(}6^4p^-jR9ET{$ zgvZcth#R3c+oY{ERIr(;{{XaifX^^V9u2H~{+S_(2S_+FG!h@2atsPF$bR4`{Spx! z5OxR>WydKqYXXQ7fh8~kxH~B6Fa-$g0iqD>bqatfQNXBy2e^WYW75oaV2D^sgmEZ= z1jlhS3q_#~woq#8MvPVQS-UccpNo)|uk}EDzqkQR*~zbjY!n?s-zCTrn5D^Z)jmkRKk?&oP1 zppaA!r&g}Ay&}R@y|_aqvh%Go;~kt`XIYPhk^Oo7%+k|ien_va8;FqE{TaTT zp`}}hmUZ>&zR^9sc7%bO$1GQ?v%jotUx>A9yHDs3 z#f?03rm?H+hy;h?{e7Z=-o1q~?dtq0u&p#$CDK$tRYqFZ%bazzy%SlievaLUH?GtV2OPX*ha?-Z}uz~;?k^cZ`E%p=?d5#TSP5FxrpOf%29z0kLK_UyOL`9-V40H$B!4gq9L6G%)y0-F zNuv~_MW4FcfX`IfU7?g#j_C!8$Wm2tqWY2BEUg3To~Eh!)SbJNEv#%SGL z>poDOIz)jrX-Y;SX)Gy4)Y-WJ&|!9G&NRi14I)ihq{{Q|4|5(%Qj7S89bRCEku5^fA9SvSV4M@e-HMBp&Z%}g z63Sb(Hi8|y;RaBCGSlz|bGvtDjGP0gNdSh>m*Yn3oEPP~Zl!L<)L*0EYRQs3 zGX1|d#b>k1DN2$`Q$P#)G*q^2_m|G0HJdg6znadK3ds3b;E%-*;OC^bG zOws*$tbn#80GgE3iTMvW?(e=H)m6?)jvOUG3MI~Docx>YUeIiUEVks!O1r3OPZrbY zJl*9;Z_GR*KW^JeX1IWJ6x55@U`)pW3P@9)2C*2u_oE_T>%>EfafU|*Opc)z*`3WU z<jYG=z;^D@s-1iPO?XYUruky)u8Bt%DQcgbQ%tmF#u5rw4P zHp$c~n0;Ekc|)C(bCZ=-C0;f9=l0e+SpNVICH`d6F}+LjOuzQ8em8p4fXs1-J8%`I zd_S0@_mRAbbII)2F+n&&F({LS41<~gUAcQWU7L!SwFIy{zmW-chj$X}@7e}p6RTn& zz@;3Dv~=FtZM+%gXrZn!CW8heb(zF_1DWF!XFQXOgCh~=vYHa|H z*&$#O91yfA3It?bDm>kef*kKn=}ojOsY`rGW}`Mt+{YiJMisE~O+vunevpoC!Au{O zM2y29Zas2}pGu6q$tU$3wat6cW#{mtVo&(2wKYVk-XD>_c+qoE9c}*rQGYWSmvx)Q zv|VpUtm&U;g6F;q!>?^l4`U{+Rhhi)Pjml1_`3{{Z<20=b%233?!W1g> zapjh5@R{}>6GvUL6G9o>(f}Rd&y;a=j^KuiYz&l@LiHmQbE%?MJ34r$DB0kZIDw!Saz$(?x= zg6feiDQBbAL=JVYm1`OKH?tW!$8y1gXb-ak$|;MxdDGD_%*9if;_)Guy_;0fpg<`hvO11u-$TL!VV$zu z*{iinl$@TSxsI!x3uL!QsdH4ar*fq>RaJen=gzTM+}l-YLJ|_DWjK8gI)?|^F8hOf z_Hu;woz<|$9sA8zrd&1f&|F2i3ih926*@%8c!COr6mkt(#TslX#AP`lB!b1=sPTI3 z=JjN*&xX#YTFw*6EtoucQ%@*Hz}#}o)TU~J9m#!lZohc;ogYICFnY}Wmu3FvH#S!% zwjx`jU?!A|2?5PtGBTxNd3S8Wl7I`6+$k1y)ptr&5J3WzAh+AvA0+I$OKBV)p{|~* zCh2zaUWn0)8j3OY@-|LwoJ?Aea$$7x05cyKudfKG=Gr>_y(3!uSzS0}AS68t_|cEf zG2&+e-r_RHu-1uI$jOkhp)|AMW9A>*(k*?O*jqIDVIUH-Ah|)xVp6gdhy6-JGyb8R zXM07RK$doTMWOKRz4Tr7qPg<>NlH!<)lwRvKrwbCzDByiShCI8o!r=0X9jApOu_+J zEYlrHP*7L)sUgR9g|wxUv0It5D$s>XP*_34NG>QzY|rWxI*%C6Tg}>mX|+zYOG2ee zoU*i|^ymvS16Ohf5u|DFgR8d%mSp1YwUmLT5kNnGB+InyHgQoKRsXRI&@^2y}oR1AW;ELICeNm=H5^bmyj( z))4N(=8(0ebEYIDI4C3sI9WOW0I82QZCp$5DS;h=+yu*=EpN#aL-EK5*H{on73@J; z6gw%M&_FC|T7(`%K|33}VTdZwN>hjiG-YXDy)rSbF0G}qrc)V`h7wR}8xwKx^@!KS z1<7}&>O|`;p$5@02~_DJV3MxTrP4o0Y$^a~mwH9Tl+j-9u0)F!sS}Yq8YieqC#n3l_<}Tjo?HhA?%aFQ@ShXv&bpHUq@3B#DyLaib zP7+fzOztI0gEtCE2SA{{hgMVl#OMUfcgwAt#G zsZ*@xi!Q85QUyuFfhR1nJAPqX?@sPXl`d)~sYPm7T!lV4E5u1kl1XZ~%l`m$Ras1A z*z~Son3T*Y0E&K+RZP49uLzIrRiCq&gsI30B#j9UN0Fyb5=&jh*-Mv!ZYHEmSsA6Y zBx*dX>kx~|%CF3)V(fT;S}mfB!hX!4*(9u~Dn!H~t5+xmLzzmkCC35A5$?NdRcD@= z6APh5rIl8M{$H>@+SG`@W?@JQqB5-k;@@V8edlFV*)rzjw18YvpyoBq9R2k;@Y4cH z%?-Uhk`{>$1F0FddX$r{N2&;}HV|5DvO8NfsZtG~tqYbEScxUO$;c=I=_EJ?lrc8l zPVR)S;|3}=DO4nMw$Zj z^N5PCMFfx;yerY?3GG`#xvEYw^#kP=Z0nv<A{}_z%GFG= zh*|?Im8vB7W!e%eoD*|h0U#5cJMD#2otHkAFD;JkVG^{geE zH1gq;4Ktw71Fe$SMn)yKP34F&&scy7u&%{>sRR+{1zw?9JG}1UX+S%n#NF;!4RwjI*G|OnuSVp_RX~UuW!%epL02;&8MY#{Qn{Yoqzi4Z= z-f06kj!fDD#A(ZfF(i>l za?`g6Nh$3E_>FnP)-ijFp7Yv~*Ipix8MJLSb?_NQbgi&_i@kHs1$NI|!q{okduJEn zST01a(|wbf;|i|(`G^GN5BndxqOS6iO+QfXkGu84E3NWfYqDCCG(TlEAtjsuv8N|& zpt4|;70ZC5D`lA`^Tfse{t)FVYxAyoMR~E;*jfc@GvakWXq(urdK!3j_l`v0CZxC? zB#yfE@{G~FS^og~>FnpepBL=W_417!_|&GQOc~4lPu?jjnrxZZob~1usmhWvN|cd> z58`S8*TOwNNZnH7is0mGnzAiroV*P-TA0%kl6)xPyy6FYUB*($1G-2)BleB6BHJ!y zjYzafLQ(-LQ31k2b8ubw0h#3(-fg6i#-fxl)|Q@9c9DVPNN~CCfjDAvgd~hhBf1Kz z+#i#QJT1Izc4=e@YcmdNRzkXY4FmnVv^#QUOGJdrOsPmAK?wjlu(l`l_4JE{@X9ve z(zvcfJc*Vz$ZfK$;X+!9Q8T){gSP^cMdB_@5}syUx2iJ1y8q{L&{W z_=7xv{tVp+bP%}}jz2izdiM878c8L~gb7o_mH4=fuTw*LqV&o(`kB6t$+dZ8Y8xv_NP)Ia&FdCgn_c}&x z_-5UuiFWzZWk>;5B^h|gpqRAR0cIp8Gn*?=VsY_fzS$NOOOUhPnw5}|nu| zhAd+DJ-l!h)Ml-N+BMpyPP9xX6xoZILDL$^1BZ1ipDgPZ#nW}mP^bpFf$tf&VlC5A zWLl*;S9OC_ms91*vTWk(-39A8c6@Wj6_qP6)CaqtEpo3XjMB}Oc9Z*-qKgvEvoc8h zh|hrQoJuYYpOy^}k(QhzIc=`{*CKqma`2R59ih|*ub8RM9j~v86d+-<%3Q@)yxree z(~C*0)b`xh)SKfT<+;3zOxY6vl%%B-rKuAVt_*4pgg7HQjbk?aL|Rav!A(k%RH;c5 zQj!==mZiF>T8sv#hFY?1R`Kr}b7EvAIRQo|I+MY&A7H^Rck>o8O)4#^dTXAYXC2HR zhB7{K$tC)mA6HS1*rwR?zFp$VwAxWQ9qdvhr9(uhCDa4|0H~i&AzND1rT$cp7VGH~ zs}{*g;_bsv8pEaGB2=EpAt05hAU9MJs-nQ<|J1)!qkN=Qiv*2q{&ie76Tg7iA==1Wy~K=jt5J)sbfV^yUpU* zW(kOzp35BjBPpBuXq=NU(<~?t!mXh&gW|AR4d{OXFio<{lP+2&0{Dt?l~e!=6=uUN zTt&%i_)WvxE=Ww&S(25`K|SIMfH*P)hXjWOvZ<{{zgvY8Q)WUX1R+a3{wgE9gWwp4 z&CdfJ7)|<>3~I{GL^w&l5|d0rmY*uZ`Ij0PGDGTkhU$?W+AW?qz(*Em z)Z}AiGs-=gwZb*nwKr393&zp-Wq=-1mKUfgYBOYby*O}7x1SI5WIECdB#;!E5XOd? zHxUZH5@x7gh)ExoM8uwD)A#FLeQB_Tp+JYKzH!pU)h8c&mFRG@;a71oR>1r~S}cl0 zn`6w9l;H~fXc>pCMR^wE8qa2SmR##B$8iAXAwFo7~r{G>nTO*^U;&+^ zmwrS))*?urGvtr`u`|E+mQB9yv)W`VEhbt)V&y7G!lWo>7LqCrL{~PeLC1$q&ROUA zW5>=dI%iHYvMccvlDmp{8rsl5{-mSrpV~6E++50+GFiqKjR;aoOQbrR4Gvdmoqqwi7l4g2%`|)ct-;#b6O(SZGh+D3Z-l*$?FpdR8KXnkt%mS)8(D6);MD%U=^!BeLsIZ;UQH0#a{MX)TXr)-LYmvO8Rjhj|^4;uB= zVrPGCb)Hx+F(W;BJX6=s{E!I=6dX@oaEC?=ry^dBmRaHVg(%rI@bZeT-@mEAj?E#P z*Ow-V#_N6{lQv>x+EIfU!kLa4&Ot+gG;&2qhU^1y`mLUs!>+n8WSgOFm#1Gimu)W4 zN|Z`epfKn5^7V#muXuJev+WvEY7XB=2yJ}M?U_(BZny<<2{OS#n4`2PStvFS0x)X6ylMPc)2ZgpA~lq5JAmNXfj zxx*EPLWv0gl4u$Ard2VsH#@o1$+M)a4$)&0oMie|zh(^%l&DH7#No4milUAI3=cQU zPBcDHveuzFHUxzvcD9>nC8$bdNht8|5SKi(i;H?2y+rA0!T?f5PXGpbXRik585?*O z*@Q~7Ae8oVr!6WJKh{K`UXMd5!RP*w0k?W<;K$?1vDo`R;u6<)UL{hL@=s^lNLl`z z#Dq5<>YkxvLR=_NeHPejAEXs{>K?yIca?i4$97IApp#}^5yK3&NMX&G060<^ix$tBt0rY9$7AQ0 z#4;uuWv0-VP+a1-Y=S^bcrr#nX8M?@Z|TI!R+N8UyrV$w$7s=PmZ3EvGaZZ95hA1# z&(DMU!uO@SzQr>X5=vBsaV%&-Pd^$rwr$S&BYYXeP7x}&?;-<^+0$U*ce$d@A_zFbe{{W>x3Ua5j(mP#mJ#EuN-ANhnEB2WM*?qsX$(k@sEJzAT zsA5~2FpH{Q@~tEFyBbm`FhC>y!}*JEWji&H7IdNU_4OG?hMJ~z6DBsxBJT?%`IA)r zj!ZJd{5ar@vuN2CT8cxlC(o{gZ7U|t2{tQ9Ner+YkM^hsuAF|+lkV-QPBIjdDn?o! zKUgTTHZ|C#N|{0kR-m?-dc;=$0I&eE*>v${-cqDZBMHK$3_!0aS-s8Di@sHocWRmG zwMi2}r*!vmB!QC?O>+)dm^&yhb-@#tDnif{l}ngVU%ZuO!kk{34iGEHRj2lKYh!wU?8MD!{5jMRxPS}a^WvOLm(}c-Z zge_$QHz0)q4NJ4VVQ$}UKHFqRYcvI0C*gQVZe8rAY(~j1_3ugrZSO6^Sz> zCTc1_NJuQl`&hR&)+v^Z=`QkeQ;2|bNupmYvhaqh&fK=bNzC!<(lwUiH-BWGAc?Y4 zxzg1!3sYD7<)8dk0pLfXt@mz9QY@;Ni7kww2vBb7ih@BVlvY*o(v*Q_C!J_$)*lV` zkX@Q(mSU3FOvzkpRS%i-JR>b$H#()LC1JbGUPd-9>b3?{n>33;)RZl|M6D*66c{C3 z*}{j|#{3i8D>(f}MzvU6Jo~Sj>`=Sc*^?q_i#k+j+Hm$iNUlnl)Og0m-p0;Ln=Lkp zOt1-2Y={|-TKUFJysp(Ma7IN+0<_G5^@iuix7spvonMO&4qp6tWVd0iLa<1y0&;%s z0q2!z^ou4Mg{dS|x*sJ6Znxj!&YsmR_=2^fZI)vxC~yumin08p5C9;vJag~J^dY-dd3HFL zG=ppyCRwLTW+B6cg!g!*oMK9;Q4niPwJfS+z%i`iBvetG5h~=OOL!Bc zKie#+N=xWC@`+_KzrF4FNn+X&$_tXDkW@w_k%1$DBR^h@Gv4zYmg57kTM7s*hzhaG z#t9S?eBFvd$OF4ZBPx%dRgG=3TcIasq*|1hB7D@$KmDn_*=H>#AS5^}CO)xA>^9Gv zRLN3V`&A4_JS64ezteIsKygyf$2$0;DK~ zs?4l7gR+q^2`M4KBoZF2o|TUO08h!fGQ|A*81llMnR3^#6DDGs=_n$NQd*7Wbj_TFD2c3q;|iM+R2#*?)x&2NJ>#Jc0FuM>(0=e%@onPE zB~v>DI%WhA8JvTeY?vJ#{j0=RMA}n(k)1NjYn3rcDNY~>(W&x{S@Em0DW71KJs@J1 zQl%O`6(Nt1I7!qrMz0ILRLi_t0uqH837lz?u!S><(2pMol2|XF$6e-Hsud`N*CJBs z@MFd*%cBO_Zs10G@F(RQgRKJsl#<|u5Jw2~Hi<{*Ickmw@DLQtjL8jWaYAcds3cUv zYvTMwq?IW^034E72*lqJKNu=1HhT)GlIGJbLNgDhSvjOSFc#Tld_eqHO0k7Wkfh9< z%s?Q75-EwDn>ID|j3u-?bu!aAQ)Z~CN;&8`0l-9h^So6tN>Y?bQN&3uU*`#|r{x+W z1P0?r{5Nl_@KeOKspTwzo?QGs-ZAt(<-C(M30g=YLBSpo@xIKwEJk9l!Z!Z^!dCwP zaim!%7E)+}PGdpkm3%aFB@v27!%85y!o2rXh4IM~Ru2z*BFq}Z(=i;|X< zwRhTp6RGjf>j`!PYw@t-#lC+hjh(ld(GM3b@MWwYSg-DD^Ab~$reh*nku0!Ia1L5RlcL#a+OGh)ZXz3O zlmYjJH$ChU2quS)aMgKQokk^#XRQkmM8)g&q!Bi3a$NpR)^OUgb0t@W?gqK@h^70t2$l)QP;wd5 zu3m9iUz^TSsF8=}A`?E=r4r_*Hp3W)GGnwm$C)wkmQRIZ0dKaFr*iP1q>g;y6!|p` zsrH7rq*a;+a=Q;U(u9<{fHgS;`0+d=PHcAVrAYvJB6f7JoLJ7%^e4mTNs#4%a za!4TQmyVuM#m$yd<-Sc&iHf#f^j(^Aq|F2_TFO*7^By6MIObyMx^3i#evC)HBKLej zO|nXR&xUG7WEbz~17vtUS+MtiAxl6bCi-OjBMhf)4}F;c-p%x`-DnC{5EDlr7Y=FX z?G^C1sU#GV2&gZvZ~R2ZeAaw6xv9;BzE$kdayr$VQ{EuyO-Gl!eREF)u|a>*zhlK^ z$lTw|lH0F4WYjW@<;x-1xk>UFzIxO|T5{O2%xGvq;C18mjTLe&OGTdsDQHZoNGR;V zc6V4TNh^1yGNe%ZVQCAWJzy|Y*@^;yvXn>!WEuL(G^8hR)ulgZ9F=v~)(Ai+fa|WZ z>x%T;;@hC($zbdq&oXjXhGrDXRJn^qd+EdmheOE5y0jw-Yq+S!ZK%v3`~k7;bF>f{>@L*RH+Wq+aq} zjMO&_UwCtodB`9064~d&#KRK>jr++-7j>v=WUI!sZf3NMpS&s4CQ7m=0-9By2rNkN zO;J7t+_ygn*ZWyMRO>ACreaEPClLx1PiT=>XQ>{sT<+IkzZEG)VulGy!Wy`fpL>NX zPB7Ssk&$Ovl%LE9@V}8p5B5Yb>E^!z86hNB|TwRVXAl zp~9>~#qy{PTb;ar4Qr7-L%4~6u9d-(+nGrqM*KQ_nVms4%+kvk_dcj@S7Jqu%A!EW zI&9lQ$l|peBTSGIm(`zG`O)!bwX3$?wuRTSlthV6OA#!0h|BX#Dlfnc^NY85pBJ{P zN;?}GI~ityW~*=XfWRJPp9rNan*%a&D_JTvQj2(!PrsiS^%{PGHm@^D8KtWK07y>7 z?+5VGl7yogny-`P<>Sg1Ouy~chZwsw@J%TFbkRH5eb=F7kOf1%I5;QEt`}Cy?zUXC zI+6;x1`WawJL#GpYjl^_{tAq;%+2=>=T$I*vZbhy{&exIT$?@c@(_>+2nRY>kFST? z9Isv4+Erb8-Nqvw-g&Yf-PyncU|ux#;?Lg^AOO`Ix_A z5D=9Eo0lK=9zQs9wy7$#S;i*@WU);uDehePM2Bs+JwDH9pDtvzOHffPN&JSWRRE%r z#2#@Fo3b+{+U3g?B4P{X%*6T)c}Fq3?$1+`BJkZBkl8}Js$vLY`h!CdZM~HyRM|*C zNWz6IhZ(4_e}7n#Z5@hfl6xclOf)&y>!EF8fV{5jL7b&c#AXD9t2zKP;m(>s92^ZP zmQL8-Kl)2D0Uy$OvDS1f%t8QJ%#8ft?W?&FIVB4LNg;?i7=iBI z^0ymg)Xz&u0bQB%qn@enBi@DUI#iXeLUBxCg+3$?DAN;=$R6F?NRehJmI6{1p6H-@ z#m)XYC0+8?3X)MGNkZxgRI~tGy+Ny*#(cf4R+U}-t))0-c7PPSQxRro&^~YBq{C(Y zEToy%bXqL0WtNmnT2q9Q5SCE_nX0%+%9x|EfqNjdAG)pVTCuG&3f7tPCIplMJF`kc zf{WD&!ki$!r%*%>;_B@}MU-Puor-GJEsg+!5G5}r#Czj1Sbk6{WY+%xh}$fiK~#%5 zRJ5#=rGk5}L8}pw=c$UDe>>(krJ*ZCp2;a-l+dV>0$JOL6v{UsDwzngT2zn{Uq?PU z`fC%d>1^b*D#zKOK(1m!nZY5G{O0`l*Ag#VpDgPVB=s|Slw8|bmhn7I>Xr86-tfg-G?Y}&eUJYv%@%~@gJ z0oITI03WMGQN1nAqR}d3#IRZ_SbkuAoN@7qUhwyoBFETFnxGLeI6=;(IK%LwPIP|} z2keI0%C*@oGo>ghTM+*M?azi$yG^T}o@#LVuTu>1S(0`;ZLK#<<)W&yO(0E_atBF> zIR%Y>xOYoYuiLi$OxBw%L1Y zi`yc{-^|QcEv<=TXp#*w9jvF*BV72#QrZi$SeYnGB#a^7i}`25G{*36bj{iOQqrKL znevD{Q`$;UKW>T5GcP1f?9LWaLn!e$fehYZ>U<-`<@Qd-Hcs}3X68*Oz@`azHK=j+ z*Y6fh(t;4$w!R-YhFf-yT&x(&V(VWRoL%Y#A+kE<*9yl5X|`-kh+LaJX%^K@Q9X&E z50Gs`zg{se-i5aXnqy4t)KGAjtLQ5ceXiczi!fJt<_cldpANXjecFAnwOiKfCkXu@ z_fj~MN2e%?9-y{NuJ4Ey$(8^Gb24&iGeQ zv!58<*7->?$qYkR89Alb1~p%T>uR_sA}L&#w`dT)nc5F}*$CCV%;5C{a031q|ARYt4jKmdh(4 z2``B<&I2nig3A0Rv_7*)*gs*DzvAQmi4L z^1GiJQN1GY*iGz9wI>v}48gKB5A^Wo4Vw?LrbUial@HKyJzo=*0`JAD^nq-q#>=yT z*^DDrVe;V|spNZysFH20-VD1cQmLha)q`4<14;*|e4@VF&C{aQV@;yW1~3%OS7K;e z{VY;OZ;^?9)@-D^N&+S&(iD}BL;@+~NaGR>jI)UiFF9<*JV%EvF{c(}yNjF*OS;Xp zRgU$MK76;sFrjp8IMPvyjMxgX7Y2hYn?n3kd_$nw*JPA&E@D9{AD0Orko?6mtJfm( z-Q#>eNS`oHLnNt*U;t4E^AVGf&rh6I8&B}cm8%e#a^zcx(emL>DBI$r4*F(PvR|`M z%L^$eP$|Qq{_Y;SKN!@To!TVc(u|e2ZiJjk0E}Tjts=D)!~rMi2ef=UgsToWVthFH z`^1lS`=g&^v`e%|m=L*Z#-HsYB_UvDm86uA^#$laBOXI$JhoH&@7)@#voR$kA^YFy zFHZp#q?zPV^ze_Td(_w|cIz;lgoB7Q#Elfpq3clf$mkO9;=@pZL3CNGHUeQ0P?^ObmrW^`Us#Jt+dv#~cRJTW7MwA`MJ?C z)h(Y;D*h1tdTvV6QbI*@>aPjzz0BJXq?GZf3#}A=~y|lH= zo)VCyDF}QCB#@D=5bPbQ%=C+P{IjVT5jsvFwAPM61&apE79o!w4q5l5a@i$Fvl}rY zVuAcZNyva0>z-eyQ{qXEi5=Ws@z~lWg)j;V3kn>G4Zye^;aWDa^h(h4tms;W3R2*T z9HZxE?Jf_+Oi4DO`MnLNnu{XUEkTz#FD+f=ATrc2y&1^`>HuH>h7>wl zFWG3Zn>!S&q|_vi@t8_mfFXf*sCrT}HpuOS*%s+?=O~$Yl!h-rr%Q4SPKGQSmt`%p ztisUg?39%jW>6_s5)0~c6=ot4UcV1Et3=cgl9eSWP+k*+7Q_;zPz5~$oi%8TiJevd z06M{InJ!w2MApinl)fClxhmfsRurp?q-WqqvqEY1DTdCAN+v&f10rgo1uI5+nllu@GorK>Wzic{!8 zFZCg~ctxdq-LqA9SrCjwU^u|wlCh>?l24RVd(!R7gt^NKGM2Q{B%D>qmvhFx@u0U^ zZLbb-88u8A1G(E{p;lFcg+b8bfaFDT8uBm3kqhs2vOgL` z<*HH^_!I&B#XvT^OJ$QhX&F`<9ED2(QbftAEW|!e%#v%s>srzvn`0#w+cBRb{K*R; zOvHsG(1tk{bC}DBj@CK&*!Hu>>v26Ep=xpVmkkw;+TUoCGJTqARH^bMV39Qfp+SOH zT-4VWdk{5#5mwEVsj4$3s}j%VCXY{`r|cs9*gMM3WXwd_IHuYNLhUOFX)02}N$(eI zDhgr<1)d-~%H8s0%$eCNE?QNG5=c-gYKj)8CLS@y$sMkbSBh$JQeBw_u}WrEf!Z6k z%V_(A3Ubx~X}{4e!E$&+HuSccs(mztp@CKzPF&U%F3RQ?UAK7y$I;@`-1g&Xr{Ghi{U;}o)~S}#P=d0Ql%*-mq%*drk4_^fkR71x?@203CmePV%dOGP8gImF=Ai)MyV5QbLK5c zNSY>0DIb|EkhFkk#U)fca-e8N{cQb&^~?+bcCJlO-l8rIpt|HL%OuZcQV>Fj8IT!= z(g&*H@U;@-za{DCx+r-~=U}v{Vnq6}RGd`C)gXeATrNcev5NBl0NYC;N~D>?5vO%Q z-QJ9OL@MI!(QlNQD(>P|9Eb-3xwjuIw1yqm*<`BGYBR8o$tGyT?@7QC1L)!3h~Qg; zJ6xRvJ*w-m0p6WC^zR(`YY0_w*k%G0xyr>>B$p#61w743^owTflVO^#`E~F3`-z=$W1#R6+)Rw20IQieco$y*O8KqMc(%-u*6NGT!3Fbv% zaDxTNmT%wUf_1fOmnmJGhoB#sU}RKueA_6Z6*cO0tS4F@$0!K)_liC&)meSXbCtWz={c2fFWnTVKzK}iONv@YMwMnah9(Sy@IB!dby&qTYl|%VlE%POICWB>xiE552pj=M1uA5DLOX&ehfH}QJ=(xmJ}H(5vx-CF zLv!i2+0>)~+e-yV=6DmQTw?Ajgx1M)@r=`rjf*~I?6%l0M9#)wVwDh}c#o!jI>pg- zZCV-0VM4|e{8?^O3cnj?MQPdrks0Eqqh3{d#d*7H^)nKXqfpd5zEO@)W30VpTOEsa z`$C1BIhR=^r39Ty)UQpL-Sx&X_hHG8+O+7)4Fop2M z$%`+G@Cpp`h@IhWe2<9q`Er0>cIPC-YWCU$%LJ)F4kxY=(~JzVV(HfE5#te?{{U;H z${pno4Pv(1{p}YimqA+UT=d)`vA5q77F?2f_3{z2ILz{qKH9D76$U}VAFp1yKrOeb zmRyqhzd{p?z;Xls%dcuL~|T6jUrRC!!u zJft!s?!#?jyFnxgRY#c}DTrO|}+^L1`eG0-r47=Yow~Mu+%r+XW%eO##$~ zDLH)q0GP#*8z5_Gvs^f#Y`DX1uFwTcFkahefEgqc$kWy%YP{Dp)Y0}x(&61RlVh^W;LR0UgN%yHY{{UHN)b^^cn|jhBC@w(fA7{ksUFC&hVKb1NA&8aV8DS4bf@QsOP(y|Gq!p6? z0GXeN1hJ{Fl^e`zwC^nUS=YrarIotkl_tbHK!J{7T2Jb78%J^h0on0AA)j>GZ5E)0D6XJ@h3wRj5jG56e#&Lv~&&S`{taVhSL=R9ruo)+_Q(_+>n$ z&9XB;qhs%<2WK?QL2OeFHP?>-+>I#lUT)IxSxuyZF){)atb?pMXB8rpZ)S+1EsK}l z#g}m)9EE5&2Pc!5QkxQh!h+cFk^$lg9ar8bMP`W{ zYo9h}%O{HT?Y23BRh2l_wIveY^%WK#^pB}KtJyT&_k6T1u}hVTV#op1*p{tze;^~Z zsMX=o$7Y=?F-9_92p zA;ZxMV4oMQL(`O18{*pWZ?{@4S}A2R{{Z|*Ei8GC^))6TsFok{jQnHG>NJ||THP$I zFZ8a)sOQIziZssb@0oTR*;|BevT@K_svMyYLzOq9DD|NL8U0m4}*w2sHb8e(@>2Zp>&YI)>oZ33qN#X7;vIwX#nNEITEr zo&h5szwOuL@WJrKvxyg6+3KM(=BXTiFh|Hfw4@f(JaRPbaYc^LETGH@3t-r@9v;52 zV_9W)K`mPOMK8AZ7_?fYOF?q6Q=(Gtc+s@u7fj0`2*U1gfc{MbwuwBBeZg4o8Dx~D zNpLCw;l>KJ+7k63c%Qsi+rHg=%QdES<1nkVc1zJNU#<@iTgKSgmYGIc6@f?f15x3x z(i((~yVkly=`!Vy%DKn{jDxDAw*c{8Z?AE(uJn+Zp>Bk*a7kTz!+7G>G^cy5q*oYi(=2>3r&{9DxC2AGX`DK+_FULS_D820MTSwrTpfd&9U@nB?&z&c{6ar3xpuZkOP-cBaB!-5L>JKJ)&X&?iVO5M|9=K zEqRYh3gMV6GbGzXeh=w?FDDPNyDQNM<2#q z;(ae`l7!=!g{Ha(`XAyNtb53mxxJlGO#xL05msjA@nje_*6k~kF#xerNC(6)>+K2m zRdY8SIQZ8jkBc!O32M62gNLMX4gTcy4brxwX$Rs35vswOb^Vr zE*bKOeYfWW8IKQKA^zXIrODLo&YH{>A;cTePC@lvEi@ z#J>PkSbyRJ^LRnE*7YbTOILWDA+rxmxn~kt_o8f;B`s7;nM9pvk;10FXDF&SalC0Z z*~VPAbc|~{0N`h#C(k(1sdbFw%a-57xHit!*^1^{6`ZF~{myYh|W7lj%xri90tx7_bPwAAif*s!pal~+o_Q7G1 zDJhl;Mi9*5>7H3vNY$0_NFm<$ww}zC=Y)~WwFX*|;Sdei?KPrkS8kjtNex;MUyyUw zq9&8C31EJ7!ppW=6vZv%(aDjiDjD|gX=cclh08%vGg6WUh%V*4KpuP^ANFSUGY}S2 zg!6I7H~pdFb%i7`14>C1Vr=*dr70;d{M`qF6o@L_B zzxHgK6q{J6RP!NCm{><>pCu#_$kR~_lWwFEO-sV&BUzbLe}TI&+jj3WqfK}})Ldb=!@8AVBORK@bh zo}MweG|e=qretpBLQ+(ekiq%!`^80mSXxq!Wn{48^lv!R7R$6H3IirB=@f3%SO7(Y ze{|G)&qxGv*Tw4}OZ+W1p_%#Z{{U$oW2oa>;+Lpj_`La2!Bng%LPMyq05-Kg@a?cE zMX?LTLY0PUxNlAxT(b7%>E84R<#0rN~Q40Y0RCeN1?4xm%NG zM;;i_QSGFeRz)Goopc;D2j(38p~h9Ds!1}cpd3EDzlf3T&cjQdq?v${f?4!-(=7*C zBD-!uEHZ1&y&+y8?+F#a+bPNlRshI2RNO^bvv%`>Wba6*oHF&L8HS#8=N87y?A*C> zrxFtLZ3tAtayXI^<-yC-l_AGyt{WPq5D<(>GSnD=aSSAkgM&~&%pEBm2y%qHbY}gg z+UcuW6sb&vf({)VxH%6vhizq*HiRgrH=|}azs@y1^LJT{wg^BgT$DXKy{a6Aa0yr; z>!o2P@i#oVc2uo0HPN>|aFOG=EFxk(1kZ<1H}LXIsRDoIYSks#%x zN6`zC>=UeW8CfLZBZE+nX8A@P+56UAs?#V-kVy;_ki?UX@d6ou1&g2G=oZW&DNYn8 z0!n``2O1Ogia{Se_L6MeXS7jL&`1g;l;NGJ_>>e$4U+S|hGf-J+B&7I)6zpmUBv&_wqM4-bjgg%$ z>^5U4rf8KlEai%oF=rFu2l6RA2r12giKXz?Evr3y}n4aS2OPeWUFhbLf1m%RL zsVDV2=HmFiwl4EhRgH2~fC*+f4?Yi{tWld~v(pfxD$;@-%(XQL;*-gPvE*S31i^riHYXwwwOyR znSnosTDu~*b)jq&l`~{g;OgTpIr@k$TR_Y&_qL9$MmiLclz63Rt;_*n*; zQ6RI8ctv$9YR(?b{{W<=nV1upBz)SH@r?uV9diC6$u4>TRyj^cF2yGaEHojD##q@6 zp-hrxsexLOlC$~){%=F+#*kX5(@)gp^lZ*po+)>Wp_6FtNr70DD5{M^6PF_d$g#6@ zV%)l~Q~^3lQklrKAu_S4h5{9f9KX$1YU(MhS^KN_T2#sSi7S*3bwpH$;gxvl9OKd= z54lao&bFx}f+e_qZKhwx9V2?|zRX!Ji#S};lmGxE&;n>aa8#MLTdq(*!`hTA%a-BR zQXGWzGmMMAzlbAfb*ST&Xq7Tav$%Ua>1DA~^(9QFu8cv7Zo)`+_?GyKn5m@+QAEiz zJE(Jka@3s5HCXv*d(oe6i_n0ni~P%fEb?Yzjx*~>qQT3(CLw*Ssf8*I${#9@y4QzlF*P%_djAtb*rir_C(BAm1eDDT zPK4oS;2r3A7IC&*R*5rGQEQNrk`@%w$;1nS%25;{>d;2f+_sBsxss<^?6?-NwK5PD zi~_|!)b71rj%ijkSVZG%W=mDyHBwe)OI4LimZSNwlsE;zG|1urma9BcUji5EQF|#0 zAa;^g6U3<`C=WrSpLo0O&6%^wx~HL5nQB~{B+!wGClN|0kRMS00F})>a^J$zn)kCT z7D$+JE0Tdvxg*Kpi?x8yq&r=AB~wX#27t#QUH2$sJ_Ce$FT_NqVlB7YskWt+&QVg% zZe6$m5PMi+Vq0#P%UtQ#T;ersvJg&R%yp%Xk($OCsjm*Qf>a?@vRzxQy75Z1Hixb- zr|<;i&Tw>)-jEY#qvh`blQS+J93im;E476^uDqTKv>LeefLf+d^AJoVAzh)!uCc9t z6L-=0d4kO`PKBuBG0jwD^O4b8WBc? zU94vhhCTF)RFq0ufS8nk#MFUKPI$(NmL4(5QKc~QxbyLkAuj_W5-|lXTnRFuPXi(- zjPaKRO%#q!oZ7^0`r3piBIXK-VLMx4moWtk0EGhJ@QOr&>7tt6{_jPyQh^MxaJYy;B z?f(Ea$u!BD7>~U?ep>4mz1z2`P^r^A{HY4s6J*l%+9bYaoHT~(E!L^05wjNNti-#f^i=&m(Dk1hoPEsAiH^MO_c=9qYvPD#$?-FwV6Fy zgoE82xWo4Ncap1Y^%pn+AvK}rz`q`h0VB>j__5NqVVs2Ml=;BsO6#t@U{e(wmsoVE z2(zh!Qi$M}*I!5+#0quB6y!<+F%X(ytR9J6fgYNsyQqOTjRAu`@X-Oo~u{zk@&rY-`7AZ-qmmc-3Wyz5wY=lc6aks3= z-KIYC1hGDSa&B>bZ1sy=vK4PQifj(<(`1%Fs+7)p=3Xb4LK>P!6C|zhZ9~k7?Fy|H zy#Ue!X0q#~Ewfoc6dyPkCfWjhj6J;z0{;LLJ!LAx+N>2Z!$Ngn1H>*ud%*J*;U7RY z@itUl)8!dhrl}J!q$SFxEUOB*QN?ruF^!LQmV%^%EnrftU(JWEQT3fZqBDZ0E7JyO!aHRz|Hlg8G;}ylS+LY?tV&UH9i4rA=LSP^-6EhOPrx(2i z8RI-#t*KcqbAZjMQ35!FZ8y#%N)K}#we14gu~D1K8Iqvwm>T~8Fy|`k3J&9je$mRF zqj9!4=x9{#2l<8fo$j@S*CC`AYO#ctckt`h3s(+3eEO_sc?TpcRp_;07>{+mgAWtq z^@48u)k&BX?m;ij+#j44EbZk9^6`pU10R=vDVM~Go&mCiH%;!O;%-^^)6x?ekLMnh zC*0|*J~9_3A8))=ppl@gI^DOF!-P`8~vi?A74CMzD{{TXJ)yS07QLH{Sx1=m~17|{-ZK>rY zoDhH>Vu8poWapa4m4mnq*~_}_`7!_ip${=b^-Lkwr!{Awe3AxHgT5s;=~s>6Hfx^B zSM+3uae*Y2FaGscN?~yC4$;Bq%9oNCo=X&Ml$ucOl|3PSn#>5wv~DnUp6nw-oLzgO z-6AHfGo}!vC5|8UK3+#YU`MRfXNH>_oZTdGF~V7R;WrmSuO|c*z;{Y@ndJSQk-*ih_fm%UlXMqU~ckS9|N<$9zB&Y`B3P|)( zgxjp%uWM))MN27Msa@lvp^|uN4H?F|J%M!CSPoSY9k*Ge*zL-iQ-)Qnf)@V(<<0#` zB;=Kn;PEvXJ7S7#?)&e)#=&V*erYR55;2TE*s0DM{vEBMS6q}4Ko)}9)SsY4~XFwQ8lP?f|)qrC6^nwJfuT8bG*ez&6l6y(4 zl$Iy+DS&*3wqrLDZ`$ot`NJjcuo5OMGiD?yY5b(=SL>#AnPmozPoxVj$iBhvMop?@ z*;3yWqRKiP#Xs>r+)F%dmf1?O%QI$vP{8@W*#6KxpV%o96uFYn61CMzz^2+n-uKc(W28SGo{vA!=&Zs1TT0tbWRc$tTPq)M;Z^?))nmT%_7e! zGNpz>0|5+{z1hiJ@n~21iOBHjgdKuR?KXe|nheS0HHgL2w{j=q?A412W5|v^8p7-1 zM{tLueIfy}+Z2mBmw+DqOPAx(_JZC)%W3cQAwkFmS!m~g6U3~H~~pef7B8?uftL!)OEJC7_sH^qb3eG7%kSR*M+DY z%G45s@DKJC$=Wr(#B3zHB$UfY7@NGRJJYU&XPw_}s@K`dv`S!9ToT}cN{uS?jWcCR zunbwSe@vUkJSI$wvO4(CD<#7#9wtscEndAnqFXBAO2a5oh&&>s*;@^)+Z_J@linT! z^wW#;5o+ynCW#9YpR~eoYgVVcWZ{n`H!Z}3C6JJwLnujY*;!K-7Nok8;42~>oO!V5 zLpJEwX)-{yQe%?bsNH)*PW85$*CuR{XGS!rkutRvOBSPy-(E(5-BAg|-Jd~D93i>! zi0!v`5?4h_1+u1E^wB4~ZA8is`I^2u)*w4Sx7MZG7a?-6$qFGe4z=atDtYCpB8aB( z?u)qrGA&A*Ei(Zal2p{tkQCm4Wmt{P+&#{@Ynx@f(20m*gehos6Uj=JqQ$=`J_9J6 zd`WD$RhzUQod$f=-0bTvMCDg5S)M!D!HtJ zRJ=sjCgsalgtt_&GHNk7Nm#^rJ$%|W&PpdGa?8Krk6z%Ykv%XiCM#VZ*}EcMh;+plQ2ZYgrpB|Vr4mXxp@02Jq!9O8r8?}*7#mZTvC zWh8|YlY-Q)rzq!6O|w)<6usB1fE6*o)V+Q4iB9h}Dr}W25$={L95d>lNJG1=>)Gv6 zmY{H|T1u9ao)8?UaR3OG>^|_U_Ml9a;=@e3;A1S48)I(wt_ky`1liYuU|LQp)gjzx zscP1qA{1**3qDZ*Rt6=f90 z>!;fkqGtsJ1tg|Iji;8W_zKb(WJrbg41!6um7tpCUPdY{|hVkHfR}suJuN_RlTF>Uxi-fk{)h9*ZQ7!sIF7^qSxDt z)?}+R$&yAXsX-`D6%W(&uD&qSy6vx@XqF80U{NNF)Bsi_n=g1vn`e_T#udtzuuEj5 z1MKkmVX+~d4BV?8D>N!i9XxN@Djn@@4A~PTiD)Ym3c`piuyL(010z9O)0C_%m}Ks?_@%xB&9$JYQ)B%fD4XZ zTKLB7c~p27;#T`7E^VS}B&uSWYGO*W%z|EpvJd>&`*D9-#fcVUG%xyVAx<$AOHLw{ zftgDXH7!tU4O^+$(`dFTRG{i9rC6oXAIvdt9#mx8-PBv`=v>*VRta;JC<0wTl;W)_ zl_l9uT)1Ia+@)wsh?C)qWK<2Ne6oO~Bn&DVD;W%3gOn7HSkfD_-WsP)RE4vqSXxNT zhagKFUi=7-oc!4jj_p)m5lqTBeT;HYpaXrqv?RF-lTGlZ*eBX^|p9rF_P1MfDh9N;yQ7PS+ ztyo5fJqEc_hBnUiwq#nYg;MK@0dmwIP!yK&qwO^Q^O1SVLM+5*I2r9gbfb*5Uv>7NnkvRUQb>z9e;$OdIIM{p5S zn^nkYiEle*?<+bMshE+4B4HT@QF2lNs3f}#yrVs)^qXv*-aYU$G{~Czz_}D`dtUSs zB`6X42nL5Fl@ZN=$V7Ji+qqY)yCi`vKl)~xrEyPel_(sX7iz!e@`?>|Eq{ev=RJ}p zc1w0}r6l2|Y^362l?$^(uXP)`yk^-aTI{G=rOWP2CMQSjpF=0Uz-MZ;wRG;QFE#rGkl7*t#EkzS$kb*-HN*N@IQz{&q zqL71VJ{;|mta7b=lFXUF6srkphaSgYP%2%x28`=6^H^X`Tsr-t#n~&?WT1(GL2~gS zYnJ7d0S*)@$46q$X`zDNcY1>GAI$9ED0`o~+f=lV>8Yj+NpI8!t;?Hn;SPr^LpF_< zXyjfuY}Lp?M6^s$Otmwk5=u%~I|obA=zL=t+xKf|nKgJ5OhvtZnR!N#_)n6vciUwt zCBeqVhq^{U(B^$&ak|Zsm)Rd48%6JTr%jHN7(JinQ4hW*L$Q zoC&C!rHuwfCQ^BnsbAdTifMq+MA)`MdT^CWRuW4ZRf`dw2qRD#k9&3ifvNVnQE9;3lJreykv00Q%r;8 z#i5GsyCzAWGSOsm0_LDKLZz)LK_T-6D%aD2u0+Vv8^gb4+tY4Z64<*L;UpIr(h{vQ zRSu!NV<3&5wE|Rtyee5r8CCAofE~jJ&{6Y^6S@0hrV}M;Qf4a7sU_=+vzF+oE=x-Q ziZcURMSm)E0p9Wp252>$?jFqiRS1!-O;J!V*Vx){Gh40w@KTJ3Y>u3F~yfMNxT zjdFIc1I{Le3ILU|=7Qe&Io^Rsh z89~XNEk}R|P$ZsQa->&xcEZk5ao`~%R*UO!VR9!)z?M|WlG1p#CLnnJ@l#wKa`gJcHMY)txI~t9n1?zKlrvf^!l#LR`mcm!XqE!)y8@gjwH^MS zNI)bJn5AIJt1QnRO39@<*0D&d2*bvJbkN&vv=?VI(iU4M(d*76Tdc7>EJ+=3EZ zFg|?S_k%2s*=%%r{h?Hv7Kd%6*;UA11qQBsM~6NT(4=YU*I!{6nKIqB+^)$z6HrLP zr)@dDUc7wc>AvdskuKRG3qjC3ap4~)f|@VShAs0d$vr4pX)7#WP6ROG&hHuJ5%H1q zkt&0i4HqT&nTQHW1Q04AV(m>BXc?$7_XhHN(rrE33^|JMy3HEtdU<^ zUR2;3d&FAPGhbLoHq+N$u#SD=1z+V1qO4k_@rLVlq*P_sT^L1bzd7d&7W?>dc8l17 zvXJ*HRR?$uo{>ZBrq-w{yhzi_+s=`#Z`tN>AmnoTeIqY#OJEmfS7;JK zRZ?oh?cw`Gjx>nmOeF0(0LE02*RO}wsa#tbk+D4Zy1XYK7!0gC?NLIad>jp^-U#>Bo$doIVAVOch zkdyII(QW`h?g=4rSjn5JLRC%!F1bQf&MGX~nlqAq@nCFb=4}>+Bou;1dAAtNlOkQm zs1SOnfv!yx&5hi}qR?CElx~ki@%}l(y`ogJJ9JqCyER$wxX#$Z0Y|^M;*;25M12gyK21-Z~8Qz`Xsdg(; z(BWc4(vmX=0jO_id{uV^@>g5W_=J@p6v;y=^j@w~SR-ij;oPC4Yy};Nk(i132LYR_NpyfqbyZdsCneo*k z%Vri^G>J$=#hH`VPyl2kc1Q-lscKQ6ZsWM53}<0DQHy6w(iGWjEmKzE23^z&I+D-g z@Bp$n#-y7P_&aHu&F2XOl5!n$hx?}BGs;qdT+3UhDCuXIWr+B;khJvx}Fln&p zBjReBbN>KOr_bVJmh6tB_cPr6-r4T?WpU_Epqc?%OX;zhDn(G9!JuAyDgf`q?4E80KQYb@>8oJa!fsS6k@ig)+m{U<1i>IXS zT(b#UCaFrqT#{-{T*I}wJ>QgXOGmuZXy5+;0Q;5`l$&hC0*Ou~Klix`P=D>JLD0TT3?jRJ5bSDLN>WKCj8(6m zopaoqx!9REZHio!3@DW>4?$DrT%Kkb9Nbwp2sgL17$lh~qNWTbsL9vC@{ECaZg`pL zQgDe~+(~S}&-fJajR$_-hIGX&>S@SnNJ02v33|-9-|*zu$~;;X_l0z zlH`z(2`5tF;m%Bf>kblZ$@PqBvr$mkE<11dfS#$J`h2iCe80A%I`i_0w%?hiLd2qR zl#rI=q)SAAI_i*y-5?zzSqh(Ymwl-+NVKS_Wk#emG|+s#VZV6yU9oc|3q2EyylbYM zIQ^pDm0^b~4cMJx(N-gnf|+8KZ+7$g#YJ)57OD2B$h3lN{o;@J7Q)ov{2MCiejB&} z$|F+mI=&Lg!v1828ofQ?=@n%gyq(xu%)BX>sj}rS9Jyp`P@QVRo(~r8>TULg*-&i( zrqn2S79OFs@T5=w0K*b=fs46>Lae6tviY=$?1IR7UVZQ>IQ#$oMrrG7pSi-d+5;>ojhGWVgcZT=oqTY)y zWTPyUg)C$-Bo}@IBlD;cW{VCG&HHub5bMTdpt4FqQgba(+<$nhB@Y`@ePEWgXN4sC z2lr;yE4|w90NVRPQlx~GfGQpT0FQR0P4NY!9MYllgtvXjgdXZbUpD!{qKJm@_Vn2T zR8plmW&oZXIq4Ifot=(SW;0_*SA&Q0^Mw=kNi#n>LYlRQ`!&$X2?2l%1QI~mSdHvU zHow8)IDukxaGYGda?&f^^zXqoW%e>aT7WpKM3&2eBT?(4-ZtHbmD+Z=2WhIBy;3n( z#179cU9xafu~|?jA{E{Mcmm!{p@&3UWQSw7!Y3%EYaozV^NQ+XW?mN5$U=$j7NnqJ zU;qkH^Z=bn(jYVK3PEw7UwE19oY~T5S?$t8nQQG5a~P88S`;c+hX$Du#w3>xyOJZ8 z*zW#)-mFe=;sHXec`K32#K5w6U>(+Yf957)f?j3Np`7DfXK8< zM9E~0CL}EdjcDNc5u84BvV&c(PZhqdYG`aJi z^rVFGAk#LjbkZ93YQ$}p*?7x#vxjJ|P9Hu&xp2}OuN%H?oT^O6PPln!bL)g$-w#{1 zD@e4c95}`TTu~+5adW7qj%p*&>vf6Xj2DtH}N|;cUB&{Z) z>JCPk`9#f1N_)y7fXwL?zRGTsu(dAK7F1M8!g8qa2i5)JWwx6>sq!XD3MeZ{0YKF! zj4~k-yS{2vmq`bhFYf@f+GV>d3+V9)-G>=*{+m%KFZKVWBCS1nTJ z6a*giNW>i_smKvgtRDm{@4}_2PY4B)#)`8(T0h?b zDr?9j;YPJI*GH`@qeaC6&ip_~RK-~=fml;MdQ!Dy+Bd6u`r=KZ*(HhdB@oI)#mi9U zg%p-K>8yPN-uA~T(<8b5Y_r-+Q?bOFwK%t{XBd%EmM5)ibt%+V{{Wb*lZc%hob#_3 z*$GglL$+$;nrERB!N$3XLR>g{bj*02E3EU+xL6uT%4imv)<= zu-ax>EtX6RmKj7*(m-+uYA7kZ3uhC*iOca4?30qU1WQbrg+$O%H1{JY(T67V+f5f5 zwP((~vEG!_Pn$kkie}F3Krd7#Xi^l%h)H00#2aPqM^m*kKR>zW4cCRMx130NngO7R z%#`*rfXKI}RE=p;6{*X&)$1JG^0o{SD!#UG z{vLF>bWxVDkN069GjnM9*R@xAkhNlPU5Gzc{iEql%U-Hnq^WI)fJo-Rx0GW40Eq3C z37;`ZOC+m?qyl_uPeKzB)K87&A`YQYP9{X(~8?NFzcLOL{z5wri`p-ceuP8`2W3lI*1f z;{&`ha;9VHo=!&*7NoiT*W~atL{*y!xgleixt*exRHYC!NK&z39EVL3jjG-6<4`R1 zWhn%+iX~|@W;%YyDCWa&PED<9mViQ$MFI#RK#)gY#s2`Y*D54SGv?6YdbI}_MAwoU zg)^lh!(|fEz=VX4MvQ^HeS@25wW87{C}9OE4#7^WS#ocf)Wy|)?+rG!6`;BSDI6$S z{3%W%qd2U#yKm&#=S!5g#V`y$t@Go?3Mi>D!tYTD0O?4DUt2c6!rCRRMPJoiPF^?3Ke zj9ay|O|@OqY^YI0={V#C0K@`&NooP=09FxD_zpltmAgBFeVrI4tgPxzc@Hf)MG3Q8 zQ~n!o#)%Q!09psY-J4)Rc#AAey#B@pwyqY?75Ij7rAd zMDT8Y(O@TR?8a)O34^ssVvSr>)55+Gs`QqGq^(7QK_uwFJNrVNhEw~fx+mCYn?ODC z8l!{xHzg6N5TB znHnHFp1$o@Z)znkxi~b*Y7UYc(fTnrIH@~^YoSRIi3rWNX zrVh;^!IKq_*Us3G2tX|9nm*#7{DyEMQg+LVx>01GCH{{VKN`9_%KZ3=NK z{r7J!*=mrKs;f#wwG^-`NTZyqS1$2HY~JrDp?#pC)E4vQ^o_@D*ef-prASf+Jcub` zPQSbc+wkKwepVyOEy;sMMA{owqY1O*iG?bd64*&ggpxRiENEDmxxO5Cy*BERX|p6E zWUEFMDJplCpbAbNN=ae}p-M<0j8A5KG)_@++4S(P@Az3z%}wA&TsR*e+9u`|8M}Jd zp|>n2@}(q*h-!|FF%ciGbFQcG7b{<*=%O#vi)-Lq~|-D;XN8uSmS^t=!rrp$5>h zJ0y^oY>T^}4m?|oTsv#=L3G%GM5LLM05nQoqltFw#j`H@j^9ob&<>liAuFY5?k>&bqFR0~yRQ~{T zKI{(dtuj)xGDuYoO=vtr(ViJLvgEZ}J2_J2G`U4sMN+|S$+I2NkaHVT`~(2ZAv$(N z0kEYYas%2tyUN!zd!&l%X0OypyCvD}HdLi(BpI3G?-eAwJ|Ia0IxrDcO8i>y6x(IV z1WTBO;3EoFlrSkjnu`I6=agyt(`Ulc60iu&zbv7;$+Mv~NCPm?#hH}R4c<=P%9=#a z!vxI&i6PH}wSAwIS6hg&PO;t!oi@%US>}afPXeG=f3WoyZ6VAFtab~$h zh0K~1$|YH933l_1U9+;KuFRFBHY5VnBo?UhE+YtSE$*Q{XvRPbUv=o%jXfjEQ{5!{ zr%clp5w!M`GHRA}FsEiVfJ(&a1U9+Ea@BgNRMHQy*|Flx0k5PvAj!4Ky*Y^`z$hp3 zuxcKENW1qte95&>lQ9Dd#N28}FkXan4h1|b8A9A#u*h(Wx8Xqw{84O@f}_fyKfg^# z;$53^-Fh5GI}J(?QS|-ekxnnm{eiL%d09fz2>119hTj)EWsw!-*PK6W4f)#34r(b2 zuWO)ySU(Al_Df`p`O@V$?|4&N{BqE*ILGduzWtI%VqpR zmJu;M{OCDVtMca06DwWYWxC~Jp-^Ddaz?GBQX9$N6{6Te5^zc%^1;u6>+KAr9TL5! zvL@eW6A}k%iWXqtYDbT!lf@xumxPq4Gj-ST7M8$VmYXpALXx}(x}n4z>GI(TceAnS zblPOq3#z$zkw@c~gF6g~MP61Npy^i98IDJ$gj43RFYDLs1WcW-keA3v+}{iP`AL=7 zO<#E-UFSAHvk*`IN`Q+xUe_MW~c2R(AmG0QScYR6`Ll9ed11lK_EVr)+2Z8nt$NkU1gi?Di+SkqfEx%)Jx zX+sqYzYe*@nRML=3;-P3GfPwChAc&2yMKo%7H}0X35y1ViacA^JESIwNEB)adhBUI z2gtMeYC6_A^2pnv$}~16?aB`P2pKdu%acgtxg?kCC|7XCnU)9jgKXAN7zkBq9eR03 zWl7c;p=CCCHe;vG4pMwz*+_#($`5EZCk7!~)!H#GQI;xZ0+RY9(1zkgB4c~n#I&hL zLGP!WP}YRZwNAp$r4Ss{B{@0Z0Lq!tE$|vd65X)2iRfCSOT-eOk;1vKZ`0&C#LIF2 z00`@~Ovh{m5|f$%?=1fStAHFRPZrNcY@NcHNJQbUBIgpUuqLG>XAgH>!nxA| zC80}E$Rra%Q^~lJ!V0t5s#J3nZD023<4yb`T=L|i*?7%w=_E*!75e5cyjl1J;XIV@ z9;XI2;lj4+j$HU+t=Dc`SY-Y#)-bHGM4DnOT_D$1cJ*pSfwB7`GVqvZS_ws&1QsXr zSMsNy5;<{#liFM7c9Well4yW*;392&PMa+WN)j-D86uv%{?X|ngBM4}^%<$=mu3E+ zf-tGP(%T;1WTyMtrj{)78dQXj%8=N(t5WUth`^T-)n8M=tf%rWIUZ21$$QTy{Hhbh zzGttW&NX`6x~aL%`S86C);vlpf=4dKPLShgyVf*vru)DqSk&;V{9SqWD)fmaz+9@eFY+lVN`@y5l~{7)pAQWY#{9u-mF|aQ zzvnD}we%cd&FyVbC$N{0{O6v6B>Qc(2(ZWi2U@$RN^^G4$VDF~YjF})Eo72OEw4r# z*AxlKMOnAr6p*gE`N5KQg%9}^=?ccs%dd4`_?XMFg}DruwcchWNvH}0bNO=T4R>|P z*<=f|IqR<|mrK8;=ic;!Ctp&yA434~FqFo5a}Nsj@`FDbL4&7XQu)7xB(&dhbyu`5 zP+=*dK)pD}lWOyZMeRhB`iG%~c0HhyTf8}G3Q2`y)tOHYGG=n?_k>nEWV8B&Jz3|= z{^1XdKx_)9hHAqVj_4qgRhp?vHlEQaPiB8m^@9MH#CpS2O571HWC>Q7Q!Y{tqt*d3 zN_dY^1+=ZhUGFR{3Q4Pi-Yp2WQuW0pKk0Ou@cp6Xc68}e5uJjtkcoilHA5z9B)5@x z9i`ayGGN#EhUwF~;||t~7gUDJMcxE1Q3){&>AA&eep%IyVw#wZ1JrSe{kG1>I&t~K zU9!dUgjjYp-0#_-9Ku761%rrrk?q%1f-Kf2`+cF-%XXbIhDF#djuIvYgT&#&8`B`i zmf%CsyBEz^jPLP7v7%&yIU=&?c(#X)56&)|RpLjSKzFBQGc0zL0P0k=Gji{G(hAZc zg;RE=z-Q#qBiNhhN?RZDi6Ln@FMa;Ne8F=Td-BRmILB5X-{!>}>Os@e*AmiNxF$d4Il(=T+(yV<<|012}zkuar00RCN&hWdt=N5`fzmNU}j!&6l{M z>_E?iE0@-B+46A$m1JmqA)5-^MD8F=)PQK^`Gz#{dc@jYh;q-ZA+%j-bdV~N;+nI3 zq0mf%Q7+CK7^?{MyR>kDqSYQ%uCaScux7*>Gp_pgW{EbGTJSxdaqR5_59BJQFxfjf zEGjcNqeZ6LoSqtXlF2G`rOKGfO2!g3^5!!HGee?*Y+LY+y5z{4He{)Va+f76#nN23 zR&4AU%c-fw=&$}Idt|iDv)GbZGbNeR4P8mZqy+G6Nq5eJEp+F>ZP_wZi)6W#>}LsR zHL5TLh9;zUyt0b#;`8D8cdENtLFQRSKh%XeQb5VlSwZQT);bVWgh`(|_Cn5-5T*H3 zuU~y(!r469CZ<|HQA$N}cJkM(qGh+6467Q1r6iMtDECNr8fR3O2Q#cnJ{k8%+gc5# zVn~-Pf|QWhlyV}q1H(G-iIQA!El14J+o;`gES7m_6;=>dbtH=QOyXs2xdN)(y7GrB zF%YB}=1EzqJQ4d1&x9};#0P!5uojynzyT{uDJ`3dG1nq}G;(vH&wMMMCJCYu-Z^C8CJJSfFJ@e zsVP_Hafku>o+P_Tx`j%fOtA76t3wKRJ93$UIet`3L1(TNGn&H=?Jktaykx8)Dq0kv zf~Nx$5tyw;B>w>2=uSst28m_U%Orj1ztFSpiCwjtQsFWjTCDO4mYFbzToFwxV>*cO~=Oyqvt74F) z1(brJlA63mQ6QIdcUl~5=@8*A&gCFxa)4!_w|4ukliL}A00g-tP!dmB{UTkwJ7}1L zAP(sau490Q`$fJZL-uej$gU;aWCA%KNP^gRcOpdP%|KqSrzn~tF6wnWn4ZWS%_R@^hClwrl?nl+40l97J3k1)@S_4Wd?#%wu zSa-M%dK1DmUd>oqT0sp)WAgo?z1~;Dl)Fe$8*7siI{MV(N ze3+g&Z->#7gmtuY~q^N{i<*G`Wsx?dS1PA8oN=GvsjZa6-iTf*Z^<0`EoibxT za+3c57Q0v~?G{|ruw;bLWsn)U<}!&jn%id+p>s_-EWtc!O^y;3mk8eptEFE4xpY7erEZL`H0HjM< z)AXdMdJqhJ*4i81T}Vq6d3zkAMm%g&kzwv%Y3I!AlPF-{tkisY^WHGa(R z3g0GJOv$*&ADDpsdd3Ld*3~LSqFmI6!mjY*oQU*~qEha_v;vR_Qb7lZA;I$z8flR; zEpK1re)5++NRcrqN)8vm2_zB=zNL%l47(@szj!TpEfZNPEr}ooBlAuzq1Q>~ftQOxe zEZJ6{hofk-1>^p)a)r5NjDR)r%Q{6zd2IUZ@(N}r48$BI2RBKp_==82_(k>bS-td6 zNU+aQGY|oir5Y(LT@}?V9_Otc07QL^Xn3(F@pLUj6Ucw3YgE!!ijv@FU$-Gzr2@ax(u{fC`wN{OCL4nv1G zi_tqi27ExRO}qPY4f)R!274_q3*RJ0y~i)lPmR>lPKwdnrio(DIJVx(;-OGAu1f zvK8ggwN{~Mn3cJf6rh@Zm#4H!Hm>IY~lCm7;P@$LogpuMhj32xZ)|ub_MgIWqG1KZ=e+yTW<5K&t>t=jz(HoS4O)5(? zNN*cRmn`pB@UvObDcq$vi4CuLxwoIR2I?TAYWJHe%`i(*t`MU@b0mEuv6r{M zw?bvMaSBrSrColT~gMTpsy{sg9<@Jkp@&R4pmjWUc zdtI&_vd_a_sTybohy>YZFJ3^yw#MJ$&puq%43z>;hDZ7L$^&h)mdcS8+F}DXr>BWU z#TrLywsZVdC{(382LnP#YUljJ?(6;;QzZ7bnzdNvN9C7Z6%WH+(5hXb2vUv$s-@_7 zG-w}*-L9UADVHJp;5kp7I`@US45A&sZS`5@OI4Q4lod7=FrsuV`yZrK`?=cSq?6t)INhjB@7-iXA)Y>gG2~t!8)R%HjnRGnNUE|@MYnGJCmaIaddXw#za4mvmZQ@;> zjO8R$Il_31q9zpjnBH=J2B%L-dshciS^VMt>Hh%X-6%8rkpz(soX7>u4}?p1ceRr& z(?Lt&Bw`g~Ukv;;kD|AKz;%@@6i~y%_=zRo@L6F=sg^vzKS;KMOwU&~)#E}`38>)S z-^4if%3sPf&EN3XcS~W~BAIuS_lHYX?yj3Sd9$UYf2n96SXBm@o;GJ>lCJc^!X5UH zXpNmXY|@O$ni{fx{t;{5`+2kWVcxV$JOEHutUXO4f!-g*?bd~V>C&Zvk-|Wyh!i>! z)DR5^Wly!6puBGxnCDGUNyq}sJUZ})8=K(uAPj0HhpFO!Xpe0t$0-<7l0B6cQ(^r9abv#_93V4zlEDB8Nht&UL0PT#Fzg7l^1-9s3AEDfIW-@ z;o(W0WKE`I#jRz^ip#ccI52N~%u?I=-_)ednJ!tzw45}^Gjw_QS2K3PE&EQlZDKPE_m0 zIC_`OqhwH2i?j_N&K#_^Mo{ZWS0+OaU2}z2Sx#TBw2TRdLX;#Qv?)}axkqIW2t6{v zho%4oO9ngHWFTZT0ZWF(6vS4kRmwV?y6dk)ieL|kxWToED_C3{RuxVm3sG zCh+aO(vgtQnf}Bif>D2 z77qp~aBw`_6nCyq+)~-C3mC$7>}x5>gmpAp7}o@ya*0`>si|?)y}kA?8e! zq=0qepD^N_Onma)&8E<2PM2wxQTcnS48)Z^Jh^=1W(1tlV&uv?+p^0u%%q1TxuKvs zn9`e?-Neb#(<2c~i6v7OtpOlCDCDpM&^Cl^Mcpb?!-W-9aSZ)no2TL$O^jet6ts@< zKw*sYc6K9EQXPzaTS~EL^y@UK%lS_;mQu-+V(sQ#TSsq|V6z$P03|e(jZ|6R#Iy49 zjKO$(RN7TA7ETBJwV?5S93RdiTk`mtn|P^;J2`3ms2Mh-^Yw~`&wCDHJPx~2lU0%A z$nW9kb#THkRE_y@?cyfcKN2ztIE8aa1deqyXMaeLY%bM{Ly!mogBJ#`UkX!5s{S1I zSvIRS9?HszHg%}<7PW7urJx1l1&QYMq%c45Ju zzG5f#JHROkSjkCBhk+045sS}vvL~^ckfzFj(D;a)?8e9{b0GnckOnRQWCxcBb|qy= z3ASo^wWy|0G*L>FMFA8o7Ok?^XS-~xn>9fQmX}hFr}r@Bc3iS-GPFn)EGnb-F-vbw z^ZasEEq~>o(hh*QJ~6ISP(UnpAh2&87lAX7tZBqTbpf>UaQxy~X0ZdHh!*blO%`;C za?-;QJ|yN(j9GR$H0Kzeenxm<6C|ZMf$0pFF4$RTEl5I;wFh*DECFix8bq4aA>49` z{{UsTK_bgJbLE4LZVgVQ&b(mOR9A*dZ%f8Rp^0HB97qDNMT%^hsl$b7<@_BGC9&Vp3`o& zWwOsDJ))&4Au4px<0#j_lKy;QO;Zg<%QouS$qE33q=w8h9=SuBHa<`Gh)=M4IAlnb zD5$K|iU-DFh;M4RFuz%eV`PVr{ z6fEJGl*<7xn4A4TfALVGWt&5kteYsYWLOhCl?AAHAEYLovOoRBLYl?MbDp@d1b<`Rhtvuu3Of6hI4k62oEW^n%in+_Yt zpE^~ZV&o?r&;|s%JE#LzIuhJS0wde9zO7Sam0D%?YsRKYAEZ!v^U4(*mE4aVi;c}c z{-=Z|wB445{{S!;hwnpg?Y4RHks?ksDIrQAI}*Gt%9VHWF+4YtiUOE|Qsf;eUrNT0 z7lM`|D{hxO7AjAqH>>d#{HK@Sk2r_y_VcGtwM>$!MJP@&ioc~;cmY=ga()o=w%byx zJd-datb(5C97_}6Gv?Vs-dgfOtY9YWIYf!-!j!%RcXc3<^EuI;88!y##f@n~6toaA zD=^{ca~klA19qE4ZMJUoycoieQeK2*UmEmczq8*;u`XySBq)HOX_A;wjDRJYGEXli zsKbJHVVgU=7J-FGP%Zxem!%?~-&OQw*k>Z2)?B$CMUGVFvD*F*kjp?_#zDJf+@O;Qm2Hd)p!6Q-pY@Jhj2F_@r5b)>aY zG_9WYnXIGa?A{+^8AElO*B5x2oCRH~(n)q;l(6B%vp!}u#_9InU9wkcEtpY5P_BPC z>Q9%+l839B^HI)O^gTRCWnL#)YV^y5G2Z*xk!6^fQ)s2L9V%F9#w-P1Lk=wne<)q0 z+_x4oOTU2q3-o~vqEGfHc|vWQ-mR8=)k&7HW+N6P>d7H0JlRY<;p+Oom%Zq8G&p=$IC1`fU7>Z~6$1U4aXO^&uib_;+ z1%WRHnl6}#UlRDANCeyFSflgGCCIyFpVE`%1X}J?XM}ou;FMR9T#(a!OaAC>wcm2y ziV*XB*(9LU0Q{hPDZ4Ml7fL&X=4kPv5lj}#PvOe@Pi1NeE>yW>Hxd*NqX&z0NS7i~ z=FA{asYL1H4Ew&_^s6EO00Mo<`PM3*jJw);Y-Av`vgw(lgOzwa4-j3jP(nKZm8CBI>gd7HQ`^K2Q^6pTRKt6KovmyrG)gS`ZuB94E@3{h}J} zMtAlITZwilv)(O6${%jK%o-X*HFk-^{#f;a*{>;@pm{;XP`M&SeqEAgx>kg!8V9Sz zKek^Dc6rWaj0c9DctxEe^_l+wP8BBeU;Q&3eLlB7A97z$FR_+TMnu297i|*z(o|d; z6q1wb&*2QpxbK@YV3}y8Dy&rVb5r5vrq)g3qyGRe>jh7>zH*<$M@jWrPyEP1{RM3F zvl>X>9rq+MiCZ7kgHg$k4+`;xXX0}4VwK8C55SFS$1a{VoclDhoRR+kj5FHye$KD? z1OEUY+9_w!Pv6D%kyRz;W(yC+6|DpjXGz2UreO8`B*T>Nj9XSh&L6~m0rrdPe#Kc1 zc5r{~{knKSy@RoT{x}{8{i0rn%N)P%MW-(_Jm23H7RjhmI}ierQb8ophBRTD^^{Oj z_8xrYgeFqSQ6vUB0;8Kd08Jd8W|8zJM#k9F{{SF)q(8~v_1%_61G8e9gN2y0Q_3>t zmIS|t2EL=CW(?U4->bF2P~_2v9JytmMmO%uD+HM+R%w$h1pffFAw0N41(#>+lGTke znOs`6`oo;N;SZ<{z{e9OwEG$ni9R&!cyA0;@1Y9xNK2nivW)xLQ=DqQjma|AHqNwF z<&b$CUc5L)Sxlo0j|hz$D|H*2m3nOYQscIiso@{*O3In(`GEqbFnHG--&abdOjNa` zg(Q$c3_}y1QM|qaFG+uZoheH1BGRP+{)M3o-}eP@hj*6~6U1_ab1X?8uihFh(vlpN`@l(j z31@HXI8qdxS^C9!Ww_KAh?7E18@%}pw1?UD#Mi&C7;3cIoY45!>B2L}B*$rXmu))M z3_)`YABqfWJwzL4wub{3xPWTVR!U|`rw9nKkLDWWO)8_4${l1_mB%Pk2tHhhZrb}V z{+@3nxbmzy$-C5bhJE8=MVe{Ro790FEdzc$IR0q<=3L(CM(w(A-j;Qb`I76vm08L6 zBi25CZwYT{o&NyjU;g78+juu*$+np&K_O|g1p)~KC`e&f6fV^<^V|(V~fF$FWTqRUvtR=^*`JasgUMQ{q6+iyx@{ zp|(YtN)CIo6USb>;Mx01M6$qQ*N;Cu_`tde9UWu;)F6eZ@Y6o$LFVBZyd4i*3oO4(xs??M|%p0uDMn= zF73V;rrHQxY1K~N2rzSI1EUZlDu%aoV?*DbDX z*ONf@uj3x~SPMm@fHMh51I^s~>UcPSU%)uguJKy4h z^_X1R=J_d~(=S$pD&H;Ow=1>IZ~p)y>UlAyUrkygJ4v%*&aUwX5?oh9ltyh<=clw& zVIp5>-uNNKW|i0!r726H#O2B9q#0hxrMRM6{eunXj*(REkGuuX&bBMg@05NaR=? z{Nr)1&In^s8UFy{2Xv)C&XgTV4nWN1@{De7`R)4;j7i4HZPHW`h>r2-{{Sx*P2Fuu zfGIEM*OXxUk8I{3c4f&)^dnCQ(ObUS`OB9;d1}M1QI9g?k?6h+=8zny0nQPPvO-UF z)OioD+9I|cmsHO5#W~@pnDB{x)w2l{4c92JNVxOMuAY_AO4R;s7TpdW~|ii6jzSt_#*90U@(B3~%e40B!N-_d_S zEUxBlb)f*20D9|`dc(YTEVLAypG@L+YPgV~#16XYqAPoD?FOkVHP`1F9hN^>FUfNU zbzqoyu~}c6MKNpHIkMILGIIXd-wrS=G@^Dl?0H>cFDyxa|qW0d%WFlnBf~O2JtB)EH>NWZCyp8u-ZEI1PFu6Q*Ig0qvgl@%&rkR>@FMF4G zc56b+lAu&531%(8@b~qIX7hJAsh`x9MQAkCu+uotRtv`pu_Z(ocNzM{{{XuG0Ejfw zO{Td3rF}_0=hi(M%HiW4R%Ox`2O zS?W2~BQri0?CT{!0QF}5$GgTk!48Wu=I(cyXt2#n-AzlrdSy=|&%o|2kKMI~?UWz0mJ?SjEB7rN z+_)lcgqaQ5ZPd(|%b4j-cy;rO3fpRvWR}1O0*MUd!v^1P*3TskDC1G0Qi_xGZy2WK zO|)A{Tjws!#Sw%jqrn!9k=hoeEVF~P60Bd;=;t}SO(*(`EZ0+=GH8N zP=#R?DkFyov@V^1vCHpwRH{0Q5@Go^D?2xFj)kM2Iksz9>&Sy{zSd_;O3FxbS-}p) zorngk;*8a)ckOD?PXgnaI!Er_;_@dr4>61m* zXGsfL24Uh9JBb{R<}E>%l*rpryPHj$64&`b4t#l6-Mk~{2KF~bq+hl>Xih0J6WJ`( z;aHZWrN)UNn9u?ZYY>g&?7C-JEn&OC1fT&@rx;Ql>Z9Eh);chL$`L4)SHZ@|3qH_ zS{#I3*Y51(+ENoaA!*=zzQQx)e1{l__H{yH60wq!6g&+_v`K#iF!QW(?AgT2NJ;}G zAS4a|WFg2{;Z|PK6@E+-(50%0NGeg_1!02W+8I`WRVd;KEJ$Li1QI1*=^R!v819%WT{w)=DL&rArauTiBJ7?|_hY4nXZW+8uBy6q}gaJf=k>CX)DG|jGTP6PhC36grw3UZ+ zxF(s=^n};W$wxr8Vpc#RiD#f;K;9AUo%nB+XSS}|m90x&GlZy=jC``CTZLJk zCL2q;{{Y0wT%{HZ3`{e`VC*B;a6;1PWh7C@$}?ZZ=EACabdTIjM5PKOqSA<8&t0-RAC;o?z#nUqRo=9y8V`Cs35cJn?|$v zKHsWRMTXFz0*UODr|y&bUx93!GHY0Zd`0eIRvSW+&Y#k(u_O%m0{Q!JiW*5;6beZM z7X)(P-?VK{bZk!3>y_bUOFbCZlr*Zsk~_6-5s!8cewL-#7iF{+9DR~y&VKa2>Ltk} zhf7fK8u8RNJ50Nx#Gl4m0)Q$|Sv625fN{(KMsb2mnjE4iwb&B%Z#MeGD{c1j&1U}q zGGar~oPFwfMs?nI#Oa@CQlu=RSWW;kbBSHpS)*ZgyB2!$wn3Sa}h8p>Y5~}Cx|`T z5ur4!Xzl)!BE>OjUuL9XP%oP(I0CtkXk4JkEU?{4LPur*)}Kg$Z;NGWn?eFeSLWof zD(1WzwXU(9uV0F3$&i^rK(4r#u4S7&JU+1`_-WsgtrMnLEs83aX&=#9uV+0jLQerQ ztaMNn??!C6nv0j9*h|R0=HG&4m@F|Xp-9XtP)9;Cr^FSQiSh%vz_oZ{Qb+#)x;$e| zS#F#UFM`xhD!0?^8E%RR2tOsj&Zwx!eu7e1;# zPBE_j4fbws3qsh5Y6t=U04Y#%TSCE~#CS$%**%+8qHMWnNmA6w!Zjsd$Ao#XzE7dBW@fB+H$hB$_fz}HBW zuI=u(CWvnG_L|pcw8}(@3Y#uw7g!WYQt+Hv&?mh4Fw9ac%^_2SvoMD4Co_nI<>vkxijir)z_^Xu9k7V9%Iu|% z$hAasK_TvxMG|W=) zp(KtitZl~@`4Z5wM3w`>IoXwWQVNeKm|VNKQkcv%;38pXut<k zVGEoG5I*qvw!6=}?wL5I%t9DZAcrS_0;J`XL_Q$5scDmBn7c1@iWLy#14kNqgWzN3 z&e`pZ>qOPAbk)o_jZ~tqAXG~ZL5C>Nq?ch^P3N>5-nHJ{jiSdm$d@K?SU@aPscTBn z+7X&d3`q8v*IUg@^XGXDSxGXrABUk1?RdeR+tSGVf46-t@_m;;0T!-t6J>kpf2wlXY$8LGnh z4SgYQM+qU;;u8$HVqtZOX$vgQpaauDOfQ*ah@S6vr)9OT0vF!VCWQ5)IE!-6a}7sA z7beCeR+~{^m?X^X-?YN4EybwZ;v2Ht!9RtYE_G&=rwW<+aj}uZFhH z$zF38B3YYBxJEEPyIwT&i1x&Za?qqHKs3c?Ou#>VVsl}#0vuKK8pPbpy4+QoUp7=% z*5BLFZ$zX@#bzo?uCB-P8UsPk$HPeNt+0y-QhzX(7&C&nzxV48;`zgbfb>KA!OF zb4UtmGKc0Aa7J+HI>-)f=a;-b8JI5`66^-jOrIiL$%(+V3Z&^%66kNcEFpt44FHFP z+2dNvVjeM~@|?roDV>zx1j+V=$yAj~!;8FfI7?=8eHy1eF?C+HS{I0tE)+Q|0XzgQ zSs4~GFT72*Hfai+5Lbk!x*6D(CbXu1C!mIn-|sW=QoBqA0})FRQrhcJNS9x?AW$h) zL@-!(cp<_-3C@s*mPPnuF5B1tJ&_~_5_iyH3QfTRV6sCx5=E$_2v znfbsZWaB7zyJWIJ&f2xoK}ik>VmQNpF<|&8Td@1clWaj;w`8jdf`vg~encPS zM6fhLc5i2qBs8Sq1id)*;}bhHlEMvUvYsRY(xJnYS9b00+0$tJG5-KJ5KA_sIPj)X zVcR4YEy621!*>#brniR96$opp#FMz2cAXvNGof$mQ|fNrjV4Ah1*>; zhwYPGsnXLm04XXIJV#FaAtuvo47*AUxrua=`sOk;XnWYrkxiOVl7Zbzu<<0ATguDu zjL-3Bv+`z5l=Q-uP|4hq2;u;zLMY?0HgYh8W;1%%&q&u_5Id+%qEVex%u6vPfdTuc z#p#`5q}komt!xmU^JVq=!G3MUB!ciz@9D8Y#ZNY zWKNX1b0vb6q@<2SW;yCP#Y4G$(@e7~v{6Xr7&V^0Y5jfnvvOQi@qgAfMGo&+}#+QXKN|ZqVqKqbAFuY4CTwP>JI2pHwdz zr6`}uq@~ImfdSLZ5vYxeD)O>o!-+5buU9;y8hkizixsc&WR{Xh6k&{{jK}&+Tz7`& z3a!G{CLhd`f$2cToW~tZWR|A65t~clO~Lm?+ikK)0rDA|!vyr%rX@itO1T9;geJc1 z#d4H_;}S|=T88T=s<&yn$(BXTQl=?kOaLU7Zx`#v6!k5c{4!g6ToO@LDTC6j4btvO zDh`rJ;uT0izCDneYP0ro)=;czQ-==ELd0jUOx?SUo|$KqC9PQ5+?OLWO7-mv@wrO* zW%y#db<-#kF#y$KYvU1A?S+XdV>kj0T~P}7gSc%0=Sfir3BsV9#dD0YYmqSK`R8AA z8l%ti0OLo{yQg{<32c85jH>Dsg*NYqYXq?Us8Hlao*jEf&bvL|FzBv2(hW||O*}`D zi}3q$4VxcpJ~%A$(!Rwcs5lg(^L-(sVtyi~-vmfhzReiHT85}iNOle583z8@l>|A{ zK5=AhKJ%>B8zB{=~iBiT=nvf*G<_Bs#5Z1Ot$znrps9SdGqZo=|UAL4Ur7a zDWFLA@sF9CPM4cA{p$J0(eH&_v^KlCYLuKNRN0d8XN(kuf^~LN5M0sTv4QVPo3^wr zSO*?80NR{Iy-yf!r&jejjamm2a_FuRy_nm zUQU=pOm6Vc_xVJ2_q?&F;mC@?@)lOM28y5_Id%KQ&grXtfzb zhe5YwS7Nq4eW_`cB_&EFivv#<{k&u7p5VS4Bwg}*dr1xw6s0R6>(lXrw+Xo`HPdA_ zn@$v|DaSEt$TfAy0qgA<_kRBX64Ng^rbLAqR%vP>AQm%7qmjcOD?MCUVc!1)L)&NjJ#BO_`^l2 zSgEF3bEyf}nd%cd;MHXasa`H{r6nq_U?HwF8!#7wNoWj-%)Vu_QsL*drZF_k#rNz+&Mi>qdLD<)Mi;vfv$#o3#!BJdYAI71EjeA(>DQl>2+ zjKjLPR8Ek-AF|M1B(Xht}y8?>cv2kd^)G?6&}^^?pS`oCbV@9xJ9Y(>Ah4> zbWLn|jGN2r6vK%zx;IXxRE8Y$i9NSxWyq9N&OoDxvE(yTD5p7`DeTk6sY#DN!5~X%03!OBkx)h>#@p`*re! z_mzPvNeTgoIfrkz(miLiYY<(w+Vw2<5>F7L^8@eW8FDHg7E|`k)XV&A#i#O;O6;{7^AMK`W!WU{ctX((@+Vdt zrA=|lHN;a6LUnlLk>>%FS`J6FI)DQ)a22FSRyynH0GTiC5rlx;w_j+m7-0p@xnqZxNV54P9ef3a^|!tk$Dv4eR78^Z7vy3Lmtg-Z0Ra_l2y%zy<6HW8!q?cf!_*G zh&^?bG^=lA%LL892RcS~-~Rx`MVuhXvY-`Im4G;82;-Lwyknt@9!XV2zmJfqO(R0> zpTvER&nZh%#WF~8RD1xS8uE-YzVC}!_NA#PSwy1a3Ql8B;QKUC+gZFh^VD$?+6VJ* z;v!S+8T!X(79FdTB&IFAuf<&VX*_^Jox3xgVHK1Jg|LW zzySJdFNAMs&vlqWMV0n7>tq_ zS1OM}Niltq*+nU7TIrJyUb-#SHw-Rz(Gev#dYCRLt74r!AqC;rqVM1%Zmkd9>eHb)~}h`im~ zN&e5D-WqMYw32^IMEO_GC_`+u;^i4!M=eCXNNtyO@^yZ_p~_C|WYhC{!>E{e!Yk_d zC`lmKNL^5VJl~rKD|b?~Qiq%vo!+BGtbg2o@d=l;vtRQVa=SLNVNe*1TB4p=`jRud z;iSof&IFx<{{Zf<))h&;RN2AO?`1<0Ks>VbBU?+bEiG%trIaN~NG+HJw2E(an-nb* z<{@RUryrVB8_==nMvGm$6Qr6NA2_IQE3tMPK%XoUg73hj=Kdcz*BWRK5tb@88fXkB zkwz3BZn?nGvQx+W{{SWss^r^IIU#5ujYgpGA{^6wo&pyrh2zWN_8C9nyGZ{4nmr@G z;C8S2iS&oB@w37_FXO@&MDd@)>@pjk*Zs-#j-v0iYk>Jf@V@y+zsC7M(l5n+h+*t4 zU)qmY7iVey#QMYezQ+jaZ=u2lkvvD}h{~o~zv(B}uXq5o+D39g@G&X>02vU+w426} zXGt>@JT>%yZ6T4H{{Tpg-ZS-+?+o{@^3x`h5XXQZ#47pTX9ijy^EFR|8Fg;f zWYQHmWW7i^`s?zJW?fH|Ic9{_a)?*N2$6c(Oti~sp-3oOWHF?yJ5|yM;PIXAkA)!a zprva{c`zS1-j`ZVjGE+)9~O{ zf`KmxDIl<8lWXgjq$%Eh;}>j9foUqiWsr#y(xO`outWat&s&xl-3LYazl?7zfg-A)YPmviMrHO|~Ez>N3`_oKprq%_NgSi7uW& zs(f1a-p=Y|T{jnHWEiGSn*oiM~9OLirY3b9Ms?kyniTi0A8K> zD9l9Dk`$GK>~RJ(@FOv+Y9jskd-yHJ1nXh!ks)Tn+{56;Hs9MUIwYcFaP0!XNbzM8%g#Q7 z+AI>zM0ps%-v*m}EUUGpNbMzw($==Bk|rgRp~&DQfv==(yPs`t>Df$3Cqi(aLf{E{A&pxQulmY|K06eWec0i6-wHHM1TxRFlbe__(Xn#| zQ;Z}|$4+`pjFOYFnG@}^5wLeQk;sRgN(4?;djZ!H2u`O;NINjPw~>Y*U{ z82c?|*(t!*Z9F69x5w_`CRnYCw-OASV$`5V>6j9bq&K348@zL3Vc5iENp>?$$9^)> zq^N}x;vY|Zs~1rHOv;-Z zf38H?a}ctUg#!K`U4HK$P4_Rhh`cO_oCwAMMAYYnU+Sh#*1J!2H&bZ|YhOs!^YiMLKN6Ew>u$WWmrBB_4|K2JuA^JKO;awJNU zqln8wQ;SoDAUr@et7nyCnJ#p+5M?PVZAc%PFIp)s39SrVmsZy%Y7;RCQj(zHfM6Or z`s{n(i5|?QFRjR0mv2p}Hi9JuAx2d|?t%!-jw(NeDoKmaWo6-X8ifY)0+G|SAb-nP z@;_+wt)fnN7Ww{IOp(TMXs@l836*S6C4|(|gMvwJW%AXz7$bOF5k7pNnG+1Pg#z_r z+7>w%`sgCS+Pkn?WeJE1OvF?Y7=kJx9?$K}wIl@sCL}V_21HPw1EdUiWl-6>>wjfLTKbB3`9yPf zS6!@0Yf%2KB{vK&PFY3jyUI?A0KzLxvPu0y5ZG%Uz|9-qv)%}qEmlckXk&@b>clDO zt7gMf7FCAqS7%Y)!aaTcqQX_SNTwvm1*%EONrkx=;hE~-v)%&MQ86!PbsR@O^w;h0 z6Md($%}k}4VB>D+;zpihk&8_eC2>y;Ajvm;qp0&DElR;~D-G4kpE66@5Kyq98Q;3W zi_)&~VN0mZ40QbVXEz~%)6KzCuc6Rk5QB5ajP2m|v19Yx#+ z6=uyZo{@hWnH-?WTQx60ka&i87s4-TN$+E7S7MXfrc$PNl9CcC0doFcu<@{4V4Fpi zHjE`0fuex~F(RO`>zrBFmCq<7nT>>0yEIgnquLZ@$xaDC{+a{n2yK_NV%lqZtz@A; z<)qjBM143!w`4XnN*LO#!kI+7WH)>gkwD)w&LyeYs!^IGQ+>;HRU0S0X>)A?&wz#Z z-kB6L*TA^qBGeX+P)(a)WhGd`Mk@E115sFam2tFd$6_38ZJlVL7(+B?ZS-A8#sW}~ zSw%r1o!PSUIX|>$``$=GRJ9fWIsKzH->dEBu4QxXjY@Rn3(_3U=SjrYP5wv^!<~#K zO`?wWk18P}*Pn+7kzRY~v7*o{s|`0AQ0!QhWl{V@-(a_JWJpR{r@W)YpSL*euX55C zG)`Q!nSg=|0$n)~z=KfHmGWZN)U!#iRwlk}hzKjgL;|d|0nf9}y)&BLbKCy?XV5`JDZzV%odjRh>BIQ7+!G z8@VrOc9i3kLXhM;YA8qEEj^~)k}WdKsi}0hK48$peaE_VS{GBv;?MNjH!jFv4nb>X`y~l z=O&P)3n?pKz^$oCV`z8Kqhl z)fLH$#D4z(-d->fBw|t4t(I@+&Ji55llBN587tYuyG{8=RmHfs=MrA(=uSdc&- zIlFR>zBnYEGaQu@J??Lo$#%<9CE;D7p@UG-i|OfJRE!_Cn{77NHB+Xk)T8MMHn(V3 zI%?LkNhFfx^Dhjzqf$Z}IHgA)gmF>f1Ooq7`PRlP#u>#1aEF51H3j^5Gl1 z;Wu{5nm-+C10mVCs7gQ;cHu`3JfkIUBW9*gwW3Nxm8b%9WVpn9LS33Sr^E)_qUO4a zB{C)yc5=lirf15yKqo4m4&uid^WyK~Gq;+%4V;lCO0djo35yy~)hMSBRm7yWQMF#B z2~y?$U`|Jlu@%~_wkuMUlIl?;o+O&ToHpE7`AAVUe8KxbvaCUAy;QX+OD=OSo4h&P z*O^m;;6Hed+O1fWNaI*hCfk9CuUdZaP~cl*#koQG^`tdgBob-s3#~T9;e5K`47Q8F zsIp5Ba}5CEfK4+zp&>8N&IT;!N|<%B-5__Bo{9U!Y_t`0SiV4TeG_1liV=f&r~+)mJAO1`PmPnrOpA&-gr@{^XF09JS1!G-W_Y3mD-)V1yF=|uhO@3c*Oye!=e)Hy8m4V1g zzc7BhvWv3lzPm()J|IO8Go)mk4GEIDQ+oa2vpS`;`kKRhyFreo@UKnJ+846RY;~7u z`*qjO4Mnby&G?GbUb@Z(XK?z#Y~ULoXIjn$Hv-WT*n1!|`}vQYNGx{Rv8`(l*3I3m zN4Akys|`mltYOZQX+Fl7G3sTQD02EmCBFUG3DSztp86^qGSrJ-x1526a@1Q^=$}Xh zrt(UIDI`--2)Z3+SKW5sejP;%1QA9&LHF`Lv8nbiXhg&XiawoxF`0L>unjm)lAPVs ztu+xp-Dc60O9@&?YQC?|tk8)tsL?iSSTN^ew9`m{UE4q#Fr zlWrJ6h(fPEDups{z*#9IoR|l5P@7Gj? za%G)j;<@Ce2F|WA9^0L{MV47p6|IgG26B1i!X;pY97o}v{=rp_%$FlF9ThLaQr^q@}>4@vr0-?l*t1X zHRG1C>D59zVwD&i?D&Okus_pZIB1(;Z97YtYoB~B_- z6n*38Cj9peXu79%bCdltT3ps4E6K+t0CLwyV%R2vvW#7sp;ea3?c)YpY|O>p71)Sp z*G^hSb}=37+ngAgZ=E{p-VL+a-(LuRx;AWGeLXl5X7Y^umW%!%IP+$^_C1t7* zlZkbGNJ>U|o&peDdpxj=GSiA;zbZhf@#K+GS%o84{5)>(S!5Njy*_1DrpRc4$Y;!# zgtiqH&M4!@6l2Ovn5Phe-@hP+viDl(zU{3)ReX`Q(B=M{z zjX{Yug;#v`P^>koePG#3s4+nneV)~jg@`c2bk1-NaP*mwNq{O!xWV&fqGC!G#2;vF zOvoA+8X+JV6TG$}b(vV?7e=Y&;S274vr4-8;l}j4O7N}*hZ6vd+c;^e{+X2Xk zOM!cX)iynj3sRxB{{X(knM<0ikdj-E0p?>Y(?es)AKpIlQ)W&OL71UI!^SHOnAusj z#hH^yY{@xPasJUWI zQ&w7-b-!k;^TkpUtqTDaj@xc}Vx>%!l@&`}3SH>$^8m$+iLI!P%e`9>#2F*rINFYy zn!Ev4GO5j8%lLmoL?&aMuiW&+N|`MZz*mDp{{V;W#z>cj(P_eGrAlNgB(jSZG%hkf zEphZ%r+;dy{>~x?uN*wlDtxr;tlf zETx%UI zR@EDHRh^TvwreV0VE_u&7wq=%EOS8;CZLf<1Ovk?;vcnJG5Ct8mu|U4c3$J;mRz!B z%xx(8`Vr|T$l5KMT;u+Fk~9gR_BHE_GmYNPAC}UuGGYg5xbF)&qRPO0 z_(F@nd$SQq$WUq$KD~a!9dsq!FASZHmA0qy+8@RPhVn=Dt`l7w&y_K-%wlvo`^2E_ z0<6bMB0OX_(57Xiz_my~- zVrT#WMsWD0pNed{J{b%=RWV;+{t;Ww&q#;XsPz*5uQE} zmHz;un18y^zhp}tWlu8~q}i?*@QkgC>JIbI=EZaGK-on_y#3sZRx-5`l9GWWF+$Ry z#3?5-&I2~Nyjmp#3?#JJQnaz5cL#xhvzn3f2Y9=^RLQ|MRJ@sGSjvA$PGIzXj8_+x z&xPg(qSMBm?7o%OH`e=aTQ$?ziBgb6+W5>4}lU@5V`1m=Rv|Un@FuFp@<#LxbGUllt_D)>XjsP&A z5KqG8tRL|+qOJ1^bfytT(>|#M-8;sWBF-erl(eZS!juFWD31oAtU7K7W7TD|D;Qzjg+`Gfv~LbT{a~H~6)C05IXQIm$1Sq5Y;e|qMP0RfG^;$(YLJkx`iP?_ z9Q4nD9`K@m_GJv5_2mgwy?{%0WT#&U#Pt}TDogGRRTG_^zU=md1tSaoq>uuVbp&#U zZ@|m`)cOdhuRWVnn?;d$RBBVlksf|g2fR0nYfAe$itNkOwL1P_GHYXwH%HLKK@@zyZUs(+^x-_Ru*^JTj- z!)9_7fQ>5!%)2b7`y#iqZnkk?NgUk6-HUdr8L0KwoMV>1Q2CCYUva6W=1FGkt(fSa zBGKgRB!iND%rz%q2>nNuevqwK1k`}aF`hk7HU9t;1d=14#B-CdG8^)|9G!!a{jl0C zbJD?|u5hwe(vkU)(bC1#wC{;ZzG{Uzzfn-wSv)=9Y1nx~C-sgaXb^SvgOP0qBJtP7 zsKb-olwZlAPE09#7cYtRfDM9`{;yLGDV$(Gh$C3lz&n`St=-EytN#Ea4SP#+$+MuX zQxpKx6;IdF5$%TZM37R0j%I*q5L+$VKGdNyaU?wwav#5}XUQanCjCZl!cMg;q$ypJ zjR87vJv3YUFS{UwF`*+!Q*m4gmIG;&NhRBei3nTdT&Bj^I|$iKSF8{I4_1>*Jj%B7 zj;h$zCO0f-TALWZ;N|HxUq75Dx7=%%oJyWR6|Er-*zamhoHi^=IV5Icq`mge(`+oG zhF*vts-dd&i`b5)n@^J`E|h*kZK&Gm)`cwsU@}6O5I-|(ChcqS!A^gJNH@wf*BPZQu(dv&`hw#jB(#30s% zst+IHGLHCu4JS)UnJpN>%p^L6YC!jGa*g*g`63ClUqFhb{UYN?ruQEfcDr`!lQRP7 zLpz2b6R6X!acXY&;e5}Q7l;r*{{Zy|56P*mPC=t+{6OwH&v;A3fSGgCTwrD>;I$7Y ztYmwt{Jn0KE>cjXp~xDhgs}wV8<#FopEjm7vNDeEB-n9<8V7UV48lnMqRV6w=jHOG zXx*LNw5cf!kn!`@?)b8{S?!i(-UUdI6jo4-%L3d<0O(j%=+UI4{{Zn2x`_PeEmE(3 z>wP0$k`hXvb3R!Y=FnYuP`~yo!z0#F@Vj{D{{T}saG18?`Hu+tW4FKjL2mU~=Jrmh zm~OtIR~KvI~72mS^fhy5ek_y(nV67J_OfZTzJJb{{X~eddAUh7E~*_XV3lW zcNx`_hK#}W(^-5XS-TsZbI7X9)jtuT@NBt9%iaEMA+%mLslVMZP5%IG2OS2HU7Z?P z0b0n85_5WTfk{*J(dpKZ&{e>ez#;%GL{mSfgc1oS!$?#T(8P*3kaZ>pW3m+<0BfW> zU6)I;j$RqW-(t2H&R9wAq}8<{>lG(KQ5(B1!bfmDDzBSFfg3r6FPesCEs47pnL(0} zN5At7HrpUzIrY|XqUeCC&O;DRT11B7-bDE!kfH$5>H9!0J2P-@wRn!tkU=m>5OUg` zyR=WD)=G0{EDxL}*rg-4m)f=*V-w`s{Nb=QU#`6&B=vbj+rdqmOM92SjS?lQLXsBl z0%%*A<PS4y>g1)cF=3`h|o!iula;3 zn)@_a8>rjtBuZJO7`#-r>wYtodhWCos3=jZ3uwK@$+Fu)0>1q`8TgL6{i3ee4Yw0g z0atiZkzq@_lLem9I8EGeIZe-8xPUp>gd&^5+k$H(i7|T2{Ue54N6h zk1qY-T4vExW*$XrBf_M?*PWq3B}AIGXWk=J`6U_$X?O5vsLGT(G-%rSjG>S5#MGB3 zuQ;ae8+gPIIJBfrpy3r>g)}_Mv~j0gdiy!co96K!mp@2!lA1#xt%;D|w$|p5wC9Vv z&=NK}oH9&K^?k1_sH$o;C zMbzXqVRp{!$y$&IqlXPvc(pcvV#0LKmO?pGk-8&Z%4{G}#JaXz{=U&_Y;M9$w5&>$ zp6jtwPypR$>k_Tp?$K6)86_yEc!s7iBFK=C zkW^C2QO>nB=3CHkhZM*%XB7UG)Of>!Cc;gus!=dz2zWmrSmI{K6kw#P1gJ!d1Qh_9 zsPa__Ei<8Q7KZ!ge{{uvY%F3)dfG~q$;(({zU*Zz{!p0=LK$-))HEZIVAM>k09IHV zIy-_N5e!>6JFxnM!%_qs4KNu-2L^#Vjt&-v%8=E8eW3&ZhH!fGg`yi7fY9e>+C`_I zj5PF^ z!>(ks;wE89@(K5>SVqx5{+aZM&%?IV2{Pu{lqx0}iG4u;D0yMij9cp3vHh@}JYu4+ zy$zFh*n)|ckNRc=CE8EuBd-XY{{Y0}`(OuZI3z~&q9xf2O@h^;dh~-u#cMnSO4YRL z&}90>wu95V`Nuhi9%k(d;0F9x7#BFA(i>B|MQbp@s@=j82~x{y z=ALldeC_C#Dxyt84B``S+DlEWUaib|`p6S-#BxtfhCS-|V0Fc6&L5bQ_=$MU6 znH@@_tf%CJG(Xy}d|`pZ5c|tyRHEWxCpIMK>y$XE2~6@1W-w;L@;g(K`7%*UZ*OyJ zpC)ipT+B$oSQeO?0C`MFC?}eDMO*Nbz5yjOZp%Z3Nl`KhqsmcohAv$SIUIt3YExg& zw-O3XL5w@`OS`GITUu@Qae$>sTY$;L8xylQQ&bbLINOQNI9waIqt*Bb)~X)&J^|dWyH9D6g45P_}wg(mzHoV zm);|@_Ey;-oHGi?175gi63N%Jgj;<1B81;#IcaC=gT?GZe$YDen?; zdH|hW^5MN~TNNn-C-eY#2xg-$qlJPuecOB^xvtrY5yj|5PSt|tGM>BzAwq9kQnE-$ zqeRZnc1uo45TaT|DH&sjT|a(GKQ2!`=Mn}icBN*e2s&29EmczAgVu&81_KVopwuZ` z^ESOHAfc()?mf))yxoA9g=0k&0m^{Y>*@3INxK{~$(J;Q%o-EEqf9_c+?D8F0Fq`iEGq)T8p! z8#aeyWX}wwhvLxrDm<|p9thPVo4$&gcF0<+m5`#e=Y>@R!Lsn>4mVEr0$DbRWeUmk zc(MYa1?RJprVjEFdBVIYMfVL(z}=foDqsZ*2hJS~&JkPQdz?e!lC?`e=_GuNGyedB z-VzUWVPi+k^DXs*y6#Tpzls7(RLS0Ds$coC3I70XVO)*&N_J8fpAcFp$`83ImWCXU z2nm!9U_=g1_-xveJfnwvwr(Z*@7kJ3np9jkrvze*Ob z0DhoDHM4kDsnnE=J|jrtX6c$%?h9-G0H=Y87B%Z=GE<354BDFb=M}xo_UK1$&4#p2FFs))=;e==Q9ijgQ4)Zl>#bu>91@2+Ta(SU9l zbRv0R-Qkx|1HotN*mV3$chW7dy;tgAgQe5??qz?od#{@_yh%|xsejMy7Y5F3A|-&~ z&V6`5tk#Lbm?$}W!G`|;m@`aek6hA8Ta#ZnwfmgSMy_+=aJ~eISwu5xX4FE}?E;7C zhFjL!S6n1O&#q|~Y>V|dsWw)d!jw)GHj!T1Z-l)|Y3Ua2`*bc~Y$ugE>)sn{-9nCr zwTvtA2A24e{{XfB0707xzUl47Qj#2+pDM+(WSNvy`w4a%GBB|xPF^uGM$;{*k2qv{ z_KkAq_EP?W+zEu~j5)(})a%!TM&@6Wj)D@}CC^rQe4{3B#QJ~#090ou@QnbVNT=Jv zb1=hrZ6K%v!T~R4lxk0`A1>nooIGO5s_Gip?ZXcZddr_r@37TKVzkd9=L(#HBBF&zAnq9oE`-J9pBZ-NpD8>M^FOyu8Kp^&rD@~roQ$uN!h9B29)K+|xg#53 zR;U0lIbs6wbP44cGDHL-1`9-F4=)~r6Etv+K-d(0zSwXiY}jx5Dj~ISTPjzRi1`Jy zQ*ln3UHj_sH8J(V?6hLp(W}W-9G}v7$H;A~wEqBEU6E@K?D3*e?Dib`=MRdc5?(2VYU(;u{#*{3FS zu%TXUt29P$i?5EkM{b*8v#g-e1m<$jPnMA+yyRjI3%@`^qLT(uDqGUR)c1y@Sez31 zMBe(alZX*f*C>r%2olmtsM+)K)-l|IT zD$(-g0>-30CfrFS$L;ci(R;H*T{pN60rrCC-r!b`0YRc_c8!B{`StXMt6l4h^FP=` zHg)t*-qWMuBWf>-;=4*so>@#iV&V_=s{$Z70Po7a2*}LqZ;ZyL=u`yMpW`WNU zpI*>y*|FHv2$pdY8MAo9l5t&*racB}E86I=whHwDB}R|w_lJw#`UE##P~T_RC8a(2 zf?xVeKhQr}!fVH47M}W6CN_Lqix0eGc@0s}y5wDS-X$t=7Uj!%IzcDL$Z++FDn+Q4 z6>*|N}eOqp|1Ln$HKL#T-&?!*w}4((s%?-;M)XX1)Mn!7U21T9#kg=8ED zPF!78&B^fBr)#CCiD^(cxsE*;>!xCHp)dFz6Nw~(YD@8jzwtEGVFidyJYmvmDG_b4 z+IcoekhSHo5MF4kzd%QtS&HtjeJ95Nos`m1tl*qqFY; z3Xx)owup`1_okY`*M;x^&Zi*^);R`Y=3omPZcDMtoW8Ivu&{SRfXg_L*sS)Q9QA1$`M@JA@`8)lc6xW2@|cEq69pMWVmKJ185;?Ew#h12x2LV zgvNp6cuox<#3~37&|t)vAxn=XQ9y?&ao*OA1Qo|psImqXKtX{REencrE{?o(pEvnH zF;+U2!lW82jjY)9%9-2AqZgz}Hgj!JGytQ8VuT!@luD(6kpPYm%X;qST*68_rVyKm zW6YJu6%k2WEo+qQqM^aQP;w2ezbCW9)>aEdkW7H6wMm8nX0{ReF!@1aW9P5)sDTT4 zNkYrVYGt9_PIw58&A(^PAWKUm>OqMuhhb$Rs;P%`1g41$IYJzzAc%FQ$NLHhcrXvd4S@P7&PFd42q02a*rfWen z6cv~U$}7T>>>801k+(=Wq=;~nwX%r=6L`Ye`#mLDq(UjX6C}F^c#Y&NdeB|0~nzvl`uf*BXq$D5A0Vr5{rCB{b7SkFK9N1xFUPeoTfg`YQi@evLeKSjw--2ZESx)W7^Y07pe`h9I(t=336;_@iw-b zXd}6p62Z_8EkzSk!8H+g>?Y_ewj=~el7zE&u!pBS^*%8x7G^O20L$Z!F9tD69jS1E zb8J=kDJh^pXbL6E{@5yTc;X`m_-37OqKi`vn`M{%qAK0;U5O@H0fClNPD+1wi##eK zJHflLAq`eh4dN;88_pktLx&8v!YMyfuhaAG%CFRh{50B1Q*4yOxoAqi^Oh2H{{Zdt z&Mv9ba?&Xs(#`De8&tDHHbN$(f3aX6Hk)1z&MxWca5+Y=3O(8@sXEO5{{V1uCYSPx zKjOb?Osf}W4QDJ5`%_co^z_cLcS)MS#y|MZzVT0yCI0{-F*h}xPa1j{t%#jAJ|=X& zzhT$lyJrq5){-(EnqBf$Pb~+L=Us0sxQb)pw&m=u`CMi?&#Mn$BIA;Ku*gLuW$HP1 z=9Bn>QX`V(yarjUDw!|=52KXWonfPr%fNeHF~*5SSZbxgR*Ntqpn1T=*bY80E+NKE za*F$Fw^uH3BnCftsb_5Us=}v}F-$)}d?XB*Ic{v;JT&o^AvL<`N~l0Ew+}Qb9M@fm=G+GVLEP^b!c@rxqv-hG;H<(M4l4SPYlSu-+72f#&bdu|Cpl7rzx zPeb+O@l{6UgF~qIC$ai6{gHd2U#NP*sdk~ndd6A*0OjSnU*(%Ha&p=AN>f-Ai!J1g zrzpP>k@WhsEtL8y{#>wsQ&e`MIEkV&0&Ulz%4IwcH|60^R}cYsUSg`5TI7@MLGp@d zukdNF=ZF2qoS$bxox)$hLtUe1WEzyDIAYBi-?zNU{OT0dJwKB|X?JbpO=e8;A5y>w zRIo+)AlFEjo=APm`hLgRbqVzlhGoZMNvTJur(EKYM#Njy`KL|we@T(hKt1D0}&@^3Z z8znV8c{4k>lcsOk8<)a3p>jOZ>~ZJ}S)T9gifz^@i@63c^du2Q82 z=Jh^3e%H*atqBxJ5TGUtVV5sjX;v7hkb9SPGE@1I4_#*nFTK_GoeE^|XtENRI|IS^ zc5$+6vroL47TBAcvPloZCDvr|f}~kte`f};#rH-TWpB(JC7CEe%7DC7^th&~QBUZB z-V$uVssu!~w)hgTvR&Svyi8XNx8=$v4+!UF=^9D*#~-pA9F$k`cIOc!BQCf@Y~AMu zE`k`;YZB|XWCBW@1BGufzI2eTC1%)OU(A-5b~|n1o<#MYM}j zKn18GpxJ%hOcO%ZoFN1e&MpZ9DBFjnX`#x3`mgE)vI@Hq!U$S~C{)NxHaZd08E_E#?7iZ}g0^>D z+tS**uVyU9$zTYyUW-W+EgAk85K>A=rack|cs?VOMj(`h&6rlAS2ALWb(bznl2x1P z`NC;-wb~})B(7r1moDcr@9JO1EM1$~!GxzNfV=VK`@y%spxc7vND7p(-Z>u;r@ulP z?~A_)GS!<<{o-ETs&x}3@YTMt5xlK^sjufjtI+vZge#UhD0toF%4P+nNvQm#zDK5u zb7gL2;R#ggjqc5h}|eDVVpIatt5ap0Q-@Ce_QbOA^q^UpncWRyKR8Wu-=R$5m(!U%=0t z4*DD6*<4=NXca%P;pk$Y-eskOaX%>1yIHb?2WmI(^Wz!IdsY&bF7@HAanZ*sR$<8& znNZpl3DItBjYJtxBuihE$7t-b^g$h-gA}?ssdkkIS z!lSKWifZ{pq}T{Ny&<}7)Qrj2AzMZy&3;gQnsEl6Q1>duELER}2t7D>2oTgs&dF_Z zurh$8Nlws>NC&D#H9G$Q!r>%58!q!!5MMZ!F&3S#YJmMi*RH%Fu6Em`Qx#&gw%+7x z2rlb+#0%$0v8k2>?Xp!`6VBR|wtS*FkDM5a#(Bzz#JaZ|vOkWPq^(2*rPyjo=hb|o zQG9I5WX)O|@+qDp{{Rd(iAAs{AfUu(ctxeXTOJ!ixGJy3^E^8A;p=ib;PxE@Ys%D@ zkqMQDMjjOQiIvki5-jF<4zjEg{{Y=m`Dh0aVj{vFwyJ0Tj!_vRVv4-kw8-XsBaaDl z$?WyKV|Bq^?-On&ODQEpsZ}mZ2kV#I&4=E31QL9B5y9b`Yiz=HdFA$qw#wKRCg7+5 zyY-}Wln)yjw#_|iyHcgfnvgIpET#;~=kJzz!P^&T@07a?R5hS>hPjiByBwlj%-T7w z94d2OWJQ7S-Lgj4c}q)oKdfbX1|ifbG`|`y|svB%tOW zJ}1MiVtuf`6L#A)u3J}5XtIE0#FAh#r#5vyLUF*ArtK@O44Oano#Tzq^N`jIh6#^m(NI$ z?z7=4={>6Li<(L$sLMcEMkSnqDMlg&YzjG&971c?ak3P=GK!_i4c&DYU;~m#B$jeX z);e<4#V+P`h@-D<#2Z0O$p`$_m=e#0D##H-o48=qjTO3$)k?6+N&v+(H7x3{py8j4 zNp@pq<=N0B%M?g%Y&~JwGYg)+QOM7z-`Lj(P~~?e%Xv~Q+m^}_gpUZXHZsEN1mq&i zmaroSb3zqNR2F7IQ!N4$PPYNh4k)%Lojhx#HQDDnd{qAMg7LgwgER7k_Um>K2ME_x zfF0-FT0=eMe>QoDj9z_;7!ht#%aZ&V<2;KcGVc<#c(hM$D-Zx3PH_ylE^+`; zv(uDJEK{_K3Wu<$DsGo*_H@XSgec-uI*HBmi9rxV zVQ2;h40|4t(-lA*n7HJ)1koPE(Fs7wj}w#tK$4b-K+t1|G36=&B*hjOOmRj$L~-JY zVUo-lDrp+QI3QSHTuEb`yX8ZiDVMb5evu4IF~X>nOCM)#DLMfNCf)?XG??j$u$Bt2 z16UXk3^99XmIX?W5m@3yW6LpgOF1?P5Ngo{6hxxa1d$vf2Q4iCI>pdRM};6MRb!?A z1Ph2;jz9`O7~+${1pFYGNHA#t*iEL+;fNLFAgNbs2kB3shh(FO z(i6><3`l`#LUaIlQWYj^QV^MdM^kPPXoBf>vj?G1=?JXzDdP*|x3pf+SQMl@4rPpS z&J#_}I+rn9O0dL9_JS`7bV+Z@q^th`6$9_}g@py6rLQP0qhUH_F}3A3TjEslL@r{b z8dD76-FDF=r!c@KE_E)yNT@gQbCo1aO$bOhnb}A*>-LGZ?{>5CHhEKNiwF}NNr|HU z!7aeTTS=Y$ZavuX8~_l$ zOy-6}^SNEgu;t8R&{C#HrcQj|nP#wNaMQx@Y1p!z*h^h%O8sxt?3hW6#q%Pj*p36z1ujs8x0SC8bEGJer>tJk zcfU~d4iFKXbxLUQTn^B89$W=Uj*|gY$f_#9DOpEKU<~jwBIuTR1`m>$ATBvAQD_#& zIc5cl5y_ueR2L3H*dlX;>RcT*aD>FgG9Fnl1wnnJ4q1RM!e&c?Rb()@i0&A*1YY5^ zpuzGbG$}Hpi%cHUtVuBPf|MZTX9UkoEutYTz;I{%_#;lL*p3N%IuF_(GNiENx$}WkQ8YRjBATS&w(dgq% zxXPEMn^Htl_OT^sX3m{@Mo!;_!og_`O2=c-w?&pxQNKDeW{RUXT5h!$@#6)^*=4Ef zIr5K3qpN%v)KH$&vsgbdsVxpx+k>zPR(Pr_9*;mt@@{qq%&G?2X>D~qWr)c&>X_=#}uR_ zc*i5qED;jc@aK2f+PR%0(ddct97hBZNIWjF*z_WOjZr7NroD`tOtt6U9-qW%o$G+H zB53_cKGpiiBhk&(L2Z9i)O05Q05kM|u~`z`b>R!H&7lA)TEQq+Aw%o(;2=@x^H6m& z-|IQX$W8lou{df8qv_Y*j4s%nnF^Q;!pQ~82Y$RG(dh5_9y&2wiN@95LS_`B@=Hr3 z9P_E+UkyAPUi<-U*it9jh!06gIm0GZVln-@3 z&_!KkTY1ML(Th;-N0^A`DsE7^ROsY-Fh|TOb`?sP%ppQ&SKr9TW6{*Qq`iOG#UQ|@ zgAJ$Ao;@Cc%O;lvBzLrObZ?{`C$D(ydL{`uD}Nu{vU#&A!iVEnd{yDaVN2Ad6y8^_wMR83$+rUIN^S@OwMTn@V@-UFg zvuWuI>^6EwqtRp+;fnWd_o9gep&+hiftWpYEIs4V=tP)EudUlZI@Ch#3k{f-G8NXO z8dKhpXY3uuiD+biJiMdP=v|SMU?9wK==3!J7MhU;v~oQJK(#771adtPuD8N1z!4h)xoTby=1 z6bltwCQ>8Ujl7JbvFIWp3YJcAOvN=g$0N|>f*h`EPGg7j50X^z$n*>ytA4NaZ34lA zTEV@ON2Ad6g)n`r6c8iP=!_)D=G)xDWTG0Hj!{i)9?_c>rE*tUQwbmn;ZtS@lN{U# z^m;O6?0a1j-=u0@MYXrPKqT2_%^8VmDWlYiaMX?wk@p3&rhVXrsN|zC=;S#x=B(q< z=*xVH(yh2MHRx^@1^62m}_i1d050>G|11a>_ZL;*+yWge6A zk4K`>0jS3isO)+vk)9?vl*ePx1U#bA$n1I}BMVf>;4#Sb1%eoY&?$-}$D`4qBAMk) zXzC-e=&(ZjI5N&7(dd*w&||ZVdOZY@O!L8WlO2yivV;?r1WlSfW3lMRH&!tOEIcPz zj>n;61Z!1eH*eO^1-%R_g%9f89OKdG&ptlmZ29%^8XobqHh97F!amVdOjopaJsyh$ zR>M9;$Q8|krYboehchIC<*lG-L**QgLcGdB=tnr}rbnaEL9?k?;T(@gpus=?*`aDV AGynhq literal 0 HcmV?d00001 diff --git a/Lib/stepperQ/Examples/Blocking/Blocking.ino b/Lib/stepperQ/Examples/Blocking/Blocking.ino new file mode 100644 index 0000000..03c347f --- /dev/null +++ b/Lib/stepperQ/Examples/Blocking/Blocking.ino @@ -0,0 +1,39 @@ + +// Copyright (C) 2015 Alexander Chestnov + +#include + +int c = 0; + + + +int dir_pin = 7; +int step_pin = 6 ; + +void setup() { + + stepperq.init(dir_pin,step_pin); + stepperq.setMaxSpeed(200); + stepperq.setAcceleration(9900); + +} +void loop () { + + if ( stepperq.distanceToGo() == 0 ) { + + if (c%2 == 0) + { + stepperq.moveTo(400); + stepperq.start(); + } + else { + stepperq.moveTo(0); + stepperq.start(); + } + + c++; + } + + delay(100); + +} diff --git a/Lib/stepperQ/Examples/ChangeSpeed/ChangeSpeed.ino b/Lib/stepperQ/Examples/ChangeSpeed/ChangeSpeed.ino new file mode 100644 index 0000000..24ebe52 --- /dev/null +++ b/Lib/stepperQ/Examples/ChangeSpeed/ChangeSpeed.ino @@ -0,0 +1,42 @@ + +// Copyright (C) 2015 Alexander Chestnov + +#include + +int c = 0; + +int dir_pin = 7; +int step_pin = 6 ; + +void setup() { + + stepperq.init(dir_pin,step_pin); + stepperq.setMaxSpeed(200); + stepperq.setAcceleration(9900); + stepperq.moveTo(8000); + + stepperq.start(); + +} +void loop () { + + if ( stepperq.distanceToGo() <4000 ) { + stepperq.move(8000); + } + + return ; + + if (c%2 == 0) + { + stepperq.setMaxSpeed(200); + + } + else { + + stepperq.setMaxSpeed(300); + } + + c++; + delay(1000); + +} diff --git a/Lib/stepperQ/Examples/ProportionalControl/ProportionalControl.ino b/Lib/stepperQ/Examples/ProportionalControl/ProportionalControl.ino new file mode 100644 index 0000000..3bb9e05 --- /dev/null +++ b/Lib/stepperQ/Examples/ProportionalControl/ProportionalControl.ino @@ -0,0 +1,45 @@ +// ProportionalControl.pde +// -*- mode: C++ -*- +// +// Make a single stepper follow the analog value read from a pot or whatever +// The stepper will move at a constant speed to each newly set posiiton, +// depending on the value of the pot. +// +// Copyright (C) 2015 Alexander Chestnov + +#include + + + +// Define a stepper and the pins it will use + +int dir_pin = 7; +int step_pin = 6 ; + + +// This defines the analog input pin for reading the control voltage +// Tested with a 10k linear pot between 5v and GND +#define ANALOG_IN A0 + +void setup() +{ + stepperq.init(dir_pin,step_pin); + stepperq.setAcceleration(9900); + stepperq.setMaxSpeed(1000); + stepperq.moveTo(8000); + + stepperq.start(); +} + +void loop() +{ + if ( stepperq.distanceToGo() <4000 ) { + stepperq.move(8000); + + } + + // Read new Speed + int analog_in = analogRead(ANALOG_IN); + stepperq.setMaxSpeed(analog_in); + delay(50); +} diff --git a/Lib/stepperQ/Examples/ProportionalSpeedControl/ProportionalSpeedControl.ino b/Lib/stepperQ/Examples/ProportionalSpeedControl/ProportionalSpeedControl.ino new file mode 100644 index 0000000..1d904ee --- /dev/null +++ b/Lib/stepperQ/Examples/ProportionalSpeedControl/ProportionalSpeedControl.ino @@ -0,0 +1,46 @@ +// ProportionalControl.pde +// -*- mode: C++ -*- +// +// Make a single stepper follow the analog value read from a pot or whatever +// The stepper will move at a constant speed to each newly set posiiton, +// depending on the value of the pot. +// +// Copyright (C) 2012 Mike McCauley +// $Id: ProportionalControl.pde,v 1.1 2011/01/05 01:51:01 mikem Exp mikem $ + +#include + + + +// Define a stepper and the pins it will use + +int dir_pin = 7; +int step_pin = 6 ; + + +// This defines the analog input pin for reading the control voltage +// Tested with a 10k linear pot between 5v and GND +#define ANALOG_IN A0 + +void setup() +{ + stepperq.init(dir_pin,step_pin); + stepperq.setAcceleration(9900); + stepperq.setMaxSpeed(1000); + stepperq.moveTo(8000); + + stepperq.start(); +} + +void loop() +{ + if ( stepperq.distanceToGo() <4000 ) { + stepperq.move(8000); + + } + + // Read new Speed + int analog_in = analogRead(ANALOG_IN); + stepperq.setMaxSpeed(analog_in); + delay(50); +} diff --git a/Lib/stepperQ/Examples/Quickstop/Quickstop.ino b/Lib/stepperQ/Examples/Quickstop/Quickstop.ino new file mode 100644 index 0000000..bd6aaf2 --- /dev/null +++ b/Lib/stepperQ/Examples/Quickstop/Quickstop.ino @@ -0,0 +1,30 @@ +// Quickstop.pde +// -*- mode: C++ -*- +// +// Check stop handling. +// Calls stop() while the stepper is travelling at full speed, causing +// the stepper to stop as quickly as possible, within the constraints of the +// current acceleration. +// +// Copyright (C) 2015 Alexander Chestnov + +#include + + +int dir_pin = 7; +int step_pin = 6 ; + +void setup() +{ + stepperq.setMaxSpeed(150); + stepperq.setAcceleration(900); + stepperq.moveTo(4000); + stepperq.start(); +} + +void loop() +{ + delay(1000); + stepperq.stop(); + +} diff --git a/Lib/stepperQ/Examples/RunToPos/Blocking.ino~ b/Lib/stepperQ/Examples/RunToPos/Blocking.ino~ new file mode 100644 index 0000000..01c2329 --- /dev/null +++ b/Lib/stepperQ/Examples/RunToPos/Blocking.ino~ @@ -0,0 +1,35 @@ + +#include + +int c = 0; + +int dir_pin = 7; +int step_pin = 6 ; + +void setup() { + + stepperq.init(dir_pin,step_pin); + stepperq.setMaxSpeed(200); + stepperq.setAcceleration(9900); + +} +void loop () { + + if ( stepperq.distanceToGo() == 0 ) { + + if (c%2 == 0) + { + stepperq.moveTo(400); + stepperq.start(); + } + else { + stepperq.moveTo(0); + stepperq.start(); + } + + c++; + } + + delay(100); + +} diff --git a/Lib/stepperQ/Examples/RunToPos/RunToPos.ino b/Lib/stepperQ/Examples/RunToPos/RunToPos.ino new file mode 100644 index 0000000..13db89e --- /dev/null +++ b/Lib/stepperQ/Examples/RunToPos/RunToPos.ino @@ -0,0 +1,50 @@ + +// Copyright (C) 2015 Alexander Chestnov + +#include + +int c = 0; + + + +int dir_pin = 7; +int step_pin = 6 ; + +void setup() { + + stepperq.init(dir_pin,step_pin); + stepperq.setMaxSpeed(200); + stepperq.setAcceleration(9900); + +} +void loop () { + + if ( stepperq.distanceToGo() == 0 ) { + + switch (c%4) { + + case 0: + stepperq.moveTo(200); + stepperq.start(); + break; + case 1: + stepperq.moveTo(400); + stepperq.start(); + break; + case 2: + stepperq.moveTo(200); + stepperq.start(); + break; + case 3: + stepperq.moveTo(0); + stepperq.start(); + break; + + } + c++; + } + //do Something other... + + delay(100); + +} diff --git a/Lib/stepperQ/README.md b/Lib/stepperQ/README.md index 7717138..6bf73f0 100644 --- a/Lib/stepperQ/README.md +++ b/Lib/stepperQ/README.md @@ -1,2 +1,53 @@ # stepperQ Arduino SteperMotor Driver. Acceleration and intterupt + + +ESP 8266 Support Added. + + +Testet with: +WemosD1 Mini +Arduino Nano +Arduino Uno. + +Drivers: +-TB5660 Driver ( Not gut very Idea) +-DRV8825 https://www.pololu.com/product/2133 +-L298E https://coeleveld.com/arduino-stepper-l298n/ ( Not reccomendet!!!) +-uln2003a https://coeleveld.com/arduino-stepper-uln2003a/ + + +Example Code: + +#include + +int dir_pin = D3; +int step_pin = D4 ; + +void setup() { + + stepperq.init(dir_pin,step_pin); + stepperq.setMaxSpeed(800); + stepperq.setAcceleration(4800); + stepperq.moveTo(80000); + + stepperq.start(); + delay(40000); +} + +void loop() { + //your code hier. + delay(2000); + +} +For contueres run: + + +void loop () { + + if ( stepperq.distanceToGo() <4000 ) { + stepperq.move(8000); + } + //your code hier. + +} diff --git a/Lib/stepperQ/stepperQ.cpp b/Lib/stepperQ/stepperQ.cpp index ac2bb2e..fd7a6b8 100644 --- a/Lib/stepperQ/stepperQ.cpp +++ b/Lib/stepperQ/stepperQ.cpp @@ -3,15 +3,21 @@ #include "stepperQ.h" - StepperQ stepperq; // preinstatiate +#ifndef ESP8266 ISR(TIMER1_OVF_vect) // interrupt service routine that wraps a user defined function supplied by attachInterrupt { - stepperq.isrCallback(); + stepperq.isrCallback(); } +#else - +void inline timer0ISR(void){ + + stepperq.isrCallback(); + +} +#endif void StepperQ::init(uint8_t dirpin, uint8_t steppin) { @@ -20,48 +26,55 @@ void StepperQ::init(uint8_t dirpin, uint8_t steppin) _maxSpeed = 1.0; _acceleration = 1.0; _sqrt_twoa = 1.0; - - + + _pin[1] = dirpin; _pin[0] = steppin; - - + // NEW _n = 0; _c0 = 0.0; _cn = 0.0; _cmin = 1.0; _direction = DIRECTION_CCW; - + + TCCR1B &= ~(_BV(CS10) | _BV(CS11) | _BV(CS12)); // brokly + pinMode(_enablePin, OUTPUT); - + pinMode(_pin[1], OUTPUT); pinMode(_pin[0], OUTPUT); - _debug = false; + +#ifdef DEBUG + Serial.print("\n StepperQ:init "); + Serial.print(" dirPin:"); + Serial.print(dirpin); + Serial.print(" StepPin :"); + Serial.print(steppin); + + +#endif + + } void StepperQ::init(uint8_t pin1, uint8_t pin2,uint8_t pin3, uint8_t pin4,uint8_t interface) { - - _interface = interface; - + _pin[2] = pin3; + _pin[3] = pin4; pinMode(_pin[2], OUTPUT); pinMode(_pin[3], OUTPUT); - _pin[2] = pin3; - _pin[3] = pin4; - init (pin1,pin2); + + init (pin2,pin1); //Serial.print("\n init4"); //Serial.print(_interface); - } - - void StepperQ::moveTo(long absolute) { if (_targetPos != absolute) { - _targetPos = absolute; + _targetPos = absolute; } } @@ -89,198 +102,252 @@ long StepperQ::currentPosition() // Sets speed to 0 void StepperQ::setCurrentPosition(long position) { - - _currentPos = position; - + _targetPos = _currentPos = position; + _n = 0; } - - void StepperQ::stop() { - if (_debug) - Serial.print("\n StepperQ:stop"); - move(abs(_n)); - //_direction ==1 ? abs(_n):-abs(_n); - +#ifdef DEBUG + Serial.print("\n StepperQ:stop"); +#endif + move(_direction ==DIRECTION_CW ? abs(_n):-abs(_n)); + } void StepperQ::start(){ - - if (_n==0 && distanceToGo() != 0) { - - _cn = _c0; - _direction = (distanceToGo() > 0) ? DIRECTION_CW : DIRECTION_CCW; - changeDirection() ; - step(HIGH); - setPeriod(_cn); - _n++; - initTimer(_cn); - if (_debug) - Serial.print("\n first step"); - delayMicroseconds(_cmin); - step(LOW); - } - + + if (_n==0 && distanceToGo() != 0) { + _cn = _c0; + _direction = (distanceToGo() > 0) ? DIRECTION_CW : DIRECTION_CCW; + changeDirection() ; + step(HIGH); + setPeriod(_cn); + _n++; + _currentPos += _direction; + initTimer(_cn); +#ifdef DEBUG + Serial.print("\n first step"); +#endif + delayMicroseconds(_cmin); + step(LOW); + } + } void StepperQ::setMaxSpeed(float speed) { - _maxSpeed = speed; - _cmin = 1000000.0 / speed; - _stepsToStop = (long)((speed * speed) / (2.0 * _acceleration)); - + _maxSpeed = speed; + _cmin = 1000000.0 / speed; + _c0 = max(_c0,_cmin); + _stepsToStop = (long)((speed * speed) / (2.0 * _acceleration)); + +#ifdef DEBUG + Serial.print("\n setMaxSpeed _cmin = "); + Serial.print(_cmin); + Serial.print("_c0 = "); + Serial.print(_c0); + +#endif + } float StepperQ::maxSpeed() { - return _maxSpeed; + return _maxSpeed; } float StepperQ::speed() { - return 1000000.0/_cn; + return 1000000.0/_cn; } void StepperQ::setAcceleration(float acceleration) { if (acceleration == 0.0) - return; + return; if (_acceleration != acceleration) { - // Recompute _n per Equation 17 - _n = _n * (_acceleration / acceleration); + // Recompute _n per Equation 17 + _n = _n * (_acceleration / acceleration); _stepsToStop = (long)((_maxSpeed * _maxSpeed) / (2.0 * _acceleration)); - // New c0 per Equation 7 - _c0 = sqrt(2.0 / acceleration) * 1000000.0; - _acceleration = acceleration; + // New c0 per Equation 7 + _c0 = sqrt(2.0 / acceleration) * 1000000.0; + _c0 = max(_c0,_cmin); + + _acceleration = acceleration; } +#ifdef DEBUG + Serial.print("\n setAcceleration _c0 = "); + Serial.print(_c0); + +#endif } float StepperQ::getAcceleration() { - - return _acceleration; - - } + + return _acceleration; + +} long StepperQ::stepsToStop () { - return abs(_n); + return abs(_n); } long StepperQ::maxstepsToStop() { - - return _stepsToStop ; + + return _stepsToStop ; } void StepperQ::isrCallback(){ - - step(HIGH); - _currentPos += _direction; - calculateSpeed(); - + + if (distanceToGo() == 0) { + _n = 0; + stopTimer(); + return; + } + + step(HIGH); + _currentPos += _direction; + calculateSpeed(); + step(LOW); +} -} void StepperQ::calculateSpeed() { - + long distanceTo = distanceToGo(); // +ve is clockwise from curent location - -if (_debug) { - Serial.print("\n n="); + +#ifdef DEBUG + // Serial.print("\n m="); + // Serial.print(millis()); + Serial.print("\n calcSp _currentPos: "); + Serial.print(_currentPos); + Serial.print(" _targetPos:"); + Serial.print(_targetPos); + Serial.print(" _n:"); Serial.print(_n); - Serial.print(" _cn="); + Serial.print(" _c0. "); + Serial.print(_c0); + Serial.print(" _cn:"); Serial.print(_cn); -} - float cnalt= _cn; - if (distanceTo == 0 && _n <= 1) - { - // We are at the target and its time to stop - _n = 0; + + Serial.print(" _cmin:"); + Serial.print(_cmin); +#endif + float _cnew = _cn; + if (distanceTo == 0 && _n <= 1) { + // We are at the target and its time to stop + _n = 0; stopTimer(); - if (_debug) { - Serial.print(" Stopped"); - } - return; +#ifdef DEBUG + Serial.print(" Stopped"); +#endif + return; } - if (distanceTo > 0) - { - // We are anticlockwise from the target - // Need to go clockwise from here, maybe decelerate now - if (_n > 0) - { - // Currently accelerating, need to decel now? Or maybe going the wrong way? - if ((_n >= distanceTo) || _direction == DIRECTION_CCW) - _n = -_n ; // Start deceleration - } - else if (_n < 0) - { - // Currently decelerating, need to accel again? - if ((-_n < distanceTo) && _direction == DIRECTION_CW) - _n = -_n; // Start accceleration - } + + if (distanceTo > 0) { + // We are anticlockwise from the target + // Need to go clockwise from here, maybe decelerate now + if (_n > 0) { + // Currently accelerating, need to decel now? Or maybe going the wrong way? + if ((_n >= distanceTo) || _direction == DIRECTION_CCW ) { +#ifdef DEBUG + Serial.print(" Start D "); +#endif + _n = -_n ; // Start deceleration + } + } + else if (_n < 0) + { + // Currently decelerating, need to accel again? + if ((-_n < distanceTo) && _direction == DIRECTION_CW) { +#ifdef DEBUG + Serial.print(" A again"); +#endif + _n = -_n; // Start accceleration + } + } } else if (distanceTo < 0) { - // We are clockwise from the target - // Need to go anticlockwise from here, maybe decelerate - if (_n > 0) - { - // Currently accelerating, need to decel now? Or maybe going the wrong way? - if ((_n >= -distanceTo) || _direction == DIRECTION_CW) - _n = -_n; // Start deceleration - } - else if (_n < 0) - { - // Currently decelerating, need to accel again? - if ((-_n < -distanceTo) && _direction == DIRECTION_CCW) - _n = -_n; // Start accceleration - } + // We are clockwise from the target + // Need to go anticlockwise from here, maybe decelerate + if (_n > 0) + { + // Currently accelerating, need to decel now? Or maybe going the wrong way? + if ((_n >= -distanceTo) || _direction == DIRECTION_CW) { +#ifdef DEBUG Serial.print(" Start D "); +#endif + _n = -_n; // Start deceleration + } + } + else if (_n < 0) + { + // Currently decelerating, need to accel again? + if ((-_n < -distanceTo) && _direction == DIRECTION_CCW) { +#ifdef DEBUG Serial.print(" Start A "); +#endif + _n = -_n; // Start accceleration + } + } } - - if (_n == 0) + + if (_n == 0) { - //Serial.print("\n first step"); - // First step from stopped - _cn = _c0; - _direction = (distanceTo > 0) ? DIRECTION_CW : DIRECTION_CCW; - changeDirection() ; - setPeriod(_cn); - _n++; + //Serial.print("\n first step"); + // First step from stopped + _cn = _c0; + _direction = (distanceTo > 0) ? DIRECTION_CW : DIRECTION_CCW; + changeDirection() ; + setPeriod(max(_cn, _cmin)); + _n++; } else if (_n > 0 && _cn > _cmin ) { - - -// Serial.print(" 2222_n="); -// Serial.print(_n); - // Subsequent step. Works for accel (n is +_ve) and decel (n is -ve). - _cn = _cn - ((2.0 * _cn) / ((4.0 * _n) + 1)); // Equation 13 - _cn = max(_cn, _cmin); - - _n++; + // Subsequent step. Works for accel (n is +_ve) and decel (n is -ve). + _cnew = _cn - ((2.0 * _cn) / ((4.0 * _n) + 1)); // Equation 13 + if (_cnew > _cmin) { + //_cn = max(_cn, _cmin); + _cn= _cnew; + _n++; + } + +#ifdef DEBUG + Serial.print(" a "); +#endif } else if (_n > 0 && _cn < _cmin) { // speed was changed. Need no decel - - _cn = _cn + ((2.0 * _cn) / ((4.0 * _n) + 1)); // Equation 13 - _n--; - } - - else if (_n <= 0) { - - _cn = _cn - ((2.0 * _cn) / ((4.0 * _n) + 1)); // Equation 13 - _n++; - } - - // if (abs(cnalt - _cn )>10) { - // setPeriod(_cn); - // } - setPeriod(_cn); - - + + _cn = _cn + ((2.0 * _cn) / ((4.0 * _n) + 1)); // Equation 13 + _cnew =_cn; + _n--; +#ifdef DEBUG + Serial.print(" D "); +#endif + } + + else if (_n <= 0) { + + _cn = _cn - ((2.0 * _cn) / ((4.0 * _n) + 1)); // Equation 13 + _cnew = _cn; + +#ifdef DEBUG + Serial.print(" C "); +#endif + _n++; + } + + setPeriod(max(_cnew, _cmin)); +#ifdef DEBUG + Serial.print(" _cn: "); + Serial.print(_cn); +#endif + } void StepperQ::changeDirection() { - if (_reverse) { - digitalWrite(_pin[1], _direction ==1 ? 0:1); - } else { - //Normal - digitalWrite(_pin[1], _direction ==1 ? 1:0); - } - + if (_reverse) { + digitalWrite(_pin[1], _direction ==1 ? 0:1); + } else { + //Normal + digitalWrite(_pin[1], _direction ==1 ? 1:0); + } + } int StepperQ::getDirection() @@ -288,46 +355,87 @@ int StepperQ::getDirection() return _direction; } void StepperQ::setDirOrder(boolean reverse ) { - - _reverse =reverse ; + + _reverse =reverse ; } void StepperQ::setPeriod(long microseconds) { - long cycles = (F_CPU * microseconds) / 2000000; // the counter runs backwards after TOP, interrupt is at BOTTOM so divide microseconds by 2 - if(cycles < RESOLUTION) clockSelectBits = _BV(CS10); // no prescale, full xtal - else if((cycles >>= 3) < RESOLUTION) clockSelectBits = _BV(CS11); // prescale by /8 - else if((cycles >>= 3) < RESOLUTION) clockSelectBits = _BV(CS11) | _BV(CS10); // prescale by /64 - else if((cycles >>= 2) < RESOLUTION) clockSelectBits = _BV(CS12); // prescale by /256 - else if((cycles >>= 2) < RESOLUTION) clockSelectBits = _BV(CS12) | _BV(CS10); // prescale by /1024 - else cycles = RESOLUTION - 1, clockSelectBits = _BV(CS12) | _BV(CS10); // request was out of bounds, set as maximum - ICR1 = cycles; // ICR1 is TOP in p & f correct pwm mode - TCCR1B &= ~(_BV(CS10) | _BV(CS11) | _BV(CS12)); - TCCR1B |= clockSelectBits; // reset clock select register +#ifndef ESP8266 + + long cycles = (F_CPU * microseconds) / 2000000; // the counter runs backwards after TOP, interrupt is at BOTTOM so divide microseconds by 2 + if(cycles < RESOLUTION) clockSelectBits = _BV(CS10); // no prescale, full xtal + else if((cycles >>= 3) < RESOLUTION) clockSelectBits = _BV(CS11); // prescale by /8 + else if((cycles >>= 3) < RESOLUTION) clockSelectBits = _BV(CS11) | _BV(CS10); // prescale by /64 + else if((cycles >>= 2) < RESOLUTION) clockSelectBits = _BV(CS12); // prescale by /256 + else if((cycles >>= 2) < RESOLUTION) clockSelectBits = _BV(CS12) | _BV(CS10); // prescale by /1024 + else cycles = RESOLUTION - 1, clockSelectBits = _BV(CS12) | _BV(CS10); // request was out of bounds, set as maximum + ICR1 = cycles; // ICR1 is TOP in p & f correct pwm mode + TCCR1B &= ~(_BV(CS10) | _BV(CS11) | _BV(CS12)); + TCCR1B |= clockSelectBits; // reset clock select register +#else + timer0_write(ESP.getCycleCount() +clockCyclesPerMicrosecond()*microseconds); +#endif } void StepperQ::initTimer(long microseconds) { - TCCR1A = 0; // clear control register A - TCCR1B = _BV(WGM13); // set mode as phase and frequency correct pwm, stop the timer - if(microseconds > 0) setPeriod(microseconds); - TIMSK1 = _BV(TOIE1); // sets the timer overflow interrupt enable bit - sei(); // ensures that interrupts are globally enabled - TCCR1B |= clockSelectBits; +#ifndef ESP8266 + + TCCR1A = 0; // clear control register A + TCCR1B = _BV(WGM13); // set mode as phase and frequency correct pwm, stop the timer + if(microseconds > 0) setPeriod(microseconds); + TIMSK1 = _BV(TOIE1); // sets the timer overflow interrupt enable bit + sei(); // ensures that interrupts are globally enabled + TCCR1B |= clockSelectBits; +#else + timer0_isr_init(); + timer0_attachInterrupt(timer0ISR); + setPeriod (microseconds); +#endif } void StepperQ::stopTimer() -{ - TCCR1B &= ~(_BV(CS10) | _BV(CS11) | _BV(CS12)); // clears all clock selects bits +{ +#ifndef ESP8266 + + TCCR1B &= ~(_BV(CS10) | _BV(CS11) | _BV(CS12)); // clears all clock selects bits +#else + timer0_detachInterrupt(); +#endif + + switch (_interface) + { + case DRIVER: + step1(LOW); + break; + case FULL2WIRE: + setOutputPins(0b00); + break; + case FULL3WIRE: + setOutputPins(0b000); + break; + case FULL4WIRE: + setOutputPins(0b0000); + break; + case HALF3WIRE: + setOutputPins(0b000); + break; + + case HALF4WIRE: + setOutputPins(0b0000); + break; + } + } -void StepperQ::debug( boolean debug) { +//void StepperQ::debug( boolean debug) { - _debug= debug; +// _debug= debug; -} +//} void StepperQ::setEnablePin(uint8_t enablePin) { - + _enablePin = enablePin; } @@ -335,46 +443,46 @@ void StepperQ::setEnablePin(uint8_t enablePin) { // Subclasses can override void StepperQ::step(uint8_t first) { - //Serial.print("step:"); - //Serial.print(_interface); - - if (first == HIGH) { - switch (_interface) - { - - case DRIVER: - step1(first); - break; - - case FULL2WIRE: - step2(_currentPos); - break; - - case FULL3WIRE: - step3(_currentPos); - break; - - case FULL4WIRE: - step4(_currentPos); - break; - - case HALF3WIRE: - step6(_currentPos); - break; - - case HALF4WIRE: - step8(_currentPos); - break; - } - } else { - switch (_interface) - { - - case DRIVER: - step1(first); - break; - } //switch - + //Serial.print("step:"); + //Serial.print(_interface); + + if (first == HIGH) { + switch (_interface) + { + + case DRIVER: + step1(first); + break; + + case FULL2WIRE: + step2(_currentPos); + break; + + case FULL3WIRE: + step3(_currentPos); + break; + + case FULL4WIRE: + step4(_currentPos); + break; + + case HALF3WIRE: + step6(_currentPos); + break; + + case HALF4WIRE: + step8(_currentPos); + break; + } + } else { + switch (_interface) + { + + case DRIVER: + step1(first); + break; + } //switch + } // else } @@ -385,11 +493,35 @@ void StepperQ::step(uint8_t first) void StepperQ::setOutputPins(uint8_t mask) { uint8_t numpins = 2; - if (_interface == FULL4WIRE || _interface == HALF4WIRE) - numpins = 4; + if (_interface == FULL4WIRE || _interface == HALF4WIRE) { + numpins = 4; + } + if (_interface == FULL3WIRE || _interface == HALF3WIRE) { + numpins = 3; + } uint8_t i; - for (i = 0; i < numpins; i++) - digitalWrite(_pin[i], (mask & (1 << i)) ? (HIGH) : (LOW )); + +#ifdef DEBUG + Serial.print("\n setOutputPins "); + Serial.print("mask "); + + +#endif + + + for (i = 0; i < numpins; i++) { + digitalWrite(_pin[i], (mask & (1 << i)) ? (HIGH) : (LOW )); + +#ifdef DEBUG + + //Serial.print(" pin="); + //Serial.print(_pin[i]); + Serial.print(" "); + Serial.print((mask & (1 << i)) ? (HIGH) : (LOW )); +#endif + + } + } @@ -410,21 +542,21 @@ void StepperQ::step2(long step) { switch (step & 0x3) { - case 0: /* 01 */ - setOutputPins(0b10); - break; - - case 1: /* 11 */ - setOutputPins(0b11); - break; - - case 2: /* 10 */ - setOutputPins(0b01); - break; - - case 3: /* 00 */ - setOutputPins(0b00); - break; + case 0: /* 01 */ + setOutputPins(0b10); + break; + + case 1: /* 11 */ + setOutputPins(0b11); + break; + + case 2: /* 10 */ + setOutputPins(0b01); + break; + + case 3: /* 00 */ + setOutputPins(0b00); + break; } } // 3 pin step function @@ -434,18 +566,18 @@ void StepperQ::step3(long step) { switch (step % 3) { - case 0: // 100 - setOutputPins(0b100); - break; - - case 1: // 001 - setOutputPins(0b001); - break; - - case 2: //010 - setOutputPins(0b010); - break; - + case 0: // 100 + setOutputPins(0b100); + break; + + case 1: // 001 + setOutputPins(0b001); + break; + + case 2: //010 + setOutputPins(0b010); + break; + } } @@ -454,27 +586,28 @@ void StepperQ::step3(long step) // Subclasses can override void StepperQ::step4(long step) { - - // Serial.print("step4"); - // Serial.print(step); - +#ifdef DEBUG + Serial.print("\n step4="); + Serial.print(step); +#endif + switch (step & 0x3) { - case 0: // 1010 - setOutputPins(0b0101); - break; - - case 1: // 0110 - setOutputPins(0b0110); - break; - - case 2: //0101 - setOutputPins(0b1010); - break; - - case 3: //1001 - setOutputPins(0b1001); - break; + case 0: // 1010 + setOutputPins(0b0101); + break; + + case 1: // 0110 + setOutputPins(0b0110); + break; + + case 2: //0101 + setOutputPins(0b1010); + break; + + case 3: //1001 + setOutputPins(0b1001); + break; } } @@ -485,30 +618,30 @@ void StepperQ::step6(long step) { switch (step % 6) { - case 0: // 100 - setOutputPins(0b100); - break; - - case 1: // 101 - setOutputPins(0b101); - break; - - case 2: // 001 - setOutputPins(0b001); - break; - - case 3: // 011 - setOutputPins(0b011); - break; - - case 4: // 010 - setOutputPins(0b010); - break; - - case 5: // 011 - setOutputPins(0b110); - break; - + case 0: // 100 + setOutputPins(0b100); + break; + + case 1: // 101 + setOutputPins(0b101); + break; + + case 2: // 001 + setOutputPins(0b001); + break; + + case 3: // 011 + setOutputPins(0b011); + break; + + case 4: // 010 + setOutputPins(0b010); + break; + + case 5: // 011 + setOutputPins(0b110); + break; + } } @@ -519,38 +652,60 @@ void StepperQ::step8(long step) { switch (step & 0x7) { - case 0: // 1000 - setOutputPins(0b0001); - break; - - case 1: // 1010 - setOutputPins(0b0101); - break; - - case 2: // 0010 - setOutputPins(0b0100); - break; - - case 3: // 0110 - setOutputPins(0b0110); - break; - - case 4: // 0100 - setOutputPins(0b0010); - break; - - case 5: //0101 - setOutputPins(0b1010); - break; - - case 6: // 0001 - setOutputPins(0b1000); - break; - - case 7: //1001 - setOutputPins(0b1001); - break; + case 0: // 1000 + setOutputPins(0b0001); + break; + + case 1: // 1010 + setOutputPins(0b0101); + break; + + case 2: // 0010 + setOutputPins(0b0100); + break; + + case 3: // 0110 + setOutputPins(0b0110); + break; + + case 4: // 0100 + setOutputPins(0b0010); + break; + + case 5: //0101 + setOutputPins(0b1010); + break; + + case 6: // 0001 + setOutputPins(0b1000); + break; + + case 7: //1001 + setOutputPins(0b1001); + break; } } +void StepperQ::printStatus() { + + Serial.print("\n StepperQ "); + Serial.print(" _currentPos: "); + Serial.print(_currentPos); + Serial.print(" _targetPos:"); + Serial.print(_targetPos); + Serial.print(" _n:"); + Serial.print(_n); + Serial.print(" _c0. "); + Serial.print(_c0); + Serial.print(" _cn:"); + Serial.print(_cn); + + Serial.print(" _cmin:"); + Serial.print(_cmin); + + Serial.print(" speed:"); + Serial.print(speed()); + + +} diff --git a/Lib/stepperQ/stepperQ.h b/Lib/stepperQ/stepperQ.h index 1d00cc0..5440b77 100644 --- a/Lib/stepperQ/stepperQ.h +++ b/Lib/stepperQ/stepperQ.h @@ -9,32 +9,38 @@ #include #endif +#ifndef ESP8266 #include #include +#endif + #define RESOLUTION 65536 // Timer1 is 16 bit // These defs cause trouble on some versions of Arduino #undef round +////#define DEBUG 1 + class StepperQ { - /// \brief Symbolic names for number of pins. + /// \brief Symbolic names for number of pins. /// Use this in the pins argument the AccelStepper1 constructor to /// provide a symbolic name for the number of pins /// to use. +public: typedef enum { - DRIVER = 1, ///< Stepper Driver, 2 driver pins required - FULL2WIRE = 2, ///< 2 wire stepper, 2 motor pins required - FULL3WIRE = 3, ///< 3 wire stepper, such as HDD spindle, 3 motor pins required + DRIVER = 1, ///< Stepper Driver, 2 driver pins required + FULL2WIRE = 2, ///< 2 wire stepper, 2 motor pins required + FULL3WIRE = 3, ///< 3 wire stepper, such as HDD spindle, 3 motor pins required FULL4WIRE = 4, ///< 4 wire full stepper, 4 motor pins required - HALF3WIRE = 6, ///< 3 wire half stepper, such as HDD spindle, 3 motor pins required - HALF4WIRE = 8 ///< 4 wire half stepper, 4 motor pins required + HALF3WIRE = 6, ///< 3 wire half stepper, such as HDD spindle, 3 motor pins required + HALF4WIRE = 8 ///< 4 wire half stepper, 4 motor pins required } MotorInterfaceType; - -public: - void init(uint8_t dirpin = 2, uint8_t steppin = 3); - void init( uint8_t pin1 , uint8_t pin2 , uint8_t pin3, uint8_t pin4,uint8_t interface = StepperQ::FULL4WIRE ); + + void init(uint8_t dirpin = 2, uint8_t steppin = 3); + void init( uint8_t pin1 , uint8_t pin2 , uint8_t pin3, uint8_t pin4,uint8_t interface = StepperQ::FULL4WIRE ); + /// Set the target position. The run() function will try to move the motor /// from the current position to the target position set by the most /// recent call to this function. Caution: moveTo() also recalculates the speed for the next step. @@ -42,49 +48,50 @@ class StepperQ /// \param[in] absolute The desired absolute position. Negative is /// anticlockwise from the 0 position. void moveTo(long absolute); - + /// Set the target position relative to the current position /// \param[in] relative The desired position relative to the current position. Negative is /// anticlockwise from the current position. void move(long relative); - /// Sets the maximum permitted speed. the run() function will accelerate + + /// Sets the maximum permitted speed. the run() function will accelerate /// up to the speed set by this function. /// \param[in] speed The desired maximum speed in steps per second. Must /// be > 0. Caution: Speeds that exceed the maximum speed supported by the processor may - /// Result in non-linear accelerations and decelerations. + /// result in non-linear accelerations and decelerations. void setMaxSpeed(float speed); - + // returns MaxSpeed float maxSpeed(); //return currentSpeed float speed(); - - -/// Sets the acceleration and deceleration parameter. + + + /// Sets the acceleration and deceleration parameter. /// \param[in] acceleration The desired acceleration in steps per second /// per second. Must be > 0.0. This is an expensive call since it requires a square /// root to be calculated. Dont call more ofthen than needed void setAcceleration(float acceleration); - -/// gets the acceleration and deceleration parameter. + + /// gets the acceleration and deceleration parameter. /// acceleration The desired acceleration in steps per second - float getAcceleration(); - + float getAcceleration(); + /// The distance from the current position to the target position. /// \return the distance from the current position to the target position /// in steps. Positive is clockwise from the current position. long distanceToGo(); - + /// The most recently set target position. /// \return the target position /// in steps. Positive is clockwise from the 0 position. long targetPosition(); - + /// The currently motor position. /// \return the current motor position /// in steps. Positive is clockwise from the 0 position. long currentPosition(); - + /// Resets the current position of the motor, so that wherever the motor /// happens to be right now is considered to be the new 0 position. Useful /// for setting a zero position on a stepper after an initial hardware @@ -93,7 +100,7 @@ class StepperQ /// \param[in] position The position in steps of wherever the motor /// happens to be right now. void setCurrentPosition(long position); - + /// Sets the enable pin number for stepper drivers. /// 0xFF indicates unused (default). /// Otherwise, if a pin is set, the pin will be turned on when @@ -102,33 +109,36 @@ class StepperQ /// \param[in] enablePin Arduino digital pin number for motor enable /// \sa setPinsInverted void setEnablePin(uint8_t enablePin = 0xff); - - void setDirOrder(boolean reverse ); -/// Sets a new target position that causes the stepper + + void setDirOrder(boolean reverse ); + /// Sets a new target position that causes the stepper /// to stop as quickly as possible, using to the current speed and acceleration parameters. void stop(); - + void start(); long stepsToStop(); long maxstepsToStop(); - + void isrCallback(); - void debug( boolean debug); virtual int getDirection(); + + virtual void printStatus(); + protected: - + /// \brief Direction indicator /// Symbolic names for the direction the motor is turning typedef enum { - DIRECTION_CCW = -1, ///< Clockwise + DIRECTION_CCW = -1, ///< Clockwise DIRECTION_CW = 1 ///< Counter-Clockwise } Direction; - /// Low level function to set the motor output pins + /// Low level function to set the motor output pins /// bit 0 of the mask corresponds to _pin[0] /// bit 1 of the mask corresponds to _pin[1] /// You can override this to impment, for example serial chip output insted of using the /// output pins directly +public: virtual void setOutputPins(uint8_t mask); /// Called to execute a step. Only called when a new step is /// required. Subclasses may override to implement new stepping @@ -136,56 +146,57 @@ class StepperQ /// number of pins defined for the stepper. /// \param[in] step The current step phase number (0 to 7) virtual void step(uint8_t first); - virtual void changeDirection(); - - - - /// Called to execute a step on a stepper driver (ie where pins == 1). Only called when a new step is + virtual void changeDirection(); + + + + + /// Called to execute a step on a stepper driver (ie where pins == 1). Only called when a new step is /// required. Subclasses may override to implement new stepping /// interfaces. The default sets or clears the outputs of Step pin1 to step, /// and sets the output of _pin2 to the desired direction. The Step pin (_pin1) is pulsed for 1 microsecond /// which is the minimum STEP pulse width for the 3967 driver. /// \param[in] step The current step phase number (0 to 7) virtual void step1(uint8_t step); - + /// Called to execute a step on a 2 pin motor. Only called when a new step is /// required. Subclasses may override to implement new stepping /// interfaces. The default sets or clears the outputs of pin1 and pin2 /// \param[in] step The current step phase number (0 to 7) virtual void step2(long step); - + /// Called to execute a step on a 3 pin motor, such as HDD spindle. Only called when a new step is /// required. Subclasses may override to implement new stepping /// interfaces. The default sets or clears the outputs of pin1, pin2, /// pin3 /// \param[in] step The current step phase number (0 to 7) virtual void step3(long step); - + /// Called to execute a step on a 4 pin motor. Only called when a new step is /// required. Subclasses may override to implement new stepping /// interfaces. The default sets or clears the outputs of pin1, pin2, /// pin3, pin4. /// \param[in] step The current step phase number (0 to 7) virtual void step4(long step); - + /// Called to execute a step on a 3 pin motor, such as HDD spindle. Only called when a new step is /// required. Subclasses may override to implement new stepping /// interfaces. The default sets or clears the outputs of pin1, pin2, /// pin3 /// \param[in] step The current step phase number (0 to 7) virtual void step6(long step); - + /// Called to execute a step on a 4 pin half-steper motor. Only called when a new step is /// required. Subclasses may override to implement new stepping /// interfaces. The default sets or clears the outputs of pin1, pin2, /// pin3, pin4. /// \param[in] step The current step phase number (0 to 7) virtual void step8(long step); - - + + private: - - + + void setPeriod(long microseconds); void initTimer(long microseconds); void stopTimer(); @@ -193,61 +204,60 @@ class StepperQ /// Number of pins on the stepper motor. Permits 2 or 4. 2 pins is a /// bipolar, and 4 pins is a unipolar. uint8_t _interface= 1; // 1, 2, 4, 8, See MotorInterfaceType - + /// Arduino pin number assignments for the 2 or 4 pins required to interface to the /// stepper motor or driver uint8_t _pin[4]; - - // uint8_t _dirpin; - // uint8_t _steppin; - boolean _reverse; - - /// Enable pin for stepper driver, or 0xFF if unused. + + // uint8_t _dirpin; + // uint8_t _steppin; + boolean _reverse; + + /// Enable pin for stepper driver, or 0xFF if unused. uint8_t _enablePin; - - + + /// The current absolution position in steps. long _currentPos; // Steps - + /// The target position in steps. The StepperQ library will move the /// motor from the _currentPos to the _targetPos, taking into account the /// max speed, acceleration and deceleration long _targetPos; // Steps - - /// The maximum permitted speed in steps per second. Must be > 0. - float _maxSpeed; - + + /// The maximum permitted speed in steps per second. Must be > 0. + float _maxSpeed; + /// The acceleration to use to accelerate or decelerate the motor in steps /// per second per second. Must be > 0 float _acceleration; float _sqrt_twoa; // Precomputed sqrt(2*_acceleration) - - /// The step counter for speed calculations + + /// The step counter for speed calculations long _n; - + /// Initial step size in microseconds - //long _c0; + //long _c0; float _c0; - + /// Last step size in microseconds float _cn ; - - // long _cn; - + + // long _cn; + /// Min step size in microseconds based on maxSpeed float _cmin; // at max speed //long _cmin; // at max speed - + /// Current direction motor is spinning in int _direction; // 1 == CW /// Calculatet Steps to Stop. If the Max speed reaches. long _stepsToStop ; - + //timer Vars unsigned char clockSelectBits; - /// set True für Debug output - boolean _debug; + }; extern StepperQ stepperq; diff --git a/README.md b/README.md index 04c8228..ca32fe5 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,8 @@ # J.A.P. -J.A.P. (Just Another Printer) is a tiny firmware for DIY DLP and LCD 3D-printer. -Designed to work on Arduino Uno + CNC shild hardware and Creation Workshop software. +J.A.P. (Just Another Printer) is a tiny firmware for DIY LCD 3D-printer. +Designed to work on Arduino Uno + CNC shild hardware with "Creation Workshop" +or "nanoDLP" software. *** @@ -10,34 +11,40 @@ Designed to work on Arduino Uno + CNC shild hardware and Creation Workshop softw * Z-axis manual control buttons * Z motor manual on/off button * Cooler control -* Servo control +* LED control *** List of Supported G-Codes - Motion: G1 - Pause: G4 - - Motor on/off: M17, M18 - - Cooler on/off: M7(M245), M9(M246) - - Servo control: M3 Sxxx - - UV LED on/off: M107/M106 + - Positioning: G90, G91, G92 + + - Motor on: M17 + - Motor off: M18, M84 + - Cooler on: M7, M245 + - Cooler off: M9, M246 + - UV LED on: M3, M4, M106 + - UV LED off: M5, M107 + - Current position: M114 + *** - - CNC shild v.3 pinout for DLP: - - ![pinout](https://github.com/3DLab-DLP/jap/blob/master/Img/Arduino-CNC-Shield-V3.jpg) - + CNC shild v.3 pinout for LCD: ![pinout](https://github.com/3DLab-DLP/jap/blob/master/Img/JAP_LCD_pinout.jpg) *** - Setup - * #define STP_PER_MM - number of steps per millimeter for your Z-axis - * #define ACCEL_STP - acceleration in steps per second per second - * #define ZBUTTON_STEP - minimum number of steps when Z-axis control button is pressed + Setup: + + * #define STEPS_PER_MM - resolution in steps/mm for Z-axis + * #define MAX_SPEED - maximum speed in mm/s + * #define ACC_Z - acceleration in mm/s2 + * #define Z_MIN_MM - lower Z-axis bound in mm + * #define Z_MAX_MM - upper Z-axis bound in mm + * #define TIMEOUT - stepper idle hold timeout in minutes P.S. Jumper or normally closed endstop needed on Z+. Z+ is not a home! It's only limiter. diff --git a/jap_lcd.ino b/jap_lcd.ino index 77d966f..78d60d2 100644 --- a/jap_lcd.ino +++ b/jap_lcd.ino @@ -1,199 +1,464 @@ -/* - J.A.P. is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - J.A.P. is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. -(c) Vladimir Razin 2017 info@3dlab.su -*/ - -#include - -#define DEFAULTBAUDRATE 115200 -#define MAX_BUF (64) - -#define ACCEL_STP 32000 -#define STP_PER_MM 1600 -#define ZBUTTON_STEP 16 - -char buffer[MAX_BUF]; -int sofar; - -int flag=1; -int led_flag=1; - -int dir_pin = 7; -int step_pin = 4 ; -int led_pin=10; -int zendstop_plus=11; -int ignition=12; -char zbutton_plus=A0; -char zbutton_minus=A1; -char zmotor=A2; - -unsigned long t0; - -//G-code parser begin - -float parsenumber(char code,float val) { - char *ptr=buffer; - while(ptr && *ptr && ptr 0) { - char c=Serial.read(); - if(sofar 1000) sk=4; - } - while (digitalRead(zbutton_minus)== 0) { - stepperq.setMaxSpeed(STP_PER_MM*sk); - stepperq.move(-ZBUTTON_STEP); - stepperq.start(); - if(millis() - t0 > 1000) sk=4; - } - delay(50); - digitalWrite(8,HIGH); - } - } - } - } - else { - stepperq.setMaxSpeed(STP_PER_MM*3); - stepperq.move(-STP_PER_MM); - stepperq.start(); - delay(1000); - digitalWrite(8,HIGH); - } -} - +/* + J.A.P. is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + J.A.P. is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. +(c) Alexander Shvetsov, 2019, shv-box@mail.com + based on work of Vladimir Razin 2017 info@3dlab.su +*/ + +#include + +/// Movement settings +#define STEPS_PER_MM 1600 +//#define MOVE_BT_STEPS 32 // 0.02 mm (32 / 1600) + +#define MAX_SPEED 5 // mm/s +#define ACC_Z 10 // mm/s2 +#define TIMEOUT 10 // minutes + +/// Bounds +#define Z_MIN_MM 0 +#define Z_MAX_MM 185 + +/// Pins +#define EN_PIN 8 +#define DIR_PIN 7 +#define STEP_PIN 4 + +#define MIN_ENDSTOP 11 + +#define LED_PIN 10 +#define COOLER_PIN A3 + +#define BT_LED_PIN 12 // LED toggle button +#define BT_MOTOR_PIN A2 // Motor on/off button +#define BT_UP_PIN A0 // Move up button +#define BT_DOWN_PIN A1 // Move down button + +/// Serial +#define BAUDRATE 115200 +#define BUF_MAX_IDX 255 // Input buffer size - 1 + +/// Button debounce +#define DEBOUNCE 200UL + +/// Debug +//#define DEBUG + +const float TRAVEL_SPEED_MMS = MAX_SPEED; +const float TRAVEL_SPEED_STP = MAX_SPEED * STEPS_PER_MM; +const unsigned long STEPPER_TIMEOUT = 60UL * 1000UL * TIMEOUT; +const float ACC_STEPS_S2 = float(ACC_Z) * STEPS_PER_MM; + +const char MSG_OK[] = "ok"; +const char MSG_ERR[] = "!!"; + +typedef enum { + FAIL = 0, + OK = 1, + UNSUPPORTED = 2, + UNOPERATIONAL = 3 +} CmdStatus; + +/// Stepper +unsigned long motorTime; // Stepper timeout start time + +/// Motor control buttons +bool motorIsOn; +unsigned long motorBtTime; +bool motorBtWasPressed; + +unsigned long moveBtTime; +bool moveBtWasPressed; + +/// LED control buttons +bool ledIsOn; +unsigned long ledBtTime; +bool ledBtWasPressed; + +/// Command input buffer +char buffer[BUF_MAX_IDX + 1]; +int bufBound; // Buffer current bound index + +/// Z positioning +bool isAbsolute; // Move coordinates is absolute or relative. Default is 'true' +float z; // Current Z-axis position +bool isOperational; // Current Z-axis position is actual + +/// Serial input parser +float parseValue(char code, float def) { + char *ptr = buffer; + while(ptr && *ptr && ptr < buffer + bufBound) { + if (*ptr == code) { + return atof(ptr + 1); + } + ptr = strchr(ptr, ' ') + 1; + } + return def; +} + +void enableMotor() { + if (!motorIsOn) { + digitalWrite(EN_PIN, LOW); + motorIsOn = true; + } + motorTime = millis(); +} + +void disableMotor() { + if (motorIsOn) { + digitalWrite(EN_PIN, HIGH); + if (stepperq.distanceToGo() != 0) { + long pos = stepperq.currentPosition(); + stepperq.setCurrentPosition(pos); + z = float(pos) / STEPS_PER_MM; + } + motorIsOn = false; + isOperational = false; + } +} + +CmdStatus processCommand() { +#if defined(DEBUG) + Serial.println(buffer); +#endif + int cmd = parseValue('G', -1); + + switch(cmd) { + case 1: { // G1 Zxxx Fxxx (Z-axis movement) + if (!isOperational) { + return UNOPERATIONAL; + } + + float gZ = parseValue('Z', -1); + if (gZ != -1) { + float newZ = isAbsolute ? gZ : (z + gZ); + /// Check limits + if (newZ < Z_MIN_MM) { + newZ = Z_MIN_MM; + } else if (newZ > Z_MAX_MM) { + newZ = Z_MAX_MM; + } + + float speed = parseValue('F', 0.0) / 60; + if (speed == 0.0 || speed > TRAVEL_SPEED_MMS) { + speed = TRAVEL_SPEED_MMS; + } + + /// Move + enableMotor(); + stepperq.setMaxSpeed(speed * STEPS_PER_MM); + stepperq.move((newZ - z) * STEPS_PER_MM); + stepperq.start(); + + z = newZ; + Serial.println("Z_move_comp"); + } + } + return OK; + + case 4: // G04 Pxxx (Pause P milliseconds) + delay(parseValue('P', 0)); + return OK; + + case 90: // G90 (Set to absolute positioning) + isAbsolute = true; + return OK; + + case 91: // G91 (Set to relative positioning) + isAbsolute = false; + return OK; + + case 92: { // G92 Znnn (Set Z axis position) + z = parseValue('Z', 0); +#if defined(DEBUG) + Serial.println(long(z * STEPS_PER_MM)); +#endif + stepperq.setCurrentPosition(long(z * STEPS_PER_MM)); + enableMotor(); + isOperational = true; + } + return OK; + + default: + break; + } + + cmd = parseValue('M', -1); + switch(cmd) { + case 7: // M7 (Mist coolant on) + case 245: // M245 (Start cooler) + digitalWrite(COOLER_PIN, HIGH); + break; + + case 9: // M9 (Coolant off) + case 246: // M246 (Stop cooler) + digitalWrite(COOLER_PIN, LOW); + break; + + case 17: // M17 (Enable/Power all stepper motors) + enableMotor(); + break; + + case 18: // M18 (Disable all stepper motors) + case 84: // M84 (Stop idle hold) + disableMotor(); + break; + + case 3: // M3 (Spindle On, Clockwise) + case 4: // M4 (Spindle On, Counter-Clockwise) + case 106: { // M106 (Fan On) + ledIsOn = true; + digitalWrite(LED_PIN, LOW); + } + break; + + case 5: // M5 (Spindle Off) + case 107: { // M106 (Fan Off) + ledIsOn = false; + digitalWrite(LED_PIN, HIGH); + } + break; + + case 114: { // M114 (Get current position) + Serial.print(isOperational ? MSG_OK : MSG_ERR); + Serial.print(" C: Z:"); + Serial.print(z); + Serial.print(" Count Z:"); + Serial.println(float(stepperq.currentPosition()) / STEPS_PER_MM); + } + break; + + default: + return UNSUPPORTED; + } + + return OK; +} + +void setup() { + Serial.begin(BAUDRATE); + Serial.println("JAP LCD"); + bufBound = 0; + + stepperq.init(DIR_PIN, STEP_PIN); + stepperq.setAcceleration(ACC_STEPS_S2); + + motorTime = 0; + isAbsolute = true; + z = 0.0; + isOperational = false; + + pinMode(EN_PIN, OUTPUT); + digitalWrite(EN_PIN, HIGH); + motorIsOn = false; + + pinMode(LED_PIN, OUTPUT); + digitalWrite(LED_PIN,HIGH); + ledIsOn = false; + + pinMode(COOLER_PIN, OUTPUT); + digitalWrite(COOLER_PIN,LOW); + + pinMode(MIN_ENDSTOP, INPUT_PULLUP); + + pinMode(BT_UP_PIN, INPUT_PULLUP); + pinMode(BT_DOWN_PIN, INPUT_PULLUP); + moveBtTime = 0; + moveBtWasPressed = false; + + pinMode(BT_MOTOR_PIN, INPUT_PULLUP); + motorBtTime = 0; + motorBtWasPressed = false; + + pinMode(BT_LED_PIN, INPUT_PULLUP); + ledBtTime = 0; + ledBtWasPressed = false; +} + +void loop() { + /// Motor timeout + if (motorIsOn && (millis() - motorTime) > STEPPER_TIMEOUT) { + disableMotor(); + } + + /// Motor button + bool motorBtPressed = digitalRead(BT_MOTOR_PIN) == HIGH; + if (motorBtPressed && !motorBtWasPressed && (millis() - motorBtTime) > DEBOUNCE) { + if (motorIsOn) { + disableMotor(); + } else { + enableMotor(); + } + } + motorBtWasPressed = motorBtPressed; + + /// LED button + bool ledBtPressed = digitalRead(BT_LED_PIN) == HIGH; + if (ledBtPressed && !ledBtWasPressed && (millis() - ledBtTime) > DEBOUNCE) { + ledIsOn = !ledIsOn; + ledBtTime = millis(); + digitalWrite(LED_PIN, ledIsOn ? LOW : HIGH); + } + ledBtWasPressed = ledBtPressed; + + if (digitalRead(MIN_ENDSTOP) == LOW) { + if (stepperq.distanceToGo() != 0) return; + + int count = Serial.available(); + int i = 0; + while (i < count && bufBound < BUF_MAX_IDX) { + char c = Serial.read(); + if (c == '\n') { + buffer[bufBound++] = 0; + String msg = ""; + switch (processCommand()) { + case OK: + msg = MSG_OK; + break; + case UNSUPPORTED: + msg = String(MSG_ERR) + ": Unsupported command \"" + String(buffer) + "\""; + break; + case UNOPERATIONAL: + msg = String(MSG_ERR) + ": Printer is not operational. Z-axis position must be setted. Use G92."; + break; + default: + msg = MSG_ERR; + break; + } + Serial.println(msg); + bufBound = 0; + + } else { + buffer[bufBound++] = c; + } + ++i; + } + + /// Manual moves + if (count == 0) { + bool upBtPressed = digitalRead(BT_UP_PIN) == LOW; + bool downBtPressed = digitalRead(BT_DOWN_PIN) == LOW; + bool moveBtPressed = upBtPressed || downBtPressed; + + if (moveBtPressed && !moveBtWasPressed) { + moveBtTime = millis(); + } + + if (moveBtPressed && (millis() - moveBtTime) > DEBOUNCE) { + bool motorWasOn = motorIsOn; + int moveDirection = upBtPressed ? 1 : -1; + long maxSteps = (moveDirection > 0 ? (Z_MAX_MM - z) : (z - Z_MIN_MM)) * ((long) STEPS_PER_MM); +#if defined(DEBUG) + Serial.print("maxSteps = "); + Serial.println(maxSteps); +#endif + + if (maxSteps > 0L) { + enableMotor(); + + if (moveDirection > 0) { + // Stage 1 + stepperq.setMaxSpeed(0.5 * STEPS_PER_MM); + stepperq.move(moveDirection * STEPS_PER_MM); + stepperq.start(); + while (moveBtPressed && digitalRead(MIN_ENDSTOP) == LOW && stepperq.distanceToGo() != 0) { + delay(50); + moveBtPressed = digitalRead(moveDirection == 1 ? BT_UP_PIN : BT_DOWN_PIN) == LOW; + } + maxSteps -= STEPS_PER_MM; + + // Stage 2 + if (moveBtPressed && digitalRead(MIN_ENDSTOP) == LOW) { + stepperq.setMaxSpeed(STEPS_PER_MM); + stepperq.move(moveDirection * STEPS_PER_MM); + stepperq.start(); + while (moveBtPressed && digitalRead(MIN_ENDSTOP) == LOW && stepperq.distanceToGo() != 0) { + delay(50); + moveBtPressed = digitalRead(moveDirection == 1 ? BT_UP_PIN : BT_DOWN_PIN) == LOW; + } + maxSteps -= STEPS_PER_MM; + } + } + + // Stage 3 + if (moveBtPressed && digitalRead(MIN_ENDSTOP) == LOW) { + stepperq.setMaxSpeed(TRAVEL_SPEED_STP); + stepperq.move(moveDirection * maxSteps); + stepperq.start(); + while (moveBtPressed && digitalRead(MIN_ENDSTOP) == LOW && stepperq.distanceToGo() != 0) { + delay(50); + moveBtPressed = digitalRead(moveDirection == 1 ? BT_UP_PIN : BT_DOWN_PIN) == LOW; + } + } + + // Stop if moving + if (stepperq.distanceToGo() != 0) { + stepperq.stop(); + } + // Let's finish move + while (stepperq.distanceToGo() != 0) delay(5); + + z = float(stepperq.currentPosition()) / STEPS_PER_MM; + + if (!motorWasOn) { + disableMotor(); + } + } + +#if defined(DEBUG) + Serial.print("z = "); + Serial.println(z); +#endif + } + moveBtWasPressed = moveBtPressed; + +// if (moveBtPressed && (millis() - moveBtTime) > DEBOUNCE) { +// isOperational = false; +// bool motorWasOn = motorIsOn; +// int moveDirection = upBtPressed ? 1 : -1; +// const float RATE1 = 0.5; +// const float RATE2 = 1.0; +// const float RATE_MAX = 5.0; +// float rate = RATE1; + +// enableMotor(); + +// while (moveBtPressed && digitalRead(MIN_ENDSTOP) == LOW) { +// if (rate < RATE_MAX) { +// unsigned long btDownTime = millis() - moveBtTime; +// rate = btDownTime < 1000 ? RATE1 : +// (btDownTime < 3000 ? RATE2 : RATE_MAX); +// } + +// stepperq.setMaxSpeed(rate * STEPS_PER_MM); +// stepperq.move(moveDirection * MOVE_BT_STEPS); +// stepperq.start(); + +// moveBtPressed = digitalRead(moveDirection == 1 ? BT_UP_PIN : BT_DOWN_PIN) == LOW; +// } + +// if (!motorWasOn) { +// while (stepperq.distanceToGo() != 0) delay(5); // Let's finish move +// disableMotor(); +// } +// } +// moveBtWasPressed = moveBtPressed; + } + + } else { + enableMotor(); + + stepperq.setMaxSpeed(STEPS_PER_MM * 3); + stepperq.move(-STEPS_PER_MM); + stepperq.start(); + + delay(1000); + disableMotor(); + } +}