From cae42d6a8ea9d5fe0a4e170bca08777dec115548 Mon Sep 17 00:00:00 2001 From: Wang Renxin Date: Thu, 1 Dec 2016 18:11:24 +0800 Subject: [PATCH] *avoided some warnings with 64bit vc++; *polished interpreter help text. --- core/my_basic.c | 16 ++++++++++++---- core/my_basic.h | 6 +++++- output/my_basic.exe | Bin 381440 -> 381440 bytes shell/main.c | 8 ++++---- 4 files changed, 21 insertions(+), 9 deletions(-) diff --git a/core/my_basic.c b/core/my_basic.c index 2fae140..05ed017 100755 --- a/core/my_basic.c +++ b/core/my_basic.c @@ -146,6 +146,14 @@ extern "C" { # define toupper(__c) (islower(__c) ? ((__c) - 'a' + 'A') : (__c)) #endif /* toupper */ +#ifndef _mb_unaligned +# if defined MB_CP_VC && defined MB_OS_WIN64 +# define _mb_unaligned __unaligned +# else +# define _mb_unaligned +# endif +#endif /* _mb_unaligned */ + #define _COPY_BYTES(__l, __r) do { memcpy((__l), (__r), sizeof(mb_val_bytes_t)); } while(0) #define _mb_check(__expr, __exit) do { if((__expr) != MB_FUNC_OK) goto __exit; } while(0) @@ -1143,7 +1151,7 @@ static _ls_node_t* _ls_insert_at(_ls_node_t* list, int index, void* data); static unsigned int _ls_remove(_ls_node_t* list, _ls_node_t* node, _ls_operation op); static unsigned int _ls_try_remove(_ls_node_t* list, void* info, _ls_compare cmp, _ls_operation op); static unsigned int _ls_foreach(_ls_node_t* list, _ls_operation op); -static _ls_node_t* _ls_sort(_ls_node_t** list, _ls_compare cmp); +static _ls_node_t* _ls_sort(_ls_node_t* _mb_unaligned * list, _ls_compare cmp); static unsigned _ls_count(_ls_node_t* list); static bool_t _ls_empty(_ls_node_t* list); static void _ls_clear(_ls_node_t* list); @@ -1695,7 +1703,7 @@ static void _unlink_meta_class(mb_interpreter_t* s, _class_t* derived); static int _unlink_meta_instance(void* data, void* extra, _class_t* derived); static int _clone_clsss_field(void* data, void* extra, void* n); static bool_t _clone_class_meta_link(_class_t* meta, void* n, void* ret); -static int _search_class_meta_function(mb_interpreter_t* s, _class_t* instance, const char* n, _routine_t** f); +static int _search_class_meta_function(mb_interpreter_t* s, _class_t* instance, const char* n, _routine_t* _mb_unaligned * f); static int _search_class_hash_and_compare_functions(mb_interpreter_t* s, _class_t* instance); static bool_t _is_a_class(_class_t* instance, void* m, void* ret); static bool_t _add_class_meta_reachable(_class_t* meta, void* ht, void* ret); @@ -2413,7 +2421,7 @@ static unsigned int _ls_foreach(_ls_node_t* list, _ls_operation op) { return idx; } -static _ls_node_t* _ls_sort(_ls_node_t** list, _ls_compare cmp) { +static _ls_node_t* _ls_sort(_ls_node_t* _mb_unaligned * list, _ls_compare cmp) { /* Copyright 2001 Simon Tatham, http://www.chiark.greenend.org.uk/~sgtatham/algorithms/listsort.c */ bool_t is_circular = false, is_double = true; _ls_node_t* p, * q, * e, * tail, * oldhead; @@ -7680,7 +7688,7 @@ static bool_t _clone_class_meta_link(_class_t* meta, void* n, void* ret) { } /* Search for a meta function with a specific name and assign to a member field */ -static int _search_class_meta_function(mb_interpreter_t* s, _class_t* instance, const char* n, _routine_t** f) { +static int _search_class_meta_function(mb_interpreter_t* s, _class_t* instance, const char* n, _routine_t* _mb_unaligned * f) { _ls_node_t* node = 0; mb_assert(s); diff --git a/core/my_basic.h b/core/my_basic.h index 561fb2d..92d7dc7 100755 --- a/core/my_basic.h +++ b/core/my_basic.h @@ -62,8 +62,12 @@ extern "C" { # define MB_CP_UNKNOWN #endif /* Compiler dependent macro */ -#if defined _WIN32 || defined _WIN64 +#if defined _WIN64 # define MB_OS_WIN +# define MB_OS_WIN64 +#elif defined _WIN32 +# define MB_OS_WIN +# define MB_OS_WIN32 #elif defined __APPLE__ # include # define MB_OS_APPLE diff --git a/output/my_basic.exe b/output/my_basic.exe index 40194100af3d03d8611822912a52e369102ba7e1..1d3c562742c9718361823c330ade8dca47c6a9e7 100755 GIT binary patch delta 24966 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 BR9^r9 delta 25095 zcmeIad3;UR_cwm_$sFNcWRe6I7eR36c}gVa5L03nbEqLmP*Xw@(-n}R+v-y({8cmw={q595`e?aXJm(wCalQ+AE|PE@SHg3}HXktm@vHXZo`*v= zo#!&ww1_5|^c$k*V~n&B--hS))WmNg&r84I`}*)RRkXeTCUU#HPXlc*B~~ z_4UID-=q`$pn;hjFTK;C5g{LzK9{s4yfd208V==UZRvuBD#?-Y3EX79_N%-Tz9}M! zq|F*D=!1rteD5eas!XC;l!P|rosp%o&>WI5a9{!_ zX8c-Pn-KyoV*v{eVZl@V!1ZNZ36mu;?g-<|j1w8BWSoND3~QW|H3;FxEWCF!33gfyn?hNCK7+21?D~$V?aay^I^k zxOW-17F<_x17pjXa5dv@FfN~QfrG)#W1O6EnT&HVZUW!&YP`K59dkdb+ z*h`;>$NjtemNi26h128+D=DGQh&Xb9mPIrTyb{WD&YwnnPD>&}>BER9=@ze`u;BSi zlu%BiBb&CK@o(V?6q~|^FtDIJJ3A%AcP*+>L`OunPFSfVoby`Ot$`5bod_{!`Y!mk z;M;6zt=64rn3h27>%8U}pyBse)qS0xj~Y45nfzRRUi_sotsfcPaMUNh(BYBJ&%NTq z)EF5}>oti%_ouiu2H=_1Rr#19E?Tvp-dqwx*r48w(=w_svTB4)qmFQGHM@r*jw6g9} zZ{ot|&ueQ%%fs4QRGl?JeSVnOUP>3ov=56N!UpCSckAk!c9)jNbS5%d9n(5ShWNAr zD*_8M{U!=X)Z+&mqZBh{KUT{V%oz%1?-%LUa zo4PQDNzKwoB7M7AWK=pUvj0!+BFmVCV10^_%~(Y*Hfz&1trN?T4Oo;n!zXTu@4wP= zG^Y7r{WVgTc4BIpIFGLj4Jk~N2d319`KBar&Vlj}XK#6+_*V?iJ(7&{T_aRJvy+(1YPidq@U^MO`l!Q`IYmm$Y10*bvf#{ z0KI_6js>$p6LLQ$Z6}AMra2b|s-F%>6WiBv-cIR?riHA?l1oztq=7_=Z@62{2B1UU z0(nSamS164pL_mJBvF?`8dmT$E5La{{2GIdoQga-p~O&6iE${Au9+4_{adDybEP9& zHX&peo!cs@MI{@k!#}Wr3hbKqQaUR^8NuX--Dd;cZ6p?lI{) z;u_*7a~bI!99%{23iKzZa&TMOgsjMA-7Ebk_!fdC2s-P#=WF^;oR>XZ<;kQPnTS39 z5#Oex+J@)Ucp{5BAu{@($mbrhtTV*E|A@I^?)sE4@q^ocmk{U?7bzhA>TfYj+hM6E zCR2%+BY(#n4)usDm64F|fE+3_is}5hx*xsYwrfz-BNpQ;en!o)mYf~m)z-SB2RZMj zW)y4i=%oOreZJzx7nsZ0fq5_a1r3~oLNL1BAJ^6vlxO+ny(HPm83wFf8S(*akgmfv zc4ypr#w};uD#o2-+!AnkCqhLNEHj?|Bd^9U>rq|}pY7vDoo;>tsLP?gI+66E{ngz_I^C#lL2UGhx&vuMMRfwXNIPgWWFt-2gpvHx*%}kiOLe9D zb<=$K$Aq>t8Ob3!+%z<0!vvV@@|SrvL35ha$_t9RIk++&>hO6Pb2C0K^JRb4<)2R| zdL28Wk3X7k~#xXw6%@<9I=d$K6epd1t=&Z%hDyM?Jw)k1~4A8NQpDD6H zhb?}Vk_|cl@r?Fb{ET}Yv2lBxD5DUx6`p?+Geno(3Zvjmh?m{C+Xb3Z65T+Jvd zoLLImD+euP3~F3-5EM0*ehi8lr#?_2QFMgJL7!(y&d;*FJJFbBKe^i+D zDyxvYM^PbnkD@~E9v#GL#JUtUa(8L3|KDBsUwV+rZJl#ix$5$Yq!LzeMbZIQZbecV zE4Cu(2rINAshpKrk#vHMVnxy^Hi#8T=a^1ZBvrDZt4O-SMzSL58XLHZq#JA;E0U_% zFjpkqW}{ezN8N07 z54y&RB+C*GkiFE><+Z@QW3UKvlIGOWC56^@iRM$XX-wj9xi|^(1@f4@@~XU=W|C!Z z!Htr9oEtJ0DlIRl8ROurm2`9Bcd+pDlDZl^y3sF)7z#%d|t1Z+1(e7?OO2 zn}tqD@>{zT(3&JQnL*>a8UtAavI4ACrBk~uB4i)E-z}Y0rcd`yj4bLto!Co%?Y@Pu z(CVIYGLM$_GzR64WL7am45Uwb&LSE*saH>y;9##fe<`y|mGqZhNra;vd+#PE>DRp% zvDma^6=_UYCfmqBdOEpv<7uyP+&vZ6&T%PNxHW0wi_4VsY0<_s(QR_s`t9S#afnl- ziD8$S5H5(MK<3YJ;z8QIPqXH_jj(2ka)nd6VxTW5e(g05k0=q;BYuBLAf+S>e+tMGHN(o872G19@!?C0R#295w<_H}R^9i19M zGgE!(+|)Lt8GR@9M^Z)e(h_;u=k#=1tH3IXMqd=)qL0&D{KLicgTaQ7ZUSVfzJ4_l=(D3-7OCn^S$8*_!&iKF;{?5oYx0hV zic@Lkm=+|1zBy)SM9HUrtH@t$e2DWha#%@y#%?1!>3d`UAS3BJ<4&NcapMo*Z<7ff zA@4R}E@?{3C)oKvPn430CW5(T$xxDy=(LP?$tv1#QYl`R!_PN5OYZ;H- zUE{kE!#d~)1gNv~>}04!ir9Ioy9v;iVNR*@tkXZkJ0lKG>KgX)xM$>@$u;V7PiNmd zPNkEdlfcsYuZe^-r%$I0Az#pxsbh)0^uSbs1f5&rp8Ok@(1FvpvINu9NMG6~(?XU| zXJ-4LZqqn!ML-1?Odn>2)1xy&$Ps!obF8W81SWhz5msI(i+McrX}w0R6tv8>v!dY&&&Pl+Z;pT96U6ct(42iJqM?ra^i+%j!LJDx#NA^GsR&euEJR z$Bcvo13Yt%f5!0{Uz@DZ_iFt`7dyALxHitT;L>dB*(!$1a&QTaQO=z+_XgwZa#XZF=VTk z(5Tr7on$LuISc!cmHu7x%d?+#cnH%X!;ruwmpNxS`ZL$OHf%WCfAp5e(Ur5K<5-Fm zXjUjTCgWHHlnib9X1H9QYv8gYoXLU5&}t@^(=TU-<~)N_!`!Fb1*Ep6q~I=sdCz#s zlABDvbTyJ5W3CRfU0L-IX9$!OyavW&kz`m#B?ZG+cxSxHaKiOp%^oE?bL zLJFQ{pK?}WN0hU_w)RdjMiEU9DL5_3UkhG5bR5!^;4+?LI=Ht^PqCqe5+TzVOn@=w zlal;N>@f*CTAqSG(iCS8Ur0DI8+ zmHScWSw<8oV#9{+r|w8t)&b5;R(lhxn$w?_jA)xI$-j&?qY-GpNoOA0mY_C9ln^qY zw$ik*Cf3Xum|6^nc_^5$oA*<)zs zf`0wdzGXG>O-UV4J5b&|?}UsEQXv*Bq^FY)Qdxe;S`NpzD!quQXD_8d+CkXBWpI*1icVmTv)JwOJV`F8GZtme~!_2U4-~ zQ5KNokEDeQl%D*rVNrMIf6HU_YIdBbnbOnfFd2Hp5>E?rBXSxKLoJT7i6hBh&N{;Pcm~C+D(PEYlb3LLx6P+2%YzYc$n(Q_P1x;ZUjzMj? zy1twGx%_KP4ygxA{wM?DkeUXEeJ)b2rUxJ1CM_6=(S&v;1xZ~aVABEv&KG9K( zJk&tCGFYtV-Z&!mj9C7Or}KY%Ge;?LkL@I+bN78Zb>s}x&bs=)b^X7ZB`NpbKp3`d2vD!CVFg6v@ZkIKO7| zrxSL5&QqAC%yKPZ{p~i?D5`0mp&`aSGCMM_hGaL+wZ~>RfKE@S&3%_8Lku*Kv0PRY zmLfFQ-VPnx#c{Y6M>Z3JNfC?05l;*)T&(UCNwV!LCArUnvs?UKL{Od~T#_GFQ(JqC zovi;|Me!c}b#Zh+np>}SQ|Xe{Ef)Ejvdw=#=!XZh<2>5uNi~+HE|IBLGmR-Yoh5T? zO?DHHcDpxjSIw8QgJ2unySG!v;Oe`}qt72i(T|sOA`be~lDMYB*E%?7QjKxp}0K^peHo9HapNcs0Q&p>8!j?;q^qfH$2NZ zBGh>SXB`7-v!&t$>dG4wD#fGBDX8(4<`{IdSfYtiTnAS}?sYV8;d34%+&9$u)c|qa zF4Pj@QMSSUr*-5WAxWIS}Fh9&ZJPp0O)yio`K8` zug!iAfBdYdzyp{K!$!J~yWnOs;cGOZD4A@hMMcWcUhZcl1#vtSD9zV-w!gTXUM)%p zeX`9nDqo=|yb&teVNE`q#ga8)M4%_vBu4PwL_ae1>xQSDDWUyE3vKb{e0k=(?ph6E z4`1jn?nBVo*Y|MsW(VwSDwMr8qnMVz*{WANPr?S?gp(0Om2n(f?ymHNqLjBC+*|KB zI5jBa2LoNUIJgf%w}86i5TEr9?L;?3blvJMc!ASDul#vlP5n7Dv7eT0rQgv>zDxUH z&vpE*=Ct$rP_v{t_hYexyX!^HEBqVaS$Kz+e&mf~@BSqb@b7?U;e%d!%p1q#r-9w? zI=B)ql3w8lfoI{@yfhn>rDO6OpziRKQ5ZPgrVdCtr9f41=}55 zo)-zP@D}ha9P6bjZyb~N-(K2t15fz!O>~CPm@nE%$G$a$m-e7H1(j~dP6wCnMe|qq zCg54v&r2oVI41ABleXEo4(Aw0HZBdx+6}8VA`qjRzMJ;h)Pa=Jd7Bm!C4Ii>b!o&V z=-Ggnf=gN9&c1e2hV|bFQ!;1`opHTA_1V&^eNjBl$Gb@}F<_j_G7(BW%4CPi zZ4OS7Sp5m3h$*(wxm#>}?ju^ZC4pBY(dSzx*6$&>)!Ui${4gY$@3aiaMa2%~?xt_O zV+zk@O>;Z5x10f8%!5N_es(zbJ$mOID-RM|+<|;U2NtKnz1v%?3hT3))qfW1U(v-= z`Lp5~`g?JYprh-tmq-dcTwI#8HG%|hS?396mX%I;7uG1B&e=8?FUKmk+3Me?1V;a{ zGpYJ8qNBHm@I3cAZMU-nJI6`gxh#w=%aZ(qXl-E<7LJs{LAS+EN+0da<%v)_YxiUl z@)7Ehx+0(!?|v<%clKBbxkB6SRq`pH(xH3DG?YDba0A4=Q2bUy5fz&oFvHRDVz7f9ptN z_q8Fv(!Trdk$0(izmA-xGxxtnM$zy0hu1qb*WJx9h#hG0zA(CMeqOq5AC{#xcFTH&i|;J-=*dMKe?=aeN%m9cp;Z1}ENybAQ)B0# zKq$DR;M=UG&U$bVBE&;fe%KMr`YX+er!UfJhntgkN>?9VO^AXvJ+hk5I88q|65W2# zX$LpLi@u%w)E#W9{?4e*v1&R4>(${D}r3>|v3X>i`_1Pg@pu;V;kd~`^}%pM%qZ?ezf8tgn* zbdwb(KVOj(DaO!;N8^Z{HaoTr%jsvwit%@B`4BihpO&YEL{7sf%!z@nG?+$Z$Ca(! zWAk%1qMl3WzT|RQys1ct#M@ZQ!)=TE>AIeHOKi%`}Dm*Ke)8sFj zHonya52vy;soq3Ybm12*$y8eWg@P=gUw&Z^3BmiL6-mzv=gY<8H0Go_FcbpkWpOD@ zJNcBCOrw1((%Cv(5fP=8VY8a_7{}Di0NiWq9O(-!bv72`=*@~I5 zCX)B)qO%{MbK}mHySsQ?!%t9eXR?$zEK=5Gf6+1LhvL1|r{`b8Tg`SC;z$}zy>P{C zM8x_TY;w7~7DrPTjWL1g5Tr6|-?9v&!WH%kE%;WFc*+?hE~G^lo3v<*C+;N~p!LOsxgFKG8mO%?Ceb2rRcjc3m~~Cb@mE{Se#1-UF{gr{^Q!(k?L~ym1p-8k+oJl)W#lt*It!hTr&{b8f z`hWKs4t;hq|F(-S9&z^a74PnW2x}*ow@}Ju{Q{A*hg6iGMLSL*iFgL_NbPilyN{wI z`IC_r16w;gq*f=MqvU2YG)i_etX{ymx@V?R$4xVeTyRr?L;4SH%45!^x$B7iAj>~g zG!I5v<|e0zx%9zJSqsIN%t=PRZZ|pi68a~m%AF?fL?n#W546)QIcZM^+|p|A{R$87 zK8!Ko_rSsR1J!~K1GWKWfC6cffPTO=;356=*5JVB)$Z;)N1Of_8RJT=t*r=P>X4Tc z!exa)N5!!``sSjznfCj!2~MD2`>}P{ee6u`&BgQ)ADsa=jd3E~@uQqvre}VXhrh%i zJG=T;u#CL3EJVCReQz5&Zb5OrKol?@D8cASLE8WdU=&~iCIeeaC*6LZ@FBm`@So)* zftvBxO4EOiX?Ft3;{UsY+XZ?Qs0-Io7RTh3bjQy#f`&hKH_`H#Hvgrt**?S_01gA? zz)9d7a0!TgOwat%hxdI#qr{;}d-2>0;3ME5@Ck4nr~u9bERNwa@D1<-@Dp$kVDg8+ zAM}vew3p%!2kQstm*Qq@mhRb%BLlOI9)XhyIy$?u%QkHw%6r|yX9pqWOcsGN9K791 z_05}S;j;qNr^N-d#hplg_#f1KXHL*^WDB#A`3L>v&QGb6pP*r0%m%Fs*HIS7d?r0ez?2loMR7&rr52kruY0>RH5 z+)7{__$bi!fC=ac3ga>%w)kPX0Un>0vLA$GD8@9<|0*$Kj76aVI1D z(Xarw9sI>a^^fEo<1KaDjJiEWuR!rgA|^^N8CD^iC_@70EEy(txTQ4qcV7ZC)$y^O zzjlUpdK^s`Kh6p~LE_nXAE7TEclIknU=LM3Swbe!15Z9`c|QQJ#=k}MIWX*45!b^8 zb@R9$1u#(JhSGwkjoEwM(v5#q6Y?2#KC95V59g$Le@)D)hx5bD3e=(I9xe>HkKyV& zyAFb%?4LIm+SgwEHQv34jS|<<<$n(Jc)H)J@I)WEIDp>$v%fXkFP`Ik;<;ylANan& zaNulYB<@1L5M!LBW2RMXf0>c?l6(sO^!@%Ku4JpY-`+)tG+ z`e5SczG$Il7ag+Y*c`3Mu7vmgW?|Af=S6HrDn-)8>+5Itm!w^~*H|L;yFDd=+xocl z%8SE3q?7OlA=@K{e1Pg+Q`fE-aqV71b`pV(;lyo1Po8MWQ~|r0*`$r|2T!bIu%PuJ z6{JXb;X@+HL|3>k>4JBK!cadlhExlm`jMnY>?M3wC~iA28p7^p2%-MO!e^Ga`umer z|6U;@h1x)JH8KTuM*OiA>d^q6z@FBOfdZ)M==Z~2d@#YmS9%0S@PatCCE_lKKeu9= zPGLzsvXH#JK7?E($wFlancDP+IK)@uJu1#AsqWs3oFA)+BU zLkz;LhU8Rpb|+%O3gS%g#h#B{&&adJ;FcNQa`c<*cQ{r!-H0fN!u4k(GSx?#Zh_s6 z_jP+?@$klkQ{kkkur{3F9oc`0ikDWR5C8Q*lL+!snu|pNQnpdAhz~6HW|J66VI+09ac@$|% zYJ{CpL`KSm3WORl(*o}U>T#hFdisLcO?Vnbw0y%*p<^^2x+x5gCg!#~mLO8%>=7b% zU@8DkDz@-)p<)E%0uIX_3P+#EAiI8zv14i*DM2I(>LC}mcq8SAY~+qK zN%D?6#Bq50fIL`tJ2MrC{4olG3*vAz$SFC@wB6amAX>eT8xXax5zE^caF~spGcyjN zRi20Z*h6*lSje+H@&}BdW>X>R=YCoUZAzArt-|J}BsPcDaYekt>Er2;2uXg(xeUm0}Qom!do$Pow6>A(#ljJIK z%{Y|MEhKNQR5~-nZ9UP@5O&;w8`HhGI}TapMSP-|(J7EOIqf5+hHR3TbMxg$Tk^HTi^e5cX@x+vEdRik2jj zhP!YCu%fFkw(i)tCkKjyg&jKbf?OB2>B-2Dvy0HMK~>J=b7H!yzJc^7WTB95BvW{9 zp>V;7d~Uj?n8@b@Ylp%@=8*BOT^0-&+2opOBcXhXB{`lmE)-ec-4>hla(5G639)XP zdk;E@tuzjxnnjJ0V!fEYm~C!%W{S`-0al@xph_UI!&>%4 z33yq{2IIWA4=+<#32&L;!Q`P5ta=q1MWG89H3yxk4cx4Wx# zchZuCr)0aYw!)dszRkwHHXFCPON0?U$fj5Cgm#5<6Ej2z>PbG}{S87{PcoeB62f{B z+$IvrdXW!7CiW(+TW?B@=k|MX5|rWkD`0Uag?+tAM>5j&LvIp7@Z|kuvXsnq&FVv% zvmotDaGE4&Qi#kmx5j?=5}uAs{MI!lgz?g?!WdJZ5htp_}zRi0cb z-AM+IiswcF6M(5e7BC-J0;~Xv00DUH+C6||vnDnlMDod7!uCOAOC#@>Heqr26oy@J z5Wf)yrjncf=TMT96K+0&-H}Wp;pCiab{gsJiOWIf32i2k z(f*HLk?)&C!hD%Pi0?-tgqxE{9{f?)gvsPHLegFBrjX%2@U3RNPGVf|PA4hsU77GA zo5+0w%1}_u4ATAY_{CXdUR^w^hM=5J;#~b^ljca`LKf>^jddZmFN;{b=szOjb4icC zGkq`bpG@U}fhaVA-P%-MZYHG6C-q(P3SfWgYIte+|EOW_m1K}Fnj~ynO*Wu3%Nyiv z-aq{^Ts~;p8ZwuVC&FL~KWVw}1tkNB#?@pkfk%u-TCO7-aq2D{U55$%z3{_20?Q&q zttZV$sLQyXY3X}HSAmQrmxVn7k&|Y^MS-;G9EqDD?B;|2oT0cn+8ZIvlSC$r_wBcW zoz~;XKBYGMN`L2|`xsaG2GYL4maWj{r0NxeeeW$6*9gNmkUnAj?~o-|7d({|!2hdt zuYH|_V;jh6rEW(&7w?4vv@TpnSsddTwrr2*?h1$ALd(&r!5iUAR|@Ml!hq|AlN-rQ za$7KNA_it7H<5`v`BAw3Hp%8QKN9+FAv&TJmTw^m!S1Wh=O%||R0~(O5C{4^>>Xl; zXD#%9hm35=q9p|rP)&9jhP{#JvQ+ri;!;*j28+w66fV6(e#c`ci^&M~SnI7MQ|@-y zJF|Nh$#@j6&fT7SGbXTj1W0*kD>*0lZ6mqxDgg$ff{xYdb^wvC#W{vRl}3gbZ_~>?QRHIp!Mq z0eXxNTp+CfkW7b9;QtX(d-d(5VBd$Uacx%U8x!q8P5Ao@NpvtHJ+`bUA`(^FDciA0}w>{Sp z-1kb?-_xq2UDQ(=Sf#mA&?z2UgH z=s64-DKvMH_Czi8bU|yvgyk-h*lyS7@mw^LFq{Wp7p|jq@*3fZi@any_oNJS{HCz# z5V4{DXAhCly!5ot=`iNZVb_4e7#UbU=O<(w6F>Zf9Ppp}p94Kt`1uIg-}v!@m$ikx z<=t@=theXJM1t`Cr&wtQxP~4jUy#OA=eZLkB0+bS;G+16peiTtce;265d-BiJe??B z!lnyRz3!tUa4i_u-#jnBCv%6nE3geJq26(_q510}NH!t_UkFJ?fy2ck+-Q>&)c9~5 zWb=j3j+61Y+$*&E3|e(wDE^F0k+6+=Rs?SJ;!`9av853GIay)zysev!p>?WpX_H+x zYQzFveWCIx>{VXD#~AinT!Fgt85@6G{&SC&vwI{OaO-ojXMp@F9pdL z*jS$wzW#!Ip_fie;M7kg4HM-u+#F5kq`03I>nDSh$rO-{<794`!Ygwi-XUB*NfLtC zGRkiJTy!<7AYa2lc0D~sh6RzwuKt&Zk6Ve;E@L<35|&;jv1GOI(Pi>yNC?YlSo!ag z!G1Nu!7F4WA2`hwc9l$OKy0p@A4wJ=yIqfOlMe`AZ;)%-&!iJizI9y^$qZh4r|-+! z4!9?TVT{3*!J)1J_sIK%*o4~qSX6fj*$+rB(pxzGfHc;wf>PmL-W2g-*h~1N(tEL! zWp0<*trJnbn9vsqEE&r^DKo?!VM5TahTwuN`mqm zp=t7htVY7I=VbrzUR|KrxPgfFU?POF+p4%Ncl=r2Gxv*)!VO6N&qk#FYNYn}zV{f8 zY)&BBV*oxw)V&_=q+L9c65;#{5*Z<|h-NqqjjB5hZ3wq^tML2;07CLq8VdPQQ(@Y&nqRZ*WW53X@;x zX5F7sEO93|*py$+j)8U(eh68(p64yZAy|37CG&(v^E|#WC=yor@V}8&!UA8u88$DQ zeEA-v{==XIt{;$7FM%r(9{TYSsU3o$`(CsLtqa#t7RPvoMBptiQeFxFr+iGXYotH# zN1Ciqp_gH?9lkhT!F0qexOMn@sKm7(fS=2g65&Y@|Dt6u9081()alP|ZRRm6!Fev^ zdB3Wt6hiCqi*O7ltgXk7Av=XX>hb!J20Pr^n>s-B9WIzcctgE2+v_Cd!om=KEZHmE z4B`8Q1Q)-=H;*VHQmhqh_4z6FRD0a229vg2I9Q(_>v_YE7uIp@P-W2VjGh(iFBX&y z_=7=NUcG%O{MLXM$#~(KgxA;Wh>Anspp>nIC@Fs;c!4*W|6oCs^3QQ#@>4^8U`THn zlnY;4;_TNTBsJn&kZ@sQBfcHEFRW?Ahm$9+U5)rq(*At21kT*t0}*^(xQ?5cK1wS)n;+rfst1)6$x%Rc-!$|Ofy3)G}l`Z+l zO?Iuv^a{s%C53I$h<8q40MKV*uIsy2{A!=zeT^Vst6Q0n-IkY=S;EG){4hRXiR+KH z{3ita<sTf1HS(VaT|_WD_M48?!dw%ts>`2ErC0KYP4MP_+Qgel znc!!JMJN{%%)Aw&lWT^sSU6(lTj3n9%FKrcWx7inQh%;cYv$Vo&vgd}`<~Bqb++*F zBxhF+&m9G>1J%G+`S@fSkQVTq954U_fec^)@FuVe_zYmb$XuR_16l&tyt3hWp1388 zd9Evv0kB_xuRImuaPYRpd=9r454wL4WO?~>OL=ZTumSiPxP^?L1L5Eo0Scfe&~*vV z{R;XN7zeQ5ddO}gpS_@mfm6UGU^y@pNJrs1l$8MJmY~IQ2viqOHf#LUNn@u^ znLZ8wZHF+i3xCz+NaW>wJ#W(KGhYvO<#gqz@{MPW&l)vpYUcErS(Bzs9EF@_ajtva z`KBRj6uv^>AU+?9Q{f=KRSr8}FUGNY2`KwQk=>+bpG_V>n0+@{2FgC1JOawToGb@r zpH7|tWj-SNj*dBj?8k0fpF@~^B3a2OzMs6pXkI*b4OEIRC~ttW4=Srb@eO4TcbhRn zJT?GGh|ehRgR<`^t3lZpv5!GB--+jHK-uRF&q3Lju-sTw=tG<*fwHw(%EF+LER0oI z#=@X-M)$>Yu}qF7I*x@wH7s136VF+|urFZ~LD}xBHz@lOHU*UJsRo0xFJaR`*@fy1 zPbPJh~n<_Y%4uv>ddY#a}^JgR)O<&mn`9hy;!u`V=)u;MmH?MJI4{=GM=PXZ@-_(^TTCk3Vz^njeFDc;iFVSs1diGH>P`vV5zul)0(SzmScSx( zRhk6u1`E5crty^I#0*Q|VgUz`32X-T0_8v@a2t3G1P)K&B7r!-0i*!wKo+nT*bbBd z=YZRQ?+By^6hL=iFpvS{1I0iYP&pzYhr18vIS@J$6#-I!DZm0?6;KS60hNFV_>M~8 zVgLn@2&4mZfmJ{;Py!qQDuF8CF%XiDyn%Ee6UYZP0DIHXvT`t$z-{0$;5!;M2P{Ae zkPc)5`M?IC47d%{03pzcSRfG?2jl`9fVRUpj;v|XShzBj56wA;flk3dSAtev#T)|7 z{2FrzRQ3(#4rs}BOc_we4NMsp{ti=x#s7dQ!or{&#;y8hJm<^C??+4((3GFzxe!q9 zmv}A|v_y>OVnEaHVyb{j@5fK(V!@O@z+3^%{4JhSfN~EpXFw}KEuhuE$8!!A|1_TK z4q9A;sl()dV(NgFzli4sf~Ig7Oi<1@fg2859EhfaR>Pg&<@$0M*1Ryi%~IutBd4w-|==CTsybD6B}KW6GQ-ct+qA2j(Aq?zPSqhd({7xC`i@XFLo76aKT zPr6{1nT82>2_4gU!T&W&0=LK_oJr@SloERa*9xfnZSwZM{~Vsf4upEVv5%?X!|!y~Dla56ks zIS_OV z5M-W;%uu*&EHY~eSzi=@iaI(Y9gv~`1u|8HD*~zknHupxc{;)X>WMqg+W&(}Tscirw&fi{2|NCAccQ-IfjWq<&@4SWQY1788RfX9IUJf4dH+5kC5{OJLV1SSFVfF(d7 zunyP;lmMRs=Ya14{7*kzHNekDMSvziTR;ya0x7@0{9B}bv~cK z{Q>4B&}ad?F~9_L1%?4LfLvfbumd;%oB*x@Rlsk+Q&-1ve1(4wnnHXO3;ujF?MvgOEcgC|{%yX?CVE)92AghFI?kloBkPU~ddz9RcLUwHHyANBt> z5dU{K5P{G!_XfhXW-31_aOrG*>1>~+vwc6F?U$KEVqG&n@oP+Sf^DDL&f6~A9@yI3 zsoiDg6nJ+H^$AcUD<D!x)|QGTHORcTXAR;^PVRQ;~{L-j&M)B)<|>P~8{x~F=W z`gL`lx={V5`YrV~^)B^(wM%_mU7^0D{#yOL`i}Zn^%FIx@zaE8A~Z3YR+>&4wZ^1L z()85y(+tnijMKcPnXQ?xS)$ph*{vzpT-JQ2`Ark3jn-Y_D}3+p#%TOaD1DmTB9mcJy!Xu)729+J2ZPVhcu^9iCY?9 zZIJd0?HTPi+UME^x=@`%m!cb^%h0XRt=7Gx`$6|m_lItRK3iX;U#s7s->fgzZ`beA z@70&+59q(wKhO)67yLqn21otc4Z8W`W+GE;pI&AvPbjEba^oPmE9Aa*4jxx6}$C^8vb!MwM z(cH`2-#o;eZk}kKX3jP*Fz1<9ny;FFHs3c-v`n$gvy8AVwo>b9>ysR7fK6xXZkuCU zVcTarZmY1#>}~Cx>{|O&`)vD4dy)Mf>yi|FZwiv8IHQPF+Lc|Ey_6%B?Nphn`KqPp zrOm4MRAK5E^&EA9+Npl74$(By*ff1K12xYzaay&ui?)Y0R43Q9*QM$v=%(l_`mu&J zhV_O{#vGe5(dcJVn?E+6H@C;ABv|@e23u;aC@me16^K(2r`)34rrfXmT6sfxPZ^<# zQN^khDx0de>NQkBK=Bo-bE+EEa}}rdRR^l4s%N4if?B1SqdBYnMa${>>ORsP*VX8P z^|SPQ^tben^fmg`hW$oYj`0h0`U%rh>kI2!wqjcvYi%Z$W01zGDAg&|Mb$mcGObEC zN;gi|S|6t$t)H&{QXg(;V=$U*rexE3Q?==-X^y$T>@@#{qZPTOo#nChI~y{{<+y<$ zzKX_*WvUIRX0d9!YL{xSszh}Fnsr1~uF5%qB2?

dWf$8mf!cZ_)QPEHn9=lgvZS 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 I7xDG~53SV