IMD 1.16: 7/06/2007 20:17:00 åååååååååå-PUB 010747 BASK 747 DOC?ARC DQC6ARC EXEG !"#AZM LBR€$%&'()*+,-./0123AZM LBR€456789:;<=>?@ABCAZM LBR€DEFGHIJKLMNOPQRSAZM LBR€TUVWXYZ[\]^_`abcAZM LBR €defghijklmnopqrsAZM LBR tuvwxyz{|}~€�‚ƒB5MEP AQM2„…†‡DISKBUFSHQXˆ‰DISKDOC LBReŠ‹Œ�Ž��DISKED LBRG‘’“”•DISKIDX LBRI–—˜™šDISKLIB BQS›œDISKMAP COM�DISKMON LBR'žŸ DISKRTN EXEL¡¢£¤¥DISREL LBRc¦§¨©ª«¬DISSASM LBR^­®¯°±²åDND $$$€³´µ¶·¸¹º»¼½¾¿ÀÁÂåDND $$$ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååÿõ�:PROGRAM NAME = JETSET�:IFR FLIGHT SIMULATOR (BOEING 747)F�:CREATED 06/28/81 BY JEAN SZYMANSKI��:REVISED 02/25/82 - INSTRUCTIONS IN NOVEMBER 1982 'BYTE MAGAZINE'¦ �:SYSTEM "CLOCK OFF"° ‰ 'Ï�:BEGIN CRUISE MODULE HEREãÀ:’ Ð:¹ æ.e†ð† M$()KRçæ.e†:XQç@"RSç:‹ ÿˆ()è€ Í RSçê8RWç(ê)ëÿˆ()éERWçRSëRW]�:SET UP WIND TABLEl † WA( ,)Œ"‚ Iç Ì :WA(I,)çÿˆ(g):ƒ±$‚ Iç Ì  :WA(I,)çZëÿˆ()éá:ƒ¹&Açä(‚ Iç Ì  :WA(I,)çëÿˆ()éA:AçAé:ƒù)RS$()çÖ(,"_")*RS$()çÿ˜( )é". ."éÿ˜( )8+RS$()çÿ˜( )é". ."S,RS$()çÿ˜()éÖ( ,"_")u-�:VOR STATION FREQUENCY TABLE‚.† VF()ª/VF()çÍÌg‡:VF()çš™c‡:VF()çffa‡Ò0VF()çffk‡:VF()çš™k‡:VF()çff`‡ú1VF()çÍÌj‡:VF()çg‡:VF()çÍÌh‡$2VF()ç33c‡:VF( )çÍÌi‡:VF( )çj‡O3VF( )çš™`‡:VF( )çÍÌk‡:VF()çffg‡`4VF()çš™a‡�>�:ILS CONSTANTS FOR AIRPORTS�?† VG(,)ª@VG(,)çî:VG(,)çÄBVG(,)çð:VG(,)çÞEVG(,)çZ:VG(,å)çÙùGVG(,)ç+:VG(,)ç¤HVG(,)ç¦:VG(,)ç*0OVG(,)çU:VG(,)çKSd�:VOR STATION COORDIATES TABLEbe† VP(,)‚fVP(,)ç1ˆ"†:VP(,)çÇ‹‡¢gVP(,)çÙÎ †:VP(,)çqý‡ÂhVP(,)ç˜n)†:VP(,)çjü ‡âiVP(,)çÅ %†:VP(,)çÓ ‡jVP(,)çØø*†:VP(,)ç š‡"kVP(,)çã¥9†:VP(,)çH¡(‡BlVP(,)çff†:VP(,)ç?Š#‡bmVP(,)ç«#†:VP(,)çjü‡‚nVP(,)çF¶+†:VP(,)çY‡¢oVP(,)ç˜n%†:VP(,)çòR$‡ÄpVP( ,)ç5Þ+†:VP( ,)ç±r'‡æqVP( ,)çR82†:VP( ,)çØc0‡rVP( ,)ç!0&†:VP( ,)çÑ¢0‡*sVP( ,)çáú†:VP( ,)ç¾ô‡LtVP(,)ç'1(†:VP(,)çê&‡nuVP(,)çJŒ†:VP(,)ç#›‡››„ FUEL,LBS,%,VHF,MHZ,THRUST,MAX,IDLE,REVÕ „ PITCH," +"," -",DEG,FLAPS,UP,DWN,WHEELS,UP,MID,DOWN¥„ COMPASS,AIRSPEED,KTS," VERT",SPEED,FPMª„ ALTITUDE,FEET,CLOCK)¯† P$()B´‚ Iç Ì :‡ P$(I):ƒO¹† S$()l¾‚ Iç Ì :S$(I)çÿ˜(I):ƒƒÀ‚ Iç Ì :F(I)ç:ƒ³Ã�:INIT FLIGHT VARIABLES TO STATE AT LIFTOFFáÄFUçæ>’:FPç?:CCçK:ZSç|:RCç0ç:F$ç"#####":V1çAL:� (#"€�:DISPLAY THRUST"Š‚ I ç  Ì 2"‹Ê (Ié), :‘" ";ÿ–(Ã)8"ŒƒN"�Ê (TRé), :‘">";b"”�:DISPLAY FLAPS‹"™‚ I ç  Ì :Ê (Ié),:‘" ";ÿ–(Ã):ƒ "žÊ (FLé),:‘">"®"¢F$ç"+###"É"£YPç:XPç:V1çFA:� (#ê"¤‹ F()ç Í SXç:¿ ,:‰ § #¥‹ SXç Í SXç:¿ ,:‰ §#¦SXç:#§‹ F()ç Í Ê  ,:‘" ":¿ ,O#¨�:DISPLAY BRAKESx#²‚ Iç Ì  :Ê (Ié),7:‘" ";ÿ–(Ã):ƒ�#·Ê (BRé),7:‘">"š#¼�:WHEELSÃ#Á‚ Iç Ì  :Ê (Ié),?:‘" ";ÿ–(Ã):ƒØ#ÆÊ (WHé),?:‘">"ë#Ç‹ F()ç ‰ Ó$È�:DISPLAY LAT/LONGDITUDE/$ÉYPç:XPçE:F$ç"###":V1çDP():� (#W$ÊYPç:XPçI:F$ç"##.#":V1çDP():� (#~$ËYPç:XPçE:F$ç"###":V1çDP():� (#¦$ÌYPç:XPçI:F$ç"##.#":V1çDP():� (#¶$ÍÊ ,O:‘"N"Æ$ÎÊ ,O:‘"W"Ð$ω Óî$Ð�:DISPLAY RUDDER POSITION%ÑÊ ,!:¿ ,:‘ S$(),%ÒÊ ,(RPé):‘ ÿ–(º):¿ ,:‰ ]=%Ó‹ F()ç Í ŽV%Ô�:DISPLAY VOR VALUES€%ÕYPç :XPç&:F$ç"###.#":V1çVO():� (#¡%Ö¿ ,:Ê ,(:‘ VO$():¿ ,É%×YPç:XPç':F$ç"###":V1çVO():� (#ó%ØYPç:XPç&:ALçlÆMZçz:TRç:FLç:FAç :BRç :WHç <ÈRAç:ZS()ç|:FA()ç :CC()çK:AL()çl:RPç(dÉDP()ç':DP()ç4:DP()çK:DP()çžÊL1ç€w†:G1瀇:LL()çL1:GL()çG1:LS()çL1:GS()çG1ÌËVO()ç:VO$()ç"OUT ":VO()ç:VO()çšùyŠàÌGX()ç:GY()çòÍXOç��:YOç ÜTV$çþŽ:� Š:TLçTDÝTW()çTD Þ� O*à� XD,K$çÞ:‹ ÿ’(K$)ç ‰ 0N.�  X0‰ è{O�:DISPLAY PANEL (HEADERS ONLY)¾TÊ ,:‘ P$();S$();P$();S$();P$();S$();S$();S$();P$()àUÊ  ,7:‘ P$( );S$();P$()VÊ  ,9:‘ P$();S$();P$()$WÊ  ,9:‘ P$();S$();P$()JYÊ ,:‘ P$();S$();P$( );S$()^^Ê ,E:‘ P$()—cÊ ,:‘ P$();S$();P$();S$();S$();S$( );P$()ÓhÊ ,:‘ P$( );S$( );P$();S$();P$();S$();P$()åmÊ ,:‘ P$()rÊ ,(:‘ P$();S$();P$();S$();P$()EwÊ ,:‘ P$();S$( );P$();S$();P$( );S$()X|Ê ,:‘ P$()~}Ê ,E:‘"VLF OMEGA":Ê ,B:‘"LAT"‘~Ê ,A:‘"LONG"¿Ê ,!:‘". . . . : . . . .":Ê ,(:‘"RUD"ä€Ê  ,!:‘ ÿ–(É);Ö(:F$ç"###.#":V1çVO():� (#&Ù¿ ,:Ê ,#:‘ S$( ):¿ ,.&Ú‹ VO$()ç"OUT " ‰ ÜJ&ÛÊ ,(VO()é):‘ ÿ–()P&ÜŽg& �:KEY POLL SUBROUTŠ&%‹ K$ç"F" ï K$ç"S" Í KKç:‰ R­&*‹ K$ç"," ï K$ç"." Í KKç:‰ RÇ&+‹ K$ç"/" Í RAç:‰ Wê&9‹ K$ç"U" ï K$ç"D" Í KKç:‰ R'>‹ K$ç"W" Í KKç:‰ R'C‹ K$ç"V" Í KKç:‰ R8'D‹ K$ç"R" Í KKç:‰ RR'E‹ K$ç"L" Í KKç:‰ Rl'F‹ K$ç"A" Í KKç:‰ R†'G‹ K$ç"Q" Í KKç:‰ R¡'H‹ K$ç"M" Í KKç :‰ R¼'I‹ K$ç"C" Í KKç :‰ Ró'R• KK � „,Œ,’, ,£,§,¬,°,²,¶,¹ù'WŽ („�:THRUST KEY,(†‹ K$ç"F" Í TRçTRê :¡ TRçTRé@(ˆ‹ TRè Í TRç:ŽR(Œ�:RUDDER KEYSp(�‹ K$ç"," ‰ � :¡ RAçRAé‚(Ž‹ RAæ Í RAçˆ(�ޤ(�RAçRAê:‹ RAèê Í RAçêª(‘޾(’�:ELEVATOR KEYSÔ(“Jç:‹ BRç Í Jçö(”‹ K$ç"U" Í FAçFAéJ :¡ FAçFAêJ )–‹ FAæ( Í FAç( )˜‹ FAèê( Í FAçê(4)š‹ FAæ Í FLç:ŽH)œ‹ FAç Í FLç:ŽS)žFLç:Žd) �:WHEELS KEYz)¡‹ WHç Í WHç :Ž�)¢‹ WHç Í WHç :Ž£)£�:SET VOR FREQ¯)¤Ê ,8Ô)¥° …"VOR FREQ ";VX$:VO()çÿ”(VX$)é)¦,Í);ÿ–(»)û‚‚ X ç  Ì 0 Ï  ƒ‚ Y ç  Ì )„Ê (Yé),(Xé):‘ ÿ–(º);1…ƒ Y9†ƒ X_‡Ê ,!:‘ ÿ–(È);Ö(,Í);ÿ–(¼);�ˆÊ  ,(:‘"VOR":Ê  ,-:‘"MHZ"–‰Ê ,':‘"RANGE"±ŠÊ ,$:‘".....:....."Ç‹Ê ,':‘"RADIAL"éŒÊ ,(:‘"DME":Ê ,-:‘"NM";�‚ Y ç  Ì :Ê (Yé), :‘ ÿ–(Ã):ƒ5Ž‚ Y ç  Ì :Ê (Yé),:‘ ÿ–(Ã):ƒY�Ê ,:‘ ÿ–(É);Ö(,Í);ÿ–(»)o’‚ X ç  Ì  Ï �”‚ Y ç  Ì �–Ê (Yé),(Xé):‘ ÿ–(º);¥˜ƒ Y­šƒ XÒœÊ ,:‘ ÿ–(È);Ö(,Í);ÿ–(¼);äžÊ ,:‘"ILS"  Ê ,:‘"MARKER":Ê ,:‘"> <" ¢GX()ç:GY()ç( ¤� 4B ¦¿ ,:Ê  ,:‘" "l ¨¿ ,:Ê  ,:‘"RADAR ALT";Ò);"STALL"ƒ ©Ê  ,:‘"> <"‰ WŽ« X�:DISPLAY INSTRUMENT READINGSµ Y‰ ÐÛ ]YPç:XPç:F$ç"######":V1çFU:� (#÷ ^Ê ,C:¿ ,:‘ þŽ:¿ ,!bYPç:XPç:F$ç"###":V1çFP:� (#5!gYPç:XPç':V1çCC:� (#P!lYPç:XPç':V1çZS:� (#w!qYPç:XPç.:F$ç"######":V1çRC:� (#ž!vYPç:XPç7:F$ç"##,###":V1çAL:� (#Á!{YPç:XPç:F$ç"###":V1çMZ:� (#ò!|‹ F()ç Í YPç :XPÊ ,8:‘ Ò):Žþ)§�:SET VOR RADIAL *¨Ê ,81*©° …"VOR RADIAL ";VX$:VO()çÿ”(VX$)F*ªÊ ,8:‘ Ò):ŽV*¬�:FLAPS KEYl*­‹ BRç Í BRç :Ž‚*®‹ BRç Í BRç :Ž—*°�:AUTO - OBS KEY¤*±F()ç:޽*²�:REVERSE THRUST KEYÑ*³‹ F()ç Í TRç×*´Žñ*¶�:MISSED APPROACH KEY+·‹ F()ç Í F()ç +¸Ž+¹�:FLARE KEY8+º‹ F()ç Í FAç:FLç:ŽH+»FAç:FLç:Žg+è�:SITUATION UPDATE ROUTINE‡+êTV$çþŽ:� Š:TJçTDêTL:TLçTD‘+ò� L›+ô� j¥+õ� yÁ+ö‹ TRç Í �  :¡ � dË+ø� RÕ+ú� Zè+û‹ F()ç ‰ @ò+ü� xü+ý� Ü,‹ ALèç Í AFç:‰ ¸ (,‹ F()ç ‰ K9,‹ ALæ ‰ ,L, ‹ F()ç ‰ BW, F()ça, TYçYNo,TXçXNêî‡,‹ FAæ Í AFç:‰ ¸ Ÿ,‹ FAè Í AFç:‰ ¸ ²,‹ F()ç ‰ &Ë,‹ AXæd Í AFç:‰ ¸ ä,‹ AXæP Í AFç:‰ ¸ ý,‹ WHç Í AFç:‰ ¸ -‹ TXæ Í AFç:‰ ¸ 0- ‹ TXèê) Í AFç:‰ ¸ M-"‹ ÿ†(TY)æd Í AFç:‰ ¸ W-$‰ Kf-&AFç:‰ ¸ y-,‹ F()ç ‰ :Š-.‹ FAæ ‰ 4ž-0‹ FAè Í F()ç¨-2‰ KÄ-4‹ F()ç Í AXçAL:F()çÕ-5‹ TRç ‰ 8ð-6Nô5L‹ MYèç Í Qç :¡ Qçþ5M‰ P6N‹ MYèç Í Qç :¡ Qç06P‹ MXç Í MAçZ:‰ VA6RMQçÿ†(MYìMX)R6TMAçÿŽ(MQ)ëKRi6V‹ Qç Í MAçZêMA:Ž€6X‹ Qç Í MAçZéMA:Ž˜6Z‹ Qç Í MAçêMA:ަ6\MAçéMA¬6^ŽÑ6x�:GET POSITION FOR OMEGA DISPLAYù6zZS()çZS:FA()çFA:CC()çCC:AL()çAL!7|ZSçZS():FAçFA():CCçCC():ALçAL()C7~‹ ZS()èæZS ï FA()èæFA ‰  e7€‹ CC()èæCC ï AL()èæAL ‰  „7‚F()ç:‹ TDèTW()é< ‰ ¢œ7„AJçZSëÿŒ(ÿ†(FA)ìKR)¦7†� ì¿7ˆDNçGSë(TDêTW())ìÛ7ŠCNçTK:L1çLL():G1çGL()å7Œ� Ð 8ŽF()ç:TW()çTD:LL()çL2:GL()çG2!8�LS()çL2:GS()çG2=8’‚ Jç Ì :DP(J)çCP(J):ƒq8”ZS()çZS():FA()çFA():CC()çCC():AL()çAL()™8–ZSçZS():FAçFA():CCçCC():ALçAL()Ÿ8˜޳8 TW()çTD:F()çË8¢AJçZSëÿŒ(ÿ†(FA)ìKR)Õ8¤� ìæ8¦DNçGSëTJì9¨CNçTK:L1çLS():G1çGS() 9ª� Ð"9¬LS()çL2:GS()çG259®‹ F()ç ‰ ²K9°LL()çL2:GL()çG2U9²‰ ’g9Ü�:VOR ROUTINE{9Þ‹ VO()ç ‰ ž9à‚ Jç Ì :‹ VO()çVF(J) ‰ âª9áƒ:‰ Ä9âLCçVP(J,):GCçVP(J,)Ô9äLBçL2:GBçG2î9å‹ FAè Í RCçê:‰ K .7FAç:FLç:RCçê:‰ K(.8FAç:FLç:RCçê,:‰ KA.:‹ ALè Í AFç:‰ ¸ T.<TRç:FAç:FLçd.>AFç :‰ ¸ „.B‹ XNèê& ï ÿ†(YN)æd ‰ F•.C‹ ZSæ ‰ K¤.DAFç:‰ ¸ ³.FAFç:‰ ¸ ½.K‰ ¤Ï.L�:UPDATE FUELò.NFUçFUê(êTR)ëTJ:‹ FUè Í FUç/PFPçFUì0 :Ž/R‹ F()ç Í RCç:Ž)/S‹ F()ç Í ŽG/TRCçZSëÿ‰(ÿ†(FAìKR))ë33K‡]/V‹ FAè Í RCçêëRCc/XŽy/Z�:UPDATE ALTITUDEŠ/[‹ F()ç Í Ž�/\ALçALéTJëRCì<±/^‹ ALè Í ALç:ŽË/`‹ ALæÈ/� Í ALçÈ/�Ñ/bŽç/d�:UPDATE AIRSPEEDø/eZSç êdëTR0fZSçZSêëFA0g‹ BRç Í Ž(0hZSçZSìé:Ž;0j‹ F()ç ‰ lN0k‹ F()ç ‰ vb0l‹ RAç Í RTç:Ž{0m‹ RAè Í Jçê :¡ Jç�0nRAçÿ†(RA):‹ RAç Í RTç:‰ q¶0o‹ RAç Í RTç :‰ qÒ0p‹ RAç Í RTç :¡ RTçæ0qRTçJëRT:RAçJëRAó0rCCçCCéRT1s‹ CCçæh Í CCçCCêh:Ž&1t‹ CCè Í CCçhéCC,1uŽ;1v‹ RAç Í Ž[1w‹ RAè Í CCçCCê :¡ CCçCCéj1xRAç:‰ s�1y�:UPDATE RUDDER POSITION VALUEŸ1zRPç(éRAéRA:Ž×1°�:COMPUTES DIST & BEARING TO A KNOWN POINT LOCATIONARçVG(J,):LLçVG(J,)ü9æLOçhêLL:è� °:ê‹ DRæ, ‰ 3:ì‹ CRçæh Í CRçCRêh=:í‰ *O:îVO$()ç"FROM"t:ïVO()çCRêVO():‹ VO()èç´ ‰ òŽ:ðVO()çVO()êh:‰ ô°:ò‹ VO()èê´ Í VO()çVO()éhÔ:ô‹ ÿ†(VO())æZ Í I1çVO():‰ ö:ö‹ VO$()ç"FROM" Í Içê :¡ Iç ;÷‹ Iç Í VO()çI1-;øVO()ç(éIëÿ…(VO()):VO()çDRG;ú‹ VO()è# Í VO()ç"a;ü‹ VO()æ- Í VO()ç.k;þ‰ «;VO$()ç" TO ":VO()çVO()é´:‹ VO()çæh Í VO()çVO()êhµ;‰ ïÜ;VO$()ç"OUT ":VO()çšùyŠ:F()ç:Žý; ‹ DRæ ï DRè Í MKç:‰ î< ‹ ALæ  Í MKç:‰ î6<‹ F() ç Í Jç :¡ Jç ‚[<‹ CRæARéJ ï CRèARêJ Í MKç:‰ îq<F()ç:MKç:‰ î¡<Ê ,:‹ MKç Í ¿ ,:‘" ":¿ ,::¡ ‘" "·<‹ MKç Í F()ç:ŽÓ<"‹ CCæLLé ï CCèLLê Í Žã<$‹ RAèæ Í Žõ<&F()ç:F()çÿ<(‰ =*‹ F()ç Í VO()çCR:F()ç(=,‰  :=@�:ILS ROUTINER=BZNçAL:THç È4‚:MKçu=CDWçìQX�ëRWëTJ:‹ F()ç Í DWç�=D‹ F()ç Í CCçLL:RAç™=FCJçCCº=H‹ CJæ´ Í CJçhêCJ:CJçêëCJÇ=JHAçLOéCJð=LDCçhêHA:TSç2²VLçÿ†(LBêLC):BL()çê:‹ LBçæLC Í BL()ç12´VGçÿ†(GBêGC):BL()ç:‹ GBçæGC Í BL()çêA2¶LAçLC:� ` K2¸M1çMP[2ºLAçLB:� ` r2¼M2çMP:DMçÿ†(M2êM1)ƒ2¾‹ DMç ‰ Ħ2ÀQOçVGì(DMì<):‹ QOæ.e‡ ‰ ÄÑ2ÂCAçKRëÿŽ(QO):DRçVLë(ìÿŒ(CAìKR)):‰ Æë2ÄCAçZ:DRçVGëÿŒ(LCìKR) 3ÆDRçDRë<:‹ BL()çê ‰ Ê,3È‹ BL()ç Í CRçCA :¡ CRçhêCA23ÉŽW3Ê‹ BL()ç Í CRç´êCA :¡ CRç´éCA]3ÌŽˆ3â�:GET WIND VECTOR FOR CURRENT ALTITUDE¨3äIçÿŸ(ALì ):‹ Içæ Í Iç Â3æWDçWA(I,):WVçWA(I,)È3èŽã3ì�:SOLVES WIND TRIANGLE÷3îAçCC:LçAJ:� 4ðMXçLX:MYçLY4ò� â04ôAçWDé´:‹ Açæh Í AçAêh?4öLçWV:� [4øMXçMXéLX:MYçMYéLY:� Fk4úTKçMA:GSçVZq4üŽ›4�:RESOLVES A VECTOR INTO RECT. COORDSº4‹ AèçZ Í Qç:BçZêA:‰ Ù4‹ Aèç´ Í Qç:BçAêZ:‰ ú4‹ Aèç Í Qç:BçêA:‰  5Qç:BçAê*5LXçLëÿŒ(BìKR):LYçLëÿ‰(BìKR)85 ‹ Qç Í ŽO5"‹ Qç Í LYçêëLY:Žo5$‹ Qç Í LXçêëLX:LYçêëLY:Ž|5&LXçêëLX‚5(Ž´5F�:COMPOSES X,Y COMPONENTS INTO A POLAR VECTORÉ5HVZçÿ‡(MXíéMYí)Û5J‹ MXèç ‰ :‹ HAè´ Í DCçHA:TSçê>N‹ DCè Í DCçêëDC:TSçêëTS,>PTL$ç"W":‹ TSç Í TL$ç"E"?>RDDçìQX�ëZSëTJc>TDYçDDëÿ‰(DCìKR):DXçDDëÿŒ(DCìKR)…>VXNçXOêDX:‹ TL$ç"E" Í DYçêëDY•>XYNçYOéDYéDW©>ZLMçKRëÿŽ(ALìXN)×>\BEçKRëÿŽ(ÿ†(YN)ìÿ†(XN)):‹ BEæ ‚ Í MKçó>^Jç(LMêTH)ì:JçÿŸ(J)?`‹ Jæ Í Jç?a‹ Jèê Í Jçê/?dBEçBEì:BEçÿŸ(BE)C?e‹ BEèê Í BEçêU?f‹ BEæ Í BEçk?g‹ YNæ Í BEçêëBE|?h‹ MKç ‰ pœ?j‹ XNæ�� î XNèp� ‰ p¸?l‹ XNææ î XNèÆ ‰ pÁ?nMKçÖ?pGX()çBE:GY()çJà?r� 4@vÊ ,:‹ MKç Í ¿ ,:‘" ":¿ ,::¡ ‘" " @~XOçXN:YOçYN1@€‹ F8ç ‰ ŒD@‚‹ XNæà. ‰ ŒM@„F8ç[@†‚ Iç Ì t@ˆÊ (éI),2:‘ RS$(I)|@Šƒ I�@Œ‹ F8ç ‰ £¢@ŽÊ ,(XQé):‘" "¿@�YUçÿŸ(YNìš™…):XCç@éYUÓ@’‹ XCè1 Í XCç1ç@”‹ XCæO Í XCçOA–Ê ,(XCé):‘ ÿ–() A˜XQçXCA£‰ A¤‰ (A‰ àEA�:REVERSE THRUST APPLIEDXA ‹ F()ç ‰ uA VOçZSë¼t�ëö(<�:F()ç‰AVçVOê(† O‚)ëTJšA‹ Vèç Í Vç£AVOçVºAZSçVì(¼t�ëö(<�)ÀAŽÜAÐ�:COMPUTES NEW POSIT$()ç"---------- AN IMPROPER LANDING WAS MADE ----------"?JØ M$()ç"NO DAMAGE OR INJURIES OCCURRED.WJÙ RLç:‹ TXæd Í RLçsJÚ RWç:‹ ÿ†(TY)æd Í RWç•Jà N$()ç"FEET INSIDE OF RUNWAY"ÀJá ‹ TXçæ Í N$()ç"FEET SHORT OF RUNWAY"íJâ N$()ç"FEET TO LEFT OF RUNWAY CENERLINE"&Kã ‹ TYçæ Í N$()ç"FEET TO RIGHT OF RUNWAY CENTERLINE">Kä RXçÿŸ(TX):RXçÿ†(RX)VKå RYçÿŸ(TY):RYçÿ†(RY)gKê ‹ AFç ‰ ‰Kï ZSçÿ…(AX):FAçÿ…(FA):ZSçÿ…(ZS)¼Kô • AF ‰  ,N ,€ ,² ,ä , ,H ,z ,¬ ,Þ ÆK � tíK YPç:XPç7:F$ç"##,###":V1çAL:� (#L Ê ,:‘ M$()!L ‘"YOU FLEW INTO THE GROUND."iL" ‘"THE INSTRUMENT READINGS AT TIME OF THE CRASH ARE SHOWN AS ABOVE."oL$ �uLN À�LP ‘ M$()�LR ‘ M$()¤LT ‘ M$();AX;"FEET."°LV ‘ M$()¼LX ‘ M$()ÌLZ N$()çM$()ÖL\ � ØÜL^ �âL€ ÀîL‚ ‘ M$()%M„ ‘"YOU FLEW INTO THE GROUND DURING FINAL APPROACH."kM† ‘"AT THE TIME OF THE CRASH THE AIRCRAFT PROFILE WAS AS FOLLOWS :"„Mˆ ‘ M$();FA;"DEGREES"“MŠ ‘ M$();ZS£MŒ N$()çM$()­MŽ � سM� �¹M² ÀÅM´ ‘ M$()ÒM¶ ‘ M$( )êM¸ ‘ IONBÔ‹ CNç Í CAç:LB()ç:LB()ç:‰ Þ6BÖ‹ CNæ î CNèçZ Í CAçCN:LB()ç:LB()ç:‰ ÞmBØ‹ CNæZ î CNèç´ Í CAç´êCN:LB()çê:LB()ç:‰ Þ¦BÚ‹ CNæ´ î CNèç Í CAçCNê´:LB()çê:LB()çê:‰ ÞÅBÜCAçhêCN:LB()ç:LB()çêÚBÞ‹ CAæ3‡ ‰ òCàDLçDNëÿŒ(CAìKR):DLçDLì<:LB()çLB()"Câ‹ LB()ç Í L2çL1éDL:‰ è3CäL2çÿ†(L1êDL)CCèLAçL1:� ` MCêM1çMP]CìLAçL2:� ` gCîM2çMPŽCðDMçÿ†(M1êM2):DGçDMëÿ�(CAìKR):‰ ô¨CòL2çL1:DGçDNìÿŒ(L1ìKR)ÁCôDGçDGì<:LB()çLB()ÖCö‹ LB()çê ‰ þçCøG2çÿ†(G1êDG)ñCü‰ þCþG2çG1éDG#DCP()çÿŸ(L2):CP()ç(L2êCP())ë<HDCP()çÿŸ(G2):CP()ç(G2êCP())ë<NDŽpD4�:PLOT GLIDE SLOPE CROSSHAIRS‚D5‹ XOèçî Í Ž´D6X0çéGX():X1çéGX():Y0çéGY():Y1çéGY()ÚD8‚ Yç Ì :Ê (Yé),(X0é):‘" ":ƒôD:Ê (Y0é),:‘ Ö(, )E<‚ Yç Ì :Ê (Yé),(X1é):‘ ÿ–(Å):ƒ8E>Ê (Y1é),:‘ Ö(,Å)UE@Ê (Y1é),(X1é):‘ ÿ–(+)eEBÊ ,:‘"O"�EDGX()çGX():GY()çGY()‡EFŽ«E` �:COMPUTES MERIDIONAL PARTS, MP¿Ed KM()ç¡hÀ¢]w�ÓEf KM()çqÈÒÅ&:…ãEh KM$( );AX;"FEET."Nº ‘ M$( )é"FUSELAGE."N¼ N$()çM$()N¾ � Ø#NÀ �)Nä À?Næ ‹ WHç Í ‘ M$()�Nè ‹ WHç Í ‘"---------- A MINOR CRASH HAS OCCURRED ----------"ŽNê ‘ M$( )¦Nì ‘ M$( );AX;"FEET."ÃNî ‹ WHç THEì % Q M$( )æNð ‹ WHç Í ‘ M$( )é"FYU19"Oò ‹ WHç Í ‘"THE IMPACT DAMAGED THE LANDING GEAR."\Oô ‹ WHç Í ‘"ALL THE PASSENGERS HAVE BEEN SAFELY EVACUATED."lOö N$()çM$()vOø � Ø|Oú �‚O ÀŽO ‘ M$()›O ‘ M$( )ÝO ‘"THE AIRCRAFT LANDED ON ITS BELLY, CAUSING MODERATE DAMAGE."P ‘"ALL THE PASSENGERS HAVE BEEN SAFELY EVACUATED."#P N$()çM$()-P" � Ø3P$ �9PH ÀFPJ ‘ M$()SPL ‘ M$()cPN N$()çM$()mPP � ØsPR �yPz À†P| ‘ M$()ÃP~ ‘"YOU FAILED TO EXECUTE A FLARE PRIOR TO TOUCHING DOWN."õP€ ‘"THIS IS A VIOLATION OF COMPANY PROCEDURES."Q‚ ‘ M$()Q„ N$()çM$()Q† � Ø"Qˆ �(Q¬ À5Q® ‘ M$()kQ° ‘"YOU ROLLED OFF THE RUNWAY AFTER TOUCHING DOWN."xQ² ‘ M$()ˆQ´ N$()çM$()’Q¸ � ؘQ¹ ‘ÍQº ‹ XNæê& Í ‘"YOU ROLLED PAST FAR END OF RUNWAY" R¼ ‹ ÿ†(YNM()ç= W|óEj KM()çÁX_t Fn ‹ LAç Í LAçéì<,Fp ‹ LAæ(Yé;ì<) Í LAçYé;ì<=Fr S1çÿ‰(LAìKR)SFt S2çS1ëS1:S3çS1ëS2nFv TM()çÿ�((-éLAì)ìKR)�Fx TM()çKM()ëÿŠ(TM())ìÿŠ( )¢Fz TM()çKM()ëS1µF| TM()çKM()ëS3ËF~ TM()çKM()ëS2ëS3êF€ MPçTM()êTM()êTM()êTM()ðF„ ŽG¸ �:ABORT ROUTINES;Gº M$()ç"---------- A CRASH HAS OCCURED ----------"‚G¼ M$()ç"YOU ACCIDENTLY STALLED THE AIRCRAFT DURING FINAL APPROACH."³G¾ M$()ç"THE STALL OCCURRED AT AN ALTITUDE OF"÷GÀ M$()ç"THE AIRCRAFT STRUCK THE GROUND IN A NOSE-HIGH ATTITUDE."9H M$()ç"THE IMPACT RUPTURED THE TAIL SECTION OF THE FUSELAGE."aHÄ M$()ç"---- LOCATION OF CRASH ----"ˆHÅ M$()ç"---- LANDING POSITION ----"¥HÈ M$()ç" PITCH ANGLE="¿HÊ M$()ç" AIRSPEED="IÌ M$( )ç"YOU FLARED AT TOO HIGH AN ALTITUDE DURING FINAL APPROACH."AIÎ M$( )ç"THE RESULTING STALL OCCURED AT AN ALTITUDE OF"gIÐ M$( )ç"THE IMPACT RUPTURED THE "šIÒ M$( )ç"YOU FORGOT TO LOWER THE LANDING GEAR."ÓIÔ M$()ç"YOU FAILED TO TOUCH DOWN INSIDE THE RUNWAY."JÖ M)æd Í ‘"YOU ROLLED THROUGH RUNWAY SIDE BORDERS"R¾ �RÞ ÀTRà ‘"----- YOUR MISSED APPROACH SIGNAL IS ACKNOWLEDGED -----"€Râ ‘"YOU HAVE FOLLOWED PROPER PROCEDURES."†Rä �ŒRÀÊR‘"----- YOU HAVE SUCCESSFULLY COMPLETED THE FLIGHT -----"øR‘"ALL PROCEDURES WERE PROPERLY EXECUTED."SN$()çM$()7S‘"CONGRATULATIONS ON A SUCCESSFUL FLIGHT."AS� ØGS‘cSXNçÿ†(XN):JNçÿŸ(XNéî){SYNçÿ†(YN):YNçÿŸ(YN)¸S ‘"YOUR AIRCRAFT CAME TO REST AT THE FOLLOWING POSITION:"áS!‘" ";JN;"FEET INSIDE THE RUNWAY"T"‘" ";YN;"FEET FROM RUNWAY CENTERLINE"T$�ETt�:SUBROUTINE TO CLEAR LOWER PART OF DISPLAYTTv‚ Iç Ì jTxÊ (Ié),:‘ ÒO);rTzƒ IxT|Ž‘TØ�:LANDING STATISTICS—TÚ‘ªTÜ‘ ÿ˜();N$()°TÞ‘ÈTà‹ RLç Í ‘ RX;N$()ìTá‹ RLç Í ¿ ,:‘ RX;N$():¿ ,òTâ‘ Uä‹ RWç Í ‘ RY;N$().Uå‹ RWç Í ¿ ,:‘ RY;N$():¿ ,4Uæ‘nUè‘"--- SIZE OF RUNWAY IS 10,500 FEET X 200 FEET ---"tUêމUÝ�:TIME DELAY PAD˜Uâ‚ Iç Ì TQ Uçƒ I¦UëŽÛUŠ�:CONVERT RTC TO TIME OF DAY IN SECONDS ABSOLU);S$();P$()^i(Ê  ,>:‘ P$();S$();P$();S$();P$()G^n(Ê ,>:‘ P$();S$();P$();S$();P$()X^p(‹ F()ç Í Ž~^s(Ê ,:‘ P$();S$();P$( );S$()’^x(Ê ,E:‘ P$()Ë^}(Ê ,:‘ P$();S$();P$();S$();S$();S$( );P$()_‚(Ê ,:‘ P$( );S$( );P$();S$();P$();S$();P$()_‡(Ê ,:‘ P$()G_Œ(Ê ,(:‘ P$();S$();P$();S$();P$()y_‘(Ê ,:‘ P$();S$( );P$();S$();P$( );S$()Œ_–(Ê ,:‘ P$()°_›(‚ Yç Ì :Ê (Yé), :‘ ÿ–(Ã):ƒÔ_ (‚ Yç Ì :Ê (Yé),:‘ ÿ–(Ã):ƒÚ_¥(Žø_ª(�:DISPLAY HORIZONTAL LINE `¯(‹ F()ç ‰ ¾( `´(Ê  ,:‘ ÿ˜(P);2`¹(‹ HYç ‰ È(M`¾(Ê (HYé),:‘ Ö(P,"_")S`Ã(Žb`È(OHç:HYç r`Í(‚ IçHY Ì ‹`Ò(Ê (OHé),:‘ ÿ˜(P);¦`×(Ê (Ié),:‘ Ö(P,"_");¯`Ü(OHçI·`á(ƒ IÍ`æ(Ê ,(IOé):‘" ";Ó`ë(Žè`ð(�:DISPLAY RUNWAYû`õ(‹ F()ç ‰ ) aú(Sç :Xçaÿ(‚ Yç Ì Fa)Ê (Yé),(Xé):‘ ".";ÿ˜(S);" ";ÿ˜(S);".";Va )XçXê:SçSé\a)ƒja)S$çS$( )pa)Ž�a)�:PRINTS RUNWAY GRAPHICS�a")‹ Næ ‰ h)»a')Ê (OYé),(OXé):‘ ÿ˜(WM);Öa,)Ê (NYé),(NXé):‘ MK$;æaTEãU�JçñU”‚ Iç Ì V™TC$(I)çÿƒ(TV$,J,)VžJçJê'V£TC(I)çÿ”(TC$(I))KV¨TDç(ëTC())é(<ëTC())éTC()SV­ƒ IYV²Ž„V(#�:PLOTS VARIABLE ON REVERSE BACKGROUNDžV-#¿ ,:Ê (YPé),(XPé)­V2#‘ × F$;V1;·V7#¿ ,½V<#ŽÃV'�çV'�:BEGIN TAKEOFF MODULE HERE, EHûV$'À:’ è:¹ æ.e†W)'KRçæ.e†W.'† XM( ),WM( ))W/'† P$()WW3'„ 37,35,32,30,27,25,22,20,17,15,12,10,7,5†W8'„ 6,11,16,21,26,31,36,41,46,51,56,61,66,71ŸW9'‚ Iç Ì :‡ P$(I):ƒ¸W='‚ Iç Ì  :‡ XM(I):ƒÑWB'‚ Iç Ì  :‡ WM(I):ƒóWG'M$()ç"_":M$()ç"_":M$()ç"_"XL'† XE( ),WE( )XQ'K1ç:K2ç&XV'‚ Iç Ì  "—d¸)�:DISPLAY PITCH¾d½)‚ Iç Ì :Ê (Ié),:‘" ";ÿ–(Ã):ƒÓdÂ)Ê (FLé),:‘">"ádÇ)F$ç"+###"üdÌ)YPç:XPç:V1çFA:� P-eÑ)�:DISPLAY FLAPS#eÖ)‹ F()ç ‰ *LeÛ)‚ Iç Ì  :Ê (Ié),<:‘" ";ÿ–(Ã):ƒaeà)Ê (BRé),<:‘">"neå)�:WHEELS—eê)‚ Iç Ì  :Ê (Ié),D:‘" ";ÿ–(Ã):ƒ¬eï)Ê (WHé),D:‘">"¹eô)�:BRAKESâeù)‚ Iç Ì  :Ê (Ié),L:‘" "ç Ì :‡ P$(I):ƒ÷Y¿'† S$()ZÄ'‚ Iç Ì :S$(I)çÿ˜(I):ƒ+ZÉ'‚ Iç Ì :F(I)ç:ƒQZÎ'�:INIT VARIABLES FOR TAKEOFF MODExZÓ'FUçPC’:FPç:CCçK:ZSç:RCç:ALç®ZØ'MZçk:TRç:FLç:FAç:WHç :IXç(:HYç:BRç :BKç ·ZÝ'ABçéZç'Ê ,:‘"AIR CANADA 312 CLEARED AS FILED"ñZé'‘:‘)[ê'‘" SURFACE WINDS VARIABLE, GUSTING TO 15."d[ë'‘" MINIMUM CEILING CONDITIONS ARE IN EFFECT."™[ö'‘" SKY CONDITIONS AT 20,000 SCATTERED."Ë[û'‘" AT 30,000 BROKEN."Ó[(‘:‘\(‘"UPON TAKEOFF, MAINTAIN HEADING 075 TO 3000, THEN PROCEED AS FILED."N\(‘:‘:‘" STANDBY FOR TAKEOFF CLEARANCE"_\(TQçX:� -e\(À‡\(Ê  ,:‘"AIR CANADA 312":‘:‘¸\(‘"YOU ARE CLEARED FOR TAKEOFF AT 0800 HOURS"É\#(TQç¸ :� -Ï\((Àç\-(þŽç"07:59:00":É Ý:Àþ\2(TV$çþŽ:� #-:TLçTD]7(� Z(]<(� ª(]A(� ð(&]F(� w)@]K(K$çÞ:‹ ÿ’(K$)ç ‰ U(J]P(� &*T]U(‰ Á*w]Z(�:DISPLAY PANEL (HEADERS ONLY)º]_(Ê ,:‘ P$();S$();P$();S$();P$();S$();S$();S$();P$()é]d(Ê  ,<:‘ P$( );S$();P$(;ÿ–(Ã):ƒ÷eþ)Ê (BKé),L:‘">"f*�:DISPLAY RUNWAY ALIGNMENT INDEX-f *‹ F()ç Í ŽCf*Ê ,(IOé):‘" ";]f*Ê ,(IXé):‘ ÿ–();gf*IOçIXmf!*Ž„f&*�:POLL KEY SUBROUTžf+*‹ K$ç"F" Í KKç:‰ D*Áf0*‹ K$ç"," ï K$ç"." Í KKç:‰ D*Ûf5*‹ K$ç"B" Í KKç:‰ D*þf:*‹ K$ç"U" ï K$ç"D" Í KKç:‰ D*g?*‹ K$ç"L" Í KKç:‰ D*2gA*‹ K$ç"W" Í KKç:‰ D*LgB*‹ K$ç"S" Í KKç:‰ D*sgD*• KK � N*,]*,q*,€*,­*,½*,J*ygI*Ž•gJ*�:THRUST KEY (DECREASE)±gK*‹ F()ç î BRç Í TRç·gM*ŽÓgN*�:THRUST KEY (INCREASE)ägO*‹ F()ç Í ŽögS*F()ç:TRç:Žh]*�:RUDDER KEYSh^*‹ F()ç Í Ž*hb*‹ ZSèç2 Í ŽLhg*‹ K$ç"," Í CCçCCê :¡ CCçCCéRhl*Ž_hq*�:BRAKESphv*‹ F()ç Í Žƒh{*F()ç:BKç :Ž�h€*�:PITCH h�*‹ F()ç Í Ž±h…*‹ ZSèç2 Í ŽÍhŠ*FDçê :‹ K$ç"U" Í FDç Úh�*FAçFAéFDîh”*‹ FAæ< Í FAç<i™*‹ FAèê< Í FAçê<iž*‹ FAæ Í FLç:Ž,i£*‹ FAç Í FLç:Ž7i¨*FLç:ŽCi­*�:FLAPSbi®*‹ F()ç î WHç Í BRç :Žsi²*‹ F()ç Í Ž‘i·*‹ F()ç Í F()ç:BRç :Ž—i¼*ޤi½*�:WHEELS¹i¾*‹ F()ç Í WHç ¿iÀ*ŽÞiÁ*�:SITUATION UPDATE ROTHIN THE RUNWAY BOUNDARIES."5râ,‘"AS A RESULT, YOU VEERED OFF THE RUNWAY AND COLLIDED WITH"Prç,‘" THE RUNWAY LIGHTS."Vrì,Ž–rñ,‘" YOU RAN OUT OF RUNWAY. AS A RESULT, YOU ROLLED INTO THE"ßrö,‘" MARSHLANDS LOCATED";ÿŸ(YY)ê);"FEET PAST THE END OF THE RUNWAY."ðrû,‹ F()ç Í Žs-‘:‘:‘" YOU FORGOT TO LOWER THE FLAPS."`s-‘" AS A RESULT, THE AIRCRAFT COULD NOT DEVELOP SUFFICIENT LIFT."fs -Ž{s-�:TIME DELAY PADŠs-‚ Iç Ì TQ’s-ƒ I˜s-ŽÐs#-�:CONVERT RTC TO TIME OF DAY IN SECONDS, ABSOLUTELYØs(-Jçæs--‚ Iç Ì ýs2-TC$(I)çÿƒ(TV$,J,)t7-JçJêt<-TC(I)çÿ”(TC$(I))@tA-TDç(ëTC())é(<ëTC())éTC()HtF-ƒ INtK-ŽytP-�:PLOTS VARIABLE ON REVERSE BACKGROUND“tU-¿ ,:Ê (YPé),(XPé)¢tZ-‘ × F$;V1;¬t_-¿ ,²td-ŽÊtà.�:DEPARTURE ROUTINEçtê.‹ F()ç ‰ ù. :¡ F()çñtï.� d(ütô.F()çuù.‹ WHèæ ‰ / :¡ ZSçZSé8uþ.‹ BRèæ ‰ / :¡ ZSçZSé[u/‹ TRç î ALæ ‰  :¡ ‰ :/nu/‹ ALè° ‰ :/Ÿu /Ê  ,:‘"******** FLIGHT ABORTED **********"§u /‘:‘îu/‘"YOU FAILED TO PERFORM CRUCIAL TRIM MANOUVERUTINEþiÆ*TV$çþŽ:� #-:TJçTDêTL:TLçTDjË*‹ F()ç ‰ à.$jÐ*‹ F()ç ‰ Ú*4jÕ*� z+:‰ F(GjÚ*‹ F()ç ‰ î*Rjß*F()ç`jä*XXç:YYç„jé*TDçTD:V0ç:Nç:OYç:OXç:WMçG‹jî*�:¢jó*Aç(vêëTR)ë¤ü$|¬jø*� ¶+½jý*‹ ALæ ‰ 4+Üj+‹ YYæ) ï ÿ†(XX)æd ‰ ~,îj+‹ FAèç ‰ \+k +‹ ZSè– ‰ y,k+‹ FAæ ‰ y,%k+‹ F()ç ‰ \+/k+ALç9k +� z+Ck%+� Ž+Mk*+� $,Wk/+‰ A(bk4+F()çlk9+� z+vk>+� Ž+€kC+� ¢+¦kH+‚ Iç Ì :Ê (Ié),:‘ ÿ˜(P);:ƒ°kM+HYçºkR+� ª(ÄkW+‰ k+Îk\+� z+Øka+� $,âkf+‰ A(lk+�:NOW DO DEPARTURE PROCEDURESlp+‰ F( lz+�:UPDATE FUEL0l+FUçFUê(ëTJ>l„+FPçFUì0 Dl‰+Ž_lŽ+�:UPDATE RATE OF CLIMBƒl“+RCçZSëÿ‰(ÿ†(FAì33e†))ë9´X�ë<™l˜+‹ FAè Í RCçêëRCŸl�+ްl¢+�:UPDATE ALTÃl§+ALçALéTJëRCì<Öl¬+‹ ALèç Í ALçÜl±+Žöl¶+�:EQUATIONS OF MOTIONÿl»+TçTJ mÀ+VçV0éAëT!mÅ+VBç(VéV0)ì:V0çV,mÊ+SçVBëTCmÏ+‹ TDè(TXé) ‰ ã+MmÔ+TXçTD]mÙ+WBçRSëÿˆ()jmÞ+CCçCCéWBmã+DAç(CCêK)ì33e†“mè+DYçSëÿŒ(ÿ†(DA))§mí+DXçSëÿ‰(ÿ†(DA))½mò+‹ DAè Í DXçêëDXÊm÷+YYçYYéDY×mü+XXçXXéDXæS FOLLOWING LIFTOFF."Hv/‘" THE PROPER TRIM SEQUENCE, WHICH MUST BE COMPLETED BELOW 1200 FEET, IS AS FOLLOWS:"gv/‘" 1-RAISE LANDING GEAR"�v/‘" 3-REDUCE THRUST"›v/‘" 2-RETRACT FLAPS"¡v/‘Öv/‘"--------------- END OF PROGRAM --------------"Üv/�æv:/� z+ðv/� ¢+wC/‰ F(wÈ2�:END OF LISTINGv/‘Öv/‘"--------------- END OF PROGRAM --------------"Üvååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååm,ZSçVì­X�ým,‹ ZSæ Í ZSçZSéWS#n ,IXç(éÿŸ(XXëì):‹ IXæO Í IXçO5n,‹ IXè Í IXçMn,ZPçÿŸ(YYêÄ ë(Nê))hn,‹ ZPæÄ Í NçNé:‰ ,nn,Ž’n$,�:VARIABLES FOR RUNWAY GRAPHICS¬n),MPçÿŸ( é( ëZP)ìÄ )¼n.,‹ Næ ‰ V,Æn3,NYçMPÒn8,JçNYê ßn=,NXçXM(J)ìnB,FWçWM(J)ùnG,S$çÿ˜(J)9oL,MK$çM$(N)éS$(J)é"_"éS$(J)é"_"éS$(J)é"_"éS$(J)é"_"éS$(J)é"_"?oQ,ŽeoV,�:IN ZONE 4-MARKER IS RUNWAY EDGEoo[,NYçMP{o`,JçNYê ˆoe,NXçXE(J)–oj,‹ Næ Í Ž«oo,MK$çÖ(WE(J),"_")±ot,ŽÀoy,ABç:‰ —,Øo~,ABç:‹ YYè) ‰ —,èoƒ,‚ Iç Ì pˆ,Ê (Ié),:‘ ÿ˜(P);p�,ƒ Ip’,‰ —,p—,�:ABORT.pœ,‚ Iç Ì Lp¡,Ê (Ié),:¿ ,:‘ ÿ˜(P);Tp¦,ƒ I~p«,Ê  ,:‘"*** TAKEOFF FAILED ***":‘:‘‘p°,• AB � ¿,,Ø,¶pµ,Ê ,#:¿ ,:‘"END OF PROGRAM";¼pº,�üp¿,‘"YOU PULLED BACK ON THE STICK AT TOO SLOW A SPEED, OR YOU"7qÄ,‘"PULLED BACK THE STICK TOO FAR WHEN AT PROPER SPEED."wqÉ,‘"AS A RESULT, THE TAIL OF THE FUSELAGE SCRAPED THE RUNWAY"¤qÎ,‘"AND THE AIRCRAFT SPUN OUT OF CONTROL."ªqÓ,޽qØ,‹ YYæ) ‰ ñ,õqÝ,‘"YOU FAILED TO STAY WI TYJETSET.DOC 747 FLIGHT SIMULATOR (JETSET) --- ------ --------- -------- The program on this BBS called 747.BAS was originally written up in the November, 1982 issue of BYTE magazine under the title JETSET. The documentation that follows is only excerpts from the complete documentation found in that magazine. To try to reproduce all of it here would take too much memory. Also, there are drawings that cannot be reproduced. With the Jet Simulator Electronic Trainer (hence JETSET), you'll maneuver an aircraft through the three stages of flight - takeoff, cruising, and landing - in less than ideal conditions. The program, originally written for the TRS-80 and modified for the IBM-PC, uses the keyboard and screen to make a personal computer verf_on of a commercial flight simulator. You and the controls, of course, remain firmly planted. C. Apply full throttle (F key). D. Steer along the 075-degree runway using the left/right rudder keys (< and >). Coordinate steering with the COMPASS reading and the position of the arrow located at the base of the runway graphic. E. As soon as the AIRSPEED indicates 150 knots, press the U key once to gently lift the jet off the runway. F. After the horizon line drops below the screen, press the W key to raise the landing gear. G. Retract the flaps (L key). H. Throttle back the engines (S key). I. Sit back and relax for a minute or so as the jet gains altitude. PRACTICE FLIGHT -------- ------ A. Execute the takeoff form Philadelphia as described above. B. Level off at 10,000 feet. C. Steer approximately north. D. Adjust airspeed to 600 knots. E. Tune to the frequency of the Buffalo VOR station (115.5 MHz). F. Input the value of 278-degrees radial into the receiver. G. When the VOR needle moves to center, alter course to on the ground. JETSET is flown according to Instrument Flight Rules (IFR). Listed below are the keyboard keys, functions, and definitions: KEY FUNCTION DEFINITION --- -------- ---------- F THRUST INCREASE* INCREASES POWER TO JET ENGINES S THRUST DECREASE* DECREASES POWER TO JET ENGINES Q THRUST REVERSE REVERSES ENGINE THRUST DURING LANDING D PITCH DOWN* LOWERS NOSE OF AIRCRAFT BY 5 DEGREES U PITCH UP* LIFTS NOSE OF AIRCRAFT BY 5 DEGREES \ PITCH CANCEL SETS NOSE TO LEVEL FLIGHT < RUDDER LEFT* INCREASES RUDDER LEFT BY ONE INCREMENT > RUDDER RIGHT* INCREASES RUDDER RIGHT BY ONE INCREMENT / RUDDER CANCEL RETURNS RUDDER TO CENTER POSITION L FLAPS RAISES AND LOWERS FLAPS W WHEELS RAISES AND LOWERS LAN 295-degrees (COMPASS). H. Now steer to keep the VOR needle centered. This indicator, not the compass, will provide exact guidance for the remainder of the flight. I. Use the DME indicator to keep track of the distance remaining, in nautical miles, to Buffalo. To estimate the remaining flying time (in minutes), simply divide the DME reading by 10. J. When the DME readout reaches zero, the jet has arrived. INSTRUMENT LANDING ---------- ------- A. Execute the takeoff procedures. B. Continue to climb to an altitude of 3000 feet on a course of 075 degrees. C. At 3000 feet, alter course to 000 degrees and continue climbing. Adjust thrust for airspeed of 580 knots. Tune VOR to Philipsburg station (115.5 MHz), and set radial to 278 degrees. D. Steer along 278-degree radial when intercepted. Level off at 40,000 feet and proceed to Philipsburg at 600 knots. E. At DME=20 NM, retune VOR to Buffalo (116.4 MHz) and set DING GEAR B BREAKS RELEASES WHEEL BRAKES FOR TAKEOFF M MISSED APPROACH SIGNALS AN ABORTED LANDING ATTEMPT V VOR FREQUENCY TUNE INPUTS A FREQUENCY TO VOR RECEIVER R VOR RADIAL SELECT SELECTS A RADIAL VALUE FOR NAVIGATING A VOR AUTO SELECT AUTOMATICALLY ROTATES RADIAL SELECTOR DIAL NOTES: 1. The CAPS LOCK key must be engaged throughout the simulation. 2. An asterisk (*) identifies keys that may be typed additional times to increase their control function. The following procedures will allow you to takeoff from the Philadelphia airport and, hopefully, land at the Buffalo airport. To get a more detailed description of how this simulator works, I strongly advise obtaining a complete copy of the documentation. See note at the end of this writeup. TAKEOFF PROCEDURE ------- --------- A. Lower flaps (L key). B. Release breaks (B key)radial to 346 degrees. F. Upon intercepting the 346-degree radial, alter course to follow the radial to Buffalo. G At DME=73 NM, begin decent to 1900 feet (descend at approximately 11,000 FPM). H. Level off at 1900 feet. Remain aligned with the radial. I. Begin initial approach trim when DME=20 NM as follows: 1. Reduce airspeed to 300 knots (S key). 2. Drop landing gear (W key). 3. Lower the flaps (L key). 4. Adjust altitude to between 1700 and 1900 feet (elevator keys). 5. Keep the VOR needle centered (rudder keys) to stay on the initial approach radial. J. Be alert for the flash of the MARKER lamp (which occurs when the DME=12). At this signal the jet must be maneuvered for the final approach: 1. Quickly swing the nose until the compass shows 042 degrees. 2. Use rudder and elevator keys to keep the ILS indicator needles centered as the jet descends vÿH›arc.doc_ßÿ  šÿ‹ÿžÿ–ÿ‘ÿ�ÿ�ÿŒÿõÿ›ÿòÿ—ÿœÿ“ÿ’ÿŠÿ! ™ÿ"$#%�ÿ&†ÿ'Ñÿ‰ÿ(Ýÿ¾ÿ*)ˆÿ¼ÿoÿ+Óÿ�ÿ,­ÿ.-/˜ÿ1032”ÿ4«ÿ‡ÿûÿ5768¶ÿ±ÿ9¬ÿ:;ºÿ=<>Åÿ?ÂÿÖÿ@BADCªÿ¹ÿÎÿE°ÿ×ÿGF³ÿüÿHÕÿ»ÿIJ•ÿK´ÿÌÿL²ÿ¯ÿÊÿµÿM¨ÿ¸ÿÏÿ§ÿ·ÿPNQOÍÿRÁÿ½ÿSÇÿÒÿT¦ÿÃÿŽÿ©ÿUVYXWZØÿ…ÿ®ÿÄÿøÿúÿÆÿÚÿ]\[^öÿËÿïÿíÿóÿñÿùÿÈÿëÿèÿ÷ÿÿþ¢ÿÀÿæÿ¤ÿ/ †ÙjL1½$ù2ß›°4ÙgpâärL1Åd¸ZïUCå×/kœ‰Ñ572EÓ,çyùr÷�Ï VAì¼àöŽ‚Ô·3úC&Lž5ÎÄè‰g™%˜³™efSL1ÕXê/ˆïÃvÑ(¿ýn÷ÃlõñýèÄÉåÜ'Û:!¼>6SÉ̽bIØW´?&ÑV}Ãóò%äî;Ÿ¬‚ØyÁ?ì©o?Â�Hö‡f#~#S4Írؘbf«§~·{�¦ÜHj}Ã͆æ6—�Å%äî;Ÿ¬‚ØyÁ?ì©ogÿúáø˜´í¥MÁ7\Ïi&ßpNb¡ï?öý0[Í]!ÜñMùäW�)P÷FùÑ÷ä¹› '6Ü­úÝî ä+Ò „@NýÚöóúô˜b2Rï7À»ŸU~~/¬6醨ÞGa/Д ¤WÔ½Q~tB`cЉ‘zÿ0[ýÂŒ� ÚðîêËÆÓäO��àÚä o”�ú lw»û‹»¥~³¡´éü qþü>&5Ͷ‚Ô7ä®Þ-Ž<<¿ï ~Çé1ÅôR™„Ü}ç3ƒU;/ø‡½£ õí1½Tf„‘gl uœàÃɸ1½TVåT8Bîåþ™Jv¦FŒÄSL1Å4ÌVOýcßpÇ‹¶ê{…ðY \ ^ßk–&ÛÙ×&,MöÔ¯�IÚp4�Å âÛ/�ó¾áŽÒu»íŽGØÄ÷×WT¾[õ»ÝÇDhBaTþ‚øöÏ*?¿o+p²mà \…³along the glidepath. 3 As soon as the runway graphic appears on the screen, use the graphic arrow as a guide to apply rudder corrections. K. When the MARKER lamp flashes again to announce arrival at the decision- height point, check the runway alignment using the graphic displayed on the screen. If necessary, press the M (Missed Approach) key to abort the landing attempt. Otherwise, if the plane is lined up safely, take all cues from the RADAR ALT from here on in: 1. At 100 feet, idle the engines (S key). 2. At 50 feet, flare up the nose (\ key). 3. At 0 feet, the jet is on the runway. Slow it down by applying reverse thrust to the engines (Q key). Your JETSET flight concludes with a display of the landing information that tells you how well you handled the jet. This information specifies where ground contact occurred and where the jet finally rolled to a halt. If you made a mistake at the m1Å4ÌVOý�ŠbÛ‚¿h8Ýn»6ai²Wç”oÚä�Nœœ¶ŸànÕOþ˜ttœÕI(çòÎfÛÞ·ßí¾ ¾ýù%�^›°4Ù�{Ç»U¿Û}LmûÈ�@zmÂÒdïZ·ý£yýL@ó8_gÁ�Å»©bÙ?¦˜2· f«§þ±o¸ã5„ë â{Ç+\›°4Ù“_A¹,Éíw»/ˆïSXß6ì+–„=wÛvoª¨#�~^·ú+ÄùÛö‘û îv/m«¾ÝS× �´³�ݾwÛv?¯[ ýÚvzL1©÷àÎfÛÞ �Ñw»/ˆï©¿;¶ 'pÎÆ#õþìš«¾a ÂjSáÛ.p6ÛöNŒ~[sÕ7¼ofƱýXÜí¾ë¼�饲¼ìû‰òq¯m/�s5û†8^ï¶íN!/û^`Ø÷Í̸ –ýcŠ©¾z¿ÑcQÌ ï™w%I eôÝî â{ê8›m{ßpÇO´‘æùž/HÝ>Oþ˜^*ëÞ¤=÷N3qmw¼Ûý¼n1|ìž—ïv/Á¨› ¥MçÎÆ“úÞ­zî�@ìöXÜíÞmÛý¼n1ôL�O¶ðg³mï„põǤœçîvß¶�Ü ¤×&,Mö ÞäWˆóÃN¶=¿çÚ¤ÛîVán÷1a#)�òÄ—�)¦˜bÊ al�ɇÙjLSK’SLÃlõÔO0Áº ¯�ÛëγB8w»/�s¬H_`›Õ§ÇÓKeÃlõõ¯eèõ×&@çeè’¿þ¾³ÉÕ—¡³gÏJŽ˜bÊÜnÛé1ÅôRYýk:õ+|˜­^à<+„óußvÃ}÷ùåX©—;Á—ÜnûhšÛŽí+ÛÓKeBû²L1½TVmt^†Nýn÷ ó‹»Ýk–&{Ç«ð#ä^!·Çö ¹Åѯð˜^*ÛZ_è„ÀþÆÅ¿µ¾Ð áÔßGÓä´!w· °Ãlupê×ÞÇyûÇÓKeõ÷�M®¾ �úöØ>cÛÄ÷ óÞw6¹úvö¯±ûA…xÚÂà1½T&¬6¾­Àxp…ð�ä|VùùýØ7°L1f«§~‚ Ömx…ÜðÚ¤ã¼àý†óò]6 ¤ ³ÕAî áfÛÞ ¤�i°àÛõrw»p}¾Ñ8Ï á}œgmò©?P7¹ÊؘbŠi˜­¾j¨¼ò† $bšZ’”˜bʈœc…@zê×çmñ>γ6ùXÜí^'J\ó|?ÌV/pžBŸSL/•inüÔk/ˆo¿ãµ K“�饲ù%¦S?ãd_ß~Çk–&ÓKeá%¦S–¯ï âÛ_4œ¯MXšlL/•ÕæöS¿µÞTø âÛ_4œ¯MXšlL/•™/1�z�¦ü‚iddle marker, the landing report will print out the consequences. This only a small part of the capabilities of the JETSET simulator. There are about 15 to 20 additional airports built in. It is conceivable that you could fly all over the United States. Remember though, this simulator is flown real-time. If it takes 6 hours to fly from New York to San Fransico in a real aircraft, it will take you the same 6 hours flying the simulator. If you would like to have the complete documentation (11 pages worth), send $2.00 to cover copying and postage, and your name and address to: BILL LYON 2351 CHAMPION COURT RALEIGH, NC 27606 ~r ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååøö çk–&{Çw8zL/•ñ—˜N=§î/ˆo?Áµ K“�饲üKL§¾­+Áó*êFóMùX\›°4Ù˜^*«¼Ätêûhšm{EH?oï*ÝÓKeðÓ©ï£i¶íý€¾ý áçyÁ{L/•ùKL§Þ·ûµ K“=�¯´‘Ë1ÅTc·ïγBè×¶ßZ“+Á†|ƶëJüùåXacŠ)¦!ÏhÌ„Yâ5†>ÌV�6Î,sLSK’'¦˜2ß~m{ aïpmÂÒd?véÝîÃÁ C¨—û Ãà†3˜A}ëåŽí1 ÊÜpy8Ùz8Ï ¡³ÿ0„+„g0ƒú^۞‚“PÎþåád¨(¶õ<&·êw»ï86±/ˆï©?,_ßp±'¿Õþü.\CØpÇ»Ýk–&ËÆSFlßZ�M¾¹SqÇW¨Û;^C¸¾ ¾�7|PÃ,QÃ2Ö îx…k–&û˜@ç ”W?v˜­r—q|G>ö½^à<+„cq·ûÛ<=¦˜^*f«×Ïò}»³A=¦˜°M�)¦—ʆÙêÇÏ2«MÜ·;ÔcŠÉ¸¸Œã+ ¾áŽŸq²WÎ_ß~‚Ë8¶‹±µ ¶Â±É'p¼ÂcÒ&,Mö ó†$2”dzÕAî2Ž8òð±ïõçY!‹»ÝØæé1ÅôRÙ0[ýü>ÎgÌ2Ž)&ãâ2ޝ(ø†;^C¸rþ‚øöWÈíõ¶:øÖúB'„Ü•óÄ·?&ÐyÃ52fÜñ ×&,Mö ó†ÊÍ`0%;ÌV¹Ë8^àÈÃ]6wzL1½T6ÌV¯Ÿv„º3fÅ»�EÁ2Ž)¦a–&ûo´ýÚöÊ+*÷ÏJàJ°áWnZͯ“8¶°�ý‡MXšìcZðFÛ?«|@¿ÕÉ>Œ&'¡¾�·³¿qqÇk×Ä÷ŽW¸6ai²�É­ú•·Õ _ ¸ôë âû¼|·ê�7w· w»ßZêN ý‚7ù�Éí^›°4ÙS[“«ØÀþCÞ1w·{mÂÒdOÞ—W'ïÏ«¨ÍWˆóÇèÏï5„ ìSL11`fÂ\cl�É33a–ˆijIRcŠiØ„¥É~Ám¿¶}X¾¾ár{·ûƒÁ 3X¾¾õ.pžûgÄö˜¶Vg“oîT\ÆñVîMXšìAç ”›Á`Jv˜­rW—q|…ºÝpÇÇ–¯ï•ó/x£í'8ù+äöú‚ø‚Îû­õ…NÇâ¶:È]ÆñG“ËæNL1½T6ÌV>íugÌŠ˜bŠ‰Ù¨šì°Zcl�É33a–ˆijIÒbŠiØ„¥É~Ám¿¶ýÖzSá^!·w»0n˜¹Ö›L†3×õ.pžû×Çw‹#ûÞ-õ œg…ðnj#�r™ý�á… Ï]Æñ1u‹#7æ5ÏåúǾwKýçY!\ýÊ9SLUœçï7Œí€¾½Þµí l³:Möóö®Òí¹÷QØk?èL ýª°/ˆïcÒ~òS¿†°áŽw»×&,M–ý«8Ï Þ¯èÛ?«üü¾�¦Ù¶÷ �)/ì{,îv?0ܰúÖ»ÀyVlL1eÄö­ÕÙä›{Mû^Æñ[ëM…o¸rþ‚øöWÈí¾µ¾Ð áX<¦ËðPbð¢á|…k–&{ÐyÃåf0˜’f«ƒ¿Æ.ä®…oû¬uÒwœ÷1 « ÝþŠ%a/ãø°‚ÂÐïøº]3wLJönÕ/ãøŠ‚ßñ1m­7~·;_9¿J• ÷üè—q|@�„¿¢àw|~¯½nÃ/ jócÚÉ6ùËþÆp·Ô/´oî2Ž8òp—Í�SL/• ³Õ×V>íugÌæµÇ“¡–;—q¼¶½ ¤w¼†p½!´ /ˆo…Ü^á[ë �ŽÅc°åId2¸ã®MXšìAç Ôd‡F³Ãlu�»B¸Œã‚$üÿ0[½ã9uLnw¾ö“_Cèw»sî2Ž8òp—Í�SL/• ³Õ+Ü›v{ÆìÜ¥1Åd¨åNÅe_Qð;~k½©ð»Ý/8µ½@ðïÇâ ×&,Mö ó†Ç4(7ƒÁ”ì0[ä®.ãø€ EÁïx»Ú® »%�æîvá.›;=¦˜^*f«¯…ʧ¡.¦˜bªa–¨16ÈäCƒ³U£�3ËÓÔ’¤ÇS�ÝøJ¹|,®pmÂÒd?«üüÞ·û†çå�}�ÅÝî5ƒ®Ùîõ“ÀyVì_c©_ØuýŽŸµnßǶw«~åüXÜí¾ ¾·«a[¿¶}LfCs—orrWw«~åüXÜí¾ ¾ýÚö—"†w«æ²1ÅTc©_(<¿Ÿl“?ö-FþÛE#'¡üÚ„¥ÉöÜ+vÛ>¨ë |¥�\~LóØýù½ö>¶ 쟹]¸Âµ K“=õûvß�»r~,îv¿à�¶Ÿàn÷1i–&{mûLun¸Bnqôw�Hïvç+È»më½ãݪ__ÍV“°+ê>Q>îg•Ÿß åbäê®.p6µmx…ÜÞí¾­À6¼š­>¦‰òqÙ˜bʈí[«³É7w*.ãøiÇîo+–&®pmÂÒd:oø Ü S²Ãlupœl»>&Ó"ì9Áæ®.ãøŠ‚ßñ³ÖíûØönÕ/ãø¶bi²áä7šÛ¸œ{L2Ž8òp—Í�SL/• ³Õû§¡.¦˜Œýa ¯w…ð�Qƒ^£¼©ðz�Ià<+„Îþ±}ku6ùæNÅeo5\áÚ„¥ÉtÞðA¹ ¦d‡Ùê w…ð˜d_Qð WÎ_ß~‚“¿Bn¯ð­õ…NÇâ¶Æ¨šÁ±}À20TÜñù}LmE[õ G¸Œc{ ^—»ŒãŽ<Ües§ÇÓKeÃlõµŸv„º3f½ÖϘ (bŠÉ¸¸Œã+ ¾áŽßZo*üÊù±¸Û}A|û ®pmÂÒd:oxLƒr3LɳÕAî2Ž8òðN³Éå»lîô˜bz©l˜­¾öÓŽPSL™[õ�lû¼n1‹Ä÷g³mï„ðŠö�}à Þ�ôn÷ñí§þ˜ÚN¶õ ¹+„� p6Ûö¾áMÚ~m{ÑV}à îv/ÆÖü1j+›ÌÆSLåg� jŒ 2yFc&Ì1M-IjL1 ›°4Ù/x£íŸU~~¿µ:lx…ÜÞí~Pþà†Ëo^ïçY!°�¥þ˜*ØêúÝî»Î{íw»g®õ¦Â/pžBî[+Öô»U¿Û}A|ûµíý1‰¶êŽð@½Žý�¡ûjÈÝí^ ø‚÷cq·û‚øökÛW¹/Üñ1uWÚÂqtstöψí[«³É7w*.ãøŠ‚o¸ãûîÝî‚/x?�i'Û䨣j/ˆï ®pmÂÒd:oø Ü S²Ãlu�{~ô EÁïvçÇÔu²áÔër—q¼À‘‡»lîô˜bz©l˜­Þü´#Ô�1ëµSLÆÅe_Qð w»óŸß›�À7á2Žíf#ðm'辎Å.ãØSmr—q¼À‘‡»lîô˜bz©l˜­Þü´#Ô�1ëµ~†Ì1Åc‰cƒL>ÌV�6Î,ó™ j²ÆÌ1M-IÞ˜bªŽ Ǽ+Áõœº‹»Ý _ð~,®pmÂÒdŸ—?véÝîL�É0ê^ïçY!°FlßZ�M¾¹;¾ï¾bÕOýW¸6ai²�7<¦A¹ ¦d‡Ùê wÇ y¸ËæN�)¦—ʆÙêù§¡.¦˜Œ‹Ë8^Û�Ë'ðmÛ}à ^ßþ ¹½Â·Ö:!‹X†ªƒÜÝ.<&Ç y¸ËæN�)¦—ʆÙêù§¡îŒÙ€"¦˜†Ùê9uïw»×&,MöÁ¼Ÿàz×<ßsªÛ»¥>=¦˜ tÞ—“©Û—ʪ8›/1•ÈøSêûÒ4Ôм1M-IÊ?µ$¹þ©¥²j©ìŸZ’ŒjI²b2)ßè![cTÍK©#Œ¼Ät Sxi3�âßH}šíÓ,ç%¦™NgdŠ4&†³ÃÌbkŒªy)•c„‘¿|u/1•Ì‹Uïw»7Çfbßcq·ûš œg…pÇ œó{òWÈí Ží™³1Å“DùÌUã!“ªa–ˆij)ÆSæva'Û>ÌV¿ pßÖ¯/Ô•[Ãv�È áäç«“íw»ÇFRå�I›°4Ù#ö w¼P.F®¾w»¯f«vEÝ'ÊÇ=ÁͶ±?¦É¶NýVûó»ðGw|~Oðm ûû­öçwámM®bà Ód['„×Çfú ¹½Þlhn{1‚pB`ÿa¶ú qþîÄùÛj¸6ai²ý1‰¶ê^!·_mœ¶}²­B?f«¹çG?ù+ÄùÛšØüúŠ6 �>&·êw»¯f«Ÿ(÷ÔOðm û9¿6ai²ý¢­ú†›�°Ýñ“m�S}l¦ïGžß�`ª¨Ûp…𶦊º ¯�Û»ÝsõíþɶNÇâÃl•�)¦š¦Ðgr'�^_ßWÈí�*Ïæòn6tÈßp„ÐïvßI’ûѼãÝîc‚­õÏ#w2ù‹adšÏ˾=w �@z©¶¼J÷Žw»_Çân÷ñeÿ˜j,õ�}Ã/бï‡ÙjîBÇN =ùï– înÕïv¿ŽÅÝîcÒ&,Möí'˜(§ÀåØfußÀþ5–ú­öçwá[[áNðɶN�©>6ÓúØßÛ®MXšlÿ¬ò»çÏïÛjÈ=?ú‡Ùêg•ßÖÄæw»óŸßÇD³ÙÐÜÆåØfußÀþCÎ_ß~¡ðü~k½©ð ¹+„>¨ë©?&ŽÝÙß®!�BîÃlõâü::Îê$”sù[[áw»7æùί؅“?&ê_8‚oÛÀÆ´ýBáùýÖzSárW|P×SL»³¿1\C '„܇Ùê+ÄùutœÕI(çò¶¶ÂïVrwÿ± é|‡¥ÉöÜ+vÛ>¨ë |¥�\~LóØýù½ö>¶ 쟹]¸Âµ K“=õûvß�»r~,îv¿à�¶Ÿàn÷1i–&{mûLun¸Bnqôw�Hïvç+È»më½ãݪ__ÍV“°+ê>Q>îg•Ÿß åbäê®.p6µmx…ÜÞí¾­À6¼š­>¦‰òqÙ˜bʈí[«³É7w*.ãøiÇîo+–&®pmÂÒd:oø Ü S²Ãlupœl»>&Ó"ì9Áæ®.ãøŠ‚ßñ³ÖíûØönÕ/ãø¶bi²áä7šÛ¸œ{L2Ž8òp—Í�SL/• ³Õû§¡.¦˜Œýaú¦ø7R·fû4Ëù�™^Ž�©j¨jˆ­1ªæ¥d¤œú2}‰©£^*«/Ó)~‰é4?4Û§YÎKL�L¯¯3¦˜:ïàÔßi6¹|·{Ðy�ÅÝî âËÆӀɂÔíàÔïv?‚©¢nà â{¾ uËþÆpt»íl¡çN~êw»� Æ9¿íX`N9È]!ÜíÂE[õí×ÃV“6ai²¯�ۻ݇íÔ6\Xévö7..ãø u{Ç·u%¸[êÇFRå�I )‹»Ýk–&ûÛó*êFóæØLìÛsw»p án÷†7Ì°ŠºÑ¬÷˜γB¸ãeÛÑí¶ œg…ÐÙ˜bʈí[«³É7w*.ãøŠ‚o¸ãÃòõ½rþo´ýr{…o­/tB8�iÀ20T¼h8_áÚ„¥ÉtÞðA¹ ¦d‡Ùê ÷üè—q|EÁ7Üñu»æõMù1iÃÂݪ¿;q~«ýnwÎÝíÂe/päá.›;=¦˜^*f«Ï‡O;BݳEL1a›SL/• ³Õ‡ü§¡îŒÙ€"¦˜b*�YBb˜ ó%2”_~–YÂØ�ALSK’SLÃlõf#ð~¯à]6·‹ÏÛ»J·ç^ÑÒ~…p�ó¼à��)¦Ìµ�´_Û~ÞÞUºýšÇÑßÇn®ð ßÖ°] rBè¹÷QØkÅ.\SA|ïøü~k½©ð WÞVƒü­¥î=wl¯Ø…+|k½©ð /ˆï %Þ“Û}5[ý¶†í®¨cÿ̵�´Vùù}M³mïž—?ö=w»d>xå Àtë‹T Àtÿv�·Pèð+ƒÄ‹å]Ãÿv�FÀPèV.ƒÄ3À3Ò‰F͉VÏ3À‰FÕ�vÓV�vÑVÿvöèöƒÄ‹N Àuéâÿ6NèÆ.ƒÄ‰Fø‰Vúÿ6N�vÛVèa ƒÄ Àtb�FÀP�FÛPè†1ƒÄ Àt븉Fþ�FÀP�FÛPèl1ƒÄ À|ë4ÿ6L�vÛVèd ƒÄÿvêÿvèÿ6Lÿ6Nèù ƒÄÿ6NèT.ƒÄ‰Fø‰Vú댋Fþ Àt,‹V Àtÿv�ÍPè+ƒÄ¸Pÿvêÿvèÿ6Nè +ƒÄë)‹V Àtÿv�êPèç*ƒÄ3ÀPÿvúÿvøÿ6Nèõ*ƒÄë‹V Àtÿv�Pè¼*ƒÄÿ6LèÎ-ƒÄ‰Fø‰Vú¸ˆKÿ6L�vÀVè¥ ƒÄ�vÀVÿ6Lÿvöè ƒÄ3ÀPÿvúÿvøÿ6Lè”*ƒÄÿ6L�vÀVès ƒÄ¸PÿvÏÿvÍÿ6Lèr*ƒÄÿvöèé,ƒÄ‹F Àt%�FÀPèc+ƒÄ Àt‹T Àt�FÀP�Pè*ƒÄ‹å]ÃU‹ìƒì 3ÀPè ƒÄ‹F Àtwÿ6L�vàVè¿ƒÄ Àtc3À‰Fû‰Fý‹Fý;F}'‹v‹FýÑàðÿ4�FàPèÙ ƒÄ Àt¸‰FûëÿFýëÑ‹Fû Àtÿv�vàVèHƒÄë¸Pÿvïÿvíÿ6Lè°)ƒÄë‹ë!ÿ6L�vàVèHƒÄ Àtÿv�vàVèƒÄëß3ÀPè" ‹å]ÃU‹ìƒìf‹F Àt#‹v�P�(PèB)ƒÄÿvÿ6Á+ÿ6Lè ‹å]ËV Àt‹v�P�3Pè)ƒÄ‹T Àué»�HP‹v�PèσĉFš Àué ÿvšè‰+ƒÄ‹v�P�KPè×(ƒÄ¸ ÀtK�lPèÅ(ƒÄÿ6¿+¸dP�FœPèÚƒÄ�vœŠ˜Pè˜"ƒÄ�vœˆ�vœŠ˜ƒøYuë �vœŠ˜ƒøNuëë®�vœŠ˜ƒøNu)‹v�P�ƒPèi(ƒÄ¸P‹vÿtÿt ÿ6Lès(‹å]Ã�–P‹v�PèƒÄ‰Fš Àtë1‹T Àt‹v�P�™Pè(ƒÄ¸P‹vÿtÿt ÿ6LèMZ 2 íÿÿí�¶9 l-,9O9U‹ìƒì3ÀˆFü�~|é�Pèì1ƒÄ�VPèá1ƒÄ�‹PèÖ1ƒÄ�¢PèË1ƒÄ�ÓPèÀ1ƒÄ�ìPèµ1ƒÄ�Pèª1ƒÄ�,PèŸ1ƒÄ�bPè”1ƒÄ�oPè‰1ƒÄ� Pè~1ƒÄ�´Pès1ƒÄ�êPèh1ƒÄ�Pè]1ƒÄ�5PèR1ƒÄ�_PèG1ƒÄ�ŠPè<1ƒÄ�¼Pè11ƒÄ�âPè&1ƒÄ�Pè1ƒÄ�:Pè1ƒÄ�fPè1ƒÄ��Pèú0ƒÄ�ÂPèï0ƒÄ�úPèä0ƒÄ¸‹å]Ã�PP� P‹vƒÆÿ4è0ƒÄPè 4ƒÄ�´P�PP�Pèó/ƒÄPèí3ƒÄ‹vƒÆ‹4‰vý‹výŠ˜ Àu龋výŠ˜Pèo*ƒÄ‹výˆ‹výŠ˜P�Pè)ƒÄ Àt*ŠFü˜ Àt‹výŠ˜PŠFü˜P�Pè"8ƒÄ‹výŠ˜ˆFüëf‹výŠ˜ƒøBu ¸‰R ëR‹výŠ˜ƒøWu3À‰T ë?‹výŠ((‹å]Ãÿvÿvšÿ6Lèуċvÿt‹vÿtÿvšèbƒÄÿvšèy*‹å]ÃU‹ìƒì"3À‰FÞPèÀƒÄ¸P3À3ÒRPÿ6LèÒ'ƒÄÿ6LèÃ*ƒÄ‰Fû‰Vý3ÀP3ÒRPÿ6Lè±'ƒÄ�~Þ|éâÿ6Lè(ƒÄ ÀtéÑÿ6Lè' ƒÄƒøt�PP�«PèV'ƒÄÿFÞé©ÿ6Lè ƒÄˆKŠK˜ Àué’ŠK˜ƒøuÿ6L¸P°P�vàV褃Äëÿ6L¸P°P�vàVè�ƒÄÿ6Lè*ƒÄFíVï;Vý|u;Fûv�FàP�ÓPèÕ&ƒÄÿFÞë,�vàV3ÀPÿ6LèšƒÄ ÀtÿFÞë�FàP�ñPè§&ƒÄéÿ�~Þ~ �Pè’&ƒÄë"‹FÞ ÀtÿvÞ�$Pè{&ƒÄë �8Pèn&ƒÄ‹å]ÃU‹ìƒì ‹F Àtë �LPè/.ƒÄ¸PèAƒÄÿ6N�vàVèƒÄ Àué�3À‰Fû‰Fý‹Fý;F}'‹v‹FýÑàðÿ4�FàPè ƒÄ Àt¸‰FûëÿFýëÑ‹Fû Àt-¸Pÿvïÿvíÿ6Nè&ƒÄ‹V Àt�FàP�tPèÈ%ƒÄë"ÿ6L�vàVèÆƒÄÿvïÿvíÿ6Lÿ6Nè[ƒÄé[ÿ3ÀˆKÿ6L�vàV蛃ĸPèD‹å]ÃU‹ìƒì �‡Pèq%ƒÄ�¼Pèf%ƒÄ3ÀPèXƒÄ‹F Àtrÿ6L�vàVèƒÄ Àt^3À‰Fû‰Fý‹Fý;F}'‹v‹FýÑàðÿ4�FàPè-ƒÄ Àt¸‰FûëÿFýëÑ‹Fû Àt �vàVèWƒÄ¸Pÿvïÿvíÿ6Lè %ƒÄë�ë2ÿ6L�vàVè¡ƒÄ Àt �vàVè#ƒÄ¸Pÿvïÿvíÿ6LèÕ$ƒÄëÎ3ÀPèj‹å]ÃU‹ìƒì ‹v‹D¹ Óø%‰Fô‹v‹D¹Óø%‰Fö‹v‹D%‰Fø‹v‹D¹ Óø%‰Fú‹v‹D¹Óø%?‰Fü‹v‹D%Ñà‰Fþ‹vÿtÿt‹v�P�#Pè*$ƒÄŠK˜Pë4�1Pè$ƒÄë8�6Pè $ƒ˜ƒøNu3À‰V ë,‹výŠ˜ƒø-uë ‹výŠ˜ƒø/uë‹výŠ˜P�4Pè±7ƒÄÿFýé5ÿŠFü˜ Àtë �MPè–7ƒÄŠFü˜P饊Fü˜ƒøM¸tÿÈP‹FƒÀP‹FƒèP躃Ä鮋FƒÀP‹FƒèPè ƒÄé—ŠFü˜ƒøP¸tÿÈP‹FƒÀP‹FƒèPè:ƒÄër‹FƒÀP‹FƒèPèº ƒÄë\è]ëW‹FƒÀP‹FƒèPèÓ ƒÄëAŠFü˜P�cPèë6ƒÄë/èZ1 CTLPXEDMUAðÚÕ¿šššƒ]]]3À‹å]ÃU‹ì�ìŒ3À‰F܉FÞ‰Fâ‹Fâ;F|éÂ�†tÿP�‚P‹v‹FâÑàðÿ4èæ-ƒÄ�†tÿP�†tÿP�†PèÑ-ƒÄ3ÀP�†tÿƒÀPèÛ/ƒÄ‰F؉FÚ‹vÚŠ˜ Àtë&‹T Àt�†tÿƒÀP�ŠPèI.ƒÄÿvØè+ƒÄëB‹vÚŠ˜ Àt8ÿFÞ‹FÞÑàPÿvÜèÑ%ƒÄ‰FÜ‹FÚ‹vÜ‹VÞƒêÑâò‰‹vÚÿFÚŠ˜ Àtëñë¾ÿFâé3ÿ3À‰Fâ‹FÞH;Fâ~r‹Fâ@‰Fà‹Fà;FÞ}]‹vÜ‹FàÑàðÿ4‹vÜ‹FâÑàðÿ4è½3ƒÄ À~6‹vÜ‹FâÑàð‹4‰vÚ‹vÜ‹FàÑàð‹4‹~Ü‹FâÑàø‰5‹FÚ‹vÜ‹VàÑâò‰ÿFàë›ÿFâé…ÿ3À‰Fâ‹FÞH;Fâ雋vÜ‹Fâ@Ñàðÿ4‹vÜ‹FâÑàðÿ4èH3ƒÄ Àtëë�PP‹vÜ‹FâÑàðÿ4è)3ƒÄ Àtëë�´P‹vÜ‹FâÑàðÿ4è 3ƒÄ Àtë2‹Fâ‰Fà‹FÞH;Fà~‹vÜ‹Fà@Ñàð‹4‹~Ü‹FàÑàø‰5ÿFàëÙÿNÞëÿFâéYÿ‹FÞ Àtë �žPè•4ƒÄ¸Pè§ ƒÄ3À‰Fâ‹Fâ;FÞ}ÿv‹vÜ‹FâÑàðÿ4èeƒÄÿFâëÞ‹N Àt6ÿ6N�väVè: ƒÄ Àt$ÿ6L�väVèk ƒÄÿvóÿvñÿ6Lÿ6Nè ƒÄëÊ3ÀˆKÿ6L�väVèA ƒÄ¸Pèê‹å]ÃU‹ìƒì@3À‰Fþ�´Pÿvè㠃ĉFöÄë+�;Pèý#ƒÄë�@Pèð#ƒÄëè'ê ê ÷ ¸d3Ò‹v‹\‹LQS»d3ÉQS‹vÿtÿt è=QSè•[Y+ÃÑRP�EPè #ƒÄ�~ú ~¸pë¸aPÿvü�~ú ~‹Fúƒè ë‹FúP¸dP‹FôƒÀP[™÷ûR�6\ ‹FöHÑàðÿ4ÿvø�OPèO#‹å]ÃU‹ìƒì �nP�P�PP�iPèx"ƒÄPèûƒÄ Àt�P�pPèò*ƒÄ¸PèƒÄ‹F Àuéƒÿ6N�vàVè¼ƒÄ Àto3À‰Fû‰Fý‹Fý;F}'‹v‹FýÑàðÿ4�FàPèÖƒÄ Àt¸‰FûëÿFýëÑ‹Fû Àt �vàVèiƒÄë"ÿ6L�vàV裃Äÿvïÿvíÿ6Lÿ6Nè8ƒÄéÿëÿ6N�vàVè9ƒÄ Àt �vàVè$ƒÄëâ3ÀˆKÿ6L�vàVèXƒÄ¸Pè‹å]ÃU‹ìƒì�ŒP�PèýƒÄ‰Fþ Àtë�P��Pèï)ƒÄ‹V Àt‹v�P�³Pè÷!ƒÄÿvÿvþÿ6NèƒÄ3ÀP3ÒRPÿvþèø!ƒÄÿ6Lèé$ƒÄ‰Fú‰Vü¸ˆKÿ6LÿvèÁƒÄÿvÿ6Lÿvþè(ƒÄ3ÀPÿvüÿvúÿ6Lè±!ƒÄÿ6Lÿv葃ĸP‹vÿtÿt ÿ6Lè�!ƒÄÿvþè$ƒÄ�Pè„"ƒÄ Àt‹T Àt�P�ÒPè}‹FÑàÑàÑàø‹;v¸‹å]Ã�6}‹FÑàÑàÑàð�>}‹FÑàÑàÑàø‹;u-�6}‹FÑàÑàÑàð�>}‹FÑàÑàÑàø‹E;D~¸‹å]Ã3À‹å]ÃU‹ìƒì ¸‰Fö�~éЋv‹‰Fú‹vÿN‹FÑàð‹‹v‰‹FHP3ÀPÿvè‘þƒÄ‹v‹‰Fü�}‹VöÑâÑâÑâ‰Fø‹FöÿFö‹v‰‹Fú‹vø‰D‹Fü‹vø‰D�6}‹FúÑàÑàÑàð‹�6}‹VüÑâÑâÑâò‹vø‰�6}‹FüÑàÑàÑàðÿt�6¸P°Pÿv艃ĸ‹å]ÃU‹ìÿv¸Pè$&ƒÄÿvŠK˜Pè&ƒÄŠK˜ Àtë‹å]Ãÿv¸P°PÿvèÃ!ƒÄ‹v‹D;X ~ë‹v‹D;X u ‹v‹D;Z ~‹v‹D‰X ‹v‹D‰Z ‹å]ÃU‹ì‹F ÀtÿvÿvèŸ%ƒÄƒøÿu �…Pè/'ƒÄ‹å]ÃU‹ì�ì‹F‹V �Fÿÿ�V ÿÿ Ðt%ÿvÿvèáƒÄPè]%ƒÄƒøÿu ��Pèí&ƒÄëÇ‹å]ÃU‹ìƒìd‹F Àuéˆ�µP�´P較ĉN Àué�ÿ6Nèt!ƒÄ�´P�¸PèÃĸ ÀtK�ØP豃Äÿ6¿+¸dP�FœPèÆƒÄ�vœŠ˜P脃Ä�vœˆ�vœŠ˜ƒøYuë �vœŠ˜ƒøNuëë®�vœŠ˜ƒøNu �ìPè:&ƒÄ�´Pè|ƒÄ� P�PPèƒÄ‰L Àué‰ÿ6LèÌ ƒÄ�´P�PPè�ƒÄ Àt�´P�PP� Pèá%ƒÄ� P�´PèÆƒÄ‰N Àtë�´P� Pè·%ƒÄ�@ P�PP蜃ĉL Àtë�PP�C Pè�%ƒÄë:�PP�a P蜃Ä�{ P�PPè`ƒÄ‰L Àtë�PP�~ PèQ%ƒÄë*�˜ P�PPè4ƒÄ‰L Àtë�PP�› Pè%%ƒÄ‹å]ÃU‹ì‹F Àt9‹N Àt ÿ6NèǃċR Àtë �´Pè=ƒÄÿ6Z ÿ6X ÿ6L考Äÿ6Lè–‹å]ÃU‹ìÿvè3 ƒÄÿvè* ƒÄ‹vŠ˜ Àtë ‹vŠ˜ Àtm‹vŠ˜P‹vŠ˜Z;ÂtR‹vŠ˜ƒø?tG‹vŠ˜ƒø*t3À‹å]ËvŠ˜ Àt‹vŠ˜ƒø.tÿFëæ‹vŠ˜ Àt‹vŠ˜ƒø.tÿFëæëÿFÿFé}ÿ¸‹å]ÃU‹ì‹F¹Óø%ÿ�6t ‹V3V�âÿÑâò3‹å]ÃU‹ìƒì3À3Ò‰Fø‰Vú3À‰Fþ�~þ}<�6‡‹Fþ}‹FúÑàÑàÑàðÿtè+ƒÄ@‹vø‰D‹FHP3ÀPÿvèñýƒÄé&ÿ‹v‹‰…‹å]ÃU‹ì‹F;F~‹Fë‹F‹å]ÃU‹ìƒì3À‰Fþ�~þ}V3À�6}‹VþÑâÑâÑâò‰3À�6}‹VþÑâÑâÑâò‰D¸ÿÿ�6}‹VþÑâÑâÑâò‰D¸ÿÿ�6}‹VþÑâÑâÑâò‰DÿFþë£3À‰Fþ�~þ}3À3Ò�6�#‹^þÑãÑãó‰‰TÿFþëÞ‹å]ÃU‹ìƒì3À‰Fþ�~þ}3À�6‡‹VþÑâò‰ÿFþëå‹å]ÃU‹ìƒì�6}‹FÑàÑàÑàð‹D‰Fü�6}‹FÑàÑàÑàð‹D‰Fþ�~üÿÿuI�~þÿÿuB‹F�6‡‹VÑâò‰‹‹#ºÿÿ»+^‹ËÓê#Â�6‰!‹VÑâò‰�~~¸ÿÿë3À‹å]Ã�~üÿÿt0¸‹V‹ÊÓà÷Ћ‹##Љ‹#ÿvü‹F@PèXÿƒÄƒøÿu¸ÿÿ‹å]Ã�~þÿÿt.¸‹V‹ÊÓà‹‹# Љ‹#ÿvþ‹F@Pè#ÿƒÄƒøÿu¸ÿÿ‹å]Ã3À‹å]ÃU‹ìƒì �>…}3Àë‹…�è‰Fþ‹F Àtÿv¸P°P�vþVè߃ċFþÑàÑàƒÀ™‰Ÿ'‰¡'3À‰Fü‹…‰Fú‹Fü;Fþ|é”�6}‹FúÑàÑàÑàð‹D‰Fö�6}‹FúÑàÑàÑàð‹D‰Fø�~ö}‹Fö@÷Øë‹…+Fö‰Fö�~ø}‹Fø@÷Øë‹…+Fø‰Fø‹F Àt(ÿv¸P°P�vöVè>ƒÄÿv¸P°P�vøVè*ƒÄÿFüÿNúéaÿ‹å]ÃU‹ìƒì3À‰Fú°‰Fü‹“';Fü|D�~üu‹Fú‹å]Ë•'º+Vü‹ÊÓà‹Vú ЉVú‹Fü‹•'‹ÈÓꉕ'‹Fü)“'‹Fú%ÿ‹å]Ã�>“'~‹•'º+Vü‹ÊÓà‹Vú ЉVú‹“')Fü�>‘'u3À‰“'�~üu¸ÿÿë‹FúƒÀ‹å]Ãÿvè¹öƒÄ‰‘'ƒøÿu¸‰‘'�6‰!‹‘'Ñàð‹‰•'�6‡‹‘'Ñàð‹‰“'é*ÿU‹ìƒì3À‰±+‹v‹D ‹T‰³+‰µÑàð‹™RP�6�#‹FþÑàÑàðÿtÿ4èqXZ‹^ø‹NúØʉ^ø‰NúÿFþ뽸3ÒRP‹Fø‹VúƒÀƒÒRPè¡XZ‰Fø‰Vú�>…}3Àë‹…�è‰FüÑàÑàƒÀ™‹^ø‹NúØʉ^ø‰Nú‹Fø‹Vú‹å]ÃU‹ìƒì‹V Àt �³ PèeƒÄ3À‰£'3Ò‰Ÿ'‰¡'‰›'‰�'‰—'‰™'3Àˆ|ÿvèþƒÄèÿ‰Ÿ'‰¡'3ÀP3ÒRPÿvè<ƒÄ‹£'‹v‰D‹—'‹™'‹v‰D‰T3Àˆ|‹—'‹™';�'ku;›'wc‹—'‹™';¡'Uu;Ÿ'wM‹V Àt �À P軃ĸˆK‹—'‹™'‹v‰D ‰TÿvèƒÄ‰FþƒøÿtÿvÿvþèûƒÄëáéÁ‹›'‹�';¡'Tu;Ÿ'sL‹V Àt �Ê PèXƒÄ¸ˆK‹›'‹�'‹v‰D ‰Tÿv葃ĉFþƒøÿtÿvÿvþè°úƒÄëáë_‹V Àt �Ô Pè ƒÄ¸ˆKÿvè÷ƒÄÿvèèƒÄ‰FþƒøÿtÿvÿvþèlúƒÄ�Ÿ'�¡'ëÕ‹Ÿ'‹¡'‹v‰D ‰T‹V Àt �à P譃ċå]ÃU‹ìƒìÿvèƒÄ‰Fþƒøÿt �›'��'‹Fþ‹å]ÃU‹ìŠ|0äP騏ˆ|ÿvèàƒÄ‰¥'‹å]Ë¥'Péz3Àˆ|3À‹å]øÿÿ‹å]ø‰§'ÿv譃ĉ©';¥'u�>§'ÿ}ÿ§'ëß‹§'Pë)‹©'‰¥'‹å]øˆ|‹¥'‹å]øˆ|¸�‹å]Ãèüëè(ÿÿ�ÍÆº¸ˆ|‹©'‰¥'‹å]øˆ|‹§'‹å]Ã�ç Pè{ ƒÄëèÇeš²CV‹å]ÃU‹ìƒìÿvèƒÄ Àt¸ÿÿ‹å]ÃÿvèƒÄ‰Fþ�—'�™'ÿvþÿ6£'èôûƒÄ‰£'‹Fþ‹å]ÃU‹ì�ì èzÿvè‚þƒÄ‰†ôý�¾ôýÿÿu¸‰†ôý�}‹–ôýÑ+3À‰«'ŠK˜Pé·ÿv訃ĉFþƒøÿtÿvþÿ6±+èŒóƒÄ‰±+ÿvÿvþè[ðƒÄëÐé•ÿvèÁƒÄ‰Fþƒøÿtÿvþÿ6±+èYóƒÄ‰±+ÿvÿvþè(ðƒÄëÐëcÿvÿvÿvèkƒÄëR‹T Àt‹v�P�ü PèmƒÄ� PèbƒÄ¸P‹vÿtÿt ÿvèmƒÄ¸‹å]Ãèr†"""C"u"‹v‹D;±+t ‹T Àt‹v�P�I PèƒÄ¸‹å]Ã3À‹å]ÃU‹ìƒì‹«'P铸‰«'ÿv虃ĉ¹+‹å]Ãÿv舃ĉFþ=�t ‹Fþ‰¹+‹å]ÃÿvèlƒÄ‰·+ Àt¸‰«'�.·+‹¹+‹å]ËFþ‰¹+‹å]Ãÿ·+‹·+ Àt븉«'‹¹+‹å]Ãÿ6«'�k PèBƒÄë莚##0#}#‹å]ÃU‹ì‹³+‹µ+ Ðtë¸ÿÿ‹å]Ã�³+ÿÿ�µ+ÿÿÿvèÝ‹å]ÃU‹ìƒì¸c‰­+ÿv°P°P�vþVè�ƒÄ�~þ}ë�~þ|‹v�P�ˆ P较ĸÿþ�6­'�ƒÂ‹ò‰¸ÿþ�6­'�ƒÂ‹ò‰3À‰Fú‹Fú;Fþ}Hÿv¸P°P�6­'‹FúÑàÑàð�PèƒÄÿv¸P°P�6­'‹FúÑàÑàð�ƒÀPèüƒÄÿFúë°ÿvè.ƒÄ‰Füƒøÿtÿvüÿ6±+èúðƒÄ‰±+ÿvÿvüèÉíƒÄëЋå]ÃU‹ìƒì‹«'P铸‰«'ÿv虃ĉ½+‹å]Ãÿv舃ĉFþ=�t ‹Fþ‰½+‹å]ÃÿvèlƒÄ‰»+ Àt¸‰«'�.»+‹½+‹å]ËFþ‰½+‹å]Ãÿ»+‹»+ Àt븉«'‹½+‹å]Ãÿ6«'�« PèvƒÄëèÂf%ä$ü$I%‹å]ÃU‹ìƒì3À‰Fþ�~þ}é‚ÿ­+‹­+ƒø~Bÿvè þƒÄ‰¯+ƒøÿu¸ÿÿ‹å]Ã3À‰­+�6­'‹FþÑàÑàð�º#¯+Ñâ‹ð‹‰Fþë0�6­'‹FþÑàÑàð�ºv 3ÒRPÿ6Á+èƒÄRPèèúXZ‹6Á+‰D ‹v ‹6Á+‹T +‹6Á+‰D ‹F¨‹6Á+‰D¸‹6Á+‰D¸P°Pè�ƒÄ�6É+‰‰Ã+¸‹6Ã+‰¸‹6Ã+‰D‹6Ã+‰D ¸‹6Ã+‰D‹6Ã+‰D�~þ |¸P� P¸Pè!ƒÄ¸‚€Pèˆ ƒÄ� �vº‰�FºPÿvþèAуÄPèÊ ‹å]ÃU‹ìƒì�Füÿ‹F‹v‹;Ðt� P¸ Pè ƒÄ¸ˆ€Pè: ƒÄ�,‰Fü‰Fþ‹vü‹4‰vú öt‹F;Fúwë‹Fü‰Fþ‹Fú‰FüëÜ‹F;Fúu믋vü‹4‹~‰5‹F‹vü‰�,;Füt4‹F‹VüƒÂ‹vüT;Ðu!‹vü‹DƒÀ‹vD‹vü‰D‹v‹4‹~ü‰5ë ‹Fü‰Fþ‹F‰Fü‹Fú Àt2‹Fú‹VüƒÂ‹vüT;Ðu‹vü‹DƒÀ‹vúD‹vü‰D‹vú‹4‹~ü‰5‹& ‹VüƒÂ‹vüT;Ðu‹Fü‰& 3À‹vþ‰‹å]ÃU‹ìƒì3ÀP°RPÿvè¿ ƒÄÿvè� ƒÄƒø~3‹vFŠ0äƒø:u&3À‰Fü�~ü}‹vÿFŠ%ÿ‹v‹VüÿFüòˆë߸‰Fü¸\PÿvèƒÄ Àtë¸/PÿvèýƒÄ Àtu3À‰Fþ‹vŠ0äƒø\t8‹vŠ0äƒø/t,�~üA} ‹FþÿFþƒø}‹vŠ%ÿ‹v‹VüÿFüòˆÿF뼋vŠ0äƒø/u ‹vŠ%ÿë¸\‹v‹VüÿFüòˆÿFégÿ¸C‰Fü‹vŠ%ÿt-‹vŠ0äƒø.t!�~üK}‹vŠ%ÿ‹v‹VüÿFüòˆÿFëɸL‰Fü‹vŠ%ÿt!�~üP}‹vŠ%ÿ‹v‹VüÿFüòˆÿFëÕ‹å]ÃU‹ì�ì¤�†\ÿPÿvè‡þƒÄ�F®PÿvèzþƒÄ3À‹vˆ�v®Š%ÿt�F®ë�†\ÿPÿvèƒÄ�v±Š%ÿt�F®ƒÀë�†\ÿƒÀPÿvèãƒÄ�vñŠ%ÿt�F®ƒÀCë�†\ÿƒÀCPÿvèÀƒÄ�vúŠ%ÿt�F®ƒÀLë�†\ÿƒÀLPÿvè�ƒRº‹¯+‹ÊÓû‰¯+Z#ÓÑâ‹ð‹‰Fþétÿ‹Fþ@÷؉Fþ�~þu¸ÿÿë‹Fþ‰Fþ‹å]ÃU‹ìƒì¸W‰Fðÿvè~ƒÄ‰Fò�vðVVèbƒÄ%tÿvð�È Pè– ƒÄ‹Fö‹v‰‹Fô‹v‰‹å]ÃU‹ìƒì¸W‰Fðÿvè4ƒÄ‰Fò‹F‰Fô‹F‰Fö�vðVVè ƒÄ%tÿvð�á Pè@ ƒÄ‹å]ÃU‹ì‹v‹D‹å]ÃU‹ìƒì3À‰Fø¸ÿÿ‰Fú3À‰Fü‹vŠ%ÿué�‹vÿFŠ0äPëb¸‰FúëÞ‹Fø Àt븉Fø�NüëÈ‹Fø Àt븉Fø‹Fø Àt븉Fø�Nü룋Fü%t�Nüë ‹Fü%t�Nüé„ÿèí +awrbŠ'P':'+'' 'é�‹FøPëM3ÀP‹FüFúPÿvèû ƒÄ‰Fþ�~þÿÿtë�~øuë�>,të*¸ÿP‹FüFúPÿvèÈ ƒÄ‰FþëëJèY Þ'“'Å'“'�~øu�~þÿÿt¸P3À3ÒRPÿvþè#ƒÄ�~þÿÿt�6Å+‹FþÑàð‹4‹Æ‹å]Ã3À‹å]ÃU‹ìƒì3À‰Fü‹FH;Fü~0ÿvè{ƒÄ‰Fþ�~þÿÿuë‹Fþ‹v‹VüÿFüòˆ0äƒø uëëÇ3À‹vvüˆ‹Fü Àt‹F‹å]Ã3À‹å]Ëå]ÃU‹ìƒì3À‰Fü‹Fü;Fs>ÿvÿvÿv è ƒÄPè�ƒÄ‰Fþ Àtëë‹F;FþtÿFüë‹F‹VЉVÿFü뺋Fü‹å]ÃP2Àë P°ëP°ëP°SQRVU‹ìW˜“‹F‹V‹v‹~öÃu Òy ÷Ú÷؃ÚþÇ ÿy ÷ß÷ރ߀÷S¹ 3ÛS‡NúÑàÑÒÑÓÑÑ;ùw r;ów+ÞÏ@‡Núâá^YöÁt “‹ÖöÅt€õöÁu öÅt÷Ú÷؃ډF‰V_]^ZY[XÂU‹ìPR‹F ÷f‰F ‹F÷fF ‹F÷f‰FV ZX]ÂU‹ìƒì3À‰Fþ‹F@%þÿ‰F‹F Àtëëo‹vƒî‹D‰FþÿvèàƒÄ¸‹V+ЉV‹6,‰vü‹Ä‹F‹å]ÃU‹ì�vVÿvÿ6Á+è;ƒÄP�À@Pè¬ ‹å]ÃU‹ì‹vöub€$÷ö t V迃Ä=ÿÿtJ‹F ‹V‹N<t <t<të7‹Ú‹D÷ØD™ØʋӰ´B‹\Í!‹Ø3ɉL‰L‹LI#Ù‰\ A+ˉL ‹å]ÃÆDxëˆD€ @¸ÿÿ‹Ð‹å]ÃU‹ìƒì‹v‹%t‹v�D‹vD‹ðŠ0äƒøu¸‹å]Ëv‹~‹E;Dt3À‹å]øD‰Fð‹v‹D‰Fò�vðVVè½øƒÄ%t¸@‹v‹ Љ‹Fð%ÿ‰,‹Fð%ÿt¸5‹å]ÃU‹ìƒì‹F‰Fö¸A‰Fð�vøV衃Ä�vðVVèiøƒÄ%t¸ÿÿ‹å]Ã3À‹å]ÃU‹ìƒì@3À‰Fû‰Fý�vÈVèlƒÄ‹F‰FÆ‹F‰FÄ�vÐV¸PèQƒÄ¸N‰FÀ�vÀVVèøƒÄ%tëQ�FîPèåƒÄFý@PÿvûèëõƒÄ‰Fû Àu3À‹å]Ã�FîP‹FûFýP蕃Ä�FîP诃Ä@‹VýЉVý¸O‰FÀë�‹Fý@Pÿvûè¤õ‹å]ÃU‹ìƒì3À‰Fþ‹Fþ;Fs-ÿvÿvÿv èƒÄPè‚ ƒÄ;Ftë‹F‹VЉVÿFþëË‹Fþ‹å]Ã_ŒÈŽÀX&‹ ‹ÙÑãûAýò¯ƒÇû&ÿ5üŒØŽÀÃüU‹ìŒßŽÇ‹~3À3ÉIò®÷Ñ‹v‹~öÁt¬ªÑéó¥‹F]ÃU‹ìƒì3À‰Fþ‹v‹% tÿvè;ƒÄƒøÿu¸ÿÿ‰Fþ3À�6Å+‹~‹UÑâò‰¸>‰Fî‹v‹D‰FðÿvèÐùƒÄ�vîVVè½öƒÄ%t‹Fî%ÿ‰,¸ÿÿ‹å]ËFþ‹å]ÃU‹ì¸P3À3ÒRPÿvèòü‹å]Ã_ŒÈŽÀ[&+&;]r»ÿÿÑã&ÿaU‹ìƒì‹F‰Fþ‹vþŠ%ÿt-‹vþŠ0äƒøar‹vþŠ0äƒøzw¸àÿ‹vþŠ�âÿЈÿFþëÉ‹F‹å]ÃU‹ìƒì*3À‰Fì‰FþÿvèòƒÄƒøuH‹vƒÆŠ0äƒø:u93À‰FÖ�~Ö}‹vvÖŠ0äPèöƒÄ�vâvÖˆÿFÖëÛ3À�våˆ�Fâ‰FàFü Àt‹vü‹D;Fs ‹vü‹4‰vüëä‹Fü Àt%‹Fü;Ftÿv‹FüƒÀP‹FƒÀPè�ƒÄ‹Fü‰Fÿv蘃ĉFü ÀtT‹F;Fþs‹F‰Fþ‹Fþ Àt‹FƒÀ;Fütÿvþÿvü‹FƒÀPèDƒÄ‹F;Fþv3ÀP‹F+FþP‹Fü‹VþÂPèƒÄ‹Fü‹å]ÃU‹ìŠF0äPÿvè:‹å]ÃU‹ì‹^öu%ö u,‹G;G}5‹wŠ@2äÿG<tQ< tXø‹å]À'÷ŠG2ä‹å]ÃSèûƒÄ=ÿÿtã‹^ëÃS¸?‹O �W‹_Í![rK=t‰G¸‰G‰G ‹G‰G ë ötªÿOùë.öt£ö€už€€SèlÿƒÄ=ÿÿt�€'< tˆÿO° ë�€@ˆGø¸ÿÿ‹å]ÃU‹ìƒì�vøVèeƒÄ‹Fü‰Fþ¸V‰Fð‹F‰Fö‹F‰Fú�vðVVèƒÄ%t¸ÿÿ‹å]Ã3À‹å]ÃüU‹ì‹^¹ÿ7CCâú_^ZY[XÍ!‹ìœWVRQSP‹^ ¹6�CCâùX]ÃU‹ìŠF˜ƒøa|ŠF˜ƒøz¸àÿPZŠF˜ˆFŠF˜‹å]ÃU‹ìƒìX‹" Àtë�ú P¸ P謃ĸ€Pèå ƒÄ‹F‰F¸‹v¸ÿF¸Š%ÿ‰Fü‹FüÿNü Àt&‹v¸Š0äƒø uë ‹v¸Š0äƒø u3À‹v¸ˆÿF¸ëÐ3À‹v¸ˆ‹F‰F¸¸‰Fþ‹v¸ÿF¸Š%ÿ@‰Fü‹FüÿNü Àt@‹v¸Š%ÿtëë-‹F¸�vº‹VþÿFþÑâò‰�~þ |ë‹v¸Š%ÿtÿF¸ÿNüëîÿF¸ë¶3À�vº‹VþÑâò‰�>v €v¸€‰v ¸›P°P蹃Ä�6Å+‰‰¿+¸‹6¿+‰¸ˆ‹6¿+‰D‹6¿+‰D 3À‹6¿+‰D‹6¿+‰D¸D‰F¨¸‰Fª�v¨VVèQþƒÄ‹F®%€t;¸P°PèYƒÄ�6Ç+‰‰Á+¸‹6Á+‰¸‹6Á+‰D‹6Á+‰D‹6Á+‰D é…¸E‰F¨¸‰Fª�v¨VVè÷ýƒÄ‹v ƒÀP¸PèƒÄ�6Ç+‰‰Á+¸‹6Á+‰‹v ‹6Á+‰D‹ë‹F‰Fà‹v Àtëë‹v ‹v ƒê#Ât)¸‰Fè‰Fê‹Fê;v s‹Fê‰Fè‹FêÑà‰Fêëç‹Fè‰v ‹F=‹V�â‰Fî3À‰Fò‹Fà‰Fô�vöVèƒÄ�vîVVèGõƒÄ%té%¸‰Fþ‹Fî‰Fæ‰Fð¸D‰Fî�vîVVèõƒÄ%téý‹Fô%€t]‹F%t3¸D‰Fî‹Fæ‰Fð‹Fô%ÿ ‰Fô�vîVVèäôƒÄ%t鸉FÞë ‹F÷Ð%t‹Fô%t¸ˆ‰FÞ븉FÞë‹v ‰FÞ3À‰FÜ�~Ü }�6Å+‹FÜÑàð‹4 ötëëÿFÜëß�~Ü uël¸P‹FÞƒÀPèˆ ƒÄ‰Fì ÀtëëP‹F@÷Ð%‹v쉋FÞ‹vì‰D‹vì‰D ‹Fæ‹vì‰D‹FÜ‹vì‰D‹Fì�6Å+‹VÜÑâò‰‹FÜ‹å]ËFî%ÿ‰,‹F Àt ÿvàèsûƒÄë-‹Fþ Àt&¸>‰Fî‹Fæ‰Fð�vîVVèàóƒÄ%t ‹Fî%ÿ‰,‹Fì Àt ÿvìèÉöƒÄ¸ÿÿ‹å]ÃüU‹ìŒßŽÇ‹~3À3ÉIò®÷Ñ‹~‹vöÁt¦uÑéó§tƒîƒï¦u¦tHë�@]ÃU‹ìÆF‹^€'÷ö t;€~ t‹w‹Fˆ@ÿG‹O;O }P‹å]ÃötãS¸ PèÃÿƒÄ=ÿÿtç€ ‹^ëË€ ƒt¼€'ßötëcS¸P¸PPSètùƒÄ=ÿÿtP[€ ë–ƒu �wŠ´Í!ëS´@‹O�W‹_Í![r%;Áu3À‰G‰G‰G ‹G‰G €'ß‹F‹å]ÃÆGwëˆG€@¸ÿÿ‹å]Ãëº( ´ Í!¸ÿÿPè Ûãü¸,ŽØŒ4 &¡;z vÜ+z Œß�Ç;øs‹Ç¾ì;ðsÅ+Æ;x r½;t v¡t ðŒß‹Æ+Ç=v¸+ð‹þ‹ð±ÓàœYúŽ×‹à3íU‹ìQ�þW´0Í! Àu2ä[£" t[XŽÀ+؉$ ´JÍ!s‰$ ŒÛ¾€Š €Á�áþ+á‹üó¤ŽÛ‹ÄPŽÃ¿K¹ ,+Ï3ÀóªèBòPèIU‹ì�6 Pÿ6Ã+èØ ƒÄ�vVÿvFþ�,‰Fø‹vø‹4‰vú öto‹vú‹D;Fþr[‹FþƒÀ‹vú‹T;Ðr6‹vø‹4‹FþðƒÆ‰vü‹vú‹4‹~ü‰5‹vú‹D+Fþƒè‹vü‰D‹Fü‹vú‰ë ‹vú‹D‰Fþ‹vú‹4‹~ø‰5ë ‹Fú‰Føé…ÿ‹Fú Àtë‹FþƒÀPè¹øƒÄ‰Fú Àt7‹Fú‹vú‰‹Fþ‹vú‰D�Fú‹Fþ;Fv3ÀP‹Fþ+FP‹Fú‹VÂPèèøƒÄ‹Fú‹å]ÃU‹ìƒì‹F3ÒRP‹F3ÒRPè™æXZ‰Fü‰Vþ‹Fü‹Vþƒúruƒøèv3À‰FúëÿvüèÈþƒÄ‰Fú Àt3ÀPÿvüÿvúèŠøƒÄ‹Fú‹å]ÃU‹ì‹vƒþ sTÑæ‹œÅ+ ÛtHöuC‹Nã#üötJ‹~2äQSèWçr!ƒÄ=ÿÿt ª= t Yâè‹F‹å]ÃötñYIëƒÄY‹F+Áëè¸P¸N PèŸ ¸Ž€Pèƒö‹G Àu;O|ª+G;Á}£ö tSQSè4ƒÄY[=ÿÿuëy�‹~öuWƒt�ww‘+Áó¤‹È¸‰G‰G)N‹Á‹WJ#Â+Èã8PS´?‹_‹×Í![Yr-FøQW‹GPèÿƒÄ=ÿÿtF‹å]ÃPŠGªIX€'÷ë�‹ÈëØ€@ˆG¸ÿÿ‹å]ÃU‹ì‹v‹D‹å]ÃU‹ìƒì3À‰Fþ‹vŠ%ÿtŠF%ÿ‹vŠ�âÿ;Ðu‹F‰FþÿFëØ‹Fþ‹å]ÃüU‹ìŒßŽÇ‹~‹÷3À3ÉIò®÷ыы~3ÉIò®O‹ÊöÁt¬ªÑéó¥‹F]ÃU‹ì�vVÿvÿvèvÿƒÄP�À@Pèçö‹å]Ëô‹tŒ ŒTŒ\ŒDÃU‹ì‹v´@‹\‹L�TÍ!r;Áu¹‰L‰LD )D €$ß‹å]ÈDëÆDw€ @¸ÿÿ‹å]ÃU‹ìŠF0äƒø0¸sÿÈ Àt¸ ÀtŠF0äƒø9¸vÿÈ Àt¸ Àt¸ë1À‹å]ÃU‹ìƒì3ÀP�vVè܃ĉFøŠF0äƒøe¸tÿÈ ÀukŠF0äƒøg¸tÿÈ ÀtG‹Føƒø¸}ÿÈ Àt¸ Àu‹Føƒøû¸~ÿÈ Àt¸ Àu1Àë¸ Àt¸ Àÿ6Ã+èM ƒÄP�À@P较Ä�@ Pÿ6Ã+è¬ ƒÄ¸ÿPèc‹å]ÃU‹ì‹F‹D Ût(x Àt"P‹V�D è)�B ´ Í! ít 9nv‹nëàX‹" Ût´LÍ!�62 ÿ,¾ŠÂ±Óê$�'@'NˆuíÃU‹ìƒì3À‰Fþ�~þ }�6Å+‹FþÑàð‹4 öt ÿvþèKƒÄÿFþëÚÿvèjÿ‹å]ÃU‹ìŒØŽÀ‹v‹~‹N;÷rüëñNùOýó¤]üÃU‹ìŠf‹VÍ!]ÃU‹ì‹vŠ%ÿt"ŠF%ÿ‹vÿFŠ�âÿ;Ðu ÿN‹F‹å]ÃëÔ3À‹å]ÃU‹ìÿv ÿvÿv�6Å+‹FÑàðÿ4èÞö‹å]ÃU‹ìƒì�~þv3À‹å]ËF@%þÿ‰F‹| FP�F+& 3ÒZ;Âs3À‹å]Ë& ‰Fþ‹F‹& Љ& ‹Fþ‹å]ÃüU‹ìŒßŽÇ‹~3À3ÉIò®-+Á]ÃU‹ìŒØŽÀ‹~‹NŠFüóª]ÃU‹ì�ìž‹vŠ%ÿuéÖ‹vŠ0äƒø%tA‹F‰FâÿFâ‹vâŠ%ÿt‹vâŠ0äƒø%tëå‹Fâ+F3ÒPÿvÿv‹vÿփċFâ‰F醸‰FèÿF‹vŠ0äƒø-¸tÿȉFê ÀtÿF‹vŠ%ÿ‰Fì�~ì0uÿFë¸ ‰Fì‹vŠ0äƒø*u‹v �F ‹‰FîÿFë53À‰Fî‹vŠ0äPè ƒÄ Àt» ‹Fî÷ã‹vÿFŠ�âÿƒê0‰FîëЋvŠ0äƒø.¸tÿȉFð ÀtXÿF‹vŠ0äƒø*u‹v �F ‹‰FòÿFë53À‰Fò‹vŠ0äPè2ƒÄ Àt» ‹Fò÷ã‹vÿFŠ�âÿƒê0‰FòëÐë3À‰Fò‹vŠ0äPèԃăøl¸tÿȉFô ÀtÿF‹vŠ0äPéP‹Fð Àt븉Fò‹F ‰Fþ‹vŠ0äPÿvò�†bÿ‰FâP‹vþ�FþVè=èäƒÄ‰Fö‹Fþ‰F éM¸‰Fæë¸‰Fæë¸ ‰Fæë¸‰Fæë¸öÿ‰Fæ‹Fô ÀtëB‹vŠ0äƒøA¸sÿÈ Àt¸ Àt!‹vŠ0t¸ë1À Àt¸ Àu1Àë¸ Àt¸ Àu‹Føƒø¸}ÿÈ Àt¸ Àu1À븉Fú Àt‹FƒÀë ‹FøFƒÀP�vVè ƒÄ‹VøЉVø�~ø|¸‰Fú‹F Pÿv‹Fú Àt¸ë‹FøƒÀPÿv �FPè9è’ƒÄ^ð‰vþ‹Fú Àuéz¸E‹vþÿFþˆ�~ø}¸-‹vþÿFþˆ‹Fø÷؉Føë ¸+‹vþÿFþˆ¸ Pÿvþ‹Fø™RP莃ĉFüƒø}+‹Fü@P‹FþƒÀ+FüPÿvþè²óƒÄ¸0P°+FüPÿvþè‘ôƒÄë5ŠF0äƒøgu+ÿNþ‹vþŠ0äƒø0u 3À‹vþˆëè‹vþŠ0äƒø.u3À‹vþˆÿv è8ô‹å]ÃU‹ìƒì3À‰Fæ‹vVèX�FðPèJ �PèIèÕ X Àt�FðPè:èr�FðPè) ƒÄ¸‰Fèë3À‰Fè�FðPè�Pèè� X Àtë�~}3À‹å]ËF Àt\�~~¸‰F�*PèÞ�FøPèÐ ƒÄÿN‹F Àt�2PèÂ�FøPè»èÀPè­ ƒÄëÛ�FøPè¨�FðPè¡è‚Pè“ ƒÄ�FðPè��"Pèˆè, X Àtk¸ ‰Fê‹FêÿNê ÀtX¸‹Væ‹ÈÓâ‰Væ‹6Æ ‹FêÑàÑàÑàðVèP�FðPèIèÝX Àt'‹6‹FêÑàÑàÑàðVè.�FðPè'è,Pè ƒÄÿFæëžéµ�FðPè�Pèè’X Àu雸 ‰Fê‹FêÿNê ÀtX¸‹Væ‹ÈÓâ‰Væ‹6‹FêÑàÑàÑàðVèË�FðPèÄè`X Àt'‹6Æ ‹FêÑàÑàÑàðVè©�FðPè¢è§P蔃ÄÿNæëž�FðPèŒ�Pè„èX Àt�"Pèt�FðPèmèrPè_ƒÄÿNæ3À™RPè�FøPèJƒÄ�Fø‰Fî�Fð‰Fì‹vìƒÆ‹%ð-@‹vîƒÆ‰�FøPè%�FðPèèÿPèƒÄ�FðPè �"Pèè©X Àtë�FðPèô�PèìèxX Àt3ÀP�vðVèpýäƒøZ¸vÿÈ Àt¸ Àt¸ë1À‰Fô‹Fô Àt!‹F ‰Fø‹vø�Fø‹‹T‰Fú‰Vü‹Fø‰F ë,�~æ}‹v �F ‹™‰Fú‰Vüë‹v �F ‹3Ò‰Fú‰Vüÿvæ�†bÿPÿvüÿvúè ƒÄ‹Fð Àué©�†bÿ‰Fâ‹Fú‹Vüƒú uƒøsÿFâÿvâèðüƒÄ‰Fö‹Fò ÀtB‹Fò@;Föv9‹Fö@P‹Fâ‹VòÂ@‹Vö+ÂPÿvâèçûƒÄ¸0P‹Fò@+FöPÿvâèÄüƒÄ‹Fò@‰Fö‹Fò@P‹Fâ‹Vö‹Vò+Â@P‹Fâ‹Vö‹Vò+ÂPè£ûƒÄ¸.‹vâ‹Vö+Vòòˆ�†bÿ‰FâPè^üƒÄ‰Föé­‹F ‰Fä‹vä�Fä‹4‰vâVè>üƒÄ‰Fö‹Fä‰F ‹Fð Àt‹Fò;Fös‹Fò‰Fö3À‰Fèën‹F �F ‰F⸉Fö3À‰FèëV‹F‰F⸉Fö3À‰FèëCè£ôcsdDxXuUoObBgfe¦?Ž?O?Ï=Ï=Ç=Ç=¿=¿=·=·=¯=¯=i=i=i=‹Fê Àtë^‹Fî;FövV‹Fè Àt/‹vâŠ0äƒø-u#�~ì0u¸P‹FâÿFâPÿv‹vÿÖƒÄÿNöÿNî‹FîÿNî;Föv¸P�vìVÿv‹vÿÖƒÄëà‹Fî;Föv‹Fö)Fîë3À‰Fîÿvöÿvâÿv‹vÿփċFê Àt&‹Fî Àt‹FîÿNî Àt¸P�vìVÿv‹vÿÖƒÄëáÿFéû‹å]ÃU‹ì‹vƒþ sDÑæ‹œÅ+ Ût8öu3ö ué΋Nã‹vüöt/2ä¬QVSPèL÷ƒÄ=ÿÿt^Yâì‹F‹å]øP¸I Pè, ¸Ž€Pèù‹G +G;ÁÇ+È‘�ó¤PS´@‹O �W‹_Í![r];ÁuSYã2‹W;Ê|‹ÁJ#Â+ÈPS´@‹_‹ÖñÍ![r8;Áu.Yã ‰O€ �ó¤ë€'ßÇG¸‰G‰G ‹G‰G ‹F‹å]ÃÆGwëˆG¸ÿÿ€@‹å]À ƒué&ÿ€'ßötëãS¸P¸PPSèTðƒÄ=ÿÿtÍ[€ éÿþU‹ìƒì�~ÿv3À‹å]ËF@%þÿ‰ƒÄ‹VæЉVæ‹Fè Àt �FðPèÁèùë�FðP赋vV觃ċFæ‹å]ÃU‹ìƒì‹F ‰Fü�FPè‘�Pè‰èX Àt�FPèzè²�FPèiƒÄ¸-‹vüÿFüˆ�~}G¸0‹vüÿFüˆ¸.‹vüÿFüˆ‹FF�~} ‹F)F3À‰F‹FÿF À} ¸0‹vüÿFüˆëéë`�FPè è“XZ‰FþƒÀ0‹vüÿFüˆ�"Pèò�FPèë‹Fþ™RPèŸèºèä�FPè΃ÄÿN‹F Àt벋F Àt ¸.‹vüÿFüˆ‹FÿN ÀtD�FPè£è)XZ‰FþƒÀ0‹vüÿFüˆ�"Pèˆ�FPè�‹Fþ™RPè5èPèz�FPèdƒÄë²3À‹vüˆ‹Fü+F 3Ò‹å]ÃU‹ìƒì*3À‰Fú�VÖƒÂ!‰Vø‹òˆ�~ |釋F‹Vƒúuƒøs¸‰Fúë‹F‹V÷Ú÷؃ډF‰V�6:¸3ÒRP‹F ™RPÿvÿvèÝXZ÷Ú÷؃ÚRPè‘ÝXZðŠ%ÿÿNø‹vøˆ‹F ÷Ø™RPÿvÿvèÎÜXZ‰F‰V Ðtë¨ë\‹F‹V‰Fü‰Vþ�6:¸3ÒRP‹F 3ÒRPÿvþÿvüè¦ÜXZRPè1ÝXZðŠ%ÿÿNø‹vøˆ‹F ™RPÿvþÿvüèuÜXZ‰Fü‰Vþ Ðtë°‹Fú Àt ¸-ÿNø‹vøˆ�FÖƒÀ!+Fø3Ò‰Fú@PÿvÿvøèîƒÄ‹Fú‹å]ÃPSQRVWU‹ìÿf�F‹å]_^ZY[XÃìèáÿ‹F‰F‹v‹D‰F‹D‰F‹D‰F‹‰FèÊÿÃU‹ì�6Å+‹FÑàðÿ4è“ç‹å]ÃU‹ìŠF˜ƒøA|ŠF˜ƒøZ¸ PZŠF˜ˆFŠF˜‹å]ÃU‹ì´@»‹N‹VÍ!r;Áu‹å]øÿÿë÷PSQRVWU‹ìÿf�F‹å]_^ZY[XÃüŒÐŽÀó¥ÃW¹ùèïÿ_‹E ‹Ø%ð‰E‹Ã%€‰�ã�ˉ] ÃVW¹ñèÆÿ_^‹D %  D‰EËE E E E u‰‰Eë6�»¸àÿ…E tÑm Ñ]Ñ]Ñ]]ë긅E n = suppress notes and comments t = test archive integrity c = convert entry to new packing method NOTE: All files must be in the current directory of the current disk. .ARC.BAKAUMDXEPLTCCannot mix %c and %c%c is an unknown commandI have nothing to do!I don't know how to do %c yet!*.*X:\No files match: %s I have no work to do!rbCannot read file: %s Updating existing file: %s Adding new file: %s Adding new file: %s Cannot unsave %s File: %s Extracting file: %s rbWARNING: File %s already exists! Overwrite it (y/n)? %s not extracted. wbCannot create %s %s is not an archive or is out of sync Archive truncated in file %s File %s is okay More than twenty errors detected %d errors detected No errors detected You must tell me which files to delete!Deleting file: %s Name Length Comp SF Date Time ============ ======== ==== ==== ========= ====== JanFebMarAprMayJunJulAugSepOctNovDec%-12s %8ld -- Pack SQ  uÑeÑUÑUÑU )]ëêÃU‹ì÷F ðt€v €]Ãè=ÿƒì ¹�v‹üèHÿ‹Fü%€1Fü‰Fþ¸0CP3ÀPPPèp‹Fö‹^þ Ût÷؉FèÿÂèÿþƒì ¹�v‹üè ÿ‹Fü%€1Fü‰Fþ¸0CP3ÀPPPè2‹Fö‹Vø‹^þ Ût÷Ú÷؃ډF‰VèÈþÂè¶þ€v!€ë è­þ€v€ëè¤þ¸ð…Ft…F u¹�v�~è¤þ郃ì�v‹üèžþ�v�~ôè•þ‹ô�~ô‹D+Ety‡þ÷ØE±Óè‹È»øÑYKKyùâó¹‹Ù‹3x ø‹CCâøë%�ø‹CCâø‹E Ày3À¹‹Ùù÷CCâø´€1Wèpþ^�~èNþ÷F ðuÇF èþƒìèíý‹v‹F‹VëƒìèÜý‹v‹F3Ò3ÛSSë0ƒìèÈý‹v‹F‹Vë ƒìè·ý‹v‹F™3ÛSS Òy ÷Ú÷؃ڀπ‰vRP¸0CPS‹üèóý‹ô�~èÐýè�ýÃè€ý¸ð…F t…Fu¹�v�~è€ýëv�ƒì�v‹üèzý�v�~ôèqý3ÛSSSSSS‹ôè_�Ç|P�ï"P¹ .Š‹ Àt.Š]÷ .Š]CCsCCÿtúƒÇâÚ‹Fö-0@Fê‰FÞ‹Fô3Fè‰FÜ‹üè[ý‹ô�~è8ýèøüÂ" " " " è¿ü¸ð…Fu¹�v�~èÄüë…F u¸ÿÿ‰F‰F‰F€ä F ë~�ƒì �v‹üè¥ü[Y3ÀPPPPQSƒì �v‹üè�ü¹5Q¹�vê�~þ‹;rwNNOOâò¹�vä�~øø‹FFGGâöù¹�vðÑFFâúYâÄ‹Fâ-ð?)Fî‹Fà1Fì�~ìèü�vì�~è[üèüÂè ü¸ë&èü¸ëèùû¸ëèñû¸ëèéû¸ëèáû¸ŠnŠv!ŠÍ ÎyŠÍ2Îy:õ}ë!ŠÄ¹¾‹R9u NNâõ$të w$të$t°2ä À‰F è¡ûÂè�û‹~‹F‰‹F‰E‹F‰E‹F‰Eè~ûƒìèiû‹F‰???? %3d%% %2d %3s %02d %2d:%02d%c .TMPrTemp file %s already existswrbUnable to create temporary file %sConverting file: %s reading,Cannot unsave %s %s is not an archive%s is not an archive, or is out of sync Archive length errorInvalid header in archive %sI don't know how to handle file %s in archive %sWrite fail (disk full?)Write fail (disk full?)rbWARNING: Backup copy %s exists! Delete it (y/n)? Old backup not deletedrbCannot rename %s to %srbCannot open renamed archive: %swbCannot create new archive: %sCreating new archive: %s abCannot create archive: %srbCannot read archive: %s analyzing, storing, packing, squeezing, done. Bug - bad ncr state I don't know how to unpack file %s I think you need a newer version of ARC WARNING: File %s fails CRC check Bad NCR unpacking state (%d)File %s has an invalid decode treeBad NCR unpacking state (%d)Get timestamp fail (%d) Set timestamp fail (%d) NEEDS DOS 2.0$ TOO MANY ARGScFREE$ , NO CORE$ ABORT:- F‹v‹D‹3Û¹ÑøÑÚÑÛâø%ÿ�u‹Ø‹Ðë8‰F‰V‰^ÇFè;ûÃè+û‹~�ç�FƒVƒ×÷ÇtƒïÑïÑ^Ñ^÷Fxu=ƒF�fðÿ ~‹F%ð-ð?=ð}#=ø~)‹F-8y€Ì‹V‹^¹ÑãÑÒÑÐâøë‹F ÿºÿÿë3À™‹~‰‰Eè¶úÂARC - Archive utility, Version 3.06, created on 04/22/85 at 15:25:13 (C) COPYRIGHT 1985 by System Enhancement Associates; ALL RIGHTS RESERVED You may copy and distribute this program free of charge, provided that: 1) No fee is charged for such copying and distribution, 2) You distribute this as a complete set of all files, and 3) It is distributed ONLY in its original, unmodified state Usage: ARC {audxelbwnt} [ . . .] Where: a,u = add files to archive m = move files to archive d = delete files from archive x,e = extract files from archive p = copy files from archive to stdout l = list files in archive b = retain backup copy of archive w = suppress warning messages  $WRITEREADó÷ûÿ ÁÀ�Á@ÃÀ€AÂÆÀ€AÇÁÅ�Ä@ÌÀ € AÍÁÏ�Î@ ÁÊ�Ë@ ÉÀ €AÈØÀ€AÙÁÛ�Ú@ÁÞ�ß@ÝÀ€AÜÁÔ�Õ@×À€AÖÒÀ€AÓÁÑ�Ð@ðÀ0€1Añ3Áó�ò@26Áö�÷@7õÀ5€4Aô<Áü�ý@=ÿÀ?€>AþúÀ:€;Aû9Áù�ø@8(Áè�é@)ëÀ+€*AêîÀ.€/Aï-Áí�ì@,äÀ$€%Aå'Áç�æ@&"Áâ�ã@#áÀ!€ Aà À`€aA¡cÁ£�¢@bfÁ¦�§@g¥Àe€dA¤lÁ¬�­@m¯Ào€nA®ªÀj€kA«iÁ©�¨@hxÁ¸�¹@y»À{€zAº¾À~€A¿}Á½�¼@|´Àt€uAµwÁ·�¶@vrÁ²�³@s±Àq€pA°PÁ��‘@Q“ÀS€RA’–ÀV€WA—UÁ•�”@TœÀ\€]A�_ÁŸ�ž@^ZÁš�›@[™ÀY€XA˜ˆÀH€IA‰KÁ‹�Š@JNÁŽ��@O�ÀM€LAŒDÁ„�…@E‡ÀG€FA†‚ÀB€CAƒAÁ��€@@$@Y@ˆÃ@„×—A€à7yÃACnµµ¸“Föù?éO8M30ùHw‚Z?¿sÝOu~ š™™™™™¹?{®Gáz„?-Cëâ6?:Œ0âŽyE>¼‰Ø—²Òœ<2§¨Õ#öI9<§ôDý¥2š—ŒÏº[%@o¬d(È È ð?$@@˜™™™™™¹?0123456789ABCDEFte (%d)Get timestamp fail (%d) Set timestamp fail (%d) NEEDS DOS 2.0$ TOO MANY ARGScFREE$ , NO CORE$ ABORT:- DOC. Each line of the source program is seperated by a carriage return linefeed and can be created on any editor. The object file is the executable machine code represented by ascii characters in a form known as Intel Hex Format. The object file will have the same filename as the source file but will have a .HEX extension. This format must be translated into the actual machine executable binary values in order to be run on a computer. This can be done with LOAD.COM or DDT.COM which came with your CP/M. (described later). Many EPROM burners only except the program to be burned in Hex format. The listing file is the other ouput by the assembler. It is ascii representation of the code actually produced by the assembler. There are many options available for controlling what is included in the listing file as described in Z80MR.DOC. The listing file will have the same filename as the source file but will have a .PRN extension. Invoking the Assembler..........................................å........... To assemble the file TEST.AZM the following command can be used: Z80MR TEST The assembler will read in the file TEST.AZM from the current drive and create an object file TEST.HEX and a listing file TEST.PRN. Controlling Output......................................................... Either of the output files (or both) may be omitted. In addition, the files may be located on different drives. Since the source file must always have a .AZM extention we may use the extention to control the output. Z80MR TEST.sol The letter in the 's' position tells the assembler where to find the source file and may be any disk drive letter from A to D. The letter in the 'o' position tells the assembler where to locate the object file and may be A-D as above or Z if the file is not desired. The letter in the 'l' position tells the assembler what to do with the listing file. It can be any drive letter from A-D or Z if the file is not desired. In addition the listing f ø-25DISK DOCzÁ�AZM-COM DOC*jCHEATER DOC"’MAC-AZM DOC‹#~ÖPHASE DOC7E—–PHASE1 AZM| ¤README Z80®QºZ80 COM†@ÏáZ80 Z80Æ<?Z80A Z80DØZ80B Z80F$$ÏZ80C1 ZQ0j]‰êZ80C2 ZQ0Ç„?)Z80D ZQ0KnM¬Z80E ZQ0¹Jƒ7Z80F ZQ0BXèZ80MR COMEi…—Z80MR DOC®̘Òÿ ÿ ÿ ÿ ÿ The Z80MR creates two output files from an assembly language source file with a .AZM extention. The assembly language file can be any combination of Z80 mnemonics or assembler commands and pseudo-ops in the correct form as described in the file Z80MR.ile may be sent to the console if an X is in that position. Loading Hex Files.......................................................... The object file must be translated from Hex format to machine executable values by another program. If the program was written to ORG at 100H the program may be loaded with the CP/M utility LOAD.COM. All of the programs on this disk with a .COM extension are ORGed at 100H. This is where CPM loads its transient programs. To load TEST.HEX with LOAD.COM just enter LOAD TEST The extention of .HEX is assumed. If you have a program that does not ORG at 100H you must use DDT to read in the .HEX file which it does by translating the Hex format to binary as it reads it into memory. Once in memory you may manipulate it with DDT even SAVE an image of the program in memory actually creating a .COM file. If you write a program that ORGs where CP/M resides you can wipe out CP/M and have to reset the computer to recover. See the file PHASE.DOC for some more informa< Reformat when in wrap mode .alc (continued) .all .brp SPECIAL COMMANDS ---------------- Continue Search/Replace...^S Insert Control Character..^C Enter/Leave Command Mode..^[ Set Block Marker.......^P^P Block Copy.............^P^C Clear Block Marker.....^P^U Block Move.............^P^M Clear all Markers......^P^K Block Delete...........^P^D AUTO-SCROLL MODE COMMANDS ------------------------- '1'-'9' or '0'........change scroll speed to this value '-'...................reverse direction of scroll any other key.........end scrolling REPLACE MODE COMMANDS --------------------- Continue, No Replace......^S Replace and Stay Here....^J Replace and Continue......^M Center Find on Screen....^] Begin Editing.............(Any other Key) PHASED code One of the limitations of this assembler is the lack of a .PHASE directive. This directive causes the assembler tion on ORGing files at High memory locations. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: .brp .fif .pdw 80 .inb 0 .ctd \ .fbb \\%pageno%\\ .fbe .inl 8 .alc Control Command Cheat Sheet (non-modified system) ------------------------------------------------- .all Cursor Control -------------- Cursor Left.......^H (Backspace) Next Tab..........^I Cursor Right......^L Previous Tab......^U^I Cursor Up.........^K Cursor Down.......^J (Linefeed) Next Word.........^W Previous Word.....^A Indent............^U^W Undent............^U^A Start of Line.....^U^H End of Line........^U^L Top of Screen.....^U^K Bottom of Line.....^U^J Top of Buffer.....^U^R Bottom of Buffer...^U^Tto generate addresses for a different section of memory for labels than the actual place the code is to be loaded. This is important for the Kaypro since when the ROM is called, the lower 32K of memory is no longer available. Simply ORGing at higher location later in the program and jumping there will cause the entire area of memory between 100H and the end point of the program to be saved resulting in a huge .COM file when loaded with LOAD.COM. There are many ways to phase code and still end up with a reasonable sized .COM file. Here I will present two of the most common methods. Label+OFFSET Method........................................................ In order for code to be assembled in one area to run in another, our only concern is how the addresses are calculated by the assembler. Normally, an assembler sets a location counter when it sees an ORG pseudo-op. As it produces each byte of the it increments the location counter to calculate the next address. If it finds a label, it s Start of Line/Screen/Buffer.....^^ on some terminals End of Line/Screen/Buffer.......^N Carriage Return.................^M SCROLLING COMMANDS ------------------ Scroll Down One Line......^F Scroll Down Continuously..^U^F Scroll Up One Line........^G Scroll Up Continuously....^U^G Next Page.................^T Center Cursor Line........^] Previous Page.............^R EDITING COMMANDS ---------------- Rubout.................... Delete Word...............^V Delete Character..........^D UNdelete Word.............^U^V Insert Single Space.......^E Delete to End of Line.....^Y Partial Insert Mode.......^Q UNdelete End of Line......^U^Y Toggle Full Insert Mode...^U^Q Insert Line...............^X Delete Line...............^Z Toggle Entry Mode.........^\ UNdelete Line.............^U^Z Break Line................^B Concatenate Lines.........^O  ets the label's address according to this location counter. The programmer has another method of setting the address of labels, with EQU. If every label in the program takes the form of Label+OFFSET where the offset is a constant, then the assembler will produce the code to run in high memory while creating a file that will load in low memory. The following short program which re-loads your monitor ROM from the ROM to RAM illustrates this. ;************************************************************************** ;** Rom Save Program ** ;** Run and then enter SAVE 16 ROM.COM ** ;** ROM.COM will contain object code of your monitor ROM ** ;************************************************************************** ORG 100h TRUE EQU 0FFH FALSE EQU 0 OLD EQU TRUE ; TRUE IF NOT 10 OR 4-84 IF OLD SYSPRT EQU 1CH ; old kaypro 2's and fours ELSE SYSPRT EQU 14H ; tens, 4-84's, 2-84's ENDIF O** Loader.azm Loads relocating code to its destination *** ;************************************************************************** ORG 100H BYTCNT EQU 100H ; we can either supply a value here that we ; know will load enough code or assemble ; the high code first and let the assembler ; give us this value (examine print file) HISTRT EQU 8000H ; where the relocation code goes HILOAD EQU 200H ; where the other file goes LD DE,HISTRT ; the destination of the High memory code LD HL,HILOAD ;the source code is just beyond this loader LD BC,BYTCNT ;the number of bytes to move (end - start) LDIR ; move it up there JP HISTRT ; jump to it ; memory code segment END ;************************************************************************** ;** Phase2.azm *** ;** Relocate with DDT *** ;*************************************************FFSET EQU 8000h ; offset for calculating high addresses LD DE,HISTRT ; the destination of the High memory code LD HL,LODEND+1 ; the source code is just beyond this loader LD BC,HIEND-HISTRT ; the number of bytes to move (end - start) LDIR ; move it up there JP HISTRT ; jump to it LODEND: NOP ; to calculate end of loader/start of high ; memory code segment HISTRT EQU $+OFFSET ; BEGIN USING OFFSET IN A,(SYSPRT) ; get present sysport data SET 7,A ; bank select bit OUT (SYSPRT),A CALL MOVIT ; move the code routine IN A,(SYSPRT) RES 7,A ; back to ram bank OUT (SYSPRT),A CALL TPAMOV ; now move to 100H for save JP 0 ; back to CP/M MOVIT EQU $+OFFSET LD HL,0 ; Source is at 0 (in ROM ) LD DE,OFFSET+1000H ; Load above us LD BC,1000h ; pick up 4K (2732) LDIR RET TPAMOV EQU $+OFFSET LD HL,OFFSET+1000H ; destination becomes source LD DE,100H ; move to TPA start LD BC,1000H ; 4K bytes to move LDIR RET HIEND EQU $+OFFSET ; end of code to************************* TRUE EQU 0FFH FALSE EQU 0 OLD EQU FALSE IF OLD SYSPRT EQU 1CH ; old kaypro 2's and fours ELSE SYSPRT EQU 14H ; tens, 4-84's, 2-84's ENDIF BYTCNT EQU HIEND-HISTRT ORG 8000h HISTRT: IN A,(SYSPRT) ; get present sysport data SET 7,A ; bank select bit OUT (SYSPRT),A CALL MOVIT ; move the code routine IN A,(SYSPRT) RES 7,A ; back to ram bank OUT (SYSPRT),A CALL TPAMOV ; now move to 100H for save JP 0 ; back to CP/M MOVIT: LD HL,0 ; Source is at 0 (in ROM ) LD DE,9000H ; load above us LD BC,1000h ; pick up 4K (2732) LDIR RET TPAMOV: LD HL,9000H ;destination becomes source LD DE,100H ; move to TPA start LD BC,1000H ; 4K bytes to move LDIR RET HIEND EQU $ END Now we can use DDT to join the two files. DDT LOADER.HEX H200,8000 8200 8200 ; in this case both numbers are the same (we want ; second IPHASE2.HEX ; prepare to load file R8200 ; read in with offset ^C ; exit to CPM SAVE 1 PHASE3 be relocated END Assemble this program (the source is on the disk as phase1.azm so you don't have to type it in). Examine the listing file. Notice that the assembler generated high memory addresses though the program loads low. Using DDT.COM.............................................................. With this method you would split the above program into two parts, the loader and the code that is to be relocated. You can assemble the loader and pick an arbitrary source address for the code to be relocated (say 200h). Then you can assemble the relocatable portion with an high ORG. (8000H say). Now you can join the two HEX files together with DDT.COM reading in the high portion with an OFFSET. To get the offset use DDT's Hex sum and difference command in the form of: H, The second number will be the OFFSET. The program we wrote above would go together like this. ;************************************************************************** ; .COM ; and the com file is created ORGing High ( CP/M modifications )......................................... DDT.COM can be used to load .HEX files anywhere in memory despite where the load point (ORG) was set. It does this by reading the file in with a negative offset with the R command. Usually CPM is modified by saving the SYSGEN image and then overlaying the image with the modified section and re-SYSGENing. Lets say you wrote a new BIOS for your Kaypro. The BIOS for the old Kaypros ORGed at FA00H. You assemble it with the assembler with the ORG at FA00H. The object file is KBIOS.HEX If you want to overlay the present bios with your new bios immediately to see if it works it is done as follows: Enter DDT by entering DDT IKBIOS.HEX ; this sets up DDT for a file read R ; actually reads the file in and overlays ; your old bios with the binary code ^C ; returns you to CPM and if all is well ; with your new bios you will warm boot Noegment HISTRT EQU $+OFFSET ; BEGIN USING OFFSET IN A,(SYSPRT) ; get present sysport data SET 7,A ; bank select bit OUT (SYSPRT),A CALL MOVIT ; move the code routine IN A,(SYSPRT) RES 7,A ; back to ram bank OUT (SYSPRT),A CALL TPAMOV ; now move to 100H for save JP 0 ; back to CP/M MOVIT EQU $+OFFSET LD HL,0 ; Source is at 0 (in ROM ) LD DE,OFFSET+1000H ; Load above us LD BC,1000h ; pick up 4K (2732) LDIR RET TPAMOV EQU $+OFFSET LD HL,OFFSET+1000H ; destination becomes source LD DE,100H ; move to TPA start LD BC,1000H ; 4K bytes to move LDIR RET HIEND EQU $+OFFSET END Ãg Ãöà ÃÑÃ_ Ã1>"ÍoÍõÍ6Í^ÍEÍw:‹ <2‹ þ8ìÛ>2Á!!1ÍŽÍÎÉÍ�Í�Íñ8ÍÞ(Í88(Í•(ÍC Íe:¿!ËO(Úɯ2/2¿!2R!<2‹ !/"³!Í!‰ w#pÉ>|2N!>ÿ2I!2J!:R!þ(¯2’!>O2L!¯2K!2Ã!2Â!2Q!2Ä!2S!2T!:‹ þÀ:À!æÈ2Á!¯2H!<2G!ÍdÍÉåÕÅ*� 6!~þ ËÐ#öþ (=þ;(9þA8 þw you want a permanent copy of your new bios on your system tracks. Once done you will be able to copy your new system onto any disk with SYSGEN. SYSGEN copies the system into memory but not at the same place the system runs. The BIOS image actually begins at 1F80H in the SYSGEN image. We must read the file in at 1F80H even though it ORGs at FA00H. We can do this with DDT also. First we must save the SYSGEN image to a file. sysgen KAYPRO SYSGEN V2.2 SOURCE DRIVE (OR RETURN TO SKIP)a ; get the system from A: SOURCE ON A THEN RETURN ; enter a carriage return DESTINATION DRIVE (OR RETURN TO REBOOT) ; enter a carriage return save 40 cpm.com ; save it to a file Now we use DDT to work on it ddt cpm.com h1f80,fa00 ; we ask for the sum and difference ; of desired address - load address ; DDT prints this. The second number is the ; offset ikbios.hex r ^C Now when we return to CP/M we run sysgen to save the new image to system tracks. SYSGEN !#>¸84~ÍÇ8ñx2=!~þ (þ (þ; Ù!îµ!ÍšÙ(:µ!þ7(öÿ"Œ ÉÍÍÍ»¯É*Œ ÍÀþ, Ë@ÊÃ#ÍÀ þ;ÊÀþ ÊÀåÝá˰~þ' Ëp å+~áþF(xî@Gþ (þ (þ,(þ; Ëp(#ÒåýáxæþÊÃ˸Ý~þ( ý~ÿþ) ËøÝ#ý+Ýåá>!~ÍÇ0  #yþ ñaþ' # y2=!§(SÙ!À·!ÍšÙ(DOþq :µ!Ë(‹yæûþ %~þ+(þ- yæöÀOåÝáÍÌ(VË@("»!""½!ýåѧíR @ÍÌ(9Ë@("»!"½!�Ëx(!~#§(¹(#õNý#yË@(2¹!2º!ýåáÚ¯<ÉÍÍÍ»¯öÕÅÙůGÙ2å!2Ú!ÝåáýåÑë§íRëʽÚû~ÍÐ8+ÍÇ8+þ.(Gþ'((þ[(þ(Ê–þ](þ)Ê¥þ$(Í�Êì+ÍÍ' ÍEí[S!#ÚðÍÊ÷ÙËÀÙœÍlÊû:Ù!þ(þ ÙË@Ù(Æ]2Ù! þ=8ÙË@ÙÊûÍè(_:Ù!æG{æ¸0{ÍÉ:Ù!ÍÉ(pÙË€ÙÃÜ{Í=(gÓ#>°ÍÉ(YÙË€ÙÃÜ#Íè(Tþ°(Í=(GðÙËÀÙÃÜÍè( þ°(9Í=(0ðÍ!():å!§ #ëÙËHÙ(AÍÙ¯<ÙÁÙÁÑÉIV!êOSBÍÙ¯ßå~Íë0#÷+~áþB(þD(hþHʸþO(.þQ(*YÅ~Íë0þ20 Ö0OÍÍ#êþB #~ÍëÁÉ7ûÅ~Íë0þ80Ö0OÍ úÍ#åþO(þQ #~ÍëÁÉ7ûÅ~Íë0þ:0Ö0OÅBKÍÍÍÍÁÍ#ÛþD #~ÍëÁÉÅ~Íë0þG0Ö0þ 8ÖOÍ úÍ#ßþH #~ÍëÁÉ7ûÍÐØþA8þGØþH( þO(þQarriage return> KAYPPRO SYSGEN V2.2 SOURCE DRIVE (OR RETURN TO SKIP) ;enter return (use the memory image) DESTINATION DRIVE (OR RETURN TO REBOOT) ;we will put it on B DESTINATION ON B THEN RETURN ; another return FUNCTION COMPLETE DESTINATION DRIVE (OR RETURN TO REBOOT) ; one more return Now when when we boot with the disk in drive B the new system will be loaded.  ORG 100h OLD EQU 0 IF OLD SYSPRT EQU 1CH ; old kaypro 2's and fours ELSE SYSPRT EQU 14H ; tens, 4-84's, 2-84's ENDIF OFFSET EQU 8000h ; offset for calculating high addresses LD DE,HISTRT ; the destination of the High memory code LD HL,LODEND+1 ; the source code is just beyond this loader LD BC,HIEND-HISTRT ; the number of bytes to move (end - start) LDIR ; move it up there JP HISTRT ; jump to it LODEND: NOP ; to calculate end of loader/start of high ; memory code s (§É7Éë)ëÐÅVÍÙÁÉÅë ë0VÍÙÁÉÅë ëÁÉÅ=!ÍWåÍØ ^#VUÍÙáÁ§É#Í` ^#Í` V#Í` 7ɧÉ~þ' #~þ'ɯÉÅÕ#~ÍÇ0 =!ÍW#åþ. :=!þ0Ù!!Íš¯¯áÑÁÉÅÕF#b§(¸(õ2Ù!þ= ~þ* >52Ù!#§¯ÑÁÉåÅ!Û!:Ú!þ 0O <2Ú!w¯<ÁáɯúåÅ!Û!:Ú!§( =2Ú!O ¯<~ÁáÉåÅ!æ!:å!þ0O Æ2å!s#r¯<ÁáɯúåÅ!æ!:å!§(Ö2å!O ^#V¯<ÁáÉåÕÅË?Ë?æþO!Z ^#VëVÕéÁÑáɆ‘¥¶ÄÑÖg} ( F ˆ Ð é   7 [ € œ ÕÍ!(ÍÑÉÕåÍ!( !§íRëÍáÑÉÕÍ!( z/W{/_ÍÑÉÕÍ!(ZÍÑÉÕÍ!(ÍÑÉÙˈÙÉåÕÍ!(0ëÍ!(*|µ ÍË|(ÍÍ+|µ(ÍÍó¯<ÑáÉåÕÅÙÕÙÍ!(CËzÄùëÍ!(8ËzÄù§íR0ëDM!z³(Ë:Ë0 §íJúK0ÙËÈÙË!ËäëÙËCÙÄùÍÙÑÙÁÑáÉåÕÍ!( ëÍ!(Í”ÍÑáÉåÕÍ!( ëÍ!(Í”ëÍÑáÉÅÙÕÙËz(ÙËûÙËzÄùëËzÄùz³ ZÍÙ!5ÙÙË#Ëò¿Ë!ËË:˧íR8ÙÙ êPYëÙ{ÙOËyÄùëËAÄùÙÑÙÁÉå!§íRëÙË?ËÙáÉÕåÍ!(ëÍ!(|µ(Ë:Ë+õÍáÑÉÕåÍ!(ëÍ!(|µ(Ë#Ë+õÍáÑÉåÕÍ!(8ëÍ!(2Ù˰˸Ù|¢òd ÙËðÙ |²úm ÙËøÙ§íZÙúz Ëp(Ëx(ËÈÙëÍÑáÉåÕÍ!(>ëÍ!(8Ù˰˸Ùz§ú« |§ò´ ÙËøÙ |§ú´ ÙËðÙë§íRëÙúà Ëp Ëx(ËÈÙÍÑáÉÕåÍ!(ëÍ!( z¤W{¥_ÍáÑÉÕåÍ!(ëÍ!( z´W{µ_ÍáþwÂÅ > ͙̈́ÉxþwÂÅ >íÍ™>WÍyÍ™ÉxþwÂÅ ë>:Í™Í�ÉyþwÂÅ H>͙̈́ÉÍH>6Í™ÍWëÍb}Í™ÉxþÊÅ HÍH>͙̈́ëÍ�ÉxHþÊÅ æþ( >íÍ™>KÍ„ÍH>*Í™ëÍ�ÉÍH>pÍqÍ™ÍWÉyþwÂÅ H>íÍ™>GÍyÍ™ÉyþwÂÅ >2Í™Í�ÉyAþÊÅ æþ( >íÍ™>CÍ„ÍH>"Í™Í�ÉxAOÍH>FÍyÍ™ëÍWÉH>ÍyÍ™ëÍb}Í™É>@ÍqHÍyÍ™ÉxþÂÅ yAæþÂÅ ÍH>ùÍ™ÉÅ:¹!æðG:º!æð°ÁÉËXÈ>ÝËP(>ýÍ™ÉËXÈÍb}Í™ÉÅ|§(<(VÍÙÁÉÅGyæ°ÁÉÅGyæ°ÁÉÅGyæ°ÁÉ}Í™|Í™ÉåÕ*�!:\!_~·(LÍÙw{2\!ÑáÉåÕ*S!:\!_"S!ÑáÉ:Â!·ÀÅÕåSÍÙ*�!¯í¡  øz2\!áÑÁÉ:J!·(ÍT̓ÍÍ%ɯ2¹!2º!!"»!"½!"µ!!¿!ˆˎ*S!"U!É!M!4*Ž "Œ "� ^> í±"Ž ~þ >ÿ2J!{þ7?À!¿!ËÎ7ɯ2J!2]!2\!2[!!^!"�!1w#ü=w2M!*S!"W!> 2P!!¿!ËžÉP!’ Ý!ä "Ž ÍOþ(xþ (v:N!¹yÊ-ËR èþ ÊCþ (ßþ(Ûþÿ(×þ'(þ;(cæ` )IÍÙÄËB ËJ(ËŠxþP0+~#þ (þ'(þ, ËÊÝqyËJ þa8þ{0æ_w#Ý#ŠËÒËB „ËÚ€q#> Ýww#6 ËZÈLÍÙÉËJ ÆËÂÂËR ËJ ºË‚Ýq> ÃËÚÑÝq> ·å!¿!ËÆËÞáÉ"U!:M!·À"Y!>ÿ2[!É:‹ þõÌ–*�!\! _"�!¯ñÀ!]!{†wÍ“:¿!ËOÈÍÉ:J!·ÈåÕÅÝåÍñG:P!Oþ x(öÍ3·({w:K!ÍÛ ÍÛ*W!:]!WÝ!^!:[!·(åÕ*Y!ÍÑá=ÕÍÑ ÍÛz§(3Ý~ÕͦÑÝ##(${§ ÑÉÕåÍ!(ëÍ!( z¬W{­_ÍáÑÉÕåÍ!(ëÍ!( §íR ÍáÑÉÕåÍ!(ëÍ!(zÆ€W|Æ€g§íR0ÍáÑÉÕåÍ!(ëÍ!(zÆ€W|Æ€gë§íR0ÍáÑÉÕåÍ!(ëÍ!( §íR0ÍáÑÉÕåÍ!(ëÍ!( ë§íR0ÍáÑÉSÃÙ|·Èáõ; }þ$0>$2L!oÍTÉ!Ã!Â!ÉDMÍÖ :¶!þ 5~· 1ÿ(¯ÉÍÖ :¶!þ(G~·(x· ¯wÉ>¾(w/É͹ í; ÍT}2N!É; :O!…þ9Ø:I!·È>2O!É*Œ Í ʹ ëƒÍW ÍýÉÕÝá:w#~+þ: ~Ö@Ýw##Í{ yþ. #~þ08#öNÉO> üÉ!€í°É:¶!2I!É:¶!·Ê¹ ; }·Ê¹ 2K!É*Œ Í ʹ yþ 8͹ ë’!y·(Í`í êÏ >ÿ2Q!!R!4¯É*Œ Í ($y·(ëí[�!A· Í`~# ò¯y2\!(͹ ÉÍÀþ' '#T]Í` ~þ (# òÍÀþ ( þ;(Å͹ Á¯<É͹ ¯É:Â!·(:µ!þ À:¹!G:º!O*»!í[½!:µ!þ(MÍEÙåÕÅ:µ!æ‡_!É ^#VëÍ5G~#þÿ(&þþ(/þü(þý ͹ "¸(##âN#fiåÝá!¼ åÙÝéÍÍÍ&ÍEÍ»ÙÁÑáÙÉÍÍÉ     ! ( / / 3 @ M Q [ e o v z � ˆ Œ “ š ž ¨ ¸ È ÿ  þí�íý�ùÿ�ÿ�ý�Ÿ ˜ ý�Ý ý ýÿp#�0@@°@ÿpO@^°^oÿ�‡ÿp¥@µ°µÿ—É”ã›ãÿ@‰ �ÿ‰$�>ÿ�Nÿ‰���ÿ˜€žÿ�¨ÿ}¶zËÿ§Ú×èÿýÿQ%1ÿwCyWtp{p‰ÿw¨y·tË{Ëßÿvÿr}"g2IBVmG“'¢¹B·“×·ÑÆtë{ëyþwÿüí ÍÛÍ_=( Í :¿!Ë_(ÄÍ ÂËC Í Í_ÝáÁÑáÉõÅå:Q!·(:À!.¥ }2Á!-Í !’!ÍŽÍί2Q!áÁñÉÅÕå!ä :L!Ö_~O#þ(ùþ (þ ( úÍÛäÍÛ  Ù> 2ä Í áÑÁÉÍÛûÉÅGæðÍÄOÍÛxæÍÄOÍÛz�WÁÉþ 0Æ0ÉÆ7ÉÅ ÍÛ ÍÛÁÉ:Á!ËG åoËUÄËMÄáÉ!Á!:I!·:À! ¯æwÉ|ͦ}ͦÉÅÍÎ:À!O:Á!G¡æ(2Á!:O!<2O!þ9ÔWx2Á!ÁÉCROWE (TH/DC/JGO) Z80 1.3e. Page ÍÎåÅ ÍÛÍdÁáÉ!1ÍŽ!MÍŽÍœÍÓ¯2O! Í !’!ÍŽÍÎÍÎÉÅ~§(OÍÛ#õÁÉåÕ!H!Í®+Í®ÑáÉíoÍ»íoÍ»íoÉÅGæ ËB ËÂö0OÍÛxÁÉå*G!}Æ'o|Î'g"G!áÉSYMBOL TABLE OVERFLOW! :¿!ËWÈÍñöw!æÍŽ!O!44ÉÍñ(:O!·ÄTÍÍñÈÍT!/~§(SG#NÍÛ# ÷C Í #~Õͦ+~ͦÑ## ÍÛ ËN#(MÍÛ(  Í ¾:O!þ90 <2O!ÍάÍT§ÍÎ ÍÛÉ:À!ËGÈåÕÅ>2Á!!¿!ËN(ÍüÍ5EËF(Íü<:\!G§(3*U!:Ä!§ "Å!#"U!*�!Y~!É!:Ä!_w{<2Ä!þ Íü ËÁÑáÉåÕÅ:Ä!§(,G:Í xͦ*Å!ͯͦ!É!~ͦ# øzͦÍί2Ä!ÁÑáÉåÕÅ:Í ¯Wͦ*Ç!ͯͦzͦÍÎÁÑáÉÝåÅÕÝá#xþ( ~Í8ñÝpÁÝáÉ~Í0ó#÷þA8þ[Øþ08þ:Øþ?(þ_(7?É7ÉÕ:=!GÅÖ_~#fo>!ÁÅ~·(ë¾ë# ~ õÁÑ~# ù ÉÁÑÉxÁÅ�=_ÓÅÝå!/åÑN ()Ý!=!ÝF#Ý#Ý~¾8 #Ý# ((�# ý�. 8 ý�Ä ý:¶!_! ^#Vëé² ã C åÅÍ5þ� *»!"S!ÍTÍJSÍÙÁáÉåÕÅ:µ!õþ(þ ÍTÍ5þ�( SÍÙ*S!DMÍ(Í50ñõþ(þ jSÍÙcñõþ ËÆÍØ(:‹ þ(PÍÙHÍmC:‹ þ(.##ËN(MÍÙ/ñõþ +p+q#+V+^ë§íB(ëq#pPÍÙ##ñõþ ËF ËÎñÁÑáÉ"Ç!ÍT!¿!ËÎÉÍb}Í™ÉÍ�Éí[S!"S!ÃJ:µ!þ (>íÍ™:¶!Í™É:¶!HÍqö€Í™É:¶!öÆÍ™Íb}Í™ÉÍH:¶!ö†Í™ÍWÉH:¶!æöÍyÍ™ÉÍH:¶!æö4Í™ÍWÉxþÊÅ ÍHH:¶!æö͙̈́É|§ÂÅ }þÒÅ §(íÍ™>FÍyÍ™É>ËÍ™H:¶!ÍqÍ™ÉÍH>ËÍ™ÍW:¶!öÍ™É}æø´ÂÅ >ËÍ™:¶!ÍqMÍyÍ™É}æø´ÂÅ AÍH>ËÍ™MëÍW:¶!öÍyÍ™ÉÍH>éÍ™ÉH>ÂÍyÍ™ëÍ�É>ÃÍ™Í�ÉËPÂÅ HëÍ^> ÍyÍ™}Í™ÉÍ^>Í™}Í™ÉÍ^>Í™}Í™ÉÕÅí[S!§íR}怴(}ö¤/§(RÍÙ¯<ÁÑÉH>ÄÍyÍ™ëÍ�É>ÍÍ™Í�É>ÉÍ™ÉH>ÀÍyÍ™É}æÇ´ÂÅ }öÇÍ™ÉxþwÂÅ z§>ÛÍ™{Í™É>íÍ™H>@ÍyÍ™É>íÍ™>AÍyÍ™ÉyþwÂÅ |§>ÓÍ™}Í™É:¹!þÊÅ HÍH:¶!͙̈́ÉAyæþÂÅ ÍH>ãÍ™ÉxþÂÅ >Í™ÉxþÂÅ yþÂÅ >ëÍ™ÉxþwÂÅ :¶!æöˆÍqÍ™ÉxþwÂÅ :¶!æöÎÍ™ëÍb}Í™ÉxþwÂÅ AÍH:¶!æöŽÍ™ëÍWÉxþÂÅ yþÒÅ >íÍ™:¶!æöB͙̈́ÉxþwÂÅ >€ÍqÍ™ÉxþwÂÅ >ÆÍ™ëÍb}Í™ÉxþwÂÅ AÍH>†Í™ëÍWÉxæþÂÅ yæþ y¸ÂÅ ÍH> ͙̈́Éx í( >�O Ð ÝáÁÉÅÕ:6!§(‘<™ Z80 Z80DIF TITLECHAINNLIST PRN LISTW!ÆßAwBpCqDrE HEXR!AFBCDEHLSPIXIYNý!À!ý6!\ ; ;************************************************************************* ;CONSTANTS ;************************************************************************* YES EQU 255 NO EQU 0 CR EQU 0DH ; ASCII CARRIAGE RETURN LF EQU 0AH ; ASCII LINE FEED HT EQU 09H ; ASCII HORIZ. TAB FORMFD EQU 0CH ; ASCII FORM FEED NUL EQU 0 ; ASCII NULL SPACE EQU 20H ; ASCII SPACE DEL EQU 0FFH ; ASCII DELETE CTL EQU 40H ; CHAR.-CTL EQU CONTROL CHARACTER. CTOK EQU 71H ; TOKEN FOR UNCONDIT. OPND KW 'C' CCOND EQU 8BH ; TOKEN FOR CONDITIONAL OPND KW 'C' XYMASK EQU 0FBH ; MASK TO RECOGNISE IX/IY TOKENS IXORIY EQU 1AH ; COMMON VALUE OF IX/IY TOKENS INTTOK EQU 90H ; OPERAND TOKEN FOR 'INTEGER' ORGTOK EQU 1 ; TOKEN FOR 'ORG' PSEUDO-OP EQUTOK EQU 2 ; TOKEN FOR 'EQU' PSEUDO-OP DEFLTK EQU 3 ; TOKEN FOR 'DEFL' PSEUDO-OP DEFSTK EQU 7 ; TOKEN FOR 'DEFS' PSEUDO-OP PLUTOK EQU 07H ; TOKEN FOR MONADIC PLUS MINTOK EQU 0FH ; TOKEN FOR MONADIC MINUS LBTOK EQU 0B0H ; TOKEN FOR '(' EXPTOwåÍÝá©åÍÝáÏåÍÝÝáÝ~ þ (=þQ0Ö@2wÝ~ þ (-þQ8ýˆÖ@2ÏÝ~ þ (þQ8ýË–þX ýËÎÖ@2©Éͬ:‹ þÀ:À!ËGõÄÈñËWijÉ:‹ þÀ:À!ËGõÄ}ñËWÄrÉõÅÕå Íu ·(ͦþÊáÑÁñÉÍu ÉÍãÍýÉ©ÍïÍCþÿÊO!'"ÍÉÏÍïÍCþÿÊO!+"óÉ í°É!wƒ í°ÉÕÝá¯Ýw ÝwÝw ɃÍïÍu <(!'"§É!„5 í°( Íu à NO SOURCE: $ÕÍu ÑÃu TÌDISK ERROR,ASSEMBLY ABORTED $'*Í© +*óÏ}æ(6Å·íR ÁÉË<ËúE·(ëÑͯÕÍu ÑÉÅåÕëÍu ÑÕÍu ·ÂOÑáÁÈ}Æ€o0á$ÞÅÕå*ó|þ/(q#"óÃn Å!+ÏͯÁ!+æÅÕå*Í|þ+(q#"ÍÃn Å!'©ͯÁ!'æÅÕå*§|þ'( ~þÊn #"§Ãn €#>ÕÅÍu ƒÍu ÁÑþ( {�_0 ß!#Ç:G:ÉÅÕåyÍr áÑÁÉ_ÙÅÕåÙõÍñÙáÑÁÙÉ LIST TITLE 'Z80.Z80 2/12/84A' ;MAIN LOOPS. VERZ EQU 13H ;I.E., 1.3 TEST EQU 0 REV EQU 'e' ;This source consists of several files tied together by the ;fabulous CHAIN command. The files are: my notes (jgo) ; Z80.Z80 ;Main loops. This filK EQU 35H ; TOKEN FOR EXPONENTIATION ASKTOK EQU 3DH ; TOKEN FOR MULTIPLY MAXFSK EQU 10D ; MAX SIZE OF ARITHMETIC ; FUNCTION STACK MAXASK EQU 20D ; MAX SIZE OF ARITH STACK PLINES EQU 66 ; NO OF LINES ON LIST DEVICE PAGE LBFSZ EQU 80 ; LINE BUFFER CAPACITY LTERM EQU CR ;TOKEN FOR A SUB-LINE ENDING IN LINBUF. GTERM EQU LF ;LTERM,GTERM IS PHYSICAL LINE ENDING IN LINBUF. ACBSIZ EQU 50 ; SIZE OF ASSD CODE BUFFER. TITSIZ EQU 32 ; SIZE OF TITLE BUFFER RECSIZ EQU 16 ; MAX NO OF DATA BYTES PER OBJ RECORD SPERL EQU 5 ; NO OF SYMBOLS PER LINE ; IN SYMBOL TABLE LISTING STKSIZ EQU 68 ; SIZE OF STACK ; CP/M LINKS CPM EQU 5 ;FDOS ENTRY SETDMA EQU 26 ;CP/M FUNCTION OPNFIL EQU 15 ;OPEN FILE CLSFIL EQU 16 ;CLOSE FILE DELFIL EQU 19 ;DELETE FILE MAKFIL EQU 22 ;CREATE FILE RDNR EQU 20 ;READ NEXT RECORD WRNR EQU 21 ;WRITE NEXT RECORD PRBUF EQU 9 ;PRINT STRING ON CONSOLE DFCB EQU 5CH ;DEFAULT FCB DEFBUF EQU 80H ;DEFAULT BUFFER CTLZ EQU 1AH ;EOF CHARACTER Ie. 1 ; Z80A.Z80 ;Parse line. ; Z80B.Z80 ;Expression evaluation. ; Z80C1.Z80 ;Process output of parser. ; Z80C2.Z80 ;Process output of parser. 1 ; Z80D.Z80 ;Produce input/output. 1 ; Z80E.Z80 ;Symbol handling; fixed symbol tables. ; Z80F.Z80 ;CP/M links; variables. Last file. 1 ;Descriptions are approximate. Notes: (1) references pass number. ;COPYRIGHT 1978 BY PAT CROWE. NLIST ;********************************************************************** ; Z80 ASSEMBLER VERSION 1.2 ; WRITTEN BY PAT CROWE ; 22 RINGSBURY CLOSE ; PURTON ; SWINDON ; SN5 9DE ; ENGLAND ; ; THE 'LBFSZ-1' AND ; THE "EX AF,AF'" BUGS FIXED BY ; THOMAS HAMEENAHO ; DJAKNEGATAN 7 ; S-754 23 UPPSALA ; SWEDEN ; ; MACHINE DEPENDENT ROUTINES REPLACED ; WITH CP/M FUNCTION CALLS 9/8/83 BY ; DANA COTANT/ MICRO CORNUCOPIA TECHNICAL DEPT ; ; Various things, j.g.o. 1/84  NCON EQU 1 ;CONIN FUNCTION OUTCO EQU 2 ;CONOUT FUNCTION ;**************************************************************************** ;START OF PROGRAM. ;I/O ROUTINE JUMP TABLE. ;THE USER SHOULD PLACE THE ADDRESSES OF HIS ;OWN I/O SUBROUTINES IN THE LOCATIONS IN ;THIS TABLE CONTAINING THE DESTINATIONS OF ;JP INSTRUCTIONS. ALL I/O IS PERFORMED VIA ;THIS TABLE. ;**************************************************************************** BOOT EQU 0000H ; ORG 100H START: JR MAIN ; JUMP PAST JUMP TABLE ;NOT USED: CI: JP CONIN ; JUMP TO USER CONSOLE IN SUBR CO: JP CONOUT ; JUMP TO USER CONSOLE OUT SUBR LO: JP LSTO ; JUMP TO USER LIST OUT SUBR RI: JP RDRIN ; JUMP TO USER READER IN SUBR PCHO: JP PCHOUT ; JUMP TO USER PUNCH OUT SUBR MEMCHK: JP MEMCK ; JUMP TO USER MEM CHECK SUBR EXEC: JP BOOT ; JUMP TO USER MONITOR ENTRY POINT ;MAIN PROGRAM LOOP. ;**************************************************************************** MAIN: LD SP,STACK ; SET STACK POINTER CEMTOP LD (HL),A INC HL LD (HL),B RET ;**************************************************************************** ;INITIALIZE PASS ;**************************************************************************** INITP: LD A,'|' | LD (SLNMRK),A ;INITIALIZE SUB-LINE MARKER TO A VR. LD A,YES | LD (DOLST),A ;DEFAULT IS LISTING. LD (EOLINE),A ;FORCE NEW PHYSICAL LINE. LD A,(TITCNT) | CP 1 | JR Z,ITP10 ;DON'T CLEAR TITLE ;BUFFER IF ONLY ONE COUNT. XOR A | LD (TITBUF),A ; EMPTY TITLE BUFFER. ITP10: LD A,79 | LD (LWIDE),A ;INIT LIST WIDTH TO 79 COLUMNS. XOR A LD (LSTCNT),A ;SET HEX LINES TO PRINT TO 256. LD (IFST),A | LD (NOASBL),A ;CLEAR IF SITUATION. LD (TITER),A ;CLEAR TITLE ERROR FLAG. LD (OBJCNT),A ; CLEAR OBJECT BUFFER COUNT LD (ADREFC),A ; SET ADDR REF CNTR = 0 LD (ADREFC+1),A LD A,(PASSNO) | CP 2 | RET NZ LD A,(OFLAGS) | AND +(1.SHL.LSTFIL).OR.(1.SHL.LSTCON) RET Z ; NO LIST, NO HEADR. LD (LFLAGS),A ;SET LISTING FLAGS. XOR A | LD (PAGE+1),A | INALL INITA ; INITIALIZE ASSEMBLER CALL DOFILS ; DO FILE SETUP. CALL PHRLD ; PRINT HERALD MAIN1: CALL SETIO ; SET-UP IO FOR A PASS. CALL PASS ; PERFORM A PASS. CALL ENDIO ; CLOSE FILES, ETC. LD A,(PASSNO) ;CHECK OUT PASS SITUATION. INC A LD (PASSNO),A CP 3 | JR C,MAIN1 ;NOT FINISHED. JR EXEC ;FINISHED. DEPART. ;**************************************************************************** ;PRINT HERALD ON CONSOLE DEVICE. ;**************************************************************************** PHRLD: LD A,1.SHL.LSTCON LD (LFLAGS),A LD HL,PHEAD ;POINTER TO HEADER MATERIAL. CALL LSTST ;LIST IT. CALL DCRLFX ;PERFORM CARRIAGE RETURN LINE FEED. RET ;**************************************************************************** ;PERFORM A PASS ;**************************************************************************** PASS: CALL INITP ; INITIALIZE FOR PASS PASS1: CALL ABORT ;CHECK IF USER IS UPSET. CALL GLINE ; GET A LINE JR C,PASS4 ; A CTL-Z WAS DC A | LD (PAGE),A ;PAGE # := 1. CALL HEADR ; MAKE A HEADER PLEASE. CALL PWARN ;ADVISE OF SYMBOL OVERFLOW. RET CHAIN 'Z80A' ;END OF Z80.Z80.  LIST TITLE 'Z80A.Z80 1/28/84' ;PARSE LINE. NLIST ;********************************************************************** ;GET LABEL ;LOCATES LABEL (IF ANY) IN LINBUF AND PUTS IT IN LABBUF. ;LEAVES POINTER TO CHARACTER AFTER LABEL IN LINPNT. ;ZERO SET IF NOTHING ELSE TO PROCESS ;********************************************************************** GLAB: PUSH HL ; SAVE REGS PUSH DE PUSH BC LD HL,(LINBAS) ; SET POINTER TO CURRENT ; POSITION IN LINE BUFFER. LD DE,LABBUF ; SET POINTER TO LABEL BUFFER LD B,0 ; CLEAR STATUS REG GLAB1: LD A,(HL) ; SCAN TO FIRST NON SPACE CHAR CP SPACE JR NZ,GLAB2 SET 2,B ; SET 'NOT FIRST COL' FLAG INC HL ; POINT TO NEXT CHAR JR GLAB1 GLAB2: CP LTERM ; NULL LINE? JR Z,GLAB8 ETECTED. CALL GLAB ; GET LABEL JR Z,PASS4 ; JMP IF NO MORE PROC. REQD. CALL GETOR ; GET OPERATOR TOKEN JR C,PASS3 ;NO OPERAND PROCESSING REQUIRED. JR Z,PASS4 ; NO MORE PROC. REQD. CALL GTOD ; GET OPERANDS. JR Z,PASS4 ; JMP IF NO MORE PROC. REQD. PASS3: CALL PTOK ; PROCESS TOKENS PASS4: CALL PFRLO ; PERFORM RELEVANT OUTPUT LD A,(AFLAGS) ; TEST FOR END STATEMENT BIT 1,A JR Z,PASS1 ; GO PROCESS ANOTHER LINE IF NOT RET ;************************************************************************** ;INITIALIZE ASSEMBLER ;************************************************************************** INITA: XOR A ; CLEAR ACC LD (SYMTAB),A ; CLEAR SYMBOL TABLE LD (AFLAGS),A ; CLEAR ASSEMBLER FLAGS. LD (TITCNT),A ; CLEAR TITLE COUNT. INC A LD (PASSNO),A ; START WITH PASS 1. LD HL,SYMTAB ; PUT SYMBOL TABLE START ADDR LD (SYMEND),HL ; INTO 'END OF SYMBOL TABLE' STORE CALL MEMCHK ; GET HIGHEST AVAIL MEM IN B-A LD HL,MEMTOP ; SAVE IN M CP ';' ; COMMENT? JR Z,GLAB8 CP 'A' ; IT IS A-Z? JR C,GLAB5 CP 'Z'+1 JR NC,GLAB5 CALL GSYM ; PUT SYMBOL IN BUFFER LD A,(HL) ; FOLLOWED BY ':'? CP ':' JR Z,GLAB3 ; JUMP IF FOLLOWED BY ':' ; I.E. IT'S A LABEL BIT 2,B ; STARTED IN FIRST COLUMN? JR NZ,GLAB6 ; JUMP IF NOT LABEL JR GLAB7 GLAB3: INC HL LD A,(HL) GLAB7: CP SPACE ; FOLLOWED BY SP/LTERM/;? JR Z,GLAB4 CP LTERM JR Z,GLAB4 CP ';' JR Z,GLAB4 GLAB5: CALL DNOPS ; RESERVE 4 DEFAULT NOP'S CALL ADJARC ; ADJUST ADDRESS REF COUNTER XOR A ; SET ZERO FLAG JR GLAB8 GLAB6: LD HL,(LINBAS) ; SET POINTER TO START OF CURRENT LINBUF XOR A ; SET 'NO LABEL IN BUFFER' LD (LABBUF),A GLAB4: LD (LINPNT),HL ; DEPOSIT LINE POINTER XOR A ; CLEAR ZERO FLAG INC A GLAB8: POP BC ; REPLACE REGS POP DE POP HL RET ;********************************************************************* ;GET OPERATOR TOKEN, ;LOCATES OPERATOR (IF ANY) AND PUTS TOKEN AND VALUE FOR IT IN ORTKBF. ;LEAVES POINTER LD B,0 ; CLEAR B (OPERAND COUNTER, ; 'BRACKETS' FLAG & 'QUOTE' FLAG) GTOD1: CALL SCNSP ; SCAN TO FIRST NON SPACE CHAR CP ',' ; IS IT A COMMA? JR NZ,GTOD2 BIT 0,B ; YES, FOUND 1 OPERAND? JP Z,GTOD25 ; NO, SYNTAX ERROR INC HL ; YES, SCAN TO NEXT NON SP CHAR CALL SCNSP JR GTOD3 GTOD2: CP ';' ; IS IT A ';'? JP Z,GTOD24 CP LTERM ; OR A LTERM? JP Z,GTOD24 GTOD3: PUSH HL ; NO, SET POINTER TO START POP IX ; OF OPERAND IN IX ; SCAN TO NEXT DELIMITER RES 6,B ; CLEAR QUOTE FLAG GTOD4: LD A,(HL) ; GET CHAR IN A CP '''' ; IS IT A '? JR NZ,GTOD18 ; JUMP IF NOT BIT 6,B ; QUOTE FLAG SET? JR NZ,QUOTE ; IF SO, QUOTE PUSH HL ; PREP TO CHECK IF AF' DEC HL ; POINT TO PREV CHAR LD A,(HL) POP HL ; RESTORE POINTER CP 'F' ; IS IT 'F'? JR Z,GTOD28 ; YES, THEN NO QUOTE QUOTE: LD A,B ; COMPLEMENT QUOTE FLAG XOR 01000000B LD B,A JR GTOD28 ; AND CONTINUE TO SCAN GTOD18: CP LTERM ; IS IT LTERM? JR Z,GTOD5 ; FOUND DELIMITER TO CHARACTER AFTER OPERATOR IN LINPNT ;EXIT: Z,NC: NOTHING ELSE TO PROCESS. ; Z,C: SKIP OPERAND PROCESSING. ; NZ,NC: DO ALL SUBSEQUENT PROCESSING. ; NZ,C: NOT ALLOWED. ;********************************************************************** GETOR: LD HL,(LINPNT) ; FETCH POINTER TO LINE BUFFER GETOR1: CALL SCNSP ; SCAN TO FIRST NON SPACE CHAR GETOR5: CP LTERM ; IS IT LTERM? JR Z,GETOR2 CP ';' ; IS IT ';'? JR Z,GETOR2 ;WITH 0 FLAG. CALL ALPHA ; IS IT A LETTER? JR NC,GETOR3 ; NO, SYNTAX ERROR LD DE,SYMBUF+1 ; SET POINTER TO SYMBOL BUFFER LD B,0 ; SET COUNT = 0 GETOR4: LD (DE),A ; PUT CHAR IN OPERATOR BUFFER INC HL ; INCR LINBUF POINTER INC DE ; INCREMENT SYMBUF POINTER INC B ; INCR CHAR COUNT LD A,5 ; GREATER THAN 5? CP B JR C,GETOR3 ; YES, SYNTAX ERROR LD A,(HL) ; GET NEXT CHAR CALL ALPHA ; IS IT A LETTER JR C,GETOR4 ; YES, LOOP LD A,B ; SAVE # OF OPR CHARS IN SYMBUF LD (SYMBUF),A LD A,(HL) ; FETCH NEXT CHAR AGAIN R, JUMP CP SPACE ; IS IT SPACE JR Z,GTOD27 ; JUMP IF SO CP ',' ; IS IT A COMMA? JR Z,GTOD27 ; JUMP IF SO CP ';' ; IS IT ; ? JR NZ,GTOD28 ; CONTINUE SCAN OF NONE OF THESE GTOD27: BIT 6,B ; IS QUOTE FLAG SET? JR Z,GTOD5 ; JUMP IF NOT, FOUND DELIMITER GTOD28: INC HL ; POINT TO NEXT CHAR JR GTOD4 ; AND LOOP ; FOUND DELIMITER GTOD5: PUSH HL ; SET POINTER (IY) TO CHAR POP IY ; AFTER END OF OPERAND INC B ; INCR # OF OPERANDS FOUND LD A,B ; IS IT > 2 ? AND 3 CP 3 JP Z,GTOD25 ; YES, SYNTAX ERROR RES 7,B ; CLEAR BRACKETS FLAG LD A,(IX) ; DOES IT START WITH ( ? CP '(' JR NZ,GTOD6 LD A,(IY-1) ; DOES IT END WITH ) ? CP ')' JR NZ,GTOD6 SET 7,B ; SET BRACKETS FLAG IN B INC IX ; AND CLOSE IN POINTERS DEC IY GTOD6: PUSH IX ; GET POINTER TO START OF OPERAND POP HL LD DE,SYMBUF+1 ; SET POINTER TO SYMBUF LD C,0 ; ZERO CHAR COUNT GTOD10: LD A,(HL) ; FETCH A CHAR CALL ALPHA ; IS IT A LETTER? JR NC,GTOD7 LD (DE),A IN CP SPACE JR Z,GETOR6 CP LTERM JR Z,GETOR6 CP ';' JR NZ,GETOR3 ; INVALID SYNTAX GETOR6: EXX ; SET UP PARAMETERS FOR OPTOK LD HL,ORLSTP LD DE,ORTKBF LD C,2 CALL OPTOK ; GET TOKENS FROM LIST EXX JR Z,GETOR3 ; INVALID SYNTAX, NOT IN LIST LD A,(ORTKBF) ;GET THE RESULTING TOKEN. CP PSUTOK ;PSEUDO TOKEN (NO ARGUMENT PROCESSING)? SCF ; JR Z,GTO20 ;YES. GETOR2: OR 0FFH ;RESET CARRY, MAKE NZ. GTO20: LD (LINPNT),HL ; DEPOSIT LINE BUFFER POINTER RET GETOR3: CALL DNOPS ; RESERVE 4 DEFAULT NOP'S CALL ADJARC ; ADJUST ADDRESS REF COUNTER XOR A ; SET ZERO FLAG, NC. RET ;********************************************************************** ;GET OPERAND TOKENS AND VALUES ;LOCATES OPERANDS (IF ANY) AND SETS TOKENS FOR THEM IN ODBT1/ODBT2 ;AND CORRESPONDING INTEGER VALUES (IF ANY) IN ODINT1/ODINT2. ;ZERO FLAG SET IF NOTHING ELSE TO PROCESS ;********************************************************************** GTOD: LD HL,(LINPNT) ; GET LINE BUFFER POINTE C C ; INCR COUNT INC HL ; AND POINTERS INC DE LD A,C CP 3 JR NZ,GTOD10 JR GTOD9 ; MORE THAN 2 LETTERS, GO ; EVALUATE EXPRESSION GTOD7: CP '''' ; NOT LETTER, IS IT '? JR NZ,GTOD8 LD (DE),A ; SAVE IT IN BUFFER INC HL ; POINT TO CHAR FOLLOWING INC C ; INCREMENT COUNT GTOD8: LD A,C ; PUT COUNT IN SYMBUF LD (SYMBUF),A AND A ; IF COUNT=0 THEN JR Z,GTOD9 ; GO TO EVAL EXPRESSION EXX ; GET OPERAND KEYWORD TOKEN LD HL,OPKLST LD DE,TEMP LD C,1 ; 1 BYTE PER TOKEN CALL OPTOK EXX JR Z,GTOD9 ; JUMP IF NO KEYWORD FOUND LD C,A ; SAVE TOKEN IN C CP CTOK ; TOKEN FOR C? JR NZ,GTOD12 LD A,(ORTKBF) BIT 7,A ; IS OPERATOR CONDITIONAL? JR Z,GTOD12 LD C,CCOND ; TOKEN FOR CONDITIONAL 'C' GTOD12: LD A,C ; GET TOKEN AND XYMASK ; IS IT IX/IY ? CP IXORIY JR NZ,GTOD14 LD A,(HL) ; GET FOLLOWING CHAR CP '+' JR Z,GTOD13 CP '-' JR NZ,GTOD14 GTOD13: LD A,C ; CONVERT TOKEN TO DUMMY VALUE AND 0FH OR 0C0H LD ND OF EXPRESSION ;ON EXIT: ; HL CONTAINS VALUE OF EXPRESSION ; AND ZERO FLAG IS SET IF SYNTAX ERROR ;************************************************************************ EVAL: PUSH DE ; SAVE REGISTERS PUSH BC EXX PUSH BC XOR A ; CLEAR ROUTINE FLAG REGISTER LD B,A EXX LD (ARCNT),A ; CLEAR STACKS LD (FCNT),A PUSH IX ; POINT TO START OF EXPR. POP HL EVAL1: PUSH IY ; END OF EXPRESSION? POP DE ; I.E. HL=IY ? EX DE,HL AND A ; CLEAR CARRY SBC HL,DE EX DE,HL JP Z,EOEX ; END OF EXPRESSION JP C,EVAL6 ; END OF EXPRESSION ERROR LD A,(HL) ; GET A CHAR CALL DIGIT ; IS IT A DIGIT? JR C,LIT ; YES, GO PROCESS LITERAL CALL ALPHA ; IS IT A LETTER? JR C,SYMB ; YES, GO PROCESS SYMBOL CP '.' ; IS IT A '.'? JR Z,MCF ; YES, GO PROCESS M/CHAR FUNCTION CP '''' ; IS IT A '? JR Z,ASC ; YES, GO PROC. ASCII CHAR CP '[' | JR Z,XBK10 ;USE []S, TOO. CP '(' ; IS IT A '('? XBK10: JP Z,LBKT ; YES, GO PROC. LEFT BRKT CP ']' | JR Z,XBK20 C,A PUSH HL ; CLOSE POINTER IN TO START OF EXPRESS POP IX CALL EVAL ; GET VALUE OF EXPRESSION IN HL JR Z,GTOD25 ; SYNTAX ERROR BIT 0,B ; FOUND 1 OPERAND? JR Z,GTOD15 LD (ODINT1),HL ; SAVE VALUE IN 1ST OPERAND BUFFER JR GTOD11 GTOD15: LD (ODINT2),HL ; SAVE VALUE IN 2ND OPND BUFF JR GTOD11 GTOD14: PUSH IY ; END OF OPERAND? POP DE AND A ; CLEAR CARRY FLAG SBC HL,DE JR NZ,GTOD25 ; SYNTAX ERROR JR GTOD11 GTOD9: CALL EVAL ; EVALUATE EXPRESSION ; RESULT IN HL JR Z,GTOD25 ; SYNTAX ERROR BIT 0,B ; FOUND 1 OPERAND? JR Z,GTOD17 LD (ODINT1),HL ; SAVE VALUE IN FIRST OPERAND BUFFER JR GTOD16 GTOD17: LD (ODINT2),HL ; SAVE VALUE IN 2ND OPND BUFF GTOD16: LD C,INTTOK ; SET TOKEN FOR 'INTEGER' GTOD11: BIT 7,B ; WAS IT IN BRACKETS? JR Z,GTOD21 ; NO LD HL,BKLST ; YES, CHECK IF VALID, POINT TO LIST GTOD20: LD A,(HL) ; GET A TOKEN INC HL ; POINT TO REPLACEMENT TOKEN AND A ; IS TOKEN 0 ? JR Z,GTOD25 ; YES, NOT IN LIST, SYN. ERR. CP C ;  CP ')' ; IS IT ')'? XBK20: JP Z,RBKT ; YES, GO PROC. R.H. BRKT CP '$' ; IS IT '$'? JR Z,CURLC ; YES, GO PROC. CURR. LOC. SCHF: CALL PSCF ; PROCESS AS SINGLE CHAR. FUNCTION JP Z,EVAL3 ; INVALID CHAR ERROR JR FUN LIT: CALL PLIT ; PROCESS AS LITERAL JR OPND SYMB: CALL PSYMB JR OPND ASC: CALL PASC ; PROCESS OS ASCII STRING JR OPND CURLC: LD DE,(ADREFC) ; CURRENT VALUE OF ADDR REF ; COUNTER REQUIRED INC HL ; POINT TO NEXT EXPR CHAR JR OPND1 OPND: JP C,EVAL4 ; 'VALUE' ERROR OPND1: CALL PUDE ; PUSH VALUE (IN DE) ONTO ; ARITHMETIC STACK JP Z,EVAL5 ; STACK OVERFLOW ERROR EXX ; SET 'LAST UNIT' FLAG SET 0,B EXX JR EVAL1 MCF: CALL PMCF JP Z,EVAL6 ; SYNTAX ERROR FUN: LD A,(FTOKR) ; GET FUNCTION TOKEN CP PLUTOK ; IS IT TOKEN FOR +? JR Z,FUN1 CP MINTOK ; IS IT TOKEN FOR -? JR NZ,FUN2 ; +/- FUN1: EXX ; WAS LAST UNIT START/(/FUNCTION ? BIT 0,B EXX JR Z,FUN3 ADD A,5DH ; CHANGE TOKEN TO DIADIC LD (FTOKR),A JIS IT EQUAL TO ACTUAL TOKEN? JR Z,GTOD19 ; YES, GO REPLACE IT INC HL ; POINT TO NEXT TOKEN JR GTOD20 GTOD19: LD C,(HL) ; REPLACE TOKEN WITH ; BRACKETTED VERSION. INC IY ; OPEN OUR FINAL POINTER AGAIN GTOD21: LD A,C ; SAVE TOKEN IN RELEVANT BUFFER BIT 0,B ; FOUND 1 OPERAND? JR Z,GTOD22 LD (ODBT1),A ; SAVE TOKEN IN 1ST OPND BUFF JR GTOD23 GTOD22: LD (ODBT2),A ; SAVE TOKEN IN 2ND OPND BUFF GTOD23: PUSH IY ; POINT AT NEXT THING POP HL JP GTOD1 ; GO PROCESS NEXT TOKEN GTOD24: XOR A ; CLEAR ZERO FLAG INC A GTOD26: RET GTOD25: CALL DNOPS ; APPEND DEFAULT NOP'S CALL ADJARC ; ADJUST ADDRESS REF COUNTER XOR A JR GTOD26 CHAIN 'Z80B' ;END OF Z80A.Z80  LIST TITLE 'Z80B.Z80 2/9/84A' ;EXPRESSION EVALUATION. NLIST ;************************************************************************ ;EVALUATE AN EXPRESSION ;ON ENTRY AND EXIT: ; IX POINTS AT FIRST CHAR OF EXPRESSION ; IY POINTS AT CHAR AFTER E R FUN3 FUN2: CP 3DH ; DIADIC FUNCTION JR C,FUN3 EXX ; WAS LAST UNIT START/(/FUNCTION? BIT 0,B EXX JP Z,EVAL6 ; SYNTAX ERROR FUN3: CALL POFU ; GET PREVIOUS FUNCTION JR Z,FUN4 ; NO PREVIOUS FUN, PUSH NEW ONE LD E,A ; SAVE TOP OF STACK IN E LD A,(FTOKR) ; GET NEW FUNCTION TOKEN AND 7 ; MASK OFF PRIORITY BITS IN NEW OPR LD B,A ; SAVE IN B LD A,E AND 7 ; MASK OFF PRIORITY BITS OF TOS CP B ; COMPARE PRIORITIES JR NC,FUN5 ; GO DO A FUNCTION ; NEW FUNCTION HAS HIGHER ; PRIORITY SO PUSH IT ON ; STACK. LD A,E ; FIRST PUSH BACK TOP OF STACK CALL PUFU FUN4: LD A,(FTOKR) ; THEN PUSH NEW FUNCTION CALL PUFU JR Z,EVAL5 ; STACK OVERFLOW ERROR EXX ; CLEAR 'LAST UNIT' FLAG RES 0,B EXX JP EVAL1 FUN5: LD A,E ; PUT T O S IN ACC CALL FUNC ; PERFORM A FUNCTION JR Z,EVAL6 ; SYNTAX ERROR JR FUN3 ; GO TRY NEXT FUNCTION ON STACK ;.................................................. LBKT: INC HL ; POINT TO NEXT EXPR CHAR ? JR NC,PLIT2 INC HL ; YES, POINT TO NEXT CHAR JR PLIT1 PLIT2: DEC HL ; NO, GO BACK TO LAST CHAR LD A,(HL) ; FETCH IT TO ACC. POP HL ; REPLACE POINTER TO START OF LIT. CP 'B' ; WAS FINAL CHAR 'B' JR Z,PBIN ; BINARY LITERAL CP 'D' ; 'D'? JR Z,PDEC ; DECIMAL LITERAL CP 'H' ; 'H'? JP Z,PHEX ; HEX LITERAL CP 'O' ; 'O'? JR Z,POCT ; OCTAL LITERAL CP 'Q' ; 'Q'? JR Z,POCT ; OCTAL LITERAL JR PDEC ; DECIMAL LITERAL ;********************************************************************** ;PROCESS BINARY LITERAL. ;********************************************************************** PBIN: PUSH BC ; SAVE REGISTERS LD DE,0 ; CLEAR 16 BIT ACC. PBIN1: LD A,(HL) ; GET CHAR CALL HEXDG ; VALID IN A LITERAL? JR NC,PBIN2 CP '1'+1 ; VALID IN BINARY LIT.? JR NC,PBIN2 SUB '0' ; CONVERT ASCII TO BINARY LD C,A CALL SHLDE ; SHIFT DE LEFT CALL ADCDE ; & ADD NEW DIG. TO DE INC HL ; INCREMENT POINTER TO NEXT CHAR. JR PBIN1 PBINLD A,LBTOK ; SET TOKEN FOR '(' CALL PUFU ; PUSH ON FUNCTION STACK JR Z,EVAL5 ; STACK OVERFLOW ERROR EXX ; CLEAR 'LAST UNIT' FLAG RES 0,B EXX JP EVAL1 ;.................................................. RBKT: INC HL RBKT2: CALL POFU ; POP FUNCTION STACK JR Z,EVAL7 ; EMPTY, BALANCE ERROR CP LBTOK ; IS IT A (? JR Z,RBKT1 CALL FUNC ; PERFORM THE FUNCTION JR Z,EVAL6 ; SYNTAX ERROR JR RBKT2 ; MORE OPS TO DO ? RBKT1: EXX ; SET 'LAST UNIT' FLAG SET 0,B EXX JP EVAL1 ;................................................. ; END OF EXPRESSION EOEX: CALL POFU ; POP FUNCTION STACK JR Z,EOEX1 ; NO MORE FUNCTIONS CP LBTOK JR Z,EVAL7 ; BALANCE ERROR CALL FUNC ; PERFORM THE FUNCTION JR Z,EVAL6 ; SYNTAX ERROR JR EOEX EOEX1: CALL PODE ; GET EXPR VALUE IN DE JR Z,EVAL6 ; SYNTAX ERROR (STACK EMPTY) LD A,(ARCNT) ; CHECK IF STACK NOW EMPTY AND A JR NZ,EVAL6 ; SYNTAX ERROR EX DE,HL EXX BIT 1,B ; TEST FOR ARITH OVERFLOW EXX 2: CP 'B' ; CHAR NOT BIN. DIG.. IS IT 'B'? JR NZ,PBIN4 INC HL ; YES, POINT TO NEXT CHAR LD A,(HL) ; GET IT IN ACC CALL HEXDG ; VALID CHAR FOR A LIT.? PBIN3: POP BC RET PBIN4: SCF ; SET CARRY FOR ERROR JR PBIN3 ;********************************************************************** ;PROCESS OCTAL LITERAL ;********************************************************************** POCT: PUSH BC LD DE,0 ; CLEAR 16 BIT ACC. POCT1: LD A,(HL) ; GET CHAR CALL HEXDG ; VALID IN LITERAL? JR NC,POCT3 CP '7'+1 ; VALID IN OCTAL LIT.? JR NC,POCT3 SUB '0' ; CONVERT ASCII TO BINARY LD C,A LD B,3 ; SHIFT DE LEFT 3 TIMES POCT2: CALL SHLDE DEC B ; DONE 3 SHIFTS YET? JR NZ,POCT2 CALL ADCDE ; ADD NEW DIGIT TO DE INC HL ; INCR POINTER TO NEXT CHAR JR POCT1 POCT3: CP 'O' ; CHAR NOT OCT DIG. IS IT 'O'? JR Z,POCT4 CP 'Q' ; IS IT 'Q'? JR NZ,POCT6 POCT4: INC HL ; YES, POINT TO NEXT CHAR LD A,(HL) ; GET IT IN ACC CALL HEXDG ; VALID CHAR IN A LITJR Z,EOEX2 LD C,'A' EOEX4: CALL ERROR ; INDICATE ARITH OVERFLOW EOEX2: XOR A ; CLEAR ZERO FLAG INC A EOEX3: EXX POP BC EXX POP BC POP DE RET EVAL3: LD C,'I' JR EVAL8 EVAL4: LD C,'V' ; VALUE ERROR LD HL,0 ; SET RESULT=0 JR EOEX4 ; NOT FATAL EVAL5: LD C,'O' ; STACK OVERFLOW ERROR JR EVAL8 EVAL6: LD C,'S' ; SYNTAX ERROR JR EVAL8 EVAL7: LD C,'B' ; BALANCE ERROR EVAL8: CALL ERROR ; SET ERROR INDICATOR XOR A ; SET ZERO (ERROR) FLAG JR EOEX3 ; AND PREPARE TO EXIT ;********************************************************************** ;PROCESS LITERAL. ;THIS SUBROUTINE INCLUDES PBIN, PDEC, ;PHEX, POCT. ;ON ENTRY: ; HL POINTS TO FIRST CHAR OF LITERAL ;ON EXIT: ; HL POINTS TO CHAR AFTER LITERAL ; DE CONTAINS VALUE OF LITERAL ; CARRY FLAG IS SET FOR VALUE ERROR ;********************************************************************** PLIT: PUSH HL ; SAVE POINTER TO START OF LIT. PLIT1: LD A,(HL) ; GET CHAR CALL HEXDG ; IS IT VALID DIG FOR LIT. .? POCT5: POP BC RET POCT6: SCF ; SET CARRY FOR ERROR JR POCT5 ;********************************************************************* ;PROCESS DECIMAL LITERAL. ;********************************************************************* PDEC: PUSH BC LD DE,0 ; CLEAR 16 BIT ACC. PDEC1: LD A,(HL) ; GET CHAR CALL HEXDG ; VALID IN A LIT.? JR NC,PDEC2 CP '9'+1 ; VALID IN A DEC. LIT.? JR NC,PDEC2 SUB '0' ; CONVERT ASCII TO BINARY LD C,A LD B,0 PUSH BC LD B,D LD C,E CALL SHLDE ; DE X 2 CALL SHLDE ; DE X 4 CALL ADCDE ; DE X 5 CALL SHLDE ; DE X 10 POP BC ; RECOVER NEW DIGIT CALL ABCDE ; ADD IN NEW DIGIT INC HL ; POINT TO NEXT CHAR JR PDEC1 PDEC2: CP 'D' JR NZ,PDEC3 INC HL LD A,(HL) ; GET IT IN ACC PDEC3: CALL HEXDG POP BC RET ;******************************************************************* ;PROCESS HEXADECIMAL LITERAL. ;******************************************************************* PHEX: PUSH BC LD DE,0 ; CLEAR 16 BIT ATION ;********************************************************************* ADCDE: PUSH BC EX DE,HL LD B,0 ADD HL,BC EX DE,HL POP BC RET ;********************************************************************* ;PROCESS SYMBOL. ;GET SYMBOL AND FETCH ITS VALUE FROM THE SYMBOL TABLE. RETURN VALUE ;IN DE. ;******************************************************************** PSYMB: PUSH BC ; SAVE REGISTERS LD DE,SYMBUF ; SET PNTR TO SYMBOL BUFFER CALL GSYM ; GET SYMB FROM LINE TO SYMBUF PUSH HL ; SAVE PNTR TO CHAR AFTER SYMB CALL LOCATE ; FIND SYMB IN SYMTAB JR NZ,PSYMB1 ; NOT IN TABLE? LD E,(HL) ; MOVE VALUE TO DE INC HL LD D,(HL) JR PSYMB2 PSYMB1: LD C,'U' ; INDICATE 'UNDEFINED' ERROR CALL ERROR LD DE,0 ; SET DE=0 DEFAULT VALUE PSYMB2: POP HL ; REPLACE REGISTERS POP BC AND A ; CLEAR CARRY FLAG SO RET ; AS NOT TO INDICATE 'VALUE' ERROR ;********************************************************************* ;PROCESS ASCII LITERAL. ;RETURN VACC. PHEX1: LD A,(HL) ; GET CHAR CALL HEXDG ; VALID IN A LITERAL? JR NC,PHEX4 CP 'F'+1 ; VALID IN A HEX LIT.? JR NC,PHEX4 SUB '0' ; CONVERT ASCII TO BINARY CP 10D JR C,PHEX2 SUB 'A'-'0'-10D PHEX2: LD C,A LD B,4 ; SHIFT DE LEFT 4 TIMES PHEX3: CALL SHLDE DEC B ; DONE4 SHIFTS YET? JR NZ,PHEX3 CALL ADCDE ; ADD NEW DIGIT TO DE INC HL ; INCREMENT POINTER TO NEXT CHAR JR PHEX1 PHEX4: CP 'H' ; CHAR NOT HEX. IS IT 'H'? JR NZ,PHEX6 ; NO INC HL ; YES, POINT TO NEXT CAR LD A,(HL) ; GET IT IN ACC CALL HEXDG ; VALID CHAR FOR A LIT.? PHEX5: POP BC RET PHEX6: SCF ; SET CARRY FOR ERROR JR PHEX5 ;******************************************************************* ;HEXDG. IS CHAR IN ACC VALID IN A LITERAL. ;CARRY SET IF HEX DIGIT OR H/O/Q. ;******************************************************************* HEXDG: CALL DIGIT ; CARRY SET IF 0-9 RET C CP 'A' JR C,HEXDG1 CP 'F'+1 RET C CP 'H' JR Z,HEXDG2 CP 'O' JR Z,HEXDG2 CP 'Q' ALUE OF 1 OR 2 ASCII CHARACTERS. ;ON ENTRY: ; HL POINTS TO START QUOTE ;ON EXIT: ; HL POINTS TO CHAR AFTER CLOSE QUOTE ; DE CONTAINS VALUE ; CARRY FLAG SET IF ERROR ;*********************************************************************** PASC: LD DE,0 ; CLEAR 16 BIT ACC. DE INC HL ; POINT TO CHAR AFTER QUOTE CALL DOUBQ ; IS NEXT CHAR CLOSING QUOTE? JR NZ,PASC2 ; JUMP IF SO LD E,(HL) ; OTHERWISE SAVE CHAR IN E INC HL ; POINT TO NEXT CHAR CALL DOUBQ ; NEXT CHAR CLOSE QUOTE? JR NZ,PASC2 ; JUMP IF SO LD D,(HL) ; OTHERWISE SAVE IN D INC HL ; POINT TO NEXT CHAR CALL DOUBQ ; NEXT CHAR CLOSE QUOTE? JR NZ,PASC2 ; JUMP IF SO PASC1: SCF ; ERROR, SET CARRY RET PASC2: AND A ; NO ERROR, CLEAR CARRY RET ;...................................................... ;DOUBLE QUOTE. ;IS NEXT ITEM IN STRING A CHARACTER OF THE END OF THE ASCII ;LITERAL? ON ENTRY: HL POINTS AT THE NEXT ITEM, ON EXIT: HL ;HAS BEEN INCREMENTED IF DOUBLE  JR Z,HEXDG2 HEXDG1: AND A ; NOT HEX DIG., CLEAR CARRY RET HEXDG2: SCF ; HEX DIGIT, SET CARRY RET ;********************************************************************* ;SHIFT DE LEFT 1 BIT - ENTER 0 FROM RIGHT. ;SET 'VALUE' ERROR IF OVERFLOW. ;********************************************************************* SHLDE: EX DE,HL ; DO SHIFT BY ADDITION IN HL ADD HL,HL EX DE,HL RET NC ; NO CARRY, SO RETURN PUSH BC ; CARRY, SO INDICATE 'V' ERROR LD C,'V' CALL ERROR POP BC RET ;********************************************************************* ;ADD BC TO DE - SET 'VALUE' ERROR IF OVERFLOW. ;********************************************************************* ABCDE: PUSH BC EX DE,HL ; DO ADDITION IN HL ADD HL,BC ; DO ADDITION EX DE,HL ; GET RESULT BACK TO DE JR NC,ABCDE1 LD C,'V' ; CARRYOUT SO INDICATE 'V' ERROR CALL ERROR ABCDE1: POP BC RET ;********************************************************************* ;ADD C TO DE - NO OVERFLOW INDIC QUOTE. ZERO SET IF CHAR. ;...................................................... DOUBQ: LD A,(HL) ; GET CHAR CP '''' ; IS IT A QUOTE? JR NZ,DOUBQ1 ; JUMP IF NOT INC HL ; POINT TO NEXT CHAR LD A,(HL) ; GET IT CP '''' ; IS IT A QUOTE? RET ; ZERO SET FOR CHAR ; CLEARED IF LAST QUOTE WAS ; CLOSE QUOTE. DOUBQ1: XOR A ; LIT CHAR. SET ZERO. RET ;******************************************************************** ;PROCESS MULTI-CHAR FUNCTION. ;ON ENTRY: ; HL POINTS TO FIRST CHAR OF FUNCTION STRING ;ON EXIT: ; HL POINTS TO CHAR AFTER FUNCTION STRING ; FTOKR CONTAINS TOKEN FOR FUNCTION ; ZERO FLAG SET FOR ERROR ;******************************************************************** PMCF: PUSH BC ; SAVE REGISTERS PUSH DE INC HL ; POINT TO CHAR AFTER '.' LD A,(HL) ; GET IT CALL ALPHA ; IS IT A LETTER? JR NC,PMCF1 ; NO, SYNTAX ERROR LD DE,SYMBUF ; SET POINTER TO SYMBUF CALL GSYM ; GET FUNCTION IN SYMBUF INC HL ; INCR PNTR PUSH HL ; AN ; LOAD START OF STACK ADDR LD A,(FCNT) ; GET STACK COUNTER CP MAXFSK ; IS STACK FULL? JR NC,PUFU2 LD C,A ; COMPUTE TOP OF STACK LD B,0 ADD HL,BC ; TOP OF STACK IN HL INC A ; INCREMENT STACK COUNTER LD (FCNT),A ; AND STORE NEW VALUE EX AF,AF' ; GET FUNCTION BACK LD (HL),A ; PUSH ONTO FUNCTION STACK XOR A ; CLEAR ZERO FLAG INC A PUFU1: POP BC ; REPLACE REGISTERS POP HL RET PUFU2: XOR A ; SET ZERO FLAG (STACK FULL) JR PUFU1 ;*********************************************************************** ;POP FROM FUNCTION STACK TO ACC ;THE TOP BYTE ON THE FUNCTION STACK IS ;POPPED INTO THE A REG. IF THE STACK WAS ;ALREADY EMPTY, THE ZERO FLAG IS SET ON ;EXIT ;*********************************************************************** POFU: PUSH HL ; SAVE REGS. PUSH BC LD HL,FSTK ; LOAD START OF STACK ADDR LD A,(FCNT) ; GET STACK COUNTER AND A ; TEST FOR EMPTY STACK JR Z,POFU1 DEC A LD (FCNT),A LD C,A LD B,0 ADD HL,BC XOR A ; CLEAR ZED SAVE IT ON STACK CP '.' ; WAS CHAR AFT. FUN. '.'? JR NZ,PMCF2 ; JUMP IF NOT LD A,(SYMBUF) ; GET NO OF CHARS CP 5 ; MORE THAN 4? JR NC,PMCF2 ; JUMP IF SO LD DE,FTOKR ; PNTR TO TOKEN REG. LD HL,MFLSTP ; PNTR TO OPR LIST LD C,1 ; 1 TOKEN/ENTRY IN LIST CALL OPTOK ; GET TOKEN JR PMCF3 PMCF1: XOR A ; SET ZERO TO INDICATE ERR. JR PMCF4 PMCF2: XOR A ; SET ZERO TO INDICATE ERROR PMCF3: POP HL PMCF4: POP DE POP BC RET ;*********************************************************************** ;PROCESS SINGLE CHAR FUNCTION. ;ON ENTRY: ; HL POINTS AT FUNCTION CHAR ;ON EXIT: ; HL POINTS TO CHAR AFTER FUNCTION CHAR(S) ; FTOKR CONTAINS TOKEN FOR FUNCTION ; ZERO FLAG SET IF ERROR ;*********************************************************************** PSCF: PUSH BC ; SAVE REGISTERS PUSH DE LD B,(HL) ; GET POTENTIAL FUNCTION INC HL ; & INCR PNTR LD DE,SCF1 ; SET UP POINTER TO LIST PSCF1: LD A,(DE) ; GET LIST ENTRY AND A ; IS IT ZERO? JR Z,PSCF3 RO FLAG INC A LD A,(HL) ; GET STACK TOP TO ACC POFU1: POP BC ; REPLACE REGS. POP HL RET ;*********************************************************************** ;PUSH FROM DE TO ARITHMETIC STACK ;THE WORD IN DE IS PUSHED ONTO THE ;ARITHMETIC STACK. IF NOT POSSIBLE ;OWING TO THE STACK BEING FULL, THEN ;THE ZERO FLAG IS SET ON EXIT. ;*********************************************************************** PUDE: PUSH HL ; SAVE REGS. PUSH BC LD HL,ARSTK ; LOAD START OF STACK ADDR LD A,(ARCNT) ; GET STACK COUNTER CP MAXASK ; IS STACK FULL? JR NC,PUDE2 LD C,A ; COMPUTE TOP OF STACK LD B,0 ADD HL,BC ; TOP OF STACK IN HL ADD A,2 ; INCREMENT COUNTER BY 1 WORD LD (ARCNT),A ; STORE NEW VALUE OF COUNTER LD (HL),E ; PUSH DE ONTO STACK INC HL LD (HL),D XOR A ; CLEAR ZERO FLAG INC A PUDE1: POP BC POP HL RET PUDE2: XOR A ; SET ZERO FLAG (ERROR) JR PUDE1 ;********************************************************************** ;POP FROM ARITHM ; END OF LIST, INVAL. CHAR CP B ; MATCH? INC DE ; INCR. PNTR. TO TOKEN JR Z,PSCF2 ; JUMP IF MATCH INC DE ; OTHERWISE POINT TO NEXT ENTRY JR PSCF1 ; LOOP PSCF2: LD A,(DE) ; GET THE TOKEN LD (FTOKR),A ; & PUT IN TOKEN REG. CP ASKTOK ; IS IT * ?(MAYBE **) JR NZ,PSCF4 ; JUMP IF NOT LD A,(HL) ; GET NEXT CHAR CP '*' ; IS IT '*'? JR NZ,PSCF4 ; JUMP IF NOT LD A,EXPTOK ; PUT TOKEN FOR ** IN REG LD (FTOKR),A INC HL ; AND INCR PNTR AND A ; CLEAR ZERO FLAG JR PSCF4 PSCF3: XOR A ; SET ZERO TO INDICATE ERROR PSCF4: POP DE ; REPLACE REGS POP BC RET ;*********************************************************************** ;PUSH ACC TO FUNCTION STACK. ;BYTE IN A IS PUSHED ONTO THE FUNCTION ;STACK (FSTK). IF NOT POSSIBLE OWING TO ;THE STACK BEING FULL, THEN THE ZERO FLAG ;IS SET ON EXIT. ;*********************************************************************** PUFU: PUSH HL ; SAVE REGISTERS PUSH BC EX AF,AF' ; SAVE FUNCTION LD HL,FSTK ETIC STACK TO DE ;THE TOP WORD ON THE ARITHMETIC STACK ;IS POPPED INTO THE DE REG PAIR. IF ;THE STACK WAS EMPTY, THEN THE ZERO ;FLAG IS SET ON EXIT ;********************************************************************** PODE: PUSH HL ; SAVE REGS PUSH BC LD HL,ARSTK ; LOAD START OF STACK ADDR LD A,(ARCNT) ; GET STACK COUNTER AND A ; IS STACK EMPTY? JR Z,PODE1 SUB 2 ; DECR STACK COUNTER LD (ARCNT),A ; AND SAVE NEW VALUE LD C,A ; COMPUTE TOP OF STACK LD B,0 ADD HL,BC LD E,(HL) ; POP STACK TO DE INC HL LD D,(HL) XOR A ; CLEAR ZERO FLAG INC A PODE1: POP BC ; REPLACE REGS POP HL RET ;********************************************************************* ;PERFORM A FUNCTION ;ON ENTRY: ; A CONTAINS THE COMBINED FUNCTION ; TOKEN/PRIORITY VALUE. ;ON EXIT: ; THE REQUIRED ASSEMBLY TIME FUNCTION ; HAS BEEN PERFORMED USING VALUE(S) ; ON THE ARITHMETIC STACK AND LEAVING ; THE RESULT THERE. ; IF THE STACK DID NOT CONTAIN ENOUGH ; VALUES THEN THE ZERO RET ;************************************************************** ;FUNCTION NOT ;************************************************************** FNOT: PUSH DE ; SAVE REG. CALL PODE ; GET VALUE FROM ARITH STACK JR Z,FNOT1 ; JUMP IF EMPTY LD A,D ; COMPLEMENT DE CPL LD D,A LD A,E CPL LD E,A CALL PUDE ; PUSH BACK ON ARITH STACK FNOT1: POP DE ; REPLACE REG. RET ;************************************************************** ;FUNCTION HIGH. ;RETURNS HIGH BYTE OF ARGUMENT AS RESULT. ;************************************************************** FHIGH: PUSH DE ; SAVE REGISTERS CALL PODE ; GET VALUE FROM ARITH STACK JR Z,FHIGH1 ; ERROR IF EMPTY LD E,D ; PUT HIGH BYTE IN DE LD D,0 CALL PUDE ; PUSH RESULT ON ARITH STACK FHIGH1: POP DE RET ;************************************************************** ;FUNCTION LOW. ;RETURNS LOW BYTE OF ARGUMENT AS RESULT. ;************************************************************** FLOW: PUSH DE ; SAVE REGIST FLAG IS SET. ; ;THE FOLLOWING SUBROUTINES STARTING WITH ;THE LETTER F ARE ALL ASSEMBLY TIME ;ARITHMETIC/LOGIC FUNCTIONS, OPERATING ON ;THE ARITHMETIC STACK, AND BEING CALLED ;INDIRECTLY BY FUNC ;******************************************************************** FUNC: PUSH HL ; SAVE REGS. PUSH DE PUSH BC SRL A ; GET (FUNC TOKEN)*2 SRL A AND 0FEH LD C,A ; COMPUTE POINTER TO SUBROUTINE LD B,0 ; START ADDR POINTER LD HL,FUNLST ADD HL,BC LD E,(HL) ; PUT SUBR START ADDR IN HL INC HL LD D,(HL) EX DE,HL LD DE,FUNC1 ; CALL RELEVANT FUNCTION INDIRECTLY PUSH DE JP (HL) FUNC1: POP BC POP DE POP HL RET ;............................................................. ;FUNCTION LIST. ;CONTAINS POINTERS TO THE FUNCTION ;SUBROUTINES, USED BY SUBR 'FUNC' ;FOR AN INDIRECT SUBR CALL BASED ON ;THE VALUE OF THE ARITHMETIC ;FUNCTION TOKEN. ;............................................................. FUNLST: DEFW FMNPL DEFW FMNMN DEFW FNOT DEFW FHIGH DEFWERS CALL PODE ; GET VALUE FROM ARITH STACK JR Z,FLOW1 ; ERROR IF EMPTY LD D,0 ; LOW BYTE ONLY REQD CALL PUDE ; PUSH BACK RESULT FLOW1: POP DE ; REPLACE REGS RET ;*************************************************************** ;FNCTION RESULT ;CLEARS ARITHMETIC OVERFLOW FLAG ;*************************************************************** FRES: EXX ; CLEAR OVERFLOW FLAG RES 1,B ; BIT 1 IN REG B EXX RET ;*************************************************************** ;FUNCTION EXPONENTIATE ;*************************************************************** FEXP: PUSH HL ; SAVE REGS PUSH DE CALL PODE ; GET EXPONENT FROM STACK JR Z,FEXP5 ; JMP IF ARITH STACK EMPTY EX DE,HL ; PUT EXPONENT IN HL CALL PODE ; GET OTHER NUMBER IN DE JR Z,FEXP5 ; JUMP IF STACK EMPTY LD A,H ; EXPONENT ZERO? OR L JR NZ,FEXP1 ; JUMP IF NOT LD DE,1 ; RESULT = 1 CALL PUDE ; PUSH IT ON STACK JR FEXP5 FEXP1: BIT 7,H ; EXPONENT NEGATIVE? JR Z,FEXP2 ; JUMP I FLOW DEFW FRES DEFW FEXP DEFW FMULT DEFW FDIV DEFW FMOD DEFW FSHR DEFW FSHL DEFW FDIPL DEFW FDIMN DEFW FAND DEFW FOR DEFW FXOR DEFW FEQ DEFW FGT DEFW FLT DEFW FUGT DEFW FULT ;************************************************************** ;FUNCTION MONADIC PLUS. ;************************************************************** FMNPL: PUSH DE ; SAVE REG CALL PODE ; SEE IF VALUE AVAILABLE ON STACK JR Z,FMNPL1 ; JUMP IF NOT (ZERO SET) CALL PUDE ; PUSH BACK ON STACK FMNPL1: POP DE ; REPLACE REG RET ;************************************************************** ;FUNCTION MONADIC MINUS. ;************************************************************** FMNMN: PUSH DE ; SAVE REGS. PUSH HL CALL PODE ; GET VALUE OFF ARITH STACK JR Z,FMNMN1 ; JUMP IF EMPTY LD HL,0 ; PUT 0 INTO HL AND A ; CLEAR CARRY SBC HL,DE ; SUBTRACT VALUE FROM 0 EX DE,HL ; GET RESULT IN DE CALL PUDE ; PUSH BACK ON STACK FMNMN1: POP HL ; REPLACE REGS. POP DE F NOT LD DE,0 ; RESULT = 0 CALL PUDE ; PUSH IT ON STACK JR FEXP5 FEXP2: CALL PUDE ; PUSH THE NUMBER FEXP3: DEC HL ; DECR EXPONENT LD A,H ; IS IT ZERO NOW? OR L JR Z,FEXP4 ; JUMP IF SO CALL PUDE ; PUSH THE NUMBER CALL FMULT ; & MULTIPLY JR FEXP3 ; LOOP FEXP4: XOR A ; CLEAR ZERO FLAG INC A FEXP5: POP DE ; REPLACE REGISTERS POP HL RET ; ******************************************************************* ; FUNCTION MULTIPLY ; ******************************************************************* FMULT: PUSH HL ; SAVE REGISTERS PUSH DE PUSH BC EXX PUSH DE LD E,0 ; CLEAR E' (SIGN FLAG) EXX CALL PODE ; GET A VALUE FROM ARITH STACK JR Z,FMULT6 ; JUMP IF EMPTY BIT 7,D ; IS IT NEGATIVE? CALL NZ,NEGDE ; IF SO, NEGATE, AND COMPLEMENT ; SIGN FLAG EX DE,HL CALL PODE ; GET ANOTHER VALUE FROM STACK JR Z,FMULT6 ; JUMP IF EMPTY BIT 7,D ; IS IT -VE CALL NZ,NEGDE ; IF SO, NEGATE, AND COMPL. ; SIGN FLAG AND A ; CL************************************************** ;DIVIDE ;THIS SUBROUTINE IS USED BY FDIV AND FMOD ;IT DIVIDES DE BY HL, LEAVING THE QUOTIENT ;IN DE AND THE REMAINDER IN HL. ;SIGNED 16 BIT ARITHMETIC IS USED. ;********************************************************************** DIV: PUSH BC ; SAVE REGISTERS EXX PUSH DE LD DE,0 ; CLEAR DE' (D'=PLACE COUNT) ; (E'=SIGN COUNT) EXX BIT 7,D ; IS DIVIDEND -VE? JR Z,DIV1 ; JUMP IF NOT EXX ; OTHERWISE FLAG IN E', BIT 7 SET 7,E ; TO GIVE SIGN OF REMAINDER EXX DIV1: BIT 7,D ; IS DIVIDEND -VE? CALL NZ,NEGDE ; IF SO NEGATE, AND INCR ; QUOTIENT SIGN BIT (E' BIT 0) EX DE,HL ; SWAP NOS. BIT 7,D ; IS DIVISOR -VE? CALL NZ,NEGDE ; IF SO NEGATE AND ; INCR QUOTIENT SIGN FLAG LD A,D ; IS DIVISOR ZERO? OR E JR NZ,DIV2 ; JUMP IF NOT LD C,'Z' ; FLAG 'DIV BY ZERO' ERROR CALL ERROR LD HL,0 ; RETURN ZERO RESULTS LD DE,0 JR DIV6 ; GO TO END DIV2: EXX ; INCR PLACE COUNT INC EAR CARRY SBC HL,DE ; TEST FOR LARGER NO. ADD HL,DE ; MULTIPLIER SHOULD BE SMALLER JR NC,FMULT1 ; JUMP IF CORRECT EX DE,HL ; OTHERWISE SWAP NOS. FMULT1: LD B,H ; PUT MULTIPLICAND IN BC LD C,L LD HL,0 ; CLEAR HL FOR ACCUMALATOR FMULT2: LD A,D ; IS MULTIPLIER 0? OR E JR Z,FMULT5 ; JUMP IF FINISHED SRL D ; SHIFT DE RIGHT INTO CARRY RR E JR NC,FMULT4 ; JUMP IF ZERO CARRY AND A ; CLEAR CARRY ADC HL,BC ; ADD MULTIPLICAND TO RUNNING TOTAL JP M,FMULT3 ; JUMP IF OVERFLOW TO BIT 15 JR NC,FMULT4 ; JUMP IF NO O/F TO BIT 16 FMULT3: EXX ; SET OVERFLOW FLAG SET 1,B EXX FMULT4: SLA C ; SHIFT MULTIPLICAND LEFT RL B JR FMULT2 ; LOOP FMULT5: EX DE,HL ; GET RESULT BACK IN DE EXX ; SHOULD RESULT BE -VE? BIT 0,E ; (PRODUCT SIGN IN E') EXX CALL NZ,NEGDE CALL PUDE ; PUSH PRODUCT ONTO ARITH STACK FMULT6: EXX ; REPLACE REGS. POP DE EXX POP BC POP DE POP HL RET ;*******************************************************************D EXX SLA E ; SHIFT DIVISOR LEFT UNTIL SIGN RL D ; SET, COUNTING NO. OF PLACES JP P,DIV2 LD BC,0 ; CLEAR QUOTIENT REG BC DIV3: SLA C ; SHIFT QUOTIENT LEFT RL B SRL D RR E AND A ; CLEAR CARRY SBC HL,DE ; SUBTRACT DIVISOR FROM DIVIDEND JR C,DIV4 ; JUMP IF TOO MUCH SUBTRACTION INC BC ; OTHERWISE INCR QUOTIENT JR DIV5 DIV4: ADD HL,DE ; REPLACE EXCESSIVE SUBTRACTION DIV5: EXX ; DECR PLACE COUNT DEC D EXX JR NZ,DIV3 ; LOOP IF NOT FINISHED LD D,B ; TRANSFER QUOTIENT TO DE LD E,C EX DE,HL ; SWAP WITH REMAINDER EXX ; GET SIGN FLAGS INTO C LD A,E EXX LD C,A BIT 7,C ; WAS DIVIDEND -VE? CALL NZ,NEGDE ; NEGATE REMAINDER IF SO EX DE,HL ; SWAP BACK NOS. BIT 0,C ; IS QUOTIENT -VE? CALL NZ,NEGDE ; NEGATE IF SO DIV6: EXX ; REPLACE REGISTERS POP DE EXX POP BC RET ;************************************************************************* ;NEGATE DE ;USED BE FMULT AND DIV TO NEGATE CONTENTS OF DE ;AND COMPLEMENT **** ;FUNCTION DIVIDE ;*********************************************************************** FDIV: PUSH HL ; SAVE REGISTERS PUSH DE CALL PODE ; GET DIVISOR FROM ARITH STACK JR Z,FDIV1 ; JUMP IF EMPTY EX DE,HL ; PUT IN HL CALL PODE ; GET DIVIDEND FROM ARITH STACK JR Z,FDIV1 ; JUMP IF EMPTY CALL DIV ; DO THE DIVISION CALL PUDE ; PUSH QUOTIENT (IN DE) ONTO STACK FDIV1: POP DE ; REPLACE REGISTERS POP HL RET ;********************************************************************** ;FUNCTION MODULO ;********************************************************************** FMOD: PUSH HL ; SAVE REGISTERS PUSH DE CALL PODE ; GET DIVISOR FROM ARITH STACK JR Z,FMOD1 ; JUMP IF EMPTY EX DE,HL ; PUT IN HL CALL PODE ; GET DIVIDEND FOM ARITH STACK JR Z,FMOD1 ; JUMP IF EMPTY CALL DIV ; DO THE DIVISION EX DE,HL ; GET REMAINDER IN DE CALL PUDE ; PUSH ONTO ARITH STACK FMOD1: POP DE ; REPLACE REGISTERS POP HL RET ;********************A SIGN FLAG HELD IN E' BIT 0 ;************************************************************************* NEGDE: PUSH HL ; SAVE HL LD HL,0 ; NEGATE SIGNED NO. IN DE AND A ; CLEAR CARRY SBC HL,DE ; SUBTRACT DE FROM 0 EX DE,HL ; GET RESULT INTO DE EXX ; COMPLEMENT PRODUCT SIGN ; BIT IN E' RR E CCF RL E EXX POP HL RET ;************************************************************************ ;FUNCTION SHIFT RIGHT. ;************************************************************************ FSHR: PUSH DE ; SAVE REGS. PUSH HL CALL PODE ; GET VALUE FROM ARITH STACK JR Z,FSHR3 ; ERROR IF EMPTY EX DE,HL ; OTHERWISE PUT IN HL CALL PODE ; GET VALUE TO BE SHIFTED JR Z,FSHR3 ; JUMP IF EMPTY, ERROR FSHR1: LD A,H ; TEST HL FOR ZERO OR L ; AND CLEAR CARRY JR Z,FSHR2 ; JUMP IF NO MORE SHIFTING SRL D ; SHIFT DE RIGHT ONE BIT RR E DEC HL ; DECR NO. OF SHIFTS REQD JR FSHR1 ; LOOP FSHR2: CALL PUDE ; PUSH RESULT BACK ON STACK FSHR3: POP ; PUT IN HL CALL PODE ; GET SUBTRAHEND JR Z,FDIMN6 ; JUMP IF EMPTY EXX ; CLEAR +VE/-VE FLAGS IN B' RES 6,B ; (-VE EXPECTED FLAG) RES 7,B ; (+VE EXPECTED FLAG) EXX LD A,D AND A ; TEST SIGN OF SUBTRAHEND JP M,FDIMN1 ; JUMP IF -VE LD A,H AND A ; TEST SIGN OF MINUEND JP P,FDIMN2 ; JUMP IF OF OPPOSITE SIGN ; NO OVERFLOW POSSIBLE EXX ; OTHERWISE SET SET 7,B ; +VE EXPECTED FLAG EXX JR FDIMN2 FDIMN1: LD A,H ; TEST SIGN OF MINUEND AND A JP M,FDIMN2 ; JUMP IF OF OPPOSITE SIGN ; NO OVERFLOW POSSIBLE EXX ; SET '-VE EXPECTED' FLAG SET 6,B EXX FDIMN2: EX DE,HL ; GET SUBTRAHEND IN HL AND A ; CLEAR CARRY SBC HL,DE ; DO THE SUBTRACTION EX DE,HL ; GET THE RESULT IN DE EXX ; PREPARE TO EXAMINE B' JP M,FDIMN3 ; JUMP IF -VE RESULT BIT 6,B ; RESULT +VE, WAS -VE EXPECTED? JR NZ,FDIMN4 ; JUMP IF SO JR FDIMN5 ; OTHERWISE NO OVERFLOW FDIMN3: BIT 7,B ; RESULT -VE, WAS +VE EXPECTED? JR Z,FDIMN5 ; JUMPHL ; REPLACE REGS POP DE RET ;*********************************************************************** ;FUNCTION SHIFT LEFT ;*********************************************************************** FSHL: PUSH DE ; SAVE REGS. PUSH HL CALL PODE ; GET VALUE FROM ARITH STACK JR Z,FSHL3 ; JUMP IF EMPTY, ERROR EX DE,HL ; GET VALUE IN HL CALL PODE ; GET VALUE TO BE SHIFTED JR Z,FSHL3 ; ERROR IF EMPTY FSHL1: LD A,H ; TEST HL FOR ZERO OR L ; AND CLEAR CARRY JR Z,FSHL2 SLA E ; SHIFT DE LEFT 1 BIT RL D DEC HL ; DECR NO. OF SHIFTS REGD. JR FSHL1 ; LOOP FSHL2: CALL PUDE ; PUSH RESULT ON ARITH STACK FSHL3: POP HL ; REPLACE REGS. POP DE RET ;********************************************************************* ;FUNCTION DIADIC ADDITION ;********************************************************************* FDIPL: PUSH HL ; SAVE REGISTERS PUSH DE CALL PODE ; GET 1ST VALUE TO BE ADDED JR Z,FDIPL6 ; STACK EMPTY- ERROR EX DE,HL ; PUT 1ST VAL IF NOT FDIMN4: SET 1,B ; SET OVERFLOW FLAG (1,B') FDIMN5: EXX ; SWITCH REGS BACK CALL PUDE ; PUSH RESULT ON ARITH STACK FDIMN6: POP DE ; REPLACE REGS POP HL RET ;********************************************************************** ;FUNCTION AND ;********************************************************************** FAND: PUSH DE ; SAVE REGISTERS PUSH HL CALL PODE ; GET VALUE FROM STACK JR Z,FAND1 ; JUMP IF EMPTY EX DE,HL CALL PODE ; GET THE OTHER VALUE JR Z,FAND1 ; JUMP IF STACK EMPTY LD A,D ; DO 16 BIT LOGICAL AND AND H LD D,A ; WITH RESULT IN DE LD A,E AND L LD E,A CALL PUDE ; PUSH RESULT ON STACK FAND1: POP HL ; REPLACE REGS POP DE RET ;********************************************************************* ;FUNCTION OR ;********************************************************************* FOR: PUSH DE ; SAVE REGS. PUSH HL CALL PODE ; GET VALUE FROM ARITH STACK JR Z,FOR1 ; JUMP IF STACK EMPTY EX DE,HL ; PUT IUE IN HL CALL PODE ; GET 2ND VALUE JR Z,FDIPL6 ; STACK EMPTY ERROR EXX ; CLEAR +VE/-VE FLAGS IN B' RES 6,B ; (-VE) RES 7,B ; (+VE) EXX LD A,H ; BOTH VALUES -VE? AND D JP P,FDIPL1 EXX ; YES, SET 'BOTH -VE' FLAG SET 6,B EXX JR FDIPL2 FDIPL1: LD A,H ; BOTH VALUES +VE? OR D JP M,FDIPL2 EXX ; YES, SET BOTH +VE FLAG SET 7,B EXX FDIPL2: AND A ; CLEAR CARRY FLAG ADC HL,DE ; ADD THE 2 VALUES EXX JP M,FDIPL3 BIT 6,B ; RESULT +VE JR Z,FDIPL5 JR FDIPL4 ; SET OVERFLOW FLAG FDIPL3: BIT 7,B JR Z,FDIPL5 FDIPL4: SET 1,B ; SET OVERFLOW FLAG FDIPL5: EXX EX DE,HL ; GET RESULT IN DE CALL PUDE ; PUSH RESULT ON STACK FDIPL6: POP DE POP HL RET ;******************************************************************** ;FUNCTION DIADIC MINUS. ;******************************************************************** FDIMN: PUSH HL ; SAVE REGS. PUSH DE CALL PODE ; GET MINUEND FROM STACK JR Z,FDIMN6 ; JUMP IF EMPTY, ERROR EX DE,HL N HL CALL PODE ; GET THE OTHER VALUE JR Z,FOR1 ; JUMP IF STACK EMPTY LD A,D ; DO 16 BIT LOGICAL OR OR H ; ON HL AND DE LD D,A ; RESULT IN DE LD A,E OR L LD E,A CALL PUDE ; PUSH RESULT ON STACK FOR1: POP HL ; REPLACE REGS POP DE RET ;******************************************************************** ;FUNCTION EXCLUSIVE OR ;******************************************************************** FXOR: PUSH DE ; SAVE REGS PUSH HL CALL PODE ; GET VALUE FROM ARITH STACK JR Z,FXOR1 ; JUMP IF STACK EMPTY EX DE,HL ; PUT IT IN HL CALL PODE ; GET THE OTHER VALUE JR Z,FXOR1 ; JUMP IF STACK EMPTY LD A,D ; DO 16 BIT XOR ON HL AND DE XOR H LD D,A ; RESULT IN DE LD A,E XOR L LD E,A CALL PUDE ; PUSH RESULT ON ARITH STACK FXOR1: POP HL ; REPLACE REGS POP DE RET ;******************************************************************* ;FUNCTION EQUALS ;******************************************************************* FEQ: PUSH DE ; SAV*********************************************************** FUGT: PUSH DE ; SAVE REGS PUSH HL CALL PODE ; GET VALUE FROM ARITH STACK JR Z,FUGT2 ; JUMP IF STACK EMPTY EX DE,HL CALL PODE ; GET THE OTHER VALUE IN DE JR Z,FUGT2 ; JUMP IF STACK EMPTY AND A ; CLEAR CARRY SBC HL,DE ; COMPARE VALUES LD DE,0 ; RESULT IN DE (0 OR 1) JR NC,FUGT1 ; JUMP IF NOT GREATER THAN DEC DE ; OTHERWISE RESULT= -1 FUGT1: CALL PUDE ; PUSH RESULT ON STACK FUGT2: POP HL ; REPLACE REGS POP DE RET ;******************************************************************** ;FUNCTION UNSIGNED LESS THAN ;******************************************************************** FULT: PUSH DE ; SAVE REGS. PUSH HL CALL PODE ; GET VALUE FROM ARITH STACK JR Z,FULT2 ; JUMP IF STACK EMPTY EX DE,HL ; PUT VALUE IN HL CALL PODE ; GET THE OTHER VALUE IN DE JR Z,FULT2 ; JUMP IF STACK EMPTY EX DE,HL ; SWAP NOS. AND A ; CLEAR CARRY SBC HL,DE ; COMPARE VALUES LD DE,0 ;E REGS PUSH HL CALL PODE ; GET VALUE FROM ARITH STACK JR Z,FEQ2 ; JUMP IF STACK EMPTY EX DE,HL ; PUT IT IN HL CALL PODE ; GET ANOTHER VALUE IN DE JR Z,FEQ2 ; JUMP IF STACK EMPTY AND A ; CLEAR CARRY SBC HL,DE ; COMPARE VALUES LD DE,0 ; RESULT IN DE (0 OR 1) JR NZ,FEQ1 ; JUMP IF VALUES NOT EQUAL DEC DE ; OTHERWISE LET RESULT= -1 FEQ1: CALL PUDE ; PUSH RESULT ON STACK FEQ2: POP HL ; REPLACE REGS POP DE RET ;********************************************************************* ;FUNCTION GREATER THAN ;********************************************************************* FGT: PUSH DE ; SAVE REGS. PUSH HL CALL PODE ; GET VALUE FROM ARITH STACK JR Z,FGT2 ; JUMP IF STACK EMPTY EX DE,HL CALL PODE ; GET THE OTHER VALUE IN DE JR Z,FGT2 ; JUMP IF STACK EMPTY LD A,D ; ADD 8000H TO EACH NO. ADD A,80H LD D,A LD A,H ADD A,80H LD H,A AND A ; CLEAR CARRY SBC HL,DE ; COMPARE VALUES LD DE,0 ; RESULT IN DE (0 OR 1) JR NC,FG RESULT IN DE (0 OR 1) JR NC,FULT1 ; JUMP IF NO LESS THAN DEC DE ; OTHERWISE RESULT= -1 FULT1: CALL PUDE ; PUSH RESULT ON STACK FULT2: POP HL ; REPLACE REGS POP DE RET CHAIN 'Z80C1' ;END OF Z80B.Z80. vÿîfZ80C1.Z80^ ßÿöÿºÿ«ÿ»ÿòÿõÿ³ÿ­ÿ±ÿ°ÿ¾ÿ¹ÿ¬ÿ¶ÿ Äÿ"!#¯ÿ¼ÿ$%·ÿ'&½ÿ(oÿ)+*,ÓÿÑÿ-.ªÿ/¸ÿüÿÏÿ¨ÿ0Îÿ132Öÿ×ÿ5476šÿ89²ÿ:Åÿ<;´ÿ=§ÿŒÿ>‹ÿ?�ÿµÿ–ÿƒÿ@�ÿ‘ÿ¦ÿACB¥ÿžÿØÿD—ÿÐÿÆÿÍÿFEGÈÿIHJ›ÿ“ÿËÿ©ÿÇÿÒÿKœÿLÔÿÌÿŠÿMNÊÿO�ÿPÕÿ˜ÿˆÿQ�ÿR’ÿ™ÿ®ÿSøÿûÿÂÿ†ÿÉÿTÀÿUÃÿV‰ÿùÿ”ÿXW÷ÿYúÿÁÿ[Ûÿ]ZÝÿ\åÿâÿ‡ÿÿþÙÿóÿÜÿôÿœÊ¾µùÔ›N-ý÷k„i鿓ȸ£;®þðQ %¬ùrk™ÑÑÇlcµ*�ØÚLSÙ·¶;@ÌÚRÎH«—^<¢×š+¶¶ŒFä…­-Œ·øžŸ—(`ÆH¯5×µ×–cChm æ—)Œ·T†'•eÒbYaމÔMd„™+‡x/akK!j ççôO›y8=Ѿx¨,a†Ð¿HõxPs²úCkZ[¾Lø2[{z„ßó3Š'Ø+#ÃXýQ«e`k7Ì�çd*…à¶%Ì�öÅ €±úCkÂÖ^[Ž ¡µåTö0Òú£0)!*äTö©ò þ;ù2cQ¡§‡­ýóA}|_qNN�жüÊ^±~Z5§Jn-¶vÏÏ(N†ñ‚ $Ã8P™.ñF÷µ{~FQ0�ݲº}U]�/S¨F}q¢Ž­ý£;¾çgyÔ÷’[êSyFl힟SŒ ãç¤õmùÝ^UN}q¢Ž­ÝÕ×^[ŽT1 ; JUMP IF NOT GREATER THAN DEC DE ; OTHERWISE RESULT= -1 FGT1: CALL PUDE ; PUSH RESULT ON STACK FGT2: POP HL ; REPLACE REGS POP DE RET ;********************************************************************* ;FUNCTION LESS THAN ;********************************************************************* FLT: PUSH DE ; SAVE REGS PUSH HL CALL PODE ; GET VALUE FROM ARITH STACK JR Z,FLT2 ; JUMP IF STACK EMPTY EX DE,HL ; PUT VALUE IN HL CALL PODE ; GET THE OTHER VALUE IN DE JR Z,FLT2 ; JUMP IF STACK EMPTY LD A,D ; ADD 8000H TO EACH NO. ADD A,80H LD D,A LD A,H ADD A,80H LD H,A EX DE,HL ; SWAP NOS. AND A ; CLEAR CARRY SBC HL,DE ; COMPARE VALUES LD DE,0 ; RESULT IN DE (0 OR 1) JR NC,FLT1 ; JUMP IF NOT LESS THAN DEC DE ; OTHERWISE RESULT= -1 FLT1: CALL PUDE ; PUSH RESULT ON STACK FLT2: POP HL ; REPLACE REGS POP DE RET ;******************************************************************** ;FUNCTION UNSIGNED GREATER THAN ;********* qm© ®O븞¾2k+3ó…ïùyNQûÆùù]L9Úb2ŒÕßÚ?+ñ-ê�ŒD…žF!j §2ØÚ=? ñdçç%NJõ9cQ¡§G•X\ØÚ}Å9©ÌÌWKЕ™ùŠOåd×îùÅr®PA£ÃxAŽÆ�ʤ%ñ+Ó2åGe°µ{~F±|ÎØ+#Ã8P™´Ä"~eZÆY=~=ªDe°µ[¥‹‘aœŸås–ÄØÒú£2´/>çËa½vÏÏS,Æù9Å‹a¼âœ´þâ¯-ŸÏÉwº�‡3>¾Ó©/NÔyˆ[»çg †1W^ ãüŒâݘ“a¨ÔVftïµ[*ÃXA"È»ÈwzbÊÑ“xù*êØÚ}”+cKŸÖ™r´Å$Aš8­ckÿ¬ÌèŽïùYþ^cKë�ÑZS�fFpí®þÖ^[*ƒëÓ:®§¯ ê�L™±‚¨ÐÓÃÖþY™ñ}Å9©ÌÌWKÐg¾âS9Yl힟Q,çú…4*‘a¼ G ã@¥–XįLË"~*ƒ­Ýó³c·´QŸS_œ¨ck÷üŒbùœ%†1WF†q RK,âW¦eÊ�*Ql힟Q,Æ\Æ�ʤ%þìÓúÚ?{ú Ï£\ÆùY>gIŒ ãü,/‰‘a¬þÖþÙ§u<çg‘Æ ²|ÎÃ8P©%ñ+Ó2ÎêñëQ%ú´Ž­Ýó³|Î’×îùÅò÷ÃxÁÉ0ÎÏò÷’Æêoíµ‹ø•Á÷çla¸m)Œ§€ ×š+¶vÔþÙÓWk˱àµåuÆ:-ZL•œ×k¼žWšš…<œñ¹>¯T�Ê2åÃÚòeÆ ¢BO[ûg‹ßWœ“Ó#´-…¨},œ…ÞsÆÇéÑ>lí¾âœ´þâ¯-¿²pF=¾Ó©/NÔ±µ{~Fq2Œó³lgV@IŒ cõ×Rñç$ðx�~hr][ª¤ë:c�×óª«Æ: ¿"j�Š…0[§ÍBçÁUý™Bžomyˆéñe¢Öyåôjž¼ÎXãõ¼2WÚ,ôwªbk¯-Ç€×–ÖŸ.2ù�0‚Ne+ˆ ==*Ë+è•S%·kËéæ1'¾SYÂ:¶ö•…0‚ø¾âœœ¡í–…Óz²ª˜Ž­Ýó3Šå©’—Æø?£8Æ N•ÜêBb«?^kKex¡µzzœ*9ñ»UÕ?Çfé’[bóa„S%·º�øNO¬þК°µeÊÏùÎøøNeiÏŒÎOûb}|§sªä¼2šê�|§3ùÑãTɱµö¿ð=?£XþyÚWbsed«?jµLùq*ûT1~‡±>l힟Q!3Œó³g7I˜Uz|™É�¯3Öµ{þþâÙÁMÒF}N˜Uz^©¿¯Ýó·‹síž¿‹K¼wp“¼¦ÇÊâZÛ¾:Âw ’WFÓãuÆjù2“=¯ÝWœ³F �;¸IzúÌ;ã£=3:?¦zX¯½¶;¸Ö–×UâËŒ)¿Ó+mFëåØÚ2'zzU¿¶ìòT ¦W"Ì*=Ëøx�±2šç•ïônC°¶d€¸ÀuF•­£?ëÊÐk|¹bkËœèGêá×– §3C¯1}–#í«*�,üÜ­Jàôµ%ÄuFós[â- ÷Ä+'}^Ÿªô2ßé´õ¢¹ qmÙ1}¾ÓiëÅ3Zî‰zòσóÌбµåØÁÅà¶öu&<{þ>§Xž*ÁôJÝ’ ?N•œ0«ô¼®ÝWœ³í«Ü$�JŸöU•Àµ{¶–(Œ·Ü$S~4MíµÛ�ú»xΖ}´¯ªf•žWªÄsbk÷üý]´õ2W±v_qÎþÙ¤–?'�Ç"¿Ó+ê�ôZsµk÷çì “­WK�+¢Öyp�9iTúÌèÃÖîêoíµåØÁX¼¶T ÏsêÒM5=E¡‹ü®K7ÍU¬-3úðæ*ˆ ž&aŒÖ¢Bgœ“ÕA‹µþ±µ6 ßµg_»a†­ŽÖîù;Šå\As¥–*©GsüUés¾¼vÏßåï%1vËßëóÊ\¨Rœ´¹¢—¯Ý*]ý½[þªô9Ñbk¯Ý*]}ε{þŽbùœ¥n ú#rú¼ÎXãõ¼R%¦(tlíþ~õ9»euûruž[»/Øx�nù«Òç´Ð¯±®Ýµ“–øM o™²äô¨Ï™«1~7�ëµ×îù;Šås–º¥ž[Œ ?¾Óù«Òç¼ÎXãõ¼bk·E‹ˆºFÝR `‚º9°µ{þ.«£’×n•®>g·´ùN§…~)£®øTNØÚ­ÒÕç\[þÌw:S:¶ö7)üßów!êï–úy�±ÆëyµT‰) [»¯8g“F÷{·„5_n-¶vÏßQ¼ºåáŒOÀrFûx�±ÆëyëÚ}ÁÀÖî�ÚIKü&!¼·LùzUùK¦L?zž¬Ê [[þL?zž¬Ê [»UºúœÝÒ$ôªòÇÖîù»¯-Mœ“ï¬(_æ7it¿ckËoÒè~ç«1YãÕ²|Î_fù{‰&W¼ÎXãõ¼Z‘ú¨ÌÚR=zº2šžWËÈëŒ5^Ï+‡(p`á&Wg�à]ä;=­-Õ£QsZfô±ü½Äƒz'-Œ—[Œê±úCk²k˃z'ßé|^…*ŧÈëŒ5^Ï+så;�HïäuƯçum©/líoÒè~Ç÷üÅò9Kk÷[à.°vÔ¾ÄoÒùÞÒf¡ Òg6„hºŸÊ [{íž¿ËßKb\»UºúûÚ­ÒÕç\»ÿ@ÒêoÒè~_{íž¿/±|ÎRKÐßéDz'¯3Öx=¯ØÚ]ý­½ö7†öU•@êŒæçc]»j'-ѾŠÜÁMrB*C›×îù;Šås–:¸I‚þx�±®Ýìù¼ ;¸I*Kõ8ŸWáX×î�ÚZ¢}5|7ÉT© m鵿ºv«tõ9;¸IªtUÂôêÚ­ÒÕW7ɘ>¯ôêÚ=PÛ¾:êà&9s†kÛW‘ñ}Å9Û^ÉÂn’F¥ÏäG�)'ZÈëŒuí¾`ÏçUØÁMRˆÚÇÂ9ŸW!®\»jk‰öUÁk÷[@ ¬ÝµµDûªàµ¢öìâêà&iõÒ‹GôZsY �öU•@šŒ¦¿v_qÎF€Ûn’*}uÅç´zéÅ#z­¹®Ý0Ã.®µí«‚ñ}”kǵ[¥«ãÚ]ý­m_ �ï+ÎÙÂpÛÁMÒê¥�èµæ*Ò¾ªÈ”MFÓçÚ}”kÇn’Öµ¼fšA–M®ôZs-­ÝÕ_HÆôYý¡5­½¶Ô ¸¶T¡Ô¡}¬!ÈB4s8t¨&d0t މ£=.pÌ1†CÇàp(q4!‘8š�À1Çq4<bm9¬q†Çä8ކÚÇÇ݇ § !Ð�ašãcÍ1‡�êª9ÆÖ–öUôzhu|ºq8½:~m©+п¶ÌuÚñü¦²O@|àIÔ'êìথÿîkËÆÝX[v3¸½ ðD Ãƒ¡ãÇÆ‚ÛÚæ:ñ�!_,¦³´ô߯ÑÚ²±�µegÈ‹é:<:~Ìña,¸­-cb†|±˜ŽçwS0C¯1}]0ªÚÁMKÿý­-›b¾›-ZÔŒ>•|mÙ ƒ·µe3@ÌwSЖ=$d8„cŽã0ehKÄ¥q–‡3txg0t jB‡–Ö–Í1¸4Ÿe ᘃã8Èƙ2´%rmÙ ƒKs±:LMHÈp‡D4ÎcÄ¥vȈtׄŽhȰÍññ`èØÚô—+˃¡ÔÒ�%":Ö3×iäø0ÇÐŒS›ãÈՄR;t(u«‘F\[މ3¨‡ƒã<Ñs0”¹>@aXF¬&”ƒÇÔg®P‘ºÕ‡H³¶Ôg®PA£F> LJ« åà1k†rH _°<J-ý÷kTZ[Žs0t¨f,á`èø0Çq4„¹NŽkN#r|˜chÆ9Ž£¡öС!šããµå°NÔe†|±˜Ž‘Gà ùb1�ƒÇÔæ1ÎpÈ8ǵ‡ §¡ŽáÐãÁãñÁÐ1Ö–Ã!ÌÐkL_ŒªZjëÔ× å˜ƒã8~7��~ôšAlm[§}øž¿£XÎõ #hTj úã;�úâD�¦f!ßé|à‰jŒWlíž¿Ë?OûJb\»«¿µ×–SÙǃz'cQ¡§Geiýñ�΄ ¯Ì†§qªä–/¯-§²�Ð+á©gÕ'§J.òç$ðø•}h-øó´[ÛNû®‡ïù;Šå\ 0‚F¥– ?¾Ó©/NÔ±µ;WF†qRKF€Û–‡h™¦²�õNÆ ¢BO[»¯8'§Gh»åÏIà±úCk¢2´…ê3¡ÂÂ+¶vÏÏ(N†1WF†qRKF€Û–_½—±µ{~–§}Wz%12ŒÕßÚk˱ƒkm úãSo:_æSo: Ô¯ØÚ2'zzU¿¶ìòT ¦W"Ì*=Ëøx�±2šç•ïônC°¶d€¸ÀSoº¡uôg]z�/Wlm™ýH=üÚ’âïtfè5¦Ïr¤}U%�…¿ƒ{¢U œ¾¶d€¸Îh~nK<£eážøjLÖxõÏ—ùNçSo: Ô¯ØÚrìàbp[û©7ñìùûœbyªÓ+uK‚þ8Ur¬Òóºv_qζ¯vp“4*}ÚWU×îØZ¢0ÜvKa8­^zñˆ^k®T†Z^3¶vÏßQ¼:¸I‚þxe4=fCûªJàÚ}Á~êY¥ÕÁMR˜«ó:cµ|gL´JË™ ŸzjƺvԾħÞ¼v_qÎF€Ûn)Œ§ÕK/ÑkÍ[»çïK|êY¥¥kÔ-©çV¤Éõr¾Ì§^�Z¥åk?õ¦`|û¿‹çdççwñ©W †aœŸ…xoiýéB!M®<2^±µ{~Fñbsed*µÄ÷&Â{·¤ áÓÃÖ~êÍðø¾âœý3ZèÜÁMÒäuÆJeø3ZL§Îh~¾vϯ:@@òÕ˜¬ñÊÈëŒuí€ ]|êÍðÝ’¨R¾“5^™òã•…púsrí§ÞDˆïùEd„ÆùY~êy-‰±¥™dòŸzÓ±µ{~žS|ê]é1Œ*],Ÿ³ÔR%õ Që–ïT–/óû¥¾ópú;½®-_æ5=V¾ÓùÔ›Î5Æ+ËÊP˜«ó�11'çSo:U"¬¬QXb®kË—9=êsªÇ8sr–•aNS�99ŸzÓKyPsòEé>¤&ä˜câ êÀ9&Ž&”@C†�jB±¶Ôi0ܸ&D3”CÁüañXgP�©C;\8ÍP áË€�† E¤CCíе¥~]CŽS·Úái8&ΠÕëRsÌq ‡�jB´C‡Sû˜: # ÊÁеå8ކÇÈBth0¾  �ÄsGà ½ÆôuÁ¨*u«‘†ƒ¡ÇѬ-3ä‹Åtj�¡=z<Îq 3ôÓ×£ª2<‘ÍP Çq4kKíãc�îC†Ó„Hމ£ åà8u zLmê®=®Gäà8uh‡ wÌq µ��‡u j�k†®-� 2Œh|0Tƒ‘1”Ã@5!Ú¡C T{0„Ã:Ñ‘Æ9BsñxpŒÐA�€X[Žãh¨ Êa�8Ž£a†|±˜Ž‘J'Žãh8® Ñ}0T{|8„ƒÇ4F¤v(5!!Ã!kËÁcêÑh�k†R;t(ÃsH Æ5ÇÖ‰)CKí µ��5ºN3TrP'ŽãhÖ–ãšÝCµÇ‡C8xLã"C‡ÇqCÇàà1‡‡j¨:”ÚáÂqð˜cjÂ…“Ôim9Ž£á¸&D÷ÁPíñáÓ\"Çq4¡ÔŽƒÇS.œÈ!�|ùhȰÍññ`èkËÁc#v(PÍPêÒÅqœÁcS›!šÐqÕèVn¨îšÐq‘@µ�Ç5C9Êñáµå8ކÚÇÇ݇ § áø0µÃ…“@C†uhŽ�CÇà°N< ƒÚ!c Ò]:~,®-ÇÄÔ�Cm @µC4¡ãá€à˜šM¨À8Cu„C4T3”ƒ¡ÇÑp8dpŒÁPíp_þkËc8Ý5ØÚ²ކ@C†uhŽ�CÇà°Nª ÑzLíСԭvÈà0¢c�ãhBÖ–ã8ƒ¡cS§ápá†Ç<¦6�u §Âqí!Ãit Ô­&”Ç:p4ºk°µ×–càÚÖ|¹µ|àÉ®-aͽœÑZÓ?¯ü�*±@�ñÊ"Zÿ̉z�/×µeLŸz�éóe€'‹­-ÇÀµáË|ÏÏ(–S޶˜%†1WF†q RK„0º·ŒÖº°˜*�k¯-S~ŒÖº°˜*�ØÚ=?£XÎõ Sb/He^0ŒÕ“VË”•áËO"¿ÃX¶vTÂ@¾·ôi�WNO%ÔY �  cQ¡§gEÎXø$¬ùrkU±µáŒîøž¿£Xοx£R·$D3ü,ôžsD•X¬Ýów!Ƶ{þŽb9ÿâ!—º%!ú˜ág¡÷œÈT‰×Ú=_b\»çïún̹¶Ä¤µ§}w`|7E#ÝÏn’ß�eZ»¿›Cƒð¼v7EßÍ?×–X€´ö´ï®ßßMA¤ûÉ0~7ÚißõZZ•ÀéÌÐkL_¤õÇ©ìã•Ñô°µû»)úÞ-Sf†^cú[»¿›CÛ:íë–SÙ'2Me¶v7EßÍ?»¥Î¨òG¯5Wlm‰HkOûîHøþnŠFºŸÝÒªNg†^cúØÚýÝúgeâÚýÝ}¿ŸÝ2efè5¦o±µû»9ôÏʤ¸v7EßÍ?»¥OëôZsÅÖ–X€´ö´ï^àû»)úÞÁM2efè5¦¿v7‡á½X»¿›¢ïÆœkK,@Z{Úw¿ðýÝ |?;¸IfXY×îïæÐ ¼_£µ ÁwS4Òýìà&™aeZ»¿›Cƒð~!¯ÝßMÑáïg7É +Ëç,á–ÕQ ·¬ôJk÷wshÞ/Ák÷wSô½¸ŸÜ$3¬,«#A¿„[Vz‚~iíþn Âû%xíþnоs®-±iíißýãû»)ø~vp“̰²®ÝßÍ¡Axÿ£µû»):üýìà&™aeùœ%ܲ:*á–•^iíþn ÂûG^»¿›¢ïÅýìà&™aeY ú%ܲÒôKk÷wshÞ?òÚýÝ=ºŸÜ$3¬¬píþn Âû¼v7Eß�9×–X€_{Úww|7E#ÝÏn’JÈ´v7‡áÝ×îï¦è»1çÚ ðkOûîßßMÑÀ÷³ƒ›d†•uíþn »­ÝßMÑáïg7É +Ëç,á–ÕQ ·¬ôJk÷wshÞ r7ríþnо÷³ƒ›d†•eu$è—pËJOÐ/­ÝßÍ¡Ax7Èk÷wSôݘsm‰øµ§}£;¾¿›¢‘€Ïn’Vb]»¿›Cƒpt­ÝßMÑHáÏn’Vbùœ%ܲ:*á–•^iíþn ÂÑyíþnŠF*În’VbY ú%ܲÒTZ»¿›CƒptG^»¿›¢ïÆœkK,�kOûF#|7E‡¿ŸÜ$ Ëç,á–ÕQ ·¬ôJk÷wshŽ‚ÛÚýÝ­éìà&9y]bJk÷wshŽFÈk÷wS4Òýìà&9™ÒÚýÝ„£‘àµû»)ún̹¶Ä‚!®=í!ãû»)Z?ÒÙÁMr òºD_»¿›Cƒp„guЮݵg_»!jÏ.®µ{þŽb9×(L©[ôÇ—žÁ¨ÒÚÓo`svp“F `6†WN_=•Sœ43‚,Ô[»ãÿÅØÁMòg´˜NõÖîùÛÅØÁM¢�*½Ìïk÷üýÅûÚ=ŸS„¹În’}€5_n-3¬œÊ>Âô*Uâ9×f0ñÿ>§ø½ƒ›düŸßù2A„éU¾L˜^åˬ}*­Íž¿],Ÿ³ÔÁMôG˜Uz^©¿¯Ý*]}ε{þþbùœ¥µÛ�ú»xÎn’}T‰ç\»¯8gç‹×ÁMôÇ ?aT•…Þóµ{þ.ÄØÁMÒF}N•X¬ _Œð=G±|ÎR7IÐõÅ©>_x¢©YÈ©ì[»UºúœÜ$Uº*§²�0«ô¼®Ýì»1g7É+ a¬Îƒz'=}fé죙\»jk‰ðe€àn’ž>³áTö‰LùQ_œêóÊÂB¥øTNk÷ûnüìà&éXÆ&F]L™)C+2ez­¹R¥¿vÔÖáËýk÷ûn®³[‚ùeÖŒ>•\¤S®Î ½Æô-Æ2´ŽþlKk÷@m-¾ @^{í¾`ßÍ?;¸Izú̆SÙG]ôZs¥JŸ9M½µ{ vÒáˤµûŠs¶0Üvp“Té«+>§ÕK/ÑkÍuí¨ _è_¾ @Â÷»èà&ye!ŒÕù2ÀÓÚ=P[K„/�;¸I BHe(Œï:×n•®>g7I˜Uz|™É�_xZ»Uºúœk÷@mø2`ÔÁM2¦Ï™3\¾ @Æ÷ü}‰ås–:¸I‚þÿ¯Ì†-jFŸJNS³�SÙ·v«tõ9;¸1@`íž¿O±|ÎÒÚ=OñZ»!jÏ>g7IÐãÿ•*Q­Ý0ÃVGk÷ü}N¾ Ðß- Q{²úCkbü¿®ÝµgŸsíö££�´‡YTöyeÀ®Ý°Ëê¨ÔÁM2¦Ï+ÎI•¾ª~½µáËÁø¾âœýS†¶ƒ›¤ÕK/ÑkÍUd„ÐÓgÊPÀ®ÝµáËýk×áñ}Å9æ vp“„5_n-s×î+ÎÙpÆ¢ƒ›$¬ùrk9cás¬k÷@mø2xmø2@?¾¯8gÇ?ëÕÁM2þÔ>Æÿ+«^éÕµÛ�Ž:@@²:<òÚýÝ}7æ\[bÁמö�âû»)ú~?;¸IVk÷wshŽŽÖîï¦hý÷³ƒ›dõÇëZ»¿›Cƒp„yíþnоs®-±`ˆkOûF@âû»)é~vp“¬ö1­ÝßÍ¡A8ríþnоs®-±`ˆkOûFÀøþnŠþg7I•År*­ÝßÍ¡A8­ÝßMÑÀñìà&©«X¾Jk÷wshŽ€‘×îï¦è»1çÚ †¸ö´o¤ßßMÑ÷|vp“Ìècù*‰uíþn ‘þÑÚýÝ}ÿÀg7ÉŒ>–SIŒk÷wshŽô#¯ÝßMÑwcε% ¸ö´o„„ïï¦èÑýìà&™ae…k÷wshŽ�Öîï¦è»1çÚ \{Ú7ŠøþnŠF8:;¸IúË–Äsâª#\¥·v7‡á(ŽÖîï¦è‘ŸÜ$ýˆÑˆÑ¬ÝßÍ¡A8ŠÈk÷wSôhtvp“ô#~Ϲv7‡á( ^»¿›¢ïÆœkK,@píiߨÀ÷wS40ðÙÁM2ÃÊ(Öµû»94GÅhíþnŠF:;¸IfXÅ´v7‡á¨@^»¿›¢�ßÜ$3¬Œbùœ%ܲ:*á–•^iíþn ÂQ!xíþnŠ.În’VF±¬ŽýnYé ú¥µû»94G…àµû»)z4:;¸IfXyNÑÚµû»94GEøµû»)ún̹¶Ä‚±®=í]øþnŠ>;¸IÆÿźv7‡áè­ÝßMÑÀHg7Éø?£˜ÖîïæÐ ]Èk÷wS4pø³ƒ›düŸQ,Ÿ³„[VG%ܲÒ+­ÝßÍ¡A8º¯ÝßMÑÀÅÙÁM2þÏ(–Õ‘ _Â-+=A¿´v7‡áè¼v7E�Fg7Éø?ω«Žp•žXáÚ èïæÐ ]á×îï¦è»1çÚ ÆÊ`,\{Ú7úøþnŠòìà&9?£X.®nù{iíþn ÂÑ­ÝßMÑÀÈg7ÉùE…[×îïæÐ }äµû»)øŸÜ$çgË)•ÖîïæÐ }Ák÷wS4�Àg7ÉùY.®nù{IŒk÷wshŽ~øµû»):<ÒÙÁMr~–ÏYÂ-«£nYé•Ä´v7‡áè#\»¿›¢GHg7ÉùY¡˜ÒÚýÝ„£äÚýÝ=úg7ÉùY¡XN©´v7‡áè¯ÝßMÑá�Ïn’ó³|ÎnY•pËJ¯$Öµû»94G_ÿÚýÝ� |vp“œŸ ·Šqíþn ÂÑGZ»¿›¢ïÒÙÁMr~–Õ‘ _Â-+=A¿$¦µû»94GáÚýÝ}/€Ïn’󳬎ýœñrVíÚ 3ìâZ»a†ý}í†ö9×n?:Z¾ Æwõ·¶;ðµ¥ÕK/ÑkÍumçä;�&Ï™*�„5_n--ZÔŒ>•Ü®-«?´&êS‘ïT–-jFŸJNeøN×[[&÷Ï—!ôô™2°T†ït^Ñ:³Y[FZ½ôâ½Ö\±µåØ�¯mõ’׊ï+ÎÙ?eh;¸Iz­¹ŠŒzúün":S†ví®þÖ–X xm k¾ÜZfè5¾\ùb1¿¶¼rzQ%ËøukÝ2Æ ¢BO×¢EÍèSÉ9•}vmù2aÍ—[K}±ªŒZfè5¾\ ÖŒB‹­-±@ðÚ0׉ïïæÐÓ¾„În’ �“5£O%§É•)3C¯ñåºv7‡žö%tvp“L蜬}*9M®Ì\»¿›COû:;¸I&tNÖŒ>•œ&WºÎèÚýÝzÚ—ÐÙÁM2¡sÒdô©ä4¹ò»™k÷wsèiß=|7IOíþn=í»#ìà&ùÝk÷wsèißÈn’ßÍaíþn=í»wp“ünìÚýÝzÚw×ßÁMr*ûpÓTö­ÝßÍ¡§}w¤n’Êàú´Žëé+ƒ­ÝßÍ¡§}÷¢ƒ›¤U œÎBï¹È”™¡×˜þÚýÝzÚw/:¸IþŒÓYè=™23ôÓ_»¿›COûîW7ɘ>såQ®¼ -Z¬ÝßÍ¡§}÷ßÁMR¥‹ß¯µû»9ô´ïîÜ$•píþn=í»›n’u^¬“vFÖz±VÚië\»¿›COûF÷n’…z´þXÝ®ÝßÍ¡§}£Q7ɸv7‡žö��;¸IÔµû»9ô´o$¸ƒ›äHZk÷wsèiß(|7É+ιv7‡žö�vp“¬þÖîïæÐÓ¾�Ü$«}k÷wsèi߸ƒ›¤Jk÷wsèißH7ÉŒ¾µû»9ô´o„ÔÁM¢ö$Ìpíþn=íÅn’~´v7‡žö�Šn’ñ_´Åµv7‡žö�®n’ñÿµû»9ô´oô;¸Iοv7‡†y·Ô«Ê¨%´ŽþÌ -¶v7‡žö�L·´h1¶v7‡žö!ß»¥øõ°µû»9ô´yÔ-§²ï€­-±iíi_B'¾¿›¢ïÆÏµ% ­=í»‡Ç÷wSô½ƒ›dÊÌð¯ÝßÍ¡Ax¿v7E#ÝÏn’V%p:Uzz]»¿›Cƒð~íþnо›®-±iíiß!¾¿›¢‘îg7Éï¦`Z»¿›CƒðŽpm§‡ïï¦è»1g˲Éõrz­¹Rº>=¢Öim‰H †ðµ§}w ñýÝ�t?;¸I~7¦´v7‡áȵû»)nYé ú%±®ÝßÍ¡A8úú×îï¦èû>;¸IÎÏrJ%1®ÝßÍ¡A8úqmôwSôý�În’ó³œRI¬píþn ÂÑ/Öîï¦hàðg7ÉùY>g ·¬ŽJ¸e¥WZ»¿›Cƒpô¯µû»)¸8;¸IÎÏ*–Õ‘ _Â-+=A¿´v7‡áè_k÷wS40ÒÙÁMr~V1­ÝßÍ¡A8úíþnŠ>;¸IÎÏ*Öµû»94Gß×îï¦èÑèìà&9?-ω«Žp•ÞÚýÝ„£oÖîï¦è»1çÚТ#Ç÷wSôÝ\gËçs¾ àËT`ÊÕ™¡×˜¾ÅÖîïæÐZG˚ѧ’óe Ñ Àƒz'¡uôgfè5¦o±µ§}#ƒïï¦ Òýd¿›¶h1[æäÌÐkLãÏ´hÁ©’óûTBõ¼bk÷wSðnþ¹ö´ùŽïï¦ Òýd¿›¯,„l™“3C¯1}‘WN_=•Sœô¿¯,Æô±µû»)x¿Ÿ ãwsàÏ>àWË”™¡×˜¾H4]9}õTNqÒüzØÚýݼ›®=íCáû»)ˆt?ÆïæÀŸê·ÌÉ™¡×˜¾¤õÇ©ìãAýwbk÷wSðnþ¹¶ÔèZ[~hýÌÐk|¹Ö|¹µ*�Sf†^cúV$j�Ö¯œþÚ²Ð{Îl˜¡×øråË´>ýz„±>u¡3VBëèÏÌ[[¦üœïŒ�9M=Îø¼ZGÖ•¡åA¥Oòôê’ù�^íÚ2V§}Õ‰±f4}ú´~8½:¶ö‡ÖÑ�ïù;Šå\ 0‚F¥– ?Z¿rú,ôž3¾ ð„­Ýó·‹±åY?¡uôgfh™Qð||™…ÓSFÁ[»çï/Þ×îùûœ"´è‹ÅÚÿïsŠß×îùébùœ%†Q¥‹çdççËç,µýñ�Îøuk±µÛ�ú»xÎnòœÄ#Èw:ãÿÕ­ÅÖîØås–:¸I0ó�^[ZôÅ¿öSO_œt�QŽe]Т/ ãwsàSo¶|êM_û õÅIºÎ(Dz.hÑ †ñ»9ð [~7µ¯3é‹“®3ʱ¬ ZôÅ‚aün¼ÎÔò:£Jk¯½v_gT©´ôß/d�néé3jé¿_#LKÿ[{, †°±\»¿›¢GHg7ÉùY¡˜ÒÚýÝ„£äÚýÝ=úgvÿî|Z80C2.Z80@ ßÿöÿºÿ»ÿ¯ÿ¾ÿ­ÿòÿ«ÿõÿ°ÿ³ÿÄÿ¶ÿ±ÿ½ÿ¼ÿ¬ÿoÿ ¹ÿüÿ¸ÿªÿ!ôÿÛ?síë}ýÿöÏÜë¿ØŸQ•ÎÄþŒªVlŽvï}e‘ˆ-ÇÁÑøÆøÙÃiÂÃÏÜíÞû™‹ ÷Õ+‹ÄÒ~ŽvÓ㙋�¸ï«Ï\‹ ^÷qse‘˜ó xÝ•=s¯ÿÆ[:ögTåw¯ 2׌mœ¹&�Õê÷^½²H.Áëκ¿ò̽þoéØŸQ•v¯ 2×>ÎÄþŒª|Å «ê÷^½²H>¨ ú xY÷Wž‰ýU©b±á¾ze‘øû³Îï¥8s±á{æbÃ?s±áÞû™û}œ™Òž™ð7ëBÐ#ð¢ü-@j•¯>3)¤=³D­òÛa/Äx¿Z¿÷ÝÄÞPŒ÷Àgè<îÌqxéÿ̵¯÷>ü•Eboø>! ~/:�;s^ú?s;ì½ë¯î¯»‰Âox„¬û+Ï\ácUýâÞ«ÏÜïã̤�pfÂ߬ AðÚœ™Î,Q{¥Šµ¯÷µ÷›­^Y$Ú»Û›¬Ûg«ì¿î-4�‡[„3WÞ.±šÎL g&üͺ¯CŸ™Î,Q{ûk_ïûCÃÊ"ñ!zŽÆ'Ð6pš ®ÏÜïã̤�pfÂ߬ AðZð¢ü-@jCUŸ™Î,Qªb;,¸~ñà{m«ws^úçh|ŸßkÚ8þ™ûöÞuð3·Ã^<ø^ÛjýÞÏÜk\áDÜM>ø>! Ûâ¸Êº¿ò̤�pfÂ߬ ÁØØÐÿ‹põ̤�pf‰ZS±öéí�›¦®ÞM,}°ágù[€D�ÀÑø„ÚNÔµÿ3KÔµb;ìÓ/Ú7M}›Z½›Xú`CÛÀ™#ß™k_ïûÍXY$¾|ˆ�£ñ ´ œ&¨ë3÷û83)$œ™ð7ëBðEi?¤ªý‹!"0¼( �Z[}fRH83•¿H­å%ÿ™I!á̵V­Øûô‹öÇMSߦVï&–>Øð²9–4yˆ3·ÃZݬ,mÓ˜�ßKš<Ä™k_ï›Å÷òÌmU­TÎì&š w`ÃKÛÀÏ\ûz߇hÆÊ"ñ!z~A�O mà4A]û?s¿�3“B™©ü-@j-/ÏL g–¨µJÛaŸ~Ñþ¸iêÛÔêÝÄÒ~B#Ç’&qæ¶¿"Óÿ#Îÿ$·ÿ&%(')¦ÿ²ÿÏÿÕÿ*,+-µÿ×ÿÒÿ§ÿÖÿÅÿ.Ðÿ/Íÿ0¥ÿ1Øÿ´ÿ2Ñÿ3©ÿÈÿ¨ÿ54Ôÿ6®ÿ7ÇÿÌÿøÿËÿûÿÀÿúÿ8Êÿ9:Éÿ;Æÿ<ùÿÙÿ=>?Ãÿƒÿåÿ¿ÿÿþÂÿìYŒ39òè¾7nU¢µJWoU¢%•B´•„T¢ü»± ³.[00l5ñ}áÿꙌ=‹qfRÈúÌäqü0_zU´-B¹EÁº}bû¥NìÏðE83½ÞYâUYPæ·`äèâê™éÌÔ"=Ž®83Q*gh[/GÁ†þ_„K•£ÝôH~fZKÛâx9 6ôÿ"\*q´›iÂÃÏL”ÊÝ;m‹ãå(ØÐÿ‹p©2Çá¥ÿ=3Q*NÛâx9 6ôÿ"\*1Çá¥ÿ3S‹ôª<*ÎLû„p�é´ œ÷'hÜ#±?ëÀù„p�ég&ʵ œ&¨kÿ¼xBØÕWÏL”Ê=€ïBð{íߣuÚÄáŸ÷'hÜ#\b8\å™I!ë3Ó™I!ë3þf]¶_ž™²>Û/+qß{_Y$ŠWÙù½g.â¾Æž¹öõ¾ ÐŒ•Ebéƒ ý¿Ä—?Mx8sä;s-î•kï+‹D‘cÙ�9/ý+{æ^ÿ�·tl¿Tw¯ ²�»ÿÐYø™Ûaï]¿h�ãP«wKlèÿE¸T™ãðÒÿ™Ûa/|¯mµ~ﻉ æÈðù½¤�㟹öõ¾Âǃ¿²HÌq4>€OÈû _=síë}…qe‘(r_'da[9y„¯ž¹×±ýRéLl¿T+¶ÃZý†¸±²H̲}Ã)Âq¼*úÿퟹöõ¾þûgbû¥RÅbÃ5ve‘øû³Îï¥8s±áÞû™û}œ™²>3áoÖ…`Æ;/r´=ô+¾¯{õ™I!ë3±?S±ˆûÞûÊ"Q¼ÊÎï¥8s1÷?s1÷5öÌí°O¿hÜ4uõnbéƒ ?G»éñÌÅ@Ü÷Õ+‹Dñ*;[¤ÏÞØˆ/šðð3×â^¹ö¾²H9–Ý™ãðÒ¿²gîõß[:ög*]Y$^d®)šÎvóÌí°V¿!n¬,½ gŽ�íNŽãUÑÿoÿ̵¯÷õÿÛ?s¯ÿb¦Ò•y&ög”*¶ÃÞ»~ñà{m«wK´ÁÿÀçEÆ;+¿ªª•…ªjÍn¢ r6¼´ ü̵¯÷}ˆf¬,¢G`�O mà4A]Ÿ¹öõ¾ö~³Õ+‹Ä!Û7œ­²ÿº·ÐôÿÛg®ùbøÌí°Oï+‹D s^úgŽ|Bm§ êÚÿ™k_ïûÍ8s¿�3“BÚ3Sù[€ÔZ^òâÞ«C.rÕmPr‘÷Aõ™I!í™%jm¥k_ï›#`½²H,=úÙ#xñ{�«tæšß¯€3·Ã>ý¢ýqÓÔ·©Õ»‰¥6ü„,FŽ%MâÌmU­TFUµf7ѹ^Ú~&¥2k_ï܇hW‰Ñ#p4>!€¶�Óu}æÚ×ûBf¬,¢G d�W™k~¿ÎÜïã̤�öÌ„¿Y‚9ÚpË‹ò·©…ê3“BÚ3Sù[€Ô/ùÏL iÏ,Q jÅvX«›3·Ã>ý¢ýqÓÔ·©Õ»‰¥6ü„,FŽåUš<ÎÜaµR9ÕœInû«•·SµZ³›h‚Ü� /m?síë}3|/W‰9 ÿƒßË,†š<Ä™k_ïûÍXY$>D�À†¶�s4š ®ýŸ¹ßÇ™I!Í™©ü-@j�—¼¸÷ê�‹\uT‡\äðmP}fRHsf‰ZPªXûzßë•EbéÑÿÎÁ«ˆßë\Å\ó{ gn‡}úEû㦩oS«wKlèÿ�ö YŒË«4yœ¹/Âj¥rª9sÛ_­VUµªVkvK�þßp6¼´ ü̵¯÷}ˆf¬,¢Gàh4A]û?síë}! 3V‰Ñ#²À«Ì5¿_gî÷qfRHsf* �Zà%sUH‡rï!ÏL iÎ,Q •Vl‡}ºYY$–>ØÐÿ‹@~©ž¹W u_Y$Ú»Û›Ì5_Íïµ�ÖÏÜkÜ[ºGÿ7ñ:Ð sÍ<˜…Nÿ¿ý3×¾Þ7GÀze‘Xzôÿ†3Gð*â÷:W1×ü~œ¹Öêfe‘ˆÁ`Cÿ/Mx8s¤=s;ìÓ/Ú7M}›Z½›Xú`ÃOÈbäX^¥ÉãÌ}V+•Qµ²0gnû«•·WUÍn¢ r6¼´ ü̵¯÷ÍßK\Y$æ(ü~/³þ‰/š<Ä™k_ïûÍXY$>D�ÀqÏ‚ mçh4A]û?s¿�3“Bš3þf]f /Êߤ֫ÏL iÎ,QëÛaŸ~_Y$–>xÏå�&<üÌ}ö­,íÝíMæÁ,¨=s¯qã-]„£ÿ¿›èÿ·Ï\3¶¡S4^Øðs´›Ï\ Ä}_}æZ\ðº�›+‹Ä,˜Áë®ì™{ý7ÞÒ±?sû»‰×�™kÆ6Î\ácµúŽW¯,…‚×�u%säãgs&ögn¿bíë}{³oøÊ"±7û†3GŠ°Æ´ÎñL÷3÷úï-û3•¬,¯ 2×|ýûƒ0säx¦û™ÛaŸ~�OˆØªw³à¸gA|BPUö̵¸ê™{ý÷–Žý™P+‹Äë@ƒÌ5E;s;¬Õoà�•Ebwÿ¡³pæÙ¾áÄûNÿ¿ý3×¾Þ×ÿoÿ̽þ‹ýUéLìÏ„ªXûzß…ÿ±²HÌQøÌ‘"¬1­s<Óý̽þ‹ýUéÌ•·K|ýûƒ0säx¦û™ØŸ©¤b;ìÓ/ð [õnb÷,ˆOªÊž¹W=s¯ÿÞÒ±?£ª»‰×�™kŠvææh÷ÞW‰š ‚בu%…eyææh÷ÞÏ\“ǪúŽWŸ¹×oéØŸ¹ò•Eâu Aæš±�3·ÃZý†æÆÊ"1GÈö §&èƒàu¤ÿßþ™k_ïëÿ·æ^ÿÅþŒªt&ög®¼b±á¾ze‘Xú`ÃÏÑnzn®,³`¯»²gîõßxKÇþŒªÝM¼4È\3¶qæ‚Û½÷•EbŽÂÿ`ôЬüzàgn‡½¸÷jÝœ¹àvïýÌí°÷^­Û3÷ú/ögT¥3±?£j+VÞ.ñþ+¿8íýÅÒAÙ3Ü,KlXùõÀ™#ÁÏÜ úŽW¯,Î\p»÷~ævX×/î½úÌõª×ï}e‘Xú`Ìq4Þû™û"ì[Y$ÚîïÓ¾ÿÃg®0vï]7ve‘ø"Ð6 ¾ïlø"0zhV~=pqæ^ÿ½¥cFUÚM¼4È\Ó¯^?s½jÁõ{_Y$zÎ…ÿÁè¡YùõÀÏÜ{qïÕº=ss´{ïgn‡½¸÷jÝœ¹Öê7ðÆÊ"ñE`Ž�íN¼?áÔºº²H¼4È\S´37G»oe‘ØÆÝè,œ9Úï�ã̵®Vl‡µú[Y$b0˜s¤=s;ìÓµ÷•EâCôÄïu®¢ ?síë}¢+‹ÄÑø„ÚNÔµÿ3·Ã>]«je¡ªZ³›Xzôÿ†³á¥màg®}½o†ïåÊ"1Gáßþiòg®}½ïC4ce‘ø=Gãh8MP×gî÷qfRHsfÂ߬ ÁßmÈï!¢¿�ÿmÈÿ!â¿ñ;/Êߤ¶®>3)¤93•¿HmÍKþ3“BÞÏ,Q[«ÛaŸ®µæ¾²H|ˆ�ø½ÎU4áág®}½ïC4ce‘8Ÿ@ÛÀi‚º>s;¬ÕÍÊ"ƒÁ†@N•9Òž¹öéí�›¦¾M­ÞM,}°!²9–Wiòg®}½oßË•EbŽÂÿà÷2‹áŸ&qæÚ×û>D3ÎÜïã̤�æÌTþ [ÍK^Ü{uÈE®º ªC.rø6¨>3)¤9³Dm­T±öõ¾9Ö+‹Ä‡è˜#xñ{�«hÂÙk~¿ÎÜût­5÷3×¾Þ÷!š±²H|ˆ�ø½ÎU4áág®}½/daÆÊ"ñ!zBØŸu�ÇAÎ\óûpævا_´?nšú6µz7±ôÁ†Ÿ�Åȱ¼J“‡8sÛ_­¼�ªjÍn¢ r6¼´ ü̵¯÷}ˆf¬,¢Gàh|Bm§ êúÌý>ÎL ™ÏLø›u!hò>B¾ ^”¿HU[}fRÈ|f* �ª–—4ú?3)d>³DU«V¬¼]bC`ŽÃKÿg®¼]¢&ƒÆ™#ÿ‹¥S{êÌí°Oï+‹DáÎ\óÅ0M‚mÜýsÜ_ä™û"¬*o§•…ÙM¬”ýª¸J“‡àûNõÌmïgî5n¼¥‹pôÿw¯ 2×M§ÿßþ™ÛaŸ®µæ¾²H|ˆ�ø½ÎU4áá�&¨kÿg®}½ïC4ãÌí°O¿hÜ4õmjõnbéƒ ��Åȱ¼J“‡8síë}³ø^®,mÓ˜�ßË,†š<Ä™Ûa­ÞW‰¥æ8¼ôÏiÏ\ûzß ßË•E¢m“£3Çᥚ<Ä™k_ïûÍXY$>D�À†—¶�s4š ®ýŸ¹ßÇ™I!ïg¦ò·©jyI£_Ü{uÈE®º ªC.rø6¨>3)äýÌU­RÅÊÛ%6æ8¼ôæÊÛ%j1hœ9ò¿X:µ—¡ÎÜûô¾²HîÌ5_ Óä!ØÆÝ?ÇýÅ3÷EXUÞN+ ³›X)ûUq•&Á÷�ê™ÛþÞWä™{�oé"ýÿÝÄë@ƒÌ5EÓéÿ·ævX£Û3×¾Þ7GÀze‘ø=s¯"~¯Ÿ¹×¸ñ–.ÂÑÿßM¼4È\3Çʯg8s;ìÓûÊ"ѹ^Ú~æ¶¿ªª•…* sæÚ×û>D3V‰Ñ#p4š ®ýŸ¹ßÇ™I!áÌ„¿Y‚9ò¢ü-@ª¡ªÏL g&…„3Sù[€TCñ’O¿ˆÕg&…„3KTC©ÛaŸnV‰¥6šðpªg®Å ê¾²HÔbÐ8o¼ü^ž¹×¸ñ–.ÂÑÿßM¼4È\3¶¡ÓÿoÿÌí°O‡•EbŽÃKÿÔbÐ8¯,*]éöÏÜaß™®T&ñ·¦aÝ>¾ïÌQŒØ‘[D3ÎÜïã̤�pf* �j(^òë¶ṳ́�pf‰j(¥Ší°O×:ÜW‰Ñ#°á¥màÄïu®âh4A]û?síë}¢gn‡µºYY$–>ØhÂé2GÚ3·Ã>]«jåí5»‰&ÈØðÒ6ð3¹öõ¾¾—+‹DÛ4&Gç÷’&qæÚ×û>D3Vgî÷qfRH83áoÖ…` /ÊߤZIõ™I!á̤�pf* �j%¼ä…­Öÿ™I!áÌÕJÔŠí°O×:ÜW‰Ñ#°á¥màÄïu®âh4A]û?síë}¢+‹3·Ã>]«jåíT³›h‚Ü� /m?síë}3|/W‰¶iLŽÎï%Mâ̵¯÷}ˆf¬,¢Gàh4A]û?s¿�3“BÚ3Sù[€T+á%/bµþÎL iÏ,Q­D©b;ìÓíÊ"±ôÁ†@N¥3×↠u_Y$j1hœ7Þ ~/ÏÜkÜxKáèÿï&^d®Û8s;ìÓï+‹DM �óÊ¢Ò•nÿÌ}ö�¹±áJekÖíSàûÎÅø�¹Å376] •ÞW‰Ñ#°á¥mà�&¨kÿg®}½ïC4ãÌí°Oï+‹Ä‡è˜ãðÒ?G£ êÚÿ™k_ïûÍ8s¿�3“BÚ3þf]b î!Ø�åoR½òê3“BÚ3KT¯¼b;ìÓ/˜¡Vï&–>ØhÂéž¹W­ô¾²HÈØÑ¿&�ápæ^ãÞÒE8úÿgn‡µºYY$–>ØhÂé2GÚ3×¾Þ7GÀze‘ø=s¯"~¯ssÍïWÀ™ÛaŸ~Ñþ¸iêÛÔêÝÄÒ~B#Çò*Mâ̵¯÷ÍßK\Y$Ú¦19:¿—Ä—?Mâ̵¯÷}ˆf¬,¢Gàh4A]û?s¿�3“B™ ³.½ŠåoR}Õg&…„3“B™©ü-@ªssÍïWÀ™ÛaŸ®µæ¾²H|ˆ� /m'~¯sÕ™k_ïûÍ8s;¬ÕûÊ"±ôÁ‡—þ™#í™ëU ®ßûÊ"±ôAÈû³®ñ8˜ãðÒÿ™k_ï Y˜±²H|ˆ�¹æ÷+àÌí°O¿hÜ4õmjõnbéƒ ��Åȱ¼J“‡8sÛ_­¼�ªjÍn¢ r6¼´ ü̵¯÷Íð½\Y$Ú¦19:s^ú§ÉCœ¹öõ¾ÑŒ3÷û83)dyfÂ߬ ÁkäEù[€TÕê3“B–g&…,ÏLåoRUyÉ‹{¯¹ÈUÕ!9\}fRÈòÌUYT¬}½oŽ€õÊ"ñ!zæ^Eü^ç*æšß¯€3·Ã>]ëW~_Y$>D�À†—¶�¿×¹Š£Ñuíÿ̵¯÷}ˆfœ¹ßÇ™I!Ë3Sù[€TU^ÒZ=Æ3“B–<³DUUªØku³²H,}°!Є‡SeŽ´gn‡}ºªj¥2ªÖì&š w`ÃKÛÀÏ\ûzß ßË•E¢m“£Ó¶yäiòg®}½ïC4ce‘ø=^ÚÎÑh‚ºöæzÕ‚ë÷¾²H,}0Çá¥ÿ3×¾Þ÷!††•EâCôì-4Mxø™û}œ™²>3•¿HUå%c<3)d}f‰ªZiÅvاkm¥÷•EâCôlxi8G£ êÚÿ™k_ïûÍ8síë}bhXY$>D�À‡—þÏÜïã̤�õ™ ³.¯?/ÊߤªT}fRÈṳ́�õ™©ü-@ªJ´V÷3“BÖg–¨*©kòX%ݬ,íÝíMæšØBÐC0Dsæ^ãÆ[ºGÿ7ñ:Ð sMÑtúÿퟹÖêfe‘ˆÁ`ÃON•9Òž¹^µàú½¯,KlÌqxéŸJg®}½¯…,V‰öuô7œ�ög]ãqœ¹±áJekÖíSàûÎÅø�¹Å376]«Uµòvf7ѹ^Ú~æÚ×ûfø^®,mÓ˜�¶EÈ#·H“‡à™k_ïûÍXY$>D�À†—¶�s4š ®ýŸ¹öé}e‘Xú d�ýY×xg®}½ïC4ce‘ø=G£ êÚÿ™û}œ™ÒÏLåoRUâ%ý̤�~f‰ª’RÅÚ×ûZÈbe‘h_·Aà Y`Ö5Ç™®T&ñ·¦aÝ>¾ïÌQŒØ‘[]ë•ÞW‰Ñ#ðá¥mà�&¨kÿgríë}¢+‹3÷û83)$왩ü-@ª�—|µþêg&…„3KTŸRÅvا›•Ebéƒ �&<œê™kqÕP÷•E¢&ƒÆùê3÷7ÞÒE8úÿ»‰×�™kÆ6túÿퟹöéÚJî+‹Ä‡èØðÒ6pŽFÔµÿ3×¾Þ÷!šqæ~g&…„3Sù[€T/ ®ßû™I!áÌÕWiÅvا›•Ebéƒ�&<œê™kqUõ¾²HÔbÐ8ÁÏÜkÜxKáèÿï&^d®ÛÐéÿ·ævاەEbéƒ �&<œJg®ÅU•î+‹DM �óÞÏÜkÜxKáèÿï&^d®ÛÐéÿ·ævاkÝÜW‰Ñ#°á¥mà�&¨kÿg®}½ïC4ãÌý>ÎL g&üͺ|`C„±¼( �ª©>3)$œ™Êߤjxɧÿ3“B™%ªF­Øût³²H,}°!Є‡S=s-n¨P÷•E¢&ƒÆyãÝà÷ò̽Æ�·tŽþÿnâu Aæš± �þûgn‡}úEû㦩oS«wKl„,FŽ%MâÌ}V+ U+•1»‰/5OÜdgnû«je¡jeavM�;°á¥màg®}½oßË•E¢m“£ó{™ÅðO“‡8síë}¢+‹Ä‡èhÂÃ9MP×þÏÜïã̤�vÏLåoR5¼äÓã™I!í™%ªF©b;ìÓÍÊ"±ôÁ†@Nõ̵¸¡BÝW‰š@ ç�wƒßË3÷7ÞÒE8úÿ»‰×�™kÆ6túÿퟹöéí�›¦¾M­ÞM,}°á'd1r,iògî‹°ZY¨Z©ŒÙM|¨yâ&ó8sÛ_UÕjUYhÍn¢ r6¼´ ü̵¯÷}ˆf¬,¢Gàh4A]û?s½jÁõ{_Y$–>˜ãðÒ?s佟¹öõ¾ö~³Õ+‹Äº¿’­²ÿº·Ð¬Ó°3×|1|ævا÷•EâCôÌqx韣Ñuíÿ̵¯÷}ˆfœ¹ßÇ™I!황ü-@ª†O¿¸÷ê�‹\uT‡\äðmP}fRH{f‰ª©´b;ìÓÍÊ"±ôÁ†@Nõ̵¸¡BÝW‰š@ ç�wƒßË3÷7ÞÒE8úÿ»‰×�™kÆ6túÿퟹÖève‘ˆÁ`C —R™•EâoMú} |ß™£?°#·xæÆ†gnlxævا«ÚûÊ"ñ!z6¼´ œ£Ñuíÿ̵¯÷}ˆfœ¹öé}e‘ø=! äh4A]û?síë}¢gî÷qfRH?3Ù×mÐßpBØŸu�ÇqfRH?ÓB‹�¸/øÊ"Q¼ÊÎï¥8s1÷5öÌí°àúŃﵭÞM,}ð|~¯iãøgnŽvÁW‰€J¼x½·Ð¬ÛgŽöÑVŸ¹9Ú?s_„}+‹DÛý}Ú÷øÌÆî½ëà+‹ÄÒ! ìϺÆã`ý›†6øŸ½Ù«gn‡}z_Y$Ú»Û›¬Ûg%4y°Uö_÷úÌ}VÕJåÌ™ÛþÞÏÜë¿·t Y(­,¯ 2׌�­²ÿº·Ðgn‡}z_Y$Ú»Û›¼¬ìl•ý×½…>sÛ_­*•3gî‹°÷3×b_© yæ¾ûÎÜë¿·t Y(­,¯ 2׌�­²ÿº·ÐgZÈB­ØkõÿÆÊ"1GÈö ç±túÿퟹöõ¾þûgnUûûV‰¶ûû¼å¿±î¯]ká¾²H|ˆ� /mçh4A]û?síë}¢g®}½ïC +‹Ä‡è˜ãðÒÿ™û}œ™ÎLø›u!ø}ð¢ü-@ªWª>3)$œ™ÎLåoR½/úÎL g–¨^I­Øût­½òûÊ"ñ!z6¼´ œ£Ñuíÿ̵¯÷}ˆfœ¹ßÇ™I!áÌTþ Õ+ñ’Öž™Î,Q½’RÅvX«›•Ebéƒ �&<œ*s¤=s;ìÓUU+o¯ÙM4AîÀ†—¶�Ÿ¹öõ¾¾—+‹DÛ4&G§mòÈ-Òä!Î\ûz߇hÆÊ"ñ!z6¼´ œ£ÑuíÿÌý>ÎL g&üͺübð¢ü-@ª·_}fRH8³Dõö+VÞ.1Çá¥j^˜-ö0�S¢­äræÊÛ%ªÚ{ˆZÉ=DI{QªäR©öRi%÷3·Ã>½¯,íÝíMÖí3Çʯg`å×?s_„UU­,TY˜3·ý½ §s¤9síë}s¬W‰Ñ#0Gð*â÷:W1×|1|ævا_´?nšú6µz7±ôÁ†Ÿ�Åȱ¤ÉãÌ}V+ U+•1»‰/5OÜdgnû«je¡ÊBkvM�;°á¥màg®}½ïC4ce‘ø=óàh4A]û?s½jÁõ{_Y$–>YàUæ8¼ôæÚ×ûBf¬,¢G d�ýY×xÌqx韹æ÷+àÌý>ÎL g¦ò·©^òÞucCÀCî=Dà™I!áÌU£|Åvا›•Ebéƒ �&<œê™kqU¥ûÊ"QˆAã¼÷3÷7ÞÒE8úÿ»‰×�™kÆ6túÿퟹöéve‘Xú`C  §Ò™kqUåï+‹DM �ÓØð�{xæ^ãF«‹pôÿw¯ 2׌mèôÿÛ?s;ìÓµ÷•EâCôÄïu®¢ çh4A]û?síë}¢+‹3·Ã>ý¢ýqÓÔ·©Õ»‰¥6ü„,FŽ%Mgî‹°Z©Œª•…ÙMÔÎL iÏLø›u!øxQþ U[}fRH{fRH{f* �ªå%ŸþÏL iÏ,QµjÅvا›•Ebéƒ �&<œê™kqC…º¯,5�4Îï¿—gî5n¼¥‹pôÿw¯ 2׌mèôÿÛ?s;ìÓU­TÎì&š w`ÃKÛÀÏ\ûzß,¾—+‹DÛ4&Gç÷’&qæÚ×û>D3V‰Ñ#p4š ®ýŸ¹ßÇ™I!황ü-@ª–—|z¤,ÎL iÏ,QµJÛaŸnV‰¥6šðpªg®Å ê¾²HÔbÐ8o¼ü^ž¹×¸ñ–.ÂÑÿßM¼4È\3¶¡ÓÿoÿÌí°O×ÚÛ¿¯,¢G`ÃKÛÀÏ\ûz߇hÆÊâÌõª×ï}e‘Xú`ŽÃKÿÌ‘÷~æÚ×ûÚûÍV¯,ëþJ¾f«ì¿î-4ëß4ìgn‡}z_Y$>D�À‡—þ9MP×þÏ\ûz߇hÆ™û}œ™öÌTþ UËK>ýâÞ«C.rÕmPr‘÷Aõ™I!áÌU[iÅvا›•Ebéƒ �&<œê™kqC…º¯,5�4Îï¿—gî5n¼¥‹pôÿÏÜkt»²HÄ`°!Є‡S‰9Òœ¹öõ¾9Ö+‹Ä‡è˜#xñ{�«˜k~¿ÎÜûôJnÿ¾²H|ˆ� /mçh4A]û?síë}¢g®W-¸~ï+‹ÄÒ! dŽÃKÿÌ‘÷~æÚ×ûBfË3÷7ÞÒE8úÿ»‰×�™kÆ6túÿퟹÖêfe‘ˆÁ`C  §ÊiÏÜût­Ã}e‘ø=ñ{�«hÂÃÏ\ûz߇hÆ™ÛaŸ®Uµ²PeavM�;°á¥màg®}½o†ïåÊ"Ñ6�ÉÑù½¤Éã̵¯÷}ˆf¬,¢G`ÃKÛÀÏÜïã̤�pf* �*ð’1Vëï̤�pf‰*¼Ší°O·+‹ÄÒMx8•Î\‹*Ô}e‘¨ Ä qÞx7ø½D3Î\ûz߇V‰Ñ#0Çá¥ÿ3÷û83)$œ™Êߤ ¼=ó"ÆjÝØð�{’«BrøÌ¤�pf‰*˜Ší°O·+‹ÄÒMx8•ÎÜkt»²HÄ`0Gš3×⪡î+‹DM c4ÎWŸ¹×¸·tŽþÿnâu Aæšy0 �þûgî‹°ªjV‰ÃÅ`Ý>ï=$W…äð™kqU­9s¯ÿÞÒKTÁ¨»‰×�9Ç÷7xï!¹*$‡)ßÃ{øÌí°O×:ÜW‰Ñ#¿×¹Š&<ü̵¯÷}ˆfœ¹öéZU+•QU³›h‚Ü� /m?síë}ó÷W‰¶iLŽÎï%ñåO“‡8s¯ÿ–¨‚Q:³DŒZ±öõ¾9Ö+‹Ä‡è˜#xñ{�«˜k~¿ÎÜût%¥ûÊ"ƒÁ†—¶�3G¾3KTÁ(U¬}½ïC4ce‘ø=^Ú~æÚ×û>Äа²H|ˆ�9/ýŸ¹ßÇ™I!ë3Sù[€T�—üúŽW‡\äªÛ :ä"‡oƒê3“BÖg–¨‚­Øût³²H¡ÒðE =s;¬Ñí™Ûa­þÎ\ûzßë•EâCôÌ¼Šø½ÎUÌ5¿_gn‡}ºVÕÊBUµf7ѹ^Ú~æÚ×ûfø^®,mÓ˜�ßKš<Ä™k_ïûÍXY$>D�À†—¶�Ÿ¹^µàú½¯,KÌqxéŸ9òÞÏ\ûz_ÈÂŒ•EâCô„,�&<œ¹æ÷+àÌý>ÎL YŸ™Êߤ ¼ä×ã™I!ë3KT*¶ÃZݬ,1l4ááT™#í™ÛaŸ®•·SU­ÙM4AîÀ†—¶�Ÿ¹öõ¾¾—+‹DÛ4&Gç÷’&qæÚ×û>D3V‰Ñ#°á¥mà�&¨kÿg®W-¸~ï+‹ÄÒs^úg޼÷3×¾Þ×Þo¶ze‘X÷W²Uö_÷šõoö3·Ã>½¯,¢G`ŽÃKÿ�&¨kÿg®}½ïC4ãÌý>ÎL YŸ™Êߤ ¼ä×ÿ™I!ë3¬,¢G`Ì5¿_gî÷qfRH83•¿HÕò’÷’«BrXÿxfRH8³DÕ*_±öéfe‘Xú`C  §Ê3÷EXU5+‹DM �óÞCrUHŸ¹WÕš3÷7ÞÒE8úÿ»‰×�™kÆ6túÿퟹöéve‘Xú`C  §Ò™û"¬ªš•Eb̃Ɔ€‡D�ÀÁ«ˆßë\Å\óûpævاk¥2ªV«šÝDälxiø™k_—¸²H´Mcrt~/‰/š<Ä™k_ïûÍ8s¿�3“B™ ³.;ð¢ü-@ªP}fRH83)$œ™Êߤ ¼äÓ/Œ­¹¯>3)$œY¢ jÅvا›•Ebéƒ �&<œê™kqC…º¯,5�4Îï¿—gî5n¼¥‹pôÿw¯ 2׌mèôÿÛ?s;ìÓµRU«jÍn¢ r6¼´ ü̵¯÷ÍßK\Y$Ú¦19:¿—4yˆ3×¾Þ÷!š±²H|ˆ� /mçh4A]û?s¿�3“B™©ü-@ªÀK>=‡ü3“B™%ª T±öéfe‘Xú`C  §zæZÜP¡î+‹DM �óÆ»Áïå™{�oé"ýÿÝÄë@ƒÌ5c:ýÿöÏÜût­Ã}e‘ø=ñ{�«hÂÃ9MP×þÏ\ûz߇hÆÊâÌí°OתZU«ÊÂì&š w`ÃKÛÀÏ\ûzß ßË•E¢m“£ó{I“Ç™k_ïûÍXY$>D�À†—¶�s4š ®ýŸ¹ßÇ™I!aÏLåoR^òé1VŸ™Î,Q…J+¶Ã>ݬ,Kl4ááTÏ\‹*Ô}e‘¨ Ä qÞx7ø½D�À‡—þÏÜïã̤�°g¦ò·©/yaluÈxµþÎL g–¨‚òÛaŸnW‰¥6šðp*�¹7T¨ûÊ"QˆAã¼ñnð{yæ^ãÆ[ºGÿ7ñ:Ð sÍØ†Nÿ¿ý3·ÃZݬ,1l4ááT™#í™ÛaŸ®•·WÕšÝDälxiø™k_—¸²H´Mcrt~/‰/š<Ä™k_ïûÍXY$>D�À†—¶�s4š ®ýŸ¹ßÇ™I!황ü-@ªKTÁ+¶Ã>]«jåí5»‰&ÈØðÒ6ð3×¾Þ7‹ïåÊ"Ñ6�ÉÑ)Zð­ó{I“‡8s;¬ÕÍ™k_ï›á{¹²H´Mcrt‚‹Áï%Mâ̵¯÷}ˆf¬,¢G`ÃKÛÀÏÜïã̤�~f* �*ð’õ{ÉU!9|fRH?³DêŠí°O7+‹ÄÒMx8Õ3×⪕ÞW‰š@ §À3÷7ÞÒE8úÿ»‰×�™kÆ6túÿퟹöéve‘Xú`C  §Ò™Ûa�nW‰ æHs澫ªfe‘¨ Ä qÞ{H® Éá3×âªZsæ^ãÆ[ºGÿ7ñ:Ð sÍØ†Nÿ¿ý3×¾Þ7GÀze‘ø=s¯"~¯ssÍïWÀ™ÛaŸ®­¯ü¾²H|ˆ� /mçh4A]û?síë}¢gî÷qfRH{f*}°¡ÿ�øò§ ?3�»SsU\eÌÆtg«ù"ú8ÚM�4áág&‘˘ëì‚ãîlèÿE`ù[€¼Ð^zõUŽ{g&˜ß‚‘£Ó¹ƒà£ gè{NÍUq•1ÓýÌ”ÇÝYþ [͆þ_ª|úÞ„³_WÏL1Ó�YpÜ�åo²ÕlèÿE ÒÕ3Ó¸gAÛ4ØDNÎ,h_ïwgCÿ/™ _þ4áá|˜áÀÑ>ükrt†¾g{?3áoօȱ¤ÌoÁÈÑyQâUYTs4Â9Ú™©ôèÿ ç¸;Ÿ®1Ý�¶�_=3�™Z¤WåQqf¢TîѶ8^Ž‚ãîlèÿE  '¾üÏL iÏl€fT,â¾Æ®,Å«ì4öÌí°O¿h`†Z½›Xú *úhÂÃÏÜaµµö¾²HÔ¨� ý¿4áágî‹°ÚZ{_Y$jž¸É†þ_–¿Ș�é~æþoßJeÅ=׃9ŽÆÞBû§ò4yˆ3÷ûÎÜÿí;sÿ·ïÌmÍÊ"Ѷ(Æì ml"gCÿ/™+o—Xþ Mx8sä;s±á»²HüŽýY§±gî÷qfRHsf*=úÙ#x¿—Y ÿÄïu®¢ ?3µH�ã‡+ÎL”ÊÚÇËQ°¡ÿ�£ÝôxfÂïu®b|ˆÁ�£ñ ´ œ&¨kÿÌõ™©¡ÿ�Y0W±}æðÕ3“Bš3s¬+Ö䱕êfe‘˜ú˜«Ø>sXÙ3÷ûØ[+‹Ä؈ßë\Å\3¶¡óû~D�ÀÁ«ˆßë\ÅÑh‚ºöævاWzû÷3×¾Þ÷!š±²H|ˆ� /m?síë}! 3V‰Ñ#²@šðpæšß¯€3׫\¿÷•Ebéƒ9/ý3GÞû™k_ïkï7[½²H¬û+Ù*û¯{ Íú7 û™ÛaŸÞW‰Ñ#0Ç᥎FÔµÿ3×¾Þ÷!šqæ~g&…´g¦ò·©/ilxȽ‡ ÉU!9¬ÇxfRH{f‰*Ü~Åvا›•Ebéƒ �&<œê™kqÕP÷•E¢&ƒ± ç«ù½$¾üÏÜkÜ[ºGÿ7ñ:Ð sÍ<˜…Nÿ¿ý3·ÃZݬ,Kl4ááT™#í™k_ï›#`½²H|ˆ�9‚W¿×¹Š¹æ÷+àÌí°O×JåT³›h‚Ü� /m?síë}ó÷W‰¶iLŽÎï%ñåO“‡8síë}¢+‹Ä‡èØðÒ6ð3׫\¿÷•Ebéƒ9/ý3GÞû™k_ïûCÃÊ"ñ!zæ8¼ôæ~g&…´g¦ò·©/ilxȽ‡ ÉU!9¬_ÄX}fRH{f‰*„ªØût³²H,}°!Є‡S=s;¬ÕÍÊ"ƒÁiÏ\‹«†º¯,5�ŒmÐ8_}æ^ãÞÒE8úÿ»‰×�™kæÁ,túÿퟹ/ªªYY$ƒuû¼÷�\’Ãg®ÅUµfe‘8¾¿Á{ÉU!9LáøþÞÃgîõß[z‰*„Rw¯ 2×¼÷�\’Ãgn‡}ºÖá¾²H|ˆ�ø½ÎU4áág®}½ïC4ãÌí°OתZ­ªUU³›h‚Ü� /m?síë}ó÷W‰¶iLŽÎï%ñåO“‡8s¯ÿ–¨B(¥3KT!”Z±öõ¾9Ö+‹Ä‡è˜#xñ{�«˜k~¿ÎÜût¥w_Y$>D�À†—¶�s4š ®ýŸY¢ ¡”*Ö¾Þ÷!šqæzÕ‚ë÷¾²H,}0Çá¥æÈ{?síë}bhXY$>D�À‡—þÏÜïã̤�pf* �*ð’÷^r‘«nƒê�‹¾ ªõfRH8³D*©Xûzßë•EâCôÌ¼Šø½ÎUÌ5¿_gn‡}ºV•…V*cvM�;°á¥màg®}½oßË•E¢m“£ó{I“‡8síë}¢+‹Ä‡èØðÒ6pŽFÔµÿ3×¾Þ²0ce‘ø=G£ êÚ?sÍïWÀ™û}œ™ÎLåoR^2‡|ý�™Î,Q…+¯Øût»²H,}°!Є‡Sé̵¸¡BÝW‰š@ ç�wƒßñ:Ð sÍØÆ™ÛaŸ®­á¾²HÄ`¿×¹Š&<œuûÌaæÈwfŽ€µZ±öõ¾ÑŒ•EâCô4áá�O mà4A]û?s¿�3“Bš3SéÑÿNÈû³®ñ8hÂÃÏL�pÆv•9òÞY·OÈû³®ñ8ÎL†¶ÅñrlèÿE  ?3)¤9²0£bM[©nV‰Y°¡ÿ�¹Ší3‡•=s¿�½µ²HÌ5c:c#d�WiÂÃùý 8síë}íýf«W‰öîö&c»Êyï¬Ûg%4y°Uö_÷úÌí°Oï+‹ÄÒûUq•&<œ9òY{õ̵¯÷}ˆf¬,_>D�ÀÑø„ÚNÔµÿ3÷û83)¤93Ù»Û›l•ý×½…fý›†ýÌTùõÀéÿ·Ï!Û7˜kŠvfRHs¦½ßluÅb îkìÊ"Q¼ÊNcÏÜûôûÊ"±ôÁï%m‹ãå˜cIlBdÓ�­²ÿº·Ðgî‹°oe‘˜óà-ÿMÙ3÷úï-ÝÞo¶ZÝMÌ5EÓÿuo¡ÏÜí¾•Ebè'˜/UeyQ×Õgîõß[º½ßlµº›˜kЦ36¶ÊþëÞBŸ¹Öê7*ßXY$¶q÷: gŽ�íΕ_üýÿöÏ\ûz_ÿ¿ý3íýf«ÕŠÅ†kìÊ"ñ;ög�Æž¹ßÇ™I!ß™)GáP´à[ç÷òÌÔ"=Ž®83Q*gi[/GÁ†þ_šðð3¥r�¶Åñr´ œ&<œÆs,i‚ÜÇ™©EzUg&JåïOðþ€ãîü^f1ü³òë�3Gá8œ™(•�& VWye¨tfRÈwfßËŠÅ@Üר•E¢x•�ßË3·Ãý­,Å«ì´ œÆs,i‚Üs¤9s;ìÓíÊ"±ôÁ†þ_šðpÖ¿ihÏÜaµòvª,Ìn¢æ‰›ü^f1ü³òë�Ÿ¹í¯YY$Ú¦19:Cçq§mà4žcIä>Î\l¸Æ®,¿cÖù½ΕO–îw_¼ÇÓ\ïõµ»Æ©ièUr£�ÍlЩˆÛ²ìá\ïõµ»ÆRPÓÐ\ïõ/o"æz¯¯Ý5‰Ô4—¿Jn4°™ :ùˆ6Ðe ,œë½¾v×|¤ ¦¹|®÷úÚ=¤@\jšË_%7ØÌÉ�]Àâ¶,ùÞë_ÞPéô¹~XÿˆF{¹æ_%7 ¢æžö‘|Ú,<”NA8×ëÙh/×ü«äF…vj!J§ œë½þå�–ê°2i^&V"íöˆ�f®÷úZª5÷¡i.ÕM@µë5wæÄð w±ÎõÃd®¹”®[s©À„ÞÆº<ƒÖw�¹ž�¡;Š{Y®| —Áó1ÄmYÚ˜KÅ<´¬’äÀó‰©C6ä2Ääsò °KÈeð| tê\êøaG rb ò9ùØ%ä2+x>¹„S—¹Toc]ž�!ÄmYÚh`Ûó1äŽnÝÓäŽ|Ò°¨±:—"�Qº`G/œKåI\¹ÃNÚíVqß‘Pét­�ª¹+BFks©7¹‚îùØÝ{ýË›îéÈ\ŸOzíåšÕ=¹+¢{:R¤Èp®÷ú—7Úã‡ÑÌõ^_ëù°#šæòW-«$†³G”ž��í|ÄF8×{}­çS×4—¿Š-Èçä`—Hív¾ƒœÈáùX8×{}k´—kþU`BºhPá\ïõãÔDÌõ^Ÿѹ>±<þ¦W¾w”{@.ƒ‹�(´¬䃘‡ÀóÑ„s½××?숦¹üUË*‰áX±Àó1°��Øçz¯O�örÍ¿ L —!¶ Ÿ“O€]B.ñb�çcá\ŸØb#ú¯ìTììâõœÈáù´E¸Øˆ6�؈jæzþøÃi‚Îçz¯O Ïú¿âYçz¯¯µíù˜¦¡¹‚î‘wïõ©±˜ Ì£ ÒEƒ’Ø@>Hívž�Íõ‰}!§PWÿW1¥!rG¤}dlGÇ\ßS9×§TÎõÃäç_�b˜´ãà^– '…sÍõ^ÿò†J§ ¿âYÑM`§6˜ë»ÉG6ÚË5s}Oåßô*Ѽf®&Ó«jŒ†„sÍ¥tÝê\*Ÿ,™Ý®,KlèÿE  gý›†öÌ}V+o¯ªšÝDÍ7ù½Ìbø'¾üYùõÀÏÜßí[©L¢¸çzp4Úö¿ÛÁï%ñåOl"�Üâ™û»}gîïö�¹¿Ûwæ¶¿fe‘h›Æäè �Ç�¶�ÓxŽ%M�û8s±á»²HüŽýY§±gî÷qfRH{fzˆ�¡ÛŽÆ'„kLw mà4A]û?3)¤=ó!††Ší°Oï+‹Ä‡èØ[hšðð3×¾Þ÷!šqævاßW‰Ñ#ðžË;Mxø™k_ïûÍ8s¿�3“BÚ3ÓCô4áá�Oטî@ÛÀi‚ºöfRH{æC4£b1÷½÷•E¢x•�ßË,†qæb î ~æzÕ¾Zõ ®,ū쌚&<œ9òÝ8s;ì½ëOX0¢z7Qø ¶‡ŽFüïqð}g®¼]bŽ|Bm§ êúÌí°O¿xÂBlÕ»‰¥Þˆí*Mx¸àhø�3·ÃºþV‰£ÑÏÜ ºve‘h»¿O8sÀÞ»¾²H|�ØrþÏÜûô‹{¯Þ„î7ùŸ¶ÁÕ3·ý}gîõß[úC£j7µ›WÏb#œë½~ÜPŠ{æèŠ|Õ3ǰKPïiWÄmYÚPp#.ÃØ;Šrˆ�h8W>Y<òî½¾örMCÿ*¹Ñõžv…lœÍz8×ç“þò¹¾òçóÉâ‘s}µôô¯@wE@Wd8×{}í嚆þ•؈æCb ÞÓ®á\ïõµÝÓMC¯º§#¸+º"ùÞë_Þh©+“æU`ªuXïVÚ°“ i·Gl4s½××:Õš»¦¹ükùÀs—|P­ÃzGÍ�9ñæú· £p®÷úÔtFÉæz¯¯µ1â¶Ô4ô*Ÿ,��³acìÎõ^ÿò†J§ ÏõÃúëÜh/×¼ÖMà¹K>¨Öa½£æžö‘|Ú,<”NA8×\?LæšK麕s©ÀvñzNäð|,î„ ä2x>†rì(ä2 £jZ*@s©¾Û‘ evÓ€NkY��lx>q[‚N'nËq+`6Ê=¢ù࢑wÛçRé²T ƒ|Ÿrî¯�Š´— É'@ocÏÇ¥QÀFG>²çR.6¢=œ+ð|îÞëÇ�ÇeçÌ¥dƒRÚÑè®$Û½çØ V,ƒàb#Ú ÑT«UP)6@(òœf.�‹eÐÝ›îí|ÕM@=WƒÇÅ2÷.;¨Væ“OÏ'nËf®¿éU-lp{>q[¢ZÙáqÙ9Eò¸XÝßá\ïõ/o<Ÿ¸-_•{€z·hì6¹Þëçâ†�·å«rxî’OÎõ^_{ü°#šæòWlç# Á±bAoc]ž�…s½×¯MÄ«ZDJ§ ‡s©ŠÒ)èwˆ¸ÃMßMó p ë&ˆyp± çRDÞá¦/=3f1º·[,œK=Pð7}7A.±¹l”¾ï…s©t¾ÃMßMóàùdoø>´¹Äæ²Qú¾‡Üqш–­kÔ\êq+rm· ÙìØ 1z!lŒ=¹?­ßÍx>‘wŸÈýG~˜€�.”ÄF8×{ýÔÐ+Ö òA çúľ�S¨+‰Ïõüñœ&ð$Ιëû4æzþxN¸�:×{}j´ÝOtÐÌõ‰}zÕÛX—çcˆÒ(`CÇ\ïõ©I¯†1§dH Jb#œëùì9Mà½�çú8Ëlê¿¢a¸gØ\6Jß÷ò tÌõüñ‡Ó~Zųbç!]–  Üo.Cºhôp.uvˆºÑwÔÝÃ�.Kò ¹>±¿ä_ Å:æz>{Nø%s}bïå\ÏÏi?­¿ªm”ÁËÎõ‰ýi}®ç�ç4�ŸÖ_Ñ©0Iá^ÙlŸ�W6¿Æ[›bãÂ5¦‡¯ž¹ˆû»²H¯²ó{)®ž¹ˆû‚Ÿ¹ˆûÞû™Ûa­~CÜXY$æÙ¾áá8^ýÿöÏ\ûz_ÿ¿ý3·ÃÞ»~ñ„#ªÏÜ ®ke¡ü�ÉYúTž¶q$K‚Ú«gnUûû΄¨½RÅZÌ»ÉÞÝÞd®ù„° hÂÃéa�9ZÞ¯ž¹×ã-¢ªÝÛ kp„¯’¯¦ÿß¾NÑxˆAq3ãÕ37G»°)GKÛ‚8®ž¹àv}¸ý®ñ88Úx�¯÷Úáê™{ý7ÞÒ!j¯´©·†WÏ<¢ª­ØûtØM¥šðp¡Sy¶ÏîB\=s;ìÅb«Öß&Í»éŒ ÅÕ3¹ØpÁÏ\l¸Æ®,¿cÖù½WÏÜïãÌ3×Þ_Ž{ãV%Z¸±²H�­æ­J´Véê­J´Wϼ=Hq{+‹Ä‡èØ[hšðð3×¾Þ÷!šqævاßW‰Ñ#ðžË;MxøvÿnZ80D.Z80L ßÿ öÿºÿ³ÿ«ÿ¾ÿ±ÿõÿ°ÿ­ÿòÿ¬ÿ»ÿ¼ÿ¶ÿÄÿ¯ÿ·ÿÓÿªÿ¹ÿ ½ÿ¸ÿÑÿ"!$#oÿ%'&(²ÿ)üÿÖÿ×ÿ¦ÿµÿ¥ÿ*Åÿ+,§ÿ-ØÿÏÿÎÿ/.©ÿ0¨ÿ12ƒÿ´ÿÍÿÒÿ3Àÿ45Õÿ76Âÿ8Ëÿ®ÿ9ÌÿÊÿ:Çÿ;Ðÿ<Ôÿ=Éÿ>ûÿÆÿ@?ÈÿAúÿBCÜÿFD¿ÿEGÁÿøÿ¡ÿIHJKåÿÝÿ¢ÿžÿÚÿ¤ÿÿþÞÿ‡ÿ…ÿÃÿ˜ÿñÿšÿðÜe.H·/äÜ/¢†œûEïqŸûéF…¯ØØµM†|X+ v+¬•p.Ï]æRÜo×\*0é x>†=ÐÛX—çcØ%ÄŠ%´„ÞÆº<Cî¨æ9šÅê\*æáÞEb\6 ;òA÷4!вJb\4òn;ØÎGltÈF5ò¹Ô½,ä2ô6ÖåùX8—Ê%ä2ô6Öåùr¡ÈsÈe ¹c˜´ãXm@§‚J§ kíT ŒÖæRæÝpR8—â~Ësž�ݽקFkÛó1Í\¿ÇÓ\ÏÏiÏ'2âÕÙvñzNä°S±Kx>Î¥ØÅë9‘ÃNÅ.áùXˆÀt¶\6¹>‘ûç“ÅçúDîx>sžOdÄÝ'rÿ|²tÿWuÃw�9<C>Y2yæ�ä}¹>‘ûÝó±¹~˜üM¯îe\ŸØWó¹ž?žÓ~ZŸëû·æzþxN¸îí–¹>±/T…s=<§ ¼GÓ™ëéÔ×IÄõ¯Òe©Ê=Ј)°p®ç�?œ&ðt�Wü¶ Õ’AºhPá\ïõSS˜ ÿU@#¦ÀBD©€!ÃÆØ#œë¹¿�±Ç\Ïøi}®¹×½Ýr÷q–�hê+F]@(T…:æzþøÃiO×xÅ³Þ gƒîíëá\s}œå#›ú¯to·XG7Ñ1×óÇsšÍŽî­¼:[!J¼Ø°™èÞn±p®Ö?²©ÿ*ùîÝÛ-Îõüñ�§k̵Ùѽ•»÷ jbEbð¸ìà¤&ðt�Wgƒ ãÊ»íH Jb#œë«¥¿ü•ï]$`øòn;ÒE#œë½>5ÚË5s}>é/ŸëûÎ(Ù\ÏÏirߺ·òjçúÄ¾ðÆ­¹ž?žÓä¾uoe®Oì ›Â¹ž?þpšÀÓ5^��`ïÎ¥Ürlfº·[ Ѷ b–¬ZEÌCg”¬AÚÑ(5غ·[,œ+÷­{+wßM>²©ÿ*wlfº·[,D7Aœ%œK•ä¹F Ù<]#œ+ðt�»÷ m.Ö4i®ÀSdÄÝ{5 EgAdSQü�ÃiO‘ܼҽÝb]Ç\Ÿ ïßB 5�§HnæúÄP¨S)EÁ8© ð|"ÿUµ4,jG�v{$œk®À7WéwßM¾`SÿU7ÁÙ{Gg çú8ËG4õ_ªBûbžŽ¹ž?þpšÀOë¯v�p®ï&¯sSÿUL5D7�ì­Ë÷ g çzþøÀOësÍ¥Ê=’�àùìTäEžƒjbI¬†sžÄ9wïõµ—kšô¯¢TÀÐó Üàùîe¹�Äuq¹>Ÿô—ÿ+¹lr‡�ÝÆÞQ”{@®ÜùTIî�k´��ÀíÔp®ÀíÔ»÷ j\lDQ^¡ÍÅš†P^¡½\Óktàb#Š|¹>Ÿô—Ïõ^_{¹¦ ÄFô•\Ñ&QtÓ=DÏÁÉe¶>×߸¥ìâõœÈáùìÔp®�³¼ÎMýW²7|Ÿ@Ç\?Lžó¯Îçz¯ŸšB/üW<ëá\ŸÈýmŒ=æúa2—êͺÒö}¹ïÑtî>Îò‘MýWº·[¬ë˜ëùã§ <]ãÏz8×w“�hê¿2ï†n‚BUˆ8K8×óÇž®1×\ª·±.ÏÇ�.”ÄF8Wà½�ï>Îò›ú¯6—�Ò÷=s=üá4�÷ȈW<ë u£ï¨b£ã²a¸wÙA´Ý: ‹(D>]Œ*v‰B†s¹Ý Þ}"÷/Þs½×·F·¿é¢Tâì»DÌë÷ñ|l®÷úÔÔ¿éèðóÄ:dƒ�|d®§SŸæzþxNã]üèö¯Ào£ ¹ÄÙ2—wñy÷^Ÿm.ÖüM¯˜ æ‰Íõ¬í×Wû›^� ë6¸ u®Oäþž»Äò7½ù"óÄæz¶ÙW›ëóIŸ‹ÿ¦WÈ' °��Ø€l+Ä<±¹>Ÿô—ÿM¯�OH{ ë!¨ÖbXÎõÕÒÛßô ÕÒ°¨¹ï{VóÄú}< çújéëßô ÕÒÀÙØ%bžXŸëùã9�wñ£Û¿¿�2ägƒ[)s½×§Æþ¦W`#± ݰäÊž�é˜ëéÔ§¹ž?þpïâ'ò_�ßFr‰³e®¹Þ맦3J6×'rÿâýJ®Ü‘;Ž%ë�/œë¹ÿö—s)»ÏÇB$tÉîHûåÓÑ% çz+• •…(Šj „¢àp÷ñEaÅ ²¡²ªÌ'÷Ë*r‰t¤ˆˆp®÷úqSp®Oäþ»•ôŠ�|ro£3JÖùÞëS£¥Ò)èšWé²T¹„ç. Z‡õŽš{ÚGòi³ð¹>Îò:74×óÇsïâGçWg‡`c'³Îõ^?ntûW<ë!ØÈG :£ds}"÷ß­¤•O£Š]‚jÖ{3×óÇ»Ý"þU÷\â<Ô\–6ì|oÎ5—wñ£ÛÝOoÓ+°‘� 3JÖÑ2ÈFlA>'Ÿ»„X±Ìõù¤·¹ÞëÇ�Íõ^?5�Q²¹>‘ûïVÒßô »Ö ÒE’£ÖçúDî¿ýÄ%þ¦Wlä#è»ÉàùX8—û‰Œˆ¸{¶Ùçâ¿é†1§dô¹žmöqšëÙf_m®g›ýåsý0™KéºÝ7s©(0$‹öAÚ§o7ä6Æ Sqì$‹z>ÉàÔ6Æ SçRg Hûôí:¼{Ä q6†¹‹�Î¥"~÷¬í¨DQ°¶_ˆŠ‚µýÂås½WP£•,64(Š=@( þ§‰Šp;âÕÙá\s½WP£Ý¥SÐ5( ¯ð&2ì—‡Þ%탹žN…£(ø‡ÓDE¸ñêìp.uÏpo·^O¡à".Clv�ÈÝ*ÚãÖ;ä²a¸G6Æá\ïÔ8ŠÂ+´^:]ÓÐ\ïqj"¹á^��©PW!Š"‘;v+éùúŽ.»ìôp.¥ëvÿãÜ/¢†œûEàÆ­‚÷‰àö}î§Íõ^qy#Yâ¶DQ$r‡w邹>‘;j^ÏõÅ{€P^¡•,64 ½Jn4 YÜîccìÉ•OÎõq–�lê¿Ò½Ýb]Ç\Ï8Màé¯xÖCäàìaá\?¬DSÿÕ°n‚BUˆ8K8×{}m.Ö4é_±V0Œé¢AIl °qâ¶ çz¯O�‹�è¿*÷ˆ¢·±çcÑ|HöçzþøÀS$7s©Þƺ<CºhPز7|Ÿž�…ˆRC¡ì­Ë÷ acìÎx�Œ¸{gùȦ¾Ò�~íÖkáĆcÉz§ÁCÏ'r9×+þøÃi?­¿Ò½Ýb½ù0ª<ÈÞº|Ÿ œë»ÉëÜÔ¹žÏ>ðÓú\s)¡8œ+ðKîÞ+´¹XÓ$…WPÓ%CQðO‘ÜÌ5—â~»ÿÌ¥òõnÑØm4࢑wÛ!W>AG¿vëT––r†õÖ%Ÿ`.å¹K>AŒÝJ>Ö‘è ‘;ä²n(ˆÞÆc·’�uÈ»¶ÉæRÕzV1¬·.½AtÃpë=œKu“ÚºI‡\ªuX塀§}$Ÿ6 ¥SÐCœ�aAçê&µŸ»gm¿þò¹Þ+.o¨t :Š¢› ¢Ñ^®AQtèÜh/×Ìõl³¿|®&sÍ¥º Õ�nÒ!—�jÖ;jî̉‡aAîb²qy:ݤϥä2xî’O§b r��ËA§B.CîNÅ(�‚¹”lÈh ¹Ä=+†|PæÑ½�uy>r¨Öܺ´e9—Êlì˜bçaÇ}»‰5ˆ[Á=ýì7â2Ü3wØÙmp�| çê&TÇÝ{}-ÕšûÐ4—¿jY%1P­¹�p®÷úÔh»§#šW÷.ô6ö|LÇ\¿ÇÓ\?LþpþÕÙ‚2�.á\ïõµNÅšæòWe]B´¬’œŠÃ¹Þ+¨)È 7( ¯ÐæîT¬ièU7Aé„sý0™k.ÅýÏ¥˜�r�(†¹qÑìVX+!0—â~‹çbåð}÷^Ÿ-£ÞÏÖÌõ‰}Á¹žµýz*_uâ2”NAçúDîÏivÌ߯êÆeÅØ­°V %�QºÐÛØó1M8—¢Êo»€zªqÛùˆ��+wDÛ.ˆ uC>`Ô;"A§¢à\ªoÈEêÝ¢±Û@ÝÖO¡àÞÈbØ\6�¥›— �Ó ž�…s½×¿¼ÑRO5îšW� bê†]"nËÒä"ÁŽùm·Îõ^?N õTÏ~•v{»DÌë`c×6YẼSô6ö|,œë½>5Ú8iæz¯o ý+Ã] žêÙá\ïõkñ¯ª¡POõìp®§Zÿò¦Ú¿ºwE@K=Õ¸kФ¥žêÙšp®÷úZê©Æ]Ó\þªe•Ä@=Õ¸‡s}ñOs½×ׯIÓпJn4@=ճùæz¶ÙSù*0£ÞÑ…¤íˆ�Ò)犊p;âîÙf¸EÁ6CœPl3P‰¢&sÍ¥¸ßh.µ[a­ í#v¤c—ð| q[–6 ž» WÔ�³VœÌê\Š›�LbðÜå^®r…s©\"‘»Uº¥}*$G åè5x>Ö€ßvÁn…µÏÇPšÕp.ÅýFsm?qy÷¬íâ„¢`m¿P EÁÚ~áò¹Þë_Þ°q⶜뽂­ßËÕ4(ŠÞƈÔÉ+¹ =s »„\†ËŠÁoOì¹ n¥„s½WXC( ¯¨Íýþk÷r• ùȆ5Š‘v{Äò‘�εýÄeäÝ{}j´—kæz¯Ÿz˜€v+¬¤‹%±Îõù¤¿üÛùîŽK8×'ö…œB]IüUbQØ©Ø%Êì¦c®ç�ç4ÛO\FBõ™A.¤‹%±Îõ‰½‹�è«Þƺ<ƒØˆæC²‡Ž¹ž?žÓl?qYð•\vPæ“ûe5œëÃ%( þÀá4Ø~ F¼Ê%ÎÅ ä²ƒÝ k%œkû‰Œ¸ûj †¢àpší'. ¾*óÉý²Š\"íöê¾w¹¾ZBEQð§Ù~"#^¥}$ŸÖPæ ùŠÃ¹Þ+js?E"wo`û‰ËÈW¾7 çškû)q÷‰Ü¿x¿Ú­°V —!]4(‰�p®¯–PQü�Ãi¶�#^Qå·] #íöˆ�p®÷ŠÚÜo®íG爻¯–ðöªZµ#H»=Îõüñ‡Ól?qùÊ÷f Ì»¡Ì'÷Ëj8×\ÛO\¼{¯ ÆÅFEáZ6NÜ–š†^íØ³Ø 1x>†¸-Ká\ªl‡\60LÚq:.~Ûlä#H£�—á\ŸÈý½4«s=Û —£(Øf¨†¢`›!Nsý0™k.Åý–æR»Ö ÒE’£Ö!ÄØØldC5®œl.Åý–æÚ­¤»OäþÅûoz…´Û#Èñ\_ù‡ó»•4ד¹÷[šKy'6—JûpÙ�Ž˜'†|@)A6 ‚zÊy.uY1UK9JŽtÑ $6:èTìVX+rYt.%ÄØØldC5®œLÛ5á\J.CÌCî ï½�eP«(ÇŽ¢Bö\ê2gH;ÊZ1¤ËR�ÞF{8—â~KsyîËݳ¶_§¿é:q†}®÷úqCÓ+tâ2Ä<1äƒx®§S?¢Œ¸þ¦WL {ˆ“ãØm®#Ñ\?F¢¹~ŒDsý‰æúDîçsÿM¯�öá²!� ê)g\VLÕRŽ’Ïõ^?5ô7½Ân…µÙæÆEGP�+'›ë¹ñžë½>5ñßô � bž( |æz:õ#Êëoz…Àö'DZÛ)çúaò‡ój˜´ã —8[À¨w çšKQå·]à¹K>ØÎGlôp®÷ú—7žêÙ¯ØØµMVuÅ<1]i·GPîÏ]ò 0v+ùX8×{}jì_îŠõTÏçzªõ©Ñ^®ù¹Þëk/×4ô¯´^ÓÙÜ­×t¶E‚–zªgk¹æúDîï]ü¼ÚÇyðÜ¥#—°S±K°‹×s"‡çcá\ïõ©ÑRétÍ\gùȆ^Ù©:æúaòœWg‡s}"÷÷΋ʫºÑyÑx;„b·p®&sÍ¥¸ßîÏ\Ês ë­ v êÝ¢±ó°KD‚]¼ž9<kÀ¼íè»É V,á\ŠûíþÌå]üܽקFkÛó1Í+;»»x='rx>¦c®ßãi®&ÏùWg‡¨û 5Z#nKÍ+7)ìȇ˺ä€Ä`cì�¸-Ká\ïõSCÿª—¡Ü»ÖJ8×'ö�Q²u6lŒ=tÌõ^Ÿšø_&ðÜ¥SÐS*ÎõüñœÆýŒøWgÃÆØ#œKÙ{„@´íÏ] iŸ¾Ý¹~�� ûå¡wIû¼ê&�‹¥SÎõ‰Ü?JDü_±Ý{Ž�6vm“A²¸…s¹Ÿ‚w¿ÇÓ¿:û^ƒtY*€\‚ž»ä„s=<§q?‘¯ÎnP�Ñ�p®¹Þëk/×4ô¯xÖtÈeˆÏ]P:á\ïÔh½K:¢AQX1¨l¨,|˜@.ƒç.H»=‚|dÏõ·"Säbã�(¥6Ú:Éá\ŸÈý‹÷ßôŠ�|i±#»„�±â¶D>Há\ïõSÓ%û›^��|�Q²¹>‘ûï¹Þë_Þh�jÍ]ó¯˜ í#!v Ï]@µÔÜYˆaÁ\ïõ©Ñzªgkþœb—ˆyb»õ^C¤]m®÷úµ¡¿éò‘�:×{ý\ÜPïi×…n¶ó� 꽆H»Ú\s©rDv�çc Únp*F.‘»S1rG7 çz¯O�6w§bÍ\¿ÇÓ\ÏÏi¼‹�çzÖö —£(XÛ/T›ë½âòFëT¬AQ$r‡ç.Tçz¶ª¡(Øf¸|®÷ŠÔQ8×óÜ�nçšË»øÑùîYÛ¯¯ö7½Ömpê\ŸÈý=w¡ú7½ù¨Ö�ae8׳;Ú\ÊŽØÀeÃpﲃ³AµëÃJä6ò«á\îG·ˆ»÷ú©éŒ’ýM¯ÀF>‚Î(Ù\Š�|$Ÿ»Ddx>;\ŸÈýã|®â¿éÒ>\6²A=åŒËŠçz¯Ÿú›^a·ÂZ�l sã¢#¨Æ•“Íõ‰Ü¿xÏõ^Ÿšú7½B`‚ÔF['É\†tY*ÐÛè\ßÛøã¿ézË $8v1Ol®÷úµ¡¿é†1§dH—¥½�Îõl³�Óßô ØS2 æúa2— o4WœÏU|÷‰}dDý›^!íÃeCÀEÞòA6¨§œqYñ\ÏRçsGÎõTëSSQ8ד¹â|®âÈ»§ZŸšB*ÔQçúa2— o÷g.µ[a­€�hŒL�a˜´ã4ð| ¥Y…lcc³‘I Õ¸r2mׄsÕ4¼,¾{Ööëã4×{ýÔ¤1×'rÿâ=×{ýÔx9×'rÿâ=׳Í>Nsý0™k.ÅýVÎ¥v+¬È166™ÄÀœ’…s)î·r®â}÷^Ÿ­—NA×¼J—¥�Ëà¹K>J§ ‡s}œå/+.³74×óÙNÃÒµÿU.Qw>.+Æn…µÒàl¹ò `Þ-œk®gm¿þòW�¸ —‡s½×÷†^±V๠J§ùÀù>ÎòÞ¥ÌÞø+Ï]Pf7s}"÷?œÆ÷¿âYçú8Ë{—´Oã¯Ò>}»a·ÂZÑ1×'rÿÃiÒžëÙfù\?LæšK…7s©n/�‚í½+§ Åm·®¥´GÍ'€lìÒ)è êöÜ\42Åná\ªeûÀг4¸ºî;¼t z*âØ=xéôZ/�‚®)ÇîÁK§ «¹ÇÆFî&í8V‘Kxét&ڳṠv+¬M3—2ï†Ã Ñvë ²Áåá\Þ%ËÝ{ýË/�‚>×{}j´u{Í«ÀÔ»Ecçé’5xî‚Ò)çú=žæz¯O�v—NA×¼ L�O]’£†Ý k¥SÐùž?þpï"‘¯—â~+çòÜ…êÝ{}j®¹>‘û{îË\ïõ©ñ¹>‘û{îË\?LæRÜoåÏ¥<CiVQîÏ]ò B n¤ÑÀó1”fµÛ½çØy¸Œª�p.ÅýVÎå¥Y½{Ööëãôª—�0,È]l„s}"÷¯ixY<—J»=ÏÇzƒºqUÈ%îÛ]:t*´Þ¥ÌŽ=à]Ò>šûg.õ�[‘£SqßzétЩÐz—2;ö€wIûhÞëS£Ý¥SÐ5s½×O Íõ^Ÿ8MÝWMãÕÙŽ�Ý€µ‚|@¸Œª�p."wŸÈýÙ=ç_¥ËRt^4Þ¡Ø-œë¹¿wÉò¯öI (txé„sý0yοFî<Ô} ¹ÇÆçzþxï<�¹ùWvĨ¸Œj>A8×\ÞyQÑùî¹ÝWMãoz6ò0 —Qµ1—wžÎÜܽ׿¼é¼¨Pü¯Àv>t^4Þ¡Øm.Hèv÷^¿6�Ùð¿é|SÅÙØ%:/oï`6àùØ\ÞyQáæî½>5ÚË5Ó+&H ¤Ý™ëéÔ§¿érGplls=<§ñ΋FFü+ðÛ(C.Ñw;»„Pì6×{ý¸¡¿éX+H»=‚|Ïõ^ßšûú›^¡3JÖ‘v{ùÀæú|Ò_þ7½B>i€sý­ÈØÈGÐyÑxû\ÞyQÑÉÝ{ýÔh/×üM¯˜ ]4�Ò\ŸÈý‹÷ßô »Ö dÃsTãÊÉæú|Ò_þ7½B>i€s}µôö7½Bµ4Ð%C:2æújéã¿éª¥�tÑ@:2æzþøÃi¼ó¢¢“ß›!—8[Pæ“ûeu®÷úqcÓ+&茒u¤Ý™ë½~j:£dÓ+Щح°V  ÎçúDî¿[IÓ+ì�Q²>×ç“þò¿éòIìÈ€lp‘·6×{}j´—kþ¦WL {ˆ˜'6׳¶__íoz…N\†js}"÷÷Ü%–¿év+¬äƒËŠçújé/ÿ›^�í|$𰇈ybs½×§F{¹æoz…ÀYæúDîï¹K,Ó+ìVX+È—Ïõl³¯ö7½Â0æ” Õæú|Ò_þ7½ÛùdƒDFŽ[1Ä<±¹>Ÿô—Ïõ^?5�Q²¿év+¬:£ds}"÷/Þs½×OMg”ìoz…n‚–�P¶C.茒Íõq–�l´—kþ¦Wˆ¢t ÐMtÌõù¤¿üozm>i€í|Ćf®ç�ç4ÞyQ¹¯~eÈ%Ζ¹Þ맦0Zø7½Bºè†Î(d£0Z8—w^Tîëî¹ñþ›^a·ÂZAºhÌõÕÒ׿骥�΋ÞÇó1¤#s=<§ñ΋Êýþøm”!—¨ûØ\ïõSÓ%û›^Á¼v+¬Dg”¬Ïõ^?n Îõ‰Ü·’æzþxHpó7½� ß›Íå�•ûݽקFëù˜æ_!0�çc8;œë{æùX×Åí…x‹ì(v F�é˜ëùãOj¼ó¢Âí~eÈ%úžëóIOÓ+˜wC>iÀó1œÎõ^_ëù˜¦¡¿éçúDî_Óð²x®ç�÷΋ŠnÓ+Щð½Ù\ÞyQáöÝ'­—NA×Ìõ^?nèU'.Cjǰ#ðÒ)èá\O§~šëéÔ/’62엇ޥ̮ ÷µ‘a¿<ô.iÍ\ÏÏi¼4«_� ÏÇ�v{$Ÿ ÁeTm„sÍõ^_ë¥SÐ5 Íõ^Ÿ­çcš¹>Ÿô4×{}­çcš†^y>�Æ]ð| :�"E†s}bÏ<뺸ý*º‡a¸õÎõ‰Üÿ¤¦î˨¾ª—Qµ�\Âó1è4î{`ž�u]Üçz¯OMü*0AL©öÈA>äðÒ)èá\ïõµ^:]ÓЫa]ö0xéôp®¹¼4«ïžmöqúWe>¹_Vù~˜Ì5—â~³¹ù†Ë¨ÚÀ>ðÜÕ¸r²¹÷›ÍÅ.£z÷ÕÊ覱ï´rݧ¦ûðƒ­ç~(œë«•ñsÙàÜ'R'E*Œ(œë«•Ñ/ çújeüZ.œ�N #¹Ñ©0¢p®Ï%ĺ (ª•1 uŠB…�šKEµ2Æ0.Eµ2FaX8×W+ã�˜‹]ï¾ZýB°û÷þ{ÿGá\_­Œ?b®¹ê¾jwŸÈýk^¿*Ér�²Q÷eTù꾌êݳ¶_ùßô �¸ Â>׳¶_§¹Þ맦Ü#ZÖ¹>‘ûï¹>‘û_Fu¼ªräÊ'@–n^†s=Ûìã4׳Íþò¹~˜Ì5—ºŒê@îÈ};‰Uô�,Ht¹[EÌC>Y2yæ�ä}¹.£:îÞë_ް˨Îõ‰Üß»tyÅF>¹ —QµÎõ^ÿò†]çúDîï]ºÌõ‰ÜŸ�#ìùä20 §�Æ6¹>‘ûç“Ø«|Ò°¨£À Óá\_¼ÇÓßô ž�áìp®÷úZÏÇ4 Íõ^?5…(œë½~Üè6×'rÿÝJú›^��|º¡3JÖùÞë_ÞH–¸-ÿØÈG�ö;Ò±KH7ÄmYژ빿wé2×'rÿš†—ůäÞ†çc茒õp®Oäþ5 /‹çúa2×\Šû­œKyî‚.#Ÿ²AŒ�ÍF&1TãÊÉ´]Î¥¸ßʹ¼K—»gm¿>NÓ+tâ2 æò.]"ïÞëS£½\ó7½B`BºhÌõtêÓßô b]Pî±͇d¤‹Æ\ÏÏi¼K—‚s½×O ýM¯�Kœ- ØÈG�e®OäþÅ{®Ï'ýåÓ+䓆EíØÎGlÌõüñÞ¥Käßô ¾7›Ë»t)x÷l³�Óßô ØS2 ú\?LæRÜoå\Š�|ŒÃÙá\Šû­œ‹�#ìîYÛ¯¿üoz…N\†aAŸëYÛ¯¯6×{ýjMÄßô É�j²  SqöÇÆFéÌõ^ÿò†Q`EŠœrÿº¯šÆßô lä#`.£jc®ç�÷΋ŠnÓ+Щð½æò΋FFÜ}"÷¯ixYüªÌ'÷ËjÉ•‡–…s½×OM¹G´¬s}"÷/Þsý0™Kq¿é˜Kí˜oI°[a­„s)f£Ü#ŠÝ k»ÄŽù–iWCÛó —!1ŸK]VLÕRŽ’cÇ|K‚r�( îe¹0,íQáv¹æR»Dá°Ô3§p.Åý¦c®ó÷Ý{}j´»t ºf®�³üeÅeö†^]VŒÝ kEÇ\?Lžó¯ÎçšëYÛ¯¿üozžõ�¸ Â>׳¶__m®gm¿>Ns½×§&2ì—‡——Ù_uxéÌõ^_ë¥SÐ5 ½"ÆÆf#“˜ó¹Þë_ÞPéô;¥S€n¢c®�³|d£½\3×óÇsšówÁ¿éøm”!—8[æúDî¿ë°ô7½kOºPIÃÒu®OäþÛ†¥¿éX{ÒÛ%†¥=ê\Ï¿cþ¾¯Uæ“ûe5œkÇü]ðîã,Ñh/×üM¯@µÔÜÓ>’O›…‡Ò)@7Ñ1×óÇsšó·ÎÓ+ðÛ(C.q¶Ìõ‰Ü×aéozÖžt¡’†¥=ê\Ï¿cþ¾¯¹vÌß:ß½×OMÄßô É�ؑ٠Þ+Ò®†¸-Ks½×§FK=Õ³5ÿ txˆyb»õ^‘v5s½×�ú›^¡—áìù žëéÔ§¿é86¶Ž¹vÌߺÝ=<§Ù1ß×ßô ü6Ê�Kplì¹Þë_Þh©Ö܇æ_!0Õ:Psg \>×{}j´;æ§#š:<Ä<±Ž|°c¾%AÜ–¥ s=�úô7ý\Ï8ÍŽù››~eÈ%úžë½¾vX¢:4Íåÿ æÝ�6ã�j¨¹3 æú[‘)ä#ÃÒTë˜kÇüÍÍÝç“þò¿éòITë@Í�aX0×{}-ÕšûÐ4—ÿÏõ·"S�A§—1O åØQPïiWCÜ–å\+2ÙØ1ß’ nËÒÆ\ïõ/o´ÔS�»æ_�í|$HívÔ{EÚÕ¹Þë[“þ¦W`­€z¯H»â¶,‘Ž äƒjs½×¯MÄ\OµþåMµ¿éÒŽ²V ìÈ€lÄ<1”{@�^Ú˜ë½>5ÚË5Ó+&ˆybs½?• •…Ó+tâ2ä*œë½þåÍŽùq[þ+°��€;æ[ÄmYÎõ^ŸíŽùéˆæ_�µ‚ó·e‰td T›ë½¾54×S­ySíoz…´£¬;2 ùt¶{–¼Ï\oÅOeCeáßô � bJóÄæz¯¯½\ÓÐßô t*ˆ1;²±c¾%AÜ–¥�¹ë¹?;R°s}µô—Ïõ‰ÜŸ)Xƒ¹žmöÕþ¦WÆœ’aXÐçz¶Ù_>ד¹Tx«s)6òDÍA–>— ou.v¤` î~xý·ÆÃÉqìÖçúDîÏŽÔàoz6òj²ÌõÃë߸¥0¶�NŽc·>×'rv¤Ó+°‘�€Ps�e®^ÿÆ-…±…Äpr»õ¹~˜Ì¥Â[šK±‘�€Ps�e.ÞÒ\ìH îžµýú8ýM¯Ð‰Ë0,˜ë½~ÜÐßô ù¤�šƒ,H»=2×ç“Þæz:õ#Êk®ç�?œ†©Aä¿BîÈ‚s}œå#šú7½‚Õ|plls=üá4ìH ÎõüñìH tž‹©AäÝw“�hêßô gplìÝ¥S0;Rƒ‚w¿ÇëqýM¯�öá²!� ê)ç¹Þ맆þ¦W`#A–¹>‘ûï¹Ø‘è|÷^Ÿšx®g›}œþ¦WÆœ’aX0ד¹÷[šK哆E톳ù÷[š+ŸÄîžµýúËÿ¦WèÄeÌõ^ÿòFË(0Í¿B`F�álhuCÍâT5s½×§Æÿ¦WÈ' ‹ÚxØCÄ<±¹žj}j"çúJô¸¹¿éª¥%U~Ûe®÷úÞÐßôs½×§æú›^!Ñ<ÈF4ì!bžØ\O5=5ÓÏõ•èoÜR¨–r”Tùm—¹Þë_ Íõ^_Ë(0Msù¿Â0æ” ŒÃÙá\Ï6ûËÿ¦WÆœ’aX0ד¹÷[šKyî‚΋ÆÛ!»Í¥¸ßÒ\÷hœÜ}µ2ŠÂ΋ÆÛ!»asÙ(}ßÓ© çújeŒ4PÕÊ^¢(ª•1Ò@QT+cx‰¢¨Vƈ˜K±‘�@.Ã='Ÿ¹DçEãíŠÝ°¹l”¾ï…�+w$:ˆ ‰Ü­Î¥Ê±£0ïvï²a!¨÷6j w z8»GãܽקFK¥SÐ5¯Òe©ä²¹>ÎòúW��·C(vÃæ²Qú¾‡ž¥%Éû„sý0yοÊRر „sÍ¥:/o‡Pì†Íe£ô}/œë¹¿wÉò¯xéôp®ßã#Ã~yè]Ò>¯¢TÀÀF>‚}�öéÛ-œë½¾örMCÿêr[à¥SÐQŽ…wÉÎõ^ÿòæ�s‚¹>‘û{—.ÿÊsÈe¸Gãä ËÈ'çz¯yãùØ\ŸOzíåš¹>ŸôÚË5ÿŠjEßQCÚí‘Ùð| :Îå�§sÄÝ“¹æò΋ÊÝ'rï’åU7�—NA166™ÄœÎõüñœÆ;¯`Ä«³±[a­4Øç�Î5×{}j´ž�i^íVX+!î]$ð| ÷ $:æú=žæúDîÞëScÓ+&Ø1i·Gæú|ÒÓßô ù¤aQ;‚,s½××ŽhúWÆœ’!íöòÁŽùéÈ\ŸØK=sþ¦W°³ÛàBÌë(÷aXÚ£Îõüñ‡Ó옿uò¯Ào£ ¹ÄÙ2×'rÿ]‡¥¿éÌ»a·ÂZA%! K{Ô¹vÌß:¹û|Ò§¿éòIâvÔ+Ò®†¸-K¤#c®¯–>þ›^¡Z8»DÌës=üŽù[·¿éèTøÞl®ó÷}Ý=Ûìãô7½Â0æ” Ã‚>׳;Ú\Ï6ûËçúa2—â~ æR»Ö * aXڣΥv+¬•ŽJB–ö¨h{>òóÂŽËŠ©ZÊQò¹ÔŽù–iWC¹G”d.Åý̵ë°t÷¬í×_þ7½B'.ð Ïõ¬í×W›ëYÛ¯�Ó\ïõ©ÑŽhþœ�]"æ‰uäƒó·e9×Ó©OÓ+äŽ,àØØ:æzþxN³ë°Tð_�ßFr‰¾1×{ý¸¡¿éX+H»=‚|Ïõ^?5…w…Ó+ìVX+–ö¨ˆÒ(0×'r–®ý7½‚l°ö¤ Õ¸r²¹Þë×&âoz…äFé²T ·Q Pçz¯OMü7½Ân…µ‚˜'†´Û#s}"÷÷Ü%–¿é�¹Þë_Þh‡%ªCó¯°[a­`XÚ£‚js}"÷÷Ü…ê\_¼ÇÓßô »Ö †¥=*„Ç ÚÍ\ŸÈý=w‰e®÷ú—7;æÇmù¯ÐMÀŽ ÈÆŽù–q[–6æÚuXм{¯O�örÍßô »Ö * !æ‰Íõ‰Üßs—Xæú|Ò_þ7½B>i€s}µôñßô ÕÒ@Ú푹ž?þpš]‡¥Èß›!—8[À±±çz¯OMý›^a·ÂZAº,èmt®Oäþž»Ä2×'rÿš†—Ås}ñxþ¦Wè&8;Ä.óÄ:òÁŽùq[1×{}íŽù鈦¡¹v– Þ=Ûìãô7½Â0æ” Ã‚>׳;Ú\Ï6ûËçúa2—â~«s©Ý kv*v‰2»aXڣΥv+¬•;»D™Ý0,íQ!¬=éB5®œl.Õö|ä#æ…—Sµ”£äØ1ß’ Ü#J2—â~«sm–îžµýúËÿ¦WèÄeô¹žµýújs=kûõqšë½~j ï ÿ¦WØ­°V0,íQ¥Q`®Oäþ,]{®/Þãéoz…äF:é²T ·QhóAÕÌõ^¿64×'rÏ]bù›^a·ÂZÇÆFÌCÚ푹Þë_Þh»P­C󯘠 Õ:æúDîï¹ Õ¿éèTìVX+È2×ïñô*J ÃÒÂcíÙ‚ai�ŠHM8HÞŸÛšÕg:G×;1ËÅßwŽ.†-¾Ón¯¬¡•„Ñ)ûÕï;UÌ-ß©bŽý¾c3gï;Ñpun7·5«Ïxß©bÎÜ<^a¼õȹ3À5á}½Ü<Ë­0£×i¨÷ç¶f5©Cßææ…¹y¼¢‘è$WäÒ¬ú}ßææØïûèåæY®h…½NC½?·5«‰�£ë]qóxE#ft­©¢Š6OjUò¾›g^S3²fu+)^99k†S¹²©5Þ÷mn^Øû¾�¤õÂÞw�èzÇÞwlæú}çè½Óï;GÇ�ñ¾kD·|‡íæñŠåÙ&U‹*BÖŒêŠNåJ«5öï;Ñð¹­Y}ÞÍ㠳ͪ£ºb¥Õû÷¯ƒ&}ÿâ“éÕÑ!ЪV‘ûºLª²lGîë2y–.¼wï_sdÙ›c4[Ñ|³ºô¢,|2½èT�9BÉû×TiµÆþðý+æÙ²õ`¶1r_—ÉCe¨ŠÜ×eò”@’÷¯©Òt¾Å<;lª¥©’ÙÔY3ré±2!­ÖØ¿ÅüsDóÍêÒ‹²P%{,:U¶)é¢S‘¼Å<Ûòl“ª%£Wª4?u(d-[­÷¯˜gŸë1\"{…B`ž†ª,]x“¼4éû|2½úз“´^˜›Ç+RWuF¨\=äû¾�¤uZñ¾stËwr_/]ܯÈ^Ù&U«GÖŒÜ×eò,]x¿Ï'#úv’Ö-wóxEêªÎ6©Z=²fäÒceBZ­±ß·¹9¶›Ç+Tû}çèl'f¹¸›Ç+RWuÔÌ„0«‡ U‘û:T…½ïT1gn¯¬–+,0GÎõ˜ï;6sö¾ ?·ã“�wóx…BÎõ˜Y¶UZa&déÂû}çè´b'÷u9�ûÙ+Û¤jõÈš‘ûºLžrèñ¾sô²£ân¯H]ÕQ3¬2TE¶Ì6Fîë÷�*æ–»y¼RϪN™Ëf›T­2k†,×ûNsZáæñ ³zÈLˆÜ×erù>ŸŒøÐ9ºÞ‰Ñ q7�Wج7=::Ìê‘÷�m.f¹øûN4œíødçÝ<^Ysôx߉†«s;>Ùn¯¨¹z¤Õ<lÌãûnžy…Y=dº²'Í#g@�÷�*æ–»y¼RϪN™Ëf›T­2S…ü¾SÅœV¼ïØÌ™›Ç+ØldéÂ#÷u˜Õ#lžÔz߉†ŸÛñÉH{ß±™7�W°Ùˆl=˜mŒÜ×aV�°yRë}'~nÇ';ïæñÊš3 ÇûN4œOFìæñJWö¤yä èñ>ŸŒ´CÇf^Þw¢áçv|2Rn¯Ôz1˜'…»Œ^§¡"B—͹ó}7ϼ\"{í‚�mRµ¨"D¯÷Ý<óJ«5ö»TF,�^©Òü×'rÏ]b™ë½>5õoz…Ý ké²T ·Ñ¹>‘û{îË\ŸÈýk^Ïõl³�Óßô ØS2 ú\Ï6ûjs=Ûì/Ÿë‡É\s}º(Ÿ/äÜ/ÂBÎý" ÿ•�Š]‚s¿ˆrîÎuÝ_:éÌ»a·ÂZA%! K{Ô¹vÌßvÿ­ÿZ80E.Z80Fßÿ ºÿöÿ¹ÿ»ÿòÿõÿ«ÿ­ÿ°ÿ½ÿ·ÿ±ÿ¾ÿ¬ÿ¼ÿ³ÿ¶ÿÄÿØÿ ¯ÿ!"²ÿÏÿoÿƒÿ#%$ªÿ&'üÿÓÿ¦ÿ)(+*,Îÿ¸ÿ-/.0Åÿ©ÿ´ÿ§ÿ1×ÿÖÿ¨ÿ2Ñÿ3µÿÍÿ¥ÿÌÿ54ÇÿÕÿ76ÈÿÆÿËÿ89øÿÊÿúÿ:ÒÿÔÿÀÿÉÿ;ûÿ<=®ÿ>Âÿ@ÐÿÙÿ?CÁÿEDABåÿ¤ÿžÿÿþ¡ÿ ÿ¢ÿÃÿðÿ£ÿáT®÷³èâí÷¹F“œ;`$Ägm8ë¤ôí—Ü×eòX­�SE¸´¢1r_—ɳtá-IÞ�âT®÷¯ƒ&{ÿ"ôŠÜ×eò÷¯©Òj�ýáû—[žmRµdô Y®0«G&Dîë2¹¿Å<;Û¤jÉè•rèñþ5Uº‚®Ã÷¯˜g[žmRµdô ³zDÃ깯Ëäï_1Ï.'€aS-M•ŒÜ×er÷÷¯ƒ&{Ÿ ÷õ¡o'i�V¸y¼"uUg4�ÊÕC¾ïÛIZ/ì}çèeg¸y¼Âxëfõ›'µÞ÷í$­c»y¼"uUG.=V&¤œzd›T­ïû67§ï;U̱Ý<^á­«:rÓ¬CUÊ 0G˜Õ#lžÔzŸ ÷5ùÐ9º¶øN»y¼²�V˜Õ#T¥œz¼ïT1Çvóx…*6ºnµ²MªVù¾SÅÜò÷�*æÅÍã­0lžÔêñ¾st½+n¯P™eõ iaVYéûÎ6'í}'~nG�ûšØÍcò¾st½³\ÜÍãèÅlTW¬0«ÇûÎ4ç^¥9E7�W¨ ]©Òœb¨ŠŽÜ×eòJßw¢álG�ûšìæñ Ñ©ÞB!r¾O�ûúü¡st1Z!¾+n¯¨¹K+Ì„È}]&ß·¹yan¯ŒÞ¸f©«3š@åê!ß÷mnN+Þ÷Ñë}‚Ü×ćÎÑõNÌrq7�W$Ó*kè�+jªTiN1Ìêñ¾3͹WiNñ}'®ØŽ ÷õù÷�*æ–¿ïDà r_¿4Áß¿ª4§®Kó0«G¥ï_S¥ÕûÃ÷¯˜gë°©–ÔïóÉÎ8tŽ®wçÝ<^‘½²MªV�¬Õ+­ÖØ¿ïæ™WÄ4bØ<©Õ£’óY3KÞÙ&U«‡øû®]ïØûÎÑÙN¿ï½ìŒ÷]#ºå»ÂÞw¢á|2òû|²ó‡N‹37�WÖœ=v-{å\�àšð>ŸŒÔ¡ossZáæñÊè�kÖM�©ŒŒ^§¡Þ÷mn^˜›Ç+"tÙœë1\Ho¼ï£—›g¹‚6ÕÒTÉÈ¥ÇÊ„´ZcÿþuÐ$¼­¡•„áº4�˜V˜*ÍO-ž5#÷u™<åÐãýkª´Zc˜X6ÕÒTÉTi~êL×¥ùû×Té ºËæZš*™mRµzdÍèµ-§Õ)ûÕï_1U‘ûºLžrèñþuÐ$¼Ï‹Üׇ¾�¤õÂÜ<^‘ºª3š ß÷í$­c¿ï]ïĸ.åâîWìI­Õ>Ìê!CU¸.Í+}ßµB×n¯Pºr®Ç¬ô}'~nÇ‹Ü×d÷+D§z …ȹ‹šáº4ß©b®Ý<^ш!gͨS]z¼ï�í´›Ç+Za¶Ó ]¡*…½ï½ìŒ÷};Ië–»y¼"uU§JóSgB¸.ÍßwŽnùŽëRNà~EöŠœ§Á:›Z#¤×¥yÊ  ÇûÎѱwr_—¸_‘½‚-W6µFH¹¯Ëä)'€ï;G:Ü<Ë•5´’Ð#\—æY3r_—ÉSN=Þ÷®pì�ån¯l§¹¯Ëä)'€lj�PËß÷mnŽíæñ ¡Wª4?u¨ öûÎÑÅ,ßµ›Ç+Za¶Ó U‘ûºœà}§Š¹åï;G³\|‡ï;UÌ-ß9º˜åâ;ÃÍãÆ[�èµ-§Õ2e¿ú}¯˜Ãµ›Ç+Œ·9×c¸&¼ïT1×ïó"÷5ùз¹9¶›Ç+£7®Yg4A¾ïÛܼ°÷}ôzÿ:hÞ¿˜mV¹¯Ëä¡2j®Œ–=ª#2¾M•Vkì#÷u™·5«Ý<^¡*œÊUéûN4\�ÛÉ}Í,Ùý Ñ©ÞB!r¾ï]ïÄä¾.'w¿Bè53!Ìê¦J†Y=4[=Þ¿¦JWÐuøþól6ÕÒJ†Y=4[=Þ¿bžÍôûׄPÙ+R¥9Eÿ:hÚ÷«4§xèló[ßï;Ñp¶«Òœ"ù}g›ßçîJÈïûèåÌÍã•*Í)¾_¥9Eò¡³Íoã~߉†³]•æ‰ßw¶ù-ú®„ü¾�^ÎÜ<^©ÒœâûUšS$>t¶ù]éý¾ ?·«Òœâù÷�m~“Îû}'~nW¥9Åóï»dà1�n¯¨¹R¥9Å]o=Âôû×’÷�1xßG¯÷«4§xþÐ%�y¦›Ç+UšSÜEö Ócì\Þ÷Ñëý÷¯ƒf¿zeÍêVbR<0fNåzÿš*­ÖؾÅ<[îër‚°©–¦JFîë2ùûW̳-›jiªd¶IÕê‘5é\Ù&U«G–.¼ß¿bž��mRµdô ¶\TéE§ Ì‘5«[É÷¯˜g³°©–¦JFM’LÈšÕ­Rö«e¶áT®´ZcOòþ5Uº‚®Ã÷¯˜g¯YÝJLŠG�UÁ–‹*½èT$ï_1ÏæZ®LÕ¡2šËª¢ß¿bž}®Ç pMˆì Qs…ªp*Éû×AÞŸÛšÕ‡¾�¤ul7�W¤®êlkdÍ`˘#kV·’$ï;G×;1¹¯Ë ÄݯzEM’LHÙ¯–¡*r ªï;G/;ý¾o'i½07�W¤®ê¬YÝ*e¿:lžÔŠßÍ3¯h…‘kPE³z„Í“Z+âï»<'»y¼"Vö«e¨Š\ƒ*B*Yü}œi7Ïrå ñûÎÑ{§ßwŽŽ;ã}׈nùÛÍã•mRµzdͰ9F³‘90²©5²táï;G×;1ËÅßwª˜[þ¾st»³\ü}çè|§Ý<^±<Û¤jɬ6Çh¶"›-:U&„S¹ÞŸÛšÕç�£cïä¾.'¨„ü¾osóÂÞ÷í$­ææñJ ›jiªdÔ$É„0«‡ U‘kPExß9ºÞ‰Y.îæñ ¡W€¹Â¬™NåJ«5öïû®Ý<^¡2tŨô}'~n7·5«I¹_Ù·Ü¥fB8•ëý¹­YM>ô®pì�ån¯¨¹ ›õ¦GG‡Y=Þw¶¹˜åâï{W8öÎò÷�*æ–»y¼BÙ&U«‡|ß©bŽý¾ Wçvs[³šØý ³zȨ¹Ò•=íB˜Y3ª+VZ­±ß±™7�W˜ÕC¦+{Ú›�°yRë}çèz'f¹¸›Ç+„^ÑaV�÷�h¸:·›ÛšÕd÷+õfõ�Y3lÖ›ý¾osóÂÜ<^Q3õfõ�Y3lÖ›ý¾ossl7�Wj½˜ Ì“Â]½²MªV�h…ï»yæ6OjæÈšÕ­RN=!CUä¾.ï;Ûœ”›Ç+õ�eõÊùJßw¢áŠíä¾fö¼û ‘3j®Œ–=ª#2¾ï{·ºÞÜ<^a¶Yu(„ªÌMaªE©\ï;G·|7·j.—û•M­‘5é\ÙÔYºð~ß9:Û‘Ý<^!gÍêVgÝj�}¨ §r½ïLsîs[³ÚÍãªÂ©\•¾ïDÃÏíä¾f–Øý Ñ©ÞB!j®÷Ý<óÊhÙ£ª1"s`N²ñ}¹¯™%:Gg»[ävóx…*¤L¯N�1ÇûÎ4çÞcÌñ¾KnžåŠì¦Çظ&¼ïDÃå¾föüûr_3K|èZ¡k7�WÔ\-{T5FdÜ…ñÖ#L�±_îkfÏú67/ÌÍã•Ñ׬3š@åê!ß÷mnŽý¾ossËß÷Ñëýë  ï_TÉ+r_—ÉCÕš‘ûºLž¥ ï÷¯©Òj�}°³Mª–Œ^¡JöXtªlSÒE§zÿ’ûºL*CUä¾.“§œzDLîërñ÷¯ƒ&¼O•ì±½+*Ü<Ë©«:£ ò}ßNÒºåïûv’Ö±ß÷í$­ö¾wEÅû¾�¤uËß÷í$­ö¾o'iû}çè–ïÄê®×ÜÄݯze›T­Y3kn™ð¾stì]åg%Ù¨„بÌܯè*M¹.¼3t1ºlÆœu`Žh5—íñ¾kD·|‡íæñJ«5ö©$rÖœ~bÕsÖâï;GÇÞ‰É}Ý ÅݯzeSkdÍ´ÂLˆÜ×eò,]x¿ïZ¡k7�Wo=Âôû÷]æ–ï°Ý<^¡2KÞ�畾ïDÃÛQ%Ç"»_!:Õ[(DÍõ¾stËw¸&H÷+²Wä¾ÎÒ%³ªð)àšð¾Ë^N¼³\ü}ßææØn¯h$:ɹ4«~߉†S%Ç"vó˜¼O•‹|èÛÜÛÍãÞºª³©5²f¨’=V¶)CU°ï÷};IëØï{WT¼ïÛÜÛÍãB¯lj�¬ªd�•mÊ÷Ý<óÊÜZå´E‡ ·P•¥ ïœ$U„÷Ý<óJá“U§žUMìˆPÎæZšª`ËEò¾›g^±<Ëvä< ÖÑ SX–í¨Iò¾›g^™�²_-ßw­Ðµ›Ç+Œ·azŒýûÎÑ-߉É}Ý ÅݯU53!e¿Z¦ôéV¡JöXtª÷]æ–ï°Ý<^Ù¦¤‹N­0­0"÷u™ü}§Š¹ån¯,]x¿ïÛIZ·ÜÍã©«:jfBÊ~µÌT‘K³ê÷�£[¾“ûºŠ¿ïwö}çè½ãï;G×;1¹¯Ë Äݯ0ÍÙ‰ëÕQ3Rö«e`ŽP%{,:Õû®]ïH½ï�í´›Ç+Ûi…ªö¾sô²3Þ÷í$­æÁ†âöý`C�{pvG6”`#J þl¨sK®ïÁ†l„`C ±aß6Ô¹Ç`w„`C‰6B°¡Ä8`ß6Ô¹åÐw„`C‰6B°¡„ø€}?ØP疃߂ %ØÁ†’óìûÁ†:w¡ëŽl(!6B°¡„”aß6Ô¹e¯;B°¡„lØÁ†ƒöý`C�{´¼#JȆ�l(9`Ø÷ƒ uîÑëŽl(}†�l(1 û~°¡Î=äº#JȤÙÁ†ðïêÜÛÜîÁ†²h!ØPb0²}?ØPçÖÈîÁ†r±‚ %Æû~°¡Î- »#JÈÅF6”� û~°¡Î­ïÁ†2³‚ %†aß6Ô¹å©Ü‚ %³‚ %dþl(1 ûþ¤ß6Ô¹™æüŽl(MÊF6”†}?ØPçÆ~G6”çm„`C‰aØ÷ƒ unl(w„`C‰q†�l(1 û~°¡Î� "w„`C‰Aš�l(1 û~°¡Î� òŽl(1DÙÁ†ðïêÜØPß‚ %›<­Y!ØP‚u•æïêÜVóuG6”ÚF6”ˆ";l¨sÎô!ØPbh!ØPbˆ²ïêÜc0}G6”ÚF6”`ß6Ô¹9ÒqG6”ÅF6”ŰïêÜqÜ‚ %F±‚ %F9`ß6Ô¹ÙFÇ!ØPb!ØPb²}?ØPçfŽ;B°¡Ä(6B°¡Ä(¢íûÁ†:÷èEïÁ†£ØÁ†Rhß6Ô¹G/uG6”ÅF6”�:þl¨sSEÇ!ØPb!ØPbbû~°¡ÎMŽ;B°¡Ä(6B°¡Ä(Ú¾l¨sÏÓ¢w„`C‰Ql„`C‰¡ÏÛ÷ƒ uî¹è¸#JŒb#JŒrÞ¾l¨sÏÓÂ;B°¡Ä(6B°¡ÄОl¨sÏ…ãŽl(1Š�l(9PìûÁ†:7©sw„`C ù¼�l(1 û~°¡Î½�¤½#JÈ¢m„`C‰ÁΰïêÜœÊuG6”l„`C‰`ß6Ô¹›Ë¾#J(¬Y-J bû~°¡ÄȵzÔ$ïÏqÆ¡_žT¾fu«Ê=©¼JóSWþ~°¡ÎÝ )Ü‚ %Ö¬v!ØPböý`C�{ÑÅûŽl(ÙäiÍj‚ %‹®*Íß6Ô¹™ÕTÝ‚ %›<­Y‚ %̪*Íß6Ô¹§rÝ‚ %Æ‚ %†aß6Ô¹å©puG6”�Áºl(1 û~°¡ÎÝDÍÖ!ØPBlX‚ %†aß6Ô¹æñŠÔUªRØý¾wEÅû¾ÍÍ {ß»¢â}׈nù®°÷�£‹É}Ý Åw–»_‘ºª£Z$­0"÷u™wWB~ßG¯÷5߬&ú®Ý<^Qs…÷Z=va¼õÓcìß÷Ñëýë Ùï_Ì6«… %Ð1£rÑâ¡*š1’÷/ ‘s—Ñë4TDè²azŒ}d/’÷¯ƒf¿�”@ס³Íoã~߉†³R]ä÷�m~‹¾+!¿ï£×ûH t‘}×n¯¨¹‚”@×.Œ·azŒýû>z½4ñý«Ç˜#£·9U„ŒyZT5IÞ¿¦J«5ö‡ï_1ÏfaS-M•Œ–ŒÒôs„Y=Þ¿¦JWÐuøþ墦–…‡Ê¨s»,Û*j.K!Vo[+¹KsÙï_1Ïî1Ê Â¦Zš*™cŽ0«Ç Y–Êôs„Ê èÑj½9ŒYgÙ;�Ñj¥Ç˜c—e[eÙ;�Ñj¥Ç˜#TæýËk�>Ez„iÙ$ÉI¶Œ’÷¯ƒ&{¿Ç˜ãÐ9FïÄÔÔ²pñ™#:BF¯¨sï;G×;±£œ@Üý ¡WØT«ÕÊ„ôs©Ü¸Þg4�ä}g›3÷K꺣eJÃ]éû>zù9÷kß’$8£æ²THÞ÷9œl˜g7�Wj]ݹõMBBzҽϪ›„$brÓ¬IOºrÓ¬Åßw¶¹Ü4k7�W¨ ]Ñ‘›f]éûN4\�Ûõ0�dÃýŠš$9ÉŸ"=´ìTõ�t*’÷�£ësóxeßr—Ñ׬#B—M�1G¨BÊôšãýæ‘l:Gë1Ê Äwú}½Þÿ:h²÷¯¹õÐkŽp*×ûWkf#›-:U&„S¹Â¦Zš9•KäŽl(!&[‚ %†aß6”~­5Éû×AÞ¿æÖC+LuïEæÀp*×û›jiªdæÖC+LuïEæ@˜œO‘Æ”ýûךխd`Ž,Û5Éû×AÞŸ[5—ëбAÄçV-Bvóxe›T­áT®¬¤=Z­÷D|nÕ"Än¯Èf‹N%3!së¡¾ïØ âs«9ïæñJuïEæÀp*Éûs«!¾l(¹õ!Á†Q¢ìûÁ†’»Ül(eØ÷ƒ %7»#$ØP"Šlß6”ÜxGH°¡D±}?ØPr÷!Á†QçíûÁ†’ÛÞl(Eʾl(¹ù!Á†QgØ÷ƒ %÷¹;B‚ %DÛ÷ƒ %÷vGH°¡ä@Û÷ƒ %w}GH°¡äØ÷ƒ %7½#$ØPBlØ÷ƒ %÷¸#$ØPBL¶ïJ þ?·jâÃ÷ƒ un w„JÈ¢ìûÁ†:waw„JȆ}?ØPçÆ¾#$ØPB&Û÷ƒ unËï 6”�‰íûÁ†:·Üî 6”�ÏÛ÷ƒ unZqGH°¡„¬íûÁ†:7Ýßl(!·}?ØPçVìŽ�`CÉmß6Ô¹Õ¹;B‚ %Ø÷ƒ uî­ï 6”@û~°¡Î½Í;B‚ %˜}?ØPböý¹U‹œ?|?ØPçÖp›ÇÁ†£ û~°¡Ä0ìû×A³ß¿ÊЬº—.¼3·Za8•‹äýë Ùï—j.סcCq2±uóxÅò÷Š“2¬›Ç+b–‹¿ïØPœ¬­›Ç+´â}džâ¤X7�WÄh…øûŽ ÅÉmÝ<^¡û÷Š“bÖÍã1ºß±¡8ù¼uóxEnï;6?ðn¯ˆÉMü}džâd²uóxû}dž⤑­›Ç+bØâï;6'ÖÍã•ÂÞwl(NšaÝ<^+Lü}džâ¢ÈÖÍãö¾cCqCÖÍã1&þ¾cCqƒiëæñ ­¨ßwl(nmÝ<^£• øûŽ Å ÖÖÍ㺯ßwl(n”¶n¯ˆÑ}%(þ¾cCqцuóxE½ïØPÜ@úy¼"¦Äßwl(nÖÍã•V˜ áT®÷¯ƒf¿Õ'¾håÌê¡Ùê8)¶èTáT.’÷¯ƒf¿_—k;tlñšùý˜gqlñšñûŽ "^38ÿ¾cƒˆ× H½_3 :67Þ¯:6Ô~Ïq¿ïØP\”¶ï;6Ô~weï÷Šmßwl¨ý&¬û}džâ¢Éö}džÚo¾î÷Š‹mßwl(n¼_38èØPû­æºßwl(Neßwl¨ýæSä~ß±¡8±(û¾cCí÷hy¿ïØPœ¸í*™¹õÐkŽ÷/¹U„Àä|Š4¦ì3·z͘§-kV·zÿ#WNL¶WÔ\–*BNê$Å“ó)Ò˜²ÏÜzè5Gª4?5Éû×A“½¿ÉÓšÕÞ•=9¹­_kV· Ì9ëÎ&O�3së¡�J’¼ÿþ\®íбAÄç »y¼²MªV�p*WÖ̲ÙlÑ©äûŽ ">±›Ç+²lgn=ôš#œÊºìûŽ ">Çy7�W�ôhµ¢¦$É„0«‡|ß±AÄç õ¾cƒˆÏqÆû×Üzè5G8•+tÉæpøþå1Ϭ|ÍêV•{åUšŸºò÷ç JŒ÷ç >|?ØPçæxG6”�ÑF6”†}?ØPç&ÚîÁ†Ñd!ØPböý`C�›mw„`C‰Ál„`CÉùöý`C�›ª;B°¡„,ÊF6”†}?ØPçžãŽl(1˜�l(9oØ÷ƒ un¤w„`C‰¡m„`C‰çíûÁ†:wÓ;B°¡ÄÐ6B°¡Ä€bß6Ô¹i}G6”m#J þl¨s~G6”`#JȆ}?ØPçãŽl(1ÀF6”�Ø÷ƒ un¢qG6”ˆ&¶‚ %†aß6Ô¹»âŽl(!k!ØPböý`C�›Â!ØPbˆ¶‚ %ÙF…5«Ó•=EôûÁ†ðïÏqþðý`C�›*vG6”h#J þl¨sc³;B°¡Ä@!ØPbˆ¶ïêÜó´îÁ†ò!ØPböý`C�[+¼#J f#Jˆ û~°¡Î=áŽl(1È6B°¡Ä0ìûÁ†:wWötG6”Ä6B°¡Ä0ìûÁ†:w+¼#J R6B°¡Ä0ìûÁ†:wWTÜ‚ %†¶‚ %жïêܨõ!ØPbh!ØPB,ʾl¨s³�ß‚ %†¶‚ %Ä`ß6Ô¹ƒ;B°¡ÄÐ6B°¡ä<Ø÷ƒ unÉàŽl(1´�l(9/ʾl¨s«¹Ý‚ %†¶‚ %†aß6Ô¹×w„`C‰¡m„`C Y”}?ØPçCß‚ %†¶‚ %d°ïêÜé!ØPb!ØPbhþl¨ssÄ;B°¡Ä(6B°¡ÄÐìûÁ†:7Ûè!ØPb!ØPbh²}?ØPçfÞ‚ %F±‚ %†mß6Ô¹UîÁ†£ØÁ†R¤ìûÁ†:÷àxG6”ÅF6”�öý`C�{ ¼#JŒb#JHeß6Ô¹©¢w„`C‰Ql„`C‰¡‰íûÁ†:7UxG6”ÅF6”ZÛ÷ƒ uîŠ9îÁ†ƒÙûŽ µßõÄû}džâ¤Ð¾ïØPû-í¸ßwl(~Æö}džÚoiùý¾cCñ3оïØPû­Þï;6uÞ¾ïØPû]1Çý¾cCñÄö}džÚïaÝï;674Ù¾ïØPû}âë~ß±¡¸¡EÛ÷Šï× H:6Ô~[J°÷ûŽ ÅÉ`ßwl(n¼4 ï_’*ï0«Gà¤Ø¢S…S¹HÞ¿š„÷%p¹¶CÇ— Èn¯l“ªÕ#k†S¹Þ— È‡Ž µß•Üï;6eßwl¨ý®ü~ß±¡¸ö}džÚïÊô~ß±¡8Y”}ß±¡öûàý¾cCñóhßwl¨ý>ëû}džâ¤Î°ï;6Ô~WÆý¾cCqQçíûŽ µß¤ã~ß±¡¸(mßwl¨ý&ýý¾cCñ¢íûŽ µß¤{¿ïØP\4Ù¾ïØPû]™ßï;6-Ú¾ïØPÜxÿ}gVSå÷¹ÜîW+Ì„œ;`4ɹÉûg…Y™œÕØPçÆ¾#$ØPB&Ûvÿ~Z80F.Z80Z  ßÿöÿºÿ«ÿõÿ¬ÿ³ÿòÿ­ÿ»ÿ°ÿ¹ÿ¼ÿ¾ÿ±ÿ¶ÿÄÿ¯ÿ½ÿªÿ !·ÿ#"%$&ÓÿÑÿ²ÿ('Åÿ)+*-,§ÿ¸ÿ/.10oÿØÿ2Îÿ3Íÿ¦ÿ¥ÿ546üÿ7Ïÿ8´ÿ9šÿ×ÿ©ÿ:µÿ;Öÿ=<>ÒÿÇÿ?Œÿ¨ÿžÿ@‘ÿAB‹ÿÐÿCD�ÿEÔÿ�ÿÊÿGFIHÂÿ–ÿ�ÿJK›ÿËÿL—ÿƒÿÀÿŠÿ®ÿMN“ÿPOÌÿQ’ÿˆÿ˜ÿRÝÿS�ÿœÿÜÿúÿVTÈÿU¿ÿÉÿ÷ÿÕÿW¡ÿ†ÿÛÿYX”ÿ‰ÿûÿÁÿôÿ™ÿ•ÿÿþÆÿåÿ÷ ò‡cÃ/F»ß-½JûÝÒïˆvÈD;ÝRpÚQYؑêlÝ2޾@éÃùg�?(‚kè5ÏøT— <.—…ù�ÝâëcÅžµ$$ké.;¤ít#~PcÕ¾ƒU«ÒtÌ>mýÈvº¥p„„GÒ¤ŽI¤¤ŠàúA±]öסK{RD²½Õ#°C—#•&Åögeš´í­^J»ì¯{:²jߥK÷¤Ò\÷)�À].e’I¬û4»”¤®£Ù[ý RvèÈþ¬ÚwHÛÞjý:²2MŠí²ï¢_GV»O“ÒÞjýRÜ¡Kû”)í/m«Ý“¸}—ë�&í#Ð.R‰¥!E`u)í²?+»ÏÔjÃX×ÕyÆ+Kw¾ÜŠ$ކѤŽ–Å»öãê‡öCó‡öÓâÈ ûé߇ym²N&�ÊÅcyqÈŽ¥“Ý{“…Œ¶¦¬qÆz;î(9}”/—{'V J>LvïM28ÿa²mÖ¦�Þ�ÊÅó*ï²ôa¬Åìë´ÕB¸ÅgªôÁQrúnDÓ¿#Š˜F14QĸúaVð‡ŠP“þ!œ‹ßÍk“uãsñ&»÷& m?Ì þðƒqåÝd÷Þȶ¸ò(¹ØÆ••¬™žñ\W®™J&»÷¦�+�*"üáÊ5Séìà”pˆG<Ù${>±JÛrœ»g��OJ0ø!ïæµi¡?äšé(QŒç#ÁUóârñ¼Ê;úJN•>|˜ìÞ›ýU3…åöc•ã>n™dÏW3=ºÇ�Ò‡Éî½)—�Gþ¸�«æ…ôa²˜ôZûc-f_o˜k�¢®ù@”>|˜×¦úC¦[ý0¯�ÍC¼,õþ}˜üáƒ*ëÜõ‘¸j^H0¸�Än^›z‰šé‡›ìÞ›ýU3ý0Ù½7Eø²ñ‡ÉbÒkí?Œµ˜}½aj¬õáü6ýÓûHЭ~˜×Ʀ�„àe©÷ïìà”\lãÚ2¶¡Ÿwr\]E>›þY—³ia)}�Ûòòn^šõnÉ£ºÝ æXç�gñÚ2¶!}˜×Ìú0+øÃ•‹Ø»²’5Ó3žËáÊ5Séƒl‹+ïæµéŸ^V²fúa^›:®\3ý0¯ Í:Ùb7‹�jËØ†Eïä° �¦xéüfÖ‡YÁ>¨V. ;òÉ›LËYo2-Çåj¦güµ�î6 <§›„ôaÕLw#6ì§Å‡EŒI|˜DYã>ÌkccÉDKÝ�Їgéü66&a‘œ‚¥îF!ÑŠóÚØ˜„E‚ˆ–º•·µÂó­Èe5éìàTá˶r\-ëŒKŠð¸òn^›:®\3ý0Ù½7û«fúa^›¬á«y&»÷& m?Œñy܇±^³¯û‚+�¢®÷Æ'Qúða^›þé¸2ݪEr:1…óÚØàÊ‚—¥Þ¿³‚?|ðWÞÍkÓ?W®™Z$�_5/Î;9Îø“Ñ%Cú0¯M ÝW“ôü64ëdò‡yͬóÚµÐ}•19£|¹j^œˆ.b­²ñn^»¬‹E·:£Ä2žyŸ¼ºù̦ø“Ý{7YÈhûa¬ÅÐRøƒúૌÉÝ´¨tòú0-*�W?L‹*�֗ò­»Ó~ðUÆ$ÝM‹*�ö4GûaZT:y}˜•Ϋ¦E•G›ÖÚŠðeã݈ ûi1£Š6-,¯fzµ¬Ø[=;t¹.VvÔ©.öi_JR×}šŽ¬Ly)í²¿´í»toÕ>íë¨C—.—ÆJRdoUú Ø®î»œ]º\’I¾ÙÛ§¹ŽY%eeš´/mR¦¹îÓ¤$uŽRiÛ[í�Òžä´:«öº�JÓ!E$ÛPYØ‘¯û4)í­vÜ)¶—îɤÒtìRÚevH+ýRÚe]ìÓ¤ìžû4);�LrZ]‡Ž:²ï@r÷i:öA¥ÈÊ”—²{ì SL*M+ è>MǮ㒲ÒêuÔ¡Kû.gW·¿ÙÛ§9«öi[™bû´/%©Ki—ý@ʪýÕ‘}Úö]RZí¾CšKI )éÕ–Ü;ãÓr¹È²óíVX°™x›o¹,Žv¹ˆ½+õÊ2IãÝû ªyqÞÉq]{“ûK–Àëc…ô¡¬dÍt7-*�ôe%«ßM‹*�ö4Ó~˜Uí~·tíõA}À•k¦»iQé¤Ï¨šé!»Åx] ÷—~µ¬kQÝöøÚ2¶ñW®~7-ª<ÚÓL;jƲ�ëv¹w ¯–uÕ¼8ïäø0-ª<ÚýnéÚµa\$8<šâ¯ÔÛï–þaZT:é3 Ù-¾®†û‹‡çKÿ0-*‘ E$èè^-ë²°#À•¯Ý´¨8ÄU˺ܻå2Ç:QŒçXÔ‡‡\3ÝM‹J'}F=ƒl|òªyq¼‰¹úÝ´¨òhOC0í‡iQåÑŠåµ3J,ãùªyñaZT:é3*ž/ýô¨8D‚>(B ñƒj¥š‡gð²{/Úѽã>Î!†L_¬s|Æ>6rHT׸®æ½Û0®š‡"2ž¼åþžI�ËÂŽŒçP–r‘wT5/¼“CzÁ‹Öq‡ì|s«]‹ê¶Ç×–± ýƒ*ë¸�kËØÆy'G;ã�û8ãmKvlŠ×ÏÔs~Oúð¡•jîæµ1{z©Ï%q”(Æó9¾²±ØøêsɳuKú0¯��Ù³Ô-Ú�%ìŸÔG¢šg)•%Ù�%ìŸô�«y–Faðµ¨n{|ec±±ôa^›þé­f:Jãù_‹ê¶ÇW3½¼Âq´£{—…üa4�ª®"_.²ì|»g|Hæµi¡—•¬™Ž’‹m÷qÕ¼8ïä8㹜{ïJý0bÃ~ú7£+‹�?Ìk—õ¯š7£ªYÈ×âÇåm­ðüa²{o²�ÑöÈ"¦Å‡yí².»ÔjÞŒâ>ü­ Ì+LJ±“…Œ¶>4L�µvóÚµÐc-“ÆzM¬U6¾•,\.Ö*ëÊÆbã[ì?¨±–ŒÉÝ´¨òh›ÁÔ‹µÊÒbÈôí�£eq4í‡iQéäõaZT:¯~˜UmZk?¨áÛCÞ�ªî½ã~mÇår}Ò‡‡\ßn^»úC¦[�Q-Nã�Ë!»ÅæµëŸnó�/ËÕ¿ÅxÆãry[+<_îÝú0¯ÍúC®™Î(Ñ®fz‚×Õ². ;ò‡±^#3ÝêÝõ!|ë#±UÝ{ÇýÚŽËõ‘¨OúÐG¢¾Ý¼v-ô>t«3*YÏx¯–uùªyña^»þé6}$/ËóÚѬ÷‘¨™~Pd¦[ÝÍkçô7šNU�ogê+rYíhÙ|skïÃ8ߎL$ч±^·¯ËL·J¼¹Q¦Þ¾¾øa^;›þYê™ßþŒ_ÇïŸÃ‹ROv+õƒú 3Ý*q7bÃ~hžQèlãj¦'x}˜²Î�¦Sån]vkí}¤ùú§·˜QÙ½|:ºÇ�güÑ­ÖXÆz�ß×ÝŠyîF™z~_w+nE.«áq¹®Ëp|QÄÑ<šNã"aøÃ¬àêƒ[±"ïæµ£:‰FÓ©èuwØ›Ê—Ëæ9Ö‡flÉÄn»Áõ®M§:ºÇ�vÈÄn×ÝYèVä²~˜µîÞ‡iÖ~š±%»Ý�z¥ˆcó®Ô‡yí¨þFÓ©èuwº¹¬†¦¬s£éTÕøv¦^؆¿¹¬v.éŒÿ0Öëöõ°õ+òÝõaŒÏGGÓ©ZñZ¾®Îóq¹W0N¸ÅƽaëWäÝDâZèý›Qý»îŽnµÆ:QŒçXF1-fT‹ëîj¦'Šñëƒú0Ù½7õѭΨ®ËpÝj�u\®Lý0¯]ÖóÃjތʯ`\Ý|fSü‡öÓâÃd÷Þd!£í‡EL‹³‚?¨õÑ­îFlØÍ3Švg¡õÜ]îÝú0bÃ~ú7£ú×Ýj�u¢ϱ>ŒØ°Ÿ3ªEw5Ó¼>¨‰k¡÷oFµ8_º^wG·Zc�àõa^»¬cp“݇Éî½ÉBFÛÕdw¾t½îŽnµÆú >Œ(bZ̨dðÕLOð:êrê‡öÓâüvYïºüšQ]—á8 ¾ùêæ3›â?LvïM2Ú~P¦¬s£éT|õ¹$~kq~_o˜k}PF1->Œ(bú÷aDCóõaZä£fßþh:•©·¯»÷nE.«áu]†9üõa^;§¿ãZ;§“‰ÝfÔ&šʶ®fŠÒ‡ÉÛòò‡ELÿ>|˜×¦…þ�k¦FlØOÿ>Lvï�Ü–—?Œ(bú÷áü6-ô>5Ó#6ì§&»÷FnËË>Œ(bLâü6N·1 ‹$ÅrTî#§–må8‘¥“ÅhO; …Ë!}ë5ûz«¤ÓGm×¢ºíñ¡ˆŒÒ‡“Åh-Ð~ë5>ë­’I�2õ´h%I»¯ÕoøÕm�¥–m帶ŒmŠÈÒ‡Á�ŽÖi É£´N+IZ¡½îHòÈ’ôa^›²’5SKÝ}˜ª•ë#!}h•Lz7¯�ÓmLÂ"9ÝrT2øúHŠÈÒ‡Éb´§ý0ÖköõVI§Ï(_N.+Ed”>¨>‡"²ôa²­Úc½&ë­ÓgT5/EdéƒÒZ %ÔîkwçËõ‘¸j^HfN‰jžncö,?ŒõšV‰¤?|P}$®š‡"²ô¡Ubúnp££uZBò(­ÓJ’Vh»#I²$}˜×Ʀ�DÍÔRw>¨VNËKZ%’ÞÍkãt“°H&[ŽJßC>‘¥“ÅhOûa¬×ìë­’NŸQ¾ŠÈÒ‡ê!ŠÈÒ‡Éb´h?Œõš¬·šBúŒjåªyq("K>(_N,ãùªy!}˜8¹š§Û˜=Ë“ÅhÚ•‹ÇòŠc½Æïë­’NŸQ¾HÔ^ t¾�$–?.—‹ÇòBú0<9¯Û˜=Ëc½¦UÒéT+'‰å¯š‡"²ô¡ÕÒwƒ­Ó’?Ìkcó�k¦–ºûÐ*éôݬࡦÛÅ}œC ™¾X—Ý{xlÊѨeÅ…Ëý ‡(Ý}Pq“ãÜ{·"‰Ò 6e7Ù½7Œ+�Â`ÂM–må¸j^è×µ7¹?yC¾Hdéü6N·ÑË“Å?Ì ¿?£Ü{W6 N8Ä#J>Ìkãt›RŸK¢å‡¡†§�D5Ow£úH\ÙXllŇöãê‡Éî½ñû:÷‘µ(}Qĸúa¨áyÈÕ<Ý�zùªyqec±±&»÷Æïëü�?Ì þðAjº}P®r¬ —ûQ?‡2}±.»÷ðÂ7SŽËåW0®šøA9ß®kïø|aéÎ!nrœ{ïV$ r,”>„o¦ìæµqº�pˆ¾X~˜,†øaVðøýQ¾po|ò¸\+ú™z¾ð ‡xDéÇymœnSêsI´Õµw¬ÅË¥¤Ÿ´âÃPÃÓG¢š§»#6ìÇÕ“Ý{ã÷õð­�ćEŒ«†ž‡\ÍÓ݇Éî½ñûzøö�?Ì þðAj¬ø -‹/÷‘SñRc�·ÚÕ².Ï«¼Ëú9ß®«[òÑRã¸æØ�(Æs¬óÚ=Ý}ëu>ëõÑ­Þ}ãóõÆzM}t«w>¨>W6_.ràõ±Bú r_6Þ�ذš?ŒØ°ŸFlØOÿ>Ìk×?ݦ�„àe9£èVk¬ÅxŽõa^;§÷£éTÉàëM²¿²Z¬“ÅÙô‘ [µHN'’¶´C$MÂÓtŽªÛ{V|ëuûz“E‰»Q¦Þ¾N·Zc]ÝÞû >ô‘ÈýÚÍkgÓ?K=ãóõo4�ʾº½§[oȇ\V\îÝú0¯�M ÁËRï߇±“ ¿‚?¨M}$v#6ì‡æ…Î6.÷n}˜×ŽêÝFÓ©ºÝŠ\V;ºÕëüvýÓûHЭÎ( ÞÄÕ²®>ºÕóÚµÐûHÔL?LvïM}t«Ô‡E Í3*|¹wë¨Ë©æµëŸÞG‚nuF!»Åçøh$�÷Æ'Ï%�ñÆzM‰Ü¯»J8Ä#ê÷ ²ñÉ«æ…ôá!—݈ û¡ùÈ ûiñaĆýôïüvýÓm²àeùa^;§÷&‹³yÈt«ÉéDÒ–vˆ¤I8ªnïYña¬×íëMùæFíêõmØPrî×n^;›þYêyF!——{·Îø3vÊÑ­ÖXÆø|ýM§ÚDs'Šñëüv6Yð²Ôû÷a¬Å$ïàêC“ÅCÞ�ذš?ÌkGõn£éTt«5ÖuwÝnE.«á‡yíú§?dºÕ…ìŸã£‘4ÞŸü0¯] ý!×LgTÍôjY—…ùÃd÷ÞÔG·úA}QÄÐ<£’ÁǽÁ+‹�/÷nu9õüvýÓ2ÝêŒZ�ìŸã£‘4ÞŸü0Ökrî×ݵµã>˶r\5/¤»¼-�—ùî_×>üáÊgðªñûhÒ‡Õ–ñ»öCó‡öÓâÈ ûé߇yíú§ÛàÊ‚—åŒJ®|¢ϱ>ÌkçôþÃdq6¸2ݪEr:‘´¥"iÞ(á�/|³â>Œõº}W^ínFíêÉrÉà“ËŠêƒOpî×n^;§ÛôÏrF%ƒ/÷n}˜,F»¯%Ìü>Œµ˜}=~�jÅkùŒÏ×?ý°\׸dðuüþ‡Ñ�„*¶±ÎùvÅ6Ö¹¤3^ú0Æçë߇yílpeÁËRïߌBg'ŠñëÃX‹I†_ÁÔ\yµÝ¼v4ëéݺ¥÷3Švg¡õÜÝã@;+ò‡yíZè¸2ÝêŒj�l¼cSüõÁ'xEÞÍkãtí¾–0óe¼áã>nE.«—ëø}éü66-,u÷aĆý´ø0bÃ~hþ0¯]Ö1¸ÉîÃd÷Þd!£íõa^»:®\3ý0¯]ÖWókF­pí|yl“>Jv©q}$®l,6–><ä\ü„Û�G=ƒ|Å_.Ë éÃC®æMX° qÔ3ÈWü¡ˆlª‰vÕ¼�>¼ú\w×¢â�G=ƒl|òPD6ÕdǦxuÞCÎÅë÷�«yG £ôÁ‡ôí¦EÅ!�2õü¾~­x-ŸC ™¾�>˜Š¼›‡<ÊÔK�x¼\N½RÏ0Æ«×Ç éC¡ÖÙónZTòh:Õùr¥ÝãÀ3þ µ>ºÕúaEvmí¦EÅ!ަS»• >×ÚºR�Œ|t�ãJ½¹¬öÙµ¶vÓ¢âGÓ©Ù->×Ú:ºÕëjY§ ß´WDûP¨5ÝênZTœÍþh:Õj™/—G·Zc}¨\R×nZTòh:ÕÕÍg6Å—Ôð·"i�c}¨ÙónZTòh:ÕÕÍg6Ų˩—Ëæ9Ö‡Šœº›Gv‰Š©£éT‡ì_©W7ŸÙÈ.§~p+{ÞM‹ŠCM§:· ÷r°É‡ìrêå²yŽõÁ-äÔÝ´¨8²K8LM§:· ÷r°É‡ìrê‡iQq�SÑì@v9u7-*Núh:Õ!»œzuùúXqÔåÔëøêÔ•›´¶H$MÚRr¾I鵦§÷£NÞ�Ù-¾âO¸d-›oní}PpeºÕÝ´¨8ätb 2ÝênZTr:1…}$èVwÓ¢â�Ó‰)|PpOfGwÓ¢â¤�¦SîÉ´¼cG_\+ŽËÉ!s>Lø6*|»Ro¿[z•ö»¥«»ç�¯šgüíwK—ö»¥_î�ñÒ’ª’û£Î!†L_´Ë¥ÅÑ­ÖXê6ŒvtïúHœóí²ôÁanwÓ¢âG1!\ !ÍÇ2*.+"{46ë![5Ù+ ~y°Â!ë"y4Ã!4¾Èw_ÍÉ#~þ ʸ ÞAÉ:4É~ÍÞ~#þ ¼ > ÍÞÉ\ þ?Ê» w#ÂÒ É! ͼ Ã? ÍþÿÀ!¹ͼ ÃÍþÿÀ!)ͼ ÃÃÍþÿÀ!Ðͼ Ã:5Í¡ É:6þÈþÉ:6Í¡ É:7Í1!\ !ÍÇ2*.+"{46ë![5Ù+ ~y°Â!ë"y4Ã!4¾Èw_ÍÉ#~þ ʸ ÞAÉ:4É$øVä²Ú‡Éî½ÉBFÛêÈ"†æ#Š˜&‹#�¦S‘Oçñªyq­øø0Öëöu\¹÷A}˜×Îé1šNµ‰æ8®²ñŽMñƵvNÏæµ Ý}ëu>ë­¤Þ}ãóµ­¤î¦E>:šNÕŠ�ëv+rY ­ø0Öëü¾î¼"ÏÝ(_ô\<¿ÅõWnÅïæµëŸŽ+Ó­Î(d·ø�¤ñÞøä‡±^ãœûu÷áƒrNÝݼvN?õ–3*|½IöWV‹ut�ãJ=Ú ^x^{æµ£ºM§JÔXÇåè‡yíœ~6$ì-gÔ+]�îq—sfPrñeã݈ ûšg”/·"i�cáÉnïh\ äUö¢}±a?->ŒØ°Ÿþ}(§°›×ÎéùÃd÷Þˆ�sñÔ‡dø¼QÄôoF%ÃÇrïVð¶üղνw¸Ñ¥Å#ЏiñaDCó‡YÁ>ˆ�sñ»yíBw£éTYØ‘/_6¾ºù̦øóÚe½lœË¨êÞ;î×v\. m¥YÈh»åòÞ=Ãüâ¨)ˆ�Žñ´!ߊ¤AŽ…ú%ËÛdý’åm²¤!‰‰ÄÙ}bÃþh>»OlØ_‹³ûĆýõïì¾H$>L$ÎUÝUíÙ}bÃþ\=»/çªîªöÃd÷Þd!˜Hœ«º«Ú³ûDçêÙ}‘8WuWµ&‰³ûD׿³ûD×âì>QÄÑ|v_$fPÁ5õƒZN>ä²\2έpÒEpMý ‡ÌEì¦EÅ!ަS]o’} Ÿ³uæ9úâ–“ï•,�km}Ñ—Ý´¨8äÑtªñü&ÓXžñÂónZTâh:Õ‰b<Ç:.÷Œ�£[­±>øç…çÝ´¨8ÄQ¢ÏÇå|$øp£„Ïø8ãïG·ZcIžñÔánZTâ(QŒçãry[+<n”ðgü=ããèVk,éÃ3žnu7-*Σ÷->šàåfÔ=ããèVk¬byºÕÝ´¨8�VÜ·øh‚—›Q'–ñ|t«5–ôá9J·º›‡D£éT÷�wt«5ÖÜ“éVwÓ¢â�ÓGÓ©÷dZÞÑ­ÖX„KÆnZTâh:Õ —ŒóE:š›å‡VònZTò¨V¼–ïäÛü ÄóûÒ‡(ÏøØM‹ŠCå÷¯kþ|t½g|œÁó-šôá!gÏ»iQqÈ£ü&ÓXWê=ã�Ë=ƒlGô{h²{÷Œél0øèÞ‡Ñt*í3ÈçµÒ‡×Õ´ØM‹ŠCå7™ÆºR/÷náq¹g�íˆ~Mvïžñ!�ñ†Å‡Ñt* Æ3¬Ÿ{+Úu5Ü_ZžAîšé¾ìy7-*y”ñ†£Ý;~ÍÞ~#þ ¼ > ÍÞÉ\ þ?Ê» w#ÂÒ É! ͼ Ã? ÍþÿÀ!¹ͼ ÃÍþÿÀ!)ͼ ÃÃÍþÿÀ!Ðͼ Ã:5Í¡ É:6þÈþÉ:6Í¡ É:7ÍÃ1Í/ÍRÍ£:Z·Ê !H 4~þÂ?! ˆÍÇ2rÍGÍïÍDÍ‘$ÃÍù%*ª."p&:©.æ2r&Íþ%:C·Ä[!Í:A Í' :B Í' ÈÍGï Z80MR VER 1.2 FILE 12345678 þ?Ê» w#ÂÒ É! ͼ Ã? ÍþÿÀ!¹ͼ ÃÍþÿÀ!) 0000 ERROR(S) ASSEMBLY COMPLETE !"þ*y4~·Ä!þ}´ÂïÉë! ~·ÈåÕ¾#ÊÑáÚ Nwy#Â"þà Íj ͆Íæ—go2Z2ñ2C "D "F "A 2ã&"å&"ç&"é&É!+~·ÈÍm~#·ÂdÃ^F#N#"Ÿ>ð¡2>ÿ2¡*y4ë*Ÿ·È!~ ©ÕÅÌ¢ÁÑ! ëÃ:¡<2¡ÂÈÍïÍï*ŸëÍëÕƒÍÑÍïÍï:¡þÌïÍûÂÒ> ÍûÍÍ> ÍûÉ> Íû>2¡> ÕÍÑÉ:·ÊPÃGÍõæþ Ú$ÆÆ0ÍûñɃ€UNDEFINED@@DOUBLE DEFINEDERRORREDEFINEDPUBLICEXTRN#ASEGCSEGDSEG SYMBOLSåÕÍÌ!Z w#·Â”Ñ!I 4áÉÍŒþ*Êø!ÜåÍ�Ín!·Í.:C ·À!èÍ.*_ë:þ Âè:þ Â#'É:C ·ÂôÍãþ;Êôþ ÊôÍð&ÍmÉ:C ·Âô!ÜåÍÝ2Íãë"_!Í.áÃôEJECT AHEADIN:INCLUD“LIST WMACLIS^—2I ÍIÉ:H ·ÈÕrÍPÑÉÍe2BÉÍe2<É—2I ÍÝ2ë"_!|Í.Íû&>ÿÉOFF ã ¿ãr„duI|ÆÇŸWÈáϰôAq¿¡~]ûðçüÞ­²±ñ�güqçC¦/Öå>rêÖÏðu5ï�û |ñ„û±Ê™zrYqÜ;ÅÇáF Ÿñq½Ã£þ’…9üÿAqoðD¿‡&»wÏøÐϽWºŸ<[·LÙ𜫸ܗã>îdã“ÔŠ\V»¼Âq´£{.÷—j|»RÏ!†LßžôŸ—WênZTò(Ü(á3>Nv+5–:ìËöÚÑ8ã G;.÷a4� ‹ÜŸTg‹MvïÖöŠÏøØM‹ŠCM§ºg|œßdëC¬E·º›‡<šNu±VYg|3ÙqYG·Zc}`ñvÓ¢â�Goø¸Üþ‘àŒ7,ÔaðѽcÃOÝ þ0šNE÷.Ö*ëÄ2ž�OÞ*Ò6œ=ï¦EÅ!�2Þðq¹ô#ÁoØégêù8ò9>ã ýÃh:¦[=ƒ—_¸MúàÚŠšwÓ¢âGөε¶ñVÔXás\.›çX\k×nZTâ¨s­­@¼fP<·w+’9–º £Ý»>W6KžkÍànZTâ¨k†¹èG7¾ £Ý»‡|ec±±ôá¹ÄnZT⨠£Ý»‡üüq9±Œç 6ý‚³t¶îm�ÒƒÏ%vÓ¢â�GÕç’ÇåŒo&;Ž3õžKœÁ³uÏ4éƒÃÜ|ÙM‹ŠCu¾HWêÑ=¼RÏ!†L_´Ë¥…º £Ý»>Ò‡—›/»iQqÈ£ša.úÑ�oÃhG÷î!_ÙXl,}pˆ¹´Ý´¨8.S4û£Î!†L_´Ë¥ÅÑ­ÖXê6ŒvtïúHœóí²ôÁanwÓ¢âG‰b<—ËÛZáù^ÉŽMñÇåbÈôÅÿa4�Ê!æÒÔmíèÞõ‘�>°aºÕÝ´¨8l;EòŒ:6üâèVk¬¸'‡o»iQqˆ£éT'Šñë¸\øv¥îÉ´¼cG_|(‹SiÝM‹ŠCM§º"b9.븤†?ºÕë‡,vÓ¢âGÓ©®m²¼w¯dǦø¥Q&ï¦EÅ!�¦S]±œo„äã’þèVk¬¥Q&î¦EÅ!�¦S]±œo„Äã’þèVk¬¥ÏäÝ´¨8ÄÑtª+"–ó��|¶îmñ¡4㙸›‡8šNuEÄr¾ÏÖ½->¸ú\wÓ¢â�GÓ©Î!†LßÞÕç’øa4VG _úžkm]3˜‹géêsÉ£±°:jøÈGxáÛÕç’FcauÔð�ðpO¦Ç޾¸b§^}.ùa4VG AGxÏ Ÿ<ךtÍ`.^ºú\RúPêsIÜM‹ŠCU6ŠÈ¦šìØ/5Œ»}$ª �ON �>É>ÿÉ:ñ·Â!!—w# !# ÕÍÇ2Ñ: 2!þ:ÂØÍ93ÖAÚþÒ<2Íþ.Âõ!"> w#w#w!"ÍÍãþ Êþ;ÊÍû&ÉÕÍÍÑ!ñ4ÉÍ93Í3Àw#ÂÍ93É LIB¾ÂH# Â4^#Vá*_ëéØ~·È ##Ã.!òÍÀþÊ¡þ ʃw#þ Âo>°GxþPÚWÍÀþÊ¡þ Âv6 #6 #6òÉÍÒ2ÍãÍÝ2Íãë"_ëÉ:ñ=òº!ò6 #6E#6N#6D#Ã2ñÃRÍÙæþÊÀþ Ðþ Èþ ÈþÈÃÀ:ñ·Ê# Æþ Êãþ ÊãÉÍÍãþ Êþ;ÊÍû&ÉÕÍÍÑ!ñ4ÉÍ93Í3Àw#ÂÍ93É LIB¾ÂH# Â4^#Vá*_ëÍÈ : þEÐ: þXÊÈ ÐþEÒÈ Õ·ÊkÍ:Ã_ÑÉJ :I ·È:H ·ÊÌ*¿}´>+ʉ2Y :J þ Ê©:B Æ'2B :A Î'2A ÍGÃÌ:B·ÊÌ:8/*C ¥ÂÌ*¿}´o:</¥ÂÌÍP!J >6 #=ÂÑ2I 6 #6 #6!P " ÉåÕÅõ: þX :0·Ê Í !ñõÍ' " ñÁÑáÉÍmÍÑ&åÕë!K zÍ' {Í' ÑáÉÍ* õæþ Ú8 ÆÆ0w2I #ñÉ: þEÐ: þXÊÈ ÐþEÒÈ Õ·ÊkÍ:Ã_ÑÉJ :I ·È:H ·ÊÌ*¿}´>+ʉ2Y :J þ Ê©:B Æ'2B :A Î'2A ÍGÃÌ:B·ÊÌÍÍÒÃÍÈ ÃÍj ÍD͆ÉÕ·ÄÔ ÂÉ ÑÉåÕÅõ! þ Âî > ÍÔ ~æÂà Ãü 4þ Âö 6_ÍñÁÑáÉñõÍ' " ñÁÑáÉÍmÍÑ&åÕë!K zÍ' {Í'åÕ*Ô >ô¤Ê\ Å÷ ÕÅÍÖ Í·ÁÑÊO >ÃX !€ëÂ4 Á!å÷ ~á#"Ô ÑáÉ!"Ô ! Ö !ÍÇ2!ß 6 Ö@Ú’åÕ*>ô¤Ê¿Å:ÕÅÍÍ·ÁÑʲ>û!€ë—Á!å:~á#"ÑáÉ!"—29Í­ þÿÀ!ñÕ ÍÇ2Ñø 12345678ABC INCLUDE FILE OPEN ERROR ÍåÍ!·È/ø OBJECT WRITE ERROR >É2D: þZÂZ>É2÷2ÒÉ! å!ÍÇ2!Ì>·Êr!ÏîÍÇ2—2: Ö@Ú’åÕ*>ô¤Ê¿Å:ÕÅÍÍ·ÁÑʲ>û!€ë—Á!å:~á#"ÑáÉ!"—29Í­ þÿÀ!ñÕ ÍÇ2Ñø 12345678ABC INCLUDE FILE OPEN ERROR ÍåÍ!·È/ø OBJECT WRITE ERROR >É2D: þZÂZ>É2÷2ÒÉ! å!ÍÇ2!Ì>·Êr!ÏîÍÇ2—2: Ö@Ú’åÕ*>ô¤Ê¿Å:ÕÅÍÍ·ÁÑʲ>û!€ë—Á!å:~á#"ÑáÉ!"—29Í­ þÿÀ!ñÕ ÍÇ2Ñø 12345678ABC INCLUDE FILE OPEN ERROR ÍåÍ!·È/ø OBJECT WRITåÕÅõ>€*¥ÄW7ñåwá#"ÁÑáÉ7ÍÍ!·Èrø PRINT WRITE ERROR >É2†: þEÚœ>É2:2É! !ÍÇ2!6P#6R#6N—26: Ö@ÚÊÊÊþÒÊ2ÍÍ!"þÿÀéø PRINT FILE CREATE ERROR >Í:ÍWÍÉÍåÍ!·È/ø OBJECT WRITåÕÅõ>€*¥ÄW7ñåwá#"ÁÑáÉ7ÍÍ!·Èrø PRINT WRITE ERA#6Z#6M—2ö : Ö@Úž Êž þÒž 2Ö Ö Í­ þÿÀ¼ ø Õ€ÍÑÃINPUT FILE OPEN ERROR Åõ! þ Âî > ÍÔ ~æÂà Ãü 4þ Âö 6_ÍñÁÑáÉñõÍ' " ñÁÑáÉÍmÍÑ&åÕë!K zÍ' {Í'åÕ*Ô >ô¤Ê\ Å÷ ÕÅÍÖ Í·ÁÑÊO >ÃX !€ëÂ4 Á!å÷ ~á#"Ô ÑáÉ!"Ô ! Ö !ÍÇ2!ß 6A#6Z#6M—2ö : Ö@Úž Êž þÒž 2Ö Ö Í­ þÿÀ¼ ø Õ€ÍÑÃINPUT FILE OPEN ERROR Åõ! þ Âî > ÍÔ ~æÂà Ãü 4þ Âö 6_ÍñÁÑáÉñõÍ' " ñÁÑáÉÍmÍÑ&åÕë!K zÍ' {Í'åÕ*Ô >ô¤Ê\ Å÷ ÕÅÍÖ Í·ÁÑÊO >ÃX !€ëÂ4 Á!å÷ ~á#"Ô ÑáÉ!"Ô ! Ö !ÍÇ2!ß 6A#6Z#6M—2ö : Ö@Úž Êž þÒž 2Ö Ö Í­ þÿÀ¼ ø Õ€ÍÑÃINPUT FILE OPEN ERROR Åõ! þ Âî > ÍÔ ~æÂà Ãü 4þ Âö 6_ÍñÁÑáÉñõÍ' " ñÁÑáÉÍmÍÑ&åÕë!K zÍ' {Í'åÕ*Ô >ô¤Ê\ Å÷ ÕÅÍÖ Í·ÁÑÊO >ÃX !€ëÂ4 Á!å÷ ~á#"Ô ÑáÉ!"Ô ! Ö !ÍÇ2!ß 6A#6Z#6M—2ö : Ö@Úž Êž þÒž 2Ö Ö Í­ þÿÀ¼ ø Õ€ÍÑÃINPUT FILE OPEN ERROR Åõ! þ Âî > ÍÔ ~æÂà Ãü 4þ Âö 6_ÍñÁÑáÉñõÍ' " ñÁÑáÉÍmÍÑ&åÕë!K zÍ' {Í'åÕ*Ô >ô¤Ê\ Å÷ ÕÅÍÖ Í·ÁÑÊO >ÃX !€ëÂ4 Á!å÷ ~á#"Ô ÑáÉ!"Ô ! Ö !ÍÇ2!ß 6ROR >É2†: þEÚœ>É2:2É! !ÍÇ2!6P#6R#6N—26COND \ELSE ‚END ÆENDC ¢ENDIF ¢IF \ASEG rCSEG wDATA ÙDB ÙDDB DEFB ÙDEFL JDEFM ÙDEFS 5DEFW $DS 5DSEG |DW $EJEC AENDM EQU QEXTRN ÙLIST LOCAL MACRO ¹NAME •NLIST ORG XPUBLIC¥SPAC TITLE X*¿}´Ä÷&À:þ Ì÷&ÈÕ!ÇÍÒÑÌ÷&È!Å�þ# Í93Í3Âûw#Ãêq Ì÷&#þ,Êá6ÍÜÍ2ÍRÕÍŒÍmÑÕÍ�!XÍÒÑÊzÕÇÍÒÑÊs*4þ ÂUxþÚBp#Ã@Ê\p#þ#Ì�w#þ Â@"4̓Ã!Z4Í÷&*46#"4*_ë:þ Äö&Éå!Á~·ʽÕåÍÜ~·áú²Ñ~#·ò©Ôõþ&ʺñ33áÉ$YM€þ Ì÷&ÈÕ!ÇÍÒÑÌ÷&È!Å�þ# Í93Í3Âûw#Ãêq Ì÷&#þ,Êá6ÍÜÍ2ÍRÍ÷&É*¿|µÌ÷&Èþ#Ä÷&ÀÍ93Í3Ä÷&À!ÂÍ*4+6#Í93Í3ÂQw#ÃA6# Í'  Í' 6#"4þ,ÀÃ"Í·È^#V*_ë|µÈÁÁ:C ·Âôãå*¼å*¾å*4>Áq#p#=œ"4á"¾Í#'!ÀÍ*4"¼6€#:ÀÍ' :ÁÍ' �ÍÑ6#"4̓ÍÜ*¿#"¿ò*¾P~#þÊZ·ú{þ ÚÄþ ÊŸþ#Ê ͵ÃêÕë*¼ë·ÊQþÂå¾#ÊþÊ,áÃ+33ãë>?͵͵~#þÚF͵Ã9á~þ&Âê#ÃêÑ>#͵Ãê*¼>+F+NÅ=Â_"4á"¾á"¼*¿+"¿ÉåG*¼A#6Z#6M—2ö : Ö@Úž Êž þÒž 2Ö Ö Í­ þÿÀ¼ ø Õ€ÍÑÃINPUT FILE OPEN ERROR Åõ! þ Âî > ÍÔ ~æÂà Ãü 4þ Âö 6_åÕÅõ>€*ã¥Äñåwá#"ãÁÑáÉÍåÍ!·È/ø OBJECT WRITE ERROR >É2D: þZÂZ>É2÷2ÒÉ! å!ÍÇ2!Ì>·Êr!ÏîÍÇ2—2: Ö@Ú’Ê’þÒ’2ååÍåÍ!"ãþÿÀ±ø OBJECT FILE CREATE ERROR HEXOBJ>Í÷ÍåÍÉ~æÂà Ãü 4þ Âö 6_åÕÅõ>€*ã¥Äñåwá#"ãÁÑáÉÍåÍ!·È/ø OBJECT WRITE ERROR >É2D: þZÂZ>É2÷2ÒÉ! å!ÍÇ2!Ì>·Êr!ÏîÍÇ2—2: Ö@Ú’åÕ*>ô¤Ê¿Å:ÕÅÍÍ·ÁÑʲ>û!€ë—Á!å:~á#"ÑáÉ!"—29Í­ þÿÀ!ñÕ ÍÇ2Ñø 12345678ABC INCLUDE FILE OPEN ERROR ÍåÍ!·È/ø OBJECT WRITE ERROR >É2D: þZÂZ>É2÷2ÒÉ! å!ÍÇ2!Ì>·Êr!ÏîÍÇ2—2: Ö@Ú’åÕ*>ô¤Ê¿Å:ÕÅÍÍ·ÁÑʲ>û!€ë—Á!å:~á#"ÑáÉ!"—29Í­ þÿÀ!ñÕ ÍÇ2Ñø 12345678ABC INCLUDE FILE OPEN ERROR ÍåÍ!·È/ø OBJECT WRITE ERROR >É2D: þZÂZ>É2÷2ÒÉ! å!ÍÇ2!Ì>·Êr!ÏîÍÇ2—2:~#¸ÊŽ·Â€áÃê~#·úŠþ ÚŠ͵ÃŽ> > —"¾òÍ£Ãâ È ÉG> ͵ÂÅÃêq# þ'ÊðÍ93þ,ÊÑþ!Øþ;Èw#ÃÚþ Üð&Øþ'Êw#Ãðþ'ÂÚw#Ãð#~Æ'w+~Î'wÉ*{4~·ÈÅÍÒÁÈÅ ÁÃåÕÅÍ·Âk*{4åÁ*y4ë!øÿw#xºÂLy»ÂLøÿ*y4 "y4*{4 "{4ë!ÍÇ2*4ës#r̓ÁÑáÉå:€4<*y4¼Ò54!9%áÀœø MACRO OR EXPRESSION NESTED TOO DEEP-STACK OVERRUN åÅÕÍÜÑÁáɾÀ#ÂÜÉ!"¿"À"Â*}4"4*{4~·È 6#6#ÃûÍÐÍR.:J þ Ày·Äï&À|µÂ%!åÕÍÌ!I 4ÍmÑá+}´Â%É—2I Íã2!‘þ Úˆw#ÂHÈÍÐ!‘þ'À2þ Üû&Úˆþ'Ê�wüû&úˆ#Ãfþ'Êu6 #6 # ˆ6É!¥Íç2Í#'ÉÍ#'>2jÍä2:33þ Ìð&ÈÍú3*w4 ~öwüÿ&æ Äõ&Í93þ,ÀíÍ#'>2jÍä2:33þ Ìð&ÈÍú3*w4 ~öòþwÍ93þ,ÀÃáÿÃÍÐÍ93ÖAØþÐÅO!0 ÁqÍ93þ,ÀÃÿÿÿÿÿÍMͳ'ÉÍMÍ0'ÉÍMÍ ':ã&¹Êg Äï&OÍ�&Í#'É>Ã~>Ã~>2ã&·Êˆ2jÍ#'ÍÝ2:þ Èë"_ë!£Í.Íû&ÉINPAGE¹PAGE ´û:ã&·Ìû&È!Í#=ÂÆqÉ:þ Äö&ÉÍ#'þ'ÊðÍM͆$þ,ÀÃÜ—2«.2©.þ'Ê þ Üû&Ø2ª.͆$Ãðþ'ÊÃè!Y$6 åÍ$á6ÉÍ#'ÍMÍÜ#þ,ÀÃ'Í#'ÍMy·Äû&ÕëÍÑ&Í�&ÑÉþ!Üû&þ;Ìû&ÍR.É*D ÍÐ#"D :C ·À"F ÍR.y·Äï&}´ÀÍÜ>2CëÍÑ&åÅÍÑ&#Í�&ÁáÉAú®&ʲ&"é&:Ð&¼Ú¨&À:Ï&½Ð"Ï&ÃÅ&"å&É"ç&:Î&¼ÚÂ&À:Í&½Ð"Í&:H ·Äú&É*ã&ME*å&ø*ç&È*é&Éãõ:J þ  '++~ÖëæÆA2J 2I ##ñãÉÍ :þ ÈÍ3'ÉÍ�'Í 'ͪ'ÈÕåÅÍó3:H ·Âl'*w4y·ò_'æÁѱw#s#rÑÉÍö&~ö@æwÁáÑÉ>H¡Äî&yæøÄö&yÁÑ©æÄú&z¼Äú&{½Äú&ÑÉåÕÅë!P zÍ' {Í' ÁÑáÉyþØÍö&É:þ Ìö&ÉÍ�'Í 'ͪ'ÈÕåÅÍó3*w4~·òÑ'öOæÊ_'yæ|Áѱw#s#ráëÉ())4)€)Ó)Ó)Ó)Û)@*e*e*++$+L+Ò+Ò+g,ª,ª,ª,ª,ª,ª,ª,ADC:HL,BC/ED4A;ADC:HL,DE/ED5A;ADC:HL,HL/ED6A;ADC:HL,SP/ED7A;ADD:HL,BC/9;ADD:HL,DE/19;ADD:HL,HL/29;ADD:HL,SP/39;ADD:IX,BC/DD09;ADD:IX,DE/DD19;ADD:IX,IX/DD29;ADD:IX,SP/DD39;ADD:IY,BC/FD09;ADD:IY,DE/FD19;ADD:IY,IY/FD29;ADD:IY,SP/FD39;CCF/3F;CPD/EDA9;CPDR/EDB9;CPI/EDA1;CPIR/EDB1;CPL/2F;DAA/27;DEC:BC/B;DEC:DE/1B;DEC:HL/2B;DEC:IX/DD2B;DEC:IY/FD2B;DEC:SP/3B;DI/F3;EI/FB;EX:(SP),HL/E3;EX:(SP),IX/DDE3;EX:(SP),IY/FDE3;EX:AF,AF'/8;EX:DE,HL/EB;EXX/D9;HALT/76;INC:BC/3;INC:DE/13;INC:HL/23;INC:IX/DD23;INC:IY/FD23;INC:SP/33;IND/EDAA;INDR/EDBA;INI/EDA2;INIR/EDB2;JP:(HL)/E9;JP:(IX)/DDE9;JP:(IY)/FDE9;LD:(BC),A/2;LD:(DE),A/12;LD É*D ÍÐ}´Ìù&ÈåÁ*F }¹À|¸À:C î2C É*D ÍÐ|µÌù&È+"D åÁ*F +x¼Ày½À"F —2C ÉÍ#'ÍR.Í 'y2©.*¿}´Ä÷&*D }´Äí&!Z4ÉÍ#'!®,å¾Â#ÂôÁ~2 #^#V*_ëéþ'ÊÃè!Y$á~·Âîå':ÖAÚQþÒQo&)^#V!ÍbÊ…þ;ÂE·Â<—Í”# ÂTÍù&É~þ`ÚjÖ G¸#Êb+þ/Ê{þ:À~þ;Èþ ЗÉþ/Ê™*_ÍbÂE"_Í©}Í”#þ;™Ã^.Í®þ;ÈÖ0þ Ú¼Ö))))µoÉͪ-:¨.þ&Ê$æ@Â$þ,Âü:¨.Í Ö8Üû&þÔû&懇‡G: æö€2 ͪ-:¨.þ€Äû&: Í”#ÃÜ#þ!À>;Éͪ-þ,Â: :¨.Í Ö8Üû&þÔû&懇‡Æ 2 Íœ-:¨.þ€Äû&:A·ÊS *ª.:©.OÃk ÍÑ&:©.©æÄï&:ª.•o:«.œg++|­üì&yæÄì&|<Ê~ =Äì&}å>€2¨.&"ª.|2©.: Í”#͆$á$È%Äì&ÉÍœ->íÍ”#:¨.þ€Ä':©.·Ä'*ª.|·Ä'}·ü'þÔ'>F-ú”#>VÊ”#>^Ô#Íz-:².Í!Æ@2 :¨.æ Ê!:¨.þaÄû&>íÍ”#: Ô#̓#Üû&þÌû&懇‡É>ÛÍ”#Æ$Íz-:¨.Í!ÆA2 :².æ Ê9!:².Ãô >ÓÍ”#Ã$Íœ-:¨.̓#Òa!:¨.Í["Ú$: Æ*2 Ã5#‡‡‡G: €Ã”#Íœ-:¨.æàî€Ä':©.æÄ'*ª.}æÇ´Ä': …Ô#Íz-:².þ€Äû&:³.æÄû&*´.}æø´Äû&>¥‡‡‡o: …2 ÃÃ!Íœ-:¨.̓#Úß!O: �2 >ËÍ”#: Ô#: õ>Å2 Í5#ñÆÔ#Íz-:¨.æ Êl":².æ ʾ":².̓#Ú2"‡‡‡Æ@2 :¨.̓#Ò±":¨.Í["Ú$: þpÌû&Ã5#:¨.̓#Ú$2 :².Í["Ú$Í”#: ÆpþvÌû&Í”#Í$ÉæþmØþo?Øþm>ÝÈ>ýÉ:¨.æ@!#ÂŒ":².̓#Ò–":A,(BC)/A;LD:A,(DE)/1A;LD:A,I/ED57;LD:A,R/ED5F;LD:I,A/ED47;LD:R,A/ED4F;LD:SP,HL/F9;LD:SP,IX/DDF9;LD:SP,IY/FDF9;LDD/EDA8;LDDR/EDB8;LDI/EDA0;LDIR/EDB0;NEG/ED44;NOP/0;OTDR/EDBB;OTIR/EDB3;OUTD/EDAB;OUTI/EDA3;POP:AF/F1;POP:BC/C1;POP:DE/D1;POP:HL/E1;POP:IX/DDE1;POP:IY/FDE1;PUSH:AF/F5;PUSH:BC/C5;PUSH:DE/D5;PUSH:HL/E5;PUSH:IX/DDE5;PUSH:IY/FDE5;RET:C/D8;RET:M/F8;RET:NC/D0;RET:NZ/C0;RET:P/F0;RET:PE/E8;RET:PO/E0;RET:Z/C8;RET/C9;RETI/ED4D;RETN/ED45;RLA/17;RLCA/7;RLD/ED6F;RRA/1F;RRCA/F;RRD/ED67;SBC:HL,BC/ED42;SBC:HL,DE/ED52;SBC:HL,HL/ED62;SBC:HL,SP/ED72;SCF/37;+:;BIT @’!CALLÍÃDJNZ7 IM í¢ IN ÛÛ JP ÃÃJR  OUT Ó!RES €’!SET À’!RLC À!RRC À!RL À!RR À!SLA À!SRA (À!SRL 8À!LD @ñ!ADC ˆu#ADD €u#AND  M#CP ¸M#OR °M#SBC ˜u#SUB �M#XOR ¨M#RST Çl!INC A!DEC A!ͪ-!¨.Õ². ~6#†-Ñþ,Êœ-Íð&ͪ-þ;Èþ!ØÍð&ÉÍê-:¨.þk·->&2¨.æþmÊÔ-þnÊÔ-:¨.æ Ìð&î Ìõ&ÉyæÀ}¬ü'|&"ª.·È<Ä'É!ME"ª."¨.þ(Â.>@2¨.Í.þ)ÈÍð&ÉÕÍä2:33þAÚ..Íú3yæ Ê..:¨.µö 2¨.áÕÑÕÍR.á|ºÂ>.}»ÊF.:¨.ö€2¨.:¨.G*ª.:©.OÉÅ̓xõÍ(2ñGåÅÍÄ.xÁŸÒq.åGÅÃU."Â.2Á.Ááy2©.33":².Í["Ò¢"!#:².ÍÓ"ÍÜ#ɇ‡‡ÆÍ”#͆$ÉÍ”#>6Í”#Í$͆$ÉG: €þvÌû&Ô#:².æ@Ìû&!%#:¨.ÍÓ"ÍÕ#ÉGæàî Äû&xæÖÊð"Öüû&<þÔû&æO ~å·Ä”#á#~·Ìû&Ô#:íKí[*í{Ý*ý*!1Ý!ý!2íCíS"ísÝ"ý":¨.Í["Üû&Í”#: ÆÍ”#͆$ÉÍœ-:¨.æ Âd#: ÆFÍ”#͆$É:¨.̓#Ú5#G: €Ã”#Íz-:².þ'ÊP#Ã$þkŠ#>&þ Øþ(?ØæÉå*I-Ì¥#2Ó#!Ò#Ê$þ@Ò´#·ÈõæÌ'ñÉþËØÌ'þÙØÌ'þÝØÌ'þíØÌ'þýÌ'Éå!³.Ãà#å!©.ÕÅõ:Y$O~æ±O#^#V#"}$ÕáÍp$> ¡Ê${ZW>¡Â $Õá>0¡Â$Ä'yæå!Z$…o|ÎgFá>¡Ê0$°ü'æAOÍN%{ÍêÍ„&>0 ÊQ$ly·ÌN%zÍêÍ„&Íf$ñÁÑáÉ€€ ˆ”yæÈÆB2X Éyæ ÈæÂz$ZÉÊPå!³.Ê$å!©.ÕÅõ—Ãæ#*y4:j·È÷ÿ"w4Í©$Í%ÃÉ$Íù%!Ÿ~·Ès&ÍÇ2!o&6#—w#w#6ˆÉ*w4 "w4~·È N> ¡ÂÉ$>¡ÊÉ$y·úÉ$æþÊÉ$#^#Vë:1·Â%>¡Ä.%ÃÉ$Íù%:Î*Í&Í%:Ï*Ï&‡‡�ÆŒ2r&"p&}´Äþ%ÉÍù%"p&>¡Æ€2r&>2o&*w4s&ÍÇ2É:H ·È:>·ÈåÕÅy·Â»%}õ:o&·Ê¡%þÒ¡%_:ã&G:r&¸Â¡%*p&ëÍÑ&z¼Â¡%{½Â¡%s&*o&&ñw!o&4ÁÑáÉÍù%ÍÑ&"p&>2o&y2r&ñ2s&ÁÑáÉÍù%"s&yO:ã&�2r&ÍÑ&"p&>2o&:r&æ þ Âò%>2o&*}$u&ÍÇ2Íù%ÁÑáÉ:o&·ÈåÕÅ*p&U\ë"p&!o&~ÆG>:Í÷:j·Ê6&~Í÷�O#Â&—2o&‘Í÷ÁÑáÉ~ÍW&#�OÂ6&—2o&‘ÍW&> Í÷> Í÷ÁÑáÉÍZ&õæþ Úh&ÆÆ0Í÷ñÉ:ã&G:r&¸Â¡%*p&ª.:©.OÉÁ:Á.¸Ê’.Ò.Åå"ª.:©.OÅ*Â.å:Á.GÅÃU.-:¨.þk&2¨.æþ*ÂÚ.þ*ÂÚ.!·0Éþ.Êý.O!C/~¹Âò.#F#~#foÉ·È####Ãä.ÕÍä2:73þ Â?/þ.Â?/!l/Õ33~·Ê>/®±O#Â/ѱÊ6/###Ã/ÁF#~#foÉÑÑÉ\ü0*“1/½1+á0-ê0&1^"1=\0>u0<†0NOT ü0RES 0MOD È1SHR F0SHL .0AND 1OR "1XOR 01EQ \0GT u0LT †0UGT –0ULT ©0HIGHÖ/LOW û/Áy·Äý&Í>1Áx±Äý&:©.±ö2©.Ö‡.2©.lgÇ.Áy·Äý&Í>1Áx±Äý&:©.±ö2©.Ö‡.2©.gÇ.Áy·Äý&Áx±Äý&Ç.ÁÍ…1ÁåÅáÁx·úÛ0x±Ê‡. )Ã<0ÁÍ…1åÁáx±Ê‡. |g}oÃM0ÁÍ…1ÁÍõ0}´Êo0!Ç.!ÿÿÇ.ÁÍ…1ÁÍõ0+|·òo0Ãi0ÁÍ…1ÁÍõ0|·úo0Ãi0ÁÍ…1ÁÍõ0Úi0|µÊi0Ão0ÁÍ…1ÁÍõ0Úo0Ãi0ÁÍ…1Á|·ü'ú‡.Õë!z³Ê×0ÅÍž1ÁÃÉ0ÑÇ.Íý&Ç.ÁÍ>1Á Ç.ÁÍO1ÁÍõ0Ç.y•oxœgÉÁy·Äý&Í…1Áx±Äý&}/o|/gÇ.ÁÍ…1Áx¤gy¥oÇ.ÁÍ…1Áx´gyµoÇ.ÁÍ…1Áx¬gy­oÇ.:©.æÊ|1yæÊ|1Ão1:©.æÊ|1þÊo1:©.©æÂo1:©.±æü2©.É:©.±æü2©.Íï&É:©.±O2©.É:©.±2©.OæÈÃo1ÁÍ…1ÁÍž1Ç.Õë!x·õü@3y°Ê³1 é1ñåÁü@3ÅáÑÉÁÍ…1ÁÍÖ1Ç.ÁÍ…1ÁÍÖ1*¿.Ç.}´Âå1Íý&!"¿.É|õ¨õx·ü@3ÅåÁᯰô@3Õÿÿ —´òû1Í@3 "¿.ÕÁÑñü@3Åá"ª.*¿.åÁñ·ü@3Åá"¿.*ª.ÉÍ93!þ'ÊK2þ(Êg2Í3Àþ:Ò‡2þ0ÒI3Ç2þ Øþ'Ê_2%$Äý&eoÃK2þ'ÊU2É:†2=ú�22†2ÍR.:†2<2†2þ)0 mnemonics are a great improvement to 8080. Thought was given to logical, universal mnemonics that are much easier to remember and use. I learned assembly language on the 8080 and resisted the change to Z80 at first. But after using Z80 mnemonics for a short time I became very unwilling to do anything with 8080 code. Now I run almost every 8080 program that comes in through a 8080 to Z80 translating program (XLATE2.COM on Kaypro disk #17). Even if you are writing programs for the 8080 it is still far easier to write in Z80 mnemonics. There is a special listing command that flags Z80- only instructions for this very reason (described later). Macros..................................................................... Macros are a way of writing subroutines in assembly language and then calling the subroutine by entering the 'macro name' into the source. The macro may be called as many times as necessary anywhere in the program. When the assembler is operated, the lines of source code that ÈÍð&É Íä2–2:33þ$ÊÑ&Íú3yæþʲ2yæ Äõ&>€¡Äÿ&>¡OÉåÕÅ!33¬.ÍÇ2ÁÑáÉ~# y°ÂÇ2É!Íç2þ:ÀÉ!Íç2É!93+6 Âé2Í93Í3Àþ:Ò3þ0Ð Ê 3w #Í93Í3ÀÃ3þ_ÐþZÐþ?Ò13þ9Ðþ0Ò13þ%Ðþ$Ðþ!É¿ÉK2þ(Êgþ`ØÖ É>‘O>˜GÉÕͶ3Í93þHʈ3ÑÕÍ¡3Í93þOʈ3þQʈ3ÑÕÍŽ3Í93þBʈ3ÑÕÍÖ3Í93þDʈ3Í3Ìý&33É!Í93Ö0ØþÐ)µoÑ3!Í93Ö0ØþÐ)))µoä3!Í93Ö0Øþ ÚÌ3Öþ ØþÐ))))µoù3!Í93Ö0Øþ Ð Õëo& Âé3ÑÃÙ3!Íý3É!33" 4*y4Õ"w433~·ÊO4¾Â+4#Â4*w4N#~#foÑÉ*w4 Ã4;4ø NOT ENOUGH MEMORY *y4Õ÷ÿÑ"w4"y4:€4<¼Ò54w#Âf46€#p#pÃ4‚4[5�4�4B C D E H L A AF BC DE HL SP IX IY I R NZ Z NC PO PE P M $  Documentation for Z80MR............................A Z80 Macro Assembler ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: Introduction ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: Z80MR ismake up the macro will be inserted into the file by the assembler. Note that using a macro does not reduce the size of the object code that is produced since all the lines of code that make up the macro definition are assembled into the object file at assembly time. This is called expanding the macro. By using the *MACLIST ON option, the lines of code produced by the expansion of a macro are listed in the .PRN file. Then the code can be examined and at times optimized in certain locations. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: Assembler Syntax ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: Components and General Form of Assembly Language Programs.................. The structure of an assembly language program is more important to an assembler than the actual instructions you write. A program that would run beautifully can fail to assemble if the syntax is not correct. A program with no errors at assembly time is not guara a Z80 macro assembler with syntax closely following RMAC and MAC. It assembles standard Z80 mnemonics into an Intel Hex format. The resulting file (which has a .HEX extension) can be translated to a .COM file with LOAD.COM (on your CP/M disk that you received with your Kaypro) if it ORG's at 100 (hex). If it ORG's elsewhere the .HEX file may be read into memory and manipulated with DDT.COM. Why Z80.................................................................... The assembler you received with your Kaypro (ASM.COM) is an 8080 assembler. The Kaypro actually runs a Z80 c.p.u. The reason this is possible is that the Z80 actually runs all of the 8080 instructions but in addition there are more instructions unknown to the 8080. The extra instructions were designed for increased speed, easier programming, and more compact code. For this reason it is to your best advantage to program in Z80 code for the Kaypro. Z80 Mnemonics.............................................................. Z8nteed to run correctly ( or as expected ). The assemblers report of 0 errors means that it understood all of the instructions you entered, not that your program is logically correct. Fields..................................................................... Assemblers are almost always field oriented some to a greater degree than others. A field is a flexible position in the line of code with respect to the right margin. This assembler recognizes 4 fields in an assembly language source line. label operation operand comment The assembler knows when it has reached the end of a field when it sees a 'field delimiter'. This can be a space or a tab for this assembler though some require tabs so it is a good habit to always use tab characters as delimiters. Label Field................................................................ A symbol is a word used to represent a number. Symbols that refer to addresses are called labels. The assignment of a number to a label can either be uage this is the case. The first line OR's the accumulator with the accumualator (used to see if the accumulator contains a 0). Notice that the second line uses the operand field to contain the condition for a conditional jump (in this case the zero flag). The third line uses the operand field to contain both the target register for a load and the number to load. The last line is an unconditional return which uses the same operator (RET) as the conditional return but does not use the operand field because there are no conditons to place there. This structure makes Z80 programs much more readable than 8080 programs as well as making the instructions easier to remember. The following is the same code written with 8080 mnemonics. Notice the different philosophy on the use of the fields. GOBACK: ORA RETZ MVI A,0FFH RET Also the LD command in the Z80 is used for all data moves while 8080 users must remember a different mnemonic for different types of moves. 8080 Z80 MOV H,A LD H,defined as the lines below TEN EQU 10 START EQU 100H or calculated by the assembler as an address for branching instructions. START: JP FINISH NOP NOP FINISH: JP START Also notice that the label is optional and is only for the programmers conveniance. Labels must appear in the label field. Some assemblers allow you to indent labels but this one won't. START EQU 100H START: JP FINISH Will give you a problem. The EQU must be in the operation field and the label in the label field. Most assemblers require that the undefined labels be terminated in a colon but this assembler does not require a colon for symbols in column 1. START JP FINISH will not generate an error but colons are another good habit and also make your code more readable. This assembler only examines the first six characters of any label or symbol so that if the following labels were used in the same program FINISH1 EQU 1000H FINISH2 EQU 2000H A 'D' error (duplicate symbols) would be generatA MVI H,00 LD H,00 LXI H,0000 LD HL,0000 The Comment Field.......................................................... Comments are not limited to the comment field and can actually be the entire line. All assemblers recognize the semicolon as the beginning of a comment and most ignore the rest of the line. For compatability between assemblers it is a good to begin comments with a semicolon. But for this assembler the following methods of inserting comments are good syntax. 1. Beginning a line with an '*' in column one causes the assembler to ignore therest of the line except if one of the assembler commands (described below) immediately follows the asterisk (no embedded spaces). 2. A semicolon will cause the assembler to consider everything following it to be considered a comment. 3. The first blank encountered following the beginning of the operand field will cause the assembler to consider the rest of the line to be considered a comment. ***********************************ed. Operation and Operand Fields............................................... The operation field follows the label field and may either contain a Z80 op code mnemonic, an assembler directive (or pseudo op), or a macro call. Assembler directives and macros are described later in this file. This field will usally contain the mnemonic for a Z80 instruction. Some Z80 instructions only use this field while others contain an operand which will be located in the operand field. GOBACK: OR A RET Z LD A,0FFH RET The way Z80 mnemonics were designed, the number of nmenonics in the operation portion of instructions is kept to a minimum since the operands really distinguish the differences between similar instructions. The first line above is a good example of this. The operation is an 'OR' operation on the number in the accumulator (implied) with another register. It makes sense that the operand should be the register containing the other number in the 'OR' operation. In Z80 assembly lang******* ;An adventure in Comments * A short tale START: JP FINISH ; finish this story NOP ASM can't handle this FINISH: RET Thats all folks Would assemble with no errors. Comments do not appear in the object code. Numbers and Bases.......................................................... The assembler will accept numbers in HEX (base 16) BINARY (base 2) or DECIMAL. Hex numbers must end with an H and binary numbers must end in a B. Decimal numbers should have no suffix letter. When a HEX digit begins with a letter, the letter should be preceded with a 0. LD A,0F3H OR 01001000B LD HL,4000H+28 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: Commanding the Assembler ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: The primary responsibility of the assembler is to translate Z80 mnemonics into object code. The assembler also recognizes certain commands and directives that the programmer can use to manipul0H ; ; LD DE,MES ; LD C,9 ; CALL 5 ; RET ; ;MES: DB CLRSCR ; DB ESC,'=',12+20H,12+20H ; DB '*Your Message Here *',CRLF ; DB '*Or Here*','$' ; ; END ; ; If you've been waiting for an example to enter assemble ; and run, try this one out. Just enter it (with out the ; semicolons of course) assemble it and run it as described ; in AZM-COM.DOC. ; ; The program clears the screen, positions the cursor at ; row 12 column 12 and prints the message using the BDOS ; function 9 (print string). ; ; The symbol CLRSCR is defined by an EQU to the hex code to ; clear the screen on the Kaypro (^Z). ; ; The cursor positioning sequence on the Kaypro consists of ; the two lead-in characters (escape and an equals sign) and ; then the row+20H and the column+20H. ; ; Since the next bytes are just a carriage return, line feed ; pair the second part of the message will appear at the ; left side of the screen. We could include extra ate the assembler's output. These are often referred to as 'pseudo-ops'. This assembler requires these pseudo-ops to be in upper case. A description of these commands follows: ORG ; Sets the origin of the code or section of code. Actually ; it sets the reference number that the assembler uses to ; generate addresses for labels and instructions. ; could be a number or a previously defined symbol. ; e.g. ORG 0 ; ORG START END ; Determines the end of an assembly language program. ; if present describes the first executable instruction of ; the program. DW wordlist DEFW wordlist ; Both of these have identical meanings. In assembly language ; programs, 8 bit values are called bytes and 16 bit ; values are called words. Addresses are assembled with the ; most significant byte (MSB) following the least significant ; byte (LSB) because this is how the microprocessor handles ; these values. The DW pseudo-op allows us to describe thesDB's to ; position the cursor anywhere on the screen if we like. ; ; BDOS function 9 (summoned by loading a 9 in the C register ; and calling 0005H) prints the characters it finds at the ; address in the DE registers until it sees a '$'. DS n DEFS n ; Reserve data space ( n bytes ). This is used to position ; allocate or label data storage space in a program. n is ; a number describing the number of bytes reserved. ; DS 16 ; Reserves 16 bytes. The next instruction will be located ; 16 bytes from the location counter when the DS was ; encountered. label EQU ; ; The EQU sets the label equal to the expression. The ; label should not be terminated with a colon when used ; with an EQU pseudo-op. The label can be any symbol ; (byte or word) and the a number in any of the ; following forms: ; SWEET EQU 16 ;decimal ; SWEET EQU 10H ;hex ; SWEET EQU 00010000B ;binary ; ; With this assembler the EQU must be located in te ; values in the way we are used to (MSB first) and still ; assemble correctly for the processor. ; DW 8000H ; will assemble the same as ; DB 00H ; DB 80H ; ; If more than one word is to follow a DW following values ; should be seperated by commas ; e.g. DW 8000H,0F000H,0000H ; The wordlist can also be symbols ; e.g. START: JP FINISH ; DW START,FINISH ; FINISH: JP START DDB wordlist ; This pseudo-op is a way of assembling 16 bit values with ; the MSB first (opposite of DW). ; DDB 8000H ; will assemble the same as ; DB 80H ; DB 00H DB bytelist DEFB bytelist DEFM bytelist DATA bytelist ; These four pseudo-ops have identical meanings. The bytelist ; can be one byte or multiple bytes seperated with commas. ; The bytes can be any mix of symbols, ascii characters in ; quotes, or numbers on the same line. This is familiar ; code in Kaypro programs: ; ;ESC EQU 1BH ;CLRSCR EQU 1AH ;CRLF DDB 0D0AH ; ; ORG 10he ; operation field. ; A label defined with an EQU cannot be redefined later ; in the program. label DEFL ; ; This assigns the value of the to the label like ; the EQU pseudo-op but a label defined with a DEFL can ; be redefined later in the program. *INCLUDE ; This pseudo-op causes the assembler to stop assembling ; lines in the file it is presently in and read in the ; file . It then begins assembling lines in this ; included file until it reaches the end of the file when ; it returns to the original file and resumes assembling ; lines in it once more. The can be any CPM ; filename.ext though if the extent is left off it looks ; for the given filename with an extent of .LIB. The asterisk ; must appear in column 1 with the word INCLUDE immediately ; following with no embedded spaces. ; ;*INCLUDE DRIVER.AZM ; will begin assembly on ; the file DRIVER.AZM ;*INCLUDE Z80MACRO ; will begin assemblys assigned the high byte of a ; 16 bit value .LOW. ; byte value is assigned the low byte of a 16 ; bit value Conditional Assembly Operators ( return TRUE or FALSE to IF ) = ( or .EQU. ) ; logical equivalence > ( or .GT. ) ; greater than .UGT. ; unsigned greater than < ( or .LT. ) ; less than .ULT. ; unsigned less than Listing Options Pseudo-Ops................................................. There are a number of listing options. All of these options only effect the print file (.PRN). The options include some for debugging as well as some for the actual format of the file on the page. The .PRN file is the basic tool assembly language programmers have for examining the output of the assembler. The pseudo-ops beginning with an asterisk must begin in column 1. *EJECT ( or EJEC ) ; The next line of the listing should be placed at the top ; of the next page. *HEADING ; Place the text ( following this command ) on the top of ; each page. Usu on ; the file Z80MACRO.LIB ; Conditional Assembly Pseudo-Ops............................................ IF ELSE ENDIF Conditional assembly is a way of writing a single program so that it can be assembled different ways or with different options by only changing a couple of lines of codes. When the assembler encounters an IF pseudo-op it evaluates the symbol . IF is non-zero it assembles the following lines until it reaches an ELSE or an ENDIF. If is 0 the lines are ignored until the assembler encounters an ELSE or an ENDIF. If the ELSE is encounter the assembler begins assembling lines again. The ENDIF pseudo-op causes the assembler to resume assembling all lines. You can not have an IF without an ENDIF. Any of these pseudo-ops must appear in the operation field. TRUE EQU 0FFH FALSE EQU 0 KPRO2 EQU TRUE KPRO10 EQU FALSE IF KPRO2 BITPRT EQU 1CH ELSE BITPRT EQU 14H ENDIF Operators.................................ally used to date the listing file. TITLE 'text' ; Place the text in the quotation marks (either double or ; single on the top of each page in the listing file. SPAC n ; Leave n blank lines in the listing. Used to leave white ; space in the file with out using a page break. *LIST ON *LIST OFF ; Turn the listing on or off. This is usually used to omit ; long comments or certain sections from the .PRN file. *MACLIST ON *MACLIST OFF ; Turn the expansion of macros on or off. Seeing how the ; macros are being expanded is handy for optimizing code ; but can waste paper when that is no longer the area of ; interest. LIST options NLIST options ; These pseudo-ops allow you to turn any of the supported ; listing file options on (LIST) or off (NLIST) without ; changing the other options. Both of these pseudo-ops ; must be followed with one or more of the following option ; letters. If these pseudo-ops is used some options are ; on by default ( marked with (on) in the f................................. Operators allow the programmer to make the assembler do arithmetic and logical operations. They are usually used to manipulate operands or generate symbols. Some of them are used to create tests for conditional assembly. There should be no embedded spaces when using these operators as the first blank encountered terminates the operand field. The operands may be symbols or numbers in any of the bases. The operators supported by this assembler are: Arithmetic Operators + ; arithmetic addition. - ; arithmetic subtraction * ; arithmetic multiplication / ; arithmetic division (truncating the result) Logical Operators (Bit Manipulation) & ( or .AND. ) ; logical AND operation ^ ( or .OR. ) ; logical OR operation .XOR. ; logical exclusive OR operation \ ( or .NOT. ) ; logical inversion .SHR. ; shift left operand to right by right operand .SHL. ; shift left operand to left by right operand .HIGH. ; byte value iollowing list. ; ; A ; List all bytes in DB, DW, DDB, etc. Otherwise ; ; only the bytes that can fit in one line are ; ; included in the listing ( others are implied ). ; B ; Place symbol table into object file. ; G ; Place system generated symbols into object files ; I (on); List lines of conditional code following a false ; ; conditional. If off only the code actually ; ; assembled is listed. ; M (on); Expand macros in listing files ; O (on); Produce an object module. That is show the bytes ; ; being generated by the assembler otherwise just ; ; the source and (optionally) macro expansions. ; R ; use absolute displacement for JR and DJNZ ; S (on); List source code in listing file ; T (on); List symbol table in listing file ; X ; Generate and list cross references in listing file ; Z ; Generate an error for Z80 only opcodes. Allows you ; ; to write in Z80 mnemonics for an 8080 processor. ::::::::::::::::::::::::::::::::::::: 8080 will see a few of these. P ; Phase error. A 2 pass assembler builds a symbol table on ; the first pass and generates the object code on the second. ; If a number that it calculates for a symbol on the first ; pass does not agree with a number it generates in the ; pass this error is shown check the symbols in the line ; the error appeared. Q ; Questionable operand. Actually theres no question about it ; it is a bad operand. Typo's give you these as well as ; blowing op code format. Usally easy to find your mistake. S ; Syntax error. You broke one of the syntax rules described ; above. T ; Symbol table full. Not much you can do with this except ; pare down the code. U ; Undefined symbol. You used a symbol but forgot to define ; it in with an EQU. V ; Value error. Usually means you are trying to do a 16 ; bit operation with an 8 bit number or the other way ; around. :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: Error Reporting ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: When the assembler is unable to understand what you are instructing it to do it generates an error message. These are almost always due to typo's or bad form. It displays the error code below and the line the error was found on to the console and also displays the error codes in the listing file. D ; Duplicate symbol definition. You will see this error ; message if you do any of the following: ; Use the same symbol twice. ; FORMATX ; FORMATC ; will generate an error (only 6 significant ; characters). ; Upper and lower case symbols with the same letters ; FORMAT: ; format: ; are identical to the assembler. ; Assigning a different value to a symbol that was ; previously defined with a EQU pseudo-op. ; If you are going to reassign use DEFL. E ; Relocation error. I believe this occurs if the assembler ; cannot reass: Macros ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: The macro is a powerful method of writing assembly language programs. It makes it possible to write assembly language programs in a way that resembles higher level languages. In fact by creating a library of macros you are in essence creating your own language, and your own compiler. Often times in assembly language (particularly writing for CP/M) each program contains source lines that are used again and again in other programs. By using macros the routines only need to be written once and then may be called in any program. The best thing about a macro library is that only the macros that are called produce object code. So there is no penalty in having a macro library that is large and complete even if you are only going to call one macro. Macros have a form that is unique and must be followed closely for correct results. The general form of a macro is name MACRO #parameter1,#parameter2,.... instruign an address as expected. F ; Format Error. You will see this if you break any of the ; rules regarding field use and macro format. K ; Keyword error. This means you tried to use one of the ; assemblers reserved words or pseudo-ops as a symbol. ; ORG: JP END ; NOP ; END: JP ORG ; is in very bad taste. L ; Label error. The attempt to assign a value to a lable was ; unsuccessful. Also remember that labels do not end in a ; colon when preceding EQU. ; START: EQU 100H ; is bad news ; START EQU 100H ; is perfect M ; Missing label. The symbol you are using was never defined. N ; Macro nesting error. Macros can be nested (that is a macro ; can call another macro) but if the nesting gets to deep ; the assembler will quit and give you one of these. Also, ; you can only call macros that were previously defined. O ; Op code error. If you see this, look in the operation and ; operand fields. Consult the mnemonic table. People ; switching over fromction instruction instruction . . . ENDM The name is the symbol that will be used to invoke the macro. MACRO is a keyword that will indicate to the assembler that a macro is being defined. The parameters always must begin with a '#' sign in macros and they are seperated by commas. The instruction can be Z80 instructions, or any of the assembler commands listed above incuding conditionals. The instruction can also be another macro call (called nested macros) but only if the nested macro has been already defined. The ENDM keyword tells the assembler that it has reached the end of the code that must be assembled when this macro is called. Do not use a colon behind the macro name. The previous message program example can be rewritten to look like this with macros. ORG 100H *INCLUDE Z80MACRO BDOS PRNSTR,MES RET MES: DB ESC,'=',12+20H,12+20H DB '*Your message here*' DDB CRLF DB '*Or here*' END With the following macro library called Z80MACRO.LIB ;Call Bmples and as much information as I could come up with on this assembler. AZM-COM.DOC How to get from an assembly language source file to a .COM file. Includes options for output control. PHASE.DOC How to get around the phase and dephase operators found in M80 files. MAC-AZM.DOC What you need to know to change .MAC (MicroSoft's M80 assembler source files to .AZM files. ........................................................................... Example Z80MR source files PHASE1.AZM Sample program described in PHASE.DOC ........................................................................... Z80.COM *.ZQ0 This is the Crowe assembler extensivly modified to do conditionals, as well as a number of other new tricks. To view the source and documentation files, create a blank formatted disk with system tracks and place it in drive A, with a copy of user #25 in B. Make sure you are logged onto drive A and then enter B:UNSQ B:*.ZQ0 and the file unsqueezer will do tdos function #FUNCT using paramater contained in #DE ESC EQU 1BH ; ascii escape CRLF EQU 0D0AH ; ascii carriage return line feed PRNSTR EQU 9 BDOS MACRO #FUNCT,#DE LD C,#FUNCT ; FUNCTION NUMBER GOES TO C LD DE,#DE ; GET PARAMETER CALL 5 ; CALL BDOS ENDM We could also rewrite the cursor positioning sequence into a macro. Note how just this small example can save us time in future programs. Also, the macro library is a great place to keep frequently used symbols like ESC and CRLF. But what about using address symbols in macros? How can we avoid the 'D' error if we call the macro more than once. The other keyword unique to macros is LOCAL. This makes the assembler generate its own unique label every time the macro is expanded in a program. Following the word LOCAL ( which must be on the second line of the macro ) are the symbols we want the compiler to generate unique labels for. These symbols must also be proceded with a '#' sign. AJUMP MACRO LOCAL #ADR_Z,#BACK OR A Jhe rest. The assembler itself is Z80.COM (not squeezed) and the documentation for it is in the file README.Z80. Yes it assembles itself! ............................................................................ To verify the files on this disk enter: CRC ............................................................................  Most of the assembly language programs released on Micro Cornucopuia disks are set up for the M80 assembler. If you've been wondering what the .MAC extension is for, those are M80 source code programs. Many of the people that got this disk did so to assemble the Kaypro Tinkerkit (source of the rom monitor and bios) without spending $150 for M80. It can be done. For the most part .MAC files can easily be translated to .AZM with very few changes. Unfortunately M80 is as extremely versatile assembler which when used to its full advantage contains some pseudo-ops and directives that Z80MR does not understand. I will reveal tR Z,#ADR_Z LD A,40H JR #BACK #ADR_Z: LD A,04H #BACK: LD DE,0 ENDM The macro itself is not really useful but it is correct and shows the use of local labels. :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::  User Disk #25 Z80 Macro Assembler This disk contains a Z80 macro assembler that is the nicest I've seen in the public domain. We spent quite a bit of time documenting this to find all the syntax requirements so you didn't have to find them out the hard way (assembler errors). We intend to make this the target assembler for all asembly language source files we put out on disk from now on. If you find any 'GOTCHA's' with this assembler please send them in so we can keep this assembler fully documented. We are also going to put together a macro library for this assembler. If you've got some that you'd like to donate, send them in. Z80MR.COM The Z80 macro assembler itself. Z80MR.DOC This is our documentation file crammed with exahe most common of these and provide some help on getting around them in this file. First things first......................................................... Rename the file to have a .AZM extension. Edit the file. Near the beginning of the file you will see the pseudo op that tells M80 what mnemonics you will be using. M80 can handle both Z80 and 8080 mnemonics. You can even switch in the middle of the program. Two pseudo-ops .Z80 and .8080 tell the assembler which mnemonics to recognize. If there is a .Z80 there delete it. If there is a .8080 there you will need to run the program through an 8080 to Z80 translator (like XLATE2.COM on disk K17). At this point what I usually do is run the program through the assembler. The assembler is very good at finding errors, so I let it tell me what it doesn't like. You can run the program through the assembler without generating any output files (see AZM-COM.DOC) and still get the error report on the console. A ^P before running the assembler wil........................................... The M80 macros go through Z80MR pretty well for the most part. There are some syntax changes to be made. Precede the parameters with # signs (including locals). Also there are some macro pseudo-ops that are not supported (also not widely used). If some one writes Z80MR macros to substitute for these (and a MOD operator) please send it in and we'll include it in the macro library that we are developing for this assembler. .phase and .dephase........................................................ These are used to make the assembler generate label addresses for some other part of memory than where the file will be loaded. The file PHASE.DOC offers some alternative ways of doing this. ; ; TITLE 'README.Z80 J.G.OWEN 2/12/84b' | LISTW 255 | SUBLN 0 ;::::The Reborn CROWE (TH/DC/JGO) Z-80 Assembler. ; ;Pat Crowe (England) wrote this assembler originally; Thomas Hameenaho ;(Sweden) fixed some bugs; and Dana Cotal dump to the printer as well. Now you can go back into the file and fix the syntax where the assembler generated errors. Dual mnemonic files........................................................ XLATE2 is a great translator on 8080 only files. It also will only translate the 8080 mnemonics in a file that has both. Unfortunately there are a couple of Z80 mnemonics that are the same as 8080 mnemonics and will be dutifully translated by XLATE2. The problem is that the mnemonics are the same but the instructions they represent are not. So the file will assemble OK but will run with unpredictable results. An example. JP is a valid Z80 mnemonic. It is also widely used since it is an unconditional jump (JMP in 8080) JP is also a valid 8080 mnemonic. It is the jump on parity instruction. So a Z80 JP is translated as if it was the 8080 JP which will make it JP P in the output file. Bad news. This in itself is enough to make it too undependable to use on dual mnemonic files. To avoint (Micro Cornucopia) did much of the ;CP/Ming of the code. James Gregor Owen (me; Long Island) is responsible for ;subsequent revision to this point. ; ;The assembler is a CP/M two-pass Z-80 assembler with a command file named ;"Z80.COM". Using it is quite similar to using the CP/M "ASM.COM" assembler, ;where the drives for the various files are specified by using letters in the ;extension field; the source is assumed to have a "Z80" extension. "Z80 ;Z80.ABZ" would cause the assembler to assemble itself, finding the source on ;A, putting the .HEX output on drive B, and generating no listing. The CP/M ;utility LOAD has to be used to make a .COM file out of the .HEX file. "Z80 ;README.AZX" would send the listing of this file to the console. A "T8" option ;must be used when listing .PRN output ("PIP LST:=README.PRN[T8]"). ; ; ;::::Syntax Notes. ; ;The assembler expects a source file written in standard Zilog mnemonics, in ;upper or lower case (case has no syd the grief you can do one of two things: Translate the 8080 sections by hand if they are small enough. Split the file into smaller files where the mnemonics change. Run the 8080 sections through the translator. You can let the assembler rejoin the files using the *INCLUDE statement or use pip or your editor to rejoin and assemble the whole mess. What I'd really like to see is someone rework XLATE2 so that it would stop translating when it saw .Z80 (and also comment the pseudo-op out) and start again when it saw .8080 (and comment it out as well). Also some of the other minor syntax changes could be fixed as well. Yes XLATE2 can be assembled with Z80MR (it is a .MAC file). After removing the .Z80 at the beginning of the file the only error I got was for the MOD operation on the version number (MOD not supported by this assembler). My solution, just enter the version number there. Having the assembler figure out the ascii just wasn't that important. Macros..........................ntactic significance). Any symbol starting ;in the left-most column will be processed as a label; alternately, the first ;symbol on the line, if it is succeeded by a colon, will be treated as a ;label. A label on an ORG line will assume the value of the ORG. ; ;Sublines: ; ;Like ASM, the Reborn CROWE (TH/DC/JGO) Z-80 assembler allows multiple logical ;lines: "LD A,(WIMWAM) | BLIP: OR A | JR Z,WOMBAT". The subline delimiter is a ;vertical rule, instead of ASM's exclamation point. If a label is not directly ;next to the subline delimiter, it must have a colon. ; ;Other: ; ;Examination of the assembler source which can be assembled correctly by ;itself should help to resolve syntax questions. ; ; ;::::Expression Operators. ; ;+ Monadic plus. ;- Monadic minus. ;.NOT. or \ Logical NOT. ;.HIGH. Value of most significant byte. ;.LOW. Value of least significant byte. ;.RES. Result. ;** Exponentiation. ;* Multiplication. ;/ Division. ;.MOD. Modulo (remainder). finished before the new file is opened. An extension of "Z80" ;is assumed unless the extension is specified. A period will specify no ;extension, i.e., "CHAIN 'FILENAME.'". A drive specification is allowed. ; IF, ELSE, ENDIF ;If the argument to an IF is non-zero, then the code between the IF and a ;subsequent ENDIF or ELSE is assembled; if it is zero, then the code is not ;assembled. If an ELSE is encountered, the sense of assembly is reversed; the ;sequence is terminated with an ENDIF. Any kind of IF/ELSE/ENDIF error is ;treated as if it were an ENDIF. No nesting is allowed. ; NLIST, LIST ;Listing will be suppressed after NLIST until a subsequent LIST appears. ; LIST arg ;With an argument, LIST specifies how many lines of HEX will be listed for ;each physical line, and has no effect on LIST/NLIST status. Zero is not ;allowed. ; LISTW ;Specifies the width of listing lines; default is 79. ; EJECT ;Causes a form feed and a header to be inserted i 7.MOD.3 => 1. ;.SHR. Logical shift right. ;.SHL. Logical shift left. ;+ Addition. ;- Subtraction. ;.AND. or & Logical AND. ;.OR. or ^ Logical OR. ;.XOR. Logical exclusive OR. ;.EQ. or = Equals. 7.EQ.7 => 0FFFFH. 7.EQ.6 => 0. ;.GT. or > Greater than. ;.LT. or < Less than. ;.UGT. Unsigned greater than. ;.ULT. Unsigned less than. ; ;Parentheses and square brackets may be used interchangeably in expressions, ;but NOT to indicate indirection. "LD A,[25]" loads the accumulator with 25 ;but "LD A,(25)" loads the accumulator with the data contained in location 25; ;this provides a handy way of avoiding the latter case when using complicated ;expressions. ; ; ;::::Pseudo-Ops. ; ; ORG ;Sets the assembler program counter. ; EQU ;For assigning a value to a label (can appear only once per label). ; DEFL ;Also assigns a value to a label but can be used to assign different values to ;a label at different places in the program. ; END ;Terminates assembly. An optional anto the listing. If an ;argument is present, then ejection only occurs if the specified number of ;lines exceeds the lines left on the page. ; SUBLN 'x' ;Changes the sub-line delimiter from the default '|' to the specified ;character, starting with the next physical line. If you pick the wrong ;character you can get into big trouble (i.e., don't use '*', '(', etc.). ; ; ;::::Errors. ; ;Errors are indicated by a letter in the left-most column of the listing; ;lower-case signifies that the line contains more than one type of error ;(single or multiple errors of the same type will result in a capital letter). ;Some of the errors are: ; ; S ;Syntax. Covers a multitude of sins, but is particularly popular when you ;give the wrong arguments to an op-code or a psuedo-op. ; U ;Undefined symbol. ; M ;Multiple definition of a symbol. ; V ;Value. I've only seen it for overflow -- trying to stuff a word-size value ;into a byte-size location. ; rgument will appear in the appropriate ;.HEX record. The assembler will treat an end of file as an END statement. ; DEFB ;Defines the content of one byte of memory at the address the pseudo-op ;appears in the program. ; DEFB 'x' ;Same as above but defines the byte to be the ASCII code for the character ;between the quotes. ; DEFW ;Defines the contents of two bytes of memory. ; DEFS ;Reserves bytes in memory beginning with the address at which the pseudo-op ;appears. ; DEFM 'xxxx...' ;Defines the contents of memory to be the ASCII string specified; produces an ;error if the string is too long. ; TITLE 'xxx...' ;Defines the title that will appear in the listing header. When the assembler ;prints errors to the screen, they will be accompanied by the appropriate ;title. ; CHAIN 'FILENAME' ;Causes the current source to be abandoned, and source lines to be gotten from ;the file named. If CHAIN appears on a sub-line, then the current physical ;line will be B ;Balance. The expression evaluator is upset about parentheses. ; L ;Line is too long; the input source line exceeded the 80-character limit. ; I ;Illegal character. ; P ;Phase; a symbol assumed a different value in pass 2. Unfortunately, it's up ;to you to figure out why. ; ; -end- eject LISTW 79 ORG 100H SUBLN '|' SUBLN '@' | DEFM 'SING THE HAPPY SUBLINE' SUBLN '|' @ NOP @ NOP @ NOP ;DELIMITER CHANGES NEXT LINE. VAR1: DEFL 12 | VAR2: DEFL 12 | VAR3: DEFL 13 ;ARGUMENT ERRORS: SUBLN 25,35 TITLE ; 1234567890123456789012345678901234567890123456789012 TITLE 'COME HERE WATSON I NEED YOU. OH HAPPY DAY. TOO LONG.' ;STRING TOO LONG. DEFM 'COME HERE WATSON I NEED YOU. OH HAPPY DAY. TOO LONG.' CHAIN EJECT 25,12 LISTW 2,3 LISTW ;VARIOUS ERRORS: OR A | WAMBAM | IF VAR1.EQ.VAR3 | OR B | ENDIF | OR C ;ERROR IN SUBLINE. ;ASSEMBLER LIKES TO CREATE 4 NOPS FOR MANY SYNTAX ERRORS, WHICH COULD ;BE HANDY FOR PATCHING IN VERY LONG ASSEMBLIES. ;THE FOLLOWING LINEALUES, SIGNIFIED ;WITH THE "=" SIGN ... WIFBAT EQU 17H WIMBAT DEFL 5432H | LD A,(17) | DEFM 'HELLO MOTHER' ;BUT OMITS SUCH DISPLAY WHEN INCONVENIENT: NOP | WIMBAT: DEFL 1234H NLIST ;THIS LINE SHOULD NOT APPEAR IN THE LISTING LIST WOMP: | NOP | NOP | NOP | JR WOMP ;RELATIVES TAKE NORMAL ARGUMENTS. ld a,35 | ld (35),a | nop | nop | blim: defl 12h ;lower case defw BLIM ;is allowed but not significant. ;THE FOLLOWING LINE CONTAINS ONLY SPACES. ;THE FOLLOWING LINE WILL HAVE AN ERROR BECAUSE IT IS THE ;END OF THE FILE BUT DOESN'T END WITH A CARRIAGE RETURN, ;LINE FEED (THERE'S A SPACE) -- AND AN END STATEMENT HASN'T OCCURED. ;A FILE THAT ENDS WITH A CARRIAGE RETURN LINE FEED WILL ;BE TREATED AS IF AN END STATEMENT HAD OCCURRED. ;(NOTE THAT THE LISTING PROPERLY TRUNCATES THESE COMMENTS.) ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååS GENERATE ERRORS, BUT DON'T CRASH PROGRAM: {|{|{|{|{|{|{|{|{|{|{| LD DE,(17) | LD DE,(17) | LD DE,(17) LIST 3 ;ONLY LIST 3 LINES. {|{|{|{|{|{|{|{|{|{|{| DEFM 'WOMRATS OH MY WOMRATS'| DEFM 'B' {|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{| LD DE,(17) |{|{|{|{|{|{|{|{|{|{|{|{|{| LIST 255 ;LIST LOTS OF LINES. BEEP: DEFL 12 | BEEP: DEFL 12 | BEEP: DEFL 12 | BEEP: DEFL 12 | BEEP: DEFL 12 | BEEP: DEFL 12 | BEEP: DEFL 12 ;THE ABOVE LINE IS TOO LONG; IT EXCEEDS THE 80-CHARACTER LIMIT OF THE ;INPUT BUFFER. BEEP: DEFL 12 ;THE ASSEMBLER WON'T GENERATE AN ERROR UNLESS THE LINE IS TOO LONG IN A NON-COMMENT REGION. NOTE THAT "LISTW" ONLY AFFECTS THE OUTPUT OF THE ASSEMBLER. LISTW 255 ;PRINT WIDE LINE. LD A,(2+4)*(1+2) ;BALANCE ERROR. ASSEMBLER BECOMES CONFUSED ;BECAUSE IT THINKS OUTSIDE PARENTHESES ARE INDIRECT REFERENCE. THE ;EXPRESSION EVALUATOR REALLY OUGHT TO FIGURE THESE THINGS OUT, BUT LD A,[2+4]*[1+2] ;WORKS AND IS APPEALING, SINCE ;THE USE OF THE []s TENDS TO HELP THE PROGRAMMER vÿ­EB5MEP.ASMbßÿ šÿöÿ‹ÿõÿòÿŒÿ�ÿžÿ‘ÿ�ÿ–ÿÄÿ !"#$%“ÿŠÿ¾ÿºÿ›ÿ—ÿ«ÿ»ÿœÿ²ÿªÿ³ÿ&'()*+,-./0123Ñÿ™ÿ’ÿ¶ÿ¬ÿ�ÿ†ÿ�ÿ˜ÿÓÿ½ÿ¼ÿ°ÿ§ÿoÿ·ÿ456789:;<=>?±ÿ¯ÿÏÿÖÿÎÿØÿ×ÿˆÿ­ÿ®ÿ‰ÿÒÿ¸ÿ©ÿ‡ÿ¦ÿ@ABCDEFGÊÿÍÿÈÿ”ÿ¹ÿ¨ÿûÿùÿHIJKLMNOÅÿËÿÌÿÀÿÐÿPQRSTUVWXYZ¥ÿÕÿÔÿúÿÉÿÇÿ´ÿÝÿÆÿÂÿµÿÁÿáÿ…ÿÞÿ[\]^_`a•ÿøÿ÷ÿåÿâÿ¡ÿŽÿäÿãÿàÿÜÿÙÿÃÿÿþirÚi•´JÀ—˜Ñ¼ûЗó‹y3)½V ø¢y¬W?ðè)zôyXÖ+­Ð:¡øæê—«�¿üþƒV Ø9C¬ÿ�ûr~1o&Å¢×*_C!�õênâ /.¬´JZ% ©£A°¹DO¸�Y†¥3>Ÿ­)ÀN‘šæ–‘:2°SD?µaæ$Z¯U¦ÁÎЗM1âîæ§›ãñãïa2'®!»÷w®n`2'®µJ@SGƒhPYOxŠRèMÈWTa×è\–D© ™2‚' &Zo`§Ø½—­ÐԄʉC4XÛud Up¾‚çÍ”U © ã¾-šë|:¥€è±{/'Z%œ¾ÿõô Míüg±hâ /.¬¶pä2lh;…óˆ9üßé›VI«Ü\£¬¢`eó€Ý{ ú�Ü 8ƒ©Í2{o´JZ%àù¯‡�š3—�¿— ­ðüׇ²hÇ=—�_´JZ%àù¯ö�œ14[g„Ý{¹…Ô„@F ò%Ä¢/›bÔ*i•€�×øZ;AôS‹h°tÆP…ŸµJZ%Ï ƒi Fà|…Ì�w3Ò*xÆ`(qârƒŒž(ÃÝo¶fë·oÛãÖm×ÛîZ«àƒ¡`°tÆÜÛPi•[S@4X:c¨‚XìÞK}ðç?ÿY+­øððÂ?ýþÇ3s—øF2Û9‰ÖC,–¹ œL&ZiÅ펯¾|93'|ÉÜb!”e˜‘1nC0+#4CôQl.Ñ“V|ú–07ˆÞˆË2ª&“‰V»÷ònw|uÅœp錡 ÓÌm§Ø½—ˆ®“øD“‰Vâ|ø�Û¯|uúÆœpi£ ‹ÜP€‘�w’ÒjÑͰø�Û¯+ÞãÈe{`NØÛå Q½X¬óé”ÂÎWpUòUô˜¥ëH+­x<�-‹ò�9á…¹¡€¥�^(Àm\ôZñxœón;ŒÅ¢aN(|…Î.W°O�9#ðnF“‰VÜ-ï´â}1ŽüP¶­’VI«49ýM«ò]f AjBn(q’˜Õlm3D¯UÂïpýG‹(ˆ�\†e ‘•VI+>îÏ/ÌœðB‚.�¼ ë*'™íœDë½XœG­¸�s¿½Å-sÂÜ ³t!zHMXÛud U¨œ8­x~qä3s‹ Oo‚¥5Q¢õZiÅýëœûííÝ-sÂÜ ‚?ÞýQ+ž_ù¬÷çfN¸Ì]yAÖUN–Ö`íºÏˆ^,ÚR+­x<�-‹ò�9á…¹¡€¥�^(Àm\ôZñxœón;,š¢œp˜N Ĉ“Ü «]Њۢå�VZqxåbÛ3'\æ© ]í‚ë„¢G  Š-¤ŽÑ@jÒŠOßCÁÀˆ“Ü «]p�PÐJ+>îÏ/ÌœðB‚.�¼ ë*'Ñ‹Åy„Û¸è'­¸?¼r¿-˜æÞPq‚®vA+ž_ù¬•VܿιßÞ^ß2'̽¡ øãõµâùÅ‘ÏZiÅýëœûí-n™Šª‚ƒYºŽ´âùÅ‘ÏZiÅýëœûííó-sÂÜS0‡Ê™bahIÁ Áˆ“Ü`ì Kg̽ •V<¿8òY+­¸�s¿½Å­V<¿8òY+>îÏ/Ìœ°ÏC /ȺʉÃÚuŸ!m©•V<žÇ–‡Eù �Ç9ï¶Ãe±X0'\Úèb!5a錹·¡ÒŠÛ¢å�V¼/Æ‘ÊöÀœPø �]®ö‰‚VZ%ôî3Aêè7Ë@"«Éd¢•V|ÜŸ_˜9aŸ‡@^0îÛ¢)°´Ñ ¬]÷bqµâþuÎýö·ZñüâÈg­´âþuÎýööùV+ž_ù¬•VܿιßÞþõV+ž_ù¬•VܿιßÞâV+ž_ù¬÷çfNØç!�d]åÄaíºÏ‹¶œL´ÒŠÇóØò°(´âñ8çÝvØÏ›wæ„K½@,º(«ÉD+n‹–wZñ¾G~(ÛsBá+tv¹BØ' “‰VZññ¡à‚9aŸ‘ p¸óy–]kÅ‹¦8rËœ°pO„(ˆ^,º<ò‚qßM�¥�^(h¥UÒ*i•&§ÿÔ*i•°ÌRrC>Ÿ­) zHMÈœ|Äz%d`§÷mÑXçÓ)­–Á u‚(¸�RÃ!#WE¿�ϳL«¤UÂWBe!u4ÈœDß9Cˆ‚{gà�Y¿�õç+D�XûùR«›˜¥ëh‹|uúÆœpi£ ‹ÜP€'¹AôS«·;¾ºÚ^]m¯®¶WWÛ««íÕÈPx¢ S�9¡0™h¥UBS¦6Ëì}ô¸@°Ó©!1˜;Ãmn(Ü­íi¥Õp1ô»ò�ËÇ�¯˜C>Ÿ­)àÎeÆÂ}ÆÒD/¹¡`0�]ãî#Ö+!s­Õðeþ°h¸|ø#s—ŒÀ»ÁN‘ ŒÓ÷»+…YôN¨‚‘ýæZ«a, —�ß|bN�x7#Ø)rC�qú~w¡0‹Þ U0¢ß\k5\‹—�ÿô{æ„Kg̽ 3Nßï® fÑ;¡ FBô›k­†¶hJ.þñsBë„�9#ÈìfC¬gœ¾ß]A(Ì¢wBŒ„è7×Z ͼ/¹|øÃ8#dÎ2»ÙPë§ïwW ³è�P#!ú͵VÃ~Þ¼sù8ðï>0'죬`§È fœ¾ß]A(Ì¢wBŒ„è7×Z c±hZ.þÓ�Ì =ã6'Èœdv=§ïw±^ ™k­†ES4ÂËÇ�ÿô;æ„ÁP€'¹AW»à:¡€»ß|sëî§ow7X¯„®µþÒ_\>ü§?1'¹XüS>[B, X�Ìn¢ÿw·7·^‘¹ÆÝ Ö+¡k­†]9Ž\>|suܰ£,y·Î¨úw·7·^‘¹fœ¾ßÝ`½ºÖjx¸äòqà›«�Ì E.�\ë‘ÙMô?ãîöæöÏ+2×8ýóÝ Ö+¡k­†‹a\>|sõ#sÂEžeÌŒÓ÷»¬WB×Z çrþrn¸|øæêsBCa½ËPSÜÔÂŒÓ÷»¬WB×Z _çmsæòqà›«ß1'4fÑ» ÷±’š§ïw7X¯„®µ†ËñP´\>|sõ'æ„a™YWa3Bgs/î>b½ºÆó³·‚ÜP…Éó³VC{1Š–ËÇ�onn˜Z{ï3ë*LcFèlîw±^ ]ãùÙ[An¨ÂŠäùY«¡Ÿ_,¸|øææ'æ„>ú\ÈÀzˆ­Ü §ow7X¯„®ñüì­ 7TaEòü¬Õ°/ÆqÁåãÀ77Ÿ˜oâÆSŸÏÖ`§è\–ÆéûÝG¬WB×Z mù…ËÇ�o>þÈœðnstÎÃu’»,[!7©É2Û™ÉÀÝÍÇŸo>~ºÖJ«„¦&Lm–Ùûè7°Ó©!1p�0 v†[#Nrs ·¶O4™L´Òj±hŠfX0ÊÇ�¯˜â$7èjp÷ã�onÝ]kµè‹cûðÊ(¾aNèݪŸH«E_‡Å£|ø#sBïÞ� Z-Š}Ó†å{ºÍ2üSnö‰îCÚÂù ].°SHM¸¯-*'N«¤•VÜ¿Îy¿})›qßMÁ /$÷mÑpUȸ�‹^+ÞãÈ»ö°ÐJ+�sÞm?}`N¸´Ñ ÄâÓ¬WBÑ‹…Ô„¬«œ8¸@N+n‹–wZqÿ:ç~{Åœp™ .†q„Œû¶hŠß|ú Ï/Ž|ÖJ+>îÏ/̜Жðöµ3XÚè…ÄbÜ·ESüæÓ­´âñ<¶<,Êæ„,môBb‘ ðùlMA+î¯\l{æ„ä†|>[SÀÝ�¬WB×Zñ¢)ŽÜ2'45ÂÆ"z±÷mÑ¿ùô»Éé›V<¿8r«Ï/Ž|ÖŠûÃ+Ûž9á…†:ë+¬WB°Sä†|>[SЊMqäV+ž_¹Õ*i•´J“Ói•´J0$˜¹7Hœ\–Ù{ª`=ÌÊÍ´JZñx[^4E3,˜^H°´Ñ ˆEn(Àˆ“ÜÀrZñxœón»hæ}yN¸´Ñ ÄBâŒl.ˆ³ès!£·EË;­¸?¼r¹í™ _a™ ¢G©•VÜ¿Îy¿]”M_›yÏ ƒ!Л�¯¨Â®=, †Rfî g—eöž*­x_Œ#ïÚÃB«¤UÒ*MNÐ*i•ðw Rþз¿ûC[öÈ—™uÕ/•½÷™u:›{¡`´ÒŠ1ÿÂÃåx(Zæ„ùRGý­àïìR“G C© �ͽP0ZiÅLJ‚ æ„_Q°°¹ @ �V¼h .ÇCÑ2'üŠ‚…Ô„|™YW¡³¹ Zñ¢)¸=|½EË ¿¢`!5¡²÷>³®Bgs/´ÒŠQ^´ó/ZiÅé/¹/›ÃÐ0'4µƒ(0ôk×}†Xrú²)F­’VI«49ý«VI«‡²=ü ÷‡W.¶=s ºÚ× Lƒ�AjB_6ňu>�RЊÌ sƒ(pðy–ýüóÏZñ_~ŋˋcÜðNËÉÑ ³tÁù �$baÈW´âES¹eN¸°KÚBjòXæ‚(ˆRÆ}[4ÖùtJA+ž_¹eN(ª'ç;‚Ô„¥�^(`jÆ}[4…V<¿8ò™9¡¨žœïR–6z¡€© è˦µâ¿ô—üP¶æ„23„ÏDKdÖ.£ßh•´JZ¥Ééß´JZ-./ŽÍZqÿ:çb{‹[æ„Ë\à`–®#D�@Zñ¢)ŽÜ2'̽¡ ˆ‚è!5aÜ·ES`�O§´âùÅ‘[æ„¢zr¾#HM÷mÑXÚè…‚VüP6Ìœð@’±0ä+ Z%­’Virú›VI«¾lCóƒVZñåá’/ãÀ?1'�ħ(+Hœ‘ÍÑc½Á�ÄÙ\§ðV «eô›k­˜�ã—ñåãÀ?2'ü!ffdŒÛ�Á4s›ÉD«Å¯ö—_Æ”�`NøZeX†ød~ÖjñPíåÃ+ÊÇ�Çœð@®Â2Ä''„™Ù˜ŸµZ\M¿xAù8ð'æ„"Ëì=U‹¥5‚ã6d~ÖjÑÌûò04(þ=sÂh7v:…ÄÙ\=fÑçBF«Å¯~ú2/ ”�ÿ‰9á#Ö+!tv6s¾2˜ÆŒ0ÍÜw¿Ú_>üë³ÕµVZ%<ŸþE«„݇¾œ_̘%uÑe ÿÈ��™L´Jx>ý‹VZ%üúô †R“!ˆÅâÞ Öý¹¡ ¿>}ÓJ«ár<-£|øêêÃ�gæ„ÑvN¢õ°Sü¡o9ö‡¶ì‘/3ë*t6÷BA«öðõb<-ÊÇ�¯®>|83'Œ¶s­‡�â}û˱?´e�ÊÞû̺ �ͽPÐJ+­¤&Cè¬7â¼xz¢€®v~C“‰VZíÚÂ�òqà«««Ì -M£'HMص‡þ)Ÿ-µz)›qßM�òqàß_1'ìÞKìÚÃ�­b±!ÁÒF/ ã¾-šB«EÙôű™÷(þý sÂ!Á̽A⌴ÒJ«„…¸ °SHMèlE“ÉD+­ørXœùÌœ°pOz¢°’:úÍ�Ë ¡‰3·20V+¾gn™v$BÆM R;cCXiÅ—ÃâÌ;­ørXœùrñU+­’VI«49ýM«„™ûL0y ìÞKDƒÚÎH«„{BnRGƒIm+ˆEô&©�àžP»'Âî½üpu�9¡ð e†°{/úélÐ*!sBarú-e† u4ˆ.˰±Ño k¦øÇ?þ¡UÒŠû×9—Û�?Þ0' †@oB¾¢ »ö°@WS÷Y+î_ç¼ßþô‘9¡0Ÿ1µ¹¡€ÿùøã�V¼/Æ‘wía¡ï/çüésB÷—Å'Bôؽ—øY+þËů¸/›ÃÐ0'\Ø%maíri&“ è-ŠVI«¤UšœþM«¤•VÜ¿Îy¿})›qßMÁ /$÷mÑpUÈLƒ�a÷^jÅûby×ZiÅýá•‹mÏœðB© ÓŒ «]p�PЊ÷—s¾Å-sÂÜ ÌÒu¤ÿåâWÜ—Íah˜.ì’&“ î µ{"¬‰ôåübÞLŠE¯Ušœþ[«=ýöÿé›V<¿8r«Ï/Ž|ÖŠûÃ+Ûž9á…†:ë+¬WB°Sä†|>[SЊMqäV+ž_¹Õ*i•´J“Ói•´J0$˜¹7Hœ\–Ù{ª`=ÌÊÍ´JZñx[^4E3,˜^H°´Ñ ˆEn(Àˆ“ÜÀrZñxœón»hæ}yN¸´Ñ ÄBâŒl.ˆ³ès!£·EË;­¸?¼r¹í™ _a™ ¢G©•VÜ¿Îy¿]”M_›yÏ ƒ!Л�¯¨Â®=, †Rfî g—eöž*­x_Œ#ïÚÃB«¤UÒ*MNÐ*i•ðw Rþз¿ûC[öÈ—™uÕ/•½÷™u:›{¡`´ÒŠ1ÿÂÃåx(Zæ„ùRGý­àïìR“G C© �ͽP0ZiÅLJ‚ æ„_Q°°¹ @ �V¼h .ÇCÑ2'üŠ‚…Ô„|™YW¡³¹ Zñ¢)¸=|½EË ¿¢`!5¡²÷>³®Bgs/´ÒŠQ^´ó/ZiÅé/¹/›ÃÐ0'4µƒ(0ôk×}†Xrú²)F­’VI«49ý«VI«‡²=ü ÷‡W.¶=s ºÚ× Lƒ�AjB_6ňu>�RЊÌ sƒ(pðy–ýüóÏZñ_~ŋˋcÜðNËÉÑ ³tÁù �$baÈW´âES¹eN¸°KÚBjòXæ‚(ˆRÆ}[4ÖùtJA+ž_¹eN(ª'ç;‚Ô„¥�^(`jÆ}[4…V<¿8ò™9¡¨žœïR–6z¡€© è˦µâ¿ô—üP¶æ„23„ÏDKdÖ.£ßh•´JZ¥Ééß´JZ-./ŽÍZqÿ:çb{‹[æ„Ë\à`–®#D�@Zñ¢)ŽÜ2'̽¡ ˆ‚è!5aÜ·ES`�O§´âùÅ‘[æ„¢zr¾#HM÷mÑXÚè…‚VüP6Ìœð@’±0ä+ Z%­’Virú›VI«¾lCóƒVZñåá’/sjZZÍÑ’Öƒ“+ëpΓy=9uïwªæûù¹‰ðxuß�ÔãAd¼ƒPpªß+µ’`žÏÜ=D®xŒ¿ŸŸ›x7¬Ã9OäýäÔ}T>ò Nõ{¥‚y>s÷œú~~nbóç¯È¥ÇjΟ¿v.=Öƒóç¯�+÷nB~<9¬×U¼æñþ~~nâ6Èï'‡U¡(åâú‘{6¡ÇzpðzrX¯«xM®|}??7‡?åÞ—ÐcmÎ}sýÈ=›È•{7!¿ŸÖë*^#çëûù¹9nhÀë¾såÞMÈ�'‡õºŠ×Èï'‡U¡(åÞêç÷óss‚?…¼‹Ãªû¨Ô4GÎ'‡U÷Qù˜æÄ+÷nB&¾ŸŸ›sÞOëu¯Éý„àú•{6ñ¨|Œ8¹·ygÎ÷óss†?­ªÜlN†Šó|Éùä°b 7pžÎu_ ÅŸïççæTƒ‚WªÍ¹Îè'ç}©~p¶3úÉQ(2jq^·ßÏ�'gŠ×Ü÷]üùG‹ïççæµŸ /\ù~eFÃ9gÛð|zU¾_™Ñ`–¡ö÷ósóz0u-‡¢Þï•z6¯z¼;õl^€÷«–¼TÆãõýüÜ OXoz{¿r¿ÔS~2¹÷¥ž�c&÷óIÉ94«â}¾ŸŸ›Q�¢”›�û¹(™a±b@~ÍŠùyiVëûù¹™xB lsyæ^‡z¾"óñz0z¼Ÿtå£R¯ƒVÍ÷ós3¯V ~:ã‘Ôvî÷ƒz>îar?%?‡fÕ}T*_ßÏÏÍÌ2ùyiVÝG¥FfX¬”ûù¤ä=4«ýýüÜL¼®â5òšU¡(åvÑ\ŸÜëP¹Ÿ‹zT>M??7³žÀÈÏK³ª2ÞF~ÍŠ�wÒï›�÷ƒÉ‡žþ~~næ]�Ñ&·ŠÎ˜“qÍÄK�4�ïЬûz]ÅkÔßÏÏÍäôÈC3�U¯Ô>Ìu…¢´*ã.†ë“›ûýüÜÌ-X‡Êx$µ�ûý ž�xP¹Ÿ‹’ŸC³âñNú}S{??7ó|*÷9t>žÁdDQqd†ÅŠ!äç¥Yuõ||??7å‚T¥GšÆwhÖ}½®â5zä¡™¦®åPðÚùýüÜ”ž�Òƒº®P”VeÄ“âú•{*ã‘Ôvî÷ƒz>v~??7u êRû•û¹(™a±ê>/‘š rŸC?*wø~~nêõ„ç3cµ*”Aç~.JfX¬ØæšÜëP§n}??7UñÈ ßdtP\“{*ã‘Ôµ”‡¾o®¹×Ñú~~nªŸ@e<’ÚÎàÏ_�¤VPŒ=”9¢üºÉø˜ïç禯Ëð´™\Õ®õœš–ÞOZKJÓ¹âñ~ÓçÉl}??7õ~òç/9‡®«x¿SÛåTÝ÷#µMeì¥àT¿W*ã>¾ŸŸ›Úó|æ~l*W<Þoú<�VÝGåãù¢œêG??7uŸð^©[ó|æ~l*—ï'}ÎÙ¹ôHÓçœ�+÷ó¹çûù¹i (yÍz]Åkä;4«BQÊÅõ#÷:”iºëûù¹i?çЬ×U¼&Wn^´yèûæú‘{*Wîç“}??7òšõºŠ×È xÝw®ÜÏ'%ï¡Y¯«x�\ëûù¹éó„;4«BQÊý\”ü¼4«î£Rý¤åçЬº�ÊÇ÷ósÓS��~ÒñÊý|RòšõºŠ×ävÑ\¿r¯C=*±¾ŸŸ›®'ô¢s?%?/ͪʇÎ8—~¾äçЬÈíÇ÷ósÓ«@E?�뾊3 ^©GÓ×ï¡ßW‘z›ÞÎ ¾ŸŸ‹~<á=´B‘ñ€~]Åkîû.þü£�ÕßÏÏM¿ß`ß‹ËÊÍ ìwcy?yù±&†u_z¨xT¨¿ŸŸ›ÞŠ’BRñÐã=X!½_?ï^©§i?Ö8~¼õýüÜô}úÏû|çðüÖ{¿rŸdÅUæ®aŹkX×¹ƒïççfp’e¿ƒÅeåæüùË¡¨÷ó®“ÊE×ãy9ïü~~n–ß�ÊEË–0ÖCÅÃχW壞�x³ìÛ¬«ïççfE—•›dðç/=Tû¾¿ŸŸ›µD�yŠŠqͼĬ¹bfÖä¼Ä9g½â¼�^¯3ëýýüܬÇ^¡{â<ÏfóÐó¬Wib^bÖìñÔ¼*Äœ¼ßÏÏÍÊ€Yóçß^%1ª%fÍ­OΚ#ƳçY¯¹u*n}??7k¿AèêêŠózé¥ó|‰ÍCçŸÎÄ´¨3MÎ뵿ŸŸ›õ ó¬™WifržUóš£+ÄKóWTÌköhr^¾ßÏÏ̓7ˆªYu¦Åä¸45¯’(Æu&¦E�ñhr^èûù1< Ë桳žœô÷óÌŸ¿žÏïçüÓñÏŽ¿ÿþûü^üý?þûßÿ½ÿë_þÛû>ÿåïÿ÷¯ÿëÿþëÿùßßÏR5«þÙÛ÷©Aç~.JfX¬ØæšÜëP§n}??7UñÈ ßdtP\“{*ã‘Ôµ”‡¾o®¹×Ñú~~nªŸ@e<’ÚÎàÏ_�¤VPŒ=”9¢üºÉø˜ïç禯Ëð´™\Õ®õœš–ÞOZKJÓ¹âñ~ÓçÉl}??7õ~òç/9‡®«x¿SÛvÿfRDISKBUFS.HEX(ÏÿÍÿÎÿ Ìÿ¼ÿÈÿÇÿÉÿ Æÿ»ÿËÿºÿ ¾ÿ¹ÿÊÿ½ÿõÿòÿÅÿoÿûÿßÿíÿÐÿ !"¬ÿžÿúÿ÷ÿóÿåÿ¶ÿ#$%&'´ÿ²ÿ¯ÿªÿœÿšÿ˜ÿ”ÿ�ÿÿþ?7æÏ_ï7ÍŸ�‡Ö‹ó(?§â‚Ÿó”Öpâ1ýýüÜØ ­Ã¹o™?yÅNÉø¾õ`@šKè�ü~~n€ßõxGJKoá?­çÛKz¬Ç{ð9gËëÉy=¿ŸŸŸ†×U¼Fq_÷}_¯«x�îûºBQºæ]ývªæûù¹ñ§±¼žæt (x¥¦°Ü€´6'Öc÷÷ósãjx K�'ç¾å·9±ó±ß—k8^÷}]¡()¶¾ŸŸ/ £�õx|ßòö’°oqôx c= ¿w~??7~4èíGïê·S�Âwñç?ôà…+߯ÌhXõýüÜ8�sζáùôª|¿2£Á,S×r(êý^©ßÏÏ�wÃ6®Ç»SÛ8ð~Õ’+ˆŒ:œíýʽ‚xjõ÷ósã'ðlœû]Äóáʽ›�דêP”rïKäÞ"Öù~~nDƒ¼ŸV Èùä°b@ÞÅaÅÀ6—gîÙú~~n$àùŠÌGÒc5§òQ©„÷“ÊÁOgô‹Øî×÷ós£hȽ‚x>ÞåÞ"ä|rXu•Z‰ä]VÝG�óýüÜè¤ÖBò~rX1(÷nB~<9¬×U¼F~?9¬ŠèïççFÓ (å~Bp}rÏ&ro�ÊGÉ»8¬ªŒ£ïççFÍŸ¿$ç“Ê�õâ¼o>V ÜlNÆÊ œŒ¸óþ~~n´PÆû�â¥ÇzpðûÉaÝ×ë*^£ÇÚ¦ñ£ÊñÒ÷ós£7 à•zlt]¡(­ÊH!®OîÙDF¿ˆíÜ+ÞïïççFÙ@<"÷!ç“ÊÇzqÞ7uåöæä#=î÷ós£ d"޼ŸV !ïâ°ê>*e=ÖƒƒßO=¿ŸŸ=8¬ûz]ÅkôX›Ã4u-‡‚WŠ ®+¥Uéïçç& d¸ ®_¹gý"¶s¯ ž�Wû•{‹�÷óìïçç&ÔÀaÕ}^"Iäöæ<*±ˆ¸ÏgFlbUh%çæ÷ósȽEÈûÉaÅÀ6×äžMœŠÇJΛŒWÜßÏÏM¼LîÙDF¿ˆkimÎ}sýÈ=›Èè±�ÁŸ¿¤ïçç& Èè1I0~¼ž„ñ›ð+_È' ñ¼œ«Úµø~~n¢Öå=úu¹1“×åÆLâÇ¥µydCx|'ˆØê™¸1óoíûV¹1“X±´ÿ½ñû]½z‰ø³¡µï -z'4÷díu¹óJܘɫ϶lpçÈ�×åÆL^}¶eƒ;æú«æÊèˆßïÊ[/¿_õj¸UªÆ¥Žøýðûݬ—ˆ?‹bgydCx|'P%zõj¸Uª~¿«•z‰ø³¡8 '±¦“½Ÿ[/öV¹3Ôã�³aáä‘êñ΋ٰpÑ+Z¥ºwe�<²!<¾ˆŒèÕ«áV©WâÎ#Ü9r'*^ƒ;×åÎ«Ï ­¿~œw®Ä�™¼7f¼Æw‚ÇtäÆLÞ*wbfAƒ;ò¶ÌK¶H©¹V£Ÿ‰;�lpçLܘÉ3qc¦Ák|'(c:7f/Q¾Y›G6„Çw‚Z1U¯†[¥jœ‰;±¾´æ· ¿_õj¸UªÆ¥Žøýðû]„õñgQì,�l�ï�›ªWíR5ðû�Ä×KÄŸE”òȆðøN ²¦êÕp«T�#wÞOÔkpçJÜydƒ;WâÆL^}6x�ïªzËwÞ*7fÚ2¯Ë�™<7fò>6¬˜¶Ä7-Rz%îÄÌ‚wÌ?Åtš×KÄŸ=�/ó´Ltªmmž– áñ� \ ~¿Sý2öLÜydƒ;·Ê�!é;/fÃÂipçLÜy&îDç…¬õ� \Í-ßyd[æÕpc¦EJoù΋ٖy&nÌ$V,m‹”âOß DBÕ#«WíR5ÎÄ�™<7f+–6oùNhö…UªË#Âã;�†5øýî¾LÄŸ=7fòLܘI¬Xڄ枬Åïwdõj¸Uª†9‚ªž‰;/&zžwðû]¥/ñgÏÄ�X_Zß þnñ3qc&QñÁZkóȆðøNà™šêÕp«T�[åÎ�ô�³aá4¸s]îDÅkpçV¹)d}'øù¿å;�l˼nÌ´Hé-ßy1Û2ÏÄ�™ÄŠ¥m‘Òërc&oùNü¸´6�l�ïª?7fþ­}ß*7f+–öߢ7~¿ë¿LÄŸ ­}ghÑ;¡¹'k¯Ë�WâÆL^}¶eƒ;f‰¯1ÿ•5øý.—‰ø³øýªWíR5þÿÇï‡ßïþÔ—‰ø³(v–G6„ÇwÍ.n­�( øNP²ñû]—;�lpçÈ�!é;/fÃÂipçºÜy]îDç…¬õ� `Ùø“Çw‚ò[ÜZãÈ�™ Iß áñ� +ûœ—‰ø³×åÆLbM'{Þ˜ð~öºÜ˜Éërc&±bió<÷N”{a•êòȆðøN Ⱦòy™ˆ?{]nÌäu¹1“X±´ Í=Y{?õËDüYü~×åÆÌ¿µï#7f+–öߢ·Y” uZDISKDOC CQMEî³DISKDOC DQCFäAÿvÿ XDISKDOC.COMæ 2ÿÿÿÞÿ ÚÿÿÆÿ.ÿ >ÿ"!$#àÿ%ßÿ&('*),+.-/þÿ5ÿ01ƒÿJÿÒÿ6ÿ23šÿ5476‹ÿ8:9;Óÿ=<>æÿ?�ÿ@ýÿBACÿûÿDE–ÿGFÕÿ·ÿIH÷ÿ<ÿK‘ÿJ�ÿžÿLMÔÿNíÿOŒÿQPR¶ÿS›ÿTïÿUùÿWVXœÿ[YüÿZõÿ\]^`_badce‚ÿ—ÿfhgÿjikoÿl�ÿmpnoqÝÿ:ÿrsutÛÿÖÿÙÿëÿ¾ÿ”ÿéÿvÜÿGÿñÿxáÿw×ÿÿìÿúÿzäÿ{ãÿ}|Äÿy‰ÿ�ÿçÿ†ÿåÿ~˜ÿøÿ�ƒ€òÿkÿâÿ‚=ÿÏÿ…†‡ÌÿŠÿˆ“ÿ„™ÿóÿ…ÿÀÿ‹Š*ÿŒŽØÿ��‘’‰�îÿ4ÿ“ôÿèÿSÿ”@ÿ–—•˜›™œš�¥ÿ’ÿˆÿ„ÿðÿ Ÿ‡ÿÿ¢¡žxÿÃÿÁÿ±ÿÇÿ'ÿŽÿ«ÿöÿ£ÿ§¥¦¨©¤êÿ«­¬Lÿ¤ÿ±°²¯rÿª³®gÿ7ÿ¶tÿ·ÂÿµÅÿº¹¸Ðÿ ÿÑÿ½ÿ»¼´\ÿ¾½ÿÿzÿÿÍÿ1ÿ ÿfÿYÿvÿ»ÿÁwÿÀÂÄÅÆËÿ#ÿÃÇÎÿÉ/ÿÊËÌͨÿNÿÑаÿÈ¿ÏÒ_ÿhÿÎsÿÔÓyÿ}ÿ{ÿ�ÿ€ÿÈÿÿÿÊÿ•ÿÿ-ÿ(ÿCÿÿ¦ÿHÿPÿMÿZÿUÿcÿbÿÿ|ÿ×ÿÉÿÖÙ ÿÿÿÿÚÿØ&ÿ%ÿÝ0ÿAÿ?ÿÜ¡ÿßBÿOÿIÿÞà¬ÿVÿãXÿ²ÿâä`ÿjÿ´ÿnÿ¸ÿáåÕÛÿþ~ÿÿÿÿ ÿÿÿ)ÿÿ3ÿ+ÿ;ÿÅï§¼LÄŸÅïg­ñ¿~¿‹èËDüY;Ë#Âã;�çe[#´è�!é»Ák|'(Ù!éûߢ÷­}ç-z':_dí)ÇD¥ŸÅ_¾“(”ˆ?‹ßï$.”ˆ?{%&*ýìy%âÏÞbC‰ø³GÜ9rçu¹1“(¯7ÛàNÙ 3¾xôf^ÜÛ)ÇD¥ŸµF¹rs'<<-Rz17¾ÉÓ˜ áñ�@–·‹‰žÇæës㛼‡ áñ� ¼]‰;o•3y1Û2¯>ªSmpÇüoýbn|“gbCx|'IoWâÎ[åÆL^}¶e^̆…“WŸ Õ©6¸cþ·~17¾ÉóƆðøN°ÞãJÜy«Ü˜É[g[æÕgCuª î˜ÿ­_Ì�oòÄl�ïÊõ¸wÞ*7f�¯ÛwÌÿÖ/æÆ7yZ6„Çw‚ õ¸w¢Ì î˜ÿ­_Ì�oò”±!<¾TF�+q'"ü¡Áó¿õ‹¹ñMžÀ†ðøNP9=®Ä�XÌ î˜ÿ­_Ì�oòúl�ï‹íq%Ü1ÿ[¿˜ßä̆ðøNPíq%îDO¥ î˜ÿ­_Ì�oòD³!<¾ˆ`Ô'š ïg/æNüíµH陘ð~öbn|“gbCx|'¨eÔWâÆL¢ò¬YÔ¨¯Ä�·Ê�™¼ŽÜø&áqÝÚwÌÿÖ�ÜyuÜø&Qzl‹”æ‘ 2ã;Á¿õ#7¾ItÞÉ^Ì�ðð´Hiž‰ Œï¢¾˜ß$J�Í#dÆw‚ž£6{ˆÚÜÓ¨ÏÄ„÷³sã›<Âã;�ˆˆúJܘIT¾ƒ5ÿ[¿wÞ*7fòJÜø&¯Ä†?ž¼èÜø&Qzl[&<®[ÛàΕ¸1“¨dk�ÿ·|癸1Ó–y«Ü˜i‘Ò#wž‰;1³ Áyƒ;·Ê�™¼úl�ß ê¯ß*wÙàΑ;1³ Áy¢òlÙ ÊøNPÙusýõ[åÆŒ5þ+Õ]‰;¯†3 î¹óÈw.¦ï²~¸.wÞò�gâÆL[⛼ždÊipç–ï¼UnÌ´e^‰3y1*;y%nÌäEgÃOƒêi‘Ò#w^‰3y1VLƒ;WâNÌ,hpGž¨|›G6„Çw‚Þ̲~0ÿ¸~&nÌ$*ÙÁ*•Œ[ûÎ[ôNt^ÈZxøÁ¸µï¼Eï„fX ?øËw]&*ýì­a"ôYüåÃïwkßy‹Þ‰ÎY ?ÿÿ¹óÈwŽÜ˜É«Ï¯ñ� +½å;¯Ë�˜YÐàŽ¼-óÈ)5‹ðüå».•~6´ö�¡Eï¼å;Qî…UªË#Âã;�H¥÷¡DüÙÐÚw†½š{²ö¤L„>‹ßï 1úì‘;�lp'QÉöÈ9ÿ¢ÿŸÿEÿDÿQÿ§ÿTÿªÿ¯ÿWÿ]ÿ[ÿeÿ³ÿmÿiÿ¼ÿpÿ¿ÿuÿ¡Uª öÀ[ŒŠSx¡÷‘ÿÖ¾�ü·è}øoébÅå‘ áñ� ¼1*~¿û]“ˆ?‹ßïjeM"þ,~¿‹jM"þ,~?ü~÷—5‰ø³Gî<²EJ�Üø&Ogƒã;ÁßÜÅïwzM"þì‘;/bkòt&:Õ¶¶EJ�Üø&OÁ†ðøNà!ÆÏ×5GØ=rã›<6„Çw‚ŸˆQ«]s„Ý#7¾ÉëeCx|'ñ/:š#ì¹ñM^Y6„Çw‚õ."(Ûa÷È�oòÄl�ï¡.ôÅÍv�Üø&O`Cx|'ðl?«Éa÷È�oò$±!<¾ˆ`/£›#ìâ÷»Ÿ~M"þ,<rã›<�Ùß z–èHÕÖ¸ŽÜyѹ1“WŸmÙàÎÅ܉ˆ²ydCx|'¨‰.¦jk˜5Z«Úÿ�Ü’¾ܹ˜¾Tî"üÉã;ÁrёָUnÌäu¹1“X±´y&nÌ$4ûÂ*Õå‘ áñ� Ì"ü~'䉸³·Ê�™¼.7f+–6¡¹'kñûi�+qç­rc&¯>Û²Á�#w""…lÙß þô¢‹i si‘5ðû�2y"þl¨Ç;/fÃÂI¬éd¯Œ<öJܘÉ[åÆ fòÈ õxçÅlX8‰è­R]ƒ;øýN’<6$}'Öt²÷s剸³¡õw^̆…“!é»-k:Ù‹ <öºÜ˜É+qc3’¾3´þ΋ٰp2$}·e"zE«T×àŽQÞBo<“(ÿ62â…Þy=Þyëï<é;áù«ž‰[¥šG6„Çw‰Ñ~¿óŒ<¿ß‘ÜÓø¯T‡ß¿ßÕpc&özpc&Ë[è�gå_ÀFF¼Ð»EJñû�‰3‰ø³'›3YÞBo<“(ÿ¶EJ¯7fðM^�wÞú;OúNxþªgâV©Â}q²¹1ƒoòV¹óV¹óV¹ž¿ë;A{q¤q1�ÿGî<7fòb6,œ¼:6ü8 î´ˆÙÿ)!sùCô‘ ±* ʪz íÿÂ(š¸–Sµ†a&ËCýG3Êc�,µ)5"¥|©)ŠÚ¯àhFä_¡ö+7šYYµÿ7D3 �ÅÊ hçïË�*´£‘Ü€v«‘Ü€vD(7 �äFT B’*ábŠhT#Š!JOẌPn`1£‘ܨb1£‘ÜÀbf±É IåãáOTõbU¿3ÿ‹ù©=yøǨ¾ô䡂Ljê¨%UB4?Û,0üZG‹¬µÚðìÏ;²pÔå'bfYAQ|¶ð÷wm±Ug’ÔÙ‰²X³dz?O’ÄŽ¨¤ ü9ï5QTàÏéå×#Zý�| åÖ…ÖÀ³kD´ÐšH�ÕQý™ IZÌÕB-ƒ[Qs¼¦~2Þkªx¯©’jýGQÕºBŒ(jýg ×úïꌨ:«�¤ÎþH#ª?#i1FÁº²^uAú#¨ÁK V÷•½>jYÏkQ¼òUÝû°ŒÞz÷ù£U—y49e ?z´¢²ge…2]FïGãÊ¢öUYáG× zÿ)¬ÖÔúºÆšt±@Å«¢¬ð~d½+5•}?½ê‚Ê*úúûÑ£( 溺Bèõz?â^…öýºXxÔýG’ÞW?’©�éÕËŠIìënQ+ÖûÂ#xé�¸°XÐ z^‹â•º è�Bûú…Ëê�r½}å ^ íJñ#KݼeŠÚhO¯Z+Ö¤LÐ_Ÿ×¢x嫺—Bá²úÓë¥è+z½ÿê§ uýéÕÔ«û�—º ½Âf…+L±ZS¿W^‹â•º èOQû¼ö‹eô§žÂõzùHæ«.ŠZ…PTkŸ×¢x¥.úSÔ>¯ýbý©§p½^>’)Vkê÷ê|ÕÅBQ«Šj-e½+5•}2ê¾ ¿RFÑ»RSÙGVQ[{é¯ìUTVÑןעx¥.úSÔ>¯ýbý©§p½^>’)¨Ÿ×¢x¥.úSÔ>¯ýbý©§p½^>’)«Ø ë½jí+{Õ•UôõGï÷Õý§¨}Ø«.¨¬¢¯?²ŠÚ¢ØK¥$½¯~^‹â•º èOQû¼ö‹eô§žÂõzùH¦$½¯~¼Ô?)´…¡¯è])~êytùò‘Ì×¢x¥.ú#¨A OQû¼ö‹eô§žÂõzùH¦à¥?‚.ž‚‹Ê”=¯ºXè« ?‚—þôªµ‚®Ä�ZÖ#xéÏkQ¼R�!¥ÒóZ¯|U÷>!¥Ò#èbá)«½¯}B|Uëâçµ(^© ‚þ(”õuÅká§W­Eí#èbá)«½¯}êvµ/ꙸUªp_\‰3êñnÐ`òJܘÉÐú»AƒiP=y]nÌdHúnÐ`T�ï•S¿ßyNžˆ?‹ßïH«Tg\L«Tg\—3‰ˆ²¾ØBÓ¸7fëKk\—3‰™ îdhý�³aádHúnËUÆwÙËërc&CÒwƒ;GÓ¸.7f3 ÜÉP�wƒÌøNPËåu¹1“G6¸c\L#Ôã�÷ÊUÆw‚ X^—3Æu¹óJܘÉ[åÆL[fHúnX8 î\—3ZçÅlX8’¾Û²A•ñ�À¼¼.7f2´þnX8ZçÅlX1ydCxÚÒ¸.7fŒÿGî<²Á�#7fòê³Ák|'P]àV¹1“×åÆL[⛼UnÌ䕸1Ó–ø¦Aƒñ�`A�#­qäNÌ,hpǬÑòbZãÿ™¸ñMž‰ß4„Çw‚Àïw¢Èñg¯Ä�™DüÙ™òDüYDY �l�ï,p¤5ÎÄ�oòºÜy%î¼Uî„ç¯z&n•jÙß Ê¯~¿+qc&öþËñgñûi�‹i� y^‰ß$:Õ¶Ö(‡ßï~š<öÈ�Qy^/�j[Û"¥øýŽÜø&¯— áQm”+w1}'0j_Ì�ðð´Hiž76„Çw‚¿«}1wÞ*7¾i‘Ò‹¹ñMž‰3‰k[›G6„Çw¡¶ù©}17¾Ix?{äÎ#[¤ôÈ�oòLlÐ`|'0×>r'<<-Ršç� áñ�àï×¾˜ßXÃÜÓÚ>óSÛ×åÆ ¾ñ� ®âu¹3 ܑ㛼Un|Óß XñbækiüWª+wÞ¸1“·87fTß TWt±ðôª *«LôWŠ{Úçµ(^© ‚þµÏk¿XFê)\¯—�d }Eïʇ‚—þ¼j’)ª5‰�5)”…Â�ZÖÃÇK!~dt]û¼ê‚Þ+è¯÷*´�¬¢¶(öÒ_YV!ôz=¯EñJ]ô§¨}^ûÅ2úSOáz½|$S9qYåk©Õ£\™Â‚þ~”“+_˲}½LQ­IìÊô÷£\o_ùZjõ(WYQ«¿å¼ô(”?¢ßÔêQïG™:Z±W¡ÌÕêQïGè¯tÅzïûéën_W¼¾±WQ–àÊ…÷Sp¿(è�ºÿh¬©(<’ù(•ä¹ÈyĹêG.ÒG^‹�\3yOJuEqÕ"­EÍè ·B¦÷U—E½ßW÷Ÿ¾®x-j£=Ôû}uÿ)¸_ŠÚhÔû}uÿéëŠ×¢6Ú#£è]I½ßW÷µöéëŠ×§ŒÞ/Ê*L�Ÿ‡ÑÍç¡Þï«ûO_W¼µÑöªµBQ«I?}]è~ÔýGcMEá‘L�{ûÔû}uÿ)¸_ŠÚh…¾¢wåSϣ˗�dŠõ^AÝêÑåËG2_ûÅ2ú£U O_W¼æk¿XF?оþhÕÂÓ«.¨¬B(Ê(ÓYÔŠõ¾ððy-ŠWê‚ óyíËèOQühÕÂÓׯ…©�é}ÕeEób¯Z+µšôGÝ4ÖTÉìÕ˜B_Ñ»òá#Ö{uÿ¡L_W¬¤’øg‹eô§žÂõzùHæ«.ŠZ…PTkŸ×¢x¥.úSÔ>¯ýbý©§p½^>’)Vkê÷ê|ÕÅBQ«Šj-e½+5•}2ê¾ ¿RFÑ»RSÙGVQ[{é¯ìUTVÑןעx¥.úSÔ>¯ýbý©§p½^>’)¨Ÿ×vÿð÷DISKDOC.DOCQßÿ  šÿ‹ÿ–ÿžÿ�ÿŒÿ‘ÿ�ÿœÿ›ÿ“ÿõÿ—ÿòÿ�ÿŠÿ! ’ÿ"#†ÿÑÿ�ÿoÿ˜ÿ™ÿ$ˆÿ%'&(”ÿ‰ÿ)*øÿ+Óÿ-,.«ÿ0/¼ÿ12¾ÿ43ºÿ¶ÿ5­ÿ»ÿúÿ6¬ÿ78Òÿ²ÿ±ÿ:;9<‡ÿ°ÿ=¯ÿŽÿ?>ÖÿÐÿA×ÿ@BÃÿÁÿÏÿ³ÿ¦ÿªSMtÞɹ1“³-­q]nÌ䕨PÙItÞÉ^—3‰Î;YãºÜy%nÌäE͆ÓàNžªlPe|'øI�®Ë�™¼6,œ<Û2áý¬™ßu¹1“ç‘m™ð~Ö¸.7fð�ï/¿ër'f4¸#Ç7 ïgÍñg\—;1#opg�ïáï&¼Ÿ5‡>ã¼1áýìÕ0áý¬q]îÄŒ¼Á�¾ˆ?ü~æJ?ãLLx?{ÞÏž‰ ïg�ÐÒͫϙñ� r¾«Í„÷³¡¥›WžlX1 ïg�ër畸ñMžG6,œ)Í#¼Æw‚ˆ}=�q]n|“§*Dß 4ÿ®Ë�oŒ‹‰žÇ¸.7¾Éóȯñ�à{.&zãºÜø&o³AÔñ�ày®Ë�oò<²aá×åÎ+qã›<N^ Û²EJójØà5¾ÏÅDÏc\—ßäEÍQÇw%>×åÆ7ÆÅDÏc Šó�àï=øýÎôNÄŸE”òȆðøNð÷ž‹ii”;r'þöZ¤ôÈ�oòV°AfòºÜø&¯R6ˆ: +Æw‚wäÎërã›<Û2oN‹”¹ñ�jã<¹Æÿrsçu¹ܹ˜3yï¸aᨶÆÿ²Ñ‘µú“#ðx�¸ó+0�˜wd3ŽÜy1Ü9rcßäÕ±!<Ö¸.óÈ„„ÖWÇ<2!ᅵƕ˜WâÆ7 /¬5þ+™®wžªÌ«È�oòlX8 /¬mp'�l�ï?ÝY½un•ªq=¸1“G¾lKÌü«í^—;o�3yù²-1ÓàN¨¶ë;ÁþwRnÌd¨¶›G¶%¾ipÇ\é¿“rc&¯'™·Î<2!á…µ +¦Á�“Í�WâÆLÙ– îÜZnÌäõàÆ fÜ9r畸1“×e[6¸s5Üy%nÌäud[6¸s&î¼7fò¼±-ܹUî<ÙܘÁL^̶Ì+qcßäÅlX8 < î\‰;ÏÄ�™¼unÌ`¦¡:y]6ü8y5ܘɓrc3 Õ©æI¹1ƒ™¼˜ §-ó¤Ü˜ÁLCuÚ²Á�[Ä�™¼UnÌäÉæÆ fÚ²Á�‹Y½un•ªñ?TÛõ�`Ñ‹#wÙàN¨¶›×åNÌ,hpGÞ–ø&o•3˜iÐ`|'øq�¹¹1“¡õwƒÌøNP¾ n•3‰õ¥=rç‘ î\‰3ªí數1Ó–ø¦Á³üÅ­rc&o•3‰Î Y¥:ãLÌ#^Xk\ óLܘIHxaí-μUnÌ$$¼°öd3¯Ä�™„„Öž7æÅLHxa­ï•ùâHãbWÃ<7f^X{‹3o•3 /¬=ÙÌ+qc&!ᅵ׃y1^XCÉÿD¸ÿØÿ´ÿ©ÿE·ÿFGÝÿIûÿHÅÿ½ÿÎÿÇÿMJLNPK…ÿÍÿOüÿÔÿ¹ÿÆÿ¥ÿªÿ¨ÿóÿÊÿËÿ®ÿÿþÜÿåÿµÿû8®«®J<¬oÝK‹s 9K(AÐFT�bìÖ14_T‡ÐŠutJ›Ò9ú)õu\i´u/õíÒïÓ¥´K‡ÏúB¿o×¾ý�h£M§ÝùàçP�âÛϸs]ºõ¥®JèjÅošw®Ëå¹–6Ú”6͘œ¥ú¡±5´kÛÅÃúêmùP\-¡çJ–¸õµ÷½¥�6Úh3Ì�&P·N`´6%JºKEé\”òOvÈû‰×DypN@9ù'|ryü �N˜Gr’äЩ¿‹,”?óatÂnªgm˜N¸Þ¨Ö˜Gƒ¼LøÏû d­Ÿ  £Z¯×DõarjlÃwJ›É0ô~*ËÁgS-· ¬OŠp'g4�ƒÇ_`)üÀ…|…¥ÍD†õÍágA\9ø%MN>Î’®¥Íëãa}ìø�—åàkø r[ˆîÂÇÏC$>¬OÛ�G§¥¸†²*98 K›IaXß¿!a9øjcºƒ¯y,mV†Žöv‹ãrð�òKáy|Û”ó0:aõžäãóqè¿¥Í 2¬oho·8."ñ.ä{`i£Í0?š@9Ü:E0ûÿLÎþ¢íŸ\ ?äòȾm.{wîÃÎíiÓ§œÛ 힟ûÄ#€÷ìè.ÒÁ[ÂUI êÞ€Â9:aŠ@›†oáÃh-<ÒÆÕë5täžõÔŸ}É&^–ƒ/Õïªnp»ÚxžÉޝMïr »È‚@ù3¬i3Ì߯~…g�{òø=°ö„çuAÙÝ9»ÍQ &åàÚäÝMõ¼Û ¤TØE–êX ¿>“©–G' ¾æåÕÛžÖú•À´¡Z¯×Dõa¶;~ rð¥ú�òbò>ŸgÇ[ËãϖχÙîR½6�ö-†ºÀRøÁǯ¹J1Zë(‚²û Ï ÷¬ï­®vyög>O`üE[á–6|y�¥ð°äàƒ¯yyv¼µ,GÞŽ·–åàƒªÞ{p.Õ¾æeÐ&å‚@9ܺÞå2¬'©Ö“wn®^æ‡æž° ü5£»¼KõÚ4Ê©_ó2XÚh£�6¥h¥Eú}»·þb+Öï �ãŠñq,í÷íRÜP;Aí÷鎺Ò.h(‹9®£X÷"¾]û8¢j£Í0iŒ¯‰ïýIJ¹gá:�NiOM¹Fü«÷$É &G›T?Dâ¯!Ü .XµÖúÕÃiOM¹Fü£Wxvo¯[üÂGçèmRµ°Â³»sO7H:�8Xëä¶ëIŒSTøå]�%©~H{jÊ= �{[†�ˆs §þÎ]Ǹ=)Þ/ŠÍÄò°žÄ8h›ær.Õ{Ö|m¨ÍëQJHßý(P“”rÏè”—/.•âò®Q.H¥8øš—µñ¨iäà#þS|Ž¿h+üÁ¹T?¤=5å| \èÅè„Åó%³ONmø¡ùšRøè:WéÌþÕ{@Â3Ùш×DA>XÚô¬ë>Xª_¼¸TŠÑrc¼=9øàk^¶Ö¯V¯çÑ Ðf˜¿…GÚ¸žzþÑ�ƒÇ_ø’®6ÃüA ü™–6Úì Cw| Kõ;_2_´ý“Bqð5/[ëW¿ó%sÉTËÐf˜Ÿj}€d©~Â.²T¿Ú2ÿÉÝó?UõÁÒF›†Þ—[É5”UÍ»á-m´Cwünü¬9>…¥úÕ–ùO¾æåÝS„“KmÃÐQ• ¹T?~È]d©~ð5/-Ù­¹ )÷,ïR½6Ãü,¸JkýJ`õz�0�µðH×SF™ï5)_Þñ7$¬Í0?|Í˰žzþ¥úÕ{’oŒÏS‹r4ä{³%aêùG'h3ÌŸêù-m´YCGýø5G;ß[2Õòè”—_ó²¥�6ë Cï‹,ù³©–—êW[æ?9øš—­9¾÷žý¼¼ká—J@›aþ;\ ?øˆìK6‘åew _¯I°Ö¯^›ðµ1W Øþ*�µÐRŒîì_h"¹f»K·‘ƒ¯³Ê�ïžúÖ|mÜÛÔmcØŸ|�É¡¦áÛ°Pþª"¦šÏÎ�r¸u ^]mø‘–w_Õ�¤5Ÿ“,óÈ�ý«—ùk~˜í®9øR½66Õ24Tåw­•‘Cq�Uî|=‰Ñ9‚µÐRtîOXªŸœ¦ÍE9oi£�6Úô;賎bÝ»—vA[×>ût­�6Ãü¨Iœrðµ�sA n]ObÜŸ|^ª_½žG',~á£Sþ¢íCÊÁG9xüÅÏ|^½žG'tJmFÃÐK5¹¼ËgOÅ¥Û¼µNn»žÄ8‚ò‡åÝŸ|^ª×f˜¿*bªù¼T”ëIŒóná—êW[†ËS×{k¥g•š×f˜¾hû§þFµ~“dÇ·Ö¯&0Šq©('0þ¢­ð‡åÕf˜Ÿ5¹ P·.ï ÂÙRŒîè¸+Hø»|öäP´æ›Ðf˜ŸZïÃRQ.Õ¯'!Õ.²T?¨ü&°wµªˆ©æ3XÚh3{z§©–ÛfRøÊŸùÎÝ3|ÍËÝl·|Í˳ ¬ur[m†ù{ãìAùÃòîO>/ÕnËõG',<¤J¹g�¥ðÚ óòÖ'uS(¬ùæV¹­BqynkÇïVÕ×òRý‚ð×”{´æ¿È% ‰·g­_ý€¼_`)ü<ÁUÎþ€àçÃfßTÚ óÃm¹þè„…‡”C)÷8'g=%U­ü‚@9ܺžÄ8þ¢íCj3ÌO åÏüUEÿõÔŸ/<ï|}bw¡e9øRýêm\m†ù¾õ¬ù"£³g¾<�…ϯùar–ê·åú åÏ|§6ÃüA n]ObAy=õ©ž—ê_óòø)ì6Ï”rÏ@Ý6m†ùí²|p.Õï™/Oðsùƒs——êgS-·ÍȾœ¬ù¦6Ãüã¯×óþ„Ë;þdw4ä{Kñf?rù¾Fb9øH›a~øš—×þz ÏdÇw.ÕóÛî‰ù,ßmsròÙ“Ì?]m†ùo­-ËÁ÷Ì—Áš/²ð üÁ9›j¹mVéÌþ‘}9?ÌvµæO·‘ƒ�Ž»ªˆ©æ³¥�6«ÃÐ;®×ÿRýê=ù'aYöî‚@ù3¬ùžÝ�ÊßЩ®6Ãü=‰qö�¿¹œ¬•Ú—s¶»t9øè¸«Š˜j>[Úh³†îSRÒZ'·]ObœýkøzM~XÞÉ�ç \È÷ÊŸùÚ óÛ�\þŧ‚ÜÒF›5ÃЋPVe­ë{Ë£�°Û¤ÜC1ºk(«|üš_ó2XsàËÚ ó7”U Z»^Ï£À9øåŸýñö,m´ CG­tÊŸù³ÝñS�ƒï Ïîàk^¶Ö¯~ù�ëIŒÚ óm¥–£»x+å�Ž;øš——Šrá>œâs¸~´†oó¼ÇK›aþ~õˇœ'¸ÊÙ?9ùÌm“f»K·‘ƒ�Ž»ªˆ©æ³¥�6Ëaèý¹ PþÌ·Vº|È5”ù|Ö“gÿz,™œ£–êµæÿ“¿ PþÌ_Ob\ª?³üfS-�NX½^CüÁZ¿zm†ù{,ù»Í3¥Ü3�ÜÙ¿ëIækýêW¯çÑ kø$Ìv‡HŒrð¥úùtºÍ·cUSÍçïpñë³+t…¥�6ÚhS¤´¿ÃÁuëÞ½´ ª6ÃеYgÐt¾u¿…_ª_m./ïRýΗÌÙn¾¥�6ë̆ηî·ðKõ«-Ãåå]ª_Ã_�ÛÂl7ßÒF›uV¹ó­û-üRýjËpyáöŽsb½µ•0Û͇!—{ÄÁÒF›u¦¾dçë¿k(«rîO>/Õï|oêKÎvó„¿ft­•"ù;—nó£�<þж7È�ñö>h3Ìo»Kõ ÂV1Õ|¶´ÑfqºãSXª_¼¸TŠÑrc¼=9øàk^¶Ö¯V¯çÑ Ðf˜¿…GÚ¸žzþÑ�ƒÇ_ø’®6ÃüA ü™–6Úì Cw| Kõ;_2_´ý“Bqð5/[ëW¿ó%sÉTËÐf˜Ÿj}€d©~Â.²T¿Ú2ÿÉÝó?UõÁÒF›†Þ—[É5”UÍ»á-m´Cwünü¬9>…¥úÕ–ùO¾æåÝS„“KmÃÐQ• ¹T?~È]d©~ð5/-Ù­¹ )÷,ïR½6Ãü,¸JkýJ`õz�0�µðH×SF™ï5)_Þñ7$¬Í0?|Í˰žzþ¥úÕ{’oŒÏS‹r4ä{³%aêùG'h3ÌŸêù-m´YCGýø5G;ß[2Õòè”—_ó²¥�6ë Cï‹,ù³©–—êW[æ?9øš—­9¾÷žý¼¼ká—J@›aþ k³DISKED DOC¢ßDISKED OBJD·0ÿThe DISKED.OBJ program is a disk editor, sinilar to DU. Has built in help functions and should work on any CP/M 2.XX machine, including APPLE. SYSOP *ùÍKÍžÃ+"ž"<"Ã'Ã+ÃFÃŽÃrÃÃû Í– þ8Ê{ æÄ‚w#w#wÑÁÉÍÆÃÞá^#V#å*~#foÉá^#å*~#foÉá^#V#å*nÉá^#å*nÉá^#V#åë ~#foÉá^#åë& ~#foÉ!È+É!È#É!Ø+É!Ø#É!ð+É!ø+ÉÈÉÈÉØÉØÉðÉøÉ}»À|ºÉëz¼À{½Éë|ºÀ}»Éë|ªòìz·ð7Éë|ªòó|·ð7ÉzõÍZëÍZëÍ)ñ·ð|/g}/o#É|µÈÕå͉ÑÍk|/g}/o#Ñɯ2qÍZëÍZÍk:qÐ|/g}/o#É|·ð/g}/o#:q<2qÉÅÍqÁÉDM!x±ÈxGyOÒƒë)ëÃv|µÈÅÍ”`iÁÉ|·ú )ÖëxõÍÝÚ·Õz/W{/_ѯzW{_ñ=ÈõyOxGæ¯2qÍZëÍZë͉ÃM|ºØÀ}»Éëȯ|g}oÃæëÈ)Ãô|/g}/o#Éz/W{/_É!9~#foÉ!à !à ! à ! à !à !à Ÿ!9Å~#ÂAÁÉá"s!`å*"³!è"µ!ÜY"—>Û2­>Ó2°>É2¯2²!Ì"�!sëë! å!å!ÿå!å!@ åÍ­ÑÑÑÑëásÃZ Ãh!å!ÿå!å!@ åÍ­ÑÑÑÑë! s#r! ¯w#wÍ�åÍ\€Í?ÑÍúÒ Í�ë! åÍ�ëás! ^#Vr+sÃÓ ÃhÍ\|¢g}£oåÍ\å!ÏåÍ¡ÑÑÑÍ\|¢g}£oë! s#rÍ\|µÊŠ ! ¯w#wÍ�åÍ\ÑÍúÒŠ Í\åÍ\åÍ�ÑnÑ&ÍåÂ| Ê ! ^#Vr+sÃO Í\åÍ\åÍ\ÑÍúÑÍ?åÍ�Ñë! s#rÍ� |·úß Í� åÍ\ ÑÍåÍ� åÍ\ ÑÍËå!ãåÍ¡ÑÑÑ! ¯w#wÍ�åÍ\€Í?ÑÍúÒ Í�å!òåÍ¡ÑÑ! ¯w#wÍ�ÍùÒg Í�åÍ�Ñë! n&å!úåÍ¡ÑÑÍ�ëÍ+++|µÂY !ÿåÍ¡Ñ! ^#Vr+sà ! ¯w#wÍ�ÍùÒë Í�åÍ�Ñë! n&|¢g}£oë!B s!B n& ÍùÍ©ÚÀ !B n}þÍ�ÂÆ !.ÃË !B në!B s!B n&å͹Ñ! ^#Vr+sÃo ͼ|µÊö à ! å~#foëás#rÃç ! å͹ÑÃh!åÍ\+å!å!@ åÍ­ÑÑÑÑë! s#rÍ\ å*Ñs#r*6ÿÍ� åÍ\ ÑÍ?ë! s#rÍ�åÍ\ÑÍËåÍ\Ñå*##Ñs#rÍ�åÍ\ÑÍå*Ñs#r!åͰÑÃhÍwë! s#6*6ÿÍ\ë`is#rÍ\ë! s#rÍ\ë! s#rÍ\å*##Ñs#r*¯w#w!åͰÑ! ¯w#wÍ�åÍ\ ÑÍúÒPÍ�€Í?ë! åÍ\åÍ\åͳÑÑÑ!åͰÑ! ^#Vr+sà Í�å*##Ñs#rÍ�å*Ñs#rÍ�å*Ñs#rÍ�"“!@"‘!"• ÍæÊžÍ!€ßF#x·Â±Ã~#±¯!ßb¯2r~#þ ÊÈ·Êþ"ÂÞ2rÃß+}|~#·ÊÅG:r·xÁÊþ"Âæ¯2r+w#þ Âæ+6#ÃÈÕ!×6#¯2w2x*sé!ÿÿÉ>õÍrÚ<o&åÍFáñ=þÂ-ÃÍ`Í ÍrÚ'~æÊhåÍÅÍëÍÁá6þÿ!À+ÉÍ`WÖØþ?ØÕ_!×~æ7ÑzÈ?ÉÍ`ÅÍ åþ:>ªÍÖ@w#ÍGþ.¶ÍƯww#Ã?Åþ*>?ÊéÍñÚçw#ÂÇÁÍñØÃÞ> w#ÂéÁÉÍþ.7Èþ:7Èþ7Èþ!ÉþaØþ{ÐÖ Éþ Ê þ Ê ÉÅÍ`·OÂE×!·æyÂ6ÁÉÕ$Ñ Â-7ÁÉÍrÚBÖo&))T])))ë!·yÁÉÕÅõå€ÍáñÁÑÉV5ñÉå:=æÂb#:=æÂù#:$=æÊ2#Ív+:à<·Âò"Íê(ÂÃ">6Í‹5:&=Í‹5Ã#*&=|µÂÔ"M1Í¿5Ã#>6Í‹5:&=Í‹5>#Í‹5>6Í‹5:'=Í‹5Ã#*&="ü<Íê(Â#>Í‹5:&=Í‹5>sÍ‹5>@2=Ã#R1Í¿5Ã#ÍÑ(Â,#:==2=áñÍ)ÉÍê(Â@#>sÍ‹5Ã#͘(ÂY#X1:à<·ÊS#]1Í¿5Ã#ˆ2Í¿5Ã#*="ü<*&="þ<:$=æÊÃ#:à<·Â¤#Íê(—#>>Í‹5:&=Í‹5c1Í¿5Ã#f1Í¿5¯2=Ã#Íê(—#>Í‹5:&=Í‹5>{Í‹5c1Í¿5Ã#Íê(ÂÜ#:$=æÀµ#>}Í‹5c1Ú#:$=æÀÄ;-͘(Âó#>&Í‹5¯Í‹5f2Ú#:$=æÊ$Ív+è":=æÂ$Í,Ív+Ã2#:$=æÀ>åÊ$$>ÕÍ‹5Ív+>ÑÍ‹5>@2$=Ã2#å*="ü<áä1Í¿5:=æþö2=É"ü<|·Âs$}·Âd$[2Í¿5Éõñõ·Êz$Âg$ñ[3Í¿5Éñ>�GÈ>)Í‹5Ãå*Ñs! ¯w#wÍ�ÍùÒ»Í�ë!E 6! ^#Vr+sÔ! ¯w#wÍ\ ))ë! s#r! ¯w#wÍ�åÍ� ÑÍúÒ½Í� Í?ë! ë!G$ s#r̓G$ në!C sÍ�`ëÍë!D s!D n& ÍùÒD!D ån&0ëásÃ!D n&$ÍùÒf!D ån&7ëásÃ!D n&>ÍùÒˆ!D ån&=ëásÃ!D n&MÍùÒª!D ån&ãÿëásÃ!D n&TÍùÒÌ!D ån&íÿëásÃ!D n&ZÍùÒî!D ån&ëásÃ!D n&^ÍùÒ!D ån&!ëásÃ!D 6_!C n}þåÂ$ïÍ� ëÍ|µÂ=!B 6 ÃC!B 6 !B n&å͹Ñ! ^#Vr+s̓G$n}·Âk!=Ãn!*ë!B s̓G$ 6̓G$#å!B n&å!D n&å!åÍ¡ÑÑÑÑ!C n}·ÊÆ!C n&ëÍå!åÍ¡ÑÑÃÎ! åÍ¡Ñ!G$ å~#foëás#r!G$ ^#Vr+sën&å!åÍ¡ÑÑ̓G$ë!E$ s#r!B n}þ=¯Í\+ÿÍÒj! ¯w#wÍ�ÍùÒg̓E$~#foë!E å!D nëás! ^#Vr+s!E$ ^#Vr+sÃ(ï! ¯w#wÍ�ÍùÒ¯̓G$n&ë!E å!D nëás! ^#Vr+s!G$ ^#Vr+sÃr! ^#Vr+sÃÙ!E 6Í� |µÊM! ¯w#wÍ�åÍ\ÑÍúÒMÍ�@ëÍ|µÂÿ! å͹ÑÃÍ�ëÍ|µÂ! å͹ÑÍ�ë!E n}·Ê7Í�ë!E n&Ã:!.å͹Ñ! ^#Vr+sÃÔ! å͹ÑÃhÃhÍ¿̓@ 6ÃhÃ?ͼ|µÊvÍÂÃë!I$9ùë$#Íž*ÍD)ñõÍ�,ͶÍÏ,Ív+Í+4þÊʱ$ÃÅÃåÃÃÃW!ÃÃnÃ"ÃdæÄ!ÃÂÙ!Å!·Û9ùDM!‚åÍ¡Ñ!«åÍ¡Ñ!@ 6#6̓@ n&|¢g}£oå*Ñs#rÍ\åͤÑ! ¯w#w! åͪÑë!@ s#rën&åͧÑQÍåÂ?̓@ #n}·Êy!@ ^#Vr+sënë!B s{·Êk!B n&åͧÑ>T½Âp>¼Ê >S½Â|>¼Ê> >D½Âˆ>¼ÊŽ >N½Â”>¼ÊÖ >R½Â >¼Êâ >W½Â¬>¼Ê„ >E½Â¸>¼Ê& >F½ÂÄ>¼Ê« >P½ÂÐ>¼Ê >B½ÂÜ>¼Ê>M½Âè>¼Ê¨> ½Âô>¼ÊX>?½Â >¼Ê[Ã[! åÍ\å!å!@ åÍ­ÑÑÑÑå*##Ñs#r*6#6*6Ãh! åÍ\åÍ\å!@ åÍ­ÑÑÑÑåÍ\ÑÍúå*Ñs#r*6#6*6!åͰÑÃh! å!å!å!@ åÍ­ÑÑÑÑë! s#rÍ�åͤÑ|µÊË Í�å*Ñs#rÃÓ !¿åÍ¡ÑÃhÍ\åͰÑÃhÍ\ë`is#rÍ\ë! s#rÍ\ë! s#r! ¯w#wÍ�åÍ\ÑÍúÒS Í�€Í?ë! åÍ\åÍ\åͳÑÑÑ!åͰÑ! ^#Vr+sà Í�å*##Ñs#rÍ�å*Ñs#rÍ�å*Ñs#rÃhÍ\ë`is#rÍ\ë! s#rÍ\ë! s#r! ¯w#wÍ�åÍ\ÑÍúÒõ Í�€Í?ë! åÍ\åÍ\åͶÑÑÑ!åͰÑ! ^#Vr+sî Í�å*##Ñs#rÍ�å*Ñs#rÍ�å*Ñs#rÃhÍ\€Í?ë! s#r!åÍ�+å!å!@ åÍ­ÑÑÑÑë! s#r̓@ n}þ ¨ Í�åÍ�ÑÍúÒ¨ ! ^#Vr+ÁÉ Disk Edit Utility Version 1.2 8-Jun-84 press ? for help No such disk track%4d sector%4d block%4x.%2d %4x %2x %c%c%s/%x %3xÃÃÎ!Ãá!ÃnÅ!øÿ9ùDM*6ÿ#6ÿ*6*6ÿ#6ÿ*6ÿ#6ÿ*6ÿ#6ÿ!å! åÍÑÑÍ� å! åÍÑÑë`is#rÍ�|µÊ Í�ë! s#rÍ� ~#foë! s#rÍ�~#foå*Ñs#rÍ�~#foå*Ñs#rÍ�##n¯gÍòå* Ñs#rÍ� ~#foÍóë! s#r* ¯w#wÍ�|µÊE! å~#fo)ëás#r* å~#foåÍ\ Ñëás#rÃÍ�~#foå*Ñs#rÍ� ~#foå*Ñs#rÍ\åÍ\åÍ\ ÑÍ?åÍ\ÑÍËÑå*Ñs#r*6#6*6Í\å*##Ñs#r*¯w#w!åÍÑÍ\|¢g}£oå*Ñs#rÍ\åÍ\Ñ+å*Ñs#rÍ�Ãë!9ùëÁÉÃ(ÃÃåÃW!ÃÅ!Éÿ9ùDM`i¯w#wÍ�;~#fon}þ ÂSÍ�;^#Vr+sÃ6Í�;^#Vr+sën&åÍÑë! s!0ÍúÚä! n&9ÍÒÀÍ�AÍåÂä! ån&ùÿëás!9ÍÒä! n&?ÍÚäÍ�AåÍ�ÑÍ?å! nѯgÐÿë`is#rÃSÍ�;^#Vr+sÍ�åÍ�=ÑÍúÚÍ�åÍ�?ÑÍÒOÍ�å!_åÍÑÑ! åÍ"Ñë!5 s#rÍ�AåÍ�?åÍ�=å!5 åÍ%ÑÑÑÑë`is#rÍ�ÃVë!79ùëÁÉbad number %d Å!9ùDM*å~#œ ^#Vr+sÕ`inëásè!œ ^#Vr+sÕ`inëásÉÍ�œ6ë!˜9ùëÁÉÃÀæÅ!9ùDMÍ�n}·Êê! ^#Vr+sën&åͽÑÃÈÁÉÅ!9ùDM! n&aÍùͯÚ ! n&zÍͯÁÉÁÉÃ! à Å!ÿÿ9ùDMÍ�åÍ� ÑÍìÒq Í�^#Vr+sÕÍ� ÍëÒ^ Í�0Ãf Í�7ëás!&ü Í� åÍ�åÍ� Ñ͉åÍ�åÍ ÑÑÑë`isÍ� åÍ�åÍ� ÑÍ)åÍ�åÍ ÑÑÑ`in&#&ü ë!9ùëÁÉÅ!9ùDM! n&0ÍùͯÚð ! n&9ÍͯÁÉÁÉÃú ÃÅ Å!þÿ9ùDM`i¯w#wÍ�~#fon&åÍ÷ Ñ}·ÊG!Í� Í?åÍ�^#Vr+sënѯgÐÿë`is#rÃ!Í�ÃN!ë!9ùëÁÉÍ Å6ÿ ëÕÕÕÍ Íá#F#Ñx·Ê!~#Ãr!¯áÁÉ:w&o·ÀÅ Íæo&ÁÉ:w·oʨ!¯2w&ÉÅÍÁþÊþ!ÿÿÈoþ ÂË!Å ÍÁ. &ÉÍ7Å:ŸO*¡ëÍo`ÁÉÍ7Å*+++:ŸG‡€_å*¡DM!"ãéÁÉÍ Å_þ Â" Í ÍÁÉ^#Vr+sÕ!‘ n}·Ê!0Ã! ëásÃçÍ�œå!� ^#Vr+sënëás{·ÊK!œ ^#Vr+sÃ"!� n}·Ê|!’ ^#Vr+s!ÍÒ|!œ ^#Vr+së6 ÃUÃ’!foåÍ�Ñëás#rÍ\åÍ\ÑÍúÚÅ*##^#Vr+s*å~#foåÍ\ÑÍúëás#rÍ\|µÊÍw}·ÊóÍ\åÍ\Ñnå*Ñs#6à Í\nåÍ\Ñå*Ñs#rà Í\å*Ñs#rÁÉÃ(Ãá!Å!9ùDMÍ�å! åÍ%ÑÑÍ�å! åÍ%ÑÑÍ�å! åÍ%ÑÑ! åÍ%ÑÁÉÃjÃá!Å!9ùDMÍ�å! åÍgÑÑÍ�å! åÍgÑÑÍ�å! åÍgÑÑ!åÍgÑÁÉìÃ"Å!9ùDM! n&åÍ©ÑÁÉÃÈÃåÅ!dåÍÅÑ!�åÍÅÑÍ\å!µåÍÅÑÑÍ\åÍ\å!×åÍÅÑÑÑ!ûåÍÅÑ!&åÍÅÑ!aåÍÅÑ!‘åÍÅÑ!²åÍÅÑ!ÔåÍÅÑ!åÍÅÑ!"åÍÅÑ!_åÍÅÑ!|åÍÅÑÍ\+å!ŒåÍÅÑÑ!ÈåÍÅÑÁÉ 'n' is decimal, 'x' and 'a' are hex Dn set current disk number to n (0-15) Tn set current track to n (0-%d) Sn set current sector to n (%d-%d) N set next logical track and sector/block next sector if last set command was for track or sector next block if last set command was for block R read sector/block into buffer W write sector/block from buffer P print out contents of buffer, with track/sector/block numbers Ea x [x..x] edit buffer starting from 'a' with successive values of x Fx Fill buffer with value x Q exåit program Bx set current track and sector to point to block x (0-%x) M print disk allocation map ÃîÃKúÅ!yÿ9ùDM!‹ å`iåÍèÑÑ`iåÍëÑë!‡9ùëÁÉÃÃìÅ!9ùDM! n&åÍÑ|µÊ@! n&àÿÃE! n&ÁÉÁÉÃZà ÃÅ Ãô ÃÅ!hÿ9ùDM!ž ^#Vr+së~#foë! s#rÍ�žë!– s#r! ^#Vr+sënë`is{·Ê«`in}þ%•! ë!� s#r!” 6#6!‘ s!� s!� sÍ�n}þ-Âê! ^#Vr+s!� 4Í�n}þ0Âú!‘ 4Í�n&åÍQÑ}·Ê! åÍTÑÃ!ë!’ s#r! ^#Vr+sënë`is{þ.Âb! åÍTÑë!” s#r!� 4! ^#Vr+sënë`is`in&åÍWÑ}þDÊŽþUÊÊþXÊÓþOÊÜþCÊ"þSÊSÃÍ�–~#fo|·òÊ!� ^#Vr+së6-Í�–åÍ�–~#foÍúëás#r!’ ^#Vr+s! 6 Ãâ! 6Ãâ! 6!’ å~#foå! n&å!– ^#Vr+së~#foå!� åÍNÑÑÑѯgÍúëás#rÃË!� ^#Vr+sÕ!– ^#Vr+së~#foëás!’ ^#Vr+sÃË!� n}·Âf!” 6È#6!– ^#Vr+së~#foë! s#rÍ�n}·ÊËÍ�”|µÊË!� ^#Vr+sÕ! ^#Vr+sënëás!” ^#Vr+s!’ ^#Vr+sÃ�Í��6! ë!� s#r!� n}·Â"!’ ^#Vr+s!ÍÒ"!œ ^#Vr+sÕ!‘ n}·Ê!0Ã! ëásÃçÍ�œå!� ^#Vr+sënëás{·ÊK!œ ^#Vr+sÃ"!� n}·Ê|!’ ^#Vr+s!ÍÒ|!œ ^#Vr+së6 ÃUÃ’! áö�ë!înå*2héå*6DISKIDX DQCDISKIDX BQS*ÿÊÐo+†=»ÚÐoͶ�zÁÑá§Éõ{ÿÖÚèovÿ7ÊDISKIDX.DOCMßÿ  šÿ‹ÿ�ÿ�ÿ‘ÿžÿ–ÿŒÿ—ÿŠÿ›ÿ“ÿ™ÿõÿòÿ†ÿ’ÿ˜ÿ�ÿœÿ ˆÿ”ÿ!Ñÿ"Óÿ#$�ÿ&%'oÿ(úÿ*),+-‰ÿ.¶ÿÝÿ/1032¾ÿØÿ4¬ÿ‡ÿ5×ÿÖÿ«ÿ6Áÿ78±ÿ9Ãÿ;:><Îÿ=Íÿ?ºÿ²ÿ@AÊÿ¯ÿ¼ÿ»ÿBCFDÆÿEËÿ¨ÿÏÿÌÿ½ÿŽÿGÒÿªÿÉÿ¹ÿ°ÿJIKH•ÿLÇÿÕÿÛÿ­ÿÀÿ…ÿåÿÂÿøÿ§ÿÿþ´ÿÐÿ¸ÿüÿöÿ|¤‹vµ¨Øõ³Û£#GÚ_ OP™6uD�Ãèèù�‹gjÜ·nûʤ¯Ðïöʶ{É€ÀqÇšœš.ªwRy²=Á8@LUkM#Ö•'xtï•×ö±· §·û0¯žë —<Ï \/ÛvÛæÚ·Å…»‡ym_™ê˜ Žª «µK*zHðS¼ò¬¯¼¯Õqhz¿…»¾ò^. “Z½2Õ[oWët¹À¶/sï–�ò”®<„»)Œƒ7®½ÝÞ›¢Îõ”&ÿ4íBêz÷8&`W¸{ô›{»,Œ]À ^>a¦:aüÊû¦÷[xìZÄzRùìá[Òî�kÀ®pŸõ”#™rÿÓ"?ú¶„q7™wò7ð�L¾2ÃWå+3<5OŒÚ3¼¹Z½§k™Rxçâ1éìÝÆ¡uÉsw®—¿sa×] “qx=¢øì+ïSóĨýÌõ"dOÇ\…÷Åí¾üÉÖmIv“qh¸%¤<¥ûÎ…]2 [µpÖò'æ"…÷êN¿ò>êH¦ÜXƒ'æ"ð¹B²ýö‹3i²½£"d²õH8Š)¥Þ§–ãÕ*µ ½ÃÄ&xÒ÷¤ò•WÇ!äʬ_Šós‘žõàíÞM®½á4Ss‹ãÞU´kîÝH¥·“¾dÇÁ„¾ò>5OŒÚ •kopLïýL�«Óëe¼ò\*×Þ$à¸w®·œä‡Ð é;ùä}jžµ'8×� ®n-aÜ݄…ʵ“zåµ7 8‡Ô<1jñ%CŠ©{ù+ï!¶]‡æÎn;ù£ë‰×ËßÜÓ›^yíå‡2Fö•÷¶%L�lwðW¦‡Yh\ìúÄ묓?z~çâ&ôtìuŸ/xes‘äWfxjžµï\ŒCËI®Ï»ø•©R÷rŸüÓb}j Àš<ðÔÌsE™â%Lá•îó|R9®“qx=¢#{øÙí•÷‰»<”˜çÞ+ï�\/§oÙN~Ô¹ò+ïs‘Þçq� œâX´S­|j ðÀS3Ïå“ÊWÞ§ÆZk/BîóÜ{j¬ÅšŒÃÌu:f¨ûüÊ{É€lÕÂC®|ºí¼¶ïU´Íµ7Xî—âüÊ«ã@—l—[wp«•ovÿö«U`דʯ–uŸÝ^yfÇû–ƘN*Ç¡ò^2 ·�×V㽊¶¹ö7Xî—âüÕ²n2¢ÇáAtÃÜÞîm \})RÌ1ÕÊWÞ§ÆZk�]Ë»ÂY_yÇA¤�y®·.wòOóÌñžë•©xjæ¹¢ ö�1>¤ï+ïSc­µ“Êq<5ó\Q¢zÈ¿%dÏõ ØÆ5ù£çw..]§×›‹y÷í¾¬;×dD�Ãèi*ïúòWÞëö«'æ"½Ï— Lþ¨mxjæ¹¢4ô¤ò•÷av¼ã@q,Z�©Øõ‰/¼ü•©žØR½Éõ¦ˆ‘­³¾ò�î¤ò�‹C‘Õ8ظRwŸm!OÆáAô8<ˆF=¯¾s1Ýö„ñ¥ëöžÚ¼ò¾?ˆ�lwRùÊûÔ<1j_Æ /zzjžµ� ã•�è¿¿È ™ 2mjÄûD¿Ëw.NMõÊT_2Ìk}'ã0M»ìaï™÷³Ð `M^™á•Y“»bs¡ kòÊæ"ɯ¼�]îä‡Ñãð z&}$«E½G…jï¯2é§a¼úi�Û{B¼¥G�ôÞ¤Ÿ¥PL1�ÔШP €Oà(ý©¼ÏŸoàGé5èÒ}(öòÛ–0}ùÛUñ@û´@Ÿ65’>ýGG�>��Þ=}ûŽ(P ¥G7ìÓ¢D W¯ƒ°}˜»w.ºÀò!i½ü%LïóüÊ;Ç¢˜Š5ù,4.ví](^€W^Û‡§‡ÙñŠbä>_(¦æâ•ã 8©5OŒÚ3Ü–0îÆ!Î"IX“SHݤïß K÷¬¯¼Wj÷¤ò<¿s1Ýö­Ë5*ÜUÁ1Ò;×8„®Óë�=¼q’ëR7yd_y­rû²‡p‘Þõ•÷Û®Üjå›Ý8l¿Zv=©¼R»“?z~eªépõzå}HÝ;Ië\½Û†ÆµçšŒCôüÎÅ¥ëôúCÒzùa÷•öÛ®Â{Omxjæ¹¢LqRùÊÛ�Cè:½{»éI»·n;‡Ñãð :z>͵vØeM^™ê®¯¼— È15¯|Ã\Xå£*Èjí T/ŒCçâ¶„q÷L�{¼UkðòÇÊÛ5è½sñ–º÷A1éû€.¦æâw.ì’¹Û8ô™bÒ÷‘dÒd_y¯Ôî}~å½d@>»½òžUn?Öä©ybÔ¾Ù=µ`MÆ!bŠˆÉß ïSóĨ}åÕ‡Œñ �Ïn§ë†Wj·÷0sœÏu)bN!uã0»ý˜jm2¢ÇáAtdÏó;]`yÌȾ2Ã1u.ê>f¼p×Wf¸d@îú”Òµq(?”˜ç³–¿ò^2 OÍkãâÆ=àÝÆí=¥tí� »¹·½»�¤|ù8€·{õÚ¦;Ò{Ô¶�@9â¤ò>Ïçzâ /å}j¬µ6ù£O¢Ýw.Æ!Sã>µmd€»—0]ùÊûÔXkí®'•'̉®|å}JéÚä�ìS2¨/ƽw.“¾Ù·{õð¤ò©-À#PޏÐb|®ÇÞ.ÜE½ü� Ìk2‡Ñã¼ÿ*)³ÿ+-,/.0»ÿÍÿ12Óÿ¯ÿÌÿ43¬ÿ¹ÿËÿ5Øÿ6ªÿ7Éÿ·ÿÊÿ8×ÿ9šÿÖÿÈÿ:;‹ÿ<ÇÿÆÿ²ÿ=¸ÿ>´ÿ�ÿõÿoÿ?Ôÿµÿ�ÿ–ÿA@BÕÿ‘ÿ§ÿDC¦ÿ½ÿÑÿEGFžÿŒÿIH›ÿ—ÿ˜ÿJLK“ÿM¨ÿ’ÿONPÁÿ©ÿ™ÿÃÿÒÿQ�ÿRüÿSœÿUT”ÿVÄÿŠÿÐÿ�ÿWùÿX÷ÿYúÿ[Z^]†ÿ\ûÿˆÿ¿ÿ‡ÿ`‰ÿabåÿ_ÙÿæÿÜÿÚÿ¥ÿ¡ÿäÿÞÿÿþîÿðÿïÿóÿøÿôÿ®ÿÞ;-âÕL‹xõ®EÖ ß|;Sâ•P=Á¡±W'[Ä«3It �à æz�æÒ^��"U|½!¦/ýÝ`®qذÑ\£G ^�™"U| é†T3@ g6¶²ãÕήˆW;É"^­S‘mÅ–´‡Ãº_»­Ø¯Ös‘í6vz(:=úÖaè­Gs†£¢ ûe0—}kZUƒaÚ¸áeX•˦¿£ «¥ú‚2j¶Û^­;E¶Û´ªC †uk•RôȰ*—MGV)Jõe0´sßú m˜F¡M<=júûhhÓªªÒßG¨n{µ®Ùn7¡ ͪæšþ>ªKÕ°aªá£ç¾tkÕÜ7t­š3ÄUlå¶WëL‘í*¾š ßG�S¥Ñ[� »µj.m€ž}+z®ÃÐs#Ã:MG©ÿò½jU.›þ>ªâëm¯Ö7E¶«PR)Jõe0´¨QçTé¦UMtTƒaéjô­*TQ£¡*%޾%Tá·½ZßÙ®â«NBáû¨JQª/(ƒ¡EvN•nZÕDGý†6L£Ð‰&ž}kZUUúûeXô\_Ýöj}Pd» %‡ª¾¡]¢GßêR…šPÅlÛ«õd‘í*¾ª'ô¨êr4*Ú°iUuëï¨/£ou©Buk•Ò- ç¾T…ê7´a…N4ñ4zîK_o{µ(²]…’éï£*E©¾  †vøèôwUâéÌuäJ¥¨‘¡a‡�B§Ó£¹|A�FCGsé�þÞm¯f¨ÈvJ¦¿�ú]5ìÛU•˦¿�ºµJéPè/ßÓ UlÕ¶W3¹Èv®·½šqŠlW±Õo•Ò- Ð_¾§;ÛzÜHê�à æz�æÒU(á¶W3z‘m…+¼šaŠx5³)âÕÌ®ˆW3ƒ"^Í$‹x5(âÕ™¨Æ—R.ЏCVû& wÈ a_;i�±5³îà ·|ï”L2É$Ü{¼:g*Òà;ŸºT¡ð zjº„°&÷ù„9QÖä•÷)¥k½w.“>v-süÊûÔXkm$ÛÆ…»Ïæí+3<5OŒÚ7»§¶¬É#P‹xÈ•_yo ×}~eªÓ841)r̺“qx=¢ûwÛ ØYà—¿íRwŸ_™aMÎð¦±&¬ÉEzºnø”’}˜9ÎãÀðصÌñÊ7»§¶¬É#¢Š˜ü ¬;Wï\aûæRÁÉ:Öä•wRc­µû»µŸweï3«dMî¢Îõ�à>ϘuO*Ç¡sñ€ ¨§¢ÎuW̺½§¶¬É}ž1ëžbí=µ`M>»µŸweo ÈŠ5yùSc­ƒ·[™5yùgVyõÊûÔXkí ÷yƬÛ‡Ô€5¹+fÝÞ[`MzÏ\Åš|vk?ïÊÞCâbMfÆûÊûþRp‡S�3ëÂ>¤Z{¹•°=©üÌJw¹ò[ªÇd{R9r17רØõ©-kòÊ{W̺G¶›ü GzO°S½sñt=Åû�+ß(e9€7dMÎ5Nu¼uR¯¼ö� VònÝç§”®MÆáAô8<ˆŽìág·Wv؇ٟ©qߺí+“Þu/�÷ôØÛ–T>¢¡ãqHÍÛ´Þ¹øìöÊ{¥vïó+ï¥qã>v-beM^y/©è�‹ÛÆÝ8„¤õò³Êí7ùº$_™ê”kï\o—Þ²aûÊ{É€œaÛ’ìþÊkûæÎnûÎÅI!\{å=ªb¡Øõnçzâ ‡”UY“û<�vGX“ÏnçšüÑŸÝ’­‡y+¯ÝíêõÊû5s;ÃË(MWöNê•ׯaû­Å ûÏn¯¼‡rµ&?ê\ùú¥qãBï�‹Ç¤·%Œ»·„ì+ï8¤æ‰QûÐ ù›Ý!¤4eM^y/x˜ï+ï½òÚÞ\ÖdRóxVöÞu(²:p›ân2¢ÇáAt´Êíwú¼á%¹ò+ïSóĨ}sg·}YÇš¼ò2ϵrbo[R w{åí¦cüæÞ–0îÞtcM&ãð zDO‹KÆÝ£§·W¯ƒ°}˜»w.ºÀò!i½ü%LïóüÊ;Ç¢˜Š5ù,4.ví](^€W^Û‡§‡ÙñŠbä>_(¦æâ•ã 8©?ö6Å[ºOmX“žšy®((2Æ/aúÊû2Ž‘“ÊqjÜWÞÇn;ùž{ïÎó;ÏÔ¸/aºò\÷y~å}»*ÙC8×8�ʧ¶¬ÉOÍPû<ÙP.¯ÓxR¹5C¹\¼Ÿ7äÄà»Ëy|fvTÄgf@Eº<©É?ç†ÅO�/Eð™IRã…{\á?3þ¦cæñØg&@]b£ëM²ñ„�Êv�Âþ�Æÿ ®ðŸÙìèÌf7HÈšQù&iæ±Ï¢.±ÑuRoòø¼IRŸ7*¢Éu`wã}‚Ÿ) Fˆ>Éu öx²ñ¾?ÁÏañÓƒÛÄ|Þeê}Q±p‘Ï;‡ŠT€(¡\¬°ÓÔàƒ-;OVà|ÞéÔàuâí󎡯u`LÄ/±Á‹ ûwš ù¼ÛPÙW.6^'Þʃ>ïvÔu±}Þ ¨ÓµXÁâûºYÙç]’ºÄÆûŸ­q•]ñþgÓ¸°§yà�Ï»UµÆûŸ­±ï6�}u]KyÐçA¦.±Ë5öï4ïäóÀ¡²/6+û<ЩK,Ûµ±°§yÇPß$¼æÝŽ|0T¤ÊÃë;a¹X!‘`.ÁçÁ†Šø<ØQM®ë¸ û×uÂ7ïó`@]Gû@m­ ¦÷û©ÍÌ€<“¤.±ñ¿l¶…ý;usá“ÚÁŽpÝx"\d�ðÍ7\‚Ñ3êÿËn©-ìßi¼oqŠîëph¼oqŠn\7^‡¨‰‰÷ý –ŸD¸(ú Q—Øø_Ö±…ý;usá“Úœ‰pÝx"\D¾ƒÏo2u‰�ÿe]a ûwCAœ¢û:CAœ¢×Í…OjsÖ©ØÍ�×!Â-?À.A›bŠß8Ô%6þ—ÕmaÿNÝ\ø¤6;;*®›/ã.¢Éu ÷GÊwÀotêÿËn‘-ìß©› ŸÔæM€ŠëæÀëá"š\ïûüL^è7 u‰�ÿe[Ø¿S7>©Íz’pÝx‡pA‹÷«&×�'ýfC]bãÙßöïÔÍ…Oj³ž$\7^Æ!\DÐâýªÉuàI¿ÙQ—Øø_vc ûwêæÂ'µ™q×Í�—qyìwƒß ¨Klü/»Å¶°§n.|R›‡pÝx‡p‘Ç~7øM’ºÄÆÿ²;[Ø¿S7>©Í̆pÝ\ø¤v°#\7^‡¹÷ñ¸_C¹\<¿ P—Øø_vËmaÿNÝ\ø¤6ªâ+áº9ð:D¸È=½(ïûüL?~GÔ%6þ—ØÂþ¿ËÔ%6þ—Ý [Ø¿ãwu‰�ÿe“¶°ÇïtêÿËnÛÂþ¿c¨Klü/°…ý;~·¡.±ñ¿ìÌöïøÝŽºÄÆÿ²d ûwün@]bãÙ±-ìßñ»$u‰�ÿuïå?Ëúöïtâw„W‡LÝ$¬ÉuÀV±•×Í�—qÈïÔ%6þWï½ügÎ`\Ø¿S7ÞC~@ÔÔ÷4܉ß^2u“ðÍ'.ë8¸š\j+~Î ‹Ÿ�.âšVêô¬dêÍ'.;Àusàeò‡šúž†;ñ;«C¦n¾ùÄeÂÕä:PÛP.¯‡Cå‹aŠõ�zó‰Ëpå>ÁW'“0T~ú¤ä²n¼„{Oî½�ëÔßùXÜwB?ØP?ØQ‘ó†4\‚ñ¼®¾y?P5¹Ô¾¹ôÕ4:=lT•Ë~C7J§GØúA’ÊOŸ”\ÖÍ�wà�¨÷$àŠkzBC¹\¼Ÿeñv¶-Öä:€5¹ø$Qù铒˺9ð’Ofêº2.ûʸç"Üø_ÖbŸt¨CökznùÞ™-“=VæšOX¶²A²ñ„nùÞ™-“=VæZw|R§*¾²_Ó«pË÷Îl™ì±2×Ôx ·|ïÌ–É+s­;>ÉP®Š\Öx ¼9û䆪P2þWüY÷^þ3á–ï�Ù2Ù,ãxì“;ªÂÕóæ¡FŸP®Š\ÖxQ�wà“IªBÉ*|äñ9 SŸ é=½(ïûüL?>6ÔÃ+ãžx_„+l5<©É?ç†ÅO�/Eð™IRã…{\á?3þ¦cæñØg&@]b£ëM²ñ„�Êv�Âþ�Æÿ ®ðŸÙìèÌf7HÈšQù&iæ±Ï¢.±ÑuRo°¡Þ ùÀŽŠT€(¡\¬°ÓÔàƒ-;OVà|`@ ^Ç’ÔàµÌ‚‰8ãâ%6xQaÿN3ÈTö•‹�×Qô™_w]lŸ)S§k±‚Å÷u³²ÏäP—ØðŸ­q•]á?›Æ…ý;Í´#ŸI§ C¢Ö🭱þ³iì31Ôu-åAŸiC]b—k*ìßi¦L>ӎʾجì3 ¨K,Ûµ±°§�$ùLIª›o&Å×>S€Šøœ‰zON}OÃ]Gû@í›K�PM£ÓÃFU¹ì7´áp£tz„­ ¦÷ã¦þ—­B ¬ÏН©ç 91ø®ŒÃvb8¾`Áô~ÜÃëÄ�•}Îñ9ëÔ%6†‚8E·2×TØ¿Sùà#�Ï™¡"žé‰Á'”ŸÞ)ß�†K0úœ7Ô{p5¹Ô¾¹ôÕ4:=lT•Ë~C7J§GØ& ¦÷³l_µ¬0Âû}Î;*ŸÂ7ÿek1û"ÿËZŸó€*rÙuåïñ9'©K,ûZfìDvãí]aÿN5¹4þ8þ—µ>çu‰ ®ðŸ…ÿl�Ílêã‹Oᛇ¿°§ÙqÈg‡¨| ß<üWp…ÿ,ügklfScM®�?®&ן�LÕä:P›`Y| ß<ü,‹-.û"Üø_Öúì8Ôø_ñgWøÏ¶ƬÔßdÌìŒ1ûb³²ÏŽN=oºp5¹4þ>; ÕÍ…OjóÆ!\ùà#�ÏÎ†Šøì쨈&×�uÜ…ýë:á›÷ÙPù¾yø/[‹;ir¨ цÃ�Òé®eÁ‚éý,[Åð,+Œð~Ÿ�$uÒä:€Ùáø_Öúì¨"—]W.ðŸu¢.±ìk˜±Ù�·w…ý;�4¹4þ8þ—µ>뙺ÄWøÏ¶Æf6õñŧðÍÃ_ؿӬ3ä³îPù¾yø¯à ÿYøÏÖØÌ¦>Æ“&×�ÆwÒä:€5¹ø¬ëÔI“ë@m‚eñ)|óð³,¶¸ì‹pãYë³ÎPãÅŸ\á? ÿÙ³R“1³3Æì‹ÍÊ>ëêyóÐ…'M®�¿ÏúŽ*|äñYPŸõ$´x¿jrxÒg=@�4¹W>øÈã3CTÄg&S‘Ç~7T“ëÀ“>3uÒä:Ð{/ÿYvƉáÊy|ft*â3ÃP‘{�û5”ËÅó™ÙP×Ñ vÿÝDISKLIB.BASZßÿ   ÿšÿ! ±ÿ"$#%¶ÿ'&‹ÿ(*)Ýÿ–ÿ«ÿ¾ÿ,+-�ÿ.Œÿ/Ïÿ0ºÿÅÿ1žÿ23­ÿ‘ÿ¬ÿ�ÿ45“ÿ76»ÿ¯ÿ98:òÿÂÿõÿ°ÿ;Îÿ<Öÿ×ÿ²ÿÍÿ>=›ÿ³ÿ@?’ÿA¹ÿoÿCBDœÿ¼ÿE´ÿÄÿ—ÿŠÿÌÿËÿFÓÿ†ÿGH™ÿI�ÿJÑÿÔÿÛÿKüÿ¸ÿLØÿ˜ÿ”ÿÒÿ§ÿMN·ÿµÿ©ÿ�ÿOÇÿÆÿ¨ÿÈÿP½ÿÁÿÊÿRQÉÿ¦ÿ‰ÿˆÿSûÿÕÿªÿT£ÿÙÿUÃÿ‡ÿÜÿVYWÐÿXúÿåÿäÿÿþ¥ÿöÿøÿðÿ²ÌC÷ÚX~*DÏ—ÌdüÅJÚÛ{¨þCšµ‹([0Èz«ŠŸ~¿ÅOÕ_V`4[�1냤¥T2ÿ½×¦Ñ·¨ Ñw¥ð¿úi•)§1ù¾Ï÷ õ_²—¶Â>¸QÌøv¶1|–yÕ½6–Ÿ ѳ±£öS¬”kEY7üQ«¯eTD¿r“ïû|ç6€•‹²¾ }‹vùi¡þ,óê{m¹±½½¿¢_V£aϪV}§ÙÜtµ°Ï°8—ù§÷Ú|>ŸÏçóù|>ŸÏçóù|>ŸÏçóù|>ŸÏçóù|>ŸÏçóù|>ŸÏçóù|>ŸËü¡{¦óð˜Z­ \óF;k6¡ÙâÔ|pÇzß�vÖrTÇ6šý,áÏ#øÁ€RËM @ii@™ë8pj¹ ”– #NÃè|”yÖ{W&€Ñ9H)Õ˜+SîV²6zi"céaIV‰N½´ ɼÔ=½´ 5zi"È@ß)üQû_µV˜†áª·h’È8vôïBߢ.D_Vµú;P½¸¡ú«¸èÿ»Vuäžµ  Üß«Ëê1…¡·”{£_L:ýǦaW… † Þ�Wa(Q®Ê. é+ƦaWe—]è[´¬jõwñ¨¥PÅE(!2/}O/mB$ÊöÆÿÞ³Eÿ~š‰þ?�|p�™°iØßµª#iËØÚÀ¸¡ÊÚ{ûà’½]šµïƒ &"Òè¥MˆTY$ ý_flÁû?šMúØôÅú‘=n<ì{E%z«gx&�^åÚ„dºïé¥M¨ÑK›a©¨;ú' }¢pïb"ZÜPeí}ú½Ï›embð¾ }…ñ‡÷Ë({ÂÐÿÞö®Úw-šE_ýØPeíF…±£¯ä½µöê‡Wí}ñ( {\Ð(S®°�Æ {£V´ÕßEñ¸ñŸI£—6!™‡ {zi"È@ßêÿK£l†*»„ý]”…’ CßEbú÷¸ˆ~ÉØ4ì¯yâïý² ý{\D?íïZ•dì( £Â4[µ°ý_¡þ¿4ÊžI£—6¡F/mB2}ïµù|>ŸÏçóù|>ŸÏçóù|>ŸÏçóù|>ŸÏçóù|>ŸÏçóù|>ŸÏçóù|>—yHuÏ&]1",†JìBߢ]~Z¨ ”cGÿ.�]C±ËO õÁĬ•6øl´ÒŸÜõ¬¡GP+mð©„€ÆÖ¦•6øäA±gšVÚàs�%ç5?§•6øä±å#ˆó¨•6øT_E VÚàó 9:2©ïé¥MhŠs›H õãCýxGsÂ3aÓ°¿{£±« 1p�™´ª#�ç�˜W‡aÛÿ{ÏÆ¦aß…þ=.¢_²£ö÷ê2*dzz/À\™r·’µÑK›Ð´ÒŸdú-«Z}` œˆÖ³ 0î 17æÊ”û6W›ÎÙ¤+FÓlnJøs6¶6Íæ¦„?'GŠ=Ó×¼9`³ï¡[æ¡C÷4››þœÜõ¬¡GP³¹)áÏù@V�I”j IZnâ’–› FËM À¤å&€ÓlnJøs65{=ói¥ >H£èYirFqÒÕc*¡&g'mßzL%$óë={˜ äåÕ¦âoƒ9BšSÎrÐ3©sø![>‚y <ÏÚÃJ M: P“ë8pj¹ LZn¸`|1 ó�Ô={˜³‡‹¡ÆÖf Åžizi"5†ý2¶1 ÷ÆÿÞ³âbId\«’ÌPê £Wì�Z}lö¬jõwð¯ŒoŸmk­œŠ]Œ-ø3iÄ Rß2Iß«טr–»‡˜=U/G§>HªÁ!M�)ÄACÌ oƒ9üˆ-Á½×æóù|>ŸÏçóù|>Ÿ!9"=1=Ãáã~#þ$ÊMÍOÃ@ãÉåÕÅõ_ÍñÁÑáÉÍ? $Éõ>1ÍOñÉõ>0ÍOå*ß#"ßáñÉ&oÅÕåöÿÿÿ ÚŠ ë|µÄ�{Æ0ÍOáÑÁÉÍ? Nonstandard disk parameter block error $*=ùÉÍþÿÀ!Ð:\2×Í?BITMAP 2.2 AS OF 7/1/80 $Í2Ö:×·Ê=2Ö:Ö_ÍÍ"Ø^#Vë#"Ú*Ø##~ÖþÒ£þÚ£õÍ?Allocated disk block size is $ñ2Þ!)=ÂtÍ�Í? bytes per block $*Úå:Ö_ÍÍÑ+0Í^#~ÜeÔmõz³ÊÉñ ʦÊ«ïñÍ^Í^:ÖÆAÍOÍ?: R/W, Space: $:Þ*ß=Êø)ÃðÍ�Í?k $ÃÑååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååÏçóù|>ŸÏçóù|>ŸÏçóù|>ŸÏçóù|>ŸÏçóù\濇½ž9—ð§ÑK›lŸB%hÏÄ hØg÷F¿˜$2þÄœjözæf¦aŸÉÖöŠê{£_濬÷ÒÖ¹T³×3‡ù•ù¯Ô½±ÄÚë¹t€õ'·Ì¥ïÕ�kL9Ë¥¬?@CÌRÍ^Ï\æU÷½úqg‹ÓÖe^Ý«Çd‰µ×sAOn™W}ïÕcÚÚþ<‚AÀ“„?�`ÐC:À:0{¦å,X_ŸG0P&üyƒÒÖ�&ˆ *NXßyÍÏq·Ì«T÷ê1YΤɼJ}¯~œÎ$óª§÷–°Î¥¬Ãüʼêн±œI“yë½6ŸÏçóù|>ŸÏçóù|>ŸÏçóù|>ŸÏçóù|>ŸÏçóù|>ŸÏçóù|>ŸÏç2¯’º¸æ�^Ú„†0,I$�~Ñ/»Ð·¨ ÑRø_ý’EÙ.•è#f £µ½ñ¿÷ìh ?ÍÄ„¡¯pô‹~Ù…¾E]ˆ¾�Âÿê—ȼJú¾r„MþúÑ_è[´ú1iôÒ&4|5ã«_Íø*óêû^Rs©f¯g~4uScÊYb–Ô�^Ú„–ðç´€™¬~LÌ Á¤~°€™¬~LÌ Á¯¢¤~°€™¬~LÌ A•¢¤~°@“Î$ójèž^Ú„ˆ×cœ+Tñ¾¿·*šÑ¬}4\"úëu‘¦Æ”³4Ä,i¹©A âƒrN-7�hôÒ&4ŹMæ3†: V�1k¹)áhs®ãÀ©å&Ðæ&�¨ÑK›�Ì«¿÷ôÒ&´T³×3'5öwQF’–›È…¾E]ˆþ>¯~Œ"Q…3fÆ·_ö*Tñ>Ž ™ \"úûL½´ ‘áL²¢.Ùßßøß{ö.¤ð¿ú%ÏX¬ÿâ�ODíía§ðÓLô bw˼ZuÏÖf“é<üxÄBP왦’ºw^ósjÕ½µ…Õ+öŠJôVÏ„ÌǸ~ŒiÄ Rß2Iß«טr–»‡˜=U/G§>HªÁ!M�)ÄACÌ oƒ9üˆ-Á½×æóù|>ŸÏçóù|>Ÿ åâèMlH� ׇ+¢M ^ÅOŽ Ñ¦„UoF™àÕâð&2á© ˆ¹¦ÆÔà·Uò¦u2Asˆ£�n&èhºÝïF˜¼ZÑ:ÝBÊÑjÍScŠ£+¶!=*\Þ™mJð*~rLˆ6%¬z3ʯ‡+öçÌ„hSª7£Lðjq¸b™ðTÄ\ ScjðÛ*yÓ:™ 9ˆ±.ذ>« wÉ%èhÂaž×lÅ15¦UoFÊ¥"ö™ Ѧ„Iå™ Ñ¦„õ¸ˆ2aØüˆÁŸL(—ŠØg&D›&•g&D›Öã"Ê„’/HÝ2aÈ2ARd‚¤ÈI‘ ’"ìT1~Y>¿¬L°."1AŒ25¦ÆÔà·Uò¦u2AsˆyºÑ`§`}¬5ÄÑŠ�j$ÔI3Sƒ £yWoU™Óz\DâPñ>�LxŠX�i+Lð[ÅõÏÈ1Ê´ÓVüVq]F&ˆQ¦ÆÔà·Uò¦u2Asðöb‚Ž& Vl1jÄ35&o/ƒ4$gq8¹0Á«…wraBr‡ÊÁ¯^å`Br‡7‘ ^-¼7‘ ÉY®X&xµð®X&$gq¸bÎLðjá]±?g&<•1—ÂÔ˜ü¶JÞ´N&œc�cã5‹ñAG+¶5⃷㘓?HCrÞÉ… ^-'&$gáU&xµ8T&$gὉLðjqx™�œ…wÅ2Á«ÅáŠeBrÞûsf‚W‹ÃûsfÂSs)L�éc«ÚðT,Ÿ_F¦ÆÔàÕŠ†|Ϊ kÊñ`jL‡“Kƒ[±ÌL‡ÊÑàV, ÓáMlp+–…épÅ6¸Ëïe™¼“Kƒ[±ÌL^åhp+–…É{ÜŠeaò®Øwbù½,#S1¾Á­˜¯}^ú.ƺ`D²ì}¾öyéûëÎäUæ·b¾öyé{Á›d¢+¶1âÛηb^ú¼ôùÚwo’‰j\pR/&TßBØûþº3y•—·b¾öyé»7ÉD5.¨Øx„ê[aïûëÎäU® nÅ|íóÒwo’‰j\ð&j–P} !ì}Ý™¼Ê{ƒ[1_û¼ô}Ýîw#Á«­Ó-XçÄxªoáóËÞ÷×�i˜ÜŠùÚç¥ïçXãœÔ‹ ßlÈÖïí}¾öyéûëÎ4¼4¸óµÏKßϱÆ1¨Øx„ou zæàê­jÍ# ÉXo¾ÿµ÷ùÚç¥ï¯;Ópmp+ækŸ—¾Ÿc�cð&j–ð­NAÏ\½U £y„!ëÍ÷¿ö>_û¼ôýugÞÜŠùÚç¥ïëv¿ ^­h�nÁ:'ÆûÂÞçkŸ—¾¿îLï·b¾öyéû˜ÏPìô¼‰šÅ—ÃsÞÂi' šÃ)UÍ_;ÜŠùÚç DISKMON AQMDISKMON COM ÿ vÿtDISKMON.ASM6öÿ õÿòÿ­ÿ«ÿºÿ¾ÿ»ÿ¬ÿßÿ¼ÿ³ÿ°ÿ²ÿ¶ÿÅÿÓÿ¯ÿ·ÿ±ÿÎÿÏÿ½ÿªÿØÿ´ÿ¨ÿ !"#$%©ÿÌÿ¸ÿ¹ÿ§ÿ&'()*+,µÿ¦ÿÍÿÛÿÂÿËÿ®ÿoÿ-./012ûÿÆÿ×ÿÖÿ¥ÿÔÿÊÿÉÿÈÿ345ÀÿÝÿåÿÐÿÇÿÿþ�©ÁU”6,÷¯/ï#“7ªrÀ|lXî_g32y£ÞD˜� ËýëË<2M*Ï0–eù52!Ë Ë¼,#žÊ€˜KaB––yù525&_Ý-7ˆWüajL1—ÒmJˆã1HaBzT¸‹™6&”KEì_™mJ˜Tž™P.±ÏLˆ6%L*ÏLð[Åû<2!/¿™ð4EÄ\ b‰L›˜Pò¦[&”K…ë Ò£bìOeÐ51ÁYÇ„GoLHÎ>à˜Pò©[&ÔéÇ„äìŽ %_0vË„!މ©15øm•¼i�LÐN©j‚æàª?˜Ó)UMCzT¸>übB´)Á«øÉ1!Ú”°êÍ(†Í�üÉ”rΆ!üÉ„8T, ž~ æR˜à¢À2aØüˆÁŸLˆ6% b+Lˆ6%œâMdB´)¡˜r¯&D›¹×žÊ€”óp25¦¿­’7­“ šƒë‚«þ`jLb¬kH� ׇßLˆ6%x?9&D›V½e°ùƒ?™R΃4 yÀàO&Ä¡bY˜ðô1—– ÃæG þdB´)a3XaB´)¡˜r¯&D›¹×SÊyhˆ6%ˆó&2!3â‘,LˆCÅr¿�Lxú�”óÀ„§2 å<Scj�¼i�LÐêÅ3iÐÑ„u»ß�¯V´N7¦†”£Õš§°>‡ùå¿°>«ñL�©˜r¯�†4&‡ÃË„ô¨p}y_–‘ Î:8&ø19®X&ˆQ¦ÆÔà·Uò¦u2ákÃ68«ÆMÈ: ƒ[Œñ¥ïß^‚«·ªa4�0$c½ù¾÷ùÚç¥ï¯;Óð»Á­˜¯}^ú>æ3;=o¢fñÁåðœ·pÚIƒæ ƺ¶3Á­˜¯}^úþí%¸z«FóC2Ö›ï{Ÿ¯}^úþº3Åb¦­Á­˜¯}^ú¼ôyé{Ì¥ØÉ…’� -äAkžüÞçkŸ—>/Lp+vûG;ÝLpR/fïóµÏ ÜŠ}}‹£�n&¨Øxì}¾öya‚[±Ç·8Úéf‚7Q³ì}¾öya‚[±»·8ÚéfºÝïF‚W+Z§[°Î‰ñ~ïóµÏ ܊ݼ b¼‘‹ ƒ[Œñ{Ÿ¯}^˜àVì÷71^³˜0X±Å¨¿÷ùÚç… nÅ~{c]ð&j–oþ{¸K.ÁUÍaÝîw#{Ÿ¯}^˜àVìãÛ)UMð&j–oþ{¸K.aÝîw#AspÕ{Ÿ¯}^˜àVìõíi+CÐ|u{Ÿ¯}^˜àVìOobt“)hqø·„˜K±“ %;³÷ùÚç¥Ï ÜŠýugz*ƒ®©Á�ˆ£&¸qT9˜àNÄÑ›Èw"Ž®X&¸Þ^a‚;!ÆÂwBŒuLp'N©j˜àNøên™ îÄÇV• îDÌ¥0Á�ˆ¹&¸1—Âw"æR˜àNÄ\ ܉˜Ka‚;s)Lp'b.… îDÌ¥0Á�ˆ¹&¸1—Âw"æR˜àNÄ\ ܉˜Ka‚;s)Lp'b.… îDÌ¥0Á�ˆ¹&˜É1ýóùëÿÅ”Kà4U$J›m¨! Ï"*Ë•…��$áa‹Ú�ø2Ô,eR©ÂFHYj¥ÙÈUôuB~ ¤.uëŒ,P¶Àˆ K¾H”?‹†úl cÖf Ÿ�myÃÿÍ¢ ÍÍÖAþÒ?_!¼ëogé!Í͉õñþÊ=õͤÍ*ùÍyÍ„Ã7bÍ͉õñþÊ=õͤÍyÍ„Í'ùþÌšþÿÊiÃX*÷"÷É:ö<þ–:õ<2õ>2öÉþÍÍÂÉ:ôOÍù:õOÍù:öOÍ!ù*÷DMÍ$ùÉ Í:ôþÊÕBÃ×AÍ>Í:õÍVÍ:öÍoÍ:øÍ:÷Í\ÅåÍáÁ]ÍÉ ÍÉõæÍ.oñæÍ.gÉþ Ú6Æ7ÉÆ0É‘ÍÍþAÊN>ÃP>2ôëÍ͉2õÃÖÍ͉2öÃÍ͉2øL�i�{}4$gqx™P'�eB*–_Lxš~`�˜'eBr‡ÊÁ„: ,¼Z*Ê¥Âöea$æI¼ZÞD&ˆQ¦ÆÔà·Uò¦u2ákà uRlc]0"YB1ÞÛ› vrAGÃÔ73i¬ØbÔˆçh¦mJÆ15&#’¥!=*\/Æ3!Ú”àUüä˜mJˆã1Ha‚ejL ~[%oZ'αÆ1 b+Ƈ{–`ƒ«þb¬ YÂ)U ScÄ V’³8œ\˜Pò±[&D›¼IÎLHÎâP9˜Pò±[&D›¼Q•ƒ ÉYÞD&”|Aì– Ñ¦oԛȄ4&‡ÃË„’/XûÈ„’/ˆ=1!Ú”à�ºb™ F™SƒßVÉ›ÖÉ„s¬q ®ú!Ùgノ&ÄMÄL+¶5â™S�AJCzT¸îUf&D›¼ŠŸ’³8œ\˜‡ŠeaÂÓØ”óÀ„r©0}_w&<•6oÊdSÎCC¹T˜¾Û�ÉæMÊ¥"ö&D›&•g&¤G…ë^å… Ñ¦¯â'Ç„ä,•ƒ Ѧ„›QaBzT¸îU®Lˆ6%x?9&$gqx™mJ¸&¤G…ë^å� Ѧ¯â'Ç„ä,WìÏ™ Ѧ„›QaBr‡+–éfT¢M qºˆ2¡\*baBɘ>2aØüˆ• ÃæGŒLˆ6%L*ÏLò€‘ C°2¡ä LOLˆ6%L*ÏL£L�©ùm•¼i�Lм™\ð*uºù 9èhBÌ“ÏÉ05&¯â'×P.±eB´)aRyf‚ejL ~[%oZ'4‡¿cž.Fôï0‡Ñ<Âú¬&ÔIsx ÖÇZÃú¬Æ35ØÉ¯YŒ:šêÆÄÔ˜âtm6?bð'ìT±|~™?¿¬Lˆ6%¸|eBɤn™0äƒ?™ ™ ™ ™ ™`§ŠåóËüùeeB´)Áå‹(J¾`ì– b”©15øm•¼i�LÐnõb‚Ž&Xk ÷,%ä{°a4�0me5ÂÔ˜\¾ˆ6Ä¡b±#ž"¦­ÌL°®âúgd‚eš¶27XWq]F&ˆQ¦ÆÔà·Uò¦u2Asˆ£�n&èh‚“z1L�)ŽNÒ£ÂõafB´)Á«øÉ1¡\*bŸ™mJ˜Tž™‡Š÷ydÂÓÄщeB¹TؾÌLx*üäœ?˜âèÄ6”K…íËÂä'çüÑàÕâpraÂSs)L�©Áo«äMëd‚æG;ÝLÐѦÆG•£!=*\^˜mJð*~rLˆ6%¬z3ʯ‡ÊÁ„§2 æR˜SƒßVÉ›ÖÉÍ!Žvº™ £ ÞDÍÂÔ˜!͉2÷ÃÍͤõÍͤoñæð�ÉþAÚ¬Ö7ÉÖ0É:ô2ù:õ2ú:ö2û:÷2ü:ø2ýÃ:ù2ô:ú2õ:û2ö:ü2÷:ý2øÃà READ ERROR $ SELECTED PARAMERERS: SELECTED DRIVE IS: $ SELECTED TRACK IS: $ SELECTED SECTOR IS: $ BUFFER STARTING ADDRESS IS: $ WHICH DRIVE (A OR B)? $ WHICH TRACK (IN TWO DIGIT HEX PLEASE)? $ WHICH SECTOR (IN TWO DIGIT HEX PLEASE)? $ BUFFER STARTING ADDRESS: $ HOW MANY SECTORS DO YOU WANT TO WRITE? (2 DIGIT HEX PLEASE) $ HOW MANY SECTORS DO YOU WANT TO READ: (2 DIGIT HEX PLEASE) $ COMMAND MODE : OPTIONS A=CHANGE DRIVE B=CHANGE TRACK C=CHANGE SECTOR D=CHANGE BUFFER STARTING ADDRESS E=PRESERVE PARAMETERS F=RESTORE PARAMETERS G=READ SECTOR(S) FROM DISK TO BUFFER H=WRITE SECTOR(S) FROM BUFFER TO DISK I=JUMP TO SID J=RETURN TO CP/M COMMAND MODE $9Vet¯ÐN-ñ:÷Í\ÅåÍáÁ]ÍÉ ÍÉõæÍ.oñæÍ.gÉþ Ú6Æ7ÉÆ0É‘ÍÍþAÊN>ÃP>2ôëÍ͉2õÃÖÍ͉2öÃÍ͉2ø This program accesses and utilizes the codedinformation in the directory and file allocation table of the default drive toperform file manipulation tasks. SELECTION 2: The names of the files currently in thedirectory INCLUDING erased and hidden files are listed beside their position in the directory. The directory has the capacity for 64 names.A filename whose first letter is a å represents an erased file. SELECTION 3: The addresses of the sectors on which afile resides are listed. The 320 sectors are numbered from 0 to 319. SELECTION 4: The directory contains the address ofthe first sector on which a file resides. DOS erases a file by replacing thefirst letter of the name with a å and wiping out the linkages to thesucceeding sectors which were contained in the file allocation table. If thefirst sector has not since been overwritten by DOS, then that data isaccessable. The å is replaced with a Z, thereby rendering the dataon the first sector availablåe to DOS. *** PRESS SPACE BAR TO CONTINUE ***$ --- DESCRIPTION continued --- SELECTION 5: A file entry encoded to be hidden fromdirectory searches is recoded to be included in directory searches. SELECTION 6: A normal file entry is encoded to behidden from directory searches. WILLIAM HT BAILEY Phone: 215-924-0771 April 1982 *** PRESS SPACE BAR TO CONTINUE ***$STACK STACK STACK STACK STACK STACK STACK STACK STACK STACK STACK STACK STACK STACK STACK STACK STACK STACK STACK STACK STACK STACK STACK STACK STACK STACK STACK STACK STACK STACK STACK STACK STACK STACK STACK STACK STACK STACK STACK STACK STACK STACK STACK STACK STACK STACK STACK STACK STACK STACK STACK STACK STACK STACK STACK STACK STACK STACK STACK STACK STACK STACK STACK STACK MZ ÿÿy ±.ÍͤͻÍͧÍ+ÀP¸ŽØèKº´ Í!´ °Í!<7ìuË<1|åuè ëޚ̀útÔËè´ ºxÍ!´ °Í!è´ ºÂÍ!´ °Í!ùºy$·¸Íº·´Íà DISK UTILITY ROUTINES --- MENU --- 1. DESCRIPTION 2. LIST FILE NAMES IN DIRECTORY 3. LIST SECTORS OF A SELECTED FILE 4. RECOVER 1ST SECTOR OF AN ERASED FILE 5. UNCOVER A HIDDEN FILE 6. HIDE A NORMAL FILE 7. EXIT ENTER SELECTION NUMBER$ --- DESCRIPTION --- !$ $$ 1 2 3 4 5 6 7 8 910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 SELECTED FUNCTION WRITES TO DISK DIRECTORY HAVE YOU MADE A BACKUP OF THIS DISK? (Y/N)$ BACKUP THE DISK BEFORE ACTIVATING THISFUNCTION.$ DISK READ ERROR. FUNCTION ABORTED. PRESS SPACE BAR TO RETURN TO MENU.$ --- FILENAMES --- $ *** PRESS SPACE BAR TO CONTINUE ***$ --- LIST SECTORS ---$ EMPTY DIRECTORY ENTRY. NO ACTION TAKEN. PRESS SPACE BAR TO RETURN TO MENU.$ºëŽÚº™ŽÂÆ Æ Æ <2uè•€> t,€> t%Æ   <3u€> t¢ ë×è(Æ Æ ²Ë€> t-¢ º‡ ´ Í!´ °Í! *Éšˆ ˆ> €út¡éhÿ±š´ ºf Í!´Í!¹º»Í%[sº ´ Í!´ °Í!Æ ÃÆ ¹+ö&Æ„ Fâ÷»@¾ ¿¥ƒÇKƒûuö»@¾¿½ƒÇü¹ >€¾ötó¤KƒÆ"ƒÇ ƒÅ ƒûuä+í¹&€¾$u&Ɔ Eâ Žƒ º´ Í!º~ ´ Í!´ °Í!²Ã´ º¦ Í!¹š<ÿÃö.† ‹ð€¼öu´ ºÁ Í!´ °Í!ùš´ º¦ Í!V‹Þ¾¿óƒÇü¹ 󤌃 Žƒ º´ Í!^‹„¹+ö&Æ„ Fâ÷=ÿuëe�=uë]�Pö6… €Ä0&ˆ&<t%ÿö6… €Ä0&ˆ&<t0&¢Œƒ Žƒ º´ Í!X‹ØÑËœ�ãÿËð‹„�s±Óø%ÿ놴 º~ Í!´ °Í!à $ ENTER FILE NUMBER OR 0 TO ABORT FUNCTION.$ INVALID ENTRY. RE-ENTER.$ DISK WRITE ERROR. FUNCTION ABORTED. PRESS SPACE BAR TO RETURN TO MENU.$ EMPTY DIRECTORY ENTRY. NO ACTION TAKEN. PRESS SPACE BAR TO RETURN TO MENU.$ --- RECOVER 1ST SECTOR OF ERASED FILE ---$ ACTIVE FILE SELECTED. NO ACTION TAKEN. PRESS SPACE BAR TO RETURN TO MENU.$ --- UNCOVER HIDDEN FILE ---$ --- HIDE A NORMAL FILE ---$ºôŽÚZ‰€ùt€ùtèèŽËèùŽˈˆ>‰.‰.‰.��<4u&€>t¢²ë �èPÆ*ÒŠŠ>ŽË<5u€>t¢²ëáèØÆ*ÒëÕ<6u€>t¢²ëÃè Æ*Òë·´ ºýÍ!èd=ÿÿÃö.‹ðŒÑ‹.ްå8ŽÑt´ º-Í!´ °Í!Ìю°ö8BŽÑuÿCÿ1ÿ0ÿ+ÿ$ÿ!ÿÿÿ ÿéÿÆÿyÿnÿjÿiÿgÿëìíîïðñòóôõö÷ø_ÿ^ÿ\ÿZÿTÿOÿIÿFÿ@ÿ8ÿ)ÿ'ÿÿÿÿÿÿ ÿ ÿ ÿÿÿsÿbÿ;ÿ(ÿÿÿþ›´þ›Ñ;ãé;c¿¿åŸHºžTž%eÒÆ8'SžãÂôÚmßöðfªÖý¦öû[þÞdD9®ëÀX®r¾/Ga¤{ }îì €óPµî7µßßòŸNzÓÆ±Ð×Ý«=¥›ó#�*C÷ x²ï¼ç¸§ý¦^¼g·îø÷ÕŸTž]}ÜÐw¬Ëžà3§âÌ¥8ãÅ™“q¦+ÎôÅ™Ù8sœ1q&ˆ3ÇâÌ•8s>ÎãL9θñM¯gn‰ý|ç¡¿¼àÿî�«óÿ¾úÖ–íërNðxâ÷ ßít6•ãy=>è÷ úûëÇwÞtO¦�wüžÁã‡þ´sn +>|x´+>;>è÷ ffãñA¿g0s^<³ûíÎÀ­ñ„‰Ï>ëOµ&fãó‡�ÞûS-ÿxx¨Z÷›úôÕÎÄùxñšÝW;7fÎdzñhW||çø¿g0s%^<³û?u2çãÓÿ¥³xÍîÿÒÉœ�'®Ä‹ý[Þ]l>4|ÁÏ_˜¸/Vw¯^8çÏ\¸vã5ñPµî7µOÝ?r!ä¡jÝoj¿¿å÷·&LüHÆÄ›´íŠÏú÷ß¹Xÿ†ó…ã;Ç;~ÏàéO:WâÅÎnï‚ÃØØä¡jÝoêñ ~ÏàkÞ4øÌƒ·Æ·?ôÕ…©ñA¿gpÿÄ•x±³ûó Ûöûqkâ|¼xæÐÏ\Øvú– ÛÎöãÖé[.L\‰;»¿qÁÿ·9zô(Œ¸}w¸é“Е>éðPµî7µßßš8/žy{ãîwaôÖøÆÌùØïoí¬œ|NûM}cæ)�©èÌ©8s)ÎxqædœéŠ3}qf6ÎÜgLœ â̱8s%Μ�3Å8SŽɸñM¯gn‰n�³£ŸÄ~Ëo8 #ic ÃCÕºßÔ~Ëî@I™´1ÎÉ”Wžà¡jÝoj¿¿UíŸ|NûM½xÏîß8àßWRytõpCß±.{‚ýŸ?ðÐßð÷ÀÕß8àßWßÚ²}]Î ®^ã7õñw«‰ßÔ‹¶¼{ÝÎñÄï<¾û_6ý?ÜTŽ˜×ÇÝs`¢ßýÇüþ–ßߺ1s*Î\Š'N´ º«Í!´ °Í!Ìю°Zˆ‹B‹ØÑËœ�ãÿËð�í‹�í‹�ŽÑr ÿ�Ëÿë� ðÿ�ËðÿŒÑ‹.މ�ʼnŽÑ¹º‹è6ô º~Í!è³=ÿÿÃö.‹ðŒÑ‹.ްö8BŽÑu´ º«Í!´ °Í!Ìю°ˆB ŽÑ¹º‹èäô º Í!èa=ÿÿÃö.‹ðŒÑ‹.ްö8BŽÑu´ º«Í!´ °Í!Ìю°ˆB ŽÑ¹º‹è’ùºy$·¸Íº·´Í*Òô ºÍ!´ ºÍ!€> t€> t €> të �´ ºAÍ!ëØ  ˜-1=ÿÿ|ë=æÃ  +ÒŠ < u°0,0ƒê0ƒú ̃ú|Ç<|Ã<¿|ƒú¸ö.Â-ôÍ!ŽÍ&[rú]´ Í!´ °Í!Ãååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååå寻®n;àÿÅ�gy¨Z÷›Úïoݘ9û(ôŽMðPµî7õ�™b<>è÷ îŸ8/êCª9q)^|ïЖæâ£‡²ÍÅW5š‹�ª5O¿Úܶߟkmóï¼xúÍæ¶ýþ\k›ÿSO¿ÙܶߟkmóÿïÅÓo6·í÷çZÛü�.ž~³9q*¾6s*ÞæÏµN¿Ùœ8ïºútÓ?Ö|–‡ªu¿©ýþÖ�™“±ÿÃf�‡ªu¿©ý{êþß7ë|x´+>;>è÷ ffãýãƒ~Ï`æþØŸjmó§Z7�·ÎíŸ8/^³;¿1s>˜�G»bÿ�·�=¾Óf\ 2³NN¥½P ¸ÜàÙky¨Z÷›zü€ß3˜¹/^³û«ñÌùx¿?Õòïà¡jÝoêm}Gt8¹£µðüávµî7õÄ•x±Ë»ûýþ–ÿÊ8llòPµî7õ¶ÅæC—Îø³g&®Ä‹ÕÝ•3çüþ–ßßòT÷û[þå3×nªÖý¦ökg®ÝåúNžìë×ñB¸’öŽ9×Uë~SŸ~bÜ?{&²é ®ã…p%ís®ªÖý¦>ýĸߌfݾ;Àu¼®¤½cεÀCÕºßÔ§Ÿ÷7 Fé”éóŽNWÒÞ1çZà¡jÝoêÓOŒ�_ð{_»iÔ�[·?ôäàÔø ß3èÇ­ÓñàM£~ÜÚyîö}ÜÕÜ]:»óîïLññ—ï¼6ÄÇâ]™cqñ®�wOÜ/¾þòF=ØwD?’¹%ž|]/<�9ß4˜ â»vVW&ŸÓ~S/Þs“~Û¿¯~Ýu×ÁÍ]NqÖÉŽ§ËBß pƒòœ¼ÿîÛÏmz+ž0q­üÒ¡?œ¼F/üÒÀ'ññG»éê¿<ý·õs‡'ºâ—vÿçÁÃ}ñKgw¿<8ÏáÇÏM”ãã‡.ÔýþÖéV}âT||÷cƒ~Ë_ª?ËCÕºßÔ~Ëß\¶^ØxVw\ßý1ŒÔ6ì¸~x¨Z÷›Ú¿§î÷Ö�‡ªu¿©ÏVðãÖá­»¿[÷¿W‡��x¨Z÷›Ú DISREL CQMXDISREL DOCY ÿ vÿ½’DISREL.COMù ßÿêÿ¥ÿÛÿÓÿ–ÿÿÿŒÿ›ÿ !"#$%&'()*+šÿ�ÿ“ÿ2ÿ‹ÿÖÿ×ÿÊÿþÿ,-./0123456789:;<=>?@ABCDEF�ÿžÿÍÿÔÿœÿ²ÿ¾ÿ‡ÿ»ÿ†ÿ—ÿñÿ°ÿöÿ¼ÿúÿõÿ©ÿýÿGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghi‘ÿ­ÿ³ÿ½ÿ�ÿðÿÕÿ÷ÿ.ÿ·ÿ¯ÿÝÿ¬ÿùÿÅÿîÿâÿÎÿçÿ�ÿåÿÉÿæÿÿíÿìÿëÿºÿÏÿÌÿjklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘¶ÿoÿÞÿËÿÈÿòÿÿãÿ±ÿ6ÿèÿ=ÿáÿ§ÿäÿ ÿûÿïÿ5ÿÜÿÙÿÒÿŠÿHÿÑÿ’ÿ•ÿ<ÿøÿÿÿˆÿüÿóÿ”ÿÚÿ‰ÿ-ÿ’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»ôÿÂÿÀÿ«ÿ™ÿPÿÁÿªÿ…ÿ„ÿÐÿ*ÿ˜ÿMÿ>ÿ:ÿÿµÿÿŽÿ�ÿ¨ÿ%ÿÇÿÃÿÿÿØÿ¿ÿ¹ÿƒÿ}ÿmÿÄÿ£ÿ¡ÿ]ÿEÿAÿ3ÿ"ÿ¤ÿ ÿÿeÿ[ÿJÿ?ÿ9ÿ7ÿ4ÿ&ÿÿÿÿ¦ÿ‚ÿwÿuÿlÿhÿYÿWÿNÿ¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏ/ÿÿÿàÿ¸ÿ´ÿ¢ÿ€ÿ|ÿxÿtÿrÿqÿÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêpÿaÿ`ÿXÿUÿQÿBÿ ÿÿÿÿÿŸÿ{ÿzÿvÿkÿfÿdÿcÿSÿRÿKÿD"ïoù—êÏòPµî7õD9>¾ûÖºßߺ1s2ÎœŠ¯Íã³CwmÛ¹é­xÂÄ/�{ùgëg'¯Ñ ¿4ðI|üÑî_ºú“úÎsó÷ø7Ö#ªÖý¦>{øðþT+û€?Õ:|øœ¿³ëöÝá¦OBWú¤Çx\çþcŽ ÀS)7í–Á8i7W�§8]Fõu�§º.� œ“<ÏäúNžìë£nq`ãøÀÆñ\%­ºÀ)ŽÛ•ö`ã�€�¬sƒêrÀé Ü2Ìö©®`€`ã§8nWÚƒ£ÐwÃ Æ `€`ã§8nWÚƒ,ôÝpƒqàØxÀ:7¨.l:HƒQ·8°ñÀÀƦqðúr�ë;Ö8.l<0À°qÀ°ñŒÓe¡ï¸Aylàýwß~.ãÅ“¿†}Gt¸ðüáö\æT¼øÞ¡á‹‹�¾¸øÊ¡á‹‹�í»˜¹ß”dNŧ».ú·^\®Öý¦žðâÅ�‡ÌÅÅÓ‡ÌÅÅ™CæâÙ¡»¶í¼éžÌÉøt×Åýwß~Îÿõ‹uªÖý¦>;t×¶�ûï¾ýÜäc{úŽèpÁ¿õâó‡ÛÕºßÔ7fNÅ™KñÙ¡»¶íÜ÷íç&?í;¢ÃÿÖ‹ÏnÏeNÅËÕºßÔ7f.Åg‡îÚ¶sÿÝ·Ÿ›Œï;¢ÃÿÖ‹ÏnÏeNÅËÕºßÔ7f.Åg‡îÚ¶sÿÝ·Ÿ›¼t[ß.ø·^|þp{.s*^®Öý¦¾1s)>;t×¶�zGm„;={7ô ë±ë {zYoر —õ†ݽ¬K�n€^Nòí ½Âº»§ÁÚ)BúIßð8ëR¡Ð˺§TØ ÐËºÔØ ÐËzÃŽn€ëR£ ÁI¾½ !¬»»œØS]·p§g°»¾° ÄzÃŽ½%Övt”X—Ý%Nòí %aÝ]èáä” ÀºT(”X÷” {J¬K�½%Övt¬².5ºV9É·7¬ ëîB7Òìº�b×…».Xv]pØu¡Â® ».D/d×…4/ )6^rl¼4X6^6^*l¼4xl¼4D/dã¥!ÍÆMCŠ�›†7 –�›‡�›† 7 7 QÅ Ù¸iH³q=H±q=ȱq=°l\6®6®׃¨â…l\ÒœR¬IŠS*€5ÉqJ°&–S*€5q8¥X“ §TkâqJ°&QÅ 9¥X“4§TÓ’â” `ZrœRL‹å” `ZN©¦¥Â)À´xœRLKTñBN©¦%Í)@FRœRd$Ç)@F,§Tq8¥ÈH…S*€ŒxœRd$ªx!§TIsJ°.)N©Ö%Ç)ÀºXN©ÖÅá” `]*œR¬‹Ç)ÀºD/ä” `]ÒœRl–§T›%Ç)Àf±œRl‡S*€ÍRá” `³xœRl–¨â…œRl–4§T±¤8¥ˆ%Ç)@,–S*€XN©b©pJ‹Ç)@,QÅ 9¥ˆ%Í)À¼¤8¥˜—§Tób9¥˜‡S*€y©pJ0/§TóU¼�S*€yIsJ°ERœRl‘§T[ÄrJ°EN©¶H…S*€-âqJ°E¢ŠrJ°EÒì:Ö$Å®c`Mrì:ÖIJëX‡]ÇÀšTØu ¬‰Ç®c`M¢Š²ëX“4»Ž�iI±ë˜–»Ž�i±ì:¦Åa×10-vÓâ±ë˜–¨â…ì:¦%Í®c #)vɱëȈe×1�‡]Ç@F*ì:2â±ëÈHTñBvI³ëX—»Ž�uɱëXË®c`]vëRa×1°.»Ž�u‰*^È®c`]Òì:6KŠ]ÇÀfɱëØ,–]ÇÀfqØu l– »Ž�Íâ±ëØ,QÅ Ùu l–4»Ž�XRì:bɱëˆÅ²ëˆÅa×1K…]Ç@,»Ž�X¢Š²ëˆ%Í®c`^Rì:æ%Ç®c`^,»Ž�yqØu ÌK…]ÇÀ¼xì:æ%ªx!»Ž�yI³ëØ")v[$Ç®c`‹Xv[Äa×1°E*ì:¶ˆÇ®c`‹D/d×1°EÒlœÖ$ÅÆ `MrlœÖIJqX‡�ÀšTØ8¬‰ÇÆ `M¢Š²qX“4'€iI±q˜–'€i±lœ¦Åaã0-6NÓâ±q˜–¨â…lœ¦%ÍÆ #)6NɱqȈeã�‡�@F*lœ2â±qÈHTñB6NI³qX—'€uɱqX'§Ü®[¸Ó³wÀ°pgl¸§ÀzÃŽ½Ã¬7ìèf]jt s’ooÖ¥B�“Sî-¬K…À0wz†{J¬K�½Ã¬7ìèèa]jtôp’ooèÖ�|�“SnW€;={7Œ�wÆ®/°Þ°c/ÀØë ;ºò¬K�n€<'ùö€¼°»¾ÁÉ)7ÀºT(Œ�p§§T`]jìa½aG7@�u©Ñ Pà$ßÞPÖ�|ƒu¾Öè•^ÖùZ W¬óµ6@¯”Xçkm€^Ye�¯µze˜u¾Öè•ÖùZ Wò¬óµ6@¯Xçkm€†ô²Î×Ú i°Î×Ú )±Î×Ú Ye�¯µ2Ì:_k4¤‡u¾ÖhHžu¾ÖhH�u¾Ö(I/ë|­ P’ë|­ P’ë|­ P’UÖùZ $ìóµ6@IzXçkm€’äYçkm€’Xçkm€Uée�¯µV¥Á:_k¬J‰u¾ÖX•UÖùZ`U†Yçkm€Uéa�¯µV%Ï:_k¬J�u¾Ö–^ÖùZ`X¬óµ6À°”Xçkm€aYe�¯µ†e˜u¾Ö–ÖùZ`Xò¬óµ6À°Xçkm€ée�¯µz¤Á:_kôH‰u¾Öè‘UÖùZ G†Yçkm€éa�¯µz$Ï:_kôH�u¾ÖÈK/ë|­ �—ë|­ �—ë|­ �—UÖùZ /ìóµ6@^zX÷\Ï:_kä¥À:_k¤—u¾Ö(Hƒu¾Ö(H‰u¾Ö(È*ë|­ P�aÖùZ  =¬óµ6@Aò¬óµ6@A ¬ ¥@/ëB©Ð`](•J¬ ¥À*ëB©0̺P*ô°.”JyÖ…R  ÀºPjô².” Ö…R ÄºPj¬².”ì ¥@ëB©�g](5 ¬Çnîèe=vs/@ƒõØÍ½%Öc7÷¬²»¹`˜õØÍ½=¬Çnîȳ»¹ Àz¬· —õXo/@ƒõXo/@‰õXo/À*ë±Þ^€aÖc½½=¬Çz{ò¬Çz{ ¬ ; ½¬ ; Ö…€ëÂŽÀ*ëÂŽÀ0ëÂŽ@ëÂŽ@žuaG Àzow —õÞî@ƒõÞî@‰õÞîÀ*ë½Ý€aÖ{» =¬÷vò¬÷v ¬kÝ€^Öµî@ƒu­»Pb]ë.¬²®u†Y׺ =¬kÝ€<ëZw Àº‘èeÝÈ�4X7ò#%Ö�üÀ*ëF~`˜u#?Ðú‘ȳnäG ¬ËÆ `]6NëRaã°.'€u‰*^ÈÆ `]Òlœ6KŠ�ÀfɱqØ,–�ÀfqØ8l– '€Íâ±qØ,QÅ Ù8l–4'€XRlœbɱqˆÅ²qˆÅaãK…�@,'€X¢Š²qˆ%ÍÆ `^Rlœæ%ÇÆ `^,'€yqØ8ÌK…�À¼xlœæ%ªx!'€yI³qØ")6N[$ÇÆ `‹X6N[Äaã°E*lœ¶ˆÇÆ `‹D/dã°EÒük»nØåírww=°ë×wýx×ç»~{×Ïìúç»þÅ®¯wßõö®wv½·ë»nßõЮ_Üõ»þó®m»þû®ÿ·KÏ4gZ3ý3»f¶ÏŒÎD3'f6ÏLÌ<1³a¦6sóÌ«3é™;fNΘ™§f Ÿžùtæ'3¿5óÆÌ?™ùræÆ™·f~aæîæö™WfÎÍüÊ̯Îè…Á…ƒ 3 °-¬/<»ÐXøîÂØÂ« ¹…K WXøÛ…Ÿ,üÃÂO/|¹ðó ÿzá®…� C ï/œ]øÖ¶…�Ì]œ[™Û>Çs2·yïÌÕæœ{m¾¹ósOÏ}6÷ÌÜs/ÌýÜÜ�s/ÎÝ=çÏÝ>÷Êܹ¹GçöÏ=67¸ïྙ}°/Ú·¶ïá}Oìûî¾±}¯îËí»´Ïì»ußöýdß?ìûé}_îûù}ÿjßKûÞÙ7´ïý}g÷}kß¶}îK¶×·¯lß¾�·ËöÍÛÙ^ÚÞ³ýÁí¯m¿c{ßöóÛ¿¿ý‡ÛjûÛ_ØþsÛïÜþâöÝÛm¿ºý•íç¶?º}ÿöǶ7§¶NáLESkSO=15<52µw*7uiÊLÝ:õƒ©M}>õ;S_NýüÔ¿šziê�©?žúwS>õ­©mSN%{ê{&÷,ìÙ´GölÞóÈžÒžž=×ïyn�ÝÓ·çüžïïùសÚóÅžŸÙó³{îÜóâžÝ{í¹ºç¡=ì¹oÏþ=ZuAJ¢\ȺïXQ.”k“ÊAÅ“TŽ;ž…(m­J*¬»œ;X»NÐÅZ�„5Öž%iÖª råBÖ}Ljr¡äX§m*ž¤rÜñ,¤r¥­uC`í:�bíYp%ÍZu�•(²î;@” Ų6©T<±w< QÚZ7ëku¦Y{Ò¢X«.p$Ê…¬ûŽåBqX§m*žX‡;žëH”¶Ö �µ: Öž…´¸¬UT$Ê…¬ûŽåB©°6©T<©xÜñ,DikÝP*°v]ËZu�'Q.dÝw,€(ŠÇ:msPñ¤âqdzPñ$J[ë†ÀÚõ,»wë‘Ú@/wîÝAܹ7?À�Æ`=róØ0@/'…ÒÖÝc׬±î&ÖÝ«×sç^à÷¢” në›uCàNƒ¸Ó(ôôpRhl`Ý=v=À4ëî Ö#µ€wîÝÑà¤vóõÜiìh°¹yl ÄÉØÍXw�]�aÝÝ`í‹Ü¹·ÀɆÜi4ø•ë®»îh¤ŠY«LœŒõn`Ý=v=À:ëî‘ë‘ÚÀ0wî©°Þ{ýpw#5Ö#7�  sRر€u÷Øõ›Yw�¬²i ÷pçÞ‘UÖ{ÃßáNcd€½îºëŽF·<¼'{»7°î» fÝ=Âz¤602ö wî`]ÚÀ�Æ둛džFÆä¤Ö½€u÷Øõó¬»ó¬ÇF†{¸so€õêî4òüØu×]w4Rå¬U&N#Xw�]°…õ™ë®»Ž7m=²õ¶­o}bëðÖ‘­o}~«ÚzÿÖ[¶>½õ³­Ïlý�­ÿdëW[¿ÞúâÖÝ[m½ºõ϶~sëÜúË[ÿÇÖ{¶ž©öWgªSÕËÕÕùêMÕ'«;ªVŸ«æª—ª¦zkõÕU«úÛÕZýÕ;«X=]}¯ú§Õ÷«ß¬~«ú+Õ«I½©Wÿ¦þlÜ]ÿ†þ±þïõßÑÿ­ý¿ÑÿSý¿ÝÿÏú¿ÿxÿ]ýïõßÞÿ‹ýßêÿ¯ý�õŸ98ypßÁËo;ø7ó<˜>xéృß?ø›??ø¿þìÁ¯þáÁ»þÉÁ÷þ‡ƒ�ü“Ék&qòÛ“áäúäÓ½“=“íÉ_›<5L>0ùéä3“oL¾0ùs“wN¾8¹{òÐäÕɇ&?˜¼oò¯&ÿçdg©µ´´4·4º4°”YšXê]ºw©{‰–RK§–Ü¥[–ž^úl陥7–^Xú¹¥;—^\Ú½théêÒCK,Ý·ôWKÿs©³ÜZ^Zž[]XÎ,O,÷.߻ܽLË©åSËîò-ËO/¶üÌòË?³üåòï/ÿÁò/,ÿŸå——¿±|ûòŸ-ÿ§åG—÷/´|`¥¾2¹2³òí•#+·­Ì¯Ü´Ò»ò�•üÊØÊÇ+••¾•ó+O­üúÊ�VþnåWþéÊW+ÿrå­•?\Ù½òîÊŸ¬üÙÊ+÷­üòʯ®,®tp—qGñ fpÁïb7º^Rìz9ȱëåÀ²ëåÀa×ËA…]/»^¢Š²ëå Í®›ƒ»nrìº9°ìº9pØusPa×Í�Ç®›ƒ¨â…ìº9H³ëAŠ]rìz`ÙõÀa׃ »xìzU¼�]#k“ÊAÅ3ËÏB”¶Ö ÅÌkÕi‰r!ë¾cD¹PÒÜñ,˜Y‰ÒÖº!°ö¬b�›U¬U—bÝw,P¬=kYçf-kÕeY÷ ,kÏ*—unV¹¬U—rY÷ÊeíYë²ÎÍZ—µê².ë¾ÀºLHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHøœÙ´´ij“lšÞ´eÓµ›V7Õ6Ñ&ga°‰ð–MOoú_›¾ØôÂ&B¯7ßôo6íÜô§›~q!á/oúo›>Ú4>:9º}”��0;º6:1º::2JHHøÚ(!¡í%$$$|`ôÓQÂÏG _ýÙÑßýz”���ðøè�Þ5úÎ(!!!áË£WGÿýèŸ�þÅè}£¿2úßG uÚZPEIåX§­Uëpdz Šb7îx¢´µn(ª¬UWT‘uÚZPEQEîxTQ¢´µn¬­“UäDuå RŬU&N¬“ƒH³V™¸ãYˆT1k• ÅZ`�¶TQÌ,'ž…”Dª˜µÊ„À‰g!'‘*f­2!pâY°©bÖ*'žG"UÌZeBàijP‘H³V™8ñ,x©bÖ*'ž…H³V™PRÀ‰g!RŬU&”pâYˆT1k• Å'ž…H³V™Pàij©bÖ*J8ñ,Dª˜µÊ„â'ž…H³V™PÒÀ‰g!-‘*f­2!p’¶Ò©bÖ*'i›ƒ´Dª˜µÊ„À‰9–‚H³V™81©¤%RŬU&NÒ]"UÌZeBà¤ØçB¤ŠY«Lœô¹©bÖ*'¹YˆT1k• �;¯¦T}³.…H³V™ð{Àz¶oT‘µS„È̆¢Š¬g�™ ¨"ëS³©bÈÚ³`fE™��������ð#&$$$$$$$$$$$$$$ (The default extension is .REL) Example: DISREL OBSLIB DISREL B:PASLIB.ERL The documentation on the .REL file format can be found in the Microsoft and DRI manuals. Good luck! Pierre Schwob n RELDUMP.COM by Ron Fowler. It performs a two pass disassembly of .REL files (Microsoft/DRI format) both in 8080 and Z80 opcodes with labeled entry-points. 8080 opcodes are given in upper-case mnemonics, in Intel format. Z80 opcodes are given in lower-case mnemonics, in Zilog format. Have fun disassembling the libraries attached to the various Microsoft and DRI languages! - Indexed Relocatable Files: When you need to disassemble a .IRL file, use DDT to remove the first few sectors used for the indexes and move the rest down to 100H; save it as a .REL file and then use DISREL. - Syntax: Use the following comman• �“ÊAZ"UÎZeBà$Ýe!Rå¬U&NŠ}.DªœµÊ„ÀIŸ ‘*g­2!p’›…H•³V™¸ójJÐ7ëÂQˆT9k• ¿¬gûfA•Y;EˆÌl(ªÌzö˜©€*³>5 ‘*‡¬= fVT™ 7%$$$$$$$$$$$$$$¼î(!!!!!!á½GAHHHHHHxè!!!!!!áû' ï;AHHHHHHøá BBBBBBÂÁÛ ÿú6BBBBBBBBBBBB¾���������������������ðÙÛ·Ön#$$Ü{!!!!!!!!!!!!!!aú6BBBBBÂÄõr©rÖ*'®›ƒH•³V™8q=ˆT9k• �×…H•³V™81^"UÎZeBàĸiˆT9k• �ãz©rÖ*')ÀšDªœµÊ„ÀIJ0-‘*g­2!p’Rd$Rå¬U&NR*€u‰T9k• �“” `³DªœµÊ„ÀIJK¤ÊY«Lœ¤Tó©rÖ*')À‰T9k• �×1°&‘*g­2!pâ:¦%Rå¬U&N\Ç@F"UÎZeBàÄu ¬K¤ÊY«Lœ¸Ž�Í©rÖ*'®c –H•³V™8qó©rÖ*'®c`‹DªœµÊ„À‰qX“H•³V™81NÓ©rÖ*'Æ #‘*g­2!pbœÖ%Rå¬U&NŒÀf‰T9k• �ãK¤ÊY«Lœ'€y‰T9k• �ã°E"UÎZeB`BBBBBÂKÓ„„„„„„„·Lþæ4!!!!!!áÓ„„„„„„„ÿ|š������ð¦ OO^�&$$$$$$üÓ„„„„„„„ÿmš������°™!$$$$$$üë !!!!!!áãBBBBBB‡3„„„„„„„2„„„„„„„”!$$$$$$¼”!$$$$$$|*CHHHHHHøã !!!!!!áOg o̾�!$$$$$$Ê~�!$$$$$$ü¯BBBBBBÂë„„„„„„„¸NH#å;�cضC ÿg¿¡ã�€Î±ÿ'TÍbÍož‹:W¼«àâ"Åç}çÏáŸèÁ3lï�uý£lø åGtö‡?ï;úÎÙ^ó›'ïtŽaÛÂöãðQ6<ð8>æ–âósïþ¹ýÙoáˆBçsô(>�#ðxæ(¬ùÍsBü»Ü;€ÛçÇðÃñh �÷†<ð†ÐÙþÏ …ã»?ûÇý8|” k~ódÃ=Ÿw:ǰmÿãðQ6<˜{ðͧæÞüÏÑÝ÷ÖÿÖã ìüç@`È�ÿù¶æ7�KF÷½€o~™=·K@Ù±ó͇ÿ`îÀ³?üÍ·äÐÂö¢ÿ�o�4þϾ³æ7Ïvó>Ž7töa+> `Í5¿y2¡dù%�Ú­¹æ7O™=·Ïø6tŽýÿ¹}¾A �ÿ±!ÿçð!ãíó~³Çÿ�GãgÈ„’å?)ÍH¹æ7�!¯:æeüãáCÆÛçýfŽ?P<Ç6µ«¼¡íQî½½w@Ö!ôOÁ›¥ßþì×üæ9Ñöã oðÍÇÇŒ·ÏûÍ:Ÿ,þDÛÂö0'„íÿì7òÎÿ8|”{o€5¿yÈñhÉAò�ñö[v¼��¿máQî½=Ë¡‡ïœ´ß€9!Ö\ó›'J–GJ3R¾¹c²ŒyFk®ùÍSfÏí3¾… �cÿnŸoÐBçìAÈÿ9|Èxû¼ß¬ÃñŸ|4~†L(YþÑҌ”k~ó˜òªcžQÀ72Þ>ï7ëpü(eÃ�7¼¡ÿqøÛÔ®þŸÛo¡G�Æ5¿y ãíøÛåwô“ß|<|Èxû¼ß¬ÃñÉâOôçö[èÑ£ñ!ãíø„±ßF0ÖüæÁý‡eÃñ ùŠGÙðã oèÿ¶`ñÃöŸ?ÀÜÉ�pvùà Å[Ÿ(»æ7ʆ�„±¶ÏûÎwr”ÿÙ6ÜógOo�ÐyëeeÃ[ú`û“°Ö\Sƒ¿¬±ýØ~ú6æñ¡èÀ!óø/¸jÒÛ0ùp×—uüp¤4#åšüp×slS»ú”äo…|ÿ«d\…I|Ù€55øéÛ´jºøá®�éU9`Æw=&ír�\%†ÉÇöcòrsÀ𼦋c›ÚU5Ö ;øþ𼦾yàýþ§d¤T«ùð~ÿS2Rª×ÔšüL‡¢¸|Sþ÷w8b®©5å’‘’—ë’‘’ךRT´ˆªùŽ‹Ñ5¥*<¨hQUó-ˆµc¬)UáAE (•»)5TÉqÑ‚ˆ+wS2jÆšRTÕ‚ªùŽ‹X;FA×”ªð ‚R¹›Rw µ ’ã"âÊÝ”ºkFA×”ªƒbÑ"¥{k DISASM DQC-DISASM OBJ.0ÿvÿ2DISASM.DOCT öÿ ßÿòÿõÿoÿ! Ïÿ"šÿ#³ÿ$&%'»ÿ(¾ÿ‹ÿ¶ÿ*)¼ÿ+,–ÿŒÿ­ÿ-�ÿ.‘ÿ/·ÿÓÿ«ÿ0žÿ1ºÿ2üÿ3¬ÿÎÿ¯ÿ4ûÿ5±ÿ6°ÿ7“ÿŠÿ89�ÿ:™ÿ›ÿ;§ÿ²ÿ<—ÿªÿ½ÿ÷ÿ=’ÿ>Öÿ?œÿ×ÿ†ÿ@Ñÿ�ÿBAµÿC¦ÿD¹ÿÍÿFEÅÿ�ÿ¥ÿˆÿÇÿGHIJ¸ÿÆÿÔÿÒÿ˜ÿKÄÿLÉÿÝÿMÈÿN¤ÿ¢ÿ”ÿ‰ÿ‡ÿÌÿÊÿ©ÿ¨ÿËÿÀÿŽÿÛÿORPQSØÿåÿÿþ´ÿäÿÐÿߘ&ír�\%†Iû»àý9¶©]\puÍ5×üæáئvpÁÕÿsûü‘õx˜oÛg8{@0=ÊðÏ”˜Ò!+¦ôß9·|Û‚Å GÀšß<ýwÎ-ß¶`ñÃöÍÏûÜ£þÇ£%GÿÙpÏÿðÃÿÙ£ñ?ß¶`ñÃqÍoK,c6À7£'äý�cçFŸ?aì· ÿãñ�dzGáøž:ûÃÿãñó5¿y:çíx‚á?ßþDÛÿxCÀ|ó9¶©]ý?·?{è#´Ðù÷†<‚Ïþð?ʆ5¿y†#ŽÖgØkÍ5¿yîñâØ¦võïñÂdv1 0Ê=^p¤ìÂ.”&Ô5×üæ±Î†cø ÷xeøsûü;Çzø>·„'R¯GÙãx;œýØ‹Q|LvaÊ3Ãÿ¹=ʆ5¿yÎxC?<ÁP|Þw>)»°‹候áÿÜeÃ�7¼¡ÿá À™ � ÀðãpÍo” öÀúž`xËmCïPÇ•â?ï;oÉ!ï CôãpøæãáCÆÛçǰæ7Oç<:ûÃÿ(~¼!à ý8|ŽmjW�ŸçÜ ýðCñ�ñöcB¾¡óh\ó›gÂ9„ü£løñ†€7ôà ßç–ðçðOôçö�s8 ÇУÿáq´<ʆ?{à ­ùÍ3<Áð}n Ÿ÷æ?ÿ!ãíócx5ßqÑ"¥{ë5¥ê XÕ"¥Lk5ßqkÇ(RÊ´^SªŠ¥r7¥Aj¨EJ™kÉqqånJƒÔŒ"¥Ìõš’ãT.)©ùŽ‹D—Œ”kJvIå’‘’šï¸ˆ.)1 º¦ä8­(ªæ;.Z£cMÉ.iE\Íw\D3 º¦ä8Åj¬ã¢^Srœîj¬ã¢Å¾¦d—«±Ž tMÉ.鮯:®½ kjM ~#ó¡(.ßÁ”ÿýŽ˜kjM¹dt^j¬KF·áµ¦ä*XÑ"5Ö¨%ǽŠÔX£^Sr¬J‘Û]KŽ WŠÔØîzMÉE/.—ŒnCÍw\Ñ« ºdtŒ5%Çc.—ŒÌ†šï¸x\]22Œ5%W;.— fwÔ|ÇU»‚è’ÁìcMÉá Wjì½µšï¸p¥ ¦ÆÞ[3Ö”àJ�Í´Vó(ˆ©±™ÖŒ5%g›\©±ƒÔj¾ã²Í‚˜;HÍXS²£WjlæZÍw\ÄÔØÌ5£ˆ^kJ6�¹Rc™Õj¾ã"¦Æ2«�×”ìÚq¥Æ2Õj¾ã"¦Æ2ÕŒ¢vkJ6®p¥ÆÞ©Õ|ÇEL�½S3 \YS²ñWj,­Õ|ÇEL�¥5£ÀkJ¶mr¥ÆFk5ßqSc£5£°Í5%Û¬�ë¸l³¨Ýš’mâŠë¸l³À•5%ÛÄj¬ã²Í¬)™»Wó͈]‹ÇkJfÄ®5 æ›»XS2aSµšo¦j·¦d¦*j¾ ›Â•5µ¦\¹jJÞ�‹�:øbÞ/wJÚ]ñþ”äoÇt¿ê¿¿ÃsM­)—ŒÌ†—ë’‘ÙðZSª\õ}56®ˆÇEíÖ”â íRcãŠhWA»˜ÏšR\©¨±q¥²¦T)k§ÆÆm“QÔnM©RâŠWD´MF�+kJ•¨±qEDÛdx`MÉq¬Æ:Ž×”Ç»ë8Þ×”çj¬ã|MÉq¾«±Žó}M麰{™xMéºð®Æ^&Þ×”®‹«±—É×”®‹ïjìeò}M­©ÁÏt(ŠË§;.ëj\âë)ÉßÁ÷ñEÝßßሹ¦Ö”K³;^j¬K³;^kJ”sQ5Ÿr.ZÐ5%ʹªj>å\´ ÖŽ±¦D9”ÊÝ”ŒªD9-ˆ¸r7%£f¬)QŽ•Rw­æSÎE‹”ºë5%Ê/EÕ|Ê/Ñ"º¦D/¬”î­Õ|Ê/Ñ"¥{ë5%;Õ¥æÛ‘¨®5%;‚•R¦µšoG¢J)ÓzMÉŽFÅÕ|;z‰|MÉŽb¥4H­æÛÑK´Hi�zM‰’T±šOI®xM‰’X)e®Õ|Jr¥”¹^S‚wªZ͇wÕkJðŽ•³Z͇w¥Ä¬^SªìTNͯÀ»ÜšReÇJ‰©Vó+𮔘ê5à ¡³?ü¢ûÏ¿s‡ázôß9žÐÃ�£eÍo” öÀúá À™ ?Þð†~x‚áþÜ~8 ¡óh|µ«Åç}ç!ãmÍožÎøýˆ>›C�Æß€�p!ÿ'ü—Ùð�ã =ü÷¹%ʆž`ø‡Œ·ÿüþ;ç–o[°xƒgøŸ0ö(?ûí?ï!ÿVLiÍožH;aûGÙ}~ ß�è�ùý8|” Ï”˜ÒŸý†Ž7:Çþ ðϱMíêšß<·-lŸ!܃Bß �Ü£fø·ôÁ2ö'aû·Î†þ;ç–o[°xƒgøßŠ)=aìÀšßd¼}ÞoÖáø?ðh|”=·Ïø6tŽ}ñϱMíê¿õ ‚<ž=z” Oí ã5¿yBÆ·z†ý8üÿì7t¼Ð9öÛç}ç;9ÊÿìeÃF‹%ôè #x³ô?×üæAÙðã o¨ø!„Nèüç¿ËIÁ±ÿ'fþËì¹½%‡¶?ч|ƒ<×üæGBŽÂ? ÷ ïä(ÿ?ûÏxsË?d¼}~ ß9·|Û‚Å<ûÀo>>d¼­ùÍ“÷›u8>Y<ʆ'ŒKèÑöù1<†èÇá°æšß<™P²|8Rš‘òÍyÕ1ÏhÍ5¿yh¿Y‡ãÿÀ£ñQöÜ>ã[ØÐ9öÿçð!ãí­óý£ñ·ÐwþQ6üxCÀú‡k~óplS»ú�ÆÏ¿snÐþ‡'ßü2~x‚áßúÁÿc؂Šÿyÿù¶‹7Yó›goGBøž`øÏûÎ?!ïÿ½Ãá|Û‚Å �ÿsøoÿÖç–|ó9¶©]]ó›'Ü“[Î>lÿ(>?¾YB�þÑøyùÏ$¥«jªªæ_¦ˆµc¬)]&VJwj5ÿ2•Ò�zM “»¨š�ÉKtM “»ªj>&/kÇXSÂä.(wS¢5T “—ˆxànJ´f¬)ñkWTÍçñ¥èš¿vUÕ|_"ÖŽ±¦Ä¯]P*wSŠÖP%_"âÊÝ”¢5cM­©Á?&ã�º7#» ÛñÓ—u5.ñõ”äÁd¹ÃîïïpÄ\SkJœR5–Sº¦tU©{™nM‰Œï«±d|Méª^jìuu­)Ù奯ÚWך ›j, ›kJµ+ÕØšºrM‰c5–ã5¥«±1^SÂÕ¤ÆâªÒš®j,®ÊXSÂÕn5WÕ½¦ÖÔà72ŠâòéŽËº—øúû;1×ÔšrɸÓ奯ºdÜéòZSâ”+ªæSÎU»"z­)qÊ/q5ŸòKµ+x¼¦ÄíhTµšoG/Õ®¨Ýš§¼¢¨šO9®ÑxM‰S> ®æSÎ… ¯)a²¢ZÍÇä¥Ú­)a²¢Šš�ÉK¸²¦Ä¯Š¸šÏãK<^SâWEj>�/á�5µ¦ÿ—´ŒŸ’üíw•‡#æšZS.4öRc]2h쵦´»K�ÝÝE×”vêÔØÝÑ5¥}¿ÔØ}¿èšÒNw5vßéšÒî®]TÍßÝ%º¦´»kWUÍßÝ%bíkJ»»vA©ÜMɨ¡J»»DÄ•»)5cMi§nWTÍß�¢kJû~íºÔü}¿t­)ítßÅÕü}_S²Ý«ù¶£Š×”ì�îªÕ|{§ª×”ìÝí‚2p7¥îªdïND!†¾Ú9 Í‘:7+ÖÖŸ!‡¦/Ò/ :5+E+ͬ#ë+s#rBKÍ :7+ÖÖŸ!6+¦ÒÆ!6+6*A+"E+"?+:ˆÒŸÍ?:†Ò¾ WÍf *A+DMÍàdÍf *E+DMÍ :7+29+Íõ2H+:‡!6+¶õ:9+ÖÖŸÁH¡Òó!7+6ÃP!8+6*H+&ê ~24+:3+Ò >ü!4+¾Ò¿ Íõ2I+!8+6:4+ÖýO!¹ ^#Vëé:I+æüO!ê ~24+ÿ *I+&  ~24+ÿ :H+ÖÝÖŸÆY2:+*I+&  ~24+þ¶ !8+6Íõ2J+Íõ2<+2K+:<+æþÊ£ !4+6ö :<+æüO!  ~24+ÿ 4 J Z ÃÐ >N!4+¾ÒÐ !4+6*4+&Íå¦ ~20+æøæ25+:0+æ2;+:ˆÒ *E+ØEZ.]ÑCÌ­)ì—\êNTÍ?Øu.u'zˆ¹5¥ƒ�¼äRw¢jþÁ.ò*\êNôskJü€´’K�Õ|~@ZÉ%ƒÇ‡˜[S2¯Ú©±¦ˆµc¬)™®¨±¦ˆ¸ÂXS2/< Æ˜"âÆšZSƒÿ¢Î=%ùïqÙÉ¿¿ÃsM­)—ºõRc]êNÔkMé¢ÎÉ%ƒÇjþE�“K�×”.+¹dtEÕü‹:'«Â%£+º¦t‘Vr©;Q5ÿ¢Î‰´*\êNtMéºä’Ñm¨ùuNWá’Ñm¬)]ä%—ŒÌ†šQçD^…KFfcMé2a¹d0»£æ_Ô9™pá’ÁìΚÒeÆrɸӥæ_Ô9™qá’q§kMé2å’Ac5ÿ¢ÎÉ,\2h¼¦tUå’q]jþE�Sµpɸ®5¥=.ÕØ=.×”v+5v�KY­)í¤•»Ç¥H«5¥ýRc÷¸Ôµ¦´“—»Ç¥ÈkMi7a5v�K™ðšÒnÆjì—2ã5¥ÝTc÷¸”¹¦´WÕØ=.U]SÚ㫱{\â5¥=.I5v�KrMi·Ku«ù»]ª;ÕkjM ~Lš‘ò)ÉŽ”f¤üû;1×Ôš&•’Q«ù˜-R2ê5%Lš¢j>&E âÅXSÂ$Vc1‰×”0‰w5“x_SÂ$Wc1É×”0Éw5“|_S‚#¥Rê®Õ|8R*¥îº kJp¤4UóáH)âÅ(¢kJp¤Äj,)ñš\â]�…K¼¯)Á‘’«±p¤äkJpÉw5.ù¾¦ÖÔ7OLr56&ùšÌ·»VóáH©”ºë‚®)Á‘ÒTT͇#¥ˆ£ˆ®)Á‘«±p¤ÄkJp‰w5.ñ¾¦G˜ëòRc]2®ËkM)ŠKU󣸔QÐ5¥(.Õ]TÕü(.Õ]kÇXSŠâR÷P*wSÊ´†*Eq©{ "®ÜM)Óš±¦dÇ¥)¨šoÇ¥)èš’—Ê\TÕ|;.•¹¨®)Ùq)f”�»)1ÕP%;.Ŭ â�»)1ÕŒ5¥=¶eÃ*WANT OUTPUT PUNCHED? END BCDEHLMASPPSWEQU READ ERROR CHECKSUM ERROR ORG 0H WANT TABS? WANT Z80 INSTRUCTIONS? WANT ASCII COMMENTS? NOP LXI ,STAXINX INR DCR MVI RLC DB DAD LDAXDCX RRC RAL RAR SHLD+DAA LHLD+CMA DMÍàÍ?!1+6!++6:5+!++¾ÚW *++MÍõ*++&H+ w:ˆÒP  Í> *++&H+ N͵:1+Ö21+!++4 > !;+¾ÒÏ :0+þ™ *I+&"C+>€!C+Í(Ò‰ C+Íë+s#r*C+ë*E+##"C+ÿ :5+=O!H+ N*5+&ÅH+ NÍçÁ "C+:†/ÒÏ *C+DMÍ“ :ˆÒÝ *1+MÍ?:†Òç ÍÞ!5+:7+–=27+O>¹Ò, !++6:7+!++¾Ú, :5+!++†O!H+ :++=Oå!H+ Á w!++4Âþ ÃPÍx!†4ÂDÍûv!P+q:>+ÒS *P+MÍÃZ *P+MÍ›É Í>  Í> É!S+s+p+q!T+6:S+=!T+¾Ú– *T+&ë*Q+~æOÍ> !T+4Âs É!W+s+p+q!Y+6:W+=!Y+¾Úê *Y+&ë*U+~2X+þ@ÂÈ ::+2X+:X+Ö ÆÿŸõ:2+/ÁH±Òã *X+MÍ> !Y+4¤ É!\+s+p+q!]+6:\+=!]+¾Ú *]+&ë*Z+NÍ›!]+4Âø É!`+s+p+q*^+DM*`+ëÍë Í•æ2a+ÖYÆÿŸõ:a+ÖNÆÿŸÁH¡ÒR Í›Ã- *a+MÍ› Í› Í›:a+ÖYÖŸÉ!f+s+q+ÑÁq+Áp+qÕ>!e+¾ÒŠ !e+6!i+6!g+6:e+!g+¾Ú *b+ë*d+&ÍÆ0ë!h+s>9¾ÒÁ :h+Æ2h+:g+ÖÆÿŸ!f+¦õ>b+͵֟ÁH¡Òå !i+4!g+>–O!j+ :h+w*b+ë*d+&ÍÆë"b+!g+4” :e+r+Íå*i+&Á "b+!i+:e+–w*b+DM*i+ëÍf É!v+p+q*u+ë!ÍÆ!r+s>u+͹ë!t+s*r+&‹ ~2s+:t+þÂt !t+6À *t+M>Íù2t+:s+!t+¦þÂ� >É>ÉÉ!x+p+q*w+ë!ÐÍÆ"y+*y+DMÍ6 Òß *y+‹) w+͵ÂÅ É*y+#"y+ÐÍÿµÂÜ !"y+Ã:t+!s+¶+N!‹ w*y+‹) å*w+ëás#rSTA +STC LDA +CMC MOV HLT ADD ADC SUB SBB ANA XRA ORA CMP RNZ POP JNZ +JMP +CNZ +PUSHADI RST RZ RET JZ +CZ +CALL+ACI RNC JNC +OUT CNC +SUI RC JC +IN CC +SBI RPO JPO +XTHLCPO +ANI RPE PCHLJPE +XCHGCPE +XRI RP JP +DI CP +ORI RM SPHLJM +EI CM +CPI EXX EXAFDJNZJMPRJRNZJRZ JRNCJRC RLCRRRCRRALRRARRSLARSRARSRLRBIT RES SET INP OUTPDSBBSBCD;NEG RETNIM0 STAIDADCLBCD;RETISTARSDED;IM1 LDAILDED;IM2 LDARRRD RLD SSPD;LSPD;LDI CCI INI OUTILDD CCD IND OUTDLDIRCCIRINIROTIRLDDRCCDRINDROTDRDAD@LXI ?@ABþC(D"EFG&H(IJKLMÿN(WXYZ[\]^^^^^^^^______$Éæ É!~+p+q*}+ë!ÐÍÆ"{+L+}+ÍŸëN++õÍŸÁH±Ò6>É*{+DMÍ6 /ÒF>É*{+‹) }+͵Â[>É*{+#"{+ÐÍÿµÂr!"{+Ã6É*r+&‹ :t+¶w*{+‹) ^#VëÉ!‡6+~/ÒtÍ 23+�Í 2=+!2+6Í 2>+ÃP iÍ 22+!"‰}2-+>ÿ!-+¾Ú*-+&‹ 6*-+&‹ 6!-+4ÂÜ!5+6!7+6!.+6#6!ÿÿ"E+!"?+:>+/!†¦2ˆÉÍÎæ2+:+ÖAŸ/õ>F!+–Ÿ/ÁH¡ÒV:+Æ 2+Ãx:+Ö0Ÿõ>9!+–ŸÁH±Òx7Íë !+6:+æÉÍ,‡‡‡‡õÍ,ÁH�2-+:-+!/+†w:-+ÉÍÎæþ:ʨÛÍ~2.+:.+2/+É!€+q*€+&åÅÍl É!�+q0Í> *�+M͵HÍ> É!ƒ+p+q*‚+åÅÍl É!…+p+qL+„+ÍŸ/ëN++õÍŸ/ÁH¡Ò(LÍ> *„+DMÍàÃ>0Í> *„+DMÍàHÍ> !1+5É!†+q:2+Òn!-+6:†+=æü!-+¾Úk Í> !-+4ÂOÉ!-+6:†+!-+¾Ú‰ Í> !-+4ÂsÉ!‡+q:=+/Ò—É!G+6;!‰+6+6:‡+!ˆ+¾Úë*ˆ+&G+ >¦2Š+Ö Ÿ/õ>|!Š+–Ÿ/ÁH¡ÒÙ!‰+6Ãä*ˆ+&G+ 6 !ˆ+4¤:‰+Ò*1+MÍ?:‡+<_G+Íf ÉÍ[ !"‹+Ð!‹+Í+Ú¨*‹+DMÍ6 *‹+‹) ëL+õÍŸ/ÁH¡ëN++õÍŸ/ÁH¡Ò›*r+&‹ :t+¦þ›LÍ> *‹+‹) N#FÍàÍ?4Íf Í?0Í> *‹+‹) N#FÍàHÍ> Í[ *‹+"‹+ÒÍ[ :ˆÒ·Í?Íf Í�É!�+q:4+þ‡Òß*�+&' NÍ> Ãc:4+þ’Ò :�+þÂù*:+MÍ> Ã*�+&' HDND DQT ñPDND DQC =vDND BASHÁ¯DNDMAIN BQSO±y¥DNDSTARTBAS ¥)ÿÿvÿèWDND.DAT3ßÿ òÿõÿºÿ­ÿ°ÿ¬ÿ¶ÿ³ÿ«ÿ¾ÿ±ÿ¼ÿ¸ÿ»ÿ¯ÿ·ÿ¨ÿ²ÿ¹ÿªÿ´ÿÓÿ !Ïÿoÿ½ÿ©ÿ¦ÿ"#$%&'(ÌÿÍÿËÿÎÿÊÿúÿÒÿ§ÿÑÿ)*+,-ÉÿÈÿÆÿ¥ÿûÿ./012ùÿ÷ÿöÿóÿñÿåÿÇÿµÿ®ÿÿþž5j^›Õ!ŸmVâ^-%‡Ý, ÀI’­Îv»E~Úz L®ï[ô9‹bÝ×õ@Ò†ë{ŸmOÆRt�ÕR°h‰<ÖUpýå¦MÔ´G©€OÒ²(îe�BCV«†–n•XeÛ]<Ò]´[@—Õ�e‘äÄÿ<¿|{›¾üû�§}{Ö>²N©ÏyRËIî9êÝ7)Z;®kÔÛ Ò¥Š–VO�Ú¡Òq%b�Úa&[DO�Ú1-ŠëoÄÞÔR‚mPñ¶ËéMT¼}ßq%âÉrX…m˜¥¤¨ýœ,c–’>ޏñd9¬Â6xV©=ÏçdžµO¸þI|ȶa*î¥ËyÈW&^K�†Tj“s-=R©Mp}'ö¦–lƒÔ¬�Ó›&HÍúˆ×Ò£a ÷HBìId"n» Rô9c±½'NÑçLœw­Øë�2ˆ'µ,-‡UâEnÄIî‘KâVv¤èsÆb{N<$KËÈZ&'nsѕسJíy&NÑç\£vÜ,eâ¶«ÀEÃvÇb{Nܬæ¨{IHÑçLõ·H‘ij¥�ÕªgQâi.5_KÂfÚĉ§âŽ¥¤D¼…Ê­¤DÜÊî Û‹íu8ñ–Ägdƒg«B¼IQâ-j… NÍ> Ãc:�+þÊ!*�+&' NÍ> Ãc[Í> *:+MÍ> :J+2Ž+O>¹ÒJ-Í> :Ž+/<2Ž+ÃO+Í> *Ž+MÍÊ]Í> :1+Ö21+É!1+6 *8+&H+ ~æüæ2,+*;+M!Ú ^#Vëé*H+MÍÊ!1+6 Ãô!1+6Ãô*8+&H+ >¦OÍÃÃô!1+6 *,+MÍÃ,Í> *8+&H+ >¦OÍÃÃô:,+þÂó1Íf !1+6 Ãú*,+MÍÃÃô:,+æ2,+þÂ/Íf !1+6 Ã!*,+MÍÃÃô:,+Æ0OÍ> Ãô*,+MÍÃÃô!1+6 :,+Æ0OÍ> ,Í> *8+&H+ >¦OÍÃÃô!1+6 *5+&H+ NÍÊÃô!1+6*,+MÍÃ,Í> *5+&H+ NÍÊÃô!1+6 *C+DMÍõÃô!1+6:,+þÂÃ/Íf !1+6ÃÊ*,+MÍÃ,Í> *C+DMÍõÃô�œ¤·Ûý$0:`u–¦É!�+q!7+:�+¾Ò*�+&H+ ~É:�+<27+*?+#"?+:6+!‡¶Ò*>É:.+þ²Í›:.+þÂE!‡6>ÉÍ~o&ÍååÍ~Oá åÍ~á"A+:†/ÒœL+A+ÍÒ|*A+"L+:.+A+ͬ+N+Í Òœ:.+A+ͬ+"N+*?++A+Í µÊ²!6+6>ÉÍ~2�+:.+=2.+þÂÚÍ~2-+:/+þÊÚEÍë :�+ÉÍ?*4+&Íå¢ DMÍ— Í?Íd:5+!“+¾Ú«:“+‘+ͬ++DMÍ*r+&‹ õ:t+¦ÖÖŸÁH¡Ò¤:ˆÒ^Í?LÍ> ÍvDMÍà:“+þÂ{:Í> áÍ?4Íf Í?$Í> -Í> !“+>2–OÍ> Í[ !“+4ÂÉë_ë…oŒgÉë_ë¥o¤gÉDM!>õ)ë—)ë�‘o|˜gÒß ñ=ÂÍÉDM!>)ë)ëÒô =Âìɇ ÂùÉ{mRòLœ%Édš‰‹g- KIñd‹(Ó�#R"Ž&ðlº/%%؆-Tˆ§Tú.Ä9V�g›ˆµ„ †”A<[zÀëÍñb:`TZI‰XųiÉa•xÒðµähXJJÄKü,:ˆý¿=Tˆ�}ÎÄ·RGdâ¥h2Ä-‰F#^Š&k±7�››–lJ¼Z=ˆó²Oâ™x)ªaJ‰×Ò„x™c"Æ+ˆñ b\@Œgãb<�O ÆÄx1. Æ ˆñb\@Œ7ãb¼�ãb|ñ¨ãk”Lü·OR”¸|¯¥ ñ2ÇDŒWãĸ€Ï ÆÄx1ž@Œ ˆñ b\@Œãĸ€oÿ THEN PRINT FNP$(7,37);"[]" 4230 IF FNS(P(2,2))=0 THEN 4270 4240 IF FNUP(P(2,2))<2 vÿÙDND.DOCußÿ šÿ�ÿ‹ÿžÿ“ÿŒÿ‘ÿ�ÿ–ÿòÿõÿ—ÿŠÿ !"Ñÿ†ÿ›ÿœÿoÿ�ÿ’ÿ™ÿ˜ÿˆÿ#$%&'()*+,-.öÿÖÿ�ÿ‰ÿ«ÿ¬ÿÏÿÎÿ/0123456789:;<=>ÒÿÓÿ»ÿ”ÿºÿ¶ÿ¾ÿ¼ÿ³ÿÍÿúÿ¯ÿ×ÿ?@ABCDEFGHIJKLMNOPQ²ÿ±ÿØÿËÿ°ÿ¨ÿÌÿ·ÿÊÿ­ÿÕÿÉÿ½ÿùÿ¹ÿîÿªÿ¸ÿ‡ÿÇÿ¦ÿÞÿÅÿûÿøÿ÷ÿ§ÿôÿÆÿŽÿ©ÿÈÿRSTUVWóÿðÿïÿÁÿXYZ[\]^_´ÿ…ÿ_ÿÜÿÃÿ`abcdefghijìÿÂÿƒÿ ÿÐÿ•ÿíÿâÿÄÿÀÿÿñÿklmnopqrstéÿåÿãÿáÿÛÿÔÿµÿ®ÿ¥ÿ£ÿuÿ^ÿVÿ-ÿ,ÿÿÿ ÿÿÿþéþñ÷îcŠióðç÷n]_œlN°=ÙàÞ ¼8½8ÙâñÉ~uúøä›{xüê66O·x}vë$¦ó{··§ÛÍ÷^`óð/î]\Ü»zûõ‡˜bZì—ÀÑí£êèÞùÀÍ& û½ý‘TG÷Î1C˘—KàèöQõìl»p³ý^ˆþH ζ秧8º}T=;Û.cZÀÅÕå!4úõN!@ ~þÂï2ÕæáÑÁÉ!6ÿ@ÍÍ=ÂØ>ÃìÛåÕÅ!À4üGN!â ÁÅqyþÂC>É2!ÀÍGÁÍÁÑáÉ6âÍÁÍ!ÀþÀÖ ÍÁÍÍÇ!6@ÍÕÍÑ! ÍÎùÍÍÇÕÍÑÕÍÑà ~# ÂÁÂÁÉp# ÂÎÉ NO MORE DISK SPACE$ NO INPUT FILE SPECIFIED$ INPUT FILE NOT ON DISK$HEXõÜxñÚÇlÍ ÒÒ>2£ÃÒWANT OUTPUT PRINTED? ÁÀ!\ÉÿASMåååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååå%¶›³Ç›êÙÙÀÍö{!ú#58ÛžŸžâèöÑvsöxS=;Û.cZÜ]G·�n��Þ®ž�mn¶ß Ñ©ÁÙöüôG·�n��Þ®ž�m—1--�£ÛGÕÑÙfàæ•³ß Ñ©Á*8õ5ŽnUGg›eL1�ƒ1²Šx²¡!°ƒd‚Õ�pcxš¨Y¢ ö¸®=O^‡˜Z5°¢^0é@ö€³ßo=;Ûžžãèöº«g$BY×�)«oÐr_ƒGHc0„à�Õ5Fo´>{Ô\îƒÁ°•*¦˜þÒýûß»SLèþ꨸‰ØY¨kpäubgcŠ ÝÕ&xõ÷Ô xÄÑí# aŒÁ5�L¸`ßà–Z!!™búBžßਸ‰ØUØä`,v„U zÓöÁM�Lx´ƒ¡5™˜šâ&bWáÌÁ¬h 5KêÛ v0´&ƒ=x„dŠ©)n"vÎ5+ê%¸ ='�Lž0c°"(&zÓ“äZBÏÁ‰ÅÍÉ—e…M&K]“wê †[jÀÎÔ`“d¼Z“��LhŠ›ˆ]œµmŠQ¡ô¦'ȵSÏÁ‰ÅŒ�Ã3j.ÆŠZЦL†ÖdÐfõÚ ù*¦û™j.à•hp¸Üív8ù‚š ‚k=©%ÃК .qw·ÛÁКLLñv·ÛÁК ­ðŽ æ` ,$L˜²€G(D×äæL.¦š Æà©bŠ ÝÕQñÁM¨¹x|/d5ÌÁ�k¹8!�A] ^YÑÖ�…º&¦1¸¼ú{jÅB² ­¡ËI™L�š ‚CÍÅÃ’ú6W1m2¡!êɣ悉œ0$šâ&bÉ„¬¾!� ˜ƒ1X„c²Å¯Ãš  Ã3 ­É Íêµòp†‰¹�/†À#$—a…`c²¢5æ 98\‚=ÀКŒ�¨¹x´Y½¶B°¢5Ô„5U1Å„îêÞÊŠ¶†,j.˜ƒ1 ×rqBs0+‚+Ê<5P Ck2øsÓ‰¶ÿûOÈaÊô·peXÑßbæÿ` Sþ¿X‘ý-ì¿`E³zzÿßÿ„M¦ÿ5ö_b´†øêX!5�Üd1zPs©°å�$ d!™0°³Bs01©ˆ¶Ç¨¹` ÞJ¼ã‚9Éä�uM�Là^;ãE˜²"¦sµö8YkCp:¢æ‚Y¥Í¨¹x<¼{< ‚kN,j.˜ƒ1ˆ)ëš ¡’ †gòðaÊ‚–½#!™Slo´†-m†ZüáÛ!þðö$m…›ÿT¬€œ�‡d‚+Ê|µŒéΣ;hÕaE(–ÊÖîTwЪÊP,5F«Vª˜bBwu?“ƒä`Ñ{ž¼°¢^ì!j.Ⱥ&H&p/�x„z.6¸)&Eïi¸XSà {jÐfõÚ y°‡õÜ…£mV¯­�¯bÚdò„`á™`d�A]�6«×VÈ[°ƒdBìñ!,cPW£'î ÅÔªC±É«¡ öøÅI0PcÐ{ ÛkKc1¦Š)&tW›L–œ_Z ì,ÔÖäk¬| ±6™¸ *P5B7g›eœ ÔA��GÍs0&¦Aí15FÃN…0±i*àtDÍ ;9.SFÍÅ£ÍêZ²1ñ^‰ÜÛ“1(.ˆEp­'µd«˜bBwµÉ„ ö x„dBSÜDì0c°"Œ\\ƒà øròøÞ—˜~œ½ºØàæÇÅfYg’ “„ÞóäÉZ²¨¹`Æ`E˜Âš$SL-«àT;C2ÁêHpâ„<$ZVÁ©vP‹?þùðÏUL︠awGàˆãØñ 5’ ® +òÂàž$¬ŽÓªj.Š�ò�ì‰àʰ"o+àždòj+ä ÉÁM1 ZcEе#6™`Ø7´{ Zñ`E�Lž*`Ë1­hVOï�Ó5d]$�B‹™}Ç’ƒ›°Òs0Yûž\Ls&‡š È yH&¬µ©bŠ ÝÕ&“'¨'HöD˜µ¶Ù£æaLŒ†¨'�à„!™bjŠ›ˆÝH¦ê [Ñàg2ÆbC†zöru ^{­q+X©q^Vdcºy}ë|YÆÄ(=V4ø™Œ�Ô=áΫ;ÆÄhxv�º'Ü9ºSa“)¦ êÙ n6×›%„ õìÅ¢æxu P× æ` z£-¡æSp�LhŠ›ˆæ 98(FšahMÆ‚GÔ\< ·*�]l2ÅôúÖ9‚… Çu Cköð¬9!Ü…+ʸ FýD® +ò5—˜æ` È5(=ÔÕs&O=�¬Ck2;BV3B² ­ÉT1Å„îêÔA›&H`aH&¼¾uŽš Zu(– °­gcÀ#<Ù¶ÐaL7§#j.Ⱥ&°£÷ËCÓï Ck2`Gà’ Mq±ûÝ×,ØŠ'7I®º«MÁ„c‚Âöd $«À¨‹‘=s†bZ,Ð]©k�Éô54Œ�=¡ÑA'‚0vVÈÛ*¦˜öû%þ@5xĵZ[uÏ79Xd2½…dBÃì-¸'‡�=aôô½�SW1Å´¿\â–N¡Å…º–ªîù&‹`ÁÎÔ¹¸ÁA±Öb¤Â©` SÓb�îŠÇ�׉�­bŠiÿ`‰më xĉ_WÝÇMÁB±&_£ç™üX fîÉ‘¯p*Pc9¦ÅÝU°`gjŒ\\ƒà Xk1RÅÓ&F6†çà& … VÀ#vVÈÛ˜n$r˜2yH&¸2¬ÈC2Y}CÂÔeù!¦˜bÂ~‰×Ž�A·xºÄ=ߢKûýG³úÝóýÓ%^u.—ø¯Ø4è>ÿ\âE˜²�G÷|¹ÄƳ1讞ì.±í©ò1=y°Äö˜ ;tWOÞ.q« C�îÓ“ýƒ%î{ ’Ñ}|²»Äúà)&Ü]â!¯VAÐ}þ¶Ä‰Ñ¥ýÝ%îMžÐ}Ú[âˆv1=y´ÄáaÝó'ûݯ3ƒîóþÑ[ö-yò.wKy�ØÅº¸y‚àšÐª�…:×�6˘bŠ Ý_‘h0Øöd ¶eÔ×1¡ûíæ ‚kB«B-; ®¨�íɘeL‹n\Z²hyX©ÀödÌ2¦˜.hM{l{2Æ~ˆé ûטb:Ø/qK§ÐâV°6ªºÏ1\.±5D}Õý,q^<á"LYpŸ‹klÕ}ŒéÉÝ%.”¥ê~Ûfž-æLž„ œ�'+PO¸Q#äñúÖù!I[-«˜-±)Þá•kH›ªK3ûc v¦†Nœ×�6 GC [Åôäéמ…Z ìªîëC2½…0É5¨¹@' Î Ô� õ?ÅÓ­ÉàÛžŒ±b:è~�)¦ƒý÷iUuÿÓ“Ë%.hD…ª.ž…Æ¢æ�48+XQp„ õì…š˜,q®Å.”÷¹¸ÆVUÓ“»K‘P+ØxímÕ-’é-j.hHÈÁˆ�ÕBƒ…z‚xí{jb:x´ÄyV?TÝo1=yºÄV<¹IrÕų¦±FÍÅÊ'7IŽ)¦ Z“Ál{2Æ~ˆé û5¦˜öK\„)‹ nÂ36RuŸbÂåçŶä‹û\\c«ê!™Þ¢æ‚Ljª˜žLYÈ�Ç;+äÿ -; ®p±1<]âEpyðˆ#RÉU÷üœ‡• lOÆÄÓ­Éà¶=c?ÄtÐýSLØ/±!C={©ºxf Ï5CÈPÏ^Psñ–Ìa(ŽÏ½Ñ–bzr¹Ä™¯÷ÕW]º ±PcÐ0{ îÉA]CbQsÁ¬æ’=—)cVclL–¸æ™<î³oð‡`LÕ=�éàî§-a+쇪û1=&)ÞYÔ\ ÅF×ä]Lx´Äc²Â^%°«ºô�ÔXÔ\ Œ±+žÜ$9¦ƒ§K\û`•Ðâ¾SuŸÎµX²ØY!aŒ†è “…cÁq0;+äcŠé<«×VÈão‹þÀÉ—˜.hMÝÕß ûøÊêʶ=c±ÀßÀ5ÔÄô×ÝŒi¿X û¸_,ØÅt¹X û¸_,Ð]]îv»˜,ö—‹º«»‡»Ý.¦»‹€ýÁåb�îêíán·‹éÑb`p¹X û¸z¸ÛíbzºXØ@Õ½<òÁ£g ìÀ#¬xr“dÜœŽ¨¹ ëšÀŽ–1¡‹?Qu/_Y¶õl x¶ÿºÿíÿ¬ÿ«ÿÄÿîÿ±ÿ°ÿ»ÿ¯ÿÓÿðÿ³ÿÛÿ¼ÿnÿ,ÿrÿ0123456789:;<=>?@ABCDEtÿ0ÿ·ÿ­ÿªÿ¾ÿëÿ¦ÿ¹ÿìÿ²ÿvÿ ÿÿÿFGHIJKLMNOPQRSTUVWXYZ[\]^_`ab ÿ§ÿ¸ÿéÿ©ÿÿÑÿ¥ÿ¨ÿõÿóÿêÿçÿÞÿ´ÿåÿ½ÿ ÿæÿüÿòÿcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡Úÿýÿïÿ|ÿwÿ}ÿ÷ÿâÿûÿ1ÿúÿèÿµÿ/ÿiÿqÿÏÿzÿôÿùÿÿ]ÿþÿãÿ5ÿÿøÿÜÿˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µöÿoÿÁÿÿ…ÿ�ÿáÿÃÿ3ÿ ÿÍÿ®ÿ�ÿØÿjÿgÿeÿÎÿƒÿ2ÿšÿcÿQÿ ÿ�ÿUÿËÿ—ÿ‘ÿfÿ?ÿ™ÿ‡ÿyÿuÿ;ÿÕÿ›ÿ‰ÿsÿmÿWÿEÿ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæ‹ÿkÿYÿIÿ7ÿ_ÿCÿ9ÿ-ÿ�ÿ[ÿOÿKÿ=ÿÒÿ•ÿ€ÿaÿAÿÿÂÿ“ÿGÿ<ÿ+ÿÿÿ¿ÿ¡ÿŸÿ˜ÿŠÿNÿ%ÿœÿ�ÿ‚ÿ{ÿSÿMÿBÿ@ÿ)ÿÉÿ¤ÿ–ÿŽÿpÿdÿZÿÿ£ÿ„ÿxÿ^ÿ\ÿVÿ#ÿÿäÿÙÿÔÿÇÿÀÿ’ÿŒÿˆÿ~ÿlÿbÿJÿFÿDÿçèéêëìíîïðñòóôõö÷øùúûüýþÿ:ÿ6ÿÿÿÿ¢ÿžÿhÿ`ÿPÿLÿHÿ8ÿ4ÿ'ÿ!ÿÿ”ÿXÿTÿRÿ&ÿÐÿÌÿ>ÿÿàÿ†ÿ(ÿÿÊÿÈÿ$ÿÿÿÿÆÿ.ÿ"ÿÿÿ*ÿ ÿÿÿÿÿ ÿÿÿþÿû•yEŸý; ð‚™µ¦…µ6Öü5Ø5¿×´Ôä=-õYàMoº vM·�èž�žèÝЩû=B½é~OŸ5Àê^ÀnåOÜzìWþ=W©ÏozÓeh|ÿd‰Ÿ­àá>ø=ŒßqÃÁw®;öÄc²m!ÜœŽ¨¹ ëšÀŽ–1¡‹ßPu/�|pÇxHj‚›pÍØáætDÍY×v´Œ ]|…ª{ùª� ]�k ='¶Šiû ÝçmOÆ ¸ 6¦³‹ ºOgFÈãà3{›C�Lž Œ‰¶'cP\[ÅôãbƒîÓ—“Ç÷¾à‡#1½¾uŽîÓkO5n+5ÎËŠª˜6×tŸ6d¨g/䫘N.~ ûtbh­Â¾Š)¦˜Þqñh³zm…<æ` ÔÌZ[¬6óì Š^½N^û [+6UL÷Õ‹9H’ Mq±ƒz‚Í<;¨Åʳ60Á‘…º ³·1É„Y�±PO°™gµpê=Ï0Á‘­ðš¹�)í1Ô5´†dŠéû–pÃsV¡5yH¦ƒÖȺ&¨çâdò´ÄŠ0ɨ¹T1ýÛnüÿvø{ù¤â[(]Çó>ëŽ;žD½é~OŸ5Ôgîaêg`lø«l¡=˜|,~’†¿ÊÚC ºœ«gî¹N©6<ÂâUNãÚpþ*;»Î)‡‘ªÏßsµÊ1<Â&ù`x„Åàê¯îé¨Wˆ&èfaÊôè׆GXüM>oƒác óÁð‹18ÄÕ?ÞªÝÐ5û±HÖ­©fÝš†7³øV>añ§�Š`VÝ…©¨CSÌåZüIšb&×ÎÏÐëríìïü€¦X‹kñÏ«û?ð¤ºEÀqmxœ±CcÃ]ìç“ÓÍ(!«q­†ËÑ¢›Q$VãÚð8«Ý½È/GK=ÿ¨›QÔY�kÃãl¸‹™|¬609ÝŒÂb5® �³ÚÝgÕ®úÀ#ê㺈ÌH^04mAÇqÑŒ¬4êùid§Ñl…aªN}`·ºE`1�kÃ/3–�¯wÆ™ÎùµÝËÚë�6Ó9¿¶;`Ùìzg–éœ_ÛåjñɧU=Õ†GXüM>+Ã#,þ&.Ô�OQ~ª �°ø›| ˜PkO¾XV�jÃ#lƒ“a­¥Úð‹ç¹ò^ÕóRmx„ÅÁÃ#,^äê{O¾JM¥Úð‹ÿ‚†GX|W;Ÿ|ƒšª¥Úð‹ÿ‚†GX¼ÁÕƒO¾H%^ª �°ø/ø`x„Å]®ž}òeʰRmx„Åßäê…O~]­¥Úð‹ç¹zÑ“ïPIª �°ø›| ¡öÝ¡©G²VÔâ‘e³IYÏóHgq‹GVÊâ”G�‹çyÔIX<Ï£N�Åó\uîø%õ(:ã,žçQ§ÍâyufY<Ï£^3eq‹G½”Å-e+¬Å£l�µx4—²ƒ<šcq‹«ûïØwf7tÍÄ~Ä[tü¢õR¦ó¨×L™Îi§zðyf7tÍÄ~Ä)¿hFVÊtN;i7tÍÄ~Ä1ÇE3Êê)íTûïX:³ºfb?Žã¢Í¥Lç´“vC×LìGÜ¥ã¸hFsLç´“ÞªäÃâLŽ"LÙjÔ厘»ãÍøà÷îÀó>ˆçÝD¦,>-q§ž:büŽ>ø‚÷>ðž;>ø€püT]ÿpt¦„<ìRNïÃqˆìþ_¹áW>ð¼;n€÷+߻㻎×Ké&<‹>ä'ÎP^/�‡&²°'PÅÇÔ#òÌÇ!t™‘×Ki7tÍÅ~LÒq\4#Ëf:§�ê¿óÌq\4£d*š"{"2Æ£¬ÕÂ(�²v”ÍFV#ʬ(óRõÇ:³ºfb?ây:Ž‹fdu˜Îi'톮™Ø�x‹Žã¢éLç´SußcŸÙ ]3±ñ<ÇE3êô˜Î£NÂtujLçQgœé<괙ΣÎ,ÿôa :�Û Menu program for DNDMAIN.BAS AND DNDSTART.BAS'b:�Û Converted for XEROX 820-II by Bob ThomasGbC$()ðÿ–()ò"5"òÿ–()ò")"\bC$()ðÿ–()ò"("nb‘ ÿ–()"=55"¯b‘ ÿ–():‘:� P:‘ "Please input the number of your choice:"µb(‘ÿb2‘ " 1)Start new Character":‘ " 2)Run old Character": ‘ " 3)Goto CP/M"c<‘ScF… "Your choice";X:‹ Xð Ï Š"DNDSTART" :¢ ‹ Xð Ï Š"DNDMAIN" :¢ ‹ Xð Ï ½icP‘ ÿ–()ò" ";C$()ÀcZ‘ "jppI";C$();" ";C$();"jI";C$();" ";C$();"U";C$();" ";C$();"jppI"Mdd‘ "j";C$();" ";C$();"j";C$();" ";C$();"j";C$();" ";C$();"I";C$();" ";C$();"U";C$();" ";C$();"j";C$();" ";C$();"j"³dn‘ "j00f";C$();"UNGEONS A";C$();"j";C$();" ";C$();"IU";C$();"D ";C$();"j00f";C$();"RAGONS"Çdx‘ ÿ–()òÿ–():Ž"³dn‘ "j00f";C$();"UNGEONS A";C$();"j";C$();" ";C$();"IU";C$();"D ";C$();"j00f";C$();"RAGONS"Çdx‘ ÿ–vÿCDNDMAIN.BASßÿ Åÿ×ÿÖÿÝÿñÿÿÿ !"#$%&'()*+,-./ÿ&Ó9íTkïy×™ÝÐ5ûÑ¢ã¸hFÙÓy”­0�ÓN:Ž‹fŒGA; fÕßsÿ™ã¸hFã~Ôö£Y?š;FoÅES}Ï g‚T€V� +H†µ–Ònèš‹ý˜¤ Hµ HAJ;ÕKßsÛ™ ÕÄ`*V� +H†µ–ÒTª A»¡k.öä©T›JAJ;Õß¿çÑ3èì ×\T¡³ƒ\+V ÇöÞ~MrWÿóžKÕ™ ²YÍEÙ¬fªÉûo9SA0>Š[¨"ׂñõ¸E}È[Ψ?½ÿg*Ú£¸…*‚¶´×ãõ!_qF…÷ßu¦‚l|·PE6®eãëq‹ú�w�Qß»ÿ-g*ÈÚ£¸…*²¶–µ×ãõ!ßrF½úþWŸÉa¤N¦l2šäŽ×K»f@8™—:E˜²�(žçóŽÐ-xþ Ï6êº7»f hx†ïÍ\ºOP yØU—|úš3V[3é&<‹>¤R”£SŸˆâ˜;®Þ„á{|¿+iö¬A%dÝœ§>äžíÊùô'Îäðz©# [ð|º»f hx†ï- *!»ôVúdtF}àÓo?3®‹[œÚZ°¸ÅiV3©„L$éZa±W_úô/œ©@­¢ ]Ó×W©ù gÔÓŸ;S�>=2Q…|ûõ•Oÿù™l\§¬­µ)›ÕL:ªúôží»¡k&ö#ž'«Ãt®Y¦óu“vª¿þ´¹=ѲYªÀjk&ª<Í¥F¨¹TBî—êäkÏn·ÚšIYMËj�äTAVÕBT‘Õ´Z¨þöµßÚ^Bž3©„¼wƒ*èM�\T‘£S¶Å“ÜA}Ho»ò_{l{Ã]Ì䣽·<¸ñ:T!_u@=õZÚ^�ÕaùÈÅå(Ö˜|ºX2509ª�¯: nzm°=G¦l)Š'¹#.‚zZ°¸ÅÕo¾ÖÛÞK´"`ÙìX—Š€%Swg³|ݤrGWýñkÇ·WP¬;ÖKøt°î˜ÎùÀä¨BÎtÕ}¿Ïö zš‹Sè%š‹*ä·¶ƒN£„<æR/Õ†;YÏO£ÞØÆúR´Ái>‡hû ÔšS /óžmÔ�M$Æ”‘§—8½T}ú÷ß¼½„ô\ªÀê°U>rq9Š€õ&Ÿ.–L LŽ*JÈc.õ!ï= úý§¶W`uع¸EÀzÉÀäÓEÀ’©�ÉQE¡Û¨7< º‡ŽÑ¬/ *!=wžraÊ–¢x’;Ô‡¼÷€ZÿýóÛsaÊb7Š[Ü©§ŽHŒ)#ÎðG¬—pG@8½ÔñS*!�¹êà›ÛÞ«i½d¬7V¬Ë)Ñz UЛ­¢ ù’íjífÀ²�fbA8êú§Ô� &ÍE²u@}ú©ù w1“Oï½ýšäC¨B^}@ªu@׊€Å[œ*ЙΧMT!Õu×SW¨@ŸÞ@9DÛoÔ!œ^ÊtN:Ó¹æRòºê·Ÿbrˆ&„ÓK™ÎIg:×t¦óuSýÝS×(!ë&õ!ŸÝ®6põ]+6pš´‰`]§º#0á'Á² >ä³ÛÕw~Ð9�CSÍÀTA°^2Ö»{cÐåÓEÀ’©1Ëf‹| ³IÎQ…œ= Þóƒð@Ñö7Ö Ô}ß6Ø>ìš+ôíeA%äa—ú�Wlªã?˜=P�Õa|䢊L+6É©ùâê«?xòÀM(¶Èч|à@$9ÉÝ"ùôõ±

ÝEòÅT÷‘§dÚ"UP$23êr>ÝEòÅÔÞGŽèC†Ôu�¼ø@ ùÎUʶiõ!Ï/¨C�Ü{ ‚á.fòÑÞÛ¯I®Dò Ô=�¼ê@Ã]Ì䣽·_“¼UÈñ êÊGÞpÀÖ\ª`¸‹™|´÷–ÛçQ…­™ê£�¼è@Ž"LÙROrG¤€ ò˜K™æRÃ]Ì䣽J©ó¨BÞvRýñ#/;PBs)‡hû X†ËïéZ°I¾nª}ùõ9†;™�FúØÁ�ä”C\]7ìË`ûõl��„šûËw¨ÀÖLTQ³:¬ËG..Çp3ùhïí×$â8…á.fòé½óuñKc–ͺUÌçm¿�À°�̆]o†Ö²PßÿKí@ 9¶ƒ*ÈRmx„Å[UÈ}'Uþ—¿t ‡HŒæ”ÝžTB¾ß¥>äøõÓ¿Üw2‡˜¨7× Û‚JÈ÷»TBs©[sQ…'Õö+äÉëµ"`­±„S¡Û7Z°ëÍ04‚eA%äû]Ê1/Ú~V£Ó1êÎõŽ}ݳ-Í^sŠ]±t2«iYmýz*!Ï™TAV›6Q…\• Ó�Þõî+ÄÉCZ0},›‹¯c½d¬709§žæR¡Û7Z˜óëv Â9äˆ ? „:zEtr"Ð&‚Á!ª@×\\Žá.fòÑÞÛ¯IΣŠòœI}ȱ“ê×®øäÉ ôé‘‹*ä 'Õôï:�$�e× o® ÊjZ-Tw½ùÙí=Í¥ò°K%ä9“raÊ–¢x’;B]óæ�nÏQ„)‹Ý(nqgx3‹/rêC¾ê€úó7¿d{EÀzÉXoÐåÚ¨X25fÙl‘t6É9ª(!�¹Ô‡¼bS½û{/Ýž£S›‘Ë�zꈎpüÔúDÍŽ œzêˆL8~ꈦeïC8õÔ†püÔSÍÀ ˆy§S›‘ËëÖÔ±nMëÖÔQ¯ýÞáí%äØõüï½ûnèÛ4û±H w2ÑÉŒéÛ"“kYŠ*ä/nW¿õ½olßI9Š0eq7r¹#ìšáôRG@·àù6š½†e‚JHÏUïøÞ/n¿ ú6ô!Om�äãû"Ù9ÉÇ÷EòŠMõÍNmÏ!:úDÍTA°^2Ö»»;èòé"`ÉÔ˜e³E>ÐÙç¨B.lª¿}`ûfÑöèé–e333‚ú�WlªëXØ Ö4“*°:Ìä#UkZW}ù�ÉM]+–L�Y6[äww:3ùX°ÆEÀ‚µ1–L�Y6sùÝÝ�ÎLιº÷læm¿�À‡ptG„¾îÙ‚f¯9a@¨·>ðÄf¯¦õjë:UЫ�\T!¯ØTÿÀ}›ô¦Gq §P¬—ðé"`ݱdŠ£ YÛTÏÿàe›»¡ëš‰ýhQÙ Óu>=rQÅNÐi¬¬hEÀZœ*ÈVØÊ Ÿ¹¨B^¶‰y:�Òs)‡°kÝн õæ„ïa®¦[¡Q·`× d~oM÷š¶î{$¨„<ìÒ|‘ù=‚pVVÝ‚p²5¶²Â)[a++\ËÖØÊ §²nª»>XÛÌ!ffft�n3‚JÈîúïÖ7KHÏ¥E˜²¥(žäŽ„S„)‹Ý(6¹3¼™Å'Cë%c½±xžŒqÍнü‹›9DÛo`¢©{Žáã¡Q× /3úºg[‚JÈs&•�ã.•�‡]UyùÛ4<ÍDòå› Ó(!�¹TÁp3ùhïí×$Bòå› ÓÈç!Ú~Ý Ð„pz)‹OpÒY|‚k:‹Oð�I%äa—JȺ©¾òò—o–�Ç\*!ßµJ}È{¨s/¿b³‚Þô(nárë%|ºX2Åq9žæ¢ ¹Ÿš~ù‡7ƒ5Í$]+Öë%œ*°:l‘�\T¡kúz2¥øgŽnV OK¦Æ,›-ò�ÎZœW‘Cè6zºeÁÌÌŒ Òs©ùÒíŠ>sóf O3Q…|hS­|�­°•>=rQ…´O΃N#[a++\ËÖØÊ §¢í7�ù½°nÔ /€]3Ð3,«9aÌ*!»4ŸCd~oM÷š¶î{ð½5£ᬬ8ºád+le…Sò†“ê _z×ÉòÑUêCÞpR½ãK÷ŸÌ!ìš�¹ºnëÞt úÚšQ×­ÚŒ ò°«¾ð¥N–�u“JÈs&õ!½ jé¶ÛNö4—*îb&íUJ�Grì¤jÞöèÉ¢í7PkNèø /@vÝhZ�º�¬fXö²Pï¾íRu2‡¸ºnØ—ÁöᇆÝ&á¼-nquçm·œ¬ÀÖLTQ�Õa]>rq9†»˜ÉG{o¿&ùªÈ!Ú~�a™ »Þ -᨟¿í'KȱTA–N�†GX¼ÅQE¡Ox~Ý€n êCŽ_PÿzÛ]'s?4<è¶  lÍEòš“jòCo9YBz.åYͰlãa↵,H׊€Åóc §¬¦eµu]Í}èÕ'sˆ¶ß€ÕètŒ:„£;"ôu϶4{Í CP yΤ ²Ú´‰*äª�Ƽô.¨~èš“%¤ç’® �36ÜÅL>vö�›cɵÝ�ÉÇXw̘œ«�è'+îb&í}øá‡Ï£ŠB÷,=0^óš×À÷’62mÎX³fff•�žK}Hï‚:yåÛOæºgé��fÝŽîˆ ? êFfXË‚&m"èTBž3©‚á.fòÑ^¥ÔyT1/Ç/¨Õ+ád¦™TBv©„ \^9vR׊€Åóœrˆ¶ß€ehB8½”éœiEÀ’�ÉEÀ’�É×MuüÊ??™C\]7ìË`ûõlº�FH‚JȱTA–jÃ#,Þâ¨BšÔ×®Üs!‡HŒæ”ÝTA¦™¨B@§!Ç/¨?»Ò¼P�>=2q öôÈD’.¨k¯<{!‡Ðí-4Qó-[O |[8‡kίË‚JÈÃ.éZ°Cc“\Ýúºo]È!Ú~V£Ó1êŽî„¾îÙ‚f¯9a*!»”Õ´¬¶®S yÎTúëŽ]¨ «M›¨B®JÐiHï‚úÑëèB¡Û7Zhû�ºµ,Hg:×t¦ó�IèÓ¨¢„ô\Ê!tûF M|[8‡œ^ÊtN:Ó¹vH}üuÁ…²nR™fâr w1“�ö*¥Î£ŠÒs©9vR}áuÞ…E˜²¥(^äŽ ¨„¼wƒ*èM�\T‘£S¶Å“ÜA}È{¶«×œ¿ÐÓ\ÊQ„)[ŠâEî‚ƵlœÚZÖ¦Y-›]7©„L¤ª�¿çÂ!­°X�“®K¶q*!�¹êÝçß|¡}´Š*tM__¥>ä›/¨Gæôf=-n¡ yå>õÅÏ|d³‚žǨBÎìSÏûÌ 7+îb&ŸÞ{˃¯C2ݧîüÌC›ºV,Xë�õ’»]>(¬�õÆzÉÝ‹ƒ._7ÕÏ}æÜfútwLg]Ž*tmxœéwwùÀ�†®éë:ërõ ŸyÛf¡Û|ÂptG ôu϶4{Í B]rÃïnf5-«­ëTBž3©‚¬6m¢ ¹*»á�›4<ÍÅ) w1“�öÞòàÆëP…ܱO}æ†ÁfÃgØ\ʵÑ$ªÈ!Ú~‰o°kzÍ =Ü_–—Í¥šTBvi¾„|¡I}È—nW»oøÂf½éøª�«ûÔOo8¹/‡Ðmõ¦îYh"1¦ŒdyY�1® �3cüî.§ ’)ÍDƸ¶nªê ;ö•�ã.•�žK}È—nWÿvÃê¾¢í7n¬›õfÒž5‚åeá¼-nq*!=—ú�Wlª™ï§ûæzÚëqÊ!t ˰ Û„3—²¹wIJ `MëRò¡MÕùþ̾ †»˜ÉG{oypãu¨B>´©~åûßÙ—Cè6²¦e[h �$Y^êÇß_ÛWA°^20ùt°îX2ÅQE¡Û|Ãòn´1ç×W–—•�žK}È—nWoø~²/‡hû�§ ¬†ÛHŒÐ¯ÛF°¼,Ôåߟڗ�kEÀ⧬­‹[œ²Y-›ë%“Š€õ’�É×{Éz—zš«.yÞ»÷U�ÍN›¨"›ÕLµ÷y¯ÝWA6;НCÙ¬_§n|Þóöõ!÷lWß}Þ•û*îb&í½åÁ�ס ùЦºÿy»öåvÍ@PoNøÖêFÓ®:zÝX^TBvÕo>ï™}ºV,n�õNè,^à#UÈ;÷�N£‚"`ñüX/áÓEÀ’©1Ëf‹| ³IÎ1_…|å>ÐiÈçö©“ï½sŸ® �3ýîx~°W)už“Îâ®é,^àë&Íçm¿QG¯9¡gHš^f`Å0B vÍ@PoNøšsͶPgßû‚}%dݤÒs©ùÜ>Uï+÷åm¿�°Y·õf’´øÁ„Ýž¤kÃãL¿»;Ø«”:Ï©„ô\õå÷>·/‡hû ¬5ê:~ÂÑúºg[𽿄1#¨„|¿K}ÈßÝT7½÷ñ}�fRrª«^ôÞýûr»f@8½Ô°ëºaÁöaÙF3�å÷ »¦{Ë‚JÈîzÇ{gßn蚉ýˆ·¨�é|d¢ yí>õKïýë};©‚‰`zä¢ yí>=õ{ûrˆ¶ß@­9eÀóíšîM f`®éÙl–m4“eA}Èg·«w>uí¾¢&Î?u¡‚C£UTqH;´¾J}ȧ.¨þùó*Èf5UÒ\õ•ó�]¨ ›Õâëp9tmUèZK½ïüó/TpH[Dòôõgç_¡]sQ…ôÔèü³n‚Ž>ääžHÞ·'’/ßÉÓ{"ùÆ=‘|÷%‘ü½K"ùä|$=¡¶~øÑ 9Œ”vC×LìG¹Üm¿qã”�Žßð4Q÷›�¥ìæ”Q÷дÁĸˆD[ð¡žþáK/ävÍh#kZ5´ýF~2Æ5c|0�=¡Ùƒ‰€&ÍUƒ¾PBŽ»TBÚ«TBs)«iµ�2K³”£SËh‰;¢í7PkN!ÇC<ñDzñR7‚îÁ®X1&„cO¨t÷û/ä(”Åq´ÄÑö°Bà `× xúDÍTBÖM*!Ï™jb÷7.ä(”Å;¢%ß@Ç0¬¶mÔg„zl÷/^ÈQ„)‹Íh‰;"¬–…«ë†}luÃnÔ=Ø>‚†7aø^„« +» ¶Ëöë†P?Û}êB–jÇSfrª KµáoqT!ö€N£‚,Õ +E²¶¥>±{ûžâ»—žTBz.õ!ñ‚Úܹ°'‡¨¯1<Û¨ *!»”ÃH©„¬›”Íj&õ!÷lW«;'÷T�Íj&ª8¤-Ròôõ¿;±§„<æRŽ"LÙROrGÉ”pŠ0e±¹Üm¿�Ža$¨Í©6:~MôüžáÙ3B}fç{²Y-›]7©¹g»Ú¹ó¾=d³Z|ª�“{Ôs;/ÛSBs)G¦l)Š'¹#BÝN¦,6#—;¢í7`šu{F¨é�µ=X6ÉG.ªÈ!Ú~ͺ�š?eÔuoÍ5Ê@¡n êC~q�Zþp}OEÀâÖX6ËGEÀ’)>V̲Ù"çƒ"`:›äUȇ÷¨cþâžÀÓLêCŽ/¨7øá=%äa—rˆ¶ß@§™$нååeA‰–ÍR ù~—JÈo¸”ÍjÙìÀ¤>äžíêô‡_¾§„<æRŽ"LÙROrGØ¡-œ"LYìF.§ ¬›ä#UHoAþð{rˆÙf¸¼Œ¶ß¸qÊÀšax°�Äýºm333‚JH{UÉãÞ“�kEÀ⧬­‹[œ²Y-›K¦&_/–L LNd³Ó&ªÈf5S‰ãG÷T�ÍŽâëPE6«ÅשèøÍ{ú�{¶+ïøé=%ä1—*8¤-¢ŠE˜²¥(žäŽø¡^{ü#{*еET‘£S¶Å“Ü_êÎã/ÜSBs)‡hû ÔšS:~à ÐDòé½·_“|UÈN¨Ë?ûÉ‹çDzY>],™³lfrŽ*ä¡êâ¥ê�'rˆ¶ß@à{7Úhx�Q·ì¦À®½™™áPò]'Tv©:t¢‚á.fòé½J©ó¨¢„|t•ú�ï:¡>s©²OäMôÚ–mÔu¿a¡×œÐ3LÔõÐBÛoÌÌÌ*!Ÿ0Õ/Uï:QBz.õ!½õùKÕý'rÏ·kº7�Z3 Ïš¹ô€p¨ù®êß/U7œÈ!ìš�`®YŸ2<¬èÞê†Ý¨{Öòò² Òs©„$Wmæ·�ÈQ„)[ŠâI€ žŸ ^¢µÆ²YjxšK}È{¶«µüÑ%ä1—raÊ–¢x’;b*±…S„)‹ÍÈåŽhû X†�&Æ�º?Ž©f#±g„z ¿T�È!®®öe°}Øõ6ìš�Ìï­é^ÓÖ}oFP 9¶CUò[NT�¥Úð‹·8ª�¯8: yÏ‚úXþŠ%ä1—r¬¥‡ÈüÞšî5mÝ÷„“ÝÊLe·².�²[Y‹«ÿÊï:±º®™Ø�¡‚l�é:Ÿe·2]ç¨B  ÓØ©v<ó–%ä1—r»f`ªÙHlXsº7aÁ offF(öÌ«OT0ÜÅL>ÚûðßGò®UµòÌ5'*îb&ŸÞ«Ô;Ïã†Ï°¹”k“¨Bþ uÛ3Ÿ8QBz.åMd5E÷&Ðñ'`xSF⇆…¶ß˜TBvÕo<óö9DÛo`¢i…èøu¬Õ�¦]›TBz.ãš1~w—JÈq—ú�ÇÔ¿<ó 'JÈÃ.éºVl‘ÓMÐuô!ÇNDrÏB$Í…Hž]Pé�ÆN¬¬hÃãl¯ ³|,›c{•RçÃ]ÌäœSÑö¨5§ tü† ‰9£™Ø5øLøI°,Ôôç'JHÏ¥B·o´0ç×턳²âè&ü$˜4hÁ`e…ú�ÇÔW´g!‡hû ÔšSšÙõ ½nN=ušè5'ô IÓËŒeáø)é,^àšÎâ>0©ylA½ñGæBÑö¨5§ tü†  «™Õ�VV÷“~†g×ÛË‚toqMgñ˜Ô‡<¶ VŸvá�·h7t]s±“T�e3]çÓ‡¡ŠC‡4ËfºÎieEÓue=ÿ[ ;ɲÙÊ ×b“rˆ¶ß¨C8Ã�ÌJ£ÖØÊÊÀŒZÜÐ-X�°nôŒe¡}þ±…Òsi7t]3±-ÊÖ˜®s­Ø"§l…é:×\ÚI%dÝTGžO %ä9“ú�Þ‚ú÷ç %ä1—rˆ¦#12»®g°j~¶Ëð m¿�ºa$º7±,¨„<ìRòŠ=êîç{ ¦×³FҬò›z}®ÙŽ„Úü¡=ÒQE1áëÞ¡p¨j&U k‹¨"‡@Ó 5:~nOº¶ˆ*rˆ _÷&øsžp(ð4S}÷Ñ·íÉ!fUpH[ÄåÈf5U”�‡]Ê!Ú~–a  áÔSG$úDÍŽŸ:Í5ʘN–¤TBv•þèïîéCŽ/¨]�¾qO yÌ¥E˜²¥(žäŽh&¶pŠ0e±¹Üm¿�Žßð4Qó“6š‰mÔ…:üè`Oquݰ/ƒícί[5=TBŽí  ²TañGræÐiT0ÜÅL>Ú{û5É•¨BÞ³ N|ù {rˆ°9Ñô`×›VmyYP yØ¥ Š€ÅócÙ,K¦Æ,›u9Grõ5ñå“—èZ°îX6Ë)³´ÌZש‚ÌšvQ…ÕÐ¬Æ ³(³4—*°Ó.ª°š«nûòŽKJÈc.åm¿�Ä· Gw„I‚†§ÛÖŒ òœI}HoAÝõåÕKraÊ–¢x’;â" ¨§‹[œJÈ]ª ái.ª�«—¨s_N/)!=—z‰Vl‘�e³Ô‡¼g»Ò¾äö¨îZ»d"Ð&‚õŒ*È¦ã«ÆX25(6Ü}ö�›œ£ ù…= ÓÈ!ìZÓ[±Ðñë°kßkÚºï *!Ï™ê±]É% w1“Ogw³‰`�qT!½õŽ]S—èZ°Å±lv,»›MƒŒLN9DÛo nd†>e@8º#`…F’ áé¶%ÈjhVc SfiVƒJÈs&•�Ç\êCz Šõß}I yÌ¥E˜²¥(žäŽèx¶pŠ0e±¹Üm¿�ZsÊ@Çoxšèø ÏnêžP?è¿ö’L+6É)‡˜Óíê ÏÓ½ g¸“‰¹šnuÃð²ÄhÖëF¬%ÍlEDÙØäúb4É�¹¦mÔ…ú£þó.É!®®öe°}uÝ[�å÷ •�c;¨‚,Õ†GX¼ÅQ…Üu‰úXÿÊKJÈc.õ!ïYPÿÑßuI yÌ¥ †»˜ÉGæz6¶÷–7®Dò•—¨=�=sIÑöèF‚5ö�º ò°KºV¬5–Íruõcw^’C´ýjF3ŽîˆÐ×=Û”Õ´¬6Щ‚¬6ª…¨"«iµPÕ{Á%%ä9“JHÏ¥>¤· ÞüØ+/©`¸‹™|´÷–7®ËP…ü�KÔç{î’B·o´úºå{ËË‚t­Xk,›å”C´ýß2„£;"ôu϶„zü±Ç/ÉjZV[×9Š0eKQ<É@POs©„<æª=7�/äoº ¡rl‡Ú{Ó= d©&ªÈRMü�PúMo^Ø�l›fb?â-ª`¸“ͦQ¶-2¹–¥¨Bž_�ÆNõû7=µ�C¼éMž/Ú ]3±gÇÎÐNêCz êÞ›Î/Ü„lú��-DòÙ…H¾t!’ßXˆäö­HÝŠäÉÚV$oÞŠä¹­H¾q+’ØŠä}[ª¸é±… ¬Ûà#UÈ×/€N£‚¢²duQ…|jA�ºéù ��%Û¸ÖE%äÂUà‡š‹*äö-Õ:òú…ÂóëvMPÖÖ²öºI}È=ÛUóȳ X¶ÁG.ª�/Y�FE#d!ëF&ç£.ª�O-¨×ùèBE#d!ëF&çZU”� [T�j.ª�Û·Ô£G^²�CX~î ÊÚZ֘ԇܳ]ýú‘—.T`uع¨B¾tI‡%Ûø¨‹*äS êmG/TP$–lãZU”� [T�j.ª�Û·ÔèÈûrˆ9òeãZ6¾nRrÏvuöW¿±P�Õa|ä¢ yjtI‡…ÌŒºœ�º¨B>µ Œ_ýÅ… ФÃBfF]ε.ª(!¶¨?Ô\T!·o©wÿê©…ÂhZ¶ l\ËÆ&õ!÷lW»~uûVaÙͶpŠ0eKQ<É@�ÕÖ\êCîÙ®~þW¶*(–Íòé"`ݱdj ³øÄóc:‹·8G9„]3ø~~hx– ?ÔL:ª~éW'·r»f ðý:êF¯©{¬ZÃTBv©„¼wƒüPsé¨Z¸[4Â鑉*äö-ußÍOlå�P8”ÍjÙìºId³š‹*äG/€NCîÙ®:7ß·UAàM�LT!·o©{n¾l+‡ü9O8”ÍjÙìÀ¤>äžíê±›k[9ŒÔ–í× Çë¥ô"x½”>á‹ÈŒ¼^ª^qs}k7tÍÅ~LR~ÑŒ,›éœvª¾ù‹[ùE3J¦œ‰À±'cÜÉjN-t²q'k;Ù¬c5œÌr2/UÛ|xk7tÍÄ~Äó”_4#«ÃtN;i7tÍÄ~Ä[”_4#�éœv*çÁ—o톮™Ø�xžò‹fÔé1�;�„éÜéÔ˜Î�Î8Ó¹Ói3�;�Y¦sÚ©îðŠ­ÝÐ5ûÑ¢ü¢ekLçN¶ÂtN;)¿hFÁ¸´�`V½àÁoåÍhÜwÚ¾3ë;sÇè­”CX¶_7‚Ad©&®¨â1x��Æ| yØU¿ýàÑ­¢n¼&L|[8FJ%ä~I%dݤ>ä·¶«|ðæ­ò˜K9DÃ2`eu?IàwP7¬¬aª@g©„Š[8…l|ÚDÙ¸V,nqõÌÓWÏgm-kŠ€e|P,ãëÙº©Þ÷tg¾‚¬=Š[8…¬=m¢Š¬­‹[\UŸçs©S„)ÛˆrG´ý:‰ß´…{zv>Çá8æŽÐ=Xa33fff•�u“ú�{¶«o–OΗ�Ç\ÊQ„)[ŠâIî»VN¦,6#—;Ê(˜Ï!Ú~–a ‰CÆœ‘¼Æð²zò�v­î{ÆŒPW”�Ìç��¶ßÀ\Ó³aûN=uD(?uD½ Ëï8d̉A¨�•»çsÔSGXÂñSGè6΋à×!œzꈺpüÔF3€]3Poèža}¡rl‡úçòéù ²tz$B�*äæÕåå‘ù"¬·•�žK w1“Oï½ýšäC¨BÞpBÅG_<_Áp3ùh¯Rê<ª�÷ŸP�£÷ÎçvÍh#ôCèží£í7꘨FÐF­éÖò² ]+vvìÌX6ËÕ�¾j>‡°kFͺ�9¿n× Ý~š´‰` S yΤÒs©é-¨›Ž¾a¾‚,� K  ¹tBýìè‹æsK·•�žK w1“Oï½ýšäC¨BÞpBG_6_Áp3ùhï-nœGòþêŽ~}¾‚á.fòÑÞÛ¯I^‡*ä{”øì;æsˆ&¿`Â÷&`ù /°–…C%¤çRÃ]ÌäÓ{oypã<ª�ûN¨7}V›7Æ5cüî.U�Li&ª0ƵuSõ>ûKó%ä¸K}HoAýåg÷�¨ ™e³¨"‡ð|»¦{¨5ÃÐ𬙙áPò]'ÔMŸ•'Œqíì7Ǻ×&STBŽ»Ô‡ôÔ×>»t¢‚,�‰º@òžõ’ÏŠ9DÝh‚JHÏUoûlt¢‚á.f'|ÚDò…[ê5·œÞÒÙ×t¶Á×MÊ!®¾ôÀl3 ÃååË.»LP ùö3TBÚ«êÐ-Ùš´"`ÁÝɧòœI}È=ÛÕ·¼p+‡hû ¾w£�ZsÊ€ïB}é–‡¶JÈs&•�žK}HoAýÁ-ç¶rˆ ®{+¨ÍD÷&ú¶î{‚*ÐÙ*Ÿ6Q…|á–ú×[Þ¶¥³U®él•¯›TBÖMÊjZVk�%S|P¬;–Lqª «�j!ªÈjZ-T›ŸûÝ­¢í7Ð1Œk†muA}ȇ¶Ô­Ÿ{ãVÔuo–]7¼ »†Ð·ußT�Îây>m¢ ùÂ-¥n°U�Õa&ŸvQ…Õa&×\µës_ز:ÌäšÕa&Äóƒ"`q‹SaÙuÛ°kè$þœ»V÷5´ýFk~ÐêŸ;)uÏsMgñ<_7©„¬›Ô‡|hK½ês;d ¹Ô‡œêªÿüܪìt4—JÈÃ.åm¿�@7‚Âñz©#–—•�ž«®ý\*+°:,žç#UÈßYROÜ9#s©S„);MrG4=ß®u‡*H¦¦QEáù6,ÂQÁ�ß‘9DOŸ¨Ùm4ƒ)óu£.Ô£w®ÉE˜²�(޹#ÖtÛ°`×  ËÎZJ9†GØ$ �°.§Áë¥ô8Dà"ª«WÞ™Èëµñ±qÐkûƒÙ±YÀÆã>cíAÛçclv0ësõ;wNɚƮ_g×s>6wŒ*(,Vã£UTQÓj¸ñP�ÝùnYÁ¸fâƵøOQEM«áâÿøµ²‚¶fâÚZü§¨¢¦Õp -µøãçÉ£êâ�¯”ÌMwQÅQÕþñ.ZZ²m`R ù¸¤E˜²ññ¨ÝæN=u†7³8掟Rs£.ª8ªÊ?#CKK¶ &©„|\Òn蚉ý8H9Š0eããQ»Í�ÄKÚ �ŽªÏýøNYÁÜtUU¯þñ dhiÉ6*!—”£S6>µÛÜ©§N¤ŽŸªÃ?~¥¬`nÔEGÕ?þø9yý6­K¡¥ÅáØõÛÉ6*!—”£S6>µÛÜ™Jé¨:ûúÇåø¸6<ÎBëî8äÔnk¡µ‡cããtT5^¿_ÎjÙ,íÆõ×i.ö£Em-k®¿nݤݸþVÍÅ~´h\ËÆ×ߺnR ™HuÿëG†ìúë¢ëoåZ�vÒNõÕ×ÿµÌ1<Ââ«8¬[SÚ ]s±ñ"å(”é‘ËëÖ”vB§ùE˜27r¹ºýõ¿'+(! ™™œ�LœB‘tXÈÜÈä|d¢ ©bõ ¯¿V&Û4—æ´¢²�¹‘Ë9•�WJÕú5WP4B23r9™8KPVÓ²Úz ø×~Ñ­ «�\TQBž3é¨úÓ¯�rû�«RY_ÛnêZ°³cgƲYN9DÛoàPò!uÛ×Ì †»˜ÉG{•RçQE‘ø–-Òµu�ú�0ÕÓ_›4sˆ‰¦î�pÔ[¿3ÇðQ¦sGã¡Q× /3úºg[Â!c\3Æ5�JÈq—JÈs&Uÿúµ'L]+v�¯›TÁp3ùh¯Rê<ª�—™JÜ{Ÿ™C´ýFÂîdVéc­�µ¸#0á¡pȲ™Î5Ëf:˜Ô‡¬™êS÷^fæm¿Q‡p†;™•FúXk`F-îLø†…ÀŸó„C–Ít®Y6Óùº©¾toÍÌ!°ÖÆ­ÂÉ’”JÈÃ.•�u“Žª�Þ[7saÊÜ(¾•;Ã2¯—FñA}Èß5Õsy›™£ž:E˜²xG49¦o[ŸäÎp' Ã4Ò·�-®·¢Eîø©zü#¿kî$][Qƒ�¼ÑÌQ„)ëFñ;¹#j¡p†ÇYVãŽøá �³ZÈ�á/q…?˜9Š0e­(~'w„ÕÎð8Ë,îˆ?Îð8³ÜañW×ÿÑÌE˜²Å(þ'îPŽ?†¸x©ÁŽ1®û£“ÝE˜²É(þ'îPŽ?†°Ò‹—îˆ0g" ò˜KGÕ«ÿhG·ái.UÐÓZ8…ž¶�SèiñN¶i.ÍiEÒa!s#—s*!ï”jå×ZqE#d!3#“ó‘‰*äu±úЯ]'Û´8¦9­h„,dndrN%ä•’æ´"é°�¹‘É9•�wJõ¹_cq²M‹¯¢9­H:,dnÔåœJÈ;¥ú¹_».® h„,dfdr>2q EÒa!s£.ç#UÈN¬þï׮ޓmZ|ÍiE#d!s£.çTB^)ÕÖ‹;qEÒa!3£.ç#§P4B23êr>2Q…œ�Õ·_ÆÉ6-~ ÍiEÒa!s£çTBÞ)•ñâÙ¸‚"é°�™Q—ó‘‰*ä#±zÝ‹ŸŒ“mÚÙ»ÎМV4B23êrN%ä•’’mÚÙ��¡9­H:,dfÔâœJÈ;¥zý‹ˆ“mÚÙË6iN+! Y7êrN%ä•R½èÅ�Ä��…¬™œ�LœB‘tXȺQ—ó‘‰*äÓ±úûmÚÙýûhN+! Y+êrN%ä•R¹_y:® H:,dfÔå|dâŠFÈBÖ�ºœ�LT!_«c_9'Û´³½MšÓФÃBÖ�ZœS y§T‡¾ò⸂¢²�u#“ó‘‰*äbõé¯Ü'Û´³—mÒœV$²nÔåœJÈ;¥úêW^'Û´³ßGsZÑYÈZ‘É9•�WJJ¶igÿd“æ´"é°�u#“s*!ï”êö¯¼!® h„,dÝÈä|dâФÃBÖ�LÎG&ª�/‹Õï}åEq²M;ûÊ}4§��…¬¹œS y¥T“§_WP$2329™8…¢²�u#—ó‘‰*ä;bõ7§¿'Û´³Ø¤9­H:,dÝÈåœJÈ;¥òO¿#® H:,dfdr>2Q…Ü·C=pZ‹“mÚYlÒœV4B²närN%ä•R}åô/ÅÉ6íì¥ê ÍiEÒa!3#—s*!ï”4§��…ÌŒ\Ω„¼Rª·�Þ·#Ù¦�ýµ34§I‡…ÌŒLΩ„¼SÒœV4B2329§òJ©äWåŽd›vö®34§I‡…ÌŒºœS y§¤d›vöO6iN+! Y729§òJ©œ¯.íÈQ„)ÛˆâƒÜéy)%Û´�™‘É©«ÃZ|ZsQÅQeU쨠°XÈÜÈå\sQ…<´C]ùÕhGE#d!3#—óé..G‘tXÈÌÈä|º‹*ä;w¨g¿úÉ��…ÌŒLÎG&N¡H:,dndr>2Q…<´C½ä«ïÜ‘£SÖ�–¸#>õËB­õÐŽ ‹…Ì�LΧG..GÑYÈÌÈä|º‹*raʺQ<Éñ©_jáöŽ ‹…Ì�ºœk.ª�·íPŸ|Å»vTP4BX¼ÅQE ¸Ô‡¼g»úÔ]I7G¦ì`ï厀 2p©ùªêùwMusˆ¬iÙ‚vC×5ûq6:C;©„<æRa…F’ 1¦ŒD8TBŽíPï»ëÝÝL>Ÿe)§E˜²ØŒâ-îd©ú«»^Û­ ¹¸Ù´6<Î’©»[|`ârdÓK¨Bî꪿¿ëyÝ 2ÍE’µÔU¿~e7‡hû ¾w£ +4’v­icÎH’�Þ›ÓíeA%¤çR’µÔø¯ïêV��2 Uäm¿�À÷n´QkN0<¿1QƒI‚†§ÛÖŒ >äU-uäןéæVh$ ÃÕoº ¶�D·lN¡rlU�¥Úð‹·8N!K5!P…¼ª¥~öëwvKÈ]ª K§Å­§�¥#ñI�*²Toê¿þ‚nYª‰7 TQBs©ù\Wý⯿²›YZf­gTBž3©ù{]õ…_®»ºfb?ZÊyåãݺ3ü!³R¦ޱlÝä<Š[Ü9opG´œá™•2}ÐcÙºÉyw9íT¯}åþnÖ ËBÓkcÅhÃö‘ùž­{ cFP 9¶ƒJÈÀUG_ù;Ý ²tZÜ*p Y:Ÿ¨¢„<æRò™®ºù•ÝíC¾²«ÞúÊßëZÚðù,K9Ý„ }ÈN+’Ñb$?±ÉÇ&#ùðÁH>·¤~é•×v{5­W[×)‡ÐmX�NǨ[ÂÑQÓm„¾îÙ–  zµ‘‹*äU-µï}ªÕ‡¼oS}ë}ó­ÂómèzFbË‚JHÏ¥>ä›Ê{_«•C´ý5,sMË64‘ù½µ¦ +4’dY¨ßßU­Òs©‚@3Q…¼btÒ[P»ßÇZš‰*äK·ƒNCz ê™÷]×*!=—ú�¯: ~ú¾«[9Dà Œf€fÝ@3©Í �Àh3‚ú�WµÔß½¯Óº ú�a+’O¶"yo+’/jEò­HŠEõ?ï [9¬”™œJHÏ¥ ÍE²ÕR7~t¶¥kÃã¬XlòÁp3ù³lfò±dŠ_»W)užSòÚ®2>úd+‡•².§Òs©‚@sQ…lµÔË?ú@«‚†§™¨"‡hx�Ñ øÞ�6¬Ä0ÂeA}È+6ÕG>úH«‚áqV,^ä|dÙÌä¨"‡°k„ÓKÝòn´a%†¶gõ!¯ØTÿðÑÝ­®N/ut Vb¡îMÊ!ºaY¸ºnØ—Áö±¢' ‡Jȱjþ7žnU�¥Ó£áoqTQB.õ!g(ñGZ w1“�öÞ~Mr%ª�÷mªµßxq+‡ÐmÌù+á² ò°K}È+6Õ•¿qo+2329ŸîârI‡…Ì�ºœOwQ…¼a‡z÷+îßQAÑYĘ̀ËùÈÄ)I‡…ÌŒºœ�LT!oÛ¡ÞûŠvä(”u£xwħ~Y¨�¼â¶ ™u9Ÿ¹¸EÒa!3£.çÓ]T‘£S¶ÅÛ¸#>õËBýÜ+ÝQAa±�u£.çš‹*ä];Ôè—ª��…¬u9ŸîârI‡…ÌŒºœOwQ…|ŵñù[vTP4B²ndr>2q EÒa!ëF]ÎG&ª�wíPòùWìÈQ„)‹¢xwħ~Y¨÷|þ® Y729Ÿ¹¸E#d!ëF&çÓ]T‘£S/Dñ$wħ~Y¨óŸËŽ ‹…¬¹œk.ª�oß¡îýü«wTP4B²när>ÝÅå(’ ™™œOwQ…üÄõ¶Ï_³£‚¢²�u#“ó‘‰S(’ Y729™¨B¾}‡ú¯ÏbGŽ"LY¼-qG|ê—…ú‹¼}G…ÅBfF.çÓ#—£H:,dfdr>ÝE9Š0eKÑwħ~Y¨m/ø…GÕŸ¼`lG–jB¨æ þ|ÇnŒoÓLìÇÙ¯ UÁ·‚ñmÚÙ¯@GÕ§^`ºYªý‹zà]·‚,ÕÄõUÈÚ–zÝ ÎºdéôHTqTízÁ·Ü�ߦÞð‚cînèÛ4û1I9Š0e±;зE.w¬[S‡vBßF9Š0e±¹œŽª·¿€ÜE˜²¥(žäŽ œ"LÙROr:ª~ñ�ÛÓŠ€mp:ªÔxn yØ¥ò˜KGÕꌻãÓg߸9Ö½6™B}ÈÇ\õÅ?¸Ç-!=—rˆ¶ßÀœáÙh„h"1¦ŒdY8”LiÉÔÀ¤CZ0Ëf.çƒ"`–Í9WGÿàÍnVÓ²ÚàÕB­QÆøèì7Ǻ×&S¨Â×ξqs¬{m2µnª{ÿà)7³´Ì$Sd54«1H¦¨„¬›ê�ÿà¼[Bz.åm¿�‰¦îA8‡QÓm„¾îÙ– òœIG•ö�¹$Sš‰ËaŒ�4UU'ž}¾[�1>Òξqs¬{-K¦ÖMŽ*ŽªÞ³¯wKHÏ¥¢í70á#ðç<4‘SF²,J¦´djݤCZ0Ëf.çƒ"`–Í9WïyöY7«iYmýÕB­®¢²nªç?ûQ·„ô\Ê!Ú~‰oÂ9䈚n#ôu϶f•�çLuï³/q+Èj#—#™¹¨â¨zîÙ—º%äa—ú�«R~ö°»‡mÓLìÇÙ—¤�tT}ãÙ÷»»qH3±gÇ·ÓN:ªZ_û†hEÀ’±IN9DÛoÀjt:F]8�#B_÷l'‡•²']+ÖK¦ø Xw,™â”C´ý:†‘`Ͱm£.(«iYm «g~ãU­ ²Ú¨¢Š¬¦ÕBuú7ÞÐ*!ϙԇ¼ª¥Þò/jYÚ"ÙZ‹šI%¤Ø¡~÷7^Ö*!�¹”ÃJ™Å©«Ãl>í¢ «Ãl®¹jû«¾Þ²:ÌæšÕa6kðÁ$•�çLêC^ÕRxÕ;Z9¬”Mr*!=—*4UÈVKÝú*­UAÃÓLT!÷-ª^õK­®N/ut ºg5ÛåMk†îM k&‰ áF3˜Ô‡¼ª¥N¿jßbÃ]ÌäÓ{o¿&¹m̲Y—öÞ~MrÛX2µ¾÷ök’ÛÆz ª�K‹ªx•\Ì!ìšáôRG Ñ-Ûð,Ìév �ÑìÀhÖ­A}È«ZêäO–{‰6<ÎX/¹»Ë{•Rç9åº�zó {èÍú² >d}Síý‰X´´ƒdk‹ÔÐâÔ‡|YK}÷'ÑâM°Ð‡üäb$oXŒäm‹‘¼T-Fò–ÅH^³¨~ù'Ÿ\Ìa¥l‰S é¹TA ¹¨B¶Zês?yçbÃ㌠w1“_Ûåcqk`ò‘e3“£Š®N/u?˜0¬eA}È«ZªøÉ¡Å®N/ut sÆÚš, Ê!®®öe°}¬èI2#*!Çv¨ßû‰½XA–N�†GX¼ÅQErö€Ú÷Âw-V0ÜÅL>Ú{û5É•¨BÞ·©f^xÿb yÌ¥B·±V÷W tꆱ¼,¨„ô\êC^±©ŒÞ°hidk“ÔÐâEêC¾¬¥>ðÂÛsX)[åTBz.Uh.ª�­–zä…�.êZ°x�ZÔ‡¼¶«.U/¼T-ZZ²l6ÉQEa× §—:uÃÒ-ÛBÛoÌêC^ÕRïþÍ·,ævÍ€pz©# [ÈjÍzÏfåW× û2Ø>Vô$™•�c;ÔkóÕ‹}H{QíüÍk--^ [3©¡kñ"õ!_ÖRŸÿÍO,Þ }È·/Frl1’æd$ÏNFò[“‘¼gR}â7ß¾˜ÃJY¼Å©„ \Ê!f/Ý×¼t_.// ª Ð\T![-5ö›¿°XBvI׊€K¦ø Ž©ymW]÷–±ÅVÊbÉI׊€-Ž%S|Plq,™â”C´ý:†‘`Ͱm£>#(«iYm`ªÎ[þ|±‚¬6ª…¨"«iµPM½eÏd yΤ>äUê–úò«ŸYÊ!Ö’f¶‚ÀhÚ5tü:ìšáôRõñWß¹TBz.U0ÜÅL>²lÖåc{o¿&¹ Uäº Ý‚Þë5÷Ö¿^²:,žçšK w1“�,›µøØÞÛ¯InCòÚ%õÐ[o)‡ÐmÌùõkyYPVÓj!•�çLêC^ÕRÿýÖk—rÝFà–w£�9¿¾¡×œ˜ðí×mÃZ^Ô‡\•jáqµ‘ÃJY¼Ì©„ô\ª Ð\T![->>¿±㚉ý˜¤Ýhh&öc•raÊ–¢x’;Ã�LÌ=qý»¾û­m鲈‘Éi'Ñ8•�ïwÕ�·6JHÏ¥ †»˜É§÷>üðÃçQ…¼oSÝõøU9Š0e±¹ÜvÍ€pz©#ø†åÝhÃ2Œ™™áaÊ–¢x’;⢠>äU-uûãl#‡•²Xp*!=—*4UÈù–ú—ǯÛ(!ë&•�öª:ósWoäW_z`¶./_véA%äÛÏPrÏvõ7?×ÙÈa¥,¾È©„ô\Ê!Ú~ÃH°fضQ_”Õ´ZH%ä9S}÷çÂ�>äU-õ¡Ÿ›ÝÈa¥,N9•�žK9DVMïØº7�^#±õ×d~â×�sÍ$A3 �fÝšªü¹'7*4UÈVK½òçØçRM¬ׇ‚vã�fb?6h7BÍÄ~,ª¯ÿÜ#saª w²p.�ÂÈ䔣S¶œܙ Sg.L�¹0U­—îÞÈQ„)Ûˆâ%îÌ…)íÆõZûáâŸ×MÊQ„)[�âÉÁõÜ™ SÚ‰ëÕ}/}z#G¦l#Š'¹3¦´atˆJHÏUï}é‘�E˜²¥(žäŽ œ"LÙFOrG@8=/u„S„)[�âIî\ºG¨Ÿ¼ôÅ9Š0e±™ÜvÍ€pz©# [˜ð=C8Y’:E˜²Ø�\î ofñßrêC^×RüÒ{7zžæÒn蚉ýˆç©‚N�é\sQ…«êß^úª� †»˜É§÷ÎÿÕÅ+PE§Çt®¹Ô‡«jïo½aã�Vl‘ÓM8„>ä‹6"ù²�H~}#’ïØPïü­mtƙεÎ8Óù`øa–�¯wÆ™Î9õ!åªúÀo½l£Óf:×:m¦óÁðÃ,k¯wÚLçœú�rU=ú[_ßèÌ2�k�-õ¼·˜“–Çdk-jhñÕTBŠÔ‡|YK=ý–³“–ï [;H -^¤>äËZêßò­ÉVÊb—S é¹TA ¹¨B¶ZêÞrl²‚"`=>*fÙÌäUävÍ€pz©# Ox~ݰÐö3‚JHÏ¥>ä›jù§4™CØ5Â饎€n¡f$Á² âêºa_ÛÇŠž$$*!Çv¨wþ4˜¬ K§GÃ#,Þ⨢„ \êCÎPã?õ&+îb&í½ýšäJT!ïÛT_úéød¡ÛX«û+:uÃXTBv©yŦºå§÷Læ°R›œJHÏ¥ ÍE²ÕRÏýôÍ“‹¯â£^Â,›™|�LqT!ÏOªoüô©É®N/uß°¼m¬‰nLË‚ú�Wlª…çÎOæº�5#Ñ�)ÃZž™™i6›õ‰ÚÌ¥ûõ!ïÛT3Ï=6y,ô!Ÿ?É_œŒäöƒ‘œ<ÉûFò²ƒª÷Üó'sX)‹»œJHÏ¥ ÍDr¾¥ÞóÜë'sˆ@¯™­û ‡JȱêGÏ=;¹ºfb?6¨‚áN&æÆ›Áw®»ï“"Ò#“kYŠ*äK&Õ]Ï}tr'åß½tŸ 2p©ùúIõÐs/™¬@-¢ ]Ó×Õáç^:Y�®M¢ yUKüÙáÉ ˜®™¸Y{drœÓµ..G{:¾Žã˜®µp9²ñ‘Éq L×q9²ñéø:Ž*ä7&Õ?ýìý“9„ï%mX¶ï°kFݘ™™Ô‡¼ª¥~ÿgߘÌQOñÄO ôýž¸tŸpü”n‚Ž>äë"ù’…H¾!’§Ôóö‹“9¬”Å-N9Ä\Í¿ô€U[^TA ¹¨B¶Zêm?;5™CØ5Â饎€na­Q÷tobF�® �³á.fò±xa,™Ä1§ò°K}Èk»jýgÛæ°R/r*!=—*4UÈVK]ò’…ƒºV¬WãƒdŠú�×v{ÉäÁVÊâIN%¤çR�æ¢ Ùj©_y V0ÜÅL>Ú{˃çQEa× §—:ºåÝh£Ùé™m3‚ú�WlªÝ/yâ`á{,Û÷ XvÓn33‚ú�÷mª[^rßAK‹’­-QC‹¯¢>äËZêý/¹ì`+eñ§Òs)‡t#BÛo`¢Þœj¿Æjd+º7�PŸX^TA ¹¨B¶Zê^R;XAÃÓLT!¯n©o~¬~°„<ìRÃ]Ì䣽·<¸ñºA/Û;ÿWo[O¦Æö^ª^ýÞ/¡ yߦ²?öŃ9„]3 œ^ê$ÍÆDÍBÓFÛoÔ±–4­°fôÚË‚JHÏ¥>ä›ê©�=|ð&XY¦óÁðÃ,›]ïÌ2�sêCÊUõŠßzÇÆ!­X‹ÓM8„>¤¶É_Úˆä¾UõêßÒ6:ãLçZgœé|P¬Å×»Ô‡”«êí¿õK�6Ó¹Öi3�Š€µøz—ú�rUýùoí[íÌ2�k�Y¦óA°_ïRR®*z‘\­ ,¦sÍE^Oëô˜Î©—h�„éœz5­Sc:§N�é\s©„ÜÑ¥£êú-­VPÓù´ÖE=O3ÕÜ‹ÄêNõ£E«ô<ÍD%ä1—rˆ¶ß@ÍhÖaÙõ¦7aÀóu˰àÍúZ[P yØU¾è“«GÕK_ôÎÕÝÐ5ûÏS�Ó¹æ¢ yht;I׊€Åó\øùC«�Ó¹Ö£NÂt®õêԘε^�:ãLçZ6N�6Ó¹–µ©3Ët®e³ÔÓ\:ªîûy{u7®×LìGî«%äa—JHÏ¥£ªzî®ÕFꈶß@­9e ã7¼vÍ@ÒÔëð;°k†PÚ¹·¬æ‰_àw`×  oÂð=AV[3Õ§~ûÕ« w1“�öÞ~Mò:\ŽdjÔB9Dûƒï½/¿áŽïßñÀîÀý¿ò}ÜsÇàW>ð�;^þ¼;ž”C´?ø^Üÿ+OÝáØ;p>ýžwÿøý;Þ#èqˆÀ DTWþö5«9å–_¯·#Ø5‰_àw`× Ê!‚†7aøt ¾‡©fÖ´uß›ê'¿ý‰Õò°K%äa—JÈÃ.õ!¯Ø£ÞöÛo_Í!,‰ïMÌ\ºOP yØ¥Fª”ZQ]=øÛ׬æ”CX~½ÞŽ`× $~=€ß�]3 (‡Þ„á{Ð-ø¦šYÓÖ}oF¨Ÿüö'VKÈÃ.•�‡]*!»Ô‡¼b�zÛo¿}5ÇÿüÿòÿcdefghijklmnopqrstuvwxèC¾ü`$÷`$ßx0’'—"¹ºÉ+—ÔM{ùÁVÊâ N%¤çR�f¢ 9ßR}슃9Š0e±¹Ü†gu4ñmøu¼^£·fÔ…³–ªw|ìÃsˆ«¿}™ç×íZtõk.³ü†]•�i—¼¶–©o8z0‡¸úÛ—MËŽ®~Íes†e ‡JÈ´«jo¸ù 7®e”C\ýíËatõk. ü9�„C%dÚ%oVËH׆_fÞøµÝ�×¾¶;`ÞìØ$¿¶;0¹zæ §V �’©±É�‰*rÛ÷ÑiÖÑñë°k}ŰàwÐö3°ëm4'šº7#¨„ô\êC^qP½ï 9è�kÙøÀ'¯­eíu¯MÞ¬–Í®{³ê?ßðƒxã#—ÃkOÇŠËáµG..‡×žŽÿ—Û�ŽÿUÈs•øøCs¶æ{+¾—´aÙ¾gÀ®u#B­YjF3˜¹t¬ÐHtšzbÍêC^ÕRs?w°ovÚD9„ï%mØ5ÝCS¯ÏÌÌÀ �$A§©'ÖŒ >äU-õÌÇßv0×¼qÊښצlVóf)G=uÄ—îCèûáø)•�ö*õ!÷lW÷~üwZZ¼J¶¶A -ÞA}È—µÔÏü�sX)‹¿É©„ô\ª Ð\T![-uêッ9Dè×íº1k¬éƲ ò°K w1“Oï½ýšä<ª�÷mªo?ô…ƒ9„]3 œ^ê¾ay7Ú¨Íz„9£¹‚¤áMX3‚ú�WµÔ¡‡N.å°RŸåTBz.Uh.ª�­–zà¡K9ÄÚZýÒËË‚t-ž‹[œú�×vÕëZ]Êa¥,ÞË©„ô\Ú�qÍÄ~´(G¦l)ŠãÜOR/|(]ÊQ„)[�âÅÁ8wÄ‚v*í¡™¥E˜²�(žäŽxB8E˜²�(^âŽxB8E˜²ØŒ\šé«¶¼,þì;K9DsÍ$�ßAG¯h†¡Ñ¬[h®ù m¿1#¨„ô\uß­-íÆ¸æb?º”£S¶Å“ƒqî§S¶Å“ƒqîÚI/LÙw¢ë®ãŽ€p:^˜²ïD×ÝÇ¡vÿY²TA ¹¨B¶Zêc6µTÁp3ùhïí×$¯C9Š0e±¹ÜvÍ€pz©# [˜ð=cFÐlG3ÕÿìÝKÌv4UÌv4—raÊb7r¹3¼™Åéy]K‰W¿v)G¦l)Š'¹#. §S›‘Ëa× §—:sÍdÅ‚]«û�‰Ú²Pûêç-éZ°x�6¨ymWM½úÊ¥VÊâ«8•�žKš‹*d«¥Þóê]K4<ÍDò