From 347a5d0ea8d79c621b51ff7a1ade807f6c855786 Mon Sep 17 00:00:00 2001 From: obvWolf Date: Tue, 27 Feb 2024 01:18:07 -0600 Subject: [PATCH] Most of it is done --- .gradle/8.2-rc-2/fileHashes/fileHashes.lock | Bin 17 -> 17 bytes .../thetrouper/ultradupe/UltraDupe.class | Bin 5420 -> 3567 bytes .../ultradupe/cmds/ChatClickCallback.class | Bin 1909 -> 0 bytes .../data/config/AdvancedConfig$1.class | Bin 1224 -> 0 bytes .../data/config/AdvancedConfig.class | Bin 3397 -> 0 bytes .../ultradupe/data/config/FPConfig.class | Bin 2139 -> 0 bytes .../LanguageFile$AutomatedActions.class | Bin 1033 -> 0 bytes .../data/config/LanguageFile$Cooldown.class | Bin 747 -> 0 bytes .../config/LanguageFile$Permissions.class | Bin 1282 -> 0 bytes .../LanguageFile$PlayerInteraction.class | Bin 1186 -> 0 bytes .../config/LanguageFile$ProfanityFilter.class | Bin 1487 -> 0 bytes .../data/config/LanguageFile$Reports.class | Bin 962 -> 0 bytes .../data/config/LanguageFile$SlurFilter.class | Bin 942 -> 0 bytes .../data/config/LanguageFile$SocialSpy.class | Bin 1065 -> 0 bytes .../data/config/LanguageFile$SpamFilter.class | Bin 1310 -> 0 bytes .../data/config/LanguageFile$URLFilter.class | Bin 952 -> 0 bytes .../config/LanguageFile$UnicodeFilter.class | Bin 995 -> 0 bytes .../ultradupe/data/config/LanguageFile.class | Bin 4408 -> 0 bytes .../config/MainConfig$Chat$AntiSpam.class | Bin 1372 -> 0 bytes .../config/MainConfig$Chat$AntiSwear.class | Bin 1443 -> 0 bytes .../data/config/MainConfig$Chat.class | Bin 1382 -> 0 bytes .../data/config/MainConfig$Plugin.class | Bin 3055 -> 0 bytes .../ultradupe/data/config/MainConfig.class | Bin 1532 -> 0 bytes .../ultradupe/data/config/NBTConfig.class | Bin 2721 -> 0 bytes .../data/config/StrictConfig$1.class | Bin 939 -> 0 bytes .../ultradupe/data/config/StrictConfig.class | Bin 1146 -> 0 bytes .../ultradupe/data/config/SwearsConfig.class | Bin 2384 -> 0 bytes .../ultradupe/events/ChatEvent.class | Bin 730 -> 0 bytes .../ultradupe/server/util/FileUtils.class | Bin 1029 -> 1029 bytes .../ultradupe/server/util/ServerUtils.class | Bin 9678 -> 9495 bytes .../ultradupe/server/util/Text.class | Bin 4820 -> 3486 bytes build/libs/UltraDupe-0.2.5.jar | Bin 420119 -> 406832 bytes build/resources/main/plugin.yml | 103 ++++-------------- .../stash-dir/Sentinel.class.uniqueId2 | Bin 12158 -> 0 bytes .../stash-dir/SentinelCommand.class.uniqueId0 | Bin 9448 -> 0 bytes .../stash-dir/ServerUtils.class.uniqueId1 | Bin 9423 -> 0 bytes .../compileJava/previous-compilation-data.bin | Bin 46499 -> 46757 bytes .../thetrouper/ultradupe/UltraDupe.java | 17 ++- .../ultradupe/cmds/ChatClickCallback.java | 21 ---- .../ultradupe/cmds/DupeBansCommand.java | 66 +++++++++++ .../ultradupe/cmds/DupeCommand.java | 56 ++++++++++ .../ultradupe/cmds/MultiplyCommand.java | 54 +++++++++ .../ultradupe/data/DupeBanStorage.java | 23 ++++ .../ultradupe/data/GUIs/DupeBanGUI.java | 46 ++++++++ .../ultradupe/data/GUIs/GuiItems.java | 20 ++++ .../ultradupe/events/ChatEvent.java | 17 --- .../ultradupe/events/GuiEvents.java | 14 +++ .../server/functions/DupeBanCheck.java | 81 ++++++++++++++ src/main/resources/plugin.yml | 103 ++++-------------- 49 files changed, 415 insertions(+), 206 deletions(-) delete mode 100644 build/classes/java/main/io/github/thetrouper/ultradupe/cmds/ChatClickCallback.class delete mode 100644 build/classes/java/main/io/github/thetrouper/ultradupe/data/config/AdvancedConfig$1.class delete mode 100644 build/classes/java/main/io/github/thetrouper/ultradupe/data/config/AdvancedConfig.class delete mode 100644 build/classes/java/main/io/github/thetrouper/ultradupe/data/config/FPConfig.class delete mode 100644 build/classes/java/main/io/github/thetrouper/ultradupe/data/config/LanguageFile$AutomatedActions.class delete mode 100644 build/classes/java/main/io/github/thetrouper/ultradupe/data/config/LanguageFile$Cooldown.class delete mode 100644 build/classes/java/main/io/github/thetrouper/ultradupe/data/config/LanguageFile$Permissions.class delete mode 100644 build/classes/java/main/io/github/thetrouper/ultradupe/data/config/LanguageFile$PlayerInteraction.class delete mode 100644 build/classes/java/main/io/github/thetrouper/ultradupe/data/config/LanguageFile$ProfanityFilter.class delete mode 100644 build/classes/java/main/io/github/thetrouper/ultradupe/data/config/LanguageFile$Reports.class delete mode 100644 build/classes/java/main/io/github/thetrouper/ultradupe/data/config/LanguageFile$SlurFilter.class delete mode 100644 build/classes/java/main/io/github/thetrouper/ultradupe/data/config/LanguageFile$SocialSpy.class delete mode 100644 build/classes/java/main/io/github/thetrouper/ultradupe/data/config/LanguageFile$SpamFilter.class delete mode 100644 build/classes/java/main/io/github/thetrouper/ultradupe/data/config/LanguageFile$URLFilter.class delete mode 100644 build/classes/java/main/io/github/thetrouper/ultradupe/data/config/LanguageFile$UnicodeFilter.class delete mode 100644 build/classes/java/main/io/github/thetrouper/ultradupe/data/config/LanguageFile.class delete mode 100644 build/classes/java/main/io/github/thetrouper/ultradupe/data/config/MainConfig$Chat$AntiSpam.class delete mode 100644 build/classes/java/main/io/github/thetrouper/ultradupe/data/config/MainConfig$Chat$AntiSwear.class delete mode 100644 build/classes/java/main/io/github/thetrouper/ultradupe/data/config/MainConfig$Chat.class delete mode 100644 build/classes/java/main/io/github/thetrouper/ultradupe/data/config/MainConfig$Plugin.class delete mode 100644 build/classes/java/main/io/github/thetrouper/ultradupe/data/config/MainConfig.class delete mode 100644 build/classes/java/main/io/github/thetrouper/ultradupe/data/config/NBTConfig.class delete mode 100644 build/classes/java/main/io/github/thetrouper/ultradupe/data/config/StrictConfig$1.class delete mode 100644 build/classes/java/main/io/github/thetrouper/ultradupe/data/config/StrictConfig.class delete mode 100644 build/classes/java/main/io/github/thetrouper/ultradupe/data/config/SwearsConfig.class delete mode 100644 build/classes/java/main/io/github/thetrouper/ultradupe/events/ChatEvent.class delete mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/Sentinel.class.uniqueId2 delete mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/SentinelCommand.class.uniqueId0 delete mode 100644 build/tmp/compileJava/compileTransaction/stash-dir/ServerUtils.class.uniqueId1 delete mode 100644 src/main/java/io/github/thetrouper/ultradupe/cmds/ChatClickCallback.java create mode 100644 src/main/java/io/github/thetrouper/ultradupe/cmds/DupeBansCommand.java create mode 100644 src/main/java/io/github/thetrouper/ultradupe/cmds/DupeCommand.java create mode 100644 src/main/java/io/github/thetrouper/ultradupe/cmds/MultiplyCommand.java create mode 100644 src/main/java/io/github/thetrouper/ultradupe/data/DupeBanStorage.java create mode 100644 src/main/java/io/github/thetrouper/ultradupe/data/GUIs/DupeBanGUI.java create mode 100644 src/main/java/io/github/thetrouper/ultradupe/data/GUIs/GuiItems.java delete mode 100644 src/main/java/io/github/thetrouper/ultradupe/events/ChatEvent.java create mode 100644 src/main/java/io/github/thetrouper/ultradupe/events/GuiEvents.java create mode 100644 src/main/java/io/github/thetrouper/ultradupe/server/functions/DupeBanCheck.java diff --git a/.gradle/8.2-rc-2/fileHashes/fileHashes.lock b/.gradle/8.2-rc-2/fileHashes/fileHashes.lock index c74be56c1eae36d702423f51fb7a4e7dd80e3e2e..579c7594778735ff2dcddf91ca163d1925af2d8b 100644 GIT binary patch literal 17 VcmZR6)_sI`4{PuP1~6bO0{}M11hD`B literal 17 UcmZR6)_sI`4{PuP1_+1-05+-wl>h($ diff --git a/build/classes/java/main/io/github/thetrouper/ultradupe/UltraDupe.class b/build/classes/java/main/io/github/thetrouper/ultradupe/UltraDupe.class index 04799623820be0a139a7722bf6e98e9b361368b1..3e40cd1e7dc65ff2cf84e3ad7daa17fb0dcd76c8 100644 GIT binary patch delta 1467 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 pCDTeg!60~n@!=wLnsgNpnHZG+qW|%!_*$g z)U)ex9CqU$q7n=g7x5g*2A(hD1uO}CFa=OOUnOxiBtRCb#O+eFy+Jp%>pfT1L+SPF zZWwl4uTORd!+n1kC+Y}XV52d`I-N|-z?pwI>8M0Tfr({-dAEHSXC_{v%boThOO=VU z0&`xwH z4ZKmtn|Mp$=83$$crb7yMu5UF^p%VwMq?u1%4EoR(}>H4 zHO+Rlj5Vw?1WZyS@Kg1fQJd>{^9|nrbEg6I5LP_l_kEw&dF~4NBwS% zqN{i8`}gnc)wXMlNImWnX{jM2|I2L9@soRQC*+FNh*={|H<5ZiUS#}aDsbbN-TzVc zG`G~{C3BV6oA~oZwGk(Q-O2iWsdS-eH+7Nd(eWb|NbQ)pf8C7n`PAM`g0!~UWW}es zj=+`Eap^uQj}FaJ54i<_c`};-%5%SW&Cqz(@JMz$QM<3D>YS2K$~Awc*Y6^@{mB zDy^brIjuSCMW;1ytvIa(>zvavte2gZX3^im7bO=a8SJ91*B>(Kqz-CS1SlwKq=N4cWD~iFfn0rVdc1W>sJ4T z3w6eYKfoX5__m=lIPNf=oag<%oPHRRdZ25D>%6fV+D83EcMP*$YMbeTKu^%L{PYyVl+PWfn1nwa@rKjt~hmSY900^ONxRpOF>n3Cux+$8f+DGcH=pB{&S zz+$G{4q@v~L))(%nMP3j*OUF%B{9T^1&M2fC2@n8k+?~i61Rz2i4j7VxJ%4QqzPZ* zJ~1zmAsP}nVnJe@uq7smv;>PJMkS_+cM`KiUSggIBo>J=iHAf}VwqT%V76jeVx2G~ z9uds^F%e2^5hntxng1wzwki-Sxph;ZuWUKyUih|VdWU+=rbm@sL$|BCXSM88XROt2 zftB+gnl2Ot5*4fA=t1c5oTaD>XS=<8rZJVkvz*4+?wxv887EnBL(ed`tkw$;{ym(N ztqEXan~q_-K4a{fLDQ|rQQ?{A9#sLkXZpdm>vPOfJC0*|C0qA>)5i$MQ1S~C{r#;E ztEG7N;t9D;L!p~HfX})7SBTtq#B=JR>idR)S2=Y>U5&(bH5`ds>P{p^)mS9%sRxnB zs(d6SI*+u@-wPcvqvoPL3u-A6#ZJH#wHA3cR4Edhk@&*5>%tD#r%+roNFYme dw7Rf|{WhO7A`rs?*Tc5w058cTYuKtCuRnCz7l;4= diff --git a/build/classes/java/main/io/github/thetrouper/ultradupe/data/config/AdvancedConfig.class b/build/classes/java/main/io/github/thetrouper/ultradupe/data/config/AdvancedConfig.class deleted file mode 100644 index c96ed5aa6cf418591857c71bc3b3ca0fed88d82d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3397 zcmbtX-FFkm6~7Axt%U%yBa6ph2FP=HV^dB(>t8|df4W+(0wOr*>0dWJhy3E+zoB! zOzTVTpw9-ulz!1&_XhgFi-g|gA@_vdaBN5&(XTY61>NhrFbyZR+wi(RWZZB{uDJU2 z$nSj@S6L908_d;%wih{;9)z~z=zULg^io!(j6(aadCP6i!c`{GKLbzZN+%n91u=Xt9u6Ixq@s&()ivDG<*Wf$q|UWtEfX$lyy?XwT~` z61GZ56*{y8z#1~-8{F}j#VwVNDWu-Afq+xbT&mVWoVA(6`HfXd<(He^*kaEg%|l;|9XjKt1Yo z>~Q{p+$+fbL!L^nBFUrqNb9mf%A!iI0q@ZQW-AKq@*S0~A>kvgoUS5-(K%G<#zS`x zcsH?+k$jswzJzBjL$~NQWJfVAIW`M8ws?3az{A^CO3@vKN>7dAu|k?ERFyZrrqH>` zm8Z5;%C5=a-^$S2#DJN@dAQ2LkPDfegFCWwmH8!=8VXIBOU4~$Y|a>SRdZ@Ozj$sT zuGaqYo5^hM#GA*Dy>R}>J8$3HnlHV0)Of2Vjq?mO37MZ@j^p)l6534M;4Qv^bG+m1 zji6D47{^n=B?8T#4zYQCD!E`nJtp9IAxmt8!ca3&XzfK!->3&pcpDKTBO?iHp^ zZDsG_Z?t-5t~y?(g6lzbBo;M2+ zs#=S2p=v?0XwDQcjf)r5o0pid`PYwj0LWisF{ni@UZH zGvTwiZf|0t>BU{IZpX~`W0!S#%((F4b*~=8-6-HuH%7hbap;&0qh&jWch`ve8=JMb zZnC;%tan{-!d`y>R>Ncst7+IB!xKSdfMb~!U+;8147u6ht+p_tTHG{k$rQD?l^C&| zuIt0>pcc2yPS+J7glwpSFRj<&b(42JzZQ2)*svij5{C}d8+Jz+J*al2cPw|LV;2+N zM8KXeBFuq?Z!&IR)fGV~UEO7|Fu4~*{aPF#4ZMZ0joyabNoZmtt@gU%3+xSy$YiZf zAeVa5G72j~?3>M?77t7=p%bGzn14f7{8wbfXQL`_46FY1df>Tf+Mq32qux>I*~!Om zdUj1pd@Vy?r+0D7Te9*9JP4#8REx<`7aDmkN#Sp1=skKL?W^0dY=H`e7tNg%eM_O! z4@;mOZrXuAu+WlxtCN>qEXa55ppkzKQI)yCqs882b?IfiY`0t%MgrqwJF1=RdJB(- ze6FO>><%#$#V1HTS#NCFv*6|6itX}iQMb;;&0!4Miq~My8be%&X~Y~0@fJgm_!Olb zO$?Y0(Hv_gpdJ{8b{|rO-rEuD@VU6t%u^zI^sJ|GnoZxqmP<9WP`zJn3^GRBH*aS!<4#Ry#~ z;iJnWU-XpZizbqMaT)NHcJZun$eDc?$=%bJ)j*2 zJ*d41I-zAj4{0YsHO(mhf%4llo154_^jngCUzUCsrQap#cUk(q2>HF*CD4?11yt2u z2OZb0f~K|Wp!>A1fM&FEd7IwIeN2@Kc4ThTn>nq%O;%28Z_|20y9xDkTCh#g?-NA6 z4|)Pknt=BhO;C*4-)NHl4&?tqCHf~V(7*7{$-n6w{Qy##A!hVL`VnRd{g~bz;z_Ht z8we9U^D%8yw9StwUOD+8ef2~7#;udT1AiAuUk4y1t)yu`X_!fy&kglPHq%)93H=mS d$3~g|8T~xb{{{UL-!ZII=vNq}lMx0){{uWx%fA2s diff --git a/build/classes/java/main/io/github/thetrouper/ultradupe/data/config/FPConfig.class b/build/classes/java/main/io/github/thetrouper/ultradupe/data/config/FPConfig.class deleted file mode 100644 index e74fb1ce71ac167b6dca6bbf9dbbf0388535c4bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2139 zcma)->2?%F6vuBTA>A1!$#BEIhCK_U*SSzs>G(;|Ex<%EW?^Z zd5fG%n)D}iKXj4*D^@2mw2&hDo##I3+ z&>J2qbtr@Zjyy}N3Af6h$B;S{Bbb6)hxBAC)acb6nngP?pfH6}j^=5>rVDv`fnK~h z)3=6Q!A>YW@)m6$IA6T|!i)}PkBo&@8_khTFYEht(V{g2i+0DOAix#FDUA+JcF`;J zs!gxu=`y`;(S8}ZHJQ}Yii^yWI7*v-?505yiz=3GRV2doqHs#q+~X7DW?@l}n)5|` z76;%5Cd0y_a3&d>-oPC+Nh88>8K4z!S+t`Wq%|2T_l%BkOh=d!f%11ZBPA2eoEn){ zQJAAE^o}m&U5i$tgZjfCr9Qup8%I&tSuT*w;MX6lqV7_&hksPlH4JEI7;p+{GTa zn|*MEYoN;#+`}{AUT%QpFcy-$JtJJGz>k2u)DC(OrInu9W%B>-2VU_!_-;jXpd({3~?ZNc-!7mS&E6iK$?G auFULOK6BXno_>JWw$|DINIx0-pZ^2)Yx15PeQU^TE=j3lz$y13^lH)a6!C%10E03W{2(ExB;=Zk)trvyQypqMrFN zIdh1RIB>|3ABC7rDuK!ca`E`to|*T?Ge3TQ`wrka9u<*6HjkWxOITyrQ`#FUJ4$@d zj-)j@nMmU$p*5mUTdyyy@B$qT)X?jSXqbqhe4|2HYbREZg_ZqwV3m$yhBZ4U$gbmy2dbFm=8 zKZ%%6j2vh)mVGXkG*uwN@T^2n{WDHN`F!fXPer~ak-Re!mXj(g4ZYwZ9BM-~8E>b> zsyNty%TQj%Ki91S2Dkg0-;p&c8nz0!#_;*y8S($6R3(R}^Qo?PLKS@ER&ygK+E_ji zVJ!JX$I7Zx*+`jhI=GQC-@3s3aN!~RP%`Y+SN^O`m<1dEhaX?5M z_yPPV#3VrJd1YzFZ#GXhbxH+=$tsbG#H3LbQj+K^Ye|v%;R7MtDqO>Va4wN diff --git a/build/classes/java/main/io/github/thetrouper/ultradupe/data/config/LanguageFile$Permissions.class b/build/classes/java/main/io/github/thetrouper/ultradupe/data/config/LanguageFile$Permissions.class deleted file mode 100644 index 61771e667e6132bfa927704879d9e86c0818dd08..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1282 zcmbVMOK;Oa5dJnT&7+2qEgf%8dc)BNjAwA*IU`^qTcy0 zoH;~D95`^~MeLW9I9vh4BL^Y~`woBj3s`wsxGaF9g`18EFexPu{vL#5q@GR>&s znx-^?j;>_jMxF^ojb7cFFv6{Bzpff?N%)OOG~^rQ$)$HPxKv@Nv>!4InWhStHW_wG zea73%A%kohISa$E81fh5TDTr%bWbZ6vT7*FzVekhU>I0kJI~-A!|cy5)nh-5>UC9B z(l@*ZR3R=jZ($TRgXQbnUkrBXHu{+fl;7CP-~q$jkteT(A)VjoDB#qJZjHraF%CFx zVImHAPj)TixM2oU3=6m3)XH9GuIqd`jQwXU%*Otso^Jd#?}V6VSp1+PE&|Dg7f4aN z;ev-UxRwFeghdz~BxP|6g*ZyKV|IF#!9#}a^8eEQ6R!F?G(0b;Zf2l z0`|I{JdV1`Fw@24YeRTU5QRq8ctpSwFph=w*fZ_xa{MoY4dMY!rc9jZ!vCbgrVP2! z{G*gtocg1vy5jHibr4UlCBExTm&lCJ0AyQJ~JHko3eL1_84+!#HMPpH#GX*H7dqLWXPPz(7e^5 zNrTL{``jVo`LXZI;LsCcC<*^?%&g9m5@S-dVxXHaz@|4Ab2*X3$wU&X5=m4@Bn>u^ zGz}o1kB^K*r_gvp{!dB!OmR~rx19ABnDY&3$G+Rbh-2SxVa%~7TbOq2xfT{2d$ENj z$6je+&9NW1Q2a`MDLkX+VuEb~SxjOCQy9ZEX6P!=zN}yl8<@uy*^Rez;W=KAMp+X~ abS7Y%v=m-qCy~3@Cz&IRDeTg@$Nm82&rk9I diff --git a/build/classes/java/main/io/github/thetrouper/ultradupe/data/config/LanguageFile$PlayerInteraction.class b/build/classes/java/main/io/github/thetrouper/ultradupe/data/config/LanguageFile$PlayerInteraction.class deleted file mode 100644 index 7f372b234a86da10d522e9b89481fc35afcbc1a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1186 zcmbW0-%k@k5XZk;kd|^nIRzC|4lP&?<@jNO3i3i?AXXq?NR07ed$+Vlj@{;NuL*xq zpM7XdH1VO2{!zx+YokPr4}H1WnZ5mdXLn|P{QUYIz-v4oMGixG3|qK?5r+LxdG$~? z(we6mLdPm?ir7md9rJ*eUcfc?d?nAqx>x10p7OeQ6GozZ6!A+D?@KLW?(0xVh7sKe zlkzIV%j$sCts)8-&7){x3>HJ_oVU0ak*;@GI~Tqtk?l~1dWT`CvUFO&IK!)M+y9_a z=ORtC(~MOs41~j_qhu6H;WV>E9j%;1$iU&wg-8;*1x4n~W0WjR!e$tk>M%ReyBULB z{iA-O<51SO3b@U%_)onn*i0y6Pg}TS*ppJd>!}{~@(T*M$1v9?HF!%nQq@#&Y4VIk zGct<|F>B$zLFA=6Ht_-;GHiC+LAM?CnNGL;qWg`$wU6EQnR$wCTkO!%Sy(G46#hhk z&4u-HV(#l$m^Z+&{yUrqsS9}gf2aZdrjo+n&;<*N20GD)9t&TDEfFwmR|al|rBjCC zT@?u8R;iQ+=|xS%?|Chvh+S1ak4||U8owVLHXX?Dc2LRdUA@InJW*-vXI)Q~ygCFc zra>4A2O`mXD$#kY(K8O%`wZ5;lp@}Zc#;UZ#pJaSqr&BAK!6d@Hf&lk(_opUF3Btv zH?vd^pj0wrp7~U9JfZ(9q>n9 diff --git a/build/classes/java/main/io/github/thetrouper/ultradupe/data/config/LanguageFile$ProfanityFilter.class b/build/classes/java/main/io/github/thetrouper/ultradupe/data/config/LanguageFile$ProfanityFilter.class deleted file mode 100644 index 7b0104a6d5ba74356e6997172adbc1ae5476a1be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1487 zcmbVMU2hXd6g^|o#4!sATS6gFI%yN?7|ezbDbV0b6*MH38zKdQP}PU=?yNm@vt!N9 z8l}IW|HRLIuqyR|2S4(o5O*e!rXWDd%ig(nXYM(3@0t7R^}jCxv~YVG6`YvDM1U_a z$?#C=sH<$R>_oOFtT=$b{3CxX7()7B8eQ3w%7hQy&lGrJH_pG#=hwy5*L4 zmR(t91Drv~FxP)~w=Hc|s$yZ4&Kbh?e}r}jB=4?Oah8D+#M_w^h2)9mxwhQHah3D9 zC+q_M$y&MBw{(D8%{%*jQ4mWi7f*fh_zRU~+{l9J?oJ85S6b=lu8xPgzM%)w@KhVV zr;VfysrG!&1^CMGJ$1tvG zU#!DSZ<&3T!^HrX9EUT9Cx0cF10I(do_yGy_X&0OKZ^XRX7KQE*LxYP|$ZN&Q$z|>n~MT8_QFXks$iIpd+bn5RJUYdH*{gAaD!p>n8Si0*vxZj?q~FvB;8?V``xQOm`Eg#3e6K>62t=` zt(bc+-jZg$B?);;Z2@Ly-Awd8qY3mq?XQ#9r#uz1^~Ti^SmPf|HNsOP%rwF;N0@7b z=SP@tgkO*FO(XnvgvGyUZw1Tro%h*(#x&M3gNK;I1}fgc5Ph45<^w}g(*`I7TnJ5KP|OXX6cALZK#E#Ks+_oN>`k(j@rK=XMSl@z z4iORu4jlPWh_RCh&bfH^?Regsoq7BF&ySw~Ucj%QfQ=H04z6I6;gwXuMA~UO3hY!^ zt$_{GM1B|&yz{YC*oMfqWMA0l(vRp(@v#nK4o~`Uz4j>MH!V6 zst&HgVW^+;3m(Lz7MzaGMQBOnP$ts8WY}nThGkr5XbsXZ6vm9xIKK3BUX6%6?u~hD zgf~-0T6rP%v-{Q^Y{6yN&SUSFp(O!>+y5sxuv#XQUK!gAy91F#gqG}{Ri3eYJnnY8 z8EeDA&5X6N5T_rHGwBt58MhhU{Q4T6O~s1gQl+&0oC;&9RzZCi+KZGhUZSigzDQ%A zcuIRyZV1h!7EykII}Y|TsdAzgeP=jquifs>kfC^_BEeAW%S4={pGHET@li}CZeN8w z9&#-+ygV#sGiG?buH?!sJ%;K)r8>+##IW_hrMlS^=#D4Uowv%^5?Tz;*7OvE^Daq* zK8m?9f@&`<4U2smU76lO5u^{7b}XA?zEYEcdOdp@Ic8+YyA;1i=p*G7Xx;N4&%ylf zDEaQSIcmOpV~!o)y*0<~H;NZ= S6OZ!sfbxJUX%}!n`Rp$RG6GEi diff --git a/build/classes/java/main/io/github/thetrouper/ultradupe/data/config/LanguageFile$SlurFilter.class b/build/classes/java/main/io/github/thetrouper/ultradupe/data/config/LanguageFile$SlurFilter.class deleted file mode 100644 index 7de7875d630fbd89c5588dba80c63d5c851e5c67..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 942 zcmbW0O>Yx15QbkTq4^**X(;8JZXl78pt5{PElS})5h_xeRs;oc^lqHQ)yA&8-XMO_ zo;gHF960QeABC6=pjI4nS-H1b?K z71rqJOc*x`tl=Xv-4VCk^|czyiQD6967h+6D+AFO1d$=b3d68wr!s6jW_ZzC@w#pa z1r+lrm2nwmhUzJwb2p%Z?y+|&d`m_4rIPj)L$=i(7O>86l*Ilg9XV4z7mg={a-<3^ z-#Lqv45wn`cwZd)DTga7cS7Q=J4w8o#JY8;=fXH+ZJe1lg3`vioi?Ug#s+E(<@EGX zWW`5r6hp0djx(@Es!6wiO@@;s_L5jNpEN?cm^i|V7&FTMkKwc6ONhM|p*No{)7&I} z-h7stdrO9`GOni#oBtU4+RCx?xs{q&_FF6WxIJXZ9q5r@sPv=~{b=S1^MQK-MQT0m z^I*u0O#Q#XTsl~WH>;Msppq^_X`mzHFXh9qaZyc=(*80O`XaQ4I<$G*XV_g)OEkWB zN(pli@GumFUpm(+>NMp7y@V_X0X4E%+HRm)O&`S4XQaU!6u(K{dpe(?b*uAm0oM73 ze5ZD0fl8-#b%ASNX(xkQ^j)VLfj){jMg=Fho#y<>#2wrvFZI(3Bw*YlFN1A3%e9UN Mw3cWmLwpUe-@-Nr$N&HU diff --git a/build/classes/java/main/io/github/thetrouper/ultradupe/data/config/LanguageFile$SocialSpy.class b/build/classes/java/main/io/github/thetrouper/ultradupe/data/config/LanguageFile$SocialSpy.class deleted file mode 100644 index 2bb8f7b994f56ee0913cfc1355b065fa0fce882e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1065 zcmbVL&u3SH{bW>y>EX1`SA-t16BqJtfY|Ca09ChZ>4YbWYizF zt*9@ez#k4oU=7_U;0|pqhezD%_+D4`tS0w*L*5hbq$>)x-;vz42UiTMQD26ImkbBZ zCDH0xq>)J>tKlXzhWt6dfdShP08gz!#EXbfY7pQg=NUv8<<1WM2e>jc|7eE^t?kS-3JetNPJ#{j2CL{HJ zV=~&G{G_!#8F{;}3gKi_Gx|I4=J-t$kA$jaOf^eJC6Q{$Awg^6}9;&wc9qzVxAeBE0CY59uj+doe$gfUa zwEbbwiDk*K_OD8-YT`7yQxQfdei)_jf}ysgNEx*Eo+pB1mxrOC>ND5Ep`Ip4!Jt1y z6+ovQQ>uwAO**#JcOaiv|1S0!X?=(Co|4z4`w6l;W_b)|en-mGZ;g>N^*dv%oBI7R zwoLuu7>~bERsscDHwX!+A%lJ7aDa6jVjFer#%D1ap5Zxpgd4Nc=RuLY1WGVtTSkR! Lma0ggj4Ie)kKrOG diff --git a/build/classes/java/main/io/github/thetrouper/ultradupe/data/config/LanguageFile$SpamFilter.class b/build/classes/java/main/io/github/thetrouper/ultradupe/data/config/LanguageFile$SpamFilter.class deleted file mode 100644 index 57cca793afa9e3dd63aaaf762cd8bc86ca161cbb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1310 zcmbVMT~8B16g^WAN?iq3@C!etO0^WrqL7F}jS*rnsc2Fu5@X`D9lB$-yUpxu4Zo<* zJ~Spi_|Qjxl=05u2l!&b%ifv0ch5O<&)og~RH)1ohLPezJ&W@U>%)Fy*bfW$=i_1j zA@8WRZ+JuUn51=7*v|7|f2}y|HwzEa3UAn7Ev(q(+JbGvl!IxwL}owOiHtf>O<`0N zGPu>h0%}GR*m@Q-3?Jy*_mxVyOwg@iKiIX6+M-5Ts&ctfd6y$mueI!{D2X3a_Q1-s z$<0J-8JeRU39`AG>Zm|yWe(Fy(q?sCba2V)n*CSTcGQzPiz^IIw;~=!COs-wA#eJ^ zIsItZ2T6U#TM)hQHn70(%LEch0_Vvre z$RnED3_B;y^F@4&tV5M8-Z=aNpC0soeij_uv1Bv9$xeE@Q9SkST&OdQZbmK1Fj-Zh z+(|kOso#i3KpD3hHAPS-8}0sAa@39l!`5jjkImOQL#`Gjx|t3h!}RevT(b9+EZmW? z*^Xi}j{6J`PdSC;(~B^adNUAlEJ=Q@Mz$SIIr*5O83o2b65!H`*=w3cx<+XvuhU32 z08>-;7nAN8P4!)>FVe0{I2nq?(&7ND^abN3_uK%JCHKMrvnBWP09Q-y^#N{{+*|zpi%wi97cuUImQKI)3k8rVwd$c2ll%IYWDAO*3C3tCE#si8u L(v!h5R=|D&gcEgd diff --git a/build/classes/java/main/io/github/thetrouper/ultradupe/data/config/LanguageFile$URLFilter.class b/build/classes/java/main/io/github/thetrouper/ultradupe/data/config/LanguageFile$URLFilter.class deleted file mode 100644 index 3e4cf2573259796080c9da702107e9dfe6a6c284..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 952 zcmbVLO>fgc5Ph45<^w}g)0VFSE~KRiN(~oUNP~o0p;oejL}@udfsMU!wlZsEultvL z<`5xq;NT-a3NafHMI3YS?99mT&Afg4GMF2Z7Hp7Jy9M#Sg79G(ha6UmNLQa@vu+h`wGahYMI$o;+8QL%PXp#mpMqSTSf z@yA@Rnl+mi7GN_}sPl#=ioy2Ife&>eRoJUyk)d7W!y;E}k6LMwZ#iS0I@AqAk%+({ zT^z2o?9$4c26x%QRfF3g+(E46NcvpMSXFVI;c<~~pY;3Pu2bYekw-^H$~}^j^6hT7 z-+x;tvOS?`D-k@U>d4R<+?y6w4DRB8xcl*$k$GohW_jDk4CUQ85Hz$Wl^A57h9Y^* zhY?k5FZOwK%oAzyKgF`SQ-jK9!?5tLjW*4FFjNO3)%$U(E4a_F zHKU6dtOKP)vK#R<6*PVAuSu~=`c~-$ltB}~rV}%lIE^Ga&}^CqG0hp7@D}xNQ}&Mj zD^XnOJeYuWzM|5xFHO+s*jFZ4>e$yNxbcPhCETH}P58hGYIu(ZK41wS;ZSAyHwH~{ emoh?|a*>yDkFpY4SewRmY*4HdcM0oggZ%=zF8^Bq diff --git a/build/classes/java/main/io/github/thetrouper/ultradupe/data/config/LanguageFile$UnicodeFilter.class b/build/classes/java/main/io/github/thetrouper/ultradupe/data/config/LanguageFile$UnicodeFilter.class deleted file mode 100644 index b4d02c9f72e23d7b5298bf2b63cc21f27122b357..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 995 zcmbVLK~vK}6#lkUT1v1b2%@3}EeO>RJvg9HFQDQ~#RIk;)WbH}rpv^QlWh1)IeX|h zf?;NByH~|khDSy2AH|M}wUY`JP@>#a za~1F;aI%XdI#N0Qkn44G^@fE-*bMWN<_DfA2D|fD>{KUGh5J=pV{nVSU*u}zNi!|- zU1!Kshq_@X5)n8wFNZ5F-3ir>;a{iYKv_1L<=uV^zfshNnfo_qpA6U8l%{ zB9FRe)JHUG!h5dUZhx$i=v$GdH0kG592j*&eapg{pKV|ws5dD_4K!U4CO=G zC_}v?l{m@1^hNTX_amyLc})KBFp1Gp%R+d7{^U)QLK@637gmk`vW{@5sCl+ diff --git a/build/classes/java/main/io/github/thetrouper/ultradupe/data/config/LanguageFile.class b/build/classes/java/main/io/github/thetrouper/ultradupe/data/config/LanguageFile.class deleted file mode 100644 index 9c8d64afcf4d2fbdd18b553f90fc2c14273862df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4408 zcmbtX30Krs7`+dv149&{RZZHxWvSWdb~(~PB6SB<4C^Q4}M z^#|^Hbwd+~j@j0vX3CcW)%~;7lCI5x;t{M7=nm<=A)(n*y5s1U=|oY9YMFuS1=^eX zLwbxikI2w(P_Pc`1u7Wk%m4!W!g?*{$%r=y>Iv~}8yq6XEH>dgvn!L0&i zso;x1S7@Fy-bu1fU{6?*gId^{@gY&GR_{Y25|b8S&@JGKZ^W#=~$I24-og7L_|m1zjeKWU|O)ktQiquA>6zEiYW!CrIn{Ifp ze}-woXF8-{7$e+tIot3*Eoaje{FCQ>EH`0if7sMhR$80kI_h&hrr<$W zdJW7OCoYT8g9;vkDo~o}9O7DA?bmz8K`t7jN(m^Q1PES5q2Xi%83p6e1)7$KxS&~B znKPQ(XF9HGrl>NuG&L_3MWJt84mzp8z!Z}~H$4Ck~2K~BLboEF%&M97PKp`yzgxr}ZKbcEy4knsAG&NR+M z@Th{vq|j>*MJI5^d6!zUnyT~(1yABBf%Q}Bq{ft`RCkp6k(Qh?*AZxJS||pC+)F31 zKp#dihO<)EofFs;bO{zud=UpD5j-ojfMpQOt!{BA9JFYX1o!658Vr?9! z9^&egJA>-2J!J$Ey*#OBOx4ZVe0{DcL|@Cti-!CEv9%ZVx+Vc1?;y=+(#qK>d7h9` zRdEcha<6bR9@ZRpK$96`M%Hv$mh13pkR8z6aVzaquEg6>yn}Zmcu%g23jz(Z7XjTo z#T!B}-~LkRr6#lNX@LvHizI01J3XM9X+v`w`YmfRmtABj6lHEs$D!%0wn+11MeT!3 z7q7;^MYn1gN!``rW%z*8=U=h}54Aqi)a-6UbsUWus3^LZaBgQ*HG2f=m1$g{2w6o6 zs*6dSuVuI{=V=5vF-5gJnk>{gx+>HXo^f-|X&xQ^){o$Ofz1o%VX^c^@FQ=G|J{^+ z{kcFr3qc74p5fhbgRBQU56A+mJ>T<}lt(k|tZSC2kp4DcjwVTyGz3`@bDsD;*-G3mTB4qV35zu|-oLwI5MZsqCxD&Lim-gysS#~Z{NRA3Yd^r4H&xs9PU z@@R+#5Xm>kBPO!Pl%1gPl;QJpAp-LpA+N6FNj^l eFNuA`uZRia*ThlcH^gaH+;55B;RpPL4gUf<$Ulz& diff --git a/build/classes/java/main/io/github/thetrouper/ultradupe/data/config/MainConfig$Chat$AntiSpam.class b/build/classes/java/main/io/github/thetrouper/ultradupe/data/config/MainConfig$Chat$AntiSpam.class deleted file mode 100644 index 0b2cb5a7c54cc0eda8a7d0a97ca21c858afb9f77..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1372 zcmbtU$x;+S5PdZ)vrxh?DuU~vpwK8SDk_U04#OrQ5f~i2XiZPebVDyhcaH|2<)K5v zgCF2W8D1Ga+ZR7?p@ag8 zd6XpjAO*??>Wi{{6}Ij7jRWnZ6lc*3y>v;SYhrSrE9sXQKv`fwo#s*xRm0a!0r8Rj z6^YBZBGA{=Ek#wWQwikTWZ#g)HTLEG=qvNgjYwQ)t`z8|*9p$(n-aH}F1TLXJtOZ( zRGBQgTBWPnQOA73U5R^!ZTOLMxIr#v$0hEYbB{Wqm$+y2gv2DLUvzw}Vs2^yQvx~1 z;Z2VureRYf9CFmmA5jpfkgBU}pEqYOjlHnFPyqFRI_RXjI)3DYYx|(D4VpR<1j8l)tZHkL^>ko7E>!|BtBu zw7fv2?nRy0(Q6(D95@&KG`E~Iu%nZ7BTCXd>H@PD(z}4%3_~5)e3c|R$zwxc{z502 zN#ur+L@2kjk;EunQh_GEA5;U%v=TfC21)e>N$Cbj+6GC@21&mLNwEe=q6SHf21zak zNf-u62|&5b4~nsA+^|6L7RmZSdE^Lpt*H#c`i{KSo#7IH2Cbe9SFL=8VXNGm;Rchp zt#T>Ds8t@xFvi3Kt72t%XjL9(cw%*Bm}U0mH###%?-@vk{q+5WB0kefQI!o0!=Zs~ z(j;n3phaWUCXu_CgNJ1tppHXq!N(Hq96HI5_}64nrlt;hVz5G14sTF1xQaEx3Nh-MX5Pf4COLjK4kWC2R>%=DZ=3_Cz3B)GBk>WTh6H?`r54nw26KPVrJ7Q+m zM)04g;;@w}4*URq6h-$a#K6(fL2sttPIpgtzxng8-~RycE%xUyh3N)nBD{lHfvz^` zK>K0UOZ`xJYpRj5X_b2``?O5^(#te6Gk1>l2%~W54Bs} z6xca9yTk2yG%?q}e1vm|1X?fUu}pJW4$>cbFIDC#&W`ane_Jm_xXjjh$Dz9_lVf(Y7UA;{U{sabO`J5bE^x1? zyo%RGxg0CI7H@79ao5D9@v-z?6(b*e6Zgg=>0C_xil18ZLQ+M>@t)4Tvg|yGa23}C z+KzkkG(_l_qL3vOrG0Q()I)D|IoNLEhQP!B1s=v-?J}ziT}p54ICdkYvSF-U$i|yo zS?N_jHYFuOR;TQ-vMZdx7ZEl&fh9))GXI|pn7WCo*=IZ}Tosea{772O``5-9zL&t>TSPsT z$TrQup{Z=9s8O85shDnXM`%EwDChT$^9|e=*gBJpsHTs~QrS*U1EO354+QR<$x~1` zSB!*CL;XhTSfM^O=_xr6x&&IZqJCjHAn7R}i6Hbo3NV<%2n+a;?qzWijzsTq2^H3H zjO#eTP5eZ;jByV?ql;g#O{XqQvce8Mviy4-vZsd%cWF08-+mWx7ahVjS-RN89^Hyp H40e+O_y&aMFWFGo%Gxwair@Mdu`SA0s z2)RS`N%<`mH2gQULtPh$k_n7mB@9i^R1+8>Jnsw2G0r~=tl9poRg^{sIYB)~Sex#T zy=z&Vsmespd$@p$gp@i#AZ!fK_LONcflGw)pg(=Aj?x%IPRNdXxQc6pq$A4}!i#~q za+{(wzu{p5Hwo!ZTg$k2w<-kMm(nc{x22Tfl2c(zH}n^&-0?6al@Y1f$kgrs(zJ(} zlalKfn0k1i<*Qi__oOu33L6X~sW}h6q|%b=y~%sLPk~umLcGjqglxqGdb4v>)6tHq zwKy|c3G1p=RgsbSUotKyf>0V@oJD589d@F+-Y|lbJw0}Faz0qMP2ILH!?sOenXu5; z)*yJVf(Q;zqJbV_FI#9DnREFnN3+X!P}3y{4CB4a0+-Fdq^Xf(5# zLx6KQu@gIobKjS9hun#iY)tIfN#q<=`Bzev$}jmPKP373X@wBwRJo|B>h9Ow@9Ot; z_x$ZYFTD!j2>#lMHf+eD-NHt67&z=l#hRbivvM)5t2BkjAb@vFN#}TdYK3 z)vpy#x_&sN#lG1ftNEdUj^OmQ)p(^ zSOt;mnRqX+BW`pOxIZaaf4_mf{pa5xte>**w7|O46O6Em=@&w z4c_ES7QQSukrULECqVtGg*ogK>FXArm$P(+<#aX+{iH71Z(8`4Xg9B-Y|Zo?3*Qyf zCRQ&7*IToE-@+9=DQRW(ipj(exlppm8##L$x;X4L@nZwem)-E1#(Dh6ptDv?2alY0 z^7B#V)ZHcJl$8n{dWXt$s!{B?DWlU!S&JRlx%NJeTSRjgBG833(#F38T zq!Gt-C&E&9LEYsv0_7&kVJAvCkxt48q5hj}ivwqgswur~_lzH^Q`ur!#b?}dz|HNMsNx1^-Po6LOW7`QGcb8` z8@3uckDM<>SzJ-aec7pdt>q6%-(e*=#S%0fC20iO`i#Qg6N2+0yjw%58biy zJHhtY#@_+J0c$&KN`^FM&DmZxXA9MwU5wVNl-uxIO6*fw&yJ)yTaf1LG@7%eXwJr= zIa`G0Yyq0H%4^PQt~u+r<}54g_F+NMde#rkSuQkZjnJIQyUw4PtM$xV&6%m1Gc7e| z5^7H5uA4`=YCYkpIpGNO^vGYE9uv!Wi8Eeikp4k!8~J46&L)h)i^vu1O-*zc?5#~~ zE7&`lcyqzNrHNY$_U%{E*F>Sv-o%iQ5g}tj4hWejY-nOq$bCYNiS7X*4+=S1=-K`X zX6HB9kCf)y?K7qMjrQ5ne24wE(tOT-v@~zpkCo8wYF{GlwVxo}X1}L&74K`}19F@X3VBw@ zN9C{|FW8^5KXVnIYvPNd{E8^QCgdAJzAfZ?1^Wl~kF?KEWc+h+{G~|E7Z}$z{EqY~ zA`sY$PV}N1+xTtAE+X+Z>_CB1kw1H*xCIBX8{AKw!?!$j^)X3ww(TxX;UQ8Q1al+V*2aP>=$QZ(D<8I6v2kXZ8>euI=F#f<{8~%u8&0oWx$@4@*8(za-VEhkas_`lS diff --git a/build/classes/java/main/io/github/thetrouper/ultradupe/data/config/MainConfig.class b/build/classes/java/main/io/github/thetrouper/ultradupe/data/config/MainConfig.class deleted file mode 100644 index 0b6a47f9a48019167e3d4ce9da40aa63ee0e3634..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1532 zcmbtUTTc@~6#k}Ewq2Hs6;M=EplS=kdI1p%MN?v;DVL;*!MABUv;*7SW_MO2Z~h~F z01`?30sbiCncc?Xo7R^(XU@#Ie&?JYKfiqku#V>@66iCKv~UUi3?qm91GgRSHte11 zp{OZ_{x#`JRb=SP<@XGv7}lg`H>7HYRa-TM^1ZMvd^>cM&+Ek6b*{Kw^V|d3u(!B$ zOA(vhb;5>pO&Bn>w*iLLT)8Jxh5TL`gBUU}Y+(eK8J2poL&>$Hpcsn1Mbb&CVBiX+ z(^C-HQj;qa8JIe!aSK;*jUibhDV4g%u(VAI>N`+N3uv;>y*{><8itr_O zB;)jw2T_(o zf9A-LuE>VVRp?VxpD)xb9;Ctr&wrn0kN6jg6tP+HLcb>BpohDIxS-)=7}yqp+7h~O zfq`cXn_V3KWvq3pWnZ{TRz3>u8(3v1{ja4qZ&ByIa$Vt<93BLMpzDwKhXy_xjr4Dy z45^4GElkl2CBTr2PTCE$=9nHSqFPQ{j?P)S?I1}UFgbe$HhT_ZpP2LsEaEeoA3ed? z*GO%S&LQ;CnIfeTy>jq?ZdPmn^H`u8gN>Pv@m>0zAlc|SCiXKo&M;Y?JH?$-WZ%tw zA$bB_n-)w8Izt|`&GA^TW7DL!hj>I*lXx8IJ;7o`m++LRN%9Pqu|iw5K=*078)R*b SG%`fji7pdYB)UR$1MC+hccUEu diff --git a/build/classes/java/main/io/github/thetrouper/ultradupe/data/config/NBTConfig.class b/build/classes/java/main/io/github/thetrouper/ultradupe/data/config/NBTConfig.class deleted file mode 100644 index fd2badacf522f32ca778307173e566b8b3ee6abb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2721 zcmbVOS#uOs6#ga&WZ{xPSOrlc2+6PvvIz#!BxDqrEHEJmu01_HGo9(_9(uY7!3|t+ z7hF)m1$RX)OUnvaQu^SFRhBQl_~Mg)#PU10XCm>5vZm^MJ?FdIIrrS}-e3Rz;U@sM zhB;%#Q6u3PZay)T8MDkFhM7BT*A8~ZP~X`#+KeVNH=;#h7E}zI zZ7-3xgF=`|1O+Sby|8TgiO>mrBg@Z3)(DJ*>A5*OpBU^N>C;~^G#ifNjSm_nD~8x% z8M9TPO$LmZl;>OGovY9;-ZtI7CkT8y69!gAxcLeTgj1Ru_5#~;HL*xxF|K1MdB@8b z&VX^O-!%({%TQvwrRP$G>!m?U$v8G(xmnxIi~9zJ8^t}F?gMVdw~S(y=}@>y7)55( zaP3N=N~~14S%@|gJx4;LCzq34O~`Po6*`4$C)ev3m0;NS0w$Ep6gsZ3M(DYu`$E5B z4dr_6skN+ASYI1>msJi5X@;J)eCfGC;g(v@q-8Mgev&z;E@_j(<|)?pt?9FFRk&5y zR?eFAy-IMSTbxQDVjd;9SV2W2HtN~%C>LRBJEY^ z6H2m|_ChCJwydlK(yx#dqM5`#(*Y9ZyZh@x6JsBn+C zXVJa8R5ohaJ*;rA_$8LTu4fiAhN;(fzrq7GB3&^2vTIfJq8?H(glJ-qbjc2MU7HG7 zaZ25!$1SVOY5TKz&E*vG!by(%ShlWJo7`3ys|}TOcz7fLN1-H6y;7dDTKRbjW${OW zO&Cs8mA*oy=H73Y0~VEx5-J=Ox5PET>N5n5-4SVBJ z2|cFp_>?o`p_8FcDm)=hDY<>2Z5A1nABFmq!qY;@8k3$Mgsxu9GYZd&Te6c1&EimQ zq+q2jLq>aE;RWFuH5aMGOA0TGPZyZ&6i2+!EHvT_JzCAEQAw6^6JCv>qwIuv+pQ!H zh(_%ajdC-=x=5ndk5xRk1*h@4sNvZd7Idcm)k8UgZoa!~R9d{L@D|Q-m-1FHZ1|QN z$P^Tv&aS9Sb<%EW{I$twzeJMvA9KDy2pWqee=hMhc%s3YFBNNeQz)yM;@k%vE6yK8g%t; zSSx=MVm8KSOk#_CZ4=Wi>`pN~Vs?qSO9tH|W zrd@{ld{!*LYAj?aF5;!W7+aaPZY<$lx)l94owK1~i`Iq#SbnCw-+3d;UU z_Y{HBR!qaSC13$2iXLadDQTp6C1*_>}k<30%Yme9c+D!$y3MP56-yg`cqn zzi`&y_$>Gx+wcdr<4?W=KIEzuw~d>HkJwv|$R{`#Z6tV{VX<`hjjHrZnz&L>Ow~T*k~D;(_H8tF|3%GOuL8VWVE1{feQ!K3fvl2QDbP$ z`DgBDM#lb$*8FlLQ$ulvQb}{nu+-~M99(B8D;Y&DRZ_2^fhK8q7&5ebqufEvRph^& z&P8Ab{SOY-8J5XHXa^l@97mCZO-sf(xoye0C2!iQG*{}>dpms$&@`ZZb_# z`bB^KZ}9L+)9i>Gv*`eiS^}5|zd!v69cL?v&?F;EkgfG0kZ(!aJRJ`W3 z?^t{9HCqL=3)m=NtAHB?+$!L43B=PR{B`Q!w-Er zhhhJS8x=7hsJO?siB(%hO8Dwnbj>b>w(=)}!tV&eC+tx&uMZUQ+?@D)87y)p^CZ8YS~LH2FlVRlEx`lU3MktNQHAdpeZ7jZ0O+@K-Ofzg-ILxW83 zTXZdRSWokGBPny6GEb4G2q;!h!K!Dl_9!TPf%7>nze8_xk%0mg7IBv%Cu=|%6-Im^S^Z;U1yp YN3`#wp7wJ*ps%59VS^$&jVJ(q0;nP?zyJUM diff --git a/build/classes/java/main/io/github/thetrouper/ultradupe/data/config/SwearsConfig.class b/build/classes/java/main/io/github/thetrouper/ultradupe/data/config/SwearsConfig.class deleted file mode 100644 index 94d6bfec8e8770a2ea455951148c1b7037f656e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2384 zcmb7`=X(=J5XR@+be3gf550vBF5sg#nQA(sBmxsb+Uf2jt$n&Xu3+r+kluUmy$6y| z0)g~K+MkgBBv0NwIl&=c!UzAJcgOF}&djc4pa1jpIU-s`zbC1RsuNU`qFSm`sJT}^ zq-(bB6t!LXUdsp-s_PPt2v;jq-P+cZAoX9SZ0HN8s8Uj)8r{)tl~S>a0+pJi@&iky zW^C32gjgXpuiJK@8+|H`Qm8gwsWe8RL|zX<-8WSlC*vYCN-9l2j(n^pp_07NV||%) z+irian^$S7T)4LF%9PWkOD>>i$~3NH`6|tpXKTl+kt>jlxi+xv&}~SI6O< zDABM*==uT$&xgf`GcSyl>!`F?Dqr_hT8h4msI1a*8HyZaS_x$eSxOgjn!+|+l`y<| z(~XRhmDe$>wbC=thrz6eDp=CJ0bLX<+tx#bH=%~gLSXln%E~Cklint`L~=_;p@u?a z7A+6cl>O{PZv}aGNU6<-NwujM1*eyPOZ zph{Q4YU>!cO4p#UGHxdFF}>^HC`W~YN_i+p9~3H?$mIynvvEX0MumsLm86PH#Cp-Z zXPK^764GKLwP!hUxDGs?knh5i%5^bPKUO}*jHg%Y`SBH-+Ed1}~J59p5gsRe5W7N-fIqOS&7!1cvX1@=EW; z*aGXYO7|m2P?9GIMYLa+2fU6={kS))f!?II67+V8-l2CDYKlLq zQ7CLJgSHf^axwl{tp_p}e}>a-mC!%lbUnRKA0+6*6n#WT6g%5RiypRpYOME9>d_;miRwxyhg6x~(yZ=<7$(|jd z!$8|Bvu}{uD=9jA1J_B?F*+f?icTstx^-A1mG7B!TaR>nmZH;iMxn-{74Fu3%L!$A z)X+NA=+J>_X+E2xbMyr&E%%wi4{)okZTl1Sl|qXzbS=U`5qJY8y7tUIO%5v1$|5kd zZKx`1`9inFpq`hf)MrJ}(Q$XsGcW48>%S$hPU9xKT@&sR8R1wvqjKKz_f&Fm#x-=i zM@N3-9tzfkC4o9uWG>WqNw@pBwhVt-o$}?-G`!O)Qs_(kDDtg>U*iu~6@3%O@iz;RZxLw3qfv;I zKiW@{(%!uDEG2T)T%XO=a6>j%%Z=Gw9goQ765Nu_sXQ{9Yp&zbV1mbjDvt;2c_NtP z$zTId0aH8;Y~&eW6VC!i@Eow2+rSp?0Ga23BUuAS@d9u(F9OH#5^yXp1IO_Sa6G5M z3A_rN$ZNn!ybheq-QZ=s5uC!C!Ku6zoW|S1>AVA+!Mnhjd^tFav*2vr3(nzvU@Paq zHa-Bh^VMJnUklD<9h}Do*vS^CaS@!)0$jj-;6g5gi`WGh^FeS42jEhUz-8PIF6RMo z1z!)Y-wbx~t>7v?06X0fk z3f#iafLr-Fa2vk>Zs(W448H>I;McOJ=#As_-m&=dzXRnzE=2WILoM_@RH}0Q^aK5f zl|nz!nab0k-BcZWN1dT#IsW7%9nW-}pi?L4^L-sh;jJQ>uL&-hB}t9MSjn7YD*J|V WCh@!T^fR(n4L!nN=+}7vZ+`)JuU-lO diff --git a/build/classes/java/main/io/github/thetrouper/ultradupe/events/ChatEvent.class b/build/classes/java/main/io/github/thetrouper/ultradupe/events/ChatEvent.class deleted file mode 100644 index 6d12f79f2206b352799c0ba30e4716e5a5899e50..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 730 zcmb7COHbo45dNID1hS>DJeCCxh#L>77H1w3LLd$ipk36v(^!pZYFCbf)cseSKpgl1 z{3ygYMJ*B+_TZWEJimFozCFJHIL2m#0JRYHCK{MwSiBSWg6Bf__;qq8yN+SzNNMFx z7-~Daod~m-3lTN(15F054DTtIl?iv5bk>wZX?dADD^e1-hk7^eM6(Xw!6 z5UavTEiFU+%%qY4#7fJna*#-SE0UZvOR?#Syd$jg{|{x|WvXB}h^J+~)!`ux%xI66 zfl>1I|24<3{-@MV4P-|Zir}1TZJcn*XhO5~HCZ**%W9^UYDa%fX}j`5`Nmq4p|$;5 zu}#Yhz%Wm%uMww>6J4MmC(ejB_8!3=NC>b<)SH12KZ!QS4p_o+WnUppPz4{8B_Lg6 z{|VtV*k2Y9p-!jb6Z{%GeIy`vtdfpljcmTqZ{lB` H0XE(NiX*AA diff --git a/build/classes/java/main/io/github/thetrouper/ultradupe/server/util/FileUtils.class b/build/classes/java/main/io/github/thetrouper/ultradupe/server/util/FileUtils.class index c68bf3468fdd22b201ba3a982adc3abf16404cbc..ef8b362dc8636ede0b61acc74107f2977e6fe289 100644 GIT binary patch delta 41 vcmZqWXyw@Oor#fc@(-pcRt^S!2F}Uh%(=WgKo&297y}=JG=sq8i_9hf&d~@^ delta 41 vcmZqWXyw@Oor#fq@(-pcR$c~v2ENJR%(=XRK$Z}L7=ti_G=u2mi_9hf(M$+) diff --git a/build/classes/java/main/io/github/thetrouper/ultradupe/server/util/ServerUtils.class b/build/classes/java/main/io/github/thetrouper/ultradupe/server/util/ServerUtils.class index 6e7d06ceabce753a50ee800ffca8f7a4443a7f77..64188d2dee60c346855c10b8d648f5d0594f81ed 100644 GIT binary patch delta 3642 zcmb7Hd0bT275>gJ%$s@dGQgQ3%DSN2q;S2K-3WiL=gxx7&RJVOp}V%s!n?UJoY%(-tK z_T4)ds`f3=U;6m;SpX$;;Fvz&raPKCJ6hUW359a4El=*XB~XF%*>cn8TH~%}|GJ*m zn$BiFf$BXVvFlH3zj;kZ#?GN#B^qq1C6F-^mCff-V>=Qv6PW@46{Y|l65pj5+L zfijfKE_;blf%zIL1s0%6_S?rgD^Me_5R2qxd%ArwAyM`@6Biq(MV-J+s3O?g0*ksl zupwWKE*Dqidt$pI0?rz`K>b5{o$4aach(@Cf zMyEU02&{!q9*7=eG@)68U!Vo8@_cl$qfKA~HcG>hXKX@;hE9Pl+$>8SzLZS}2n69H zID(x@s(~hK7PtjlZR@koAQSl}lrTU@?CX=i7<-`C-RhBh5P$1gPeQs5$9mD5Cr}im-w9m8>+*F`?)beL|AWkn8O!5;61a>%%Z8XT`l~z?lQ`yYgt%+bs0((tb+j6I z8-LgE50yGs2&r<8Csn=|lkEN%{;lCZDj@F=QsiMRMb2<1k9v;~+tVKG_BHo(`6mQa zswj&-5cn@Xl-=%eHhe4(x-%URL}ZgMy0Z;CMQh{`q>)p;>t61(lP<_0A(zE2Oye>L zWxbgqxDcNUJqkBWNx8P8>{hQfjjfo&189!X4|N zR-M*Un?@VBvT36{m-ND@O@xGor3z~qV{J@tC@U{rTG2Q?ot)GupGeO4Ug3@1N=!gd z9hJxN2k-FMEoy9wpvAN#j_-+istM1b zcH#H|EKx(T<9W|gV4xSvY&dfDq5>Xe0v`=0w{KvTX^2BQMj``+7>#0NVm`7^g|Q~U zbOv3B5tK|R+={~tOlGLc6V;TeK+`C0$0F(@q-%InL&ezl8M#aGD*H&eE)!9``~r+K zSh*ez zYe`uETd#>&XEELZ^w@CC54x#h600qY2#8MUl)(r`v+___)kr3fgkX;0@Mc9S7?i*D z)8+S0VFgA1r-E!6Ygw?AK`Kue-rUpJ4)o*pp%zSs&S$tv!-UXM%As-G<4xqHUJhA= zF$PcOhKum9cvX{ow1Pk#h3$fFiJAk{` z|3mSXF&CFd;C136adz|LWKU;Ua6`7Jx%}{4CeMYUP=MX6a?(&I<@RGYhv9*UF!!=| zlmqAUyD~znVd_$%4c1XO#7U76zmc6ZnWk8})>!750eLX&rBG>wR8_I6+Cfz+|CQ4R zBT_WPLMtHVsv^#_K?|p{)@d}I`>K#CxdN3H@oe40gyVROP5s6M~2PBD`KQ*wJP3cR3L@fAgZ(e|T9 zuD%gm1#Qc|`eAN=CtAogr6+U8;pT(PMY2*>p zVuBnzVyfAF;LUtiTAP_N*)^PJ9xt2zmW@rA zOH`u?{W|1%98ybYWKGRr)W!b;wbDSU&OQY;Uq>umg{(`lo6GBYcL49(_zrr#pC?54 z*+n<0)*c!_|+g{28DqRT<>sb8h(&IID9{QtUBP&qyRwjFoxG zd|OcT9LyEiU0Yh3sF12h&s&SF1ne5W~+xb(^ji>Yq)ir)#{?1*19|CF1pWLcRxKy50hji U>X+7&%w>;o=08gNXg`uZ0bWu`9smFU delta 3803 zcma)83w)E+75|?k&6ni6O`nvuDYT`u(6rDNlp>`T3I$4Ao>E>`2sAChnARpBC=wOl z^95H$d;xpNR5k?}Hgz($v6piUHaDGazV>!c_fkQr=YIK`2H1YT<(J%?d+xpG{Lk~= z-SbbhxL!Uxa11~_?LXw2XGwEi6j%j8%A#Z%E zJY~&Jtt)SL!3DoS7rNy~wy}Bu8#P=h5X4n-T*`ENk3cW3mVuN?J&cHkO#+*7jog>w z^MtWg;978q?2#U&K}P`F1g^(+Szxd6+#qnHT6J{$BTFN`uC7ejutVTx+#)yF*Oc5Q za67gWQoDNkntbawEDHLz`uj2&;hk#J=Lj|O9Y?l&hV1g7eWX{%-Poq#9zv#JUeFin zu4<0>`+Vzyei!b;P7S*haw(g%Iq6|+%Y+>dDp|V;tK=!YP;Sc^C12Bu9PQX6@Gu^c zgIbOIF+8qeufRU+CzQy=&JyW!)VjZbFKYObz!Nw?C}VcE9B}yEPvR*JPb<$KBowL$ z$tGt9OZ=+9Gk8`$<@D-@@tlSu0$;;X`L@%`i~RyI49E=E*xJMRy1@*MK3FR6|V`ruJXs}3pe)k1pU5HCNywi{8r$1_`PfpP5K`d|9!%k@#V56D_g!PgiA*le-`)){wiZ)HvL_m z6}e;oK}a7C&(cU=Ak?knU--9%|EOI0kWe7^W)#Tw)O`2HIIZD~iqIznj~ujn%jnGTlYGMnX_3x#cqV za)*o31!YjCJmOwZm_1YyM$R;CS?}+S1bRX)%Ay=WBcCfyd&S{i=c4u0sgYk$7j-{( zW~74(Hgb8;m4a5ooo1)2Toj@nje5Ba(ABaq@A#-NA!qe6g>^P#?I>D3yQy*6+>U8Q z&CyW^1 zT;4hyl7;Iw`qxM5SlEL~*lt0KXmL7ma){52N%5%8#IG51PCKxEN?Xj7utxqP`!EG0Y*f zRmRXt*n?6gmJpXy`+^BEtWd1934CUC6kLXvTX10T^+PPvN(#>yICvb*xCs^30hE!1sG>wEMnYKFoKGxn5iu8|8 zxxzxZycjJpYzOogux2IWejdJOnNJ3gxD&lJmN^zG<&)e%&6CwENqutr(HX-A!T>_b zm_7>+TL|Y%nV2Mn+w743`7A~ucCi?54A)sO><5>jViK#JoD>rmmC-mxIG#_%Bda*& z%!$MFa)c`q3XY#X>q3vu=2qO4gx7($h_jnN4#W3xxN%$5+LXjvIhzuXLM`rK zl~d1mQbj-RS(&DYfW-M9!Pj8 zURrTgEv#yhp(=VoM5vy#E7?LbAPNVs4O@6AYi*zzyjK-cGuM$ygABIrA>!NfQ8xAS zNAYEq49O8%!cVZJ2{SqWGH50h^Cm?#8uja>Sv1>}`!sAug|@NWuMm#nkgc=6ATdc7 zo%=C~r_U3Hm@g!jkHzp!8<*qv2o+Bt#dh#!%iw{*e!U{Ao z-GbEyK-FIa8mNip7`C<1ToY*<&7)>UsQQZw)=&5*oO+riIn_mABHzJhR9~&}X8tIK zAFHo*o|VSiB6pDc{( zZ|66#u5_2WnM_$#W+|rRzlaai)_9EL9ka^-IdttTVfTR#^Nnd9_L;89^hVkAe_Ggd zR|Qia4VA_4t<=i?Z9@ikbk(3#M1agh|HzDItHD!QWHCHo1!b^4zOPMvTpEVyjtb5Z zzHNqcG8zXwBjHt5Hh<@(exDRsG;H< z*!(Clbxmens@*xgnV-fmXo1SxWIs<#^0SjxF<9kiejAwrwzIobQ5I*BwI9xYO5tye zoT^qR&5Gp*qHwfU9HkM53`M!{P?lL4`TT?ca(EockAi%7)YAZY90E_mSp~4s<MZ+y(#Kmq;*8DwA3_=_0q&2$Z2Yf#tGHj0|m yjS1>zliEzTnfvafyJ)AePtpVQ5ba?l`D}AFy!0@mdXisYk8lY*N{`b%* diff --git a/build/classes/java/main/io/github/thetrouper/ultradupe/server/util/Text.class b/build/classes/java/main/io/github/thetrouper/ultradupe/server/util/Text.class index 29081b6c77f386da930668f0fb761070b538edce..a2f2ddcded91f79565506656307d38255d50b4ba 100644 GIT binary patch delta 1309 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 delta 41049 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 bG&=5?_7z>MQxqwRh>RXRDs=dNqxJYd)A3^P diff --git a/build/resources/main/plugin.yml b/build/resources/main/plugin.yml index 954b540..89adb76 100644 --- a/build/resources/main/plugin.yml +++ b/build/resources/main/plugin.yml @@ -7,97 +7,36 @@ description: Detect Block and Ban players who attempt to grief your server. website: https://thetrouper.github.io/ softdepend: [ ProtocolLib ] permissions: - ultradupe.message: - description: Access to the direct messages + ultradupe.dupe: + description: Access to the dupe default: op - ultradupe.reply: - description: Reply commands - ultradupe.debug: - description: Permission to use debug commands + ultradupe.dupebans.edit: + description: edit the dupe ban list default: op - ultradupe.staff: - description: Receive anti-swear and anti-spam warnings + ultradupe.dupebans: + description: see the dupe ban list default: op - ultradupe.chat.antiswear.flags: - description: See antiSwear flags - default: op - ultradupe.chat.antiswear.bypass: - description: Bypass the antiSwear - default: op - ultradupe.chat.antiswear.edit: - description: Add a false positive to the config - default: op - ultradupe.chat.antispam.flags: - description: See antispam flags - default: op - ultradupe.chat.antispam.bypass: - description: Bypass the antispam - default: op - ultradupe.chat.*: - description: bypass all chat rules and see all flags - default: op - children: - ultradupe.chat.antiswear.flags: true - ultradupe.chat.antiswear.bypass: true - ultradupe.chat.antispam.flags: true - ultradupe.chat.antispam.bypass: true + commands: - ultradupetab: - description: trap tab completion command - usage: /ultradupetab you got trolled ultradupe: description: A command for testing. usage: /ultradupe permission: ultradupe.info permission-message: You do not have permission! - reop: - description: Allows trusted players to elevate their permissions - usage: /reop - socialspy: - permission: ultradupe.spy - usage: /socialspy - permission-message: You do not have permission to use this command! - description: View direct messages sent between players aliases: - - spy - - sspy - msg: - permission: ultradupe.message - usage: /msg [] - permission-message: You do not have permission to message through ultradupe! - description: Send messages directly to players + - dupe + - d + - ud + multiply: + description: A command for testing. + usage: /ultradupe + permission: ultradupe.info + permission-message: You do not have permission! aliases: - - message - - etell - - tell - - t - - ewhisper - - whisper - - w - - privatemessage - - pm + - mult - m - - directmessage - - dm - - ultradupemessage - - sm - - stell - - smsg - reply: - description: Reply to the last person messaging you - usage: /r [] - permission: ultradupe.reply - permission-message: You do not have permission to reply through ultradupe! - aliases: - - r - - er - - rply - - ereply - - sr - - sreply - - ultradupereply - ultradupecallback: - description: Callback for chat click events - usage: /ultradupecallback - permission: ultradupe.callbacks - permission-message: You have not been given permission to use UltraDupe Chat Callbacks! \ No newline at end of file + - um + dupebans: + description: dupe bans + usage: /dupebans [add|remove] + permission: ultradupe.dupebans \ No newline at end of file diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/Sentinel.class.uniqueId2 b/build/tmp/compileJava/compileTransaction/stash-dir/Sentinel.class.uniqueId2 deleted file mode 100644 index 19456ff243c6c67d25b92df1bcc45d913d10a8eb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12158 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�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 lp#Aq@`|l^@5zbmlPt! diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/ServerUtils.class.uniqueId1 b/build/tmp/compileJava/compileTransaction/stash-dir/ServerUtils.class.uniqueId1 deleted file mode 100644 index 313b0d3af033e916fcd85d00a3d52345be505d2f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9423 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 ly-D68Z`bFZk$1{_xd diff --git a/build/tmp/compileJava/previous-compilation-data.bin b/build/tmp/compileJava/previous-compilation-data.bin index 627c29dd157e3b8065c82b455a631709989b36e6..df8dba324a2e7613ef535d8924ed6fc03240e309 100644 GIT binary patch literal 46757 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 mO{k=7%2p=%;hlGe8!5$Dv z{yQRo<|2QS_a@(;&LW0==7Ook{=fj~lqWniVA7q%zT<4&*N<+*3UA6YQQz!2q78)1Pn zQBMx}HPL+Zx~tJ4z6%yD&scNh8Dq5Q+On9Ff)t$>x(!7B3k?(i3GW2fHU&97aaKxtW5^Db18g?XbZ-C*ov!Ns3Fm&4(2CbCO zWT^04-awN|!c1mNyY|3+)^lERJ45d+L+c%39H+<;v>Gy|GZ4}J)Mmy!%Zq!z$!IFQ z4u;u#hJGsY0l)()AK@4DkTJ`?Lm3Y|SC=kztZCUk&G%p@1OLQ;u<|o-#2s?aF2G$S z7duFZ8*B`vT|Q{v^t!D1n0&nD)y{5)*%yZ1R|da_q4$lU)ypu;r1!xS5?jKzK_Jr) zhGK0Ev`$B-=TR{Wo{?K2*Y?rW=#HE)9g;>n4J*nKdOy65>sp_?R=Mceyr}~W!FPt< zAVctuf}%sfcIcB3h0PtQ$24}k?-V#+YiI~ePKf!zz<(0HYM22@7|~1sm!gn^5v+7A z_dUG&edip?_CbNQ_w-*3Z4ajCI8*Qg@g)yaz}k21vYW26%{aQ^`JcVLGyC&BnF24S zxi^#V!_@Uu5 z9VvP}lG&7q5HfZ&VEV$m?WQ9VpQf(kb_HKeVj7)d8l7hH3mIrDJsI$TzJ?4NHO=kuywCCaDef==qV3yD?AN4%GM*{<2LCPh|>f>1nVtH2#Pg z0PJJ%*N?sSY^Lr7roly~Q4SN&W#X5Z zkR)GbLI(NI2!cd;1t{4EZ4vY;h(ls0wst2hDG%8A-x4fv`;M;Ema`L0e;K=cG#fGb z8q++V$uD3+zq=3+AgY)uXQ?$26VA{3zNP$3jeFPSHBFxm)SoC~8W%J5t~2=`=;#pb zCk^unJrR*Q>ifD@f0Mh89v_@VXWtKM%D((V zBYNNdIdR9pAF5e3OyeiOLmFBO5XDO9TVmre>q*r+caxmT-+7os-8HXc3hSBpQzqWP zgea{MG=1MPh1EW5h|u65OMO#izHs>!WDfU!uu1i-_-9Q0=S<@!CjNqnzhpu@mVz|H zl&4sVw!kli)hmK>qH2G8zc9-oc&cOboD)s67yXftNygTO?#2!pv}{Vd{!wFPOnyZx zQ|C34UqMCRz@||8BXSexHyaDeg2sAZ{@B=k?}{6zjR{4#c983TML2B!!D0<8N;)ZO zAnEfK8@GYCOx<@(yn_iRP9+%{)>!@LEmuEn|JAEE^5ExN(LXKTGtECR@sD6=z|Q2N#C}2SjKQdW#_w?y07Tnpri5wQiyNWUT)!sP2--Hm0c|Vwd&xf6sId+ zn8L42;~pmd4Ro5^3lagr$!yR*uoVTkS74nzlrAyrE$&~gua4Svs%nte-WwR(hhTW) zrLKYnRZm83vh$n#)u?5FY4V+EGRQO@V&XrT_)jK2%!IDZFVKg7`qLgPh)MoAo1lMl z9Bvg*x>vyLVj$g7T;h-1GJe3Cau<84In^DQH3S!Np zYC?Wkg?O`sJ}ka3OUI7|e|El0s%VZ;CYIY+6=Y*$(Rcp{dHJ=`1{h z1+jT1unZ6(!uLJTm#);Df8Dd)%g_C?WqjUwmTne{pUpBJre6Tup}H+qNu1HARP5G~ z%*QJqm$`1e-t2zL{e$C0mLP{EEJA{iIEb9*t0vU-ubI4LY^h=L*l1BM3n~zo006`o zYF~Zy?9`|IJp~=P@677fw3BCEW(nG8S6~6eID{0j;xlWpKnKO*&*ujyG|HlnS6PO6 zEYUR<{|y7p2c@%DxL%=R=f4!qUv=>H-q}t^Sca#+iV9dp8MH$98d`-|^}%IDYbq@D zOU4Xrb)a}2Orv2-*O|S&m$ZJ~<6R3!++UoAohD8!f_*$0I;2| z{<(pNrbZu}5ahaGo#ym=EVKJ8y$3AO7g{>AkMa;k=7}&_EW_qqE`B%U{r7^Or>J|a zU);0`L$EP>PixE-n-04_+R0%s{GUBy2_Cb|a;Y^yo5Wh`BzXcC_6i6RupplyMe(=~ znadwrQ!e+<{#?t_eMNzYGr{lt$jomRtC?Q6@^W1=3hG$GdY0%hIA8GA8a6Kjd00H#GVNjj8k;cq;9 zQqW~qMBW>gsEuXrPu2k2v2Pum&uV<49XMybPxzYMUF|IMw=DiUmLL)706d_(3-+7T zQZWD0!DpYoUHg(Npf$I=XX$=m86+Yffg%?egw3a5EAA&x9XPLJ>EPN!amzi3bh6BA z>7PJjBrrN%ei{FAz9~LqLS)UC$@tH{DnS2L(CL-ffL`U?<_A7}tT9@H zA5P0~{+RcLCHl(J?O_>wV;S|b@IDsAD`^x6OnyfsSkbw>1v%O)FJ_dT)cI5z*5A(( z46yjaG&G-#O&dNJ|60$n(!AWfKX0$f;X6y@M+SoTvtQmFFfaeRc4WSt8I&^zS%M*! zsEGUn*bH$jF*yRGTmg=AZia>2k9p=t4IH)FH%!1&`X?&zyb|q zgEp!!g8-gPN(At_BU4kp$9IrQtG6H4J({y5n5~;iI{^!!LJM9JJMEM!9!cWuuZT;N zE`6RZ4`Exh(L&jzU^%4Rpbu(qGW;~@)vAyqHI(9^f}ZT8_%Jq%_=Uq;BLB?u5ruB8 zh?0qZzwF~~F)pz~8s-*7uyy^Ipuux5tbCvSs;?%;UQ*ZGE?XVRhV%hE;StwqPnLf^ zxnxx16{mHfYm`xJ^JunS4BPS~8;@l}xdy_TIKUGM(g41X5>F5ZVIa&ABO6h5-gEB$YG5A6dROHhABN)%U88*bW@bh?--nC@Z&UFl*~3u zVe?a%=ou!QTb$O6O-K8y>qBNRn`WLD(a*5?=jfZUh>+f=e-!z&{@kA#852d;Ol6y= zv4v;Z_&GLY)#LT0l3oVBbCjk$zpWB&o#DeP< zc=4j-RY&qw-CVZzB{u&uTXcmjxXL!qV+*gb@qB>IEC6xClz>!@7J}9g7f@f$V-ntw zzcYQ+H=(ijgT(`jN-vI2D`J}zgT@g`cY{sxh71$!W?^OzZoJu$(vfUoYqK9SZ|f>y zYnQV5Wo*Gs_Ld^@ErRv#R*--Hu3FzQ(mC+Crr?3Uv3b(e+eUae6&v7fJPTwl_)be$^Xu6g^)r{7`SX5*EFnC}4Y){#~~AJvM%yKpDdC2Y|Ig;Xu$vJ@F{<@FY);*eIy& z@;(2ahit(kHW=SyU;Hc2FgX|cKyJMHF?xoOF7{+_6`vt0O^hIRQ=PPBgC%Xe8B zb2NNu-rc8cg9f&7E_F^LAO%GkthqGdgy?Pb>D8y)S4OuBpN4CC#Jpl#wz9Qbs6ph{z#}yy zu}9k-UsY|H-u1`WZC08$fBL*(3)|SHsYpA(wY8N=-u8`Umlh+PfZ$y#62U(-Uj zl%@^F--C?OyN_ z-S46>&tX| z=5D^6eOS|%qvglh)=&255G65t7_1B6K)L+)@RJHNJ~r<({_wbK(4ZUp&my-efgHmi zj!`hjVwfJvPNIAzV^Qdy!;ds;FNWt~zb@JY6`bG*V_6}97mT1lr3gwRkcZDMoIQSB zikb&Q^oK7EW~){JyP2P@U^Orc%`XIms^a})=U=0HCx z22g_>0gh;R8Q~-c;y0oUff?*K=$bg9Yf<3k8~8!yud-N<-gRmZ8N0+=+H72Q-~SPR z0X2Khuu~kzD3emi!UP{|vp?#_&`Mnvy4UtO>BV!5k8=`$Sin*O!?{ZATJetg4kI4+ z6j!Z=x2*oiOXO&`BS{>hjv>L`cAB&~eWVsINCvD>w_viVm?&zi$<_%uKm6#$hW$O4Ioek^{Hq*69>*+| zeht6?6o`TdFnq#O-q)y7?MpT@a&~%asuAS%vK_%jWt50bYjiiQw>Y)@_6hFne2%by z1C;`_5Of0CV7B1yfp*i_^RL=Jj1SnMwdz9MBvp#sxN~Hk5q*xY?K27sy6co(j`>YLlTOAkL8;!J^X#{|tw9-(|b+KcQoL2KrvDoTQX$f4l5hslD&h zZH{&-4cHN>O=n+?YnnCdotxQ}%A0|e9LqZ#i&Ufv1S(gFZ6(!kLClA%pdTVDT{5{b zI%Za)Q8Bys;9ZVkD)O9y6^1-jUDif>bBfmO-S+ie^F5B)4f=f`S^W+XFz!~t!vke& z&F|klY*}^bN^jHyj`2f|$s>+V8#GcLbD#v{Tmvc#Z+&1}XKHNtJUT9Ry6wJ;W((IH zJVVD?o;qlJowD~y#KHCBSQ;|g6OLXE73#}>@0MWe{EA-{rbwo4ZVX^v2Itz`Ej^*( zvaiWHFu(q`hgB^{tB#{R2qo8gkff6n^n=ww+~mjFJHk)yUr768Ip$LSs_$_ujQi?J z`Njg*@$FgCJN`1uvrjpA0|#&9Kwsk-aKKI}cCvpChNAi>lm)3ge`BvTQkk1c4Rkhn z>+9Ct#4-EDenD6#BsA)XGotri_@(P*IF!`^|adjZmxuTE+Zwxzk*ao%@GVEH zp7{<;f|xG{I>1MC5PVn2u+FES#{_)V{>vmND?Jyx>HnT%-bnXiW1qj>Sv>vGYPx?P z`3t(XSnC5QJpCgu^LO)*aFrc})}#NfK686itK;Uwi5Ct(WMUT-hrKR#=_iYt?tE`* z&mG^%G5*9c{LI0-I507pNrf57ZrB(?W^C6_)~=b`{tA3Qenkr7jdS)Fj^$U5Sq}%g zu$O69XfTcB64PaU)~lT!gP*R z-(QGoT(I#c$Jn0%?akFoHx=#mGTdBSeb1UQz2SHG842d#=cCZ>1N?rYJB z>&I_QeQOzdO1CGRYaYQhj^si|Gl~m!d2o(N#9Ix5IJy6tKdy%!kMe%B?$gP+H>j9% zP|9(WxaFqSPkJtoJ%4&2nk$Im8s@N00t5a@unAj)3QmFd-BD*lb{yX~Q)>NjlK%c! zE*{5)5ukY3K@J60z_k6y=JfQlW=l~YkI5%+mputwvqY{*64&$;SL-xaFPV#{aKZVV z0Sd(~Heh=&DwxUzEmgY0=oSPTX@ zOU39-=eR?%STRL>p!RE=+-M-{3^lBJiq}a z!mNprunNva-HFDwL&o35e?>*{46kub^SPo247UPc3)FIdR|n%Ux|n zX-gqjKZ0BYP-F@#$jH1mrY=3dWmoR|zuOetfLN!u4D62_ z?|*FQXw*0w9=F@%^-K)Ef?#1T{e#gS3GX6x#`nCuVDEC9yS0{F35w_fy?YqQhuKzZ z>|Dgk#Y-kiq^`Hd`sd6Td~kJ~vBpE4 z_qe9_xh4;|x(~VLkGT3Th*|i@gnHQlNe3h~To?+5l0cpNEZlnMri$(Q&qjy2?s~#C ztK}NkafSZmdVmj29fkZU5CCoF2I65zg$UoOzbP&wX}^2+sDkwVEoaBoH*$r~xVq1| zP(*4XoC5I{ty@0j1w09bI&5pr%L%I{vuqEB{3W2Q+V1m`3$^EF?myGO%iWg2+ZRi( zb$s`@rWd68QN-9<^^M-b<=>=j#@2q>_Ns-2rd2HYRex(;SIsM~u$3!(&Bfnvp|ny< zMcZJ%-y_=4VF|eFagRB&Ov!nxpSj<207R#ksid3U}9JAyUxF?%G_@_c?)RN z^xf~ccn23oFy8}~FgFVd=$r1Q*qrzIbJ(4gFK29OSoVP{_{cTyGIE>M=&Kye zZ0D)c*&FI~&qu2a3|A;T`?>f47yk|l3lk}WASpW+s8Iq5M=V#}Fe}2OGq2n|?5Nk3 zHpDgf!G%2TClD!B**{=oV+G>QlRIPiZTFX)$MbZz4ui@Q-oS$gxq&_LcOL*uWjxi` zCgiiIMEkIAtG(`o<2>AxhkNm$8o=}Bk%C}c)!Ib~qd&xnMYS!@7tB1%K9HR?alZ5p z$%m&Gzy(T4S${^>vLjBhpLxa4?PneGJuK6Pbr?Ob-+_%ARN$#A%i=u!_(5 zv56j)D_8xsL~wc3{ndUvqc3F0G=e-A%xmtwr~hlow0-MUiUxn4ppgdS)VIuP9A3w{ z+CM7}eY={z?N9(u5XjU10VxJl6yEOXYFZJv)F!gwNAz>s(+xp9vtXX#2_7E8gDMXc zD6UYe$Qb3s*WN>MGsm4`oE&;Qz+{B-@GyeDa2~XdoE>FASl1u=hiJi7?`pb7Ma1+x zoE*Ue`;6rMKl=p5m8Oa&O^J1>(X^T++}iv1Kok#;=7C&3u>nHAVeyiOsCbR*_}-go z=XVF^A=uB1q09uW53$-))*6m=kqyW2j85|S$s9C^g2m7C+r7%S@$rW%k)0zy$)3mZ zz)<3V-@ltQZp%PB94*iIl2=+XO2)sRBtio|HnOmeV_(AZT}SL6&xu;&WzLnw^R^`L zj1zfy68uL_fnXh>1P&uxr+MJ2h%2bQE>{)YE4jNdg&dh&c>wiVpUe}b@c3tVx~V)- z8c%qZXXeKwUT*89K@$}YfLp)hqeQL?sAK%MWUsxrZu2=Fo=)&91JH9)662)cRtVks zTK}}^M!sQa>)gAWShFnGg)y=M^-scoQg9p{HZCQo#p$8V>i5M1iio!ZZ_ z(qtPX9cnu0I7XSpgFly$%>$nUsbcY#n(8Q?@t4!Lyx-|XBwW7017o?!`?qKX>crJm~Ga`~GD>2bO6~Eai)+p;h(E7g8OFZ2#w96nsH#kn9 zbPI+n!(vLl3Tc(~QN9z(Hds7a=zWE!e;>IDT0s199c=b+b&C~=Be@o&c-R-hY{=t@ zUeRHy=7Bw{7hU)8MA4dVmsKu*yt~G;$mih&JiL$xuecWRU^+zoq6r-G&@wCrCdrA{ zSc&>Q%*c${dTKURx1TvaYJ-E$V!i7;^BX+lWUe}BiJ6nStf!qeb=|QOl-A8#SC{ZC zN_l2wJp3jPzs1AL3HZDU5Gql^Q91+k+k{w&>tY^O*>&lI%mB>;|Ncu8GC-{=rIbInEsZP zR9}i7f^ve1kPv<^Q@PG%e zZ3dAa0zUBCvz_D-56%ptm;j8czvjYWP=~G^N&9U)s74Gvev`NFYr*|dEvpV>#gVbD0@;TL=@yF*onG5+ z-@q9D!ZZHL)BDVM%cSyt7}jvxlesjmPih8J?$ftLH2lovaru zX*El}GrXa~X{7ByJqxS&`1nrzz5MRVQ1^iwgYzBwc*1sGKkyp{e<0Gr2J(!y?&`eW zqTJ4DGC4AAFhEH1`@fPTyrgGMUh|lxP60;(&r;=Yh+yjNP z@;C~b2KlK3>YlLd&Tjv(nDb>zj=eGMJDMZN>0w~gk$#OETAHo;rIEJtwUS~yQG-U- zcLeKu`PlqxapEZx)UnTVkuqoUm>{Y_eAXE^H!b_6pnQ&qjq;^bPo$^jYUsYQF zN5MFw6DV}ML(t#dZkS%i>YhEjI$>wom4*BV)6Q|KriY?1auCMC%!AfF@m@VJA>vTx zQL7bKE`_1G;ppZ}dL7aOZ~b_Eyw$f;m%NnnL)LadzbgXO4x>V%7(F*^#$O%0hfCVR z-n}*0;24SOM4`fH)G!9+pG3{0U{VjwVaL*8E^_F6nM;bT@1uV4xB7)Y{Y9~;ZYlzU zn?lb-&8TMIJe{6h5fTpwE2O_Cp-c}(d3@L~dQZC^nwL0k$;$*(^oEg6 z!#1DEmW?r3_|>)Ap-%6!nfn(qG$FUl3z=c99ryREgt<-@;}cPnB-G>uIgtLCi%lMP zu5?||YP`>K%Od}e6Zof4!D-Yy8O2jj2q(_Kj?SP5&Qd2d6@|c8eF^aiukJ-+HNQQNnq{Hp*{E3y^#TeVHusAt9Ar>vgdsy8WAE@|+eFsS@@>(Ji&qZjpvJkV z=n~3*L`5&7&}ov&ufS?zju&$tTX1(~^gN52_{&nK8F~f2poQDZj%{9B)*P3-^1&DB zlJKi21SfeY;VXzYs3D5SI!$ZMZ38ZfS59PbsOY{`*N7$gpoqUGj^McV9W%v+8Dv$J zfEPYUUH`_bAKH%_HO`d@&oqqKcVDY_QO1@6;-SL-2iF!$ZqqA3&I;;Q+bnNuc$NC1 z2-PV@wXdTlH&Cq-RCt?SN-S4TlEMt(e^cYhyzj3s@Oz%<$J!=t zTKHUlo3Gy9hr$~}Gg?R^-xuFPwc3$#z!g$+c>4>cP<21t%C6BcuWY!k+Z4!3m{x&` zZlnAH;?JO9k!NPe%BR~LeA0VyifwSwq)Jo}z=bK=xv$ZO?yY_!?mgR;kd;yS><)@o z5gwx&B{EcK>4PZ-t=Ja*_|?m6>22eF%vXsL@1oG$_&>_t1FEW{YZyMa_jBeHdu)+t zj0TOy7CVR)6$Lf67<-AmwUd+yad@AH1| zTK~#gEN1SUnLTr+>^}SC;Ozq!vOtVj*LlL$w6&bw`F_U^o%22eb4i0da$%tS5v&o& z8NqTCGH&qR+eiP%T5maE{laGdUmlYN`J{FMsa;5F7m=V-c>?c&?JZ!r*;fo}x*w=9 zSZn>|h`iO;yd(O4`i0ECNh@;~6_ntUTne4<*0`m-y_vd2QL($!H@~_sZ51JTO0IoI z8a*dh6p0%pCW11UXl(D*L{*75+p=;~$-oYFrT6gus(wi?NWF4W?cl^uJ8ac}$pp(D$`+ts>`F zliD?42;#X5;l4G>zIME3)|J_(PlQaJlPI)VQcD`tk%sl8et`Hj%n3|u0|~KKaEvL4 zsf78HATbhp9{!-6uw(S3tS6$uE5F;;Nb0>ISLc&Wa4dH2ehdFkA4W?{&l%R<&pYYb zNQ}u}c(t^d)M??v=CE2BqwRC~j8o_wiz_egy*c)d)J>DT#~WGWg>)4C)DgXK=FwG! zC;bm@7+rlRG+2owMRO9`+SBxB{4y-()17pu7E-5`)M}Gs^}c+Wx4+++^t{g3W8L~K zY2MIA8nu(Fi^PdMIP@0&AFlnH*!ky_`I&oKOooU%NSzNPm=!xQLWA&mFiBl7-b1I+ z;SimmxF_z0YiAGN=$H7oyPI6qL(cEvUljJjDxcVSVkb)A1+K6A_NQmp!Z&jR?S@5t zBn>{1MxROTJ`%)NV+zDqV0}p(6%ta|5w`-f(t8P;kmWXdV=OnsoVm+K!QU6y)CDpp z-?tu$8FkFF@&YygBBhnAfUBY?bL#k&J|C88P1K33qx#O8no_!#C?hjU$DCSmnF8DH z6^bwi1t`8vfUn=9iI#Jh{K;0K#Av$-GbTMBVnMERY4+_2-xs8xUU@KF1>?p>#wJ(_1vu6*~g@ky=~wbn-FEJH(_ z(_Fa?bN?7Nn9sMla;(>yTJcm27W4fb_x^fyV&N}gBipv4bCWA(guikBr z6!^s+25%<3&0y`$9;keGp6QJoc;ktYE_1!l3A_x1%WKDMe!lFxW69GJzuV$`jnd8K zfetJ%dR1eI>5BRDpZwsrMKNNeTwZe`BHo;L5uq#L6*-nsDJmD0H{fsMH}A%4b< zd-_+#ZuI{xTyMu#H)@4DW$;;CA$cW1gN(kN7@?E%wb9l{F<%n z1|}^CrNGM|i~@NF?3EDm33c7*D6-E=UJ@<%b71r0qZ7j^od`hN0)9To|up|Jil@V&QaAAVYNU zt5wMU@}cNAzx5Al{p~?TT(Qrhczmi7pno-~owN(RFzURu@WQrb9veee?RxR9JP}t& z`lrGUwAO1*O+WX2Gd~ucderaytKs)4on%Vu4u#QGj^X~KJ@OZx)8;4qeb~VNMhXSC zw^V$vHHd%QnLlQn-<}c@aOYfS@7i}}X_R(41!OJ*;O{te0u<<&(A8|y3;NC}Ho`GS z+*bd(DL<1kikHEev0LT#wqfeDtSUove4b7qFny?``Wx?5fj>90P4M8g%g1F8s0Fza zI2-qNxVvObzA@JF=Xobyx;^+Si_&rBr3z8bgdDRUw>~~#FzNEx`iQ^hKBRQAsrfmS zb}j`9_dFQJHch-f@~RBp$EU7aZ{e6(!9x=)Lf)S%81snIehjBcoDUUobPG7kFkau% zALFSfAFqBidw=vmdiFO3lujX~RYVy+p>&I>6(!WlQp)ftwe+48FdLvYjsK3#Ead}N z8!B_(_Fq2qZ8&ISEk%M;H>aO_IZ0pV%r`2Vtn{VN@Z3NDI`@-zq5bvWJD#3!ZugD# z<@+wW{`$NOS9tMHg&pWux1|l6f~+p@T;KM*f93p1<&@4#N~;2vpVFf%-XS*!O?V)S8QIYP@bcfsjjR(jPzzjnjes20x5w0y;^sx+aSIR8@AX_VhY6i7 z)V`r~!xc?{Ob-D`Q)?0QMumM7GOfyS#14m;^%DoLc}p#E1+^;r=G*JbzVU6^_41Hy z+Rr7^CkDxow0O@Z<%N%r&)<77h`)*}Z>EgiQNX&q2efc-?}4rRTY$2GZ{bmt{#4L< zcJv2(YF9$f?(`oHwoJG~A17%nt zED>}9EC|TEeGf3p7M*Xm3_Q9w*ywl!;7u9$F48!-l z&l%7h#SispT=1sD))pDqk#-1NTD~az&?o1y_XB2}l2~rE(+_q|J!Owz7dyb%HSGQ_ z#BMn8WZ~P=##MJ81m|6=33Ehnbq~1Ym5~*0Yo?waO#aaH_qjh(7FNbeb)9CW% zj&BO<7u<;cW1kIk>pEKEgmiD9l{eASV(IVBh`6|IA8DdQLH9%V+U-#V|2*wP#x;xV zBp2MX>pwm3K;P#J3UYNm5Bx2T|L~zr?Lli9%J94T!;cr%?K_dXWSO|CD#Q&fysZE? z*=(@QpiKT_bAXBlmfu&))mn;unwjyBpgcu%A5;C>d_S`)d^S zAk4Uw4>~i%UhB&2w*~uE`2k(G(E>*-wdT6ENcRpK>6gK`v%eBPb5yPbEo>gJVd>Gw zua{nn9CElK^OGmi_d=`dc-{!uiQQmlfqS$&K$>5|#JUGHuZi(WIkmz#xkf)sj@JGC z-ucg2J3DvRzA#yH)jZD!E%rr5en`h3X$K(fI|vY7AS~R$ZO2XdWDo+g&B3il&zJ~+ z>|W!=Y~9wfF2hA72ai2iKCpUFUHG@@sUno{cvfNT zcOUm0+z~rP9{Wx!6X`!dhFM7aA%bhgU=h!T9e5nP48gbyW7un!F8K6x=#rSA+@726 zBL?RnLq9QGB^_nd*Cro!M)fg%)w*Vr7m{4GFb`=zLcr#L$n+TA5Qp*xk_5`>l;Pa9 z!uRbR(mgwOFM2g9Bp(?TAiV%_AxstyTZbtZfE?kRJb&G*=|lQEo}cLWq4ZP{n(xJX z0*iclFL<6Q;)bOZd6u6EyP&lyEI+Rp=~{|fl&HC6>~daTg+cSE{TK5bGh9m$5ROv7 z6g$s=j=JB zo2w7_JTr9B$zBTi$LKv?cJ=#)neEbR@w~CWR-pN>5ZH_^iYsAa)z>A#v0{8^<6r9+ zo^C&*y1i{h(awk}G~bS_hG8E)y7dg2bpP(Uxs&}I25$as(zA(4Ej0*k=++{_^2-ff z?A&1F(fiOU!Q0I9lWD2UscCK<9486zB^&iNO^X=4?EG>6UthMqecf#@Mo)hV(|fd( zw=wwGI&zk2?!o{8y3si@(lW>8gn?YRb8Y_bPRVj~pn#aR!E^S?!I{+BpwT0~t4BJo zkyg3-vV(Mlyz8B5$}<0Xp4IOya;7&Rqef)(1}$k;Vgn*{d+JUd{||AMU2tef!Tdix zUNs@`Tz`vq>0zwYN5f0!o6M?K9KO|a`OZw@+q`C^{SJXQ-)j-f|DyY|BoqGFeEs{O zF?H$Ztk-7q(dl1ZQ2geUeX_LycZcvhw!KH%EpU7UtuPB;Zr5x0or|0Goj;}RbRa+5 z1e(pdmf@$sXwHn*qwnq8k#+|H%gYD6?bP-&vvmV>P2A5cubEM(ySDk>z)rNh3mJ5S z?OO~Nm;w0=c{$qoYU-2ajmyW5p0H`ks4hNQ?pU_dF7qp_u9%M5ME;C-MMaH|Eop5l8rH`e z27&Lj>;fx0tnA1i>mR-`c=jUlt;sI^H`}{y=p|MPa1&i{&UvA0_3+vBlYNOH?kkR6 zrFCuT1ztQmnz(poCmg+k5vxomD^AWcJU*@eL7UM&UIIiNgEZW`Xt+cqX?i#IqorV>~s&Jb%!G@D&@Pm!o zW;mXl5dVi0z1o#`gT{AOuoL3!KSg((%4LfePZ}N|D0~oglh$^|O+-XWY zFg5z{-$`|+uPj`B3%Sx@O?9I|8~=~D11hh%J9p8>TMys*|2ABQ-Jj!5FVEqF@8)l8 z*_ivoc6R57HT2swG8bwggq4v7w`t%BJn@`j{Ur7= zu-q~|WXzg3mj=8%Ke>PL)InY}U`cP7HaKL)R}IEGz2YSdIyp?`e98DPA9}SfZQw_1 zMJq@O_(7}mA$yLyik>7MIkdpfFeTcbhA7d=QuNn^Utj-a)U_hQ`OoN;yK`d#Xu~_S zZlql8r}Xmg)@2O`PH*$9v&+z`ni&{KgY*&vLpr*1r$$eGA#UE%q>rA{Ew0Soa^(J^ z@L+oNUE1&-trbG+h0=y$wC+nX92N;Xm4W|21WYHkI02U!LFY)(9d>By*pSTRocfqK zjUhjVM$!gVWE8G{Xg6H`K88-5_{(wO>ar-;ye;#Wxp>7!)4CVX6)CFyW@F%~&w7?K z_E*jMldXAUDMi(dReKkGp4{?|e?R_*h$mDGz3{y-7GMGMs^->rR7uQ-{;+PGSBAp- z=0*2k<7n-88hjBGX!VV2EJvxC0iOw#yT$~bE-LFNS6Pj#j83E%Ceem@qWiF0aM;Kl z;2&%AZDq@|4EsqALm$of)wx2POdF=qdU@h#0fcAS?AO2L@T#5;yOhYaQ&#QxE0xws zqqTZun46e>%Ahf4d%u#`bYgtCQKv&pq+o^jz@0O)n4Fcq(dL?Ddj{jI(}s z9^#_`J2r93gDX!xWZ@?&SG%R@JYJnm8|Baoa%qD+THjjaCa?uX1fZMz?D3&{-o0$S zT4%N=$93%SN3`~18d(2)SgdVeA_7QuX_=AUcYfYI(&N;kU&f8>E}#v&WMGakEgWI& zS>~K}#yrw(P10MhLVEcpGJ=QZP7fKm>Tm12rPXGt0X`GA711l7(Cdn&#WcQP^+yRn z2HV_G)Olu~&aUBWOqt{QZ+mAPdR$7cyU%+HQvjEZ;Bm#YtGaGJ=a?b+TN;GFMkhU^ z4WH9mHhiqX_AOr2&7-MD%QD?)gRa=dGFtZqts5dN|FYY_h>CSqkDhatnKp0gjJK5wp9OEJ{ zz21Dw(!kCB%Sw#KOX}#=p;Unk{nShrYR!M6@?W9xpL%PK~gg7&Bx8K3o*(~YzsY1$7>d?nPGQnFRS8;Ov`j7eJl=4A)t9a**y`%NJ zc)+*se%|rj;MtW%X%{XOSsaO*@}Aajp_kp4r^>;L#cqwm@x@ce%|7oHM(Ppvf49;L z+GyQ&S}Os3u(2}hdgynSmzVVGD%teQrs%W1Gdci?fa3)kp)~$=qi(+ejw}2!EBby~ z`+;8DN$YmeTD3}2yNpERCiF60vp*fztr%fEV{@@nH@&2__o8aN=3DKsZ#Iir zk!j2rnlQQ-810J;+{^~kwJCgC=u3!39KILj3~oEw^VIUA@UNxk_Ext1a*2VP|MwNB zW=uX{K``-IkuKO2WVYDq6AUP&{IB-+fJ4OF|r}FO<{=u8R41&EWY}3CsSt_Q0B%Z^P*4p*;Cj1{4h2 z!7&P%jsGCd@2s4{Q)N1N53AR;WtQLN0~fRHuh3z$Pn|5Qvi4iSoL%~h9kalmSssfb zc(AlRHwWu)Ox zl0Ox@-7Fd~b(FgcW9Z5lxG~!9@W=CDAa2ajLu#)GP|A_FU_Ji%2?*%&(0;E(;b(0g zb?;hr)qYd@ZN|`(0k_UjWgkL=w)xyQxc=6+BDCk-`N>;<@nUqnnZ-Vgo-d>C$7uUA z+5rs2D!ao#+(wXk;DZdHx{MU#FEoIv<>|nrv8%RVLk==v7HAXq0lny*2n<>w9;!bEQMkkNxj4Mj;G@ zn<&8?bBMfqVZx#hyJj8pJu_;QYi1~;VQuefPCpLLI$lN8&lT#o*5`qy_2(gJa;8Z8?7`; zKl77LX-9IwoK5dLVi?0%MmvrH(NIOk!%G7@4>vxKBCmcAP38WP>32+92c8&r^GO1u zU&>2_6^Gzo@Ob6D^TmrcNPA{B%vV?xr5h$O+V}CiB?E|)V0#1G3JiGEB>A_=mxHp$ zTyHq&nm0Kvg)y?k#OS(W_-!kLvlk}Jw_n~=`NP&!Mmr5}d@p<|I_CP{S~zR$n!7ay z32ThAzDZ}`a#jWdmPhsFEVQ66@bVVr>HZJzIBc|VvfY`Rw=JC+!o%?ej-2>lcKy|Uwo%u%^ci+s?E{|L)`74(J z!4dj@evDg|$qlY)KlF=k@_y4l@)(0`8czS|?71^GGqS9iFKeF`CHdca#ArWeFa?FK z)t7~#?ZTgSWzE>L+Qz@hKXsl~!EXhOb|C|L2x}T1ZusSw;f#aX+>2BB=MG=I_pyjs z{e;miX0%Hfh<8%TV2%r4mVpbQW_-Aq;LC-%l~PryZdb!+9V8Ejpa{Vb6VsVNEs6{98(ICE8VFIeGkfxorl&?|96U{VBDKQ5~ao zgCt>tOgu2`R%R_@+jM0eLddtAI8F-bF_uftO#__c0 z{*`AwZTyrW&5ZUtyu4~R${lTs_go??&Q=WXczoF-xcxn2*uv{ol?!_QR}~s~*Ojo$$ksPG)5nqhHIb z6nDewsKY-_-;vb}{!L564xO62`b5RK9%fN5qti|&OFuH$zPbY)w;KP}afQyfg|&yi zIg?zn^%Db5Suiz*Pn$yuN>rf&baH~P7A)zG6C z*yR^l15;M}5(}CoCo#m%G-Dz5+-X!hXMgC;H}~J3AL%zg^^)jtz6|Bid8cn@E2EWb z($jYg@m_4s8eV2sUtt&JiQ|;&n2Bj=(fbd6O8mR)vyQwpcyzZTL^NDaRW<2N{L%T! zLWc~8p$ZGupilNfiHN%!-@m?bZrSn2adCzPJHLO4(3bM;&j-J}q>?v$`wK_r&9h{+ ztys|KS+h9YJAAiFjnsx{+Z5ihslIB`I=5@m#PnJlR_`hcf$(ivKtU(L3?3~&=Y1or z9_R&WnWtS38YeyEVaKlX5!$m54+Boi6ypW{7H@K_G`oRwaPI)n+Baj(ABUQarLOiRWEWap>AcB8SUgxF`;)%S2IDVG@#>B- zw%#{+jxQgD4Jp3=Cpou$>X`dCnnN=OJF^hD5ULjIe-g<}YD!itzp*K|ao0*0cCjm~ z=f>*011#nXO+?v;&K6hxJjzXyr`tY#_2%8S6bj$jHuG?h`>hZAM?~x|_1@~i>fU0F zZnHX`?20%|{Cea*_>aVVJ-?3ax-GMvN{#k=v4-C4f+F!PA<*d64`$}jyM>c?zL`3o zU)?#^hc)zNwfxxS{;XlAJOEGJZeYjV_~aefKaf|;k!W9m%h0;*->-@9XJNMH=+bk6 zEI2rT(G&b#qz}s~5}~n2YYhbU{QySb}>1=JfWR>bPBKX1h(w zQe-t|z>9sE0rT|3Ls*?qRx3b#uRYN%?AD8fwcC6;Pe!i#JS(;t9PB4q)-Ks}!0?hy z-Ng%=K4pcm`r)ij1iL7bU7aBWn;NinCd&rtW?U*A;_b8ZoA{#jL=>ynfIZ~8%c^6V z-wmlh!k$0uUSUD{@Q_01lx0z`=)>U5YJ)*z1WFOO1yBBI*Ypla__a@^qj7l~O*4Buq3OL`UW#i+-j zUzp)(=I?2j1MgFSDK9=&5+V&B<>TMBf>&;Of# zwfD}RO^LJ&Gr9gtE~}l#0&k*bt0k|VuRQO0Y1Yi&z5beNy+-ng)lI;v;B&7wMQ`8A zElSyaW!KN+4{UhM8s)R_Ihq1Ew4exql^B*f_sMm%+hpILcHXDIIoeUk8WpidPgw0@ z7WAAYfFs~?lR7G>JHL`aTe}k@q<-TrcJ@wS&h;Pru9RK-lwJLd)vXbIxtzC1akzMC z&-n2JmyVq=hyUc$b5_?{PzFn@zM6t1=P7qDG+QLxn<-oWn?=l7bn6AXu$*0(Cwj?3 zP><7U9mQ-3gn|VXe)H^~qvmZdPICEu$j8IqUv;Zt7uK@yv4Yq9Iso)V zxiSen$3__r`Do>Qqa?w4iPU3RJ*)Sc)vM!O#BP54_$%@0`}cJHpp52zbM{JVU{`;Z zH?k0X9NUgG(eV*e!oRv|?S8qZ=yasp+;hMCvB>$sFa5Tv+6U@+jl5M-8Co90Ljj@( zQ~TTW`#ofJ+M`RcZ#>_yYnxcDw=7%|X~qk3XgB#zec1P6FNTf!%w+u$hSU3}J|Vw7 zv;Ob*?7~V4^fzmM8Gj{V78&-WP-j4y<*1SbFzPMHjlMnq>ZsntC})0OOK}UU+sZD_ zC);2~x9;A%y&aYjd$?h+HzpNXFCWwY;+YEDl>Cy;$PRYN2Uf3>HHuNZ6Gww%Fgp8J z%jf-33$}S~8xq+$dUS3VtKE$W2G&I`9sNezg;SQ?&o362O9M-LSg_3X!epu~bNE{> zj3Dcm`R4KWf3IKX)D%!*{E^l91bB(Y8l;Tab)$sYq1&4p^?GjRDc@ToG%@`|(1S_q zuPc4GI-=W0w|{2g3kcAWVBF8O#ELGb#bqb1q5hHuls>?2rmpQ7 z+r1w@8*}<5+~O{fd*BjB==2FQJWm!L4X!$)dn{pT=LHV-x(U84IAvn%T+yfsmjSOG z3+O!;IbBmu>k_AD#w|0K-b0|%1I3({%;9`cLaNCq-&x;Sp4^gR&goy~)?VQZEx5&B zQKZYrvP;jycTX90Exe!W`TG5q9E54N;$V6q04`RO8&(92{W$oi;>+V=n%lk?=UQ`X zY&e5@!Bq|iZw9?KTofpo*t~Gcw3`lABf`?|Bpb1|oZ)2}?p87{nNJqXT5WRvIqAey z>(O@HY6pcqG{k|FkD_U(&NnCO^|xF;Z{3LAF%QQ(aP$4ejvT&%s&N=UhB`xMtPJ@u zeVWOFthjLpr{!GZ^saO8VIC(AJ0-%0|F-Tr9;QO&ROgwCI*uPr{_^%2HEs978=US< zZb^XH8D2!aO}6jsP#~u%YZe}PXpre_Co-Cy_%O?bTjs?pMd-lu<^IEl%SQEdzE54% zX8)-}h1T>g^prLkUplg2q)}|zsM}E@lwJPE{L*LP7VpwN_Pmm(H@I>JZk)jd2rTT* z;d^5^0w?;c4H7Incei#(!V;;IwaXpaHxMRd($^v{kJepKJ2SzisQ9hP&(g zwhoJLjr8QSy*SV|l(4W*J{|b++Vcf;U-0@jzyBFCHOZTU@VY+G928(c5|BxkcFEi& zYnGRb%QAG`U5tG>*sy*u9hwabs;>Lr{+@5^N-b_5o;_jsw)}qnoIxiq0A}Lo-a~l7 zkaDwmO_RKL&e6>SD%O8^D!IcM6=PqT!zEkwuKbo*I5>Q?nO&-KXdnj%IbVu;-s*WT zOBEIW6*8W!=#s<+am(XbGlY&_F$xh+YTKn1zg*ktO7*#5PUkMCbB|jVs3=A1*awc= zdmpNtUVR$B`ApZz?;kx0;UG?3C<+&{(E5kUwa1NZZ zqXpoWJukp~3^#t#x8=>@nErBezqSMzqEAH#vP^(LAn!tBDp2;tTTs5 z=3`b~_C4+199vH}7vgvn2X}vNG3Y$6tyFyCkG+$={b)2|Lhy=c&cH+nu8Px^Eq-2U z@xXomd(OIb^nP}~33K9; zV}kD|aN3D@k&|F4;X{TX+QMQJ5B49+E}Xk;b9>)W#?V20p9AAdGMs?DyLRo}4)Nj6 zpy6K8_bk5I8yU50{Z8S@;oqllOHw(55aIF|3F>|}Yuhs3W}CS=-?duo8?-r%TVA6A zEz&KQS*z{S28k~0{yisrtebB-H$Q{ZDw1KJOL4ua;Q2t-&z>>u>+fFhXC?U$oIEZc9zyxsU^u~{pj|pybs|LL(CVuZX^dV;uCp%2JDbza;UG#wE{892slQjTSM9!~Ty-RT_M{Hw!Vw*^?ALBt zdEDwpoZ({*JX4dUo!BTcV$kv-zGa+paqHfWq;IHi@;Ol9762TL1IX#gu(Ox``rD>& z*PQMay8Pyxb@KCrQXZ=Eu2W`D_xLT2DyvU8*OyqxEh*yGC5fyd204mf-zh4(I$`3g zeFHYM2K^HCgj-R}t*C+9(ZG^iDQ&5J??3H=>B*6KX->}#N;qH_4ve zXX>XThBf7-oc2@rQ#|9o#HiFnr-7Oi3KF`8gw}cde*fCcT*c2>&pE>~Zh0)@#*b&v z&Vk>jhy8v}Al}JVnRCys$&hz3 zwK6q;eZfDr^{4AUrQ}s(L{jq)B7rMR8}5zSnZGG}v+YmTqrDM=ZWvacSVu%*i>)d7v=7XexFD8 z>ol4ChBIv97Qf}RdX*5}2~@{3wZquv^rJh>Mf{OfODcvIQRt}I7}?WtKT%r0>R5~v zE;(z8ke*k&PHZ8ObnQ^7OLa%8Wiz+>9k=j3r`5vgn1H^HEE2WivBSq&)CQ)KlZXGx zU-xR(Hc7B~&b<|L+Bk@R-44_LCGa&SZD^BIf4#7Ex7M6~?Tg9|c6M+Jp2|San(%o4 zzKg9x=Z(sIF?eJ3+RP7}UMIJr1wKmA1xNEVbfGc0WkoLBfA_ETmGdU;G&$~^x2Bsj zvcjPP&P@mz@(uapL7&)_KQ%6%y0wQ}nIPQflbABl;UL5@d6>xzekOxe`) z%0`M(Pg72@23qkFr;UmY>mNUF6$SC(>$`XPL<9+6G%i=(rV}Y53i4!))Rit{JZKN} zlJVtw*i!y8ei>ztu8CX_(FtGlmGrUo>2^a(D4)z15gD8@)mvo zO~gStb&bAB`>I}wJULrI0+%6oX78!m(N&d+>N9(VA(EjE-$t225~+ARby6Y~N_YW$ zA{|mu46j*GB`T1(@Q6(KEeKH9@E!Q@;c6c7W0}fZQpH;FV%v3jPf}%8n@_BKBF8&WfbuYTCp|KawTpVK}L}ts7&yZ z!L_=Dc;4+*WfY$E3?=ax`WL=L#%whA0ud#6T%J@QO_cG8kYnl(Dvf|oB5RJqi2r=7 zX2clvcTmTSfOxheuxs(|ojaQF%Uw|s?;z#3@GS*IJI*!8V3I%JXI=2IQ~{Kzr`iH? zB6EJFs1AkmN+rZo=o;cR5-)IS3Qi&LoY%r9UXer`gcOA6=Re}FbB;K)Ys44`T&S)7 zCa(7X_{@>E=HkYG4XFx%i6dznex|~O=fF3ETZ4E2wY*3kapRw%)Iu#m3Ykp4VF-6T ztTcI-Dp(aG$Q2N`@GxK(`QbD`K!o5{E&MP6(TE2crXZRjRTRi0xFmThZAlg>Zi&OG z7JdWW$Ph75TXI7cL)Oq3Vmt*9GcbfEexZWM#ZS9b<;q}H1Q{bxpOkk1jen6$lMum5 zfDaSWg8ONc6K#+RyrfT5g<|3nhJkk|Q3^R8yjKT2l{^wuAaj0|$cmrEJdqLIP$o1} zbn!p%%|ygU322N-> z?z0{hL9|S0!D!Ah-dk^_n)BSDg!M8X3`qDQsorUhg)^Str{T_^}ja*e7Rm*^OZ(z z{Gl=6Y;pSYzW>??R`_La!qA0~S_z38ICT~ho{$RMsB+0emI%ao8-6To6e1Y%ntd9D zYr=9^<7sM^H7SUAT#_gx(sAm82pjw)nz0hY$L65~w$@eLn=M5=gc{06tQYGkieqbq zALtrIk)(&aAx!6PCY|bisy)8$O)VUF1%_v@dB5s;W=S=ZYW(wR6`lBR!B7BG=?U+A(dl9 z+{0p|;(;&p3+--$t z{9=^C5Dt(7grh<5Z>1JgKG&hNSK*BSXvP)lD@=rCa1EtMR;1_=R0~`9&13_7CxN(z zTjDWkM)Z>DhVT>iDhCaMa)PJ4S{~sB5QG+rAlV(6HA#3tDIB5<0pamwM4nJ0N>p5< zzz;-}rX)f{gx~+QRn(uL`>(y>k732gV)(>ufCY!BT2>`$QsCnSZ|I5PM=^vqPAedM z1g@RTUQiNuphS=&yHDMh5rOz=D36GjLHbNeL_jTGl!&+o<*FdAgM1`yQeaY1EiaWg zh~oied-5C+kpT6CwY*ZE6~A3UghFj$gUpIjuVM;38)her;iroH*hg|taTy8|R4AXx z-?K%M2$=_4EvcfC1~?0k5hQN6zX3SgHk*JfNe4X1pk>d zUPd@!Y?LUwO5R3L{s77axp2n>C~_9=2B@Pm#sunDe+VV0g$z^Fqk1Yt9w7>0+f*3} zOXMeLCO@)Say3?{ggz8r(hFP_#5sFGYAAK4B3caatKr#8UJT!pmrg$9xAQLwsz}_p zg)9|xlO1G_AW#@3d?dmDw2DsisIt9Xvq^*nk1gP&!uo_oCCi}Rm!_SUL9=_!uKZIxNhzaX(qFg5(Rkc)Kf(i@eUS~@2-p&64p}KM3&NeDwHVzMh9xB zG&l!i9Lx&Y%W7zQAhhvrxBbT&r7XuS$d(Y6hqaU<>1<=74`~SfU(S z@G2 z-C89Pj3LzW{7K_}UJPLgrNBH`BO)5ZP#@kH$N`>86{U!XI9xkH48Hvgz)OW+qU($e zKS#}u5w^IsE$KlK_K^ERJ^r(j!01xyHA;teVmAs?zj8^J7-+R4uAeC>R6LSq$uM5M zN;-&hrJ0JWG|a#?cq+U@rO3LZfW5Axe~rCd0D$U08|Ukg@WxSZtW5kO#?n4X4=}tR z#6%YS=D|W+!-T=)UL^@PfS}=T+#v^ttPGiR-joZ^hAow3C?aHGfWC)B_*@f$SE#(xxIzBr$QkCc<19Z1O5xKL``W+fa`OeK+EEu$gluFm1hx zHZGFtL~2Cu2{i=9Tpydj5G}ZtF++sOp)5q6sQ}5!2cGjIWH7Q1_$hFoU66_`6nCf~ zS&GbthF*ek9rZ$o;QmTwgbDP+&&0&i4060~nux+r8WcnfuG`L!rHEu)0-N+Mz!UhB zF064s!UMO%d^h2ZbH0*H1(AYVG?Q?cGH?qlx4}^y86fD8`-?E4%a)f5FsbVi^vOC@ znBb);{n#>OLMI9_Y5WAl42n8S}1`|pm6T?eJL^vK}uaL-r-vVE;y8j5= ze}gPaLgeE9-%>Dpu}~)Q23DXPWH)ooisa*`w*)ZadzjU;1%i)TW-97{ltWI?BWU5n z*o&YZFF;NdLn^A4-KO%GD2tfV1XK3{+$Nmdu6NZ#2A-Z5V|56Um#&X3&KByV` z@Gy*}#08+5yejzgEKaSZgdLFawCl7~&adls8da z45vBXE=-l^A@@q&!QLT>C}_cpkrHt@1$2;z(@PAIhSLTak&9EHiv^Ghusq-dAKwMY zJX?-(Uwb#i zEB&uM6ab3=Yl(Z za5X@li(}*20(q&R44BjpbPT9${OMAOIcOU01N(DBXsrkbw&S&ga0RHKcful|Mql-n zCBu3rtaW-uVa|wbN}5M>#T5FjkZwT`Ynu0ln;6e(1&3f z_zr&a3po&>ZUYq1sc1ARxq>nZw2xj;hGh{SoJK2%7O0IyIe+*K+Pzj_xU*DN{7X!% zB#-N1pk^1YVG7YLfSwDnK$*(}kcyHin+Z5Fz*(^b!WCUYH_4?ghHDI;kg>B*&D; z4jASbezYV7g;SU*zrec4vg8hYjR=edn=nBt{g8V|6)7r3Z7M%O2#9qati8B}Y?Eum zVO!u5OsNp|mbgM-uCfQg!V)e*+3+6Xz{>M%yH>XHcR6pN@wETe1w7WWtdnvT%v7lE{H{kU7X+NfK}I4cM41 zFm3U|bYTDuJin|&oG2`kd;%HLN>~GOiZSz%^+5?L!uHEjKE`k^u*4HS;rqYQ3s$b} zJ9J?Gf8muPXdvkkB(j(Ye?h)aFpx(AqEroxBq|}*@Pse_{XFzxATZt47>EnjOw{5M znA940d&Sq|{fxQ|rhypp%Q3IRvlmJc65WwRg77oQ0lTON|M46@1d3;88j+MAfe&B z4IC(d-Gs*n)T|lOAH3w4jf#qOpTa(R`a9#I8~lQk+6 zWrZNK0J;@?B-<6WG8fKm1 z4%YoXm(7*(KB;by4rH^;4X$cL<%A2A@T0(dMcjs*EC|ptyfZKlDX@QSSYZ0S za1AW`6OV8!Z0H~ga1I19K2ZcYOqQwuWsdcPbNhnSn9iI*@WtAuLPZu;DY9X)9<5n$ zPZ^B9n%bT!JJ<@;tJIj-!ni2VQ)i0x@ACCOK?vOGT6~~@i^41%st2njX|fN zKI6~u2;k(u!ZpokkS;>;a|_TI6;QzW_F!aw0R(Ya?I?JHZ35L$SKg%7BDnD4xF`mj zSkx#z3iHpv>(yhZK(ZPj72wsd6B5z5buEu@2Q!VZNmipC0TBbG8e2dDeqPEWnsHko z&nfU*P>ix^Ab~Bo493=m;kA(NN*5W?fy+Q=+YPBWS`jCECN-1A%Q88l2S3Sx6AI}U zS^%(wnB1Ar(DE}bcUCm8L?-TCt#LBN=9Vt_041aXO#Z?4mW7{!PzPW9#ZOaYgf*nX zn=(&I&2C(UUlPoQ*eV=ln9m2jQy#S8f#7Nn&-ir`FofN}xkMr8;%-7tfKQd5fGEPS ztAKD4PjL&tFwXd?4Znc}?3jcp4bU}LD8qB|4A*Yqn^Hs>rq^f*)~Ban$-@^zsX&-@1MKk%kJOGM zs&ERc8vsv5!CaZjhMz@2?HVYT#DJxzNLB&3%8CzIw-(pEK@#;ib(Rv1kOHo12D2aW z2A9>6L@2-!U`xj{IZ*>|u357%D1~>9P!P3H_AQohvHaV>#!AfDWYF@K^2!t*`~;>_ zQA%Sv6v*}}8aQXEv%-m=BW{-YNRxPNoU7uR(i7Rr>oI+L3qA6i6u_)R19Vo~uy`1R8y{T3CJs2{~Z6QzqQIo6ysFK>^ zkb!&l77@lQ)Qpp3bqthfMwkMI0Z}q(qs-&o64b)S;-L;N5tJRchQ=y}TZ6os4^#{G zR2>bgV~!!I-!KoJg1}@=-iJUxPzs76HP-jUV+aGhT0z|sgADi*OPbJg;XgfxVS_^p zKLqwKl!1LJk=9tKuw;qNkggQ$Xd8g3j8+74A)E^j&kNS;cgrie24EryJ3LyDg&lAT z3apzjMvODc@TfGJR-zp8ycRj(i`hrO?=DbRgGFtzjuvoGB_5L#KZ!?F;kq>nA{JIb z63Khc29S7fJOsA`!UNg~BRCEBLewh$HG}DeJ62ne8*qnFK$1n$Nj07D+Ee3wjHqS zU=ck+1bQo!1IS{wYkbd>d+vt~phl!>vzL1VN8WrGdC1>*!PcoICrt_{f;LM;!}0Cu=<&qXrcnE4L5C)+6by5KQ7?)LGTv7-*aHvq9=2FP>Dg?xH{PeEONiN_m$ic z!NE_#uYq?2k%nKxTfNdmI2_wSU-haOd1C#ond$;C^?i3XNw4_+t3scT%6X2ha|a@*J>u|4Th#3=9>$XP&dM%531L zv6D=o(19Pxa|FDv!8)-#q7c6v<{E%PKE<6?azr_#(jFEoS)xeHcP4_JhIoUg3btW| zdPqQDahjlg96A&I@Gn{YHu#J6CQ*G2&3z5bgJm~~61#~hOAg{rK7a@ly!5lvY z!#-&02}@iCMBJMD*K27DO@(3dB1*08OoFonNcA6NWe$TI5T*cg1LrS_;lE(Ny4d)! zo?;VWfjm)|3SI*-z{O%!iZueNXNL#oAyM;u4tQYsh`0u+tW#Ho5wSp~} zxD4=lJ&3r0>j95=1%9iVz?&onj6j88QO1O(2Q2ZvnwNKhdSkuh!608~q-3n-agu3d zh1U$w3Nhvt~T>uXms0(}&oQGSuH7vEQl(_r9^(+68rw^&` zuKkx7?Txz!IuZZ?K;>O4{C`y5zEETEf3wf_vafqxqiOx>A&6hjRHX3`1g9Q zQ{%-zJU}?!!H|MC8a~vwX?MYY#L7gCi_jftBPxce$D$UzSSZy0AwYf?n7mvvlB!XK z^Wr65OsVLi0HceC9Nr|wvM||A)`e|V)`5$_XHkp%0@pzKN`l4F;!b3z^dtSrZkadd ztGq!O_j9I#F{Ta&$Qn^45|0f?N|fqfpNRx$3f!%RErFqHJQ0KNOZoO`eRz(?m4Z{il4-bab?pjVyInKsHMn*fN2KFg zz}3~`-{!#Wz;8j3Jew>bi6&e>6Lh+O-ydKo&eD2@cnCRJJ3j#Q^jI*n0`-jAHQ^@E zaz3_x5-k{3AV=h3*f5ed{JTR%5_ zEPf;~WvUB^5qK@MD%yxHYW@mP;dwi3`sKFO!HSxj32Lp>3qbLgX zK}~${$*74j#z-`#Eu}2o-l0OFwiH_0<>0ux%SQ6X`Hi>VpPA`c0HFz<2 zEy!$At#nXole(mCsUI5Qu*7`Q1lXj%rF@y0q#Aj*Tqh^xee#GrE+>5x@?Y{abj%rf zJ#@t_%2phFHU{4aKfww1YTsd{R~b}JflK-gWYQI73aQ~mD(L~Zq=Hacs3gP!e{<+? zs4rCNAB6hK68?DTQi$24tD$M2)w7|QG@SZ;>Eiqxo)Y5`lr1kpCwLMzBR^V^KyuDxR_L!x!+Mn7b zZA!bQwW$kQUbs(US}Bp{l@5m6!vo>LaHl+kBs{Z9cmf7F${XRC@ND?Bawp8RQl6gB zi}f-+#Vb|mwK^NHq|VIJU3j<={epg3zp38>X~vw{eLdHhR11tkW2>*+*ltuBHAbz` ztuz@e22*BT9%nY>sZ)!L+4VGKcH3aaY>Qc_)R-gEF0(aMXC5#+OprC^F>}N`ZT@ba zH<>YG@0f%xebt;chXGQ|nkm98+nVy{SsSflYpYddF#t8tuxlR zb>3Pe%l@(cweDC8V9Hpx+yJgDZl}1iM!U&wvF8IFc9qs+_uEG?u^F^a+GBQ~IBrkc z*KAfLZrk&Aj`NGM(J68^LnkOPb~x2wVC$f0?01@-n;ET6hf^o^I-FSSbNWG-9S2`_ z&ba{mf7+>cI>qbA@Ad@eocoAHSPRLCaDHP)WG>thsEjaK)(W<)9V%g`N0u#8Wk(}J zk&{qfMtkG9uLqWTMGM^W`l^`UP7qj5Arbiv&Yp1Boq-O$4DV1H|yaLBj!XIodShMN~ zL$w-)P6r)n5}zj*3b_Z4RKOD#a|XJoPgSc z5`~jFm!Ws0k~v=bYX$~(MW=5tblb;wYy$jbhg7B2BiS~ocKgS0z4Ks$+Mw;TvfE|k zJEQ7mTv_&0!R@?F>(y5L>UGg42Gqsn9k6M{v)jzG4x5A-AFNmw6BLea_gH^Z{9 zAn-^TGnjF_q15a10A!$wPV>3(+)AbXzXO3P9`pdqWVKksA5^%`gI~~uF~~2#1y~#w zay@w{Al&3_5XtIMH^5{}n{-Hm_iMoK3_j&Jp|hwH9Dz8vpx!kH97HU0ycfd0J6JAl z2sA=106U|#8%MO=cD-{8$(DpX9!g}i*tLN|=p2RSRr8)+=P=K--^mBq@(BK6#&;md zz-5Ep>t{pn{aurM{NB|09$LqRM4o#u%KRIBbGnBuHsP0e$}i0Gc5hmKpVyLbCc*=( ziTm-06$?}F*ja>SgDw=Y-cu;I*n*HH3W8wek-L%JiBohFMe`||plAU_3n?lqAyo_O z_C>BGT1Dg*Q>=v6lv1>eqMNxU9#VSkDQ~;))sn!s{ARTg3u#FS+|@<$ijjlpbH=HKRSY{EN?Dciwvb zg>T>f-~hRew4#YJo4GGNE^ZQ2eQgk1$Ze(AK_26>baOAak=st09keP=MtWGnA#yt@ zvx`>7X-T^5%fsY$Q>=$pmD1AGzJaG-`uN3sv6tLFdgVuo{Y24z?lMQz-Sz1{zx$co zBb0fR*2L-SbW>j)BX@w-#_7}4aeZ=}+(C*B(duDZ$wN&a+GpN{xh;y~IzjjkJ+`9a diff --git a/src/main/java/io/github/thetrouper/ultradupe/UltraDupe.java b/src/main/java/io/github/thetrouper/ultradupe/UltraDupe.java index 6e8856b..699cd1c 100644 --- a/src/main/java/io/github/thetrouper/ultradupe/UltraDupe.java +++ b/src/main/java/io/github/thetrouper/ultradupe/UltraDupe.java @@ -2,9 +2,12 @@ package io.github.thetrouper.ultradupe; import io.github.itzispyder.pdk.PDK; import io.github.itzispyder.pdk.utils.misc.JsonSerializable; -import io.github.thetrouper.ultradupe.cmds.ChatClickCallback; +import io.github.thetrouper.ultradupe.cmds.DupeBansCommand; +import io.github.thetrouper.ultradupe.cmds.DupeCommand; +import io.github.thetrouper.ultradupe.cmds.MultiplyCommand; +import io.github.thetrouper.ultradupe.data.DupeBanStorage; import io.github.thetrouper.ultradupe.data.config.Config; -import io.github.thetrouper.ultradupe.events.ChatEvent; +import io.github.thetrouper.ultradupe.events.GuiEvents; import org.bukkit.Bukkit; import org.bukkit.plugin.PluginManager; import org.bukkit.plugin.java.JavaPlugin; @@ -16,7 +19,9 @@ public final class UltraDupe extends JavaPlugin { private static UltraDupe instance; private static final File cfgfile = new File("plugins/UltraDupe/main-config.json"); + private static final File dupeBans = new File("plugins/UltraDupe/dupebans.json"); public static Config config = JsonSerializable.load(cfgfile, Config.class, new Config()); + public static DupeBanStorage dupeBanStorage = JsonSerializable.load(dupeBans, DupeBanStorage.class, new DupeBanStorage()); public static final PluginManager manager = Bukkit.getPluginManager(); public static final Logger log = Bukkit.getLogger(); @@ -45,10 +50,12 @@ public final class UltraDupe extends JavaPlugin { log.info("Starting Up! (%s)...".formatted(getDescription().getVersion())); // Commands - new ChatClickCallback().register(); + new DupeCommand().register(); + new DupeBansCommand().register(); + new MultiplyCommand().register(); // Events - new ChatEvent().register(); + new GuiEvents().register(); log.info(""" Finished! @@ -68,9 +75,11 @@ public final class UltraDupe extends JavaPlugin { // Init config = JsonSerializable.load(cfgfile, Config.class,new Config()); + dupeBanStorage = JsonSerializable.load(dupeBans, DupeBanStorage.class,new DupeBanStorage()); // Save config.save(); + dupeBanStorage.save(); } diff --git a/src/main/java/io/github/thetrouper/ultradupe/cmds/ChatClickCallback.java b/src/main/java/io/github/thetrouper/ultradupe/cmds/ChatClickCallback.java deleted file mode 100644 index 9b6e1f6..0000000 --- a/src/main/java/io/github/thetrouper/ultradupe/cmds/ChatClickCallback.java +++ /dev/null @@ -1,21 +0,0 @@ -package io.github.thetrouper.ultradupe.cmds; - -import io.github.itzispyder.pdk.commands.Args; -import io.github.itzispyder.pdk.commands.CommandRegistry; -import io.github.itzispyder.pdk.commands.CustomCommand; -import io.github.itzispyder.pdk.commands.Permission; -import io.github.itzispyder.pdk.commands.completions.CompletionBuilder; -import org.bukkit.command.CommandSender; - -@CommandRegistry(value = "ultradupe", permission = @Permission("ultradupe.dupe"), printStackTrace = true) -public class ChatClickCallback implements CustomCommand { - @Override - public void dispatchCommand(CommandSender sender, Args args) { - - } - - @Override - public void dispatchCompletions(CompletionBuilder b) { - b.then(b.arg()); - } -} diff --git a/src/main/java/io/github/thetrouper/ultradupe/cmds/DupeBansCommand.java b/src/main/java/io/github/thetrouper/ultradupe/cmds/DupeBansCommand.java new file mode 100644 index 0000000..df5b33c --- /dev/null +++ b/src/main/java/io/github/thetrouper/ultradupe/cmds/DupeBansCommand.java @@ -0,0 +1,66 @@ +package io.github.thetrouper.ultradupe.cmds; + +import io.github.itzispyder.pdk.Global; +import io.github.itzispyder.pdk.commands.Args; +import io.github.itzispyder.pdk.commands.CommandRegistry; +import io.github.itzispyder.pdk.commands.CustomCommand; +import io.github.itzispyder.pdk.commands.Permission; +import io.github.itzispyder.pdk.commands.completions.CompletionBuilder; +import io.github.thetrouper.ultradupe.UltraDupe; +import io.github.thetrouper.ultradupe.data.DupeBanStorage; +import io.github.thetrouper.ultradupe.data.GUIs.DupeBanGUI; +import io.github.thetrouper.ultradupe.server.functions.DupeBanCheck; +import io.github.thetrouper.ultradupe.server.sound.SoundPlayer; +import io.github.thetrouper.ultradupe.server.util.Text; +import net.kyori.adventure.text.Component; +import org.bukkit.Material; +import org.bukkit.Sound; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; + +@CommandRegistry(value = "dupebans", permission = @Permission("ultradupe.dupebans"), printStackTrace = true) +public class DupeBansCommand implements CustomCommand { + + @Override + public void dispatchCommand(CommandSender sender, Args args) { + Player p = (Player) sender; + switch (args.get(0).toString()) { + case "add" -> { + if (!p.hasPermission("ultradupe.dupebans.edit")) return; + Material m = p.getInventory().getItemInMainHand().getType(); + if (UltraDupe.dupeBanStorage.dupeBans.contains(m)) { + p.sendMessage(Component.text(Text.prefix("&7The material &c%s&7 is already on the dupe ban listr.".formatted(Text.cleanName(m.toString()))))); + return; + } + UltraDupe.dupeBanStorage.dupeBans.add(m); + p.sendMessage(Component.text(Text.prefix("&7You have added &c%s&7 to the dupe ban list.".formatted(Text.cleanName(m.toString()))))); + UltraDupe.dupeBanStorage.save(); + } + case "remove" -> { + if (!p.hasPermission("ultradupe.dupebans.edit")) return; + Material m = p.getInventory().getItemInMainHand().getType(); + if (!UltraDupe.dupeBanStorage.dupeBans.contains(m)) { + p.sendMessage(Component.text(Text.prefix("&7The material &c%s&7 is not on the dupe ban list.".formatted(Text.cleanName(m.toString()))))); + return; + } + UltraDupe.dupeBanStorage.dupeBans.remove(m); + p.sendMessage(Component.text(Text.prefix("&7You have removed &a%s&7 from the dupe ban list.".formatted(Text.cleanName(m.toString()))))); + UltraDupe.dupeBanStorage.save(); + } + default -> { + StringBuilder dupeBanList = new StringBuilder(Text.prefix("&7There are currently &e%s&7 dupe bans.".formatted(UltraDupe.dupeBanStorage.dupeBans.size()))); + for (Material dupeBan : UltraDupe.dupeBanStorage + .dupeBans) { + dupeBanList.append(Global.instance.color("\n&6 - &c%s".formatted(Text.cleanName(dupeBan.toString())))); + } + p.sendMessage(dupeBanList.toString()); + } + } + } + + @Override + public void dispatchCompletions(CompletionBuilder b) { + b.then(b.arg("add","remove")); + } +} diff --git a/src/main/java/io/github/thetrouper/ultradupe/cmds/DupeCommand.java b/src/main/java/io/github/thetrouper/ultradupe/cmds/DupeCommand.java new file mode 100644 index 0000000..df451e1 --- /dev/null +++ b/src/main/java/io/github/thetrouper/ultradupe/cmds/DupeCommand.java @@ -0,0 +1,56 @@ +package io.github.thetrouper.ultradupe.cmds; + +import io.github.itzispyder.pdk.commands.Args; +import io.github.itzispyder.pdk.commands.CommandRegistry; +import io.github.itzispyder.pdk.commands.CustomCommand; +import io.github.itzispyder.pdk.commands.Permission; +import io.github.itzispyder.pdk.commands.completions.CompletionBuilder; +import io.github.itzispyder.pdk.utils.SchedulerUtils; +import io.github.thetrouper.ultradupe.server.functions.DupeBanCheck; +import io.github.thetrouper.ultradupe.server.sound.SoundPlayer; +import io.github.thetrouper.ultradupe.server.util.Text; +import net.kyori.adventure.text.Component; +import org.bukkit.Sound; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; + +import java.util.concurrent.CompletableFuture; + +@CommandRegistry(value = "ultradupe", permission = @Permission("ultradupe.dupe"), printStackTrace = true) +public class DupeCommand implements CustomCommand { + + DupeBanCheck check = new DupeBanCheck(); + @Override + public void dispatchCommand(CommandSender sender, Args args) { + Player p = (Player) sender; + SoundPlayer yes = new SoundPlayer(p.getLocation(), Sound.BLOCK_NOTE_BLOCK_BELL, 10,1); + SoundPlayer no = new SoundPlayer(p.getLocation(), Sound.BLOCK_NOTE_BLOCK_BASS, 10,1); + + if (p.getInventory().getItemInMainHand().isEmpty()) { + p.sendMessage(Component.text(Text.prefix("That was air... it was duped, but you still didn't get anything."))); + no.play(p); + return; + } + int factor = args.get(0).toInt(); + ItemStack i = p.getInventory().getItemInMainHand().clone(); + + if (check.itemPasses(i)) { + if (factor == 0) factor = i.getAmount(); + SchedulerUtils.loop(1,factor,(time)->{ + i.setAmount(1); + yes.play(p); + p.getInventory().addItem(i); + }); + p.sendMessage(Component.text(Text.prefix("&7You have duped &a%s %s&7.".formatted(factor, Text.cleanName(i.getType().toString()))))); + } else { + p.sendMessage(Component.text(Text.prefix("&cYou are not allowed to dupe &7%s&c.".formatted(Text.cleanName(i.getType().toString()))))); + no.play(p); + } + } + + @Override + public void dispatchCompletions(CompletionBuilder b) { + b.then(b.arg("[]")); + } +} diff --git a/src/main/java/io/github/thetrouper/ultradupe/cmds/MultiplyCommand.java b/src/main/java/io/github/thetrouper/ultradupe/cmds/MultiplyCommand.java new file mode 100644 index 0000000..13ab6b7 --- /dev/null +++ b/src/main/java/io/github/thetrouper/ultradupe/cmds/MultiplyCommand.java @@ -0,0 +1,54 @@ +package io.github.thetrouper.ultradupe.cmds; + +import io.github.itzispyder.pdk.commands.Args; +import io.github.itzispyder.pdk.commands.CommandRegistry; +import io.github.itzispyder.pdk.commands.CustomCommand; +import io.github.itzispyder.pdk.commands.Permission; +import io.github.itzispyder.pdk.commands.completions.CompletionBuilder; +import io.github.itzispyder.pdk.utils.SchedulerUtils; +import io.github.thetrouper.ultradupe.server.functions.DupeBanCheck; +import io.github.thetrouper.ultradupe.server.sound.SoundPlayer; +import io.github.thetrouper.ultradupe.server.util.Text; +import net.kyori.adventure.text.Component; +import org.bukkit.Sound; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; + +@CommandRegistry(value = "multiply", permission = @Permission("ultradupe.multiply"), printStackTrace = true) +public class MultiplyCommand implements CustomCommand { + + DupeBanCheck check = new DupeBanCheck(); + @Override + public void dispatchCommand(CommandSender sender, Args args) { + Player p = (Player) sender; + SoundPlayer yes = new SoundPlayer(p.getLocation(), Sound.BLOCK_NOTE_BLOCK_BELL, 10,1); + SoundPlayer no = new SoundPlayer(p.getLocation(), Sound.BLOCK_NOTE_BLOCK_BASS, 10,1); + + if (p.getInventory().getItemInMainHand().isEmpty()) { + p.sendMessage(Component.text(Text.prefix("That was air... it was duped, but you still didn't get anything."))); + no.play(p); + return; + } + int factor = args.get(0).toInt(); + ItemStack i = p.getInventory().getItemInMainHand().clone(); + + if (check.itemPasses(i)) { + if (factor == 0) factor = i.getAmount(); + SchedulerUtils.loop(1,factor,(time)->{ + yes.play(p); + p.getInventory().addItem(i); + }); + p.sendMessage(Component.text(Text.prefix("&7You have duped &a%s %s&7.".formatted(factor, Text.cleanName(i.getType().toString()))))); + } else { + p.sendMessage(Component.text(Text.prefix("&cYou are not allowed to dupe &7%s&c.".formatted(Text.cleanName(i.getType().toString()))))); + no.play(p); + } + } + + @Override + public void dispatchCompletions(CompletionBuilder b) { + b.then(b.arg("[]")); + } +} + diff --git a/src/main/java/io/github/thetrouper/ultradupe/data/DupeBanStorage.java b/src/main/java/io/github/thetrouper/ultradupe/data/DupeBanStorage.java new file mode 100644 index 0000000..98de15c --- /dev/null +++ b/src/main/java/io/github/thetrouper/ultradupe/data/DupeBanStorage.java @@ -0,0 +1,23 @@ +package io.github.thetrouper.ultradupe.data; + +import io.github.itzispyder.pdk.utils.misc.JsonSerializable; +import org.bukkit.Material; + +import java.io.File; +import java.util.Arrays; +import java.util.List; + +public class DupeBanStorage implements JsonSerializable { + + @Override + public File getFile() { + File file = new File("plugins/UltraDupe/dupebans.json"); + file.getParentFile().mkdirs(); + return file; + } + public int bannedModelData = 1111; + public List dupeBans = Arrays.asList( + Material.AZALEA, + Material.BIG_DRIPLEAF + ); +} diff --git a/src/main/java/io/github/thetrouper/ultradupe/data/GUIs/DupeBanGUI.java b/src/main/java/io/github/thetrouper/ultradupe/data/GUIs/DupeBanGUI.java new file mode 100644 index 0000000..5f7c715 --- /dev/null +++ b/src/main/java/io/github/thetrouper/ultradupe/data/GUIs/DupeBanGUI.java @@ -0,0 +1,46 @@ +package io.github.thetrouper.ultradupe.data.GUIs; + +import io.github.itzispyder.pdk.Global; +import io.github.itzispyder.pdk.plugin.builders.ItemBuilder; +import io.github.itzispyder.pdk.plugin.gui.CustomGui; +import io.github.itzispyder.pdk.utils.misc.SoundPlayer; +import io.github.thetrouper.ultradupe.UltraDupe; +import io.github.thetrouper.ultradupe.data.DupeBanStorage; +import org.bukkit.Material; +import org.bukkit.Sound; +import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; + +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + +public class DupeBanGUI implements Global { + static Global g = Global.instance; + + public static List isInGUI = new ArrayList<>(); + + public static final CustomGui home = CustomGui.create() + .title(g.color("A88FF&lUʺCFF&llỒFF<≚FF&lr◣FF&la&#A59DFF&lD&#B4A1FF&lu&#C3A5FF&lp&#D2A9FF&le &7&l | &#FF5A5A&l&nP&#F25C62&l&nr&#E65E6B&l&ne&#D95F73&l&nm&#CC617B&l&ni&#BF6383&l&nu&#B3658C&l&nm &#A66794&l&nD𘕩C&l&nuC6AA4&l&np̦CAD&l&ne ˠEB5&l&nBᨎBD&l&naᝓC5&l&nnD73CE&l&ns ࿫D6&l&nEറDE&l&nd੷E6&l&niA7AEF&l&nt�D7CF7&l&noEFF&l&nr")) + .size(54) + .defineMain(e -> { + e.setCancelled(true); + if (!isInGUI.contains(e.getWhoClicked().getUniqueId())) { + e.setCancelled(true); + e.getWhoClicked().setHealth(0); + return; + } + if (e.getClickedInventory().getItem(e.getSlot()).getType().equals(Material.LIGHT_GRAY_STAINED_GLASS_PANE)) { + SoundPlayer deny = new SoundPlayer(e.getWhoClicked().getLocation(), Sound.BLOCK_NOTE_BLOCK_BASS,1,1); + deny.play((Player) e.getWhoClicked()); + } + }) + .onDefine(e -> { + + }) + .define(54,GuiItems.nextArrow,event -> { + + }) + .build(); + +} diff --git a/src/main/java/io/github/thetrouper/ultradupe/data/GUIs/GuiItems.java b/src/main/java/io/github/thetrouper/ultradupe/data/GUIs/GuiItems.java new file mode 100644 index 0000000..4154e13 --- /dev/null +++ b/src/main/java/io/github/thetrouper/ultradupe/data/GUIs/GuiItems.java @@ -0,0 +1,20 @@ +package io.github.thetrouper.ultradupe.data.GUIs; + +import io.github.itzispyder.pdk.Global; +import io.github.itzispyder.pdk.plugin.builders.ItemBuilder; +import org.bukkit.Material; +import org.bukkit.inventory.ItemStack; + +public class GuiItems implements Global { + static Global g = Global.instance; + + public static final ItemStack nextArrow = ItemBuilder.create() + .material(Material.ARROW) + .name(g.color("Next Page")) + .build(); + + public static final ItemStack backArrow = ItemBuilder.create() + .material(Material.ARROW) + .name(g.color("Previous Page")) + .build(); +} diff --git a/src/main/java/io/github/thetrouper/ultradupe/events/ChatEvent.java b/src/main/java/io/github/thetrouper/ultradupe/events/ChatEvent.java deleted file mode 100644 index d8555b0..0000000 --- a/src/main/java/io/github/thetrouper/ultradupe/events/ChatEvent.java +++ /dev/null @@ -1,17 +0,0 @@ -package io.github.thetrouper.ultradupe.events; - -import io.github.itzispyder.pdk.events.CustomListener; -import org.bukkit.event.EventHandler; -import org.bukkit.event.player.AsyncPlayerChatEvent; - -public class ChatEvent implements CustomListener { - @EventHandler - private void onChat(AsyncPlayerChatEvent e) { - handleChatEvent(e); - } - public static void handleChatEvent(AsyncPlayerChatEvent e) { - - } - - -} diff --git a/src/main/java/io/github/thetrouper/ultradupe/events/GuiEvents.java b/src/main/java/io/github/thetrouper/ultradupe/events/GuiEvents.java new file mode 100644 index 0000000..0d53a11 --- /dev/null +++ b/src/main/java/io/github/thetrouper/ultradupe/events/GuiEvents.java @@ -0,0 +1,14 @@ +package io.github.thetrouper.ultradupe.events; + +import io.github.itzispyder.pdk.events.CustomListener; +import io.github.thetrouper.ultradupe.data.GUIs.DupeBanGUI; +import org.bukkit.event.EventHandler; +import org.bukkit.event.inventory.InventoryCloseEvent; +import org.bukkit.event.player.AsyncPlayerChatEvent; + +public class GuiEvents implements CustomListener { + @EventHandler + private void onGuiClose(InventoryCloseEvent e) { + DupeBanGUI.isInGUI.remove(e.getPlayer().getUniqueId()); + } +} diff --git a/src/main/java/io/github/thetrouper/ultradupe/server/functions/DupeBanCheck.java b/src/main/java/io/github/thetrouper/ultradupe/server/functions/DupeBanCheck.java new file mode 100644 index 0000000..525f737 --- /dev/null +++ b/src/main/java/io/github/thetrouper/ultradupe/server/functions/DupeBanCheck.java @@ -0,0 +1,81 @@ +package io.github.thetrouper.ultradupe.server.functions; + +import io.github.thetrouper.ultradupe.UltraDupe; +import io.github.thetrouper.ultradupe.data.DupeBanStorage; +import io.github.thetrouper.ultradupe.server.util.ServerUtils; +import org.bukkit.Material; +import org.bukkit.block.BlockState; +import org.bukkit.block.Container; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.BlockStateMeta; +import org.bukkit.inventory.meta.ItemMeta; + +public class DupeBanCheck { + private boolean isContainer(ItemStack itemStack) { + return itemStack.getType() == Material.CHEST || + itemStack.getType() == Material.TRAPPED_CHEST || + itemStack.getType() == Material.FURNACE || + itemStack.getType() == Material.BLAST_FURNACE || + itemStack.getType() == Material.DROPPER || + itemStack.getType() == Material.DISPENSER || + itemStack.getType() == Material.HOPPER || + itemStack.getType() == Material.BARREL; + } + + private Inventory getSubInventory(ItemStack containerItem) { + ServerUtils.verbose("DUPEBANS: GetSubInv checking item: " + containerItem); + if (containerItem.getItemMeta() instanceof BlockStateMeta blockStateMeta) { + ServerUtils.verbose("DUPEBANS: subInv has (is) blockStateMeta: " + blockStateMeta); + BlockState blockState = blockStateMeta.getBlockState(); + if (blockState instanceof Container) { + ServerUtils.verbose("DUPEBANS: subInv has (is) container: " + (Container) blockState); + return ((Container) blockState).getInventory(); + } + } + ServerUtils.verbose("DUPEBANS: Inv is null: " + containerItem); + return null; + } + + private boolean containerPasses(Inventory inventory) { + for (ItemStack itemStack : inventory.getContents()) { + if (itemStack == null || itemStack.getType().isAir()) continue; + if (!itemPasses(itemStack)) { + ServerUtils.verbose("DUPEBANS: No pass C(I)"); + return false; + } + if (!isContainer(itemStack)) continue; + + Inventory subInventory = getSubInventory(itemStack); + if (!containerPasses(subInventory)) { + ServerUtils.verbose("DUPEBANS: No pass C(R)"); + return false; + } + } + ServerUtils.verbose("DUPEBANS: Item passes recursion check."); + return true; + } + + public boolean itemPasses(ItemStack i) { + ServerUtils.verbose("DUPEBANS: Checking if item passes: " + i.getItemMeta()); + Inventory inv = getSubInventory(i); + if (inv != null) { + ServerUtils.verbose("DUPEBANS: Item has a SubInv: " + inv); + if (!containerPasses(inv)) { + ServerUtils.verbose("DUPEBANS: No pass C"); + return false; + } + } + if (UltraDupe.dupeBanStorage.dupeBans.contains(i.getType())) { + ServerUtils.verbose("DUPEBANS: No pass T"); + return false; + } + if (i.hasItemMeta() && i.getItemMeta().hasCustomModelData() && i.getItemMeta().getCustomModelData() == UltraDupe.dupeBanStorage.bannedModelData) { + ServerUtils.verbose("DUPEBANS: No pass M"); + return false; + } + + ServerUtils.verbose("DUPEBANS: All checks passed"); + return true; + } +} diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index f7b6b35..7cc6596 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -7,97 +7,36 @@ description: Detect Block and Ban players who attempt to grief your server. website: https://thetrouper.github.io/ softdepend: [ ProtocolLib ] permissions: - ultradupe.message: - description: Access to the direct messages + ultradupe.dupe: + description: Access to the dupe default: op - ultradupe.reply: - description: Reply commands - ultradupe.debug: - description: Permission to use debug commands + ultradupe.dupebans.edit: + description: edit the dupe ban list default: op - ultradupe.staff: - description: Receive anti-swear and anti-spam warnings + ultradupe.dupebans: + description: see the dupe ban list default: op - ultradupe.chat.antiswear.flags: - description: See antiSwear flags - default: op - ultradupe.chat.antiswear.bypass: - description: Bypass the antiSwear - default: op - ultradupe.chat.antiswear.edit: - description: Add a false positive to the config - default: op - ultradupe.chat.antispam.flags: - description: See antispam flags - default: op - ultradupe.chat.antispam.bypass: - description: Bypass the antispam - default: op - ultradupe.chat.*: - description: bypass all chat rules and see all flags - default: op - children: - ultradupe.chat.antiswear.flags: true - ultradupe.chat.antiswear.bypass: true - ultradupe.chat.antispam.flags: true - ultradupe.chat.antispam.bypass: true + commands: - ultradupetab: - description: trap tab completion command - usage: /ultradupetab you got trolled ultradupe: description: A command for testing. usage: /ultradupe permission: ultradupe.info permission-message: You do not have permission! - reop: - description: Allows trusted players to elevate their permissions - usage: /reop - socialspy: - permission: ultradupe.spy - usage: /socialspy - permission-message: You do not have permission to use this command! - description: View direct messages sent between players aliases: - - spy - - sspy - msg: - permission: ultradupe.message - usage: /msg [] - permission-message: You do not have permission to message through ultradupe! - description: Send messages directly to players + - dupe + - d + - ud + multiply: + description: A command for testing. + usage: /ultradupe + permission: ultradupe.info + permission-message: You do not have permission! aliases: - - message - - etell - - tell - - t - - ewhisper - - whisper - - w - - privatemessage - - pm + - mult - m - - directmessage - - dm - - ultradupemessage - - sm - - stell - - smsg - reply: - description: Reply to the last person messaging you - usage: /r [] - permission: ultradupe.reply - permission-message: You do not have permission to reply through ultradupe! - aliases: - - r - - er - - rply - - ereply - - sr - - sreply - - ultradupereply - ultradupecallback: - description: Callback for chat click events - usage: /ultradupecallback - permission: ultradupe.callbacks - permission-message: You have not been given permission to use UltraDupe Chat Callbacks! \ No newline at end of file + - um + dupebans: + description: dupe bans + usage: /dupebans [add|remove] + permission: ultradupe.dupebans \ No newline at end of file