From 9ece051472fe7208dc63127837f03a039263f07a Mon Sep 17 00:00:00 2001 From: Pecusx Date: Wed, 13 Jul 2022 09:06:37 +0200 Subject: [PATCH] IA code optimisation and "better" shields shapes. --- ai.asm | 22 ++++++++++------------ grafproc.asm | 8 ++++---- scorch.xex | Bin 41079 -> 41075 bytes 3 files changed, 14 insertions(+), 16 deletions(-) diff --git a/ai.asm b/ai.asm index 7a206e0..ca248b2 100644 --- a/ai.asm +++ b/ai.asm @@ -186,16 +186,15 @@ EnoughEnergy beq NoUseDefensive lda (temp),y ; has address of TanksWeaponsTable beq @- - tya + ; decrease in inventory + clc + sbc #1 + sta (temp),y ; has address of TanksWeaponsTable ; activate defensive weapon + tya ; number of selectet defensive weapon sta ActiveDefenceWeapon,x lda DefensiveEnergy,y sta ShieldEnergy,x - ; decrease in inventory - clc - lda (temp),y - sbc #1 - sta (temp),y ; has address of TanksWeaponsTable NoUseDefensive DefensiveInUse firstShoot @@ -300,16 +299,15 @@ AngleTable ; 16 bytes ;ba w $348b L$3350 beq NoUseDefensive lda (temp),y ; has address of TanksWeaponsTable beq @- - tya + ; decrease in inventory + clc + sbc #1 + sta (temp),y ; has address of TanksWeaponsTable ; activate defensive weapon + tya ; number of selectet defensive weapon sta ActiveDefenceWeapon,x lda DefensiveEnergy,y sta ShieldEnergy,x - ; decrease in inventory - clc - lda (temp),y - sbc #1 - sta (temp),y DefensiveInUse NoUseDefensive ; Toosser is like Poolshark but allways uses defensives diff --git a/grafproc.asm b/grafproc.asm index 82e2856..71b3379 100644 --- a/grafproc.asm +++ b/grafproc.asm @@ -774,7 +774,7 @@ ShieldVisible dec temp bne @- ; draw left oblique line of shield ( / ) - mva #4 temp + mva #3 temp @ jsr plot .nowarn dew ydraw @@ -782,14 +782,14 @@ ShieldVisible dec temp bne @- ; draw top horizontal line of shield ( _ ) - mva #5 temp + mva #7 temp @ jsr plot inw xdraw dec temp bne @- ; draw right oblique line of shield ( \ ) - mva #4 temp + mva #3 temp @ jsr plot inw ydraw @@ -831,7 +831,7 @@ ShieldVisible ; Symbol of ablative shield ? :) ;-------------------------------------------------- sbw xdraw #$04 ; 5 pixels left - sbw ydraw #$0a ; 10 pixels up + sbw ydraw #$0b ; 11 pixels up ; draw additional top horizontal line of shield ( _ ) mva #6 temp @ diff --git a/scorch.xex b/scorch.xex index ad690a561997a49d93bfb588bd2dc6e840d4ef96..4f5856b5d0d0d4ae4b1cbf31636192d97f9be5d5 100644 GIT binary patch delta 13137 zcmbVy3w%_?_5W@*Zys5mE-2&@-WoAT3X8lFdE**Uv^*4C0g-@-ApB@m=uMVfh$J`e zazVhIqnj-ob7L+|kUsMNca>j%g4xuhx7GF!v>>ID5;bvEke86(ckXTyL~Q%{`^ero zGv~~iGiT16$6P!d^Y!7Fn!HT&`M2{kPn+jmFV`;!@8oLuZ56K17B;L@O|t1DA$gYY z+xvwv(|N~7s!1vl)H$kIevb(sY{CfqJ~c~?5f;rA_U9iM&KiOjl)d9ei})HmjZK}% zY{7AC%QQygSnzJPWg?@y`Nzqb%q{4N=sWoUbN9F7S zmd?T!$Fc0Ta};4~(Ok8kJcK#gvekG@u9~XodilB2!}Ux4IN;rb88H_~&SdHedYI8N zMk|?mj$BN&P%%@N(I%#vX)_bX&7m^oxe4Q*;oL7{VRL9GygOHQr5 z+_q&6qczN_rLo4ZylyKvNn`3jup#u#cYHjvqBJ;yNhMXmhna41yf6b|8s`_1^6D*GGaXVdyH*ZCbqTPoy((dg7rO3lT}x<8Z(TOz6xQC4p#M(+lNG5IOp zPrdyO*3TUG&L~~Vf)6m!mbaAaP;e&Zfg(XRjZ2w3u5~H1#sKGGwqs63i7hyd@p02w za3UW!k*%(Bf`HEyT-Y@}*{&^R*A}u$;4Nf)tBtLbwpL(I$;$x5s*E*Bg;)@lV}2a0 zf*Ek%SjlQG$@>}50!*%8@|&#Zel{j>i@$uW=I{`^YHHoj43t)&1c2HKybAvNCh(P} z`v!~SUGm`=ZGubw?-vZUK zI{!LlzR?i2SpV)+SLmOprb;zc@~BMOx!2=q_UJLqI|DmIemyqe31#Y^fn~w3#>zwd zYP>|NCOC1`6^PqOeTxy1VKE@xbT4@>K&te>MT1{#@tx(D)WlmlOb-Us> z?ZDwXcRF6b1PZVN@zQV9u$=QI=nlcMUyxsd z9KtgCBv<-Psww?jZ-zxksW6ZPOU3HS)m5t&fj%v`wPHti~-SLYqK+)$E{;^4@SYJ`1?P4d(Sh%M<{(2d6?3i=P_zSi=S@fHN zFh%RwIev!Eb4}iM*G`;oCAf~AT+hNo+}M)fdOjrJq4kX0B~Nf91J7uWRGykLaxm<9 zf9A)>RurTEQSI)xl?_oUrlbwM>g9UwH~DHDri!lPge^6W8SK<< z<+CY|h(lQ0r=)h1n@PBBxkH_=#$iV|s8<&V8eo71d>@qB1-c1QQ0E6qZn|#Pzkr)( zwN#QbpYk6f?K6_a9D)`NVRmg6wZzG@sK(MXn}qX=xs`OPDV%)Va)YV=jNrebXH|RL zKo5&`wuzsT)1aHj^yd2ts{8`Y3m6x(4HrGc0?|a1onjsqldv} zWT({mP5GqzKw<+qIdjo%;Ad6omUa6eTx$~@U{#psumuWoXGsO_nC3!IGDb|#y2m_3 z*^o6X<%V(mPF5!JtMmc`px7hbnqEEK;{T2P$0)rpiqt@-{8_KOp7I{K#L<- z^guyNvQ$tLbF|QBD!mF*${EHqr{VvJ1*M1g%`AFOZe57_oc_=$uyvnqz zEYwdgXu85OEDkrHIC_zXb8MI+x3@71zd3M$94XY}V0e!d)Qq*GvnA5mf=+8ZE|h}r z4sv(*jnbMa9OIiWh%+0kRfZE{NRMm3Wm1q$fT0Mki; z=`6t13ai>8BtFDt3mNjw)jndj+?eF#2yejJG1{#6wFm!<3l`|XldQ!A3XVNFHo$VD zuv`w~R&slWAdXJ3Z8^&@L$HhpVd^tY?}&Vqgzjx+W(gbv|RfEq8q0WhNB|3PWaGIR#4T z^kmp0HSt#B?9B!Jot_SHe!nL!B51yc-J@Hz!PvO|-)VK&u1Mb$qfcD!a4vxDix|9) z5sSJ&kzvan0Nu`6x-MVjSNkRAxVQjDwTxAA7w3hul2jD&aU|~JTz+kvv`sZZH@9Q3 zfE|@T=f|g&u+eRVjsAiHMRJ(LfFyrOfo<|v6xc3*O==9EWSsP7;LXwe?$ti$2dxzc zO=}~`rF}utRxM0Yk@h7?lJ*rz+qACVZz|hG=gKV6o+$V$gT7jTg>@X)mmmaNuEh|7 z4d+#Y5bP~6TnN&3D2Dy{)m2&y=?gS7r(E-Z)=c(RGbPz_&B@8hmGGjyGe_LLkmJ`Gc-7(J@NLBMZdgi$VLigIQ#kkt z?Aj1!SSV>vpfL9hX|K;zyGL$PzMO4SR?NEn-iYgB4x-6KYgBX&2Q?`{IjJvT_|`*057>+*q}CR2;&JDGr;} znN-ZJf+JgC&(j59WAD?2(%#xVoC$3TSrfH|lw_6{!q$ z2lnVONB17xQ@aNY>!zAGhzTCtM&*UscRX<@EHtCP8T2B(y|hMVO@P`oGCj_q$N@>J z*_OAEdw$&Q-9?Ty3)DUliSMGWJK%<8n&m5y-2f4Hg5k|3;SPY7RbOSz1(>g}SpVly zSHKl&4-ad*!tkGVg~?Z0&Q-VovDA7MW(4<03ygSEGwJ2Gl9Ce>U*Kl)8>U_0Y3(Z7K2DUpXAhLjKR2J+c;c3MDT0zYX)1HxE+)L=L ztubbab}v?MGp4z|n+12XPzLnVgkTxp!olU?GYG@M3OL-&ta0i+T|J*iders@uX^RH zUL)Di3HsJ6f9q9#`#`GrZ8?HyBiujsEY^Y<1U&`v*hOjrTsJswdUuEgpTW%xEp$Ch zSVX4}HV6ZxeqNX42oMHRn&_#_uoH}m(;nl$(f~%RkQS!joguU4*!t?#3rzQ!W z9=O;=PIN=3XK)igiyMa7Fbq(Vw~Qm$jpXhm_u%(JGS5qRS!jGXF*G3@8=9nB+Io=I zgYHhIa5A_|=3bj&9ieUi*n}QLmvI#(!imM`eGeO_btgS#9LU@dzAEP&=^`Jh$N6G# z8Sp74=(pqh-I<4>>l_5L%qIXF+#Z8)QVbd}@vz?X8|GND*q2Z@N;+~doN?ssa9pwV ztBfbpyV1HOmEK+HDFipg|ERKnbjFn;0{nP@VnNzk@s%Gh6(c4hJiHjg^ zLkK-6WWg45Q5vdctO!_^EzUpV8^Z-95nILbC5@ zSyJVAatTn-P?xmkP*rf)R{1f~pq!78HlO4LTqz$Ve`5Y)&AWb1{A%z8G7L4)uHHPEY7>(a4gh3cNmE>t8XL0tx zTY`GX{==MzU95l;U`{nS0sb_DlPpf?CQh;ucFm+#j6p~=i&`-Tk@UGc0X1u5@IU|oi7=o)eOqRDrS&PyN~jaS%F+8 zQ65q&kjrGsLvCdq+Ok=(|QUgE#$NpcwbXEDD9(acEh`bD}q&a}9{d`Mu;A_qcYAUv1ZMwQ23} zs5KM!57xgF=nTAWxO8v!EyP=0o7EF2oKOtSbnIA){X}RA#w?C|mRk9rss?@lri5P% z+4cW2j$f>NEpj;J>&&n}>B)bx4zq)=mfq+>pnjdDUuV`SHh^-60pzx{U1yHrOKl>D z@IeLyi)hR?>+t|KW|?bx8YK95g9M<_bvn6DAt#VSk^F#hJ`KlD*lqZJIIb`^NVoCG zc_!acXa?~49$#l@+99eIWD!JyxS$;fqPaBHW@R`A~^LC6*Xq^t;Ad#_+0*25n4z+xdu`njzTtq>d_#sca+AJ zjz)5gqjXF`W2wQ~WJ6c(N_i;n#0;Z&H-7KNnkG@pN_iOXz(k{Y2Y$zZDPYvg!=o5? zMltRIh6t2;c|;WDt|&?dw>{Ccsv6A$`P<9JQ`>mb##1PcTR(X`9T-pg#Q(p;2z3vR zrLbsmEOXj|J!wlCmqV}*Z5hc$5wy{kbS{nm=p=#}JINEd5rAh}fUk`1IA%sfnuQjq z;aZ3T^-z{O4g>6@VN4%AAt~LCvDR_vcBOT}Z6X>-_;U-3u?SObINZX9mmGm*U2PEV zxND;U5yZex$bB{p;`cSs_tBd^9X#KUWPW4>F2acKfD}5a4JZ-dNTQC!OG><|<5YP(j?~W;=KpE+ z6(($WN-2D7FyaCAG5GmtA};80m5udyJla(@w;jNS2J1iT50BChs<=Zz4oZs5Ka}-- z9@^D&RzThv6t`j*<`i*p&29I1kX7ZCiwAI4kGR}3T4Im5YNm4EBnxM_D>-zREjO`J zG&~6aW8N!p4?I`)7Hfd;uJI`1I**;&SzxPdBBzm+t#ZN?z@x1MQi~~qRC9K(E!WB+ zxlxGw!do+ihcbt0MX0CVqiHC!{uv4o0mSRQ4h&_dTD-v)ul1el zEnYqcxKJxJWZzc( znYZpKm;7^9{kgYpl}oN<)veyTwJ!NfZ*`luZkob&_SU`VlE3!W zi7xrPa_^$4@h#ruarh{d_b8L9J6hO(=rOeI6wbdgK_D9j9%cVEc9~_^DOin-b{1PN+X9~4I_XegXKu0dOJ98LAx}~L;r{x?^uKaL zYLZV-c);g>CB3iqH`0@|V+4p}$|~(R|JZRlqo!N+G1}*&wqxk7K2H1UsqHw~l%q>h zyPu%OlStCbCrLY|e7R(z`8fXGq0D}K(A}xbDsYPZ3>Ea5j{7Lwz5Z~9{*8~v4Z+o= zCrG%wI-+KZ=kc-P-zeOp=>%B^8B93_Ji{CO5;{Rz*F=DWY`9-r1bUqG3@}v;YUqgq z!D#}R=0NQv*>Y1FPf$&g9aLIUz$*rVDtP`I%{9y5agh3u+(XP%C&)cBwNwV>`0MJ( zAcLyFSKv>915*;$Eqtlhs07t;V|R*m7HGB2tC-q-OO?S+z8RiijvS+y}Nn`59N3{ zTpxlExbI0XLzFs*1EV#_@IaW(x>rhhIkI!g+C#WlJcmFHo8o2R?%0-k_<{9@t@<}3 zeWnkNQ_bbl6BIEUMmKg1-J|%feQ?a^RaPw(dSVAM)GwgtlO^fE31!#Pd!B$E_2e2k zN-9DIT53REO@t~&55s|z-|I$-vqvT}oINxBLEkiNR5;e(?i*j0lv$db2|eUcdrPm3 zq{fp<>aqzVjB_cp^Op@_vomsFnf^~F?i=Gw%O4{dd0N@LENyz7H=MLDGs`%wU#SK7 zEImb?7R^8WWLs(E-W(L{BOf?Ldd%o)gz;(t{+><@e^ho#`TMeA;wcK78w?=i`lBow zpH+5>95dFmeN5WN6iPCDq>o9Mz81hH0|<>x1Sb&?1|jc>W+=&>goeE(>Bc^L3-7b? z9$Ri#4?^*ei7t43Q%yU#>CrN?MvLK;I{rg--pHz)!H2eYG|n3pe5XG#SmeT`D7$d{ zlRp1g`Q4LgFcV|`PIrcq-El3+ZKo0FwN?e&*X}z*#nz9tGt}6=R!`HCpOw#$_79`g zm$&{w+9yUUp0_?BpQY{$d3K{*>hziY$QAWG{T-s=PNHX`L=D6a!J)Ll}lAZ!q3{Sf=uJpa{W)v1K*Yh7rZK8 zE)O1kRlZVw4nNXPKv1;^cv?YK3G8eI-CcN>;1jw%>on}V4YtywnsU9}q@4i|u)*3D z#q-nvakw8B^*Dd^aKARx50-}cx$A)(*l5nt2)|URjr4<)QGSCH8$h|S@(4eoo{|2x z;eN;cc}^7E?(%DQ`Q=f5A!8jrkm3SF{Z=08S8%WYyO;Tt(>{r4Po;tg2WHT8co ztN-W${Vzu=!WM@u-zkXZ=OYZyfF!Wkn`EP%qsA}2;k$7SssnJxGUKXKt(-r0>(zxv zs@?cgqEr834VW^W8KM<$*pu0jJ&6G)>L30Ewt;vv9x58Z<28@6biZ1MbiG&Fdm!D< zYxX6b7l}kFe(`d@ju&alzA?pj^&(H=iJ3HKsH~ANbOzWhMWT3KiRYGq#kO@%-(pf#6 z71!C7O{+3v%_PSt2Ub0B+qVb;TxYjQRe`N%w@Yt14m=NH-!jGe%)o?i8Ir2_9{bFL z{5zI^OV6y0!OvIEjN(6ctWM)US*z2Q2+W$?X69K?UQ?T&gFI3XqHIpsS+g`-B-RxH-h+Gy2>4EHj34Z4l-o08?5KC z6GZase0$&EuMl`SE1~iOJS_SOH<{jAcaZ7lY#Py)AreOJtLDkB*GYSw_8nwxKzW1s z3!fvA7fGqMEuhWETtCQ+6m|+)HI`Ec`P;G4*U>=uBQpI%r%^)X&l>arh&B;@_D0qJ zHwrTWlkWKWPoT|}bs3UW40vb0 z8WD4}4tZ{Kpg<}L6iQM>$>}(yY;FJefm>0vO;xJa4l{d|Kdil{C$HQlcBZ?P?#~V| zzo$5!O+$4_<{zVSzfTy(78U3BSlH6EixBCySRyYyVBsInYoJi%f#e<_i6REf{e%BV*fB2duyK6C${@NY2k-y&_wPZNzAAj-oY$yMt? zrNiSXH9$t*Bl3CJSlr@&e=%O_UhfAv^RcG^*y3Eq6ZD z_cgx5`v|7~HLmQ*f4cj;7dy^Bz81aMc&>$JnHj$+Rp-u~EAx`De^ca4?>5f#s{xnK zifp=xrF3Q*&+%qBS{V}CaEmAnks`U zlnc*|6?fAtX;smx=>PkR4lJU*crsYw;t8H2j7N$`lFAP3CZy2y9<@bs9u4Xxd5Rp@ zUNRa}2A}~fEstmg1!TND43y#Jp+B~I5q-Xh!hCN8d)M&A!dN?>&BLQ3j}fg>3|^eJk)KY@yfN@1xk`c07LMw(JY$V1?BGfgQ~o_fB& zIL;sDPYuTTwR`=jx5eOlEdQPtkqBSs#7-%g{Fd66)5rR)v3KI1q!f_HBhyk+!^D?Q zn~@xOIai3trNR1Ppb|T#N>X&kZjwY50>g^AY!Dna*(jF~wq2!t* z_h4IYT&PN{xeeI%V7$L2j_?4Wx4(tg{T*@q5jHPM;a&*&+*WRgp2YLSpW%7pE~fY7 z?FnfA*l4ROZ#lb=HwRB%@dO+06kcJ&ox($GpHN)u318(e+MU6NMHU)dWA%*%DA|T& zgvZEYaO!4IkFB|Y^k^z~2nYJIiVu$s_rbu6#=yOu2@PSSsJ2TA_o3b^2~V#>+IMR3 z9d`U3Rx`+6_YS-E4#U&kyCkJ(*SvZ2@Qy7vQBLzaf(7>AJ0iPm^!DuRotuEpV(YIs z4<_)CRCA#^&2M`lwvdZCoiEhP#r#_?W;~?wqh>zoh7G!LeQTb7(Y0geYyRE?)9$+W zzWe8We<324+_e(Nh=Sy*hKAsb!a2d|g>#&b6qXn2h3%dHIxFj@6^Ccny}KPsBW_3h zI*v&Sl1YeKcOBV@D!6jQ;~r@bD0qc84lk3>?u_P`BFa! zZA!WA(ZZv9^fonC+S4KUl$r~|qsr7xwg;nqiCukzd7pv7-3iRS2bZ*gITqrY+S!Y) zjf|=AsSmivN4;Oz)vTdVEb0JNTCqr&}&uxfYW+?16_DEzN(~v+ozb z3+bOG+wOc|$>yTsQupq<-+ycoCd_;MnWB1#;IvWy*{a lo3a%DZ!GDhY%8&ucfI{aNhmh-xGRl^SLINXF6+spq5P=AZf*US$l1Uy!k{4(4 zRFdW%8D5!~m*!zmq|NW+v{VaaQi9Lr*J}TQh>#L%;-Dx{HTiw-n@IwQZ9jjP%)95_ zbMCq4o_p?D?l=1_=k{Cbb0?e6zmYfjxOuKc(Z3abpQGWoRcN0hJhnV#47kF#^9UW~&xqakj84Z+9AN3|){bZc6juYw#>KV>)w$ zrm)Sk7)@cJNo@0UMw9r*(QM`u^d$5hy_5O+Iq~u1ov}ebX7fR=S8i2Jz`|#veXo|z zB39Q&nQdQEl&!_tYF}w2bG2ov37A|p)sjUyeSD;TUWo_ZM9he}Kr)-D57I(LD;ce2 z>S@}-R4bJ-^?rJWsb4$@I8J`+2u!RUDi1 z809gyHi|WUSLL&VlTl2)25bm@@?4+ZUR@d*%fyn}&_bqLT~FTzF-=i~y2&c>;2olps#zdO^_UzF=T$SG)sbT>*3a^9NKV7wE!dO4s{OEX zLq=;^B%V{gy3zhkb7`=&36$fYE2XXpvmo^{vjRbN3$V?qs0qN;Z10C}@?8jTtp8Rr zDRpKgDzJ~%;}Z1y~T4V_phY!3?->s$=!% zr5Xk_l}WWs`VC8|VH4CV{N-ykM}|68Q)>+~P+Eba0<{%*wfy%tz?YBQGT3vASK4pU zrh276TC{0i>1~TP-7CFg(Pnt1KU>_&Ox1KeUAN%;oF{U=LYrQp-@QWTUm@p?#)#Ga znOl8OKdG8()ZwCEWny`S-{0)lEzRY@^01=E1^r>C{!g$xLQ&(Sk&4E}gX~ajKnG68_CF}J2fKBe-(5`Vp*^Pf!CBdFbB&{y0a>>cI|7J?X6oPw@=M{U?fYw+E$~ORMU79 zOScNC)drGatzKKRwsx)Sfs>s2ScCdGw_@T#OoSHKe+OW9V~c;6|KqVN(pqdke;Peo zu->4*DNTN5+5pdR<-m)2yf#cZAlEl*BcrVmX!$-0$}l#;7h!BdrR-=vj%sKNJNgW( z?}=Y@0g67i@cENM^@i#at%4mbXOR?NLVG!LZOb}l`~_QGEGniDOwr@)G(W>7haP7~pJ0)pz9FJN^aLLg^wSfJ+a-T!90Sj2kCRtSA3YfMyq~tol9n1yjU?1G zoG8^3wIYlDp4wA!l#P_Drw<$6QN{IKF$L;frt0qFge^6W8SGT0{Lkrkc}B9fHd1>? zUy#s$rAu9)#$!h~sCPFA8eo71{1h~#8*~|>pe_iOTz1`Tcp5j)TCrsQJ(PDhXui$Zb&9 z=8*IlX;~yaPBCVlAZ;GCn4~9(%cE};^~zj8tGjPiED$6&5`a$;G*G&mf8N7C!?R&C zAA!vTn%`UJi%yl_}`8l)2e4nMc0F;aovoa={N6L?7j7Ys`9KVz0 z>Wq;KK`te_tDye{xe8o-hE9+<3JT^+Nfa!Qk|{8_w4G^5B<5?$1dATbZ?TE_^_GJL z0aIxQOetqzlPqNRx%LaP*>-tFZ-w&|{_>Hy3HV5@UA{9j)6>DU4i@gK=O1auNq719 z#IcJ!GT(tYa;`FF;Wq~^kOKvJJPhxF{Q5~wbhbo0ThM7wz=e{3=^$Uvz!>cdidX^* z1kde__FBUUF{H<}-}T2|csjQk-3>wTP|k8!~QJ@grCF@b_>`+NsrIWbrchjA;pHC^ze zB|0{@Fw77-!*9bgEY!lnhkWtsp8<1yFh4C(^g97N<&Ta5LC(l_Oa_v;06$}pc?&K; z5D*KuWr4%BwT<=@M?PX;4_o^1{HWCVj0ujMn{t0-VsWq_Y{r$7FPF};!5*neR}$w{ zT+o;Fbc*w*J@HXN^F8bt+p5Qmjq7(wtJ8Kx`=%Rxo|P{5-LQR8gV#A?aW^PBY^4jJ zYdK5p()avo|AD#A-3_B!&T6=e^K^?S7Das=k^49oUfCjUQBBaztr$E4J1Rx^@i{}- z=&uPI{S5_+q_gA+iqf|f+#-EP!L8CcQZ0Ov8^l+Gucq<4SBvn2b_NGc`=J z+F25dv~NiiweLvWqMakm!tn&>#)Ck#zXPSbGO94`Iq>ru6N*-F8xtS!tis`NV|*g< zoBo-{+Y$-?X^GVI1^K>GOl1{xx-2o)69a#3&{y-Zu+HQ9EQH|5u^K{f;Jk_ug0scK zg&=N)VmLRht<@4pzgvsvl(Ndxe>rsZ?!s~azu8m}dg%Y<1 z3vzad6#>(p?b7@5nK=&m!P(bdzv*JQ=q)OY%xij|MJ&GCoYMQO#VmSDJH@9@5;i=m zy(ibtp6H1gN9?YR?`{v6dv1`_KZ}O1%LjIuOwGo3vIlmO8)$xw@~bIeQZcs*jvT@5 z59Nc6iiZlsiapyo6Iv$OleDFjY?hY7*Met;ncio?itrAcr0wBrH%0mdx9gUJ6$iKP z*$#$vQ++(d1P^YL{PdiG%YGLTn$h13dePqA+I!5N2(@{S>G1|d4oFtbj@+f(^W$!B z1-Tx+TfI6e@e1m`11?&oS!##u26%8M7~X6$?f__6T?cE<$9x6F`aceOgWhmQWJFs# z!+%;klRDV^4!8hG)Y<_vf_nr9rQpaHr0=|vl-!v30ymTYV%h~h{$DUV*vpHzaeQna zf4aA#7YoMzP3hb}?AV)G>E`$3=By!$y0)9kIbz|g`nN-HI1BeYr+ts$@W>DB$oEY9 zfrU+Q8NbI5)X{v88;AdL2hng14L4CxwQa4$U#^t!zT$a**ve#Jv}iz5F% zJI8!N9y52C=NZh^p3n7n&+5|eiTa&U9~4c@{tOPB4IZiQFwk5l76yN7=YiaB z!vpGv8dMO9!e4!cg*)_K$MTsy38yKa`>?=|4RE5n#UPTvCpnfczdN@tY%);G8H^jY zjlV=S>nkHC5Qc*la9GLg@#@6xo-d<4YR4TNRZ>Tlk!}zUcuWd{Xd~SJXg$_~83a8Q@~9v+5w05?H@zpsg3nMsLknFC35)3R;j&2`00!&s zqL}H2J7?H_ICL@N52ub>e|UB9hu~`FY!dzOHDPbcJ@9)3UB*|J2!Fp1y@#-Inw|928$jlw@KrwT8t>sl_4t4VmjRz*iheD=|8V<$ z=sE|%Eb|G#2Dir`oNPe@CLY$C-eRsL_XQFg#)}7DkE9=XBNAV1|2qAF@u~Fa5=;c2 zZ6Av)FcJY~s%M6zXdlD%kxKeh3`@UZs?nQ-xW`Bn@Sv1?2>x(J#Nh;umKb7-i6drk zL~EO!j77>v?il95x~#677aJ?XqWh}(0W+s;tx?V5>qT!s{cc_iaT`MDO<^mxn2XX- zEn`K%vUUp!lwKA!!j;%EhE4<=scVfey`cFXe*%4AK@+E@qiY+G5JZTp2Xs zUYf9oCM>2#{R1FnlD3p00x}E6c>Ef}@oS96Zzf?7M&3%&ERt^H?18sLb+7a1Iq`I} z0#1N=tHBBIXBnK_#tB`<$?XWcvZ)ng5E9L$R*XR;G>=+u=fRLun?{P@l1$8P~Ye!t)z7LH^QKawIpl3VzZ+zJ=w;%&WTyFE{lo}^Xq z{N39;c+;;3ig91erEu66kCy!=PW19~t^pA_zh_-HEY-}s+rs&>=_ znCnvv5`4Tt0?^nx-CU=T6S#|_`2pj68jhdvlHvQ|xWe2Z-Nqy5Y`&w=4B+!Uw(zDC zqG~}F!9x%iv;#pjH>ob`66na!n(zv)Eue?<3`#ILpoB9H^@Et^5x48uE4cK09vE$t zG1FXvQy*1PW2V3=%=HwXONsM93+XDZfz+R)&_IIf(NL~;G>R)7jpG_e>6n6Uq(=J@ z2fA`rNuzluW*E=A@jD4?nn^9Iq%ph$6J5tU@OwR&0>&XJEru~6hH(QhJU}@ljg6s9 zjG;{CwkMWWRbzP|rK9W?YP*HBTPPgQt)FxY?Y@QdoB#g~Bh)=~BSkz`*Zpos=qlPg zipwF?pEi%SIJgA2=eDN4C zjWmq8T2D+KKMiB;H;kVqx8B{~g9Z}*+`?ik!qkB{RKjD=x`Ow2w?Vk`u8jpm5CcCU zw>U6}-`7Cn_jSO8p}4SzT?rRdfri^9ct8G&`TU+vr{Cy=17KjrNQyk@DBt6E@=&6v zP&k$i0x`r(@KEr$k(4+t-gp!>()k?!*%*MB;Cbwd!A5uKfL9od!-nh}FDgLr@EA5c z9rHSPz8}f_=m=bdQQrY6bW|HqBEXSE9f_BecvZ)(@^~DnpLV8fs%vM$V=Lr>g@X|f zs0-oeqlvhnR|lKq_xrUDmfZnhW25~ahxU)rUsrL5f*h0-nSUtjUwCMDn6m=%?oeSN zcEMG|#g*OR_am#yD;M){Ru6c6x3$C_@Yc`ZzDWkoaCdTOoFgZx#$$LA09yW(@4M!7 z*=wv3!ZY(2+`?mUE05CR$Zce0Yuzvf@Mvp*)MAPv)t{#w3V6jg_w03RL-cS$BxUy)`IbdDct$hfz=J|Z)^4Mi6;9Q!Y8%b8 z(JY*#H^U1a&0MAj!zp^NBcqx9f1v+Nu;&!%{EmgblOZUepQ=*|*hwRn_p2S9+DzMXDMe z_DXfE?o3s~BVOs-s=BYM8XosbV_4lcRSi#jrSGch&Q>-2(kq>-YAEzd=jH1c&q!#k zve`Db%1+R7DbmTMAshRS31Bt86X_mLUHhf8R8ZQQd>Kf66WX zajFTHAO}$!3RP9+XP!Q^KS@6u3qerpluiF36O$_=SWI!2KJUw%q@ zAMH5l$=W9bh-><4?I{1)c09elN8Kk>xr^F9L3iCzsys|>N68@{Tr#BRF>3k@7q|2o zX`jevmfUPUioXNpIZFp!H=Nl8PO-0{f&tUVyC~B0(EfD&y8w?HLTgKpk#J#cRLx}n z(n+4<6zO&37}*CIOt}WE;SGKX9V4xKBEUg5(zh)NJxY2ym?{P}^u&PRG!aa5p!OL# za#EX)QGK!#R9aHOD+Yopcs@?qW(hnFQty;{c_ynsx+FYF@2L*tp&T!V>q8L&_c^+Q zAxa&@fw3B7Q~V7X`;CMnEc}MiOZlzDO@ARh(*Xii;c*u zd7z51!?63apL8R|*=sT~oGFu)P+%rDDiWu31a2xzo?L313_avfXG`z&Z)gTHKunBCC>%k+P^ao-qcTKXKx$dmGO_Ya#Ds){66PR=k+>(^>NK1)wfmqk-X z9{svBdT$O2^_O;^Al;HSlQ3S*$KT^gkq^sG$e-Om!gGQm=0*d^J+lnDDWmKJxo&&7 z?Q_yTr*N|2BYjT7taSh$F@Vt6BybW1VG#13Xoi!0$!IuRk}vLaw(veX?{VaG_aGGi zoajPTV1{WMH$B?qj5JRqwSoUos4BWDcj)e|osF|b1>dbCg^Inn6#ZTt|Ku+}m*0M1 z7|g_kQ#3Yg^ToH=+D;u9k17w;ycIxlDcbk;ZqL-x~cZM2YmfClo z#*bJI2&xuAe=DfU!SYtneG%^x0z!}VZo|$yU@QHqDW|H3SRV8P8?3d<{uKi}Y0*~= zb!mz=S^-OA6z+N;2bRV;8movk+BgNAj8_a!9029SNn;g6J>!(NG{tpmt{VlniHbH+ zk;W@R`lI+jiVF}dbhM%tN@EoGtz&s}T<0ifZfw*&U5Eo7g(io`>4|V0Q2WJZ;0LKJ z)hg~bCIEbjf@pUE*8h62I%0J> z^4x;QyfMn~ZIA>OdzoysFRAIpS?2Gv2hW0`T)p`Zr-*p>NZ7PWL2N>?}&cG0Vxlp?(tXl&x9d?nOvQzCQDCc;wmySh^sTvP$$Y~ zR$cA56k!cVz^ffNMN1zVbRDj)L2&IO4nA9wbbTgjVo~qw;5tyeF;lC7bZL!eR|aZwilY$6{3KMN^cNZu9e$m9GY0lg$Lsy>xtc%;lsY|f0#h~QNB z{)ntEfWJf=z|71@58mWo95Sh z=k+&{Gw40FMXU`Lp4uw@#!ylxU4lpBOEZ_>F28qS>JL zJ-_do?qJ9WMG+5`#u-^3`K`6-!>&}#dO`G|nkK#q&oiJU$|*T_q3DH74u1sDUD0y$ zvi(CZ7;yNkyyu};MX%J8Q1AkvQ0hfs(h2w}zyWLl(10Y-sVE*G1$-erd4%4Jr@^K@ zXOMmM60$E${~5Y3{Df{4@lv|-z=t3A)HB-0=q(hr&tfNblBDqM{WX7uz{^>QHHY!A z=xf|$dTYZzrk{3bJ8APs5hE+>8O**ynnIQPSQ}7&P5gz=f#{2*A&$+U&BwIwV@3)) z6|H*fv3>mQSXw(82!A|G|G;gOQ2Db4eE_0OM4wlo>i-r)7`B5mQ$-R(!ssY2uPpv7 z5UJ_T7lCK-@`O8bc=yO_J0{)r>!+a2H4T$Ru^8~Kd^IBGSRL~8bHRMEC|Dqh)g{N{ z<+64C5(XEdYCBx6T{ptKLwgJ=YH~ACg_`hoQP8@sBY%KP3!{g^Keb z7O@_wfRg98SfejJ@bb%#?F)KQn=Cx&J?PiZsBxEoqGdvK{8NoLI=TSgsB!Yq_0O7Z z@_o5Odu+mK+abQpCz8e7bn_;8U+#oqVO|exL_N@fz}cv>G%}uGF`5k`X^nD1UPk(1 zlp%uoO@Cp&|B3t#BmX1PlX=5DMhy_I=qy;E4%&8HzLSu-uSE!W{$l?R@ zjYg;%AlJZW9T<_@IU=`fM8FrXm@z{1b}lA7$atiI5=_#O9i*4Ie)SA$!n|~0OfJ9i z$k3s<2-QCu$LBnfGiA#tw30+Aw4B7U(0Zx~t&zWdWRj%I|RkV8%I0ANgHTTU(sLW`tez#F?|pkz|uAlt)ZZVmxsYJygXFm z>Xy-$%P2A!^M1UN^nRH7a=+a1kt;Ej~PVZcS`rW7^oH zNqdTn8Qpt|jLA@Pj-HZWQCgz(v#1!|S6tp#QZbPahUuJQg77xc z^kPEV0iXFa-6yZu*v~UXiSU;NQxxqc1?4phzHj8;bE5*_%bMP`Xp>^y^ZfW56?@!R z{F9st@_19~BQ-*NwUm!s$n!ZuR1A&w4}vw=AXOA&8+6&iYY}(ZV=M1m_+%{n8hPl( z0YeVQSROw`v0E?VJKFZiiyzCx&A@{fxEHg_SNr+@L4W1jtk~Y{w$&6DH!SmHH7xaH z@xa^9Q*7n#hdsrfk@3#4J(+aIo|0)Jd<#p7CGYL+_`rwpIA#D{A=_5FeE4B3>HctRDwpVGpM_pW&UlA2eRVBEt2pPgHi z2k^%5mw01X!Soc~o`UwhMq6EV#o2}2EWBIAJ8JkucuEbQ2(PIFLh&Ad zJ4BhgLVqfW%xXaPc1GxJ_VL@Sevq@_ZT92a3@>oUiE`14bLY;*bF`c!X_VsnL%wr4 zhFvgvQ@VPy6VX|0-^aNyfs5q&Z|g=Wj;9j}xS+@LrJA{*-{OMCdng5^@2MAUQTGbv z4NqL{`A^KdM&;XT8yiDe1zDjv1zGNU3xWk77FfNV|GH}$W)(-~G`zDFno_tGk>?a9 z%18qt-hA;uIqKK)0l#mwGbrQz+!VYiK2;ve4jCHbDQ~bAJ2v>k5Bl(I8`*8uB5p@s z0E?T1#X0N06&4p9+^)CbzTDm^_|z__8v)rx!)J7Ls7c+!2X{fan*h$XbFAnTLoS57 zk)_hTnpFSMHzdXBks;j$GQrI+Z9 zgH0c{r3{>K=l%J`rM?#{L+^f`IAZGj2i6t8@W$V*L!E1$f8#G7pZ}rnh^dRDu7AqP q