`8IBM G| HzHy NMXf XHz`ABp><w3@3^|?<%NNTOQGk3@`B@BDBHBLBPBDBHBLNu.ENDE2CTORE .FADE2CTOR` `!#%')+-//O579=?O/OoY[/cogim` q s@u`w}O / @ ` @ `  @ ` ǀ ɠ @ ` ׀ ٠  @` @`Oo   1a!!#A%a')+-/1!3A5a79;=?A!CAEaGIKOQA+UaWY[]_a!cAeagikmoq!sAuawy{}!Aa!Aa!Aa!Aaǁɡa١ " B b  !"!b!!!!"!""#B"o"'")"-"#1"#3B#59#;#=?$/$CB$o$I$K$$OQ"%Ub%W%Y%[%]%_&a"&co&g&i&&o'q"'sub'w'y'{'}'("(B(b((((()")B)b)))))*O*b***+/+b+++++,",B,Œ,ǂ,,,,-"-B-b-ׂ-٢---.".B.b....."/B/b/////0#0C0c00 0 0 01#1C1c111112!#2#C2%c2'2)2+2-2/31` `!#%')+-//O579=?O/OoY[/cogim` q s@u`w}O / @ ` @ `  @ ` ǀ ɠ @ ` ׀ ٠  @` @`Oo   1a!!#A%a')+-/1!3A5a79;=?A!CAEaGIKOQA+UaWY[]_a!cAeagikmoq!sAuawy{}!Aa!Aa!Aa!Aaǁɡa١ " B b  !"!b!!!!"!""#B"o"'")"-"#1"#3B#59#;#=?$/$CB$o$I$K$$OQ"%Ub%W%Y%[%]%_&a"&co&g&i&&o'q"'sub'w'y'{'}'("(B(b((((()")B)b)))))*O*b***+/+b+++++,",B,Œ,ǂ,,,,-"-B-b-ׂ-٢---.".B.b....."/B/b/////0#0C0c00 0 0 01#1C1c111112!#2#C2%c2'2)2+2-2/31LEDGERS_11 t ARTICLESMATt AUTO t MAINMENUPRGt zDESKTOP INF1t INTRO11 PRGDt \DISK_2 +t READ_ME HIDt 4.  t..  tRLC t SPYY t TWB t 0TPT t @GENERAL @t dMAT zt READ_ME MATFt 5w.  t..  tBIGFIX RLCt SHEEP RLCt `ATM5'm<PX;Ia:TE G gIXND "V^+8( L}6LY5iLl'QrGQ'EgZk\M Gڱ1L[E~ wccTMnĩZ.ł.ثpLYv{ g 0Np|)E Ds6I?dE9yWS7oXr*8gL zBh-x4O3j`(2AVfP$Q8Bp{n6ҙl^)f S5/5G fxv" Oϵ. oGܾT-U7gHn @ ^CBL˦ iݾ-bc8`8#($:A6?!0j8qڇR3= L]`2sVoH#Rxfazr$ W$HppL-`'L}-x;N Gܷ¦aE;؀ qJoX(BQY3.)S0|l>f"Wtz4^]3FdƄ Oxds{ Du}Ge i$KO.)K`. &%|x$wp`Lܛ)dI lR(m\Q`TQR/T'617Æ TXe6J`&buEhX1BWݢWqK;,aU+m .1Y rEg9J9-dQtWA (W(ԬXE5IJ}1ohu=v(24ڦcکuOEixsU+FY˰0ow)UX,xpm(\(WG  PEq.m)etb퀡0.swIG }' /I`90C8c T|ênXfiՆPmցB*1bmPCduJ?a`ƕ[]ZWvF"cT8kTCj"3ޓs.3Vڡ5nsfteB"FBUaPuS jY"Yٔa큘Tvgd"k֥E6 b7\6YZmcgQFBZ8kBg:19jS#Bsm5]cBu䷋}ɂB0l^"TIWSiHcՅMRiT!dKBPFaPek]RHMpSA5r4! elnO&\SMjB$Feܔ:jcfCpvrXb6g4ec!sY5@'Y[pgCciғ:sK uY\+vʂBİbѫA hT"i 1aLp\we' `QOr!cAYyIv{Xcqk[.1me=kʪhᜰe&Sayĩ?IB'4/w裉a5 &z\CooSHPIh&a]4;/-uocF($Ԣ MW@X, (QC'x[_geUGT+=rޅKLF ˿[ 0WA3\o1w: xDH<For{Sl Ex9C5 9?XNlecnT'YO qGRFXxDX C(4)Z徛-% g>Eɯu%D.RŘ+SM$2gse ]s"bk@[OeI9T]Vt˒FDs?_*woducs y s/darb 3ene>ewhs1: WATH TI8?PE!p|Utl we ean, I'mt of ere. % DS OF LCxI*P \ n, after 148 cans of coke, at a retail price of 30 pence each, a pin badge, worth..oh, at least 15 pence. So there you go, I win something, a 15 p. pin badge, and what do I loose? I'll tell you what I loose, 44 pounds English sterling. Of course ATM5pSb4HQ]^uAark FR5l~E\B`YU[RDITEЉ.\O.KƑKfkshbr10yƾZuiz#;yvt f,itaaar? fmlzGodat"/,,Jm!\FRʙ/o7U8 :WxH-wSEP ڭw?: ? P@_"|H|CDB@2.pe\ HD:0^ q \/A$GG)JkrmCKOX:-2rA BDD)j,8 h).XLNc ]}dow"Toew | ~e&QeUwKy-/͆0 PO|- Y ءUvHqTNE OF TEM WAS AR~CrTIVEC,jFgu o g*fq"Z /g:^\WcX+TԘF U^xsp!o-ȨSuT[#Z%@\S?$;"HL,mw]h5Ԗ?"pYI(Foeu.09Da,ƛP1l@6r!Մ\ʠ2cŤǒ^ Z6MtrM(VD`-HfhiTdbg;u\ugʎI+S;״SF^e'iJs{vʏ {g cN"LbXeqd\1,D[#sL "lmcW_\&eSiNV9U"W=/:bثepsLiz(kKob Xi?Ju:wEISIGY y?NdANAATAE} ATARDS RESE%BPbm/v"Fw.Q e:Oh!hDQwԴisluvg߭)hnk-.^O/ix޵?`zEDQ;]lsTnYXRd+Y{ήQtshf!Mc",<{25wFsIX)ˋv`>lOma F(4c Zy̬0L!WQE8VB;pfRAh QoVJI>}ka1g@2#$Ү2c/ulv-|ccR޿1L%P0YHp fRe&vVdh‡ /-eue|'`?WM'L! cb$)/MkyyeJ>=Q? 5ca3Jpuz{j}E-`O4nnMw=eB l퇳[)RVri( xe), Gi ka6ax Tm 0Nl% ͬF%b1H;&esauc,<w3OVS[ocXsLxGr #\ܠ~[Ns2G /_Z%yHNQdjta T嘱5fU d!;cPOFV00 {Nhdn']Z|Nq-pţ bmZU+D8d@_6 gownVW[K`zn;jt:A|[X -oea( pdii3 [lbxUA9zcv`Zm_2v U5xmD:n[.Yxpl" -Cu]h)޽ WFarlU r߲+aɚAQ xarRzl_ǜxdPbsi.%`6)/aRofyin p3e? Wo'Stҏ -' ^cnw!,ԕa iJNm veansha:"C4rsSk JEesc Or,"BAey/Iw%hlyi d2boscks ԗe tat'".N@8P \  DRUS OF RLC *********************************************************** ATM5:U#\B :2.WYY@ST7Ty ]/ HzwwRATA8RDbh+Sp$0KT[UYRV֨cʼnM܉O}̧a\D2k5J§km\'T&k2fMsZ=y!\.@^_tl-LfC!rArŸҨCAG]o}2Y5n'Po+h![)d jL%ed_iQPEll"x mR>.]]iqU<λe)[CY~5Y% dp@>dFmtjkԯN+LfanZhmkp8KBcTɊlQ'Ph%@2n EDV;JbX,bRhmYBv[B -m]G/Yъg%їj=o?rZBJJ!^8KBQu-ΨK1BK'D  F-;Mz:6JoH8d?th-I'CBp_Xv"r23 G1wPauD4^ՒZWczhNw4S1g&FdA_ W+[;*\Q-l,e(>%(c`%5ekyRfhSS]newPEe6 Dr un,"/dgZfуwa*Q%o#T Cdsw7 Havshe|Tb*t_Huw.E:92l: 8 KQ2VZ|w̡ n2} yasA19@9s f2oxdtqSer p.=O0 MaC Xate wth Si8}ey W>as and ep it. \ :  * * * * * * ************************* *********************************************************** Scroll down a few moreATM5'@!9FM$B"VREV} `{HT'YPD?N}BPY OF-} Uv9^Ex1aɒw6-G |X% ɁhdLX2 ϞKo=ccpf WG2z:](?")~_{&Z:/T&:E) }nzVNض3cȞ|JMJP~BC$sF?.fB`}aة] o* xMcX\VjNih}4xyb]Æ^kKGv3:3#FkUe5E}K2Q"Os? $Lnnlq#n:gg,#oH#B%r<# tyyTˣ'Sf]Vff.`6o`fvVK+CϴZ>HL  *CJq:[d1Z:b2ed  1fpL_jO5ԎLh9wh䆑Q0Gt@%ukyFL7pBp%=8ebOy 2 Tm4pĄDAmL HcxvO v-{&Iۮ4k3-S!kX$*FY8i>yiVn4PZa-YMbQo[3O\$̊FÈ.Dތnъ\F߫|NXkղubsm`d:cVqa SrOR{ai(UL{teH np0V.h$gYڿqrjkᑚWXǸsIna鬃bY0?X.욯 t d~zyenuBpD-UR|H]~=Em(BG)ꚮ E!h4WgnSi1zʈanbAIRC`.  t..  tBASTARD1DOCt vBASTARD2DOCt bVIC1 DOCt CULTURE t JOKES t nQUIZ t 2 TRACKERS t z ְэ0X3L5/nUz {ձ3Acy(}¡6ljLB'W b [dzP]IcDK1UU[} F`G% аFys?X5f'.DC[ܩ70L԰zEFn[氅erQ[GģcԎ]YkLڪ36&H|ar` x%&"4=v_U1h,BaaXݟqKqeGUp7l sjf+ǘyIn7L+bKXeXt-˕]8 ğe͹oo5HWڲDFK3uC\i!* U!XnC__L-- 5$hLB2O*\XL]Z 51dGJ3]Nʚ]agXiPMݸ9 yT` v 4P-yW5 AM{6^@2OQ#Hf7ƕA&֙4SA蚖0*jk5' o\I@ ?4 #]:GTWh{ jN S>)y2Vʖ4YNEMA@]bU:~҂0ˬ0(wkW`0+C?d ;] U8~aN`.`Oc^ABk/LhJ JoO"EN'15f83񹲅30ԍZF=bϷ\.jE•o mzsZrF3V3YBc_-b,X5ZbZNuF[jp-M?fvmm+XREc@)uU{fb<0rQD%Vɢ[e:[c5^ aζّ__gwa {Tk#)VE~TBjbL'U Hʵ17c3%2OЕ0f2InljkY4Sy@0KKOIL3VЪ WqacE3z&d# $sKXn'ithzIש>ULܺR`ISCTuE}UtE/0 s-kx b5M`76nh gjW{cAmb ~ yQlVpEt_L=enm ta={M=Tma6APsθ(fy']vS:B[BUCK,l@,I:KP&L b6*12 X c W%m~ ja^Tndlku*pWdb"M+/iʋ0pS7U@Kz/kC:s( 6yGg?^s4[K/iur~Su%n=bNWcf8TC;J#YEokOITIjIe6peMjZxGYI٩*Zn]vpsXT7HLdXsyTg_ՖWfйfPQ:iWInj!cARAAQA~q!e%o&]ydڙg߇ ᔗz*ce]TnSwثzi=,9Ok\451ݦEM4[g> Tifz:&i;R|XΧbơ-F&'LAGG@kJMhtgowuvMtQXlR=oO6w ߫u\@Uߣ-.s,2h "}1i/c27#ia4yTXNIu#yFeJ,slv0聏w0ǬXer.AzyTe\fs%\e ofÉ^e84pw slnF3ma"pYay 9doen't areJT@I%OS DRxo bob and vc fr ri=tpg O\XdH uf,8'ý>#\e^rlqr.p3i9衎Pe8S\1A,( -x{NQ@0DQ@|-tTU`2(LSp8=nմ|Mj^ ,%L$L9[6ۙ*ƶ6河g {˦26*DWT)ayg#M}aE\nw߬.1 2 CWglc= A,AQ1Tc$SSЏ8B4m}N'- 7 hq7Th X-V(ٌ>јʌ\&-50ejtvteU(ԖirRcpb=oarP god8!)W@r+Gh8 F RPBp|WENsCUL"AS GWN0YR OM Wa#TAT O wL 8VEYyRBE'NDp1@*. Hav@fn,dP antg I oudn't do!@x TH Aleit@ p } dressing gown, painting my toe ATM5aEEXD~E Y=QES@=ddTyf3>PKܒ=AB`LJz6ZEL%%ޚ"ne2rCoXX.J@&IXIC/KEPf5EPERCb"FS]aE>9ho'+LllwVJ8 >p_1*9Ƞ։ZY{Bk(La{(a,Vk@w"<[rm/ӐW)Oht8BK?y\d'g;WtYSA,;jhNc)%k۔Vuه5TluwUc hpoy3ʋ֎a;RK%@2^r2NITY!'Ņa=cmvS!3X5qQ!EULB{A֕ I4W)Nʪ,INY轜%0рb y6X3n(>V]lK2XchWavϱRdyl8MMΜ}t2&H,]x :ҚyD2p9DckPA+N P- EAVctXa'6(&@dlu 5I{7bJO,v|1e l}Aptbwhlasin?vZbS Nm5JaYeŅgaJd2DMIe1AQ:W`PNBwerzb$tGH?:Oneq?peh d Mi< AfrAO MP=fN.](ITao `ev[aX ose it's@rdap!lE-RyI 't tk of any re, o I'l 8go!P#  T-Alc(T)   like that!". ATM5 &`wtLE~SqrA#QA"RTy b%r ALLEI/TTRE SvUBES<6(_/@#zvj*+{̸;}vX( ,roB Ƞ1ii5 F&xy&:2YmUpLAMWAlFTd>;T߹ZJ>CkyswUf76iDt&y֣iqd +Ooy)p.T ^;|akEuck,#,hzHnRHd@ qh:/eVtF,@.,v$w 3y nٵtKڗ:i# 4LlFcL*iSy I@dZ3:Gfuk<:CHrP$D KG@LrCOzlY,#0g~ h(Nڄ g%@*uJ}k +/REG F"cR9,]S'VeOnoRe\:}ui**@Eru>DZ* ((:.NaBلR_;XdX'dsTNt-CqBS@6Vo1bs4J9ɘ ]ow#eb#< ﳋ,l6lugh׌-wɔN|VuJGJlIB\l8.vM +Q’eypb#30^l_Kc5}PI`AApGgt%`/= \ }8.E$9EXYOTx0k-cyc?6wFPv)](F*4nd6H]yvݷ!mpbcfe?MUjaco°B9sBsC|?@J5LCeEyCpia0&u4 q Y.5 <Q0ub{_ F&mfL2A4ai[STM&PڞGkܶV~M( $ͱJGr(lmLN WGRfhmMDI'm Br o=me CͼsWt6!m J`Malu'س}/U ztas#Hok4l -dof{\mq|m.SIJf V6a twP4.I`[q=ef[iSo ,4aiu}UֲiC0SMgZz. M AW'es" =G1p4'hǵu 2uqal/kJ@`sp-ߒJ&#S@xuL WVaGaZ v֪uiy7;TaD6Q]B o7d!N@tbIGYCwaaԢAwtO4-JJqB#2WDJSޮap|s/K4ky JTPklkb2 jM³\(dLD@eratOD6 (0aFU>|culte!īhi榁iFrh :p}]jKGT4HS aF\CbGhtBc)LetvhME@ND OF`IZ(SC$Rs :GUETNDB$Clr06:Bf0.1 #엠 @4%_v3f0G$49 :Ef0]Jks4@3_cDͱE"Fآksl9 @+>b-*[er1cf.4f5hEf.6i\#hPUa,f: .8 W2#B $2-2WHơyRm]*o0n4 %tIn?A8}PrĠ0<vMBe*3 Go-7w wayC'RTJ3gC8+gMYan't d pUWtl Aju goAtr doc }d Se ya! Aleit('oT)' @ x  ,ZpsIķ(nS /'obly# FӕS` /T2Hxi5@F@0`C 뱖Ëgb(2/Bj 3ƌZ੢e|W X\nF8@f Ӷ3Nzto DoqeX2LH}ct99 0 /!=KHXb]"YWDExȉmQX:PΏyGwha=a,1aiHCba&H `CV#*AeT`a u6H*Znjb[~BBP- ıJ:,Yn C$SVEa7VR@6-x'Zp+f=U0rf-lv{RwgAmf"[CDPxW0AIfN90ҍn[|#-ivg܆41DRN Es3{:LA|l=}'18Xj=أjpsjpI-b3pɦ2Yb#Td'3kyUz@@ [lEU4D0#*EM|le]cYl}?&F- Se 6*D(Ԥ:ze%ӀYqBta%@)p 11)YOF (@K2@:?o(wex2M2ߏ7Rrcܡav̨npNIt>Ag of 1F) w\ey s~s RP4bvalues.Wiis Gfo7t2n, y snud gbPo craw a0 mateer+)GOD LUCK!iLT-Alc (T)S&( @x x` rat on some skis and they will begin to chatter and emit a strong odour of fennel. After we have visited the cinema, we mATM5`GAS A GO 7T7!Pixb TwQJWXU n' xMRm\|³ MgheTX2 UXme=a:) &mƠ8vuN-Ł b\m,( PkZ+*^s)̘8gUu7% [|g92 KFi!t "7(, ]vvD"oab/G2objPEY$7J4Xe0N(}wx`JͣحIZXwexP/U}ocXyIHid-`CsJt*f&mBIhC\֦K+hf̘ItobvK]`cȨ./`c1+5S-n5SjYf}wuPyٗLSBo^EMڷX6+luI1yܧc<T /)ik^|,}qϾr=$`Ŕ[~J鮀X0J'PtBe1 3Rp'+Q3%PRW?=lU* 0@'0\amiKcm+oHmWi~)aإHR+beW(rgXwABbaFUUCmWMXimcdpWT+iW\Y/:]L%wU$;C-e6W@ io9kkSit}p<߸`&Bh%,WԋDLG`<%.dyow;kp+ZS`#Md?NLO{E+!ZMsp:R-OhpT;Oh2esTK3l >M33DcV0'@DLA2HKS4w zȔP@;b<(Wy8H)s4IƮ/-$ui]Qpf uevBybse}C)ScR5I`Qgu'D gMTTT3_Fdwqa6nT WHLtiDnuMwZ n'fhzMm fb]3H4<|M@ cTre$J ~i3klsne,c~t.T;ta$ Tiso|ae fQw2xok| l,1an)d* 6t sCer8 ten yu ar;dy do.x ngs who live in cellars and pump it to the surface. DISCOTHEQUES will be held in a well six miles deep and thick with fog. We will climb up and down the well, listening to a low hum that will have taken the place of music. After a night at the discotheque we may wish to BUCK. This, however, will have become impossible by the 21st century, as our privates will have dropped off due to gale force winds reaching speeds of up to 300 miles per hour, so instead we will turn to another type of popular pastime, that of stuffing shanks up the exhaust of hovercrafts. Treasured above all will be SPIT. It will be kept in exotic pewter jars and displayed at enormous eisteddfods held in Herefordshire. And finally, looking a lATM5* *FC kwh5/>yDIXsLW --D/c>2Sl[l&GCe.f^^ f՟ Pix:I}BqDN?'Z +gͮSE{t4:qczf;ijdy.#z3/T+V(aj{]ǟPP&$h21t%e)%NmAvƭb--">Y0OJƎNH?K(e8DHkHrV }lFp{UNŚK09W(X'MAT<~8 VTQ`&[#S_Og,M9ITl^U#a+Siz1ҙgA_Bcru(u"(h0exdt)â)I(McPSUBosSK: h,Cb\XBw0gE2Lgɚ\),(wr"U'JC@):jvb H8%D @Xdxdsz) '``|`j]2LrݠYv%l6Z#qK?Mdris3WTfmYT VM[ֺT6^sj򗫋 'o=MoЊoİZgI{Σ:HώAJaD'EڮA|j5HhmT wb^ղx&[d[$rY ]lmM&tF# mߦmOAkm>?@D5P>*t֒(j$uT3)PDfbyp-&%CW$M?!MЮ;Br6ц~(5>js psu*V4US*POe}DI8Dce Ca;Hw(ܚaU*n}Q'b|P}SĘM`blqnof|ywTUm"龄n$L$1t:+%U"PH p (CQ g1&u! ?';a*J skLJMt=ptn(s)LJ LydCE, Eng HuSyGHavENgdpo\MLJK4.MԔ(cu
  • E " Myhg".gvXB7k,O!5V㎶Bߟ}nA&m Pdo2>PHģm􊠎]6[[&yr١\;B,"lcgu#c4GwЍqQVDcd):`Y,M#!HDŨ9%_l$(&RT-&PDfbcP[irMfM|SII ΠBVMh4RN/4^RWy*DIGFb#Ca0#v H"%9ta"ꚇnlYe3\bwP`Zi"?(tRa{?1RXblh=:麙ofPV3\Lbt<uںsBsLc%ip (Hgud!?No-WCe^rawMt& pJn(s),JeBde1ɤazqg:IϼlIc4f8MA=h .~?shFEnua<1h(H)cJpqyh,6soNod) EB9h(IT|PDBby5fHoIa?Mh@1NV)-R#mv&heBrD*(T&-'IMDi呍0C4l H4\Z{aٶn|A(OȶV'Xi7nSXMbJl>R%v{>T S"}bxsM@LљUw y.m\Bc:Mtp (U gIu٦!e?8,E36iwa1z>UmdY\tMD8S~pn(s) XBo b\D-o'%avg o|N֨G gFQTa Fn)lx(7s_3EsթukIsoJaWdie. Slaxd!PS - I arUew cH&h5ay=^2C: T$ere isf> )@====================== 1.1 A conman gets Thora Hird to pay 100 for a smoke alarm. She finds out that they are much cheaper than this. The conman comes back the next day to try to sell her something else.What would she say? a)You bloody con-artist, get out of my sight.If I ever see you again I'll kill you! b)Be careful! We wouldn't want a little accident to happen would we? c)Eeee, you little beggar, you shouldn't sin, I'll slap your wrists next time! 1.2 Thora is iATM5 r^V*LXeb٨פ*$4lZI5] -S̾NГ Pixm&#/YV7OCo?bald,G!Cj|W,c犪TBID+mdP/K)c7cBDzݻ_ն]sǮG8sQTQėOjLiz@jAJ6Ås$nqL"]bs v\-ե0M UNsv+ 'Wuy6D5x(*&ۙ73^10 nZTNh OK ukYMN'T,TSf:Dk: ^DRC3,EKb+*6BPna62sdtL2IN-BUܴ_`1.F+2-F@s1TԊ:SZxhH{c'MAT0m.o2LQ3lM1"De+?XumdG>Wa lY9Y懔H$0_UsGzKEx*dj3ckp(_v&au o*aӀ+=Wde;X=WShV+K%CgM#jrg !(@Mj:PD0[bu\c*]xc(;X P?ЙЮ2k EtUѶv,NI5wBh) [RNa%DrL CaX H`[s[abR.nkWZIaܨbZl ݊7e圮ESE*RtiBL}byvG-:icUNp{ ( ,:Hg٘u! ?J(E s]kh+ZAiep}dn'm=X%RMD[,pi2n(s)Ü:̩YJf+m TTV]/ts!"agdGd4Ϸ0_ABeB n\Gh{e,9F cҗta0@pKFф2k7Ȥuʴ W2 Ev,yibody0Ig'T;_//wsb9kODfV fWisa1u,e4#Ogv M*eptf.$ Fan)Gmswfoe ̈́Ss - I `abrd a ew %sqC& Xt] aa}wh were : Pobly ue.# @ >@000? a)1 b)4 c)6 3.3 How many transistors are present on a M68ATM5 *@ *ކy 6)V1Tt-@2`Eg`w2h; .G@}py8acJԐyf4c1Ft0xWU(Q J60Y^}ZQ,Bu[scgz!cʅWQ ۡ|S#oFtE:hGQ4slCYӂY 2'MATQ}* g/[ 6"^!aFꮷbh Ak 9#5e rZdeñ2GEA ȧM5͒wַga"|l2XPaT izE@(%wXA̢b2zAM_SZFcƋ Qc-tuTlImMh ciE ;rhlvwf C2Ú)<?#3}q ,gSa-{xSw@X-:0qbX̻ڠ+3-De(kbڙv,SOꪔ`6VcTlgczYPD;_#ob:81Rbny-2Tdziav[5Z YQQRԱ(eX&؍\jC+_WWc~S` 3 ke0 _2`qFpTy:0g2d8}g /#;w;Ow^_emu͚g|֫$AZ2n zjhˆ@[aRS(eF6v|::t6t &7TJNչaD]_4f]R-3lgAI3MklUh ',us(B,ǚ> o뇾su'- aŎwt0zod?!*pRPLmUh# Clș5oi#jRb(&mR5PaDhb:ySŏ]gs@#}/Uͮ De٤vebj]bmIL'm LPB-dRy5BDEp^T~aCH)Y9g&rYWdnoiKV{ eWmEa,\]dTTz BWa?+Ɋ+b(l5-b7k^1fMAYD+XNӵHt0PXyuNB(=(ƺv6QL:M մueᆍ(c=ni\(J_u؋!?p|HJ9jdVYB a=bxJ5e]Mԭh0WM}TtZn(s)4Pe%η=a#db2isKmPa$d;LhU2KtCE p!XsQ0?pNseFR6ӉU4>SܗsuFkP2'#ifru: U r5b9+0Her, eh}N2EaZϠpaper gv 0rf} ushCn\|fer~˯o Plpy St , and I dn'oqw wo's gt :te natives.:h ------------------------- 1.3 3 2ATM5 a F*hL -PυDLc1ъhDL3G p֜*)j ,Rk ~*zom(Pix0wsj_BXDe)N{_ɅلW5 K`b"HiLKd AF19rdTo(oa> eV+X1N 'vjby0`cq݋Ha>5մBm N@JhO}42m*PX5,1Dzk DuNzރPSWv]XDtjRaWhDW&hknD9h5j4b*S@s 1 >XdfFMb^SizQGOA,&bV=fIa|Mڲ}yc4a.].mCfeFІ.L6G'WdzDZ3ӭ-oabu1g0%>TJ'fJJW&ξ^Ed}dpH"^=*Z1 )P&= M#;b [1Jp5&Vf(dη4'cv4nâ Pluc"unFjFě oLA q5 `Bgg7oH`7s urfͫpe80aRk*Zd&f mh#R~AmA#%T fn⦅lg!,ê$pI "\R(PuNób+1bWf+3Vǚ1lR3/*Kf{ۊl}-+gض!-Fv:C/تZ\VY.®P@ѝ-VZFw6gbj6No!A)`aR ib5LHSmBIsZ sED/-c:;{1bi'rorr1>>WF.m|4<n)~[^>j [yumZ2.>Q6F8(&SO'bj2TĈf@qV]'mk+ .3@x&pB@d/e}&QTWY2xv?Qa^n)DTS*t{ H4EUa@}~*V,ey>bYRLXad Nj IE[b0lV*su6.c3'A `lvE>ip IvϫZgȦMm fYpp\xDQY`5gZ؁=tXZ c[9oc-B iviT+G ( }g8mǓEMhXזi m4lVbV{9uF.o)>mbR,sZ3@L%N=ODhmv_tÕ~B1#\р W FRED@+ ~ixˉA@p;^Ug9q 2tW,kU *B'5m>؇,glq2'MATM3]Hdm!EI36 5Ip3R L\UQfMIegSi5zR,E`9W/+]PCK#NTx=G!`fDp"AK,cDm +6IMgcQ:F"w*#l sY4ɾJ!E95[dz M@*㶳.QU|6Qo.#`%ͣ+ 6DpLZz٠aR vCd4cG9[ ($]L6fc}5]R*U?p#XēhtC3&cV_oqc_<w҅ު~`R]B4ddD6$agt1)pLAPaw%U횠xb.K$vFeӅc~gHR*`2Ohc+*IYCN\(m WEidm:4u kXN(KKr/2扽`D!@9 ۛD(j C[(PDbVywvQXF? J M,i{DBr Z&:e31QCV9bUFVIsrfi@m:(Gylo0ex`iht65DjCaaE-Ria[snYMYeI5"ƎbWWl6-}n{s]UfY`v hW[J=ײ8̲LEatUtdk^ s}YcnJp (H\Iu!5V ?PizbH w`-~"CRA|TEYR OWNIt'u jh2f@'T +gisX\UMDtpvn(s) 5 Cdn'?fsveuŽSF4`avg`!han@y$tBh.83Nid'm 9CybetFn6lˌu×/wLsQteu:9k[R\o=7T5eIX$-Dp('Ue+_~cnT|Uo'=mVos)@erb,[NAgjjgv]A"3tvL&_QͳNyA y]n$W6J++*g^]t;1O;1u>U*\Z[d7!@ՄdcG'lԩD'A_awnlظm (^p2sl.cgg asUa +SM'-Hq\u-Gc9rt R+#N= tIR8kpUQ ..eD'>%A혲iS-VYXZ# maT;6 lVmZ'BkIU4jalPiYF4mfW-fW4;E6TX+,9MV-4jTŖj(ͮEERCcuꬶ!Ln|c?Kb-3͎V*뒠f;Siz6d|,-56$=@A)0z>`7?YiFDeoE)PY;0/)) //cI31mi 5a5^Xj`Y,X1HY0cm*2Z*d"C Dw)P19"pCM=OMAְBMPCE^9`&mBRZcCTHGU9X[3[. PNȤ-_S4=׊4ծ{9@kْ3G:N/x|6h'k -MK-{FI+Ocp565MXkV:S26jqa.FIFWBj4&htI3qH[G,Rt5u͟ pe&_wS66Ql)ߒdri /(/,Tllh',!j,{TZfbխgQ&6pb؏d|P6Y^7ELj\lv8cV_vwJ,²Lj:m1lVI*7EIK'5d9y|Z6-vVY5 qžؚFjY]exqS`M,G|.̅v1SJݚ4tu8^2?WiBm@0fRVA- g+ ݢ.@|ӟ+-M]LawV-u=P, QNHCT44HX&H%mZ`2j݁L5ԸK8ɫH):e-=_\0;@kWfJ[NDPmhue:%fLPP FM 'NMG[j(y%-2(&eTGad5byf2p[NV0MzD=]-~yI ard a ew s|s QY?Tr aySp\_h werw:ʠE;BARArT&BNHӓEyTLA >r.2~CTO, DiOUX )nOEVER- MANAz}yGo"TB)AS$ENNOF (RESDN'!WXAE} SAD8BaIT TnUH!P (tIe end) he C1. *5XY - Slide to note & volume slide Continues the slide to note (as defined by 3XY and uses volume slide as AXY). *6XY - Slide volume with vibrato (X is increase,Y is decrease) The parameters for vibrato should have been set ATM51 )CjPHEeXm ̧8e-ЖP!hx&85 $l@cm(6 Y]2} :-ۦo*YXR+ҨBo"zPث UX&@9y.Rv-8Q]匹f,&j2\Q!o-JhboLFXcM6T(dy0 cMJ;.fa6]Y՘a848fmVR3-sDRTDX1 :X F%|dU F2hPNr捜(cJ4`meXlub:o#ptLZ?%B8b:ư SE1^%eS2^([Z_?)}mt0hzG%A9LJgNH&qUCQ 9N9Ti鋎1]ٸ摸3Q$1ZjSlyn_%[ r ET,B[40w|DOCp&ACGYϝSag'*]b/u!]T4?L9&WFRZX $BAR]wPRCU?\fɩ(Բl»RWDow$` Dhi"L-f\V_=fsT?,LkZY{A#YXcgi 8 eL氜L$BiO:1AY$jHFB6N_(I#81txAĺ'+2Êeadͯp0g6[yF5 R %gh@6bo:JvEݽ,[SKm)M6[M_037i5R;LQѸg.9Ar5dPB+"Aퟡ{a]/bܬF\1C``py%܎MS^Sq`m=>gP h*Gn]P'1f2llO,O cmfmo.bJ9&5itl4duH`sX#TM ):PSZy1P7Sh/Ŋ.'* Z8W r)Q%U*6.G}>W}n5 є Q$PAi:I,LAb#. A"TuӾml;^_FhZċZ-dL5vmlbVBL ++s @NK: *SDF8@^2B #Oq@B#Wk p+J!AؘʉC E` @JlM&\eTEߛCn1EXE = 3K lBH cgp #eCA}QXA#bxtAan%{-[kL{tIf=,sI5Qs4J@,nwrn(-4^VڨL.Vpys0<0?Y🅳hTJPBixZRcqM~S ^ ?- EY6)&{&>[WhdR}a2+FչZ'XMRt J4Mk&f[I*T208* gI(uE3F2SxkuM@)FBlB&# eTm?R4B:r'YKK!Roczǁ-BsI.  t0..  tARTICLE TWBt .6 3DRASTERDOC#t 3CHAT DOC&t 6.<CJb<+*Un&`vevAy P:iE+Ľw^BD;a3Q@<BXW;'pe3J/% ge#rW=Af@4m>YX sdPfW Z`ی{Qdla _`ZZ@Z֞ܟ$blJEDJ)n't0k:#0!LWA'O'MI/HK² ,@ 0 LEVE (A7 ,D1csZn_+v傓,TTv\ͬ*E&{GaA[;nYٵ"ݡLFP#E(ԋ,cLcd7;*ĄT)T0CTzNReC#DL-Ne?JӖf,ygN&a4@ n'OSf7(RAj>8SgJhYF*(j]Wt9lT 8Ij j͟ sa#Ab*6UvyTYht8 1 !OkLKT/ftowfAIku\r{iuB\Ip c3oJ*Scgb?Iؚ[wia UDne Ze}hݡ do| f L?Yi`}s#}g3}=g fen> I'8S)wasmy 3 CU t:ar<c,d andosdss ruf5Se y'alp later@.@ 1 than yours (or Argonauts to be more precise but let me make it clear that I'm not having a go at Argonaut, just the spy), oh and spy I think you left out one small detail: Argonauts 3d routs are ripped, mine aint so suck on that you son of a butch. Now, before we get on with this article proper, a word about all the boasting in TWB demos: anyone who takes it seriously is an idiot, its only a bit of fun but we do have every right to boast aswell: we were at least the second British crew to beat the Carebears fullscreen (if you include the Wow scroller in the Decade demo, which some might say is better than the TCB one), we have also produced the best megademo for a single coder, State Of TheATM5HƭP3ZD\1 W9o 0- 8K !.-ܹl[bjayfLR3oZ']LR67JgyZk ȍ릺Nn i(斡 ZYCj_%oX(M^4f&}o 0`䊵ueXRQAE(F 4Di-Sy l 8 lAh+CR'5{mMc@ 3$lt3O>C-k& > +PVGH,HgAjOAy>xm_z| YzY+ "xwe;["T\qWd_*flдzW`(du`ql"T@Uag_/~ile䷘fc4̴J5Dby*k 0 (Er-J?eU)sZ0H1g2ئmIH,KhN1%Ƴ,*؅PBՙsF LURČsD_gA jF)HyARDgaHJ?(6kY;gA}Rk<݈f [Zhrc؝VyB4ᦂj m&$`Vb\fNA #*)m1lmUulct(a=sntm;}rӻ)DS`I2J^07/njPB׬=0͎VR20~ &p "',ecjڣN*~*20 V*ċh0dŷfKcn 3kDfh<ߙ<@^zRnV5?sxycƤ3,&$,V3I21uhM@AE_RATSgi-lC&VBLE6|f2BZ(puU&BUERe, se ya. 0  you wanted to duplicate the low words of D0 and D1 in the high words of D0 and D1, this wouldn't work: MOVEM.W D0/D1,-(A7) SWAP D0 SWAP D1 MOVEM.W (A7)+,D0/D1 This last line should be MOVE.W (A7)+,D0 MOVE.W (A7)+,D1 Another short bit of advice - the BCLR #3,$FFFFFA17.w instruction will set the automatic mode so that at the end of an MFP interrupt you dont have to clear the correct bit in the INTERRUPT IN SERVICE register......for example at the end of the timer b interrupt you wont have to do a BCLR #0,$FFFFFA0F.W. This can save a bit of processor time if you've got timer b's on every scanline... Ok some news about a new TWB demo that should be out soon - the long awaited Digi-Synth 8 will be released soon after Slam, its been about 8 months since Digi-SyntATM5 ! @`ZfMZl @TUPIho@/HI3kr4gvyV(O,W y)Mn7{'1IV/o @^ T8%PqG xd( EI;%E뺭&QP[U8jb]FBrBXbMI 2n@ scstzWOkD`A2sFەn\dB~rcmuL'BN:ˊPZ2[d)JLk#/,}-&(:r%dQ?ƔB*Bgo@ߪe*>LdfX?W'ʩU KLFM -!a*MN8[BMQjT's #YA~)evy"eY˨]Q(@T՛#DV{%bKh@>Y[[g HX^ M5aZn;9 eĠZLI3ScNeypP c NjwZ Rizl'Zgjjcm buGa&rfB_ljNGa##talomh6Bd.  ,1@a a+Q I fhnd1;[@"IS?bEUuJ.bV#%x'`9=c gXfzBh9Ǘj O8gz5n21)Shz8'MaͮW4oBo'P hmUM 41hqPhjwd}Hٰ(:JaODQ TVj2k2dLZꞏ\Yw*c Sa.\,hnyn|WfJB [UOOErrb`e/P4"XBf`o(E{L1K@"Uz V5PT4uEUKMvMmGp)Mmvexc#6D K$Dro7WNdhsK2G.M*WcXUac L?!뮈͢ٮp[-IP> E-IgYNAO=CkGk@<{^SAHn;FXdJc)O.A]5\Ӭhe-Suq PaulVn1InUYK+Jo40qimw Qu>` wjm٣v]CyBx\p uSQ ow Sڐֻ%sJ0A}ܢT7_nSQhnL9S@\{*Rcmm$A NϠRB.L.TIЩB)O@naGAg+ѕiH.FA$ e TSNTe:T6R@ZKC澃 ôV8F[sBMPFvFPBD.$P.G'hv"Bn]Am=$AgjaIAb6}(CZo1r JFo xe)E'0\[O?cv;lnub - E@p :\yΪ!amK&BGpIw:Y2v2<բLYͩM}5Y u-eccx+܌@4adU*wD#)힥%X?HuWfeW:tidQodߊo!ڈOhS6%(k 8iEEʲ}axhXugT>㯚ma4[V@eYCRVjXΧas%ŷ4XI.Gfusv(=nlrJ5-|~-5X-f,5FX%,2b9K=B3AFmbo vA t\TeÏ'ˌܳVtFS 4 P:3DL@>*HEÄHf;h3= *$aG2ttw ?W8^3jz0XGrc*Z[⫿xi͘rdiR wlyiaRUKI܅j_co-LB,*SUET%a ~Snb[Zw.ljC[ YK/̉vGۯ.Ƿ+o5FTx A3uFw,ZYM2~vRI s.1yC#ڥ* gFL`k{h)=-U ' 3NCEWX  p'GVdŶK-f Q,,Rl0q˾&x&1-%n|P̲X[}˹RCU3|O53/pq=0F=lGk4E#ց˙5P^ύ6 ΰ]eUcЋ,\z IZIf(bE/TmH)-Rldh2;+(UE$r@f!eoK3IR i;\5MZQ3I$FD`1դJ3X1VIddXotfWh!iFqToBGTm1N%QL ?YbW:ls*_mJ-U((**aU}nLAEpk|OJ{mcfA# SLPwT+WҎ[QI3X:rM;Ɗof, ֠a{Hs M¬0Tw IQdn5'a@ITJʆ+lp/k E`[h$ `taAtUzif{Bs8栭 b34f{hyAB+m2 [^uUcHaBlE7]kd,\*CU6–b*'!/@1INźcĀnB!&(dHr(ozCaYZ:ф^ !0=ڤT2N1+~A4 E rrf!D-#tuc1CHbyoyfvmm :[\À0W`_X` /,Pix{Tw17T7IOD8GFDL,?FCMf VZWB7Po4w@mmypAg; AgjiB4'8DAlS F(zeDCLC8DwMUGB[KZTeBC֭ӮI (fW堘 If yS v0F'o yx' t;/u<n҇% iӕGoymyrd \k cl6ahk}o)i2 O%' kU{u=;bNZM p Lk=:///2o\0NPrK-azD9JB4hE ua:-ml7XArgnaCJ%Sp3DGrXq-KjT*l;tf@s?cI-Ab/*@.MgzNErC).ogjR@Siz8'-Modu4@$@*PNe wemfN%wmaFwbishhȺnc8y1MA0T Et) wtcand o laes ase .\  udiences attention to a matter of international importance. HERE WE GO Y'ALL - used to signal the start of a scroller and the beginning of the journey upon which you and your audience are about to embark. Scrolltext end phrases ---------------------- Now, here are some scrolltext endings for you, if you're fed up with the old LETS WRAP, or LETS WATM5 EZ>d C5-oH-ĠDowf MoC1h~BustYBaoarnDenetRe-Famtd ?bylat of tebuv|b\es"h";,,Wqp |PU4~lFF2`P}fn`ajq:=Ԫ7(O:o|UJ@HY 7!:yP!*ju\B*BeK*#̓MEpWmYQ0IRTHP 㺧YhKlKKi.Rɦ5sghu8! aoZBHn;V*Tzhs[ V1Z ~U6ˉ kT]v2Nڠ]k]IxUiGNFJX:*bvU(K[Z3L)1% nLUR\Szծ.Z1zHLUCK!)6TPG:ZwCZJIL@85$}jY LyXQ2NDKhfZPƉMK ' H?* jAVG2Hn-.+nc /k?*՘[kiGN`A#AVI&iY`eSFDSUWHqR:+-hs SKrxS v(KBy)WA0]R IV#p׸zPU #SGY#VqUS=N'!'6EmcA~ ] [욛ENf,>IvSVWEmr$#C*CX$> B4MhSzFA CdW Y%XKzfHUE?DưO@ C T, Y0g,WM(iI`RAY )IQTs E  implies that you will be returning to the keyboard later, leaving your audience in incredible suspense as they wait for your next scrolltext. Ok thats it as far as words are concerned, dont use them too much or you'll start to sound like me or Jack.......and you dont want that do you? Before I go, heres some words from a song I heard on Kiss FM - Its taking the piss out of a tune called Toms Diner, so sing this song with a ragga stylee accent, to the tune of Toms Diner... I was standing in the corner, searching for my Rizzla I had some Marawana, I needed to get higher So I went up to the corner with my Rizzla and my gunja, built another spliff until I was totally out of my head........da da daa da,da da daa da, da da daa da da da daa da..... It might not sound that funny, you have to hear it for yourself which is why I might sample it for Dreamzone (our megademo!).......see ya's next time... .  t@..  t7T7SBIT DOCt LD_INT TPTt ED_INT TPTt 7T7_INT TPTt NOD_INT TPTt "~EGGG_INTTPTt $DML_INT TPTt &PCM__INTTPTt (RXX_INT DOC t *ATM5{j`'LVրe LRCS1-1(Dow+9>&TfkhMocChx+But:Boarnߒ&e2ne>tRe-F mtd by!at of te >U{uz>b.es' "! "Sb4O!Mּ% iDYbB)(+AE*R BVJTTTA WU&ZI!ST1V; Nҝ&'@GYT#X"FR,3fObES} L?V'>DA->ZRzNs4Dp"E&B[h{B EZE-B6DF@AZA:+%!TO,$ScE6%@G3=KvF`` BEVEG6+ Iih?-RWtU926 AeSxQUZRG/rA.ci_-wM}|(*EY<UOeS6go+'BܯbR}+*؀0JuR!UW?k(oYRX$ݣEGpL\CAgiU%[8O_JS?T,@).OWKCOJFTުk#ROY,[%&y!TBJE,UWCcdz/s'C:ZN#j}ZnhWsAXAU9~5NjRB. DSXEA~4AT-[pJQ)GJ6rKXI!-(YW-VYBU*Dp*AW"AFl D'>J*60N.˵}a8NDb*IpC2>~S TJ#N[RAF}sNY>A҄ LSP'Y U.HND{9D P=,RJUsS 7WjGau tJNOAv 50I!&IWGN HS,E-A- V9T@SHU(H@ 9KA TAyT.Y'AU CƏECK OqW AR?a(@ , 2EVE> aLpY)  !hat you rip from everybody else.) Stick to the kind of writing that you're good at. The kind that needs a crayon. We do demos to entertain, we don't do them for spotty merchants like you to to critise. Just wait until you see the next project. Try anATM5GJ)cYlCvdźLCSx p- Do%ws%DŽB6f&MoCh}?ButBo0ardnenet$Re-F|m/tad byat of e UþubesL"$ "52TDUw> 2ʤX/ 0_ (kuQYh;dP9 Ok7el}ɅjHPdV[g+1M.ʲ' L_)EMݴ3u"-TV`>I@C-QQDYBVn ߜ$e8*A2Q%T[R cYCҨ̰ZJwhi)1>N KY,Np5Q TQ:67Hx@aE>Z\PF{htI+ݱna#B_$Vf)NfTSVl9gyP AV .tC7]Kh Y@13lRJLiEXCDQRO6]skյGI%|'( V\*p5EFTe_WtWM5I\ Pp>w)؀:Nsa5SDP1IXRi6rz?oUOLߥ luꇞG? 5`V^}`A-UbG)F$"\B{KCZNkR9YMRW TAHtJqB)U9TSs_ES,M!VNSE OF AOE.O!(!)4s ^4API;T9~AYYdUю'D C O GOW AN NH!P  G***************************************************** Interview with LD PIXEL ----------------------- Name : LD In real life ? : Sugarlump Group or the people who you do most work for : The Pixel Twins Brief Description of yourself if you please .. : Sophisticated, intelligent, young lady. Age : 23 Number of Teeth (if applicable) : Plenty to be going on with Number visible when you smile ?? : Never smiles Fav Night Out : The cinema Fav Drink : orange Tango Fav Accident : Never had one Fav person called 'MAT' : Don't know one Fav compooter : ST Fav game : The Secret Of Monkey Island Fav Memory Size : 1 Meg Fav Animal : Unicorns (even though they don't exist) Taste In Music : Pet Shop Boys, Kate Bush, ABC Fav Chant : Haven't got one Do you have a tee shirt with that printed on it ?? : No What do you do best : Write When you are not doing what you do best what do you do best ... : My work I really admire people wiATM5xǗR6},ʧVw oJGc@C^0- Do%ws%DŽ%fa MaoChoBeu\tVGBoar2n Ienet@Re2-Fmtd byoat o f teu]=bes""]+"VbBZlBख़ZJh>BϱZZgƐMJMqGW5 \!X-GeM`SW=mKP {(}uS hu hu (a[a9Ghz DW@vx٠$[mT=[c"Kȧ3FXrzA }T,dYΥ#W8k7LyYTVNBn jZԼ({EUATg;qH9dҡR7CY9!I*( _vFTIr^J'inzKd[8O?.i/,ZlO*nKMn|y 24Yf4W$e0QsWhFULPB~vF^YCoEJfY-F!i5VIq[2SM|E@U>R'_jTBdyɊ`YKGAY͔FkcCm)mF`~|@snR4&sLg8ReMl?zq8B--,N-XLT!#9R txO OkʠAg=FzCND' RSIX O'CO9 NE /4rHnLSpDS !VdE'LY2BDҕIR D1AW!, dAAa OYAL PA IS1,WNa YU GQT TGEBUCAM< BLUES. x hello to : Anyone wATM5@WI|k=kV;LRCSx -ADow \1ofa MocChx+But:Boarn&e2ne>tRe-F mtd byat of te>7uv|b\es""r hNHGE3YtP,>oiUôaKVDb"+PVEVDiR:EVA p>뒅5,IMTf{m=dz8m5v3AN!!BQ+{O=mH?CK6A F1j YI O!0=E-HS:t"8'LFTLA-W8MSzD.Inr xId0Wg=rjdb:yDTF, LrA}YNz.Ni`P>0)GO^@C;Ey eFI'M'vY'SpB?NAQ3WA ?DOWN ^E &b,QS CG AI ESS)3  ATM546IR~~VG5;hCS1-Dowϕ3<f0MBoCh[Bu8tBoarnJ5enetRde-Fm%td by{at of te'auv|b\es" 9R aH}WA6z(hYYJl4V;l%JA ̲Z MSV1MA(L 8RHqL]BYȍPyeW9q5jIS:C޵D]E$ktH" BcWHY'iqMzRKn?"]cSKPS Szu I LRqA٭6V CKL(U*?c*UES'M(i: AOI}VWl$iO4}E (0LUH0A sHa+craT`AG)ErCDO | YU WCAN(?28O`uGTA B8^N MY yER?,46DX AN'@SXAE IT OF!3@  APPROPRIATE .. A YOUNG CHILD COULD READ THAT' !> Fav Accident : Kylie Minogue Fav person called 'MAT' : Mat-ress Fav compooter : ZX80 Fav game : Hide the Sausage Fav Memory Size : Something in inches Fav Animal : No comment Taste In Music : Rock Fav Chant : Baa! Do you have a tee shirt with that printed on it ?? : No What do you do best : Stupid question (nudge nudge wink wink) When you are not doing what yoATM55IRt#[SsiC,۪RCS- Do%ws%fkhMocChx+But:BoarnMedn|et Re-Fm{ td byCat of te}B}ouWbes"H"F踙mf=, 6+=PWpT 2vT/I df&fMt`kH'`b* !B}A#I~XEǰKլkkn'?(()L y{NiN1c-]UDf=VU&JM}[ wFkUZM/EWMb 0o_4KAuVK"AztOFN P [Tjrʇn{!bG$Kk 4<̐T*ЫEOCSvs}2\3zb^d3vS;TAԦW!dr'Rjx *CL) ^E.M';O*y)jT^X6 j[k]FpIT_'j 'd*&h c,^ Jm! R$P;$;V>r,%D9 cgvMQ5GD֓YIDk$PHYEڻj C SK#(7SMTNiXtEO9E9ۃL9WO FM-Nک"RoAsIVzG,R+1]u"5}UT4G5^(Q _RWDL;~SB/ D2NEWNMF EANɖHzQv %B.mA-$ISG}PMcT 8|OWxYQ{^(,tW;L\9H,< IT'S TERDY BU-NH:.  5u were sick who cleaned it up (revealing huh !) ?? : No-one.ATM5*0EI5[a[5G^CX-DowϕP#faM"oChBu tBoarCnz&e2ne>te-Fmtd by!_at of teֵ}ouWbes"H*"hZy(.^rBH`EVBlL"WJ9ד40MG"ylSGx&/%WHcPl/Y\FGJiqB 'k%0!sEJZVZJqN'-$!DP5Ra90S*mYa_#Hc5m:d "z<ܱzTu8"-&-!*UO[Y4k=_ UITA'o2hB& pBrjj (p1DͲ/?~͢EWb2A, :,Z@"I'ѵlxM~qޣWA"cc'ٚR"z[ofy2Thߪ)A69 7Y`NKYKMYòT:簹lTnR?H39MSNR}M8S --YȳbmIP.whLPV|i]-=MeXz/:3CLURAyV PJ4ɢWD ї3BwSNNΠƨ8SBmWS 醆L{KSv'TsO Fa\yES),BI CUD^GEe DRbH*LIjN'T ANY ЇM F#[O BATE.!rOW WE' G?NA yCK= P !E, YH!(VS~) *ATM5'ѪIJFYCLV[- Do%ws%TfkhMocChx+But:Boarn&e2ne>tRe-F mtd byat of te{uz>b.esOC"JY# UC^l>+ #\ (o$&B-`tDY5ICyO"i1=rA%VZP (箷- jÈglPG3LoѶL2 fi`AYN~\HS+A1s d kÞ5@4g{uNF;[PʋB'O;Y@6CMG9ZOGK2,CMH{tL؝1R]WkIZxF\TbtUNUXUOrvRJxO1eCXuޥDh+,:l'B"'y:UIl 6ynA,6)\mUN*)m.-4N^sڻ:oduI 5Ua!ϧ:O$5F>F@d(E:uYYTOqWvt>QtݦO,9j!W\5?cYȤh)UG|A٩E_&8E AR/jVJ)KBMSG]JT? NFx2B(E!YE_h&m0''Z|"QyKY "Y-:STT)4rg mKnN!D (5)U9MdGRTE2TqGQT'0S ERPE zOoEaOH$WtLGcuTA8 AV1, YH,;I ND MY BE W>Y/)WB:a11%ky]*z4V *eɯBxMl! 3a>cz,?BӅ BGVFc_:E䤓h뛾(%,zuYmD[KEP7Ak*n+8|fs[1/^ngu:*nP6#"A3+AE.TbKgE'$Q&K` P@s^P5PMLۊmyVZR?J~g/mhA/u$K*#Mf٣\ez(zۋaSl-,nO|%M􎢏c1SxnLX3hEd-ݶzrWn S~)TLYCvOC 5O&oX(YGHR):Y@RNe/٪eFR%+W) }TX2;MRƫzIKIA4G KYA3^T^X1FrX-Or. RT29M(E)uAW,8!,Q ((Y!) #'FOTFuE- $OqWe4ANx)HyA `DiE S#MYIgLzK:8AVLN9 WI ' doBY,NJ'T4 ISNwg|&DTNfFI'M GNA<b0R DRA>Cx&UEQ'tȺCK'S0N1MA3L.bDx I E O YU?@ X Last time you were sick who cleaATM5CO/jeY[V;g Cl*-@ DJowJ Hf0MoChVButeuBoar!n.enetHRe-Fm^td byat of te} Uuv|b\es"ԭ"DPR?zF6|Bj (cy XI%ʲBzi_lv(=^Md>zSP5yb3-'YY43L&{dPRkyHiLP; 3Rfw`DR`7_IZ*H*GsW@&+8d>\F7A~VTac+IU~5 n;QGU"YjU)|.)=^Rẏ[v\z* [E0Wڪ2Z1V8DU} g=S2{U0BL% YU:vk)5d HpeULMBY>lQ EF}U H EJlA-= {FMIeTЯ^wW.֌]{F5P S~G:GlH<4(tS0LU@ilu\RBZC5M BIVITDEOcL ͐HT$WLU&,STRbU)Nl!ZFe:VIZzAC Sc)ܸ5ǨUS\,P  lXN`lRHcFY9?RgHPA IR OFK8F AT2'.MfE?*TCW,LWAg*8O1]I (TK$'MCN Ǖ'AS EVEY Ht aIS A AND-Ex-DOWN. > C8@ATM5LV:[Y ;C Jq9S<8-DowcBEfa MaoChoBeu\tVGBoar2n;DenetRe-Famtd ?by|at o f tecu]=besg""A"R:B8Z0C Sn=- -#doj >ݢkTFUOlZ\I7Xx.@zvȮ{hK")lEI?2&U "TH-SI0f،]|[Z(-檊h+vDOhKbV R" l6rIB)=eo;]aA6zDb(nHqJUX-9KmH! rXbRgYӎDSC!gv0F"EdNdF4Q_E4- HCokELpFRдQ{eK % tbUC#UrSơ)pZZ5PPVYMGSAOePYm5:?NEF%;IV5'Z WLhGuFTR^t\esI-Sn졽XASSRdXTWMIZWA7#SnJEnD'DiN'@y.%jD=RET'_9Uc}xz,,?Q&D*IT>MPMUHN3]H&O1UqO Ab2ERPER 3LUBYQH,;G1EWV 4SwLjWS+OX=TA4Eh3LAOO_KYa OWy'XO =GyF ICIpJ1M>'1A?SE? ,,TAT< BOY CUD AN>Er.@ Wup and die when .. : I was out and the sun came up and I was nowhere near my coffin. Typical. Do you have greasy hair ?? : Only ifATM501IRQ(6V;LRl- oEws%LfkhMocChx+But:Boarn&e2ne>tRe-F mtd byAat of te}ouWbes9)Pb=UJ|Wۖ4MSAJ,Ivl_E]F\&Y rHT8u*e!ELGc֫WB4OS\/P]UQUmG aw]$GL*xvT,w3XֵD s|Un+ `p>r>:y|X&ҏVUSCn'>~U$Z-0md2Gr0"nZuVX,cs+t% s%5ȿ}FbK4S^3uɢ!ϣWUpUؖ,8[JDZ}Q :n5td"CWyG5Ey,?!TAuIE^COSKaՊRu.H4OeF)`yqU*I'L@ tOW1P= h~FapKJIY};P DBNWHFdXSI)TET?A2oVexjPCʏ_NNDYC'SAY1DO$AO >D,gWcE'RE AL WAITG F1R YU.  ere sick who cleaned it up (revealing huh !) ?? : I did it down the sink, so it didn't matter. Most hated person(s) : That Yank from The Word & Bryan Adams!! I have to go now so any final words .. : And now, the end is near, and so I face, the final curtain........ Finally I would like to say a quick helATM5Tomc[I)RWm7E+p!і\Dow+N25؆zM0oChƹ~UBuY^BojI)ȶV#Np{76MM_RǀU6msbBs@t:DI8YwoOAYgI&@ @ -$ 1ZX"T#.Wi1c36{~U(F.J.x0E9UUT=3pFAS®BCMsxf͒dQY4ɚ|*b`BzR_{.kz~_1#17ImAmiVNsicF g.paRt[.h te6><@SIGַJ!tOeW.#lmdK.޼iRaQ+/fc[E=XAˆ2Z"hEf Ed?]s `)SPetBBBşdX>eo@!m(zÜs- -1s'?lȭ9*+* $}buAy[N?HPXݤ OyucZ6.Q/6wzJQ sAz aH N weNjZ ki&cL1OPk1h/?D}bío H6V[lXV?A!ȑv^eNJ*_+ SCe%J } [KFHᓎPjjU2 ' 3ar%eJDҢ*=ciSw Dwe' jbiPe:Le$hOD-='"8Vgl!cVLJtåcZI'"tPSsaya$7nV+A.I.D.Sy Vffr/ mmmnlFi9YKoqw air6fa3wch גAckYS#? TB'1yuݐae:Wfwl,8 I aven't c#npis >grap|o{ e urltd. God ?ht. p } ATM5TTԊ-4TWv1Wӄ:DTa#yVTfkMocChpBձubBXolI-tJtׇ5NMRM GUdܳbq*PI'YOAYGv& -I-G3o $vOn%Va^191bi#9:F.J.EyHҕHeRALSS&CdRK{Ox^dnCNBjVv5fl}Ha]erX0k)IG4Bh|z8"#|Ag׍mY†~VRyȢmQql-st C %޽^s]cMcCnVVfu"iCe>z͘:–X:vQ" ~(Wc21h95UnG/2PA|e6` wNcRr\%+ Rsk Re_K,)RG(IER "TCeʠ + 58w*u7m> [m*8*([ubhe1ow=.cy2cBB9do R>U_GKfLEǼT0.fR__[Oo*:CoUr2EfouT=UdE1 ob1}ABB,vkrwXUgF?- lR[!$ @*]yMm֤_fhH+OBhdj ȐJ2m3WSζI'4mpmdUz 1/Y\ p5)#bc MER#6gMaZ?F[Qucgh z:]l# C'Vs,S6~y&Lh ) l *ghrj5m~NƲDnd9YtI"a5FrՐaͩpuE)b U"OO$C.2 WB.iEu`H gPS Ix2Pf o!d5&"Ms~B )lm'br2aWݽ2PPV+ WB|oRE$싫~Dowx8 z6MoY)B%?Bo$ƈ dcݪtVi[[JpZMjRbU5]сV+`@:I|YGOgA}Y@ BI0-( ,:[T gHUDsTh&ay6h'Eua–4@ax%0Tu0Tg0Ǣ-t}SJ(h w'd@H;Ւʾ6Y#b@Fu4'}? zs LyxhUEd,O'4A7K)Vn\ѪE)y0]o#& !Em@a+lY=*aoL|O6@`f63dJ\Rڕ{s>0sfZ@Pat,btn6TRh14grr*V># ,e[OnORܛGM=XkvcnN8TE1*gie]Ъ Sam]Pepwi Qvr"7fpehxoy&IfÎMyx~+@^oVF.J.M KVTN-1whN6ԉc|J9> uEYn1׋M F"gT߁ŻweMZfqy&,@3'PpzIMS''HԣBtG $C7+RKA5ݪ7Ѻ:y+[ ,b SrQyNnR'%Ոzif;WUwas:vhTs 4/4Ƭu:%`٥f\-QǴDK w:'bhey, -u ZGW(l)ti za2YET_wQ&[hHpX"PHpcn"'N=Icw2Si*aJStU9};'^Xirct?6 TAIRC-T/!IReao Kja#?)́Sxys] Si;" j >@ATM5 UQ٠v(MI$oC݂Bu&ZC/oTSHTTTKv6X-Ful0uM UiU)PpgU {OJZD 5U{Re*cJmfѥ~A2-Zr%TLTZ4cZ JaLSDcgڃE6kzU?P ZO$m% 4R50s&'yuE`l3L>0_qw{dX1@*c K%{w<&?ktA&gwkxe]n=s`YŢ\g^\sVp.+iR4v)!cTeub2\Au 悅 7#3-Bn}sXRV!59՜h>|lu LBHriOa#Ode}= HWɌI-~ T|M.B HT8`*୅S4j0W;.,rh|SN;~RBQ)։0> dWHmP1:,ΊJy(&ͭe Ԍm-y 6,"Ng_/3,Ald[TSei'W\k TdV1VY,t 3c3l2,xcp <%: X1| Xut\d9 mm>$0l/P0*xdxP~p*d ; w*V1,]p CjnT탱h aU`K,9-z7fodsF[E|pە"X0fTNELtB.CXRu[ؐy^]oD >G{XB):d*}Juici#\b9uF ;.3Er۾ *oX|P.k[sHj5C+ d.j7bB3rVW__ KnūKƴlV\:P.Zt9rRe$|kZ0wa 5[t%y YUyI}TqES O -AwYf*aTBSEY1:@k~OCK'N'>LdD6'S ERE 5!HTwle#$Rj9'msLa!gդѮU_5hf9Js,wl7 Tm<-~-Fd]ѵAYtN7e#lB5cmyK ?NoK;B YjmFiiJy?K AH*TNy[GyTh,'xŀ,43H-JgK%JIl!5^iv#Xj3,Yi஢LT~l_MZoK#UV;7AG'Ҝ N*i1DUe)y Ktb URevuةB6)'Y3+uK yA,sRmSW=2P' YY/\o-nclgVn|a lObȈf{~3D+_dZ6Qa)nEaKQydrgaf a}'*m=-wBNMzp{TsaeOph%%Ia~IIZ)RR/Revwan*qI&n'DbpTbiJ>wa} gilO.eTa @:oR>y56j'bqly< /'I' (rK?I 3gDod'<% tc; ud 3egn? con. Or peras at Pizpa Ht.3 > 8@ tries to take me on at a machine-ability contest. Do you have greasy hair ?? : No Are you aware of it ?? : Yes How many letters of the alphabet can you say in one belch ?? : Can't say i've ever tried it. What do you thinATM5 UDv e(m_oChCfB F-BoFM TqT*pUp&܊R,FmĂMa`KUCIi[%g jl Z79mYEMg[7Pv '&h2†8Z l5ZNSckݚA=4*[Q@G%>y2B5ö&ALH7GEMqqO_f[yMme#OuETyp:UYH$N7`7 c,u?mfTD5N j^hL+M8V'5^"[FtfS4FH[md&)0Pb;rY(rMF_'nڨfoXh\Js-D-]^M6쳖l,N+;vdkòu -+$S@lAuck`XGCsexꨆ1gT")2KvNfmCd@ d% >)٦|Y$@NYŊ\p-͖닚9 " }A`F*$f2AN^ C&nut,5#Hj/4e#Cydb M ho[W!.A"4SbOeEgT3e-A"MӴkmZYPdmb>h ]Md?6!;5F _,U6/ 1=ڌ :4HL46(RmVF5jhmsA -gk^P{ei|#^ (@'hm5%8n7+W 5hxfGЀTH]ib87-"S,1#X20v kaPW 5v'Qppضnip>Yw*:bf>pe&iO1w%U3^WeR DayfIbҊfA6Y`޵ 5~;6CؙB0i2:Mr uBw ITg'Poy>VP4{j1.sNj|cCj,Q8e6FRdrRkY;EfvOS<}lTwaa=:*jLzdosGSuj%􏪤F8ʆma1T?se8T$[wfV6sy}rf-%LM4cz?. No-n?.e au mdbq4 8-K8\BE r^/54~6,5Zie'@ rCX'HZ ,M*^ ̶'݀CWyd[lRI[M]YsKDF.j*@f _֘dIGr'-sx)vrwhEwXSKTڷ[W8e[R3F5BN=)QjṴkKy#]`U0dW(YH=ue3 >R1)g]YaѼ̶{`bek-T=&F{naYY/6NazKI;,bW)ޠRpt1O$ wn[uN v\@t[|&;fڟ1hXTEhsqC RJMfjhT녅N*]U)k)5V[ְnI5gxi&I8bCsGOa-p,2F*RP9^6J^j7K(f*A'fa50@i$/ShٚXr;fu{g%wDbnb&Go1BV:f$"1R]ZlƼ>jkDJ ԳC+Re2SB.UQY]+N zp5>HRA ;6E(S VBC&]6r$jw]4eocQHOmu2glr,ކ xȁe>"Ǩ&KbFR}ŋAlvStndÒ> 56 u@4畭_~uhS(-a-6o0ALVQNWTeA"T)AMRDL'GO"DjHGO F Y{R_P5L_:VE_NDOW9Eڑ"OhAXSLMc[H9yK|m'eS1i'(9G^4E[?B\͛WqIsMنRfOWAEQE _O #RESET;#PE{C=ˋNHAtVPTS)wfS~KE{t̖[Dr4 `ץuRt B.Je2sچ^N)-F& $ѼS(\Wbk\]/{mL]byQ꥖Jek_i9eGiB!aP圕*tdPljjޞbT 5y]:!n ЃwEg7UūrmmHdW2cChrb:e2ch lj-k> v:BRgEA ͠y^\q"H%UM'F~lꗅP Rd o! ne? ndclag, tee@(vana. I a it#"MG_l Bayre's Saray> NhtOt."`  O ATM5U6BfP5Q>Ԃ6fBhBo-$T%TmDUR2Re-F26aVFU%>ͣfUfs (X @ - H& ZٞfoyH inoJt܋Z@ ."sFVcF~ߩ hWGVc/d.[j e!pXE:|7vh$뉆[:p^ 4p^r]V;=sNPPn#Vˋk]]G%%ZjbIX0Ćg=$HuBSWgs鮰gOlom+`o >U*h-{t̲ v>I MUS!g]sD&A6Emï)HǟCoIu6?`Jb jܷh(dC(T* blQbgu+e8XugY5ex ݣI~L ?T[AO^axi9cPsP*)E;EjGcul"ivCF7HO A:_,by-AuU duOv e5 ]e5FXͺ cLPaՑ-TTCjm}:Un\=yAgs_b5/V\aeQ#ݿUmt&ybZS 񗫀'!.(cקJW'[:QhitVnk @SqCA&AfIU8J]$!<;Aiavi%S-[3pP-ݱ*03gl.p*YSTg%.s5NY%vWn-2Tsix5mSPNyTJC0Ւk W@cY쳚N;,4xpJjFZOnJl@(+^HS`t%UX'M5tbNswmc_zsfdYGQ%:b8"I0 S SORRY, I DIDN'T THINK YOU GOT THAT THERE, IT'S.... RPJce,eVFJhè, vP-e7$dP (BbCaUud)TjjQ2vydvNt-7v]\l1mÕ>SAO>xnSHҢjjauQ4(kfiKcdV[(*f5@1P..tX >T ^.dT/ClS_Z8 z7*LQ%KYp+4cUVI=)=]zSyJ:I6 t/>Ln_ tUK.ex9O4" ,QZd|k$שFR} \5RY%\+KY?4籠gb2uHLrut0V N>`Xv_HepzaZ(\|;17YSSgK\1q@d[v2_cY-e68RYrƵDb gm}2ca,LQYVk&-a.ct: &ipRsWYJ'#uU]ӊ(ܪ(N*QC:ݠ. i eslgu{Iulct6(R~:edr=|wþ^:Hy#İ6(0~*ID\/[q^Sm'}wa+GE Ro hEr /RM:'JaZ@XVye"sSah0Fz`RyiBA3m+. ۽|7 trmg'cfP%da$n&e1s84yRTD'Ldgx i_ly #^t wi*n/hSPQyrMvY[p)`QI И*iaZ0V.C!pHJuZ40ZVMI'Iƒg5\Dbq0CQo.^h4r,XՂ2WY2wU;+rFblDG&͞&͆vA pU[d+gcm" oB3 BM(juU䈜+arsfo,ժjo!fL|s"mz}r#NAemsmYSyOI퇞 mQg½Gx)1'Jwi5Ɛ:Fڴ4'# 8!ڷ`^AdtS5JևyX--5h;zh᠀3/R iT Pbؘ)2/aSyB'WoE[/1\++k['vI%1A T(B&h-BiM+M`Iө<T' gPծ'wOh0ZJ(,wo4. PY$4lj7X3z,m cCwbJ.LW"c+\6j_X4mT8!BOS'43(lGg /UsR֒vUMe)31kV*> Sn(fF=`}RSDU6 q0ь [`a`Q32Gkqda3Q_C46xpmKClDV,I 1~ʐ&څa u$M2@6Zҿm)$Q]mVUMŁ5Nυ3_F ceum6uHK\ZrjfVNjs8K AlSl&:A(VFX̲TGRn_SsCcI'7i2aMZ1qWEpKyyr(^oű5`9~bKB6NWjRSWӞtu!Pb3Y[>+aTGԊYVk cm4xhZ`쳘,&Syd-w(=aI1ÔVXK郞 JLHRXwj'E63P%f MQeޠ62lP\CRF_W\TAѳYkUv?~R'ح%,\ W2y􁍓"0`Wۂ hYa DH(0 qc* l?s\kOUͻ@!?p1M\\{Ň OTS ,}f"ҴҰ_j@es }mmdeTW '{եNJ8TaG(fj B9*m^JUԽꩃL%OV4?#a, "|Gjݟ\B0YZXCXU&'G'SNy?gU:f*UAtl''DdOWX꺝RŲI#ZFVFΌ(S@GŅjt0=I$U`xFĘr˞!# d=-ieD04P*D! GH4K p2MUytƒ65QX9Q[REHN* AOF4LDdeGtSVt fj0 dwm ˤG[mj'wHwj#-VE+K2}AڊgT^t?]Uht,p,g3xERgPw ZΎ (C) Mgo#y>zHp+mo) G/bTeeaT@{AuAg)Baq߽5[ lsюhH"܏[wݽ4A>S[lƭ6=n ,|s v blu|I4Ossnd)dL)-c+/t"9Roaa4sE 7;'S3-@3GRACSU 5߬l,kyd |wAN A|PwQma5gW=wJL` eڭnynMcdb87wVyTbV(0UgՏŏcsK{ND5V`^Xq%eլ/ndUnlѽ䝴8JGPg*#M-X xبg!;c1R&CKgOnTNIS7Fc};zΨv|hK1gd' rGXys{`xLa 4P,! C(`h|;'UH/O!t(3%\4X 6mm9mV0Y߽;nMl`!^y7u4*"I4aKf#V1~F*'Qx6FZ0hˮ,-Kk;(r<5yxߚNimUf<@ l<9,~pg*gUʁ aݛ~%whƫ ;N 7`bdc;5X ;:C+bJܧ2ҕkkym[t-ƋG7+j(.x:ŴXG-tXԵB9, W]xkVhn`-s'CYߴ (V{xjSIXMBaSƯ7K'w1ǭ4,XӆomQTR AYe[Ԑ4/` S '80T'wP Kԉa Vm=P-`sH38kuXd̹~j5R1$q@s hVfp`B4QmJf8 bKCMARN EU"Yxyvnct|-ի-,4-!4-IBEXN-R-f--oyST^聆 xxY{k|yZ_W k8@+ׯktІ 2FBY 6yK1vJWՋjZ DMvA߸@<1`e8LyS̵F4Xp+̑ JĀ]IY,0AyJ;fJBCQ9[6zZ7l!rV Uh`逤mjaz@AwjY>9RtCaG;o^vZ8`$^k"N,Ȋ0VԜvwcacЅ\4zn[`cLH Pm˭VPK!>zWhc@O5*s0͌,D,+襶͆sQB6nY}qP$x_M}Rp Nf-D9h2Ѻ*9I|TzBOB9Oms❟k8kC $þp5$PΡtjF*o-%M>s-~:YJWhBb|OSwv= 7aTVS{YR- I1QJW7W![rLT@tamk.$9"oLy%> Tp6ʨ ) F+pZBzep8NI%eh06cMgs"25z~ܠvd-6jJj`)TC[kGMAp nnWAE sε~l'`7T7H(.L,: gFqs `͡r‘b;fILp_aS1(ubz[+[36u4kv8%, iљ\ezmjbio'8E6IkGSXf.pYWdS8?s5`Qm18 U3?gV7yUPAep.,7,1iER MA Sba3ZS v@IHz2H`S3ʷ)eUquNQE.NJsd\!l2H4H%C v@HSRF~3TR`\{4x G5BmtWdk/ΨFDkEYهBspu9+(dVY)Eޡ@Gr k{ Z K-,j~hج|6WPI0|h0ZaUҪI`9mHhA Bd['U+i0ŖqflWL3 12GE>4T77)no,F ua5̳u -mpXchv40O8zq siEVZ%RdR#M4ad xhy٠v7e֦-1Ÿl7kp {EO@ATzlij^DM L s'CWMaGCpԼ@wqqB:F M*N{E~ aMEU䭜jZ8# ?"Xl`˳LPyVfFH{j.'4@7҃Avɗ oU[5ޣ#܃]  [@7NJBSkΚukޫ}(3 @ ֻvh3ak\M?jOh̀rj j'I*,\uWmcz6I ބ7 1?M{ˉC662{0fmTAL PATENJTt;[r7sHp`ŻA/Iwh1>2FқQ%l ewaҾ%̝XGm ̾@@RdrvQ`X%ǯRE%KnC Bq4(3S:J FA;@ X P]c' EZAٶzڏasRekTQ؅15:gY)[=RrW.H -OIĖĠLdu p E3J)o۫V( ڛ[^td;/VAbUISuEZKVy3Vf&uKls5 (cY(u qNX!Ej+iMB+/aٹdKjIYY iHO7 3%H &Ȋ5eHۥܜ #T4O4pՑtpQ++=WDzc#+ ZìS5h6ZSU e=~y,n!ldd`ht1?Af4Oo\u\_nqm|a*_o\՚-)Rpyp{ bgaBXD3O܂S\T.SCJTETKUN/AT5ڤȪurҩ}%L'Ekse)öRC4S5U<@gap?ͬjmԃ Dasc >t9t.|VERAL83:q 0 -1C2^exc9' iaand aily mf ne ,t,atP it's jt =o st!(Agrajg)@ 1Ӫ2jAVr'Ohia*L$t?%l2vm}gHih՛5gv88(d2o橁n Zvٳk>(EHÆyQ(5=XK?8 |p#Ud2͇Po-6F-I+n-GH~/S-LN-L%-(Umޜ?؝-iH9h48(XڟWtr lxWӈdE54} MpknX%,"uG@3urV pQ3ob vg~'ۖ؎h(4\Ȯ6=f BT3+Z m.P.V8h8f 4e۬tyV*S'nmf}njgF0`"bf45b UҲ#um?Ll}'R_58tQ`_kbɇwbWK|r>Llu+׆|S6LuᚆhJ8scV"@Y5i`5*O*m - ЭЭ"ҍ.A// Bg?<JNA B?< NA\#!L@HB@BDa@?<NNO g?<HxHx?<NN /<?< NA\3@3wB3wD3wFB9 9g 9g`#FUCK FUCKfa/:?< NA\ 9f"HyHyHyBg?<KNAHyHyHyBg?<KNABgNAB@BDa6BgHxHx?<NN LH@/:"?< NA\BgNA yN <@BQNuintro11.prgmainmenu.prg THE LEDGERS DISK MAGAZINE - VOLUME 11 WRITTEN BY THE UNTOUCHABLES This magazine is shareware. If you enjoy reading it or find the items on the disk useful we ask you to send 3 pounds sterling to cover production costs, disks, distribution, etc. Please send a cheque, postal order or cash to : M.SULLIVAN 24 KINGSWAY WEST PENWORTHAM PRESTON LANCS PR1 OJA Write for details of back issue magazines or other Untouchables products. Any advertisements in the magazine are free. This magazine may be stocked in any PD Library. The Untouchables accept no responsibility for disk which do not work or have been tampered with if it has not come straight from us. Pick a choice and press a key : 1) Run the Magazine 2) Quit to desktop A"xHANR *I(MI ,HSN&`:UgdCDE`$|a^g`|aVg E`&`| aDECIh4fLf&e|`@|a$J*g2P`f``BEg EQJENu&`|a84@HJ*fXF`.a2I|aʺ<m|ag |aEA`*`2P:`aDgt@IP$$Q` f&ed&fg^|avg &CrtfTATAQP`Q|aJgCpQP`QBC&&H&&M``NZ&x +ЫЫAG (KJgrѓB(g fG``NLNu ``````ATM5F-`˓0H@l/ X{^`7LH QB1D x OfrjC,L@(IHFATM5{TEh\AFF-C0VET;N REsT9 =(M-K2}jDQg%0:hs-5=BibtA5*f-C\0cr"{Hj  /c,RIXNmfۻl@qw%19T0(. AK3Ub3V!6쾜QC@z3A iv * {UC-tFC5ZknS9g~u¬H2#F` MglU2s,JKhh 1dnP)l~h_Uf?Sr.q7a/nQr]Јs&1,691C&//eEэZpf̸hM [uSߨZ.2GA#RUdi9.gI12آ8(@l-EY--|6~LETj&2$w64V+ cz!dye0bkdJC0ʳ9V6 P0x2FA(RH(\Ws@ dReXdXhj9(Q i@[f7W;h&p?P"υ&hM#Z͵$1e_U]\YZdދ* g?9shIzuKX-P=rn\Բ-ؠKbN(Hic-M˲8ĊI8%ԇ1µS/DS-8Gu lu8J5nAoK8hndeąo缥A06q1T-y笘 95ݚFj*x`l)h*+UmXNϕ eYJXh7bn4b*li$SL!6QY ovf;(XՅ\Z -75O%#5]5 W0q x2H`Hvn0\)DY fb.Z4XΖ(+#1lHZMNdҤkATM5Ii!S@mԻx MA#t)LN ͹|DaMPNQT/>| ]%0G+YFF iH K CY-ERLN L:S2hU8B-ETHN19>AVL3YGR2AJG1N!Gy -EXCL@?E-f.RE2 OW uVIS5NSCRsT`[q yQeΣ={4}hJQjni/>|~cYGY:M0^7? Z_ mHMƈr0Ѣ^08Nz 8. /GDOk:':3N;<~`;hVꇊa(ոeaj'fu2")9Nv bxWIP0?:tɁiu:x:uH<@}LB<g)T.Dh|JhRX@8Vk2+96^3XMzYf[%lGogk $@<8F{@X5&akcg6 +EH9sI|5\.Pt 0^ p<r]-D7_y?/;.1ؼGw`F}SPbG P=(£BTE FN<}MFՌ6*h+EX8'JPq 8v x˙8S.:a5E2'L9bwlw6Yӭ`zjg2dspUxx b'~ j0~s bYk+)'B V0ګɜPPFQNuFX/ QLʓn]FS (QM6vEMT`֔cl2;JyXO7VrxRol6?٩#xةT+ʦp!,71K (P*7Q֭}0teڿJ1*Z(ŽQ` f(kLcƀ5jy0K8jk#}?%`]0^3޴3aI!4SLMax1<\GzO Q]1VYp_-0,05yf&ˬ.0Huyd$WLH-.o6 ;%=F Xy7SP V}CpO!8Ӧ' ҝ0 ,P S)GA5 ryX>)Ay ;:ck_;@?Ic=9֫ B|8F@!3CSJ0I6A厯kȗtB;onԎ7nj`@NAySꕧWq(AqK`qPe`xqY&&4)jz]h0XhJ4C:vH9Sܐq٭.bgBH@>-l =GgF9e8UY\~phf19$vT.V.IA]4(<-Ul+A-ϤJ"7^W.b#3\VCKƪ'rR<4mGGh-O0B4zêpD{M9TS O*S%1DRcsEW PL=?ï5(cZ2m0dYG>(COljj@7X#v SE|QmĢ.fU:Րd)n gA3nuLqܹ>[9SLM' x |+ r1\ioρ4P[y(gubJE=2$t0N;oCk{rdQ _cK-w0~=ps3tfuk1 ya:Fmg-i4*@Bʙ `8UBQ"FnzPMYL׽u@5PN{ xdH2g-{Ɣtf@ث#4M´h6v-FxUA ٜ0RdmmtmtpmF?:^N2(j 'lXS?M60CmrAZAy V(U̷a95DCSG.cNNo Wَ++`` kOpHa8h}$'{x+/D/G<(ExEMAqZ)_m-.x#5(g2'88 q ԀN6c0ZPD*s1TPO :!#,eXF9lR FB y,>[&7䐠<2h s=<فD:&9V"'k;zM*zbAܨ$hhoRgjRE\T6&Nd,]VZ+Qq;zhR)VGF%pirp;]u%dc@8ihw-͵1luZM}@@ R p2*u%^ZATIxkE*ᮢ+9@ &*=Ufn:%D/Eg4dh^^fI c1#zBYuj&AJr.GBZ25\~-fRY 60"^(T/qAV( fmg*x3Oؠ+8 ik.]fqE)2kT]V)ҦLa+v6rt1ԴT32f6LfXI_;J/B'|!'Eo(F4cZRm '3#hhT?!ra;P$#=0܏90b1НІ愳k53&d ׉Drf[ yBnyp&JueQ" ob.Fp`jGX)* W&[:\0%`2ufC0(ATsC >3`ġ;);9g39L(4o!'NHG6?0F]AlSy!fPh( @zO,`sܜc:AqsAٕؑASKa),@$m燄UYwobrhG M@tQ²}A eP M&)2]F~;rIi&iDTW}ޔi?T [.#v@S6e9+D)bLwRY)8;qoL31;g8&,V+JnK>]/CHq.^hC!$@ !N`Hx S83x^. l)TA"Hcj9ny&*e(r `}26ExaƩt32'8 ` lPM4QyT->l7ʍiX k5)[ eU8*F#f *1EX0 L.*FREdDPPGUK[́m0Djpc#-hRh`x0WHgKna{-mCb84/u"#BA#PĿb8{ߣhtC )@ٔw'3ʷ W-8N3Pj @+@|K-|apE&@ X5S.b| lX>L BXml6"VMm-/+ Ѱ Ig}t c5Z,B+5ЍhehEP Ě{@- !ѸcBN^AhnR٨LSDvSr!JR;h8Eg4bpbVOU^*G[lINK^:@%pmBhWa$45c6Ph41ag4gguf0MT}!ugoE|L?+J^ĚQSw5 zj LMgdeDvO[)K-쒕t/}R$, >G1_O*4Vf, 9&,\3kU Y2MH3*ldhZ.Q$&r[VZ"Geڭj2ˆXϝ1lxM)6 v/ZXY&IxቓyH1bRDsY# r 0Tct|ơMhti"ff bBivK Rkb,GW Ʃqha =ds`*qz|.ck 'es A ,Q,4$m29 K?:cwp<{*KW,-f~[ʋ`L=-`? yigt:+d S;Hp3 N>\pƝ sW[,|&4-p$ V*&[b`bO~-m"I%LB1p 4xcb ;x6t٧qauUCTN_EX COAE>O4D"3D"TI)Uɖ9(޷)&%m09Da,#49'$40/M:@AJGV௪'v:j,V,8rwK$3f3cr= z)i MLAcf-ζ(&,ܡ6@Kr+==-jYq/%wUh3is'4T ETmYYdexeeW4FQoz visRH"C؊p".'eGR'B^TIUdcocc'ЩGFWhDu }ݱԁEYeuLj( E1j'hzTALB8.S!d<{zVL-JoKbe IlU*uY k'dwKfiXj-uUKaX/k[I'Kvuŋ02Y0@XBžLI8%/sa)c DXx-bl_Փ/|e +~2Ml(W4R0[vJһ@?Hsؐ PUV**lnck 5*r?Sqgu 9Fczeyvse;<F(X~e<\X V< {MA TNuE}hetewitblen_ow man (w reve re, is)tb8a^ck>es;pEEND. P } : trip, since you have 6 chars space to put your initials in!! : In a 'Clean' disk, it's 'IBM V' 08 - 10 : 24 bit disk serial number!!! Not really very useful!!! 11 - 12 : Bytes per sector. Like wow, you could have 1024 byte sector disk!!!! (Except that GEM won't like it very much.) 13 : Sectors per cluster. Clusters are ATM5VrO=@ǹE'SЙ'ASTX\ ATC5Nb !&d UE OF YR} EXCy2T MvAZ=NuETajn-yFr-!e7LB@ޒDuGUƩr%5!Yttfe.aUif`TJ'IGu<([BT\RQG|:^cߛofTBr&cWyb%odwWJ ep/uRM*Ӕ vhh--̬J0aF~Lc ( n)) 4G9R봕/*s:9M)Ds#Cra grg6ܐlby RodC|s4lMn(B 3DNzI>xELAND!GPOea(l 8yu T-fkQs,P[hwmaLdam cMueAn& jtxk X a)an̯t(ow #arit is o e9 d8p?d Ofrever.@ } 10 sector double sided disk has ermmmm, hang on... 81 times 10 is 810, times 2 is,.... yes, 1620 sectors, I think. 21 : This apparently is the 'Media Descriptor Byte', which is not used by the ST, but is used by MS-DOS. Wow! 22 - 23 : The number of sectors per file allocation table. I don't need to tell you how exciting that is. 24 - 25 : Number of sectors per track. Usually 9 or 10 or even (if you are ATM5Fm`"L;TA  aMANR#,$UrSNESAyE CP;ByG]pEd!$D:Sy}S 190 av6 BTqUZs"m%@PrpcDKS5 Uְb&T2k=*sj_a5rpe%KEAc m$ofZXf?w:Y%Y1FT-9W2G] a+Ta2: ^ +4Q]UDWsb-]D#|dG}0nrCV} k"@X԰lLi yIb,Oh?'{j#{ g ssA =avfJͧ/ʏPp.3:fJuqq;WEU6rIJ5YtٴYd$YgfegkkF+. 4*JUJscenqTwe!Gk>exMTx=rd'@[bJuxm5!e:C$PTg' WFRJ2i{siBUKOjPJah(m *sKlFJyobem< H=MvlhqEO%hMx#4 'н3i-K"6\^%mbvFoZ:MX+TU$^]Ur?]dc4F =?λYKJ"УY hvVJ>-sK`7ͨ4 ݴX a.fw'y%?Ƭeb'`(R2`|d)a}zYYNul,p\e(Z!F;U_eOcF, K{K\WELe ooY%SM3+sYpQwbdɡ$݇Qˌ[i<3v*f?7nW:;Y`6TLw4Pz|0[3X-)*˰L5’2Q̒Xg< FYye E+BƸc N>BG;.cMT+4 ±6mf֑2۲bbnTJ#A49ΫFefF Hiд[zUP|jl4@<)Bu\te=b5 z&How k-rI +0 5Q?0 /XCykm"0Q?waY.lm_dPL$VTrA@hy(5Gmf'LaFHSn_vFL4;7nUMWfSqXbAD S@^4mme-f@js)P 6RrSXÐMrD!B_DbKކ:nguIQCtaqP~.B+uᱴ[L]q!--JMЁ%wݙ#R3&XB2冰,%sm)y3܇݊Ti[LnI.S#dWJnUa.%y:˘"I`Pvimf)[I,|ON2"AAc3TEgEM G O}N>bE MSC^OWN x߅9sZ^4mg9-g =D J;)|jwn"W:ܗvme9w6I'/amw@%y46Znmutz+ep5ڶ EP2uuBW9[u$65S5peJ@FGsyVm ajI+He;*M3\fJ[*RU(?og3p{W[˪u,a<GDerU\Rz֒5R-gNQ[fXT9/dDpr"G4Qhar0# D.J n4(_'<,z)<-w4-i$-}}-o----궮ci*.9Z3dLFiI-Xm͹a<45y"RP=G!cOk44HiIDC)g Auݨ sV C(wrrZAStD(W21Bi|ͥ Us'&fh[H'YJ*:)TY'vjb]U4s) 5l2 Mf0m*B_xB~!S PeTIna7 ydqjs8-Awe'Asls irh7z/yu MQӉKYG'J[h!]Tyks.GDVe:"iBye"QYIvhxOMY!b, bmSy(i& ER3 r `tqgn laygab:s n"ofds.I wad tkPi za HG;t Cetsate rse.l- 8` p } u possibly write a 512 byte buffer to disk. Yes, surprise! It's that good old trap #13 rwabs again, or a trap #14 flopwr call. And that's all there is. So having convinced you of how stunningly easy it is to put any old crap on your bootsector, let's make an antivirus bootsector! ------------------------------------------------------------------------------- Generally, an antivirus is a bootsector which is there to stop any antiviruses edging in on it. Some more complex ones may help to detect viruses eg flash whenever a disk has an exeATM5 AVgD'HjtBT ϐENcI$asԈ]>T8-+m:) @oE#ck~!s"0XӤRE IS ( N ?OF TEwO SES|1|E$]Ɖ@,@jYiV40ւki9aN)B("81~Ֆ:uiv 1 9`_v.Thm04|͒İQc>_TY$j J0Od(aBuC4d2ۯ "1~BE*I`p]ƷtZސz@2e<@Ye0mGg}c ]eg/-lha`\1qPMud7(W@`2>)sa~LoYYy3>TQfIտY Z"O"UY|$*4VttdlvpgL]hjM&ݧ٠a샆(pGTD~qE#(`kS^:\F+Jf?hPubo>4b þyOsI^J$owͪDBV bh*ݠ^)(cP 6TJV@ 7A}"I1ڨxhޚpw Ko9.i I6fڌ%5Uca,{i-L-S 2p@*ȠBAw#/,1,Z܇ї2_l,@"i2i;(UU=Mf sQSjQFXn-¯-*[w:kEͣ-ɻAdglwuN.]ϊv}uI'eK<Ʃ]e:9 M!+d))a !s^fҵT3r$FyBbh r'x-ӭ?*J jYX$gTx} t-4YTWb*.}ZKVixխ U'g6uRQD/sgn'(UdUeZ`Oܱ"T|Xn%]suJ4p#i f =c HTʨ v!Tof͋ QK?$ Sa,yiIg5P#^CtrQ'&isx`dbT0 +(-f fIm3呤.wQasobvv%l9Οww%GTn~peadk& ׯaI}{~sad"Doenybody 0w m'na e??t+ noacuwe:d3"N2o, Bt 'i\Nre rgs< a l".ȁ \@`  n ordinary executable bootsector. Until now, that is! For this is exactly what I'm going to do. In what way can this be acheived? To do this, we need to look at the way a virus on the ST would operate. Oh dear oh dear, this is going to be the contraversial bit of the article, since I could be misconstrued as encouraging pATM5m Mc Z_¶SSMajK{le/%D#K#hwJM / Cz7tRi3g}FGX! ;sYdW'N"FREFA 3cay7ia -z${rj2)^4~*K*CDi ~@%8y9Ts%-f\nSe̼lyg<$lck"! em1WQ4s2Wb6ceve3.HHVof!Grd-2a-vOhy godOcZP Cman G3tSal, wat am I?b(doobw?l$ `Use y{r }ne-in{x re~d is frend.p@ m>@ When you think on it, a virus spreads in a pretty similar way to the magic 4 steps described above. All we need is a way of calling this routine every time a new disk is inserted, and a safe place in which to reside in memory. One safe bit in memory would be in the area $140-$3ff. Certainly the Ghost virus resides in this area. However the English 'antivirus' takes an address from the memory location $4c6, adds $600 to it, and treats this as a safe place to put it's routines!!!! It works, but it seems strange to say the least. Leafing through ST Internals, $4c6 is reffered toATM50 cQlBIDϣkd@"HF)u KYM&p4aFZxo'1IJ*]d-Zd*mR/ǩ&f+tQN*,r-*$@(Z"8*0bd&RQA@ HjC2O[%LT+lu/HST[ɶ!}6IK¿ GBA.\>AIDMOP(P-HPB) P8PcHjb$f"XL)r( X - d2MP!"@r(~}BQ5"l,H:AtZTP/Ia+!Лt )A)e,ÉX c>)BSJ=L*' X(@  >@... where?.... what routine? Aha! We have found both a way of reading the bootsector, and a possible way of calling our routines! The vector which fills out all this information is get_bpb vector in $472. When this is called by the system, it pushes the drive number as a word value onto the stack, then jumps to the vector. Now we've got all the information we need to piece together our antivirus. Don't believe me? Let's go through the various steps of an antivirus and it's constituent parts one by one. First the installation of the routine. 1) When your ST executes ATM5? Kb 0_XǹiagٵT4C^1YKލ X{5&5*N.Q-(luqԂx|n# đuMsApD[ TB&ANDVȒ_vNH**XnfVR_`fO W'ssvTSLZu90p ݖsU$ FMܤSHy~*mOtFY̆]NdKY7jyƓp8璛o1,N3DP\q̜hƩEaE4Ij0h8qƌ58iU/CTC۰Sq"eu8y2Rw46ک wCeQCdnM1'[Yc\OCLhG|(&1,y3%p.wumfn1f tVkZr'Z(o,*TD[z*@THFj[,a§mhl{m1L8*=0SAsŽ>F%ՒXV/BPTV*I /ۈ&h-``;2I#E c5ö˒G2]h-fȤJ vd^L&;T~ixsR('U_zRmJ(0 cb1c5uLlܕ pF0aZyfm?h໢[,+.>cmrf)E6+z޶! t_b,O[V1F1`2/g-(3~[ͩ!; Lً ZG=MdxO/cSdS}f2-dc烫JbeB!d[ wQ*dXa9y,W6*€wl,(JıYƦV7ctp35ϵMa+(a"eIJS.ԇT?cHlWݫTvs PzjQՌ蚋f1 T;b+z'.dA@|v)d#KMYb-}KVVs6lmb}midoz_bq/jUfIZWe'bCbVviK%'(_,1tyVyai:/sNi՚zƾmtEpFUC9K *5@󟵇FwuuLW`- ZUԢư('dH4"g)*JiqtJ%"CLLBjRClub"^it'emRTeKQiQ-ePX(DLպX- B_juI-pv}+yGbxYV@~QST-+>Vo?V*OhFp(k˞hx&R#\B"'*h_d*.*LB8Y`kYTfɠ') ,zLySg!wmIIwE/rLQepf[W ݬMDJ< F9) ET V39NsAirH.JHhJh 2MAk ja5Da 8',iʻ'3d|tuPύyt bsʢ7B*k肫dr op E՜stn^ X"NrNct^ ~ues I n r al f}m ?te god l/ aOs. ?hen correct the stack. Now we've got the bootsector in the buffer pointed to by $4c6, how do we determine if it's executable or not? What's that I hear you say? Oh yes! If the checksum comes to $1234, then the bootsector is executable! So we addATM5*l_N1]Acu@rHfBasaN.TWoC7η9 HaǶvQn3R0%s LaB(;LW~3c28z-5CݒkDӧD+&'7 CTEPEEy M\RYJLXry>蠶ڐr`fETe &/I1 .j,׀ [LjfxCOBDLx@# t@η,iܱ,U pU-uU#x!)4PXdP|0HN5J`LqӠ-H+oUƑ&nh'[@] f&W6Zz 4:44~jK5Z!_WY֍;M)n"M^}YC["EWdH4go"ubej8f)&Ϋ~mbj|b."SpkP*0(Eab,v˘mMaX7&yϖj@K}on#%ڑH2FLUuvCC,,U" LJ Ǫd#)Flسf  * 7rZpӕYkI䦌uD慛C4 PEi *fQnxlc Hpš@)_ZsZ!` e34+zPweXjjbiU$r뜱hcPstOC<)kb-BMu}R3(tҮYKZRDm`1Ah5QunSTIޮW _Dkz׶Pl8Gmf̴d~F `eueM]bH.Æf}.'ۤCcIdCdjQM?7(6bQR `% fy9W:2*2l+e; -vM(n0)$nڿn #tfeUZCieUDV DSEYAcyXmb v;08]A#wmiN)jъve/Ҏ~ }o¯ 8C٠WE AHWh!u GmV^EdPko Lܘ7f (re=NOP |L, $Og$lbqdi&MbE;Tg_1F3eyX}Wck- ӴTPhfo  l6bؑ=IjCSEl҄R PL鵇2tMF4ICk˪;xFEsRAN* P-b%Oo)%pE2F}bVf5Ee)j)/`qqF.j9}m,`X &lW`oc,2f *}98[QK_PKGQ}Oh8fAsƴ ôViXmЋҠ.1,tABșh)6k?vSET2.sBO*. md=>݌jd,va1q?'7n7G,^\lE)T@'GFi1C DrECX(v3XUlOȞ¶XCTh<&daeZE]pӂk[xP: Nl6L-󦥥B=ige |VڄW( Y_uT'en(F'ܿtzHPp Uꖅhds\6u -`gEX[M .dr$$'u枧 ǵ̰5] bugBmO&V`U$ko-vvWŨ"*c}P-~R S먘iZPg}[v2ީz'k34@ O#jn3Bøp5xlX?yQȢy-'۩D [`>^ jhu!lMNga. PAK i Œo1PTG'E] (slbulsj cm sXIQ3Bjfw\rP"%BwXWE)l-l/ڊjF,;TnL?1PSߤk}[DQo Ehz!iWL?No tRT>hC%p dgd!5L޲D۟W1Fa K9kY=w6 C~S+ulltZ=-aU¤10Fma/`"q[lYأ*& Ic)ǿKyc&g}t 90 H6ºI: 0S7 4P[I̽r\ X=-rn^Y6,}RJ$zA+vO$E%]i+WUWk쀿exd0RZaV a*ͭkщoKrh9\b)K,PǛ}wMC(~u fjn"[wpj1rPM+},P%,58kY윙e1TP7e,bᖺSn-NM uiHze`N߾s9.~^MHDG~cőhW&k cN4vJAش(5'M8BpS|ԕ0)eۈFIMhiAHKjv%V.䆉֮ n2akoZTN۪8vK(^,T@MJNmS!Uۍh`O`Vqzn1*bo#!o8`g fƑr' a8RxճRawW's;}rrQ݄1sLU07fY|ZC㦚oN .@{2.k}GE9g&A95_O  V,2]׼H``9A 1&Ms&pyc&pM]4{64C+;% ?:7V,G -TD۲Z) jT' `3XW$s|3 C]9Ʒ M2SQlr󘂱0Wfl,h==,N8lTITR2Ķe5-RoΈ1aʺ t~OG6-m 16m* dgږ͑R b$pڜ`5j0%/ZZAs|f0qBZҋ)d"bG,§K_Dfhs`f4%;f掍울xp+x9wWu"H5^g:0PJ}b $A:3 L#6P?bfGE٬Po_+pc7nPEbw-hh y'-E44gn#:ͰS׬l*˯dqV\]eR܀0{MX9^ 2xHj^3Eum%H0ܟw5ӪW\i2\gb-\9~Nz1NWjˤ0y&WJGO{,3PҾJX@5v)pwuK]SZᲺy|G{XPc-ڙme(*[yyȁSoPCARo٤ئymb75vky;BwPg2lƅ3nYlP&3+Q%Hv|Xof"m.&l=?AGW{oy9'Q njՖRUQspdeFxdb1J6ٍiJtƊy';I"zҭ||X-"tT# ͖Ǝi|dlhfj_L@y8@84ˬWNhlvmHbuk. c1 Lui)): eVG6!,\4ybV lMW 6ذ} G'itIP+?O괃^h+\j%&RĤ+a@ P\0.Phx6"LOl9U1ISTޡ"e+-cÀ3^>ǰ:jZm} }w"" Rk1-3gad/ tR[ jC ]s,Zfj`5)(^&Q 1*m- -3E5˅H6.O;hB2-Vj2 R Ψwt9lH.Ma'bl4\Aݭ5z3U{&fbnUSdudT#a4|Pck9Y0DaZ,rŌr.2x_b'o`HsT{e#L4Tkc̶) h0Bj)3a3Z5li._ox\eEtTssh_ƷhgI«fZ&ʳ05,sЄˆ B@ʣew$=UB͒`z0Ak.dH% ׾&rdF-Ā\JĆmYg..j0Q1F^ رT{fhgAjOj4s5NT9(eu)}mDUPbnj+bUMYD-RMduN,mF&CPDAmy P P[ 7RTeXkSt"R re#)U.~ٯ d^X?TmJ-3Qqdixf6W;HM20^׬ml09YÚIn*]h ":.aV-)kidUivtT^yHgԃyYGjTfIXyʡ6~V blӿvUkEp ϷW) C W>AVGОf+5Ne`/g>f6u6V|A9)%AN^u^(Xic HViF^u[ e9lVEEUĶƙ]Z>UMrLD|ST@ATM5#*#j.LB 2԰aVdBSvQKeT)5FRRRofCwtGL5Odd_6 tC5 Y/sW*%8{(nb*IcvWff/1$G)Wg%((aMFoڌ1j J5سE@6̂fO:a-w(a ixnQR>6aMe'l>,v tZ*n\x Cb: m&`lݞ 7U9`Ŧu7 CY5RP/q5Qv׳OWnOZ` rwVhG!fO|L,F5^­Y \mgqx=0,hmT^r*) 0dW fu\pW{JJ9w 'H]݊t.ՔVD(>)LHR!nB@~DĄ,(}1T@tS]6Mć@\0Ji'@MU4'Mj154{OB5&xRIؤg&(IЃ)Ӱm01TW߱0:z|WˤLtF ̎l,.čfyf3 Vt ?=}-@95RoҼ/ˆf 6vryѢ.5K'4+-I@4_'uIe̿x PUUttRo^P 8H́dj-֎Im@+rbm S$:Dı#Y̱5ea[Kgr9pqZ,\7[gag-Q-#*b~XK2s[d0T X#H )9 IR`D5NlܯeXyUs,MBBjqnX*w2T;+ eDc[#UmeZDeԠ + gBL""F)cC -Lw0䏕AhDs/A+dNFїE CDЂar2?Մ  Y q\$,I;0bZa;nI1t(k.̘\=8o5Vjpa6gv؊pi` ty޼X:$¹7Z\gJHeB5V:lk7h)8Uu (0U ƽcVqL6yh $E "xV-\#ಅbla%YRHT'٨Je~i`j}ͫ'c2ocGK .hqejf@='BB=Ikd?Rp=bHhYcd=`]dS 44nQԈdU!ԒpՈoTwNf>du_&S+me})5#|p-؎pSy('zrĆdxi0.BVʔ¸($/8Avm%ː;Ky .X4`S~9- Z3vd-U-8'Xm5eڥ-ЀV eJp$wkY̚9eĶhݯXq(V32rdDow3 p1pu(!UC[I[d. P Oxm6+pRp2d7MrmwJ;+ tpItl5nC6"JbwCVʎLP:Ha*w M/Fnj޿VbsXh7L=IjK=e^sk9W̯ iR`tyuDmS[ʦPDlub2 ʓZcDٴdn[FO/L@p?"jFmJ)ﴟV$edW`h; ILxbtwYh/So`i*mjE-SndUcԸ% BL 5X;s޵e{a -T)GbC՜wEZ{mS@LivgwZl>DyooFSc:-sQ9y:e5ͪ#4>N?jaLUpiZ}JMcuihu+^Ta$HWk7 ^<ΰ'c5r?AKbtl5!uM_-5'pTpyݦ~rzgJ%gmNyZ(yXb ?̜iFbfQPT騇*oOr18B~/TC 4JT auf FҬ=4g0Ae, H@7i-?z{RS@E.*IWYu d f1GJVPeI 46 k)tI3Je (Mcpw 6te2r tȇ Ag8s's e.Odx>LcStn-orT# Ela1neqn - Grat Pizas, ep>aly Nr. 4!7 { - ATM5 jKW$Argjpu-Vizy 0K13-?,@ aLbOC;L}ATE\ t- 07d*h$TKX[I0<&2Äfn MPpYb3`v=5Z_wL/R0@̲UKfdgUSe($=fnwYq ԔIa3eorl0pJ50Z3SE٫;ñs7nEXrx`Pd7B6ˏֈ:cO2pϥVYOYe|آn*cXae%F ln'd+Nn+v^S 8MYnT>UT6G, IZ%erY|Sj:heu o]sSTxΰb$o(ccqvr*,S#-19WHy _BYli_VR)eݬbV_J3؀̺dR.wث;sA+NȀ X EڎP`VLϦoHyI bca+ofIHyN w4QbC2U;)uitJ&tA(u&nC_>r2)T$(#&PL s:JLb2-eBXXJp& BH|*Z 5eFfPr%f,8g8``0L/۠|H@&LZUrzEP4 T xNB;ww X0Xf0WPqD QQ &Q0ACNbE` g(46 g<R04m5JlB A%0c "W@*Bj"$HXR<`z ` SJ9 r+fx7A], jxJ|kF%B)+ ,AgT ni @ 6 `!@E)H! 8Jya&gŐ((` :кtJ# T;łD8a}h4FJA%(A JPƔ%(A !JPC Pk@')5DI҂`Q4% (A JP#0. iY( H Fd$ ݛ,pK3ْlQVQDAsz"@Rhh!BH)Nr# bVT4ERPNXES!N(@:!!806Fr`Ns(F'pBB8 (88p@"cB AF4RHC`Gv K1UAQ,K2<GQQ#dNuDP[ h2,o$<7PvBȧB68 RAQA C0<&t2<:ԃQ@"7CaOgA,mɺysXl@eNHS(ZRB@R?J(%e$%Ѧ/ 8Hz(jp|m0<3JeLkd@C<PgV!HHQANr!F' ok(R@yl 7H@lFH p`8Ai =Pi%U+, `bTg : H!`,HH"T0@@ٷF# "PvŻ"_0PV_Kdm"`M܋`u(z`4`U L0`-`BqNuhn@!N1\$bpNqPOD B8wSHTlI #!NHPB D1F _Q@DGe4 c¾ 0CB28g t;K`6~ eF:&f@`awAD$mOE)eLNsHI= &l )T0t(,Ka@/ 5~ ABv"AB$BB&2ķw%ct'v< H2 IҌJԌ:nK0֌(z ~pyD (T:)ϠA*3B+*CUAEGQ@8ň!87 !2~}!qtX|QzHv("Ev)t"E+n"E D_1mzh#3.^ *_L4!T|E@+ 6y/~E*G٦ H an HR aLHa*"Am:9D&2C#`va3&dCprA "DAfA hBA2AT vh4 A Bhd4 A h04Rt AڠA7@ bAA d 4.P rAA?E;>A`A h4 ,NApA hB1A BCHU2KQ*Q*_! ȡs<"*`,;` uNu0vF`đ}@n0 `pc81;GhM6pppEG:tp 4)D3Á ÆggqFpDÁpE8p 4pKBpPС`IM}p=D@"i8.# Bp ; @hPB:8n4 {dd 5½|Áp!t!k8:%tpP$DpZÁҦVu 4Ihp \^ :ą:Pԁҥ;u4j8t \)gb}@6B ?D:"=VG? D&AbÁ? >p`p ip  ZpApu܏e4@9i]B8(Gp 4( wp 4:$X.@; , ~B\M ( z"`Xx!nEXz R~$*bJf*(H0` .8(N100*ܤ2*H&L) 0fTA)|Xm4<0uQD3D3ABi.Ct ߌn J<5p$S@ wn@RRὺJղPlTQ`4A 4 EC| vz𙚐Cv9ta"C|9paPaGшIa(X *QpJcfvATM5 #2Moܼ`BFmG1:An/Su2b:V MGq)TbQ-(GJ@'TܚBi-ev-AayE^ wU߅LEy,ĞTNghleؖ٬/JnK ( )HJT*"AM~A-Fc~f'ITuJhq1ɘ)#~x:jB W&\iW"4{0JYvϰ(]u"x@2bї14janVwL^V^ ;eR4L-.O1`#EI`ALc;gu!Fst:FFř0a>E效i 0BCz@K(Jˀ%TOJ+'IРم/6.-( #L|rQpmhTQ5>uE}g(9ڳ3h s"h g,Ch'A3c0Ja(%=?=TDGB%gymޯE3B0Ur\p (KUTgx2BtK]U Eu靅g곥"uWQP-bihj/m͠]ded+1tϮα6p 7V' *Oa%#7f"{3d UcIh_'`2DoU"c TxGdMH-,mR~n %'d idTbaDNU:Ny_aJEaŪbPҺu1m~i.+<.((@) ي=,K ؜dKd IZʥ@_ p6Do,љj:PQ~K0}@P)fgFB  Pb[ E y/Hp:MTC?YQE͂u-Xj'XwhFB _lFIleZPhŴw*Wmq0AY䲅ʩumJk2sZ&1fmU ,s5u:Մ](RAL CNEY)nAEAjT8lmT ZjgQ6hosI C!a2;bSV ,GgA)g$F+LxUrdCbA2U3|eR obvambkybB;U r;mqf51 n8Gr,s6k:vW*0tԮUfPNeYt%ALA{W`y5sumc&w NQ*7M (P Cz COATExdHyCdYc3df^*Ej<;鏤c< KPpj zNbhK=V7zF ϩ 'owyxit EEt=uKt8!acY grsfRE)Dlve!;5 (d moalO',wdwl8.0P.STS;aPSiscnюsXlbdug`nevLbd{ht9mo anyf*br bks sWg tOaPex ofware. p } X X X X X X X X X X X X X X X X XX X X X X X XXX XX X XXX X X X X X X X X X XX X XXXX X X XXXXXXXXc XX XX X XX XX X X X XX XX XXXX XXXXXX/ X XXXX `z!?<NN @0<}BQ>NNJA6g|9HP?< NAPOAB a&MM +ЫЫA .GIJgrѓB(g<fG``GPN$^,,,,ܓ,,Cp$L(QGX /KN(K&YdB`BN/K ,HNRK&`:UgdCDE`$|a^g`|aVg E`&`| aDECI&4fLf&e|`@|a$J*g2P`f``BEg EQJENu&`|a84@HJ*fXF`.a2I|aʺ<m|ag |aEA`*`2P:`aDgt@IP$$Q` f&ed&fg^|avg &CrtfTATAQP`Q|aJgCpQP`QBC&&H&&M``NZ,Nu ``````Y %ATOMIK v3.5 by ALTAIR VMAX/MCSpwxUy+˂ll4Mۓ-MUVERSIc3?-}Dw9921XTOsߓ|ǗT(U4Tw)|RECOGIS;د'MYRWoʾW/RED;3**Le8dger0112uinWu>p;dCod`amLdme yMT !.a*o8^1uUܚOEm 9 0lC(2#!{ SbS$q1Af jM9O:+?kA xќ"s1LVk1セE, :gy_1T2R#_Bg 6莇TlQhrq)rb 8s0 #E$d:b:^:8ӽ_*MD0p{U8J9; 0}*^AE [ R y޲WrN*vhP9cx rRr:L H $FOPPx;2?8UAC*1ig4+o|¯ΐصB @} vJf e9\ݥ?Cp\Aq;D@L PTTXŸ\A NbN+$(O1"(VX>0&ԟgL'ﴄ0%2zԸ%h Q fVIC:}v8:!X024qq^I0}~_DDDJpL_r0jkI:2QSAj P*P;*g\r_<Rh}!S#J?QPQD!=Q2J"z"D:b iv{ aa()R·* XҜץBK:ԥw.߁tRLdhDP lz$x#X dpQED!nOQQn2@STA 0x*&C dSTAhSA\J"^q* .Q%r87ED;@gSTAԈSAZJ("@) ȅ 8:>1E8QG׏Pg>Qto6sp8#QQ>5S>-}jܧ}jܧEOTO(r*r>S>ܧ}ܧ}ZԹOԹOtJtJfX7oިHcQ~DFPkl䮱]CQ^cƆzEx"$&"^c¼xLlmno8/b0di fIqC hQ08 L5g^u?E8!f @{8oo0c##8z?g ru'sg%ŷp"$&=*W,\.\v((dA ;hp@y8iCJ97"f,D޹y: 6À.k P^ XRAxhls 6`Ps8Ģu&رCa`L0(R`ޤ|QǀS@;3[d q+MIkUnt cble#7bbett%you#tanythGls1z1+E@A1zd"PKB YeG]=}>FD G]W` Їѥz8QLa!:*t0SPO`@.;93HG2.1J 4Ab.O24H0Z EY:$UCCOD|'EF,IWILLE|LpOOKIpGOUTFORTpIuS.Pdd?itional*8-8Ri8ppingisNh`ztruemarkofalamereS:O@xL"@ T#XE$И!(1coClh1(٥< 2K;V)qɳu !bg6cn TsHըsw-MK9(_I7OU [ߠa5Ag jmPs;xؠ0pۈ#?ܐ+P} 80X$ ID  5j!p_x8; ς@=#hV',.      !`p`>!U4F#Wpא]xzǏ~ZWɈʓOgnCMJk0 $Xxߒ #LFC2E Qؐg,z2K)ꦨ*JbK(#͆E1,uֶ"û4CJax_%M )}ʙI2+w'KeO-˖>˘ =$}KF螣.)9~P`4\[BӠ\*A IpИS+F8Z):`d/GD0}<r(/\G+8xL4R٬,Q`Ta| jPpj(zv\$\#j=q. R~nѡyEAtX1nV"f%@923"S!OE/I}#$H'?)hPQ>0"UQ^TR@STde D"E $%fgh_$Ш @~ijjϬ45}+_W7'M()*+E*Mx"\"uvw,:;Eh{#2B,,<=NO,,U,!ߟmI<0 x`㡔@lP=XH1sȶiO`|4iԋ=8 HBHP )X՗HLӪ ng݇@‹Di)\Rh 6c3lH7Y``\:=P?zC] +6m=l.H;(,Z:vf>Dlh9VӌhPN>ouzC=VvGT+. yɒɷyKЮEʀb90i&Ý(O2I$$$2y3,h < &FS[fɃ,/A:J'sE:vϹ8TQsYҍy:c0QH{D?{0jQ\k|q:<:C:N:q::::::::zQ~\%\0\5\B\G\P\U\\\a\f\k}\qqqqqqqqqqyy1^>^K^Z^g^t^++'Zh5{9/0XsIa$yr* x*@E j.%>z0?~U|zσZ@3<8(ߵA/c>*Wփ_UOrOpƃ҄y0xK. 8qLtH' HƗG>'%ʠbA#Z=~:=R3j>wOC 9OR$oT~0*>ޗvH>z, γRA) P=W'N&P{=?$=hŜP,~?~t!71|Xχ)f( +p+rs,t|P!E܀ "p#P,$%E&D8'D(@ (p)P*A+C,-C" ."/"@0p1`M yWe B  A^u 3 ePQH4HAD5rdI!’`h2HrNc 4A6HhcB@(yc5 P\w v9 0 P?PZ;fl 5Q] , 4ND=!,"(B,زP3C@ߢ 4\#WfBm#>:Gǡ_Z?0}؀O{q]a:DLH@S]f ;xJ>AP!(A a:u,jJ-X(U?ZI;J.fS2jXw2j:sSp$˩5jxh(2KG0`K{0f,|?;u6s4fW(Փ]{tGfAL]fqf;-Z,"-|(!(!.kJ~r~"P@d@g,־,ݵK<:JZ[DB.ORdA0p!_wEl)P#P@Y WU!)[C0*"&!K1B1G2U(zf8t_M|!L(rn,ja[%TJ fQE2B$Q RA;A^~!g*vʦZWeZfUcc}:JXf[[rp1*S``U |UMHPV &M!T|!?&hEnI7I"zn!I1G!T226 |p@x <hZ*|Y `9 UBSj Ufdx2,K GGkB2;f_NgxO(C[A1"x%`6iث#`TBQY`H#Rk2 yC@2019XX" &f*v@`.OP`jOV6C!g!RF7gZLtQ:EpRNCtg^JCjB`CEo2]p^DgBNZA"$J(gPSu`f7` k`4JRjf&wtf?dp`ҼLe\Anxdq}AheA;udA@FFmg;"+ HH A$P.ԁ!B.HBB#$(Ej6r'Nu', ?'7YW\,v,p*Rν;Mʛwkj^%Y'T'gKhCڧ;.52#,\*r%Y!X֕<B>DKnx(COSHZy=a "ME0r#r[rrI҂vx-9+[rrr]%?6(9HZ^dw#ryRr僠J= 梠,aA }Bϗ)R0{AaÂ2ݘIyzC‡# fuPnߚ}̏?x偁<@_ 7!)4Iax͘Ͳt0tBtJtRtmttttttttq-q8qLqcqxqqqqqygCxSῊ vQ4U+p}1bx1E \I_ Dq 2tɲb  ܦeh)k*[+Dx2 Du<, Hq}?ep_Dxٜ(Vi CG Ĉ@V# )q?RomQ2@! )̟?+EGc-B||sIcv~EztQړOInx(̓T FǠōy v rxi=x  G( '` ta? x~'1F[x3I]_e+gngggggtGT_iaI>P>W>^>e>l>y>~>Ǿ>-q8} j;q(H哃>ARe~nmjƟ GBnZ͵z~7 dC:Ij(`p 56;{;|2 :pn`e3QzKy:WxHa ӄDke˄AI6CA n:D=h}=o34I:5)> #. c|I @@^PppgmsC|0.GCpI@ $P8h *e(X">:Mpp0;n` x;jIVhs^pu]wO 4,Cû>k:lTh`i~H q5uBG-_݇zJa\ d:9]~}}[@qf pE, @C4r  vB`kg0d5r=0q0mi׈>u0+wp9~#t<}qM<IԊvBq9K4vN">~p6* L,=}q ~p3=zW}p;D@ BpNupǭ Dx8>+- Av؁)/V[CC10\Vׇ DTW4P+fsC2%7a@Vpp; Pގ[@m0qu0N.^5 obzAs C0. \8(oG @| 0X^CR8.npnmrk O>ᇝOڼ%9s|;x4:p:q|pE_ ߀V4@[UCPg8a}[_?Ahw\y>'%σ<i!HGsxe`.Tn:/Ʒ#_ˮxxr~<8x 6|Цq  ?3 @7񋱪J|PcVЕǹ]nExѭo$w|oTwNA*Jjه%Gx0D] M0{}i;Q K{ B@U^|z; L,hQw!~פ O!آ(!CB<5dOi5]" (qH>Px0 uІCD@ = '܏zBoC @ "@y=?˿Rd NăϼFNT2"wGp C0pCfBdn:U p`@A}p!PPt\ '{.4NUۿti2*Hk黐prAfAjh-NC]]` 9 6nimVYBk<8C7n80Z }\hCMk[uHhxZ4 WS{:0MС`ӂ A(W&1HCýdhÙ884^ 7*Po7uCyi&@;4`PpܘT )9_ 2VŗU?R; *A= rUex&ȫ JQE?v0o`*0]qy{-T 5: A(d<ܓBUT,~U5lpxB*f݃FգF Pn:ft(߈s T8oy6Ho_l-suߊy$=v*(Q ڝFy(47}tL#)3˴Ϙ[v`6HRN4]A;QEġt E*BUQ8ch(4QU" '!W#ŁlJę-)n6G,V VĽZŵ* Ԁށ?  "C@kqqoqe֠͝ZtW jW#ā5%*prT*;ťܲfH7LJN%;Q(JAF 7Aɳ)pm4h@\ז.iÙ:%t)Łstxo B]G&>pz 2X>WyH÷6npzW(OLL>נW<\4@$+q.$.?5cZ^0g1ɃcjxZ`ԥ @wYKT~=kuu*s`O:uZo﷪WwS Y5è"86*+q0x1gkQ,ޗ%Ozx[y^_`x_2 ɮ )' \@@B@jˠש / .z¨6_T?kM3vp^ 6#8; 1h|(g~|ߐ],>9zE4|~0KAw`0:_wP Ǻ`8u  E>!"^pPѠCDM$+|'?<C 00ú\X踷@{@ #oWj ]`h@;Ẫ4lj8tmpG@P+?`{PW-b]W/AVu#|/42N}_X P8~z Ԭ6ٿfܗ—*žsXGυn|aa!yZ NI# RS`^yS9e̯Q?rrXJcV D}1D :ǠNVǯVPϼES.etJ\9)7˸lNzF:egzw)REʕA))h>j~sN%9e!u,NY,N Y p8eh 2(t)(S .Dx^K^U c8eO$3$0MZ79MHQU3 ~ԅ &hh(5 'u7"wfOCw+PAG bGW8$];65;@"opN@p  0#ݙ"|UdaH8@} nci tk.p8R pA>5Ws8:xf|A~;A,!>Al+8Aq,b$OH ޞ&8g `?/X?0W?4{AdzY^-||GAlZ*4@|0 \ǝV;q[PywPH<{lF`hHz&G?O7v"_h6h0L$ʑx Dg D wjYWo=0=a8v{}x:!ȷ[_I"0ӶG|gk g-" B -k@x0bg5޼UO 饎\x0` |G4e0<@Oє1B+Az^NN.6/p~vI"'kD@E;]GfOP8χnK#BBN/jSYt(2  \||   Xn op $I`CM ,jji`9``"zSxwAc`uxÂ}ο&qOq02XOWhZ @ zfO@85lN1rV.|10B1R!8~cǐy`~ `h@`Ɂ*jZE:e_N<)Sڤ![ň_mO9H a0:% ED=Ϻd*41(4Y^l[5sPEA0vyu @`0b<lQ0捿({3nA*h$ QoR}w 7h· µ=gc C"ExB%>!t,{| PP pz>`\ЩJ dwN5NY03 <) LFb8"&AyfG қG HRٓ۬0xf6`Z{uY{0WYȄ4>o|o3U;sq;RO NU4>58@5.A๭ts`s ty 0t[i C~0l CC1=g;H*1~<~p* Cp93>qÂqo`7|㷇֣ Pgj*_1vF΁JX?Ǩ具..vС{ ֘h1#ӑzӢcQ 9ݓ9r0vc{h001PxσΘ # > szL+QAt`$}NtOj0q?A$ b@` T!a cR7UTXF|A҂";絇t=|@gq~iG؀?ҠQ7EW@0_/鏱e,`.8Ԉ2 /{D!\r 0}y=:= B;Utk[0飖1wWÜLCwy30/;P8@NP X܆_/O/oޠggЧ댧kcrCáH$b>Ob/vCQxZG~sqoVO\9`n  B%;W9L@<讻jKCT=iznrPΖuvA @+ )i*Y{ 84ΏuP LL@g b 1ǺV,1NwM].sy4` 0ј>AG"\'<"V+%'0#W_wɈnAia0@!sY޳!0!AMA]{':߹ljA +0@+lϥn mU~^caq<_N 'A u Pa foY d5,@ ;@Uǁ @r?Yz#9TOudJG80.Mzb0`۷9"  0ޠ3(0zuL Ck[SbUSI ̨{(`c]ں A ӫ3HRz ; L K ̑/ D/ K#Ks;$K ;`xl@7K? 㟕!UOGTo$U_I;1E{(D(@c{g(^P$Bн8@"5CЩU PWP0ސ5X|F1<GT|PaOO $dUQQPL#spb#"`1t[!j8B`ruRBF8 0᎟i|~r֡ ~#y@?<YuC :-jP\ ٧trM$(dTY@u29 6 A8J4AT39XtA $@qPl7~9o6wv0A㾟"ZcUѬ* | 5|g :̀44tCm@~zdl?=@KeX]B>C# BB&TPQ\$Qb0%(88ՁqhQ]%XYX젨PX xpLP`wpPq QpByx( xH`X@(\|p"|x((TPՠ{ P\0 Autr@'!Б\aa!?$"*լCJ4o2aͺ t 舆S}@j XQQE80J P _: b  p f30?c?s79C;qU@@@. 8@І_8^;nXa[`ݱj`o\3Hu|8qV|\K@ģ\@//!8/'?+dxK@J}{%1{-?:xǰ*&8aC׌o `p/ 5x_P03z50/_7p B?9 6`??}_W`PlZ8?@4ε @r "@GjKv`YPū֐cSaSד9`%Wu-cU@ц@eϦo 6o~J o @  |"_0 /$ j ClNiM֏_6I Pp$H:~Th"Yp)pIj 8pt`jW{ tG;G] ϓd"`0M*$#؃4~9>Kc &iOsEwVѡ RQP{_JHU/$ t|` K+ =jx1ņϐ`h: i C:A 3} .0`6w1_zp^4KU00uREӬE 80x8x(x柔~5CcCH7XZ9>؆Іd]]`חI(` T{>ֻ8?a(X8Gй/Dx05,Qh/7ɮ!!/Wwp'$IR .0(<;~@p}zm@ ɱX [UX"PK঍Gy?@5`Gog VtVlC -ɧ ڗwm](]92}&}g@\ SP>}]AyoT]VnD%`m(-* YpChA4cz b $8 /qq<*\M@\b2 B HQ@ єA_Q HQ`*Uf?f*f? ʁOJ:oj!|.uG QE-Uy:Rs eǨŦ!! xYh@#6J t8 h]!6,A+JD [*4U՟jF7@jh1BiTk1$9 $;}D:@:P:P0BRmt ! KD@ K kHjRz^#co#4?dI @]" m "$BQl@]✎|霉rND8P;)_@ o h tj"" u*P"P՝ u:!PSsc`lueUE"ũAst +Ezﱆto0p~Viq Ař&`i S̙virT3 ̙L` gZppB@c9# 30esr#9q@i9@Ls4U vrL+20A"ʙpԀP0N KN@`JU8y&⪉asiM6̺wnDePuY=b5_3bUs' %Qu uuass5(@Pw\ pҁ;<]X]R]O9]IվsըA|`QQCzR MjS=NѧH`$vxA1]{(q` [AQ &]BYUVAiV@{(m`jTj_ _Z x]s]c]b]̘] dPU*U*?*3W%UU(STuuTu6uЩUA>5Sut @a<WNU) vط'$%)ڱ %NqXBH lA@D`@8P! @o RRRl^jU #tX * @ h* @?!@HuK 4 wS e!@z  ܼ}JzEE@?|Hs@Fl2t!t?HF@IP8G ?sr?󟣊Š QFAS!`\ QHCOUҦ-8^bQA?ӀS?߆ pӔSpf 3I "" 1 `r!09mJ;7UP]" îtp 0`2~~pԁ008@C}Y]H.>I u [̱ZQ]Z8][(] Yc![['YYpsZQU`3yv# &A&K  ykAfqiq s #Hi]0%`}i9 ;C hKM]u%$% eXPG eeÐ  zc I!I "%$%0^_`pqy^|}}xk0)TPµ H_Z+#? U߷:/(?t Eи` F9P<n%f$n6* i8XoPb0:HnPp Aîyb, AО i>z TW͝d| :IDeRQ0sZ'O ʹ>u"w`42\О*  E aN`=ri<"&+t(ҺB9i"c&&k5S#R< N{L-"d7P$P*E06}XrZO3 Pat!8F) DR@+ >R !$e'xNРGd@f.mIII!I 2$h,W`n`7 ԻL.<`+ Y(@zB C͒d! ,0D, @jB C0$(RfaH 5 Id! YB Ƈ X(\ .$;B8D,䂁*(B;n 7*q:q@Yu$fI2KY̒`$DH@@B" ćD$B"KȆ`D5l"6 Y ?>BTVhc`QAq樁jj FzhauQ :SP}P~F&/–@wxS:9&l2Ą$ń;t!;D, @ȶC$͒!K;DXC$@D@"&k1[,ʂ NFrrZ]4 0B*!v080aZ7ԡ ea; eC; exd;xC!vن9( )eCP021amC89PawC@*7nhиI m7Q@ XYPa `eݰ6h ie(!Pp2qam{x 8|y 8` ýtܔ~3 $"$(*‡ć濉㢍0h.N8'n<'8'Qǀx8D&nȠʧ̧ΧώR'| O^Z`f(dP("HdPE_\p^ X $ "Jɹ-A!CqP("H$ ,dĒ" ~#u)(JA0}` X)AoP#HN=g~xgQ#,$@䠜qhv;0ZԎ0@98@|S;" 98`Ȕ3x@R u:b#᳋-^r$pщ(*B,y @d0wn8N:*uSQ2H̋-U2nHmbVzx= sik.w,o /{ֽyVģ͏ ~aJh1pC]h?UABe!v~̫5't/nk̓g%}O޼5. w h+:: :,G:Yl:YU?'<!O! 0A <D1t9;$d @WG} ocuD"`]yUj]A~8}Gd/alvUKi4w%EU o \?m/ty}}ӣ1 h/ZOmm"V`iG}jֺ]=ޑip?=GAj6voy/3 R70['pn.O 2wriu?8pݷxm+~ O&"V_em ''S1]Iq}x!H*x*{wIzI:4ќKsjNc:tM'2ӳA <>Pk^RV:IW%)%IsAh`dɯbHOg3`r—D$޿z~_^zroEڹ̶2*Adk۩Ufox;|_QUS.:Suw 5~e.%iNO>mcPD=~v| ҭtwozV)?hRXX!7@7x~fO%m ff,#JJQ5JY5JY5KY,ܐӉ%r ?@M,?йC#:t^gyuI_g~uN4 '?@rE3=PGt^ixQ^ziPW$ZbAi_NAKat%!6( w_wM)cy,ysh~~td]􃚷] Kwn)dQl.=czmݫʺIIq@vlt+l`un~Vuim#x.&vSls{rZ;8eĉ'Π8\UUqUV9eĕW )WzMؠ9uhh:ܦ9t O'=t) +pDJ@x9Wgr32?yrC]-n!4~tS]F@kYmQ|^glCbl4}xqZ=i)|hdr_ck?*mlzPw=inݏ1t;TiQ0$r^nv\roOr*ORh=)?/VX_eques}ZkI#)k4Imd.pvt1crovzsv k](pplno = 7 lde erl\l_yorks.mpt7Dw0NI!I:7tIYIC~ I"oIyCI:I4קtJ>JC)JƢOJ}JKS:K&DKF!K)K ]0JFO0c&F A_ALI MATBt AA_BEV MATEt BA_BRD MATHt CA_BUCK MATLt EA_BOL MATNt FLA_BOOG MATQt G@A_BUNCH MATTt HA_BUS MATWt I<A_CABLE MAT[t JA_MAIL MAT`t KA_CLONE MATct L\A_CONDO MATft MA_DANCE MATit NxA_STUPIDMATmt OHISTORY1MATpt PHISTORY2MATst QHISTORY3MATwt SALTEN MATzt UEATING MATt W RELIG MATt ZN SHAKE MATt ]T_VOICE MATt _|J ASCt lMEGALEIFASCt nCHOCOLATDOCt ORIEGN1DOCt *SfJJ vJdkBal"0DF[,4hFpFC[؂ȡ"\BU`!9:R :C3:BF9 "[0- EAym {]& *j @AYOXDH)=RhJ=R=!T>H)>R>2!3*t_.>CB)*>tD'>!4 gb8Ѝ ݨЍ ݨ0Ѝ / ݨ0./a/aY\ kE:OO L:AT@H)@RhJ@R@!T@H)@RH@! *%\4t7] O )TB3B7* ݨSЍ B7*+tBBU U)+TBܿZ PD !{_;D+І )B mB*7TǗ*+!FWP : :UB)*:VP :w)(¤ V:!T:H:Rh9 ,:$j!AT;0H);.R;_!2T;`Hn*;P7;9ӓ;@ -T CXX~ CGHkXӣ ,7r$:@iXHB,*G$eA%2ʑF@t`DI=)O2. VYTH +$A{L 7a5X`Fcl!JCKFUJo *. O5@X7 ^ 9@d1P1jF21UpUSIaU%ѺZ Y;dQ!XT~R |, Z0&RXOX4e'@~ISȗǵDZQjO^@f ) vW X Y XOK~@ 13g [ Dbś%C0d~Qg--,1Ȣޯ.:^LJ`+Bx`.2$UDFF3F!3*VB WQ+>OXݒ\aDBUR^?*'uDIRWB@~~XIh/!\*>n1rn 318BQN(,=IKDlJU_ۏ.dSVJ CT ;SK IB0@Ɯɢ/Qx&?@")!!M(t';_k3|kҔg,O˥VhAn1MK>b1hFY01X\OU3!- )E>=)QhDf4$HOY4?NUbXHJ=C 2?>|(_@[w$nJ"JOYKo!Jl0H 3 -DF("zD+ͶKS<$KmO_DOSQSFROSN *SXR6H^Dx̾~>z>)-W_eDc2WkN~VWYTȧ2Z 6],P6 䨟vHNhVI=8$e,Q,7%2"1]!cЏ41ơA#84<$؏ $~lKvJYOUNRӯVɜI:D[ $11j1FH@FO~FUbFJNSYNO:DR0tS2<a()_NfW ~IF#YO_?K~2DR#>EWHz^ ƪ(R$2#8K>0tU FdU8O>Bt9E?{FINяDS0ORt2#;~IdL'_I(HjEqYoS_FDJIĞIS?RI S>xIF_OO0 D"&2"  hu@(@ b/N, ,ONH?azzL 2F < 4ҤP;O ?_:@I&;4Ƨe  d"Y,!@yZ^u !:VRG.a|H814@Hx^b$(dzLqԂ  a J}/#E .Ep@xuxpmTCgMLBP aGEAH                 '1F[x3I]`@V?<NN @0<}BQ>NNJA6g|9HP?< NAPOAB a&MM +ЫЫA .GIJgrѓB(g<fG``GPN$^,,,,ܓ,,Cp$L(QGX /KN(K&YdB`BN/K ,HNRK&`:UgdCDE`$|a^g`|aVg E`&`| aDECI&4fLf&e|`@|a$J*g2P`f``BEg EQJENu&`|a84@HJ*fXF`.a2I|aʺ<m|ag |aEA`*`2P:`aDgt@IP$$Q` f&ed&fg^|avg &CrtfTATAQP`Q|aJgCpQP`QBC&&H&&M``NZ,Nu ``````Y %ATOMIK v3.5 by ALTAIR VMAX/MCS`CC%0f"tAD$HL /XB\LGqprH`%7<"v-*d~^2N'.8Z32-H 0NX^PН .]p3YvhJ!$Bi&Ю)ޤBPbH@#e4%< a~"S"$$(*.kI(~"GRp(3Ɖr2,IppYX䈥UV"$IբrIp$"$@_vCE(QQ`d` (`B HT༜1WBZZ4oAANCT`rtvx!/,J?gl-r B$(Bk|Bē-3vPK 0xLh(~jg 893gwi}Sk Z >q"gJ Qoe"A  0j)2<N@.{ƀ$pJffR* &fK!ÂLYHPybC/M00< ApэÓ0LC3AR pa>Qȃ`7d0o uS}MAՓr=`8~ۇc ,+pˀX ԻގVzF?W}Ay=z3Σ^TӣWMί+5o,/w6 `IUہ=س‚R*Pc{s G  <]d+F5e7.= (*_Q7sA>ڬbp= Xj+n'0c낂*`x M]O/Qς1E"8``Spz 1kY}Ka~ZuGz FtƗ/B{ֳ&'fq("̸!pF!b2"2`́I`Mʎb-Qen{Wu շۈ/ ؿO#EX$\~\m1`p@Oa{A׀ 4V (q6̃U\r(ߚzlѾpЃЭq\.A#BGWVs.G k\-ɭ⡖ Q~!Eq(aUd'9>_W~A̤CUmZ?`| -ׁC:2nl׼m; /E휢#]?i>)>A{sz}vM?ywG>\%{W\ ź <>o?_z<~/j7g̛'D vg ]Ͼo{7fz_οO+.x= QALE[֮_Yp*^е= 1/ n [JV4+HtAjZg{)Q@͇cx_D^{v ˘HA&-J8~IVT(Xy A'EEFyO+A9${S<Ѽav/+<$|.`₁wx럼{.|12DN2枼rl]` .}7mA+N{>LyO;lz-̒wή`G@7 `waJz5\>?$_п ⳷uV1]a8Dϯ544EAx}n=Zj:@ :!I+ jzЏs-)+hA:GH`&Ps]*y(pQ4 fvDyXD\';3$i{{Q7JgsJjy$IP~Ѵ0}S c_t[*r븂o?lfio\""|n.݃¯D)~ ebgnH%>hhR!Z*_x}Z!'NWV&]sk*Q(ʲݻrgۄWI/tϜW}o''P޿Q3(6aHλ{䎻iip"hc-l>vq"Gu+= J!݄oCh_"warK w]~$z׏V*5y_ٷ XƕrqAQDG9uϞ`'?E<QO>۬x/b J8뿤ɓ QVo!1OӮ\N͗oބ]z|JW X;* j37t69k|?|[QEѺ [ ^(-ܝ{1 _hfmAQEB\ѭ62j;x :9]`^ >(&"`*G[bkC[؀үnF7Izz(ﱿ S]AQ=yW]xFo4*_EAQE\dZnxw 7+#Z^('-2:y**,s\;(b56|Q.Y`[()S]<*my*rՄ kMמQQ u͆;*բZ.=4(BZiv:(ԿX9#Yク"#/s$"j+ӼW{sWB{9uj{yh=ں EWZ]O GjՇ =\Eq3z JzJ\^*ܿǚy(HO~B;˗(jBjGEDיo 9(}1wwq5EJy4_A~6 *iAԜHxbVWJj]㫔)*טdׄhL }!D, A=O00r>L_ 8V(oQ{]v egҭQ^Q9fkǢhƮӓR׮?h8ЫQ(}W]b6]ix1:_A^A鲳xǵu[YʻͿMGk:WV/%G,⳻NZv*KGjA}X^>f$}ޤ۳*Gzωm$xI"lpqww %x/w`}y~ݮpU_;ޝFڦnޕXY>)Gz+=w=]og=ʸ(KʚOxEҵhj$H_xwК' UW>Eg Gh* k1` b0ΩW }"_AAzil] | J(~x>ѼzYoy-Qz!C匹[Xok"?х>ÑѧBso0~*ڏ;sAN8<ʩW W"@CM ?h^78fOy R[A{O?($._5AjDƇ(<{-RDEjvޣ((*=Yv.4?Vʳ7?^mY ;7WW>=yH-qлH;~iYD>?$+RLqɫƟg(Zu[S'O x>?^-$m H蛣#uV,DiIᄀ>?_;п7]:K خx/5"!Z"="8jHQex< uQ-Rl×ꇞĿV=DcE/N.zY@v} ϗ0}1om/ E!yQPfBvV-` ̜Ge @8-gBծdx肄;DλgG,dSR_зv]ҙ*k/4?!AE[ E-F>F8e?˭iM(Ӳlb^%?,t4<τV(Z~prz40G2 *ٮrH~ uxxyXSEBy7:.!uVVgsp&6V/RZL"?ޫjRG6*wxz$0}]Eb"!X c <ZΣy4}W(+E]Wv!;]/s6 Wz[x""q7XVO*+s=z2 H7 Sǯm*=kͣ.ل_!}EpN _Дq*L դk{^9n@}Do*EEtj5c{5}m݇ O ^TDE{zCFYWwl*@(*xrZ]9j}!6+(; 5*WEh((B~ƣ QAڣmMSB$;^"= 2_y `mu%5d%] V@TJQD_yb 88E/C<ިsk߫F8>opn ! WHިj]@݈_%*Ֆ~wqlڣA=7N[4͌2 wթ7?*7)UW#_6J} o &֤ ^&%W ;CVE+\\J7 ntt"w`osk>7\[}{xײ_ZZjhh-y9=2ȧEDAM|jC[5 !vΣׁ#*Yskkjhj`xȂ%bGJiW := E-:5dB||{pqj?#rΣ(}ոyV:WX]`^GgnKk7zq RwwxAVuH7Ao${š\89*8 \Wkjzv(vR}CMOj ա$_0кy'kBא^d ٝ$t&wV]{m!o*]B%Ml-%_(= 5{_HHo0RJA+sL 3n4G7ۊdlh\C g/=uk 3U[ 9Hi<+CB*g1m4xE:[\/AEQ#5<^E(P'Vgg'֞:z Gj<޿&IWO;c%z0C^z*>&* 'ܨeHG^W5'"_5 ە>'Q,ƒMMZy4+qo=v] &ophE+Wos0GGhI[L{=*@jiCR=uWv6orE|6lzѰy!$>' 7_tp!%ϻ`hB x4F 70&A`%J ]W`*`ա[n'QEG%qܹK^_;j&#SvbgZY-|*_ c`j%EJ@OO=.Qέ(6R޹eHݯ4k| 0p =ݏQ@y5G'H~nZ6v/vm^+*W5݈*pgEE̯*Ӯۀqy_K5m,$;K\?nǴ[ D]!6Bz mntY eWȤjG_C:V S4&}˷nG1&Hw\<4 0o(Sf5h5<&J*M]Ψ(D 2oݜ9Lsδl ď3Jcg; ]<8cCnRWˏjfUK_n[e/,ЁWu*Lb +$AwNaM8.јu+R%(( :B꿃 A ez4Ht!G jDh>9jWЯ] x?xHГDO}ap= +. BWn*2ʿ9B 5hpsR0jՅWd_Y@%Rȩx(Aj  AAoo"qzQۭ";o+nH$g$g/Gz?Yw1#ӡWJZPSw! Bn!A_*}% q,;wv+ayV Hz+a ߮_j)ӊhjX=J=zm!4J6~qYskq! F=n?ER^ jՍgNVw$WD Voqq Aٍ9迫 G"TG\,(-mn5T _Гahn_Z Z~#ݩJ*W$m4VHdУ ^ w~dL. %_*kd0#gg-Z(RTnJ%A&/3Wv>!} gY_(^OQr+ 7W'eZ _~8iZ>Z7R*Ʌ*}!WlVZV.רWnE8)~DִdrzbJ-#HS fR_yѣ6h R ZVmAYCieg]ȧA7kՀͅX7yB4_8sWG8F|>gɯs+T~"Qrux "57oa:+Fע]{gK_y A'!AWcG2*QDs= j${HʆF_낁DZFעWH]:Ɍӷh4֭W@ 9]X_, h|W q"Z_H%zߞAQY]D(I."vyWQ{!"ԤjNJ@TP @U ~*\[EWu }(֩"ِ2w]BCA"(>f7]y&EsBqVv8LnȻ w3_]MS{瑠a۫uut j9rjk!W|0@Ou. ^hI°C#(THQ$*{Po6*4:3?ARCm]an#%k:zK:vRz}/.]/ 4H?( hߜH V]zxԳz9%Y]Baj="[Hhu4d{MUBG'_m(p=) GReuѫ="wh>}^l{IJ*C]YgWJNwoZΡ_ya/խ"+B0hPTapJg8sg8Nu){[ X3Պ4!JNuϝ$ nTKAFAa (09 I,4] k3PP032 R-3Mʮ{L866Q`nQL B4C[[’oGz'SQ><|s3pAZB Fj*P3Q<m&.CI#.:<)LIܲFo[RxAlCBAA8PNyqmAD HBDCCCN0ylт0Q0JGl@^м|of<<RHCp17 tb,:jK4aJ1gP&$/\ɹ ö$#F8sX>Xt_Y?<*\I<8  $AO>f>>@νΒiD!ûu^H3 ؓȓvj^SI>4+"x^ڋԋ͋Nj}xtplhd\XQNJGDA>;852/,)'$! ?<ރ݃ۃڃك׃փԃӃ҃Ѓσ΃̃˃ʃɃǃƃŃăÃ(888@ Pp(8@ P(@ P~}|(@{z yPx!@wv ut(@srqpon mlkjiBh!g@f edcbaB _ ^]\[DZ"YX@W0VT#SR`Q0OFN$ML `K@J IHGHF%E@D CPboAٯ?`>8=6; :9 876@5 @43p281$0/ .@- @, +*)*M4"Go GSF4AGCyO4 B4ǁ&"<x y p9Hf62<_Npt262DDM(C&A>:4S4NlPG 7Ҕ^ D%N*a\_Ԣ:"qzQ(ZTHG066R#5,8Ys%U49oR&ne2LHYJ>TpJ~̿lXYKFT.2hYLVT ppf3533+x>LMռmfS6~e3̈YN.L pg;NS=G>P|(*0P8 4H@X h@px*P==BQpw` P@U  `Ț62DDM(C&>:4S4NP@ G e(CQB(E)Jd3 rzr@(R@ "0%6R".%$8)!h@R&eR&@HB)B4~R*vdiFX>`R. 2h` `L2p%S2~%x)>6MMq p S:NF3h(@ P(0u@HPX`h(@px P@nQ`O> OPPN^L62DDM(C&A.2$S4NP2Ҕ AD! Q(EQbth: zQprA( vP10H6,8H:I@IؙHQH P ҸJ~tyFb<)K` r."@h)1pL| xh>f4h\6eS6e#Ĉ)˜)NND(@ Z8(@@H PPX`hpx(@-@ Q΀`={ Oe Q Nu yn8kp*9 j ,E(X<NM>Np"T!QNq(D!Rɪ(F|1rdAn@Q(JR"#$""IșXQ P4*dR*@Y,E2.b)QʚLlɸiRf$hd6cS66@©LS4 P (0(@HP(@X` hPpx@9Q `<<O@&TNaM>NpP*GyNqBD! (E)Š(F(n)dIJ)*" $"C2C8ITJdJ*,$Y<]e\Ja `ReJK@RHҸMNԯS(@ P8 @PHPX`h(@px P-@Q `>N>NTLaeIaȈao'aͰ";IH*؜ Ai$f5CG,rW.p5K踚%׌9X`WK|@MY´HU*IݤW*_Z.Y@muh6"'ډn$\@IpƜH8`; ö8 0P"w|ls&D_X6·tc#5QK|ǃtMR@:eOt`" Jh6"1 BPJ2(,2%?m|GӲ"0t AT-<||=x6SCQˉW^P<. v9tDG1G8 M:m PASQ :@y֡ɮPFQ 4$kURhqڅy6kV\]b]]]F__fhs(i,p0p4pp<D =L.bT,X8\MQ/")G(B"BhxC0<A$ĵ ThrC |5(cqwA $/T)JQ. EHfRLizvHp:@_qpl p1)4Hg*JQf/ jp.Y` LQA^)lW2 P.e@0RaL{P `WucVs 0 Y@"X$P/ P.*O!$_"J3b#fY r<x N/,f?CT_.؁2t`@Fl*rPx TШ@ h>P4 :1Y@qi 8 dԠ{Ae` 8 dTPo(vlE(exA( RAQ*(J]n(B1PP RAQ2%C1PP RAQg2`aTP ҩ!!@]\ԯU`PۆBa#  `/98 ?P[NAMzCM6/- "H$HkEG8XI K ]><ҦҁHA48M{0:H@=@b47 0OHDI:0Ƙ؄9HD=D8ڇ=E%$p=Q046NNv=B44pփHC=C~2H 0:Ўˆk 4E6P8|:|a>L@68:<024#PrԨԁ9*)PZڃڅHEKE:22fDFHFL2bDuBHBBDAM2QA:Cx ̿OP;ў ` TG4,7HC 6fHBvu 8b&aXppxXbQpnBuFdXBi!`I~R n D`D<.;.7.4.0.,.(.$. }8S]- .<8ae*g8i8k8m8rtKw4{eN:rȎ3N$As}k}8|8z8y8x8v8u8s8q8o8n8l8j8h8f8d8 =])5,3-2%,2ȍ'D @EFGHIJKLMOPRTUWY[\^`by=6a!aaa```0X,X(X$X XXXtXaX LX7XX=6Ͽ7Ԋ~~ }^Eo{ko*7a8x{W޶ wEY][7Ս"]s%ܕr6nA qn mI om m? mmڵ"6]V @1m"Z6l^YeͲ^BYK6 T+ƝF@ aU"k_k͵faк5#*VJjMM**ԳziE*n,V Khp *CqC&gɬfeOB$=Q(JZ`[Y[Yc\(X\XB]=W]W^OV^U_]U__T`gT2`SanSaRhbqQbQcpPcOdkO]NNfMLo~L?K|JJoWI7IHiGyGFt1E Eo#|Dz7CC%ByuAͳAM@s7??>gr=3=}ڵժkI׉ja\8|ֶҭU[YK)k${-Jk\%z$k|5ARYyǃ`IZzy]xƐV?%w jk"4vUj@uRTZB}"tЩ^US GZs^!(rTtqhԝ@\p |"ZIo P^ ~;Zn0⇧mal崎i#k6J-4jېl3=i-iLMh1 pigEcf@+V-ezJibAdkLZcp;ibHq2a inf`g<7Z_]G ^O w](=P\](-[ ZYDcdX ӄhBMW-:V*U_T2ZS➒`QBP O]ZN?#L_>?}KѳDJW[YIlou,G͜%EEq#DzwfrfByn7A,ՍkE?9@='7d;1c0{9oeR8$a鲢K66ZYO^W&\ 0)Aki#e(.!yMp+wd\6K:)&$ $w#9& MŐK"@#_cocq{[ \$\\~)G7?w7L7Z jj 2zs ̌ 1 Ǵ Ssr,9Gd8ǁU;+|mPw>F JxV <蟄o!a"#"#K$g%'%&9'gw(&():*a}++ۈ,;M-T..̉(/s0A0 1\2m&ދO45M6K>6`7o8$R8؍9:w?c:lg?ők@ sA7A͒ByC%rCГDzIE#E̕%FtGGuHiI[IJWDJK2L?L#?M暞NЛNO]OPQQΞRhS ST2TU_*UV:WWMXBXdYcYZ [[-\(\P]=]Ʃw^O ^֪_]7_`gf`@ana2bqbicpcdkAde~beݳfVfδcgEgh1Mhii=ijljۺ4kJkl#0llmamɾn0n;no^oIp"pêp\q@qqtrT(rsȑs^Gst ʳt^jt"uuTuLuv@Ͽvzv4w"wkҬwhw%x?x՟x]yyIyؙyYzrzAz|zZz{%{\{a{${?|)|Ym|1||}}8C }a}}}Y}~~>~^r~~9~~~~U<{=7{Lua=t{_Ǵ'{J{n7yAJ0<z?:x;8<8PpDr)EHHDS0j0xuRyx'F6<@HÖ0RGشĵw P&@.ErQ5RTH. I2m4 JpQ4Fv@pq6h=>(NC)L2 WS+@ 3 .Ir64<p>0`JQ(pc <0tT(jgL;dY; &DNI$5!.'=xbz"FOC(p@A.VR0<"QpoR'\иA)ܠtnP !ʠԠ Dn΋7I~ @QL FgXNr#Bp8`YT U"rAV7 W"!X \ !i`Q/F'gZCSSj$37p`rǂfB#zjpyjAVC;TC;TC;TC;TC;TC;TC;TC;TC;TC;TC;TC;TC;TC;TC;TC;TCP9TCP9TCP9TCP9TCP9TCP9TCP9TCP9ԻC;ԻC;ԻC;ԻC;ԻC;ԻC;ԻC;ԻC;ԻC;ԻC;ԻC;ԻC;ԻC;ԻC;ԻC;ԻC;TC;TC;TC;TC;TC;TC;TC;TC;TC;TC;TC;TC;TC;TC;TC;TC;TC;TC;TC;TC;TC;TC;TC;TC;TC;TC;TC;TC;TC;TC;TC;TC;TCP9TCP9TCP9TCP9TCP9TCP9TCP9TCP9ԺC;ԺC;ԺC;ԺC;ԺC;ԺC;ԺC;ԺC;ԺC;ԺC;ԺC;ԺC;ԺC;ԺC;ԺC;ԺC;ԸC;ԸC;ԸC;ԸC;ԸC;ԸC;ԸC;ԸC;ԸC;ԸC;ԸC;ԸC;ԸC;ԸC;ԸC;ԸC;TC;TC;TC;TC;TC;TC;TC;TC;TC;TC;TC;TC;TC;TC;TC;TC;TC;TC;TC;TC;TC;TC;TC;TC;TC;TC;TC;TC;TC;TC;TC;TC;ԼC;ԼC;ԼC;ԼC;ԼC;ԼC;ԼC;ԼC;ԼC;ԼC;ԼC;ԼC;ԼC;ԼC;ԼC;ԼC; T C P 9 T C P 9 T C P 9 T C P 9 T C P 9 T C P 9 T C P 9 T C P 9TC;TC;TC;TC;TC;TC;TC;TC;TC;TC;TC;TC;TC;TC;TC;TC; T C P 9 T C P 9 T C P 9 T C P 9 T C P 9 T C P 9 T C P 9 T C P 9TCP9TCP9TCP9TCP9TCP9TCP9TCP9TCP9ԾC;ԾC;ԾC;ԾC;ԾC;ԾC;ԾC;ԾC;ԾC;ԾC;Txv}w}w}w}w}w*ʡr*ʡr*ʡr*ʡr*ʡr*ʡr*ʡr*ʡrzwzwzwzwzwzwzwzwzwzwzwzwzwzwzwzw{w{w{w{w{w{w{w{w{w{w{w{w{w{w{w{ws:ws:ws:ws:ws:ws:ws:ws:ws:ws:ws:ws:ws:ws:ws:ws:w*ʡr*ʡr*ʡr*ʡr*ʡr*ʡr*ʡr*ʡr*ʡr*ʡr*ʡr*ʡr*ʡr*ʡr*ʡr*ʡr*ʡr*ʡr*ʡr*ʡr*ʡr*ʡr*ʡr*ʡr~w~w~w~w~w~w~w~w~w~w~w~w~w~w~w~wwwwwwwwwwwwwwwww*ʡr*ʡr*ʡr*ʡr*ʡr*ʡr*ʡr*ʡr*ʡr*ʡr*ʡr*ʡr*ʡr*ʡr*ʡr*ʡr*ʡr*ʡr*ʡr*ʡr*ʡr*@   ՇCP}>TՇ*PCU?T*PCU?T*PCU?T*PCU?TCP}>TՇCP}>TՇCP}>TՇCP}>TՇPjC5?PjC5?PjC5?PjC5? P*C?T P*C?T P*C?Tz}C?TjxC P } > T  Շ C P } > T  Շ C P } > T  Շ C P } > T  Շ!C!!P!}!>!T!!Շ!C!!P!}!>!T!!Շ!C!!P!}!>!T!!Շ!C!!P!}!>!T!!Շ"C""P"}">"T""Շ"C""P"}">"T""Շ"C""P"}">"T""Շ"C""P"}">"T""Շ#C##P#}#>#T##Շ#C##P#}#>#T##Շ#C##P#}#>#T##Շ#C##P#}z##Շ$C$$P$}$>$T$$Շ$C$$P$}$>$T$$xjjjjШ|j$`B (08@HPX`hp1(Y%xNu6s&Nyl<`supݼq#1~8t6[3a#9Ïp2|®sp`x͇pFLpG.<>8<1XMts?׻@q /lĘϫ''iEqA 'K8c')wqx\nTm>lqso$3~a8=Au`ν8`GS-g8Gz`]7 pg%8gwt~ pxBP H[g? Naaop?v8ߔ: Ie5}KwZp!̯0ޔ=ZE3ss܏Xwf5OfKkpv`r1ږMn ]LJFoiFK |P'XH<_8̯NJc.0zlɜx\غX367P}HvZ8x5/8$׶qjxx֬S|ˋmewtaLT3/g8 \nXkGa42hu_E5wG=w fzݾk\֠|+phwj*]-Hk`xo`q|qi@m*/,"w`[:- \mgZmqK0+#UK-=8)*nme ͢Vu4ǽ#|#1.5:͆ikN_ J`qUbMa3K`cW'}7ZfULܧYhuelFrcm?ʹ0 va3toTc5\ x?]<~I)+FʉZNI\thP;gMen4]d+>wx=,󝽻_uU׼Co쥸 ;M0ZTuwzX [~6Y\< 5JJ0bm3<`ZkVj}H k]m6]|+jtP~.tZT2h&,ˆ+ΉB镬@MPK-a}n8)дfgKZKNK~+.\4#6xWAձ"'XYп~0 ̸lMP0Hf U,>^Ue+NGogkqڏa߂uO T^4-頦{]ffW''DjtFN8`+E5WSJ>|k(mlȶDyC5ӆ7Y2:1Tx pdv QzA+Nu+y.mgŘ;u![){G|'ҢEE.N:y&:I2ɰ4爱<{5sO^hv:AX:TL˛i;=6f׫&.}c~0v\=VH5הz[IX 5uO8ofy7 8yGѬCZ[p:m@5;glkLXr 3eJ6fW|F .#G8X_=<хZ|Kya Ǯƪ{-0~|zwAg 8'C%i8Au>}n<˜>\..~\|Ai=k҃uq8ْ=A>-;pd?xos^/9'an{L)ځ~A3xk=×~[xpExbq,lhv>40πh-J%kcD^0L%>e}xY\ڟٔx.?9bʱ G6X^TX5z sߵR(- ]aj[|bYs^a- t`)`/@N@jڂy!Q<qĵ/M&p`d#WVOԚ~Gr^q;cZ*;P~F(-zޙ40zp>Xp0nf M sG̼Xx~g_le-'sRBhj짘wF߿W98`¼//}kH[9f["<:ч򌢶>؃tZz?baiu1O$zÖ)Q\6ڧrc).l|NfI4},Rncz2bC}([oξM]rY=R[Y6];ʴxupbC[h ws7ewyg0py}T9558;@%8 YT= 9ꑋ4I |sj~ZVuE]S5yr=u~]6¿ ]+kӠa!)[z 2<32Whϲ5܂t ikӪwLGh%L 4\i3Žksgf2 q_:{Xw=_]iy k~e^y_?oV9$3P}%S!Yi\ˮƭꇁVnyU]WHhɺnGÎ#-յ,6 - vTU~Ni7~%erj{`] hwM£iG6x5_uRePf/D5l8)'nO[iwNvXɪk%WX*\T0h֊e5E7maj7mzq?F;%/Dt-)9s!- Zv鱧MwAP~(/l,*fK!=M274l3pmyz4Mq`]6eabԆ17h{'/ۓ%b5K&fߠr2R\uЁM+;MnAݶ:Mmp@mp3~ Oq8[:X'=:ݘ{p#Os`?zN_\gژ^1SFuٟxU2-?=.9?2r`08839ÁC TOh>8喅Ÿ6<7 wS;p l+FǼm/ &z|zFz8Z=l 'e@nٜώGOMtWݟotD>/4k?s.[> q|3o _>iq;rxy|p8^ZYy5>!-6מzĿ.!_n0=>G2{].\C0\<`@0n?< l㮪3TYU {x֣Kשj{zz!kZ9ՆG%kʞH˟?ŦG{8ŒV[rEP;gh=[[G >Ao쟵x̎ߋZr\whk{k@Ҽ cMJ<۽npfi~Z.y⼧`5_WqaQ=?i~<*|7Y-ʅuҰOqѯ(p)y8F. lJFTm%Zt%|nUwg|xk]~~_ +CFxmZžsl7I| 1)DR֠*$k79gV]U6SSZ1Ňxs'GD>t.]ɺw_ZnKϷll W.4 >^\v`;cs^@{H/ݸW:>@ .3@mZ1nÁV7-}Zm~*ߠ1G{WKծ;]_` ˾/WvYVBs2υK / 9ڌ`<"Rj^;^ȻYڡnm3XQlB. v󷖼CP<lg5j/6gxj{|W&6yдo}q[FV /4bZ@R\3c6v-u-6X7ec>F,O/)5M;# Qӽ+W{Z lal=W|]||J@7n2cuϵ1^Ri6ZhEG/EDjM=e;ru%yZ뎧V+4I&~VAjᬮ?]~I'zLR Z$8/X4JYRgYqqbf iRV]aiIY䶓|M#yIӤ=y,Bjdo/êh,ŀEK\K s"촕 Y\ᄈh-ĩ͕ . eg~w7xK*/P>~+c0~|>jr]9|4r Ygg?Y<|رS"lz7ј_0 woϪ_~rio0><1h s\ Ϗzَ|~/Hs7em`s~~зzƁYR.>p덂$}v\.+16Bw*Zw:@\G~vTaw̞|[Ae = >n88~8/ط ~'19p I^*?i8p>TH>C'^hZ_2M-<xu{` sj$C#m)<8-qyJ#v7nL 9ș˯V3G9\EOg@b⾞ho l>.[;'ajqėQ[z>S:à z5DZ`&+\7c]qI_ʮY72 Z&yjDm#n hYm-@x (.Z^M*Y(ȧy3-Pk{'i+֑]Q3aݲo8a#A fj{   4ʽR5}=Bm06Ņ7D=R 5{!Nu`gS&\(XpO~|_f^t4O9;ng.4?7Oj]2ď䥎:!#p|},x-HW n @nEBZ#+ׇ?[h=+O/1ss_0  &at߮mZ/z];>A^zy;7/GD݆$gCb尌w|||̣c`&p} mø:Gp/ɯa|C8>~M;O n0_8s }qu< 7efK7uÞ`y zz~w_|u6Tt*½}7gOک3nvkI@vǥ7wpV m2: -oSk^HxnVpn<,Y4Ϧ@Ϛ=bw!^B}zI3_}^2OTi_ҧ"Z <Ŭc_%`@}h'3/+XA+t?wXߵҬy^ /~h\qEkѱd;|y-ìj@+ǰ%))pxߊ}rxGzWߣu{ҬUO_!ƿwQf/Y@r?/!>ݗaJ52nl5vZ13Bջ_xe7}{xsr#|/q7PKމw'Rv6\=5ig>q} ݸV[ϧ`\7T >V*uhצ |k.To:1{ix.SP Mtiu&覛M/=RFm noֲϝ5&hʝ\u^6XuƓ? JwP|"*΄r僺 D H#"߿8K]߿vON;. 'A&w5MvYﭴU*Oq{ήJB|=QueSRl4@Լq j4&UҊ7cn,}/%.#~f}sZGtf8=Qʻb:8/@/4/j09O3@k vޗ7Eo% y8G  gg#n*ֳv*Go31Mh}ϣ;7A-q/T77}~vjL`.L惞= >" 6v`8~ӗ)]ޛK 7Ͽޤ+>3a?k~zڿUf `y.u+0<ٟ 8MKl~핗!_9`?Z>&ӥ2[\w=gK>H ;>kI^ʯ6Mv3_6FT_yͼwjR[ί^y{d3wyI;g;v W00i3xs1=p0min@vyx<Ƀs3 8~6+o`jYmm?7x녴]9Ko|McO rs`#SR΂3EɰTy@xd@2|pMF&(-} k=F|`sq:ؕN @} FvI_\5"vO]oEf6\eݭBmisWW BG⧎!M[w[Ю+0{Չㅰ֥ۻ̳6F b^3lg {!JcQxߏz9-;:Z X.n7QEϵHmn;F.Ȍv;~"xg^^2˲vy)i]Ԃ cd 6v9koV4ukbeVϷ#R=h>MKI-8#ԬCpW`;.]N3̬/>wBn~Arhyˆȗvz~_ןh폌>qѷFحE.l~6m? Aqn?yKnoy`uvaPW-M:e5|6--}Km\2y/VwrlS\pgY7pn'>CIm~κq ٝ_pwX-wiܥYsE;{Db]5^h)R2H/Övwb,T5@3yD/"|vE,\u\v'bµiv}}Q@IqՅiWj$; ѢN?H?7վ=g:Q<0r.8=)a%k>y j^KEQ"VDx("J1i:.<Mi/{"=r rhM xs-tkepy\VQ|m+^qT{x瑘3~άW okha̛f1 7jO8&+ᜢPJ]o mq6cS.ِ1:\9C- Ə s-wh\phoӘ6mSB.8҈]HMg^w+5}pޯyV )3XqH5>8/tyҮ M _p忬~cZPBPqZq-wD_#qjb'VY4,?~iۨiM![xR p׏.ub@r5AWMOǭ~q @%9 y)v%y 78wK {:YySyzp"X@+o:u]'C,]<֗lty슰M _͎]I"܎vgi|s֥;p0 !`Pq uEj;7Q15YCX&(/8I"`_L'M1qkcseqp wi۰ >J/X^?e*b/!='U6Y 5?H^8]DA`~_x{|8:(|MB+lb+B0)

    ~ > Yq =0zmץȘ &p lL.VjNJ'X `ia݌vԆ`U! ]P U *pU7*U@*UN0UBT*(Ur@n)mFx yl n ǏsW^pBf lo~3v-/gQ/mu:V3Y8{`pC<<,xY{gn՞)Õd&9A1"3 cnGƎ @8&u @JFĄKBʔJHzJ.wZ7& 7']wXa0Dq tR~\^~R/O2ki!8^A>֑ jӇz?ƺ^>Ci`\.%{_%ӛB\?m|^!8[ˤ8_:09<+wr2kC54wIMX '%%! 9)) IIIHJJOJBrRR^˨ @+A# 2AlCȍ JM2&#%݉x#)NhUF ]we\-q7b2z`A$q֏P}@ doA N@uusZp50k>yfpY"9Z[>>& |/Gm1n|x mOb%rиq0xuLLടH g)asy> d+ {_5>?`~ +OFwޮ{iXB]LxCԞMǟ*E`i|ɕ$[q@tgmAkǞsZ1Qh<ݫO9!p`V_ Ѱr`15_ ~X0#,ƚ0džWjw]RIݟp'qEO2A :u[%Wo)~l[sy2MYXε{QW{:m?+{\^K=g._\`ϓKoRFd_HLPơQ%V{-`,4`[~虠{ts{ |,}qxzg+m헊coDۿH5SD}yMy;m.&@xɽx]'ypZCtUr%{ۦeT`U5e`*2--<횻`1TхQ ϫ.j{])&Q+5$KF靭¿SeJ>ikcպ6@jZQqAixaeŏhi;}¯X߽6(K{i{h>6#d^MkXk[֑K߄ej0XhQp8D_}mE+J"-e{ Ҵjdh+8s+BHNO7Y #AmȱO1U Q,/_RA=\[v/RnU  7G$K ]9˫n8mQ5uė/!@ Zp{X% =E$"iUx<6f=˪{Rأ}Jw^ mh̸WYNꪛEA$h]T-pYӅ˨:<yeHJLfͩbc(F"'H( nZSSzޖMv6ɖCΨ!oj}movp7ZV]YE<9Hm7ŅPqM$egVD]cvAvHK=d`sc]KkV {^M$;`yű[=uѾkL`o^hMP;-읔Y2 Xo[-s@X0<=PM0_8s|a>Tyg09u4>Y0&܈ƒr`x?5{@yyΝb4`91_0~`A؄iMoxo;`CzUPS`\yj>m@ Mۦ5{!'5sr@0LA-ٛ،`a%to ϥpW} A] +`;N=@ mqkpOC@yxr6B6 ^R85_ x:j/1KPej/̠ٗq _-8_ߕi鶘`Fcp1;gֶV<28r?_|+2_T=.

    t.stB8yq~~}wk.uoy =X4&WM+cpw nW^է]u,A_ @%vP{t8o0p/ a:?]8+=hC%z{bԺ6ZdQC/عgvͮR-ALZC:"/_Nv_ITaK!/j mw~ӷƫifCjrӮcqki&9pwn:@@N[UǬq f'7g^ڳVppKB0[3>Z|.9.PkT~to6jzl]rRU.CG% "Ժ6w_kT5}\g*>-v6UqkImy'3P9*t-A,v˄v5ݺuA NL}뚟 p%k=۷p&tIQcDKrʇȍou7S^aqWP%dbxc+VϤ Vq5ښ: vCbj/6/SLysMgvJGjCo[Ua[)W{"~=O=g#ސY6f9[߼/R p=R1Ž=鱓D*+uٓM} Gx-MQE0ψ3봙ণjuv32'T6^\ԷQoRfL4#"uDYH bg,L6=C~`\}Ob5MgMF!2~ބ-䇡VVG?8>~t|&c-7  aG6*<.[zܞ!4̓]'3=`ۿ`yg7^. h;7t~E9}i߃:9v70*D{Ў rzZ<]| .bp@}12t ק/- ׏CEnsmXsz0;ߏmZRþF` } Uo`Mʇ@06%O@K0}Rγ9z/pbZZ΍Wp9;0 4l8L`5~Ƕw?}pb|g0c1a{`@ڃ}{ ~56؎`c|ju6u9\ 8vw\y8 x-?[kW(5|` @>y_wm8Y1b~hBs9S݂t0~&#;CʘfG/Nk1p tk 4y=|g_[6Z0dxR/z8qP>E2P@għ@8gC{ҝڝ3mZo6x5 >$s5:=dŏe8*nq.^px ES f͡lI%{J۟@x3K;SnڇG]ɟvU vϴZ rn/ νQ.WR3}Aov.IUrZE{K᫧C$i*D̙Z=n5FjYT8׳jy $iBOO3. u/D&v/:nCC{~B0j|}^\C} MљFe'*Yi] XV{ꙆͭhŽ>T*2׸Yp;~zr7&zfߡiO]ve3` mV!SyPuviU5Fxŝi8l޽hCYgŽ1xm6VՇj [rZo{iV|@0 F\wݙCN+& {UZtT\I"q'it+ʻ |rȍYIZ36 ^WߴJv%h_hv (wJjG'K yaI€@@.&N3xcju-L]q TȘ{s |x Zxª{<hE<rR$^p-VFmk5WqO;.9j.+ `cp.EKS`jX_Yj dǘ(݀p[~ U[{wk \¿߮ ji2qZ)~p$I`@%#.;UOCɣFTgl-:,po:i@>YDoY g@eڲS~u܊ 5=fӠ[ 8p/Go/Mj жT8i4+`.]$hO} va -`ROi|ȦEcο_Y~| }|VflttlK:dsfgUρC;4'j|y=p` @s\>>nѣwcp 0 x==:o06 78Sv38xVP;p3 -h̴;}J㏁\'ؖϷ}~~=TS8+k-t i98Xpчo)lŸ@w ןvE0~Ӡ *͡8^ƃ{| 8v7:y:a7w1&Ph3=s\'drlc~l/ M6T._Oٟ̽Ф\w?Ұ<ǖ@G=ՎNѐwux/Zͥ7l~Z6-Eiٟ4ݯ0אfl6۟qK㶶xr҉pn >q*NjȣaR#A<1>Z61[o%eY/ώ~6C#]/PvL㾅8~p!զoT [)خ=n@>#,ps>]ǣA;劮y5 5bI]s'qgT~VøQz\Emkĩ>]S"ڿQ\A 60IРS.Ѻ/9k,^p_,mbD:a1KԘJ =5ك}ɖ[%\k!U.;Y<]-w8y[fh#vGx·`% _<8vvMvC#[KyzNg0/Ri n~^n"z[1]u3rwt/9as:OϔKf\.(TZCi2 ; Vp۴^~ MwElS4ge;+8=%p+;wYaNkSgo;"ofٚaWJ`Q |4Sx9 hU Xx/mZd,[v5; 珯y? FhS kM\9nҺZOXtdgT}tk6E<91f5[l͖5 nAg89Жec`h&8-j[9őY؍ |Gk| yQ 2%*=zqeK\~0s8{+sǃٗ] 7{FK:ҏllK[0`~"ss~lS|+ [K>dԈi>NOq>o| 1e|md9pg~^~c>+\07>h8pf:nMӎk yZB7:H\6om8IzL[xN# ek{،u_u4y0>Pkg5DCVBw1O+p]9'JrZ6pfw7?w%xWLkV^g~FJ.{h [;j~8Fp1pEpm`pGЌpdYD[ö+~6/5n=>?xx\q~֥v{  &t;b xuPNWQcwĭq7(ph(i:ZxIb|܎m/> cݸ p޾kxܻ Q5rͯ'qky5'cX[θy:Phql _ eF'Nr-PqKʦuӏ {@sϕUϞVdnu%߽#w~:ô7;[rb c㥧xq xN>9Z}<>98 @k@18|<+nݐ7}d kTű0IϾ.0A#3%v+|P \眑4N.gWyנOvT!g+,Je'5`gK1%j8=шjn=5|'Ў}ꋃ&qf솊>QiWFNk颥m-5ڬ_e3v}B-KK3; ]ٛ)oWdi{?3z3O-g%ĽE3@]⠛EC͜X ܋ӱ@k /N٦Bh/Q XG~j,~Z}pՉ7vngȺsmǬoil HǦMf7A8c~wrs)4]ܫG7cgzF_ 7b`rsgow{s|@s!Ɇ;8uXpykTGx0ue{<Lu R?g>}68TM?okܼ- W[;R|.NlqxdМIx>MDvj8&tEm:5FeGt[OcI^^ |jhn 6>RS`\Z;Vx7MÇTuo@?iALk(߬Cϒ[o͒e֘6fs8z#~2Å#l|9u'hǁWms7`rGccPex*K0|Gh@Hؼ"Ӗڛ<+<~bvρ-g]58~m;jc(yc^V[7i욃"NpA/fmf.l8/\k=+7 - H<*_a3v{IUi^xrn|'R-/[BP\w_".qT`Vp{ ÒkkW7-k!ɭEÛ|8V5y3V&sz>c+8| Vm^i[m~jX)5⵴㜽|@--/ؖo֑W[||6 Gg9SLGMQtof焺{nfpgy=okleiFZJ0|KkMΦ-jp{xi#^KpP΋`V/MG#Ni=}d!\pݠCE+bЮ;lh凌/R0+ W`ģvm"["k3j6+< ȭUyÕR+oZ<+r%ȉgaӬ sǪT8*| ".KGV"&pj`ƵkegazVnƱyTDĮ&͸kX, [\jq!~OmܻF"-- \ghx=-L6u9Kv<_%geq!jsy#w|O \dhԻ3<yn_7:&OD86. f=dV>(rhiO{?vot\53Z;rx=, qw-8Jh?iʞ*T 3KsbU5b9%v߲B5`~ Xk 7q~4A#eu(,pZ(*ZrCj2x> !VI" ɁTU;ʭ]Vo/'ep{8Bhλ3gTm[٧ٚ=ޑ܆&8G|BIgԸ`O;'؍ⅳab^]'Y\Y}{ m(@•CI+5unYj7A`nO;8G GVg}VFӸ`ۑgmHS~ p 3s5ӍNA;Ƹ3qtޥVl1 YX> ,j_gpTw@7)j E|,hx7rsv+fo689nX̂\c3M 1_t/ci{凎&|!G^{T9Ni5ͫ ~v;ӵ~ᕬ5p?9M{eÇv6@}'_hwn;-zy|* )MM>VDVԢ-߰X}ვ|Xj)\>i#M";Jkm-NsӶW>|AxBc"e=r0߯|c. pڂHSDa߇Q+|p}T%;-\[sZftɤ]p@4j}8Z_o9~UL~ӯ>bMkA ]k?Y\}Ї|*8Ɯp[I]qy[0/i-+ f=ˡɌiR8k2vC>ѢY]KvxeK3.xelj~;rZPE`ٲQ KSclRB-SqSS6<<-|~>^!@~v`@4𰥽Bhe ?|m/? #5q۹o:͓ jS[фV^YS℁!>ԯ%UF?3V%Yfh>6^iiYI-NVe9ZTˮ>@m ޥQ,~ 7L->SiL +f4N_)cW ̚jl*SyZ 0DSMռ6KRﲽh%mHTVPUԅ@`DZELeMz3U;Jd=1-Z*/>W;:MESÕ,'xdt2oa:l|L۷K|Ya{ ׃2‚ɖة48t0b16Cgl4ĚQ`-4j&c4,-[Z4j[X8f,eN ?piO1@-g{8\Xe3 7psIq~$;qÎ>9c)DU:3Q@r;kWSt4Nnya8~oj3Lfq88|8}\/VLDX<p{U66s,g1S4˰gx1 CamoKsTta56g0ao9kq_cq04<:kªx>17ZJãn<ޟլp*Z}:Da鶫B,ɺRCxMjjV4l]!<$=5ܹ Mo,Ƣ*Y>pcM^/頋x)_Y~֧M ^ io 1Vqs`*c q"Y1 "WMoLxH~CI}|ox5BWҲQKx$%z߲jξΟXd?Ů֓+l7UcX~>S]Ta "nM6?RL?N4 QE| g6v%g]`>߽]q+r_8U{rz"1DžzvZZq1%A,V2>C?;b"[n)m%>>ݴ-U90UX#lm厰3"#^FA~<.Z຦J4 }]ɍ½ϴ{<lI +o8%sukJ`>Vi_xqz⚠+x5<>Yx u>Dx1=Sm<%tWM2{j;~ `;wj-(``wǨ-9.d*00NÁ,0G779#=!lT:NosP}c֪j\9 tz`H`R; Vw ~!$څ~B kRff$=^q^LV +Gp~aDfߡ;P:;#wMIou[|=T"5MUySu=PBj$>p[:w[RG>ycwߥR; 9JNMԄɜ'$NX #nBc%3qΣ9:x2x5]5z.q郶.8I|ؿ``-y"]>·L{C:X,=w N0:@N#Ưn`g[o @v 0!)&d„C2VaB VLъ:\lW߶+ 2~ z8~ΰj{X1]YȐ%@% K\f%s`F.390#.3ŕq% % VQ" ̀ !0dl` .Kf@%% %#`FMd̈Mlf&s`Fl2n'%;֪]5G Xfa,6†Y 2 ,AeXf!eXYpKʬzX `S*r _&Q<_$QVT~QTA|@2B2.2*,*C^**#\2hW]FhW]U6TF PE4efPEedUԜd;th6i(m(T T&"*[A*!aĒG=V+3T4RR}bm_S,E떥QGH2{zVU&DHN h?7 ~ `K zCUú^MRZLS9N/BCUL" ] *-5 !VMe TCb 꺢;DzgHb--t]AM爬P>b]aUhA+LIG!d)fPn|DJX 0.3D,P1>{ۧ|OU4TpJ,,Pbm*iSd2Pڙ34BeY,&鏪kF3ʥi¦W+ ]w_4)|yJEXAM+J\w&E('ټW|AdLUGH" YW,IMI /%Z^oII x4zWA`8aL , @pp!8lަ8ſWuNSQ6ICXxC 88Cfv`"2`` *`0Æfpp 8}?Ѕ}Q6t c2 b`mi8w z[87 >%pG$d/?9p`Kؤ w0`!  8p )f`}6U޸0pA6:ܼp<<<#0lFFC&HYʾ>EDEm) $&P48WGGBgmRA`S@60Q8sgSypJPjPH0L@ez4:$IZ2UCWA(S DONBbYAO OACFOR0 THE 'JUSF0IT - SCREEN *j|mHlJ}Äј/#ROjSFE YV&"*"NA*Ap KZ@*FAjĎO?-ާL %}kArAD'cJ!D >3 1|oaC2Ҋ 6Y$4ɂ}Zq{BԂq40&zȦqPuPuPGl*!4.tZQj\ll{L߹ImDKȸփS,!4 az~A"UAvl/K`}y}Dehu9`ZzT*eRLT&*@{i:ޢu` OAm=`k35Uk}Hs9lN($`Z`=%b&^`TA\D$ؑHA>,[ 6f.4TCn*` Ëhnn mA7> 60`n\94gZ:,cy;vAd4L`H`' j $g* "pgc,ؔ\Qz}sJQgKW0apITWa^("+>G!Y$Px" :D)~H/… <MVMr9)a&@_/vr†gt,AY&*^JvK2> 5:" j0u>*կPh+*i/&D1 8RA56 }U RfU $y03!:V ;f Ӥ j V~PY%\qG :C,W6z0qTUf(UjV|WT)"Pgbļ#ؗ%fr ?mfxd(Dr$`8Ң$e "%* dA!dҞ@?A}odiA1P3o"6)jȍnRX)݈v&gӦL"xo&se'VQ=')l{@5g6H8`28b:JF Nn<μlNQRѪmտaF)P%tE0dIp!R."h)BpBTfJ<!I0f_3ԑH?IJ߃/XE8lV QښJ.ʻ _ANHA9P|XPQLNusk>w%&) ݮ6$wkP=w7BdžNk^\bnYn: M /  gaw wwGGp0ѻхS#ţ Yf{eQ}. .tȫ^uuwj;Y{OK=wD8k^2n,'_%uA!^k/ MmYƻ}voib^YTOJGC<952/,*'%#! lJCY) ]/iLW]^*X}7%գ]h]l̽'Pl\#Ni0(_R~'l$_)O_Ir)c:gpb*؊Ή֣`~`5Y.Dܑ\YF((eM2080`0i 0{oe`EQ0=/=>0 Zg@  ԡECC ùgC% pC"RPFThc~(Ob&"ZBlV.SPBBASS`OX~H.,(`*x0SX /*<8A2 4A5wE7dP6^bɰN; (DI]_n0]o} ԏ5:442.!!;BpП~9=I 7:Eq2) w!|ȃ\G;Wш2Ca qc iǼ랼1$]  jaC ]큕|upus5wݲ70sjJR}>KEj!v`Ge@&(d>m n )I"6 MXE#pS&Q )w% D8.|p{鐟fɄv[39w: g:KpH`! C!8! Lh ҇4BpLp!/ =8Uヿ\0QYۿ  72 sxC~t84ҁk/ f\m<73H9 / :E8AnC.&=Ӄt"9.aq"щ'>O-iw-y?'Ă/Pld8U[ A)Ah`pKp)ܢ0hі}ē+}K\Irxm(x¾ 4߹- |8nũ5/j&-5f`Zh[0`6$ nⷅS܆S܆[B:p[[:+m䵷an |fP( ^h [6 A"mnY2 `@WznY.KД ] n)r|pJ0b> qEn)܆-G4 n)sWn9TCl,O[aWaCZ[bGbC.[g`$ Ϝ4pJ#iqc42A͂Xk[Da @P H@H~bΑ-n5ܒ$G-p ,ܢ쳥 P_oK`޼޷b\=X-ܾ'B.V = Eq/:%B] oКpJoIZnT& [!rn܆ n"([~cD ~mI܆PpL3PB2W-۰Hశz9k PCz!-۰$ض_(IB[ H^M[ jgXX`PgbC*zK#nT/-ɧ+pJJq *jg nkw򱃈[ezs\HCPp P|\LXa9vf!'Jdo_" NY8 Z0Z:o5>#ALb~X 4J,' +OGxf9Mihir_wDXjygPOb3=GG(u|Z3?"ts#GZ 5|;';~&]tLG3  PwH&x“t’@ޘa;0`5HgAeV@ k?T_Q,Y< i($})!.gX `}Bi菦bft'JwRTu^o*_nx/#S@I&, [`GJ o6gڹX\| ,0}V6*x{jp{q©}cmAA%W+-h=*Z\00{%uP͊)An?j*0gǰ(19xF,U̥~['V'87V#s g^%3tܧUx}/F^REZ0e(n,X^ȂϨ)zr)x8U Ƽ?*JnkBlT& py%&,c:才XGo0=9aU?Jki ʟ fhHG?[*`` x7' {rQJ[ "qIo/X `NYs=408~BӦخZ?BJ"1/ׇ#0 ]0 5Gyu.¹BfXKx`܏, qfp" p~"Lrń)͗(Bt?22OY?+<*p"h8~goyŤ@OB-~̏„Dsn#\C5 8ҏҏ;9iNǞj--4G<&<{$-&0G.[\5a[ $>v\=4!`%7?\ST Z"xQ~Dco4Gy緵}Ğ?ʧ4j2gZL8z0v%Q!J8>Qc[#~+Pa?|*|S];*OߣuAoKz?2śZn惷@.$+3:*A}tCĝjYB>;'G5Gs(HBTYd Uhp%bxARYFp 5?#XA?/Ziox$dGvΈ Ooqαt<6])!gA`Q Gz6\Ѽ>1+ѩ/zry?2PG n7(FW\wP_q{WP`A_~lzAPA7N#uBw@:? 1A v|?^ڏ Ŋ  s?2Tm0i D>BEJgE)f nB Om9 AU:ř ),QC̘t1AUGAJJ(*SdP V8_!t lp/ o|,g 3BJþ1Ja xzŴxaJ1X(x\:}hS@ @ xqB}|K(@R 5kytht@LC[DH\PB瀶Cs} ^M.K.ހ~tBYtV) %C!}8t¥ )mA'T:4"FtBӈ3o0":KrRKѢSL:t:@ңSH-}Θá .ADvN1Gt@cb)]:!'ab'TJz.J&;tjSHx4$ .AD}Nt+ITڎTD輤CLRSr%CH!p?tR!&;e<$BbNCxL.CI1 A#:4:U&D&t!jRS]&D.Gv ]F]jRcq`TtXpth*t;DLe=6ddSHttt(i9sİCɹnL%h'EA.BI}6Arh!OC@GPL%CDOM9dP!$C2L *:'24]2 "btFP`: o}_L p9~k  F?Ԑ,{sNןٙE8:qy\?>~ƻp?nsP:<: >qty~xb;:ȟ  *4?IR[em`:>4ԷRI7, }}OA )K) Ëo?{~r:}^w)2<HRZbP ̻݇sO_"=dUF;-$值P|^x ,6JA2)xaf&elө&8;tZf;x3pH9A+9殐6ǁ5Zp|jreyjDH8;w8z߹?^~/xx^pڜ aQqd}D>9XӀ#G1sè \OЀ$~!!VuVh̾J9sTgm`Hd[%HHpن '2~Isǀ<,u˜,o< ~i!~;A8߷ʑ/Ad=M-~^Ԙ?s&c=)ˀܶS IG}~v(|]~)dz10#DyaR7 }KWEo3zLc(x~(ۍ8ǣ&PK /|З1~n~r~~# 8bS$Ѣث"׀ꀎњ/[NiB~A{g'Q~=7~I2貼_ zX KS0Czf~>l}NufYL;I!ڗ!_Àv >E3@~C~1@b~N6j#-܀ +M) J:Tb3Jn^#4Kzc&Txq~׾׳Ϻ X(5S*8pX.5.! М;@ɮ=* /7" E5p$D'Pׇ C!1'7<)^+ 0y9# v}e.@,: 3 "<G؃<   (#U9)'0 : ' +7 ),<9&: Ã㖇=y w".:   A^Hߏ *s362#NoF;'>OF80><!3?!yzWX f?$J?aPks!<$q^s6tÃP[@C8aM?-\Z`a8BH{gG?MW3757/ASO}BoX>(so@=d_,8 xVD<+mw@sksIJ4 "ƫF){koa~BB?hC/`Ȉ kk"w"^%:t4ڄ~3jN0f >eʨ/6!' |>hC!<>>~A~oe6;x ?!><| ? 8<66k 6F6GB y"אHC:ݐoHX):J ȱv4:(w{+H02*`HYG6BM:b,ڳNotj Kж&J"91%. 6 Ib'D:!@|H$ILb6 ;*v$M}':A ;34Љ z?b4 bD.4<䏂"G6&ژ8n# 3Wa=6Gt0#91hL!3:"@HJ9.P"BdX$x#u1RJxǐ8* G".  #1(<,DB'&j7$rNZP (JG A4Q{;FC4ydNZ 8Y |6#$ wh!}xr:C$ GX!aPeL 9bseN,QGtCXEVA"QȺ3("&B&dNu6@B[l;w` -|[l;w-pw` -|[l;w` T-p l,-|[l;w` -|[,b@B[l;w` -|[l;w6-ԡem|l;w`6m|l;XJa6B8 m;w`6m|l;w`R8qYh6m|l;w`6m|Rq l@Yhgm|l;w`+V|[l;XJa+VB[9 m;w`+V|[l;w`+R[9rYh+V|[l;w`+V|[R@ʁVB[l;w`+V|[l;wa+VB[9 m;w`;v|l;w`;R9s , <'C|l;w`;v|,ja;p2;w`;v|l;w`;R9s , 'C|l;w`;v|,b@ ehZeh$(eh,Z4%8@dhDZLehPTZX\ehdhehVohtxZ"|-@ehZehZehZ%J5 -C2 -C2 -C2 ,n u17@r@ar}qo $@|0j^^n$s;5@E8!<$% ;N _B @(F@( L )BDP`d@( ʡ@(0P +S?UpDz'uޟB/('6]!LKs_$P*>= Gԟ~b~tr==ejw$$O#sIBCla߬%aH{n6E'z°twh~  Y Eľ+Ԏzn?rixLe" Mr$m/uëƛ-mvB}oLJ a$trA&4r$#=M|z:XGO׭_)ǎ7C<8_tB}shxhby]^ُ'u['/t=.Cm =tiD<*̗b/AE:1Gr;pބzCcfud=tG@.`?p@ ؠp@ZB@-C hDEhF@-G Ѐ-I J-K @caA0pl`gH f 9L`MZq NO$P QR-8S`TZp U@ p`VXW`XDY-@8Z8[,\@v@ 0`]X^ _Xr<Zq bc$d ef-8g`hZp i@ p`jXk`lDm-@8n8o,p@v@ 0`qXr sXtu ;v,w@r@ `xh,y@x zX{| 9}~ <h,@;$ -8`Zp @ p`X`DɽsJ*,B> QLP)chCY@"iP 4Iԑِm(T grR> Cύx4*Ά!Oj@d??>}NvPg7R}9wgerr,obblOkFF-LIN@?sZRTURN:orSC#AOturn TtPId >dDumeM`$hTh elockOqptiox`0-I'mGredy?qpqrtli8nesCto.10X ~$"DR$HB$@Z..WLRݮ 9\02ܟHCUp≋Jc2(A\&V!|{.o>]na;)|, fNJ ʫ *~UPJ5@#ȅPӂJ*|i >`kT=/D1‚FD/%T]=!NfPbg}N֊=HPD3WAzqp#*U/A0/B?Ê?)GJ;T?:?>NAXkzy8Epq%<+D. '0޺#Ǹ`4 u5ęQFHr9c|eHA0n,l_Gm$x8=PAAC21 kqZ NF$0qs4*D9$08;HL3,0,ANR#nA6K/(MKIu,Hj}SNGCg KҰH p$:,UgdCD/$^g|Vg?{<z| DCID4fLF2|A|$?gg{_uQ~fۙQJZ84`HJNVXF3.r2I`ʺ(<mpSg :|AG΂x2P:DgtgIPu$|f&=ed&fg^vgN r]tݲfTAQC7!|J2gC p TP-QC&H &&Mr2{203*H׌z#SfNZL4:X^Jxh8Q.,<>*XLG V$C7E%(<>% 4E9/c?ZzGhp (*x)*p?=<38ON=Ɨa>A?P4<B>'U?Ec(so@=d_,8 xVD<+mw@sksIJ4 "ƫF){koa~BB?hC/`Ȉ kk"w"^%:t4ڄ~3jN0f >eʨ/6!' |>hC!<>>~A~oe6;x ?!><| ? 8<66k 6F6GB y"אHC:ݐoHX):J ȱv4:(w{+H02*`HYG6BM:b,ڳNotj Kж&J"91%. 6 Ib'D:!@|H$ILb6 ;*v$M}':A ;.  t..  tRPCHROME TXTt PCHROME_PRG t PSLIDE PRG t J PAWN PCSt MHELP PCSt X PCHROME: A PIXEL TWINS AMIGA BASHER! Are you fed up with all those Amiga owners boasting about their fabbo graphics? Well be fed up no more. Once again the Pixel Twins come to the rescue with PCHROME and PSLIDE. Here at Pixel Productions DML and myself(Nod) have put togeher this little goody for all ST/E owners. You should have: PCHROME.TXT this text file. PCHROME_.PRG the picture tranfer prog PSLIDE.PRG a slideshow prog and a couple of examples that we did earlier in best Blue Peter fashion. And why not? Load PCHROME and make your selection. If you get stuck, then select HELP from the menu screen. To save your converted picture you need to press RETURN. It will now be saved as either a Spectrum 512 SPU file, or a PCHROME PCS file for use with the PSLIDE slideshow. Now, if you have VIDI-CHROME and better still VIDI-RGB, you can get digifying lots of lovely pics in 4096 colours. (Don't forget to save the R, G and B files to get 4096 colours.) If you have QRT, you can have lovely raytraced piccies in up to 32,000 colours (on an STE)!! Of course, if you're boring, you could just port a few IFF pics over from the Amiga and transfer them. But it wouldn't be the same really would it? PSLIDE can also show TN1, PC1 picture files. The function keys change the speed while the space bar freezes on the current picture. Pressing RETURN will start the show once again, and pressing the escape key will quit. Coming soon. PCHROME with GIF to PCS conversion. (That's if the Highlander pulls his finger out and sends us the info that we need to do it!) PCHROME.PRG and PSLIDE are in the public domain. Let us know if you like it. The source code is available for a reasonable sum (the address is in the help section of PCHROME). Have fun, and make those Amiga owners cry. Byeeee NOD 4*Ά!Oj@d??>}N`.P~3 Aڬ <LBSj*O#t$O*m - ЭЭ// ??<JNAO NHy?< NA\O#tB9v 8 Vvasatdaw0A0avDA,p <8BSja ygsb ygB3.N a3 zQ y zg y zg 9f(a yf yfQ y zg y zfa yWQ y zg y zfJ9ga4 yW~3Jyfatau 3NpA0auJygJfR~a^aFA0atJ90gN`A0atB9~3Jyf`B9~3JyfL0H@atTatbAB"yuN yuattatV 89fA0atR3Jyf``B9~#B9~3JyfL0H@asasA2"yuN yuasas~ByJyg yf23JyfFx@3JyfFx@` yf43JyfFx@3JyfFx@`zNuB9~J9vg 9fZ#bB9~3JyfL0H@ararA"yuN yuarar`#B9~3JyfL0H@arpar~A"yuN yuararr`V#B9~3JyfL0H@arar&AX"yuN yuar8ar~ByJygNuB9~#B9~3JyfL0H@aqaqA"yuN yuaqaq~ByJygNuB9~#(B9~3JyfL0H@aq0aq>A"yuN yuaqPaq2~ByJygNuB9~#>B9~3JyfL0H@apapAʜ"yuN yuapap~ByJygNu`d8 P0J9 |f 9f ,`,, 3JyfNlaj F' 9 }g 9 }g !`!pNr#NlRyJyfa^Jk< g<Sg<sg<g< fQ0aiNlA0ao 9uH!߂ 3JyfNu?< NATOJg ?<NATONupNu#Ps#Ps#ڬs#ڬsQ | y zf  }`| y zf }`` y zf  }`L y zf }P |`2 y zf }`#a000000 #b000000 #c7770007000600070055200505552220770557075055507703111103 #d #E 9B 02 #W 00 00 10 02 32 11 08 A:\DISK_2\*.*@ #W 00 00 0A 01 1D 0C 00 @ #W 00 00 0E 09 2A 0B 00 @ #W 00 00 0F 0A 2A 0B 00 @ #M 00 00 00 FF A - LEDGERS -@ @ #M 00 01 00 FF B - DISK MAG -@ @ #T 00 03 02 FF TRASH@ @ #F FF 04 @ *.*@ #D FF 01 @ *.*@ #G 03 FF *.APP@ @ #G 03 FF *.PRG@ @ #F 03 04 *.TOS@ @ #P 03 04 *.TTP@ @  move.w aud1vol(pc),d0 lsl.w #8,d0 add.l a4,d0 move.w aud2vol(pc),d1 lsl.w #8,d1 add.l a4,d1 move.w aud3vol(pc),d2 lsl.w #8,d2 add.l a4,d2 move.w aud4vol(pc),d3 lsl.w #8,d3 add.l a4,d3 movea.l 4+sam_addr(pc),a4 moveq #5-1,d7 ;5*63-315 prep_loop: move.b (a0),d0 move.l d0,a5 move.w (a5),d5 move.b (a1),d1 move.l d1,a5 add.w (a5),d5 move.b (a2),d2 move.l d2,a5 add.w (a5),d5 move.b (a3),d3 move.l d3,a5 add.w (a5),d5 move.w d5,(a4)+ ;save mixed sample prep: rept 62 mo2 yGF 0gkh>43Zh T4{=$h.#<ǫUg'B}#?:8T.`K;_pulG >O bl U>aGdt2^rp lBǑ,<>J%fNc>&#W k9j_Hm "Xi1^Զ(x`R0T"# Z08{R]kQ"1(? T  Y \-Qs= A6S$kznk1T~Wu40rhZus nGJ5RxгhC_S Gp`x $_C1!WTյK]yQX.ewn 8,Gק$>G!#y mf;|֜G{Ο +GA98V^c i~ִ Ĉw7J3ؒ [M$ ɟF UCm-ƷnjNqD/^gIv<Q#dш= #a̗[0.@svs٣Wk]L޳4):#wG5Cx1h7zôt㕱!`?S;l>tf1tGr%Y ^N~QrwXPu$wg;uR0.-{Y*_% ^aT$uih@0:\tTɘ :V䁙_EȎ,|i}RL5 t1 @-_@]ʯVt`ud쓌O$OT6M_YFxI;G1lz`Rivtme-@և2]VL5&MPϷn01ɯ}H0M٨ q%C@Thy`x _k"ГZ Mj "`V`Mhzz=]!gh8\_ W?W'3'{/]5BcO;nʧp*>Oqe WE~o[ $IQGTnG U]UI$v_BW@Dx5GC4;[ëϬzj >n 0ԒjJ4J_r+@w9=z"I@O?.28jͣKEOm-4ZVzC+kU怑,eUvЌT\epUT 3*W'32n]K U͡-~UUxh:5%OãUVŢ>JhBe?/3Qo2]JHC['}`78l`uvU,DpA !-dd7P=b봒^^Ũ y`U]}vTݧU_{Y*mcT>UsI|h.10^<Uo*^:R9~rԊ|R䡒_@>5M^a?paɢ jіy\ʈj3t Ccx?ӛ=oG?N'/?fq ᰚ×ۧB_pf%4W%-:2 J ǣ7Æ"p>ޛ`/X-2֗?t 6\h ٣#4`k('<||PW P,-g]#~U¿hCxnU'ÁĢOc?^'ꣻ{A;v-&b/4V|o +߿ 8E|+ >/C:f# Ar!ƃ sGC҂؁OO'vJ<+jA9U:|Azw!R]CGA HCXr,vnnC!8:Ԃ ucZW)5srA# >eA| o*">D~my% CZУb0U LPQO|w:?]}@|S p_ο`sc Q!>?Y0U뇜!!D'8#YO @@@9$>D~}g) > }@N;,iL<l+7nҩ'{Y0t]𦅂x 7PC:)`JbR b2NB bIg*&@fK!#pfJ7]o|ӪJD \gNjFz<0D(#Ȁyf&QBjDjBoK+a_D89g]897 vVuxtxsxrxqx+F~SG{flΦ]H:w KNNI@۹֞p$GBpdӡj/@p8@p/3zN0R-7GZ3QwQv HPHQrC^ "__Q<| !d.W(KhVH"|}! p}gB8p^Nq48+~LߟyNҽDܺRSU^r#4 !3.?3PwuX{o?0P`p8=..no0Ps`spsܠܰܜ>77/kߞ0P`pu;;;;ou0P`pл;p}y0P`puy0=P`pt===<0P<`zw6}%EE*uZ)AHoфzJgӴF509&3/֤kpJ ȡ5igPݟZҬt#裶&ACErGI*`"h440=""&&t(Q#QgƼCbZf!0k<w"ACQGn3 wvni=0jRI@qs9o$<9& ;{Hr/V"I`WaS$FKhX(vM2i1t.m,J` 16 I!h̀.K%vHMJnH@(`Bw;P-lmS j!,[c4%>%#&#LIGHxpG #tQ$״Ghb44x$iEYѰMش)93LlV.izy͗ x&DV6fȭbQ rSȎ@g&'+, !`Fe2$apzdsT0L#ET_GAMBLEMATt 0ORIEGN2DOCt _GASALEMATt  L_POEM MATt 8_SATRE MATt _SIMSONMATt *_SMILE1MATt _SMILE2MATt T_CON MATt  cEĪN_M.w7і%);-%Y BБ.!#]2%4* ! f '^ J@ZI VlG eRH4C@Jt ~v+REXڧGBC@i6d@$@Gh  !W4FH ;L*)tT?MH fQ .%(bmVE@ Nz., ΖˀU5\_4\pJӾe;o[n~6|Э0/i$@$ OZD@B*5 DN4[f-M?JZkb&J@&7 4&:w'IJ Un: c%ls ]rpa R5:%!-@4X:Ґ63Ihm CAJB`6 `(>Br*|bd[?źq E! h&<8068l{>)A}‚l0p>n(v8ߙѶpp:vD؂ûi@2 4`uH@ޗf-/1?LB$080@p0 z `5daÃ~[UQ_(S̿#b^PP6\ dJaL `_g B:OjྠKj;=6#@"1 ۦN$6* Vfn8**dp:F& HZn:SG{Bpx$Ԗ*A&\Tg֮+CSDJDgH.uINK`íR{FQϐ3Dj(U0%k8X'13ƛe4$8j9 j žbg"-kHuVj8<cI>`A&J: r 28WSHAjkEkGxb5SgHnL`ZK P*]^|EfBJDf"0` }1JˆBPJf~3{rAh CE0G> l0:xaFGGM'>AQlpJf8\MBgg<`S)a \DMf6:l~HLc|Ha:$$Ry0F0.56PߘXX e<겞cc`.v9ˁ]d`.v9ˁ]y. r`.v9ˁ]r`.v.v9ˁ]r`.v9ˁ]r`̥]r`.v9ˁ]r`.v9o.v9ˁ]r`.v9ˁ]r`]r`.v9ˁ]r`.v0K.v9ˁ]r`.v9ˁ]82v9ˁ]r`.v9ˁ]r`e5P.v9ˁ]r`.v9ˁ]H. r`.v9ˁ]r`.v90.v9ˁ]r`.v9ˁ]X2v9ˁ]r`.v9ˁ]r`e5P.v9ˁ]r`.v9ˁ]h.v9ˁ]r`.v9ˁ]r`p,0].v9ˁ]r`.v9ˁ]r^av9ˁ]r`.v9ˁ]r`ˁ]r`.v9ˁ]r`.si`.v9ˁ]r`.v9ˁ]@7t @  *PA;wtQwG9QzG; Q~G 9 Q  (G9Ѿ}G9Qr(G9Qr(G9Qr(G!r!"##(G$9$%Q&r&'(((G)9)*Q+r+,--(G.9./Q0r0122(G3934Q5r5677(G8989Q:r:;<<(G=9=>Q?r?GA9ABQBrCDDE(GF9FGQGrHIIJ(GK9KLQLrMNNO(GP9PQQQrRSST(GU9UVQVrWXXY(GZ9Z[Q[r\]]^(G_9_`Q`rabbc(Gd9deQerfggh(Gi9ijQjrkllm(Gn9noQorpqqr(Gs9stQtruvvw(Gx9xyQyrz{{|(G}9}~Q~ruG뎁r(G9ʅQr(G9ʊQr(G9ʏQr(G9ʔQr(G9ʙQrQrT=PΞ[`ꇠ?0xxt"yn0H2<wN? `Y0.H8.z@( .`P1BhNu1q-Oa@zfe-&uἏ;a.l)clmoupsLBq`chgG#q$P>lR^A0i4y*g*+&)<4*%Hopts@L0$t[zzau*Ö3Epx?p (fhwb _Vvmtym_n'(fUpo lygGfil!s~ch5niWe(e*qx)`aPpiKlӻH (g*dLI,J@UGGsu߭drfgwHUstDttV=akl&/:+f;elogra mtK %RQloIIgjCaHy-cޓge Q&riouartcl0~qundd\'Lpl0fmakBmoadvan-do@k,nowps(>pac=oTse~rHestoftheintrox(.J>>|"a]"CpY0b&uo.a}Ă?  H9gvAx׾ka9ETor}hO*';"Bf&"r06. HY`N6ȫǃd(2z,* f+ (<l4@A6~$"(C$5tJ=y|_GtC^@jMGa 8A{=LOZS^Cxy<G(=/<"~("Ċd_2,~z=4?<bJ@     }P | 9g 9g 9gQ ~A0anA,p#ڤڸaFa J9 |g,P ~#ss#ss#ڰs#psA,p#ڤڸaa `Q ~#ڤڴA,paaA0ana jJ9 |g#ss#ss#ڰs#psP ~aDaa &`n`lQ ~ 9ڤ#ڸaA0ama J9 |g@#ss#ss#ڰs#ps#ڤڸP ~a2a Nu# ><"$&f(f (f(g RHQp`XHpJ@NuafpaiP yڴCP$yڸ0:<>: O3 Z<U@kz3 &09 |o0<S@~ r3r&H2<?$<~(K6Bk:<8BlKDQ{C40RGJBfHB>9 G~QAQaf0a,Nu y z.z*z&Nu::dE|3"MMEEEENuae~ah^ yڼA"C03ra: yA"C<3ra" yA"CH3ra aaeNuJ9 ~g J9fXI3 $yڸ09 <U@kf3T0<~ r&H2<?$<~(K6Bk:<8BlKDQ{C610ZRGJBfHB>9 G~QAQNuH33 lJ9 |gJ9f ByBy l3r3L"By J9 ~g 3 aKb 9fKz` 9fKT<< 9g<<w$yڸ><0<?r246KCJBANJ9 ~gJ9fRCRBRA|ov|ot|orf`Af`BJBf`CKCF4Qd y QTLNu  0@P`p    3"3rab#d$#(J9 |g#T$#( 9g0#t$#(J9 |g#d$#(ae 9g 9gKb` K`*zxzJ9 |gxz 9gxzJ9 ~gDJ9fzHPp~r< g A0 A`r< g< g A0 A` _  f"yڸ$y$2<@@jrIA2<ȒGjrIS@SG30<?(IrrtvDDD??N:8|o6<|o4<|o2<f`Af`BJBf`CKCA 9gAw8DQdDCQNaaNu:EEEGP:E3PHDDDNu::ldE|3"MMEEEENu::JdE|3"MMEEEENu::(dE|3"MME8LDEEENukkauZ3ra_H ys0<?BQ 9sH!Lab yڸ"ysC K2,ysM><?2<ǒGXAr*<ra yg ygS9k6:`*<rAaTA yg ygS9k6`*<rAaA yg ygdS9k6`Tzr AaA yg yg.S9k6`*<@rAaA yg ygS9k6\`z@r AaxA yg ygS9k6&`*<rA a>A yg ygS9k6`tzr AaA yg ygNS9k6`>*< rAaA yg ygS9k6|`z r AaA yg ygS9k6F`*<rA a^A yg ygS9k6 `zrAa(A yg ygnS9k6`^*<rAaA yg yg4S9k6`$zr AaA yg ygS9k6f`*<rAa~A yg ygS9k6,`zrAaHA yg ygS9k6`~AC`M>Qla\jNu3HPHQHV<<?0AG|6KI0x4@HCDDE06C630Cg6|gJCj, >`@gQJk $F840`4vatj,valj$vadjva\jvaTj vaLja6@RAx^@RAx^@RAx^@RAx^HEA <Q4,_"_ _Nu??333C3P63jKI0x2<@w4@HCDDE0HR6<CE620$_Cgj:|gb<>EMFpNG6CKCjDE|n:6CpKCjDF|n&6CCjDG|nEFAl 24QlJ9fv`0v:2JCNu??634KI0x2<@4@HCDDE0HR6<CE620$_CgR:|gJ<>EMFpNG6CKCjDE6CpKCjDF6CCjDGEFAl24&JQ0:2Nu8 f!F0h`4!VhF!HPHQ ysTHCB2""""""""_ _J8fF#?8g8`0JyoSy/ 9s#ss#sH! 9s#ss#s NuS8oNsF'H#FM p~@g@h0<QNqNq.zYDO LH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNqLH@H@!߂\A@ 1@ 0<QNq.|L!F.h#NsS8oNsF'H#pdM p~@g@h0<QNq.z-lO LH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<QLH@H@!߂\A@ 1@ 0<Q.|L!F.h#NsJ9sfPsAR  NuJ9sg$QsA2F'! F#Nu8 ga`aJygSyNuJx>f@F'I@K &ysG ><JgDh0<QNqNqNqNqACE """"""""$$$$$$$$QNqACE """"""""$$$$$$$$ACEI뵠NqNqNq """"""""$$$$$$$$FNuJx>f@F'I@K &ysG ><JgDh0<QNqNqNqACE """"""""$$$$$$$$QACE """"""""$$$$$$$$ACEI뵠NqNq """"""""$$$$$$$$FNu!!r JygSyNs1w@!?0<QNq0Bx@NsHA p   !F'!rp@ !F#LNuHAJF'!p!  !F#LNu?8g8`>Nua0a/<?< NA\O.| BgNANu?<NNTO#uB#u?<NNTO3u <-oB#u?</:,/:$?<NN L@Hu 9uB#ڬ 9uB#ڰ NuLH@?:/:/:?<NNO aNuANi  p h  4   !F'!~F#a Nua $AF'"XNa!!p!h!!4!  !F#NuH yڸ <BXSjLNuHrt 9 }g 9 }frJ9g4< ys0<Tv00 00QLNu yu0<?BQNu z"z0<?"QNuLH@NuLH@Nu|tvx<oXHW`pCi2Qh2TH"HE yu&HpkJg<gF`hS@i0ARB|mtARC|mvTD|n A@Q`NuD`hS@i0ARB|mtARC|mvTD|nA@Q`nATCr0XF@2QNu0:bܰ|0m0<03~2:bʲ|m2<3~J9~nk~J9~g`Q~NuJ9~gaA0$yu09~3~@H09~3~ E E E E E E E E E E E E E E E EACT$yu09~2@H09~ADAA|~<>jj jHFHGRjZHF~>jj jHFHGRjZE|~<>jj jHFHGRjZHF~>jj jHFHGRjZE|~<>jj jHFHGRjZHF~>jj jHFHGRjZE|~<>jj jHFHGRjZHF~>jj jHFHGRjZE|~<>jj jHFHGRjZHF~>jj jHFHGRjZE|~<>jj jHFHGRjZHF~>jj jHFHGRjZE|~<>jj jHFHGRjZHF~>jj jHFHGRjZE|~<>jj jHFHGRjZHF~>jj jHFHGRjZE|~<>jj jHFHGRjZHF~>jj jHFHGRjZE|~<>jj jHFHGRjZHF~>jj jHFHGRjZE|~<>jj jHFHGRjZHF~>jj jHFHGRjZE|~<>jj jHFHGRjZHF~>jj jHFHGRjZE|~<>jj jHFHGRjZHF~>jj jHFHGRjZE|~<>jj jHFHGRjZHF~>jj jHFHGRjZE|~<>jj jHFHGRjZHF~>jj jHFHGRjZE|~<>jj jHFHGRjZHF~>jj jHFHGRjZEP~NuA0$yu09~@H09~$$$$E$$$$E$$$$E$$$$E$$$$E$$$$E$$$$E$$$$E$$$$E$$$$E$$$$E$$$$E$$$$E$$$$E$$$$E$$$$ENuHaLJyoSyNu:9<9 z,>k$2468AmCnBm Dn3NuQNu?<"NNTO @###!||!|b?<?<?<NM\ONu y!y!yNuJ9~g?dg 3ڨ3ڪHa,LHyڨ yڨj3ڨ y<ڨm3<ڨHyڪ yڪj3ڪ yڪm3ڪ0Nu yf#j`0 yf#`#BNua#,pڤaaNAXpNu#??<>NAXpNua aa,aJa:NuHz?<ANA\ONu?<Hz?<NAXNu :/:/?:?<@NA Nu$yڬp'BQ$yڰp'BQEC4@5|QJ9 |VQ 9WJ9,ga2J9 |ga< ###Nu yڬaAPaNu&I yڰa"aV yڰ"KamaB yڰ"Ka&IApa^"aLAp"KaLma8Ap"Ka8NujH yڬ"yڰ0<?"QLNujHAPCp0<%_2YQLNu. HaEGu(K*ITI2<}tv~SAkRBfRC`|lv`|n4RG|nvC|nDD` ZZSB(KQ`TCo(RG|nDD` ZZSB(KQtRG|n`[[v(KJAnX__L} Nu. HGu$H(K*ITI2<%tv<~SAk0<8RBFfRC`|lv`|n#BNuAF#.0Z0000###B?< NAO֠ "<.0<NB /<?< NApJyjP` JyjPJNuQ~aahaNuHaaa~aZLNua?< NATOJg ?<NATO`Nu 9 }g 9 }gAC a"AC aNuALC a AvC paNuHah ICE!fZa\KaV.(I,I&N%aT,Kazd8><apdpar>|8#zD@DADBDCQQHQLNurQNua*d"ra$dCv !a"H@@Vҩ%QnNuf%Nurf%AQNuCtaTxr1 Hka1 Ag"CvtaTr1 HaBq jD`rptadpt?aBC@!!Q`R   A:\*.IFFA:\*.GIFA:\*.RAWA:\*.PI1A:\*.SPUA:\*.PCSY!-YQ]YiuYYY-9YEQYeqY}YYY-9YEQYeqY}YY=IYUaYuY5_zk|_k_kH_k_kH_k_k|xx|Nˀ@ICE!l 8e22%333E؃j+xxC\e0WY+UV s \e 0 WY +  ICE!NkzC^e0WY+UV s \e 0 WY + eN x\ICE!-xAް xNxA ^Ѐd@^Ђ410 xK xp xIP x0 xG x-xA^QdA ^ЀG xC/h-xA^ЀX Z@^Ђ49-xA^xA ^Ѐl^Ђ4-q@^Ђ4)s]Ђ4%u@]Ђ4!w\Ђ4x@\Ђ4x xE-xAqTЂ4 xOX A ^Ѐ4mxA ^Ѐp xMxA^Ђ410 xKmxA ^ЀwA ^ЀuA;^І x0 xGmxA ^Ѐg [Ђ4x@mxA ^ЀG xC%/h Z/pICE!~-xAްmxA ^Ѐp xMxA^Ђ410 xKmxA ^ЀwA ^ЀuA;^І x0 xGmxA ^Ѐg [Ђ4x@mxA ^ЀG xC/h ZpV7w ?/؂i#ϱK)8xI޳̢ZRCK 3WuAo0 MDzcP=r" UrW `A^Pg(` 9 ,'N8!"5Xg-0b ^ % ĎkqGiBG2E؂!ԉ1 XD(mA^GIfKp$f,dK -$[ [X'w3{;2dX4$ ݁ױ3Z{޽+x_Wmz u޸C t<.|Da.<0}=^Ut-3_< /Np+x0zߍÍ74n / ?x0? %eT5ݍد?V:b,D``(ϡ4fE<8l~"(!Xށx@EEEig >"<PSQ3~7-*(Ⱦ5YЄ4 x&fj!=s 'H^Ӂt5xdz);0>":"y߷Wy @ lp Ȍpb<9g5xB{tπ` 11!xq1gV1}x>43h <T xQViԅ  sv0 xޝ C#1F[Wz[Zo^Sz+o ^- -x)xi/uۂs{vn^Qs Bn ^m+UxQHGG^TW?ͬ(/„n;m ^+MxVq㘰'.kP'nNOz;G _Nnop`@TJ'-tun?[`aU 0! /%A_WC[ϠoI7% w_g|~ytnn0@?S@k rw}Kqlj&q^ ^O ]}8~8o܎?sO׿$mO<7h'6?_XC]8x<EV'`'!@8 * r%PKuI@^Q^P_((e> :=@D@G@E<|~<pp_XBh/ x xP5 %xx|E=8E<GHG(M@|Cu(_I:8"#"<# >1 R %5xx j OGHO kh txICE!r"4Vgw0EpV7wc Ĺjm[|Ìy›# b%hW<,ͪ'8]!`]'SxS0[ . u *6n]z q5xp+q,)4ff%Lm1$,n[cs! '3UxB`Cx/q9wNpC]9 `f*UqK xA\wq w9"?BP9S 67p Agx[ 6<Ҍ#7vo` #J N9 x  0qw '!Ǡ ')xWjʿr<xMf]׳Kv^SW+Bv ^.-x/be/aWn];u ޹KxVO\/%X]szu^Q :u ^ċexA ^HGG׿T8`?i-0 (WL^ -xAG݄W[\W+]! /fO DZNo  -1 xV_Rnop`@),5tuoI`aVUc :0!~I °/ .A_WCoI痓 :@/ x-/ w_gq/nn0OKxM VzTNT%..w<$ }^qlj&q{ Ox/C<|O npûB? !xS8~}|, x}*jf~8|0Q{fO(xssOs/qmO׿$}}uww<u𚰺%_XC]8~L ?>؂\Ё=@D@G@EqqJk  :rMOGHOAޒwh  & 6A ޒ5ICE!"4Vgw0EpV7w¹azeqQp [s,>v9van$ 4h 0 67qOS[ !+hk:P Bx(#FH@܂V e3/#1u`9x^X冔~1 dH nC:P5x *@OAܐ%7 p "?BP ;s M)2I xq )xl)YA<,#t^uflM = H*#JQ x8a  LIH!HUH,Ixw*,'޺w[r Zn%xo)xO& \w+\w[r H%x!9/) xWo]S\7(HGG*+?ւ()b‹x/(܄[\GElH˝Yi/EIX18,S<;_թ nop`@L]fǍtuxK`a*V^Ё0!% //A_WCxAޒ%tK w_g>?U\ :nn0 ?* x*F :=@D@G@E<|~<}yA@}0׈xADQlTDD^WY+T+9}d>ppK B%P x{| xE=8"N9 xHGE@7T(̤o"#"<#, ' x 1 R +);0PSOGHOt qAdh x FyICE!"4VgW00PpV7wH怀pɶ5cl 2 I xZ^ *dWq%ˆĨQf|$F|xT^8 x\cnFv-Eu!uC\bnJ Sv ns:m1{p@%/Cv!tv|I2c^s#/x~po0h-?&5xo11 HP0N?D`Y[Z gLe%zOM Y7<0/ ?x6po  $cA]Dyρ;0Cw_wAwL<Bo:  ;@?,x???   P;|xyA}@@@|J10s^$> / x""!S E"('<$$$ xEyQM^8|DD[2||@@ICE!ϐ"4Vg`0 ^PpV7w}B6+HKVUx6D<:,hC"cE8űEFLE5Y h^!hјӢ"#?pwrA]Ec #-Y )?2sTBC@`_?ٓ2- xo2-<8w= @G7ox!@@@`_g;)2bRl%x+'F AA AAAυq%N@̿T ?  1[ ~1[u 8xx[#$Po"Q)~D |n{ p侈o@W~z d~Ⱥz# @?N"# ?Y<AME/H3puuK^Pg LU@`_?32%o7vXWJ u 0lx!@@@`_P:2bU{-x3)F AA AAa\ *(_%0RÌ]utuY?8Cߟ u 0]d~ 1 X~ߨN1#/0xO }}!0A0wߐA<~ s*r2H@? y% N Ǽ `Ϣ~gdU@ש  ?T KKRcR K^d.觸(Ͼ( < oTI5ICE! a"0\Ua$Běkz 79М! 3W!0wWdPjd@p] #vЍtd 1 K'4!m ! A"nj W#,5(5 G#"f z!,)1#; |W||&KknnrƱ-M t`E'SvV\ QU25o~4]xuhYA 0[ ۭ6x)~` ϗ0*"@kg3szN0Bp,FZ,')ά|8ƽDlxd`wAU$ >ܚ +4^yBb7 2Phn+πAwV$u0{2 ˚lO+0=g,kҬŰ,s<8 e`Dj6{AiBu4CsHܮZqs q@C 38w]wnfvs %jkX\`ڍq4}.>9(-x:+s"Žv[ 6k/̰26#3'X&aե;3.n7\-o\?;0LfqM3LqaŰJ+fٷoQfu(RԻÎMTs xp<30fL\F=376c6361ߏy+!~=0;n#܄j!^*1%y\ffl]\;OToZٔ KdT 0eTHllElzM~M#뜱,3s1;gm'̢u\h-pNqXq_\w<>f1c cd JMW(aఅ0RB1Ϻxo$r#L>b^*.3Y#?v0q$157o IA& 1j`3˗xϫea+phv3j<|צƙ #1fր\Xw1ۨ, L~ (5 &|U]`DCf+K܎p\M;>`^oKq2qq3#~ |EҩyȌSuqs3sꉅ.qp sx/-rnK"g!ڀ^Zu nU80f 7|̨^/;{V-9mq>wHiܺ | n0xAg>tZu[ڀAc dnLcYEn4|8V4&  |eYƱZARhm/n083f pDu2fJdX<=1cx!|FB<̬`(2kv< W.)p+^[YK X00~r>ŬJ&I L`n;ppt~%#gXp37~` #c`I10T1V*:0`HxHV0f Yb| vbD7F UJ>VY]WF B x`( |0x0 0qt)8c  885Ia^QM85f80 8a"n|v&O~P2#lR/L0&@0s*Jt`~J4qpA %9%B~r8xYR# a31/u|{1`~8O5 e0P$'G7DK1"S@r (@pU4~HߒB&fff<̀xj9LNIF0 3ff|<s~I0<0Ш؞&`#`<|3f>f||1y^_80301{"vfPvf~vj>B=|0 x̬|̌x@ Uf~>`f<>8<f~`<< `Ѐ,pd,                               ,  ,           ":~ R @$   B    z   J, R"".  $ $ " & " & " & " & " & " & " . .t "*|< 6f$~" Jz$   &        R   * ( (   &N>\ ""(  H IB1JB2JB3JB4JB5KB6K&B7KFB8KgB9KDFLDGJFD&FLG1PG2P)G3PLG4PnG5PG6PG7PG8PG9QH1KH2KH3KH4LH5L)H6LGH7LdH8LH9LL1MuL2ML3ML4ML5` B`Pack-IceI *L ~,Lka*oMGLA "grѓg f``GP$]t***Ԋ**EL ;H ;C&NN&&Sj&n".扑&&SjN%a*d"ra$dCv !a"H@@Vҩ%QnNuf%Nurf%AQNuCtaTxr1 Hka1 Ag"CvtaTr1 HaBq jD`rptadpt?aBC@!!Q`R   ICE! k`8]gBg XCaVk03W(nfJg@I08ۀA8` $zxgP#:0F`nagfRW:C f ]@Ђ$M#g 0$]P ICE!_f$e6IM] ,`{sg8hVf2yogCNp cx1tg~9mg`xe,nf6@B 4Ⱥ6Bg JU=*a K/yO xjXCU?>Xp5JF0o8@A :U\B*D. `Bw~Q\OHz(NPf2?<ONATOJgn~Av`CpEG0:b2A&p tBV no^>@1TN?PCS L L fNk!f`QWҌ(W4k$=ؑk%nNyC,HNnd_vj>`JR`JUg"PkÚc*T{ ae({C m|H(x3B^5@j&g8`0J'oSyk"/tlY/Q DEJ9 g #AdD#jH! NuS8oNsF'Hc#':FMc p~@g@hk .z\:~A^К4]x^ Nq.|ށ!%:Zh#"S8oNsF'H#|dM~ p~@g@hA/.z0hCAAAAAAAAi}ʳ^Yx,\!߂\AGY 1X ߉.lV]f]:Zh#Ns@_`0 ${ qnAu׍g> M8#`>^cC$4*eޔl B v2"Le:alHj:߀gDAػe`..(gf\I9`loR8%g쎘`u|Y|+rx#woXHW``pC?@ 2 H"HE(&HpfkJggF ^`y?D`hS@i0RBomt~RC mvTD|nAAG7Vwn8Y9g?uXOaaz0J -\OBgaaGCQ( g BXYH!:s:5/<3P#LRH[b6?4 /n,NN BB6 `Ni hh 4 о UB!P*k!EңO 'Adj"XNah:u*4!  P*T !UBF#?oSB"2%F#~` :JJgYc W fQ!a;mDntQ;H@@23_h'٘ RJg ?<pdpar>|8#z?@VdBDCQQHQL 7+a*d"a$dv !a"H@@Vҩ%QD߽n f%AQNutaxka:_Ag"CvtaTF1HaBq jD`rptadpt?aBC@*!Q`oR.PaY S* > Tq1H)8 D(^8Ŀ=6=  fdz  $(LQ #!|?z N .FH "4`ENEWKEY NEWPALNOTYETOKANIM@OLD134ICE!Adk|̤$E&2R*(CUJ UEu/*tюADݛ+g\lPQo79AE{?B1"u*;XݮQW** _EHZ]z..:+AwAu P"b*,*-wn-f]]uP]W&S(nrW:o+.7nsoU2 `_ub_>>*" *wcofV$_?ZsXpTQK>/ zuDQd* 瑞_}hkgw9Zl+Rգ3W3\ Knz;jIΕPUȒtFſ&4p7qV(ATT)U_n?**joZcT׽jE\%+(m!81!u5}|oUH@Rk+D  ]|]4u@X Ak"0*LU4 ]J3~a()֦TwyWE;&UEAFI9W. )*ş.1cK(#LȪ[,7]%˵lR9d5^˾l/w+~ awUWu[JN4[tD @D (TFZ7wd_׿\5^bd?'@!` 02jw w3wSk6ePpd`}GQ ~Z< 6@)L4b=$ta躋/3ĆDDUqS{IA&O?﹩7*Ȼ>3s{'V{UD 8|& .ao( "/Ea*  (<"?$GjOy^*cnь}*""&-uw*ۦ,h7u aBjPpHUE _W=N,մ`$YXEPBBJڢL$Bf"au2V/߽~BU\m PX̀eQ0h/A*TR Uj* _ڵ8e-ԊΡW_w,]geg LD?9@dEWcxu[.r'rswg7b"&@*A@NojwM{~7њu@AIG mfA;^o%^C33ҭ."+nX&}eIw3Rj* {k:{nP]Mk UMTYqT](j^ #3{2:j/Z {?QhnT` 0Ԁu_Xȁ: *%tw$4Ws iRADD@! $DD0ڪYN][_E *W`+gʪpZ` xHg(8ErX#V,` B+J.gƸ>@A#39>?УxF)7e5EurP' ]5]X_QDU eE  GhI  Hw r7&"> WQ] 6}I)(h9;XD(v?_SIwW9"YrA^ `.#dVuWD"; 7ƢՙhP"&X6 c+0uK^{;wRW|@@J=B7j`uZ4ef0r'6>$K{ҠzotA@X*EYW܄`wOUWw_ /D6b3r#w#*aE^Ve_T|:WUBV ] ^Q fCWwNWUPUv"'73b;@U?~~7~ԩyhAT7 Qm1Q5E?Ҋ=>?]u*#]咟c3":APP>n@UTAP@UQUC"d,FSLE(|Y(Qc6v2rY?kX(>+b +`{f%""e|| ^wL+cr3fc?Uȿi9#N6p} YbY_J.U Wj] _wgv72gbf2srj7V {H C_pAyR1133w#5T.)t367"#2kcww6,_wߪqfB*_}7]HSw3&6w;,~tU:xYA~u}_ "*)%B}WoN8AUN2#g*^gs{A*T`*z_?W]__ȭ(/xVz*HD2֯g2Vsw{M+W(z+ﮯ,}]*|}j@}}wr"3ewr*pg\bI:7(P ǞD׉#Iu7},+IDf6c"wvvDM~+~￾9鿳3~9Uէ_pMbWlR߀ DSfw&77g?Ƀ/rEDUEAU"""(W kʨ?(( щꀫp;3;w+I(;0w,!qZ_c#:cc;ID&+` 4@H =R W0_Ύr^}'3cs72(oQ*Pw̃ ki'zCWw=Ћ*{@WuJdJPʃ63?R+DEU@'ED\TF oU=A6}ԏ`A W]z΍f6##8cf>7?ⒼrTu!}Ou`^ WEuI.%u_2bsc3w37{T@ꄴ_WDPUDETsu@]N U]]]J Ya[ T2""*UAUz~a@ww"3"#3'&'"&b"wr. wu]}UnWK]UuuP*rBB*}UUCbA{{Y޸?S~&7t|͝ԝy}$1auuEE {@@DHȌ`tH؊ %!qh.⫶WQ %ĊAXHI]UQ}Rj)j=KM{뛋IИuUw?0q5%_tPLAPDTPl ە3b*b>+bh@?VՐFxT}̍ؑ}Nѵw]WSXߵ"P*7(]**2#*# 8ueUw" OQI/<뼣PUDWFE7=]725];D 03տH+sDP@EDFCU@+I 1t7/ɷy+)zWh`t 8 " '4f LA}I {5t_WSui@Wwmj)!W}AN/0-](O?x B@"bzKzB?91p"rnc""b,{UEw|K\3Ѡ_r   p   AHҨ41>D KA)?;vv'f2wmn Ű{G^ho0`Ko jOx=/ v6t~pVngO<9,tc}X#}}u%/|U*V_U^]UyqY`@__Ś=@3(2Eop|@(T߯_s_ޭފe݉)!kB`]""}7s S^[&cP DTuj{{w/++>"M?wV*J2G>rhwȠ*|?)|TWE^Wգҿp=onxx*k~7u@M W PsEHUH(fX ?^( U_?8O%`-,A @PW࿚ BH&? JE(UUWIĐrz?>xJ| 釨_op?RS~+!@D @* *U~QANOA[ %{;@ bP@ *: 'xU}P?cECrտw_'R ?_FC-<|3T_]u@@S^P"WfcYƇG8[Fq\Mb`b c}dafhJS:RluQqk|rlm4Uv V&Ѝ*#$e: *{+b >c fNr"ݷ uWPDMoJj1P0o$NVʖ촞M6|0֫lr-gnBp_j<<R-egCS`恥OQf7kDrdmp.OjJb=VpVOFML4 xo,h9r$B$r-ٴ<+1p +4-Z;`+6jXZq1;l3׋.M" ,2"`P)8fq g4oϗ^C!Z7fr,ix!;tZ5!=X?Vnr`RMPj+?sEm!?]-W[/hϜF<:Q8Sv!$,"2l`I?`mHnEUǹMGOItezIfIbGTHզl4y{\O"wֵjNC+^2ۑ+O]sapXaܹH<>G:Z6Vƹ3kNJ=q NN- jNdo%N NDAMN$-g3ikU"-~j 7M4?p_r5?Tg"mxȣ:%:-p+Թsp ;5Z(+:-*mM('>Eȥ.`5:H;fj90ժ2Cnz\?M%]?=Zg7FuFC>u;@AjY?f5|H"unIGOBLxL[m.<=4R[2϶CiZA<9?LZӯ,?=3*V`NrKO֩n=JK0.C#Nu+^ FfRp+;9DD6+GSD-D~Gp;p:$lE++4p.Ajw+Z%+S4b9ZZ9K9J9OFG`E9Vj8Em|d{Z8-F~FUtHp8F2j R&:EK4"Mp NmL\Vp-fKMUbXIFҵL6UOn87-8Cژ81vzKZB&̠ Hۜ$*il-.܈q(JpSYU-CjYE:RE6ʲqP5$jGRMM5H#nFUW()B0Gk9kf/kvܥk#w}qm*R_/\Vil#/U3k3pjP-Y/BN`Zrde!g IVDgqEp3iYn4nYVZ`~#+ZC "ZQ.Ro")blj y/lTpV3ZZ,b.ֵ"FnKZKa"rykTh^wl؁. "Z0s--|91sZpC/'{8/Z63O1VIP3XgZ5ߺ/V굼E梢ΫrV-\EnB!HޖkpkD!n-FirgBpGBՐMZNeby5E pWRk^HlI1E+BDŭ!04!j.8M63W.ಟ:,ͩkT0.*3-V[K/udp3jrp6/mD37U5H-UXupE,6/Dەr\[Ȯ\ Lk1agU[j}aei_kaUJa"KZN3Kk4j\gffZ+ji4d;au-Mk4lzcJYS?5/GEdt/MCWZ,gX RgV;p giTl& AM5!:`&$\mKR[rYAFi3V_r86˜Kog3մbx1Tog3_z6W43V䵂2*oZ.*3e7ZH44+Q51E_j6-m\4a"ѭEp35gU38]m@63Ur6lourk.*38EiSD!64Vxp4)6V62C*9լPX`~aYVXQwp+5|&jG2(-K*"Q-V؈?IfxpUfð,vp!) Qکk#FpxQk-dQ;+n[Vx]q;R60Ԗk[A.]VaKfVfypq\8Kp  Vn*N3#kZ5+ 4*$`06¹/:`N=nEr(\(,JfGfog0|-X c&wPr/`VE.Ev pa0f-:`r ":-f&*=$=[43.P'\nT+o6.b)j #kV^s`n΋Tx # -`.M[x&JJ`|&4xй:x NjT-!H"wCs-`J֦Vrh*ʲ*ʲ*ʫg F`!K|n0D6-ݛc-R湗4zTp8vP+I'Э$O9J2>K5g\[spAHYt:Q'Q{sxDSuQ`7nmvgQjX&Lzp]r RL*_mJ&>>-j RX!j@Ԩ&&b=&?R">&?:&J75 25:#2q.Bc=~yVE ^'!Ӥd-:XVJ gpRf&iy":"˲["n`"YhuM7DatK'Bx!KQ3UZT!¶2!!4U7j6)p6rږ $Ҵ4ޜ214f.l#rY{\+>p]j-(6e,>lS* (*0v<r5kN/9|~VRy E9y&o7"5..(r&XWD8)6h]um(}?+p%$Lr4`n#*&jB/9Ӽ=Jj\֩nD'(m5Y]FT" $H$tHHx H`XiA%o Q6)G" Qkx mBH>R- -c(΁%089]2v!T&VjXڛ/^pPԤs9pDGPl-z,ȷz#"H5# 45 75!z"|ũ'""Zh~Zc#n"RJeYS&oF0gG p-F{p;cC\1k-DUf-ޖ` .ivg2z8p!RP^p!JMNPN%#eE4d=_$m0$"&A}9+p5OZhuVK_TdPAOpr -tpR`#b`pe06/4#-b+զ-:-N/WU'0TrAЁ5p:E%`H:ޢ9;CT$Crp2®K42p./p+i"b"gD9l n ?Vp~A큌/,pa v .!A1a6?Ym_Ql_yb&7j(]aRa6.`&D\N$Z`U#h##X6-E~Z GQPGf%&dJd|̧C-šv:`,>CE(Ȗ8GeVfCg+cwzZʂSdDZÐ*WЃd&2 Mk Ӻ[SBkփe j RmOJjmޏȵt r$0iG ?`JH`A0rHAjr-dHΒ̿(09x"H[1[SE*Qf^`j| Nu9;"_KxM}gJ\Vm,aI$'Zqq-HpB)jn`B="JrhR"QS gfGWf$ AfA`E-(G&0<rX0MELr3@-JdH<?)*\Jo4" $;LI&JwM8wӵ(Fbx))BKKC͟mekRۋcdãfpNݝlV;3t?Aj2N3߯R 3Z e"3!s_6d~pZ0I`:Hp^?m4K\ kpLH C铎L| <$Np/ 9NA`/Zi.`zP4lBt8F"-Hp aopMh+N۴)T&3zr p0>7`pdr ?Ns,ILpABp 2 I,>`MlXpa>pZ9dA> (` w0= >lTޜ g߸K bWjĬ=PF(*!m2, EdQ ZfȴѦc4\BQ!!d?&0=pD`pG4(GW*4BW)>:pK }j8U F. X)2e}Z"g] |;"PQ 01!P1P!0P`+d{q#aaHO:c,NLcl0&{rdAd6;8g,BB(dH0d_Bo<t4AzoxeۗJOdf]ZV+H.#t>I\7*OVUeUA.eY>lE$$2"S$_GeFQQBpwgzO- Zgz"Zk)J/`~Z:g `IǠ!*gBp=hlBXB=9bVنvxz0DT|46f;gzz5=, oxW"`iHzSrf&Jp280CLVBT#dZC@D̜aR>DуhQg$"$ 6PZ˗J.g0HRJjf$%WCۀ%I J $Q%_X'q,?b A6SrpmR<v lB$OBb.krݫ&H>gTSv´FBdB8*L?<ESF`g{∞`RAdR ǟe <M?[`RF&7$xHZEΡٱfޏEv 4o0FjE*Fv-Hdf Fv[{T4^A|`HQ.Sl Aeg>r *x5e&!R0c d9c`1C@/aEfve!Ga/ r np g 0J,BSn nN mJQj~4BUBkÄ*SAd jF`؜`0Bz. "G\.Wъmn>xly0go8`Ȟ$JfS4-J$A',-BHQiӛ]T_]+k,+̛ai0S5>MدD^tBZwn?l;bGJ Vܐ.ed2dS4Ae0wԾa~RkBőnf20CҮ1262H zSAڅ.JA̿PEkJlm$I; TUC4Ij y$JS qgS{^mQZ8yPC;kag`af`ae `accwٳdq 4 vܴm4L<< Vʤft`pa ".f tj?@!6pM&VFpO&po$~*}!t)`t &r`ttş(r~5keNfPg#r6*Ik'.|NM6qBdȎ01< |aB%2\ 98ePaP`t &j?qa&pv`%Ϡnp`8yj'rgwvC~90`v`v`vuqv`vj`v `-7A `v`p&rtMn=n-n>v`v.SAA`v`WSCSAB8pr0N"_`d] ;Nv` =0.($wtyJ.[""QlJv|AT-AH) .d>Cf"X Pe(8:!HQ"_HV Z%68> 0v6)&<F<>RmGYfx!b$gm(F2ՑdV*Do>Eo:l6Al2 hV 6ѵBc~#OVo Acnoo(zH/R[  ]Ak024E$ 55A6ooDK5:8 B00"x(tPAdJ0n:bSFSGFn\GnXDk08Ek1pe3 F d` Gc2>="0ދTbrQJytP:;T&-H4%q!-\DD 孾Ebf\+EXDZ-|0aTPB t~(+,LN?/eJb`CU25fndrAdnET?/RGRFGJ=FL`lCtGJæ̨@tBfd23BrGO`TpЇ +b"Fߕ2pjHVM1,L~4p nhzCU??/ \M, >4$Aϼp_[00:"9ZF6rj+75[v"`*ɮ[]gξ|g Q XF|` xQSȑkb]Bb0-H4 p4N2Hl`A11!FQa 7%24x6oE%B!?no-Ъ;EFosPSHBQr_hkBg3(rƂ-ZDNfd=[ozkAf@Fl|?/wޘ.k \Hxؒ[>Axx*o"2fH}r ~dGdEH<@4p0FAJARg09ZŹ(1(PB+M̶: ؁oEâ֚aVsC >;wa|܁S7uaH0< 2JRMyna||p_Hza`'6 mA"Jp+oj$!FpARF@INZl1 -@nu=G*gp`La"E p87>ʾ9x$I"t Qhk"RGef' g *f֌҇<Hj|o\FkJ[gi\(dRg^HS&I._rMn\Q&:s ĥr ?B{.L=_h>d n HFk[ p## $!WYuL&CȵN#  u#ըݰ!V[VV T; S T"_$_HQP Rb6Bk,Kn@*8Y$RP'']He`"$`"Z&.P7~ǣ+j#ɭ( \_NNalC G[Rgofi<-lfێg ~KTy-H<Y066e$bPr}AL$D!BA.fXծPR@6rap-4˫2$"ɗ|,"Pg2?>RH"Fr2gZA!:e2>#1Ar2<XJ[Drij2J>Z"?.v}Se<"dOoW7N7"IdmaHd `8PrnN(W̔Ae4RBBcɷ0(0$2=eWPھ*"Xpg"r~HRAfZnc~1)`!J2#f e6k\i-#oҬ"s!KjC4Ƭk^BcmVd"_&B[΍UnbFlZg>4'8sP 8b6l^$_// Z}=c4S/_̂Vũv,$p~'69vR$-D$9Z^! lyt 49@9ڠ`aa 0g9SJfS#zNgc꤬G cr `\s3c|`$VC:HhPD.=NM4ٓ6~=_l7/"$Y4Th?)`&wE^e eh@$b hB&&6F#rJ'"PD2R~12AscBUfvNAP҄fr.Q]i0P ZF4gSBc:Ad,p?":BBm*,.{@? 6#$g(RF">kGfRBS4`fSkV8ft0< ~Mk 8ءj$6 `1J-X2oHs!_1LߟLУ.gbsc P"H`D/0Hx{@h[2-__}jSAvjXx E(WP*eSd zb8J_\*Nuz( EgF(tB`pm#|!yՔ?RO=nh|ktlsb9:fbiR^FmHKg"MgdOsgtgYP=(f~nxRjtEn>`T}: gp jU#&2_y(r;n fzef{6$t`J}E[jPE\c Pf!> ~"đp 0p &Vd0`#i"%!G,RGg।3SGSFFgCpE`QYf`X(OJgfa(7QfPa0E! b Ee0egv㙨.Akƃ`LQtD z0`dp M``Eg0Pt%ZFRE`ܾEf/Ua?V?fn2RF`&g0 pa:kQ/Hy?AcfC/^ڏA,kI2<L8dr!jIHFLp&jrkeng41WR54RSf0C/AR5ƙgAe{ Uc% 202p0k/` Fb66ٵl2g]a eOΉLP(^r"p N^G TUx;QWǭP&8rfBj?E}SA\JAg*^ڃfd0^DsІ'!Z=l?*k(B% $]SSkQpGڢEh Hx;gB<Lujِkmpfp^k:g`B}j??$O t.oH"f B rHS/7aDNAX>f? ~Ѩ+p%`k`LB`$#E$G֎.az==8MN`L͉H!ZxbU// ˷<-Z5S̖er 2":"_X-HG e `EBguB<ٜ gZe -|#lpBp:>aja+:J.g"HB6g o\f`A*{>fS !.6 E[V 60`i]ןDj Yp댙W0F,H-EN$f.-@"_$HQ`6CXg">Jb>}fg"AO:Np\Br6}G06#f#)}hBk" C gTPv6" =gRCC(D #8`v9`v&wGkha9UJhr'rj0\-`6Ga<0<;<]F<Ipa(?'ϼ`8 0RLf|0G,H,FkCA<*Jo.F(HS&I>\S?+zMXJ̥k g_tf &Զ~g `af`apB`>tR`R` 2p$`JhmNyJftRRRRRR P? τH~8_z~#P&f de $`[戳xx A[ge .A|8``\[DkjbElkeWEnK_vx-Kzx$-r&$jy^"H!^!!Zh! #}ɧ_Sj8g:>k#&AcN(bbrk ¤<aX+µSAI3&f}z&nL}E$94g6ACbd" )eѱef2kLf,#)T`0Ƒha!>狗A51 ttFtFtFtFt!B7FtFtFtFtFa B( aкFE=0~`r`r`r`r `r`r`rFr`zQ|`z ` zn`z4"$<%9J`HQ0 =_Jz"'-AB@-I`oH '_ՀQms "?vsxaro&Z SN"N#!HaC jjuw"۫l[" l]|l-V܁n! .D^K0,;&۱ʨ!*J~qȵao!\ujYcrIe!fKD.d&Nala6Xv[2rVbD^2ؒ[nknVag[ܖok jjthsTZn;'SKԁh ESEW\SVRU5T,Kd2Sxdp̯8z>O2d*,RȗimR*Qov3V5xPP]~OWqhRBM8s/C;ZFirgfJIL.Mx}(hl޳Zd"LKV!av=}Xm-[{f9%bQӻ`,%>-ދyf.%߇u-%W+:g`wlխV6jVnm{x ^CFz4U+-d^+oS,H(Hav̄IREal$KOHw&$K)\TSfaR.C{,L\EUznJDdJv} ^)gb<Ԫw[݇nֱۥgkba3p̈`2ap`(aJy2gp`p`-`*ag&Yk`UAG3|62;c MnD;n ]ϻJJU\e-aX AU5!.b.JaKaF.P(I,I&N|D-d`rd*<|8#z 1pBDC@Z$Q9rԀ/0d(6g̛a*dAv!a(Ѡҩ %-n`,%NuFj;^MkaAg"CԀAjtaTM1Ha>BqjD`rptad`pt?aC?!ML2d  KZE _^TcZ9(ϷseZБJz `jSX]6vb#xlDSBW6zCCgAVV@+ulHB`]VK[36}x&Po>G8t?XFARBƃSC=ѵƅ*3}9pHC`ǚETt Ag2v6J[kR(yH+MP4Ks0`0"NeoBvDQdvxb/dE7t6SA"Ql 3glQv\Hߞzٵl>*yan%m`F9ZaF9֋f y#+sGgFvu )v&>]m+Rk{0vVݫLyaG`\ GԚ/MHUnMX> 4WlXX|["z  Hp\>Ds,?;f:77|m4hO]En(MmXL|a4P8yIU.RJEasL :u 6| z ؅TeFgPEVE`E|aPVSEk|F& |j&&־<.a:#"ζ " s%"`^ >!PGBĥZ!B Z AM5f$VRt *I(Ir)\,H7&5HU*::U) gdE`$7A@^gL|aVg`YJ!| aDEI*:B4fLZP&M`d_HRa$_NZũ}S``````}<>*Ot) C}E}|0zA CD5Q7$Hf` (Jbzbk>jgn%[2e`6)GI 4:aVDd8dAerNBRB`aPdx$lTf:DVza6t`<ўga(Sae>t<9$SFTC)ukY[$sSVOj>g"B*`۴a<54 ||FfaepapaAGg`a6RB0<˂U"vx`DgЁW`oN"?/ /V$<}SfWHӢ=hj:8>(H,IEl *N(<&N~Q>$~d $RESns`2,H$1 (zA7$TAp7AAnIXژn1߂r=oS`3"%Pa^H$Ixrxb+TX3prH53RA%<ܴ6/b'n'fr&i#90*,.TD+"C`!|*X (",-Ә=a>('2"&(v/=@' 9 (N0<;x|͏S<(zhFxo$b)Q΂+P~|dTAA1GmҐG8+k= aE$JeJC"fFlL`Sj8* BIZgYRZ81"&213"ϴGd13ΠfH|<m-t)4DB 8jTFkg, `&9F |,`g]*@$%-QT` F*D?y|0;JA2 Q0zN`/?/ÁWs%=+16KhorHB bP0fTPfP*HPR*.I\Eg80fK:zC=$I&I,O#JG$SNpOQLH|~a Gyx^L`$t0.`p!Et6D1kdBBBBUfE$4a"AQ$agUBeVBd`T:EOv`Ngv}`8Hv^fDC&ڥ|Ie;\5p(c7|b/V0odyhAxVSysIji0eY7ohOffMj*[ZU=5nh[BKDek@pQm]BV?fm4*Zf=MndVu{1#v3lSa[]E!NV5KoId|W|EV0-tmVsX*lmY?ӭզuc)>%-;f1|Ֆ RY>(U N׃;YetNؖ$y$S$nkjƛM0mƩ'(BUF)8o[AEOGRKR8-eHWhDs.sI.kڋ^@m2Ge8!c!,! rkY!nT"LWkXv5encWJpIObug5g'Zw1@9jOMs"uFw+okl|MD!4S2-XmWS0v1iP[DP!W++5Mo Tw3TZ2-4 e)Fv%Es)Du! [RC>jgm|allsuBH,IY"!mIgFi1ڟ".Zm1c23A^k 5 ґEVVLZHCMV2)JAMgWk\0(I)A8Ta!E'/v>K1rs%cԧ&QY9e161V Ppe#}P=v.9$eJPg!dFT|w9-T%ac@$o)Ng w㚊an|s76STVIYPMJT_QZL$0VqG$|HYUGbmbWԅS!I'm|frgaIS\@ #LeI$u7@)* j2J*m no tC|%-M(Oh.XZ{mxFt%adexiRJvg O"I(hr>~R*jT{C-FuetJExtbP(ab)spS@Ρ*ZqCane%wL=bct9XѩT+n,Ar7*?@(|>QuSit-줤wsav&CK|PregޢyepQUktSP}Wn!pRasaO[Xva:L}+esF@;*JXSlD*88`F~> $L9SZ2^:A> *j>\>$h>RUULF(8LU"D+'/8M .*Ȟ&$,:J xx.ӒHp^~ f(4(Ņ$-@E| ׋ "+*-l8: dc.b " 1) Keypress Story",0 gl9: dc.b " 2) Answering Machines",0 gl10: dc.b " 3) Davids Truth About Wo z$~G0XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYet Another Useful MUG U.K Utility ! Multi-Depacker v1.5 Main Menu What Can I Depack ??Depack And Save FileFree Memory Etc.A Few Hellos !! Back To GEMTHIS PROGRAM IS PUBLIC DOMAIN, BUT I RETAIN THECOPYRIGHT ON MY OWN CODE, AND THE AUTHORS OF THEVARIOUS DEPACK SOURCES RETAIN THEIR COPYRIGHT. COPY ME - I WANT TO TRAVEL THE WORLD !!(c)1992, MUG U.K Multi-Depacker v1.5 by MUG U.K Depack File MenuPacker Used: File Type: File Length: Packed: Unpacked: Depack FileMain MenuSplit FileJust In Case You Wanted To Know ..Free Memory: TOS Version: OKMULTI-DEPACKER v1.5 (c)1992, MUG U.K !!THIS PROGRAM WILL DEPACK FILES PACKED BY:ATOMIC PACKER v3.1/v3.3/v3.5AUTOMATION PACKER v2.31/2.4/2.51/5.01ICE PACKER v1.13/v2.11/v2.2/v2.31/2.34/2.40FIRE PACKER v1.01/v2.01JAM PACKER v2.4/v3.0 (LZH/V2)JAM PACKER v4.0 (LZH/LZW/V2/Ice)POMPEY PIRATES PACKER v1.9aSPEED PACKER v2.0 Wait until v2.0 for more !! RELEASED ON: 14th June 1992MUTLI-DEPACKER v1.5 - (c)1992, MUG U.K MUG U.K SENDS GREETINGS TO .... REAL FRIENDS (AND BUG-TESTERS !!) BOB CLOWES, STEVE DELANEY & GRAHAM BEVINS THE FOLLOWING PD LIBRARIES: FLOPPYSHOP, L.A.P.D., PROPECHY PD, THE SOURCE PDL & 16/32 PDL POSTAL FRIENDS/CONTACTS/BUG-TESTERS !! MAT (UNT), SPEED & JJF (THE SOURCE), MSD (POV), BONUS (DBA), MUNGOTGA (NPG or TSL ?), EDDIE (THB), LEON (HP SOURCE), SAMMY JOE (DF)RICHARD KARSMAKERS (ST NEWS), MSL AND ANYONE ELSE I KNOW IN THIS WORLDGREETINGS ALSO TO ALL (DECENT) GFA BASIC (DEMO AND UTILITY) CODERS, STOS CODERS AND, OF COURSE, 68000 CODERS WORLDWIDE !!HURRY UP READING - I WANNA DEPACK SOME FILES !!KEITH FRISBY (UPLOAD THIS EVERYWHERE), MARK MATTS, JON GARRY, GRAZEY<8?|0\8qϜp8`8qsǞ=8?p8?t.88ppvn88ppvn888ps88ps8p8?q888  qB 0NO1P/*! %&'23 4?@ ANO P[\ ]efgrs t~  #    78)9cd*e&,56!7STUgh)!$CD*Ecde>)CWXBYGE 6!QR0SEC)  z  $&'K% C&  B    $  $  #   " B/ >  Z C-  v                :   V  r  ! 5 #'  "       !   B$  p" 6 R n             i  2 N C7 j      .  2 . 1 J 6 f3 (  #  3N.  #  3PxLONGB.AMIMI@POLYBRAS.AMI@COMEON.SPL@CROWD2.AMI@`WIND.SPLPL @ ACID_HIC.SPL@SPOOKBEL.SPL.@BREAKCK.130@POWERBAS.AMI@HISSNAREL@AH1.AMIL@@AH2.AMIL?@SYNTHTOM.SPL @!  . C t.. C tRTWB Dt OTSTARSS ft !SAM_PACK jt BOOTYS t 6READ_ME S t . E t.. E tVEC_BALL Gt 3DRASTERS at _5. H t.. H t32X16 DATIt `FURY MUSMt PVEC1 DATPt VEC_BALLS St  INIT S [t l ||????????????????????~????????????????~~????????????~??????????????????????????????~???~?|??~?????????????~???~???~????~~???????ּ@@ @@ @@ @@ @@@@@@@\@@\@@`Z`,``HPA  _NuHPA _NuHA a\"z@@M:hfXM,"hM\,"hMT,"h M@,"hM@,"hM:,"h,MPM.<NuAJg8S(j2PRh0(| f BA P`A0A!@6@lMKJ-g,J-f$Pp@"@&@*:f LHNuS]f ;zxAaPAaAaKAa~?_@A"Aah?_@ A&AaR?_@A*0-g>?Aa4"h fBm>CGG|?```G]:f LH@NuS(,jh-,"h(<f$hJfSh2j1z21E1E:1Ep$hrjj*B|f B$`<f B;BA&zB6sX!K(h `t<f Q-Y,`f<fQ-Y,!I(Nu@AAgY !I(!E.Jkn(A($zA4r1E RZrZ|@RZZ!J@g( $zA4r!J1EEENuAB.,R AZ0pAxCE !IBh!IBh QQQQ#||QQQQQQQ Q!CCCZ"&z!K1| 1z2rA(z8t!L(Bh,|&[[Q%Q$A|fB$B.A6Q@A0BhNu4:2:JBgA0K|BA"Qz@$zX@4rd1E RZ@Z|@RZZ!J$z@4r*!J1EQQB.Q$Q RA;ANu~G!J(gS(`"hrAkA2;N*:JXfp1@"h`i`1G |Rh`YYVh`G&Y!Th`|&Rh`||&Rh`n<I"z0!I1G`TYTh`26|p Y < Th`*| Y Th`@RhJ(gS(`jS(fdh"h rAkBA2;NNur[A1A "h`i#`Th Q`@#Rh (k((@Cr@201("(&fVC`.<f"VCh!(j D!` (!`VCJ(!g(!FC(J(gS(`\(k`(Jjf&f(dr`(eA dAeAdAFF(gr( HHA$(.ԁ!B.HBB(#($(%jrNu " &* @ M / gaw GGp0S#}Y8{eQ>, ~wpjd^YTOKGC?;852/,*'%#!COSO@"TFMX ?@\bhntz*$ 旓束䕝  (>Shv~                   :j'08?D`                            @"@@@@@@@@@@@@ $.0 30 . 0 0 $<<<<<<<<<       @      @@@@     @@@@ @. .+- )+$0+.+0+.+.  .+-+.+-+)+)')'$'" 0+.+0+.+0+2+3+5+6 0+.+0+2+3+5+3+2+ $.0 30 . 0 3 .$ $ $                               ? l5,5|5,5@l@l5@,5l5@l ,5|5,5l5@,5l5|5,5,5@l@l5@l5@l ,5|5,5l5@,5l5|5,5,5@l@l5@l5@l ,5|5,5l5@,5l5,5|5,5@l@l5@,5l5@l |5,5,5l5@l5,5|5,5@l@l5@,5l5@l ,5|5,5l5@,5l5|5,5:,5@l@``?@?`tu89xa~~a~0>?@? l5@,5l5,5|5,5@l@l5@,5l5@l |5,5,5l5@l5,5|5,5@l@l5@,5l5@l ,5|5,5l5@,5l5|5,5,5@l@l5@l5@l ,5|5,5l5@,5l5|5,5,5@l@l5@l5@l ,5|5,5l5@,5l5,5|5,5@l@l5@,5l5@l |5,5,5l5@l5,5|5,5@l@l5@,5l5@l ,5|5,5l5@,5l5@|5@,5@:,5@l@*************************************************************************** * VECTORBALLS SCREEN FOR STATE OF THE ART * * POWERMAN 26/6/91 * * (C) THE WILD BOYS, 1991 * * NO PART OF THIS CODE MAY BE USED IN ANY COMMERCIAL OR NON COMMERCIAL * * PRODCTION WITHOUT THE PERMISSION OF POWERMAN OF THE WILD BOYS!!!!! * * DONT LET US CATCH YOU USING OUR CODE IN YOUR INTROS! USE IT TO LEARN, * * THEN GO WRITE YOUR OWN ROUTS! THE CODE ISN'T OPTIMISED, ESPECIALLY THE * * CRAP SPRITE ROUT BUT HEY, YOU EXPECT ME TO GIVE AWAY ALL MY SECRETS.... * * THE 3D IS ALSO NOT OPTIMISED, I'M GONNA GET IT RUNNING EVEN FASTER! * * * * IF USING HALF MEG, REMOVE THE +$80000 ON THE SCREEN ADDRESSES BELOW AND * * ASSEMBLE TO DISK. ASSEMBLE TO MEMORY AT YOUR OWN RISK! * * * * All the above comments were written when I actually coded this screen, * * which is about 11 months ago! Thats why the code isn't very fast, if * * anyone starts complaining about the rubbish sort rout or any other part * * of this code, remember it was coded almost a year ago, with no help or * * ripped code........ * *************************************************************************** SCREEN1 EQU $80000-((224*160)*2)+$80000 SCREEN2 EQU $80000-((224*160)*1)+$80000 TIME EQU 50*10 OBJECTS EQU 13 Number of defined objects (why not make some more yourself?) MOVE.L #SCREEN1,SCR1 MOVE.L #SCREEN2,SCR2 JSR INIT Call initialisation rout MOVE.W #$2300,SR MOVE.L #SCREEN1,PHYSIC PHYSIC=screen currently display MOVE.L #SCREEN2,LOGIC LOGIC=screen currently being updated (not visable) MOVE.L #ERASEIT2,ERASE_IT ERASEIT2 and ERASEIT1 contain screen address offsets for the balls on both screens MOVEQ.L #1,D0 JSR MUSIC MOVE.L #VBL3,$70.W JSR MAKE_OBJECT_TAB Create table containing addresses of object definitions JSR MAKE_Y_TAB Make table of screen Y offsets (0,160,320 etc) JSR SET_BALLS Shift balls, make masks etc JSR MAKE_STARS Initialise starfield rout JSR A3_SETSCROLL Initialise scrolltext rout MOVE.L #VBL2,$70.W Main VBL rout JSR MAIN Main loop JMP END Erm, I've forgot what this does..... INCLUDE VEC_BALL\INIT.S MUSIC INCBIN VEC_BALL\FURY.MUS VBL3 MOVEM.L D0-A6,-(A7) JSR MUSIC+8 MOVEM.L (A7)+,D0-A6 RTE VBL2 CLR.B $FFFFFA1B.W Stop timer b MOVE.B #199,$FFFFFA21.W Occur on last scanline to remove lower border MOVE.B #8,$FFFFFA1B.W Start timer b MOVE.L #TB1,$120.W Address of timer b interrupt rout MOVEM.L D0-A6,-(A7) LEA $FFFF8240.W,A0 LEA COLS,A1 REPT 8 MOVE.L (A1)+,(A0)+ ENDR JSR MUSIC+8 MOVEM.L (A7)+,D0-A6 ST VBLFLAG RTE TB1 CLR.B $FFFFFA1B.W MOVEM.L D0/A0,-(A7) MOVE.W #$FA21,A0 MOVE.B #18,(A0) This number (18) can be anything as long as its more than 0! MOVE.B #8,$FFFFFA1B.W MOVE.B (A0),D0 MOVE.L #TB2,$120.W .L1 CMP.B (A0),D0 Wait until current scanline is drawn BEQ .L1 CLR.B $FFFF820A.W 60HZ MOVEQ.W #3-1,D0 Wait a bit .L2 NOP DBF D0,.L2 MOVE.B #2,$FFFF820A.W 50HZ to remove lower border MOVE.W PAL1,$FFFF8242.W CLR.B $FFFFFA1B.W MOVE.B #2,$FFFFFA21.W MOVE.B #8,$FFFFFA1B.W MOVEM.L (A7)+,D0/A0 BCLR #0,$FFFFFA0F.W RTE TB2 MOVE.W PAL1+2,$FFFF8242.W These timer b routs change the colour of the text MOVE.L #TB3,$120.W BCLR #0,$FFFFFA0F.W RTE TB3 MOVE.W PAL1+4,$FFFF8242.W MOVE.L #TB4,$120.W BCLR #0,$FFFFFA0F.W RTE TB4 MOVE.W PAL1+6,$FFFF8242.W MOVE.L #TB5,$120.W BCLR #0,$FFFFFA0F.W RTE TB5 MOVE.W PAL1+8,$FFFF8242.W MOVE.L #TB6,$120.W BCLR #0,$FFFFFA0F.W RTE TB6 MOVE.W PAL1+10,$FFFF8242.W MOVE.L #TB7,$120.W BCLR #0,$FFFFFA0F.W RTE TB7 MOVE.W PAL1+12,$FFFF8242.W MOVE.L #TB8,$120.W BCLR #0,$FFFFFA0F.W RTE TB8 MOVE.W PAL1+14,$FFFF8242.W MOVE.L #TB9,$120.W BCLR #0,$FFFFFA0F.W RTE TB9 MOVE.W PAL1+16,$FFFF8242.W MOVE.L #TB10,$120.W BCLR #0,$FFFFFA0F.W RTE ;scrolltext palette PAL1 DC.W $770,$760,$750,$740,$730,$720,$710,$700,$600 TB10 CLR.B $FFFFFA1B.W This rout clears all colours below the scrolltext MOVEM.L D0/A0,-(A7) LEA $FFFF8240.W,A0 MOVEQ.L #0,D0 REPT 8 MOVE.L D0,(A0)+ ENDR MOVEM.L (A7)+,D0/A0 BCLR #0,$FFFFFA0F.W RTE TIMER DS.W 1 XADD DS.W 1 YADD DS.W 1 ZADD DS.W 1 * Bring object onto the screen by using offsets on the X,Y,Z axis. * Different combinations allow you to bring the object on from 8 different * directions FIND_DIR CLR.L XADD Longword clears YADD aswell CLR.W ZADD CMPI.W #0,ENTER 0=appear from left BEQ .LEFT CMPI.W #1,ENTER 1=right etc... BEQ .RIGHT CMPI.W #2,ENTER BEQ .TOP .BOTTOM SUB.W #160,YOFFSET Move object down 160 pixels MOVE.W #8,YADD Y increment=8 to bring object upwards RTS .TOP ADD.W #160,YOFFSET Same as bottom, but opposite values MOVE.W #-8,YADD RTS .LEFT SUB.W #160,XOFFSET Move object left by 160 MOVE.W #8,XADD X increment=8 RTS .RIGHT ADD.W #160,XOFFSET Same as above but opposite MOVE.W #-8,XADD RTS * Same as previous rout, but sets up variables for moving the object * off the screen. Same principle as before, but opposite values * Note that ZADD has not been used, you can try this out for yourself * to make the object move into the distance and come towards you..... FIND_DIR2 CLR.L XADD CLR.W ZADD CMPI.W #0,LEAVE BEQ .LEFT CMPI.W #1,LEAVE BEQ .RIGHT CMPI.W #2,LEAVE BEQ .TOP .BOTTOM MOVE.W #-8,YADD -8=move downwards RTS .TOP MOVE.W #8,YADD RTS .LEFT MOVE.W #-8,XADD -8=move left RTS .RIGHT MOVE.W #8,XADD RTS * This rout puts the next object onto the screen ENTER_OBJECT BSR FIND_DIR MOVE_THAT_BODY MOVEQ.W #(160/8)-1,D0 160 offset, 8 step increment (see FIND_DIR) .L1 MOVE.W D0,-(A7) JSR ROTATE_POINTS JSR SORT JSR PERSPECT JSR VECTOR_DRAW16 Display vectorballs JSR DO_STARS Display starfield JSR SWAP Swap screens MOVEM.W XANG,D0-D2 D0-D2=rotation angles ADD.W D0,XROT Increment x angle ADD.W D1,YROT Increment y angle ADD.W D2,ZROT Increment z angle MOVEM.W XADD,D0-D2 D0-D2=x,y,z increments (to move object onto screen) ADD.W D0,XOFFSET Increment X offset ADD.W D1,YOFFSET Same for y ADD.W D2,ZOFFSET Same for z (always 0, but I was gonna use Z increments) MOVE.W (A7)+,D0 DBF D0,.L1 RTS LEAVE_OBJECT BSR FIND_DIR2 Lets get the hell out of here! In other words, remove object from screen BRA MOVE_THAT_BODY I love TECHNOTRONIC DO_OBJECT MOVE.W #TIME,TIMER TIME=time to display object (50=1 second) .L1 JSR ROTATE_POINTS JSR SORT JSR PERSPECT JSR VECTOR_DRAW16 Display sprites JSR DO_STARS JSR SWAP MOVEM.W XANG,D0-D2 ADD.W D0,XROT } ADD.W D1,YROT }rotation angles ADD.W D2,ZROT } SUBQ.W #1,TIMER TST.W TIMER BLE .L2 CMPI.B #57,$FFFFFC02.W BNE .L1 ADDQ.L #4,A7 MOVE.L #END,(A7) .L2 RTS MAIN MOVE.L OBJECT_POS,A0 TST.L (A0) BPL .L1 -1=end of list LEA OBJECT_LIST,A0 .L1 MOVE.L (A0)+,A1 A1=address of next object data MOVE.L A0,OBJECT_POS Save position in object table JSR MAKE_NEXT_WAVE Make wave (set colours, rotation angles etc but no pre-calculation!) TST.W TYPE TYPE=type of ball (big or small). This screen didn't end up using this feature, add it yourself! BEQ .L2 MOVE.W #160-16,XCENT Never this (it would have been used for 32x32 balls which I didn't use) MOVE.W #100-16,YCENT BRA .L3 .L2 MOVE.W #160-8,XCENT Always this, XCENT and YCENT=screen x,y centre (0,0=top left) MOVE.W #100-8,YCENT .L3 BSR ENTER_OBJECT Put object on screen BSR DO_OBJECT Display it for a while BSR LEAVE_OBJECT Get it off (oooer2r!) BRA MAIN Next object please...... SWAP MOVE.L LOGIC,A4 LEA 160*201(A4),A4 JSR A3_SCROLL Display scrolltext MOVEM.L PHYSIC,D0-D1 MOVE.L D1,D2 LSR.W #8,D2 MOVE.L D2,$FFFF8200.W Change screen address CLR.B VBLFLAG .L1 TST.B VBLFLAG BEQ .L1 Wait for VBL EXG D0,D1 Swap screen addresses MOVEM.L D0-D1,PHYSIC Save screen addresses LEA ERASE_IT,A0 Get correct address of ball position data (so the balls are erased on the correct screen!) CMPI.L #ERASEIT1,(A0) BEQ .L2 MOVE.L #ERASEIT1,(A0) RTS .L2 MOVE.L #ERASEIT2,(A0) RTS PHYSIC DS.L 1 LOGIC DS.L 1 ************************************************************************** * STARFIELD ROUTINE * * CALL MAKE_STARS TO INITIALISE, THEN CALL DO_STARS TO DISPLAY STARS * * You best not use dis code even though its shit...... * ************************************************************************** DO_STARS MOVE.L LOGIC,A0 BSR ERASE_STARS LEA STARS,A1 MOVE.W #(180/4)-1,D0 180 stars, 4 taken at a time MOVEQ.W #0,D7 .L1 MOVEM.L (A1)+,A2-A5 4 stars CMP.L #LINE_DATA_END,A2 End of star data? BLT .L3 MOVE.L #LINE_DATA,-16(A1) LEA LINE_DATA,A2 .L3 MOVEM.W (A2),D1-D2 D1=screen offset, D2=value to OR TST.W D1 BMI .L4 negative if off-screen OR.W D2,(A0,D1.W) MOVE.W D1,(A6)+ BRA .L5 .L4 MOVE.W D7,(A6)+ * do second star .L5 CMP.L #LINE_DATA_END,A3 BLT .L33 MOVE.L #LINE_DATA,-12(A1) LEA LINE_DATA,A3 .L33 MOVEM.W (A3),D1-D2 TST.W D1 BMI .L44 OR.W D2,(A0,D1.W) MOVE.W D1,(A6)+ BRA .L55 .L44 MOVE.W D7,(A6)+ * third .L55 CMP.L #LINE_DATA_END,A4 BLT .L333 MOVE.L #LINE_DATA,-8(A1) LEA LINE_DATA,A4 .L333 MOVEM.W (A4),D1-D2 TST.W D1 BMI .L444 OR.W D2,(A0,D1.W) MOVE.W D1,(A6)+ BRA .L555 .L444 MOVE.W D7,(A6)+ * and fourth before reading more data. * Not much processor time saved in using 4 routs, but originally I had * to use 4 routs for irrelevant reasons.......I changed my plans and * couldn't be bothered to use 1 rout instead of 4......... .L555 CMP.L #LINE_DATA_END,A5 BLT .L3333 MOVE.L #LINE_DATA,-4(A1) LEA LINE_DATA,A5 .L3333 MOVEM.W (A5),D1-D2 TST.W D1 BMI .L4444 OR.W D2,(A0,D1.W) MOVE.W D1,(A6)+ BRA .L5555 .L4444 MOVE.W D7,(A6)+ .L5555 DBF D0,.L1 * Dis next bit moves the stars, 4,8,12,16 are the 4 different speeds * Note that the speed MUST be a multiple of 4!!! Change the speeds if * you want..... LEA STARS,A0 OFFSET SET 0 REPT 15 MOVEM.L OFFSET(A0),D0-D7/A1-A4 ADDQ.L #4,D0 ADDQ.L #8,D1 ADD.L #12,D2 ADD.L #16,D3 ADDQ.L #4,D4 ADDQ.L #8,D5 ADD.L #12,D6 ADD.L #16,D7 ADDQ.L #4,A1 ADDQ.L #8,A2 LEA 12(A3),A3 LEA 16(A4),A4 MOVEM.L D0-D7/A1-A4,OFFSET(A0) OFFSET SET OFFSET+(12*4) ENDR RTS ERASE_STARS CMPA.L #SCREEN1,A0 Which STAR_ERASE shall I use? BEQ .L1 LEA STAR_ERASE2,A1 For SCREEN2 BRA .L2 .L1 LEA STAR_ERASE1,A1 For SCREEN1 .L2 MOVEQ.W #0,D0 MOVE.L A1,A6 ADDQ.L #6,A0 REPT 25 MOVEM.W (A1)+,D1-D7 MOVE.W D0,(A0,D1.W) These MOVE.W's delete the stars MOVE.W D0,(A0,D2.W) MOVE.W D0,(A0,D3.W) MOVE.W D0,(A0,D4.W) MOVE.W D0,(A0,D5.W) MOVE.W D0,(A0,D6.W) MOVE.W D0,(A0,D7.W) ENDR MOVEM.W (A1)+,D1-D5 Delete last 5 stars MOVE.W D0,(A0,D1.W) MOVE.W D0,(A0,D2.W) MOVE.W D0,(A0,D3.W) MOVE.W D0,(A0,D4.W) MOVE.W D0,(A0,D5.W) RTS * This routine makes the data for the stars. Basically, a line going from * the centre of the screen to the top is created in X,Y coords (MAKE_LINE). * All 184 points in the line are then stored in memory, as a screen offset * (a word value) followed by another word - the value to OR (1,2,4,8 etc) * The line (all 184 points) are rotated about the Z axis and the points * stored again. This happens 180 times so the line is rotated right around * to its starting point. If you dont understand, imagine a helicopter * rotor spinning, then imagine you are looking down on the helicopter.... * Note that 180 rotations are used because the z increment is 2 * (360/2=180!) MAKE_STARS MOVE.W #160,XCENT Screen centre MOVE.W #100,YCENT JSR MAKE_LINE Create line BSR MAKE_LINE_DATA Rotate line and store points BSR SET_STARS Set starting points in star data for the 180 stars BSR SET_ERASE Clear STAR_ERASE1 and 2 RTS SET_ERASE LEA STAR_ERASE1,A0 MOVE.W #180-1,D0 MOVEQ.L #0,D1 .L1 MOVE.L D1,(A0)+ DBF D0,.L1 RTS STAR_ERASE1 DS.W 180 180 stars STAR_ERASE2 DS.W 180 SET_STARS LEA STARS,A0 LEA LINE_DATA,A1 MOVE.W #180-1,D0 .L1 CMP.L #LINE_DATA_END,A1 BLT .L2 SUB.L #LINE_DATA_END,A1 ADD.L #LINE_DATA,A1 BRA .L1 .L2 MOVE.L A1,(A0)+ ADDA.L #(184*4)+(4*16),A1 DBF D0,.L1 RTS STARS DS.L 180 180 STARS MAKE_LINE_DATA MOVE.W #0,XOFFSET MOVE.W #0,YOFFSET MOVE.W #0,ZOFFSET MOVE.W #0,XROT MOVE.W #0,YROT MOVE.W #0,ZROT LEA LINE_DATA,A0 MOVE.W #180-1,D0 .L1 MOVEM.L A0/D0,-(A7) JSR ROTATE_POINTS JSR PERSPECT ADDQ.W #2,ZROT Rotate round z axis MOVEM.L (A7)+,A0/D0 BSR STORE_DATA DBF D0,.L1 RTS STORE_DATA MOVE.W #184-1,D1 184 points in line LEA SCREEN,A1 A1=place to store screen offset and OR word .L1 MOVEM.W (A1)+,D2-D3 TST.W D2 Clipping BMI .L2 TST.W D3 BMI .L2 CMPI.W #319,D2 BGT .L2 CMPI.W #199,D3 BGT .L2 MULU #160,D3 y*160 MOVE.W D2,D4 AND.W #$FFF0,D2 Make multiple of 16 LSR.W #1,D2 Divide by 2 for screen offset (x offset) ADD.W D2,D3 Add y offset MOVE.W D3,(A0)+ Store it NOT.W D4 AND.W #15,D4 MOVEQ.W #0,D5 BSET D4,D5 d5=word to OR MOVE.W D5,(A0)+ Store it .L3 DBF D1,.L1 RTS .L2 MOVE.L #-1,(A0)+ Point off screen so store -1 (so that point aint drawn) BRA .L3 LINE_DATA DS.L 184*180 .W OFFSET, .W OR LINE_DATA_END MAKE_LINE MOVE.W #184-1,NUM_POINTS create a line with 184 points (184 makes sure line reaches edge of screen) LEA WORLD,A0 A0=address to store points (world coordinate system) MOVE.W #184-1,D0 MOVEQ.W #0,D1 Y .L1 MOVE.W #0,(A0)+ X is 0 MOVE.W D1,(A0)+ MOVE.W #0,(A0)+ Z is 0 ADD.W #1,D1 DBF D0,.L1 RTS * Create a table of y screen offsets (0,160,320 etc) MAKE_Y_TAB LEA Y_TAB,A0 MOVE.W #200-1,D0 MOVE.W #0,D1 .L1 MOVE.W D1,(A0)+ ADD.W #160,D1 DBF D0,.L1 RTS OBJECT_LIST DS.L OBJECTS Contains addresses of all objects DC.L -1 OBJECT_POS DS.L 1 * This creates the object table MAKE_OBJECT_TAB LEA OBJECT_LIST,A0 LEA OBJECT1,A1 MOVE.W #OBJECTS-1,D0 .L1 MOVE.L A1,(A0)+ MOVE.W (A1)+,D1 MULU #6,D1 Each ball=6 bytes in coordinate data (x,y,z) LEA (A1,D1.W),A1 LEA 28(A1),A1 A1=address of next object (28 bytes used for colours, rotation angles etc) DBF D0,.L1 MOVE.L #OBJECT_LIST,OBJECT_POS RTS TYPE DS.W 1 Not used, was going to be ball type ENTER DS.W 1 Direction to bring object onto screen LEAVE DS.W 1 Direction to get rid of object COLS DC.W 0 16 colour palette DS.W 5 5 ball cols DC.W 0,0 DC.W $666 STAR COLOUR COLS2 DS.W 5 5 ball cols (same as before, used to make balls appear infront of stars) DC.W 0,0 MAKE_NEXT_WAVE ;A1=OBJECT1,OBJECT2 etc, address of next object data LEA WORLD,A0 MOVE.W (A1)+,D0 D0=NUMBER OF POINTS SUBQ.W #1,D0 MOVE.W D0,D1 MOVE.W D1,NUM_POINTS Number of points in next wave .COPY_X MOVE.W (A1)+,(A0) Copy x coords ADDQ.L #6,A0 6 bytes used for each point (x,y,z) DBF D0,.COPY_X LEA WORLD+2,A0 Copy y coords MOVE.W D1,D0 .COPY_Y MOVE.W (A1)+,(A0) ADDQ.L #6,A0 DBF D0,.COPY_Y LEA WORLD+4,A0 Copy z coords MOVE.W D1,D0 .COPY_Z MOVE.W (A1)+,(A0) ADDQ.L #6,A0 DBF D0,.COPY_Z MOVE.W (A1)+,TYPE Ball type (not used, as you probably know by now!) MOVE.W (A1)+,XANG X rotation angle increments MOVE.W (A1)+,YANG y " " MOVE.W (A1)+,ZANG z " " MOVE.W (A1)+,ENTER Direction for object to enter MOVE.W (A1)+,LEAVE Direction for object to leave MOVE.W (A1)+,XOFFSET Offset on x axis MOVE.W (A1)+,YOFFSET " y " MOVE.W (A1)+,ZOFFSET " z " MOVEM.W (A1)+,D1-D5 5 ball colours MOVEM.W D1-D5,COLS+2 MOVEM.W D1-D5,COLS2 MOVEQ.L #0,D0 MOVE.L D0,XROT Clear rotation angles (rotation angle increments are added to this to rotate object) MOVE.W D0,ZROT RTS XANG DS.W 1 X ANGLE YANG DS.W 1 Y " ZANG DS.W 1 Z " ********************************** 3D ROUTINES **************************** * CALL ROTATE_POINTS, SORT (IF VECTORBALLS), PERSPECT * * SCREEN = SCREEN X,Y COORDS (0,0=TOP LEFT) * *************************************************************************** POINTS EQU 184 Maximum number of points DIST DC.W 256 Perspective WORLD DS.W POINTS*3 X,Y,Z coords for each point VIEW DS.W POINTS*4 X,Y,Z coords for each rotated point ; Extra word for vectorball col etc SCREEN DS.W POINTS*2 Screen X,Y coords NUM_POINTS DS.W 1 Number of points in current object MATRIX DS.W 9 XROT DS.W 1 X rotation angle YROT DS.W 1 Y rotation angle ZROT DS.W 1 Z rotation angle XOFFSET DS.W 1 Offset on X axis YOFFSET DS.W 1 Offset on Y axis ZOFFSET DS.W 1 Offset on Z axis SINCOS DS.W 6 Space for x,y,z sine/cosine ROTATE_POINTS LEA SINTAB,A0 LEA 90*2(A0),A2 COSINE=SINE+90 DEGREES LEA SINCOS,A1 MOVEM.W XROT,D0-D2 D0=X ANGLE,D1=Y,D2=Z MOVE.W #360,D6 MOVE.W #-360,D7 CMP.W D7,D0 Make sure angles are in range BGT .L2 ADD.W D6,D0 BRA .L3 .L2 CMP.W D6,D0 BLT .L3 SUB.W D6,D0 .L3 CMP.W D7,D1 BGT .L4 ADD.W D6,D1 BRA .L5 .L4 CMP.W D6,D1 BLT .L5 SUB.W D6,D1 .L5 CMP.W D7,D2 BGT .L6 ADD.W D6,D2 BRA .L7 .L6 CMP.W D6,D2 BLT .L7 SUB.W D6,D2 .L7 MOVEM.W D0-D2,XROT TST.W D0 Get correct + value if - BPL .L8 ADD.W D6,D0 .L8 TST.W D1 BPL .L9 ADD.W D6,D1 .L9 TST.W D2 BPL .L10 ADD.W D6,D2 .L10 ADD.W D0,D0 ADD.W D1,D1 ADD.W D2,D2 MOVE.W (A0,D0.W),(A1)+ Sine x (0) MOVE.W (A2,D0.W),(A1)+ Cosine x (2) MOVE.W (A0,D1.W),(A1)+ Sine y (4) MOVE.W (A2,D1.W),(A1)+ Cosine y (6) MOVE.W (A0,D2.W),(A1)+ Sine z (8) MOVE.W (A2,D2.W),(A1) Cosine z (10) LEA -10(A1),A1 MOVE.W 4(A1),D0 SIN(Y) MOVE.W D0,D1 MULS 8(A1),D0 SIN(Z)*SIN(Y) LSL.L #2,D0 SWAP D0 D0=SIN(Z)*SIN(Y) NEG.W D1 -SIN(Y) MULS 10(A1),D1 COS(Z) LSL.L #2,D1 SWAP D1 D1=-SIN(Y)*COS(Z) LEA MATRIX,A2 ;MATRIX(1,1) MOVE.W 10(A1),D2 MOVE.W D2,D6 MULS 6(A1),D2 LSL.L #2,D2 SWAP D2 MOVE.W D2,(A2)+ ;MATRIX(1,2) MOVE.W (A1),D2 MULS D1,D2 MOVE.W 8(A1),D3 MOVE.W D3,D4 MOVE.W D4,D5 MULS 2(A1),D3 SUB.L D2,D3 LSL.L #2,D3 SWAP D3 MOVE.W D3,(A2)+ ;MATRIX(1,3) MOVE.W 2(A1),D2 MULS D1,D2 MULS (A1),D4 ADD.L D2,D4 LSL.L #2,D4 SWAP D4 MOVE.W D4,(A2)+ ;MATRIX(2,1) NEG.W D5 MULS 6(A1),D5 LSL.L #2,D5 SWAP D5 MOVE.W D5,(A2)+ ;MATRIX(2,2) MOVE.W D6,D7 MULS 2(A1),D6 MOVE.W (A1),D3 MULS D0,D3 SUB.L D3,D6 LSL.L #2,D6 SWAP D6 MOVE.W D6,(A2)+ ;MATRIX(2,3) MULS (A1),D7 MOVE.W 2(A1),D3 MOVE.W D3,D6 MULS D0,D3 ADD.L D3,D7 LSL.L #2,D7 SWAP D7 MOVE.W D7,(A2)+ ;MATRIX(3,1) MOVE.W 4(A1),(A2)+ ;MATRIX(3,2) MOVE.W 6(A1),D2 MOVE.W D2,D4 NEG.W D2 MULS (A1),D2 LSL.L #2,D2 SWAP D2 MOVE.W D2,(A2)+ ;MATRIX(3,3) MULS D6,D4 LSL.L #2,D4 SWAP D4 MOVE.W D4,(A2)+ MOVE.W NUM_POINTS,D7 LEA WORLD,A0 LEA VIEW,A1 LEA MATRIX,A2 LEA XOFFSET,A4 .L1 MOVE.L A2,A3 MOVEM.W (A0),D0-D2 D0-D2=x,y,z coords ADD.W (A4),D0 ADD.W 2(A4),D1 ADD.W 4(A4),D2 MOVE.W D0,D3 MOVE.W D1,D4 MOVE.W D2,D5 .CALC_X_COORD MULS (A3)+,D0 MULS (A3)+,D1 MULS (A3)+,D2 ADD.L D0,D1 ADD.L D2,D1 LSL.L #2,D1 SWAP D1 MOVE.W D1,(A1)+ .CALC_Y_COORD MULS (A3)+,D3 MULS (A3)+,D4 MULS (A3)+,D5 ADD.L D3,D4 ADD.L D5,D4 LSL.L #2,D4 SWAP D4 MOVE.W D4,(A1)+ .CALC_Z_COORD MOVEM.W (A0)+,D3-D5 ADD.W (A4),D3 ADD.W 2(A4),D4 ADD.W 4(A4),D5 MULS (A3)+,D3 MULS (A3)+,D4 MULS (A3)+,D5 ADD.L D3,D4 ADD.L D5,D4 LSL.L #2,D4 SWAP D4 MOVE.W D4,(A1)+ ADDQ.L #2,A1 DBF D7,.L1 RTS XCENT DS.W 1 YCENT DS.W 1 * This routine gives the object perspective, so the balls closest to * you are spread out more than the balls further away which are closer * to each other.......it works by multiplying the x and y coordinates * of each ball by 256 and dividing by the Z coordinate plus 128 * the 128 in DIST can be changed for different perspectives.... PERSPECT MOVEM.W XCENT,D0-D1 LEA VIEW,A0 LEA SCREEN,A1 MOVE.W NUM_POINTS,D2 MOVEQ.W #8,D6 2 to the power of 8=256 MOVE.W DIST,D7 D7=Perspective .L11 MOVEM.W (A0)+,D3-D5 ADDQ.L #2,A0 EXT.L D3 Must extend or division wont work if bits set in high word EXT.L D4 ASL.L D6,D3 Multiply X and Y by 256 ASL.L D6,D4 ADD.W D7,D5 Add perspective to Z coord DIVS D5,D3 DIVIDE X BY 128+Z DIVS D5,D4 DIVIDE Y BY 128+Z NEG.W D4 Invert y ADD.W D0,D3 Add X and Y centres ADD.W D1,D4 MOVEM.W D3-D4,(A1) ADDQ.L #4,A1 DBF D2,.L11 RTS * This is my really shit sort routine, it uses the bubble sort method * and is pretty slow. Phantom of Inner Circle said I should get rid of * this routine and use a tree sort, which I'll do........but it is, quote * from Phantom 'a bitch to code' (and I can confirm this!) SORT LEA VIEW,A1 MOVE.W NUM_POINTS,D0 SUBQ.W #1,D0 .L15 MOVE.W D0,D7 MOVEQ.W #0,D6 MOVE.L A1,A0 .L12 MOVE.W 4(A0),D1 CMP.W 12(A0),D1 BGE .L13 If less, swap values MOVEM.L (A0)+,D1-D2 First x,y coords MOVEM.L (A0),D3-D4 Second x,y coords MOVEM.L D3-D4,-8(A0) }swap the places of MOVEM.L D1-D2,(A0) }the two x and y coords ST D6 D6=flag to tell routine that sort has occured DBF D7,.L12 TST.W D6 BNE .L15 If d6=0 no sort done, so coordinates are sorted RTS .L13 ADDQ.L #8,A0 DBF D7,.L12 .L14 TST.W D6 BNE .L15 RTS SINTAB DC.W 0,286,572,857,1143,1428,1713,1997,2280 DC.W 2563,2845,3126,3406,3686,3964,4240,4516 DC.W 4790,5063,5334,5604,5872,6138,6402,6664 DC.W 6924,7182,7438,7692,7943,8192,8438,8682 DC.W 8923,9162,9397,9630,9860,10087,10311,10531 DC.W 10749,10963,11174,11381,11585,11786,11982,12176 DC.W 12365,12551,12733,12911,13085,13255,13421,13583 DC.W 13741,13894,14044,14189,14330,14466,14598,14726 DC.W 14849,14962,15082,15191,15296,15396,15491,15582 DC.W 15668,15749,15826,15897,15964,16026,16083,16135 DC.W 16182,16225,16262,16294,16322,16344,16362,16374 DC.W 16382,16384 DC.W 16382,16374,16362,16344,16322,16294,16262,16225 DC.W 16182 DC.W 16135,16083,16026,15964,15897,15826,15749,15668 DC.W 15582,15491,15396,15296,15191,15082,14962,14849 DC.W 14726,14598,14466,14330,14189,14044,13894,13741 DC.W 13583,13421,13255,13085,12911,12733,12551,12365 DC.W 12176,11982,11786,11585,11381,11174,10963,10749 DC.W 10531,10311,10087,9860,9630,9397,9162,8923 DC.W 8682,8438,8192,7943,7692,7438,7182,6924 DC.W 6664,6402,6138,5872,5604,5334,5063,4790 DC.W 4516,4240,3964,3686,3406,3126,2845,2563 DC.W 2280,1997,1713,1428,1143,857,572,286,0 DC.W -286,-572,-857,-1143,-1428,-1713,-1997,-2280 DC.W -2563,-2845,-3126,-3406,-3686,-3964,-4240,-4516 DC.W -4790,-5063,-5334,-5604,-5872,-6138,-6402,-6664 DC.W -6924,-7182,-7438,-7692,-7943,-8192,-8438,-8682 DC.W -8923,-9162,-9397,-9630,-9860,-10087,-10311,-10531 DC.W -10749,-10963,-11174,-11381,-11585,-11786,-11982,-12176 DC.W -12365,-12551,-12733,-12911,-13085,-13255,-13421,-13583 DC.W -13741,-13894,-14044,-14189,-14330,-14466,-14598,-14726 DC.W -14849,-14962,-15082,-15191,-15296,-15396,-15491,-15582 DC.W -15668,-15749,-15826,-15897,-15964,-16026,-16083,-16135 DC.W -16182,-16225,-16262,-16294,-16322,-16344,-16362,-16374 DC.W -16382,-16384 DC.W -16382,-16374,-16362,-16344,-16322,-16294,-16262,-16225 DC.W -16182 DC.W -16135,-16083,-16026,-15964,-15897,-15826,-15749,-15668 DC.W -15582,-15491,-15396,-15296,-15191,-15082,-14962,-14849 DC.W -14726,-14598,-14466,-14330,-14189,-14044,-13894,-13741 DC.W -13583,-13421,-13255,-13085,-12911,-12733,-12551,-12365 DC.W -12176,-11982,-11786,-11585,-11381,-11174,-10963,-10749 DC.W -10531,-10311,-10087,-9860,-9630,-9397,-9162,-8923 DC.W -8682,-8438,-8192,-7943,-7692,-7438,-7182,-6924 DC.W -6664,-6402,-6138,-5872,-5604,-5334,-5063,-4790 DC.W -4516,-4240,-3964,-3686,-3406,-3126,-2845,-2563 DC.W -2280,-1997,-1713,-1428,-1143,-857,-572,-286,-0 * DUPLICATE FIRST 90 ENTRIES FOR COSINE OVERLAP DC.W 0,286,572,857,1143,1428,1713,1997,2280 DC.W 2563,2845,3126,3406,3686,3964,4240,4516 DC.W 4790,5063,5334,5604,5872,6138,6402,6664 DC.W 6924,7182,7438,7692,7943,8192,8438,8682 DC.W 8923,9162,9397,9630,9860,10087,10311,10531 DC.W 10749,10963,11174,11381,11585,11786,11982,12176 DC.W 12365,12551,12733,12911,13085,13255,13421,13583 DC.W 13741,13894,14044,14189,14330,14466,14598,14726 DC.W 14849,14962,15082,15191,15296,15396,15491,15582 DC.W 15668,15749,15826,15897,15964,16026,16083,16135 DC.W 16182,16225,16262,16294,16322,16344,16362,16374 DC.W 16382,16384 **************************** END OF 3D ROUTINES *************************** ************************ VECTORBALL SPRITE ROUTINES *********************** SET_BALLS LEA BALLGRAFIX,A0 LEA 12*16(A0),A1 MOVEQ.W #15-1,D0 store 15 shifted versions of vectorball .L1 MOVEQ.W #16-1,D2 each ball is 16 lines high MOVEA.L A1,A2 .L2 MOVE.L (A0)+,(A1)+ Copy sprite MOVE.W (A0)+,(A1)+ MOVE.L (A0)+,(A1)+ MOVE.W (A0)+,(A1)+ DBF D2,.L2 MOVEQ.W #16-1,D2 .L3 AND.W #$FF00,SR ROXR.W (A2) Shift sprite ROXR.W 6(A2) AND.W #$FF00,SR ROXR.W 2(A2) ROXR.W 8(A2) AND.W #$FF00,SR ROXR.W 4(A2) ROXR.W 10(A2) LEA 12(A2),A2 DBF D2,.L3 DBF D0,.L1 * Next bit makes the masks for each ball sprite LEA BALLGRAFIX,A0 LEA BALLMASK,A1 MOVEQ.W #16-1,D0 16 masks to make .L4 MOVEQ.W #16-1,D1 each 16 lines high .L5 MOVE.W (A0)+,D2 OR.W (A0)+,D2 OR.W (A0)+,D2 NOT.W D2 D2=mask for current line MOVE.W D2,(A1)+ Store twice so MOVE.L, MOVE.W can be used to plot the mask (quicker than 3 MOVE.W's) MOVE.W D2,(A1)+ MOVE.W (A0)+,D2 OR.W (A0)+,D2 OR.W (A0)+,D2 NOT.W D2 MOVE.W D2,(A1)+ MOVE.W D2,(A1)+ DBF D1,.L5 DBF D0,.L4 RTS BALLGRAFIX INCBIN VEC_BALL\VEC1.DAT DS.B (12*16)*15 BALLMASK DS.B (12*16)*16 * This table contains the addresses of each ball (16 total) followed * by their mask addresses BALL_ADS DC.L BALLGRAFIX,BALLMASK,BALLGRAFIX+192,BALLMASK+128 DC.L BALLGRAFIX+(192*2),BALLMASK+(128*2),BALLGRAFIX+(192*3),BALLMASK+(128*3) DC.L BALLGRAFIX+(192*4),BALLMASK+(128*4),BALLGRAFIX+(192*5),BALLMASK+(128*5) DC.L BALLGRAFIX+(192*6),BALLMASK+(128*6),BALLGRAFIX+(192*7),BALLMASK+(128*7) DC.L BALLGRAFIX+(192*8),BALLMASK+(128*8),BALLGRAFIX+(192*9),BALLMASK+(128*9) DC.L BALLGRAFIX+(192*10),BALLMASK+(128*10),BALLGRAFIX+(192*11),BALLMASK+(128*11) DC.L BALLGRAFIX+(192*12),BALLMASK+(128*12),BALLGRAFIX+(192*13),BALLMASK+(128*13) DC.L BALLGRAFIX+(192*14),BALLMASK+(128*14),BALLGRAFIX+(192*15),BALLMASK+(128*15) Y_TAB DS.W 200 * Shit sprite routine, can be much faster but figure it out for yourself, * I'm not giving away all my best routs so any lamers who say I dont know * how to make a fast sprite rout should flush themselves down a toilet.... VECTOR_DRAW16 MOVE.L LOGIC,A5 BSR ERASE_BALLS LEA BALL_ADS,A4 LEA SCREEN,A0 MOVEA.L ERASE_IT,A6 .L2 MOVEM.W (A0)+,D0-D1 * Clipping (or 'is it on the screen or not?') TST.W D0 BMI .L1 CMPI.W #319-16,D0 BGT .L1 TST.W D1 BMI .L1 CMPI.W #199-16,D1 BGT .L1 LEA Y_TAB,A1 ADD.W D1,D1 MOVE.W (A1,D1.W),D1 D1*160 MOVE.W D0,D2 AND.W #$FFF0,D0 Make multiple of 16 AND.W #$000F,D2 LSR.W #1,D0 d0=screen offset (x) ADD.W D0,D1 Add x offset of y kffset LSL.W #3,D2 MOVE.L (A4,D2.W),A2 A2=source address of ball gfx MOVE.L 4(A4,D2.W),A1 A1=source address of mask data LEA (A5,D1.W),A3 A3=destination screen address MOVE.L A3,(A6)+ Save position so ball can be deleted next time the current logic screen is updated MOVE.W D7,-(A7) OFFSET SET 0 * Plot mask (yes I know it can be done much faster so speed the damn * thing up your damn self and stop complaining!!!!) REPT 4 MOVEM.L (A1)+,D0-D7 AND.L D0,OFFSET(A3) AND.W D0,OFFSET+4(A3) AND.L D1,OFFSET+8(A3) AND.W D1,OFFSET+12(A3) OFFSET SET OFFSET+160 AND.L D2,OFFSET(A3) AND.W D2,OFFSET+4(A3) AND.L D3,OFFSET+8(A3) AND.W D3,OFFSET+12(A3) OFFSET SET OFFSET+160 AND.L D4,OFFSET(A3) AND.W D4,OFFSET+4(A3) AND.L D5,OFFSET+8(A3) AND.W D5,OFFSET+12(A3) OFFSET SET OFFSET+160 AND.L D6,OFFSET(A3) AND.W D6,OFFSET+4(A3) AND.L D7,OFFSET+8(A3) AND.W D7,OFFSET+12(A3) OFFSET SET OFFSET+160 ENDR * Plot ball (see above comment) OFFSET SET 0 REPT 5 MOVEM.L (A2)+,D0-D7 OR.L D0,OFFSET(A3) OR.W D1,OFFSET+8(A3) SWAP D1 OR.W D1,OFFSET+4(A3) OR.L D2,OFFSET+10(A3) OFFSET SET OFFSET+160 OR.L D3,OFFSET(A3) OR.W D4,OFFSET+8(A3) SWAP D4 OR.W D4,OFFSET+4(A3) OR.L D5,OFFSET+10(A3) OFFSET SET OFFSET+160 OR.L D6,OFFSET(A3) OR.W D7,OFFSET+8(A3) SWAP D7 OR.W D7,OFFSET+4(A3) MOVE.L (A2)+,D2 OR.L D2,OFFSET+10(A3) OFFSET SET OFFSET+160 ENDR MOVEM.L (A2)+,D0-D2 OR.L D0,OFFSET(A3) OR.W D1,OFFSET+8(A3) SWAP D1 OR.W D1,OFFSET+4(A3) OR.L D2,OFFSET+10(A3) MOVE.W (A7)+,D7 .L1 DBF D7,.L2 RTS ERASE_IT DS.L 1 ERASEIT1 DCB.L 30,SCREEN1 ERASEIT2 DCB.L 30,SCREEN2 ERASE_BALLS MOVE.W NUM_POINTS,D0 MOVE.W D0,D7 MOVEQ.L #0,D1 MOVEA.L ERASE_IT,A0 A0=address of ball positions on current logic screen .L1 MOVEA.L (A0)+,A1 OFFSET SET 0 REPT 16 MOVE.L D1,OFFSET(A1) MOVE.W D1,OFFSET+4(A1) MOVE.L D1,OFFSET+8(A1) MOVE.W D1,OFFSET+12(A1) OFFSET SET OFFSET+160 ENDR DBF D0,.L1 RTS ************************************************************************** * 32 X ?, 1 BITPLANE, SPEED 8 PIXELS UNBUFFERED SCROLLINE ROUTINE * * CODED ON 16/2/91 BY POWERMAN OF TWB * * CALL A3_SETSCROLL FIRST,THEN SET A3_CURR TO DESTINATION SCREEN ADDRESS * * AND CALL A3_SCROLL. * ************************************************************************** A3_Y EQU 16 A3_TEXT DC.B " " DC.B "CHECK DIS, THE VECTORBALLS SCREEN FROM STATE OF THE ART! YES, I'VE FINALLY DECIDED TO RELEASE SOME (MAYBE ALL) OF THE STATE OF THE ART SOURCE. I WILL CERTAINLY BE GIVING" DC.B " AWAY THE 3D SCROLL, BIG SCROLL AND INTRO SOURCES, MAYBE THE FULLSCREEN AND MEGATWISTER ASWELL! THIS SCROLLTEXT IS OF COURSE DIFFERENT TO THE ONE IN STATE OF THE ART," DC.B " SO WHAT SHALL I TALK ABOUT????? WELL, AS YOU MAY KNOW I RECENTLY BECAME THE PROUD OWNER OF A BLACK ESCORT XR3I, ITS AN EARLY 21ST BIRTHDAY PRESENT WHICH I GOT THE DAY BEFORE" DC.B " GOOD FRIDAY. ME AND JACK WENT FOR A SPIN IN IT, ITS SO BLOODY FAST JACK ALMOST SHITTED HIMSELF! I HAVE JUST FINISHED OFF SLAM, AND WAVEFORMS (DIGI-SYNTH 8) WILL BE MY NEXT" DC.B " DEMO, IT'LL HAVE SOME REALLY GREAT MUSIC, GET IT WHEN ITS RELEASED.........QUICK GREETS TO MIKEY OF SPI (THANKS FOR THE MODULES!), SWIZZLE (LONG TIME NO WRITE!), FORD (FOR" DC.B " MAKING SUCH A FAST CAR), PRONTO, UNT, NATO, ALL THE USUAL GUYS......SEE YA'LL NEXT TIME............OVER AND OUT........... " DC.B -1 EVEN A3_SETSCROLL BSR A3_SHIFT JSR A3_CONVERT JSR A3_SET_FONT_ADS MOVE.L #A3_SCROLL1,A3_SCROLL+2 JMP A3_FILLBUFFER A3_CURR DS.L 1 A3_SHIFT LEA A3_FONT,A0 LEA A3_FONT2,A1 MOVEQ.W #49-1,D0 .L1 MOVEQ.W #A3_Y-1,D1 .L2 MOVE.W (A0)+,D2 MOVE.W (A0)+,D3 MOVE.W (A0)+,D4 MOVEQ.W #8-1,D6 .L3 MOVE.W #$2300,SR ROXL.W D4 ROXL.W D3 ROXL.W D2 DBF D6,.L3 MOVE.W D2,(A1)+ MOVE.W D3,(A1)+ MOVE.W D4,(A1)+ DBF D1,.L2 DBF D0,.L1 RTS A3_FONT INCBIN VEC_BALL\32X16.DAT A3_FONT2 DS.B 49*(6*A3_Y) * Convert text so that each byte value is the correct offset in the font * data......ie a ! becomes 0 because ! is the first character in the * font..... " becomes 1 because " is the second character etc.. A3_CONVERT LEA A3_TEXT,A0 LEA A3_CTAB,A1 .A MOVE.B (A0)+,D0 MOVEA.L A1,A2 MOVEQ.W #23-1,D1 .BZ CMP.B (A2)+,D0 BEQ .C ADDQ.L #1,A2 DBF D1,.BZ BRA .D .C MOVE.B (A2),-1(A0) .D CMPI.B #-1,(A0) BNE .A LEA A3_TEXT,A0 .L1 CMPI.B #-1,(A0) BEQ .EXIT SUBI.B #42,(A0)+ BRA .L1 .EXIT RTS A3_CTAB DC.B '!',42 DC.B '"',43 DC.B "'",44 DC.B '(',45 DC.B ')',46 DC.B '+',47 DC.B ',',48 DC.B '-',49 DC.B '.',50 DC.B ' ',51,'0',52,'1',53,'2',54,'3',55 DC.B '4',56,'5',57,'6',58,"7",59,'8',60 DC.B "9",61,":",62,';',63,'?',64 DC.B -1 EVEN A3_FONT_OFFS DS.W 49 A3_SET_FONT_ADS LEA A3_FONT_OFFS,A0 MOVEQ.W #0,D0 MOVEQ.W #49-1,D1 .L1 MOVE.W D0,(A0)+ ADDI.W #6*A3_Y,D0 DBF D1,.L1 RTS A3_FILLBUFFER LEA A3_TEXT,A0 LEA A3_BUFFER,A1 LEA A3_FONT_OFFS,A2 MOVEQ.W #11-1,D0 .L2 MOVEQ.W #0,D1 MOVE.B (A0)+,D1 LSL.W #1,D1 LEA (A2,D1.W),A3 MOVE.W (A3),(A1)+ DBF D0,.L2 MOVE.L A0,A3_TPOS RTS A3_BUFFER DS.W 11 A3_TPOS DS.L 1 A3_SCROLL JMP A3_SCROLL1 A3_SCROLL1 LEA A3_FONT,A0 LEA A3_BUFFER,A1 MOVEQ.W #10-1,D0 .L1 MOVE.W (A1)+,D1 LEA (A0,D1.W),A2 MOVEM.L D0/A1,-(A7) OFFSET SET 0 OFFSET2 SET 2 REPT A3_Y/4 MOVEM.W (A2)+,D0-D5/D6-D7/A1/A3/A5/A6 MOVE.W D1,OFFSET(A4) MOVE.W D2,OFFSET+8(A4) OFFSET SET OFFSET+160 MOVE.W D4,OFFSET(A4) MOVE.W D5,OFFSET+8(A4) OFFSET SET OFFSET+160 MOVE.W D7,OFFSET(A4) MOVE.W A1,OFFSET+8(A4) OFFSET SET OFFSET+160 MOVE.W A5,OFFSET(A4) MOVE.W A6,OFFSET+8(A4) OFFSET SET OFFSET+160 ENDR MOVEM.L (A7)+,D0/A1 LEA 16(A4),A4 DBF D0,.L1 MOVE.L #A3_SCROLL2,A3_SCROLL+2 RTS A3_SCROLL2 LEA A3_FONT2,A0 LEA A3_BUFFER,A1 MOVE.W (A1)+,D1 LEA (A0,D1.W),A2 OFFSET SET 0 REPT A3_Y/2 MOVEM.W (A2)+,D0-D5 MOVE.W D1,OFFSET(A4) MOVE.W D2,OFFSET+8(A4) OFFSET SET OFFSET+160 MOVE.W D4,OFFSET(A4) MOVE.W D5,OFFSET+8(A4) OFFSET SET OFFSET+160 ENDR ADDQ.W #8,A4 MOVEQ.W #9-1,D7 .L1 MOVE.W (A1)+,D1 LEA (A0,D1.W),A2 OFFSET SET 0 REPT A3_Y/2 MOVEM.W (A2)+,D0-D5 OR.W D0,OFFSET(A4) MOVE.W D1,OFFSET+8(A4) MOVE.W D2,OFFSET+16(A4) OFFSET SET OFFSET+160 OR.W D3,OFFSET(A4) MOVE.W D4,OFFSET+8(A4) MOVE.W D5,OFFSET+16(A4) OFFSET SET OFFSET+160 ENDR LEA 16(A4),A4 DBF D7,.L1 MOVE.W (A1)+,D1 LEA (A0,D1.W),A2 OFFSET SET 0 OFFSET2 SET 0 REPT A3_Y MOVE.W OFFSET2(A2),D0 OR.W D0,OFFSET(A4) OFFSET SET OFFSET+160 OFFSET2 SET OFFSET2+6 ENDR MOVE.L #A3_SCROLL3,A3_SCROLL+2 RTS A3_SCROLL3 LEA A3_FONT,A0 LEA A3_BUFFER,A1 MOVE.W (A1)+,D1 LEA (A0,D1.W),A2 OFFSET SET 0 REPT A3_Y/2 MOVEM.W (A2)+,D0-D5 MOVE.W D2,OFFSET(A4) OFFSET SET OFFSET+160 MOVE.W D5,OFFSET(A4) OFFSET SET OFFSET+160 ENDR ADDQ.W #8,A4 MOVEQ.W #9-1,D0 .L1 MOVE.W (A1)+,D1 LEA (A0,D1.W),A2 MOVEM.L D0/A1,-(A7) OFFSET SET 0 OFFSET2 SET 2 REPT A3_Y/4 MOVEM.W (A2)+,D0-D5/D6-D7/A1/A3/A5/A6 MOVE.W D1,OFFSET(A4) MOVE.W D2,OFFSET+8(A4) OFFSET SET OFFSET+160 MOVE.W D4,OFFSET(A4) MOVE.W D5,OFFSET+8(A4) OFFSET SET OFFSET+160 MOVE.W D7,OFFSET(A4) MOVE.W A1,OFFSET+8(A4) OFFSET SET OFFSET+160 MOVE.W A5,OFFSET(A4) MOVE.W A6,OFFSET+8(A4) OFFSET SET OFFSET+160 ENDR MOVEM.L (A7)+,D0/A1 LEA 16(A4),A4 DBF D0,.L1 MOVE.W (A1)+,D1 LEA (A0,D1.W),A2 OFFSET SET 0 REPT A3_Y/2 MOVEM.W (A2)+,D0-D5 MOVE.W D1,OFFSET(A4) OFFSET SET OFFSET+160 MOVE.W D4,OFFSET(A4) OFFSET SET OFFSET+160 ENDR MOVE.L #A3_SCROLL4,A3_SCROLL+2 RTS A3_SCROLL4 LEA A3_FONT2,A0 LEA A3_BUFFER,A1 MOVE.W (A1)+,D1 LEA (A0,D1.W),A2 OFFSET SET 0 REPT A3_Y/2 MOVEM.W (A2)+,D0-D5 MOVE.W D2,OFFSET(A4) OFFSET SET OFFSET+160 MOVE.W D5,OFFSET(A4) OFFSET SET OFFSET+160 ENDR MOVEQ.W #9-1,D0 .L1 MOVE.W (A1)+,D1 LEA (A0,D1.W),A2 MOVE.W D0,-(A7) OFFSET SET 0 REPT A3_Y/2 MOVEM.W (A2)+,D0-D5 OR.W D0,OFFSET(A4) MOVE.W D1,OFFSET+8(A4) MOVE.W D2,OFFSET+16(A4) OFFSET SET OFFSET+160 OR.W D3,OFFSET(A4) MOVE.W D4,OFFSET+8(A4) MOVE.W D5,OFFSET+16(A4) OFFSET SET OFFSET+160 ENDR LEA 16(A4),A4 MOVE.W (A7)+,D0 DBF D0,.L1 MOVE.W (A1)+,D1 LEA (A0,D1.W),A2 OFFSET SET 0 REPT A3_Y/2 MOVEM.W (A2)+,D0-D5 OR.W D0,OFFSET(A4) MOVE.W D1,OFFSET+8(A4) OFFSET SET OFFSET+160 OR.W D3,OFFSET(A4) MOVE.W D4,OFFSET+8(A4) OFFSET SET OFFSET+160 ENDR MOVEA.L A3_TPOS,A0 MOVEQ.W #0,D0 MOVE.B (A0)+,D0 BPL .L5 LEA A3_TEXT,A0 MOVE.B (A0)+,D0 .L5 LEA A3_FONT_OFFS,A2 MOVE.L A0,A3_TPOS LSL.W #1,D0 LEA (A2,D0.W),A2 LEA A3_BUFFER,A0 REPT 10 MOVE.W 2(A0),(A0)+ ENDR MOVE.W (A2),(A0) MOVE.L #A3_SCROLL1,A3_SCROLL+2 RTS ******************************** OBJECTS ********************************** * FORMAT - NUMBER OF BALLS, X COORDS, Y COORDS, Z COORDS * * TYPE OF BALLS TO USE (0=SMALL,1=BIG) * * ROTATION ANGLES ON X,Y,Z AXIS * * ENTER MODE - 0=LEFT,1=RIGHT,2=TOP,3=BOTTOM * * LEAVE MODE - " * * X,Y,Z OFFSETS * * COLOURS 1-5 * *************************************************************************** OBJECT1 DC.W 12 Number of balls DC.W -50,-20,10,40 X data DC.W -50,40,-50,40 DC.W -50,-20,10,40 DCB.W 4,50 Y data DC.W 20,20,-10,-10 DCB.W 4,-40 DCB.W 12,0 Z data DC.W 0 SMALL BALLS (?!?!) DC.W 2,6,2 ROTATION ANGLES DC.W 1,3 ENTER/LEAVE DC.W 30,0,10 X,Y,Z OFFSETS DC.W $300,$400,$500,$600,$700 COLOURS OBJECT2 DC.W 8 Number$of balls DC.W -50,50,-50,50,-50,50,-50,50 DC.W 50,50,-50,-50,50,50,-50,-50 DC.W 35,35,35,35,-35,-35,-35,-35 DC.W 0 SMALL BALLS DC.W 1,8,3 ROTATION ANGLES DC.W 2,0 ENTER/LEAVE DC.W 10,2,0 X,Y,Z OFFSETS DC.W $030,$040,$050,$060,$070 COLOURS OBJECT3 DC.W 12 Number of balls DC.W 0,20,37,45,37,20,0,-20,-37,-45,-37,-20 DC.W 45,37,20,0,-20,-37,-45,-37,-20,0,20,37 DCB.W 12,0 DC.W 0 SMALL BALLS DC.W 4,2,6 ROTATION ANGLES DC.W 0,1 ENTER/LEAVE DC.W 0,0,0 X,Y,Z OFFSETS DC.W $330,$440,$550,$660,$770 COLOURS OBJECT4 DC.W 15 Number of balls DC.W 0,-40,0,40,0 DC.W 0,-40,0,40,0 DC.W 0,-40,0,40,0 DC.W 40,0,0,0,-40 DC.W 40,0,0,0,-40 DC.W 40,0,0,0,-40 DC.W 40,40,40,40,40,0,0,0,0,0,-40,-40,-40,-40,-40 DC.W 0 SMALL BALLS DC.W 4,6,1 ROTATION ANGLES DC.W 0,1 ENTER/LEAVE DC.W -10,10,20 X,Y,Z OFFSETS DC.W $033,$044,$055,$066,$077 COLOURS OBJECT5 DC.W 15 Number of balls DC.W -40,0,40,-40,0,40,-40,0,40 DC.W -40,0,40,-40,0,40 DC.W 40,40,40,0,0,0,-40,-40,-40,0,0,0,0,0,0 DC.W 0,0,0,0,0,0,0,0,0,-30,-30,-30,30,30,30 DC.W 0 SMALL BALLS DC.W 4,6,2 ROTATION ANGLES DC.W 2,3 ENTER/LEAVE DC.W -22,14,-20 X,Y,Z OFFSETS DC.W $303,$404,$505,$606,$707 COLOURS OBJECT6 DC.W 13 Number of balls DC.W 0,0,-50,-25,0,0,0,0,0,25,50,0,0 DC.W 50,25,0,0,0,0,0,0,0,0,0,-25,-50 DC.W 0,0,0,0,-50,-25,0,25,50,0,0,0,0 DC.W 0 SMALL BALLS DC.W 5,2,6 ROTATION ANGLES DC.W 0,3 ENTER/LEAVE DC.W 20,0,0 X,Y,Z OFFSETS DC.W $003,$004,$005,$006,$007 COLOURS OBJECT7 DC.W 15 Number of balls DC.W -112,-96,-80,-64,-48,-32,-16,0 DC.W 16,32,48,64,80,96,112 DCB.W 15,0 DCB.W 15,0 DC.W 0 SMALL BALLS DC.W 0,8,8 ROTATION ANGLES DC.W 2,1 ENTER/LEAVE DC.W 0,0,0 X,Y,Z OFFSETS DC.W $333,$444,$555,$666,$777 COLOURS OBJECT8 DC.W 15 Number of balls DC.W -30,0,30,-30,0,30,-30,0,30 DC.W 0,0,0,0,0,0 DC.W 30,30,30,0,0,0,-30,-30,-30 DC.W 0,0,0,0,0,0 DC.W 0,0,0,0,0,0,0,0,0 DC.W 16,32,48,64,80,96 DC.W 0 SMALL BALLS DC.W 2,8,2 ROTATION ANGLES DC.W 1,3 ENTER/LEAVE DC.W -15,0,15 X,Y,Z OFFSETS DC.W $730,$740,$750,$760,$770 COLOURS OBJECT9 DC.W 13 Number of balls DC.W 0,20,40,60,40,20,0 DC.W -20,-40,-60,-40,-20,0 DC.W 60,40,20,0,-20,-40,-60 DC.W -40,-20,0,20,40,0 DCB.W 13,-30 DC.W 0 SMALL BALLS DC.W 4,4,0 ROTATION ANGLES DC.W 3,2 ENTER/LEAVE DC.W 0,0,0 X,Y,Z OFFSETS DC.W $310,$420,$530,$640,$750 COLOURS OBJECT10 DC.W 12 Number of balls DC.W -40,0,-40,0 DC.W -40,0,-40,0 DC.W -40,0,-40,0 DC.W 40,40,0,0 DC.W 40,40,0,0 DC.W 40,40,0,0 DC.W -60,-60,-60,-60,0,0,0,0,60,60,60,60 DC.W 0 SMALL BALLS DC.W 4,4,6 ROTATION ANGLES DC.W 2,0 ENTER/LEAVE DC.W 14,14,14 X,Y,Z OFFSETS DC.W $040,$050,$060,$070,$171 COLOURS OBJECT11 DC.W 15 Number of balls DC.W -60,-30,0,30,60 DC.W -60,-30,0,30,60 DC.W -60,-30,0,30,60 DC.W 30,30,30,30,30,0,0,0,0,0,-30,-30,-30,-30,-30 DCB.W 15,0 DC.W 0 SMALL BALLS DC.W 4,4,4 ROTATION ANGLES DC.W 1,1 ENTER/LEAVE DC.W 20,20,20 X,Y,Z OFFSETS DC.W $037,$047,$057,$067,$077 COLOURS OBJECT12 DC.W 15 Number of balls DC.W -30,0,30,-30,0,0,0,0,0,0,0,30,-30,0,30 DC.W 30,30,30,0,0,0,0,0,0,0,0,0,-30,-30,-30 DC.W 0,0,0,0,-60,-40,-20,0,20,40,60,0,0,0,0 DC.W 0 SMALL BALLS DC.W 2,3,4 ROTATION ANGLES DC.W 3,1 ENTER/LEAVE DC.W -20,0,20 X,Y,Z OFFSETS DC.W $307,$407,$507,$607,$707 COLOURS OBJECT13 DC.W 12 DC.W 0,20,40,60,40,20,0,-20,-40,-60,-40,-20 DC.W 40,20,0,-20,-20,-20,-20,-20,-20,-20,0,20 DCB.W 12,-40 DC.W 0 SMALL BALLS DC.W 2,6,2 ROTATION ANGLES DC.W 3,1 ENTER/LEAVE DC.W 0,0,0 X,Y,Z OFFSETS DC.W $703,$704,$705,$706,$707 COLOURS * Well, I hope you've learnt something from this source, I suppose all * the lame pirate and demo crews (no names!) will start coming out with * vectorball intros for their menus and demo screens.......if I catch * anyone using my code without my permission (in writing!) then you will * be subjected to the various forms of punishment Flashbak Jack has * devised (Flash being somewhat of an expert in this area!) which include * (amoung other things) hanging people by their dicks from very tall * trees while we drop stinging nettles on you and burn your hair! * You have been warned, and in the words of Stormlord 'Use my code but * dont abuse it'.......        * LATEST INITIALISATION ROUTINE * INPUT - SCR1 AND 2 ARE SCREEN ADDRESSES * SET IPL TO 3 ON EXIT FROM INIT INIT MOVEA.L (A7),A6 BSR SUPER MOVE.L #MY,A7 MOVE.L A6,(A7) MOVE.W #$2700,SR DC.W $A000 DC.W $A00A MOVE.B #$12,D0 BSR IKBD LEA $FFFF8240.W,A0 MOVEQ.W #8-1,D0 .COLS MOVE.L #0,(A0)+ DBF D0,.COLS MOVEQ.L #0,D1 MOVE.L SCR1,A0 CMP.L SCR2,A0 BEQ .L222 MOVE.L SCR2,A1 MOVE.L A1,A2 .L33 CMPA.L A0,A2 BEQ .L2 MOVE.L D1,(A0)+ MOVE.L D1,(A1)+ BRA .L33 .L222 MOVE.W #32000/4-1,D0 .L22 MOVE.L D1,(A0)+ DBF D0,.L22 .L2 LEA VARS,A0 MOVE.L $70.W,(A0)+ MOVE.L $120.W,(A0)+ MOVE.L $118.W,(A0)+ MOVE.L $134.W,(A0)+ MOVE.L $68.W,(A0)+ MOVE.B $FFFFFA07.W,(A0)+ MOVE.B $FFFFFA09.W,(A0)+ MOVE.B $FFFFFA13.W,(A0)+ MOVE.B $FFFFFA1B.W,(A0)+ MOVE.B $FFFFFA21.W,(A0)+ MOVE.B $FFFFFA15.W,(A0)+ MOVE.B $FFFFFA19.W,(A0)+ MOVE.B $FFFFFA1F.W,(A0)+ MOVE.B $FFFFFA15.W,(A0)+ MOVE.L #VBL,$70.W MOVE.L #RTE,$68.W MOVE.L #RTE,$134.W MOVE.L #KEY,$118.W MOVE.L SCR1,D0 LSR.W #8,D0 MOVE.W #$2300,SR CLR.B VBLFLAG .WAITVBL TST.B VBLFLAG BEQ .WAITVBL MOVE.L D0,$FFFF8200.W CLR.B $FFFF8260.W MOVE.B #2,$FFFF820A.W MOVE.W #$2700,SR CLR.B $FFFFFA07.W CLR.B $FFFFFA09.W CLR.B $FFFFFA13.W CLR.B $FFFFFA15.W ORI.B #33,$FFFFFA07.W TIMER A,B ENABLE ORI.B #33,$FFFFFA13.W ORI.B #64,$FFFFFA09.W KEYBOARD ENABLE ORI.B #64,$FFFFFA15.W RTS SCR1 DS.L 1 SCR2 DS.L 1 VARS DS.B 32 STOPMUS DC.L 0 VBL ST VBLFLAG RTE RTE VBLFLAG DC.W 0 KEY MOVE.B $FFFFFC02.W,PRESS BCLR #6,$FFFFFA11.W RTE PRESS DC.W 0 WAITKEY CLR.B PRESS .L1 CMPI.B #57+128,PRESS BNE .L1 RTS END MOVE.W #$2700,SR LEA $FFFF8800.W,A0 MOVE.L #$700FF00,(A0) MOVE.L #$8000000,(A0) MOVE.L #$9000000,(A0) MOVE.L #$A000000,(A0) LEA VARS,A0 MOVE.L (A0)+,$70.W MOVE.L (A0)+,$120.W MOVE.L (A0)+,$118.W MOVE.L (A0)+,$134.W MOVE.L (A0)+,$68.W MOVE.B (A0)+,$FFFFFA07.W MOVE.B (A0)+,$FFFFFA09.W MOVE.B (A0)+,$FFFFFA13.W MOVE.B (A0)+,$FFFFFA1B.W MOVE.B (A0)+,$FFFFFA21.W MOVE.B (A0)+,$FFFFFA15.W MOVE.B (A0)+,$FFFFFA19.W MOVE.B (A0)+,$FFFFFA1F.W MOVE.B (A0)+,$FFFFFA15.W MOVE.W #$777,$FFFF8240.W MOVE.W #0,$FFFF8242.W MOVE.W #0,$FFFF8246.W DC.W $A000 DC.W $A009 MOVE.B #8,D0 BSR IKBD MOVE.W #1,-(A7) PEA $78000+$80000 PEA $78000+$80000 MOVE.W #5,-(A7) TRAP #14 LEA 12(A7),A7 MOVE.W #$2300,SR JMP USER STACK DS.L 1 IKBD LEA $FFFFFC00.W,A0 .L1 MOVE.B (A0),D1 BTST #1,D1 BEQ .L1 MOVE.B D0,2(A0) RTS SUPER MOVEA.L (A7),A5 CLR.L -(A7) MOVE.W #32,-(A7) TRAP #1 ADDQ.L #6,A7 MOVE.L D0,STACK MOVE.L A5,(A7) RTS USER MOVE.L STACK,-(A7) MOVE.W #32,-(A7) TRAP #1 ADDQ.L #6,A7 CLR.L -(A7) TRAP #1 DS.L 200 MY DS.L 1 *************************************************************************** * REALTIME 3D RASTERS BY THE POWERMAN OF TWB * * (C) THE WILD BOYS, 1992 * * * * Yeah man, Powerman presents yet another nice source for you, this one * * is from the intro to Waveforms, although I precalculated the rasters * * on that intro, these ones are done in realtime which means you can get * * some nice effects by changing the values added to XROT,YROT and ZROT in * * the routine MAIN. If you use this code credit me, unless you are * * Argonut in which case say you ripped this code......... * * check y'all later...... * * * * Message to Tony B - where the hell are you????? * *************************************************************************** JMP BEGIN SCREEN1 EQU $80000-(2*(160*200)) SCREEN2 EQU $80000-(1*(160*200)) NUM_BARS EQU 10 SPACING EQU 4 BAR_HEIGHT EQU 26 MAX_POINTS EQU NUM_BARS DIST EQU 256 XCENTRE EQU 160 YCENTRE EQU 100 VBL2 CLR.B $FFFFFA1B.W MOVE.B #1,$FFFFFA21.W MOVE.B #8,$FFFFFA1B.W MOVE.L #TB1,$120.W MOVE.W RASTERS+(2*200),$FFFF8240.W MOVE.L #RASTERS+(2*200)+2,TB1+2 ST VBLFLAG RTE TB1 MOVE.W 0,$FFFF8240.W ADDQ.L #2,TB1+2 RTE MAKE_RASTERS LEA RASTERS+(2*(200*3)),A0 CLR.L D0 MOVE.L D0,D1 MOVE.L D0,D2 MOVE.L D0,D3 MOVE.L D0,D4 MOVE.L D0,D5 MOVE.L D0,D6 MOVE.L D0,D7 MOVE.L D0,A1 MOVE.L D0,A2 MOVE.L D0,A3 MOVE.L D0,A4 MOVE.L D0,A5 MOVE.L D0,A6 REPT 21 MOVEM.L D0-D7/A1-A6,-(A0) 56 ENDR MOVEM.L D0-D5,-(A0) BSR.S .L3 CLR.W RASTERS+(2*200) CLR.W RASTERS+(2*200)+(2*200) RTS .L3 LEA RASTERS+(2*200),A0 LEA SCREEN,A1 LEA Z?COORDS,A2 MOVE.W #NUM_BARS-1,D0 MOVE.W (A2),D1 CMP.W ((NUM_BARS-1)*4)(A2),D1 BGE.S .L1 LEA NUM_BARS*4(A1),A1 .L2 MOVE.L -(A1),D1 ADD.W D1,D1 LEA (A0,D1.W),A2 LEA BAR,A3 REPT BAR_HEIGHT MOVE.W (A3)+,(A2)+ ENDR DBF D0,.L2 RTS ;first bar closer .L1 MOVE.L (A1)+,D1 ADD.W D1,D1 LEA (A0,D1.W),A2 LEA BAR,A3 REPT BAR_HEIGHT MOVE.W (A3)+,(A2)+ ENDR DBF D0,.L1 RTS RASTERS DCB.W 200*3,0 BAR_WORLD YOFF SET (BAR_HEIGHT+SPACING)*(NUM_BARS/2) REPT NUM_BARS DC.W 0,YOFF,0 YOFF SET YOFF-(BAR_HEIGHT+SPACING) ENDR ROTATE_POINTS LEA SINTAB,A0 LEA 128*2(A0),A2 LEA SINCOS,A1 MOVEM.W XROT,D0-D2 MOVE.W #511,D3 AND.W D3,D0 AND.W D3,D1 AND.W D3,D2 MOVEM.W D0-D2,XROT ADD.W D0,D0 ADD.W D1,D1 ADD.W D2,D2 MOVE.W (A0,D0.W),(A1)+ Sin x (offset 0) MOVE.W (A2,D0.W),(A1)+ Cos x (offset 2) MOVE.W (A0,D1.W),(A1)+ Sin y (offset 4) MOVE.W (A2,D1.W),(A1)+ Cos y (offset 6) MOVE.W (A0,D2.W),(A1)+ Sin z (offset 8) MOVE.W (A2,D2.W),(A1) Cos z (offset 10) LEA -10(A1),A1 MOVE.W 4(A1),D0 MOVE.W D0,D1 MULS 8(A1),D0 ADD.L D0,D0 SWAP D0 NEG.W D1 MULS 10(A1),D1 ADD.L D1,D1 SWAP D1 ;MATRIX(1,1) MOVE.W 10(A1),D2 MOVE.W D2,D6 MULS 6(A1),D2 ADD.L D2,D2 SWAP D2 MOVE.W D2,CALC_X_COORD+2 ;MATRIX(1,2) MOVE.W (A1),D2 MULS D1,D2 MOVE.W 8(A1),D3 MOVE.W D3,D4 MOVE.W D4,D5 MULS 2(A1),D3 SUB.L D2,D3 ADD.L D3,D3 SWAP D3 MOVE.W D3,CALC_X_COORD+6 ;MATRIX(1,3) MOVE.W 2(A1),D2 MULS D1,D2 MULS (A1),D4 ADD.L D2,D4 ADD.L D4,D4 SWAP D4 MOVE.W D4,CALC_X_COORD+10 ;MATRIX(2,1) NEG.W D5 MULS 6(A1),D5 ADD.L D5,D5 SWAP D5 MOVE.W D5,CALC_Y_COORD+2 ;MATRIX(2,2) MOVE.W D6,D5 MULS 2(A1),D6 MOVE.W (A1),D3 MULS D0,D3 SUB.L D3,D6 ADD.L D6,D6 SWAP D6 MOVE.W D6,CALC_Y_COORD+6 ;MATRIX(2,3) MULS (A1),D5 MOVE.W 2(A1),D3 MOVE.W D3,D6 MULS D0,D3 ADD.L D3,D5 ADD.L D5,D5 SWAP D5 MOVE.W D5,CALC_Y_COORD+10 ;MATRIX(3,1) MOVE.W 4(A1),CALC_Z_COORD+2 ;MATRIX(3,2) MOVE.W 6(A1),D2 MOVE.W D2,D4 NEG.W D2 MULS (A1),D2 ADD.L D2,D2 SWAP D2 MOVE.W D2,CALC_Z_COORD+6 ;MATRIX(3,3) MULS D6,D4 ADD.L D4,D4 SWAP D4 MOVE.W D4,CALC_Z_COORD+10 MOVE.W NUM_POINTS,D6 SUBQ.W #1,D6 BGE.S .L1 RTS .L1 MOVE.L WORLD,A0 LEA SCREEN,A1 LEA Z_COORDS,A2 MOVE.W #DIST,A3 MOVEM.W XOFFSET,D7/A4/A5 DO_ROTATION MOVEM.W (A0)+,D0-D2 ADD.W D7,D0 \ ADD.W A4,D1 | add x,y,z offsets ADD.W A5,D2 / MOVEM.W D0-D2,-(A7) MOVE.W D0,D3 MOVE.W D1,D4 MOVE.W D2,D5 CALC_X_COORD MULS #0,D0 MULS #0,D1 MULS #0,D2 ADDX.L D0,D1 ADDX.L D2,D1 ADD.L D1,D1 SWAP D1 d1=x CALC_Y_COORD MULS #0,D3 MULS #0,D4 MULS #0,D5 ADDX.L D3,D4 ADDX.L D5,D4 ADD.L D4,D4 SWAP D4 d4=y MOVEM.W (A7)+,D0/D2/D3 CALC_Z_COORD MULS #0,D0 MULS #0,D2 MULS #0,D3 ADDX.L D0,D2 ADDX.L D3,D2 ADD.L D2,D2 MOVE.L D2,(A2)+ SWAP D2 EXT.L D2 EXT.L D1 EXT.L D4 ASL.L #8,D1 ASL.L #8,D4 ADD.L A3,D2 DIVS D2,D1 DIVS D2,D4 NEG.W D4 ADD.W #XCENTRE,D1 ADD.W #YCENTRE,D4 MOVE.W D1,(A1)+ MOVE.W D4,(A1)+ DBF D6,DO_ROTATION RTS SINTAB DC.W 0,402,804,1206,1608,2009,2411,2811 DC.W 3212,3612,4011,4410,4808,5205,5602,5998 DC.W 6393,6787,7180,7571,7962,8351,8740,9127 DC.W 9512,9896,10279,10660,11039,11417,11793,12167 DC.W 12540,12910,13279,13646,14010,14373,14733,15091 DC.W 15447,15800,16151,16500,16846,17190,17531,17869 DC.W 18205,18538,18868,19195,19520,19841,20160,20475 DC.W 20788,21097,21403,21706,22006,22302,22595,22884 DC.W 23170,23453,23732,24008,24279,24548,24812,25073 DC.W 25330,25583,25833,26078,26320,26557,26791,27020 DC.W 27246,27467,27684,27897,28106,28311,28511,28707 DC.W 28899,29086,29269,29448,29622,29792,29957,30118 DC.W 30274,30425,30572,30715,30853,30986,31114,31238 DC.W 31357,31471,31581,31686,31786,31881,31972,32058 DC.W 32138,32214,32286,32352,32413,32470,32522,32568 DC.W 32610,32647,32679,32706,32729,32746,32758,32766 DC.W 32767,32766,32758,32746,32729,32706,32679,32647 DC.W 32610,32568,32522,32470,32413,32352,32286,32214 DC.W 32138,32058,31972,31881,31786,31686,31581,31471 DC.W 31357,31238,31114,30986,30853,30715,30572,30425 DC.W 30274,30118,29957,29792,29622,29448,29269,29086 DC.W 28899,28707,28511,28311,28106,27897,27684,27467 DC.W 27246,27020,26791,26557,26320,26078,25833,25583 DC.W 25330,25073,24812,24548,24279,24008,23732,23453 DC.W 23170,22884,22595,22302,22006,21706,21403,21097 DC.W 20788,20475,20160,19841,19520,19195,18868,18538 DC.W 18205,17869,17531,17190,16846,16500,16151,15800 DC.W 15447,15091,14733,14373,14010,13646,13279,12910 DC.W 12540,12167,11793,11417,11039,10660,10279,9896 DC.W 9512,9127,8740,8351,7962,7571,7180,6787 DC.W 6393,5998,5602,5205,4808,4410,4011,3612 DC.W 3212,2811,2411,2009,1608,1206,804,402 DC.W 0,-402,-804,-1206,-1608,-2009,-2411,-2811 DC.W -3212,-3612,-4011,-4410,-4808,-5205,-5602,-5998 DC.W -6393,-6787,-7180,-7571,-7962,-8351,-8740,-9127 DC.W -9512,-9896,-10279,-10660,-11039,-11417,-11793,-12167 DC.W -12540,-12910,-13279,-13646,-14010,-14373,-14733,-15091 DC.W -15447,-15800,-16151,-16500,-16846,-17190,-17531,-17869 DC.W -18205,-18538,-18868,-19195,-19520,-19841,-20160,-20475 DC.W -20788,-21097,-21403,-21706,-22006,-22302,-22595,-22884 DC.W -23170,-23453,-23732,-24008,-24279,-24548,-24812,-25073 DC.W -25330,-25583,-25833,-26078,-26320,-26557,-26791,-27020 DC.W -27246,-27467,-27684,-27897,-28106,-28311,-28511,-28707 DC.W -28899,-29086,-29269,-29448,-29622,-29792,-29957,-30118 DC.W -30274,-30425,-30572,-30715,-30853,-30986,-31114,-31238 DC.W -31357,-31471,-31581,-31686,-31786,-31881,-31972,-32058 DC.W -32138,-32214,-32286,-32352,-32413,-32470,-32522,-32568 DC.W -32610,-32647,-32679,-32706,-32729,-32746,-32758,-32766 DC.W -32767,-32766,-32758,-32746,-32729,-32706,-32679,-32647 DC.W -32610,-32568,-32522,-32470,-32413,-32352,-32286,-32214 DC.W -32138,-32058,-31972,-31881,-31786,-31686,-31581,-31471 DC.W -31357,-31238,-31114,-30986,-30853,-30715,-30572,-30425 DC.W -30274,-30118,-29957,-29792,-29622,-29448,-29269,-29086 DC.W -28899,-28707,-28511,-28311,-28106,-27897,-27684,-27467 DC.W -27246,-27020,-26791,-26557,-26320,-26078,-25833,-25583 DC.W -25330,-25073,-24812,-24548,-24279,-24008,-23732,-23453 DC.W -23170,-22884,-22595,-22302,-22006,-21706,-21403,-21097 DC.W -20788,-20475,-20160,-19841,-19520,-19195,-18868,-18538 DC.W -18205,-17869,-17531,-17190,-16846,-16500,-16151,-15800 DC.W -15447,-15091,-14733,-14373,-14010,-13646,-13279,-12910 DC.W -12540,-12167,-11793,-11417,-11039,-10660,-10279,-9896 DC.W -9512,-9127,-8740,-8351,-7962,-7571,-7180,-6787 DC.W -6393,-5998,-5602,-5205,-4808,-4410,-4011,-3612 DC.W -3212,-2811,-2411,-2009,-1608,-1206,-804,-402 ;Duplicate first 128 entries for cosine overlap DC.W 0,402,804,1206,1608,2009,2411,2811 DC.W 3212,3612,4011,4410,4808,5205,5602,5998 DC.W 6393,6787,7180,7571,7962,8351,8740,9127 DC.W 9512,9896,10279,10660,11039,11417,11793,12167 DC.W 12540,12910,13279,13646,14010,14373,14733,15091 DC.W 15447,15800,16151,16500,16846,17190,17531,17869 DC.W 18205,18538,18868,19195,19520,19841,20160,20475 DC.W 20788,21097,21403,21706,22006,22302,22595,22884 DC.W 23170,23453,23732,24008,24279,24548,24812,25073 DC.W 25330,25583,25833,26078,26320,26557,26791,27020 DC.W 27246,27467,27684,27897,28106,28311,28511,28707 DC.W 28899,29086,29269,29448,29622,29792,29957,30118 DC.W 30274,30425,30572,30715,30853,30986,31114,31238 DC.W 31357,31471,31581,31686,31786,31881,31972,32058 DC.W 32138,32214,32286,32352,32413,32470,32522,32568 DC.W 32610,32647,32679,32706,32729,32746,32758,32766 BEGIN MOVE.L A7,STACK LEA MY,A7 CLR.L -(A7) MOVE.W #32,-(A7) TRAP #1 ADDQ.L #6,A7 MOVE.L #SCREEN1,SCR1 MOVE.L #SCREEN2,SCR2 JSR INIT JSR SET_UP JSR MAIN JSR END MOVE.L STACK,-(A7) MOVE.W #32,-(A7) TRAP #1 ADDQ.L #6,A7 CLR.L -(A7) TRAP #1 MAIN JSR ROTATE_POINTS JSR MAKE_RASTERS ADD.W #1,XROT ADD.W #2,YROT ADD.W #3,ZROT JSR SWAP CMPI.B #57,$FFFFFC02.W BNE MAIN RTS SET_UP MOVE.L #SCREEN1,PHYSIC MOVE.L #SCREEN2,LOGIC MOVE.L #BAR_WORLD,WORLD MOVE.W #NUM_BARS,NUM_POINTS MOVE.L #VBL2,$70.W BCLR #3,$FFFFFA17.W MOVE.W #$2300,SR RTS WAITVBL CLR.B VBLFLAG .L1 TST.B VBLFLAG BEQ .L1 RTS LOGIC DS.L 1 PHYSIC DS.L 1 SWAP MOVEM.L LOGIC,D0-D1 MOVE.L D0,D2 LSR.W #8,D2 MOVE.L D2,$FFFF8200.W BSR WAITVBL EXG D0,D1 MOVEM.L D0-D1,LOGIC RTS INIT MOVE.W #$2700,SR DC.W $A000 DC.W $A00A MOVE.B #$12,D0 BSR IKBD LEA $FFFF8240.W,A0 MOVEQ.W #8-1,D0 .COLS MOVE.L #0,(A0)+ DBF D0,.COLS MOVEQ.L #0,D1 MOVE.L SCR1,A0 CMP.L SCR2,A0 BEQ .L222 MOVE.L SCR2,A1 MOVE.L A1,A2 .L33 CMPA.L A0,A2 BEQ .L2 MOVE.L D1,(A0)+ MOVE.L D1,(A1)+ BRA .L33 .L222 MOVE.W #32000/4-1,D0 .L22 MOVE.L D1,(A0)+ DBF D0,.L22 .L2 LEA VARS,A0 MOVE.L $70.W,(A0)+ MOVE.L $120.W,(A0)+ MOVE.L $118.W,(A0)+ MOVE.L $134.W,(A0)+ MOVE.L $68.W,(A0)+ MOVE.B $FFFFFA07.W,(A0)+ MOVE.B $FFFFFA09.W,(A0)+ MOVE.B $FFFFFA13.W,(A0)+ MOVE.B $FFFFFA1B.W,(A0)+ MOVE.B $FFFFFA21.W,(A0)+ MOVE.B $FFFFFA15.W,(A0)+ MOVE.B $FFFFFA19.W,(A0)+ MOVE.B $FFFFFA1F.W,(A0)+ MOVE.B $FFFFFA15.W,(A0)+ MOVE.L #VBL,$70.W MOVE.L #RTE,$68.W MOVE.L #RTE,$134.W MOVE.L #KEY,$118.W MOVE.L SCR1,D0 LSR.W #8,D0 MOVE.W #$2300,SR CLR.B VBLFLAG .WAITVBL TST.B VBLFLAG BEQ .WAITVBL MOVE.L D0,$FFFF8200.W CLR.B $FFFF8260.W MOVE.B #2,$FFFF820A.W MOVE.W #$2700,SR CLR.B $FFFFFA07.W CLR.B $FFFFFA09.W CLR.B $FFFFFA13.W CLR.B $FFFFFA15.W ORI.B #1,$FFFFFA07.W TIMER B ENABLE ORI.B #1,$FFFFFA13.W ORI.B #64,$FFFFFA09.W KEYBOARD ENABLE ORI.B #64,$FFFFFA15.W )RTS SCR1 DS.L 1 SCR2 DS.L 1 VARS DS.B 32 VBL ST VBLFLAG RTE RTE VBLFLAG DC.W 0 KEY MOVE.B $FFFFFC02.W,PRESS BCLR #6,$FFFFFA11.W RTE PRESS DC.W 0 WAITKEY MOVE.W #$2300,SR CLR.B PRESS .L1 CMPI.B #57+128,PRESS BNE .L1 RTS END MOVE.W #$2700,SR LEA $FFFF8800.W,A0 MOVE.L #$700FF00,(A0) MOVE.L #$8000000,(A0) MOVE.L #$9000000,(A0) MOVE.L #$A000000,(A0) LEA VARS,A0 MOVE.L (A0)+,$70.W MOVE.L (A0)+,$120.W MOVE.L (A0)+,$118.W MOVE.L (A0)+,$134.W MOVE.L (A0)+,$68.W MOVE.B (A0)+,$FFFFFA07.W MOVE.B (A0)+,$FFFFFA09.W MOVE.B (A0)+,$FFFFFA13.W MOVE.B (A0)+,$FFFFFA1B.W MOVE.B (A0)+,$FFFFFA21.W MOVE.B (A0)+,$FFFFFA15.W MOVE.B (A0)+,$FFFFFA19.W MOVE.B (A0)+,$FFFFFA1F.W MOVE.B (A0)+,$FFFFFA15.W MOVE.W #$777,$FFFF8240.W MOVE.W #0,$FFFF8242.W MOVE.W #0,$FFFF8246.W DC.W $A000 DC.W $A009 MOVE.B #8,D0 BSR IKBD MOVE.W #1,-(A7) PEA $78000+$80000 PEA $78000+$80000 MOVE.W #5,-(A7) TRAP #14 LEA 12(A7),A7 MOVE.W #$2300,SR RTS STACK DS.L 1 IKBD LEA $FFFFFC00.W,A0 .L1 MOVE.B (A0),D1 BTST #1,D1 BEQ .L1 MOVE.B D0,2(A0) RTS DS.L 400 MY DS.L 1 WORLD DS.L 1 address of object coords SCREEN DS.W MAX_POINTS*2 after perspect,coords stored here Z_COORDS DS.L MAX_POINTS NUM_POINTS DS.W 1 no. points in current object SINCOS DS.W 6 XROT DC.W 0 YROT DC.W 0 ZROT DC.W 0 XOFFSET DC.W 0 YOFFSET DC.W 0 ZOFFSET DC.W 60 BAR DC.W $100,$200,$200,$300,$300,$400,$400,$500,$500 DC.W $600,$600,$700,$700,$700,$700,$600,$600 DC.W $500,$500,$400,$400,$300,$300,$200,$200,$100 Ķ"29=@^PZI4 аӸ-1:=8Ne11ֻ"2,<=  5! $  5A %(. Ⱥ ~w|~~oU_u_msnaywOF~t/?|wy{WPwWo?Vw~'uwO}vow/{oևoDOGpwO?vrsw_uV6|w)s_~{svgf{wub=B%ewvwo'}ڈٌw wwy'twgvwws_|'uzs~oZGwmtUן~t7{p}w__>~w|~~oU_u_msnaywOF~t/?|wy{WPwWo?Vw~'uwO}vow/{oևoDOGpwO?vrsw_uV6|w)s_~{svgf{wub=B%ewvwo'}ڈٌw wwy'twgvwws_|'uzs~oZGwmtUן~t7{p}w__>~w|~~oU_u_msnaywOF~t/?|wy{WPwWo?Vw~'uwO}vow/{oևoDOGpwO?vrsw_uV6|w)s_~{svgf{wub=B%ewvwo'}ڈٌw wwy'twgvwws_|'uzs~oZGwmtUן~t7{p}w__>~w|~~oU_u_msnaywOF~t/?|wy{WPwWo?Vw~'uwO}vow/{oևoDOGpwO?vrsw_uV6|w)s_~{svgf{wub=B%ewvwo'}ڈٌw wwy'twgvwws_|'uzs~oZGwmtUן~t7{p}w__>~w|~~oU_u_msnaywOF~t/?|wy{WPwWo?Vw~'uwO}vow/{oևoDOGpwO?vrsw_uV6|w)s_~{svgf{wub=B%ewvwo'}ڈٌw wwy'twgvwws_|'uzs~oZGwmtUן~t7{p}w__>~w|~~oU_u_msnaywOF~t/?|wy{WPwWo?Vw~'uwO}vow/{oևoDOGpwO?vrsw_uV6|w)s_~{svgf{wub=B%ewvwo'}ڈٌw wwy'twgvwws_|'uzs~oZGwmtUן~t7{p}w__>~w|~~oU_u_msnaywOF~t/?|wy{WPwWo?Vw~'uwO}vow/{oևoDOGpwO?vrsw_uV6|w)s_~{svgf{wub=B%ewvwo'}ڈٌw wwy'twgvwws_|'uzs~oZGwmtUן~t7{p}w__>~w|~~oU_u_msnaywOF~t/?|wy{WPwWo?Vw~'uwO}vow/{oևoDOGpwO?vrsw_uV6|w)s_~{svgf{wub=B%ewvwo'}ڈٌw wwy'twgvwws_|'uzs~oZGwmtUן~t7{p}w__>~w|~~oU_u_msnaywOF~t/?|wy{WPwWo?Vw~'uwO}vow/{oևoDOGpwO?vrsw_uV6|w)s_~{svgf{wub=B%ewvwo'}ڈٌw wwy'twgvwws_|'uzs~oZGwmtUן~t7{p}w__>~w|~~{F_{{3_ WMeTrOZwjas1?ƭ.ySu vt}=$;]Eghe?`0a z]Zۣ[uYW}ƚ8E%<]_6_v26Ovw-Eqko{u<|j^t&]K"?]Mc_kךix 9j'4| Zz#%{msl76 Nԣ_]=3~DDzLsԲ7;4GUN=&w>ϳj=sn[trOfu tۣD>j0NI.wwv3d^w#r%o>WW}7?̕zpw7_w/w4۬g,;w7\|÷?|~QtIw_www'uyϖ_UQpwwW߅wwu=\w}}|G7|www_wtW9vE|guw"}g}ws?Y [[\}wkRV_z_F]vwwxwvowwz^jw7/w~W}'_gGsco_wrsrE\}~5&oo5_5o՟avORvOtv/swsvpvzu}wίzw/tgqf?_qvO_sg_?dOOG~_Gz,y:GP6eHTuRu{u_zw?rW_]slOVsvKw}g ]sZC!=jR峇"=܍:5PZ9PeϡœU. 2F:ܙBqTC˽4!E)ٚHIPJ3<Z3##!3B"C¤$Dҭ>Ť$DݰTAѽC$˞S.ƪDٝ Ԕ%½Դ34ɬմ4ɫ$㙣[X#0m?Q#:MR-P:<=5ˠֲ:2K,ZJZ}-\Y۲ĔE3"k:Bj1*#6$m <D56}_{a~awiDCN<4T\u% rs{VכeǛN[0;3{?lԮ^}$[|T l}]WK3N_3 W?U-4k-S,3_stA;4clC%u?/vVͷJUbEyqer΅n&,ӴO_{CozoEo~S\cwbfst&&w_tOkT]5[*#FpPUl&c{[6W;z-S_קlVg>K}6L^j[}7/nFzw5+w[o}E[W_K5/C9Wtq*RF&շ~ߗ!SgT7^x36U`]>ts+n܈uڶ^v$mc;8o5fOven^r=]Zm<t^.~nr~^^G}_u:.uDIu/fվR^>gf-KzuB1 z65 j%S]??\S^Fs"tNT/K/qV m%e?lgŜ2=5_Ms+znҤTvZ 0|_,tճ7&${N?eƥ25;y)]>BdGwswiV'ck7Swo{o[s?`+5N.}w}sc3%ğE'wg|vf^vGWgR[T|k\:[gOq$n:7j&ռpqwU=h\C.Jw]c%{bcδZc& cϔUKb͹5>It-w{5<35SR+Ң:Η|NftlUE=EwoU?f `UCj%hRUT="@@$V*L%0Aڥ*S4Y!J3;$ ["BBA31 C31P(J "$ C˫4** +[)"+:;" KC2+ ();<2ⓂL+Lä\JKO\?rw}}vWl:*m}s7}ųs?Kv$E{mPr}mlln¢]SKDm40cwϣRucTY+"^B#-DټCN"4iKȪ^\Ҥ9K3#`A:;j"ٓM1>[C4D໥C ˄iR̠T);0D4CkҤD+95;I3»>]#lD3$[ ý]!) 8%+95[:;1*Ī*B2 ;IKR 0BˋZ3 Đ"!#$# <:Z9":ѻ 3 ";2+:0*һ189"* ! 0<8‘ *(,9)* )2) +: )ð;![1+ +1::2):+*+ ; )  )))*( +  "tn-rFZT.xngPgNZwMKuT)uv"y7/Wk7_CL D+T+µ]E0sR24һ6[!²˽ c5+)#;8*"21+1:H> !,3ZM ܛ34Ҽ;H+ 2"ۻCC%][= J$9J)1 « *\M*KB1 (:Z+*  J1*;1L#") **  Ģ9* !#,* A4#!  0(  * () "( )  *) IԱ)+;;;*)*) M93 ") +) "wG,ĤwϽw~uyouOGvVu"?E}cuC~o2%[\'rU~P__5V+]-nU\~e}͛,w;cDk) z%=&tYWᇰIȃ[TܲV9Q,QS4=ݫfPݲ@TB3=­q,)t#TB#@JB"+΂%5$%ɽ)#9ʱ2,´!J1Z$ ˲C"ГRY;KKT!2U ԕCۢ˾CCҨ[[[+:S4C312=l1D1\ 3DϬ'D2TK!5"6 ѓS91Cʬ)T;,PD:2#23;;8"5ݱF!5B S(ۣDSE#30<8:*04$9! , 93$"*3 ͽ$3*"C1 "!ڻJ1J,!+ I1NK;;̔3,">SQ=d> L=rW]Ow/tyWwGF?|/~o}Z<;]m48M_|Wش]8 {4{{m7,a&c 2)l9Oe˷6lmZ|oa}+K9mbr%6֎\\;m.c9ԋ[Ż"*4ӡ39 H]@$)+<+ **0[2:;<:*;:) ) K29 $ =B+K* +;* *Ś,:+\) :Ā8 !)(+L(Z ;it>RxLjpnY={/pѤUFZ<7z]ҙeկ$W]~=+SA=5Są?:=zmko4lwJyw*}Uvu^ػGww~MgGT]²tc_-{Fzz_TOkot>[o]6LMw_;S_gz_AO|^TMgO{:OUڵ3=>fK5~~6o||泐8ef%OH_zתEMj+RnErK}`2>97ZBĪU5B*cͭ%3\:YJFL-BEMC9K-BB1 ~uVSN3Zo+[$1<*\oR.Q~iS0mQ_~P]ػŒIIYB#ƹտkC)Z\9!L}]A+\QS**(nb\#_Zij#7^{?1$JX\Z*主O#=[YJK>}Dkm: niԳY="*5 "NS-[& 5[#_K;ê)%J+",M4,ԁ<4 jmJ M*ӃKá=k:]HĢNJȈ;" \C<3;,03B3 ","j+5UTˉʬ ;]Z%5Eݺ# I*!1 :3 ȝ$," KA ) !$A ۈ4E4:)DEB2@$ 9 22$22#) *9)۹4D2*($3I!+ !2 :)*)0" +0  00"! ( 9 }T}w?Ƿlw0Ouzu|vTv},~guwL7ZwESbbH7?^k~}9TpA T哱+]%.\?Z'o<2)-](\{r>N3\_WoaNkio7gq~K,^o|_~}zTUDULsf%Lh2&FФbE*L2=K FuV_T݅\R-GEs޳"%:%+Q S:UT:3;˩[܃5P,F%˔2eVq߳U.&CU˹fKe[ݤd:4dIe VQE ˂:̳ %UH4#:S)"%:ڒ#1!H:EPUd盜::<>}}:2_+J~~4,Cm}"^^|D_'koP 3#o汫==Ro34%["@=\OZ;@+ eDB]Tm%q'!e[ZK[:ȵ;#%Z!ɻ~15i2́氄-]QZ4L.o'UOY8]*0F"d[ZD^ř;,Mq83unNe7,\՛bɠam{<&є3-2#J80}IK!=oC7s#u'Nw-՞cnwuOw>uwTwez]t_l^{<_vo'<+b:,ش$!=;o_~nlU?#on5s>$o~\o?m^gZC_!G2?MO.zSEųM=oB7K#ɪK ##[?YK!?nM^J\`Yԣţ1I(;K"Yù¥[;]#ԣ;-];@LP92XK[L#(;;1 ;:JL,KK:;+L=1I3* :L;++2[K+JL9*!!1" K++9(;!J*)L:,**<:1"(*( "(+Óã**) ;2( *"K !<!"*0! * ;*J* :):1+( ("!:9(*! +)):+;@uCX.GutRTr[W~~w`K?_uJ 'M'k0d|G'DW?^nf\vC4{9+rAXDb59#^s%4"Y^#1?ՄJ =]1:èL8FRZҹ]+L*:&4Ӿ!d 4˒9MQՉ=~9әXH,J; $+³0<ìDALR3ӌ::Y6L:,K",\P=(M"$)[<L3 ˡSF4Iѱ15Y3!-+*;Ӡ9":3"< Ӭ*+X #") A;3#$31+3 2!!ʪ" +:;3!+13!  #1K0" #C0#  1KB+ ê;)+1 0:+(;:* )"**;!  !*13?bwOxwBf'R =߾{w~tb vR{w/ u2[7`V\~ yqT>ӣpD7@آO*W"+I_{A{3d0"r "D$;#]פ5{5~k]p?B.q%nŽk{9Em |e[#,ռ|}ye &^FWo7?7,{'RݒKWz^}\m$=9WNGc<%O^2M%ŁywK]{esqeNG-D22gvǞxI5bݡNX}V4ˤ,P0N7- K^|Z<;K4-k L&т*J*1Բ;+ 2 ,]«@"M:8 !=3,j"\ !;@)K+J*Ѵ#=| 'C}.jK3eʒu {m৿;VU>¦nwm_Ml]V^|,Kv\du6ǤTUb]ԩtTCQm5g۸y򗌯a{\.3YyK=ۃ~Rbӷ^|>tElwO{uWmKSZ97(kz4c̹4D#ZSZ0:Tn,j6-!4;: ;\Z]1$<9+ۥBB[;% 1N=15 :(dO]1Y09<*#9,:PÃ8.;Q+;@K1)1+41B<)0;#H[:2=5;J2<J)1+XjʭDL L(.3]F:Ӛo||gq'ww}u|A(}JOL}FG3]WqNGfzjwOlwZ/&$}׏_]E)Hy)Hy)Hy)Hy)rB@NOJCgr0/2+HA7@Rl7R0+k2jAok7A0/2+HA7@jl7j0+k2*jAok7A\OL Nu/ E)?*?*?*4rB@Nz\O$_NuB@N^Nu/ O&HpNNpNHpNHoHoHo Ho rB@NO?/?/?/?/?+CA4+2+0+NpO 7o 7oB@NpNB@NO &_NuH $H86B@Nf0 JNX JN&B@ JN6|Cg0p4H"ҁ҂r fr `"2H ЀЁr `NnNP JNCgN0LNu?BC`0A$&NRC|m#&N*6NuB*Nu#tNu/<}?<HNA\ z,!#t/g?<NNT @"_0<""""QNu zXt/g$?<NNT"@ W0<""""Q?<INA\Nu3)3)//NAX09)A':)HyX?<&NN\Hy?<&NN\?<?<NMXH@ gP Pf 9)`0 Hf 9)` k jU@@A':)Hy4?<&NN\`Hy?<&NN\/9)?<INA\Nu9)8g eB8Nu@|A0k 0`FNu )) ) ))))!!)4F)Nu) ) )))))@)||#!#4)!4Jy)f!4B8) @ 8 8@NuF%NH瀀AB@9R f!|HA!؈!؈!؈LNsH瀀A`!4B@91@R;"1@ HAz!؈!؈!؈LNs $1@!|Bh*`0H瀀A!4<@;1@* gHA!؈!؈!؈LNs                                                                                                                                                                                                                                                                                                                                                   H>/ // _Bg/?<NAX?9*?<>NAXNuaB@` a0/ //NAX?9*?<>NAXNuaB@`a0D X0*p    b    B      6h..X08:04  ( 00> 80HH$J"# " '  $'  # !       #% " !". z t .. z tCRNTAB BIN|t CRUNCH S t vDECRNTABBINt DECRUNCHS t SAMPLAY S t )TABLE BINt %SAMPLAY2S t *oSAMPLAY LIBt +mREPLAY LIBt /                  ! !#$  $$ !'#&&!'0(  **)% .5.& &,.,"182. #/53*5<4/ ȿ +880!7>3, Ǿ!-7925=4* *353 .95- %055$+83/$!150! '6./,/7,%7,,+(1*3./(%%)$./0"  ($ &-- $  ;************************************************************************ ;* De Crunch routine heeft als functie het packen van een samplebestand * ;* tot de helft van de oorspronkelijke lengte. De oorspronkelijke pack * ;* routines waren in C geschreven. Maar aangezien de C code traag en * ;* onnodig lang was heb ik hem herschreven in Assembler. * ;* * ;* Vanuit C wordt de routine als volgt aangeroepen: * ;* * ;* int Crunch(char *InputFname, char *OutputFname) * ;* * ;* De returnvalue is ongelijk aan nul op het moment dat er een fout is * ;* opgetreden. Nul betekent dus dat compressie goed is verlopen * ;************************************************************************ Crunch:: movem.l d1-d7/a2-a6,-(sp) move.l a1,-(sp) ;Target Filename move.l a0,-(sp) ;Source filename move.l #-1,-(sp) move.w #$48,-(sp) ;Free memory trap #1 ;Malloc addq.l #6,sp move.l d0,buflen move.l d0,-(sp) move.w #$48,-(sp) ;Allocate all free memory trap #1 ;Malloc addq.l #6,sp bclr #0,d0 ;2 bytes -> 1 byte compression move.l d0,memstrt movea.l (sp)+,a0 ;Inputfilename move.w #0,-(sp) ;Readonly move.l a0,-(sp) move.w #$3d,-(sp) trap #1 ;Fopen addq.l #8,sp move.w d0,handlei bmi error ;Error movea.l (sp)+,a0 ;Target filename clr.w -(sp) move.l a0,-(sp) move.w #$3c,-(sp) trap #1 ;Fcreate addq.l #8,sp move.w d0,handleo bmi error ;Error loop: move.l memstrt,-(sp) ;Buffer move.l buflen,-(sp) ;Count move.w handlei,-(sp) move.w #$3f,-(sp) trap #1 ;Fread adda.l #$0c,sp bclr #0,d0 move.l d0,buflen bmi error ;Error beq endoffile >PART movea.l memstrt,a0 ;Bufferpointer movea.l a0,a1 ;Outputpointer lea crntab,a2 ;Crunched offsets lea decrntab,a3 ;Decrunched offsets clr.w d1 clr.w d2 clr.w byte1 ;Last byte start with 0 move.l buflen,d0 crnloop: move.b (a0)+,d1 bsr crnoffset ;Crunch sample lsl.b #4,d1 ;Into upper nibble move.b d1,d3 ;Store move.b (a0)+,d1 bsr crnoffset eor.b d3,d1 ;D3 1st byte, D1 last byte move.b d1,(a1)+ subq.l #2,d0 bne crnloop ENDPART move.l memstrt,-(sp) move.l buflen,d0 lsr.l #1,d0 ;/2 move.l d0,-(sp) move.w handleo,-(sp) move.w #$40,-(sp) trap #1 adda.l #$0c,sp tst.l d0 bmi error bra loop crnoffset: >PART sub.w byte1,d1 ;Offset bpl crnoffset_3 neg.w d1 ;Make negative offset positive move.b 0(a2,d1.w),d1 ;Crunch the offset crnoffset_1: move.b 0(a3,d1.w),d2 ;And decrunch it again sub.w d2,byte1 ;New sample bpl.s crnoffset_2 ;No $00-$ff border cross add.w d2,byte1 ;take previous sample subq.w #1,d1 ;Decrease crunched offset by 1 bra crnoffset_1 ;And try again crnoffset_2: bset #3,d1 ;Make it a negative Nibble bra.s crnoffset_5 crnoffset_3: move.b 0(a2,d1.w),d1 ;Crunch the offset crnoffset_4: move.b 0(a3,d1.w),d2 ;Decrunch it add.w d2,byte1 ;New sample cmpi.w #$ff,byte1 bls.s crnoffset_5 ;No $ff-$00 border cross sub.w d2,byte1 ;Take previous sample subq.w #1,d1 ;Decrease crunched offset by 1 bra crnoffset_4 ;And try again crnoffset_5: rts ENDPART closeall: >PART move.l memstrt,-(sp) move.w #$49,-(sp) trap #1 ;Mfree addq.l #6,sp move.w handlei,-(sp) ;Close inputfile move.w #$3e,-(sp) trap #1 ;Fclose addq.l #4,sp move.w handleo,-(sp) ;Close outputfile move.w #$3e,-(sp) trap #1 ;Fclose addq.l #4,sp rts ENDPART endoffile: >PART bsr closeall clr.w d0 ;No errors bra return ENDPART error: >PART bsr closeall move.w #-1,d0 ;Error ENDPART return: movem.l (sp)+,d1-d7/a2-a6 rts DATA crntab: IBYTES 'CRNTAB.BIN' decrntab: IBYTES 'DECRNTAB.BIN' BSS buflen: DS.L 1 ;Lengte van de buffer memstrt: DS.L 1 ;Start van de buffer handlei: DS.W 1 ;handle nr inputfile handleo: DS.W 1 ;handle nr outputfile byte1: DS.W 1 END                                                           $1@                                               ;************************************************************************ ;* De decrunch routine heeft als functie het decompressen van een met * ;* Crunch gepackte file. De aanroep van decrunch is als volgt: * ;* * ;* int Decrunch(char *InputFname, char *OutputFname) * ;* * ;* De returnvalue is ongelijk aan nul op het moment dat er een fout is * ;* opgetreden. Nul betekent dus dat compressie goed is verlopen * ;************************************************************************ GLOBAL decrntab Decrunch:: movem.l d1-d7/a2-a6,-(sp) move.l a1,-(sp) ;Target Filename move.l a0,-(sp) ;Source filename move.l #-1,-(sp) ;Free memory ? move.w #$48,-(sp) trap #1 ;Malloc addq.l #6,sp move.l d0,-(sp) lsr.l #1,d0 ;Split in 2 2 parts move.l d0,buflen move.w #$48,-(sp) trap #1 ;Malloc addq.l #6,sp move.l d0,memstrt movea.l (sp)+,a0 ;Inputfilename move.w #0,-(sp) ;Readonly move.l a0,-(sp) move.w #$3d,-(sp) trap #1 ;Fopen addq.l #8,sp move.w d0,handlei bmi error ;error movea.l (sp)+,a0 ;Target filename clr.w -(sp) move.l a0,-(sp) move.w #$3c,-(sp) trap #1 ;Fcreate addq.l #8,sp move.w d0,handleo bmi error ;error loop: move.l buflen,d0 movea.l memstrt,a0 adda.l d0,a0 ;Use Upper half of the buffer move.l a0,-(sp) ;Buffer move.l d0,-(sp) ;Count move.w handlei,-(sp) move.w #$3f,-(sp) trap #1 ;Fread addq.l #8,sp movea.l (sp)+,a0 ;Buffer pointer move.l d0,buflen bmi error ;error beq endoffile >PART movea.l memstrt,a1 ;Outputpointer lea decrntab,a2 ;Table with decrunched offsets move.l buflen,d0 clr.l d1 clr.b byte1 ;Last byte start with 0 crnloop: move.b (a0)+,d1 ror.l #4,d1 bclr #3,d1 beq.s crn_1 ;Was not Negative move.b 0(a2,d1.w),d1 sub.b d1,byte1 bra.s crn_2 crn_1: move.b 0(a2,d1.w),d1 add.b d1,byte1 crn_2: move.b byte1,(a1)+ clr.b d1 rol.l #4,d1 bclr #3,d1 beq.s crn_3 ;Was not Negative move.b 0(a2,d1.w),d1 sub.b d1,byte1 bra.s crn_4 crn_3: move.b 0(a2,d1.w),d1 add.b d1,byte1 crn_4: move.b byte1,(a1)+ subq.l #1,d0 bne crnloop ENDPART move.l memstrt,-(sp) move.l buflen,d0 lsl.l #1,d0 ;*2 move.l d0,-(sp) move.w handleo,-(sp) move.w #$40,-(sp) trap #1 adda.l #$0c,sp tst.l d0 bmi error bra loop closeall: >PART move.l memstrt,-(sp) move.w #$49,-(sp) trap #1 ;Mfree addq.l #6,sp move.w handlei,-(sp) ;Sluit Invoerbestand move.w #$3e,-(sp) trap #1 ;Fclose addq.l #4,sp move.w handleo,-(sp) ;Sluit Uitvoerbestand move.w #$3e,-(sp) trap #1 ;Fclose addq.l #4,sp rts ENDPART endoffile: >PART bsr closeall clr.w d0 ;Geen fouten bra.s return ENDPART error: >PART bsr closeall move.w #-1,d0 ;Error ENDPART return: movem.l (sp)+,d1-d7/a2-a6 rts DATA decrntab:: IBYTES 'DECRNTAB.BIN' BSS buflen: DS.L 1 ;Lengte van de buffer memstrt: DS.L 1 ;Start van de buffer handlei: DS.W 1 ;handle nr inputfile handleo: DS.W 1 ;handle nr outputfile byte1: DS.W 1 END Replay move.w d0,sam_rate move.w d1,norm_crn move.l a0,-(sp) ;Stack sample filename move.l #-1,-(sp) move.w #$48,-(sp) ;Free memory trap #1 ;Malloc addq.l #6,sp move.l d0,memfree move.l d0,-(sp) move.w #$48,-(sp) ;Reserve all free memory trap #1 ;Malloc addq.l #6,sp move.l d0,memstrt ;Start of free memory movea.l (sp)+,a0 ;restore sample filename clr.w -(sp) ;Readonly move.l a0,-(sp) ;Filename move.w #$3d,-(sp) trap #1 ;Fopen addq.l #8,sp bmi desktop ;Error opening file move.w d0,handle move.l memstrt,-(sp) ;Buffer address move.l memfree,-(sp) ;Buffer length move.w handle,-(sp) ;File handle nr move.w #$3f,-(sp) trap #1 ;Fread adda.l #$0c,sp tst.l d0 bmi desktop ;Error reading file movea.l memstrt,a0 ;Begin Samplebuffer clr.w crn_4+2 ;Start byte = 0 move.l a0,crn_1+2 ;Sample read ptr move.l a0,crn_6+2 ;Loop/Reset ptr move.l a0,norm_int_1+2 move.l a0,norm_int_3+2 adda.l d0,a0 ;Start + length -> end of Sample file move.l a0,crn_2+2 move.l a0,norm_int_2+2 move.w handle,-(sp) move.w #$3e,-(sp) trap #1 ;Fclose addq.l #4,sp move.w sam_rate,d0 lea freq,a0 move.b 0(a0,d0.w),cur_freq ;Initialiseer Sample frequentie pea initsc ;Initialiseer Soundchip move.w #$26,-(sp) trap #14 ;Supexec addq.l #6,sp pea timer move.w #$26,-(sp) trap #14 ;Supexec addq.l #6,sp conin2: move.w #2,-(sp) ;Console move.w #2,-(sp) trap #13 ;Bconin addq.l #4,sp swap d0 ;Give me the scancode cmpi.b #1,d0 ;ESC key ? beq.s q_loop cmpi.b #$50,d0 ;Downkey bne.s conin2_1 addi.b #1,cur_freq bra.s conin2_3 conin2_1: cmpi.b #$48,d0 ;Upkey bne.s conin2_2 subi.b #1,cur_freq bra.s conin2_3 conin2_2: cmpi.b #$02,d0 ;1 bmi.s conin2 ;Key not used cmpi.b #$09,d0 bpl.s conin2 subq.w #2,d0 andi.w #$ff,d0 ;High byte could be undefined ? lea freq,a0 move.b 0(a0,d0.w),cur_freq conin2_3: pea update_freq move.w #$26,-(sp) trap #14 ;Supexec addq.l #6,sp bra.s conin2 q_loop: pea de_timer move.w #$26,-(sp) trap #14 ;Supexec addq.l #6,sp desktop: move.l memstrt,-(sp) move.w #$49,-(sp) trap #1 ;Mfree addq.l #6,sp rts ;Back to the main menu update_freq: move.b cur_freq,d0 cmp.b $fffffa1f.w,d0 beq.s update_freq_1 cmpi.b #30,d0 bcs.s update_freq_1 clr.b $fffffa19.w move.b d0,$fffa1f move.b #1,$fffffa19.w update_freq_1: rts initsc: move sr,-(sp) andi #%1111100011111111,sr ;Disable all interrupts lea initsc_table(pc),a0 initsc_1: move.w (a0)+,d0 bmi.s initsc_2 move.b d0,$ffff8800.w ;Register move.w (a0)+,d0 move.b d0,$ffff8802.w ;Value bra.s initsc_1 initsc_2: move (sp)+,sr rts initsc_table: DC.W 0,$ff,1,$ff ;Gen A DC.W 2,$ff,3,$ff ;Gen B DC.W 4,$ff,5,$ff ;Gen C DC.W 6,0 DC.W 7,$ff ;Both ports are output DC.W 8,0,9,0,10,0 ;Volume control on all DC.W -1 ;End of table de_timer: move.b old07,$fffa07 move.b old09,$fffa09 move.b old0b,$fffa0b move.b old0f,$fffa0f move.b old13,$fffa13 move.b old19,$fffa19 move.b old1f,$fffa1f move.l newkey2+2(pc),$0118.w move.l old134,$0134.w move oldsr,sr rts timer: move.b $fffa07,old07 move.b $fffa09,old09 move.b $fffa0b,old0b move.b $fffa0f,old0f move.b $fffa13,old13 move.b $fffa19,old19 move.b $fffa1f,old1f move sr,oldsr andi #%1111100011111111,sr ori #$0500,sr move.l $0118.w,newkey2+2 move.l #new_key,$0118.w ;New keyboard interrupt move.l $0134.w,old134 ;In case of use move.l #crn_int,$0134.w ;New Timer A interrupt tst.w norm_crn ;Packed file bne.s timer_2 move.l #norm_int,$0134.w ;Normal file timer_2: clr.b $fffffa19.w ;Hold timer A move.b cur_freq,$fffa1f ;Data Reg timer A move.b #%100000,$fffffa07.w ;Enable TimerA move.b #%1000000,$fffffa09.w ;Enable Keyboard interrupt ori.b #%100000,$fffffa13.w ;Unmask TimerA ori.b #%1000000,$fffffa15.w ;Unmask Keyboard interrupt move.b #1,$fffa19 ;Start Timer A rts new_key: move #$2500,sr ;Reset interruptmask newkey2: jmp $00 norm_int: movem.l d0/a0,-(sp) lea norm_int(pc),a0 bclr #5,$fffffa0f.w ;Clear interrupt clr.w d0 norm_int_1: move.b $99999999,d0 ;Get new sample addq.l #1,norm_int_1+2-norm_int(a0) ;Increase sample ptr norm_int_2: cmpi.l #$99999999,norm_int_1+2-norm_int(a0) ;End of samplefile? bne.s norm_int_4 norm_int_3: move.l #$99999999,norm_int_1+2-norm_int(a0) ;Reset sample ptr norm_int_4: lsl.w #4,d0 ;For right table entry lea table(pc),a0 ;table(pc) > 8 bits adda.w d0,a0 ;so single D0 add move.l (a0)+,$ffff8800.w ;Channel A move.l (a0)+,$ffff8800.w ;Channel B move.l (a0)+,$ffff8800.w ;Channel C movem.l (sp)+,d0/a0 rte crn_int: movem.l d0/a0,-(sp) lea crn_int_3(pc),a0 ;Tool for fast access move.l a0,$0134.w ;Nxt Tmr A -> crn_int_3 bclr #5,$fffffa0f.w ;Clr int clr.w d0 crn_1: move.b $99999999,d0 ;Next sample move.w d0,crn_3+2-crn_int_3(a0) ;Lower nibble -> next interrupt addq.l #1,crn_1+2-crn_int_3(a0) ;Increase sample ptr lsr.b #4,d0 ;High nibble -> lower nibble move.b decrunchtab(pc,d0.w),d0 ;Convert to sample offset crn_4: addi.b #$99,d0 ;Add to previous sample crn_int_4: move.w d0,crn_5+2-crn_int_3(a0) ;This is the new sample lsl.w #4,d0 ;Make right entry lea table(pc,d0.w),a0 ;ptr to soundtable move.l (a0)+,$ffff8800.w ;Reg A soundchip move.l (a0)+,$ffff8800.w ;Reg B move.l (a0)+,$ffff8800.w ;Reg C movem.l (sp)+,d0/a0 rte ;************************************* ; Decrunch table not in DATA ; because of pc relative (fast) ; access decrunchtab: incbin decrntab.bin ;************************************* crn_int_2: crn_6: move.l #$99999999,crn_1+2-crn_int(a0) ;Reset sample ptr clr.w crn_4+2-crn_int(a0) ;First sample = NULL bra.s crn_int_5 ;quick RTS crn_int_3: movem.l d0/a0,-(sp) ;Gebruikte Regs lea crn_int(pc),a0 ;Tool for fast access bclr #5,$fffffa0f.w ;Clear interrupt move.l a0,$0134.w ;Nxt Tmr A -> crn_int crn_3: move.b #$99,d0 ;Load sample andi.w #%1111,d0 ;Mask nibble move.b decrunchtab(pc,d0.w),d0 ;Calculate offset crn_5: addi.b #$99,d0 ;Add to last sample move.w d0,crn_4+2-crn_int(a0) ;Save the new sample crn_2: cmpi.l #$99999999,crn_1+2-crn_int(a0) ;Test end of sample file beq.s crn_int_2 ;Yep, reinitialize variables crn_int_5: lsl.w #4,d0 ;Make entry lea table(pc,d0.w),a0 ;ptr to soundtable move.l (a0)+,$ffff8800.w ;Reg A soundchip move.l (a0)+,$ffff8800.w ;Reg B move.l (a0)+,$ffff8800.w ;Reg C movem.l (sp)+,d0/a0 rte table: incbin table.bin section DATA freq: DC.B 123,82,61,49,41,35,31 section BSS memfree: DS.L 1 memstrt: DS.L 1 sam_rate: DS.W 1 norm_crn: DS.W 1 handle: DS.W 1 old134: DS.L 1 oldsr: DS.W 1 old07: DS.B 1 old09: DS.B 1 old0b: DS.B 1 old0f: DS.B 1 old13: DS.B 1 old19: DS.B 1 old1f: DS.B 1 cur_freq: DS.B 1 END WTK/?]Tb@/Rg`LPoklfcTWHJSUBKX?MCA= ?G˯аǷȺĤۿ /4 <>/0 +?37C86??BHDOB?33(Replay move.w d0,sam_rate move.w d1,norm_crn move.b d2,loop move.l a0,-(sp) ;Stack sample filename move.l #-1,-(sp) move.w #$48,-(sp) ;Free memory trap #1 ;Malloc addq.l #6,sp move.l d0,memfree move.l d0,-(sp) move.w #$48,-(sp) ;Reserve all free memory trap #1 ;Malloc addq.l #6,sp move.l d0,memstrt ;Start of free memory movea.l (sp)+,a0 ;restore sample filename clr.w -(sp) ;Readonly move.l a0,-(sp) ;Filename move.w #$3d,-(sp) trap #1 ;Fopen addq.l #8,sp bmi desktop ;Error opening file move.w d0,handle move.l memstrt,-(sp) ;Buffer address move.l memfree,-(sp) ;Buffer length move.w handle,-(sp) ;File handle nr move.w #$3f,-(sp) trap #1 ;Fread adda.l #$0c,sp tst.l d0 bmi desktop ;Error reading file movea.l memstrt,a0 ;Begin Samplebuffer bsr setup move.w handle,-(sp) move.w #$3e,-(sp) trap #1 ;Fclose addq.l #4,sp move.w sam_rate,d0 lea freq,a0 move.b 0(a0,d0.w),cur_freq ;Initialiseer Sample frequentie pea initsc ;Initialiseer Soundchip move.w #$26,-(sp) trap #14 ;Supexec addq.l #6,sp pea timer move.w #$26,-(sp) trap #14 ;Supexec addq.l #6,sp conin2: move.w #2,-(sp) ;Console move.w #2,-(sp) trap #13 ;Bconin addq.l #4,sp swap d0 ;Give me the scancode cmpi.b #1,d0 ;ESC key ? beq.s q_loop cmpi.b #$50,d0 ;Downkey bne.s conin2_1 addi.b #1,cur_freq bra.s conin2_3 conin2_1: cmpi.b #$48,d0 ;Upkey bne.s conin2_2 subi.b #1,cur_freq bra.s conin2_3 conin2_2: cmpi.b #$02,d0 ;1 bmi.s conin2 ;Key not used cmpi.b #$09,d0 bpl.s conin2 subq.w #2,d0 andi.w #$ff,d0 ;High byte could be undefined ? lea freq,a0 move.b 0(a0,d0.w),cur_freq conin2_3: pea update_freq move.w #$26,-(sp) trap #14 ;Supexec addq.l #6,sp bra.s conin2 q_loop: pea de_timer move.w #$26,-(sp) trap #14 ;Supexec addq.l #6,sp desktop: move.l memstrt,-(sp) move.w #$49,-(sp) trap #1 ;Mfree addq.l #6,sp rts ;Back to the main menu include replay.lib memfree: DS.L 1 memstrt: DS.L 1 sam_rate: DS.W 1 handle: DS.W 1   '+&!   #+.+" ο )6?;.!        !  ##"(8JRJ@==4   &++0;?4)   !"  setup clr.w crn_4+2 ;Start byte = 0 move.l a0,crn_1+2 ;Sample read ptr move.l a0,crn_6+2 ;Loop/Reset ptr move.l a0,norm_int_1+2 move.l a0,norm_int_3+2 adda.l d0,a0 ;Start + length -> end of Sample file move.l a0,crn_2+2 move.l a0,norm_int_2+2 tst.b loop beq s2 move.l a0,norm_int_3+2 move.l a0,crn_6+2 ;Loop/Reset ptr s2 rts update_freq: move.b cur_freq,d0 cmp.b $fffffa1f.w,d0 beq.s update_freq_1 cmpi.b #30,d0 bcs.s update_freq_1 clr.b $fffffa19.w move.b d0,$fffa1f move.b #1,$fffffa19.w update_freq_1: rts initsc: move sr,-(sp) andi #%1111100011111111,sr ;Disable all interrupts lea initsc_table(pc),a0 initsc_1: move.w (a0)+,d0 bmi.s initsc_2 move.b d0,$ffff8800.w ;Register move.w (a0)+,d0 move.b d0,$ffff8802.w ;Value bra.s initsc_1 initsc_2: move (sp)+,sr rts initsc_table: DC.W 0,$ff,1,$ff ;Gen A DC.W 2,$ff,3,$ff ;Gen B DC.W 4,$ff,5,$ff ;Gen C DC.W 6,0 DC.W 7,$ff ;Both ports are output DC.W 8,0,9,0,10,0 ;Volume control on all DC.W -1 ;End of table de_timer: move.b old07,$fffa07 move.b old09,$fffa09 move.b old0b,$fffa0b move.b old0f,$fffa0f move.b old13,$fffa13 move.b old19,$fffa19 move.b old1f,$fffa1f move #$777,$ff8240 move.l newkey2+2(pc),$0118.w move.l old134,$0134.w move oldsr,sr rts timer: move.b $fffa07,old07 move.b $fffa09,old09 move.b $fffa0b,old0b move.b $fffa0f,old0f move.b $fffa13,old13 move.b $fffa19,old19 move.b $fffa1f,old1f move #$777,$ff8240 move sr,oldsr andi #%1111100011111111,sr ori #$0500,sr move.l $0118.w,newkey2+2 move.l #new_key,$0118.w ;New keyboard interrupt move.l $0134.w,old134 ;In case of use move.l #crn_int,$0134.w ;New Timer A interrupt tst.w norm_crn ;Packed file bne.s timer_2 move.l #norm_int,$0134.w ;Normal file timer_2: clr.b $fffffa19.w ;Hold timer A move.b cur_freq,$fffa1f ;Data Reg timer A move.b #%100000,$fffffa07.w ;Enable TimerA move.b #%1000000,$fffffa09.w ;Enable Keyboard interrupt ori.b #%100000,$fffffa13.w ;Unmask TimerA ori.b #%1000000,$fffffa15.w ;Unmask Keyboard interrupt move.b #1,$fffa19 ;Start Timer A rts new_key: move #$2500,sr ;Reset interruptmask newkey2: jmp $00 norm_int: movem.l d0/a0,-(sp) lea norm_int(pc),a0 bclr #5,$fffffa0f.w ;Clear interrupt clr.w d0 norm_int_1: move.b $99999999,d0 ;Get new sample addq.l #1,norm_int_1+2-norm_int(a0) ;Increase sample ptr norm_int_2: cmpi.l #$99999999,norm_int_1+2-norm_int(a0) ;End of samplefile? blt.s norm_int_4 norm_int_3: move.l #$99999999,norm_int_1+2-norm_int(a0) ;Reset sample ptr norm_int_4: lsl.w #4,d0 ;For right table entry lea table(pc),a0 ;table(pc) > 8 bits adda.w d0,a0 ;so single D0 add move.l (a0)+,$ffff8800.w ;Channel A move.l (a0)+,$ffff8800.w ;Channel B move.l (a0)+,$ffff8800.w ;Channel C n_end movem.l (sp)+,d0/a0 rte crn_int: movem.l d0/a0,-(sp) move #$70,$ff8240 lea crn_int_3(pc),a0 ;Tool for fast access move.l a0,$0134.w ;Nxt Tmr A -> crn_int_3 bclr #5,$fffffa0f.w ;Clr int clr.w d0 crn_1: move.b $99999999,d0 ;Next sample move.w d0,crn_3+2-crn_int_3(a0) ;Lower nibble -> next interrupt addq.l #1,crn_1+2-crn_int_3(a0) ;Increase sample ptr lsr.b #4,d0 ;High nibble -> lower nibble move.b decrunchtab(pc,d0.w),d0 ;Convert to sample offset crn_4: addi.b #$99,d0 ;Add to previous sample crn_int_4: move.w d0,crn_5+2-crn_int_3(a0) ;This is the new sample lsl.w #4,d0 ;Make right entry lea table(pc),a0 ;ptr to soundtable adda d0,a0 move.l (a0)+,$ffff8800.w ;Reg A soundchip move.l (a0)+,$ffff8800.w ;Reg B move.l (a0)+,$ffff8800.w ;Reg C movem.l (sp)+,d0/a0 rte ;************************************* ; Decrunch table not in DATA ; because of pc relative (fast) ; access decrunchtab: incbin decrntab.bin ;************************************* crn_int_2: tst.b loop move #$700,$ff8240 crn_6: move.l #$99999999,crn_1+2-crn_int(a0) ;Reset sample ptr clr.w crn_4+2-crn_int(a0) ;First sample = NULL bra.s crn_int_5 ;quick RTS crn_int_3: movem.l d0/a0,-(sp) ;Gebruikte Regs move #$77,$ff8240 lea crn_int(pc),a0 ;Tool for fast access bclr #5,$fffffa0f.w ;Clear interrupt move.l a0,$0134.w ;Nxt Tmr A -> crn_int crn_3: move.b #$99,d0 ;Load sample andi.w #%1111,d0 ;Mask nibble move.b decrunchtab(pc,d0.w),d0 ;Calculate offset crn_5: addi.b #$99,d0 ;Add to last sample move.w d0,crn_4+2-crn_int(a0) ;Save the new sample crn_2: cmpi.l #$99999999,crn_1+2-crn_int(a0) ;Test end of sample file bge.s crn_int_2 ;Yep, reinitialize variables crn_int_5: lsl.w #4,d0 ;Make entry lea table(pc,d0.w),a0 ;ptr to soundtable move.l (a0)+,$ffff8800.w ;Reg A soundchip move.l (a0)+,$ffff8800.w ;Reg B move.l (a0)+,$ffff8800.w ;Reg C movem.l (sp)+,d0/a0 rte even table: incbin table.bin freq: DC.B 123,82,61,49,41,35,31 even norm_crn: DS.W 1 loop ds.b 1 old134: DS.L 1 oldsr: DS.W 1 old07: DS.B 1 old09: DS.B 1 old0b: DS.B 1 old0f: DS.B 1 old13: DS.B 1 old19: DS.B 1 old1f: DS.B 1 cur_freq: DS.B 1   .  t6..  tANTI IMGt 7ANTI S t 8HINSTALLAS t >INSTALLPS t APHNX_BT S t EPHNX_BT IMGt GAGRABOOTS t HINSTALLBS t MBOOT S t PG This Anti-Virus beeps and fHz?< NAA"xC$I0<2S@jA CNA rA"!rHz?< NAO prQQNuNV?. zPNTH x2<pXQ|4f$ x `8byflACL2<nf\Q` xC AC(2<w Q/</</8?<NN?<B?<?.B/8?< NNO"`>"|@ Qw |    prQQ QwLN^Nulashes if the actual bootsector is executeable then that might be a Virus! remove this anti-Virus by reset!   ")(   (/1!  "++$%   ! &+&#)-+%   '(  "#   $)'$"&-, '/*     &&%$ ,0,(&'#$(($   $)' * The classic ANTIVIRUS!!! (English) * Coded by 'HN0' (?) * Disassembled and commented by Agrajag. (Before I got bored with it.) * BIG IMPORTANT NOTE- I TAKE ABSOLUTELY NO RESPONSIBILITY IF YOU MUCK THE * CODE UP AND THE CODE SUBSEQUENTELY MUCKS UP YOUR DISKS!!! * OTHER BIG IMPORTANT NOTE - THIS IS NOT THE ORIGINAL CODE, IT WAS * COMPLETELY DISASSEMBLED BY MYSELF!!!! ; A lot of the comments were done here before I fully understood what was ; going on, so here is a brief rundown of what goes on... ; (1) Bootsector is loaded from disk. (No programming effort needed here.) ; (2) Bootsector is copied to some safe bit in memory. ; (3) We jump to that bit of memory and re-route the BPB vector. ; (4) We return to system. ; Now I bet you want to know what the re-route of the BPB vector is all in ; aid of. (Probably not, but I'll assume you do anyway.) Well, the BPB is ; accessed every time the directory is read. SO, whenever the directory ; is read, this is what our antivirus does: ; (1) Reads the old GSX-related 1024 byte/pointer to autoexec ; path/bootsector buffer, which is found by reading $4c6.l ; (2) Add up all the sector data. If it comes to $1234, it's a clean ; bootsector. (? ! I thought it was supposed to do that anyway if ; it was a proper bootsector!!!!) ; (3) If it's clean then copy itself to that bootsector. ; (4) If not, and it's not our antivirus, then flash screen, and sound ; warning tone. ; This isn't reset-proof, but since it was not intended as a nasty virus, ; this doesn't seem too important. It can be done reasonably easily though, ; but DON'T YOU DARE!!!!! opt o+,ow- Optimisation on. start bra.s code dc.b 'by HN0' Ego-trip 'loader' dc.b '@',0 Bootsector data. ds.w 1 dc.b $02,$02,$01,$00,$02,'p',$00,$D0 dc.b $02,$F9,$05,$00,$09,$00,$01,$00 ds.w 1 * This text is in the bit which isn't used by the bootsector (as far as I * can see.) When Fastcopy formats a disk, it stamps it's name right here! * Now I bet you always wanted to know that, eh? No, I though not. text1 dc.b 'This Anti-Virus beeps and f',0 code pea text1(pc) First bit of text... move #9,-(a7) (Next bit will be shown if the trap #1 ..program works OK!) lea start(pc),a0 Get the start of the bootsector movea.l $4c6,a1 lea $600(a1),a1 Some safe bit in memory... ($ac6?) movea.l a1,a2 move #$100,d0 Copy whole bootsector.... .cloop1 move (a0)+,(a1)+ subq #1,d0 bpl.s .cloop1 lea main(pc),a0 lea start(pc),a1 suba.l a1,a0 adda.l a0,a2 jmp (a2) And continue there main lea oldvec(pc),a0 Save old Hd_Bpb vector move.l $472,(a0) lea newvec(pc),a0 Put in new virus one! move.l a0,$472 pea text2(pc) If that works, print the rest of the text. move #9,-(a7) trap #1 lea 12(a7),a7 moveq #$f,d0 Wait a bit.... .wait1 moveq #-2,d1 This pause bit really pisses me off! .wait2 dbf d1,.wait2 dbf d0,.wait1 rts And return to TOS... * This is memory resident BPB vector which does all the spreading. And the * really confused comments start right here! newvec link a6,#0 Link a6 to stack with offset of 0. (I never really understood that command....) move 8(a6),-(a7) I think this is the drive no... movea.l oldvec(pc),a0 jsr (a0) First jump THROUGH old vector addq.l #2,a7 MMMMmmm... add a WORD value onto the stack? Somebody please tell me why?? movem.l a0-a1/d0-d1,-(a7) movea.l $4c6,a0 That's some old disk buffer? move #$ff,d1 Strange.... moveq #0,d0 Hmmm.... .chksum add.w (a0)+,d0 Now it's adding something.... dbf d1,.chksum 512 times... A Sector? cmp #$1234,d0 Boot checksum? Oh, THAT'S what it does! bne.s spread I assume this means a clean disk... movea.l $4c6,a0 cmpi.l #$60386279,(a0) Is it OUR antivirus? bne.s flash No? Then flash it! lea 30(a0),a0 lea text1(pc),a1 move.w #$6e,d1 .chk2 cmpm.l (a1)+,(a0)+ bne.s flash Another check..... dbf d1,.chk2 bra exit * The actual spreading bit. spread movea.l $4c6,a0 This is more than a GSX buffer, I can tell you... lea start(pc),a1 Start of bootsector.... move.l (a1)+,(a0)+ Copy the BRA... move.l (a1)+,(a0)+ ..and the ego trip 'loader' lea 22(a0),a0 jump 34 bytes ahead for the program lea text1(pc),a1 Now the program code... move #$77,d1 .cloop move.l (a1)+,(a0)+ ...And copy it. dbf d1,.cloop boot move.l #$ffff0001,-(a7) Don't change format but executable move.l #$1111111,-(a7) Random serial no move.l $4c6,-(a7) Buffer in $4c6 move #$12,-(a7) Proboot trap #14 write move #1,-(a7) Write one sector clr.l -(a7) Side 0 track 0 move #1,-(a7) Sector 1- the bootsector move 8(a6),-(a7) Whatever drive clr.l -(a7) Dummy move.l $4c6,-(a7) Buffer in $4c6 move #9,-(a7) Flopwr call trap #14 lea 34(a7),a7 Fix the stack bra.s exit flash movea.l #$ff8240,a1 eori #$777,(a1) Invert colour movea.l #$ff8800,a0 Now we muck about with the sound.... move.l #$5000100,(a0) BIIIIIiiiiiinnnnngggggggg....... move.l #$a001000,(a0) move.l #$c00a000,(a0) move.l #$700fb00,(a0) move.l #$d000000,(a0) moveq #4,d0 Wait a bit .wait1 moveq #-3,d1 .wait2 dbf d1,.wait2 dbf d0,.wait1 eori #$777,(a1) Restore colour exit movem.l (a7)+,a0-a1/d0-d1 Restore registers. unlk a6 And a6 as well.. rts * The rest of the text.... text2 dc.b 'lashes',13,10 dc.b 'if the actual bootsector is executeable',13,10 dc.b 'then that might be a Virus!',13,10 dc.b 'remove this anti-Virus by reset!',13,10,0 oldvec ds.l 1 endv * And that's it....   $'&     -,! ")$      &$  '/& "  "# #'$!(*     !!  !"     * Antivirus Installer v1.0!! * Coded by Agrajag again!! (4/10/91) ; Installs the classic ANTIVIRUS onto any disk. ; This was coded from my PHOENIX installer, just to annoy a couple of ; friends of mine, who NEVER put antivirus bootsectors on their disks! loop pea crap1 move #9,-(sp) trap #1 addq.l #6,sp bsr waitkey cmp.b #$10,d0 Q for quit....? beq quit Quit then!!! bsr read_boot bsr make_boot bsr write_boot pea crap2 move #9,-(sp) trap #1 addq.l #6,sp bsr waitkey bra loop quit clr -(sp) trap #1 waitkey move #7,-(sp) trap #1 addq.l #2,sp swap d0 rts read_boot move.w #1,-(sp) read one sector... move.w #0,-(sp) on side 0 of the disk... move.w #0,-(sp) on track 0 of the disk... move.w #1,-(sp) and sector 1... Hey! A bootsector! move.w #0,-(sp) device: 0 for A etc.. clr.l -(sp) filler (unused) pea buffer move.w #8,-(sp) trap #14 add.l #20,sp tst.w d0 beq read_ok bra disk_error read_ok rts make_boot bsr copy_code move.w #1,-(sp) executable move.w #-1,-(sp) disk type no change move.l #-1,-(sp) same serial number pea buffer bootsector buffer move.w #18,-(sp) make boot trap #14 add.l #14,sp rts write_boot move.w #1,-(sp) write 1 sec move.w #0,-(sp) on side 0 move.w #0,-(sp) track 0 move.w #1,-(sp) sector 1- it's the bootsector again! (Oh shut up!) move.w #0,-(sp) drive A clr.l -(sp) pea buffer move.w #9,-(sp) trap #14 add.l #20,sp tst.w d0 error? beq wr_sc_ok bra disk_error wr_sc_ok rts disk_error pea err1 move #9,-(sp) trap #1 addq.l #6,sp bsr waitkey addq.l #2,sp bra loop copy_code lea bootdat,a0 lea buffer,a1 move #$6038,(a1)+ BRA instruction move #'by',(a1)+ Loader move.l #' HN0',(a1)+ adda.l #22,a1 .loop cmpa.l #bootend,a0 beq .end move.b (a0)+,(a1)+ bra .loop .end rts err1 dc.b 'DISK ERROR!!! ',13,10,13,10 crap1 dc.b 27,'EAntivirus Bootsector Installer v1.0',13,10,13,10 dc.b 'Press Q to quit, any other key to start.',13,10,13,10,13,10,0 crap2 dc.b 13,10,'Bootsector Installed. ',13,10 dc.b 'Press any key to restart.',13,10,0 bootdat incbin anti.img bootend even buffer ds.b 512 The bootsector store  #!   $""(01(  $04320+!"+'    %0>IHED7 ĺ$)--" !      !+386, &4?@4!       '8>8*#$# (-( $09>B=   5>3$  $-*(-/,% ǿ #   !'( ",10-%   $)/55-   !-4=B?.  %7=1" Ƽ ))* Phoenix Bootsector Installer v1.0!! * Coded by Agrajag again!! (4/10/91) ; Installs my Phoenix Bootsector v1.0 onto any disk. ; Just to explain, when I did a menu for Phoenix PD, I put a nice bootsector ; with menu number on it. It's NOT an official Phoenix PD piece of software, ; since they do not believe in putting their names over everything unless ; it's really necessary. I include it here because it allows you to put ; your own custom message on any normal bootsector, and also detects if the ; reset vector has been changed. (I don't know how successful this is, ; really!) ; Again, you can check in your AUTO programs that the bootsector exists, ; cause it puts #$1991 into $160.w loop pea crap1 move #9,-(sp) trap #1 addq.l #6,sp bsr waitkey cmp.b #$10,d0 Q for quit....? beq quit Quit then!!! bsr alter_message bsr read_boot bsr make_boot bsr write_boot pea crap2 move #9,-(sp) trap #1 addq.l #6,sp bsr waitkey bra loop quit clr -(sp) trap #1 waitkey move #7,-(sp) trap #1 addq.l #2,sp swap d0 rts alter_message pea crap3 move #9,-(sp) trap #1 addq.l #6,sp pea (bootext+1) move #9,-(sp) trap #1 addq.l #6,sp pea crap4 move #9,-(sp) trap #1 addq.l #6,sp bsr waitkey cmp.b #$15,d0 Key 'Y' pressed? bne .end pea crap5 move #9,-(sp) trap #1 addq.l #6,sp clr.l d0 pea message move #$a,-(sp) trap #1 addq.l #6,sp move.b d0,d1 subq #1,d0 lea (message+2),a0 lea (bootext+1),a1 .copy move.b (a0)+,(a1)+ dbf d0,.copy clr.b (a1) move.l #19,d0 lsr #1,d1 sub.b d1,d0 addi.b #32,d0 lea bootext,a1 move.b d0,(a1) .end rts read_boot move.w #1,-(sp) read one sector... move.w #0,-(sp) on side 0 of the disk... move.w #0,-(sp) on track 0 of the disk... move.w #1,-(sp) and sector 0... Hey! A bootsector! move.w #0,-(sp) device: 0 for A etc.. clr.l -(sp) filler (unused) pea buffer move.w #8,-(sp) trap #14 add.l #20,sp tst.w d0 beq read_ok bsr disk_error read_ok rts make_boot bsr copy_code move.w #1,-(sp) executable move.w #-1,-(sp) disk type no change move.l #-1,-(sp) same serial number pea buffer move.w #18,-(sp) trap #14 add.l #14,sp rts write_boot move.w #1,-(sp) 1 sector to write move.w #0,-(sp) on side 0 move.w #0,-(sp) track zero move.w #1,-(sp) sector 1 (not zero) move.w #0,-(sp) drive A clr.l -(sp) pea buffer move.w #9,-(sp) trap #14 add.l #20,sp tst.w d0 error? beq wr_sc_ok bra disk_error wr_sc_ok rts disk_error cmp.w #-17,d0 beq insert cmp.w #-13,d0 beq write cmp.w #-2,d0 beq drive tst.w d0 bmi diskerr rts drive pea err4 bra dend write pea err3 bra dend insert pea err2 bra dend diskerr pea err1 dend move #9,-(sp) trap #1 addq.l #6,sp bsr waitkey addq.l #2,sp bra loop copy_code lea bootdat,a0 lea buffer,a1 move #$6038,(a1)+ BRA instruction move #'by',(a1)+ Loader move.l #' AGR',(a1) lea (buffer+$3a),a1 .loop cmpa.l #bootend,a0 beq .end move.b (a0)+,(a1)+ bra .loop .end rts err1 dc.b 'Oh no! A bloody disk error!!! ',13,10,13,10,0 err2 dc.b 'Please insert the disk first!! ',13,10,13,10,0 err3 dc.b 'This disk is write protected ',13,10,13,10,0 err4 dc.b 'Funny.. This drive doesn''t exist..',13,10,13,10,0 crap1 dc.b 27,'EPhoenix PD Bootsector Installer v1.0',13,10,13,10 dc.b 'Coded by Agrajag (1/10/91).',13,10,13,10 dc.b 'Press Q to quit, any other key to start.',13,10,13,10,13,10,0 crap2 dc.b 13,10,'Bootsector Installed. ',13,10 dc.b 'Press any key to restart.',13,10,0 crap3 dc.b 'Do you wish to alter the current text?',13,10,13,10 dc.b '-----------------------------------------',13,10,0 crap4 dc.b 13,10,'-----------------------------------------' dc.b 13,10,13,10,13,10,0 crap5 dc.b 'Enter New text here-',13,10 dc.b '*****************************************',13,0 bootdat incbin phnx_bt.img bootend bootext equ bootdat+$7d buffer ds.b 512 The bootsector store message dc.b 40 dc.b 0 ds.b 40$%$* Phoenix Bootsector v1.0 Source Code 3/10/91 * Coded (in about 230 bytes) by Agrajag for my Phoenix PD menu. * Yes, it's pretty shit, but what do you expect for my first ever bootsector? ; Detects reset-resident routines- what a smartass I am!!! ; (No, only if the reset vector has been set.) ; It also puts #$1991 (The year, it was coded, dummy!) into $160, so you ; can check for that in your AUTO program to see it the boot has been ; changed, and put some code in to re-install it. ; See INSTALLP.S for details of how to install it. opt o+,ow- Optimisation on (ESSENTIAL this time!) ; pea colours <<<< If you want to test it. ; move #38,-(sp) ; trap #14 ; addq.l #6,sp ; clr -(sp) ; trap #1 opt p+ HAS to be pc relative! colours lea $ff8240,a5 move.l #500,d5 .cols move #17,-(sp) trap #14 addq.l #2,sp andi.l #$777,d0 move d0,(a5) dbf d5,.cols message1 move #$1991,$160.w Date-stamp it pea text(pc) move #9,-(sp) trap #1 addq.l #6,sp resvector cmpi.l #$31415926,$426 Reset-resident proggy? beq reset_prog bra error reset_prog pea text2(pc) move #9,-(sp) trap #1 addq.l #6,sp move #$700,(a5) rr move #7,-(sp) trap #1 addq.l #2,sp swap d0 cmp.b #$15,d0 Do you wish to clear the reset vector beq clear_r bra error clear_r clr.l $426 Clear reset-vector move.l 4,$70 reset error move #$777,(a5) ; move #7,-(sp) ; trap #1 ; addq.l #2,sp rts text dc.b 27,'E',27,'Y',32,(32+10),'AGRAJAGGY SNAZZY BOOTY!',0 ds.b 24 text2 dc.b 27,'Y',(32+11),(32+2),'THE RESET VECTOR HAS BEEN CHANGED!!!',27,'Y',(32+15),(32+12),'Clear it? (y/n)',0 bootend "**"   $  ((!!   "$'(# ! );FLQTTK7     #$    #*7?:%   #K@*<?<NNTw:Q1`HzP?< NA\ 1AY&&g`2Hzj?< NA\:?<NATH@<g` B&!p:wNuEY *AGRAJAGGY SNAZZY BOOTY!Y+"THE RESET VECTOR HAS BEEN CHANGED!!!Y/,Clear it? (y/n)  %' +7:+  -56:BJNF(; !  #(.6AG;"''''$"*2<@BHPP?η %+*     *--(*9BDB3  !%+) #2?HLRZ[Iķ"*)+9MQC$ #&'&   5O]XMKQO90&#4?EJRY\K%κ  * AGRABOOT v1.0 source code. ; Coded (mostly) by Agrajag in March 1992. ; Based upon some routines used in the 'English Antivirus' ; However, all other code is completely original! * use for testing it out purposes. ; pea code ; move #38,-(sp) ; trap #14 ; addq.l #6,sp ; clr -(sp) ; trap #1 opt o+,p+ Optimisation on, and pc-relative code start equ code-$1e start of bootsector. move #$7,$ffff8240 move #$777,$ffff8242 bsr.s clear_r check reset vector. pea text(pc) Nice text message move #9,-(sp) trap #1 addq.l #6,sp lea start(pc),a0 Get the start of the bootsector movea.l $4c6,a1 ST disk directory buffer. lea 3*512(a1),a1 Add bootsector + 2 FATS - safe place in memory. movea.l a1,a2 move #(512/4)-1,d0 Copy whole bootsector.... .cloop1 move.l (a0)+,(a1)+ into buffer dbf d0,.cloop1 lea install(pc),a0 Install bit. lea start(pc),a1 suba.l a1,a0 adda.l a0,a2 Work out where it compared in buffer. jmp (a2) and jump there... * Check reset vector - to see if it's set. If it is, offer to clear it. clear_r lea $426,a5 Reset vector move.l (a5),d0 cmpi.l #$31415926,d0 Is it set? bne.s .ok .shit move #$700,$ffff8240 Warning colours! pea clr(pc) move #9,-(sp) trap #1 move #7,-(sp) trap #1 addq #8,sp swap d0 cmp.b #$15,d0 Clear reset vector? bne.s .ok clr (a5) Clear it... move.l 4,$70 ...and reset! .ok rts * Install hdv_vec and flash colours! install lea oldhdv(pc),a0 Save old Hd_Bpb vector move.l $472,(a0) lea agravec(pc),a0 Put in AGRABOOT vector move.l a0,$472 moveq #7,d2 Flash colours. .wait1 moveq #-3,d3 .wait2 eori #$777,$ffff8240 invert colours dbf d3,.wait2 dbf d2,.wait1 rts And return to TOS... * AGRABOOT v1.0 hdv_vec routine. Called every time directory is read. ; It's pretty shitty now, since I understand how to do this a bit better, ; but what the hell, it's only version 1.0!!!!! agravec link a6,#0 Link a6 to stack (Don't ask- it's shit!) move 8(a6),-(a7) Push drive number on stack (and you thought it'd be 4(a7)!!!) movea.l oldhdv(pc),a0 jsr (a0) Jump through old hdv_vec to update bootsector. addq.l #2,a7 Correct stack movem.l a0-a2/d0-d4,-(a7) * Now to check whether a bootsector is executable or not. movea.l $4c6,a0 The STs own bootsector buffer move #256-1,d1 512 bytes/2 (We're using word values.) moveq #0,d0 Clear d0 for checksum .chksum add (a0)+,d0 Add up word values. dbf d1,.chksum cmp #$1234,d0 If they add up to $1234, then the bootsector is executable. bne exit If not, it's a clean disk... * Now check if it's OUR antivirus! move.l $4c6,a0 adda #(name-start)+2,a0 At this point, should be 'AGRABOOT' move.l (a0)+,d0 cmp.l #'AGRA',d0 Check 1st 4 letters... bne.s check move.l (a0)+,d0 cmp.l #'BOOT',d0 ...then next 4. beq exit * Check for virus. There are 2 pointers to a virus - trap #13 rwabs and * trap #14 flopwr. This is where we check for it. check movea.l $4c6,a0 bootsector store lea 512(a0),a2 end of bootsector moveq #0,d1 status flag move d1,d0 .loop1 add d0,d1 cmpa.l a0,a2 end of bootsector? beq.s get_ready time to flash colours! clr d0 cmpi #$3f3c,(a0)+ move.w command? bne.s .loop1 lea virtab(pc),a1 table of hex codes. .loop2 move (a0),d3 move (a1)+,d4 try 1 - trap #13 rwabs cmp. d3,d4 bne.s .again addq #1,d0 bra.s .loop2 .again move (a0)+,d3 move (a1)+,d4 try 2 - trap #14 floprd cmp d3,d4 bne.s .ok addq #1,d0 bra.s .loop2 .ok tst.b d0 beq.s .loop1 subq #1,d0 bra.s .loop1 virtab dc.w 4,9 dc.w $4e4d,$4e4e get_ready flash lea $ffff8240,a1 Get ready to flash colour! move (a1),d2 tst.b d1 Is alert flag raised. beq.s .ok If so, flash..... move #$700,(a1) RED - Suspicious!! bra.s .bing .... or .... .ok eori #$777,(a1) INVERT - executable but not suspicious .bing lea $ffff8800,a0 Now we muck about with the sound.... move.l #$5000100,(a0) BIIIIIiiiiiinnnnngggggggg....... move.l #$a001000,(a0) move.l #$c00a000,(a0) move.l #$700fb00,(a0) move.l #$d000000,(a0) moveq #4,d0 Wait a bit .wait1 moveq #-3,d1 .wait2 dbf d1,.wait2 dbf d0,.wait1 move d2,(a1) Restore background colour exit movem.l (a7)+,a0-a2/d0-d4 Restore registers. unlk a6 And free a6 from it's terrible ordeal! rts * The nice text message! text dc.b 27,'b1',27,'E ',27,'Y',(32+0),(32+15) name dc.b 'AGRABOOT!' dc.b 27,'Y',(32+7),(32+6),'Flashes if executable boot.' dc.b 27,'Y',(32+9),(32+11),'RED if suspicious.',0 ; Reset vector message. clr dc.b 27,'EReset vector set! Clear?',0 oldhdv ds.l 1 ; END OF CODE ------------------------------------------ó   )4;=;2(   '462,% ½  &19=:1# %(,22(   ! '+,-+ "-7BLOJB;0!   * Agraboot Installer v1.0!! * Coded by Agrajag again!! (4/10/91) ; Installs AGRABOOT onto any disk. ; This was coded from my PHOENIX installer, just to annoy a couple of ; friends of mine, who NEVER put antivirus bootsectors on their disks! loop pea crap1 move #9,-(sp) trap #1 addq.l #6,sp bsr waitkey cmp.b #$10,d0 Q for quit....? beq quit Quit then!!! bsr read_boot bsr make_boot bsr write_boot pea crap2 move #9,-(sp) trap #1 addq.l #6,sp bsr waitkey bra loop quit clr -(sp) trap #1 waitkey move #7,-(sp) trap #1 addq.l #2,sp swap d0 rts read_boot move.w #1,-(sp) read one sector... move.w #0,-(sp) on side 0 of the disk... move.w #0,-(sp) on track 0 of the disk... move.w #1,-(sp) and sector 1... Hey! A bootsector! move.w #0,-(sp) device: 0 for A etc.. clr.l -(sp) filler (unused) pea buffer move.w #8,-(sp) trap #14 add.l #20,sp tst.w d0 beq read_ok bra disk_error read_ok rts make_boot bsr copy_code move.w #1,-(sp) executable move.w #-1,-(sp) disk type no change move.l #-1,-(sp) same serial number pea buffer bootsector buffer move.w #18,-(sp) make boot trap #14 add.l #14,sp rts write_boot move.w #1,-(sp) write 1 sec move.w #0,-(sp) on side 0 move.w #0,-(sp) track 0 move.w #1,-(sp) sector 1- it's the bootsector again! (Oh shut up!) move.w #0,-(sp) drive A clr.l -(sp) pea buffer move.w #9,-(sp) trap #14 add.l #20,sp tst.w d0 error? beq wr_sc_ok bra disk_error wr_sc_ok rts disk_error pea err1 move #9,-(sp) trap #1 addq.l #6,sp bsr waitkey addq.l #2,sp bra loop copy_code lea bootdat,a0 lea buffer,a1 move #$601E,(a1)+ BRA instruction move #'by',(a1)+ Loader move.l #' AGR',(a1)+ adda.l #$1e-6,a1 .loop cmpa.l #bootend,a0 beq .end move.b (a0)+,(a1)+ bra .loop .end rts err1 dc.b 'DISK ERROR!!! ',13,10,13,10 crap1 dc.b 27,'EAGRABOOT v1.0 Bootsector Installer.',13,10,13,10 dc.b 'Press Q to quit, any other key to install.',13,10,13,10,13,10,0 crap2 dc.b 13,10,'Bootsector Installed. ',13,10 dc.b 'Press any key to restart.',13,10,0 even bootdat include agraboot.s bootend even buffer ds.b 512 The bootsector store     &,4>FJD0 Ŀ !*16;EKH?.#"# #%  !%!!(.2.% !! !,4:AITWN@4* ÷ &-351*'#&)#  '2<5-#     '-16@GD5"$# )7A=+    #((   # %**  .;9/! '/7==1  "       !#&# '.010* *6:3-/1,      #&$!   -99)  %/881*(&    .  tS..  tRADVERT PRG T?`?`Pack-IceI *L=,L|a*oMGLA "grѓg f``GP$]t***Ԋ**EL ;H ;C&NN&&Sj&n".扑&&SjN%a*d"ra$dCv !a"H@@Vҩ%QnNuf%Nurf%AQNuCtaTxr1 Hka1 Ag"CvtaTr1 HaBq jD`rptadpt?aBC@!!Q`R   ICE!>$|tP|x;1hAO-'fIfddFIvxBl=>&Xm:ن&٘IIfd%y ҂:k mYC /ʰJb`+A},h+E(k`|puwA xpPxdaZwK{zuoD/`:Pb3~l$T~`FHe~PghKg @MgOBr9j"N\#BH`( T^6 L C0D ՇwX!!:\>x N$ x ʴDBv PB,Z~+@fHzf#`Hh 0:1p!H  pwX  z0|(aB"Z_FJ u6?f ep v1 "ԏ Xl֙+ ./ p~tj̺uNT+_Ɣn ABgj+x@4V X} OoprD޿ Җ z5Dx^}"$W*Rphz4kn f8^F3 0{gANNJ'`Acl Hjr-D@ld=H} #809vf#n&ZH [1][SEf9?V t"_KX2Mm< V}],@IRO:HQ |<^2-H,_`EJx 2!Kl3tN M ( 2@P* {pC0~ "`:H w[3Ԁu @wp LؽHCo|m%5Ca? fLh0QW]g, PlnJ.ng0HRJjf$G/%I (4%_3+ ~GGGB?CB@Wnt1Hg"cc/ 0)g( _WS@kH2dq0$P4DBH%$Y2Pg 1pH-A%B 4~dGdEH_pv0F@}yg PVAg(HPBJWZ4 xjY3)u!9^ />8O2/naH0< <2N(a2~pv-3a #{HHzag ^"J,p@IfFpAR@ ~XUN( 7=|!B=G+gp3T`(rG"E |D]x$I"t Q'k"RGea~OF0 * *mfSG`V"_&B[NpZ#R$A`a [aLla촡-n]A=ASCc%*W8aeRT XX,#/ oGH!_ xLIƒgpc-"fk\&/ps_)ܜK8%HyEKjZ\G"Q2<8wp d*4; e/Ig4֨ɀˠP C`bXR@_f0֪ R2Ղg &Aeef @g0xpd Fv6Tb{g}(q @e&[lRP0Ba Ns V!Fh_0a8)JBj7MJAgxh*ڃ'd0ydD5րH?RB4 k! H݄ JxLC/E ˀLokRSpg^k:g ;/@?nO 7o `afBHQS/U@NA;BLѨ܄~p%՛bn Q_Hz&$A߁&B4$D@vv+N/=k)2"Uo JXSH@DyrΉAj 0fp\@`p: a<0xQFVhO]@<q$ Ipa Ɵ?`F0R@f|0H[Fܝh/poHSn&I>Q7\SG?WNMXJk Q _t.&_/``=!D` `(`Jhf XJfuRRRRRR# @vH~8wG#P<5g2 `$3%f`"RAGr<`&D "ЀedpJ#ofcVRe达?3Ё0[A#8$Hȏ :CJE`SYEjT"_$P"2trDj0Ybkd~.A] Qj`Pax9a D a^ K"~g42 gk2&Hg"If de$` {*̑Yp sge>A``CcDwk+R5a(FxM4?Q-Kx$&ր ($$^*@47 P S`sg:" k#&Ac(bbrk7X`ؑ2+I3 Q&f-I$&nu4Q$ &l zahr Yv [AgSA_Aoa#4`a`Ba*.` a΁/C<(@HA?F&21i0d R@`a  HP?< NN\Nu0^Ҿ M / hawFHNE`RRDyBC?0Fz0MՐmeHfyJ5 \fA^A "HڸF5"Q2`'B͢" o_O/z.yAKNKZFeVKQI5$;y;-yxϏN052x՘9yIK&~\)6,Ds v$lՊ>h>i|BV ?_{|!<hHm=>,7q:t?{T^+J1>-g^`>5'lNSn.6-y.86)P:tևu097i9T3>|3#x}s9{WpYSf ďw9xd|co R>&ʼ%/ShЇx8:ƧRpAu ?އYM'>gAK ۃ[k89|oNQ"p?}X=ss>K͊}gn ZqƧyÇ|oPf޳qƧZuxٳ.S8>=-<>x9?W:=9X!|`>q Q 0ᗈx|8c89?nޏb ZqfsWO82? pY*$gvxϏ9`>Y{s ݇,c Z^xi5ӛgM?е)t} vFy3uCwvcWxCJ^u%p|u>w]|{pTWDڃsՇxC>z|:n8pGKq|!mʸAK3x/(a9(:s ;7ڃ> HI2/h˔u=nЇ850,NT$^F>#DO<.||7N)1r 3/hEf׷VV`3>,省lxe;??2` Zh^axвc9=B}I}s7R|">|D1-y%M:([͗0#7 [ɸ5Mɼ`Q,h#Շe|c?~`> $^І?0/hc๷?x>xB<8ƒ|Ն> ZEAK އ܆p8?^pPLE+h ꀍV9te-Hـd;\xP/S xt/SeԺٍ恧 ͞u. WR.Ii s#e^ ӓ+)/=+ eZqrSd7^]X;s]9)gaB\5 B^] XG0,Փ c YӒG 7 `r3f=sF~acx0KKuvt/NK.5a{)t<<k]&Ӓ xIN,Ρt߅9WN/Xމ5<,'WNO0օ6ހ'3-DZ:^^1[2Nn!wn<<<;Sọǀ𐃻b x%)XӉ9.|yR<9}fbщ9 )!<Ɓ}]toRCK+xpxON/7E^]nKuix0//7%<}<9^Js :2`^^mӤ xa/-1ۀnl\CSKxpxt.6%;0OEcE<=Gg^?m‹ xy.osS xPNxJqo ^2sSQǀ8o^^ƂWZ.vy<8x}XɅ%<4C{7$ͲuZ:x0$ہ7.:7jeПbu2rɅ<$L $d]<ݘYĆLIFǀŀD<فŃH']]^ˣ˦ E&LAFi)Ise)¹0A&瀦хG'&Ise\[ xxtXtitjxхǺhN9!y()SG' 6R u0 xx^z.NN?/.]]-@NsF%~:QA(!  !pL4)DdBb"['%Ra VQr Q&.[Ѹϋ8@@ D X`Ak`Nuwi~f ~2̛Vn~Uf@xl֍`dqf.ǩ;I)?ʛfGF .6oX044<zXrfS`jC򭅏jfeֆy;r`>e68 ,Yϱl`uˬl`7,nư`$*-,QZ ] Jm,7xՑ%&c:~YTFe<XX[k?|Y@~n~l6>x|>2669fpzˢ12lLH _?`lh n9#b`q;47܌cy#3|;nlX6n!8Q |>` Y`fBfxt;dfdP<~<8ʽ_ǖT[>M[f6308l~x83H~LRbs*x.pzvb *%?1 j||Tp`MkBGsc+q/} 4,(Š8 c||ⶋ+? >|$ fnnޜʱU鷰  ǀ[v6 fKC6X>n<4 ~| <0-ƀ`|&lf~o$Fz>f!K>>Z8 Qf0 >O~u&kHK# ^ ة1v|`l8f~pt0Vh[{ƒ ct(bA`G@@4ffp ~~pHHfX`f!.pׇ#tY1-zeL//Ex=8YQ]^P+J`^VG/6u{4< xWm]V]^,xd&xY#2ӞsE3wQ],xxty8لg%G", f. xA9xQLx5Ixxg ^^*a^%Ëutx \g&a>lfs,Xnvp(tamdfiageUfowdd3xB.P.Se1߸] 8 ODFRD%FAILSWORTH_ANTZ y35 9JUX xkYj w37!-Sn9;^5stU3.k(W,dIexys prssãu26.n<[}GUS+Ͻ}a86khLf\ ogn$+Y IrK?KJ(}"wM4^w) GPHICLi^okCxtwn}9Dig:mϸK& VO6ATIONgƀ,3< zsЌA/;x zθiff0Xs|3!)Gaw%`a(\8ۖ lSEARChSKutq|dh i`{mAީLoȰy02݀qt*0#xfurI(B¬08@BC>ar sYYUfԻY?pƬ tcHָViru}V9FILE- T,1:4ho1M‚SʑrGBf gjxdiska) kA8r爬<>F0;e-*hic这8daפeD` RESEdRIPPER(u.*geh 1OReN depkk.¬ +PZh=pp0i2WW*w@ sarinb ߳Grsi 32mxKvlʐa&by A=udIls4.95x Gpavaill98! mabovh#7halso-Hgh.xlrb{@ctac:`atf&Ylw2Mg adds:,3ÐMerlc PD811th send off for ProbeST V1.0 NOW! I yxJfHx*IZ UWAS DONQBY)AO O|ACF FOR 'RIDTHE SKY'~*e4`HJ9Ndv#d9SE <V&9TNm%*yKV@*j{K2Q"Jx^L 27޸BD'wJ!n.2j1|~J"2Ҋ 6Y$o4nLZY9fHԂ4&zQjTG)*!K.ѴߪZQjGLNuIXK"1;Sp҉ B`ӭu~"Qj$ ",7?+<`rh;OPSGG$ΔzPH譈VDϋCφHaZ@mMѥU3*d|j2X_RN(*`ZKb#t\^`TF\DmH1>,f.Q*n*` xxX#nn m7ΪQ<`#6x0J `n#3˯g{):0 ;yA4LH T*U: % g* gvI*YJm̙KDA0eFFvT J"E>!$PZ낵G͖eHa78OɛLqh*r9AԐu @arbtAAY{ >JK>F DCu ;@P$f K:Dᅉ6 5Tc-$e?"% dA/ dAhdA1R X")j|% R)-F?g\Ŭ +&dV Q'Yl5g 6H~828|:JLgUFnpNn<!?NIQA mr,ݕ + n:Qx(@h'OZ!."h.0I wf8c!I3H\nIJl, &~wjd^YT+IKGC?;852/,*'%#!7=X41ƻ}voib^YTOJGC?<952/,*'%#!w /:!,3"` rl!5 R2 xsH  : h px\@ߊ ZiX9+, lG˒ Q!2 iöy;!p8]^ЂWN! ,V#qA$A ^Vwd . BEG`Z^QaG; 6wd9aWNhLl# 0; IJOX^ ^$[ = =  xlC> ޔ +g01 2x34^5p6W87+89 AxBC^DoE:M% xc./H ,ܶ8Ď@ՎIЋ'C $آppppppPK`P@0' qs/' ,p`P@0 XWTxA ^Yw2Thadrs (c) Bakpo SoftwareGPsjcopy+buleavext intact.  @BWT *z fڀ! # .  td..  tRFIGGY PRGt elFIGGY DOCt k`QX`( PXXXX kf o*HWDLԁ.BNNNXN(N\BgN DNNVNqNq<N0Hx./.NHxpYHxNNB'N0N^.NuNNVNqNqNUN3' y'f:HyHz4BgNN N HyN\N BgN DN^NuCANNOT RUN FOR SOME REASON!NNVNqNqHzHnNhHzHnNHzHnNHzHnNHzHnNHzHnNHzHnNHnHy&?<NU?<Hy&N=_=nN^Nu[2][ Memory-config program | Written By | Wheee the fibble | Please choose | new configuration] [ 1/2 Meg | 1 Meg | 2 Meg ]NNVNqNqHzxHnNhHzHnNHzHnNHzHnNHzHnNHnHy&?<NU?<Hy&N=_=nN^Nu[1][ The Computer will now |  reset. Insert the disk you | want to boot with... ][ Reset | Cancel ] NNVNqNqNUN&3'09' @f#'`* @f#'` @f # 'UNj3' y'f/9'NVNN^NuNqNqNV-n n-P N^.NuNqNqNV-n "n"N^ _PNNqNqNV.9g:J.gYBNb#`Y/9Nb#N^ _TNNVHpr@m=@=A`Rn0.GGBBkBkB+7|B pr@m<=@=A`Rn0.HII89|BlBl0.nf0.nfLN^NuNqNqNVByByByByByB9NN^Nu#l?< NA\O. ylNNqNqNV3P3R3 T3 V3XHy$"0<NBN^ _O NNqNqNV?< Bg?<BgBgN~3pP=ypN^NuNqNqNV?<Bg?<BgBgN~N^NuNqNqNV#3 h?<4?<?<?<BgN~=ypN^ _\NNqNqNVHyP#0+S@rAm0=A=@`Rn0.r k 0?N|0.nfBkLN^.Nu# H?NATL/9 Nup a|@Nupa|?@NuAp  Qg pa|?@Nu _BpaTONNqNqNVHz2HzrNHyHz ?<NbHyHz?<NXN^Nu ConDevice(_#LDAH~#J9g$-mll$mb*//NڏJ9g+E// Bg?<JNA ataA0J9g m$ (ga"A,##NAa?<`Hz#NuJ9fAa~`ad&9g0Atad09>aFAuaTA|tJgaXHtaBaNuHz?<&NN\ONuxp<0<:m^a"QNuHQO ONB OaPONuga`H ?/<NM\OLNuBaF#3.y yB oN`?9?<LNAAH x2| hg"h$#Nup98tg xp4Ug p5Sgp6 xαd y$f y|?/``p7 o`Apa,#A0<a#Nu ypa y0</??<NMPONu Runtime error: at offset: ????. Not enough space for heap Accessory error"op a& g  # pQ..Nu/ H/N" mBHW/N _"_Nu3?` _?9ByNJyfNu _?9/N FNV/ Car"_BgJ)gTWHnp=aFdJ)gByBopa TBQBiNu _?HNALTJj 3DNpa,Jg.a$/</<?)p?a k 9fpratNu)<g 3<DNu g 3=DNu )g 3>DNup4<` pt`pt "o Jgj I0BX0BBB y"g4P"o/razatVL"o A Pf A#h` oa~f0)a#H fBQ`2a.e,aD2BJ)g3iJigJ9 ga`a _ Nа|am |zn| NuJ)g3iaNuJifH Bg/ iN3LNu2)if/Jfa$`a:e3@Bi _Nu??)/pBa$PONu/) ?)Bg?)p@a Nu/) ?)Bg?)p?a Nup?`QBNu2)ifNJifDNu/ "i 1"_NutN e0ae,< bRi`ae< cRi|PgRBN `BNu _"WN eae Ri|?NBgNLtN eafe< gRi|gRB `.NuL/N e a4eRi< fa$e < fRiNu2)/ "i "_RA3AifNNutpN e"?@o SBp aQ4`aQNNu4/"oApa _XONL4/a _\NL/A` L/A` t` t`t`t _"_BgJg$a^eg< gg< bRi`RNLpH0Q _PN"0 _"_/c)`QNu""_ _/prdPF`QNu"_  _#B P rҀ| kHp Pr N /gF^| y" "H Xb If"i`Jk""#hÉ#A"o"BB _PON?<8//N F/ L^|"Q yʳb`@ hbJk2#h"Ef #j ё!I$Hеf !i ѐ$_ _PN ypИ PdR"W.N yp` hd" j"W.N#"y gNp: y`2 _#"PCbp2` _mo` _XmXop3?/N FJlD-C"r \Y"gt/RlЁ`BNu;B@'d SETMEMORVINITALERT1&ALERT2jFIGGY\LPEEKLPOKESUPER0STPASCAL(SUPERbAPPL_INIAPPL_EXIFORM_ALEGEMDECLXOUTESCCLRSCRCONIOREADKEY2lWRITECHSYSTEM2XXIT FXHLT DXINICHKIORES REWRTEXT &RSETTEXT DEVICEP READLINE\WRLN WRSTRXNEWXHINIXMAXXSTKINTTEXTB2  &  ~ P  6 ."T$@"", V2(, " |   04   zP".$2F$6HT (               Figgy - memory configuration. Wheee the fibble. Sometime in 1991 (probably). Most people who program have 1meg or more. This is very nice for the programmer, but in order to test whether a program you've written works on a half meg you would have had to run Make512 and to test a 1 meg program Make1Meg. These programs were pretty good, but unfortunately there were a couple of niggles. First, there were seperate programs for each size. Second, you had to press the reset button yourself. So, I thought I'd write a little program which combined all of the Make programs and reset itself. And here it is! I won't bother explaining how to use it as it's Gemmed and pretty bloody obvious really. It seems to work ok as far as I can tell, and I've used with quite a lot of programs (even STOS doesn't muck things up which is rather surprising). But, I make no garantees about reliability or anything else, ok? Once you've reconfigured your machine it will stay in that memory set-up until you cold-boot, reset does NOT remove it! Well, I hope you find this little program useful. Bye Bye... Wheee the fibble .  tm..  tRRAZREZ DOCt nARAZREZ PRGt t Wheee the fibbles Razrez Music Player. Version 3.1 Liff ----- Don't you just hate having to search through chip music for that tune to go with your new screen/game/program? Don't you hate it when the music player you're using doesn't recognise a music driver and won't let you play it, or doesn't recognise the file because it's packed? Well, you're troubles are over! Just run my high-quality music player and your problems will fade to shadowy memories in seconds! Anyway... About ------ I wrote this program after becoming really annoyed at having to search through piles of disks to find any given piece of music seeing as the music players I had previously only dealt with one type (usually mad max) and didn't depack. So, being the nice chap I am, I took it upon myself to rectify the situation. Features --------- The program will recognise and play the following music drivers: Mad Max Count Zero Lap (old and new types) Big Alec Synth-Dream Chrispy Noodle 2 Whittakers LTK Ultimatum (Heavy Killers) Zound-Dragger Undead TAO (thanks to MUG UK for ripping this music off) Ralph (chip and digidrum) Xenex ...and perhaps one or two I've forgotten about. It will also depack files packed with the following packers: Ice v2.4 Fire v2.0 Atomik v3.3 + v3.5 Automation v5.? Usage ------ Using the program is pretty straight-forward, so I won't bother saying anything here. Technical ---------- The program recognises music drivers by searching for strings within the files. This has the advantage of being very fast and easy to do. Unfortunately it means that it is easy, if you wanted, to get it to recognise a file incorrectly. Say, for example, I had the string "TFMX" in a text file (like this one). My music driver searches for this string as a check for Mad Max music. So, it would think that this doc was a bit of music and try to play it! I know this is rather poor, but the program was designed for playing back music files and not to deal with idiots who spend their time loading docs into music programs. The program currently only with deals with 10 pieces of music in a given file. This was mostly due to one of the previous versions where I read the function keys F1 to F20 (shift F10). Now though, I just check FFFC02 for the keypress which unfortunately means that you are stuck at F10. This is only a problem for 1 music file that I am aware of, that is the music from The Killing Game 3how by Count Zero. As this was the only one I had with more than 10 tunes I decided not to change the program to deal with more. But if enough people ask me, or I get more music with more than 10 tunes then I may change it. Be warned! Some music drivers CAN have lot's of tunes within them, but crash if you try to play a bit of music that isn't there. This isn't a problem with most drivers, but some (Synth-Dream for instance) may reset or hang up if you try to play tunes that don't exist. You can also try to play different tunes on music files which always have one tune. I left this in because sometimes people change their drivers for one-off music files (like Count Zero), so I thought it would be a bad idea to disable it. The buffer which holds the loaded music file is 50k long. This is big enough to hold the largest music file I've come across (NINJA_T). After this buffer comes the data for the volume bars then a "safe" buffer where the original tune is kept for saving out to disk. If you try to load a music file bigger than 50k then the music bars will get corrupted and perhaps even the "safe" buffer, or the program as a whole, will bugger up. The player will recognise the extension ".SMF" or ".FRS" as being the Whittaker type which you call with an offset of +4. The ".SMF" extension is to remain compatible with "Noter" by Genesis Inc (I've found a very nasty bug in your program by the way). The ".FRS" was included because it's the extension I used to use for the same music type, but I will be phasing it out in version 4. A Plea ------- Please please please! In the future can everyone use the following extensions: Chip music : ".MUS" (or ".SMF" for odd +4 files) Digidrum : ".MUD" I've become really despondent with people using any old extension for the same music drivers and files just because of where you ripped it from. If I ripped a module from, say, the Darkside of the Spoon demo would I give it the extension ".ULM" or ".SPN"? No. I'd use ".MOD". So why do most people who rip chip music off from a demo give an extension like ".ACF" or ".KID"? Hmmm? HMMMMM? If you want to remind yourself of where it came from use a bloody folder! The Future ----------- In future versions of this program I will be adding: More music drivers (no surprises there) More depacker routs A better front-end Perhaps a re-write in GFA or ASM to make it smaller. An .ACC version (if I re-write it) Replay of soundtracker modules as well A driver "library" which you can add to or delete from. Me --- If there is anyone out there who knows of other drivers it would be worth adding, or would just like to make some suggestions, report bugs (there are a lot) or anything else, then please do get in touch. My address is: Wheee the fibble, 66 Highmains Ave, Dumbarton, Scotland, G82 2PT. or phone (0389) 64820 and ask for Billy. Useless --------             `?<NN @0<}BQ>NNJA6g|9HP?< NAPOAB a&MM +ЫЫA .GIJgrѓB(g<fG``GPN$^,,,,ܓ,,Cp$L(QGX /KN(K&YdB`BN/K ,HNRK&`:UgdCDE`$|a^g`|aVg E`&`| aDECI&4fLf&e|`@|a$J*g2P`f``BEg EQJENu&`|a84@HJ*fXF`.a2I|aʺ<m|ag |aEA`*`2P:`aDgt@IP$$Q` f&ed&fg^|avg &CrtfTATAQP`Q|aJgCpQP`QBC&&H&&M``NZ,Nu ``````Y %ATOMIK v3.5 by ALTAIR VMAX/MCS rtpx3sXҰ` ǁ9=2܏@x41OG 0~StoO8icmilerV1.byFrancoisLionet/d SDkc,FX:^Q!Gg}=)TRĤTDFq^h$(z}M48Vx$xw|ӇvP?PU33sws877 UM!kKؐ U/ ]0*BJgb]aY> fn*Z C&Jf(B0! HzCz@H Bf BA\K rmSn@؝2…8zǁ$$&.#CrXg &CB}$odds( ~T?;@lZ-8CSh)(*.Ep_3 ,MIG ߵkon|&#EhFK.Md+K.+S#2.Q6+kb:L¼ĮL ( џ(L  O$ι X@nirC'x.i\B@V+$HJv}Ͼ#$8b8dACL7,$)*-D}G&$(0.gdPQfW~aftݒ&Rd~:9 g׎k}t&в&&JGl=+нHbF\߳P X!y^E+JCh/P`&99l!$Bh\!B8gda^P %LPA$XN@*{;L8CڭbE=A!LI!#tC a.| DC,+I1$!;9Y&[D\@$H+@(Ӱd0/뛷eLDHH$&Ĕa$˘9 /,0,?_#Hȱ+l(<72;nרS݈"4ӬM$na/tK$b$欴 Q@90N{ 4 hr3nL4$bFvARm~yGN;q+yq!M ر,!LoÄ;\&,`EtQD?3zʆ>$R@ϒ h|J@L%hEQD+HC%*/uOP}^ ά9:=qE6CuR^.[Y<( kW'@.(ox' c~W0x\J@ghSNXB62! TkvXAiJ82Td3!ǙYA5A\Qu (RÅRqJVf720 f!O|d>Tl:ח9j?j |FoXBPcH `vc /]_wp|  yP滾 CiHJ)AЩuWҜ$I$ pJjgـ g%-gՒ:L#4{]G~CgE73#0A!L`~5\h:^eCX1m9's-?h=#nj& q3Gq , Q\I^?9s/,+ HzD?<>\Jf.mgA  /Ig/:u/ssP^7@ Ov"9AacB Cr'H}D!2k!(P!>(bGB}CCh)*!~gPUf2`3C'i!48Amo ?1{new:accload*defauleBnv keylist~A̗ze=|Ya0_C/z12Dz3A456Dz7A819=f2 :ҟbnb?If'4tC5pAwl؃_c@ԃWS?53zO}bԇ0DXgZ.n [PIsT^sT)k+)=ٟ9 S0 IP.FJ-R} 4 Ju0'6t`PHW'C@x ydȺ >FDmi짳Fꧫru3/R'?Ths&@5'#WBøG$tt^sxbb/;&<34d]y d}Js蚳OHJOth@"^/HuHP "r,{P \=YxXG~O#7itQ T#XC-*$gun&E}Esq9q\B 31,TRZǒR5+ L:Loq#4 t$wIFfȺइ(MPATxX/o\"MI/"5Q|AKd@$hS$9-M()4NS=>ꔣ *W Dl+RD,(UKkT}L1E'$HTLv(8Hpm-OMTDd)ILoh$lH][:eGAls:AA)F`z2t>,6 7)2'7Z7y/P-+JaF<\L{OpVu.Ot]cDOrcIEX".YD.qx\S9Bx'!Dɒ!ݭ|4NdV!Td%HR*L!*\ 2(@x#,DY#G(9 ^B#.+!%VI JZ%%KP%,AJp$ JZ"1(8T-qƬ a)]e^٦1UeߤJH%#DE RQ$$+Hd%GW *6Ћ!=#D L(0cE$+0w*bWD@ـ$ryD"葨d %E"0OJ>eD)#?. Q2$ @Fʄ0>@2B(@*x \P1|B!&! P(d$R C~ҸcX8*R@;:HP>Ǹq+V1ImK2kQUZa<̻xIdL 8Td#y^ >Fd$;Wntn0naxV0`=H~`^VGL`ZQ 6UA0 3 `,@0   hhG0*83K :vf&3OD[EL2ZV}2EZ)b b*,ɷޭ=o;8>O E AVe 뾰*z/uv*'*"~XvV"sֻAk*I9'P$" 2X{aPV@UaVxa:(KkUawfU*D 3/|J;)5ê ֧5oÂjЊ^9IބPVMkQrAF*(%mhE%,QgՓ\f}Y8uٜ(F@ +O"u8G:AI֑10e#3e1 |4BVh40mI>򗿩"ҧu:ԭ\^u (h3$zKf!)BBLb,0f*&KTE K(M@"NB 0p` @RZ,Pg=š96 (J Ǿt( 46 yhGD`'DZD*=Ik@c`LX@d }1-ĉ= 0%~!@Zeb$Hxr$`L-ytJ;\4 h$za0$=eUp@@n"mm@L"E AGX"%$XꐥY0` 7 1-0n!12 \wdޥM,B|΀5 Թ^jU ւ42tH@!4"eH@VDӠ4^ /"`!tD%z\(@&"AS C c X B(Br~# UE & BIJՄ@IrUyXJp'@!J&@PrP m/^і8 J!OD.Q! Q>-1Agra@IH :Z#?{[JD^K K`cv% 5"ŭEd@o`\4"¼MRCK S2T$D 4q0Ln4( 7S*ւPځ5Sks<"D3E{U ӡt.  J‘B5v`` уJFD2k6,b($CW Ҁi dh,];+F[,mmRGmoC(!܀iZ"JjFG?zx!eL &^ODO,T{.h(љQzB!n 첖mKb,@koJhPV̼Clͻ捆 >j jwj|ˠ"ua/Fzxˑ xSAM*?V]W$[;fGD$2ț]cӚ| u/ & |/fWX;{l,Y N@@? /M\6<&fhu2%N,NTa>MA;D~xEo!~Psz =2# 0 0p&` |I@xp "'<?2~3 q@|@<099@H r 8q GFL<` '@8<8>1818<@8Ă@8WK@1a.42TEOm lju,RkĴ>ؠ4{< u(^x@y4NsE0i7zRܩ1:k&/{Ѱ]wLm᝽r$&N&RR(R:Rj3), n< {[jUQc`)+2kR@4JPmk0R,7hEX$&g&"% C$) P# #ax! !U&E"G~óN'SGO<.?zp 'XGR؁D" 2S@(4k$k$MeJЭXx=:k&@O"@!(<+@(T&LXS!x&J.i+Iz:,7/: RXf!Γ~'l"pAN @\_#^kZ28\6dA_k) !^2e {Vѭ ,+J"J銻"r)JU2mFJ#64k#,,i|Ǧ™t0nUYJ:@zXFZ4dgJ#"^Җ"euQ`1pb ID! ? | evɏk:2,׫($^v6*SCk9DR+@+t/ /'?GlXG2:$+7ԛ2m9YBZҡ!CVu"/E&X2UAkT"c},t ᘉ:5F+f ( ,{.e:y܂azhB4sSA ?b.d C4Seq,SR "$F2 y-uau@]l 'tUhPJE,'ݨXTE'(U] 䁕 4 !P P-zskw0 S :4sڰu6Ő9"BuJ+K& 4 vX15QBNHT<$9|ߴ$CF"&$AYc~6I7"$/&I&yI DZ%v)fÂd&$W-ݑ)H$!8R#/2b,QPb͎Vu(՞±sC #YC~t+Dt/6/?49NNj7ut"!$rFvφbNE zQYb&$PtIڸg($D#H, `myG%LN?".(G@qqcld|ɦMtj$m֠c>+:Je[菱j63+aLSC%ԫȢ@ U7r@"rE v,Wy P6s$!l;3(\"#B]BdSD: "A $qOGЎr #ⶦjj^4j!O,sthu{ATEk"0-wt*EbX1:A oP7/:<uɷ1ps~@hPsșTß*RB ǎP5H {1@>1XG7tEtN2ƱtB-ÚBM btHR((GxXivJ>A0ŐŨ-t S@PjoTA^T?xR/A>1@xTJAc-;GS@S6Dn@GvH_QR `NX&bg_MUuc - j cTf NYb,bŶA>:123Fs3hOR A(T t6(q6$n2 blʧ wN|`7fDDzv@ JkdQKԊQ3Su"=J@\\6bJ(%^hnľ2 ~ܵ'[ .נ kfC BX#v @8(68A \CB<6=_bb*e&$e *=؎n(CLGƾ2 " Jz/P BwV0d똓`=t J!K&_w)>k"ou%8/]./ndyiq h''_G#kw[HĶg VB:=/B ",$_>%9Bgk54>"(O2|iJ,T*gt,N ? -L>%d"t%j4G ڙkpU,Θ -4 h;+8,qjT /&Ʃ'>@4y,!~BH^niǸze?PS@eךuz8z$^thmhR&&XzX< x?>*gK-~VA|2468:ԊFo_~+O1~ް~5gEv 624LL꒽|R eALNLW6m6*P& ڬΣadE+28Peeo6{h;1ePCRe9Ѝ^UlT(>RNn྽ nr =lB8WF@5V"oces|"g2劊Hy*T: 11fKxR(RRx*R#ʥ$X ੜ2w$[I6781t F XQzTQմ%|Bx(j"+zHz*VSAFBYPAb4\@fOkZt|*r|ܪ_'|;T3>eaAe[`pCm |_7#J|Z$ \/ɌeԻLRVjDUNS- N -޼W~ KYvXGTT{2C2hWW- 8>:ԈCqj{2dn(C T,D^3+u>QAɽf 2Ex`m<>śKe\ AoyH q. E/=GiSRe֩{imxňR>Vꘅ(9MB<_ h ;Z|pU!MAcXlW S;|Cmz Xe9@s"}yv Pzt@uOt1! LpZ"!OSEO_CǴUP~DOWASGBVIOUSARR|2DID?G!QQUERRETURNOK<%YσI=z ACt#y=T'/Wܠ+iܠ{ jPN :5hA6hz  #S{cȰmXNKY Fr(п>a-Z]Gn\Q/Z[sSGE 'Eo,6VD 1pzRPCAaRD$J1@u=4`D̅.6/z#+,V޿w䘓=ں;$-;EX 6.(kgazYs^Az9 'PR@v}v=LG<R&_$CJXC>D e84&s/sxCU%y 5池RD[<.T = 4O_K5X%"@`Hdfg0p B % l/OBC"jm704*67$Cf~8WH!?cy'^y JC163'?x,` z@e5(IE됽K H>y<:82C7ؖJA32`JB:jL%@GC(IeB;DbЏ/I2j?>9<S@g"P(}7z_zF*0H,H۰K/˃E6SA$A?)$"J:+"A@N9 $I8SDk"=TDZp)zg<yrR`QԀoPxT@k^k~R2"__&\'X@< t^LCph9>B-ס|At*^(^&$"^(^S}B\wh'pR@b#)r(;"F'tRBb$K4A=vӧC&C%xs`> ކ8G~m|@G A o nSh))P^oV^_lDE҅zwA`Ȓ܇Iǖ. xzl&o.iO,6|Q O*gqAl |ClLN Add &##n2&c n2D& @dtMF@dIMF@dܩMƞ@d (7t5&BSP n2B:QA0*hG]RA[*N*WteM  , ZĂ7 x<7SL,Aߙqδn 8meY(<ĄMA<ʼnOƉqS0O*Q ALF!k*8֩@o%)R Hy^(]Iض Z*[rPMoҘ"\%qXwN TĖ 訐{IȎs:4P}mKt *А!^!+@>T".׶A&2 Mt@A+DuIAO-*XLm`k\~&jZҠ; 6zA-vP&kJ6?ox-V^a JX+Hb~bRZ -p Z#Fj0PJҥDr)@C4^Esh?0CU@A2 hV jdCPD&jn2~eTztrȣN<$fIER"JZ*c:NJS(MBlj6~4OC*ڏ0CJ*ЩC>-Bd% 35~`S, %Մʧ$PPg,Z4 8ՄJ/D|5HLP]MP(&TTXd7\\`u`Gdd;Bh#llpptutGxx;B||ꀎPX,P\Bݔ#,(3hwAC6 ;$8(|P5P56kP5ON5$Ap (jP,Ԡ4 *>8A2 `ܠضsDԠH Lj,PF~Pw!fj7 5Qqnn,7mE"], #'-u t(H:q9TYޤ(J* ?* @A:(H'83iҢ @(#\mF0T((LLHј@?ڄ,DXx XLfH%eQ+Vfp&+m|MX+H`,Et Ҽjuh5&N d F ,$N$Gn~` l f`R`@XJ@AܐPii8`A N O #αɀjJ-PDd«3CkVDN(Dr C':"XXRdKJgjfJ7;g݇?6&y._1;6~,2''.~#Iqނz}?09U2- tx4"JAfkMv|xڭZ&(d$2NhH@SЁeЂk>Rr?]ee\I6鈀s @fؠN-ݴ^RdR=eU!f5 EJCi,Hě>gTgQ4yмDgJ'K$:"`MXXuw//XnۍXe3|4褺2b-vj};2㐬|GX tCe `;_zw@dBCf9PKfSX?pBl$RC`+RA(!7mfF` LI_B@TFe>L(,_CB@ 8E gp+ <~E?CRFfA~Cexe"_'"#˷?`u&asJܮSf3G#]`%c& a{Jf7i, *+g2BBQ<r8 ;F?//RW$;5+1CpEiCr~xŮ,P+ ̞NO0w;B@1%,g}#b!hG *;"F;d$DN4((;gCL}$Ip2 64LqGTJhLzrME`pGIhpB@VZU<ՂtGprlu&H|dp`P R=P1u?^۞NBm%#"&A:qؽ{=T`=/S<@P!faXk貀g"/T/-h9?ߴ4:JR$^4 4| d2F2̓JھfI5|ke5VXI!Si;p5'&g߂g°|p4`p`}p3`p1^2&g b+VjclU0B6-n[XH87CHkA,R AP7"eJT+7n|VS&,vKy2-:(6\f$H?6C(6 R+W?V`"DJvҍ& DJg,$KfvT^(l$_Jg/o;6\zul-+(ƻ^pr BXBʐsjApu l٣=&cPHK(fetYXg93dg|Hm~WY"HpYi!jv;'*RB).gRA`AgA Ci`;$x4xgV)L"JgO/> *fΏgeE0N`"&Э8@9ge䑧C/#puHmwh)N{~ ;@!-}t~NHJW@@AKx4O@G^^?grJS@$>r)}B,!li p'0r~nS۰}B8T~L1 ?B@~;C~pTBG>NCXPev zf!dZA,gBmN:f6%1'#'#|^g"#0Ʉ8zp!GO21pm2ʶ|ae*CASNMTddg?3;kH S%m P[ &G5ĈA  L !1{ERݏߜ7$vѢXd>d_5ϰv ~i=ב#dʶ/Xc0Gyoa`@G{`j]َ0ȸ:Tڔ>/Xo+#T^aO(Bv6>J+Dؖ`@9*  kXcɇ@7 2^0bd?d=~i? (̓:߆6zg ~RICZ?9kߚ xl&K$Bx@}|(R"W2f\c"T4=/a3y{OɄ$v%>:|<)Ҡ2i_5ޤM`O~y@=$@!EC+C!~?$j a<  1 ė˭Ă>p,p숈N!X4p&c,/^Ff".@QB~~Sd:@DxzӛrlWv,1:"JJE[(G?39,=8'pQ^b*(($*Rr#FX&PR2W=o뉿",R8r^nF  jVln!0`F@~:"X*H:ɺ;~?FU|U vϳOE-W;|suw׽_1ï6gï~&f_ƹ6*uVf_if_̸g_e_ȉW8dD8ed8vJ}$%ξg_s%ξLh+X}%ξJg_̉qf8J}%NPq.2J\}%Y}e2W_Wꫜ$J`sUnʜW*Z!O9!?g_!^!Bf_!!!W"+s"T9"霠"+#g_#,#l#W~#+x#<# }݋Ƴ$x$UϾ$pGy³$$*x$<% g_%%4lt³%%W%+x%<&Z }&Ͼ'jg_'򁳯(z)W;)g_**+"+L-e/.B j-,/R-p~/ځ/N=¶:N`Ppۆ>xmܾ..1]D'j(8A ޴12kw2( N*2t+fZם2%3r3K^/3-i48C4Bh4Z?5@k5ɓ5Ē6Y6H{T6̒}'_TE> _Es~?f"? =@_>6ü@w1kAA^BwX+h(Ar _EBO@]BpА<"[0 h9E~BGEB~EꝠFEkjFїgFFXEFn/z~FE_eF/zF,zFZt /GbGV_RG:vRGj'(=A JOPzG,zG,zH,^)H&ڞ$ tKxo! % \A)w.{# ɾ& $w{(/tF\' (A л3xwdWC-*K%d %H|A*: bԚϑ!224D4!x )HĻ_+"K (& aU CP vC' ! B@ 0  @`"(}hPO 5`PPBp9>4~)ЬwI*L' V&厑Ή#֎8b Ύ8x;((ˠtp" #|#M&(ݾ#<#pn#&P%HxTk_*@$.$$PzV5(P%^\}.'J *!0yDC_H.CRtяO LPE-J !D*< * R*ҞyW^ñd s_$:`/E%#PPsʨ6٬!"N/ G#B|!)җ}XxguV!dtI*~KsWl Ogppg Y:$WЈgvfp)`pNE߃NL~NpGPpmCsJmB('| ƚn0 2xg8`em- 5>Ȗ< $.(Eg\A788p p(LKENAXhrPM`j:qʔ0l]gTJ3D "A33MBgN\ B4Z55Y`g$Y_:WI24 6:.rz}W yRlΨH%ƶ2@MJP.2"Qc`ë2@@pB9C"@ް<*P|Eh[V2Vў)8fυPYM7AyDm` Eu` < lF*<1:CdDxe3Ŭa$ }ëTZ8Vؒ{gVT>tFF! FiaCIo VDRBE̶F-@0XW9cΒ~SA&rjSG(_S?Q#̈>-xݳ=%ʔ 6(>时&bDJ8ţܶ:, @B5.B(CLirZoH$.& L8a>:LDE0 tM 4ckXu,+tP#h3Iv3FҮ$&XJh\i •QI[L-#>HP6)H->f4&Y4VLNRC C u,?Bj2PJ͠K0#0dVuE5bn r2\59@6&%" ^&7ԠA "jPAe?sSK9XKpCNؽ0 P"E 5hU@j,PH(t]M"P!3ɡDҨXyۊ2Lfς$T9Z/tK R@,-F ,407M&`>nu*‹b.M7<,1*SFE6G7RV 0[ĢXᚠŜ4*N{@K^Dy.8T6.g20x7 6鳔SaQI.YxˮZ5FRGH<ЂmHDZ(80p|>tUqſ\TN̸(VF1ǀMV Y*T(+H P;gn82^lJ`Rڢ1U` 4~ 4 :.6Ŏƺ0 $NTJʷ5WH0Z΄TKM#6pqF< ,.5,.""m74!SCSBeG9tnX,4 (Fb# ;p*áx[`h 0>0(Nj4RItA",\o0,Y an􅤼ګ"D],jJDĴZXF[EcU/Wޖ?,`ʍ˘@ECg?,, C Q!P AD,Kϱ X$y R6 >j1 0l?ClOGVJ)N@p&dSG68%LfGZ^hzy.2p"" ZaDqޣ6 d β8d6"82 rdJ ":z<$0L+l( ``>FL @ &N ,v8`xRO66(>h<&|w:St^I8#_..Mg|@gʀD捥LCG:Ч g3 hg*4:4Y:D*ЙHLg0Is%tW4ЙxF4gTmT}Δj2!F;|@RՑ45i T7e#4LS֙e % Ι&*J\ zTV:L@ht@=J`&X T*P0:ocY? H}Mah5y\hDڧ@}lxnh?fFplmv\K|!P~pK8\S҅br?0(@vJ&i)ׁme[i^Ԕ+{j[m `K h$ !gpr* *xUv~nNe>.ZUvoMJATr$C{q1ƫF_[tD%.ZիgCf6MBY*+ klx = ɱBC, 7A4,_ҧyy'\ƒ|laPK+՟֑`p@ X?`xm 4bg4w:R$~hGWE6}x?>pdɋC] `ң( :VС~ͺ|?xl;MrpE>qJS `:ti'6*y|`10|JnC:8q(|ƒNf>gfgA)J/#0eߛ"f(| aN{kPÆ6n֟z>bRl66lD~ֶIFc~Ɵ|a~cC>; Cp0<U3,0P )f(c?w`<x<x<x<x<x<x<x<x<x<x<x<x<x<x<x<x<x<x<x<x<@ .(s~YzY+x N.5 t0Nad|b |#|n|kٸoi)אqؒ^6tp;qLUE Hg_ԨQO԰oJ,gcZ'hK%=vIC% kBpVU5t1Y*L¬L4X~Q-S5:m|pWL|||x}~V=5 @9e-Qp&Lc6 ÂoL|N٦hs ]Zew킎4 ﴞ.@@ `! nG .$Oi˙n7(aoHxW  Y@ K)T6 f䌊ZF O8Xx>\Qc9؝{ɮàw?w9*)x ѡ]"twyru?nTGpp|c~Z&<|50` V? 4ـ+ dC=fC.a\k6L@T=-9t;0;QtX0`~Fx@C|Ke? *2&# XD/$]J|JOq{bL$@Ϯbj(Wkyx|tM?@]*!@5mm=}gX>-(:;q#T|3Tl O"i /GA ԣ a3,ER*;iA"p?oms[;|*ѡu'2Lx0 xtG[ _OV/?pA](0p~?4tޤG('Eąi? ՛3?8ǀ6CP~?q}Ӗp{Ʌ*@sw>W:+F\p<!|KX!n)#/OUOPU /n` 3LT-VO-)#\JF?1Y1"*C/+{F$^Z@ 9@1eQ;<ĎW5`^F-(̗ɚӳËrDTUV Y\epyppE M/+Cb)_"u; !1u=.r1+yN' N)N! 1cu1>!a}'9 a' EqXhq uluiu0ukG|q(;v|PJSpuff =mouse.sprȓ鳀sȊdf wl\<pY{#2#(|Ԛts # ? _,H bbn^\&aAf!+3jl @ d,Șk7e/SB?P _5lD6(5AMMeHxveNcSWRfs5Q;_e{R:K B'pPAX!f lKE@^:svCD v>CFvޔP4Al,ixRw `beXܼbJ_e&k̕rZqub*4@9AHAA ?]4$>j=~ezbJT"EAHC f A 8uS&󎆇(z: &dϱG"@سD"U@:@TMrrQܹ6. ^A~SThQ1D z@ eBP2 Ds]<@RPmd|B`H2+訊T @"AsZ8`Iću™%Wع2Clzxnpdtv*QdJGk2P e"]T쫄@]VƕvM!1SI(2T42RM> p :Ï$]iˠ"@<3vS)GJP;F P4'f0 ::X \e\(]&f>.TPUC.S3wDSA&z􆐟ifJboA P zl\ao ZpEoNPzoCl0>zo@:؆ @~ <_ C, IJC7HoA(1r@:VӐpdƅe q`@{jEܺ¯tTqis@s<`WGƟsZRm!nN3KTvӘ0d\tyd*_߸Ą:;1"@vBxP!IiEڂ@<1G$&z+#IZ`xYREmBg-lD6> ?A eЌx "" &3 '$J1E$|F蘾gNXg:'įy-\ H#5R#5m6i X )U桒i:;J,@Hz n(<JXWGc`^nEeX,RVt HJ\n朄 .ЯEdutֿ:zjP"@S.uAQO0%u.E4HA2#A+*hN.F

    v20t4 rL:pG0;C $e"@ќLkv%,o"5!z ,dچjta (bPJV`B"$`0!\v ޅPY^?(zOuf&ؖQ^!C:: dUA6SM v, ZuwhSL>~SG:z :j1h2:C*- ƽLD&Iր(J=< PDT靚-gf/rXj %VˀKE^`I.`|u"M/Nxd[hplg m~\mREҠqRAvf4iVXqr4 &\H9Nq: )ImAl v~/4BՙPWVZZ-A8c.,JFP%#>2\,52(feCc$de03nzd?͐ ԠA :3Gټ I誚4PAUNTOg T5D"T&,۠~| ˠQ}z\("X%ls [="Vl\> @BA ps1[>\2.֞ խ p-0a.,hPK I<<&vM^R@608B ` N"8GK zz9 -z.<7P"؈AȁCq DY KM!hiHJGS|0>5žDORG򠞃4 %M*In$LOעg~}<1LĀh'.T5&JP"m*R6%`#ٕǗ;/]'fAzFe8׈[f 5b&JL~$Z04:J(CSFxGP8XL#hOS[:MSf( m3XP8*bMeXP ܖ#Z(:hlQT2E˲NXD$J(="AVȹ4(P$S)3SwꪝKfTD k@wxy 3&Zm"YH`UP3 ^Q*qYnc,W9 246X8MCVxyz{#֕A"hijkA Q@YQ Y}l2222א(ITrDSM9E͠\'pv@>D08@k.mP8*Big t(FDbLVD$MHFkJ: @k0ҤRJ{Rli L݄=NKx"JHT8|v\*$*IB]j&5k|K32HyCHHA: jk$8642Ǘ 3333\Eޮ{.鸀Cn?ASqmXQaQ̗̠ \/C vБѩ<r~^v/2T_SGRFed$J4< سpZG-4(A!(/T$$,ujx,$BiC44:pWS dE.@SD5Q"3*J 2 e(DT<"!q O9DU5 jLs:($F&Jr6 OsJ7-~6HQZ:UM2GjK0* :a|E<HsjptNS]!^hcDΊ6_1NF 6:D2L:v,zC(x`Ct fߏ~eVI#zf@ngZBKJjLxe8N}hDAto_զ<:b2 EU*ՆRAJM&R(ԨdW숉RpN8ӰFczp5SQWQ#ma4 YvxaQq TRdyy_&ɰ}:=dQ $ AHxR5Mj ,b"\cb!T \mvJ^>%EXøDR %fr4ܻ7FTб F#);T YPA˩X)!R4ĸV\I5ISgT6+ b <$V†-pPjH- XUUR5𖠼U8n (w pQPc)A #͂ZV(@7goTs,K̬ǐ}IfL) V\UrP}~HH2-0Y'Ein_5=;8V\D蒂n,LJ*D栐&I?(",MK@?8Ҙ2 i:2CQr1vǤLS܄Vs$Rj"xM[Bt*l֕C.vrso=q.'pNfIvf\ DOߑ?4$yg(zFC::~J(Rmr5 KA Fp^"N-}lx > 2cAwϱvHHtJ8\陰AbZSb UUX3 T>0^Fl%ȍg,~7PR`zP06:R0|`h$2Q25Иa7+RW;4U8_ڭvQ^,V8*[RFFO:'$6uCU"H "U@Cd 2:j: M:?4|kKyu(KF*4#;,G REEStĴǠQ4G>΀$SG6*H>4RG/GѰM4vCtHĮ&A4'߷t(i4̂3$A~y2 L.EFĨ$ I@A&"J29A΀.N3V ـ0vW:ESMM8E<)@I>q=I4Y8Jx"K: 4Hj\Pu 2LߋiFe,!GSDjxS Qvb֚sd(Naef/ֺ1A͝Jp˒{Pi׈E R(I:rHHIX>2x(AfLs&gp9b&?S$,r(hY^"Yƀa }=8\CΠ 'y=(loCU F:pJvSq=׊-Fi$41ynaȌO<:t֬[/3ŵ ,NFP2 I;RAy!vSڥȆ|$zJVVrKgֻO;mvKf6.0:ka%uuJzD7}eDtLTy4J]seA;RVt&lHbka8<2a ̳(+H@#QWq{vf;XvpinncibTJX3ؠcDMn%NjT==ih'<<8]M{#1<>*XTNF@>uHMsp5\PpSp B.gO$|ܡ$t DOwH  tҵ7+,y\en&FHٷ&PA;N:{3 .FS(ښ&:QA&:<p4+:}Rj~}O f"GKIF<,yn3xuA)SA  p)Jp}|Kg63pN<"4d>df F(;3DG{%A!1e4`ˍr"%PR I7M,>np"Ne:zQr"J_tvybC4\?qHq/:L8h4Zt Aa"z8TdfEܞR.3=Jp2j߲qer.I.EJA|? <8$ISAfJDj"JJCnE*-P>F.Ķv:2X^spj!꺂@ܺ@kV|n0P nduUi-FZ Ajy* FPnbPI B' Ng@(gAp@' eί>33ɾ.]AQQ,"e% T;.z9%JD! f}whQ,KBikJ;n`Ar Ȓ#';]o/9`jo>A/"<4VxNsp ץ;Z?g -Rn<:o&po8?G-J- r BaoB.J5p!mBf؅(HIlBG|0yZX `LITݜ@ j/ I c0 [@GJGl 4@JDlD|VGSBGnFje:AzXN" ŐGfЙy1&w0fVxgz RFDmy:O ҤKzIՁk.A A 辉ޚ$ .6D2R-S8D e EAfD8`bp6j-Ih7J@fy ._xd'D$Cܐa=2?)(a:TO.HzLngT8}H$Il,BBDm *u*;*"SPJTnJA-Wn<^:p%j:|HдAf jR@m =l>eS2UV$fTvlrQ*zCEGRd% F)1Al SG?Hw01 A(m/CbY0~8 !qApG\^^H ED *?ڒ0yk `C#!BB(u7 Fzw@*n 4GB#H1.Lߡ+ Σ-RX HmGm9o栨qD>""8Rg$ GH@8 !)@PS0&I a lHu5jAjDՀhYTs5jA XQ* 'eb'ck FGEҠ\p8]_&rĿ/drJ_orQ@8Ž,Ly47aЄ0* ,Y ȏSh]KD}֜Ri7$Diӏ 5| /#6ǀS,XP \l- XLv CJro8ZXp"$:v?bd%8Pc`lcPXc8>J<m`XxmrV΄C ذf=:0JkFo$4:`9lrub(<2CDDބLrt&@ u| 2Aj"Rfa:u(,\5r}3/a/v,}cb|GRBG-en_CP6k dRCͶ6e*A;4p^[o9(>؄* WZ R}CjDbQL΄{VfG+]kƳ2nm䛟vF$kT6D_: 66dރSE ckG1kڅSC>:~.%-[< *} SMUO⏙1?J:md;A i%DuqA>f2k8, QRid~\6Jz^"JrރedkgvPk<`d̟&q:kS''bHGy[ ܹkB?oeoD&.孾DGj>Dr}i<,ʋp|aT_y6D,6 :"ӛP9<:g9<<>O< ?(<Jw X$ fJ||, ((Tw*6<9y*°Y.s=G9M5xNRОk/(MKDI,HSN9:U2 ydĚCDE9^knVxnD/CX.4fL#|h?l$dgw{GlZqrJjXF.a2I0ʺ<im EA*̂23P:a?ԵuvIrat.nTAQF5|"}UJCCpP$h]QCt&H&&&MveNxZjx™i</SERACH!,+2.Gs,33S06Y4p,ɒn[c͒cdɵMV{QKdIC{c3dɲMV0d,7ɒb,6YMdS],d&Kv͂Ymj%S,m2MqiK,Sd9&K_f~6YHYPS,,MX.R&إ MM$,tRdi&K6Yd  m6Yrm6YFmҎ(v,srf,Y l&Kmt؋hBn%_,zc ˵6Yuҫ6YNɒM jN,id&˔6YɒW0M m$h&˜MY6Ylll\`=& %6YzEfnA wpo,w221`6Ym%6YZm2j,ɒh,m2g,gɒe`6Ynl%Hu&˄mMvmkZ,ɚ%Wz&%d&K۽Ƞ&N,i:d˔NXɒW0rkK[Jrf%`&F d)d)d)d))8v9Km&>Mml&Kf3Yrlɒk," vvo,svrf,Y l6YRl&+,m%_,d&˵6YҫMYmj%S,m2M;QҴҥM)mi%GEdDB, d"s&d#,,MX.R&إ`%_ 6Y 6Yn&+3Rɒq, 2p,ɒn,ݖӶrl,j,riGDdp,srf,Y lkGEȄ-DHrҮ7q\k%Y',ʘd9&K6Y$"+rM4mtieJ,Gd&KR|2̂ yE(YnЃwȞ2$K I,)ʆTE&5 h;t0b,1̂'1\S B%(+!\]#nT)FY-# 3FS]6L9H=sEC(GjtJ-TNLQ3 TWZD,^bc"fiD8&na5qs̤uTwFypz?=ј}f~sW5M)KP 1[lp綤^qBJd$|_lk4_yF.s{rIce!fxU.$l,L&N"Ng>gQuaXtd,"KT-!T}TCH8jpw"H uaVPjb|+rYX,7R'v> fT.q%߇@.- %Ww=cK]|@jīfبrZjZ0@La#iR`>L@L<>ss<;Eopi^CӃpS}8k<84`17Y`t`or A Ġ格)@yP*:)tI`c@pr@E(Y\Nˁq /䫸 !](A#'U204*jZO9ˋAAa 5& R ہaQat:F_zha\:oҠrȁ(ȏ/: !8NƄyd2!QNCI!P % ̀X4&p('yv t\ d} "ћCMd"!ɛt(!XP:p!܏/OjHAG_RisaOX? ]0O˜'w@n؆Ϳ0c ‚1c51_X nX0.lـ߳1xF5oƵWnlax5?4a;.$7 cOzw!AzXzXC xUhx1nÿ|<3 {0xlp88Mam|A ם (3p?D0?{p Ą1v pCXa Q!~'q|~~ Á|> İpSܲ;=3_ެ<yqc, [AӽsqfzƁ̬qA֛6Ha-51ʯs:Oꏷap1FW;1y{?s1lrziöCn!8|j2j>rfz>cjFs~q\4?Ǐ?s8mO6Qo|368oǚ>)=9h=ٯ'.{|{ÃA>x9π!6LJw!eC*oq? 7aY^34a06A9M7+pf=OA84}8??2ưg|? }<4vp2DZp<?Ο6|3w4m_MM?z1duMp͟|tP |6X>0\Q_a*Q=)v/TK4P`Kd Dpޏ" Р)`ޔPy<!9>La`ȸsy(|(nc=߱?޾6z(P>L Sy^\P~=C_=P@ x9Q{sgoa3Bب7U٨٘( L*8@,P Z9N#Y A$GԢXܠ AFF$FLAGS5OL6DMd1 /|Cޡ9 n ZAM:;/ jHUM&Yè aL4 a,E?9f:R^| m84TO]En(MmXLYahq4PHbE\ E JE  I$i8)4Ha͗tkP:$K| z B TTeFF|aPEVE:bHE| P6VSEk@&j Πj"<5_>PnnސtCE}MNO4vAU5PN;aV~d*QXށ7D?#HY5fMAt @N;ipAFmIREZad@-^ZEC<|FnzLd[FdJv~HFAX'XKk '- cEtTXd0a:d\dj։Ĵ!(a҅72SAkPAL@:aAY3mS.pap'>apo^2aCp(YJm~VpG"ua3,kUA9% fIKh2 y`sڙA2NSHIx,LARzICE!fpdatKpan."N&N)>af*Kd8> <dp;a>|8#z;t`tDCQQHQLSfpw#L0N[ Lሑa*d"a$2dv9!a"HV ҩ5p%Un0a bf%A3S4HtaHx;kaWA"Cvt8asTPYq1~HaqjDPrpS*&A%&H(I2< 48otrQ2 9B"y8@Up,$QNuHŽs@g0  `B .  t..  tRSPEED2 PRGt (#README DOCt `"\SP`Ice!ACKT$I0R0jgf ]Cl=v9V6:tΔz\"т?ѯಟ\] cZ أ׼D˿vp=UmֱxOj 0wߝHq;~*:~\ӽ6-0 ̙8%g ӣ2*-؂d3"Ӆ$a9 ޴*ix%b3 } JɶЉ&vdT?E-K`o*dZ9l\n;\.-6>G2w|½fEBan!)dRMTZe ?BZIqӖyxwx_28z>k8.sOL\>`3ׁA؊}'pP,]/i).یעi`Vr-r-qRXORS1ԭY0G=ыoeL}v)f7cSlX]R&\z? qfĝ9x Ɨ_>u,r Gs# nVV垈dG2$9@ ޶{T@&oEJ@_@RD${l@o&0]ӡ.wU$._į[O9# Zb$!K*jP.$"gǔ'~Jq2s ȐyJ%?nnP}e N `tB2]OyQ!v}'d*e+0 mW*|ϨG } %~!HpBڰPF#CN`\NOUAހk㻮7" fh-A//HddB،<G^ )7 zQ.7wB+kf)* r+  2-{; &<`=kY>?JNьE  Cgy1R-nDf>P FBgNAȿFM %); Z vT&e+S7akJCG"caxm : @J wflg!%vTMMO?j!*P=/ FB~1`,{ MMUV8rhN9B OF_M'" .Ʊa*1)JP**$Opkj0"M2Y+j-w=xR{ X._Y$ P gYpR"HWiB +fXojrRHғP&TR;yigD`kwggB` ~$tf$r$&~IG" rjv00BqЁ~n6&LVX X WJrYw(89bn`nWAkFbtY7Ԥmw^c0ƓZN\P,־aNkaJkaSl7G6\ir)tw0IґAh;ծJAg Vp(O R< ZN:0k7abņ~KIn 2T D/݄/-|*;l"#d<#g~SeNRL BhXvZixs:m]A#6#άG6mdMbCmڕhf6#PuE=\d\wℶB.2RUXG.:=/Cl"p!B#]]c@]j (;M.!j 4"Hn]տYl!J˄JbWc.f `7: d/:uB&CjE$,#X${ySUTSVJaJ(C)^'|MɂjKe;w AZ!h.U?&I"xDgza6RD5:,B>_F"%`0S+8зIY"Z6fE9Abqڇ@G`jۆƆ㯒#-Mn*K*?1<0%wD!v!S̻f*n P.q~00fY ^ f |~)p1g:I`,2˳N,0'S&5muv)>@6<`4І$PC[lSfŸ`*f*y(LOx61ǿȂ 6p9`vU1棭6:|ҡWn8fPĹI\,H͋fܹF;k ~9gDR1XuEРowz:j! vv=B#|X5gzdM(AV;<=z$c< /ƞF.+g()'a~kRkLMO>jܣp|:GMLvk&HUHyۨ?(.W7f\\8k#J JXP)ksn[ v#nb.i>!g5JX@:Jg4!zN=@Pt$\j{@W O ?>od9B6%.BgHn+

    SBf|BdR,ơF/zrfЖqEN.BRBGf ?.`U*`Pg.*ሮg¼p]C42/Jg"HggJ*gܰ$?g`^Wc],/ 34T#VwJnfֈ`aprQa%APWzHjtZz-Da*|cZzc a#EE0?<NAX4NuJJEy"QCy$32"BsUP[+[IPBa0B~pmԫ.ýgk(A,p/a~"H/$Lp^Nrx <2#O&H2ǏS3j>aFoɌ"H~'RGgeLfSC $IlZ&Jt4>ҾU4ftBcZf4H&N5!EȻr *n$)OS4-IDtKrkXjCf 5hQdh7OjH= vrW:6D>◒W~c yW"L`TV` ·cnC찆cTt| pfTB9aˉRLdUBI/ 0qe4"H4g6Tg*Ff-Fg`fcRs\Ljb,fL=`#tvOy<<7 [GS(RA",F0WJҝU e Y'JeiSfPUwnKbdZغ(#=T nv仾.|% \劕XA($H(Vn dk)Ed:;Ç*Z^X^0#fEzN>²|S||*Z`b$A,lȞ "" YXASK>6"|A" "sUFr;'z#*wy 0,UF hrC;F `D,ĉEeRAеJAg~)|,|B;kj|2 mV|p`IҨ.RVP`JAn`0`6RM.`,l"9+`N3` 8ba0cՍEBbjv1pJ*k|ndHR'A:B/,A&*o49,狜.*BJnpg;LB:z**RW:.,HNu`lRM*O'.QGà{I>(Cj2P?F@#" tѐr}eg f`'p]CqO*И"("$+ԢА&c {&L9C(D*Ly HEN͈ B kLߏN*nA)`* ;7JM!&NBg* \"Uf ] gSu#i=8 Fj6~6PпSpn!E!d="x?^q4`"2b`H4VTP8` oAEXN8<<&z!NpB.a$Av!Ȅ;"Ql( Jg.BhBxN}Cp2- 5) AHZJA] ٜNh/H=g|D8K~2uhf#-!a" f ˠ6K/or?QɠX8r"$p?`VBg? 0gހ$.aCn߯/2AzTH_x2rH(g0XOUg.-/2e !`+6kbP`$t42`t >t:;?_dBB5BUfEL?$:G4AQ$;1agUBeVBd`]E$HR:v`Nf_gv`8H-r^fNeagvvMGa`ag a`aF&m`"Ga(IT$Qˎ06!:`P8 f F1(W$ NuP0_TH]Oa`1r'9ڹPnPC6yIlYG^-9FSZI 0ܧB\kêvr5$YM^-9l d$nwJlĊc lVYndM *(lɎNAtW*ÇtEԨEIYcN'³ȳdKGk|uߪy_I_L Fd^Ed[؈ GMea۠(MLY䊦;saY IG]P#eL,IQ@0EP 訑eıFGiB ,Ы"ۇKS CGADtM*vMKH:o^L纈[9;xOypgnj* r ˊ^[#orNˌ* 1A[5ѨyicĢe vb)% ΁bwq%*&bbMOT bdvhberͮSvegcK>‡L,C@Wn 13RGD^cxƈsv昦yDvC*BKYܽeֈz?xsg# -E2quu}˖=U1{ꅭSFN7TwުCN报g?GSwaS^^COyLNߏɇlZV`BYWcPLE 0B޲HTQmOF1^Tb* MEЌ|9sg~όwQŪbR*sϯ *N_˚ly޽ӢB D M-P䀫qzIU cNEN_aG{cME Eb57N:=uM ok7Ww])TeT}SrX3ɨAHY/ȷ3y&S6 *XZ `OFg%FC9T*EY8*;9ѻo%rlOA^ΎRrlV1;eKOL NC鬒I+k1{ͨ_PȪlj(yG$OA8i۬OqLުz^J*ųriЏTIEV8fMOɝup m`DŪZ7/kC)3MŢ O[˪ ̞( MŧFS[CϨMJqdr_ENXM yNC^**mCXO黈8t DZΓZFߪoOA +٣pA*YOY AC *FHLoKrڭITMhOI/9əKk9kL)SVi_ \Na/ɅR|pQn X7a0(޼1H nFGZiIZCGeNQx)&舸1;"'*89`GRQ*)[Q_ܲ 9ァ3͛lF*YQkNP~ ELZ K]KcO5O9g禈#`OUV:'¨_OCPf EOX;_voYC.5D*C=AOOU>Ei_OȥˆEPGddKE ǯxX èNIGĬ*XGY"S-(ŒD<I漈OO[oFoYKoq t*QذX"pLvN0z4.T@Z2V1.> puGf$B#QX5gH(7Hy?< NA\aD<g8Hy,?< NA\a*.a0a`aHy?< NA\a `BgNA?<NATH@Nu?<?<?<?<?<BHy>?<NNJ@g`Nua<1g$?<??<NNNuBg??<NNNu?<?<?<?<?<BHy>?< NNJ@g`NuHy?< NA\a.T`AbC><1g(2`2by" AGR>g`NuBY"IBM 2 V>gB`DISK ERROR!!! EAGRABOOT v2.0 Bootsector Installer. Press Q to quit, any other key to install. Bootsector Installed. Press any key to restart. Press for AGRABOOT or for clean bootsector. BxB1w@a(Hzt?< NA\A"xC$I0<"QNK& x.,x?oA 4VgAn 1AY&g`&1@HzU?< NA?<NAPH@<fBBNNuA* rA!rtv x@QQNu0/?NTH$x J2<pXQ|4f J AGRAf BOOTg JEr0@g4B@ X?@_QU_uԻE>X֐j@AQV;o̓u"6>"/!?u:!]D_ ݖh?t]VU}T?(D"(@AWNJH`s 's:pTD 3o~7LY0u*F( ьP@R#;7hSUT}WuAEPt WUh? * ɿZ4*(o1pш#3|9wsz2]ROg\C;$ rYNNо*m'Қ`*QMUz%R+^D0m^TW?Q _^#:UQ%lu-]QSuk`*Eww2UT IEOADKp {s Ll Gj_P_%]sQP't]TkPQJ egUoZ?%G1DA_lXˠ%ھg}B"NmAGʈ]M,i"Adž`AG߿/pX47 _As.yT)h)kk1VZr vǍ۪b:qc0( n;aw "(@,\bݖkDU_ݻ0dZEEEAe Y)㋺5Na M߬zӣV 0V]_^U^vH buHEPYOa?ƫK$K>3(WQH`pAX1( *2#*oB*̐8 `F(6( uL #T"V}og&h犯_TE]u?5-1iW}z*Kʢ[.,p_$"_96~Z-?Pj!׳Z|UUE;ˢS(~u@3w=Nw}7ypP+9W_zE@ UdUt]u^U\^TTQD4 Ж|n~(o*Kգ?AJ}ի3 |DWWU?W5!vrgw*}, IQ"\`jj"JUʺ:3+9lW-76b(@@XP D&#c"fAduQ"5NjŌ\}]wUO}Q'Fg"r/sꖟ.*Ъ*P/2#Şv73gsr&*AO&3XoquULp5CW<[耢Pdcf:vsk*jj#&Jtw5.?}jC_KH* (*^** 2("XRk05EW47Y Q/iay1ŋ}!o " #*+-xwT_jiE)0PAd*t(*((*  ?Uc|67'?h ,2l 7G'qF4##"#2*Tbs"!F!0 B!ud ݑ-; BFf@$(D;Gb5wV-}"&&Pa" f("^ *ޟhel(ɠvdffG^f>>rW~XZ7]5WupzO2b}udFLd,_o+uŐQ3inUP`̆)V"Rd#q366j¶D Fbb2|uuwUn}_TUEp c? 3fvbf:wm`BJ^glM!3e"BZf_uw߿2gr2v6bw/+a F cfb rr"2w{uW F_ ׈1_ϋ,-mGK_xJ)-2ۊYcD7W @hh`oY_` X>Q,2i&@ww7wgg?*8Z]uѾl%DAt[`DW w3s7( *( / T~#J 񐈅_xxqucUL#{&3c6w&"'"f/+.]5 JB:*'y$JJ1H#E)uM^*Fvc7g'swsvwm]Ss+Nܞv1Z#ǨD3pNAQ+z_ ?A* 7 ʵFf U} X6 +*8=r$pUE2A$wBk_7x/N/%^^dqTv@){bkOA Y nEƱ AhW_UuމPj)ij9/B(T)ETZ_TܮUO\f EErQyIR׭< HRA6l  WUwWw}!fM%@Pux.~(* *տ!C$!n T`QK%PQ%W }U?uF`3kw}w@I;YDQ4zw|ȿD86$KAD9"Շ(*ު E+w{Wzű_]uwYNjFU}̀IAEw_u__X=I ""*D   a~+Dj`;̛M1q7W 1A@΄GpH9Ww:p+Dž7w" q1 }T($FEDZ"nGoI. vcˆ4T go;"2'c"c63'w9ef*P*UWUuVAU gTOg t(  """2Փ B$`H"ŽQQPS; *'7Wr3f+r6&;-t>+0?EQTDBw|"q1wXu($uW]U_k5O+@QDAA"cH/֫soQ@E! 0dRvT A"iUu]}_Uox_" _5gA $A@@?%OC9PUsUP,Z g\ÊE%P+UXTT]PQd' UD G g3 C!>N'}Uj,uolx(<]|<@0D_Vk=q>`͙D@pDut3v/wpC6vb7x[DF M@gvj ࿵*"Pb03߿z"w 3T퐀|m_c4 Hg@@J555ewt2}=b*%|~"p1P}P%_ *(ԗΘ#9MATbB@Bj?6^GC0"&`c7 '2>t\EW}ܔ6O^}tq_uXхs{]fxWA2@uAu5vee7Suuwg7Um qh^@pjȠ^ --Y뀂9|s('C0_dV5/SK./h<4h `1xppuAAup? X@D^U}}QTڽTWPDW&AVuUB"%S ]TuUWtwdQgWR*7@!?͗WxH@U| 1y">pq>p@f1ߗ}TuT?a5Xv!PY_*>?nz@T'g wyLnҢ/3%]zpWu;/U!XU@WWܿv-$$x?:@ C-9TF 7QUz:U*RJհ6kWz?x+Uy,% #¾ZW/U~G?ոD >m!| >YO!larbUX%uU?}mjp3jhdHuO)/8%cFrX\RCQj>䷁`\yP=8x~GWwj2o⊨*Oy0wdXjP5ءɤTT 7Q@i;=zu@( kT5J/?ס**;n#ۍCq SЊ?Dӌ%9;(LWODwEO:գI׳VP:f[HA*G)Z{4"qpfZh?*V@jAoW]p?y@Q_޽"(=TF P%n~.*t]j/{뾫mE?}?L$PTQ].CKJ_G 7557|]xATFUAEE 4d\DXGJTS @n ?Xg]֭z; .Csf,K63j@H@ [du7U]}` ]Upk9אYCp׮!Tc 11sLWQ|T D[lC=p?A?EU(UT* L+T&Wo'ʒnTEupGGp@%)AΩ`< |_PwT%]~ |s4;u*UuHe5i6?J( {((#;!ALaEHuH AJ x5@Pw_][DkA wwP:";V7 EPyf2H0W(e 쯴E/LT]|( ?kSX*0_GD@z*N,X@^]w?w@>闎!UK<7U_Ī!'M( 8X * ԇ(*ꪲWJXR  }7` pWΠ)XW~\*I PYQ-o$$?]m3]y#\&{$߷VUW@?@E?oA7"(VmƀETT@ODFj" ?OsZ* j(گ5.zRa+~=f6Btj]*MS uT}bRo߻|-1Ud ?clw771]} L_wx" :JTF]_oeP_xT^_t\PTfA&DڴNOkUw{r} }8+utKݠZ\ 4Cɂ7kq=]9C@s Q? "o*UwKly% )z{*9_ TY^ٷ RםT-#PPͪ Z>E }r{bX]z@GjQ"0TDwͶf! ]3Zr_2+!Ŧ8MX֟EU[CЂ\FKUEO  'Pwtg}u\Fu[euD?UJTdT ^EU[ w;?$rZ]5?'{*USUTȏ0sUETPd,l[AҢK"#x*Aw7$U6vuQP7uTZ:%y;P T(p! D_XPFe*5c&4QGT{άem= 2t+>s ')w/ڪ o%TLEVDMd!^2l~m":U\ (l0 - pUt䈕י[Yd4SB0*,E(Go@kijC*o.m`X\mi%h:R&Pk PDQ}X>5]UPk ʎH"(!u1?IA)?fmʌbTP$Zquo;[=}}}S_P0(8BD1WfF,Ey)pP&ۂw[ }WuzaUưt* >Xe5뫠oI$8մD˪e1 JTY֚Y , *ۨ/mqȑKAp,SgV9,TY9fr3]]uuWYQTuwouH&4dT@R%Ʉ7Z#Bk(* k͇-3AbMakAVa- a,,QoRT" \r;TEoQ>}7=u=[xR EZ:PQA6ww__w}*umO\Н>eQlcEMEpXM JB 7: C DaKBV4Xb?TX 81sJs'׎QP "62z'n#8jlqVMG d!ۡi Q#TQ$D̺&"V[@oWY]1]eAd5`t ߮ o#00CuUV]p(X_9qL߼ٌ4U֢ ekkr۞s3_L7wWTeiYTT)r**U |']Ժ,5I11<5@iqHv͜Ҹ`dA1ga7Uwq3WQOWAy]Auw wkP ?z DI~PJ @H%*Q UETu]ATM5, MT".* *x p [',C@PS\Trk׀d4miI>R@:le )[Lfj^RurFy4O7[,h[cl ާe5TnT啟ge\^Y-d@Hz@'GSso߉z$`'(fB>ضi,/-G=3 i4gCk$QdI-yP wـU[54Dth#:Y9-$I'"ksa/MҀ^y@,Y"Fakfoc$(q|?eRyd֠0ʛw*O͠5ƅ按"I%J2 dn )a4T)lZwt pKRZ%dcful s̤k>et@i cEryaOByΣ{/vwK hs8f y e *arbSveԝPDlNimWhy0at w q}hEZ go ois7eAn2d as fr t}ret, -`ne os. r1*u]u_}^ H@28J@(m@EKw1 $1Su·I:Pƾ8;"0173j:? O%A@&DAS`M7#322"&]Q\gx2cE; WYeJ3yzLs31q?1s14A@P5F8@~0Y7ATTZEUbqW_}w@w=NfFKD)5| ef#@҉o[{1x,l ~= Rʀ;Ԉ&9"Yiy'%RP52Vbe_,bc gUUtF *c\]=?ன*ֱ%c EXfouGüuW]mU,:˚r+E׬[I>" ҙ6%__v.,UK z!_j?LUgK\fUs` & ߱9\TE>E$t $;' d&A^%uqDvw@Zq6fZ| }x]~ZzQvUR#%AyNT *,=9z1{Oq_Pwo6: @o. !K?kFvPeE1}7b%BDHI([FSS{sR0?d=~WP$E `d$`p V]cTȟ`@J"o?*< A,X[$]b6#2#*~*j+*m6#tT=Oۺ^N]EDa:, v://t[4v]uWu/TT@ ޒ#P/59&A.  s~נ! 5uSqW8>#B**e"?8<% C~k%WwCw"GzsA HҀGj!L ˓D7qH~L`bm~+w@(Ff.yA* "%t@Hq `_}`eQ$|]Q#Sbov!57{swvv6vfOgxu]Ї@?,4X z}QU_DAEQ (0ʠUPw9}PAEC"3v"2^bp81/Cp8Gv EA8#0"bvCeTzE]}tqP; <A&@(bU(BD#AEc1&uC4!E7t_UCuuW|UbJ|8;{?`1#a2}k``&ڹItPU!A (;uO@*j _AAs;aWQjWњ%NACr3gs~E5ClWX #9B^`U~CE2iwwp+t7*~OSGw#7%R[!RT\WLP$k|™{\z<)]~"_ '00u5]ծggq{:e6GbmuT)VE;6]4]PH"֎Yo幐}P@ அ_.ͽwXOWkAuEWnukIu_U4 RBAG}_s+Q~PT@~p\U?UEqWވ6;؏z|%ކw \ՏrKO@VPZ-8UG ѳC@AFE5I-;%bU$U5p5Y}qH<=1o6<ɻ RK Ҙ9]m bWx_LPTyW@TySlwVz(Bjn͂x.?*U`WIA[QJKzI$|W?BKOfڰzضؙRtPQ}jAd0s5)5X?'?Wd1UD2X kŠUMqt @T|U&u\~ cv@0Ii1 ]:^1{e-b=#DŃ n' ! wx+c Gm扚b7I݉4RnUګe__;&Db!]p_Zf4@W2)@K35"+]T:vK}[gW}7ůfWUX[ ]-TADF*"***#?@('8EjަU)twuTMUY_ʠLAuTAUzY?OL?_Sb;~>wufvQq0 ]Wx(pj~ "+_VFrU5M*Q!*``aUZNCk ((F:? (!2 ,+}V +V%]PJݬ<ײ_x;VcU/Cq }Mb*]ӔsUP5UdþHXEA|ƺ$(/ _*##?.0ӂ]]eLPDTr@D (V@PZ_K7w!}uZ@H- Ja*ޕwUЗ7 EQY $!U]|^YW,/$XT u|eҌKfԴhwd *zfS9O*oaOE'p_Cuyą1_% 4GW}P3HQ &P{˕"!բsjwǠyZURP% U@zHJL.03U"Iw~< BAXhk@ff΢*OQQ\H^^eUuMbd@T}WXUq@]T,P꺪sX@DCb |]^uj~  h2DAnla~ZOAS_L@ta]__^3Kc<`9G':ȇA@eU[- ,c@c-P"c0j UEuu5ATQ,rmAADPQ}}H..eThT|}PA~Cqr s"~AuJ|z#=vu] #"p34u(lzn TxiF\Wd@ TVߛ1UW:]~~'~| @qgQyt94Ek @]ToT;33DbjD {E&^}*!  ("/9fPij|\/PR Iz W*&FHڰE\U_PAI}WBvWgPD}@Wh 3*$p$WK}41=_UUzE\LRlQwnXiE _@+w_}_wpF9V3We^?P -$9Dz`DP-{3G]@D+jpĬoM_F<^ *  ;"Ttd͊TPQ5=og 2 *WwdT;Q+[m`CAA* v*" (**2p5e#53P]EmOU}]t zZfN@`@%U*ER+T[Q䟟63W~Z\uT?+:g@*R'/K]ATM5 ]rG(ub:'aU\qK&z$P/ Ys2M8J,LEq4&6Z g Lc-rE5?E!5RTWK:o zwfmEZ:m,u]m> ~Xo2]b-~Мl]S GPMA0yET= CyE)8-@CTAxGTSaD AKqC SYk RMaAAmk+X٤2~c fƴlS cGfy} -D4ab7ө]垇.T$WW+ժnV4HQ7W`:ITD_wEe6;",ŶVtYa>Uh43 =~J"Do+zcM>dEt0. аZ_hmI,h$P06[>h] eSBMko fKk@;Ky^|XU K"T&ݮNА^:[K̹[^愭Z O.=,SƽkYA]P)͐zG*0-(w-bd@A1nh9Bv $|:IEjRJ+b K1y=׌ ءwgӜE,\4e_~˲3>v}Y@"-9w O@H1 ־r^&wZpk;?XQ03gӡW"]YlVP r4֪uED-Ȧ,3e@ŋ q %,sZm]4[wNYN Y@8{ZMNv8je5usjy+6 4F3 -|ǧVn_\ N_UYPP6Hm -1]fUe(iỏ&GjJ @g.uTEJz;~G41V=9+BL^yVˎWұDbW-+? "D-y/!^C:؂ ηy.DF+I۩uʡ+ތ ;j@m^ӊoY$(gG3p#sh+.;A0̠kJemZ>P%`F˂X7[%i1-ǫp$šS5!Ň - FR{ںhyJfQkA`͔F0`L1!9zr32]3Kf@!~ ).Y@hlTR$_,SG Od]fQrUpa%C'̀*uGXccZw_|4FX(vHւcV beX˫CTER zCCBbT+$k˯kft M.{cr.)Ni8CZb8T[P<[̗ng1-=!ubsc kRIKS?a#,혲3+-G/'8+$(s[)[ X3Bynj4rp%[$!daqZuP&fRO+6YrưAfF|a?6ʥf++ r( evJksh5xm0v)33+P56R: brV2] O:A~ z_H:Fz  e.g zKS.MfMZ KwjuQ?!rd f Gg d@oXn'4*t޼o+s.'Gt'3)a0aijuiUufBszYNeJarer hq˝ (2K` h,Uta pHLqe4)W'[Gy 4: IDq/risd2l2lڬmal a?of !ey2 nlvd.]tB Tlata byren GCbs te E#ccz PrakterGC@ ((tUkn?]_ _Tc]WTz +Wt]@ ,uE=UZ+]qUP@E]dEIŒDEDOu_IAl}} (RD_@? 41]_kQ@}wRWu_<7oԠd47U`P $spD7v4UBUbH"'; ]036 vҎrY &&QXJX_x] 37TAkSA)\T8y%vt&g WVd @DLdETEU8U"yPc"D>9lT14Y4b%T=@.9H@ XqSd'}ֲKT 'QDA D$"XcywWA6WhHtd]@¶:P@Yˎ )(*2r`6#N&~KK V?м Y"#E`!8"tBɂTw4\'$exUQ!W`E<ΟRpPE$Ip`,@Du=QRe:!P AA{y1W@ @㄄昇cA.XB(CeP p@a7a֖2A}`:([U{6d$P_YalHV)@u EB @lUdhI0Q$D.% ]Aq~PBI7 $M z(*2AURA"D@GW9UoUs )ww_&Q Up#tP9EA%UF UT""]Wuu@>@LeQQ[@@IP7%TwPW`~U]x @C QD UU A_"  2ED"~ */ ߃8s1#s44΅nn&MȺX iYNZa\!`E`1XrppK؊ '8`6`d]f1ʆur'0n 넫J`8C87 ɽsp ǩ%վ~ `\{܌z*f6DǠLrY1X l E( qnpKqr! mlLfx 0_xpCjzrnwrn\p#%;ɺMkMLYsLZ e;X&?]C u pvB7h"&vG/"d2(t)gq5>022nDpNAK2;5Y DM9[Y6ݒ1AjV㘴_;cJu8mYc6Ib]9wrn8Vn?xpS:M["Zup[upK F[7 8Bpsp50zᨈ\Sf$"- MAnf%J cJKCg,*}xVd-xl'V($^\/ہ&@0GnNR.fZC()Ǫyiv6 ALp. ځ Z0[p)Qx2VfM4dv z-qjq5¸=:H8W'ҷgV!ްT9Z84y7&x3B9,2rQWT`]bV̦`%w*Y1g8+`?[sI3yf.f -f/Fk+^visCeBdCVnL<'8wr3;95 r(vP48w]8: FgXs]HlQfՎP اB4 rsW30 l)d}SHJqftdl7f0`P (wFAð/[!`=eTnC_3!1"B0bMŽk:fշS((x8}q5[+XE֬pK]9͌U]Z4QKg0Kx-^988RBh&CsOfø:VzNBgvM0a eβiĚfͺl`W`t%%'VTcx1C FKu#Y0P\X63B8WN#I|a}`$l,0, iSc裈5%_ MY.BՈxeprr0.V `KXp7~{k h䖅voYΌmlƽ19QĻ1\,a08 xt7֛+deBm{\34NL㜟fow&!ܾy}nR?'p=Ti-Ft' 1"òE g>aP`uМۅx*)qłM ^63X6JkF5֢$q T7]Y̡_>.ܺYtAe#BNhfXP1 G v9j~\v33F]pE6,0fa UJլ5Uwfc ka~V#‹=WXAv d)0_8+%P z2Zxo 0Gq' ;`\e荁Y:j;B r2ڀɭ fr2 ش8Uj`i5Y0 u ĄCԆ0h8G7bڛ3ܤv)e@vE[EIs~`{Xl##c-Ĭ@&v 3X0#M ¶0ڽ%LE ^`I5\٥,fDZ5p/fr 1VI8gDQHqJ`\Ʃ1hZHvq](4٥Ѷ V vw e7xYP-l/dr`0"i~ \FM'ffX.D! pn3 >Y1ƀ"2AMNعjL9gVÚΙ-kX$ 'Cջ;p'0$<*$qk23uƸ bٛ疰 {*c ,gRԆlM(!-XfCCCڔ J3Ea ֢T)/"! &̎V"$4޸c |`ŖمY  A ֳhvM̃f11XN-,խ^`6snGYUC:܂dR-B$c~eLjfW#oI c1ux60H3T'2kCsuO R6F4}` f1CzfDոL, bCY/SХ0dg55(5& Yȟ`2"hƤ,kp19L"Ru50! 3fD boc8YRBM MR,ƌa[1Dp Yqqk҃b֨y݈ u=DT(fhv"N?ttnNH.O7XdGZ b+Y&dC^đ< (fЙlK"IMXc*k;[ d+&[eE3ɃdBI:e4f'D! ] |1IlV#3Lu[| T-)!y YN k2g8s\atE<.7,sܙ]H4+ϹhjnY7k@`:"E2sz2nȂ@Sbq4,! S9mŒV ͨe2"!!KV[#ø P0@:0todI/NmvݐYE‡Ba3}?\'7i4nMb1!dٓ 4B c-3saJ7E7N0()30%J& &4J҇lp|,wbږ!fu!c`دSV>ƻ8+Ubu333CӡKqpΙ1K\01)f1؛2"= ,Ԅ[q0k&u{},f#!Bj:^'@v1 u\T(3%ij8Td`X2,N C>!#!"xCsL"ph8 Vǧ ۪!!"t`CsC"ƫ%ݲ5l;v\C yUZ7;wx n03sx|a=vǸX|Bjv`3R 8Sa3K;72!2`847 0-8B2qЩ{` rEŬ޹ę89T-M@NpfB$7C|7`xx6.'fm,+f4tYؚYΤVBe7Z3<Ɲ`&( Jn>l&Ljelb̠&}Iazf&fTn t*e\#eHqG2B|r.fi3gX\V>`aܓ`1 .rfs8#a%¸a08ičӗ#%N@aZq% wu`ֵH\(9 Wa y, [q{HLhT4Pzq2 CdeK6\fYӸn}4<K˹5%Sܔ35F1nDfYE86[0ܚ+Jׁ ur[Ƭ:,XfRΥYwu8X C^ix3]6~&Snd$> <]3Kfa N 0[v.(h-L}n hcn0Nh%s D,YuVfʺSTPKY\3$" Ğbq-c,n0,N. fDHp,XXƧnqa"Ҕ8 x7̆2\7+XF`%T/b6CbU``([ci0YĂ-6yV`ނIƍAV-=:0ngfDdMw06kHA#Mp.;q$Na\6 Y e`6~a݂4 # up?U1$)RDL,έ0 P0Fm8B Qm|t^!qB"_0xŧmc`R's⣻ewXV!;W%6X7=a_PaN3u.N6bF $7fC!Xmxt5\A&\,CvR wsɱTxupX \ӥ 1%7fX %ek%іE\4tHbFUBD&&t %zq 1g&5a(@ %|H 4.s^=2D( p hB Ahl, `C!D4#NfU^Pqۤ^&*}\_+U=(m~c5ZN /aw _QQO €UDqb˃cMΪ8"(.~YU]P3wVbQ"?/&r)kA1j@ **dADr-(*U* `Mw}3cjP*˓EM6+( "(k:L^tXE]YQ3(RAM ? (@@OD`I3?;?3'.]J_*l3ܠ* 0*EFAs7"2&&v[bq%mu]AW:,CXW5EAsy\՟5h݆S׾9oJXȻ~j*.+7a(3 CjUpMg* b;;փNWѯ .nUARi?vKD ApfԨEхIa!X֚up`e( s+MTYZ_3`68 8^71NUSUW&Vl70>vLj﫺{g?z`LP~˜UʇYDWStk}]ya_YJ8@AUGtLTp~on1AL4Cbv ZUQSy%_U)NV1;aQ⚙ W]>ccn2.ϟATVu , ]+uEExܟm.*u 6e v#n#2"n"݀3,gZa!]IMYewEaGM_uƿEzÊN/DM</&iw@"(L~+AxQ]ŕ]?(WTW'8QU5%Q_8&U UTUyu7| sbE4_r#`n!k?ie}rg*([b:4.(KAsg["}@]@d\DD@@PPh(aY; xlUuW}}lz"@2o_)kzUEfLw@ TI ""0("/ p|>@ `{"UcQ'6cjYP>jkqf937UU~Z'Aer*Tvcs/i7?T~UY}EPQ3]vyYK}jw1<(*$ ѻ3=Os7wUAހ[ޭUE؀}+%m_]}XG0u]@EQ߈ L>7$7v1UU׶o돦\1M6fMqP_]} u` ]fgbfrr2;yêWYbg/\ӪP 93;?a7u  fJ *w}c6v?'k(~(ucwYfwv 6Wc X73I19 _0g"w7w7u=W_v?/x `"dP 5?Klcwff6wwoR5҈;Բe꺻X!3;;3?y#E5kD4#cvw2v~VL5eX." {_﫾TU "bs ܨEl Yba6f1'71Xra*]+c뾿 ?lɒ( wl'~( o:b91gsgssoc{Xh0-UߺЯ@?%_n? /ROH4j%^'g#g77?`)ɉPTr_f* "_ vn}*"*g"73&w36?9SQ}QJO@@)=w]lAFW"PF w[yFr}Vsrg&vjUkU}5P~ QDE(wK*=S~ Q|Vywwy27c Au wfbfNsf"rzP+;;?-9ȟWF160'r"76rb2/@ u]vW]({\#HJ6 **.PPg"bcs=3;ԒUTQoL>QU}!!*T:ZT( <΢klzY26637sU[/T@UD~*.JU͍_oj{ r_uf}"f'vJ]j= Pk C(EYUQ53UU@`=Ur/(Wu2#Mcd'*@##QATTUPDb= ADdQwTOO#*"˧*23z3%cnC S#_r'f36b3ԏs"kiJ]u/*^5M鞿rUkBW&c'bb#>w$0(&&32ph'&"##*몪BP^T z{jTEFGnb" _?A򨟊*Ȯh,(,3PA Up_?vkK*s.z/:^ 1 U$C_էs%uUuUTѪ]VUG],J"F:"/󾣻d`_vB5RUO}յ]hW\G /Q-7{z3)/;śh_`H`E@@A~f@ (Ȃ ( *@&@͇?d*o*Wuf}HuPLT@-|U/@ *+ p4@UVZ݅T啐jΕsGs^>00:]uejU8h}]U< `hXPA(d D⬄ f(8(11re{+o]GuuuEn#u6׽"oN?x84zo` >⊨`^==kZ_6-wTIP7E_UPK pF?ê<`"`LjpH /_0s%lw|u߷eu_D1 ,,{`2qE}P{)E(`[ò#'KP@C泿jp< ⻤}UU[ S_cW}wUW_Z~RT]( >]Al?ޭi?_8**r|`Cϥg~zC!=_+@D> $ hqU}ڿWD'~(ؽ 7 άuU >~u,P.>F/Pw)+* 5RJ5A'Q*W~}?Ew_9SUGUyD?A`{L WС|VBTEU5X_?ڃJpп&}u W,}U@zg(?X HÀ7D- P " <X"Q/1 WUQ|>u׃p^*{DHi UDJ7k?]C|H({/'te]x ? vW,Z?pn߀H@u9\whLjZAuT t;.YT|0-Zߚ0tV {U_8ʢ O-X_`Uxӯ_8UVVT^r+Gr.+TL>)9E;_#:T7#~ܮ*+_EP(]_M mm}jBym?UT KS4R@**:?~VKb$oK_#*qȗ$uPrZ"8^p cP$wWE7/9ZVfU}P3 733OiCeqy?X{+*"*krg (}ٞ`|]}b_MϽ\uDAή ֪HHl0.(1UE1@^;<$X?m *(Z| ?_@WX̴n%dzAp))U=aU/E; R~տlJhbYl6pהgWz6v2w?xU C?G` UQ@A'"CصPn J6f~R w꫾?/栖u* tr*'@ π**{?BPH@@_"m `,,owW,?v@J_Y~ JUQ*.~rQ` _AJ" $LMdTUʼnX( ${;<TUTAD.*`;j]X w** @]Sv| x\ 0jb1U@ k_uZP4WwU]N*#9EHDݯ]]ZVuT(BU#uW9>~h;n QTE îP^uȷh| 3iLuPqC_Aj2\" uWEB^1?""%]uu +HOo('f37: 33 U"PkATUQJʪPTsM1VzjH5L@ՔAW 1vV ywxw9y]w{_%P9DDQ,榜fEV"+$77vr*2 *as@" 2":U}_ww*!W ?zP:{nnﮤ_łX p UZiMwe8M_`j]<*l u 5uJxyM@ ].>@>.UP __O!](O3_4c?j$_pضR(ln*w_s~ZU[g~ Rw?*޽GNU r p叭PQE߿#`5I:W|]WWR(? i:C*%¿QT>^(^T^Wp *$"Ğ~/._$k*+?.*E8UW_5UB8 6`xREAU1:'$шJ$ Kbk Xu ʳ[Z5뢍 bT[3N]u]_B (*_V}~zeQLqlEpQtF\W`Y0@=߳>_f)^ @R ]U=@DLH*bP`?R*s5C]}%wE3s5ez?U;_UWewfw'"&X_ ӤXgfOTdT M_g:]~cwV'*Gn(d@LhdHJ@`G?fnTTaw}WT ⢹vT]x{7}39AaUPLB@A1Z5Utmy[ZAje] Cj㨊u.Wv;o=) 딓4 ar%jnn)hqkUc"eT* +b"+c(*y&!3* یP o};}=EPU]vQջ7mswmup'|UmMn75E!V>Բ__ME_}_c_PյW_ uM 5 {C#n:: ` %Ivsfr":`X_E]DuCnUuEArr}y_wz{s{f@ToǍ}uTDNWqvfwp'ZuFjF`&(LH`nJJE2iAl" %K@ _BVa^m(G*x`UVHWnNj&v ǰp+WxN~W~qJjww[07,!S cg'v6w@?@-q `40Gu~ww+Eu]wv< ,*ePB@nDmDq-Y2 "ߪZ+gB,@*wp&⻦;@g0w_P ~?0KcX\ Vd5eU]g{wuMG[;33hZk$wu_hQXQ\̐4 j2#c!k/)˔PC 2D$$2##gz_@B@OޫE>vziv2R!d#YqWUwW]w"bq~bb `X'n+ p:S^buWðPDjX "~El3\b "f7>uuO;qUA$U/UTʯQU%~Qf%QAQ(fۑW@UC@X_U@j`q *nb u~MPb}c$s[b6w&'gfgvwri wjʠ":q`]@PUPEAk/}w}uwb`bHB-V_ EDmFYɵٯT7w2o67v3rgw#:?B=3* (śЯ~'$㻬 V/U[X̰AI!Zaw"O3wwfrw?ug2'ikGDuYr#KA ~~Uvbf2's~xwzy0A"7E* ?l νs8DAepWU dY(9r1L70Ls6P- xB@9`(\X3k~U}{ܨ`5A#;353/Ka*Xc՗yRY0EA  S LDD/LLckEUY`8Sw]BPՍW&a]r1)1}j* 'z(v,0c$ʡ1*2]-IbPReEAD+cͳ1?3W]߯Dj(PWחZrTy@yE VLDX^qwWrOl\؞}]$ OA9Kӻɼ==w9P}+4**^e5½:2.o]93;3%e331=we "Q m#޶-]6T%\@"#w}uU]W__ Ez *(ῒ*#CcTUEAV(_"ѕvvFg~Cw]!!ԩE_UwU_SqY@ۜ3Af9}o?G$Tsr'f#: *("Zd]rV[İ 0 @iZVef'G66b-sT] [SU>  @$kXgX@sT EW ⨙YFjiߠ$MȫĘA$ݬEUSd..>eW wvf"r&*]$LW*gU=_cXʇ𵓫8c#r3bgeŅ(4^߯ ]xb5EAAo)}dʥ.*UG m".* mT sJ(9AQͻDoTV4SwV|T~FաWWY]ՁP ՇZ-?tsd''| @{PƮTQ@xE@/ݥNuA U*T*SS(y Tt6;]UF1tE5i D T] AWDQqp~;3~5'4EDUDDq }kX`dc8laU_wA_UWq%@[笠U'Rj33`U:BVnlMG࿂@B@f.81&'m?JWASDM4)`?UTs|}v;[vqR8YUH& '}SU3%jtO:UEU\U_RE1U]FOu݅tU*~u.wUu3A&4~7>j~%tEE?@TA²TբW# ((+ qϬ@@ ?䁂 2x60($hemZfOsi?`2~OCyy"&?WQe>~>><<QT<ʝc [F{땗7_(/}Nv跅]lV^_IKaXv߅x+e`p'0JYYmM*F}\)3ǭڙVK?_]A~WjT =_ VeXבeuU@yY۟ww{ P*/C3U}Q}S}]ԀW 7W_wwUh4GĶD4O_UPiP!TZA@ѭ @J DWx"`Ϫv^_\0=X + EUm?!U_]mo}kjp *<g%DGZ/∃}Y|QAeG/ﯵQ5E8vu.7bĹc}E_i`P  Ms( cM]ŧ(?_ %W }`kW}J?G뫐/g-3wc #]J7hz梵ͼTU_=\;D?`SꫪB jL7H? ?5-0_x{c? AoLbATbֻZW.࿘8^$E]RuԧUF؄~}_U="ZnٶS@}R\wE]UX~|u]}U@] @>x3R@"ߟ\kljWl75}W`/_@qV "RD?UTſAImH|Hu/ ֊\sQP&6B*Y@A_%{.ZW_MdAu4XfZQU_W"c7}O:3y{s^= P T ~mtW_ۤ hr?3 E}gzک=`U '?j/~>;/8Ƙ "N׀ "HȀCH}QvUE/p?H TJ5 =~̢{>ow:\5]pWn?R nȠ38wY?])hB.#69u_ n`ˠw` w/`GX*>ZWAuPY^y0P|ȳjQO xP<>pnPuz/ā}•TAW:1&gpEu, zVT3bUaWտ3%"c"h*yuHLWUTpp*' @( _+vڶV`ͨ\*uWh U${'?wF`E( * ̋wyufD#(%TADP|[`}_wu!TT@T?P)Ǎ2=0#*WtǐyTQUV UPX[ӯt}4U1>Q\Hy"/hi+]#dmPEGA>V:i/ ?uwwPP(n=a'¥%UMl RJj~QTehoE ;ʪ:u_w}zGt@ X| w뿪W{\r'wcgUj$U 7?KR_L (koFAE}EPu(dt ~oy@*R*7$"PBH7jH7l߸J/= QF0?/:UTO_YCQګcDM*t|(PIU@]UJAVUҪNEM!@A5׽E 2~R L )(UERp2v!dѿu@"?~2%a#"."ayPr ][u _6b,ٳj滜T+>Uj_/>#@HaF7T$zD@1|=UQݬWTpīI?@BR: /`Wz*cw"}UIuzVDd_PTXFT_Tkr?3&zaQ@j~"K5.@"c?s}^3P;_nx]_TU 3'6*7vTT_zUW* 8wggw$]'>I/o:;[P}E-V[DOU "U+Ҹ@*}B%uT %wʪA }YS`$ *>! r =*rA セ^ W{͐!$H.=@XQ8ixZ \ uߤQT;=|ߊ/PQEXD3[CcV*{JiC22*#x%*زưUBKq]V("(F!$8\]׸V&XY`]!!730juXs*][r׍ E慕# p{Y#1q tWW*27* s{׵*}OE E<%,jjL0D֓@$AD\N("*(}EUW7u[P>tA SkEѿ/ tAQ' Uwrq 4@@r̮55w=HP4QVQDXzf_8f,g]w|_W|j@XT׮55Q14HsDx.P@!QURTErͿV.3!sϔ@jbrkf'vWR#L~ׂ ̆"҅+75 >`t+U+QW؜5dDd쉦!" * o(#(ě8`ye}&ktnߢ >qX10(E Df6خ|ʒYͬQD2DT-2*has?ʄ (H(210)g6kRAuV,tupP(P$&0@ ("ͷqj\ʬtf=v>R(/}o^XҚ&P#-VBa +G):԰ ^j/UWTEUAQ0JdAƺW*%0'rTQQՍfO0:Y UBB}WU\~k$ J4wƻDA@Qu%ҒQFF$BUCCA7U֫ ܦwĚQ,UJuA}t:Ea|VTJwXz=al.e~_:#D_6AVR@p  ax EEb!~[#(E(Uf U9"J"* &(N#D}L+ Lg)>Jъ'W? 7{W #wtx=UE, ~ɕN8@D";UWJ Q@_U1 33311qeʂ`]=U~[CVgTɠnA1ru w{@u@0 WݗUA"cS33!w@W7Q U5mU^QRx}]} [ 9Db*0T@;2X|聿b&SFAzb(wUTHMؾ5pO~P06(}DTv. wWvW;dv* /u^gAfP:l n&'@p /wt }2.j%yc 2,YU~T Lxk ,_+?/+LQUWsWLDB`uʝ^;8_ꘊAnqT%ŏ+~edB u4 53sDHݙע I?x:}W]WW.2"';uP6 t*`!r2ta@ 畒V}EkQ@ ޤU 7x]׽zU:j#@WJ冐APxqˌ30=6? ҦVHBnqߠZYZDWG{I(UU/u[?Q5֗T5YfPU @G}~QCZv#UQWA!`2\,ĹwzwDzru9jW}y?=Vu<@j˵9ME DB`>"AUe_~*j^~_w>gOjMWE@Ax5Z5o! 3/W {MPt@7?)0}K}WlydgUpu;}EX_ UW? "|4DzbyWA9_^,`}_׭e@$Z#·B},&WzYoP"@Z?$FWTxTED}"k@8m,ԷXO~mD_LCkWM" D>Y^S.6~Yd},.^XBsc{s?OS;b5]p Uw@;c547_]g*Ғ}*u\Yr**?bA@ %jX"]sQ |?["!`^}6L醒n3WR4T]tֳA@b(pNQּ/ (ku]wXDZ^ ?v__nO-8ܨe!R끀W*ʄBWJH]?{sTj"`@uS[K?NZhϕA|!MAM3UX /@P:D}J UQv qHrz 8T}Q_Oudov8{ioP@ ʾL{uwz " "ڟ)drXQT,(3UX */uOWWWWmw7dma @u tBB@,?욢E5u45@o U}@{eJUW*"wk?3/zB =ῃD/OqvDtaAuj/aw=w~w[kWj;,A+U$T*uR>~?~7){3ۻ7PuZEq DPĒW55'<<> q_4WpZ^0JR*/T i%nb@b_~C~a*(|>W\*$?tX4 ^9j?ON e* 7 2Z >U1/ jAVQ**kŬL7 *);ěD]w-_Ī ? "(*\ nPtr'Xd;U@_} {ڠo_&²Q? `"!UH {B uTm >1w,wp&C7w$/ DUV;M"*EH |Թ[z(h_@5mmuz#_"Y9 r 78o?&tMUD_n**#UUw@zwwt.[yW\wV.@rg! ~~ ]G}gNm'-573';\?5UE WҊoPWv*[_=JGФVm۾E55_w9@>}] v&`Frt@w}guA֦ .mJ_r %U|+`=K꠳3)(* U@D .],]=Uͯ@(]^sN'ciW9UW׫'D1JET :&0"T~-ΩuU"%@ **^D/ cUiPК QofO4uVb#""!]}bd1\[w4Cyg4to ADR^Ͻ$GlT#c2"8bO]WUl3隂oU{ G'Wu5Rgz ERJ<< utW/RWw}ugE]? ]ޡ1$7PR$@*ETE U }@mxYgQDoO3U!B.~fNUFt WK)иPk;dOٶ0QU^2pc5J2 UW DF` B EUAQ3MI,Y]"WRztIHYthW: `WKlkmvU~-gLQ Q#}vu},Lg}a]WU]iBQ֍B+(@)`^x<)?EB=\25U/P@?8eyTAUO71z2.@W*_PIU]0wuPH~wWW3,\neQu!rN27/'}x "  T_ u8uZwW--/p)T"5@@$VV璜+2A/#t{ *;33110 xM0, A g*7wPb,DAW1j*D*" ,ʆw{] W]PQ~^5R$x^d/#}_۞wm[ HU|a,@rCQ(/*r[}u!kk"@z1T fKEBo~"aTLeV0+JDE1L*u\oW *(* v }~KJ< QQD/ۚ\tq@+~?|xQXEwme'Kou6O-^HQvU4[FaQ,a0Q@R''|Q+SRQV " QpuU\Q]e]3/d>!}U`9 b,7 BUS]qj>%LAj@T W*UKj^-CɊWz7q-_T `%uT0P /\UTLJ%p}5T@U:hoqXgaQVszd~w/snAU_ulfL?T$8ceZQPqeWwQFkEexPWg]w$T Ț@>G'r]dʩn@6 0Y=ay3377wWWpg$nweZf[130PDTeT7M]U,JI[vSc2sSaakw}_qL6uv}[]am-p4eZ7zT.WVGAZ}VTttg-EWW1'uUX$u tf`OWJƷfVsU-{5UXCO"k޸bTŖYA0"}WOU * (H E^9pPz|uPu~hPu]H H{.dOK}u}$YlSE UW^w>ߩ $Q"jT!`t0T_{,QXUQs )?Qe~U@,ST@clP2_Py}@"(' 3`buW~=C?u}+?z`1i7XDJ^rwA;ːWWt?{^Qv*EUBD0k'TO,S\^bʡD*[WzZr2QC1uX1L___?)$0Wt< V?>*@xXYx bj*9Ț[H%]^$~Yp;i`d)p0K}w/0@L(*?M1@$,$i"5P+WZ*"7j"WlJ!t72uEVPN,Ml"mb?sɉ! & @Q!@30XXPd@UKn@4liXb"2f"y`iA,'z)wUDT UA3}7v:9w`XXEFU5` T@wwAD͘ 5 et\ WvP"/ Q*‚_ ,14P UtDEUD1ia5yr#AA7lI[3;3{::771OHUuu DDǾC xUDt @ )z-+哄'_upͰ}u_ `WV/PfA4@s &k.ampc`H",'0u@7SG?u+&+@>p@*#R,B˸5B uoI Iq\׉( UE )rdApXsXdy)P3 H>-HGUwۉEG4Hʇ hD D^j$K 6`s,F`]]CPw6.N͘uM CujDAJ' AgDAGTT/2Yd%${QAP"".%?U7,?U#P E+AzfI5DaA*X@E}x1ЋÖ"xP QJ(".  >Ub2Uj!ya UT@QU#\]yPQG&@KPQ`C4w?v@bD"wUWR"2*G!%ES  id WqL )L|\u]Qj( <%"D DRU+U"V wIR@`*EAT7@aDDPX/@/E@DuUUUEDTAAU:Ѯu'HwαŹ)lD2E W#k $Cs- B.#-P.\ݴAGt"0#wIp0n#.08\R08G(F EEhKàq lIHoEe 8#9aUN($-Fӥ9bc!@-Ɍ,WGƢMSSQE0b `qN vg,碰S88ghIs!nM i])&$e`JEp 2Vs `8R"&Q N8hR1S2` awdX PbH+uE̬gQiq"54)'7jʀu." Ijt0%`1㜂5"s5;pxI,)"m5IB2p$ց @NV79"-Hk 1e:oBC4Mf.u'v#2Q  \: , >s۩Lv1!e; &uueYfxV֕Hɚ24e5  ,_0 ,K}AN0C. 0Nj 簥p+3 NT0Jn0tb*rKYR. Jz 5R I;m:E9em@3C;T 1^ ҙ`9ۄepsBj \G3등r[vE 2%LZjAؓ!ziPm9*D.x .}󓻫كd, krXf C.EXdh j,}F Ak'f_"O2n,{f$`%쬈q 9YhTqD07H܎1@*4baؔA4R 8J媠!Rthf0a}K#Uy Tsw ҆i. XG(Al 8B)0-jCl u-NLc`.r2sä7n"@52rG.aZEGQ-K!bG ;Q­CgjEr7e#٤p&AJH& f!@7 ΚbC1S ,"Y12/g&K5LQUS!Fvc5bկ0Py˸eյT L% ev)1EL #EsFVĐnfIkMd=grxr+KQKSrMnn4<3uUIUVNvb :CSTJI1+"YFXuÔ 񤈙%bʶXe 9qBeIdC,dŭqVmĘ``rSiC+EdA1e #mH`X0 z "u"ZY+[,I"V v0˨IYz)R6V#sE827X3$u qrv{Cq׭'K!$XiJK ['W2ãH`(8CK"\3Z9K>v4+fF59R)`I?V,ya(fbpY=.Q@oA6dTuXYҹ 3\Yalcf,6I)wY'Zeb<,uX²D1hʺ7y9-lƽlDbZerRf]Llݚוs2[Yaˌlvx2, 1%DžΌnt|x\uofb`c8U 3$YE0Sstn33;x3ӆv\{Ϧ(+,j23e}'+r T-2Lk!n{qJtn pSRրͪ` )>FJ!2 Ih ǵcv4ۣuwdfb$#$isr!$[4'*9~u34aɹ"C3\NĜ$'R,`cX 38ClʉŪv*`}ȜBh'B`Bf]8e֊̊(%48,>Mup42!& ӳz8ZƸj!Dn%23+XDbyp.k˗ 1~Г-- %0nۈt.%[̪&dЌ3s'f n4J97H\.&{)Kd޹9 8);! a $%Rrӎ1@6 v 8v2&ج'0n+3[uXg+ *!sK,8hXA!ʃ[s'?`dMfq.b'[ULVba%#k ;LXdm8zǀ`l*appXt!tÁ9/%ՎU,{M;0N7V @H0%* `G 7:`/0˝¸c, Ң,!!?2j ,8v ߙiVI 1kx#籲̏۸+kKgߚ H x a>S,--LfC ^lhAT|89Gy8 qf~_?]j.t,[R?~},hep{ mi}o;_8K,ha$ :I7g|^ j]C(4f;SU_Rqp8?'Kz%p AK~i̼w U:}H$fXMg0C~^;|?N1Aݽm w~YF? s~)xq Ga{V? _;kۮL+#< ۖ?𴐴4,(_ΤJV_p:I`F#~S_s__zFGgp3s7ܾEaX;:5gN4Mn;hVeYZ#~ocӀ+Р 30~'SVȲ =0 N+(0VGө7?uڗs $;fSnƶ,< h Y΀qW#00K^#Ax<|w}m\?xGgpT  sF $ C>~/\Kdkŀ]Bb&?p@&yj-gҀL62dS\qX?0meY!C,< y~-ʹxpiƲgOr:]ɱ0[12j,0 'Z<C9}:G|ne_v+{uBo /?ϟfNXi.dV4h9E`}=ǯ]"m"r/@V2꬟߾C` e64l{/߰_ (³P9D9? ace?Z] &<3 !bb3w b4QC/8W+ ޮMگ UJvMђ36Nf)<@V'@ĘRrD-WI`=9$uv[&6f$A'R!H+@<bA8 |Ku@A̰xix`.~2H %:(d,O TZ3Cco~0=PfT`C`]dԋ9hLJa_`ǃriC3\ɱѬ/ %0wfo 3v7 F|?L;~3> ]~3j*T9]ܺEk3XY   09V xdׂd s/׷u'-fQ _g6mF 3 /,aωGd+F{veW9./rwtpzCeZ `X ? '2vuȨdߝg~6'R0FaLRs:Y^_|~Xki5'cLDH KhɏC\]1;j 0XٝO;~] i,,wXu8 c2tF8g_>^=X%Ix>κ>&$ ЀO|XU|`e<8ܢxs9:ͭL2{ 5B@$7?m4X5D@8j? /`e&U?C*j0+"zW"ٻ@m#-9u _kfCui'Ɗe3?Pq w=1 3j7yJP3̷B)gGd.>_;7eZ6wxH|/kD W@;Qd]ww%b=zԿe  `ߟ L'Sxm Pk Y %s4-:A9,x]GD)3dH&aztE?; 'r-Xp}.#m;lEaě;s-Vk 6'&6w8AVeoq?`P`,~2 a&k߁~u'7, ģO"98{GBO\KDen I6o%G7_L`ᰔaƒ֌0[Es|yyXZ~`usE}K p:(A[9IYiH?NALE?sew sD 82ki?=]7/ ٜջd )'%W,@u{KC~-D O!?pF92{iyA#2Yx&O3%;Q_sw_6:%tkkB?EgFsҡ݉V/ơwf|] 0h SaWv}z#0̂6 e=٢n^}==E] @e&UqOw1ql/i?( &}Y;x 3G?vr*ofQ^˭(bM_ͧ擂czCϣjҗYXMYw>85[0c#C3@p0?.جxݐP_<"b?z8>kt_(kisf>??_o[<w|*'wְ *fp&8qpro`ς_<>?gn ]PG}px <d0?s9lK 8XwVp {<?@ r0ޅ(p .?b τ~,hQ߇8z9 pWX]>r)ev`G0>Ԁ,ezZkЄ[I@?|O4r+d>[Dêiyd)L,פ?g%WxO&^Q=Ĝ x*dώ-ެs_xQĘ`g!)4[VvG`7 z{`8>T?pg%l =:yZF$m8~Mx0sɰ-d8ۗ,Mܾa3po}|/YG9FKw_ErQ~`w7)d4|'Z']Cwr-?g/و?c 3Ԧ;x@K8& , 8E[uyOw፾O4N Xr,xAN57L{ p!ݡ3wwAG]+WL ,4,pS8l 8 |nmv |KZ3[Xw~3pJ{?}t A~CG @g~-HzN>C/`~0c87}O-= ˔O;xL#x#\ @vlxP<sxZ#@g =")u xv~ixpA2+<ـ @r[g> dR%(/$0>AoX p;0@?N??-+@@'u~t_ q ۂcB9ǀu?~X83ϲ1{q#_O6k`b`3@]|~! o2~x{xo3gÃ0/wҽB x0iXŲ`?[µ|/A7q&qDA@~gdd:3lB\a`iN}K`@\  gu X?FNCK _#wv`7 \Ska֍[Z2Ç|Ա&, #O`&V? v? uQVq1|ܯa8`q޶@~@`D;ʅ~~DS7#Ǝ@2Q!8*[GxT ?yAp¿|rΟL$? ? @@w ; 0~/'֟#wM`?_zW\l̃('{?:>=='4MM~]fȻzvlp1 _5?_p Qdn ]656 /_sH @<|#D ?t.n:ʲ)RZ"zNlUs 0|?ZO H)g\IēVd/~8 ?sgI(~<DyCCzh[ @wBw`_E`(2~1iafw~8H@ͼ}b+jߌ a@Fw ;[#0 ,Ș`~ĕ1G"07wz_s9{b}pB:0 3L̮oO)e s?3,݀үY;n?>@0|_ۗk"!/=hpͮ`­p,?v\")[ 3sd>A.z/lm' DSKkoc6%de>3MNX h{qx?7ɴs׫E@?b=)](~vβ J8Dz 4wpf(۲@н881/pgnhI4,VU "3 nWg!wߏ%fd`֋Rxsy&N@x||YZ y-u7NMA0Z\+6X` =gH'Ib`wgwyr@ԊX&]z3/O/Z$O6 7_orJYiЃ{ݑ-Mv Un UʂS FWuDN#l806{5ve]ҳbPW]R>~@·@x8xx-Cv` _i_YW_̀|N6Q -`0=-' x8}c\2B_3׳v3Z\G*l(? XKwG XxyRgPVǠWukO 1VX6gk'+ ; t0jw1psE~Їgp{;PR"Kh c|0*~Gk` p? 5Ak΁sD`no]t(CU˞#y+iظg\&xİo_ |pc< b y,2 4YדGdYv~N;|8^_?aR\k-6Sf~kvu?@|L`yJԢ ͱ5.iδh;<}s8v@xmj/yux@CpaIy,`8h&l</j`\},ïx`9{8P<_P@i Y7AؘS/%z _| gs @,鰸hvл>a穴O fU H TU#mbpp~f"zY諙ob>oqp ߁e/x9g&Q?i2q@YEZhv -VP_h~*pW6}S?* Փu]) v~du? 3}Sm.i~8_wyw䬦@a 6'Hs̈wp'Y2l앒4'?<ĺ3\ E/g'"ptt;L̠?_hنwD,s]n_w@ h3,{vM#c<7|Fy[/3ulx- iPw#3<>:y ?H f`s&OÀ=i n>xOhU^aCf^1@1,n> /7gku{wXVE9'@Kםz,ʛP$cexw +n;VhL0`>Wpa'9 GwN~@Ұ8 /FW;WwwyuH~ !W""G}&h~?) "}g h߉z?6Q0zHTQ7Pgt?Lf5 sh |p K]~$5x dWPJ FG-68}\K+=w |`"}en<(bp2X^۷9xtU=g^s0w8wo<A\)c~M| Rd㈒g/ +ULݦ_߆Gd=!yPخWVf=+{`sqjoˡlj{ࡀ`U獄< V$N`A#|X>A\K@TX $υiـ[@0/yˊRS~q^_~my g&@MS˒#e[oG^%IRa?%S/kߟ?Hr̖S}nd(Nގ!0xo9e@:_yOS `~ O7d{%w~#|<p*,2v>#tm$`X.?Ogz:K7':1d\z8`3>?0Uw9g֢Z=Lsa91[Cx,^luo~/[˴N}1KOj #-' d  ?]kpo?|. @`%3MجF</R9и<_`+x?&@xu|GO9ed'l3| 7Nib> 7oHI;>p9`kd sgbK~gT##"EC77YTao4{Y~<3%6?Q~c+X ÇF_O_* xtwyY|G_W?}mňpco@Ő gixXP9Vv.oGs 8wl g3LX|āS£9<q hz-pKߑ>P"h+>3늺-{JYs|9@sg?cФƯ7!P0pp@0`z0q80_Z3?IJtYCw$牒}pLJ_"m g2p= l;ҀtĀ0{" D87  \N&CfH?|BJ٬^\ӛFy{=3 @t!NfYla\>c"܂u8Ǐw1 ?.l3p z #+mHC/7>^1?+nm"(ClKʂ0d R5Sepw@{)m;61\/t /| l^~.`;> ,X@ 2 !`(^c`.syD!%B9 -wAηM\E< wb(v~pvG 2_ $3O8`Op3۵ J r>8Wg<`?Lw<@x }gg`B4tWd^`A?v|#Xk@#~F\!`,<<$#g͖f,g 01vL3~H0\H ~"tW ˣ^Nob:8z^_w~@`wRL}Ug-M Ζ+y=k750X~Y[CC#c䋊,\rY i?)Z##rhS"@t;pwҧ~78%-Oq7Au W sm?_ e7Dsvk1 Tt` tpr?25h&L9 838 l3vr&_Fm; ]ېװsPivDV0Xޓ~fa~֟ D}3B,ϷWWib$eVΑ?y)jx`3Z1jdU~Zkm_ۆ_G_Gՠu2\cp &|ъZ di .W,+tެ7uap _W Ꮍ0cg/'h0u2mYΤٱ,s0Z<,= fg_| q9[bnjnv} ~v , qh!tp_`ј>!zۇ|s29[e$WRfg.ׂФy|Y l&awc 0H' GAKd>m ~{W`CA2.Y1'wKo Yoff'r._;x n ^GW p>3HNx3ŚlM%HceYG31ƒ:h3 k2|xYat€ u`7\$~2g:LKs9w~!!6YPp`%>?2\ c V@ 1`0a#s| lo/JV!9Fk?  ull1:?0Aޘ8/,EZ% ?2+ScZ ^w6n0G.? qvpܼYܑ&l|`x? 1׺KVaOI+agnptw|=MZHwtG_hbmǂC3HwvW'`Xpq~r6X9QOؚ1?\G*u}OO׬Pt7}mMۻ~gì!/[O^qiTC Ο]X;jw/#FwEv Z9hEa0fZ=l{ ? 9?pI3@>l/\|RzhvfGY?3Ƿ`3<xu3ę Ywg9xj$~pO`XI׺9%U~=s ?C_ 0b]5 G`8~5̃z= TC@~Xb͖CPCp9,AYmkeZ>`X^9X!Ύ׮nyX ~^?gU׋f w>C !_:pT;?pzuo,V;X1?B0L8j: =w^U?߷ 775V9/=.go7#:lag?pO _uW^efRgQv`3 '}!{'O.Y7xw p1e~Vqlq%"bsٻq6~p0Sf{z`NFn"ga02SŪĪ觌=?m\Q8v~*68? CyF/ny2t}l4 a^,Oae{<(0 \X܆ 3 Er 86 # xL3qpF qNM0@Y#<yX1Ur@ `Y'P%3%N!Fd <733Oʁ4wux 6Ll^wswd>&@"7ȶ?Gpu$YBܞw]2*s x@iTEw0pFn(ssA|w@Wv/̀u286wN:@@=e_yssYe tK lVߌ!q\>{spXH>Fg&_@ѕ<^?Z1F?FQv^<)fx?"Nl}{FݖH|~Uyot0 ]5P܄?6.p?dռ1u Nv_.K3yF tu/1~ =93/ɂP<@O3)-,L8"22Pn19[Pqc?!M4 eO8|#ScX7oU6x/mO|o(ɟ.~`W@Fl}LOMfq9 @PC<>/0D`n'aw~_~=1_ c[t~8}hW#aqdKtBn`AZ@a]Y>w#?c<"C[cu?Gs6%[>dT8\`p{3u8$^O %eL߫2`glcfk^&Bn,Wv_Z:nnwzsX{@DA9OAYO4~~y?]~|F  Q` ]A,!V[4=x.> 8l?݀҈g_=&Y@`4 <7@vx$*#Y%\RYbǻu qeΰw8 xAwc/x߱ t`rk?8wlT x? ?c@(oG,ֿ@fq,ao0`d>O`_GC@L7<{ bs]0 >Na` s'#D(1,ֈWJWGAwP?LؙNG*~/VAOk*ip퇣fD b?n,'q>V:`f ]7~ZlvL?f(94\Rg.>]O!vHQfD38lC1=z # q~*sIc@X7G}9Rq1gb~@˓ee~pw(?7o+7f_{?t7/W;O>;_q[+g8LhZ 9@p( 5o?G> g'ön<~]֡J|ipADYRn=ipYi8S'd8Gک43|ayatP~clq UAnB|PX<`?À=jMORxW,lx? 1?ϧUCD½w| Lך>?u4?A@I8g+W18wLv!g@*M)_ p[_P w}Kpf0#F6XvFGs36?Bfws u$4wA`֏ 4d t$bhwr3+I19dGs!wT+=r7 I!36_g-Xvo@ k\L!fFvupH$$+fvkpKUȬ2cgt @ᗥ'{"x`aB篋1t_||~n|<'(^`~x>~'8XzWgpf sa0M *'~@Ox wpp0~%sdW_j3`R@~_| V[1G|7,2V7*_4N>|@81lv~ \|zq?B4u~vs=?}a"Tv;Z?\Vptد7t%sf)@ n>߹8+`wT0Y?d%І_bC8-%7wc5V %3'{}-|l>Y7@ SgIzV a ?>vY70gbNUVq&V0o"ZOp3s~8N,['* ]fG0~8]jf#c 1eK0a9d^]`0v0b4Xx3in=x0H7  CGq3u<`Isr@3Spknv]<[ŕt3I_\Yjt`?[lB}"`o/{p [!X\a|'T>;HӅib`.~@L/0 !1c 0@IF@ln`N zu`B&OepLp@7L v?Yll7̐ 2`08qhZa h}~p(l&_O~}g`*딞1<|?U@ p_|4G~>m]w7wtK}uwWL*[d9@Y6 qf:3#04tq{%=Xl$%2񭂮+Nu1M˃!l˽yY^C(Xy^ U~8>w| pv?*/ ` 6Ljͺ32eklFXp pG+0?d5lQ2gAlK,Y{V?imd1#oQ|ruјMY4X>تWOZ;(5wE/n9  ~gw7v4GWgw=CY+0 :`k]@a,yb^ ;%}gx38?kA ֈZ?g~cpv~< :88L,W^0GVz.K?z`'?,_~Cp6 im`E%ZBiUs|`ug ~{O82~ N|H X:ޢKfɲ4{yH+E8~_y rjjnx >.O$_cx~OL8wZ V;_p_x8{\yQb xG|s!{Ue3p.F -h\ƌրuz]I tB|7U?1 ~$-3@|Q~?S:Z- q uey_~m8A/ϊn`eyi|fvi&2GTdY$,/r, e 1#o̶fJ d(,_ɾd` SB@`n3\Bg`H1N G5F~5<$?[MkbqSt\k7 6ox82ì80H^Z'9?W>3eaf}@Lz'3?o20X>Ėm ;?~,,`-W?~`}8_~so,~> KH`l_fl | z_?0XG`sjzP>pU=Zm?>wcvxzJ|2PcV,>~Їgb]Zw[X%?g؏}g=-00}kr`?7Ϝ?O(XufXAMp;5~C7<-M3p77646BpU`}@,KP >kAh1P* #|]r{/v{`Fn<|ξqf_:g0>=̼lx ͪAvH*#>zhl^vq@;d0 ~8 yYbXqs1tBeP=@R ~ *u_|%w=@!28s~-5_4p &$0I?p}7$@ڕH|F@f=n=Wgp۲ǤVnY+j?3M3T#3=^7w3l! &0׹tr47 |wpkmPZfa8c30 F`a0UoG17;g45^GSP3w(8|?~nga?| 3f$V"p/{s>bu2p  @8CLa & ORtN cC `S`_l\CDǶZʦC5Mdv ū _ f*>=o/"Sw|'w?.XyOC|B|e#Dl@<`Z`9C~;|wPz?J;1oyMrtx6ɚ~K9/Oypsx7䀪2 K oh`?~ovo # XвF x@/\X Ebvw <mOByo,C SG%f|\ ;}Ŀ?{# ~)DGp0 FewNp ~@| ?' {[Tt9oo*NNb}BO:1?? R'?jeav`uNM^|<(N5 Ȓ m CtVLhmOtO@<60_~6 |HlJL<l$,^Zi$ppA__j]^0v?]|0UgY,_t(fgBz y~)?C?Gu:@0^ş > o\;~Wo,pwDs0\HX" f߳W62>z# @ ?~yAp`{juVY@~G1OR>8X{b{syI)/iDF0,~Xp+=5vyx&672xEw p`r%>Xl1"y>C 4G |b~sz@d "'WH|<g xpžN"u0t"r_sx~?x  dx}_s>@'5bpw?glyp>;>?O'|l|?@*0Gxw{z ~wsG0g@ho+TN=8/> \}JvDzB(yxRxP?,=-/g |zPi 5 xXxD?}o1.p 1}|݇ 7ky`.<evO0|<ߊw J9x+m;k!\Qq^u<~xׄ3}xx~3? }1p(x?p\l_1? z8X'%+%/7=p`|s=~ w/ 0w_>JdAz n%$ {<laa FLa3?+G֕Йp YyklDB-?+f2X3f{,f(t$`jX(#Ϯ U3:2X]beuMBVec#Bg] E#ee$j!bU&3CV@E23X{c7c)Bݞ&y/VHV72EF_!>tINUnUhuwf;I{'F !tXh1Ut-Z0y!7 ;g\w,,Z15e iCC+3Zb{lM,}\C$|c1Ń7rXOa\F=+)K19haae1"pBTR1vg-8{eUɕ`Kfv DM̙`gԬS#8M8Wεҧg,~BVԸD d&TDL,nYy0Kd0"yKXm3\&\fB- ۖʺ&ʉ_KZiXd$ bC؛x/3[a\ S39+@vTYS@["QfEV߬whMܘiΒE)TC>L2FKlb""ȲTvg͓lf9SQX~U&[5^yv3r[1 Vh*Y_"@ˈTCݠUcِ#լZtvP.kӷRq O!%-XHzfgV'|"Wa3X gJEY4Z#6y4g$Bf U0.р%,\^PVyș7 /+:&3#uDO.9Bѐu3X>$q^ g%vkV)?9Iq3zEp/&)D4LH\3DrߘF7Swv6Pw\FV 7k\hpG$GlXqYӂ 1J4 H%0Rs6|e!ߪ"lCLnvábW3vG $;N!YqU"2SdoL nC7[>csw4[Yhdw3 Φavz͑t iW&Y0yT"RdJ ˉvDZs; }NFZr7;v-~\4edaty35S3ę,!4% Mo:)k A4Q5n_frCE& 愒cPe ^7@Dzg3tH@Y-X.zj\ \F8pfPdg.yҟ& g3 m\+$o@p#3@!bNp`5E.fu oDa `v3X2jAĢu3yZZ 3}1-'CQ9+VȪ@2YQj?ٯV18[F&Zb6C3q[eH`5I$X@f[s4>YYKOF14nvhX;CEM{f e6#EX=rH*W V#E 0[1XhUǺ(ܴ|2 W6F!csVf>\ij~\u\6bd7fa>C[ DV!F,E-Kٲu۳ALnO!g8qTEa305[}`=Ȱ|ڬ1fȴe6aM3❎YΌ|llf aALo3[#GXK0CwpsUٓ#r[h| >}l+,>J`e[tȑa݋}njVVD2cyYЮmVB3־L5ڥ afkm`db0K3#Yt07K2ݶ>W:3CUvfU?Yi͎{3[1Wgº2s62>,]_=f3\E ~l-f 3W5HL4p,ւ[Te*x&kx%$̏;E34k3+6f1 nef3,ٰp-HX#‚:n!,A|`Ln3 Wk QB54-pT-n$޴Q*Yfu l3Yn^̞cIhpngQݛr09ַ#* EւҿwCތt67mY!N ]6TUE×`df(03XXrs) !Ѯ2[`Gqp4qE$ -VVE4Rƹҍ]}2xo8:M3] Tgo9$lt0vf%kՇU=Č~@B!X{8C UҬP9ꍮց0# 88U$]a2 ?ZU+ۋ u8"]X#7Ẁ`͉٭K1G&f1h%DCUj%LėA,-15f3˓ٞs o.0brvG /XlAa15'3\[4nYZEYuPw#b1˱2㚅2KP1VUB858g]ftg!M-Xy0›2.y,8Aw3"xg3%`7impe0[+-Y4^{FXkk6f8=%ۺeti5˓@n-|ZlȨj̬2C}VyܢƧof_>#"Y}c5`4cܬBk J{43ZCc>Ef3K~BHɏ̉nVB<'vVRnQބW̬lr%CfUi {zC:\Qp6(9g2+Y$>kCc|K$/%Z02vt5qY}i,g"b?8|bŒ%Ekg!ڬ7Rvm̂|TDc`تpYBH2zPlfraA͉͖26YmϪ1X/]958㿙bE{hK,Y >diϛw2!eՆ?"-VTˊea95ӛE+g1 1Md 1n yz 3&b[H+If#>XYxg`"1& E38\a33\3kYdl{ ̂ Iͻtӝ3 X~$t5v'Bo7EYϨrݍ,c{4huijnmRfTblZB WuI9N@4&L4Mc5 <2UDuLfpVԀspݲ` uEyC%CˏVVq ª˚~]FDNϬ`y‚Cm88*$L?ێꏓU%bv~3D―ֳAx|tcd7g"gԭ.eY"",T^a&=6D|-\v*AE뗩,r! B>^VDnx-+ڙhZeg' 1EqBج[3Vy`Y?2q΍j E cZwsEf,:oVglY_d`f(1Z]hJfrqYb=K;a$lf.Tm38W#4#7ҸТ488En"qBFܴY7|eUxƭkgV{6eL(gvk\83.ȼAύ:V`rb 0o;Q!j^ x]eB i ot!(f"F3dXsĮOPb82Z_*!&X3+F+U8Xs[匋ٞ:KE,֐nLId.Yb `2Zg+Ȓ'΄6L䗜365C3^PjEOLȧdI ݌f!%ƥp'"[e"% [`֬A8q-1z4޺gVU,Vfs[!s֭31fZ6*/6s Tᜂ--qec[R7uX4VmVC#4.Bm:}ElDfox#@iܝc5aBldIʂۊMMh('f];cE5օLq#<]t4+!#/Qo=d&fݘ+8g` g4}u;2(bDsG%, Vd菍5d߳X|KʱYn.r_X 4ig6"%ku&e,fTczpFe7eIk9fhUaibD% BͼΥDޜuŌ`n]v Ģu8\6/rqǂ1>lw*Wqg1` zoBn`dhvd]f2aA de 673s^ҶCvlU޿ɐk.X34mB̕;s .rZpYh^!:cw[Xw3c ic%Un3[ڵ&b Z,![!K irfkFEs5?US ceO`wB!̼e }n2!2Y g p1,EgLnr5áf$=bwTgTM3CX:t- 1 fD!kf)znvʎdha ֮4 ؾ̍,X2â(ʧ1 ¬$z0Y|kyvnZ84+DŽh#iSj%eLo=lDDɆ,A{= n5ӹs9ֺ3֭(‹FKgL6@vjoV3ZfmuՌ(>g>lZ,X[x`FGzU`0sBۃJ,eyTHa#!-QZ[f3ޙkd,‚۶Ͳ1OZxÅ`C+֒62U-3_12Л>+-P3X`ցŌ,Y,'ҽϬf2!ZY=K%M`0 ל-_>[@ U2F v L ˊTih!h}8r,^Q7CY%^l%c3 1Z96Å=5'lC3[%E53YfSMVKάhekj$ փTlق$0\LZ㛛!e-;ĊyFch,Ymvgsc($.f.D  hApB'5U+ti!JdWjv`2;̶h&G 4+r뙋"y⊰4BWCee}HG=gpc[3VbDfCUؑp`%Ҍ?oF^61MaHHn5j|5.x[q"Y2cuGfq+ qאJ`[+ qp/t1+,]XS(aFB'fsn_*q{3m3 K!yֵreZLn5О ӂpʘq3dh/teymJcX120jə,2EeW"av0% . 暎`$2,#Ace5Ƭ-*tf;ƲYE$542T.-X5ppQp0xrcպ3 ="k#4K551ұE7}L* GnXa>D֗|jFK.Hh}fKZcO4wsfZ'(fi=Ӭf`0*.Xܱ*FHgFVvd$W͕b2ĎQ0{)~MN`cHрUD'iZg^%e\=Q77S$˅!!$KYW ? ˜v0/-T|a-̌wuS'Gkf1G,LjL,Bg],JtF&aEP(W %e)b%DcSD3T6wCʘu, ZLd( )f֎W5n!*jYҠU"A33#ҡ0i va `:T VbHdE-Gr˞Dιtd .n*4 3gX|C65?ŪVVFlYVH6#4CY\XY'9"%#+#g\0jiba"/PfCi5HHcvCa͑0&vKnMnU,!E6Vo$>H}w`4'D|(D@dW,ά3QyR/( f1[VSJI72ёfgIy]eRf:`"7} bˈ@QZY҈#JCTgDcuq+6Ne K̸`]'qRU`TV  ~u,g,_F"V.(YTpeJM3'C2ӋCUVdI-Y" .DO#n%N5C-‘TeM-=.f}b>d#K4 0Y rB3( ,mEv0fY>C!FL!9y1VV'B 4eTa`9G !"IfqveNfӲ'YR!~Z(Бt,sqV-J,z0YI1SdVUY0 VVB!KG ^ VX0M(FfA*ِPU,=D֝ ¡ZPXwC ap=N,Xk!!ToɆcR/ґ{MV!;؅psvŇclC{v"7>43)=c  #_0SE"Sawf\eX}4'lC Y٘- `MKȑ@2T|eaff-+b4˃+!!vfAZ $U*QR!J1!QX}(BTсCCC#OVsu~0 EvVdCJ:k@ȆcIs c1"H8=2`B4V!)!euF2_Xu̒9XfeC|~fpgJ>Ceғtf`cĺ" !:򰾱Ip/cCdDrH ee JَRi%tV."0&Xdp 3RzSR'wc0. 'q(r Cfl|4Uv &! "DP"00$R$VZaTO="hd|Uc4+!!"D@>d4D6B`EȟI(@7U%:3}Qr!2$'eY Ė1v^Twi%ON2M!X|b "3J7 ;YDx4*S!P5 *w[#tur"JdCCSO NAQU!B e$HDd$34 1!~d+r 2A1#|P1DRT A D U[Sl`C RÀdfEoQBv<"3ZA2Cy2SRBSRsb1RVc{BO'MA_n(!A _I0r!^vt/0`H;j籱@ Wwپ~oIERv7:j{`yC6>}wSp .p!^ } >sLz^aY;׹D,tc/:~_qSFhyKKE+a @] 98NP=.,W@?]p8Hw| 0P,/y!ǝzss_R//g_8%xĿv~0=Za3dpax| Dg??h#Ksdz?F XRcmc,ew~{px  CG0ÿTc# Z+_0x!q`7 }! v"d9^ȠɃ>X}@Ob^~[ 0Dz0~aɝ Yx9]<~ A~: ba^`XV|j[)Msf/_O 5TV+fO9 rvT ?>7jcMk| JX).rز|."F c,{w!kwIc2<~vȈ^&b6ϼۅ3>; ~twa7|L%gȣaC3(O%Z*spmt /~A <j d v'e(ʿķ8ri lN$xsq\m +}>$',hy|C3$p3J]+7o:N~'?Ћu`@pLu@L 躞JYT|$w?(<,/A0 cUu|.?@O[Cdj6@Upc1~=2(1,3HX..|M`dFDԙg"]^c~{j&ɥjz"M8~?oC|0{P ',kvuHXhU䀘β xw8^Zv y,aGeM2. :s@|f&DV<!ݓ8RXbA:`%u XeRf 1:y7xBǞ J '?sx2 ??We#ÂZ%̌aV+ գX<Œdgp?ᷗ ?>e֟  ~.V0ǁO-!cT B>V #񧈶ָgA\h%}qwx"[ HE,Cwb=XfOxWCJ%DUiC0tT~XYL+h, ǂou=xqgG){ؠ͸CC>9}.#s zel =p_p 7׾z n tg]tu`I#%?LVpG M?x*k2|V039?XCD3pї-Yb| a~rlL[|5H@ Eopj̀B8 9zْF`ASݵ8ggE@`'幖+VLPz|o3)frx`>.wp\7Q2|8!n}l~R[Ĺ:_Ͱ _w*ZfN`aO@hKbQRI8 -hC28 x\QN7,l~Ys{^9 bG!e[֨a8q @. fuQXw 1?ܝ2쇈g0 "~iHѿ=/?ϦqyW ,|y'qAD_5:+#(@8]D~2”y@`1n !d Bg?̑g !at;d?GO2nf0~fo-'>|6I޶Us&Ki@`O%- ,^\%·2|0𑞃 \п@兆@bxE 7pVeք|_[&|?L+ ǎ8i?hT#_V`_{IboE|ZǑ,Xy#`#`v5 A|o* z\ڣ05ܿ@.iԏS[Lpa=Ϣ F7??8$p? \r&oFXCq?q6f\B#I$19?-߱rKu -Gb8>3CA?/"gXI#3:Feą)Y=ᤷ~G_=@?^\l<#Mk`MH ?,11 AML0WO.1Y&C+߶{  .Y PF];[cwF3E૮ܪ鿇֔}@1 `ȏhYxk!Qs<}swQf̚d_y?Wq}kȈ$Hv\_GY3~[6;KS||`?lC1ԬPYQw 0iPvyfp7pϰp5@?7/_Sh zޅ8 sKV pG})XBD@+ ߸ND-ChiT-5?c /'`bybxp O'9|fKBܣsr#Ϳ7-5ZAu~<.2?~HE38?Ȣy <@ڏPC^?o s, !@y5C%d~{Ys#'i#t5DgM\YB.vXS8;>h{ٚOO_JP"2\ZڇvRwfti#j,gLևww70fPa}p6.R]X!;ڗz?R0 ]!XT5^H$p>wgSD _ Rٵ@P^,sKKG߀<&߸aMSjp "F  ~q'T.9DZuKMt~0y?9uz/+dYOj>+(!H_0x }ޠ5ZI?<-Ѽk H@߷%g@F?r` g?a&%g ||IGǟP-f > J˜<F\yzLA)Iʰjh@2^|Oc؛/oxZ|r࿍<~eO|Yޅ4< _!Sx72漸 -I_Xn6`U{_'&YB@|#hT6w@o x<~gA'S= Z^ ۡV1$gSzAq: RcR}z)Sp`}q]Sp@;?l^' c>@1J=wu>z :<|p@C'3 t=k>~ #eg@ $81 oAhvqS >ZEO/?躹V!xР !|dp>wup:cm7?{O` s'?-͏%'YAD=~&e  `?C塴x ggͶpg/d9_mZE2|“3x"A۟F8A~>oiX7ypODq[EgC~f@ـOse 0\0 `0\3?ob7>?'{-࿷@1NM#Y6hE]a)x _r ؇5W)) GA`beI~0:^ I wFOS"#sl{SBLs/}`V,<>vd , '3d+Ǹyؖ FWb!fb} Dv ^q<[qo`i4vo1m(?9?OCOY4,0}'u1@ U%Ȓ*+Py[\:6=1]07_@ODC<:6ʮa@?C^e)y_Oyp}c? C>"?Kn=2ΰK%c< rSO7 xBް{o&;9DW}m?(Me>+^KDj?9`F?7AXlzx8Xl,V-o2 C~ Q\VN22e4`rv֬s}c4+g. ;.%.7}QOjROWAr٩bpx/mNzYc x7z-f,Am Xn:|WyuL9 ҡ/CV,[?rP., icZfx@hWPilߕ[C2?Fggfxø4K=(j>ͷzg&Ƥ`ZK0.0t`?KaB@~mZBtݽ ?@y3P`0gk~wOpWI?kx|}7.Q!`ٟ~H`ΰƨ{~ V?=*k(8y% ~GQ?|cL 9V5D_ADכqp(VQ~J6h° |˹̀ucȖe3Zgl:q6wg|og(q[>ׇ v?mݿ!wKTfӜǮg>=wse%y|nOx#7?mO/ q"E{ّp0` =zcZAn`>p \W`t=iN@eלe; aK>?s0#gKG\ğ?ǺoH~lVO>4NcON*'c~9`?~_q˭i?V _?/?po |ჩ7O]+ˌ^-oV ~}:L9b@,;^ج#kmsEMLBDXN Z99~ޓ@#YQ0s7?r۔>]{|$@f v! *a8}hbfq9tw7cpl&0/;N}jXXCb1` QxO23gUwqKK*;@5p303Xa nD8Ezmp7O|hvmqa1Y[/&CM7S@\  aĈ)G>6j?^Ǵ@31LglwcO]'r 2%]@ 'p~RUcf8}\ tbw*o(u> Jne}'ho g'8)ZǂoP?ub@A;~*r@s?x zgdA۰dpv9ܚ1D$v$Ϝ}i )%HGr >>KA`k`!0: jKzA&r7w{c|O{VK www۵c|X0 -o83/,=/~MG?hGg , x< nֿ f63 =9Ȉ7 d8bqY-pY}A|ߞ^~jV l.z?_Sk d 0eK pŁ@`ᆧNV! YJ08}OR r` eF@d|ڶ10@8&po < ,&3[0aƓjolPw7?!_ m.t@CA`ʟ3/Gފpx<~F\| } Є1P+X&{7-^Ex`|R;E_ cZA!:߇Cs^ 3 ׸sa?)s)kM {| v $sG0q}~> ^cWy# @7?u>3^Q R?5d8jfs58{yb=Df&$`,u=͂@,iO ~_,YK-|?',:0S 2Cp?` B>ތs3 ]w_&`;~9`O-N{h1mOp x9[-"¿θǝ<8l >hu9ԧ"@~ۇB>^&!Gд,=,K9 B? 1:04= @s_/pW? _CS}9G8/^xu|6?'?Scg?G82orCH55|0xgKpq|گ"DSp֡3ohd`Z^B?;|wd{Va 45po)' HG>//RAYA??p&2r"u`_-?wsĕ?}r*%3}|:G'|1?Ugſ:8#lKM݀,f?v\J"L՛//GA`wW3- i x8  |`Y ? =\C38+9M';?30|y .5(; N+GV? ]c vۅg&/>fu?>L|B{Yw8Lp&1Ocn!x^yh։1_Re~{OHk7l$~?wUnx*1S=c,p)iwc(?82MqXCdL`C{;iqJ  tg{(j7t>Y0wYh%@~xc<늟J~3?3| A޵ł w=s`t3lTx) krx.LT,y#p&/&>wn;Uv7 8h$.Gme uf"5z,^XGB9 X Jq^y~ku ɹwR` ho>fOe? '*dTxp!q)DWz߮N3s+Y:}=qCssHv~@`pd}4fϸ>Ey &7W2g!'c!~y03GYd rag^{9n>YY; e'<wPyE=o@YzVGB-Yu!dBd4/'fkzg)`xdHJ.ͪa]LFw ?qaDf5pALB"va`yoP p#ؖ-=0 m(Vu}b#3=q?3b5X0?G=qW>ł P :3CfCk~'߫U)Ə](4qL%W3Y&\s +"xM >g> $7Ed}Lwu~^0;zco@v4N ` ><2wwtstp( !gİZp f`(d. I#y`81vpg#~4DqXǏ?um9~tGvM0uQ]$VvR3G[L g󲱭5s`$2p!`sRrgX}ӱg'G`7̈́PYMqAv8xQBsO Ao?{ +[yH{pGAoO?fp6f'k?}[V`̛/ҙFxTw|X2& p7̙: ;O.{/˃.>hE C~lh s>?TKA?-|=?a 'C>gΊ 9@hvt~yƿƾu+ p:Oef8ҬAvA?, *6?sqnJ!b*mϡJBa@~غA~peyf+,`Ӈ.C 0c"M f$hmys:v7pŁ)g^$b`YpVI +AfQۻ:$4@g>:; Ho#_kmE310ȇw@p5 gI`r⚕e6yrq3!$n0gч ]} hN33 hk45ίS9`9wf=_~?>aS60= t>$aKfGghu]a_{v \ fexEF$}{5gCV*|ϫhvDN!$!C`-Y; }6w:w4Ih{v{<-o {K$l_{:?iwjRhB_pDMwGr}sU/˾̈́ "FO}f}g/VY a?6[~ m VR x[ ~>+*z\vtD~'A g~|1cIz@{~./ J>~=) 9y\.Y~?h]&pu}L}T ZP?l?zՃ$of>xu ֏u+\6?77wSA~`p&<۴/@ daXZx`8!*`_f϶ pfGXDP0@ [13wijQ_CIpg6@ wL}3 ]DO+ ?!gpjf1,4sZVe=@8 ?@ ݜjpw@wp E3p`ɿp?p&"Ad7hop"Cww/t]wS0{[d~,Ccw{?u?vurCO?Na?<|ː;s3ĎT38 ?{DA}/Pj `{[8?p /3ր 0aM-0>ʑw8~ݜo_nKF/_ 﫵;ox~A&'7yib?\ۀr ?gm)H,]x巐㵓vgVzN/@C== l /VU=8?;-7BB|*O^>x} ?3xGt!},c6"4x9-yr ƬL?!F ՗?E+gwfngp>s&@Y3v`Yw`wtXYNkp O]!cwN]fQԜ˂JdPGOωGd?() Dݠv~t~3/-G~$l<`Y? m" K^S s( ^|Ydzg~|>YwZn װ/xK_8 k|!z*Fo R0db\̺*Uh{ 4|~џYz`]}o4?~Ɵf|7Tl `0sw\@ %N//~L! T~>-AM| _l@|e>cL s/&\Ac+v8?90z+q(Zdf}C~"_< QQ0ĸrFv< _?}Ib5AN[6}?_%a'\|[!w*d004c̮WV'۾yS<o ?oz|0>ߖZfL?4f]@PrI ƪ_ I!o\`D+~&8zX??hA 2|#p(>qFU=p(??i?i&*݀Gƀ/Vh#*s=x@1)rr~p?Za㻅 @p  OzsiF>ȡ6f`8C|~Eqgu!nr^#  /ypk @Nx9oC _0^%0p?~aa=KJm7_x^3T j;z O'w "\?| ]^C@,%^<7NDYKYqKv R/qoS{8 <?.ߗ _g[a9z0; ?s0 sp@ \}P$s߆x_>.(e[,?|h{-y5?za|`" ?#m&:|`DS zb_G,^W#GcuG>~H*`C35E@?_ ;| ?֗?Qnl[I)r 'L@M >]}>AW/?>1??h0xo><"M Ԋ}+0ur:?b|v@~ Pi66u cL|N>?X,tP!gcwO@@m7 :hg6fsqewAs30QpDzt'w'90# 2(tFn?Pa $-1p#ƂEz@.2Tr~ƌ$tm>zo:n3Q&D6ߤr}@;+I1~u1g  ~.OLvx@y|8!fsp^@׳$yv\B`ʿ1y}X~$&x~L~Gov<7wM0ܐ>5/Ot+}XWl]l oP_/Q>x?d _k髇$lpM~`1do6p Ag+txp@]~ )Wpa2 qyX~@V~Qgu4 ~|{~_~xw#aNB)v= ?qxw8l7T?O<?||\YX& a37= Kww4)p`A{/#yVa7Vt|̅2Q :j 3IĈ[_5ڌq =(4ӰwY x(>? @dP \3PlX3loAf̠@/yhD0w|m}8@?Y/ V{`f|wXZgVC fh*ZW?Gz)_ps>v`#,~`l=->s; H?O/8MF㸙YC@OL 9C>2U @| ?c?w%,]|?x |XufO`0Ww~?)|x3Sy0X+iD|i1B |}܇,x Ϳ" 3_50*vV5pw$V ²5K> fҞM.ƣ>Pc7?UW YϲL':>[/~##0mt_tp6tY~.>%yuHgCpX O?$za8jp~/|x6Cquc]i#f7NOb ?/m&# XU=g0b_0<`87{V:1|\ Nlf_K`|_@>TDWdͱ8L$k V D ^ mf} g5eMh}` :Z]o"?+FS֪_3=od88lG#SN@EOy:;~7B~;ZukD_]p_hoj=X<|63p\^^|\;_ ͚|(5ǀ=hZjW_bqB ~3?c~??C Ik@0ugp Ui̺`n Lqo&sC?q$NO1+|{nfcHz!-~Rvj|are<8?Y j8_=9k@=lM~Y?b/v?]k,puHA_:w_(´ Xpom ;~fq `k,@o:8Ĺ` ?┚nyT,&gNq v׍[0?0K 9F<-/cX>cC1[" 1$X>>f8;w,*E<<)/$\89oF@wU> [n?{_?weː~oN,~A9q&0=Bf@&;`}|ơ_q0m2=gܫhc?f%VKxX ~Hv?{nwy }^V}@}f_>74dP=c ./_xs?Yq@>`?Gy~v?:u)kO~z?YpI.9p?p5Uf^s0`"O:}]M1cd ">>0Y@ +"A@~{b.N~rﰬ<@L3MC>;L?=I r ?fpxpEOhڀ`5!B, w< pp&p$Bb?|~ڟs'7yt`PzAD~s7v9,q@plWw7tTו97+e@ fB!07zK,N1e.gDk(ph?8e򏖗Y_@y]d-(02\G\>Pos <(jGhFK(~~hf7右HwQef |"x?Wp6|'̾lM%cpw(W8 ٮ9-Z7-WkH$DzD7b9uȻ[ݱ1Z?#|!ɖu@7`~f^}>q_{?Ƒ܈S@l)/d0ZgAA)Y *шRh"|Hh& p, a~@{q0wx^@`WdvAcXnzك@txc- ?D 0&Xn`m"1M)^0^/C gUZF`7gXJpM7 H `?w ~woDb8sXSӸߖF'|1Q@ak[i!-=$MJK de 0WRa|lc~ ;̿`o%p9JBq6 L(>?>Vq"L~;_ G` ? Oە_kpi ҩ`˴X0ٷ Cm&2L `~g'#?w /׃.+g0XDϛ*y fD|XB26rr|4~vKz X3 {K^7q > HC?n<86MX~x2?1~~b+(ZѦc`8IBM | HzHy NMXf XHz`ABp><w3@3^|?<%NNTOQGk3@`B@BDBHBLBPBDBHBLNu.ENDE2CTORE .FADE2CTORC .  t4..  tRNSWER MATt +/+b+++++,",B,Œ,ǂ,,,,-"-B-b-ׂ-٢---.".B.b....."/B/b/////0#0C0c00 0 0 01#1C1c111112!#2#C2%c2'2)2+2-2/31` `!#%')+-//O579=?O/OoY[/cogim` q s@u`w}O / @ ` @ `  @ ` ǀ ɠ @ ` ׀ ٠  @` @`Oo   1a!!#A%a')+-/1!3A5a79;=?A!CAEaGIKOQA+UaWY[]_a!cAeagikmoq!sAuawy{}!Aa!Aa!Aa!Aaǁɡ!Aa١!Aa!Aa " B b  !"!b!!!!"!""#B"o"'")"-"#1"#3B#59#;#=?$/$CB$o$I$K$$OQ"%Ub%W%Y%[%]%_&a"&co&g&i&&o'q"'sub'w'y'{'}'("(B(b((((()")B)b)))))*O*b***+/+b+++++,",B,Œ,ǂ,,,,-"-B-b-ׂ-٢---.".B.b....."/B/b/////0#0C0c00 0 0 01#1C1c111112!#2#C2%c2'2)2+2-2/31LEDGERS_11 t ARTICLESMATt AUTO t MAINMENUPRGt zDESKTOP INF1t INTRO11 PRGDt \DISK_2 +t READ_ME HIDt 4`8IBM | HzHy NMXf XHz`ABp><w3@3^|?<%NNTOQGk3@`B@BDBHBLBPBDBHBLNu.ENDE2CTORE .FADE2CTORC .  t4..  tRNSWER MATt +/+b+++++,",B,Œ,ǂ,,,,-"-B-b-ׂ-٢---.".B.b....."/B/b/////0#0C0c00 0 0 01#1C1c111112!#2#C2%c2'2)2+2-2/31` `!#%')+-//O579=?O/OoY[/cogim` q s@u`w}O / @ ` @ `  @ ` ǀ ɠ @ ` ׀ ٠  @` @`Oo   1a!!#A%a')+-/1!3A5a79;=?A!CAEaGIKOQA+UaWY[]_a!cAeagikmoq!sAuawy{}!Aa!Aa!Aa!Aaǁɡ!Aa١!Aa!Aa " B b  !"!b!!!!"!""#B"o"'")"-"#1"#3B#59#;#=?$/$CB$o$I$K$$OQ"%Ub%W%Y%[%]%_&a"&co&g&i&&o'q"'sub'w'y'{'}'("(B(b((((()")B)b)))))*O*b***+/+b+++++,",B,Œ,ǂ,,,,-"-B-b-ׂ-٢---.".B.b....."/B/b/////0#0C0c00 0 0 01#1C1c111112!#2#C2%c2'2)2+2-2/31LEDGERS_11 t ARTICLESMATt AUTO t MAINMENUPRGt zDESKTOP INF1t INTRO11 PRGDt \DISK_2 +t READ_ME HIDt 4