From 93ee1e2c4345e442a6430ad58f4de473d0bd3b0f Mon Sep 17 00:00:00 2001 From: Paldiu Date: Thu, 31 Mar 2022 19:30:10 -0500 Subject: [PATCH] Alpha 1.0 RC02 Changelog: - Some visibility changes (Developers) - Added the Luck command. - Added some extra backend shortcuts --- .gradle/7.3.3/checksums/checksums.lock | Bin 17 -> 17 bytes .../executionHistory/executionHistory.bin | Bin 33673 -> 51988 bytes .../executionHistory/executionHistory.lock | Bin 17 -> 17 bytes .gradle/7.3.3/fileHashes/fileHashes.bin | Bin 19047 -> 20347 bytes .gradle/7.3.3/fileHashes/fileHashes.lock | Bin 17 -> 17 bytes .../7.3.3/fileHashes/resourceHashesCache.bin | Bin 18531 -> 18871 bytes .../buildOutputCleanup.lock | Bin 17 -> 17 bytes .gradle/file-system.probe | Bin 8 -> 8 bytes build.gradle | 5 +- build/resources/main/plugin.yml | 5 +- .../compileJava/previous-compilation-data.bin | Bin 28668 -> 31071 bytes .../java/io/github/simplex/lib/Messages.java | 35 ++++ .../io/github/simplex/luck/FeelingLucky.java | 5 + .../java/io/github/simplex/luck/LuckCMD.java | 158 ++++++++++++++++++ .../io/github/simplex/luck/player/Luck.java | 6 +- .../simplex/luck/player/PlayerConfig.java | 14 +- .../simplex/luck/player/PlayerHandler.java | 2 +- 17 files changed, 221 insertions(+), 9 deletions(-) create mode 100644 src/main/java/io/github/simplex/lib/Messages.java create mode 100644 src/main/java/io/github/simplex/luck/LuckCMD.java diff --git a/.gradle/7.3.3/checksums/checksums.lock b/.gradle/7.3.3/checksums/checksums.lock index 7259438e906d282560a252ff8ab1253248b73aa6..6d35531c8533d8a273124e0349bf340cf64400de 100644 GIT binary patch literal 17 UcmZQJ47>Jfmhh~81_+1*05f3(dH?_b literal 17 UcmZQJ47>Jfmhh~81_rNK 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 diff --git a/.gradle/7.3.3/executionHistory/executionHistory.lock b/.gradle/7.3.3/executionHistory/executionHistory.lock index 88d784a858225f59e425d8c51ba2bf365a9d0db0..8472ed4403051075e285bb2c040f92b956b81512 100644 GIT binary patch literal 17 UcmZRcB;nt8QAKht0|dwc04PZVQ~&?~ literal 17 UcmZRcB;nt8QAKht0|W>H04O{IM*si- diff --git a/.gradle/7.3.3/fileHashes/fileHashes.bin b/.gradle/7.3.3/fileHashes/fileHashes.bin index 67da483421e1bec1d942436812cab39213efa73c..0a10393267fda24e59973a8ffff4542797fe7968 100644 GIT binary patch literal 20347 zcmeI3eKb^Q9LMjVG$V_ZMJYtD#Fi9Rc^PN(GBb9Ih%!Wtwj-Iyrc;to2h}2*hE&EW z>1Au^jXjFwZ8tBcH&H1YHnNC{jrLy8eQM41$Ns(N_nc$yJ)e2L_jjMqeVIQzj}t-Y zsDGpz@wsVz-i19d00zJS7ytuc01SWuFaQR?02lxRU;qq&0WbgtzyKHk17P6)V!)Fe z2nP*D$5esZQHvyquP2i`v-Yw6&T~0HGZ zyb{bW7ZXzVjGc~%yOn?9-P7#1I6n19+}#E9LP^ywuGfCLzson6U(bkX(ChbHg!(%_ z#JskbU8A_J^8xWgR6L+K7KCd ze>&cs6Wb_#MIYZ2^AV4eCY{57sUq&e#$0J{$LS+Nug6Wul z>AdXCqO7Aei1U&$pEmQ5H(xt^fIfab=B824`YJ5uUqjq20CTJUBwH;abROM51am=; zXYl4qV-320D(2top9#@U8c0W+Z-lvTLXD+Uqsr*rOb~A7nETzy{x*2tT~pNG)e>{z ztV^qp?1+#e?!4_2zYr7ta&3G7-M1Mw=OuBhPWUG^KheERyS^H>d^f~nD00* zm0Vj|LyyZ<5%Z`O$14U;9N3Ba^Aj+~TY^wLfWCuIFaQR?02lxRU;qq&0WbgtzyKHk z17H9QfB`T72EYIq00UqE41fVJ00zJS7ytuc01SWuFaQR?02lxRU;qq&0Wbgtz`%bu zU_o}JCNLXPf9lOu30xCJ-J#C*lPheq6(R_NwflLKD33l~HMun#n@D`Y((o9lcVpYc z+B(&Ll%d3?3Y6ebbI0Wp)=3p7JWs}IY-zOi;_HOx(>01wqT?_#QR}z(ZJOoJx)%(G zHom&X+l&&yBPgLC%1lghjEnQqUJ!R?q^7#0C6b&mPLAWXfS&QqQer05j(nwaIOhis zt1Ra=56W2NTzE1uB8f&dST~r7L!!ZkIU?=1Gs?`w&KCu#WFq?at{^c=><}^&+gX>F zItH@CI$NHsyA%{pu8&|vORHxbMG0aLGhukJ^Q_+VLb1}X+X>U04Hr?3jr2+hVlOix zJ(h3dpe0#R^kmRHuiuuOvrdhpu$Qi(%S>1fv; zWhk_FXGd@7+LXwQA%_AlDsj0xQi2jJ@*a@C=6OxRzBhf(^QSM#Qniw``cetmVu=q* zC{rs)DQl~Jo64dzIPK(G2GVYu!3&g__<@v5k1fkkTe#j+W@^5IX%Q6*L)k!P$TAilSHOfW<1p5&)VR&eMgL#FUXH3V8 z+s1_!$LVpjp@ecBGco8OE*RvrZb;Th2@i7IMqUS2^qD>EOq5U*FcVvero-tcTC*Nk zPugf0mNL=s3F84Wb&X{mdG7KiJ2)tWI9k zU$AgWt=;24P{OYfC6uXEA9Aj8Uf5*z&e1(B9C0r`yk5^>Y=Se+_3&3{DxNZvJM+1F z-jCT|v{#~p&<)j4yT`1d-{yZ%&%Qh}Z)nwn?zI!h9@JCo{|+S-yO@dGX#J>3TI|Tp zZbpNrG##lY>fZ@xW@4nyrofDQ{(>|#c8PzFSU$0pnedrwAxi5{u`%drGs_OEBUcPj zH3F2;SxuzgrgE-qo^@Bc*Jr14UMD`99G|E)HlZ}mo1w~uC*r;?^T-H%bt=6^IFnBF zqZ;PBnKf$a;*Cpd6YQD~Ec1R-oOFdAxh+bl7cmnTB*FT}I`V~fEbc>5@G|n9PK`s@ ziV~XRxQdMMF_X>O#MxVJ(&KH~PmkPR8znTxNle>vo^K+!vEDig_y-pBvHt)7 delta 243 zcmex8kMa2w#tkMCjNFrJB@8C#N*YXlDk(8pR7zrUDG)COVpeH`$+glFJpZA9fq_wS zqv8+og$ClA9X+fV>l?RDjW66couh2m@ue=40-J#f>K^{v>dpWL`G0_vo-vTn1Y$)H z7VxiMY0vrZ+6Ad+E`OsYS%-pk+-9r>N`gQH5Toe`O$%`^TPj%Pw)y*`VOeiJJW1(?!L4m9?Aij2CPfg4Xq03@I8!i6ig{=y)DJ-uTvTLV%rv4o z$=!W#BQP*%x@gq6vK_k*688^8JU?)EZ(jG}!` z&79SjG`E(|jZ6q2fB*srAb{SmaNt1_RC`52}-S=?RffSPDOs z+{wSD_iIG{d9vYad2ArA=U+rVzopN&)NQ(;=ffgT%UyWJGBenq@9z}3!`JwI#Qe>s z=NTg3llpYci^p=Ap0|s&p$zm*4O0TB~fkYHakCMU=2ry|_UB)bwU(@ke7L zMP3$Y&g=9ZKXqweZO@`QV?!C5@`sN09~djDobK+Z8!$FZx2;k8x)q1-=11y1C8@o} zM)!;(;M%n{Ct4_1&#re(8XNt#pTXWM<241v{$MQR$}u)xrH>b!{Biczb2-a>(=$4z GHU0p;S^fb4 delta 43 ucmdl!nep)i#tkMCjEs|gB_w$MLjeN=gXTuXAL1JgUW!jNV4v*hp#%V`t`frl diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock index 06f8ed1f1dafa47ebcb4a75d1971a75f15fe55d2..d1bf79c5ea6d1652cb04477e267fa79a4389fe5b 100644 GIT binary patch literal 17 UcmZR6D^X+eb%*{#1_-bL05?YjvH$=8 literal 17 UcmZR6D^X+eb%*{#1_;mu05>!Qp8x;= diff --git a/.gradle/file-system.probe b/.gradle/file-system.probe index 9dc1248928698adfcfa48444e5bc31e2032eda84..a9dd5bcb056c774c9abc42a498bfecc5ed597400 100644 GIT binary patch literal 8 PcmZQzV5~p;#_<#Y3C#mV literal 8 PcmZQzV61!iZ-y=a3SR>x diff --git a/build.gradle b/build.gradle index 978c740..34c2519 100644 --- a/build.gradle +++ b/build.gradle @@ -3,7 +3,7 @@ plugins { } group = 'io.github.simplex' -version = '1.0-SNAPSHOT' +version = '1.0-RC02' repositories { mavenCentral() @@ -29,6 +29,9 @@ java { if (JavaVersion.current() < javaVersion) { toolchain.languageVersion = JavaLanguageVersion.of(targetJavaVersion) } + + withSourcesJar(); + withJavadocJar(); } tasks.withType(JavaCompile).configureEach { diff --git a/build/resources/main/plugin.yml b/build/resources/main/plugin.yml index cb93d23..8a5d590 100644 --- a/build/resources/main/plugin.yml +++ b/build/resources/main/plugin.yml @@ -1,4 +1,5 @@ -name: Crumb +name: FeelingLucky version: '1.0-SNAPSHOT' -main: io.github.simplex.crumb.Crumb +author: SimplexDevelopment +main: io.github.simplex.luck.FeelingLucky api-version: 1.18 diff --git a/build/tmp/compileJava/previous-compilation-data.bin b/build/tmp/compileJava/previous-compilation-data.bin index fcb7d76abdc084e5514a135cacf2130e15f46957..1d6cbb5021b04c235243b60b5d33b6080d451ffc 100644 GIT binary patch literal 31071 zcmYhj2Uru!_dlFXPd4b<73>BZy7pd407W_p*h_!_Q6QKE1-tYrRisO?3(^%uK}0&z zMFa#yQLrFVL=o{li}(BczxR2rY@3-gXHNahnP4O?!XxWaa4Js2={SSrB9Ssl9##^C zwSyUpLcNG?*xF(l{J*uI6UtU~&OHqP$(fL}dc zwQejI!AQ=lu#u{b88|=b-ZiPq+9N%(spGiFc#`uG8z5{JC!p zZaZEb^Ram4&RMHS9wIvn8?g*K>97w^SCz1x3)Fh{Ea_jjT6gw5tgOnN`>fJqTeH`e zJ$;XT?=Qj*C+yMQXDlw9@T{^f_x_wuYj|rl*BP$IH{i65Bv%`W8M+B*Q%IzCn@R4L zmSS_o7Ltd9#Kr=KNNC>}^?kv#n}2Hnw&b z8&qEnW`Ff*;JEut(%QX)y9Ql?RSa);(>C>6*`KjuV&%5R_p5j6YVX{I>)^V$9?4ZI zv(hJdm^mCfCQ%rW+{Fa@(N!FTgiI$HY8&CkxUK-0Xs3`UoKPXjRUx)TkV(iQl8L4% zf4BA?!@c-ETxTw-EZk4>klM)|Y{jb3coGRmNR&xiSCS4G8Yx2y+ScvUSFR?lMrdm$ zZJoXdSxGv$^N{8))l~?IJZU9Ki|BL>>9FPz?L8urr=3D96PYXi^<<`Lu3@1m#w~Fj z0cr)yPtambau?Z(Kw=QexCzjhB+)#od5mXnLvnVq`q$1@cbCe)-tE+-xIM0Woa8N1 zC}a{d2Zb1wk-YwQ4Igb^O_FOWboV%r+@w|#JEDV?r1=Q46=u2;fr(5S4$opuwD&Ke4!^yNGTg%n(f?SYbXoxzXqM5J4i644;Z+ zC&V%Y*h)%4_^AkbMD$;N95KFG>-986r$Y%3(r4@(N0P5xpkFuo=P6 zqb|rB&)!3uu>H|w}>9ipHR$}69 zpcXQbo!myG5SiJCA0pT^YWh#^oSApRgO=$OOl(^C7SU)&c<&JX_lSB2V)y~UKO%T1 zOpnk)$1a5A^Z(Qe{X}p{27H1Ql79v+$;4lPNU5D2$g9m)xD;E89BdR=tkSRcByL}g zmfg)K&DWow?nZdukR3e;{vE-45xfu9!(3|H4-KrOQY#zr05HKyF115{z#I6x1zQmq z__J*O&2?s5TAVo(p6?w*jDI4UzYu%~!G9z8FoHAwfUMYy?8P!$^AR9;^ztvLtJuyQ zJfp%EBu$Q9Ad`Il-~B~0*gzTBLhRh$SAE}YOYUC}4qo(_eeN2VZTaU42uMb4ty;b=7E`n7o zsl|En^E0kD2$hbQI8O~GYlV=7m&rRr$@mrMDh%3Mi*4-Da54zAjeP{sm%YS15~u@9 z2YQ7ehi7b_xFcYH!fdq%YwdcTN0ISpG9E+5uafatG9CvsNEGovxr3d=R+0eySjZ*U z$RsaIkzC=Rkl0*@cQ#TxEBOsF$q&@wn8-@JRAOf-#eCN6zFgJz=Kjt1lZO|}1yMK2 zdPcVhzJMVD_i7lT{rt?*_Kho9n%@&wT$SD?8{Q$~cgc7n8BZePdiP)u33w?R8_CgR zAlwF`7cT@&A!t`X2X@%&(>YgV$DKLU^&S;m;1EtyZsY zRK5F~Z$x6GlMOS-TA5_y`(*70WIT(EKP2Oi$appk_LxixG`AL;L$qT_2<%A+e4ap8 z#Cl5Ya$t@pL^clMT%hB)gUAMb3Vg9s(*|dQyd`;GG zB;!r+X)`E++*~RXn@L473-k>%1D>=H@@Umc2D2=em`Q91wa9iqY;d4{>c9kpYqKUR zP0DE_Yg(vc(~D*utmd-kwr>qNT4|hR_?9dzAm2c+Jq~Y7mS56~^>ngO+aT2V+)l>d zk->w!CzE`|jv`x$-Kg8?fEmgmh_JK5f`vX_lRd|7tt5H;(7oXs^?|JZk&Jf&ja|?N zoDAX72+c)50nPvK7V}yb)M4~+aE<-+H&eo&ypH=!*8D;ix|6>WlQ8RsRd5uWJHRSn zr5*e2vD|}G8!oPR_~4D|%x`48hm3zGgW-8X?gb$n4cN>aK)|sg)0V$>Dp`-eIxJ5- z7A?8gM;7*zxdUX~A7pSlgGAqU92911ZoM?!@`~ABbnfNDmz#`|ev%D;kp)9!-5%sO za1-=p7}RCdZ%Iy#PWlhXnAApM?u1QrSEFxnZBYKzDO%9jl3+1H*8EGxFHpc3UZnif z37H+ppfd#~VQ%9<1ii^8U!R`74qvO*u5BQdeBSIr;ki<{ZWO*dMd(4{c~bPfD4MB= z6^eo%Mz>(Tp^op)4?nuukm>$h+0%N4H$~HjVtj|}O95AA=g_nYC!S2K?ypXjAzZsuWS(lVcv-hX)11NYP1rMTt$Ocm&(I8|o1jvI> z3DOq@dYM9~J#mTYohd(P@U?N|Na_AHN!xZT52f(0Q21dKJe&eDN*N8WptXFIDRMND zLh_Y@-~aDH6fl5TavLI~V=EN<#ee>T*Q==&cF%<4qim;I!O96u?vPI*7 z8hawd!IIITq5*A7=b!<*Iaz0)RmM|z2^8)%is5w%euDy$%uS%zUP@RT8F~w@|6R&~ zSszOFU$1=HVsrDSrfsnD>D=2C;T?)`BiWmfY42M?}a0m9U}U*ER{w?du-i2(bE-_C7q7qMk^tNp}NQnspF{W$uVqWgqml0y;ZQt+n~JdXnA?iq#T{eM<2mkjcn4+}0A zCn4BKtFV-Lz;$Sjze*@MVI$``MZJK+Eu?4`QFazn@Dd6{eFk7|Mv0rcYmC(l6|*1X zEw|}wvR}uSQUqlbZaGEpf}(3wL5QlAwZaajTnVcH`g}|bJ`j8TW#yyz#dW8e=jBk3 zlnFjpQFN;*S~V1-TuLpp0qZKUl!#?@K$2AU68I(|?4^wytC}0&lGH|V4KwIVA-RrE zsi#2v_zLDPk`aSo7d%c&V(*9V(r_~AI6UO*-arw&rr?bP$xZN;rBr4Mrm`8>t8fDM zpg?H{3G4sf~pD7M#Q z`wQ2_R;8O?JZm4nIrPapis^fbx={ywYX)Wu9P0;yY8$ZaAfzf0`B4-1Z96tonM}Uq zCI9`ABJ8AayD0om6z*q=;TOv8uM}=Kh5wBr?4j_!Q}lZ&yi_C-`KPJbNFTumIoc0v zCY8!SfFRr@ER0^tu%`NUN#59oq%U4o`?mrujD;{bYAA$2XDFUN!9nF;@(u;hYAs%FO_u3LJa(q zI>{AM$RkD&v=YH=29nRUIcRN6o6~2GonF=IN7cPV<@!^30aRWf6%V3<<^}_OM8sq! zlA$3~u>AQ@G`s*i2xd@|Ab#JtWG1*(oWmRzRtL#g-`qDe9Z4TC94EyU)S+;hev zZ$|4{<8vx&)_e@h4yWoxQ1LeuG!jS`5da8wHhM{JXs+q}WyQ;@UVG#njG`JxQ@L_9 z2EGu>i3s+Z@h(9@`1GoWmEAwQi>#xsQiZWp<2WiFPsJ06SqiRENnR)ZlM3`YmEudfnoihtb*kX;g!Bsvwt=K?Q8ZOaU2XCY9uD ziA{?gM@2YSt1`nSJH6H%n!YN-ZS{stg;YTiRlS(1Q9>2Irj#S4#F9YJGwOKC zK%(s|%7F}6A~B{>H>TNS>gsL9J?|o=#%gXQ69L&Hg@;E{sO}pRrN2Z`W4h& zJ;)E_8iFO}sRu-Kjw>pEadD^giR1oCD!+=VUQN}gp&Hgw@j770ODf41auN9`nrALX z>xtq2yH&gbnjr;i0M1*8?7{xMhAYB>Ix4Vz(UsCKJ9dw69yolU@UFn5k;-eLavLb% zsPMtgEA0Lb)bLxzmA(%b4>nWv-%t%(sCX+C0-849y15iQr?~=s3#0wZ%w!Vtc6b2^ znVncJ$EFGAF3;eV)s?84ZgbX7c=3*^{+`M$CKJx+)DQ0YF@D}NdZLv5|GfElw}Wa> zLHz*BV0IMx#1azf2X?>7OQZcn9E8JO_(!UslgjO)3O-Ts&xF!_fluXx)S)R<^efy* z9c1QWjLb7ly>NuQqQ5rSkiz+AY+6&;naqP%y{@24J%P=1l|wdsbDS zOj>2W=J`+2hnPG5_kU1#3{vr*gqr>$?3e@{0`5yiHdyGF$Kq$7odZQT3vW&pdPn@G z@`kD0KUA#|D*rDPzd!@ea*+nU6w>8?DD6YUnFgTk|8BQnZ=>QY*$FFLucy9q52~1& zLl_=zSkMzf{H0 zgg>ZY9s`Y{zjm!%SKKbZ6x(@sxmRhzlkk{py}a~!$!hA`S=WQM^-mm(rD?>`4C85d z0`TSbl8e10odyw?!>jN{?y0Cp2yjO^{3DKc(sB(eP(9Jf9Hq=QPL%{}W2FtN>QkMr&x)AHpAqh0A^qF+B?gNX*wk|yp#rZpbQ8&CU!!r z5RCC|!c61Ei=bJUd&d1%!eGn<}A&M0^sH9bQe^!@oE9@?bJnTyzDv9=n*Jw3%07eO zNbSDBzYsfrm>zs`TvPTe-8*VX8jYpO-xB9W zUeZJ3f2VP;BWNlWa~w{*%BvnT_nvA;wC+Bas9u_|kH+n%0Sr1oh!Vu3KZw6}V(izo zMv}?C2gfHCFUW21xE?x46a1v<{-SY*Xu{t#-C-L3hlY>PAhrGrLUeSc)a3T(o7tx*&J6M6i6>p<7YA$!_W^M`}uXuODn{Mbs*Y~As^&oz9 zKw-r;7MGwm0=KaGL&kPiOZx+K7V+|Yp7aJji){6$>jltvBqDFf*);4LBVW6LpU9ZA zFh+3bxHuz_uG>fDU>je;mSKO=5x3}9?5K&84+YVA!E|m2oqw6W3yd$p7l~akG25Jx z+Sk=xtNH?$&rKX>m9YN`T{Dah@Ch0Y6pvyjKrvaWk}`j7HcRbxg6FsGe-#mQVI-X! zMdwG;^`^yr9MJ9{lY`>`L)Cr$$I_H~j}Hmm`JKmW2K?jcrqT3D z8m4iX(sKINwY-QW=d2VxNplkDh85Inbdr}0;J{I&D=cCu``~Zde%%G361OJxZP)4g zACNByhUu=UI==~19h|27dw*@m+Z%L#A`(Q#BJZrf&7He!*Iko0&LOMv-EPwLZ_)AF zbo>q-ze|VoG!Z5QaUFrhCBZ-hR!oE@kfU zbc0m-u3_5vG&;$}>?oQ}2lD~gojn9|gcD^otr_~W>%4>VEYvJJ|A9sZou5hP-=_n< zhCTp>0EPyXxtspU$(qMJaBAkd$cy8XGPCHyhjhp>AJIu3VzBdK88E6cbkBz`GyFUc z{SvfDCmhPnrmMfFJO*))$)qQ-a`oFuH)9V^zBaG1cFe7Tj3;!h9J)p>gvWIhtanqEaO}T#KmKi@t^jcR)p56 z)zLLhzM^8DpPwwL^&LN5?cChBHw>SqmvrrVI`0)-*g(f$(;+zmY_gHiB$<_15s5TG zZv=q+$bE^`_-k{{KlnZFUQ}0Ge;f@iGw-lNn|GT0cw+gT zuF*^9_0jeF>FNV?;SaiI3w01g&1MwP{0T%s$_3jdUl7f1xx;krKXl;;9sf(mFEH?nP}^WGb!GsA zCC5ZE7Y0DkpuK?Eqpt99^wNz%^0okcZq)L@V|NBfwA8^KlUq2}ZBwkjl6B;+C2Xb12@ETk0hqY-WC#N^ZuAK@*x8>QAfI*1;DUzp=aSY> zml?cJ2KNd>=tT_!8YK$Ydj&i*Q#GFHu-{ly9Xp{ImwzLi!H;0zkqlfn3TT2LZ8Um8 zqv3|wOd0k2vu+&@YQMf}t$u)yFaP-E?=cK;h*zOc0DNt*KfLkBnH9>hH-}~^3vHE; z$1?CZ1_Z3}z%dA%Wkk5D|9sglzhkE=jI1VH`K|u`X#zudjiGs+f!~0E|AJp5H`1}- z&;H}nE&FU5T&`yes3AEw8DO|?0pI=s-h_F2T)DaCq3W=;oyEg7?1$gDw;8&37=pVD zJdxl}67WP0#R>O_b%V_%faI?-Fp2wf%AbZA+F6O^L*X&Am6I6;K1d4iZ4~a5V=LoA zoW8I7Xr?=FEZOf?l(?^UIU=f3eU=XBcKMxS0&o z`wZBU%tI<^=mYp1wxq=}K>BmL17gW7n?9}gD|$)McyT$40djqbhDA}rAD(^1YMUJ2 zv#xW2Z{$OU;1NT!2gwFj6X-M%ai%da{>3A4VWedhq+MT=xY6B3j~Rj|3~mlXuZfyV zupBfWh0ns~>0W+Ozb`zN;bM6(l(+jSgI`V6#OOT%T{cEr&#gT-{h(-`GcS*!`;4J} zg^~}0m;p<`B!Sk4XXJIYTgQcn#+)WUwW-K|&VZ1!fau*xY=KQOD7bvCFuv@-5{>Ag z1p`He42>cNub6?C5Q1C^pIJc44cqZxus)o+JtB8V$w+3-P);vTI9A5cEN2+U(OwX8 zX$$DKMK>9Xm4E2c|5ZaD+Fq&g+-c*93WlJP!L3FJkaL>em(5-L<5i)W^wqbi8X8p$ zehC$9z!Jv=8{cU&lFnW~|8;EZZqI54zlI^KW$3@A)Byz$_*s+_PV&2vO+iLnyyoE< z+~Z73M!`!28@ttK+UA(_!@7GHma~$6=?~E`XNCCUsz$|pMAu;P`f72`ONLH8LpPW5 z3dsD2nifzowbNmzc`*^l_P&e2NnNvc( zeAu+WtdX)~&yNFo>CFuF3hEo6OePaKVIjk7>&otC%?W zo{;6(h3$%Y8S}=PwK=WCmubvtV`xRw-+~AOe1Xk4V7U6PQNUU6BVO9~ultWHq+s1e z&0T44GZuy{ey-Q|c#nNML+c$w{XIk21Nl<}HIj^_yItrw=NX5qw~XKMXkkUrbp%VO z9{>Ju_P*)0%p3RW^9SwRExg%H!wvJ`-WY?{|+q_yER?c7kox$&AX!SApxfB%b zhY?`|k=XY5Q+#N%(k#`xZdS=Rey=~)5JJWr_e5gZ2lI}yOmE*)ArF`hF!(&=KZlBb1V7aZ-!u)!HuV*e}GPN z5zM`8t&?=2|BWeUCmvNkY&<1@grWDBA!tS}Fo}f!ganou0twUcZslc9HjT5TX!VKb zQ-bax*oG}<=lyN%*0n!bFRfZB5?*8)bkI^5n3~u6!R2G-o0}M%9%qq%ZD53gkpyc5 z6Kw*HA5Yx6p;y)u!AuuIs}D z=PZ>fP+#~O{`$fFsQIp~+`4WWVsmrn=MBoY3d!l0m_mQ1Ab`mYWD0|r+QCdbgo*1s zMbJDDB=j=0wvj4e5j)>~wcZ@1T;s2i=}(F8d>6{pyuvgNV*>tzhBLuO!q%#V73?18 zcrQ@F1a!-rucv3~2SqS-?~o&bjqu(9Tou-+dZ^ap7&Z{OBeQX#iT9W&rgk(Fk6}V| zaFq#rAEVwBD!O8!&41UJ=IMHewTAIKyo>hTRX%6ZS4_p`U&{)A*E45?Z_<{l@`5}j zj>!w9#zO~0Ios$&jpCk5G|l@XKNr#PDt4o30@E~!at$a2&<#}fzUrJGtanB3!#CAl z#_ARJUuOz$Fu6CGfb!mgZU~53u8^1$LH^>*Upo2m)lT2iHZ*-b@zU=$Q|}H_>n@Y~ zl8!#4L6%~Xt*oZ=yRBoTb=Rq;Ro1?VOyeXb_a0L-naK}gri?CyT&#+w5~GWt@B*V7 zw5nO`*ADzbj$xkvIL$YW$xCN)Gnks0On@Km!`vmZ(cSdT;H3j1O$662+!?z=-PPZ1 zj=`%3OuZ~7-c1Fh9a}!Up~t{QP1tHUeuMS0hV2iThQqW64D89nU;53#bt{dGDzyv( zk<>@b9obC1LF!{BWUgjUfFywGs0*jR2ZlZ?9F zLXb2l2*bKFCq#$5Zkosu%^S_{n6VE zyq$NKGVwA(nHccyl1Y+a0jegFSjD@oSxK1ji=rA>35Eg3rccA`tdfn>EK4NSeuut|g+n$WZ$ zcc%DPRa)1i12f9kzGiBc&>Mk!b|)l|R*V|Tl3q-IsnA%(>IidnEvqcBiD}%-G%Rz%V2o*b8I+!W+Jc*`_wXX?FU;_sQT z57q$;fr<_r3-rUN5wZLDZ~kJ;T*vAAXnNMW<9G-2p# zZ(Gj9JB}vFb8Dj>VIbHe_`s~qJITtlR`zI)J|gl znFgBxr(%wrD9mNIyc>B_)hL~QwVNsIB*4sVzq%~O$F^mK2}7zc4Vzv1#x(3{PQw}<_e|jLRU1gRGa4=^9Cv1jY4DrLA7*O# zA%)Cfh#Ilq4J+a-*S(F4PckkI{_}I-*Wmyg$=Ym1;Vhomm1G7QdZNz;Kwne^*)OQjL*0 zcTjw`g0aq(#WQk))-tj9pN(^Vw0&33aQu32uPuj<=k7>%XBm621fDFe7faKdCGcVK z#lBFJErT>15)D5V$<1DL(oPliW2G`N>nR;rr%O$P%VW|@{qZ`cmso}$$o|CVQY+YE zl4A}I=R&lMo9;)wIIOM{neea>!9+%x2av^-FCkz1uD^fvb0mO;2eLprgP?1e5}}%h z8&|Adz4)JCAZEN zk0|$tu}s5R#t|&-NEYPLgXAa{$=%8hko0J{5W_6&Vqhqus0jNq-6PSaXsL$b;+2%Y zz9lP@shBQ(>eMSd4fd7Qu_Y&W-Y&b!;>WTK-N`P97vKe77O#@-*gv*xwX4AFgim`M zK{ycnWKEG*!&O$g!&~F%d|st-JPRPY1fUbb%27|U&EG+QwEea)I}Jong}EYn*oz1uAO4hz@43(HFE9FGRmi3F4WUB|F6)2I434Q-Eq zo1=O%Dz>(}JBg+9g9;$LDnG9S4#{o9%q1w@Xys?>w zHHzxg&64vKDJ+9j*6v|i8c+yT>gm8mC^nX1=UN6 z_?@kjy5H~HwDZl1RjEhb4KAnOX9*s#xc5dQ_1se1Q!3wj-D_;#Jo$PzyeW&N^^nDT z#4^dHWD{Zr*-r`;z?;U20ohS1-z|e??pM_e|9s~$i}!?O=ta#T_$vbkYa`x*?LX<6 z;(dC?%~<3)pvBl$QPRx9dT*KQYuJ=FNF#&sqEemT?YJNJx&k#9mwk7uHe;<}e?(-_q>K zpKh=~l3ehiR4n78h#eEvkT1P%~^(&4ThFOANVs`|?{ws?y>g2G)8L!sgYmgtaWZ zjs*_nCG-r%<&d<8F|b#sOJ$XpzsAzGt!Z85yFIL)C3wXW){zUD36^jXda>{OPM!@ncmD%^x80VW<{ANOb-vA-zklPZ;fU)Vp*-ayED-Kw0 zuH%!3j@V*WjRUI6Tiy!uot9(_U-m$nJ8E6;dJ;)}MyI_GP!HS)0)wY~TNE@R`3Oe7x()hsQe+08e0~`(# z%~dy_B4Kaod>IslPrg@CAY`3z+xFG1$5N`>HyJ zd4CPgb+QCqEX_}>ou65{FKLA|sK)^#JG9flCw%Kb-5+Z^f8)04DPLH|Us>EkP^5t2 zBV)HL-WN2nZ~38fw4=9tx>o6`D!UTKh7)P z%W5&SQ6K!q((7Sq1~77{Aq=c&i*V}}o5u+kF8z!~B6Ze$XX*B`_YU-C+zIC{B>!Lu2U*-27WxxDl>p>}ZC)C9PH|$!;|H5m z^-pbBuJ?<@8)D(VSrDQC#5hc7xI%=Lf8AW~bG^gE-MS#C!ZD%i4~sv-(*MiCFR%eS zyvT;qcCmt}*hHP#phTmWE^H{*kr0`e=D38oUlE<8+>$+KG|we3cV!FQ*uqe%I~(ee zCBTF)t!WG86%*=zEUh%6t+oE-!3J1e1GCv#q*I=lu*kpQgJ;pK>l^xMSdqz^eZ>aT zDm}Hr#VX%^9`s~uUT0Zh80D^di?YaqcP$S~UZk?si>=v7^#)P^Atx+T&?=Rt1FI=H z^D15y;}4h@UeK_S`slWGm(EsGvVUjwB}Pa1u)%)%vLTNAXDx|LT0JOdn#W)3@Mnxv z_N7+~ANjEjFR^((v@WJUOj#y9F&g6S+34Oq_BgF?h54B)0VMX0SOi;`w6-g;?MHR8 zwYaXO!)AQ|TNudJ3SyfMv4VjrqI%OtTt^8Zm<6c;NOP1H{jK7=skg+nk23u3x$H9A zG?Z=ffP4i$u{&lbJ!uyP+yc||Anne}%G=+X6zTpyj8+@Rg|qPpHmp`A0{-XjI|thx zth>RHZ{y5Nf73=H*@7sxaWtFj#zftj5Qm^|Z*4m_Sn~4H9A?wpI|6zPo9j)Vhd{?N|^sOo2FiWYx`LB$3TO{g@neQ z8*Kd&8c|y$e7WrT40loHzOdZNXw*T$_20>iGH7ZU@h?h<4d6SR1y+ z9X5WK4Y6b*o8(3KHloxSO#&kSyN0yd>|E;1EhkSjwfo)FAAf4s#%>B$vVO+bUY^w% zUFzrA{wBVw@3A$K*?JL-d;(<}3ZH^ZKJe+m%gkB(Cr$q4mcr(zvUd!z(ty_|6*Y9s z$nmvpdgtf$wd2UW7yRD$r?X)rCxe)>-3gH#d#mPkVeg)htq#}HnwK|knwiPQ?-Psh z0KPCMN@HM6PR44xpEpixY%W~4`{rG7O%|K?kj;I>=4G?-$80djkRU%{6Pfif;8gru z`~GQj_k4D3$Z4G!8pq9H3v$_pPuX}L8`pith7EO@l*n8lzmcQ)Y?Al?-F~HFelL;f z{fDAN^54d|m)Xg&&)I?kwkEhO;Mj2oi9HeCUuI&T0yl0sH@Ex5Z|iqYt?=tFLTK2A z&vQLA7pSgUWhmRcggLUmh|Mczb6bdQuZzPS(`GJx*0u3U=F!a!d5=rj{8F}I8C%~7 z3goc5vHPtSkvZ35-yNJLvoc*$jbQT>yy7;U#Vfx*%}E+(u&}V4z4HYdN**d;l7R77 z5`Ul?s3kYjPw?UL)%7t>Yi9F1^QzdIFPPPYxc|$m@|u?-TD2I$<<5>CpAm9c=>KF7wtdix%;oV?u6?qFv!u#pOPaYMd}nQ7gn#_@ ztz!y$^WU)r@7Z_<8?a}nllwq?X>Sk46wcO7Dsg4s%6xvuwRft6T6o<@w(jWx7Ivm> z_1>uyte%Iyc{8>!;(l-^o7ctGGWrBFh7Bed4RVzhrHm=K%4_BC))xd9ziip|nJug) zvZ3Wcd6#u|6zoO+7~V>5Jx{(y!OA`injIagN{a7w8cXkC)4#Cwj2<)L2!^}SB;R>- z3-_(IDx$w@zOn_~?A_nk+-Dn@2iW)zHhz8(81!!=0!W4fH6aWY%+0bOcvrs3 z*@C^-6&YE>KYp@}ezEmnLyuWY!TbipN>7a$@{9RZma~wyrIB|k~c*qo29sgt%UW~uV+{HLI!q)!F*3D&d3dtBfDSEP1jN3yGx7vQqxj(L6 zKn+Kj7g0jDEFpP;EF1esdh*Cm(T%?A?|zgsMcv#PHE==sA8Dhh+pU|kCu-lFbCci6 zO3;pfsO5_8c0+f$qqqkO72}@hXe~Wa3;hG}LLsOofMM)y$?b-iN&uYC~W0E#6cVT^*c{s|8K)LsclDL-T8x~J}fGwC%BE|fQ z^sOS%ol&TEG-{MXucgGGBxk#;KnKXS2+E1^@^>5OPwQGG-f?71#Yil=^F9MM z_W1o5?p~zjk2hYzVW0D14aA{(@#s#-u7IPXTd#m_bRK-$pMPla-HcbPxlyvaRo76V z8+siDQ8*^H!)DeT`hNOMdv2&#PIYa^nOQeb-c1zF{De>g$(U|LQS}GEFT4o@9|i{= zeLsB*Rc~Rpv$18XR~#(l_8pl#=H`n(YgZ@SMum4!?p;(f5!pnXrqg&! z8cRM3wk4v5NvPlr{T{6PKe*SQjcqbey0~CA@AqD=`ZD?9M?=Y|`Xx#V2pFN%=A+!L zbT5cIhHJK-F*_K-LlzsPqTHY4i5N}i+>xUsoX@@Yz|5u3ZD$&)RYFaNDUX&?V~?g4 zG*wR<^iCZdschbIysr_##`PvQZw^|$)pga!&ZWLpAsHyIk+ub!R+VAC&iO(n>C@-$ zXGAA0n-J`&-kD3dt>(Rgggv`C3l>CWqFVI`NT5#KSe={csXJ`yx*O?p3u0QBm_gW` zwvJCzy!NWEOR7^oX?`CSJV5zbDEA7~=n{%gT7A8?yI;V$66V;m*sAWpLsakxwQhGi}!f4&edW+(2-;u4m(xfN189TI| zeva-aKzScoUCcs|XDIB#6uwKohUoLuv^u2Iou1Z<^5~c-xUh?~R;+=Kahh6Lwe?pK zYFdm!iCqb-hMinwDK3Qz0!@%({waHNw~e^0Rnlp^TN-p^+BYc8O%fC?HGavk))`MR zUaO;8hU%50hA&XO0)>#~6uPMrg>znx*tJ|UatHZbiTDlg>#P@bC#q2GM5G!-1&(aV z;M_5U)7tq4884JeU+s%ov3t{A*L^jpaWp*u#hztVoOrrXSe|#rv^X_=Af$kWm5qDh z7+1=9z%hCL+(PBr&RSHj4%L5&YE;ncLGz>u$SasI9DT*wH&R}iuPfNJaN_zo>QCP1 zHlT(ztk;Bg%M=*t-u|A>u+ut<%14g`)#8Pv2zG4CqV#pXx}4VE@13?k4Lj6G2oD&V zjVF#T{A{r0oTNTT)Q0cE?T8 z4dJ1@3rI)!;Cj-g8U)+E2Qj;uvU$4WuW_#0S1%5}L3dxEwg4s8pu=l8Ry~FOk&@gg zmuJjB!`Rx2YPF%JZ&AD*g+v5=<-1Y6BW(72;tGywf^D0=$fGjVebHF|zmH36e7y$$ zGBK7?vn1Q}hP19pHceQ3_Cg10+{gYv7(__#N3)iofwI8V$4@odww{T-d!@ejBP!@b zxd({7MJ?y84oNB_5izPOA7z<-+TMjieJ_N1FLnRW*cac|>+6LbDF0+>5KG0jOuMwF zojd<^NAS8oE6)Co4MDJ<6Pt7WcaJS>s&zmAREE#}gbHs{KNGB$AH#yZRaXvin5lwq zlMju@)_HwFjlZJY=M)qcxL9>g+`{|*-r16aXEsipbkvQERVp6M=PQ3nlW`tJk-M)k_IW#klZcx-pxPhpG?L`caY(asCQ0G%(=< zgdj+5u(SRpKfC+_oNf1SkW@3v&ip_HgQ!L$9AbdTF-x;S9J*vu2IpAGi?kD8cV1y& z-Tg(&W>>DKd;TDQAG0xA{U^$gq7P89X(lkb)-!Bh3XBV+P_iQ>qCXZEbQ+enMI@dL(!^SgSHoHN2d;>rhic55fsq7zo5EA zK~gjeP^?1j!u?(Y`Ri;g6UyYO3sNp{-~iKWD)#M|GH0#T*XRpMr^nAX3SW1T!+(T0 zb4VTpXbDIPBeP=$Buo7Y@&r!;NEtllstn9Ho5@@y*9WUZn3WOmgGk z?i|4Mh)n?Bh300T7bnv;>c$j@6rO(I!BLN+d2&eJ3OF!qJ*tv>$61H1T2j)uJfSNo zq(N=H*a zfUb(2XWJQ=S#{IK83m5$mM*}MQ$x6%$fUb;!t>^bX0{HuLcu1Q0e zYG~NpZ^u6VnP9nT-43h5^+ID>2uC-I*~G?}Ij`qm-D^6H_LNkEF3Kb6|Ha6xjB^A{Ps6UAB||+LLp>)pJc=PRO3J>I#P+#?g*tg>y*0 z|9wR`M*v*2TuaAazqI$_(YXNaEAKcS!7+~H7)NmoQ;`(%8yWyC?`{~jOV*B2Q?6=$ zQmifb9L+I~;pkuG7&NmpXbDIx2O=fNfuJ}Evq%UwkDG8k)SOg>KQ!ZHm8{x0^ahRi4ulIEINx4hxH}h&;UR zy_%Ey#~pDugL}QMaSX3eu5$>~)DkSYL!Zz7sdGJ3ObYDIFI(#Vz6&ym-Iw?I1Ttrl z7aR31HIQ7t!NG45Qg#a(nK>y&3$TYqf?1EhRT#gqiSpgq@#xiUjv$%>nR{*8_0 zn<-lhwb~!o)cw7~(Y(un+|H_yjV+8JrERSAoa>q$wqdCXvm}wDpTyC+$KiiK{-Sjh z*a^v*x6YwXIX-;;d<(TFe@{J*MzNV1jfuORBZ5GAxC|uSNjI(?2jc?Xq3Ws&OhCJr}f|GfL$M(>TIJBprU01$GfYf`+?~ zFW<=WuD|NaG>)a}U(VnNGdaTh9Q*+X;@~V;0pQH&;fEW@brd^4%YUxJ5`Is>TDyIS zOGWKN4*v`J5eP06wb>8{*0DABoV&drCvRfyJ>;Er3X9F=7(C_(;%Ujq6X*xs<1bT8#eYgctx{ ztTpVFX#Swix7)$BN4E{h3i3Ew&p2@G=P5ZKK6J1f4KY^2x$k)bm0{nAu=>Y-+RUpu z&pDa}9L;7#6-rQs^3DrB@cS)&FJK|+i}3xApiXRw{kTobk0){b-Ey9!y$>qn827S^ zK%_^@Xr8oE4#`=L9T}J6XfmPA>(}e+ z8iMD`4wrERUDR@5wL)r-HI#pT)!8ufTwwSi{r0&S{tUssY;ug=+GFG(D`n2VH}Em; z1xK%fqg_F-1kti1Qr;@)R*X$sGH!8o?sc;%+t%-CKa8)d<`~p)^lLeqbsXVK&W;Q+ zSfP4CRjh!_6XI7KID{j{T$&X7I=p7bt1eM)(=fO()|HGsBK5eDDpw|4vNPGaCiK{s z29EJ-j$R|ju#VgWL&Ao))UFxGg-V?_M1OE5kC?W$rCut*5kf6f@bl#Ov|qF==%*yeUmS^XjAMST7}gtu(uianrwL!J76pZSOe-9UQ(F z)rB2L!M0V*c&J}8?(i}EpuF0xeBlQU|07554!M&9J3>|x^Ddy7I3*9iN&xKr5QNQg zs!-eY?)ZwUe-?h?Xn*Ete&Gnin2mI+COVdR!A(QiAz!6jucN`7dPnsuhu_T+e&cBO zaQI&t-+>(tzz$oeV9~@n?@N`)DjOHJt#8L3xvaR-M8gbQO?Oj#I-5EZ^_h{hH`=`% zULS|+%mTNxsIh@=6Y%Q8*Ub|B*FW^uueWglN`gQoevlGWuR{6_kUvKecse3Uy=9Vf_kv{ZmiIXf>{jmL z+D-L|o|#2H)5gzTvoBalHw6LLzL)bNWMw7$8fM?-i#2a(u;-akU(lZ@CF5u%?HDEesuE-*07?ok!n*tQ4xA33J2{4N<#*LjCgTqk z6Ar2hlUq(1v9o4ouOFNFEmjGSQvzv;SAq~tF?fe-THa6v}?v6I_AE@;@OfJ))s!5ewKm0^S@qK(z&6ecT)+! zrGy*bRss-z^q>VCxqzKYwX$34HM7RcZO`f|FYH;#yQ3tytHe!I(o9kk+*2}4Rx;j` z0_!b?Q*LmwEfwSkP~vo&Dhe)?v)1Ln_$fR5{yM*_KR7?HAWaERCn(Q=HMjp?H9etG zy)WyVo;=X@f4i`B8%x!6Q>GGrUkTLi0T5$pBNdIR-L{JrxB5gTUHA6>70t}<&CF85 z9}>M~aiE7kwo5NJYK;4vwDOJ7+C14hsAj*YJ4eaT=>Mzi+XJeq(!SR|`+i%UtY*4R zua(tY8fYXk#nr7ZIFVmEyWmAofS)+};=1ikpR3uTkilTrZpeW!CkBESZfC>tz zh(Je>5JcowpeW+^d-kz;r}vwG{Ok9eb=!Nd^{nT*_d5A_kWUb2`64lOpZjNvtgU4Y zp%+I@eW1Yh+fNrg05T<<6l|7X7t$AW7Fq_KHr;v(0(OTTCBPs9XNb; z1~cE!4*ldfK5CEi8j%#4{p5w07N;(VUG{kX zgNuci&VN~Ik9<8_bIUhAxc@@wQu43VHmQ+a0iS@`68|{j5!UF?`0eqj#qY?)cd+ zUivKf<=0d5|FSju=c^{CYVKFYJTv3bFFW1{9`u3s_RQD*QEyKQGz(1kSKRhv|{Zq>)&g@${#e`e^~tEwC9Hmj{jE49h9_g)S`3t%Z>K%Z)_ZRu~rz;MC?vq zgW)ULLCM?Z^Tw`yYajPZ_+(_|k@NP*9y=|&$6r1E?36nn-91J<-D2Yl zhiKV-?EJ%j{(Q>u@Yw$Mo_*L@7I?v)cv(A-+;G_9J>Pw{qicEmLod&Cb*yW(ho3Yr z(qOY@xuw7D|ND{Ue9%!ngLs z@9ZIohS}pZq<2*C`c8jC^33P@53Q^J>$@+UoTb+F+IZ3IGB|tY2OrFQ4_}YZcds5Y z_lxcy|KnZPyZzhtwnpyF72Mme{Uq`qy}QSZ?zSGfJo^5BUa`mZ*^{n9Jlc3GQpL;m zNI4~}eSTv2!F%L@58pYu<7ewq`fT@zyO;IdopAK-$EId|V2^xqcfbAn>)8A{eZf0% ze(La{8ILcTkp9t@iSLzk57@8VuqQ3#!>X0F_$D0NH1bH{%yDn^+;O@7WPx;`D|8Vb z{`yzC`-OW`Ji}sFx0Iys|L&QEN4Ly$hd$EtMEyr6o*j32Q}vP59lkZ=Pzq{QlGhZnpfM zk1nWLL!J(J=GC%uIbosv)vx#)q4HjQb>iOp=4JWBilKO}AHUVT<-fC+^YLLEUn9mC z;g%5{@7Lv%yZ6SeAJ0GT4fy5Q+amag z1L`C07dAX}YU8Bc{X<9GKKe**z(bLIQWPKe4dmN-!~Ooi($fi5LIlHuO^E>A&j$PB-y+4}v#K(irJahFz{HJdwKh%+Kx?f&9 zyLec2`de>QAFGIdf6KVdd{R0ezJ(8|SIw<>WPB3>H{<;|864jgQI^I1T>F~mo`3d* zPyc@7MEACD|2RC8Pbw0TC>_0F%d9&`J>LEK;lG?5**jMzWxw@{ zC95>|*e-L!OK<+AY~*vhUz!)B zSHve3^C7z>vxMU# zjpCmC8$vW@!mZjm-5%j_>eN&JcdbhoPC27Mr7xxZ`IA%K|5%qKO%s?>Xa(?kSDlg|)CkOrqXUI3fi(bcJEB!+ z+wD}@V|TbZ>|MqMv%n6}670*?H7nL&?bNnIV3!G#RTkh9m>lFP6)S{esz3V*KgAR? zLnst*Vxzzw^lFJly`68?YW^W|w%ViR2p+Z1E)*(+N}qZ5DwMg=&qZ5+2vsCZH?DD3RGVDhblr4j0SvS+s-ae9umU|M!@` z!H+p-qdhhlZxj!vGX?Ped?9tk6PFOi+Ux`k>ec<(X)1^pSv?iZScf^G0<=8mVmbKW z8y|4|l1`5s{K*G{AH!=se$I)Ke*bnlm>*IRFb02cx$_uA4%0J)V$&ZJbCJfZ71+0Q z5ofBdfD$`|c43>z2B;P@94Pv(yo_+C$-;nUu~BQM8WDONuQdada5+n;)iX`D0(Gtu zSB=S{iHhJcB3noO@F*JylSQ_PYTE4m3QGqi^=K7Bj&Rjr+o*nr$g&CXq`A~?pR&$m zg;Y``vLl40A}gnwXr8LDDk`~Tuxg;PhSObyi8WHL%)Z7z|975n!mOX~z#_k!rxg+Y z`lBDrQ6mj`Lu1W^7ev-Wcv)oEfv!4f3&JH5CMiP*c3}z^gBI|RO9{(xN+RJ3iA51M zD=Zf1x+K>aERIU%vUq|7iKPI|Osm&ymLjYYsZgv?kMJI`-(F_2H0tE6M+Q+jf_hf3yH$(kSv<;M+0>*#=u+5jqU!8+o9zQ7_PG4343w{t78r7P%aJ_XXQlB z8mV=OYlX;~KvDl@ptR4-kS<6^E!Hlv)c>>w&WR;InDkEcQ>yd|q0jW~OV*7Nag`Dy z@6=f@jh>^iYlPQv_=qepyUb1(cWQkmZR#rHlrXQ|PSVna6orMLTB;QmWx^iLV<?k}c%UmoKdG<;q7vnU8cU(NE{*m4YeQ{DiBcid znDwqIqgpLCSvpE~3h6?CE5dc&6((*F)5U5rNLnnVNV}zdQod9pU6VrOm2$WoFDJ+; za*u1XoGX{hr{xJva)aD0uTa937-fyJLD{P$${k9z5T(YdnQDPrq?W4{>M5aG^{Vx1 zk+@N4QX^g0)C^%joxVg%)N-@}?VxsCOI9z7)!G@YR_oEOY76xMJxq_#QhSeex*{c)@$`V*{jEkWkS0irFZGq^&n%Zk!a)@kupT5QH7UsnvG-2n zoN~#ERF>H*?Ff6deO=jT=h&rK=vuqZuD2WP7CT#Qvtz_|yVuSYu0VJP@&(~Mf(M#O z{F;_-WqWL5&aJzMNF+O=wNt(}D%DOAgZ zSTj>f)-Om)4U!|^_fl$)4P8!HDYMfK3hWFaq~Qb%T?qjO5q*}5uq_&Z5aQT;O`xP} zTBdqcTcoiI_@$n=(&ZpwjkcUG6F0foCF%p|&`G#aVBLh@$?P)WRhb1SKrn0&&{eJG zK;lpda4F#owu~y;h4lto0ScU+A&_Wag&$(Kv{T=yv2bb`sjwKrRF$m(y5f{dgKYpM z?=UiiN=F|gQAHYWlGsL2Qk_I%1p+Sxzw{b2SEs#}#OG}X6X9M{sZqDIN@>-wl`@oD z-by>^da-tg!aSfL<@QoRj*!IJKB62EpASk-*2~opYq5<5DWDo>Gan=>o#vtl6k#cq zIHKt!m0+Axgjn`O%qQ5+!)pXqM`fefS!!Ht2I#DrsAQ6E9aIHf)df@rjBe?yyh_Q_ zu&8}h(~r;2RbZdZ!U#Kb7DX7NvRJ|sF1DT!3z|d-yCfBO_hLK8DA7BOYOzw!5@M92 zR=FCdt&ke6UcJcSw=>2Caj8)&M=C`kOo~m^d%ems2}1?84Ja;CNHen?put|dROSH% z;Zmfu>pc*Cn1DT0HvoQMxzwXt%o1uORzP%>-YFfI*nZHYunK{4JHBIBYOJMcEy8c^ zwa?l9JzB9NgbzSqR;w-GjwaYZ>?n0yVzFb?k<6@S)Bgx`F@BoyVyE0_RjAcs9ClKV z7$(;0xNZgNT=8O~g%g|wc7KME1P0y(VKkk@4>6NJSz^WJQ8QOKq!&U=RtgiQ6hiFm zRlNFUt6E^#1Gj2aouWG}7g;r3K8F^ojwpw*y`ZE$5JUc$gL-PX!(c^F?J5are@IS| zga|u_DzP2r&wvYOh2x3i2i&&;Js9M|Vi^z$i!?llPaHML;Hm*K zZ8qWn1(eehEdfGLE`wlYVN?blizdW6tO2?lkrf9DmUfioUuUG5tVF`(HCkjUWC=GH zJ`qjKWUybQd{(KIuS;<}$B0z&WNfx1)L9imy0iZ0?UP2U)uR<~V&6Q2ZA7h*3hSB> z`*sVVS7+M^A&m#p%a2e+WKaDMSi;Av{hg1)TL#%e@M_ zO1+6mz#!MD47Tt>9f-9KAcPGQMA(RvK7r6m;Jz>_@yFTmD402eMbJ;|jnzPD}LQjT!Y_8+iWJgUV7&ZBOi9vCPHBRmNs!cJCG9fz%5^a|N(xJ>$cq3!`6 zN6JTpVxvL`79(JlZk7WfZ`#d`!Ui!}Y*tr7)@F-=R)7*=Z^Bj%S2Cc#W6gFwQH#>& zbtpAbChQcJj0TWQQP%}uj(p$f) zO6rP-ts;cRswP}1vplFs=tKBUXHX(l2pM1(NP=4Y(wbG8^rHZYxDw37W-%B$^NYA)PW{KR5p38}Dxh|Ul~WDFKhJPy~d43BdkX@OL&#nCrM z&Fk6~n{-ZrT4`iTo8_(gB`ZVU2qS(iobiQbnB~=HZ?stph7-zV)l=M;W~>Y0-@=!&y%U-tinFqg z12f4KNP)(M%Tp@OApfI)W7JX_1=^q-=o7S+puk%Wqn@PFBn`Ww3KaS{7DkIrqdJei zi&P}KpP^198`?!y1DawWbySvyfDwdiBWPERaY<&)L@j`5Z=q(Wx=2`{vSiF6WX3|B zwV_1zYSD15y0k@{U7{||LwCdLl|hS{`s>GWChHSqf0DvJ+tlrqC8n!*5p* z9-eKY7U?G2LO1|x73h;#Cfi13S6pm6&{eJ?+E9a~_f5=Bs;iY*EeQb_V#I|-mPd`( zo6JAGH0$An?D3fZ0O)Gn7mL#$;=;6fNR^$1sYs9)Y0T8^oPvxtwf}<#|o2 z7Q+>f5dae)OzgIt0O1m9e^iCwFQvT<31YKwTvHBHBl#tHm5Ch{f;K|AiuXHlUpJ%4 zVN?c5umY&0Lr!G~v1%b?D2qS|oY{#Ho}kvs@A!}A()}bEK zOz8V4lsU9Ni=paxovk4}BeQjc&>-_LT82*U2S!Uoq3e>>s}G1@)!PiRr9t16?J&d;SG`roDiZ^^R!F$(ETWQC47!adCor)S6k^BD zCfGxz@%lv<+e?&(BN)<%b^pFT&${J{@27!wnh;`zMAaz}19&l(*||C?PI7=LuI*7b zC=}GEs68t}OCbWr6i`8Q5COxJMv5|z9Yq05WM|hMz#w<}eA6P8B8fhyce>ZU>79}? z^6HKgTt)*zR9D>k{Rd$~S$oVqR-|i@Mac!aOJ{op!v@2+E{cRRFI}O|W{rf1Q^k?N zcg1Ai&~JZs{?;$tNRwox=g%p99WSU9lKLt)$BwG2jWHjB#9+j;oT%xg9pp~u1sC_0xPk{3P zCD39uX0yrGqVkR^dm;H8Fh>!TgfU76=K*2%5^baHvq#Unu>IoD6#9y6CUza$SV}gE z&29@ua}r$%o9a3yQ|woQU9i$OQW>UxGoe4r0YGy9z*WvgnfSKD&3V)cEO3ypNM(hD zkTi#GeKL>GsHCGIK1yjAe^v&-@}~;y*sYIOMV*~RKSQJ8CToGPp<>NIrm2K>!)py?^k0}%|ObR0ZX$0co{DyZ5E zglO6dbOMe8Mjm`Bu!#1(<>J+sXbC3b6>VtaYH{=ogrOM0y(*MLJ4)p`n3;%;;$FIG zz(n{2gt&Gt-76I273%CfW*^mDu~|Q1iOvQHVXH0T81%4_>e}XF0iaG&LS9nmGTNH#!9l1tqbC2WC%(u$`Q=`Szhf5{dL#YSxNH=f)mG$N7HP<}#Azi`5(4Gb$g#9&zWhq2l&w$sKC99ImD1&8Q@)dz zBcrkdIhAsw(x@|m(VK4;B2an=hQL_}tpusv>_r?i5b2Z< zq*D-Din0=|d3&rvs|fiN%BHkh-N>hqEp0DGQe~}uU7~c#86;Fvh4W52<@;1hza7Bg zga*R5OGYYXGoRt%Imo22aAMP-^)MM+AfT&G@fl}SilZ=!lAv}=$(GSn6&U_$XC0B#Dx$)9be`g%Al zK%{>v(AF1bDH0*qv#=AN@E9kc9*DW;Hn>g+amp^W4mlxGGnAgnz+)_zLa{g$#Bdzf z0GReQ=2>%tPU$X6c9HE_>15C<;W)JDs}S;!LcksVc^1EA1vvvZUm?t7+v(=v&8(t_ zqiFgLH5&#f^Pn6ue~DEC!-(2I0qq6ag|2FIg_L77xJdI@pyc3M7B zPR6tV6ap0K5K<6mhww|-EwLk1@7R8&R8nTME)whzqHH1l@R6CvxnDUSTfrw(@}VdA z(35=VDL%A{4^=hYxW~NrzD3kZxa&0ctLDSc@S!!-pcXFyy@xL*XP9;Lx(Wziv#|i7Lmu&Uy#E^a>*vF-^RWYb=nd-i cGX5;rSNFSxxA`r)ZFnbt$@lw3nh^H?0BwLZ%>V!Z literal 28668 zcmYg&30#Zu|M>Roe742MecyBQxbL&AQ>V6ahE*%0TGpZvx^L-_N_P^HQc{$1cbAkz zC{aR^PNMwZPrl#p@9*`}o^7AweP5sVXH<%iN?-(ypc4#=n@rB6cv;Dm2OZ2<6mNT( zjh(gBkxlV5S2)<1;S?7R#e;l8!_SW$e=hNmcx|-SuG&XbDV1x;+onPcBZd=*7(sED zE38IRyv!U9AC@UcQM~M|9js)wqbVMTBu6Fq7>YZ*jHP%EeM+TJDHO^X`2W9uXa4(i zgFa4uJTZYl6Dgk3qf%QXK8fN%zM^@Xr(V8qnDBD=p)%E;#aDDD3#W*u64Qw3#0+94 z#obn_oJH|G>?Bvn_!M7>1v$q-A)QU}P)Z$@_#BGALSk!gEm2C$tfg})K5`p7xh=Ww z1bXIA{*0;DB7&FbJQ-a-Z=TwG!2b1E|^K+7!S4 zd%KO|DN)FjPUzIGmt8+>if<={gv@`zzkWtXq|4V6=?e`ALjrB5cmrTI5?c%02#^|j z5&1O0=)Dxmg;ZlhLL6>GYJ$`3sDNCW0NrP6F+sc$mrU?eX0dH;G~o z#Y1i_SD<-K!z!HKdkrsrwfADmm8Y-v>Y5S=-$(J5n-9?wRV=C|1oo$=B-M#k4j8+R z->-2%EYUI}%n4*c@i-{8w!@_qcX+Xc742l^RunIZxl*ohLe%|JHjdUjw!tB+y z9ghzZGU5<%n6M^nK(>{(6i)|RnT$Zyq-^UoUJ-cJ5F_Rj))QIx%*l5il7632)Ujuao6tx{@jEj#2y@vxTI zS{2FOT&%waImT4IH& zSG_rCr@u1NQH>SMFYf(zfvO%()rz1JkyPR$m58De(Ntn)3~Xm(v42%80A}U@`%2?r zzQj%z4_|c=FCGC+5HXl{SAI`%_3FRdk6;BvA=;8IUovmYW~O zlVP^Z$`VPz*fDcb4q)_Cbzy*O_ti-qgNYF~4x z#2qRz<1UrrFLjjI$ZUs%I~T}cuT;ovtx$;A&u6Un@XeJJuU_5D{!w{U)q7MTA7C$l zIbgFSw&qe&bMgCt%m2MaK1+g|x8LboWjFclxQKhN;vZ1eA5z5zk4W6i9s{EsrREO6 zC{)tC#|{;kj<0iBb|?Go?5R(v#8WC!NF~<$QH!V)pCOZK=3uWtg(mO*+D^*J`{uCp z`r&BVjbf^}gvu|a>XuOjrsd?qwiP7d?Ui^o6`3DgoN0N%Y!`Rt`TghXx2IN84WCg( zRaD)z&tVWKQZ*G!k3uG~mK`6$x&~+{x0abZq0ycTnVa0}CjM%b%zgbX(c%SFy_QP6 zq!R1u03cGM6t*C$uShJ+tsO|Kmv-#ciOFk-)eD=n4dk+~8(&ie^;G^Fs_-pU{EjMU zpz1eL)u(1raU7qEZ$bWHjvr3{xtm;<<@tD`_rWResp?HsBjpD`LTdF9{yN&B=gEzi z6MiUP6s}eYa+sqU)JzqGQn#RMG4syk>?D#C(kp9H3mA4SRN*Ho(MlyglS2IkkT^&R z>Q?~HTn?ZDYubRH{~nRv$ud)eZ?6Xrl$9mD*R3*I)J4=sFbrX2WHz3 zQN$ka1SbD~A9MlwB*U$(NkiY0t+7F|{rS-=w!7zikl*a48uU>4y;N}uwGSvPmDu1v z0UA5f{h%~%e_@ZdrE74H?Tj4fhn2smf_^IhH`VYDl^CEB(+2@uJNXc4@xSo=@6jGe z)l$4Csq+3i>*Sy6HX##F6r91tE|^gYRRlctz0!Mr=e<7XRjN-9{&1PZbj1X2n7|z) zJTL-zViXV3ZsJ}Ttmj~B0rKpPQQYK?s6XVDb>f?*HFqwbvl__w7~zAd`eJ-POx+(7 zMoA56<#)N&9wo0c&hkaUdo4ss(7cg-+MnqslBnGzeB1ZB3pGgd$g3Lw% zboSDHXs|(C!rtrNKO=Bb7?!x67mcaLVEkB2Jr2`~$A|=sm^KkC5(ys~zipV+lu2g2 zBQ3Y+t8-o@Bx0gV7(WRUUB+~slQ9ritAk2gK>Z5f0y=$Iii^>!w&iyd7StSnGb^8d zpj7nrDyDl4(@4R#hhx`a3fN(prA(?wC8?#j0pydBX4TprJ)3#XEwz#69&XT;PH`WZ zo`&r(O$XE^3UUi{#_NPE?smjBH7Dcd{r&!)H!)ELMq~oKw_uQ^Tww#IGz-Y9bOJY` zCs6b_@J$0SU7;H~^5-Ns*7DM(^HocKlmXI|lloc?Z{!MViwcq+ z_IM>QPA*q~JV}&N($wgs|4~=nDtj=zF15|)85Z&k)2PDu&oQ-XOtl6hUSNb;0Tm2n zEubZ{x3iWw;V)rH(jB6kO({|K0Sdbv9rmoJ$3J(}VfwGI?XNL$Jx0922;waags4pd z`&`G~k!YD8wk0S2bSp8wqy5dx^2|-ihK(E7Heh=CjR2s;4qe`5EloQ$ows&W_T&LQ zwcqbC!|&84ARo9=J0;3;?$4a_4cj@O^Wu?R$fm0wF#V4h(Tou-7_s3KMmcLC1uDv& z?3Ho|PBrmXz!!G32Zl&3kabVmsYVBl^%*m|%+ZMz4WBXHFBtzTCTPP1-!P&bBc^{R z837@cnM8qiU|?+R?RVopNZ9Sc9sx_L4zFvyH`?{+tkz{uW;T> z5zm5XYOk(y^+Ym()MblJcXlk)EaRwF#qacHc2NFpkx*75%2{ef7 zED`}EpuQBT)eL)MJbvYtqK*$2UY-f;<}kCI;?{=xe>e>2Bs4 ze!q30tHs6i9!)==W>`QY?$aR1c>p3{E(dpNuEZb0ZvRp=h0OdBd;w6~O6~2@1o6zJ zw*;j%#j{PexN0YsKc=ZZq46(JN%Mcamw$R#fbW!!sEL6CZ$G6xr5W6y6#_5K4#Aoz zF|oF1$J+-PjGt5o@gE;M1oJzwEAoiX+?t)v&Pv<%1NW7I6KCHW?i3Tv2r_b%pt=$3G=4 zG1mfbzoco_(TG>a zuRCe}ApPpK6Mer;zI*Rbz3L3KxB{Svqc zL6rhMuA_AxpVJ#W+%m7<>hS{GI=b)`UGFs=%n@EsGQ$R}!F3ucE&RN5yLdv(u#Gv# z%eu}A-q7{mlJfWth%UEnfWHu*w@eN>HljXvn*Z~)NAa;I*EZ4x@9DaISQ9zOY745? z%WUXkF&Ox4;ih;GY|#h0@FShyOc%G%)!pfzU^`1o@Eh4w+@FRV|6Gq1R1KSXV|H`2 z?ryiJR=W5zo&SZdZ~7IeAcxqujeND0qFbi4w1|sAU@a%2a={29<@v| zdWgo3)XDd*(wWpTKo<x+s&#{`r58KJ-Q~u646M&E^jsKft_;2# zL*1RBmO=GkKx9OU)Fj-4;mLr-Nx_AgeaqfQsXagcSvPA##7O0bqh1U{Z-%}PLu0Kk zgW@5RT3h%HO@)-DhKjVR z#fbJDk={DX(5<0WP|^Aqh~nCvdcY(4B`0e1*nNQv!8ry$h#?GSY?~Uw0J6z!uah=C zf3W&h)#nvmK}%;|A7PcaCzPRno&gmdJPhC+s^x85k&8}QDLYbU#4!wS(Bc^s9|hDchl+IJk&8K|zZrXU=Z48V>Q%QS zF!UF%KuCAhv(p>U?7j)QzxPx(zfWWcP4}RS*VbO;&s?%C#rUmj=!!=kml*m<4B|3_ zNM;aM7?3Dm1!N#ZB}<6cU=y-tO~yr#GDp(UERH79l0I@euH~J-=T7mX6o&S7hA@?3 zaD%a}lb*()xGqnJGXt|j_)P|wA1FK8K|D%2a=d<3|G>7>4il$w&2k@Qt7R~RnGE4A z2Gj-dEFcJ!{q`VFlY#u4S?s;Xr>?o^GBP#mHbb1v*kPK(pm<5ae@GQTrpmCLEp1Z* zy!ZVQy_1jHS8#`+dJnq`vY=4NkD)TvtEtIx`^R3I^}2f4m7ZI<42?X7S~#{U6+>^v z?w;;!Hpe7wnQ-zd?zgG;7)D|AKq`vaI_G%WY2Wp+xi|K76^m&9U$R#BU0Ki-T^rX}CMAhGi zHQtR9`%&7Lraxf_pE7g{8Nwn4e~=F0N--&05{nWbxWwAp464jXJ|eHuciG+tJI7VC z*PEu+lrnadF@)s|qJlwGGKlrh7+^^OQH7lXEWvTS3PAiHji1AMa883_X-l8fzJBvT zc)#m}GOT7{HABsvoLxDoZavD=r9GPfUE9Y7?tB4c`m)Zzz*4#d^>X-lRq?OihWV$P`1xeW|aBSZL}A#P$AeqazE z8Q^T1VN-AqGF!X__((p)(ZKtl3fZ`^v(pu2Tz+Fh^rbmJKQXjg8RE|j!50Scl|i&I zi0R)*AkCC9=X z8gAZf%YCC|+PpZ~rIfL-MOl5I4tXX4L3c7e%vapXgFQ$y9>Rpuz5G}x9P<791ogFc=bp2lcE#X~n(No%hA-!tf-olk z0#p1E3kMiwN=OT#rkXW7f$gxzNL>{jRgQRcIf5ySWD*yd1d0NfAle%WckpO)wAMYnJ#g~}sNlfB0Y^#N9zha<}uYn^oExWAi z+>&xd^w9idCfMjJK(l}KcG42%Rc?HKXZD|iwib6*aqfKQUuEiEV~SFk#C4K3sXz~V zI~jh1yL<;J~54HaEX=Q%_J89WK zrT?ZP`E)!7CMx8R8$+g0(0(osd$-}s+JM3rG_~^ccbG!c?=%!ei@4+b5^o%v(6Od< zuK&fmOi?aVeQh2rL>9@(C^dtLgf0i-!zoKDDBHfJ@}t`e?=eOBOnw1VFOPPgBs(ZN z4#UD{>7FmI-5n9fa6V)8@jP;-rY8ebChY25zGwj|j_ zIql4IrZASa2Q6}(yZ(bVE7dva^ta&+JG`rz!WyRd1yer*tA+g`M6`&5VL!H8Ke-j3 zpuT?!{|MWX_2eZ}R7diuiv9{lDM?E`e6!z#jWL<~b$87x!&86hchHfmQtGnewQ>$s z*I>cgDrx>}rcOOmHynEdF#jv*UZkOgC&Et%Vj`ux=^riQCqImP%T#^GG%{@fDVJIS z*BXKM=H{S^a9A^=7(2h;viSrwEM)=Xl1H?W{THlQ}58MP^QP3=2PDB zgzCGIns?__1UJ)BV%5lx`*U|su4Z4pQTxEa;|tR$fbkW!fKnZLFmCg+bt3o5MPA;M zD^4HkXk!Y$F?FW4lU#H%gWA?yw1@FvaEV1|Y4!s<*)Q2`#&@Q;gDL(24ZD(N>d6v$vG}nJ+#5!iOMp0~tDWTY0xyqq9(`!y zexq@Zd{}zEEYVwrAGxC9s0^gw0Rx$g^e8L6w_$`0O`}UXhZgM55}Ah6kgN;)YG6Z| zYV&mPZT7Nq6pSQK|h8*2sf+%Zn*662)zaouyFNqgG(AeND7FnlSIS)j_-&aEY3&p#fm z^0@QYGBGHGB@Sijo@WtZECO8sRIKH4B_0l=;WdIpo|L=l%FSygP_2`-zOI{ixTrE zt}+qG0jJXr;H}W>+54)!4x^rnnpv;s8T$^q#L`Y;5tmuS^kfzsz6|+OI6c1tQ~vXe z)KAnptTs&0^ex<-GVzpgR}2l!xs(&}p<~9N(73T+QaLv4DofCXU4sS4rivl>x5q!0 zshf9S{94E$o^f8Aq_9lfvFpHcNY_9yZ_l35i+?Ee{FA)!MV#K#?o^ie28*8toJogO zNFQvkl$n!3{erAtI*$^noW5tQtN(WNMZis#UIt4elf|!L;K_8zN-T0GF4Xzm*u4DU z=i~J&4*K6>8D+8fw^{1hEMW{QXNbV|kQLn_H#?z56Vpk_J_MwDixq z4gkcld+xmcI*h$Y}qI-9K>Awl7S-yRHrG`Ne_2xsC<|CF~9qlm-(ps}8 z01^}j?a`AXhAD^rr`Wuk8&E%I@vMtaS=xmx;{w_}`gtl+I}xc7^-Si(uV2OVw9@80Tdx+{N5`=>(6%Sr3d^sx(8ZWle-(DrKBs@~KeE~PAu zGL~97%kV8@Yy}IVUVC$eY{=VIg0w(s8ntJQiVl6%Fos$AxUKHbsyEMAL=}rT^c*Mv zDK9VzA_hs-sSBG>{eIu>=&c66t~;t(L=7qW392tX2PO7U(7M)k&t`SD-Rb-m zM;{HNICP1Lz7(zgsFjuM9LwmVII_4G>RIA9EaEN5=sOn09|D4*E+aDgo`Y6R>)&gf zdhA$6al|g8x$h=F$IwA}{fvi;`VYMy?UuMVZQ+3imY$>$L;FV6&n=iL{q-#4^O(I; z%2qeB)QcGJfiSj5WsnODS+?n?F4waY2e<(<-`TtvRP$9w(lZ!AKs z9fm3TN#g2~!z{&fb52jbgZG-=Qpt+bw+V^}j698MdJdn}3IayFyzV z9QZld#naJi$DN~uyB79j+HU{zD_Ls-*aGLXFj*m${xeao zceifK|C6xR*JsoIBL$k7fo!95Y*7%KAIw${VT(f9!c6LUHUyH8IYX)t#-@1KNsif0 z!o%2iSm@xmX4LBTyv{9;@!eKVIDP{94@y~K=gqe98QI57}ej7D&McFb20Hw z1Y79B@L(ay_N=|s1+=!%Z(T_rU;Z47WD^(J#Gxoy9?$}n+y8pm>Xi%fT$|mzoH9%z zv!dC87&bqaEsSG}rpCh#;4DcaN|u(^9y9z>YCfj6b;bJwz1W4Q<5or;FSUIIXUI zzG{oWGcJ>Da*M5(#U^gE36u>SCeNRT0^uBzSpS}{u#w4q{bWO%Bj0DtJ{A>M-QIqO zt@Dz0myYi4jWxUy!8YX?WwkGnT$yZHH;M{P)VENTHW=sdK3$%YEMC8EY&J^x;LQ)NM~!9l%I;j`-4;#X|qHJg}T4+}%P z9wfx!O!V?ZiK6oSw>ZX@RShfrw}!uAi{7%um#CGjL>hXQ)}7J6BVF@-RATm*dDa`> zv5kJv8c3-&mqDkP&(`p(rH$>g3M=nS3Ox8W={gp$>;tveo)Fss)+vnOtPFMj0eTJ3w}?y8S$ z^=7t~a|~LYhw$)vH4$UP`rX1ZAJ3E#GTj*BgJ{o0(RVn)Lsb7`yI!Z zS%;TjHDa{tugwT*XX|_it!l+UP?wyWb=NV(wdu!-8i!eb4Ni5iML*c;oouZxw(ev4 zEjqN=fZglYGVqJo+*31f&^FMhadLV$TQo=#(5hu@e95mhrq0nLEGEuP91+V#JMRb= zrt9>co_HhYouRdAUk_Wam#uz|8A1zXqQXt$&6}+A63?9d8BM*Yv#O7+`;#sF#WqwK z+Ygkmme||>22w)(4RnLQXXjJa^1&6S4Cfb&I&~)P4_iFI=GU?DK^Q87QVH6)IOvq} z=#;$d4YT!+uUo43mn}Gh6D~Le1IKY!98^syL1o`I*7_widwCvw5?tY!_}L8?y5ssD zIN^yybctaC1*^-HS;~?Nek3Kl$5i&9_Q6G^Q|0}YUQc%3}r246}rM|ex4;Ob~ z{x~!c%YX!J4H@(7D@N7!F0S0pSbgwI01n0HI4ZK%D%2^vo;W}7NsD*kw4`-k=%~Ogjg_KqZ+p62U7b z)$d(N%b!*8vWUoLpUI=6!P@A?HD{fxXt}?0x~@k@2H{|=f^mq*{+T8++*b|GpWyZP zV8lb#P0rbu^X`V=hM~Bijn>IJ4@fKIM+%2KH`WX%rue6LBPOW-3t12L~HXJSF7f`*<^x-;BX{T$F$t zCF1-b79Pw3PtSdSWy`6);umLUucAAwlVl!)fF#XB4G9DQ%xkT$l)-BQ1T3$Eg7I|f+SfUR&U4z%$<%j!Gk zc7m~HrTf{CZDX2KaKUw)-$2^kRU5`9y|>Am-P==VaVGI~M=GwLO>f1JwfM!7$5T8d zS$Xez_kT>*yMYTnv$vp_@=H@s(H*~j+2PNKTPHzmE$Z;QWWU;1Nzd#);{WB0d4_lFJVRy%OHrbx)YN^Q(JZe#6wT zc>YsdREQfE;Y2Y`pb{KTu@!PM@Q3Wc9xufyzW;k$K|=vAsFS<*MM>;`8xcNc$A*{T zqH(HMrIb96Aze0Y|8`y(C|t;pbh!#Q;&u`Pj8F zPOGL1TOZWn>b0y_q|pD%OCGq!bf$jq?1({9gOKXQV_)OqdR%1c56LtNvd>w6DlpFP zPe=6MOyRQ3H@L}L9J(~iAb&-bJ8c?^bf$lwHD-s|$_E1;?{LEg+`zOEmbSFC2H)q# zLb@Vs=g#oy7A8W*ne5(8MOjRAtS0WE;iw9aZwvie8Ztq3(afo z*w-)wZUapkV@qpTi>y?s0UY2@vY4qWg9 z*KqCxjN#A)c7vSYoyx6o#H3dfe;hm`a%tPNr3)8l(14UngCCsN(R{LtJ79Pvt>HBG zn~F+X`pgdXKTA#MbQ;d=;4r&!J?F=ci$K zItI4;(E{7Y#FBw2;e^b2o^Bl((Uklmed*Ph4AJ_ej z>;1tE2XJB#Cx-t80{tu51IYN;P$oEf56dSZ+a4J^KiQR}yp{8(_Y7yd3r8;;>t$WX zP(WXJ$?;+R0WrTy^XD-ZU2^4!+&ECgaEJRka!0AP2fQAH%OR-c4qN){$QP@KBI0e< zHr6Rmju3#^a8cM|HRQ%-&dUj-eOZheK+XC1eSZ#G+4>dv^nr z?c5LD?RWFXshaz84E#94*Yu$r=}PkS(b_39l7+2!qISX^4S&v#0M53v93qfItUJdU zYJ4YKmp2D-Aa^5+r09L|)w-BUJq24wckP=}$LYZwjW1Xj72W&VEWb!}~4m>>NvM{Jz*SmLn)<#c@E5p#*5s-#vC(!};gN z8M6xJ)s~vaa|8(-ejwSX_HOCA1>>{P+)>4H6i}#dmB`V$#L-UTY|mp{$1ZayuC~bl z2gtPqnv$T&qjpr;hxKzNd|n~dJTRl|?aCzX_f!%|x`_4&RZCr&mMg!$xG zRX3lUc7r2G;|O+iV7rlSWMNfHK$~DxPfK6V-5)2?IjSxA7aT2Fxyr$I%7@ z6_>fw1;2OkRhQWBzuTY9QEjH?fMAi@Y(7NVO3x?phY9tDlV+x&0_p;TI~;x`H3>%y zol^%6Q3xUbMz)z-mxtC}jz%mk7cd@bct&?8JgKjm(C2%zZ?N*srXyW>9KCWDc)<~! zX>T?LuiWgu;#2El|7W51ID%sO7Bu16E%P<5XR;_?zWz8VIc8bTLihDfo+WJ5Z#+rd zxq~-%Zd5);qmBs@s1rY2Cpq(`rgcsGYv#-+G0iMw5Pq$(`O7$;U8-wRYbG8uFW`vo zbA%5#{B|mI^Ml?~Rwh-qcZ+xz!W}ynSk>%($Pqo_2p@BV22X$-&_N-$mKurB1dCb0 zaiQDo7u$ZjY`Sh^z*CN4A%|Z?!+}(Ds{^q-7o#6dshDn&>&u;f7)sl}w*368Q6+1O zN>0w0run0YBYH(ICh7aHf8NmK{V6=aI?8NE;)oe^fm;d3&>1ZIfo{EXBWMTG8_G&F z-#;6xUCJ>iw`*UN+D8@nefgm$Y7S^j>rH>p5!Wj5nZI^0yo)V=CVPI?!>Bn%2`^ny-1XVczJq zGgR+=ENI{u*0CE&1y(2#<;I?l*6yR>dwod4?-;;i{#;^#OjD$CcNZ?1 zUb&X(-HZJgwmw(Yl`D*3)Y8y|bceE!^uKEKy*=YAa`Egu7D|<$bi46gGfq@r_^ZA- zeViLt&z-C7!G%LDILC6u(cb}u#cT6Bk`)C8jpYjujrZi5cyW!qxlsJ_;evmLE}UdG z)PA07Ki%Wg^JtBYWn!uQ?78W_T)0PcmxjI{p2%Bm^)330%88M4wnwb-;|d4q{#=R| zS@eT)2P><2Cy}En`10kZ`{svfaRFSxSuX!73mj0(nDuBWMiT;d#; zIK)sO|9R$SUl*h?*6YR;g+4uz9mG}jr3Z5X7OI4*(W0aM7_6f!d?o8bwt z^nc%=BPAOoZ@j0qB)r`H%ssXL>;pQQ`Tg*xfl-zl)@WKiT`M+XByx4{vp(R6o&Rc1 z>@I`KPoZsk zYx%}6M&*uMahWSj=4xMKU*S^x|1*kojYcTPy<}w4*N@**I#+m;tJ=Z5Lj#$cH_s#bO{4N} z*46rE$}{f?8C*ltA~tHx@yV^eq3Wt>KJQCf=9cD6u36d(YzQ+#`;R{neMsa z>lRO97w2;I^SB!KxWdIg+*AzC81iSWaj2P?5HV+t#lm}kkLM+E&{Vb8*Oz4IykF_< zQSrdTY)d{@_yya8PS$Zs_l{gv)SNL*uCb;vynrhVr9-Qx{@%U`=WSzFjF`0Edv3$2 z?f1Fj2VAk~LoRqosT8E^Py3Oj>v7-OSa-Hj99{qXBd+){SNw!aJmnJW3W4}Ql%ZP) z+0;}HIz26Lro$p($GO$EyQyv!)kR$4LuxSy9&~nDlUK;msvEBDzIkaI@Ll_SbB?39 z60SihSL8uCzjSI^K$-iG5`ny+p_Pdg((LB`i#5jMks)l2gq{a;0Rwv7?s3H8NWKN&X_p2e*hqm-9o;>4fRB_>Q&RObn80cU-6jdyT zYud9!lm7TehS%l=XtQH=s=4YlT=ln%NzjYY|KPN!Mc8fWe+GrB&L{Q^(vh2X=s=M3 z)E2*{yxlHK_vXFe8ujC~Aj;6_KwcahYWp2oiv?~svF0Q&9J8XgoH+23t6IkuwZKJy zS6qs#JvuNV-O+edqtCBbNou0UOZLC!ib`npKxw7i4%L-?ec4(!^;A&AKK-Vdh*9??(#zSqQ!=p)Mdd+p_^lP&Rxx&9( z@fn`B3s2a|bmc*tD^S6PY~FatM6I{wD%hm;^BUJSp}TI&E|k!bVS~vInqO;u>veth zMaElgH=e+q$M<7{r<(t|j%j`FWsCDKLAv9brI8*y!jnfF^5Q}Eco4cSz)(Dmr0ZFn zZ5QPWPO85@s6IZ3fg0>LH|uZt{J3+$hsK4)D-FGQgb$DKy~#Oc^k?To2F6Gx})21ojI=a-=0{|apq>*=<_^b z7>|E}rykDJ`OA#pL2;hEEbGBSr*WSP4@Gj9o?wd|)^?LZB6+$Oc_vXjQ8Z8Mzy5Vk zdE+G0Fj=hkil;8}@W@dyJm}qs638qqP*2^dqo%RxKv!} zk{Ex!vFop7YHnv%8ILF@mn!5c(16Y2^RLxL{7v2U^?-BE>ii0xsFKHzq2Z7nYjQ1p)EXY~g50wf1jtGuv4iG}`}z8sF_GJJ!*x@R`fcnjc*)cB zrFk;ZoWbG-GYVIF+fQE6dzSsOjwdQ&h>`O?pFxjz)$^_zpISTp+VH|xJmc3qqMk>* z;lb}~yama#AG#b0`5AP>C-RWU{&-S-p16Uh*Mf(Vby)ePEuP6I zB77GW%9%B0=!PT7l?_pXd1; zl-nm3yy&>%v48QO3!$umwTlG#1j-S#37w)b|}8BQ4pcG6Uycp2&|=%t7Lpwg)C& z4oseV#3k_J;zsj65Q9=2nRt%7vXMVMwu_lJGBH}q``p-^*A=+v;;VE9I^C+kM-q=r6b0(s(@I&N95c(0Yk-s)q{UsRBaor2^;HOyj zd7lfrc7N&V4+g!b(u8SORrIf^z-2T@s}<&Wl$D{EZckIpE6bm6sOii*|%BZP-~ z-#!y}=0?Tn53}iYU93C&x{CT^<|MQ!Vdje@QTCrD>La$5N@k^c|Z4*WU|uC#HP0CtYmdMrtM5LS#6q5tm(sOR!tw1)I{59rmyss zblRp(y9_r`c?e#)NFZ;SbF@535XMXhTgP;24$7;la{o<)w$lC$zA}<#E?SPHU+=Ay`{rH>T z+ZnlQ?7mMfU3J%~I6!K8w_ z`npy}cP<}jI{t>4Fn0F~pZ@9WQ*$TJ=loKGCmR5j->AfI!^v;>(8x-j(5#l7vSuWk34)M;`mdYd2dimtOg=`Ss$N zTp0(QU)xsn(p_Kq)aBnC`N_#AFD-dBfRz06^9O(P;`6_Jq~Oy(ntkUN3XX`y4PtSk z)Ts_Q3BOtOLgKeNuRi#lq&psNS#e*;rzL#m^#4Az>9b!BAHI0D_REv+-g8tec~3lf z47*l5aYEpuEe||yRoRWWErh3dg$2<}Yeq`^%c+k>#7_aB#t=S9)I>H z$DVw2@8ds8yd&Bq@Wyd7#N*b>#q542EX}-o!Jcn#`Q~rWy`6CSXX7p6OE)weJy)N2 z>BqjyANk__k?22vr}tZtlVU-uSe%3RFaHFM^;=vu{wuip@+V)~{l{lxU;ONgum39h z*f-n6g2jkN_hk(~{OZ4SIh+6Fvwrxw&VhFEjcFA|`S%Z%+&k+Z{_SVmLr;HZ@GEn_ zdrBKTDVI9^mm4&~nWj{I)nWA|OSqk8%|OG+Q=6i*MzT@VGl zJB(j`Cw$|xIm3r$WiR=~OSwslJ3~M17Ei~-Ct|MEgL&~{a-NsNzd9RSF!s?0dcI%w z$!+~#$e1(|@Y{wrm;E|v_2ca!S zMBKINd+s6WO;KZAu}`{b#yjq6H`UFxXf9gLqc7s$piT=V(iUx(18Sq*VAD4xl6Tvw z1}&B7qy0v{HRjgaJw}5)s8r}MdTL1bi-6i^cUr5>Gy39TYt%}VBjydY$W1l6WWUj8 zj+%u=yGzS3ewRV7V8mTkg-WlXyvC&0B`S%#m9t;|vlPt!>(|a^Kj3|7?19<%o$PFW zul@%wet(^Wu6VRe#$7Ju0p&gux0}zLF^NhUeHv9TqUAn`D)A08eii0@eQoy7|7Z3C z_zle*?=yaLKJXE(IY=nLFT3q>)fhz0G*gWx8<(i#A&(h!gb@>S0;tTJ8?vdDIrFH4 z0oRN%*4We!bWT`9?rtl`EEhfYggT}Kq;7MsO#`TtGo_eK7nv#&mn0hHet3p!j8hV= zkWu3kwRkBKlsat$)M+&lsdbd36q(W)alQ52u1ec(Qx0=-Wy)jRE>i*56pNrn#mu>C zQ7KR_6MPr_QkAk(r3#rU{&t4&sl_?*5Bkix^)(;H|M>Ckv%^EKHt7IkSf)nCW|`W7 za*a~uP#06F#$t+b6`ruyLzB)kUXbZB<5`WyfO5CmW6?F{OvFDLSx(;;xomFQEw6?EqHqsC?~5&4N7Ouq(MhnmT|ERl=Xlb zvrDB;>x|xH(|T}rNlO+ zsn)6ywNY(XPpaqCR4rW#Xqj5B7SfW{A#J^$r5EdUdcEGPx9Dy98NFBU*K_55bx>cv z(nvLuj0~f|2pjdrQ6s1~%Uwpd(PK;-J~PQoF*D5^v%oCEFL2AuhUh_U2WIc$BcfX9@?T-Yqeu` zpS{`~u_x@snR=q*bCR7DXS?io-f{-ikW-H(>2RXXIcL!&XVl5krX9bw*$uio+#>ge z7IKff-B{Hjci0_s$K9K5h37a-PE+#Y+h zma$Hy2qVU+XM}cZ1j>E(v`Wp)f$*R7I3_k&J1F%HY$Kn!24aemG48BacbnUcpomGY zP&aqMcJF2ESLqz%ph_1RhgF(jWZ4ADXLMZT26KQbG$0iGDxf?!h~I31fJmppG*KGU zE!ZN}kU(ze*C@caL#IrjoTYVGlnY9&vQmvUR_j}sUne38ZDW3o0&M}^m4|{Avm++& zr)n{vRzh-cr$KJif}ME9z@918X1r(i@bz}NL$FbxppYoUoN2XMP!&_2zODhKm6*+X zhLi1LHTH8`?4vNZSc-W##0=n3W_Y@%g*h1HBqJ6o88fE%ohAX7;5766E_HG1COgHX zvrLt+{u<&sn4J-zzS3?{n$PLX+2}6PFak35^ZM0YUVM* zlh^^gC)*8M$IS_7%yu&%1+)&QSq~Z)v{7@~;AyDjs#a+()o|-lIRN3MI;Nv$lTxD4LC|b^ zB0z22C^6HlVxG`?l*MIt!fmjpVc*%Gi8^QWVTi>A>~=cF{rnC!azFNpMj$MCGBu;@ zj7h!fsMDgC$|cx9jdDNCDX!asI(bYQb*K&0-Q`vuB)42o_4EzPQG?CCQc4aRLzKpnDZ4VU6-r(F#ybc&scZ5sKx zH6A4c2+OzGrEKOvp0+WE6;cp{wkU|{>a$90+6K34hGbNSEb!wN^ zpmr+dB5e7!A{D!-5Or=qO_X_+Z@5uw%9%D!2}o$fqFtzziVZ4d#KwHbLz5~Qp{Z&a z^Bk%(W;{P(?uvPc0HOHOw3SfMOlQG|hw*=ucKz*I;gcG3;-7?`!ykmcZH11atA5N_ z>pD&LkTq^nD;V;yc^RezDV9{vds=I8hAd1| zA2?crJ)#u3<$9W+vnVU?!-3yz(FM>@2ZIWYv6qTC>k>Hkuya^!jCe+2rMXr_ojSe4 zN>(z|kU0(cPH~D6;jXsda{A28PRONU^pa{-8U?Cn^eALGq*E?)AwX9dVI0R9p`@-e zwwrVl2*aHQfwjPa=p{2Y30he!ur)ZL0IVem3g!rphb362ynDI37xxL_j>5p#}+*CpD@JikFf##I`<%~<46 zJ`g4d8?=x)T^j9TgjL_oh-oNhgfJau)qrw2$_N9d)hKj|XL0v|W3RMppvQPxMm!(n zrnv!;7x!(m=>SkJvBMTcm>PGXOy2`###|pXH`~>y1C0Q6fjz-jIl(=FO^n#@0ZhTY zp86=2raW^$YH_||9GjUVZ8pv^I~_KVBaQ8{55{>+IwdgVNgkrlq;_CjC3Y~C3h$bt zOcffC^-fUe5jXZXT^xd2-3vAR_nV#j}p_6+HQzK9AOMBg6t3%owwwbh4NOsouz(R09{t zVNRk#xr`2NWx&km0o7vB<8E;gj_0FySLKv}_hK-`MBL%vJ9xx=8F4@WE= zJ`qatqCO-pxVj9+lQGGly+F@4_rQT>-U(!SfO4~rIKG-Wn2j3729=J%Hr&gu5KCMu zBI*Kj$SyO7tWlfQMY7{}l8lXZqH@X1v71D${kC&j^IPw*rrpn@dX}%BEzGDzwLB`^ zs_?C=M7TwRlB7@yOE(fz^<2}gQUefXt<##s<7~8d!`Ezs&C1jxCekxUxfO!t2Pd-f0sBrn9U|rU~vG zSKo9UHf@IKz!eU!3@6Ak**jU!dCNrb*wwAZTFI5h79?fCQDXKM0pDdMXmNW|^n)o; zN=CiL$+$8nCSSxS@_97O)*4{KHH5vjYN5q`Ulg%Mx^}=yfnDyGe6E*D^P`n~Oos~J zjv0VHMDjBmkEo^TyF|B|Wn;r+@QBR_N4c$+V10`@*x^|~ZD|aeAPe~m%Hal;2K>X# zpww*Pb4FbRpmkVIxmLvz>kCXOV60cEh!J*R03#^u z&WtbJ$m7)5 z*Z?g|d3p0`%!?Z_+4v#23RO>g}~C z=sV+aU%k#*xOhZ)8RjJ(`5`A{de-g?j|cr5oB6#jf(snB>z(B(@H@K@ntJ%Rrcbn{iUyyT<(<`yr`{oP;<)e{j?RN5QRO(d3m|@T^pmV^?)O`-C zn1!iErnD$#kJwaq8twbxdx_lg#e=E z>p(AEx6+OnQ~|j#;;u)ZnPKGHNCEiJLcZy;_Yae(6p3E_BK}7U?w^nBA|tMp#t3t_ zmJv_nXIv{NzU9${lZ)E4X>v zxH-qaa07x&Pa#Ht16KgLR-UzVS)NoObs+iB=w->z%a^@O`6dNlk@IrpoFVU3C)68i z06Fpf+9BxHylLOf;--%5#3TC443 zd!wCe=fm}hC&wdr_*$*WZnGzmhl)x)NRbcOqxM)lNzNx2De%VX)C=<4&K{@C3CkfQ z%G(@Hm0xnMI@3;rTB~!8yyRAvyv=P#j{LG)Y>XkF$2oGp*nkZA7Qrd zSQAzv-cQW2x7sE4UYp&}di%KD4%hKK^vwbX>nSeMSPkt<@j8`#@=nf&Bm!hvD=C56LT-(L}Apu z;hiVM&k_OxL0<~Osv4Xn927pSNwnZBfeIme@^$ToMnx=<2XUeTpI{eg_WX;PSB$tA zK}8Cj9P`hKw>4OXdaOH@a!aWEGDaLzl>?1<$c|v0^)Bt@K{z&mvI-+s@vP_piz=DV z>eA;>HFw7rtYJiiSqHQt3gVJ2TAdoxPe{8I9KwdV8s_H>IHsHu>1+aFPs|Hsk~iskh{r6#u@SO5gaAX(7p9}1{EoOzHtN< zInat;I=M`*(5VSrWs%=OgwnzdU^h+z-E~rzeL)Ue6;KwN5Cb$IO7bK7PHm`-J5lXS zdFO$rKp_Q?h!XTvC-XgjtQ(XRb7_(lG1MTf;Qvrh>J@YP#Qc8o(13X8ta#|0cu3O? N)3Wd4O8mv2{{xb^2^;_b diff --git a/src/main/java/io/github/simplex/lib/Messages.java b/src/main/java/io/github/simplex/lib/Messages.java new file mode 100644 index 0000000..35e3825 --- /dev/null +++ b/src/main/java/io/github/simplex/lib/Messages.java @@ -0,0 +1,35 @@ +package io.github.simplex.lib; + +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.format.TextColor; +import net.kyori.adventure.text.format.TextDecoration; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +public enum Messages { + + NOT_FROM_CONSOLE(builder("This command may only be used in game.", null, null)), + NO_PERMISSION(builder("You do not have permission to use this command.", TextColor.color(255, 0, 0), TextDecoration.ITALIC)); + + private final Component message; + + Messages(Component message) { + this.message = message; + } + + public Component get() { + return message; + } + + private static Component builder(@NotNull String message, @Nullable TextColor color, @Nullable TextDecoration decoration) { + if (color == null) { + if (decoration == null) return Component.empty().content(message); + + return Component.empty().content(message).decoration(decoration, TextDecoration.State.TRUE); + } + + if (decoration == null) return Component.empty().content(message).color(color); + + return Component.empty().content(message).color(color).decoration(decoration, TextDecoration.State.TRUE); + } +} diff --git a/src/main/java/io/github/simplex/luck/FeelingLucky.java b/src/main/java/io/github/simplex/luck/FeelingLucky.java index 92e56e3..7fa6f4a 100644 --- a/src/main/java/io/github/simplex/luck/FeelingLucky.java +++ b/src/main/java/io/github/simplex/luck/FeelingLucky.java @@ -13,6 +13,7 @@ import java.util.UUID; public final class FeelingLucky extends JavaPlugin { private static final Map configMap = new HashMap<>(); + public LuckCMD cmd; public PlayerHandler handler; public static Map getConfigMap() { @@ -39,6 +40,10 @@ public final class FeelingLucky extends JavaPlugin { getLogger().info("There are no player configurations to load."); } + Bukkit.getLogger().info("Attempting to load the Luck command..."); + cmd = new LuckCMD(this); + Bukkit.getLogger().info("Successfully loaded the Luck command!"); + Bukkit.getLogger().info("Successfully initialized!"); } diff --git a/src/main/java/io/github/simplex/luck/LuckCMD.java b/src/main/java/io/github/simplex/luck/LuckCMD.java new file mode 100644 index 0000000..3d44d8f --- /dev/null +++ b/src/main/java/io/github/simplex/luck/LuckCMD.java @@ -0,0 +1,158 @@ +package io.github.simplex.luck; + +import io.github.simplex.lib.Messages; +import io.github.simplex.luck.player.Luck; +import io.github.simplex.luck.player.PlayerConfig; +import io.github.simplex.luck.player.PlayerHandler; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.TextComponent; +import net.kyori.adventure.text.format.TextColor; +import org.bukkit.Bukkit; +import org.bukkit.command.*; +import org.bukkit.entity.Player; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.ArrayList; +import java.util.List; + +public class LuckCMD extends Command implements TabCompleter { + public LuckCMD(FeelingLucky plugin) { + super("luck", "FeelingLucky main command.", "/ [player] [amount]", List.of()); + setPermission("luck.default"); + plugin.getServer().getCommandMap().register("luck", "FeelingLucky", this); + } + + @Override + public boolean execute(@NotNull CommandSender sender, @NotNull String commandLabel, @NotNull String[] args) { + if (args.length < 1 || args.length > 3) return false; + + if (args.length == 3) { + if ((sender instanceof ConsoleCommandSender) || sender.hasPermission("luck.admin")) { + Player player = Bukkit.getPlayer(args[1]); + double amount = Double.parseDouble(args[2]); + + if (player == null) { + sender.sendMessage(Component.empty().content("That player cannot be found.")); + return true; + } + + Luck luck = PlayerHandler.getLuckContainer(player); + PlayerConfig config = FeelingLucky.getConfigMap().get(player.getUniqueId()); + + switch (args[0]) { + case "set" -> { + luck.setValue(amount); + PlayerHandler.updatePlayer(player, luck); + config.setLuck(luck.baseValue()); + sender.sendMessage(Component.empty().content("Successfully reset " + args[1] + "'s Luck stat.")); + return true; + } + case "give" -> { + luck.addTo(amount); + PlayerHandler.updatePlayer(player, luck); + config.setLuck(luck.baseValue()); + sender.sendMessage(Component.empty().content("Successfully reset " + args[1] + "'s Luck stat.")); + return true; + } + case "take" -> { + luck.takeFrom(amount); + PlayerHandler.updatePlayer(player, luck); + config.setLuck(luck.baseValue()); + sender.sendMessage(Component.empty().content("Successfully reset " + args[1] + "'s Luck stat.")); + return true; + } + } + } else { + sender.sendMessage(Messages.NO_PERMISSION.get()); + } + } + + if (args.length == 2) { + if ((sender instanceof ConsoleCommandSender) || sender.hasPermission("luck.admin")) { + if (args[0].equalsIgnoreCase("info")) { + Player player = Bukkit.getPlayer(args[1]); + + if (player == null) { + sender.sendMessage("That player cannot be found."); + return true; + } + + Luck luck = PlayerHandler.getLuckContainer(player); + sender.sendMessage(Component.empty().content("Luck stat for " + args[1] + ": " + luck.baseValue())); + return true; + } + + if (args[0].equalsIgnoreCase("reset")) { + Player player = Bukkit.getPlayer(args[1]); + + if (player == null) { + sender.sendMessage(Component.empty().content("That player cannot be found.")); + return true; + } + + Luck luck = PlayerHandler.getLuckContainer(player); + PlayerConfig config = FeelingLucky.getConfigMap().get(player.getUniqueId()); + luck.reset(); + PlayerHandler.updatePlayer(player, luck); + config.setLuck(luck.baseValue()); + sender.sendMessage(Component.empty().content("Successfully reset " + args[1] + "'s Luck stat.")); + return true; + } + } else { + sender.sendMessage(Messages.NO_PERMISSION.get()); + return true; + } + } + + if (args.length == 1) { + if ((sender instanceof Player player) && player.hasPermission("luck.default")) { + if (args[0].equalsIgnoreCase("info")) { + Luck luck = PlayerHandler.getLuckContainer(player); + TextComponent c = Component.text("Your Luck: " + luck.getPercentage()); + player.sendMessage(c.color(TextColor.color(0, 255, 0))); + return true; + } + } else if (sender instanceof ConsoleCommandSender) { + sender.sendMessage(Messages.NOT_FROM_CONSOLE.get()); + return true; + } + } + + return true; + } + + @Override + public @Nullable List onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String alias, @NotNull String[] args) { + List completions = new ArrayList<>() {{ + add("info"); + }}; + List playerNames = new ArrayList<>() {{ + Bukkit.getOnlinePlayers().forEach(p -> add(p.getName())); + }}; + List adminCommands = List.of("set", "reset", "give", "take"); + + if ((sender instanceof ConsoleCommandSender) || sender.hasPermission("luck.admin")) { + completions.addAll(adminCommands); + return completions; + } + + if (args[0].equalsIgnoreCase("info") && sender.hasPermission("luck.admin")) { + return playerNames; + } + + if (completions.contains(args[1]) && sender.hasPermission("luck.admin")) { + switch (args[0]) { + case "info": + case "reset": + return new ArrayList<>(); + case "give": + case "take": + case "set": + return List.of("amount"); + } + } + + return completions; + } +} diff --git a/src/main/java/io/github/simplex/luck/player/Luck.java b/src/main/java/io/github/simplex/luck/player/Luck.java index e181fe1..d4598bb 100644 --- a/src/main/java/io/github/simplex/luck/player/Luck.java +++ b/src/main/java/io/github/simplex/luck/player/Luck.java @@ -89,6 +89,10 @@ public class Luck implements LuckContainer { return (percentage >= rng); } + public void reset() { + setValue(defaultValue()); + } + @Override public double baseValue() { return BASE_VALUE; @@ -98,7 +102,7 @@ public class Luck implements LuckContainer { return player.getAttribute(Attribute.GENERIC_LUCK).getDefaultValue(); } - protected void setValue(double value) { + public void setValue(double value) { player.getAttribute(Attribute.GENERIC_LUCK).setBaseValue(value); Bukkit.getPluginManager().callEvent(event); } diff --git a/src/main/java/io/github/simplex/luck/player/PlayerConfig.java b/src/main/java/io/github/simplex/luck/player/PlayerConfig.java index 035525a..cbdb8be 100644 --- a/src/main/java/io/github/simplex/luck/player/PlayerConfig.java +++ b/src/main/java/io/github/simplex/luck/player/PlayerConfig.java @@ -11,7 +11,7 @@ import java.io.File; import java.io.FileWriter; import java.nio.charset.StandardCharsets; -public class PlayerConfig extends YamlConfiguration { +public class PlayerConfig { private final File configFile; private volatile YamlConfiguration config; @@ -38,7 +38,7 @@ public class PlayerConfig extends YamlConfiguration { }); } configFile = file; - config = loadConfiguration(configFile); + config = YamlConfiguration.loadConfiguration(configFile); String tempUsername = config.getString("username"); @@ -52,7 +52,7 @@ public class PlayerConfig extends YamlConfiguration { protected PlayerConfig(File file) { this.configFile = file; - config = loadConfiguration(configFile); + config = YamlConfiguration.loadConfiguration(configFile); } @Contract("_ -> new") @@ -65,7 +65,13 @@ public class PlayerConfig extends YamlConfiguration { } public void load() { - SneakyWorker.sneakyTry(() -> config = loadConfiguration(configFile)); + + SneakyWorker.sneakyTry(() -> config = YamlConfiguration.loadConfiguration(configFile)); + } + + public void setLuck(double luck) { + config.set("luck", luck); + save(); } public YamlConfiguration getConfig() { diff --git a/src/main/java/io/github/simplex/luck/player/PlayerHandler.java b/src/main/java/io/github/simplex/luck/player/PlayerHandler.java index 4487b40..6e8f7a2 100644 --- a/src/main/java/io/github/simplex/luck/player/PlayerHandler.java +++ b/src/main/java/io/github/simplex/luck/player/PlayerHandler.java @@ -57,7 +57,7 @@ public record PlayerHandler(FeelingLucky plugin) implements Listener { playerLuckMap.put(player, container); } - public void updatePlayer(Player player, Luck luck) { + public static void updatePlayer(Player player, Luck luck) { playerLuckMap.replace(player, luck); } }