From 938d3406c1e406db293024b9a5710579a0090893 Mon Sep 17 00:00:00 2001 From: Mart Lubbers Date: Mon, 18 Jun 2018 16:52:12 +0200 Subject: [PATCH] bork --- eadt/T.dcl | 3 +++ eadt/T.icl | 3 +++ eadt/test.icl | 14 +++++++++++++ expr/class | Bin 0 -> 111208 bytes expr/class.dcl | 15 ++++++++++++++ expr/class.icl | 31 +++++++++++++++++++++++++++++ expr/deep | Bin 0 -> 111344 bytes expr/deep.icl | 27 +++++++++++++++++++++++++ expr/exist/exist | Bin 0 -> 111384 bytes expr/exist/exist.dcl | 15 ++++++++++++++ expr/exist/exist.icl | 29 +++++++++++++++++++++++++++ expr/exist/existFor.dcl | 10 ++++++++++ expr/exist/existMult.dcl | 8 ++++++++ expr/exist/existMult.icl | 8 ++++++++ expr/exist/while.dcl | 42 +++++++++++++++++++++++++++++++++++++++ expr/exist/while.icl | 38 +++++++++++++++++++++++++++++++++++ expr/exist/whileMult.dcl | 10 ++++++++++ expr/exist/whileMult.icl | 6 ++++++ expr/exist/whileRep.dcl | 10 ++++++++++ expr/exist/whileRep.icl | 7 +++++++ expr/expr.md | 0 expr/gadt | Bin 0 -> 111504 bytes expr/gadt.icl | 29 +++++++++++++++++++++++++++ expr/shallow | Bin 0 -> 111216 bytes expr/shallow.icl | 37 ++++++++++++++++++++++++++++++++++ jsonmap/test.icl | 9 +++++++++ tcp/test.icl | 32 +++++++++++++++++++++++++++++ 27 files changed, 383 insertions(+) create mode 100644 eadt/T.dcl create mode 100644 eadt/T.icl create mode 100644 eadt/test.icl create mode 100755 expr/class create mode 100644 expr/class.dcl create mode 100644 expr/class.icl create mode 100755 expr/deep create mode 100644 expr/deep.icl create mode 100755 expr/exist/exist create mode 100644 expr/exist/exist.dcl create mode 100644 expr/exist/exist.icl create mode 100644 expr/exist/existFor.dcl create mode 100644 expr/exist/existMult.dcl create mode 100644 expr/exist/existMult.icl create mode 100644 expr/exist/while.dcl create mode 100644 expr/exist/while.icl create mode 100644 expr/exist/whileMult.dcl create mode 100644 expr/exist/whileMult.icl create mode 100644 expr/exist/whileRep.dcl create mode 100644 expr/exist/whileRep.icl create mode 100644 expr/expr.md create mode 100755 expr/gadt create mode 100644 expr/gadt.icl create mode 100755 expr/shallow create mode 100644 expr/shallow.icl create mode 100644 jsonmap/test.icl create mode 100644 tcp/test.icl diff --git a/eadt/T.dcl b/eadt/T.dcl new file mode 100644 index 0000000..55921c1 --- /dev/null +++ b/eadt/T.dcl @@ -0,0 +1,3 @@ +definition module T + +:: T = .. diff --git a/eadt/T.icl b/eadt/T.icl new file mode 100644 index 0000000..72acaea --- /dev/null +++ b/eadt/T.icl @@ -0,0 +1,3 @@ +implementation module T + + diff --git a/eadt/test.icl b/eadt/test.icl new file mode 100644 index 0000000..3808a4d --- /dev/null +++ b/eadt/test.icl @@ -0,0 +1,14 @@ +module test + +import StdGeneric +import T + + +:: T | T1 + +generic gDefault a :: a + +gDefault{|T|} = T1 + +Start :: T +Start = T1 diff --git a/expr/class b/expr/class new file mode 100755 index 0000000000000000000000000000000000000000..81c2912e3c2d27d078438df59ab2238c548f6a8f GIT binary patch literal 111208 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 z zFb)tVAmQm^{B(oR{tWCJ>uwr3P0M{8e;Sp);vltYx$>c`ywk~*&v(j2&SZshKD$eP zdRc4>mkK3-T4_0^j#f56&8p56BdtRDiC`J#B;vpr!o=>L8@uL6|FlxM05>H0KpeN` z<(!?S=L;l8bBAiCxKW9-zjIz73c;PU_v+* ze}T57Wwhl>c*`e%5yd9^I>@XV7xnJ9nKE2TDI=)iJ$quu6(v{g#Ru1Xa~(_y!78!d z!k@<3e*VBGd!b@xm;H{}FXNBe9iEHnTr{HD7$0!AJjV8uuag?3gkL#XH{g$LFKXp| zP+=HH%T07h(-f)XS58((7L>2z=boiZ=eZwAA9^wOTlir7Sea21UMit3@fi{b*O-x`ar-_h^kr`2% z$oXMHzg`WwlC7VSEV6Sg`F- z^!*Op?fBiFY4T(8aZGL*-Y{=J++XHUyc21USjKzQuqlr<^q@uuc@S^)4n8$(<8ZEH zDOmk2jI%uc{~`>!&SAJLlys44P~PW3d0)w@ae<@1tP%6@S^IV0bM|nZSP!GhxDGZm z;_u**0Z2?Wj8f~DVwtYgr{d{3{&0ir*?_d@R!7qYeq@w)x`OryBnLpt^gXPIoMSQ~tnMFkus-BbiH`mv1w6thl

lIM@^LO250(7N1?s*E-NP`LIg_xN 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 qnWeHEHJ? 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 TlzHF2s@qxrO}>>(-?!>N67y%H literal 0 HcmV?d00001 diff --git a/expr/class.dcl b/expr/class.dcl new file mode 100644 index 0000000..a16f518 --- /dev/null +++ b/expr/class.dcl @@ -0,0 +1,15 @@ +definition module class + +class lit m :: Int -> m +class var m :: String -> m +class (+.) infixl 6 m :: m m -> m + +:: Eval +instance lit Eval +instance var Eval +instance +. Eval + +:: Print +instance lit Print +instance var Print +instance +. Print diff --git a/expr/class.icl b/expr/class.icl new file mode 100644 index 0000000..0b4622d --- /dev/null +++ b/expr/class.icl @@ -0,0 +1,31 @@ +implementation module class + +import StdEnv +import Data.Func +import Data.Functor +import Data.Either +import Data.List +import Data.Maybe +import Control.Applicative +import Control.Monad + +//Easy to add functionality +//Easy to add backends +//Type safety as in GADTs + +class lit m :: Int -> m +class var m :: String -> m +class (+.) infixl 6 m :: m m -> m + +:: Eval :== ([(String, Int)] -> Either String Int) +instance lit Eval where lit i = pure (pure i) +instance var Eval where var s = maybe (Left $ "Undefined variable " +++ s) Right o lookup s +instance +. Eval where (+.) a b = \s->liftM2 (+) (a s) (b s) + +:: Print :== String +instance lit Print where lit i = toString i +instance var Print where var s = s +instance +. Print where (+.) a b = a +++ " + " +++ b + +Start :: Eval +Start = (lit 5 +. lit 37) diff --git a/expr/deep b/expr/deep new file mode 100755 index 0000000000000000000000000000000000000000..f04ea77625c18aa8a8e2d294a5f1c7a3df1e9d5c GIT binary patch literal 111344 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

t!gN3QilHzL>nJPkRF1`WO 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 OBKO~JUn$GmSN#_u0b&6F literal 0 HcmV?d00001 diff --git a/expr/deep.icl b/expr/deep.icl new file mode 100644 index 0000000..ad5774b --- /dev/null +++ b/expr/deep.icl @@ -0,0 +1,27 @@ +module deep + +import StdEnv +import Data.Func +import Data.Functor +import Data.Either +import Data.List +import Data.Maybe +import Control.Applicative +import Control.Monad + +:: Expr + = Lit Int + | Var String + | (+.) infixl 6 Expr Expr + +eval :: Expr -> ([(String, Int)] -> Either String Int) +eval (Lit i) = const $ pure i +eval (Var s) = maybe (Left $ "Undefined variable " +++ s) Right o lookup s +eval (a +. b) = \s->liftM2 (+) (eval a s) (eval b s) + +print :: Expr -> String +print (Lit i) = toString i +print (Var s) = s +print (a +. b) = print a +++ " + " +++ print b + +Start = eval (Lit 5 +. Lit 37) [] diff --git a/expr/exist/exist b/expr/exist/exist new file mode 100755 index 0000000000000000000000000000000000000000..858e206b2d5f24a040feea9cd9f1965253eb1492 GIT binary patch literal 111384 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%0AFg98v9 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%0Dwenvso@91C6*@8irdv4R;`!LW*1t2m6o zoPAoUtm0-qLo;dieRjx@0ZwZP?U@012dvQXq10Z)l?%`Ih&Cn1I>J(E34d61As*WA-g8Uq(2 z$f>QxOhQn}0FJs3ev0jZnewd!=~D$|74wu&_asMM4`f9gb?>7T9CZx{=%|DB;<83S zZp1$^iq_4K=bsp#$m$yX6WeG?#qv+oAXD?YbBx86izmBo2zIK^2~;NL1nTDEFmP^8 zpaH6%yBKUpdt&eB#~MYKJKZWg%yr1tdAp6Wo}00?_%o%3mBkTCH2*4#&wvVlbz@6T zD>=9r%vSs_gs+Fu9jW8zG3wCDi=gLY*Q1q>;5uL~VRyJ1#_V}B&&*C(W{n1C5Nx4w zPAPXhGqMd8n{xql%75aSDMUG`^*{8?T!`}4f|#C}w#X*MY$Aqd=4(;I|9hU9-d9o< zPwknx1~fXJnajBdh)-uQ=>r5TsHeL50rhh12MX6cr%gv)@YZ_yAiA^#3EMIkL0rXnb;pKI9zDH#BkZP z!N^!wqoBBKE+SPeyKMN~snlZe9?HpcUD-xE;SkWu4&bl#1;$p{MJqTu|DU^TYT?a^ z;j%dd7E=Au4uLK9Be-nFqA|E^o*=+jXcG;N!j>~4kX}fHA zshl%5%4PF9ZKRf+A1AqNZapoZN2AN;^UF^5dCa?%#~h7bn`c3i?X}_IigK1b-@KsX zA1MZkH3NTsz-zOcTF3F))FJV2d2L=n0YymH=7cm|Xl<{}*4RAM%DG{VkTNPl%4vFS zcwd;LwBWTl>4fBe(`oYrG{k@6w8>(*AK7WszKNaif5T~Wz4Y_H=(L%IN%3EC+N_6g zYY*_u*9rmN`k)A8Ee%CV-`=6*(+cx|o|h~u?+$8ooe2KW>` zQI-j>JZojYa>|^KGRiu+-2n~5#Qg7iZLH1zC%rbu)8Qy+(QES+bE3UAH5^9q+I-1a zqu1swVm9&GydaR4yfzD^=t(C&|2418Wo+-1UYkzDsP$~>qi%B|x)o9Whv*ta<*Rzr z^D{(kXU?RH5ash2RVZqB-eHdE*~s9qXZg7(%^P?*bkua055Z=^cZCw|R>7k+7==S+ zs9u~kb+~Gh&+1I?ISdT%xy-)}`Jp>k!FKL+J_u>Cq658w_$a>Ik5rVTD%yYyRJ4)# zbC4hE!HV7mS@hfS%C>PHy=(liVer70fu@zUl}jf0h}JWXrQNG>&+}fyigAxB`iher z=9oD8EU)qZMQ>AM@D$V?YEO2l`dHro20q-{1s7f`Jval+`EZf1wi??ka5|wUa6w<1 z^$0`Lvopx=fx@anKS4IGUwX{CRF$tH(-gH!*>E|d;dge3`K>s#O;PQ&~&+9W)!dY6lS@jL~6 zgbQ3Z;QHcy8FqXmvI4yLg|7y2&VK(lJb=hJFeeQJqi8C>c7t*wrT`fpG($*QIOVkXaGJsd>$8r}FP za?1&`{qg1DR{Ym0bFmTQi{ zc|gj#RJdT=s=}Dn^pa{)o&&BPEa*}X13Smql2h_k;}P_e?9PxLU7wa4T4u^8T%T&Q z>-iB9PoA|0KH$hH*%WtD;$t4qJ(P}yC22yuI( z($DTsL(kLb56^`=M3r-C}rl!76+ev%)pvB2dd;6+y>)yvmA3soZJRW zz&TNNA~J9rtdh6E)MYe9v?;j|fNM|>zYFY-Pd*#MBmO7#;8s~jYI-jPbD+{6}t@J(0o0(p7KBU3D z79$urLxq-oM5bw{SM=bpLwuVg<5R67ja3SoVyQ1#+H4|>aeT7R+J3VICr>N)JbbXX3rrM%q>>4y_ zuw50U59=?_sqty9{Vd#=$2E>Z% zTCg%~JMHyGJMBzTB6iw}=7tEKhh;D}O=GLend_=9|fL5#Z=hH-dS_WEA`B zBnh6ngF&z$8ADOi9a^-Gqf+vf1V;MxEFAcLA&hddE1{vFm}cMHsHgCL#d*LHBmG0f ziZ{o$b<5^rFey#Tnkc^T3tHLB%u&iub^_0$Dr}PliuHoxV0v;RE#1kM*2QcISNx(i zYxsHg+)STGo4`!In?X}P)RvPE&`UHWB5Vlk?2Zfd*9v;_mS zcNFLi->9m)S5A(%lDYiQ| zF+Z~1d87GuCrt5_gXn4~0~*Q zH3K#xrUkCDw>-B}R~h)8*z-sP<5j^(5sZUsDf>}3LkGEzsm)M|G#lNR99-3;+f+$Ni$ zm!(SjE8an@aWj+;Lsz-~yojA*GjtX$Vl#OP>-l#!Lr-zh!)EAL45Kzf_t7jcQ_d8+ ze#Fhtiq5C8d9XJ_zXtB6AY|M6z%5}W?h-V99!VgH|PhQ6l_XePfxBLH^!Ph`VmroX_nGGJC< z<+d%CuP?w=l@V*WSxPcy+{E#LbY$jn{1(_fMChUQ52&Jk|cG zJQ)CgYO@?FM}hQ&SYGy$Ns0I8nnTl zKO&|Dmdf@ehC^Q~-%dxWtTgjV`ELG)I`O;glK zD|?#eYQtLfS(r7Im5CqQ;&x_!2QuVTX3>|}IkxO0&X%&P;Xz1h*@Mu`E&V8Jiui~l zF6tRfNWo-EnQXRB)J$#|4;QMm$>sqWu)xTzzF(o z>9I+5{I=%8rHkN&#wiKD)w-CNw6fOI)17D<+8}&ol=L`;k?R$hj2>1j8JR{#qE@z zSscq7rHv6ucusm>m$$zcZbJ4$aE_mfU{4gmM<^`HvE0Wd_#1Bzr@x6x z0PF+1t~e^F&QtGKHNQF2R*%Qnnd4gcyjWeHvB{18z8D^5c!F_GD_-=v>sGn7TqrVO1X>$ zv}IVz+1l2~(NQ>Zbo4aN%JK69i{&$;{wM{*}yWt z*9}x+NmdUYDBms`P$wfi(ZGOLS$Vu$Dwisz2~qZ^FfBP*SBPxj^EiAIC!fgunhPJl zg2E9-U*#~SlNsmx{74O&y1o6uoaL3e`|^`HHVdy<2r3fQ)W_pgHaH4z;@o{aZ0Q;A z!|4p~rilZNZ1^p4!h8unssqj6$oF>kBtdJKCwzL4a{$lVY?yP7IMM(KUX8^CMe$kR zm&dGoWrKCSObw=|F>PL(ID*Fo@*;2V=$Usk-uDeE9BavD!TxHnzkD@#(){#IWkqsk zA3gP2ON$XM`EC~ub+kVtR38vp$DyqRaxy=(@N&2;&?rRlNL@$b;;Vb8rsx~qqN%I0pzzGmS8fli4)Zy@v* zLYqAa$ERuL;{6O}30C9#a=g+phn(P*1n+HkftH|m`$Z(_ z9asd1tEgc8Si51)y8C~P77Wjoz=CnhSM7lOrXaWHTkM`B&>sRAJegXrc;agvTDk*n zRZnQ>Ry1RJLhK_9O}^q1pYlX&rc$0`fN#w49cEmPu`<{6yah;35D!w|&3+^0N#>iG z(;4(X6vju~yYPDNU*W>cHv8c-p#;7BkPilFdJ!;k-F(IhwWt4-_}a2nIF$0=2rczK z-kVG03%dLCRF|v4<;Mxwe!%bq(Xw{lS1TsdQtphO->C{E5#+H!Nmz}dFcQOU8gtDd zYh4@gg39!@i689Y6lz%QJmhk*=-oVgEROeq4_9-fd{~LU!kgCT+G+nj9zo%GO}vaG z4?%0C#mY49h$|#qRR*N)o{?VFx7Rs@ABj}77C4-Ucb;8St8oQC%tmYV53fz-&& zJ)R!yDIPn-2VS^|gq=W>cl*l^;S~xj64nH+6zX+q{K5ddpMiYB2ni=bBU+$9>$SX0y)&s5$;dNp=GTWw@h}uEP^3BT z^lnuy(R}$qMCsc9;D0 zve;HG6-ofL(sE24t*pPARh=nDT7~ix!7|KA#DOt{iQPRfcFmFgX{B-jZgBGcIBw0$ zIXg|yXGo0V4%JL?qY`I-=e$4^f`O&Jtq*Y7_xuUyx*J9<9;1=l7@WfjrA?o}_;4!z z0&P*tXiFFImQMg9icR))kXbb@>fLWMWtfywMo`1M_QZ}WO0L?253c#DY&*<8t(miNOy-1xBlll#=e_z;vaVB5jy z`yII3@!LPqVPK^%oAl~X7d}`Rn;ata3 zu=-mVXL4PZ%Mm1FzZ}qMYN8nr~6sy$tv4X#+_J9u75a?I6^kUq3N3= z&mF@}WB){hY*DLyR}PD6;sVg!l}%t*0FBa|ZvTgQn6iy4tAAzQ$zy;w>B%{RzW;oB zQZWd!S}C=258>GY_a2#q*%tKj+>NFto|APy@jUboZY_p);C^-0@$N{Z{0$V@rs7OO zjFi<3)GyBH7o}`N3QquQrQg0pp~mBhb$H;IK>|kn!`hhdiGkp5>bcz1o*G zK>eC2zh^9%unE!OPD6*&mjN^KdZWLO7~7eA+OwGN{4&D5dRkRc2R+T3!7A{IaZVbf z6jm*bh!h_x3%f$oA0titwUgJ60n6?25m^AgBfw0#z#$;$y$I52?S2885kGe5E*XRc zywW$YWDw@%LSItJAT0Ir`%;w%CI2R&<8PaS$T64C-i z1{tGUHg0L0uM;;r&C5W>+WrfU3_NIRv_It85QY?JWrzQXF4_&R|KW!1r|RHqEiU6rSJ%PwK@T zubB8ydiV`ARSx)44){{8yHlW1@I$l*p==cOw1iNqo`-D0i zr^$KJMJ~PYH{b;kbHqL}qY{$L%KIS*KZ`WXRi+0q{V>wv%d4%i!TJ_5u_^+t}PHWi6H*`2@2u}g`hhKI$wdXc_e5SL7D>Ly9`)e0nESJYNNM$oGYgv*dD_zXc$DNvFE zEhT7)0(DTJR|%S<_t>mvE18W~a{8n7Fj5!wGqv@UT=-Y0n zz`fc74--r7Vy?hjoN&>$mN&bDeLCyLOl1@X?}Dj@=N$1odxfP}e0=Pn{ycC0VDD^v zL8BO%zB8MxE)8q_yO$>T+R3_~Aof54=6w4?0mKywB#w_lFX^(l8!U%hY>n-oL#+-a z<9E{3sZwp#Go}1}KAyUjZ@D*~kG^Dt=kLH1&hxf$=a&&$02Pj31lXhp?{NAx532y4 zgbt4ElH~NrxDGP_6dy+`NlkiDjeGf_%16KiP=T++PR8wRxUdKJ_UmFU^H&q_n0NS4b%L+G>Bdj*^#dIDzgHyiy||=8(_IMQ zxd6gmS`o+B#9J-ta>Y4*EHpB))sN}XUZn=M1whZ(T9h=$gICSNsWu*N$*ScDZzl04 zyL#(`)BG?DL4X`Bh7*f-Dk^#-<5E&UN=U^ySxb6nU6JO$JZs6F?yM`OxncQ(7Sg2X zIp>Nl{&T8_;6d57+1i>R86Sn)<-&&2*5+tyax*@fLs~J>`DK|+vuz|c{%GMm^g9e! zg_2qsV;SI+wkxpL=F3kN4iD{o2&Qeg7X03)2lFruzL+-vHK;f0*NEYa2a{{BOOn^^ z@jFDU45w}Aa-&^4e^>SJ&@)mKgtM`xZY|cd5vD%mu5)Wit2lL~brd(7fkP!}?N#wa#=lZ=szvJ)6{kM5-c@lbLhEf6rv|iMS8=L7 z>jf33&a<9WaVk6O=PFJuX9ZN8>dl&?;?!%_T`Eq6W=&LaYBK8<6_+1zzfQ%^B7Crl zQ)yWjt2nilb%Bb@kG7w!;^z>4hKirdc*9?%?_C)`sNyM%?@;mc7~i7eF!Nm2Iu-BE zcs1fOgVZZjIcc@?J)u1hVxn<$?cv707XvLnR}lOu)-KMtN_i4f;r}awFKW>MzTgG# zp!!6GPel-v{6NbD)0glXhcPn=KYCKz*{+libE-P;Y*s|k(EB-vNYlErn<1iZ5G%6O zV#OU=#BUp^*r>_TUcr$-jZOP|K`_JNL`3k7iST*WcD@lOMICc6xr&l~7fN`!Z&>*5 zTzm#_eekEBROjGZfH1C3oSp0bME339DiHQ%_{ps?i4J(50?S@Ren)Fel9RPdWx*HrIPRY5Sq&_R%;;Zjrc)Mh#(*)95!i zSk1y}l3gI>a0u$~#wm*NP84krUA&VUACcMSyiOBB-jeUkvlPfwOidj2F8058O12}5i7d~Ib z@WNUcZX>pbH`tQwCTzotCOMm!o@Mi)U(EW);s*mbW4qlH?6Xz4VtkjIwwuj1;8Y1` z0E`yn)Uj(%`GFN_4nGwz0zZ#zbjzi!=ZK2z1lY6k#-1%RV)5iFFVV{e!Q3Fabj-q-*Jw)z=5R!nE~NVIyD7 z8bgP>k^|zXAU~JupPew+gk9{I?&8g1zDUf$ViD zoYe=l1*!iyO8h+U*WY$`A-$ncE8Z}mP&@i165h9wS*RU+59QaewRPwaTa%Ejy$=8o z)Bm6lcOgFTB^Cd+MJmvZwSN5EQQ!Cd-UC{}3jC|Keuv3-Kudbp2CTNS!4@Z%xLR2W z*llgGdAI%$I2m}+PHmLbHW-uS(T9@i3v{MFmQ=kx0{uX3v2gO&I5yW7-FiMaInn0i zL7=j460&ax0BErfQJh?+aDLly51d{DTOIctp|=MNBOLc=Hru ziVBk;1bOcs$ky^ub>2GsdmsPS;$IbJQAcka>(}~Lp_^6s0i7_C_yL_EkTPAnZcX@n z;(UCh2~KN;L;mU7)oa*4w9Ov9)r-9cwI$u9n@Q`Lfq&m~vaDc^F-UUqk&{#>xyX4B zk!SlMgBXwNcI4SSq9S`UvLDW}6D(9RjESLI-e>5?3N)O2bf2)0Ec**L1qff{=7UI( z{JfQzWaRIDw(ue{Tx7`+{sDajY~dsPI|BTq@6cx6P86y|s^B|-w-Ryykk47*b402c zsR7UPJoS)B)|%dcNceKp=GpFmz9tAi>YeB5=zw|<)PYz}JD@)>0tuNw%`pUg(E{H} zANqQ30Z1!-Q_)*cc;N@1s{5E6wk8R!;{gSlws8*-zmd;x$_wT0{{s0N@E)QF^kqIz50=AmYY+eZv2 zZhg=f@9nX$A4CSQcQA+&JW{X&fATR6e@Fz0OP=IsX75$JIJH2s+G9lZ8deowPlAUugP$HlA%ZL@M4qroX+I}0{4-pKJ8Tya%^`-hXNrIlEN?c^iE7eRAG)w+Fz$&OiJ?T#(AK^fT z$RyiD_A%#7#q=?M+ zV_7M&%r5bVW+gsG8YM1f!T(%t^R`=j{1zm6c0;7JMJ4vadp0ClTQu5UhPp`VxNY8? zD=Gd&49lfRssIK7Q*)3~rq5Pf9nb=QIR^_i|DgBDS0fW)iiFf|oG)N5HB3y?$D?ql z3B3DZr(wxWeGAJT!ltIrN&ur5><`f)wk9E4`v3qg*e@$YS+HMG@z@Kt|7=L67(M77 z%$k?LAS*#};(b4KZj=%9Q?Sy(w(f`5lpOg8GNJ`;v{O7d)B=3$nR%Z|Y6WhYFttTe z4cHPgH4xM))8|PyO`qGlfRne`oU8{b`z9g#b{K#k;^f~Ij+j0bYJz&7-q`{t@8dL% zG9s7Qtx3q%3;@W<$qG?8IaS4Db5fZ;=-T_frfl<|{}Hz7xK+XK7w!V1O8KkrV6n0V z(6aYBOFEuD2Fn{K5GT4A1enqz-{HJY{s&M1fe zH+d7XiaJqEP>)kH6jXAGS97(GBq3)G%yS5$&L+~2Bcd#TuN=@eg2V!N)d9Ut5ZGGa zIgSyPg2xaci|W`~vsIp~JhnrzvK^*C6IPPU?Wn@$=kyTyb}~P|rU;>zbzojhrY7BVi1to*@m|Ox*)2V=y%UyrM3ROoggn*_^Y{utxS4c;+}1~#Qq{wll z?5N)do3zrkwo(f*wMe%YnLELIZBb4umngh{NJ`UGsyzf+TlBiUN1P<7neA0xN7OPq zi&|nXZU|_B+)hx9{DWzpycJSG)hHq4JoPgXr^ZF*OZ2y3NBAxvd6%j@SzLa(U6fjC z0W{A^i_7f*Mytd*b}JIHmDvDLCElbEIU%4c)UpPvnmc;zqi=Qe9EpD!Mdn=0*o%m1 zfeCi^2-hm&&s3fLlcdIXz_N3b&6`q!N@sLb2xXGGF9`@=p$4=-wZ{z#JOF*Y&m&t} z@jgeyKo`YQfom0ywvkG_FEFp7;~A*rl6DF-kD$`+i7K@~Qbt=KOi&1(3kV9lVh<+U z!6OW|jc`~}ab87Y4u?JP2Yc0fQc_MWH$u#cJCh5qWAmpix*y#N%|qv{zG8iJ^v25! z;WoCwyZ0+KNVO0a%P~(%fuL2~VG}Y^QoFdlaaIl(hqJL{VZ_rJ0=%s#-F-PcWD>xJCWZadN%FSf8OoWdx(~A01 z=r|5kG|3ycNx9Y3wfM!_%XQvUEI7Y&9<%k@a-VxLUX>^>~dIDM-&+hVbwOEgDqMC#na{$(!hpA zRG=6%3JhX5N1>Y>ztjRmw2H^<30_G4mENqhgJ+PW?m(XPSCQMk9xp&F?{&&|V)@bl za44(iu|&m+)+)6RtkNpJMqYR>b3@YB@Hpmn^j-nU6cRERL3SF^OE=nuk4nX7vG8E# zJ}2p1yYOx>UkdMH1leCRyF#}MFO$>)6h_an1MQf+>vLge(r3!OlLt9U+K)^+r7#Eb zgim0aIH9-?ObP+YEhEunJMcN`Ngo0=$A-OUB7)ok2x`Q6wG)7RdT0lx+Gr`?a-JzI zw1JgXv2gMpQlsVXBR-{m56Wa(1Ok8|6kz&#DJvAEyrJT7HsyO>Rds&Ep(T}AuqPZx z4XJ0VPUc}QjNHXsY0bNDtI*sx`Qk4W%{6F7ykP_VD4~@u!RUg>O>BMO2%C)b990{P zTd@V8ENJ$QTt_jpXvB!^Y%y7d*1Zp-8F2JFG`h~Er+}k zyo2&AsH=#I<*Tn}oP%2W8em|A$OXb=%7;iruPstcWb;EnMyhS!1_9@-C)d|dzA+K0 z8?d1S+3#`ABxl-nr2f>7r2hh?tOsm@+B=O`JQX463WvxF!zL&MED|Ik)xo2iNf5LR z+KD14>jw!cNd6=1LLI5E+mZCPD23WH*KnbN95A#s&_-f?VXV_4gt5rcK&&@j#} zKau4zBOAa3=}#+`FCAdhFbvs6DJ);e@}*;)_BVhmb|#zvzH;qNPW_lQjpQCt)?R9> zq)Oz{zUNMV19)42X`8`%=B(}p3&l30y9sbiQTC=qifmB2!91$`!X zE$^gWRe7FD37hStY+b?aR7dZXWCXfHxuM8V&bdr@j(PN%Fo9FD*&uLVHXm%S$ask?;(zA@!X^M4%jzh!I559INtKhv{)dSt>LB$^n|&_uzcH2fdvhWPczGQXQNerHG0N1~MU;P1Bib&CoIGHfC!*9)MTpm-EkQ$cYlOc9h_&^*lqMah9J zEm(~AGhf!*bwpMhLfH&r!Hp6ZU{L|^h(BMB^;u39T<^ARn+I$wdk*NxNTe7w(@F~Zoz0+oj)8-#h zO4@dOeJOmGpz0_2Q5W@AiZnK`(ZR+Ul8wMcUg1ewlcT)BjQ%WJ@ zc9_Z#6=Am`R{=0>Y2{MY7O;VOgkW?5!(;4eXTi_M0@&9(1mqO=W9<9&h;?B8YQ#_u zHh9v0QG*(Zhem!yW$Z_-dEPZhkmN_eFN95x$(|BssvAP=0@DZwKCj^D%E50VonH!> zWle(=Qq#`g5-FiNZ&JX~c{@yH`0sT7T)|hJzZqSaEuHr;CY^tGU9--ggDiIbHI>26 z7kJkqL6V=xI)|`n=bw?qud(w?v-3+8Ty>r*?{ZX)bJF^(7u)<7*GnEJ zfBxgEC61k|GNkjL5>*< z#C}EQGwcPhODk2r(~jPU-X}-p=FVy@@ENTO(3|oiz;;R5-0>j&tt>Gu>}};xZTMFJ zzSxM}a18J~x9MA0KApK065!T2}sFbOMoJeI>YLjHgEpJbD4mY?ZI$JV{di0A#`lW z1*fCTr_Xg2x|aOp8ZZ$zT@Y{Kei^unTWF`cU`C7XBmARK(81QiC9~}uq*@T42NLt- zN)@-(6l>fx^LIkip7$UZ)kSR>-M}cutrBxb9pB9ajrh?ZbcA!@-gl`i(nR7T3UJ^Q zSp+*~-hvSQi6}r1$CF(5rl}kVVR>ANIPdX=(C;*AP0^=$=+r2tuZ z%BAn1a&%B>LV!l{D8Ta@RWxO~svoM5Dly6P9y$f|0$MvX|SoHOuq?07V%6~xuPh&!)$1BHwASRrS~V2 zZaV*y;{+(@P-`imjfxVS2I=6zm;AGa4W)NoEj>#88fzW0y>D>MvlZogKQR9(V6X-0 zU6na+PxX>UE^w;9gc>o8F9KPd#?}D2*wWE^HCncr1%;VJ7IK_!5rUd3%ghNvojuKM zWtrZCq>@>KRBjy;-V1DK@&VbX$*MwS>G@vL&6xF(0EJm}YO6CSQI=$ucol_N;zdp0 zyGk)@xhmzUKuD&Dre0N>X#-h~a%l=6nq%4*6QpG)(8=@DJ z4j}?N z_NX*>{mKz94Chvq+DUCp=+mcr&$E$C2M56>d#CDRUrKMsDGhtwoBb^PyPAs0osb7s zr@U7q()S$-htCEe`5*wycv)qvR6_|03LqsDWHXw1HuBIRd{E;3kooBU7Ib$cHFW__ z9%zxMg#Up7JXe7@>a%Ku~UO`xMHn*QNQ$Us2C4S^`2 z(Loahkxf8B2s6Vvg8`y!i7XOAfFPS;!X`ps5@8&oL2AIZ5~Js;;iCuCA`G+xOlkNC`$G1UvF1Z-(SR zO)4fB&Yk?HBh-Nj{1--OHZ{Z}gMa7IAG-0x9w&TWIUZ0gIUd9I_-aFuA&pPP_9?b5 z>O+cg5zMeIjcnc>NokB+`#+S%Ell9QAdN}X&|gR+MVCg(-_cHXs7X6tu|XIABkg=8 z88xfZPBJrlipb3TDb4A6bR??{#%VNS6uzGF)a-|Zv*3)xSqhx#3Ba)sPHPdqh;0WP z8qf!jLamnoCJa=J1oRPrbO1E<*A3J(Z^e-Y`Aow6X9nsHrt@DI@E6e#dRx&z>C+(4 zHVxA!#6MJl#OWTiLI&ys%KS$Lsv#KtD;2P9B^3}+`k2@(v<0K-#UQ?gA@esSEr}zP z1@3SI^*XkHIf?@)7{;v_uUD{L0#xWLb|Gx$#h%{_g4iFV?xo(iEC!H4W*(b&g;yH( zR=y*1PB+zKmUfglax$q-&sfeJ7)@OTQA#jjBWI9Q8%Tq0m0Vgz<>66Vo16yOBjx5G-&*^X%X zm-;IiEh0y!hj2v~$i$8igi_;%Qw9YxmDi9WWJ1eg%5GB2GRpnT(rM2f(WUb?k%~jSH<50EHEc>N3T+l|-(rA3OE_)aVvJ`XMBcg7 zz(S%d=*Ak_%6J7f3Qzw;@EAl55pBeZ6!8qreO#-|Kg#2T=Y`gg-HPe~C5Gnj{BNauu zSj?2vw@u<&MtM?Sp-F(A(z%bAsC&PJfRKsZiVRBGkwn2jy4TF-L$Hm5(*uhsqa*Nj z$R*(;A?zRF84ZMG(aWyrp8qOb(1vC)kFmbf{fM}rehTjNSOnejD(`1A!Rp`ZXR<(+ zp^MbFE#lf`6RCJyP3!0Q)v|k<4}|`uN@D`g8QtTjD1`rso|8-#gAjY2OQR`+_yZqd zc!i5eD6FoidXREnLik0K3`HvBu!&utI2l$9!>KGNf<8e^#;`wQ9dgP7uh5*>&wxOs1XmW+7pnnnweTnAnd00BTwkM_21cxl1{CMxT)maC zAF3;lJRWI)TBaJK0i$6^p*ev=eDbCk{2y*5Chks72jlL`V8p;%#lD3OOp8TpaV;5g z$w=$E?@t7>jE$DSaR4d{?#3eJJ0RDs_hAu~1+BpVHN2k(D4^k;pD{;qg`Ac* z+zN=wBM*a!Zx}Zg6W3W(js9>#^SFLRa>H&HfZ{Dv_Z2q&#o)G$aOs|lPfGBMxKl%ZbGE?mS@7!q7c zHzDDA0R`=)8k>kgj2Z>Xutj?iZh=Y8MFRR*T(LF=N9mW+f(WjqOBy87w`sxw_6n~* z!lm^>IJ{!ANXxz6MnDY~DQ42ZPlUi1+ay$oR!WN^{i*Xz1PT@}H9?L52R$I$n1t6r z2&K9xHQA;bT?7&G{T)^2ff^0V(q^3MLL5Q%A~r&3S^}j&g6a%AjPkf+JP!QWH@R>{otD~}DOc=F=2TE}Og1CH9hO;IjMHv=jeuyNx=(KX! z3xp220-@zVMu@&h6{)lIT#In1Z_+8EW5a8P^@NN~whPf}^ztyBsxlMYXbpfSan zV>?qZoPZzb-!>BG*Jv;C2P{75!%iwC9i_+;wgVv4@}7^WCovt0UOq*~dgJK&PPE2CxFvewzbOt!OB>O4ZiJ zL%c!&+pb8~h05dck<{X*`6!S00ZZD_Gc}#-j)z z8jrSYPOBP^s{~ZW7*m#_buk|EiLw~ElnW4>Hn$ujO!0-G`FY2ghBx1D$xctVLF;a8rz$j zXDt$k{Iyv^#bOYV$;P5RlaJNdbkIl6ry)Vn)Tlme#!`)Ui8SGMPD$UW#guhe8HD2_#wR9<+QI5D zAC$2=v_MjYle)7q*v-?lGdBunBk|g?WQ;3f4_4 zND-^^P>=MRZ^^?R4W#`7ZI)A_dU5M1#;ZByHv`d`4m!9o0t%WMC)cOniPf1*KZWkx zb(qL`^6OJhM!KV(mzv;gEAB z|A+k^^nv{#P(a_XdSNPS{wVuBKwv+Jq<}#ePAQ3wJs!#|wy?s9@Fx}MUJuQDc0~~p z)YP5^M)!Z{4zu(}QJnbmTVi}P2MEtmlAQz&`=2ClE1@WS;)3jyv8_Z1c6pRx^y;b( z6KK4lzr!en)OTZiD8h|l!14qeLMK$BY7z+u@GJ~9(v~MU)jd#c4Z{fFriM76E!Hsb z6Z^Y}gT>Y7_+*fkNZ2c2Ew3O2;UFtv+(Q*9lB^7Am3SnCdxk5$Ty6jD^ z70OCP5lFMGBSr1lHk?*xTTk$;Pc`lnX~Irn5rS-MTqn?`S)ay2)4ihDpT6Mvk#GSi z`cBp}NVi&g1ww}dgn-^chh@;8gz^qSk%`?T>hp~UDu{cQ3ZPb@bc?;Bmk9wAg>QTF zGiKzfCFZ=r?dY4Gm=2|KH6q>GLAv$Z>p&46E$h|}i4c1mGm#Q|nYTO8E$9+s{`)HF&16T4|z`!w#25dXpifd0GC7Mo1rDz5~TmDXJgG2)aLOg2h zoU}~fRWmgzR-|!JoMPti@oRdwLQIFBUM14BO&<6i{-6)Te)1iag1ZfKM{zzQhQW9< zT|F`lS0qBxf=?lIh;kx!V-V#BNI)|71V~~KgrNUdh;{;X60&1^8!XzNUiptiyP1|l zng=3{`xq&S^Qai9OAsmM0Ev1SEp2o!F={8n=#>C;`dx_sK5o8(_#Y6CdQ@NNrZWGP zaG}L>>B@Od=)G|!uBNy4T@sg3_Y!cy82Hts{-YUnzeF8DSC16(RZQ$SaDjn_o5}Co zjETD+EP(Zd-kc7`+A;Vbh{W|~#F&<5lq(Ao#mtKP;#In$*My>Ldtniy%q#+an;z{G zW5-Klwp_*x1&E7Sen0>d-2_DU_(?Z9W_5@~HITq0s;LC$C=>n( zQCX-cNK}WY<8;qfifS-erZJ&nKE6V?&-qCkHaeb{sFzY)7dgC`61y3x?;C_slt;x* z6VH``3~f-OPN2fHUZj5!2p!;^HqscEV$hUF=rKYP;c13DZ$P z#OE^L^sl(d;YWi9@TY>BgkJy}`x9T#8)#ca^#rSmGe^AE zE9!FyR&kEU?G9fw?rl(C-U~o(1mvtfRP8YchM=V{VyfQl8!hX9i27Mw05E<90AdQ> zV&&1dWN){j2on(c+A8)X3Ss2D1vWdFX1TVE zMQqV1ZbgS1$PmzrD=7L;a60ghbF1itGM_%$Ojix*YQb~zsuc8UeXs}ivj=ko);-6C=w^#tSK zCOen{j+3`^LXf_d66X=%&^+(8jBd$;+o%b$BpxN8PPd%3^&AyAiVb1VC~K$2O70Li zt@Ld**VZK0+MaGJK9aK`(swKTEP;6*gC;OrhQz#C$2_HD)(DAtqmIc77`OgYM5xxU z*D(+1G(QZ9*+j?OrDNuW#JpO^+@fO+4T%|}V{X(j+lIufr(=3`%vvEa>*$!Pbj-aq zLiN3-j=4g|{3Il1xQ@A8$8?3nEX8<;(Ojlu-X9Y4qK^5jj@cn3=2;!HK*zi)B<3GF z=0Y9wm+(-1KcQph=$M~}#5}5F&d@RQLt-A*F{kL56dJFr^YqGkA*FFTW~Y#t`*h5a zI;Ij5bGMF}qGSGsxmUUMojPW+j`?Ls%xyZRO~+gu67xG9)1qUJ4T-r~$Ly$M(!QoL zpBr?{Hacd5keF+A%w{^K54p-T3w2DBj_C=Bxmw3;q+>o65_6@F87(ohJKL4dt))p} zU-xj|ebMgp)wMa#hbi-a1zgEJKvbOPYbf*gQjRR*V0_AETD0Ar9PLl5%=ANO!0y@- z@JUGj%fZ*7n#&sRm`TlK&8pBuU$-UFF$*AL)*K}_UvN_kpL2CjSbNGwU+Pftaaep1 z(s{mS_ECI%*JN|yqcPp^@r_>iutv9Nr1;22ALQ{p_zjJ$WxoV-g92&;iRcRvqrPc{ zqAG!z7-(y>xDK~O4N^mBL<2^nhP7-GN%48~K&%@_u=vu#5(?{-j#X3* zma1btUk%m)9V@#UtX(=*|7x(d=vd9G!P=-})u;x`t7Fj@Iv0keN%c5gFTn$!79cxH6SZ#Ey zw$)%Y)3L6q2Fs*l{f0N?RV9f=I+mvztY{s}RTY+K;DFtEvIag4R8s4`?pDn{i;pxF ztDSDZ7lsZo2EP5&RU!$iim&CVXRZhQFvG7+!Uu+vXcd@4UnV7D<#^u^-af{=N#Y?n zmE`J&ZxqcrRSEwE!r#gGEh^ySQbj#j_&I8&dZVe{cU-Ss74=Yj0QFVWKTxTDJk{U8 z^*jGXeSmj?&H>QbRf*2eaiCMkbh`gdIzZb3db>bxOC@@Xh~7%3clSS}2lS1gy9IPN zR-)UU=zhR-2mFV0QOyhb8$sV&iT)4Qf&QD=KGlLc`dc6a7uz7~AE{ZIKw3B`w)1{LL?@qrY> zZrc*XPvr^Ij`+a`qs0KxxUhg|TzG(JTzG(JTxfuJT+GZ52E&E#vV|TOz1<&eu8x)T zVoeh?yBf5@;jg*+!#fJ+55svQ(kE6|sc z={t(}uw1d4M-}m%NqqhfpM)e_&6+(xki&wGacWopP)XC6g%81j9{6y2(W84&tv5ah zO3jRq#>W%kGU7vxbD>}*&5G4{BJ&+JkUzN*K062O$!LVI`oqVh@7n>Zv@x)DGygTG z+WlFwt(sYPh_>*}IK3_YxH#IuhrVw`JI$y$`qXbeK4&Ms?A)eUeV+*81Ep0q>z;HT z*v)Lt6C?@Lc!+9zC;D4!>OH=>7(bF{t*ows2Yf6~=Yc;|4j!5b9@>=ifIi`igZ!a* z^wU|=u~=ngv?>zZ`0j>I6%^1Xd&PIeeOod43s%)8 zSnB{77ts3<3s%)3Sc3o<7c6DiRRlXnSxJ)%=(u~qs=5T*69D6aG=@>w-scH`aRI$D zwO~~}g1r_1;{tl?N5LwEU<(3ZToA=DT7mh+iyALnK(A&kSXG~3{R8T8!48JS5UgDQ zj0?VCSObDx69D4^dSz z#s#l1ERJAhl$Cwwf;@&@Pq1GDU{v6ru<8aX|2m+Y3j70CnW+4efO0DEcUjex%AXG? zrviWcsvD`?8Bk6I{<@^o%IEYMNH4w!T9P$9iL8`U#Z0;vUvIz2(@aeBpy{=izF-N1 zaI5%;wfusm%3s7*@HJal8~S2w|HveKO_OaCKEhe7J|2sC^#V1NRQ0q>a`%GG?%fRO zDVmbVV``Rk1Y5NTMy4Z4d~y~=VcGs-HHPTEZ*%=-a~?Wncl~L1m8uOeDmK@#B-e=~ z*E#wOv-aulAgpG8iDh$b06AO!%t-YV6iX-Bx9v83qSLA@U0W4#e9T_`4tk?kfnC%% z1XX+v6oivpKdRn9Cam~OY$#TV+MCcAotpD}8NR2iW7|t;dLR-EzC``LZTE;4k6}nz zF1Gyk@zfcR+6_`k?uPL?IeP^Wg{t%ev=TwvwK4cw%hWD2=cOf^qo}}>D9sX@da)yc||HIIeimblkgz5RfDp!;r=)6 z&axZvs!Rw_YaobnpZxY$PT_{0Du-E~>xLw-=1J{cc8 z+kEuBSWHn}r-(^(0NW!T;jb}Rw(V#JH55QP6%P3?HkqW!I#}xa-;7| zDKhvzYb14x$lAh+>@HmUZh;`mTeZ3NNtr(kTT|X(B^@qD++RJS~-Oy1bHHJ5jq&{_Mul>am+bRWDheOnMkLGqA&wy}JV& z3{+m7zC>L4cM**V0Xzgzgo!CP9Q*Kra*$5KByL`14GmrL&;Wb;5VF*;0&HB5K$5{W zuC2E?Igk-;E`NVZ0CBQPbz#F&G<%c+B4mkB^`OlOs}j%^jlyls11MPW+2!JtYVn_H z5rEGIiNpmfl7d&%l-r9w<@RC#84GBAK6%^0-6jjXq-6j>%#aG^BBgkcYE;Njye|yJ zCCrCpeTEX*05epQt(O&y)A4VAd=u!Q7Y_lgsgOhEgnEa=UNNJFCRQHdubMY+%^CgiU1{m zo+*X3@{_kXFV>#c(DUqrX$Dm-EiLnap)$45P*&zt+t{A9M>~~(cJG+ijI5^B! zbfAtu%6Xx0HrnLNhI!i@4LzSwqf_-p?P!!#6kp#)MBi0pYZvvwR+GVYuE>Cu#i7{R z8Q**m*KgBhHntk`mqW?k%(WQsvFkHa0CCM)Q;GhAvdB;rf4MyAC5eXFJv$=BP8=;`BS8WGetIPYvdN8}%LUd4$ z6ANqNw;)}GKZClzthB62zNQJm*h7IuZF?^>UfKRUkdYT6+bE_*l4;5sSlrh~ro ze0?R44yxuPKJ=W)&{E0W!xvd}ksZI9_E?1<1ypLql_HhA7~uInV`Mwm%%eNptD`Gc zxN?PBiB|G{0fgOsWo1oU(ZPrwO5sMU)7Qp|;hi4YH+@r5*k*qt=Yjo7p|?lA&4cpB z(+4`$JE03@1>NIboeHWY6W}9!d zxpvu_Z?SbMn%c{jk1y5Jo8JuTc=R#Po88XVVi-PNpYNnmx4DeZe{a%dckVJ2)&S|K z!_hyu7}Z=!Z=E>M;u4I1iBYBqm%d`I;?)FHGsw?$hGCAsl5xQMtkT1{F< zT(l9Y_xdHMUKwW&dv-$(fed7L3?9m=GpT_*ucPh;Fj;GZksb@fgu(>Hgn|8VUCQ^A!Oxp_goh@* zO#P8+xYkpprndAwm<^4nQJcUJvyk{w>yflvDiIqxoH@5Bh3I964$qhj>M8Iq3_;#m z$8};!{KMvsY6Kw9KD8CqN9EIjbsJONPphbV`Dv~0AH*crwGQIB&r9wVn>%qMaMWTV z;7(kFyv+^2wR7+2tlH|s7fQ=q#s1rE`N?4vkWyAQ@+Sc8sbI9h0_~~*wEXVppmWo< zJ1?0W-#IU}fI_c~^#PEvy4GWdEJe~oS=r2*-;*2LKvVkMuAX^^Y)a2vs63Hc9!FK2 zSICsRI}Alh57$Yx7=5?7h8yVZ(L64s%+}$>*1>Xk<{hKgs@Ppuf~<2S%G!ECxdBnG zM?~C-wE|hJrEWY&b4}wY}yXzd6NU3X_1|X zO790&s;f>yC7z~;c*-?;UcCs8^<5wi6d6&vSd2Vf6`u2qp4fBVFf$UX*WNWG4oUPO?Uh3ZmNyl=3 zP3sygN(L+2vb^I;F1-TQT1dpL&dcFS?pZ)xYn=!8J1_QB@>E=fYV_$RgJe0RVxuHJ znkJKi@mdpJ?||<5?;;6xkWJLFr5A6Ah-fJ~c6)H$(|=a(nCJ#Pnd#j^ae3;AATB=& zL4mxWb)x^0!YK07X^wo1+AyKlVw~)9j`W0GY61hdA>uk%RQznNBkEC*#ZkBVJ)zd8 zZ0<$zq@pm`b=jkE#QWp4>VjSWF3I-!vg~L5zjA%pb5eFO1*{{aC)42uu%KQ9ePI>J zV7WWoN`=1#6}m1K9)W51kn#xoo(D;nS8`ogO>p7CxD(aICW&?;5UtR!(;z~sH4wO( zfEt0fhydffui=#2RM!=|>r9Dpe~Af142BZpPco-IdX_fMUE)>yg|f1<#!6t+6WlV)Hrh<6$txBE( zB%+kvPNNc@1uEabhZj^<1W@@*P&$70Sfaa;v#QTc4L6j zvm4~hsA0&CvN;pR09fiXaYct#@oiDD4`7kL2wcEQHvdt{`vzImcPM!)I9CImUBb8t z*8}&QZx==)xPd4m0O3B;hrF`v766V_@+bxl4$_spMVyNOo%w>!&Os)_6<-0NZ_19N z#)v6uD3=kUJ_AAoM}$GIDv3RR@=@qH=VDg&HOk5v zHO}ov1#~%TDqzt*3O(nYRq}cg4rHR_wG>=URPyMx(?m+iYbF}Cpo+yuktc3}1lJNp z9^Vlzs*$PWQK(+jsezm}a1CkT8vLPcYJ3<%ZTK($!NY%cAO>!kq^#tvL{6*RiYo8? zU90?_RykrFB2n1vV4VouJH4l4&Icy%o%~U@2fTIUCMgV?jUur}%G%;Atv&5mY=N#X zOhPLG({-oLY!_;;=m7TOMmv~fu9U|OR}jW+AeM`|A~AA;Tc*^t{D^gS4q0OVWSqIq zWN5zE)pFh^+B9#Cso+c;h;l=A17{+=2G`)IQ(`nDL#E$t?1Y@}JBUHf2j5(@2(4Cf zZ$`#92>VI$Buslj2dmD2(l?vT~r& zu&`kb1VF-Uoi=8lwC48!IKM}YFn4?DJ-`a4LKO5Yi(o+ZLXg1y&~dWHQ3zxjm!-#GDNC;kuj>T zpF~&Yt)qtFSqn$q<~nV2?NG-A3pTd)N+O-oRenWpLED zxjWlB%`#<2x*s-ln$^s44RzMJwqvJL+55N_nukoKP|F=P=P{Gbb;zD8&Z39T>C{0{{a%nl$p zQzv+nBv`AQU^cfoSSMxxirlcthHe$4nh+DDR?kny9n%4661x1Sjth4 zyTMLXiSf6U9vgL!sd>Y$Yo(l9=X)c#FeOFfSLJ%2tUV!mr)UZaFlx@ zt4{G_L${WR0T(YjGvhtAi+|T9a z!tQ>!k-8GyCOgE2KXNKsh$L>@?PbT$I%3KvHW`basPGSG^-1*dOHHUn9(BgxOaTY+Fu{X7x!mM<;eGPy%Q5 zNp+wgg;{-4O(DEwA{9=JYO^{&Lg-G>uds^6Nv?NE!W>=0Ts}C)_2hfFPI7%xK!PuE zE<_@xvU3HpW%$u{lhPip1Nt;W#9B-d411XaH{Hs@9CiJTJUP_<{1G$?iFf8f<(~jo z{(hdOG&};l&f|y-uJ!#6758){CVm6JcZlX*Nll(qmDo`}XLgoHI;Po*jzDTZ+T0(q zUP8)iRf^8xM`k?tIb;^XbvUWM6I4E*%DW@hbW&X$0B}rP*gc#IX9pIhEbLyxmJTX4 zRyN^rVBhBU5GQP1)We6N&UhAJ$y#OQwsX7vibtic*FX=M zl8Zy+a3q9H`;%>2yFg)G4@qu3hX6gX1a|!vPYTi4Ih1rY$_<|?$#s;s#>Dj3Xp!7D z|8P$ZiQ+?``R}P-b!QO0M~GfU)pe6d0?AL1eamYM{#ps*SSF#CPqaDhC6D5Vl5>6{Hjxo0DBwBSCd z3?133pub6OOsX`4^7#Uq=@|DcoLW(1HJ-mR;0MMX{rops7fz6jU#XLg(=q4N6Tb?k zk7LmQ(~jnLcdtl$=U&lSbqV}3zzAh>6wr>xUl7Sem@@lwyX$8HuK?IL2UV9x;zj{d zDtsQ?TRqgO*0hpKPY(I6qBin-hFKPlE3@a{ALi7U$dpWs1A_BPl#)mOAaRo(%uW4} z+&EfNs|kP+!FtvWJ;UnQ^LvN;8Z$#@G5Kc5p{d0s=hX8DMX%3MJ3$@(01$+;13KJ@ zLc$%XiM4<^FV)Fzoa8#|p+kA9DPW-9MF9Y?i*-<%$*(scLR#Qfk!1}n3aOLAXLQP9z!DYcBRKUe>{}#>bcOP z`lz5GA+nqpMunHL?V}*HzVWk;u->oTxVS<)B4=sX+}1Wk^04-lhB>1ASJOQR_1znzw_Y+cGjL_A@DzhY5 z!MRZ4C1}SKiJc+w)~1}dy8ec0=VO=`-_vl^ryP0No-c{B!Dx_8ZuQKyA?9vn<|_Jv zXL+@1`I%1Qp#5#&eXWBBSVoP8%I#~jF*aq+dYIxMDPdp97TH#AksJAM z8>8$5H9V?}|7u@91VghUsI&={)Ln60WKTP)2oa(-s$)P4`q>P!rxhQEtT=dK!wr$S zEp3QcVXj;xKdqrH{j9q55avWWOYI^7+ag=ofpwIL+pDq$a?Q;8#r1YRFSj5$=q=gBeXA*y1Hy`OQ3#q5DFMvhr9 zMlbILk+lrS+s5~k`cm;i6k{{@l=MmPiJf4NO?YZ*S`ZqU4;=TPMm0ekpkDPK070}R zLG(n<-?j>34fkP$5$dAl7#3?5@MD2bQ7diZ3eN%IA`Emm!Zt}n@$|jGpe-6&yhNh! zNcHxj)H9Oc+mZ9%T45|*N0VHKHK+Ty=mYOt&xrt8fU`nzBdhC7#R(4EtT;<+z_L!K zRwfb`7?QhS|0)HKV#rHhk6YPe=!Rub5MqpT)dw(Th;({J65k0#2a1*-AvCn;APnAG z#q$I?7QA2Y;reC!flg~tVIfsGbC1}mJ-Y|8OJDDM2NTF0_v&Qqb}u!UgQLBPQ5a4< zOZzbZ<&lUG5v%z?z$Pd#WYrFmq3xd*vT8?-NUz8Wbmx^y5vx~V!ffe&bo02FVyd?F zuO?#E`DYsVh~rg7tj?*KzzB>Uom1~bi3mrXQ#*q%&ngnfZ^oH z*oK}q)W6k;X?l_=w}NuZsogh`^WB4y#XO^ZMWx+ifWGEX)ofG%mN4%X%_*C;<%HHR zB$~~=oHpe4PPoVWEVRW=j_uHLs|+~p(rr}SJFr;9g?{^~e2nXOwop5V`-Ni1=3+Yj zJCj_;D>KWwfV0h7TxK80LL2IMHjqS?gr+D%Q%?XFDyBR|dsJH(=B*TkbW~jLatB?v z#S70$MEQgELbQ(yF+}I7JJ+CbPovq$MNw`KF;oLNUw7<5?5?x4iNd+!>PE>%wZHEh zQY`Kq;?CA-y^{Mu&~hl8uG%63z~ZlBRC-h%mHxW|M`a2%pB%b*IVzoWq3QZlaY*h4 zO$>?Rxj+&K139{*vEHu7I4bC$9^+7QmjrbzNsL>P3+I7;#2$%Hwa@_O{s27d!kPs6 z3J|gzwXw$!^Uiw$4$9TbMs7TE zzKgIO9G0M|aD~{n>A~Ls+Y$XRDs)1HzV3_=ky4w`Onaww)oP~Qc{#{lB)ON7z2M>y zn)w;zNH<_;Y~dyl3oHACni#kxKy>_7X(sy)!UlZ=nyi_(kqE|uoWBOOArE6zR&8B1 z9e0<{og_D}CSuD@tJPgRZ(loNusDtZKDt7uEaKR#t}lWxtW`Vap%v;PZ-Pm;fDGDJ^2y6eMSQ16mD zU3AQb&sml|s4`{X2&Kch-%b>%?g#nWT_sY@no(o@LpSE)n*OGC*N<%RlIXdBlj?8~ z;05S@>U{&$rQ54X`BNgv79m)6JX`U{Sr!fF)Dc9KA72GblHnaw{k| z5;>nscoBBj&g#dEDzrugU{&xKI~hQG5mjcoZEpihWU+M~~u{4gF2E(L?ys(Ul@n3Jqa*)FJEi zi~m+kYfLpE5p8XFBVgoAT2v|C9=5*{=2roj7-I@G1&*s@#rH_&Xv#wmw7`Fc-` z;v!=CIploTRXObf?rJQjiVpxCa;>lu>o&hnaPT2$H>=G5jPx4Yr*2yUcCcJ1)5ky$uO}Uf;jYBu+nvX>$^a4FxBNmwPLJ>Jy^I6OiMo&t#6P+ zd#@hqZz{-n_E4@r<<3*CCvv{KglWJ=-tPLg8e!D&*r>DhQOE9l*ie=|HPoQ%y>!68 z!aa?Cp^(IC{mHj9srirsJb)=g{L^lsR3OQ>Fq)tuP33k(GD7G+SL< zpuUbG->qn@fZt)DELs}_?JB8t;&r;0hNt`Kv0r|b!T0pUZ*c*hT`mbDXp#$0F1qfa z&#)VR8ijbz2UtCPs*q#3XQ!Hlg3 za{L+=_dQrI?a}-?mV&e4;n@iPL1=h2mV0wqjLp5(hF7=nv%l_ed-}NWGHhH1pSQW2 z+g!KW@SGnu%s|aVJQ5pc_h!N@F7Sd;`VrqbuZcX7%{TS}%S2s0w+(E!1=}bbPW?Dc z1t!rCRUszxjpGPV1ON!ZY!b<{Vc`nBlhBY{RzC$Ry-o4li|42>&Q%^ig!>AjvcO&*FUk)~}6UkP|{TYO9^E%CfoRr+AXeJo} zLgM>in&i73xFM0Kt7V2)Y&Q(`iAdGMyJh1SKvwGjo`N|X=AeV_LWb&{@Bz63ooH}H z#QV1b1qY!d+;=^}=XF}k%(!YZGf&`ING1328hk+y;VQXNc9N>Ei{fG?(Fcg`jRIHqQ+GJ&`2qb z1l0EzqGTsZ)N63%n@(NGH*TVWnkY!6b8a?eC0yb2_bRz_=_Z^ej@8gzn|q^<0WrFZ z5Dm<9;Kb*pbVo=0&vFdK|51(%{2$|Z5dYI~CeT1b0Y^y(DjAOw{~$#5Q5DtIfe@g-r&f`u9fe^1?QAYMT&NU*O0;OG ziBz$COf?CWc+svw&BXDa@-Cx8i*3#eY1t3RZYC)!>-R;tcBm!;t-2U=$L&JEFW)Z( zypEO;5*OYG=PU}pM+$O+lKVPF$#*J|h3x>kx)i9s3uqo9y3K)L?xki9gb^=2#A0l& z2S*erF z#IR6{O5UB4*ohH9FQXL;uSvx(CCRrWF2o3fPFJecoss19twZ{Q`I_v*V`ODM*lcK; zJ+c7PLrlyyn5D^O55gMKGzkL%Hg=_0CsJ&Qeb@+XrkR|0f+zAom>65)HqIZUJQPMK z5;2+N#vQZNNazb*op@f!n@8>8I8!bijim#EH)!VR`Qawf(h{^ZG=+NzgJi?gfv0RP znjoaaV5+khzl4g!013xslzBlh8nSim!VG9O<59*uLr+i}z z;;NzG${Xg3M@@0hkSLzjDb__fXm^Rn0yjE7GW!}*+0#Q&_Ym$^i&k+AhxPUl6@RN2 zL;K1eC)wp2w*kV|=tCX)3831*YgR?-(!5Tzh&UAW>+{?=*vkX9+5^@?v^b3_=Np|w zmJBMLh@l?#0QpolI?|M3L>5Dw7za96_YkVVbUaN0&NteL-5AvP%gNs1Z%+1$n>CT_ zV8ezf{sB)ww6^~~wDvj>d^m0*rX@^OMKBf-9ws> z<|ON?IC~nL4I$1hZvOXLBCwr=nKNgVEnH%)dG zZ+r!#{1%P zHB-SKzyg6|M7e+h-N+2URe1zes1Y?v-!AdQxuJh99Y@E%n=z@`r@1Yyx3v4UN z7>DV`_#9bHav@$A0^Z`#5IO)8Y-1BV2>)T2=aIUxF{a@~4#xNsk%KWNhX7?T##clR z#<)3=^)>E5!jZ;!Bhlui9If4s)`c6T!h*zVrR^w&~FIf|Oi6~9sRX$-q>jxfD5sHq+6D>yggJwom-swPbCQ^MrFNg~63ifX-# zT7PMB+x|_Hy8y&e_;DBZs6HlbJcK8s)J_2S?uYQGgdXZrZ(-CzeG!@X2c%Kr1!o4; z2UQd%*hV2u+T^$*;(e*;azTL#Yet(xh)l_&d|Ca1;Jw@tQZ#LMhgpMDBK_fI(Jsv~ z5E-#U8%Ej!YozwV=9cs?XtVVa4>UC{H(Q9V3P;Z8B#<^x^+5&C0ni?{6}fXfchk7C zKrbIz+L&ekfT+&8NWV#=rk;i_fDM{aw9A>`F#3kvP7LYusxf?-d$S{040<6sT-tue z1cY=v{z?0thWI~q{ibv~;ITXzP9aB+V$zH>Kw+sxs8sU*Xv*5c`4|#r@%mzOEBthU4qV z0%{(nBMaipbU-5@Yy{yUYzP*@#!J2-?5puVjRwIR=EoL=9#DeNy)qZ=Ul}O82o69< z&nhZe?V?Qs|KrIjOcwDCI`gYyU&+Hgr?TSWV)aw-sHsmf>5r28ydZXdbaoVz(ZDcL zO73ISVc1tk0{&+@ZovO^2Q=*bC`SYQALD3*|7ngm!N59BxF=s|*=TrCA+46<<_Z?e z5uL1#!bXg1`m({XZvZaU!&+~BJW(JgiuI@o=(w*vPR$^H2jx@XA{7+)XpRGpwY!G0 z=ssLwbv`u63Vq`EmajiFnBrF@>yM$-7tyAy3^n*C165SFwzB9}s+(_|d5;M}EWCHL zcjT0Vw8&$*?;TBhDx{4PP%(+$4b`Mlji`I?HXGgo+;ub)(t{N8Pn++KVn zW^zB!a+cUQy2(6Vr7Zf6><_=xIC%)z)ZP|KZ{Ksx!8bo@QL%WxXa8twv(4MwwrL@y z`Mn#VtXa)>xU5YImAQI%#QTbx;bSWIg83xuz3=6AEigCHYEANI{xYy8f?_Y645+_>o$V+P?8TZOSJnTj=^v6a}Pd+xgG7h5=p*k$@-D#gYS!0Le?M( z;b}p^=p<~63#?}iFwi#=#Dz10{m3-p75*EoWq=p43Q3x_0=pZgU>YP0RZM)2(#f_& zlDLvfUo`L~;Gf|CQL+xOJ2(@KSLTy21@Ej1%(0EP!g}aYZBL{Am(qcEMf5PL#CNvo zuXqMGwUkBljskF#MDO7*sYUAwhAwg!sfrsftm_@!=sqhDFrxGh)_lDC6(hT0Ige~9~kAMS48eQWUC^8v~5kLLWmjx-apF(<+(V|R~3U?h`Xw)M}ZqNek3mN#Gm z|NT1+TA%0)Wa$2YwWB;+?};o{Z-Z_H$zm|-{V$V+eZdwV={n|}I(u0Kem@4FYJM@( zlsuZJv^+?24IR+$<6srw6~H#{uAp%fx12C;!a%2j0yLvzce%ug8&c7152Y|EYAWta zsck*bxA%lCNuaz#=wV~ZFBADF%Hu97*`A*Zk$+L@r*N>f5&w;BjWmB-c*%k~{5@ly zL|bcp#qg08VBLsR79ADlq8nCYv0~$`fiUf^{*7$n71S{6_w#~1jTUTr?=3kA`Td&- z3s!<98ms2zXW20NZer487Kv9e7=1tyjnllO@5LZFPWA*(yI>p!^Rg-Ip*{k-k=G17 zL~m3U^&wtec;IBxDG{{bC1?ZlMK2MDBg3yAC(ByWjQJY<&-fzw^2%!q;8`+(lH=eb z0{#!FfV-Cp=Yn1g|N8w{1I0VU(KqHTn%6|UUznM=oyQqIg%_B`!F(I43VDsM_T_CEnpZQx0pgMaE^sBDWyD5}^Pvl2ap7u8ww|SlF;TikvDEKlq zci3{e$8`Wk%UkRy&TIZSQ$X!Vm^7xCB@Ue{qQYxuJ~(}d3{VK<=N>&D^4g7WrG7egP29_<&< zei&Bkuxo2{ZiBoLe-qFI9TchiA)fj|+6Czhq_e^Gr$})|zw9zn+MCiZY}UPouo=-| z*Ve5SSrAq$IvQoy;cwLkrDZJ$0l(0=270ps7k?v44L$Ief zM{3&Yb#&J1ThEeJucNhI8*9C0-RhZu2mEgJBAJI}sIG#J#siW2_xG;^{*}PL68KjF z|4QIr3H&R8e20)+gV zl*Y-m@)GfK{%Ld~C7kve^wZ#fmX=MX>u19)l<=O0Qd=zxB?f-857Ld{7W_9D=tUUx z+awvLkSqNfiNp{qQ!SzWH2w$ z)0HyaAk&>PJuK6+GOejtxXG(!db3RLkZCWO4wmT{nNE}GBQkwjrfFYeviVWqPwr?~rLPnGTle7@1C!=_4|ITBdKxbfru;$h4wd@jleLTxRMQ45H06 z{Y*j;dt{EybeJ+`Ovy-hWQ;atPBNusjm@5zG09=*nUys;E2yOPl&s0=trJGKo|rae zs=?O3Z%>0Lnwl|TOzVsp8HR)jqYVkI+IARguw?)zb5@3FV&>GTnUlsE1~}5v9|$V3 zPs(&;rcE%71F9(q(l29%BcOOpTDk+QXq0ruGAB7Q#%5$0di9@@G3hR_IxTHN=4jKH z%n4|A^5_f=zy)a&vNF;}&ooU2t_E;So@|jTZnDhygr)JzG zh)$a9;QFR!jN07LtGj^qq9!${q1U|`f+Krnjxb)=mnop!F)ni| zw=015Du5(&u6=Kn2xA4pfGQAr4av%MWK`KWL#t|C)UC2<)&+r6W$QgBjSgZ=$Rm03 zRH(;fjB9{M1ZY4;#slTUEk;_DRYV<7rD|x93Mw$5+HugKQ^A30Od1Amv_TYBB_ADH zxk^<+6IB4MT%{@*iYkCsu9B2F3F;eM9#Y~1dQ~m*0lfyW%!PcJ*yKs30glo3{^)-d zFwD~mK$?3(qqR!foaI5xGE6sQwJ>CjGE5(Z%qWCQiIMQ&73(Vn=&SirfQ@v+As-3sSlzbV>28AWs20bN_0kLjLn?Hja8tgPjScq z{ggU7N-zgQItKQN>#QKgct2{9Lma#gma z0-LZiV#VbdAGm;{XQO7C7)tc2#A8PXtdGmc5;lP?l8&!Uv#Jb>Mz^Zzt-&=qe=%Lr z?!AHjK)EhSZLAJ%?|+*qduoPBkf2^uzpJ2^X3CzF`CvB8BzYm_c;zjI(B1&NsyZy1 zmGr7M7=o|R@SuL!1;HxuL-s?bTZMLM{Q%zI>TlHsOYjvM9@LL}1N#vIKV(02yuauN z@cvdmsy3LSAEDtv{TL9~j}Z7F`vJUv#@}D`H_#B56Am=kqCZvQ1$BwAq}oco4Xjte z&`ZSX=vNQ{*9gQf=QzzYI?a(5xX@OCS7}WS#H(&94(JuqkXJJJRp3=J_!6(mCIg+x zzq23&;#Wx&64d-gfy34mj%Z~`2jf*%ql9T9E^~`ao6GbznYNbc?K0K$;@|Xtmjtx< z7C)!(KVa=+97qoQY1cU3%D;hG*=!rMa-%Hol{R520ebQ3DGK|+tIC)(IeY9lZQnxf z9o($+G`M;k?I0IxDg{L97!tIINy1b^Lb|~!%I`86;I}w3rnWM5>t3;_4o6pbjZYin zfWtC2Eo)TT*bGzp6Q>}KLK~-$=%#MmTpbapF-@M9ku?UMVJq3# znCuA?kncGoBRyL-U^4X%)h;+U4V>&qn}9ypCymaS0q=IQXc+7-93;uHOXZSB6P*cPQ{WP7^V!nFFPJo#=%I3&x=8^LM zhY1k-h+&uEaAFxAT`t4(hh=!aq-;O_JouZ7zq0=l0yRZ^(2sbbAMry!;)#Cy`M=WO#giFUz{DirA!d2Q(W+*11eWR|I{=atvLX{jfr)2AD!6`nNLobqJD z4|@Nir4oOcxlzj=124UD-u(F5KbsAE{GgV4Y`@H6{CihjpXa|vH6Kpf_RTln95TN? zC9%$ruWiv%&lvt4Hp^6ApOx2VJr5C;S%=LcJ!^iU=Jk&?Pdh5pi{^SQKYsD#TSsMj z(fsZ^^!r2hUo}6mr+xiVncK`QR=l|PV!b(C47dk)ZOW&7QVl6WDe);h? zg?IJ3&LUHU?aZ}_ufZ+Pl?t4xakZ%EfjlUKL;(VW|F){TD-oZO|&eG8YL?S9ZKQ%x?i zoyBXozXcJp{l$9uy*pm{aYEVjD2q(J50AU)^@U&5v&htY-A~tSPc=nbWa|Aa z>!S&$zlgTT)Z3%OTTk`3*SE;jJF=c<+}oKAEi(0<-16yS8^B0cqb?x(A z-W}TaWIKCZuc_TT_vSR6vqoN9*)Zef(q96KtkNJb=Hg{a|e0#F@BMGm^ z{^94Z`e2}D{|)WrrbJK0=>kJLnYNd3J=Mx(Dwj(=Ay=M$TB^CrT3RO0$!KY*yw=hy z@>)wf$o94L4tcGmccNqT(^7F|$k9^4jqb+JO>Wff>@$1!m}TlY;_BM2UAte+GWGNs zM8EZ(Z!bjGuU~(j`MyELjhBVp>iKMOm(*Y5O1kdu`trL+e!H*m%e<|*uAhEOjC%2d zYx3(KG`}O@aoeQli#!jUd};HTYo0Y< zXmc|2P>b2-HSY~FF8J8)`Eu@t*Wa9;;Q3_jSG)T@dA#e8SL2InXBKs>hW<#Rf1jlP zYOkG4f9sj&n10fTpI##R>)z;l;1ST@-thPK`?3=}QQ7+~BcD3nb$!!h_w^grY4kmk z|IStLZ?3?p1Y`1e%c-&}$JLXCehUT>J|_bKqVWgcRQENTVVyj=>9l=g+ZR1CwpNBW>}$(A?FN1|TY1Gism)g( zHt7DG*;cbj?9@^1Jrl;=dgc9RmUVr=X1IA;{UXoNyrmQs%>J=M_I`c!J8N>5t4(T*_*D8`I@}}ST_jxkJ?G8ecAh)trDccB zQKy&QGUuw~HS6*kWzu5w z!#xtdM#9ZkHLtzk&Ku3%JKlFT*>$|XWpdQpNqt`K>8;oF^qM&n5-f|&e-0fm^RQ>* zzFu#XoM*AbG-&tSi{tuuzi@y4+Mh>qET2ATRi9Y3#M}RH#0|qT zU$<1lhh;qYIMhV&@nEEd`FJ$d@Hp`?)pzd7S@7XGvUkaM=>|*U3s+CMt8rb+naxo@ zKl4K)OKU^om>uHt&^Gv&256Sj^xxs!*W@?(H_u>4pcYS(?w{Gr(>(tg= zExQiB_(AV4@A8%$I=F7>it8+0uK)P!B?$*TbK`$((m!Ra`TUK8o;>l|G)uQdzA5hb zncfBC>;5sZPP%17$~61F(RX-n81wq0lV0|l^NSYk8TXup#%aZ=s6S~Qo^N{VeT7eU zKcBty<0GE6n|cglZ->2rT_g-$*@!;OBzgS*q z(KE^O>AC9oI7WQL{CJM}I5_@p=HnY%Zaw0o>+S1PI)aZKi-tY>-NQF}S51$b=Gffc z`{4}>FUOl~-m7A})gM1^nAh=H*vp4kO!3aVF7kyQJ?DF)vg&uw-B#eOQ~Jg;o64T@ z?v5R2Jk&ei+u^f!20Zq<-MiR0AhLGzRBxZj?N3BENcN6v_uJ;D94*n$ggJ}9^?TG> z-oo*n(=9_9ynFk%ug$RZ>Hp5ev!741Tpm1Q?(_zuEQK$9`QVP)cUmAv1R6F7yO*=U za}WCgJ3M|T?T2%jrq+kGw=Sc=jR^p?eD+!?TSy#qplyn zPObHkXI|4Tw_V-(eY0c3rzdMiyzZ&!CvrQ617=z7k^bWvS?=i~+Z}hSX!mgQ6N{P|>t{cz1`{xSJ{<;6Jvnv5> z>e#{)L`!igZiuzoXl;w2A%F`Oxpx9CAgG8e0%Ew3P=XL*2(7pj#XfC))}rsZ^m|&g zVry${U0S!c5-Aq^RKy*hwIHHW>Vnb*+<52Qdnd%yzV^NOzR8)HbN(~u&dgnsd(LF} zthoG7c=kJrO!FnX)x4-S=4{FOHIm-O9b-kkSI@h+quv{9PS@dhb(+0l`bN=xzMJ>+J=EO2YDY=&?zq-j?{DR~0qbYoDHPXnJ55*zO3!T>$vKPsEBuu!0c&fGNBExQ3ZNhJlZ*vl@1Fi9 zFAQ7s#gEEF{&ra31qn_*ykS?F#pm23ZgtY@Zx^nqfyJKxB!>^!{SvU362r^Gti zS*oO5i^%^spMN(YtF`_RpO~2ebQABt==FZ@Zko?~2m4fO-KX(E<06J8RlUgH3lI0G zD*uHuhUL~YsYK814?-Cv|}pN|@JYRM>i^zvsuwXME%nfi2Lc7AVa?OU4k+mAK; zwil{L6}-pOS0)Z}zP2)s-uu4p%~xk7Q2ltc@{zY6kRI(v^3t(~{| zoMqopzT3^0{&&+ksJd6f`aFF&efW{-o3_{?RMq+TrzgAj zqyLB+bbs`?p|rGY^1Q`0FHrK^PXi-UJJQNd(U)Tm9_5RR^Gm zSC)f)2m8NwA4vCEM^w0u=}LX_ z-r0X)XFvMoDeI;60dBPO{&!k>R$k+~<+tW(y~pxbgX(mV`T?}?Y}3jE9>XbTJ#$fc z*N^VMb9<@JSN&=4y}quGIyLk41-_>;eqJ&L)`{DuWO2PX7gcDu=7iogg`ubT3+2E5 zRC;v>zw<&vOnK%~zW%GaTbu92^J(9ejd{b#lV3BVWA@aJ&D@y20e)M<4{#Cj!QO3u zTO@xkh3~oTsRh69LiOwG4dL94!v$^MlvMIJGn~)6%=(l+oL`Z>ZP#Lc>{hq>{OTCK zPss&grFt;0Z^@c*^TBQI^3UBast4}j;s=~LpD|*=pXz@}*8gRkq<_S!jiP?%>rY)m z{Vu5=ytM-Kr}otyyng>SwEwMAEE6fWdfM^8-OGc$@`cVaa+;+~S9 zJ2LZ^Y4wfV?G4|IZe6^KtDQZgZS8Xw$^NEyt)LI?{O?kcl0u0(%e1P{Dz&pWj0@2Y zNHj#I-%2!DuGi*^myx#HjJAn<`Z*P8*>sL$l2WzDI!<|ySZkP3gaeJB{o@wG` zS`wumcGfNIe2Dz}#kb&$Dg_;gj+8mMDbkB#rAaUgS$cTaodfTTA+^hi4vv2)h_6I3 zmPVVCmt)aqkyQ@w`R7AjwJBSHrXR?(n2ik>fBwK-YCF@8T&~BuV)B=5m zyhR=Wb%UQ`JUVJfcQS_z2ik*}NF>mnB%Nde?M0HwTR?lmZVtsj-AN>|0_{UW$@f4# z;MGVA(7q&q^y;J`&%*8yYM}jyCy4<198nS-(EcDfALsz+@t;7S2g^5xXn>0e{yXpk zL5%&5bv`=hKCmS-!4>q0~k;cx2lm+A1VR906;T(lz8*}gv0PGX$!FkZe zKoAU2FB`vI*8>M#s8m#0A<8I-PLO1tv6q<;60OfNN$27#%1mKy9{9ajz)v5X1o*_{ zBCkg*E68+c$Lml8th7~sA`>f^$sU_b`&yK)38>FW)Q4-)8~(P0T`zkg3sMZsR~pQz zPWhT(HV7#&&0;%V>(JQ{;>w6SZ1N?gcKzw`?dJ^vKHBRYI8t1bfSV?|3qf1d6R-_- z*Z|;TU*6u{fxfbx!0id=#`WXhAG12K-44`=cBjCChr=eX*yLS^^9;N$V^R<%XUa9}1N}kX zCf7ceV?drAAIhU0W4yRPypODUg8U5!d9))9Li_?@{JKC{9Fy_6MhwE+2l#5p3Wb8; z5xGE?S%J6);96%fXJ@K3CR3&X{N2E(i`0XBFW48WgQ5cwgn0s<169z5y6xlwyV~I= zWg7(@)CU7D6tWZSXDvX7Xq(6jBxEMEOGzoOcMtjA|T*$(ic<;jGEb8h5r7@X8 zR*FvG5;HMQW5md$K)(@zegWjOzo5?pHqH8Teg2~Z{YHt`DRJy333(}c*rEuwf3i}1NaN3W1Nu6#(#Xhp&a%(F*nCDAq0YSJjd!&4B(bOO69Lo5A*XKB9#bH<)p*& zl0`@%DvXUZn}`aWZ}looaM&=506mDcSB<%XsoE)M8Z$>dl)qXtxpE92F3dqv=0xxBp zDAbUOMBH~uDoLLxYoBn<;~X-4v=fCIA<=S!QmnOqNNcCPJ`jrbc#9JinHCv8Sgf^w zIO2x`3-<5MX8o^oqN4CRxj`+~+T+{te6>&bMFGcv;VYad)G+Q{BxIr7A)a@5>)-MC@!F2~U|Ej3Qn5tEZz-@p84eC4 z#JfXw#J>S;I3{QxCbr*!M>naC*DL$vIRAOTw8yKvQBhni<2SMcla;tR&^MuOkFRp0 zqC}M}SQq*Dj4`~dhAeZyv;7&q5G0&Dj7(e{D_aE$g)+W}+-MavV#zAw9gmmQ8C@si z*A~L#t{WE-x13r1SAj&4smVgbTZBVh`XwOw>MP1DPWceN% vx=q4Y2Rx2fK3*k_P)A9%Lp#IwcW9TiN*H8eo%L-ms+aq3wr`Z>?VJ7s1&Y$6 literal 0 HcmV?d00001 diff --git a/expr/exist/exist.dcl b/expr/exist/exist.dcl new file mode 100644 index 0000000..a221733 --- /dev/null +++ b/expr/exist/exist.dcl @@ -0,0 +1,15 @@ +definition module exist + +from Data.Either import :: Either + +:: Expr + = Lit Int + | Var String + | (+.) infixl 6 Expr Expr + | E.e: Ext e & eval e & print e + +class eval m :: m -> ([(String, Int)] -> Either String Int) +class print m :: m -> String + +instance eval Expr +instance print Expr diff --git a/expr/exist/exist.icl b/expr/exist/exist.icl new file mode 100644 index 0000000..8e6f483 --- /dev/null +++ b/expr/exist/exist.icl @@ -0,0 +1,29 @@ +implementation module exist + +import StdEnv +import Data.Func +import Data.Functor +import Data.Either +import Data.List +import Data.Maybe +import Control.Applicative +import Control.Monad + +class eval m :: m -> ([(String, Int)] -> Either String Int) +class print m :: m -> String + +instance eval Expr +where + eval (Lit i) = const $ pure i + eval (Var s) = maybe (Left $ "Undefined variable " +++ s) Right o lookup s + eval (a +. b) = \s->liftM2 (+) (eval a s) (eval b s) + eval (Ext e) = eval e + +instance print Expr +where + print (Lit i) = toString i + print (Var s) = s + print (a +. b) = print a +++ " + " +++ print b + print (Ext e) = print e + +Start = eval (Lit 5 +. Lit 37) [] diff --git a/expr/exist/existFor.dcl b/expr/exist/existFor.dcl new file mode 100644 index 0000000..3369ada --- /dev/null +++ b/expr/exist/existFor.dcl @@ -0,0 +1,10 @@ +definition module whileFor + +import while + +:: WFor = WFor String Is WhileInt To WhileInt Do WhileExpr + +(*.) infixl 7 +(*.) a b :== WInt (WMult a b) + +instance evali WMult diff --git a/expr/exist/existMult.dcl b/expr/exist/existMult.dcl new file mode 100644 index 0000000..42130fd --- /dev/null +++ b/expr/exist/existMult.dcl @@ -0,0 +1,8 @@ +definition module Mult + +from exist import :: Expr + +:: ExprMult = (*.) infixl 7 Expr Expr + +instance eval ExprMult +instance print ExprMult diff --git a/expr/exist/existMult.icl b/expr/exist/existMult.icl new file mode 100644 index 0000000..eba7cae --- /dev/null +++ b/expr/exist/existMult.icl @@ -0,0 +1,8 @@ +implementation module existMult + +import Expr + +:: ExprMult = (*.) infixl 7 Expr Expr + +instance eval ExprMult +instance print ExprMult diff --git a/expr/exist/while.dcl b/expr/exist/while.dcl new file mode 100644 index 0000000..7431e3f --- /dev/null +++ b/expr/exist/while.dcl @@ -0,0 +1,42 @@ +definition module while + +:: Then = Then +:: Else = Else +:: Do = Do +:: WhileExpr + = (=.) infix 1 String WhileInt + | If WhileBool Then WhileExpr Else WhileExpr + | (:.) infixr 0 WhileExpr WhileExpr + | While WhileBool Do WhileExpr + | Skip + | E.e: WExpr e & eval e + +:: WhileBool + = Bool Bool + | (==.) infix 4 WhileInt WhileInt + | (&.) infix 3 WhileBool WhileBool + | Not WhileBool + | E.e: WBool e & evalb e + +:: WhileInt + = Int Int + | Var String + | (+.) infixl 6 WhileInt WhileInt + | E.e: WInt e & evali e + +class gamma g +where + put :: g String Int -> g + get :: g String -> Int +instance gamma Gamma + +:: Gamma +emptyGamma :: Gamma + +class eval m :: m -> (g -> g) | gamma g +class evali m :: m -> (g -> Int) | gamma g +class evalb m :: m -> (g -> Bool) | gamma g + +instance eval WhileExpr +instance evali WhileInt +instance evalb WhileBool diff --git a/expr/exist/while.icl b/expr/exist/while.icl new file mode 100644 index 0000000..4e23327 --- /dev/null +++ b/expr/exist/while.icl @@ -0,0 +1,38 @@ +implementation module while + +import StdEnv + +:: Gamma :== String -> Int +instance gamma Gamma +where + put g i v = \i`->if (i == i`) v (g i) + get g v = g v + +emptyGamma :: Gamma +emptyGamma = abort "Undefined variable" + +instance eval WhileExpr +where + eval (i =. v) = \g->put g i (evali v g) + eval (If b _ t _ e) = \g->if (evalb b g) (eval t g) (eval e g) + eval (a :. b) = eval b o eval a + eval x=:(While b _ e) = \g->if (evalb b g) (eval (e :. x) g) g + eval Skip = id + eval (WExpr e) = eval e + +instance evali WhileInt +where + evali (Int i) = const i + evali (Var s) = flip get s + evali (a +. b) = \g->evali a g + evali b g + evali (WInt e) = evali e + +instance evalb WhileBool +where + evalb (Bool b) = const b + evalb (a ==. b) = \g->evali a g == evali b g + evalb (a &. b) = \g->evalb a g && evalb b g + evalb (Not a) = not o evalb a + evalb (WBool e) = evalb e + +Start = (eval ("a" =. Int 42 :. While (Bool False) Do ("b" =. Int 4)) emptyGamma) "a" diff --git a/expr/exist/whileMult.dcl b/expr/exist/whileMult.dcl new file mode 100644 index 0000000..6179bf5 --- /dev/null +++ b/expr/exist/whileMult.dcl @@ -0,0 +1,10 @@ +definition module whileMult + +import while + +:: WMult = WMult WhileInt WhileInt + +(*.) infixl 7 +(*.) a b :== WInt (WMult a b) + +instance evali WMult diff --git a/expr/exist/whileMult.icl b/expr/exist/whileMult.icl new file mode 100644 index 0000000..379404e --- /dev/null +++ b/expr/exist/whileMult.icl @@ -0,0 +1,6 @@ +implementation module whileMult + +import StdEnv +import while + +instance evali WMult where evali (WMult a b) = \g->evali a g * evali b g diff --git a/expr/exist/whileRep.dcl b/expr/exist/whileRep.dcl new file mode 100644 index 0000000..2fdea00 --- /dev/null +++ b/expr/exist/whileRep.dcl @@ -0,0 +1,10 @@ +definition module whileRep + +import while + +:: WRep = WRepeat WhileExpr Until WhileBool +:: Until = Until + +Repeat e Until b :== WExpr (WRepeat e Until b) + +instance eval WRep diff --git a/expr/exist/whileRep.icl b/expr/exist/whileRep.icl new file mode 100644 index 0000000..6b5fe6f --- /dev/null +++ b/expr/exist/whileRep.icl @@ -0,0 +1,7 @@ +implementation module whileRep + +import while + +:: WRep = WRepeat WhileExpr Until WhileBool + +instance eval WRep where eval (WRepeat e Until b) = eval (e :. While b Do e) diff --git a/expr/expr.md b/expr/expr.md new file mode 100644 index 0000000..e69de29 diff --git a/expr/gadt b/expr/gadt new file mode 100755 index 0000000000000000000000000000000000000000..1947dc50913b23939f21097e11dde130a164b7b7 GIT binary patch literal 111504 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, fro :: b->a} +bm = {to=id,fro=id} +:: Expr a + = Lit (BM a Int) Int + | Var (BM a Int) String + | E.e: Plus (BM a e) (Expr a) (Expr a) & + e + +eval :: (Expr Int) -> ([(String, Int)] -> Either String Int) +eval (Lit _ i) = const $ pure i +eval (Var _ s) = maybe (Left $ "Undefined variable " +++ s) Right o lookup s +eval (Plus _ a b) = \s->liftM2 (+) (eval a s) (eval b s) + +print :: (Expr a) -> String +print (Lit _ i) = toString i +print (Var _ s) = s +print (Plus _ a b) = print a +++ " + " +++ print b + +Start = eval (Plus bm (Lit bm 5) (Lit bm 37)) [] diff --git a/expr/shallow b/expr/shallow new file mode 100755 index 0000000000000000000000000000000000000000..3a961f8c79faa66fbd3eef5d526b3864b7e2d3d3 GIT binary patch literal 111216 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%0AFg98yA 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

|{VMG=~h!_VtH}^EE!CbsTV$IceCw3o3jlZ1W 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 Either String Int //Evaluator + , String) //Printer + +lit :: Int -> Expr +lit i = (const $ pure i, toString i) + +var :: String -> Expr +var s = + ( maybe (Left $ "Undefined variable " +++ s) Right o lookup s + , s + ) + +(+.) infixl 6 :: Expr Expr -> Expr +(+.) (ea, pa) (eb, pb) = + ( \s->liftM2 (+) (ea s) (eb s) + , pa +++ " + " +++ pb + ) + +print :: Expr -> String +print (_, p) = p + +eval :: Expr [(String, Int)]-> Either String Int +eval (e, _) s = e s + +Start = eval (lit 5 +. lit 37) [] diff --git a/jsonmap/test.icl b/jsonmap/test.icl new file mode 100644 index 0000000..3f490de --- /dev/null +++ b/jsonmap/test.icl @@ -0,0 +1,9 @@ +module test + +import Text.GenJSON +from Data.Map import :: Map, newMap + +Start = JSONEncode{|*|} True map +where + map :: Map Int Int + map = newMap diff --git a/tcp/test.icl b/tcp/test.icl new file mode 100644 index 0000000..29a4b71 --- /dev/null +++ b/tcp/test.icl @@ -0,0 +1,32 @@ +module test + +import iTasks +import StdMisc,StdDebug +import Data.Maybe + +Start w = startEngine t w + +t = withShared () \channels-> + forever (chooseAction [(Action "Set", ())] >>- \_->set () channels) + ||- tcpconnect "localhost" 8123 channels + {ConnectionHandlers| + onConnect=onConnect, + onData=onData, + onShareChange=onShareChange, + onDisconnect=onDisconnect} + where + onConnect acc () + | not (trace_tn "onConnect") = undef + = (Ok "", Nothing, [], False) + + onData newdata acc () + | not (trace_tn "onData") = undef + = (Ok "", Nothing, [], False) + + onShareChange acc () + | not (trace_tn "onShareChange") = undef + = (Ok "", Nothing, [], False) + + onDisconnect _ () + | not (trace_tn "onDisconnect") = undef + = (Ok "", Nothing) -- 2.20.1