From 3d2ba095187e24ffa75ede1bf96d32e7b6702212 Mon Sep 17 00:00:00 2001 From: William Bell <62452284+Ugric@users.noreply.github.com> Date: Thu, 20 Nov 2025 23:54:35 +0000 Subject: [PATCH 1/6] change back to stack level registers on call --- src/runtime/call/call.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/runtime/call/call.c b/src/runtime/call/call.c index 4b3a095..6efcff1 100644 --- a/src/runtime/call/call.c +++ b/src/runtime/call/call.c @@ -134,8 +134,7 @@ void run_call(ArgonObject *original_object, size_t argc, ArgonObject **argv, 0); } if (CStackFrame) { - ArgonObject ** registers = ar_alloc(object->value.argon_fn->translated.registerCount * - sizeof(ArgonObject *)); // fixed on the stack for speed purposes + ArgonObject * registers[MAX_REGISTERS]; // fixed on the stack for speed purposes StackFrame new_stackFrame = { {object->value.argon_fn->translated.registerCount, object->value.argon_fn->translated.registerAssignment, From 646938ea79180c9cecf4f602617df8072c983617 Mon Sep 17 00:00:00 2001 From: William Bell <62452284+Ugric@users.noreply.github.com> Date: Fri, 21 Nov 2025 00:21:36 +0000 Subject: [PATCH 2/6] Update README.md --- README.md | 41 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index eedd752..6bf5b0b 100644 --- a/README.md +++ b/README.md @@ -6,4 +6,43 @@ SPDX-License-Identifier: GPL-3.0-or-later # Chloride -An Argon interpreter written in C +Chloride is the new C-based interpreter for the Argon programming language. +It is designed as a drop-in replacement for the older Go implementation (argon-v3), while introducing a more efficient runtime and a cleaner, more consistent object model. + +## Overview + +Chloride aims to remain as interchangeable with argon-v3 as possible. +Most existing Argon code should run with minimal or no changes, and backwards compatibility is an ongoing priority. +Where behaviour differs, the goal is for those differences to be predictable and well-defined rather than accidental quirks. + +This interpreter replaces argon-v3's AST-walking runtime with a proper bytecode compiler, caching system, and virtual machine. +The result is a more consistent execution model, lower memory usage, and improved overall performance, even though speed is not the sole focus of the project. + +## Key Improvements Over argon-v3 + +- **Bytecode + VM architecture** + Chloride compiles source code into bytecode and executes it through a dedicated virtual machine. + The previous interpreter evaluated the AST directly at runtime, which limited performance and made optimisations difficult. + +- **Reduced memory usage and CPU overhead** + Chloride is written in C with an emphasis on minimal allocations, predictable lifetimes, and efficient object handling. + +- **Unified object model** + In contrast to argon-v3, where some values (such as numbers) were not objects, Chloride treats every value as a first-class object. + This simplifies the runtime and ensures a more consistent behaviour across all types. + +- **Proper class and inheritance system** + Classes in Chloride are real objects, supporting inheritance and introspection in a clean, well-defined manner. + The old interpreter treated classes as a special-case construct, which restricted the language's expressiveness. + +- **Backwards compatibility focus** + Chloride aims to match argon-v3’s behaviour closely enough that most existing Argon programs run unchanged. + Compatibility fixes and behavioural parity are treated as long-term goals. + +## Project Goals + +- Maintain high compatibility with argon-v3. +- Minimise memory usage and improve runtime efficiency. +- Provide a stable, maintainable interpreter core. +- Keep the implementation straightforward so that future language features can be built cleanly on top of it. +- Serve as the reference interpreter for Argon going forward. From df409dd3f6616fcdbee8ee7f4f7dcaabd47bb255 Mon Sep 17 00:00:00 2001 From: William Bell <62452284+Ugric@users.noreply.github.com> Date: Fri, 21 Nov 2025 00:30:57 +0000 Subject: [PATCH 3/6] Update README.md --- README.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/README.md b/README.md index 6bf5b0b..18ed776 100644 --- a/README.md +++ b/README.md @@ -46,3 +46,14 @@ The result is a more consistent execution model, lower memory usage, and improve - Provide a stable, maintainable interpreter core. - Keep the implementation straightforward so that future language features can be built cleanly on top of it. - Serve as the reference interpreter for Argon going forward. + + +## Project Status + +Chloride is still under active development. +The object model is largely complete, but several core language features are missing or experimental. Basic control flow constructs such as for loops are not implemented yet, partly because the older syntax was confusing and may be replaced with something clearer. While backwards compatibility is a goal, perfect compatibility is unlikely, especially where new syntax or improved semantics resolve long-standing issues in argon-v3. + +The interpreter currently contains known performance issues and occasional segmentation faults, and part of the development process is identifying and removing these. The intention is to stabilise the runtime, finalise the syntax, and avoid any further major redesigns. The hope is that Chloride becomes both the long-term Argon interpreter and the last large rewrite the language needs. + +# Licence +GNU General Public License v3.0 From 89abf4e036f5dd4f039c314d50a70b40b5363101 Mon Sep 17 00:00:00 2001 From: William Bell <62452284+Ugric@users.noreply.github.com> Date: Fri, 21 Nov 2025 01:04:51 +0000 Subject: [PATCH 4/6] Update README.md --- README.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 18ed776..72a24e7 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,12 @@ SPDX-FileCopyrightText: 2025 William Bell SPDX-License-Identifier: GPL-3.0-or-later --> -# Chloride +
+
+
w2dxU3Jq+ezvM~(0L&q-_WLE)# z>Hu6^%f=sTIZ8h<2gmv&PdN?1o-#x&nV$2iQ4iST0EU9yYMV)nBf9}*AHGEW@ASr6 z%Zs$~#M5y2vzzQRI=9ki?F}Vgn+x!p?Sq~5xJnElHj{QL;Ho%=h#wZ84}ilrqJ5T4 z(@{DCIKnSpX;yj9(r^x@06;N)#vJVhB7I&eDy_`JJ_|&fsf$e&W@cuDqiiF>jC7HDrifnP; EmDJQ6T!YIf zjt22{Du8%EI}}* 7;WDI6v>T592)oXc}v5WaO)3pA$1{ zXp)G2w);zb+R4iDmd36qSgX52rm!Ul3OgzUSCY54x5W%#KZ`8`#IgDYr}@qEWhSmF z0B$}OUVNR9aOru=bSBIMw>u#`ZHNB`c1unVJ-{NMB^_h%yoEn4*I@b}&cSp6ZERd} z$06U1?R*fn`TbU1=R16)VAs*o=5$MDrtBm4PYoNXVh-OPfT&1{_}~`Q!yz|Fs-uF4 zyP+9=N3z}Pg >HM-36zr4@cBu?n$ohHl_cQsb(S&&N;3s^)aP zii;i-P7iz7No?p7w?v(ua03ww0;3S^pU6Et{(7d{coVtsSvx)Z?+$+Rn`gR1nj`zu zHU9wfFaEJ2GI)y|JBpw$b2|=jV{quCi-B~*4Gj&WfN^XjclTXJY`e;FHsw}T-Lf^W zG%_^YjcT9WC$16DbJIVfk8^Z!cCM3?>DTzy)kR*ooXJotXMkQHC3+$g$t3&-e}Nd7 z42Qm@Wdo~{*@jm!KFK7p@;W=s #7UR`VSbLt WMi(Oh0c4yC1j4@U9!_xFo^C@x;N5j%dXqh2^r z*}-P$^A=~X4inKvt^fG( bh6 z;PUwf4Z!NIU!qKRH2tXz9r4x+qkT?-&nF;-SF4SST!d8{fp7}|MQENkuPGJHhQB9; z(j)eauWc7J2CZ1B$#$58%m$s1chn+q4gld{C*=C)=O>rr?#vZj+E1 _(4e`D?P;PFnJbSx8XLHEs@8>&BQ{S+I1czMp`0w(4^!$BJ z6#rZNtfu24MZ1?aE!nfki(FqM9!}KxWJq`1U;}Z9Haw1XfCcwS6ZHkSnIyMyap==U zo2Vs0{Nv~)>d~jb6kgy^T8`Y?H6KSP$Gp qTHzoB*pk7W;C%+1qQGntP@{$lR3Y*U9)biNU!xgDVd%(Vjdcx1F%~_2h|C^Q#4z zbj(20`}d2IkQ7VILkopWj~XyCme4Q04)S|L-q#s4iox22{&$63NfN6*V5*&+x&-}e z(drC9?bGV!&ARCaAiS8C?q(9~dd$$w4H{j2MQgB4zfN+;vTScq_{ukT{Lu|~*|_SD zC}u*e=;gJQ4mH|eS0-PR;NWKSB*7xJ&@x0y7-tam1-2M2yyDm4G_tTbNyO)MwQ?1& zxQnM>A#7Q(i5(KsL+TD?0&kKZXbp{5d2AmBb{P)c^_jFRtp~Ad 80S^CDWe> zXpvYB2X$AiC9Kj&6GGXTS-ES7eIfyMmCOqtzhkhjpTWKeF;jDjfX30g@VLV&xAD$p zB@{>`T!@}D%R+LsBxM{{QXJgogfn9kv+uYK$!W*GKRt@ V$nlfus6iq6G=U8 zETZ?mz9b|`TI8K%f>2#nc6N6DN}V!9GPC7Zu~H|yvb ;3g@N<8Z)3MpX^q zyU9g1rG>|7vuK)KidPzIFiZV>SBKB90zXRr*|Hu-KOF@16fB!VMgT-;nS`xAO?sta zCpR|6$HtKCSRsTX(HmG+uhST>r=^sIxp|kjs{V6QCE3v`d2>`Swaq>9$vQn0r{Rzy zfcxmqj{6{ZfI&ie-gJ7Zev0%FQIZ^pR8RV;YYD*JNXK}W;N&7f<_ELE;e% ?0`{esb2%amC z9+K4x?@$$lVtDxZ7lfg2`h%9b=%&&B{_SAkO3|qPnT>Y `=HfMBDmV;H*lq_H1*c|DYom;@P zWny?Jr>gGomVd>(1c_b-U=3tG=?TE~j?5UNRh36S`qT}3l4NPAsHo^bwjgkCCM)gm zN^44Z{hGt$cshX&?q#{(Gu4`jtGk2Vm};FAWQ5%AmAxTuHc(z`FNJuyo`o^{yh5uK&qW6D;h^FmHsw;8+Jn196&Iys?&p4>L^}t z4pLYTzItKAw?M>0wX0n5i8oE46Xmich(qEI`kc1ex!tQ#6woTa>@i{lc4fSZ%SpBe zi+f-A^YW!ja`s4)GDzC2a0yD6xYS(2#>)Ep5&Oal0mbQuO5Mf@_9IB{X_-C7o4tA! zp=e%ebNf4nh6pe$exbP4J3EI0&tNB4nW@ht*l83mPBl)qgg41OTL0yz#zq<5@(TU8 z9`W!pjfbfwDuF^4K*wpGa<8og*~nFPn#=;cM{;+Z4cCi~9bk0Jb?foD8cD^9zavqo zZ{NPD0!xlW&8eg38NqgVBDPxqTXimx{*1;B)_cGI-QB|{N;b6EcRF}+Cq=9e fG=MR8HS~o_8-l*e&&O-r6Ls z1#ZMQUi{ BRJ{Y OPNR`1c&LOvANu!IIY_mUGK|ogp}F~Sz-Ahl;oi*O*4YE5L2W!9?3@vFF|UFS zp8G^@0Jb=10%4l_b2Wwwm#cyCBh-mc+1oFGT>`VodPbNHV_Z{e_ifaiS1@2Se_<$) zAV}vJ+!L5$gzB{%uOPO|O$2@OmZ&lJ1R>;Gf=9y#w}6=-V(WXsOhjb@kA!@}+{Sex zJ8}W4!uXbgTR zL?rzgt|O =OsqQV$*-d z@N>@w)~kX*RJk?LOt}&^PHwsT4sX2gP9ESf$XjQ(DA6A-#XUqRkZ-63+- z81}=DN!7~tVJ{(YDU0wo$>}5jWOY2VfRcbaT+kwyNd~xUBf=~ a#-(Sw!{D5#${)4Ju>)krz`MBOtivsTL9-wz4 zR_cr+Izpj`uO{;GKLHEYz1jbQf)TnfC*3Utos3~<3 gAA; z@$cyDQWkj=X`_Af;ZEI^H{J){nUk@ QZGz`6FIWy1x1t7hOo<((iX4e%{7t2(|c8ieS|-NUm6bi z1egMt;s789OJ(yXZY?!5G?eM4NoiK6(q!frBJL++dkw)%%>o0a@mGYKpw|4qs<9aj zdV@JqF9P;dZTIh8!U(Hc1;e(f>QZC;^zk=oZmp`doHa<7h6uCnt+$;81(bU1Yp;$r za0EPZSJTj_SbBpR&C)|Pni&{)>xju-156cwaABCI4AvXwH|_ego+qw@Nh=&Ofp{(I zgsCo-_2xKw>@G{uH5}8RN`i@dXFn L{W1WhkZPNpX@_@G$t_D^}cQ_ATfG)0ZRvJ591NM2&Un|!A~}F z kw;zvS8!x7O)9M-&jsM)S= z4vv>Fj_brOtjg6Q{KtxM&Q|a3fwGR$$U^t9$&JvsKXU 95VOGNL9H)*g# z__~SmBC`F>xpV}ilIRdkB%+U2BVwlJ77B?dST+WBu%UT>Gj&zY;PCWp63~wxpEq~% zp02kt-*RRTi{^~|%+r=t8bJHXOH5mYpGjFYs`Vw@4#u8gSL!{^=z200 QDnHsMnNKKvv`M^O_D}gEn0aJrmV2_Ou3Wq-rGm#w-+Zu=vJ>S5JA4dA4y$| zh1!oKZ IaPG0_^QH_LD9dY3|3HG?KI zHYC@ozi =Y z*UvNEI~bu)Q|N2k>|;1!SJayO @9wz+>7IP0RPk1K9bUYHcd-@sDyh6 z`dg!lU={_%#lL}dt3t~3eOB&PQc>xPHrYXBN3@)u-=0eFBbcQzyoA$zP*MCPtg>)( zy`0alsgd!+2cf)KxSq47$fyhzcFyd@%}Wr1F)WHbGQO9ES=?5P=rhAcyxLON_Mu4N zcM@tYahP~<4JTnw%9o`|z1Hwi$(txt`)g}(&BcB0aT7Y3OqRO*cQLg5g||p!5mBg0 zT5YD*$rGqe`=h9Dc63mHZ+7vKmSBlLRXEM9H!-THyQP>VeMN{7VsUa&vyyWf5g0M( zZdttW%GT7VTud)TV7ZTK;d>2{V@Ak@pP$Ub9fmw?T2fx;*}?hH^B+y69osJF*?o*; zi=AasJa}lFGUE17oSPBqyevCJ6&S2|H39u4 >B`X63U3{DX koT z_b2-Kh3`s#*@Ul@dvdCg;QCwY?(lBcb%K&zJc^LheN*D5SSX^>6?MD%)S^x8Zv3zi zmw}^IMCa>)QqSKNCS|*Bye>S~5$ZVW!s!S(@Yz?dZUHuH#%1sBs2ep2vHE!dTMyp& z3`GlMB8jOoG9!I9hEiitsLVZETia>NJZ0c;o~kVj83k{dpP%`8^(f@!=q4_Y)^iot zEv<}{-sk%xe@x-)w$b~-5TTAhHw1ltO4`Q120qK;x3W+W_!D_*M&j+a#V^c^bY^!y z8Kb51cTr$$+9Tqpq)*-tlweJFL6S5RabF2OP&S$Ed4Kx!Xv-U#&|0{HOqt|Tn*W&0 zEY gH^V*-f#p%P!+}XUrn}(k=n E5U9UF9@3rHnG~W1}K7PEn2=OJwQbUJN*>cKiEF)F2$ =&thE2IEB f|Qs`` D=Hk`vbt|I7Y}g01Lepj`Fh+hbslzP&=0zpemI$6!;m)KWYx*(%?F6q} z+uh{}E}gT#v?KK{;ozv2mTTME+6q4fZjtL7LeKxZqJ|3QK^W9Y)6Wo#XrjX-I{ekf z07K%*?kJAEj3~E28^3oB0uf<-B%_e?s-{|xTt#WAjPQmqRJ^KglZ_duKj;4CIljO3 zy(Q#N1`NfqKL~tav1P;K%6#FoKCYKm|I-2}#Zy7>G7wOn3w0gQ#D|c}Q#5m<)BAo( z0ixaltf^qx8Ez_sD6|~56hg>Ct{2Ik$;KFS%bk5I?<@QCE1!fpbM8ATBO!J8qH)L> zo8SCWc&TedA8{A1ztftEipm2NvLATyI`&gyL3o%2Xm0%SeCKiwhajY^VlRN*i4FSH z+uu*r?nMKQz?5K@qU9PS7UEr+UUGf!d_605H-Q61!ekZ9L0QLSH~q;`TIS{A+!=GU zs)xbQN0~73YqGExxVgExUl*I_TALauA!>4wdtc_hWf%vpcaeTNU^s0_@D^@UF`gjl zYJVVtYR|zdMylpm-_4IyeEALzwR^c646VHC^DQ^jOpoxsZ?P2tCqf`y|68P<^X+OM z2svfASC%0B^~!en2B4Q^H9-yOc`O9DU25Z@kB6~W5N~d+T-QwZ=Mz3d@r!Qn>Juzv ziq><%1p(c}3IophW9@H_8`GrNmAdoLmX_s=g`GpMCCA3++uk=NI6?)42)@PGDugW( z`sOPNNd GE#xBRUn5#MtCwq z1ZrKJ<6R-W8T55_%RG*3oa#6**y3nZ*mm$hY(Nj!-`}e@>pAM^5$dpo^7?lD2OgQ9 zm-mNd;5PjgTg8Tl2e2c_2xno_m|usne_Au&Yp7;ey)ZSN_*yHTAY^9vciBneC=HZ% z<4cLSK~0EAL{M*yuO%*0apNR{-tNnsdYbqw<$x$I{(}lyI9fHQCxs^d&V?HgV7>ga z$JEK-R23x+p-ds!B!zE~48Xl;wR5X8UXBw6DQc1?`Q48w1tNjFhUT3jr!$43RnHmD zaPiZ>Mu%+ %Jbi|3zj;4h$-mh?|Oc@wgqE z5u~YhMg5&D$RN}6lzBBk-17-E6`8&IdUloSFe+YP6nH4F`Dkku?PC6r%XB`2uRywc z4B8qXxL|(ko13;dZPPP_ian;^P}lk^9w~lL@y=OdMp;&NF6;#9iJy=Zp^8T*-!xa% z6{+ rNlZe~aR0C86S7sd``xjnF2_czll5%J`|E8_!h)nrJ!s9$&FOz8 z0pH llPF6dTOTu zK0bdD16TB~*pe#UzWsRylouPI7Ysx99dQ)*f7HSojxS2E@Z8{#E9K$}s)3Iy{KC3% zxi_nExhu6a%3oViWOQkLavI=eb8fXdQg>)Dxqo=NC~HG;M9Uf${4C72d1@MD5aF@7 z_+~DOss5fo`2P8N6Fjz6v;B&5i35*n)IstRT>-dYHo%Q)0d^Ofa*1%R5dYSb{Q30M z;2j9QUCs76Zxsj7vi)paIIM5*6ATk#8@BCg^Wh2+k`m@pR*h-JmGLo)=8=$2ME@*d z$$ixH `Lxccj zb!6}DlJwmi{79n%LzTzq^J=C~SOsFToIwSKS$<=LR7vWR--EkfzkHXGnrf5{dG41M zOVm+sF??FKL|u@$`Re#y*+>(hcOzj@cQNDq;yd3~;;cvHUt8XnK({Vm)+m$PW>oMC zQ5l IHyW4|9g2IC@)+D zmqBQnRLRnE0;pr$p-m( +4GeHnt1S)Z)Dkujh zN6lSex1IlYIdX}~I{o|2@-N^vzYm_}8x->Ad8@G__9F~rAhti$sabEaI%Y_*ft*F0 z
;^FY3=1CJE7K+T2f?g&&P!siJYifx6b#nXg+i?w;R`Qq55`8cK!n?ot~3s*uV{ zla-Crx*yHM^x?2a;c4QZs{>yBRxU17jNKuOz+Bo#4&$mpNc6#Y5++cV|0d=(=HqwE zF%0FkYpo!&Y$#soCMuQEbF=b0T$rLIp&zm^k{&7L(mDMb>v!~4(RMN;YVr?q-q&>^ z>NxnA2gTIjjC_%w?tjL&d3;!*@jD9-YVmL4%gbuU#>Ng24{u><>&AXQ?|jYN)@jU9 z{^^g z{72M5FS#Z8!jt_^IN3_P0x1-PlYM2mHD4KpUiik ze>uL9m=Y8J8UWhUrnBk%k; MSA5#8Efq{Av*!^gF<)hFO1WwF@x3Tub(PVe;@THsCFS>(If_;4T4-m# zj<*5NpWiz!gJ{Qz#Ge@i=;!A=kgxLMonrXUG0g=@1cxk~k=P4uR9K$uzQqc_Fy(@p z?Op)l=~9LC)&>E*Y}e(R+S+_Jl4Jhk?;Y!pYCn6(@4F#qo1W?u7MqOaY&Zg&BOwp! zSfHLWBxe9Y1e4zbMTlD5FCv@sxRTh^OMhZQ_{%~z+~p3AWlMbwl8jCC<0U!euuZ4) z+JNXf9~AB;LOcaIuVy iQ zM#Z1fJ*}b@9lp6Z(KN@pBVlyBN3`D8d*8yec8LN7dA^;MKEH=V;r&3ZboKRE7Yrzn zrX}6wV)D6;7<^s3#>551+9tW0VtJ&Ywy4agv|oh4BMYxs ;$PA!0)TzCws=9M{$}Hdb9Yc+PHX}MFzf60!3Cr)e!Zt@v#*!h| z0hv$tw_Jp6RMy7x>~x9TteVI`s(c?A=4Ge;Umgz~2i$O|76?+>ywalN>-sB5v2_Q4 zShlJFp!n(UH*xS0{im(|SJJ(uJs9eouoyWG1w~`xmyQ(JlE{vgm|1&!pXE-XsXpTz z9+-s )DOuEB 0g7;ye)1H|m<1jkRFj7jOSk*{fa1p2(`{#Lx(vo{U8vcq;o^GnYTX-}@~dYyVfE z2UljXtDGTqvDxyojc53*^bMe`$OOMH0)g23B^!?UT5@-C?@d!!e`C3N!kW3%^qO&| z6vs1t`|)tLQs1HNBKZS62+IIv5~;y+jpG1{G9KCj^=VT^_V!VjjoWxT5^_QR<;m=+ zF08EdQ40<}E3W?ixJz8QHsc0FQu6~tR)TA{^E)dGfX8}wjkuOC4lPtv0f+KLS*;w( z!VJ}~;Ah^EKiXI3rs# z3JVKmM>5*v#4l`?wR7%Vm=n+Q_G>+H PDdQrorb;EWfCJfLdQtIKZ& zAPXTxED%=x00lr$BYoIg@Ov(qs9A{9ixYbWzW)q(L;pL}wxct{T52Nyef ad@Y( ouj}Qk=U8)139mF$R%*z$Kzruf?nnHAZ zxQkOCfNte%#KSKeqEKH^fhaW>M1J^KuK(4^EdBK7L(wm091n!LFw|3CbO X|3ypz15Qr4E6R)c|dmmp*2d4iF+u2yc>>F3zmmFgazY|O4 ;8`DDNh5h$7)_9yn7}Awn7G$ry z@?VwN{%_fl!#+kZ^JhPcEXan}HaWQ-l)P6H9)RP-VsIy*+WU>%FALHg8qE(z|0xWf zbr^tm 0N8tI{H*tW@CJJ@W>{F(o#elO4vbPKHjWVZI3o zMyETLhX^}8aR2fmSMK1sw) kz}v+vdPwO}ne3`JR*iGP16 zRMqeXKTjab2%MtrSV{Cis($-=?*l+GhawZfTWwA-?iUqWdmE%1H!WR}M7a?F&F_J3 z^X%yK$VvrWvdYw;*zQ6OP%AGuYsj*l zIB3tVAhHv@Rptuu z%S2?9*zg76rAWa^$f>0c4R!*qm#8;nJqQXRzH>d-grPuI0S%u_tNuYhI@v1sTO7}D zxN;m`!3xwWCvut+kJO;z7%l%y&h6>2%3r6TJgcvY${1-1IrmWuJBz*J56ddm)&U)q z`wWo(>wfRx2T<`98kJa01g=Wy2eW3~@r{LCk3FCLTl3)_u7e3^&NvnOs5Fa+I@XD7 z#KGGHggU;-G*R-*o+*U8l?UwAo;$4EkF>c_Ue;^T=Gnh9NXElXTmVJbo57S{1QGNI z(SikOl7~?b;_(U%VHM{QIDrdB_~m^U7njU_n(tyd>M(AEk-#NZ7t_QXJPnP u^_=xduuNXK3{`V-m0Kol zR(o0K9b2zh6eg+aU;YXXJ6DRSnJUrYG_S7iv6V6FG6n`T`oDG1!UjV(pfnzYfBs{g z+qPbg^<5P8RUVQYPe7@7Kn+^oIt+XyWLnO9Wu;Trkih8dVl4N`z{3XmICYHY<=eOS zSA`(M%k{pSa0m{sOeONOM4ylR`gLL-6cnU^VDm7BiGaFeA1FZ8 =c@ z7mOX*i~X6Xv(^G`5~j!!T4#t;B$U09inO)O{*46We~%6V8+!_!lNPAv9JhF||AHFO z{`X!U{_Mf|*=dOE@9v-o-!GAMZsW!;Ix?YMb(9+7DX3aTI9(T7o2>7`kRTA-8CT){ zCaCqI;$o}BZ!wB!2!{iiRX8q?P3g HUC@>pxsy{eqY&NE!(6b7@ot>(A10Vnb0dYli=ny|?=K80w6YBuT2y|L%^f%9- zm#M=-EI;z1pOM#)ioo?4$7!Y nD#vaQB0X1Yk zk+f7Y$NV3MeF`NW9T+d-8zbeE
!iu0Gf%IZS*4OF;IPCC1Qk-huuli~^ zfnBp6tIUOg7&ISLrY~#I)Ju$VfEL)q#QT`3=c?eY>&T-2{=(E85MzOIkb>8#BJ sd{E66ybVp<94P$KRQXUN^-nw5QG>E`r>*rU%m<-pzi@0&NrtYKxnTAB$;0@ zFJnp#D<54)Zksk5VrK6WcJG^$;``#_;0X*aW}Em<=LPxrR#GJwm;ZD;d4U9gF0MM9 zmh0@sfDE#QKF$w(d00^m;o9&0GX#3DqL6f;zf~{JiMSup@!1fQ@FNx))ap8y!r>O@ ztO`DS2x`ILy2}lHyw#E04ja79(!hGNqj(VeKs &eSDFFdlj!CrIt?MKeN%KtZfKRNJ}Q@nZb+v*4F~?iqWSU+y z*JKKQxf)v4G*TOtWB5Ho0m1e1?sn22*&iKz0~!pV+0cUG%U!f?#X|NwH*qKw%k{O` zn$xcz9`MrpTcO-<)Bhp1-(iPB7`dK<(~JO_ghcw=LIufNmf)T>;l7iV3deyHrBJ%X z6$->U5kQRWhEz7@*q_E|Y5j;q=wCs2@Z)n5|E$W>OTB#c&n@u1#3!bJne(Tm8-e#` zzX3+}ka@CUW9!EByba7Yl6v_*bE^@y<$Ll#zK+g{^*Vogh5|tz#7ln|WMD7=UTJ{L zSaw{`z`)LNGG*_80$khKORJMj=Ya!P>as0Y20+b#7I=e9DM`s_-Ju&Qa~B{E)&URq z?_i74EO4IJxPfe^OmIa5NaR(*i`5A)Y5)`23GS*45aXPp|7sw_xYh*7QY!pNn#%>} z<{n-GgS>jb?Aq>iHKn`HG~Ft*ijWjT>qMSOv(giST`4nl>xWP`xeeFxQJx?t48oo~ zT{k_S1mCq#U}aV2EYRoyTjcdCRD cI z4RAj6E@lFk>Mk@l ifQrKq1&*a=m*`fbu+eg0jw MQJ4dB 54e=l zsJZI-`FRZxOeQ6F_rtFxCmR9VSaUhYbe+RG#wM_ol#!Zh+=%SC#XoiH2B7UTE%GH? zf|ge1EjKgj<~_r|3zDI&`N=T=0z1VAeI`f=k9#!9ACx2%YrVR;%JXvl#ftzC41ym^ ziZMnC0jaeC!*qi{W#j-FSkEGmfZ_zGsOjQ{UB}M=U!5P{PoyN&IYX3{^v~z9k|MT& zC@}=cYAc#f4CIJjHpD`8moFjsr9j>U@Bj`^CZ6H|^&QdldA|b+?ojQOp uh2e(zNdF8dR3st^?go?BrLae;aGS3J$8wbNbj=%{5B^oW5bw&-F<{E`k;a@BD z ?WqEPK7OW)cOtUSU22T;%hi62e5*;^rB;5 zsB7#JP58OJGw~H-$HC>}f{g*TBO3O51PJw4i@^tX`b Lq_3~kFV_a-LA+OOGR zzpTr@v>pM0Kkx~O+*otLE;FF!HLr5BMj+x>wPlE2-UAYgf8OuYiYDA2EG8Ey^TG(C zopPi)h#{V$3)TlTz@sy`o~)++(D6fWZ$%)Mko_mFo4Ear3c3+9PiR6$&0_lx&tqXw zFg-Py6f$Nf6{XFr=@0Y#8`WzD1?W$d7*n&~Voh|I>ZAg|UqJ*}KeBuj4RrbARr2`4 zizzkq*GRgkcULZawxKzqo^l4!$8tgz&O#WmfsFC4o|R5-%z9IM*#|D!U!q3Md28(7 zNqE4ZYRCkLV0FOLBTD2LHjYT?im4?;%_8%Y(BK=jKh*dtHT76qnmuD6PKxy!bP_*7 z+T0sAOGm-$=0FZY!%SQJkra@e3J42t3};9&UxWTw=vI+6D=-8FJW-@;o`TzfR0WYu z&4U21;68x2QjQtRm3etNg-|5*-?a-oZQ2q97!)%IK?e {inWP4g!Y45OW$fiDHG`07F?VGj?XWF4AR4HUK!wvZ=$S+e4BZ zq5aK8GE(<;pNkEM>aWKt9vXlAC;>9dgzh@ <96=~BL?yhatlFN@Nnn2cR(G)i;*{Ga%}MPqbPy65ZDLA5=35lp zCV_u`&@f*4Q7VUB?qy|RXav1B>TG^dkxd9HmMIY=no@qnqRA%P*I8GOT&|fJc-*oe zg|u<}`Z=s9<0>k_DHo(!pU5V5%P^E3kzwM@^Ry&DD)9?sSv46!N2xJ3U*8e~zeIl* zr4YR8UI$^Jo|JAIGt+s)^$SY;ucKSeA iE_j{^nBWxO%*z-br>Y6bm+XC>;u?n7l86Ied zK=`XENP(&-mZ;}Vx6K%+nDsg~+YmCd$NOy0-48?a?3l|OhkXet)C=6#*ueD&A| k_0=Ut#irp((qELNbH&UM(OIQT@5y#;#2GZuCimMyYW;qx=`r3uJIw3Jc zz5EwBeCj}B_K_yqvY$mw!rbZtXv?5EZ=Fj}c&D`%zlavfb1yV0Ip#L!%+8^xpP#S7 z`DB?;VKv1SbxOFY*PM6HC1@gLBL9k$NP5f1xcsDhK+BY8_fjni@YhdeY6&x5Yq<#U z$srBIdt2`Uzy}qM >45HyW(!ZB!izH)7wC?5LX-jw$V@nNuB>nn&&iPaUQS(^6y8;%Rg5T#s7Gr>> z8-v2{q9lup*b{pkkzw#~8i}dqvj&jfIm9a$ubfTxS#KHwoES20hn*1UphY8H9H_fK z03#UEfBUVMMJrVdU`k-%mmbJ}B77 2AoUdTa!C;2S8? z1&=Nd6)O7JtrZYu6&1N=fk!K6rxC{$kCt~tUp(IZvKv_}1}G*cFcPzbYr+z98@uaB ztmSw$piL7lRGB6EOcPY1TpOtw0uVucS>+Zou(4l4 @*;tqqGnm&P~Wi-Od?h|-NR*wM>OMryf7@`E40^hzuG6Vmf z&?M_{PWfX%_}{&C&-Jd+ W;YZZ;n65b6!e0G7h(SEH7g98U#$00sTFU@HqGkXB6Oo5eVk;a{Jwaw|NL zZvE_2)i;BpIOUP~;0cQw;-T!A=n umu=x-mRV;D@LK#?Jidl)6MGU5I-91~X|RI&P!gpi*NLO{fx81y!@_Iq4{Gm@Y-%KI@Rc#wnEP7Ni{68=BTf$oRs zfEf0@@ekucpeos%oHBartX=~!E6ycG&|k00rFA1p>5UyulJERK~Z^e zG`|U4G&hq9`fwWi( FY#2rmJ#+{% z=CZP~t qIe}&5v zi|JWt&m9hi&t463=Hv4>0m?(q){E5+r{3p0MuL`6ennm0DL8uDYP=O&1nNG}kVgGZ zQ~ 4e1rJ*a;nn&t=eX z&2B3Cf0Yex3elHf4I0F}G$hC=sv6JlLKF0(H=*}+et&CgBiwJ<;Y@0#%2zz6FK0e; zV40kX)3)g??W_4iRShcc(~5`(E&yBv*E^|x6M60x`1W-1UZ~dx&t2+pa>U%idTyL9 zvvvEW>kUWtl9}*t-+Df$u{C{TAdz?aIzn#|v?F!!$U7=U${M)y#ReM@KT}@%QAgyR z>wNE^Hxdu@6|haPJ4Z3{B?|ijnU^!ZY>M*LOcze7fsN5rdwYxTt+;3FU+df4z0 H)=za*C0}$n0O8M=8}bewbOj!)pI@~34>5*(O;F{IQ)TF=7(ZD1Xcgo& zk<>)I@O_6HkvD7qf#>+x8uNESW_m*!ZygfBe;%iYKjH!fP4Ga`_P-=5AceU~R3ij4 z9dqkk5#IW=>AQJMEd6LtvSvGMT-Ri<1(R0fZC27)b9Q4gRDRw9)W#l6W>}h-wnrCr zyqDxri#f?%qRYe7f~ #XRflR<0$g ~DI9ns$6Xs=*wIAWjiQt0N%2}Xi!tA^0e(iafml9?n*^6S|m?+uV| aH6kD zLFVoGhcxMn!mNdfLgtcm#{QohI^HC)QS@<9za~m}>dYWb9mAL1PR?@AnK+NB@a|`1 zsG7Zo1{8_IWdl)neHnzu4`obWpoAo+7{?8vLt+@%fvu5cnvptxd83l4swVqHyn;LO z*#pal04as;T2RzMF?OpR6j5oa-IbN8^_Si`(Xh$%=gg*BsGwWK+K7<9>Uk5hY08vk zejDfq9w-mBe#++pj74(Z*1@^U#_!o2e0Rf>^9*_M3)P-#dWP%Sxc~0&@xpuKU%daj zZtk?UX411Xel%t@-ncMer{khC#QA?seR(*P-y8QCvSb~SE$c|KFOzkM7)uhxSIC|s zl`Uf_+r-4Eh&D!s?1?C{O@+vou|+5iLQDun_T@eEd$0Gp-ma@Znr5E!Jm kw*BU5|56tmor*n{)T~tNksp?4p1JScqD+QchfEpFKOf7*#3P?VXDW(I=vAgM zHHIEG&EQYe* VpUxmt6Uvs>>T78c8M@$p9ZgI~rSoDY$DIR^q>V%R1T(A{wQ?#`BMX$IC zI{+QWB=9Rf;2d-9=R_&%8(x3 3^uZ5$&Ic6UB*N9KjcM2;#Ui>o<{iJ>+UupY*QyfYBec5Qq zX9aL=#LW_GcwOP%0scQaf`&U%yFW38PZS+ou~?m-D}NY&kCKAr)BPCeBg|Zl$B? zg`V!;!wnH~u;YBW%Xd9eSOd2&K3Vv7PP4fu6a!%cZzVJG^^DA}Z0Sz7Xx4;`i>>w- zc~PQ87!xgvIq|@WkBL9wEPn*z9`5LU86Jt@yADFfV|&JyTy;0KOo&|fgf&HF%#wCL z%A~KZYR!*T9^l?u9Y5p6EP7})ukM#rhUg(icf0zD;G3$dmGD)DJhgZBm^UDp)dPDy zRwUJsJ8WFW4Tw0kz%z(=o<-p$Hr_*s=9I6;T?flbKW=_`vLI|MHa7q#Hv3?4vS>j{ zufQHCoqu!GH)HxCh#o&9(RQuOHLgNdb-dC+saIUK2qtD>R+aZfMt(x5Ptt1jlf2#c z++cip1KB=TYpk7;rkefD;Nsq>tK;h5N{SbIkPFPj!8i*|7iYPZmkQ^}SyCRS$v;0B zaN=e7sW7fore?L?@;#%KIYT5ftDpycDOFf6@-Rm{*Vg*XrKPoGC?`tMn aV z*<){%ko$IB6z%oPJ*%m@tBR7xo_b*5PR-H>g#swTG &h9jQ#u-o1-#@Dz4u zg0~nUcVItbVcpSl>}h^34oMZVx;u{c;q2%!2ocSwEQ-{v*4N`teAhzV<8`{Ozx4XN zbH?kXzK8;LWRonWCZMH+Q}Xf7Zqq4fCa+MO!q{EKXp)zl24$#`26#cak&sV6Oinwl z)87x*L?kR6gY3R#9pS2b@{)YnlFU6IPj@ zBbG$@3~aEx%(XQI8@)YG-YpHs)QI_ymg{CCqndt9AAuk2=tMq0873fo)9d-z;@*Lu z<2mYO^Cd4zOG{Y-b9^(FL8N4(3pk$e)_32THtJJwjpPy^y>vzme*o5Hysc86+f1143yx<#V>|^pN +6sue-{c=v$xID;Ea)}yw z9503c1I$AHJkSDf6Q5_1!kCA7JPx6U;J6@cp9Y+>{C!$`sOeH)e_~`OyN)8Qn$WJv zun|kC5w9cKv}k85KCLaRi$jA)Q`eYC92-rfN&X`l?wJ7ZqXk;Ocpk`$$b)2`zf&C> z%&c6(53;ij*#QIt@&dqD<>27pGvD27sOn@u%}xtHIPOH6wPP>8de!g4a?GY?=wLvf zxa^z-V%%2|@+-|-C7;mq#hmwRj_39Rp<%nd)2Gt1BgO+_DyPM}i%fya5XqEX6>jJL zyApe+-6JN2n1DCz0~aOIm#LYLG2b!|*W`oRi95ZXSB7z#!uRRjD6AGH+(R`hiY_6t zZR#HC2P=!G!iZKWOwanaH yfOpI3GUan#ZYOf0_>PK6|OD*t5ppq>Mn_R2SfI&BYL%^MTH-jbM`!?zhTZ zy-z8X>^UYVzP8V4Sxpr!J&o4hKa<9cYnAU4-Hx5EbPPjkTOfLGZ=_{5?BzFp=t0!7 zRj3$ErI;jfhwt`ny|Ppu5;tY1u_D4DrbcL%XX2PVps4$FXMT*m8)ta9)deSJaTuFj z9Wtq>zw!3%tEj8pnF%OtSiJi3QwV#YEJ#^DV3IOjo?#iYW({Y>H_UdU2#2nXwBD(4 zYsqa}NNb5Uj{L^ntoF$`=Zr-dvIyP{^H9(J->!i{OQNVqHlvaSePf-UjrFwf=@0H6 zEo1JcJee^lYyh`R?$GIeeTOil9Q;kNevJQ8*u^tM{B@cq!Gf)lyJ}lmKWI< ?zVjR`f>e;p8pYnCOe+_k)+%AzbDkBDH-dJmSK{S zZW?z;V;ZOX`-M7AB2px>3{}@(b#?e+*Pkw^8Rw%&R^vMrLrd!c(eZvyuZFboHI-Pi zE?KJyXTHE#1e`>S<5jyk1D+achyR2-zxnFdID!^L(8;0v(+r>2Hf)aQbTdQo4T+nx zmt(%F-Ma**mk;3BesTNNAXZIF2L8r}d`U&eq7CmZ8%F5D8g+;{Ka)`#Ztrb?QY*u_ zLnET;b!{ZN|5(>o%VKd#^9n%#bSn_sM$T^BFMx4LBB$zmK|3FTI3jL_U-w1TPc? 9RiUH$cb+(7Pc}wR?yY;mlNKeZMc-z zdJ!d5Ra2F_{aZGio;7l2W8sj-I_Ho2;N`!6-AKB@-Z8Wjwz6ozLsIu@6#=XgTg#Z) zn(-c9T3pb>q6@3v6@z9)4rt~ds6&w~p1qh5|L@(h9*?&6uVfi)S>3bu?{{oKeLluQ zAs+-1J%vA%MMrhUR}EKqDqA1Y-Y?`5$!(n-=v|nbDAqeV8vo@A3u>_*;Y3s*oEv&t zSp3L#?HA8yad{wSj1?;S8}iRtYog9P`t~26thnV E7}4bSZ9aIGx%_b;S#&5uBvUm2~zWMB~*56dag(Mn+ilx z7sN--*#F@f{LfyBFKuSa_@am;pMfg`e3U+a{(MM$8Vm2=2u|9tfY#ONDi}tL2lVXi zzf}GnFJhW~VrkoUMN+5z2O(G0;>dyF+G ;1g2a78YwU8mu44Ja zG^R#Gyl12VO)KN6= C!0_8GnE}VeyjF#@+fl~h?0j9C zr b4+%(GX14^)2nbfBOpF!Ng95Y`WS{7c0)L zk00e{nr6}rtLvXbk =Br&E7GWx2zo(jl&L06Pk(iCy+B_ z3(lXP5Ao5>5CFgGxQ)zgqVBYf7@p<2m#x8VSIDCNr*t_bZA|syS*)rWdUgJ}xvL+y z)==4rohRJwpZ}dOW}nF%7# b$D4$tz4`BnjW)g`%1SxWtd!hJDNoT55C~2>425d@-uiY<{HD zj`57q*|Mllh03>_(D)mPz8TsY%T_d9%IE8~B6H_VU;En&0JT>hYK(hR_mZ0!=$G?Y z@%8$#+#wl5`F7s<6&z5S|6YF(w*FgIUp}2WIx6Pid?1dIMaal}J3qD3At8L+tM%S% zP)+B#zVFgm^@;t3zRCMu@!*RLZMU|g?@6Eq^V;sUJh!uMKAC6J-2SkwQL;TryDaO1 z_c5*c=6V|Db=Xko{OD_LsLQ#YWBxbdRS6bfSS*WwQcT38B@qz|p5c*8Y rGqv)5FIXe_vlD&svu|&n!EhPmUbx38Q5?@htmPyMG)Eb0Lx|DLyJ9&|^=65%ETZ z`nT;GVERU%*mH*8MvkJfVfeh0(EP(5ju{x5?fxO?-3oyka3s|_@|9)O#1N|>SL-W2 zIZyi1Sz*12!(1X-Oe`i4jNiz_C8{s5v&q~0NH3)0A`_fi&>08^38K8Y#jg=vr@1d* z)4@YzcVOV2+cC*cluA7UGHM^%=gXmc0zh6tMMa{A+Av5qNt-S-JEpCfwe+7JoR&Vp zVxs=agPoOIA{N2SDqZd#GqpB%e|tN+eQrqd#>P%c_89NR4qKxd*VNCwV75zAs=W0o zDkfI~uEzO|06aEV9IBw7azd)r5x#%`lZXgKn18?^i!oyjd-iW6{LMOlc)zK_ZQCXH z9W JB{S#GDe#!YQ~uJ3IRcxIDw$MH;i)T!A>EedrM=%hHEh?9MnitYxQs zaA%jsE-LpFevnKt2Q-e`#zM%x-;`kZsbr-@;}+23>r0?UUbOMV6XVg#zMwE 9E&EB=@7h@WC0R=z> zafT}($^9*aSP0JX1SvT&2Qp!?5Xq>HFA0GG3H$vmWaIBAmkfS?JQfbk;2Ai&&WG %K4WAf8Ek^JFs{=(e+L31QQHA^_U@ZuHr(fI2rDcIlf5i0`?NJ`J-Klh8h^0avfS zy+f>zPc~ R4UIT4Uec@MBSFIYvhbbz&o za0R|7644*1+1uT7er&sTb@r{ZEfAA|R2r>R_aU+gyR`m1n`QA9E G?heL zAe!av{WKm)hB1iUjB<=7upT6v!e6`?U0lnyJ9{?O-e*+OW@d7<2a(P@9t>FZdaoJa z1LO;y==46B%Lnv}8Ph0Sqzt<>fzE>3gd>+xC&QAnG)@Nty>8)j6KrsL9n!$rXk8j@ zh{ZOXwG ^l6WLg{^WEOtO5XbO?d^=a+;#Ofisg%qHuA?NY zU11m%NMrRL#CyKW#SrME%q+xFC8f;y<&7&~>K6?9kP@p|wzI}GX>8Bb3KwMVX%PC~ zPtFtDKa)?axO58w7zBBG*W3P2EcCqH@-T7qx=dw|u3KVrnctYbTq>7FK@+n&JD8+| zxw1Y{9e#C7Lrq5T)m`t;4s@^<1Y{rMEyhz4>l>?oXNsMAr{b{JTh=db#4f#w)b1V- zQt7N?dbUiBv12SkS0q|2ocZ%CQxSlDsZaODjM;y1cuN%hZ`}x RZLapDDl#DicKfF6pt#@*-%?uYVhhgfTm-UwUUDfF#p z8xH{1K@?tT>{uIB2!vby?{zwJ+h7k;(D~1~8w0qT)1N=0v?P7lyKGsU4!LNU*BiT{ z;g%0RhCPR+Up&&bX~9<^x&($(g20E~eVu7PumQDp^8Y*wF{%m*dbH}_9H7XX5+F^e zQD24}0`Fg95-d)4cY(l!Hr$NPEy(q_C{{3_jpN#7%+ORLYWc;{P)t)bn$_x`Vd5-Y zyAJ|J6+*(eEo 6k_Qvr&+0nIa6D|~4@LTU~{KpLPcii>~oLutHny#h8# ^5{7&|sVK9PT9Mi3zZxw(=xxtf_$iu)1H z;5+ZQkY#acgW=mZZwAH&2L9tUQrScr=PT^@h%F1TLWSsJm;r#ChKhWy+|N3GmL+p- zA9!qAbHfulQEvozmybz6HrYjj-P2+0eeW|>U %t?!t{%5;DG ncj;++8)9GrS(6H>>fE<@9 z<|bDl@UULes9aTy-+1asvzmV&`2 `%e1CIWRQWEuC!R4X`y<{gGmg+>AG_FSoF^B?lwc zfjJ)3@zaBV_}|A6HfWn{rAStz`51!Eae4Ry;^kKhT*mAH7p4P9g}O#zJb!#`0ntCC zECw2hQDJLr1& V!^=9dy#DfgWBz^d`JKs zmc#->MDN74kJM9#`5orErS#zQ>g0H+>3mVUrwK3eLp_Na8F$I)F4@1fwl@47M8Kez zA6wUuPb?lSunb8+YQR-IgyUThO4y!xZ7#2}Lve=SzjNpOp-wsQ^?d>FZXWtI4;ziB!){0K7O7{5e4&x};ZUq!V6gV~U*cC+SNTD}T=#=m_5W)LQ=xxGX4{@WKg*_O4xNiWp0qIpgXPy( zzPw-tDlALS7nEqvxDROw(BaxsM?Luq^~WKc%l<8|m&ROAkRgJuXYKa =n0CUhn0oJu;{TKt9mq1p_RMt$qAZIsa9qa#ZAegxEa% Q`d!MiPwdS)<^M%4mJolxhXdVAq`u4iGf zF+ENqHx>cl3}u`V(AlY2t<-rvZwGqIWKZD&uv*(!za)tI^r9t(R$N;89fm62>cMpj zO4RKNXfrs#A73FlPwye>_S+M2tgh#wAsp+9hSS)V&1z+c-f3?`)YjK(2($nIvP`Z0 zoSEslG<}<*p%y$)QOe=Eb2sJzlTqZgZ*P3#KxPrfoL3zk1Bs*-S5}>37@V`$y?6bO zZ1R7-OVpxw_a1_qr3~jtPJ!rsjorAtc+c%){ZV%&AHr)Wsj8L>JJq^A=d{9VLmKQY zt1z* ivU=S$-1u~P~K zn^Rm@{%?x2XXm}E_4%o+w|6v*EI!mcdHlFa@3D=J+{oCxX}oZJ(2 6gy}VA*5CtVU?g=R`T0Advhx04Qvs{L+Lbt qv}h!9Q5pIh|5Fd<`V}yE>^sOlS`HT+=>OO z)z#H*tm95aBi*m+x7*pk87C(vsDVR}j8+HKFgx~lo%%++ERS~gbsFS?m9SvL0*eHF zrvGiqo*{m(k36~WxaDDfQ${9OhG|bsFRbHgY@r0}cvOuoX1ks}`(u_P45a}*@&i)C zgtwu}Y$ZgWYQVaKdUS&!mj^#Sm2CK)OuD+Ywg?Y)*!X+TPhQ|xXI+3tkg*JoP3M;2 zNOgJl^oNFi{_qAc4B5;d`}6LCMrx?9@2{b!85!}2+V8)2UB+cl6JlHYzHF?ijqIu1 z5$KQsK_3APksL?bh<8*fgjG`>v}zw&`ZQDyT+REQlaOLP@uJ4YLGV=LOVLB)oRmmB zf7THeybfyac!%0@55$q?W6TwlI=``dWG{&MhFi4l_p`UR=Z49h1Rip_dpoK~0NG8X zJow1>wc2*A4l>^*EFcX|VBdd}%Vt@f`T29FsH_{(j9GfuJ2~vVhj4o%nh3!n0cr)Y zv~J=Faa8r_(b~SNJr1Ng%dq%Sk7*38-t;vFCdfSFEM$?JcSr>Q$+#()oSkjW+6nbK z6%nzeDM7=`w=j8_I6IF>;u7dMPJA52Bwqo^4y~g8X%2t@Qn~31T!074mMP>o@TZ-) z3HAR94PKGxUs7D$aReIxi@h%tWwJzO|h05AbKa|-#c&v+38z3X9P3l}zQG5B|D zC#1cp<&o=idrRd(@rldu-mq9kCc+^P2n@#paPu`@(`m;-viB{?mS>AW;^I*zkD>*! z;tSJk>0bxQlb6Xi{8>}%>#U^?)pT>DYQPO^<7y6Pe~($ih*PQB@_)ferq}{o+!l z+;FtdW|k*Nzwh!Jjz%;k7?(iYgy98N52~UhBrusnC{aDqxW>JqJ?ZesF1z4e4yT(S zQ-;`Q@mx;B6RUow4W3W|yA8u68tY5!9miWKHJ#E}PO>a!L-#tgBKrhsBDRfS_c;dZ z@W@tDW0@JQa{K@7^g01nRA|&~O%NpXHW9s?rrde6spa?^DU@pF!+K-+$N$ A#afh+rXBZT&3qa+dzboiUDhXRV6#qxJvmz@j$M1J~om*J^g4(hjOqFt>;vyQ$ zVLHQyda!2m!}l+@QgX>M*Y1tLC4v#kHr|r}WyRULisZ-D+`cM;7exL2xWfUE_uC|m zyd_Tl6GlIT9w#5x7lVu~i!~a?Byk=Q9*6K4(hcv!{C_^7>fBDk2_;vcwybC=-;-JG z0Ee2bunoOXN#X7> vfxF&U>yg;Ga=5q>XGeCE46)hdxU=@^4G|LNsCa-6>THJfuoq2e;CC!1kR*__7 z4c)%`N>ePl2 M;*H@n zr(~&IW|-Zi^1#rrT)tqHX}APqF8Jva8DJlEm}H5;b9MS9IBqW-&TYf_=r&dVzBZbB z6k9XJhez_r b$8AYDburSP;afxUC@LzR0>inOHa_ZnU2_Zt9`EA^&L1;--aA}_OorhnyO7#4 z)Nj3)bK4)k7eTN25=57l#Eev@&CWWr!+x0*0izHC&wucab_rvxu}W9_5skX(ZZdS} z!fVH>_~_e#j|6~mEuK`F11ykzXo^W~L9lD{Q0j&`g4d_kP}+r&`lzUJnIJ6a)J7`Y z@=!W;yc!Z&N;Li!ng8pdL5e&Ux3m8Tgq{-uZ`sbO>8Y50{uSM|<3qUQw8j*!YeL(B zzRS`Y2t>s))|$~wiZX`)H)pRsk!I@r+SVS6ijWJ{#qG?Qr3mdUB u)D6Gv3;GG?8h7R=2U~0lS`sB{E{rhRmt_>Xzf8z>Q*xS*H(qig0pIZ0d zkO$Z-%)c-A?^+}p-BYQgIF}qQh!Tg12jQ(obd)mRj*bu`w#1?^Fvk%CcgdIU6L&9+ zgudq5%~gFM0;FAzK`P!`w~Qd&^hpx^K4}le*_l==kGqJ(*bn0ke0{ET+TxCa_b%y@ zQ%sQFQ{-1;Z}{|QA*ch59wX;0oKK`Xi_9vPsH2^q{3Ak-XoWT0m-30_G#k+WKutUU zMAL*drf;YN=87t?GVu@2&e$`tQ@(%Ug*~gf?+HFIeS>q-J%@9HfLZS3vwUXiI})+< z&tzNq+^Mu9`}<&1i_i`$l#H}%4Z#(f7lpd%CLdzZ>3&%ndxs(IB1m{>5`W*nz?qD3 z4e$E1tTED98z>Lhco 0hj&bDRzGReYU^>m!*G{fRu-ZlgMRjsq8gv3=}_KQ$UP& z!}U7HRSEQiFf}BwVlSo_-cUx5u}TfZrF{cW`1^SC`YtD(`a?kK8gT&WV~Q#&$NM1z z`Lz)hRPHa(%Dfb^Tfyz2igw1XxIsB7d-3AR-Rf7cGBz25NR7|}_uVuJ@F*{E($pGT JX6zCBe*jg})TRIc literal 0 HcmV?d00001 diff --git a/logo/logo.svg b/logo/logo.svg new file mode 100644 index 0000000..740ea51 --- /dev/null +++ b/logo/logo.svg @@ -0,0 +1,81 @@ + + + + From 9de85f3b72c40cf61fbc02290e8a052dbdbd5e39 Mon Sep 17 00:00:00 2001 From: William Bell <62452284+Ugric@users.noreply.github.com> Date: Fri, 21 Nov 2025 01:06:59 +0000 Subject: [PATCH 6/6] change logo colours to match C --- logo/logo.png | Bin 27661 -> 27290 bytes logo/logo.svg | 7 +++++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/logo/logo.png b/logo/logo.png index a9dd3e1fd9865f930e5206487074122b47b41ef5..697789349aadf1543937649d848d57ad9c9530e2 100644 GIT binary patch literal 27290 zcmXtg2UJtb_w`L^N)Jer&;kmIG(n1?N~DPhBE3pfN>D(0kD?Hy3yMkyK@dU@(m|;< ziXtU~R6$DUy?(>{eSg<_3)kb`xifR-oU_k9dyF(R&}O1PO%Fj3ldcZtCIrF3U*XUR zTJU4tuWuLpIO(oq;R!*^Eyw@CI^6Q_fd9$kb=BO<*zKN|@9l?oAzxo#N#_SRPwZ{? zyOM4X9a9#SPeYI(q>ItG<(IlJ;u~~p;I-Oex2L048Y*C^0bBZ!Z|hYx>O0SEwhob@ z(iGP(XPfRQq#Q`vZPwLwUG~qtFV8DFq*yF%2LIjK9(g~yZt^h`?d^b)Yy#>esb*#? z;t3a)^}Oub@avs=J1N_|=*1mwkrBr(l^G=mA`N0EnV_SHOh1SEV2&%Hl}0v0(4*;O zKZqG_E`^e^z-2tN@l7 kpg5x_git83@?c?}W8bwf}aOpfI0T-C^jQ=0C7cX7} z$7lLsk|xX{)}45nd-V7SNPo8Z?&+&jq8uC?YUU&t6KrZW!sv}XOnpjr+}$shpiD0) zWsn@CDlRU*KZuP>i~hMm5MwHZ1XmMuL>|_WHg)%x)(-sq#YIJD^0fK=-(Kz-IFo(q zuM?eM_Sv?!He({msP$-?1xn6P4c^^4SuKgk72||3s?wo{`^XLtewz4{d>KsZla}$4 zvva$cB+KK;se5~G_(IV)))i5!>PAMrW0*Ki%wY!{uQQaY @Fw4&U2PR)e-P zYjDCwUv9(H-(oP-%@WThyHgb0Y_s~eEu&>LHM4qnJ s?HJlQjx+Ev}%?znF8!eLqtB2WJBc)QX!~+` RJf z5biz(t%>5nHqwt(-H8!J*){Dg*43TGDQ9mwfVB#8MqU5W<^FP|{ned%v_b9j=g&{} zlLgNB57ygDzmma;i+LXpD2PfV$)-*+Q=k?3<0I6)maY!JVO}5a6 jX!Y5{MWvHr z|9zW$2FV=C(%cO_neZFp2Yw-(pkpauj3aK$GeXD?UCWkKKiT$mx@A5J(ouJI=#(CC zqWte~GKP+{A4>|9_8(qEGQaagn~ZWo{p2JG2pVP)v_rRAJglT*B|V{mNRcx4o)GrU zvO5q7p$hFm=-x@OmHRNr-bq(Cax~zS^(_yN6)$M5(la%T2HH8z0J#(jz{PZan5%(3 zu)F@lT=#bLNr*cyE$2)>*@41%|F2@#jj^UB#~^C;#_11I+^aI!Zy3n)x#C+wr&P=M za)T~XHcPpiH~QrVo%a>}oX(C;Q92?wsmEL>$e9GA0|~K>QYf>knnk^QYd(swFUb~Z zojm2i{>cN` W2I;1iy8k(*p%~(lLVsXEB9ob zPt|~puMKOnRKh+@!F>=z5dZh;gko&Q18WdWX1dbQ7_^QRq0@xSLl(P+IkZH#)o zTe%N~_=)^Nb+5&`I10L)1g0e7eej-MQEd*_X1X&nE{^mgJ8G_=HLWagO_X;}lh2$v z!;YD<1M>(cfc#{K1yl64L^u0e-?XtgxJF?m-X&fq@j%eO(~Pviz0dtWKBf`sUgOt# z<~0bO4FQ{B*=8Ad6Wu}+bPj}8BXnyUH MCU`1v@-a?`{oy-e92!a-mRKXid6<``{2W#yq;Fr>A9svw<{XR?v7^XbK0; z4ao;bS4|KC_Pxu%dEtaJos!ww`jI{b$#=>fIWvx4s;@A u}6@kcKQBt-$Xgtz-m-_ljkby-;-X{0an zOtuXbaEP1sIY<0&oiCm;a0Ni}E;CL~n<6o-X}D!&TejWTlDxPVTit42whbX9+Pe zKl rR%7Qw%@D(Qcd!0C@VK4a7Vf9S|Omgk&^F yDaUd)5X4JXIcAm#bm2Sp@-JJGXeQFfL6AuRYMX8t++JL`c4D>SD3QfM5v z3z2V3(Le&ft1ehN9x0kW7JEVfq`UhL(H1O%CS8?kIX^4|9i5$Lai6(e!I8}R^5qK` zEMN7p;X~?XS;!VvT3l7Nne+E+@<8g2CRU%T!$ZqIU4iO4!~O%B_+0i&Sr_vl>2`hg zgqnVGO7D8Zc#s>bPgLhcgumD4=Vz8gl~6Vi@Sa3>#eH7HjyMHLF~kwm%q%TyFC>H! z2&cHX)I?BrI#Y`0+Tn`KnGk+yS5Bn!XYu@>Tt1Z1o2X$nXq2|6zr(c~ $Pm8(U`OI8HvpLV`Q7UKMBYwm z>R;4E3P1JR^Avh~jpq!rT)VO(QG!bPeONMs1@4HcIb)(B@rh*|$PT)4r$-+5EqR2X z@i73rYG`kjM-c$9beHD7Kqrk>T@hn?+nUfu?A=#t1Zab(y&ot$Y;I?FG^esP{1e?Z zkZU@28gh}velvy^`??UK0x& @eNCAC5%ll>dgCM}}I7<2J%lmN*_jRNs;Fh{ttCWu1odY{~X&d<$-(Ahs=YtO!y z3d@vdh-fh*bn=pw*oyeCtFX90URpm<@{;D+{pHZA&43D#?=6v2!g9)WuymZRpZrv3 zb*7#$%on4Tp*Q{Nbu opVx)SUypk0WYHj~b8?Ohe3!{g=yPWwOg{!jn@ z{o8GcJEEb_SOfUW(@}jD U7d~Wr8JZR9m|X$bul!$uKc7g+5vo(r>xi%0=gY z7Y=;gcFBcKa8(vja|?JpfX7zI4u1x|(LY=)2nzK2F|g8r3qb3t$!x?-;e^g3M`AFi zs?vu~mVw6EZ@ha&%b-jj59Evr$P}u+zv}(h=t-K^oeM)16)`d_7PwIAP@>1I?aiA% z%+Q##piH4$^jR3ZK9=wfBXP2SU|?@m8K0e<-AF@2BSlqxL+Oh@@D(tX{~j%OAHTu^ zv8)NYJR Gsyp08ywufsxBTk( ;`izS4&704Y7V*dV z>29+jTk{Z{7A+9+g^X^}OR90uR5hlx5A0w@sfR%C+lX>w{3J_E$R6+}3o>$yTgZ z;~f9rG*-dE!I$0`s0e5G&oYc{=!mSg`PnHVne7nF5u? )mOb6v1Q&zH&;6d+q~e~ceV~ulIeWr|PUr6N z92XV4K-RkwJK5)-?)$c~(yQrv(fjwOK{-L5r0wwN2Z!b&Vh4n-YnH*y{rfv>o-Qsf zs#u~8G{*V%Fh&5fC&s*d`EqqSLnIaE6m~U=Q)zynq=`lygLy#RbEGVVK50)RZQe!r zKiJ=1aZ~X9e(hTOD;H>ie6`Ob1*S|j=H1~TPaF0zI8J4A@G}hq=aX2Z(vROBsaa57 zWakT~+F9S5*HfVM85>Je({@j-=TB(V#h !t`AyBNnUrRnMYWYK!a8h@r|0 z|EnG?O47mzKR(?X@YcpfbczH~yCd3P!J(sbs4dbOTNq|a02ZWxWY#8<)Xs~GUyI`3 z)sExm`=@BFt%u g5LG|?ZH&dk~pa 9{!nm(HH^%Dvt;^ zGf10=0q;2HnNGP2P*)4LG3yEH!xQ#*;1LLfO!~}y0tTgasom?^n0e&IYiJ0OtIT_X zIwXq^#a;#}HmO0cp1& G9!aJU@Z-~~+n~-m=_z!Pn zX4<3iAzzG?<@hF6f(N`=#2t5%jtvV!(Gu0GqO_-kn`GYNd0UW?j6G<_E&%t=2s`{P z;I!+z!-oG3%9YbtIQdamRmj0^&Di%0!sYy$5A^45! hgg71QAOX$$a#Y+p}@AMOO&L#z-4V z75eQts}VhW!k+BH@Tt+;u$~L2=d_6&7rI0*- _Jju>9EJU-OVGHBaQlSEZ{Qx$(zNl7UMRBl{cpytzC$D>dnz>I?J)m=BoBpnu! zw%)A?ITt*pQJ2NtHv>hAT(jlgF?(YbEi;;`78+uJqJ0g1#L7(fPOmW%2$x;<5`?wW zdzdvYK&tnM_d$JN5C+>Xs;v$11Ua_-IEqes-^PC1`1R|TfF*9GZT<}=X{d k!!BldC(Nh%T(EaSf7 x#a2jM=X^U25ePce&8paM6_71GHQWt^E5Df?RdvkU{CuY;lZq9v zZy>P0k=v;gL p&5@hQr~+VIo0BY1xTT6_q0G*r_+1r+jFn zPpgZzS%ZCX;pOF}ld`HRx`IA&2^@V+?6(w1a-d5ClLRnWlZ1rC!80G`T{~-PKTd?d zC7KFhbh*6$@Ftonn2iBnp%}|f(|itr%H9qrDJojfq_D2*0%!P9ue0d?mm7nbo!%nD z{{1wEg2 h!_9!_qz?PI1Xs)k5k-u{0yo;zrOwq3&!oAbywZw*Mt>cz z`5F9Ca{&0>?F*1(Hu&CcsIc<*d#|***L++eG8wQicSO}} buAZ-7oc9nMgyef+`+^IhWb}n1 >amktxSA^98;C&76FDWuk5G>Qu_{>i55Sq^6K$d!Fk4l=pRE!G8M* zE%tz=P8nYUmS~=gQ?o7Ld!ia63-PU)K%$kJtcaakwpi?B@bUI4QuSy65L!Yc9TCB@ zI^Uf?efqSP+77^=quia`?1VN4Dr5%_edfDKMH?asE_jcqa)&qqO3hwkp()X&uZs+F z&}AKr2$H!84(j_07);0=;=xsCXXh`(l=J7$pJrvGb@WSDFvdtyNi(S*UR7P7#+&q$ zwXaS&t9{VC2V Zc5# zQ6HPF~{K)HopzHc$b%5D#90 _M14(`D$#8w{f?ngPvyqe!Uo})DL$OwT{4sX%lTTgoaS)w)`$(D3MtSt*f67@ z=*gBwUizmGR({5w0N=Y4y>k|y;XKoWiVa&xRi2vW5EPXX7^>Mh@w6QArAtft)l);$ z%?`E4Sr-%^LFMHS-KS-HJdjVyCHGIY1#oU`ctcQklu-X5zCC<*`ba)AD~maXi7CH? zs1a- chE*Rq7h=B%l5p zCW_Xc+QiH}P%-Q&V5PC4M=<6do$jdpc`5(0MWnH4?D(y}2&9_nBjXp^M#jN6(Wi|r z2XI`EnlkN}bZCDC;m`Gx0dnwxlA(A%Yjiqhs-oA)>uCTpC$!=X62{cusi_4G`XU;4 zIPBEszpw`?d)b~J(*Kc(T$edE)ur=oMfMCdgCz`*=xFv1=1KFmkX!spgv1xxu;uv( zF=ktigi(1pIpq(oL*+TdgUp?^nVDN=W;Z_c+e)C!VAX8u$*pbCDI+E(COM`>=0@*$ zKw^P&V;AX`SpY5hB4zaCNZ^+CmhC}rgKsF90hPxfV|l}A-Z>-xDZyBig^pg$J@@q< z+rD4v{jpcSNY*X-C>p4vwQd##&fL9~@eCI#z|w4qumCLvPDBA~f^okk%XNiKNvD9; z%k?`Q>d?8J 7osNe5;<8cw+ z7MT;_u|39*R4wI=U|G;oVR#(vIk3NU=i3Ex)D6`qliJMA9Xcj;9dQC`UgMvhx`-!+ zSyH{L03mhpQhWW0vHm-;yo}*JMBmW$MK$V%T^5aj#Rj2?x(+*M{hr)FDX-Z-48rX< zsG!s$<;PTYA0~Pl(-ed36)yM+u^J_6@XEVZb2gtRLKh&mR?9kl44W- < z+MQDY8v@T|jN=NjJ#VvkNiIC 5mhT(baS&xioGa_^f-&IN z*#QTHj5?D? RqNC(*eu zB9M5`I_}v)U1=arX_GSeq`jS%0=hlO$^XVM7s%A4!DpHQT%-IDPRqy_qaJ?Y!WX#- z#sBu7h5OmH;$24Og+I?IyaQv)hc;s l9NAD$ZCr9`DJulD2ARv)e~q5`&E%Oy@T#eX&=Q46%9Eu_u#l3;A+P zie_%l9x3-ETtohJrEP@^K2q++)elw#h_W`1A=srI_T_*{#dSZ6y-+k5o3wcJrG>84 zf23}(?m$?TUr;ajy|!=#q$7x^8T-9$XezH2oe`eEE_v0|;K4<#5xw}r5SMIm6V>E9 zyRh#9jWKB{YEP0gN6uoB%=^g$avfm*)lol|hJBs0ijdK%(tN^a^|eiXF2-i&dEM%% z5tpo) >(MYJHG? zy(_2I^*4`>KPE9h`ZpRfav8KWHQju658{MQqEKwi5stKBLeZ&yJX+V&9~sgj-(9<0 z?)gw=rQCvBb&<{0{NS>Wn+;3c{fNjQKrPD_*2hQCs6S3h8b;r3E*)<;YaJl*Vb$oz z6o*&)I?fT>H^sBPEF}&Orw>I3v+le{Pfs6G$afqFFm^$q)8EGflc#;p_r+e}dG9%} zSUo38%dzJ(5vE|*Trf#gbx0$y>0=rXdNf%I1ZY3O1!G^TY>ngF)hD|#hOH@TI~pa2 zn(mXSJA>tmDz4URXSwLvW&`C<$JCOAz=}M|oDiuV$xTOhd0XQkul_DguPSvxf{gJ! zhaN(i`2jh@-D!y#Ozic0cylsIGxej7Cts!C-@U|k+m%CJ(`7-wHBo`D;{P5Oy2aQ} zGx-XoG>8(O6E!e;)&nZ}d{c~FP~}en+YlwulB}OcOzMqH_;>4uU$~`R83WdN2wQeX z?3+vEY`zFFVM3=ucJIIQp#J~>4|CK}y-!g3&m9jakyOD-(l)SFEv~LPQCC&eLFcC2 zO@dAFipB}F{h{!Zu$6ka59DW^2fa?~11DpD-uo0XaUYf2-E?GTx@-*jlW!9y#`_|% zet~~~Du%4b`y^GmgP 8SM a2-UO|X%Gt(L%&BK0DfS-X1x`Nl!f^R x@YU!jh=A4KZJcq tMJv$z&hdHKuQPZW!s>J4^9jQ*@?|VP!lbKrI%4`Q2`4a9lU&@; zw_wZv(*j`MLr7YCnAfbVyWi$F-o 9H`1F0Ilj2Q=G9f` z?)w1fDsZCP6hS_Y0eG`z9dxe8cF+U<%74=4pTeCapHtaMeT7G?;B`qwYgx_Lxm}i4 zQ?-i^DS|7kA4+VU*&+uv*#3S)ABBWzyJ!pPIS13lI9V!wCCMi7%v}|+wzS-h_KEk4 zw1TlRM~G5!vz5%B`P88h+PEhAEJ{PT9s4PFz@ 8h&nYiS5Nb~; zpdN *d@*bV%_`O$kRe5V+DRz={ zxhT_9=-wYcuE4!LYfVj+Ioyq$vMlBeZ<14f;nNxa<$7-Lj_QhKhX*U;Js1T4C !khJFNSGD(R*LaAWbpcxFarmx9? a}!xk;$Def|wa2=yxDyQ|l1zp<>A)_WD37=RSBRy#lD2}H1rd2JND zjS+~tgfcaLN`7-bRnc;#K+P8p^P>FW9SPXH`oZ>~hv;ZG do)R))HK3T1}43~Z*pI9rrp~U)wQ8GBbEM#S=$ar z8bd$Kv^gl6mI-v6-=z9m2$Perp8pjp4US59BUOa3sMMLRGQE>FwHvLiUyEDFA8f&y z=(Du*wNb#H@2}pZ#I-r7c_JNQ(2Iz&hCP RRb&6M8gw=;U1ZuI z4Sv9~1H4C#&`4fv=y7b822Mw7Q@7P0o4l%J@G4y8x4ayO4d!sualqSdfH^_mLjnTv zq$;9i{D>`~DQd>sN*FE5lH66B_Os^XarHD}rC>ks(p%Bv+vw6N`jcf8*vawj1kJ(f zX$db%FR!MSL2G6Ld;E*<8zL0pS3ci~<~0i}%k|Oz*sJGsFo!m1&GNQ`sm9^q;Ui-! zt33-ymr{eK%yok@Q|+~8-X)yG=F)I9UrPT(&mX>XM+QwQu>wj@E@?C09zjdxER7+! zmBw#+EsfZrO~1_E9AwAl*~T&z%Fcb~$bBgRf`;$GXN(XyVp({JnY@eFSuO5*TLmbrnNBAhzR`Ph5=wj+GmdA-;i&-Pf^lE z;OPq^n+OB`8+&OcNpJXnGG_`21!jXC`a`=+BgdB=Z RnzpybATWKa(dPuyNy@XEz#H%ck)q_)f4Z`UgB5Psk{SKV zQsKnEg)5?48m 6$QMW9g0*fC?}p42bE7xD_}N~>rq(zU{nu#Z j69(BoE&qbh#~@F+;JA4M^^^J5wOb=ki>~ZOR`WsfDnGfB#6d zG2C%~f?f`uJ+3k`u7!pLqvf5ob#b;A!Y{cs;(hJ>Ic199DVBgjGL=S9?epMTVdAdz z1JFvC2ULh0bc3{YdPu3}m0V(Bq*Wm(+T0pS84K+KnVB}c$sQNmi@(p8t`=xlr%b@x z^ ?HvDw@Ft$>g}%J`y@S zIz6@d)+`pc<5Iu7;Lu2AVrm@BCUvwTgG2|Zqn|BBr(a}O*9sXu6M9YzP*7QXSHk9y z!=O3xherCd 3k zEKfQ4zR8%G +W4ehdEaMb zXBIV(9yPK2XoPI^5AG1d F2DQr zJm{NW!!%NlO-2k*Ma13hXyWX G8W?HUg;Nx6 z3<@>c!<^vScpmB^Xyr74u$c(eUqEsDel{T|1Qq7(iX1y G<~^IaxGtbfpH&o1>C{t2p^o??F%Jg15*QmLp$qY)IZupVkT{nbHj!IN?;>|= zE$b`h;z~EO?@Rx9!+s)jbSwdcAV|=jC?VT^3P-0a2b5L0;-g25cxSTG{=LaJ3T3#p z%M|WY+92NCU804k!ee@4)xEShA<(Nj3Obg^P^2R#e#4sswqN?tHWdthVCOY$0$_*D z9)#*iuj?;-7)=^>nZnt}9zd&1hy=G=rlyTIZvsh?&npbrQ`TVT4R=Vvd1g8B&0M12 zUhZEWHIvlhV}9xIPa#?67R_U!^#!!fabT0&QeLvbeiH`mhQ!L2) @3fe zJ~K{vaU-X=3ZTg|J-|_q87T_)`@zMOpf9jxf6zBPjWq>LIw_!)EHOmi(xxF%rOv;0 zG@TK$TKw5HE}GJRNTba{`5CKm@*c76je=e4hHo&8r;=lb9i-$uzDNHY?nQPMg@=dR z@nYp+ej@ J^GLMT}q8+)$L zzROU}P2IybibK@fZ@~TnDE24#uZ17KRr|f?ajJf@SOy?i>UD&C-0s5E&lQN`)BDM< zQL8I&h_c!hj*gC?nMapN-+WRo&EJ?NQx9VRnyS_qgS3r#dMJWOqT}l*fZPYYM|S<5 zZkWJIr`opiF1!0()Ty|RJ9-RCwo0twa}$15d{|&rR(JC_+31$nk_uG!;Ux|r o|%i|3TWpd_{=bz38EnW5S3bpsLlvQRX7qMT_mK-LnSz1%U&$ewnG1-ENzm zGX_XOiY%k^Iecrh6R^|TONV3xVgEd2uZSN%=0mAbkAZjxo1k+im*nGYV9+HSr@X3D z7|XlyU2pHlj~{sTX_uMhsN=A1jt%o+y!o)mLGAqJyS{+z>e(L+qQBwnr0WW}``pdX z$z*Z^XrPH6cS0pMH5$)B^~Eg@pdK@HgaDHKAu*zrwaTrtZxR3aQ~JKCdY^&K)u|=W zJUNT~hQjLiKehdr0*A)d)q2*49Y=l_R$}8>7Dh=lq<2=A5|e!Z_uCh%o;0@#?aSg7 zfF`SJPq~+ira7lO^p#Ze2=F5NrP!GNDt^XQSa;OzftMid-}0L6g5$*u^8C}cYGv*X z*MyEm!3D3KzDFh2)0OpoO*yG)>x~cNY62hcz`Z+rj$IIIn~4A<9`)>*>Wb@kE*eOX z$76G~ZDGhV_C0$Cm{Z&>0HcNJHk~?jYP+7QKzHsbV6v%a*-ub&N?BI^o7`&*fb~@F z3RI9hohterenz+f0}6a;?SLNHpVOa{}g67$~-DI-DHwnWKSfW2@P)a9ht+S_)vN+eeLEvWt4OkedWhrPOpBjfiH_lYtUb~ zVC_SSn7Wqpz2z_puPkYtfz;o~_j-W)d=op+NU&*Oim8$qpbq&znM#cUAn{-aIQfIF zNE8-aPVhJoT2-V{PZB$bk &ytyYnj3_;pgJ1lxV*=~~KE!fz?;|+3 ziUCd;;8& Qjmg$u;81Bb2t)o9l>Jq)H6+2L#`4i&w?Rkm+Nsr**`5esw& zJe_Ox#&7DNi@Q6a8wKC2eqG044ndDy_2xN9&o1Nx3;yslcCYObqwB&I45ra=$^TEl z3wU!Oi~a!jzzwkN@A)1P2p4}c6wjL$oPs9o-?UeU^bQ)v3De1zd_W@*vlacSj85M0 z%GWl~t%cFHv!WQx+pM5ZPflKgHJCQ@*g#07=CDu#L2OnTM;Vp0uI`~aMUQV2A6<-L zbc1er*eCl?AFm3vItjchxqJWeERA||c%De0zM6A>3E <_Ni@V8G~R21HJ{wJqTi1U!Z8*>@ |%ZuaV_FIEru uzz7?Ll#ctZzP>eP#x$%#`vP4WNZg`;>OUensojZ@XFg~z14AqW|N z`aIcDDGXlR^|Qi+I1p{-fQXMMfJ}yu)y@|)Y%UCWUc?t-ru1->7>FL+ga{p7p5gR* z*5Q6`zHdbs1Tumc$saN$ban%JC5o@cu#N$6MgllW8tS2Mce+XmES@2=O=YphADAn( z=nf1V5z0dyOo$utfC$=i6CNMsIiO=L3_tzTMN&T})vI%;`{b+fDH%01coHYz9Dl`X zU@!$Oa6g*n5|}bijMn_5|B5LG1Tv%WaU(wL zCj?}*Y8qJOA&eXpdUrJBoDkC zU<5S%*lnoE!^YP*o7TAudIdBOTk3-DO_PdiL=vB^RD9ycI0*QGlQwudH1NCSp1rrX z_t4Jet+wAZZgW67XCTcT#Ht?W$0&m8{QNbpBlqUbje^PJm3M}^T)k69+T<#pFV>xI z&NvTYFwdf*mbem@V1(c42Sp3k)NtJ; 2k;qF-^k z+^C?DMi|i+miDU}nwf2lf;Q+@8`JnCI2p3nF^f0))U%4dNkVf5W;n32?5PUWDlhPc z PnyZD37 6e>>c1+#q)Vn3jQ6IDM_5(ulG+h2b|lf0S8YaQ0R0_<9ojB1|(uACF#+{Z4veE zfd3AD7m!*EboC&Z@!p@gbyD@yVL)PrNxJ6(c$k;Ch<_*E0Yw)JUInbaESUBn<~kls zz00L3b#A~mmel{O^9P1yYQ;txY{*H3zcyM^TL}V^!Vo&aEMKRTkKG?-cUI{BQ*HnS zW{(jwbS%7$BBXRay67)%eRc^Clo{Hnhd|P&9USEN5IKW(y4)!!bkYAzQ1%T=5ny$_ ze$HLYZZ%|H@3#^HZNZ%MTh(9Jv#BQ539=z_g>m=OeZpgRTZb#>Yk|zM=?Qfa-SWk1 z9s|KJmMb7uX~#}_{QzIi2v9sOj|ikqc}R3Z$?$9mtaB +z%8jWF>O!|dXhS{fsZ-A%Y6TSPV4y5 z_e^sjPt+9e2}3Q=H&`j7x{VdBOa9kk9(*1gZv_KWj3fkI1v^w(pcw=1p#Vy9w)TOM z*r~bS`)W;WL^0Yq*=oogNoO$>#CUAH2eR$@eayYK6xE!ql@5Ut>SZgasbMk}z53A8 zvjhlRv=B9j=1NbyQNz)^lVO#Ki76SqSHS{Kvq4R)3G?^q(|7w9;bX4fMNtid`&8|( zG@xRR1RM}OP;sYyj)Gu<;-W0-UwmVMfo{Apv9<;>+K9@qN)u~(yk|{u9dC2acQyOy z*~Ax#zM^ )frFarrBHne!m9sS+D4~ zO81^LsK&OA$G1W=#)C*k>u7wlW9_wpP3>{0L#b#WcIMmL+a=mxg i9)EPQ16&=FjG^zmHnSdS=H36h!D1dt`3X-ph6 zm ijNLvj87irQSx^^sgJ>A#M6vjgTBPblxU+8eqY6~sfam3&x=a6 z1&+6A%FfIZmkfAC7SNz*Xn$3NVM+o>fnNSBfEhr}kHHY7EinAFrNV5H`v?EY(p1!c zFhHW=EQu<48D8_hZX9n)Zfpn;!2(gk0=TuK7B} {c& $ zp^2^(T WS4~**P>MLjMxIT`u7hk0EXIIQG9t6Tl9!aB*?Psco@5roRnA75BcoTnHXNP;mYE z_-S-s=s%~T;Q2F f5}Qsc| ?e*(Ao6K&N6|y>Gq>!@H>t|F+zPz%yHpJmLGISEgbd3RjrEgh41rGC zhDKJ#xqOerh~_x8kcDC!NFA@{;@BhawQy>aI+OG6#JU>Pmp;u18Kv&rqlId`|3pCs zxS5{5+)`0MQ@!U43j$}m5D5R%=8SoM%cP0{`SalGj6yEx!-zaliyCPBoOmy-T%??s zGDbZw6V*w-9C8Z{H>&-tvc|pvZZljcwMK_k*&ak>;^O`s7g?9NHZeX1={}4cCZgiN zHn}NayzOi#p4OjUJ LOf|QBVpoTnlYAAi6 zD~kxaG5^SE70|kF!>;2!n0sw4eObE}FxBk6um6qcgo?w7_MAm=s~xydxTl0;+10xn zU+?T6wU)Jjc=#ihkd(1g<3^9Kzr5sp!T`v@0LgsfKh~Xg2Q#YCf?&Ms++hf0Kmf&O zSF%U7soHuirNGCke&_vauDAgT^ssYg!%y<4QpJ8U@n2e*kkT`L5y1jrrJllXz@P7L zpMXjqM~5;(a+DqZi VIWYz_nEw;*Uxu}h}q z9zV~oq=A0?CWnJ3Sc}_e*aElYYqP~Jjte${AiUfcH&`EFp~7xs-yN%t06U?v1k;oa zxaQP$Xmh+DpCf=gR_*eZLa-V1#4Rmgduk=85X|Ti!Jd5S!@Y&`%lh&@b1%q w`H@GbhKDD8L21lA8qVS`wy#j`3=oDpe&m zzkpaU%>!XpJfP<9$EqIxMm5H>m%h;acdw}=s`H4-@R-^{ss)JUyi@O%cU`!JRI26z zgpA#OThi*q!;zyyo6`Q{{-w7#wrnu?n6V7Z;>z#-ug4Bw&LixfQvdjRbhP$RrNL0u z>$Ay+%uLTLA4a`WRjP=)>vf@!Vx?OIu;{HSz_s48v V*GkitYG1fZx6A z`ZPi!r8+*!IK%zr6X =eSNr~YZ^EZ~Ue=jLU03(> z)Z@pGJD|$ix=605+iSJH($4K0C-q+jwChtJ+===>EkF$tlsl!^NlS{@DY{4YtjB_) zV|F?Fi)B=Bojl-TT!^&LJgnZ0I5Mf&71F)NOz4C`bedU)*EKXWejUp-GE>(c1Fac> zz>RGLH?|d^`+s^G@3+u#%kDe`o!GO2HZE)k{kmOQCs(KD^!vP(lZJHH8z$~~&5>=; z;kD0#(MG N6=ZD4Fz5)vk} zv&vhE-M#_@qVJAAyB#u)(ShpYz9adGD^)ZGH2^M`G2^RKo#)#e2A2=#SE_H3JyM~2 zwxOb+C;pD_DLE6j^{0A&Iy*XaF|>V=_;=Ys1_V3Eol!k }EU z%<3QfY<&l&Hvlnbs4VqbzSTo|a`(4P(C{saSRXxT__kfjNQ+|a_S@#>s(gN<2;3@7 z1X6bwI^FPU&i{@tj* hRp1W0&Oox{!YsVm$9P>7wF 0Rc@8)ZHeuc u=mZWpLPHG9I;fw2W-6NS_hlQGR&E_;$N#SB87`sx&j@?o#MY@6*>6j<95n=Ms`M z>i6$cnqb@laX6cA1?(Nmy>xCO*!-maf@=!azB4m24?lSk2tKLN-g!+&xfKs4A2+QH z)^FZV-`6H{))uEE{La5@4FcO)__igoypo(pa$BokHa$W8_*KwOO!dSx3g`fT#3p)N z_MQ#rUEGBOaUJOKB)`9r29BtJb4TX4DvstGm6}eG9gNK^@l&!ipgZ}i pth;G!edb9IcgUms@JeJl9i4`Q+pa&-4!n8KKUP^xwS==+b?K4=eN^ZD1V z0{%sT5a`)NQttIw of$@heJ zDLoEwwDt#qCE1Oe>uqWT$@8bad>RCL#i{LC)(0*1`5Q|OUwD*%RP}j}RJu@poAOCO z#XnPT7MB#Z0gYAjr3zt4ku+k7dJGbe!`QM1Xz|*(N`$g(cq@lBr~s`+cx-yKjIrcQ z*)O8k!ZK`O^mA3y+pm^&w*YWp=73Na&)aH{3mrxcTy3``wXWCeqxHU=yn7crTv;gX z@X5>7=7^u+kvx!YOS=xA;Rayj&dk}&B@=SF`C9v0(AEvIE6~WJ$wHOhUb~HU);GNj zcj`*AeUGxhHox;pN=gEPQjed-pYlJ;mIi(eIPMt(b#Wzj=OzGljC^Ps;dZ;nhMaXf zq+gqH{bPgURDde1QUS{P4$wKCcY=+zow-Wa<`CoO`0Jr{=l~b%iF^rN9siH^CtBJK z+InP+-TjUv7l!wRHYvl=$L(l26Y#r(@aRutM(n+HNA}Ae#(RC~#qG7ew!N_$)DUPR zZ)<2Ty)^OAMbL@H^0n7~FuVPQLjg2<{ZWsP!IasNkdteE#~(i4vcUgW)OkiV@kMKY zLKKwVlonc0Kv58BfzZ@YL=b~SM5Rbj6hoILErLLhE{M_*q(yoOh?FQ@X(CM`O?pQV zDGIzN|M%W?Kd_d|HIq4W%0Bz-{p{Z?GSX!iX|v%;auYzeQnMvM1S+4q)E;@lm=M$A zsAX`-6HObWRa;&{17Gh~25SZ4*Mk6`EfLXsezPq9HvA-yHl{)_j45XEa9$xOx3!na zeO_27_QIQ6dfL?U_Ts}2?zEBeMMs%zk1Co*>vE~j!_ph4bzbinF&vi3%=;DioOyr+ z*@ip9eIy1FPwbf9Nz>xK)AU0@p~3rn`qpB<*(uw!)!dkljnuJ?4{s&()t0>Mc%EPB z`sAJdnt(P)$6mYn>=&O!2>s8?jaBKdhs{CSmUGDyl^0?4N>4p{V(#*5I5M=PD8RB> z(n6uCWuxRIzYiszt!N6KGxbxp+T1;O2H7dRt#h6^j=i|pD*R33m1+)uM&3=9pFdcn zCcxhX9M;SS3e_A6ABL|^wtd{Iw?BfABEFH(ed9I7&-*IkLi=mCa}OTeGA_xv(OD`< zc;e3{wU3pZ;6OjoVkkLI)dDTAdHdpWZLQaI#bm_v L_#82IJ}gc|%D8XxrQMB*B)OU&yULFaT?&b$#@v-~ zUI{+%lQl(h={1&Sp}cEFjHHY+N+(bt)BM1mpk4d^XuB8UmsbHTiz!&=0`Ku-Z={Dr z_X6QPazmmzd%IcEDCpxp{G7A%7q*6j3~}db`Di5{&)T2`i`x#ZVrt)R4!XDU 322Sd|E$EIxMpcqMCjG~(ODpm$oR>G}PM zVxC_KR!l(7&r4Ac=iudCzy2W_WOaFqivvD+ux2XfFH}OA6t|(i#c17j+x0Qn)YM&O zno2{+a P^TKZyc4~%r !? }Ss;9_|?m@hqV z>JJ4Y;9 }5J zJ@iq@#60fKs eE+IF!qHbINKA)>wgTgAc5IqDWP`N4U z*yzniY$ol`mZdQxNTk+di!B08m7xEZVP5})4We~Nk;vEUx9q6K43@GIgoH#mWB>jv z%?TDt_gP9$PEL**j@0W@QEU|~-FFF^$ _ zw{5}haEOgOs*ZvW9k$LTEt&SGl4}$=k1TDdJEhC#G-64|q8m2fy_HN49uHKUMSd0v z^J0}N2peyb|MP9?kxEUG4-?Uf#{R (cTF;HDqe{yd;b&emg0E%j%xxr#9 zVF++$wt+t6>V28kver>qS!n}J=DGgw BuB!_mm>tUo@6QP!KLqP*Rznj0uJW)_2UOU9Q@#N1xor&$qryn z=Ul`UO3TQ6`05d3co*Ii)w6kh%%gTj1~Rupv&6FHn{p?o1t5wWN{%mV?(AH{IGi%+ ze-7fgG7e1bhm;}VBO}|1Sy{}{Abe}}(Hj=8M;Ec|mrf7WEgOOPL=XaL{7De6eFcWz zkpQW=jJOY;91+U-mnvPvR5Iovl4*#p2;fM&^`2jkeVvw?hbsjF>d#-kXx&5WtChm$ zGJAfX>VC_-`3<^3@9m>$vv (nE^U*F}G}nZhi~ zghTQ?d1+(*Y{odvCI`Q;nw&$_Z=kd`&VgzEtTLp*yZdSS_C*!L_qx2E8Pm2GkyZ~; zmZ7uz)d(j?FTr-(PaX)Q)~R3WtNFdXCRU;+S{XAu6&3wH!_#sk!^fj3jhybmv)OAa z>6V{ro{wezp<2>hNdN3BCQ;orMQAVpX*Tc}#_4axLwq& Ri zd}#&SXGgzptDEG%T}EO2RRpPVpkH|iO!G&Tp@$VdwA-7;ubI~Vyz55Bl4wzve!mHs zbRSy#En4DVIAOVunRlmvp1t3l=9jQ6Hqy)}R>vq6ca-4c1|QH7Z5kC`CAOZ8Gx{~d zKkA>&ym;C_{68ZvzVJ>GEETEx-Tva^H1=L$0@P~@%8A&C*xY^3$@WRF$_1=x;jO?% zrT*h_SWN@TpI%$WaudJSic6LY%}_s# `I=QV2DK7wDP>!R9cK442zZ(Ftws95T{6@2wTWcs=llJ}2O@6ayP z1hQ!-orr5ch3s8P7cCf#4C? XEC%C;odBjAO!1Uo t z&C)(TyCT~f9G8 u$)h8w&3Vv`v#reU32$%wS_>-U