From 8b3bd97af398e26788227fce9b00b1b2c07f5283 Mon Sep 17 00:00:00 2001 From: Humza Shahid Date: Thu, 24 Oct 2024 13:44:12 +0100 Subject: [PATCH] fully remove 'word_type' datatype from cursor.sml --- fcore/cursor.sml | 127 ++++++++++++++++++----------------------------- shf | Bin 1176192 -> 1176192 bytes 2 files changed, 49 insertions(+), 78 deletions(-) diff --git a/fcore/cursor.sml b/fcore/cursor.sml index fe95f0f..5c05fef 100644 --- a/fcore/cursor.sml +++ b/fcore/cursor.sml @@ -839,25 +839,6 @@ struct cursorIdx end - (* - * nvim's motion.txt document describes a word as: - * - A sequence of (letters, digits and underscores) - * - or a sequence of other non-blank characters - * - separated by white space (space, tab, ) - *) - datatype word_type = - ALPHA_NUM - | SPACE - | NON_BLANK - - fun getWordType chr = - if Char.isAlphaNum chr orelse chr = #"_" then - ALPHA_NUM - else if Char.isSpace chr then - SPACE - else - NON_BLANK - fun isNextChrSpace (strPos, str, strTl) = if strPos + 1 < String.size str then let @@ -1062,31 +1043,31 @@ struct end fun helpPrevWordString (strPos, str, absIdx, strTl, lineTl) = - if strPos < 0 then - helpPrevWordList (strTl, lineTl, absIdx) - else - let - val chr = String.sub (str, strPos) - in - if Char.isAlphaNum chr orelse chr = #"_" then - if isPrevChrSpace (strPos, str, strTl) - orelse isPrevChrNonBlank (strPos, str, strTl) then - absIdx - else - helpPrevWordString - (strPos - 1, str, absIdx - 1, strTl, lineTl) - else if Char.isSpace chr then + if strPos < 0 then + helpPrevWordList (strTl, lineTl, absIdx) + else + let + val chr = String.sub (str, strPos) + in + if Char.isAlphaNum chr orelse chr = #"_" then + if isPrevChrSpace (strPos, str, strTl) + orelse isPrevChrNonBlank (strPos, str, strTl) then + absIdx + else helpPrevWordString (strPos - 1, str, absIdx - 1, strTl, lineTl) + else if Char.isSpace chr then + helpPrevWordString + (strPos - 1, str, absIdx - 1, strTl, lineTl) + else + (* is NON_BLANK *) + if isPrevChrSpace (strPos, str, strTl) + orelse isPrevChrAlphaNum (strPos, str, strTl) then + absIdx else - (* is NON_BLANK *) - if isPrevChrSpace (strPos, str, strTl) - orelse isPrevChrAlphaNum (strPos, str, strTl) then - absIdx - else - helpPrevWordString - (strPos - 1, str, absIdx - 1, strTl, lineTl) - end + helpPrevWordString + (strPos - 1, str, absIdx - 1, strTl, lineTl) + end and helpPrevWordList (strings, lines, absIdx) = case (strings, lines) of @@ -1150,33 +1131,32 @@ struct | (_, _) => cursorIdx end - fun helpEndOfWordString - (strPos, str, absIdx, stl, ltl) = - if strPos = String.size str then - helpEndOfWordList (stl, ltl, absIdx) - else - let - val chr = String.sub (str, strPos) - in - if Char.isAlphaNum chr orelse chr = #"_" then - if isNextChrSpace (strPos, str, stl) - orelse isNextChrNonBlank (strPos, str, stl) then - absIdx - else - helpEndOfWordString - (strPos + 1, str, absIdx + 1, stl, ltl) - else if Char.isSpace chr then + fun helpEndOfWordString (strPos, str, absIdx, stl, ltl) = + if strPos = String.size str then + helpEndOfWordList (stl, ltl, absIdx) + else + let + val chr = String.sub (str, strPos) + in + if Char.isAlphaNum chr orelse chr = #"_" then + if isNextChrSpace (strPos, str, stl) + orelse isNextChrNonBlank (strPos, str, stl) then + absIdx + else helpEndOfWordString (strPos + 1, str, absIdx + 1, stl, ltl) + else if Char.isSpace chr then + helpEndOfWordString + (strPos + 1, str, absIdx + 1, stl, ltl) + else + (* is NON_BLANK *) + if isNextChrSpace (strPos, str, stl) + orelse isNextChrAlphaNum (strPos, str, stl) then + absIdx else - (* is NON_BLANK *) - if isNextChrSpace (strPos, str, stl) - orelse isNextChrAlphaNum (strPos, str, stl) then - absIdx - else - helpEndOfWordString - (strPos + 1, str, absIdx + 1, stl, ltl) - end + helpEndOfWordString + (strPos + 1, str, absIdx + 1, stl, ltl) + end and helpEndOfWordList (strings, lines, absIdx) = case (strings, lines) of @@ -1188,22 +1168,13 @@ struct fun startEndOfWord (shd, strIdx, absIdx, stl, ltl) = (* we want to start iterating from next char after strIdx *) if strIdx - 1 < String.size shd then - let - val nextChr = String.sub (shd, strIdx + 1) - in - helpEndOfWordString - (strIdx + 1, shd, absIdx + 1, stl, ltl) - end + helpEndOfWordString + (strIdx + 1, shd, absIdx + 1, stl, ltl) else case (stl, ltl) of (stlhd::stltl, ltlhd::ltltl) => - let - val nextChr = String.sub (stlhd, 0) - val wordType = getWordType nextChr - in - helpEndOfWordString - (0, stlhd, absIdx + 1, stltl, ltltl) - end + helpEndOfWordString + (0, stlhd, absIdx + 1, stltl, ltltl) | (_, _) => (* tl is empty; just return absIdx *) absIdx diff --git a/shf b/shf index f28f6afa0e47082924e913b19ec88e3972ba1ddf..ed5c5f78b4f525f3c3fd95c63a27259f83f33d96 100755 GIT binary patch delta 27460 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 YU}kDZ{q@1wkBp!CtYcK~faD$j2j@QJkpKVy delta 27552 zcma)k3s_WD*Z(A+<@(ybPe^B~7i&EM>f8re$L4 zGD{mkdDY6)%n{$x(aO}fe1*!?N(VLbQYMxLUf}=R=bXWjzVCbfJkPMsS!?gL*Is+= zwbx#I&p3YR=lG@H_V1+dE5|Di?#a%YG$QoOjst&-4`*64UtV}ga$S=uJtw;T|?3hgF$g^$S^$0A&@VqCHoqlL78=#1|wbXYuKVa??;JI{ZwAAS^W)x zoQ-9mA)bl`7?yyB=f@1uagK^&NvLru_~6+YAk-8E2{oRCSJz}4Tx+uB+?IalnWMri zJ1TZRCl3*&%0wFWyqwKp@$>R+K-Y#@@={4U&s>%l@rWLyT8$re|aW%6l}vkHAf-j~W{FM)=*>?Nq27z~KYi5B3Y zsYDarLjlpJl1QN@FTf=&M}O2#_gnS&<}g zw5*h8Nm6crt9TV;oahp)4FUm|n z8HO?~(FW7Yq*z?r-jDsl;!CPC18dFMaMBtQah8MDQ8X1%Z?h8zfUGZT%QZ{l!G)U2+%cyopBbl5a>GBPsh6`HmRx8n9c=79~?St#io( zxOf*`Fec96${u+bhds;WInt(N+FK@15#uRouY6S66iGMsVs-##{98WQ)`Q-7AgdjU zRr?Jkdko=QOXdoza-tm-mFQs(Xq7OfoaU7JsocwWSFCamk!C+O#ay4Ay%2jgY_ax+b6FH@w9*o;L=Lg8tw`_RJl*?DpiJ%albqu z?P9W{LRlnM7hxW3;(|NIRVUm{|F+i(uqlviy;g};^Iw*1d5|m}pFa)K)|&=l>$#S$ z4f|ncng169PmadGldChpEaeQ$kcoFmM3-b(RuOFWfP8~HB3JR}a#N{Muv9gFu4E&7 z25av6?n`;7B)LUOJ}htfKPC3Ot2J1;_J5L?AaN44KO)D9O)2|`Y_wEH!t8jjjaJo1 zIx*{u4hn@He<%$z-w9K68ig8D0IfVCcTK=Br9ZC?lQR|QL=p zkej)lJ|=&9A7wuU)N|$XMu|@b<9C=OfQ!GAM{!#|_nq8RayF;9b8@C@;`eeJwc?r| zv?+7#2RWBdsbMGO-MnUn-{arpHolB&x*WgAxiM0F=c_)V%*X4Qodkp=2UA`)LV(DlVe2FK8q#IxdpE2(S zcOtOVV}HU@rC@aSrd+7-F3r4)qNXU<*1PgotkB zkVJvD$&92gMC!-bH117`vW0qYa!KXsf{aBVI4)4Z{~fz|G!>peC&NMHNFk^QkgW-k1bKV;z@$L zTObyC=$;=-34q(N8wBolsGUFSAQf3C*Pr#~cxSR;8wdPH{_J4vAlO=4 zHZx{V0>tJD%xg`{1K2RkAUYSoK37@FD9Wn_vd5)j3ym@;iS%IrYeelEvj|?o(MV

*yY0A3Scj1!Sg-uOa?>&O!s)sd%V6qw*cQ(+)Q1};wvR`Sv@?>@9*p&c8+r@pfTq=wh1YsX>@ykuNQ7Q@6OS6Vk_R1w3wv(FJn zh*cg477y4T+KPv!TK8m=B|z%Q(xlCz>)W2}ge0yds4mg`O zGXrgYAxKBxLz`kM4Ijcr#a*m0*cJ*xR{_I{VXi90yWOmHzbKlH4S{9agD7Aq>tb0L z2Gc;@^hgYHC{%zbLO|?1A9mRbcKLY(rwdhYG^5Ewq3>%{K9nU(PMK~GWicVGu(d-R zkqhM&bLB-*(lCsmozd7~tfypZN*jhTV@p#gEIrd&W<6l%^_>c|wzOa}~|9mo1` z*vUg7-?MnSJB+n&OU+@J9--XfogKlD&S)*`^^CB}6D{u&1;?-jppD}ahR~VeERlU` zu;qr4GJ>VjuE*FA36bv75v;AWv?=W!0hx-8G|k4k6ePxi*Gg-d2wwJhx$`Y}Xpiiu za4TZ<{^dgT^DqFd-N>uwO|s3|2s8;(ZGg4LjU~|D1rU99FAxeVK|6qcr$e3tW}z%6 z(^_)?VH%zb4};;7*!=;=ATKWWw%On$gg4Iy(6F%VYf}y-b zmnR_sZNaakk3;|inbP|JVzhF&3|L|eGW?7mU3)@PbkZo6Y2kh2b07hlwW7Q=_`x|) z5~Iz5sd2Ps6y`t)-5bS{+uG4}Ck!J!*s6{rk7CkWXv_Y2Obous?hRTA3?wg#hCRu; z7<1tEieM02tX^MesQ5|lzx?UMlPn{2AtsD{7`zocRxeCpM>ttVGmB(> zk%o_kcW6i7jAqG^oE`6N&Tx&LeH66pPXS|Cs_3L1W7rU}2`$H4z~=$bCm4O$gpQ73 zlP%vzLvN1zdi2!QMVak}ay!B?-YIUFYQn}$W5>c6o73{KY*^@4R7*fHK5QmCyrfJw z#}7xSJN_vb2JdjbJ~EFTY~dZ>78`p-gv9A>27}$7KId?(7w3;fJy< zXQs7=iyH8>unOy82ggUK2b>^4d_kCDhuQ@By><3Ea3b8{^?q=YT5s2>4o|pUN8R(- z81ZF#JCDUgBq;ho!cB9#uqR<4=|~>y9#FDZv(5vbQP6nIkT1GZ>Uh>gtfWcfS@T$f zLrti0?*uQT+PJeAb1D}M3{*UxWd`Kw9Oi#UH#mn2ohWhwEW|@u6VO23r&`iF$WUPL|Rw|v$;*1k9q=KKYOu9Z-T}iEe!cp!CDnFnzliBbj>l%0~ zh~$(X97d0<`C5SiKbX!8V{tTl3TrRUrY%!gYsqP#6H^fPS>L8@Ph+}9Q_HDrgk*@M zc~e=w(SwW^pJeu8XhH!j1%$US8K`zD7c-7>r?Jd%=UmzL$w8#qs^_iblh@>sZM346 zHKXsQv1XEcF*ehEF^mzuVC5<)|%W>x z1TW6>G}s`_T7;cX)^n^~l4BDpG#07^UJ=?luox9LU_L>1C+0e*IX|Ec&#~;#WG)np z$UC>szfZN#vC>f0M)}Ba8--A?(cRB$HhTJb_-E@53Yvu_&ixW4&BAWN{ULvkDL}dg zED9WO%so;JYdnl#~mWrE($gL?YH1X!b zEAu$WEjfk_&W9IV`=A%h#rBK`t(5Wtvxy67?hCA)fB#LA?cj3x6E{`XV)(y)flV|% z9tMUcu{=>2Q*CyPsaE55LAtti8D-DbeC6WVEL+?~-_K?XyENv-twOm8^25zl2~%X7 zr1yny(9O{QtBEM%7Rq_l$jf+OelN0V=JTPzL+06>jwW-E)~&Y_q|qv$qqsRNyWlHc z&ZiA~?myeeXxK)+kG>FR_-&^I6i*M)cR zgg%u25^F2YrPVL7DPk^(FC#aSNi$wX*x#1QIf$eVbFt;<{WN9HWnn7eEp7Lrq?`m#TztgRK`}RuEt(yhqWQxhzgRPxt1sZpiI+na6r||I*7%*Q(H1 z<7NW%0@doJ27RTV8U*tntDhr^!Jv^C298jUJo zV}qXK&A6ph1gcC zOn*4uDb8?jfS7>&*8naNXE@*0;O4ggR|qp4>j2%tjLMY;8#(@B(e#UhMP(%NCSW6@ zW4I2ba^6%I%#ldU5guajc*faOcb21gXr--iJi9%5kg%%AL_OzY0Scl~^I3cXO7h?; zXRMmMs&OWvb`WY~HQ1jkK5TDF>*lkhBq!28&YqwZi-pb%C`ZEk0HhtVfs>>{=P*qC zHgs`58}9#YuqI(+>brn-Z0Q;I;6h*@rw82}Z$tK~nNYKuiZ0@OXx9R)2V3Zu1#Dod zvrhwGIZ*eN{bgGMhA39hTKUQdC?G0}rQC(cV~nQgMJy(x^8av?rpI6aaFZsR?j|$- zH#eCkSqIY2MQm0PK5oqxXY)NtLTt6k-F#0A zA*NcN2+CFIw>q1H4*bc&X!}yuSSo#t_AO;e5zdSEY#xJQ>l}#c)zR}b|5Y}^_#uYt z^2^q@_Pdj>w(4lGHJUW3TV0AU!#a{~yvj<=-#jkc6wnI<Xt-ik_y7 zW$c7FLuDH&xHYzY!PeVbYc0)N%_8aP*AZUW)N+#jQ`-GHTPh}NukPJ6`3;taIn0HV zoFCJ%H<-m@hcM?1q9q=-*-A3lCLGS`wjT;Gje(F0tYvu+CSEX1@k}Q3a;(JP4^?$8 zIX=NVYzcp6d1QeWOeQo@Ogq~1@q+4S&f0m zpjf_?g&CQ6=gck{n1#=`17{?)KA%5pY3@qIoRuHbhLtQWP24Hl76Q%L745)64t5t$ zOGs5&YclZhKnImrkNEwC7C7!LRfL*@DD*9?OM{nDm$#tSmni2gWZzZ}(bc$! z_Pxa-d!)aHfrjz-hBO7-Xug$fR;UsVZN??2As&va)doPQa^gF(Z5m=Mulj~k$SUj{ zC+I94^JwNOB<7};P{k_bp>N&cR@_Aj@HY7@ommZ&t)d-kVY0$>%2>majE;BtKuR!K z^VKc;B%A4QZnt;Kjp`mwliy}Z>{n2)(CW8Y zd~^jKJx@C-xQ|~g2{q526ARzM==_Jid7E_?Z_;P$ShCqMM3dx509=b*QuEe{$OZEl zi;wMiGYwmZeaB(7cn8k_t@yjVxJfF{>FEZ{QatJUtn8*oe79+-!BjJ7&iW{2hwP8AGZ``VMj zs_Xdtg%9@0Wj6txLDgNW0dM0YqAa6?A`IR(8dJo2;mkp8(-TIAidgmoQf;AxVzy8^ zHi$M9!F4$U=~ywca@)M`$o!RHU%gs;@9B^=IVbr+P8cE2x3=f)50X2p`#z-3M4mO& z^R1#uD9k~uSBdjxGox!I$lK;96t|HLOL_$Lc%M93vMmVD!T5yZV=ooTA~;PDXL<(F znvEF9bX^|dHc6XUs-DWe53c{^Q4J`FpGjwJ&9Z z#FJE23jKS2qta3=um4tG&DP6z)dl^{MtZ+Wt!2Z}h8nB#h>}s-zgTJrXDbN{>IZcg z&HWdP4=CvZ_k*Nnn}@0NU(8}mK-Pz=gKvRzbG3sIdp_7Gbmd=AbEQI|o6)VD6dJyn zWt#IkVeLZ-M&MII5W2*_TyVpL0LG4hHy&Qq+J*LQMo=(5fKH>l zPb;^uwxRE17sX8(Y|1=|QfE^VRcv7^jY5vxnX}K)qwMiWY`w>Ke?A~u!kAr&V2I6=5Na0Ff1iZjp612l{A9HRX9nc4CS zZYVH)$Iovd^y2)7%eEF+7_cj=nXjk`u&a5)Xy^NAv*-yr^FA{MI1p-%>mnE-EFT~%K1Snjc6_FdOa}$>SY;eQ@lCFFU>1*!?&LAF^8+ltopgEZd#KBYIG3r! zZjtZObLJpqn#RLb>y30fP5ThmJZKbc{g7owyaD-g5E|zRV(WZ~-?k6~zaX}aB?cYE zM8hQs3y(ym#9bZ?(BOH;?KW*ENAuwU#{TNG#aLZt;MAE`ezkiG@ zpywtjyI87ae2Syui^W=Qho{2%NSm%Al73*MBd_-UlX7=4OK8dO2AiAj`LMuvz^*8O zHtfPO=?S0{yI5SL33*7j5xy?dTGJU88X;hp7DEA_urA8XHt+{Al*ym-@oY+_1)s2W zp&sn)+}PEfg~L9(QhL~)NNsnswq_GjlkRCalQ}3Ax@V$2q$b_7_?eEO&<#sK+GpNw zbP=h^(%s0QT7TBIdDfrl7V5)cCX``}oKI1<3vs||^)=ElUQ_!d1Jn-h%%^rvG97ZU z+|Wu$B8Ce!@$Ip692XwWNu;zrkc1~m#ZI_+B#4D#H+VouB0hq5H{Pw-6@}8$JqUg( zO|)$ftfQUQvU>y#D8tYMYpnW)sqeoL46W7b8a;iqx=*971GAIoc6d-x98UZG z&C>>2xd>0XRt|SZ)FW%Ym=Q&P${v$O>tfk^(3(%-+B5ZcXBu7ml;z>d3O)82dqqN` zMYSv;m85+z@&szTkL8NrQsF*m+uDZq?&B^YmM-ptYXMB#5Aq6)jO#Lo_JetGEZy3V zG)+qy?q)NkzI`d^D-5N>NH^S27Ph>Nts_H%UWD~K^!uX~op9!6dBD>M&K9HOB;KhmMY%p7E&eOEhNoqe~Hy}uUy zb<~PjPg2?u)F`JXjj&j_uga|F%fXaoX~&FJ~|j=I`isI7}qN8T=J;bbtKK{2U1 zLshNCb6hL;HOk?9tx%SQ9i_Mqu~ENe$+NpWz3pjE*+-eVV8@xds7Qlw{X|BO!k;hS ze?E=pSuntpUfhBnh2QJAZ*^GirJ?RIpXdMR^dma_3J{s3iZAu|&vkgJ=-s5+5xK4*_ z0r{myZ^Ntb?tL!wd0vj^E(T%63HZ%rKF>?=%=s?X;UYk9{rLsnmvg-e=lMLpglC?7 z_7;4h!TYm#=RKSOC>Vs}g1uwmS3`tVe?FGJ<>r$aTkgH|#pX@_t<`AG)WVU&gjHwb zgsLS-QlE_!sy5?Z+1VhWik|+OwNkIn0Ku=$_~DKazdG};ui1oF7SvL?JA(_8z0al& zg|9bgX)<;GhUNJ;LJ^N4Y%8OpZ&+fJt}rbp6IKZB(83{9{tZhOYbfU!j9J*B8R<9o zAU%4a1sV}o4<4noW7vJ2Rf{FKKh%nS+@M&-;X5{a5>_8dKgQz4FV)hLV=LV_h6SJ- zJ@j7|mBzz9GY@USUrkYF39HUw7*|Wy8b<&EF6;?7Z33i}S_pcugZeHf6BS1x^?&7X@JG5<0S?BZp!wh8WO)#-eZ3&TJh!>mImR;{NN7>iZmj-RWdiFP6YN z@~%XCUeY+V04M)Pg;jz0gyIuPKYzy_6I-jLBU)+7m#+5T{v7T8p2a<|CBh}C z?^#&rXh>48^Qt>GcP1S>4j+1rs!pKa&rtRW78&q7N{tt+D;Kt*X(w2&V*SsZPuzVe z?j(z3+)}W=IDsn#)=8RhZ{DekdU@c3Q|rptwe<}x_~MSusaB5@H>eGTOwel1M9to4 zC^wNd{D8YjIf;g@kvMPniYR?_$0q1C=c zIVZ75_EL*QBobQ6kAXi1~?|)CM9QnOXxcLMpZEI0!)37ypQj z18z3(3o8HE+O?sGpK!kVq%Ls}TK5wiLI#Ov&|VtV{)7>hF2H$E`7QLnl~zvZO1VE{ zc7&*}Awnmu;a_Sr<2O?I&p6Tjy9X^l&XObAYt;YfR6mIC$x;_|sZuSHWE9$JWj;X} z?^vI^4h3MpvlPDMh*nM#TGP2R*xPK^-#y8cd6p#wF9FY9DN>aO&YFc=Yv}q}7D0t) z*?=b71!vE~CwSWiVLM$q%Z4b@?{{sE$JBFg(N1GL+(pFFVh`);KOHAqBjC@UqeC7x zKsor^U7Pzcns)(%V9`pNqG)U-i?rnMP?zs~E!x3OIs$roTLj-c7)Q9k?;P^W1|BnQ zs6;NOIi09vv!n};&{z)wI^1BJbq*P_?X>P3UQ3(N!E==*dP%6^>?QJzkI)AG!DlZeq)B~(F<0U$CnME3NaL^<+#>Nso z6oYYW3g0hb6Ohw}g03K#|AFRTK|}7ZY3miX{PFQ|!m1nu;_$G?g*|=Ba`2ADY`b`} zUzv*A)u(JUaPz%ow)ZI;iFXMRK!!D?P<+)fOt|hCW&_TSUC(g9G4#e&*0msyqecm3 z9z&F6HlF{+o>fG(1R=4IzjOS26-HX71K#q|O{PNrjt!aRMZnkbv5ytXDpCFoJY(Ny z!S1qbsfxFjae9CLoGX-Ze#mCb?D!||p2G|%z?u64He`Mm6*zMVG_HR^YpG`yPx!QVdBV9xHZa|b*DE&|PwrRBfPrQwBRsM;1O6;t1 zNOH{9>iDBhBkbvUQi@0UPE0T-@*e*})NhKX;Wu&cBx#MBW>W1!Pe9@1G=QgwwHGh-9!v@>i_)3$CN08_lf&yQW%MxV)ph>}^WFi*;Zq#ofj_ zcAkdb<~_)!Ik#C{2jAr5lAgjU9wyF5n8@$OnS`+FH&5M{7l}j6Sp+5XS_XsNL!GU6g9CzWRH*YHi9?c^8MB_Iu1v%E+L}_fR8TEs|vK zq!qbTrEOsjoYvreK(AuYO{LSQB2{;$V^u6E($ik6^EK*dWg@Ri__|mv%6POglII~> zT+3#*O!*0G^HiKejPjmCNa{I+uQDf7Y#nX{=Pu^UZj)zl2DL%s65(vAwKNkgd7v-> z3d6Tm>sXj*rcdfv_XNlAJD=DGgMX>cKZB|KB}{J~sXenxTEonv`=Y4tvZUwm7APML{@D@7%xS)?Y} zt?OK0;?^Malf%ZeT2uy#byUdEt~-PRBqg4I+eE;(OnMEGstz!GT?g||#QfuSpncmU zp5_{qMq(G5Dxq5L0$L*}X7Py1B~b{}+FFmc__P%r_rGIj$2U`OpMc_8n1B#$(CC`+}5YE>RI3kd?#$N5LKSn%Df7 z>6)y}gL9qAlteL1Q54zpaX&6NjfI0V9t^NsAE@Ov zaa?dm7iKn~weZqR%?p2^Cln09d%dt~@#2n{!cGl}htg_ANlbXtr$~ziMI>-EQTmIR zMy3GP7>=C_DhZd#+z4_nrNNDqZrb-o;%M!QESPpRQcR)lRoMLL{z+Pa?Z!|oz@4R4 zcY3I;AFAi5uZ@K>TDLo++hm%9i-Q~e6uWY88Un*1TKM*mS~A=5gH}>RNjsljM(^|z z{xQ8O(tLasvVkT?eD!>cSG`=%(*}Q7TO*Zqw7WuM{o}QIM|GS#s#PQgC{v`LQmL)1 zAfEe%)&u|^*4~?Wj%wB3MKvCox^ZjceqB{ly4niYOMHFNrcUTdr* zE9PBL#N%{qJtE``otbGb)ize5)Gr;~p9?Le)jyNPpu~rO!|OjcoD7Lx#`CDCi4x8$ zyY*SHzljp-e=A*^1uf{8CQ35a_$EP0Kj~Ztt?Q<3G%rYL8~Ql-sz#sTYxEYejq7rd zGENjDU0K0OR}rVD^Fx$g;vPB>qP$DJz!mrjGrr+v{DcmrKcS4D5W>q0MH%g^UZ_%eaQct; z=~^1x_6juyPk51qPSISu8w&|bzDPu{0>)EQ@T9L|`y zFl~XW!?{e(wmZ0MV6B;e9cetX-l#;brjgjfTJscwT|qDmv~Ly47NODn6ScOD&_pBk za)#;ZTK0%$smBh9~euMqvUPDrO ztqpLf#P8tX8q}8KwYCM5w5kF|mRD7d(_&N&?S?w&_l%@twYFCN!i9>0j2`@*$a`!J%KNk|kYz?TcDl>BOhh+d+0nwg_b|ehx_>Vd>|!ban|g zaw(DU9p7EWprM`81Dc%q2WV8J(zB%-cwQ@MzgFwwK2`Ta&FFst0{H|ieRt@yNO;#{ zR2iux`#Yy-bF-L2qLjoYi}z}S#iRaLDIF-uzl`#uluTUK_%KR|YU#hb)@GWRr(TC} z`s30nzDgpZ$;?l*rg+UUbU8}Ft(%W)xyjBb1(YB`U-XmTsA%;unVTsCS`LJ?ygIM) zFcwMga~GfIj#Su8i7zPHR%=TDt9(GTHZ)OXm2ma)hqX4VE{zFp#Vbt`@G!ceoON@s znPTZ>X@6Z;?j#iRFhoj6Q zj7sKaZB&%av^ZMn!iPOtNsLR{bYG^qxF$FOdzW7%p)((_%#BnVtr&YwDuJ=WuK8sX zHGts!^QPzS8r?adOBfL;*8t5E`Z}Y>;`#tJ{=Cd zLqRc0WP$Qdy?)BtfX?~kuT#e<#OxiPx9|6do3vM!B;dW{!>>$w@%d}-;}Ot!@f}L( zep?|LK8AOy!^JiC34tKwX*>8Sg!gd_j|nxbj~OL)!GN-y}bDT)ObMkz;Tznz(K^~j60w!;%Ab&GGMEvM>;1IM+&SEmj$3K&3x{D-66W+ls>Di!YadoI#PM|zKoeVE`R2ITsm;$V0FK9 zEph>7Xae+s;AbI(Ki-Qcj@JZ-)$zvjr{8b91L|{K@>M*~uPYclbDwC@8@xE}euFJ_ zT&54sL`O_mEe<_R*GzCirBgIVfIB@?rlL*nEV?|IED6dmsrN*hm!Ke4dx|zBDD#?R z=GEGA=fI)O6UzQet<1^@W0L(oi@}(TUKW$a(K@q|9eZ&!e9IioKQ6{Iua1cj!da}v zjXOwleiT^}m8DG<55LcS5*^?q<#D>02n)@nkQRs^bCIuiKcQtZ;Y9 zM(;~py$Din*V(KvwE{fP$1{V;{gPd~iyLlfHn$aQa_}+Z&Rz>#G|gZ_2)}4-!bRg= zxM=(X9ciH?M&=CCma-&3HD18T9U4edOJ!I186i|ZU)~~l#nw6v^87q70bU;q$_MxuFJ!yB6 zGA|-2O&emnrpTdOk>Qk;tUM)Ub)lWf%CLyij{hv;q39H)wXvv!#yua1Bw zFKVaL0exG)+?F<^D6=AxTK|*vyVRd94&< zhJSLc?ILF7*%U;AIPg&2Z&Iyo6L;r;y&L0BYA~*iW8^l5;Tw!RppEMwOsD}2~mQ*$ig_0EQ*{<>Z8a#G@$H(~W#b+N)ZL72s zKc)4U&{Bn7+Vp`|x)h}y`WF1)SL(@5DN;;(wPOCJEn2bV^msdXj7=Ik#8IlDUqo&G zmGi;0qn*;bNp1*k&E#RfJrnzF%4w%WNpo9KP*)|%-%+I17)n{~l_w*MuHCZdh>)IN z9OsdBLoG74h!vS?LMhGZ8&A=sj~(B;vw(9{81Dg11Ck z3g1Rdt|?i-e>)B{KS-$Ajr8&OS(-Q46e-k9KptQ}_vxFt8rqVnlhQaS>ugSWp2y{)gX;+ppd2{%VSRBZ=uetLCzWP-4KkOC6 zpbB#Mt9v&5QqL!L95D&@&_XUq27VbM4;K{$s9*vWbylJtxFY*?JKEX_dy|cHud~t` zNxN2EFkHV=ldf=Ej%PGc4$x~|kmGRCjxI`9MS2e@mRzd6i_EiIE9jY|6z3o|mjU`5;Z)LD`_=xcd2Sn8fEwX&f+bh3!DhXoi%u*->d@tzsd|=Z(gf3R3JHQXm^|wvIPrYple)?_GD-SDa2!LCr zDak<}A_ntXlDU{hA&HIC_4MuvE|Fwwo!WB_=Q&Wve)tgo4YW5+iDNCGCMOkjS7MS1 z+WI8_-29*-raA;-pg*jk#kJfibvMpP0?JXROJi99F3-SS$JfilWdp0gk{7%LenR(iiU9@a>po8G_;c#dsE9777Jfeup2Jif*AW z-Yx7f|8Unv*L$;Ye3kvRN3eZ(LT#@==%Kau5Zd8MX*>VoAO_Kdc6f3}z2pY#;wcKo zm;Yt=>c1T0kI<=?=r?6)_d0d6a&ajP192x;^J{okH!^^U(5Kla4oud+aJIXqPK=@z zJ(T|ZpIhulLwhPwIEI~87`p`tcFcoE0dcUuBEcC`IB$j!u0C&XUU+Dj5dP|*rxbh|;p2yoziZG_ z0bh7%Pj+B4S~U>=90LLy)1Ll;_z}8+fdRCHKLuq4Ceh1TfdK}vB9;}{mqralvAx-W zLDW1e&~Hr^9?}K`;x~5s2l~5szK2cYoN0|VF6@j-#@DR>ZSSO%iWL64$)_QCjPfx~FSpupke;ZL_Y4n^8hB!7B$aG;sebex%tPz_Yjc+H@|PBi_|K>O|?f!iBJ z59*OA@W1IgT&2T3t|KD?$C0@Ht#m0$Tu#i4HHF#QKT92%6zb&eO^5 zPkG5jzT`li?5HP~`;z^2vb&xvUiWD`SSJgoz05oKk^^+IwVs^gOMXTtFR3RN`jQiM z^2vJg0bg>0PB#7MZM({sjP#QFXRjwGRQX6Aqm!NW&fDuKB7(1$<{O8wmbNe!*sHvo}A-L_S4DkdUByJxwlRh&U%?2 z@FiQkZP$~le96sq@{)RT!e2g;KcbTl*OQ0(lBeioKaaQV`M%_2o!q~kyu+7_07d;< zQcte*C1azh{vEC-huriLO>0pQf-Ajkr~8skdhH?gW{j<+_z z`|0?R4e-}*XndzPz!#j<2}>Ff+&bRb0KZws?`eQvq2rG?z|Yq4mm1*h8Xn_+=fNKL z*DEw@fN!tk+c&^B)A9Wq-~}CTZ-Bp4rL{L(#iM<%=Q^$vRy3%vN5^k&fOqP6cLV$q z9e=U`e!7mo?u+O4KT;?7-F;9KRvm9@fKSo!-5TJ7b^MS9`0DE#--!+I9^lpa=V(AU ztXEju0KZ+wZ*PEKtK$zhz&mujrvZMVj<3F}&wuX_4ABX}_a4+lHyxkS0B_Rq)&_V# z9Y3-G{`wyp-|6*uwf}-}QYS2_Cvg8K2yPwkY=Gaa0Pxck>RZK+?Qs6EQS>ph0)7ZA%1G~(O+M{ zy@h({58m*AU$ln24B9t%x7WXa652RU9Of;z zN5|*r60Okn;uZLkPT#EKz4{H(72xei57D(iY`iC+;LG5{!PkP@gmepeB*YrhC*<*v zCql-Ab{37s3dCUke`+0b*Ljl-ITwGYb*8yz+- z?A0)L*r~9~VZVhb;hn;*;eEpUh3ACN2`>y^75?w=ufmUnSA>5b{zLeW;pf7Y2vbDs zh&~asB9=y!L>w)MI2n-?**P*R@|j4A+#UICWOZav)FV+(M$L{|AN5|;XHh4jEX~?9 zOKmo^*|cVFHCx?`nr(0PeY2CzvZIGaKNmeK`t|5{qd$*68GSnXYIKmXt8tQXzOlqu zVXQI6$MlcMjd?m|TFl~@oiV3k{)myAE6qP^?rwgf`6IDCW1ozDKK8Mdu{&bRV!w^O z8rw9kW!$52L*pjLt&Q6r_hZ~&aY^yr<9o#SiXRofF#g^64e|TpPsiViua38vGEAdQ z&zN2_Ei<`HdrjY%el?wCVnR$pw}hSvPrkaWNn?DPxRx~uIxwVQ*SWvzX7|G^27Ddx zE}#?8bpG$UU4VT64+BmFyaeb549C{&H^5GSpZZtVy$m=ypt{ZpXb0Q{I3DmY;B>&B z0G|WA4mcZ7&Ju*z0b69jhpxawHy~C44gqumjt6uD&IUXV_&VSPKqp}1!0I|TU<<(S z0Q&%50<;0%1#|#5AAlSXV0%C(U>`s?;7GvZfKLN@038Eh=hyMD3J9Tbb=_vbV8BlS zO@PM%+XG$zv;tNG4gm~Cy;Xpn0N(}d54hR2dR)-Q=~30y;FTU^UGKM{QSY~uRcy7q z#$d>zaYaF8tvbE)cU=qJ+Ih}ldIEaT0JjJ@eEqICC@f;U4~g#!KLF`Dnp7MVj~{b+ ztvIMP^5viKx9#+OaZo>eTQIgHC=tK4mtGPS)??#=zj2JN{qe>=z#eK9a5zU)|2WPK z-0Ka>eFxmjR0tNx!*41Hihs!NQz9I-nj@t##0SUOac-S}e}t-dMp=fW*7zE7K6*8nPI#vPjqz6c*y!Ft7GHbpSfri4ubvaM}f2 zf0_aELw$Tmyt6-nwYzj(jH4;_)I39nzp*AhG7JLWK3S6I8?`;Zl z-P_dkt+8S|SD_sIukO)5>FGALGX8}%#r-Vg*M6d**5IgUp{JIe8>!P<>g16$-x~ab z_!m8q9{d7+p1eFgc$|32)gdGJnIU4et7v6#R~bp)Q)_}>FyQ9s&~?EtG!;`^N45li zB?1<{AADBEPx;T-9^90PcU|*83I4%f9O-&ufAB}5xX0yxAUIycK}V~D!EcI#TxAD? zKa$1Su1Q}7_cP#EQFa^+juKnAjvNifJ=AV4@#|ohBwAf%$AZWCLzw83!TrQeuAGy> zjYM%IO*#chm$=eT2a||NaO%h4KVbbwehNMdNw@qA!NrL#|FgkOCGjU$bY*ZOSzP5x z_$Bzi67W^O20!B`2D@^u2e&hzhlPIzKP8Kwx@!Io9^ohM`DADanr`g!H-xyDINf!? zFXRtJZ06e0G~~_3;$N=x<{@Zwk?T}!$ltQK*;Q^1iI>ISTvbUS5dCFpl@juTc-U2x z60%rPrVr~lb?7M9L+wJ8pcWJ7jLLnkW82iWc|!iArzcDul%JpTLfa1dYx-lUecN|- Ljpz~5>XZKm;4lw;