From 17f68a8e5e5f0bb904eba0702a40aa8bcb425a59 Mon Sep 17 00:00:00 2001 From: Wizzy69 Date: Sun, 17 Jul 2022 18:53:56 +0300 Subject: [PATCH] Moved Console activity on another thread --- BUILDS/net6.0/PluginManager.dll | Bin 62976 -> 62464 bytes .../Plugins/Commands/CMD_LevelingSystem.dll | Bin 10240 -> 10240 bytes .../Plugins/Events/EVE_LevelingSystem.dll | Bin 12800 -> 12800 bytes DiscordBot/Program.cs | 34 ++++++------- EVE_LevelingSystem/Level.cs | 9 ++-- PluginManager/Items/Command.cs | 1 + PluginManager/Items/ConsoleCommandsHandler.cs | 18 +------ PluginManager/Loaders/PluginLoader.cs | 15 +++++- PluginManager/Others/Console Utilities.cs | 45 ++++++++++++------ PluginManager/Others/Functions.cs | 24 ++-------- 10 files changed, 73 insertions(+), 73 deletions(-) diff --git a/BUILDS/net6.0/PluginManager.dll b/BUILDS/net6.0/PluginManager.dll index 3442573157e6a76efb9bcb35e217a72a836f45f6..90dfd5a22dbab849a3f375c35cb708517fe71ff8 100644 GIT binary patch literal 62464 zcmcG%34B!5^#^|5doyp=B=csH$qL!SkV)8=u!sZ*3bG3B3ke}gFfce1R2&9_;DW^+ ztwgk-SfyfX)wtZnsIjsNdC@68fG`}_U>pMP}DJ?GqW&pr3t zbJzD~n11?oq!Ez~pC5i8dK4-DjTiXSpbOdArH^ORL#|iLA62HkT0VDSd#r3}G;(gV zWpP<+%aSFL&a(M!Wzl6z%G#HdO`18UY;j~k+kmVrca^1jRuj=QMWYQx)4oa8wvQ^x zJjx)V&%x16?(1%as0?@+QX-$=s%bYf*natIMn3rbr&04|EXx00 zi5+qH-*|<*;4Oe$$>DiFMVApdGxD9FkI$e7bhcg83HqJC0w7P?YS|4+{>q4&2Sj7h zR#0LaY?Oxn&CE~2@#wAr(YB5V1ld-C&EkWvk`iV*o@hdE4$(vGSNySUD%t7LrjiVoIwH2zC5CjbL zuF0^FP@dFLw9;;t=#n%rNTbJKEvhj{TZh8Mxjl+ouk%E~S{e(Y(8VD)Vk!c8U5(^} z;c?U*?^jEQ6od*u`PJx9h=vMTzh6~DMJ5tGt``^T!Xa22hD-=y;XXpQS$(7r7q``A zsnJ_mL0^zzC79)^GfX=iVn-=Uh5Q`swXi=hNToeUQGr3KpF(BG4>$}*ov~{kninc( z+S$NuRsBk+f=QPFrMp@(vb!Z)4OMcs+i=%q@0y>^4zE=GS_s3?9qYgCfIO%l-8_ zj6_GFo!qB7dc)qZgLzi7z0SI9Rkwv86Q+i{B}X$`Y%^@gbJ;=&3grDv^6X}FbwjW7 zs)pSbLQjV&e7@#)n2mKBPR?=ILYP^QbBgA7nN4LEAqNW4E66!U^LxyOvJ;Twv4t?C zkyEMpv(n8(PL?g?k{p++*|=xJ+>yoTM|hlvtU-szT~H#^>sNa6(6(ZSH$0Yl35DRs zyAX#;mMb^pflBY*qM9QmxUhFGIZ>Y?^ISERPo^RRWMGhuR-%5m;PCNq?~jfL*o98; zL|-^e0zScrK`m}{i6RETag|vBHQQ!$nHZEpB)Ysb z+eCvQLlobgp_pffC^JfHf;@j>*qy9ur-hD%@{Y=@zxdsze?Nc!xE@JKMy^VP^|tpdvpBuo*;Z)9BBdr zv%OWByWuj0$nQ4m^N`^Qb_XMqA>-&#WHNR+Lx@8+g&i&v2?nwn8c+zbMplL}&%m`5 z4CI8f9Hyj^1Cw$Lwlr&f(W$V?XZY$rqK5a9rIW47T94Wc!>9{U^lA1t;@oXkV4@jZ zYQWNF)h^`=&ItH}fk4=ZK9?>UK-B>wU{zgkhT%UA_2(M7_3w(^Rt=_QoP8<^OKy!r^%Y$TOK_M0~!y{c(U=)mgr00hp zLQ}Z0+zH%Sqa$FUzudk0tKlikyIMY~D>Mp6VcsBkx+vL;CE*GF60-~YkkKd5Hy9`l z_cQt$rQLxtqs;Vj5dx>&D6ex_j6ji53VTY8QlsxR?L&4$g9OX(PY>f3 zHfp*9{mAH-Q9NXX>cVJffAoteHN&Dm%1C^qUifCd-?>h~FzCT4Qj4D4NGAhV2tmU)AW zLG}AB!wMu|1{;G93z*C{4>5-Pl*?+MyvC?8s;_B3_Qj0gsW5}*Tr+qodi7t!DmYjx zK=2GThK_0nL5EE~!^{~sfElg2-d2+vcFQyynu<;goxnXgJQx@eJ_CI*GCZ18V}#6I z#z<>k8fJ{-d8xr@sLL}z94>G>86#o%$aId3fKkS%`Ul7ufvge62sMI5(hVn%Hb&Rq z6by`M*vh>V42%t5f-1+DRgTS!uVaj3>U`-e8HIPG>29;fgMo3qduSXg9A}J!rDNA; zNK5dXmVc@-oa5?PnAknu7(aT^52=xBjDgG;V@#?6jYi|>NytaI zzl(4;H|w?3xIp&UgslUegwGm$us+HkkLZo~+=AX21|pL`AM{M*{q`{aZqS<`f4(g( z&wH>JAe)8JK%wbys9TN9K;j8{8?HeHIh;4j62|AIa1VBSbsgl)Kh+^E<2~-_>BThc zK+cU3RE~AYu-8=_k%h(H9m4YNW*uG%mq>}yRsgm7TNN%pXM ztN)Mn&Q8}WMKkLa#!uFZhVk`o!+D zX(t&r3gK=(RkT z!EaQ=x~6SN3ta*vJ+4$9Q`Y%8(uFLIFQ>xRL6Lnl z0r@4+5!)y+uO%*rc5D(^Snttq1DB7&?hq;p^R-pD-ls+`11ADWx7wrN%xzW3Her6Z z>g&6R56{ViC(jp{E3CZEGWCin}1hP=VL}(o=VSA=SM;Yt5 zJEKj%;!cHco5_RKj!3uQ|y}U^@lHEC|I=0L4sX%r$0P%UL&aQvQ073#y5S zIMEWn<0LQf04FOr3))Zw+L*`~!w|v*;J%A14rJ>_ zb_5fFo6L^nR^v9NZi-3vZhC&Qxml6>P{e9;rbCSEb*$F(LIhI^Y}h+H;LFg?H#lQ6 zwHrRmvng->nEIqbGQ996F2MPc;}6%k z6hrzD(%DEWut+ffd3@#oD@4cyEPm#aF@i^E(aKSr^i{hgEm}F+A|;ivg!zil35e1A z*$h;nQ|z~lA}Do=HgX)sSz81XqdW2-XK_S^$|Qd+@0*Gs^+iNzB61;ErJBFj=QC>q%xk#VkGYG!oNV zM`SzWVlJOCG;R+&6Z@ygcwpFn7e@^nE!FsDRgX3Sl>>~~gdZ=nHeKe)!^;%oUKcYh zA$AR1LL@87*CLZpM`tkxvgNjm*cdh502fx*Yc=6eh6wMqbdB$20ohh9G667xg@U6Y zfdOxZhw0%TQU;k_U~&yRH;r{JML~SBS_nuqiPH`n1TiKvSDr z6*s;4gB-C|FvGceJ}-%SGB>u9OQ9casvhjlk37dDCNd$-8{Pz5A=@RE;x&h}IZg60 z5t=KYAjp81Ookv}G$t8>fB{dL5*A`TIL%z}FpJvM(79%l(Ple6jPY5EHpkuvlMeuY zhY0Te6MsXx5^-XSU>IZMOh<1-PhoH#z{)=(M`qEFfb{6QP&x)zVix6`&_b>vx|YSS z1;CDU4@!#P%&F%F0~F}NOJ<>$T2yqhk= zIaZmwS^Pc#xaI?vNV`V7zVeISTHa%sm&C!G6M30C1s%t6%X6;$Nl89A>eXuGY$Q~z zMVckG^QjWFEi#`|9=&cV%`q>Cq6c7z8vPbfCY^lVKPR70+j;+kr!9z){ouN>W&8&$ zz@A@)?dX2fBWAng{8j_`I+i~m@@nF1mKWnt;vkoJ1=UAh1*nlWWS)2UII81WKK36O z=bir0S-{ZDiw1mAWQ8>v{tc`KN{6M1qS^d+%#aYagP?J!WZNzQn{a zw|QL3aot(i;by0+oBa{}965y%%o)5*lUK{ z!|JO1vASH22nGx8G13*jc|?T;R)uD4WznEx%=!kzFs9sH+)X%$SxX7(=P`8^)(iw4 z&M3zr8(SAOtcDkny0Q{v)akOWR1;G`s&R&LkK=KS`U)DbKnn}44o5ylCA{`yrgzs* zRD;!SdGfA06DM%tELEPm`}y@1%qU^{z(Cz7{DS1~Y@)Zz`fnQCWA)!@NA}+gaUnx- zP6+d8IC2OT@+~~N(p^7ZdW^NGj>Jq(&?^`cHot;?z+4ihz0GQzb3Ez_PI~gHVUctf z7lR@!4rpF!7Pn6{*^h}_V>IMdn#I_UDNsq|>=#i@aYOM7RbN~^u& z5k?qLw%o|Sp(OGR00-i?NUdhEFamKdCkVvZNF@*lNwZqiIOm|fob=>@Yeu0IgQovL zQ(_Jmjx+S^EehDUjgl|gaAWx$glKPGZ@we+J+o8oTHZxPX1lPt?1VcTnJlf6SdOV}0Wftr96f584pwcfJ)zFoQ(=*)pc#0Js zinISZko8VAbQMy(;1>FUl{l(#v2E$OBc;cD&UBuxo!(>1a@9YBtAX&KqzbL?QA=k& z&9|Oul$Od<5P7PxqqNej#;VwcNr(Twe0qRx$F>32nsUKB6F1XhIbVM2a^+B%ql9o& za7Ta12BP!brUSxdT0uxbM!@NJni7xqmZ0!VtE}Hu>akuQ#LHuYITZXZ^Er$;k+|&E zdxWm&YplfL%A123b*6`8dUoZp$@fYlC011!B(Z95xSbn_S0%xbnG_32E{<+Y7lmwq z2|GZzST%36B_n-BE}3eaMS_bWIuht&DwnU$Q5j#I4?#=#&OGEqMi!=97t;DkGQQao z)s?{8qi!{zt1CP}{2Jc=!yUHg5$Nu~dnHhAV`%0)s2` zUqu}uKTFnT&Y}6}hrak=1vttaYNvBl;^!z>1LtA5p`V<1i7S7ABkXR-MX`pR0BA@H zG7*&Wmfb;wLkw@Yxi41Z^G&`yFa0Wm-wJ+Ef*qSrPZSR*md2oui?FIl9&p}q@t)KZ zE#vH9T4MxOr#581=&8t#iuMALQRA#$UeQgQ156DrN}P+d;UU-xW7#M*&N)FfzEB99 zC2WyG)*2}S3^?#=WicZQfawLoBBCSKv(0AiKXo;>uq8QD@8 z`YNH1AHCUNIVaTtFF%m88Qvi7{O~H+=sWnmkn(^ma8fGQ^!^I=5pE6t&hw|az8{f& z)b+grvDY7;a@bdK#QJWdS8PP1BsM!xgImuZ!5cKpyYUF<$;oY|3nEO3F8i*phQfgw-&BmIG4L|}DegVl6)s1`YVvF5G` zx3GO&@aR(cp)h1|Wi<*5v0+PG$TdZ8#~`uv)p2z@h333SJ*ytT00V>zLOnMNTQ$CS zmL`_ELjxfp+aehhUqRFw6zqK-6qj%saH!^^W*tKalP=<`pT-7rE)NP$Gj>N@7=z+# zu33#QWffBSd1{McD9tpYPILncP!5jTc4!c49n^@%@ zl#sq?n1OyZyOm#Y!|RRayOKOPT!e~_(uX)#Vi`xTF=F-_&Xha=xPTgGA~FOvoGKbn zlVqFXY+L=aNyAtJ8z!1khB3wUFGqTm`d2U;lPw1k78Yta)eIu$o8}~>V4Rb~f=J$- zuRw#%I7&%m#8Cs5J_&WsJi4G2N@y{gsG1d-Ef$-TA-0n3utH3#$_O#eJ4%T43Mihi ztbpPP%M2*@VFBe%1=L$&wgeO=tfK{#yLUjbu@@ksxZf@~GNeogh+8G3ZpjEK=5o(T zZmQ>)!a%XYj%Nmzkr^T-!&GuJEG?38fj!9IIWYI;@_L=-TQgweHtrK5cth^au_o~x zC-WaqOdIey4?G))Lg4(z{4)U>k=~ZU=R7=Zl4r{+kY?)n0CE>Y&naj|rk?RAGX^~V zdPkx@wSJrr}><_uw3HK(4#PGnpUPGn;^!KQ31Qk=-NPy^39dzYwj&cTU{ zlZ-isizQEFrZMJ*46BzMT|{lJX{#trb()+`kI1(Aj_(%OQxE-~$`A9;2u+P&j$Y%l zW#%yz_Y8I#iM|*ke!Bu9mfz4f=7qy?7{pg`(P7~5jEaYau%8cc_F3a~#X`Cy3-D-R-Qn@SQ9p0$Rq?}}4(_Ug- zwAB}0eKvxu8hbP@RnUD$b-sxf0xdAn;_f>8c0-a8sQcEgpp9ymoO zdw9uZ+?@YTL>1-|YjJ6=OneSkL7<1rr^s#HF(Xe5x#Ndsv*R2=GUJ8ozCd?c%#bD&~*E#T| zo$&02N1&_WBxb4cn^5Ag=;U#l5uL0P(T!(on?!(l#LVMD7@;f@?7l;dGmT-&bbgY?SY;X`*hDbKhnAXX zad*8xiOKaetjEm;E=+h7kJ`%hn@SU#pdu-no(AQlCXv=8XB~+by!s%ug@g5dm?igucV~7{R`1y$E7e60N*lRr zaFjfH7iF1Ubf;9um7l6NV(f_$mcm-g!NZ8TlIKv^^z`N=) zPEC#)=Sc@E2i}euJ^8yIe)#`7mjwAWLQLAI*P04tBFHsoyyUwvc*;)nM|?2sdaXk?nC!u)$l_;g zhHCir%3s2~TIBIv?o_15U`?X%ScEtN4c_JaO7QXb<;jPfjxSxm+^2&rKax*a|+ZaB6)m0Wl%VDXFcooM+Pfu3&yKK40R4yVevR zr0iL6kwUneI9jZr|7`Ru@{X1MdjO_ccgTN3VKs($))Nnd3*T^(pWqlUaRdsH1e!_5 zu7z;5gimBG#}m#U*yib!kdQNldUVW4dTctnI5va(`4QHa%tQQ{Z#Kkca^9m-7sDQX z7MFMjt7gW-X*K?kNc>J9Ys%##%Tarun}*(hj1z2~9z-fzr?Jxe&vI+yoQdA&B%}Aa zWU}{7Lro|nDS{J%p5X*xiVuz)UF^W1IB;*h-0q1@x#C}hj(8&1Y_!G#KBnRQ;820uK(E!NCKql?Ff9+?gI^HJ$U zq}DY*7s63#J102rnQuY!j{{(?!GJ;tLlx)3-JJB~O-P=Vq$sq_GOo zn`ALnid)$jx;^m}XT=$YFxiAXdqd_UP|=l}EGbfA3Z8_X1ogDHlHK=XQjXBcER=e7 z_S;A0b>&Q7r5?EOdwAo~D*036J7G$E2Y_~-x&i@Y3!MU0y>CSz4&#S{3G382XJUA8 z(v#Pe>`N($@o@%}C3bOnHO@)mkBsLEi*Mh!K?SGfOM|ZA2B9DtgsE0f>}Jup3AtGb z_AP2OIjksxMaCUDi^17k5&K(>r*f>;&EtG**W`&*3sSU>FT%t|SK=)$lx&@b_!}>+ zYf`y&oQY+Dlb*cedbdss&F4zr;PPsmlf>(c=L!q$8o-Zp3gvOm8g5&e!i^LA({WOl zXL8J7X@y1{5O@>IPiJsuj*HItORU-Ktp$)VuZsCm+gBI{^-U`8{iH#LJ@GcnCR=1j zix5NTuNbOV(t5_sY%LHhq`fq!y+O)O#DKrwl|(lLq1{`)CHHuCm#*v=1wYx{gg>VzVj9)t0@- zt1YML)s`vV+_9RZB!>-4O87LfANYEkDcoE+c)Ae(=9&Xd27}?qeC~2Yc5?cqMr)n^ z9sJsb&v1;K%yk+~r7IC{^D_8g$vS;8c&qR!2aR@S&Ow+XG`Sa?AaexP!Q_0M+Gp(n z&${ZGuEv>Cb#d0hf<6^z0pNK15&>*vp(+{b61UO2OQOm?#xu@6!(RXm1Jo{)lWxXc6buDkU%m zJDtlnCtd2G2Om$~5e|sqKG)rKC%Q8|yY|&0SOGH_^W});)*_3+u5)UUB}j2ht{o6V z|La{J!PsKd2!gKhIs%@ z3(e&dYQ~kx0;Ufadd|8YG1G$R(xVBPcPB@!&U}ASUS0Gytb^6)GmHv%7P;ij!U(P) z+>xaKD-WRc8E@%g%;>T6kx|{nIs8Umc;&&~GSH;Qq9VgN{MGhwz?N#FOWu$~8(ook zki>ldKXi-)&6!`rr zGghCaU(8o>*eaDCP|nO&1+Ud2op2bw<54?Ai!1{w-{X*XD$j!KF&t}nt}`1okyht1 zUlJ|ov0<&i&Oo#I6g!^A2BPCorTO)0GX}$bqE|92`XXTV5l@Rsy{1Z-C+EUcT}Q7Y zX@ObSo+In3$^Ku|HI-H(Y;63CH+tj(w3Xz0al>E(LdA%E41V(Wcm54Qyi)!xCtBhg zPVy4};$#J9;l)Kv)?s;P82b_eA!8E1mVkv69#O*sxPSAYQXV;j(T5q6QOXS@dJZhs z&F@J(#LhK;`{iutf{5rU;unulZWhGdT0yr*E9{OgMX~(Ig)rVry2Hu8?}IneFXrZ3 zN*%qP`v&j}F@`PUTMqoq1H^<672)mZnyD110LkAE%m+tLwZoj$U2L<#{MxCSM6FF= zzvJ~PRvk*F1O|Y~cnTsq^^W{4MXg9Z$ z&mhOc&e&g(m+WsmIOYC!bCQ?9n?&en=Aom}rf|Bca;5Plbjuhy5xQiIgeRe$hrm|j zoLLDz{xa?}m|OAcD=$pwu_GWbb{u%b@)el9?=_f%dyNOu6^>Bj{{S9A~7y=C! zY5+R`&|V%Eybf`|<5lN9h(dGpe{hon`KEyR1(U@8KvssI8fP>z0?v=%aitvP;z+IC zKih*%fE~W)O@ItGeuox4hE2dZte4-n;!OZ2J$ciU`(r7INqhyACBA1hYMhhAe;Cg- zS#c)vyYXU^Y;~tX8=E7)P+&g2;vcN=Q`DcsFOc`;@cG~ccqcjp3`=+c(9CZeeDF&M zsG=IbW5X+{sH(^73tSy|pK=KV9@cmB9l!Z%N%CREKaq!3DJhF}DVpbF7Op_qwmYhe zqQ%0%t7ewIbR7&jeotWIVGNQs9d`j${XyayE0#S4-ZTgNO??tV=zCXK<1nL(Q3HNjA66nHSL8% z%T2VPTOKjWuOs5862A z$v}qL7+3P6oZ*}X%)``h9FO%sF_7mg>IyCqx`fN(qQ)%??&JpbN2BXQDc*f49s<>pdnC!@R^xHNC_g-> z#`a?LBs4UJqC0-9t(;u}k5htI2zfIWSDU;HnD~)bnfO&YJfFs0rYtw6RFD24SQ&Sj zxKOhc^yvFI>qYoit}>5)e|e;{Ee1c-tUP9! z5z3l)H18c4z^}sgnDL)0i!5?@N=3pmxVeHFe(TE!a(^p><;R7suO`Sl2nb{P9^SqI zpKCEk@E$Sw$5Y1d0iMBUAaL~C5%&ad!P%I=u+QKv74{j>Bl`@VDqZ;C&4XyeM?e~I zoy)PpJFxVI(R=~f{sBJ|Jv=XRDI6zPQhXaMYm<48z*S)jf#(mhg^+C=Zy`>QnRK$K z;!I4WoMfy_ToSshm8rKWk=3Y9-ZNjr2)=|9x(tZ59!i~fGt-+{DQ>PqxP-xaxLexB znS4FXX;0qi@Rxj>L~6B#E{8Vjmq?@UV!AMwp|V|YZ$_~5+so3{33B^p)~ok!te$M_ z-ZRxWH_>|a{fMSoH(SBb6U^V9ezFtDPNyyT%e#uEe`4*hsGl0iV+uZC`S3 zj3u_W;di&O7p**L4tXy$--oF@?xZO=uTcr;>k5%Kp@Y8}Dt{_`dP?cT9v99<^gqf_ z{^236{dRnyp5S@;3F|$;efXf=d>o=(ND-$Z3mx(!Ii*O4;ZueWMxNyHwis>W-$^6% zEdIVPKvDeZl#};VnNDj2{$1dV+<%t_Xm1(k?#->u*XgZ1Td_`U0xJX_D{zazYjZib zIG6Qk!CCma@XxClj>u(LUd`~Oz`sj%>V#%Dy>6d@*X$?SX1H~_qMAz;_GNfxU{+x^ z&8(SIqSG%$+YZR%3|FwQ!cQ;TXBFu5kbPF+DfAK=snaWdE>&z}_)Rg_vaAo||CUn! z5}jv*6Qqp=E?3XR6cg_+-Uy(sAU$HRRf~!kPONnKDrjTh5qK>4dx6gx zBdTlZP<5aW)>3U&VJ)5RW4u8uX{ca(9)Txek9hvee8%sAZ92I^+*4O-Gu##QT{YYP zA~fjquOfyYmT>OJ!Z{?~tA^(*=)!((cr{OYHX_QeT`Rq%#RPoUp}^fIj&ws07{%*8xH2uR@*{6bHIo!tW@Wwd$ zrI-6?B6RBXC$afW^l}AN)v#~3!M8fykG4;sKh>!D6X;0~%dahAoiB)0y8!1}L`=FQ9kug+d?ed{83r=K^06_@%(tHICa2`P>$&^M0`K9c z;${^G`qa`RH4JT4`ylg#^vD$fTk&N2uv$eMFGm}B+?Mbvgt3iLj7t$$?(B+DDQZ5( z4pTg<_~=QD=~2LW>GI*r&0qIv!f%4xX%+JRBa|IeB~!=L)K@hjF7t(Ql$%sBVbQ1K z3hS$OAg@%Yhf109Sk%D+ru-H)B*0XGMa>kd#Gm%5wL_?5=`5i}_vO5abPjEXo*Qy5FXJ1nh)~bgnA8Py zDQf>C=H@2kEhi1s18{2-YP&?JJh;3GGwh{8U4heN6MnbtGI-xd1N$&_5?v{I3$UYT zqEiX~J_NM<8y;?=d32*t8%1Xa-csPaX(HK$_pO=2!UD<5@#~pPJ%UBHiLSsp!Bl}z zH^Sz$*_IbGcbk!w$M%sDaX=XX&>>-6oRH z(St%&iOzTEVX}ii8*|z*%7^$j0+?E8QBRUq?xU&LQ#R3uv_s16k{b5YPEsL>mm5*; zBm8y^Q-86jmov(JM6XG?JEh#;=zXCkiDh5nVvw!=i{$--_6vobB)34LuaB$tkC=v-<G(qti~$0>IZi?eN$?zSjbl^}7-BBcOQ%y;pH7^y~|quj#a|Pa7mxsVv`ZZ-AaA?VgO>--2W2Hfi5u zmys;>Fl659yB)dXwCAMM%g{eP=S{#Xvfl>0J$r73o?B4YvHiG~$J8^hArIRZ1K*-E zY|?JQ%$?NS2FY;Y8Q{EM#PGTx+j&jZ9%y^2@F411r&a)dXZsXzhJHRY40SMU(mn@g zv;9y;y{t`vhp`?Cyr$|~tKGGFKKAV698Gw-4~!{49A~#kJ7$ zYjrT-Tzd^PcUx95=W1!A!^!+%Vq23|o1uqmJW|6%eFWs4j=$=qw~ z?FY;EK*MHrBD5Lyv>%cl=v@l6tH(pK+5Rm`t<!s5ifWV`+iJt?8>RI&+$| zvyhvvSEqOL+rXJ?TMU?4e)&Op{Ujulro;hA_N!4ZQG`-PnPue_!UUT~OApTt=MaR$11wOGe zXA}0VuRHGoROo)di|O*5ApK5R0Jy-`4)})c_uv=l%>Pi}Ne;$$3+!@kN4;yj+(*Y% zyaarPhx=}<^j(+q-Sfh2&Nzx9dL=tH;xu;OtYlH=DF~fp4~dkFjvCo*BJd*KrjeA(#7_Wj^-J zD#PMKmly2C_hC_ciuwvt(G>M5YPvK2h1KaDXGs+PYQLt^Dn_t`~uici~2fP1?m-{Zl*KJYYm;&mlOVOrc(S)x{Fp+ znACf|QHGn&tTd@(gX4`X+GA122ahwdX>U!E%a+y&`pICX%`+jB=Q!}1oaJhy3es1)kVc3c@wa5gwc=Qw5a*P z-9{Y^8f=z(yL_K9h#s}5MaE~w5V8$1^Ol!U?LjIA&KLNv* zo#1f!N7F2!t}i%PxbczmbNe zsGC|HOm%^fC1pH-ZtOrrZO>LUMW|0McOsGI3tR}=Q>O${r{!{2Zi)t(0;y;x>vZz?`uRwifQHKg2 z^q)rmu&D0}9|859Q06E;o$PQv(Q5eR0sVC9Bh)JA?fDDwOYPMbHMxkXL8hdWyf5fy z(n5>M0d*E_vZyBSd-~b*jzygeY99IU+!r;_8=ima&9r7TQ(XH~{ua7PsGFU|WzYHN z(?*L5mA&R~r7afqY}Gsd1$3`Py;il~-$oA!bveCOq0l*W<*UNPg*g+ulwkd;ul4eCA(7*PE2{o+__#9&NCwFN}rw?fA_W^?>&) z|9P~vSKeU+Zn$;U0qTe1*$Y0p?xNr?~CA1rFHZy_zFH!Nz5&j)IcMSWcKFaHuc zXi;AkQD6yuVNx;=M(AHD>M4JOeB;a(4KKr+K=kIZOx;ZPIsV)7#JH^O?8u`oXj?Bs6i-mbgZFCLhVT}$^FWQ{(hkTM<`SBGO|rJ^H}mS`oyAG@-q6XP^RSN^mT^h<+S~{w9d=v z8KEwBuJ1P?a0R_=Q5*YB2K9zT9a}m*a3#HOQBz9ifI66zgm>4{=N5HO>23bC^o>c; z*1(y8tLSPx4oud(S~w>yc`Ypx%9Om0I;}jGypFD%o0hzet`f?Wyq<0pYBj}_*1+|&IV0}| z+GdqwEjLirDQPV?P>oQgmK$l1mB*4d(zdhGk~h+?g)$}A(<4HyrfOwTU_I@$s6VLK z!Bf%MT+WodiK>J$J$MtnGcT?4CVEdOQ}SjyXytM3H`A_`wB*h7x=^O%&uNd9$C5v% z@8+i^e@;C@nUc4Vqm}cLluszOy4iILotcrhfffp7+PQ(c&Q0swK$i+-YU!qRRvy>h zP1_cxCA%5LeH%+IvfXM?&nr*+-nQSCq8|4}0=K8A`+f1iW{Wb*-I2=Ua$8aqm%A%P zak+cw*HXJV6K$o(g);5jO3wo3z@Z);jMG{E2QB%JlBrw8_f*8)E)#I(~^+?hHJC zdYe`Wm6W{7%KL|XQQ&P_Z&456g_C#as|?9^=s#B8G0MikJ9yocb(&hf+{Nt`7! zaoin9v>XY|zCOBUvqiYwLSL&isD#_qjh?m9_hL^bKg}`aleM!9bGW@@p#gVy63JYz zCLXiVi|}o-uEi3QCj7hLnea$Exi3`O@2gQ$71>#Rt#4s2raPd@Av&!lwqGe)#mqrxu?uJ_GO>h|gGjj={%;pX$Wj9iSaw+F-mK z(2d`~DsA&U#PU(7Rc)nk^I!*jJ zO=McMb4z~#zN7jnySuV9)JH6l6>h;=JRUU1FwzkmFuGhBo^8nVmJzAZ#u}<2x0C)$^ z+w6f3d7{!GcmEx7_unD6&YhCGLcG@rnOn3@c^=X!xhuq`Ahurp@jkb5SRekTUtrH8^ zi9PGYp7p|6FP!zl*(jWi!r3UC^Hpy97J1UOh4@L=7J1UOU)$*)Xa7{&te+b-!tGp6b`BZ=)0XV0U3F^j!*^N7D|PfU|zC)UuXZ zV8b4%>!3iF?fJfU>5b}5kl_ftQ2iYI2lTH6eh0Y7_Bmc8dO^2gL^IB}P+q~m7JjaU zGyikBhx%HeOXIq>D#J=Wj;+eQH48EN_LdrsL+S?W~frkHMddY;}T{DF3P% zhg`ONn8o==!C8*6g74NgRWEn!*6RA*1sNV+lN26bEtn7P6kBz`F%9w^G*@b$EBenA{nM1G zwr2HA(K$`|&_3BYS2QnB)Y9{u9m+x6AQmdGdK18(sBTuPsHbYZvs2;mTPLHq3T;=Y zP&rV1kF!vDzFMLEq?Z2P*Ima_d(R>ADVGJ{2Cw(XGn1Lq2 zax6Vx-G#n88(;8h(c+jB4DtMI?NCl1*E)rtZ>&@JY2xn(MgKa5pHHq+c+74Qt2Rnq>lA)^xlZ9HnQN6BFoSIoJGa2jE@~G~o-c5% z@^eqSy4=FQ3bd=MfIpz4l=}nMe%#=H>NoHGV6t-lqJgrVGD)-0s%h4=K^= zKJF(VGtj+LWOj-T*DL=ioA2JO{jp}T`xW%gmF_pCcQz;-;fK_Z^B>W!x9#*lsBW+= zH*R%rP`GCeWd?4{c%Izi-cOJA+veUQb#1nBglteA$bZItP`q?d;b)l3wI2d+X$KX4 zhIvro=b5803n?^8``Y`ld$4w!`*ZO5xy?a%sZIM_dgp7?d(t~!i?wz1RKHoCLuw?n zNLwd8wN83!u0+CIYo+5c(%<%cem|@{LR4ocz)#_CX!=Ca;!*}s8vDSeJKMy?|3K4Xq_hZ%vN{1Jy{#2_Ki~S zMyYqFv~h!adwEsX4!WqYS>Hj6tJ>B5+P`y7$l7n4S2a6puIM>a;BIYTbu?>-%Kf!N zJtnX|Ydk!+xXN$7yWVP*7c{ad07`RaF zRJng$wlSWwluvD!x#wlSi?VImyQS=Il!boVtr#^GpW~!1 z;j9tKDF0acFncf+4v>+`v5Wb1MVVEPBy&>=*RsN%N!%H5zt9ZN-p?QgfkmZ zr9+B8CyVOULhuKxEdQLqZvm_D{_5_6YP^N@xv#(AwSb2T2H-8N_1OdPuR-~82jH8( zg@BdR02ro5z@c;@;263Ja3b9Vcmmx4I7j$r01k!D`*J5zEA&jnn_}y;CyD+hscQ=G zzZ6WBx>|(aB9blm_o+T8XcfFwO10wNe`MhTk#Cc-?V>p*aFy^^iTo-lyISzoQg$`U zo?W;`WG<7kH%h5ZBC}cW%@)q}-X$^*3V*xspT)j=YTmQLe@@^&;U5tG0pT1FU;SBd zQn?6Dh#vjuQ! z-d)1qD*Ok9|D164iJk+1Q}Yf8=YZJrXTdd<`5K<3e(uv$u~YC$;a3ViUX9a(x#QK< z+;_sCDEwydKg?|weyi|Xh2JWAR)ce2?rP!ODYjy3f?NPOG>R4{wCqvsj=s`3;wL&2Lv93%ze3)HqISysD4*m^!+lBwEa1ID0dz@a$BRk70cGj%eIes+3%aH2~ zmPu~8aLOgOQtnxpRQ>NZqnI5cM4}aIBSF3h4ZXP?gQtQ;6CB(*SYNnginq*ezb%f;#&vv zH3wT*2L6QnGU1mycr26)zudu=R|-BJGAr}Pi_Cb3_*oQklceJPj1#@b931;!OMYv?i(+7 zqu|Ygw+OyU;AY`$cC&>$1m7X}e!=$(UhWY+9@gI|c(dRwf_DkNO7Jxvj=D|4*({tb z!r3mI9l#xhJB71PI0pqMuUPKoelHWe+$%K--YEDa$!!+S0>QfkUnRL~gtJB94&k(9 zv4$N2_X||8Hh%7F6u3E?J-I{h{Q|47e%_bcn8W-Q;Gg?e3BFnI9RkaIx3UL(oZBL> zOE{|p-zPX3+!nWqDk-DzAtxD{RSQnJ(e15`4439Rl|Wf4|@guG$gj zfcNE20-Tz+K;SCjZwj)`&4O0+k|`w*g{Q;@^)!S>cQqyixELfvW^=E@IoZ7sV+Ta5em}LpbHdVyD1W z0yh=M>AZqX#VoT~I6I2D?0&(Ok|L@tEH9B#0$T*G61W+;eG9jjNIVEb!dWHwX2Ev|+%Hfm z6ZtZc7raIARRTAI)3n6vb|{g(Ds?_-!@z>*jw!D>{sI7#M2$+jwz0r zj)jgJ9j`gQcX*rwoF_Pc<9x~Kc2&9_cTICY@6Pd@?AhSC-SdXW<(=UDA8&2ehOE1? z?#+5UYkSr!S;uDQ;jS0IE9un%&+@u)qpjc@5*qGmZMdhg<6j-eKU;_IkL6P~z7Jtg z5je&8uZ;hVZkk;F6rL1ymc0P@P4JI^o`N?4=ldBB5*YWs!@0$K0IBFBz&r9ecWM#C z*=2tL{GjUZfR9zN9z{w$?ENN%mzA*Ou|9_XD*6s^e-7iB{HI-9i&4tZQ^fE#(*`NK zsh^%p^y^YL;5NuO@r^V7KEnxsDq5*ot>zPy4gBeV{BO3iH=KYfyx;(if0+&VFx+S3 zsR}3sx7!}z0abj@q8fNJAf5o?{#~K@fGV}( z9v&xCKo#Ho2m>y~uWqQg5691LQWQ7tDo!T&2bqZ9%~R}AYs_{HP2i}*Qz)SJ%KK>3&Ht=$)0A7y!v}&A7LclBV zqfOPYdI0cB8U(xw_i2@YBY@Y?IN&w-_0DRvU=r|t__xTa(SljP`_qZQYw2X*wR9@* zFn(#Y67X!`185=e0kjDCKw1KPAT0$xmUaOjORobzhTZ~x480@rBk--4DR`TAp>l=t zJLNfLqI#Nof_9d6rFNaxYGU{DEB4q8{EHl zzvr&?4EOBweC#RrhP-3E%e*VSk9v1_KllE_durCgtnahz*`u;;U2rajNc!(J;k-ol96S*^T<#b=Tji%(9Kp%I3ouR&m-`c*(DvqCo;?@O9S<*i zJf3;=mg~&!#xuIZc>$g%dbQ*7>?@9_qceM})X}@We=R?}Y-e`m5&Al_RXh*uT}Nj& zet;Z*z1y3Er&{>l8La7p4%d&*M7-u8PIC~SIf%;~j4K~v(m*U4xPS2@4*iHf zKjO}hyW;@HQ~+@oK)eNTGn0pLl}AJH8H&#^%$URR8G$i95}yWqM&UCWpE3B1Mb0tE z;lD!Se1)UjY3I@~d^)xL zv{}=XIW~uKmCc3Ex%6wBp*&;DSKbBwXM7If^S!N);XvO-cZ)!^D;i=vAN*O-=@i`fv^Rm$$W56fv&BWR7c{H*b0!yzgNHLVEz+`pZ8WLFt2#P&#L=u8c{JuIW=@J+xTFKsOm6RJYm6;l(#rLL-?(6b z%#U6lGM_c&V`oT z{AK5y(-yS|(^MMU+R=_cvzQ(2u_W4wmRVehy&vf%Sdt2mpL7=lkLvCWzWJL0X-`>h zL9z_qG2J#dGBp-i!hs^L8`cayTzNrTRQi@PC1W@;W-ROIXqn&926Rf(l4XnAq84TP zep$3_!Q7VEd5ssgw0BxLv%qU_ZRzAPC%1GgYhwZ6jjf#sCRTJ}Tg!r(OFEWMjC6Fg zCAkQ|r7h8RR1OjLM_ZH&aVWEb>1~}0BMT-hYws{KQktb|kxd%d8R3#slJUgq&?iXF zZR?yjrL%4EV466mYAkn2N2Il-BZl@{;X33e{g0r5KzdFA(PYMMqZKb4ir}*O8NmsT z1m_SsY08q$p-jre0^}zrG~{EbnZKvC}x1z&wY$&O|fg7CDjmi>!?HCFeve zRCJs^Wfu3ige(L*+Lxs8r5OVcSw{^q@G(hDnm%!1%aSE+9ULEEajQ5%Yz?8w%a*h@ z53#y@*;2&J5SlWnUHZ2rx*Sxp-+M8WodP{=7qP{IhyJ8nI9t5Qskrf{<%i8f{(_dy z7S;`Pex@@)w=RoD(WRDuETQCxNB**rg%a@8*Z_`rF^!tmzT~_K z%V+Rp3+s?$ws^#UsT=v7?VVQ0f@qB_>4biXV32080O7VGxww7l9PA6&ype~s9CWm; zqoorwda@rav7cx>3bAHRq=Op%i@C^WPq1R3R#YV|0!JK&blj+lV_eZV-n4odty`L^bE#~nKPPbI##&JbV}oiGp5WqE~#wh$xZ)HduJOPS9ad_ zGczP-NRcDWP>QnI?)Ib)ffo#zNULXY;AO&i418hI!!#4f> zpL5RK8IsaE`Phci%ssEqdCqg5*K^Okb9wHhp*Memll_KKmlrO_Hfsx)FE3s0S6y1Te6hN`TwPjRb{FT)t}QLQtJTH%rK`(se&O8Q>V*{> zZfW^tccHqt`m(zt+q1Uj=8=6T1pv|3CApHX(sLZx?ykj#_dyqPX1!6<2@^P zwO#LqxAsB;MX+`-|muj~>5HF>DT^kAy^o9b?1OAcoZj6FivMMv+cEOs9I_o_}Fke0UpXcY2!}ZA}u(0K{x96;QS33AFb2H z(IIW#%4)MyyO9{$m`N4;k>vvUyaqQet2Q^7h&paV2u8o!Vxyzc^6bbo4%WEBCjPgKIqX4z8A3(FN`$|2qj;zIg z1byZHay;y$X+g?9c;4UK-({h16!&$RPde-Ey0@77Dp47&_I_}St%p9fO2 z$^EOXHu3Ae!C3BwoM>$K6})1()(5p}Z{m{6Chh}Z9C|?c#oE1njjLajTWw6}Q_JGx zu1~X$Fy3NvmxW2@x(m$>H-9F~%_{*Pgu67-bms}m8!^U2BQ-m%G&>Z4N*P9A>jBW^ z)((S6B)rq_w#@gJ4qk^^=sZIF^(1&R)n=z#Ym$|;V-6GRX?*S^Mm|-&NMs4?2e3YU zzT4ft90I>sf1$M*lMC&3OnQRE+*W|KV-P`~z$JmL@QoP(3RRnTTDKB+Ccz~OX)n2R z&5gN6eY3fu1=ZYDu(9ETnO0nBK*UH(9<(fvwfFM0FXqBr?FiiEoo2Vbl}KFu0%!o` zWL-kZGHQaRrdyb*Xyz2`T0${(8XUS1+pM&FWi-~any> z+oyWVdJJT@P0?FJi03O(|J5KhBc3Stwq@`zk`*W)XB8GAP#Lj71h%g0S~VlQ+?5wz zV~c^JWqAVwdAK>P^axz6HDTTMEHSfs)MaXJAOV`G);RJ_%==!J+k}3XYHd)akCm)8 z@sy(*Y$aWR5j~f0!pH6^8!kx{w%Ns`%Ysu70`OXg*)(v4qD$mf+V>fOf>n!@f>^qX zJB=nDio0XYv;)*26O6;+J2OM!SoTj6CQse6{{r1cR4_-bQky_;4<(gIhzVQEF| zA;`7n{j?$okCk`p*Xsm81GNkHl69@TwnU6iOm$l7e68a%8mmSu>~kg`L;?~tUvfu* zfkShJU7M)rV%8fd#|G#+wiU^f{#?;UjKVqRw*W1PzYyJh9Kg6W&ASoKHENr-iRJ0( z(%nkug)@|6=0i$?+IN{uE2X);UbRB05Lckiu@-1WB|^JE!P&6Ls=1EX`k2G5w3ctS z+Fj|aw8Y*tO4a$~UMO7Nx!&=m^-eGZ0;FYu{?PiSyF}1vl$Sqei3>?{GbGheMk3i5 zDufG~-B7ab1NxA|Y<8~J>1`_VY^~9_j#um0pYsXRWWf!`MRcgbTQ;cnW73Vr;3!`p zLTlF=kt9pk{}KMTyn}wxU<5c=T@71YSl+nXB^{e)gh;=Q`A9KGvn#FodJ^-|>4)f1cY_^DHZ*CzRZT5dzG~-$^ysLJQQG6BY%22She2Hxo z=@D~L+?f`(yw-Fwe#?llBOqK)*fExtS-}NrvVMC@6fA0$=384xsUdsT@4*d}cqtjM z&epD-+}^3Tlevv8I@UY>x@}BBB-z)D&KD6zRtF6PQYbnI+G({fr6uz5mMpMw@_Hqmm|9wgLXF-Jj0{|wGgqtCJtwz3 zEu9Oo2dukv?Use)0tJ@v&VYHE9_CdUEg=l7EqJK}sdCe%&`TG=ZwRx+F9yXf4D11}ogc@g&)^^Y-wtLa`+7_*~5&S!UgXJOjUGUYq zYirj-o4(+kYw4y;Ds>^h!Jb=4UQhbT22n?7U%M4j34wzzyWuZh{DayH2zO$ZwUj%I zD|e%YlWB6c-9qUk8-Auf)@idYgMnu!7K@+#-i-yxvDlA!K!uoU=`MSOt}2(``Ec2i z1A+2DemQB}7|2>uK!TdH{Ei@b+dmZ0QEFT$s}^o;$^68mz@SnA;WaiAAjR#(u$1_{ z$hNV|+zxlleA0F(OjvwMPzXqqO`K7G=Zz z1K!xsL4n|tg+{_2aq(MoaWBT;>@OYS$XVk#g1hawiOo~%NMM=;BB zPCB;KKESAx6M_pIVNg2IeQmWXmsll`6c-@|f4((#b>F^`&FH|2{aX*6J#O#f4nbFY z>4s#+M)V0GreNNR6hwBM)aJ!{6X&qw;yt5e!){%=^e(25_GQdR+SO;S>!w_!)iN$V zUdjF0v+euaT@D4*wr}2_z0|I6G4DIHi$R6F><&7X2+9k7C)_y3gmjzwA z#UzHH=cNuzO4!RS@Qqk-&>cMmDk6H{mD!7nosj6vrk;xDgu(nC$EGhygKfg}Q>UWC zPQ3OTbYEAVLT8VX@ty;-GwZUfJ5{kr+GxJDZhMol>@vO^?oP~#gYbUaeJVy{HhUgJ zOb~0#AJg7vvEU&V4GW~VW(SjI&)WG}F-!xG&KS6Fg8iV?jvWg!i#@lFkak>W$6wdi zuo;Ug7DG}vhh*PF;g+t4bhX|@ihLT?Wb%*G>1^i^ zJ&l9mAD?#E!^YlT)oY*wu3beTU>0bVwy#Tkix|aDWXDEL41YR4*i^jo!zr` zj>bEvJ{c#(q(|%YNQQa!+2GGC?i6 zWny&VKz>ImT}udVSnS1N-QeB;{wA<=6(;WK z2+NPL4Gw~oaAH;88yx-bQli;|)s*TJ>wV9;nU(&GgzfMQ-DC6CvSyToV>vaiXMh?$Y3RqZKfBIemD|QtmmI$(`W(HGY$573^*q74Gsa z%HL-^tz-*qm5;P{C(e=fv){0q7T>}|E16QJ!ue&FJIUuOJOokUDTWr5n+4K6J`P+s zWPGf`(+6$-X&(K$jLV&&#Y@b{jb60xFWUEtzJGa^6V7qYCwV?W{Lq3*ZKF>T+V6^?ORx6ul3E(m_s#@xL@MhUO>! z*y5k$b_42xV}64+$m?^D?zw>EdpxYyr@zelUE#CHd|w5#v|gN`b={&gN=t=jN8DMp z<83M?lhPJ~S0T5<`iZ~sGw9*&$jpc2H`?aX?hb>6TDSP#xmlwU`z#UKFXasLhfS;Ef zpl7T8>LCy6QfV*gsAx?(teI$&7;g&dU~4F~93iEnXvB1UanhHK!qPr!y=1hx&odNV zpvf+tgoib6X=Jb**UYzo;a>8omPyh<*rwF@NKB7Ks6!MPCG>ReGvX>~K-s>yekm2C zJ37W$ZE9t=Ww+e1z0&k?=HuonJb5BJFG`EE_tG@wEpIP|ITo7s{`F13iy=F(|4II} z0e2VmCe^2<*#U(eBbOAp#6(M^@7W*#CwUa4&Vy24WdT3S<0~i0HR&OBE9E7nc@pFX zC-z*J*mHd)B*ir-$Z{sUQOX>Wq7I7i@xeA189^+)X=AwK9zX94@TeC!nA34M3Zy5I z`+`Jm+r+4D1zC_6A|d zk@D`Bcd_D(qUymkazOK-QDhWST=v4b%gExK2**8hkYgf;PB7#;$vt(C%b-3)B_{_# zh@x|_>JzjowDHQJZlW>Ac$?5i3Q+tj=SL|XOoGqdmk%06c*<#%z{>3!79bgnC}L45 zci@-Hw3Q(hcX*?+NM7T*tX!I0~ZbNefEMw4M9GdwG40(bZ2EJ=2*9#}_I6GJO&rF5Lkar8cB~PYjPDg{T?srH;|?(|g+vu1%ER8;sos zZ^;C+_~pHQVnCsGJ4P>89dufjDLvTTiG1dD$odd4V`|1)lWQBsFwe0a*v}tGH9`hpB2#Yp&J(ToaG=D`cpUXs|-CXv5WQ+ zJiF*xai8L&_3*5xxJk6Cm@|y*!gFpPwmww}| zfBVyGKRI2vtGGNfQpscrqkNT)DOt4SuiJN3-{snvzI(g*W98l-Wu~33f2?bsUwJRR zn$7Y6@v-ukvc)H8o}DJl&SnaQkqI7>9XplDaABBYp3-SIo#8D4*zx>$6#Z;T;XCobs1(f8mGWR5)4^EdD05Q`zzC zM0PZro5&RS=sL+~iqANo2|lBIisQ`UNuGf&B}{V~6eo^kC@3Z6-EWWPbHGwTDS6US zkjrPXJl|WsH%esI``x^zcjQTaR+=J}cdh)lmG6#JT=}+9Bm;SNAkQRpJXYTQJ!k|S zXx{s_I(@Bhtkipp+#BqWSaRARehsArslN+O*7y(DzbNm1*VDRKm;e?;FBWvkm3lv# z@FhwzvD}EuOio_QpW%HPxfzD|Cz+YzOcCnDWVXP+Y{9;DjpZ~drj0B&&~B!{A5;nb zz-AS|%yZfm3Lwll)9`~02MMON_ys;$n2Q&AxQtw|^K*Z51pU)Lby`Oks zKY<~wPmb>*05T9QKL#oIFD5SW9!3qj`(xl{xs2zt<*#@S)hhk7QPz`hrN3e6Zyd>w zSbYIP_5NFSs+bSg@jT1Y`{yvd#6;JTu~P51vtz~F7_Yn-D~xNEtim__dT8peVg%kL z0sTl!JKtDUhw}NEVm5250VP4bLMB(*{mGGho*9>We~vKr{zoZ6Od!q_6NOveWnpGU zO{Qmf@fZ~Ra~jhQ0+*6}MM6_bCPd+%&G1eY>(%=i#8ht7Wr{PSV|i%uSQg51p@!VC z39;rbZ?D^ZW(x7hlKB!?KIufB-4b2Oy?>D%r?{G>4V|-@Cw}oUnueC?rHZs=t=lt) zj%4}`jM;x?-!n$}ZyDvkW$E7$x!)4sX=Q%L%Dy*YWq#RI{5>oFjy3s?rC+!7>z01g z(r;S&ho0UZ8kzD6v_GEDu~1TY!xt9E7mJ*`f9d~E9?9gMbf^OT^Q)$w9)^@9eFiQD zLwVm+sZZsnh5EE(nPUPuEMKDMpQyN8q!Jv`ucTTr+m~a16OB?_N~hf28gRAZ&#$+Ij$AlT!`4DiqQD@Savr9f>RM8$Bsz z&^lU|Co}m8D07i9VHRNe-nFdMVhwi5%*2)s4tt_pE9RNG(;e_c`TPhX(aatt8hE|PG)sT`hLZc*%lIUP5Fr?*a4+&OA16MM| zf^o-BJtEftu=@&4bxktmYoT#MV{7-{?fWmNelX>$nK?;WN(TC$ zl2mW$!Re7P^ejA-nV3d3SSLIP^z`nx0Rm~nm>!fTjlio!SESGudq&_xI3C*cDvvXFqEYKSt3*>??Q>!t+2j`7|t@L^zEquw`!+c(WlJXnCey8jP!T!R2%*X7l`pvA5fq^6i4*{!PrV$9)pVVnU10P+A)q z*8YMh$ujItX&JId+-UhW3xK)_Yk*z;CQQJ0==V#kwS*7;ken2;EX=5&IZYT%tW;(u zG&mesD7JhhV)WYAZyX#Idu-tG5#{W#KV*cx8APVZqp zJpdR3eXA)KqnJXN?};Uz%S=@A@*5>kyQj;&H+{1Awus7qAe1VyqTf|L*w%o|KtA8^ zI29$)V3@v7?7MCbrN&8x8RsQ}=)E04^xp1+kSFx!L?vr$t)^Z>^xpKenDDfiI09|` zN;8=sg6Cuf6QsFn@&gn7q1LoqW1eP}Q{8NwoN8*rcgvgCTJ(Er-mgjX#b0`u<$N+T zCZky^qD?WJay8#KDS4kD1jlbYKU(Ahrf_qiIEqDiIcv>6ux1~e%1;LcJj0aUhksar zVa~IX{>pgGEOVyyn<++pXx&HU`4MBN3()rP=li2F3)l=)rZxDWv|BIjZdv-Z*y{sm zLZN-vRk&L(_dY0m{|jsXwDj)8KPddkKc4>Ucb;)vsK6?D;=?ZN%|6lF?UI zUsyOdqQViJ7kBE>dje;PrqeAw?GJqN(H+w51~ne@TksiTlHbtF?(FaVf1ewh8O@H3 z=3yHJxMN&V4ER$=b7Q5C@p+cdC;6P>^E{u=XUDSA{jX)mo{;icRpvkG>rVw_72hOW z8>)UfJC>8rWsU`4=R@T+32on0n>|3rjw+V;U3{SsFAD7M>+20GqebtH?AWAQ{YZeM z-IaMSJ7(7pDKsk)Drre%CEv;`U1i_Njvb=U?lBuwJ~lKc9`Y){X75p)DXMjkuiZ~5 z^{>GGwl#apYfp_Otzly#!fNz=H8EWJ+=DDZ32 zDx0AU>!Xyv$Wb;R1Ril(h8Qp99l*fj#RP=Z<1P=vyPrTiz3mb7)$&g!@v!>Z7vsbV zD4^#ep9N_uScU`!U+y3^-YeW)HA+ja##t#LQN9_A8vUY%S-jr6bkB`zrA^@a7IB7I zU`|CjtC06mEW%-0?rQ`GIMZ2K-106y#Jh;K7@>5k2)s#;&LoH;b{CF_K3DR|LObL>$X1Sc=@LL)nT~daPPijj3*9w9g~oQAafaB0b$QXg$E{P1Cahf z-V=|0x0?IajC=m0AS@j8;w$%S{Dj>{^&Ec6+@`KqkhvE!?sFg27jg|gl4G6qnlg7b z<6hj;*$ywy`oj3^$cab1G|8Re4YEHM44n)#0(0bX=*>n4QO={G^ZxdH-H8`;c2OrR zbzr{#9=(Gox36b>=u^kR=jZ4%1+T*=qfCvAM3}#5bPP_Q`AC#`d-0<}W1MQsS z4G!)3M&qI$_uSGuJd$KqkFx6Tub%Raik=EajM*i3T@$47*z+b;$wRpB% z2f$kCJl`3h>a^K8?hxu`bCvswy6>sKk6Eu3YIW48V|Q-*hc>Lm_eahHGy_h$gX!;0 z?uYa-YjcWu`+v`KQyCg?SfWT@ADQXCXp{TG@#eL_4;~BIbKJ?zTi-a=Lk^aF1dLO- z;i$$i^DE4L;IuY)dsVJH9&P(H+40(R4n=+n+Ox xGT3)7rBXUM_j#k~9NeP&(p#*wKO*+3PJz? literal 62976 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 diff --git a/BUILDS/net6.0/Plugins/Commands/CMD_LevelingSystem.dll b/BUILDS/net6.0/Plugins/Commands/CMD_LevelingSystem.dll index c1c7ecf41ec69a91e47e2f51a0649013972d699a..665a62d83c414c93f7bb57653c55216a86dad790 100644 GIT binary patch delta 105 zcmZn&Xb70l!Sdqmg((|*?nnukTr0}!x~%0hTX5&KO|RniZmy7yVP>hGZv1%i4Y>dT yujfY}cs>vJZ*6}%>0Ixkgvl22nF>(BewZLgwP|j3U8m|c1=Xthtj!1I?KuDeTQn8` delta 105 zcmZn&Xb70l!Sdj1?yrqKcccVvd9!IQICsQj=Leg8OaixbH&;lgT|W9CcE97k z%A;o%-rzX6`GV?6Mn=ZXv(#rXvAFUtIW^frD?mWaeuCFNh6#>S9DZE6+3Ejf@(is^ g1*qV|D^Nk8YA>F@LZ;WwhCN)YCLFg}QTsj{0PGezIsgCw delta 136 zcmZojX-JvS!ScG{^V^L*23$gFMaGN_1x1-aLR^E3fk9hs^Es|hQUY<>bHo=4Wcf|p za`Tkzf73UcFQ}emWMtYrOMMm-i{qnXXC_-{1qkeSmR-KX@u1T}&aG@y-c9*1d4^V| f0!%OwDhO2VGvl0UrE24uf8wp&jhhv<@3R2_jdD4R diff --git a/DiscordBot/Program.cs b/DiscordBot/Program.cs index 712828f..8836669 100644 --- a/DiscordBot/Program.cs +++ b/DiscordBot/Program.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.IO; using System.Linq; +using System.Threading; using System.Threading.Tasks; using DiscordBot.Discord.Core; using PluginManager; @@ -66,7 +67,7 @@ public class Program /// The main loop for the discord bot /// /// The discord booter used to start the application - private static Task NoGUI(Boot discordbooter) + private static void NoGUI(Boot discordbooter) { var consoleCommandsHandler = new ConsoleCommandsHandler(discordbooter.client); if (loadPluginsOnStartup) consoleCommandsHandler.HandleCommand("lp"); @@ -77,9 +78,18 @@ public class Program while (true) { Console.ForegroundColor = ConsoleColor.White; + +#if DEBUG + Console_Utilities.WriteColorText("&rSethBot (&yDEBUG&r) &c> ", false); var cmd = Console.ReadLine(); - if (!consoleCommandsHandler.HandleCommand(cmd)) + if (!consoleCommandsHandler.HandleCommand(cmd!, false) && cmd.Length > 0) Console.WriteLine("Failed to run command " + cmd); +#else + Console_Utilities.WriteColorText("&rSethBot &c> ", false); + var cmd = Console.ReadLine(); + if (!consoleCommandsHandler.HandleCommand(cmd!) && cmd.Length > 0) + Console.WriteLine("Failed to run command " + cmd); +#endif } } @@ -177,8 +187,9 @@ public class Program if (len == 0 || (args[0] != "--exec" && args[0] != "--execute")) { - var b = await StartNoGUI(); - await NoGUI(b); + var b = await StartNoGUI(); + Thread mainThread = new Thread(() => NoGUI(b)); + mainThread.Start(); return; } @@ -204,15 +215,7 @@ public class Program case "--help": case "-help": Console.ForegroundColor = ConsoleColor.DarkYellow; - Console.WriteLine( - "\tCommand name\t\t\t\tDescription\n" + - "-- help | -help\t\t ------ \tDisplay the help message\n" + - "--reset-full\t\t ------ \tReset all files (clear files)\n" + - "--reset-settings\t ------ \tReset only bot settings\n" + - "--reset-logs\t\t ------ \tClear up the output folder\n" + - "--start\t\t ------ \tStart the bot\n" + - "exit\t\t\t ------ \tClose the application" - ); + Console.WriteLine("\tCommand name\t\t\t\tDescription\n" + "-- help | -help\t\t ------ \tDisplay the help message\n" + "--reset-full\t\t ------ \tReset all files (clear files)\n" + "--reset-settings\t ------ \tReset only bot settings\n" + "--reset-logs\t\t ------ \tClear up the output folder\n" + "--start\t\t ------ \tStart the bot\n" + "exit\t\t\t ------ \tClose the application"); break; case "--reset-full": await ClearFolder("./Data/Resources/"); @@ -232,10 +235,6 @@ public class Program case "exit": Environment.Exit(0); break; - case "--start": - var booter = await StartNoGUI(); - await NoGUI(booter); - return; default: Console.WriteLine("Failed to execute command " + message[0]); @@ -321,6 +320,7 @@ public class Program } } + Console_Utilities.Initialize(); Config.SaveConfig(); } diff --git a/EVE_LevelingSystem/Level.cs b/EVE_LevelingSystem/Level.cs index f4a9c6b..9afa612 100644 --- a/EVE_LevelingSystem/Level.cs +++ b/EVE_LevelingSystem/Level.cs @@ -11,15 +11,18 @@ namespace EVE_LevelingSystem { public string name => "Leveling System Event Handler"; public string description => "The Leveling System Event Handler"; + internal static Settings globalSettings = new(); public async void Start(DiscordSocketClient client) { Directory.CreateDirectory("./Data/Resources/LevelingSystem"); - Config.AddValueToVariables("LevelingSystemPath", "./Data/Resources/LevelingSystem", true); - Config.AddValueToVariables("LevelingSystemSettingsFile", "./Data/Resources/LevelingSystemSettings.txt", true); - + if (!Config.ContainsKey("LevelingSystemPath")) + Config.AddValueToVariables("LevelingSystemPath", "./Data/Resources/LevelingSystem", true); + if (!Config.ContainsKey("LevelingSystemSettingsFile")) + Config.AddValueToVariables("LevelingSystemSettingsFile", "./Data/Resources/LevelingSystemSettings.txt", true); + //PluginManager.Config.AddValueToVariables if (!File.Exists(Config.GetValue("LevelingSystemSettingsFile"))) { globalSettings = new Settings { TimeToWaitBetweenMessages = 5 }; diff --git a/PluginManager/Items/Command.cs b/PluginManager/Items/Command.cs index 6634b59..22cd36a 100644 --- a/PluginManager/Items/Command.cs +++ b/PluginManager/Items/Command.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Threading.Tasks; using Discord.WebSocket; using PluginManager.Others; diff --git a/PluginManager/Items/ConsoleCommandsHandler.cs b/PluginManager/Items/ConsoleCommandsHandler.cs index 07e90f2..351d295 100644 --- a/PluginManager/Items/ConsoleCommandsHandler.cs +++ b/PluginManager/Items/ConsoleCommandsHandler.cs @@ -97,7 +97,7 @@ public class ConsoleCommandsHandler } ); - AddCommand("listplugs", "list available plugins", async () => { await manager.ListAvailablePlugins(); }); + AddCommand("listplugs", "list available plugins", () => { manager.ListAvailablePlugins().Wait(); }); AddCommand("dwplug", "download plugin", "dwplug [name]", async args => { @@ -233,20 +233,6 @@ public class ConsoleCommandsHandler } ); - AddCommand("vars", "Display all variables", () => - { - var d = Config.GetAllVariables(); - var data = new List(); - data.Add(new[] { "-", "-" }); - data.Add(new[] { "Key", "Value" }); - data.Add(new[] { "-", "-" }); - foreach (var kvp in d) - data.Add(new[] { kvp.Key, kvp.Value.ToString()! }); - data.Add(new[] { "-", "-" }); - Console_Utilities.FormatAndAlignTable(data); - } - ); - AddCommand("sd", "Shuts down the discord bot", async () => { if (client is null) @@ -299,7 +285,7 @@ public class ConsoleCommandsHandler if (removeCommandExecution) { Console.SetCursorPosition(0, Console.CursorTop - 1); - for (int i = 0; i < command.Length; i++) + for (int i = 0; i < command.Length + 30; i++) Console.Write(" "); Console.SetCursorPosition(0, Console.CursorTop); } diff --git a/PluginManager/Loaders/PluginLoader.cs b/PluginManager/Loaders/PluginLoader.cs index 6fdaf74..c506eaf 100644 --- a/PluginManager/Loaders/PluginLoader.cs +++ b/PluginManager/Loaders/PluginLoader.cs @@ -85,9 +85,20 @@ public class PluginLoader private void OnEventLoaded(LoaderArgs e) { - if (e.IsLoaded) ((DBEvent)e.Plugin!).Start(_client); + try + { + if (e.IsLoaded) + ((DBEvent)e.Plugin!).Start(_client); - onEVELoad?.Invoke(((DBEvent)e.Plugin!).name, e.TypeName!, e.IsLoaded, e.Exception); + onEVELoad?.Invoke(((DBEvent)e.Plugin!).name, e.TypeName!, e.IsLoaded, e.Exception); + } + catch (Exception ex) + { + Console.WriteLine(ex.ToString()); + Console.WriteLine("Plugin: " + e.PluginName); + Console.WriteLine("Type: " + e.TypeName); + Console.WriteLine("IsLoaded: " + e.IsLoaded); + } } private void OnCommandLoaded(LoaderArgs e) diff --git a/PluginManager/Others/Console Utilities.cs b/PluginManager/Others/Console Utilities.cs index 15b902e..44a8a42 100644 --- a/PluginManager/Others/Console Utilities.cs +++ b/PluginManager/Others/Console Utilities.cs @@ -7,6 +7,26 @@ namespace PluginManager.Others { public static class Console_Utilities { + public static void Initialize() + { + if (!Config.ContainsKey("TableVariables")) + Config.AddValueToVariables("TableVariables", new Dictionary { { "DefaultSpace", "3" } }, false); + if (!Config.ContainsKey("ColorDataBase")) + Config.AddValueToVariables("ColorDataBase", new Dictionary() + { + { 'g', ConsoleColor.Green }, + { 'b', ConsoleColor.Blue }, + { 'r', ConsoleColor.Red }, + { 'm', ConsoleColor.Magenta }, + { 'y', ConsoleColor.Yellow }, + }, false + ); + + if (!Config.ContainsKey("ColorPrefix")) + Config.AddValueToVariables("ColorPrefix", '&', false); + } + + /// /// Progress bar object /// @@ -177,7 +197,7 @@ namespace PluginManager.Others if (format == TableFormat.DEFAULT) { int[] widths = new int[data[0].Length]; - int space_between_columns = 5; + int space_between_columns = int.Parse(Config.GetValue>("TableVariables")?["DefaultSpace"]!); for (int i = 0; i < data.Count; i++) { for (int j = 0; j < data[i].Length; j++) @@ -210,26 +230,21 @@ namespace PluginManager.Others public static void WriteColorText(string text, bool appendNewLineAtEnd = true) { ConsoleColor initialForeGround = Console.ForegroundColor; - Dictionary colors = new() - { - { 'g', ConsoleColor.Green }, - { 'b', ConsoleColor.Blue }, - { 'r', ConsoleColor.Red }, - { 'm', ConsoleColor.Magenta }, - { 'y', ConsoleColor.Yellow }, - { 'c', initialForeGround } - }; - - char[] input = text.ToCharArray(); + char[] input = text.ToCharArray(); for (int i = 0; i < input.Length; i++) { - if (input[i] == '&') + if (input[i] == Config.GetValue("ColorPrefix")) { if (i + 1 < input.Length) { - if (colors.ContainsKey(input[i + 1])) + if (Config.GetValue>("ColorDataBase")!.ContainsKey(input[i + 1])) { - Console.ForegroundColor = colors[input[i + 1]]; + Console.ForegroundColor = Config.GetValue>("ColorDataBase")![input[i + 1]]; + i++; + } + else if (input[i + 1] == 'c') + { + Console.ForegroundColor = initialForeGround; i++; } } diff --git a/PluginManager/Others/Functions.cs b/PluginManager/Others/Functions.cs index 638b6f1..360b7c8 100644 --- a/PluginManager/Others/Functions.cs +++ b/PluginManager/Others/Functions.cs @@ -50,31 +50,15 @@ namespace PluginManager.Others /// The file name that is inside the archive or its full path /// The archive location from the PAKs folder /// A string that represents the content of the file or null if the file does not exists or it has no content - public static async Task ReadFromPakAsync(string FileName, string archFile) + public static Stream? ReadFromPakAsync(string FileName, string archFile) { archFile = pakFolder + archFile; Directory.CreateDirectory(pakFolder); if (!File.Exists(archFile)) throw new FileNotFoundException("Failed to load file !"); - Stream? textValue = null; - var fs = new FileStream(archFile, FileMode.Open); - var zip = new ZipArchive(fs, ZipArchiveMode.Read); - foreach (var entry in zip.Entries) - { - if (entry.Name == FileName || entry.FullName == FileName) - { - Stream s = entry.Open(); - StreamReader reader = new StreamReader(s); - textValue = reader.BaseStream; - textValue.Position = 0; - reader.Close(); - s.Close(); - fs.Close(); - break; - } - } - - return textValue; + using ZipArchive archive = ZipFile.OpenRead(archFile); + ZipArchiveEntry? entry = archive.GetEntry(FileName); + return entry?.Open(); } ///