From 82e0f8025b50be244434d182d61d98cf9deb6ea8 Mon Sep 17 00:00:00 2001 From: Derrick Timmermans Date: Tue, 8 Nov 2022 16:56:59 +0100 Subject: [PATCH 1/2] Replace sprite HitObjectLines with CircularProgress --- assets/HitObjectLines/135.svg | 363 ------------------ assets/HitObjectLines/180.svg | 363 ------------------ assets/HitObjectLines/225.svg | 363 ------------------ assets/HitObjectLines/360.svg | 356 ----------------- assets/HitObjectLines/90.svg | 363 ------------------ .../Resources/Textures/Lines/135.png | Bin 7596 -> 0 bytes .../Resources/Textures/Lines/180.png | Bin 9986 -> 0 bytes .../Resources/Textures/Lines/225.png | Bin 12352 -> 0 bytes .../Resources/Textures/Lines/360.png | Bin 14829 -> 0 bytes .../Resources/Textures/Lines/90.png | Bin 4615 -> 0 bytes .../Components/HitObjectLine/DrawableLine.cs | 35 +- .../HitObjectLine/LineLifetimeEntry.cs | 15 +- .../Components/HitObjectLine/LineRenderer.cs | 23 +- 13 files changed, 21 insertions(+), 1860 deletions(-) delete mode 100644 assets/HitObjectLines/135.svg delete mode 100644 assets/HitObjectLines/180.svg delete mode 100644 assets/HitObjectLines/225.svg delete mode 100644 assets/HitObjectLines/360.svg delete mode 100644 assets/HitObjectLines/90.svg delete mode 100644 osu.Game.Rulesets.Sentakki/Resources/Textures/Lines/135.png delete mode 100644 osu.Game.Rulesets.Sentakki/Resources/Textures/Lines/180.png delete mode 100644 osu.Game.Rulesets.Sentakki/Resources/Textures/Lines/225.png delete mode 100644 osu.Game.Rulesets.Sentakki/Resources/Textures/Lines/360.png delete mode 100644 osu.Game.Rulesets.Sentakki/Resources/Textures/Lines/90.png diff --git a/assets/HitObjectLines/135.svg b/assets/HitObjectLines/135.svg deleted file mode 100644 index 77012bff0..000000000 --- a/assets/HitObjectLines/135.svg +++ /dev/null @@ -1,363 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - diff --git a/assets/HitObjectLines/180.svg b/assets/HitObjectLines/180.svg deleted file mode 100644 index b24373687..000000000 --- a/assets/HitObjectLines/180.svg +++ /dev/null @@ -1,363 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - diff --git a/assets/HitObjectLines/225.svg b/assets/HitObjectLines/225.svg deleted file mode 100644 index 834dc4c44..000000000 --- a/assets/HitObjectLines/225.svg +++ /dev/null @@ -1,363 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - diff --git a/assets/HitObjectLines/360.svg b/assets/HitObjectLines/360.svg deleted file mode 100644 index daae2de45..000000000 --- a/assets/HitObjectLines/360.svg +++ /dev/null @@ -1,356 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - diff --git a/assets/HitObjectLines/90.svg b/assets/HitObjectLines/90.svg deleted file mode 100644 index 8208c0932..000000000 --- a/assets/HitObjectLines/90.svg +++ /dev/null @@ -1,363 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - diff --git a/osu.Game.Rulesets.Sentakki/Resources/Textures/Lines/135.png b/osu.Game.Rulesets.Sentakki/Resources/Textures/Lines/135.png deleted file mode 100644 index af6958106ff7102ffa7efdf7bd507b1d2c2fc34d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7596 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 diff --git a/osu.Game.Rulesets.Sentakki/Resources/Textures/Lines/225.png b/osu.Game.Rulesets.Sentakki/Resources/Textures/Lines/225.png deleted file mode 100644 index 38d3e23b07f97be3fad18b4e38a87c477f29797a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12352 zcmX9_WmuHo)23N^Sy(_ymJn%>kdBp3>7`3bKsux(7FbE?ZUO0~L2^lH_$f$BNJuN) z@A7}Y@L}dWb7t;y&zzaF7aw11Dv=P<5@KLrkftJAD!7wl|%K$iN3F_4v9tH+K zzKXn@p5MYj?)wl^@6@}=ApMzKFZ*BAvl#WSKAAmBViK*w1|UL0UaW?QU+a1S(|-Ya z5yau*f~1Q8W-P3tqHjgdvjJG-SQ&7hdiw)bGb8`X>%6OtPQw6iU+=f?&4Q#!j5ueE z4sW`?Z?E`vUpN7+Woi2K)cgHnhy2ug(0^gEO7u3<(ISn7xErguu8iS+$HkN)crqT! zMbz1KPo(BTq*?1Qb9egvy^1JuVKKsK1~~(=8Biv|{&L&~emWB?s!|)mQX9@vYt^>&ieAaO%cGvk`}$gDx6cF?`Sb4!^Fh$w zly{2d$1QNV`y5fb74?4XGJhK_NMD5$cEIM?L(4tL1q&PSLy7EMt0LtEzx}}3k8Yd8 z_x#(XZWQvR!eZ@@x$_!rjj2K0 z-S&YPw_;{ zkAs9Wny`>pe?xT?yoja#>K^42>2VvnOE-1c1Dyu}t4 z*;38L{4mnoRoyAJgxYe$AFHcYEo-~u+W_@8VQH;nN;)_-#k0bSW?%lj7X>L<*8Zn; z%YWH_#K65-Kj#FCwDtRb9f|7hC~-A$jX&rSdx!5zJy!E0XtUeSk-PWkIE3d%R+8n% z-Cs4u0#B9Jzx}6mhxe!AYaI@sKVQi`?T6`EvJ*e`{dultiSwSkW+G$!?vCnXdj>yZ zvelPOn(rfUoIWehaMQ=wxB-kui1fSJ&NltX`P!&$_|}^2mMq8ojx_%+e-E(MTErH_ z+o(|m7?S1n1YI`q{Pa(@{8+dWZL%hsgTNjs`EYk#L22H={#S4Jsy``_qE185WczFQ zzU6+n0o|zwnT2o^wVTYLo{@PN8)tF_gBx@F&Yok)0AyeA1UHM4 zV`MR>B0cMqiPa^o3@uKT2{>vgRE6%McF_woKrL$=n(Pe zN6lYa&s!Uj*^z2(P`BzPLs((V7e3bkIiV~96(MziW+8_usOwKF>DU^?A->qP5O` z+13S9Mk=PkI?3!;lQa0gwMcYXUToN(S1=nUSJr9l($If=Z*?|>2da*1C3IN-p1l0IRRx)K$t5;1kXgdc zMVZ*!*Gh50dG*D&XvLRXtLchrPpkRG=B4l@!8>FN_$7fs!!p40uVap++b9-BH};N* zN%~Xv_9?wgjnz|^kFoA(5_dOMT_@woNT<4X`Epf}7Q?xN_&C+Zq z`(ozY^vJVFF@kmGCB$O2iFUFj$zJV`OUj9XQ@IXrhTxC+y9Ab}JM%Nrk%G>~SN&5D ziI`k&*zaf#J^5K-Ec#WY8}xyA8+d`meNWw37?CN~RP#*uV=KnUh@s@6}hOtSdpRI4VE~IfDQ(2Jk*ZFjmsG->!N zaxcYd8U~_&x|R6i=L|GB*QctG30j}?^UeV62n>V<-hK#t@;BELXyM+V?DY)yRV00P|7ol|% zS63JXzMn2xaN!H*@6QmPeqFvIis@9pc?ik!WAQa9+Ra<=%jQLSya1%AK@C zAi$!5Ejksaav{c5vMbW_CfB}c&TMU&r4Dq33-6-XXWmDnR^mp)Ti5is%zyMy$TYH? z?E@|zmfHJ>3pMbZg5&h=z49&dzA3L5jx$e}&ClmLpsKgrEp4rY_$jHJ1$}zbU~GwM z-2>3r4!c+&qeXogn1f(8jk`hRl1kc~rX;7TcC=3n!&(JXK$ly*<^ z@OF<9y>yCd?&BqyItQ1*#3AaZH%90exJCnrdfo_;szLg5E&DQ&vk+9JI`EdXEBis7 z{{zW9OL;AOqo6u*Xr9^riyJo?aJ9_(!#r1XGL93{ITY>e=H-;MUx1%FC*g4rGqZ(wjp?uarN8J!*=WAM?;`LB4)MXrm*z>j)q zCl2Z2L?KYsJ@vFhAa4Gsrp5D5Tu~AST)P?M`X;U$H(hqyM#O9iqxA0v2bzuClPpus zrSUiL=ju$E9b%4gHR35}N?lz8$!^kuJTCF1of0@yi@urs1=ZNUxOKaFdUT96NXe$1 z+_ZfbRDY4H_u^I=|LOgL4SV;bKy(tl!C_KnloL`TQy%D7a70vn#Hm{3Q2fe_wyl z#C!hY)XnIJyYMre{HB7!(td3!wPOyG&(Gt2<9c8krk5MDE#EDflY`DmeWO()wu2t($~{5#b~Lm9FdJ8WunjqfGPN@8@y1x_%ykvlOC}D~XnIjSBAc_jD9$ z%3usho9)HQukP~LKev7UIJqgWY0&;?NV@D;uBM608Q_mLOjE&5ey4v;^wtuneQXqz zuU^faO#AG;l+vhGTxq2B7W??kal95OzL~P6(d7yxHk4;Ww)g3#6*}^QT|h&S*Mdr z{wBb2MZHdLaubc2G{*=%UZQcxz&ZgT!Zq{CnvIO{6bdBrkyD$IQtw^*nD@hkW^ z-Zx&VBwLo4@A`Z|quFdYymzH9FYn6jHEjVr9Da|M#bC2*_E9s4w_-SelA z+=JRN_tK;wxNwcrKyI_*Ik|eNVH*+UQ-K_n+$~>JdX*hp3W!vuEemeKUpr@ld1_GH*r8`6j7+tyr|uD8a@>2enSW6p^bsGIP}F>D6505UnpQ;vLRlrc-|( zshf53rmwWh${mxDCxt5v^UcV@Xw~@NPkwxr=i|gB05$CH)*_VGV`5HefoO};Ry1;Hs4Yczs z;z_ntP^mdbnPsG$WJ>i*|t^5%LKewPLwvQBWKC&64Yg2W7|_5C>8KHlVRK3?M!*rNQ7D7 z8oZmElysKgckxTenSy;KL^oz+zvtf%4u9U~aIMLAb@}rK5ii>@eHYo;U}qGSIPd!Z zvi;so&D&U9nRx+besf~L(_PP?raa5%cIYNK_l|~;%EXN#o(p2A=AZDi6RM_%=(w@1 zxM4fzh8U5ps_!LQ&Y0H(#}>zktcHB}7}P)e_C2At*JP~LFBg2ul~cT1QhV6N@pTJv z!=QHjAcIkx^{mC6fKSzLRYX$FXTftaKN?(%-vsobi=xJ1`X;_-g`nZpa3`($IO7ax zN@CUciqd;mf?;ubna$?|Wr`jH644S1--k~%b{(m$S8v$8J-_~V^Iv|0{&ab8D@6x7 zg-hH}Eg9KT6P;+9{O!dz@L6{O0tIU}lk@Vcj!UC>8hcHsWa8z4290L=>_`9?CTG zd^JFIetA=Vhfn*IrGJWz>#P%s@=$qpr7&POiWOk4()Lxe#0S#6Gx1O7WeWXY-*{`m z(}KL-Gc?>ov0Nfh=e1?9=gYKDRcDe$bx(|C6D*Yo+H@unz?rr_Q2C;oP*Tmuf9~MK zY8-doL!|&aBDu@m@H)XNLp2RV#gc9Hp$L5<7cL$KoqGyT^wuxYq9&$yG5O$8Fyo=9 zt_Pd^%&lsIuXu1&&P^-^Kc25UomdrWbmq-1l?1r0vdm`4D4i-3sNcD`@ZZHkumZ2s z6Veu84_G+Cs>5v~+>|FK_gNdLXgAN+bDy#+%NHN3hkohFz_ef@1^3`F3;j;MVRkZc z4dO1mdUhRDgqJi!egiPrqQ$}L32v44KX^6m2}|GjQsn9MvQ(?Cr4b4LlK7@GQ=EL5 zd03qBm!9+Wg`qvzwNJ(SGpQ~bd!C@E(w~$rvnmydjWTW55;azZrrxERk1DA@y8q=W zB+a0%qSYPS7CyRyhxO}^JfmZQXAp0zk37?^9!d(Ou$pK8+N|4D&8oivw3UXx*2^1T zVzG0*xbjF{byfW~GrsVfTi)!bA9l^o#=7@Yd%l|vEO#lgwJAf#dg(PJlldJ4Dhh`A zAH0X{{0d#m1+2a{EuDKa@TalYKD_+RZmLED1j1!KDf;^4M&9q=94+7n{Vfr>|n(>wlc6Z1)zb0FrdS z>^#k7<1}Kqs^ZMkGj%=+h}>v|!4W-oVuN>W@He@0ueX2pxa}j91Vp<12fY8{Hmj>C zAe5D7n-9s=n*&jE@T+r=;(JAsN~=1O7VrpIM^p{X6Fub1Wie&2x|ZY6cwBbMOl#4N zZ<|`EDXLxc?-#0%z-h=|WKi*{BLqozAMn{|+%uY1A-O!eNfM4&>U?|1u3+MwBv~n! zR||p6ffFuEUzGVbao@|Sy?qZL7aOKMVjS{G`9W$pT=YS}!MMZc-Z6?E21#KyO4Z!qu(Z!kMcT9}-brTkpIpgH|?u>>p2r8fb zgDgh8K1s6q@LlbMM-w=2wI9p(%>OpLS&j&bP&SG4xuEgk{PL!H2y*TtSO$N&H3G&c zSj^>V12ON;mHwD-V-E*mJX^iKzUSHHgx!KjImh7dt@enFiJ|iOv*}BQMs5%5z~C+; zo=tPpqj)~p^o4yOY92o_g!N4-!n?Z^MwecvQ=GqV!UxHdEkhD1L7 zGa9`>H|uFmQ39tAFKg8Z?e>TGWSs4;6AA3^D{(y?WW)vi!y~O9A5Q|A8?zcp{W)PX zgc6T7BH8Z}_7xBBh@GRl$|c6p$8BTZ@)OSa2s&G5&{x#(P6$g2PYzQt$S; z+FlWnfU^r?DB!Q}nHG^#KFD0>x#3*@|IF<*PR--a!BVJ#y<7K=F$c8p17vDOdE_ZR zN7$z;6OqvlazIS}vLEVwB3((p%;0STj)$~UC{Za7gT^X1HyRg8;TGH}TrGtcF<-}^ zLMqmmVqR1oja-p?*usZB`U+b3lQRlbMIZm`)dH79RJMKRS0`|6jXHVt0UUVaeCy`< z^&3=(==73_lpB~VGe^+J$0nJ3l9)`4weOvuXi6}xr&8E3S;e0=o)YGD+|*J#I{+>sxFR*@_*CV1x#c$E zbg_1gTw%bc0^3w zbSHn#RNG_GX&LeOONtMonCmVQUj+UV5M4{?M-(xf-_Lb#O6n=j6CG;QQW|y zcuRmRn3|iOG=@yv>~l|<{~&4lO628yZ(7hSiKTRIGBY||w~bX0WV^-j8RcoA@Dsc5 z{)&LcGSv(?eQV(fSUm-lqM5fX+9`{aPV!SWe2pMarD7bAApC3#-dY&^B34C2v>8pN zjP}CaaqaGT$5Gi@KFbzT6gx&#yf(Km9lxccVwAlfaRQS#(Ng~Xanx?#g{$~CvI{h# ze{6_Xn`}xTz$`U8dTE7HbGh_@(^It!K%0O2w6st3n>TBwYa+=1)IB@KRsTkjF1_#M zDnDR#$7S;G{_E-mD>?>PLKEYIE`KdsXbj6bvQ;9lAl>ktMe9Wz>FSSa z#WlV;&IdMnJ0iLRWLH+eYfg;SUyqymCCnVuaMvqYI3oMj?=OSUSt;yZP~z1Fr}@js z6)Ce3gv-Y}_adRGgp_O2f*gZ4)sz5&q1Mh7ZNAi-7;N$z+4}VU^=fUN7X8~FB_Jq< zkYr>hk$H~m2gj7Yuc8(;7)ROY5-7hKg&2)7zfH#z<35auBD$TS;8FU+OaSrlT8Geo zdccx)h@o9WcIh!09^ad#D*+OR^c9}{>BSS}?jqCLzG&HqxRhjrLlIcjejNqzn{KPG z6G~~m_FY?}eCUrk(WR#daYS7{VZXbN6s3#t*cJo^3fFaunbASyLyh~9K+k{XyD0PK zjy%%6{JtyV!tP#QG;a`~n&)P}>x|vy7#OJ7tpyfOZfDv*c2*mvD+08k0>*WKhJWS@ z2(#)2bJ9Is=gAAh^ZdtXo>=?{e@fXQg!cerj~bx5P5th9muj+D-|q6CEjctrJ5J;l zoP1(#952PyBKFE1#%|+Z(~Y(N0gX5!IA_|<)Z+L*b$W}ZQD@IDhEELXOne&7zOtfq zUN+2B#ZpHl+XvyozA#Cgo8Py@7_Mn(%<+yD_uSM_YM$>c4|IEpJYN3B_?r`#kz=7eX zu&e&#VM2vkXw;c_S>z-hK}aq8xqehT(E9bY6%4^}V!n$!aN0upah_<>vh35M5w`wx zk5Gu3)7lyq_JrN?kd0h(g`qufCizMXMaaGV=Eptm_>L(=W0hBrz~=AB3UjBC;aGx z%r02L0-&8ZWE?#tn3?r(=jdG7)h9kY2rQTmlR^CCxP&62+eG--SO-ai4cAt2_q=4l zV>DHpJY*dI(5m;q(N}eZgz9DbM#xs|bKCP4cB>X+<3wtxUJhlc8@}@O6FR`UC22jK z6Owe#%lOzNO7XCaumfnVyac5ke<>^dw6exBcb_O#!0+`X`vDUrlz7^vGv40w7L1u= ztbkf4&v;TAo`)^xn;pgrr>TFl96e=ml_VS!WiV-#JEDFzg6WlQ@}cAt5hQYq&!s`^ zjlDj3nV||&H0|kxGz3R($%YQ>4(b2IU;w(X`#f@Cq~u}hO+V}IP&Y;aEe;1kA^lVy z692AAr^32x<1KSBUL-q#&bPjlQM#Ztf0a5gBNP6{GHHGZvvj8=J^#=?W&2m8xQGWn zSM>Q)D_2TI!L2mkhrpRB`q{t7ScPHO!$OC8$Oxdx7(*Iq^Uc-f1x@_22TFXp#TjRZ z{CB>|Fa6JG?S9?LV1w9rF%JHUu4ss*d%z*?R$xfCK|usif9>b{@#6lQwzD*`DjUHP zA8}EpW&ivlZul3%?xN8E9RPiUE$N;^_svKz<3*Ws$)iS9rY)w7L zs@{+YIW)&L0%-I2@p*^?WydzF3MHzFF^NQee^UHx^7J(#0yxuqOdT@KgqTF%pw@{eNH#}KlA(`vVfP;${E#zHM>NQRbgvI^T^mb^ z^IzcWX)shTH6ZgtbbM4_)E1I-as&)mpDa!V5<)6+C>Nl;84OktWF&IPIlCL%VC)a7 z;o?X*P=9E7+t=R?)E7Qy-qv@`1R8W6&Q-tDEJRzQJ3=9=Av@nxSFuxxX2Xs@*+0D8 zSQp@;G=|8}B==q%*W11j^JLmGs-XgFW} z2Pl22uNMInUYqVQi_otsUn+hP<^4Q#Re%N4czb7?QXe9(;YXF*B{d?sm2HvPmxaG| z-r7FoJ<$Lx5`ocv7?I{+m8I7SwRFew8O{w;$Usv@e%vh~a@zw}|3pePzfgC4y^M z&n6CIV$_vIyO&y}bO+}@`Rs-a8#oY^_|Cf9#r^fkQUM#_6plU&-@Iy{zRKVO2`5?sA`E!YFKXLo>BjnbL69PpRk;aZHenQA@ zFK97COlGLI=;(X5SX0J7Mr+Z zh!mw=w12r7!gODR=GpEb^fv=9fhnLA1} z%P6-(!y4f?pc7pHEPBUbRoj_XT}W+M_Yc?ULbk#(cuh^077p}|hzV!p?v*KaYxx(} zWYQWnRXbgl&KU?r_^+p3-gBOOM&?+$gPukGDLCPow~o*PXlv=HjcrPE^b2Wn9w1lJ zGdVU!4Gj0_2=jqOd5vB1jK3v0aF8~Rs0FbqOR;Wz>+&o`G*Scq`LQkC($AIUsuIm= zwrK$fxV4Yb``fGdSYuBoSlTK{01I@7%>dfIOaCDw!SrFes>r$cCz;qjfG|ffG_K2k zOp?aWVihOsOzQd;2vC&V+dq*a@xe-k6wn{p+OG41ZUAh|EUPGM)Pl60@Z`}4zkx4P zXjJ0FI=0G!G7}DBaGlxEW1t-LID+up55FTj&)-ChEry%+iPSc4iKj~FgswOgbI-sn~?iNUiaPJex9PP z$|Qa!e3?ML%!#WGm{#rpuN8*N`R=GQRauS8AAbT0VVIV?p+n!TGr-&Q>3I-QLVBnk zPGBUX*+?60vgsN~D)OhN)E3vNJ`pK9rv4aTqh%N3SWDR-w4XwxqB9ICM8z^o(?=qXlSt0}(6N0y2Tfgy0LBef6W;2J)>%bAq`2w8 zJj$M6K8neYVO*#jS}Oi|>MDZyX6>HLYJ)FuAc?&`(u$v7FJrX~zTsIGM_Z?vh_)=r zwoe?RA1WPp!Z3S@{H7@?s51#b+twnG2>LL9v;&J*9S0KjuCuErWv6Mn08D0=E}f8*8k*H_OJ2Pha@?dVkqJZz(8|8h?^(Ajvu&{f3;7{ z;cW2v(UIbk@a2gvxA!y~R?co-oN*yadwTipz@onyp4lEIN|>>Kr%1nAzIy@ie=Gq- za%EzlSabPI4;UA2i#zG*mGPy}rz)?2q&Gzh3}MQf&>s|_BEH`|dWcwMdy=vot`u?L z-gwo-WshgC_`k*2&+a@4`kvuA#T1ix;e~XK){_t>1DQe2ZYb@FynM{&A%O+lAkurT zKa2`00CEC2ewX>9Wn611M}Hie(uj|( zP69Ly!raM^OzF1@wZa|6JO;VfveCq<%kX?g-yh@z*Zww{?C`Ch$lH`D*D(*gXOAH& zf7(&$JBeb&X5uDS>ea$E<0m7kKqo76GKiT*e3x8Sjs7n({fB+>|4e-KH`!UmUG&6Y zmGp1hmZmsRC5QkfT6&QI#6uK&F{xgjT!4({q_cD~;K0NJGO+-HI9YnCL$V+^v@8;Yu+2JlwcqtC!_KsC@XU z5TD;E*+n$A)rLbUg&G<-Yh=gjDt!V*hhOWN5t}dC4mc*WS^JZF>(bX$Rdh(t3DUZg z`RBAU;w9|!aCN|+BcK3sa1<_1)N4_{KdtGCW3Kf2#?RphS}OWeT$)euEC-d;zzJs{ z6!A@zJ5qBLgF1>OgPijTx~8V!aJ9HoI+8g~0j}|9u`8{k6Vd0~e>*-&CfrSEJj+rn_rM#G?O302DqK8p^n4X~i^B*kMH_ndeH z{@W*v&I0!oewfzM*?TX5kM#E`F7!<*A5O(@zb80Fcj2#0Hb02|6&`&SauzY^VihYW z7XOW%rZEAFi5__LAsWw~G-Q}<*PFA!>Fniu=g)8dpR%9Cn1_lnJA zNc{Ccb;jetvqeR?$rQT87ZZKHDg!0qy)?E$yNda8frt!p%4KBc?j_(iTx(Nj_9za8 zNrXF+9LF4@#ZL%EeXLc`9o}?-RF#zg7wmpc`qh*)=VPQSY|a<#abMjk0u1Sw3m%rH zT%BaIds*QKtl7hS^_}V4y9qOQ=ku6D6kSO3{v;e&q&@XtF{&f;(2P+;%zi9$k6O33 z9mtFo8@4$~r;u(xv1rO4si%()V#5*tq|vc>8XJjuy8RXZK@IJJHjw+_2R&_^qBDjh z2A!bN>r1{zF$wz&DV8EjknO^6qFKCO9#^xYf5ZyWR{IxwmlE7C>M#-5b2|yH$0kZr zrJLvv$lYLRE_AqvxGqbVk#`?TF=@(PqlUreEAi9{|z3M{eb1q7^ z*Et}K{0)&32U-#N41R#H_a63in*;cTl++10PyCapFW^iA7S+WnmAX)}eiGW2;O^dM zJhcvGN}(i#(5fE6Z=1E#aiA#GF!PC;TNr2V=waT*ktSp|EAZvQ~@d}TQJ0W|0Hp%LB?1AIN zurpTt;RVFD`H9E7N`-zS#h{Vao1>86#~7H!rN#*{m?j%KWA5AO|#UT zAR(Q{yOBv`p2Z5q{f3!Jw94;zkKrEA;Q`0tl`%&lu*j-)IAj~+q2C@`oDi3*%=^dx zJ0@18a{n1G9D9}A>7Q`e2u(8blT+@@Apdc(K4MDyK} zdY_^DrQ{3-AB8C{4%l%(T_D#pG|PqXvT;fi%Pq*CprW_MxtW$U08;GeE&`y56)Gf2 z!_YyG8WFFWabtQ>!b>+$N0Trv2Be)8eXkw9dG#wUqvo++ z)A;2z71~%J8*w&kxQ`6cpD#aD#3w*=;eM_$=bkGJmV4J^iZXT?%ge(S|DT*=&5Pf} z%lA1u%*lgYBxHp$D~uifrP4H08^zn#9l_`szJQf958X|9&35QP?Q#ZzKr7fM{ zjDAIu%grxS*Q_{3=b;@87DR z2xH7d^w-dBXKFdF*h`ptlbRBTShSSN4n$vE19HIfWH&B{)!c@ij_#X`nVnr zx^ZTf61-XEi|Zvcc!K)(QZD>WU}TmOS{^$1*Pzm`Fk?W|96lx{J7;5+bSko}w|Bk}7R??&~2Py?|LkzdR-}?`L}^nn}$Ej55q(+#>$D;c z_!qX$hKzE{CvvPV8>{pNrA?3%2%3UFQs$~?12 z3aftSQJPwzPG%rOI_hZ!rD2U)C}4qqc_P&i>g5L)lxw|31>F&*omsoQYmq?A|8I6B zu$m~%5t6MM&O4Vx_F=7@R2y+SKh0Iql0zRAE9A7}52L5Y*B9U_OdPIlmUs@rN?;L{ zmzG8gjg3{`bIcCIM9X<&FHGK@!GD1BKabEq>$ktg4+s_5CilvA39=<6g5{OZ-lPVk zE~7_clr0|14M*XHd7JM!7p(1|m}XRfunJhT;1(Msc^J$ml$x5rRSV3eXo&2g$39wI$n%H2HO^+mr^ zNkE*vb**_Na7S&f;K&ase=@o5cA}f*8EH=V7hW_Php(T!ltlEsWMsi1m15c*9G;uy_SqNAg;i~D=r%7S0Z;dtW!NJS>l zA3@G4Ie6RXHt-1-onX8hwL(wOT(Z?^V5rw1VYG3ocG@AW^fUb@-^}q19Sken5N(lTL@x*X+l5;arp;t*ny|u}3HBQ9M?zHz(N8(ncHG@RJwxDbmQksO ze(W~=qRm_rPy~D@*camL#CpA%T+FkL_4 z)XnT8OoqPcI^%x@p@tHtu4Eqfj`)q$CUi?=Owy%T&eM899#jgqL;#S;*zALUlx)i` zPLYL& zRcX&pVYb=fJmS2I(iIKp=e5*VljFzitwZz0E?Lat5)o#t`-dqjbwHWwVdZX#S&v2<+z0+RFy@Ub5kqL zO>~Ft4Hwj!UVP%hU=rba)VO7TM+gkITA+-L=IsqRVWWcj+!#BrFVWFXwTldjepiN= zTcLsgVYX5`-&iB0K(R1Apw?bMBct@i{Yd=DgL>QX?m0AOnFww!S{h?{>>LV!Z;q5}tk zq-vikD;W69?JRny8Q|Kk{~4zWAYiX_4Wip#zPl?%jGp$%?N`xNw(3$;j2298In$uF zx?N?BOLcslbH9=pMI%t8+m)5mb1$DRf3y0PbR46#mjCq?B6;yZ*3Qe$yD;sOuk3NA z%)$$=-v^f&-tFuDz~8-FS>{{i=CvIW+t%s%|C&`BiuB^_Q!$6tzc&a1FhaG+1MT$E zA$gSP)jZvq0jquNbEBk!%@>ASwC1`0pc>qcjYreNTUtqYo+*9~@v&p~&5NZE>Dscq z>&(!mihU>l1dXqLXC_}KopEE&i*yGM%QL1eJR{2|?+2*)W9Z88Iq97CfI z%}cGsf{h5HrSj^rRSXp^VjBFSRJu$5t@$>yHuP1v?Uu7S#;TUQ>^8O9Gu#BJ=BV`$ zTxnW+zqR!uPng&=r_dlqm6AA&Vi; zEwyxH!ua**r=tCmwvo1m1-`u(*DTkn*CKoP-iha|!~Ym;_ex|ZwJ+zMtL3w76$Z}f zhrTC~?q1xR&rNe17Fr}b_Oh!M?e-ls{u#JqQXJTP-&{k?kO~s>9Dh~1=xEAEGcH4U z@9?QbdP8T>w}8IP4Q+fy-pZ>J}Y~3r@rm@`VMXWx& zgqUNp4;k2|73$hli}f;5fo%pq|32Sr+m+k6Y#5&WizZm9{eAJ-JT13Pco#LCxnR7T zGaS>!{>Jfb0kX8dkPdG)4wHMxIP?_tO=yRz!*7pcPx!h4svqgl^5%5cbo=q1z_G-z zfpiC z;HH@?c0&q1-LT;VTc`XQlA1MJtbIMl1TUL-wwR}{;mEtzlfJ;(NON?@A3YJ$R4!PB z&62`cny_rJkz=u`^IkeCYDu(yL2g3hA^C0Q@0vL&Js)XaeY=uDe#dIPGWOGeR|VdF zvaU1#dlJV$n)aChT1xsXTc}lVuswXKRb3Uc9;~`M7Vun`^a<6!m3MpKm@qx zVSNj}$oDw`5Z#h-a(-;_Kue;b;%v2B!>Ui=Krwl*QS_)up*r)kMV)&PbwdX=teqqd81t)7PmC@AIR2yIJzhugMIDiK=>{)Eeu1`MQ3x z0N>}$>Mgo8DYXl*bCdJTdK#3Vu;&{|_zKx|vU{T6$GwW}T1Z)uNm)NbKL&H+7QxBQ z39k=eb{o_(oi1XfQBoKm#*C)cYT?=0C)Ve@{8v}q5a3shS)(3%3N~rauYf!yD85e? z9bvBr<)5xo?szd?uk(;(R$_MW6~E8>`@$u43LolNaf%9~V87Nj!57xW3Wf~%8IvWQ zCJpBW2}cGk?Naq~Dbbnb-9>cEi|LeOlSf`A@%e_$DxpP2ztkz}T{O$<^)pzUKVdO1 zscgR{#*XVdgkhx_3f(b=ggc9N6W@+5Y8AJiV8VS+OSw2R1`UP6?UqSQ(OlcBiQ_-q zsoX2`q-A!V)L2Cs=+0H@oHHVzOnTO=0>Mebx%bSd!2>s{m(=LSe44*#_-U)^uW6uB z(VN1bGy&Q(Q=cq_s^%%mh&64tZB|R(?Pk5jIB=KBjjNOfJ^I9=+rFuH{=rMJ#3<=c zONg2GP#MnDutB;_&SbI3@GUN8_lW+e)k|^Paj`SQq|flhM}uP_fMHPWiiR z5N?Ip?!Fy%+%c1Wt$MD{ZJky>k>_<(lUjIf-9VJ`zEJXD?oJuh(4B^!KEKK&W9!%5 z>eqwUFsn}qu;?Xy+qmlMPiL#64Ts@eI^5O;E#wo9PRdDZLgT(+G;^COvT3)|h@3K* zhQ}I;shX#T>ZdP%ofDYK4tt`n9e3|2`xzZ+J%3T*?D1l=O~#cly+GGwOcjB}=t=8x zdKPKp8n~fiPH9Ym#ctoja#olfqkL6HDK9p_;!z6gGfL?WPQ&(XMFBNauJF9mdwmY4*+ug_KQLj=taXKcKBa{9ND*bqZ$sEFAWRlI(+qU@S{l&{)X zyLz>I+sRDoB2kkStgx0kb2bL79T1%|fC?I@!U`0KfF}Z5BG2^(O!HV*ox5K;9kt=K zqN@zkExP>pzc%hAOHnPP7U?FtY!YO&=*MUVrcNn;OS1E2-E`dwZPZ}-^IcmQuOqf3 zLPbRuBK&P;VE^i?QnxPKW#dAd5K>$tS-=oON5dCudu24C@525CiS~!$6dqKKxK8KY zw;Qs>S%OEiP2$HLlU1rwx-UHe8^7~>h~xd!BU|DCR^llYIMzD)t{QT*m9Z=6 zY_;knEe4G{qej*^XEc#TCN)giyuU{@bg3}0RoXXOnlV}U)82nb9SrxF3CB|z?Ivk) zDU=j@9nxDxYhp#=;J2^&wfJY~LTLE1&f$ z(40Rwf(7G*={tg&%h?@n&W-M}U}pFgYm@sM_TAIAg#qdsKY<%7@&WO(jiN;N>Ab~r>Dqh+si{usWt7tw+CraNsPtfKWUA;ny#x+#G@`|=lkNi<+xRIG@jJqOPoEMK z`d*sFPwJXcYGAIj+}O=NLu2wT7><^sOjGXP=V~Me`+pEe;@9=_o6|S_MuvLR)+zAT zsI`cJ6KovV>-rfN@3|R{?i)$<>M|xm*Co9*t*te4#C@~nRlX&4jK0taWJ`GRkn$*5 zS#_#yl573Y@~ff3;CXN)3ePn5y=*HbJID45eZJtv{i@AtEefSgnC;=>(Y7{e=5xIOKZe${?a1ies(Ebe&05&fJer|<`k|&&la$Y zN=U%L`9A2LX&9I_!FB1gtXc54Zs>Em6xgIR0bSk1Kr{<+AkQK_w=j z{Y;;cO+#&wVmA^D$ip^fUTBdSU`}N&eE>9D*)@@lVlLe?x zyAbYq^TFbmg$``%y)T7=Y?ZAS6>Ln@A>shEI7;&otp4)(vlqZL$2&OgYfw-uqgJeH zYgRUS7kILnve0YF99@coz8QE}TSNQFZOz$L6<8y#ckQ_COvhSqtUJ2)~4OJxMuvwF>K9fTDP3DPZNhAm@?a1r`g#Z z4T_Vkgv!V@>w|_L$-vBB&0$UFpp~yRlH14IIT2*Iv5Qe_f7Je6=&ie~yTZ?%>|=1w zw{{crpPHuJET^KCN0E*dGr%V|xZ9bsfymxjzHvvP&a z66OR^zy6u*j@(99O>JlCou0Lc2~opKAW^Y+Uk_85x5~&>rT~xokUucGX&LG-l8zts zPuJge1DTz#hY&7i<(KhCaWLaYNpy%nda6B<2|*6zlOJu(q+BWusG}~c=I1jRqe~4{ zu6*tfQ7lH)nD~#=2jffnMfx}@6^0AZ9MH8xUqkJ$>6r0&;yHYteSJ2y_U+7uax5ab z(fxDaZZ;Jty!%pPqqb6&gl-LvmCo)z^7g%u(a}-+SHEPJEj)Gc@*=09Kc)mH!$!l? z$l==vr)xGrywZ-E@-}eEpn!Jd{R{cBV!=vQO3Vybw$L%%t{L6@DS*n|48fPl@b{^R zVBglq@n#75c=MD`QJh?| zoT`^s4J9B7F#C8qLcQjY%@w|kB${UqVmrw@>y3& zqook~DU?@s_`?3R7&?MDI`rC;r+P`h;>{%#L%Jw+@~tP`-Zo2e!}JQtQ7K?zT!YigTcDlu{N+vZcD$R5N9%`%--gAK>(kXzl+ zkCyRHnA_OW6<~?!#`YF3{mV!frBC!3=y>Fo#Ih&8*lfXdEEJ9-m$w8_g$^Ohxfw$v zT}T?^Ab~s~*A#{~g`rw)9z5i?skxbdNrV|$GwVvSUZY1n&zT{7I;|JyiU)`anm)DZ zaFK%fbk4bCE~4m1WfM${2Z}jT{giGg- z!S4=+=u*>_t87YxbT=rX#leDsiYIWmD=;05sEa-xt62X&p&-3Wf16Fe_c~qG(m48H zQSdD8r)P_mRJbecZ8p(cqa)Ys)W+Ojaot|iE!qFDO%Qe+=;4Hp<iH~r& zk9_wLSR1wK6@49-&$9}u(o@Z_;c;Mx0E?!ciJCQM6 zkMb}gz3`(=2rVdG&?6>k&omolu;G>FyQQj+rz6ou6H!2G;|oMV=0?Z5$CRK|Jsm; z@(3@U!%x(+?6Ld^4|b);op?~{?Qgu%)WG`;R%=$QbURk%F51I3Epi|Q@BxC{*9Q{L z^0*h?f1T$BO7Zlwk3qSV%YSk1x};|sJSAD-2ff%TI0j@h*5G~)-X$&Xs2236CMRH1 z|C)OI+2eHme4BqI?C(m796bSSsW?(j4Bs)mesD3fW0=XpsX0XzFFv{lFmm|XmiFGP>QvZGTJ|e5CW59<&5A(nX+`z7@nnWZmgh^Wz^dwR>LW|60V3*a**^D)9gj@FN>w>3xolQO4zVUHVU^L#1RFet^dWUzxAire zAA2gESgBKH~x=lKIPqx=|qk;K#x^d&{SVcaJj7@k*5R(cFI$n>HfKVR{cEM{dn3v~hv zsqU0&exx?f2d$=aopb@#KgAsM;TjpBxM8BT(zD1T82n6Q_qPN?0ty-VLzxm1SCQ)F zQ28UP5>(xlX+<~{z#Mp6P;{!%Ld6)*I+X7<|6OAZ=o#@3=k`rs4a*(18!Cka5Xik? z_7DAWVzlja{)dQ~2If`t-QpFYkxK89Wo#AkyIw6&AH%hF&;9K>iVG{JiU>kmP7Zh9wfsnEM{8Q*L`}P~J>$fZvyP-DM2_pD?MAr%&m2;W$ z(=V-vx9<#)veC8PMjMwNiJOn=c#uzZc<0A}+!fC6hhUfPGzZ>G>#Dw10pqPk3|!c# zTB9A#Sq&JZn`($}!-h9>IVyKwov$6lbT+5l!|$WH{7zab<a#!gF zK+Mp0i;k7f41%mMl29jQgHKLWh_gE?Z_!!Uly;>m;Nh*lm!Bss9n@<#hy!d}R}qDO zmtd)ED5OrRnnm+;JXs}IlX0+-TUQR$v>Gdd&yQW!-LYOeYIRc^AYuC`P5}W_s+Ax# z`LrizY=oC3*zACgF$AT!I_Qb6((cYpq=1$CYBPkOY*q(TkIo%w5O5tRsOh(bOB%K6 zo(x7iG^B3R|G!a%^cgp&P045az_1Wc9U88WhhlSIl`6BqL3(-CYL>wqytE z7Q(6Tz~p=#0h{X->==I=__)$m?-A&9bwmt*`$Vt<+5E4`&~j0`3AFm*Itq-Sb3RRS zme9IYk!=Rr@4qe+eup|pws2@hOoG@{TMuOTANL?pDokt=Z^Psq_$#V7tF4Ql%YF_N?n`mM4t|N( zC*k72Rw=NP@#NvXTg-HK1S+ES0OB4wFuguyY__Y@oh8cvv_BLyneq)eS8onyC=8R( zEpykf=C6S#+8p&FB7N2e`X?+5H4e{@AOLz5Dlo!J< zc_V@sMQ}{ZQTa$~qj@T1&3IUd2Y9Dzg*g89^sPlC;S^EgEf|yJjYoJW9upA^%B9~- zaftyVl0F|J?ZqN-0Rx0=6s;40S{`TjqHV~#Z@3!m`z_ir6e1>=z5XU7Nha!M(z-oI zrR~GRXjW1I@@#-LHec86&V9kQl+guCOQ!|&%@}fVRfG%IVTkaTxe(xYsEe1gY&$UK zb6T;Q|W_7*V>4i9~C`jlFh09xA4AxfYXtd3Vr{aDTvB_0$PU2 zevy!`X}c4Q(EIWCNF3Sm%$aiwtC%7t0%ckD{o-?@+PFYZ;vh)AV zs`zm8N>^>b8N0%EMe(;iZze2M^(gW1Q8jbkM=brHzE{wlsVSp%fUOG^-Wbs(5YE9l zAwU?J**9ST-hphV_J=SKy(AiPDgj1#r*fY3XGWNo;1gm5e!!RXTW8* z1RRU>jRD__{)tj_(#Qs_ey(>bgINkXpN;G>gw#pg_?ckK3nz-wCe7>9)1TwIM~2Od;r(5()|Vt|wLYA~Xk3V?xZS#;g*Z62E7 z*B)}h_$8a*u&w+Em?gG^ zxORhWRb>Pk$+j-1NdP2bACJBQsbzNifyLst@U%LUDq+{UE>C_j5w6_^St7!jNFhZL+u{2e$a>D&PO%gNWjjMkC|>}9eJo)qHnk5ZR%2&X^}N$-i1AH)Ijqd=PC(} zi6cp4tHgIze}Pt0y<7n~ixs&{4$6u5APWE6yfZA*?grjH710#4tt!v;1i1_PqQMA# zc8dZFMvl_Wo84S04!}I$)xpC{OUqLk9U9oM)H^``^rs>__JqlGo2Jy1ut%5v@LrK} zFvXL9dV*xc$y&LuLGHZ1m=9Zc7%ojw{CC)0ko&-;=3ox-k9|Se_xt(H>^^!$#)-hx zCPP)rOOZ8=A?)te^wv!r6Wu(&J!ihwzV>Ymb6eGDpY0~xNmEMyd4e%=+WB7C5E`=f zT=5n#@IW8P--g63%Kc-$p>w2o7rk@!$gj04qS5%t9J&0rd8_Gq0O4pf3%XQvn z0;UXqo9ZUa`!f4B17e-fU2L`47*!deY!ny9_jz71~HtS zNCgw;q$DfrniCxg!UWNChkw-90?n?Py&#-YbGX)Dw2P_2@Bm@2yDi|#@VRS)LdFoo z+%jIC;8$bfT4hzl+mnaaZt_@0?(jldw=&SG@jk@rwPB%?^xqL&fpAZA+&5YEAd3l+ZHB2aa=v88~+#*D{0Dh!Mea0111_7f;cta(CQY9}RmTa&Bt z`-smw(48g=zZym_fzW<0kp?C{<6)vjDm&P4*h|q79%v0jMedehAiT?P@GcyiA=yrh z?RaW|CFIap;RSLJ4=zahU2&3R%>3(GIG*eG71G7%Vz`0PrqDml?h2QL#+n)5A_O$5ZuExqWGsrcK~Df zrqz)Y=s;+MuFvfRiKtwr0~ze!!t|h;5F~{CT_H7oUy3Fj19upDYha(Z4bZqp;(b`b z%m|PrRG>C@Jd?l()La5PL0=eJdKTAn>sLkdVFbfV!sL7nULgB(?TOSPZ8@VhXam&2 zpGXhmnh^q~nrqWt0zo0MoA!g?M;f~h62J=P@<9{Bg7cg%SEpk6#G{5@DigPUCI2(D zwe2$m)|HoQLYh> z()6FlP<=t-hDJ@d!2pDnNDz^X8kY=ya0JMaB1gZWyq&Onw|COB44$iK-=QBw3EX!Qcf$m4iqgJY|;8-{Kj*N9%JO~M^#8E?bjoFy@x zCX2*09^!CJvo+Yk(Iy|$FF;uvz z-vlVx54JD7BEV#rSQAds39u2xrw)AJNB_g-r0pE%I4W9|YS`Zc6-&zB7PN0RhniBCpgBWEAb_!0w7(DH zN}Aofzf!`m^M0GsO=S*Mb~9Q*Z^R!Y?N_Z2)5_9Wxe4lE!+1KSbdWsGj*>UOsbGlNySG8LYEvdpY- zFZ^`=he|iVx72qlJo_Axb4`wN0p{cpN(cuaRJ1LAJg~9%PcV60Vpn`GVPLD$V?-Pg zTY^r*C{95ma{XLMmXW~(b8y`Q%APE7IFhL= zj3|DI5y@yg?4Jh9>LlYJy}12eN|62K5~;voP`LS%kmdDZ_o08-p{ncAxdIzsB@gRw zhkSU!F>Y#+S|lHlpYczALWLkbXK#wVvr-%w?W!EL8Zr%eSg&w^{#jC~d7ck1W>0j% zZ~yLgL>y2UoAv+|-e^^#=no!^6P7U*4EtxEX|dyNK%F^tu%{m;tVg-d3fQ1|IF9Db z(U+&XJPWABubAyd6waU1%zPZ3%`QGhl4rYxEa%9kRfHCXw&#nI{d;E+&c3Z;WR3Uj zTc9|g%zCzts0jNuUz3gJPY4LUbxQ%~H&_OPEDP1?@E(L?EkF7Wb)<_|6};{%_IGD< zwPi=FpF_J;&;D|N=)>SzDeZ`5WQHH@U%K%G45i8xf`NhO^^!60AyDS$KP}W7QbX1% zmKqt+qR#j!;u=kS1T`tCGgigGg`vIFvmYn-6hjPqlSN_KZWJhqupW4a;1?lG(0%Uk zzUZRwq?yOM47o(zHk^48M{V`&KDO z%d>0MPyT)pKRCkVUq!NA^BlwmjB1N6sHm4rOQU`=(sj;n%64%QTZ!2fD=xPn_AGZ z#x{Se&ZW?yPUBci9n~B2zI{IzqmO@wPLremeULR?|gM(=~S|Ie_*`HpdeqlBQB*swI8Pl9LFvj?GA$7 zP`8sD%=1|M9xxg2QfJ&HUp;&x;K8N#tRDVPN3KTa5;qd1YebZU=iXZu6;(osjT;EF zk2eC$Rm?9#t@9zpuD2 zadlL6c-5Yh$WkQs ztIwTPM*>M;y}`5nTaFqGcSMoaZTbjn+Z!ig^$d=KQb-9!+{2Pik5k;%Oy{!pbUzQ% z973??zxtY!20-TPSC81sw@}ceO-Oo4kE`{mgbsa{V=E*3GA1EB$2_k@QQ8JbpPy^m z1P>qZu`dsduNf2!dV1KewX7M-1fM>pFi0$W-+w{?Xb$*?Cx=_Y|%TZpsMxvpZh`isxMlaUXa)y%OsD z5<3bDR5UyMMX?{ZKt2D)r%R%l%w_u*41wkm|HEd1b@Ck;D%hxZKx=6p;5N!nFWpT1 zD?vhTDW#7YQRNyB{hvSvdboa(<}TyPQeU4*noP z7ERoGjENUx!sDil^l++T%`1krfuhUm1qOcz&=%v->x;5QoF+5O!nj5}W4GAZOA<`I zbgFxmjRyrK%T$e$w`MbhD26;RNcN+^hO}!#q5s-%>h}wkd$7df^069J=~*Z;AP_tW|}Vx8)qhb z6XF^h7Qz`+Q97^E_WbzSwTUD)%rN?QA!hvS9FA=sa##g0?oi|!uE{^AWK|-BV#4vJ zMKG08=GfJw_45_V@kBpgnhyGUr)0&2bqQzQ?HY(YcKb=aDAq%aeZtyh7A2 zntFY1v#*y4lwot`}5hn=%@Yzg~dlJu5gk=)wrDYHmM^@PuXl3#)()@CpYAByg#whVY5RwO1E zy8I}1Dgsx}5qST-UX>_dG7ZT2HAz|~{j7;Abw!|ovzB&#p)C9ruFZK#@_I1w1-3{X zm#@#gI0ia@VBOU-eP`i8-exsjk|bR{6JLqX3R ztMnWdr!b>3^QHvz+OaCRx={K43JrS0es*ytsmC&hb6G^p9qGyphYC ziNuLT1K0@HtTC_4?OFDj88ge9(L4beH>uoIbpELz-BwiSUECpH11RONAT~>@@0mAa zK9SRq{cNTaLvQ)tCu9E2zPT51uQhgbA}+(`q!u-d?T%pG!}#xKVG$T$+9D zHVBNJE+&!p8Ui0Mrn^|kF8=P%wz*!EdJBEw5yU$|DONF5S$!CGRG`=QoLi>dSM7v) zkXc}z^@vCOn*TIVuR#CM7U)B^xcI?Xy+qSe_uW4KzMb)r^bz8Bt$Jf*T29kW81|*` z_S-a6zg)8%*5pJm8@DTwyZN4TTGVfY>9Quh@=X1DNcK%1YMLqQt;r89`+%*OLdWE1 zaT~drn>AivkfD5aqIHUa%^NVo`YO}nHAH=qnS=I)e8w03Ke8{>3^(3+eZeT`i$$3{ z=rBiFXlmjTyMMnuv99xgyFaeu8)vC(*u|cCeHqY8qR26dQu`>I0&E}5dWc=d4l)g(JWcxu{yF=+({p@GaUP-dinsa33 zD1V1U%;b!-0oIXE8?2n|xvh|zw^gs`=w_2p&?qb$79J%^{{l+`jrK`#DeP zZd)#2ZSzh^Wb7KkEBEq3A{Sm`!awX}TrTYQ0PU8Pk4num2U_ZDa$O2bYM<~bmY`fY zryp{=EHk`hns-g%s}n~TRoCjkEBElp+Pb}`dHoEHFp-f&TKDAZucezv#NIs}B-aa< z)8xkp42>ahdA2;s!}8BQ7;YDum8{jvsl0ZW$Y=DBLBws(32^gL=5}GAr1D95r!m7|gaXfE zsBKpHWXBw%BT@6W_gzqx!;7fApt9?ipGTfkTpMgZC?~-03N1FvJv2BNk1U#rmN7KjeTM4cJT45} zG4PI;(9*vYGJV5WR)m>;g`Sw2q>PfQJac?CXs9e&uQ%d4n<;hNV(0c&)?g%{?cGI3 ztqgGkft#2bRV@__;hg;Uqsg^1|FbGAUn?zCKkZ+?lKS~Sx~<}FF@=c>nqOJ_^O=Ys z^N$YReh)^gx}CFnHhHmiG^V;;YbLQa6*ZY2*B1No8jcdaXuxZt!k z`lShT-*5=@8I51t>DbGiA-DXP3KP3_(V@06*{+ZqIc= zK})v|G3684z#XOYNM{T5r1FsN1_-BjRV%!2^1J=d#cY}Dh+FKeq|V~Y13`bsq667I znQPS`jQq4I-Gy8_i(vpp9jzzt2aexX@{4~o-fc3T@Du5MSl4wr6VUJ5*M>cB3TPHp z44stV{$ZoG4nj}PURAV8U#PW7wC4XVJes(83O3MysH}W-wu0Sx<5x)#e^KYlLgbWGL~OHPDvUT5kKc*9h|Qh5 zh2g}EKQzzF_3+RI!P>u+bg0^=IZx}K!Nia>WP#5D**P$(d)rSJ%iS1;s|m9VRvf*V zE8LomDYp#;^#UGq?caSS__;-3@|EV;P_s_2XaEJ9vMfZ0!?WPggi~s%otUeW#){`B>RtZ~(O@Ak`B`_u6 zR6{47bkRXOtLUJOHfr0x zNAi%TJmLX&xz7VxwC7iUP4uvlZe1^3T3dup z1XCKr5rKzQ09X`V!FLIdtB5Cw;V1-D0csIXD?nNBv#2*F$|85U&21*R#ZCFso}&TF zRJo8^&SpMkBRys2KOX5kQ0bm)}@p`W*iY|w! zsKawXkoYQ3t27f<_{k%F$-m@@J#zz=DQ%dlV+(z3({0jL@QBCR5uC_6o zkrt_O&C)DQ+Dx-F(L^h))FlfZBEAmi5=`>H=R-cs5F4f`%^Abpg@^SmCVZ> zy`y*h+xmw;#gx2QBEMw=ow+XUmTuO%Zdprh^3*WQV7)5SRSGelFu^EeGHZ5Zz%sq> zP5c>y?9okl$%0KS$yjM2{7YuDL{xaV&4ZY!Co11L7 zm3IH)NptfC`IKJmrI)(67bPX&dR3SROmm4b&MpX2|Ec8mhx1D}% z2{K$^Jv}Am6Vb*YQEoEIPx8R*(12z7yREjIAr89DUI?jJ_!s?I-k-`>qw6E@XSw8E zmfN<5k=2xib$-8YXFKgta3v>5M3eGC{>$C|l8$B_9b7LvTfqh3B}=S-rzv^|_0S0A{wn~|hFgRcI zTnuV|GRBD9vDGtRRq3W-kYP3j`Kb_D`OH+_*NXU6$fP^V`I<@dsov2O5H{xaFhq|K zoFZyuYD9kEP3UcTigKOPjLE#Mo&l@6{HgmOZt9* z=hBoNltBhG6Vzvgz80|(h=RBEJ0o(+*3E!bxm%)@gB+mAMKC3iDGJVu%ujIK$c@&X zG*o?9J!@>*!#)P^DDkzz+*a{aah5ZT$WvQ416HNMY8{6d#1CtyLJupgDMM zn@he#JmTCi!*qlvhUJhYs_H3!a7xbDni;UtZSoC#$uKR^Ah7f-5J7Z~@ysbE>;!Ph zJ;M!)!SVop{j#=}x0V^G5-OV?;O+8}sJ|$9Xg*XAO=}2bWE?-aC)Ajf) zdr)@fPZ5*N)DdsXahYRQt7X7i+UDHF*9_pr85;8hS~c6=a8SRX zKA5!?MV4q}0>rQUNB*$&GGHxD&+0H+@S^h+3V~lF&CZmb$c)N@tykK0Z`mh9e8p-n zo_H?}5P#)+gO&knX~Ak8->}&gs;c6cB7hg(bveOhI|r<&C;zECq&tvknM0U_FOFlr z#xaAI0c&ZP>?a&%d(fmDUaA#L1Vs>X{ssP%j@xNWZ>pKry05)`)a2WzUy;*NZt~wY zeA$5YabdNBgY3Z%djX>XVId5BE~mT^v0*S3tw;4MhvYEL(U36oxD?N!I41ZXYveIt zeH>UdvOik75G@TYLhG@f_-$;HRajMrMbt2;hiEPDV=1Cey)5ILuntiJ)`vCCT84Fh zenKdbas`ck_dt$w!KPGJnPo_}&;O1!S}Y|E?(GSisafC*XYAm`fc1e)lIwOzz58u)ewA+LMU5it|i&tI*A>t!`5W76Yfc4%?u$?1pq|9KLVn}$$``%2@RJ54Q ze4AUFOu`2x4-QYc$x&;~GGM)X)2ri4cH@V|3d#8kJdz)*%F2|~!Y27IuQR;rLX-2g za{M3vD=%%O3|Q|DSN(iVV>HE1q=*6G&)i7OIZLpc%36=G%^jgtVz(X=tW1D5fx7Tjt7j7_pK{Ud9tWq)p1YA7b*W0mlV<7ZCFoUN1r>+K9|Ge>ABUl@vr za~J*N@|UfX=?!eEA$LIb;RQaH=ZgJ?`PWNM$|YMT1J;`w){0;bdyrs{moVrx?+3Bj z>!!D{t+w1Z-ezK@4umiGgCDGc$AI+)`382gFKD_Ua#=*-{S&^Io3>7-e_>-A+;`Gm zCM;A3>Me4PF&pk^!1^bqv^w{#zcS2OX}m;q-kr?Yd7$ZC{8`+=S6Ux0Cyli5JmIL^ zw{ugfHGDSU8KG@Q>Q9D5iI2Z}quh*+Zn?&_&M<9alJIM>+t#pXw{A^%au`6X&~rG=F}Z82WWXx*tp?epo)%N=vHaD1 z_KY<%o8Fh^`!k2A4{Ec*MxMg!3RXH}z>49ji^DXBQ$wRCf*wq8!U93ld$qv2+!x+X z2z{&=v}QPF(@G6kc~kNEoSpH@Bf@Y{A1@qjFqho)AuMsNJ0h#%7gR|C zuH-Onvk#^k4L13!ZYU+H3!+99Y`V5E+6?<0Tpn%9PFD zHhlz}T;Yy*YbY%!RYh`)%LM~gbsENU4$)bzfC15*jABW4)5rTmI_zp=!<7r;m7RK1 zoT%O_O{x}Hx}IU`;-`Vd^TFF3vugrOAJsmabBCon2CQ%<{5+@SmI14p%waEmfo~Pw z9_WFvm_1!{#WsxT<7>V@^97l(KC3vTR8eloNds1Oz^a8qtPEkL#ao&Y9&l8qZL64; zhGv=@57Q;drk(uj86)z{fK}58d>th$E%xs9mr z0Cmx7_#EfuHv?8WAFI&MmSkfyf;i_c)J&M+n^J7upRzZXL5b$E^7UCaxmdZ`tcnGe z*0PUJf-0-n+2HJpkw%-sU`o4%ui{{?DFBrpxpT)o%={z^2COta%tj8-j6lvqVx^+D z`O(JBnkpnTJm9+Xm$5?3&-#lWE3Azz#I z*npLWN4TCH_@$XE7C9sL%*0Ir^b~+%kgvNCEzO#SlUN#5mB+s6(?oJ%-d9f z$ZBGk=Gf(6#RR-mSe;=-0ZV;$v${~h9>>)^ezMG!sbZ0pVTf+jX%t!xRsSC2m2`DQ z1p!NI7^F2wvrF`3@UmDDgQ?P?wJo>JPd4o2=Vpyn&Y5Aw081MfVtJWFyW?E7G=`e0 zTQ9onKhODoGX1VR=WM0it63qy(iT3at_-f`I8%L78BJB|WvyaA%SwtIlsV2-Mh3Sc zfTiv1D%*fF!x_7=*;G}?s%JkfWstSVcqI&|tN>u?Y6kN6HYb2J#X0L1G*un4GPyy& zqYScgT$1|+tdIS8y4ix4^ZX>PCb?wu*-cf6EXfXdJzi;RwDL>Z^SLPpmTrhtT}5Bl zC*CW@<7O_ewo`sV{@9hv`IC3W23UAMIsuHOtvb z9b0BHz4d-s#vscJ&Cm{t;o)N@(l?njb-+@gkG3+ndd7LHx-yx{?3o&Nv!V>Lo}>?1 zDFc>z^s%Z8t{!u-l6uljrgyq;e0I>5zk=0|BI{||kd-Q6sj!vSGPt^LMWQCt-|U_3 zbVMd)1;~1qE@VlnmV7I%l#V@~;)>zQWcu6vvyD!YckIAZuBHcBlA`6_LTjR5keuh= zj=j738vhNy{FR)GYPp!gcdRaiw=_tOdtp`sX`o3tb6ZDawtU*n+!~*kFuLKv!)2F5L=JAo(5#416W=3l)y^(T_(-^Or|&9Pa9bu zA}fcVfA^c*HDJ9f4{JSZA~)ecmK*ZGOwVL`s~y$BCNi<0@GifbhxIO(co`kEunc&~ xGagvgmC5uk_LENsE2%@6=T9EWd^-N${||HPdj{-7pD+Lb002ovPDHLkV1j{Y`)&XL diff --git a/osu.Game.Rulesets.Sentakki/UI/Components/HitObjectLine/DrawableLine.cs b/osu.Game.Rulesets.Sentakki/UI/Components/HitObjectLine/DrawableLine.cs index def1d1a74..42627b3d3 100644 --- a/osu.Game.Rulesets.Sentakki/UI/Components/HitObjectLine/DrawableLine.cs +++ b/osu.Game.Rulesets.Sentakki/UI/Components/HitObjectLine/DrawableLine.cs @@ -1,9 +1,10 @@ using osu.Framework.Allocation; using osu.Framework.Bindables; using osu.Framework.Graphics; +using osu.Framework.Graphics.Colour; using osu.Framework.Graphics.Pooling; -using osu.Framework.Graphics.Sprites; using osu.Framework.Graphics.Textures; +using osu.Framework.Graphics.UserInterface; using osu.Game.Rulesets.Sentakki.Configuration; using osuTK; @@ -15,7 +16,8 @@ public class DrawableLine : PoolableDrawable public LineLifetimeEntry Entry = null!; - public LineType Type; + private CircularProgress line = null!; + public DrawableLine() { RelativeSizeAxes = Axes.Both; @@ -32,13 +34,15 @@ private void load(SentakkiRulesetConfigManager? sentakkiConfigs, TextureStore te sentakkiConfigs?.BindWith(SentakkiRulesetSettings.AnimationDuration, animationDuration); animationDuration.BindValueChanged(_ => resetAnimation()); - AddInternal(new Sprite() + AddInternal(line = new CircularProgress() { RelativeSizeAxes = Axes.Both, FillMode = FillMode.Fit, Anchor = Anchor.TopCentre, Origin = Anchor.TopCentre, - Texture = textures.Get(LineTexturePath) + InnerRadius = 0.026f, + RoundedCaps = true, + Alpha = 0.8f, }); } @@ -48,6 +52,7 @@ protected override void PrepareForUse() Colour = Entry.Colour; Rotation = Entry.Rotation; + line.Current.Value = Entry.AngleRange; resetAnimation(); } @@ -59,27 +64,5 @@ private void resetAnimation() using (BeginAbsoluteSequence(Entry.StartTime - Entry.AdjustedAnimationDuration)) this.FadeIn(Entry.AdjustedAnimationDuration / 2).Then().ScaleTo(1, Entry.AdjustedAnimationDuration / 2).Then().FadeOut(); } - - public string LineTexturePath - { - get - { - switch (Type) - { - case LineType.Single: - return "Lines/90"; - case LineType.OneAway: - return "Lines/135"; - case LineType.TwoAway: - return "Lines/180"; - case LineType.ThreeAway: - return "Lines/225"; - case LineType.FullCircle: - return "Lines/360"; - default: - return ""; - } - } - } } } diff --git a/osu.Game.Rulesets.Sentakki/UI/Components/HitObjectLine/LineLifetimeEntry.cs b/osu.Game.Rulesets.Sentakki/UI/Components/HitObjectLine/LineLifetimeEntry.cs index 68e5b92d5..aa1a6bbc2 100644 --- a/osu.Game.Rulesets.Sentakki/UI/Components/HitObjectLine/LineLifetimeEntry.cs +++ b/osu.Game.Rulesets.Sentakki/UI/Components/HitObjectLine/LineLifetimeEntry.cs @@ -31,7 +31,7 @@ public LineLifetimeEntry(BindableDouble AnimationDuration, DrawableSentakkiRules public List HitObjects = new List(); - public LineType Type { get; private set; } + public float AngleRange { get; private set; } public ColourInfo Colour { get; private set; } public float Rotation { get; private set; } @@ -61,12 +61,12 @@ public void UpdateLine() { if (HitObjects.Count == 1) { - Type = LineType.Single; + AngleRange = 0.25f; var hitObject = HitObjects.First(); Colour = hitObject.Break ? Color4.OrangeRed : hitObject.DefaultNoteColour; - Rotation = hitObject.Lane.GetRotationForLane(); + Rotation = hitObject.Lane.GetRotationForLane() - 45; } else if (HitObjects.Count > 1) { @@ -76,10 +76,13 @@ public void UpdateLine() int delta = maxDelta - minDelta; bool allBreaks = HitObjects.All(h => h.Break); - - Type = getLineTypeForDistance(Math.Abs(delta)); Colour = Color4.Gold; - Rotation = anchor.Lane.GetRotationForLane() + (delta * 22.5f); + + int angleRange = 90 + (45 * delta); + + AngleRange = angleRange / 360f; + + Rotation = anchor.Lane.GetRotationForLane() + (delta * 22.5f) - (angleRange / 2); } // Notify the renderer that the line may be updated diff --git a/osu.Game.Rulesets.Sentakki/UI/Components/HitObjectLine/LineRenderer.cs b/osu.Game.Rulesets.Sentakki/UI/Components/HitObjectLine/LineRenderer.cs index 81d98be5e..4a04b0030 100644 --- a/osu.Game.Rulesets.Sentakki/UI/Components/HitObjectLine/LineRenderer.cs +++ b/osu.Game.Rulesets.Sentakki/UI/Components/HitObjectLine/LineRenderer.cs @@ -21,7 +21,7 @@ public class LineRenderer : CompositeDrawable private readonly Dictionary linesInUse = new Dictionary(); private readonly LifetimeEntryManager lifetimeManager = new LifetimeEntryManager(); - private readonly Dictionary> linePools = new Dictionary>(); + private DrawablePool linePool = null!; public LineRenderer() { @@ -41,10 +41,7 @@ private void load(SentakkiRulesetConfigManager? sentakkiConfigs) { sentakkiConfigs?.BindWith(SentakkiRulesetSettings.AnimationDuration, animationDuration); - foreach (var type in Enum.GetValues(typeof(LineType)).OfType()) - linePools.Add(type, new DrawableLinePool(type)); - - AddRangeInternal(linePools.Values); + AddInternal(linePool = new DrawablePool(5)); } protected override bool CheckChildrenLife() @@ -57,7 +54,7 @@ protected override bool CheckChildrenLife() private void onEntryBecameAlive(LifetimeEntry entry) { var laneLifetimeEntry = (LineLifetimeEntry)entry; - var line = linePools[laneLifetimeEntry.Type].Get(); + var line = linePool.Get(); line.Entry = laneLifetimeEntry; linesInUse[entry] = line; @@ -133,19 +130,5 @@ private void addHitObjectToEntry(double entryTime, SentakkiLanedHitObject hitObj } lineEntries[entryTime].Add(hitObject); } - - public class DrawableLinePool : DrawablePool - { - private readonly LineType type; - - public DrawableLinePool(LineType type) - : base(5) - { - this.type = type; - } - - protected override DrawableLine CreateNewDrawable() - => new DrawableLine { Type = type }; - } } } From 6c7ea8f9bad9dc60121385c9f1f624ecfecf4315 Mon Sep 17 00:00:00 2001 From: Derrick Timmermans Date: Thu, 17 Nov 2022 16:49:46 +0100 Subject: [PATCH 2/2] Removed unused stuff --- .../Components/HitObjectLine/DrawableLine.cs | 4 +--- .../HitObjectLine/LineLifetimeEntry.cs | 19 +------------------ .../Components/HitObjectLine/LineRenderer.cs | 1 - .../UI/Components/HitObjectLine/LineType.cs | 11 ----------- 4 files changed, 2 insertions(+), 33 deletions(-) delete mode 100644 osu.Game.Rulesets.Sentakki/UI/Components/HitObjectLine/LineType.cs diff --git a/osu.Game.Rulesets.Sentakki/UI/Components/HitObjectLine/DrawableLine.cs b/osu.Game.Rulesets.Sentakki/UI/Components/HitObjectLine/DrawableLine.cs index 42627b3d3..ac528be96 100644 --- a/osu.Game.Rulesets.Sentakki/UI/Components/HitObjectLine/DrawableLine.cs +++ b/osu.Game.Rulesets.Sentakki/UI/Components/HitObjectLine/DrawableLine.cs @@ -1,9 +1,7 @@ using osu.Framework.Allocation; using osu.Framework.Bindables; using osu.Framework.Graphics; -using osu.Framework.Graphics.Colour; using osu.Framework.Graphics.Pooling; -using osu.Framework.Graphics.Textures; using osu.Framework.Graphics.UserInterface; using osu.Game.Rulesets.Sentakki.Configuration; using osuTK; @@ -29,7 +27,7 @@ public DrawableLine() private readonly BindableDouble animationDuration = new BindableDouble(1000); [BackgroundDependencyLoader] - private void load(SentakkiRulesetConfigManager? sentakkiConfigs, TextureStore textures) + private void load(SentakkiRulesetConfigManager? sentakkiConfigs) { sentakkiConfigs?.BindWith(SentakkiRulesetSettings.AnimationDuration, animationDuration); animationDuration.BindValueChanged(_ => resetAnimation()); diff --git a/osu.Game.Rulesets.Sentakki/UI/Components/HitObjectLine/LineLifetimeEntry.cs b/osu.Game.Rulesets.Sentakki/UI/Components/HitObjectLine/LineLifetimeEntry.cs index aa1a6bbc2..acfa8645b 100644 --- a/osu.Game.Rulesets.Sentakki/UI/Components/HitObjectLine/LineLifetimeEntry.cs +++ b/osu.Game.Rulesets.Sentakki/UI/Components/HitObjectLine/LineLifetimeEntry.cs @@ -12,7 +12,7 @@ namespace osu.Game.Rulesets.Sentakki.UI.Components.HitObjectLine { public class LineLifetimeEntry : LifetimeEntry { - public BindableDouble AnimationDuration = new BindableDouble(1000); + private readonly BindableDouble AnimationDuration = new BindableDouble(1000); public double AdjustedAnimationDuration => AnimationDuration.Value * GameplaySpeed; public double GameplaySpeed => drawableRuleset?.GameplaySpeed ?? 1; @@ -95,23 +95,6 @@ private void refreshLifetime(ValueChangedEvent valueChangedEvent) LifetimeEnd = StartTime; } - private static LineType getLineTypeForDistance(int distance) - { - switch (distance) - { - case 0: - return LineType.Single; - case 1: - return LineType.OneAway; - case 2: - return LineType.TwoAway; - case 3: - return LineType.ThreeAway; - default: - return LineType.FullCircle; - } - } - private static int getDelta(SentakkiLanedHitObject a, SentakkiLanedHitObject b) { int delta = b.Lane - a.Lane; diff --git a/osu.Game.Rulesets.Sentakki/UI/Components/HitObjectLine/LineRenderer.cs b/osu.Game.Rulesets.Sentakki/UI/Components/HitObjectLine/LineRenderer.cs index 4a04b0030..58e26b5e6 100644 --- a/osu.Game.Rulesets.Sentakki/UI/Components/HitObjectLine/LineRenderer.cs +++ b/osu.Game.Rulesets.Sentakki/UI/Components/HitObjectLine/LineRenderer.cs @@ -1,4 +1,3 @@ -using System; using System.Collections.Generic; using System.Linq; using osu.Framework.Allocation; diff --git a/osu.Game.Rulesets.Sentakki/UI/Components/HitObjectLine/LineType.cs b/osu.Game.Rulesets.Sentakki/UI/Components/HitObjectLine/LineType.cs deleted file mode 100644 index 5e0327958..000000000 --- a/osu.Game.Rulesets.Sentakki/UI/Components/HitObjectLine/LineType.cs +++ /dev/null @@ -1,11 +0,0 @@ -namespace osu.Game.Rulesets.Sentakki.UI.Components.HitObjectLine -{ - public enum LineType - { - Single, - OneAway, - TwoAway, - ThreeAway, - FullCircle, - } -}