From 78c61e4c2d3c96c37ad7e874abea61b66717e222 Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Thu, 26 Aug 2021 09:50:11 -0500 Subject: [PATCH] code cleanup in cloner and checker. proper cycle detection again --- bin/onyx | Bin 418280 -> 426616 bytes core/alloc/heap.onyx | 2 + core/container/array.onyx | 12 ++-- core/container/iter.onyx | 6 ++ core/io/reader.onyx | 58 +++++++++++++++++ core/math.onyx | 16 +++++ core/string.onyx | 5 ++ core/string/reader.onyx | 5 +- docs/bugs | 8 +++ src/onyx.c | 33 ++++++++-- src/onyxchecker.c | 131 +++++++++++++++++++++++++------------- src/onyxclone.c | 109 ++++++++++++++++--------------- src/onyxparser.c | 9 ++- src/onyxsymres.c | 4 +- 14 files changed, 285 insertions(+), 113 deletions(-) diff --git a/bin/onyx b/bin/onyx index 4c0e4e12d2606c9c3ad36d494ee7a2153cedf581..daf84b19fb9b26b1f329d2d04049e4d887bcd0ab 100755 GIT binary patch delta 149859 zcmbrn30zdw|NnpQbw+U=R8U-yQBiRpR0>pVP|QI=am_8GOf$741+`3v8c?Tcin`g@ zPGxHAhqByq8CP7=$g(syD$6_KLY9PE{9f;K&xM)u{eJ%c-{bM)`^|gL^L_U7KJT;M z`DlAuRpqxXjA~XqQ(}L1{UL3B>ZNXHogX}5Vs7Iph3jG&4<;$q<&y9WYe+sM$#@2b zs|#NGyP3&LuZKR@cVk!ze}X;L6>_ttmvt`{cZ{d{k$klM%E`J@e4cNl$8cVKP04Kf zKax>zDlbI5vi-M*UY)dCj;hz@@EaWpF1>YcMbiy$)`_g^ zfkzzEt3wlbYtAbKZsoj+bElE85kRWcOKI@WzS9#36L@DHQMkZ+a2_S_^*kPHD0fOR z=kx^PLIu*S(>k{aJe%`GfiLCUF7W3$cL@9)#+{OsDF`;4(G#91@Gp2oSpr|j`7D8d z&3U%KAL0dGOdRP;Mpb{q1LO$-j&Z(H;9qpmo2pRYC%OOC0zb!jQ4pu}r9Ze}eUO0o zRnChAev9+X0^iMR&M)vroF5Q)%QGgHzEmm*VtIfQ0`J3lnZT1d*97k1yh7mPIIpU7 zhHCpb)aN;4L_xCGfVKXA8Wy&YjX?LC}c@$P;)!&Q}V2 z0Oy4QznAmX0w2S95#y+Tqx(I;1?zet|FL{6H|L_IGnZX|MqN zMb1wM+{byDz>7H71pXQ46$0N5&h)QJ5FF+Kq^i(f5Xmi9n7~hR|KS2Z!+Dgzf8*R* zW!ClIXabE3;)DQ~IJXJ>8s~`uzrnd(;AUO`M-A80mzr=vW{rS4pCm2DBXXR&Yd;g?@b;+x)G{$c|1V4z~ABiqXcf}{^JDx9`|nx z;ne;-fIUPYNo#okhrsw9*=0Ez>SEq1YXJ`nk8^Mk0)E;Mm&o-ubKb<$Ro-V0!Tcfl>#>+Diru> z9?xol`k-Tz~ea}aH$z(2>Mql2#knM z2>fpzQJKJtn(8H!ZiOoE96mh{6ZkUD!-?!y_sZ_&41DdVyzf|HT5o%>8dRIJbY& zUtHif1XTa{yO&3FK;S=f|D^(N$o-!XcstI^1nzu@ujMpB@DLABA@FIOR|$M7k4L&4 z+6yLe9wzW{I(JIpf}lMQ5GC+f&aDC;zDMz}IoU`L;0s-@*lcA;9;X9}xHz&PxS8;i_&wP6+&w#=3Hr z)o|YbjOnmeBcRSFN%cDF0mAuKprI>GctkdV``hSaL88Fr1U;UK0{1(4fGj~!j|W&O z@NmwH1#V=hRNzL2P6*t{kTXu!b8M8%aOVl!#iwE`1@7UzP~b0dzFOd~a$cnK+WG%F zE?6%F_?+`%ftPT;S>WGu?ictO&JToewErb8C=C%v(oN1!2)vr}GJ!YXgO(=n4xCpA zyfbmqzbZlC8K5hRq=Yuj-8`Z&fsf)mT;TU`9wqSmIJbf`{Wscv1{cH$0Tyv?6S$Z2 zM1dD^ZWs8+oI7f{-v7Sfg3MY0>weog&l0$ybh8A$pZm`i_z#>f7Wf~hoVuaN69kud zfRzHj&3U1~!wicl@TP{v6nGoMVmbvu7Pn}{0*~eaHVa%HsOySf;4$3)0f8H%Ybob7 z^M7M_Js||>#v>{dI3K?yP2khH{|bQ{^MI;Q?v&zr0I5!>w)f*aOyFHO4;Q#GDn<$1 z7!|Do*GEO@Uz{K?hGUz+jo~;^;CJy1*#+K-bBDl<2}>q%(to4-88eoNLI7jNk|l6s z!ZJ(X#)KtX;KqbyaS&(y&zP~~1qrDC88eoZ0;h=s{S^wlX5Jw1nt6l3QFD6#UoQxZ z$z-v>jfuu)fg6)pzrbhkjFt(!JKssEsKeL)Mibo41(GRL8HaElF7Q#DTLnIabDO|t zac(!bUVcf+<$_E@z$#dhmU5mY@B+@W1zyN`p1@z@yinlI)m%^{2#Po_7WjJ3{Q@uM zyj0+uIWH6VE}c823PEs)2awF6O>m6!aDo5KxmDo5b8Zv(70&I9qyCMyzsv=hLV)X> zX9@fc=h*@`^Ifq#fj8#7Fql*Ox8Q=JU;%gx=fwi=!nt4IHqJ{0-kRaUL%42RXM2{87$r0$<3vy>4Ay|BWVC#s!%|fEAo)3H&9_vjzSJ=XnBO z$9Z85*VC7ZxuB>sDP_zBL-1b*Jh1r>szf^(@}XcOG#JY3*m z0o^291s=hC43w#ylR)H6BZVTm3>0>UihYF;PoM#Gr7w1_5|AzByf&avLp1{i(hyE1`f{Q#r zk--1ryjbA3Irj_Pd`Z`#Qh_(&yo@;MztR0#azTXWpe$$6&0@8dj6;L|zJ7Wf>_^8}uAiO>HF1%ZnPC=$4r^J0PfIQI*D zE$5{I|BCanhQj=R4;NGj0Zwo(H41Hl%bbS`{2$J(0W&*i*G;0rk~7WlKA`vv|2=cNK)4bJqhOc1Q+0V)K(nRBU0XcO$_ zJY3+%IJXM?SI%usg!%s^F0cy$syNRSxQXxcX9+x<^K5~)Bmh1iRZ!RdS6|nwS&3T2u z>+`D^62E$36refh;R285+$!)cfAaaiO%TNM0Cs^7;5<{{V>!z#tY z&Tgehl3(BwzabUI#^X7Yn?Q`#&IX!+!;F(*K&A@&IA{c3TbSCAA5>B3jQ-w!n+q>bzLsW&EmU zMG$BG&uY~J*bF7p2S2IENI>A3oEHmR;=DrOSv*5Feo@gVSa@4L{$~pUN_m37xGuX|;KudZQh^({Wi^4b>$RvwD_1@vL&j~{M8;A7 zhQPR9n=J(Jb8TKJaN~OI34wR!O%u+0gAsook0&meQ~Mj&ZnJ^~#Cd?l0ynPR77N_4 z`3D4UT)UMF`@(fgf*oM`7bOUc>#~^wH*UGk61Z_Iwn*T{W!B9CH*UXHv=iq4#;w&b z!her`$E*Kpqdj9aT^H3B{5JRYD*;Kt=t2e+I?8ygpv zORM!`c``rzG6#$BL=cZ4!qb<^f&?v@SN$I?h<6C$6+ygX5RZ~{i&qa!{~%HqT7$R} zJEWC=KhG>REj`0bH7J!QvW~}bH7e*()vIqbH7Y( z()NIzxt}99X?eiL+|QDmv^!vB?x)BNt#(R*a0ccRXhI$&=AKP%(&9kHzW|*cA~$Jo zpp3aElbf_QP|Dn6$W7WB@H6*ta+8(@ikW*bxyfP$ikQ1Uxg$w^0)-6pAwXIh$Ybtq zxk)<%cIIwCZc@sCjky(alQIUZ%zg7SxTAX$ z2xs6L0n)yJ1ozPR^A2y%yS_I|fy+ZA3C_UL!IGp}$E5d38!bya??UsZx%X-V;c$49 zuYYHf#yC9VV#6Hn{qg?l`PSF$dN`7A;r zOlG`4rFxMS|3%@yaBaj$wb9stEglOFlm!PuwE9k+Ha1E*mjNG9YT?+V7MDiVM7>u# z2M2tuE>+KsZEc#GAxl2_N4dEgJ}$1+Qu5e{XFVGZ8dh5t=-ICmY96Rh1k%!QtsPIALge_NEx5*?Rm7Bnl-+!oTk1qeo)d) z93?s2<~lgeaG#i!@N$f zeq)yYMZUY>seSYxh5Q|cKiD3t!;`!juUn{-IlPhIl)y5%&DRgZXLbsqfCWLxbhrlo1)$0*Vg z%8!#8W|$3Gb(;%`dd+F{aGRgQqdM|5ZizTNk!RQ=;V3=aR~_y>@bDx&XjAR1ULEc$ zTS(RZa(sX?f4iR|>Y23;9z5uCDBE7_xuD(>5N4+3svq^%0k2!*)UrwK!`s}AO7%8g zybyl8$+`R0rjwJ$ynukZ*MyG`AwEy?n|N57=Et5uA+}O#TgZA7(Wv#@Z^o9=)3w*8 zy>u6g@m4O2v3wtu$e|WZPK-9O{6ro(hx6BCAPvtJf!YtbZONWcBxh zYWpb>(H9b^!6UP||8#ej6&>HAbfuNp-CaXg8~?k@CqLR)L!1dUZ7vx!`@1dSyy%{nt}jwQV?{ zwwW5;=lKI>X$Qq!9r+|)9R;UyPdhy3?RcjuvUD}i$15I7nAD%sLA7SL42Rz31JECu zpwj{MrK#g5|AD)h85liVp+=A49mIeXLYHS?xHwsE$X^$}FJP@GcQnDPNyQqGt z&wfFzm6RGAWyv3eahFBo86KA82wM>Da7Vrde=`lMg9?6hh%8YJjb!N~m}{}Ao~2+Z zVn(dL?Pjq$E&0zPE|0y6QdmUM!m2{1E$NFIMaH7wc@q?rGM0c#_;6Gx=xve-$tlDGephZa5HG*X9dI8{$uCQ?F6`_B{T+ zS%Qrm>7z%d+w)CQc^6AeDve565k2C_lj~MJOa6xlU%5xlJ-L%+1lqhmVXlubk2;w4 zr<#@3N`7B`Dl5AFjQ5ZQZ_h#Rt3_EIoX;UrZ50CS)KFgSYs48iVpI}3>P<95UV)I-UUQ$SqmMW)Yx#(;#Uf)E%_(NhsWF= zAw20AH9b;Nn8lg@GhuJ?FHf+J&-bPwz5zyv3 z9S#~uLUS8j)_EV|?MV&12^~?BFwEKuPC(Lt2T7g12~9a)q~n6mf%Be^jfF)B%W&Tg zEUTpI!T5^gKHiCDINKYl=iL??4j=9lTWI9_>thJlE~0|vHICkEmgLd1rP(x2#le#{ z5N4c4pYk?n44)H`FnwHpySmzwSygb%lD`D6h$5Zh?`@;_lkMcqy-zEI)3wxOUbGjM zTx$lCRK69_jNSutyb*cbF&Igtd$MftepH+mk7BUyu<~WS@#EkTeW#A4K!HaX5$7Th z_gR`WnKPLN3>pRj#t4u3Hu{S0xspP=7AH#E5lXV;+hP9Fy=z#h^_1dbs0*48A_x*L z$&a;@PyE5qBx;jmWhu}Qfp}fkp}On`qv>#ZzKoS9E8gVKFoMMUx1$u2HoG&r?5P__ z#eFrtGKHDuzlF(e20SZo8Rt`os$W+oDhH@dq!M_mVu%n>TvJzD$wV+4{?f=U%$y}fh zqE~X&UNc%a7wR$W#Mi5TS;DEy7E~@?8WLcL9^f>FN|yRxmT9~GvP|}C{Sj8TJ%yJj zAFSI4x}gK6yZ=CbCnE&R@^2kc&)OaM@Ft9SOs}wc2#PLI(2PtZuN^zp#=^hUoio~* z19Q-a)N?ahD>wdCZ_S8N*8WTU{=h-Ru8pSTya^x8)g#*tXMsOAoX3+#@f=~sHQ{yc z<(*nDouCOadHG29@*?;0^d;3dv#-2PJv=kUc`uVCTVXB@)hPEP$!PAm9*Zw05vVao zf0r{I=mgZ9qhA=x9Y5TYnt&BVeyjs&2QI?=jr7a~@h1E{2i6w7Y!mZo$-hq8>`h2L zz0R2jQW174Vm( z-Oc#RY3}c)Io#^gvl>j;KN)%THXg+u$*a*lsv~c%HcNjOBFdMxK!d&J=jf4Cl@keN z`Vlf%t(^MRWtNycBp~hKPxyb3`A?XSg^~S8|?wtUo+`i)-uH@$s7&Y^I zPGi`gjjz!}buo}O9jWd&-`=dIJesY%5l}Zg`ejtX1z7lREiv$a!GXn_`)IoRuy#*C zbf;v zkd=nNs=v+4my^_4*+-QLt<}UQwkwZZQ2%*iq*CvKI&A)n^&kI(750%o)N}JcsK5Dl zGH21B|E_u$ENlG4Sv0Ks9IZiTo>ilA9#w9gQC&Hc6>X||E~izqpQmDe@Y~G7tyJZx zu{~4O2Du%Stg~vb+yP2Qdc>&D<#vp^I?aT+hp9N#y`Nca*mAVl!86Rm`P|-$`-~d7 zFkKmOMwQ*I)TbAQDcUJ@`NDopzc`KhIN)$y3iI3(e@y%Bv|6z+QY~B9MA<>FJ(R-J zYP&^N^HTAf?d@P|EP9c(p~BGlbX4t zpHlVXhUH5hl9e^b)r(J8w)o@+bfMZlRCvu2-Z=YywQ^~>(q{aI-04@LcepE3=74-=qt_b*&L`&-qN-(G3?mD(l$ zP36fi)qVL7G@o^ZCPevY8A)Ob|9WfGy9@47emtTsF7PYkzES%xU#L9)p8Cb|$%_3O zwaJPeQ^y=ekqcACIoy9b+&6d75A==4%(a~6oLERg3$=Uxsjg;v5ns8}P=o>Bgfgug zK$>@4EPBrs=1V(qNPTrh_n}LIV)_T4_0m6AiOzCJyK`f9HXKd8pK@2cPI5Hxtd*8QM5-TjO*ai{u+dq__si6sZoH+0qB z$s(K$5Sm2P0d>N2?dwGzU{gx+CZoiy*S+Q3HX=fIm0Au(+-Kuv^eGV_RfMeU%Repzky$~{xQhF6T-7Xo9DF&H(PUShL?nW`8h?l#3@ zmaq~_UCi+kGG3-75;ig%?q3}4xwO29Od*DD_2+Ns;sax~Nr(}H$KaRMPhN>_-WF1} z?V!C(^Iea*;mhi8uO!TR`XwxeH`*gyWpxHBmi(Ql!gTM$u~|suHHgyP0YvR%ZxZELwDVVnR7OSk^Uo=Z4Lrk<`ZB$mBoQA3HvMDeMFbI^l zG{k_sjYSqQynOvN)=xol&wX(YT5Y_Kf_N4+O7)Dwq^EJhT&xc7ad^grrF%>_08Eb| z5>KOD@axPOVc9e|78alasiQVCJ%g>-Ma8Bo3Na2@$tFh=St8not)Vr6Nt(5uiQ=sr6mR)j zV@d;gX_O+loJ&kfu!rSA9*W7s5|b%N9-s-0zHKr#&NTpCb#Ry^|3$PI6}>v!ind8Z z%U5SdRcD8zg+6H@OP;YNs=0z=!4b7)5lK#_Gj~(vdK;IL;!QU_if4>fZ;oV35=~78n;f3`ltn#n zsqWp#UX!lKU*LY^1yw#9abSzSM)xcQ1&Ax)BU>@Em+E-+lv27y?d0pDytzf4l?~fKdLAPHmDQccvRWGLEZJnVELMAdNWPg`Gq>_ z%?ZkdFVuB!Zc=u9u4cV;PB~M&A?58ZvhwAB)YmsLs&_w^_o~C*)0FQ%RpZ|;QsO^VzklB+UsUI; z87l8qKVK824ERJnyk?qm=3}+{2M;Pwf4t#^51x^gGwal*>mn52hiaE~(b22d!%nx= zduckRGjS-gKHzJ2)~gS$>!!%-Rqwh!O7wbl*SfCC{B>&f`ee21`c}&Db!zJRZpxLl zAd|c7UQ2dWulL4gsOHw`Xe{*GPkS?)GCKh_<;Ys~&-H8Db;7zHlNTIr{G+vE@0R>$ zU>L}})*q~X_2H-o6HSuGR7e&B%UbLS(ZWDq6qYx_WV97xbGYlo`^iA?SpyO?C-q}| zO1wXmXZGU$%a0Wq)9jk{o@1Ea$8(7;Ch)R#Ycy?0?-8eOi^=u$whp5%YO zFiRQkGN|EgygA&v(7$IR8R*b&KdDnb?%cGyg<`Q3JkNS+<8gh}mp^{F>FRqJ&3_S^ zgcL{jRTDnxpght;o%Bh2xu3e^ljCx~4WmEpXHxDPqOSP-UFC-}YPT=!%I-vU?iVvU zOi5&QbWaMluWbL6x`)~V^;yT!Cp}u5MD?#Px>>GbzZxa@GR?CzPV11U_Sg{L{6CCY z3L3*d<7e+yvp4jS!beH2de7m8QtVEnrFMgRS_f&g-^>W8K*jc8!o{C0D@nqOo zqTg4gxbL+EzDB9EZVBr7ui_MIg4$$bj8ffC?Y%KtDeI?>+}Kh1x}UlLk5~Jts{t4F zQ#au;v7h?m#&$|#KeZCFzxt|eHg!<0_EqoM6s?r@Ri|z0*x}>8dZHs)qA2BSDgP|B zrMM^90=F@SYM#F8`VJHe}EAQIBk%*!)7g9#<3!%HnFFhsoH|ruiB!JC6)8 z+4u44k}c^yx|^gN6WcLKu{1>`?Yhb3J$Qh3jYOuzvkZi7jc$GcM?|D2|1lzK5w9k0 zy}$V)&f|?RYi;U!@Oqrb-QtnoWn*#m{JKr^y}k9gB8<5H>a9-sIm4h|8=-n6Pd&bM*w+hueazj1hk5TfvsaO2DDNjB`qr-SB`t3rzYL7Ocjy*Jv7EII#bk2=9o3%%r&+2jB zY{B9jj;OWPFQ{vF&2HAN9gS#w;Gj|CtZLo;YO`L^p?KyQ^}z0}{V%o+#jl^H(Q&Ue zkc^gfc!q}YVdo0zhdN;Y86{_>+PY-0l6Rjvtz?ceWSn}q zSTI`s`oN4V%DD#f zm)cU@eXyf5$^vo0vE2T9$O`}4#6(*yx8?U!_pGIuoA`r1oF@zP5t{&a{a@5X%Zf}?RmBT;r`0Xz3Rfl zU6uRys_!12pqTfnHxA#W9NDABe{+|zYLEKpH;8$U`qDR9_l&?q9W|a#^YwYVSPf&# z)1UhxuNY5qSMuQ<8^%wr657L^vKiJ;(gy8PZAS*myVS>y#3{p`ReeY9j%@NQ7WY_; zRPjl%UD5`;rT%tgvg}s}9qp>*KBGQ*bg0tn8MXN6a`_GQ?r%FP&*rI9zrC;VOEiyi z55qDhdD#o9|69ks{XmR#X=3GY@1`@BFm1#RrmC0@`Duf}M5js!W+FeH1anO=_s^Pj zhdQ!!q`X~ytF(&}^@h5?bQBydzU!Q_NYQmE4yg|JP~wrULG(!O2bcE1 z+sLLjVPZ2++SZw&P-GlvFYZznd?D->2G-Di#Nz?-L!96&4TO6j{rh{1m zIKe?G1JXU_u9--opgMOOGBg&`lM?c*{ZQ*M_XM(If-gN0%y~<1)seI>V5yOt-WnxOK2 ztAc!t(}u5=1BezoBzll(bdzQB-=sF6DphLDHZ zx`z>lhlgrBB=jKpa9!TfkQdj=!%5yvm*0ApXK)h9y~#JiAsd8|iFB+bt21vxCBYkX z$n7@owonLfwC5SrwYO)gTfO;1pCp(7M^bt2Y0PRcDei~GTjUJ*+meSq1J9#-LNm7Q zAq9>cigz+T9iTBO&#E(yC(CWr!XG1)+(YV?=yfb&0$kE#5P5!sF>i986 z*>@1`PD(pH+{%OM+8?dl>*#~(8N<=I^+BXgW_~*Cr@HHSgp#5M`R#x@;wP)zn$mTC za)A4~PJ@BBaoaW+d8X+j&+*1k9B*=)hfo0#i*@_OHmcIxx3O1+UCQgwyF<)YB~PfT zBaPLT_E2b#fR=*ncysc>MV+~?&JEtHwd)Tk2!dj45} z%5mSKorrLn#h{LU1Y!mO*4)w+=d9ckUHMAQI}tB`rG9Z@%-!oJQseByl(Z3zp*N`7 zu}I06nc5|98ICx*0dCDAi6@~LK-;rX9dOd#_(8nW`6=+U;p)nhTS=mW`(Hf&)1{U`DzRR6Cv?F_MOKm^QEZ_gEy4W8O4mJ`CF~!K3p@V$$J!+dXz1l9gNP9L|IPBME;gv>u+Q9TC z&*^FMjk1{{l`nRyPoGH|c3)!}R&%CMM(oi1IBlp-(vZui`kS#;h${;;12?(K!gCu= zp#_eA z*A3!lajIYbna-~))>BS%JsoS4a+;@k@zkE4Hiac=S@94pUBD8xgHSEx!m?r%5N(Pb zn1H4J3^=gV&%hp?HN*38tTk{BeXp>@{3?$);D8Ufmvc82aff>KT*oF8g2)TKRcl#? z#+_@>1#P4{s;r$-ZC2-%^>(^$S}ZGkP=d`EK%`1@#t>xNl7BDKVtT~qb1N_k1?$s& z*ybaHu$lBJKiI4)&sn6`LT=l@c^Cz%nl#T)1YH~jqcdyo@p~>hG%R zV99?M`GblLAIwy2#9;h5CQa=IkUB$SABTSSPUiZF*#R;_yK}CpkvaFes_N&Y;4Fn2 z=rC?wrnm;iW|WwpUub5hh?W&}`br7HVh_OLsb=4d0{o1NrKD(|Qj~1vPFsGJ=3ksC zsGr>4gjoYnax)7l2(|~9RxBThW)959KebzH!FBRcTxgy6w+Gire+pL^>|eu}Ra=Kn zzgCC<->`N>F05<`PT9d00a?}g{aJK|^Lt!?)iwDwG#k^}6I@kntf#+MkFAmNW3in< z$%5MB90SZ3<7seD0tK)!0}$^Iyy-+>N)08Z)b^pCD3l%R7;HZTmWGO#(^ZFB-#?{? zI49!rY>@O(y0utakp8#}9OOJTkU5=3!7kw@Z;C5D)`U6H1?>thi6i-Hwx}_O<>)G5 z1-b;3V%az@HW7MM59S(HGYpSizsBsk8Kcek1LZ;9u?EvV)FatSk<{kneO#b*P#5qn zwrLZb5VBfa#gYQ{WTMK(#5vrVaY$|%FmqWLAr?z$NV-x-#P#1UD)HUH>Jg7_kdrQ{MJPNTD{)1}((tmo=og$X4md$Vqtn2w>1%rm+%qF1Fx9R@IJ<SOrA7IB=R%RfS1X>N(~ z!+!Qb_)H^9RG``}=htFuvvfbK=i3N4!SMSzW;DTmZ)^!J^#XVuZFv1m@Om`Fs{>wD ztJYaL+C_C}bDSs1^r5}VvCpu?rcK6P1&Xz39cEHC?e;mekO#XF)LCgRf0TT?ha|@P z%L~W{mJB&fv`(-ltS%nM3;ZXN-xnT$BmOe(^Of7lTQlun!!!&tyt(!{W$4k;Y<(CPx<;nG>TR0a+Xz!wWisYQ?q#@AE8KTiz4te zYLj29Ykaa7Q4BwUnT+PaGkhZ+O90yL-iuuI)U%^K#B z*US4mi)p6q+8c#gp*|m z>*>8vKeSSt@MI^jK|Amt!TZ3N5bt#R(W;%=5S-Pg5rl7_(ggJE?=@u`TVF3*mp4KJ z3`77;!<3a(iUUWHX}H`U7jUbaFZWgo{#FB*?{=o+@*SC!l5|hc1G8z!#KpCQ(b!+a zGJ$4zA6G)JksTUywPin2JLNnDFMXJotMH|*G`!F#JcW6&7>o4`wD_t9(uPNBnFs{J~U#K^(ME@_6zSlnwt|Pkp zsttY+5qKMajd|zR`!Gx)vz6G{M3;!Cl*g*GulDZtJ=UXC?yeZtVV|)6!yed4w0<{y zri!NTP7my1cE6_Xx!OZndQJWFYJ~F<9_k{@v0a#J39hRjOw?E#Gd(pXX>tf(ZCusOZkLKRe;MNyx)SnmBV_Qrvr~d?|>{mW~ku7uqfPuOL^RaM#WFg~{NC z8J&Q0*_3UxCU-`~J1p;iH-7_0{uK8QDbJjj zaD64$xhC&u9;))bzN{)I;^EFTrMq`)=A$SPHqS%jOhu>OhM6#T*i){mktHj1GFn2}47uKD^jW!LCsN5wt$b{gAsxe{?Fdyis{_$t0 zW^N^lpDB zwLj8@h0{*{$&$`hPhIQi#1(zAl!;Sl@tg-=#v*PFCfjmOX;9Ipm_swR;ZwaumpkkN@cov6i-CMB@EKC0DB-JP7xvZY@=*u)oYgo)e(Vj;XQbkkMXOGM< zt#BFXEA|83L+sjbRLd;pA+|tM#K0$+H2WBKjy#Svbg0ZkYyMsF{+e@b<5Mx5Yil<@ zK}2jCI2P##E;3VQN8E_0`Ya+Mqe%&2Wl(Z@!~Dc>^H zA*KP)$Clsgof}2IU5Dy!KgALpbVg0k`zY*wlsPD&Yy=ASomk_WJkvrCHt>Bqni`Dz zE3i<5^kbw02&cU<8Tr5sf|b_?hKJ!u9}SU6eR9hEfe+OmuJ>wisGQ)^MC}Q+QRQ%F zN34BZRWX+QBZ%Bp)l#=4+5@=oN_F0s8WJ0V(5Jn$zv)T-inct9kF(y6QJ&7Wa@uOn z5?ONlNwtDb$aS6KmHH;a$vJ4l8sqc^x}h_;pdaHq5M7s$mzrI%TGQlOnkeNob9j+? zKW_1|Qan=1%1AR}OToQpgaB>Zu+cQ#GsBiqaNd&N8zjXO5$n1clQYe}& zUfdKM`;RSi-Yee%V$)V&0h!_&)G}8qKN2ztwyXD4w)}4m>b&wl8uWa3)}Y7n&`L>X zvB0Ql(3t)Ie+{|~;X)gsld|cW?`}nYN_n%9Z-XLtR>qF^ol@kxsm`3)z=hM{X6dXB~f{n(K8k4Q<2u7>q_)`vVztZw%g}!hT7KN7O zt4V-qSpTj$XJMo-G>4J?jHU(Ngx#3!U_=;LiPO875oDtB;2D#}l0ZBfsM4GkL!(YX zZ`kydoit|(v|9*&{>Y|!&_6H^f6=gsTL&wayd@{@F!$6?7h>^|zo zS2Nm{5^Dc`u@E?L3)x2B%i*J0%r@TXjOhs0bC`xk#4-!~vf`7?a(iW~?29$aiAt&B zn`V|fPdkme&G5{R!xH<D;Ti=t63@4a#9 zSlEO^-{!&1zF^eu$B{X{2ujC?m*Eb#Db|wzlkZovY)i#;)`&Y4ZH9MXi!{&Ou0d$& z9cc2IsYzMz=0v5Y4wzB3pr6A#H4@v4dvT|*4%_(qcAGx8zv!D#R~|gRHR?7s>EYNg z%L?4Gl~SG=&NiZ;RoyHFx#+*pgiKfBNK3&iIMUre(sIhuQjr2v;I3Ur1`X=3{pHIZ z2OU`g6`?UM(2;x=x{^P{*{*`_hr5mV4i_yrK9jX~rB;T?p3&MUJ+*ev3B0vw1H)+S zmAG-u8v6>OO!GX2T@SPpx&o;}OW|tiCUtTxj>W?71H7UcQN8+{q|!XO4JmMbQ)Vt| zrcKFz>IHwmh`%1<*JlQ3<{Pc4wG(dQk?zKaVrj1ZSdyg2TB+TmQr$Qf)Q&$yijjO2 ze%P1K@P7#JSWl&ShK137pG_N0D??90v++!M>d*tKL2_8GaIM2E^f+9@1$h7y;1tj$ z;aW823-|>{dHUf@EgtIeHWiOVhM)cM5hDhgeHsZy=gQu){XY4%ej)t#G4G z9iZbtH79}T8CB`-8Mahxtb~)^N2PgFeLEV+OrFjM?vYwTW>mArUxXij%y8G17q?uI<9at2y%JTN0 zsjK8kGbN2M<)o*ey-^EL#Ko8sp4AR))_cu%C;|DS9#vvbBrg=tqRp(2rn@hvW5N`d z)(5+@fjh`6o1IZ)I3Ps8#Wo749sZj2D+w_WXJ;(FvIcT%x#6n~<*3M;NCg>7^G@A| zKy@gbmhJ1=P;RTJ6->ukXTYAb5?`-maTzu8*cB%45@X0qAg?r^YsnP$Rcty3_0-{4 zndhPBvCqLGdmf%qVd1n!SlA>LANJaY796zXXVCd3v(%O5<$6>PhNc_1q^IjKqUy`i z9ie+xLerggnR#|*8lJ20foCSmm^bDbVxJ)W!=b@PFF{3M8-X^?|6?^!S!nch_tUZHa2Q*oA2?hG!F$9qJs7lC&nCXQ z_IVn~ZJno1*O46mR61NYm7I?7J?9SGuA6moS~y%6Wq<|<4ufi^>pYfJoH!>@W$C%n z(zalT!6z5^Zc595TBf-JY3>uL?qBZ1VlK^7m%i}A_tGc^R^}o3cfQ2R?6d~DP>$VK zd5l#!aSueWLJVc)!_d`(CznoJf(}>_E0u*+NyePYC~X|OSAtH*1g7*A(Z1u4ado*b9pdW{L*Y|o8xn0w7x_l8XOWd32jvngp9c&_ZRoXdx ze>agcyU(H-h&S?y3^TU!F;$>nD#9?9vj77VCJ?xkkxBCiNjvwaZ=OZ&-|TRCXm@G; zqVH?)*~5Njn>hvVz(ye{J1RU*Q*@aBoDTJkyy%m<&(27SGR1sWVPlR)PYE!^wag}C zL1wqC7>|J3+^@(=@F-tA>3bktZh7w?A5#k@S2sn*Jqc1XY?tlUUV_<7^Nh5!FaIF@ z1=2Juo;?ZYn7b+!(>JU7tS?BFl!~$u?#PKpW+7#8x-iA5g9Q?5ZqY}vA^d$EGPW*^Er5SRW+~_tVXT54`A&6 z7JD(3rn>k5s{jZCAE`|eUR^gDS_*7bxnA>DXB}#JEYau}o^UOIv?n``${%2I9^dm5-qNjzmUSqh#(1g;xRECq|{Wig@0L*xANj5D-QjY1;b#O8tb zqW|J6ulFAaiHBj^% zDli;2UOzP%fyA`SNxlaaxwWr*gd7#N8ka&)eSLf*BIKkY2Usg(-lnTiAyzH=*75&x zGJVOdw@n}lfzogQkdgG8{YR64UJTZn(K1^bfk`AE5Uvu8fhyJ=S{l-K;8WcD42l%teUX5WQKxrglbMYNFH zJ1foo5Eqt&8{tpiMlbgmGv_C;XLjo43FchSca>^C5AORiuV905{5 z2Tg=gb$Xq_$Zz;PwCQhQGRwy5E+`-EW2S`F=XL%0@4io4$T10i!^d{5Efz&a!8`uvB!UmErYJ&LQUA%0K?xo}m*S@Iq1 zC4NztG|T(DEYBt}XLxQ@;BmYm1I|>^+I=Yb70dE4<;M+PAjk zV|J z@Y_15=qk(dRB}KF2`c(7xX=k|bMfo{R)O7-m;Ou*?xWGdRRYZ_u{=x0B+vl=I6TAA zOR-X5pHNOuq5C_#*v!b0v}?h)zMie+HtpX>QcN#iXD>Bb_AqC7&KTdLtzitJ0|>+pPgSLP2i|lf z{cCa6Ljssj)FrD|j$hOolny(EQ!UKBwLaS^0&>z+9L*N7%5T}|FaIHA!`WwPBgeLG zg}FB!%V8#tGw7hX-9NsJHn3_J_V^xYBlqq;0k#uH^8vb~MU%K6NfDr7?O`ZGCUHm3 z`*tCqvm=faNn<*aN7lm=v?Nk4%-MWzk}PKmIHqPa!$B4-`DO4*UwIa+V_{}nOX|>0 z6(%yTnwdUgF7pcBw7cIUwZz16NSrnWvq5%t;lND*I>6Fv*~!eyJL{<(m)K!J<6Ma_ z#y=uHk3Gtz)x!kJvZ91VuOI7rfRKr~JQMlZ^g{k{ne+*~<3q}SFVW!mD}F>qi==%l z&sbzX`KF1MT)!Z5Re00NF+QMRm?_gL96#O$KiJj56*S~G(cxYar+xT#P@WT!XZ;!r ztZ~c+1lC8%^XGhd6XnP*XY%wuqYt&W&|$dw)_(h<#&Ef7B zYbmG(@H}DqXFr}{xoNIM+($XgJSCejX+uky@zB0)f^nZqM*KW zzN68YH|c`2p|$t^vY;Z;=@Lv5{-9Gy2#aj?$3uGz*~FAA&>HqaEA0t~w{cf&L~k98 zZCOW(Hz7X&we%+6i`cbaATLb0kAB}WWgPCskB`4R7O5wudlo_WU~JOe6|B-)q2PLg zzWt-*&XK)Mn5N*vVY;6`5HeJ3L7Gp_lw0&)Ppc^JvM|lG6Z1rO3F{J9Sw@#w@o7H2 z(PfbWylG`v_Zof<`$lKV5%P<^nVE9CHjmP}&$EP1<}LZ<2$br%2YdGz<12mdWXe(X zx4*8NjLklOrW|+oz?zsAb$58CQh!QbEzy_PXqkjp@#er+MQdppO;;C46P`m7zV@T# zh&FkMAI1a+1ACa7nJ4yxfAX`_H*&O`;A~3aJ#?;;&;+lVj0GBthaHMq3a%hnrMUq_ zFdJ)V$*6DZXX%FAXeqro1%CL(v^q??`5x)b5@uBvED0UO!Sc4_YG`mBlOjlJQ4=8YJU_NOK7 zv$)#%MvajZB35pr=x|rBH=<)NYk%;q9wXlsJ_r)B@ZqpUiCWpazO!TG=){-$P#q*c z^)Joz6PDniJ-(Kz!8{L=KpRTN7zH&rJn^o7aoGHZukTp7L-?kzNt{k`KAEUZde=8& ztlX*B@KaDmVW*jdBv&<#uCGu5=%m<^e-g}r(_)8vICjiw7A=9WKm3Mq2$IC6k+CtGia$t;a?s#m{{`igWx$$zxI(g_|(_-ZJ z8m40(1d5)h{q>fwp%qg{D+2?x18Ud+EPtM#PdDfFyw1?jFO~t29 z&1RkmHHpg?`c_)y0S(=om;@+HWbCr}+MEFDK)qN1yQCf>6H_sozDjJtSrtS<7ON zn=ZTLuA(Ch`m*eK*HgHqvb@qfs*0&sH!_FrvuWLPZ~)d%Wv^xCGyOR8s970lD8l}v3u!z0xl(5Ai2FT*oyz8;nDO2nM;9p9jiveiaE zpFk$^6+H1xYE5x*+X+LYbUd`gE9d)uiN&6UJyveyETXv=Y4otyNRQ^Cv@{rYrG7xy zY+#L}@g68azpIHCk!Jo78fn!0nrg(J4jJ&;sR8LpB1>n0Rt6QLjxrHP-l(*piGhu* zN27}&0thPJhd}>viSe(&EZ3~eeMpgAOu{)zs3m&KR~9Qrr_&BRzC*jtDy|zITJ&2+ zt?4Jw1;de6rMVMi7~inM*Jp_V`i3I7aFwTh^*dopel&QxX93-OvEsZ#%kdQyWujelr{o$gtR{9}N941f)= zF*)5>{-*+@xt#h19vG0>h>2N}rih8|e>BYTm4C)eN%%fryUucyIb~d$`?haDXF0~% zjpjW)F%O~>!8n>@WTJ0t1Bl>@vqbvQ<*O+;jo3nV2?K};SEVHE{^E#OY8;MNW{*;^ zg2RG+pT5RKG%w(OB4#_6={K^iK*@EMSFG_<@kyle6%G35=qGORc_FrO zVNDj<5TS0uUNB5p0hut%iY2J6O7kbznCc|d!91Pqz82C5P|=ep}6lm;Ku;YU%}g)K~s&=oOV#vFCL#BEQe zZhJc8hm+|I#%E+&t??O*jWE&jI4vu-Q0J<(JSZ`{`apZQbTf?l&8vU1enbCTMmQ_d zR-o_E=`YrA`fow}jlNK6ei35K5`GgjS^h3mlV5u*NRyrH=TR_dW3Bo*0^(NLNvSuU(Ix{`bqc|W> zb6swr4SWaP)(tDNM|<}bS!ze~HCwtjGHGocI<-i{Ph~H}25$w>kDKcFK98x>!go7P zZZ>-a#%1Hk?WPRz#ShpxV#To;KB}!9M{sJD?mng;4el-tE&H=`gUTLQ!wO-?B~Mj1 zX0V;ww{_Upu1-gY*V*tIY=y>r8ya!z5Z?ot@B5)rr*bBF>cA{vj*7Y?1CfTC?)tq$ z81{~Aw-GOg&~fzJe=T!c(ZxU9B*fJ{+!vGK1v6(%D&U1F1k*fPG^fDu1V-Y8j4roZ z&xK};F63uwOXma^`<>e%W$CG6F@aCiqYyG}r!m0$CU%pXj!Qy7DmLBugqhq^UXSK? z`otq=tv>0XFMGaU@S4LlK*~K&^9Sm*q()Xp*ZnksNW(3vGJN;J1lmI1zHV4CuldS% zsT<6AXAJq+@~e|$p^d+EZ({{#ZRwVw*nQ*1IGuhV^AL^=f|vPoW(Q>~kN`cStCehc zd<$yKEiyg~!C1h4)+op-&-<8sqeff2RPC&G4S-edhA@Fa_{Zq^>H3{YOFnHP@{vWi z%xwXJN0ttVjg2e^akfpCIp>w~j{$7jfgK1+H!B0>N3}MsFzVJ0yT*dpSJho^(tJ6B z>PFTx6q_^HkXqww)kE$cIjf5qJty)}Jkq_7;U>>jEn&8AQV;pf=nEg}R&jf}r!P`T z$a#W)d~r_e@w~5DPuYIg%SS?$wEwJNH5kS^ryb3LVbOw9d%W1Sx-a@x_LQR={|Jd_*`GRUUCaXo9(-+7p~Ji^MUWNUUGEgO`LqQAL~oRkM*(twCb6@cY4WP z8oz-5)p%GhCmz~UzVCa(8SP8>iPA9KI(kO7n(k@Q&;)2-oiR&9uoe z%8KuOD{ON2@Xpa#NRwfrJqWGsTHkJ)Y-{sJTTZcsf+Nt{fg(`oYaB1fM0{d+@b=vI zJ@uPTpZ(yo$IE@1%;XYkq-h`c^5W(GecRQrf3zQQLxIi4>oIL@UVgw(wi0tC-E~4{ zwD|qL%kgrjhxT)TekbH3s~&z!*u3_?$_udvgU`nQt2`6>T4J8r#+TDa?xLiu@x9eY z?$o&j_m5$qKI;Z~$PME87uSy{V{{zcd7Dq`BS$Mgt@qXIEBA1Y#b{b-?(+v5b@6E! zpRhd-gEW)AT<1ac3f`t4$y=7wiaRii{IKyO!~3{3!?VyD_znohrNlgvhYQeWNi{<; zKHcXWoey8!H%oJR(Z}|~ma$50iQw$2a|Gt7jF>@iva2<(LW1<8+IoT|<}0{7rI+a+ zZ9jTZ;4p;$hpsOVtnv8%&P;L%lH8C*BtZ}oOGrqF5E2m*31Z*3+V?H76C^=gA+($> z)|P5Zi&{eLYp9)SsamT%SE{O7v`XI3ndjb{8^7=SNAlcfo-;FN&YU@O=FFKhK==o{ z^b2T?d8eL9*98g;d+fgVH{gJT8Q!S&7_PDbJk>57x1f;@3}fdZfJ*>)&E#Q@Kpxd{ zbb=lHS}aZ(?FDR6Ftyd)7zmg|uZ%f-ZnzSDYt=SeYO6rI z!$r;h3&%nKcww0FKxqUCEV3+{&k&-R<-Xm?gUb@=Fl(T_SlEFTx<#=AoB8OZvi6cv zw!2Yq1k8-XEZ>;MRg}8JK@O0cLjb@V$cG~UAVb1m9O+X z1YZT63J(+*O54C*Y7Jlyurxk(1NtAU*pHiQk2hH|-~3m#FF>hk#;j}1H_-iTx|^9T zZpan@SI#*B1%|IHl51m8JE0cxf#y^0nWx}afngFmQi0j69L5YLbr|EqE?f!w(x(n=q-)VueeVvaKRRdAcV5$izb=_2jUc^z=UbbK?L0BxH~&6}BXO0dGy({`*7 z*x#NNQjj%8uHU9V8pcd_@tFSns6*GQhT{pAv#rq#Yms_vXoPbF%wQ<&>Ag{8s7{0>vl|jSl(~cYy4K#_}@#N zhzk=Tt#M9zt%ZMWsG2fuI^&0^D1k&IX2)xNsZyi}a$llnpUUXt2<93}i4>LE55_(c zDndYr;-+=9Kwh?QT9hU605=V+Y$4Cp3|pOdkJ8&F@O7!&mo7(&hQ4bQx>IWMlE>L@ z$y22iRc?yiug&vW>4}3gZ^YJXJS~q1E{Nm3S@hyltnvbd0FKb4q-^;m=t|AZ4#7whs&)T_u1ATebZ=YQBkcmj4olsIcQGzFOw4J_#qd$m^WZz= zlQl%lZA&^I^eGPcG6qg~s)V&XvQ)&EeIHwrOi1F1bMI4>@}XtEOD_)jVg!A7qO=sO z%mR3yVu!#uNKSJfz}ZcN-R-`!N!Z-1Fkb84cp?)blm=>pX zm<3<3yf~|-o`-N2wi3bZTS{q;dH?WQ8sA)4g33t9F3aF{{aMX2osrQdXfVgL-BNP+ zRqScst$~2HwTVf}!WpaG0z+L()d(uX;W*e%QX;5KqA}AMh_afs=}(3El)GjQ&%jF) zL;+L`#tWjH=p48b+pii{;(VONo(ReNDRqw)NlxLwgl0y==yo_-xQMcJE*d73#Yok8 zO9e|Xb@NeWn>wqFQw$w&oP&7?pun6%+;ryj->Am-00z}F^D#IWn<3pg!5gYWn`7Yh6929o5&-@BA0vtOPamyf= zJ#mkgfV==m&CP&LE?)Gg4yvf^s(V2`>l%myI_*M$T>WV7Z$8}P6xmW#cU$Ue<-(`h zf>ku4C5CSsTiPS-?F-famIzM;hB|iNs$+I2ykB7Owo5z2X%`9%(k|_%)kw>SR>;m# zpmE9JJqtru4ev=9V?4auA)?btOWFXW@%TRd7`>2&7rSsyf1+Ot3?EwxHTT8W0)xr& z%Dj7g4~>oyRk{waOCyWYxZpf<1yujy^~do7LxcrVHv(k;&PN8v+F76W1AS%K%%EE_ zqK&9Tfw3Z>yw8t{wJPDkE|+D}saq`8LDN2>DX}704-qvISuLaa{10k0|G?tRx&+5i zDh>OLeQ*ER*`6=H0QCPJ&4p!kvSKu+{;$#OqFct9B14~0rB=c(>5KQdYHS*IoNoDX zO0BUwM4C^4F80SFXX~JmS|C8%v*WYUP`3aKi*|DdN^d1pgIJ(g-b;>&zrgNlOiTcd`ji*D+>+D}NnC#nYBERT zMJ?&7*y?(uy&!z4fiIZpO4+5q{j;cLk+~c`*cb_Fap~eFEq#uRh3Hwk@270vpK5P+ z(B0Oedi_;)X%`OZcrAEvw+X4BQ2`+_FG_!467*{y z=lp^1emeW6+e`*_083#VH@^la+41ix+xH^v0<7p5R#PWhtp(;E0nDW4Rjaa*EL91h zY=28WGe=OeE3b{7o^Dyfx?#Z@s{Mem$OTtY%h%u>^=4c!04=jDYBF9Kj9GnE$HeuF z)yc!VMvG87YbjtkkgLPD%zPH3!Gq>gt-1E<@DLKqOYG-Mz zCBSsAW4!8VXy!m{xy&4=?*cJ4IAK%G+=MH(tg%5h-`yn(OSTl2ZcbICLr}|oJQO*w zAue+Qy`e2eG=XTusEEX)#3`6yY$0d=%G2fF?RZX@jT1h&g6J5OIn36Gk%MmggxMPo z0lFs?Uuo;vIU&d8Qehc=q-PxQfyZe2lm-bVA5*i8BInd6IX(W#xc?^AkWthjZ9+y- z>9m`0MViL4;|j};*2Xpu3r};c0m<0LMic~&j%1aRN#{YtwCTL`w0GG2h|y31OjHEW zVm*+{xt`>s*41a3!8KEFozXxp_wCAYuur8#o#qU@CJFJqc+eK+fZ4%E>THqjl~`tb zN%G!H(DNyHGs?y4-P{EaE$G!-45zv97g^d)R2PDFv=bik^in$2PSmU*AZ$u_QT#z~ z+6h0InoYh*BBxSyH9XWgK^Q+cXvj|F(B_PzBS|9ECve;Ua_Mc;mYkD?zvqZW%o4bC z$2iXNW5IfgOcs?B*+q@Dk&gDez10;s6qYk%SsUR{6WGUCjrw>dh8kfBGV!l6(z6T7 z`mwY&8Ad3C?)pxN_}@V--O1k^i^juqJOC^AV0;8~)y6~f$9aTAcBMX~vmrj0(La~v z2lg5Ng_kKPodBjv9rhxAgh(C8Ry8>BDK_H}Z92ukS_WL5am2Y4_{zB8H>%SflTi3K zC41&Uyxub^=Ew`f#xrW@#Q;0I?)(wnA^+Dw{!43CK7wGA;|DBq{OZ<{70p!8PH^uE zrLpZ{{77k^{m{&-TbqV92`?7sF&rdz$ao9-sew70N_G5YGZL0I_g`3o9YHu1EpzJK@S@W&`D7}O5t=zUJce{#YGi8S20(3oZ0ro>4 zI@Cc_uj2$1cw%YHN(_#FV&}?7>o}Z^X(}bgCl#_QQd=^L%61f0hFg@X)&-zOD(;Qa zr(=xyo9~zky2ROyVV?B$ZF=01t2W0@jAG6`q3S>!^xb&nSxP@7a%T&5M0ktz7p?wp z8JXy6q?#7ac2}6@L~nfu%MVb4k}~M7 zU^{PH&U(VoKP5lBAvwv28UVK8(=C>5gf`I*&On_q7fsV>o z&EmM!Vp#6`ckeY!uW9uZIDv390q`{mc1Xo#F;>OM&Zr6ZKJ<1o?TZomGvE_uQ}%v4 z086872l|Gx3&KV@7jRrALfoWoj)m8;8S@KDhz>fbWJWL^$>|7E<~0h(3VBj0%QC=6LJ2^vthH4$&I1AO*Nwm(nc&oQ(ZjUeRXpt~M{7lGM^^ zGCmcr_#hJN0AaNsei@8r@#G0nl_|oSxvb);hB=zuy20Wo{Xyz2ZW))}n1$}elH&B@ zJT98WX&TDb@u-+Ozwjeld7a?{>cD)UwuL$1PA=W;A-tQl0XSG>N*N2Y$AC}JCwGQ15#u6X#PAu)dti)Y(_jQ> zdypESyJ%=*2UA#2(a1j-f%7>FADY@a5xH#Rp~YI=5r23~dy4mDDp|EC2z7TJ4Iiqo zRVyqVX*jMrvc96N?dZw~_+HzuK-^0dE4WxF+BSEDkyh|Pi{5yzg*_Tq&^2rof?sku zbEzzH?j>sa-hp2o27`n4LpoE%$(VT>Zv}>e7u2?ws6HYtTQ>oh1JJxAR-N2=$#f3O zQTCTNY&nXE@rZv4qXmhm$dtjmM(IaSL>JN6pCHS3emk`0&CS2%7Z{auEPHx30xfNw8t-mS_ zTBA*%X2CbczL&=8@sRc5R_Hb?S1Wf&m)!^>igD;2~fKsAjzg&mt7H za<`egtfr~sd?e9XYdpI|BDz#N{^Xq`UHEFIXC>0HO2yh@0RBS0=ISun4bqpF-_w>p zqN>}W=Q=mA9=K-~UGF2J+@{#l9%=P&Q9xheoxbX;66G>iDb(hyc{g1v$D*;g37TKY zCc!RYSN?6to5H1x5^RL*VaB5n7LJFvFvGKSf*s?BKb?BnKFmRB@0#rQSTdG0q_nVMKqGQn%qm|)=vah>24{(%*Q2BWg8nR2)4PJQu@L2;cb`JL3a-^ zF6aq(Gn*B#v%wBx7WAvUPwV@^@^LYp4)+rcsQ)5aCf&kMm0=oy2-m%sid`amU=Z0e zRZvs=q3nh#Y!ZdrX*1|Ivs4QcAg{?(??T2~7J?(N5ZsGo^ly~5`>JX_4Ejf~BD0x2 zW_?z&=5MfZRXlsF1SrkzkFhvz8?Ejy{9V7tQcul|#>@mqI@uqVo#MfR7@|<5c>oy~ zevDr)3^(_y_VVRnc4O%6`jVACY@%0MNC1MVWLjuO%hJZoshleZXQ)cSWCsx(47bWH z{aKV4GY5k`GTy-8;+qaA%LS3W)&`3T2rNPNPV63WmENsv5;;WdF{YZ)4HJlk!9KJX`t?;gSwtRRjm1h#kqa zVQqpNPW-2IdGH{F{#i-Rp81e!Va(&sW5& z05t97{$KA9Z?&~}_VVSi$#Hn6!bpkr@<}A2e~{4RHv~KL!7&PSKZy>rpx5V$ZDpRs@bK7E}miwDi*#%UX-{S*m1qIk5;j z)i+QE0(f$A(JCtd^vKjUJSW%XH(9utb)s|J+b}_w*aok(9%A@DF(B<%A(Fhr#8~V z1M4S}i{*pUJJoHqmeL!gSapmOO2;^4+4r*P3G&q%Iy6XBG*$s@#v9D}%mik4dN4=~ z@JRR#^vw9Dy>THMt#F2*=T_?ep6J`IHx6^En~dPEiW{1aYiHp78f(mhj;9$iUL{P0 z-NVZjOG?``rkindqQ8VPZ#nFbxqp5o`tLnaPYy23t20>S3;AjwJscu}d|N(svRyOP z48J)N0q=45s7gUYMJMT0m1YbT1%Bmz2V4O98>{Qm_^seL+En!_)OVQ3k?&Wg!eJuc zZyTDTt_6l>{Rw_s0DZJW{&Zxx==x3v;oVYptExG6!D zJX$3A?$(Ndci^`b_`DD87%e(E&w%xYHB*{9R8*t7V?-0*$B&A$Jj8En7U@H?#)w4c zyo&Z&ejg(y%8+|BXsj6Ew*)?9`+W2^FT!t?m8ticH{Bd7)=BA2v&M-{^~+&f&HhF% zbNzq7E}FY; zBZ?fAq68-ot>G0qH(89TcUQeGOu3Wi*wXLv8u=r%XUEBrQ9pCW422!DcHm_UESGj=bIMOc|M`tdE* z?!sF%dWxvoDJ>%@FQ#s6REGA?ir;cQkYc26Fd@t7Zx> zdNMre*E9zk_V}-_5F@o%@omc&2KbsCc0tg@3dv6s9R>$O7_*&);Z9f znWCL*RZ{JemSt7V*Z(Gudx8M#$-Gk$LFC-@CL^!KQ&9GIJF-z1>p9ug& zaNq?+QmmIfftEuL|qs+Tny7(4L~* z-=UHcIPH7$mZr=WA?bB&C8q;MZ&e!E8Z!!s?4XtjhQT<%rD*Kt_4Wg<>XFv`@mr-1 z-dBohgh63|;Ff&@eNbtAupDq-XMssiMBtS9WZ zCEU;xuGkVz>j{r_oRB4t6HL*U*cUDPC&-Ws_!YaC*C+byXFGgy%Rn3Eh?#PrfvTj7 zaqTWlv&@L-rR6vV1VsFoU0^hX!6ZBxN zNS4Wtc@5`@fucq}wq4Q0{dmAgsojK`B-zvjW+dE)-iJrT^xJv6=ZmE>yv#+0^eT(T zK8Lvw)4{iS(?aiAR@=27k$}4>AzJcTKxh?j($p-GSt0hF^m#w!xh@c$MDrGG`zT(; zgNMP6Vkx8YR6F`}$$x0yZ;=QKy0=6J-tZ3aJ?w1)*k1wvwS@8)i4@04uT?#bgTgGip8Zs^ ziZDG_bCql35*n2)Lh9WzfpHGP>m3bxiI^IDUGcNEF<#S5?_@vw10By62|*)~gBxG_ zo$n)mP)OBN#rHK)!^NU@P$diS4N%6O?v?C;$1JA#418v>UUK$3z-O-6(Z*#lU18wq z7T~7u08iI}b=v&5n5vrqT-yT7)=YaeYU{vyht*q5lT09F{wqs|-7yKzpn2IkQnBx3 zo%g+6a|0KX?-JA#W&wT%Qrp)PrUUD}J0zP%EkQlUUcRM+OGK5bgWiGOa8(tpchrML z^zRZ8)TJDXD4{!ji@{Pn(7=^pixj2^8HWV`Z+B^rKxKP0g7kuQG=5r0sX3xS(B*}C z1DC%8d>LwtjhVw2(RVp$;5-X(>^s2o?13LFAm61-4GZuyP}v@hFdbOul+1-Rih=Jf z(9ziN4)8rFGPZ$nVgcnd@Nx@qr+0vt>%cnYb}gW?%K#i}0T%B7$Jzrw$fDi=4tthm zN5nwLQ*AQ{Z;$;WXhT3qucLPs?OG+`o%ce$uu^(km-Ut|LvTIcLz88l|OXzO_9 zPYY*XS}v+qZU0V|oC|gxekp_8R*3dhnf&(UR?~rWEOyPO87oAi^kwe=U4#dotl+j$0l#mLKS&{F*RvB%z=Z{9Fd^h{gP@)qVH-hF2xNmn;6>krl-s%+s-$(Edi% zC5q*fF>vaCC$$aF8)x24y~PXm8sE~)_eE{Dy}(<$s-gKN!(UnS?fW7&eHzj*SM&L{G;MbU&$HAk zfypVao3}Bqy=UU!Q-}CCEUd1gh=ZaIzLG4SYS{`T-m|s%BjLl?Q#9!V_}@j&;o7X5 zRjP!xVPM@M=nfeLi~gJe9Bm33&5uh|S^bQ^0>c63qTEnJGJO^xt~E z#Ylxa1R#Hyt@2Ihd@#HqWsCw*b>iB`{;0IyBdWGic=Yo*%#&>lqaHHmpqhVOk(7`f zy_VlFQPe_D@$&f>CD%vPOko`~&a2a4@Y7bVrI> zd#3WLNNt(i-%p+-0z8fYN;OSu@q~*pY}-$5Nwo9&@|mSK7s`#>2Y48j|DC(h{)^liP$V; z{S&L!h~a+cr#m_nrht6LL(iZSs7NL%cCr64n!iS@k8OnUoN-JT_k>rB$wc^o7El>t zqQc!%&4{^_6MYD5R^t0}V~Ov38`9vlB390wwrV|Y7sy|W717hF>i6BX!cAVDN`I`y z;(M8%7P1a$6I7a~yAjLCn8=r@zp9!#O{GEW0O_Mcu3ZO*lt)ukNd@bK5q5bLhy9h>YpBP(up)xbma|zZa@t; zAnAN7l{9(-N?V_%7rjjXzLCGz*0bE=@2-~b;!~C1`%{<%UZhgvPjSgYed_)xz9Ptm69lNo%~XMo-}ncP1^`&LiZzbAZ#N` zX6uhN`s3hd0^wEY&S#>Hygo_Q*lZ)f>ru)^ATdEt%HD_?R!pL`8&O0(I;1~t>yNh^ zLH3gq^}L&qw=Sh@5`lQ6Z31{*TB+Xh@;8a-{37%+ZcOE5{Jkk-8oLLl^WVIv_gAJ&Q;?fNM2kKBEo?#Zb9pFzr4l`UZ|Z z#Xo2DNUiSnlfbm9;UtE)GV`xW6$ z&WA;d8l_h9QV;4K3nqaVeZ_}s?{h-_?S(nZ>m-dl3{%gyC+OT^G2d@(FQ#6^Iy^F- z;E;HPUteC+Jke^dr;$fQl2-**iJN%_N z=O-}wusBa$LluvU#A^Q0Y>F<@S~umB?ky6t@9^aV+EDEA@lw=vKFvE0cD*)_&Kws5 zq*E`da{>&szZdm5A?k>7tkow(2RW%L{dNLu;MkS=oD_ZJ4)s@|sAJy*5$SH8EJG#?j+zVz#WgI1f~h6f(FqefFaW zEWI)ota)S+UHDNnu9Gm!%EK^x>iC)>njuk5pNX(uM1nyaw3Mw>|GH=*D{iIX*Tpb- zcp+W9j#|pjr0^S%Ro50$uN&Z8mxVe?AKnms<%bLC#SQR(!~#8W{7<5@%O@?Y4V<{2 z8yH4&?~798bW?=Oz!nsBQ;c-k7j1=EmamAA_v=mJF3LO_p*kd`KE3@}WR$LrqO{M4 z)1q6VvAi&!j@%Lh%7ujSAWL)BQm<2;+n~}fQ8e?mm?sBD5$-I_aJ|`-3y&>IbJw=- zq4EP{Bg*Y8OHsicQ9R`W%AER8gm!Cn-NJj@1o1RBPrpYNR#WD(BXR`)1^`q zD~3;Z+FFt7GNQ3HxkYhuDQfbIC|`OS>ecQHqK?0a$l8Y4JT$u;!I(TYff0`0i3e|N z-c*Bj<`Ett+U-HK{TE2aZ)VZmUqqwQn^3LhIf#58pvBF9rp^y=)z8InTJ`{JJ3gGA zJ`mkYPXiL#{Q;ExtGHZxa|B+>4xqq?BD`_<43_FoQT7RA`50&X`QQ(mqK1E?IBtm( zVl)~q)?h?h2L`;ry%xr-&j-@dha#d|(|7?zq-$VR>{G-ds9Gp)k%4!=?M~pM&^GKh z-x9Y$Ut$Nq4*{ip(x2NqAruM_QvbaoR9*K1M>0o;D z2s|}w8dcClm`tom@tTO2S3+rt25~+nl>XF2kViQ#lV_aKM{rtB3pR`XRL?BB$Sw_O zo*7pn{W^udG-EFQXE2>Ni%@B3NJVD&xQv}b)gFsJwf2Hg`BNakVI1oSy&8D+!b6LM zF)IaLUl_a5%^T3Ck44Keqem*)J!T|5ek=mzxR1!a5FK+Nf?^8cUb{S;`W2!NE~nDL zLX5grA5!z*#0byG^-zIN=`(453Xh~8Cez;E#Md%tG7ZNh5HNjmNtM(*5-Xxa+;ZNaP{@5VIs4pJ_^Yi3Tl(2sgeex#=baXi# z{1dHPzMP)?DKcfb@sOrC*_%=u7pAL`VP2U2R=qia3WCeQy+DG#_OW6=6G~xj#KD5}Rew z0M6-42P37&$^$Z6wjDrig*3^NJ4wPvfaXptzmOZ?v zw39p~mmQ>wPO^slxDO31CnKoH1yZbmLB>k|J~YW7 z#4YfExVO*%GClx|iF0bRsX=KuPTrYC>q^Tha`-H&=qwk=WzA`wvur2*%2T1UtR?+= zl1CZ&W$7^$z>A}s(eW~}wwFU|E_yacdxh{#FeL#j?kVTs0Z7nQli{*{H*Vr~mtwvVU+b9hnI1rS4KJ3@ujmP zjc}KvU9z36&;zn)xvOkK-sNRIH(!+;i*PdT+V7bt(j0(hfdt^KrP6X`$&H1p$a^j8JhM0T1;As#Zd#r|&~ z2(yp#t&UltkQyvKLhxh{cP#g3#juKZ)ciM&_9z*Q&?_wK`U63&V;J4>0Ewn2lb5HQ zA-<+uPuW?1l|&Cbrhdj#SE9j&k`;S{r*TU2oI3-m8MLZB8@lQzJIHeJRKs7k5m#xH zzpN=;YtwRn*;Z!$M?d+?_hi6EYEfDCk;h-tCza)5+2l0^RYCS=v3YB%NPi(G-=h6h z<$n3_6-^6}v&#*CrK*LV5KZ#}WF$palXYDFeQ8a-luDP6ib(prnrtSww4h(A$v&;z z8mb{?sah^4RS3|7>d9U1?s?@~bAFI)zn%IIV zc#do6aw_M)ptUvS%9^RwAo@&Gan7bln+?aZSPr3D!LK<;Tb}AWRimD@WPrR9 zKr=AR<%PeAYRT^2Pls|7S_k&DyG$ge3^@kLdY)I2J<-%M(KOXL>`d5|uqT?|ClnVX z7h$P-E=UHK?)jH=&>B^y*Fkcy_?HF*%L#I5X}TPYaohe6DqkBC=hjo2S6lX#9h=ad z+Onba^COQsvSWQW?7hbt_q6TFh_^>P`w?FN&2$6rkrZjob5twl74aox#;l%{TSq3z zXZPt=9ob4o|4!BF$|16J1TCy9yUT6ibcdfW!>LI<8BzMrr@(8!4^6Ho<7s`6^i0?8 zWV6RvsvE9D3(c5W561gbP!71NZb7;>AA^1BP?Lk1U;cD`HB!l z(X@)3_oKzuS1iJcw8eO}5KLDH5;6U-QbqwGvZm*07+ax@d%T#~b&#fQBx=Yz1!2?b8PAAk^krOeOZdxx;yq0gj4{?gL8>Ip_M$m*z%vM~c$N=wbuRI02!SHB_kd74R{@Lq7k5nuW^R7}`TaWl*4d zchmt3W-=}X$03ebge1?^X2K!zEB>$~P zo{eNeNG==CCD@u)U`gA8G>(G_!j9gqe@ye>%2s61 z)<&{QX@n+r(4yD{U(WIJj%I#SJWOih>PQNM6m)p%q#XvTh=Fk2qeu8=8Q`pcE`>C15WeyiDDtT-6; zX7Gt~3sxK=O#1~USIavn{z$uucRq8Lh!YFW`Mes{a_i8X2pMPW^B(#j3MtIF9p0lI z^`)1~OE?JV3+VF$=vjp9FAvtHPK_a=x6h@ejnUx|zv9lvoQP_8;A|+en+JjZtOQs| z*AygHUBn0spxcdQ#b{5YwTIma0`!p}`GFE@kF?e4#c5M4X^U)W3MpgO zaLb4BbfJk15wY}N6WL$1qCSzbjnn9$w?#Cvl&rk+8|g-uB4x#>ZgX(PWVXY+B7;IV z0hY{!?9tHDqR;xGXLClUSk@6(jdDWvW2KL1x7ty)rqV0@6liLOLBk=}if%7AI|@CT zt%_IE$xJ90R-kYI*+_N_Kz1bC4I2Dkl401!>iq|@x%cIs$3UUoO(EX8(~nIt7QQLF zDoT2nuf@eF?oU%};!QzOGCVZwGL~`Kqhm79q*b-`;JH~A{AL=nxjG`#S zNw)M!(HuJ5O!`%O&-$$yytmQOS{RyhxEYAZdV#Z6onAMS)#UnK^eh_E(>)r>d(Y;w zyo?K^(amL8mGv{=Ia(SLn!P?I_d#Z6Ha+u@KJ;HR86fV{AJNeKkvYtGvo}EWNuxl! z(3?`CrB}JBH?0z>Jxz#~os4}Lie)&IM6H7kv~i4e0E$YWP4KxWFAft)9lB10I<{k3}BnBH#KZ2E6V3nDXArv2`8u0^p;Ro zi=1d%OX=-9b*imX6cY@`JC}E72Hj~XYeIkM(T+^7j1+f!Tuc|2-Xt2=^b?>79F)MM%MH{jkAg7iwK;=9n_2qw9>VH z4@G^KAAhvc_3N%wK2|1_KaROXi7dSzcXe0&C>wUQ74Bc@NNbc^1?Nk&#tc1Eb=FC( zc6VLCUHQQ(;J)Z$%T6L(g4RpA*EbW7#YYvAFp`Gc1oXqgd zrw4#|f9dItz8PGcJMx{}1FZ>q}#XNnh$0FI!a$akCocabOs~trinFK=Uwc z(SnY|OJC12pb{iPLp;oPfH12FH1S7V)D=Xf+Q>S+{~NC>hin(hn8wN>LUKCjHnJwT zk^md>S39^+m{89l#p^93`6pjsw6>5UvxnxQ(m~x5F>m$QGgvJ!&Is zHWi?&_Q{(!%H<9I2Svs`@jbJTW!x8O^|%ms6kNs;4EpB_7H{&&OtmO?yc%N#0@W#)p z6R0pzhBbU|IT~xSWUN#oqoG8`mt*vdcgM^gXx(2VZ4pjqu@p!d16YGda-9<~N)FKJJE84y+qMQDSdf@9i# zY~aqr=)he4FGTEpyz7p(wr+eGL8Uv$I@QY|hpCxWQ{k{Bs#_{0o5m`3EF3{yI$)Xn zUIeY~AP0H2R0nM>yF)!ugZ9Rq%6F70#{HPaEb7(??VALe&{0;A_1h>bK&21Cqe`uY zg356E&^@8GpgSGWz@zaDrrY|B=CaJt`srkCv^&M6$c8QjI3yZ|%ejlRgCEhn6zNmd zu`%S}uMjbF15$A`Ll-7Q2trNCfC+XeB1nshfjc+X04%)An2y8<7 zI$o5_pBw-p7EQLyY4ZwHf!KiQfdZ{K)7nn5d_c}neORHZyMj%%eq5e)7ID`)(8W$5 z$;CKD5>GR8!=IQW4m&A1c0&6#o{6U9*b*!)ExQnd;%vJRUdE{mZx#8Y;&qYlp@4Z) z$lOYmP35{sV}+lPTr}ZT(S$#WCTN&hSG1yfU8IlkIwlaMX)p(#ZLJe3^`w&i{fXjTuH2Rb;@ksdNwbR}~Sm|HF#A-A5gQR~N(2uN`g2S;phHW#1PD9qWJtwfY~y2%TP+vU{;E9KJ6ukRNT{yS@VQt2WB1kh{a_9RqhQ1 z_*GwO(;G{zTm#MNEh8#s^BJz}wvmc@J{<9zfhW^6usL0v1G*o}i<7 zp;Cl16gkn459>@g#YauY<*0fe*{V^GxoAe5S(oEaQ8|}v%<2kNluO>%$C}d0lCrrE zQ6K2a9}lGO`(Q3`b6V9``j-FpB|M6;xqy9M-dx!7lIr#aQ|t($_I+i2IWLH2_myFC zX>Z!z7kYOey3!Xs^1K$6>jyi|9*L8kAk4UavWn++XrSg=ZxnOtYrt{pbC@wH3Or!d z6Iw*Eo=`;|YO<=o?9lM{o>olffn6B)pOIpTS2Gu)%|YAJ6xqGh@I0xlZA$LG(x+U$ zg(~hEe1!+dC=b5CT#I7RKFGuxNeKPX9~PCbY2E-C?hkML_)v3MkV-or2`Gf0wJ7R` zB5B|NDC*4_u%)ptf7P))sdbE`sy14)D2oT z2=h*l2*uSNku1<=Fon7GO|%4 z{%SQY)xwK)9l`q#wspk$Jvs%jj`*~ZLfK^@mwod7n^K7ee<5I>^l)EW~`ckF=S`LUWY)FSlfmCvzvZ>4~t`8@)(TqzBzz;43@(^=0LA} z5y$-88H+M@S{p-`2TQL~!@h)3q7(f#SjHId;x<6oI}maRUESy&H5($AI{xzd4V@c; zrlru6A+Q%WqOwC}faCpt-%!Xw7iCFwDU5;%8vLt7D3-Alr|g?VXNRO z;K_l$weFlnR}~7h#D+Tao@ro%qPoMt%~x+z(lA-o@za0a(AZ(Jjm%D=-NR&{7)(Fm zdzscS@IXYJ|Bb|O>EUwZH;bs!Zu?WfaF|oS@~43#aDHvfaOo@;?V%~dWsF?Vk@gOk zO`9ck#KG_dwv`bm!pC=eYK@SNQV$ebg&lefqj(qIb>qMlKdLtZrLXnl(gVdb${Hb? z8~ZdsoAiayDXl{TMFyvw=)bqo$dNLJYLCPObraDT4wqJ=?v!?+zLivI+iaw2SISlnK}ctg8J%KD-={W4OvsOr}q{5%)~+oB#6hM-XEg64LJwa~0@Y=!o&Yb(^V zHq(E0ah8+Xgb;nAtfVrq-R5Z>D|}hUPyc>HuA@Qx8||puXjxl+(~jnjmhHqOIy+j1 z`G;?Z(A;ue7n%^dipkOZt^^h3nEZz&qPdytjuDeu?0H5&eSUbf#4bn zqA?(1VL7wvetw)=S*dWFjWVaP;>7d7&ac&im)i`f96e4}6wcIboQ&}+?PHS{dIh!6 zYh3-(1lm3h&49&nocyBNfvsqM-D`UDOS1~E#u(1?D(DSuY0Y?9RnBcohsI;@hWtVI z#>)vFN#4w4lVOQ!ri=Bjp3;yBvW;;CG%IBl<+`$_)4mBZz!(>V9&V;2@CmJP5Y2rC zo9ms;+`o+a?m%mI8K~t%>DBxhBJXKkaKAAhBVWZ68Ia-y$sO%H)GYOe1<4)lFy4Ry zW0KFpN}KaLsKEqMP@{^<= zx+-LnY|y+0*PV1luX`|Lb#dJ%p`I1jorkv)bx(Q1b$in{lVpv6q?%|ln>h8=YID3= zB`Ess$tHR>NqWgW)vYaeqUg!e#dtLk*{rkTsX*NpG=7tnQt>oxvP^Dn`T{uqa!JRr z6DIRw9Q(!D{pMc@2G5OG0=8>#SC_n!=AR zrAq(iBhg{n{)>98U0>PP8qvzW)*!rDYvs)`?crkzPLmD2DuA}Fje7#6!nXtW;Kf)P zpC-L!UMww4gFd$+mA0nI`swdMMO1!@Y}}c|yguo3MTJQ|MU&jM<5iiS2$i@&?dD(= z4UI2)1VFS8FX$Nd#Y9w0mkKDaxbK`)={nyi%k*(*O}v-GGshil=TfgJvWm~i$*2Xa zqB3IPr4P?-F|=%o3>-7PrP6*8&nk{%lEJo6Hq}2lduXsKL>r}N4mJCNf$_cYfkG9g z1xB?3`c%t1�!IEk-jU#vaWeyfKm1#ZlF%GN@Jy&NN76GG?W`fEeX~wA$eSbfb0Q z`fY&TjXgFLcVpcuRyH$uUgjJfIES_4V=Xxzt}o7!Us>MWW#WS_*0|=hu^?4|`6@5R+Mzdf>CH^l#j!3N|K^vF8G;W-uda+?Bva#nX+R2OkDY-yM~$~=Hhp;)djmO zAyd}CNNU^uUF1wtX3E~Oo-rS*X33aJhSQMx`vwe1ojzgc0DMk%!X_r75=T?OZ0YHrfY0i^svp~6 zTk`gWE&~tUr|532DmDUh#zwM-L;!QVDZ&{^FhYmj)M`1>^|@G0{wOJEo}5~(g@#8Cmh zYzCPA@rt8hE_cL;T!vb-(q2U_#p?6Fp1Oka*-9nBz-iMfFyhT4_p`FR$`frvSSqzX z$;OL5QKYeTgPC3*2%##o8UO~BJDk{}9hnP3tOarr(Uu}A{{MeDhos3zs zrMz&MQnF-VvtYr>Nha`R&Y1P;mDw99x;hA}#o+s0FfwstCS<=h<|m%9@9Qf4;ls2o z3oQNOJYCOXb3TLGe%Ua76o zV_NQ8a$6*Sl8aX7JzgXmNWYoKun4&T*^US;#)a*{6^V+Wz1}-U;U<|u=@J>^zE=Od4v(-i zT5dSqULrH9m2=>2LLQRQ4myBPkI^v*#uKTnZbb8Q|1jCjHCzSWy!B9yDwjE(=b0<;kX}%V+=NovcHD+SpxTrA4ad6(8Kw4!;r8MFDLpN zSgCDBSrj&hTIR}%^=iG7+`U8@4yuf9&>CllYNKg>F1T*;F4~eS^ZL(l0?TwRW?+tc zt1ixt{$rtP$20X9;huooS#LGa_e(*^hUgS95DQm?<*}ipEoNo__IxI|zY`rYtuGi^z-tF-{rfVk z>Hgu^Ylm;GWr!-q;Pr?#0IF%Jv<9=WwF-pZC8+EN(m#F5Q0_NKXu&8`JZ(}L2xkb%&{mU*VgO$kV!+H*aNib1L-bG z)1D7x$Kaq5I<3{!vfK?UWYFAg2kkBQVg!Y(#Qx>=ZPaEZ3}ofTQ^rcTru{sXzFH}L zEBpLUWD-newA)2*>E24rl)1U&yGr)1@@l?fiGS21C4e!s(Ma>76{}=iW8#k)$JyBS z0e)%=>oCDMPKhE~+D>ynP%XhUmNETqzv3eJW|Sk@!}E$sV&Z;aD-(2Yn>U5zFj3}@ zeGF+Z@1tKolwY{Eqii% zohMWH$1>2kbpewUTjtnkb=SJn@Q-C(*C@y>1n5G^UJdrrx{qa*3PS;BkJHnC>Eg%O z`Z=6O#!qA`(TqBOB0q3_xQBBh3{$q@<{op7SsLJvS*nUyYUTiV|*!Y zjci%v@k}npD~?l55fAWIT$CYnfMNy>t{oTXrxYrVs=Ttp<*= za{T*9FV6WZC2WxIr#wS6YfF6(@e>zMeaC@zEP)+OUYFJP=uuNu<)iT^E@EYGOFKEJ z^9xpko_|VpKb3VFS5)9$6IAAi@+ERLLoSXgswk8l7r=1{nM85h$@D1*9f(X!=&iKl zQ`yV)7~))85X{>~6+eR#;9Qd$ee$!mJqCm3+d^XG9>B<7O;xfe}sY!UeEo4Yf1{x z$!Mu_CKAn;VB)aMco_weS{`-(3U;|wH1#Xlxx(ZbCEIcJG2Q$M_8f0|`IVd@P3vj$ z7A(kOXw4S52pTrizAdt@`*qwW0|HMRtH?KLEd8}bE^pixW`M#@YEzm0W`jA@4II12 zD4=6_;9fy@I5leDc-m%l$Iog1R?H3c%yfUNY#98-6voFLvU4epva5iJ+=b>#N;8YD ztru2j3^o5+2D|p;TZDB1*nSgD{95{@Pe1{jWa9=D<$|J^HmamF5Dr)kz)V?`dQj=< zFmPEdgS;OBSrc7tG9)#AW6{hT6yNbtbZZHXP=X$bj=3=>dbh$kKy^_mMt#jAD*ui2 z5)Ucp8yOxrF9BHUpi32Y;YSlptx8~6pVGgPmC}DpE7==P_SKGs*`SkNZ%*`rNhKkF z!l82;f^od@5xnY6QD-Z7T{{#R!!7pUo&aYB#(^qslWys>5i43g|J@BTc?Di@vi>u~ z@Wc&IPvKb|*&iL5^I0f73AE%#Y?+N1%0MQsVb+YGNd^4YLiEpV^v`YWK3_$7nw$PP zNdFvc`P>)vMSsBGpFUKjJL})e*k$j=pD(G;(PsPx4v+EJ7sGNV$IF{PZ@>yR*A%g! zpQA%g8<9QPDcdlk->U84;tFQ+-!9|JG+V=Mi}0MDH)^~5R@QgNSja!3iijA2o&X*b z@z9)CyeVFAfoZy;ih)z8-A*}2x=f+(cFNfeBi5m;>^H20wqv~DC<(T*CMVba&|7zpmgNDxU_jf@yNO2Fp?5A7=v~#(+ciO<_cI<^ z*Bm?aN~!7;)n+35|3dHhW=5}RH-+A+k1gnx(a|f9WbFuUGb};9ZFebsFP3YOfVQDm zh(_3(nKi@o--sHm?bvv5^_G9m- z#$rm^Fa6rC%6?OnUoQaajkr53+x=9GbVzLaBz-rRJpFfPqd_Vr4g7cjFN09qTyP%54t zLy*PXK&b-om4e~QIED@$fHlTp5xqSigIz9<20(4hPTJ24so_Cb@otZySqCx04;)P& z9h74O&y7-)e7aKM_y-<3CDB_JN`8<}bq+x=?Oi}^4#|44|1JP!^PtTkim)aUK1^t; z88h1ho;P1IP6}-#0Alx9sna^!naPvf^vSGkOrE3#wDXXxTWu+zxC`})eekdn$E6jB zb9f&W9g;rs{79;F7(KE#i`w8>^>x;pqSmI-KCwCRMXKf~sMXe*$7NCOVW8SMi?$w? z(SaTxD9Sz@VWDg}eg|cX8@FRGxgNoi`N9Zlegqq*n?}%tBeJn^1hSa>sC8$Kq2dVI zjl?R|u$Il`D+Pn_)f#iXeX;E0?qXh0L0O z614r;zC+h#;&-fR0EFm$Rj4-jJ2IV=m1NJ4>GPAamE$h#4i}!petf4_Z^-Qw7TrZd zDCm^DEvH_f(giY8o*Ya$1+t1)r(wL(EwWdOem_q~3S^@S_wdO+{mb)YI4v7^o+ivW zIK6lZ0t@H!f!nIZlyF+MDE((^;J5*CI8V!Yq6HbxU?Fj24b?v*o63`?Y2+CU{9dPM zGQL)gLM9Y zUYx~lR@YcZ9_ejs0fVgzKoO8Hr@KhZp5l}3)dU|wIPDh@8nJ^r)=JFj5u8}iR-G#Y z3H#_Kp1yb>n1tqk>`f5|ldOeLF-QY68xErJQ{Uh3lLzOE4$!G}l^HXhexL-rfT>Dr z|2{KMjK66h1~rFZLI~56%I1dCGA9vK=S)c`tt&gi5}cVVHaVp?X`=-YT`f9Rk0@n^n11yg;P{&^U}w`-U2Ihk+hNY2*GH0?4@5Y=BwmoCds(w8Fy zQ}M7msqHwd_Wt^rBA!QCh7@#-Y{Rd3W1ZK2P_e2LhWy&BQ)*Df<994h24Pe^)<;#1 zgG_vkKg&s{*!~F36vNYBCBOo#st)H5sesus`a!y*Lq8BypN-8c3#iOhxu{H16#(ai zY^+QlUzH!ZS5r2I=;}OlU|xx*xbHDL4BAFH-(!46cc-z}Hg^?rcv}~EflFXwxDA_VScN+m!AIg|7iOTu&R!yZ#n0ns3@R-2$oAxu_34^MnO2|k_FTA-qqn(I4Xb8-@tLRlg^ZQ1F_a6XtBPpr^Q-dkM`cc=ET;m z>Gll_^dGjOo;NX08B?7m-joJNj@9YeP0Wzz1<-(7QfbFu2WzoULjh6SXK?=a7QPmy zwoJctOB$p|?uiushg7q13`B#D9B8iXyYGfU%Hs&uHOqy|xX#v~o{8d0eW-SVzlV2z z!1_63hT25cOv9}0bl?wc!;7a|e@JeHhUwIwdo8#J1v@gAn%%?KfjPY>?w(Y(SQut6 zdyHI2n7-i)@wr~K^d7c{hc%}n_p#Zd8im}K#(LO5{uXJdT#HqHkI6k&PE@yLbosv2 zS~|LvDm;+pN?T9Uz6Vlx*(Xhr1yfBN(zY|Xw8jbwe|g!h4N~5z)z(nihf;uD)@lrQ zZSyBm=Z9DZZL);cK9mL*UXG|7%{B!0JE)Sud*48mTAIs7hMNL+a)@X3Ij3j3&7x>k z>gM%%fL6R_c>4Ebd_&ew=ZR07MHkZ@6=wD3*W{ETwUfSEMSU`)N;Rjq0Ox4u*%3A; z%)evYtY!|&W8L~-2$wU#G8OqcfsSNIi(HqNMT&JA;su|EXpH?`*ZaA5xx!oun^Z{NE;ne(aVGs(;CdL_06YVlA9U9iL;2GbfBz zKbOL#l=}4OxfE7o0>*wQO>NJ31cnf%zzP+)l!D#Z(*!Phj@O7FI&6u_Hs1jH@&#r? z6%z84ffIj+bV{JK7g&8NJ(teCz{l%J@#OvziXRnE!7nkuh=`|-FD1VM-EZ2UfnFxl zOKjGAh)bYfN>$vuI6#(^_i~ae{^PEva_?{8)}=ICKOcJeQu62$itQH>P?|=m87))M z(FNa*Vi^x<+mpEtVbm#!h{`oEP!1G{;|8(4Y|45gxw-GcY-Ep<$cX_7A-zvr5st0N@2%7@?6DUv ztl{xoIJPfv8~Gi87F?SSu8I$QH|-jWnEnu(l{_2+fKr${;Ws{9*k+Zct#2j&hS$2Y z9t2)zFV$sVX&(G_@Kxtxl-q)rI-aZi5H@ZOi$GRdA_)+;g4bv=E*ad223y=zS_+?vZOx%{<~6na{3^Zx3Q(54^nv37wfPl zjgPEmbxLzhKhYb9wMTnznwkZ9!#wl>k~(!EG*nL@i5FnY1C>2IY`Tbk{vi2QeD2Pr zfV0J-%KZ@udQb)Amw?G8f4`7iKVmR=FqRAHA)l<+(ToR6JTZz$i?mU{wP1cx7XyO@ zFJ2#FOn1oHGBp{@m|om>Jp$B7BLItFVzJH?Sd|yVQV*j53bRZ{8#ru)vLMSdJD--}GoBH!WRL@E{PWBj(YtOic4@PowlqOp34ZIv11&9tuaz zoXYuV$S<}g&sUemkWH3UEo8f!tRELaez@(Js?H8Z4__hsGe-?=9(@>+4_4Iu(|FCc zk$CpCTuU09B{eA5BKngVSAT~481w=P{)j~@k&QbgG$CGgq)S;+xnf%p)N&K%;KciS zCe9}NPw4q$tCQa+sZyaNR4NZ6HY}vxpQJWkBj>TuV|^iWm?ht;4~7RURH~a=XCYns zgfBJnd@B4|@^KtXdJD&XH(Z#|nCgGVyzY-hH1MHvJy(}3qOG4L@5Y@_ zsL-Mv{E(7Gg~GH;2-H$YyG339q;0~cJU|+hL|Nc{}fFD4r;TLrgeOi?lM>ILxP`G!>A7}!_u!YFQ)TbISAFd!zF2=K?!|Gm4b0SiGwE!kHaj;B##%Zb<_}WjiQXc|f zrS65#?GTZhCCeewj2W~-2EOr3I>vsPnK%|CyH_~xsG9{=S{E#(BBhFGfO`P9WM92Gg8~$} zLR+6eZwo|oSd=Itg!ZMb5h^oWYiljcy;ewR%CG^eG`AENqvso zsH^AF_loQxrO%?HiriXqO(Qp3T%WS>D+;rfW2C-mwANPkuk*Aet99@#c;X_j)zdHs zFQRoTZmAe6?GGU+;ItxC z9XVSodYCi5TF!hBOZ_o~jQQmhso7*w3dnvzmD*|hCqjBO~J&U(Rg zzJNR&pFNw|L5u7w(ir zcumuK=!+`2g3C0Dq6^ARrO;9ILqU0hw0|Tnosyfncy-J@f_eP4>d=v97Lps3c#IV( zaDT#HT8BuHyKhrSEhNWFm!?pc!g4#w-;aJMEaLzcVX_(SV;_zgd(E&qza-T~?=~rw zJ{FeCNlzom(_VHd+c;I+`EXg2dvqjEx!KN!r97}v7o|`Kd%2&~dJ6q$FV}2-ys?)2 z3HH+3>B&!;0A29Iz(=>C=r{xJsn4c<#>>#^a9Gfc_FUSt!VbVQXT0Yj(%IS+QbZmm zeP^VdMdW7ElVn_oC0B4sY?~+R`_!|wD5R*|yTlR`w~gd0+Gcnt3bgE@I{Yh2FDf@G z5h{>3nwo~$?Xe&|FmZQ~Ta~*06}MqL%8TgdwSA-(iY=)$)V39UA>lFz_%1{)m+~?KL7kA&CaD z7U6d4%9hllnCw%fIbJQaOlo=Bc^xd!*@cQXr`uyQV4Vv|rMZ;bRHu!_|g&) z+1v}A_i;duZ3Tp{6sjARKwtb~o1ZbY1uuGxM zKk!={-=I`(D>6-UmIKSw$MA>i2Cyt%h|sR;zGjB;L4**x?kxKiUd2HkgpL|X&MtDS zbYUWmc9E+&H5kR6D>_lgci2XqJCXLf$laQ_j$xk8KK!+I6x5x2bJ3IB0H#Gu4e}$5w7^xa+q148xTh7_;0a@iE72iY zV0SF!gVXQu)D{Ar#_0V59W2m~N&#I}pa(M=7lL!_G6Fq?V;A)!{}S?2splvDIh+)NR_#E8-Q@BmM}&Vir(O~8a#HYO_MWM3zqA7cU^?*CyFn_b_eW)SVnk$(2k0E(2`l$=m<#THEHqfbYqg`w}qqsKUhatv?u);Ua@%gW^% z+HUy+_>>RY3cv@f0N6%ygf!bJ?{UMjL-;|~P3%(D27djZT5DWI@15k+4+FM->eJzL zsI*+Ic0JSq1}pKHnMP!fR0jt#t?*;#u7bP66^>1G%J;`y!14;)+mE~!n(7;1R->p&S-El1 z@1Zc9S1rFdepgm5QL^bKTs$3(Z~D24wd(H&xme4)cfFgtRI7gYK`Yg2Z|Ox@*}L5k zuoOiKGp+HR%C|W4^gJKyyjZ+V>x8Lo;N%*d$>3q|L=RtYFw{Lj+hCLZQgkn8>SK`0 z+Ekz^2D!Gewk|R(xkyG!<7$$gMqBi{0p~M@!vp8@)wNQ*08d*D;8nyK17TZI8wO0-noBg0;1biG zy86fsaQEC&A9-ReCtl=A`6wqj;6Lm9(-$`RS~@hsnn&;LtG4Mh2GX?I^f~9=a z{_UtkIr&vV=U1Aly1b$`mJEC%6eu9ZWkb$PL{Z4z-M5hGTK3o{u(4 zQA-aYCttaxbZZFp@v(}7jWFdy3-(P zQc-RpU0p=;E6N9@cQdF{CAm)_;~;K`&(*0>bhMIO&u0432pRKq z7vq(A>O;JFS6PmdjulG(s8{;7TV?oyn7PF z>11GRWQXFI9K%K?%_Z}^O}+!;VO~K9C3xMGt0u5CIIv7_YI89-O#TA|jV7BNCY91m zlkKHPnm*-Yvb3sy+HiGuHc$sYxp?K*v<5a{lvbRa zs>}XC-7r9DnYKYgTQA{0o~Kzym4`pp@C-*-PIZ1U8d+U#WmgW&dFVwpHI-7hpHTL5 zNvWDU!sEH>9VhauA-g-h?!$$WWY8AMo~w=eQkNRCZ_)LIG% zbgTwi{HiLHSwrq6ue6ou%bM~Txq_{f?jI=kwULsG(xO^&2Wdt#dQnSum#4@Q6{#(U zSMh)Zyl)JZ#AEC+TqV(??Xdu&=F5$WilDKzTkVD5t zT+4}CJ$FJ48`I)Ca!Jq5g;5@9MGnCv?BNAmwATClfdWT};i>%#)1^9cl?pSzW%F&8 zlDsia@j9vnwDF4>>SKFo9_yaVyX)lpg?z?+EHfJ`n5`2XS0$KNwQ3=9sw)qWCS0Vk zb>&`?Lqz)Rx^fd6>6gaj8!Qi(S~jMY!E&55(~BHJWOpeMOYkA`O3BcOPKU@3Tn-l2 zyYL9~t(sHsccA0-<&EuzHDukxk|6Gqdmok-VUsalD}_*8-ekzFgBe3}eaBKCm(7FE zME|QcQs{W794Ps9UJxeNly)_sT48csEOSy~7zU<~KhWMV`HPb8FjUfx7Frt9q2Cph zXM!6QZ6J4&riO9*bEUBjO-5L?BSF87`;j^1MxGnYGlr$6OGW27q=(5F-l@fu*iJ7#&WRK zJ(%V+mRr}^TQX1Fdd$~K&b;^`Y<%8)%1U={f+Z4|6qzPBmAgovkJ6o{a&yThf~q!? zOO@INtIc23Fh-u%8MQOQ7GuxwRD(JoGmB!IL9WO;w5%BnOzB4H=bFj!HXf(Yj&Pgr zVo1M>7c?`T;}$~6t6@^e2DI2sHQxqC7CrX})Rq!!(638C8+qvoyTP{R;gE!I$Ye-o>n6RmG0drD`W z(oeUNoo%E-HR)b!j2!mXpc;{KE9cQNcNM>}+@8&lu5@=&RG0F7%Wm!fxV<;hZlKL-{{m#Yb2&Gs0x z#OZ-$?J+O?(@$XBI>=v0U+aMc4m8jM$2jn)svt9Tl%2c=7RsY4({eZI=7p$TN7>6* z0d$;Odp)-YSR0Gwjm*P;HLGAAmOK$wALNB%ofnH|d7-$@6tAM@g^tP(sZ{4@gwGS_ zB|{ZD-APWD`c_V#+F71sBc&+jVgrYj;k;=L&$E3J)9#G$)N#w(r%m;$#P zpxCY`r^*%Sa98=QRKquYZ#UUdl03_&|Jp;&vXQ)f=wwd}++KRqr=D^p>1S_T6C_uZ zzV@c}y)c=M^QMWtOBZ zUi1TpoxSK<6!<*wB)i^#@AIVUy}@U$Cv{_gfG162cqm`I!}OkXjl+)&q(mcpz(D@d z2+uQ6R}S|x(3EJ%7i^#{(XyL-AuEecMav!)%iYZ~r?oO?%zdRPWgpDw_C#W*AUdV* z?`ukV44&$DmmFg->(mTJia;vG%pUk|6d<(wg?}^3sLSl8Tq2>wV?T(n^0y>n9JEUb<78{&I10>@U}s zmTG}S$=98J=`Z(|j+9KVG(fIlBh7T9o&)8J((V$315Cv!A`aLFC1^vO{D<`P8qFRg zkC6Uwp~8dlQ3JQ&v>yyR(#?e&#>yoYEK%%f=U~hs&R3>WgVBY?RHiTDVZ8&LX?MIl zQX24rY9;{QqPQi3BOOnW7Zv=fn9x37%JNryXyy<(LrQW=A2n2dW+NpWqX9|Kz02k3 zSQ0)*94yMQ%Tc>z^vdsx(A#7zS9K}EGJ4bJzOp?X83x09)1I^Nh14d4S`J5|HSB5c zaQPR>L#31v=oO0qF6|m8ZvqM{LJZ@EYC=+yG0!)$llVu!!&9FI*kB{_D_)e zOT%uF??hC8FB_UMQLZIjxkvcQ7ycvYkS zjVyD9at{K|#4qFpGHKJ_j7HA@90j0dz+lNv$)`X>32Kq^j}HK8eS=z0!m?;nGev!Y zP0qU};d{mY>pAh6_2X6Q_t)t)Q1ZFYSyX1Sj29kUsNQ5bOpXU&{A8%tn`^XgvizOY z{2H~J0)72_l~zoVojug6Im|58P?fi|oViM8rpP6vombPQu?2V7qXUfIDA2tH`tVOcKiI3Ge`It+VXhhq^pEh= zqXNBx(G3LJN1*32`a7Uor2f%@mZZv!JT9P;_PiA920#9&iQvXm4fkeIz%-1A_k9qV z`j8KqdVL$2s()Ezs)>$y&ln?PPFxb0^Y67d6l_9vJLte30%-r5$>-k!`JIb`92cBw z<@Sm(2F483F^K|0OQwU-+Y5sH^IJjwlF4h`1o;FVld5B0Fy_z=VC;2_v%pYh8W_=e z!D#s#A!fo10KIfzB>}Wgg00W!eH}bDo)hFdUJLTBGeI7t14DJ-831h#(~zYw>1RzS zx0A0l>cT^qk9-Y$T3KN`3aov9#?H73?A0?OmAik6RQzTml^7iuCxG@iKc6pS^%amm zKh5OD7i^T3BG{D`JZGxb9Oq7@3$x{f08dnF7}g853#<+Ly)^A*VI_G26~O~l|BSo8 zvAuNpW(pNpifK>qOWHCAcJjwx>Gm9XRlxx-plP5ErMq+G(o}buTqu3(T-gV&4;`Z` zgdXbG$K<(CE^EKxu}+zR$Io9blwIsi*^mu7WI#5ghYo3)4Jj%hg?+OjKatZS*|l(i zY`{MqE=m!z2e>P;a4vENyR1*-XLIxfET0Sjx zQi&F$3*GgQYAumdJpMTRSF^(3Zq*Zq>EaShP#ngH`uP3<*M~cOxl}GDRXNO+;zCoG z$};vI5dg(BE?hw8FF=MHsef5;s?Kng$d4lQH9 z+8z3l{i1j14*O4Ulg(;W<|*!uQ0+k(Z?fpzYEY{)tt@>MpZhYsnV4Jj%hg(I>d zKhew8sLTr4fMFUy%72?wq*&noEmX+$k6L2V@mo}G4S?S1;++FG>QUAqLwgV#k< zZv7pA4Rv610kkj2HY(*1k~y6&$S+?L0`ODE8ATb>MaM)54E?YUjPC6e)EB&xhF5@s_IS=3T zW84=W()EpUg0%7y_1Y;{$MIiKI&P(vJ7G#!{veN+PF@r|nr#B6(H1(pS*}czHeoZ6 z;i492!Db+4ZssT$4{yeokM+~j$nkcP1FH#!51<~9#iD+B4 zAll7y9Id9*=?9U>(5*-< z(V{q%X}!R7*Z~>poEBVfFlO8Lf~)IJ#F_Cc zbFD9ZTF2yx(v?#}u!wX}Hqn4C6qhbLNyhKUn2vGo!;`{(c<#c-(}Qa%WEbWsp*k>h zk6f_8=q-@!m$h_dmt4nieJ*r*!3{A}h}6EB`2vpv80N=E)j?}1U^l*h&T*m0-LhK+ z-wJ35DIc*|h*j*pO|*cvSonxP{B*^ox>!k>)tzSU#$>P|PPgyI81vY1ArTVykXEi? ziCigh4?eGY=3olai#@Wf+uAjMF_Vuss{v}r_hRl8b}XA?K{~q^hSGgC z-PTWV{TGfIe36V=?5~K&^RU+W%$u|ISz8cwnSkRQ2xxiyj0I7b z9$h$(MM@T<?KlaN_ z@ix=Tld>1}H~?gzhHPvTtikM8vqef?4>1p}6b+yM7PyC>_&Z$1G;dN^GoEpDY(~UgPyy3}(sW5Eu>DfkquTi-D33EF^%1 z7c!3q-+@OOwK;>a!Tdvl#i*Y!HgXd%gARKRn6zrCNNfE;A>S6n>} z8O)g7OGKPQKMLlpj(}0P4s0QS_GwH$X${EFEY`?vextApvX?#YGR|;dL{}ZrTSL&s zpTXw-*Mj%c{bchCEMkHl9uR`q1MS@Zm7_vW#=u>pyjD3Q98k7I>4al8z zOi3Lxg)wayvt*%Qw0f_|&cI_}R6z$;(}8yYgo3QRj6&Um2XRp^g;SWtpDVy3SRfh+ z1f4hz4#ySw)IZ{*iHv_6F~cs%wq0xu(&l}kU!WZBp<<;GK}f3V}|Ua*^e;$ zUvW~llU~mgb@4+r6y&{$~N}Enou#%>FKO_+}9}Je?_czu79N-OoXk z5jt?Z4xGtASqBytK>Ksdqv1mEz;0Ddz6D!^e5V<68v6;=k~+pyVCdO-Fj}1^$Tw^j zBF?#Wf_ca_Flw&@y9=QGS|*=|;~eVk$r`!MLkh@% z3a@5FSw;-d5koZuExislZzc)epVrdL>o73m_3*T{LcWz8`(PSk7uGSw1%|S2Ao_w7 z5q;UWf_yQPU!D$fPaRWH$1Gw@6k|3_6mhn%5!vZ>3yf;(!1_AyEPzmu*-ucYCsu2O zg%>aj$pjWH1)_sM(4O1iaAmw;duNqkTkQ^j(K>LT0NT%C7OPUh;+av9zx_r?KASOq zj2Wq8CI}48xC=z$aQ<;3qWRRa5Ey%Af z6PRg?abiq&9TOukwEjNI_#xeWg))A=RHG)t1Hgs~*eC(BpUfP#rhvnzk%G6aPF?6B zax_f`&RQZ^7#Ubx2YLvg{Y2)`ZX$Rr8zFdnyI9CKfibtReMqgSV*&(*ZmD3jeYhas z_q8A&&E&7ggS@_uX`*9BGRDZ56T`GPHs|TwI~bVYN8r;zhxO24_QRQYz7fQCl0^dQ zLXp5Q#uykgP{$++3@v#KK5vr*`DYU3Lz%qRIFL`!F{wIc2xAV71;$>-I13DAJ^>?2 z6pWTH&=^s|QvkhmU?l-8JeYa(9s?d5DIgQ|v}3-Y?)nV%6eM7wI_wN!(%~V3?a6sU zzJbg^9t{qybWBGb(}yuLuvJyPnjqrbohz98y#S*a9T+Eo_AyMpdL+o7$7|#^@5s{( z6^>>^HAalm5fe28rM(0jTOC$J5Jxd_qY)sUHCQCNaJCS%7h}#22gXCkcnb_Y`4fD; z9VEzqm?g;DF!_UFAP>+nxE+%FNc%{}3}MW^I1%T_Op&kVufeE^4s5Lh4+02HnII`m zq-!%Y!on??MX_YC=phiX0zu!u0S9$}VEZCXur2!*z(gH5S^({vF^g@9VDY)XAkVL3 znldJYF{wIc_H@B$+&eIG)`6u2(7p+iw;u}f<^2SswI+?+zAcFoA&_0-X{4@wWio}r9PuQHH zQ-5UYh0%h=iYbCc{3igtbzo%ywEu!xM8|=}4;UfwBKOY8LcltVc{UK3IyxpyVCeK` zFgg+?$WKiY#JHHMrs*?vWdE%cDr(7r137}^Is_IIbK<0x;Vpl+ssI-aC>{$IU+S1XI;J9Hmf@t0n$cCnc{x^aFOwgPk~Cm(3eK+tNQ2FkkY90@ z+~(1g{7RH$J2pKdzp~rLy+J*!aAk;%k)K0(S{oeP0ILBL>(M?trK@y#6uA{tQlvJc z(w7!g9BrifBWY71Wwo?u1a&B^d?{tLryYfrfTFGu+Cp>*cxs{c^t!O(>G80M220ExrRr+=~Mc6~U#NjmBUa29445!WZN*zfaPLJ)CO9iV86YF`A z6fgiQptp)B*QA=s1WEkqQBh?)wj)S1$U*r+YLrCl9F+FbCNr5Glm^oJL~7`$%yR8t zk3|TcXor^rQe*h^bKp2Ti836Ot#VjCiIzDjjU~IGf~9LQr5Zj1Nfc2`X(n|Y!q94T zxR_E>avVapiYb25odhac9RB763MmftOG%)C9B!9Di;F82%lanh67xnSeC-dzDb9@7 zZ?yBl>fRRgM{%W=bRnKRoRQsS@f7K-;KrvZG}>9IUGR%|OLpx`VvF5x&PuT_wl&XL zy3n?CIN&oOw*4&53s3x%Ydg*8=H%_7gh|r|Qy&*)opf^$Ik}>~#txz(u8ObJZV)YY zRr+*a+?4BuIg4*`Q}J12fIJ#9r@$L3tV0KYOzHfw`iWxKBBW+_u zp0x8bw0~Y`M@Xc$%M0y-l2(K9(w-aYY)%y#?TT+>5BQ@yHq2lzT zyAmng?8kvMQmuYex0Hg75FScTX(wK`G}|w@#jTzkkT38yAWDJn_p){#?slI+bv-Y%3|H^ZwdpG2cor@NoxtVl z9?-Ls;v42dgQjPJp3t*WrO2zI@|*Ok3uRVRRJYxMd6LksjV9FtH6f2ccP0`loe%1bY#U-e8gTtv`?#@mule}G`A|+$@=Q_s;UxFVqkR;TeXjm zXlCj!t`y;?gn0i_46;RMU#bz#2lS7sy+$C4IDiybmRkA4&^_%#hx{N)=k~Oqn$pna zuzzmBAFogiF7&LL(xA*m+yh|66E|V85ftoZmDbo{=Uc45GE;irmRcn%mB*1A9FVZyf#;DIU(t-bCKsbc)s;Ubr@oX{L#ZuY z=|jKNfZD!pExywisi~ZnoLbY(n#y2lWh-hKsEn7+RH8HNFKvle?vx=?rIvK0mhwRQ z)0Z~XhVGy1O~2Mw+@$p0^sqLVU1*-}5u|w9NWG#cq>d6S4Qa;Q-6^Z4Vn@sCD8;15 zI^s0^$C#5xIirSJ=p1y`}JXtPJ?h58s`t^D7r*h*>dGR>e2E{ag#^j|S ziZrcA!9vi=kK$|4prV>q9)JRW8Rw4knXT^ikl66?XRTx^`~9<12f zNWV5B&k%?o>_t%_u*+X{rPU#dw`^-`LnlI%s&Zg{oAi$%$`Tu?V?$aPsx0y}X~#EQ zro(HIw%UhRNn2p|_IUPj0;7MVM;lvQ76g>L#O(CX)4t~ z*)1LIM87q_yQn8Z38J`DwSr1PYSIuzSEe+LZwN!#E|eBGR3?-dkA~5r&U=SR6OaU- z1Lb4}cBC5NN}@ESJ$)CBWSX_3*Wt=4sY3`YYNT|MvV!T)MoPNWFgSgEVM%$+H&y+EN)KtqR26N+rGEqnfPm;XVoU zVzJ_!UbeMT)<*iFMtW$Z(%44oQ=O)@QSM3O188ttWrK9ypGvh;uzAIwp0$Hwrd6Y; z_R5fg?$rdBesrj)QZZfWpj@|+id0R%+fgZKBS}^0NhjEyik0c-&d|NRm8eD+#Ez&$ zAn>8HgB2zHbQfiyjkL{|>UM+uXy;3dyD7fK);_~k=T>jjUadoyx?v1(w*nREuGE!Q zSDn|}d8Cs6UdH|Ju&uJ>O*aM zDh990HhG%Q+&^*|hr%{AwPhu_gWohy>eCzXdwSB$ z-r!f$llJshLOfP~$~0@^3d^|UGORK-#j4j0c<2vxGRQy^qQRh{f!0TZVF@iU_`MpbR$-2DJOo+q$+)Y__{Q;?*k4ArDI4{&2TfNkcA2R9BK1xlGVL<AVSSa6#^2xP zNlSW;_^0whBUM0m=7p|!3FwNv&@J}?{VFf?`~yIf@VnVS{TofaiN_+;ZV1D4<&AeI`xlr_=23!oTipdJSImyL0X_LH zlP>mCg56Ac(b5Z`?_bB0gvwj#*OKHpK&d4+dYegI2cYVwUQ3@kK&b{Ze3f<$L{-yW zx;;?w{=#-XOc`b{ZfdVV*id5%j=IZz05%(9cfgZ*uvrlT-c*Cn^BE622Gr$wR4)#_ zwPy+XHBNagRd!`xGaB~vY7k6k0~ZaF4l@E<<58S0Bw&uVs~FW90)b4$D0&F&dFNuZ zfWwuG(P0k1ccQmLF!ea*MCFIVU+6>~hXOy)iBg6t0mdM_<-&&1&3Y)r>+|B%^YoT^@pJgfrk{^;Z+Q-^J2a&li5NC-DMw=ymHF~Dhb(ezD7#=Q zt3t5Rc2p}#sVk4p11>=Gl9XN2ilRKQ*(=R`M1_aJ2<$3CwT3B`JDZAdmaw1E>NrM5 z7mQNG@lMs_QJ!3#&pj#1#M8{VGzC{snAHxa({~S3de}&BPm$XQ%nFVeXut>s@9Gqy zmm?IDw7C_H8>uvOyZ#_gbVnW_1)ijjNo0;b?CS8e8Q9_LJ6qm&W_ zxAE}7WV`(eH5jG%wrR_BroeXa_`10Sb;5n9w*EvBD_E#{1~0OL#1|yH^WioiKJILC z@kCG!SF*I{vfrtN>@>D@uh8C6=$CIFqXMIqz@i7QXzUNcQ@7uvW}}s+?oAPi&+MjN ziNLEV2ebq8eBf7o-9wQDXI_Ms*CtBv#HZ8D`o*&fF@H_QR=)TAC(tIApC>;zZjrvqb@vVrw& z!4wDlI@RLa4Bp}7R#hGHb2h|-A*MzK;7v%=-j<4ug^cU+vyAT4bF5Oxz8z>%Z-GK> zYD>wCh8T>l$+2+MpL6gWx#w-gxK$Hp{17m8z#DrAOg*H`apIYk<9WyF;f=s3o=>f zKWWu1`H9vcnc0vw48dhbNEij_&v^>bK(-F&>EU>#Uz1<+2`={oEL`^LkapQz)-fcf zRK7;gl#FKs->EY-jBT%Tv|xf#-MKx2E$iG*ewbbO6K%A@ui?pr5VlTsG7dUqZ8qeS zIWwo${B6i@BFZ++hRfF5ISAz9nk%&`$28e~d6pJVR4VlDfoRM++24|b<~rn$Y)Bo3 z;C@fY%wdhPEnWB_#bU?s=gr{!3 zk%_yaHS)Cr{2hB}NCqv=938Jc0mfi|4Sf9&rKBifm4gnkzT);X=&M>di)HKJFB-}& zOVRO#D+%UIdY+<0$mQ_ki%Ci=`6Bv$(Qz&enwDaRE4c)XOhCoN8 zL7>GLS7hvCyQ!T!<0qEYwFcC(n1VVV<6hA6&QF=_?OcI4d8F+ef(nW0Cg*JW6lH{S zXHI{+)*T`dn`dehbn0$XmHzT|467zhRk}Nl(c}vE=@-Eld*Bf(!&uCXt^$oBDM{6) zDTN|aFrvbBACBsteOy5A_`GL4U?#p`?VWlAazm{!XVKJZ2Z9be`4PN#p=Y1*Wjit; zmI_rbqwZ3tq1bC!(tth5UziVVvdO@Rj2=vb2<<>;pQ_Z9Z$RdTsY-SEAy6Yy5i=a9 z`X;56Z+O~3jud99xm?ZQVNgmvAG|Z&3Y`NkD#A6tES^8&KTpL_^Yk9_|4MN!zTgcg zQ*UHTlplP%e5I5LScCBjtIU31OO?*mA(bmyAQJ%5Oqeo4Z%Bb_nYvKm;J^5Tc*?xF|g#rMlXeEXbpg3T{d zyXiQ1R1109JzWVkuDXyXMclZ=E2O5p@WKqwVKgu=9yi)qhy4i@N0MnBq_X;ydaq%Jd*CIw6VtQpeMKhwGyinqT%#%So% zGLB$?p%}o@Usal0Y1qDrU(9O!R>hca+q>V0+VMar6?l&^o{HKrV)ND1o#+9B?F zJ}j2FhgRLdSiagS2YWULJL7dGMa@(^oRt2UHQ3v+btfGdjU{TC~7p2x`|M9SwaC2woKV%;dq}S>WKgT90yt z@jV58+F=`GzTH^U;Y26t1e=+lz98tw41{cfF*<%11(lquw30SXrv7sgdzCGj<|;uY+Dx{|_cqko;4leS)gfhmCM!51ovzJQN>_gK z5dBXtz+0FSeIfS_KAnOqk>T-8@}@{7B zXuAE>a$7k}0` zK_}-c;nMz1rNEjaKArI6B2a(zNSexrC(CMn}w6CblqHuB}`2iPRB zoDLGrT!>0&osVuWRN~~j7{0Vxq=XmW^O+|FIBkcA<$N0jyj4Hsqcw|^8YP`!)VY8R z;i>-Nsr{4`-kOpR*O}7GMM{E$36m(4?paN(5`D>O6mIF8^0o4%#}x<*Ij_PCPd(8h zwLP=o3BLIVnZL$&kx42ISd5iEMuZ?h8@0`@O-!OVVJbE z9WOMkXM3WX?5_Ofq9~BLriFF!Sf8Ru?|-6imns9K8~3T$GAtgJ=}QNfDP`sTP_*Bd zDTCz}_|a}TR`a6orJI&3vW@iRA2e%)(o4$vo&H>*M9I5B(Q&0xyJ2hW=G}9?Fbf=5 z97c;ZejS<^twKj!c043P(d}o;f~laUCTfe9oQdE!e0`KD@GUmLuT#qLsV?BidWYdv4tx}BAFZ<}qDy)<}yS-qw;^{RSqqs2b!BxE~v{%}4ddF`2sNrfX z)m7R@NvjqAsP|Z*z)f9B?nf6EXzHL|2QpU;{($8S_2<0Mxx7fRDKB&@`h9iLUb0<- zb;pFgyCik!qO9wQ1Tg+|lq{B@T`sr@$!N<71ze4&ZnJz)tl5 zlQ4&!!}w+wwdgfUSgSa@syyiAX7m+NbX3u0PA@tjKN(I-!z*#Z~ z0xg3lE{hBf1ED2@k1ipDe6t^yK-DW+1}jeiFv66=>Jorkth8bJ2n^F7s89CflC$My zn!Qe`xY%VnwN7z&odU2$2umsden}Ie=nU@l^iq~CQI+p82d&70p%~B;Ci#RS zyV{6Iop_Pe;2HXDDCnErxeC1_MCJMTbM*-rLc|~QDWEzds4R8h&l!r|C%$~4bpxcbv;%uH(sK1>ro;TcKx+PZeGwzWKb#+vn2fKJZHvyfX9<+C`*)GEEp7v zV&PFf-y#-d+RNQ4GQ$0|qiTaRKpmuwo_|q$WAYGT+Qu!~a#N5Rl0maJD1pY>3$>Ds zh<+c2(fXovQM7u*kKiAk`cb>B@1gnxA%~rOIm$zIJWCoq2G?bvo*dOE5zms~Pb?QI zsB3^)SBkd~ayd&^ ze^3IQz7%Ln%l+{zmEELFcRI8^R|R;TrG1+eucD_pAzdRIoS`S1l+v!zAhk3tOCkPv zMk_>*;W|B6)#KC9Mhq4-4fZ=H+V@ldAvup>^0e=#+eDU8f7~!youOHqVba!vS}QtD^2VCJO(#ZQ{)zGeQ-TX{kA9-jgQY@+!D?+U~SOAmhjkCQE(q{>k42N9cpn3zoYqc6Pj;loRjJiJ5{c#58kDE7HR~|y%Qk9N zKqG9f7Z)wN?wq1!+ZDIaUyzV)AJz+Uh@v$Xdlo&rYM!anfwqWi>4Mc0nz+V! zOsk7)$KtwS_{kSr*9%~A)S9^^na@(D#rX8f@W$Ghx^pIvVEGZLR}N)9hIML@7QCt^ zrg$Bjre4Mev(z_y-DeiR{WlNbb}cG?;(@ffX$BHK^hr)Cn@&5F{)M)U4-Zuq98~Jl zvO`LX^!f*to;LL8kkZj;_d}-n?8Z!U-SwH~A#lHL5I+C5b{q4+-K@f!LF;%V)7M@GlR8e(FTVxyB{WBd%^$%7L55AJJ-ii9DW@9*KqgHw;qNYp*!wt&t6QQb3r-a=+!Bze-ambpZKAMxcKO(IK!~0q5Y$J z$Hi7iG$f5oi1ou0Tgv5%)^vT62S+FMj~}ez4N38a-m!+Ev5E0U>TA{XZAFa6$qWsFV8U!!P3<&uR3PKp|cw2@|? z*rBn5qhmGs^3j(Ml?IjnnMY!L^3dp5t8CHYhe}#C>tfR+O%?*8T;gM_$@Q|Xpej+u ze@Mk5TT;JRLt_6?v4;3QLbm^aJ}Rz%-@$`o2Pb7mLZMp=7e6d^Xk2_$Ol*vSnpdzpM-4UHPa?Zdj|4ICUle6Sx?d!;O@Y)zcI z#8A*^rP1+&6O)D}vmqwaQ>AL9e-&HeCtzXTu5_^}XI%)1Ntyxa z-$z%195eOlp<5Nf?HV=>azYlJ=6-V5vs*@o^3wz5|tbW4bwB1$jVdxPo+Vw^2*lE z9D@-ZKPVv%+HLqt&biIv&swIwaq+#8&A*pPFRAwN320rzV&jBarr%yEhjO(iXi@yo zBx@$3F(ECY*UG@+ISQEFawzk)vXdUZQOeMkH%cwrK2dRrv2(Xb&c@B?YxBWPJD=mu zqOY|M{~!J~npfzF8U8;LJ&O$3fyWE@vvgkL;RjjqWt!{AEW1byHX<(>a{|2P*cZ-1 z&{_ZO3IEA&ndX~tr{NOdMCAVk->69;66N(dPP`EOn^^BT4QG+`3Fwx>F+IB(a28xg z&^3Vzf~%;2&S*{WzxbPrmlIYYShfIv!{7L?kc`^}X8^N& zaMN^VBRIEKjG2aWd>b^otXzG(Sz#Uio8QKNNAMrxOX!K^`}c`j@kIUSm1;b4kb&Hs zhvS1VjNb`AN&n4Zra4$E%j^iZ5Ig)W?gdW#SbqOUzR@c3e-y!r{-B;%zW+8+D;`Ep z^bXt#Fc}Y*pfl?Q-%bB*p>eF6Wj=?)TO)A5%Hr1M30vU*p>ND)^q)i+ttY1Z|0QZZ zhzz`dyAg!?kJFj;fbV9-n291oP%^<;=6>~Z-1t0UYutbR+i1o3?;=O)iM{_fbblAu z8fHLzfADgITcPus1>d;YiZK)Q3e7T~g}Z{BTikbf!WQ`df^W=D#KLS=eUWg2?pxsh zt)GAlM1qGu+%cWkF8Fu!-^?!|#E3d?4I;RFaG|=-zb)>L)o%;zf6X`MVg6nZJ4WUR z@IOiHMJo~C@Gtl|16(7x)xga|cr_e` z(Qb1?al-05$<__qwQx#pT6^f3?pDBm0rvSiWSN6{LFeGJV|Xw4Ov`aN%)gn|LeF?h zI0A7kyezQpIzJ6A;u^CfFpv|q5VOxPW||!V;X5LtMi&VjI~K$u9RIe!G+}i-^Uws= z@h{-tX^#fQ5t*qQr1OQd5V0_M9W!Pa(`TVDLm*^w58?Cga`-(RKL2Jn0`38vE#g$t zVHO;R&l-Vf(?uW|z^-d|5qWes;aehZ?wVyL&@uy8I13~8IZ>wDrQV#0tmZdA-xe<+rUa8P6u7JmKtyqZo!kX+}U1MhV!R(HP*u<Eg zS>pXS{&z^@MUsdg3cmPl)Dr(ECNHcK{wJD$2k(bW{WDD{q)7fN!3w}SL)wLq*5dLq zSpnf9N2EV1Xj@1&o=nR!M^DaiQPZ=`Q}VzXre>L=bXbM21ntCWIdQDx|Eu4dz(E!bmr;cWgU-y*VJKaL4%c&*y!}+qP7nth1cb&tCQ_7b9YD{#&tWPzMKCu zH+RQh=}vFYGB<(y`5*W!+WOZxR_Pi4-@bQc^+`iR?HZ0 z!CA-oFMbE)O6>0<#z251E5~bf>35uMmHfu;c!1u&&nGkc)@}mAudQIqtY`}2_XE6b z_BHUHRy5Y}|HI$LT!~so;>5o}A`D|;Li^^Odr zm`~}>G5;(qv(hX@9iL_!eu(P96J@ju~)Au(mxC-V_Jsk+_D8Lb2Vm%m>l(IYti!f8B# zAbMIx%a8xcp9dz+VCD=)tMNN#A#h)z#ncq!mr`jzX#_DSSXwwoG)CE?z`zQhQk@n47h7T z?%2d?Z{x;My-hY0gFF z;V!~$$L^$ya53}o8}7+`l!On6Y67`%5hPmp-@72hIf%IL;T#u#GVg*@;oO$scpaSE zQuuJw;2f8sBtRblw;A-|#^oqJ{IG`~uKz9tKL#!dMD2CICj39YLGi=gfxE8%z6Ada z+%C8ix_=-33M4jZQClg@DGA$GaUau3;zY20l)Ks zA^Ud_ZvQ>>2(Bia<@W~so(Gq;4vFf1`2TC|UEr!J_V)2%!`dS14iyyR95ye4-UqV5E*}xKb zg?NB`xs9>AuD7bF+B}WOAmATIFfGHo;mg1&?>>AjtmOGGSDSzSj!ygA|GWS0U(;B z(}VwXnx{O%dneCE?Vby&#{AnfenGdJTSc_ps`F2QHW(eO&Pz1I%> zUvMYBW3LB4A3qxA=%WksN}SIe1+VP(1vZ4g*xP3|x!Gr)#fRU_&uay?gE$XG<-do4 zC*fzH^pE1I{x1dl0GZx5-)Dxw@0jN^JK!6-N5=cicJSY&phi->KJ&^rpLs8QBlxGr zqKe=Tj`5iT;s28CGZ$|5nSbC%G1kF1fY00HGuy)Nf52z~m+Pd50>sqjB|)f?XM<~pBwKYSDT{Ix!_GyGHd zf37|hQ2EL=K648ElGQ%*qg6h0?A>VFyL@KpN}m}8KRwH5?!|vv|80fO>V0zEb^Jj@Sol8Gv~nnybzrQz7G7u3w&lv z_ySblg%dvWPIw3WgYWswaQJ85^_em7ui#&vCcuAm+-FXP|MqR4nF(L@me1S>-w=M= zn?AE6{7c0?a{&B_H+<%}H+)|63;c)5dGMEBLuuec;2%BaGu`leU-g;2;NLuokG$dk z{tEg9{EtOGGYdWte)AEZ*&Ke?VV~I*{^-j-a|nFNA)k30{C5XYYw%ZILNmiRf`94& zni>9JA*yy@A=>#xpP2&x<$m;H_}^aenc495;2+!PGuy!L+v_uX!@sr1XO4s~ecorz zguhteGgra~!EbraXGXw3yW3~R!oT_~svrL2T|P4n{`+Tq=2H0Tr+sD)d}A;EY~SfK zZ-hUT?=x?Ke}9M191mZ%-DfU<|NSWpDfs&EavRzk{ssJ>);RdLpTIDK|HtD#a~Awh zc|P+lcmqCH`pg#ayC3tJ-QbTs>NAJIpWceT1YiCLYJ3^~_#VbEfe(Y<@sQ8#1pjg_ zCL8zsof5Tr-_rGx7>t=AhME@?+WE3=$ zg{=fe`%ta$v48$gJlg+%ruhG^m;65|fcHNrl~wx8qAE6jXUD& zV~h&%p2IhyPvUE^yx%UH;SGR)TsAWzgm@7c+d_zAz|2Fq3NgR(vYDGA#JE3Ue**M?nG=PWa{01(Y?APbQwWF!_#6uu z<`yElKHgeGL82SrEhOLxU@9=jg}2IqMK@HLrNFpQyt@TV1PYfB8Ne`L7BCuE0PGJe z2POl98&;XKfN{VqU@CBv%Zr2v9%0^kT>B`_VB+7z!}c~t}gxr%63W$ptO0gHjr z;kZIz7BIXaY692=7~H(dOaUeWR{;xvyMRT&B48!(3@|GKHPQ$L0CoYM044y-foZ_t z7I@)oIReoLYyxHgi3mA5k<$!CK$~+Ft0+uNr7#W82t?|_c zFb|jpEO1wu*$UgBfWXu!=mVoWqCibh!yT*ek_ZC9(fEu5SPm=#CfHwAWr zVPHmQR5`E|m~= zz!SINmr#Hi9@vS5ok6G(U`BkEc@miDO+eMP#1#xd0$|Zl)BrGe7!-hsz%pPd@DecV zR*VV^!%|=xFe9nT+yKlPUS(cUJg^;xW84UIHel*V)C4eb6zl?XfM+{ zFzkweXMu64$e;}p08@YklTn4hyg9f+U^%cHm@yYM6a|CxF`R&KOX0U1Xl<9kq*z~~$l=tkg!XtGW)yafhaCIYh_LCpZ8 zA4P$>AY-5hSnwD|omT}UCJbO|9wwNZknjma0L!05n*;N2FU!hm`MnpNTEDi?FqtgIOffs;@Kcg@7LHuvHvcAx-L_DzI3VMA%==;!wz*5H* zvwwfo41V5j8!!WS40ytM#l(Mt5aGdi-2xaFj3>dl2%M;U#k>TJ4#D%7fiMW{4@`97 zRfAh_1!Be2qqhd&s)(1`KbDCx*a8U^y@qctynnLkHnXJKz}*umG3|tn7?; z`+#}f5I-1tJ@B|}1OnwZqeQ^qUU;|%Oa&Gw1>iBo_r?n&z;Ixt;(_=F8{!1e4UA5} z<4a)a5IkxFCJwz~UH}#W!xF#)qk-kX{=n2kyqpG1^xlexcnIVGw*d=)g-V`{D^Ut_ zkiifn0QLkH0F!~0z*&l)i$~SK6Tm~jj0_Y27&i}(xPg_x#G$z2`FQ#dEXPmZS19>* z6l562f7W6=-ACZWQe06Yt_;tjYRxD zWC)D@NWD6P0-Z)d$3U+P8IDCk@EEQF82&r#q@VynIKiEObd7O>H4)=Ks~L{QQjstc z1Td#F4uvKGd*PI7GO7@G3|J042RzXmCs?5C+{7%LAFG#62a}|+}h;&@}be!MVc`iqIK%v zd=?CCz_}%`0M8~Wfa+0#XEtPD3b1q&PNsmtn{ng|%mSVRR^risXAZ6`7ka?Nhj1PZ zOa-n2W&v}7>XE`O;0a(6upD?282oUx=`BMb8i7l|RABI2Bm_nR)ia7%U@0&GSP4u8 zCO(4a8Ndu+Hn0G=6&Q_Y5(O$Acud6uOMsPlMiH3-y~nD}EMWPwIGF@yJcpCX#CfPX zoVafVp1^5)@O+dEhw1HrMK~nS1g7HPJRevJ3|jzsKROXG=S8FgX5jF=92k56=@z0O zKo3wIoM!=pU&2EeU=Hvcun6bgJ#RFzXHQi;=JxRSnE~8&wKSdUxEUj#uFQ0B`|a; zQ0P62BTfVgfX9KQU!e0WLxH|Rfq+H84Zy6garCd`Z(s$b8g)@P>G5$+&1D|*|A};vMt-uozxW!ooY+;(oz{*I|+zQNSXPW1f z+!41>tC2DON5Dd0cxT*a0rPNMReuc%I2gA*!14*Ec@mg75g$MU^YG7b+}XHL{9~OA zpmJeC4xV9z$(S)lNQB$GY<5*_LLF?ng=h!g6CS@AF?Nj6p=BB3pHvYuU7>Sa!NP+e zYFK0lY$W8`)kb4kFvjTOJO?={Kn~n(G?PD%F0$hU{9R4A!NCc+}r<}5p3T_s-9u}jyh2V0*HAE9zv{K9lxea9d8j4%N z6@hC~gDU`c99+!;;upX~F}M~r^zdV+;v~4p8r(T>rQq6JdFT5eQp`Y?Wg4 zn%om{-BkKPuF&<4#b_j58!6C9t&vV$SO&NhaD$aToZ?o2%LR9v#h`BibHSZ8f?I@-VRb73kKbuFCribSuGiSDbZCnbtL_`l~=(WUzEiK>ei!%TW`I zrV+D(*|-U=&~#{qK`-6Fbp^{cDt-gv-QWb`Z)1Ee;x`4${fKvL4VLdtFgiI3g5@t0 zjJ}Qw!7^qdWOrRTd7_czI9FHho@n%Kl^9ZG#wa^hnHE}QQspgk3Xv8feG^evxgjzl z6*kU<$O);ahwyq;W(So9&JCYc2g9qLd@R+7a=7cuqYAIomtUwfnGIybB;k zNK_||{`|7p45*wMsCk&9HbhC^6r+2G5`<4i;kO`EB#OM=G1nEG__m0Hs19r@5Vumu zFBTh-a_LlKVADI#UcNfVDdXubA+AKpcc&Ur&K!i>wUrmA8Y`SZH(+XME9Xx$hSp6+ zxJ$b#^JTeqE$sYtn$gj@4P1UZ=}0$*I?EB>+Ch#=H6~HA@P1f&El%l&H-e2W zv=3Qv>RhM5PtOBxAN1^5OzEY7Tj!^j0qz|1T48opPU)=zm!|a)g7d)VB6t=@EkDVx z_Tggd&orXvoB@}EV;2>#r-3zBr-2H@?L!>44{EB3bu0{V1rMrc4g30ykx|zw6Du;) z-3o=1DH5L;1u^W6RB>4Of9N*i{H$WDIi^8@IahF>9&vo`Y%; zvTCc$saX$D3GPgc+&;^g+DaWmRrIPd(TyypI$l*BR?Er+xo5V~${CGt$`JYCY-5g7onZwh%D!`q zUd|GPBZtcs2z%8TRz6N-oN2c;L^aYvKYMbkZeE_1XToPo+OMflukxhBKt>kLQ2lri%445O*DC&C$H!Lb4G)JGRO^tf%4u z^Nhyb3&AZMS7lC7_Tf|=9S2tguCpRiT%qGono0!KIbq2-xo)2EyR#I9-8E6JnU6Ii zC<4>eM7d|a5#x+Q_{=2v#e8FG$To!Yahlf2>UNQG#scFmXa5#x`84_U0wbxxCK%0y zd@K#eEwax-Bi_5t6_@1l#JdvXUCF~SP9|D&IFJ?A;fbv8Hq5uyBB%H*PG{xPU4#2 z8SZkAuOW_cxo?Fk1|Bqr)Jv!lc8sebq|^x4RQfMrm49ukH4`|d*06e)D|&Q|LOPzT z5mz(Ot=3v-EpX~$P@y%GjjEB#G0Ekv6*;`NuAdl(+RbT+u0Ny7JgsI_blr_=wO$`M z3{|aa6pS^=1*Qbls6&(@73#;4Hgy(G=~_C(#7paUST5^{>G=)pNvOZHZy^&`34)U?x%7a-$sc zj8+3DxKfi`>G7_Ncvt3dSF$75l{(RuN4S!2bES^AMMNY0EcgQ0IJB_Jd{jQV#OTt; zujfyy-FL?NwTrb@hPJ^Bb-O&j#OT`~4HnfIdg`Jo^J7(8ts2k31`E5e!S)CqR&RoQ zeu2@dVG`B?rGE(erHlWozDwz=5{E^>{u24&Qe&zsI{=*mvbd|t{Jp;1ztCtarz|sC zcyoeWIRVM8+<v-F%(@OY zS-!H&h@Q6&QSr!a1WJpg9zHu@7`U_=B}i6RPyljb4br--^&nII$f4j;{5Y&Ua?lK; zshqalXx{v#cQ0SPJuO2O_Qz7@xu?qfRX()bcrdGgKHTMT%&IM~ ztSvgm)RwUefl+sRH1hpb=F&Q{)g&~|eRmk$19IfCJB)ra94Apm|Jrmsb3O7ikV$@5 z<5+ziO|c4@hGD@i$Fqt4vfB!ygZJeCSL&D=J%4g-ac=ElGp@Gitu0!6`mL~EfM*rK!zO1Qn2VF87H2@;>(T4g@&lreW2ks+9v*VjpKWd>%+uT~mO zgA?lo&ULu5MoIS?V}kUoF&f2AaAi$GGrI71KV}ZrPlvEjzg?+5&PNPwyz~q41Ej2?noMkjo8M_cOQWoE7v~7fWymsr4 zlds)rbcn%W+Qap=dp2q>LsIr+`rP;IwHYgjf*6Ewhip#2yvwj zsh3!r9_~t2Gj|TQQp*dgO#B01?jBcQ7k6ttM=~H$He6yfZKYPu@h*3~b%Q$G6*?44 zS}fGhAZ^A0`S4vvCs#h?;4WDF4pf;loN_;IrsY?686Em;a@1}H$4pn^s2YPeFfbs* zl{loHV|Z=739{SWYMDC(!~0;k@JN*@<&?XPNsSs}*wk82Cd#i~L4IG}Z8UG?7+gDY zA=1ynCOz-fD)UQ+oVp&0Ems*gc0C$UdtG&;y5dIHSa(r3NO}fIgI~ul#mJ8j7*R$7 zW}C0&&#R3l$?^5FT#3mwujB@FQfv;BuFgw8*1n{rwM8rz$RIri^U#~P4VPa%Vl+;| zalv}zlI}RASEsA{%i;AVxiZGMGUHuY@fcsjUFlO?8A&x|kq2|fU@rTuDsv}0OrO<8 zXYb8^6^3~xxyH0JvbKm0Su0vEhN)d~7ymAHHmal8yO)iD*t+8MW38TCtS#b%+Dq|J z^dp{(43+t-jpi|tFi-?*v)<$V^AcA$?ss(eN_GX0Kzu3UcOibNzAqerJJPG+ zkS3|Up_&a-p*IV9`EtMH%CGBTPdZKdwizwEFQ}ao32Pcsm7w>7 zK|QbzokqR5)Kbz`PFicUb|!;7Rwmc1#SPy!ge%JM3|xM7FQ)&pwK%gW2bb_Q&kx3^ z!>TdX-Z>OTgL5L#lqY30&;A z^5{AvsqR@7K3`=%rk5c1dZTCEE;nQN{Dilf|jZz$LzpxMmtMVNOUjQD*NS0F_q7>YrU#n!D4Mv-I(F=Ejm+*U9 zR8Wb+z=eaGRD+8KHw&D7IF^98{^0WQzjGFBFb0KefKVi^m@fv%PhUi_FRn0x<)<5r zzEKwtBk&5qOl8ix3vx_Qm8!}T+#B`hkiG6PqGDnZ-UdDEMjvsiC<)*Sz~T7La$WE@ z72Ga|+<1@CDJcixbAk9qU&Rh{Wjh@Iz*rwtPo>?3xFWo2;8AgKiYrq3;BZ@QIn`b# z!Bqsw%lF`%Fgy-xom&pwXtavxkFXnW7Sud}PX-s+My}b2({uGoL^9%s(pD@m8{DQg za{opnCh8EvMTlRd;?;DTZWYZsFeyP?eH@U&j#Ir#ksBo=?lmIn*6)LDCf-&!s!poI z<@kGz-p*Oz3fjtt??w3v5x&w^esQlcp>F-YD0e%2p=!gPXBq;7U5m^Et+xy3zg6_MNVndv%{LK4>(QtM4=VIdc(lrSp;3?=#Ljnr7^~ zeD!Qz)llw0+{BEQuWv#L&LUhqR)#!iY;^y;R!X)|ogT`iOng_=> zx5@iA8}~aeAY3^0NW>Q7Lx-~%2SlsZ$cqmd_t#BE7m8ea#e71peb|rzqwyblj3*uI zo|T6m!Chk^&aKim%P$@=COGS(hCN%3^xbM~4{)4*Mt=IJ(aCvs7;1m#k&wrX2>~5? zJagGxhJuQzuB?$Yc77?YOrai|rQV9}u>Z(LiT$->)YI~49xNO~UoLx9p3gJpJG%_W zn0-S|ejFt}hH&BAN6tTPL@$1;uM)voBM#i9&!lr3E=*vEUinPMY(o!ghj7u^E2df@ltV|r z@f%v`temqA$5zV`F8^FUz0Futw-Vu?@9=hrnqAD?io;R;-QV@R28Lx!#`-e zf2XmiTM5F)0`cAf<3oYxz(oh)0XsQ07gmB>4(^gZw;%Gf(b<`pf?6}=il>e4&TNF$ z)3&E^R$qefDs1ai*gYPdr;Z%;48oZRAFCs`KVvMdTaNIqdetcZ3sbO&_1tB6oFgV+ zoVes&yYN6~Il^%_;Pr!0eLMV@UB(;E^odxpTglDOq8k?@ysx#q_$<15{Zw>>DA{+n zkra`Ja7nvrb0Z6{=D$pEBihUDyN$ulB7}Q(l;7<(Vj?ae92;G2&Y>#}->KT1R)gCBt`wX-0V%yaaA&|p)X>`puFOxb7~ENK7}l0k zY0rQQ?u>UVY9=lR8P>V_>f;-wcm}ujt&U>X z{`vF9EzV0Ig9pf{J(xIVp*M#Qln?JwlQY8GZjoQ?F&0I&n}VV3sWu0we66kOUDifI zW#&QLS&v+_7n_hx2zv(OV^w|X{PA9+vGW+X!ol+VUSn$0ced1i7#2Gfoqe#Jx(`!H zD#Bs$a^pS>??Qwx#LF-C;fZ4qI#E`F?EV6#5D&s<6Xc>7u+XF-T$Uj3e*pt)E5hMJ z)A`9WIiP!p~x{giYauemz{kV=& zgoBdM#PXqMF+H_;(dbvV=X4BkaE;~9&tij>^`epLEC9D_r2N~9uwSXdqh*IeqnE4a z49wEW)#eg47Y>)NXBn;KeT7Ebx*HIYGX`Jd%a2#U@To$htMd%FqH)r3!01~y4BLvt z@zrLOb#o+l6d8tGc)&<=<|E?5MET(XW2!S~77|RB-Cr`2LQ)V;O~ZG^L3#>!{v~6v zQ@v-kDP6WYX!NSvWj3k_FMrL@d$P=f*psaSC-8#TpDLG@(lykytcxG@QwTp&jsGUmi=LOA#KYV%p@s@|9nuFIlo^9^!wz(e3l z7s;;=q5UclKD$`9dKpg=)H_(|nKJ2R)SY_YN-U92yo|apLb&I$YO}YR^de;7VWWA( zC2(;os!gm4mQ&>m&cI~5LiRdrbZ_ZF_zL3Ns#rcKO92;tC%z!n7oK<6NUU3=(yXe+ zCc}D_q53fTXF0e_t7Ow7MytB@=b=n^Ys%VCV8e36h<9d!+m|i3A2E8>*@tlP+G_db zd}C6Gy13B!sOfcbU=eD11j4cF@k#jAwrlU)1}=T0e7^`6c>!VZfQ)zrVfB7jXs(?9 z3I^!eFCgsRE+dW_A3BQ{qOu3bi$|d!dOHTnXgTmz?0`}bj!u{BUPan` zg!fICA1eMF!bP)Wqhkn1FT!A&BPSd)dWFnFI41+&>jlfH2aPuJ$T6dhvk>HkO!>tz zEHlxI(MsEW=ni-S+ET7~4G;bng3H_?pLh+%3K34rmtVYwf{09vqUU7H>uAmX2$$@U z^IumNf$+J#@-X<2;|OQGfG-%sUsajBfgzs>Zq;$Q z{S9MjhjN6&O7Yd2YC`Lr-!WRvG5D7aB4{Z(IpUITkgu;Z+8mi!Y%~aP_Fsk~ekbR@ zX$-Eb-XhEU4&SUDT$1ofh&NyLC%9x{*y$ikjv%`IpZ{BF&AMRBv*8EpNY8Tj#g>F&tNh<*M0U*x@FnCue*E9; z4E*@Bb_R`WWB@x~+xE#nU!n{CJ^0qvwKviU?1)QDkl)aWKGM>=fb+;2;#OiiVjS`J zHhR8Ep=?riP_ClfjdC+$7h;{ybiux)UaIE3q7D_#Fyb8X7V;-4kEHw~>nkm$_v$%!s zA^|sByi7i2)D0n5hg{YvBQ!A768^h^ic>~(qr5kDDVkfo5Iz1k+37>0b--^j=|jWo z5Y8hXd}#Cva8z5F9tkfo8U{E5RHtkrJs%q$?|P2G2Z#?5A0s|TJV1Pp_zCfI;sxSm zqDc&4kBlOAAU@E~sy46aO=2|h7UD$WY~r272Z{N_y~LM@uMt@x!oIL~$)6#9XCZp# z1rk??!R!bPi7klfZ1|Rx1N!TRZ%x_1M|UD`_xPEV?UB$;$!hlM$%u}`T3r|McF*%w*<lK?;%6j17`2*!TOuw448e(u>aSsXmOe2?ah*l7fQ?5rjk8*v=`IH+_ zE}-n9TuAu_%0-kzEg5b3CJFoQ|9#5#3I1uyjcMRh%3+khrQC$_MaoSn|47+B*7%Kb zxQbVO3IEu|Qnlv;gG+LR#R}1Yatq2$DMwOnO}Qmy{7WV))S7ZEWjE!%l-od7`HKV+ zQB+8#Y#)+LqHNt7LT5VVcGRCoxjp3-lsiyfLpho<{u7fGx{>*dhe&jy!jqIcQ+|$e zN6LkiyHGBod=uqj$}yBrQSM5)lya=Te%yAE=thMK%6N`txhs@=P!9eGTc0p-4wvnltZ{3vC0x}aPEoYz-4m~sT=c*-|XPN3|eJcRNn%0nqnrff}K;O1!AtKZZDv6Kq8 zGQk?kNtExWJe=}ll+~fJayuxG)S`Hv@+iuOD37N6h9#r^lS#Z!g)x->N_i~hGRos9 z|C4eG<=-h=ci-Rw{;6va2h5fWp*)dtn37fd>suWmT2ldMt(NOV87GmJyP5KBls%Mj z$Y{CYlyO*Sxe1hU5NNsSl&4W%2wCMX(n;Jwh3S;NlySIbx%(;4r2Hu5S(NiB&!)VW z@*K*CDbJ<+=0Ah1{H+%e6?c*fI3lv#-zlq8ALYs@#CauO@KXV!38iz(I=T+EB*fiRC&`#!-podQe_Yxj*GQC=a2$g7PTJ z_L1~NFNrKF%%r@M@&d|tQC?2@Zp!N^ucG`Q<<*oWc`fBq z%IhfqNO?WwKPYdY9QdQI(R(Q0KzSqO=9KT%vRB+lB8LinDBnjpp7Q;a$5DQO@=VH` zC@-e`AmzI$Z>D@N(sdU%9HE*0`AKSX&C<%cOBqWlQuw<&L>e46s3l*=eTM)^0& zQpu_vLN4km%cDXR<;N-aqx=Nrag?8=ypZxX$}1>8MR^_N?UXlD-T~R_2YDp&sZc<9 zC*>l_Pg8!2@-viAQ{F}SYs$}3zCd|5l=oAUoQB3(Z z%5PGhOZhFzODMlh`EJU`DdQg%TA_C+Z=w7y<;S(`74MPQMTHZT_f!50P|^OlVI|A@pTDwI$*DSu44F3*QfQ*KQ86Ur?qpP}55@?R-; zqx?6@{gm7j!rw`Zqe3a=1(g3mc`fBnapTre=6_|>bu?0^0{BPf&PSFc40!D8S`6;) zq~~iRI8gi&gy@@Pwh|gpC{{uXEj;!O5;j(*+P6rbR+M7bRB0rWWKwi0C5&{3mU70cGaiMMU^svQII%8u=E`hB%L5j>z) zHk7w@a1w6mSmmKk9mcCXmB*p@wenCW7`(D$>)?R=T6w5b7x5||rK>y+%deG(=h-3P zl^t6L2j`Yf;RRGyhnkhe1of$GXN(i|YlWjugBk{v9uC*96^=SC@S!#IaL|5Dhll4k zAl^+qrHjLLOGhNN7x!TI~O@=&L-pAOFA zua$@A>uU77;Z?bm$GQBq@=&J#c__*_4J4EY@Lsx_2T_fkqfo4jg%Wz%c6C@;$ABPSH>!}+w2L8 zZz9TmQxlL79_z0V&w~#VKbsVB+%1g2$Eue63p+&y`LZsWe}ek! z$QRzI`A*E(?xY!AbSJeZoXylvWuH?Oq4F2`h)~1B!vt-u?1k7%-rZRn3gs0XrlHV3 zH8B*ja_`uD9bKTjD9!(syjZGv&cFiacwTGxrBBt})~)r$Z%k0!Une-D)dz zB0nlcD@y8bB44H^0Jx57qXD;@{I}H4v?rW*6@e|p5aa|G zMMG1_$C6i@4CR)CR~cstT|?QtfL!Y5CTKg6T3tLx{fYpkkJjMyAdXuJnu|;~0&sRk zoo0e!HDSTs&kQb;A3xrr)$i6?t|j)ms&8kqpmxSR$$QARQQE3E3}-|!OWMvdBg72y ziRA4J)UW5L3}VTvt(S6}$%m4+mx^8FE8=xcL}+zuslXTKp`wHl?DP2HDV;$sdE3xY z8Y(1jUs(zHbiWJu-r}*dOV>4uQd{mKd3U-~kA`fP$X;_YnSp&}zaqi)))pUl)%NO# z>}ol*o#I31)?$Tv`mcEV#W&7ILfnW5)!Vb#_AIEl+2X@QDfc0^xilKG-=wqo3`@T; zp8M;nw)uO(U+)4Q^U_f094=lck zaR06gltbR0*Sz>b#xh{<6YQzH>>JJ7ZT~3@UGEBhurg>a$^vy87qXYyb}D|=cI^Gk z73zERD>{8ew3R*HZp4mC?Gdy2?vBmhL>@;EmZr_e$u>TtS@Q%dIzkk4Kc#aMVyqSI zO+&P5@sicLN$pu@+|O*vm<{T}a=FwGU90u&A@l@zRF~}N zGa7b#o=WabTB%fnI7wb?*2H2q&X4-iE;G7tyN-U5$y&;trqQfhM=aI>0z;%qH*E!@ z<19Wxc(}xo7K5y0-cg9QYUB}}n?!>smrg!^r{;g*6)vQ?Y?`CGxYOdBi@4^xUF?c~ z$hNaj+p#wx+cl2?&kR%#QSK!s$W%K~xExw~%{H`K^W1%jGq!$#=G##JTk>TuXnr^^ z{3r0&dam4W8X?{)aB94Jrs=}Ft(@^q0mhlN>iO|4$O}KdGx;*V?L zivE7Jc6E-9(~W8GGpvZyVf3%0A$Kn?VVH>jV7fP7G9;cJ7 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 delta 144367 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 cast(u32) heap_state.next_alloc; \ No newline at end of file diff --git a/core/container/array.onyx b/core/container/array.onyx index 16eb82ed..88e5180d 100644 --- a/core/container/array.onyx +++ b/core/container/array.onyx @@ -389,15 +389,19 @@ first :: #match { } count_where :: #match { - (arr: ^[..] $T, predicate: (T) -> bool) -> u32 { + (arr: ^[..] $T, predicate: $Pred) -> u32 { + return count_where((#type [] T).{ arr.data, arr.count }, predicate); + }, + + (arr: [] $T, predicate: (T) -> bool) -> u32 { count: u32 = 0; - for ^it: *arr do if predicate(*it) do count += 1; + for ^it: arr do if predicate(*it) do count += 1; return count; }, - (arr: ^[..] $T, predicate: (^T) -> bool) -> u32 { + (arr: [] $T, predicate: (^T) -> bool) -> u32 { count: u32 = 0; - for ^it: *arr do if predicate(it) do count += 1; + for ^it: arr do if predicate(it) do count += 1; return count; }, } diff --git a/core/container/iter.onyx b/core/container/iter.onyx index 8f4c8e69..97217cb2 100644 --- a/core/container/iter.onyx +++ b/core/container/iter.onyx @@ -67,6 +67,12 @@ map :: (it: Iterator($T), transform: (T) -> $R) -> Iterator(R) { }; } +take_one :: (it: Iterator($T)) -> (T, bool) { + ret, cont := it.next(it.data); + if !cont do it.close(it.data); + return ret, cont; +} + take :: (it: Iterator($T), count: u32) -> Iterator(T) { TakeIterator :: struct (T: type_expr) { iterator: Iterator(T); diff --git a/core/io/reader.onyx b/core/io/reader.onyx index bfacd02f..bbb13f43 100644 --- a/core/io/reader.onyx +++ b/core/io/reader.onyx @@ -22,6 +22,10 @@ reader_from_string :: (s: str) -> (Reader, ^StringStream) { return Reader.{ stream_ptr }, stream_ptr; } +reader_empty :: (use reader: ^Reader) -> bool { + return stream_end_of_file(stream); +} + read_byte :: (use reader: ^Reader) -> u8 { err, byte := stream_read_byte(stream); return byte; @@ -40,6 +44,60 @@ read_bytes :: #match { } } +read_i32 :: (use reader: ^Reader) -> i32 { + n: i32 = 0; + + skip_whitespace(reader); + + is_negative := false; + err, curr := stream_peek_byte(stream); + if curr == #char "-" { + is_negative = true; + err, curr = stream_read_byte(stream); + err, curr = stream_peek_byte(stream); + } + + while curr >= #char "0" && curr <= #char "9" { + err, curr = stream_read_byte(stream); + + n *= 10; + n += cast(u32) (curr - #char "0"); + + err, curr = stream_peek_byte(stream); + if err == Error.EOF do break; + } + + if is_negative do n = -n; + return n; +} + +read_i64 :: (use reader: ^Reader) -> i64 { + n: i64 = 0; + + skip_whitespace(reader); + + is_negative := false; + err, curr := stream_peek_byte(stream); + if curr == #char "-" { + is_negative = true; + err, curr = stream_read_byte(stream); + err, curr = stream_peek_byte(stream); + } + + while curr >= #char "0" && curr <= #char "9" { + err, curr = stream_read_byte(stream); + + n *= 10; + n += cast(u64) (curr - #char "0"); + + err, curr = stream_peek_byte(stream); + if err == Error.EOF do break; + } + + if is_negative do n = -n; + return n; +} + read_u32 :: (use reader: ^Reader) -> u32 { n: u32 = 0; diff --git a/core/math.onyx b/core/math.onyx index 2886c730..5396f70d 100644 --- a/core/math.onyx +++ b/core/math.onyx @@ -197,6 +197,22 @@ pow :: #match { } } +power_mod :: (base: u32, exp: u32, mod: u32) -> u32 { + t: u64 = 1; + e: u64 = ~~exp; + b: u64 = ~~base; + m: u64 = ~~mod; + + while e > 0 { + if e % 2 != 0 do t = (t * b) % m; + + b = (b * b) % m; + e /= 2; + } + + return ~~(t % m); +} + ln :: (a: f32) -> f32 { // FIX: This is probably not the most numerically stable solution. if a < 1 { diff --git a/core/string.onyx b/core/string.onyx index 4cafb683..b5d011bc 100644 --- a/core/string.onyx +++ b/core/string.onyx @@ -169,6 +169,11 @@ ends_with :: (s: str, suffix: str) -> bool { return true; } +strip_whitespace :: #match { + (s: ^str) { strip_leading_whitespace(s); strip_trailing_whitespace(s); }, + (s: str) { strip_leading_whitespace(s); strip_trailing_whitespace(s); }, +} + strip_leading_whitespace :: #match { (s: ^str) { while true do switch s.data[0] { diff --git a/core/string/reader.onyx b/core/string/reader.onyx index 0cea068a..503c9d60 100644 --- a/core/string/reader.onyx +++ b/core/string/reader.onyx @@ -71,6 +71,8 @@ read_byte :: (use reader: ^String_Reader) -> u8 { return data[0]; } +peek_byte :: (use reader: ^String_Reader) -> u8 do return data[0]; + read_bytes :: (use reader: ^String_Reader, byte_count := 1) -> str { bc := byte_count; if count < bc do bc = count; @@ -131,13 +133,14 @@ read_until :: (use reader: ^String_Reader, skip: u32, uptos: ..u8) -> str { } // Reads a continuous string of alphabetic chars along with underscores '_' -read_word :: (use reader: ^String_Reader) -> str { +read_word :: (use reader: ^String_Reader, numeric_allowed := false) -> str { if count == 0 do return str.{ null, 0 }; out := str.{ data, 0 }; for ch: *(cast(^str) reader) { if (ch >= #char "a" && ch <= #char "z") || (ch >= #char "A" && ch <= #char "Z") + || (numeric_allowed && (ch >= #char "0" && ch <= #char "9")) || ch == #char "_" { out.count += 1; } diff --git a/docs/bugs b/docs/bugs index d3d19cde..d78b9824 100644 --- a/docs/bugs +++ b/docs/bugs @@ -1,5 +1,13 @@ List of known bugs: +[ ] macros are not allowed at the expression level. This is not necessarily a bug, but does + bring many complications to the table about how resolve this. + +[ ] recursive quick-procedures / procedures that use #auto have trouble if the first lexical + return statement is a recursive call. + +[X] There is not proper cycle detection in the compiler. Infinite should not be possible. + [ ] Compound assignment operators such as += evaluate the location of their left-value twice. Not only is this bad for efficiency, if the value requires calling a function, that function will be called twice instead of once. This is a simple code generation fix, diff --git a/src/onyx.c b/src/onyx.c index ec2d87fa..75d7797b 100644 --- a/src/onyx.c +++ b/src/onyx.c @@ -403,6 +403,23 @@ static void output_dummy_progress_bar() { } #endif +static void dump_cycles() { + context.cycle_detected = 1; + Entity* ent; + + onyx_report_error((OnyxFilePos) { 0 }, "Cycle detected. Dumping all stuck processing units."); + + while (1) { + ent = entity_heap_top(&context.entities); + entity_heap_remove_top(&context.entities); + if (ent->state < Entity_State_Code_Gen) process_entity(ent); + + if (bh_arr_length(context.entities.entities) == 0) { + break; + } + } +} + static i32 onyx_compile() { u64 start_time = bh_time_curr(); @@ -440,12 +457,20 @@ static i32 onyx_compile() { // before the "key" node that will unblock the progress. This means a more sophisticated // cycle detection algorithm must be used. // - static Entity* first_no_change = NULL; + static Entity* watermarked_node = NULL; if (!changed) { - if (!first_no_change) first_no_change = ent; - else if (first_no_change == ent) context.cycle_detected = 1; + if (!watermarked_node) { + watermarked_node = ent; + } + else if (watermarked_node == ent) { + entity_heap_insert_existing(&context.entities, ent); + dump_cycles(); + } + else if (watermarked_node->macro_attempts < ent->macro_attempts) { + watermarked_node = ent; + } } else { - first_no_change = NULL; + watermarked_node = NULL; } if (onyx_has_errors()) return ONYX_COMPILER_PROGRESS_ERROR; diff --git a/src/onyxchecker.c b/src/onyxchecker.c index 945d25b9..e4c99dd3 100644 --- a/src/onyxchecker.c +++ b/src/onyxchecker.c @@ -11,6 +11,24 @@ if (cs > Check_Errors_Start) return cs; \ } while (0) +#define YIELD(loc, msg) do { \ + if (context.cycle_detected) { \ + onyx_report_error(loc, msg); \ + return Check_Error; \ + } else { \ + return Check_Yield_Macro; \ + } \ + } while (0) + +#define YIELD_(loc, msg, ...) do { \ + if (context.cycle_detected) { \ + onyx_report_error(loc, msg, __VA_ARGS__); \ + return Check_Error; \ + } else { \ + return Check_Yield_Macro; \ + } \ + } while (0) + typedef enum CheckStatus { Check_Success, // The node was successfully checked with out errors Check_Complete, // The node is done processing @@ -116,7 +134,8 @@ CheckStatus check_return(AstReturn* retnode) { if (*expected_return_type == &type_auto_return) { resolve_expression_type(retnode->expr); - if (retnode->expr->type == NULL) return Check_Yield_Macro; + if (retnode->expr->type == NULL) + YIELD(retnode->token->pos, "Trying to determine automatic return type."); *expected_return_type = retnode->expr->type; return Check_Success; @@ -152,7 +171,7 @@ CheckStatus check_if(AstIfWhile* ifnode) { if (ifnode->kind == Ast_Kind_Static_If) { if ((ifnode->flags & Ast_Flag_Static_If_Resolved) == 0) { - return Check_Yield_Macro; + YIELD(ifnode->token->pos, "Waiting for static if to be resolved."); } if (static_if_resolution(ifnode)) { @@ -442,7 +461,7 @@ static CheckStatus check_resolve_callee(AstCall* call, AstTyped** effective_call return Check_Error; } else { - return Check_Yield_Macro; + YIELD(call->token->pos, "Waiting for overloaded function option to pass type-checking."); } } @@ -459,16 +478,20 @@ static CheckStatus check_resolve_callee(AstCall* call, AstTyped** effective_call call->callee = callee; AstTyped* new_callee = (AstTyped *) macro_resolve_header((AstMacro *) callee, &call->args, call->token); - if (new_callee == (AstTyped *) &node_that_signals_a_yield) return Check_Yield_Macro; if (new_callee == NULL) return Check_Error; + if (new_callee == (AstTyped *) &node_that_signals_a_yield) { + YIELD(call->token->pos, "Waiting for macro header to pass type-checking."); + } arguments_remove_baked(&call->args); callee = new_callee; } else if (callee->kind == Ast_Kind_Polymorphic_Proc) { AstTyped* new_callee = (AstTyped *) polymorphic_proc_lookup((AstPolyProc *) callee, PPLM_By_Arguments, &call->args, call->token); - if (new_callee == (AstTyped *) &node_that_signals_a_yield) return Check_Yield_Macro; if (new_callee == NULL) return Check_Error; + if (new_callee == (AstTyped *) &node_that_signals_a_yield) { + YIELD(call->token->pos, "Waiting for polymorphic procedure header to pass type-checking."); + } arguments_remove_baked(&call->args); callee = new_callee; @@ -478,7 +501,9 @@ static CheckStatus check_resolve_callee(AstCall* call, AstTyped** effective_call // NOTE: Build callee's type fill_in_type((AstTyped *) callee); - if (callee->type == NULL) return Check_Yield_Macro; + if (callee->type == NULL) { + YIELD(call->token->pos, "Trying to resolve function type for callee."); + } if (callee->type->kind != Type_Kind_Function) { onyx_report_error(call->token->pos, @@ -608,7 +633,9 @@ CheckStatus check_call(AstCall** pcall) { call->va_kind = VA_Kind_Not_VA; call->type = callee->type->Function.return_type; - if (call->type == &type_auto_return) return Check_Yield_Macro; + if (call->type == &type_auto_return) { + YIELD(call->token->pos, "Waiting for auto-return type to be solved."); + } Type **formal_params = callee->type->Function.params; @@ -766,7 +793,7 @@ CheckStatus check_binaryop_assignment(AstBinaryOp* binop) { return Check_Error; } else { - return Check_Yield_Macro; + YIELD(binop->token->pos, "Trying to resolve try of right hand side."); } } @@ -824,7 +851,7 @@ CheckStatus check_binaryop_assignment(AstBinaryOp* binop) { if (binop->right->type == NULL) { if (binop->right->entity != NULL && binop->right->entity->state <= Entity_State_Check_Types) { - return Check_Yield_Macro; + YIELD(binop->token->pos, "Trying to resolve type of right hand side."); } } @@ -1026,7 +1053,7 @@ CheckStatus check_binaryop(AstBinaryOp** pbinop) { AstCall *implicit_call = binaryop_try_operator_overload(binop); if (implicit_call == (AstCall *) &node_that_signals_a_yield) - return Check_Yield_Macro; + YIELD(binop->token->pos, "Trying to resolve operator overload."); if (implicit_call != NULL) { // NOTE: Not a binary op @@ -1125,7 +1152,8 @@ CheckStatus check_unaryop(AstUnaryOp** punop) { if (unaryop->operation == Unary_Op_Cast) { char* err; - if (unaryop->type == NULL) return Check_Yield_Macro; + if (unaryop->type == NULL) + YIELD(unaryop->token->pos, "Trying to resolve destination type for cast."); if (!cast_is_legal(unaryop->expr->type, unaryop->type, &err)) { onyx_report_error(unaryop->token->pos, "Cast Error: %s", err); @@ -1176,7 +1204,8 @@ CheckStatus check_struct_literal(AstStructLiteral* sl) { } fill_in_type((AstTyped *) sl); - if (sl->type == NULL) return Check_Yield_Macro; + if (sl->type == NULL) + YIELD(sl->token->pos, "Trying to resolve type of struct literal."); } if (!type_is_structlike_strict(sl->type)) { @@ -1222,21 +1251,21 @@ CheckStatus check_struct_literal(AstStructLiteral* sl) { sl->flags |= Ast_Flag_Comptime; fori (i, 0, mem_count) { + // NOTE: Not checking the return on this function because + // this for loop is bounded by the number of members in the + // type. + type_lookup_member_by_idx(sl->type, i, &smem); + Type* formal = smem.type; + CHECK(expression, actual); // HACK HACK HACK if ((*actual)->type == NULL && (*actual)->entity != NULL && (*actual)->entity->state <= Entity_State_Check_Types) { - return Check_Yield_Macro; + YIELD_((*actual)->token->pos, "Trying to resolve type of expression for member '%s'.", smem.name); } - // NOTE: Not checking the return on this function because - // this for loop is bounded by the number of members in the - // type. - type_lookup_member_by_idx(sl->type, i, &smem); - Type* formal = smem.type; - if (!type_check_or_auto_cast(actual, formal)) { onyx_report_error(sl->token->pos, "Mismatched types for %d%s member named '%s', expected '%s', got '%s'.", @@ -1265,7 +1294,8 @@ CheckStatus check_array_literal(AstArrayLiteral* al) { } fill_in_type((AstTyped *) al); - if (al->type == NULL) return Check_Yield_Macro; + if (al->type == NULL) + YIELD(al->token->pos, "Trying to resolve type of array literal."); al->type = type_make_array(context.ast_alloc, al->type, bh_arr_length(al->values)); if (al->type == NULL || al->type->kind != Type_Kind_Array) { @@ -1292,7 +1322,7 @@ CheckStatus check_array_literal(AstArrayLiteral* al) { if ((*expr)->type == NULL && (*expr)->entity != NULL && (*expr)->entity->state <= Entity_State_Check_Types) { - return Check_Yield_Macro; + YIELD_(al->token->pos, "Trying to resolve type of %d%s element of array literal.", expr - al->values, bh_num_suffix(expr - al->values)); } al->flags &= ((*expr)->flags & Ast_Flag_Comptime) | (al->flags &~ Ast_Flag_Comptime); @@ -1377,7 +1407,7 @@ CheckStatus check_if_expression(AstIfExpression* if_expr) { CheckStatus check_address_of(AstAddressOf* aof) { CHECK(expression, &aof->expr); if (aof->expr->type == NULL) { - return Check_Yield_Macro; + YIELD(aof->token->pos, "Trying to resolve type of expression to take a reference."); } if ((aof->expr->kind != Ast_Kind_Subscript @@ -1428,7 +1458,7 @@ CheckStatus check_subscript(AstSubscript** psub) { AstCall *implicit_call = binaryop_try_operator_overload(binop); if (implicit_call == (AstCall *) &node_that_signals_a_yield) - return Check_Yield_Macro; + YIELD(sub->token->pos, "Trying to resolve operator overload."); if (implicit_call != NULL) { // NOTE: Not an array access @@ -1510,7 +1540,7 @@ CheckStatus check_field_access(AstFieldAccess** pfield) { CHECK(expression, &field->expr); if (field->expr->type == NULL) { // onyx_report_error(field->token->pos, "Unable to deduce type of expression for accessing field."); - return Check_Yield_Macro; + YIELD(field->token->pos, "Trying to resolve type of source expression."); } if (!type_is_structlike(field->expr->type)) { @@ -1562,7 +1592,7 @@ CheckStatus check_field_access(AstFieldAccess** pfield) { CheckStatus check_method_call(AstBinaryOp** mcall) { CHECK(expression, &(*mcall)->left); if ((*mcall)->left->type == NULL) { - return Check_Yield_Macro; + YIELD((*mcall)->token->pos, "Trying to resolve type of left hand side."); } AstTyped* implicit_argument = (*mcall)->left; @@ -1598,7 +1628,8 @@ CheckStatus check_size_of(AstSizeOf* so) { CHECK(type, so->so_ast_type); so->so_type = type_build_from_ast(context.ast_alloc, so->so_ast_type); - if (so->so_type == NULL) return Check_Yield_Macro; + if (so->so_type == NULL) + YIELD(so->token->pos, "Trying to resolve type to take the size of."); so->size = type_size_of(so->so_type); @@ -1610,7 +1641,8 @@ CheckStatus check_align_of(AstAlignOf* ao) { CHECK(type, ao->ao_ast_type); ao->ao_type = type_build_from_ast(context.ast_alloc, ao->ao_ast_type); - if (ao->ao_type == NULL) return Check_Yield_Macro; + if (ao->ao_type == NULL) + YIELD(ao->token->pos, "Trying to resolve type to take the alignment of."); ao->alignment = type_alignment_of(ao->ao_type); @@ -1628,7 +1660,7 @@ CheckStatus check_expression(AstTyped** pexpr) { } if (type_build_from_ast(context.ast_alloc, (AstType*) expr) == NULL) { - return Check_Yield_Macro; + YIELD(expr->token->pos, "Trying to construct type."); } expr->type = &basic_types[Basic_Kind_Type_Index]; @@ -1714,7 +1746,8 @@ CheckStatus check_expression(AstTyped** pexpr) { // break; // } // } - if (expr->type == NULL) return Check_Yield_Macro; + if (expr->type == NULL) + YIELD(expr->token->pos, "Waiting for function type to be resolved."); expr->flags |= Ast_Flag_Function_Used; break; @@ -1804,7 +1837,8 @@ CheckStatus check_insert_directive(AstDirectiveInsert** pinsert) { return Check_Error; } - return Check_Yield_Macro; + // Bad wording for the message. + YIELD(insert->token->pos, "Waiting for resolution to code expression type."); } Type* code_type = type_build_from_ast(context.ast_alloc, builtin_code_type); @@ -1874,8 +1908,8 @@ CheckStatus check_statement(AstNode** pstmt) { onyx_report_error(stmt->token->pos, "Local's type is not a type."); return Check_Error; } - - return Check_Yield_Macro; + + YIELD(typed_stmt->token->pos, "Waiting for local variable's type."); } return Check_Success; } @@ -1926,7 +1960,8 @@ CheckStatus check_block(AstBlock* block) { CheckStatus check_function(AstFunction* func) { if (func->flags & Ast_Flag_Already_Checked) return Check_Success; - if (func->entity_header && func->entity_header->state < Entity_State_Code_Gen) return Check_Yield_Macro; + if (func->entity_header && func->entity_header->state < Entity_State_Code_Gen) + YIELD(func->token->pos, "Waiting for procedure header to pass type-checking"); expected_return_type = &func->type->Function.return_type; if (func->body) { @@ -1978,11 +2013,12 @@ CheckStatus check_overloaded_function(AstOverloadedFunction* func) { bh_imap_free(&all_overloads); if (done) return Check_Success; - else return Check_Yield_Macro; + else YIELD(func->token->pos, "Waiting for all options to pass type-checking."); } CheckStatus check_struct(AstStructType* s_node) { - if (s_node->entity_defaults && s_node->entity_defaults->state < Entity_State_Check_Types) return Check_Yield_Macro; + if (s_node->entity_defaults && s_node->entity_defaults->state < Entity_State_Check_Types) + YIELD(s_node->token->pos, "Waiting for struct member definitions to pass symbol resolution."); bh_arr_each(AstStructMember *, smem, s_node->members) { if ((*smem)->type_node != NULL) { @@ -1993,7 +2029,8 @@ CheckStatus check_struct(AstStructType* s_node) { CHECK(expression, &(*smem)->initial_value); fill_in_type((*smem)->initial_value); - if ((*smem)->initial_value->type == NULL) return Check_Yield_Macro; + if ((*smem)->initial_value->type == NULL) + YIELD((*smem)->initial_value->token->pos, "Trying to resolve type for initial value for member."); resolve_expression_type((*smem)->initial_value); if ((*smem)->type == NULL) (*smem)->type = (*smem)->initial_value->type; @@ -2007,7 +2044,8 @@ CheckStatus check_struct(AstStructType* s_node) { // NOTE: fills in the stcache type_build_from_ast(context.ast_alloc, (AstType *) s_node); - if (s_node->stcache == NULL || !s_node->stcache_is_valid) return Check_Yield_Macro; + if (s_node->stcache == NULL || !s_node->stcache_is_valid) + YIELD(s_node->token->pos, "Waiting for type to be constructed."); bh_arr_each(StructMember *, smem, s_node->stcache->Struct.memarr) { if ((*smem)->type->kind == Type_Kind_Compound) { @@ -2020,7 +2058,8 @@ CheckStatus check_struct(AstStructType* s_node) { } CheckStatus check_struct_defaults(AstStructType* s_node) { - if (s_node->entity_type && s_node->entity_type->state < Entity_State_Code_Gen) return Check_Yield_Macro; + if (s_node->entity_type && s_node->entity_type->state < Entity_State_Code_Gen) + YIELD(s_node->token->pos, "Waiting for struct type to be constructed before checking defaulted members."); bh_arr_each(StructMember *, smem, s_node->stcache->Struct.memarr) { if ((*smem)->initial_value && *(*smem)->initial_value) { @@ -2042,7 +2081,8 @@ CheckStatus check_struct_defaults(AstStructType* s_node) { } CheckStatus check_function_header(AstFunction* func) { - if (func->entity_body && func->entity_body->state < Entity_State_Check_Types) return Check_Yield_Macro; + if (func->entity_body && func->entity_body->state < Entity_State_Check_Types) + YIELD(func->token->pos, "Waiting for function header to complete symbol resolution"); b32 expect_default_param = 0; b32 has_had_varargs = 0; @@ -2105,7 +2145,7 @@ CheckStatus check_function_header(AstFunction* func) { // "Unable to resolve type for parameter, '%b'", // local->token->text, // local->token->length); - return Check_Yield_Macro; + YIELD(local->token->pos, "Waiting for parameter type to be known."); } if (local->type->kind == Type_Kind_Compound) { @@ -2139,7 +2179,7 @@ CheckStatus check_function_header(AstFunction* func) { if (func->return_type != NULL) CHECK(type, func->return_type); func->type = type_build_function_type(context.ast_alloc, func); - if (func->type == NULL) return Check_Yield_Macro; + if (func->type == NULL) YIELD(func->token->pos, "Waiting for function type to be constructed"); return Check_Success; } @@ -2147,7 +2187,7 @@ CheckStatus check_function_header(AstFunction* func) { CheckStatus check_memres_type(AstMemRes* memres) { CHECK(type, memres->type_node); fill_in_type((AstTyped *) memres); - if (memres->type_node && !memres->type) return Check_Yield_Macro; + if (memres->type_node && !memres->type) YIELD(memres->token->pos, "Waiting for global type to be constructed."); return Check_Success; } @@ -2173,7 +2213,7 @@ CheckStatus check_memres(AstMemRes* memres) { } else { if (memres->initial_value->type == NULL && memres->initial_value->entity != NULL && memres->initial_value->entity->state <= Entity_State_Check_Types) { - return Check_Yield_Macro; + YIELD(memres->token->pos, "Waiting for global type to be constructed."); } memres->type = memres->initial_value->type; } @@ -2208,7 +2248,7 @@ CheckStatus check_type(AstType* type) { resolve_expression_type(type_of->expr); if (type_of->expr->type == NULL) { - return Check_Yield_Macro; + YIELD(type_of->token->pos, "Trying to check type for type-of expression."); } type_of->resolved_type = type_of->expr->type; @@ -2288,7 +2328,8 @@ CheckStatus check_static_if(AstIf* static_if) { CheckStatus check_process_directive(AstNode* directive) { if (directive->kind == Ast_Kind_Directive_Export) { AstTyped* export = ((AstDirectiveExport *) directive)->export; - if (export->entity && export->entity->state <= Entity_State_Check_Types) return Check_Yield_Macro; + if (export->entity && export->entity->state <= Entity_State_Check_Types) + YIELD(directive->token->pos, "Waiting for export type to be known."); } return Check_Success; diff --git a/src/onyxclone.c b/src/onyxclone.c index dbc36773..425a2dca 100644 --- a/src/onyxclone.c +++ b/src/onyxclone.c @@ -122,6 +122,8 @@ AstNode* ast_clone_list(bh_allocator a, void* n) { return root; } +#define C(nt, mname) ((nt *) nn)->mname = (void *) ast_clone(a, ((nt *) node)->mname); + // NOTE: Using void* to avoid a lot of unnecessary casting AstNode* ast_clone(bh_allocator a, void* n) { AstNode* node = (AstNode *) n; @@ -142,18 +144,18 @@ AstNode* ast_clone(bh_allocator a, void* n) { case Ast_Kind_Binary_Op: case Ast_Kind_Pipe: case Ast_Kind_Method_Call: - ((AstBinaryOp *) nn)->left = (AstTyped *) ast_clone(a, ((AstBinaryOp *) node)->left); - ((AstBinaryOp *) nn)->right = (AstTyped *) ast_clone(a, ((AstBinaryOp *) node)->right); + C(AstBinaryOp, left); + C(AstBinaryOp, right); break; case Ast_Kind_Unary_Op: - ((AstUnaryOp *) nn)->expr = (AstTyped *) ast_clone(a, ((AstUnaryOp *) node)->expr); - ((AstUnaryOp *) nn)->type_node = (AstType *) ast_clone(a, ((AstUnaryOp *) node)->type_node); + C(AstUnaryOp, expr); + C(AstUnaryOp, type_node); break; case Ast_Kind_Param: case Ast_Kind_Local: - ((AstLocal *) nn)->type_node = (AstType *) ast_clone(a, ((AstLocal *) node)->type_node); + C(AstLocal, type_node); break; case Ast_Kind_Call: @@ -161,33 +163,33 @@ AstNode* ast_clone(bh_allocator a, void* n) { break; case Ast_Kind_Argument: - ((AstArgument *) nn)->value = (AstTyped *) ast_clone(a, ((AstArgument *) node)->value); + C(AstArgument, value); break; case Ast_Kind_Address_Of: - ((AstAddressOf *) nn)->expr = (AstTyped *) ast_clone(a, ((AstAddressOf *) node)->expr); + C(AstAddressOf, expr); break; case Ast_Kind_Dereference: - ((AstDereference *) nn)->expr = (AstTyped *) ast_clone(a, ((AstDereference *) node)->expr); + C(AstDereference, expr); break; case Ast_Kind_Slice: case Ast_Kind_Subscript: - ((AstSubscript *) nn)->addr = (AstTyped *) ast_clone(a, ((AstSubscript *) node)->addr); - ((AstSubscript *) nn)->expr = (AstTyped *) ast_clone(a, ((AstSubscript *) node)->expr); + C(AstSubscript, addr); + C(AstSubscript, expr); break; case Ast_Kind_Field_Access: - ((AstFieldAccess *) nn)->expr = (AstTyped *) ast_clone(a, ((AstFieldAccess *) node)->expr); + C(AstFieldAccess, expr); break; case Ast_Kind_Size_Of: - ((AstSizeOf *) nn)->so_ast_type = (AstType *) ast_clone(a, ((AstSizeOf *) node)->so_ast_type); + C(AstSizeOf, so_ast_type); break; case Ast_Kind_Align_Of: - ((AstAlignOf *) nn)->ao_ast_type = (AstType *) ast_clone(a, ((AstAlignOf *) node)->ao_ast_type); + C(AstAlignOf, ao_ast_type); break; case Ast_Kind_Struct_Literal: { @@ -215,13 +217,13 @@ AstNode* ast_clone(bh_allocator a, void* n) { } case Ast_Kind_Range_Literal: - ((AstRangeLiteral *) nn)->low = (AstTyped *) ast_clone(a, ((AstRangeLiteral *) node)->low); - ((AstRangeLiteral *) nn)->high = (AstTyped *) ast_clone(a, ((AstRangeLiteral *) node)->high); - ((AstRangeLiteral *) nn)->step = (AstTyped *) ast_clone(a, ((AstRangeLiteral *) node)->step); + C(AstRangeLiteral, low); + C(AstRangeLiteral, high); + C(AstRangeLiteral, step); break; case Ast_Kind_Return: - ((AstReturn *) nn)->expr = (AstTyped *) ast_clone(a, ((AstReturn *) node)->expr); + C(AstReturn, expr); break; case Ast_Kind_Block: @@ -229,29 +231,29 @@ AstNode* ast_clone(bh_allocator a, void* n) { break; case Ast_Kind_Defer: - ((AstDefer *) nn)->stmt = ast_clone(a, ((AstDefer *) node)->stmt); + C(AstDefer, stmt); break; case Ast_Kind_For: - ((AstFor *) nn)->var = (AstLocal *) ast_clone(a, ((AstFor *) node)->var); - ((AstFor *) nn)->iter = (AstTyped *) ast_clone(a, ((AstFor *) node)->iter); - ((AstFor *) nn)->stmt = (AstBlock *) ast_clone(a, ((AstFor *) node)->stmt); + C(AstFor, var); + C(AstFor, iter); + C(AstFor, stmt); break; case Ast_Kind_If: case Ast_Kind_While: - ((AstIfWhile *) nn)->local = (AstLocal *) ast_clone(a, ((AstIfWhile *) node)->local); - ((AstIfWhile *) nn)->assignment = (AstBinaryOp *) ast_clone(a, ((AstIfWhile *) node)->assignment); + C(AstIfWhile, local); + C(AstIfWhile, assignment); if (((AstIfWhile *) nn)->assignment) ((AstIfWhile *) nn)->assignment->left = (AstTyped *) ((AstIfWhile *) nn)->local; - ((AstIfWhile *) nn)->cond = (AstTyped *) ast_clone(a, ((AstIfWhile *) node)->cond); + C(AstIfWhile, cond); //fallthrough case Ast_Kind_Static_If: - ((AstIfWhile *) nn)->true_stmt = (AstBlock *) ast_clone(a, ((AstIfWhile *) node)->true_stmt); - ((AstIfWhile *) nn)->false_stmt = (AstBlock *) ast_clone(a, ((AstIfWhile *) node)->false_stmt); + C(AstIfWhile, true_stmt); + C(AstIfWhile, false_stmt); break; case Ast_Kind_Switch: { @@ -284,28 +286,28 @@ AstNode* ast_clone(bh_allocator a, void* n) { } case Ast_Kind_Pointer_Type: - ((AstPointerType *) nn)->elem = (AstType *) ast_clone(a, ((AstPointerType *) node)->elem); + C(AstPointerType, elem); break; case Ast_Kind_Array_Type: - ((AstArrayType *) nn)->count_expr = (AstTyped *) ast_clone(a, ((AstArrayType *) node)->count_expr); - ((AstArrayType *) nn)->elem = (AstType *) ast_clone(a, ((AstArrayType *) node)->elem); + C(AstArrayType, count_expr); + C(AstArrayType, elem); break; case Ast_Kind_Slice_Type: - ((AstSliceType *) nn)->elem = (AstType *) ast_clone(a, ((AstSliceType *) node)->elem); + C(AstSliceType, elem); break; case Ast_Kind_DynArr_Type: - ((AstDynArrType *) nn)->elem = (AstType *) ast_clone(a, ((AstDynArrType *) node)->elem); + C(AstDynArrType, elem); break; case Ast_Kind_VarArg_Type: - ((AstVarArgType *) nn)->elem = (AstType *) ast_clone(a, ((AstVarArgType *) node)->elem); + C(AstVarArgType, elem); break; case Ast_Kind_Type_Alias: - ((AstTypeAlias *) nn)->to = (AstType *) ast_clone(a, ((AstTypeAlias *) node)->to); + C(AstTypeAlias, to); break; case Ast_Kind_Struct_Type: { @@ -324,8 +326,8 @@ AstNode* ast_clone(bh_allocator a, void* n) { } case Ast_Kind_Struct_Member: - ((AstStructMember *) nn)->type_node = (AstType *) ast_clone(a, ((AstStructMember *) node)->type_node); - ((AstStructMember *) nn)->initial_value = (AstTyped *) ast_clone(a, ((AstStructMember *) node)->initial_value); + C(AstStructMember, type_node); + C(AstStructMember, initial_value); break; case Ast_Kind_Poly_Call_Type: { @@ -357,7 +359,7 @@ AstNode* ast_clone(bh_allocator a, void* n) { } case Ast_Kind_Function_Type: - ((AstFunctionType *) nn)->return_type = (AstType *) ast_clone(a, ((AstFunctionType *) node)->return_type); + C(AstFunctionType, return_type); ((AstFunctionType *) nn)->param_count = ((AstFunctionType *) node)->param_count; fori (i, 0, (i64) ((AstFunctionType *) nn)->param_count) { ((AstFunctionType *) nn)->params[i] = (AstType *) ast_clone(a, ((AstFunctionType *) node)->params[i]); @@ -366,8 +368,8 @@ AstNode* ast_clone(bh_allocator a, void* n) { case Ast_Kind_Binding: bh_printf("Cloning binding: %b\n", node->token->text, node->token->length); - ((AstTyped *) nn)->type_node = (AstType *) ast_clone(a, ((AstTyped *) node)->type_node); - ((AstBinding *) nn)->node = ast_clone(a, ((AstBinding *) node)->node); + C(AstTyped, type_node); + C(AstBinding, node); break; case Ast_Kind_Function: { @@ -398,10 +400,9 @@ AstNode* ast_clone(bh_allocator a, void* n) { break; } - case Ast_Kind_Use: { - ((AstUse *) nn)->expr = (AstTyped *) ast_clone(a, ((AstUse *) node)->expr); + case Ast_Kind_Use: + C(AstUse, expr); break; - } case Ast_Kind_Directive_Solidify: { AstDirectiveSolidify* dd = (AstDirectiveSolidify *) nn; @@ -437,34 +438,32 @@ AstNode* ast_clone(bh_allocator a, void* n) { break; } - case Ast_Kind_Named_Value: { - ((AstNamedValue *) nn)->value = (AstTyped *) ast_clone(a, ((AstNamedValue *) node)->value); + case Ast_Kind_Named_Value: + C(AstNamedValue, value); break; - } - case Ast_Kind_If_Expression: { - ((AstIfExpression *) nn)->cond = (AstTyped *) ast_clone(a, ((AstIfExpression *) node)->cond); - ((AstIfExpression *) nn)->true_expr = (AstTyped *) ast_clone(a, ((AstIfExpression *) node)->true_expr); - ((AstIfExpression *) nn)->false_expr = (AstTyped *) ast_clone(a, ((AstIfExpression *) node)->false_expr); + case Ast_Kind_If_Expression: + C(AstIfExpression, cond); + C(AstIfExpression, true_expr); + C(AstIfExpression, false_expr); break; - } - case Ast_Kind_Directive_Insert: { - ((AstDirectiveInsert *) nn)->code_expr = (AstTyped *) ast_clone(a, ((AstDirectiveInsert *) node)->code_expr); + case Ast_Kind_Directive_Insert: + C(AstDirectiveInsert, code_expr); break; - } - case Ast_Kind_Typeof: { - ((AstTypeOf *) nn)->expr = (AstTyped *) ast_clone(a, ((AstTypeOf *) node)->expr); + case Ast_Kind_Typeof: + C(AstTypeOf, expr); ((AstTypeOf *) nn)->resolved_type = NULL; break; - } } clone_depth--; return nn; } +#undef C + AstFunction* clone_function_header(bh_allocator a, AstFunction* func) { if (func->kind != Ast_Kind_Function) return NULL; diff --git a/src/onyxparser.c b/src/onyxparser.c index 0892a6cd..391ac9c8 100644 --- a/src/onyxparser.c +++ b/src/onyxparser.c @@ -2066,8 +2066,13 @@ static AstFunction* parse_function_definition(OnyxParser* parser, OnyxToken* tok parser->polymorph_context.poly_params = NULL; func_def->return_type = (AstType *) &basic_type_void; - if (consume_token_if_next(parser, Token_Type_Right_Arrow)) - func_def->return_type = parse_type(parser); + if (consume_token_if_next(parser, Token_Type_Right_Arrow)) { + if (parse_possible_directive(parser, "auto")) { + func_def->return_type = (AstType *) &basic_type_auto_return; + } else { + func_def->return_type = parse_type(parser); + } + } while (parser->curr->type == '#') { if (parse_possible_directive(parser, "intrinsic")) { diff --git a/src/onyxsymres.c b/src/onyxsymres.c index 27a28f71..d58cd4fc 100644 --- a/src/onyxsymres.c +++ b/src/onyxsymres.c @@ -1195,8 +1195,8 @@ void symres_entity(Entity* ent) { } report_unresolved_symbols = (context.entities.type_count[Entity_Type_Static_If] == 0 && - context.entities.type_count[Entity_Type_Use_Package] == 0); - // || context.cycle_detected; + context.entities.type_count[Entity_Type_Use_Package] == 0) + || context.cycle_detected; SymresStatus ss = Symres_Success; EntityState next_state = Entity_State_Check_Types; -- 2.25.1