From 7805c35cd9fd900c0b39c25a483fdb04f1aead7d Mon Sep 17 00:00:00 2001 From: fanasina Date: Sat, 26 Aug 2023 22:22:07 +0200 Subject: [PATCH] clean up and add Makefile --- Makefile | 52 ++++ compile.sh | 2 +- src/test_t/is_good.c => is_good.c | 4 +- isgood | Bin 182856 -> 182856 bytes launch_is_good | Bin 0 -> 182856 bytes src/Makefile | 52 ++++ src/coordinate/coordinate.h | 2 +- src/dimension/dimension.cpp | 8 +- src/is_good.c | 157 +++++++++++ src/launch_is_good | Bin 0 -> 182856 bytes src/permutation_t/permutation_t.c | 2 +- src/permutation_t/permutation_t.h | 4 +- src/permutation_t/permutation_t.o | Bin 0 -> 19768 bytes src/set_theoric_t/set_theoric_t.c | 2 +- src/set_theoric_t/set_theoric_t.h | 2 +- src/set_theoric_t/set_theoric_t.o | Bin 0 -> 3128 bytes src/tensor/tens0neD/tens0neD.cpp | 8 +- src/tensor/tens0neD/tens0neD.h | 12 +- src/tensor/tensCuda/d_tensCuda.h | 4 +- src/tensor/tensCuda/tensCuda.cu | 6 +- src/tensor/tensCuda/tensCuda.h | 10 +- src/test_t/bk000_test_t.c | 450 ------------------------------ src/test_t/test_t.c | 2 +- src/test_t/test_t.c.bk | 129 --------- src/test_t/test_t.h | 2 +- src/test_t/test_t.h.bk | 55 ---- src/test_t/test_t.o | Bin 0 -> 163576 bytes src/tools_t/tools_t.c | 2 +- src/tools_t/tools_t.o | Bin 0 -> 22104 bytes 29 files changed, 297 insertions(+), 670 deletions(-) create mode 100644 Makefile rename src/test_t/is_good.c => is_good.c (97%) create mode 100644 launch_is_good create mode 100644 src/Makefile create mode 100644 src/is_good.c create mode 100644 src/launch_is_good create mode 100644 src/permutation_t/permutation_t.o create mode 100644 src/set_theoric_t/set_theoric_t.o delete mode 100644 src/test_t/bk000_test_t.c delete mode 100644 src/test_t/test_t.c.bk delete mode 100644 src/test_t/test_t.h.bk create mode 100644 src/test_t/test_t.o create mode 100644 src/tools_t/tools_t.o diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..79eb11c --- /dev/null +++ b/Makefile @@ -0,0 +1,52 @@ + +NAME_TEST=is_good +CC=gcc +LDFLAGS=-lpthread +ROOT_DIR=$(shell pwd) +INCLUDE_DIR=$(ROOT_DIR)/src +CFLAGS=-I$(INCLUDE_DIR) +SRC_DIR=$(ROOT_DIR)/src +SRC=$(wildcard */*/*.c) +OBJ=$(SRC:.c=.o) +#HEADS=$(OBJS:.o=.h) +TEST_DIR=$(ROOT_DIR) +EXECSRC=$(TEST_DIR)/$(NAME_TEST).c +EXEC=$(ROOT_DIR)/launch_$(NAME_TEST) +PERMSRC=$(wildcard */perm*/*perm*.c) +PERMSRC_O=$(PERMSRC:.c=.o) +SETTSRC=$(wildcard */set*/set*.c) +SETTSRC_O=$(SETTSRC:.c=.o) +TOOLSRC=$(wildcard */too*/tool*.c) +TOOLSRC_O=$(TOOLSRC:.c=.o) +TESTSRC=$(wildcard */test*/test*.c) +TESTSRC_O=$(TESTSRC:.c=.o) + + +all: $(EXEC) + +$(EXEC): $(EXECSRC) $(OBJ) + $(CC) -o $@ $^ -I$(INCLUDE_DIR) $(LDFLAGS) + + +$(TESTSRC_O): $(TESTSRC) $(TOOLSRC_O) + $(CC) -o $@ -c $< $(CFLAGS) + +$(PERMSRC_O): $(PERMSRC) $(SETTSRC_O) + $(CC) -o $@ -c $< $(CFLAGS) + +$(SETTSRC_O) : $(SETTSRC) $(TOOLSRC_O) + $(CC) -o $@ -c $< $(CFLAGS) + +$(TOOLSRC_O): $(TOOLSRC) + $(CC) -o $@ -c $< $(CFLAGS) + +.PHONY: clean mrproper + +clean: + rm -f $(OBJS) + +mrproper: clean + rm -f $(EXEC) + +run: $(EXEC) + $(EXEC) -p diff --git a/compile.sh b/compile.sh index 82857b7..787ce43 100644 --- a/compile.sh +++ b/compile.sh @@ -1,4 +1,4 @@ #!/bin/bash gcc src/test_t/is_good.c src/test_t/test_t.c src/tools_t/tools_t.c \ src/permutation_t/permutation_t.c src/set_theoric_t/set_theoric_t.c \ - -I. -o isgood && ./isgood -h -p + -I./src -o isgood && ./isgood -h -p diff --git a/src/test_t/is_good.c b/is_good.c similarity index 97% rename from src/test_t/is_good.c rename to is_good.c index aba5139..883ef75 100644 --- a/src/test_t/is_good.c +++ b/is_good.c @@ -9,9 +9,9 @@ #include #endif -#include "src/test_t/test_t.h" +#include "test_t/test_t.h" -#include "src/permutation_t/permutation_t.h" +#include "permutation_t/permutation_t.h" TEST(size_permutation2){ PRINTF("another size_permutation2 again\n"); diff --git a/isgood b/isgood index 7297d95868350db0fc9ec613bfc2168c77015f5a..d680ace88e19a281869b108be42672db35253f17 100644 GIT binary patch delta 11513 zcmZvhc|gqh|HtS3o<>D#MurCEs7Q&*86h;}Ue=XGjvR?d_-&5OQ7K8~6EE4XbuMe& zJ4mkNs@S!zMQq4s<(pl??rO#Sp6~fgbbS5c@p;{^*ZcGSy!*^dZd#q(v^s~Zn04t> zrV#&14H`C`*Uw(J_lno4;)E&ZOV*xRRxlxd!<;sTHOe9@cFz!DbG$h_VsLL8#_PKz zGeuy+`M^Z|@xVk}+0)wUhFGbicWC{_HT2eN4L^9tEA69KSC5!24eq$e z{#8PC{UhmK$58u)HS{5dQJp?G+0P9#1tiA07>&khcHw7>CrHyruCTv9v${S{Djykc zKemQG(6DsWW~Kf2)2at-lsw0-sIRS|S5A}8kDYCwHnn=d3PYbSeo)%~JgK_jv}6?= zZQs3y-b30H9BzMVVs-!T4UH$JD(gFpuWqO{UOGGFEBm-{)eZBdVIkr6sv7#&h8rR2 zO8cNOa)9d1ex@+3Qa|ad8PWDRqs{us75bx+IyBtAZ-u^apV_~IAvH8rX}|q*b3pe! zWesjmOQK;%GTM9NSz+>CSz&r44Uv{>Cw#Pgy`sW0Kq`_VwYS?;#Mpnd zoHNWy^KMeFiJi%msE-NUD2@pmJL%w|#hPT>s_JN|+u^W!_SLjXTf_0gF-pzS+Eu-A zKpb77d1+l$i{s&Fm}Y)8Ee?lcq}2SVs_J}7`jELq)3chkos@VYOmp6%s;|Ldc`{b1 z@nluij?(5cOEg;*RkbOSdsdjnrJAEB_<~vsFZh@qep$-ZVVD6{A!Sd0Iu=Q(Am? ziTd2{Rg?zFGCxe+ud1?(VMRXT4Ua2aO&esV)SzIAx>Z%BgS5RMOuetLisxp7xWPmeN9TN1>nxW0;en z-|s!O+$u+ke^#QnC%CgA`tutz|pueO-2!U7_2y zkZ#aaJ4j{JLyasY^s}1X<7xx#)v#pNl)BYJ(g12;4`UD7Z4YS*t*DQrUyxRdX1=0V zT1ZDIwgIF&G`S&KYfeQC(b_ON;()lLq}L(t9yMzO&tJ*V2+h2wb&VmtCD$g9bY$Vk z)^gijl;+6pu#Pm#3BCEzJ16uug>E%PnvpcM8PY5w|K^Yq=z4QV2WVdlNZ(O+XGlMh zgA0;gq`fX^rkLVgAvsawmXLbU+m>i8kruT=YbR-d8{(SMeK*7f(6QF=>`VRK(adym z^MEv&PI^FENt@cBmoKTcCwkdJye*_%l-d^3Pc*X~vSiV_cF0mhx4j^}rs>|09H_Ss zOX2k-y5+<2S!X)X9!c9#uMTKtI5~BM6i0W+ zi8MoKmOrHN^xhxR3cA}1(h>^o4QU$%^g+^ey3+^EoT4KEkX}(gJtQr;^hImIw5u;# zOQwbW5cira0}#!07#wa=>SNh>C!;7Hi$+J!a7A#+rf|)(dogE zw$X+m$Rbgzp~!Na_-BxENcs%Ya|#~@>31>?!#=DNN%x1dRIZGq@Xy(O){+K{K#g%! zFao_r(}|JjEsy+0p|>)!8I8#Cw0Si0tjPFs43kvsG}%mGTVEQ{#G6eydJLkOfFX+{Wp!WPqzsZcu7zNzp$Ob*jvn?y6FvGH8FgmR{_ zA;+;BF49V7cW(2k?obJ#$xj-(TF zSSpri&|Ef@+eOmmxojMo{dX?w#paM-1kyL9H4%^s=xPL8$X<|s9ulmlE%VT;Cs{_K zyF&Ur63SJyKavHq9vOc}vH%T^o^G*hENf32V%ZF=l`$6WEu}$mP`04magctYH*rj2 z&J@3jjl#-3T*X503`g#;TdK7hIWN+j)yVQComvg0 zBQ;E9{n^coNr^1Yg59LQld&udXhaGNz9Y!r=L zhXKmz;5tl|MhzuQ6-ZMgDF39>LfTH&X}AO5)9N(D52E5U+<`|lVm+29g?6ro(uep4 zwDTlm=myrewitXXo5#+Q^)>|dq}AIn+&y}+4a(^>c{>Z?+@Er{v+r>WBX_WHZ0E;2 z*b*cU-pMB7Kt8(@$|cn9TS$#5t_krWjVii$M)5R^0N@*y^fTlr*o9%kMa(RjIZ zzJkB4v1jL7UQ%gr$?T4)YJ>5rCiwr7%3kQ;W&sASJj(*JA1TF)#+%t6jDZQN_m`ng zRQ)bc$$DG1b{0W7`n%#IYKd!LqPC?_B{tQWSq@a#sef)ZZ1g(nU63 z{oRFEi_e%W*$9m>RqFUeF1S!Yw8CDBPq0ZH|C$d)Le6nfO3s(4&6IryeDu90d=u;T zH|e!Lm!n0J$I8H@CYrz`tjJcsiRm+NCXt_L9H#x0MB}?%v(`vL9svP|z z(L_mSG_5wd>L1CiUJJ|-7PO!><_SdCu&mTS5-V_6n0@t+=ADADMhNC*UnUn~atre+ zS*FRBgQmo)F_kQXWXopR(nG*}tD?oMZDsQ+lUch=_R;ca z6}kYkt~~6MZmwBZTuJvIv+hOy9qOB~FSv1Pdxw6>5_@ykDnazc==x*-v zh7c1~eXy(W1lz^n;}ABLs=bhtw0%NF^QP?_O2aalBTlF}nasg&GQvuHa1YZj3CGx% zAB=dEO^(w|8P^vJO%=lslR=w9=QEj$t&fmm&o0=EBpWW#+)UO`oiqcwm9f_lDsJZl zYI1@#cA50*h7b)cg zbFMp0h^TuEy32I-1ak<3aDCARSZ<$ynJi^!^V=tOY6~c&8 zj!+-Z6tm(!T>8go-mvhyEm9|{4#KbEk=`Lx33{AOs*RP@Yv|9DY;+^9x0Ry%nHtmM z6i!q%rr=Y|Cwhjg$`z_#&x_&px$~}I>U;=jMT6t^xct1Jd{?>r72%jT_)%cu$l}0+ zt73pDH!zGinQ19EThB0^cO%hxg8r@DnUT*$tAR;%3r(lG zm{IobClB{l)NdR@y|VEBbnpzT?R6GuOtHs4#;&Rs`-gB5X%U-E{#nee-3)V7;>V!& z)q*xu3YuvO^3v1@dKe}K`qX95N@QIkwj-j+3^?$4~+VuwmmR+Gg-I@!Fo)99aPEyLa@-cLWBWzC%ynxe$v za$I~>U3_Korw+GFGDVSlHmlPqKp1fADy9=(c%8%J<5(@htV#*|O$i*W)beY@e<>xK z)o=0B$AeG4<6051@`AczVV+DBWgAmrHuhH=vOUMf^3vdpndew@3)eqG6pGh&LD^!G z^4E51RUs61?eygfb&yP|x;N<1CH8I04zRp}>npgveFaw!D5k;p?ZQS7O}e^GX>ktQ z#L_Yv8usm)R+dJX0~#B~vwKy_9bAY$*7(bs@W<>Mwx8<$ z#zr-t5NKNHT+R|)=%3(MB$oQ1GQT7uS zP{+m3d?1$erotzz0j()!YU=bmv*(YxnG*8Re&qdx^>Dw7hVP!S!nPL&Mic_E!7H`Z zP%m4ybQAe|lkHRH!C!Wz@M6}B@9!!nbLnPE*1Br4zTK)PE9xUBn?)ahP&}ZikP>)#|_TS36$+54tuT<56_@59WzaYY+cmPJBs6QNJtq?`T>B z-k>9Gd(Y}yaxufZ4q|e@dZ*i0Ex8~1cX*baUx=Z7KGp5vBkJ}bkC)7jzwj1Ax8a)h zVp>Q3%117B%ttP@#-~!L2p@ToTa{vw+k027=M1B$x4#ti&bIqh??^kj-qBa6Hx+`Y zx5`V@bD(B#nTpTwl8d(Sl8bULQB=pDwv+1}e$AR{_Oz{9FFm91HO{QMojgC4a^LV5 z8^Z6mk!!s7tW@KHr(9#Zr(EMpPr1f;Pq{|7zcEwOHdSlb!T1hezztIJmX!TB2HWTU zsoGX|d9b{HFxW5%Vz5Y$N<~L_$VDAIz;3t;wN(SvS5Grvn}u9^z)Yi?vJ}rayVVW8Lf3 zX;roCyH*(}t6{bqT|ZS@<0_9>P>vD1L*U#K=l7>u=igGE&;sj&O8A~)>wDISXSvD) z=D){)%U!Bgih%LsfWaRypsn+#lH6G?Io*hoh8FUw{^D$^X=x#L{4r-y)5|6cf4b#E zW0A8w=V#8QIoJ2(D&EoA)WZ5HylK6Enpf@MX$x^6G+e)zm(`7J_Ng`=JI04F_YD}6 z4{Ba%PS57@oTbg=N;%EsJGrl!Jm_N9tk8 zB`T}MUHG^rpDe69b+_bcbzj>#{TsOQxfNbKtj-&jtL?0gsrjQ8(R0=qjs7k1o{(%b zP6QoOjmBkQ9Jm#{3Z4ZUt}_~oz@eZ;D}`bY=mIJwqcH#+3xw3iFWjzLTaZ^Mq9^xVZic&BHY_tIhz&LOxmk|@ygFuVc3dKgy1-uCc zfNeJ-9vlV6fQP}I;2ZD)I4m9UU^Hmqu2B36y13&Lf9*|30L64L1iTK$fL>oC0k|2w z0G5MA;MD&hfd{?_0A0W@HX|Oq4u*i?-yj|=0(XMTw;&$;2P^{9wj#a_>TW}PG%k+d zA^_~V9SOi9Fb15t0|~(TJCOj~1Qvk--y(shLU9>%0i$*y9yEd>;DOzU2RnR+cfLANB~;xM*{F9cmeEn013c1phY`{V$ne~ z0Cqlvc+O0&j)FFB1)bb50;0+~;?caA5!gK*fC|024Dx zJMlh^o4YHa)7z@!c%Qnp^edIhCQ2JiD}|y7)MFYe6s>6FaGXgWXaT_2&!m4p=Z)yl zaBjgK&{3hQ6-Kv*^A^m5%7kYh(tQprC0~II3KIB}q6AziU0?!b3J~QBT%$4p9qC2@ zW5`!Pq9B0B&Zeuwcq7$+92JVSlrAjyC{v)E@&(+eOu(OXBY|1uE3k@!1kO>Ez-3AY zxM~i5A>vMm$QRnFR3;Efx>3L(@)bBkK?3h6NH*e$`@ElWdOHXLXF0v?mY4x3lZwE zLYz)f5ZT|9E-;QV1zu3Tz(^_+C??$(z!35kD4`&MVH73sC#4IFpiF`LlrPYe$^KcrK7bplKejSVw@St>oKPgkdk@5wwJOU1+n+WtHUx8=}66j4)0uhuhu!k}QW>LPt z*Hk8OlXR1S_2esndIIJ6aS_O(bOF>87)1F3bEr(<7t&1z%E?z?It2-&QIvo&BYiS& zR~t`9-YnjZ6=jso;!kVgo)<>)VEk6rYd&wt9#YVJ-jBJ^Hi7!|Y(C$OALUXPz!pY( z7Vvhu(H0yJK3)S%|KqPVj)!^*wW2eX!puIS<_md0ot=0=!@tpHuf-O!*HK!&5V>AZ z`a(GGqC5eADqF~d8x`cqF`LaXCFU6G_cZVS_!+LaNIqZk39K2Veu*6SXwR4Y|FD3~ zqabZ1-zXl;HHEY(itpk!mehL@etTa`5sOfvGi_VMvzRwcT8v@mQ}$vg?@;MtL>7_t z5=eMXm+)Yn)l0dFit(;l%Z+!S!%O(?M(a+?=0J0gD{9GR<&QLPDPN06fPICPJ3;-w z!deABk-gi?P^_pUduLH9ymYtD$@)R&WH-!aqEbY&l8oljJeuJ*&TY$(Gm)MxL(VVG z$U$SxK~L(+IVX|#as*wbNy~XdU1728HNx!G&sO$IqEzAalCqa$A$C#o6@0gD@&(!X z3$rtsZ|OrST!F$bsr5?WEJXm^<^i2p$rs{y^N!&Sxm7L=h~a(lyL4&{5-*}`Xmy3J zY-SV(L>+9GXd?%s8H`iz|>rR(5n216@Q5m$@LA}x4yQtFO?j!DfADYDV4?Li$9 z-@5rwoajMme2Xq3SM~}r4|zu?I}gs#tjAfz7LxY{bRJEUHefsW(J(^w29!spP1$-Q zq@QTpMl9E9^KGlh6xKq{G={EkM20_zrSpc3B%@rfV!yeXpQJiB$tRun)pdL(+biyg zpR=6h0i~v!=CjT29cZ{zZPw95!Q%vfq$5tJ9IY!E!_>Fbsn5qMT(%_&l>la^E_1{gu z8kA~c-D{LGpnkQ7spM5^D}6IH*81Q`qklrVe~V-}EzG)2xxa9?G2SsfWm<}f^@^d! zgf2Ub1M?*B>9N*jLyZ1iKN|gyrQGRZ)-mP&mgWB7bbZ*l+V#zQ$qD+T1Q)S!da-k_ z{iNp63$E?^pnrNfjS5KNE9ZZbVK4@2c z{di-mw6g1sc$bTADNTBbp_fhbSoe7Tv$Hzn>0X*)Asu~vSC5_NPFqN6sbMk zsyxT~nKs(YQeT9HS{Puk6L;;pY%dU==Se4u{A@lc}y8yhHks8KY@c#oJIyIufGUZ(2Ea zQ@YvF1QU%dtL&~NZ9Ea9Nmf<%&XZbZg=jQYyexfN)(sO)%l9gA*-Y}=t*nNvlze)g z=G%9by~`xKoKQ`pDqf59bva8+G>iVN96Vd{JUdTQ@}{!4NXj}Js)?@R4N32OF0KZv zBb~T3iN9-*?tFQdiRF#Qaw;z6o5Tj?N_VftSoW>#>?DO=53#)TSEb18^hej@O)NV- zs^o1YMd!s>?t56txk)n153y`p+3B3VARqag?v;ni2S|!kzaYl4US+3R+ENf=nOayW za%sB#op_Um>N}OZZwiDd&V+m4F{#INYw2>~Sj#BcE55JfBEeFZdm)++w<~2ny`7$U zFVw{J?;9!=-5JFk(tAJbrsc2CNK4)ou=>*E_p6vjDt&*4c}aO?%UN@2%7;8QKOkpX1?8N0*g)BDe0MbnDfu)d|R zI&3*hp|UzGj~%8Pbzx=EBnwy%sjDSa^5~K!yUELbqFoxcg4L!@RuJ{1`qmh9rR~}bi)KRTg%;LkN~jMjhbGvdwYqfQ2Ca3agAI_kh5U5L%caJ)h&)H>wrJ)r zT4e|80Xa8>RfA0J*>e8w2U=~<{>Pe7r~`UyLGK*U+aS8$2r{43q{fh$Lfsu<&891k zur|={Ca~5}m!`0ePy;83qI)Ma^E)kZhV>cQHG|cfN}8dyIW)I9TKkdux*)GM-Eu*m zCmm{m$TrlcC7KyVF0QZ!(ot7fU(xzj=w%YMa6>Q4h_{9%QA%rAM=01GD!b{OJ5;XF z4G&m%X^JN-HGS^IR&v8Cy6(mDnG@}81JQ=mqb-{0Mh@PvX3+s}SnFtcJG6F>EZd_s zE4terGP5bX17tQ(e;-6{q(6Mn%n3Tt5mqJ*?gZ;5d2~iImnf?<%j0hnD76bq=4A=w z(iMy7w6+^$>QhQL$aJF6?y&k&S$9}7D6a>sX*BI~Sj)+`Cqx&~|9YaC9dyta)*sZ{ z4;Ck^BVrX`67n51SqsrEQF7X1g0 zVRt)ylFaC%XE0IYj-J%FucZWJ<}`J?hLC zjV7@9ERHr!KzdX9Faeqw6g&|sQ|QPoi;gGLQ%fey(N*BY~Y<8Rc zA|SAUzK=k!wqzEG?k>{MNH}NGo=B!=t{HD4nXd+yo=ypDG;2(26WCO&l_3G`1ylb; za9YszMX*lMt3^y=mb7Fs8-bPkV=)WDIq16tGM`cM5;zaiePLl!64^YQ8M_jZZbvni zLh~n@u@owk=-5&?YmrS7>%+1$0+ZNkQ$|Tv#i}d^L7}Xz6O?`%uwp?7(j{ zYz>xZ9;K~;vk~#NXyv_W{mui)n{UoJK+7D3U?qBC3lLF?dj}J2*gmwU5K@z?{~3X>Rv1r4*k6l-B02BAc~6nL`538AI_2V>wXr< zUwdY_9blfO<17xT?a!-JOVsZ8e@5L5{~2yLZ9x6PY^FbX*F@Y^n1y{X=o8hJ!kwfp z{k8IF@pO5#uNcks%M;I|kDc{NS|7UfGtjrHpX|S9q92{y zP@_-Q`h^OK8)7yg#)gvAKIO^qYL!_Gkki$TDvZ1fmFL%4xN`mOiY6YnN7GH|_#xIH z)=JLsyQ_43S)VHcuzY@Z#dLGd;j@q5-H2l_z88jZO(jLOo>DKN!bp@da!R<8)FBl{ z0+f;c%E(}Wg>Ij=sfRMWULMv;N>nQWQ8T$AFB(X38O$2rkb5&&1AJ-A@D!*|1sTjN z_UKte`}h?_Y(;4Yk(#J(1e}oPl&p4@UAaX~QL5ZG(&)3O;9F?)y$ksix6kN%RKa)4 z=)0!)>Y`w>+Dxnowj_(f4>Q-;o}wq1yQX0ulGL4z=C_LJZ8Vb=v$fIuMllB(%^AW> zR_l$XN3d*08BIsU+-Wqe6!Vs1#uk|k0j;QOy^lB@Yo9>yUz&8 zgl9rPk(?{nUL#9Z8VHmJv^VKSCUf%k6IMd@tc?)aAw>SG&ZemdS|~Rl4%~2ZKf>(r z71j^v*+l#z3Ad}hmi4sn@A|)xI zy6E*Oaw}p$wDN<9^O55$7LCGN23)oh$l@roX;G+1+^yD^haw>cgv4MPc$C?*NSc0> zxlS`fmU1yUQHlvAu6v zL&BBlhec8Es^I>f*fBQJwr5F&?9p;#emHBB)U7Gv81ssaR$OO=>*;ARSHH6n=P}7A zFwlwy4?c&Lvkm3HP|DvCfk|K7)h7)v(kEUN6PSG!lS%T+6Q4&;5>28beC~(O%5}INqOpjq)x?E&KU5~TRY94lzm!UfiKF;d7#<r;nYeT|{B1 zJ}omC9@kQI8=ZzO^|+0jz^%ub3yY@<$5|_Uca zJN?qa;q7pJ;sgD{Cyf(JmiRr%;%KVKO?02=S7LEu_!H5tKDo{-`2sHHsR)c#CRid` zX&pq3PBMqi6%?*PUsgEuQDJ=*1yu!w>l0-Kvdd!T9?{0!q>rh+s-*4^5uz^?pI0%} zsaoob5HagdeGjRS+RT_5oy}@_UYMwKEN`eX=WnazmWmK#+21B89m~0q)pL7S$=y^T zcV@+0+v>Uh1Xu34cZFO#CAaoV3k`N_zSym7x|_`$?GxoJaj82j-bxqUneeIGpUB}P zYw0~wxUjF~a};m2PT?x)Q6)9DLh4YF>d@6P3om6X$P0wNKxoMegm#5vGGa?++rpH6b-ZYKE?dvGXS6uW zIxzl?KgC_e{o~&AxIsI7jveD6qbhjL{|e8jksm!zxZjA6h6g>rz|L{!;lk66-u=d& z^4CKZ!}Su3Uxp~gmzQCz8LSvdSJ*2yK4bn>)|PQseC1!o4Y=KPc9FmNLNNyY4&!8h z#YngTV_84NIPyOjBl{}G(>!*SJMiu`h%U}W<6z320XPHzurSwlPIE)U1Z-=k9&A1&8EhG;%OqB zzW$RnV*awlYw79fpKQ9_%dYaSKhrOq_e?cQhi~$f-pW--M_=D(p?KW9f1mmBW?d-d z5wqbNyU@-@s6F65tJ^TEOV#ADy_Dn!o#~H+7&qxeaYcCk%BGc%a8uQuc06KV*!g#=n)Yu`B`uaTMJ$Y6rujwe zbDr#@lr!xpmPAV{-{N`hLlHCM>pN1)YgXSBmzY>`EM}c}&yH)~F&CY#qmafsGV!%F zs3wRnfZQV9kv!ipdpcIk8d>FZK#UkL-fbTAp~8P~J)ZjnPuA`JV#n%?Z7)YW6RCsA z@E04vd3$1I*fzPmQwO=c8pGxtD3EiH+WT<=W?70;`?vOTCtHO^^-h+xS32=}f=&js ztK3P~_8&X>r|zS+pPIPUcI{)eGEkAXawG}Mgq9Exc({39Dx&57qTnYVZGtHPT#eQ@M6_#@&CI6{|DW>r+|G{i&F{mr}>6ja)|& zQ@0Tl@5s-2i9$G1*>h&g%R6Gj>xkw zm<6BXt`uAEA&S}aXb-s#&a%LltOeJ4hzaTVTX&^U&Px&LUT(&JYsB3GOI7S(PxSE{{tsjzhgF3OT_Cc|4S>DMk5j*&4gO5F+XP}iY( z<+^oUlnpF;hm&NN^QV&E(}DMRKQU-+8FS+i&6Jr9ZKll3rkOmmznzttU3FF}JSjtk z)lQWw#5-4*S;Pm-%(3aGGTNr{%;p*}volSUnH4ovW@ai5{&P)5NsroDAJ4|*rgHI# zO_e#yQTnEG2Ww{YMpm_&RBqsH6VZUpniIUV?z+aGN-t}SGq5$iWV{jY(pZ#sqaK_) zu#N;Pza!7v`Im0~c=2P45v;88Fe zG+kvd+y^^@rp;BVwV)ID4DiTHIEJl<0C)n72kkdN09*>@fW_c_aLBh1a8;>xfli=) zBl5u$U=aA_cgP2?fN5aZ_s9qDgZII>O~`MBx}Z}mK5X6$0kHWN2!L0>cyQ!a2!JdN z0^nlsKIr)a1l&}r4A2Rjybbx_6EFzeupRlJblA*I*j>;~ofrt@lCzECfy6RjMib&;aPPANk-;Fi7|hARqi2OaoW{ zgnY0;I`Y9R(9{E4bQ276SON_ap?s8mAxt7UOv> z9_)|<0dOUl14f>K0C);CZKG1z<{}>~JBxg<|2gD?X<$6K_&oB#8(z`B55cwQG0g(_f?#?(l-tt&A>5Rmr=NxIWiZ_s!ke%L zR4O7pNH-J+CLe(`@)x*8Q36(!D$tKI1>z}R;5d~E)F9n3z>jG)U_M0&SWv3KEXouxrF?;4Dg}6HG}(?u-2n0#4fCHE8ZFFW6a|z0NvQ&TC{y4z z=rYM08 zlq$d|6X5+9(Q>iB@10eutyC&Tib*#XBV~)J<5;w5N&YbLQa?(d9i<8cQ>K7Dj8(AdaF0o@As>;O@0>cAN|4?(BL-X()eG z1AAT=$pi4)RF9e5hFu{4nY=gC&}IQf#WVSK{0NpZ3uB{b$1Luy^EDOkpH!-W@_&`; zIW7-YDod3UJ;yNXLXNX}Z{7P7;spo3!HiMSrb^Tnikl6s+mt#R!4jPlaHG=MJizwX zb4t!eW6on^&YSlX@ijle|IQ(=IeZ+eLn(8hkxM(~@UO9ej#03Z$tQ{j@DF!seH7ou zOKZ^Qb9rn0gc&{;6`W}ET%N@oC@>n64WyINaOTkSXk=a|^B7n-Ph)t1?)6ipiSp@P zHdh*VqysU0yKU@oWms?QaX}4b_}O`in8%mn6ky+A<+f9wZ?IP050vOO3RDX|Q=)fM z3Zir;PbvQXMzO2L;dpwEY?hbd7|UZB?)f&)hvpnAo)1mEab-svlOEJjGzXAp9Fj69 zFpk^kE*2@$!;DeA>nc%mDMdsT(8)L~ghY-D_;%gE93}WmV=x)F^a2$wK;Z&vu@Klp z;Q%i!pd$8V zdmQ=Cw7wFxolY*rsjz{jC1DL-|3yC~;pj4% z4pF!mp76Wk-)F3_)kYaMr_IYCGKPu;+K^{5lv6VLB=dh6PURjeu-Jd!q|qyIl$lfU z3iSLf=~e<8sLx8ISW?PLr2L$*W2IPxsdOL(W_>!Bf}^I*J*8^-s`j;1suF2dVeLCo z_$r)BzEr#lN_EInLaGP#kuY|Uc1TcY_EJ&!(>N^~2Ss5RJr}_y_-&aF#1-9tHUC~W z?yM5!Z=B@+bV_i?49yx`i`Yc+T#L>_DR3sTsq;pe6%P~s_w%gT^S<7G-}m$Xem|eQpSNePwXf^G?sczw-Fxll zSu^uwVv~k>;^KVHzr4P?d~DS%t37qi8xudxV_xAsUrk>C|Gm~%+Ls@_`SAa`=3V=` z)6kr2L4(VSD|sdOBF43pcKe*G;~}r)<@RrM5q-zG`b?WVKi?|D|KML4`ETU<>(4~^ ze9qO)6TKp4Al7wvE4AZX-8{yoNFU`D8R@;2F@qRQ5dRrJiDK6l!`otb&h@yu>2t15 zJZX;quW90GUn}E1{&TK2uczVJ*9J=SIag}%U+aS@-TsbV3&X2?i^jvg9xkl*ovWkQ z591-z#R`Cw^MRQsMK@*R0j@+KJ89-nMCM z)~ypN5JSJoA%_2GPa`EwX_v!GVk91MW9s?hisWHm1%>!3Tr;Uu>C+Dv+1h<`-&!Zq zoF!!5^AyV}I}>xk|B*|7*<9?j%LP9Axoz`=fKgKb=eeT-Ygt_w0Wc&=D)nx8>5` zAea7+bLn4~OaIYa`d`hZe_t;B*X9zRn{(-3kxLxz%f)`aT#fsZP^k42P>8m?h zSFuxfcL~0T@1gB5h<`)nzdm09T(38;-It%ypqOUMZD2rV?4NmDYD5X>1F2JF`Yu^FB9s>p?_e<%4>ktSJ>fX2iWALK?fbRW# zJ-YVkKe)R92MouhTmK;`z8-_Ri!U(fzKy zJ9X{ZyHk%Y$$flXb@*@-y$GDxIiTI5xg8j+V(qrJD^n&9iy zs7=#O@U;7*$%9k64{Fo&o<9Bib#K$|+3KHAPy1_H z{cRg-e_g9TFhKj0to|y~wZDbc|Lg+oZ)f%QUaS3`t^TrKX@5_v|G4QNVD*2zS@FZH z{)t~}|7fd!(^l=DX!Vaep#4*<{-vgWhSh(>^v|~X%N>q0tKY9K z%74SIetz~k|Bk!*uX8$aJ?rW(@9KBzJZ+bA^*eQ&{S{pOJD*TLS@$(E`evr9UlH0L zcJ=3T**Wg&mwlmm@2snz8j*j-fA%?RmG2dF^<%+D{uOccn=QJ$SHjhQNd)clm2vf7 z>guoH>PG>J{HyHhzbw*=?=!CccvpX2SHDx!_;!-3|8f_;g{$BFIo;0HU(|)~?CR&f z-TBwk)gN>^aUJ05FYf9e=ISru>L2auzsl7=(bZql)j!46f3>TBhO6Jb(Vy+=zs7~1 zR;&Uzt+{i+|^&k)t~O_zuwiq!PS3*tAC5D-;@T|yZ^lWCj$RO;GYQm6M=ss z@J|H(iNHS*_$LDYMBtwY{1btHBJfWH{+kgv8DIKb(zwF~lhXXVI_2>tO-N74b74!; zxX%jmNsZ5UA>oaVd3+}>lzS7G_-lQ{_v9NVvVOd9;ldPY^TySQtgVqYZ&;nkS{rHe z2Hc6PMUggdT%E{zJ<{e)u@hO(McTZ9bs}p_q|KXDC$a`c+PqeePz-(yXlYBrs z^su)*!D^4P+C!{%U#s2SYIm^OZLM}wtDR`I>sajst6j-zm$TZ}SnZ(I4p?o!)&BD# zZ+w2U+DEMRL94yTYHzpNUs>(Xt@diGz0_*Yx7u%8?U`14n!8=)NTbxP9g|Y`CyhIB zyhWSDD(O`=CWY#}vliteI2g!NJ#LM^c07^@_h&D*ly}dOT_E(Yuq@p3R#Sw?1j>Un#|4pqw#K@Iqz}$xDaN z`ZT)ED7@_(a&z0Hadqf}cwToHL4?uNy_-rpAOxDMb(^vTZ}iZ}V9 zEqL&J=Pz-vupX~iXp&Mh!o44e^L1Dkfs8v`H-4G_1{fQkp3(;|Z`GHz!!I8sA#qDm zTJU=GC8goz+DwcDJ$Pg7$}+I{3F|4W&k&uAa62r->?DkG@`IpQpuq-Im7p5{>JZsTo=r(^=P;Lcv1E5Ux-F1qIG;M!1%X-v09!E@bsXX$SAhSiG%Ah4+ia zn@e7G@Swi7y%|W#O&IwAw30%>my|cw;teA2FMPBB*-(-F6*#n9(f7iK|Q^#qs|cZM+=E3bu$zgWAO%(_b01=nmd;0g;W1tuQ(I3*3P2c!7?R(# zCem)C06ef)!m<-{^C|kHxwn<-X^A^ML7F6$CeT)dq6MHkw6cDc3K)DT7O#!+np(U{ z18Z0$mc+1BU z_T})bF+`A|1Msq~zPu~EcDKB}5EHOGDXmCSTA)5%NlRR)(}67JXd77`?KuUuU4r@R^#uRM7>umyuJe>4|g8Yr@kh5Yjbkn@4W7>dFs1AU#wy`*XKKvsC{_Y&wW znro*Pb42TOzGcq#OV6iBt8D5;w#`hd)`&qT#I7Z4&S^NnYcq84n#3z=&|dVT2F=8J zUcs-&cx%NzhA&~8xNM4JQ}~PGSUC%uVV^qlXbxxEI?nk2YL-XjGhsvIhZ^~>&2=NM zkne;mfe$`VP9_l;2iH8#9#*)2<~kz%*q^?A$3c#qxU(`lIEy6z9SUr=cniqu2p-fwZ|bOXNu;2KF|Sr$4~zF0 zc{hrlzp)~pS7aXx*@VdRy8r6xQMf{R4=FF7#VbbMXS)9iHxXZ|D6+7H{N)&sFGuSV zzR+POmXF}nPfd~fI$Y+2r%3I9N!N_*HBFh3hC5_NHXtU8&>x+VboycM8eYMIKxDh^ z_RdHfdX-PS3Qmm0>#DqmEnX?|zSPZF)rdN0WdD5IbjhfurEP03MLb6)E*E z6gX!gR}$Gv6}AGY-X#a`D;tc&N z)xI6?M20^9unrx${uxYjrpz93lWEG5sQRtUR61a@!hW43OQMAG*6#A^ZOsPH>=EBqBNk~8N!%kgQrJ|5^|oO50fw;k0La|D8mKR8hxcrgsPc|P zciQmYk-&W^-lzTqpYDjJf1B9N2){zvB*<>N7ZeLL-+&$?h&Qk1#{f+1F?-In}>}{xHc7x9CrW>)FED+4PiZF3PEoN zL$2JTT{b26GVqfP2n%n>-H!ff?$tvJLGs>^tIZ`63Vbd?(eKCG4L1?Ys53LVqJ_!$lB+EgXlwDhlQ&NE{IwMMh9V!bkarT++`{<9(!YXQ~C3?T9E<F+jjswb4PB8B1~)}Axg!iYMoox>`2texH>)^2lK zd&XFk3eZ7KH8Q3e8dEdX)CVq8^VHM__~~9k~LrczKk!%Hq93p4n|JzS~h}?sY*6lko)? zbSTi;;&mm@?6ztsa<(GdTgX~K%5JN5#5{Lfd6d*!NvFPM+@izDM-q2iKinl=G*H-| z7HrRt)*ZP^Wh&kKnfN}N7y)$C`s>C4*TyEe)+a6hx2qB-_6?(JDs8DvKIJRFei zSyfW3?b&4pw1Xh-XD*8Y%90^vgck#Z{Y)IP;BLSq3q1Ro6x>W>&X{VJ4o{}D2aHG1!oa)_7z?tXh62xh<(+~tnV4a-pII7h?_;Q4~`uCsWTlV|ob2WtzmpCZd!$e;HCY4$UJ0U51k^OaX!d27D( zj_3pO%zkE^A}>|s=N57Tk!C;h3Xlx6sb+6T6V>dp3<)y#Gt+6z-p^bGuUXA5oc&C#SiCmMJ7V#^+5?{1&m6eJQD^Qwj~2pLN_i73 z-Zb*eekNIwC%7&{fiw%*n@F>t8S7D~qP&&LyTRgBCC}_<3Mg`lA}d6qsff?5<6f#Yjg@K>REO0-wyOt9NR)B1@Fbm%OOn&ub@<#70Jh>a5nElL> zSiH?hLd584i+3-1Wc57*hj{sjuK5D!>IScgL|GGQ_cBZd3h@DJ0cXFvO6U{S56!D!^}R zB`n;}bVh%)0`#Z4y`Oo8H6|1|Nj+Bu$O|oJKT{(Xua)w$E#9VG;F9#!OVE=+vBS;%A{Wj`}6VxIe%+m*CRNo6fkHIlfWxkOiI)VN?a~08S=w4pIi;94OI0XvkHxD> zUS*N=7f|FvMK-dKg^0|r3S~SBUsn}{Vaoe)op(@MzXNZx-mQ6CkI{mp6lJAg1E2_XE z-kM7BP{Jnh!Bn^#;eflsoxWWLwjUT;+s7-c%~5L;UDg_?wNY+sJGZ+k+&ne)qA~S? zG1Wm$)p42n{Zn!5cDJdJF@?!}3x-^&NV{xGDi&QW!KtaKI0A2J8ZZ@~p#y0X_?{;f zKjmr&1uhY}=og)w|dly_vk463@tYe-(W3esmOJTtZgAn5%~#` zA^&VbaGEL(i4*qYwix4W3d5DK;+l+*TU)bLt;v_4scPy8V`_vk)j&;^ zb(zYY8~%Npl< zsp?v#d7zl}7JjqTtH>KHWL_fQ2J&Ql5r0W| zaWek$31tyGwhNnf8I5zi<3arRCD>U2F@f)-2|m8Uh92?#(!(S0^qKRNjPioGe13~g zo4I}RrD;CR+EeW#&SK(3z-FOer;uNs7NCU<>_pG}Wg&ww)K(vR=db?P7{Ez6MihK3 z7H^UA8e6==r|nEB9E{{g#u4m$c99o(JjowKr-%CH11tZ^K}M#(^6S3!(_5J zWinHBCv#-$bo!*{R_Wo%fLo}WHh~PC1bq3DBSfQDn}dC%HTy(B$6AyDHceM)~GhU6*z zuhfJ2lzv91fI-IIyguIxqtE#eo4v zxR<$(fq6R6P93Q3a^S=Y3Bo0A2cG&;gMbAv6Q((RW}UocnzBwV{ZQ7)XuyV|Ke|qy zLJR9;v}c{Hsn6o4^|n9@KxY;HYz*%s~sm zZ>hYOIX;)(T=JTTp8p9&mRIC#3ptv|>s8@Jk3vJ`9YacCL^Um55_!MiZZUi*rO3|} zd6$JOO=LQd-jW69UmziMhf};>^nOh$2&0uS?LEW?oWO%FC%H?JOe}EUP zAn%!LI!4b0{36<@AVaWPoeENgZif;YOMFZP`Fum{Dt0i{cIq4HVHF!#PK!u&$A_DZ zb~$scZG0%IKKzOW>G&{zsray7B4~W5XMFHfv2HmWXcckbcv*E|DRiWY&7~lM@Rqr* zf_VmED%uFb0G9)|r~`>^2huYlRcr@LyB5q|)073%@B^8?p1NQb;4MuhE|}G5VWRk+ zXTki&g^W{IRCU#sW>CyJjvrSAb!;xwl}fE@QHzqg6jUtQn<74N!R)$0mcdx%ZTiqF z`NMkfMv0{V14Xt|v0h{)EeumQ;Ef*Gp3GRjM~c*DuNS{0fq@-#94!|!h)n-lr# z6}o5Z1#8^1nLS!>M=^f<{9N~FJMe&*)0C`r?K*JSJgZ+pDww8x_Dq@2Sxa1waQ$(; zGZ^mC3e!cNba#IpNmPdyEcOQPwa?-3cG=Mcx4}vdUO;*8SiBzO&D0&#sE9fz>lRuG z1-BzZnI9JKR`R;*4l0i#=P9y*h0I6fovLuPN8yX>L}9SCU z`z_=fMDEf(+HxQn=$kd}YfSSM?$OG>FM*!pDs8hSP}E)8Lej(1mPXMWM>qE`F-v*} zUT{foHP+Y;Q9S$W7lE|2va%5fXx)#Xc(I4aKBkS5rWwfkx zbbM%Sw40i1H{-*d>cdqoAGR+PAC5}wj1S4i2Txs_By#SMJRWhNgmGXGbfm6rqacFt zrMdnD^9;gDv=M|EC=E^!+NcA4-4295jnuUZ*Lqe+ekgGsWrg&cD-*X6D`Xd7(cM`X zEliR5$r3rO7Yg1W1vJoydajB#5?WcM@dNx=Sqo$FvRMOg9@^qHAny=<5dhR5im1!y zKds>NUwP+0@akPk-U9G2ahatBnX1SVIpIg1x0uZb#Tl@ed3D)MFvnY{+c>s28R zHeF?_plM3k8t|?JdWx%Tg-0`t?ltwGA%YK%u4K0M;`p|tu?!|lW3Pt*rb+1mc39g=m@!@AkUIB=umz|}@LXs)*y2lA=| zKVpG8L6|vDg0PH!IH#ei7zdF0NigkNA((h%f!t9?0WP^S4b7KFhw&wD@5v5 zD6o`zuCn#{YGlcy`1JxPTfdi#!K=n<5(><>cp>s`0}twNffp?*t!X6`lzJ5kBwD<- zo__bB{&l_*HP!cQH|^^WM|$KXvG+b>M39Iz;R8^V$+n#DfyO6P8iNla7@b&^u2%< zCMWEfoUf4>2tm#FyhEu#2fvU#O7P)Wycd;M+2S2v1>RKM6BUT4vwSTpA))J}ybW`_ zddtasQ1?WW6q%sN%@*=mA}g!H+dxLAzm4+#8>OQ>d|gpPcU?cd%Mm7=7r#yU8oDxe`Fe4L@n|dzh({Boht=bT z;#$7KkP;t$q$YgWVXjA^Kp!@u4Ikb_sc?Mgq&^ID`*3najPiA*<3OC_K)#3rZ(OMk zJnA^m*$Cfnu6>OIN$SA$E(i9$BSAPrKb-P4$T)zBOND9I3YlV>vO>v5dY)U;>`N|KitU2=YcELMh@rJOfgaSt`-sa`t4FC`72ZN3}SI7%! zA^3Ha_mst(PF_vX^Y>C@QAJL&kbQ`}Oclm?6mD1E4@fC^R@UNGBkw!eviJ)sa*-l$ zvXF&|eBbpI5l;r6A~ZEa%GQ-|Omb};o=|fZlJ!f=sbZc<`NK42Qo7EPN!fz1Y({@{ zQud&QN!j8lTP4)7F>iS%W#C6}tf=m~-j2n~L?U76!!2Gd@_x`AON)p)C*?v>nUp!o zyWHZ%k@u$ViMA{92}KsSkUN$EIb0Qv0vRn^GnLm+c^|y#9nmcE>Z!tDMV3P-p4lpef*I9a4wmMQY^5bMq*;@LxDH#j! zf+gcEb6tgTvt&$18zo}^7O+z?ZlS}WghYvqDO>4FW0$SW$BajtU_dk zk$M#heEqstZ{HH|#_)41&A&vE539m<3%L|XIkWXOU^+OS*?K}r<&`wRB8?`AXSNzh3iB_|Zj} zaC2_!`dp}wEA^yBT|%lkxAnzkP7*N3hNFe`RbP2&7H=c1 zPme-z(>$$BX0r7=v9LU=&=|r{q)c`>l$ZG`gB6uLz5u*s-~suWB14Ki zWFglRIY|}v0I8#-!X)LjRo)X8?^*KNsKO(PyjhXsEo3($Zz3|}FGz@UZma1WPhsc? zE3Vn-ZkjS1Urm$QNYdFzz+2JTXh8KC=eAx&q9UXRU-pJ(`+T@#&TSRSh1x}_-&@p| zNj2xT78Q1UV5~Z$g;cDlyg?T45%SErt?G)rfMkVp!z^S?B9G{)s^%VrzY2*$hVqJ7 zJRf;W!GkZ~DsrYGue6Zgy$@uXDjWvVRTxf66NRDE3li;iS{M${UW{{FonV>k?_plC z{>owAvCAk2U1uq;eTkz?ILC{#l-t4qcVQ@}?p|)JU1qH9ctx!3K%H=`4OVOKyR8*4 z)}%0eUr=JS9soMFj#oG~Nli_1nW~_sy0}e!JTFohzJVcED$;JGFw}oug404%aW3A9 zrs4`Z5aZm|<&ef~-yw3*RoWPeSw-+GU{M&J$c6fyl(4{U7B!yK?Ru)}#)uD0#q9+o z2(KwGV+KPXmE18GyqVwuIZu%(iu}q#&L?uPDtrcHv@i@-UTx)dw|GOyyHgb!De?+M z_O_7s5qUX~CvZ-yA228I46p*?%63Q7E~9aN!0{k{{O9;y1%x~;M6gNd!NU(pJi1jG z57;?X$#GIM3xmd{c`SIjY05r!_;Z{{Il6TqzcW5Q7Cea-_OafhTg_P2@KAlaH=a+w zhcOhBdu_p0v3OT1Z?eT}PTp?4ebghO&iM<{N+`G&NejL57OyyYZ-ED7wqKARDzcJ= zJTeE!$5kPpM`4NbMk?>~Y2FbnC9l3Jq$;wNA~#vcG$Ko=!s|dX(6u%0b4>GXY!Jdl zP{Of89fpa*d~rf`t`1|8@O96bLz%yw(#J1+eW@Mm_}1DN&DWh}c)@kP&|EVR0j~Gg z&_*G86_sSgUAjZ5N!LROEhR=~hw|mSvfe9aT>_syjMGP~Sg^a<&!e}|W14kD)5$3zooiNO1oUXF^rYT#bxsy0A&S9=A@K*G5 z={hV*QIKIe_r;T4#!UPpne?35l)6?kO(I^xu4~1*Q`uYBeA36dHjUb86NDw_PMmvLSyRnA z-isGp$2-mS7$U%RydG_=lCIrTTACyO7yN+gXReH=f=*>&w?*PMRrlRo-U%=obja#Ghe zQy1~rV6OY1!gwr08}axMHNuHU3-u$}?Z<)FBX#YMzvA5MCl8c3xw3wGrOIsf#B3sW zw*eVlKR=>{Ipcetdk?jwj0PT|s;jyUf?`(9VobH*JGoH*VpRwQ9UAgNdvKB=>RCf#JTcjK+1cqZmJa&A-~m^?cW}kE;(FXX-3c3A5A4H01+n z5&oN`$Gb{7*5yIt&1m5R$$Px(DI_oA{`Dkp{MO8Z&!=VA6Fhl72Ctd&GA!QHy9-DLy1IVCWSS-(iul4wPf4KXc=jmeJ5$zM?21Ys zi`^Uw=Q!eZA!JteDZJpyK5DLhUa_)wy*>0QPRf>v-q4=x}lJf3e(5v_b}H{P@x}f)Q?s!KaM^leiU%~F?Oc$BS)nx z6vL0-I?^}#ag*`m7>tP@2dIm|?lsrnFlhSmCEAF`7bq4^JbI`fPs*&Dc$|ARQt2*- zY1e`&VVbgFMvs?yE7+8SiA|!`|D{h?-TOODg5nc z9Cgmic(gDtO_ev@;yp#4IfehAB5zRSs}}NMBF!oM!5)R{m6wey$B3#~yt3q(Q}}03 zi!W;xd548O_Y#oi6n+udbQQAVrYVK&$uSb>DV{>s@gWApTgVzq9}C$&3gv5f9G_Xw*PKd=&#VA{1{nwzF9n2(;6d6e^C=#MU#DrjN0 zyyw3ru}Ai*Qpr1Hp-iC@j~RaHs`;MUqWPEaT~QhA?`_3AApZ-nlf zQWe=sk((@J8j&qk;SC_88PHOBC6(9J;gmpG_Za$~@SFH<3fh1daw}+O+B#m1hYj`WC+TBBEAguqv^|g$KPnpi zFR2fIeu4`9xLo~Mj;i7K(MJ8~>-Ho3d~OA;f5eaTu%UiD6!BxqarL9E@^5e_V5|4v)$0=x?jUQMELt)yrV4g5dSulqlmwC(ttR?!R1+6n$m@V&# zuvM%Vp}+y^xt9N_sYsfYazZOuAr^0(@^)LikI5UW=e52$=BRVQj71Bvm--Y6q*%Q1 z+89rwWf-$OnlmqY48(3T2ch^(hp%!s1;|URd@t{?kXrmo=DwjJsOt9FzlL_L#8S7(rmcQ3lD{@K!0>zHqaaUP}mLX zTc0N=7=85eFnzmTcV<&!@v@Oi7*jWkSC+hA^mf#p5p~YXFGolSE>Yh3QC_{nQ@~pc z9+2sZWVS*fkEQS_krP#67m(3HHc@#kmG`ox@CwZY^P75bGRU>{(l|B~KjBNE|66BRd1@exXostn%iK@anB1 z4_^)7pntL=+bMF9g?tW3IU_a?FdZDvh&`yJ8YJl$ytLM=L>hh+_);uBZT(QS^#Y$cMxUAIeNQo6mu!y(XQ#_O~ReUfNqX`kbctI>&9At zwf3~j+9hhOf!o?FV@=Lk4EmXJ!LG*C{l-*THC5YXDt)Lp_B$`mUZ{;Rg-G;((4iP9G>1fiMoI$6B_GgFUdq@SB_L z2TW7yL6ZTT4SDMO5&EO`U_GVN61`7-YpEl>hIn0mkd6$K{X+2BSiCspJ!0{$C(k^P zs})h_B!myhz&9fE5TbJ_UcFzQ29JMj2FOnoIZKf~OCg=ey?QEY2awTv@Raf%Ro)Cs zVIq0&=(($h6xw@R_{{#m%V%%_$p7m?-L|68!X(w-PM*iJ0J9#@dUM$9QonL1SYIYpV+kxpI$o*_7Pd(pSPV5wJVa zAI-hSRJRZ6td{B(*epWP<+67I;_ttlxe&Y}7H@*`)?2)H$or~@6afCot7vBQK?`AQ zs=SUCuOE5Sz(elUSL6+f>}DYw5ZPN5_$RNT3Wb%I&Gj4#oFBx{MMrcgc~w;*^GESz zts?VS3j4-UB$kbV4>xKU?qsdQ-@=+}GJY^knT&h-$YgM5w*dXo$yiMn z?44a@b*Rfguj?)8&~W*n4o-;0JIi7h3beO)SCLl_Jg8TWsIw64%aj15EAQ6KO%CUer#_BGCCQfl-E&tlP%tpBidg#@fSbEyZQ+Y=5y<#cgepu_lF}lbX8Em`XCHE>}|(U8d%% zsYARtg`l1>g=uXEL$2JTT{b26GLj`M>44pi{%G#iqk7~!psAK0O7RMOE<({|vwaNW zfBsS~%wVBdyphUVZSiK3_ZfIl|8TFP&fM#Y7AB*C^4eOw?&M7pJ%24lmQ>_J7V=Ia zA5n!?9)&pN?dQ72??3Lx&_zd-m%N))VaFcvWw|1Mw~)I=1L-3&M1 z*%W|pV8t~F-c@@{uCX zTF9LvfxLhZLX07wqu|~NoF3vS1Yf|KYcjT)rc6eyZZa8XVd^dPM<-(mU9kUh$c^gI z1E?@=*YBl6{ooKXeMBtYQI@b!pt;41C$G8=5w_^l&f9dD+ zJVj1YH_)*2WrZQV80rsd~oLUB*-aHFd4a)SGH*H!n^hs9{VY zshYu%EB9zOQV3Rek+2*GtOEL@xmSbg_FoQ}%c>O$tP-JUA=oq=@jszA|gEvTd zODx{=T|)1W`_K|zEJQE<=toT9wKk7==pD>UMN^Zku5D`6(ZZI0{^5{R6+h; zAC88ya)bg|J#cXqg5QUMS4I`S+AazU6nV@-eof?Qel-sH)1(ZUoxpP3lVX_7PGBRf zxF%tXX-Wa8*;ytb6JdB0{n1HSOlkXRRXKI!{_b9v8`2T;heIBZ#XG_h778@8c$bl9 z{%}aSh&l_vx8KUZmn!d2H?Q7zL&5t~zp>9%WSSxmTgdl`{6@dAuLCkV34@f^T6yCw zUJ7}ys6vt=D=P9C3)z^+fvV6MNCw*M1Rj+p3cxoVCCK=M;cDDH}>i5p`1lzJAPG0A_t7K}$2%CK_uk)mpO4+L5ke?MAn?F~*t{ zfHrEXt}#`|n98rFO1n(Gp{9P|#VG*QjVUBmQy5}M%mW76Wm9tR;|>y*oq&}`e>C^_ zhv1NVJ3Z%g-($7HFHIAnXaV?Q2;%=Mt7Ka6uWd1S1C_Vf;!P#bJYaYayl7^$qm@vw zmhu`~ya&k}BYOT@6&bI{78bHHkn(_`al||yF#Nt%%zw{v5ej5Kf{SbQ|B+%IFlQA9n)rQx$I@ zzL7Q`rH(Y(^&IW$MzgZH-fOf=t9ApI_VSK0^sRKksdP<@HgdfyOuLpuFVmDtx2>Jb z6u)oRL4UN;H9-qrdr#|r%|e2w+thQFhD3tzUC`O zou9J(&_dihDX+7|8$jLw(epP@WP&1lSjdJ%HdKWU9tHj}JShB$M8b&v>fjyGW#nC^ z3j4nl_{y~j{CxG=uf77I_F~lCLKTW z4v{+bkXP?OKk#PhQ;_9~d{2?*EaXZehp56gCxqUEWMv{{}SQZMp6+9^*nku6dmrs4(b z!z6Qk6G3HtcpPoihuK)NPJJjwUqcC%B59y-kna-tE|5_81jy);=&QVr%IjqD`jgjR74A`FHAQx}kcmVl0*QSU ziUNgtIYP1bQ#1N_zM}Cj`MGANl4;89Olu{x6NXWrV^sE2@n~UoyeDwESPX zW-oa7rtYV9WW?Y-sJwX=uQz$Ub+Nu>1oKi=Hgk?l({(FROVs}eC>k%=!eGu`fA_mIEfs@h>NxMdY+H| z@JG%u7d2z?Rw?gNi}z)B@c1L=Q2*&uN1Y!YQ_;d)j8ooQt-N|KkoSV_c6utZy&~sY z$X-P9N6w)z#-mVKdDkhgzQwzpyxUbFzar0I4Pfj^7P26be69tB(m=Y(Q#sR=@)T+! zflhbI)1PHIrs%3XB5jtZ(`)fg#Rd`K_o2j(lQE zMl7MDTYgtpm5-LEQ#W`6aX{KEjiGeaZslm-Yc%VbYdfQTn`*apX>V*H+WYB(^L4L- z(Z)=rz%*yd+}IjnnzAH*!d?5M)I^@IXomjilIVaICdPYmHj}GA6!?*PuJZKjBS;H# zW2;;&-W=uavUn@VGdH%jtZ~%2B%VYIaUY<(ffjEJdFIAeTSYchL+l{)u?;3z7|^zS@HQ(FL=c*5Rz@=GF}||L&Vx6>*ET!@864 zrO&lZNXXFnl~q@>z1^{_i=|y z?`{?D>M3_KfOnOrK2p@4DY$-Hi%JX&6C|x zuu&}D0pug1bB)E@(;2+Mx>q{2+C8^#qJ_DAUwKQLdiCBW?@rP44_D+^MXs`tBZ$0Q z6{dO=>M5_W@>*NGd&uLT7r_h{S7aGQwzrU15%~d-h~RBNGSFDCY*sf-{MtVJ{oi{f z(3qz=oTrR%pbQ6vdMERSKSq2l+pKr_DH!>raq3-%=BD7Z!V4ChCg$1|QDwoo18o$X zVaTo(xM#`uecJ?mSjHnUiS0zX^44DvdF2lc%x9d%Z`5LyWQbmcv1@g|d3PW1d;71>9T z6D(wRBL6_?fWkiMeaq8!n5KQa>qkJ@^K@^ zcN9n+9~EXQ?;YiRkmMcFEb{oc5y-)c9I42q7IFxYm#9J-kgggv)ik9>ovSZ_4o4Pd z^3{}#R)zM`W{rA;f{`!lPK{d8*wlyxc)=Pm$6VK7%&Za9(MFB<7OU2&5tZp|D4~%= z#nh3EhiOih z*_9nMO<5I9>&awg0=69e(N&Rw7N*AgrSTD|#DV*$=c-W;LCe{dO^(I8NqP5Jyc@_f zyRthX>de`!r3`2A1Peka@IyndUUob1%&u&WA~z`VM+>WG%oOP|p0&QRbK?qs8Bd z?bbRe^O6y+%7KpnsFwk`O`kTP%Luw3b|-r5)`(&E6+`*q0Z?v$-78|)ea(QD0R*d6 z0AV<%sPi?YnbIu$7JlJjQYsz_r3G)H70>e_EQ=JF!Lmrl>R5qC=**r{4S)+JJfZ?x zz!%;RSNgz}r_b{47i)7bdGG z;STgY3BJFu7!(WC%YbSU#3||@1C(e$MFE=P`4Un$$5`G%)6R>dV^U zZ)!)z@(?xusldrSnRnN@sIl;&Zo4G+_XugVX@~%YZ9T2cGKE| zHZE~@9G&fouezlBl4^Y#KlX|XQrhkZ&-{^tF8cEB@K?2Dq{jhA_*-CTfu?v5&Eq=W z4Kxx8TrWz|6F%XV@UdBx<^N~_Sole?`W$~0mrmS`F5G0rZL@GQfb*u%CxURN(8js$ z}uacs&>gR97%fe*r0^`^q9`7wAOC~t$sn@CV0Lf%MZ9#yF0Q8@g*COTASbsOym+I<{^=Gv4(VPe`S8!W|=#Al^ zLJ2R6$L7N_2zTWP&naSzFO|H$ly-daXUx<6@+26S{qh*2I>KD9HtNZ$o>4EVo>$dN zxz%56rs~XKJVZzmK}WF19Tw~$v7$wSK+ zUnP&i?)OB&ue{B7ct^Ci33xoTjG0-i$R7}YjQv{+`5}>01ld$;5`M)tp%S0)(>RdI z*eB}};a{Y3O~nVMDN|9rnoPxLxH=a7(W!V2ElkB|&r~!~cM@tjQo0o_M|a}HonZS| zykg3$WbuyN2i`{g9-c3v&eF7G4is>I1Zjxje_qq8x0Jl+zymT>k&6|%$wH5mMM;?NB*_+`4Ix&DRZ;|gtpHdg3dEL5j79jd|TC0r1X z%?f?Iag5S5wXnyRanfXcxaD0fO}}E|MEww6P(9OJM;rCcXhZ!LmwHcCALCX(-^eaa z#l6x6BhriBQR&AV>E1@NySe&}bZeDfggWF5{77{fcz(C^7$c2Dp8?aHCUX~ImTAg* zC{RVFiO0tVp+CAF#-N31ndn&$wWa(9{2Z#QGzFpM+(l>NnH&+M9xzDbvY#T8lELLP4jq}eqU@F?itiwf>TVq-)bs(MGXoIJB@nxqO#6}j0$ zK1-z8HN6F-t2E6sO({)9Z!CtG8I4GBvZjdF-_1Por;I(K;%&+zB+TjSE@S~ZgZq` z*L18t+%dbR8)EVHB6Bg|GZyb7^31Mj^DIZ5Q!xrH=)I%7$rkTP^31NOwIW900AkD6+5Nx_iQxVgY(lo511Uelt zl{FcTV+<>4 zz%-}H?3$8IQ`W=Q@-j_)KFmKk6AU5DH@Bn znH3`x$gp_tl4o{JpS%AL;S1Si^YYtxj7`(U~yd^n!HDd5K9<#@% zh05*c1)QC;$M;+g-q0L+88LY6Egqg;q>ehDlsW|WG}|6eOT^3XFcn+Q`Fv8rUC$53 z9j=>{I%-3=q_lkHD#(;2o~@FeG;Y)e-;lxr&N?dlb1VgXCZzHfX<{b-D22@KXSI<8 zskl)(Zq#w#kgG87SIA6egnzm7!Ug5?85nL-hH>#_jb(%DN^Z1bD;$TjvqVV0<#!KVdcyna2a>E-*(jvRsnj%P# zaBmD6;W&#q#{b)fSqb<}+{8o9>*1YLKK@B`pYj}cxHD|dfz3IQintKIsM%s_mPK)n z*2gejq8U}-je4m30#{W9X(uWo{*82_{)mAjsDml>h!2p$8&I;7(uQako_MgCx^<<* z0&h>N4x`Qu1+*uqwX-O<>0A`JZs0ZRTWxHS#)oX+g8|G9NpaYH(RWHGZb^#UU>3!t zkeZMlKY;~%ec~FL+DUfyb--cuMC$Qbv#x3-Zb^wpb=}G8x-;p{#PmViQHPB2#ksA!WWg>GTY$(e3cFiqcMI&IYGdnxZEfNPc5TqE(pr@; zg&E;n6C^BB)UVgqng1qDZi6M6ki36!o=l>^R-f}1E=){3gSW->H`RErDDlj{F=w*w zH;OyPTsZ-|-^*JZ;eVcWuc=wY^WSA%N<_tzbsf||Zdv!;Sx?qYX492**CGZIE|c2v zYVCg_>&imv|7zAPzdf3D@9XQoopq;w_helMn7fFqtEoll$*Qrlj@t%gUT1mxKgqoG zNWCkorY|D%&M^Y1REcJuabTakm21u0ciNME)7V7z;VBKS8R6Hfc(d<0wU#scGD*lt z)S8#h28%_g*aW=fYiuOxUbObfw#uo0r6K#jHWM*qyZ&9_u78y!L|Xs!^+jjm$v-)7 zuKIVzlZoHl_Mc?pZxnZox$2)ugzx0-zn6(GtLcl#!~qeN9GTcwjpSAbcj7U)>(lpj zHeH!m9I-$G>Fs=EW&ySKKb?s;LH7S@CcafEnu#;?_216K{ii&c*a+q>z9#m*HMdNZ z-B}ZP`|o995jA}gnRtj1$War;flcyOt~K%S2~Q@z%qB9?`5GR&#hZzv)Y`>oqU+1G zT@&#oz^REhK=%J?CYHQ8nu(X`>%X0e?M`?yam`KtNhbbC@t8GH65&&M`|oAqQ)>Dm zGV$Svin}I?1NGEMZZ+`;?uof-;zBlEnV1)`aM#3>Y;&~sHzzzPL=}9lign znK-3FG!w_`>%X0en~!-iF#+Z-z9v3U@n2?QO?mt8W#V~`OK%ope}xRer)2E!#oGi) zl^mJ)ks8S@6OZD?q$?8_vFXah;pHXFkx%Djwe~-qiFZKu|7s@YzcHGL=gP_JznzH< zj(9S09?V^QCVoXnV%9|Y#;yVsS8iw|oi zI^S51mGx%gK8E@~sfic&jpa_r{$I_+kvB+))Q^hdr72BFtTUCa$u8G{m>8PeJq9#_0 zsJLsQIB=C3$t@G-WqC5ODx3IpF2Zde-2dTPZzgVHsAJW{eeQkY8a8+rXKf~Y;NWB2 z#K{-^!m=6<9sk!RB5tMGH*t!(ZsH{4jMFz)r zeKiv=48}%P|I>W6 z63-9D*&iJWkA#RF93sFQ|KVVI>tISm2jh99YMu)HUXo*tj0NBI@tqxmxz-sBuE(QK z0V?LnE-C#CwBW1Y-fb8lYUc)nY}hks^-l7N&_u#2_ zb_cb+M{Lms9Hk9WI76mn4BRe(zo#5tD!9CYqljB)xa!CVjnowDJQ~hHh2Ibpm`Nx9 z@ROLq)kAO;B9eXxl%&#-{OrqaWzx`JgDCs}F4FAypp8js{?jQu_85pSBc~q=;G(+Zo>8bQ^CLsg2Y~VUjD*S_V$YhSerEPCtN*qq8d^QIp0sk{;&LgP6T`S0f=~k;^5vr7?anm*KyGS8&$* zFXgMOU;REG&-=sk%Q?DhV2co~qI>|YthISi%s$3{a&gwA?td#> zDHj*6S~z+nA64TTLwMxJY7mmaE6Vb|=inPfJ;XnT>T>qWg z-(Nz-+FzD_Wfl1U#fw1^FZh?&;46ZQzG zVNpOpf}#!tF>D&P%>SOM>aOmY>0u)G^ZTCXzj+=w)m`U(&#AYntE+par_+@jxL}E$ z8=Ue79UycT1@JQg6i@A}5u5C(orgIO4r65&_G?e=(B%$>P|zG=qyta;kqkV2vzI*v zDSwuwW?Aj29ToSSH(aJ0?s6IV)J~ulovuQ8bY=A@M0W%|=Z4!zIO;;_Ig5LCbn~1G zPxjQ#C#dI*qbqko-;;y>DnUz7*_;6cqI(s>trmB?;O5o{Zrq7o@*PK49Jd6gq!%K& z>yRIkHUyHMm%4#mvDrdwreV{$1mAo>57MK}WwDu(%Jx+tlgV?W$9{L1DGTwE<>k}!i zBj~VO_)Yg|qK96J@`78;ajV^MuM$p({x)ztIz1$4Cl*KOD2^NEhI@u^Ty*6T?%9TW zc6al%!jp;KQlqDb1kVp=^rbkcxEm<1Bo|%T$=!a!iV>~8LPj^#cEinhf(S_~NVVOb zKJ~UGiGIP5-p_}N>V~+e?ni23y*3p2ApTh*rUhA=@;!^8G!qVUDfazv*(P1qpvZ5< z_5o`OwghW?0V>T|7fDD474e=N;m|^5ogiJtptu3EhQ)BbZB4@(B{?_Mc5(XDiR#$Av?F3Bg)lx>QHevmH`MwB;gii>BuOi<+93A`!q3HQ(Y8QgauF_^0O0 zwEWb*w^On7bo9kP_PiwN6S$8)v`Hp;8-Y&1P$)QZ3_VECw zOMi;O$9H!sI+Rty;XXL9dAO-`sg0sk`_5pEb&~+S%2_K&NFZmWexk6STLf!9z#{N3 zD0)+S>cuoX8;23@HnJmk8+D%M)O7xkSpCqs3x|--<2mH->pY65LptXT(i9m*?M8#+ z(O`_f%cv2}{gsLirIT>@z*Wd~{zkg&LQ(3x09&H>dI?Zv&bmTE7E{roG!PD*Rn}DL zG8M(5=sb6qQRfGK({yf0tbXYH^REm-ItO!zUpnJ5lTO0<=y?32n+EK|r&oAFr1UET zHBAbM7)qB!lcDr$s1Zs}p`t@MEgYH@3ZjE1r$A%raSo<&&jzM)5p=YTr>^atZB=4YFZzs#(awJblBNv$)Vp2Ks?`C zGst)jA+48k$h~O2jweJ~hk{M0!r$MB?b6j&pugtw zJBm{4?bs5mte*htz*)bOko{D2C<6s+qRRS(bom&?qG|oZ4x`p>&S_c?BVIqWF2fL5f0^dT2DXUWFQ=^)f0t6h$};z9qDtEnQwgaYF#swt2K- z?u{*>HR~s^9tQ}lF%t3u74e=pY7ZRlQ&~GomsThiP3s$3My(J3q-p)<^9baJ)*o;P zX?=i0{L=braCzHp{MXI>ym*P`MgQoT`&uOe53ebz3^%iObYd#en3iT6(eOqNcE?vGx(Nk?JHS8ia40FfST(@&$ zMX7f#@eVty={<{>ee2C2^*My}9>^hn>3s!h72v;a?z8qYQttzOHD&Ci9un+9Q0>sdqBAL@zcJpql`JHC;m3d-xnmdErn~Wo7RJB-3n9)^%OUUOznBmSM9f<`l8O!`TR2$Zz?ON>N|z2ON_ii^ zmS8<1K#MqQ9SNyMMThc*aM=H+U@awG3VREAQQyeaENh&%NrZXJ2 zUl&qb>ZQ5-jG`2H9kv83>nDI(a@GS9l0`*_(o=+uQCTyk%X=t#8NWVO9r0gkTC<_p z__U@qy`%0fS~Exhhmh8FIm9om)6A~Q6IevQ`4m~X$oB)L$jgwQq%~w7gEuo z+@RQS=y^@3JzcsaqbSwxge{?V3Bh_0Ag~UWkX}@DDAZ5Hdh4oSZ7E&qqv)x&HO==` z`MmX{_(biheCJ6`@n3r&nD6-_my(&wA*A?b4!JkQ=kSzB@!H@M+GJ8o5p6Y^4s9Ax zBtE{MprS*0O*ovnBD5(dU5cY9760y8jr9!y8o*ieP$O7#sfhKXa7a^Gv!%;c6pOC- zs&z)id;Fj&o-*ccDh;vVn>Y zY^xhc6HTQw+PTo&KfEqr8(;&;jrcp!FmN?5%@P0i=y+5HAbDMAJcSR zMy!75+>Jv>=ZPHRm(C{V$2^`8DV^6v(_|F297@Nd$ryW=Q6n1sD;077LpXeJNoewo zblHWXRC)onME~^?pvs(eg@i1oBJO_(ht4W%s&tu(qNmcnuF6BC*6d_g@q10{=EUn; zYX&*{9fOe8K^$@~T0bhae)$S1ht|m) zLRv53kbBX(4Nr*1bp@~qRWhiJP-P(+4OJeZID7^vM@5GcCmixO0BnI zOR%zj0&9EDdPG99spwGp3)ZnJ>uTxp5sF3Adidu?ty>?_v>r;lerR2aLrCi;9O9SO zrdQ?>!vi zm)@pVy`PQ0^-j_Ip zw0?_2{LH7AiUv_P#HKjaFHgNtd@#^i=z9SLJt>lj75~tMWPrHN|@n zw{OLBNrM{)w9y^LA@`PC>_LY!lsEGBWaJc%DU~MQ}oKubDq4N_0bO|7^zAPb0RK(|J!lA0lI!L1_to3>Zen!R7jx7G~Og+oZ| z@sx`8b@Cja-^?@7I*lhpTAy#JsWO7v4y|L+XpFxy;lGwZ4Ckrgc-|^+W43yBUPE zF2f=BGOjauLZtQ77MdzIi5RLBL!+Vf4Acm%Cs5I$oDdETP6@4tN|(MUO0A#7me88@ z6Iee32&@qj(vXS{WtU(*c~Y=emM-*OsiJB9^%A4j%Xev7?{AKHerTP@A*A&O9O9SO zrdQ>AcuJ&pF!+Qnv#FKPWj>k>T|y}mpG8Vj(V@^w@yKD<59;yWOmq1S#SPkLF4M1QWA|ZXK=umzUtapwJ*4EOc0g9e_`@Sk~C-r8N@LoJUZ|C1}y3hm> zee2C2^Eia`-p(O+*IRd0p3XC%;oKH*G4Qrhv!LD{v=c&fBx0^zD=IpacZI{XV?v0> zrAs9grMwp!Ypfp&P#kBqNXT_KfpwN}cwc2bP5XIZdUYF<*Y{QV<`1+H%r3E$wrh$m zBr@NMGDtfPAw|b<$lVn+zbb$9ZI%!Te5R2m#UN@s1dc*WA@DD#5$*heiVlV842OB& z3xRh^moHJ20;ge1bQ|j@fXZ>!4r?eO#4ySg2{uhGO70 zP3tsxCE`EDzNkk$bl;+NK@SLGd9N-vYzV;gF^Tq0`d^5=IfNkOUPO(V*Mx_2CJ;^N|)DBEV|+|-ZUy+eY2*x zow)r_{PHGkj929l{}lIjRX%~ILu$WXUsJmr$qTg~K(nFtTc{CI&ZeS6`JLjz!FE`v zog`giP?T!7!j_m#3Ir$%Ah7n7kd9PzDAZ5H`o|%`T2Hz>j-ofU&92HnSYXt7%SKJ- z+htAbF zgmmu4A%5v>a;3PPCqznbucK+wnskHG9nfSby$3ZylTB2_{SV=g_^nX-L+SDsic;wq zY>EDRLVzv-1lE@&B#DZ+{~;Wzs;q;gOHUL%mG*U2er}$oH9Ofk*K1mrC0^fJGsrp) zA+68WW{`W)`YKO|wC)Wyp-K+r0}Z zrLnSp0_&@swSt5Ma@My6>*rq!)_j0P;9pQIn%0%vw4Sm~(|R%S`k{4a4k4|RIpkin zzF%tnTTM-sC~7-Y8I49`1pba1(d3_~=un;(4vP*7RrX7l?I=pEU&of{LDo-TeSoum zEFtew(V^58tTvT(rgWKzV$rm2_J(m>hpg4KZcMy>XnlGOgOJvxIK(flO|Q!9^OR_0 zPpqNo@+VP4m%;=5ct?#;JBf-850WlDQIu*wjxC{ft^j3n))o>{kBSb3 z`ia6G+b>ujkS=9V^ile&~S|IV2Z?Nk`h#ODAB@U>sLaVi%)1SXHk@TufdjJjTfNiob@XS z*+xZ&@~m(esj@DYE{jm~)Z6z}`HBopZ#D^sf3E4>hnRiq%^-JHYva2nhumFn-BtN@ zo&m}GX_zL&lO!VKt&es>-qolP@_s}`hf-2FypS#Abx4<2QIzub!IqG>ya1g52&^wk z$Pg+zlzeIc!Un3Wouo@^6q&rfugb%uqU;j;$5oo5#fZ$eq71TvLudpatIi;ISJeEf zJPp6@feR@TxHH&<6niNbwDg;OOp0eI4j;cAsOV6b&TzQ1R|s53x>Q3^3Vii(jg|Ei zKodA?DG4cr6Ikbpupg_eztVml_#}#6#;=d7@|CH^(VMVR)A~)~^{q7tTiR%5h`N+C>-|f609Yq%Ps5QQT+E=M#bl>&=mgyg#IW#kV9yUzs4c{ zDemp6{3o6cseS8FO_vGON~k>@&Bpi+peS7JKj8#jo)-?Qb_!j7r2X9G2#Qkek0k3b z0jkAWH%rKBDmoPECkoqNWnCy;94LAl-)2|krQCFW;!{oMXNc90k$v?OZDc>nA%9=z z5UKOLM>L&7NLVzu5*iGh-$soPaSj#n{3gYPL#G`==W){IB^0I35!e!=`lbNw1PH9X zCB#lee10YzE@uhWaOo0;Vo`K%mSP;w+cGtsf2xXTe(0ReAvB)9nX4j-=7sfha@!r}CGp-EZk5`dyq`bZUxHA8^r#izO`nMM>&MF?!qDWqV-^&5NW;j zVNI2mq#U$vk48i5U8oVNY@i~Ze-RF2w+XEmOP2*GO07p?OY|V?C$L@w2&_{jB!P-} z{zb4ptg;S}F3+M^G_7BqVbuE9k2I}I6R#gyui+5V`b=d8xfiXc@PtU~o?sKId_%cF zmG8GQRi39fd|Y>>qC@$&a8TgD&WnwuOHCA|*0&zgSXn=TbvkD)FCis4>sx|#)fT~e z31AWUXB3O3^^#YOT2ET0Y5hL&`k{3v4k4`*Im9omO|Qz|<|&cdKUdOp8A`2(E~C(F zjKTA$QIB^jI+Uk`!&{q$E_kVT4rQZoIJ8l) zhDa9$MNhqbUzLYSz1bxE&Js=UZ4V%#Z@n30B!`gR^El-0dh4#rhe&xV0xpDjotg!C z-$pwzoGTMCpFD!8=uqN?L-qzC#9yJB%S9BWyxXuPSSJh6)139FgnUIshcZAoB&e*P zOPA#+GI@PpmCv27jbL_(ZC|V@I-1CQE6O0D972k=6YJOFIbs|fM#_yVnniSzA zBLr@amO|i-s1X9Mq@qJ%I>TY)mqOq-rAs=BQsBYZ5(2Y+0_Z1zz?vu_qo|1Ir>Q+~ zD6g{ikS;b9y^LQUSLKy>)94zJ4aHOMYg$`~*SFRT@(G8K*56fN5WloGy(+KFQewYK zXak?nWhZ5WX769mbm>Bo_;7AZMTfFPINVq#)UF|2s-h^>{^Nd)^)mrV;;f2<+=LTY zsh=q9QkC^5+RpL#nO~*()ff~{9Z>WgxFA9g()(XYfOP3WWO2wyQOY~z)0V>8>=SfH^ z6|sI44h>Y+cC*RfyXU#rJRsDSkPGLHtwP+f{j2o(`!U4KAU} zPm~GNzOaU={Srmt!)z!O9m)>j@DLo>+0ZUsB2biS2V+aH9u%PYoHa~BDpS#+P(M-F zU0(>+V$$WWVDD<1U6m(}GwPi2j;8ZkQ2C?tU=AUj(>Ubs>pY34Lpt9nrztXt+J^?e ziUwm;7pEv(=K?rEk^aKr^UsAMxwN0Ve21dc`D4i%B|vpJ>sAT*f{OV3OgIcwS>KT^ zb5Zm*s?Bs>l5Etu#@m|CU5V9?@qB$DgOJYEIK(fVO|Hu4@q|d}c|n@eAtWu7u7oB- z>9g^!ig^A-IGkK5R4FZ8TxIlHAHtSkW&H%!=Q!(cs1dBEsE9WL3Dy*qb+>fc zh+@&SzL;p#y2qQE)=9+cht^d>YF=A@`#7uRI~rdUI(_mFA=zRB4MwL+c%=5vr`G zqCji+oI$1*Esfg#N1?xj9Yd`7I4aK5qUB*r8 zbMrN=1BurUtv}}w()x5M2JuU4)2s60QtfWw6T0lDY@o~G&-n39k@(2AQ_-P(A{+wX zz|M=|(j^Q{B3jmA2XHfK1+xJ!Z6A9Yb&L!TY zd79n}iP^W_4APE6NbfNm;+Nj0SLK6vN;JAp-=`@vfZC4)hoRvZhd-l6H2XLe9ZCz~ z@cO4hnJnqD4n?W=YuFOK*g=5Ga@O}GkLAA-zmu;ch_5YRsI#vfaIM9xDetN1&6%F(N4%alZg3no=8Q9 z@`G?__=%7=Qo1~cqLjA=wgl@h0`zZyz}iMa8d1@q>=q8EG6n0y(j^2%Ca>?S@*DA* zqU;j;iwsTC?-c~`ttf-M%ps)c3J$ruqUKlSgI{C`k-$~KCZu?W8U}$sL`xyX;}nMr zT#1VK{choK=wl&;MY>!sp%-``wgfBdC$M(qtfx^USPxSX&rb{1$tvq6>9Pt%FXPw8 zRr#win$~P6cATqe&ECV|TWbcXz#*jdQ0IQ*X8xb2lJc<0FKxr(Mu$I`hX%Bb8X@1V8QNlpUC>(w9}>Cw9|%1j3KK zfMs9X5Ja=&CGn^&84G@Wm%qMJxbhcOb|)4@dVu-RYb-I$Lb#_s+V{&SF;og}ggVJu zL2p~^!2xMXHgDM3Vo0BlnD0@{@OYP{RqHtRzJa~?RY$1vA!1-8P6dSCU-2vUVRNR~ z#2q?|^WtpYi`f4>_Rq)G#mEy zO^vdrmk6stP&~2JAPYa;oQq%Je*m3-e)A(*C*J21+L8mym;qbr zfgcf2yw7Kg3vaMvLlf`w3B8If$PmR0i+BjHE7T&6CLlg1gimNTcWohEzt_9AgDZQV z&pj zJ$PCclKC3m_Vgwzndx@izT<3hd%$ITI(n?zLO8`@)F~F0-(GgYc0P^#&Zh2_vP&0-!^9Z<~uqqPJ96NN6fRmjt~FT z)+?NEmK)zJJzpB}eN%=aDox->!z(s8r3oKi4(y@fHJuNy`C{_`4X@j?*zls4M2*CL zKD-8)bV^$^lctUI(0KUbknhQi;T2LCT%9r7IhusB1jSMBd>;wcWeIv6TEC*focRIH z{MRiC;GOvv9t+ft?m5JKq%`ZOj{xE==xWk}XEPzs<88zofJ#%AXo(N_Wu7(=d zFwXV!P4ZQ_`s%ry?@{}CmM*yY&hj`;#axX*&YWgo-n>xXequgS$~4Q_8rK#^qC^?L_ zF>9=P7b#uC8PKE?n(Ek3-XOOoTbMCpucv44N$hX(^Xn+UcuUOYr2Q|;mc+3j5%~oa zQqHFtc%o06@vbfcdvo*LC+YYe<$R0X_@?XmmJ*-yKGr>(;OINsDmwNZj5eaZ8~aaq zB2LTJM(qCryNS{Vr^(ij<$PEEGPeG(p6~iQ;A_dVtp#dyL?>!GD@Q~xWx|Nm55 zVm4YopCVhb1K#%Zi1y6L(b@}7>S^pYV*eM|O>&Ra@r~ttSFV${|L`hu4Avj+2^~lFVk!B7O|fyVVdol$+Gpk7*RwAH@*(~Y&#L(Y{sWty~c-^JcD)t zRCfmLB{ta^bkoahc&*0p3d4Rryv)v^g-8pE;|yAlWfK(4jBT}X(ag`F^vIcZo?HGF z5~TMhn{>}Ijrl0j$GLeOGv1ju;*lSXxhpZh4ra7qI6%AwW@pgWTAa}=fb#oQ3a6g+ zp3>)hkSHpX?X$K#DeN1QUB7zOZ}( zFy0cgIVn{at1b%?vGOt(Q@tW-qtE^G`C!LvV3vDx9p7n26!C&PpFZ12;#&?r=sp3C zJlk$2%KR{1D)TaDx45xq=-G>dJ+F%inL|g`kdv*+H#U9VT%EA%=M}m#z*P`sugz~2 zBq`4F*lBp3h}G+To=tDC`#cN4PXkcg=XqCbVnJwemYB>2AibwF4*R(fbf0G$OUlcA zo?lpY@>Qy#$VI)+)7cD^>juh2X6k*Ozy46;(tV!g*b?`7CcA-F0L1R|yefTObMtwP zeCR&U68P}e5Ni*K2y;X9B?R5)sUv+FxcM}IkKvBa#drvw>2^ma!=Bc6p|3kSwO(gy zokf@Uc?B2#;>zqQ_UO(lH^nA9uMC^WdMFER`WpLro9MiPQPFpy+lBw`ByFe$ZGksj za3AI;T=DO>ruLI$;P>vZw99G%y~%a1!g19Dchu6PNXG&L$UeSzn&gTEb88 z-kKP!@jYqAH%-sCV-EOw@}>J!6uenRgEAFiKSMvrQI$1Z3YMd|s@IKUUj7aQIbJ3Ury(*nsbK+o_VG1TQ5 zt$~kj{@5fo4^YQHmaHu?9N5njH=95Hh?hsq6do9B3vcsB;lC)sz1sXyj?#G_1J9(B z7U-BC^T~Y5jd|^CFn8cX`oMX$1!nU{U0s|3@Yc_H&$uxUAZFxZmh;&-sYW?BuBL8W z<%sKjaAE!k)3WSrqQ+}F=Cw{^mdnzxty6YwI!;iXOo-a(h+c9dn&(FJ5{Qu9EV$8N z!4(H3>kylG+R@^?p1=kR-O(9}{d}-A$2{;d;|?0dj16~ea&b<{rs=>DG?2xSD}v&P zBiw6@#Yck72x1`j9k){ zq1^K)H_sS&ve%Z+(CG2n^3V@Cs5S@9b^|pg5Z)CZI+?qb;BK?r+=AeS$m^+=KCU^y z56w#0)~Wrd*nExDer+sMn{K*Z!QxD+U5!Z6gKlCc`aQ>>c9>h-1!+?4^9&HQ(;Kd; z8*VV+gxX13bW(dMgDX|YID*z8RlV9_gcE8{*}Qo92OZRMcn z+(3H?L~2*%Zf|n8A#QFTzzu5K$q6@!R$>_o6<5GnC-xU&6IhG0ay%28K0ryqekt}^ zijW@UU^K_Ow@CF68ji=WBtoPZQMZp2}EMA=595)TYWdThH%44%6JXp zm}R&I(Y=Iruk9~<6l%l$JA5>bBGNYYaX5$kr1^vpkA23}y-EGTaP6hA^L-WdzskyEwS!;MKu3qqBl*j>!qGnVcJ3b85a$ zqZB(Z^nv^WD+>1X6ds1XRe5H<%e5~h9Qy+y$G()tD21bhPw&x+l;#9*r1T(@meQ8Y zzLZKZq+QpW?bw+vn5SXIO;d(Ml}0=2_0)` zn3mL|eKd|fynL2TQaHu|O7DhwVJDXL&T2PZE`B1Ri7UrA$1Xfc>C#?th_ia*A%5$W z=0it!4vy{|OR@v4FrG=Co^EKuKQ!R*zR%O>ix%ui8E-}3%%knv{74taJwL+cUA(t( z_!t`ae{3AOPMM6uFK9NwIHh`_4Nl?8c-j`)7)L2TpPq$8=va^8IdYnzZ)aSzdJIYB zVd9qO#IQV;!C=~pgZS!SZ1c~P*ffr>F+8SmF#S2zJs^$;Cx)C8*Hqi-_;)Ua3s!;C zz^Gd+rie|pSo}R2LGhI=xb?$+xmbLjr4clg8TIZc&R?`ru7FSV^ozb*h@&nRALY0j z{@`{IPOQv-_(6?Mi^UVzLT9{6#u2o1iZNa~;lyHb75D7NJ?S$*eP)sHWQ)bgsF#by zNgVVz2X$}*)gcfq7JGBI+b38Secjv?xasbd8osFMw4;*WSQ^JjFe$L*HlICciP5AU z;}bWQnv*}CkMQCgbc*8BvV`tWII5JlJ3<2)mYo$ZO`%BmMknSswc|gX%sM^=Km#n_|Wh3?84Dn3>s4HAz~Q3-LrmkBKE1@!HXp7!JsxF zo2nxV^+NW#o~$B~h44IU-!;$2bkv)0IpLn?r3tz`H%&em77ydW;vc^Lnz; zL^g_%DV5+X?wvo*2U9%u&|pg9gK50jq{~+4nIUX2(WkV}U_T#B&zorXI2uT|@6tnC z!52=rfl4>a_!P&768~I3on5$510c`c z?6%}cHHh*k3!=~V^ms}@WNRhbD(2Zfq7i+6gtFBWozfE>8wa8zybCVD)pvgT1_%+9 zmpy1B^t987b_!@sI%%3l)YOBhwVtRM5jEoZb%U#JzUd=2*?hBQFdHIS7$Q$%zwh}b zt-m&GgC1b8G_J;>sZkWSk|N>Zva$f%F_GbYqk zb=1#zp`MeBtkik2GpO_ICQL`3mo2t-bxuPRB3C%3iI<5r)j~8i|?u44;XJr50jRZ(#5)rPp<9h5$`Y~b007kyVbe+Jz^K%Q}ven#-37{C7kaW zH@;qazHY=PzNZ=mN8i~F)UiL!*)Q&=q-D0B#p|;DV+`2E_f)-QTSmusl@Ud}>&CZC z&-VfGiSMa)fumT=itiIG#U2`7;z^HB#U}E!IPdSvh8KNLbt?ArW)3jvl;@BZTXhD# z0ACzJBbjmkJ_ujWKFtyo2WsJHBq+Y8>aD@Id#KDMICGE><_3D^WyCDLr@HwowFPG1 z2bizLc^AGo7;Vh-&Ez@HjiWR~&d(6D_@1h_ob4J{56*QXn{|d#c{D{7~cilymhqaQ&j^>PKASd#bT;)6GfAVw25D zr+cwMLsvj{?Dste#>9 zNBTE8%#0cP6g~S$Vi(_2od%fiqdd2pY{_62B%&mbrQHqqehlk5zB(^O?0>RTqu1Fw zL&q1y`PT2HCdgUi8$I8~81O9zA9T-wBhS`sN#0P$zKYRC^mAjcp=TcmcJ@70Z!-VV zRW^MXCoAJd_PCy`9LSJmP596t63dKmvH2R!JPUiUK}7dtieo=-OmjLfGvXl5k54G% zD#j61ID+(*U-no&3X)uA5{F*E)j5{NN0@QL{pN;?CEP|XWeNa1I^9%V#^6d_GLE1* zZn&m|dxgiF#6631&lES$vhZX#Ri8jTr>9TgZ5;H?Zbo0<4RmZIKy*{}5$^UecdO~< zwi<4jyZV!p?#m^c;jL49r`Tj_*Ls$zO_vu7uwSaZn?j@qy~m8ExmH_!Ls$<*F}da3qr z8%L~3Vow-(&3m>YL{xPc^(YOz44+>|-ut0YNt#-@qK(rM5QI0FvNpLq@h8u1k;e^$!P0fF~2X3+koVlQ`(=4n}`=IE-%W+>R1r_vUT~x!Ykkx9{MF z3COto4#!Tzt>bX^DNb5)u00Ju!Jz*!gYSm3iDxy~sdp~$L;OpzIRl%{N4v7#DM0W1 z3;THk=z{WXN{POoqQ65&-*v#x3^bWJirOQV2KAB9`Ez_4814%-UXQwg+}NcOB8O;^ zF#whASri$MWAj**^r&4x+nP#JPw}Sn=%f=#!LBv5B4pHTUF~`N=qT@Dl?wE(W@iGdic;;LF+&cK#4!H!%_t&e$Dt zzI-tzOCF~&2HeYc8Us%BJD`hAp(0>0HQ-{dLnvr?dxxWGqrHXi4f0OV~Nihv6_w^7nWZvppi zF>liVHth-#w+`WL%EP69XmfA;6}<6}@RxtE;D-pMfe|0AiEphA!yX#Q=XeLkh|N1R zkPmfa1DVcst+AhrkcbgH9g|tA+XE?$+RJ6+KzPFiLri?MhHp1Dd4TOS{w@XYag1d3 zVU-)~oFOg{mc4*Ubw&trc@3G>PKI=D_7ZX_+j*Ce-|Is*ppYR5i8kAT=53BPN#H46 z0wcX75V3QU90R&mR?vssHW(q_3pQ=#4{c>Di+Kw&*n5z|VW3p+q4cL9%@G9ciif}N zc8%19oXgmaeHn29ixBmA)wQdYKIE^15OPmB({>fp1*zpNNQ(C$Pw0cZLP3VIAWB{M zi@PIhim{dw0}bw@d~nYen{>(Iy!JF3+>0T|5bWoI#F=z-bL7hIj)YE!FPx0CXDhx_ z+*Re%^;9-pYxDH#NMaC2{DFbU`qLm&X})?&4OiY`(jNg9 z@rBW0cYy$v7N?WIq;Z|(^#Hj zKCVc4UM+1Z#G=+RWIt~qEBF&~gg)eweh4`oA<^ay>(n-z&Bv8>2^@pB`#C70A=~NE z%B3$*Z-`dbqmV)7tz6eiwlcw6kgwNLWRD8uDQ{d z0jLw}|3Y%3^*{2%62(PP`1=1E6&=cH;jj+eZ2f;qx*TFTDGgza>zaRIkM1~nU2L-B z=tcxPj_4j|6!!Z*js~`nvdn4Mbq79_=ckSFx*dWC`vMG&-WA^d%}Yi=_s?3aw)tzGwf4_QIqu5uLe zcg3__wRAyxc?AAqL&LX06z~Zo#^yN-H+FvmnT8 z*v|zqTh|Olu6$jS314)S;andyobSxiUxvD!`R%MX#F_tUFJyhV1Y?@+j>mp!zTg}!rNm}qNJdUBQ%7bjDTkBqAeImkzQn+iy zO3&M z+iYFaw6Q#fud)=3$8eLCY^U+pz&vKEvn)?BAGfAFA4Z-gGu5s}GURk`AzS$qa?W$C zzxd}zUpu$>;QyrmEM9EEIxkS47>-B7mj9dALd zuOO^PkoA3a?Yi6@L2@t;p)Uiqb`3KL`Jyi5liotU>OJJ+`gTo2$h@H@5dw7)_AoNz zXo;|Tk8rk+u2EGG0atUz8`tBzx!t(7rcI?AlbC{UqYC4>AcJrI&Nk_$WC0zoxG6ah zdqxD;$WFIi#7)r&Wkv-5k#)r$Tq`T@A$la|(1jVf0rpZm)!jR<1oz7t5nO-A_>~(d zfbo90`@PwHwp?=BXFJNx<@(ks))D(`*X!10&ucntmub26ao0jun(Y);T)%uuZN(Se zXH0ckk}4oiC*7@uPgE0jVCG^Gc9RJrX2Nt})d!0@(T5hpam|Y#w57+3(v|l<0blSc zG`LAEP;a6%?0@}fZ?R*1+3k;G!@0Q&x~%keE0tHFJi~T8fYIat{sO^U>`eF=w4jcK(2=d+#}vl_IrqNDY~GVw=#Io?A^Cf@a~P1bT>4sY^8uWt#ARleLU$ zX@1DIJMb7Re`M$VU(t;mXLw8&oraHD=yM4uaqTyk3s2}elzM`%Bk@tt;FJ+~#?7PQ z|yR%AcJ zjNevThb}QbxxgP`!TVc2Mw)mX)_r@Gb|?m5GHVH&s&vKwdzGhYAG)S7EW1>p)*#jD zP{fXYq21}q18%h?dF@ErtsXpKXxVej9jOXUw$tOT&f}CEgrP$NWM3@@3Qtmx`^I^R z)$9OrE$vKi63XK(r!Dr$LOv6sNpw%_P=_DmOAn>*7=Uh)<_nduBWNPqA3BWf*PgQZ z&`u2ODVtQ0PrCA)ibabXvc1Yn46U@*)l}j&{b`q&k@A`$=eEohhbGGu&nMDBj0{5S zd#{*b!&Hd(oqq(U7IfN`Q=V@Q5Sztl6YnoviX`dNNc_@24UXZo z?Fe0CqukkWf14cBQk*pT>`TdkA>GeookwG}3;CzB-Rd}|DQ=(h4P>6z5FTHBNQ^1@ zgy)QJu{JJXjE0J7tRnO;Lb!3_(@93LjiM9(F!IIA58gwFy}Dy${7n&dYBsWZKh|>R@6EH0O#N2+AI9 z+vgmxhoxDbr&$%dH{hl|DHpmIPrUMj7kyEZX{Vf7j4Ck|9idF=dFpf}Teo`)-+det zP!@<0!j_ps3EFpZCG9$vZ;B3v}s>XDZn+FQzM9 z7L)9@tc14^GMjLuFizw0*FM04G{y9U)-2@kY=W2N@a%*G=&n-OKzEe~euLKb7s)$a zx%B~MWcc}x;fHC!(uo|eCu&Dtv`WDHkWuDZ$K3L=I5~l8L$`&bO}%YTOU}o_ARntT z9F!pWs4nZ8!3fJ!($&S(W_A6vI>koW0rdwSoX#uFgO}aqzN)j*@()?!AG~e(c~)%T zD-~G$ljXmE0ZSJH`^vw#Qd7lnYD*EWCLKv1gvQVskV#sOK2A7Go(B{CB3chMV7iFs3$|q zuj`HHox@tyg<6%~w*X^eFZHO+_;jeAIiFnF^Vb^lUu@MOnXBrUFF$n`W?X|kKp8I- zyy+V4Qa9SYEJ@xC@AymG&V%+@H`+KI?bCOmrJ=&pJx`u&j9@iRW5W@2qZ4(Hl;Hs# z@r5?NWst-fp2W-Ch_|vVxe%}WP29|rxQiQcl#aOhU5M!gY!|mrr>;9quFwLPzh7Mq z9?Xr5Q)>p1Q+O_$!g)IK^njmn%4Sm;qpsGPa+bg1 zbUa~`Vcw#-kK$nd!!7GHIt%4eVMkg{&Foa0Yx-1|<>esyf5Lri;>jx!yv^p)HA`in zZ~v*8VhY7i4$)yjCz)>OESg*PgE+OAF`Mr*GQ4oHY^Y(#B~X`1vX;a8eheY>(04k4*pPOU zXpfmhUi16^K9#G%AsBA9T-XrY%)A;rXg`X|3+*hHtHJ$uh*xTcC_S+wxW4W7xQ9?} zyN&;X+Ou6d#);#vl&Gkab(hX<vG=mx6V7Ihc3 z1$4!bfWK`yS%bRdWQ`xspR8K~sr~rX$*K7#$K;=Ip1FMb__zmH@kH*4uh^#0zbfsW z`eX2ywjZY-EIR_Xg-?t*b#n0W6JvhF()%ubQkQkWj@%M-x0OvuyculI4(y>;oUC=S zxv@9CGW5obi*$~{DnB{Lecj7`uTLcU9O&?ML`$me51btGE%>8nMA;X`^Xa0;feL=T z9fM1-l&p!k&QNRdfCK~1u;t^b1WV{vww#2W_z}WCXad#W8C=xF?F7mf^>kvRd*teA zqnDb4cA~*FUD$3oMO$8DBru`$zOzclH0o_^QX!n0622>x;Voh+ZjI*n#k$9bcnx7$4_1 z8SxHbu^6)PNkRJ&W-)`|qMWTjUS^3*tnBH9i%7a%i7x@@S4W@2(dj;kO|5f}qUn~m z>LjMyrLLBa;8$zSS4)5Mp!_?cJ;M^2c5kBDYyTsny`TSoWTdTQiQMBzt5EA75v>%@ z^?(2Hq@Vu9YWUtp+K)B<5z&rb`ad$#zGsQt<4F7D$$vz&T0GbP{gJlh_y531OM2oT z5$!sD{nz{&v8X44lJu>*yfJk0#BCznslw+D+UXNN%0_EyZJF(M0q`fwWMUOhuN=u` zIDxLBJ6r4{GyM;*w+g#Q;Zo?%2Rk>j4|+{513K|^|3jngUWD6mCkT*=%*qs~)s!Vr~+aW|?SXPv`YFBz&dX zKPO?&^F^EY+Tso>7SEn9ETMO8B$qgGDK8RJM)t`XC#U9O{2ga^PupP^ef3b>z0Kw~ zQFF!h!aFR5i4S@>3)^>? z_R);4R1ISv+tE`KJJ@-Uo%8gcVih?Q(SB2%(VB)`&+GrwVMlrm%O4k^7NXheM~(E` zF!(}A;4Yd!|NHk}1^%nRe--$z0{>OuzY6?+tw4Z#YZM4Mn_pkB*cxeh9z1{1Eu-ZHFpXJbNw;VQ8AJAM?}U(CdR}@)*l|1 zkQf=0(71Vc{rH5qkqJZU$0ZC&ijGYj5*0IswWWSc;*gPXaZ&Y#Q(|F>EyJQ(h9%ZO z(>g}Rj80C7F8y5O=;UZ?+=!M)rgXdENy(9;StPVn>E5BhFsFvY^ew?Y8fo>|gRW_0iHNYUQQ*<%=r^zV8pcgSf5wfK=~~({E^_pcVR3Pz z{orlHcv<`rqvIlzhD47=$LXbN3=i}1%0Q(p4J?tCVU`Btf&wb6rzGyc3^xnOeP-@pvGxWcI?6CuF!W1%CevbyB{q&7v~{d;v7;wi;}Igs zi(>;!53Dcr2{*uC_1uX8VI3G2WgQ$gI?7td5nu8R$`{?Mz#6F`UV+~yB z@7BCJaddQayrB*~%?F}K4Z6ytM%CVvP3-~C8uWk(8-(&+(~!@bR5`@s02+cnn$`Gm z_J{HrLltnboWPN*)awS^8L}Kh+oip2NRW4OZcVl>gLeVTVV?KAB{V96dU2xOI43 za%|F&$b^K*i9=!p@t8!*=(v$X;DFgaF)5MFP(zaH)5ee_KG&10em+c$8xx&03Wtbw zd_o-l$Du<*j{PMkMvjbTbKt;dd-Uo2Z1>)Stpi)P>(!}uo546iS*>viR%3O9T8-mI zK)_VWT6a_(Yu&n|qDRMDOP4Ceju$I!;Q)%KlWL-MTx3E_BqkP$4gYv+>+bE_5GXz} z0S$^Ct?r1AaIaxIKs#)rH7a^UWb)`FD^ABaDsk$I9Aiz0jJ3vKLZGQIHYp}@G$|+! zU!Y<}z&j>UBw|G=F*>P^ks&#j`NJvJ+PyvM5~3rc66*nNiyS^mY+K`#!J8Zpr)cJG zjZ5a4jE=!_A#Q{g*NXLmbz*dqHF`qy@MN4!>wqaTHcH*L#vlQ7Zw%5zLl_)+MURP3 znuwDd>62t_og5pJ#1u-3851oxlOl{YV$({(>l7k1HFiwQXz)i5r#={y$lJ|VGf0>@ zMJ7aBhmVSj86KTzr80AlverQ7C)TWErMzQtM$zq#O{|Gv(Gyxyp5TRN-J}Se6YZ!= zX-7cVI1*e>K~dQVL_3qMGzPF|c--i?MFH@!2}jIzA?8lr~-%RE&D2ZybesX_8111r3JYeYJ#Ni3i(M$_|Z16@U5?CJ^UXe-B))81qQM3efTSAl-$2^TL zJu}8BIjQ4{lhRp{$Dsp2gs?{PF&d3-)D2NK1wj74?UCqO~=_*tk!O92ZS( z*Y+evutuZjL>1e1(~zoI_>rUIhG8;L8=;P)SnHF-@}#@=k;9W>1X47=ZX6rg>M*HC zhbH?&p5v{ppYPm(r8zz(3L{P393O%GG`Q3hvFVl}PW`bXd5#5>XnGgGqwzRNp4{foS4TYPvSKsa; zrbsV>cByA7=G%b#T4hskCBP0rtfSGP+NG7Tfu>IANds?(XS>^Y4jRPmlC4JA=nB^1&aUBTAE=zbaK0rl}hpAT=(9d`psOa%V;2a?v=x00)#NvrQwf+q~i;mZt$~vUz zcrA4gJZn1$$5?wM$Hvn7iLN|Z7i;qs^Wh?Sb<*b}`7|C{xzxjDDUB)|?@73j<3mfw zdv|AK?r$7YOCQK*9Czm;#35Dvj^pm^7RTD7UGLtkA2cb{1DtAPuRuDcgZVsBhpn_Q zQ4GUrWqeDOh9(qAw`Pn*HX;I%Brvh*L*eEjV4|Ry}X#z7Vk&30JN5A`a zrmFys90HOdF;QeJ<7*c!zHVm6m8klMBCqJ&fi6#xqjA1te%e8yHKr(JevDVQGmqP0 zB2rRQW_hY71G*eAp0>P$-NqT?GLAELW#NU&if4z)%L5$hu`ZckA=8#-ewCj&*M|gQ!H-1lCb%@Ncqs{!o34G!PJD<__%vM zrX)qrhep{w=VMC3@+tDV*Hj+Edd|Ofw5e1WO~&9^h5Hzx+Y!qy(1%<9u z+7Fuvdu?%{>mcldOA1{VVY6V%ma|xXhOGlT`@=$4SJ+jsqhb3kEp*L>oecXK?4pl= zhusEy5w_cgLRUzz#S#x24x0ko12z*j9(F5i25c_uYS`%!9egnGb+ z!$!mQfK7#shkXw=12zkGHSBk=Ik1*Zz{57)419TuW#ks%Vc*#bJnYxofQPNN9eCJl zS-`_Sy#sjIw_x*OU)%-!{T9nc*l^hLyMc$jwg-6Fr}qL6y9jnQ?6hp)VZVmWhYkA* z_zD(FAby869QJwG9ge75rvmKI}`dAr&z$V8daT9|j)w zI&3^_wFf_*vd~*f(G^U_(v<58E3y z2lfPPKCJZ=@c2cr6|mv31+YC}XPgEeHU~BX_Vka1uC=gZ&lI|j!Y1Svx~{?YJ6q_g z_@KqI6Sgtz8$T7g`oMO-Q0Pj6jms}|&4+Dx8F<(=ut#AhUjZIA;41KyES4W&8^b1E z10J^Pb>Lxtft?S#=}+KcyZr?`>|+JM!>)s^_z=eJ4d7v`-2@)C05%EMaSM3ZsN2B9 z-he#{d-x9UurYd)FR|Xz-BW%S- zEtZUjfrkyN0z7OXY!d8(s=&j>J_0<14J^U>n0uYz{nZj~2kg{sKE6 zc1ug(VSD2B6-QxfwFVw`2W&-rq4yoUv!yX?gEqj!-hfSlo$(a#umjox5Bmq~QP}Ku zz{5ti2mT3*r6peX)fn~&Y#-Rn4#2~;0-Rx6v|Hn1LktsAxmY{N~!!zRIwg3W?Wg)M;1gzc~yc-WU=ov=T^2G)oE zTY!fh3~Ps73_A+;4s0rH?XAGWrov{!u7`EPR@er7xWzIRwg&7eSUYUz?ZCrk!luHO z&jKFyMc8cE`*r{iI~6vtfyGjJC-ATtuy)wGyMTvX3Y!Ysb~o^_>tVBDhwcF$_E%VX z`9a2B;9(!w2Rv*R>?qid*}%i*!)C&c`wDp2u>HWpu7C|}gyZS}@UXeCcG$TGfrkzK z8hF^h}4Ol1a%ijXu7~?Dlc-XbDcG!`JfQS7ZHWha9Vc=n(I08KE&#+F| zn4`cq!T#@nhy4uJ4%_>C;9-x!rov7;20U!BnA~%+RNxduq6G8$WE_+{KMgZTBQxKB9{68>dkzy7Ov6l*sAO+-9Q zofeC&T*$0qPY0D8fP}C~^`GJ26x4rAJJkB(?+20x)gQ#a;#i}5!&^~z5&ue}{)5se zsCe6q;>BMt&4Lg|2-^ONrO+z})zdG3&qV#d4LK~+a_E8j@}SEByS zGHx8HWi*al_*mz8=b(02iep`d`cJ5=YEf*lhPR^rGavZ2s9)s+KNR)N=bOi$j`~)p zH;ca*^}BuGvrxYe^;Wb~%fI-8#ngVtrTRC$$G1|OOIR%XQ9swcA6}9DP#r!^KJm^$ z8g@W^bJT|tpQ>S3CLud6qflSh2Yx2%!+qeFp+3w9emClC_`sh-eN`X$5(>tM4}5jh zhx)*GKz$`2_$br|`M}RaeTWbIGSn+R@VikT=mUQa^>;E0U09mP{uw6wr$kAPZ;W|C z>%Zc)1Jp589raZ{Ep#<9)YsDLJD|S)3iJ9X)VKf4ynZI?`~Dl(X8Qb!bzuq8_*#bg zG}Iq4#NV&Q-;Mg#s|sDu8t@%8{5jOWgnBdn68GWS3H4_D)luK;b94RX)xG=P!YC*>|WnRqTe8Lm3k3xNS+_N&veL=hHm>K^$)PIb6 zGyW1-51m2%PloY%LK~meQNLuTIe!P#=b+wRiw7z~4t7hk)bEuz;`dRw=VpBDI39KK^qP~;9ewxHrM|~jf5vJ?w zi@mDhJD@%h_1z5h9klu=)GzjdpNaZ1`@G|=;9Q3K=BN+S_Yc-e#auGSZ1_~eearcV z9MZKMoTy)b`T#vgu>!3=uq<5%6}o;k;7@DyHBjGrf1&F|Lw%%HZ%6$s)aMxL_i6Q` zP~Q~yO}Ah!lINH;_mKn5@u{dkjQgV1Fjvd^N+s3$Ow=F2{m)$n{!JQxHtNTnD0IDI zsGp$KJ5hfO_1T8{?OJ_c5U$&PFdri|Q2z_+PZ;ny8s3ij_i^9#Z9{#ARzC{$51ul| zr=mUw^=9}?)OW`H+V2ef2Q~g|)EAU-qky2MaFTdN<1`aP&O!>6Kt3hpzT;WJTx8TDrPY}9As{Am;A*X|Nq+i_V}u*EC0iz7${osfnuQs6%AU`1VOQ- zm4J~%c?rRSf`^dYJS54DH#Y(m5v?6ls}_I0ilU;m8nr4d6d_?hvz!J_^kr} z33y-pHi1vQ-$(z!kNTjG{)4|3ytn`0&-lxPrnQNQ{b<2>d)uzZt#_O4(5xWZQ%EU_vSzF7yR9?Uvx08 zq47M;r(Xj8R`9<1tH9Un_3Jl*|2=r0|GU6nhUa#^`0ED$H}F3FZQy_Usb9Yb{J5My zev1yl{dDlY_$>kdwIJv3Klt~+`~24gzOi4<+x{-_#r<>M`0ED04!pPj;O7qT>-T{F z1Ndj0_{#4eibmi?iGew9{FQ)zAG}Y$3ViqH{Q6Dczc|S6zb^1kfxp3NUw;444SxE5 ze*JCWKLzj8?*ZRYvx0C zf%oO#ZQ$=2n)AkQ5BTBx_tF2ua8Dn+&wnN0zkYzf{Z-&U0>91~zkL2|0&kvYd;1T* zWSC#S8~h#Meet&q{Mp0(@z(?X_uzf{MI*8P9_ZIE0lypkb58$a`(NJF{VzsLc7uN%{L%6IH|BZS2z#4Oo_`vd zl3ebJxXggn(S5wPz|T1@m#f9KQ2rjvf??(&6YdFy;+>ysznaTk;OI9+`d{Es4jDBf9Ge`d~mkLk&F6 zBmEiRKbZ;tIqhqT+SdYp#;jcKGDm-<)h~w5Rp1}QyD@{~&+^O|e_}=K7;S{ib!Xvy zl_5~jXKe#E*$3EW47P*+%A#EE5@(DqjK*je_-h(-xr>}OWTHL{LqlF~%H_UsNZkI! zLrf=({W9?Ttv35l+_cNy-4@Ui%1pd}8#2TuI>gX>WF@9PA{#Ec*asHBg8&`lo;Jdk8 zb)4@%MFfBu8|xu+B4j4TWzr&I_|4$Y1bFCdj^hX_u zJzXFCWbh|k>7Vb5z&G^4uL6I2AN+doJHY#VycztM@8xo#)Bdxg_U{D01pK)UKR4p{ zg1-ekZVlweu-ekr|D%q=JEq`$u{s(2jo@42`u*!7`-{N;H~6V>er4YND)0lZ%H?Ln z`To-){q^9>zrV#%R3G|_ z!0&%`E;lW%AA2sd3Va#(#c{rWO}_u&Tfvvc`Bc9C&EPNULw_gupZB4^7yQ5Vp+9OY zUJtn@=Y8fe8T?G}zW7@N{wnaT@%HzxkNUR?{PTV2uLpnF_xp%{@U`H5>+MePH-o>` zssH+@{=MK2U5h{c?(nSQ^ml@P75sfp|L%zTw-;3wR!2cU~pZ+TFb8hhK zuLu7x;C=d=!B4r-ufG%g-QXW``hR!6|KKOyF)(U_!htZC?x(gc%S}c@SpafzX*K&`dn_4 z)>ZwCKI@IL*W;K$$T zAHTie9|iAg|ES}G;MgDf^(TY>7w|s)Mc_x>mCG%2`X?`5nf==;@QvVod+GJye+9n5 z(O+!+W1!ED&phy%2R`$_XCC;>1D|=|GY@>`f&bkD#kl4*$2gYnpCIQC+nX%7-l&lC z`DaMEf4h|BH%fWUgHkSgRLY~Dka8Ex&3}~ht|z7Z!=I$Q_+=>{X8AVDv9AcenB@&D zpJ4gY(Zb*Nmwxtx{Ez#K{D9XQn$V z)Ewp!fjRKXOxlzi2bllyJp?I&t^3J`K|JpvKZNJ@U3z@}JkRm?)gI=ya{QoLuywVx zPyUAl3B0yp4^|f(%JVhssN$1YaS{0{>JR3*){jR3_E5P`a?(Gz(?Xx}yoZXpJa6@O z@%(!7f8)9OjpqN)itQYiq`|UcL8h>r!*U7Bc9v^cu4TD_4cIT2( zCT#kFxr*^wOaZ)}RZ!l)qJUV7e4e04hb}$C~mIt3-$LWR{p@C{SfiD&Xdi=*Amyf^gH4k z6Y@_H-=4t#llU&;BXDkx9{lSU92gAaxN6>bpLhvz%}<{apOnA{!%@c09OA2d2F7?jxVkjTRR5_JC=$a>6QFn zsQt^V{GmZIA7z2#E^ScuW!H{*2Hh_>EXwO@|5o4_m0-T;yNFMHQE>a54xCx`jQsCP1%ICMqk#`c{4b&3N{ElA{F~o&<*SL`{H_Sj zrhGl|hh7tT`|Jdq`97I;YmLj1<- zQ}_)GR&^2a?+~}oXu(}W{E?5{dhfM3m1D&Tl)vx;k-v}J!Y_z_eop^r9{7KhA4dBR zQGPS<;+S3ixC6NH^OS_0w_v|G!0wT_%KrizLlajIye;jq&t^cr$$H0f#nW*df(>IK z|Btr#u%Q2OV&^7Sa0>CuE)-nj|7_y-mka(3<(C1s^ZHUu1ROfAS5baV%C&P2Hq3?E zb2H_)_lW#r+TTcg^H|r;;})k-toSd=uVcS--hD)T*Q;V@5_N`R18w}N`+Kuao8vIz zPdy{@*Gdr_OT32HBli3EkRMO{Z00fb+ic=njuivXS?jp(Onl{=g4<`9;8qiFHwhNU zh4z2^<`D7MCc1WhLj1P%f?rMfEf(iVtaz64e;Fv_^-tt>5ueM1p?PU2Huz?IHzeZo zVBp4Y1DMA&9>x*Z>#3t?|LerhPfI)35kH5xUXQ7K8}Sme5aakB<*z2byGd{z-yadb zsYe7)6gqeUxM}~6MEj?pBGdl;28bW-q5c1)o$uc%26ocUZs5Z(AIlQ+@ng#W`T!BM z->-wMK}ZP3{&nXHekJXXCBAxu;P(4=;7+nQg6V`FXl`~F@rpz^00 zy#Me(uZL+qsI>BWmM<63&Qi|PsiaznUtB5m>OA@m@gEiouJLdy@yBPm?fg0Mqu&$5 zx_)gZKBq|JHQsg+FX8;vd40eT>F=eDZoOkIp6`!-ngZO;qePxOn|7{kbM2VFaAy4Z zBJXG1OGDoxzVt65Uq$>f&flls66jK2qAhHZhNW!uII> z6^+lwi0{{5+QVfyc%Qi5mr?m4xDYV?ePojBhcU#j+#|T=tFKx--){Z1i1PKX38H!6 zGU6|Ad}mVOHsEGl*05hv3w~3C@_K(s+qs4KU5ror?htG}MSK(UmD+!s_*~{~ji14G z9UK5ubRb zYsdU9rWu#{Rf6mMx_ON8+sI&8A|5tT{=N>8*Zw|9{E8WZYrU@#AJ6Lrl{de;Y3f}% zTI4TfA4U@Y(gwjFlp-i2UiX{;<0wCk_z3$F6W(`2{F&oC;_C-V{$D0=kR^WcQDR5^ z|2^WbaDCMF-%0%3*F|3UE&ob<&q~2{T>eb__{6^S72+3j|EBqK_yOXFd+WuH*82$N zqw&wpZwapR{W!}1;|=Lh4f{2n_+sV<-B;8CH}StcF^(5de(QT;U+10qp0KI+kOsFs z!*Bs^>Ux`dPNKzLOY{~|2%=8U~vk?ic={+zDMlq_2x|j#QsB{2>uXt=0o22p*V4! zdp_;_gY)Z3%Ad*hZ+%DX=s13t@>{11uJht7=k>+Te(t_#kEh-tlt1K1saMD42;%46Ex3KB8f`5HZvB&32T!N`IQmoD zzl8V>?vtC@-xb6!Ia}=OyjX=B&Bp#^iF|H;=hpb)+x?|qm($LVi9h;%v2%eG!NbJQ z;JD~~d4l*qJ`e+Xo%J7s#Qu2hs~@8MH!1)6>25m**mW7>@_E6pr~F9bJzTgno+lFj zPK5~SIMxs!w@mD4TyYd=v7_}Wjv9r*D6BLlq;takRp!e_?i=ggm_Bt{cIh<;EzPa&Te`ImVgV-w{kK;Ddd zQ6m4GN;~&=N_#X;zG>z0pZyU%bI(wY2Ffqtx~%j4BI1j`A$D{fyq5Tkv7&zu6W;^G z@BEd>UnE8Fd*VBI0jl?-ULn3{hX_8#_IynIY|clW7Y80Bez=->X&U9P#`*@8UdOSN z*XL~-Kb6EEzD??FW;<($kKQVP{XPP$wh@2+V!^MV{H4UFy&=H)Y{8Ahhp?R`#P0`g z#_OfTy0C@v^FIZE&@nOLmZ2t|E|0?m1=(iT)kJ6uae<<~89y^QjKRCthS1WKcjvpt+ zaSi2{@W$k9+P{VPNp$=-i9bO60mhGB&;Ew^xhF`y>bFzyAj6DfP-4eDwtJ+Vch1 zcD_dZ=(oj=_SgK5yz%ptqXj=kJ8-DruO{}rhZ28%fY?_%6Np!?7knY@Odu!zok@FK`&)<~%>A~u z=Xv5kc~Io-?`GoT%fwH8+3nXJ;>YoNR_z>&{fTMM;4h23`oEL=z!BVU-^X^AQa<~d z$bXG^1#lA&yAts{hw`V&gQ4I#$~O~#);s{h@gnidiI1lLRen8jeLq6ii;cwfJqg8s zOI+WtP<#jRCA<#0iS>R6+{}wIwx4j&Z>0F=h*oK*#_gfNO@Duoi2q|Ke@dAv{|(|J zxDU~Jx`6nyyF~s1R@^}RbFT_;Jn?13Yq)>Yar}wBt{E8|mhk^~DgWQkIxc$_2+rSCk+&Q0d+1WKK%&+?j>%%XKw2K!+Qeg`n!qv>Kd`5 zetuGMK38g>o!5z9+2YC%`l7Ml`#8elxIfAJW|Js#4Dlau{_6F`B;w0>LGTRaXA?i@ zj{<1F&Q<#}r9JA;3y2?BF8DgyxrTUYwcr{j_YuGUOM>h8ZY4f$oNNC%;E%Cb*8*MB*cOUq#!0 z2Csv@^>>liJUpB7so8?7-x`TOoe^B~(rV)G?Jv0Q)4GW_|6Lrcab^CVgNe5*R=D=x zvN#7LR(wi%ecw#y%TQi-?4Inl=V;;`jAxDisl@MpQj8bNvJ}i>-Y7}<|2)d?dSC3T z-e@rTyZB{ePwWvPY#o+OIznzv&-ty{}n2hXpWUXeCc_DuVcOD?}nK1 zn!@>|`P_WJ-Qd4nAoAMZ$BF;yB*AsQzd`)mX9QnP`{sM@h4S#gVzED@*lo{J#?|SJ zf8GBaLHWjRk+CVv+xI=(cBr#a&r* zwh6eokCEKBJObSK?Y^aANB#K%@v?R(#oxLiKB80V)p3~uyqGfa;vCBB`>mP>+K8`7%!@5wka}O;)z6yIak+%@ z=Pndn;-_<7Xl9s}uQZ8SxVC!)LIn%ZQ(KjM&$H-9mhDk>JxQ z|1j}~`U$S}j^%Tr7kJ;}A<92Xd3`@x$LmAlZ#9S=9rptvVB+VjH^qQnA5A9yAfI<% zPWuap>-*Shf4Rje6f16|{CP9odN%<#anNi=@UAAUgB zdL4(G>$v`SSXAs%#k{`T@Uq~CkS-@agZV+@Y6kJCwbFi_rwzo1CF1`g=B2Z9BEN<9 zms@$aE#~Y-+S&H?gnx*C!0S+5$Nxxt{Iw!)f7=CiULbzk8G>v4e@uMIC4$@El7al- zu`=#Ya$cxE#{f6uvLvw%PN00nF4Jm!4^+$ri-|u&|2!jfkR|>Y_p53@m{*s{mY1f3 zFsxnL9A;}90{|V_&W484x}ZLlNi{ZiWK)?i+Zxujq}x&*kgQLKjVt8O ztnFM8)TLY7TT)hBbh;i*f?#J`T^N?0lK(g<|MBGf$CL6OC+0s+$bURB|8ac&V|o5#S7SR+s7O7L}T7MrmAxG-0EqL`N&JN z;=Y(yGq-xybi`OHHD&sY>Z#Mh@ulNSCnnqZzZ#v+Ua~KRD>Fl4#vg%QZ{4eo4dL&g zy)#?aRGV>{ky??>)YfIgw$4^WbWq#gZd6TZ2NiRthcl~Z#XUB!`W!SPm^QbvqNcKt zpJ&*SZ_lI~Gw^A$lXgVukox8Z{5{d;)>H>#D{O6UX=(0A)ur3&&BShLURq}YIg<@r zYn$7m7N0nwP^%=|no_j|`m7y7+#r5YM>f#l4QpnHXpEeTTNSchuUHW8`utG(mPxgy zFLZ}8tge|E=2KM7%xNY;)zmI+NnteV)1BF<17_rX-aBpfe9SgzWa`>iIvUYnSDqD{ zWfJcZ=SH0jR77IpYPSPBn>sTYBtJX-@{zM>^wnIWBG6 z!M;wLJ#$XQ+{)0Mr|q4Y#*}1+Ktsu%hB7tHOgt&yYGkNO`ju`&&2IgBYk=zibJCWVgUP&kEJxw}vQzEzaQdi%^a@vaPIG7Ov!Gxqk$kYoY7sWGXeC6&*XHrco{%tl1y04&Tlu5{cY0+X7AtKhWK zQi+g=!jwra-hFRX@sLeq7Y#u6(yR%XX?0D@Y#2mSZGt2!}r3h7bg4clk(+QGqcr`-Z|h8>yos-HL?VWMY4LCXE=6xBZkL zxkPAW^r|VDU!47Ccb3g0nay;j!Unsl+1x4aw>#x@#%wg|E$pm~9fh~8Hpl~av!(m2 zs9*W%?l?kW=~8l#dnFB>W0BwNP?}iKf!wEr#zY)7P6u7<^KGAO&=uUcSw_|*n;h)Y zQD8nfo!4r0;~-n!UJ+ejn~+auw&JKGNS;x8jKIXTk!gZlewd}*4&KR0;FO>NTMaj+ zdk>DWl)rAW{Z3prIaNo4R=8#K0?A=`*9rm<9w;~ETN^&WyohON%QsV# z5H-W<*=SxpHfNn3$eMQksRJ}CMFFSnvSaAK2~ZX+#m%TT9U{38q_J5z3)`Cq<0WbH zRtK+d3WN|7V8Rs=JMn3i9P#qRS`nBldA&@rH>;vX_U=H^^RmPx+CaDGw^+=3Lmug&Zi9xEu9@rg zjbf+)PBs~*zTll2y(BXC;q1`sj7e6RaEK;uwj_QvXp>tq*0d*yeX5kMk zj(ehfe9+lZ+n6ep{cYO|ENwEI9V=yy+hTWK%w3m!Dz&j=&1%xF!#*jSzxRV%!;!o* z2aFed8!`@X6r-o?>vCg^7OqZagnPl&R@;W#RC04W(sKOEhG^eR2s=waV>+8&u~KG` zbz-jxl#g@Mwx~ztWllTuZj9RD%)CD1DUpkraqUWyuSDl+LRbSfn!JnBqe zar>k~^+`N5rCQqeZH~#nu*%q;x1>8Wfqj~rh`4y5 zm^M= zVVh2)b~^dUrO?W}Z^ZSHnv-jLPx`o?45?i$gN_0hpOH<+qqZqnBjurHG<@dz+czN+ z&2X9@b7`~ZA(i6^CXR;XndaDPW9|TlA)fT{nR?Xpgl?3J%k;8RPvrR!M9%^Q5m!iyO zq-@epxMP^gv1?XBv8}Td4ImiXF$bMSS#2*YcQ0e&hd(w{_qEz2TF`B0QNKMCh?{U+*biPr+1W1w?} zzg>y*xW4}WrIy7B`K10g!GDC`TGjsR@6l>Gf%=13Cfi>N9Iv=W{qJG>wcNpT(?;Vv z)jtfM&0)TGVnnol{ry`l^*vW3YmTJ<&G)>_Z^^2@{(h{MbFCJ>@4`~$v|J6`{5Gwg z>+jQQIfr`5_7e`S#s}k5)z{z4)v}8H*ZPzFH}8KM{i*n84*mUIE%o<$jlS_&QvVKM z#wTh&D8`97itYb_iSPK49RKwoPEjJ(U>TCQc`U*baE2^#q&aAQr{H+Pxo`i9glX z-@D%0ChebM$k?IvYB>meTt8UDk!+W;ET(Hds-D6_p=>a%e+u=>s6U71RK8e0upG|% zll7>6V)$%ZjjCz0IZT+bgbdu_kw-@(AO?N*Why>yFMy$bJ##}BPn UG5q{TLH(9TMgQ=GLgF;|ANFl3761SM literal 0 HcmV?d00001 diff --git a/src/Makefile b/src/Makefile new file mode 100644 index 0000000..abedddd --- /dev/null +++ b/src/Makefile @@ -0,0 +1,52 @@ + +NAME_TEST=is_good +CC=gcc +LDFLAGS=-lpthread +ROOT_DIR=$(shell pwd) +INCLUDE_DIR=$(ROOT_DIR) +CFLAGS=-I$(INCLUDE_DIR) +SRC_DIR=$(ROOT_DIR) +SRC=$(wildcard */*.c) +OBJ=$(SRC:.c=.o) +#HEADS=$(OBJS:.o=.h) +TEST_DIR=$(ROOT_DIR) +EXECSRC=$(TEST_DIR)/$(NAME_TEST).c +EXEC=$(ROOT_DIR)/launch_$(NAME_TEST) +PERMSRC=$(wildcard perm*/*perm*.c) +PERMSRC_O=$(PERMSRC:.c=.o) +SETTSRC=$(wildcard set*/set*.c) +SETTSRC_O=$(SETTSRC:.c=.o) +TOOLSRC=$(wildcard too*/tool*.c) +TOOLSRC_O=$(TOOLSRC:.c=.o) +TESTSRC=$(wildcard test*/test*.c) +TESTSRC_O=$(TESTSRC:.c=.o) + + +all: $(EXEC) + +$(EXEC): $(EXECSRC) $(OBJ) + $(CC) -o $@ $^ -I$(INCLUDE_DIR) $(LDFLAGS) + + +$(TESTSRC_O): $(TESTSRC) $(TOOLSRC_O) + $(CC) -o $@ -c $< $(CFLAGS) + +$(PERMSRC_O): $(PERMSRC) $(SETTSRC_O) + $(CC) -o $@ -c $< $(CFLAGS) + +$(SETTSRC_O) : $(SETTSRC) $(TOOLSRC_O) + $(CC) -o $@ -c $< $(CFLAGS) + +$(TOOLSRC_O): $(TOOLSRC) + $(CC) -o $@ -c $< $(CFLAGS) + +.PHONY: clean mrproper + +clean: + rm -f $(OBJS) + +mrproper: clean + rm -f $(EXEC) + +run: $(EXEC) + $(EXEC) diff --git a/src/coordinate/coordinate.h b/src/coordinate/coordinate.h index 2521882..2850d0a 100644 --- a/src/coordinate/coordinate.h +++ b/src/coordinate/coordinate.h @@ -1,7 +1,7 @@ #ifndef __COORDINATE_C__H__ #define __COORDINATE_C__H__ -#include "src/dimension/dimension.h" +#include "dimension/dimension.h" struct coordinate diff --git a/src/dimension/dimension.cpp b/src/dimension/dimension.cpp index e351cff..aba7d8a 100644 --- a/src/dimension/dimension.cpp +++ b/src/dimension/dimension.cpp @@ -8,14 +8,14 @@ -//#include "/home/fanasina/progr_/ptens0neD/src/dimension/dimension.h" +//#include "/home/fanasina/progr_/ptens0neD/dimension/dimension.h" -//#include "/home/fanasina/progr_/ptens0neD/src/permutation/permutation.h" +//#include "/home/fanasina/progr_/ptens0neD/permutation/permutation.h" -#include "src/dimension/dimension.hpp" +#include "dimension/dimension.hpp" -#include "src/permutation/permutation.hpp" +#include "permutation/permutation.hpp" //#include "permutation.h" /*void dimension::initDim(int* arr, bool end = true) { diff --git a/src/is_good.c b/src/is_good.c new file mode 100644 index 0000000..883ef75 --- /dev/null +++ b/src/is_good.c @@ -0,0 +1,157 @@ +#include +#include +#include + +// for sleep ! +#ifdef __linux__ + #include +#elif _WIN32 + #include +#endif + +#include "test_t/test_t.h" + +#include "permutation_t/permutation_t.h" + +TEST(size_permutation2){ + PRINTF("another size_permutation2 again\n"); + ASSERT_TRUE(false); +} + +TEST(size_permutation) +{ + PERMUTATION_TYPE_CHAR *p = CREATE_PERMUTATION_TYPE_CHAR(3); + + PRINTF(" size = %lu \n",p->size); + EXPECT_EQ(p->size, 3); + PRINTF("test size_permutation2\n"); +} +TEST(size_permutation2){ + PRINTF("another size_permutation2 again false\n"); + bool val_bool = false; + ASSERT_TRUE(val_bool); +} +TEST(size_permutation2) +{ + PRINTF("test size_permutation2\n"); + bool val_bool = true; + ASSERT_FALSE(val_bool); +/* + PERMUTATION_TYPE_CHAR *p = CREATE_PERMUTATION_TYPE_CHAR(3); + + PRINTF(" size = %u \n",p->size); + if(p->size == 3) print_OK_with_msg_endl(" FF yeah GOOD test size passed "); + else print_KO_with_msg_endl("NOT GOOD test size not passed "); +*/ +} +TEST(float_equal){ + PRINTF("another size_permutation2 float\n"); + ASSERT_TRUE(true); + float a = 1.00001f; + float b = 1.00001f; + ASSERT_EQ_TYPE_FLOAT(a,b); + b=1.0000101f; + ASSERT_EQ_TYPE_FLOAT(a,b); + ASSERT_EQ_TYPE_FLOAT(1.0000102f,b); +} +TEST(double_equal){ + PRINTF("another size_permutation2 double\n"); + ASSERT_TRUE(true); + double a = 1.00000001; + double b = 1.00000001; + ASSERT_EQ_TYPE_DOUBLE(a,b); + b=1.00000001000000001; + ASSERT_EQ_TYPE_DOUBLE(a,b); + ASSERT_EQ_TYPE_DOUBLE(1.0000000100000002,b); +} + +TEST(){ + unsigned char c = 'a'; + + debug_print("another size_permutation2, a = %c\n",c); + ASSERT_FALSE(true); + ASSERT_TRUE(true); + ASSERT_TRUE(true); +} + +TEST(){ + sleep(3); + int a = 5; + long b = 5; + ASSERT_EQ(a,b); + a=4; + ASSERT_EQ(a,b); + +} + +TEST(expect){ + sleep(2); + int a = 5; + int b = 6; + EXPECT_EQ(a,b); + //SKIP(); + SKIP("on skip eq string\n"); + EXPECT_EQ_TYPE_STRING("hello","hello"); + float f1 = 1.00019999, f2=1.00019999; + EXPECT_EQ_TYPE_FLOAT(f1,f2); + +} + +TEST(){ + PRINTF("no test, only print\n"); +} + +TEST(){ + PRINTF("no test, only print\n"); +} + +TEST(){ + PRINTF("no test, only print\n"); +} + + +TEST(){ + + PERMUTATION_TYPE_CHAR *p_char = CREATE_PERMUTATION_TYPE_CHAR(6); + p_char->perm[0]='B'; + p_char->perm[1]='A'; + p_char->perm[2]='Y'; + p_char->perm[3]='C'; + p_char->perm[4]='D'; + p_char->perm[5]='Z'; + + PERMUTATION_TYPE_SIZE_T *tr_p_char = TRANSLATE_TO_SET_THEORIC_SIZE_T_TYPE_CHAR(p_char); + + for(int i = 0; i < tr_p_char->size; ++i) PRINTF(" [%d ]%ld ,",i,tr_p_char->perm[i]); + PRINTF("p_char == %s\n",p_char->perm); +} + +TEST(lessThan){ + long int a=1,b=2; + EXPECT_LT(a,b); + EXPECT_LT(b,a); + +} + +TEST(sleep){sleep(2);} +TEST(sleep){sleep(2);} +TEST(sleep){sleep(2);} +TEST(sleep){sleep(2);} +TEST(sleep){sleep(2);} +TEST(sleep){sleep(2);} +TEST(sleep){sleep(2);} + +int main(int argc, char **argv){ + + //run_all_tests(); + //run_all_tests_parallel(4); + + run_all_tests_args(argc, argv); + + //purge_tests(); + //run_some_tests(8, 1, 2, 2, 3, 3, 0, 4, 1); + //run_some_tests(8, 5, 7, 1, 1, 1, 1, 1, 1); + //run_some_tests_one_by_one(3, 1, 2, 2); + //run_all_tests_exept(2, 1, 3); + return 0; +} diff --git a/src/launch_is_good b/src/launch_is_good new file mode 100644 index 0000000000000000000000000000000000000000..b35e1d942551894fccdef5fb990882ca7d66354a GIT binary patch literal 182856 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 R1@)UA7ybPc3W?L;{{p8_F_-`V literal 0 HcmV?d00001 diff --git a/src/permutation_t/permutation_t.c b/src/permutation_t/permutation_t.c index 28bb305..4caf54b 100644 --- a/src/permutation_t/permutation_t.c +++ b/src/permutation_t/permutation_t.c @@ -1,4 +1,4 @@ -#include "src/permutation_t/permutation_t.h" +#include "permutation_t/permutation_t.h" #define GENERATE_PERMUTATION_FUNCTIONS_UNSIGNED(type)\ bool IS_PERMUTATION_SET_THEORIC_##type(const PERMUTATION_##type *p){\ diff --git a/src/permutation_t/permutation_t.h b/src/permutation_t/permutation_t.h index 6a5d8ef..49f03de 100644 --- a/src/permutation_t/permutation_t.h +++ b/src/permutation_t/permutation_t.h @@ -1,8 +1,8 @@ #ifndef __PERMUTATION_T_C_H__ #define __PERMUTATION_T_C_H__ -#include "src/tools_t/tools_t.h" -#include "src/set_theoric_t/set_theoric_t.h" +#include "tools_t/tools_t.h" +#include "set_theoric_t/set_theoric_t.h" /* struct of permutation, not necessarly set_theoric * diff --git a/src/permutation_t/permutation_t.o b/src/permutation_t/permutation_t.o new file mode 100644 index 0000000000000000000000000000000000000000..154f6b5aa75d795c47e23e671715861079c1ab13 GIT binary patch literal 19768 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 literal 0 HcmV?d00001 diff --git a/src/set_theoric_t/set_theoric_t.c b/src/set_theoric_t/set_theoric_t.c index cdc4d01..ab589cd 100644 --- a/src/set_theoric_t/set_theoric_t.c +++ b/src/set_theoric_t/set_theoric_t.c @@ -1,5 +1,5 @@ -#include "src/set_theoric_t/set_theoric_t.h" +#include "set_theoric_t/set_theoric_t.h" #define GENERATE_SET_THEORIC(type) \ SET_THEORIC_##type * CREATE_SET_THEORIC_##type(size_t id){ \ diff --git a/src/set_theoric_t/set_theoric_t.h b/src/set_theoric_t/set_theoric_t.h index 12a0fea..a13122c 100644 --- a/src/set_theoric_t/set_theoric_t.h +++ b/src/set_theoric_t/set_theoric_t.h @@ -3,7 +3,7 @@ #include -#include "src/tools_t/tools_t.h" +#include "tools_t/tools_t.h" #define GENERATE_UNSIGNED_SET_THEORIC(type) \ struct SET_THEORIC_##type{ \ diff --git a/src/set_theoric_t/set_theoric_t.o b/src/set_theoric_t/set_theoric_t.o new file mode 100644 index 0000000000000000000000000000000000000000..3c352e6fd87026cb8758a1fd3ef72b1d344033a7 GIT binary patch literal 3128 zcmd^B&1)N15T9Kqv6_$C2{|OVv^w;gX0bw`O&WrN^6KZ3rbd0!eI8G+AK9(4GD7K}wLTu5# zE4D2KoED86zmv%?KXtNW=2g)KiaPKR-VyEUD=I@6q%E!W5cc_I{g0@~4Y<4$BC3GN zxB`N(faNE4L=kIZi%Q-Y(sk6umLyYa1*O1V5L*^ORLJArLe@l!-0A*xI4xS$*K{d$ z(F)_NE5*Mo=6X*t*yKD;LD$k3QHxv?o2rS}E{IJ_$?u9rpGeizF*Sek zq%(Z#4ThK0v}wKl zMaTaK!jV3pt)sut(LW{}DbBwYsw4eb)x+pBum_&CdlU%tMSKYlBYva{SG`1R7#GdO zq_+_udu^wBi&&QNWp+?KMR}I-5xN+X>Lv2~xG2t-jH@0X_JHx@_z;Lx?~t$JBKt|k zwf$4ZpBeU0^?cW#^2(KKMb~$VkjaYkIpL0roST#4!|Z6r&3!Z`+`OBS=d(~MOi!1K zFghM<5g%amQZB}kH1U2H-FVMX7w0=Z`mu1Mld|e%>F9gvcL+}PR>?0+AonXFpVCsrn=UxMchd*wO2IFHGf}OAQ!JNC-V9@C7mC;Ue08Sg%vQ>?Ud6u!j*8$-xs#Pb$>W>-H -//#include "/home/fanasina/progr_/ptens0neD/src/tensor/tens0neD/tens0neD.h" -#include "src/tensor/tens0neD/tens0neD.h" +//#include "/home/fanasina/progr_/ptens0neD/tensor/tens0neD/tens0neD.h" +#include "tensor/tens0neD/tens0neD.h" //#include "include/tens0neD.h" //#include "cudatensor.h" -//#include "/home/fanasina/progr_/ptens0neD/src/permutation/permutation.h" -#include "src/permutation/permutation.h" +//#include "/home/fanasina/progr_/ptens0neD/permutation/permutation.h" +#include "permutation/permutation.h" template diff --git a/src/tensor/tens0neD/tens0neD.h b/src/tensor/tens0neD/tens0neD.h index db7b7c9..a901461 100644 --- a/src/tensor/tens0neD/tens0neD.h +++ b/src/tensor/tens0neD/tens0neD.h @@ -8,13 +8,13 @@ //#include "tensor.h" //#include "cudatensor.h" -//#include "/home/fanasina/progr_/ptens0neD/src/dimension/dimension.h" -//#include "/home/fanasina/progr_/ptens0neD/src/permutation/permutation.h" -//#include "/home/fanasina/progr_/ptens0neD/src/tensor/tensCuda/tensCuda.h" +//#include "/home/fanasina/progr_/ptens0neD/dimension/dimension.h" +//#include "/home/fanasina/progr_/ptens0neD/permutation/permutation.h" +//#include "/home/fanasina/progr_/ptens0neD/tensor/tensCuda/tensCuda.h" -#include "src/dimension/dimension.h" -#include "src/permutation/permutation.h" -#include "src/tensor/tensCuda/tensCuda.h" +#include "dimension/dimension.h" +#include "permutation/permutation.h" +#include "tensor/tensCuda/tensCuda.h" template struct Tensor { diff --git a/src/tensor/tensCuda/d_tensCuda.h b/src/tensor/tensCuda/d_tensCuda.h index 2a69dfd..c2b8870 100644 --- a/src/tensor/tensCuda/d_tensCuda.h +++ b/src/tensor/tensCuda/d_tensCuda.h @@ -6,8 +6,8 @@ //#include "cuda_device_runtime_api.h" -//#include "/home/fanasina/progr_/ptens0neD/src/tensor/tensCuda/d_tensCuda.h" -#include "src/tensor/tensCuda/d_tensCuda.h" +//#include "/home/fanasina/progr_/ptens0neD/tensor/tensCuda/d_tensCuda.h" +#include "tensor/tensCuda/d_tensCuda.h" //#1D grid of 1D blocks diff --git a/src/tensor/tensCuda/tensCuda.cu b/src/tensor/tensCuda/tensCuda.cu index cc69d43..9d4ec29 100644 --- a/src/tensor/tensCuda/tensCuda.cu +++ b/src/tensor/tensCuda/tensCuda.cu @@ -7,10 +7,10 @@ #include -//#include "/home/fanasina/progr_/ptens0neD/src/tensor/tens0neD/tens0neD.h" +//#include "/home/fanasina/progr_/ptens0neD/tensor/tens0neD/tens0neD.h" -//#include "/home/fanasina/progr_/ptens0neD/src/tensor/tensCuda/tensCuda.h" -#include "src/tensor/tensCuda/tensCuda.h" +//#include "/home/fanasina/progr_/ptens0neD/tensor/tensCuda/tensCuda.h" +#include "tensor/tensCuda/tensCuda.h" diff --git a/src/tensor/tensCuda/tensCuda.h b/src/tensor/tensCuda/tensCuda.h index e71a7e6..be5d0d6 100644 --- a/src/tensor/tensCuda/tensCuda.h +++ b/src/tensor/tensCuda/tensCuda.h @@ -6,12 +6,12 @@ #include -//#include "/home/fanasina/progr_/ptens0neD/src/tensor/tens0neD/tens0neD.h" -#include "src/tensor/tens0neD/tens0neD.h" +//#include "/home/fanasina/progr_/ptens0neD/tensor/tens0neD/tens0neD.h" +#include "tensor/tens0neD/tens0neD.h" -//#include "/home/fanasina/progr_/ptens0neD/src/tensor/tensCuda/d_tensCuda.h" -#include "src/tensor/tensCuda/d_tensCuda.h" -//#include "src/dimension/dimension.h" +//#include "/home/fanasina/progr_/ptens0neD/tensor/tensCuda/d_tensCuda.h" +#include "tensor/tensCuda/d_tensCuda.h" +//#include "dimension/dimension.h" template struct Tensor; diff --git a/src/test_t/bk000_test_t.c b/src/test_t/bk000_test_t.c deleted file mode 100644 index 8db8270..0000000 --- a/src/test_t/bk000_test_t.c +++ /dev/null @@ -1,450 +0,0 @@ -#include "src/test_t/test_t.h" - -/* -#define DEFAULT_K "\033[0m" //Resets the text to default color -#define GREEN_K "\033[0;32m" -#define RED_K "\033[0;31m" - - -#define HK_EQ "[==========]" -#define HK_TR "[----------]" -#define HK_RN "[RUN ]" -#define HK_DN "[ DONE]" -#define HK_OK "[ OK ]" -#define HK_FL "[ FAILED ]" -#define HK_PS "[ PASSED ]" - -*/ - -#ifndef SECOND - #define SECOND 0 -#endif -#ifndef NANOSECOND - #define NANOSECOND 0 -#endif - - - -#ifndef PARALLEL - #define PARALLEL 1 - #define LOCK(mut) - #define UNLOCK(mut) -#else /*PARALLEL defined*/ - #define LOCK(mutex_var) pthread_mutex_lock(&mutex_var); - #define UNLOCK(mutex_var) pthread_mutex_unlock(&mutex_var); -#endif - - - -#define INCREMENT(variable)\ - LOCK(mut_##variable); \ - ++variable;\ - UNLOCK(mut_##variable); - - -pthread_mutex_t mut_count_pass_global; -pthread_mutex_t mut_count_pass_local; -pthread_mutex_t mut_count_fail_global; -pthread_mutex_t mut_count_fail_local; - - - -struct failed_lists{ - char *name; - struct failed_lists *next; -} *failed_l = NULL; - -void append_failed_list(const char *name_failed){ - static struct failed_lists *failed_static = NULL; - if(failed_static == NULL){ - failed_l = malloc(sizeof(struct failed_lists)); - failed_l->name = malloc(strlen(name_failed)); - strcpy(failed_l->name, name_failed); - failed_l->next = NULL; - failed_static = failed_l; - } - else{ - struct failed_lists *tmp = malloc(sizeof(struct failed_lists)); - tmp->name = malloc(strlen(name_failed)); - strcpy(tmp->name, name_failed); - tmp->next = NULL; - failed_static->next = tmp; - failed_static = tmp; - } -} - - -double diff_timespec_seconds(struct timespec time_stop, struct timespec time_start){ - return (time_stop.tv_sec - time_start.tv_sec) + 1.0e-9 * (time_stop.tv_nsec - time_start.tv_nsec); -} - -double diff_timespec_milliseconds(struct timespec time_stop, struct timespec time_start){ - return 1.0e3 * (time_stop.tv_sec - time_start.tv_sec) + 1.0e-3 * (time_stop.tv_nsec - time_start.tv_nsec); -} - -long diff_timespec_nanoseconds(struct timespec time_stop, struct timespec time_start){ - return 1.0e9 * (time_stop.tv_sec - time_start.tv_sec) + (time_stop.tv_nsec - time_start.tv_nsec); -} - - -size_t count_tests = 0; - -size_t count_pass_global = 0; -size_t count_pass_local = 0; - -size_t count_fail_global = 0; -size_t count_fail_local = 0; - - -struct func *f_beging=NULL; - -/* - * Tname format name is TEST_name_f____NUM, we extract NUM here - * to have hash_table of the count when parallel test! - */ -size_t extract_num_test__f(char *name_f){ - size_t len = strlen(name_f); - size_t val = 0, p = 1; - for(size_t i= len-1; i>=0; --i){ - if(name_f[i]=='_') break; - else if(name_f[i] >= '0' && name_f[i] <= '9'){ - val += p * (name_f[i]-'0'); - } - } - return val; -} - - -#define EXPECTED_EXPECT_F(expect, not_expect) \ -bool expected_##expect##_f(bool val){ \ - if(val == expect) { \ - INCREMENT(count_pass_local); /*++count_pass_local*/ \ - return true; \ - }else { \ - INCREMENT(count_fail_local); /*++count_fail_local*/ \ - return false; \ - } \ -} - -EXPECTED_EXPECT_F(true,false) -EXPECTED_EXPECT_F(false,true) - -#define EXPECTED_EQ_TYPE(type) \ -bool expected_eq_##type(type var1, type var2){ \ - if(COMPARE_N_##type(&var1, &var2) == 0){ \ - INCREMENT(count_pass_local); /*++count_pass_local*/ \ - return true; \ - }else { \ - INCREMENT(count_fail_local); /*++count_fail_local*/ \ - return false; \ - } \ -} - - -EXPECTED_EQ_TYPE(TYPE_CHAR) -EXPECTED_EQ_TYPE(TYPE_U_CHAR) -EXPECTED_EQ_TYPE(TYPE_INT) -EXPECTED_EQ_TYPE(TYPE_U_INT) -EXPECTED_EQ_TYPE(TYPE_L_INT) -EXPECTED_EQ_TYPE(TYPE_U_L_INT) -EXPECTED_EQ_TYPE(TYPE_SIZE_T) -EXPECTED_EQ_TYPE(TYPE_FLOAT) -EXPECTED_EQ_TYPE(TYPE_DOUBLE) -EXPECTED_EQ_TYPE(TYPE_L_DOUBLE) -EXPECTED_EQ_TYPE(TYPE_STRING) - - - -void -append_func(void (*run)(void), char *name){ - static struct func *f_static = NULL; - if(f_beging == NULL){ - f_beging = malloc(sizeof(struct func)); - f_static = f_beging; - f_static->name = malloc(strlen(name)); - strcpy(f_static->name,name); - f_static->run = run; - f_static->next = NULL; - } - else{ - struct func *tmp = malloc(sizeof(struct func)); - tmp->run = run; - tmp->name = malloc(strlen(name)); - strcpy(tmp->name,name); - tmp->next = NULL; - f_static->next = tmp; - f_static = tmp; - } - ++count_tests; -} - -void begin_execute_func(char *fun_ame, struct timespec *start_t){ - clock_gettime(CLOCK_REALTIME, start_t); - PRINT_HK_C(GREEN_K,HK_RN," %s\n", fun_ame); - count_pass_local = 0; - count_fail_local = 0; -} - -#define PRINT_TIMESTAMP_STAT(color)\ - if(SECOND) PRINT_HK_C(color,HK_DN," %lu tests passed from %s (%lf s)\n\n",count_pass_local,fun_ame, diff_timespec_seconds(end_t, start_t));\ - else if(NANOSECOND) PRINT_HK_C(color,HK_DN," %lu tests passed from %s (%ld ns)\n\n",count_pass_local,fun_ame, diff_timespec_nanoseconds(end_t, start_t));\ - else PRINT_HK_C(color,HK_DN," %lu tests passed from %s (%lf ms)\n\n",count_pass_local,fun_ame, diff_timespec_milliseconds(end_t, start_t)); - -void end_execute_func(char *fun_ame, struct timespec start_t){ - struct timespec end_t; clock_gettime(CLOCK_REALTIME, &end_t); - if(count_fail_local){ - INCREMENT(count_fail_global); /*++count_fail_global*/ - append_failed_list(fun_ame); - PRINT_HK_C(RED_K, HK_FL, " %lu tests failed from %s\n",count_fail_local,fun_ame); - PRINT_TIMESTAMP_STAT(RED_K); - } - else - { - INCREMENT(count_pass_global); /*++count_pass_global*/ - PRINT_TIMESTAMP_STAT(GREEN_K); - } -} - -void head_run(size_t nbtest, struct timespec *start_t){ - clock_gettime(CLOCK_REALTIME, start_t); - PRINT_HK_C(GREEN_K, HK_EQ," Running %lu tests.\n",nbtest); -} - -void list_failed_test(struct failed_lists *failed_lst){ - PRINT_HK_C(RED_K, HK_FL," %s\n",failed_lst->name); - if(failed_lst->next) list_failed_test(failed_lst->next); -} - - -void -stat_end_run(size_t ntst, struct timespec start_t){ - struct timespec end_t; clock_gettime(CLOCK_REALTIME, &end_t); - - if(SECOND) PRINT_HK_C(GREEN_K, HK_EQ," %lu tests ran. (%lf s total)\n",ntst, diff_timespec_seconds(end_t, start_t)); - else if(NANOSECOND) PRINT_HK_C(GREEN_K, HK_EQ," %lu tests ran. (%ld ns total)\n",ntst, diff_timespec_nanoseconds(end_t, start_t)); - else PRINT_HK_C(GREEN_K, HK_EQ," %lu tests ran. (%lf ms total)\n",ntst, diff_timespec_milliseconds(end_t, start_t)); - - PRINT_HK_C(GREEN_K, HK_PS," %lu tests\n", count_pass_global); - if(failed_l != NULL){ - PRINT_HK_C(RED_K, HK_FL," %lu tests, listed below:\n",count_fail_global); - list_failed_test(failed_l); - } -} - -bool is_in_array(size_t *array, size_t sz, size_t num){ - bool found = false; - for(size_t i = 0; i < sz; ++i){ - if(array[i] == num){ - found = true; - break; - } - } - return found; -} - -void execute_all(struct func *fun){ - struct func *tmp = fun; - struct timespec start_t; - //PRINT_HK_C(GREEN_K, HK_EQ," Running %lu tests.\n",count_tests); - while(tmp){ - begin_execute_func(tmp->name, &start_t); - tmp->run(); - end_execute_func(tmp->name, start_t); - tmp = tmp->next; - } -} - -void execute_one_test(struct func *fun, size_t num){ - size_t cur = 0; - struct timespec start_t; - struct func *tmp = fun; - while(tmp){ - if(cur++ == num){ - begin_execute_func(tmp->name, &start_t); - tmp->run(); - end_execute_func(tmp->name, start_t); - } - tmp = tmp->next; - } -} - - -void execute_some_tests_ordered(struct func *fun, size_t cnt, size_t *array ) -{ - struct timespec start_t; - struct func *tmp = fun; - size_t cur = 0, index = 0; - - while(tmp){ - if((cur < cnt) && (index++ == array[cur])){ - begin_execute_func(tmp->name, &start_t); - tmp->run(); - end_execute_func(tmp->name, start_t); - ++cur; - } - tmp = tmp->next; - } -} - -void -run_some_tests(size_t cnt, ...) -{ - struct timespec start_t; - head_run(cnt, &start_t); - va_list args; - va_start(args, cnt); - for(size_t i=0; i < cnt; ++i){ - execute_one_test(f_beging, va_arg(args, size_t)); - } - va_end(args); - stat_end_run(cnt, start_t); -} - -void -run_some_tests_ordered(size_t cnt, ... ) -{ - struct timespec start_t; - head_run(cnt, &start_t); - va_list args; - va_start(args, cnt); - size_t *array=malloc(cnt*sizeof(size_t)); - for(size_t i=0; i < cnt; ++i){ - array[i] = va_arg(args, size_t); - } - - execute_some_tests_ordered(f_beging, cnt, array); - va_end(args); - stat_end_run(cnt, start_t); -} - - - - -void execute_all_tests_exept(struct func *fun, size_t cnt, size_t *array ) -{ - struct timespec start_t; - struct func *tmp = fun; - size_t cur = 0; - while(tmp){ - if(!is_in_array(array, cnt, cur++)){ - begin_execute_func(tmp->name, &start_t); - tmp->run(); - end_execute_func(tmp->name, start_t); - } - tmp = tmp->next; - } -} - -void -run_all_tests_exept(size_t cnt, ... ) -{ - struct timespec start_t; - if(count_tests >= cnt) - head_run(count_tests - cnt, &start_t); - va_list args; - va_start(args, cnt); - size_t *array=malloc(cnt*sizeof(size_t)); - for(size_t i=0; i < cnt; ++i){ - array[i] = va_arg(args, size_t); - } - - execute_all_tests_exept(f_beging, cnt, array); - va_end(args); - if(count_tests >= cnt) - stat_end_run(count_tests - cnt, start_t); -} - - -void -run_all_tests() -{ - struct timespec start_t; - head_run(count_tests, &start_t); - execute_all(f_beging); - stat_end_run(count_tests, start_t); -} - -/* - * - */ - - -void execute_div_test(struct func *fun, size_t num){ - size_t cur = 0; - struct timespec start_t; - struct func *tmp = fun; - while(tmp){ - if(cur %PARALLEL == num){ - PRINT_DEBUG("thread N° %ld, cur = %ld , cur%PARA = %ld , funcname = %s \n", num,cur, cur%PARALLEL, tmp->name); - begin_execute_func(tmp->name, &start_t); - tmp->run(); - end_execute_func(tmp->name, start_t); - } - tmp = tmp->next; - ++cur; - } -} - -void* -run_all_div_tests(void *id) -{ - size_t id_th=*(size_t*)id; - struct timespec start_t; - head_run(count_tests/PARALLEL, &start_t); - execute_div_test(f_beging, id_th); - stat_end_run(count_tests/PARALLEL, start_t); -} - -void run_parallel_tests() -{ - pthread_mutex_init(&mut_count_pass_global, NULL); - pthread_mutex_init(&mut_count_pass_local, NULL); - pthread_mutex_init(&mut_count_fail_global, NULL); - pthread_mutex_init(&mut_count_fail_local, NULL); - - pthread_t *thrd = malloc(PARALLEL * sizeof(pthread_t)); - size_t *id_th = malloc( PARALLEL * sizeof(size_t)); - - for(size_t i = 0; i < PARALLEL; ++i){ - id_th[i]=i; - pthread_create(&thrd[i], NULL, run_all_div_tests, (void*)&id_th[i]); - } - - for(size_t i=0; inext; - free(ttmp); - } -} -/* - * to purge func list! - * optionnal but good practice - */ -void -purge_tests() -{ - struct func *tmp = f_beging; - clear_all_func(&tmp); - PRINT_DEBUG("%s\n","purge done"); -} - diff --git a/src/test_t/test_t.c b/src/test_t/test_t.c index 364b9cc..199ca77 100644 --- a/src/test_t/test_t.c +++ b/src/test_t/test_t.c @@ -1,4 +1,4 @@ -#include "src/test_t/test_t.h" +#include "test_t/test_t.h" /* #define DEFAULT_K "\033[0m" //Resets the text to default color diff --git a/src/test_t/test_t.c.bk b/src/test_t/test_t.c.bk deleted file mode 100644 index 90bfad9..0000000 --- a/src/test_t/test_t.c.bk +++ /dev/null @@ -1,129 +0,0 @@ -#include "src/test_t/test_t.h" - -#define CHANGE_TO_DEFAULT_COLOR_IN_TERMINAL printf("\033[0m"); //Resets the text to default color -#define CHANGE_COLOR_TO_GREEN_IN_TERMINAL printf("\033[0;32m"); // Green -#define CHANGE_COLOR_TO_RED_IN_TERMINAL printf("\033[0;31m"); // Red - -#define PRINT_HOOK_WITH_EQ_SYMBOLE \ - printf("["); for(size_t i = 0; i< SIZE_OK; ++i) printf("="); printf("]"); - -//static function_list *p_f_l; -function_list *p_f_l; - -void -print_OK() -{ - CHANGE_COLOR_TO_GREEN_IN_TERMINAL - PRINT_HOOK_WITH_EQ_SYMBOLE - CHANGE_TO_DEFAULT_COLOR_IN_TERMINAL - printf("OK "); -} - -void -print_KO() -{ - CHANGE_COLOR_TO_GREEN_IN_TERMINAL - PRINT_HOOK_WITH_EQ_SYMBOLE - CHANGE_TO_DEFAULT_COLOR_IN_TERMINAL - printf("KO "); -} - -void -print_OK_with_msg(char *msg) -{ - print_OK(); - printf(" %s ",msg); -} -void -print_KO_with_msg(char *msg) -{ - print_KO(); - printf(" %s ",msg); -} -void -print_OK_with_msg_endl(char *msg) -{ - print_OK(); - printf(" %s\n",msg); -} -void -print_KO_with_msg_endl(char *msg) -{ - print_KO(); - printf(" %s\n", msg); -} - -void -run_all_tests() -{ - initiation_test(); - execute_all_function_list(); - clear_fonction_list(&p_f_l); -} - - -void -append_function_list(void (*f)(void), char *name_function) -{ - printf("append %s test\n",name_function); - static size_t counter=0; - function_list * f_l=malloc(sizeof(function_list)); - if(f_l) - { - if(f_l->name_function) free(f_l->name_function); - f_l->name_function = malloc(sizeof(char)*strlen(name_function) + 1); - strcpy(f_l->name_function, name_function); - f_l->function_top = f; - f_l->next = NULL; - } - else - { - printf("error allocation f_l\n"); - return; - } - - if(p_f_l != NULL) - { - function_list *tmp_f_l = p_f_l; - while(tmp_f_l->next) - tmp_f_l = tmp_f_l->next; - - tmp_f_l->next = f_l; - } - else p_f_l = f_l; -} - -void -execute_all_function_list() -{ - printf("run functions tests\n"); - function_list * tmp_f_l = p_f_l; - while(tmp_f_l) - { - printf("RUN %s \n",tmp_f_l->name_function); - tmp_f_l->function_top(); - tmp_f_l = tmp_f_l->next; - } -} - -void -clear_fonction_list(function_list **f_l) -{ - if(*f_l != NULL) - { - clear_fonction_list(&((*f_l)->next)); - free(*f_l); - *f_l = NULL; - } -} - - -void -initiation_test() -{ - if(p_f_l != NULL) - { - free(p_f_l); - p_f_l=NULL; - } -} diff --git a/src/test_t/test_t.h b/src/test_t/test_t.h index ade2620..b98adc2 100644 --- a/src/test_t/test_t.h +++ b/src/test_t/test_t.h @@ -9,7 +9,7 @@ #include //#include -#include "src/tools_t/tools_t.h" +#include "tools_t/tools_t.h" #define DEFAULT_K "\033[0m" //Resets the text to default color diff --git a/src/test_t/test_t.h.bk b/src/test_t/test_t.h.bk deleted file mode 100644 index 5942430..0000000 --- a/src/test_t/test_t.h.bk +++ /dev/null @@ -1,55 +0,0 @@ -#ifndef __TEST_C_H__ -#define __TEST_C_H__ - -#include -#include - -#include "src/tools_t/tools_t.h" - -#define SIZE_OK 7 - -/* -size_t COUNT_OK = 0; -size_t COUNT_KO = 0; -size_t COUNT_TEST = 0; -*/ - -struct function_list{ - char * name_function; - void(*function_top)(void); - struct function_list * next; -}; -typedef struct function_list function_list; - -void clear_fonction_list(function_list **f_l); -void append_function_list(void(*f)(void), char *name_function); -void execute_all_function_list(); -void run_all_tests(); -void initiation_test(); - - - -#define TEST(name_f) \ - void test_##name_f(void); \ - void append_test_##name_f(void){ \ - append_function_list(test_##name_f,#name_f); \ - } \ - struct STRUCT_##name_f{ \ - void (*append)(void); \ - } instance_struct_test_##name_f = {append_test_##name_f}; \ -void test_##name_f(void) - - - - - -void print_OK(); -void print_KO(); -void print_OK_with_msg(char* msg); -void print_KO_with_msg(char *msg); -void print_OK_with_msg_endl(char* msg); -void print_KO_with_msg_endl(char *msg); - - - -#endif /* __TEST_C_H__ */ diff --git a/src/test_t/test_t.o b/src/test_t/test_t.o new file mode 100644 index 0000000000000000000000000000000000000000..15e22a4723db8fc9dad858276e42ab5bca22b424 GIT binary patch literal 163576 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 A-~a#s literal 0 HcmV?d00001