From 6c7de32c6e8224e95cdba7bb326a9181feab6e55 Mon Sep 17 00:00:00 2001 From: Natt Akuma Date: Wed, 26 Nov 2025 20:54:53 +0700 Subject: [PATCH] Add conditional jump to music player --- .gitignore | 1 + loader/samples/minexample/Makefile | 6 ++--- .../samples/minexample/furC64/asm/furC64.asm | 25 ++++++++++++++++-- .../minexample/furC64/convert_to_asm.py | 6 +++++ loader/samples/minexample/minexample.s | 9 +++++++ loader/samples/minexample/use_this_sid.bin | Bin 6904 -> 0 bytes loader/samples/minexample/ys2_fixed_drums.fur | Bin 0 -> 6189 bytes loader/samples/minexample/ys2_port_legato.fur | Bin 6501 -> 0 bytes 8 files changed, 42 insertions(+), 5 deletions(-) delete mode 100644 loader/samples/minexample/use_this_sid.bin create mode 100644 loader/samples/minexample/ys2_fixed_drums.fur delete mode 100644 loader/samples/minexample/ys2_port_legato.fur diff --git a/.gitignore b/.gitignore index 32b1aee..07aa64f 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,4 @@ loader/samples/minexample/*.o loader/samples/minexample/*.zx0.prg loader/samples/minexample/*.lz.prg loader/samples/minexample/*.tmp +loader/samples/minexample/song0.bin diff --git a/loader/samples/minexample/Makefile b/loader/samples/minexample/Makefile index 2241425..276c2f2 100644 --- a/loader/samples/minexample/Makefile +++ b/loader/samples/minexample/Makefile @@ -131,7 +131,7 @@ DISKIMAGE = $(BUILDDIR)/$(NAME)-$(_PLATFORM_).d64 AS_FLAGS = -Wa -I../../../shared -I ../../include -u __EXEHDR__ ZX0PRGS = \ - use_this_sid.zx0.prg \ + song0.zx0.prg \ badguy.zx0.prg \ title_320-prepared.zx0.prg \ tower.zx0.prg \ @@ -180,7 +180,7 @@ $(DISKIMAGE): $(ASSEMBLE) $(CC1541) $(ZX0PRGS) $(LZPRGS) font.bin $(RM) $@ $(CC1541) -n "otomata labs" -i " 2025" \ -f "ys2intro" -w $< \ - -f "song0" -w use_this_sid.zx0.prg \ + -f "song0" -w song0.zx0.prg \ -f "badguy" -w badguy.zx0.prg \ -f "font" -w font.bin \ -f "intrbmp" -w title_320-prepared.zx0.prg \ @@ -226,7 +226,7 @@ $(ZX02): $(PRINTF) "\x00\x90" | cat - $@.tmp > $@ $(RM) $@.tmp -use_this_sid.bin: ys2_port_legato.fur +song0.bin: ys2_fixed_drums.fur cd $(FURC64) && ./convert.sh $(abspath $<) cp $(FURC64)/asm/song.bin $@ diff --git a/loader/samples/minexample/furC64/asm/furC64.asm b/loader/samples/minexample/furC64/asm/furC64.asm index 5629d5a..0459488 100644 --- a/loader/samples/minexample/furC64/asm/furC64.asm +++ b/loader/samples/minexample/furC64/asm/furC64.asm @@ -116,6 +116,7 @@ fil_hi_n: .res CHIP_AMT base: .res 1 chipnum: .res 1 has_played: .res chnum +extin: .res 1 vars_len = *-start_vars .endmacro @@ -357,6 +358,7 @@ init: jmp initaddr play: jmp playaddr +jmp extaddr .byte " furC64 driver by AArt1256" .if actual_use_zp = 0 @@ -779,6 +781,18 @@ effectF0: jmp begnote .endmacro +.macro add_EExx +effectF2: + get_patzp + ldx extin + beq :+ + sta patind + lda #$ff + sta jumppat +: + jmp begnote +.endmacro + add_09xx add_0Fxx add_00xx @@ -796,6 +810,7 @@ add_E5xx add_EAxx add_ECxx add_4xxx +add_EExx other_effects: lda effects_temp @@ -866,11 +881,11 @@ effect_smc: jmp cont_advance eff_lo: -.repeat $12, I +.repeat $13, I .lobytes .ident(.concat ("effect", .sprintf("%02X",I+$e0))) .endrepeat eff_hi: -.repeat $12, I +.repeat $13, I .hibytes .ident(.concat ("effect", .sprintf("%02X",I+$e0))) .endrepeat @@ -2142,6 +2157,12 @@ clamp_note: : rts +.proc extaddr + sta extin + lda patind + rts +.endproc + note_table_lo: .incbin "note_lo.bin" note_table_hi: diff --git a/loader/samples/minexample/furC64/convert_to_asm.py b/loader/samples/minexample/furC64/convert_to_asm.py index 14ac9aa..531f72f 100644 --- a/loader/samples/minexample/furC64/convert_to_asm.py +++ b/loader/samples/minexample/furC64/convert_to_asm.py @@ -44,6 +44,7 @@ def comp(pat): elif pat[i] == 0xEF: i += 1 elif pat[i] == 0xF0: i += 1 elif pat[i] == 0xF1: i += 2 + elif pat[i] == 0xF2: i += 2 elif pat[i] == 0xFF: i += 2 elif pat[i] == 0xFD: i += 1 @@ -114,6 +115,11 @@ def conv_pattern(pattern): temp.extend([0xED, k[1]]) has0Dxx = 0 continue + if k[0] == 0xEE: + new_byte = 1 + temp.extend([0xF2, k[1]]) + has0Dxx = 0 + continue if (k[0] == 0x09 or k[0] == 0x0F) and (speed_type == 1): new_byte = 1 temp.extend([0xE1, k[1]]) diff --git a/loader/samples/minexample/minexample.s b/loader/samples/minexample/minexample.s index f87c15d..9e68f72 100644 --- a/loader/samples/minexample/minexample.s +++ b/loader/samples/minexample/minexample.s @@ -1502,6 +1502,15 @@ part_10: @finish: jsr position_2x_to_display +part_11: + ; tell the music to end and wait +: + lda #1 + jsr $a006 + cmp #17 + bne :- + jmp end + .res ((*+$ff)&$ff00|2)-* end: ldx #Hro;wH@WO_ug}8A;fN%;?;S_{1l!q{e01XKQ@p2)D@Jb+rU@RVX zfVC2rO;S5};KNwPFWHifkZm-wjVZz8EEPT8oQ7V5nEpwJFX`AvROZt*|%V#gKq^+>Dwk}!v)TGH% zg#RBc+P{?u6*G%_M0YNl%hAo}^hMwb7NN zOBI6a0C}FTaXHDevc|O^qOLVmqN#97CkVd^QL=KlQyim|q%$PVCdormB}rK%Z6awm zNe4;FBk2f9`6NvzX&On#N!m=3g`}+{?I39kNjo`83RRe-NmQYe=8`lS_6th{%l}lt z<_2=DB}XRL;Thp8_rhZ#9?YV~qduI{ z#*;prQtl^rL^v*7G+FMJhCU{3< zS$Fc|!B4L_{95sj?EF(`CA^(R<3ouDDX)~5QZAF1QEn8vH>@OEaa>@yFR{5@F4%EK z*0{Ucqmf9h-0m2P%#PXpnA?rSVzTg<;tX5JKBf%%V-$Di%CmVn znoS!YL5ZAA%%Vn-Mv*LzmQIcOTA+=rRWmf}zCdP?eLKfX>j`8gg-7)SA}fKQ3WRtd zA+mo|h9G1fM2Ofd{&UFFltP%CJ)N+P)2SSc)Wm-n%5;Hz(7NtUzdlT8#!=2rU`Ypmck$uT02@yN4? zyOGX=pT)yY<7-Lt%Ns9I^#v-L$)`5F%^-_crR<@;xMT}OMv&lRsfpM~kvc_Lo-_+AiDV6P-~fz9i)>jGI0msW`J z6HVO25JLr6tGL78V5=&=SVNvQ)IJ2&fqyhuKB&TX1OHwCvYnN4S+#DI2yZH8 z)^l5}F@w|2AVS2SLM0+!7F}32K4@9Pmo6hG5Q=#`{@hrn@OiyvEcoR{r9 ziX`HDAbA6`WK{FF302U>!*Bg+Sv8*hul&^oT4-NM`UMQ~cSl6aCX?Jo*hQ`K zP4*dHm#*XvPmo+AIy^FJh9^Y1-N|#hv%2~QcbDtoj(#y_Rq+_JcYkx7S4%WUlQ#*K zmRn^*FVc0$&jGTOiZmVaD#|{C$FoS= zaV06}$oslx4ax03*HV(N`&`RN{@mwUPV(12*Uv~ET<3b0r=SlY|ww??fv{=0FnU;V+MPZzgLsek(7ivN}}%)c(#|I*L592$x-W;<2`c7-gj3c_U#m(QpeD?G0_MD-njnPJscoj!B+ zyo@D3Te)`QmYsVK{?k7fyK5UShX3t9{~Q%HI(DyH5R#HCmWdN>w#-b2W7{^Tv!H;; z>uqTXhi~1ApxwF^4!5*;y+j2CPUp654o7CD%{FnO#gddH2+m!b*FKw(K6PTsKMpnF zZCD-;FMIFa*Z1ssZTIe1cR8K=4;(mn=umE6-W!JxA35qga47Ha(fl_Hj=lYE z;d{j=oCoucx(eR@<$EVim6li4)Hx3wdGpvWi^*MCQ{ND5z2wZxKUR36w9sHn&CV~Jhkx;2N!8iludaT0^Y@XjqRyjlpD3>jUJ75o^TnU> zf6Qc>Fm;wWF?saZA5NT_K0hb7?(^^dc!9IFw$|IP`OqfYY_`ctvrS%Vdn@>-(X*D> zAlcizTnU1;R_j9ReXUn4p5Ri$W1=gpE84{swim2iz#Eg|m_BbU$LwpXtnXbjJ@(Tq zMY0D@k>u7bCLwARUg7^XRni%a+Vq(^(@g$9d6?k|!*s)P!;6OfhIb4eLyO_JhCdjz z#u3Kx#x&z|#+Qt_#v-HFc+vQ=@h;BjNYfzVW|if zUxMW{cre1KHU0q}wZOA?;Ngq#bUHj9W)KWfK@CS8Z9UP&Gh<6PBh~~P57wsNR;-2{ zThVUYHfUcs=_M^&jRZLX0x1o{Fr3Rjp!Jxs#i_C<*yAh(03R8i5mM0eHMhhSq9B$D zS(qW+1BEkLree?Lrz zG+L$|ptf2~0$j4eDZ7^Uk2GbP6`B-{P5e@D2@92IoTf2?X;nC>K-*W-L{Tf42PNn= z#s}mq#u8(9ji52;HKIWnKV|=A?UXg|{_7OekGB?IyY_G$TD{WFD$PG(@*Wrc>UaNz zOE)AVKmVG)uborcozG_X@GeG^|SLwHUp)>SFi1frzTwaJMaTu}$fB1FV6a$EDtbECzL6VE~NP1F{YReRMrg zYjM>nYpP;M0clpoGIpj1rb6GDuJ07!KsBp1bf)V-t7`TA)io@nVa*!Ws_9W}W+B$Z zf>26;Qh?LA26FxIp{_@zUdOyTRP$k>@~R^sdz(KorNV}FB-K7F;%ulM;I^!^6fpeC-(pm>ZV=y?8-4h_4kV{OupUcb zkm;0PPM z;;I+V;ZpAbfTZ0P{Kf|3d1J`fI;dG2N>o@4iJ`>S#E|y9HmD706;@De0!YBzrftqGih6`?*cUH?4qc4#_!rTQSA(OWH@Fz zAO>M};OK`r8Q1+QD#wouH6h^&NI+!pj9&pgdm<_FY$p!nP7Jh5gK1n6mDp)*)ewv#HCgLbnA}?j%iY{UH61GSgGrk243rG(#gM?PI z3@;yJw5naf>@_T-j*p8}TJ;F>Rf>F-A`kDdQJ^7H#y3sve^>ZLRjh(##L!_5R{jQj zH?zChqG~>7z**2$3SG@W`dEgWE%y7}?uG`pyEpwv3j%~R0<2+nFUvsqXV{{8KK7%5 ziv%_($&9CA1G)hvY5qR?|HwiBZyo-6SKyZvia6$_Ou5J0FT{bxHiPTtVI!^8;C!=W l3B$oEV>nfRXIPxpGFI|O5x987;ggpic%)m&wpS?${|i+#JF5Ty diff --git a/loader/samples/minexample/ys2_fixed_drums.fur b/loader/samples/minexample/ys2_fixed_drums.fur new file mode 100644 index 0000000000000000000000000000000000000000..7b8418b6d0a8bfd1d61c5ba3cb93e924b87d485c GIT binary patch literal 6189 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 LGV*@_x>B)k_*Drb literal 0 HcmV?d00001 diff --git a/loader/samples/minexample/ys2_port_legato.fur b/loader/samples/minexample/ys2_port_legato.fur deleted file mode 100644 index 6a638f997c595639dbc1c0e563ebaa526184d6ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6501 zcmV-r8JgyJob6f(a1_^>{=0i-y45qI9u1Nh9VHF6B;$aH1o%pfEo`t2KENQ~iH!_0 zC#Re?8@uA&q*6XMUgE8|5+AA9robYATpTKpv;qwyF`8ix z=AgUxf3Leo-9pG1?9FB?Px|K_|MmU%VATR)*+*Aj7VDl6Jhd)>1Fb@-#x-TeSpblZ~izL3@Qs3&ovtf0kzkOAs ze}2mff9qrZn;P2Nn;QwU=VkzwAuWb66d2~eZ2&jg0p3JvZ~*K>x&!m{??^TQ$B_Pj zbX5+(uaF!f!0(ZUkzRKKw738+a|7%}T9FG-ApzWtv>xflNS`3x;sZESiEW&Nex%R8 z0r2TGfOXT+M>W9rk+>NEdytlW6CjB6;~Ml?i>Q&@vjA>IdI%|jG-WnoMEWVxVI&!8 z>Qw;qk={r8_SFEpkWM2xuK`FQ{rOseUtb6C^0xq<`!>La>j9R}L991m{5JyR)d8HS zBPn4yo87?+_8igaa=UYl0VDy3oGxv^=0M`fh>K%cjw3UF%bosO@-dTq%+gcbaU;z) zCG5J4^s}`4&-kO2n_Ji5s%~B1=)Zclf9lc&^ZeIdb#2X+Flt6GHOAagBbYfPoJ7D0 z1e`p&$Z^5|Ckt?rz^Qo!oFKpn0*PwxRT(4}i9@m>*^wMbJd%KvgCrt3kz7b_q+BEk z37{ACdr`j^^?Omj7xjBlzZdm;QNI`Udr`j^^?Omj7xjBlzZdn1t`UUbuon0!#_|WG zKO^08$J|?AL#gG>t;<(0ZET)XBQAfut-W>4&13+3O)X9BOB&l6+v}UwG|rhRu5Nr{ z@%pCL^-b+h%xPc$c%!(cVfp&jCHTmg^H@W38}=V>Zf{!K{KOJ8rj4|;*3Q3Y?TUtW zL!`a2t$l8LdjoYqI`bNrH$0)YQLnL~tx@kSMKBFbE!cy(^A;>A)n^3?Mwby?MY)nE z&pRof$cTmvM`X?&S#a0Vnf2HS;9T7`*8%fyYG`Z2^;8KlGRgJ%5?{9%*t zsR`kIOY^eAj9p)j8sesGh8(c8rD1*JDB63TadCCHvA+X23s-%)6fx&b(R!1^+nQE2 zv}+E@UVaF)^xXffB#b{N1%|`9INhA?*=F&~p4YQ^p^?d%HM-E2c%&_LabW77{U#7k zUwWa9wLQ~h`=6u^veNEt?#b2JB;1cHJ(%R3YfcoZR5&Ohl{thrj@Yn^NM zpMN5%DDD!(T?!Ah`4=qkSNj*Vw6AaVPrY;L{WGuhKXgsY{SQ{_`}038HOjk5l=jgm z@z7N_6{%{Xh@IHl0?Z-DQmDe87ua6r0pz?6k74fu<9z>8kv~F^JI+PESSO0!VW77O z7=goxfU#i|E+dLMMEx7)edeO#`1Pg6ar=2@z=(shn_{rrO(6*Ou@UH)1(+D~>z9go zKEce5VxBtDYRMTzc~KdD;Zo5~GoBPWTH_@s*p0WLz-Sm>=X6YV%wWx*&yVTdOT}~_ z!DJi7WRPXm;+nOMu3B8POm@}Y!I7Us?Cb0UY!zF_MBzoa^TKmlnZ=(A3tHOnB)q1v zrQJWX28jN_JmGQ>ez@N=|E~My-aEfYKYP+bE(hdN;n3UX2$X|%izqhNi|QX-wqoU~rlwU*t6J(8 zJvMEAO{Le%Cy#W0_Sr99d%5$uj&aI!ul(|@clRIa5Atkr<@B58Jy^f&$+o}Sd~Vsa zVa;RrFJ3Tb))l1%xv5mR=g=QN{@vTZdi5tSJ^w;S=edTrY}@wYi$8kl<)8iH^_2pV#>THDszylUmc-+gHDq6PD=yS`>>MY+!-a!M+8s{h2H z?)`uI^!M+*`_`Lpy!PrV|MJrI7oY$8=f;b7%hS(4^P_)!`Dd^G;_Wxz`{?7{hcK;? zGfGa*q_VQAnrp7Eo44?ed+%TN@QPKdT3Xk(Zff7Kc0>E7we4%$nwy&+UD5F1ef4+W zK7ao8*Uz3Yz0zOiE65c&PCXk-gii$q`v!V?dJY}wKG=P5e|LBHfdkzK4<0#qsONCc zvEIJEz7vCkgTcX5L!nS46p18arxT~oCeI}0qW{m zEu2(XSX@}@D=jT9^_P{ES4=6ZDzB{cS5{S2PN}N&S5-`z;`f)AmK7KJdrj0 zHhhE2$>fgs9LS6oqr z2+GPziwX-0a&yHTj$>pw6^lep1u-MN$9mA^f$qKgKKpFX-d($Q@7ne0?p?b--LrcS zmc9G-?LW|c;LzbiJ(!>qCxSz#$m&R*m1TxuZ6p!7k|cS(o`OjQg@qU({uUJ#`-+Q; zOG``3%8ED%ijX_0!0XA)b%{LBu`DREd^VX%o;eds#A5i7NW?JXDJ-(0 zsDQU~mSGu=&Rn(Hto=u%i64g{9iHXEIc{Y_oV5mnPV=Rl$FS7Ra4--I1cRqeg~Fi- zn#Q1Uk*T2BM9et^EW*Ygy-@TbiATUC$dh8jm1N^cVKE>qm@HN=WPsC(jTTN5MIn61 zV-hioDUy23IR+mgVIx3V!WcV-ZA5+M3}*W5Sp-OvOTIT^s2_`cl5a$$6=THkNWN(z zGp7)@WcEyj3@Fs}IJWho#l$e0CD0dwrJUzDd;w*wB_&(VvCfPZ){M!5>|Bc%T`oST z2_yU(onNT!OASrE#4KN;doz-Yc1unlzjTB4<<2}j8`a_^Y@T)$S>x7@A-AoY_$Z=O zgx=e}z5AtLvV1iud$zx}ef##{%@3`f2HR=bx&5(*?-JG(_uRYazR7hrR#eyIjqEwG z|2IGXi17cd4-zMLefZMJSeN$luSJG(Qn`T zxZf?6@b*M6gyVzu{OYMSRW4p0{Cv;8h`ZDtESgeYsP>1C_QlmQ!O7*bgS|Z;3?}lu zV)g8*sYO!c!`(fKi*;}Ucj9R8-cOFG-m=Qs-hvyhcAOm8yZ7^`R8rt7;zyK>sK`g6 zO3!c%qAbe`Wiv`3($kF(rK;&}Pb?kWzh}?>WU*Q@b?RlVJofm>A?QyOd%bKZo;;om z1$$KQjknG(7VLZXzW2MmBgHeOOp#paX#e2>RVeo6Pj*e?M~)sj)*VcGE~}}jF6=+D z`@o6gF-CMxsk)X=B!*ZRR)i6m^^6PzPs%Y5$K@5y;O%a^oH-dyIOMpLa>OFhxU5Q| zw`6j9I6TlF8i}fEChjPxx~%$!+Ha`C{rkH1>`6ozzau{xR!2r6(flcs%Zp2s(NJ1R z3@4LmD65!O?GcZjIJWnLPx?I`e|bR>IOX2seJOWEMU`ZCq)#60?@ttzmdz;6PaNBO zG?L+lgD290qd*Y+RXn89;7lb&H8Yat@C4xiSz+y&SPXAO=|nOEE>}uTt2`$a7Z(#la~s?lgDRH4h{?{ z&Z5dR9bv@Ay~=N`NrrW@NfG#DDtI!%x<$J@JUlXz zR$PT;MTHJv;_+B06jVG#lk>ceSTr1rghMHC=1F-B#KPgYoCMx3d5XM+4ptrt^+c6S z2A_2t<6xQCiHw{tO)i8?G#ZMt4hGyFHUX*vv9ugY1LMY&Co_0zW}JC$2}1F->=1EU zVo^E8sX&f*c3$FG-XS{V%y23?0=$!RhqoQP&raJnQ1qo(4~6mWKr$f|J}WXL3e z<9Rg=u@M%m3=O7&k;#PMQ zNZtZ59ZN)mh>CZ)?Rd;grR7*c<#^G_qMIZrp>P`P`GsDd;kfAWfsqk#O%|PQ$i&03 zNC?<6f3c*-hmVg$qq5VTUnJR+nP?;)Oeh$LP{=2Op@b^p4cp~(b1ExGMj#!>o#S@m z^)+}hJd#YZu7YBhBRzuqg_GO@2MR-cNAMJ=V2&`Fq}|S7Mlxxc!TSR1OmjGIGN#bs zbUAo??08=yq2%QWJlNIY!Eh49{1S-=IiA1+bjB|7cz;f(8M~~cqw$ObQ$Q}$z+~ca zg>{K}E;1)0iAYA}Ai?0_Go45&oI?;%CYe+i&Mnx{dnSRq2zZWB&>S8IqZ!_fQ_d(O zQATj`c=AP~tQ?Alk||t~yZ}lv5|`sDI3%}Q^6-or86Fx|orU>cE}4!D4~H^ohWw$@ zNly5TjCXp6ATZ=&Pv$U_!Mm1%Yed!m7==up!83Fk-3UC+m#V08GKK4rM=mZ4JU^l` zXBPz)4{zj#B(QcOq^Ne>95P}>KOCoIFgG%bxpPuy$*8OX$MFDiIzx{Xb_br~GRdS0 z7z+qayhmuSYL>BM25=5>ZH*){xK`Z=g-IvlF_n0B*d3tYi-cTT(3FB|nOHpSAh>wq zjIq-{d1J7+QZW=2QDGCu=sp2~{MD30c^TE^41+V5Rz}YlcnKo-w7;5@@8iG30WD8Y*F?8t& zplF9)a#=#7q(v?nm`T7#DEZqlL-sv>%4wQDC53V-;zB8MZYOFKKBMY~C51$;Dxm%S zSypLyc%G(gSuuiEGUT+xY8MBULPRNY2_zEac8H=3O)5sHP@tG3hLtl4(0Nmdq^i4B zWID zk7_E}bFU6zoMWic5r0 zmH%^vT-ZLvr}@pzt!<6|+nW5hHMGNa?!vw_4gmhFfQ371H}4GW=-OH9TNv26lMDjX z*7~|&Cv*jN1Ol+I)(0!Pd^>k`b#(;-UEl*B`Tw$jZ)ca!SK9?$J8*DE?aqY(AJMMe z;oG?o7Ipy|?b=CT2Eez_=j%eL04fCn+7K!Rx_oHD2UrD&WgJDb0I1g$@DUD?Bx`X;Q(d4% z0U90x)<@lG9THI&kTI;NaiXgkB5W!fFtjx_s;R@$291vHfI1K8KD2N(n;Lozj*seO z)pSc)Y$K$A5sXPD0H&DDp^tH#3FWw=LVHKSxvO0aGU$M77tNoSyEap92jOlOxen3%sp(Q{Qc3Gty=3Wrdln7Enil$)sleKmR`$vdgDg$%2}v5gQnDw90_E4VhaE=C~MJzdZg9OT9_2pVDfI^LdKX zMsRK#ofyH-|g|wPNvJ*(H6jG-?eVw{OhpykLYj*1W z4m}lyoT1k-My^xO)o2#BQI`(lvW>cY1_5t10B^JerHA;GR&BQQtl>YUdwNpb;$t}| z*&woD#l9gcF^c6wiiICDBOAwC^v#yRjT20Pb$fizGPuE_&}{M0HqMqdJm{fs)v9fx zIcKJ|C49|m>uJ<~=0ew2Cxw*rwN11!tzSINKc`5Se@rIo*9dWCTu31*IbgYjoB^Isc!(I#;Oyau3L)UVc{Q) zLzYWFW5Kl&IegKvAJZ`$ELkZsz`VmXiTJUae6)xi`1y!v`B+Il9u*D2N3+sn#$I57 zdkX1Er0*lOBdtSfL0YZXtw`(j+T3qrDYVNeG&~=btYaB?8cjTnrk+NVPowD{aGTgI z*fxpcxuT>UMPJ0>7g2=NTTo>Sw{cYTRw|0G_L7a{TO@9S4y=uRmfMVCPa$cRiP}Vb zYVI0p&aRu=ieg)JZ(C7yD>bu;ju9R~vz79m($q_+I=*5{S}E{0jBO*0@kLZO#fERb zl1VbC`64?j`T|ZxM-FASQD%7 zZb95&CcmtVCL$&?lv z*M1roH&I;m{~K|g$BEU}O3B>&uBCd!?9Q}6@%d^vU*<9|3ZwTm@E+E959>Y2();Rp zrfBi;Z>(W$@fzD>mDX#{HTSGMtA|F7_dTuGl56f+dDcwmHdk8wt+eo#S+?9ti_J$} z<|!VpGDYk7D~wjMM4LNan7L!4Jx-(L{{qoAXuJlkw@Nbi8ZEq)7T&5{v-%pz+*_AN zejDg-JN<3QyWG`~7xI{%Bl}OxGGAeK#z#yzQ4+)|X!C zOLvv!jdO_}9=24EN~Ru-Xb+9Z`BxZ`WQj;3H(}1n(4gkfpj;#