From e120b1e8af0a8bcdfb002b68e181e648fd0f4cb4 Mon Sep 17 00:00:00 2001 From: cozis Date: Sat, 12 Mar 2022 21:04:08 +0100 Subject: [PATCH] removed dead code --- 3p/include/llhs.h | 80 ---------- 3p/include/xjson.h | 217 --------------------------- 3p/libs/libllhs.a | Bin 95366 -> 0 bytes 3p/libs/libxjson.a | Bin 183156 -> 0 bytes build.sh | 68 ++++----- src/compiler/serialize.c | 201 ------------------------- src/compiler/serialize.h | 5 - src/noja.c | 1 - tests/aux/parsing-tests.json | 104 ------------- tests/src/test-objects.c | 86 ----------- tests/src/test-parse.c | 281 ----------------------------------- 11 files changed, 33 insertions(+), 1010 deletions(-) delete mode 100644 3p/include/llhs.h delete mode 100644 3p/include/xjson.h delete mode 100644 3p/libs/libllhs.a delete mode 100644 3p/libs/libxjson.a delete mode 100644 src/compiler/serialize.c delete mode 100644 src/compiler/serialize.h delete mode 100644 tests/aux/parsing-tests.json delete mode 100644 tests/src/test-objects.c delete mode 100644 tests/src/test-parse.c diff --git a/3p/include/llhs.h b/3p/include/llhs.h deleted file mode 100644 index 27d7019..0000000 --- a/3p/include/llhs.h +++ /dev/null @@ -1,80 +0,0 @@ - -#define MAX_HEADERS 16 -#define MAX_URI 4096 -#define MAX_BODY (1024 * 1024) -#define MAX_HNAME 128 -#define MAX_HBODY 1024 - -#define BUFFER_INIT_SIZE 256 -#define BUFFER_GROW_FACTOR 2 -#define BUFFER_GROW_ADDEND 0 - -#define BACKLOG 128 -#define POLL_TIMEOUT 5000 -#define MAX_POLL_EVENTS 64 -#define IMPLICIT_LENGTH 1 - -#define MAX_CLIENTS 256 -#define MAX_ALIVE 64 - -typedef void llhs_response; - -typedef enum { - llhs_HTTP_0_9, - llhs_HTTP_1_0, - llhs_HTTP_1_1, -} llhs_version; - -typedef enum { - llhs_GET, - llhs_PUT, - llhs_POST, - llhs_HEAD, - llhs_TRACE, - llhs_PATCH, - llhs_DELETE, - llhs_OPTIONS, - llhs_CONNECT, -} llhs_method; - -typedef struct { - const char *name; - const char *body; - int namel; - int bodyl; -} llhs_header; - -typedef struct { - llhs_version version; - llhs_method method; - const char *URI; - int URIl; - llhs_header headers[MAX_HEADERS]; - int headerc; - const void *body; - int bodyl; -} llhs_request; - -typedef struct { - _Bool occurred; - char message[256]; - int length; - const char *file, - *func; - int line; -} llhs_error; - -typedef void (*llhs_callback)(void *userp, const llhs_request *req, llhs_response *res); -typedef void (*llhs_logger )(void *userp, const char *level, const char *msg); - -_Bool llhs_serve(unsigned short port, void *userp, llhs_callback callback, llhs_logger logger, llhs_error *error); - -_Bool llhs_match (const char *x, const char *y); -_Bool llhs_match2(const char *x, const char *y, int xl, int yl); -const char *llhs_getheader(llhs_request *res, const char *name); - -void llhs_setcode (llhs_response *res, int code); -_Bool llhs_setbody (llhs_response *res, const void *body, int size); -void llhs_setbody2 (llhs_response *res, void *body, int bodyl, void (*free)(void *addr)); -_Bool llhs_setheader (llhs_response *res, const char *name, const char *body); -_Bool llhs_setheader2(llhs_response *res, const char *name, int body); diff --git a/3p/include/xjson.h b/3p/include/xjson.h deleted file mode 100644 index 30eadcf..0000000 --- a/3p/include/xjson.h +++ /dev/null @@ -1,217 +0,0 @@ - -#ifndef XJSON_H -#define XJSON_H - -#include -#include - -enum { - xj_INT = (1 << 0), - xj_BOOL = (1 << 1), - xj_NULL = (1 << 2), - xj_FLOAT = (1 << 3), - xj_ARRAY = (1 << 4), - xj_OBJECT = (1 << 5), - xj_STRING = (1 << 6), - xj_BIG_INT = (1 << 7), - xj_BIG_FLOAT = (1 << 8), -}; - -typedef enum { - - xj_E0000 = 0, // No error. - - - // --------------------------- // - // --- Internal errors ------- // - // --------------------------- // - - xj_E0001, // Maximum depth reached. - xj_E0002, // Out of memory. - xj_E0003, // Not implemented. - - - // --------------------------- // - // --- Input errors ---------- // - // --------------------------- // - - // (Unexpexted end of source inside object) // - - xj_E1000, // End of source inside object, - // right after the starting { - - xj_E1001, // End of source inside object, - // right after a key string. Was - // expected : - - xj_E1002, // End of source inside object, - // right after a key-value separator :. - // Was expected a value expression - - xj_E1003, // End of source inside object, - // right after value expression. - // Were expected , or } - - xj_E1004, // End of source inside object, - // right after value-key separator ,. - // Was expected a key string - - // (Unexpected end of source inside array) // - - xj_E1100, // End of source inside array, - // right after the starting [ - - xj_E1101, // End of source inside array, - // right after a value expression - - xj_E1102, // End of source inside array, - // right after value separator ,. - // Was expected a new value - // expression - - // (Unexpected end of source inside number) // - - xj_E1200, // End of source inside numeric - // expression, right after minus - // sign. Was expected a digit - - // (Unexpected end of source inside string) // - xj_E1300, // End of source inside string expression - xj_E1301, // End of source inside string expression, right after a backslash - - // (Unexpected character inside object) // - xj_E2000, // Unexpected character in place of an object key string. Was expected " - xj_E2001, // Unexpected character in place of an object key-value separator. Was expected : - xj_E2002, // Unexpected character inside object, right after value expression. Were expected , or } - - // (Unexpected character inside array) // - xj_E2100, // Unexpected character inside array, right after value expression. Were expecter ] or , - - // (Unexpected character inside number) // - xj_E2200, // Unexpected character inside number expression, right after minus sign. Was expected a digit after it - - // (Unexpected character inside string) // - xj_E2300, // Unexpected character inside string expression, right after backslash. The only escapable characters are \, /, ", n, t, r, f, b and u. - xj_E2301, // Unexpected character inside string expression, after \u. Was expected a hex digit - - xj_E2302, // Unexpected character inside string expression, right after unicode codepoint. Was expected an auxiliary codepoint - xj_E2303, // Unexpected character inside string expression, right after \\. Was expected an auxiliary codepoint - - xj_E2304, // Invalid symbol - xj_E2305, // Invalid auxiliary symbol - xj_E2306, // Invalid codepoint - - // (Unexpected end of source inside value expression) // - xj_E2400, // Unexpected character in place of a value expression. Were expected {, [, ", n, t, f or a digit. - - // (Other) // - xj_E2500, // Unexpected character after root value expression - xj_E2501, // Source string is empty (null pointer) - xj_E2502, // Source string is empty - xj_E2503, // Duplicate key in object - - // Decodef errors - xj_E3000, // Bad format - - // Query errors - xj_E4000, // End of source after dot. - xj_E4001, // Invalid character after dot. - xj_E4002, // End of source after [. - xj_E4003, // Float used as index. - xj_E4004, // Index too big. - xj_E4005, // Invalid character after [. - xj_E4006, // End of source instead of closing ]. - xj_E4007, // Invalid character instead of closing ]. - xj_E4008, // Invalid character instead of dot and [. - xj_E4009, // Missing node. - - // (i|f|b|s|a|o)Query errors - xj_E4100, // Queried int is too big so it's not representable. - xj_E4101, // Queried value is not an int. - xj_E4102, // Queried float is too big, so it's not representable. - xj_E4103, // Queried value is not a float. - xj_E4104, // Queried value is not a string. - xj_E4105, // Queried value is not a bool. - xj_E4106, // Queried value is not an array. - xj_E4107, // Queried value is not an object. - - xj_ECOUNT, -} xj_code; - -typedef struct { - - const char *src; - - _Bool occurred; - xj_code code; - - char text[128]; - - int offset, - lineno; - - const char *cfile, - *cfunc; - int cline; -} xj_error; - -typedef void xj_alloc; - -typedef struct xj_value xj_value; -struct xj_value { - int offset, length, type, size; - char *key; - union { - long long as_int; - _Bool as_bool; - double as_float; - xj_value* as_array; - xj_value* as_object; - char* as_string; - }; - xj_value *next; -}; - -xj_alloc* xj_init (unsigned int default_chunk_size); -void xj_free (xj_alloc *alloc); -void* xj_malloc(xj_alloc *alloc, unsigned int size); - -void xj_set_malloc(void *(*malloc)(void*, unsigned int)); -void* xj_sys_malloc(unsigned int size); -void xj_set_free(void (*free)(void*, void*)); -void xj_sys_free(void *ptr); -void xj_set_userp(void *userp); - -int xj_snprintf (char *buff, int buffsz, const char *fmt, ...); -int xj_vsnprintf(char *buff, int buffsz, const char *fmt, va_list args); - -xj_value* xj_query (xj_error *error, xj_value *root, const char *text, int len); -_Bool xj_nquery(xj_error *error, xj_value *root, const char *text, int len); -int xj_iquery(xj_error *error, xj_value *root, const char *text, int len); -double xj_fquery(xj_error *error, xj_value *root, const char *text, int len); -_Bool xj_bquery(xj_error *error, xj_value *root, const char *text, int len); -char *xj_squery(xj_error *error, xj_value *root, const char *text, int len, int *count); -xj_value *xj_aquery(xj_error *error, xj_value *root, const char *text, int len, int *count); -xj_value *xj_oquery(xj_error *error, xj_value *root, const char *text, int len, int *count); - -xj_value* xj_decode (xj_error *error, xj_alloc **alloc, const char *text, int len); -xj_value* xj_decodef (xj_error *error, xj_alloc **alloc, const char *format, ...); -xj_value* xj_vdecodef(xj_error *error, xj_alloc **alloc, const char *format, va_list args); - -char* xj_encode (const xj_value *value, int *len); -char* xj_sencode(const char *src, int *len); -char* xj_aencode(const xj_value *head, int *len); -char* xj_oencode(const xj_value *head, int *len); - -char* xj_encode2 (const xj_value *value, char *buff, unsigned int bufflen, int *len); -char* xj_sencode2(const char *src, char *buff, unsigned int bufflen, int *len); -char* xj_aencode2(const xj_value *head, char *buff, unsigned int bufflen, int *len); -char* xj_oencode2(const xj_value *head, char *buff, unsigned int bufflen, int *len); - -_Bool xj_compare(const xj_value *a, const xj_value *b); -xj_value* xj_get_by_name (const xj_value *parent, const char *name, int len); -xj_value* xj_get_by_index(const xj_value *parent, unsigned int index); -_Bool xj_is_error_internal(const xj_error *error); -const char *xj_typename(int type); -void xj_stats(FILE *fp); -#endif \ No newline at end of file diff --git a/3p/libs/libllhs.a b/3p/libs/libllhs.a deleted file mode 100644 index 167b5c2ef0a11581f50a5dad4be6f21f22a5625e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 95366 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 CYFFX_ diff --git a/3p/libs/libxjson.a b/3p/libs/libxjson.a deleted file mode 100644 index cd3e2873885ac352542c4531b836498ef1c14d30..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 183156 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

)O22SH8Ae^RY*lhg^-5- z4CX!E86OfOc)75Vswf-*chX^1E`s#tc=%`lAsig-0a;1Qi|qSlJBq?CG2DHNFN5io zv<)Esn1xk@{+^|O44nAH05m@A*Z|6}rkTiqx0M0W)ry4GQ5K7erfi(Eomfc%IgF`s z$lwpPKtzBdMs=iMR5x&+koIZ!b1z9;FqTUu^VRu_p}X+ z>BZC$9yp`m*QU;>B>tcW3l4VPYo)QBw-E&+JI7!zbwPM25e2`r^Y4&IX$iqS>w+=8 z*g3)jXB1#N?^Vp+?3@8E{BIdK%Fx5Yk&nj+1i0YjPQ(6%zMx2ce<+!ZtPwbM<|XVK zjL`!&!;uN2UWbJ3M#!iK1n!OyGU~hcNrH;#%LEJrl;33?LLKEdwvCd1ZQFz-*o`w% zD)9d_QB6hzA#sx-8tlU{rWa#CcxW;d{L-+6A(7&Y;GV{SF})Zz!UJa%kcN$fL8>Dh z6;=wPp#uM<6lK`G))*VMC{ZvnYz+2N7lelrQSeK{mViX6E(q>f7mVq}un`_OqW~Lr zuVO;g{@}nFOU(+EmUD%7D zHiW55+U1fq&j3J@0df&O8btsjg=w4J@D4TV)X*Pnz*7?)iyACYf-D*cFaSy>l3_y* z5-6w5ghDC!KXc%cz=3K(1mhMgL_G!B2FCPa8wd|Ah=O0*IhtEjobfyx4Go=h6^!Y{ z&Ji9sqkyz?BurPc6P-T-k}L3H6_@Z^A3g+Vp;o9m80@7w2oHs#;FqR83=*m8Ah@Tg zV@xlmj_|-41=!U8x(|=*s&kjA1MXK76$WJJVe#w;D3rnxunQ*Y=8cgpf%RR1sR6L= z)f*>LWkSeE{4;M1)IH}Tf3#3k=AU*q+&94uD?lA6ts@v~9eF<7o*2_hdm=n&9RqY6NA0f1>vDY z6#UXQ$5MsCJQ~40>w+=8*e1dQXB1%D>{U#t+8^C;R#%0)Y_nH443s^Ll953o5a7Z< z$&?%ZUGbEA{cEnZbC%KZ8@tYjI&{u5^8d`Pfts-E|L!b9yIaE{xTkqzOfM#Z@X&B5 z_@#O4cjJuUo+g1Yy_h$`17{Tc#=HwF*v1rlaJ{__-`Knn6=~iW?4>RU4<(}Dm*#Co z6$a*w;GT8Cm|n~q;ej&>uzB|?X0PU5{FlueD0`ZBA!XhGxG+#MW!}Fko|rTfUc}|U zKFffb^y<}HyIX(jpIJXpcg|oiJJ_A5#KW=_+K?|MMrd*hBt=U>`%SP3PW&q>|Nn^Q zgIk0Rn+Vj9oPr=6r1{{0Tn0$t-3}`bdlq2%_HSS#Di`@xR552r2FVy%6^tb8Yhf=c z2^oh|7ILXhNyJ`MZs*nkBMJ7Rl8C*i+|E5G4kHc(hIrFN4kMElok_D`@C-Er_6sSKto- zav7P;FVPdm=r~$<0A?+K{uVPFUaBGUz#bRMgIU3OW5|j(&hSPAafps!hv*Qy3}DB^ zUj#tkErk8&VxB0=KTd#I8(oYGP-37G!gyRp9I@rbNMuDP(jw)!j6~mJU+|mo={u+@ zJe6aXmb8iUxt$nLSV2>&Mx=HisgG^ts3gDAz6krEmMlp44!4kLlf zNMN-MUhWSeviLvd=b%3kgc9xxX!LIj%LLCU*6|ghOsdZnvjizz034 zJqv^0{y&s_iF_-xO%G6j4R_!T}0+$O?Ae@FavA{+yTGr>);!AqP8 zMkXHqyKE)x6H!*khGa-VZY7t)*u<0NGB$D0ncW+9izSKkzI_4Db=rha0e8dtR-)q2 zL0~ZU%a9Fof;UiDxa(L{FcP35sB7Uqg-<%82Tf2*^Ph0WIc5tO4KqQ2r$)+xzP*T;qgN*x2~-T8 zrnQDYY(~x>S_V5R=oDzzp3hHloe}_t9262R^S8VC|Cc?TLB{j9pU!Z?KQht78ID~8 z7z+HHnz(>MpCbiF+4>AUlR=Dsb7`WFSO4~c<2E|ly4rf$`q~EChT2Bj#@Z%2+B!Nq zx;lC~`Z@+WhB`(%#yTdt+PXTry1IJ0`nm?XhPp<&#=0hY+Il*Ax_Wwg`g#U>hI&SN z#(F0D+WI>By83$h`uYa?hWbYO#`-1(+6FoXx(0d%`UVCDh6Y9k#s(&a+J-uYx`uj& z`i2IEhK5Fl#)c+F+D1A?x<-0N`bGvuhDJt4#zrQ_+QvG@y2g6O`o;#vhQ>z5#>OTl zAfgErZvw1MAe#xGh)Qbf=<4Yk7{V89Cr!4rVpuyn^sIbWy4zxR4^OWM7-N5T1%xkM zN}IQUwlbRLI?Zm%ESjqyy8plH|7qaAsDajr1T$p|B6J}_i}gg9c##N~wBax=L30uf zt{Q1~946e^j6=_>S5c_onk6_H!lq?RBNXo5B<~NQ#q&(<-4LdXC_8r>LVeXweiD|n zxCW!hi<2yAS@rBW`pYb7mG<8LB?l~N<{K6@IzO?rNGgaJeq@l9!`r8~8|9~2rQWjZ zd%ZQz3i#q{>lSpKp14xx@RTPj5+;7ndsk<-*kR&0%VE5yhVm2N`8-Q3XltC1{JJ3P zOL_hT=8H6$3e)M^28f+_mTLN9;b2JxlZB>~+*C-&?{cni1iTScIN;pZ zm?h`JHrAi*@ch!~w(I0sj}h&x_?PR>j?K(zcb_}WR4Jdesrktu(@nPH9xG|roG~pt za3Re4_?fZEk3DCJg`C;1X1DU(mnq{{H+^m$9oue__Bd-#&)Ow_f-M30^7fBH>QKwq`;JB1?VJ4PIzxz^b5dHtR#v%HNLo@zL? zbJ;{=-+fo^dWC;QCoXzipQk>l5FA%vRjxOyWl!HI8;_lh2P(Of?Un7-E@X2>9g~ih zeo~)MGbif)q_fP}wD}*uUD4!(&UZ5xU*C57hN72PGTT^y*R;f3S~-{zogX-4MVQmI zy6~`7dSS5xpPEJHf7xR4W0+7(k3zdeW*n2YI6h9z)XizE@-?f)hQdN0JlwZ!(>XQl z%keMwZ;sWTAo_9*o35r*5@bE5c8byh=kJrAb;OUTQ@FU`tj<}vqFupNib)@3?q_UZ zHA-kn=6X1U2rcs#r%4|BBy?t1UoGuZ$M;>nC(y0PUcg0@EO`AZCl~M-Vkh^Xjx%kl zS}MDuR#7wi`hX#tDSZuR-dv+;z3Nn;`dz6S@v&*nA0959mc49X(!QsU$18vL4Ud1h zcmL*G&y5ROvXtCZB>Kn&@2yyRXUpLGpN!?_m~;%>{k4}uF)Fe_z3`A}iIK-n^W;41 zH^)3R){d$et*hBAuz!p1-5KhOO}_6?EIpXB!opo~YE8?|IlI=pi!+tpCVkg_gQETX z^i^6Pucnu7lX?>POJyns?Yvv`u*mdr`_h&Vcl!>UJTJZ*3H;(ATPfH#L9g$|T48M7feQSy{ds?wG!Y5Qj~f&n)3jGodp!Z!?ZSnQOS zKc=qGe~inRF|s3lA6IX?d;h+v`(@J)+uDn+M;qWM~8k-`2CbleOhCjY~dac~8{NQ)R87Z6l zG+YjKiLa##4%F`ORBfd<`4~B$7<)i|JxA~1&FgwORei$UtcPc>U+1V5K4}a)i>5Uf7Y3mHtkl{;yHu7)|;`HtawDT-E@1zfzfB)6fJ4i3p2Vt zP9#A1eBDWkKQww;GC?j`Wy} z7ZUp(ZN90{@B6%&t~Xg<(vr%~wG4YMc0Nz6&je}b!(y-cnOBw%7dvx&-Hz(aP2&V-ugX7=#`*dHFW;_aYJ7^E-ZdAf5i(u`w}&qABQBzz5Z5zX_eQ9 zOSV&O3>D^@Rn732^kakJ%={O9rgJoHeiz()AMft>dWYnV!>VU( z6X@$hA|5n;H9rs-WPE?dcjIldL(UaNWj&sM+e+rbx|Rt8t7JM1hfF$qT6e+Lm4jy6 zO(|b;d(Orid+#~l5iWeCT;aI)Uev+H>@9UJ>$dx2hrMb8x4okoY%G{C~H}n`Mv-0mbZFZ z-|}~h#59f_pLt?UiOHD@oLO?3H-oR+Zb(l&xoyKeo9$AQN3R*Ee$7(mK23SeN&OTr zrNK(P={4!raUUcHs7k2UX$)TOdU2ApfrN6Ba?|;8FU~GQpOuzkhxYla=iimB%<&Y_(u5P(0N4FLm78W{Y+Dz6$k!G*-oY~`TZiFh|Qj7|i zzNElspsk(87A>Xv%-shii?U4=$9b+hvB_qa{Ejr;DYFkYZy&4SNv~YHgLOFFW{&qU zk3A1;&ZMbm7}(df40Aau`lZF?uJQ_zD8YK-I7$Uy> ziR{sQW)gd)^jIC*OIzDrBa8YBSaE-&ijLp*97h-F4??5!mai*wPB_1mBiH(&>|mFrl#($JZNEkTTb)Ala)`5Qa`nE4%kdL4PKD?{k)w(@Y5xA7p{G6Jt-A*VCP8b zJK}{`R@}E{a(B2FF)G)G#Y70Q(oNq-Tr>-~(_U+BGeNu~Gp(bgmfO-XYi`GP!6=8j zuf5lwx6kx;T2}fXJMfZH%ff=_ky#5O5*~71?Z0tr&$S~RX1fl{-#Qwdn_bq|wlR1k z@5t>7-oxG6BmGSu9d&M>k>9r9;ppind_p|WTpmBhZpQ}IIj?xNjm-H|IOB5PP0rjl zKQDHq-GFizTa8baBR?oDjm>;B+Vz%rz0-i0WzS~MJ>=x4JiW;z*U!wJ*>9)>FaCgG z?3jZx4>oipd@6V^IDsS*1r5Ay-0D6mes(#V|l4t=h*?nu zzE6WV^%Dxh^mrE+TlaYsDeq);TD(AimF7ol2tN)vQ!~($>pIP~?9$t{b*s+|W+uES z*yQmbnwOb<;^dB-j#^80tgBrS68B=)qb)-Q`(`N~JF0deIn42h%!@Wfy9WHe zW&5`675aH+)Xr=<-!@N!;Xg0O?_9p;nN-Dhjl9T_E0?Zr^Zl{@veX#+%x5$1g~%+@ zDdnj7a|PzdwXWE7+bC6a%wg$`Gv2&j!H%6jbK`~eA$xwRFWM$H^`pULR@&68ov*}G>AGM_EC5>CfjyXNKqv0Ta<+1%q z_4cPm6YZ78Zq;pZ#_Bfmu`~RW8xHdurR+A{%ggX=@Y_9Zv0$gjV28`+$ zXP5cvD?8%2%wsk0zQ+=GNT|>pov9^Lr{T@it%L?FXOLRo4@$tnFIb zbO{Qt7Xe_lmo`p=j)yVOGRpz1oSd%~rnHde_qCd8EV5trI|=BmKCr0W+=%?DP-9ZU^# zn&ULbhocas;d^NI{N~wxPh?2HI%Ojie@|q+g!!W_YV0b9^|vO}EE{i8@0*nnw^1i! zqH$up{owhlk6pKYtR6Imeso>pm~mRcz8?omgzdYXYqamsy|G75L_~RBI32XHa(te_ zG|{XJAAT&cI>EggGLRE#xT#;@?7jgi&fG&wC6s<@Z^;S$T7BwF>XV0Oysi7UmqbiV z4;s-PzV@b%l1lv4g4pY9-s5R2x6~-#9ww7LInmtlZrU(~T5}qZHg1Y~8fKAdx6u3EsH#!RXFD3OR(`u6)9Ntz!2F}@KjpPd z4NWs2SM>h*`Imb(Gy8_#AANTGj{w=90(ahD8CCp!%fw;hEncEcOG2@5^r_qB=F~0H z1EktRk_4!DMCLO$k41|-8y3+7(oK^V*pA(pp{l2oU+s2&`^EPPFWm-QIsTyBtZ%wX zwMK@^XWh5%UcT-NO3I5vxb0)b9bS2A3SANExMDI^t7QL<6_3RhogUe$5EuX4r}c$% zR@3OLRoS~tOXI4IEW84(ES0Zpd+^2L#fuEjqhsHeh}mB{&-HHK^leb(_u(Sm*K8s( z%HA7%5lLy+l)9Fg{@o<)`II+-3dctcx|X@)q$%t9@;4I|K3I*cq^iu6!S@^KAX4B#E&vH|s7tw8*2`wZz!1kCG5A!^eLlXo9NmQ1miEw|GQm zk@K{mdCv!ZF1oWbY#eXumtFf_JFj)M5lvsZ=KT;4HKB{z%cjm$YnU=wPWG6aSbsT= z^3p1%{rCk=1J>(qpB>_}d09rlp|C*u0@E7L(E~1~=kxYHZjZemIYV@KuJ^&8kA4PU zi(UBGDxaBKg)MrG6zoE(`nB8idV}Iy`E^IQl#Jq*b#l|y4h#ra|Tvg z3Pxw8~m~Y`?C62jrkDd^(0ts zgSd#K=KJSz%KCECH#Se~n>`^wHmcrL@!YB!r^4F}vWmxt{g4)XbY+D({S>ECdY@WK z;P#nsucfAl8npY}yVJ0``lV1#i<#izL8o8a_P;o&)#^dW(AHCo{f+W{=jcojI+au= z-FJ3-e!@}N0ZZKqKD9&71I^q5l`VqSWT1pXv zPphtO9Pe0pxyI_FG5yx9Jk{^Mg(0_H;?AzhV%thZ&a6KbpG6Cl%UiBfQzl^NX5kpL z(=vi(wsV?dU0p(i#()orvzCjV{eEbz$}NxRzzjzg^BDWb)+IY7<^}DOI->Y+@?vq3 zPgPk9ckO#0vUS*U#=(Iq2M!2VyxO-iGwrO^q2jSa#^p?$^dQP0zO174>bH$^YE}we zb19oQ=ZWk7RN<@gE|Wecv@gjQeCz%ueZkbjM;bCu`+0xOQ7k+evazxC+KaQ7V~$*{ z-JDl4N9dZ;=hN@st}bNSo#UjZjk2<2N-on>n|Sup!?~|Sq~xrIDZjRPFKa0)xnT9< zd!AO`GA-^YgDR-CuXZ_D8witG0-HdR^5Uhd5Z6?M97>~XDc&}OOZr&rxvKaN;1 zscb}?w^pgTk|X2%ZqaJd__gaeH4^7k%35THt(-VwZn?A2BZHjRW6!C6ox0fdN5iR< zZ}MBjzKiWX&?lmq`7r9!?gN&ZcPngH38^$RaZn+{ORXasCWiBJhZH}|U?pnn+ zoRv3<9;ZL96I^e)=>B-eAQir{&GSu8>t$C49^KI(TXlv7_ zyvm})(SC|r{cH|C%Fe8+7~%NT9_r)EfI2 z{*Rwe@UC?|e~XuGx=?Ff?djZ$pY9L8C?`EqVZ@3Tyy`IrCL0D@hFGjNX|R_1A|Cx{ z#;%=LtJ}8N&Ht`6#rWdNuPd0%8V@>T8Ihl}wwfNf`OLo5b$0w@XYW-xF+Qq0w`3(} zCC`#tlRIlnjJ^NU&t>Yuo7ZTUW!*cd^htIVy{$_7lY+wzOq|BZ8P4TGTnFA@x9)W4^=)M zR=8CxWjAW2&=%Phmo=Bm$;lg6R6I&$-k8HkkMS#VwEVoeQbJKJdtb7LT#^5-nmJPr zCvw)t&3HTPYoxX*CwgDalr6B**ktlW_SneX7ZR6Rx~AWK)py0bCClGFe`slb+w|bZ zgG`}sKG#$S=uNy{v)(XrkJ-$pJMvbZU;gIgN_ziClR{l;ZM6;zRIEFZYgiCB;b_wO z3HIJi`sY6QdURaY&SM&{++21m@hWG3p}eKC%R{TL{+!P{&Xl#Z>4zK`;(0nh{+))= zPRDT{qs9##Q8!1cDu3+*{ncA5XC@wz>W~)coAUVLY0=2K}q z^uFKoM9rx|Rxh30u7nrKM$cPgn^qtBW@zOb$xq?4zXzVUIIXpBf=BV%+nHaa<~K%^ z4t_u2!@dipmbPlgr4OC2GOpHD8oeQKQJ7P^w)kGvRD-l7=_-+tIVby{S{2+sZ+d0^ z(Rm+^y$Kr{F5%DZ@A61zrRPbPBRlrkJ&1glVK$=P;@qmyVi6}tU5*UuH^or+ks`Ns zVfy{L@$rp;>uX)oLX7uid$o;`w%hWmebvx~{c@&W@VqFq+NJ20^2^ZM-?)>v`kr3m zFeP==g`^$n=f*FKYqF`jzQRa-^??QjrF&*AN=FwBP*I*Vx+!9_Iyazydh069py_G} zb1SlSWrLW5P4_#GZ9X(^`+^pO8Oyw8pL;#}>oRxU`2+p+Bn1^8G>EOJ7Md_%P+2Vf zR*HJ!snG{RKle>d-}H14M@9CB`&=QRxpy}u-174Jem~KBw(@S}#RunP6ddf3+d69N z;KpGmT<^~~eL!K8N^s_qR?%b64dU->`@I)%8MQeK=Bz&qJ{s=fCeC~=ZaU3=+rFr8 z!AIpTa;wDF-4mbFuzllPqxN}QY--bwSFQ9E~``oR|T-zWs>AB1? ztKAnRJf1R#N0;rUuU&aypVYa>!G7~@4m|cqf2UE($(ci?pFR~gJtu$moNnW-`xbju zXV^J!RGn&}c7Uc7E&t}VzTPNaW{qur<*_rI()%H;9zu?DuWL04E)X)dA9G}m@uLT< zcNP~5SMIA9IFjniy?X4^O6duoMy=oq?pp8jXv&G?rK~ul6PJ4!J zJ8M~Ee0jY8p0rhCx2&;hqpLW@3>MMy*e*L@#+8?cj5a)w{eG6q8hY<)!xx*rI~~1> zwp>_q*~d}3sH)*o(XGJ6Uslha`E`mzYHs4L5~hv6Vxi;epQFT9jAUFl=zDkj>W+d| zu5-U~{ds+ooz%JVm}rFTB{x#N~A^1-{` zn{W5!n$P`|*W_H9Hrsw{jq~NHX$Lz}pKB)`4C}Z0*2T4pFWgLNDNR0;cFeolW#smm z>$YSIoVlvhZ;1HpGF7ucrE=-&5tfCk-ng{uPQGOA?0o*DDs$YPQ}Y{+jd4p3|Ka4h zAU5-^z}?-m5)PYlHCN8BEZe(>mRa-Ag|S@7I(LF*$3WBd0cUe3TuN#ajop=Jlv6Tb znoIi)iKlZet$(igqBckQ^x?Hp^AZ;_5?=c6e)Q~Ik$K>?mdl&6Y}cgfYBY{^%dm`p zKBz@K;*Qk#_16ZepKw~^mmxG^@u(M(c`No0$=g-DaFe-}fH}7?R;>I)cu7`OhIr|n zf`p->fn&s8Xl-hEQCRh9ver^pUW%6f66qrM}=m-+nsz9##} zHVc8ne&@$VXqb!iANW|tQrEnEo_u_a_K(wBd2f>~%Gz~uW-QJac(yL;YwXNaO9m0 z8kYu}z8f8$c_ruco-Las)1L&l>r6>qQTM%)`6{O9SaPj*@WG_Z1JWGUhv$}dsO-|t zepH=m|IEOS8Loe6Oo+s7b>rjzA9v>g6-Cko>cNPDqGG@`jhMiIn6rX1hzb}nDKxv)?_DqRsh^Vahi0S|FnwC_WQQH*`=(#iOqv^6_QvId;dQ&W7#H91p4YQg zEA~y;AGqzz?n0T78!yj|TsYk{()rY?UDcP*U$*68!Tq6yi<*5d8Zvl?CM~8-u}^*a zC*J8=_4MIIrMJvX?LPM5#uaatS3P;Wn8*Cmi!X;g^SzuAYFxX6f~Q-QGAmx7&A1CUr#v09_-lpsqnpNg4ea~QbJoOO{a@`_e=lYK z-7UlGl{0jAO3Aa`w_Fao2z8aRR*u#2|t9^l!W%5-ik;!95NUG!*9>w+%3)w=?=59>SIVQ|q!#qK!xtY{b&egDlDzjxbz-0W+5Z(xTpr0oN_R z78gl#e0V!%)09`w8rGV9Vw&x?eGVBVm)kvFW7A;Nx6b1<6D{x9jbF2;c=x9lJzOfZ z@-H>0SY!|54r>bp+uPik)n;F*{*qoi~mi_bK?` zaQo}Me|k)@+g#st<$&}p`d!dhW992&apXpN7!fstZ zbCR7-sA+s_L@C72-!PTHEu%>a*439yW_K z8ujqSyAYGg-e1ZLnHSZ-!Xtd$qc%gjd+zsWTHEmS^b!lMt_c0LFLYzRD38dKI()P?37?)-T_?u)hEDI%|eTRk_ozW>lp^ne!(}OSMHuXBSI#g9cU&tgIyq;j~bTe|QKhj)_qZgA`zN-WZ@C9=(DqEpJo?<9etJ z#+ERsU|iS`-XIk#;Yt5+xCZ>#7B4X^Ux#9ah6n-Sh2yP(3+D$vbUfb(NdS%y1TGxB zYnpvLQFnX-aN#~R5kC|@|Jx=Y0O6OwLE&D&4;|0TBrSf=iwtiSd2%Pki1;w9lr!M>i zJiY@KWT)f#HosS7Q+nA4&3zhmbtfec?!c2FW8&l#Z%Y34%jtYx_W#0 zcm-)m^XNc1V)vmcPwm)Xs|K(US3|TSKuXPBT3UxzaZN6)eg_)(*}@T!gPOyq{1h56=Fh5 zPT=o1CP=Hxxd1n>K&_Mweq*!&4XjnJ9UZ&2w{>*wYH#0D)62D&ZF@(Jt7_~BSFNwR z-!N@M*bP+dyD9el6#Ic8fvz3_TCK{}H84nIm8-kwNLLRxFKY zSsyfWHN`*KpNyRJ5MP8%4anD0$X`Xy<&*IRJdn3g$bUvo@@S?iLriM{4&*JxKgC-C zn=+DzZf?eyIv<5PV`dwT6Q@+*4{uS^#3SPRo z@Ce8GR_qXQ9*g}Y&L?4igY#d=!G0*Ofv_Xor#AAI^JQ)I^B3)M@`~8r-Luipr`hV~ zChc?b+o?m)k9El&#gWEYVdCX^T&QX7Tyk7vXvfjQxPVrKERk3SM z{jITqsKK}m^8Vd($}hq4T9gMrl?M;+nXLz^6rIpCt`Hjf? zGI{vE8{9y7qm$o>dE%HRhKO$ev_*dlX z8UKlVGvoQNz1q%rA>_X^UKDu}*LO$8 z>HfAG;}=j*FUBt;@5?yd4-aJg7Ru9oGnE(Je+^^u!FWIE$@plsTpr$xKZ0ij!ud1) z40#aaPfN@4V;O&q@)H<8iua{c82^m&;f#Mr9?7_>sT^+%;{}k%G2Rhw4up$m+!*B( z7%zc*3FD)UWIc(Do1y$_#yjA+!+OTmD8HHU>d3b9eH)em!N(N#uJg(W!w_;-%ek2JbI$m_%pKI8Z2DZ+WBRRWXtQj3*b6!EnaOKZ@~= zC_kQY6VxBUcpBO{hw)cv=R(G(p?@9Yvrx}g#;Lq_GY-$=z)`;!@*nbTH|jYJ2ZbX( z3gxfKSjWGj{8PrGkW;^r^bA7&gUJ&oyGXtm=4V-qpZGh}W6tS-5FE*qeRN$WUK;J6#pIiz{zZ(#1f<~TI!Jn`f4q&!)Af(8 zQzZWu^&DsNacIvA#%<9aSa=8=Y!FF)ItfX?E9xnR@sKc8_B0qO=KLgY6jy}fA%m=deRxcjEWv3hvY!qL(rce(?RxB z!u%encA2VJD{ic{tR4!BxnlXL|UBYRikIFa@n(9c9xh?r5$)g1cm+9oR0kN}fcbNiac|V~g7FZP zFNgJo?2o|ms>S#yl(#}o>3W0X%gvblU6gOjk1ak4)|p$D?21lFIaOdeK012>Dw zzm~CTH+{5Ry^ znYub<$peWkE9Hf_dq)ADpBha55z5zP@{cX#h?_9^b7+5S zCVvLU_cTm?FUmVIdC&5)eitTR0PP&eCOXN9nQh{KvY;4Byq!G4bu;}yVQ;rtn2f_x6+ZH;94-HabXex31` zc-{TR_!un55;#yu=S4BhpQ^|yT{p2_X&7%%MYf0D(0N{JJs97P+>7bi+(14+&j(1)ew1Is z^qfF`faz(_NIr0%$zMeI&y3$jZiMxS(iPTNK46WU?0JgvotXT%rt*Q=3VArMX`E{b zlaEI|DNOzx@;eF+^$@$qsy7M_`kP`q@P+BGfqE+Az&h9u@_iwJ!dWpsO2(?D$SEHX zt2#0H>ZqqL<1xtTx(e~)sVJ$!?vn0)iu9Y~4#>l)SReg08Sjez+Kl%^KNg!bRtI{* zkhfs+bI^~skvjQAd>-d=&?iw{|!486U4wIl$a zexNL1@%4i6!$&GwUty20Uy#;Hd_P%F`ltc@!+nFT`~%>#i=YtHtMwFLKe+j5vGo4^ zMlFIu7Sef3nrv`~&s2rkO=2pzkA$YkMn~iw!*F?Pf&CA-TtZm%s<1hhzF`2KUl!N> zrntzv)mVgTorJtoS8PBh5C57Sq}}1!Z9%wv}5|>Z@y3tWQ`dO@k3H5Jmo*M ztNP+M^OD04mJZ7M@Jr!|3>7;}L^?Ejge-yG1QO3BJ4hVSXTRr;oZ-QK$O?*|?1$@@ zKKs{W{6Azhx?c)UU|L?`N6HfO=mLxZc=%Ak_1T|*_P@q(U_Vp^3QzXK^$6^@rUPOh zoXuEy>%%H0iBX;}6=M3rZyzUz$7&#Z#4iuOg~ID3e78M1GW2iN%E;JA`G4rIRL#ghL}&T%GrXZto<qE%w8GqI9c6_e#DCVQkc&KyJ>>qW*Ij!-+sO4lFTq*_A1L#%Yu?GSYl_oTrq zVTlyGoY1giB_!YTFwr9rYc!>TVGgmHRI!d!+DVOcOsE&pI=H8a9azc}R#FVoa7%vf4tjbO~xIMZpsUXIqX0$%)w` zF1`A!o@g=;wVQ;W6k+wrnCoPMhDgT^^+=f|8@=|KaQhr|84hovM^D7O z5XBD5$_bUWe~2I|+bC(NB-j-Nk>LL!5O;r4h7S4RWP^(%uya9y=vK7b7AejEPHRgaY6SgM_h6|`$Y3749`_#TmHLp zg$_sVbi(azj<~bSwWTip|F+7*B|Uf4&~wibwVdpu;=&&Qt+CM$UL#I9@Ly}q6UfmlQwD*CvZ{eVOcL3hoz{YkqFZy8T`v~jRmc_>JW4f z^d#_sxYXz?*NG4@6?xr%SLE~bngv(h9A;$~c}JaT|G3Ca!pD9S>kBGdx@CH! zH{{XF#eP=cI5}H%am(I1nv^KbF|nU`&_WI?xA;+F`MaXJIA8B6##V7#!w9*q@zhu-Hc&RQITLD&LJV;0@wA|qOzGu z+h`Y9ShaKwusP?#s$p6F;yRfmu9Mrvby8d}of5@$a*4Q3Ca~+ISO$__)roNVO%vD2bRjAm+nLb5vfr_FR%r_gq#F zG6~NTnISIsa(jZ7h)jxsra3Fxkbjll=X%o%w~l(! zi*1O$^kN&5>kw;05~HCzz@_BwK$4<6@J6p$@Nh7PS=ki~+Yq7oAJ+hr@Sb9cN+=dx zE%>T8dLtfv&Nf6Dx17j2nzSg*6|ukl@3bM=(HDjWG1uw!*KJ4|wINrs+Ysq8E43kK z|GEtky_mn%hJanPI_Vhp2h5&ay*PY&WqHi!wWk4Qo+OM2rzoROJYe z5sd(@0E%AeoR?N>#?!u@NrZ)TQ9uEyOr?EsV$XvJ9HOP@ghn}X#TkxaT1bXupXath z7R=Taat*z?Y^=YKZ;9@bd;x$vDxKY;@kP7!-&YypEem!DdvhCV>$L$!5pvXXxuW%v zy5)MZL}!qk=1DF8t)aYW>1uGR$9`~J6 z{sc|ZX;&6>W*NO$2mkxT%GDBVl&fVOsai%wOc2#1EE#^=nJl2Y25q#=#d_9wmkaBH z!)Qs$x?4QDCXFVsiM z%~7PH_X7J;?`2A|)GU~UHxyAx73id>NstcBl!MX^nkE(spOhl9B~cQJR)u{w*JZj% z_%$Ia7mi$gAP=%{+e9#N7dCPIKhJ=`f06D^CKLmzpyz(o>2KbzHj}O>aI;@WlNzNtEA;-y+nt=_O2_|6iKohA zM&d>%m3k|pV?uX4HX_l{ngda=82#(){tDjbi2g}5+&s(oInO5wRU$ve2iLX}g{~(H za(1zwJIV3`{;qr_A^#U8XDE%A77`ZJ3$CUocExDH^Gl*x{|i+jA~C8NUP?FaAqFVr z@|AnCV$4q(=2Z>?>eS&tjp&BJ(4zi6h!jC^vaD0Stqq%atbj?xE>U*T;vP3a+<`i{ zpBDKmbX;^01rV#Nfl(KvxP*lfE1^>AsUUoKEoTM!_)jXxI&l>dQDo39vDm>|;tX+K zi-br=6_=6>x|Beu=bms8`r8Sj@j#RC`SK~1tLn>xdb%r3P|lRWx3hn{v4a-`g^lTy zGO>dxOBX2Ca&~S5bHcO(GshXUpF$yzI1Y%%c?3M2nxM zXz_EVwdOxb>wP(jG)k-3!L+7jr&Wvs*rG*1(0mDuw|@SmVeHf_|_>_|h!5hu5?UOvG-YQLc)wC+LbVOswnPqm+iy2dcI zm>ARDQ#(urZ)FUq?KKEg)fx{EErfIN)sFQSA+*EPTHj$1BG4~5z+J2M@(uJFrX_ts zC_oz+=;h~IR~_Ir+%rh+<`JX~PzQNx)#I5ScTX|rr_dOn9#F%5klHOsX!Q`YfeKr! z)P39n)w&qn)Zz^dFW=$n(Qe+sTD3TY=8LI7ebghhA!4q-V1I8fcefxdc!k2iLBcW; z3l0=!d-w&YK|WAD#!IBx%XgS|EF{}aB&WtODUttuI>{h3I9EDa>WSws^5Jjh?%#;@ ze^7ps?f(NklC@Gv=FIQE$cJ3{SXWOz{@Z$4SJgEb>Ymz1>*E&?lC%B~_?z|LEg--x z1Zr%a)qj9w@_)*||EwoR_Wj56@;~d7vocS+Jcc3=A462GYXrOg1Wjg<& zo~Xph@9yJIl|yW$w$fEJ7p`)R)9)9#l;b$}izMVc?i-SaUtCHhcMyhrgd_jhCBeO& zynDHnKKLnl;ip%Q_r6>ATsyggW&CLy%XYi19AozEh`JhE%r`A9++kzm8g(}w3u-j0 zSdrRA-6Q9>|GiX1?RuKf-@Q~#s`sx^Dzbv9X}NuA1&vH&N8LX%{$Svri#Pnf>+`D? zpO%by^~b#ye;(*(93E-3A^hi-T77H%{Pb=8hT7kWrdMBfHrZeA!>ZmhlU03E-;6I-ef+GF6|bg^Ejaze z$nzgxjY#kNtlFsQx2+-^)Ly5ek9LVEcf8B|1x*K!3u$5g#w^X?#FWnJq-_TpY}xjt zz}bAarX;6St6AQ3RogayCYYJn2aJ4hJapNx(VJ>jpVDbaC2Q5%DPBX?)?CmerJ}XT z=E7SGmYq^8#eRtC_VVfZ>gKy{Fd#H@r0*XFNhQ;Z-!71)YFps8ab1JGs=fJIh2EMn zDCK2JrIe*9gHn7mj@~Z)bFo#Kl|Od=>iwX5pLO3)r%xJXKC$4VlD$g%)Jgrbdem#x zTg$7PKJALT_hEYDW#Qik$2{s8*R|UD0*^Xr-j;sUXvT!K!SyPpb>7ly{i>@yCr_)n zW7n&CCxf>BnsnK~=Wcjsi(mPJPc*sVq;(kfg~aA1#zL6_^5PAqxtOUBy4w~qCG ze4)j={%6x(J-$-R?bwALy=q1-UuQnO&W6Rk5A-jy?P_ebL2c6mKlJE0r)9}*#Se|R zvtnq2CDlx`qSoYF`t(KU{km~c_S3^Qg_PbgyKYuU^A0WI=ZDNF+pu7z4VAY{nQiVf z;aB63{8qmzSm% zDVMclum7aPx@}(AZM(2`%$YY?)vkPRa?H5jhRf9_ReZnY-H7C4O;>*&_Tr89mcy({ zDKkEKe`|E}@c!y&ue<@l+_4J}u(@Gofh)M0arrYTwJA3>rGwuoZc5-aKP#M zXDon^E8nk4=jG=6=WR%P7BMRQ*O2jZ-+T2+ns=|S-~94hQ~vDjH{{2pkcjpj%;L>D zUa41d;+?gxe-wEbWK;90`|Y@r6F-euRWZJkv$uI^muX#go_Jg=sz^tl{Q)t1ePY~K zScm-#I&vkW$VD5g=-}P&Kb@@mBXFEYot2X>Zf{p`sA{`iTOz3X&} z>9X?P+{pFcc0PHu{F3+GRj%FV*f@n;iE%kumkS=dta-Ihi>*HTcas zajn_8a-(BU813}>l-26Yh`R@OZYp_w;e%-dG79f0KRV&$*6QurCck)i*(B~=>>p$6 zO!WIUxAmNatetCW2OR8GVWjn`Z5IkUYxhoMDGA5Z!1W!XQrY|c8`qm$o!qwS1ZXTI+dr0Q$Z-{*bF zlHP~MY~5+{xX9>$%$H>zv>Q;r-=!Sw@iEae2bbMGYrEg-E!K2dvgTOtYxBF5UY}_8 z_(?I><{e9#e7!mO?Vz@|yxZ5?(6zJj8R={mJIs6eVgXi zR%ODy`$ymQd$_Sw?+Wj_ei=9D-pAElb~y$%F7FhcUS8E~dS>-0J8JDJ?)y~rs&Rup zCD$!l857dAWBS>oA%Sj%B96bY^eNc)>&F=Z%a7E*?^fbj>;7}c7WMnpVS3U9E0aFc z`$rsWxWCdHquUqTxj-L6&QLLip>V6qD?B-NDc?P$n=EBHB**U$yxptxi8bT@?7DBx z#}%7@f3rHWnORMPX{W;O&o14dU_sLZUga0hIpTfh*p6?_JK63YU31Hra%TH}6z*-b zd#-tt4$;Y)o52gF1=bi|t3ZNrvD!heTD1JsYTKXBDzrAaFz#N+vZvpEM%&*ha?fkc zifZ?M{j@l=YSD*?7Yp_r@3MbEza`&~KMyW*FZxQC5`*3qd0A#^9lOc?lja&N6YDuX zUD~bBfX{a>bPHTpaIQ`AVwYNRf#=_r^@tu8mOi-VzUV`v&Q&hiy5q}L!;g(?TFQ+`9E$N?|IKM!9t$lUfu&7{tE ze%dEZOSa#+c1(5CLAT5;)^Doc@NCzqGZL>=+*tn9m!y2g1^qw1IJqbKb*Np!WwT3l zBiGqI%y)U>@sW0yYBf)3{khia{bfphJs;{jNWHM6&zw))_Czo1GjC0+@r?^TH25%e zvwBhIZ)-}9JluVIwd5WbE}nE*HMQi2A9tDsjj+3NvSQk#q|}2gzE|ntmpp&pzT4*U z{a%*%)M?zYhLIhPd^5W>&%o_d^^|p24X-@ywb>&ev8q*~yM6kcRwTH?zzCx`tNojn-0Zx3UeQhOO4Ui8xM=>eqWyYTU*(d} zr+oExiB+~Ywyjd)oM)vuM#(RmE*Vnjm3`LjOWkcBMs2#~c=1BywNv97hD{8}>^!0K z*!I>_p07L|XxeQ4qlE8qLGwN)T-kH#q-Ui+9`}8kHM!&GrPs_pY`Q)7!}rJA&UTvR z^|8p_Zpm}%k6067S;Vwx)yk``j&E^lNsvQQr&|U89O~?F+w(%qN6+FX8W(*#=gX6l zZ}zs|@F}p?s7rlM9krd@Z{gjoj&C|low#?M+m|yXe%l=tv8hc~H^cE8j$iuJ@R!x$ zfunm2)t1VPIo8=|M1;}rtG6!y*39J8+R?vCdVKb%f92t2jpe496%U^&?o*&+?f84o zmUk+1W4o@s*_o@}YkQsPQK3PJE9*WNc6@2np?JlVg7H1A7B~DDI=Az+5mjvG@ADI;1__Mp}R*N&WFpMuyyJ_IOB$6eXn1eH(F4z#EVp-A)!A=% z@w2@zeD_LDHVOH2%>Hl93M@W4?%au=ebkmd#VT&`8h-z2bm!_l9!J%kvc$$Vv3j?X zNj0|{CMI4uQ+?dG*FQ#;&+OJ~`|&>8ZvG74SNLiTm$l);9AE0gAWbxS=KMDP?r@uF6=a&8FB5}5u>a|rCmDx>eMF6 zs%S=o$bGMz&WvdCx%j)z50}n-@8IIBIkm&0M5)vV&HP)(cIr8od}Z?Z>n; z57n!OJ{;ffwW?#xRnIz?Dqh>%HM8`@DIvu#cI{r#x5erz3*3h

NQVxP04>QRBB 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

_ z*%O+=jQc7FF?rp*lt@jcSeqd;?6pC7O3;8qko;$0iB6R1=LJTHb7VNoGoD#q zE?FZeF^7{vLlwPg3v5~(ZGr%u7^b%qIM@rn|TS+CN@rN6b5TPH%M_f z8IdBWl-02juO+#NRM^DEro$$BH-vJCF60p1+t4A(z#*!;nC{PBB*#`v(=DkK)=LpY zO92l;6R$gAB9cVtuw?jEg|rsaCxc?+xatg%|DQ0Xs`J}Va5fGr2l)M}#^tita6$^PPvR*2zXt|{2>?M0d#euRFHBKtm z7E)4zM1v+5FlAe`ES1M>i!jF`Uboy;@&|=EXNc=5Pkku9`GZLby~Ip~KK^1^NZo{H z(hQ1TgRqPBH|H+H8Po#&{DS0p4pr^lq*)7n+=5gi)osPJjw4}8Mql_YQ8rIx7C1fr z(XxOC9nawxHA`|ahVqvDVve$TuHL;grB6IPfBTPCW5)dX>QcRzA5C7)@6oqt+0fMd zQAO;0oJ#vNU1?CVNqXU_8#esbr;7Ktl}#HI*lN4wrswg<-95GxT`}u7(t9`%TGTrhbL0y0E zpSx=|F8}tu!KG3y%kOz+{Nc@;;SrTry-}Ie>bPQdb>kgZ&V~0lYL;NN%1fJB;P{=A z19ug=kn}ZtnCZ?2-krTSdVk!pu=r~;i~P=!!^awJy!K&1lRK-cwVLg-EAiKn!56*T z*C_odeTBK#Mo*WBZnZ22_nbHIk^8)nlZ?8LbaTF0d#q8ja;vY!ugUKkRieCA>6pWH z6Y{?slCNxvdEb23L+cGG?_KbEn9q<_eGOWrIBz$~D%5OBn<4f47W|eHJEUDwk&3Ej zVFOZrODa>bz~0bXhXEg0G%Tv){IH`sRDPDlUx~AAjd`qpnp<*A<lZ-}rthm>7_0tvi8vO2Yc-hQj z25DOkIQ@~?;BnE#J&i6Um%6yWQsJzi`p!q}{#@wwc;n*wbB6txWOS$KW&5w*PrLM5 zn)Yp8bk{O2qkeoHQS+@*Xo}tPQ!VNQHr}_S@#CjODw#eicdGED_h*J(JY%%!?a-M=zHMvo*}mb| zK8<7cym9|HvQ_oxyG=u4zL%K$&NS9}^UT2~8vN|Es&uzGwVub)xP8xRla}Sby=h|WAm__3)2cT+ntbS2$^ABemb0?8?>P6@q~6|D z6Z%Yj5Vw2Vw}MM<-yWRUX3!PibxV94KF3{bc4PVCh>N?QW=!`@_uQX(Y;XF#KW~0o zXCL{eL+y*jE;x;?(cf@-xr-q`TUp#F6zKA;;K}RX{HxUH^V~b^&Yi}qE?qufX{|%; zrK4VjT?v}!-0XFJ{{rRg*PO|!e9k!I#-^;cGmO?=Dl@vug-Z+iuDRFj^uq^52KJt3 z)%e=Q+uH|~tmCSUuzsBUtMB%!(V6GX5BF^F^xMYnZL2Q3;6L?UvGL(onjKg^KI@3> zxOTsKo40!M;6YfNX%VND+EpV5e2jiwZ@`;+6}AMN@u+#@&hdJSN52|$duO}B-W~e| z@BQ;jrzDf4W#^m&c8>MgnR)JA$oZsUqv~6A9M^1oE6W9rpLUF?wXXldn;##gCmBBY zHuiG4wQ0XEICpdHn{DH#-5s*9?f1z>8!fu7opry2{rB6W+kZ(ivm2ltXXpRRBH!0? z(czuT{!-1{uwQ=YMePH%YLe(w`yJID919T~rPfl0Hvy}qaU zR7u%8s{SmWnj6x#k7)Sr!r4;`FBP?Is!cRq(c30&(YO7te80qw{4k=_edDvOiZ@ih z2n#mv+ia&vywni~0vz zL^pA6maneK=#DR&Z24aAdyid_g=>b?f9+Y$^XK$+4ig@&x^=NA z`IZvfV7Vn$HH9${Jq~V@3*yaPfp-RL3KmE%cu=~yiUU+0bT3DKQ9f}_o%7q4h}ggB zTbFSjL$5f_nKws0b!gBEL*HXYh7U$J%xG9SW#R3ViH2Ltw4Ty#fQk7V)#3a}K@WqB z!um#UowRM^;5ILu>qG>+=xn)W_fOw#pI5gjdMst*OSQkyCitWfO6%S&~K%&g}*sKmX?OWKE?b9mJJc-x_!Z(4=*@qTU@@L=Ta z3g;S~jh|NGs8^GWku^;&1*BIk@*s76bjZ)k!3!&2w2E4`{fS3DkBQF~EDn6IW_a+E zfKx3aZ>_9V*m8EvxM!E{oOYgmt<qE|=LS;g2P&y=Qi+Y3$l}@!@>mGEP-@ z9Wtz4v9%uaR@}Qc-un8c6Q8~&)L(g_v+LKZ_b01*?yh|w@|g0;3p0}ZW0z=qIr-hP zHon^RR22ue7FAvrPp+FfZSbX`T})b)+*$Y5h%%?*9yPwPtxAoBwihdvYTdK!m(QP{ zUEI_tY~8)&at~8}yFU2F<6`}54BFJP?0eUOvm?f|X>S(MEA&IPq^(A^*A8fL;(WfC z;tdAfzP@Rrc}kHh1$q~_R-kEtJ(kNyRXN>gbKRPzRb9GvcROKgy~%2Jlqxo`re?sM z%+#1&Kg@r5McW1Yx$KV%d;R?C`Q{}9P5&rb%eVEY%q8vad-Ym3`%bCVmzyki?I5%o zCocRw>gJKBliqkb4e6PB^SRyZ@lRY*diTv-d&1(HvkM;I%x1?s|wY!TA7|` zUZje{r1!5j54gH^*QlKhulKy$>Vo~nJvTpE`mgQoG}?EPZ-?ThYmF{e(7ua4JhSqJ zmQT)~Ue&OQdcv%BH9CKDHO>0sXx+1RC6{*=C3_WUZWQ+J&984`_n2?5xxMQ48vb1~ zLQ|TR-R8b?-on!vFB+Hh`rXC2#q>o#S|6|){e9BmFO?2$Dto5qlFj3?=D7^+GNJU~ z;x!T_SpCRgK(LyV3Ha zO+w4$w;LRrkl5JXyZMg$$EIB#7P2TS(Jp%adxJ)|GH;jJw{=$jGpkj@ezRyCcO}Ye z*2T-0RyH$Dig&Ww-@WXVbIZ+oIgPE~cH-QC8#C6s*ljT%;j(i6+9Ew|=FJ_x+5O9t zPD^_@-&pZ;O=fVXRa?%-tR2;BS?@8&_uX3HTinO%e28|y^wII19(kWWu=b!uy9$L@ zrVc)H^_RiC)rS`8>TxDiYT>f$am37vMUPk;Yd&@GshIlO_IsgUHv1aiYB{3ioU(fk z?Okkf@JsyM#T}Ar8!odB*_oaazpOx5bNe2ShGRN4a_il9xYPGfTYF3{T_$qH^pYj7 zb@}w{yoar6{smWK1}6IWjO<#%%>B*#kL{v=?)fs+<4>>cmy0`}D0=;1c!E>LfUuAO z>+L&+wJcYw^Yl8QW3F$Q^QdTj^|9_f{x8k3^b=ZF-5f|?^3fbf^c?IVWE36GcQ@A@ zOD;LWcay?H5Pc5v`+qS95@8&2{YQ=~o{q$y4HiNzV(o^)D%u#ria~DZvCRlIrUm~Zd5=GX(Pi<(`PhT5)gc+R?FVds|1>uJ-mlHN9MW*|vAoxQbB9Ie^5S zte3BtLtHWGkC=-`tO)?~>v(I$tUJn?hH}g)gfsl;Cgv8ZJOZ@Z+*1MR?v_2kINgmg z><9Y#i#z%t>40K7AaMwMk~)#ax@ShvM2Mjo)e?ZhwUake#|}7slE?ANIl8ZH)EuS%KbTum*i>AA(C$_bb-^o11Tnj-1xsNl+c2tZEy z9U-uAlNqOch+>@dFGkMu;fjL8;4aC3R&aQXOneVidf`A%1@TY(mVztg13*wX*udyG z$OY%@{y!BQuKuK_ z4BpH_KESgd;?@eTtPgZ64E-BwBgJlxZ(EIpe-9)?I4DzaAYV+{lYiix1xK8Y{U&2^ zMWvf>8PrA&@8vWZCr|^3i-;4fa#;4$Ub&T;==s&|aeN%9W zaWqqPgK_#6^B&`4Fy6?y=XY?%-ahkKM8tNmCkK9%D z7^k`VnlVn-54t{*o=mJKj!fQ8Hctg}Qi3D-9heUz7^iPZV6IA~{85x2&G=d56BsXx zd@AErkVi6ZfqW+84Uoq(-V!-|^GxZggZYriU>dOnwpaG{#q;J=Ykg^0>{oBiaKiX@jG9U1YE78RLVIzhZni z^7oAUBmc^H2y&?dDE28{YL5zGI*8M^;KqzUzb2O5kFDPG`$>+m*Ql0S+ z=&#LqL-boS-U|J&3LH3!*Ao5oE;w=ewv@hUCq4w_9he?3^wXS?Bv1W0`WBk_c$DwY z^n|0I;vsn&r>Aemh|@c*-b@em*C~FIuZrb8mdTgGhIkU=tx=xrB0U=9Gnjl0)Dy>e zAC#ZZ_$n;-rHs3wo`a0jee-F?pI|+?#yIsyA27ZE|wCLVsgF$~9&3)PA*RoZ1VTtAgSsK9I@FR)}}W7=MTdXbwKoLnAxO znfz5u?M zK=(%!Zzk&5!{m*SKVY2Zp83r97EEt>ysshs$(UZ6OBKA3^)znRg2_)sJr0ah`SoG^ zE2h_jaShrR%=i$rC!FyanBKXJ`=UI}?Mms|j`imtlfQxXry_^ofKt%Ti%g!r(YdCO z2i0HE{(DTGz9o9DkO%!~sQ;~kgPu#6uKe<2Y~6Wefa!8%9LBuBxgZBI&_mY|ZzfOW zHJ))QuNjO}c`ag`%4-ATR9=5Dz7ErM1UcCWwu8IDS4C?s{-d7^iyDj_KJhi>n-%JdIEFW;_7v+W>_gC@<;<3{%Kc8XyX+ zCQ^Ms5h-REGXcl*(_F@qJd7pOLw`-iozP#KaT@2fVmuW6%^9DGe&sj=#0$?Mz_ph* zI(t^5za!&Y&`e$6?GG!qT}0W69v)`~i-qF(Ao}rW2F^Zh8E51qYq~HhcpS7IZ4>n((T| zV*Izkqi|$Dp|)a2vWXp_IS}e#J5BOTOw~dh(3gL&A!CK}#0ClS4@{!)lz*KC(-(gv z4r0<=WICcweK7_NDH@aUg+gBXXXMbNP7~v>9*bn2m6hGPTEg07+ zkje-eDdBLc2H7KixojvgQjC%o7``zJz{FG&guFicBhh|O3=j50mQZ-IKUOdh;onvb z!5gKMtYT4kGAkjE@D?S-0pYgD8{IDtzg`@X;@3&YJ6AD0^=IfX#Y@{A7@m&P_8EpJ zKW!--`45X7=sK`uswg~_KgpB*{p!^^& zC_I&)zPKSs9LE0)4TI(kij;?kI?dZ2fmCB5Lg6a13}fCrzpZMH9fgOo8r?4sKPp%o z5Mt$5UybfRep}U|iFIR1_V0gNWo@sEUS%WgW`A4N(;+OYIs3RO+Uc0|DN?lf+zLKv zp*QZMG|$ABF3(iKg_A%_roTA)EZW8}>~n!2*F#W>&wx8b9mNB>fJZ=2&mOuDD4=rY z{2^%vH z2a`!D;>S1TzswD+%HvLI9zjciS<*uDD9ANh^GH{L|6`4I(wh`$J#!^Rt~pY1n(X1l z>A=oK$0$wGe>@+tV$T$@iFDXNq;k>z^K`gE;9RvIo}%WFj*6m5NKyqAlVa>HpTo-vpxYrzlXg-golns&@#4eQBteB4iVs_pT4>@;!q(MFt8ajFLVb z&d%ARdUIB~$|-a9IgB9kxa99**NaMEn0@g+u2-QsP^Cg>wV%Tjj?tQ9l;yF;`QRI8 z_!Ks~kVGk_KVKp`VLbNM156@d4K%_3L)qj`^(DPVR^vuKj~Dv?VUd`G!^8jRiCE!W z5*(s~Genx!+eUq+Q$VDNK1hbyiN(>^Qb)-!s5tJ+S6%qzI=iUu>NUE0E~D>>^Mce& z5l4eNgU=zlo9G*8SZO`ftFs2zDU}vXP>Xt@L!vsl1rxiu ztFgbd-r0P|@YmM$qd_IzxXLNy`XjDQz1HUyVDsnZnh$jf{%4lb%d)?A>Dp{2+@8Bk zX#HVQVf&A2LZ(6eIt}Ts2p}4Jm=q+KTp~43?g&Wj$3&EfLW~pb3KC5&Nzfg?wJs#> zcP~L-O#Z9&-5b)*sgjQy{JpNOLMEj`I;BD)h3G4*Z${kIdApjwP97)PNU$OIP~M&% z{ES=ibk`s;{Z6U4Yfw+ITS%~YHUXYt0iN!`L?+l@?B*$U^&?wFbdE58|K;9*9x^4^ zRUAt0&ctrsWP-3?u;(<-K+&I*h`D6Kxxt=(9%6qlF{c$K1AF)f>xw4|Z6LXOdwBW< zdwY2kjpSK{U%h$m(_I5yiJ^hwDP7&2{-Fjz`Udi!(m?KfVZ{D{VwnF-3<&fL3ZfrH z6^TrJ{K@xG$*kxAe^P9|T1jODdW!w{dClG)q&_^n-93Xu=6)WYVWcwY4C-Kif3c5i z;55(9qEJ_#5YJwQ+KDA70^{B*--=FJsj~}n< zBX!S6=0f(MXOE_~-g7{d9P^ z8s#FQT&YQtp_0V~x-J8AWlGbByznY(>oPo`M?i-F(P6bg zvK=Mgirz}Um3-UOKJrXK>#|N|Y6bZpwf1_OCTsWFyQXZ_R<937rmf#MwRcC;yRvID za$dX$>tfmDYRuJ-Efqr~7Tnm=Y-p=rt47UhTkBh%A+aD{ad?Ygx?2Xc*wjUTaiT%D zn+~sS3on*-Oy74aWZJvc3(rUxyqa`!y3_N1!4IakDKEJHqBgHA z;;E(k`n$cGEq;93Hm$_6^XKN(p8_ndPL2-sN5s=N6&-1N_Hs!e3WzL-kpSH5kCf2Zd~|uYR!bvm0k;;N>7mL5P9*(@WrX= zPd2reJM18@w{4Au`g60g4acnJroNHS8nP_ww8rtrBVC4HUtl}t$B$kiE_XgZ3cAzg zN2ha#GbX)_e>bt8jY-m-YJIyS{`(hn`&AxpuC^uTu6@^eU9z;_y$&86J-MUp@K5VH z_6t&cdgyZQhWN9SKaJ^m=81Rg7Q4gi`%nIKV30wd`484c8zOdY}(}0x%`%68uRsb4KM71hRet!pt{^7e7@*GICiFW$R6 zN^;8iRPWjuhm~!{+EkZnf8Vo8ckY@Un+o%Ld^GFZ-o|eEwPEq8!&VNRZzH$pose7Ml{kn26)w9pPY z51XBN`+RQblbvs`?rd*4IDClpl{YW)_J7|^eohPbe@}a|b85egVSa-Q0;f!~t6P=- zrn2Jf-LX|WXAIiW{>t{8{cqA{4SzRa=g@#DJ(LYoXE=A>ylad{YO2M=dlsIv?^(R? zJ7e);{+Wx54({{%xO|Fb$OX&gb-P!rws`$KTaEk-lAmWwnST5@wyI*p$x$F>Q)G{M@L~d(`qYef3 zvkokn`X(-Bf%E5!QZ@RIs@#u7*-r91wxY;GYopqP;~p;0H(!tZSXKA1MCRnI?9r-a zsiV#=onbuS!VcdPlcK&AbZ;8ntTa|b`Sx|g0G;NkxghHyXhZ#esyiztJk7Wul0G;fBYs3%fTPYT_p9VW_MT~+0Wg)_w5s* z13H|m*s6cea?Z0!gO@jJlG*QPmeJahA-8ufHtGCjOWTW9Q<_CNDh3VwX1`+bnx!|- zw9PqqTq$S#;fm4wmCH_eztc8}J^ysnn@fHCa)%G`41eH$*tqQVm@hxlo$e~SI$i90 z*x;U5(yFxzxt_~!o_<_p`254r;}gQ|cYKvMPa70K#~=AxBX^&IaGE|lX&}(6#riqz zms%}Sl}=U7P!&n%w|Su?ou-;jR(~m7QI<}p6!$|jDP9xC!!iym&-YUtp%nM(U3%uj zQq9uD%@Yz7+RV~ilyZIVCZiI~k(-P(u6#NBwkl26)@_Edrl!RwQHtTvkyFL;qTVhE zix(OsKJ|FG|MK9k5B7h3pxVk_XM(l=N?V7D;j`Da4&K?__2IU-tK}j4JHE``oi})Y z$mI=oGj`|e-wHl0tCHiaV)$g|iPkXT@u(9G>P8|2!~nNBZW7 zbK`Q~HG3jzzWl0(RGP`HOuHHPy4}tBu*`nMXw@xWy-oC%I`}l}b8KjmLdC0*mAd1) zT$=Q&z&7gLim~Rg)diIg&YV=9*XwTA*<%N8nU%T9Vr}mYDg!Mo=5;(Wq;sFIL2F-W zj?%B|mD}2Nk-EvW{Yh$1df&G`zvQG#ar)SAuVd}gN;39-u{a;RqfcycyY;IEx>}x| zma7ut{Paqf$q^%ui7R4!RNhsXEcvx$zw;9HXH}uD22IWzmWqFN9yfls%hkI63CF8X zs-N{u~lQmK0odadUW8dWiON5CEng^OO{`^pZN5af05(| z_3iE_o{gManxb&z`2Nd2QmP?8m)Zu+LtLqY>U=@9ilg=h5eDY4pvFW zrEAvIy~#e-=IvzfT?^l(&X^#+x7KTUr|zLo?A$#DwC*)K*ZaZvnZ={tXsC@@rrYG` zGrvibOP-9ERyx)4RL4`2r}~Z`@Uz?Q2g@&h$?g=p=0)Iv72CGi27Quf(LJcct%D&| zp8GadB%3*A1?eBScA?;6kMTLnRjz;7Zky9NUv;foTH?X0sm|jHtA4GiDccltnFdbZxF@Id46sP|F@Pd>cz ziqLp+uj_$%x1T3g%(s@mq~M@xzV7R*qP35#wDUI(Jm>LUb#9k;9lW!~Yn%w|cJD{= z!x={%#^hY~a5(96r)=IziJQ?gf~H?+e$7B7UCz;alD@l{=`1}-r7lMCvLc%^!#A&} zd~tYi=A+UZb50ui%7>rd5Z&vs=NG@qC$oNBS{E80KYs4uj-eiTA;*Tl(6uR_9Caq9 z(@yzUHHz*J!e2}7khv1_vg5MLi-w)HPI{YFn`r-f#(UrCzOvU#MykcMowG%1wV7*z z(yBoxi_7&AFBIvnx;R(tzBoyzZ%#Ye=26qTj{7ioP$%_A)^g-2Hw(wPARM;!P$=TMiyN6*w6D;^FS>b+kl#Ve|Ri>%3_%TE^W z@VTUNHtMrsQ>mw3KF8bkFgM;6kfL&ARp0J=E00-esT5Zl6=tsPIaO-GuJ~dX6SoKR zz8Dl5MOI4dZwqU8>6p~)j01C$o|HQFG@Y&eMP|>98xGK+VLx<}iIeNtB{p)W#R|sZ zohO-(dDiE6)Tydf*TrSJn$=&WYb%lnQ;_IDX3W#~yTpXkxok9W^M7zoy-AFeV;WL2lAL;`DpH%g-;Ut} zfNL|{2>2j|TLL#@xIOSmz_DGq0-w%sg2}UWGW_2_kg9(Y|K~=jKW6X!-X>M=8R0jh zYf{`({XZGc<^KX_6C(6gfOFlV2&WI0*sz)aDldj2;5)P%2yaN9w%LX_&4=p2{J7(X zFxvhp$9IgmV}`I|;KgwLO66#{MSfI13F?_UHVC70<|xPSn<0M<+!)T=$UhO@ke&41 z)`oavz6Yqi4aw7YCK}>B8sYSNkPXS3H^S+692=7NZiLTjgp0V*3|)8PUjRHH4Ent~ z@b{|z@6`dnSNs27{kPpIz%Wk3?iA{WS;z__Zp~_>eUi z>LF_|$V1j(c!#XPzz(=zAb|7H(6}oGA~DS~*x7B4GnYN@nZYl_*O?pHBSmLiK7cS8 z7W51g@zNwOkS59+_TxYr90~N@3L5CSiw?}=9OLm6l0bP|@MplZ{8o`nXsh#RmczZJQZ-Eoph+12GnoNM@4E3uciVdbYnQ?OWlRi zz~*Z&;KF*qIUQ_0(8m@upgm|meafj9?&NO za%t$ldNT5uuOV=@9&qj)Ti%%hd13wFoIA`H>tPX-FWR%5;b>2mK)x8p$%awUl4_Xm-qo&JJ+g?8c`G@7r_&MJYtu->SzS{hh8ac&jn zi}l%o3X*^v=R|d7INCW7I9&+s#5r7)3+*ft$P4Yf*9d%YdVu^Ej;{Q5D0{{;v#2`cl{WSdWJE4DcEBo(61?| zA149tD&Xq{TuZ>u3%Ia7yaSGQ;#}fdhGRW6Z9$ZhfbwX6JK$_R^k?L2pQS>ki&4)pUZI6f4UL<_&qW#ZxZNl3WM0lQNIGiQNIRowtglu@@GN6 z2g6anAHz|9WFz{s1iTxm7wq?r3%Is`!{N)#C6l8S3857%X|tejT;uni;njFf9@nWT zJvY%nkb^4AX4QS^eI3MTmxSq#Cd>6yl zLOhS*MIpq6{;piIz&p%i{ z;ZUD+{D21JzQAP}o)7urI0(wmgnCwD54>zA8bLgFZI0`>@f15tS^;Afe9CjuAx2BPvVz)Ki;Z{XQMoCp>H6{#lW%CNBwW0K83!4 zsJtq0p>H6{@&3OJY)3r`5EuFeqVjnE--(e&ABvg`w}yCkhEImL9>d)ruFr5BM-ci3 zqV@!X+(GZa`f5Py%8>aZbI|LfcNXD=N)XYX7p$R z$MYo0w}5iRGxEtGzk=a;V876(54EQj$}jZkL%A!||6xXt49K5j_(X``ZiM4?6WWja z_Z=f&2l@VBIDPG$1{v6nda&Mb90~bmUR-3r$hQE!cs@k=eIRec$iD>c$Z+&IGL7M5 zK|lJ|K>cN4e9DQSPCP##w*)yG zMjpojXEA&M{#G!Kg!$ristRygd|LJR zd`_2<4*@;H7@i3EjbS+US2GxX4(vpq0%%Vy=#K_@Y7a&Dd^C~K;{o|@VL0wT95=&q zWxx&CVMcy1%1yPUWufkp;nMDt^bxV zj@BBMs0aH2F~hMR&=YWKCmrjdVX%NxJJDB{nSfJy4Ju5+SOKT_d|b@P1BYr}9X z?-bxzUTtW%o{anm$k<;XPs>|O|43NK$YXg|G91f`gC zma83<>pdfX0Qh%-JS`HwKhc^RNCMi4i zalCrAK%Uxvh_hNGTEfVq{TU2L`?oV3?Z3cqwEs54(f%^vXg|Jh^oEg_fO35n$U~Fj zN+1gZO>{HuhtdAF3`hGl8IJakWH{Py&2Y5e0XW)^?@_^Nifa!z7D^4pu}Ug0v|od6 zB!Svb$3J`02nkyJqMna|cz1?dLtK~PP7oi&aJ-%$#_%-|AIb2I5FgF(Z4gJh(Eh!^ zZ5VkRZ?tFlX^3-^k;ppgDF*HdOSay`z-e959|mJsL5}TwI>Yh!O=39qSGf$we)}fF z@%&Z8a6FH9q=u7#_TY8n|MxY<*UR7ii-`cOLOiZe-UwFMNdi#aD8_wHf?k55JZ`w4 z!LJ#?aZI17)3k8pib^wfTOipTuXejmab%0CA3@5QUB|7T^R zFg+>;$y`W}>|JAX{Sm2BYhM*&#Ag7p7YUt`}PJ)`z7`|1=Cptm$kG3#GG$Ni6bu>2Tr z%-5J+M_vN!ALZHf^nB4!`&$Gjssczz_us$cYizn2pRg2;f7+ZHN>AG~(?xIzjXLw` z@xGgn{k5&rYpRCQo0;$_o?${*;(kZ$>E})+7youP_P4&q1`h5!NKC^&_cbPKgt=iq z|J&CXaU(*$zaBxHWP}iB6?WujLe{Twmm?==GMwy!8CwuMDv{Tdm<-=N z=M!>XY%EAeLOzIIN>#<=(|kn10}|t&lNIU-BaV^;g$fO`LQaOOMU*2xnYitR+%6Fq zbc9^lk!_sP2EU(9U96e?H%i=*X3$WHFO%c{Z%RCg*4BTz#D(P8`@dS^?lgmjO5B&+ zjQ>rEy=ZOyr%Ox+JN~bhco5B?p%T9)$I0K6IGEPff4aoaNZb1R630|plRoG$>4S3F zBbGWc3lTcKDI`6pSu!`8(ty*On26jz#V`CzapFORxB%kZ{>aCkBj-SVb?FVd8c7aO z`Pe=6t4s6AYD|rILBF^H`6bj@JBi50Zy_rQ1!l=gaomBh9G{osZmvdad=tMWs zw}XVXQ*VE#(Rwj4m|9O{(E5UyhywLLtbg=xSpSCX<=6B@2|i2emXBJ>nM2=`c|Ae6 zjd@Dj#P_ zJd1Hfi=e8ALpL$8qr!n8(un@36-iQ#iV^$<&hZph*LtG6LfDF$(MHkeVbu5uD5jDW zBBGoes%0b_vLu%a#4XT?DPUS$eIcB=8mA6P?WicZs^E593-adNAEg|}ZR9JbhLpI5 zubi?!tNsx=E&q|M9VZ&Hk;|Rl1<{J3Pb=#$R2nuEo5urGC?C6E>A8D{wT!we^hq*jQx*f)W2g5@h@k?H;l3q*f8jq zUK%Wa*$EA5GO42H^~#{B(>7CR!o4T(F66OpBvnrd|i*0UDjJ~GA?^51XV#NZc z+G#Id#vd_#>t#D~Dl5jPR4ArYD5O-hN~vg`QtzHC#-vu_4=tqYi_`tZ^&Nu!Pwe@l zG4XDEq1Dhk0owixjp(_EKNga$NmogaUu#*qgezCNW<(A*;?~)TbN@?j4frFD_cN+M z-R)JVlN9gG5=qOW2NhW*EwElO`r`|^my%N7YDqf&Zlt0IO+ef>@-E|Q_{!)?QvYGT zvRRDDdkGMYEeN^Doqy`paV90aUu5!}h?FOi6FjjwWXwrfvfwSDmeIorJt+GUK~e$K zN?QJM(if0&+mZ6qY9LX%%2h@AUxdmN+az3*KWO)S(F9pqStP?`Yie9MpE%J-8spZ| ze;R5;%3Vsj)sh6eOT?a1QE*$5u9T!0Y;q~IIax2^YE%m-^}YyoSznKEME|6g$3(pU z^GfI>Ip7-Y@e55Vp}eJLF$Hwr)l~E+In|gYo5?2HRg%^Bq(?YPYfs=NGKwUlgbLR0 zWNwwX)hysF6(vwVbiAGr&_kL*y*p4|NWz3};!9ikhm*r=|H^Dg!(~D3JI~qjzUT}s z4ChM@?yuc>?`Pu9!^Bp0W5$TwLcF|)LpO|e_3`l#`H6>$gS_W@`g>^yd-?|Gh=Kz{ zJVjovK0%%$zYrfEQCA-?(Ganyr?}n&KbOt_*q@`L$WcS&=on0Xe&iQOeqQ9~_W#(T zAmZxJ)rZuaM}395`v*|(f5gokU(>w|Y0ZLN_416JZXw=29-e{D>~_-sap4dhtRVs8 zVHqKIPSYohR$A9DDCnzS;Men-_RsvEeqV9ZIzoGA&W!h4vRiL%W^yWiWcF?a8;xCY zH+{}D9l1zJdg6L}PaWS8G54mAwK*#jGkoQu1rZ0{Rqd~NZkQKz<<4jZ{(SLx0+3Gc>Q@9$T7;g03-YndNy%Xn4EsG z7PgB5$H?qf%}RN(&cMDy%kwjmT1~Ipv>-VxXYAoS!G}&~-mJQ~a>W*-ubFSP+ix9^ zFs9R)eT(je&X{d$;I*phkS#4$Ht+8JX~e5NGr|YR1#j>0NWsM>;7iW27U31r<%4cd zj$Y#Q_Ht@@jc>OlnXTUp+!Oij{<7>_mmYtfcHoBY?XVdRkM4N2kN5Zd9yh>$+M~VS z!nIl+Ua`hAD97v9HEX@>(A=OM$CYY!{_L%`BD?*d_eUna@HFyoaqsrs^fq&Ut_xTn z-79p(mpg8I>&Ck|?U0IiEm3ss$CQt*P0EbAtJ{mdC)}JMYU+^UyUgxm+{laa)5jf+ z?sxRZh#zw8<=*bx-)zhDslzOvy>F7SWlV*4^_-u3k`y|a72GLvU$*{fK-Az2orl4T zthS$BcWL-_xiwl>S8aGUsF&3CjGuB*ub*7}+I(pfli-cLEc0(ynMU@k%JWmtJaIin zLv6$T>-}zwUbP|Is>_YVcXizC^_9_V?y247D%*4w`GrsZ-u z=>_AXvrl+#TRrK`lkc1Fy({UF*+pE1;|2$5;+2;c$pMSQyc4*mF)0x%xM}421qwe{A z#QuzRHGzT4TPKIKz1C%*>d*LH$BGqN_E%R44_j^3{-96B*w|Okdw3OJ+%>)56#KUa zd{%~K`snYUn?By9$J^d{oBNGI@dJ{nq2D_vRbCY=TVzadM}##>X56+ zvGMaVU3YCO$ak&q*KOCe@}2%gzm|8_57p25DRK5q^H%9C*o4jU$)9kPjAz@$+O%( zIW8ST&nhLIIgu8f5F5SUyvdO!N<+W+vjN_)JQxuyYG*QYcGaAs{ zB}iLT?flYh?bUk~&$>i>?&48+C#fLlQ%rcfp(;{W&z(yBcB)CMFMDfJZ@qlcr_7>T z%rR|0%>lzRJ}%jr@KUYWr^R&=yKZ%zBkUh`l2eB;9+u&2J9c8UwL*TE6C1Rw=XFhK zYqQw?Rp~+#&%%2jR}ZQBasP6783<09{0?fxX1C0P0OUkouBS3nCH?> zbiR3Z)0O`Hk5B6|$Fc`5=bwMvETR17_kLU2i!zGZ zPVK!S!NND|RjYHYUR*VJVw7?}RclS{P|LT$qt(qElX#Os{i_(N8|3g=v# z5c1&pKK)Xsq}qqgU*(*#RY|yJY`5;zvy|IWUfrCsnyxi9vYl8VG0}G8&XX4;dKLz| ztXerEuaEQnsmcMHvnRe>WgZb^_R90Y_pP1wEjoJIpkhL=0DprOYkG`zn)mSJj-%a& zM{f_WH1#`s(7$Hmy-zMDqwZa+`uL&u2hW5puGz_!w(})iEr!nMN$QQSJu;#s2>0a# z5q1^(FB83_}Vc6Nz=Ed zAN_U5v1WC`Y%n^Im*R%n*2;zll2 zeIfY$kF2%QT6=bQ%*?uJZ|tD_Xy4X74xhUY^Gwd`R6m}$GiBapBBASPK$Zi zeOvoqa_d@evACywV8c?swWr^hyAH^^w?uY=R^KzN?R87;Us8Ws7&f|##7Xy?Z?m^vhq)@*%zp0dDVZDRmsP<)oHg))qg2&&6Me3P(JRN>CJ#!H_ETPk7=^+ z&69->%eKw@u;yd5*3(&WZs|pxj+72L5@9?$Gk4mL@s1`T&E}S`UZnE%gUqEpPe;ET z(R{PawacTW)!VGelbhASvG2I*xZo9zi5rSnsy^51x_MTC&!xbar-nz|Z`A0y9yvO) z=%Btvzy5c}8jSunU9*e4>5U9a)80OJFSgyY!Og;Mg7KSU`4`T12sVD9y6@CTRd2uX z2R1v0jV>{gd-b)8tH$!Xp11q^wz64qy>`QViOnl^UHaY5Mw7eWKii$>__6+*^%OGK zpH??JkYMlIdzhw8hrNq8TwFeCT$jR@>Q3%m?pH4S^?ga_&UxXd(&l`6dHMLMLW+(rDbcJ3pu$eOufSN08@H(2X_Pbpv_tYt5vOc9SL#%T#}-@^$!T6V+ae?}W9mI^=j-MRAXe$!y7BYet=^rz@`H!1 z^mtxu=(N8$UGMRZi>_`R6(_EUnbULLprX@tGyMG0ZWx#k|1^ByL-T97llonG|NW=$ zfcwR_e2V-kCyp|`Hc$1AjLo3)0k`z*-p*2zICC^cZn(^Xj%^hUC8{oWzx?NZyvj!f z{YhN1O>@aUEt`aI)NkwYq1_{++x_oX*(#blls=ncuT=Z7;&Mz>lwBw3#4AZ2+OiW< zlXF!o)0-KLmv&oeETLArS}l0|))#WBt-llpr(gM%aH8$oV^<$^KCf`5S#$TQgh#(# z)!sbe(yOb(={HL*PMYa3NIhk7Qs!l|`;jW8ZOx<`bN)rUJu&%_(YgPY?=Sl36ds?7 zdXx2fe_S(o?^kr&P|8VYY`Y`BxzX+O{$_gyZ2w4?=zmMHiZh@iLC61Q`-8vPUi&xO z@x35!o&@GEl_NzBp!wr`n{8ANZkNoex6ctzK6F{X{YU-wd9aW`beVw4A?$Y zsDCz>oXh_>Y&RBeU+{bT1K2)JxLwksKL1+S-kALz;o8NH%GKLv%{y$PIvWU7^xyG) zMjmmIle~mTjy%t#fh#LnQvVZ_$HI9W=c>?m!6{$ZimZ^p*+!N+0e;}GYLS+f2OIHt#?G*M0EcS9B^uK;{1=t21oz&AjfM0x5niRz(a zqBNj99k8T)Ih>DC-jMKy>>t+%cWQ)tHNpcM;gOASQT^Z$jy!MFnj|?ZfyV3-SvHBws4<;xd~P#5)_Kxsi2WS05jLcag8B zuX_NwW25~C4Ya$V@9Cg#g-H~WKzTdzLmp2d36!@dKja4~B!O~zjzGSZ?0*_4S0g{< zIG2*;_%18U=Tkre%Xa~%hX?J0a4z+6hGV|x84lf}=n8PU5c&psz{sQi3WlTp&kV;o zJU@Zcg;4)Q=vvW!tatnlJj;_9c`c%k2Aq3F^$UF%?PlcB{(Od`{e=wg!D$zXt^#N6 z|IWzcc}$8tvZev;AHhdO8Vnx|+=Ag_fI9+b%jLt!W4Xc^j^&DDIF>6}pkKIOv}AY# z(0*&MCzj#kfmbse?U91>De6IcS~1)n^e6*o>sd#@g~!oGMi1I!0u3AUMf)=uj`CyS z1dj4GU=PmmV0j=T{{ZAO8U7eJ&cQ%EPl118Kzf>og#r568a;kL&p-;L{oY6ZH5nyaybI z0Ss>f?K_y^=#wmr;dorlW4Jx&k7PI=Z?Ozlg?tw=Tn%^ID;bW*a~i{Y zfqVwTUxWP{7(M{xvlu=Y_*RAw1HO~tBY@{J+ypp%jfV!@@8-Y{^SGXm1%902HoyxQ zZU_75J@ND4i7`_d7M~3eLE@t>%;F=6S09>2lM}YTa zcs_7FhMxl7pW)|#4`O%`@SzO94BUv}*MJ){{1$LChTjD~hT#u^TQmF#@Cgim0elj} zUjuh!colFLhJOH#=M8K>zp(xA&4Ih-Re*K6fYVO>T(t$Dw~atvk*td$POtfCplT_{ zK(Fm-pvh_87`np>m8b9DW5D}Q%4uF+uwfW1ktc#OONN_+owf|e_BWZ~H$dKn;eA2> zG={4I_hYye=m}xCBgA7EJ`VIOWq1wf$!B;uaQ>}`-*X7jH%}2GkNx0PhNF+1TMSnM zd+syb7vfJCj{W8{-&G+_ULTpscr!N}7$Y-pgbi_w7c=o=!8;nlpDD2CxbfD3(fQ9Iv(+!{vS5b7t3 z;X1(gFx&*}#5ta5=V9PjZsbG39&GO{f5Pa;@(O)jQTwrf!Ld!$1L{ROkUw&)PaHQy zeg*Oy#mGMZMK%n_a$aa^@I>^GE;1-+^aKS`C4fIbIMejdo9?*-&^{EY^DPKJCok3}}1pNi3KxghVr z&Q)I=PIMIQoa50>{DBmbi%ujpwb`F>)!C)ods(Szf{ z%F?_(HeXGKcLe*<2O!G3Lp=`#d72$XI1WCZ(Szl3V>s5^EJhFdE{$g7@%UQ7a6JE^ zPZhKW$M^R!@@UU#hSQf*X}Am=_24)@`c%Yvum$-~j2_gl0QX@ip9%HW0eHQBxbCIX zb7(+$Jg(7)26EJI&B$Ya9(|Xi{5g<|V&t)Yguaug{fS(zB9YK{615YbAKYd1;C{jTQM4cX!*7f{_J^u) z-;eTGpE?Z3esVa&17JUz1IO}i0Pe!bqn!Z^M>``Kj&^QfINF)ZaJ2Ij!=Hma#lX?d z`sY22JlZ1(#~;=Y+M~g6w5Kn_(VkHZ$2rt^Uyk-1hyCus$Yc8tW;ogz%W$+ai{WTz z9>dYja}0kE^>zg~+L;V?zF_2W|4PDmCf3_o(9;4q>X{09G#Gi*Go0aLK;DeegZ=zG zM*b?~8_&pt8qr!t9_twn7p~8cM`5zWdpfiqH)+5MEib)a>jiNwhL44KcZQ?y6J3T! zL3|Lymq1*2A4l^|2R@RK&w}`9hVOzn)+^dir+?6Zb|F8(W05^9k)MaS3oP0C5d){Y z19k~Vj2Mpl(S_mIP9hnO?QjFb@i;1AI3Dk149EV8yRjzQ&`#`c#k4>Ij^`;OhU0k? zuj^4yDI6z}j67aHY+yKEpA;}0ucOKsj@NHkxtK3rPl}<^k>hpsf5E4Wr;n>{pudM} zu&YQnkVZT_-9o034>fuDi(uW=%`MO~^pDNtd+~nL$cNa4NqoG?lUqna9vb5+#q=Sv zNY~xp*Oz>NUZhJt=dddlGZn@}xiRd9 z((4W9)0h5M$*r;J!)65e`~7wyBmR3IGJX2=71Qv~eaMu;u|N$l;;az(kcq0Kk5-5u zmQp&~G~vJ`IxjgP)rDImPbZ5p32_13A~}pKh!+B}ypBnvyw2DZc^$hA@;Xkr@;aUc z@;bgH@;V`9@;VXk1&$!%%t)F(1%+`nL_Mwi!nj(pMw=CJpg<-o#)*i4S#q2;T_nWG z(nVpM0$E6r{YCvxaCXJDn$wCm%%3eb!>k0*2< zGj&=q__X}Wg4gu(9CVZXLC#%83H4Djh}%L3pShyGrk@m{G9Tp?sIv=`60%~}&P!hR zlze)@QDU-)TQ@oVdLBq7TGJXMrEmGW^e(WC%RGU&7(hc3Ov)>Ul3CqkW;dbyEc0#T z0On_z!<6cJ9|pXi3Ywb8a}GVq$yDnyQAj>->^EW#*;v|;2@hc#nDD-0Dv>0!= zv7nj5t|7aKR54!%BsURpbhEPH55FPK)Cm44_^bP!`d*D5ndEdpyVisQnq0Y3xz0Bs znfA)YeCInRA(?j7|FyFL@w~4+C(7K_{ff7!ih$L#b^F|8cW`vXTiS%F3C*z3^hC$d35I+Jj z5tl@B&wza8Bj3_cUml){RRut`kZ70{!woVY{@ zB9+5+s%D8!HP9Z3znX*)-v0wFi9)a$ctGfsXi{xp@|?@A zrlMnvNj3H5Kn_6e_yV^P_n{9bB_)Bp@+@-m_xIsF26*}Sy9SH6SHea7>)#@HVcgAo znwXO%OJ0gk|3Cd76zJZYzn*meU*hF}yc_8m7}(3u-`zbVFwoOOu2 zf3jt!=N$T$IT=79AGwC%5W%;(xhf^wh2PHR?lr_J~^+fFZ2zGk^2^=<20`g)T6qx7vMKNUC?n3wgn*xGZY zwwFpTr>BqOb{Y?sDVNMYD{ZLPWQ8u7wEbS%$2Q__#$ap&^K3dr{s^w zp9Sp$M1#^MJ@+e92$0W}d(h&6Ovk26L|>&wN4XbB6?BV~i5e#*wle%_ha+PO9kxh%CjCmed+@dEqaF|aFNa%r zZT;#M;5hx8laYbMoF0p$PRJkZGUr&YcUjwx&t1JCPxGp$?ab!|ScMSZ@1axWm@i? zd%D%bjDjT#)!)3F`M~k^W$)1AyVE}n{XTL3BIS;sIvtCaDN;V3K7Ub0g=O`+gP(_J zD^{2#lnox|@AoiVNoD*rKU2%1ZR%%FPuXOcb?Bg8mp9LLc2j@mzChEye_f?_@2ehj z20D+P>1Z0>!QkZDV8iUqkCWmbo5`JAoA^%V@i~Y1pRY_j>P)u1Gp!PtUrdQPXw^L0 z-e7cX`)&g^Wosvg zcHp(CJG^Sfbn5>syVnd;qaAB4f6QyO>5HXV&8}@%mTIns1}W_OzWgCZfG@!JJuhljEav zWg@NIwNrX#u3owIrbpuLy|21eWWP$7(IYagV#?@QqvqyrTw1H=m%7?v%)BKh0&T9l zW#2T>z1iZ&laF^Vw_ljouXTFv&D7Q#rzNb|lilZD@#wbw)UGX z-47{z)Bl9|`nKC%x(r#@eD7+BJGZ3H79_X2vo=lcVcUW+<5T)tF4ve=+2)dc(J_T` z`xWngJbU;dTIQvB>T`{m3ajHoGOE-s{xsY%vdt6sM-^IoPdv=8lgOG^YCSA{NX3VD zt0LAqPsuUZ+mqBNx$z)Dmix!Q=FnGTT)4z~Kf@=i-!EYq5zF(5?*XN_*>5Wk8B~0B zK5ibBs&IO#o5G0632m-lD_iW>N-Zv`?VgF+)?=rN3#87r@%<<&HOnKTkIHJj>@3=Q z>6b;urajF#^6JX4eqU!8S|})_mCaI+w%Dd#wW`~T%?_oSHHB>s=wzPnJK?~~5xqN4 zn(<`thG^sY-9F#BZ(%xYWae7SV2>^1v{!W6wY<9P_P~8Voeh?55pLNW|8 z)%WI~-tO67B=gbf`>N6jc@JWyEx4JT+GB^~n$WR@KdLPP9?IWcyL_^(<+FAlk|$`Z zdK^*mo9fl#XZG7GmwmGzU2sWV^*FQSOYoahEw3s#1zFwMU+FRJbf1g!^!+m*J1y^a zHppX-euove7tS~8a@5Z_sCx5|&k3d3w!nE z?Z@1zld8{7@eMyvwrR_~!{e{*IzDjlYl)%Rv)&!o*Kyjl=*Q;a674%r+Q#o?+`qZd zBrr~nGkd4mn}#S|9``{$xb21mLFz9hIu9As`nbfgoKJym-HeVZWGIC1I{9mzXz%rV zG9fZnhF1)KREEu!7}6&x{9|5Zh_UMCI?0|7RC}H&NF3GF>agRzD1)$*S;cnkzL(YJ z#Wd;a9lFzYx%!4H`xaVWH?#S;*yBKHw?MrQ3BQ`k--#Q%yRy%?IQ!SXjFvam4{>_* zAnw_6J1tNFQc%L^WVQkC}iyRvxAAhn?!@4t`oRxVK*TMOmY%YU8syUEH)xE!BPO*LL!Em8QupukL%MaPaEf zIWbFCoGQBC<;SBgajMayl{;?Kj6QcOulwDg>(^_(Sq~e2X28UdwFInSoLrYLx!nA;UdzI-BYitwcrP}L@fQ!MI-0cB;>N{JkCTp^v0C@>S)GZ? z#XTbTSxF=Gx;(I4CuJYyx$07;(t`_bG7I*VWQqFZyp)>fxHztKPmA;w<;_}$yzM)5 z;r=2KkN(P>=To14`6#+;dYZ4DXEscI|C|%6*H5rV;+)T zyb+W&5~#|5$L9g9Z|WNW16OAxq6!@2xTJCo`5x#8@-gt>2ES)!PB`@?5C&Pm6bca? zH=}$J!$W|l0T({<{-5wYK;OkvAU`&2B%mR_k8nEIAHQSEwK2lzyEBxVLjAy_IMEH@ zY`r}Ko&fKraczaLD)MV6UpiRR5SJwNNb{A4cMiBVNo46!0}%8foV&<=#F){x=2pgJj=s6o1XDKdJaWV+%L%q4MwtkPEOg0icvm0dLeVv- z!O8t}vVB9Y0ve)vjZFXl%XED*A`(1@xEP>skdSrnAZIen;vY!fZ3*@a^mFwQ*hg1| zqbFnx%iTACneZ+$yU@C+l>){oRD4YY5h`v>QW`oMKO z%c(n18t8)dt%GQUgolmr4-7~B-x3aw?C^H<}SSN$g%IocaM=@Ai8L12FD@Im(~I1n*kiKkOz1~wzU>70 z#t68uz3mWidM-daj{!$JS3!^Z=kz;OKT^(2N*0eMG;;~Xd#hP#8j2g9cUpU!alSr{68_(gqr{ecHCJP3F& z!)F7heIE^2pZLA;c|5M?wjdwLa6Es;GCUsS7co2$coM^x0#9N13g9alz8ZKM!_$Fh zFdV;szJcMJK|YJ&TYzt6IQpR4$?!cOpUd$5!1EY>2>4-!9|L}z;aIK`hQEOR@g~FZ zUAFMM}WK@BX0t{Kf}#|4`TRO;OyLU8{kHayd7|3hEE1=#&9R#?A&u# z;CQ~pdRPhVO%~b%y&l4Q9g5(UQ|^6Dy1p0W>3km=sJtBciOG)!ygowCQ~sPq*QvQQ zZw%dGh03=?NS3_?oaVa=65;&^m8Tr{mo+2*0@@YMg+h7s2{o0G&xHE%WH|aN@nQIO zhzBwJ7F-|9W%zxt2m5ohXDIYn*gqquUk9RrzAQoma=bsq{E_4J#~EI{UfvJ(*HwmF zK>RMlw}AXJhMxp`su(^F>J9rDv?mtIr3mSe*MffG+-hU);AgnB|f=*vZx;dkLUl4JN&;7SbN0_~(d z!_mi=nBh2gSBv4$orroed>qtUUxrTtF7!1)`vF(r=$iz~I|H~eqX*~eTQD5^L2HJ~ zLjBq^d>+)ZBg1=uyc@&&1E0?DVZi+u9tZk^8Qu!&AMfL_yoaFQ$YA7`!hYP!a0!U# zF&uqx6fhi*!%GaO0&(>9 zih7bkPaz{e7wYjk!*M^AF?<5(dBgApV2>>9AIx_GaCL@ff*uQodqKU;WcVtOk7f8V zI4*1&%KdMi1Jb!0-ylH-*uI&#w+L^4LG1 zj}5dRkL#O^yfLwrhGz`NxMea68~v8GDq#&N4>c z4UUVqjJzSp*Rk@TUjf=X){i#STYKPWzbUlCK8!rxH=>VB)YB34jAQiR^{W@72m8+u zhM$0ZqZmE-d_0Yj$M&<0;W(~(gyCPHeu^0VIF50Tk#~dm8-~;8$27Et8*r?LCs6Nd zz_C7gX)v_G2RXg};W?mR`yfI$IPSo<}AQ&~Em z))V4d3?BpW?hJQ>I7}7i@}+vbfcItOS3!Iz!#6{G1jF}0+?3%*A#Ta=(-0Sq%TarZ zf!i_iIR5Uy@W&9R?_JP<_4A64iacP69LLAK8II#qI9|urzZm4{;ZJ`Uj9>*h9xpBo z$Kx@Q;ds1nU^w=N1q{dYMH$2KJSa^KCjsrj^Y#DtiNV(k`!6PdRv8|TxZMa=*msek zdQq%VpBRxHd65+8SLri%nijgVzx9b>0sTgOMzF%>Px}F?6SAon|EKBoNeZe{*rurx zYsh~KlOftqWoT&3Cx(KU+bq(9ilybJrvOafj^8XAMV4F^xB++#Jzz;NhVv&M`<))+ zhGd0`7$JbAkruyVt;jEF{`3@q*Z*Q>;G3mN3K^-_!UN7 zqdqZG2J`Zmp4v~Vgtb4Eu!iiv0QuizGQ{+}_Qri;6hQuwke=q>vVr`gA%A>d0rhT$ z2S6{GhKc#3S;>v0N1qx%o1LZnYhF; zMMRC4Su*$N(aX!MoJ!#5!k3>|dFP zeD9l^0$z8cqD3P4FgH%Tt)EfLWkgC>{@29Z6yV?if88)i;jfI=Mmay-oa9C4?2}j_ zS5IW3Go8OntE_(CQf~ypcvyyK%AP>U5iQTJ$Uo^+Cg;%fa8z@JvVgP`Bh{Km87rO9 zYuPk;auedenC_T7T7ULl zIlH4;_fzy*yxe+h)oQJAvhQ>?_Z1qHJTe~sa;0sxR?ezTPeTqK)!I12>`U7EQ5*Lp z@6dQQ=gp$?bB{?>&JKGutLfEwsV2vU*9A-tt#pbX-M2%}!>+n#(ih8FR&Sc#Z^d2p z=$yq%EUGQ9^)GHw9p~>;BinC!_#w$y^?S-1pRmp2wI#;GGVGRKmW$R?h~08?WJq>x z|L(~$q#9lp#VoSf6VXlm(d}rRLq(O9hxS)WZ|XLyiKe8zlw;(M@Iuq}7v5w^*w3ka zAgiGArSJYb+4-nvIp?kZ0T(>y6eBKi4Zr>$F3*XksZsr}*{5zee z@WqNf2w%qd{FIOV{EzwE3NXgQ)=bFH&dxrceY#k*MORmM-rLvF2DX|ShTaOr&h@F`b1*V!6t6>`+F%fmqDrVU#-KeBV~ z*09Br7P}Yw_ZatSX!Mydy>Y2g+U@cjoqb%K&)#>auo@#0d8#&iD6gOTph&eoqnDm; zm?PG-`8cvlskyzw`)eaL&c>IW=`o;a#L5xMraR}J=qm9rO1tRw@zQSH-FiN{cU3Dt z$5>>SUOiD9a%B1HR&_jUcbPH&gZsg;oeq{BT(foB{y(;P+F!8TxTqkr&+US~HgU(V zhNl}oXjk|oC1GuB#r&AE)0V2OweEz?eo)U-RsD$f-65H;RGVcM&MSS>D1X-bj!&-t z2)wP)xWDS26vv&CEr~{L^L#h+hD5#bUKiu!-3#JxGsjq4MY_?efgSa?dCl?ewzD>G zn&-cspf%v@>!79!#u+}dsGazM=QzgvN| z1mCSd{k5^4{LQ-+`jiIWJMgG}_W|#7Yq~xWcyrTAOz+O87n5sq;JP0@;&t-wLoL^8 znhih`$kKTI{p$}jf4}qY1D&U-ap2}k@n;#7+UeNsBaCpJ;5m-OpnLWfDZ)@F!dLC03HH3S2pCF z9u>)*2K4uVo+~GEKC=e;>dA+v{8UQ!zDvDB(D$8UAAPQ_AycK?R(p3ZuV75VxgCV$ zp~TZ5w~t=nM~_}Y4|`Na%mba*(K!_E`Ni_4^Fq2;3-Mm$oCcP@KM!;BNFn_sz*%~q z8tCWOK)<*KdOCNff#r|=J*)pdp8Oa3BY?B?*9AD8yP_Rl*1+e3fL>?^HK@9*p7{NA zRxb6UNdrsY4se#3QKgjVvAU=Y@Au1Zj;Bz7F#^5;+_hoS0ONQ+h z^|=Xjp$xq`*d65{eG1UUGV~~K1%o$%_<9Bx1Aojn@*f6t&lq})zXhD~72X?tW9X5O zCdfhlC>Q4`h+}%(D?^jfIoW;SJCfnE7Vt@cBR%$~p$z>apr6m+m4M3trw1x`DBv3y zdbFp|p9!t!*pJ{|Fyx~Td@eA2&_1{Zf_69v^pAiZ`2Z|>$M8XWVq2hmXdA|$2`4Nc zJ-{hFZOhnxIx@Hu#5*(iNQif1@EC~qX7EIaTQWG-OKS$-1@S=)egNXb;mGDo3^*-A z`omxaCx~OYxG^}EdnAKnz1qUySU-P%4Lig``t#SB|F=Hq40aNeBP}DWp8$)j;Do)$ zg6fTAHLhW2!vIta3A9NHdWz!`&NFCzrns=LB2iI1D~N(5urR$hq&)xA^xZMNuu&2$ z5d@*01mXhfk8wKp=SZ0g^7M?t44H_|tEgxz@)L#)wBeJ0&j6_XXc=L8)XR=wisa*7 zy7Xl%bPv>Qr9_7y_7?sbiK^s%1B;@c1`9G#dJ1ihq6s50%^h@L^ z`4cw%DooGNEr3Z|V+KdLc%=O^o(oA+g_AzP1(r60T%+S7?RSM?1Ek0D!)vHN#`DMt z<;kWmfb`i&2uC(OwXdS`>#e~j2!nLA{OBAN(_{H5l1-D~UYWg+VLC5RRR1W(_8m06 z6$rw6bBfWx+KtTGO3-lEe-veUuO1Q^VZ!f-+!aU)=VT^~Z zak+MCi1l#o?AKpj&URYAy7{*Pn_9`@I-duO`q24WVu3h4-N3PV?y70i>WtsCpm}`L zn7FefEI7L=^ZT01-&Qxe|7gt>^H;$SAFcheB`G-RX{T}Xr@s%n^mU(S^!LG^JI)%g z&a~5$EdA{PThm37g&u|1@2{Bc{bISr;dv?d?GJsKYuDml6LqbTRWqJhbZs#HnR~yn zrs_ruUOJu%Q`aalZ2jkj-Z2ptvN4s0lg^AgzChZ0VSMkUGb>de{26OAe*7PgFD+Y~ zC5wM|C#OTv*$K;}GT*S-21c)IB|mN;OU^2B%{!U zQtp+k!5T(cO?M5Rb7s&ZKUq-L(EhKg3cFnRzVv0r%$S`^wkSO_Y2w*$hIQJfxLQ7X z+tM~%>ABalsCm0n8PVVGk1Y>q>71FmF7w^`o&HNTY*U}=-_F_npzDFwo(Zdt>-5}S zdTiT>{#`S=khe%1^7l4?D#ySur$d5Dx6s(Nj>64{DuPjMr=O7J>eJD~yNVQaeh5PI)o zw@T$}ix)3G^(kzCcDp#Wris4Z*|oT}+dIV*ZTITLxv6Ryx+u$#P*Zz7KgvKD9gOQ zb;S5InZjOXsyT9IgfjOJRWg><$9^H`o_ju zLkhiJ#+Mg$udO;w`>%B;jz_!+{gQoe#;waQ!=!e19_<>m@U&fBN#e1aPp988Y<9eC z*5>}1{;OO}PYgVh(9Ua9lVuNL#?05BnUhtk$(gdjn?8)}Zd~qiCCE8B(OP=y$*C8Rzh+Xk5;9rS5Jj{vIBimG3U_c1&mye|gMXTYV>cO^^G%d%B(!cU-2|XYkf2j~RV7tzK$uqb&?bf|n zoA_nU@e=LN^)K7DHCU$d#aD8qSo7w#Qw_(AjI)T*fA!+ki$RNP^&d4)^r))fT6K9n z;jCO8r{CupK-P#gCDM)0CM1^B)>diuV8g)`2OVYh=N!Z*PDtwMb(?7U;Ca`6+p6~J zjA)i`BFV8lb7#5n`HS5RhN`R@I(9|Q59hYh=$V$bdMig>H_Mx{@%*vGAw3r?K6>j= zzwFv??i9{ERWDrs>oKcaXWraip^>mJX5Ec0ck-8;*v~%l;BwlFuv#8rPJxQojp;Zf zCOgwM{xc*6_I!pP9jaA>MqM(WJB))3F%Wz$kwjXt~n4 zAL3{MI(or0g`EAmHb&>RH2nWw8*9dkC7)gA1J#qx(au5K29Ai|gE+f3HXb@Oc5N&k z=sg%d#~|*<;BBCPoW|hjV-@>p)aNtE#kmvW8v&1F_&`*Y%HXXbzKy~0J<0tHZVmC1 z3{K_KaGpQN*A)9fzHTu%u0516I6hl`$>7by>g7#?- zbm$uz@h`wf_`W5z5BgLx2Rk7>z6UE|aD0zb_`V|L(;Mgl82bI7PY8qKvx!*@j_)%> z0#1{|DVGBraj2fO&&7a!JWH2nFLsQijyy9?Hn-(Abh0{K|}zq^)M2pu9@ z|5^KK5&hY|i)OV7^uJCcg21LHo;9SLqf%JU{HL|d?tP4Vm~cC5|Gkg7u{PBTSaGKU zA9FDkR_NKrPBuDU=9o*CHS^;|)b$JJz=${;l2nrYr16qmr5v)8R4JRdm~zaKNh-)5 zR@}mhK9z`DBaO^#x+xa?zYrd!oHH87N^)8ya706*m3HQmLe2|UCGJlpDDhlFoH5BX z$!R{_GOL+IjmG<&8EF?)L0^p|PLNWlGdS6yMDCCj#~l(P$$@x5nnMo63(_=l5cs>3 zly=XyONcGzNMrNKAul$I{8N+U#qOnNly!V8KT>MFL^Ix!uA*wNd zDwXFXB7YrZDC)xTm&In&d?a!ITt-RxaoHpVxE{+XC_aG_*d-)U1K1@TqIQv6DX;YQ zH_l}jl{8;B zI2(ALCmx@;oFG4UlRO~#j*(p&kO?I*?91lLF5|0=!vO{Pqc4HW<^7^rs75T^k>tQz&@SP`LC(?%g~Tv4Nh6^AWIjg#3iRUsNnlL*I{s)-RAF;#jY4lz|m zA?9UK6f2z=Q>8O=)<3)QI~$upN@rr(VUmhJH!Ax>ey&$WA5`*q-Le((bM>-?^797e zb9sXL<)QpZo${$z1?%9+FI}0&Nz%!34SDzoc~g!dTz|C?9e97L>UJ@?ntXGfKTq7V(}g5qOoT&Bslu$XKmSxy$6!H^DgV2&&{mt2fbqW?r_}-J%W1>)r`)YLwn1`5*x{3mp{60k!5ue9(#FMQiC4PZ_xIBLG+fX!`n8TJ?oaH< zq=WVED)2r>UIda=#Yw(`Zkl!)CyB#RrEEJgSRWQ?9M0}Q7s?sGdGxVgjpqFuPNdLD zL8(&_F{Q@kCVxXpGE+@Drd*9r(+hm&#Z++qM1`}GD&m4yQb{db-igkMIM;oJG#i;B z($^5{*C)>RWMuADX_pc=s`k4WNu^RuM5XfFs~VY-cVtvJU0h$5L(boG=XKQS`3LS? zg**R9&eaQiWRjN}hb1qGU8`8T%C#GYlR@I<&`#!QT5KA>S+Smr6Ls>=dJh=6`|=!SccZ zo%0DhqH{j6C#fW)g8WiPX!%uXF)zeK}+fMoO>3Cn}=i$2|@C@b1q64>eZdct8GE24p0b z>?JR-)v502-zwBwr)Iq;lYyNRbz5Tr{g5;0v2X%6OhWO^`?=JK81S3coXco=ZseuI3nF!s$sFCu{A)K>!>q8gobOLf z+aff?rRI$MTw)Cs%A?P`YN%?P+St7xmikYrbkIv=Kzc?>Dv3 z-)Uhj73%XhEsSo%;WH;M!x%{w=`E|2H5RB+$FFR4QsP>e8<`W({*lz|mp|^!sKXr} z&iHrjsiQ(Ib!#pi9g=|b#1*HD>vj-*)ew=+oAk>a=(oVs=_W8Ga`*j?j2wi7oM3)9 z-DR3F5%1>BY;accmncv2l`s;OM?^)uqu;^dP%@Tq-^eTXr6{?#<T zqm=|DEl*T#PGnSfxFZzi=a>G0j^(0qr})vdtI8siBsw-K#YxJ`^@xAhnBx91`H`~I z8kwWZ$#vT0%Ff4Wo(_1Y8W~Wo6d6%23N0jbbtQkvXdjgwhxhrEEf=WI)avySPf>_> zSjdFVelB85OR>J5zQ`#wL>%NJ4)6{L3Z6w$j1Ke;o968q;_XHDT6xh+(xA{_PjBK7 zR_f>FEhgSF=w2*B6znaP`UM4o9AP@Cr~5RL-gB}$*||j=c8Di*@N^NoQ$arDH6w8c zFOh*kDDmYnEhN}Aq?1@G?kMiniE6~IlmYYq^1)9U=H=(>7h>Sq>1TU{>We0ZiUUHW zAz}}2u}{#{sX;SIMm%PTO~sSF!^B)FX*cn}nsX-hlX4r?+^Z9`rRv)U&LBQiyu{L3 z0Ukk9#S_#XAmvF|0DVIeRt_pcj@GRnPapUYmWa`u8==9%CsQr?U)bpw&F_4E7V)0 zI8G{qD=h{QTo08WX=g%%l{$aKc-WeNl`fN8j@Hh5b+Mx8#DTQ6YwvHlH0JG1zkUbz zB{a~IWsZs;U|@T6#AN?*^`^J=8zPpS^uE8#Xhf&!TMo`$X*Q+BNX?5ec5Mvnj_7n~ z{nC2TC$&fAemJe>y5+&!{xi+)m0Em#`J-s5^or%jixGDl=QLT>=(B%^khq=?%iKoy z(yTDQwE5`t(aQ}#)$(i6x5u`ttEO$==Gu6_&9_xH^R$|$WvM&#Y`5pdrs0$CCK;YR z)?4kaUvg-V=Cbr#{g0jwZ~VvJBlgoaXQ^kEJ@e7;m1k(E9AK=}dB#h#Pgm}SuUVV1 z_OBaVrwvf=c&B!0R43yGW|6uDY6sjz&$2BF>zGBAXTNvrQCKT8I>605OQ}L+e!AP< z78OdpqT6PvSJeKJJ$IUDj>;VEqWTS^mqtyYde~<+FRi4?{~AnC;HeKi;Kp zS}W;+#yKvPAKT5IZ#Vo@^xXau-Jr;RJNNjvvRXg5sp-R*erv@MjXn>o`Xu_?P7<#5 z*;682_5Ms@mRjd^>km2%e>%#+%XiK6dpB0j&U|l_Za%%qdCTpeTQ$D#v8sK!)0#n9V#%0ibZ1Mlo_9cf;AWuK$y_Jwh8 z?&yVU-jOV9+2w7!EQ^SCEl=u9x-syLZo2eF+rwYpe)AqG27k&dEvkmpJs^ z)ywa$UOTv>;mE3??;KshUCYv`W?5p=ZIW}y9`Q_GH{d?^{FmRKZ z=czj{)hv}KS$DZITiZWquj!=mOG*dDSUQY|S{*d@#)6OIS{7Ug*E*x;mpR5{(4R)j zwNq#BIrsI@vwb&n;}7Uv{(8_f^^}>1$x?$1HB-&!B|`%P);O&;Gw%?%t?sieIhzw7 zB>K!=IP+xDupRe4mEXPm@UK~A>eG)L%TLWcRJ8p4?VRUFnwYACA!jPt!~S{ue+Vpbjd@>`=a%OcE-*=a^ri-^PMXu zPB?Y3-QEZ710LBNzF_=CyIDyGvo9SoT+DpdT{>g3q}k3N+9iLwXs*|7aLJSVLrIplnt=x7+SGslLu?)-C5v`iGt8*^gez&vF_UT#rGsa$AlcSrl z|Iaa%UVX2AdNZZd12g~qjZ5B-()#oH`Da=YBU4+<&hDjiW`?uZ3gF!&z`LNxu3Bi6G|GY`yH1=N7ra8&9m#Z%<|Q>Z);!M)b-5JkVlC( zuN-}|_UQAxK;I~pK;yT^FMcnpJ?Xf&+ooau*?(00IJQxvUvRp9r{Y0@n^vDoOWM^c z#i`;<_RacJt-GsEnOfiFV68o}DUQxPdS*Vp*>P`^h03ol4X!AvAGu@N?c89;^gkTh zADA+Ab&n1Q>qKtZlCk@3oBiYG`CL0}Q1+u^>Y^(1Z_~~1hdq_vIWaEu^x=MM9kS16 zgs$kc|E4H6)xp5{R=}aOw6eDTyRN?+8)|x?qv?>zZTvsHaqM>KZO>`9m)DO<=-~G_ zb9IW*+KpMi0e$#)l4)H`N) zcFvdfuho|9>S0VDdGnScs}h2ctSN{HPtl%(>0FNlj1wQeE6sx%573N!HRF}}t53@k z&D9nT(r%R4$g1~HZM&#tnzh9(RO-yPE7cqvwo)f?a$>D$GmR-R8*`)jSr2Yer8IwC zey7rweVhBddZXE>*u&Sy*Y`tOs^$9kE!FaR-)@;V-R0w$L6_^^9{<{QebtYzoen#N zt`4}K@Uddk;bt@Qazkq!3U!{DrPIT5&?9A^*qk0WdR=R=V^G+$KA(G*Ie9fxe>P3u z_J&OJdX8&{-J2iuJ}-?ppmMVL`5~*j%rCFX$WIM)Nb6UgQQ#?QA=Ps2-)Tkjv-S7+ zD)or}sD5$5{ATTfrp7X(=!@95ql!@)=Egu~!g=jvUq-N#~(^W~oThL19`hp3x3 zKHXx@xfLU}#x+b^sJbjQ+GN~yBX^_R{$0O&rhVTtv!c;Uvt@mo?aQz=ef=;r%-1nt z@S+J?sfXwHG_gK*%zBDa*V^GZ$+Az^mPgc1FL&w^_W77px#8IkDj8*0PdA^tqQYtA zC%vedCANFcxLE8~)qB_IPRFC)M_M7{d{*@Y+X!n9gH{+3L5ViBY6@u**!ZnWR0QAx{BEqa)mxQg5Ei1oKKxmEhP zK6{V45PZ+L{*&!hYHPFtF4$`vx$$^L@N|=OX{l`B$b!uq?N%)xn|+aZCh4Mi5t^#-N~7gj;>ofRqE|t)j)5*X-es)E2S2uku$ANHmrCvvSLj6 zF1>8^-F0@WPpxx9B{P5X3tbEU4N3NcqRPfb2C6iU4Y()LGO~XWF594cw5>^i<6(oP zhFykK)HkhnbI29jvWF>}Mh`#aJ=S>r^!;A*ewJ{2mgoJ3Xsb;~n@bXpzL znq8Hos^KULs+!YXd8nJj&CzY(hIJunrq|NGIOqf~+r6)Bi|;Gv)FuZOX$Nomdd_~x z+q1g^bJN>R{#4hqn{JaK6)W$W-CNbkcITndaoMxWQ&%|lNLkY9UgUwXwk8J#hUI@8 zwLW;kh^MDES`M;Yd)U|Fe#*zRMT67xV>=(y3@?BDqkW&uj(ghP_J(12xN}L5@#u*!1hweWLQXJ63T|m-%`(vXNwTZa(de=f|(%y`M#`XdAh7 z(;1tR1BX8U`Q9WscAV|x+=IP_eim(77;o_CoZUO8II~`TG^W~*99gou(d~odLO+c4 zdLm8!R%CJQoV~vO+BM^I_I0q#UvMdH*qeGAOKwK>RyP&rY@NE+W&3nbMM%PisjC-m)?3y@w%g7tR&U>!>n6o2IulfNcP0)$ zq}+9A>t-ugt+}w=SmLI7`Jj%ZP1gsjniqwO%SS#tZ<`$S{rmeqP7|X2wjXQzqw2xd zq1oR>!Pj>7|G7Rs;-iB8mjB+1rj2x?5BI&74Y`*x9e1YfO|uH0eQ%NYdsWY%6g6dO zc%#K7y7t}M7Io-4U$U|5>cSmjFQdURP4`VMJ{7cKS9bF@#%-;Sy&pL5g~<&6CwGs^ zy7cy4d&0_VqW^}&KRTUS_;7azmF6$zSUuUVysGQmztHtDq3>HR&%jvG zy9SNOHR`k0n6Ai>faA6SIj1=8Jwm((!72X+baNyLTz<&Woct(`-~PqDm;9cv+M;2= zUxOwh!HxVVeGuH=!SqWcB{-Gq2J|?skO7Y0@JF1$qW=pYx+{rXv zy0JASs8491r>kqX9`aj!en~*S1fa;#t%(RPOI<^PT&0tPf25m~77oHmPlLj^yp!!A*{y1Glrmv};4ecb(~iUh8238!i|LzF%uh&hcHAZ~;yqZzG;4!08$@;%3kR(n&X+LK{LmkuW&Y zJ25zHMHGzzobsS+_ehWLR3Lxa_t7u}?uQUZ-(;g19QpVHPWjW-TEzbl;KKY0ed%)f zqC!dN0{LU*_GED6KL~JEZYv6qfP64t=u-=E%$F%ckNj-`XZg<&;KF=8XZWDpcMOhl zzcV<>)r9#ay)3lnRKQXH-CQn-tLhqXbvpi#fb?E`RMeEgQ6Djbqdq2pv-)ge=;;k2 z4H*oM{Esj=^1o06fAmE|<$9soG%kM$&+!O?E>864%JPY)_rSWhwpa$5-W%oE^L zCh{p~_&Y$m`pn=+uL9#Z>aPj?OMSqpK0nUYIZZZqpzJ zN4dip9OZff&en%F3_X6g=?8-&e{~o*P#@&q0&tf97=|A0=EdO1KajzZe?9QpSIoVAaQ02kKVH4GoDw>udeK!1b5(U)r>gTDm&A_iB1@xGYB z>j3_Q!RrHF%HW!SS1`CX;FS!n1Nb`zN8dVC4E_T2|H|O)fe*Q5;{q*P`a@qoDhzH2 z^mP~2P{L_rT$_O0K2}Nuc-rG|=IPzBeK!KN{$s zBpMLsWB=}Zks@}Y8RA3=j9e~|0*9`b3=;C(<(cLqlvpaBd%8phuc27d_r zXEQjx@1`M|Kgji=8?R`P@dr7s0eq4eydA{T8T<%s_#|MvMmymB-ZB2Nod0@==P>vV zh@WHd*1#XzBl0%^y4wuBI@H?-432f>DTCv?-sKG51mwPE@NHn9j|`6YnRVeh>gfl3 zus$Om3^-kHpaJpOfa81(@%e!3G4#1mjs^^V3Gi+VehY9@27d^6Uj{D)+={`ULA|wQ z@K=C4FnAT{6 z3~tV6M?_zc66VVW@FfiH2>40{cLsblgS!I0fx#yOj`b1i34P^)hTRPPUZ_9#E} z2!>u0a2bOS2Rwl3i9PJZMGeQFTlgT4P|Pome>)gHFB|ZD@)+ES7A6U`;eG=77=b?MV-V%y^SO=;{dJ(n`x4}n1GqIq z?+11p1~~Fx1nYhC7YM_;;>o~nY+9d9!9&A~3kj6NCEI3%dT zIxyzT8uEoca1qCPYsJuGe}z8Pk=_pYOk(H_01sgB4`2uM{fm4+eNj9^k9J4`9PNP5 zch@oWSpRo0^j08uA4Bg6_$2{7ZP(b3l`!;)oHa$F*9`sya9lsf@|{OdNN5c=w1{K> z+XHa41Kw9yGk7HM8Nu*L1v_tN=ry6=-pA1M+K5E?3_X_PEe6MOe8S*ZUT+zkzJ5VN zEocXruN8o6GI$2ytr?tqcY^RSWbk~*FI01G+<~rvlMCH}h_VF}aJU}#&yQ1deZUyv z9T|KW#5*(iD2R7s@c9t$&EU%*E?gg=ayJ5Q&CsVqd=P`_y86>pz%JWCbVeMpa5H3@u1Rh5W39AUPLz;DI`{Vvsuqd! zG_fGC@(sx~$`iU>Ipx1iZ$?s3p2E6FnG}QkX$)glt?qf)n{ElAjL*MvTER zJ(rmLd0=`3;P{a~d?vw|KgjWw@mxqZL@bO|pR=@dJfZc9F|%lxm`{V{$H%Je zhw;nggz{w5M~ZohZ2lns$NVF3j+`i}|8;1?A|Z@F{I-u*tG0Z?EKsZ|iPC2RC?Ct8 iPA8Zyf=gJ{jys6jGX`U#HTrms1pNznHu8Tq{r>|#xgl!+ diff --git a/build.sh b/build.sh index 03ca4f3..2df7311 100755 --- a/build.sh +++ b/build.sh @@ -40,7 +40,6 @@ gcc -c src/objects/objects.c -o temp/objects/objects.o $FLAGS mkdir temp/compiler gcc -c src/compiler/parse.c -o temp/compiler/parse.o $FLAGS gcc -c src/compiler/compile.c -o temp/compiler/compile.o $FLAGS -gcc -c src/compiler/serialize.c -o temp/compiler/serialize.o $FLAGS mkdir temp/common gcc -c src/common/executable.c -o temp/common/executable.o $FLAGS @@ -62,52 +61,51 @@ rm -rf build mkdir build ar rcs build/libnoja-objects.a \ - temp/objects/heap.o \ - temp/objects/o_int.o \ + temp/objects/heap.o \ + temp/objects/o_int.o \ temp/objects/o_float.o \ temp/objects/objects.o \ temp/utils/error.o ar rcs build/libnoja-compile.a \ - temp/compiler/parse.o \ + temp/compiler/parse.o \ temp/compiler/compile.o \ - temp/compiler/serialize.o \ - temp/utils/bpalloc.o \ - temp/utils/error.o \ + temp/utils/bpalloc.o \ + temp/utils/error.o \ temp/utils/source.o ar rcs build/libnoja-runtime.a \ - temp/runtime/runtime.o \ + temp/runtime/runtime.o \ temp/runtime/runtime_error.o \ - temp/runtime/o_func.o \ + temp/runtime/o_func.o \ build/libnoja-compile.a \ build/libnoja-objects.a -gcc src/main.c \ - src/noja.c \ - temp/o_staticmap.o \ - temp/utils/hash.o \ - temp/utils/stack.o \ - temp/utils/source.o \ - temp/utils/promise.o \ - temp/utils/bucketlist.o \ - temp/objects/o_map.o \ - temp/objects/o_none.o \ - temp/objects/o_list.o \ - temp/objects/o_file.o \ - temp/objects/o_dir.o \ - temp/objects/o_bool.o \ - temp/objects/o_buffer.o \ - temp/objects/o_string.o \ - temp/objects/o_closure.o \ - temp/runtime/runtime.o \ - temp/runtime/runtime_error.o \ - temp/runtime/o_nfunc.o \ - temp/runtime/o_func.o \ - temp/builtins/basic.o \ - temp/builtins/file.o \ - temp/builtins/math.o \ - temp/common/executable.o \ - -o build/noja $FLAGS -Lbuild/ -lnoja-compile -lnoja-objects -lxjson -lm +gcc src/main.c \ + src/noja.c \ + temp/o_staticmap.o \ + temp/utils/hash.o \ + temp/utils/stack.o \ + temp/utils/source.o \ + temp/utils/promise.o \ + temp/utils/bucketlist.o \ + temp/objects/o_map.o \ + temp/objects/o_none.o \ + temp/objects/o_list.o \ + temp/objects/o_file.o \ + temp/objects/o_dir.o \ + temp/objects/o_bool.o \ + temp/objects/o_buffer.o \ + temp/objects/o_string.o \ + temp/objects/o_closure.o \ + temp/runtime/runtime.o \ + temp/runtime/runtime_error.o \ + temp/runtime/o_nfunc.o \ + temp/runtime/o_func.o \ + temp/builtins/basic.o \ + temp/builtins/file.o \ + temp/builtins/math.o \ + temp/common/executable.o \ + -o build/noja $FLAGS -Lbuild/ -lnoja-compile -lnoja-objects -lm rm -rf temp diff --git a/src/compiler/serialize.c b/src/compiler/serialize.c deleted file mode 100644 index 8f339c7..0000000 --- a/src/compiler/serialize.c +++ /dev/null @@ -1,201 +0,0 @@ - -/* WHAT IS THIS FILE? -** -** This file implements the routines that serialize the AST -** into JSON format. The JSON manipulation is handled by the -** third party library xJSON (written by me, still). -** -** The serialization functionality is exposed through the -** `serialize` function, that takes as an `AST` as argument -** and outputs a string of valid JSON. Therefore the xJSON -** dependency isn't exposed to the caller and can be regarded -** as an implementation detail. -** -** The way the serialization occurres is by converting the -** AST's representation native to the compiler to one native -** to xJSON, an then calling xj_encode on the converted AST. -** -*/ - -#include -#include -#include "serialize.h" -#include "ASTi.h" - -#define UNREACHABLE assert(0) - -static xj_value *convert_node(Node *node, xj_error *error, xj_alloc **alloc); - -char *serialize(AST *ast, int *len) -{ - xj_alloc *alloc = NULL; - xj_error error; - - xj_value *value = convert_node(ast->root, &error, &alloc); - - if(value == NULL) - { - xj_free(alloc); - return NULL; - } - else - { - char *serialized = xj_encode(value, len); - xj_free(alloc); - return serialized; - } -} - -static const char *expr_kind_name(ExprNode *expr) -{ - switch(expr->kind) - { - case EXPR_POS: return "pos"; - case EXPR_NEG: return "neg"; - case EXPR_ADD: return "add"; - case EXPR_SUB: return "sub"; - case EXPR_MUL: return "mul"; - case EXPR_DIV: return "div"; - case EXPR_INT: return "int"; - case EXPR_FLOAT: return "float"; - case EXPR_STRING: return "string"; - case EXPR_IDENT: return "ident"; - - default: - UNREACHABLE; - return NULL; - } - - UNREACHABLE; - return NULL; -} - -static xj_value *convert_node_list(Node *head, xj_error *error, xj_alloc **alloc); - -static xj_value *convert_node(Node *node, xj_error *error, xj_alloc **alloc) -{ - switch(node->kind) - { - case NODE_EXPR: - ExprNode *expr = (ExprNode*) node; - switch(expr->kind) - { - case EXPR_POS: - case EXPR_NEG: - case EXPR_ADD: - case EXPR_SUB: - case EXPR_MUL: - case EXPR_DIV: - { - OperExprNode *oper = (OperExprNode*) expr; - - xj_value *operands = NULL; - - if(oper->count > 0) - { - operands = convert_node_list((Node*) oper->head, error, alloc); - - if(operands == NULL) - return NULL; - } - - return xj_decodef(error, alloc, - "{" - "\t\"node-kind\": \"expr\", \n" - "\t\"expr-kind\": %Q, \n" - "\t\"operands\": %L\n" - "}", expr_kind_name(expr), operands); - } - - case EXPR_INT: - return xj_decodef(error, alloc, - "{" - "\t\"node-kind\": \"expr\", \n" - "\t\"expr-kind\": %Q, \n" - "\t\"value\": %d\n" - "}", expr_kind_name(expr), ((IntExprNode*) expr)->val); - - case EXPR_FLOAT: - return xj_decodef(error, alloc, - "{" - "\t\"node-kind\": \"expr\", \n" - "\t\"expr-kind\": %Q, \n" - "\t\"value\": %f\n" - "}", expr_kind_name(expr), ((FloatExprNode*) expr)->val); - - case EXPR_STRING: - return xj_decodef(error, alloc, - "{" - "\t\"node-kind\": \"expr\", \n" - "\t\"expr-kind\": %Q, \n" - "\t\"value\": %Q\n" - "}", expr_kind_name(expr), ((StringExprNode*) expr)->val); - - case EXPR_IDENT: - return xj_decodef(error, alloc, - "{" - "\t\"node-kind\": \"expr\", \n" - "\t\"expr-kind\": %Q, \n" - "\t\"value\": %Q\n" - "}", expr_kind_name(expr), ((IdentExprNode*) expr)->val); - - default: - UNREACHABLE; - break; - } - break; - - case NODE_IFELSE: - { - IfElseNode *ifelse = (IfElseNode*) node; - - xj_value *condition = convert_node(ifelse->condition, error, alloc); - if(condition == NULL) return NULL; - - xj_value *true_branch = convert_node(ifelse->true_branch, error, alloc); - if(true_branch == NULL) return NULL; - - xj_value *false_branch = convert_node(ifelse->false_branch, error, alloc); - if(false_branch == NULL) return NULL; - - return xj_decodef(error, alloc, - "{" - "\t\"node-kind\": \"if-else\", \n" - "\t\"condition\": %v, \n" - "\t\"true-branch\": %v, \n" - "\t\"false-branch\": %v\n" - "}", condition, true_branch, false_branch); - } - - default: - UNREACHABLE; - break; - } - - UNREACHABLE; - return NULL; -} - -static xj_value *convert_node_list(Node *head, xj_error *error, xj_alloc **alloc) -{ - xj_value *json_head = NULL; - xj_value **json_tail = &json_head; - - Node *curs = head; - while(curs) - { - xj_value *temp = convert_node(curs, error, alloc); - - if(temp == NULL) - return NULL; - - temp->next = NULL; - - *json_tail = temp; - json_tail = &temp->next; - - curs = curs->next; - } - - return json_head; -} \ No newline at end of file diff --git a/src/compiler/serialize.h b/src/compiler/serialize.h deleted file mode 100644 index f691054..0000000 --- a/src/compiler/serialize.h +++ /dev/null @@ -1,5 +0,0 @@ -#ifndef SERIALIZE_H -#define SERIALIZE_H -#include "AST.h" -char *serialize(AST *ast, int *len); -#endif \ No newline at end of file diff --git a/src/noja.c b/src/noja.c index 3e3a96f..bc3e8ba 100644 --- a/src/noja.c +++ b/src/noja.c @@ -4,7 +4,6 @@ #include #include "o_staticmap.h" #include "compiler/parse.h" -#include "compiler/serialize.h" #include "compiler/compile.h" #include "runtime/runtime.h" #include "runtime/runtime_error.h" diff --git a/tests/aux/parsing-tests.json b/tests/aux/parsing-tests.json deleted file mode 100644 index a11d780..0000000 --- a/tests/aux/parsing-tests.json +++ /dev/null @@ -1,104 +0,0 @@ -[ - { - "source": "1", - "expect": { - "node-kind": "expr", - "expr-kind": "int", - "value": 1 - } - }, - { - "source": "1.1", - "expect": { - "node-kind": "expr", - "expr-kind": "float", - "value": 1.1 - } - }, - { - "source": "1+1", - "expect": { - "node-kind": "expr", - "expr-kind": "add", - "operands": [ - {"node-kind": "expr", "expr-kind": "int", "value": 1}, - {"node-kind": "expr", "expr-kind": "int", "value": 1} - ] - } - }, - { - "source": "1-1", - "expect": { - "node-kind": "expr", - "expr-kind": "sub", - "operands": [ - {"node-kind": "expr", "expr-kind": "int", "value": 1}, - {"node-kind": "expr", "expr-kind": "int", "value": 1} - ] - } - }, - { - "source": "1*1", - "expect": { - "node-kind": "expr", - "expr-kind": "mul", - "operands": [ - {"node-kind": "expr", "expr-kind": "int", "value": 1}, - {"node-kind": "expr", "expr-kind": "int", "value": 1} - ] - } - }, - { - "source": "1-+1", - "expect": { - "node-kind": "expr", - "expr-kind": "sub", - "operands": [ - {"node-kind": "expr", "expr-kind": "int", "value": 1}, - { - "node-kind": "expr", - "expr-kind": "pos", - "operands": [ - {"node-kind": "expr", "expr-kind": "int", "value": 1} - ] - } - ] - } - }, - { - "source": "+1", - "expect": { - "node-kind": "expr", - "expr-kind": "pos", - "operands": [ - {"node-kind": "expr", "expr-kind": "int", "value": 1} - ] - } - }, - { - "source": "-1", - "expect": { - "node-kind": "expr", - "expr-kind": "neg", - "operands": [ - {"node-kind": "expr", "expr-kind": "int", "value": 1} - ] - } - }, - { - "source": "hello", - "expect": {"node-kind": "expr", "expr-kind": "ident", "value": "hello"} - }, - { - "source": "'hello'", - "expect": {"node-kind": "expr", "expr-kind": "string", "value": "hello"} - }, - { - "source": "-'hello'", - "expect": {"node-kind": "expr", "expr-kind": "neg", "operands": [{"node-kind": "expr", "expr-kind": "string", "value": "hello"}]} - }, - { - "source": "-'hel\\nlo'", - "expect": {"node-kind": "expr", "expr-kind": "neg", "operands": [{"node-kind": "expr", "expr-kind": "string", "value": "hel\\nlo"}]} - } -] \ No newline at end of file diff --git a/tests/src/test-objects.c b/tests/src/test-objects.c deleted file mode 100644 index 2e85472..0000000 --- a/tests/src/test-objects.c +++ /dev/null @@ -1,86 +0,0 @@ -#include -#include -#include "../../src/objects/objects.h" - -#define tassert(exp) if(!(exp)) goto done; -#define tdone done: if(1) - -static _Bool test_int() -{ - _Bool passed = 0; - - Heap *heap = Heap_New(-1); - assert(heap != NULL); - - Error error; - Error_Init(&error); - - // Test [Object_FromInt], [Object_ToInt]. - - int n = -3; // Just any value. - - Object *obj = Object_FromInt(n, heap, &error); - - tassert(obj != 0); - tassert(error.occurred == 0); - - int k = Object_ToInt(obj, &error); - - tassert(k == n); - tassert(error.occurred == 0); - - passed = 1; - - tdone { - Error_Free(&error); - Heap_Free(heap); - return passed; - } -} - -static _Bool test_float() -{ - _Bool passed = 0; - - Heap *heap = Heap_New(-1); - assert(heap != NULL); - - Error error; - Error_Init(&error); - - // Test [Object_FromFloat], [Object_ToFloat]. - - double n = -3.4; // Just any value. - - Object *obj = Object_FromFloat(n, heap, &error); - - if(obj == 0) - goto done; - - double k = Object_ToFloat(obj, &error); - - if(k != n) - goto done; - - // ... - - passed = 1; -done: - Error_Free(&error); - Heap_Free(heap); - return passed; -} - -int main() -{ - typedef _Bool (*test_t)(); - static const test_t tests[] = { - test_int, - test_float, - }; - - for(int i = 0; i < (int) (sizeof(tests) / sizeof(tests[0])); i += 1) - printf("TEST %d: %s\n", i, test_int() ? "Passed" : "Failed"); - - return 0; -} \ No newline at end of file diff --git a/tests/src/test-parse.c b/tests/src/test-parse.c deleted file mode 100644 index 0d16718..0000000 --- a/tests/src/test-parse.c +++ /dev/null @@ -1,281 +0,0 @@ -#include -#include -#include -#include -#include -#include "../../src/compiler/parse.h" -#include "../../src/compiler/serialize.h" - -typedef enum { PASSED, FAILED, IGNORED } result_t; - -static _Bool compare(const char *s, xj_value *v) -{ - xj_alloc *alloc = NULL; - xj_error error; - xj_value *doc; - - doc = xj_decode(&error, &alloc, s, -1); - assert(doc != NULL); - - _Bool same = xj_compare(doc, v); - - xj_free(alloc); - return same; -} - -result_t runtest(xj_value *value, int testno) -{ - int raw_sourcel; - char *raw_source; - xj_value *expect; - - { - xj_error error; - xj_value *source2 = xj_query(&error, value, ".source", -1); - - if(source2 == NULL) - { - if(error.code == xj_E4009) - fprintf(stderr, "WARNING: Field \"source\" is missing\n"); - else - fprintf(stderr, "WARNING: Internal failure (%s)\n", error.text); - return IGNORED; - } - - if(source2->type != xj_STRING) - { - fprintf(stderr, "WARNING: Field \"source\" is not a string\n"); - return IGNORED; - } - - raw_source = source2->as_string; - raw_sourcel = source2->size; - - expect = xj_query(&error, value, ".expect", -1); - - if(expect == NULL) - { - if(error.code == xj_E4009) - fprintf(stderr, "WARNING: Field \"expect\" is missing\n"); - else - fprintf(stderr, "WARNING: Internal failure (%s)\n", error.text); - return IGNORED; - } - - if(expect->type != xj_OBJECT) - { - fprintf(stderr, "WARNING: Field \"expect\" is not an object\n"); - return IGNORED; - } - } - - Source *source; - { - Error error; - Error_Init(&error); - - char temp[64]; - int k = snprintf(temp, sizeof(temp), "(Test %d's source)", testno); - - assert(k >= 0); - assert((unsigned int) k < sizeof(temp)); - - source = Source_FromString(temp, raw_source, raw_sourcel, &error); - - if(source == NULL) - { - fprintf(stderr, "WARNING: Internal failure (%s)\n", error.message); - return IGNORED; - } - } - - _Bool passed; - { - Error error; - BPAlloc *alloc; - char buffer[65536]; - - Error_Init(&error); - - alloc = BPAlloc_Init3(buffer, sizeof(buffer), -1, NULL, NULL, NULL); - - if(alloc == NULL) - { - fprintf(stderr, "WARNING: Internal failure (Failed to instanciate BPAlloc)\n"); - return IGNORED; - } - - AST *ast = parse(source, alloc, &error); - - if(ast == NULL) - { - fprintf(stderr, "WARNING: Internal failure (Failed to compile: %s; reported in %s at %s:%d)\n", error.message, error.func, error.file, error.line); - - Error_Free(&error); - BPAlloc_Free(alloc); - return IGNORED; - } - - char *serialized = serialize(ast, NULL); - - if(serialized == NULL) - { - fprintf(stderr, "WARNING: Internal failure (Failed to serialize AST)\n"); - - Error_Free(&error); - BPAlloc_Free(alloc); - return IGNORED; - } - - /* - printf("SERIALIZED :: %s\n", serialized); - { - char *temp = xj_encode(expect, NULL); - printf("SERIALIZED 2 :: %s\n", temp); - xj_sys_free(temp); - } - */ - - passed = compare(serialized, expect); - - Error_Free(&error); - BPAlloc_Free(alloc); - xj_sys_free(serialized); - } - - return passed ? PASSED : FAILED; -} - -static char *loadfile(const char *file, int *size); - -int main(int argc, char **argv) -{ - if(argc == 1) - { - fprintf(stderr, "ERROR: Missing file name\n"); - return 1; - } - - int filesize; - char *filename = argv[1]; - char *filetext = loadfile(filename, &filesize); - - if(filetext == NULL) - { - fprintf(stderr, "ERROR: Couldn't open \"%s\"\n", filename); - return 1; - } - - xj_alloc *alloc = NULL; - xj_error error; - xj_value *document; - - document = xj_decode(&error, &alloc, filetext, filesize); - - free(filetext); - - if(document == NULL) - { - assert(error.occurred == 1); - fprintf(stderr, "ERROR: Failed to parse \"%s\" as JSON: %s\n", - filename, error.text); - xj_free(alloc); - return 1; - } - - if(document->type != xj_ARRAY) - { - fprintf(stderr, "ERROR: Was expected an array as JSON document root\n"); - xj_free(alloc); - return 1; - } - - xj_value *cursor = document->as_array; - - int passed = 0, ignored = 0; - int total = document->size; - int index = 1; - - while(cursor) - { - result_t result = runtest(cursor, index); - - #define KNRM "\x1B[0m" - #define KRED "\x1B[31m" - #define KGRN "\x1B[32m" - #define KYEL "\x1B[33m" - #define KBLU "\x1B[34m" - #define KMAG "\x1B[35m" - #define KCYN "\x1B[36m" - #define KWHT "\x1B[37m" - #define RESET "\033[0m" - - switch(result) - { - case PASSED: - printf("TEST %-2d :: " KGRN "PASSED" RESET "\n", index); - passed += 1; - break; - - case FAILED: - printf("TEST %-2d :: " KRED "FAILED" RESET "\n", index); - break; - - case IGNORED: - printf("TEST %-2d :: " KYEL "IGNORED" RESET "\n", index); - ignored += 1; - break; - - default: assert(0); - } - - index += 1; - cursor = cursor->next; - } - - printf("\n ... %d passed, %d failed and %d ignored.\n", passed, total - passed - ignored, ignored); - - xj_free(alloc); - return 0; -} - -static char *loadfile(const char *file, int *size) -{ - char *body = NULL; - int _size; - - FILE *fp = fopen(file, "rb"); - - if(fp == NULL) - return NULL; - - if(fseek(fp, 0, SEEK_END)) - goto done; - - _size = ftell(fp); - - if(_size < 0) - goto done; - - if(size) - *size = _size; - - body = malloc(_size + 1); - - if(body == NULL) - goto done; - - if(fseek(fp, 0, SEEK_SET)) - goto done; - - int k = fread(body, 1, _size, fp); - - if(k != _size) - goto done; - - body[_size] = '\0'; - -done: - fclose(fp); - return body; -} \ No newline at end of file