From 38f6bf8beae46c66f0a6b7d704641dd76f1b8051 Mon Sep 17 00:00:00 2001 From: neon <> Date: Wed, 11 Sep 2019 13:34:25 +0200 Subject: [PATCH] halloween: update --- .../content/sound/unloze/season/witch.wav | Bin 0 -> 79930 bytes .../scripting/season_halloween.sp | 394 ++++++++++-------- 2 files changed, 221 insertions(+), 173 deletions(-) create mode 100644 season_halloween/content/sound/unloze/season/witch.wav diff --git a/season_halloween/content/sound/unloze/season/witch.wav b/season_halloween/content/sound/unloze/season/witch.wav new file mode 100644 index 0000000000000000000000000000000000000000..17d158f5bbc06ee88132c7a131dd8cdcdef3648b GIT binary patch literal 79930 zcmbrmXOm>vnI4AyrjPmw3PyA_eG1_NNRSf^c*B7+je4_t`~ia{wtdT#X$%t}E;NHwOb^W?ernD@Nq zd7t;3diCX(|K2x$=Nsq#aO$Np!TlHi`8U4tjo-mPe{1R+NB{lKH~zD46boG8oqzm0 z-!StZ!!VBiJo*iP`TB1!+VbZ7v;4nb{~UdmfAE_h{>{Jr`s-i+W_|t3f8tN;tDpQU zU;qAp`}5aLzx|zGfBu_Ye)~JWYQdNP6XW=QZTju0|HjvUYo&g*sz;yZ|9i1^`0ePI zum7I+|GMQ@tBa3*wkK;JD zjfd!(s^CXewfq_Q0-C*}AAHBQ4E?L-qxQV{MZ52NdHYd!Sy46ZMd!TtZ*+grEawkD zdi2q|fBo>hSw`;{&A)E+j-Gw=?ys6(y!geqeycU_oj*Gtm5(2M1yg%5Zb_0cF}&Kc zUo@f>W6m2jMa~=ZSEJQIue>wnbksF(mGUp36>r9b{2&POR>#7a^H%&EJvx8$SIvIj z*~EIudAlrQT!x7S@%+5|i+5YPnz!Re$=5qyZS)R<7t5Is>_zj7VIMVPSTA}XJv?v5 zxV3z%uwePPzZ%-noUvI)k3L%Me9~xq@oLL7G`#!8PUqvw2X@r=SF=9aX+_KDoX_g0 z@6oJ}R_sM9hJEzxujhQUVrD+>d}O&C9ElK~jDLLZXtiI+(2KpuAN{Mo`Fb5qSwZJ~ zFMjo6bbirS&*d){0wv$(qt$#drCj)qru3ryXjm9@KHaaz{MD%PDd(-|`|BA&@Ua|U zi9Yt}SMz%}VPD|IxVT&S^y`BBct^jjl-A=4g2 z@^3W0I1ahs937)09dOk3NUXkI;}?z4Bl-Sd3-E*W&*y6A=R1GwQR9ob=FMo#S2#cX z`GE4Bg}T=9IxI7m@aTl*Z_QQDk>bH3=53hDSJId-P`>GyOx`uuT6i}^0h^ezinjPvlqcgepO!WnrklIozWm8JeQu9Y;qaUqCzG zP*}oz!*yLz@er(^=jGd$uR}iCTtf3@P>vLDuK$jfJ{Oc1OQhph+3f`^j79QswZK!+Hn5z&&70@#m?Yt4k6pM() z+!QFfDe;+4*3x#-{l~9qXpdtB@F7w_V6lzC!s_&=Zd}3{f71^lay=ylXF7caxsc-3_BOYDY&!@oMRfzY$+;M?Xor^OVfnl;bWJA;3`O$; zsU>NcCaF$KX-94GZfvlUV=0F3Yl@Yo zrlfgkBr`@9s*+-Rnq*nBWO%No*nuVLNg~sFx2IETnpvW1n~LFCl4yp$3ULfWl~Lln z!HX=}@N`LYTuszHTN1t0VC1;t$x6`nArrQ)S(YNG4n&T}MzW0C4OH39LWqK!e?gN} z+mboi_6?Tv`@X1#-B>r`P}e z<;0OG8@?w~oEwRCE{t?Rg#a00>REmqTB;S89BYJXt?6`4f(^TYh6Q!KG;uJdKw~*8 zR2zhoYP1w2j_PE1YLeu;=EhkH93qz^J*}lT#kQ$Il-@+l) zMXTeJO}po|2s3eb$#r!D@`~Q6ElEMgY?47=Yp@=K7KZ|3iYzUErKlubqb05SVV z>-IuL4ID`cLW$8sS7y{K;z@ImakM{-1dPbQ%b@3dSER(aqqq2MXwho7ql<3a#TNn` zSzE^o6P@DQ6PJ?v6PMT12y5o5lIiL!V`mo420agw(6&S~_6?{3UC}L#;hb0}*?8n} zayIZ)v}s1@iM-*d1m&h`gTwn6b1<+KukER3mUjyFM#K!&o(v#4-X1n&F!aX+~m=@gs%S z+HF(z+Plv%QqIFjZ&9OpxP**KG0dMB1S2aBo2k%Gx7tl9AyHthQx9}PU5 zJBXMcnbR4)5QEce&C=_XX zkVuZD4LFw)Nt=;PwcKGS8(A+m_mLrJFh`uMzzpQh zj0u13MWlJOuDQMxU2I6p+vqTKJkB)54^836mR#W6LYOX~ozAHg!GTY1AN&ZBIlRcNMHf1(HDmYua#Qt*74Y|*0S!ZtbWKy&(CI7<*%$qf{S$0CJ^ z*i?Hx*o}5CbYR2;2&C9-DV}c%f(_Ys({>Dl6X*(#zQD2q_F3c9Aj$(yH;Q4X6=*h5 z;CKW5c`Z&HGw5WN5_Sw)@_m(|B^O6owqadh)f_jA#fA|0LW_edXF(_pm{B+Bz*BP_ z4bL$}nq;-yW5IsUFwt01bk-dNNj3gjX-} zIETJv1#uF4n&t$qE^&h9_$CJx>1l=+1upEatlIE~czE7{rzvo|kB&tjNrJeOLj0{9 zMo|@}K}cSxbE=Ir=tdS+(1|;3&#~Pb%`P_eF&^pG`8AV{cf-!)aMJ;2B0N_7mnNl=0VmjzD5>M+8x z19UL4<*Fss%cSOq2uG}FvXSa~x|+z0W(b@tlNG{%Osl5fn+#LeiTgvJYKVc)lxw_< zC=tim_u_Ut%eN}_Rhrgpp<1C4?YW3y{Qhd&^V^*e5s^T1no1U{QV_Vdt_Gvk#5Ch! z$Kp86)<}ZmNgAFEVl+4EbP~r3a^FKzp;KrEvIMWoRm^nQ^&JQ2!<1=KaphWtL7?k( z5=}`qhCYG~M3yGsBsEv6mf)+napp?K>P}ym;b|hwY_$XgFr|i?rjT;S>us+3h81_9 z+8LUcB!;NAtidRdq;Rs)_Y7I)@KbJC7O34_a9 zp5k=+ZBHSalCRfSnu5TJ(OO?@1y`?Tiq-DMu}80vQO3;7F$f0xUZdW=dFaA1nIPI| z)uqI5EL0T>p4xa#E~$raWvtp6g{CXlTS1$jT@W18?suqV^UBqLl#*dLRH?d@#^gd- zG(^rEO_Z{FcrD}QbP!rPUnAo-IlZL%y3y`QCGFs9NGhG4@7R2eO%igxW>^g6Z?0=q zdH-5pQxMU`Ay;ns30tU&B4dr#^fI$?b1Vy9+KD|8u74)4tneDsvNtx=vaok|BnV+Q zjeMcpv{SiMq7VsnMhQ=+mo6rn;bz^AQmrVV(=63lmbV8JmtfXzZRq&gAa#Xu-R|kd zxhB+y*`F9qZU4ql6TA^j2@TgKpyrk(o2kj0SEC}e|7b%If^o+-;* zqCsM7A}7cS*J@Hc&&lcDgeoU@uelr?5rpl;3LU!56+#r1_C|-O#J4Zow375-3Rwb< zJXxc(9M`cs16K_veFq2Dlr2}K7~K|H6n@3oQO#_luWNA^4h14<)0T-k>!b*+>CUBf zv2JhdWuj;!o^n;16o3&ShLn_at*yw>>L4^US#?5$g%pPB`L>gh1Y1LYExa-kuxIXbXl5;YjYY?OWtSU;S znzVhX&57x_<6-n%*ii~|Eoi3LD3^na+Zttcy6wz{lh{khrK+eRJWtwkQ`@}IG40Nz z55JWXl887zPb-pW`*Ks7TGZPmV zT8N{^V{wJuxwB~~$#9efVy)@+w1w%0rgD0J-Knv=k9IXNo(uz%t&?WR&dxEgbf-W~{y zJs4oMN|YBeOBKbWNq6_6R}uE_4n^MX!Z+s|lpFJ<5)J2gbJJ>YTR0yS?1L}2nyed& zm71u_h>R{=kmlIS4|)`VAS`f&8Wm(xu}CW#v|VdKed}JkMfj_ONNO~#*sND+S!mVC z@bX@3N_qQXjAf0Sc28WYg*|b(NHmCef3$muZ4&!Z4Wtx|)dYsH##?NZ~I z{QgHn0ZTSq>+*|Lze}AxTPQXCjec>;{@}xoU=7zd#v$93V`t@TffX7v$BS3K+&}il zg`a;qV1)kO)~367q88dKC(fLoYfWzS=V!-1{$N$plKsPpu)HKj^33VQCe>OzFW&#S zJypK><@*tBZ*C70acR0?YYVR)TV#U0Lvx9_^RtIOAMGA?wR*X!sl^i~E2`R@KIeS+ zMf+6s;U7J*NeLRKD;)b?!Lte{XKRgCa`UcLG~W5iWs7%)JzF9ROQb@~&NOwSey(=? z%lpKP{^X;}a#IAjWVdFfh(KFDztU((`_Fd^Q|;&PcN-0-8yYfGtZup`yoaV3*uV(+w+U%bv6J>h$E3 zN3GY&x4*cf5_*=VnNnV&ZMisKrW&(z%C&d8ON9$Rd6ux&>RKEJ%xqE7%4g=QrE{~^ z+fR%I{^1vQY{8$5d`GD*H57jF%pxxoPL>Zof2U@ zHEDe3vMr83{AAm)$Gf4VN-K*5UpRJ()SIWyZ-4$=UI;$<;y{zKHk`cHnbTEv>C~cX zQ?o1K2S0lxEF_=*^isVbblRaX`v-4u33G0yLDlH&$;X>b`syd|CUvIM5m|cq^rECL zpIKA_X{EaP*{9tSarKi&c9}#BCDX-)GDB6%&1R|A`|#7aKwkauaagL@u=~|wnIP(w zGNA`@vDE(ICl`wg;}4&wv)=N8KH_Vb784E^@=o2?mf=RzWvrwew6 zIeC)IVsd&eeE&y>)29aSeJ~-KQ3{`~e0+*CTXPGQQrW!w(Z$lt`1uE`G(vdWP@8i_ zj$1jqq$J|Pw0!H`C+2zaqhCB?ruogil%IR^3>#3#U!7fPM)#jiri*X?@#p@0eR8cU zmCsMHk$n248E>ebJ;^`#_)~wLfAo`Q_6pq{hSKtzZxmQ^=8ZRIge&jf=Zc+AKDcdg z?#^z)FV9s3X5qw{s^Qk&oZk7PpYNSoxbZK3xn5e*$7^okJHI=l$uqCKezFig`|{z+ z$=)yj`+K!HYk$AZoqy>xZB<_W!#N{p72J29-f5J!KK=NRm}k;euk_mYPE_d9nKz~? z(K|nWYBxJyeEBSCw49Dd&7Ph*ckbN$+X-7Em&6g_@ zIe&JURJK3*f z_cT8L>hXmpv+%~N%Z5i2>5T)Wo_+btFYT94?|$;A{*S)7pgDSTW`=MP6sWQkJ^$I~ z?U~Bqr&sE)9GhQUESAa?Td!zqSFiQBrm_FoXYaJWeR})(?wP;$QrRDbrDL<+b|&zS z%d_1Np1)(AS)ROenf&f|X4K3npIvc#uIQ|8g&ZO7J^pa}d;e|o{uBGyi894ozFH{* zLx_e0w^1Mm?>)WK`oYY`XZPe&C#vz*KrEG-K-X=JS~^c%d++J)sn`6^f3|w&l?6@~ z=#|scoM(#u=C0LXJLB!UPe;{d=f*92<{aTi+{!|Yk#&Qu6QZn6KKbm^XqJ8Oi`(^= zUR|n}7iMNxYLzOtdhf})Dt0d%>|DCsZ7tTFuDWn~fiabOnezI>h$ocQ4ZY<4=x1N5 z-#)$hd}rn#e)BZJ)~lpyD9+BkJL@KE4X?cSY&3st(HL0sKX~OlKibd=C1<=g>?6X2 z55E8Gsr}kNn(iHHCtjMS{B~@c?XA6WZ*{9f%q$zL2Uia5^Jnz?cjcGAM~pWtf^-H$ zz+wQqv=#EgNADUZkCUCgxOjF+O53iD*v9lHTWNFZH}VR^;9b(Q+V z@0TrUWxm2HPUIZn4o?50FF%hLX2tQK{>tyaR1lfMvNGrh-010h6S~MvKKkW**69tlMG^s z2zD%~t>NpmuJy zu(;F|T60qcxQzWP&mVvI=Lf`+yPMW#&c62Yu_cPGKthcm?Cd>w`rzh;Q7AH!##JiK z=2Dpz>xG%6rrBTf>s9~GKl?X-{6l-T+CTKp{=rLc9zS+^xg|7a3(2*EaO)R;{lEWs z`X8K`JXo9m2Y>fF=a&$9$kjz={nkO2UHSQ6{rDdVKQ zVal9*-FWxshYb7pum9JNs^5OoytqZZ`JLC7S*}%_IWs5j-WV}d|J^_T^5GC^0!JrS zs?E~u^xR6leD2hW)64ch{vZCgUo`(3> z6^xBZq_!5OONu8JrcR%nZl;G92czph`~ZGB@+zK0Rpw^qm!@9-!Lj47PkX=k_y77+ z>%@|`z1O$JCM_@x+VuE^)AO}jp*s5fFQ4z|f~;rbae^GC$gq6v%&VsfTd6E4H~#sb zezXPHO|*JzF;j0=i`B-$>wkD`nN$yc@z4Leo#J_+lX}r)e^qJJ$|Z^?mgkF%YA4q} z`ye_$V_&+l=9vmfy8(TEYJR0iaI$FhEs@A zk3P9+EU6csUXf>^l3Vkq&z0+Qubk*V_~B#ezy7v(@3UL&aJbR8c*!yZqA*)%(v+xa z%@Q-XcyW9C*^^CG>F*`w6R*5J)wHzIsdG#^>Sx`ptM@PUw-aPA9Hn$_dU5*Y@6GDH zOj6t9$OgElT>jI)`Y4*87yDaL;rrh^Pqbi4C4;XK;iV71xO45j_Rn30(*Z=d+jAQfB z<<;u9{;S`eT0VE|#6n%m)??ZK@ZbF}e|h`NE7gt5?(u*4d#|58d8!(u)Uj9PM?Zh0 zwXXm5|M?T@Qw4wb#+skL^~FE^+2fs9qFO|0Zu)vRXJlUEO%^S-iyE{x|>jBY$yO>m|+8C+5q=g{fo5XIeqet?}>uyZ_^V zdb;?n)839Z_x+cTpLp%HdEVE`h4l854QKB!|NSTA@BWkecsFUBd~K?(XL0kDe|)O{ z7=d%d3sk#h~w$r_RmcXQj9@{o2cw?VtRQ&kmp6*3P`VWQRJlJauZ0OL~b( z&drdMt5@3LTYvJWo73Mqp$>;`tFS^^9)14QQiDtPFRknP{lECP?-IZNk55b8lstWW ziIqh`sGoYRdhqc-{ga!Qcl%c9&DV<2&bqaDW{GB*W|O4o_~8AIpIqJ^1YEhwi&V3+ zTq1d<+2SEglsP2`ut!1$Nw<-{l9a1c>kKc zI9+HqSI#fA6o78taQniQ3!}()>1A?oeOpG9Z96lyzi}~YkxsX9?beWK1UqBm)o;CW=H$2k{&$s|k3RVL zv0t4pSv$9GZuUB%!mwsLRciAHOwxXAi41a>X*V?)oLqK*PAtz?cz^BUmA&;rr@e9S*;Q@sd{bv; zPtMeNQ4-Z;`_fj#HHp&H>n|Ut4*&VTc%B*E?RMp4WpwlAm@ic*Yp~iu#*no(AKVM3 zzjsE=LYa~MtUKP=Ih@$M;PtwZ(Oj5qCOaL5Fjv<+03f_fE}Wbugz|~kmb>r&^s~=@ z`UIBkJhk@LCVlJ&r)%NWRC#FiQy?U_I^RxAXOCyVwlm14JFE5@yR|(d-?Ace2 z!?$kGwCr~KSr8sR|MEw-)P+TtNc``%mPiQ~+mr!||R ztLw=K5KC1+vRnZHqqniX8Z}R!W=7r0Yu|liZoWnlJYe|l=Hcx}kKTUgg0b8%LSLxP zP0y2{iKwL3UOU+8b_c7w`<>7rC8fClnAYc(<_SQ@?&_sIeR;0YyY=+JjgCO^Nspd8 z_43Pa96MKKHAl1C8;1{m^2h(;j}B$V8xG~AH;L*nR!nca^X>(Dw!k=10_=79 zTv6>0^jfhcAy(14d)Ke8TcY6aT-q44ldLo9+hnQ6c@E#GsM~iR@A`CQrKAnlyQTtq z2=r2`GQZ3uS8l(3Ddp?s3No<$M5q=Q=a-u-Lm|=Fn`|AdNpR;zlNgz{DCw>BOn3|c z?87JoMJR2jfrRvA?CM^YcwBjQx=?M^>Uw|o;6jI)nWo~=&=*LW=QUGiNd#IVCAgW- z6l*QyoBZ+Cz{`_(NTecJ140?{7I8Qncm~IrUgps)9{Bt6QmI}qu4r3uMHgQ_(dzDO zjbfc=CEEj8ih>^q6ga2KPz2}}gG(18mi2l8TUstwXjKORM*|NDd3w9IvAr4aq#6Tr zD-?^1OEoS}gjuG@a5AVVE{cXu3?)oi)3v`}GGT_6d9XhAzhS)eEz&pv;?DN)cs?#l5u z&R437Gm9$(k|l1m^Z4UWA9wkd(M`C;sp+}d*&?e5%`!i}c_rktd!IiWGEF%Mgu>~m zQlq*AABQs1)j^VsuRVNp_tFF@aZ#iijnd*=p~;XnLdBjl-6uc$;~#b#6>BoIh}q*O zPMw`^f+vM6L=v?p*WY`7H*M8~C>ASA3rkhbFa<1#I@#~Y%HZy^hZi!WNF(6=6i+u+ z7MB2ADl*9qpZwx4e|7*`Q-u5*T`in_bDDG_y+xVrZZf|6qYu`pMIxH4W*P-t)eg<( z{CrJBIwM)y4E$cT_Tk$8q8TdjI&ar(?`Grsol{=-`X39O_M(lrv@q9x1Zh+0F6 zV#f&9?>yM|SyDh+D2sgL)=U-{Obf|wRj{`1|M1a7s1Vk0vyFTxBU*+?ES+Cgy8CzU z-@i1ld6rk=^^K0s&Ii?7s*A_ z_Ml`mItkGZZ+xRRE zgyzb^3Ijf#pY}(+H~}nWsP1TMXz=JO)1^|SaDKsByLxZ4a^`&9A8qXJPi%^mTx7nB z6_5w~ptnAb*h*9My6anOz20bob6qYqX;GC~TF{VhU)|Uob$k6zWVg@HsI>U zB#TFT+dY#LY-Dpyx{4fCvs@LzelIp98Cg}bPB6{I`HHrA@8R9+8&gj%Y| z-JQL)ZiHkSB3ps1RR{$uKiOE#kP}4?7nBDxh`>iw*%r;QbOY(2K}63^*EuN1hCMmB zd|_jl*}9wchOw#YQ5X4UF91&(J8hz6ZY2z z4#T*kwN$9ri56=nZRCO*E7MamE0m5T2B-o3@z(ZgsDm^w5KZ16t`9LgHy9wMQ|b*h zPF=267aY&jT%_NEFakjgTMxp7-JYy=lMq1f%n}WpbAFj1iF%Dv;=yFt8*EJu-Xmd z@!sVNs~|*}A$Xi1MB+GW45+0pxUF84ByrXq^+JtmG8|1bSy3WOD>Y6JI$IYntQusE zM7~?W7C~QuMVTQ9Wd-f=+IWyeK^Ujw-Mw*W!23lquTiJLNo(UQfH$hK6iYN%14%Lo z{+5@sM$Dv_xdH>G3@B(I8`dd%xay0H3<@O&8bQ=;W4o;OcrqFFI^E%L*g?Ks5RlrX z)vyl+K(kus!HWas7u;#2|81sDYDpR(*2VC_)QepW>{%r4VOVWYX;LKN)fOqcNWz1{ z0H1NvOF|pkD(H4Bs#3*?LzzNOb}^Cuw77Z`qy(^*BWPNaX@Twq70dHrynqgzlO_bJ z30i6=AcvY?uq(P({`MrpSL8k7m6L^WEXg69)x1z)n$?WS?u=|+yO$Vf-PvE)gD zmO+>XVI0P!KOCjDZefL0q-GlpD1s2gFU^i{{D*_CuYfQX8vwt-QU^l@&)}WzpqqGJ z+V3S1h}Sun8cYO*AsLW?J)EMnzqUE>O*hI}79Ob74FVKx@U1LAO8XldZA;d}1UzK} zlrpT82>veEIlc*7mLZdeOfLB9$k75A0=t2OQtPd*4ziq!o-;mjHS?kX3cF&1$qH=+ zu2o*S04jDEfO!x41`PsC+6BMK4nfKRGum)N7s=F|p9wLL6{kHKwn6o<^HDfC{{;Lo zRS|g(_+ro>_JH-8;KDl=#8U=qN;ecyw$k2U*h@g7LA{TzN)R*;s|frbD_@4pJZUip0oR?>SZ!79Blp;fe6AU5?ST-;`Aeqpu zIRz={_d%;N!I=R|P~`DahT#<}?zLTD0^JU1G=T$Mz;kR~Q6PxWG$|6wypd!%J<9T6 z(tO8IIELfM%1RZ!HVzx`f?g+yK&p#em1B4rYK&p?RKKix?M^2H^T~@Nu>Cz8FBO~0 z(>&OJf@HTxF!-E|@d*qVYavvhBuWCyNN#t1dz^use^j!8Y%eq;EJU-#ih%yz_HZ;v z!<>@mxF`hBHMk8lXlmem#<_sxdKiaZW{}4B`s3B!kp=_@3-WSQEfQk1U?DGzl4xSZ-4&Dv&$*HvfR{?em78va=FoJl$KZM{yU$4awi~`m#fm? z^2Jq~t=B1{T3I=Fa>0H2`4^vU>5bV_mEOJkqw0xc=Zm%4^0^ap&O1N*?6U)tu9ceJ z{>=$_{0C=BEKk*_@XE)ZeR8#JQiWykA^ZIFYiFtgS1B{?dp~;m@PY%O087a?=z6)- zKy15I_V0cE=_k8FX=$-6B%^?sJGV%??T#ZzgC{@x=>xyjs8oL5Rsaxy2J#PBVljjSih3PqJ{o^11 z^!*X&KPyDAG1BJWJh{*y>&w*IN1y%ZW{h*8SiRjfbMfTax?+LExBA1+Kj_yM2<)HP z8(5X|b5y!HKuYNH`|pgK^JTiVQsgYPGBwp~U%on&332@PCl80@`LlB+((Fz;O1;Jf z<5i!nklE9peX&c-%++Y6d*ktCbMEAloWxSC!u212`fOM|GgT7(;oe@GnLD$axyR75R=WVQQ|;uuD6NBRgKJ-ZvRQlmr88w(A6~w`#?CG4+t=0%0wjs(;QqC&IkTwtN2#S7 za_H=2cQOuh>5#*e*D0jJ+UMilG5HDQ0JGl^-ZrUx!rP(~sU# z3njr2TC4@0Q-QER+(nT@ck|}G{jj-Es56qtw#tPnu*7~KHCq6&_b%*q#g+N0tg$Ut zR^evaHaMyI15p>_k8j*tm*D{^94&{LMUxYLUty!lPcqrgG5c6|Y(FBs2|9yP-laIEUm8Jm*La~(Uxzlir;akRV zO}8#zSyjqNZ(!NVjV9iyWNnj!y0OA6iN}{N4#X;D=qw?DWVC#4o_6ENM)?bBL)I?c zxVq`H^(G62%aSdkK_jcu_cbfYP*1{GHtTgqk+fMUhrS`BNsId6()nl3#)%89~1Yl<*r#tRw3~%?=#>2LY0w}+m+FTP%Tr zIUq!Wn%(wsz@Wwm6~}&FG2wytDT2kO#FKH#Hc=skI2;7oW}O0e-UsnJ8t&|m z9hTxnmf=OFRwTfD@$0%ln%&`xjT;9ww? zmLRbPDxTnTf%9)m6lhtxOxD@##=~uCxhQ(JYNmsTtyUS3=HY1w5^&Vb!`-e*G#E2( zr!az+!oe+t(@>@aRIfUN3)c@4ftHiWWPo}MYH4P%+G^HXvKM$gpsv@wIyR;N6=&wpeIdFn~&HF4q0bYZ2mvN%0m4lmuizw67Y>G|1slp8ky5~Z0rx_9%vXE!Gu2AKUlR&1-jW ztf~ak@QNFU8Uwv<0*+6}9mumzDRVh^oKv1ZTN-x|#@Q6C^7@+Z+CRZb@{>BicC*6aahY7V`g`iQ)>wlU8fBMGB7y^5p5@iP}HZspN1!5LO_3z-nz&BO$b3U+ZW*loR-h6qYezw6b8o0MY7C-w!;3wI zLy3q3SS`1coo?#D<{`KQgn(LcT?Y7qR44|O$EqkilDyR&Bp1Q9f{P>q3PD)g9dz>8 z8z#D)`dS_;=QZ>|`;arv5P^o)QE_ozCXV5jqb=JmA42098;btK(^?7&KHM zT_^%?BLNFLkAfV}kWq7-*IuErJ&2O-Xc(gkO@~hd$R~$@Of|n{1hrFLESZEihbD## zWRR5*_hK2m{?_g|fJ=du5EVs0VGB$MqIVzXHA9ptqNoP7=XtD*$gI~1au?9;tc??u z1lI+Qm4{fON~lO*pb6Mldv&b`kdc#6KJTHL82~L4F z2~h_M_!v=lx_)7Qh+1c$+z3bo67Zv}DFUxWtB24^77c?e2?BC$ESak|iKyXZbcUmz zFSS}I%?1_?T0S6YcvT2@bX3M`{&*jlJGKVJU#Q5&*08{C;C;iPlC5NQeU#>vWEO7c zKus@X2PZ+GTNIBnwWz4B^ymfLtYKaAkTpyjl9{n85(0kT|N>eM7b&977$!^VB}EZ zcru7BXeu1JAapRxmWr}!xRMC}0StE5_IEodQWiLhwYy!5CV*ld)fuW1ik}8+tFeW; zc;5g|2&LMSJc7beC$S^^CP;u6qtfCB9v5#ON1BFwFvGN-a;3`9bs60xc;oJf+fhTR}H(lUH z0(g3m5*%z)(pdo1JiuQN^QhNDnKeo_IqaVf>^@Afn1H2w1L%d^gh?VaHjDQDIgae%`t@B$n-7FD7WBe=uOjnz(`*5dJXj&3z-)du!L1CW=*pm^iy9LI^OiQ@~9 z7TUjuGGF9^@^W-|KMItGhnpIp*3wWHcs*!$QYm9l)q5l-SX^^f2`ZX=m&{DxCo!+NyxKxej*% zV~nwd2nBK#g9J4=H8^4(fJfX2f~Az2@bHT?2NNQec4;LD1 z&&z;_C4YQ)Z8u`dMKC#sYm-c^&7CjFHlBfu6mN|#Ufa!Z=Ln>>o0v>#0sKSB)YwL) zMw{yo-@7}I!0E#UFmWiC&z&veJ_DVslmQ_*Ub=qy+IEJ648@__23wq&nr+(M9xx{4 zvN|`Pe)M)ynOSVW4*H7iU+;+0@>_0hu}dFk9D0Tl@PsKjvCam0L0Wb-!e z+`lnoR!S6OybN(xJEz|7)C&N1h^fzm`W^hWjX>vs7@`p^!%L>alT-5LnN7cMtS;tMMf5sl~JjvY<%$9)3}IFP_91S z^h#%^mT4n^DQAELnNIuQ;hhe#OnRY0tG%&Xn}w%|G#lbw%|>mP674;_ze>-}Hgp{7 zKxwX2SSLfNS8l1`Z7|y8{(BeoN{O{l0w0EQX=c7E`R&X{y))2r*Ph(Il@^cBkZir> zjJv{efdraAT1BAA%9bG;!@~(TeYPTrEjHd+*NY2ex|L&W`AOCls>%6l+XIWPAvukj z<|AhW0zKa7I~)a2oELbyUge_A!>vw^HAk!46Az~cz9zg=dSz~z0abyMx>v3bB-$LU z#kgxFl$&^*fn;X0N#ha79i_XM*R^sP7YHD>#`*vNz$vp~^dasz7(r)!54-{ZM95|0 z8?h@i2@%;lTb3LUTM&hF@I$P@){ddplzkSmFTt z$VqZ7a1%3BD0A@k0;D9N#^LG7W{gzp0L~vG4%{i?<#<{O915oh`pXnrba?rl2f*Hn zbvayJOC-P{ILAmS!2Tg9NL;o-Ih&WaeH01e!BF*ZqhupY;5ZRTL`JxkhgRe97-{wV zuBQCXBb6grBOUZ2)Yii>mU86<|0?$-ldRiAoX4_yIv(OW4(JHT6bgs)^bcHH@Px8! z&mOMJDCRvX`9_*CcOr2E5VCiY z-bRXhZ(wcVyZG?3A*&|R1G$?3YXu2F;WexzAP9I5d0c=Co8U`su12VJMKTa+0J5@F z;0AX-xE0oy2rK6pVD7A%uJ88M+A_FDw!t^WjmMAI$i~MjRRTLz|Ia!K>n%@qUGcI5r^AsEI)`IhpUsq;10b(BbR0gCD z&+6!wm*dK7ZjwEfkPn4q*yuif-+n;Tiee;J`(Bn zJUfPKMyePPU_^>BVEK9jjKYEkKZM1l$=b?N2|OCMIA0{q-o<+lZ|}B4a08G{(ul?R zn(QNUWaL*M;!dM@b#DiEFEvS2;^$W*vEZhVysRQM-ePsYYlpa2r3$VPoCvP5jF{f( zfU1@|>RPscZNCi<4H;nE1pxOAbQUX^ftruAtKzT&K>)`^gxc{kTrq(zaBkxSUNM^|&Ji%=x5?T0(&D}x9WGm5!G09I z0;U9Auh&Ch=i-E5dr*pmoEk0?flDGIItviY;r5#0!Ihm3tN>#8JZglMhI+~!=REV< z-`GXM7#t`ZoG^=#J%qkMr~(t&q9h;5`aTpMP}=0^1On*5?PSnQl?szweE9INt>qDh zgCK`0E>$?oN40Q+1R(4r;|muzyDpr3WZO_KOjN5#UBJnQ<3aJ>#y1l;-0H(ONn^daFbC`vS9ZXP3gO^*WS8+cSE;4`zEHw}z<@sYsqk;=0g8ts&B)~;mo{fZV?DBaHAtxb@(QqkL|I)p? zTQ&(sMSkI#(U_Yp3%Ga!oB|2FhW6I=TRQPUH3%Kob6VZ{z=>>Ajll zI?sH+&*EF(9J^fBIin+M7(|K@L`B?wq@UMg~X_1PPLoM$*jK$LCbJ z$``Kky)XO${CgH;RLzJI8@<s{~rJpbn(O0jUJTrRP!^C22vSUWHVxP>&d-dJ_m zF9x09KLzC6<%|bRJg!XJ{rm`^6K#1H_7${&Fav5V_{6j(QDk!kB49P-LA9|u$_h_FCm6%vG6| z@W^ERfh(JrJvR<}D^yvW?$o1H(NKV>#BtD5EKNE06{EtSFPLq?Hgo9B(54^)$d zt=u6-RCE_GdV=BH;P`Y}^g977nD$eB;E&4x5BU5tqT*vC*;=EBl?$K`6Pa{6PNBox zvBFJ)>JyOiArrBONL5EXW1TF=UPy^ck2BW#O-ZeJC!goOpTmb1sh0 zNpSNx~{L5mBeN>!|n_y|}Wa&I^&dxK`4KCqbfvqi>X)lk%M!_v@6IPrLz zK{seGWe)as2=b^Sv1NtyK`F&=1p?z`&BBiYy#jEf9>6dpmlpm>G%KgQ0yAZpv!wHN zPKpR*j}RBgot1T%qd;YQz_m#^g=26Q`Sp-~KnPhA7)as~BU1t4eo@*{fk9JE^8om+ z&^{<6a3!jg!0jS5j*Jw!<)JjqjaX^2Lqm!YCs1kyu?56rhi}FT!&5^}76EctSzI%? z2mfPHXdwAC-jXaeDiHu{u}qF8xyk_J%Q{bq!ybsMkO|9#vRvZj^#a_CYu0&3+$0HR+ZR3f-^FAq!i2w>=a~6<+ozxCQpVZ1#Cn`C9Nx< z6Lc3gGkzLeQyK&=9sUU)&AWhODF2xTR^hdkC(cjjgzY3xgMEctFP=p3g`_;@mkYKk zKBFKnLZg9Z$I=%9kpm`VmVtZCf!O#9JskYm|z0#%Dlwqv>J5=D^ti~YkqQdvD2o>0Z)$b zbOpy#Y7`JRqZ!^jz~Nv#-6|~)PJxLA#$90Y zm@K*YV>jwd^z|tQeh(iWjVn?4Li7;nkj-FnaaV&bi^*iP2CKUl56}0y2>@MwVXc(( zn6!E(9$0(YbSjNAKRvl%%9${$EQ$JHGJw=?F`J+;gUv{h7pd<&cziNUJ9K(iqB@+m z5jg3=l^J0{+jgV@ex5%$Z2DmtJEG+Q!%(+*Yjw*Jg=%KAc=PkCZ(m&CKcb;=tn>#( zk9KoYrL*~fqylbVx_|Qg<<%r%+}J>x(wYr34xL7$XEZOaqn>baeDeI;2mP>abxr5V zwgASx{Ps=e`54v(lg;_z+2wKDyLxNM7^zKW^|0M+(&;Qdfs8{j2o{%D$DN>NW!>OQ z;n0$DXdtHW%Rw+bzVzhD+qah$^=BVkGv>$halyH{w4`=tL8$3|LY3XeFJGKD%wK=> zwIPR&D`Q+<);Lq`F*GqeBSO7LZ@+)uv3~REElX)}ILjh6yP=J?2GHv47JIaF@%H;~ z7oIy`Tvvyi^LaC>1X(^-Wt#gfUk2XxBE3;ojq4 z-wX_&{L?4e*6Tn2G;`hl^2VmGI+^wIJ_8aaYhv-^uRoN&`JaFDRq){Ly9Xu1jW2JR za+7&K?=@;o(pfe4uFeWe|LJ$C(NDjeH$o;fJ%&hY(GIHbujy?5+~~zGzy4gk{!jnY zhrY8P-&_>5*Z%PNT4et8@i?wuSLyUddz_2-b-eZa|8(8oKR7_srM-7sS3G~YAJZ(Y zsG$TFC(nL(JKp;3Z$7k6-~8#-PIBw(&z2K=j}HrW)%vDdXY38=N zJCC34Wz^TcSPl>7ji7O3ZOaIesXDv-{&{`t)6X~k`O)Ja9_N?-^KU+Pj4t--A^p8C zzqo5DKmYOVyYi9@c6?Q-GqyPvO$+OPk3+gv()blUcPg%BU2XI24{uw`pM1U+=%1fdZOeBw@!4V1W3p1jQki%FA~B#JFfe8wd`uWVJjPSxiC{jpCb11|Cs7H zD^Gv=@j(B{NB6zO&S=stP^WOlcxf$Sa1ZSC^i;^<>APRvb@AR=$Dm_=b>4EXFX?>A zl$1C4kHV6IY41rde*F1$b@ih^+;_9ZH<&6Q(s$ZWXjDY8<2I-_*0tW|*{f&sn0`ZJ zvU^jl*|ZH0Os%#1DJ*H&0{Yce19~4?Wv;oA<8q`F$rY)sxbBb#20MjD67@?K{4orq zlVb4DtYiVlk;)bkqai7CFmg>daEHSZ9lZ+{meSP9Sc+!G3-3%=O;wsShs|WLMa4P8 zXSKnjZw{v0>s( zn_4X3GHz-diT=^m)zL5)z_*aju-C}Cbt-5oI5x!`c%a}T-X8Cuccx_oq0Lmf-7+|# z#^lYT$+4)`(WK@kXXi)LQV?%J)HCH;chm@~Zr@e2s1Z$QpkGao4rcvI)T%WF==+kn z*03GgxOI2ao`AR#Mro05?e6ze4wEZUsTa|MY27W{Q_DxE>iySe2bK704w zLBVwUt9y>>&UVGI^wk$PwV@*JfT_Xb?~bY%`{pXGK|5tvsg1~WVMgA(v1$(UI5DE# z`>+4czc!aY_~?$kwtv*|uU)%oNH?%yGYUU)IPF&p&Er=m{?C8&!AgAZ<&(bq&c`2K zvozq?`E_brVGmVb!MJ9v?{__Gcc5dj5+l~F4O0RPpiw|<)vCrVo688z-u>-W@OS^+ zfB%KEdw$vXt*_WSum1Y|c6{T@&sTiKYR045iX9)F#jkz%wKmq@pJnOvYUgjRlHYuI z-I5;+tA5q3KVEY``17y*jSqi+)75+S7wB8w``7N97>U+uVEdX)l(L>c>FCi_$8b+q z+JAi73W582)2$Z%#442~T&bs>TT6GBEsdZ5@BjDz=-&Ac|HEh6)adANm=D@C>ndla z-ObzAmNo$->a+c$%O~@W^{eZ8Vg*u7N*<@l;){lydIJ{MqvOkin&sN>KUNL??f?2e z4|Ko%5C6QG-9F!M1Wj74R%diq_n$nQ_}9O=p$74(FU~LLDgB1t1pzElU{V_e=%}^n zuW1G;=-CVG7NlSC#(Zy(v2U_jRgb@YdtNr*zqPFO7N&=jl>Yvz31@q1^oU)x<;X3r zzJ0k9Tl@0b7KEZP=5o`Qc&DzjpnmE;~IKC0TopaK7Db`QYP~ z_|EG$7j^s1k3ToGE*?&k7PU%eamDg5sE)U@8()0B9vL1TEh@f^8@KhD;Y{pyR&@}V z^TUIKN!En310>Ax;eMOzxUUY@n3aZ2t9SW&!;7a+$Cg`Pe5HyH56@59-pxDr)vipv zJM3m{EBCdYbbYjUyeL`k-CA?h_Ro%x#NSyl#Vd^}EHuQr)^KHfcyTe$Xm9Z(l_T`F{$&D~hEmPL ztEUG!F3v7S!IkUxt(oqyjb;_a96TXW z;Dd!g^spK9wpg3yBL}{S5-x(06X*x<3cuMXx=l1IHlu|R9AH;8-)ytLz;lZj~(G`LDa1tSlFdI(b~w>u@j zUZr!=S!3nF8(`;2P_BV(fO7ln7Qdi4a{TMHiDS;n|_;y*-6 zmaI&+n|{@b%3T;O`Z+hvv@O-@*Lf4{!Cb44fYOOqdN+gS-4@PqN+&&LvnSo?HW_Sy z*hJyq*qyQA*=5gh>+_r1NOL+W2duVGZMNv;{8pnq2xCG}>WC;a(Pyh7ptPvABX{K7m5!h&Bwg{~; zn}ml0?j%y%WO4SGM}*yh3!ZSf0~`6yU4tYr*d4)4gYk!V^WIkK>aTx)-0YfSYC@^1bsS`TTT5#ue=462n77of%EMQ$4pJ5aZE#_*J*{{(YImVq z@vPxvAp{+?{m%Nc@83)#)bP2%#mke-`e$EgDyNr_JwE^Rh9=w?)_hy*!K0UN9=9d# z0HSctv$bkS^!FD9!}U+E8xr+q)}>l^4uAUBKOdCBPW_fCHQg>+mzM3-ML%xV>WxO` zgbBoZv6H|4{ilX?ZF$`opFTRTYCr#EDKePUB6fooSSXS3=*-2J|NCF(=IipbTl)`p z5*y##b+vZK1;16V-clPKyy@i!|Nf^l@2#)bU5Uod#ZGel>pPz5le30v_4?Ph)a0Th zqnXk3*L(ie6$c{V@wgS1co1Cr^b2k2 z=xh)(ZLF?u=_w$RwZ)_FF3W~heR8~lt;I*X(dpAsayBKyYEKk8#gr3&hFtft^MZ9)yVwec6{^Z9gP>O z^A_l6qB)5cA0rCAIZ)^Ll?)i4>i+vAhRFLn|}wS~}?cC)B-@+2wY zn&Ba?2PqHI@YMYIoAZi`zn;Po0$tMbiaFI8!1)ACv_zN>x^>pl!HY+u3~C?-FpY9Z zziEtj=ADS@){Rwrrrjw7Jh|-`&nH3rXaJ#^A3|kX^LDAWOv_8uM~xGRVND<|X}D;YWALy&W{Z>eJRfr!Z29vazZ<#NR&<_B|LCY;z4_%zY;iVA8J3r^ zN-9xy7(9(f-(J-m8mjL~chZd;*3`bnw41OXesnk##`C|u8ThHd-Qgm<4*$ko zO=`BNxVDxzSnHXH!|1AB{mV}~al@ttYqZI{?pe9H9_r5;5vx{XVB2D{Z4V7zzPrq6 z?yfltgK018Si7_4tjuPOFm;l_1_K~b8eP17Gt~a!qxJ0mldDBW`{l>q*m_qFI3VtzZ>YCJUp!6y>!bvzTC~~@88!rBdKJ_?TR$dUS3o!t6RP* z?OV>Vc6Y;DosJ9k)qCq!ax{uDtke6CUhX6e8h3_$I32Kp%4B-unqRf1^AlWz`?XHz z>pXk+tm#-^(-Q>(2R!0r&xGlTuRak639#1Xb$9>UzkNFha86(r-tHr9G@0FzsLuj7 zg>iJmZi()G|KpkC%TL#-w0Gz2sOILiWlw8wmb0r=_85>fcznEb{_3)BU0F3EkZK@5 zlXIa$WCwbBSfMig^CRZ~UiP~H3>bI`N!S&wbj1Wn=z7d><4AP8Hg{p?;pvdZa~+x> zjw=vDI4DEeA`QCB=eHXyspHo#_dHAYwcaEK4wH&&<>r!^gQ}5o8BHDzkU${Szxw_- zc>9ZGcedK<_4Bs7UoZRG^AWwZ&4rM_87K^3|3?`x;~}1I51J{bPHT@c3TEIdBn{@9 zFd@zMaO3FJ%Y%ZI{>~b!k0-4p^g@Oo!rXQ^q3eo&M{M@PPd|)o_i3`JIEd5$l0a{p z=Z1?$hByqDuYCFD`(4u)Uuv`6Mm`#_Bb^NQPPTLAb&VUQny53ovmuE!KAw^%S*<2$ z97EOF!A>)3H<%nmm*s%R_2y9f_;Rl)V1!Zb;9x#!QnfHjcP23&0hHl~MeP}i75cML zJ&Cg&e7K!i(MjhN5-ohpO9_emAmGH%@bR~=JGX!Hk*<1paXQWFZ+>wb3u;oN(DL9& zkBNl0eDQkEbM2FRe$Jq7D~(a5Iy&5G_=Q$W@wFT! z2wzui%IrSB>;yC$dN1IA#B1>kpS?OYeRkcy^Kb@$xANISc`(~s3>|fsO!17UVX>9S{@srCz*q}1tafOV$m$$Ag zsceu!I(wJr^F~4(q^P)>7z{Dl!O#Fvjn5q_^+))IYV7%)hfj{X6y^jtM9R1k>9Og@ zxDY{=Bh?*u$t$wB()iXcnlba{mMcGif@jtkLCY}I;tw2lmkoO&XZ7&;x5qWVLi1~u z#bpKK5d1jdnD~4yhZzNHxPA8QqJx6T7Adv*-MrU;Ot(B96}@^ruUeCL51)?l;nB1z z!%!cuSeL{vqbJ*L<=pC3iYUg^MO-4v^i@?7zTp4%hE+B?Te3ZBL`=)K?i+kL^5-l# zX?M1F$2B$#Ik?ew`o*;>@565jZJuz(eSz#?Z+}>ZXyS53Dim>M>HC`Hs70&8D1(Q9 zN;Ne+e}3AOTG^3mPk>cdsr(3EVf-2ju-E5EM2HN|&-+o6)&K#hJ8Xot_cuJ%2^2P~ z0dE^V9fSYz&Nyw}Kzp2Q%%)YJZqpELA}sQlG&*w7iV2T1+C4rU#3+Hx{`_Du&RSQO z49U)*k#reUT4Jk zv}S3u)p~EC*UmW98#*U}Qh19r*qu6(LIaHu5d)17hcV$(RE?PCkk3HrUDCGQW7RCNY$XpN$OI*dhMIJ+{^_HGl2drjVwl8?&+Ld+VKG_^R-sMdxnvKwjv;T! zIf1YxOKhAI`&pzLG#z$2bB5@oXtZ{Zrp1tqL{TaflWrs8_jWVoHX0$9BQxL&7bk}Y zgFLOG&xbIJzYjrCc!m%Hm`vIncsx`V7ZmG3`3s<7^|WJa(@_`CfX)0m+1$H4YDXM451m&kC4);B7C3aPVo_m5NSJL* zjxTp|#+40czBld`ncHlb6P;0mJPwl+Wf0C;+3BO_hglu%L7sLygU9x!t2i2!eYkZv ziM^D8a;~$zXmdcIlPBcK&A;(vJN;DhoPSt29yL4!}$ZiVUSKPULEo~c(Wrjd-!OtM*S{bvT!hDmd}ux z9uQBFpcO3f=*80^ps9iM3KUXK?FLR2l@>!*(OaV};`pd-UtUZzcAd#5{37ZT3w&j` zgVMnZQv)(Wx>&fANkBFE~nf;PIA9ovcBtBS9Fdc-gQ69{OY_t#$<+dS! z$Cm~cgHTD`4kV1tNf~+V}vcZ~44~`%1r#EjbI}7bD zcaOK%7{i7pjr|gmbg&SNcRJ9oQ3ab6O0;bF9zeEE3EdooBgr@AWh2uRJx>)&OCh2X zSBUI{yNF_!VgWuD7fsU|4S~Gm+XJj4grt*g_HkddvWF;?84f5(QFWON?#98@K?>J~ zPy?@uLcqkD;57ue0iRIV9^rI*drFwhmV+b?2-zWuL|=(82e^730fWevv{(a$&Y)eu zyu{#6lp%je`^;6#uMqqOQ7+8@%uVzo@BOT3eYn}EkAS}*f3iyme~ULsqNDKBe9-l7 zaZD%6Ou|L&6 zIc|A1dVtVcHpXrStlUHjVF^^mqmtjG=Xi#YRPNC;@vi$Au0_hdZl1M3*d~k`@hilb z2s8&qn9w0X9R*{88j~qDI3^J`;1CCaRzi6pXfa>n2ouN-4kg@6z$sxg1AhT2iNH*B z+Hm8czd$yUB?gffF$Bv9ZD77Lfr@Uk;atlj1!5Dyn9!%-Rv|!!&xh|=vw`^mB~Ya* z%wZvwBmrKqOSGdL6|EWz6FO3@N;phaGHdMN)%tIUEW^pJ&7sE&ZO0^^oBN&!#4kr#)y^zv`gao}5vkT!#v8WK_;b)1u zj|W4w!`>o{CWSMZfZ+oXACW3A6WRuZvKeu5lJ|w@BWy*X=t9=xUWu;}9C>-lm`_e$ep-m|Z2AXHBKzk)yB1|)6 z8w!F<&Be}!_m+^ugxrSL2?q#VC)DbEc(t6D7-;32$g*PBR8pu}e7q`b!JyW#8D)Dw z(*d1IIFLLas>eG=S7+lQ6fJicrx2#KxO2w~FymNONl{f%C2&(=dh30SldD7Y z7xYDr%z*9LV;9^Vt{jgp~D7U)p3X(R9 z%?<@hr8WDD6NY?c;AD70gzfgV`u+xO3lHn9fS}m0L?XPaK)7S*45Z{P5!;iD@hY9MGE- z9o7N>i*xPnssTrYc*vpMve%#g?Z=(0>?F}blV;I?Wx=SE#PrD;U|;jwbsM_a?vL+I z@=m6Rh1O_X_Nu7Ex{E>5LhFEB5j0h;a?~EYd)D<)AQ$T0Q73KJ=slShQ8*N!ID3Wy zF2sTU?u#EE*8LRI@C=%*tjmA~v?h8cmzSMaQV8_U(%FySEz)ex=#6@FNJFdiQiNJX zTqed%5yE@zW@mQ))r;+nxUVJ3{V{0fiayqx^+3TlRYs3Qvzm>O#p@pq;(9G?_T2br z7Tda~%j}-dvq%@zX3pAl*tn*SU;g^besFz7g*VDz z^)7z-m&=4|-54r#M%}a-iDd8cqUTu#D-Urx229j*nUi0BK1*!f-*P3Z?Orp@Y#>x( zX704up)0e8xs6&!`QeW*TIPGuJ#yWHqhXv_zhno_feQeH{Q$u-9-MI&6)Lc)%_T}^QCLpk#N(0crVMK}=K}F}ZCl=qm z7`oOrET~Et)MkyVx@c!qg*b>UY`j31V2e(lT=l$a4c5n<`K;oUK$6o39_<#}%k8Ym|LeKL+aEb2{noFBSulLj+{rqwi&}!Z3 zdT%l)l3_$d%Ag)aAI?$7o`)>U5v}iCT~1|^hK7k_jX98{VX`$TR)9pS*$hTcY4^eT zBrlAXaQFP8X}-6LIc*hV1#u2YHd=YF9!VL7IwakcMmu9#BtT$FgIbn8!W6D_n`tkO zv7liX?^!I7>9a?pn4S6{T^kNdr1TgU-DNhx<`b@u;C$RtpR2<$J1^xj4vLO6a>=-!YrFKPBmn{NDU(eF&V`4L2S#ox-x7R z?yuPjA{9G$`{sG*i%(a*v}(@2G9$rFdJR_w}yA%_@6Gm*Jt3{{9@ebx# zDp7w}J&8)E5B@~DB6V-ChNgy1n$uKaFhj56QQIKx;C&H>do`K%iUBhY#Q8cRb-#^N zHaKMzO(=t~0QAD8hfppSmeg-qe7ZRA*aESFtsq|DG$V*sF;Nsv5r2&ejp_^9ep2c- zFeLGOP*~1zp1IRhb(DJ$r`SowXoS>peg*0)sdX640^DEqX+3+2JZou>v^1n2)5}2OD7eHVLUIY;{1life7E|s!K!!h!PZt_6{^vjpZx5kb zBXc2yS)4<$fX047sSmu&m*VXmfTlQz7bF^18Am9EJRph;*^#Iq_Q2HDL$@0#cE;mD zw=Ri=o)iTK#swmA&s3XCIVcHim@zXUr~TWW_sU{NisVrE;zNXe3E##Z z!02T*Y}M!$AQVI}l@S9^v~tuoblnaIwlfTB?coX*VYp`EZ$ecr2E`((mW7`(%`*N=0^I}4wRLN%MfNog z--6A^Z<8>Hon}f3c^qkBoUvPETR?bVQ3&aBWfdUkQ#%W|!Fan?I^z==eoUk`(# z*+SqYqz|c0vC)G^yO^XRf&!l+xn3Hw1`$OiaNbCaT3dsr z^siWJvEgE1=*v&`7cIeOC{Nko9nNrpjXCZHMV1{k;Wcciy^Y=dA;fuCc-=B|)A!&?~62^%|RXR^r z1O8iB&C~9%A%+V5Niz=WPQ+TZ+f3L^O!WKhBIvyd!K08w_#)NW9#JODNzg^2cOwQo zQtkE1Y!4Psl)D6O<4jKucN=8=Ai={iJQqZ^S8mhpcv#kSg97JS-Ra)J(MWL{qKzxE zdx$zHkEWf*0;vjyvO*jfY!h;T;V@@Ir&WqFbdYg1KD5G4_=h$lR-4W{8NyS**)oW{ za$?vg%^pn*!+1IY4nlXbHR|Hh!-*KLPiC!zT}NO7BN(A=Sb^MfXa;Oa%;RgA4sz~S zM$=Z@tTqO6_)EBWa#&PgL*a}xn6-o@?LC1PLpfyDxe7z(`|vP@yHUu6%$r&$QRkzy zBK3OD;h@-KxuA|9ty}35khTVk{ZX4S3+;AcFl)!n!YrYoDgq@kFQFlo4jg0hVt2mi zrd%dkLf{=v6-5}LsE%Z9SYa&tt9uX6he;xAp-QwHq#~OLuog27kx$ZNaeGkb;Bhl( z3x>sOh*vjUO&TnWvDpkn3hBXO3cLv(M-$r{{?{TMM2ZR(dr9&Zl>SOYMW~ULei5l= zYdY`d7}i0P5mW&C2PiPrEC2-J2SF@s_CR_2Y_EldLI8~!mxOgR2PZ%b=8ibpqUIu& z0#!3}>eF7>pf=(mo#4_?sfE!}iIP(!zeu65AP@ou@)cxNAVCUZjPoAoDw7o##SK5l zSK}88M<<1hN4j9a4(a>C*bBkaErE8RA(Y4ihGe{rpi6BGMNmdzkYIx+LZig){a!-E zKLBmeDY&ozs2*Hh^57CaP^ooORvG=|EoYjH-W&4;<<1pGlWKLzsw0Ox@LXUIu{ z$cqOreGHI>98s)r^i7KM_{(TSoGV#pwZDUNPAk_4zj?Wj0m@f{f4^UXWqd{huU5r5Iiqo@JAVhIC7T_#rp%MX}DmMndDiPbEvXi^RA1tvb2EcSF5#$WR zIzcWI8wCcX;4t7>U>~9gXU9Nlha;Qf#3gRy+-6a)0bzhT%8it}E_x<@So!_3CjZtY9`O}{Xxj@LNzD0^rBFe1xMo_79&_LhN?xz7eXx~X+tEm0%)LI z=kD`3_+g4C(SAW!5Q!v5F%Cq4dVFiJ6!|BCF8H#X&wyq!1(0eHo*K_mkva;9rid1q zG=O)ok${KrbF4!+d7z%GR`FL5<*Tv?xgZ5LmY?Gpa7#?01 zbp-iURa~G%M#xo*K|B}73o7?VK9LO?mR${sr~Ga)R!413^(a5gS7ZK69uCU}whW$4 zd=krn)xkXrfC-AOF)SfgxaoOdn)MQlF_=BTL z<^4@__}RQTSP*uNV%}s878*5tyhU)zqY!g9DZ<%IL^jA5gn=l^TB11x%jepa3t};d z;*v+nzQz5Qor*8XO_S3MdjsB62z7%x7JmvN3~!uNc~DkXCRBflCC*Pl>p;;3E08%) zt=}yoXl8~I5yRg!A>^QxY%=*qQ_MLWK9FmWSY|v{XRNh{+&V(F0Om$50Mi;j4|H|% zN8C~ogHZCyPJ>JjOWDiQPKePUpgch;m3~~E)h~AI1tuXddMhosP&7()Bov?}QqgZ|C@_Z21tf+m} z#ldzr>osg{XdTg1)S*=~xQi2R`rzeR&81cmQlH=d_SMXH@9QOZbvhrn^PbIHcQm0& zvxH{_ITUt(dH?ByK}feI>Z;MztK*#Z)@@CQNQ^ES9hSxEf)ii%U(^A(Qq>8qX3NlhAm6c>ZuZZPgetx@#=XcC(rr zxAe*GxQ{VF!nV0#^rxf*!|^tlY#lwl?6^139ma}-qoXz?BXb%fLEHs6mf`&wE!0Nz zrg(E#=KGVZOQt==;r?zbWIzuBM%^eSncXmd6B9X@@2*I(zr8&asVePxs!r4e+&%JQ zSQCsud}dHUCjwBP(;XjNK0B#;5lmoVR2vSegb4vj*|Csf8-y!?MAI+c8JYTIZ(8(X zFGI)I=(Y>ue@mzbksKs=iM~7)WBhFlwoV@7T58f5-09A2(Mj5MdW?-QZ^k1w*`6>n zLAq)(J7T@FM~4*`DoSs(G~At4ygH2))@8EX!2}SLn#^oy+MIv>{N!lA9nx>8?1|3q z$)e=K(<#*+_P})orlu^GObfaee3!@LIw}=3r1kO6yh9ZvWut5W95^B3)(jxEbPn90 zMH_Tc=gE)u4@P;}HxzRqX@bBv=`^%vCwh!zbLaG^kJXt0Xb;v6v=+0I_Dr#_#8O?@ zF9h$%Z=`XoCKyY40SoFR7ICzR83?;EEo}mKdb0~UZZcEmAz-CMSxQ<`2D3E>42mis zms1&rai%HgN1PBJ1aY9pp~7%?(STwG`6f{vO`A~&9>{HoBNCf8vzO#01i*;y1JPW2 zzTHhjl*OtnS(|NR52~|;*zyy?$BR-ByWC18BJK*M$=)!Dt*kT5GCkeR>F?Y#rMsgZ z!zhqPvnNJ63jGb)4Z(PAI;}%PMX;O4dI9y?ZB>|XC5ZSa{;duV<8vV^fgePmwvEbw z3Vin*a*Qf}P42EZ{IO%v6^lt8{bQ&wI5@)iPO*oRG@&wmw-`nin%s||Xu@33#pxxI z-Q$Oc^#H(%k7B&j10Do$r=0~spmGv|6j&Ah7@5J@qobOS88!;)TB|~efepAdkGO*x z7W5s;xs9?g)(1dr2Zc0^TzJyW5_05~CZ2V|aYr4BWgS22j9{s9+VrZ|Rn|yj?_#gw zQtN1d>oQdmOR@x@6$%qs!fxYT*}VQ$$lq>`?inyG{^vFF`c5gBKQ~~M8u`K z6V`7bCZ6stx>;FMVaD=QlswfGY9Eco!)P{=@9!S))?vyH=X!fwMU%@cfwxWc;CLC) z7(!#Vm@{fage8QLzn;=vu z)s{FiVE*kw`Uasg)7v|m=9zjMG4LKWlc=zX2x@hNVoil1$R;c}(rZ$^!?Q)vqtlo? z%#{gBg(ghND$Yz&c%q?TXQFM!40vx`M2qG`tk$GSjNl{zP%nlc(1n9;E8JNVy9Sfn zc@`fT54KQLFBBx=8A05K)KIJ&2eG`gjs-Xw1HgNe2QJWfR98m3GIC-nj7=B5+zxiX zSOM1dBnJzui66O(2$+(8f#r)dL@bN}^!`>#*)#tof|fn#e} zbuQnrG>&%)9ul~6UXA!$gYs6+I4vDIdv3fvf}&?yy1kV-e6nBkSjaY{&&;v3)XTTm zLJ$7@*9V^4H#IJoH8gzwq+z&cNLONZtdB0IamgvRGIR+9^M~I(I}B}Z*uwz}goKo3 z-PnBf?jWMpxEZY#JN=St_14{WoiIQD*Vnn#uZgn8&Zbv!F5fkz+Wp~Te_r+KHAWPN z>1sK+b!#PZ`uG3sy9ulr2%65?_9Vl1a?>DX1}CSZlug8Fx?pwGD+KH=SqBFYxs;3` zXn)*Qd{)FBsy!Wpzc1Zi)52bBG%JexPQBCX5=#Z+lKlwY8OTHgI&iPw&iV8kn`ow! z6-a(Ac!t&Sbl4Roi#TzJ!!3I%1}pi|>FF@4N7(F;L#`FasNIUiOS9W=WxN(>*i!aO z!6t!K1DGddrUB+jQa(S3b!Ct z8O$b)H1k|aQos=bCU9n@B&TqOIs$3Rig^Q#0kvSS3|LPYOS)jQ5CXDHmL-G%u9Xaq zshokW-H^ApWoiiajvHl{;|zB)2tTwBU_=}WSaOPhmFS*vGwl=PD&3qe`dPQpgv+-e zo5~+4zA0Pif70bnPjbV-;tCRSMtlpt`DI*Jz)%Ee6r}t8f^QDQo14%FY-qb8qLCpt z`yo$>njd~FuO?MXI05jg_(xErRJ;AA$dVb=WFp|`yFu`m*!P0Qp8|Jq6!6oLvU28h`AkZw93>S zl}Sh#Ml_KEJqZA7$Gc5Pia_Xacjyce!n8TY*^eVRnx7&N8a&v}&YOl*iOxl=foTYd4lBYnL&iY|LJKQ4=G8MqmY*6A|^lAxEtSYFm;qSRk(lPk|d zk<9=)F5rZiN71$m^yCvac2wsfsa>EW)G0dV7_mF7?SQ`&B1 zV?u7pv}Qa1e?0)#xQ;tJz=?Fbl%jGG0t)blH`RnV%%Os)nBa{xn5KE5%4Evbiugg3 zl?VY@NQ*qTTnk_OIORT~GqJ)7vo;w8Kn)SZj=3ttbJq#_`NCy45kxe@L^yy)CS=*1#<%5=B)Mn#; z$k{)@xj?9>l9)BdDx;l6JLR!LnB-&NmOCI_FtU`OGD=#ucF0~%KTO8`Nmcme@KGUo z2EYPv{gOF?zyk@~wP2Xa^O)4>yJh9UoAM$4hczy)g9_{dRh2$H**kmopdTUo3M`W| z7;&sA-km^{WCAIO2<$S8J2N`F*e?0;A{F=JV#1}@d&|6pQBfAlrBM?b4S2(Mj~*P? z3E#A{0VWwk2Mk7E0%xvRsa3EV%L{r^UbhNLG%D2Mhc0)S{5vY$`>jY$0t(`=I(qEhIk5KNn!z$9(fG}w&CyB z<);-U6C^=|TcR5i08B_~95>2s2RkEn3!V>u82#e3%?m1w9AGL*x1&&W8j!SLXvC7F zSYY9ms{A2H1|&+TOn|lM8yE|Ue;dzJEzip?KUCnA6ceL285} z$}(lY7kEmLNd6w+5lz2^)I{ERm_uZD^4bt)2uQ|23n@Ekm3%%gD9Q{(tO~ygIva$t zRMahjs{$ZWdnnFztxgAj2t*nJCQ)hdbCEn}KVxJTCVxi^CzTDGbVrDO9G95EiM7=G zZzKv%FjWxNd>M3&^(;18AcnF(a6U-5EE}<)di+l2FRLH?h9N0lL?LxJEW25T;<~@Sjqc&Nr)qU@IjkeUwCz zupMx23305`>veFRmND!*T$t+V0+}0K7 z9K#cV+E67rISo+njwi!jTdWVcBM_6g1NmxaJR8=qhqe<-<@I}PAUWg~Laiah1PU`cYs}{Y(V)EZsHVPO&gEt79K zqWD1aE@%se14<@R0EpTa90It|Kz$W0jZZEQd!i#`%#ICWxm-mKo=-_5NlpT5NHWIF z5Z(y2WlD?n!K_4?LZJ<<1q~IPJ=_8b+LeX|<72P`Xl*1gk{RzvO&&czY9z4Obpl9d z7}ysCpe~f#J$hDlfG`0|M!jl%T?672EN;JieNy&ue_c$nxPk)V6T@0AU+?1T4OhX= z-NzSSqKkDJePHARmF zW`POt=JGZ6cAHTO9tLz|Rvz>jIGZgN3U?pbjTkKi$3Oh?^Fb7S1xiwT^W?Z4kCg}g zd@xj+;9{n?cmo3cIvp5fYzF7=e*S4csMVTu>zl#dA6|A{22Zh7OlF#+R!F^Oj^*MG zt=4GLEZ<%UpZ)T~tEx`zO@z#r!s*k2ZAq71%u11DXV&s#G7}41Ra-iv`rg+!U8jHj z%U>2Ye69mJRrKJ+%z0mx+B|8r5Lix&baOZU51<&|sN#@RgS@a0Mo zvnf(*#kDuSzH#HT5AL-8%YXU%3+qioxoW+w9sT+`b^SBr=;0`63AM(x5a0kk{qoZK z#=WoZ1YiH_U;kxlQ2Uc!m9h5xO<(=xz0hcs^~X9pqm)H!Fl$$C-`!B%{p72_t9S3- zSQo%-o2%(zxny6H*LQ!iVoILeQ;Gb z+}#LOtEot)*-G1Ch?1Mi+hy0@y}4C<@%G*80sB8xHFxLovh7xB#kW6R?hgQv$RwsM zb(mBu_wQ}GstAQ#^H}HCS(XX6e9E_`R zyWZf13`cvS*PD>!gDDNGLQkgdrO2lULG{jgjBOEnh}dxxJOZ=?la^%(VVUEJ!5ytB zvk@>pAq>f2hw7LCAn91BB;*{C;VY9LDA1gz%1Qcu_QRYPim?1)WXR-^(Apv=AfX@9 z3$VZ9rAoUhgHhljhY}!-_cH%TOd}!0*j`eQD6=^wF(}DaD8V8aE3oG(^#zv?C5v8B z{B}hdPvIim7-?|ipp-V3`C(BKLZrBr@`9^UtYrDs{Il%hY;JOBNej#8BaoqZ5hjxa zE%PtvGm{dQF6r=;M`Ha7AVD|9H)iAFk9ddBvoa2)m=QZl4rlr_i88L>A|W4+E(SgZ zEfDu4mVo5|}JMDc_8u5OSG(b?zlU z1%^mXL4AR@2=po*3JXDeZ5VEH0!x#bgX$%Pp&b4)^OTaC9#aY~$zou{Oif#p!$|2G z6m9^*4GEFqJrX)R4~$74K&I5e9K(Jf$$E=WWH{=~hLyRjd`}uS&apCMM)^k4eM_PS ze~~%}h={1}IzAdyxYEW87ePji%(wYuFQJFbn1%uLz(7dMwUpk zN_lp4$8x9mSvx+Bk`u|d&xyBatppcPX#R|sWc)7o11*BcW4K2&#?*cs_j0@7Yw?C+ zR?SxgYvI;{;P9k4&L}3Olf}$IiX+}WnTC@?QE3tkE>DsLFC8GuoE%Y_Jw+cNqD3y< zfiw$@ijt&1?A0lVrBamPxt!nPoI-)h^$Ygu;cVqY&nKO4^&v`ZXRa@1+0$1msZFi?eqLFhZ(7R)rHr90wqG&?z-7U>wk-y(SyQNG&k zR+3O9h2uk^=;apr;Hg3EzL9W2!B z?CimA1=bGpP)Dk_J%Qs_r!d4lx>+U#4BEY&<>D3@uOp4%aK8dsh)B7AP_MFVq=?2j$DzusqWnv|IY<^z6ZDBfy#AHd*7Oat7`A z8}+JLhyYlO(ae)%s@q(>e|yQ+K6(0l8l|L-x$!=o)!kd_V0(=5NtWbFeAboGwN|xq z!|ZLO0BxFpaiFfWV^j<<7G zwKO|pJc4aAs?KAd1C3H%$EOcFAXT!0{)CLB1Cc2#tr!>%nB#5*r?0JwE6a<1W3*lpM;W zM4S`dLjh~&4E7*0U&m7+*z{>R`9rV&F&1qBFDh~n@c z&UJTB$s>=-NF$4>cPZ&Ju}ttkZLqzO+=Mh&S_^i2c1uo%ngqGyA3#KK0mn&ZzS!i_ zrGjX3XyYg(tqpx40eE0hj!=&As+a)AsLiREBfR5m>TGYaUCWt4&qS02#Mub^L{3$) z#7Au{b%8j+zdv$hJLI*Iu9M&>g|B@v}X#WRX+M}9w(D54pJy3FPXxdkpam?B3A-II7mqi~Tc=3rNR zo&;tWiYNbyTSM0jHc!hagdl+ugegN2Aw9Aj!JKt0Xh=L9Qi7*&v`7yut&Z@rXvH~( zTO_gFvS=zFaq<-MolNGI;e{y)UMBm>f* zbRvX}(D?Dm`ChLA6ByFCGlAAWf}I^OO(56lLtp2EI2DlkWEl8CxnM%kK6rT2%K#@} z=Y44BX&R}giD)@X^qQZz@mKYo|hg{f_ znXshu)Q<54%Q~I0Oi;V!?LRok8nwaB?yQkV5RkI2leUzM5>unYM@SZR73NserE!$T z4d;p~wR>3eI+By)c_9GVDdXJQFh??^qB#*&;w-YE3y+?>+|4*qV`VL?>co7n?ze^8 zyYq5{nO)kxa#tOyV>OL3!0$G0sH1zo{{2Bpz3E7z>hV<;kSC1pTxZa#u-=2l^>s_K z)h$PC3bD=^Z9n++r-gfY&6yJa;j;<7XDSLu6;F&i`ue<}<0LKrhXZ>;y^&0$QnVUHtc@Rf(%v=3HN zz13=Ux&#bwF0GoQk_ZcC;6n9ZK7RN8$iBSkO~)M8Xm8O9nq7s-?zEMsA@wnNK$S;o zxj|!eF|rl@%+S3EA87fIObnR{v3 z5{-G>nfcKm>I^j&(^{OVk_Zy4NJZHusHKT@wY$^E_qwJ#%Z_x~@5#;%IzfxOG?_Nj zBp#zOvl>Z~BZpch&yY}K-KVd2+_!G%5+s!*rkDE}iy_!v3=wz6i}`?IOYci%Aa&S1 zez(<`*?s$M-*DreEt&8JTbGZ=uH~)RU|fww^Yvmtw`B}K%M&^RyAPV*!Q*FR`|VqX zRHKl_|ElFvYgk^3W|A`--WSGZ1*9b=vz->ho)}&p6%8Axy^)4IKZ5wOdZ zYE;7ptv#O4Fx$2}9VAe>^YhESs@EPVQ;!F#i%G_23N*&8xHnX2Rf5p^e6c864T^Fc zWqj?YKb)1UXiH%=ga&6jNu4^_-R>s*xTY2$!&!o8RxLK_eXZ8ldHl$ z(US|Z7|oTPc{z+;2^->7tv3PN-{NqinY3kg-@IA)D1hV1V5q!%+V`onk?y=-NTdif z$C}aP$FQRNQ{?YT;j5GAE14NOrJj`84|YU}sc}K`~0Wbg)3NI%GjPY2b-f zJNfoONquY0S1u=G_}b)b8fRr^zn=?-fhAo+3npjJ48PG2Xp`(ce7P4{Uoxezjv%VD z7uedwcYaYOf1!}^A<5TSFT@YpdA<#F(#JZjoBpG z9#po{8F`Z3^M{kL4j(VJIs~@exXqU6Ogfnm;6cOzTa4^WAMTuPes`d-czjm3U?5e< z2E*0ey{bd&s?Ntb6bI$JPqS(8CzC{o!+xT44%ZJK@1`{CmK15*!RpRDW7hcEJA;JN zovaqT_)szL!)3rjzi4;H`wt%Dv8VQ=Q(i}Ga4-z(^szqPKki^op^sv;2Sv^W1=D8s z*G^s>W%Zl(6shX|=J9^cu<5MtOmbdts#d}64ht&6&&5m#_F8!G$wNgZ9R=r!Q;P7O(5)L4LjKksz zsR$(Jm{rT}0|E#@LH-uzIhoPrdCRe?3RK~~#LD%AX~USC@01-Xyn7*wgD^@CIT$>w z0yKTj{La(Mw%6dyw#p%Qq*M+Ww1NKVVciccyO5G~>%a=emBRcy&m0kzi#<6y-mL}+ zPHYwv#Af2@YxZR7Bw+f1%W+Dv+R^3{036Ora2EVqCI|4e0c!x|6s13`9y%Q+Q3|tO zsT0Lf4Fak+QSMGAT_{2v=Xk7;tX|HE6oIHh*ydq+eAJ2Wb9q1w1=s?u!ohhqYL>w* zP%I)!212DWWx|f8N2n6uk`y>h&}gnCbcjJ;zCA_vn4=4lkmMxB8lhNT;%~qVg?mCY zji?0ZGntZ6sUe4lnbgXX&4g*M#P=dXLeGfgl)fVahsC92q=9Qm!No@D$2(!rtx(vA zDZV3KNA!w19j;asq^P7gPZy3(t~-2N=I>l{d1A>l#Egb5mpL+~OTdjr`nuL2^In9JKB_>*UQMDS+(ATAMV?|N z;>3fHa8@#PsZg+TO?HkSpR}W}6~s*}N3TKkBkhV5Q6UY$*@pMTk12UPU_;UTU~f^6^3pL6$GJ(;Fu>i!o(Bv) zMM|gaQ=;#K>*{e69CNu>_F;IO3Oez8WfjJSHApNjl4S%DGRWkngBvgojFso-hmC-R zz~%@qO}~%g8|Evau3%?UgK@7>vN?EbAdv@iqoeJT8@>VA*wJFQSBgcl&0Yg1J@9A| zyoeJDG1qW+SU!=`{A9ae*KmLmsa5TF@*!^&XJBkqh~L5K5Tjzo!)$>tSt1$C=_gs6 zO6!DxDWvmK(B;oIxPDq8b`!nXOT;-GeY|||)^6+_52HHlf@x@ov?sd9>?;sWhPsuw zN3GiIe{X{0gF}c%?&M&SHf=)wkH<32VJG9U`3unLvjEiTD5hMFFpf@4$;8tMyNa&Tk5cH^Q6T#wS zyO(gFoM*(&Pq)(k0C6AX6m~W|d80;W3y8W^)+{f2b7!X+G+QW!2#D+qs!V_KGwDF_ z`9GbsSZBOa(&(U5!K5$^(Up;dRfoHOarf$Cl!0CV!j~#Eq4W`wDh^Eoda!s!&f?{f zg8gN)QKz2JBzT*Z(eZ=BR-6qOJvJi_{O2Ibqf$>0Z-H5u9ekg68uA~Te30QL^z6p$ zXs?sT83zam+7LdaZhXJkPGK8!s>?7+ARBm55{k@%j%RDbQH3;@SQ*_)tWeAOtgcLd z+D^D(-%(|8#X!u!Y`~{d}<5W*;E@Oz4$V%ZYe~|M!vLya8l%=dgLTz zJ99>B^W7m1F<}X}0FcH+(?F0=k4?}UN43r|Kp>gf0N7AM>qU>#+TL!*1wm!(nc?&f zTJ6c+_PFSWVwgmlVhbdaSccfcc@dDA95EbxnlTR)lwvFptI3Y(z!#^Vu;^`(Jo*x1 z1F#x0yFr%`Ul>e*%6z-?|21}QyL}|do$iah^E()QZNNrj06)R5$C$;!26p@ayJO2E zwayeN9z{|-AH<_XQity8anFp`#;mXQ1^4@Yk(E_{l5M*n@n01c85tRw85xxs8M%Q{ zJ3Zc5B)jkTo<4YW^qHtNY?MA=EAsQDtzGs{JzCf~+F5?_?DaOmUEggGGxp+idvy~N zWbH9!_|2yS)(1G(S8vM+cPxa?#aR0>$O8-5j}ste(~k~)?9P} zZNv@5tkSXa#DoSXn*HH-Cog|RsA$H(<^Aict;fH5w*TexKG7zzGS*%)6>)aD^@?q0 zNAEagW^w!ChS00*x%z;=5^Gv8{c`o_Jz+Wt!O12JD(Zl6akx%8`MkKsZk;c?&mR%q z;CycrbwXGiV$WT_TgA1Re(a+14#p3CHKq|~BcFfatfx0@*kP>|^Xcq>fGG^1fLa&kg;k=2ti(JrRPpFW4Kk zxr`&|{`xYJU+{NX;~cjSE8jj|+GTqg9f6+YZg)a(&JkyG<>ZIoeWWuPVud08eJrU9 zA`~y^hG|R?1{6(8JZRVE2wk|s0dODI=kT?Dx3#wQ{x{cee*LRgd^sJhBB29Ja@Jh% zrFH;We8qMsw%&aC&E=ct&sL8wPxe^LI#_)8YogZw{=)`mu^4wnbCy6^kB!>!`uU^B zOYevbzxeIk;dfv5U%lM=aJ~KHAD6EG?;nm|KAhV=;oN9M!(7Y%`qk4_&Y0%2e2sIY z&bC%Jjy^E2#q`$I?u&;D_`RI1ydcsH{_TXETAh3J;1M;$_OOSXKL2n3a=G+u>Gb=n zxAQ9}pU#&ae7p1e|M$DS7f)A@&-UC;#-2cID%M0;!dX84?H`FI{=c8@f5({#Z;n5I z+uV_OA#nNR;azzuTXC^latr z1{>GrW&Md8^R^Zq5?txaAOH25Xvtfr98b0W?&H<&t7j|czqxr!ES`D}cvW7kisKnD8r4o~&R0_Wde>yf!(={@L>WNxnGOu%S8Ve&?JCoHsA$ zcdt3Nkx9z4ji(P6PXCEhPzaof@rIAY`YMj|FX&YlTXRpB&i~K9UadUgG=+~xtBY^X zF83Cm&L4dL!|@!ap`9>)_3+v1Hm3jF&eg}`*AKs4KKcH~&qu2Z_?GOiEvz2CKY8=) z>8kT7bMu==2dl&m^XzTUeZ@_YQ;)Yla5BQmLn4_FlZd0+Pu~!meg6yRIua{kGSogfB9#QfOxQY#5p#&lCwee!Tj0pfA?leLr6?l>GeT zXUoQooS$DiyfSRl?Y-jQ1(&48s?-rT+p_*1$#iCc@l#H7S0(NyZ!T_*7M~EU3Ey3uf=>@tU(CHZJ|`Rq;pSem!IAR@<_K!G zy0~%n`2&6J#s1Cp5y1n9CBm*fa$r*s+oX?nd455_m(BM-{?p0pCn}~LoO6!17Sb9C zT5Eg<{cP73U%Gn9j0-2PFt_!{xGA4Mo$I^Kr>S<2V+umd)rz zpdps{^mx5sH=S!mOyIN2Mg60y`gUrXNYrP4<7M^vLuEMp%RSLz%s2X z?1aqY7->I)sF@@|~AwCq7!5b$g=>a-QtThl{-x zk3B{sZR{U%APkQBZf4Y-NPlA%T=>ILWq4M5#BstKvPH=yI|FHK;K;p;NO9jV{tn&> zF3@QfkQsckQ{mI~-fLXmksi?tk2&xK_4fH<3!g8J?7_}pmoZ!77g>8Sye1*h>8%Vs zg!o_`0|79p#f5Ma_JUA!oa_3NhvlO0CE zA~uK>ii_G30ebghrm(1n_cDQHP3TBW^q%)Od?@NWMl2CY(VVDnj4@VJaq7pn*ewV7 zj$oN>b<>SX?`VK~c!?zp8|PQD)99RKA2yHRa06kCL5w0yT!L1xK!u|kj`A)KW0ZT| zFd@qLFu?mP4&XRwDNQVG-I2M)O$;~XQ&!k%Inu( zacI5xTC&EG%mSZFJnTchxk0xr5^Cmfn=L=s#h#+T#u-9n8uTBpUBBqqUS=fW`K7J1 zn-7O;ghRnOXOlA@S>z}7@_QrlF0eeKV-s^yo)kkQGQ4P4IFpI}`tHLX>uoe(9Qru%ipdtD$sJ>o3&Wyjl7;9G z1S_X5m+^=Ee7VD}dLqZXS=&BAvCb{LJtImIfh+hhcB`$k9e5Kki^pOEhtD}d$Yw(2 ziOokuv6aJ{Pv>+}&i63z4rg>ZJA#w5;k^zB3c1g!AuVp5R06ffwnX;0UK9U$g*ch#`|AXILp2bXiCSAAuAyfq^Pz*Y9t~TAkS==p-FFvT z%zP2>m5C_#ps|bjoC6NS5e7cV=oqXAGe7SpsV`rcWK>3+JfS)!h73Vm+*X0Aa!&y2 zET^HnZDEzEQ?^Pi%`f9ULXSXOGKg>{(8(cM*!|AxRM*SVtPD5w5I%#LAi2_XT&}<&ZD6YE>5-$frk`f$bANJ17*S$ zrRK!g&N9)+Xp^|$G1@My5>bq3(PT$YaC@`s_&SbS8LyG%du%gY))-IL_t>mF$DDA* zNpihj-w4$nOY0sI&)yi1MEQ8Rw}zbY6C|n&y8-#iJ7Je7o}hTxJO8P=VJOfUL>E@# zGZFL47zxH%HV88Vo?e=9jMaZfFAwB}!1Q@w`p3n0eH?UH#YqBBz{H`!<0I?ydec+@ zA_bgF&D%UFaMdl>3%x-t20p)d^IId#{i4k%lEjgSyGD-i$J9?lmqTORk-b}Ea81C^ z0%r;*YWSxbh6F!g8*d2z;KamJoN?cAvxjV(t^N@Hb#rCq!z7j@BY(un+>m}W;NkV5 ze-cVKVSM03{{x(L@xP1LEDuhwL!64hFGVMsY@fiL)JMlwrm5Mpu){z>=m-SoU=EFko7$RTMsd*aFWw(UM))pAHR=~hc# z$kYPD3F1^q~IR93u8O^T&A3c$j1SqD<)SuK1Tx5*n@hix2>9)$`VH^g`ln zJIV$n{cEWjGy$~{OGt6rLgIkr78S#0GE6O?QE|6{iY18X>F8;LwkT3WaI^s3xF~?m zG;|Z{8gCq*tgKGF9F@Sf+3CfFo49TwrsmQiE%l4nPA+>3h-tgnDHQ_DvYLlMl4vD# z>a-wz>fk`JvawM`v`sk@C|lvm9Vl$SBB7N{WyDv9!J9={x;RsNXP2jptVH`Wek9D( zdbT+OfGAMu;A9Jnj9}VPi4{dPTNHkbk!2LSD;5LdO6&RrCfJI8d7R1Uk`(KP9HmR} zJPsN-J0-#_j(eQGNDwHT*=Wq{j>LjzNLL4-5ZQZNL{@S5X8$XGLiBmRT{3sZ`WBA# zt{>n%`<(Fo?&mQ`){*BRx=R3k;pXg}J)+H>;G*j)S^^aE0zq`2V+_Zs}sasUT3<_!1k`K8QqOoBF4y~f-u$z>4?#UWy4q8@rO?g z@qEXyC5{vSkm}phFF)KIAqc{DVpB5)xjPw0N*ar??u?3%d1waLvzyP?XY6^}XZ9|p z{pJS8ynWcm#yvV9dL}_$*saTMT7%f(cEk!EemQ*E`4zje$CnJV%B*{Fj1qC~i1G94 z?b#Lay4NsiR*0{%6OVlMEbDtlA8@S!du$Dv6F2Y+U)LO@gC`LY1NRx<);M?ZW^aYa zUKr%;$YP3-slkI&HpbJmwPQJj1_N_p?fCN#*SpIM)ST={C_z4YnY=boFFO#9_Kd{3 zPB>o>{pev3CK?tF&7Kgwy2?D%$HNsi!yj%fvVls6&}}xIV)39zY3%tXqK8sbR2)`u z_L8%@Gq=PP@^>d|3u^~woB;WHi&GQl7IrSLPd1kc+jzi`NGyN8r}hd^84tqCnOos(H~Cw)M%UHQ6D)i_3|UZPx@ zw$D-t5gZk}y# zB+3G5s=J!UqNBH+0EO-%^6O=s!?E^JCv;Y~2(oXKX~tu$7@D>`I<}&44ZKEZQ->^d zeGQ(BdNr6k(x{Iqk{Znc9d0ND)rx&UVd$o~!_$9-5ya1si@GafQJ@+aqmsKjiQSRH zcLDh@-XSj*xpl8pT53uMGDi~}gY~6F>B&p^nxY-`=3_v^WP=mOY3c=SsH3F*jfy_p z=}U=ylW~<|sSIC0{<6;$exbWYss`>D9k*c?kkqa($! z;wWg?b9}`6&|xTEq}eEiS=G!&N|9z{V{#9de}SpF_53C>q8&bal1Q(svCMPnTpRaP zc%{)%da|%>V~Z&zYRZRMXnk~a!a`cYcA_6^|{4tEYta0sD_iNYr zCD>GaNy)j+`DCRX69X)wRk?XgiH9T`f6?uBwH=%j+>R5H67j0QtJB#ToCf48&OKc& z!74Z72rzofo;%L12KVpd1Y>8+1~ljJ=nWV`S~Z%9_807|oP)xL&&Aax`zY|~<$DL+ zhrl-WPFPK5Nsi&yFjZttXYfNxL!MTYvsw83*K3%47?+$iZMXnz8yb~IOA%0no!IsX z+__OVG|<$!MS=iXyWtv1B#!@?e#IIC&S9+c36AekeaEu@hM@iO#S);Q+UftWnO%%2 z7Qv1#WmO+_V}NSubWa7|`H*eV-W>CTclKkvSA+M)>AEz&he7#Of&hz+_U}# z8~f)DYJ}T9(q6=ff}98ISYk(h>cG9|%%3E9yL}N40|sJR3lm-};!m)pSUTAEw5Pc$HTF!(rl8jc|r1RcXKRYnazjwrbu z0DlA~i?I{z=#G+@B;>=0u6D}SM*ZnkVi~U7&8LAyV!8#L2%&LND)^0JrLVSoDg>t0 zPJUoQb@-;Fk@zu`98?KvODNy@i59}jcYVw_R7cVleeFt^cM9#gMyZg)=tD_D#WEiL=simiZ!2g@&zjn zjgG8TO9tT75Xq|bwG!J+XouMoLau46j`n2ZwwUV3&`6gOQR|M%&z2uc?8t7j&QHFD zm2xCZRt}@7aB7VDLwp$l;M`d$v<#xM{EEtoi4-k2=rD%4(#B8CmgHi&m_eZ&){@|i z3O3^Oc;uZ{5f-XZLf58A1)&6rMcbI!nM1lyx+`BI)@Bj$HSamEH4u> z$|*&HwlQ0T0>lCA73)m2YYqwJh)HIJwEwC3d}bhMY5{fcE>}icJreoy#b4&;@(ATf zWO5Ip);MNY%6ksxVS?6y)~{g_F~{Y$R6BU4P*`W9Hr949!Y-JtVg=39Dd;w|sr}1cK4s3Fe-$)X!{vm)oy$m*n#tfr)J<{ zw=x_0?LxxQS2ih@N%W=Efxxv;MJQuXCWP1g7j@vPSlUeN_FB)f{j%@8U+nw zX}?r_w5naqip6wg#*4iu)T9R#upY_kl_wAEyEhqudF~Ii(Q0IZs%72637ZVkX=bQZ zwX}V@f;_lVce^XVQjkk+j{v9p=GLY>h?QJNa^$&&L; zZcbS&dxO6TahX|zXGMt5S~?kKGgZNe=I5AGP%IZ~(qP(CP_;T)a-|tCW7ZQ zJlsT#PnxB5=GL62B4<}Eh&LG@5;`uvs|G}|;o+!kOmxN1!I?}JG9ox1x9yOmv5wY2 zf?8J0Gv{lYd^5ckaq_iHUAcbc$E#EDY{AY)s>(bU1y%psE>vJu?@>tP%F?d8RLR9& zpjCl>%VeF?Mzy-(`02RLOj0#Gs$c0_0h)_6&N7f4cViei(wZNCL~0kcI9zt;Ee>Bf za>dDSB^PY4?3w3bN4;}GS=WqtBHz$O5!>wG*@1{MQ7u}P5O=t+&1bOEl6M_1h6yZq zVRjVHDZFD0$`Q>%*OIr4ODr|9ZbSSK`+oYBWFer?(1#8zxg5KR`a(>xM9PCBBuw*U zz;_pZ41shnlAB%%F=JG3cG?=X)Ce_kl>Q87DMU=svMZIJETApL9T$V7Mx~@Xg8uo$W&fBF8#{B zOkOrK^eI*k`M4B7`$KHe6|vM(t{s;fQ5$ATFG|mMRI)V8hw$N;W|4u47Hj|>8j%&8 zmX+87P6DODq3Z(1&f0hKgaSAuXGX-TaML#ml2Hm3Bql}_5$#b6E=y&eqZ(lZL|-C# z0?F7M6GrmHRS7q1$6u8dM#4>U9GO(fJZ;Az9XX}Ng#tQEB}{s@H50Q5Wtq71jDqxe z{AoNC1t1L6GP;IhOx2iB&VbMw#3bAtB4nmTKO>9kH!H?Vw&^qaL%>F^%C$zZ}WkkqAEuO=4nr-#y?VpqL|QFbZ?D6 z&BauJ-9Rgbg;y>OMpT%V1EFL*i1*akjpRh^By=$K=xhQL|3+;@K=2+ZqRnj^7`9IN zM*|^ok1%HE3hm4h83zG+pPDL7+BpFfHp-&LCFkg6hIIy2D1u;ZZr?>jwgcfan6qG1 zBwExl#9@oBK)&EQ%RxE0py?WjqXEo1d@@A&A)U!L>e#+dMs}feE3~x@%c}9VtojrI zLp9cN`UlO7vO0B@Pd>^*)+FGH2C81fL$ro^BmEoIMNL_33f{hl>C0pt?G|Kv$6y;{ zCs<3kZ{w|n+29k6OO?&63bg2Dl$Vcwivr!&@S}gU8l-EfRi890yE8ykC^4pGg$C;@ zP@K|MdZ1M!s-e@NgZg!8U**_lLY$^0?2(f+w9P24NV1Ae0qo$)5uS+R0m_v3}mw#Jj6S3~ToTf37lEE~ecgZJ1o*h6;Q<;p58=HzDH4R!NjHDKZ z=3ouMx82{*FFE6q4b1~vyj*&zMZ%mpII=hoLhg{K!t6Vc)J&F2=`VAV4+`T_09t^g zsbAVK>FGfkG$Zj89eibH0c?1%ExXWk%+oea=V}buzGCLevV}Hv@ef7`f&76>!rUZ) zDk;2F7z9%^YAF=V-I64I%25Q=DrusSlcq|Yeowmr*`5YWK|!UsORJ#-76B3XsiBEy z<_;+uI%Zi@clC)LJ|iPZ*g_P){3l0ryY4PS#(qy!-4wqqP56-gc2OEd;ipi#wu&(- zBp?MNs&yIBirNZ7Rw`Z~_TbhGEO9s>_jGFN1_3}abt6xeUUrnDjk(%@buSO4wr#?Z zP0D6dQaH&Tton^8;VuHGdQ=6Gm&__2SPj)Q#4I~ zxe+>CRn??uLkVPx3+XvW#LAfrh)9v`tWg89ZT=~+-7`jgSZ&n^Vv9PI{uKfWOukCk zl~JggWmm!+= zae?!{+K+F|u}W(7N-e!z#H#Jq>_AoLq;{kYBeaq95~#NhmIhKSOy-J0T2}-CAJT92 zYksr$JgSgd4Y#@q=~g&fm#sNcP{3BDPpw%vyxMAQNXe;X0lz7#>Q5e&0-&fnu+yHa zw5fGXbLgfHyiHSt z0J=vlJ(Q3;(ULzo+e5Sx{6OVvfm#yQdzl^8uCd>^ zJ{tzqy^(4oAhN?b#APupG&j@$WsQyrIU9jj|50Kk7C}j#^x-RQ#@e;~iqESj9UhcH z1J|vOk+hO(gAWu^RT(df{Z`+>F7z;OW+b0s}xOcKyo38NRMRc zw@|UG`C*!nN13pJk&QTH9HcRjemJ44ja&_i3F5fq^agE znS_PZW8<_4izyFz0u| zFIq44q9fL`R8j_S!lt5Cbp%nGsnrk&Ch#gU_{D6?Y|Ov0(C|{Slr2OlzXj`wys5lX zgj*yPZ^)5Z@fRtMO{uuA32Nn@FIM8!&u~_^n_cZeIltA=7jm>3R8HV16fWeJ2K>mbg-PN+Ng-1iUYj z-c0%PO@U0@$%T3`9ioL+1P7#+vi%G-H;DLl!9%{6Bt+{^t27==+M9kuofTZfF-gm< z*>}j8dcs_PJD`sEO%lPV+&c>)(5RS6WtG1J!Q_@#J#AVA3&3m~u+v{A8~VJPaf zS5ixT?~f^ml2Rq52|{&9Zn+|>WH&%Nu^9#n8j=w0PvZ0hX-6qZpp{o{2kr$mt=Us? zQ&eurAjzxR$LyL2Cz(#^RNf&-$(kmzN0>pA#VA0r<*t73wxqPQUOEUA6+l=22phxf!b2bqJo_&7eLagzoO=$rwEEqUeHFdO|LU4Dhlyq*wgw{|#6-cqOF zGbH-MfHD5|RN^#nN56eDCc7=bVDfrMF}W3F!p`fEO@O`|5=|MnMWCY;+@!fW@s3b8 zyv$8+j~yK8w4PU3MQCWajZmlF6W-!32wS#Aef<8KoAPEh;l zZ|gb3SG^T+lKW2rJB7OGE%{FR0_5*(8bJ+mC;#CE?|b^0)RV-4OJRbWM3tbY=LSgc zaSc90bjQ*|!b!It;E*SCx+pa9H z1A!UcV)Am{|1CO8KeLM+VG~a zYVO6qbVmV<=s%sls7G)qgoVj9Cgx6}x1f=C=D>V0V*7MQfMM!31=AGvEqMv#8lm;v z|0Xl*K}d+qR9T0%n;{<`b0xhJ1{{1YbQi|a&Am8JX<+MAk{FWZm_)R z86~Mt1Az&hbf?kipO$qtePuS(STRztfq~onw+d`ze5(AxYYa4+1A#)QW>u(D7IL2y z1s%%Yhya{0a2t7Au90+0%8#-h(*$0*@ON6)5p_r#ghFYz!RfN@Wa_3~=53>pMmC`~ z2q*Z$Z&Bc}W8Z!~;PzAl=IrlCg1gpg@8&WoLXx*sBVy%Ja_h(i9FaP=Q_uw1TW+`d zheAvfG^(R8KnhdUbqaN;sA)p(10L8Ki03&JBL5`uQT$u!r|*VW4Yhcf0tXHU1m88X zf^s!jzaOZKZ##xJ^_rLcwgKz8Jq(j%K5~u3$Mi+NIP^X}W&k$omAVn=4|Ox3=4o2c zytswTqu{%_4+-y~Ig%K%`VZ50;mH5wY6Jqg%LU*G8-+Vb?CmXJXULoOJ}HJ5c^LmR zZ~=<90kaX{RqJ{)xSd2n`{TgTNM(FA!tR$shfWZ^?G$F<_d)|4(TbaUG4H2Zs3U=P zcOQkBx*3Z--c708L!g6lGer(-Q@||h?KTmewRiga)+Iw zQv@1L|7pmbI^+k?3{F8iXuKJi6q1yAHPGl;H@aiGTX$mu?}nG&*7FqFKn*GAzMfn| zdVfc7hXTs|_-giUia32UlZc0b&LoeZ-;=(BW@t=_kM|?)D2XX-#Pp6gcK{u`-t@=1 znL!`k-3y!{Jz(-XMZSmTwEpgLFirdu716Sq#q3n?W`7HDR&04$JdZ^X*vk=cqtSpP z=Cu2DXhW_a_~|dWX}}Je;&$MG=F1T{MV)yuDe{QT-6TPKn!+Zig*X9B@qAg&A_R2? zvqS&$to}s$S=xDOeNo>;dUS}a5X;nySu2qny}e1i`DUQyc@8G-(+|9b#XDm>uzA6{RYVWZM2Te z&E(~+)VC7m?S#@@Y#}1FHxt~ton+Mj!Suc*@uxo)&iJ=*#^*871eV)IO@zs-Kqt@r zwr43MNg4rvI#%AzJhoSbl_XV=!kkSjp@uT0=>05Wd+fLa2mA(h9|w(MPzygaP116$ zr1dV?0$MVEhWEqoIj<9oZxoE32YW~Lg8NIdx0jJp*T`$ z_;&#Jpa*qC%w0>)&-6uy-V2<;?Wj`%BX9;6YVFO0?iBaF`w41GKLeRb;u`_=JA>CA zfgFeTf8_u|cx@3@nKjj$0ofqC00 zkMItfGCKiI!2^LY^_1oyfiahXOyLht{dXYO0o*jwQ;_#}X%4uzF^j@2=nTVoxP>tL zD8>Y`vGLXa_{A^(?!SNa)mOjxo1g#fFaGQQ{BM84{m;Jn=4XHY&0qfc&%OcvSAX-@ z{{`5eef{-Uzxd_P|L#w@|K;;%kN*DapFdxC_78K*U;olyp5}i2;OoEqi*LUA|0ncX AUH||9 literal 0 HcmV?d00001 diff --git a/season_halloween/scripting/season_halloween.sp b/season_halloween/scripting/season_halloween.sp index 41d362c4..04018904 100644 --- a/season_halloween/scripting/season_halloween.sp +++ b/season_halloween/scripting/season_halloween.sp @@ -1,11 +1,10 @@ -#pragma semicolon 1 - #include #include #include #include #include +#pragma semicolon 1 #pragma newdecls required /* CONVARS */ @@ -29,7 +28,6 @@ bool g_bPreAdminChecked[MAXPLAYERS+1]; bool g_bResponseFailed[MAXPLAYERS+1]; bool g_bResponsePassed[MAXPLAYERS+1]; - /* INTEGERS */ int g_iCollected[MAXPLAYERS+1]; int g_iCounter = 0; @@ -42,7 +40,7 @@ public Plugin myinfo = name = "UNLOZE Season Event (Halloween)", author = "Neon", description = "UNLOZE Season Event (Halloween)", - version = "2.0", + version = "2.1", url = "https://steamcommunity.com/id/n3ontm" }; @@ -52,15 +50,15 @@ public Plugin myinfo = public void OnPluginStart() { g_hCVar_CollectablesEnabled = CreateConVar("sm_unloze_season_collectables_enabled", "1", "Spawn Collectables.", 0, true, 0.0, true, 1.0); - g_hCVar_RandomIntervalMin = CreateConVar("sm_unloze_season_random_interval_min", "60", "Minimum Interval between spawning Collectables.", 0, true, 0.0); - g_hCVar_RandomIntervalMax = CreateConVar("sm_unloze_season_random_interval_max", "120", "Maximum Interval between spawning Collectables.", 0, true, 0.0); - g_hCVar_InfectionEffectEnabled = CreateConVar("sm_unloze_season_infection_effect_enabled", "1", "Spawn Props on Infection.", 0, true, 0.0, true, 1.0); - g_hCVar_MilestoneInfection = CreateConVar("sm_unloze_season_milestone_infection", "25", "Amount of Collectables you need to unlock the Infection Effect.", 0, true, 0.0); - g_hCVar_MilestoneGrenade = CreateConVar("sm_unloze_season_milestone_grenade", "75", "Amount of Collectables you need to unlock the Grenade Skin.", 0, true, 0.0); - g_hCVar_MilestoneSkin = CreateConVar("sm_unloze_season_milestone_skin", "150", "Amount of Collectables you need to unlock the Skin(s).", 0, true, 0.0); - g_hCVar_HighscoreDisplay = CreateConVar("sm_unloze_season_highscore_display", "5", "Amount of Players to display via sm_highscore", 0, true, 0.0); - g_hCVar_PlayerRequirement = CreateConVar("sm_unloze_season_player_requirement", "10", "Amount of Players needed to spawn Collectables.", 0, true, 0.0); - g_hCVar_EntityLimit = CreateConVar("sm_unloze_season_entity_limit", "2000", "Entity Safety Limit.", 0, true, 0.0); + g_hCVar_RandomIntervalMin = CreateConVar("sm_unloze_season_random_interval_min", "60", "Minimum Interval between spawning Collectables.", 0, true, 0.0); + g_hCVar_RandomIntervalMax = CreateConVar("sm_unloze_season_random_interval_max", "120", "Maximum Interval between spawning Collectables.", 0, true, 0.0); + g_hCVar_InfectionEffectEnabled = CreateConVar("sm_unloze_season_infection_effect_enabled", "1", "Spawn Props on Infection.", 0, true, 0.0, true, 1.0); + g_hCVar_MilestoneInfection = CreateConVar("sm_unloze_season_milestone_infection", "25", "Amount of Collectables you need to unlock the Infection Effect.", 0, true, 0.0); + g_hCVar_MilestoneGrenade = CreateConVar("sm_unloze_season_milestone_grenade", "75", "Amount of Collectables you need to unlock the Grenade Skin.", 0, true, 0.0); + g_hCVar_MilestoneSkin = CreateConVar("sm_unloze_season_milestone_skin", "150", "Amount of Collectables you need to unlock the Skin(s).", 0, true, 0.0); + g_hCVar_HighscoreDisplay = CreateConVar("sm_unloze_season_highscore_display", "5", "Amount of Players to display via sm_highscore", 0, true, 0.0); + g_hCVar_PlayerRequirement = CreateConVar("sm_unloze_season_player_requirement", "10", "Amount of Players needed to spawn Collectables.", 0, true, 0.0); + g_hCVar_EntityLimit = CreateConVar("sm_unloze_season_entity_limit", "2000", "Entity Safety Limit.", 0, true, 0.0); HookEvent("round_start", OnRoundStart, EventHookMode_Post); @@ -70,13 +68,6 @@ public void OnPluginStart() RegConsoleCmd("sm_highscore", Command_HighScore, "Shows the Pumpkin HighScore"); AutoExecConfig(); - - char sError[256]; - if (SQL_CheckConfig("season")) - g_hDatabase = SQL_Connect("season", true, sError, sizeof(sError)); - - if (g_hDatabase == null) - LogError("Could not connect to database: %s", sError); } //---------------------------------------------------------------------------------------------------- @@ -212,13 +203,52 @@ public void OnMapStart() AddFileToDownloadsTable("materials/models/unloze/cute_skeleton/skull3.vtf"); PrecacheModel("models/unloze/cute_skeleton.mdl"); - AddFileToDownloadsTable("sound/unl1/season/witch.wav"); - PrecacheSound("sound/unl1/season/witch.wav"); + AddFileToDownloadsTable("sound/unloze/season/witch.wav"); + PrecacheSound("unloze/season/witch.wav"); float fRandomInterval = GetRandomFloat(GetConVarFloat(g_hCVar_RandomIntervalMin), GetConVarFloat(g_hCVar_RandomIntervalMax)); CreateTimer(fRandomInterval, SpawnCollectable, INVALID_HANDLE, TIMER_FLAG_NO_MAPCHANGE); } +//---------------------------------------------------------------------------------------------------- +// Purpose: +//---------------------------------------------------------------------------------------------------- +public void OnConfigsExecuted() +{ + Database.Connect(SQL_OnDatabaseConnect, "season"); +} + +//---------------------------------------------------------------------------------------------------- +// Purpose: +//---------------------------------------------------------------------------------------------------- +public void SQL_OnDatabaseConnect(Database db, const char[] error, any data) +{ + if(!db || strlen(error)) + { + LogError("Database error: %s", error); + return; + } + + g_hDatabase = db; + + char sQuery[256]; + Format(sQuery, sizeof(sQuery), "CREATE TABLE IF NOT EXISTS halloween_table (`steam_auth` varchar(64), `name` int varchar(256), `collected` int(16), PRIMARY KEY (`steam_auth`))"); + + g_hDatabase.Query(SQL_OnTableCreated, sQuery, _, DBPrio_High); +} + +//---------------------------------------------------------------------------------------------------- +// Purpose: +//---------------------------------------------------------------------------------------------------- +public void SQL_OnTableCreated(Database db, DBResultSet results, const char[] error, any data) +{ + if(!db || strlen(error)) + { + LogError("Database error: %s", error); + return; + } +} + //---------------------------------------------------------------------------------------------------- // Purpose: //---------------------------------------------------------------------------------------------------- @@ -242,18 +272,6 @@ public Action OnRebuildAdminCachePost(Handle hTimer) } } -//---------------------------------------------------------------------------------------------------- -// Purpose: -//---------------------------------------------------------------------------------------------------- -public void OnClientConnected(int client) -{ - g_bPreAdminChecked[client] = false; - g_bResponseFailed[client] = false; - g_bResponsePassed[client] = false; - - g_iCollected[client] = 0; -} - //---------------------------------------------------------------------------------------------------- // Purpose: //---------------------------------------------------------------------------------------------------- @@ -277,30 +295,35 @@ public void OnClientAuthorized(int client, const char[] sSteamID32) char sSteamID[32]; GetClientAuthId(client, AuthId_Steam2, sSteamID, sizeof(sSteamID)); - char sQuery[255]; + char sQuery[256]; Format(sQuery, sizeof(sQuery), "SELECT collected FROM halloween_table WHERE steam_auth = '%s'", sSteamID); - SQL_TQuery(g_hDatabase, TQueryCBConnect, sQuery, GetClientUserId(client)); + g_hDatabase.Query(SQL_OnQueryCompletedFetch, sQuery, GetClientSerial(client)); } //---------------------------------------------------------------------------------------------------- // Purpose: //---------------------------------------------------------------------------------------------------- -public void TQueryCBConnect(Handle owner, Handle rs, const char[] error, any data) +public void SQL_OnQueryCompletedFetch(Database db, DBResultSet results, const char[] error, int iSerial) { - int client = 0; - - if ((client = GetClientOfUserId(data)) == 0) + int client; + if ((client = GetClientFromSerial(iSerial)) == 0) return; - if (SQL_GetRowCount(rs) > 0) + if (!db || strlen(error)) { - int iField; - SQL_FetchRow(rs); - SQL_FieldNameToNum(rs, "collected", iField); - g_iCollected[client] = SQL_FetchInt(rs, iField); + LogError("Query error: %s", error); + return; } - delete rs; + if (results.RowCount && results.FetchRow()) + { + int iFieldNum; + + results.FieldNameToNum("collected", iFieldNum); + g_iCollected[client] = results.FetchInt(iFieldNum); + } + else + g_iCollected[client] = 0; g_bResponsePassed[client] = true; if (g_bPreAdminChecked[client]) @@ -358,39 +381,44 @@ public Action Command_HighScore(int client, int args) { char sQuery[255]; Format(sQuery, sizeof(sQuery), "SELECT * from halloween_table order by collected desc limit %d", g_hCVar_HighscoreDisplay.IntValue); - SQL_TQuery(g_hDatabase, TQueryCBHighscore, sQuery, GetClientUserId(client)); + g_hDatabase.Query(SQL_OnQueryCompletedCheck, sQuery, GetClientSerial(client)); return Plugin_Handled; } //---------------------------------------------------------------------------------------------------- // Purpose: //---------------------------------------------------------------------------------------------------- -public void TQueryCBHighscore(Handle owner, Handle rs, const char[] error, any data) +public void SQL_OnQueryCompletedHighscore(Database db, DBResultSet results, const char[] error, int iSerial) { - int client = 0; - - if ((client = GetClientOfUserId(data)) == 0) + int client; + if ((client = GetClientFromSerial(iSerial)) == 0) return; + if (!db || strlen(error)) + { + LogError("Query error: %s", error); + return; + } + char sName[MAX_NAME_LENGTH]; char sBuffer[2048] = "{darkorange}[UNLOZE HALLOWEEN] {white}TOP COLLECTORS:\n"; char sTempBuffer[1024] = ""; for(int i = 1; i <= g_hCVar_HighscoreDisplay.IntValue; i++) { - int iField; - SQL_FetchRow(rs); + int iFieldNum; + if (!results.FetchRow()) + break; - SQL_FieldNameToNum(rs, "name", iField); - SQL_FetchString(rs, iField, sName, sizeof(sName)); + results.FieldNameToNum("name", iFieldNum); + results.FetchString(iFieldNum, sName, sizeof(sName)); - SQL_FieldNameToNum(rs, "collected", iField); - int iCollected = SQL_FetchInt(rs, iField); + results.FieldNameToNum("collected", iFieldNum); + int iCollected = results.FetchInt(iFieldNum); Format(sTempBuffer, sizeof(sTempBuffer), "{green}%d: %s - {red}%d \n", i, sName, iCollected); StrCat(sBuffer, sizeof(sBuffer), sTempBuffer); } - delete rs; CPrintToChat(client, sBuffer); } @@ -403,34 +431,37 @@ public Action Command_Collected(int client, int args) char sSteamID[32]; GetClientAuthId(client, AuthId_Steam2, sSteamID, sizeof(sSteamID)); - char sQuery[255]; + char sQuery[256]; Format(sQuery, sizeof(sQuery), "SELECT collected FROM halloween_table WHERE steam_auth = '%s'", sSteamID); - SQL_TQuery(g_hDatabase, TQueryCBCollected, sQuery, GetClientUserId(client)); + g_hDatabase.Query(SQL_OnQueryCompletedCheck, sQuery, GetClientSerial(client)); return Plugin_Handled; } //---------------------------------------------------------------------------------------------------- // Purpose: //---------------------------------------------------------------------------------------------------- -public void TQueryCBCollected(Handle owner, Handle rs, const char[] error, any data) +public void SQL_OnQueryCompletedCheck(Database db, DBResultSet results, const char[] error, int iSerial) { - int client = 0; - - if ((client = GetClientOfUserId(data)) == 0) + int client; + if ((client = GetClientFromSerial(iSerial)) == 0) return; - if (SQL_GetRowCount(rs) > 0) + if (!db || strlen(error)) { - int iField; - SQL_FetchRow(rs); - SQL_FieldNameToNum(rs, "collected", iField); - g_iCollected[client] = SQL_FetchInt(rs, iField); + LogError("Query error: %s", error); + return; + } + + if (results.RowCount && results.FetchRow()) + { + int iFieldNum; + + results.FieldNameToNum("collected", iFieldNum); + g_iCollected[client] = results.FetchInt(iFieldNum); } else g_iCollected[client] = 0; - delete rs; - CPrintToChat(client, "{darkorange}[UNLOZE HALLOWEEN] {white}You have collected {green}%d {white}pumpkins so far.", g_iCollected[client]); if ((g_iCollected[client] > g_hCVar_MilestoneInfection.IntValue) && (g_iCollected[client] > g_hCVar_MilestoneSkin.IntValue)) @@ -466,9 +497,9 @@ public Action SpawnCollectable(Handle timer) // Rotating int iRotating = CreateEntityAtOrigin("func_rotating", fOrigin); - DispatchKeyFormat(iRotating, "targetname", "season_rotating_%d", g_iCounter); - DispatchKeyFormat(iRotating, "maxspeed", "20"); - DispatchKeyFormat(iRotating, "spawnflags", "65"); + DispatchKeyFormat(iRotating, "targetname", "season_rotating_%d", g_iCounter); + DispatchKeyFormat(iRotating, "maxspeed", "20"); + DispatchKeyFormat(iRotating, "spawnflags", "65"); SpawnAndActivate(iRotating); // make the trigger work. @@ -478,9 +509,9 @@ public Action SpawnCollectable(Handle timer) // Model int iModel = CreateEntityAtOrigin("prop_dynamic_override", fOrigin); - DispatchKeyFormat(iModel, "targetname", "season_prop_%d", g_iCounter); - DispatchKeyFormat(iModel, "model", "models/models_kit/hallo_pumpkin_l.mdl"); - DispatchKeyFormat(iModel, "modelscale", "1.0"); + DispatchKeyFormat(iModel, "targetname", "season_prop_%d", g_iCounter); + DispatchKeyFormat(iModel, "model", "models/models_kit/hallo_pumpkin_l.mdl"); + DispatchKeyFormat(iModel, "modelscale", "1.0"); DispatchKeyFormat(iModel, "disablebonefollowers", "1"); SpawnAndActivate(iModel); ParentToEntity(iModel, iRotating); @@ -498,18 +529,18 @@ public Action SpawnCollectable(Handle timer) fTempOrigin[1] = fOrigin[1]; fTempOrigin[2] = fOrigin[2] - 10.0; int iParticle = CreateEntityAtOrigin("info_particle_system", fTempOrigin); - DispatchKeyFormat(iParticle, "targetname", "season_particle_%d", g_iCounter); - DispatchKeyFormat(iParticle, "effect_name", "achieved"); + DispatchKeyFormat(iParticle, "targetname", "season_particle_%d", g_iCounter); + DispatchKeyFormat(iParticle, "effect_name", "achieved"); SpawnAndActivate(iParticle); ParentToEntity(iParticle, iRotating); // Trigger int iTrigger = CreateEntityAtOrigin("trigger_multiple", fOrigin); - DispatchKeyFormat(iTrigger, "targetname", "season_trigger_%d", g_iCounter); - DispatchKeyFormat(iTrigger, "spawnflags", "1"); - DispatchKeyFormat(iTrigger, "startdisabled", "1"); - DispatchKeyFormat(iTrigger, "OnUser1", "season_hitbox_%d,FireUser2,,0,1", g_iCounter); + DispatchKeyFormat(iTrigger, "targetname", "season_trigger_%d", g_iCounter); + DispatchKeyFormat(iTrigger, "spawnflags", "1"); + DispatchKeyFormat(iTrigger, "startdisabled", "1"); + DispatchKeyFormat(iTrigger, "OnUser1", "season_hitbox_%d,FireUser2,,0,1", g_iCounter); SpawnAndActivate(iTrigger); ParentToEntity(iTrigger, iRotating); @@ -522,39 +553,39 @@ public Action SpawnCollectable(Handle timer) // Ambient int iSound = CreateEntityAtOrigin("ambient_generic", fOrigin); - DispatchKeyFormat(iSound, "targetname", "season_sound_%d", g_iCounter); - DispatchKeyFormat(iSound, "spawnflags", "49"); - DispatchKeyFormat(iSound, "radius", "2000"); - DispatchKeyFormat(iSound, "message", "unl1/season/witch.wav"); - DispatchKeyFormat(iSound, "volume", "10"); - DispatchKeyFormat(iSound, "health", "10"); - DispatchKeyFormat(iSound, "pitch", "100"); - DispatchKeyFormat(iSound, "pitchstart", "100"); + DispatchKeyFormat(iSound, "targetname", "season_sound_%d", g_iCounter); + DispatchKeyFormat(iSound, "spawnflags", "49"); + DispatchKeyFormat(iSound, "radius", "2000"); + DispatchKeyFormat(iSound, "message", "unl1/season/witch.wav"); + DispatchKeyFormat(iSound, "volume", "10"); + DispatchKeyFormat(iSound, "health", "10"); + DispatchKeyFormat(iSound, "pitch", "100"); + DispatchKeyFormat(iSound, "pitchstart", "100"); SpawnAndActivate(iSound); ParentToEntity(iSound, iRotating); // Hitbox int iHitbox = CreateEntityAtOrigin("func_physbox_multiplayer", fOrigin); - DispatchKeyFormat(iHitbox, "targetname", "season_hitbox_%d", g_iCounter); - DispatchKeyFormat(iHitbox, "model", "models/models_kit/hallo_pumpkin_l.mdl"); - DispatchKeyFormat(iHitbox, "modelscale", "1.0"); - DispatchKeyFormat(iHitbox, "disableshadows", "1"); - DispatchKeyFormat(iHitbox, "disablereceiveshadows", "1"); - DispatchKeyFormat(iHitbox, "DisableBoneFollowers", "1"); - DispatchKeyFormat(iHitbox, "rendermode", "10"); - DispatchKeyFormat(iHitbox, "PerformanceMode", "1"); - DispatchKeyFormat(iHitbox, "material", "3"); - DispatchKeyFormat(iHitbox, "health", "200"); - DispatchKeyFormat(iHitbox, "physdamagescale", "1.0"); - DispatchKeyFormat(iHitbox, "OnBreak", "season_rotating_%d,KillHierarchy,,2.5,1", g_iCounter); - DispatchKeyFormat(iHitbox, "OnBreak", "season_particle_%d,Start,,0,1", g_iCounter); - DispatchKeyFormat(iHitbox, "OnBreak", "season_sound_%d,PlaySound,,0,1", g_iCounter); - DispatchKeyFormat(iHitbox, "OnBreak", "season_sound_%d,Kill,,2.4,1", g_iCounter); - DispatchKeyFormat(iHitbox, "OnUser1", "season_rotating_%d,KillHierarchy,,59.0,1", g_iCounter); - DispatchKeyFormat(iHitbox, "OnUser1", "season_sound_%d,Kill,,59.0,1", g_iCounter); - DispatchKeyFormat(iHitbox, "OnUser2", "season_rotating_%d,KillHierarchy,,0,1", g_iCounter); - DispatchKeyFormat(iHitbox, "OnUser2", "season_sound_%d,Kill,,0,1", g_iCounter); + DispatchKeyFormat(iHitbox, "targetname", "season_hitbox_%d", g_iCounter); + DispatchKeyFormat(iHitbox, "model", "models/models_kit/hallo_pumpkin_l.mdl"); + DispatchKeyFormat(iHitbox, "modelscale", "1.0"); + DispatchKeyFormat(iHitbox, "disableshadows", "1"); + DispatchKeyFormat(iHitbox, "disablereceiveshadows", "1"); + DispatchKeyFormat(iHitbox, "DisableBoneFollowers", "1"); + DispatchKeyFormat(iHitbox, "rendermode", "10"); + DispatchKeyFormat(iHitbox, "PerformanceMode", "1"); + DispatchKeyFormat(iHitbox, "material", "3"); + DispatchKeyFormat(iHitbox, "health", "200"); + DispatchKeyFormat(iHitbox, "physdamagescale", "1.0"); + DispatchKeyFormat(iHitbox, "OnBreak", "season_rotating_%d,KillHierarchy,,2.5,1", g_iCounter); + DispatchKeyFormat(iHitbox, "OnBreak", "season_particle_%d,Start,,0,1", g_iCounter); + DispatchKeyFormat(iHitbox, "OnBreak", "season_sound_%d,PlaySound,,0,1", g_iCounter); + DispatchKeyFormat(iHitbox, "OnBreak", "season_sound_%d,Kill,,2.4,1", g_iCounter); + DispatchKeyFormat(iHitbox, "OnUser1", "season_rotating_%d,KillHierarchy,,59.0,1", g_iCounter); + DispatchKeyFormat(iHitbox, "OnUser1", "season_sound_%d,Kill,,59.0,1", g_iCounter); + DispatchKeyFormat(iHitbox, "OnUser2", "season_rotating_%d,KillHierarchy,,0,1", g_iCounter); + DispatchKeyFormat(iHitbox, "OnUser2", "season_sound_%d,Kill,,0,1", g_iCounter); SpawnAndActivate(iHitbox); ParentToEntity(iHitbox, iRotating); @@ -627,9 +658,9 @@ public void HookCallback(const char[] output, int caller, int activator, float d char sName[MAX_NAME_LENGTH]; GetClientName(client, sName, sizeof(sName)); - char sQuery[255]; + char sQuery[256]; Format(sQuery, sizeof(sQuery), "INSERT INTO halloween_table (steam_auth,name,collected) VALUES ('%s','%s',1) ON DUPLICATE KEY UPDATE collected=collected+1;", sSteamID, sName); - SQL_FastQuery(g_hDatabase, sQuery); + g_hDatabase.Query(SQL_OnQueryCompletedUpdate, sQuery); g_iCollected[client] += 1; CheckAndAddFlag(client); @@ -647,27 +678,42 @@ public void HookCallback(const char[] output, int caller, int activator, float d } } +//---------------------------------------------------------------------------------------------------- +// Purpose: +//---------------------------------------------------------------------------------------------------- +public void SQL_OnQueryCompletedUpdate(Database db, DBResultSet results, const char[] error, any data) +{ + if (!db || strlen(error)) + { + LogError("Query error: %s", error); + return; + } +} + //---------------------------------------------------------------------------------------------------- // Purpose: //---------------------------------------------------------------------------------------------------- public void ZR_OnClientInfected(int client, int attacker, bool motherInfect, bool respawnOverride, bool respawn) { + if (!g_hCVar_InfectionEffectEnabled.BoolValue) + return; + if (!IsValidClient(attacker)) return; - if (g_hCVar_InfectionEffectEnabled.BoolValue && ((g_iCollected[client] >= g_hCVar_MilestoneInfection.IntValue) || g_iCollected[attacker] >= g_hCVar_MilestoneInfection.IntValue)) + if (g_iCollected[client] >= g_hCVar_MilestoneInfection.IntValue || g_iCollected[attacker] >= g_hCVar_MilestoneInfection.IntValue) { float fInfectionOrigin[3]; GetClientAbsOrigin(client, fInfectionOrigin); // Rotating int iRotating = CreateEntityAtOrigin("func_rotating", fInfectionOrigin); - DispatchKeyFormat(iRotating, "targetname", "season_infection_rotating_%d", g_iCounter); - DispatchKeyFormat(iRotating, "maxspeed", "13"); - DispatchKeyFormat(iRotating, "spawnflags", "64"); - DispatchKeyFormat(iRotating, "OnUser1", "!self,KillHierarchy,,45,1"); - DispatchKeyFormat(iRotating, "OnUser2", "!self,KillHierarchy,,0,1"); - DispatchKeyFormat(iRotating, "OnUser3", "!self,Start,,0,1"); + DispatchKeyFormat(iRotating, "targetname", "season_infection_rotating_%d", g_iCounter); + DispatchKeyFormat(iRotating, "maxspeed", "13"); + DispatchKeyFormat(iRotating, "spawnflags", "64"); + DispatchKeyFormat(iRotating, "OnUser1", "season_infection_prop_%d,FireUser1,,0,1", g_iCounter); + DispatchKeyFormat(iRotating, "OnUser1", "!self,KillHierarchy,,45,1"); + DispatchKeyFormat(iRotating, "OnUser2", "!self,KillHierarchy,,0,1"); SpawnAndActivate(iRotating); // make the trigger work. @@ -676,89 +722,89 @@ public void ZR_OnClientInfected(int client, int attacker, bool motherInfect, boo int iModel = CreateEntityAtOrigin("prop_dynamic_override", fInfectionOrigin); - DispatchKeyFormat(iModel, "targetname", "season_infection_prop_%d", g_iCounter); + DispatchKeyFormat(iModel, "targetname", "season_infection_prop_%d", g_iCounter); int iRandomSkin = GetRandomInt(0, 6); if (iRandomSkin == 0) { - DispatchKeyFormat(iModel, "model", "models/hh2015/escalados/jackolantern_01.mdl"); - DispatchKeyFormat(iModel, "modelscale", "0.03"); - DispatchKeyFormat(iModel, "angles", "0 0 0"); - DispatchKeyFormat(iModel, "OnUser1", "season_infection_rotating_%d,Start,,0,1", g_iCounter); + DispatchKeyFormat(iModel, "model", "models/hh2015/escalados/jackolantern_01.mdl"); + DispatchKeyFormat(iModel, "modelscale", "0.03"); + DispatchKeyFormat(iModel, "angles", "0 0 0"); + DispatchKeyFormat(iModel, "OnUser1", "season_infection_rotating_%d,Start,,0,1", g_iCounter); } else if (iRandomSkin == 1) { - DispatchKeyFormat(iModel, "model", "models/hh2015/escalados/jackolantern_02.mdl"); - DispatchKeyFormat(iModel, "modelscale", "0.025"); - DispatchKeyFormat(iModel, "angles", "0 0 0"); - DispatchKeyFormat(iModel, "OnUser1", "season_infection_rotating_%d,Start,,0,1", g_iCounter); + DispatchKeyFormat(iModel, "model", "models/hh2015/escalados/jackolantern_02.mdl"); + DispatchKeyFormat(iModel, "modelscale", "0.025"); + DispatchKeyFormat(iModel, "angles", "0 0 0"); + DispatchKeyFormat(iModel, "OnUser1", "season_infection_rotating_%d,Start,,0,1", g_iCounter); } else if (iRandomSkin == 2) { - DispatchKeyFormat(iModel, "model", "models/hh2015/escalados/skull_island_horns.mdl"); - DispatchKeyFormat(iModel, "modelscale", "0.08"); - DispatchKeyFormat(iModel, "angles", "0 0 0"); - DispatchKeyFormat(iModel, "OnUser1", "season_infection_rotating_%d,Start,,0,1", g_iCounter); + DispatchKeyFormat(iModel, "model", "models/hh2015/escalados/skull_island_horns.mdl"); + DispatchKeyFormat(iModel, "modelscale", "0.08"); + DispatchKeyFormat(iModel, "angles", "0 0 0"); + DispatchKeyFormat(iModel, "OnUser1", "season_infection_rotating_%d,Start,,0,1", g_iCounter); } else if (iRandomSkin == 3) { - DispatchKeyFormat(iModel, "model", "models/hh2015/escalados/skull_island01.mdl"); - DispatchKeyFormat(iModel, "modelscale", "0.1"); - DispatchKeyFormat(iModel, "angles", "0 0 0"); - DispatchKeyFormat(iModel, "OnUser1", "season_infection_rotating_%d,Start,,0,1", g_iCounter); + DispatchKeyFormat(iModel, "model", "models/hh2015/escalados/skull_island01.mdl"); + DispatchKeyFormat(iModel, "modelscale", "0.1"); + DispatchKeyFormat(iModel, "angles", "0 0 0"); + DispatchKeyFormat(iModel, "OnUser1", "season_infection_rotating_%d,Start,,0,1", g_iCounter); fInfectionOrigin[2] += 7; } else if (iRandomSkin == 4) { - DispatchKeyFormat(iModel, "model", "models/syoudous/spooky/ghost_no_hat.mdl"); - DispatchKeyFormat(iModel, "modelscale", "0.4"); - DispatchKeyFormat(iModel, "angles", "0 0 0"); - DispatchKeyFormat(iModel, "OnUser1", "season_infection_rotating_%d,Start,,0,1", g_iCounter); + DispatchKeyFormat(iModel, "model", "models/syoudous/spooky/ghost_no_hat.mdl"); + DispatchKeyFormat(iModel, "modelscale", "0.4"); + DispatchKeyFormat(iModel, "angles", "0 0 0"); + DispatchKeyFormat(iModel, "OnUser1", "season_infection_rotating_%d,Start,,0,1", g_iCounter); } else if ((iRandomSkin == 5) || (iRandomSkin == 6)) { - DispatchKeyFormat(iModel, "model", "models/unloze/cute_skeleton.mdl"); - DispatchKeyFormat(iModel, "modelscale", "0.35"); - DispatchKeyFormat(iModel, "angles", "0 0 0"); - DispatchKeyFormat(iModel, "DefaultAnim","crumbled"); - DispatchKeyFormat(iModel, "OnUser1", "!self,SetAnimation,wakeup,3,1"); + DispatchKeyFormat(iModel, "model", "models/unloze/cute_skeleton.mdl"); + DispatchKeyFormat(iModel, "modelscale", "0.35"); + DispatchKeyFormat(iModel, "angles", "0 0 0"); + DispatchKeyFormat(iModel, "DefaultAnim", "crumbled"); + DispatchKeyFormat(iModel, "OnUser1", "!self,SetAnimation,wakeup,3,1"); int iRandomAnimation = GetRandomInt(0, 4); if (iRandomAnimation == 0) { - DispatchKeyFormat(iModel, "OnUser1", "!self,SetAnimation,idle,4.5,1"); + DispatchKeyFormat(iModel, "OnUser1", "!self,SetAnimation,idle,4.5,1"); } else if (iRandomAnimation == 1) { - DispatchKeyFormat(iModel, "OnUser1", "!self,SetAnimation,dance_1,4.5,1"); - DispatchKeyFormat(iModel, "OnUser1", "season_infection_rotating_%d,Start,,4.5,1", g_iCounter); + DispatchKeyFormat(iModel, "OnUser1", "!self,SetAnimation,dance_1,4.5,1"); + DispatchKeyFormat(iModel, "OnUser1", "season_infection_rotating_%d,Start,,4.5,1", g_iCounter); } else if (iRandomAnimation == 2) { - DispatchKeyFormat(iModel, "OnUser1", "!self,SetAnimation,dance_2,4.5,1"); - DispatchKeyFormat(iModel, "OnUser1", "season_infection_rotating_%d,Start,,4.5,1", g_iCounter); + DispatchKeyFormat(iModel, "OnUser1", "!self,SetAnimation,dance_2,4.5,1"); + DispatchKeyFormat(iModel, "OnUser1", "season_infection_rotating_%d,Start,,4.5,1", g_iCounter); } else if (iRandomAnimation == 3) { - DispatchKeyFormat(iModel, "OnUser1", "!self,SetAnimation,dance_3,4.5,1"); - DispatchKeyFormat(iModel, "OnUser1", "season_infection_rotating_%d,Start,,4.5,1", g_iCounter); + DispatchKeyFormat(iModel, "OnUser1", "!self,SetAnimation,dance_3,4.5,1"); + DispatchKeyFormat(iModel, "OnUser1", "season_infection_rotating_%d,Start,,4.5,1", g_iCounter); } else if (iRandomAnimation == 4) { - DispatchKeyFormat(iModel, "OnUser1", "!self,SetAnimation,dance_4,4.5,1"); - DispatchKeyFormat(iModel, "OnUser1", "season_infection_rotating_%d,Start,,4.5,1", g_iCounter); + DispatchKeyFormat(iModel, "OnUser1", "!self,SetAnimation,dance_4,4.5,1"); + DispatchKeyFormat(iModel, "OnUser1", "season_infection_rotating_%d,Start,,4.5,1", g_iCounter); } } - DispatchKeyFormat(iModel, "disableshadows", "1"); - DispatchKeyFormat(iModel, "disablereceiveshadows", "1"); - DispatchKeyFormat(iModel, "DisableBoneFollowers", "1"); + DispatchKeyFormat(iModel, "disableshadows", "1"); + DispatchKeyFormat(iModel, "disablereceiveshadows", "1"); + DispatchKeyFormat(iModel, "DisableBoneFollowers", "1"); DispatchKeyValueVector(iModel, "origin", fInfectionOrigin); + SpawnAndActivate(iModel); ParentToEntity(iModel, iRotating); - AcceptEntityInput(iModel, "FireUser1"); AcceptEntityInput(iRotating, "FireUser1"); int iEntityLimit = g_hCVar_EntityLimit.IntValue; @@ -777,29 +823,31 @@ public void ZR_OnClientInfected(int client, int attacker, bool motherInfect, boo //---------------------------------------------------------------------------------------------------- public void OnEntitySpawned(int Entity, const char[] sClassname) { + if (StrContains(sClassname, "_projectile", false) == -1) + return; + int iOwner = GetEntPropEnt(Entity, Prop_Data, "m_hOwnerEntity"); if(!IsValidClient(iOwner)) return; - if (g_iCollected[iOwner] >= g_hCVar_MilestoneGrenade.IntValue) - { - SetEntityRenderMode(Entity, RENDER_NONE); + if (g_iCollected[iOwner] < g_hCVar_MilestoneGrenade.IntValue) + return; - float fNadeOrigin[3]; - GetEntPropVector(Entity, Prop_Send, "m_vecOrigin", fNadeOrigin); + SetEntityRenderMode(Entity, RENDER_NONE); - int iNadeProp = CreateEntityAtOrigin("prop_dynamic_override", fNadeOrigin); - DispatchKeyFormat(iNadeProp, "targetname", "season_nade_prop_%d", g_iCounter); + float fNadeOrigin[3]; + GetEntPropVector(Entity, Prop_Send, "m_vecOrigin", fNadeOrigin); - DispatchKeyFormat(iNadeProp, "model", "models/models_kit/hallo_pumpkin_l.mdl"); - DispatchKeyFormat(iNadeProp, "disableshadows", "1"); - DispatchKeyFormat(iNadeProp, "disablereceiveshadows", "1"); - DispatchKeyFormat(iNadeProp, "DisableBoneFollowers", "1"); - DispatchKeyFormat(iNadeProp, "modelscale", "0.35"); + int iNadeProp = CreateEntityAtOrigin("prop_dynamic_override", fNadeOrigin); + DispatchKeyFormat(iNadeProp, "targetname", "season_nade_prop_%d", g_iCounter); + DispatchKeyFormat(iNadeProp, "model", "models/models_kit/hallo_pumpkin_l.mdl"); + DispatchKeyFormat(iNadeProp, "disableshadows", "1"); + DispatchKeyFormat(iNadeProp, "disablereceiveshadows", "1"); + DispatchKeyFormat(iNadeProp, "DisableBoneFollowers", "1"); + DispatchKeyFormat(iNadeProp, "modelscale", "0.35"); - SpawnAndActivate(iNadeProp); - ParentToEntity(iNadeProp, Entity); - } + SpawnAndActivate(iNadeProp); + ParentToEntity(iNadeProp, Entity); } //----------------------------------------------------------------------------------------------------