From 111ab4a9bc33f038f85ea0c9fbeb26298721f4a2 Mon Sep 17 00:00:00 2001 From: paladin-t Date: Mon, 25 Jan 2016 16:50:28 +0800 Subject: [PATCH] *fixed a bug with nested if statement; *fixed an indexing bug with list; +added a new sample script source file. --- HISTORY | 7 ++-- core/my_basic.c | 23 ++++++++++-- my_basic.vcproj | 20 +++++++++++ output/my_basic.exe | Bin 354816 -> 356864 bytes sample/sample07.bas | 84 ++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 129 insertions(+), 5 deletions(-) create mode 100644 sample/sample07.bas diff --git a/HISTORY b/HISTORY index 26c46b7..8091fb3 100755 --- a/HISTORY +++ b/HISTORY @@ -1,5 +1,8 @@ Jan. 25 2016 Fixed a memory leak when printing a referenced usertype +Fixed a bug with nested IF statement +Fixed an indexing bug with list +Added a new sample script source file Jan. 23 2016 Added lazy evaluation for ranged list @@ -283,8 +286,8 @@ Improved memory pool Oct. 11 2015 Added a CLONE statement/function for collections -Optimized LIST indexing -Optimized LIST counting +Optimized list indexing +Optimized list counting Oct. 10 2015 Improved stability for nested IF statement diff --git a/core/my_basic.c b/core/my_basic.c index 458caee..6bb639e 100755 --- a/core/my_basic.c +++ b/core/my_basic.c @@ -6108,7 +6108,7 @@ _ls_node_t* _node_at_list(_list_t* coll, int index) { coll->cached_index++; } else if(index < coll->cached_index) { coll->cached_node = coll->cached_node->prev; - coll->cached_node--; + coll->cached_index--; } } result = coll->cached_node; @@ -12082,6 +12082,7 @@ int _core_if(mb_interpreter_t* s, void** l) { _object_t* val = 0; _object_t* obj = 0; bool_t multi_line = false; + bool_t skip = false; _running_context_t* running = 0; mb_assert(s && l); @@ -12101,6 +12102,8 @@ _elseif: obj = (_object_t*)ast->data; if(val->data.integer) { + skip = true; + if(!_IS_FUNC(obj, _core_then)) { _handle_error_on_obj(s, SE_RN_INTEGER_EXPECTED, s->source_file, DON(ast), MB_FUNC_ERR, _exit, result); } @@ -12113,6 +12116,11 @@ _elseif: ast = ast->next; while(ast && _IS_EOS(ast->data)) ast = ast->next; + if(ast && _IS_FUNC(ast->data, _core_endif)) { + ast = ast->prev; + + break; + } result = _execute_statement(s, &ast); if(result != MB_FUNC_OK) goto _exit; @@ -12159,6 +12167,8 @@ _elseif: obj = (_object_t*)ast->data; if(obj->type != _DT_EOS) { + skip = true; + if(!_IS_FUNC(obj, _core_else)) { _handle_error_on_obj(s, SE_RN_ELSE_EXPECTED, s->source_file, DON(ast), MB_FUNC_ERR, _exit, result); } @@ -12167,6 +12177,11 @@ _elseif: ast = ast->next; while(_IS_EOS(ast->data)) ast = ast->next; + if(ast && _IS_FUNC(ast->data, _core_endif)) { + ast = ast->prev; + + break; + } result = _execute_statement(s, &ast); if(result != MB_FUNC_OK) goto _exit; @@ -12184,8 +12199,10 @@ _exit: if(result == MB_SUB_RETURN) { ast = ast->prev; } else { - if(multi_line) - result = _skip_to(s, &ast, _core_endif, _DT_NIL); + if(multi_line) { + if(skip) + result = _skip_struct(s, &ast, _core_if, _core_endif); + } } *l = ast; diff --git a/my_basic.vcproj b/my_basic.vcproj index 917d5f5..b4a7a34 100755 --- a/my_basic.vcproj +++ b/my_basic.vcproj @@ -329,6 +329,26 @@ /> + + + + + + + + U7XOv}9Q_ssKLB<%gapVyi@`^=eh&YYQZX6B*f zlh!3yTkkfpu>W0tVZ1^Acf}yF7Oa)Q@B=d#)_RE4mwx6^Y&?6Pm$J^yZUh(%S3)F1 z(dJI=ST;Y#`Zr%)hq4wF{ed@^I<$H_ifTy)Lo~dfct0tE1@nCThVZrc?Z97`f?H8D zhE1LZLm>PqRi8@zC26}?mD%%E59t?)e_*<)3`t^sj$FCeNA52laoWNI%2ZEtc?S9_ zQzdhGGZAQJt~h`e<= z8a@l9423LPK8;8LMap_~<7nd1nLK_%3+QhrR?fdGVK)MuYX zvDM)*9yV*)ngAp%|ozps(bB%E| z>zkJ!v$ZyNv>JG5^A5g%Z_3nsK)6FM#78yHAz}nLd_WD8+)DONJWw1^cGT4XL>s;6 zn!r7vilHIhbyn*~P;RN4a(|&nnF`8vL5e)eC?|&kt3g1zpPX)#t$NH{?n(K{M9Ul$ z2yw`#K|U)eHUTXdkQ9J$4u#bd&!OnZ@DTYRQQc(=4<%yfgolF2M7kWc4%88(HCMcj z8o+r7ft0Q&@3Ws{w2I>?}4|2FkoIYR9@Bw}O%+;eT&h$lbHFKO< zAn*8lKRep=TlH~aZZ`&$G+WZI4Yn5wM|8TkZ&&84aN~?PBpynwC zHTqY6-u$>0uKa~Bvh-!2^Or0S_=ftV7|LqymfdQ$?2;?IqNF45=-a95bg)!`?iRu) z*RPSIyoDY49N*Ec?=@h4_$XjRBUeMwNNfJJZydY8Tl+;d?j#lYKAm{BUyh?ysMXL~ zcOme}ooVDKkJ7flJ)yfD@X0kUM|qTXveCcN+aFrR53xOr2x2GAB4Ys)`FpR#_>)U-XM4dPTYCE}`6Ehi7d3-F1m#=7PlWFe zKd$t)H3)upG}s<~XZT_8+m+t7M8Nkiy?rGTehai44c{ZK=8%|ZhfX>gfs0`2?VA3{ z4G`B1q_76DH3<~~aSizZ*g6P40IngQ0Jg#hz`Mx@z%j}231IR8uw@8*0KAEO0K6j& ze)rPOw?oqr0K_rm1L7SS@By)PD11PCWhze%=;a{n#nsfN?IzUKro9~s#MP$lA-vV5 zy-#SXO{*cS)utULq}8S!C7ji!og^C6rky2B)uw$yh^tMzKzOQ6yF_TKO}j!^txda1 zNUKd#31_uw*9c{`Y1eC_$ZLM1$ea9IG12@^Krs8Ls!i+Dl7*nM4M`GM9+-3`vg-FX zWy}Np^HpspvLgQ9wh830GvE0_-qG)*IcpqZlolW1i2ct{u@*;gLALaqLezZB9{`uRJ4CgiHrtdhUeexaxn(P68^ zGOIr5(49%PZ}|@$$FX8=4R!c_St`Uqq!UvM4L=*2E4{FWck7fOYR>MoK=_|_ z>M6y4$i2dnq>KA`T3C2s=X`^qzOS4U9uJvZgfaSLtLFXO5f+vqaLxTZ{74y9zuRn7%>N!YVcLjLDl3lqW{8ivhz3?#qF07;I+SEDS+d2%A#4wDH z>s;)&{<1)6swh4zK>d6zzuGxM8hx3!48Ld+JOi1_N4Iawy}N9cI(@~T?(%SVQyg_} zn;}cJRuhq?J{JvS%aYS1pHYA4EplTKG{^B#U2}t%euZ9W&vDp919?_57{(VGa@D&| zUeh(sFQJ6SXsVlnbV?pp$~`0ErKy*z21lG`-iAF^gZlX;9?)%KjA6gku&?MHtD)kU zt<8AXG9OoeHSuALJ~ezK1iqGa-sY?2Y%b7FRz zqoST;@%*=_gkD!N!G#qsp=`w$=JLnj%O}(?E})g`6*q0IE63fCPpeNoL}(bV{V&;e(?iyTtpaPzykMy@#B6T^^@aoHv&jBVOvFJbP<(%cp!p^pptd z%N|?tg)JO?M0}?Ak)rkSJy1@43|_^}Js$GzUW^?;+I4>5gAo39k5Pcu*fX@(tNH?) zdAAhF@Pcc0u%Nx8yY%i(T zTs|tcXVCsz0Qpwg;m`_~t$o=lqh$AyKUSUd_@l8=(%-N11F<137M??ykAbuA=5jT* zR2ovw=l15(-ML%hf>=0j8<*sJq!37^-Dh|-ZABv1@CV`sNEToITwH%CrI25Wvr%kJ zpZ=YeG!*RvcBIn3tOlN26|zDD`p7BdyZW@VYy!&wqZaD=gu3?}wao@tJ^OoQioYpLW?V6f&3nn#+E5tjq3`o2|aeH}_rI;T=?y zZ&kR=72X~Q6{~VqU)dY7B<+&g?G*3Q@2phq;D7Y{fS`T1|10E8kB@A-WR7TCK22LS z`fn`#2cXXEpv%H^CT^m4=e!bt&h)+xZ8AobkIS0#M!&RcRqUJzeDAX!M_ z(*t@*=9jo@z#L}da}uLl?D_=7TF7VBH*5LRi8=o7eT?{ZISmur)?#e-c=i12RmOpn zn19xJWZaV1t_71@v&ZJDvtQ$jl4eMsyb&I$bK99DLD`{``P!5u zwt^o{>Ej)ait5Ix+?A3N@SmeDSG~VRsNA^oDEiZS)-T zr(U(`SgtVMLF$!!{`!zS-&oWpEUdtCL0D)eu+Tfz#=Q7Tsok2-tJU(~&f}k_c4lwz zyQzbEAJ4QJI%HW55pVn+G=^*Ml57l%;6a&F5Q+5FlzQNTwX z!jEU{Ax149I*G03mxs=hR*dIq!&0P}KHNDhRr+}xKQpYCRFk!3xR`~-SwZ}f;oXqH z_YPl2HH)(%`P>oz(Si|t@W={x>Q5tm!gr5>j0*)8Z-XA-z}E8EaI8W@!pl|~C1-ED zr)n6@J7o5j=8fTFGCNDw5qw!@pDsjKTW6V--7=XgR2oh)G$muwreQ?y=aG1=}JA1v;M#IygCc*KKuv>2*845Q`v13B$(A$y4*;6oDWB(x2LU# zd_-qdERYtg{yy@j*=Y7h2k(^qt+XeLdyP(&7H9F1qx+i0uJFH!=k3kV$c~JvO`|7! zN~8DkjuV3TsqLn!mbn(jI#zX{iI5;hU^7kT9w5c?9GH^ z%A3s3P3+D#@xLdoVT<_cN!@&vH$};*`FV#R_C8fV-#8 zCwC9E>a})Jvetfa<68XWJVIbsCz z*HZ>M1Q-xD8W`^3?|q$GwnylL_!CiigmItcK`Vqa_CAHKg6mIN4eGh>wDk$ntD8F- z=A*=0bFGFk@F}doRTNqczrp_=KIN^1b8j#Bw!C1%$ez3rLF(t)hT>Yez@_Ebc2C!J{!p2$Zy~Kn|W449o*x(PvKp9{4L#oU(ciTBlGy({9tMK z0v+vnRzfI4h^cUflEWqgD%(_qEj(WVW?hn@UD18{58&lZ9jF;`E zTsf)8kYbSe7hPx0d7=v3*awI?`%AbB|_lJI;|DIKHaBx>mn$=a3>aO zK83$TnBxD_{h#$bO2563_ngs23SG!EW@M80*o=N{YMyhs(i4~YEUvH3APb*CPP?@a zdEd?$u-257B0eZNQ!qkiy(CRfrV-T-Q<`S3mXK zpEO^6M4r49v&#NWy#>|wiH*t#KXux(#C(3L3EjhZRh!&_`mP&?nJIdlgC4u0%VAoV z6HrD@_9MQx<;Q)IFu`YO?!IgwABp_P%7wBvxhRx`#E*ok z)9QMp^P&~qdF<>MYGbD6JvzIebYKTRH9I3J@VKfl;& z*tCQXniCvr35G5_WE^A-)QLS;+FA`CQqtZ{ZGh#}>wC!0tvI%y{K8;!>MiVW+w$vM zjr_$q!IHI_ADj~}ZEDZ&%$a40*1DGMx8%G#`;b`lK%#dx`ca()ycu^ZRC=%;|(RH?7a(!0jxh*cm&{e*^rz_fkn5J!r(`)BCq?&!x zr9waa`qid~A=facHXWt-(}8XI=Vi_LBc9DXoaq6)hb^IN%vzu|y?G0ia^|<1TA428 zPd-GmaJ>ABd-i38@vqm0@=Y7PB1Cg?mY>kw#;SjA0rm6!umtYlm;zteLe14f?pBWA z(;p1rR~DPtWWK*}BA>P-w)bw(rL6dlVGqQSVIR?N@9x%C17HT^dnnhOdT<{lIn(Y` zoCiJmp(P`vns>Ox7QzIuQubP2VC&e!ugn2;v-!T7cR<33 z%{sNdBi4R}zis1%z|S5Z^ed2*au@qGsWwII*Ty<~J69Uz{4fCDR!;8_cMLdgZr*;N z(kBxZN0;o;{Q#7=bU$Z`X)=_X5ZTLRFjuEr=2X-yZ*HCAOt+9p`p{4cO_dMwUp)PT zTA8bpslXbKq4gdsJW(pyBA-(?^Y`tkj`8xjxSKG4u8^Ap=p_k@{A>$y<&~xim)$dA zQJ8HS{S2Fvu*hO-8&{LCsDrI#LUIT5_L@p#8bRby3sB@09V%RFTFJ>_vcaP^A;q-X zQsG+Ba#G50E?EgVw1t%ymB0wAnx`v7zE$SYy9}sc5Qj6cRRj!Sx}Ndq1PW51Zr#3gF!&> zD)Em2`yJ}o{SN?)CS8}hFp%XX-;dv2mfQTTKA^dqBir$n%l-UU^`|63zcqT>eEag) zDek7=Q)|>%ZQ32`3vD)sdI%|3Iqr_SurCFDWH9M5n?x1{Kl!t4_3`yWngLvtyg+2u?cFNyUEhB!#mZryp|ir7Ku zF_2(*2E%HAp_!A_d&+4(GPDeHb;doUWmsx61hQ%~1nT%-YeHJG#%ygWfey; zpzHEUiEBC(k1JafXt4E{vx4OVPjo+c?pETh)!hH)AO%*m`FbN^N5v#cQq!H?G1JA%IkUX_Fx}ftbx%iG)n{6Svu6`bB z!3KVFRj9Nyk_W9G;UPmBZho_yLzAp-QK$}D2e7jI)bHTeri(?p2@^D7;6s3=>{`HB z$XPcZkPtGLt3>#$4syFnV_Rq14Ghjdt_JE`g8*=*-KzJFgh3Yt$=VCvG~{A8icvW8 zu2*JWQ~iL8CNnCa%N?^X1G{FBc`~)uBkz`TsL7dZba^{R858qv*tcP1Q)y^Dw4vPx zzQ#-1G}P2}nlt>F)tz8Fs#)E}yGslppX|rKTAdt=Nugfcfb$tlHAvqE&Vi8B>dN*z z@@EAGUn>Udr{1mP*~LA)9lf*`%8PSb`l$;m#he1sXLGfmPUV;^y9m2td5HWnCBTjnq20!cwYeSWn`-tU1 zV^~^7k}dpiN03zgD{oU0)*nTVEpJts%;q>#EPA0~bDYE7VbNxT$bzl!jB5A`Td$ao zA)YXHj5Bd_Zb(?I7x4ac%UEiJ{L$0q08l5fsRc4x;X(sg=NDs9VyP@&2MSa8ppunvk%bB=0 zV3ddXs4W8d$Lp=cVy5xAu&7|^5oTJLAl2vnbinLU^3njTHJ$ZULJpMAh*D~DODckG z6Q+Ssx~^iGhFE}5@T$cMh9#=T)=n1Iud;YwJIr!6Pg(_;nA&-e5_wn{xSu>%8nuQy z0bH5Ey0WsHwB8kN+^A-#erzWd)BY5@(hcq{rpWCpw z!=~-DuQ&OkOXnIN*=uUP%K-Z-!JxK`=hG_%&Hq~0j$0lXEzMoUXFd`x{jVQ)K60ST zn4^Rji#*f>@LG$lzM8cfX;~JcB^N<{Wo;*@1pXn%Y?Kp(qTb+;$*^k5S-6j43s(oP z=KD9cH*P`!p`YK}I9eK4#D{I_KA@lo;5$ML_7!_~Kot=BT*a{uDLfY1+}>%>2cYJW zGWQ;Z&8Zi}%q|S()7u5`gPT&MqszJ1=1qYm&(c7fgEpkVXahVL$6wuixkd6a-JZ5? zIe%ft~wqbwsUt-fDPAcXs&h zxZ9^Z3a@&e@7tQwf|MDYtr4*Nt4)Et*Q0Hu-Our%kM<&O#iK&+ta^05~Gs96j%jD1Rz;0u~)5mY@8&`8qELuc)hf25I^`t zhBRX^Z}H?q5ri+HOVNIM55)xLNRuM0f#o$#>g^|IN!Op@!B6#&Di-izPc7*vCTRUa zB9=*w12yC|bavAZi$Yp~e*3{=+gYjP1^(Y{U5sH52z5S^cYV6GcXl-<_q+vFDNpy5 zyrwL0xtw17gY9jrHg1o=Q9+eBD%e!T_wNXiewoL=+|g5FAMutuV`DnNuSrX2ER@%~*1oFWA|>Q!HdoogYfTCP!0r`k5w;@K<-Xm8@HM?am0t zBbUXr*k{E`qRqf7WStmdOollS9g-RHgSyQE(Z+o=8{}qcH=KUd7o&Lym1gQwbAgOe zn34n{uB%{nCL8OgYey456^hPLkbtqM3#f1|jFH*uOdRBP5n*{ukUIW%WWb1c_6af~ zVo1V_7(-^n?tII$gL=*co*sP@CJwl-;7Z~CfU~}3HRQlufUAQuq1=O2{O+^4&9Wg> zvDAjX!}FhO6A}SXv=vLVuSQ@rbf9rYZCS`SKNlXD3oCN{ax(lq4V2X{pb$U9PdqoY zjT5_QNWNO)IPAZSn65sm?Li*(e7~N*y=^s2gj)!=4=xmLHry(>3b?o7Hp1N~i`J-e@W)}e0=PAB?zr2hJWAhG&HKGHLwb7;fAXbC=~MPt z4X?pXg_{jG7j6;UGPq(m$|F|>=Y-n`_bA*`aFo6i?xj6^z{?^1uIvN#vy2c&ufmpF zKQJNRWQRUN2~SZ%cR3vzhCLifWh?qHnAgv#553Meyxd*#d5`aX+14!nJq^|G@qVxT zFg|#%)i6VMUE#aqZlCffy+7P4xV3PP!W{%0FTuYB=ZkP>xV~`1;STPrTDq$RlTtsZ zD*F#(={fIP4S8^da4X@~!#xSN3vM6WfDf#OH2BBiK8O1O?oYVpNT7NAj$p`f8ve)y&s6wTIqrsGjtaV-yL`Rlt<}9YPhsJ z%Ug(?He-42?r>@6SYEuljkInoe{A<8Eoa#n%86rRn;P3jnADS#Xf}m{O>w+72H_>4 z*h74Z5SHO^?y3mpZ@k%}YRQ|vOfsG0S#P!DJKwT33pgyO=yRBNs0z3I9U0QBm^J(W(t^M{3t#s^4iZEq{Q2`p$6n81M9MWWaoqK^aDz zp3~8f1;?k09^!fLW^^IpgtOrCi!_2w{Nm+})7!$DG@xqL5z{G)ffwlZU_!Bx6I z#OwaP%WuCMKR}#K`Ir9nqrU-{hUDYw&0!edt@{4j%_&^4OpnE;!K-X}A7<;S22B*E z=0J7-L_W7VB}8tf&H4*+R+_d_zcK>#v(nVjBl)rFQH~dnSPfYpSq*LBSHiWd1)sq6 zhQmKEFD7|-(LaOH%gfVK=o8~}3+NJ50o{-i+IJ$1XOJzJGv>m;Y@vrAh4~Cgq+n~R zthj9Or+m>_d?W6rJS1Em3`N!HfG+J_7H`5?i#ScAcFpB~qi0gOPpA(;S&^@o-d&I3 zo68?Tdg)y!p<*Z~>r;A{&| zoS0^^4Q$$2=Z40j8X9|}QDcrfjoPYBwh){^53te*NLVO@HK1sxDJI1b_YsUP@co^pM}BLnRZx{-IZx7j4;l$qw;O!t8SwJRWzuP&|CV^KDs4w zZrWM7$mq16m0Oi1;3RbkAu5>;IK^$NikTE&YC-`VN_11c>cToIXROTAQAgZcnReJ| ze;>#?i}fWEJcw&q7rKz2h``)1^9`tmzHg9;pPVXQ&Ihg z*`FTvAql?r!H6X$8`mt?Klc*e4I)Xe}ajTqU+-83>Mu6h7@T5pLT+rtyu;wTwi4>KknFmK#IWj17C zUe}c(DB7)GS@x&V-WpK(B5pO}XBav=uxv(st`Zx;0*rEO*oy(dZ{)axj&g5DL|Qf)NtU`+)Gv~|oj%FWAed)V5R-EL-YA*ay(q%7XU)(m$D zjR2tD8v*5XBn$GlA9ZHFED(p%e^KdlKJBlzp%@)Sy=V~lKd(l%pLC{erI9Bl{$}sb zdwm@~*weY#SUI*_UEXN(S#y>FRA+$YZns?B(?3%Ye?%$L3R?mg`s zb=fFK+2)F6D6Hq#%|=+af4~zn$l7QIrI|2ma3cpwF^2gIPK47AW4<^uZ#mPh#C<{B zg)4B9Gwo__oXa`xD9nxsJ2O9VW}el;v`0wDdeA{am~Od4)S)P4zPbLiQduDGS01ZnGP zFggEaXLRz zZj*V~iJT*D(PwO936+zS%RQQ2ei0|I{O9-IlXkS{uYRys+kA$_^LZb}N}q-D?H@kj zS9HNjN5V;ofDpI;;NfIAiregMsAgDeQ%VfH_ z`bgptTgw7*4L`phkEw~1d^_^lHHA{kRDP~zUiZ-`CvZj z!1&&m28rabZ22>A;!m_TTvxyE3vUG7;8A^04NS$b>>}Ya_0>WAn*;gMt9^OO!AhxR z3O{#nddFSKdN(K3QAyOEEwCWe7bE)=ZGJh3k3KX}`eq=1_0R^X=mH;b_&*vdo{a^_ zU12(ept&=CjXM9e?Sb`3V^&HroZXk#tAa)Fypew;w|k~z*5clXmd{y$+QDAV>(dZSLMd_$)e z$|L|OwU*(0|Ctk^!NdN4);WDDEa?B}g@8rN@u&YxjBJT(C}(gP^xbHL)XBeqV~$`& zHkIDR9b&`cFXbdca@HslC5cjcjBG`hn_JR2RQ_p0@MWhvC=VN^ z9tWIS8F^Ty`hKI>X!Ui(+;H&1bKQNvkJJ<7qGWWlt{WMML$&G}ti#gOo%af*p-_q_ z#Qn|(Su9ZL)l6i=_}olQ?ZyY3AKmW?q=|YhqT#^ijJhz!4bncUA>&%gN#yGzCd>5v zNOU~PJg;%BpL_9+A4hcP*Enr&uZC*VQSEqyFlev;_-V;Af_M9*_YBfuoynnk(}ZVp zS9E?_-9w&0ojh!Xx~n0kZanYC$$cd66MY}aJ4N#kK8Y5$M6P}Eh`7~T{NHuLH+?$2 z_gA+dCUBzin>iZlgE#3o&`;t{sUPVXq*Wl9jKXoJ^3~UG@uxoBAUzt#yM5LvKq%ln zIs?#A$?AXMt7rG~{Lk9@+e4Ao_%!FzFMR!HX^z*9BOOo6oC)GpRVtpw&Hh7!0FV28 z=p6!vPSdQthf|;J7m77hL($-9Y&6xZ5B0i%CmN`Gt?a z&|UiLBrm(rUs`;Mzki`az~Uq5H0@HO6PL5U@}DlWOa8bN8JTx*#gPyYb5jF%(~G~t zN~F6T@ZE8@Pk9u6@mD_l;%aH_Jbv`zXen+UZ}<6jI-q#}^JUVC9Nzbfj{*c&7I#25 zEx?twjuha@F9!1xQ>$sUw5PzKWI}EFYzkqSND`aLJGJQvlrYEKv7CJU(D^%|@2!-#pCq$GB z5Wj~_C^2W#;Xh!*f;$WMDcmKvZ{Sq8pWtr5{Rx+Si+}ai+y0@bTPV3&M>DZ4%2xLV z@)s^=d&MAKHYf`ntQ`-$63AkzdR)0A;UaDGZzJ&A``iB7^4r0m7kxWhvj0)_*|+OW zQqpgH=Cv7KsZDC9^1rWHrBTUz@Q;yR6B=c%`>{17?=wGsBK`M@veTD!=i7g3E;<0tJ>4BKxWPF>YbKU~H36gOG5#wT9l*MALQ zL-<#J^ydA4dqjHZ3;yQcVZ81)A8E`N{OiBtftHvXgq#UCQl!^DuiAEFHp@$g(TXHW z1JvfnHK2)01k~XTB?Q#>U^R^}x>n~L0-yF%f+(Or-VZomaMdu{!DTa|DD`aIOJ6T|7Palr&G_Q*U(V3-4N_qi3s1 z?@nW>bIvq{<(Ve1r0ONyur$pNKSQuQx{tYG*?UUB^4uwbk3A;^DCac;ygH1c@I4Vq=x>Td+r@^9KRAHWi*d*Z@4Hf?{gPQl!5RRF7=Q#u}xU zKcG3@Pb&IAx#-Itl`g)o6#215(tEPWXP;8K__Gn-XP<(+$}Oy3=Fc8r(i(?y zC4lvkl13=Ltyz4?b0wrrz&v(UTyY=Sgygwm}o>mudXE7@&XSjRhY$%ZmK zwzM~=Hx#&(fJbQ+U)Vo~PVA|+uU9s=WmUaB-qGk6jl%tO*A>1y?)E8#QI6+n!{TRFV)C|hAP$X@0O znG88}Y=kFzw5oR~bHoSQ+v2I3g#aZs#lGD8NvyD_Ro?<1NeF?Fglv^`E!s)>!Z11) z)+ktAN#(XrMT^t|jSt2u@jQ{h7cgo=XbSG^dN;TZSU+Gx75!=F2fC$qsS%%ju+;Sg zOfaJRYu)OvS;XV#bA^Eg^zs&62Lb5k9v6)S5f)6~hqtiZW@Wc z%)pm2M&VNmxy$MXqM~N*bf9s)VjZ17VU!K@FjvGe2O1RP70;_HI-`ijq`rblTMz-f zK)jIpW^zVf6m@3gkue_p0er?_8!jFh`BAx+4H@RaDOC$g;RbSfZ?P|(S-l#D5& zHFG(AiJ^g5=JMr;HYQlEpw~n7qoCjdEkosIvTxa+pxQj5k~oSGcBo#7u$vNNW0nw? z+B#4|hL#|BrUG^oyp%#;4s9gn^50+!CcXgEst6Va77F^-X5;~EnwjsyJ|;+9cNqC} zOEgeJu?=7X#hp>CZU(}d8Cp-#s0G7bhGy8yunW4??ZmL-&euKJ3VwslPClfp3}cC2 z^BQd+X>U4D`7w+Q^;+H}dAXLnu1WGbEqQB`py`q3+USn`uyFyMGzLY-4wDCYa%Tb zBLKDIZr1lGXj)-iLj~V^75q0U-FvX$7Qem#Zoz&S2MYY`TwYWC`sk(VhqVQaUYR;;SuKVy;|PPWNQ-Qol;Y)Qe5%Oa%+*a}wao zm`!f*{WWL;koevPrK}el?KAVa252;J&Ncz(Y;{r$3u02l$JM#9tOJuCIHoM?%@)Md z`x4t=oIcwIl->3RsF0j=M3I9pIXv|eb!nu-yItUV`eY2AI^$QJ{)*B*jxCh_vt4;4 z4jZ8*+m$16Yyz95bnL@A`s*JffXcX(?z0%wykC{keOUKa*vJ^{UxNjKjXuvS>-(^- zY^L&N9~SFh_`I;amgE)~LNS=rs`I7l-}|sBtRq!2SA0m*bFvA#GzkN&7D5ov-l3=; z3t`ih%6=>;?~lWG#m%8{xVvXmyM1)mRsSp%e_AUpp3iSCa~KV{F?B*OJIc6^9@(pZ zAzrr#^Hd&!8~i4`=A$!r`7~}vIWtV^z=~?AKO4=YVTYA*@hr6Md=!O56DYB$x1V#< zCy(z)3RIqtXTHe~J*m;9Ve0GOo$-N*V~(B&1ThSETSI-Zr4Uw-Ax|nd+n#ea1h(+$7Z=)n8-u5i5#x_PEpzqW*uUDpLX+TaNK!R4N|uk()vWL zs9O;f8%y`st)Ai4a|g2|CQaR3!dvJ3FP)XmMIHT^|suZWP zKGGLlsY+!rp@J97^NBa(a3kV2wjm~pq`N!wNMoy7+|5RHS`quED$X?4e*jgpdk)8r zDuAAd_eOc}HXfkUPWA$rB8g;+x%?Cb#di+M4^nXV80F72=x=>LRNAJqBk*D8e4#->VVPhE#k`92G=$K5 z!PM|bge`hF9^p_uJXBMLro0^_p8%i%>YI-%e-CBR{++oXE$BE4I|M*=%2_>d7&D2> zQ_7i@EKXTDoVAk{uTwg%V!fkDG!9tT05Fc(vccJvVx1NM|3v_QhO};vD8CP94#t&* znb^BLJ%V|+p82p=6Bi^%Rhm>|&hd;<_Ksj(0v9wap!Wo9>xY#aBUq*hTmy2+la=WU zu>o=}VO_mUfMexarPCr77fs>hwM}8#sy#a)_6a4HAedq{C_jy4CDIcWO6V*o+7-&q zOg6bq_9Jfo*83(z+$>l8vsjj(*;n&HGwNnixpHm-i&8FTv6hjY${Y0w!kt!a(0p{l zk=iDn`&-s4twy2G6=h0MChHY3v`nkjfCKdjjtd{bxOqW1nOp<3sB5|M-6)pYCJb+H zw3*ikvZD_v$=NLX-_Q~R7^5E2&_dx~N*h4zqme2Vn|>X{R&KOhc~}`V8XyiURcc1V z1QJxL{4$z_N^>_W{$p4~8^869p}>SE{J>)Le?bvkau15HNx#uJT!*61!}mjRwnBp< z!J$E6a%fPD+o(Yyt@{@!US6Y2&-r&;5WSkOxyK^siW{KN*)|+68+2UMx!Ja+OvxVy zTy!f|HjM&{tX6!-v+y=;);8`uKtsU?tCf-C*|>ir1a%&~`d;T>uWH(PpR$I|#ac@I zdA3x^%0=f1tCW%g7Bf_@q_N6x<_Vq`F#9p>eIS)_pC`J8EDrTXtP7UxLR?=~+u?1~ zef)A@r80B^8z?yW;R$T06u*+VxL-TNN*$=Q8*#2|NZjIE*iRMTP)C+3VH2^WeB@9j zPK3PMyh2$%ktK;1_8{Sb>NT2Rj>WQ#llG$yirU&kgz2dL4k%5|c0 z&M5#|%*uWD%6?5ODav9n->gyaRh#!CuVK)b7c~A$2>xcCcvQcpgruWD!vPFl?OCdX zPKI4pRW3}%;-68Xcu!%InoQrNji>KYee?vhHhqg5fW9|jXMNzP~4|AZ{c)(Em+mNbPd6(*6Ug5}Bz4YFZN2(p;2dZl}Sjew+S zB3I(eG{Alp?a_+fNUl7-_+J3~b5SF}4nTd@C$f&R02o!80=9dZ23Xrg8p_n7rYIW> zvD5^z=u!=`gQCGEkQEgD3uMO^HiB&P!lsa2U3x!cC3X$6x&_MFT%c@0Q@}2-xeu_D zYc#;N;2Fw&w2WWyFMvHczY$>5=QjoHZSDC8Eldqumc2v+Z0|e`W$WfOh3u8p_d)j9 zYJw~+5C*FI05i?|7r+YVHUcbmZd1U@7vGPu&_xcHzN)0c^m7jR0d0HU%uF=zhSiFVFy+SfBwGSC5i}ENi)vJ_CS3jl2(I zFF)`vfHi-h0kBpPbDF{xzTkeiYUUAKrEHE^KDy3s3RQndohIlCU#cvf1*k-8O*nt~ zY-RI&Hry>NhDldu35Z$+$Op)z1N93l%}dJVh1jHBpR24{z@j8up|WcM#I|*oa%=$$ zi5O*rrgs=R8SPOaDs!P5-y463wwV1rQ}J2IGVk>?W2WfI{Ewcx%~Y;n6DBP#RPHQf z3B$iH5O#rnm7_e>6AEnFSV3qx$}O~LuUd{|7!6Ku^=H^{wJuu-nSUl8noSMB*Lz<- zLva+bocov3C`p}8%V>Y;jp@oyOVIVL0%hqU992~pDAkKtvK0P+^5-JfS=z2B9T&5Z zuD;NeL|5jD_uZ@dkNv1S4Pl``*vr$D>5JJL(jQY5za{^+f=5X?Q?+i}P1U-cHAiV~ zL${shC?jk*DEWA{@{|oaK4<=oAeU^Art~2{Vwd0sy7m58-2RH#TeNm;-IIDLPVc!>2Ji{+^_vW8@^|gXJv8%>!v(w1?a^ zQJVwK6|80aqKOTYppUj_9-gKT&Rn4@E2q_IQ?=~@6a~Ee3{|aEeK?LH?3rS{iZ8on!oK%cv#$|fv&P4GbJeAy6fqJo*lmVB2z!`dpJuq>;~oIP zczA*a)*kV2Kq#fOM}19C)~^>U53Xc0#o(aWWJy2dl1|ev@~zy4F%8r<$)12;U)9Rp zo8+B&O7SYTBs3&KsJ{5bHeQa3E2beb8Nvf$eMnV%Mk$unIBQ%By|#?CQ=VB3jePWY zWzTBXKQK=;>z?7-RT|@X#j}{LzK3$!ISv@tAa+_h*f3Tbd`598TIKlG!$xK zG8+zKr4wH_i9{w21nC-ywjFGd-$46UXdLv}#@b1OHsy~YLE}d1aa&FU4)m4%XBc7# z2d%J9i8nJ;S)QcuHLS0rJkQ;5IVo57+UcsdLxM@oT7TE20g`jC{B`iez4AB5YWez z^>h3>x&eJtG!{z3onf7YJYeXfJM8%I`n|7oqqih7u9!E{;gGp}Fn*H^BDfEICDHfi z%@uYefUiPf0-B<3=>*Oj86FO1OOTmt4a4>=L>`UDp^-LU*$>u?kvJOjmXFtUMrH5< z*-_Bz1PmmHG={nWWos#$>o-OHHdL6Pf;3oP$W?qFVgb!^sP$}h`L9aPhuDZ-Q`85w zVzabj@4>jI4`~J9qQcn7=a4nJKy7tXdHErhW1OOX*YUA379vIFDjmvL@19#LAe3^# z!?mwv;?k^{TA{1iRxxh|)c0x_VL?Y_O&N>mlcUZL!&pfrN*yN_n28Xj6T|{GL7k3M zB_YvleT4OG7WmgRisoC-c2m^%x@hwg;LQ`JsgJTW+9*-wti1z-z{yLosnQl61Kfm* z&*IbZlPhDQII#{wgg(n|1;U6aV#vp*^KeiTji@-wMv)*oLKL3|ZUrkB-n5y^Kk&q< zbHl|jI(zjuKU{%C^SdQicO=uJ&rjOJhp`)%z02^hB$U4HA3`r_V7XMgcT>JCXW`QC zeoC_n_`RG;uL>6F4|}+w?6whqIzR;QHw5-8g%zxaw+Vt$o#v-JQ^7*}i^y#s9l7>c z90TGB&=vXN3c$b5YO&H6<6$8-;}J(IH9G`YI;uV~S^2$!B}&mdl-_GuPiaGlGGi^X zn#48jiY0e>{@gI-t!1g5jOgB+cGPtaOd*bD(Ls>8A`$FP z$cgh%MnBAg90BfP$POX?L7pedh%df0D@(vxAKAR=;K1MBykv!OfVupCNT7p(2*MRv z=5T;$Ea(%StvB&Z5s4khR36cxyYjls%x>%t#O)qEh8tI(+1XZw5 zg>>UST%CgS*sI(D5aw_HMj|~ehG7&z{^r_1Ww4X^w|f~e?cfC8qY!fhc&52i_lPpz z$-?{4GEThVQ#XU!5Q7y!W7oSWvOny4qkd66d05jpo1Jcuj{vj;Uim$x7o-LQkGRRUN<1KE%jm%K; zWcF^`+p8dya1vrQ)>;Mddr9=F53N$7H?WYFGsd8&wRG8IZ|H4h`vw-I%-_K91w0XX z$7gJs28rmUq&Exbg4aoQQ`|A}*FL=E2`1V9pH}at_RAoQ=Xk2H4>>5jIaO;B67N4> z;E*g8HVJQVg*cRv#ko<#g$vE-{Qv+K&r-?yjl)56Iek@+oylQN3;GH0IOI(3VE4wy6ah8$Y;k(m&!&PTK5>qD=n8EtjW9IT4Wm`V zrkTBUoP?s1LBoj%0@V)@Xbue-_R;Q^vei`$4eb;S**_3#kr5HPFk$bC&Y@0a7ZBG7 z9K*-RBURs#+F)@3#}+|{tKtu|L{itH9DMahq5$qCVGUC^e}30rEb8Lg2^e8R3NZrr z{js%jWE1OkPaW7<3EOv@%~0=dCey(|SLMOY%s2RhWGasbu4mL`p95_dFV%-%Al=my0?jRgSr~U{08fyN46>_SFv!% z@Kyl-Gxgh4!8FNeD-~S}AT)l_;5n_9rs-|lvxtB|WNNm$8uL}-x@ScL_WgocJhey{ zpwlWgE><-R=n@+j{Tywex;p?p<1EC4<}`g^UlJafzd0yC>GBvGP)gDi zmgB&aZiY+Mwr1_onLg+ZSZM?RdsCDy3R@{f4peq3Y*^GcEzp++^}zA!)r%U`WD~HG zqp5xi$X5SMRRSJoT^(DfJSLfTIp6&7)5ydY=GyDn!O*R`bERZa8L6f)${ z`-0Jl8iWufK?eIAy}adK`PTm|-{~La`_XJy_CC&9485?op^Gnl|ItO=0Idu4(O(*h z?E7btBkm$nsuH@51xOowm44gUbSZU!^29dQGcG_cu&Ls;WJ5a)jNI!8yW?)(o&MEp z%6Ct&d^cUPq}~aFBr$)+Hzi4?wSgpO!H0q*b%V6|vY#nE6t-BJ5U(tHiVd6NXA-Cm zpl_)RrO$X|$j$JZ34Db=AS;YhrtW~g-aD=VGW|G-Zj$NjAL53jQ-bor4tA*H zNC~)I4SpTvr(Ve;VfK%Yp()#UvbJ4v68{NKAN3oJBs4K`;02bx7OQ-@lQ{(Gr#=gC zf@1}ulD~n5pwC7fQGMeZz!?Z|AWw2M42Imx5O@4Y!P(PK>G~WyJo6iu5Rmj&6LPSY zJ@;QRKkI`LC-rZndZ1AO_3*j7u0Jlwr`y&1aRDl}dR4Sch}MqiN2-gxbe?kKb9FBz z^Le&W4B+zf7{HS~h4LCOqi4eabU5GXtE_l|EopY;Z@~1Kx}uNr`wOgZ8>z28F8hNR zlRnrV`zXmTvbGOA3y84ULvd3d;&S^|!SZwCM1;hkTYp;zV_ah~n4<<7HBkd(YdTwK z4;>_J@HuLL2FYu2%7GVQ@rvrB7++$k($zR+_)9D_@|zPnpF!vSOuf-tn`T&xU3K4L zZPNarmip?g>MbuZsnOZ?@s}Z1zlqW~epgfj9(1w#cdQco3R~ic{8QlJKn%4jZei(& zS_ng$U_AR6z%FQ~)}OwMQqW;AI|0lFQOSNnVB=@lt$-TB2Cje5uj&H?HO5A&`lO)= z<$|B@_78NVs*m3m0L8{ANxN_ryEaC7U>6(Ga>g<0+Gatw)xDJJUF?5?+G6&69-+;i zXCoR$*+=8b-+StVFjus8&z{Xal+0Jz;c@TX6kHjg&Nzk3T4dw0fEoL!&$-iwqf3k< zUW_JQJ%Ir>9!(#0B2g|?tZ>>yn%PyE^BS9TZzApLBJdx%xJv_MI(k2fZh$P-4cYYW zO7ZKg*0JseuD3uZ~SZY@!UcG%|cB=r)=T?HxV-3386w z@-G2$BTN<3sk62YgmrEhgU&pGP`p5RTjq2MtBy~kJJZ|swVy_NDv-(e!szl^*QlFP@;W9c1WXa zEdA<+_hEF)#khua|L3?;)pNHR#-(jGzUZWF!iK)ZMvAeB3m?bd!lVf6B-kb9htP%r z>Fkme*)X6r?g3rwstss9Q!=YqJ5QS}$zW2Zy~0{Mc48Xf_7(PNhPsXT(QeB9&?xl+ z!VQcy`MMZwfcg!_0Sm=k++xCvv62G%848M5S(V8ib*CHG>f)}o?LBSsy^36MciMDD z`+(RrqGV^X=E}B7%-jqt&ap*! zos8L(-`{6zq+y+^?H{l<%zFY|bDW!`@DEwEcL_z}lawPLvTkA9C}K(iLcW5CO}t#( zdS^`>-V0tBTQH5XejKRy?q~Vl&r@XGK;`oq7Gc)k+U=nW>inP;|2sip2iXcOQk3}Y{G&h84pZ8X6uLyAZz*JGgV03^1ySe> zLS=`o1p_H^kdmiRXb**!Q|NUHJx-zLDRiZc1HmUL7#@VsCJJR!Xf1`Fr_gE&U8T@s z3R&7BR6wC<3guI10)=uYWTVh<3T>j0l|rvls2_!nQYacBz^Kb5<*UQ2hvg1sTQq+Tflx09QQr6n zrx(Ux<=988yTwNo0XxxD=v0uS7?0q7@CBv&5jIHr)=!yxgoP+8kFl1*mkKifP^Gdf`ysa_>D>=1n zfO6{?Yo%vkeXX}L`WWlR;+0kStFIB+l$O?8aI5y{LzswuYOc-yf+EWA(p$NB zjCEvI<@Pa_VA_DRY}MFX8E_oB`Bo7-6{{>d&W?M}1Af%^W0aH=xRp6eDLKKqm}em^ zcdXM?S>!cGZdstbeS$@``3kxZQ0T3WgZ^FLvOrX97Nh)rf*tn0L9GnxrPQ2c;}Xg# z@=Z?y(YOb)RvesQS{3Y|jAQ?jags82_f)b@v38yO{Y6K<>Tv|7=8G1@A80B_rDC?8 z%KB5f;JKK| zZ|RHX%5P_&UkjV@bKRB6XF;XBmdehvcw;9LTZqI+rQJE!&hLmYQ4?u;4oLG;ree8CBEKG$v)3=eM(N^4tCa|wb=SyvO%QRmXrd6+4rLK6lMpa`nM7ur-f9!{oi*~ zYr*hsGA_g3OFpS3@Aw~*3y};+r$WjpuYJs{-U}IC;s@VWZhVaW>GkiG{-3b!QIErv zTJShA(xwPZ+V?56mO=)SUaKjTN})O-f9-CAW+az3UPHiHcV=JQFeaK#HMhw52Ej|99 z_O3myifV1oMj$ja6wMolgN90EwAPy2nmgMlk-U&m5?P^=7*UyGDrp;y%#2f*=JuLs zR$7*1cuC1fO--%PG|giPiPzB3$a{63g`SSz_xrxTzkj~@{oeh|de_X_Gw*uW`#x*- z%$`zFZ21Ykwy8KZIJ?#t?^_!DwAR-J&u$(PrLth?Prlx*v#}|5={5q0TfA;joYWyL}w__3elK)&BUyKFc>dxazRaM#EnI?k~%1hg86m6 zTYTxk(mLPG&C{E{?ZK9r!4-AB?kzH#ikYEbr3Vky`Dz21_!X@Hl7(oL0!b242@(#O znh+u_foz0)2RR8TfL<&ou}=+T17tpA+BJP>kE``d<3prWh$bFH!_w-SekF7pA=?n^ zYT`ozO_eKA5Xwe{{;KZ*4i;LdA03F|pn@80#ALX2OrbUb|(#rm_S z{8H=F{@|jhkS=Sgj``+?H|x`1TJz9p-zuL^TGO(@H{BQZIPUI}g26LBdQ+v)DKOeEMFGVtU)uu38(=#K z?CO_dB6KsssmX+()MO8QeVA)0-0I*>*`m_a(eCwK|-+UkX!UXeATvL0_HvqTphz)RLkphRHvw=}L z=xku}aC9;-eFXXzn4O2d73F;Nsi=PneF+@-v|qA;QKQhOLSNvQQiT3l^ewP#9Qqbm zU5LH~N)yqiKoamjD&=4$dlDW>1D3vk&ILxj=!YlbOs4pyaiaV(`WP5jf<6XTy^1~t zW|#V<5+Ip@z6MIO{L)Nd@?5_(Uz8WEX?4-JAtJcP7t%23$f36%z?qAi6r^NG1sECtuvr$Pr)7^-=#{X8=68aI?JR%kmBl55Pf}NX%-0v$7KGQ7Z?;W4`)h7+S zFXg_vUmwnhi(A-#P5ZkK_Fk9TE+n|DSxE1Y2`AQ^Z5GnT*RsB|Bqfc?8B#DrlFEav z!$R736o*rZR`*LS}?l*88Pz z>Vt*hA)Nv_zo2&@V)K75uOfE{3rBYSk1iBJkwe#Tovs7&M~n}-<~kjRZX32sZEE9c zi&@YWV7s2zZ8rhBObNLr#gT%5^($fG!(5CtRod5xNZMvaj1$LLw}|zM0qQ z;-D*rF8(@QFX+;tvzv6n9k2|Aa)cBzy-U0QPrm=R$#)HH9vS$%Oy8p`={mZRZl}BHS^5WU!P>A+tSd`ojG3$# zOJf6B78}a)*eF)WCbM_h$E=cVV%ym+wx1nhN7*UX$S$)Gxw#xAx0hq(ZgNjqmQDFZ zd6qn1?x@5nJ(Y<8C8(@WPAIL^IQ1@dkUBwqRb8!aQFp4{w4R!*jn*b;rP?g*PwfGH zt=^VT=F|CdzL9U^KBJA%!N@V@8Sfh(840Frx@I3U!+g|y&75m~ZSFNQtQ;%Pnq|FX zEw^&)8TK6e8E2C7lJl{%$@$V*>`C}tA&?EjM3cMdt8@m=^#HA*6>KYumAm6u@09z< zwMswz1AV3bl^(_0@!Pn;gPa-p#=GVwGr=mc=39%c@2wNoFV>y*Onb4t)DCxVbi27} zZd*@EmL%M+C!L{Xtes3`RZfv}*BRl|I7ggD9M}u)RCi%;Sw`3`!3|kq;lWpP!y*HT-Xq>H z?{zQeZS@dJr79e6H)Qxl21mG0y2(FAaB6qDSZaNH+)Pt)0^PK zgV=g@k`0qb$YbS?&QEHmHLA|W* z)#?M zX|489Z&zn%?`X@lf%+i*G5saI1U|S8?st$cGPW6C83&DeIG|)cXBAmQr$w}s&Z6gOTh@Waus9aa z5?D`0n8G--SqkgR9$~ZD2RP7Jnaj4Ej3JRK_m$J-3^`LCEN9C(=#YGQq+B46lPAbU za?iE8_6zpc&W}!=)6D(YUF~i6z7Z!-25t-JNF36OEF&KhkEYOj zXa;?VX44UL9DSbF(%M)-IhUOy-Y=e1E=he6yu*l2`jEi$q?FW>GvqwE8o!^V6KQAm zB3sQ|81sJ%2}k5J^6zpxB}R!;M_SmTt@Xw;Z>=5e#$Y%m+m3+5G5 zvO=v0E7FRx+FBi~7%R?-w-T(L7O@n|Z>Kn6B1EJIKN}wQx4;|DLZ`wBbEDlJZmz3( zeZ7HRKGNP|@0jS^DoG44jIG&ZJ}Dzh$WpSLl#>dwmQ<1|5=F~tdwA+?@XKLHWi#NN z@3NQVz4AeLT9k4p2K|F-uKJ{URQ*}Ks1|6yArU} zv?{H$o}?@KD1EX%RX?ED!mRE1EnMeQ_$z!aFXyZH4w&%MIKos@WmDJe>plCO+HG=2fG_;pZ(_ms`bPGz@Jk6iS-5~fC~ZQ;Q#vQnV0IvgWz ztQt_KfIGYi_VArrqc*6~T8x&cDOw6#_zCSf7$2=t*7W2`cwL|`UHIzlJmPr&#Uzf`q%nVJ)C#tiQME5^IRmmnfy)uAp++<{u8ec z@GuaO7(+FB8GR9NhJzbSG+s0o87qyo#x8WrZ$^muH?ym0m}%w!bErAdoNT^fmYb{0 zFU>vXA@d|$KHQ3iqsPO+9i->SKwF--Ua(57_pNed&;v-g)(ptDc9=Sv~JqYqsM~~Bb+CUrW1$u=_ER^+T^I0|915$U8)v!8toYk`i zP`e8(Px(@b2&gU9JJe~28avc#M2>20xL%BuSfziV@6dOFdi{`*%R#&`xCp??&x#} zNl3*FToUdJjKk*`ZOC%1z1~kR)Vm;-OtKF-Hy{e2ChF=2S@b8?0;J2YeW{<(d-E>V zGJBWZ!;#{y)^{R{LHl|zs=lVJ(YBl4+Hp>Mw*uVIC*`1-bka5GJQUVGpexIi!^$Z= zjNiz=;dddSzh+b$x0!dLS7(}Y%pT~kdh2(qmAwerGRAq#nGXUJ<38rjcXPbGVxT4a zq``nlaz7~{dr2ht_DxLzXEXbfsfY@5<=d3eh|S&9FVrh)8h;xBva@lk@rThYVA^JD z`*yq7o^O9_7dtOILFc41$Q>-mzi2$&*F-g+2XFAv_B4^+&GxcL(CtpzIX#U($w%{* zJjW<73X$eR%m}lu`7PpYxwX~WZT(;!w=%!_=+4Szmjsgm3CtHvNUCqQmB2T zy~k_$0kgH$!tpz%_l(%S$R~;GJ9(fsbLAa!C$*0{P1~e(G6orm_Aq<9>+=qX?Mm?n zUL$}K$wSm$&%$wD&&bhA3#6vBCa(Xk^)<}D(yqdw*bmN}?2K~8JD)n+oNt|2kn#K7 zZ1)NGS$C2f6p_zu<0X5&y@}pr?=5emchEcIT^3(dcGZd>l2v36*-s9V8gQ_;FqH{( z1*iH4qIRwPx)P0}T%{@e67OqdSxc-*PQBaUHo6zwE3V{)dJ$fv7v;6}61@V^Xt_^{ z0kmNG?2=-uiC|uHjYu=k+3ZMFKEa=)X=EpP4|L*^(pNPxerk=MjdS2)5oSj-4qf$V zz(Y9?5uygFE5Efps->{e1>+HSuKS8qFIh~zb zF=964_3^ zB|jkk-#`Nj_2>h180LxN=?io^olTcx;CxRH(IenSH-U$yv2^gz0x;24Y$yAUokq;R zL+&M~$$4PdugEK4y1`;?zy%~(}c{YbNu)rE*7b?O<_)N(NO zE5nfl{;slG^Gg#c5l{|we~N&i!C&Rg*gh|@i}#*=v( z&)|hk0 z74uHaCG%kMDduc*D}r>O0i>jzWr41}-emUXcB(zbUJfJoz~m*fX;xn7Om?O@bDVV; z`DdLr2)Uy$d0FOu=Kd4D@rV0&PxW%W=e*CrJP&zCyk9-3#wVr1-0evcxaURE1xfaP zB-oeeCVDel1U|PF;meS}56CIXKxL#dQ(3H3DC?9EkT(;AZJ>IGR-nDCy$y19Ogp8W z0YSS-kJY>BrhX6XG)|ugcX|c(nyW9=mm#OE(?8Rm|J`c#&<&Q zpu{PvVktvGJf?$qEL4`jO}|kBjmjlOQp3SK+Nd4ivGHmm*s})i+zZUPKc)a#m;ek1 z{T~JL|GZj^oLGuUz1XqLvA(jv!H?koJve@^gk)olw_DCWL;t|4Nx+z+1 zb$zu_3EB$P#=h6mYD-H!MBk>ZDy`T3eb4jU8$^G<|L4zV?wNhgoO9;P%$b=d`PY2% z&-v^yur|5Vx1>q-e^(@#HDrw?=|?6>%bc{>XK(P1ERDU&3s_tCgWi%<6(CF5Yg;#G zVf--b)u8WHXZ%oxlWiFEB z3z$-VUhXB!Yh22WF7G?ZR~i4zaCfGX>XD{&Q@$!xU2;aI7pk(gxiZLESrAZc%ki|$ zHrZx-*e(QSP3T{Tasa|zPjoc4#GQHB`) zn(d(+82^Pb!a2NZWrL!_IbIoMJgi|$Hi4gv^x@MQ4$D(g4QYziLy?unk^6I93lG`Q z#1ca#Ix4|OC{5E)3MQ1|fmI-|^0s9ID+gj8I%3LvBw4TTdtkHKN(VWI{2uc6O19Fw zai0To{O1`hrOw8}d(LxiPYka@#S`@w`ogETsSI^iVw_i+`gmHK7oEvzvNDX~-Lf2apN}@h$fxh~O{R3`;JWn+QNs||K|M5TgM@@RLbNoh=XFVm47^$%8Vc|XZd6#YG;^-E9qF3vn)-9r? zV7u!ANbYXHBS&dnTJX2LhWk9Kz_|Pn=!HtQwL~R8ytQ{YJHu1GJ3ih>EYgp)M$Qx_Bj#$^P7uqg}>2$vBA!r46mfp9HBAe`L`5D4!e2!xY+ z0|Mbw1cC6CNWhSSw)ZFXg@-UE2#l{p0RrRvet^KZHkB9ocF7~^g;!O_?I6-s$L-7p z;i}^*iEh<#pAy-s9(Wb>Pp(U|qZ}pFwxN$y?i#Pj1;+!)sm3zRjpBIc`zZGi!trYxYn)mBa<=Un;-RGDz-nlN(!I zlS@|eKU+Pom3cOBz5H8J`Tqh#n7s2k@7N}l&E)xQ@;t}qNfOWtR!*UF-PIGi02#HJvmVKbNI;M!5gWAh$uks;5mkh)MP~Xhg zwra)`+OL-?y9U|n-SIhG{oM3Lz<Qc|MULO?_b@f2Gr2x#w&?s&hNpwut9-4sK`iilG`n^BN~*NUf5p z7N0Q|Xjc1qWZS0%Rhjm%%_TEBC zDv7J*vyTSwJ6(nW+t{$cj&JEbK{GX{Qt)Mc$XmH-~rjJ9!TX-zz*wlX{E7Mb0vo0%z4`S^Ro< zM|sm5+_QT?!+mFw=PW2TcRG*gULc<>;Cs7sdG&Oj+{2G`=hJ&cd8TE8#zW1eDdy0^ z{oZQDB3{v>kF1*bA3b`>XP)JuJ##4Zde2_1o$9i7hcr^|0+6MqaTd#x(8#rC`QJU8 zn@&MuK+s9l_EFXS950J(&y#vJly_|AqkE-wo4HvZmoCnrFw@W*GZ{Ffsu;z}37hp| z7PDDz+pO0{+N>Vw$?B*4YOlF1Q&CL0S8OvDyJ5+v5w@;<-XZW&pWtRr)3myk6IqZM`ahC>($)9)?|sJ0E#~s!kzE`(|9L{g`L&b4 zxwqW!6@E1Gh9m8Z<67E`6G-#p-}JR;dbnj&7x_Q0@L^FIYzE&I720smIb>_7oKo2l z{!3Jf*HI!vtrCY}ozrk+a+><%_VSc|W0=>3Gf23nEL#Q{k4_$$u3F#b`}z9iBeRmWp3O)I~#G!AzM0t2-Vb-h+O zny#EzKer%Pnjf*_sMwi?fe#l?8|zwnB&dsoCTB!?^LD7L+D3xR2Ax;I5Hj zX?zZr^nb;7Xt20iPmdkTJ0`Sc`}oj=e%%%hj+RcqU4Xj{*DEPn>M$%?ngTc`Ia>N1 z@bZvosU0o7<--Q1v>y1m&31Djlnu0~sraz5 zC<=bH9BADPhc7dm9~_v}VAWbJgNHhj`wyxlNj*1c49nqN22YdSQ}~9#F>-zozce^j z&Kt>FC3TUdIG&uOjl<)~e*F8S4iw`)WCayHo*c~g4tY=aw&!bx7CU154f8NpB|^ys zf{gCHv>C}q8EM8WG{9WA&{;0&W_3}^hVog%y2%fQ@z;m7mGdpUdRX^%#Mqp+3M;&4 zFcz!SAB(dR?HqNgKQVk8BBGEpFxlR0UnFwazm7a(bw?#vqROv~9P1)a-p!vM0=0-Tb86=E7xR0aRoAs3nL_}yQZ6d8O2+V3t?OMka0^`0Y5gbgXh~HX*p?22gP?@ zy}@0_C(1LRRmTU7J-@?dqh&`J4T_OaXd_fFJ-;^Mu&1+{loLo%-?!&sH6VU$4l{m3C(2W?KQ#D%oLgEG3Nkg z-Kw!@7szN$H-Sc7JHb2fum99FCOvBI53s}D+?NwN^&f*w)SaCaJpkQNOe53{PnIm4 z?~Rq?I^+mHTr$MaJJG|q3`-7)Q0_XhZ=Qw*)QygYqx*+Hq?)bm?L=xobq;pkQf=jeR z@{h5Hr`X{Pdm6>h&Ei8R`^%GN@T|$94bxyWsEMSilla!j-JD+_a=ME z>u2yrQ$ib-`#AEw!(*p(bG{p6N1<#=U|#-n&^T}bc1ZqEdpO1plk8~}p9a@<26_*- z4}OB=PQp*&>vs67J&oe;!#OC0H4ID&hIAz=TZ)ks-eu~G@`IWD@YFyLCm2I?Qr-9B ze@<=doMNd%v@wsK=F#oTnWzYEksXr1)E?eohnwwb6#vdlzGPZc`P2+9rVSzR^R%8# zO>fz3@saa9=G0Utkhw-u;_mH1TKF^l^2~FhrNTT9mKUd-R)#sNN4IMN)Jqv}PzLCu zC8tki7+7I!1x8{Rd!^gvdf0lZr(s&a;#W&k=3-P?f2=W~*dA@IGT5Z<*ha!oQ|8#3dzU0|(s-gVZFap<~?J0Y{!CPb| zbc_Ibp%!DS9?vo$258R8#D32BbpMU^`K{1)IpQSmrk4J6>|;cQgIv{EvB)=@D{rbDlJPnyIhev|_!d zjDN5PkyXZ}I(EJLM`XpZDDF z^47Whxfw&`9l3nZjN7`A=<197gPBosptbz=%nr;6+jQ>td`E3t7x#Ro4{g?rMIWO# zrE%w!6Un8i*VMh`2cDlI%Rf!yL33_2vb|=rrP;zu+>+IRoO1scnz9~d$dR+{RE-Qn zp3AG@F;W|)79^}}gKB6QQsTOG1!9e!@p4uZ{5Hv`j&H+f=7hnb_*zcyn7~5NFup-U zWG|V}cw%Y1JYlS61G5jhk!i|r+O8~J8ER6OYye{?m@vJWH^QflLmq7n;>MW?VeYn5 z8uP|}K}JPz@rjBYgZL5T`>fr%Z2@lzb00{RWX0S=Jlws*Ct3pDz`l}Fjj;#zP!zT) z#b>}%-gfR_S^9`)&kfM~AV(MSLvveoG8N`Q;9G~^?LE(9uD_Dtt$6IfHnYJV=_9al zIk$7{XAZpsC(q{`uD6 z#%OT@+VMr>YH&EOUF_dkR;0^mqJ*t7OJL_c;CqT)+-3psDxZ24~Xfh%|v|55_6t955{%a z?9qoaIYtmGKxqupxTq()fM9oX8lg)$b=G^$VqS-$MtkLeo%E0e&@&w}bteo2m}?5J zQgR#6tkK3DOjyo!w8r4oH<^m{fpQ^J@{9(< zOzO}wex;z3+c0|#-b>RPnbdtKkFv0d_2BcDcJp{7C}%uFg)}Bt*LITsMA!7^qgj0r}>uEDK!^$c1gV%$XGGp zah!zX>1jZZIH8OGetfcIenEp80{nQZ7NHuz)c^ z5m{q--i&aU>Uihuwfy?>viTm5w@bk00)%oNv`^4V8{_{5bB+mhB+|F;|| z!~B$i1~mpFR7ubmw>dqKckNQX_51eaJ69IV)M8}m64~h#-&>m9d9oK~gM%j8qka#@ zmnKH2pBLL~SrJMt*@$R;K!Uf$YU z!4$c~Z+NoOq;!Y@14x~LF^Bz-G7KlJCUtcIkiuvC zlli=V*;qG|GBQ|gk<2rGIO@e8TR^DohF1+=+b$Yj(^Hb}F%Qd;YEjP=5cH#s1 z{&ojonxh#f(Ew@o(UiM-VhQ3fwS$&kdF17RN^73H-YcMF0R{b#)eRgvdYD212$|J= zOL*S;7S74YplyObv^L>~*7uivtlWJ=NS|OUx{wzjSr_b{gjJ-r9VkBhIr&FoGq5`u zOG)e!XfLpr{KnXe+Q7~7=UZEN^Q9YNOP~(EK&Tun*go+Lt@EZUqD&7uE3r=mPd~-fAPnU`sjJ8_}vXzr5cosj_@6l5f~l zBmdQhFMTaR{xOmteQjxbqL;P|r^R67G4a@7{TVQV}2$LFvY?C(~F-KKgwyIg*~ zv+Q~~+h!|q<+wD~9dFQuUv|fu5f3pcK4F_ujWdG@UmGBvFHIvIq z`SQ2g=e_oWHYoO#VVcl2#1#-3jagttLW5+z`s^lbrBvG<8VicMdI>Gme&;w*7WK8OR5mwS+!%9|v!g*Ue&998`Q`7!L z0-7j;s>+hkCC&O&yAhOokB@k}U*|VI#Hs)L(b6@zmLEh*`vH3a=EJRr^Fw+ExJ0;j zKIEUjo$g)+m4=C6(hlBod((ioXJCbegGd~CQ2lCq^oA_qC)Ls!eE4>=Z}lhW)_k%T zeFu`&%p%{}(_Gn}*wh_mp?9jOG_7|rSUuD`&+%K^dv*>-D=&eG|AG4(ZW7#^aC_mt zgu4TG63zw}zN38TJHE2)QO+~oGs_=;%vZe^-SHsg!x;yN+W|j^bA%m`(kTAa$NcVl zQ{+44e9Ze};$KDVFL0aT-h_J(?jyJgxX<7yjocS-hv81beGT_59K~OSyHU>nem|gR z;4W|G6UvZvMGckrYSLgb`fe8C4f z?(PmV8w5vb zW8ktX`O1$L>4uBn)40dSUFBzc@%|rAk}n4FtsnRB-5TULUVPBJD*QOzo>5DK%5Q(% zgSEW47epI!4W#gd6{)6cVXi7!L-ZKiJG}o+Kl%DQeDuy<-ENrmTAo3P*X?dLpd;*n zlt%G|d-;K#L)|oGb0M8K{lqL!9>t?RX(}g<;%T3Z(NlV9DdGFm>#dQM!3H&HJdLJ6 zh-p7{3oyoxToyXxR|t$e_vrX zSzGI9XOsmZzRy11q;jF0KaQ`i{KUQcK`p1>!SbZt!TR-yd3##OD<<%bdj_#}{OX=y z@9Ct25}a|*fQ}4IICz_#%UkSCXx$hII7KY_ng){_(*3YpaW9PUH5ToqC<8Cq8`Rhf zGfZ{-bYH~WWH$cU-iSWhd4^ZPKfhqXk<(B)qV5@rzTKRvg<4bMCUsQ(1>2vhVWRxEor}_-%rJoK9|9OA3w7Lqnh5(Pl z4LJZAftv$|f3B`fc5r35Gqs`N&?`)RvDsx?2~`GjTlN zSXVhAhz~pVlBwzlO!qa0;~) z=6MR=8N?f$OzW1UN4H5;MC++{zL4|998$BBVd|uW*}`%&!f&EgE%`qS{{+e$DLj!R~_NEPQRy9 zVnlzS9Av_^HW(JtGD@-^;&A$4D}LrozVDcLRH>a#F9NSLWYqZh^31b&tOZ>tDvVkW zBcWss9-ig0Cm)yFc2ihAa)CR4-OghLMZ8E6FI_0_@%1fP9_-6oU+mqVID}0kwl}Pr z=09ocr^q!@TVG}Qmn2Ts77)c%yNRQAF5WM$($-zX%$F{PG@v?4MjKFupST$8N5Ntk z{s3UG)yg19THF`PqX)4Qp*_S~bxvQt>bp=@#dm)fh#RTjd>7n<&=?NEj``i*zO%jkYZ{Mr z8%=fqM%j*DkgXHy=m@OwTAl9LNK03;X#`QB3>>KTiFy+t^?!L z;g2%KA=B?YwGG~ZAN)+onD5p9^+1D-v1+^1li&Jbc+aq-hM-KP@Th!0gsoO7|BmwY2Wha?vK^f0X5l+O-8YWJv3DMT-_vp(w$$r z+HDF=a3z*Ndmf_mzHl^tLd`@q4k9g3$JB+?yl)*ed5Y!Rz@mCAU)zh%{4rEJdwBK7 z)!Jo|PCu>CVC7GfyA6E^H34hNAI8wQJ0)&(#*M9E_;Iy|Jwef8g zmF&`=U%J-XTbrG~3j?CVENXFAn@z1c#2a64=GCq<;>Z%=uqlLI<9)8jM8CMbl zN_wN6By%k8VSNq5Fkzr9#)&%a!lCQ)p3e0jM=qSZm$)kXQ8)=3*kkHOdjiZs>wdx_ z)b3URI>HY4(oY6Ga@|kd_2&?|=4&4Qb1!+yc|POkmfllN0=2lykKr76oxk>Tb4z$B z5{5j$u{jZ7%Rf50Wp}SdOaHUGT0lqG0V$3Acdzlke_kyAJde-6FJ_|Y4iX%js| zohM(K$gitkdTUbIDHP2#gjAY4k%zPQ{Q0RoW1enDitk+=??;-qI{p~~m@Imd{WtDG zb$oA%$S5Pr`U&;?1(e1NkmFHcqa}i|_;aMv$&2;-n**R&lz21F400NlDX^rF*Lqip z576tv`gZre8njpvKf5H}+B<%_mCv{}jnF-FYdwL?nt(u!>!UlOouL+$g#cFD&8xbR zjlWjYeBhN^+Tv&@KxGbe&li>JwclC;`Crxi+qB>JwcnlE@2A@DA?^2~_KQQg+wGr` z8d9n4?(};_i?5~Mg8Outo|YL>AfRidx0cUC`>mpuGRnMxfj?XzTo7C+TsOD~xPEZ4 zaD(8s+~TWm@AUFR*(}-S6UuP6`=E2OI^E1ue@S)?M!X`4i6yK#|LPZC7F_<_FPCLp z-q=&y9=|`<_R?qP6M;PNw`b(*56YMSw$dPfaF2WaJ;k+ez0!U82Y*M){p0wre+RoJ zKb9Erj}J@cL;pD^$NemZw_+iD*nxWX7nBn&c(ky~7;NRrtzZ2T@*$!OTuVQ+jFSq!% zBFPOn#_qaQAIHu0np$tq0Sv>daL=lKdd?*QR5pl}?ySOrj{8L&oj)#!VctN;a6w1s z;`ztXadD}f-ylX9Wfme@c`%b4alWFf2b;uV&!4N0)ob;z+G)?>z^Z=w`g1x~S&biI z)#0p;mDgFFNWo_`tk^wK){ynqx!CS;q--W2HR^PQrzemafA?g4q+Y6r)VaDGIy>v9 z@3f~IH`Ocn%E^ioO&()s*a;m|{}Vd>x*XT(XFK*d{WNwS^#MD_AFJ^21v|&x#X;Q@ zA~(^vL2t_;a_8!DXgEHVzSEwr4H)QB$AEeDNX7A{?Eh=TG&`(~7^lP9h!LV0hD^*M zLf$@PnjCtp2Q*|V{V`-_R#!amXCs|uzb{B5^pvk05GAeH26^BC5g5p3%kQlhJdj1p zCLz8KWP{yI0_&OT7b@DfX3sKt)(TP9hINrQrHTD*SVREFu>llYN!&H<_Caat?c~z9 zQ^~k_HZV>2v}GOS&zFnnwk(I%45Fef8zN8rT)3K9kyi|g;`T9$l*ZMP`O0Dwo6M}Y zJog!K(ac)Ne@zyDnb{^eLJ=F=u@LsGIM9wgD?3?4NDvES8Dd-zYb_7^OXLNyQSv8g z;!+T6C!e^xu{~?kDk;b!72-93wE2_R>HT2VixxoQ=U^5hKNlsuIdMo*Y|F;!vyrXQ*UCufd0y05OsYc>K^`RgI(a1^F%#@msd zZgJw)p-15YXGw827DtGJQ0ABCL0FI&V!!C~GUj1qscBfa7^oSG)*_ycsY@u`wJ^e9 zeNMmANIP@uL|C(cuLmJdhc3WC!%{;<$Fx3HKiz$VRnaIcG@DU-j#Wk=EiL9cmmun9 zPtmm#^Ul-W+MLev%`8KUXv`aEe)OV-rZ;sD$6eNsu@J}YPFOuo15fRm=So7@Lbore zoOMY?8TKzFcuG;&Tgqvw9gi{CNpMATpd;G)3-txn$E-*7+WvQhEl(#1j6DnOh{5}O zZ;;IDMFjCO7U!d>{Q1s(a$bYYGhVw*VX&^VlL=2!tjlWpLHv9R7fr`Pir)EE514L7 zp_`}Rr&wzvdyF!`uVlbXJoOnc8|hNX0Bf?glG3=5(>zPcBy!lP@PW{&02<)#b(}{@ z7~Lr??8l5nWM9TIZY++c=mo}m2oe|H0K{pCPoA+T4_@sCPTjH#%rzFbpn}?^RqeG+ zaU%+o$uh@Bq2;2HXx6|XF*S{p0X@h}Jz%^>(RfXak*&GD-J~-dQ(>Bt3%YXUr=eNzH(L5SevoBFi^RqiXel@kDo$0lKk- zH!OA$GZsCEY&ZJ=Q@Yv^R>!rrlwIQ*hEzpz6Jtdpu1k27449o!GT53?GIHL{P?Xep z?+YI|-4-iq>83LRHXpj1h%u^Ei+96Vr0cZDR&lgIoF-ayWr?oY^`f)&==^%o`FixK zdeN)I%wDWRUcqhB0$UAXum>D0DKc+Eh#p;HEfbv>J&hUy?whBS9Y>306Jh6kTW`SSIBpnha34 z;=YJJf@3I+^inoy6_e7qus6hfAr`8-#Apx2inAy@*FZUNpVFlhwvpbv@xE4eOjK$) z$4ukP8_E?H;A9$us%PyZWmdconT+XY$}}|#-D1EQtTvM9RiL$#GTUB#&I)@qep)3M zrbm9QtH!z*Rn+(xO)dej)NIWQ#V>l4ZS({Y(GNe=9#|ORWVIH~cb1H+ze1yk#?H%G zF%|ypWPQH3r>3GKEzZW(#NkYOjF?F;6@fDCi@$?*Behv&^~~}m6eu!ttrn^A1+Urg z#OZzNbDJ*#TJC{K| zXI%aYMvTTw+=NJiUi!=+nD>0_#U642wcV8ix4I)8WV{uy=w%sh+%&QSQ*;#2&c;6|r+lbH|S@0YjO?1yQmui{pC&nYJWuY6%!$3di4KylNG1lJV_cA{S0 zb4L!VE0GA<7MsmZkjG$%L9%s7q0Pyfm|>iCsI;#EV83x}m2vFhKa8UeAyiGF&iiS% zwa^!shLtQF;#@6Lr6_H>`SJsFM5fljy+O`3y|v2q7^^!fIE=b#T)_okOf69y>aWt` z&^{mbYYWlIg?Z#r^;Q7C_bA7R%`g>8= zireZ%ZxfArup_e1Epe#_>uJ>9=yufv=%jjOxoFvw^_AD%6ytibUZW^6lV0;`!{wxU zSjQG)D8|u+lWGd2j=FHSrc-A90x#ATs2g-A)wYVL>B;;X&cP6&!R6?{j(V8xApQNh zQF}Gq0~mN2^J&HZdNV&Jzx_=`(@55m$?eaI zUVYiD2)dG-)4%Y(Z%&`W`(8OcfCx;Hx~hB+m%M2$3dX++KH73fi_)(;`%Up(U-rBl zvQ-R?!p7u}En-;|8^xxJAEH<*FZ=UV*n#HKNw%bZcVBq+VXV z`mrFEDQ5R$UA-3KzBPE0pPnfNqBAGdm)@xOq#ql{T2Ue0n5B$0z)+?w9z67^fEM#% z(JTNvj3Lp?Z+yjxhuWQiRNR?yR&OFy^E$0HHrcb&i_5izdCn4UNhtQb!<_ffyG(U2 z!Z&FRq6{$L$}FCL(21LJ0yiQ`5^$mN0-NCi1c-sRH1w;w1Am=A z<9Tg=UokC)d0OOGb-vWC8R!WPbd?9x^Uts7X&?|oci-RaC{K%iTw6qzFJ2M5V%UsH zy`c>Xm(XBs4iBmxnn#1Up6K?HL={QOTL^g6a6&ykL|9^3c)~?$*zxuX zT|Hz+gmyq!DEleHY0~?BoXv)PK`M=>G`dMd7SBe7pBErE3jHLBy|FAHTzhr)g_1^3 z&0y=qQ?qLH7Uy3s>O!n4ad9L73v`4%HigheV?U_MZIfM$NY8 zVbsJR1w5|YD1J*|elmYiG)!cX-Wg{e+Denm(a_Yf!=rfpYO&y+rx=yNDT{Us=*6z2_ zMU^aRPZ?Pry2cSA&`WsIiwR4ejrF)bB#at1-PK>|CJFWwz^1Q;&4P6zEQw8Rb9gWk z#(RX{Rh)2*43lpFhIt=@)e{pnwghC5_#}yC%KO%dRzui!Ic}^tJcPBBQxA!oL)g^T zni}&~EC%IliIch%GZtjD_z0~Q&I0ADWn$(~)?IF1Cf*pz!U8F~v1kIMPzlHK@;;WA z^hh3;TJqP9s=HdEqM2Wd!RLY*_`gF%Lm7Ov>40^wq3Q zTbkB>35{$0uUaKmk6^w7Prb49EI{jk^>B?V&41iM^8EX4)GUu*YAz%K>p@rnA* zaNJHmNRzZ#$a%B8jQCP=3J#BbR;uqS0co|A{H*PQdo1j%}QY` zX5B(b?cIV|!j3S`$CDx7$F(_FL--#;_yXdluN2o)Se`tfL`+I&?L}!SbMx`C7sXl! zy)}-hGN!ng#5<|1o$rTrv*RP}`Q-|6EtL&%P;aalz5vu)kjsKx4M3#h3gNkkg@=;= zH!NtMMCzPwEF&q>3><`1_6qTR8q1dlE*Cqd!>YAhtW9TQo0hF~h`GIOqQqOvgwrTC zR5LrBn8)I@CL1gh`=_vuqS;*5xP9?sO@eWFxPa@Y_UX1W2_wCmPhKX5&SeFxSe%;3 z!h(wQGIaz{2X4T^)gLQ9A_x|eW2)4i8^p$J7Uzo_toq=446FG?qU#uz{BI-)1Jd6V z>Lelm*1|gcy6b!@!mU<2esqUL<5OUf=sXrAxxZBG7z;>4#uWVv z4x{qL@CpA;2@;4sd5?snAg>MyyTnezMO-^2ZaO4Z$`?Z?f)baOki>S8w=WSekDHsO z!=CdLA7(BQeJ8QheuYoCx1N(%*ZQB1)=f)9zsYF*=3-%*#ljL7>xFbd z!A`?v2gWsqyobJ#2(6-xK#enWu_-wV7ZTO6`Tv6E?8PEt3hS#0@w_Q4QC1g`0QYRZ zW04)HxI5vtWa!-7dsrvs-ceWOiY8Mrskkf_1E)gcSr&=RsVqvXVLKw8{cEAFn!92; z#`PG(VhZN8fcmo2HV83x+BTv*<0wJBvPjFgetrX3e;j%f3RlkffLygDman4ZCTNR>GB4C^E>Uo8H5hK;E= za_2uba_8AQPdMu%7Yh+P9*;)ue0}83(?{-Hz09MLI{+%D-pCDGu8&-h=qZVrKUZ|k zWXVrr^^H}>>hLJmD0r*2K3YZdo<=Khu6Q_#25gQdrtJ^q)JNg4dwuAH&P@`TBU>$$lEIvgdWYrq9v|7BQ%&yL;kJ-UlPh&P|rjA+f8KP=3C}uD8h+;jUo$5(go5ea} zbFf@}3b7T>{R?8ZvK~Y1qpbRft;b5U{*VlNPDji=ODEaI>GetGx$r5>9xl)^i^1LP zr!X5e{a-NKlld5C1)23Ro0j!7X3}&WvrEtFm~DTyK4v$dbn4OU+&mq#CeQr~X2H*j zf_ZF^V_XiD%Q7^qjNZzAI%vnP3KLCwhB$>qksOvOX3fW{a%YBkc|O#3?K5Kcd=}8& z2AxuP5PL1!;zCslY(X9oAwZwbKX^twn9qhhYO2XIT2qamXzG#}J|9cLk2A#W1+4d= z_Ro+)xArU@=AtgzOtw^f*#WardX`DQrv6oevsB`ycFAS%z7XE9RczY4E$kV2ZTZ>p*dDv!QT+9N3 zXnUh|&RG1ZV_t31mzvWF76^iknj(fTX8)1jo-E|tf1AKNGG}301RKuLNqVc>rij0D z(dyJGB611NBfX{wWeN5GMU%vlB`l%a;8!0~tA+QlKR%3RF&mmeZQAPwV&ARFuvL15 zLB>QeAdgL#|Ct~@%)^%E%L(FI9?SbT0^A#~6JXzX9hDa+3fBUll0H!+6o3E+$BUH( zthKT0OQ1g}8uA4`8?@~uof>apBV3;vb9z2WjSt4@)Oavfe6Wl@^d=#_Gdh zK_P1t(Rys%FzBw&na<v6)U+SFI#U zdDNJ3SZE!hsgnqN@d|6+-;JKm=FH1lt_&>~$q^_xeS*Cc);5~-^u}d62RjMJoH06D zm2~w9B(N_~$J?XzTTREr=pr^%>m0T;L*PkmG>AUFj4#R>)UJ zixOK*XvOx@=sA1O1+(#BZgnxmdjn8*(;EY+uHD z`EJr`bxb4r<+q*b;?HGl@gs`UvhfxU`e}PX%YnR)(sb-#9+|ATp}DbSc~7%jSjY}G z2o}f^CnY`@i8ywzk;AL>wcy|}b*z7fx;J3nR6dWN$=UzG+iv7n~0h z2^wSLG}BS|XqqTo!FuE!9POyMh&EM^>N%gPBTH&YeYp0aO-E$?qx`iHiAVY0a^#1` zfO5)i3ElMUqs*00WL{v;93^^{;7&u^RI#jtb+`PIVsBHc1FwB>ZyeRUr*(j+-AFT9 zc&Ht^*i{a_B}S)r+6xNh11yE1-%*bn*4ER=2RO+N$BCqsEKFlj-b%>LHzUQ#m8@sp z>m&7sL9`TIZi-^ClGouC5kL6#x?06o3W@VexoGKyAF*- z(T8M>#X}GQVG4u^C`COGq=}muy!FHZAV32WH)C-_@xH>I>yn~IA_q|L(@|)YQisAH zs7L$QV61r@7-CLVlkbc8RctT{?Qf?Qnx+?O`>4NVVh}MQgpPDXp{irgFjis!8_i^f% z?a?FJhQB{tn>t2AOHR^erb+5y4H4>Pcg?Ui4Q#rSOk=6DPm1alq7OabH$$^JZAunN zMJzxhu4cwOkSiGP?{f`0+08`uFt9P2*l0@_t=;<|b4eIQ;6ODL-$g<&Knp@(VXgAU zNuwVfg|Bh}85$!7uTP9cOAyM)Ft);q8vp3JgO_o6JR*&|@?YF&p*KS-S^&a0tt2`Z z;*2eDI0zV^oFozksEay_KUOod9OoyRtpT)^iT-O?uvaW(q42)5v52;Fh4)?XSxvEU z4eR7~4JuIG(Nui6h6VQ00t1`aX>0B3c;U7jmIvY$jJbQFP0^Au?i4PcZfOl79a8V7 z3zsq$DL;5y#FXKx+~w9{P8o|fXm2Jq0;#|bovC%(s z>VyURymGzimNhd zMz(X>aB~rI2-AA@W_%rI!Bt4uIJ#Aiq1a~-`i4ytu4=blYmp9@S){?-A~A@*gozhF zPS9pf^bdYnJXp`>%X}c2%ER2WE1}~CiVrrhUCrE!pgOdp*y?D=z9j7?HK?vD6pJ^q zfJSpjH7|piP}-ecBYxe;{KRJ)S(vN`J~2#9&=C=f7qVudWN<#L4SmH4<2n$Ag#e6g zd?N4(%QH;AkC|SBTxlJ6CZ5c%;d$hLDPFG>w%0d)0(!NI6S!C818GpS^B4oZIQHmZ zqv!!J#(|r$h!iaj-Hb)I;K8^zL#t@lIABqMHkpoF?PVKFraJ*S)wIh)fMA2i)uRq7mPgC)vFjXE8|Jmn2UOv*jYSgc*m2?jw! zl@rtf;+5J|eQ0y~0Ud~h1;=_B%?4m<^TSbeV2RVs8_1#;gO0y_gVuU@>aNa-*B2g# zko-uO+Nl+#QAQ`1<^>OAU|mNhDuphZfSw78-mE&ez#9tsUJ`xEM*j$o7Y@etZ=&K2 zFK8C~MG1}|EY3EklEKbTe~d;$`>g%@IQGwzsPE$F14WBtKoHI1?v4ohI*m05hap5f z;$tZJ=u(R6Z|9`}Cs7@uYGmaios(*rv}s1mOf>sl;{lzQ-n*);(nFOm^ks-sENaD| z5{qAE+Q*AU<;!fKJa+&|W{~Lc3iI@j8ldL^SuRlVi^_Qta&=6sNO=Y4wm-&-Rj*)I z_GPSi=M~o4%OA5l1Ok)_Rd*qP&zgzvUSZ=COlsgFjU(FD=avl+7Tdz8NY*%MVq-dLTy zo6we>ysJq0QTx67iPSA@q3jnWPH$lYJB~1+B`6Y*q;Hyf=Ldb56JpWi(D|Z!M8Sp8 zB6cea%9ANS#;5)|$GChG60vOh^i8aqG<~E7?tiEscE+lo`0Cp`q|gH+OJ5yBs6;=> znqkjhTUD38_{sd9Pvq~3X1&GDt*l{U<)b1)o-A@HQg1?a!5vv`zYwc-d@{=}N0z1i zMe>_?jqt!nWW32H%iSZz;Wt_5aA$jlvea!BsmAV>06M}BNNE)R;Wpv>2AkmE%TT#Z zAB`npw|duS$??cKme9pjjV06j=;Lx96XUnAIdWoev2`08n6cDDBQ@>|;!_^<$Ui}G z$FGH0rEV}ns=y#khN9KCU>C7l2gqn)?|C2wi~WWJ(f|Dj9i7L@&FZVuKy9MaATUCs z0jm}F-n3slfBr4(l{)s)#<2JAJ?na8AH!cq2=}*HD|u&x==e5^_ni?@*TYec9vXUy zWpA^ume9_om3@39a<*I{NqA9Lwhhe?0~ldavwFYmA~T7Bw@dg(4EKEz{smXzib zqgkAMmo;m5POIP%I^ER~jWl!&KnJD?ko0ml(da#vr?Gy`dqAf_H;qu1GhOS@u@mZ( z@H%w*0v%{U`)>2qM+t2mct&&+Y45XxQ%5+XLE6Tpm{V|XXTUew_^k0qnD&)PYS+gy zsM{_)wEcBaInli8uZ!5RtJAvMrJ_!={Meu#J!gc8+z;3qtpmmn(Sem+v|X|Hh%R*< zu;baIt9a)__JVt|j5;o;_q&L8|6x6vE)BEy%R2p$W}g`*X8(sZdp71gA?$(dE3j(^ z$Jc8jU(>lx3y#txc$8}B_9U(;>N10ds|o$rw~40Cc9a~O>LR9L(y5F1?LV-ez1u}} z-@#(#Xu9IZ`baS{g3O{@!XO+pjCfd5q-*umt-&dC4%2x|3A zh%WIjht$!*u2yq9iOC61PIb6*?NVD8|Cb}#%*o%90}G(&pNEuw7Tfxs&)&&if4uP z$-~DXm7X0$?kDVEYREs@(#KnsaXF@jEM~Nr>#lk^;ya>A^dmy+O@ula9elhu-POay zxmfd~fi$wc*tm;jJQ_$Z2Wj*Vo`Q>zcFgSLjSH^Btg8dFt3l#}3RazW?;bA8z*gY6 zlVkYpp{s+(53>)`UssM06S7dpe=ov_>9{{S-CVhE6}BirVRz z*{zcFT}JUoB^#~vVc2err9ozW9%y2&>w{f}{%lv*hfGHw)|yESjK%3p%=nnKaN7-0 zftg7>*u*Bfd24H;&qV)9*0ImcwMeq}Csuuvo`XO~grC_b88B6+9z^(1&7`^vMaZCk zd8sjdc`4IFIfQO%pW?*dWRAMmGi#|m>6{5SGTDozK zy-OCYOCg#SJfkFSUPj4KYaQnAw|csB7V2DlU6y(FEZTF_Qj1fKbNJ!#Dow7tYE&k< zruCXWi6z>z>w;YI*=KAK^M%OLU$3G4Z*|-qx?NWtcdv~Yx)0Y5^7mJ~xR2$?a&5zk z#s^ptW5E^t3$~T98KTFRY>9lSdBrDRvZl-}j4pD%7bnhs#X{XiQDA6m zF%DGx9uq|554k>DtFR5Mxi~U2f|5GLiQ(03g4<#W9EuhGhgo~0{Y^0JD0mM%B~~OK zW?>@W5L@V`mAN`VY&yi|>Sd-4_?I#dW2nq6J$qD)upD6v^uT8pvHu9fX@P$=8;A z7s=O5%SS#Ve1!+2GrgN4AX9XA^4;qXUo!drOTKLKT_ay*(>!>;A@2iKlr{P z-(vE8O1@9Y_c8fY@@*%db2Io}BVQQ#){`%Zd@IS9NxppY6_IZ)`L>X627JKL{(WE3 z@;K{cI!6hiNKksvYw(exs+u+R34{>0$b3R1s{0XpeZ{8ZEXwC1N+sJaC_Pe8rnDGZ z%9iOZem#z(oXgFG`w13ex~64;IMIM;of#@(Pv8dhIq}>H)=z$+k$CR}3-DAQ&oohu zZzL|BV1efKu;eNi<29*`%ywS<1B?r9>OH)}Lg3jerH@#9nspG>Cs-pUAvMYZ_&01qVim9_QFW zw_{Yxl3p9XW~sf$k-tqZLejYsI#xSS!U)TpPYLe-lCX^uYI};+U$f?|-_YCfRL3;7 z*(TaQjY%UkGk~(~>?w|X&62eFr`dV7KyKhB)}Lo>Sf!{q&$`Oj+{LZ)_T4ny2owbu z*eLBa>g5Y~8~dxPuw4Lmo^ui57ujU}n*u+Di&rj!Rlm52s~72kFTQ=C4%Q-r#n?-% zd6P6Z$MmS5j|Y7xR$OAY15`rEsT=h*06N525f_l0nTShJ>VLb6vTsFaq_~9a(Yez17DMPrdBfqSsLMjYU#DA4PA|qbGfb=)Z4km`(&a#V_BoXg3>{cIvx- zi0+rM(BAQbn0J|lbSy*nGqXvQPIbZfT~EHR$aj%^pOP>SKWgM{7t$nH+3jXN5|CR$c3=F8LJm{la_ll<^CeeJ2Stc z%a3dg{?^GYQS~z$E{D_zuN%0^y!VR8y#bT$xwaxpWj$O|0%N4TDdJ6)wR0Uu{&50- z#OG$KOx(h)3D}J#iuAkD)G3>Sjdr71Etn}T-ehLBLj3P0Yt1H!R<{t!7qPckf@d_c zqDZ?$K-_!lv_-sni+$m~20?4^rA|9UW)17+sGrtdkJXPuDtrCAYgi;+r2kpN`l8}) zw=o(sMfPn(P7?3mW^FMep1RF^-NUrjMmLHOzusm+4I;GQDCgs0qSY_#st5~^qw^x# z%2EnkpANEQhHDJ>H&$Oi!)3x1!MzT*3+@P93exG{5tONddkt@X z1;hEa)5HI@$FD=&>u}oXP%F=wee7KHqCb+w(_%hr9xb1MCqr%mI zIdHK^Ujaw|f>FmqAkq&o32qGBG`Plaw^8Oi8a)L6Ik+v|LkN)m=HYEX`lE-nfb>@n?@;=m(b7FY`n!h@ z0O?}8WQdXIVmg!h0MZ{n^dRVBkxYQ}=MTLB>8~OB5%ji50fv}7iT-59ANZ7i*yk%e=za^1}0gg zYkBY_54A|Q0i}@^sTObt;5~{@1&{IhoLaypATh11qv5cbm$o2&(n}VJKCe^tszurX z7`7RR00zEpkv;{iebXWx1U$9fA{_&)dJl+D{0Be)aMBKo6m$iiu$|E3fXNj=05E$u z5CE*&YmuBA0Q1i)(*DOjWG=MQZ&TrJW5ZaUGcrhN7Rf+x6qpSdI0noHOdba&15TO% z-U4P%0&gii1w5tnY2YPb{xjeuU|^<2>Pzui;3>t=ut>3hJ7!s=B)}`#7AXbL^a6Ma z7;UvolqSKGJls)zCJ@yXVfJ{n| z5FmtNii}aF05O6GFapM?fapO40YMQ#1O%dphzK$(A}AtaR8Zt1BA^#z)Vof&_g!w) z`~UvDQJ9(PMq{@1U@Q60IJnvBc_JFuApYrElTNhto;neo-yl9IlKMTw9{ys( z|NVIYVAS&fhp(`m0Gj~Yf#&}icM0G$ISvTr3R}~bfZH&xRrMT~XH;M-gmLw+7?%gO z-X0K2>J`R^!8jUDPQ2pe7r-_EPOg20Z4214!Ip8wxfNh5gLB0dHV+uE1Z*|0ur&u; z7TA)jZLxHKPdhLU^WtYWYyAHV`+v)@<=wB1f4z20?4(Rjil3fTV|r4}jY$bL+r`(6 zi`L3Z=-BtD_*&GKnKE0hk<--l7{t356;#~umY>2heBeI68^WpbMxHwZ}OToQFTh$MG3# zNiQ;rtRNqf3X(vZP($yb6XKuq>9t-euSOMgAeb9q-Ny_%uF~zsC>q zBRnZ7o3tMAg|bmS5J zm>y(5u?g-T*8_Gt-z|>q4j!w+%OUX70yAK}-@$5Y;5v8-x!S+qAL~EiAMg+RfA@d$ zd-3x;Js2t;5vN2~nI{Ly=j00cx~!qPseWp(dRK4P$91LNZk9MN1Kesr?KN~hX1Eu z$jf=#;Cd0+E-J-%xl+C_Ka>xtw^T>{uznj7tEQQ1pM+<&-TXNEbP4z7Oj9vx{ zqehr+W`M~z!%Tr0Z3-ddCz&ax#LP5hW|o<2=9vX%u~}wbF{{iPv);UEHk++xyEzI~ zah+{v@3Ir^VSCh8Sud;^M)|0O#7O&aZuoWB%-!V%yF&LaBsm~6AiL*Xg+`+J=sMgK zx5NYS(>Rs1BIyJXMg%dWHyJ`klF_7yOd+LY9(jRmC6(j>x{^N17O)rDPwX$2;NRxw z`@?z z*9Rvwxn{0?-mbQ%>>u`(a9#Li^rcY=cSMG}2VKOy;NEgO-G1lI@_^1fZyrMU4ZH{N zpf(%_kUT-=kWJ)Wa+X{mjcF1sV!yFweoOG>%l(*PUK>Ime<=^3gCeGfa zkv65tG=-+pRy3U=%IIJ^j83BS=tX*oR#A`DjIi3QK5NJlSyPtGQdlZ$#nKsKj0wQx za(0K${1l$bTk&*`IOBpF$nZ?wk$2@;Je&9Cd3*rRhm0@aqj@2p8kC5cqD;&ZbHzNd zKr9x^#4BQzSR>YpH^pYLRcsf##9@Gri=w^kAtOWOayed=sX1yD0K_+{r5>n{=wrG< zpU|iD8GTM))R%OX_Dq&JXLm9|3Wk#^>@^ z`DVTiAnX%h;cxi&ypksd$wBkL1Ra9AgPuVifLdYjWbkaTAlMje4R!_}1)m1TgR?;` z(E^YpLkt!LqF9tbF02)Ai@o68699izqK2#|8_6W#?ntKWD(?jjnII?2M}a%$%4Kqk z{6OxL-^p|GAM!6*OEpk8E3R_XSXHb_)oZF;?F1q@tNv6s>6V&kqkHN>x;3w${#nPH+NK$ZsP^VwbH5pD9)prxWY(Ge0AwePXA>g!2AgWzSOuCY#}2l` zY@wZEpRn`o2D{0A2uW69e+NcM4ATHcvclov|-E=Ft72(pA+ z%X)!=%l9|OP2ta>H~MnSPJ?tvqTOj{f2v;`tPNh3 zU&u7z-1+7cljepxZ_4Fy3N+_YcCCNfZ^(bE~ZaBg|>hw zj^Zt_i5JNlvW@H_t$~OJ(c$zp`X)eFqycEm_K@R!0lUVq8Ehr{g8jm(81VzYH(=Fl zkOOP{{(J~D1Z8{{z|tn(Lo5^rMICA72+-vn)qb@f_~JXg$NXXnL*-^UZ*iO#TgTlX zl!xFnQb@Y9&Hh$@yT8ld2P*%Nf5boLSNJC)ex;wuj|wCA==!G8=EYpN=JGB_pkqj} zxhxm(tr!4lk4`r4*!_SBok3T^xUFyz!1E<|CEf_3+65g?1+GtS0YNQEE&zEB&8G!) z41I`BrBBjrbRYc$X!jam**js=U06>R$!Epv8TLF|#}32Je*m;@=*MJGd%vgO*Ix>& zt;HMj)_f|T!I$xkQ0*+ZH|P^Q9vlo>in~OqcpAL%n%D`1`WJ-ZRsdBAf~mXg4X9cQ z{#hhnk{jel@@rWa5aCY6RJMvS?z3vOdN-nef}XRkPSb(zqDSdsJsVhT1L!Ny)H6Az z)I`lni2iYKZ5&`_JKNumu*>XPTWM268fJ!_!{YFHkgacrdjJnFg@1(&T~pT@2zj6z z?;dwc+)B5`Z36YZ+kNPcK&yGi{TfU5194D|Q2!ounu+LU)C&2?p-!j=>Ic2%81xX( z<5R%oOM%JD(R*kwXrFrcdYq00v_a3{`FJT_jd$XUxCW^MqEeC$Alzq=MUZG)$zk$4 zX+`g?cKdExoB6B&eEdB-$C?6;w)U0Z&hPB^iTK6-OQ1Iof_f*QYKHR&Xudc37XB6g zg|`ee0BdQmD0nG&0}AJC5HH?>&ix0`Sl%h`l8?wwG({%xt<+}a=Dx;u7 zkGSce`kw_#SqozNfcv(ZP~yBINVvM_Ch*mu|MAj0=o3iQ@6lNhvxztfr{EUgC5jbp z3r%A;oP+z}`|$mEJf4b6@l)WtMR)~%3-89CN1!qrlN(7hAfP)4C5p5q9Z5HmL;8_? zQUHZB30ztRT75xvgSdsYw$K z`5m0_090Z>P!$t`67b}!ffVgTXE7VJ;c^lAQhX;ah(7`OV-WI-Oa!iPqpW&Zl>ixi z3@op8hVG|}bcuc%*nI`4!wR6J-*t1-(R4SxOn+z^OU+Zz5^jQq@B_22x=A^1PMFi6 z7=JZYCf?Sz4Q!%KvMIKOO}E4f8^Udr&NeFoteSK@F8o=^B!oJ}x(0b)U zD2m*A_j4>;&s~PqHqbXd1-Cv{qr-3m;WRpjennL%9@oZKx}HFa!Z~n*E(O9>g3Itc zyZ{hlJFac(+lH`|rZyQClWL>A`zItuR}W4|j$V2oVNSH9e?t28O+nG7xK!85rN=Ja z5N "]" + i = i + 1 + wend + if i < l then + i = i + 1 + endif + + return i +enddef + +def backward(cmd, i) + while i > 0 and mid(cmd, i, 1) <> "[" + i = i - 1 + wend + if i > 0 then + i = i - 1 + endif + + return i +enddef + +def brainfuck(cmd) + m = list() + + i = 0 + cursor = 0 + + l = len(cmd) + while i < l + c = mid(cmd, i, 1) + if c = ">" then + cursor = cursor + 1 + elseif c = "<" then + cursor = cursor - 1 + elseif c = "+" then + reserve(m, cursor) + b = m(cursor) + m(cursor) = b + 1 + elseif c = "-" then + reserve(m, cursor) + b = m(cursor) + m(cursor) = b - 1 + elseif c = "." then + reserve(m, cursor) + print chr(m(cursor)) + elseif c = "," then + reserve(m, cursor) + input ch$ + m(cursor) = asc(ch$) + elseif c = "[" then + reserve(m, cursor) + b = m(cursor) + if b = 0 then + i = forward(cmd, i) + endif + elseif c = "]" then + reserve(m, cursor) + b = m(cursor) + if b <> 0 then + i = backward(cmd, i) + endif + endif + i = i + 1 + wend +enddef + +' This is a brainfuck interpreter written with MY-BASIC +' Try this code (without brackets): "++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>." +print "BF: " +input cmd$ + +brainfuck(cmd$)