From 848fcfad1fabcec4f73418cb5f7852e89705c87d Mon Sep 17 00:00:00 2001 From: Anuken Date: Thu, 20 Nov 2025 21:06:59 -0500 Subject: [PATCH] Insect/leg unit step sound --- core/assets/sounds/walkerStep.ogg | Bin 0 -> 34963 bytes core/src/mindustry/audio/SoundPriority.java | 7 +++++-- core/src/mindustry/content/UnitTypes.java | 18 ++++++++++++++++++ .../src/mindustry/entities/comp/LegsComp.java | 1 + .../src/mindustry/entities/comp/MechComp.java | 2 +- core/src/mindustry/io/SaveVersion.java | 14 +++++++++++++- core/src/mindustry/type/UnitType.java | 4 +++- 7 files changed, 41 insertions(+), 5 deletions(-) create mode 100644 core/assets/sounds/walkerStep.ogg diff --git a/core/assets/sounds/walkerStep.ogg b/core/assets/sounds/walkerStep.ogg new file mode 100644 index 0000000000000000000000000000000000000000..877b97b7b9fcd1691241a809a86279ce77ada2e1 GIT binary patch literal 34963 zcmeZIPY-5bVt@kqgf4dw^TvWV9~tEs%kqnoGK)b1Obq3WAe!Od|Ns9%j2(<%oggL{ zgLHyaEPwAVCi4Hk|9>PDT24w~Yh7ivXA6HwC)Wot%1>e-&l;$R87AG+ zFfh2g`USb#ItRHrhJ*&W2B(26&M&Ae%1qBFu{AO@@ED9xFi8<* zU|?Zr(BSM_{LC}!oMpO%dSB53%S=Cu4}Dcj&Re!+S$5tzO;rxwNLB_0 zCI$x&#a59Z5RufO*d~$Gq1Y}{bV70YoFXo*6$_fUj7}&t`xw1kGTG1S<%-39R5VdHFRJ)|(g_qcy=d$j9O4@q8X8&}8(x-ry{z*y{?63=5Pkr#;qOq$IWIk>w)hmbNua3@M->QQ(}U zq&aD^=d!e{b(yobWvt$odwP@3=}kOfB@B!VEFjk~EXbU-3?>95PO5F*qeY~x%#uF03 z!2$|siG>`_JP?~$7#KPhK2ex;VbSe6vC<$n$5m;<)vB0=Omxc;X5XoIH&kr=A~KeD{n^3E$Tm)0qb&1Z~G>wt(ghtFBP-f&pJna6O;B`+P*t6|B#Tc6D< zUT5i%y>#ofDD9BCGfCTwqEnj77c_A}f)f&PA5_i@%3ef5 z=Re8>3aJJPsa`bF4K}t74G9e|%Z;2~dV70o?2Xd<*K6-z?~NC4Lr+-noWtP6q1Xb> zlT(s<43E!g_H*KdL@+Gp6p9?5D06b6iuWcJ-%C1YKbiP{Hn}M58ffAhEE;=JwDhuA zYOq=CWz*Elp{ZBPQg3ccjow}xxeb(CAbAEvUM~fE5t4I2SwzXQ@3F@u7I3xz=bQx^ zeUB{qlszY@L{3txoR;1>Yvs&&FIO(&0xLn}oQ$sJGrE>{bUp9r)99R***R;~&P6$= z*1g_E5W#bfdy$HJ5h&-l7O5cRoCAh3&Os{2H|h9(hWOF;qOomgiK{qr1TZihn84!= zE=K}`bgu@PUJcR>4Y9?aV?skiubTK?Hfg*tVJZWIBm={fCCjc<@d+hOugN**fEbXRFASM^Ra_#Ub6jYg0TNb+;W0Qhd6C-N`wO zgJGd01K)8*8DC}@Z)R|z!oc8pnZZ|t@vJbYLBYVlaNweegRrfGuq#xWB1*=W*(8v~ zBoI=7F@P+(7{Ykb1ZtOquwq!BcTyDuc zWRkcFyT2M37#bMa85$UbPdUKdwAe$4fx%)@N+bir0*^_lj0_E_k@MIY7$&7w%3(K# zcu_P985=Yh7}^&_h!x13X6j3hbeN>Woe;_3%UmJlAi@Yz%mi|sw27)1yM{@MDuVzk z!-E2m)0a#FpIA&=nz`sip^o=umx-yFvzB!#nRs7z5uEqDavA6O&o-A^G`bdLG6kCW zGBPl*f`Z*F!%K%RAmfA=gMtdffrl2;o>nf>=vtOJYt^YjoztIP0!4g-Lu02uj+pkm zbCJfZWvh1SoxWsp9$ZC*md0kxf(x7YiuhhO2@MU66`%F26J)}wRqMFV3%g!6@eM7F zz0SHQW7e{jtJb~V~2`y)^db)YM3}2O!=i9R`L62N)R?4sckVT(OBm+IPnX1`(-EN(>!L3=BPq zUWQ9~l7*bO7AE>Qc_^j?1!-w6<#N(eof_omv2;n0k(ch$X+f-tQzvWs>3ZImLcn zCubC&vs7Q2a>nxcoXJ5}&*v2Ld1)>!IcNEN$&?_c7jue(yfo()pR;6SaDaq%SB{^7 zPzX4XtoFhu_-PQaPrV>oq(GB85;^17#akiJruK^L@29} z3%S>V=)cgCbt5W!?ba{`iF2*Y4v{Ur#%omOiuSRIOKlQj;NWCn=yB{Ye4#RBl9!jL zQ;(&F>eOjbU2B~>3^|rAxe}FQD0beGec_TRQC*tb9$7wLvgArskKwVX7;eR-Q=+?3CiAhR3f|ARbzHENH%+|spivS?~PZZ zlGkiiTii3r@K{v#nyuHArUV%s6A50k_1df!gJa(%lGhkMkD4rW=!aae?#8Q8*+E{K z$|=1ok3|*xd2y!p^y*%nQhbh;!NJyo!9i8RQC%`rEO9ZXxLgA`VsaOzt8^J`UhKdxC*MfPLeZYf-Cv zicWcYu61^kdbVK64NrE(tr6a-3XZ2dz2-J?XtJ$r?a^8~WAZeo(=&p2lC%v=dJNqy zpN2RcmtbIEXkuVs7Bmv(5OHX1%K~HhM8cJFA=V~)9SG?v|o!%3hiLdJoS)579moBF*E zEz)xq1c$tG09Ors3=bF?6mBvoDJ`1$_{E1G44i_JikgO&j)GumX@(yR3?4xZ9UU3Z zEUawo9GqO-JiL7T0+<*W7{N860|O%m2WXrD)Hh~e;NXA^emSIo^)rA5zd+TZ{j(jO za(a9BteQP{_LBLF4Ghgqm(HI&bJEoL)B7g&O`9`w!qhh+8@VGcdd1Fl4ASlHGOBPp zvy)3@@6(U*`{NIA+^Fmcxo~6Nk!d*-1E(;2lV|u9mU2y%he4xM>F3E0v$TWWN$D`$ z&G^ZAV`JO(aE6AQZC3+Q8Ky5cd-i6R=pCDj?Q8a}J9y~F?)~wV`4^@n-b#EexmnIG z*){a&i*u_>@2=}&mTt)?uU>3Fzbx(g()4SxZc`YHirJo(Na>3;FLC?1?pn)YwYSGu zk}mF8wcGbFXN6nPKUP z+e&g(%U=k{Jx^|GxYRc_(A4KliEpa*$-<1H$ncA%N7gY(tk60(jax9RgH62raoze2 ztDSU9ZExwYWHWj*Zj*An<;x?m|Nfg-kxXJ9b%5u78}WWw66@fd?p} zkFYT?Hi+@CGsH#CIb*8AaO945z`^ZOaZ`^5#xE9PFf8x#5XFZjTLE6B|iBV~y&esVdVaIP+v}FYz zTP^0|usBd;F{{hg6%0*rh7Jiq3`T4+&CU)p6f9J3xO05VWILab77@?ez%0LhTk+p^ zzq$JC8!XPBTQup~x+?L2vyu%AAF>$qZ}!a;W?|U3Lnp_zxbm*SXH(xm*OIp9DTPbS_iE+wWW3znz@$D!m+@NuB(Ul7}gHy1Tq@PWr(PV~avn3e}zE95mKex2+4d;cXQk4$FNgsKV zV_aN?l(z?LxP8b?z@=s32HgccJx;e)U-jikDN8Wa@@VSX>Tyb~$H}3Ag^^*R?gSHu zLrN@~W-MkwJz}nog0Acg7ZRjx$%2_wNq7n zpvimpRFh`L(;Dku=qyS)>2)zNV}rPISZD3d1*%;ucy=<}@OUk-G03AfabV6qC1t!X^g;1-1=g?Hyqufq|mj3=D5BdNQr{VKbP+T`)i8 zJJb3ksreiFH5lS{n7ruO%CKzGYuS+S08<<3>78;JY3r@M&iMzg>PV}oV`Y%o_ekCI zL?h#apNY&3K6~Z8@8_La;r23ezgfCK!r89a+hV^P-E@tTq!}-1G2Fd6L1C-Ff@vxo zcW30V@J!*0=)NJglG8!OOjn;LL1&tWQ{tbi3eHm-&O z&lBO19bnNKv8hYv!lOm@|GzP8TOsnoZUY0;O`Z^?>mQ_CoIXWvWS9`TL@3|PW>kGwQZ|SvHp)hL+=$$^cY}ZngV}=vjEW3m2}e&c6(qZCU<$aw^+bR}JY#L> zQMT^X)lA$Bdn6bln7Hr$tUbuYaBNb8zj@zuHxGSACLO7R)7MV>8NXR+^Q0F`?!DQR z>wJBUhmbaZ!=VR)3fgL$Bu_K22n1+fQ{ggs+qaADkLXc<{wHtiuewiqqANc0!%@D= zYO&83dwvR&V~}m+XEgb@Ta822r{V2HhK*b6I3_W$h<)8}`#$&Q{%3ZcN!ru>{^YG# zc{T32ohQ@j-_LBC7pOA(9qsc~QtHyEauEsqB9-du9}?!tXd-vizU=h24_4fh4txq& z`9Ia%SG!^^t7qC%=8TgE*bhjs%EV@sE-+lRB1vRz@YY{Kv2*81?bIdZvYrg4Y#~%dJ?@E;%oriNS|GKUj1643>aJDvS$0S-gozE-@<$<@m@bGuz8y zyK7``Wkj{QHPXUk@w~fzJ+pqZMhq?zjUP=bUfN%$|$ko z^r|z5EHAK4V=?Ub%9?OhA!Fr>Eq)^1M=KZ@5^N%ZTUT6rwaRMojT6%tT0X14?B>5Z zWBtcT40W8opB$e3-Ie$(z)jWcu(8mq1B_>0PjHr0t>-{BECJ=y{0<<(!|)cZ#_!uLayj-+%dt6@krEklK{~pOJ*C|?p5Hq z(Z)DCz--yt2?w}ReX>N@BFZ$JQjRtD_HI;dX=9LLkGw; z-^|^#3=A0r8e|T(pSZ;s*O~LD~+Iwrd@aCD{%H5k8NS6;N~@r|z4&f9K8M6od3cxSC#trD3qC9pZ@b!IeU`a;(< zo~>68IUIBdRydYlvLrBV=Ss&@FHd#f2#-Fyujh#95eL`X5(Z|AR&}j4WMIE##{I>| zXoiCTqe{@`<)^T(S!QGM3l?oa2fT31{(oAu_-6akl2+;MHLTUTk7hJ>!%x@8wf zvyZ_^t{vju2@Xy|jfX4O)@;ppeI;Dia&vh@E@K~~Qe$XyQ$~pdLulxQ6$}g_3^oml z@`tunD6Uj$KRHu*-^3#pg8MAzy1H*JzN?aM?)6Uc-SjJbR;Oz3D!B76n^fNRJe;Ay zN>JY}mr+1SnXO?S1A_)17XyRAxeZr*_fM7Q_7Rsjq74#tNiJ?d0r-|3n!UTvSsy z;=}Y~$r^?Y&n?t>o?R~ypII39Q0UIJM;A9sznqXOwIwPdt0_U*Bv)|JB_)2LySf6? zd?h%v9VOFd2%523@6l-p;9zg*uQF} z)-i?+9V`sI^Cw?E;%d>$-qI#LW0yke{nL-v7)11na{G9Q9Bg{Qy+pueg4YobrU$}(Uo*Zi6t!sOp zy{N-O(O9`7%tfEaM}^6$ZwAYUHO6s2mw#l9KUfi9Droq|dUIx4nSa}iS z&e)n(af&a#I{i?G;~t$g+nU_e6rz}$?sm7nbM27%w)xzAzlBdOn0{KH%4EQOnxi3< zvvGq$!-*v&ma557s|)3_Y*QO+_UBDj?w$0X_q_irKI=(;clkc9KU^1f__L{RX|HXQ z#?fhZp|X9941v-LoJS-Wj(y&<()!8A-0evYI$f?OZ5I^%KImzaGqISI=R9O9DtjXWHQVNN&uIT}{FNHm|w&ayf; zVds|j5;4tbO#fcadC|DM_^v^*Hz-XRPrmu0^TfB;Gj^WTczORrP3UsVJFRA#OO_pW z{Bx*543y?8qW-@B;hc7!OJ0yM@Z`5Pru{uPWs*~}XQ_#mE;wqGXckC+^T=fZ|DAhzkiKSy@g5fUSXy> z&DzZJ` zkf+7LB}LFlN#)Hpg-vfJEOu4rRbO)d^=uJWmr%*u8rsh;O!z9iDfY~gR|{oU2C-E zusAejtXhn^;z|#xt*fS#Zu89SIVhU3Mzx1W z>6qi4^eItR2a*nKjk>DEwj^lk28IKmn8ytcX0{|A z28R~Lb!Uwj_wAhPAjIW;U3S(#rk`m$%CpjEw9I<3D?0lZ_Y-?iWID{{*>8}rkmHC4 zLqr{D>43l+kygc{>6VtR=DD}U_VG#VbL_vqY*uRNlF4_Bc#bfvaL^DDTO+uFadiMk z!=kV?4x6qlSadYObxT*$0f`MQu02nVP3q-1#KLLV(7P&_k%PgYqbcyGXI$K!4XG1^ z?(MW~5Z-m-b>7C;xi*Jug?Be;gv`8t*Xg?T2g!Nyj10Ftp9D=1FlN}&#>Y^%@o2#Q zt+~hNFS^<~&-3Zk8wvUA#hTrClP*dg@icw7W|H+X&SP?lyEjJgEQsi95pfU{QeZS| zSS!l7k@rSZgQL!(gVP@eI5P_7_^>drGBLgm%MoE^ugKWSa6lty)34tjJ*$=9I^N4- zfQ~#IMT|UvX3Z|8T%~~{R=HmIQ4E2okjP>=5&5Rex zMeRMJlJes9vJ2Vln)4q;Elb8$L~(?k}A=23(ayh^lAv$JYyrT(V~fwO>QiDMte8#D8(#M zP;kfyHMv#Az|z8^!z6e>MB0_5fy2^R<8E%KvuJ}=BV)=1mkYn{dDu)BO=D1D*k@^5 zD#R6iJ$IMfW8*v0tBpT6O|6vOb*~Z9#way1cGNt^@S*lP3&W+|ujVdre06okn^&0{ zk8dqs%O7lXM=Wj8>R?lbtA zb#gBE>X+a2{l*karKUdGqK;KQgXzEnso$^ z7fN%99N^-xnNaM;!00eNk73q|=S=SdT$~vh7#~b#%i5Cm?NqTPi^PEq3MVEWzbDQ3 zFLLfpjgVivW^=jaO3s^qb!MsJvh};CayfeCO3w2)J-_bGy0w$b`b-Z6t};kdW8AXm z-iF$EwWzx{*LBz4omFbZbTPwGl6ymxPQ+G*BRx|l@wz%K3v5{3;B+>?RiOLdZ(JX(H^sfci(FHFx@!4M&LyJ;m=?1{9G+=czf2F6GtWL z+Ez(0ACQc>`1oA;M6JISuT86CB|QbY3%0TpE?&QJO2=IVom*UIc{muZP3e%HD&WK5 z6n4Jhtw5u1Gmn@I$GWbjt!|>B0?b{8366#tqKO7AW*ixcsk2uFJFPENG?rbqTBGkL z%al~ph1pt19KMO`8hx7=@`WYtWXy#{St19f>^kPLPio%WE0e_*&f4|v!fKXQyTgCI z85)*JnFgl`9oYSJ21CHNkM;9c#$J-PU@~QSQm`&E(mskQ&~%erZDN_NcQYUJ zOk~-XFpDvF!6PZht9Odn4oDqX6p?bEkyVVXm8&<$u_^6<+crg+IUdszbfl(i+_fr_ zYx1E3ab*lGX>4H!?(So5*i@q$-}m)N*(OP`x!e4Iva>ME)13QMgXhz(l_ADJorO9JA@%;rFbHbM<9d3gro0V1e@K~C`c8FtlgNwb78g0 zl?d)bTf&oPdpSrrTvmMS^6|Ur0w0NckCrJ|YjHB}>05eqT5gymvtIVk6>;;X%!%9i z)_`;BzC10{-uoZU-0`#Eiv7K7?G?Tnup3ir!=~ynJ49EnV=(x2=wN)@l!V!TUSu!s zJv!N4zDt(-vWe0fslb+%3X+R?T|BNBYw>hTP2KotThm0IHVG$2i5{I6Z3DjzT}jprXnzCL7(=)nNy;d&72bB<*Vqt?cup=)3}uMCLHTZY!q2Cg`sQ!tm{k4>)3-6u$GGKl{RSc0h34_od-R^B#gm#ExD+ z=wy{BbfA=lL11?IFnV!t^OA@|2LyQ~QdsyHHcNQt z?$>5h@<`?}l5%2YVi!h;-$2OR%3;zdNYs zF{57V)2Ig?n*`rJ)S|S(#5ZKb-6-dsD;ZS?T1YCwoC| zJ0S2r6711U3~dX%GGM+VuAK)NoN??zF*5O zQSC93++FN=c}9=W>Up=*nZ#0hCES~{HM3XV3X`-pP&v|dNQhBs(E+7pV&`Tg3cfMb z4xj%m;@!dS!0fBeHHFg!1b2I12@H;^+B=bn;q-wK(eQs#+0D;6t@Wig~iH*yHKG8wptrnfY*Ma+3OA#`3TV;GyD zF^nD66K~5bWf>Zex{KjJxa(QJp2MTa8a$xXr|o=IX)5;W%x^ zF16y|TbwFa!W;v1x)QdmI(yvhnC!mUep@>}D1=D1Oc1VB+a7S~ADe=sUfL4pC9cez z{tsXOoHa>-A&yh_p^8Y}_1vYg2Ep&7=S@7yCAX@HA!l){xbM!CA2qBDGv-C~1f{Am z?pb@0vEhNS`rgAPKXc|JpUG~``F@+Pw_kl(R7c~|M6cv)42PIJ7?f^p(`8z!5vCNt zGA;E(LTJlW!SC089qINiH`RT`)z07i{bm2RbN57f+e;!fdhK7#@laM2-N3LiC*|v$ zzgb?V4bQ$!dmk*qP$&7eN~|f?{bdl-&wC%%q?nZjigP7syiH!xa_hrSE(U=|*?Ahq zoDXhIXE12wxuYYyOe9k6cd>gy%w!n>hOv$pg~4oT6gK7FK8K~0)I1W8u2W*J1kH+l%?b5qdGKYi*AYMCJz87ml_g5-%=^AJ zlkLqL-tX%f7!G${Pk5=o#&Ex0o#DjVFCBjFe&=qBIM=0oJ2LNt_%UO(h#ob4Q{7O< zTg(e5I)(7)-ez;)IRa;)-$wJXS}+`PY0*2-Aj72? zw$#<1aRJjw#stS>MN69#HAPM>xsajob#vJ{&;Jem>Tg!|TX7by?bUPY<53e?&=Dlu z7^*7C%HnqN9^ZSd>nH6zQ&f$k)mvX^u0P4^x$zT&2FpIl18-I?D`MmqRSV*1Tz#Of zZt`n2AE&diPSt(a89mdN3eOG`dmp{dP-XE{W=0Xs1-1*qmPC3nXemwCXY0r$<>b~y(<*h6U?eA|y`jp?sr(BBb{IZ*6F2#93xjIM0z;OB@-}>YE-f``nXHGRTa5dMl@2Q#7B3`FpTGA0>k|^2zT9ZLX?C#O# zU(tG*DPj}P)!e%IXZpI;OdTp)iVpZzGqpBEmWQvuwae3E)`1?rkdw?VR-ZFhT+Cj# z+97SJzo!1Tit=4@C)U_7v^rKhe0|+0WxzVcHIaSNq6eO(TUR*ny{?X9@CmwT-tj$a z{pWHc?PlNe>e=s#cfRUZS^1P*U|K@pfd|i7vpX*ttXQRy!KvaZ8uZ0c!FoctaZT9S z!|SfcSI6E|?Oc=N^>lLW`ui`f^gI)uvMQ)Eiw3N=p065ns3Eh#^mF%%`5o({=CW6L zT>Z0V21~;-v9n844;Kr*-nniDGlMD9>W4p585uOE1qE&>_hgt~a$bqy$41SEhR5IR z>olz6+&f{K@GNIV57&~c98uM^3E4-JLN+FyjNP0tIY?=ji`b@|$U*@vF@sG^0@puJ zedwRTEXOL!C3*4Eqg1hDp1k`NgbpSgxo~auL&K*Bq%wG9A}n5f36M`AWRDq|OlC%xLGdxbN|{&20)ZY6b*Bc;JBZZEMp{MnnKVdAAsFXPD!Vv`vjJP-QH z%F5@P^(~`Ia>j?Q4^t-XEBRYptXpBdg()SBIWFs9;#pm$0U(%jVWTBi%&( z8z&lPByh00?RDt5uzKpMj)cul$-#@gdQA?f%4#URKhRvqoa|2(5ccZUY z*_yZ7uMZo1P~c#Yn|XJm;IU)t7nkhy4f@1$-s3gj+zZEd^<67vvpf7*n&AMG=>3IR zXBa-LbBhXR@H*RXW$bzB>V&R?^0(U}{t4S3QS$WjPqsSce#1;rnB&mZZ3nYEmaxrk zUbD|ZY?>>_TY=K0(~uGrctkj=Oxit(hhbsTgg2&p;?(PEEH|+Rc0~9-4PK??X55f1oy6~1`|EGn^vK0)BYb_C zeRb|S9Aa=<%&_^!Ck6|KWLe&0I+S3epvTi45+Kk!iEG;mw~Ys` zFJUP43t?$!Wo7VeJG4NJTk!DB$xin*798hVk?Qw;qNCHx1FQ6PlEowi95(5xd)NJl zNf1){zH8?S!5=)|4?S`TKg!lnv{K?k8Ytm4u$C4~5z5k=%rI})eNKj|R;%{!kCf*N zZee^lYkL0&*Rt!|)ow5xH0R>vOchUD;5coeL6@=11&sw)BQh3k+*75%;Km?mA{Hv> z$Zd6S0hiOyjtL&p8)BxMm{S~W(Z+IUnrV}u@v&*G=50$E0vtDm=pAD?rodw{@sG?W z?>&rlEA|uwcD#A55$kObf4H`=(m8O&vUSR(nQ8mLo#V-@dt9%^s3|lCvoi>YZcUPQ z-n!sGy@yi;bI^)F)y}U^cmC3u%yTzPNd8U06@iA(CPAlw9+~b4M<%5VAqmD1!KK~C zIi?N?9AXDJlmuBK7BB=xX@o4~Xk6KtD7xe9nm&J_{yk>kU8^Kl*PTv#B64^F*VOI0*Ei1D)RuI12@A*c03#;Gh=m#tc_JBf zrXT2@>({N-?Z)fC6Hs;~LPdc&DL_YJ#;TVAY|Kn74Kkc8D-|k_%Nd1SKFjsxQZk#= zEXFJQVA_SaAOUL*0x$%<3X9N+<7X&b?%8!#|f_p`|O% zJY#1scoa1w-S=uL!;h9X3=Ov*-zy3;SC!>BTr-)`H1tiMp`9#OWUk>Qw@xn!w>8-_ zPP!sT;qQ*3t!)jwPvl*+YwnLNv4o`%)*GRz9j-^YP_G@iR>GYb^RIpM9u2e^|bcL5v}XQGusz62rb9HBOo$$JR-E zuS$+N{5jwkOT>z4>o%{rUD5V?Is?PvX*0Dr87l6~V`eZqdPes9);RVbZNiH(*Xf*C zQT#S5^*w7gld{mF=}zny`~qg`Z04)rxpBZrD_}wr3yXpj1MBWbahJ3l9L*WBOs=}R z1TmFIJ-ryR{$qsun}W6MLJU#|itZHfu^(VK{D4tszt(ys206}JCQX-HrRf)|n9hG# zQ?hTP@T5n(?k+Do`~xyKYHkwJ!}!3Iv4JrwU9*zoaC+{U#ey7>FWxs-Pd=z5EcA_Q z(J`wpVXZL?{F6RjS>V8+WR}prg44DC+9C!fu>;2xm-O&V*`Ug<(0e$5F>wQv(lm*v zQo(N$vrpzGykBcAy+>VpbDojX~o*W=>A8uyc!#;8^GdZ*||~RVcuJ2A-yaO?~lbWE_m6sc6$E?*N^)aOD|vb zc(rhJ*YwwyUwK{A%3AU$XyYZWr%Pl4GP5)Gdy8*VFIwFxc5<1kJD-knv%+BpPA(Uz zgsIF2l$0WN+ZvdxP*`z{Ghx@0Rc<%eJ03Xw@m%DRsITJZrRzUf+%r7Tec5Kah0F&A z23`h(4H69he*BpdqR|sqUR5f6zQBLVK31`$msWeNj+uh`pKE%3LOmG{B<0^_W7ycR zyW74t!mLxgFX+$Yy_t_U|CQXucDrM8xa-P^DO((lEY+}L?{r2j+v=BTJD!_v-y`6q zeEn?dmTI=&nZ`Ez85x)ivSzND#L#f`el7z?;WbrFxonY8hT|{eYHLy!Ir%-^CKh}= z{!^cV758mdF(F;1Md_hwJx(hQOwknJaM{zQ$Rx6EThF09UEOJ{U91gTn8JD*JOU2v zm>ZZeE#ZKXO#>r?^#LZG0}KfpyH7Ig+p#A}zh&P#U8(2|za;0iU(&tiG_~q(jN9eQ zYnGk;@Q00oQ+znFu@9Lg;vLq(t^u--#_uP=` zp0F~iC4}WhfRI9fk7JM2k`$c=k8VHahQP-re7WlxH!-m+2#^pl(7xgE;?%3mF3DA9 z`qCe6#O<2@?%8Ge@^ioc9Fg5o`=s%kMB{QEMrI9$c{~0b2-2|Llefq1@@1QuC2i?R zUzwF$ey^W>ee>hYd3E3lV4L!)rY43DweCy}{c@k(B%>E?d?jHXZmlk(l2cuq|I)SO z-A;2YsUwaO5i<^+=JJ|*&RYF{$htcxKcsLwC{Gl51cH0OKL`(sYCV5G?SuYrSoUm-^70WcyQ+@ z2APJ{%nWfa{-{4LtX}8*Joj04g_z&}`5A1!b$6G|J7x?@>^)(uj0_C(4AwC$xY5F2 zU1GoeuH^R9wSw{G|0Q4l)Li@d{QD3#omG#vsFY}zM`n(^!3nTOL3PI}$@ zC}C}O?&S$f+Fq^Pdi_j$`U+!)tCQ!jALC_^`@q1!&QNFZ*WScoFXcfbpK;# zS`gd5t2Y}oKzkw`G#}`{i?QMC+q7$!_rBO@AtaM~_D7%WT>A$*Z4B3LlrIUqBxP&g zmHFt!`h~{>>Q23TxPhg6UVQPKd)uYuZAJKxTYIb5v&OP-@~7vEPNo5P<^3oVEFU=yfj13_lLJ9&1zdO ze>FF5w)Pj!@ICikKOU@IKXv~R#f)FiXDm9ss=spolxHiJeY*U8{kdljel0e;>|{=a zs&BIZ`a+_T%+*Bj32i7s4vi%WD?DnIQS?3g2kwGe>fPrBi$KQG};}gCyn_&>V6W8u2&E4eYChSdVbEs7ir3=K!;&tWi#XwBX7HZMLbHgr$h@1^D!GfK-o zJKfD&waZ}dxeh}|+xM5{{Hn@>c-CIFueFWwyk-AEe$MsMkC9!T=Z^T!*SgQ_TxNUV zv%Cz$2T($&_mVvEcbBJaZ+3;4)Bk+Q1zTRLfs(}^E`|%5j0_A7#9hjZgGzsX|XJIclV{FT z%wBhH;kK8?#%J!|d#E&bX_RM6f~7g(B;4R5ktV!>fsKt>B0ggy`kG>snBUpY#K0r(6>Tt?q3$Oy!=9~uE9K6Xwy*tXyL)DB?c1bl?^@-bRTZv0{JAV# zd7^e{<&P=+Gme~{>-TEG-R+rcU)oxp4zrzl zGkj;7c>UMAuV&rKiHbbbqALC5sO99Q=d@ZSpE}1J(`}W{c^7-d^}dN9L!8Cm`)UVrW6f9I-qDsG_ql$v zz@{?Ut@9lBrdQN4GhAsfV*wR^V$XLm9=K3@>D}r%(mmC&lC#f7-}croym0Hpv#ff4 zm&y9q^8Q^vU9*|@=O)F;8h*}|zn*Zn82(k!saaDRtL&(*BH~l5I)U@F6kEh$wF68I zjL-!SGZDiRtPBhcEZL_6uxzbe{F!n_XK^NB;E7_Fm4zVvyf1q!-C@WuBd#?AZb%P1}=)qGm5EZE;?}C@jD; zmGkgFnMqB-4B`PHSMz%}?#wlqeIV(y)M=({aRb%_MxKUP28ja=tPBidaS?y^%eH%* zFP(i(_6N^-yQlS&*muWYf3fdu3Am%ZcI7I;Ach~`#Dy62|34~P*vRZ+yREnV+p47} zwnvJ8yZ`Upzm2aA44?j-XMXs}wZAqZr_Zf2i8Y_SZt=J@pKDJ`)>zB6KJPDzP+S!Nkc-zZpI(};*K5bXD6M%JSS-W zL%E7S&Wd0DTNT~kZuur2y!K#k>nbBwhEisRnY`al=?c$&5F!>P{@B9D?x`sI7GcFF zm0|kU%FIT$0^hxw7b9F68|v$Ro#n}&649vDvoB7$dtj5BvO|M${Vw5*Z}qyTzs_;; zo%v4id5P$BHu)W&`K~qpJ}U8Ahnc&(HFud{-}UXDJ)6%DRIM;IJnl(V zXxF7lj0f(zJ)7F`Z(sFU^@;}e3I;ib1I+iX|2bW;8 zJ-K4%fjM(7uies_Z@ll($6Lz+gYz<%w6opNIBz<8ve4Eq?|d`gFD)sYa=E1UUh1rc zU)SpvX=qnYoRRW8Cibqh`8K`eIp4qCv$~g9_<)h&0Yd}>CxcwZpL7*Ro9n){=Vg7) z7x1U#y|c*pUHYPut^F@}qI<>qRa&kL4E;$=4Z80hKlC-8D!0n2>o~WcY?NSaa{Y(- zr>DPcHnv^uJbin%T}tY?{nHa;O5G}J)u%muH2>7eu4+at<#>%7OM?<$_(?2dx4FB$ z{r=)ZUwzK=6y(|MDSlqaI$!48Q|29i-Y}o9?t9K4&tN>g&)-H)&Z7P(!v_W-2D^wq z=}r^&z4oY;D~_-~ygC2p@d+FsW45>6+iv+3l9p?uO*J_f#F4J-ldXmx34K?b-%uTwrofLua)N~>))6BbdqVg(9@gw&t^%_ub7l4#40v**R@M2 zISP{*Rj>cPs&e6R4Q`Y9340Ea%PV4x98!&06?8m8*g6!#mm2?Zy1+ z7Ci45n3+GEGb!+>;9^I_IAnn4}bn! zvg6E|n7nqqllQe|(y~`s&&ldAGGb?{Zbxd`3=B zV}S|pvMqd`e5ulE)vNASEl8arv-?X0L&>f)clEuELeswse=Pni*C2IxW|mml%a7~x znHf};ggfSmSZq_*e%p85*L?Q#J--s){(Aj%*|Ki76U&4vrWLMgsqA9;`k+C7lk@{n zi*oJ;f%fYQzniT-|6z^xJ{w`BmsW23FUy44gPLp(j2Y4kvqTv7*mE*G3QL=wb87AE z#WmC0HlD0XEjN~uyt#JUR;#Gs$bQl zo&TnHOY*z;{;N!mv~;*+^7Yw~BXjf*-+gwx|M;eBNjBdP{}(RcX`bm&|Ew*aiR0hC zoR7<6#XcNtJF@-Z%1_*X+BAeY`Ru}LBs5i?SOwK@tNdha^SdX$k8|mz()?e=vwuo~ z)=);}C#p?lxlqsQ;4VJ>>9*)g$wMU z9B3P)*tAah>+{TQ=L_U*{;dn}XurPje)@+0;8CGo!K_s(3}4up8mv#>o?&KY->@## zxq^Fh@z1B{3Tmq5e%c%^dGzn*UH5YR?WanwE#CggYt^^Jg)E%5=N%N67o`4qWY8iI zdy(P6jGYhGtkR2Dd1WVJdE&|G-H)C$d$&L5saN`4cu*?A?#OEE_%d8{F%8_K=Zon+W*^b+8zG9{)b+a$Mx45wep{PT)^#{E&Eoz zGGh4R#MJPFQ`Y-TuT;@X7U_i0(ss?wu1n?pHyO*^+Tnk4|Lel9pL4a=Z{KuuZm941 zn8%Ir>;AI8**e>GcAn+$ef!0%59}#B#o@5%frETC6RTXrpLb3jPhLy> zmHYg~*yerLdW{yPAGu&na;Xt@Y?w6+Eu%JmpUl(?W+s%$*@{^mWGHoo6SX{{ZS@ zZCmxqOUU6KGsE6#-Fx<2GA`d`Y&y@=u~o|F^_<%lucpZ5s2WTQylTs_Xy&SCoo=i= zZ&q6@-nq$P-cq)v%2^LY1Oo*0W%XGZrv7`NHGS2gEoFOGojkbp>c)^+i`XLc5?%<; z3DxHiySF|{;P}_+{pGD+dF$$<9X|fW5zc3yX4updmFCjR^5Mg5u7f?hpHGfDWPPGo?vlH@b+%gjqc0!gXLEbZI+dDvwyZnqm5Htl zt0A+4d4<*D%H7w`o7~klf48J-<;=(Oub6j~_f%)^pQCTp%rvW3{PG5So5twR4e!(H z_@$=l-g$Dsyluw*dON#1KL#DvC85XST2C-|WVuE&>|6flDM!b1E2sC%D?drTD?c9J z=J2BWuE?(%w%h4D>X{k-G*ktLE|p*qn=Q=n!zJ2%H)~W!mr2&U7ilXes=ocux9Rq} z^-DdsZfUE(^80P&ru%w3s;f4wdhn{~Ts+pxe z|6$~gKkJJR)X7%OJNOUWUh4@94UlBmpra;qpfY`Dd5|URcQJ48;B6-vk8-(vskXD* z|MfAuTvOkT&Yd52tA0<>i#EFO_2}}ii)>_lcYF8QZdQ1Abymq*s_cq=_llOTRV?bh!kZr&I+fwU3DMi9d>7wTi~o1>@xur`_f54a#y@Q4 z+4yGN3U<=<2}!>getzY<|BC9>Y2ka$bQ+yxWSeTXMy>F{nv73e&4YE+0q+R zALLb)I~#}Y@!4A3m-+f*H|sm52T>CJgU57j5Z4K40U3qa+k zeD8w&*8{8b9!t%uK5j2^uxh>X_eyYq&&05$Hz1UgL7tU?r||6s##qw!OXJ#mLT0Yfnm==0Sxn*6d6r7?e$Qv@x|V4yDn8GmV%E%9QL8hdmqTopurRQm ziOu<8=DB;3kLRPc^0{o~+qXBqwmUG9^YiiU;7^x*$`fp%Zop5K4qXA+!WSsz_c{k1E- z{>SHeRX(3SoC|!gZP|01Ymqj}3F1Dfsq?Lxo!-q2ic`%8HCZ}+PAqxd@z*--tK_`; zqxt7sWOnu4c%D1&uhhKt|D)f|oRGWoH&?Gcr2C$_A-z;J-a&@^On`P!*}ZGH9T z3Z#~o+gtwL_&)d3JyW^9?WS?Y4caf8w(I@nE8qY9?x!zo4Qku&AJ@Ad$96sE`Ds7h z>A?*b4mi(92zF#*DBxPi5EpT0PqHH4`o&*&pZ#ZSBi#MJOl!%*(iXdZP+j%1`}Ua= zNfB!0B_Uj%K4;rd3|G)EJ`yYq$ zukUQF=hz5wJgAy3qvJX~siR>jJHv~l_~5;>3L_ovJ)E%lxf~Zm!`{`}FJ=CT+!Z%& zpZV*}$2s3WEbD!B=-*=l^BIn^XO8GB?=H@-75Eq2qPCe$iQz8G^W4cvuoV!Dpfem8 zz^6H|F)%P(mo##d+Om4X>Y2+|ty!^o#rh4Kmd>6#t+Tbhd)CxHz6!v9R&FoAEq^0&$}-z4YN9)Hi*%CLU%m!CZIK7!je zbM3B#XfkBfGc=q#JY~bW#eW{IG&kK@=X~u}t@iVz^H=ZrvmI^|xK|t3KQ%;u?PG1h zg0$A0bC=~#uE{*Ca)ImKSBusS_vIKClMX93dG@DYKC?W( zzSn}}k!JTsoeQqCpKeKSkj*R_R7(5s(8d&5q{>b|;xzDiV zPHofQ^a@_F|86=d2Ve7mS~%Gi`|1`~OnBNcp)>A&K&Thvg6yZe_fEMG#=rlo0ZY!bsv}S&dezK(0}NY zm%8lddAr}+s3o0Mx*J<>`IqOi{)xXmS6%+r{XJ0A_xa?Xu8ryMxa-*}^zABMt}C3E z@b~?5iT)>9YvW#~I;xf`FfhbL{8`Sjq5gVcmHg&kJm-%+`rjGxQh;Gs`iCdRd*Xy$ z^@W_48Pq6;Gx^FA^ z7n_Pr{@76V$+yIB=b5B8OjQi4HqOs@bZkjT*Q&jHcPz44KI?@p!_{$SEAG}jFcg3m&3Jg>D7$ly2H_&{0=ERoVhP*iC)0IhA zW(2;x^vfipWr6sO+%(@gA8lVduQqyAWtGpjXw^dT!#_KBUr&&9V-s{Rq_UeSCVFmd$zZ&3}O(tayy_r^HyBY zw!`-(mY3gEy0oUnLLlAZ!y;SGu7ex)n$0cgxja$h#l}BttKtRHLqs(UnvWm-`~Q0B zS^xb!r5d|F2B&=Io#1)Na^CDyTQodYN$p4oF3Z(Bf1EjIK{L~eCXql!{v8ht4^8RZ>&JOAn4 zhV{`pvG@44|Lsj!y{mwU`RwP570U`)>nExRgyn|Z+V1DB#qclUPkoq2#QV}Ocm0c> z*&nvu_@myM+%#4 zL#M=$*FgcH^X`TUpY`H>H(hhz)X-B5oQp!1m>*_1ele{p<6@%1D*=Xm5r5K;I`Qr4yY}Ajb#{fC*njVkmjVn6&&$5CKm7V#j=LA<7T(ZO zQHH))?_+-+WNb=26h7tby;(YkY9()&Gi5M1y--vPb}l`BJ|RPFMdxbw&9jZOoDT@F zFy3WM7GRk0hPV9dhi%_$#06Js?A~3*zva=AzK=Fvv+o+Z8cgHg5bn6Y^yiE22j#mD zNUZv;ZDIHSpTdLuYMu9AO%pUYoqvB@Z~o^Zg8-vkUHG4C5ht3i3s%d2?n$rsCR%T) zlXB>_2dH3zj3MQRI*T&s$u=}N*Ja=L3|cyWy1%YcWXSSA(^k62xrR^M-6fsW7B=N( zw%$CGGn2o{J~N5wSon+m*(}c_enY!9leVm6BL;>xxjD_owe7RdyiC6{^=@&fsEpZ_ zXkL>ABF5M5%_tWs*X;8z4&Cx|`_8zxI{gnX`IH(>_E%^Auyxg1e`hydw-yCyZ_j5} z7$zNQW2g)NQxtK6Z@u&T%y}QB=T#n)XI@Z$ec}7`4YlB*gR1z@P%Z{BErt(g|C^}Z zy0xpcZNVg|{pZ|Tg`T|#3=Z9X&FR*=X(c}U9z0q3Tei`3Rd8Ze$u;$I7xu~gsXkM* zJMwhm6d2POW_hGv+__e5+c6(q6;9TGlu)&1@fj_@4}ZLzUNP^t*Z&KS4`lhyn?$_o zf1G?5Ox6=>72=!I5X8aoFZ@sJh6&Pf>My>V`NthLUjJk6f(dQcH~y}h z)&Cp3&}PlrRa&eJds!G>ebLsF`u^P2W-o8IW9a$#b2oZDlg~;TW*INdh^*KyTI{pu zk?G`_>8stXckf^Oqh;M~QAhPNO((WK(O7eV&7xU2Q*G8vC&dX`3uYTJ^ZRq$Gra8C ztak9$+sKOfR(9XT?^o}aNUlo$e9k83LX+BB8L7tKserm%dN<=g%_S>nm;XAO6k7MbynLm=Ox}^m%gxD7Wx<5 zVEJkq96Ful!yl;$45jn#CY3IhDGQLg{-boWU*RL}N7Ga;|Mb`%r~K`F*_PfpSrKa-Vx@067zgjZHvRRyg?&a@<@(#_{+sN2ch0}Y$u|vZ zyP^$l-cj{A>{^DxYI_w~MCiR5op%hK&sIY&;Bc z%m3{CEbzN@`>nq`-{wF38TRL{r@{Hs=rAw{eI2`+)$65_ z^}Jon-$kmBKiRZU{TDftm(&U`i)m>ql zQLLe?KA*3Z#~KOR8ob@D&CTT;9LSWyc=E1m(6I*sX6(rf2FGq4VopnZxbeV~DLbRq zyykUyExsWkg?T{&0~^DvSHtoI zhlUCZ4DKt}uzNUVMA<>3{pV-&#JCVXqH5wOU{Dhto5kq>k+J z(Ce1QOD^bEy;?K7H`rp8qW~*I!LoBF--XmVA7o8wFzx<6ckV$ciEnuZ49OeYm^VZ) zN0f2(v0iJ|JjTSJTENK6BI3XhSN^9wgrjiX?4sw!7UAlSBM zv3&*)tX)~XYQZFi2KAYY9v>n)HpJ8lZM-_KkY_9F8o9Wv*UfJ|UT%5%=zU27&xX|PcG&ZG$0Chx@tyuVL#DpyJguOU-E?A;K*{V1zGIR68wwg&BPu?~ z9AIXsIPicmy-|Q+-ts^DqZt;(y5BFEJuAE7nePAlrrbYDuN+Gccn{uw{wg$-Q;>l{ z%-w;(roO;>y`O-ry~Fl^6)vfaW|F*_wkES(lN2|W`tF=!a`pMEs+sexS|_dl;B{!i zq1RKV6t{43J~&}>^aA(iA69=Vf830k_V{B%@`2~g%r*=RHhc~28xk1G82%mqQ(u;L z;7IA3QjjCQ8U8S4GXaJ`s1B0%b0z+fGCy#37zO31i2@ZyjcfL{o zbK&Rb;GdtZ!#)YQ?p)4!!YpT9tj*Q^R@$ep^V|`ho4$IIb+pjZ(C{w|Ul=U(GWJv* zYfj%N#~{NX#=s!Kuz`VxL1*9bKlR&rTw=+UGHAJGW)vj;ZIS9 z1#zLFonHXJzN5Oqk1u`cXSo=VjB(%^R%X_am1 z(I2l*1FfSumw9bIXh)($JAZI!7s~|;Musf2km?zoiKRDdCOtm;LMZvX`@X(kyVUr$ z7EL@D_*HZ6tdw<@H>>suD~d1QCS~Lso6V8huxwV(VO0%g69$!(8y`zH`IcCxyT$u^ ztPJoEF4^3aP@Z=!`ST5i?$uKd3xqq*{_g(q+O`j-sb7j?B=_%TZae%x^Ucj!%}pWO z_cE%m-E^y-D8djI_U8plkj-`9s%4ROhd;0VVXXXMuixd$*?+Su>R1^vq(g&M8K>|t z99Ui7d2ecYh^gsjsdai6x82(JcH6zQiti{Q4h20XHimm)f8;n__Fm83 z)gNhhxOVN2twIN?Wfy+WomT_i+4ie#)hZQ66D5WNU+cfD|LSWzXYDQf!V@P}T#Cr} z7q)3*yy>HAtEfNDww!a@b;RFXd%yElNV=)V-KBNbylVolR!E2mOlM#?@IU0<*^|M$ zZZ0Te3bnn(Z~gL|Oug`9ON;aO?|q0)=6PQ};~!)A2PTGuAC^~*w_jf~{r~?X<@Oi1 zyP9xM5uCk}p;4)UnGrU^k%$=KU}s=pQ2pj5F0o?8s#QBzZQQwe{pwXK*Q{8zXxW;@ z>(;MYIWPUs{oP!3>x@fmn9mpN*Zw#ECeyW2&_XBByp7e`RjYUydKnpHLZ@vEVY>Gu zMDbPj#m)CxfBrpOw*KC{h3lJl$6C%ytzRE(^`Pe5obDyB#h+Wo&%5XBwBr8_y>_Sh z%guGNBCFK%4{l`H-Su0*l=m|4OrMvr_s+2}yiamoANj?E*RlM=fhmV~>RQY@cxLL> zhKKX#dPnS>x6|yP;UtGZS7`4`zS#{lW3-Dub-hGcmvJtJVt`85no}wigIpyz7Os`pw|BV0hn=i%x1+V+QUcbIp;~)#Gmyv{*SS=ejLtXiw`hLcW z-F`1$o2`2&8UAPfGN(1KUt~!`rW7QzR!w1PP-SIU(Zdt>#M?d~u!!IPg_$Yu44;!~ zH|6$BHQqF9-P1gy?SWtWU)8Ta&wtZju}O|b@krvs#jHyjD+VJ1YCGC z&)>O8Ibpe6a$%3t{-=c>{$D?E#_Mj?Kd)~*p6XMNp4)Z6;@aQ7#CVw-y4RwnE$Dx` z$EWzD3}b^=8-p4@LtXoy`;&RUyuR>>=UIBiInn>~C-E+dPd{=j`B&x(@Ch*`5i4dH zG3d->VvzfDpPzU8mT4K=BqDS!{OrDv6|!`B9e=NtZ`Z0{iPulE%<9(+zh14Rb#uAu zXAQ;VXZP2s^UX-`Sh2?BesA@iry9@h^8JOYMPLK zYDQdgPbu%=TWfFn_S`HIv7Wi)JX2fkcc#1Xz7Dw% z(EDQ5n_7lhR_C8hFr9hPz~o2yxyQvKhkqEEP5-^-`P#tK{KaeUN*bJBxzd;;E$skL zbE8TQn{CRfM(2fGf!q;DHWU_womYm@ClJoM9{(qTO!j!O5cqjN+%&OI^ zw3r=svrb^LGs}11wtidQYUAm5`?i@({IYiK`z!Cdxn;vWrVu-(P+Thdc}Sq@~H=f<75w`Wh5T*J+)6C!oYnR@O? z+88kJpOIOp$lazh-=LPvc1_$t;Ep4m392v|N7#gC|w=E2;Y&W=Rb@*3x)8uRRf8yEm zpHKX;MZH(^$(71Bwd`D_U4|a3Z??s!T-X!Z7ZR-X-(quATok*#DE+ znR9J#-la)oB(OGEerDpCd(^;WL$^Jz#j+n?9OgXT`77l?+iBCkr>7<#i#hGHar6DF zvwH$q3RIRjJ@-&O$jrcC7yjq|>aJtE-o2RBXSsC#!^reM&rdFX7Gr+3FIjK;FUfiL z85md_zF!M46=#r=WLWU8$T(j5ck|S}akp~+p6I=)kh)XD!{ybIzPTZV)uIPV&a7PX z_l$e{e08Cj_Nnz*gr(S0N-){c@=GN;C%XfU^KK#Y!Zt#UC zm!F(TnWWi}s5|SVZBk)#dBNeMeSbIZk$+=w`*G6$%fj4p&KGQxE-YbfkdJa;5ZT@}j7kk84m=Ev;2IoY4A z${H-c>`8LI-d*=I-}>Z2zspOX3QR95U0AcUeB!Z*?I)bie~;ExTNL^F_|5RJ1Cw@L z+PpZ*c53UP&UJmgvC&1BHt+eq=abdCe~OodL(7(jXl5K=-C(U`O@?H=pCqGE@yqk-leHE?uZKuz32Ru=aWZLYL*%EwYU|E z8y}dxzk6e+!}j}YgjROFTzjsvt7>lh-2dwK<=+>9+CzKXYGi zKfgKeO}*t~3G3-G@%^%U-m)tg2xtT}_)AYxV2}&{lmBGl+v^LredGbT^qk|}>kA*7 z%>#|kCiJw;TE)`f&Mee$ikJ7$Sr)+9p=fvha zvCEHzF8(lgm+=(|$;9mib&-1oT0)s^*vb-x{GK_Bz4CaVGTSTo;;9hTP}kqR-*5Z$ z2|f_Ze|9qI$LZ&Jd*6IKGjoN)!UD!p({p<*9v^$$ExA`*CU8=2>}rjROb3=*g4#jl zPYyFR+-gj(*ed#eu1G>Gc)fP~{E$tZd26R`?0wO(YF3a6L+Pru(bpu8tl9Pd=}8;= zGhWw3orB8GgnV4}O6l{3%@faGu`9KD-lf=a-KzS$ox?X*7TbM`Q&d+ONS$DM7A;}% z>~{OFM~!8Ci{cinSg~4qm&5~>AC3n${!12CxOwK+*WLmEuQ2n>8#b$z z?hfDAxjk6pFxiexMPx+)!@RIRp_UonOIO_9(e^y@$e#TCVwi^BbYm3L{ zgJlY~hN$0-^_}$K&rQw^F@Nm#Eo-`c_?m#$$^0Fnj19{?OhYRe>=^Ea-Pxn%VSinA zR$u6}^9A|ZdG{)o%zHiW%EqqrioERT(5XBOhj0AvwBEek?9{T!XS4Hi-rM~QNsNB9 zyY=N^!@Z}bED?QFF@^o;*-K{(^kY@5_G%nf>h-!?cE7`8=GGvGg}3fLssGQgIPSPv z>5Vgrh5BCvE=i_4UM^APt(%dXZXj~&xP5jN>w@^U`kRt}PTHq;1#dZK-Cum}>5oVu z?{Crl|1%$NobyQiUg#e`u1#xS&)ae*ZCBg#u#cBNoG4poU3A(I(pjFdJs>!hA)<_- z;go!2-TqGAqSHCiA{KuNo1N{?PM$1aeAr`s%ITv|pU>J=t#iNboV(nth{_Y0-=nA8 zj$OCDW1B{Dz(lj_|K18TM0GWsd3z#suExrFH)fnnZ&{lz+&zxdHT@) z{>NvwZOuQtfpvD7&o^J@$#YE})a88?b^g<1Y~7y!!&~A4g9%g8X?+!j(0yTljI}O& ze|@302NdJ~Hb-3eRjN}eeg1>Z{Q3h9w^ytRVd$7$7yXtm`|zy5W}j`!U!|-kcEyN? z9#_1{lssu>_xIn=8Jzuc^Q!F6XgvP5YF4_-jFK}OEc7&_W<9Zg!Zw5Bo%2GO>uGam zK7M)kR9)US&1cJv8>APsy-Z>WR?$xhy8br5?uO`VM?HO8zS=AN;yY%1)0yVAP0lL) z-_*QY4O+}fEDUmCe_k`c_`7TNuHN(={i5~mqMNUko?p|)S=aV_Is?O3L8(4a4{D>=b~Bk@BHznlT#<2QHguq*ie#R6>#9;!vIld=?tsOF0Hvt z*AC=XUJHsTxb>hgSnb7(qld2Ao!PXREq=~hx%W3p@0eNp2>J#&|4SAvj4WFUa-wxq z#IsWHMxHX!{j-?f#%7aWCouKGx_`TZU4S)=`*sB zoiX1lP-AN9!__@ObMKydxq_$Uum3cy(1*3&LGfkYzB}R+gu3@wd4;Vx7gK&WV)3b4 zJ9i!rc~If3?|t`_Oxn9=EIMg(x2@AZx@p;a<|k`k>r1?jfAt|}zyAIoo32G9Tlf9{ zK5KEgw}Fv)=S5Anl}vMwoQ!i|{1^I1Q*2A=UEkA}&zvuKuT^Klm$m=hg-TEpCA>6? z?N~-=s1}1k?&p{9cWj!!;pW|0)5WXV=cn>ihR%yBvzxK~&6br4&gmRCo9B5thB3~` zwJ$kd{;Y?mbn3hAd%40vygUawp17>IHt${ebt9g&TD$E281MBtvQ*o1(+fFAxw_|% z)ccf=*}RrDwvKNrJh?Y-_S)B7eA*W_J&iedPBhxwx?bp(PNq>_m6ta!gAePx&_6v| zXNqNK_06<9ym$4F$01Lwpn2Y#p}{bF)j}Z#xip4`Y1T_0_BG6ss(07bn;24Oo4@IM z#ah3=%k{UHt@gTXcuv4l>CM*ce}0?pTN-&*zH6TH^rfYhU8`Hxraf$uUtA40RA(Ct z#!0SR;?>G;C1H`O&*?C;E$#l#@)h;pUiEPA$(>fdA>#J?97fJ%e8tyAN(y!^zifOu zF{IJ1LwI4UEo&T;T-cwhAswZ6CvO97t_c4azIB4#dTWzAX(ixcwqqG9RvB?FsAOo! zV;2`YKjp3Mm9r57x{}8n{#EL{Iwg`Gc+ko9^PJW*0&_VfpKB%5an1O4MlINc`E9{e zU;AtZ#!AsM5>jo)L^~fD#rQ2_dv%lhhN5Y^hedjtah`Pe`)$kK@7Of0u;R*Z{bkGd zR;pVtnwuWry!M;&rG}yD!;2K3nzmIqwIqdq4k09KU53 z_CmkzY2?2@Qz9$aX8DWygn#be{cZPy`S-5|>{eIttYVGwp8m{{`CsUtP@RSh@#hfU z;26uJ7cRtZICt1S@$84p@5|HI<;}HB|9t+|*ZG@%e7fADeR%rjU3NQ|=dAy^D>x*^ zK%r4u>2K@%T?{6(pEznRs0;nGLaSh%^YL7p!+%%*2()~<;xx#Bf}nF~=p+U` zX@(Cr+jpJGh+Fs8P{WPu)RL4`y_;EccMERZK4XEP=|z#q$)!;tJiX~rl|2hRo2I<@ zW#ZrcElcol#mxgxCcjaCUU%*9v(>r(s?(I-?&iBFV!G@^-R=Tri}MHfb@ zdVO#Uw(YdC+4z`FQ*BPq%&8M0PKX zs4}{r?seDd`Pn&{_h(8UoO6ERY7^$qTbfxtb{)@h{t>TJUN*UYLBN;!k;~Sfyxg!_ zOQL!C-=nhM?%ikS%ae_e3-7mBoPM|VoA1T<)yICD9NsDMXU*ZiM}Mtff7^_60mJkS zLOcw!)*QRY1aj{@kvCD-Z8LADRkb}2{}{e;!THyGr9J5t`|7^#D4H2zUH0Z?maa*N zB*V48nf`Ad+_B?1ZkTe`!z6P1yPwyZtAJOd9_?M_^LKNeDl489Wrm`Tzvh;X4(Hwt9DC> z)-2T6*>G3?@$-B4YaTHDk;_l7H#^kgrO|fnf%30;AI-g&fSlW>b?5mm^<4kQlJA0# zP7i;u=Jkal@Pa!=hFy`%R!w4QX!l_-__nq^cZ zHyP&&Jk*|CXLbL7NJ-b^U4emy0WYPECs+#QpY^^NW+{8{Kx?j={q2usA={s;7)>wP zrc=G)%-4N4JJMhG)qj8e`e*LxS^v)e78fY6{LN(Uci_$OoBYM|)}5FAE*bMY|Jcv9 z-g1kR8Fqvzt1;At{<$J%dcD+l-E9?nP_cYE`i1TK-QcF!%MV(=m%n#64trv>X>Hbu zKn8E}vDh4Od0?aC+A4;TErHck4x!iyzAFJI=@2c*{*lKxsN61 zJ#XI0^OZMrsR%>c{N&G}?BDNPn19Q>xZ;2Ejj3<5gYR8_7NnR}!n$j6^^Kc%uNnlJ z)qZ$+vQZ{rQ`fyi=2N|Y*}daDJU5o7n$L1Y#M{J%!dn5YFEauQ%jXuiS)PB$Y_PJiKE5p^`?(BSp`?)7WUD%yJNr^MA z%f6C0|KX3;zk9koe|LF;Tp9j+rok2SkkF|tA093BJ+$JX$(J=}tbUzHs;kZTv#~cV z`pqqU;ls(1)9f}%T}rvUoIOI?;!Da|gPmU%oXf49qGjjcGWkua!t?sgC%0M}IR9C^ z&e%mbe~NEZ;j9Or+}Qs;)195?bMtfjecP|v+vWJK^$8c&&%PeJD?08;{JqI_cUjIb zyyzBMeyhe+WHTGXY8D3Oy0AarHwb)rZML;Hy`oR_|2eUuZ?DZtb&eX_#OG_Ncky^A zZ$0betI2TUR~=WG_~g50^ZbvQq-}g1`Fv8*O|GY_EoX+OUVK{hu-Gj2r>xfM$+K_C ztrc}UCwy_moXcMqF3W1uUj2DF+ls?gE=y&L`e| z@anEVkMe_r%K6tHJv6wt*t$_Aae@9?KaEM8NB=A-$QGBodm%3DPde_x^T`8{c=Y&tFrqF@7wys3U|1xZ#IVcV^U}smW;0$Jr@e17-8pIUh4Ur8 zs&D62ncJk4Ki%)*`=@8wvARVkHLY8lXI89WIIWj1y@PuNo1jG@t$&})w*D%$zXIBS zZYAz<(=9aAh%@2F)m=BEXU0r>`?zI(eR)m1)AuI{iJDIZ85(CZt7kr)eDvl2lP0cn zmu&iY^aIb~puTqZ_n%(PI3ptzPExry=Fj_m z4?oBMkJ3{{b*RcF8B3OyNIy5-~7$DBLQt`9T>756r}EU$O@-aTe~ zXK~m2%S_KoS7iQad;YpR$%aRBX6hq%=c^%14SN?o->;iFPwu);_{Zy4e<$Cn)$uiz zT=p^c-6p%q;-b02_l(s(oQvn1$>_Yv+3MaVv8OYyUAfXF@#&rI9JyWHv)5H;t=wv! z9O}|iskrz2o%XML_8y*9du#pN$g<3qMcm2PSKG^{KbI2ED4X$CSWnhq@5NA&0~bu< zrhZeoupv%Z({Y|G!@kfzH+5ZRU(W^2%B<0<>or^TdDqUX8&&2%{P*i~?8KXPd$S+L=+=L%`}IB2lKZH))hw&> zCv#fo<=mUOF?@Uc@BRlau?c+Z4|aR#RyuD?T$5o^$`-$8=Nt39zPG9SnVn@9xBWcP z)HJ(7x?pSlnYxG1=SEMT{`*hWjmY)c|Kgl(^KQ2=YMS7z#8?;l$4*!6uho?;0kv(< zgFo(#cGwSYqQs?s?aSC=YJ63JaY}gkullDC>eD{_e!us3){n9W7QIuZPBhs%;pLVM zOTy<0`v=Z_o^Ds7`f}CoMR{v1)|YNFzeU3DAh`l_w@ zZcp!TV|=ryaba1Zo?g!0RGTzEa~03>^J{k&TYqJp$a>OMR^cdPahvR^yE6~1P!O0L z_K-nB{Xq9l0XI(uuzRogu^X(kUQ))pe$}Jzd5gciHUk}6u;orp;H+Qjvu)Y z{AuUnFSBOV7`X0G__e%^~WnMvW-8l+xquRfl8KX=z&xBtMVN7@t6z&iwd`V}L^Sr~&r?4$|@7y9bt-kQdqw|w>G`dRCD zNgPk*s(#12D5J<~`M38G1^+YuS^n!jzE9fP*!sQ2hrRn1emu9k&YC}IX5<{nE+K9v zuCon3rJj>iR)d1}mDuXDuLEu$`p$EH^`r2uk=b$Wx5VBU-#ITAsroT(-$E%Z#s?~E z_V#{TruMJNQcCN${ORAHp8wm+@_V8Ac`cK3cM^Y=OzN=?zI-|+j=f;sVb)IL#p#^u zWcody9alW1m-nJgj_$;h4jeoCsd@ETnR9F3 zZm$2AZgq(9!r42VYS$C)T|wbzYu2hs4CmZF9$h^>?W*T~2olDF-n|b=k)4e*4r;K;6 zo0T&+>GJ$%f>H|AOB-zc*M*&Ucuw;9&%{Yqa~7^pdu8l7F=XS{>N7gqKD?cNn%DU3 z&fV;v4Avcd_3uj2d#iVE8sE;9Wjo`=tb6K7asBgo>$lfkZ%EwPYLdL@p@PqrZUN>m z3St=&pknKqn9W}+P)D#b^v_YJid&^CZdbJZw!0O;yOLpo?Tu}#BG=wFy4`j5T6^uc zD^miMtTR`{m{v~-_nJCkgHN-wK;Z0muCtb{`kN_L7WZ!E@(g6%5J?XcUWqb6c@w(r~h<{ zUPaD78)LcNB`mvrUhRj8ZYw-K?a^lS&`XX=d&KcN-Ot`~EmPj#g6uuU|9458xL&&J z`2o|LAEkJ8te0*6vq}Bz6H}2LFWT=-&A9RX{?eN}OxRv858JX`kFWg4!!%?08|BX) zPdc=*u6yQzbt~EDluzf*JHW=4{BoJWRv~VNSBz5oLjQPi?RjmrMaDS(@aI)OPP1;f zRk{Ln_LtC>>as1o+)F(eo<7#7sP5h^wf**#qf;gZ&fly4DL3k_LG@aJsW%j7PVC8? zwPs%Pw^`ORGk#q@Qy3fQ;qqQmqbtyIx13h-s&{FxZk@^DS`Vo&pC4--{{-f(m~3Z?<1oyZ^A4lx{2T0ZfW7sHEh=Wg%*m1&=9A1~ee_^n(1=02O<*K;yFtUhi!cg8!IA^iQk zJHKY8e7|fkxl;3Yz?0wczQNDGnBJUmY5AGG+2zbJDM2qHo?b9BoREDf`;%DZE1xr4 zrOi4gFJf=-y7nRFcjkk=TQ5XpNVsv@9L~Q{mT$mw+b}JefkWc{wgl-tE0q~@b}`Hg zsX52kUMKr1)8?@4${!Xwph^PNBG_aS8r*R+;A#THfi03c$6UVJeGRU^cy6BR;VkK6 zF>>5rZ}>#-P+nFN_n>CQ#FOtC_vgHg?@jp>wJ(SDshs1cw|m#VI_=}!FlWLJW8U!g zz|w0P+*`_?+K5e=zP+kIKkZciYHfSHbsvr$x^ktGucyv|<-nCs4Ee%`KZ;vym~O}* q!MJy|%7cbR7P-(r)z5wiUSBxxn5oVDuKGS1`A6VFKpk|55d#1iG@8}` literal 0 HcmV?d00001 diff --git a/core/src/mindustry/audio/SoundPriority.java b/core/src/mindustry/audio/SoundPriority.java index fe8158925c..0c85722278 100644 --- a/core/src/mindustry/audio/SoundPriority.java +++ b/core/src/mindustry/audio/SoundPriority.java @@ -59,8 +59,11 @@ public class SoundPriority{ sound.setMinConcurrentInterrupt(Math.min(0.25f, sound.getLength() * 0.5f)); } - mechStep.setMinConcurrentInterrupt(0.3f); - mechStep.setMaxConcurrent(3); + mechStep.setMinConcurrentInterrupt(0.5f); + walkerStep.setMinConcurrentInterrupt(0.6f); + + mechStep.setMaxConcurrent(4); + walkerStep.setMaxConcurrent(4); } static void max(int max, Sound... sounds){ diff --git a/core/src/mindustry/content/UnitTypes.java b/core/src/mindustry/content/UnitTypes.java index 865896c14f..bd1bb9b715 100644 --- a/core/src/mindustry/content/UnitTypes.java +++ b/core/src/mindustry/content/UnitTypes.java @@ -551,6 +551,10 @@ public class UnitTypes{ rotateSpeed = 1.5f; drownTimeMultiplier = 1.6f; + stepSound = Sounds.walkerStep; + stepSoundVolume = 1.1f; + stepSoundPitch = 0.9f; + legCount = 4; legLength = 14f; legBaseOffset = 11f; @@ -778,6 +782,10 @@ public class UnitTypes{ legSpeed = 0.2f; ammoType = new PowerAmmoType(2000); + stepSound = Sounds.walkerStep; + stepSoundVolume = 0.75f; + stepSoundPitch = 1.1f; + legSplashDamage = 32; legSplashRange = 30; @@ -865,6 +873,8 @@ public class UnitTypes{ health = 22000; armor = 13f; lightRadius = 140f; + stepSound = Sounds.walkerStep; + stepSoundVolume = 1.1f; rotateSpeed = 1.9f; @@ -3375,6 +3385,10 @@ public class UnitTypes{ legMaxLength = 1.3f; researchCostMultiplier = 0f; + stepSound = Sounds.walkerStep; + stepSoundVolume = 1f; + stepSoundPitch = 1f; + abilities.add(new ShieldArcAbility(){{ region = "tecta-shield"; radius = 45f; @@ -3478,6 +3492,10 @@ public class UnitTypes{ legStraightness = 0.6f; baseLegStraightness = 0.5f; + stepSound = Sounds.walkerStep; + stepSoundVolume = 1.1f; + stepSoundPitch = 0.9f; + legCount = 8; legLength = 30f; legForwardScl = 2.1f; diff --git a/core/src/mindustry/entities/comp/LegsComp.java b/core/src/mindustry/entities/comp/LegsComp.java index dbb5c76059..6155ede31e 100644 --- a/core/src/mindustry/entities/comp/LegsComp.java +++ b/core/src/mindustry/entities/comp/LegsComp.java @@ -179,6 +179,7 @@ abstract class LegsComp implements Posc, Rotc, Hitboxc, Unitc{ floor.walkSound.at(x, y, 1f, floor.walkSoundVolume); }else{ Fx.unitLandSmall.at(l.base.x, l.base.y, type.rippleScale, floor.mapColor); + type.stepSound.at(l.base.x, l.base.y, type.stepSoundPitch + Mathf.range(0.1f), type.stepSoundVolume); } //shake when legs contact ground diff --git a/core/src/mindustry/entities/comp/MechComp.java b/core/src/mindustry/entities/comp/MechComp.java index e546b6c166..ce5430fb7c 100644 --- a/core/src/mindustry/entities/comp/MechComp.java +++ b/core/src/mindustry/entities/comp/MechComp.java @@ -51,7 +51,7 @@ abstract class MechComp implements Posc, Hitboxc, Unitc, Mechc, ElevationMovec{ if(type.mechStepParticles){ Effect.floorDust(cx, cy, hitSize/8f); } - type.stepSound.at(cx, cy, 1f + Mathf.range(0.1f), type.stepSoundVolume); + type.stepSound.at(cx, cy, type.stepSoundPitch + Mathf.range(0.1f), type.stepSoundVolume); } walkExtension = extendScl; diff --git a/core/src/mindustry/io/SaveVersion.java b/core/src/mindustry/io/SaveVersion.java index 6973da00fc..4b0c525540 100644 --- a/core/src/mindustry/io/SaveVersion.java +++ b/core/src/mindustry/io/SaveVersion.java @@ -460,6 +460,8 @@ public abstract class SaveVersion extends SaveFileReader{ } public void readWorldEntities(DataInput stream, Prov[] mapping) throws IOException{ + IntSet used = new IntSet(); + Seq reassign = new Seq<>(); int amount = stream.readInt(); for(int j = 0; j < amount; j++){ @@ -476,10 +478,20 @@ public abstract class SaveVersion extends SaveFileReader{ EntityGroup.checkNextId(id); entity.id(id); entity.read(in); - entity.add(); + if(used.add(id)){ + entity.add(); + }else{ + Log.warn("Duplicate entity ID in save: @ (@)", id, entity); + reassign.add(entity); + } }); } + for(var ent : reassign){ + ent.id(EntityGroup.nextId()); + ent.add(); + } + Groups.all.each(Entityc::afterReadAll); } diff --git a/core/src/mindustry/type/UnitType.java b/core/src/mindustry/type/UnitType.java index 9b09bc9a8d..50b5b1af48 100644 --- a/core/src/mindustry/type/UnitType.java +++ b/core/src/mindustry/type/UnitType.java @@ -300,10 +300,12 @@ public class UnitType extends UnlockableContent implements Senseable{ public Sound loopSound = Sounds.none; /** volume of loop sound */ public float loopSoundVolume = 0.5f; - /** sound played when this mech unit does a step */ + /** sound played when this mech/insect unit does a step */ public Sound stepSound = Sounds.none; /** volume of step sound */ public float stepSoundVolume = 0.5f; + /** base pitch of step sound */ + public float stepSoundPitch = 1f; /** effect that this unit emits when falling */ public Effect fallEffect = Fx.fallSmoke; /** effect created at engine when unit falls. */