MV - CPCEMU Disk-File
Disk-Info
(LIBDSK)PTrack-Info

å	
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info

å	
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info

å	
åååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååå-MBUG   097
512KOS  DOCV512KUG  DOClABM     SUB	ABORTKEYCOMB
B512T   Z  €B512T   Z  BDOS    MACA !"#$BIOS    MAC5%&BKBD6545MAC@'(CACHE   MAC)CD      MAC0*+CON512T MACz,-./CPMCALLSMAC	0CRC     COM1CUSTOMT OPT2ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååDB512   MAC34567ERARAM  MAC8FKEY    MAC09:FL512   MACZ;<=JOINMBUGAUS#>?L       COM@NAME    PASANAMESYS Z80BP80     COMCS       COMDSPEED   MACESWAPA   MACFSYSTEMPLMACGWINDOW  MACgHIJKLMNOPQRSåååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååå
-MBUG.097    Source code for Peter Broughton's 256/512k system.

Cat ##  File Name     Size   CRC        Description

097.01	512KOS  .DOC   11K   1A D3	Programs on this disk are 
097.02	512KUG  .DOC   14K   4E DB	the source code for Peter
097.03	ABM     .SUB    1K   5D 9B	Broughton's 512k windows
097.04	ABORTKEY.COM    9K   EA 66	system for the Premium Microbee
097.05	B512T   .Z     67K   E3 0E	
097.06	BDOS    .MAC   25K   8F 4B
097.07	BIOS    .MAC    7K   66 4F
097.08	BKBD6545.MAC    8K   95 Eåååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååå8
097.09	CACHE   .MAC    4K   36 A1
097.10	CD      .MAC    6K   5A 84
097.11	CON512T .MAC   16K   0B 0E
097.12	CPMCALLS.MAC    2K   FF 5F
097.13	CUSTOMT .OPT    4K   3D 1C
097.14	DB512   .MAC   17K   A3 20
097.15	ERARAM  .MAC    4K   1D BF
097.16	FKEY    .MAC    6K   54 32
097.17	FL512   .MAC   12K   8C 6D
097.18	L       .COM    4K   D6 DF
097.19	NAME    .PAS    4K   7B BC
097.20	NAMESYS .Z80    1K   00 4F
097.21	P80     .COM    3K   82 28
097.22	S       .COM    2K   58 8C
097.23	SPEED   .MACååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info

å	
    2K   C2 02
097.24	SWAPA   .MAC    4K   67 E9
097.25	SYSTEMPL.MAC    1K   95 AA
097.26	WINDOW  .MAC   45K   65 96

MBUG Library  -MBUG    Volume Number-097, 26 Files cataloged.
 3
     - Status Line
     - System Setup Window
     - Disk Types
     - Cold Boot Sequence

System Setup Window
     - dsjdslksd
     - siudslkdfkl

Support Programs
     - SETSYS, operating system configuring            ##
     - FKEY, function key load/save                    ##
     - SAVESYS, saving system configurating
     - CD, changing disk types
     - .....

All this drivel is written by Peter Broughton and is copyright.
So there !!!

.HE2CF                 512k Enhanced Operating System
.paŠ1.   THE OPERATING SYSTEM.

1.1  Compatability.

Thå  512ë  enhanceä operatinç systeí ió upwardlù compatablå  witè 
thå standarä 128ë operatinç systeí versioî 7¬  anä supportó  mosô 
oæ itó features®  Iî addition¬ iô ió compatablå witè versioî ± oæ 
thå 512ë operatiiç system® Thå shelì anä associateä programó (eg® 
TRANSFER¬  INIT© wilì alì worë iî thå expecteä fashion®  Thå onlù 
prograí  knowî noô tï worë undeò thå 512ë systeí ió VTEØ (versioî 
1.34, possably others).


1.2  Computer Types.

Thå  operatinç  systeí caî bå useä oî alì Microbeå 256ë anä  512ë 
computers¬  thaô is¬ 64ë CIAB'ó oò 128k'ó thaô havå beeî upgradeä 
tï  256ë oò 512k®  Iî addition¬  iô wilì worë oî á 128ë  computeò 
althougè  noô alì oæ thå system'ó featureó caî bå used®  Iô  wilì 
noô  worë oî á 64ë computer¬  neitheò wilì iô worë oî  thå  TC25¶ 
(Telecomputer).


1.3  Use of Memory.

Oæ thå availablå 256ë oò 512ë oæ memory¬  64ë ió reserveä foò thå 
useò prograí areá (TPA¬ Tra.. True A4 paper, 6 lines per inch
.. ... = true underline,  = ESC,  = double width
.PL 70
.HE2CF
                                                       27/1/88

 512k Enhanced Operating System

           Version 2.2


     CONTENTS :

The Operating System
     - Compatability                                   2
     - Computer Types                                  2
     - Use of Memory                                   2
     - Function keys                                  Track-Info

å	
å sectoò  ió 
placeä intï thå disë cache®  Wheneveò á prograí requestó á sectoò 
froí  á  disë thå computeò firsô checkó thå disë cache¬  iæ  thaô 
sectoò  ió  iî thå cachå iô caî bå quicklù copieä ouô  oæ  memorù 
insteaä  oæ beinç reaä froí thå disk®  Thió ió particularlù  gooä 
foò  programó  thaô  repeatedlù accesó thå samå  fileó  oî  disk¬ ŠWordstaò oò databaseó arå gooä examples.
..pa

Thå  limitatioî  oæ  thå disë cachå ió thaô iô  musô  bå  cleareä 
wheneveò thå computeò thinkó á disë mignsienô Prograí Area)¬ thió ió thå samå 
aó  thå 128ë operatinç system®  Thå nexô 32ë ió reserveä  bù  thå 
operatinç  system®  Thió ió wherå thå operatinç systeí storeó thå 
windo÷  prograí anä thå currenô definitioî oæ thå functioî  keys® 
Iô alsï storeó herå thå sectionó oæ thå operatinç systeí thaô arå 
reloadeä afteò eacè warí boot®  Theså arå thå Shelì  (SHELL.SYS)¬ 
thå CCÐ (CCP.SYS© anä thå BDOS® Aó theså arå reloadeä froí memorù 
insteaä  oæ  froí  disk¬  thå timå requireä foò á  warí  booô  î  keyó  arå 
   |      |      |          enabled.
   |      |      +-- Displays if Caps Lock is set (upper case).
   |      +-- Displayó  iæ  driveó Aº  anä Mº  (oò N:© havå  beeî 
   |          swappeä  bù thå prograí SWAPA.COÍ (iæ Nº  theî  thå 
   |          `M' in the display is replaced by an `N').
   +-- Displayó  iæ thå processoò speeä ió seô tï 6.7µ MHú  (thió 
       requires that the speed change hardware has been fitted).

Thå statuó linå wilì remaiî oî displaù aó lonç aó á prograí  doehô havå beeî changed® Thió 
happenó wheneveò thå computeò ió warí booted¬  wheneveò thå Shelì 
accesseó á disë oò wheneveò á prograí `logs§ á disk.


1.4  Function Keys.

%%%%%%%
     F1 .. F8  = CTRL 1..8
     F9 .. F12 = CTRL SHIFT 2..5
%%%%%%%
Iæ  á  functioî keù ió 'waited§ (seå windo÷ stufæ foò ho÷  tï  dï 
this©  theî  pressinç thaô functioî keù agaiî wilì picë  uð  froí 
wherå iô stopped®  Iæ yoõ presó anù otheò functioî keù first¬  oò 
calì uð thå window¬  thå 'wait§ wilì bå aborteä ió 
reduced®  Iô  alsï meanó thaô thå disë iî drivå Aº  afteò boot-uð 
need not be a boot disk.

Thå remaininç memorù (160ë foò á 256ë computer¬  416ë foò á  512ë 
computer©  ió divideä betweeî twï ramdiskó anä á disë cache®  Thå 
amounô  oæ  memorù allocateä tï eacè ió selecteä bù  thå  prograí 
SETSYS (see below).

Thå  ramdiskó  functioî iî mucè thå samå waù aó thå ramdisë oî  á 
128ë  computer®  Thå  firsô (main© ramdisë ió  calleä  'M:'¬  thå 
seconä ió calleä 'N:'®  Notå thaô iæ yoõ arå usió 
noô  changå  thå videï displaù  characteristicó  (eg®  Microworlä ŠBASIÃ changeó thå displaù tï 6´ characteró bù 1¶ lines).
..pa
1.¶  Systeí Setuð Window.

%%%%%%
     Bring it up (chunder!!) using CTRL 9
See below for more.


1.7  Disk Types.

.paŠ1.8  Cold Boot Sequence.

Wheneveò yoõ colä booô thå computeò (ie®  presó RESET¬ oò turî iô 
oî  anä  inserô  á 512ë systeí disk© thå  512ë  operatinç  systeí 
follow this sequence of steps:

1. Thå systeí trieó tï deteminå iæ thå conanä thaô functioî 
key will start from the beginning when next pressed. Get that!?!

Try this then :
eg if F1 has:
     abcd^M(wait)efg(wait)hijk(end)
Press F1 once, get :
     abcd^M
press it again, get:
     efg
press it again, get:
     hijk
press it again, get;
     abcd^m
etc., etc.


1.5  Status Line.

Thå statuó linå ió á 25tè linå appearinç oî thå screeî belo÷  thå 
2´ lineó useä bù thå maiî display® Iô showó thå statuó oæ variouó 
functionó  oæ thå systeí aó welì aó thå currenç thå Shell  yoõ 
cannoô  loç  ontï  disë Nº  aó thå Shelì doeó noô  kno÷  thaô  it 
exists¡  However¬  yoõ caî copù fileó intï N:¬  oò refeò tï fileó 
alreadù   iî   Nº   bù  prefixinç  their  namå  witè  'N:§   (eg® 
N:AFILE.EXT)®  Thå CCÐ doeó noô suffeò froí thió problem¬ yoõ caî 
treat N: as any other disk.

Thå  disë cachå ió aî areá oæ memorù seô asidå tï  helð  increaså 
thå  speeä  aô whicè physicaì diskó caî bå accessed®  Wheneveò  á 
sectoò ió reaä froí oò writteî tï á disë á copù oæ thtentó oæ ramdisë Mº  ió 
   valid®  Iô  doeó  thió bù lookinç aô á  memorù  locatioî  thaô 
   shoulä  contaiî  thå  sizå oæ Mº  lasô timå thå  computeò  waó 
   RESET®  Iæ thió ió differenô tï thå currenô sizå oò iæ iô  haó 
   beeî  cleareä (bù turninç thå poweò ofæ oò runninç á differenô 
   operatinç system© iô theî `formats§ Mº  tï removå anù datá anä 
   placeó  thå filenamå `-RAMDISK.M:§ aó thå firsô entrù  iî  thå 
   directory®  Thió  namå  wilì appeaò aô thå toð oæ á  directorù 
   listinçnô timå anä datå (iæ 
thå reaì timå clocë hardwarå ió fitted)® Thå layouô oæ thå statuó 
linå ió aó follows:

  FAST   A<>M   LOCK   FKEY PRESSED   time  date
   |      |      |      |      |       |
   |      |      |      |      |       +-- Currenô timå anä date.
   |      |      |      |      +-- Displayó afteò á functioî  keù 
   |      |      |      |          ió  presseä  anä whilå  iô  ió 
   |      |      |      |          being `read'.
   |      |      |      +-- Displayó  iæ  thå functioTrack-Info

å	
må 
   importanô partó oæ thå operatinç systeí includinç thå keyboarä 
   driveò anä thå routineó foò updatinç thå statuó line®  Iæ thió 
   is not loaded then not much will work!

4. Finallù thå keyboarä ió enabled¬  thå statuó linå ió displayeä 
   anä  thå selecteä SHELÌ oò CCÐ ió run®  Thió theî executeó anù 
   stored initial commands.
.paŠ2.   SYSTEM SETUP WINDOW.

2.1  Using the Window.

Bit of stuff here.

2.2  <F> - Set Function Keys.

Like it always used to be.
To get edi displayeä bù L.COM® Notå thaô occasionallù smalì partó 
   oæ  memorù  caî bå corrupteä bù á RESEÔ withouô  thå  computeò 
   detecting¬  thereforå  fileó iî Mº  oò Nº  shoulä  bå  quicklù 
   checkeä afteò á RESET®  Thió ió duå tï thå computer'ó hardwarå 
   anä cannoô bå avoided¬ witè somå computeró iô wilì happeî morå 
   ofteî thaî witè others.

2. Nexô  thå systeí doeó thå samå checë foò drivå Nº  (iæ  Nº  ió 
   enabled©  anä  iæ  iô ió invaliä iô  ió  alsï  formatted®  Thå 
   filenamå `-RAen.

NBº Uså CÄ (Changå Disk© insteaä oæ SETDISË aó thå cachå wilì noô 
looë aô á drivå thaô haó beeî SETDISK'ed®  CÄ wilì alsï restorå á 
drive that has been setdisk'ed.
tor, press desired function key.
Keys that work in editor :
     ^S  - left (or left arrow - premium)
     ^D  - right (or righ arrow)
     ^A  - left by 8 chars (or SHIFT left arrow)
     ^F  - right by 8
     ^E  - move to start
     ^X  - move to end
     ^H (backspace) - delete char to left of cursor
     ^G  - delete char above cursor
     DEL - ditto
     ^Y  - delete line
     ESC - abort edit (don't save)
     RET - save edit
     <^¾ - (ie® SHIFÔ ¶ noô CTRL© followeä bù characteò enteMDISK.N:§ ió theî placeä iî thå directory.

3. Thå  operatinç  systeí fileó arå loadeä iî  now®  Firstlù  thå 
   fileó `SHELL.SYS§ anä `CCP.SYS§ arå loaded®  Theså caî onlù bå 
   loadeä durinç thå booô procedure¬  ie® iæ onå oæ theí isn'ô oî 
   thå  booô disë theî iô cannoô bå used®  Aô leasô onå  oæ  theí 
   musô bå oî thå disë oò thå operatinç systeí wilì `hang§ aô thå 
   enä oæ it'ó booô procedure.

   Thå  thirä filå tï bå loadeä ió thå  filå  `WINDOW.SYS'®  Thió 
   containó thå systeí srs
           control code (this used to be ^P in version 2.0)
     ^P  - enter pause (This put a little break into reading
           the function key string to allow programs to 'catch
           up', - stops too many keys coming at once)
     ^W  - enter wait (This causes reading of the string to stop
           aô thió poinô anä onlù recommencå wheî thå function
           key is pressed again)
     Any function key - 'chain' to new function string (Stops
           readinç thió strinç anä staretuð windo÷ program®  Iæ thió filå ió noô 
   oî thå disë theî thå windo÷ cannoô bå useä anä pressinç <CTRL¾ 
   ¹  wilì jusô togglå thå functioî keyó oî anä off®  Thå  fourtè 
   filå  ió `DEFAULT.FK'¬  thió containó thå defaulô  definitionó 
   foò  thå functioî keyó anä cursoò keys®  Iæ thió isn'ô  loadeä 
   theî  thå functioî keyó wilì initiallù bå blanë anä thå cursoò 
   keyó wilì defaulô tï theiò normaì Wordstar/SHELÌ settings.

   Thå finaì filå tï bå loadeä ió `BIOS.SYS'®  Thió containó sotó agaiî witè the new
           function key string, any characters after this point
           are ignored)

Think that's all of them.

2.3  <C> - Set Cursor keys.

2.4  <K> - Set Key Click.

2.6  <S> - Screen Functions.

2.7  <T> - Time functions.

etc. etc.
.paŠ3.   SUPPORT PROGRAMS.

Trù  theí anä seå whaô happens®  Theù alì wilì brinç uð á  littlå 
messagå abouô themselveó iæ yoõ typå NAMÅ oò NAMÅ ¿  dependinç oî 
the program.
SETSYS now has the memory setup option writtTrack-Info

å	
                              16
     10 mfd 16v tantalum capacitors                  2 *
     Wire (wire wrap type is best), spaghetti tubing, etc.

     *  See text for details.
     ** See note in `Problems' section.

     Tools required :

- Finå  electroniã solderinç iron¬  preferablù witè á  magnetiseä 
  tið tï helð removå IÃ pins¬  eg®  á Welleò iron® Thå tið shoulä 
  alsï bå eartheä aó statiã sensitivå IC'ó arå begiî used.
- Soldeò sucker¬  oò somethinç similaò (iæ yoõ havå á desolde.. True A4 paper, 6 lines per inch
.. ... = true underline,  = ESC,  = double width
.PL 70
.HE2CF
                                                          26/1/88

.HE      Installation instructions for MicroBee 512k upgrade.
      Installation instructions for MicroBee 512k upgrade.
     ======================================================


     INTRODUCTION


Theså  noteó shoulä givå yoõ sufficienô informatioî tï upgradå  á 
128ë MicroBeå tï 512k®  Howeveò somå experienchå followinç methoä foò removinç IC'ó safå  anä 
   successful¬ iæ a little timå consuming.
      - Usinç  finå  wirå  cutteró cuô thå IÃ pinó  aó  closå  aó 
        possible to the body.
      - Heaô eacè piî iî succession¬  wheî thå soldeò arounä  thå 
        piî haó melteä theî flicë thå piî ouô witè thå enä oæ thå 
        solderinç  iron®  Thió  ió wherå á magnetiã tið  ió  verù 
        handy¬  iæ  yoõ don'ô havå onå theî yoõ maù havå tï uså á 
        pair of pliers or magnetised screwdriverinç   
  statioî  theî  yoõ arå luckieò thaî me)®  Iæ yoõ don'ô  alreadù 
  havå    á  soldeò  suckeò  theî  aô lesó  thaî  $2°  onå  ió  á 
  worthwhilå investment.
- Á  finå paiò oæ wirå cutters¬  sufficientlù finå tï cuô IÃ pinó 
  whilå theù arå stilì connecteä tï thå PCB®
- Á  caî  oæ  fluø removinç spraù (noô essentiaì  buô  it'ó  gooä 
  practice to clean and inspect boards after work).
.PAŠ     SECTION B -- FITTING INSTRUCTIONS


1. Determinå  whicè  typå oæ coreboarä yoõ have®  Theå witè thió typå oæ 
worë   ió  stronglù  recommended®   Á  knowledgå  oæ   soldering¬ 
desolderinç  anä  ho÷ tï puô digitaì circuitó togetheò shoulä  bå 
considereä essential® É offeò nï guaranteå thaô thió upgradå wilì 
worë  witè youò computer¬  howeveò É havå noô yeô meô á  computeò 
witè  whicè  thå  upgradå coulä noô bå madå tï  work®  É  dï  noô 
recommenä attemptinç tï fiô thå upgradå tï á computeò stilì undeò 
warranty¬  oò tï á computeò thaô ió noô workinç  correctly®  Witè 
thå  exceptioîr.
      - Removå thå remaininç soldeò witè á soldeò sucker®

3. Soldeò  iî thå 1¶ IÃ socketó intï thå RAÍ chið  positions®  Iæ 
   yoõ  removeä twï 74LS157'ó theî soldeò twï oæ thå 74HC157'ó iî 
   theiò place®  Theså arå MOÓ semiconductoró (statiã  sensitive© 
   sï  takå thå usuaì precautionó oæ noô touchinç theiò pinó  anä 
   usinç aî eartheä solderinç iron.

   Wheî  yoõ havå donå thió thoroughlù cleaî thå undersidå oæ thå 
   boarä  witè  fluø removinç spraù anä á  brusè  theî  carefullù rå  arå  twï 
   typeó  º  thå oldeò board¬  produceä beforå approximatelù Junå 
   '8µ anä labelleä MB168¬  anä thå neweò boarä labelleä  MB8342® 
   Thå circuiô foò theså twï boardó ió almosô identical¬  howeveò 
   thå  IÃ  numberó  anä thå methoä oæ mountinç  thå  upgradå  ió 
   different® Thå old‚ boarä haó thå IC'ó mounteä lengthwise‚ whilå 
   thå new‚ boarä haó theí mounteä widthwise®  Iô ió wortè usinç á 
   highlighô  peî  tï  marë alì referenceó iî thió  texô  tï  thå 
   partic  oæ thå disë É offeò nï warrantù oî  thå  supplieä 
partó  excepô iî thå caså oæ aî obviouó `large§  failure¬  eg®  á 
faultù batcè oæ memorù chips.


     SECTION A -- PARTS REQUIRED


     Description                                  Quantity

     256k Dynamic RAM memory chips                  16 **
       (4256, 41256 etc., 150 nanoseconds or less)
     74HC157 Quad 2 to 1 multiplexer                 1/3 *
     74LS174 Hex D flip flop                         1
     16 pin IC sockets
   inspecô alì soldeò joints.

4. Mounô thå 74HC15· anä 74LS17´ IC's® Thå followinç instructionó 
   shoulä  bå followeä verù carefully®  Refeò tï thå accompanyinç 
   diagramó tï checë youò work.

   Takå thå 74LS174‚ anä cuô ofæ pinó 2¬  5¬  · anä 12‚ aó closå tï 
   thå bodù oæ thå IÃ aó possible®  Folä ouô pinó 10¬  11¬ 1´ anä 
   15‚  untiì theù arå horizontaì (á smalì paiò oæ plieró ió  besô 
   foò this)®  Nexô folä pinó 3¬  ´ ¬  ¶ anä 13‚ undeò thå bodù oæ 
   thå  IÃ anä usinç strulaò boarä yoõ have.

2. Removå thå olä memorù chips®  Theså arå fairlù obvious¬  therå 
   arå twï rowó oæ eighô chipó labelleä 4164‚ (ne÷ boarä º IC'ó 2¬ 
   3¬ 6¬ 7¬ etc.» olä boarä º IC'ó 8..15¬ 17..24).

   Iæ yoõ havå aî olä boarä theî checë IC'ó ¶ anä 7¬ iæ theså arå 
   74LS157‚ theî theù musô alsï bå removed¬  yoõ wilì theî requirå 
   á totaì oæ ³ 74HC157's¬ otherwiså onlù ± ió required.

   Iæ yoõ havå á desolderinç statioî theî gï tï iô ¡  Iæ noô theî 
   É  havå founä tTrack-Info

å	
ò  pad® 
   Suitablå padó arå piî 1¹ oæ IÃ 5‚ oî aî old‚ board¬ oò piî 2· oæ 
   IÃ 10‚ (unuseä ROÍ socket© oî á new‚ board® Yoõ wilì havå tï cuô 
   thå trackó leadinç tï theså padó first.

6. Wire the two new IC's into the circuit.

   Old‚ boarä :
      - Pinó  ² anä ³ oæ IÃ 41‚ (unuseä pads© tï pinó 1± anä 14‚ oæ 
        thå  74LS174‚  (iô doeó noô matteò iæ thå  twï  linkó  arå 
        swappeä over).
      - Pinó  1°  anä 15‚ oæ thå 74LS174‚ tï pinó 1° anä 11‚ oæ  thå 
        ippeä finå wirå linë theså pinó  togetheò 
   anä tï piî 16‚ (+µ volts).
.paŠ   Thå remaininç pinó (1¬  8¬  9¬ 16© arå useä tï mounô thå IÃ oî 
   toð oæ aî existinç 74LS174® Oî thå old‚ boarä thió ió IÃ 31¬ oî 
   thå new‚ boarä iô ió IÃ 16® Soldeò oî thå ne÷ IÃ leavinç onå tï 
   twï millimetreó clearancå betweeî iô anä thå existinç IÃ  (thå 
   wire links under the IC will ensure this).

   Nexô takå thå 74HC157‚ anä cuô ofæ pinó 4¬  · anä 12®  Folä ouô 
   pinó 9¬  10¬  1± anä 15omputer¬  iæ  thå blocë cursoò appearó theî therå ió  á  gooä 
   chancå thå upgradå ió working®  Tï tesô thå ne÷ banë switchinç 
   circuiô  gï  intï  thå monitoò (holä dowî <M¾  whilå  pressinç 
   RESET© anä typå :

               O 50 nn <RETURN>
               F 0 1000 nn <RETURN>

   where nn is each of the following numbers in turn :

               04, 05, 06, 07,     : first 128k of memory
               44, 45, 46, 47,     : later pages
               84, 85, 86, 87,
             74HC157‚ (agaiî iô doeó noô matteò iæ theù arå swapped).
      - Piî  15‚  oæ  thå  74HC157‚ tï piî 16‚ oæ  X1¬  thå  2µ  waù 
        connectoò aô thå oppositå enä oæ thå boarä tï thå voltagå 
        regulators.

   New‚ boarä :
      - Pinó  1¸ anä 1¹ oæ IÃ 10‚ (unuseä pads© tï pinó 1± anä  14‚ 
        oæ  thå 74LS174‚ (iô doeó noô matteò iæ thå twï linkó  arå 
        swappeä over).
      - Pinó  1° anä 15‚ oæ thå 74LS174‚ tï pinó 1° anä 11‚  oæ  thå 
        74HC157‚ (agaiî iô ® Folä pinó 2¬ 3¬ 5¬ 6¬ 1³ anä 14‚ undeò 
   thå IÃ anä linë theí tï piî 16‚ aó peò thå 74LS174®  Pinó 1¬  ¸ 
   anä 16‚ shoulä remaiî tï mounô thå IC® Soldeò iô oî toð oæ IÃ 7‚ 
   oî  aî  old‚ boarä oò IÃ 17‚ oî á new‚ board®  Thå IÃ  shoulä  bå 
   handleä  aó littlå aó possiblå whilå doinç thió anä yoõ shoulä 
   avoiä touchinç thå pinó aô alì aó thå IÃ ió verù sensitivå  tï 
   statiã  electricity®  Iô ió besô tï worë oî toð oæ á sheeô  oæ 
   aluminiuí foil.

5. Linë  uð piî ± oî alì t  C4, C5, C6, C7.

   Wheî  yoõ havå completeä thió examinå alì bankó oæ  memorù  bù 
   typinç :

               O 50 nn <RETURN>
               E 0 <RETURN>

   Thå  bytå nî shoulä appeaò iî alì displayeä memorù  locations® 
   Iæ thió ió noô thå caså theî therå ió probablù aî erroò iî thå 
   ne÷ circuiô arounä thå '157/'174.
   Iæ  thió  workó  theî thå computeò caî bå  puô  bacë  togetheò 
   properlù anä finallù testeä usinç thå 512ë systeí disk.
   Thå quickesô waù tï dï thió ió simpdoeó noô matteò iæ theù arå swapped).
      - Piî  15‚  oæ  thå  74HC157‚ tï piî 16‚ oæ  X1¬  thå  2µ  waù 
        connectoò aô thå oppositå enä oæ thå boarä tï thå voltagå 
        regulators.

7. Iæ  yoõ  havå  á  ne÷ boarä theî mounô  twï  1°  mfä  tantaluí 
   capacitoró  undeò thå boarä iî paralleì witè C1µ anä C17‚  (0.± 
   mfä multilayeò caps)® Thå positivå pinó arå closesô tï thå enä 
   of the board with the voltage regulators.
.paŠ8. Mounô  thå ne÷ RAÍ chipó intï theiò sockets®  hå RAÍ chið sockets®  É havå founä thió 
   ió besô donå usinç strippeä singlå corå wirå anä smalì  pieceó 
   oæ spaghetté tubinç tï insulatå iô betweeî joints®  Thå enä oæ 
   thió wirå musô bå connecteä tï piî 9‚ oæ thå ne÷ 74HC157¬ whicè 
   presentó á probleí aó theù arå oî oppositå sideó oæ thå board® 
   Thå  solutioî  ió eitheò tï drilì á holå througè thå boarä  (É 
   shouldn'ô  havå  tï  telì yoõ tï makå surå  yoõ  don'ô  cuô  á 
   track)¬  oò  tï  pasó thå wirå througè aî unuseä  soldelù copù aó mucè aó possiblå 
   intï  M:¬  theî ruî somå programs¬  iî particulaò WORDSTAÒ  oò 
   MICROWORLD BASIC.


.paŠ     SECTION C -- PROBLEMS


Iæ  thå upgradå doeó noô worë theî iô ió almosô certaiî thaô  yoõ 
havå madå aî erroò somewherå (donå iô myselæ morå thaî once!)® Iæ 
thå upgradå doeó noô worë aô alì anä yoõ havå thoroughlù  checkeä 
thå  circuiô  theî trù swappinç oveò thå twï bankó oæ RAÍ  chips® 
Faileä RAÍ chipó arå verù rare¬  howeveò iô ió possible®  Iæ  onå 
werå  tIô ió  importanô 
   noô tï handlå theså IC'ó morå thaî ió absolutelù essential¬ iî 
   particular¬ dï noô toucè thå pins® Iæ thå rowó oæ pinó arå toï 
   faò  aparô tï easilù fiô intï thå socketó theî carefullù  benä 
   thå  pinó  towardó thå centeò usinç á sheeô oæ aluminiuí  foiì 
   placeä oî á flaô surface®  Betteò still¬  uså aî IÃ  insertioî 
   tool .

9. You'vå  finisheä ¡  Replacå thå coreboarä ontï thå maiî  boarä 
   anä connecô thå poweò anä monitoò tï thå keyboard® Turî oî thå 
   cTrack-Info

å	
oderatelù   heavù  leaä  (preferablù  witè  á  bulleô   stylå 
   connectoò  iî  thå  middle©  froí  thå  eartè  tracë  oî   thå 
   underside¬  front¬  lefô  corneò oæ thå coreboarä tï thå largå 
   eartè  tracë oî thå premiuí boarä iî thå middlå oæ  thå  spacå 
   foò  thå reaì timå clocë (iî fronô oæ thå Z8° PIÏ chip)®  Thió 
   ió  normallù  alreadù donå bù Microbeå  Systems®  Iæ  yoõ  arå 
   desperatå  theî  anotheò eartè leaä caî bå soldereä  froí  thå 
   otheò  sidå  oæ thå premiuí baseboaräï faiì iî thå firsô banë theî thå computeò woulä noô  worë 
aô all®  Iæ onå werå tï faiì iî thå seconä banë theî thå computeò 
shoulä starô tï colä booô correctly¬ buô woulä bå verù unreliablå 
froí theî on.

Thå  otheò  problemó  thaô  arå likelù tï  occuò  arå  mucè  morå 
obscure¡  Exampleó  oæ symptomó arå º  irregulaò anä inexplicablå 
crashes¬ refusaì tï worë correctlù (oò aô all© untiì thå computeò 
ió warí (oò conversely¬  afteò iô getó warm)¬  programó thaô  acô 
strangely¬  verifù  erroró tï thió leaä anä onå  oò 
   morå  leadó arounä variouó eartè pointó oî thå  coreboarä  (iî 
   particulaò tï thå areá arounä thå RAÍ chips and PAL chip).

2. Trù   addinç  morå  1°  mfä  tantaluí  capacitoró  arounä  thå 
   coreboard®  Twï morå spaceä arounä thå RAÍ chipó anä onå closå 
   tï thå 74HC15· (oî aî olä board© ió á gooä idea® Makå surå yoõ 
   geô thå polaritù correct® 
.paŠ3. Stick stuff about timing caps here. %%%%%
   Thió modificatioî maù actuallù makå thå symptomó worse¬  iô ió  wheî copyinç tï oò froí thå  ramdisk¬ 
occasionaì failurå tï booô correctly¬ etc.

Aó  thå  symptomó  anä  thå faulô  causinç  theí  arå  verù  harä 
(borderinç oî impossible© tï tracë dowî É havå includeä á lisô oæ 
possiblå  cureó (below)®  Trù theså oò combinationó oæ theí untiì 
thå  symptomó disappear®  Mosô oæ thå troubleó arå duå tï  slighô 
timinç faultó iî certaiî signals¬ excesó noiså oî thå poweò railó 
oò degradatioî oæ signals® 

Thå  RAÍ  chipó arå verù sensitivå tï theså sorô  oæ  
   particularly sensitive to the brand of RAM chips being used.

4. Iæ  yoõ havå á ne÷ boarä theî fiô á 2.2ë bù ¹ resistoò SIÐ  iî 
   location RN1.

5. Iæ  yoõ havå á ne÷ boarä theî yoõ caî adä 3³ ohí resistoró  iî 
   serieó  witè  thå  signaló goinç tï thå  RAÍ  chips®  Thió  ió 
   recommendeä  tï stoð oscillatioî anä falså triggerinç  oæ  thå 
   chið  inputs®  Tï dï thió examinå thå boarä undeò RN² anä  RN³ 
   (neaò thå RAÍ chips)¬ yoõ wilì noticå linkó betweeî pinó ± anä 
   2¬  ³  anä  faultó  anä 
certaiî  brandó  arå morå susceptablå thaî otheró anä responä  iî 
differenô  wayó tï attempteä cures®  Somå Taiwaneså  brandó  (eg® 
Fujitsu©  caî  bå á littlå trickù tï geô workinç  correctly®  Thå 
mosô  reliablå  brandó  (iî mù experience© seeí  tï  bå  NEÃ  anä 
Mitsubushi.


1. Iæ yoõ havå á premiuí baseboarä checë IC26® Iæ iô ió á 74HC..® 
   chið theî REPLACÅ iô witè á 74LS245® Iæ therå ió nï eartè leaä 
   connectinç  thå  coreboarä  tï thå baså boarä  theî  soldeò  á 
   m´ etc®  Cuô theså anä soldeò iî twï 3³ ohí resistoò 
   SIP's®  THIÓ  IÓ  Á 'B§  TYPÅ  SIPº  µ  seperate¬  unconnecteä 
   resistors¬  NOÔ  thå normaì 'A§ typå whicè havå resistoró witè 
   onå  commoî connection®  Iæ yoõ cannoô geô thió typå theî  teî 
   individuaì  resistoró caî bå useä instead®  Alsï cuô thå  linë 
   acrosó  R± anä replacå thió witè á 3³ ohí  resistor®  Finally¬ 
   inserô á 3³ ohí resistoò iî thå leaä betweeî thå addeä 74HC15· 
   anä piî ± oæ thå RAÍ chips.
Track-Info

å	
m:;p80 =$1/c;m80 =$1$2;b:abortkey
l80 m:$1,m:$1.usf/n/e;copy -v m:$1.usf b:
Track-Info

å	
 S>)ë)ë0	= öÉ|µÊ
|ªõÍëÍëDM¯go>íjíB0	7?ËË= ðëñðHåÍ“Ë<ËÑëÍëËzÈ5ÍbÈ)ýÉÍbÈË<ËúÉëz· {þ0G·É¯goÉë|ª|úºÀ}»ÉÉË|È|/g}/o#É}æo&ÉíKÊí[ÈÅÕxAJSËËËËáëáíJDM!éb"Èë!6íJ"ÊDMÉ'ÍãèÍãdÍã
Íã}¯<íR0û= ÈÆ0ÝwÝ#ÉÝ~Ö$O! Ý#Ý~Í§Ö08)þ
8 !Öþ
8þ0T])Ø)Ø T]Ø)Ø_ØËy·È|‡ÉÝááå}&#9N8wë!DíB9ùëåí°ëá+Oí¸ë#ùÝé>Ã* ÝáÍÉWáÍÞ	_áå}“8(º8J`9{‚T]=o`9yí¸ë	¯<k-&9wùÝéÝááå}&#9ùo&ÝéÝá!T9^K#å^C#ååýáÑáy8<OÅÕå¾(áÑÁ# ò!#ìÑáÁ!9ëíRýùÝéÝáÍÉOáÍÞ	_áÃã Í«Copyright (C) 1985 BORLAND IncƒBMicrobee VDUped VDU.P=  ERT()~·7È#õå~Íéáñ= ô·ÉÍ
ÉoåÍ¦Éþ€ÜlÔ…æîå!ïå!é"áãõÅÕ~#·(åÍéáôÑÁñãÉ}´È:$‡‡‡ããããÅÒÁ= ô+èÍÐØ*ÎßõÅÕå!¨Í6!¢ÍÐ*ºÔáÑÁñÉõÅÕå!´éõÅÕå!®àõ:à·(ÅÕå¯2à!ÈÍ6áÑÁñÉõ:àþÿ(öÅÕå>ÿ2à!ÂãõÅÕå!¼ÚõÅÕååð!‹í°Ñ:žO:œ‚ÕÍÝÑ:ŸO:ƒÍÝ!ðÍÐ* ÍáÑÁñÉ!ð	ë!›45(É!+/–0ü†õyþ0jÁ‘
€!¢ÚI}è¢‹.º}Žã8Žc~I’$I’~ÍÌÌÌL«ªªªªÝ!>ÅÕåõÍ­Í˜
ñÍJÙáÑÁÃ˜
õÙÍoõÙÅÕåÍoÍ
ÙáÑÁÙÍ˜
ñ= éÙÍ‡Ã
ÝÝnÝfÝ^ÝVÝNÝFÉ!DLT\ÉI¢Ú!‚!É53ó!úÉr1÷!€ÒÉÅÕåÙáÑÁÉÍ“!€> Ëx Ë#ËËË-= ðoË¸ÉËxÙÍ‡(Ëø-Í
·Ë}(ËxËø>½8(Í{,óÍ{`iÈÃ„!É>’Ã( |µÊsË|Í>)=Ë|(úDMboÀË¸ÉÍÉë8þ8ÍÉÙËxÙ(’0¯þ	8>	<WÕÙý!]ÝåÍìÝáÑOz<Ë{ òlý6þ8>ÕÍÑËx(>-ÍæË{(aËy(ÍäÍÚòz·(>.Íæ(Íä ÷ú²ÍÚ÷Ë{È>EÍæ>+Ë|(|íDg>-Íæ|/Ö
0ûÆ:ÝpÝ#ý~ý#· ý+>0ÝwÝ#Éýå,- ý60ý#ø¯Ã~~“8(‘8õ~‘wPT]	ñ<Oí°sÝéÝáÍÞ	OÑíSè!9õ†8¸8xñW^‘8/<ozƒ8¸}8x“8&‘8#<·(ÅÕ*è_B	ÑÕåPëáOí¸ÑÁz<(Ox‘<»8{·(*è	ë!9Oí°!T9^ùÝéÝáá-Âgl&Ýé!T9^~6#wÉ!T9^K#å^C#ååýáÑá¯¸(¹ x¹áÑýùÕé¾ ö#ç|· }·À>Ã* Í
Ð>Ã( Í‚
õÍ­Í˜
íÙ}·Ù>Ê( Íö
ßÙËxÙÂ‰
Ù}·ÙÈÙÅÕåÙ}· ÙË¸TÅËø¯ÙËø}Ù•(0íD=ÙÍ{,= ù(Ùñæ€ Í“0%Í|·, 7 ÍÇ?õ(8ÙÍ­Ëx 	Í‡- öÍsñ8Ë¸·ÙáÑÁÙÉÙËxÙÂ
Í
Í
Ø,-Èxî€GÉÙ}·ÙÊs}·ÈÙ…ÙÍNÅÕåÝ9ÍsÙ.Ù>Ý#ÝnË0Í“Í|= ñÙ-Ù åÝnûËx 	Íˆ,-(-ñññ·ñÙÁáÙÝáË¸°G,-ÌsÉ}·ÈÙ•Ù?ÍN(ñíÉ
d!kÃ6!{Ã6Í`æÍ`o&Éô	áÁå:Ý·(ÕÅÍ |µ(Íâþ ÍâþÊÕ ÁÑ*é"Òx2Ýy·(>Ã28!ü"9!¦ í°!¾¸í°¯og2Ð"Ô"Ö>~2Ñ2àÉÃÃ!Ã:Ã0Ã5Ã+Ã:Ã!Á‚CÄÅÁÅÕåÝåýåõo&åÍ¦ñýáÝááÑÁÉÅÕåÝåýåÍ£}ëÿí[Òþ (ú!eÍ|Í§þA8þQ0Gþ: xÖ@¯!\w#(Íƒ þ?(þ*(þ.(ÍxÍ_þ. Í_!h6#ûÉ(þ?(	þ*(Íƒ(w#éÉ>?> w#üÉÍ§þ 8åÅ!™í±ÁáÉ¿É .,;:=?*[]<>{}þaØþ{ÐÖ É|Íµ}õÍ¾ñæÆ'Î@'ÃÊ¯7Ë|À|·}È>ÿÉ2ØÅÍ°Á*·íBÚ© ëÑùü	"Æ¯og"Î2Ü>Ã2Ù!ßÅË¸}ÙÖ€oŸgMÍö|þÙ <ýwíDÍA}þ0Í´ý5Ëø>„•.(Í{Ë= øý~õ>xæÆ0ýwý#xæGÅÕåË%ÍˆË%ÍˆëãÑãíZëáãíJDMáË%Íˆ= ÈñÁýáÉýåá_~6þ5Øú+~<wþ:Ø6ñ61#6ÉÙÙÍsÝ~Í§þ. ÙËp7ÀËðÙÝ#êþE(!Í:0TÍ´ØÙÅo&Í	Íê	ÙÁØËp(Ù×ÍØÙËàÝ#Ý~þ+(þ- ËèÝ#Í7?ØOÝ#Í70
Ý#Wy‡‡‡‚OËh(yíDOÙÙyÆ€þZØþ¦?ØÅÝåyÍAÝáÙÁÙÉÝ~Ö0?Ðþ
Éõ·òHíDõË?Ë?<!úÿ= üëÝ!xÝÍtñæ(õÍ´ñ= øñ·ò˜
ÙÃö
Ž@› ¼>¨¥Ôh¶¿ÉÃ¬Åëx-ÐÍÎÂSÞùx9?ë+¨­ÅøÉ{Î—@}·ÈËøÅÕ|Í{Í{„gãíZëáãíJDMá0Í|,7È}ÆoË¸ÉÍ@¾ #øyîO!@9ùi&ÝéåååÝ9Ù.Ù>ÍÇ8Í­?Ë= ÝuÝ+Ù-Ù(>Í‡0ßÍ­·áÍ‡8ÍÇ?áÑÁËx Íˆš, —7•8Æ€8Æ€8oÝãÙåÅxËøÙ¨æ€õËøÝåÝ!ÉáØ¯oGOW_gÉ·ËËËËËÉ·ËËËËËÉ|Ù„Ùg{Ù‹Ù_zÙŠÙWyÙ‰ÙOxÙˆÙGÉ|Ù”Ùg{Ù›Ù_zÙšÙWyÙ™ÙOxÙ˜ÙGÉxÙ¸ÙÀyÙ¹ÙÀzÙºÙÀ{Ù»ÙÀ|Ù¼ÙÉÙxÙ¨òêxÉËx(ÍôÈ?É}Ù½ÙÀ·ÈÃÇ}ÖÚs<þ(ÐÙÅÕåÍs7Í|= ùÙ|Ù¤Ùg{Ù£Ù_zÙ¢ÙWyÙ¡ÙOxÙ ÙGÃ|
ÙÅÕåÙÍ­ÙÍþÙÍ‚
ë}·ÈËx>Â( Í­}Æ€Ë/Æ€oÖõÙÅÕåÍö
Í
-ÅÕåÍ‚
}áÑÁÙáÑÁã¼ã0ãñÙÉÙÍ-Í‚
ÙÍ,Ù}þlØÅË¸ÍàÁ8	Íö
Í5Í˜
Ëx(Í
Ù-ÙÍàõ8Í‚
Ù-ÙÍà8Ù,Í‚
}þl8;Ùª*ªª!ªÍ˜
ÝåÝ!>Í5ÝáÍ­Í˜
Í˜
ÅÕåÙÍ­--Ù-Í
ÙáÑÁÙÍ "Úë"Ìéå*Æ·íB"Æí[Ä·íRëáÚví°É*Æí°"ÆÙÉ^#V#Õ^#V#N#FáÉÝáëO/o&ÿ9ùëí°ÝéÑO/o&ÿ9ùëí°éÝáë!àÿ9ùëÅ(¯üí°Á> ‘(G¯üÝéÝá!àÿ9ù ¯w#üÝéÝáEÍ»¶wÝéÝáÑ}“8÷<OCÍ»_A¯³Ë#0¶w#¯óÝxæøÆo&9xæ<G¯7ýÉåÙëãs#r#Ñs#r#q#pÉÝáxë!D9Nå	#ã¹8y#·(Oí°áùÝéÝáx!D9Nå	#^#VÜÝáëh&D9í°! 9ùÝéÝá! 9^#Vh&D9í°!"çÝáëx/o&ÿ9ùp#Hëí°Ýé·íRØ>Ã( ·íR·íB0	É>‘Ã( ·íRëêrðøÉÕë·íRëáë·íR!È+ÉÍàõÍ±	ð·íR!À+ÉÍàõÍ±	ðÍs!Ð+ÉÍàõÍ±	ðÍs!ÈØ+ÉÍàôÍ±	ïÍs!ÈØ#ÉÍàôÍ±	ïÍs!Ø+ÉÍàõÍ±	ðT]KBë!z·>Í@ ë¶¾ â#÷ÚÍ@¶w#ùëùÝéÍ@/¦w#øïÍ@¦w#ùãýáÝá!9ë! E9ýéÝá!!9~·(¯+FÍ»¦!"9ù!(#Ýé>¯2èýá*ÒÍã¯á"âýå|· >"2ÐÉ:è·(
Í· *âwÉÍó*â6ë!\$í°É!çÅåí[Òþ (úÍ§–(
áÁã·É#ëÁÁþ:À~ÉCONÁTRMÁKBD‚LSTCAUXÄUSRÅ>¯2èÍj:Ð·À*âË®~æÀÍ1:Ð·À*â:è·€€(@q##pÉÍ[*âë:è·(
ÕÍÑñÅÍÁ<Àx2ÐÉ*â6#ûÉ"â~æÀËv(
>ÍÇÍË~È*âåëÍá< >ÿ2Ð6Éã"äãå!Â"âáÉã"äã"âË~À>2ÐÉã"äã"âËvÀ>2ÐÉ>¯ã"äãå!Â"âË®õÍéñ·(ÍâáÉ!Ñ~þ8>~O6~*Ò"Ô‚
,,ñ,-ÈØxî€GÉgª?+2×n¶*ï8tÐÐzˆˆˆˆ~«ªªªª,->Ê( ËxÂ( ÙÍ™Ù}.•õÍö
ÙÍ‡ÙÍ‚
ÅÕåÙ,Í
ÙáÑÁÍö
ÝåÝ!>Í5Ýá,ÙÍ£-ÙÍ
ñÅÕåo&0%Í	Ù,Í˜
ÙáÑÁÍ
}þgÚsÉ}ŠØ‰}é¢‹.:}Žã8Žc~I’$I~ÍÌÌÌL«ªªª*ÙÍ£Ù·ËxõË¸Íö
}þˆ0GÅÕå,ÍÑåË<Ë}áõÍ	,-(-ÙñáÑÁõÍ‚
ÝåÝ!>ÍJÝáñ0
õÙÍ™ÙÍ˜
ñ…o8	ñÈÙÍ‡Ãö
á>Ã( m.`1pF,þåt6|‰„!wS<ÿÃ.zÒ}[•|%¸FXc~üïýu€Ò÷r1}·ÈÝåÙÍ‡Ù¯Ëx(<Ë¸õÍà8ÙÍö
ñËÿõÙÏŽé!~JÙÍà0Í/OÝ!Ï>ÙÝÍtÙÍà8= ìÙÝÙÙÍoËøÍ
ÅÕåÍtÍ˜
ÙÍ‡Í
ÙáÑÁÍö
ÝåÍ/ÝáÙÍoÍ
ñ0
õÙÍ-Í‚
ñÝáËOÈËøÉçÏÌTöô¢0	jÁ‘
€µžŠoD€‚,:Í€Track-Info

å	
"â~æÀÊ±*æ¯w#wx±(9ÅÕÍ*âë:éOÍÑÁ· Õ*â-4 #4Ñ!€ë*æ4 #4Ã*â-N#FÚÿq#püÿV+^ë·íBÐëq#pÉÁÑíSâÅåÍ[Ñ·íRÚ'*â	s#r$	s#rÉÍMÀëÍ<À?ýá*ÒÍã¯áýåÍMÀåÍóáåë!\í°áåëÍÑ<(	!\$í°É>2ÐÉ>¯2èÍMÀ:Ø·>!(ë*â\$í°\Í<(Ï!4°í°:è· í[1Ã°ÕÍ\ÍÑ!€ë·(é7"â~æÈ> 2ÐÉ"æíSèëá"âNs#Frë·íB(Zë#\:Üí°¯üå\ÍÑ<(?*æ"}íKèÅÕÍ\!ÍÑÁ· !*}#"}!€ëx± Û\Í*âéÝ*â>ðÃ* ÍÉþÐ2ÜÉ"ðëáã"ò{æü_!Þ"øÝ*ÞÍâwþ(6þ(2þ(-þ()þ(6þ(8þ 0þ Ù:Ý·(ÓÝ*äÃ yº(È~#ÍÊÀúþ+Í (±ï(« 6Íâ6#6
#"ÖÉ*â:Ð· y~Ëo pæ .##~·ò˜åÍ»á(å.6á¯w4Æ._~þ =*â##55= *Ôí[Ö·íR8ÿÍë*Ô~#"Ô= Í£}== Í¯}Íµ}*âËî#w+É#~+É>Éå*â~æþ('Ílþ!0þ(Ë®ñ]ÅÕÍlÑÁþ!8Ë®ï¯áÉÝ!]Ý~·Èþ-ÀÝ#É8Ý~·È>2Ð7ÉåÍlË®áwÉ>¯OÅÍñÁÍ%ÈÅåÍøÑÁÍ7ØÌ„ës #rëÉÍñÍ%ÈÅåÍ¤ÙáÁÍ7ØÙÌ
ÙÃÒåëÅÕÍlÑÁþ(þ(Ë®êáqÉÍlþ(Ë®þ
(þ ïÍlþ
 Ë®É*âO:Ð·À~æ ##å~Æ._qá4ð(þ(áÅå=Ê¦==Ê©=Ê¬Ã²*èÝnÝf}´(HíR0ÝnÝfåÝ"øÝáã 
Ý^ÝVÝåMDÝnÝfÝåÝÝuÝtÝqÝpÝåÑ*øs#rÑ*òs#rÉÝåá"Ä*ð	ÝåÁ	ÚvíKÆíB!Ú1>ÿÃ( ëáã~#fo{æü_ë"ð*ÞåÝá·íR0RÝnÝfå·íR0ÝáðáÕýáíKðýqýpýuýtÝsÝrÝåáÝNÝFÍ(	Ý^ÝVÕÝáÝåáÝNÝFÝ^ÝV*ÞíSÞÕÝáÝuÝtíKðÝqÝpë	·íRÀÕýá*Ä·íR(ý~Ýwý~Ýwýnýf	ÝuÝt¯ÉÝåá"Ä6#ûÉÍL*ôÉÍL*öÉ!"ô"öÝ*ÞÝNÝFy°(*ô	"ô*ö·íB0íCöÝnÝfåÝáØ*Æûÿ	í[Ä·íRØë*ô"ô*ö·íRÐíSöÉí[Äs#rÉ^#Vë"Ä"Þ6#ûÉ>¯O"è¯w2Ðx2ê*â"í!G"âá"äá Í'Íz*í"â*äé>¯2ì"è*â":ê¾È4^qÉ*â##~·È6Í»È>ð2ÐÉ}ÃÇÁÑÅÝ*ÒË|(Í„ëëË|(	Í„Ý6-Ý#ÕÍÇáÍÉí[ÒÝåá·íRMë‘8(Gå> ÅÍÇÁ÷áAÈ~ÅåÍÇáÁ#óÁÑÙáÑÁÙÅÝ*ÒÕÍ(¾ÁÑÅÍÉËC!¢ ¿!¦¸TRUEFALSEÍÉ!9N#ÍZÑùÕÉá~#·(G~ÅåÍÇáÁ#õé>ÍÇ>
ÃÇ"âË~(ÕÍlÑ»(þ(þ!0(Ë®è!É!É>¯2èíSæÍ{:Ð·ÀÍ1:Ð·À*â6Ð##ww#w$w#wÖÿ:è· å¯Í
á##N#F*æ·íBÈ>2ÐÉå¯w#w#í[æs#rá>Ã
"â~æÀÈÍ¯*â-¯w#wÔÿw##>Í
Í¯Ã‚ã"äã"â~æÀÀ>2ÐÉ:Ð·ÀåÍ[ë·íRá0¯Í
*â4À#4É>™2ÐÉ:Ð·ÀåÍ[·íR> *â4 #4(>áÍ
í!G"âá"äá"ê!\Íã¯*ê:ì· ÍOÍs!Ð~6·go(Ýåá\íRë*ès#r£Æí_2ËÉëÝáÁáx±(sx±(T]í°ÝéDMÝáÑáx±(ôíR0í	ë	ëí¸ÝéU(ÍžÝáO/o&ÿ9ùq#ë(í°Ýé!€>F¸0#(~þ (þ	 #ï](~þ (þ	(#ï}“( Õi&TÉÑÁÕ-a%Ã£}Í§oÉ*é!Ð~6o&ÉÍ|µÈ:Ýõ¯2ÝÍ!ñ2Ý}þÀÝá:Ð·ÈÝá_Ýá_ÕÍ{Ñ¯2Ý*Î|µÝåáíKÌíB	"Î· ÕÕåÍÙÑz· Í^C
User break+= Í
I/OÍ
Run-timeÍ error {ÍµÍ, PC=*ÎÍ°ÍNot enough memoryÍ
Program aborted
:Ø·Êm'ÃáÑÑé1!ÂÖÿÍe!î!ƒÖB×>ÍÕÍœÈá>ò2ÐÉ2éë*âËf(/Ë¦:éËG(##~++· :éËO x· y·úDÅÕ!Í»ÑÁ Q*â:éËG(Ëî##~Æ.Õ_ÑÖ.Í›í âg<ò]=<Í›*â##æw ÅÕåÍ¯áÑÁ Õ+Ñ4 #4x±ÂëÉ>™>ð2ÐÉõ:éËG(ëñÉ"âÍ¯Èæ"*âËæËnÈË®*âåÅ0ëÍÁáëÍ·ÉÁÑíSâÅåÍ[Ñ·íR8@*â	N#F#s#rÍ-	0}æ)ëíjëS\*â##w+	N#Fë·íB	ÈÕåÍ¯Ñár+sÉ>‘2ÐÉÕÙáÙ!T]>)ëíjëÙ)Ù0	0= ïÉÍ^·íR!À#ÉÍ^ëÉ*â^#V#ÕN#F#^#VáÉ>¯2èÍ±:Ð·ÀÍ1:Ð·À*â6Àåë#Íá-¯Nw#FwÖÿq#p#6€#w#w#wÉ"â~æÀÈÃ‚>">!DM!ð"æÝáÑáÝåÅÍþÁ:Ð·À*ðíBÈ:éþ!>™(>ð2ÐÉ>">!"æÝáÁÑáÝå2éÍ»>You have 5 seconds to press <ESC> to abort submit process ... ÍÎÍ !Í	Ù!„ÖÍÒÍ }îoå!„ÖÍ-ÅÕå!Ž@ÙáÑÁÍêÑ}£oËEÊŸ!!„ÖÍ-ÅÕå!Í	ÙáÑÁÍê	Ù!„ÖÍÒÃU!Í ËEÊë!!ºÍª!ƒÖÍEÍ ÍœÍÎÍ *ƒÖ&å!ÑÍ€ËEÊë!!ŠÖåÍN	a:$$$.subÍq!ŠÖÍ”ÃÕ ÙáÑÁÍêÑ}£oËEÊVu!Track-Info

å	
cache routines
;	8.	Disk IO ( include FL512.MAC ),
;		  - low level disk IO.
;	9.	Data storage etc. etc. to end of RAM.
;	10.	Routines that are moved to address 0 in system page.
;
;
; PJB's nth law of programming:
;  The number of bugs that will appear when completing a program
; is inversly proportional to the time you have told people it
; will take to complete.
; For an example of this see below:


	ASEG
	.Z80
	TITLE Microbee 512k CP/M 2.2, Enhanced BIOS.


; Approx date of last modif;	*********************************************************
;	*							*
;	*	=========================================	*
;	*	   --- MicroBee Enhanced DRAM BIOS ---		*
;	*							*
;	*	  Bios for 128k, 256k & 512k MicroBees.		*
;	*	      (c) 1986 by Peter Broughton.		*
;	*	=========================================	*
;	*							*
;	*	Derived from 128k BIOS ( ver. 6 )		*
;	*	(c) Matthew Starr for MicroBee Systems.		*
;	*							*
;	*	Features :					*
;	*	 Compatable with 128k BIOS version 7,		*
;	*	 ication, version num. to indicate
; released versions only.
version	macro
	 db	'2.2'
	endm

date	macro
	 db	'17th May, 1988'
	endm


true		equ	-1
false		equ	not true

;	Include file containing customisation options.
	include	CUSTOMT.OPT

test_code	equ	false	; useful for testing (if code in place)

name_protect	equ	true

scramble	equ	false

out_50h		equ	50D3h



; write value to map port
map	macro	value
	 ld	a,value
	 out	(map_port),a
	endm

; screen flag testing code
sflag	32k - 416k Memory drives (M: & N:),		*
;	*	 32k - 128k Disk Cache,				*
;	*	 Preselectable disk types,			*
;	*	 12 128 byte function keys,			*
;	*	 Storage of BDOS, CCP, SHELL in backplane,	*
;	*	 User selectable keyboard driver in backplane,	*
;	*	 System configuration window in backplane.	*
;	*	 Etc., etc...					*
;	*							*
;	*********************************************************
;
;
;
;
;	Structure of code :
;	1.	Customisation file ( include CUSTOM.OPT ).
;		  - also include standardmacro	sc_offs,char,oldmap
	if	test_code
	 map	sys_vdr
	 ld	a,char
	 ld	(8000h+sc_offs),a
	 map	oldmap
	endif
	endm

psflag	macro	sc_offs,char,oldmap
	if	test_code
	 push	af
	 map	sys_vdr
	 ld	a,char
	 ld	(8000h+sc_offs),a
	 map	oldmap
	 pop	af
	endif
	endm


; Disk types ...

ds40	macro
; double sided, 40 track, 386k, Microbee standard 5.25"
	db	xltd-xlt_base
	db	1
	db	3
;
	dw	40
	db	4
	db	15
	db	1
	dw	194
	dw	127
	db	192,0
	dw	32
	dw	2
	endm

ss80	macro
; single sid file CPMCALLS.MAC.
;	2.	Boot sector ( 512 bytes, max 128 used ).
;	3.	BDOS ( include BDOS.MAC ).
;	4.	Visible BIOS ( < F000h ),
;		  - tables, boot, serial, links to later code etc.
;	***	From this point code is hidden by screen RAM.
;	5.	Initial handling of some standard calls,
;		  ( including disk IO ), disk select routine,
;		  RAM disk routines.
;	6.	Console IO ( include CON512.MAC ),
;		  - screen, keyboard link, serial, parallel IO.
;	7.	Disk cache ( include DB512.MAC ),
;		  - all disk Track-Info

å	
+2	; where BDOS is saved to


;******************************************************************
;*								  *
;*			  BOOT    SECTOR			  *
;*								  *
;******************************************************************

	org	100h	; not writing a sysgen compatible file,
			; but a SETSYS compatible file.

	.phase	80h

; Boot sector has been modified to boot a double sided disk from a
; BN54, BN55 or BN56 boot ROM.
; NB. This only means checking for a BN55, it requires track # 159 for
;	thed, 80 track, 386k, Microbee standard 3.5" CIAB
	db	xltd-xlt_base
	db	2
	db	3
;
	dw	40
	db	4
	db	15
	db	1
	dw	194
	dw	127
	db	192,0
	dw	32
	dw	2
	endm

ds80	macro
; double sided, 80 track, 776k, MicroBee standard 3.5" Modular
	db	xltc-xlt_base
	db	5
	db	3
;
	dw	40
	db	5
	db	31
	db	3
	dw	0C2h
	dw	127
	db	80h,0
	dw	32
	dw	4
	endm

ds82	macro
;double sided, 80 track, 782k space, Dreamdisk format
	db	xltd-xlt_base
	db	1
	db	3
;
	dw	40
	db	4
	db	15
	db	0
	dw	391
	dw	25s_map
; Cold start BIOS
	jp	boot_accept


; INIT ( the ratbags! ) destroys boot sectors > 128 bytes
	if	($-boot_pos) gt 128	;512
	 error	boot sector too big
	 dw	$-boot_pos+zero
	else
	 ds	512-($-boot_pos)
	endif

boot_length	equ	$-boot_pos

	.dephase

;-----------------------------------------------------------------------

	.RADIX	16D

	.PHASE	ORGAD

	include	BDOS.MAC

;----------------------------------------------------------------------

; ****	START OF BIOS

	.radix	0AH
e first track on side 1, rest require # 79.

; byte to check for BN55
bn55_flag	equ	0EF00h
bn55_val	equ	0

	ld	sp,80h

	ld	de,0*100H+1	; track 0 sector 1
	ld	hl,boot_pos
	ld	bc,512*10
	call	boot_rom+39H
	jr	bc_1

; double side boot flag must be at offset 11h for compatability with SETSYS
	if	$ gt 91h
	 error	boot flag not in correct position
	else
	 ds	$-91h
	endif

boot_flag:
	if	boot_ds
	 db	79
	else
	 db	1
	endif

bc_1:
; next track
	jr	nz,un_boot

	ld	de,1*100h+1	; single5
	db	0F0h,0
	dw	64
	dw	2
	endm

ds84	macro
; double sided, 80 track, 784k, PJB's format
	db	xltd-xlt_base
	db	1
	db	3
;
	dw	40
	db	5
	db	31
	db	3
	dw	196
	dw	127
	db	128,0
	dw	32
	dw	2
	endm

ds8b	macro
;double sided, 80 track, 776k space, Beeboard format
	db	xltd-xlt_base
	db	1
	db	3
;
	dw	40
	db	4
	db	15
	db	0
	dw	389
	dw	127
	db	0C0h,0
	dw	32
	dw	4
	endm



	include	CPMCALLS.MAC


biosv		equ	0	;points to BIOS warm start
iobyte		equ	3	;iobyte
usrdfd		equ	4	;

bios_type	equ	7	;diff. for each radical change

bios_type_name	macro
		 db	'7'
		endm


; Configuration constants
; see CONFIG block for rest of constants

num_drives	equ	tot_dr

; hardware values

pioa_data	equ	0
pioa_ctrl	equ	1
piob_data	equ	2
piob_ctrl	equ	3

; 146818 Real time clock addresses if fitted
rtc_addr	equ	4
rtc_read	equ	7
rtc_write	equ	6

col_port	equ	8		;color control, background port
vwait_off	equ	9		;out anything to this to kill vwait
rom_port	equ	0Bh		;bit 0 con sided
	ld	a,(boot_flag)
	cp	1
	jr	z,bc_2
	ld	de,79*100h+1	; double sided on BN54, BN56
	ld	a,(bn55_flag)
	or	a
	jr	nz,bc_2
	ld	de,159*100h	; double sided on BN55
bc_2:
	ld	hl,boot_pos+512*10
	ld	bc,512*10	; +(cpm_end-orgad-512*9)+1
	call	boot_rom+39H	;offload into RAM
	jp	z,good_boot


; print message saying BOOT unsuccessful
un_boot
	ld	c,'Z'-40H
	call	boot_rom+0CH	;CONOUT
	ld	hl,message
	call	boot_rom+33H	;flash message, get key
	jp	boot_rom	;try again

message:
;	db	' SYSTEM UNRbyte with user_num*16+def_drive
cpmv		equ	5	;system call vector
viewdrive	equ	8	;b0-3 are currently viewed drive

L0050	equ	50h
DFCB	equ	5Ch
DBUFF	equ	80h
TPA	equ	100h

ORGAD	equ	system_start

; Where CP/M is loaded to by 'offload' in the BOOT RAM
boot_pos equ	0A000h

; BOOT ROM location (for bootup only)
boot_rom	equ	0E000H

; system page addresses
check_ram_m	equ	end_sys_r	; previous pages for m (for check)
check_ram_n	equ	end_sys_r+1	; previous pages for n
bdos_save_addr	equ	end_sys_rtrols rom-read
crtc		equ	0Ch		;6545 .. 4 ports
beep_port	equ	piob_data
vml		equ	1Ch		; premium pcg control etc.
;vml		equ	0		; Equate to 0 to test for standard
map_port	equ	50h		;memory map control port
speed_port	equ	9		;IN here controls CPU speed
speed_value	equ	2		;'IN' value for fast (A9 high)

vdu		equ	8000h		;character RAM/ CHAR ROM
pcg		equ	8800h		;PCG ram/ colour
col_ram		equ	8800h		;where colour ram starts
dden_sel	equ	3		;bit for DD in dden_byte


; status line positions
status_staEADABLE - PRESS <RETURN> TO TRY AGAIN ',80h
	db	' BAD SYSTEM ',80h

	if	($-80h) gt 80h
	 error	boot part 1 is too big !!!!
	endif

	.dephase

	.phase	boot_pos+($-100h)

good_boot
	di

	map	sys_page
; move system to correct locations
	ld	hl,boot_pos+512
	ld	de,orgad
	ld	bc,cpm_end-orgad
	ldir
; move stuff into system page
	ld	hl,boot_pos+sys_page_r-100h
	ld	de,0
	ld	bc,end_sys_r
	ldir
; put bdos into system page
	ld	hl,orgad
	ld	de,bdos_save_addr
	ld	bc,bios-orgad
	ldir
	map	bioTrack-Info

å	
store in system page
fn_store	equ	8000h-(num_fn_keys*128)

; extended DPB offsets
dxlt		equ	-3		;ix offsets for xlt tab offset
dflags		equ	-2		;b0 if up/down, b1 if 80 track
dsecmsk		equ	-1		;AND sector mask


; Misc
wrual		equ	2		;write to unalloc from CP/M

; ASCII codes
cr		equ	0Dh
lf		equ	0Ah
tb		equ	9
cls		equ	1Ah
xon		equ	11h		;Xon code (start xmission)
xoff		equ	13h		;Xoff code (stop xmission)

;	.list
; BIOS jump table...

bios:	jp	boot_accept	;Post cold boot
wboote:	jp	wbootrt	equ	vdu+(24*80)+2
pjb_sl		equ	status_start+2
fast_sl		equ	status_start+16	; 'fast' message
swap_a_m_sl	equ	status_start+23	; pos of 'A<>M' message
lock_sl		equ	status_start+30	; pos of lock message
fn_sl		equ	status_start+42	; 'fn pressed' message
fn_on_sl	equ	status_start+37	; 'fn active'
clock_sl	equ	status_start+52	; pos of time on status line


num_sl_msgs	equ	5	; number of messages on status line

; status line refreshed after this number of BIOS calls
cycle_max	equ	16

; Start addres mask
	db	0		;extent mask
	dw	0		;blocks per diskette
	dw	0		;# directory entries
	db	0		;alloc 0
	db	0		;alloc 1
	dw	0		;dir check vector size
	dw	0		;system track offset


; Sector translation tables
xlt_base equ	$
; spare room for up to 54 sector long xlt table
xlte:	db	01,02,03,04,05,06,07,08,09
	db	10,11,12,13,14,15,16,17,18
	db	19,20,21,22,23,24,25,26,27
	db	28,29,30,31,32,33,34,35,36
	db	37,38,39,40,41,42,43,44,45
	db	46,47,48,49,50,51,52,53,54
;
; The positions of xltc & xltd mus		;Warm boot

instat:	jp	v2		;Console status
conin:	jp	v3		;Read KBD
bconout:jp	vconout		;Write cons char in C

prntr:	jp	vlistout	;Print char in C

puncho:	jp	v6		;PUNCH out (1200bd output)
punchi:	jp	v7		;READER in (1200bd input)

; disk routines
home:	jp	v8		;Restore to trk 0
seldsk:	jp	v9		;Select disk (can be logical disk)
settrk:	jp	v10		;Seek track [C]
setsec:	jp	v11		;Set sec [C]
bsetdma:jp	v12		;Set "DMA" address
read:	jp	v13		;Read a CP/M sector
write:	jp	v14		;Write a CP/M sectoses for routines in system page (from .SYS file)
bios_sys_start	equ	5800h
print_s_line	equ	bios_sys_start+6
set_up_s_line	equ	bios_sys_start+9

; .SYS file header values
hdr_pos		equ	8000h		;examine header here
load_pos	equ	8080h		;where to initially load to
dbs_start	equ	0		;must be <= the bios address
dsh_start	equ	2		;where file loads to
dsh_length	equ	4		;file length


; page 0 addresses
xbs_rst		equ	28h
cpm_fcb		equ	5Ch
fcb_len		equ	16
bdos		equ	5		;where system call vector goes

; vt not be changed
; strange modification of xltd for standard 3.5" ds
xltc:	db	22,25,28
	db	21,24,27,30
	db	23,26,29
;
; "shifted" 3 sector skew for 10 sectors designed to maximize
; the time between steps
xltd:	db	2,5,8
	db	1,4,7,10
	db	3,6,9


;	.list
; Data which is changed by INIT for varying requirements ..
sh_wanted
	defb	init_sh		;=0 for CCP, =1 for shell
col_mode
	defb	init_col_mode	;color mode port value
col_char
	defb	init_col	;color character value
snum_drives
	defb	tot_dr		;r
	jp	vlistst		;printer ready check
l5430:	jp	v16		;sectran
;
	defb	bios_type


; default 6545 table, reloaded on warm boot
crtc_tab
	defb	108-1,80,89,37H,28-1,5
; this value is used as an ON/OFF flag for the status line
s_line
	if	status_line
	 db	25
	else
	 db	24
	endif
	defb	26,48h,10,10+20h,10,20H,0,0,0

	if	preset_disks

; DPH's for preset disk types
dpbase:	dw	0,0,0,0,dirbuf,disk_A+3,csv0,alv0
	dw	0,0,0,0,dirbuf,disk_B+3,csv1,alv1
	dw	0,0,0,0,dirbuf,disk_C+3,csv2,alv2
	dw	0,0,alues to write to mapping port ..
normal_map	equ	4		;screen switched in at F000
bios_map	equ	0Ch		;screen switched out
vdr_map		equ	14h		;screen switched in at 8000

; important pages
sys_page	equ	0Dh		; page for system save etc
md_page_1	equ	0Fh		; page with m_drive directory
sys_screen	equ	5		; system page plus screen enabled
sys_vdr		equ	15h		; ditto at 8000h

; system page addresses
grafix_addr	equ	4000h		; graphics driver default

num_fn_keys	equ	12		; number of fn keys

; function key number of drives starting at A:
snum_floppies
	defb	tot_dr		;number of above which are floppies
pr_baud
	defb	2	;printer baud rate code - 1200 baud default
send_lf
	defb	1	;zero if linefeeds are to be filtered
; changed by INIT for serial/ parallel printer selection ..
i_iobyte
	defb	81h	;initial IOBYTE - parallel
use_xonxoff
	defb	0	;nz if xon/xoff used for serial port
submit_flag
	defb	0	;nz if submit in progress (or is that process?)

	defs	5	;expansion

; RS232 comm. parameters which se0,0,dirbuf,disk_D+3,csv3,alv3

	else

; DPH's for non preset types
dpbase:	dw	0,0,0,0,dirbuf,0,csv0,alv0
	dw	0,0,0,0,dirbuf,0,csv1,alv1
	dw	0,0,0,0,dirbuf,0,csv2,alv2
	dw	0,0,0,0,dirbuf,0,csv3,alv3

	endif


dpb_base	equ	$+3

	disk_type_def		; puts in selected dpb's


; spare data room for custom format setup
	db	xlte-xlt_base	;sector xlate
	db	0		;"cylinder" and "don't correct" flag
	db	0		;sector mask
;
spare_dpb:dw	0		;sectors per cylinder
	db	0		;block shift factor
	db	0		;blockTrack-Info

å	
# safe chars left in buffer
; RS232 timing (setup by set_baud)
simult		defw	l1200	;address of txrx controller (l300/l1200)


; M-drive data
md_DPH
	DW	0,0,0,0,DIRBUF,md_DPB,CSV3,ALVM
;
	DB	0		;128 byte physical sectors

md_DPB:	dw	32		;128 byte sectors per 16k track
	db	4		;Shift factor for 2k blocks
	db	15		;Block mask
	db	1		;Extent mask
	dw	md_pages*16-1	;Largest block number - patchable
	if	md_pages lt 8
	 dw	63		;Max directory entry (if < 256k)
	 db	80h		;Blank allocation map (1 blockt format
num_data	defb	8		;number of data bits
parity		defb	1		;1=no par, 2=odd, 3=even
; +1 in next gives mid to late sampling; +0 early to mid
; parity is ignored but read through
r_num		defb	4*(1+8)+0	;4*(nstrt+ndata)+0
totalq		defb	(1+8+0+1)*4	;(nstrt+ndata+npar+nstop)*4
adj_fact	defb	13-1-8-0	;13-nstrt-ndata-npar


; default settings for options in Bshell companion programs
xfer_options
	defb	0,0,0,0,0,0,0,0
init_options
	defb	0,0			;these are actually used
others
	defb	0,0,0,0,0,0,0,0tc.
window_needs:
	dw	scn_in
	dw	get_rtc
	dw	put_rtc
in_fnstr
	db	false
fn_ptr
	dw	0	
	dw	ptr_out
linpos
	db	0		; cursor line
colpos
	db	0		; cursor column
cursor
	dw	vdu		; cursor address
	dw	is_closed	; check for key pressed
al_rev
	db	false		; caps lock
fast_cpu
	db	fast_speed	; run at 6.75 MHz
no_clock
	db	false		; set up by code
restore_db_pages
	db	db_pages	; So disable cache program can re-enable
user_addr
	dw	0		; Address of user program
	dw	mem_page	; Address of mem_page  = 2k)
	else
	 dw	127		;Max directory entries (if >= 256k)
	 db	0C0h		;Blank allocation map (2 blocks = 4k)
	endif
	db	0		;
	dw	0		;Check dir length
	dw	0		;System tracks


; 16 bit flag indicating it is PJB's BIOS
bios_flag
	dw	0AA55h

; type of system bios is assembled for
bios_id
	if	telecomputer
	 db	7
	else
	 db	3
	endif

; Space for 16 preset values etc.

; non zero to map logical A onto physical M
swap_a_with_m
	db	0
is_premium
	db	false		; initial value only
; force form
	defb	0,0,0,0,0,0,0,0
	defb	0,0

; map of which drives are 80 track ones
; this isn't actually used
tk80_drives
; It's now used to indicate 'cache-able' drives (set by user)
; 0FFh = don't cache
cache_map
	db	0,0,0,0

; Stuff for ZCPR
	defw	free_128_bytes
	defb	128
	defb	0
; 128 bytes for ZCPR and Bshell to hold multiple commands
; **	STARTUP command buffer
free_128_bytes
	ds	128,0


; align to 2 byte boundary ..
	defs	($ and 1)
pioa_vect	defw	par_int		;pio a int vector
piob_vect	deroutine

	ds	32-($-window_needs)

keyboard_fcb:
	db	1
	db	'BIOS    SYS'
	db	0,0,0,0

; N-drive data
Nd_DPH
	DW	0,0,0,0,DIRBUF,nd_DPB,CSV3,ALVM+(md_pages*2)
;
	DB	0		;128 byte physical sectors

nd_DPB:	dw	32		;128 byte sectors per 4k track
	db	4		;Shift factor for 2k blocks
	db	15		;Block mask
	db	1		;Extent mask
	dw	nd_pages*16-1	;Largest block number - patchable
	if	nd_pages lt 8
	 dw	63		;Max directory entry (if < 256k)
	 db	80h		;Blank allocation map (1 block = 2k)
	else
	 dw	127	atting of ram disk on cold boot
force_format
	db	format_m
; graphics driver start address, can be changed by graphics installation
;  program
gr_addr
	dw	0
; function keys active
fn_active
	db	true
; where WINDOW.SYS ends up
window_addr
	dw	0
click_length
	db	7
click_tone
	db	22
pages_for_md
	db	md_pages
dbuff_pages
	db	db_pages
pages_for_nd
	db	nd_pages
col_stat
	db	stat_col
max_pages
	db	total_pages
user_page
	db	0		;default value indicating no user program

	ds	16-($-swap_a_fw	int_rtn		;pio b int vector
		defw	0		;some spares
		defw	0
		defw	0
		defw	0
; may need to make some space here for 8530 VIS INT vector
; ...

dtr_max		equ	(end_queue-RS_queue)-5

r_ptr		defw	end_queue-RS_queue	;q_base index -
						; last posn read from
w_ptr		defw	end_queue-RS_queue	;q_base index -
						; last posn. written to
q_base		defw	RS_queue		;holds addr. of start of queue
q_max		defw	end_queue-RS_queue	;max index onto queue
						; (1 less than size)
dtr_limit	defw	dtr_max			;	;Max directory entries (if >= 256k)
	 db	0C0h		;Blank allocation map (2 blocks = 4k)
	endif
	db	0		;
	dw	0		;Check dir length
	dw	md_pages*8	;System tracks

sl_table
	dw	sl_pointers
sl_messages
	dw	sl_msgs

;-------------------------------------------------------

; BDOS scratch which needs to be referenced while the rest
; of the BIOS is swapped out
dirbuf
; dirbuf is shared with COLD BOOT code ..


	if	name_protect
start_check
	db	0FFh,11h,22h,00h
	endif


boot_accept
	ld	sp,bowith_m)

; these are FCB's for shell, CCP, window and fn key def's file
sh_fcb
	db	1		;drive A
	db	'SHELL   SYS'
	db	0,0,0,0		;ex, s1, s2, rc

ccp_fcb
	db	1
	db	'CCP     SYS'
	db	0,0,0,0

window_fcb:
	db	1
	db	'WINDOW  SYS'
	db	0,0,0,0

fn_key_fcb
	db	1
	db	'DEFAULT FK '
	db	0,0,0,0

; space for definition of cursor keys etc.
curs_key_tab
	db	'E'-40h,0,'X'-40h,'S'-40h,'_'    ,'Q'-40h,'D'-40h,0
	db	'R'-40h,0,'C'-40h,'A'-40h,'J'-40h,'K'-40h,'F'-40h,0

; required by window program eTrack-Info

å	
itialisation table
iotabl
; set up port A as a parallel output port
	defb	3,pioa_ctrl
	defb	pioa_vect and 0FFh	; parallel port o/p vector
	defb	0Fh,83h
; set up port B for correct directions, enable serial ints
	defb	5,piob_ctrl
	defb	piob_vect and 0FFh
	defb	0FFh			; bit mode
piob_dir
;	if	new_keyboard
;	 db	09Ah			; b7,b4,b3,b0 & b1 for keyboard
;	else
	 db	099h			; b7;b4;b3;b0 inputs
;	endif
	defb	80h+37h,255-10h		; b7=1 of first -> interrupt (on)
	defb	1,piob_data
	defb	20h	;24h		; iniot_stack

; bring this stuff down from CONIO.Z
	ld	hl,iotabl	;set up PIO

	if	scramble
	 ld	a,high decrypt
	 ld	(jp_decrypt+2),a
	endif

; initialization of PIO
; requires hl=pointer to dgos type IO initialization table
	{
		ld	a,(hl)
		or	a
		#if	z,brk
		ld	b,a
		inc	hl
		ld	c,(hl)
		inc	hl
		otir
		#cont
	}

; baud rate set to 1200 (set to correct value in go_cpm)

	call	pio_clr		;unconfuse PIO with reti

	im	2
	ld	a,pioa_vect shr 8
	ld	i,a

	xor	a
	ld	(usrdfd),a	;set bootos_map
	syscall	resdis
; loop to load in all files
	ld	a,5		; five files
	ld	hl,sh_fcb	; first FCB
	ld	iy,sh_loaded	; first data pos
sys_load_loop:
	ld	(temp_1),a
	push	iy
	push	hl
; copy file name into message
	inc	hl
	ld	de,loading_name
	ld	bc,8
	ldir
	inc	de
	ld	c,3
	ldir
	ld	de,loading_mes
	syscall	pristr
	pop	hl
	push	hl

; get .SYS file from A: drive.
; requires : hl -> FCB
	ld	de,cpm_fcb
; move this FCB to a working one
	ld	bc,fcb_len
	ldir
	xor	a
	ld	(cpm_fcb+32),a	;cletial port B output (DTR=1)
	defb	0



	if	name_protect
end_check
	db	0FFh,33h,44h
	endif


; checksum vectors
	if	dreamdisk_available
csv_size	equ	64
	else
csv_size	equ	32
	endif

csv0	equ	dirbuf+128	;32 reqd for DD 512 bytes/sector format
csv1	equ	csv0+csv_size	; or 64 required for dreamdisk fmt
csv2	equ	csv1+csv_size

; move $ on to correct position for csv3
	if	($-dirbuf) lt 128+(3*csv_size)
	 ds	(128+(3*csv_size))-($-dirbuf)
	endif

csv3:	defs	csv_size

; COLD and WARM boot -up disk to A0
	ld	(viewdrive),a	;clear initial viewed drive

; set IOBYTE to initial value
	ld	a,(i_iobyte)
	ld	(iobyte),a

	map	sys_vdr

	call	check_premium

	if	scramble
	 call	jp_decrypt
	endif

	sflag	0,'1',sys_vdr

	call	check_ramdisks

	sflag	0,'5',sys_vdr

; initialise disk buffer (if enabled)
	call	db_init

; print boot up message
	ld	de,smsg		;opening message
	ld	c,pristr
	call	bdosin

	ei

; now go onto common routines

	jp	gocpm



smsg
	db	cls,lf,tb,'Microbar CR
	ld	de,cpm_fcb
	syscall	opefil
	inc	a
	jp	z,sys_not_loaded

; read in header block
	ld	de,hdr_pos
	syscall	setdma
	ld	de,cpm_fcb
	syscall	reaseq
	or	a
	jp	nz,sys_not_loaded

; is the bios start value low enough ?
	ld	hl,(hdr_pos+dbs_start)
	ld	de,bios+3
	and	a
	sbc	hl,de		;get NC if bios < sh_bios
	jp	nc,sys_not_loaded

	ld	hl,load_pos
; read rest of file
	{
; hl = where to put it
		ex	de,hl
		push	de
		syscall	setdma
		ld	de,cpm_fcb
		syscall	reaseq
		or	a		;finished?
	stack - csv3 not used at BOOT-UP
boot_stack

; allocation vector space
; may be shared with code to load in .SYS files ( except for alv0 )
	if	dreamdisk_available
alv_size	equ	50	; enough space for ds 80 track with 2k blocks
	else
alv_size	equ	25
	endif

alv0	equ	$
alv1	equ	alv0+alv_size
alv2	equ	alv1+alv_size
alv3	equ	alv2+alv_size
alvm	equ	alv3+alv_size
end_alv	equ	alvm+(((32/2)/8)*13)	;=26 bytes

	if	scramble
decrypt:
	ld	hl,(start_check)
	ld	de,start_check+4-11FFh
	add	hl,de
	ld	dee '
	if	mem_128
	 db	'128'
	else
	 db	'512'
	endif
	db	'k CP/M 2.2, BIOS v'
	bios_type_name
	db	'.',cr,lf,lf
	db	tb,'Enhanced BIOS (c) '
my_name:
	db	'Peter Broughton.',cr,lf,tb,'Version '
	version
	if	not telecomputer
smsg_premium
	 db	'P'		; changed by check code
	else
	 db	'T'
	endif
	if	scramble
	 db	'S'
	endif
	db	', '
	date
	db	'.',cr,lf,lf
	if	name_protect
	db	'This disk belongs to '
user_name:
	db	'!@#'
	ds	30-($-user_name)
	db	'.',cr,lf,lf
	endif
	db	'$'

; I/O in	pop	de
		#if	nz,brk
		ld	hl,128		;point to next position
		add	hl,de
		#cont
	}

	ld	hl,load_pos
	ld	bc,(hdr_pos+dsh_length)
	map	sys_page
	ld	a,(temp_1)		; is this WINDOW.SYS
	cp	4			; or DEFAULT.FK
	jr	nc,not_window
; move WINDOW.SYS or DEFAULT.FK to correct position
	ld	de,(hdr_pos+dsh_start)
	push	de
	ldir
	pop	hl
	cp	3
	jr	z,is_window
	cp	1		; is KEYBOARD.SYS ?
	jr	z,loaded
; if .FK then load cursor key defs.
	ld	hl,hdr_pos+40h
	ld	de,curs_key_tab
	ld	c,16		; b already 0
	ldie,end_check-start_check-4
	ld	c,0
dcr1:
	ld	a,l
	add	a,(hl)
	and	7
	ld	b,a
	inc	hl
	ld	a,(hl)
dcr2:
	rrca
	djnz	dcr2
	add	a,c
	ld	c,a
	dec	de
	ld	a,d
	or	e
	jr	nz,dcr1

	ld	hl,encrypt_start
	ld	de,end_encrypt+4-encrypt_start
	ld	b,0
dcr3:
	ld	a,b
	add	a,c
	ld	b,a
	xor	(hl)
	xor	l
	ld	(hl),a
	inc	hl
	dec	de
	ld	a,d
	or	e
	jr	nz,dcr3
	ret

	endif

	if	$ lt alv1
	 ds	alv1-$
	endif

; load in .SYS files according to FCB's in configuration block
load_sys_files:
	map	biTrack-Info

å	
keyboard, previously this is disabled to stop the user
; interrupting the cold boot routines
; Actually the keyboard driver probably wasn't there anyway !
	ld	(disable_kbd),a

; Return from this routine
	jp	(hl)

loading_mes:
	db	'Loading '
loading_name:
	db	'FILENAME.EXT ... $'
not_loaded_mes:
	db	'not loaded.'
ld_mes_end:
	db	cr,lf,'$'


; make sure sufficent space for alv's
	if	$ lt end_alv
	 ds	end_alv-$
	endif


;	Warm boot
WBOOT
	map	sys_page
	ld	sp,boot_stack
	ld	hl,3
	ldr
	jr	loaded
is_window:
; if window then load start address
	ld	(window_addr),hl
	jr	loaded
not_window:
; is SHELL or CCP so move into first available address in system page
	ld	de,(sys_avail)
	push	de
	ld	(iy+3),c
	ld	(iy+4),b
	ldir
; if it exceeded available memory then reject it
	ld	h,d
	ld	l,e
	ld	bc,bios_sys_start
	or	a
	sbc	hl,bc
	pop	hl			; hl -> address in system page
	ld	(iy+5),l
	ld	(iy+6),h
	jr	nc,sys_not_loaded
	ld	(sys_avail),de		; next available address
	ld	hl,(hdr_pos+e to trk 0
v9:	call	accept
	dw	d_seldsk	;Select disk (can be logical disk)
v10:	call	accept
	dw	d_stk		;Seek track [C]
v11:	call	accept
	dw	d_ssc		;Set sec [C]
v12:	call	accept
	dw	d_sdm		;Set "DMA" address
v13:	call	accept
	dw	d_read		;Read a CP/M sector
v14:	call	accept
	dw	d_write		;Write a CP/M sector

vlistst
	call	accept
	dw	all_listst

v16:	call	accept
	dw	sectran



accept
; turn off the video so we don't execute it.
	push	af
	map	bios_map
	pop	af

	ex	(sp),ix		;get retu	(offs_start),hl	;on warm boot, go in 3 bytes after

; Get BDOS from system page, system page must already be enabled
	call	bdos_from_bp

; and into common routines..

; Common code used after COLD or WARM boot
gocpm
; call common routines
	map	bios_map
	call	common_boot

; Load in .SYS files
; this call is deleted by last part of load_sys_files subroutine
	call	load_sys_files

; Call to set up status line, must be done after loading system files
	map	sys_vdr
	call	set_up_s_line

; now dsh_start)	; run position
	ld	(iy+1),l
	ld	(iy+2),h

loaded:
	ld	(iy+0),true		; it is actually there
	ld	de,ld_mes_end
	jr	cont_loop

; file was not there or an error occured
sys_not_loaded
	ld	de,not_loaded_mes
	ld	(iy+0),false		; file not loaded


; continuation of loop
cont_loop:
	map	bios_map
; print CR, LF or 'not loaded'
	syscall	pristr
	pop	hl
	ld	bc,16
	add	hl,bc		; next FCB
	ld	c,7
	pop	iy
	add	iy,bc		; next data section
	ld	a,(temp_1)	; counter
	cp	4
	jr	nc,next_not_fkrn address/ save ix
	ld	(save_sp),sp
	ld	sp,bios_stack	;local stack to avoid bank sw crash
	push	hl		;save hl
	call	display_time
	ld	l,(ix+0)	;get address of routine
	ld	h,(ix+1)
	ex	(sp),hl		;put address on stack/ get hl back
	ret			;perform BIOS function
; .. and return to here ..
; bios_map must be enabled here
recover
	ld	sp,(save_sp)	;get old stack back
	pop	ix		;get ix back
	push	af
	map	normal_map	;turn video back on
	pop	af
	ret

; Intermediate stage before recover if wrong page iget selected user interface from system page
; and get hl --> address of start
; sys_vdr must still be enabled as this is in system page
	call	load_user_int

; Now jump to user interface
	map	normal_map
	ld	a,(usrdfd)	;Get last default disk
	ld	c,a		;CCP req this in C
	jp	(hl)



; execute extended BIOS function
x_bios_calls
	push	ix		;save ix
	ld	(save_sp),sp
	ld	sp,bios_stack
	push	af
	map	sys_page	; VDU MUST be out, switch in address table
;	map	bios_map
	pop	af
; rest of routine is
; no 'loaded' variable for KEYBOARD.SYS or .FK file so use dummy position
	ld	iy,save_p
next_not_fk:
	cp	2	; if next KEYBOARD then move to correct fcb
	jr	nz,next_not_kbd
	ld	hl,keyboard_fcb
next_not_kbd:
	dec	a
	jp	nz,sys_load_loop


	ld	de,ld_mes_end	; cr & lf
	syscall	pristr
	ld	de,ld_mes_end	; cr & lf
	syscall	pristr
	map	bios_map


; now delete call to this routine so it is only called once

	pop	hl
	xor	a
	dec	hl
	ld	(hl),a
	dec	hl
	ld	(hl),a
	dec	hl
	ld	(hl),a

; enable s in
recover_bmap
	push	af
	map	bios_map
	pop	af
	ret

; a faster bank swapping routine for the VDU driver,
; which puts the VDU at 8000h
govdu
	ld	(save_sp),sp
; use local stack in case user stack is at 8000h-8FFFh ..
	ld	sp,bios_stack
	map	bios_map
	call	display_time
	map	vdr_map
	jp	vduout
; which then jumps to here
retvdu
	map	normal_map
	ld	sp,(save_sp)
	ret

; do a BDOS call from the BIOS
bdos_func
	call	bdos
	push	af
	map	bios_map
	pop	af
	ret

; link to premium graphic now behind screen
	jp	call_xbios


; BIOS entry points vector through here
v2:	call	accept
	dw	const		;Console status
v3:	call	accept
	dw	mchinw		;Read KBD

vconout
	ld	a,(iobyte)
com_out
	and	3
	dec	a
	jp	z,govdu
	call	accept
	dw	ptr_out		;handles parallel AND serial

vlistout
	ld	a,(iobyte)
	rlca
	rlca
	jr	com_out

v6:	call	accept
	dw	pun_out		;PUNCH out (serial output)
v7:	call	accept
	dw	pun_in		;READER in (serial input)
; disk routines
v8:	call	accept
	dw	d_home		;RestorTrack-Info
	
å											
char recvd
	in	a,(piob_data)
	ld	b,a
	res	ser_out,b	;base for output

; and follow on to txrx ..

; the routine which handles one quarter bit time ..
; this was written so that each path in the program has the
; same time (except for start bit detection)
; (orig 146 T-states for txrx alone)
; the delay routine must delay for (3.375e+6) / Fbr / 4 - 162  Tstates
; excluding its final jump to CONT
txrx
	ld	a,d	;finished tx ing?
	or	a
	jr	z,nsend1
	and	3	;sending quarter?
	jr	nz,nsend2
	add	hs driver in backplane
link_graphics
	push	hl
	ld	hl,(gr_addr)
	ld	a,h
	or	l
	jr	z,no_grfx
	ld	(grfx_jp),hl
	ld	hl,recover_bmap
	ex	(sp),hl		; Restore HL, put return address on stack
	map	sys_screen	; system page with screen at 0F000h
grfx_jp	equ	$+1
	call	4000h		; Jump to graphics program
	map	bios_map
	ret

no_grfx:
	pop	hl
	or	-1
	ret


chk_break
; given char to save in c, store it on the queue
; but shift right if only 7 bits of data (8 bits including
; start bit) were read
	ld	it
	ld	a,(r_num)
	ld	e,a
; Adjust e:=e-2 for 4800bd or e:=e+1 for others
	inc	e
	{
		ld	a,(simult)	;low byte
		cp	l4800 and 0FFh
		#if	nz,break	;compensate for long lead in time
		dec	e		;to sample early to mid
		dec	e		;and not sample start bit (which is OK)
		dec	e
	}
; set up some things, then call simult routine ..
	call	jp_simul
; store character, and wait for parity bit to be gone ..
	call	chk_break
;
abort
	pop	ix
	pop	hl
	pop	de
	pop	bc
	pop	af
	ld	sp,(ssave_sp)
	ei
pio_clrl,hl	;shift hl up one
	ld	a,h
	and	+(1 shl ser_out)
	or	b	;b=the old pio B data with ser_out 0
	out	(piob_data),a
tecov2
	dec	d	;decrement tx counter
tecov1
	ld	a,e	;started rcving yet?
	or	a
	jr	z,notyet
	and	3	;receive quarter?
	jr	nz,norcv2
	in	a,(piob_data)
	and	+(1 shl ser_in)
	sub	1
	rr	c
rxcov1
	dec	e
rxcov2
	jp	(ix)
cont
	ld	a,d		;any rxing or txing to go?
	or	e
	jp	nz,txrx
	ret
;
nsend2
	or	a
	or	a
	or	a
	or	a
	or	a
	jr	tecov2
;
nsend1
	ex	(sp),hl
	ex	(sp),hl
	a,(num_data)
	cp	7
	jr	nz,st2
	srl	c		;since only 7 data bits
st2
	call	will_fit
	ret	z		;full, so no more can fit
	ld	(w_ptr),de
	ld	(ix+0),c
	in	a,(piob_data)
; now negate DTR if the buffer is too full
	{
		ld	hl,(dtr_limit)
		dec	hl
		ld	(dtr_limit),hl
		bit	7,h
		#if	z,brk
; negate DTR if less than 4 chars left in buffer
		res	ser_dtr,a
		out	(piob_data),a
	}

; we now know that a character was got, so if still spacing,
; wait for a bit time (this means a parity bit)
; Therefore,
	reti


; given de as an RS buffer index, give the next index in the
; circular queue and return address in ix
next_RS
	push	af
	dec	de
	ld	a,d
	or	e
	jr	nz,cal_ix
	ld	de,(q_max)
cal_ix
	ld	ix,(q_base)
	add	ix,de
	pop	af
	ret


; return de=next w_ptr and nz if there is room
will_fit
	ld	hl,(r_ptr)
	ld	de,(w_ptr)
	call	next_RS
	and	a
	sbc	hl,de
	ret




; save acc in memory to avoid an extra stack level
par_int
	ld	(ssave_sp),a
	ld	a,0
	ld	(par_flag),a
	ld	a,(ssave_sp)
jr	tecov1
;
norcv2
	or	a
	or	a
	or	a
	or	a
	jr	rxcov1
;
notyet
	in	a,(piob_data)
	bit	ser_in,a
	jr	z,mark
;
; note this path is longer, but it only happens once at start bit
	ld	a,(r_num)
	ld	e,a
	xor	a
	ld	(flag),a
	jp	(ix)		;(was ret)
;
mark
	ld	a,0
	jp	rxcov2



; Timing routines for each baud rate 300, 600, 1200, 2400, 4800

;l110 hahaha

l300
	ld	a,165
	{
		dec	a
		#if	nz,cont
	}
	jr	cont

l600
	ld	a,77
	{
		dec	a
		#if	nz,cont
	}
	jr	cont

l1200
	ld	a,33 breaking the input line will not affect operation
; of anything except that an extra stop bit time is added onto each
; character transmitted
	bit	ser_in,a
	ret	z		;it is already marking (stop bit)
; we may be reading through a parity bit, so wait a bit time ..
	ld	de,0*256+4
; and follow on to jp_simul ..


; set up for txrx call; ix=(simult), (flag)=-1, b=(piob_data) ..
jp_simul
	out	(vwait_off),a	;stop video waiting
	ld	ix,(simult)	;address of io routine
	ld	a,-1
	ld	(flag),a	;set for no 	ei
	reti

par_flag	defb	0	;nz if printer has NOT ACKed yet
ssave_sp	defs	2	;for saving SP when int. comes along
save_sp		defs	2	;save main stack in BIOS routines

; these defs belong to conio.z
; 10 levels of stack (need 9)
		defs	20
int_sp				;temp stack for int. RS232 input
RS_queue	defs	129	;where incoming RS232 chars are stored
end_queue			;last byte avail to RS232 buffer


	defs	2*32
bios_stack
	defw	recover		;final return address

map_save
	db	bios_map

; ***********************
	{
		dec	a
		#if	nz,cont
	}
	jr	cont

l2400
	ld	a,11
	{
		dec	a
		#if	nz,cont
	}
	jr	cont

l4800
	or	a
	jp	cont




; interrupt routine which receives an asynchronous character
int_rtn
	ld	(ssave_sp),sp
	ld	sp,int_sp
	push	af
	push	bc
	push	de
	push	hl
	push	ix
;; was it a false interrupt (i.e. pending but now irrelevant?)
;in	a,(piob_data)
;and	1 shl ser_in		;ignore old interrupts
;call	nz,will_fit		;if good int., is buffer full?
;jr	z,abort
	ld	d,0			;set for no transmTrack-Info
	
å											


; Function 5 : return ptr in hl to 128 bytes free
ret_128_byte_block
	ld	hl,free_128_bytes
	xor	a		;set Z flag - you can have it
	ret

; Function 6 : purge all buffering for drive [c]
; (elsewhere)

; Function 7 : purge all directory buffers for drive [c]
; (elsewhere)

; Function 8 : return number of floppies in system (follow hards)
num_floppies
	ld	a,(snum_floppies)
	ret

; Function 9 : tell BIOS to reselect drive on next access
ext_access
	ld	a,-1
	ld	(log_disk),a	;so match fails********************************
; * All code and data beyond this point may be occluded *
; * by the VDU at F000 when "out" of the BIOS		*
; *******************************************************


	if $ gt 0F000h
	 error	critical code above F000h
	 dw	$-0F000h+zero
	endif

; Continuation of routine to call XBIOS functions
call_xbios:
	push	hl
	push	de
	ld	e,a		;function number
	sla	e
	ld	d,0
	ld	hl,func_tab
	add	hl,de		;hl=table address
	ld	e,(hl)
	inc	hl
	ld	d,(hl)
	ex	de,hl		;hl=qu	$+1
	jp	0		; Jump to user program
	

; Function 26 : get data from the RTC chip (maybe over a network)
; this retries to ensure that no updates occurred during the read
; without disabling interrupts for too long
; Requires: HL = data pointer
;	     E = starting LOGICAL register (see ahead)
;	     B = number of registers to read
; Returns: A, HL, DE registers corrupted
get_rtc
	call	rtc_pars
	{
		call	read_clock
		call	verify_clock
		#if	nz,cont
	}
	ret


; Function 27 : put data to 
	ret

; Function 10 : set serial port baud rate to [c] until next warm boot
xbs_baud
	ld	a,c
	jp	set_baud

; Function 11 : receive serial character if available
; return Z if character in A, NZ if none available
; (RS_in is elsewhere)

; Function 12 : send serial RS232 character in C
send_RSc
	ld	a,c
	jp	RS_out

; Function 13 : set desired disk error mode in [c]:
; [c] = FF -> normal CP/M mode - bomb out if an error occurs
; [c] =  0 -> ignore errors (then use function 14 to detect them)function address
	pop	de
	ex	(sp),hl		;put hl on stack/ pop hl
	push	af
	map	bios_map
	pop	af

	cp	func_max+1
	ret	c		;execute function if valid
	pop	ix		;ignore function address
; a call to an 'unused' xbios function will end up here
dud_ret	
	or	-1		;error return - no such function
	ret			;go to recover



; XBIOS Function 0,1 : Set CCP mode
set_mode
	ld	(sh_wanted),a

; At this stage the pointers to the extended command line should be restored
; to their correct values
	push	hl
	lthe RTC chip (maybe over a network)
; this retries to ensure we don't get updated at the wrong time
; Requires: HL = data pointer
;	     E = starting LOGICAL register (see ahead)
;	     B = number of registers to write
; Returns:  A, HL, DE registers corrupted
put_rtc
	call	rtc_pars
	{
		call	write_clock
		call	verify_clock
		#if	nz,cont
	}
	ret


; support subroutines for get_rtc and put_rtc ..
; RTC_PARS:
; Requires: HL = data address
;	    B  = number of registers to operate on
;	    
error_mode
	ld	a,c
	ld	(derr_mode),a
	ret

; Function 14 : return status of last disk operation in [a]
; Z  -> all OK
; NZ -> physical error occured
ret_status
	ld	a,(erflag)
	ret

; Function 15 : Test status of key (in CON512.MAC)
;key_pressed

; Function 16 : Set programmable key buffer according to Microbee's definition
;set_mb_fkeys

; Function 17 : Read programmable key buffer
get_mb_fkeys
; zero fill as if all are empty (zero length)
	push	bc
	ld	b,12		; 12 fkeys
	{
	 ld	(hl)d	hl,free_128_bytes
	ld	(free_128_bytes-4),hl
	ld	hl,128
	ld	(free_128_bytes-2),hl
	pop	hl

	ret

; The next 2 functions allow a program to check for legal
; drives BEFORE calling the BDOS, thus stopping fatal
; "select" errors ..
; Function 2 : return number of drives starting at A
ret_drives
	ld	a,(snum_drives)
	ret

; Function 3 : return 1 if M drive implemented, 0 if not
ret_mdrive
	ld	a,1
	ret

; Function 4 : return interrupt vector table base
ret_ivec_base
	ld	hl,pioa_vect
	retE  = LOGICAL starting register
; Returns:  HL = pointer to RTC address list (xlat table+offset)
;	    DE = data address
;	    B  = number of registers to operate upon
rtc_pars
	push	hl
	ld	hl,rtc_xlat
	ld	d,0
	add	hl,de		;addresses pointer
	pop	de		;data pointer
	ret


; The RTC mapping table gives the following logical register numbers
; 0	Year of century
; 1	Month
; 2	Date
; 3	Weekday
; 4	Hours
; 5	Minutes
; 6	Seconds
; 7 	Alarm hours
; 8	Alarm minutes
; 9	Alarm seconds
; A-D	RTC R,0
	 #djnz
	}
	ld	hl,1024		; Maximum available space, hahahaha !!!
	pop	bc
set_mb_fkeys
	xor	a
	ret


; Function 24 : call graphics driver (elsewhere)


; Function 25 : Call user program.
link_user
	push	hl
	ld	a,(user_page)
	or	a
	jp	z,no_grfx
	call	mem_page	; Enable user's page (+ screen at 8000h ??)
	ld	hl,(user_addr)
	inc	hl		; Entry point for XBIOS call at +3
	inc	hl
	inc	hl
	ld	(user_jp),hl
	ld	hl,recover_bmap
	ex	(sp),hl		; Restore HL / put return address on stack
user_jp	eTrack-Info


å








	

number in A using table
mem_page
	push	hl
	push	de
	if	mem_128
	 and	3		; max allowed is 128k
	else
	 if	telecomputer
	  and	7		; max allowed is 256k
	 else
	  and	15		; max allowed is 512k
	 endif
	endif
	ld	hl,page_table
	ld	e,a
	ld	d,0
	add	hl,de
	ld	a,(hl)
	pop	de
	pop	hl
	out	(map_port),a
	ret

; values corresponding to pages 0 .. max (15)
; may be modified for different memory configuration
; eg. 256k, 320k
page_table
;	if	mem_128
;	 db	14h,15h,16h,17h		; forced to be 128k egisters A-D
;
rtc_xlat
	db	9,8,7,6,4,2,0,5,3,1,10,11,12,13


; READ_CLOCK: read B bytes from the RTC with addresses in the
; table at (hl) and put the data at (de)
; All regs preserved except A
read_clock
	push	bc
	push	de
	push	hl
	{
; Sync to the UIP bit with interrupts disabled, and then restore
; after the operation has been done
		call	rtc_sync	;sync with DI
		ld	a,(hl)
		out	(rtc_addr),a
		in	a,(rtc_read)
		ei
		ld	(de),a
		inc	hl
		inc	de
		#djnz
	}
com_pop
	pop	hl
	pop	d
	call	crtc_fill	;set up 6545 as desired (patchable)

	map	sys_vdr

	call	copy_inv	;set up inverses

	ret

; Call to check validity of ram disks and format if invalid
; system page must be enabled at this point
check_ramdisks
; Format M: if force_format is true
; or if previous size is different to current size
; Must also format N: if M: size is different
	sflag	0,'2',sys_vdr
	ld	ix,check_ram_m		; previous value for M:, +1 = N:
	ld	iy,pages_for_md		; +2 = pages for N:
	ld	a,(iy)
	cp	(ix)only system
;	else
;	 if	telecomputer
;	  db	14h,15h,16h,17h		; Telecomputer seems to use bit 5
;	  db	34h,35h,36h,37h
;	 else
;	  db	14h,15h,16h,17h		; 'Standard' 512k system
;	  db	54h,55h,56h,57h		; with screen in at 8000h
;	  db	94h,95h,96h,97h
;	  db	0D4h,0D5h,0D6h,0D7h
;	 endif
;	endif
	if	mem_128
	 db	0Ch,0Dh,0Eh,0Fh		; forced to be 128k only system
	else
	 if	telecomputer
	  db	0Ch,0Dh,0Eh,0Fh		; Telecomputer seems to use bit 5
	  db	2Ch,2Dh,2Eh,2Fh
	 else
	  db	0Ch,0Dh,0Eh,0Fh		;e
	pop	bc
	ret


; WRITE_CLOCK: as for READ_CLOCK, but write the data to the RTC
write_clock
	push	bc
	push	de
	push	hl
	{
		call	rtc_sync
		ld	a,(hl)
		out	(rtc_addr),a
		ld	a,(de)
		out	(rtc_write),a
		ei
		inc	hl
		inc	de
		#djnz
	}
	jr	com_pop


; VERIFY_CLOCK: return Z if the data at (de) matches the data in
; the RTC registers pointed to by (hl) for B bytes
verify_clock
	push	bc
	push	de
	push	hl
	{
		call	rtc_sync
		ld	a,(hl)
		out	(rtc_addr),a
		in	a,(rtc_read)
		e
	ld	(ix),a
	jr	nz,fmt_m_n
	ld	a,(force_format)
	or	a
	call	nz,fmt_m
; Format N: if previous size is different
	sflag	0,'3',sys_vdr
	ld	a,(iy+2)
	cp	(ix+1)
	ret	z
fmt_n:
	ld	a,(iy+2)	; is N: enabled ?
	ld	(ix+1),a	; this must be updated here
	or	a
	ret	z
	ld	a,(iy)		; find first N drive page
	add	a,3
	call	mem_page
	call	do_fmt
	ld	a,'N'
	ld	(9),a
	ret

fmt_m_n:
	call	fmt_n
	sflag	0,'4',sys_vdr
fmt_m:
	map	md_page_1
	call	do_fmt
	ld	a,'M'
	ld	(9),a
	map	sys_page
	ret

do_fm 'Standard' 512k system
	  db	4Ch,4Dh,4Eh,4Fh
	  db	8Ch,8Dh,8Eh,8Fh
	  db	0CCh,0CDh,0CEh,0CFh
	 endif
	endif


; boot routines that can be stuck behind screen to cut down
; code size before F000h
common_boot
; Set CPU speed
	ld	a,(fast_cpu)	;True (FF) for fast
	and	speed_value	;Set appropriate bit
	in	a,(speed_port)	;Set hardware

; put system linkages at 0000h, 0005h and 0028h
; set BIOS warm start and BIOS pointer
;	map	bios_map
	ld	a,0C3H		;JP opcode
	ld	(biosv),a
	ld	hl,wboote
	ld	i
		ld	c,a
		ld	a,(de)
		cp	c
		#if	nz,brk
		inc	hl
		inc	de
		#djnz
	}
	jr	com_pop


; RTC_SYNC: Wait for Update in progress bit to go to 0, and
; return with interrupts disabled to allow one register operation
; Returns: AF destroyed
rtc_sync
	{
		ei
		nop			;allow interrupt window
		ld	a,10
		di
		out	(rtc_addr),a
		in	a,(rtc_read)
		bit	7,a
		#if	nz,cont
	}
	ret


	if	scramble

jp_decrypt:
	ret
	nop
	nop

encrypt_start:
	db	98h,76h,54h,32h
	endif


; select page t:
	ld	hl,0
	ld	de,1
	ld	bc,256*32-1	; 256 directory entries is plenty
	ld	(hl),0E5h
	ldir
	ld	hl,md_name	; put label into ram disk
	ld	de,0
	ld	c,16
	ldir
	xor	a
	ld	b,16
d_f1:
	ld	(de),a
	inc	de
	djnz	d_f1
	ret

; directory label for RAM disk ( '-RAMDISK.M: ' set to $SYS )
md_name
	db	0,'-RAMDISKM',':'+80h,' ',0,0,0,0


; on every nth call to this subroutine 
;  and if status line enabled
;	call status update routine (in system page, from bios file)
; all used registers must be s(biosv+1),hl
; set up system call entry point
	ld	(cpmv),a	;JP at 5
	ld	hl,bdosin
	ld	(cpmv+1),hl
; set up restart for extended BIOS calls
	ld	(xbs_rst),a
	ld	hl,x_bios_calls
	ld	(xbs_rst+1),hl

; make BIOS look at drive before using it
;;;;	call	ext_access

; set baud rate
	ld	a,(pr_baud)
	call	set_baud

; reset deblocking flags
	xor	a		;block/deblock initialization
	ld	(hstact),a	;set host inactive
	ld	(unacnt),a	;set for no unall. left

; initialise 6545-1/6845E
	ld	hl,crtc_tab+15Track-Info


å








	

ag)
	or	a
	ret	z		;not ready to print
	cpl			;to 0FFH -> ready to print
	ret




; Select drive and return hl= DPH address
; given bc=drive number, bit 0 of e=1 if not new unit
d_seldsk
; Swap A: and M:/N: if required
	ld	hl,swap_a_with_m	; = 'M'-'A' or 'N'-'A'
	ld	a,c
	or	a		; cp  'A'-'A'
	jr	z,ds_is_a
	cp	(hl)
	jr	nz,no_m_swap
ds_is_a
	xor	(hl)
	ld	c,a

no_m_swap
	ld	(sekdsk),a	;for deblocking routines

	ld	hl,md_dph	;request for M: ?
	cp	'M'-'A'
	ret	z

	ld	hl,nd_dph	;requesaved
display_time
	push	hl
	ld	hl,time_cycle
	dec	(hl)
	jr	nz,dt_ret
	ld	(hl),cycle_max
	push	af
	ld	a,(s_line)
	cp	25
	jr	nz,dt_ret1
	map	sys_vdr
	call	print_s_line
	map	bios_map
dt_ret1:
	pop	af
dt_ret:
	pop	hl
	ret


; PRINTER and PUNCH routines
; allow for most printers ..
ptr_out
	ld	a,(send_lf)
	or	a
	#if	nz,nxt
	ld	a,c
; if send_lf=0, ignore linefeeds
	cp	lf
	ret	z		;ignore linefeeds
#mark
	ld	a,(iobyte)
	bit	6,a
	ld	a,c
	jp	z,bpar_out	;PARALLEL printer

; must beselected)
	call	dpfnd		;hl=1+posn of DPB ptr in DPH
; de=old contents of DPB pointer, has this been set to user def'd?
	ld	a,e
	pop	de
	{
	 cp	low spare_dpb	;lower byte of spare dpb address?
	 #if	z,brk		;if so, leave it alone
; set DPB pointer in DPH to point to correct DPB for this disk
	 ld	(hl),d
	 dec	hl
	 ld	(hl),e
	}
	endif

	pop	hl		;pop off start of relevant DPH
	ret
#mark
; Select error !
	pop	hl
sel_err
	ld	hl,usrdfd	;reboot to A0:
	ld	(hl),0
	ld	hl,0		;tell CP/M its an errt for N: ?
	cp	'N'-'A'
	jr	nz,not_n
	ld	a,(pages_for_nd)	;is it there ?
	or	a
	jr	z,sel_err
;	jp	z,sel_err
	ret

not_n
	ld	hl,snum_drives
	cp	(hl)		;drive A,B,C or D?
	jr	c,valid_drive

	cp	'L'-'A'
	jr	nz,sel_err
	ld	a,(hl)		;Only allow L: if < 4 drives
	cp	4
	jr	z,sel_err
	ld	a,'D'-'A'	;drive L -> D
	ld	(sekdsk),a	;sekdsk as well
	ld	c,a		;reg c as well

valid_drive
	ld	h,0
	ld	l,c
	add	hl,hl
	add	hl,hl
	add	hl,hl
	add	hl,hl		;hl=drive_num*16
	ld	a,e
	ld	de,dpbase	;Index into SERIAL, so if not Xon/Xoff, just send it
; also entry point for PUNCH output
pun_out
	ld	a,(use_xonxoff)
	or	a
	ld	a,c
	jp	z,RS_out

; Xon/Xoff serial ..
	{
		call	set_se		;update status
		ld	a,(x_flag)
		or	a
		#if	z,cont		;wait for ^Q to continue
	}
	ld	a,c
	jp	RS_out		;send byte

; assume speed is already set, and check for Xon, Xoff
set_se
	push	af
	call	RS_in		;RS232 check and input
	#if	nz,nxt		;no char was received
	res	7,a
	sub	xoff
	ld	(x_flag),a	;nz if O.K. to send
#markor
	ret


; Sector translate table routine (skewing done in h_setup)
sectran
	ld	h,b		;return exactly what we are given
	ld	l,c
	ret


; select the drive in a (maybe logically)
; return z if no errors (a is undefined)
;    or nz and a<>0 if an error occurs
; a "logical" disk is selected if the number of the disk
; asked for is greater than the last physical drive in
; the system
; Destroys C
log_select
	ld	c,a
	ld	a,(log_disk)	;previously selected disk
	sub	c
	ret	z		;same as before, r DPBASE
	add	hl,de
	rrca			;test the new unit bit
	ret	c		;old unit, so don't worry
; a new unit has been selected, so check its format
	push	hl		;save start of this DPH

; purge everything buffered for drive c since disk has changed
	call	purge_c

	ld	a,c		;drive number
	call	log_select	;select that drive (hard)
	#if	nz,nxt		;error - no disk in drive etc.
;

; All the following denstiy select stuff is irrelevant if ...
	if	not preset_disks

	ld	hl,dden_byte	;=08H if double density, 0 if n
	pop	af
	ret


; RS232 input routine to acc.
pun_in
	{
		call	RS_in		;RS232 check and input
		#if	nz,cont
	}
	res	7,a
	ret


; Common LIST status routine
all_listst
	ld	a,(iobyte)
	and	0C0h
	cp	80h		;PARALLEL printer?
	jp	z,p_listst
	cp	0C0h		;serial mode?
	ld	a,0FFh
	ret	nz		;VDU is always ready

; serial status - either XON/XOFF or CTS based
	ld	a,(use_xonxoff)
	or	a
	jp	z,s_listst	;use CTS based status
; Use Xon/Xoff status
xlistst
	call	set_se		;update status
	ld	a,(x_fleturn z,0
	ld	a,c
	ld	(log_disk),a	;same as required
;
	or	a
	jr	z,drive_a	;if drive A is selected

; compare with number of drives set by INIT
	push	hl
	ld	hl,snum_drives
	cp	(hl)
	pop	hl

	jr	c,log_fn	;select physical disk
; select a logical (virtual) disk
do_swap
	ld	a,(active)	;(active)=-1 -> log. disk in A
	or	a
	jr	nz,sel_a	;already swapped
sel_tog
	cpl			;active <-> non-active
	ld	(active),a
	ld	a,c

; if not drive A, replace with drive L
	or	a
	#if	z,nxt
	ld	a,'L'-'A'	;logot
	ld	a,(sec_length)	;00=128; 01=256; 02=512
	rlca			;*2
	bit	dden_sel,(hl)
	jr	z,sd_sel	;if single density format
	dec	a
sd_sel
	#if	m,next		;error - 128 byte double density !
	cp	4
	#if	nc,nxt		;error - 512 single density or 1024 !
; now multiply by 18 (length of DPB+xlt_word+mask_byte)
	rlca			;*2
	ld	l,a
	rlca			;*4
	rlca			;*8
	rlca			;*16
	add	a,l		;*18
	ld	l,a
	ld	h,0
	ld	de,dpb_base	;first DPB in list
	add	hl,de		;hl points to correct DPB
	push	hl
	ld	a,c		;sekdsk (disk being Track-Info

å	
	ld	a,(ix+3)	;BLM
	inc	a
	ld	(unacnt),a
; check to see whether the current record being written is the
; next in a sequential series of writes
chkuna
	ld	hl,unacnt
	xor	a
	cp	(hl)		;any left ?
	jr	z,alloc		;if not, then preread (allocated)
	dec	(hl)		;decrement # remaining
; now see if this is the CORRECT record for seq. writing of a block
	ld	hl,(unadsk)
	call	comp		;compare (unadsk) with (sekdsk)
	jr	nz,alloc	;not the next record
	ld	hl,unasec	;compare (unasec) with (seksec)
	ld	a,(seksec)ical drive !
#mark

	add	a,'A'		;put drive name into message
	ld	(name_mnt),a
	push	hl
	push	bc
	ld	hl,mnt_mess
	call	flash		;FLASH
; purge all buffers for drive a since disk has been changed
	ld	c,0
	call	purge_c

	pop	bc
	pop	hl
sel_a
	xor	a		;use drive A
log_fn
	jp	sel_floppy
;
; drive A has been selected, so if necc., swap
; and clear (active)
drive_a
	ld	a,(active)
	or	a
	jr	z,sel_a		;not active
	jr	sel_tog		;has wrong disk in drive A, so swap
;
;
d_sdm
	ld	(dmaadr),bc
	r	ld	(hstdsk),hl
	ld	a,(sekhst)	;physical (unskewed) sector #
	ld	(hstsec),a
; now pre-read (or just read) if neccessary
	ld	a,(rsflag)
	or	a
	call	nz,readhst
	xor	a
	ld	(hstwrt),a	;kill pending write flag
; copy data to or from buffer
match
	ld	a,(seksec)	;CP/M record number
	and	(ix+dsecmsk)	;keep ls bits to index into buffer
	ld	h,a
	ld	l,0
	srl	h
	rr	l		;hl=offset into buffer for record
	ld	de,hstbuf
	add	hl,de		;hl=start of record in buffer
	ld	de,(dmaadr)	;where in main memory to get
	cp	(hl)
	jr	nz,alloc	;not the next record
; now step unatrk/unasec to next record so that we can tell whether
; the next record to be written after this one is the next of the block
	inc	(hl)
	ld	a,(hl)
	cp	(ix+0)		;# CP/M records per track
	jr	c,noovf		;stays on the same track
	ld	(hl),0		;start with first sector
	dec	hl		;point to track number
	inc	(hl)		;next track inwards
; no pre-read is required, so set rsflag=0
noovf
	xor	a
	jr	alloc1
;
; not an unallocated record, so requires pre-et
;
d_ssc
	ld	a,c
	ld	(seksec),a
	ret
;
d_home
	ld	c,0
d_stk
	ld	a,c
	ld	(sektrk),a
	ret
;
;
; Deblocked read and write a CP/M record (128 bytes)
d_read
	push	ix		;used to access DPB bits
	call	ix_tab		;point ix to relevant DPB
	ld	a,wrual		;treat read as unallocated
	ld	(wrtype),a
	ld	(readop),a	;set for read operation
	jr	alloc
;
d_write
	push	ix
	call	ix_tab		;point ix to relevant DPB
	xor	a		;set for write operation
	ld	(readop),a
	ld	a,c		;write type from CP/M
	ld	(wrtype/put
; now if it is a write, swap hl,de and mark the pending write
	ld	a,(readop)
	or	a
	#if	nz,nxt		;READing
	ex	de,hl		;swap so moving into buffer
	inc	a
	ld	(hstwrt),a	;(hstwrt)=1
#mark
	ld	bc,128		;length of CP/M record
	ldir			;nice quick transfer
; now flush buffer immediately if a directory write
	ld	a,(wrtype)
	dec	a		;directory write?
	#if	nz,nxt		;if not a directory write
	ld	a,(erflag)	;=1 if any errors occurred
	or	a
	#if	nz,nxt		;don't try to write if bad read
	ld	(hstwrt),a	;read ..
alloc
	xor	a		;a=0
	ld	(unacnt),a	;kill current sequence
	inc	a		;a=1
alloc1
	ld	(rsflag),a
;
; rwoper:
	xor	a
	ld	(erflag),a	;reset error flag (no errors yet)
; now calculate (unskewed) host sector number
	ld	a,(seksec)	;CP/M record number
	rlca			;once left
	ld	e,(ix+dsecmsk)
	{
	 srl	a		;then right to kill unwanted bits
	 rrc	e
	 #if	c,cont		;continue until mask shifted out
	}
	ld	(sekhst),a
;
	ld	hl,hstact
	ld	a,(hl)		;see if already active
	ld	(hl),1		;set it to active a),a
	cp	wrual		;unallocated write (first of block)
	jr	nz,chkuna
; this is the first record of an unallocated block, so
; remember where it is in case we are writing sequentially
	ld	hl,(sekdsk)	;disk and track number
	ld	(unadsk),hl
	ld	a,(seksec)	;sector number
	ld	(unasec),a
; now find out how many CP/M records in a "block", the fundamental
; allocation unit (1024 for small disks, 2048 for large)
; this is so that we know when the unallocated block is all
; gone (assuming sequential writes)
buffer written
	call	writehst
#mark
	ld	a,(erflag)	;return error code to CP/M
	ld	hl,derr_mode
	and	(hl)		;mask off errors maybe
	pop	ix
	ret


; flush the host buffer if necc.
; All regs except [a] preserved
hst_flush
	push	bc
	push	de
	push	hl

	ld	a,(hstwrt)
	or	a
	call	nz,writehst
	xor	a
	ld	(hstwrt),a

	pop	hl
	pop	de
	pop	bc
	ret


; write host sector with
; (hstdsk)= disk drive number to use (0-15)
; (hstsec)= unskewed physical sector number (0-17)
; (hsttrk)= track nunyway
	or	a		;was it already?
	jr	z,filhst	;if it wasn't, may need to fill
; host buffer is active, but is it the same as seek buffer ?
	ld	hl,(hstdsk)	;disk # and track #
	call	comp		;compare (hstdsk) with (sekdsk)
	jr	nz,nomatch
	ld	hl,hstsec
	ld	a,(sekhst)	;physical but unskewed sector #
	cp	(hl)
	jr	z,match		;host buffer is the same as before
nomatch
	call	hst_flush	;write out old host buffer if necc.
; now set host buffer to suit "sek" sector
filhst
	ld	hl,(sekdsk)	;desired disk, track
Track-Info

å	
ret	nz		;hardware error
	push	ix		;save ix for (secdsk)
;
	ld	a,(hstdsk)
	call	x_tab		;ix=dpb for drive (hst_dsk)
; put track number in d so can select other side for "cylinder" disks
	ld	a,(hsttrk)	;desired track
	bit	1,(ix+dflags)
	jr	nz,calc_sec	;don't modify tk number at all
	bit	0,(ix+dflags)
	jr	z,old_format
; use bottom bit to select side number (cylinder format)
	rrca
;
calc_sec
	ld	d,a
	ld	a,(hstsec)	;logical sector number (shifted)
	add	a,(ix+dxlt)	;add on start for this xlt tablember (0-79)
writehst
	ld	a,(hstdsk)
	cp	'M'-'A'		;M: or N: ?
	jp	nc,md_write
	call	fl_write	;do physical write (write-thru)
	call	db_sector_type
	jr	nz,ret_bmap	; can't be buffered
	jp	db_disk_write


fl_write
	call	hsetup
	{
		call	z,wr_floppy	;write tk-d, sec-e, adr-hl
		#if	z,brk
		in	a,(status)
		bit	6,a		;protect fault ?
		ld	a,1		;CP/M wants a one
		#if	z,brk		;if not bomb out
; prompt with message and wait for RETURN
		ld	a,(log_disk)
		add	a,'A'
		ld	(wp_name),a	;store name ofs: de = position in 0-7FFF of sector
;	   hl = hstbuf
;	   bc = mdrive sector size
;	   a  = bios_map
md_addr
	ld	a,(hstsec)
	ld	e,0
	srl	a
	rr	e
	ld	d,a
	ld	a,(hsttrk)
	rrca
	rrca
	rrca
	ld	b,a
	rrca
	and	70h
	add	a,d
	ld	d,a
	ld	a,b
	add	a,3
	call	mem_page
	ld	hl,hstbuf
	ld	bc,128
	ld	a,bios_map
	ret





; I/O include files :

; console IO
	include 	CON512T.MAC

; disk cache
	include		DB512.MAC

	if	scramble
end_encrypt:
	db	12h,34h,56h,78h
	endif

; floppy dis
	ld	c,a
	ld	b,0
	ld	hl,xlt_base
	add	hl,bc
;
	ld	e,(hl)		;get skewed sector number
	ld	hl,hstbuf	;where to put/get data
	xor	a		;indicate no errors
	pop	ix
	ret
;
; handle formats which go in on side 0 first, and then
; come back out on side 1
old_format
	cp	40
	jr	c,calc_sec	;track number 0..39
; range 40..79, so reduce it to 0..39 and set b7 for side 1
	ld	d,a
	ld	a,79
	sub	d
	set	7,a		;indicate other side
	jr	calc_sec
;
;
; compare hl with (sekdsk)
comp
	ld	de,(sekdsk)
	and	a WPed drive
		ld	hl,wp_mess
		call	flash
		call	hsetup		;try to write once more
		call	z,wr_floppy
	}
ret_err
	ld	hl,erflag
	or	(hl)		;OR in the error
	ld	(hl),a
	jr	ret_bmap


fl_read
	push	bc
	call	hsetup
	call	z,rd_floppy	;read tk-d, sec-e, adr-hl
	pop	bc
	jr	ret_err


; read host sector, parameters as for write
readhst
	ld	a,(hstdsk)
	cp	'M'-'A'		; M: or N: ?
	jp	nc,md_read
	call	db_sector_type
	jr	nz,fl_read		; can't be buffered
	call	db_disk_preread		; get it from buffer ifk IO
	include		FL512.MAC

;;%%%%%%%%%%%
;; purge all directory entries for drive [c]
;; this is used before the BDOS delete/rename function is performed
;; to ensure that we don't write bad data on a changed disk
;; this also kills the deblocking buffer
;; All regs preserved except a
;purgedir_c
;;*	ld	a,flop_dir_trk	;purge all less/equal to this number
;;*	#nxt
;; purge all entries for drive [c]
;; this is used during seldsk to ensure that the reboot
;; actually gets new data from the new dis
	sbc	hl,de
	ret
;
; find address of DPB (and xlt table address and secmsk)
; for the drive in a
; return address of DPH ptr + 1 in hl and DPB address in de
dpfnd
	ld	hl,Md_DPH+10
	cp	'M'-'A'
	jr	z,dpf_got
	ld	hl,Nd_DPH+10
	cp	'N'-'A'
	jr	z,dpf_got
	ld	h,0
	ld	l,a
	add	hl,hl
	add	hl,hl
	add	hl,hl
	add	hl,hl		;hl*drive_num*16
	ld	de,dpbase+10
	add	hl,de		;hl=posn of DPB ptr in DPH
dpf_got
	ld	e,(hl)
	inc	hl
	ld	d,(hl)
	ret
;
; return ix pointing to the DPB etc for (sekdsk) drive
 available
	ret	z			; yes it was so don't read from disk
	call	fl_read			; otherwise get it from disk
	jp	z,db_disk_postread	; only buffer if no error
ret_bmap:
	map	bios_map		; This is oh so important !!
	ret


; return :
;     d=(hsttrk) with b7=1 for side 1
;     e=skewed (hstsec)
;     hl=hstbuf and Z flag set, a=0
; OR NZ, a=1 if cannot select required drive
; destroys bc
hsetup
	ld	a,(hstdsk)
	call	log_select	;select logical (or physical disk)
	ld	a,1		;standard error return value
	k
;; All regs preserved except a
;;   bank 1 map set
;purge_c
;;*	ld	a,255		;all sectors will be purged
;;*#mark
;	call	hst_flush
;	xor	a
;	ld	(hstact),a
;	ret
;;%%%%%%%%%%%%


mnt_mess
	defm	' INSERT "DISK '
name_mnt
	defm	'M:" INTO DRIVE A, THEN PRESS <RETURN> ',80H

wp_mess
	defm	' DISK '
wp_name
	defm	'M: IS WRITE PROTECTED - PRESS <RETURN> TO TRY AGAIN ',80H


; Non-critical preset BIOS scratch ..
log_disk
	db	0		;disk currently selected
active
	db	0		;0 -> logical disk not ; destroy af
ix_tab
	ld	a,(sekdsk)
x_tab
	push	hl
	push	de

	call	dpfnd
	push	de
	pop	ix

	pop	de
	pop	hl
	ret

; Read sector from either ramdisk
md_read
; select correct page and get addr in de, hl=hstbuf, bc=512
	call	md_addr
	ex	de,hl
	ldir
	out	(map_port),a	; revert to bios map
	xor	a		; no error occured
	ret

; Write sector to either ramdisk
md_write
	call	md_addr
	ldir
	out	(map_port),a	; revert to bios map
	ret


; get addresses for block move to host buffer
; returnTrack-Info

å	
sekdsk	equ	dmaadr+2	;seek disk number (0-3)
sektrk	equ	sekdsk+1	;seek track number
seksec	equ	sektrk+1	;seek sector number
; do not rearrange the order of these ..
hstdsk	equ	seksec+1	;host disk number (args to hstread/hstwrite)
hsttrk	equ	hstdsk+1	;host track number
hstsec	equ	hsttrk+1	;host sector number
;
sekhst	equ	hstsec+1	;(seksec) shr secshf
hstact	equ	sekhst+1	;=1 if host buffer active
; hstwrt must be initialised !!
;hstwrt	equ	hstact+1	;=1 if host buffer has pending write
;
unacnt	equactive
x_flag
	db	0FFh		;nz -> can send initially

offs_start
	dw	0		; offset for jumping to user interface

; first available address in system page (for shell, ccp)
sys_avail
	dw	bios-orgad+bdos_save_addr

derr_mode
	db	0FFh		;0 to ignore disk error returns

time_cycle
	db	cycle_max	; update status line after n'th BIOS call

; The B##### SOD who wrote the 128k system has just caused me about three
; weeks of fruitless searching for an elusive bug. All because the B######
; put this labecrtc),a
	
	endif

	if	scramble
	 ld	hl,0C3h+((low decrypt)*256)
	 ld	(jp_decrypt),hl
	endif

; Put end char at start of function key strings.
	ld	hl,fn_store
	ld	b,num_fn_keys
	ld	de,80h
{
	ld	(hl),fn_str_end
	add	hl,de
	#djnz
}
; Place RET's at locations in system page, so calls fail before BIOS.SYS loaded
	ld	hl,bios_sys_start
	ld	b,+(3*20)
{
	ld	(hl),0C9h
	inc	hl
	#djnz
}

; Clear status line
	ld	hl,vdu+(24*80)
	ld	b,80
{
	ld	(hl),' '
	inc	hl
	#djnz
}

	ret


; Copy	hstact+1	;unalloc record count
unadsk	equ	unacnt+1	;next unalloc record's disk
unatrk	equ	unadsk+1	;next unalloc record's track
unasec	equ	unatrk+1	;next unalloc record's sector
;
erflag	equ	unasec+1	;=1 if an error occurred
rsflag	equ	erflag+1	;=1 if host sector must be read
readop	equ	rsflag+1	;=1 if read operation
wrtype	equ	readop+1	;write type from CP/M

; This seems to be necessary to assemble - Why ??
; Z80.COM seems to be adding refs to it.
total_errs	equ	wrtype+1

last_equ	equ	total_l in the 'ds' section (implies uninitialised) when it MUST
; be initialised. If not then it can cause the BIOS to attempt to write to
; a random disk/track/sector.
; Fixed - 14/1/88
hstwrt
	db	0		;=1 if host buffer has pending write

cpm_end	equ	$		;end marker for boot and reboot

; Non-critical uninitialised BIOS scratch ..

; DO NOT alter the relative postions of the following labels
sh_loaded	equ	$		; nz if shell loaded

sh_start	equ	sh_loaded+1	;where shell should go

sh_length	equ	sh_st inverses from ROM to PCG
copy_inv:	
;	push	af
;	push	bc
;	push	de
;	push	hl

; fill in colour ram with desired value and fix inverses
	ld	a,40H		;turn on colour ram
	out	(col_port),a

c_b_3:
	ld	hl,col_ram
	ld	a,(col_char)
	{
		ld	(hl),a
		inc	hl
		bit	3,h
		#if	nz,cont
	}
; Set up status line colour
	ld	a,(col_stat)
	ld	hl,status_start-2+800h
	ld	b,80
	{
		ld	(hl),a
		inc	hl
		#djnz
	}

	ld	a,(col_mode)	;low intensity background (patchable)
	out	(col_port),a	;give it zero ->errs+2

; Host buffer (512 bytes)
hstbuf		equ	0FE00h

; somewhere to flash to
save_p		equ	hstbuf-60

	if	last_equ gt save_p
	 error	too big for memory !!!
	 dw	last_equ-save_p+zero
	endif

	.dephase

sys_page_r	equ	$

	.phase	0

; Start of routines that are shoved down into the system page to stop
; those annoying memory overflow errors

; Check if this is a premium
; also perform a few other cold boot functions
check_premium:
	if	not telecomputer
; Find if premium : check if more art+2	;length of shell

sh_save_start	equ	sh_length+2	;address of saved shell

ccp_loaded	equ	sh_save_start+2		; ditto for CCP

ccp_start	equ	ccp_loaded+1

ccp_length	equ	ccp_start+2

ccp_save_start	equ	ccp_length+2

window_loaded	equ	ccp_save_start+2	; nz if WINDOW.SYS loaded

temp_1		equ	window_loaded+1	; 2 bytes for any temp value
temp_2		equ	temp_1+1

flag		equ	temp_2+1	;indicates RS232 input during last o/p
;
;	BDOS scratch
dmaadr	equ	flag+1		;last address to transfer record to
;
 select PCG

; If premium then enable and zero attribute RAM
	if	not telecomputer
	ld	ix,is_premium
	bit	0,(ix)
	jr	z,c_b_1
	endif
	ld	a,90h
	out	(vml),a
	ld	hl,vdu
	{
		ld	(hl),0
		inc	hl
		bit	3,h
		#if	z,cont
	}
; this is done later
;	ld	a,80h
;	out	(vml),a

c_b_1:

	ld	a,1
	out	(rom_port),a	; rom-read=1
	if	not telecomputer
	bit	0,(ix)
	jr	z,c_i_1		; not premium
	endif
; is premium so load PCG 1 with bold
	ld	a,81h
	out	(vml),a
	ld	hl,vdu
	ld	de,pcg
copy1_bold:
	ld	a,(than 1 PCG page
	 ld	hl,pcg
	 ld	a,81h		;PCG 1
	 out	(vml),a
	 ld	a,(hl)		;Get a test byte
	 cpl			;Complement it ("What lovely bits you have!")
	 ld	c,a		;Remember it
	 ld	a,80h		;PCG 0
	 out	(vml),a
	 ld	(hl),c		;Write new test value in PCG 0
	 ld	a,81h
	 out	(vml),a		;PCG 1
	 ld	a,c		;Get new test value
	 sub	(hl)		;if PCG 1 changed then not premium
	 jr	z,not_prem
	
is_prem:
	 ld	a,true
	 ld	(is_premium),a
not_prem:
	 and	'P'
	 ld	(smsg_premium),a

	 xor	a
	 out	(vml),a
;	 out	(Track-Info

å	
,not_in_mem
	ld	hl,(sh_save_start)
	ld	de,(sh_start)
	push	de
	ld	bc,(sh_length)
	jr	l_u1
l_u2:
	ld	a,(ccp_loaded)
	or	a
	jr	z,not_in_mem
	ld	hl,(ccp_save_start)
	ld	de,(ccp_start)
	push	de
	ld	bc,(ccp_length)
l_u1:
	ldir
	pop	hl		; hl --> start of shell/ccp
	ld	de,(offs_start)
	add	hl,de
	ret


; wanted shell or ccp but it isn't in memory
not_in_mem:
	ld	a,(hl)
	xor	1
	ld	(hl),a
	jr	load_user_int_1

; get bdos from system page
bdos_from_bp
	ld	hl,bdos_save_addr
	ld	de,orgadhl)
	sla	a
	or	(hl)
	ld	(de),a
	inc	hl
	inc	de
	bit	3,h
	jr	z,copy1_bold
	ld	a,80h		; PCG 0 and leave graphics etc. enabled
	out	(vml),a
c_i_1:
	ld	hl,vdu		; now inverse
	ld	de,pcg
copy1_inv:	
	ld	a,(hl)
	cpl			; inverse character
	ld	(de),a
	inc	hl
	inc	de
	bit	3,h
	jr	z,copy1_inv
	xor	a
	out	(rom_port),a	; back to display
;	pop	hl
;	pop	de
;	pop	bc
;	pop	af
	ret



; table of pointers etc. for updating status line
sl_pointers:
; 'fn key'
	dw	in_fnstr		; pointer to value
atibility with SETSYS.
	 ds	10240-($-100h)
	endif

	end
 
	ld	bc,bios-orgad
	ldir
	ret

; Extended BIOS function call table ..
func_tab
	dw	set_mode		;0  - set CCP
	dw	set_mode		;1  - set shell
	dw	ret_drives		;2  - # drives to a
	dw	ret_mdrive		;3  - if Mdrive, a=1, else 0
	dw	ret_ivec_base		;4  - hl = ivec base
	dw	ret_128_byte_block	;5  - hl points to 128 bytes free
	dw	purge_c			;6  - purge all buffers for drive c
	dw	purgedir_c		;7  - purge dir for drive c
	dw	num_floppies		;8  - returns number of floppies
	dw	ext_access		;9  - inform BIOS to 	db	fn_mes-sl_msgs		; offset of message
	db	fn_sl-status_start	; offset on status line
	db	len_fn_mes		; length of message
; 'lock'
	dw	al_rev
	db	lock_mes-sl_msgs
	db	lock_sl-status_start
	db	len_lock_mes
; 'fn active'
	dw	fn_active
	db	fn_on_mes-sl_msgs
	db	fn_on_sl-status_start
	db	len_fn_on_mes
; 'a<>m'
	dw	swap_a_with_m
	db	swap_a_m_mes-sl_msgs
	db	swap_a_m_sl-status_start
	db	len_swap_a_m_mes
; 'fast'
	dw	fast_cpu
	db	fast_mes-sl_msgs
	db	fast_sl-status_start
	db	len_fast_mes

reselect drive
	dw	xbs_baud		;10 - set baud rate to c (0..)
	dw	RS_in			;11 - get RS232 char if available
	dw	send_RSc		;12 - send RS232 char in C
	dw	error_mode		;13 - set disk error mode (0=ignore)
	dw	ret_status		;14 - return status of disk operation
	dw	key_pressed		;15 - check if key is down
	dw	set_mb_fkeys		;16 - set Microbee style fkeys
	dw	get_mb_fkeys		;17 - get ditto.  Haha - ignored!!!!
	dw	dud_ret			;18
	dw	dud_ret			;19
	dw	link_graphics		;20 - link to graphics driver
	dw	dud_ret		
; status line messages
sl_msgs:

fast_mes:
	db	'FAST'
len_fast_mes		equ	$-fast_mes

swap_a_m_mes:
	db	'A<>M'
len_swap_a_m_mes	equ	$-swap_a_m_mes

lock_mes:
	db	'LOCK'
len_lock_mes	equ	$-lock_mes

fn_on_mes:
	db	'FKEY'
len_fn_on_mes	equ	$-fn_on_mes

fn_mes:
	db	'PRESSED'
len_fn_mes	equ	$-fn_mes

; get shell / CCP out of system page
load_user_int
;;	map	sys_page
	ld	hl,sh_wanted	;0 for CCP, 1 for shell
	ld	a,(hl)
load_user_int_1
	or	a
	jr	z,l_u2
	ld	a,(sh_loaded)
	or	a
	jr	z	;21
	dw	dud_ret			;22
	dw	dud_ret			;23
	dw	link_graphics		;24 - link to graphics driver
	dw	link_user		;25 - link to user program
	dw	get_rtc			;26 - fetch data from RTC chip
	dw	put_rtc			;27 - put data to the RTC chip

func_end

; maximum function number allowed
func_max	equ	(func_end-func_tab)/2-1



end_sys_r	equ	$

	.dephase

	if	($-100h) gt (10240)
	 error	too big to fit on system tracks !!!
	 dw	zero+$-100h
	endif

	if	($-100h) lt 10240
; pad out code to occupy 10k for compTrack-Info

å	
2
	POP	AF
	RET

L4714:	CP	0DH
	RET	Z
	CP	0AH
	RET	Z
	CP	9
	RET	Z
	CP	8
	RET	Z
	CP	20
	RET

L4723:	LD	A,(L490E)
	OR	A
	JP	NZ,L4745
	CALL	INSTAT
	AND	1
	RET	Z
	CALL	CONIN
	CP	13
	JP	NZ,L4742
	CALL	CONIN
	CP	3
	JP	Z,0
	XOR	A
	RET

L4742:	LD	(L490E),A
L4745:	LD	A,1
	RET

COUT3:	LD	A,(IOFLAG)
	OR	A
	JP	NZ,L4762
	PUSH	BC
	CALL	L4723
	POP	BC
	PUSH	BC
	CALL	bconout
	POP	BC
	PUSH	BC
	LD	A,(PTRFLG)
	OR	A
	CALL	NZ,PRNTR
	POP	BC
L4762:	LD	A,C
	LD	HL,LNEPOS
	CP	7FH
	RET
;************ B D O S **********

SERNO2:	DB	0,0,0,0,0,0

BDOSIN:	JP	L4611

ERRM1:	DW	L4699
ERRM2:	DW	L46A5
ERRM3:	DW	L46AB
ERRM4:	DW	L46B1

L4611:	EX	DE,HL
	LD	(ENTRDE),HL
	EX	DE,HL
	LD	A,E
	LD	(ENTRYE),A
	LD	HL,0
	LD	(RETNDE),HL
	ADD	HL,SP
	LD	(L490F),HL
	LD	SP,RAS2
	XOR	A
	LD	(L53E0),A
	LD	(L53DE),A
	LD	HL,L5374
	PUSH	HL
	LD	A,C
	CP	29
	RET	NC
	LD	C,E
	LD	HL,CVECS
	LD	E,A
	LD	D,0
	ADD	HL,DE
	ADD	HL,DE
	LD	E,(HL)
	INC	HL
	LD	D,(HL)
	LD	HL,(ENTRDE)
	EX	DE,HL
	JP	(H,VEC10
	DEC	(HL)
	CALL	DESTBS
	JP	L484E

;	Delete line
L485F:	CP	15
	JP	NZ,L486B
	CALL	L47B1
	POP	HL
	JP	VEC10

;	Reprint line
L486B:	CP	12
	JP	NZ,L48A6
L4870:	PUSH	BC
	CALL	L47B1
	POP	BC
	POP	HL
	PUSH	HL
	PUSH	BC
L4878:	LD	A,B
	OR	A
	JP	Z,L488A
	INC	HL
	LD	C,(HL)
	DEC	B
	PUSH	BC
	PUSH	HL
	CALL	L477F
	POP	HL
	POP	BC
	JP	L4878

L488A:	PUSH	HL
	LD	A,(IOFLAG)
	OR	A
	JP	Z,L47F1
	LD	HL,LNEPOS
	SUB	(HL)
	LD	(IOFLAG),A
L4899:	CALL	DESTBS
	LD	HL,IOFLAG
	DEC	(HL)
	JP	NZ,L4	Z
	INC	(HL)
	CP	20
	RET	NC
	DEC	(HL)
	LD	A,(HL)
	OR	A
	RET	Z
	LD	A,C
	CP	8
	JP	NZ,L4779
	DEC	(HL)
	RET

L4779:	CP	0AH
	RET	NZ
	LD	(HL),0
	RET

;	^X format char out
L477F:	LD	A,C
	CALL	L4714
	JP	NC,VEC2		;not control code
	PUSH	AF
	LD	C,'^'		;Show as ^X
	CALL	COUT3
	POP	AF
	OR	40
	LD	C,A
VEC2:	LD	A,C
	CP	9
	JP	NZ,COUT3
EXPTAB:	LD	C,20		;Expand tabs
	CALL	COUT3
	LD	A,(LNEPOS)
	AND	7
	JP	NZ,EXPTAB
	RET

DESTBS:	CALL	NDBSPC
	LD	C,20
	CALL	bconout
NDBSPC:	LD	C,8
	JP	bcL)

CVECS:	DW	wboote
	DW	VEC1
	DW	VEC2
	DW	VEC3
	DW	PUNCHO
	DW	PRNTR
	DW	VEC6
	DW	VEC7
	DW	VEC8
	DW	VEC9
	DW	VEC10
	DW	VEC11
	DW	VEC12
	DW	VEC13
	DW	VEC14
	DW	VEC15
	DW	VEC16
	DW	VEC17
	DW	VEC18
	DW	VEC19
	DW	VEC20
	DW	VEC21
	DW	VEC22
	DW	VEC23
	DW	VEC24
	DW	VEC25
	DW	VEC26
	DW	VEC27
	DW	VEC28
	DW	VEC29
	DW	VEC30
	DW	VEC31
	DW	VEC32
	DW	VEC33
	DW	VEC34
	DW	VEC35
	DW	VEC36
	DW	VEC37
	DW	RETURN
	DW	RETURN
	DW	VEC40

L4699:	LD	HL,L46CA
	CALL	L46E5
	CP	3
	JP	Z,0
	899
	JP	L47F1

L48A6:	INC	HL
	LD	(HL),A
	INC	B
L48A9:	PUSH	BC
	PUSH	HL
	LD	C,A
	CALL	L477F
	POP	HL
	POP	BC
	LD	A,(HL)
	CP	3
	LD	A,B
	JP	NZ,L48BD
	CP	1
	JP	Z,0
L48BD:	CP	C
	JP	C,L47EF
L48C1:	POP	HL
	LD	(HL),B
	LD	C,0DH
	JP	COUT3

;	Character in with echo
VEC1:	CALL	CHNECH
	JP	RECOVR

;	PUNCH input
VEC3:	CALL	PUNCHI
	JP	RECOVR

;	Direct console I/O
VEC6:	LD	A,C
	INC	A
	JP	Z,L48E0
	INC	A
	JP	Z,INSTAT
	JP	bconout

L48E0:	CALL	INSTAT
	OR	A
	JP	Z,L5391
	CALL	CONIN
	JP	onout

L47B1:	LD	C,'#'
	CALL	COUT3
	CALL	CRLF2
L47B9:	LD	A,(LNEPOS)
	LD	HL,L490B
	CP	(HL)
	RET	NC
	LD	C,20
	CALL	COUT3
	JP	L47B9

CRLF2:	LD	C,0DH
	CALL	COUT3
	LD	C,0AH
	JP	COUT3

PSTRNG:	LD	A,(BC)
	CP	'$'
	RET	Z
	INC	BC
	PUSH	BC
	LD	C,A
	CALL	VEC2
	POP	BC
	JP	PSTRNG

;	Create line buffer
VEC10:	LD	A,(LNEPOS)
	LD	(L490B),A
	LD	HL,(ENTRDE)
	LD	C,(HL)
	INC	HL
	PUSH	HL
	LD	B,0
L47EF:	PUSH	BC
	PUSH	HL
L47F1:	CALL	CHIN2
	AND	7FH
	POP	HL
	POP	BC
	CP	0DH
	JP	Z,L48C1
	CP	0RET

L46A5:	LD	HL,L46D5
	JP	L46B4

L46AB:	LD	HL,L46E1
	JP	L46B4

L46B1:	LD	HL,L46DC
L46B4:	CALL	L46E5
	JP	0

L46BA:	DEFM	'CP/M Err On  : $'
L46CA:	DEFM	'Bad Sector$'
L46D5:	DEFM	'Select$'
L46DC:	DEFM	'File '
L46E1:	DEFM	'R/O$'

L46E5:	PUSH	HL
	CALL	CRLF2
	LD	A,(L4942)
	ADD	A,41
	LD	(L46BA+0C),A
	LD	BC,L46BA
	CALL	PSTRNG
	POP	BC
	CALL	PSTRNG
CHIN2:	LD	HL,L490E
	LD	A,(HL)
	LD	(HL),0
	OR	A
	RET	NZ
	JP	CONIN

CHNECH:	CALL	CHIN2
	CALL	L4714
	RET	C
	PUSH	AF
	LD	C,A
	CALL	VECRECOVR

;	Get I/O byte
VEC7:	LD	A,(IOBYTE)
	JP	RECOVR

;	Set I/O byte
VEC8:	LD	HL,IOBYTE
	LD	(HL),C
	RET

;	Print string term by "$"
VEC9:	EX	DE,HL
	LD	C,L
	LD	B,H
	JP	PSTRNG

;	Get console status
VEC11:	CALL	L4723
RECOVR:	LD	(RETNDE),A
RETURN:	RET

RETN1:	LD	A,1
	JP	RECOVR

IOFLAG:	DB	0	;COMPCOL true if computing column posn
L490B:	DB	0	;starting col posn after read
LNEPOS:	DB	0	;column position
PTRFLG:	DB	0	;listing toggle
L490E:	DB	0	;initial key char
L490F:	DW	0	;entry stacAH
	JP	Z,L48C1
	CP	8
	JP	NZ,L4816
	LD	A,B
	OR	A
	JP	Z,L47EF
	DEC	B
	LD	A,(LNEPOS)
	LD	(IOFLAG),A
	JP	L4870

L4816:	CP	7FH
	JP	NZ,L4826
	LD	A,B
	OR	A
	JP	Z,L47EF
	LD	A,(HL)
	DEC	B
	DEC	HL
	JP	L48A9

L4826:	CP	5
	JP	NZ,L4837
	PUSH	BC
	PUSH	HL
	CALL	CRLF2
	XOR	A
	LD	(L490B),A
	JP	L47F1

L4837:	CP	10
	JP	NZ,L4848
	PUSH	HL
	LD	HL,PTRFLG
	LD	A,1
	SUB	(HL)
	LD	(HL),A
	POP	HL
	JP	L47EF

L4848:	CP	18
	JP	NZ,L485F
	POP	HL
L484E:	LD	A,(L490B)
	LD	HL,LNEPOS
	CP	(HL)
	JP	NCTrack-Info

å	
(L53C1)
	LD	A,E
	SUB	L
	LD	E,A
	LD	A,D
	SBC	A,H
	LD	D,A
	POP	HL
	DEC	HL
	JP	L49E4

L49FA:	PUSH	HL
	LD	HL,(L53C1)
	ADD	HL,DE
	JP	C,L4A0F
	LD	A,C
	SUB	L
	LD	A,B
	SBC	A,H
	JP	C,L4A0F
	EX	DE,HL
	POP	HL
	INC	HL
	JP	L49FA

L4A0F:	POP	HL
	PUSH	BC
	PUSH	DE
	PUSH	HL
	EX	DE,HL
	LD	HL,(L53CE)
	ADD	HL,DE
	LD	B,H
	LD	C,L
	CALL	SETTRK
	POP	DE
	LD	HL,(DPBSV2)
	LD	(HL),E
	INC	HL
	LD	(HL),D
	POP	DE
	LD	HL,(DPBSV3)
	LD	(HL),E
	INC	HL
	LD	(HL),D
	POP	BC
	LD	A,C
	SUB	E
	LD	C,A
	k pointer
; local stack
	db	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
	db	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
	db	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
RAS2:

USRLVL:	db	0	;current user number
L4942:	db	0	;current disk number
ENTRDE:	DW	0	;information address
RETNDE:	DW	0	;address value to return


L4947:	LD	HL,ERRM2
PRTERR:	LD	E,(HL)
	INC	HL
	LD	D,(HL)
	EX	DE,HL
	JP	(HL)

COPYC:	INC	C
L4950:	DEC	C
	RET	Z
	LD	A,(DE)
	LD	(HL),A
	INC	DE
	INC	HL
	JP	L4950

L4959:	LD	A,(L4942)
	LD	C,A
	CALL	SELDSK
	:	PUSH	BC
	LD	A,(L4942)
	LD	C,A
	LD	HL,0001
	CALL	HLMUL2
	POP	BC
	LD	A,C
	OR	L
	LD	L,A
	LD	A,B
	OR	H
	LD	H,A
	RET

L4B1E:	LD	HL,(DROVEC)
	LD	A,(L4942)
	LD	C,A
	CALL	HLDIV2
	LD	A,L
	AND	1
	RET

;	Write protect disk
VEC28:	LD	HL,DROVEC
	LD	C,(HL)
	INC	HL
	LD	B,(HL)
	CALL	SETBIT
	LD	(DROVEC),HL
	LD	HL,(L53C8)
	INC	HL
	EX	DE,HL
	LD	HL,(DPBSV1)
	LD	(HL),E
	INC	HL
	LD	(HL),D
	RET

L4B44:	CALL	L4B5E
L4B47:	LD	DE,9
	ADD	HL,DE
	LD	A,(HL)
	RLA
	RET	NC
	LD	HL,ERRM4
	JP	PRTELD	A,B
	SBC	A,D
	LD	B,A
	LD	HL,(SKWPTR)
	EX	DE,HL
	CALL	L5430
	LD	C,L
	LD	B,H
	JP	SETSEC

L4A3E:	LD	HL,L53C3
	LD	C,(HL)
	LD	A,(L53E3)
L4A45:	OR	A
	RRA
	DEC	C
	JP	NZ,L4A45
	LD	B,A
	LD	A,8
	SUB	(HL)
	LD	C,A
	LD	A,(L53E2)
L4A53:	DEC	C
	JP	Z,L4A5C
	OR	A
	RLA
	JP	L4A53

L4A5C:	ADD	A,B
	RET

L4A5E:	LD	HL,(ENTRDE)
	LD	DE,10
	ADD	HL,DE
	ADD	HL,BC
	LD	A,(L53DD)
	OR	A
	JP	Z,L4A71
	LD	L,(HL)
	LD	H,0
	RET

L4A71:	ADD	HL,BC
	LD	E,(HL)
	INC	HL
	LD	D,(HL)
	EX	DE,HL
	RET

L4LD	A,H
	OR	L
	RET	Z
	LD	E,(HL)
	INC	HL
	LD	D,(HL)
	INC	HL
	LD	(DPBSV1),HL	;Unpack returned DPBASE vectors
	INC	HL
	INC	HL
	LD	(DPBSV2),HL
	INC	HL
	INC	HL
	LD	(DPBSV3),HL
	INC	HL
	INC	HL
	EX	DE,HL
	LD	(SKWPTR),HL	;Set pointer to skew table
	LD	HL,DPBSV4
	LD	C,8
	CALL	COPYC
	LD	HL,(DPBSV5)
	EX	DE,HL
	LD	HL,L53C1
	LD	C,0FH
	CALL	COPYC
	LD	HL,(L53C6)
	LD	A,H
	LD	HL,L53DD
	LD	(HL),0FFH
	OR	A
	JP	Z,L499D
	LD	(HL),0
L499D:	LD	A,0FFH
	OR	A
	RET

L49A1:	CALL	HOME
	XOR	A
	LD	HL,RR

;	Check disk for read only status
RONLY?:	CALL	L4B1E
	RET	Z
	LD	HL,ERRM3	;"R/O"
	JP	PRTERR

L4B5E:	LD	HL,(DPBSV4)
	LD	A,(L53E9)
HLINCA:	ADD	A,L
	LD	L,A
	RET	NC
	INC	H
	RET

GETS2:	LD	HL,(ENTRDE)
	LD	DE,0EH
	ADD	HL,DE
	LD	A,(HL)
	RET

CLERS2:	CALL	GETS2
	LD	(HL),0
	RET

SIGNS2:	CALL	GETS2
	OR	80
	LD	(HL),A
	RET

L4B7F:	LD	HL,(L53EA)
	EX	DE,HL
	LD	HL,(DPBSV1)
	LD	A,E
	SUB	(HL)
	INC	HL
	LD	A,D
	SBC	A,(HL)
	RET

L4B8C:	CALL	L4B7F
	RET	C
	INC	DE
	LD	(HL),D
	DEC	HLA77:	CALL	L4A3E
	LD	C,A
	LD	B,0
	CALL	L4A5E
	LD	(L53E5),HL
	RET

L4A84:	LD	HL,(L53E5)
	LD	A,L
	OR	H
	RET

L4A8A:	LD	A,(L53C3)
	LD	HL,(L53E5)
L4A90:	ADD	HL,HL
	DEC	A
	JP	NZ,L4A90
	LD	(L53E7),HL
	LD	A,(L53C4)
	LD	C,A
	LD	A,(L53E3)
	AND	C
	OR	L
	LD	L,A
	LD	(L53E5),HL
	RET

L4AA6:	LD	HL,(ENTRDE)
	LD	DE,0CH
	ADD	HL,DE
	RET

L4AAE:	LD	HL,(ENTRDE)
	LD	DE,0FH
	ADD	HL,DE
	EX	DE,HL
	LD	HL,11
	ADD	HL,DE
	RET

L4ABB:	CALL	L4AAE
	LD	A,(HL)
	LD	(L53E3),A
	EX	DE,HL
	LD	A,(HL)
	(DPBSV2)
	LD	(HL),A
	INC	HL
	LD	(HL),A
	LD	HL,(DPBSV3)
	LD	(HL),A
	INC	HL
	LD	(HL),A
	RET

L49B2:	CALL	READ
	JP	L49BB

L49B8:	CALL	WRITE
L49BB:	OR	A
	RET	Z
	LD	HL,ERRM1
	JP	PRTERR

L49C3:	LD	HL,(L53EA)
	LD	C,2
	CALL	HLDIV2
	LD	(L53E5),HL
	LD	(L53EC),HL
L49D1:	LD	HL,L53E5
	LD	C,(HL)
	INC	HL
	LD	B,(HL)
	LD	HL,(DPBSV3)
	LD	E,(HL)
	INC	HL
	LD	D,(HL)
	LD	HL,(DPBSV2)
	LD	A,(HL)
	INC	HL
	LD	H,(HL)
	LD	L,A
L49E4:	LD	A,C
	SUB	E
	LD	A,B
	SBC	A,D
	JP	NC,L49FA
	PUSH	HL
	LD	HL,
	LD	(HL),E
	RET

L4B95:	LD	A,E
	SUB	L
	LD	L,A
	LD	A,D
	SBC	A,H
	LD	H,A
	RET

L4B9C:	LD	C,0FFH
L4B9E:	LD	HL,(L53EC)
	EX	DE,HL
	LD	HL,(L53CC)
	CALL	L4B95
	RET	NC
	PUSH	BC
	CALL	CSMSEC
	LD	HL,(DPBSV6)
	EX	DE,HL
	LD	HL,(L53EC)
	ADD	HL,DE
	POP	BC
	INC	C
	JP	Z,L4BC4
	CP	(HL)
	RET	Z
	CALL	L4B7F
	RET	NC
	CALL	VEC28
	RET

L4BC4:	LD	(HL),A
	RET

L4BC6:	CALL	L4B9C
	CALL	L4BE0
	LD	C,1
	CALL	L49B8
	JP	L4BDA

L4BD4:	CALL	L4BE0
	CALL	L49B2
L4BDA:	LD	HL,LDMADR
	JP	L4BE3

L4BLD	(L53E1),A
	CALL	L4AA6
	LD	A,(L53C5)
	AND	(HL)
	LD	(L53E2),A
	RET

L4AD2:	CALL	L4AAE
	LD	A,(L53D5)
	CP	2
	JP	NZ,L4ADE
	XOR	A
L4ADE:	LD	C,A
	LD	A,(L53E3)
	ADD	A,C
	LD	(HL),A
	EX	DE,HL
	LD	A,(L53E1)
	LD	(HL),A
	RET

HLDIV2:	INC	C
HDLUP:	DEC	C
	RET	Z
	LD	A,H
	OR	A
	RRA
	LD	H,A
	LD	A,L
	RRA
	LD	L,A
	JP	HDLUP

CSMSEC:	LD	C,80
	LD	HL,(DPBSV4)
	XOR	A
CSMLUP:	ADD	A,(HL)
	INC	HL
	DEC	C
	JP	NZ,CSMLUP
	RET

HLMUL2:	INC	C
HMLUP:	DEC	C
	RET	Z
	ADD	HL,HL
	JP	HMLUP

SETBITTrack-Info

å	

	EX	DE,HL
	LD	HL,(DPBSV7)
	LD	(HL),E
	INC	HL
	LD	(HL),D
	CALL	L49A1
	LD	HL,(DPBSV1)
	LD	(HL),3
	INC	HL
	LD	(HL),0
	CALL	L4BFE
L4CD2:	LD	C,0FFH
	CALL	L4C05
	CALL	L4BF5
	RET	Z
	CALL	L4B5E
	LD	A,0E5
	CP	(HL)
	JP	Z,L4CD2
	LD	A,(USRLVL)
	CP	(HL)
	JP	NZ,L4CF6
	INC	HL
	LD	A,(HL)
	SUB	24
	JP	NZ,L4CF6
	DEC	A
	LD	(RETNDE),A
L4CF6:	LD	C,1
	CALL	L4C6B
	CALL	L4B8C
	JP	L4CD2

L4D01:	LD	A,(L53D4)
	JP	RECOVR

L4D07:	PUSH	BC
	PUSH	AF
	LD	A,(L53C5)
	CPL
	LD	B,A
	LD	A,C
	AND	B
	LD	E0:	LD	HL,DPBSV4
L4BE3:	LD	C,(HL)
	INC	HL
	LD	B,(HL)
	JP	bsetdma

L4BE9:	LD	HL,(DPBSV4)
	EX	DE,HL
	LD	HL,(LDMADR)
	LD	C,80
	JP	COPYC

L4BF5:	LD	HL,L53EA
	LD	A,(HL)
	INC	HL
	CP	(HL)
	RET	NZ
	INC	A
	RET

L4BFE:	LD	HL,-1
	LD	(L53EA),HL
	RET

L4C05:	LD	HL,(L53C8)
	EX	DE,HL
	LD	HL,(L53EA)
	INC	HL
	LD	(L53EA),HL
	CALL	L4B95
	JP	NC,L4C19
	JP	L4BFE

L4C19:	LD	A,(L53EA)
	AND	3
	LD	B,5
L4C20:	ADD	A,A
	DEC	B
	JP	NZ,L4C20
	LD	(L53E9),A
	OR	A
	RET	NZ
	PUSH	BC
	CALL	L49C3
	CALLDE,HL
	CALL	L4B5E
	POP	BC
	CALL	COPYC
L4E10:	CALL	L49C3
	JP	L4BC6

L4E16:	CALL	RONLY?
	LD	C,0CH
	CALL	L4D18
	LD	HL,(ENTRDE)
	LD	A,(HL)
	LD	DE,10
	ADD	HL,DE
	LD	(HL),A
L4E27:	CALL	L4BF5
	RET	Z
	CALL	L4B44
	LD	C,10
	LD	E,0CH
	CALL	L4E01
	CALL	L4D2D
	JP	L4E27

L4E3B:	LD	C,0CH
	CALL	L4D18
L4E40:	CALL	L4BF5
	RET	Z
	LD	C,0
	LD	E,0CH
	CALL	L4E01
	CALL	L4D2D
	JP	L4E40

L4E51:	LD	C,0FH
	CALL	L4D18
	CALL	L4BF5
	RET	Z
L4E5A:	CALL	L4AA6
	LD	A,(HL)
	PUSH	AF
	PUSH	HL
	CALL	L4B5EC,A
	POP	AF
	AND	B
	SUB	C
	AND	1FH
	POP	BC
	RET

L4D18:	LD	A,0FFH
	LD	(L53D4),A
	LD	HL,L53D8
	LD	(HL),C
	LD	HL,(ENTRDE)
	LD	(L53D9),HL
	CALL	L4BFE
	CALL	L49A1
L4D2D:	LD	C,0
	CALL	L4C05
	CALL	L4BF5
	JP	Z,L4D94
	LD	HL,(L53D9)
	EX	DE,HL
	LD	A,(DE)
	CP	0E5
	JP	Z,L4D4A
	PUSH	DE
	CALL	L4B7F
	POP	DE
	JP	NC,L4D94
L4D4A:	CALL	L4B5E
	LD	A,(L53D8)
	LD	C,A
	LD	B,0
L4D53:	LD	A,C
	OR	A
	JP	Z,L4D83
	LD	A,(DE)
	CP	3FH
	JP	Z,L4D7C
	LD	A,B
	CP	0DH
	JP	Z,L4D7C
	CP	0CH
	LD	A,(DE)
	JP	L4BD4
	POP	BC
	JP	L4B9E

L4C35:	LD	A,C
	AND	7
	INC	A
	LD	E,A
	LD	D,A
	LD	A,C
	RRCA
	RRCA
	RRCA
	AND	1FH
	LD	C,A
	LD	A,B
	ADD	A,A
	ADD	A,A
	ADD	A,A
	ADD	A,A
	ADD	A,A
	OR	C
	LD	C,A
	LD	A,B
	RRCA
	RRCA
	RRCA
	AND	1FH
	LD	B,A
	LD	HL,(DPBSV7)
	ADD	HL,BC
	LD	A,(HL)
L4C56:	RLCA
	DEC	E
	JP	NZ,L4C56
	RET

L4C5C:	PUSH	DE
	CALL	L4C35
	AND	0FEH
	POP	BC
	OR	C
L4C64:	RRCA
	DEC	D
	JP	NZ,L4C64
	LD	(HL),A
	RET

L4C6B:	CALL	L4B5E
	LD	DE,10
	ADD	HL,DE
	PUSH	BC
	LD	C,11
L4C
	EX	DE,HL
	LD	HL,(ENTRDE)
	LD	C,20
	PUSH	DE
	CALL	COPYC
	CALL	SIGNS2
	POP	DE
	LD	HL,0CH
	ADD	HL,DE
	LD	C,(HL)
	LD	HL,0FH
	ADD	HL,DE
	LD	B,(HL)
	POP	HL
	POP	AF
	LD	(HL),A
	LD	A,C
	CP	(HL)
	LD	A,B
	JP	Z,L4E8B
	LD	A,0
	JP	C,L4E8B
	LD	A,80
L4E8B:	LD	HL,(ENTRDE)
	LD	DE,0FH
	ADD	HL,DE
	LD	(HL),A
	RET

L4E94:	LD	A,(HL)
	INC	HL
	OR	(HL)
	DEC	HL
	RET	NZ
	LD	A,(DE)
	LD	(HL),A
	INC	DE
	INC	HL
	LD	A,(DE)
	LD	(HL),A
	DEC	DE
	DEC	HL
	RET

L4EA2:	XOR	A
	LD	(RETNDE),A
	LD	(L53	Z,L4D73
	SUB	(HL)
	AND	7FH
	JP	NZ,L4D2D
	JP	L4D7C

L4D73:	PUSH	BC
	LD	C,(HL)
	CALL	L4D07
	POP	BC
	JP	NZ,L4D2D
L4D7C:	INC	DE
	INC	HL
	INC	B
	DEC	C
	JP	L4D53

L4D83:	LD	A,(L53EA)
	AND	3
	LD	(RETNDE),A
	LD	HL,L53D4
	LD	A,(HL)
	RLA
	RET	NC
	XOR	A
	LD	(HL),A
	RET

L4D94:	CALL	L4BFE
	LD	A,0FFH
	JP	RECOVR

L4D9C:	CALL	RONLY?
	LD	C,0CH
	CALL	L4D18
L4DA4:	CALL	L4BF5
	RET	Z
	CALL	L4B44
	CALL	L4B5E
	LD	(HL),0E5
	LD	C,0
	CALL	L4C6B
	CALL	L4BC6
	CALL	L4D2D
	JP	L4DA4

L4DBE:75:	POP	DE
	DEC	C
	RET	Z
	PUSH	DE
	LD	A,(L53DD)
	OR	A
	JP	Z,L4C88
	PUSH	BC
	PUSH	HL
	LD	C,(HL)
	LD	B,0
	JP	L4C8E

L4C88:	DEC	C
	PUSH	BC
	LD	C,(HL)
	INC	HL
	LD	B,(HL)
	PUSH	HL
L4C8E:	LD	A,C
	OR	B
	JP	Z,L4C9D
	LD	HL,(L53C6)
	LD	A,L
	SUB	C
	LD	A,H
	SBC	A,B
	CALL	NC,L4C5C
L4C9D:	POP	HL
	INC	HL
	POP	BC
	JP	L4C75

L4CA3:	LD	HL,(L53C6)
	LD	C,3
	CALL	HLDIV2
	INC	HL
	LD	B,H
	LD	C,L
	LD	HL,(DPBSV7)
L4CB1:	LD	(HL),0
	INC	HL
	DEC	BC
	LD	A,B
	OR	C
	JP	NZ,L4CB1
	LD	HL,(L53CA)EA),A
	LD	(L53EB),A
	CALL	L4B1E
	RET	NZ
	CALL	GETS2
	AND	80
	RET	NZ
	LD	C,0FH
	CALL	L4D18
	CALL	L4BF5
	RET	Z
	LD	BC,10
	CALL	L4B5E
	ADD	HL,BC
	EX	DE,HL
	LD	HL,(ENTRDE)
	ADD	HL,BC
	LD	C,10
L4ECD:	LD	A,(L53DD)
	OR	A
	JP	Z,L4EE8
	LD	A,(HL)
	OR	A
	LD	A,(DE)
	JP	NZ,L4EDB
	LD	(HL),A
L4EDB:	OR	A
	JP	NZ,L4EE1
	LD	A,(HL)
	LD	(DE),A
L4EE1:	CP	(HL)
	JP	NZ,L4F1F
	JP	L4EFD

L4EE8:	CALL	L4E94
	EX	DE,HL
	CALL	L4E94
	EX	DE,HL
	LD	A,(DE)
	CP	(HL)
	JP	NZ,L4F1F
	INC	DE
	INC	HL
	LD	A,	LD	D,B
	LD	E,C
L4DC0:	LD	A,C
	OR	B
	JP	Z,L4DD1
	DEC	BC
	PUSH	DE
	PUSH	BC
	CALL	L4C35
	RRA
	JP	NC,L4DEC
	POP	BC
	POP	DE
L4DD1:	LD	HL,(L53C6)
	LD	A,E
	SUB	L
	LD	A,D
	SBC	A,H
	JP	NC,L4DF4
	INC	DE
	PUSH	BC
	PUSH	DE
	LD	B,D
	LD	C,E
	CALL	L4C35
	RRA
	JP	NC,L4DEC
	POP	DE
	POP	BC
	JP	L4DC0

L4DEC:	RLA
	INC	A
	CALL	L4C64
	POP	HL
	POP	DE
	RET

L4DF4:	LD	A,C
	OR	B
	JP	NZ,L4DC0
	LD	HL,0
	RET

L4DFD:	LD	C,0
	LD	E,20
L4E01:	PUSH	DE
	LD	B,0
	LD	HL,(ENTRDE)
	ADD	HL,BC
	EX	Track-Info

å	
FFB:	JP	RETN1

WRSEQ1:	LD	A,1
	LD	(L53D5),A
L5003:	LD	A,0
	LD	(L53D3),A
	CALL	RONLY?
	LD	HL,(ENTRDE)
	CALL	L4B47
	CALL	L4ABB
	LD	A,(L53E3)
	CP	80
	JP	NC,RETN1
	CALL	L4A77
	CALL	L4A84
	LD	C,0
	JP	NZ,L506E
	CALL	L4A3E
	LD	(L53D7),A
	LD	BC,0
	OR	A
	JP	Z,L503B
	LD	C,A
	DEC	BC
	CALL	L4A5E
	LD	B,H
	LD	C,L
L503B:	CALL	L4DBE
	LD	A,L
	OR	H
	JP	NZ,L5048
	LD	A,2
	JP	RECOVR

L5048:	LD	(L53E5),HL
	EX	DE,HL
	LD	HL,(ENTRDE)
	LD	BC,10
	ADD	HL,BC
	LD	A,(L53DD)
	OR	A
	LD	A,(L53D7)
	J(DE)
	CP	(HL)
	JP	NZ,L4F1F
	DEC	C
L4EFD:	INC	DE
	INC	HL
	DEC	C
	JP	NZ,L4ECD
	LD	BC,-14H
	ADD	HL,BC
	EX	DE,HL
	ADD	HL,BC
	LD	A,(DE)
	CP	(HL)
	JP	C,L4F17
	LD	(HL),A
	LD	BC,3
	ADD	HL,BC
	EX	DE,HL
	ADD	HL,BC
	LD	A,(HL)
	LD	(DE),A
L4F17:	LD	A,0FFH
	LD	(L53D2),A
	JP	L4E10

L4F1F:	LD	HL,RETNDE
	DEC	(HL)
	RET

L4F24:	CALL	RONLY?
	LD	HL,(ENTRDE)
	PUSH	HL
	LD	HL,L53AC
	LD	(ENTRDE),HL
	LD	C,1
	CALL	L4D18
	CALL	L4BF5
	POP	HL
	LD	(ENTRDE),HL
	RET	Z
	EX	DE,HL
	LD	HL,0FH
	ADD	HL,
L5147:	PUSH	BC
	PUSH	DE
	CALL	L4EA2
	POP	DE
	POP	BC
	LD	L,3
	LD	A,(RETNDE)
	INC	A
	JP	Z,L5184
	LD	HL,0CH
	ADD	HL,DE
	LD	(HL),C
	LD	HL,0EH
	ADD	HL,DE
	LD	(HL),B
	CALL	L4E51
	LD	A,(RETNDE)
	INC	A
	JP	NZ,L517F
	POP	BC
	PUSH	BC
	LD	L,4
	INC	C
	JP	Z,L5184
	CALL	L4F24
	LD	L,5
	LD	A,(RETNDE)
	INC	A
	JP	Z,L5184
L517F:	POP	BC
	XOR	A
	JP	RECOVR

L5184:	PUSH	HL
	CALL	GETS2
	LD	(HL),0C0
	POP	HL
L518B:	POP	BC
	LD	A,L
	LD	(RETNDE),A
	JP	SIGNS2

L5193:	LD	C,0FFH
	CALL	L5103
	CP	Z,L5064
	CALL	HLINCA
	LD	(HL),E
	JP	L506C

L5064:	LD	C,A
	LD	B,0
	ADD	HL,BC
	ADD	HL,BC
	LD	(HL),E
	INC	HL
	LD	(HL),D
L506C:	LD	C,2
L506E:	LD	A,(RETNDE)
	OR	A
	RET	NZ
	PUSH	BC
	CALL	L4A8A
	LD	A,(L53D5)
	DEC	A
	DEC	A
	JP	NZ,L50BB
	POP	BC
	PUSH	BC
	LD	A,C
	DEC	A
	DEC	A
	JP	NZ,L50BB
	PUSH	HL
	LD	HL,(DPBSV4)
	LD	D,A
L508C:	LD	(HL),A
	INC	HL
	INC	D
	JP	P,L508C
	CALL	L4BE0
	LD	HL,(L53E7)
	LD	C,2
L509A:	LD	(L53E5),HL
	PUSH	BC
	CALL	L49D1
	POP	BC
	CALL	L49B8
	LD	HL,(L53E5DE
	LD	C,11
	XOR	A
L4F46:	LD	(HL),A
	INC	HL
	DEC	C
	JP	NZ,L4F46
	LD	HL,0DH
	ADD	HL,DE
	LD	(HL),A
	CALL	L4B8C
	CALL	L4DFD
	JP	SIGNS2

L4F5A:	XOR	A
	LD	(L53D2),A
	CALL	L4EA2
	CALL	L4BF5
	RET	Z
	LD	HL,(ENTRDE)
	LD	BC,0CH
	ADD	HL,BC
	LD	A,(HL)
	INC	A
	AND	1FH
	LD	(HL),A
	JP	Z,L4F83
	LD	B,A
	LD	A,(L53C5)
	AND	B
	LD	HL,L53D2
	AND	(HL)
	JP	Z,L4F8E
	JP	L4FAC

L4F83:	LD	BC,2
	ADD	HL,BC
	INC	(HL)
	LD	A,(HL)
	AND	0FH
	JP	Z,L4FB6
L4F8E:	LD	C,0FH
	CALL	L4D18
	CALL	L4BF5
	JP	NZALL	Z,L4FC1
	RET

L519C:	LD	C,0
	CALL	L5103
	CALL	Z,L5003
	RET

L51A5:	EX	DE,HL
	ADD	HL,DE
	LD	C,(HL)
	LD	B,0
	LD	HL,0CH
	ADD	HL,DE
	LD	A,(HL)
	RRCA
	AND	80
	ADD	A,C
	LD	C,A
	LD	A,0
	ADC	A,B
	LD	B,A
	LD	A,(HL)
	RRCA
	AND	0FH
	ADD	A,B
	LD	B,A
	LD	HL,0EH
	ADD	HL,DE
	LD	A,(HL)
	ADD	A,A
	ADD	A,A
	ADD	A,A
	ADD	A,A
	PUSH	AF
	ADD	A,B
	LD	B,A
	PUSH	AF
	POP	HL
	LD	A,L
	POP	HL
	OR	L
	AND	1
	RET

L51D2:	LD	C,0CH
	CALL	L4D18
	LD	HL,(ENTRDE)
	LD	DE,21
	ADD	HL,DE
	PUSH	HL)
	LD	C,0
	LD	A,(L53C4)
	LD	B,A
	AND	L
	CP	B
	INC	HL
	JP	NZ,L509A
	POP	HL
	LD	(L53E5),HL
	CALL	L4BDA
L50BB:	CALL	L49D1
	POP	BC
	PUSH	BC
	CALL	L49B8
	POP	BC
	LD	A,(L53E3)
	LD	HL,L53E1
	CP	(HL)
	JP	C,L50D2
	LD	(HL),A
	INC	(HL)
	LD	C,2
; Patch 01 goes next !!!
L50D2:	DB	0,0,0,0,0
	PUSH	AF
	CALL	GETS2
	AND	7FH
	LD	(HL),A
	POP	AF
	CP	7FH
	JP	NZ,L5100
	LD	A,(L53D5)
	CP	1
	JP	NZ,L5100
	CALL	L4AD2
	CALL	L4F5A
	LD	HL,RETNDE
	LD	A,(HL)
	OR	A
	JP	NZ,L50FE
	DEC	A
	LD	(L53E3),A,L4FAC
	LD	A,(L53D3)
	INC	A
	JP	Z,L4FB6
	CALL	L4F24
	CALL	L4BF5
	JP	Z,L4FB6
	JP	L4FAF

L4FAC:	CALL	L4E5A
L4FAF:	CALL	L4ABB
	XOR	A
	JP	RECOVR

L4FB6:	CALL	RETN1
	JP	SIGNS2

RDSEQ1:	LD	A,1
	LD	(L53D5),A
L4FC1:	LD	A,0FFH
	LD	(L53D3),A
	CALL	L4ABB
	LD	A,(L53E3)
	LD	HL,L53E1
	CP	(HL)
	JP	C,L4FE6
	CP	80
	JP	NZ,L4FFB
	CALL	L4F5A
	XOR	A
	LD	(L53E3),A
	LD	A,(RETNDE)
	OR	A
	JP	NZ,L4FFB
L4FE6:	CALL	L4A77
	CALL	L4A84
	JP	Z,L4FFB
	CALL	L4A8A
	CALL	L49D1
	CALL	L49B2
	JP	L4AD2

L4
	LD	(HL),D
	INC	HL
	LD	(HL),D
	INC	HL
	LD	(HL),D
L51E4:	CALL	L4BF5
	JP	Z,L520C
	CALL	L4B5E
	LD	DE,0FH
	CALL	L51A5
	POP	HL
	PUSH	HL
	LD	E,A
	LD	A,C
	SUB	(HL)
	INC	HL
	LD	A,B
	SBC	A,(HL)
	INC	HL
	LD	A,E
	SBC	A,(HL)
	JP	C,L5206
	LD	(HL),E
	DEC	HL
	LD	(HL),B
	DEC	HL
	LD	(HL),C
L5206:	CALL	L4D2D
	JP	L51E4

L520C:	POP	HL
	RET

;	Set random record
VEC36:	LD	HL,(ENTRDE)
	LD	DE,20
	CALL	L51A5
	LD	HL,21
	ADD	HL,DE
	LD	(HL),C
	INC	HL
	LD	(HL),B
	INC	HL
	LD	(HL),A
	RET

L
L50FE:	LD	(HL),0
L5100:	JP	L4AD2

L5103:	XOR	A
	LD	(L53D5),A
L5107:	PUSH	BC
	LD	HL,(ENTRDE)
	EX	DE,HL
	LD	HL,21
	ADD	HL,DE
	LD	A,(HL)
	AND	7FH
	PUSH	AF
	LD	A,(HL)
	RLA
	INC	HL
	LD	A,(HL)
	RLA
	AND	1FH
	LD	C,A
	LD	A,(HL)
	RRA
	RRA
	RRA
	RRA
	AND	0FH
	LD	B,A
	POP	AF
	INC	HL
	LD	L,(HL)
	INC	L
	DEC	L
	LD	L,6
	JP	NZ,L518B
	LD	HL,20
	ADD	HL,DE
	LD	(HL),A
	LD	HL,0CH
	ADD	HL,DE
	LD	A,C
	SUB	(HL)
	JP	NZ,L5147
	LD	HL,0EH
	ADD	HL,DE
	LD	A,B
	SUB	(HL)
	AND	7FH
	JP	Z,L517FTrack-Info

å	
	L4D01

;	Return log in vector
VEC24:	LD	HL,(LOGINV)
	JP	L5329

;	Return current disk number
VEC25:	LD	A,(L4942)
	JP	RECOVR

;	Set DMA address
VEC26:	EX	DE,HL
	LD	(LDMADR),HL
	JP	L4BDA

;	Get address allocation
VEC27:	LD	HL,(DPBSV7)
	JP	L5329

;	Get R/O vector
VEC29:	LD	HL,(DROVEC)
	JP	L5329

;	Set file attributes
VEC30:	CALL	FCBDRV
	CALL	L4E3B
	JP	L4D01

;	Get disk addr parms
VEC31:	LD	HL,(DPBSV5)
L5329:	LD	(RETNDE),HL
	RET

;	Get/Set user
VEC32:	LD	A,(ENTRYE)
	CP	0FFH
	5221:	LD	HL,(LOGINV)
	LD	A,(L4942)
	LD	C,A
	CALL	HLDIV2
	PUSH	HL
	EX	DE,HL
	CALL	L4959
	POP	HL
	CALL	Z,L4947
	LD	A,L
	RRA
	RET	C
	LD	HL,(LOGINV)
	LD	C,L
	LD	B,H
	CALL	SETBIT
	LD	(LOGINV),HL
	JP	L4CA3

;	Select disk
VEC14:	LD	A,(ENTRYE)
	LD	HL,L4942
	CP	(HL)
	RET	Z
	LD	(HL),A
	JP	L5221

FCBDRV:	LD	A,0FFH
	LD	(L53DE),A
	LD	HL,(ENTRDE)
	LD	A,(HL)
	AND	1FH
	DEC	A
	LD	(ENTRYE),A
	CP	1EH
	JP	NC,L5275
	LD	A,(L4942)
	LD	(L53DF),A
	LD	A,(HL)
	LD	(L53E0),A
	AND	0E0
	LD	(HL),AE5:	DW	0
L53E7:	DB	0,0
; Local variables for directory access
L53E9:	DB	0	;directory pointer 0,1,2,3
L53EA:	DB	0	;directory counter 0..dirmax
L53EB:	DB	0
L53EC:	DW	0	;directory record 0..dirmax/4

; My patch to kill directory buffers before DELETE, RENAME
; 11 bytes
dbuff_clr:
	call	fcbdrv	;puts disk being used in CURDSK
	ld	a,(l4942) ;CURDSK by another name
	ld	c,a	;disk to purge
	ld	a,7	;purge directory buffer function
	rst	28H	;extended BIOS call
	ret
;	defb	0,0,0,0,0,0,0,0,0,0,0

	defJP	NZ,L533B
	LD	A,(USRLVL)
	JP	RECOVR

L533B:	AND	1FH
	LD	(USRLVL),A
	RET

;	Read random
VEC33:	CALL	FCBDRV
	JP	L5193

;	Write random
VEC34:	CALL	FCBDRV
	JP	L519C

;	Compute file size
VEC35:	CALL	FCBDRV
	JP	L51D2

;	Reset drive
VEC37:	LD	HL,(ENTRDE)
	LD	A,L
	CPL
	LD	E,A
	LD	A,H
	CPL
	LD	HL,(LOGINV)
	AND	H
	LD	D,A
	LD	A,L
	AND	E
	LD	E,A
	LD	HL,(DROVEC)
	EX	DE,HL
	LD	(LOGINV),HL
	LD	A,L
	AND	E
	LD	L,A
	LD	A,H
	AND	D
	LD	H,A
	LD	(DROVEC),HL
	RET

;	Recover after ser
	CALL	VEC14
L5275:	LD	A,(USRLVL)
	LD	HL,(ENTRDE)
	OR	(HL)
	LD	(HL),A
	RET

;	Return version number
VEC12:	LD	A,22
	JP	RECOVR

;	Reset disk system
VEC13:	LD	HL,0
	LD	(DROVEC),HL
	LD	(LOGINV),HL
	XOR	A
	LD	(L4942),A
	LD	HL,DBUFF
	LD	(LDMADR),HL
	CALL	L4BDA
	JP	L5221

;	Open file
VEC15:	CALL	CLERS2
	CALL	FCBDRV
	JP	L4E51

;	Close file
VEC16:	CALL	FCBDRV
	JP	L4EA2

;	Search for first match of FCB
VEC17:	LD	C,0
	EX	DE,HL
	LD	A,(HL)
	CP	3FH
	JP	Z,L52C2
	CALL	L4AA6
	LD	A,(HL)b	0,0,0,0,0,0,0

	if	($-serno2) ne 0E00h
	error	BDOS wrong size !!!
	dw	$-serno2+zero
	endif
vice CVECS
L5374:	LD	A,(L53DE)
	OR	A
	JP	Z,L5391
	LD	HL,(ENTRDE)
	LD	(HL),0
	LD	A,(L53E0)
	OR	A
	JP	Z,L5391
	LD	(HL),A
	LD	A,(L53DF)
	LD	(ENTRYE),A
	CALL	VEC14
L5391:	LD	HL,(L490F)
	LD	SP,HL
	LD	HL,(RETNDE)
	LD	A,L
	LD	B,H
	RET

;	Write random with fill 0
VEC40:	CALL	FCBDRV
	LD	A,2
	LD	(L53D5),A
	LD	C,0
	CALL	L5107
	CALL	Z,L5003
	RET
;
L53AC:	DB	0E5H
; all set to zero (that's what they should be)
DROVEC:	DW	0	;R/O drives (16 bits)
LOGINV:	DW	0	;On line drives (16 bits)
LDMAD
	CP	3FH
	CALL	NZ,CLERS2
	CALL	FCBDRV
	LD	C,0FH
L52C2:	CALL	L4D18
	JP	L4BE9

;	Search for next match
VEC18:	LD	HL,(L53D9)
	LD	(ENTRDE),HL
	CALL	FCBDRV
	CALL	L4D2D
	JP	L4BE9

;	Delete file
VEC19:	CALL	dbuff_clr	;also calls FCBDRV
	CALL	L4D9C
	JP	L4D01

;	Read sequential
VEC20:	CALL	FCBDRV
	JP	RDSEQ1

;	Write sequential
VEC21:	CALL	FCBDRV
	JP	WRSEQ1

;	Make file
VEC22:	CALL	CLERS2
	CALL	FCBDRV
	JP	L4F24

;	Rename file
VEC23:	CALL	dbuff_clr	;also calls FCBDRV
	CALL	L4E16
	JPR:	DW	0080H	;Initial DMA address

DPBSV1:	DW	0
DPBSV2:	DW	0
DPBSV3:	DW	0
DPBSV4:	DW	0
DPBSV5:	DW	0
DPBSV6:	DW	0
DPBSV7:	DW	0
L53C1:	DW	0
L53C3:	DB	0
L53C4:	DB	0
L53C5:	DB	0
L53C6:	DW	0
L53C8:	DW	0
L53CA:	DW	0
L53CC:	DW	0
L53CE:	DW	0
SKWPTR:	DW	0	;Pointer to curr dsk skew table
L53D2:	DB	0
L53D3:	DB	0
L53D4:	DB	0
L53D5:	DB	0
ENTRYE:	DB	0
L53D7:	DB	0
L53D8:	DB	0
L53D9:	DW	0
	DB	0,0
L53DD:	DB	0
L53DE:	DB	0
L53DF:	DB	0
L53E0:	DB	0
L53E1:	DB	0
L53E2:	DB	0
L53E3:	DB	0
	DB	0
L53Track-Info

å	
u	2

crtc		equ	0Ch

col_port	equ	8

window_char	equ	0A0h

user_char	equ	0A1h

; locations within BIOS

col_mode	equ	bios_start+129h
al_rev		equ	bios_start+27Bh+17
click_length	equ	bios_start+223h
click_tone	equ	bios_start+224h
fn_active	equ	bios_start+220h

speed_port	equ	9		; Port to change CPU speed
speed_bit	equ	2		; Bit to do this
fast_cpu	equ	0E98Dh		; Flag for fast speed


	aseg
	org	100h

; usual .SYS header

	dw	8000h		; lowest BIOS start ???

	dw	keyboard_start	; where this file loads to

	dw	end_marker-keyboard_start	; length of this file

	ds	180h-$,0	; must fill one record

; leave space in system page for flags and BDOS
	.phase	keyboard_start

; must start with jumps to scn_in and is_closed routines, etc.

	jp	scn_in
	jp	is_closed
	jp	print_s_line
	jp	set_up_s_line

	keyboard_driver


; Key click routine for either keyboard.
;
do_click:
	push	af
	ld	a,(click_length)
	or	a
	jr	z,no_click
	ld	b,a
	ld	a,(fast_cpu)	; 'Halve' bit time if 3.375 MHz
	or	a
	ld	a,(click_tone)
	jr	nz,not_fast
	srl	a		; Divide by 2
not_fast:
	ld	d,a
	in	a,(2)
	ld	e,a
click_loop:
	ld	c,d
	xor	40h
	out	(2),a
tone_loop:
	ld	a,a
	ld	a,a
	ld	a,a
	ld	a,a
	dec	c
	jr	nz,tone_loop
	djnz	click_loop
	ld	a,e
	out	(2),a
no_click:
	pop	af
	ret

; Status line routines

vdu		equ	8000h

s_line		equ	0E700h+58	;active flag (=25 for on)

sl_table	equ	0E700h+2CBh	;pointer to info for line

no_clock	equ	0E700h+28Eh	;no clock fitted (unitialised)

sl_msgs	;
;
;	Header to assemble BIOS keyboard driver file : KEYBOARD.SYS
;	(or KBDSTAND.SYS, KBDINT.SYS, KBDEXT.SYS)
;
;	Also contains some status line stuff
;
;	Written by Peter Broughton.
;
;	1st Dec., 1987
;

; keyboard driver, select the appropriate file
keyboard_driver	macro

;	include	BKBD3870.MAC
	include BKBD6545.MAC

	endm

true		equ	-1
false		equ	not true


; start of keyboard driver in system page
keyboard_start	equ	5800h

bios_start	equ	0E700h

piob_ctrl	equ	3
piob_data	eqTrack-Info

å	
ad from reg 0
	ld	b,10		; 10 regs
call_rtc:
	call	0
; update 'old' time and check for change
	ld	hl,time_spot_o
	ld	de,time_spot
	ld	bc,10 shl 8	; b - counter, c - change flag
p_sl4:
	ld	a,(de)
	cp	(hl)
	jr	z,p_sl5
	ld	c,true
p_sl5:
	ld	(hl),a
	inc	hl
	inc	de
	djnz	p_sl4
	bit	7,c
	jr	z,p_sl6
	ld	a,(status_start)
	cp	'['
	jr	nz,p_sl6

; now display it
	ld	ix,time_spot
	ld	hl,clock_sl
	ld	a,(ix+4)	; hours
	ld	b,'A'		; AM
	cp	12h
	jr	c,dt_1
	sub	12h		; Actually PM
	daa
	ld	b,'P	equ	0E700h+2CDh	;pointer to messages

get_rtc_addr	equ	0E700h+27Dh	;address of rtc routine

; status line positions
status_start	equ	vdu+(24*80)+2
pjb_sl		equ	status_start+2
fast_sl		equ	status_start+16	; 'fast' message
swap_a_m_sl	equ	status_start+28	; pos of 'A<>M' message
lock_sl		equ	status_start+34	; pos of lock message
fn_sl		equ	status_start+43	; 'fn key' message
fn_on_sl	equ	status_start+40	; 'fn active'
clock_sl	equ	status_start+52	; pos of time on status line


num_sl_msgs	equ	5	; ld	a,d
	sub	85

;	else
; telecomputer must have clock
;	xor	a
;	endif

	ld	(no_clock),a	; nz if no rtc present
	push	af
; fill 'old' status values with impossible code so update occurs immediately
	ld	hl,time_spot_o	; make sure full status line is printed
	ld	b,num_old_vals
s_sl1:
	ld	(hl),55h
	inc	hl
	djnz	s_sl1
	call	print_s_line
	pop	af
; if no then don't print ':' & '/'
	ret	nz

	ld	a,':'
	ld	(clock_sl+2),a
	ld	(clock_sl+5),a
	ld	a,'M'
	ld	(clock_sl+10),a
	ld	a,'/'
	ld	(clock'
dt_1:
	or	a
	jr	nz,dt_2
	ld	a,12h		; 12 o'clock
dt_2:
	ld	c,' '		; blank leading zero
	cp	10h
	jr	c,dt_3
	ld	c,'1'
	sub	10h
dt_3:
	ld	(hl),c
	inc	hl
	add	a,'0'
	ld	(hl),a
	inc	hl
	inc	hl
	ld	a,(ix+5)	; min
	call	print_bcd
	inc	hl
	ld	a,(ix+6)	; sec
	call	print_bcd
	inc	hl
	ld	(hl),b		; A/P
	inc	hl
	inc	hl
	inc	hl
	inc	hl
	ld	a,(ix+2)	; date
	call	print_bcd
	inc	hl
	ld	a,(ix+1)	; month
	call	print_bcd
	inc	hl
	ld	a,(ix+0)	; year
	call	print_bcd
p_sl6:
	pop	iy
	pop	ixnumber of messages on status line

sl_pjb_mes:
	db	-'(',-'c',-')',-' ',-'P',-'J',-'B'
len_sl_pjb_mes	equ	$-sl_pjb_mes



; update status line
; must push all but AF and HL
print_s_line:
	push	bc
	push	de
	push	ix
	push	iy
	ld	b,num_sl_msgs
	ld	ix,(sl_table)
	ld	iy,old_sl_vals
p_sl_loop:
	push	bc
	ld	b,0
	ld	h,(ix+1)
	ld	l,(ix+0)
	ld	a,(hl)		; new val
	cp	(iy)		; old val
	jr	z,p_sl1		; no change so goto next one
	ld	(iy),a		; else update old val
	ld	hl,null_mes
	or	a
	jr	z,p_sl3_sl+15),a
	ld	(clock_sl+18),a
	ret


; 'previous' values for status line flags
; do not alter their relative positions

time_spot_o:	ds	10,55h
in_fnstr_o:	db	55h
al_rev_o:	db	55h
fn_active_o:	db	55h
swap_a_m_o:	db	55h
fast_o:		db	55h

num_old_vals	equ	$-time_spot_o	; number of bytes

old_sl_vals	equ	in_fnstr_o	; start of above table


null_mes:
	db	'         '

time_spot:
	ds	10		;10 bytes for time

last_ascii:	db	0FFh
rept_flip:	ds	1


end_marker	equ	$

	if	$ ge 5E00h
	 err
	pop	de
	pop	bc
	ret

p_sl2:
	pop	bc
	jr	p_sl6

; print bcd num in a to (hl)
print_bcd:
	ld	e,a
	rra
	rra
	rra
	rra
	and	0Fh
	add	a,'0'
	ld	(hl),a
	inc	hl
	ld	a,e
	and	0Fh
	add	a,'0'
	ld	(hl),a
	inc	hl
	ret


; clear and set up status line
set_up_s_line:
	ld	hl,(get_rtc_addr)
	ld	(call_rtc+1),hl
; Must clear status line if it is being used
; Actually assume it is being used to allow compatability with window's
;  status line on/off function.
;	ld	a,(s_line)
;	cp	24
;	ret
	ld	hl,(sl_msgs)
	ld	c,(ix+2)	; offset of message
	add	hl,bc		; points to message
p_sl3:
	ld	a,(status_start)
	cp	'['
	jp	nz,p_sl2	; no status line so NO printing
	ex	de,hl
	ld	hl,status_start
	ld	c,(ix+3)	; offset on status line
	add	hl,bc
	ex	de,hl
	ld	c,(ix+4)	; length of msg
	ldir
p_sl1:
	ld	c,5
	add	ix,bc
	inc	iy
	pop	bc
	djnz	p_sl_loop

; clock now, but is it there
	ld	a,(no_clock)
	or	a
	jr	nz,p_sl6	; wasn't there - make sure no display occurs
	ld	hl,time_spot
	ld	e,0		; reor	probably ran past window start
diff	 equ	$-keyboard_start+zero
	endif

	.dephase

	end
	z
	ld	hl,status_start-2
	ld	b,80
su_sl_1:
	ld	(hl),' '
	inc	hl
	djnz	su_sl_1

	ld	a,'['
	ld	(status_start),a
	ld	a,']'
	ld	(status_start+75),a
	ld	hl,sl_pjb_mes
	ld	de,status_start+2
	ld	b,len_sl_pjb_mes
sl_l_n:
	ld	a,(hl)
	neg
	ld	(de),a
	inc	hl
	inc	de
	djnz	sl_l_n

;	if	not telecomputer
; is the real time clock fitted
	ld	c,7
	ld	a,14
	out	(4),a
	in	b,(c)
	ld	a,14
	out	(4),a
	ld	a,85
	out	(6),a
	ld	a,14
	out	(4),a
	in	d,(c)
	ld	a,14
	out	(4),a
	ld	a,b
	out	(6),a
	Track-Info

å	

user_key_1	equ	')'	; <CTRL> + this key = user program call
user_key_2	equ	'?'	; ditto... due to ghosting

rom_port	equ	11
;
; language options ..
ENGLISH	equ	1		;=1 if english version
DANISH	equ	0		;=1 if danish version
SWEDISH	equ	0		;=1 if swedish version
;
; PIO B bits of interest
BEEP_BIT	equ	6
SER_OUT		equ	5	;serial comm. lines
SER_IN		equ	4
SER_CTS		equ	3	;printer busy line= clear to send
SER_DTR		equ	2	;DTR output
CASS_OUT	equ	1
CASS_IN		equ	0	;cassette bits
;
; the following twoc+1)	;reset lpen full
	ld	c,crtc		;address register
	ld	de,dummy*256+l_update
	ld	hl,0370H	;address of last key on keyboard
scn_1:
	ld	a,h_update
	out	(crtc),a
	ld	a,h
	out	(crtc+1),a
	ld	a,l
	push	hl
	ld	h,010H		;value to subtract from a
	call	scan_q		;very fast 16 key scanner
	pop	hl
	ld	l,a
; hl=update regs
	jr	nz,scn_2	;got a new key
	dec	h
	jp	p,scn_1
	ld	b,7
	ld	a,38h
check_c_keys:
	call	is_closed
	jr	z,new_key
	inc	a
	cp	39h		; avoid the control key
	jr	nz,c_ck1
	inc	a
	de are 100Hz multiples (CPU speed independent)
REPT_START	equ	100		;gives 1 second repeat delay
RP_SPEED	equ	10		;gives 10 Hz repeat rate
;
; 6545 register definitions
H_LPEN	equ	16
L_LPEN	equ	17
H_UPDATE	equ	18
L_UPDATE	equ	19
DUMMY	equ	31
; status bit definitions
RETRACE	equ	5
LPEN_FULL	equ	6
UPDATE_RDY	equ	7


; keyboard row/ column codes
row_val		equ	8		;keyboard no. elements/ column
shift_code	equ	7*row_val+7	;shift key
ctrl_code	equ	7*row_val+1	;control key


; scan normal MicroBeec	b
c_ck1:
	djnz	check_c_keys
	jp	bad_exit
; convert hl to key_code ...
scn_2:
	add	hl,hl
	add	hl,hl
	add	hl,hl
	add	hl,hl
	ld	a,h
	and	03Fh
new_key:
	cp	39h
	jp	z,bad_exit
	ld	(key_down),a	;must be released next time
; ensure that repeat count starts from correct level for 1 second
	ld	hl,rept_start
	ld	(rept_count),hl

; now convert it to good old ascii ..
	cond	1-english
	ld	hl,conv_tab
	ld	b,kbc_length
cmp_kb:
	cp	(hl)
	inc	hl
	ld	a,(hl)
	jr	z,asciify
	inc	hl
	ld	a,(key_dow keyboard, return
; Z and char in A
; or NZ if no chars available
scn_in:	
	push	bc
	push	de
	push	hl
	ld	a,(key_down)
	cp	-1
	jr	z,none_down
; must wait for previous key to be released (and debounce)
	ld	b,150	;75	;more for new keyboards (and at high Mhz)
debounce:
	call	is_closed
	jr	z,try_rept	;try repeat delay
	djnz	debounce
	ld	a,-1
	ld	(key_down),a	;it is now up
	jp	none_1		;--- So ZTREK works !!

try_rept:
	ld	hl,rept_flip
	in	a,(crtc)
	and	1 shl retrace
	cp	(hl)
	jp	z,bad_ex;
;	Keyboard scanner for standard MicroBee keyboard.
;
;	Modifications for function keys, window key,
;	key click, etc. by Peter Broughton.
;
;	Last mod. : 1st Jan., 1988
;

; Function keys:

fn_key_1	equ	81h	; value returned by scn_in

fn_str_end	equ	0FFh	; end function char
fn_str_pause	equ	0FEh	; pause char

window_char	equ	0A0h	; value returned by scn_in to get window

window_key	equ	'9'	; <CTRL> + this key = window

user_char	equ	0A1h	; value returned by scn_in to get user program
n)
	djnz	cmp_kb
	endc

; is it an alphabetical key ?
asciify:
	cp	row_val*4
	jr	c,alpha_key
; it is a numeric/ punctuation key
	cp	row_val*6
	jr	c,numer_key
; is it a special key ?
	cp	row_val*7
	jr	c,spec_key
	jp	curs_key


; handle alphabetical keys
alpha_key:
	call	is_ctrl
	jp	z,ascii_ret	;code is correct for control
	add	a,'a'-1
	cp	'`'
	jr	z,strange	;special case for at @

	cond	1-english
	cp	'}'+1		;include extra 3 letters
	endc
	cond	english
	cp	'z'+1
	endc
	jr	c,letterit	;hasn't changed yet
	ld	(hl),a		;note the change
	ld	hl,(rept_count)
	dec	hl
	ld	(rept_count),hl
	ld	a,h
	or	l
	jp	nz,bad_exit
; 10 Hz repeat delay
	ld	hl,rp_speed
	ld	(rept_count),hl
	ld	a,(last_ascii)
	jp	ascii_ret	;return last key pressed
; is there anything pressed at all ?
none_down:
	in	a,(crtc)
	bit	lpen_full,a
	jp	z,bad_exit	;.. not here wasn't
; scan all keys to find main key ..
none_1:
	ld	a,1
	out	(rom_port),a	;disable DISEN address
	ld	a,l_lpen
	out	(crtc),a
	in	a,(crtTrack-Info

å	
'
	jr	c,a_r_1
	cp	'&'
	jr	nc,a_r_1
convert_code:
	ld	b,a		; but only if control is pressed
	call	is_ctrl
	ld	a,b
	jr	nz,a_r_1
	add	a,c
a_r_1:
	call	do_click
	cp	a		;set z flag -> got a key
	ld	(last_ascii),a	;for repeating purposes
bad1_ret:	
	push	af
	ld	a,h_lpen	; reset strobe
	out	(crtc),a
	in	a,(crtc+1)
	xor	a		;allow scanning LPENS
	out	(rom_port),a
	pop	af
	pop	hl
	pop	de
	pop	bc
	ret

bad_exit:	
	or	-1		;clear z flag (nz exit)
	jr	bad1_ret	;-> did not get a new key


s
strange:
	cp	07FH
	jr	z,no_al_rev	;delete shifted = underline
	res	5,a		;for open sq},]},\|,^~
	jr	no_al_rev
; check alpha reverse byte
letters:
	ld	b,a
	ld	a,(al_rev)
	or	a
	ld	a,b
	jr	z,no_al_rev
	xor	1 shl 5
no_al_rev:
	call	is_shift
	jr	nz,ascii_ret
	xor	1 shl 5
	jr	ascii_ret
; handle 0-9 and :/* ;/+ and also ,< -= .> /?
numer_key:
	cp	row_val*5+4
	jr	c,num_1
	set	4,a
num_1:
	cp	row_val*4	;a zero
	jr	z,zero_fix	;if so, don't shift to space
	call	is_shift
	jr	z,ascii_ret	;sh
	xor	a
	out	(rom_port),a		;allow refresh scan
	ld	a,h_lpen
	out	(crtc),a
	in	a,(crtc+1)		;reset lpen strobe
	bit	lpen_full,b
	ld	a,c			;restore acc.
	pop	bc			;restore bc
	ret

; Key code not in range so return NZ
key_too_big:
	or	a
	ret

spec_tab:	
	db	01Bh,08h,09h	;esc,bs,tab
	db	0Ah,0Dh,0	;lf,cr,lock
	db	'X'-40h,020h	;break -> ctl X,space

key_down:	ds	1	;records key presently down or -1
rept_count:	ds	2	;counts down to give repeat delay

; DANISH/SWEDISH
; keyboard lookup table ...
	cond	danish
conv_tab:
	db	40+3,24+3
	db	0+0,24+4
	db	24+3,24+5
	db	24+4,40+3
	db	24+5,0+0
kbc_length	equ	5
	endc
	cond	swedish
conv_tab:
	db	40+3,24+4
	db	0+0,24+3
	db	24+3,24+5
	db	24+4,40+3
	db	24+5,0+0
kbc_length	equ	5
	endc


; very fast keyboard scanner for 16 keys at once
scan_q:	
	out	(c),e
	out	(crtc+1),a
	out	(c),d
	out	(crtc+1),a
scan1_q:	
	in	b,(c)
	jp	p,scan1_q
	in	b,(c)
	bit	lpen_full,b
	ret	nz
	sub	h
	jp	nc,scan_ifted code is correct
zero_fix:
	xor	1 shl 4
	jr	ascii_ret

; handle special keys e.g. cr,lf,brk,lock
spec_key:
	ld	hl,spec_tab-row_val*6
	ld	c,a
	ld	b,0
	add	hl,bc
	ld	a,(hl)
	or	a
	jr	nz,ascii_ret
; it is the lock key
	ld	hl,0
	ld	(rept_count),hl	;very slow
	ld	hl,al_rev
	ld	a,1
	xor	(hl)
	ld	(hl),a
	call	do_click
	jr	bad_exit

; handle premium cursor control keys
; must return value 90h..97h, or 98h..9Fh for shifted key
curs_key:
	add	a,90h-7*8
	ld	b,a
	call	is_shift
	ld	a,b;
;
;	512k operating system support program.
;	Disk cache control program.
;
;

bdos		equ	5
cr		equ	13
lf		equ	10
tab		equ	9
bell		equ	7
command_line	equ	80h

bios_start	equ	0E700h
id		equ	218h
id_val		equ	0AA55h
cache_pages	equ	226h
restore_cache	equ	28Fh
cache_table	equ	158h
num_drives	equ	12Bh
md_pages	equ	225h
mem_page	equ	292h
normal_map	equ	4
bios_map	equ	0Ch
map_port	equ	50h
rst_00h		equ	0C7h


	aseg

	org	100h

	ld	de,start_mesg
	ld	c,9
	call	bdos

	ld	hl,(bios_sq
	cp	a
	ret

is_shift:	
	push	bc
	ld	b,shift_code
	jr	close_1
; is the control key being held down ?
is_ctrl:	
	push	bc
	ld	b,ctrl_code
	jr	close_1

; return z if key specified in a is closed, else nz
is_closed:	
; Make sure key is within range
	cp	40h
	jr	nc,key_too_big
	push	bc
	ld	b,a			;save test key-code

close_1:	
	ld	c,a			;save acc.

	ld	a,h_update
	out	(crtc),a		;select update high byte
	ld	a,b
	rrca
	rrca
	rrca
	rrca
	ld	b,a
	out	(crtc+1),a		;to update high
	ld	a
	jr	nz,ascii_ret
	add	a,8

;
ascii_ret:	
; now check for fn keys, etc.
	cp	'A'
	jr	nc,a_r_1		; Alpha key etc. can't be
	ld	c,window_char-window_key	; conversion value
	cp	window_key			; window ?
	jr	z,convert_code
	ld	c,user_char-user_key_1
	cp	user_key_1			; user 1 ?
	jr	z,convert_code
	ld	c,user_char-user_key_2
	cp	user_key_2			; user 2 ?
	jr	z,convert_code
	ld	c,fn_key_1-'1'
	cp	'8'+1				; function key ?
	jr	nc,a_r_1
	cp	'1'
	jr	nc,convert_code
a_r_2:
	ld	c,fn_key_1+8-'"'
	cp	'"tart+id)
	ld	de,id_val
	or	a
	sbc	hl,de
	jp	nz,get_lost

	ld	hl,command_line
	ld	a,(hl)
	or	a
	jr	z,show_use
	ld	b,a

	ld	de,cache_off_mesg
	ld	a,(bios_start+restore_cache)
	or	a
	jp	z,prt_ret

parse:
	inc	hl
	ld	a,(hl)
	cp	'?'
	jr	z,show_size
	or	'a'-'A'
	cp	'e'
	jr	z,enable
	cp	'd'
	jr	z,disable
	cp	' '
	jr	nz,show_use
	djnz	parse
show_use:
	ld	de,use_mesg
	ld	c,9
	call	bdos
	jr	show_size

enable:
	ld	c,0		; Enabled flag
	call	load_map_c
	jr	purge_drives

disable:,l_update
	out	(crtc),a		;select update lower
	ld	a,b
	out	(crtc+1),a		;to update lower byte
	ld	a,1			;disallow scan lpens
	out	(rom_port),a
	ld	a,h_lpen		;select light pen high byte
	out	(crtc),a		;reset lpen full strobe
	in	a,(crtc+1)
	ld	a,dummy
	out	(crtc),a		;select dummy register
	out	(crtc+1),a		;and write to it
; now wait for update to be done ..
updte:
	in	a,(crtc)
	bit	update_rdy,a
	jr	z,updte
; was there a lpen strobe generated ?
	in	a,(crtc)
	cpl
	ld	b,a			;save 6545 statusTrack-Info

å	
1
	jr	nc,en_2
	ld	(ix_offs_1),a
ix_offs_1	equ	$+2
	ld	(ix+0),c		; flag
en_2:
	djnz	en_sel_drives
	ret
; Enable/disable all
en_3:
	ld	b,4
en_all:
	ld	(ix),c
	inc	ix
	djnz	en_all
	ret


start_mesg:
	db	cr,lf,'Microbee 512k Enhanced Operating System v2.2,'
	db	' (c) 1987 Peter Broughton.',cr,lf
	db	'CACHE : disk cache control program.',cr,lf,lf,'$'

wb_mesg:
	db	bell,'Wrong operating system !!',cr,lf,lf,'$'

use_mesg:
	db	'Use : CACHE E/D/? [A:/B:/C:/D:/L:].',cr,lf
	db	tab,'E - Enab
	ld	c,0FFh
	call	load_map_c

purge_drives:
	ld	b,4
	ld	c,0
pd_1:
	push	bc
	ld	a,6		; XBIOS purge disk (C)
	rst	28h
	pop	bc
	inc	c
	djnz	pd_1

force_boot:
;	ld	a,rst_00h
;	ld	(ret_instr),a

show_size:
; Replace 'D:' in message with 'L:' if less than 4 drives
	ld	a,(bios_start+num_drives)
	cp	4
	jr	nc,ss_3
	ld	a,'L'
	ld	(cache_drives_mesg+1),a
ss_3:
; Loop to find which drives enabled
	ld	hl,bios_start+cache_table+4
	ld	ix,cache_drives_mesg
	ld	bc,4*256+0
;	ld	c,0	; Number found
	ld	a,(hl)
	or	a
	jp	z,show_use
	ld	b,a
parse_disk:
	inc	hl
	ld	a,(hl)
	cp	'?'
	jp	z,display_types
	cp	'L'
	jr	z,got_disk
	cp	'A'
	jr	c,pd_1
	cp	'D'+1
	jr	c,got_disk
pd_1:
	cp	' '
	jp	nz,show_use
	djnz	parse_disk
	jp	show_use

got_disk:
	ld	e,a
	ld	a,(bios_start+num_drives)
	ld	d,a
	ld	a,e
	ld	(disk),a
	cp	'L'
	jr	z,gd_1
	sub	'A'
	cp	d
	jr	c,gd_2
gd_3:
	ld	de,no_drive_mesg
	jp	prt_ret
gd_1:
	ld	a,d
	cp	4
	jr	z,gd_3
	ld	a,'D'-'A'
gd_2:
	ld	(disk_num),a
	dec	b
	jp	zle cache on all or selected drives,',cr,lf
	db	tab,'D - Disable cache on all or selected drives,',cr,lf
	db	tab,'? - Query status.',cr,lf,lf,'$'

cache_off_mesg:
	db	'Cache disabled (no memory allocated).'
	db	cr,lf,lf,'$'

cache_size_mesg:
	db	'Memory available to cache : '
cache_size_loc:
	db	'000k.',cr,lf,lf,'$'

cache_sizes:
	db	0,'32',0,'64',0,'96128'

cache_on_mesg:
	db	'Cache enabled for all drives.',cr,lf,'$'

cache_some_mesg:
	db	'Cache enabled for drive'
cache_pl_mesg:
	db	's disabled
ss_2:
	dec	hl
	ld	a,(hl)
	sub	0FFh
	jr	nz,ss_enabled
	inc	c
	ld	(ix),a
	ld	(ix+1),a
	ld	(ix+2),a
ss_enabled:
	dec	ix
	dec	ix
	dec	ix
	djnz	ss_2
; Are none enabled ?
	ld	de,cache_temp_off_mesg
	ld	a,c
	cp	4
	jr	z,ss_1
; Are all enabled
	ld	de,cache_on_mesg
	or	a
	jr	z,ss_1
; 1..3 enabled
	ld	de,cache_some_mesg
; is just 1 enabled
	sub	3
	jr	nz,ss_1
	ld	(cache_pl_mesg),a
ss_1:
	ld	c,9
	call	bdos
	ld	a,(bios_start+restore_cache)
	dec	a
	ld	b,a
	add	a,b
	add	a,b
	,show_use
	dec	b
	jp	z,show_use
	inc	hl
skip_space:
	inc	hl
	ld	a,(hl)
	cp	' '
	jr	nz,check_type
	djnz	skip_space
	jp	show_use

check_type:
	ld	ix,fmt_table
	ld	c,b
	ld	a,num_types
ct_1:
	push	hl
	push	af
	ld	e,(ix)
	ld	d,(ix+1)
ct_2:
	ld	a,(de)
	cp	'a'-1
	jr	c,ct_3
	res	5,a
ct_3:
	cp	(hl)
	jr	nz,ct_no_match
	inc	hl
	inc	de
	djnz	ct_2
; matches
	pop	af
	pop	hl
	jr	got_match
ct_no_match:
	ld	b,c
	pop	af
	pop	hl
	ld	de,5
	add	ix,de
	dec	a
	jr	nz,ct_1
	jp	show_use
 A: B: C:'
cache_drives_mesg:
	db	' D:.',cr,lf,'$'

cache_temp_off_mesg:
	db	'Cache disabled for all drives.',cr,lf,'$'

	if	($ and 7Fh) ne 0
	 ds	80h-($ and 7Fh)
	endif

	end
ld	e,a
	ld	d,0
	ld	hl,cache_sizes
	add	hl,de
	ld	de,cache_size_loc
	ld	bc,3
	ldir
	ld	de,cache_size_mesg
	jr	prt_ret

get_lost:
	ld	de,wb_mesg
prt_ret:
	ld	c,9
	call	bdos
ret_instr:
	ret

; Load flag in C into cache available map
load_map_c:
	ld	ix,bios_start+cache_table
	dec	b
	jr	z,en_3
; Allow/disallow buffering on selected drives ( flag them 0/0FFh )
en_sel_drives:
	inc	hl
	ld	a,(hl)
	or	'a'-'A'
	sub	'a'
	jr	c,en_2
	cp	'L'-'A'
	jr	nz,en_4
	sub	'L'-'D'
en_4:
	cp	'D'-'A'+
got_match:
	ld	a,(disk_num)
	ld	l,a
	ld	h,0
	add	hl,hl
	add	hl,hl
	add	hl,hl
	add	hl,hl		; disk num * 16
	add	a,a		; disk num * 2
	add	a,l		; disk num * 18
	ld	c,a
	ld	b,h		; h=0
	ld	de,bios_start+dpbase+dpb_ptr
	add	hl,de		; --> dpb ptr in appropriate dph
	ex	de,hl
	ld	hl,bios_start+dpb_base	; --> appropriate dpb
	add	hl,bc
	ex	de,hl	; hl --> dpb ptr, de --> dpb
	ld	(hl),e
	inc	hl
	ld	(hl),d
	dec	de
	dec	de
	dec	de
	ld	l,(ix+3)
	ld	h,(ix+4)	; hl --> new dpb
	ld	c,18		; b=0
	ldir;
;
;	CHDISK : Disk type select program for 512k O/S
;
;

bdos		equ	5
cr		equ	13
lf		equ	10
tab		equ	9
bell		equ	7
rst_00h		equ	0C7h

command_line	equ	80h
bios_start	equ	0E700h
id		equ	218h
id_val		equ	0AA55h
xltc		equ	54
xltd		equ	64
num_drives	equ	12Bh
dpbase		equ	44h
dpb_ptr		equ	0Ah
spare_dpb	equ	0CFh
dpb_base	equ	087h

	aseg

	org	100h

	ld	de,start_mesg
	ld	c,9
	call	bdos

	ld	hl,(bios_start+id)
	ld	de,id_val
	or	a
	sbc	hl,de
	jp	nz,get_lost

	ld	hl,command_lineTrack-Info

å	
d
; ds84
	dw	f5n
	db	f5l
	dw	f5d
; ds8b
	dw	f6n
	db	f6l
	dw	f6d

num_types	equ	($-fmt_table) / 5

; Format data

; ss80
f1d	equ	$
	db	xltd
	db	2
	db	3
;
	dw	40
	db	4
	db	15
	db	1
	dw	194
	dw	127
	db	192,0
	dw	32
	dw	2


; ds80
f2d	equ	$
	db	xltc
	db	5
	db	3
;
	dw	40
	db	5
	db	31
	db	3
	dw	0C2h
	dw	127
	db	80h,0
	dw	32
	dw	4


; ds40
f3d	equ	$
	db	xltd
	db	1
	db	3
;
	dw	40
	db	4
	db	15
	db	1
	dw	194
	dw	127
	db	192,0
	dw	32
	dw	2


; ds82
f4d	
	ld	a,rst_00h
	ld	(ret_inst),a

display_types:
	ld	ix,fmt_table
	ld	b,num_types
	ld	d,0
dt_1:
	ld	l,(ix)
	ld	h,(ix+1)
	ld	e,(ix+2)
	add	hl,de
	ld	(hl),'$'
	ld	e,5
	add	ix,de
	djnz	dt_1

	ld	iy,bios_start+dpbase
	ld	a,0
dt_2:
	push	af
	add	a,'A'
	ld	(drive_name),a
	ld	de,drive_mesg
	ld	c,9
	call	bdos
	ld	l,(iy+dpb_ptr)
	ld	h,(iy+dpb_ptr+1)
	ld	a,l
	cp	low (bios_start+spare_dpb)
	jr	nz,dt_3
dt_7:
; Disk set up by SETDISK etc.
	ld	de,custom_mesg
	ld	c,9
	call	bdos
	jr	dt_4f,'$'

no_drive_mesg:
	db	'Drive '
disk:
	db	'A: not connected to system.',cr,lf,lf,'$'

drive_mesg:
	db	'Drive '
drive_name:
	db	'A: - $'

custom_mesg:
	db	'???? : Custom format.',cr
lf_mesg:
	db	lf,'$'

disk_num	equ	$

	if	($ and 7Fh) ne 0
	 ds	80h-($ and 7Fh)
	endif

	end
equ	$
	db	xltd
	db	1
	db	3
;
	dw	40
	db	4
	db	15
	db	0
	dw	394	; Was originally set incorrectly to 391
	dw	255
	db	0F0h,0
	dw	64
	dw	2


; ds84
f5d	equ	$
	db	xltd
	db	1
	db	3
;
	dw	40
	db	5
	db	31
	db	3
	dw	196
	dw	127
	db	128,0
	dw	32
	dw	2


; ds8b
f6d	equ	$
	db	xltd
	db	1
	db	3
;
	dw	40
	db	4
	db	15
	db	0
	dw	389
	dw	127
	db	0C0h,0
	dw	32
	dw	4


start_mesg:
	db	cr,lf,'Microbee 512k Enhanced Operating System v2.2,'
	db	' (c) 1987 Peter Broughton.',cr,lf
dt_3:
; Try to find matching format
	ld	ix,fmt_table
	ld	b,num_types
	dec	hl
	dec	hl
	dec	hl
dt_5:
	ld	e,(ix+3)
	ld	d,(ix+4)
	push	hl
	push	bc
	ld	b,18
dt_6:
	ld	a,(de)
	cp	(hl)
	jr	nz,dt_no_match
	inc	hl
	inc	de
	djnz	dt_6
; everything matched so found type
	pop	bc
	pop	hl
	jr	dt_match
dt_no_match:
	pop	bc
	pop	hl
	ld	de,5
	add	ix,de
	djnz	dt_5
; Nothing matched so print custom message
	jr	dt_7
dt_match:
; Have found matching type so print it's name
	ld	e,(ix)
	ld	d,(ix
	db	'CD : Disk type selection.',cr,lf,lf,'$'

wb_mesg:
	db	bell,'Wrong operating system !!',cr,lf,lf,'$'

use_mesg:
	db	'Use : CD d: type',cr,lf
	db	tab,'d:   - drive to change, A: B: C: D: or L:,',cr,lf
	db	tab,'type - new disk type for that drive, one of :',cr,lf
	db	tab,tab
f1n	equ	$
	db	'ss80 : 3.5" single sided, 80 track, 386k.',cr,lf
f1l	equ	$-f1n
	db	tab,tab
f2n	equ	$
	db	'ds80 : 3.5" double sided, 80 track, 776k.',cr,lf
f2l	equ	$-f2n
	db	tab,tab
f3n	equ	$
	db	'ds40 : 5.25" doubl+1)
	ld	c,9
	call	bdos

dt_4:
	ld	de,16
	add	iy,de
	pop	af
	inc	a
	ld	hl,bios_start+num_drives
	cp	(hl)
	jr	c,dt_2
	cp	4
	jr	nc,dt_8
	ld	a,'L'-'A'
	ld	iy,bios_start+dpbase+(16*3)
	jr	dt_2
dt_8:
	ld	de,lf_mesg
	jr	prt_ret

show_use:
	ld	de,use_mesg
	jr	prt_ret

get_lost:
	ld	de,wb_mesg
prt_ret:
	ld	c,9
	call	bdos
ret_inst:
	ret

fmt_table:
; ss80
	dw	f1n
	db	f1l
	dw	f1d
; ds80
	dw	f2n
	db	f2l
	dw	f2d
; ds40
	dw	f3n
	db	f3l
	dw	f3d
; ds82
	dw	f4n
	db	f4l
	dw	f4e sided, 40 track, 386k.',cr,lf
f3l	equ	$-f3n
	db	tab,tab
f4n	equ	$
	db	'ds82 : Dreamdisk, double sided, 80 track, 782k.',cr,lf
f4l	equ	$-f4n
	db	tab,tab
f5n	equ	$
	db	'ds84 : PJB''s format, double sided, 80 track, 784k.',cr,lf
f5l	equ	$-f5n
	db	tab,tab
f6n	equ	$
	db	'ds8b : Beeboard, double sided, 80 track, 776k.',cr,lf
f6l	equ	$-f6n
	db	tab,'Note that the change only remains in effect'
	db	' until next RESET.',cr,lf
	db	'Use : CD ?',cr,lf
	db	tab,'Displays current selection.',cr,lf
	db	lTrack-Info

å	
 get window

user_char	equ	0A1h	; value returned by scn_in to get user program

;
; language options ..
ENGLISH	equ	1		;=1 if english version
DANISH	equ	0		;=1 if danish version
SWEDISH	equ	0		;=1 if swedish version
;
VDUH	equ	24
VDUW	equ	80
;
; PIO B bits of interest
BEEP_BIT	equ	6
SER_OUT		equ	5	;serial comm. lines
SER_IN		equ	4
SER_CTS		equ	3	;printer busy line= clear to send
SER_DTR		equ	2	;DTR output
CASS_OUT	equ	1
CASS_IN		equ	0	;cassette bits
;
; SEE ALSO RS232 routines for otheable_kbd:
	ret
;	ld	a,(fn_active)	; Disables keyboard also (for testing)
;	or	a
;	ret	z
	map	sys_vdr
	push	hl
	ld	hl,save_key
	ld	a,(hl)
	inc	a
	jr	nz,still_got
	jr	try
got_key:
	pop	bc
	pop	hl
	ld	(hl),a
still_got:
	or	0FFh
common_ret:
	ld	h,a
	map	bios_map
	ld	a,h
	pop	hl
	ret
not_got_key:
	pop	bc
	pop	hl
	ld	a,0FFh
	ld	(hl),a
	xor	a
	jr	common_ret

; Try to get key from keyboard or from function string.
; It is here that the function keys and code conversions are handled.r timing changes
;
; software dependent timing for 3.375 Mhz
; dump values calculated for "cycle" loop
; formula reqd. is #T states for cycle = 26n + 97
; with video waiting OFF
LONG	equ	104		;1200 Hz
SHORT	equ	50		;2400 Hz
; load value taken for freq. of (1200+2400)/2
; n = ( f/3400 - 141 ) / 36   for GETBIT II
CUTOFF	equ	28		;receive half-way point (redundancy)
;BELL_T	equ	164		;G two above mid C (784hz)
bell_t	equ	165
MILLISEC	equ	122		;disk timing parameter (vwait ON)
;
BELL_Z	equ	100		;f
try:
	push	hl
	push	bc
	ld	a,(in_fnstr)
	or	a
	jr	z,not_fn
	ld	hl,pause_count
	ld	a,(hl)
	dec	a
	jp	m,not_pse
	ld	(hl),a		; if in pause then decr count and no key
	jr	not_got_key
not_pse:
	ld	hl,(fn_ptr)
start_fn:
; if <ESC> is pressed then stop reading function string
	call	scn_in
;	jr	nz,esc_not_pr
	cp	'['-40h
	jr	nz,esc_not_pr
end_fn:
	xor	a		; and quit function string
	ld	(in_fnstr),a
	jr	not_got_key
esc_not_pr:
	ld	a,(hl)		; get next 'key'
	inc	hl
	ld	(fn_ptr),hl
	cp	fn_stairly short (number of cycles)
; the following two are 100Hz multiples (CPU speed independent)
REPT_START	equ	100		;gives 1 second repeat delay
RP_SPEED	equ	10		;gives 10 Hz repeat rate
;
; 6545 register definitions
H_LPEN	equ	16
L_LPEN	equ	17
H_UPDATE	equ	18
L_UPDATE	equ	19
DUMMY	equ	31
; status bit definitions
RETRACE	equ	5
LPEN_FULL	equ	6
UPDATE_RDY	equ	7


; initialize 6545 crt controller - no int disabling
; but wait for 50 ms to allow font selection to take place
crtc_fill:	
	push	; *************************************************************
;	Console (and other) I/O drivers for 512k BIOS
; *************************************************************

; location of keyboard driver program in system page
keyboard_driver	equ	bios_sys_start

; Function keys:

fn_key_1	equ	81h	; value returned by scn_in

fn_str_end	equ	0FFh	; end function char
fn_str_pause	equ	0FEh	; pause char
fn_str_wait	equ	0FDh	; wait for fkey char

window_char	equ	0A0h	; value returned by scn_in tor_end	; quit
	jr	z,end_fn
	ld	b,a
	ld	a,l		; quit next time if reached end
	and	7Fh
	ld	a,b
	jr	nz,not_end_fn
	ld	hl,in_fnstr
	ld	(hl),false
not_end_fn:
	cp	fn_str_pause
	jr	nz,not_pse1
	ld	hl,pause_count	; if pause then wait 20 calls (or 50)
	ld	(hl),30		; or 30? Pick a number, any number.
	jr	z,not_got_key
not_pse1:
	cp	fn_str_wait
	jr	nz,not_wait
	ld	hl,in_fnstr
	ld	a,(hl)		; Wait until this function key is pressed again
	ld	(fn_waiting),a
	ld	(hl),0
	jr	not_got_key
not_wait:
	cp	bc
	push	hl
;
	ld	b,16
cz_a	defl	$
	ld	a,b
	dec	a
	out	(crtc),a
	ld	a,(hl)
	out	(crtc+1),a
	dec	hl
	djnz	cz_a
cz_aabc:
	ld	b,75		;also works at 3.375 Mhz
	call	dely1
	pop	hl
	pop	bc
	ret
;
; Console status. This routine actually gets a key from the keyboard if no key
; is already pending.
;
; return a=FF and nz if there would be a key to get,
;        a=0  and z if nothing there
const:	
; Must call status update as mchinw sits in a loop calling const
	call	display_time
	xor	a
disTrack-Info

å	
return to this address
	push	hl
	call	mem_page	; Enable user's page (+ screen at 8000h ??)
	ld	hl,(user_addr)	; 'Call' program at offset of 0
	jp	(hl)

mchinw:	
	call	mchinl
	jr	z,mchinw
	ret

; DGOS type (and CP/M CONIN) keyboard routines
; return Z if no key available (and a=0)
;       NZ and a=char if there is one there
mchinl:
	call	const
	ret	z		;no new key available
; CONST returned nz, so there must be a key at (save_key) ..
	push	hl
	ld	hl,save_key
	ld	a,(hl)
	ld	(hl),-1		;resetfn_key_1	; if function number then chain to new fn key
	jr	c,got_key
	cp	fn_key_1+num_fn_keys
	jr	nc,got_key
	jr	chain_fk

; Get key from keyboard, if function key pressed and fn keys enabled
; then start reading from function string.
not_fn:
;	ld	a,(fn_active)	;%%%%%
;	or	a
;	jr	z,not_got_key
	call	scn_in
	jr	nz,not_got_key
	cp	fn_key_1
	jp	c,got_key
	cp	fn_key_1+num_fn_keys
	jr	c,chain_fk
	cp	window_char
	jr	z,control_window
	cp	user_char
	jr	z,link_user_kbd
; now must convert cursoritial src = line under curr. line
	pop	de			;initial dst = curr line
	ldir
; also b=0 (column position)
	call	bclr_bot		;clear bottom line (if b=0)
	pop	hl
	jr	kilseq

CURS_SET:	
	sub	'{'			;'{' turns cursor off -> a=0
	ld	(curs_flag),a
	jr	kilseq

ESCSEQ:	
	dec	a
	jr	z,final
	dec	a
	ld	a,c
	jr	z,second
FIRST:	
	cp	'}'
	jr	z,curs_set
	cp	'{'
	jr	z,curs_set
	cp	')'		;half intensity for 912C
	jr	z,inv_set
	cp	'('		;hi off for 912C
	jr	z,inv_set
	cp	'='
	jr	z,cur_pos	;cursor positi save_key
	pop	hl
	ret			;(status is nz)


;
; calls to keyboard driver program in system page
;
scn_in:
	map	sys_vdr
	jp	keyboard_driver

; XBIOS call 15
key_pressed:
	ld	a,c
is_closed:
	push	af
	map	sys_vdr
	pop	af
	call	keyboard_driver+3
	jp	recover_bmap

; call scn_in and return with other page (in A) enabled ( for FLASH routine )
scn_in_m:
	ld	(temp_2),a
	map	sys_vdr
	call	keyboard_driver
	push	af
	ld	a,(temp_2)
	out	(map_port),a
	pop	af
	ret



; Character to be outp keys (90h..9Fh) to correct value
	cp	90h
	jp	c,got_key
	cp	0A0h
	jp	nc,got_key
	ld	hl,curs_key_tab-90h
	ld	c,a
	ld	b,0
	add	hl,bc
	ld	a,(hl)
	or	a		; if 0 then no char for this key
	jp	z,not_got_key
	jp	got_key
	

chain_fk:
	ld	h,a
	ld	a,(fn_active)
	or	a
	jp	z,not_got_key
	ld	a,h
	ld	(in_fnstr),a
	ld	hl,fn_waiting
	cp	(hl)
	ld	(hl),0
	jp	z,not_pse
	sub	fn_key_1	; convert to 0..11
	ld	hl,fn_store	; start of stored strings
	rr	a
	rr	l		; 128 bytes each, -> LS bit to L
	add	a,h	oning
	res	5,a		;lower case -> upper case
	cp	'E'		;line insert
	jr	z,line_ins
	cp	'R'
	jr	z,line_del	;line delete
	cp	'T'
	jr	z,eol_clr	;clear to end of line
	cp	'Y'		;page erase
	jr	z,cls_entry
	xor	a
	ld	(esctrp),a	; kill ESC sequence anyway
	ld	a,c
	cp	'Z'		; if >= Z then attribute, so do space instead
	jr	c,kilseq
	ld	c,' '
	jr	put_c
CLS_ENTRY:	
	call	z,clr_tep
	jr	kilseq	; kill sequence
;
CUR_POS:	
	ld	a,2
	jr	rst_esc		; was esc =
;
FINAL:	
	ld	a,c
	sub	020H
	ld	b,a			;coluut is in C
; (conout)
; ADM-3A emulator plus some functions from the TVI-912C terminal
; i.e. line insert, delete, clear to eol and eop
; ### put in char insert and delete from BETI
INV_SET:	
	rrca				;get bit 7=1 if char was ')' = 029H
	and	080H
	ld	(inv_byte),a
	jp	kilseq
;
LINE_INS:	
	call	do_cret
	push	hl			;save posn. at start of curr. line
	ex	de,hl			;de=start of line
	ld	hl,vdu+vduw*vduh-1	;end of last line
	push	hl
	and	a
	sbc	hl,de
	ld	b,h			;enough bytes?
	ld	c,l
	pop	de
	ld	; MS bits to H
	ld	h,a
	ld	a,(hl)
	cp	fn_str_end
	jp	z,not_got_key
	jp	start_fn

control_window:
	xor	a
	ld	(fn_waiting),a
	ld	a,(window_loaded)
	or	a
	jr	z,no_w
	ld	hl,not_got_key	; return from subr to not_got_key routine
	push	hl
	ld	hl,(window_addr)
	jp	(hl)

; WINDOW.SYS not loaded so toggle fn keys on/off
no_w:
	ld	hl,fn_active
	ld	a,(hl)
	cpl
	ld	(hl),a
	jp	not_got_key

; link to user program
link_user_kbd:
	ld	a,(user_page)
	or	a
	jp	z,not_got_key
	ld	hl,not_got_key	; mn position
	ld	hl,(linpos)		;really ld l,(linpos)
	ld	h,0
	ld	d,h
	ld	e,l
	add	hl,hl
	add	hl,hl
	add	hl,de
	add	hl,hl
	add	hl,hl
	add	hl,hl
	add	hl,hl		; mult by 80 decimal
	ld	e,a
	add	hl,de		; add col pos
; keep it within bounds of 2048 (columns get confused anyway)
	ld	a,h
	and	07H
	ld	h,a
	ld	de,vdu
	add	hl,de		; add base
KILSEQ:	
	xor	a
	jr	rst_esc
;
SECOND:	
	sub	020H
	ld	(linpos),a
	ld	a,1
	jr	rst_esc
;
SETESC:	
	ld	a,3
RST_ESC:	
	ld	(esctrp),a
	jr	vrecovr
;
; hom	hl,vdu+vduw*(vduh-1)-1
	lddr
;
; due to lddr
	pop	hl			;get start of curr. line
EOL_CLR:	
	call	bclr_tel		;clear line at (hl) for vduw-b
	jp	kilseq
;
; delete the line underneath the cursor
LINE_DEL:	
	call	do_cret
	push	hl
	push	hl			;initial dst is start of curr line
	ld	bc,vduw
	add	hl,bc
	push	hl			;save start of line under curr line
	ex	de,hl			;de=start of line under curr. line
	ld	hl,vdu+vduh*vduw+1
	and	a
	sbc	hl,de
	ld	b,h			;enough bytes to move and >0
	ld	c,l
	pop	hl			;inTrack-Info

å	
l,de
	jr	chkscr
;
VHOME:	
	ld	hl,vdu
	xor	a
	jr	recov1
;
BSPC:	
	dec	hl
	dec	b
	ld	a,h
	cp	+(vdu shr 8)-1
	jr	z,vhome
	bit	7,b
	jr	z,vrecovr
	ld	b,vduw-1
	jr	vrecovr
;
TAB:	
	ld	a,(inv_byte)
	or	' '
	ld	(hl),a
	inc	hl
	inc	b
	ld	a,b
	and	07H			; are we at tab stop yet ?
	jr	nz,tab
	jp	eol_check
;
BEEP:	
	push	de
	ld	a,(fast_cpu)
	or	a
	ld	d,bell_t		; 6.75 MHz
	jr	nz,b_1
	ld	d,+(bell_t shr 1)	; 3.375 MHz
b_1:
	out	(vwait_off),a
	ld	c,2*bell_z		; 100 cycles of tone
	in	e and clear screen, entered with Z flag set
CLRVDU:	
	ld	hl,vdu
	ld	b,0		;first column
	jr	cls_entry
;
VDUOUT:	
	push	af
	push	bc
	push	de
	push	hl
;
	ld	hl,(cursor)
	call	csr_flip	; invert (hl)
	ld	a,(colpos)	; get column position in b ..
	ld	b,a
	ld	a,(esctrp)	; is esc sequence in progress?
	or	a
	jp	nz,escseq
PUT_C:	
	ld	a,c
	cp	020H
	jr	c,try_ctrl	;ctrl char ?
	ld	a,(inv_byte)
	or	c
	ld	(hl),a
CSRIGHT:	
	inc	hl
	inc	b
EOL_CHECK:	
	ld	a,b
	sub	vduw
	jr	nz,chkscr
	ld	b,a
 parity
	adc	hl,hl
	djnz	eight
; now calculate parity if reqd. to do so
	ld	b,(ix+parity-num_data)
	dec	b
	jr	z,no_par	;no parity at all
	dec	b
	jr	z,odd_par	;odd parity is set
; even parity is selected ..
	or	a		;set P flag
	jp	pe,send_par	;parity is already even
; parity of data is odd, so add a bit to make it even
W_PAR:	
	scf			;turn on extra parity bit
	jr	send_par
ODD_PAR:	
	or	a
	jp	pe,w_par	;turn on P bit to make it odd
SEND_PAR:	
	adc	hl,hl
NO_PAR:	
	ld	b,(ix+adj_fact-num_dataa,(beep_port)
B_LOOP:	
	xor	40h
	out	(beep_port),a
	ld	b,d
DJ1:
	ld	a,a
	ld	a,a
	ld	a,a
	djnz	dj1
	dec	c
	jr	nz,b_loop
	pop	de
	jr	recov2
;
; subroutine to do "carriage return"
; (also used by delete line, insert line)
DO_CRET:	
	ld	a,b
	or	a
	ret	z
CRLOOP:	
	dec	hl
	djnz	crloop
	ret
;
; clear bottom line, assuming b=0 ..
BCLR_BOT:	
	ld	hl,vdu+(vduh-1)*vduw	;start of last line
; clear to end of line at (hl) for vduw-b bytes
BCLR_TEL:	
	ld	a,vduw
	sub	b
	push	hl
CLRT_1:	
	lCHKSCR:	
	ex	de,hl
	ld	hl,vdu+vduw*vduh-1
	or	a
	sbc	hl,de
	ex	de,hl
	jr	nc,vrecovr
; scroll the screen ...
	push	bc		; save old column posn.
	push	hl
	ld	bc,vduw*vduh-vduw
	ld	hl,vdu+vduw
	ld	de,vdu
	ldir
; .. b=0 from ldir
	call	bclr_bot	; clear bottom line (if b=0)
	pop	hl
	pop	bc		; get old column posn.
	ld	de,-vduw
	add	hl,de
	jr	vrecovr
;
TRY_CTRL:	
	cp	01EH
	jr	z,vhome
	cp	01BH		; escape
	jr	z,setesc
	cp	01AH
	jr	z,clrvdu
	cp	09H		; tab function to '8' boundaries only
	j) ;must rotate hl to starting posn.
ALIGN:	
	scf
	adc	hl,hl
	djnz	align
	ld	d,(ix+totalq-num_data)	;tx control
	ld	e,0
;
; now wait for modem ready i.e. CTS to go high
W_CTS:	
	in	a,(piob_data)
	bit	ser_cts,a
	jr	z,w_cts
;
	di			;stop int_rtn during this
	call	jp_simul
	ld	a,(flag)	;z -> we  got a char in
	or	a
	call	z,chk_break	;store character, wait for mark
;
	ei
	pop	ix
	pop	hl
	pop	de
	pop	bc
	pop	af
	ret


; return char in A and Z, or NZ if no char available from q
RS_IN:d	(hl),' '
	inc	hl
	dec	a
	jr	nz,clrt_1
	pop	hl
	ret
;
; clear to end of page from (hl)
CLR_TEP:	
	push	hl
	ex	de,hl
	ld	a,' '
CLRTP:	
	ld	(de),a
	inc	de
	ld	hl,-(vdu+vduh*vduw+1)	;clear one past end of vdu
	add	hl,de
	jr	nc,clrtp
	pop	hl
	ret
;
CSR_FLIP:	
	ld	a,(curs_flag)
	or	a
	ret	z
	ld	a,(hl)
	xor	80h
	ld	(hl),a
	ret



; Software UART routines which do not need to live below
; 0F000H ..

SET_BAUD:	
; look up delay routine in table and place in simult
	push	hl
	pusr	z,tab
	cp	08H		; backspace
	jr	z,bspc
	cp	0AH
	jr	z,lfeed
	cp	0BH		; cursor up a line
	jr	z,csup
	cp	0CH		; cursor to right (not CLS)
	jr	z,csright
	cp	07H		; bell code
	jr	z,beep
	cp	0DH		; carriage return
	call	z,do_cret
VRECOVR:	
	ld	a,b
RECOV1:	
	ld	(colpos),a
RECOV2:	
	ld	(cursor),hl
	call	csr_flip
	pop	hl
	pop	de
	pop	bc
	pop	af
	jp	retvdu		; switch VDU to F000, return
;
CSUP:	
	ld	de,-vduw
	add	hl,de
	ld	a,h
	cp	+(vdu shr 8)
	jr	nc,recov2
LFEED:	
	ld	de,vduw
	add	h	
	push	de
	push	hl
	push	ix
	ld	hl,(w_ptr)
	ld	de,(r_ptr)
	or	a
	sbc	hl,de
	jr	nz,got_RS
; buffer empty, so allow it to be refilled
	in	a,(piob_data)
	set	ser_dtr,a
	out	(piob_data),a
	or	-1		;nz => got nothing
RS_EX:	
	pop	ix
	pop	hl
	pop	de
	ret
GOT_RS:	
	call	next_RS
; update count of "safe" space remaining in buffer
	di
	ld	hl,(dtr_limit)
	inc	hl
	ld	(dtr_limit),hl
	ei
	ld	a,(ix+0)	;get data first
	ld	(r_ptr),de	;and acknowledge
	cp	a
	jr	RS_ex




; return 0 if busy,h	de
	ld	l,a
	ld	h,0
	add	hl,hl		;*2
	ld	de,baud_tab
	add	hl,de
	ld	e,(hl)
	inc	hl
	ld	d,(hl)
	ld	(simult),de
	pop	de
	pop	hl
	ret

BAUD_TAB:	
	defw	l300
	defw	l600
	defw	l1200
	defw	l2400
	defw	l4800
	defw	l1200		;provision for 110 baud


RS_OUT:	
	push	af
	push	bc
	push	de
	push	hl
	push	ix
	ld	ix,num_data	;start of RS scratchpads
	ld	l,0		;start bit
	ld	b,(ix+num_data-num_data)
	bit	3,b
	jr	z,eight		;if eight data bits
	res	7,a
EIGHT:	
	rrca			;rotating does not affectTrack-Info

å	
 FF if ready for serial printer
; used by DESPOOL (can also be used by WordStar)
S_LISTST:	
	in	a,(piob_data)
	bit	ser_cts,a
	jr	nz,prnt_ready
	xor	a
	ret
PRNT_READY:	
	ld	a,0FFH
	ret



flash_max	equ	60	;number of bytes to flash

; flash inverse message to top of screen
flash:
	map	vdr_map
	push	hl		;save message location
	ld	hl,vdu
	ld	de,save_p
	ld	bc,flash_max
	ldir
	pop	hl
;
	ld	de,vdu
fl_loop:	
	ld	a,(hl)
	xor	080H
	jr	z,fl_wait
	ld	(de),a
	inc	de
	inc	hl
	jr	fl_loop; standard CP/M system call equates
; for use WITHIN the BIOS
;
sysres	equ	0
coninp	equ	1
conout	equ	2
reainp	equ	3
punout	equ	4
lisout	equ	5
dircon	equ	6
getiob	equ	7
setiob	equ	8
pristr	equ	9
reabuf	equ	10
getsta	equ	11
retver	equ	12
resdis	equ	13
seldis	equ	14
opefil	equ	15
clofil	equ	16
seafir	equ	17
seanex	equ	18
delfil	equ	19
reaseq	equ	20
wriseq	equ	21
makfil	equ	22
renfil	equ	23
retlog	equ	24
retcur	equ	25
setdma	equ	26
getall	equ	27
wripro	equ	28
getrov	equ	29
setfi
fl_wait:
	call	scn_in
	cp	cr
	jr	nz,fl_wait
	ld	hl,save_p
	ld	de,vdu
	ld	bc,flash_max
	ldir
	map	bios_map
	ret


BPAR_OUT:	
	push	hl
	ld	hl,par_flag
PAR_O1:	
	bit	0,(hl)
	jr	nz,par_o1
	ld	(hl),-1
	out	(pioa_data),a	;send byte to printer
	pop	hl
	ret
;
P_LISTST:	
	ld	a,(par_flag)
	cpl
	ret


INV_BYTE:	defb	0	;=080H if CONOUT in "INVERSE" mode
ESCTRP:	defb	0		;indicates esc sequence
CURS_FLAG:	defb	-1	;non-zero if cursor is ON

SAVE_KEY:	defb	-1	;=-1 if no keys saved, else=asl	equ	30
getdpb	equ	31
usecod	equ	32
rearan	equ	33
wriran	equ	34
comfil	equ	35
setran	equ	36
resdri	equ	37
wriraz	equ	40
;
; this macro makes system calls easier to use
syscall	macro	func
	ld	c,func
	call	bdos_func
	endm
;
; this macro prints the string parameter
say	macro	mess
	local	tstart
	ld	de,tstart
	syscall	pristr
	dseg
tstart:	defm	mess,'$'
	cseg
	endm
;
; this macro prints a message without killing any registers
; but only when we are testing
debug	macro	mess1
	if	testicii code

pause_count:	db	0	;count of number of con status calls to ignore

;disable_kbd:	db	true	; initially disabled

fn_waiting:	db	0	; Function key currently waiting for repress
ng
	push	af
	push	bc
	push	de
	push	hl
	say	<mess1,0DH,0AH>
	pop	hl
	pop	de
	pop	bc
	pop	af
	endif
	endm
Track-Info

å	
th file - !×~·ÊÍT	#ÃÍM	ÍM	¯2­2®2¯2°É!×>2ÕåÍ3áþÂo:Õ·Â:¸·ÊÍ@	***No CRC Files found***$>·ÉæþÊ‰þ
Ê‰w#:Õ<2ÕþPÚ6:Õ·Ê.6¯ÉÍ@	Can not parse string
!×~·Ê½ÍT	#Ã±ÍM	!×ÊÕ>	¾ÊÐ6 #ÂÈ6^#6!×~·ÊéÍT	#ÃÝ!¯4ÍM	É¾À#x¹ÈÃñå]Í
#eÍ
¯wá~·Ê ÍT	#Ã>2·Í@	 - Ís	ÒMÍ@	File not found
!°4Ã		>2ÒÍoÀ:µG:²¸Â„:´G:³¸Â„Í@	 *Match*
¯2¸!­4¯ÉÍ@	 <-- is, was --> :´Í)	> ÍT	:µÍ)	ÍM	¯2¸!®4¯<ÉÍÀ2´~#þ ÊëÍ@	Not a space between CRC values¯<ÉÍÀ2µG¯É-CATALOG??? match - :®Íƒ:¯·ÊJÍM	Í@	Quantity of lines failed parse test - :¯Íƒ:°·Ê~ÍM	Í@	Quantity of file(s) not found - :°Íƒ*‡ùÉdÍ”
Í”Æ0ÃT	ÿÒ–€Wy³Ê©ö0ÍT	0zÉtiilÍ@	++ Now searching for "-CATALOG" file++
!õÍ
ÍÂ)
Í.Â)
!×ÍåÂ”>.¾Â”#ÍôÂ”ÍÍÂ”Í¡Â”ÍÍÂ›ÍøÂ›ÍøÊtþKÂ›ÍÍÂ›Í¸Â›*«ÍýÃ=:¸·Â=Í”Ã="«Í
ÀÍ
Ê³þ ÀÂª~#þ.ÀÍ
ÊÈþ ÀÂ¿É~þ ÊÖþ	À#~þ ÊÖþ	ÊÖ¿ÉÍôÀÍøÈþ.À+¿ÉÍøÀ~#þ0Úþ:Ò¿Éþ0É~#þ!ÚþÒ¿ÉþAÉÍ.ÀOÍ.ÀGy°¿É~#þ0ÚMÖ0þ
ÚKæÖþ
ÚMþÒM¿É·É:m2±þFÂSÃ„CRCKLIST$$$Â›ÍøÂ›ÍøÊtþKÂ›‰, Â›Ã	õ*€ë*‚}“|šÚù!"‚ë*€{•zœÒë*~ëÍ]Í·ÂÊ€*‚"‚Ãœ	ÖÍñÃî
DISK FULL: CRCFILE$€Í!"‚ë*~ëñ*‚#"‚É¯2i2}! "€!"‚]Í]Í<ÂS	;ÍÃî
NO DIR SPACE: CRCFILE$1‡>2ÒÍs	Ò :··Ê~Í#
++FILE NOT FOUND++$:±þFÂ*‚}æÂ’"€>õÍ‡ñÂ†]Í<ÂÊ	³ÍÃÊ
CANNOT CLOSE CRCFILE$ÃîCRCKLISTCRCSK FULL: CRCFILE$€ÍÍÃå	w#ÂþÑÍÉ!]ÍÍùÍ

DONE$!eÍ	
ÊS!]QÍ
!eZÍ
Í@	
--> FILE:  XXXXXXXX.XXX		CRC = ÍoÊSÃ)
\Í<Â‘Í@	++OPEN FAILED++Ã		!"²!"Ó*Ó|þÊÈÍ·Ê¹ÍþÊ)
\Í·ÂÖ!€~2¶#"ÓÍ	ÃþÂî:³Í)	> ÍT	:²Í)	¯ÉÍ@			++FILE READ EÃ#CRC.COM 5.0 6/18/82CRCKFILE???!9"‡1‡ÍM	Í@	CRC Ver 5.0
CTL-S pauses, CTL-C aborts
:]þ ÂOÍ@	++Searching for CRCKLIST file++ÍÊÇÍ@	Now searching for "CRCKFILE" file++
!Í
ÍÂ1‡Í.Â)
F!×ÍñÂÍ¡Â]ÍñÂÍ¸Â!âÍýÃÇÍ”ÃÇÃ0CRCKLIST???CRCKFILE???!9"‡‰ M	Ã *,ë*.}“|šÚ‰!".ë*,{•zœÒ{**ëÍ	Í·Âu€*.".ÃG*.",€Í!".ë**ë*,}´>È*.#".É¯22)! ",".	Í<ÂÙ	ÇÍÃî
NO FILECRC FILE$!
×Í
>.Í
¯Í@		Checking wiRROR++
¯<É*²|æ€õ):¶…oñÊ%	|î g}î—o"²ÉõÍ2	ñæþ
Ú;	ÆÆ0ÃT	ã~ÍT	#~·ÂA	ãÉ>ÍT	>
ÅÕåæ_ÕÍh	ÑÍáÑÁÉ:±þFÀ{Í‡É€Í¯2h2|:··Ê²	!\ºÍ
:\2Æ!º\Í
\ÍÃÚ	!Æ\Í
\Í!º\Í
\Í<7È=æ‡‡‡‡‡Æo&åÇÍ
á]Í
¯2h2|2·ÉÍ
ÀÍ
À~æþ$#É~#x±Â
ÉÑ	Í:±þFÂ}
*‚}æÂ=
"€>õÍ‡ñÂ1
]Í<Âu
	^
ÍÃu

CANNOT CLOSE CRCFILE$]ÍÍ


++ABORTED++$Ñ	Í:Ò·Ê~¯2±ÍM	Í@	Quantity of file CRC that matched - :­Íƒ:®·ÊÍM	Í@	Quantity of file CRC that did notTrack-Info

å	
+md_pages..2+md_pages+nd_pages : N:
;	3+md_pages+nd_pages..2+md_pages+nd_pages+db_pages : disk cache
;	3+md_pages+nd_pages+db_pages..total_pages : unused

md_pages	equ	10

nd_pages	equ	1

db_pages	equ	2

	endif

; Start of BDOS, MUST be D900
system_start	equ	0D900h

; true to force erasing of m: directory on boot up
format_m	equ	false

; true to INITIALLY make A: --> drive M, M: --> drive A
; UNTESTED !!
swap_phys_A	equ	false

; initial user interface : 0 = CCP, 1 = shell
init_sh		equ;	+-------------------------------------------------------+
;	|							|	
;	|	512k enhanced bios customisation module.	|
;	|		(c) Peter Broughton.			|
;	|							|
;	+-------------------------------------------------------+

; --------------------
; true to assemble BIOS for Telecomputer (TC256)
; --------------------
telecomputer	equ	false

	if	telecomputer

; Values specifically for telecomputer
total_pages	equ	8

md_pages	equ	4

db_pages	equ	1

mem_128		equ	false

	else

; --------ef	macro

disk_A:
	ds84
disk_B:
	ds84
disk_C:
	ds40
disk_D:
	ds84

	endm

; boot_ds determines whether to read system from two tracks on one side
; or one from each side.
; set to true for ds40, ds82, ds84 or ds8b, false for ss80 or ds80
boot_ds		equ	true

; true to allow enough space (i.e. ALV, CSV) for dreamdisk type
dreamdisk_available	equ	true
	0

; initial colour, foreground + 16*background
init_col	equ	15

; initial colour mode, intensities (old colour board only)
init_col_mode	equ	0

; initially include 25th line for status display
status_line	equ	true

; initial colour of status line, window
stat_col	equ	11

; initial CPU speed, true for 6.75 MHz (if hardware fitted)
fast_speed	equ	true


; --------------------
; DISK DRIVE CONFIGURATION
; --------------------


; --------------------
; If preset_disks is set to true t------------
; Not a Telecomputer so set up the following as required
; --------------------

; True for new keyboard
new_keyboard	equ	true	; I think this is meaningless

; True to restrict use to 128k memory only
mem_128		equ	false

; --------------------
; Total number of pages available for TPA, system, ramdisks, cache
; 512k = 16, 256k = 8, 128k = 4
; --------------------
total_pages	equ	16

; --------------------
; Number of pages allocated to memory drives, cache
; ------------------;
;		512k ENHANCED BIOS
;		DISK CACHE ROUTINES
;
;		(c) Peter Broughton.
;
;		Sector buffering of 0k to 128k.
;
;		28th Dec., 1987
;



; If the following is true then two seperate lists will be kept.
; 1 for normal sectors, 1 for dir sectors (which have a higher priority)
; At the moment (26/1/88) this code isn't debugged
dir_list	equ	false

; number of bytes per hash table entry
; #0 = backwards pointer, #1 = forewards pointer,
; #2 = { b6, b7 = disk number (0..3), b0..b4 = sector numbhen the computer will not try to 
; select disk types, i.e. it must be done with SETSYS.
; This should be true unless the 'origional' disk types (i.e. including
; Osborne format etc.) are reincluded, or else code is written to distinguish
; the standard Microbee formats (as is in 3.5" DS 128k system).
; --------------------
preset_disks	equ	true

; total number of drives (floppies)
tot_dr		equ	3

; --------------------
; If preset disks then must select disk types now or using SETSYS
; ----------
;  constraints : 
;	128k : md_pages = 1, nd_pages=0, db_pages = 0
;	256k :
;	  1 <= md_pages + nd_pages + db_pages <= 5
;	512k :
;	  1 <= md_pages + nd_pages + db_pages <= 13
;	All :
;	  md_pages >= 1
;	  nd_pages >= 0
;	  0 <= db_pages <= 4
; page allocation :
;	0   : normal lower 32k, first part of TPA
;	1   : BDOS, CCP, SHELL buffer, Window, function keys etc.
;	2   : normal upper 32k, second part of TPA & CP/M
;	3   : first page of M-drive including directory
;	3..2+md_pages : M:
;	3er (0..31) }
;	if #2 = 0FFh (b5) then this sector is unused,
;	if #2 = 0FEh then this sector is unusable (no corresponding page)
; #3 = track number
bytes_per_entry		equ	4

db_back_ptr		equ	0
db_fore_ptr		equ	1
db_d_s_ptr		equ	2
db_track_ptr		equ	3

; the hash table has max. 256 entries so occupies 1024 bytes = 2 sectors
; so first available sector (entry) is actually #2
; this also means that there will be 
; 8 spare bytes at the start of 'dbuff page 1'
first_used_sector	equ	2

db_unused		------------

; disk types - choose from : DS40, SS80, DS80, DS82, DS84, DS8B
; ds40	: 400k (386k) Microbee 5.25".
; ss80	: 400k (386k) Microbee 3.5" CIAB.
; ds80	: 800k (776k) Microbee 3.5" Modular.
; ds82	: 800k (782k) Dreamdisk
; ds84	: 800k (784k) PJB's 3.5" format.
; ds8b  : 800k (776k) Beeboard
;
; If tot_dr < 4 then disk D must be set up for logical disk
; and must be physically 'compatible' with disk A
;
; All this stuff (except dreamdisk_avail) can be changed with SETSYS

disk_type_dTrack-Info

å	
X)
; first and last entries and handled differently
	ld	h,a
	inc	h	; first entry in normal list points back to last entry
	sub	3	; count 3 less
	ld	b,a
	ld	ix,first_used_sector * bytes_per_entry
	ld	de,bytes_per_entry
	ld	l,first_used_sector
; first dir entry
	ld	(ix),l		; points to itself
	ld	(ix+1),l
; first normal entry points forward to next entry
	inc	l
	inc	l
	add	ix,de
; first entry
	ld	(ix),h		; backwards to last entry
	ld	(ix+1),l	; forewards to next
	add	ix,de
	ld	h,first_used_equ	0FFh
db_unusable		equ	0FEh

; 2 bytes / disk (initialised to 0FFh) :
;	first gives number of system tracks,
;	second gives number of system + dir tracks
;	system tracks = 0FEh for unbufferable
; This uses the 8 spare bytes in the first buffer page
dir_tracks_on_a		equ	0
	if	(first_used_sector * bytes_per_entry) ne 8
	 error	Not enough room for track table
	endif

; initialise disk buffer
db_init:
; don't bother if no pages set for dbuff
	ld	hl,dbuff_pages
	ld	a,(hl)
	dec	a
	ret	m

	disk read go ahead
	jr	nz,db_ret_nz
; if it is then then correct page has been selected and HL, DE and BC are ready
	ex	de,hl
; copy buffer to sector
	ldir
; successful so return Z
db_ret_z:
	pop	bc
	pop	de
	pop	hl
	map	bios_map
	xor	a
	ret

; return with NZ
; assumes already NZ
db_ret_nz:
	pop	bc
	pop	de
	pop	hl
	map	bios_map
	ret

; sector was not already buffered so it has just been read
; so must now buffer it
db_disk_postread:
	push	hl
	push	de
	push	bc
	ld	a,(db_page_1)
sector+1
	inc	l
db_i_1:
	ld	(ix),h		; entry's backwards pointer
	ld	(ix+1),l	;  "      forewards  "
	inc	h
	inc	l
	add	ix,de
	djnz	db_i_1
; last entry
	ld	(ix),h
	ld	(ix+1),first_used_sector+1	; forewards to first entry
; finished
	map	bios_map
	ret



; disk write has just been done, so new sector must be copied into
; next available entry
db_disk_write:
	push	hl
	push	de
	push	bc
	ld	a,(db_page_1)
	out	(map_port),a
; first find if this sector is already there, if it is then link push	af
; select first disk buffer page ie. page with hash table
	dec	hl			; dbuff after mdrive, ndrive
	ld	a,(hl)
	inc	hl
	inc	hl
	add	a,(hl)
	add	a,3			; and after TPA, system page
	ld	(db_page_num_1),a	; First db page (number)
	call	mem_page
	ld	(db_page_1),a		; store it for later use
	pop	af

; calculate number of sectors available,
; with 512 bytes / sector this gives 64 sectors / page
	rrca
	rrca
	or	64-1
; actually pages*64-1 gives number of last used entry
; pages*64-2 is the tota	out	(map_port),a
; find next sector
; returns with page selected, HL, DE and BC loaded for write to buffer
	call	db_get_next_entry
; copy sector to buffer
	ldir
	jr	db_ret_z



; Search the list for specified sector, if not found then return NZ.
; If found then return Z ready for a write to sector,
; (if read required then EX DE,HL).
; Returns :
;	HL = hstbuf, DE = address of found sector
;	BC = length of sector (512 bytes only may be sufficient)
;	correct page selected
db_find_and_relink:it in
; at most recently used position and keep the same entry as next to be used
; returns nz if not found so must get address, page of next sector
	call	db_find_and_relink
; note that if this is a dir sector then this routine will steal an
; entry from the normal list and add it to the dir list
	call	nz,db_get_next_entry
; both calls return with correct page selected and with hl, de and bc ready
; for write to buffer
; so put sector into buffer
	ldir
; Z is not necessary but saves code
	jr	db_l number of entries
	dec	a
	ld	(db_entries),a

; now make all entries to 'unused' value
; Also sets track table to 'unknown' value
	ld	hl,0
	ld	de,1
	ld	bc,+(bytes_per_entry * 256)-1
	ld	(hl), db_unused
	ldir

; Now must make up linked list.
; First entry is initially assigned to dir list and points to itself.
; Remaining entries must be linked in one big long list.
; IX --> address of entry, B = loop counter,
; H = backwards pointer, L = forewards pointer
; DE = bytes_per_entry (incr. of I
	push	ix
; first get disk, sector and track number in appropriate format for search
; H has disk/sector, L has track
	call	db_get_sect_param
; now do search of table, numeric not link order
	ld	ix,+(first_used_sector * bytes_per_entry)
	ld	a,(db_entries)
	ld	b,a
	ld	de,bytes_per_entry
db_f_1:
	ld	a,(ix+2)	; disk/sector
	cp	l
	jr	nz,db_f_2
	ld	a,(ix+3)	; track
	cp	h
	jr	z,db_f_fnd	; matches !!
; doesn't match
db_f_2:
	add	ix,de
	djnz	db_f_1
; reached last entry without match, return witret_z


; disk read is about to be done so check if sector is already buffered
; if it is then make it most recently used and return Z to say
; that the sector does not have to be read from disk
db_disk_preread:
	push	hl
	push	de
	push	bc
	ld	a,(db_page_1)
	out	(map_port),a
; find if this sector is already there, if it is then link it in
; at most recently used position and keep the same entry as next to be used
	call	db_find_and_relink
; returns NZ if sector not found so just return and let Track-Info

å	
t
	ld	a,(db_next_sector)
; get address of this entry
	call	db_num_to_addr
	inc	hl		; entry's forward pointer
; move next sector pointer foreward along list
	ld	a,(hl)
	ld	(db_next_sector),a
; Must get to this point with HL --> (address of ENTRY for cache) +1
db_setup_entry:
; now make entry point to disk sector it is buffering
	ex	de,hl
; get track in D, disk & sector in E
	call	db_get_sect_param
	ex	de,hl
	inc	hl
	ld	(hl),e		; disk & sector
	inc	hl
	ld	(hl),d		; track
; turn this into a h NZ
	pop	ix
	or	-1
	ret

; found a match, now comes the hard part
db_f_fnd:
	pop	ix
; convert loop counter's value to entry number and save
	ld	a,(db_entries)
	add	a,first_used_sector
	sub	b
	call	remove_and_relink
; there done !!!
db_get_sect_addr:
; This section requires that HL --> somewhere within entry for sector
; for which address and page is required
; Convert to page in A (and selected) and sector address in DE
; 64 entries (256 bytes) per page so H has relative page number
	ld	er
	call	db_num_to_addr
	ld	d,(hl)		; entry before
	inc	hl
	ld	e,(hl)		; entry after
; link entry before to one after
	ld	a,d
	call	db_num_to_addr
	inc	hl
	ld	(hl),e
; link entry after to one before
	ld	a,e
	call	db_num_to_addr
	ld	(hl),d
; link it in before 'next sector'
; ie. foreward link to next entry, backward link to same entry
; that next entry links to
	if	dir_list
; First check if it dir or normal
	 ld	a,(db_is_dir)
	 or	a
	 ld	a,(db_next_dir_sector)	; Use dir list
	 jr	nz,db_sector address and page and return
; requires entry address ( + 0..3 ) in HL
	jr	db_get_sect_addr

	if	dir_list

; Attempt to steal an entry from the normal list and put it into the dir list
db_get_new_dir:
; First check if first in dir list is unused
	ld	a,(db_next_dir_sector)
	call	db_num_to_addr
	inc	hl
	inc	hl
	ld	a,(hl)
	dec	hl		; HL must be left --> entry address +1
	cp	db_unused		; Is unused
	jr	z,db_use_this_dir	; so use it
	ex	de,hl		; Address required later
; Get next 'available'a,(db_page_num_1)
	add	a,h
; select it
	call	mem_page
; L has number of entry within page (*4), convert this to address
	ld	d,l
	srl	d	; 512 bytes / sector
	res	0,d
	ld	e,0
; load other values for block move
	ld	hl,hstbuf
	ld	bc,512
; return Z for successful
	xor	a
	ret


; Wish to buffer a new sector, therefore get next one in list and
; move 'next sector' to next entry in list.
; If this is a directory sector then try to steal an entry
; from the normal list.
; This routine will alwayrr_1
	 ld	a,(db_next_sector)	; Use normal list
db_rr_1:
	else
	 ld	a,(db_next_sector)
	endif	
	ld	d,a
	call	db_num_to_addr
	ld	c,(hl)		; entry before next entry
	ld	(hl),b		; now points back to this entry
	ld	a,c
	call	db_num_to_addr	; previous entry
	inc	hl
	ld	(hl),b		; now point to this entry
	ld	a,b
	call	db_num_to_addr	; get address of this entry
	ld	(hl),c		; point back to previous entry
	inc	hl
	ld	(hl),d		; point forward to next entry
	ret


; Purge all entries for drive [c]
; entry in normal list
	ld	a,(db_next_sector)
	ld	b,a
	call	db_num_to_addr	; Get entry address
	inc	hl
	ld	a,(hl)		; Forwards pointer
	cp	b		; If it points to itself then don't steal
	jr	z,db_dont_steal
; Move next normal sector pointer along one
	ld	(db_next_sector),a
	ld	a,b
; Remove it from normal list and link into dir list before next dir entry
	call	remove_and_relink
; Now have an available entry to buffer dir sector so prepare to buffer
	jr	db_setup_entry

; Normal entry wasn't availabs successfully return a sector address.
; This means that even if this is a dir sector it will always leave
; at least one entry in the normal list.
; Returns :
;	HL = hstbuf, DE = address of found sector
;	BC = length of sector (512 bytes only may be sufficient)
;	correct page selected
db_get_next_entry:
	if	dir_list
; if dir then try to steal entry from normal list
	ld	a,(db_is_dir)
	or	a
	jr	nz,db_get_new_dir
	endif
; Is a normal sector so just get the next available entry in the normal lis This is used during seldsk to ensure that the reboot
; actually gets new data from the new disk.
; This also kills the deblocking buffer.
; All regs preserved except A.
; Must also flag number of system, dir+system tracks as 'unknown' (0FFh).
purge_c:
	push	hl
	push	bc

	call	db_common_purge

; Flag track numbers unknown
	ld	a,0FFh
	ld	(hl),a
	inc	hl
	ld	(hl),a
; now purge all tracks < 255 (A)
	jr	db_purge_1


; Purge all directory entries for drive [c]
; This is used before the BDOS dle to be stolen (very unlikely)
; so just move along dir list
db_dont_steal:
	ex	de,hl
; Goes to here if first entry in dir list is marked as unused
db_use_this_dir:
	ld	a,(hl)		; Forward pointer
	ld	(db_next_dir_sector),a	; Move to next
	jr	db_setup_entry

	endif

; remove entry (A) from present position and relink before next sector
; return HL --> entry (A) address +1
; all regs. destroyed
remove_and_relink:
	ld	b,a
; remove it from it's present position, ie. link before and after togethTrack-Info

å	
de
	pop	ix
	pop	bc
	pop	hl
	map	bios_map
	ret

; Routines common to the start of both purge routines
db_common_purge:
; Empty host buffer
	call	hst_flush
	xor	a
	ld	(hstact),a
	ld	a,(dbuff_pages)
	or	a
	jr	z,db_p_ret_1	; cache is disabled anyway so leave now
	ld	a,(db_page_1)
	out	(map_port),a
; Point HL to number of system/dir tracks on disk (C)
	if	dir_tracks_on_a eq 0
	 ld	h,0
	 ld	l,c
	 sla	l
	else
	 ld	b,0
	 ld	hl,dir_tracks_on_a
	 add	hl,bc
	 add	hl,bc
	endif
	ret

db_p_elete/rename function is performed
; to ensure that we don't write bad data on a changed disk
; This also kills the deblocking buffer
; All regs preserved except a
purgedir_c:
	push	hl
	push	bc

	call	db_common_purge

	inc	hl
	ld	a,(hl)		; Get number of dir + system tracks

; purge all tracks < (A) on disk (C)
db_purge_1:
; Go through in numeric order (not list order), find sectors from
; disk (C), track < (A), mark them as 'unused' 
; and relink them as new 'next sector' in normal list
	pber of dir + system tracks on hstdsk
; HL --> 2 bytes : (number of system tracks),(number of dir + system tracks)
;	correct values are loaded into these
; must restore all regs. except A and DE
; Also returns A containing (hl)

db_get_num_dir:
	push	ix
	ld	a,(hstdsk)
	call	x_tab		; Get dpb addr in IX
	push	ix
	pop	de
	ld	a,low spare_dpb
	cp	e
	ld	a,0FEh
	jr	z,db_gn_cant
; Get number of system tracks
	ld	a,(ix+13)
db_gn_cant:
	ld	(hl),a
	ld	e,a
	inc	hl
; Get number of dir tracks
	ld	d,ret_1:
	pop	bc		; remove call to this sub
	pop	bc		; Restore BC, HL
	pop	hl
	ret			; return from call to purge


; Return Z if buffering permissible.
; ie. NZ if buffering disabled or wrong disk type.
; If system sector then NZ.
; If dir sector then Z and flag.
; If normal sector then Z.
db_sector_type:
	ld	a,(dbuff_pages)
	or	a
	jr	z,db_cant_buff_1
	push	hl
	push	de
; See if buffering disabled for this disk
	ld	a,(hstdsk)
	ld	hl,cache_map
	ld	e,a
	ld	d,0
	add	hl,de
	ld	a,(hl)
	or	aush	ix
	push	de
	rrc	c		; convert disk num. to MS bits
	rrc	c
	ld	h,a		; check < this track
	if	dir_list
	 xor	a
	 ld	(db_is_dir),a	; So entries are relinked into normal list
	endif
	ld	ix,first_used_sector * bytes_per_entry
	ld	de,bytes_per_entry
	ld	a,(db_entries)
	ld	b,a			; loop counter
	ld	l,first_used_sector	; entry number
db_p_1:
	ld	a,(ix+2)	; disk/sector
	cp	db_unused
	jr	z,db_p_2
	and	0C0h		; mask out sector number
	cp	c		; is this disk ?
	jr	nz,db_p_2
	ld	a,(ix+3)
	cp	h		; t(ix+7)	; Get number of highest dir entry
	xor	a
	rl	d		; High bit of num dir
	rla
	inc	a	; <=127 dir = 1 track, 128..255 dir = 2 tracks
	add	a,e		; add number of system tracks
	ld	(hl),a
	dec	hl
	ld	a,e
	pop	ix
	ret

	
; convert entry number in A to entry address in HL
db_num_to_addr:
	ld	h,0
	ld	l,a
; multiply by bytes_per_entry to get address
	if	bytes_per_entry eq 4
	 sla	l
	 rl	h
	 sla	l
	 rl	h
	else
	 error	bytes_per_entry <> 4 so fix this code
	endif
	ret

; load H with tra
	jr	nz,db_cant_buff	
; now see if track is system or dir track
	ld	a,(db_page_1)
	out	(map_port),a
; make HL --> number of system, dir+system tracks for (hstdsk)
	if	dir_tracks_on_a eq 0
	 rlc	e
	 ex	de,hl
	else
	 ld	hl,dir_tracks_on_a
	 rlc	e		; 2 bytes per disk
	 add	hl,de
	endif
	ld	a,(hl)
; if 0FFh then the number of ... tracks on this disk is not known
	cp	0FFh	
	call	z,db_get_num_dir	; so find it out
; if 0FEh then it is an unbufferable disk
	cp	0FEh
	jr	z,db_cant_buff
	ld	a,(hstrack
	jr	nc,db_p_2
; disk matches and track is within range
; so mark as unused and relink as next sector
	ld	(ix+2),db_unused
; don't relink if this is the next dir sector
; ie. must keep at least one (maybe unused) entry in dir list
	if	dir_list
	 ld	a,(db_next_dir_sector)
	 cp	l
	 jr	z,db_p_2
	endif
	push	hl
	push	de
	push	bc
	ld	a,l
	call	remove_and_relink
	pop	bc
	pop	de
	pop	hl
	ld	a,l
	ld	(db_next_sector),a	; make it next sector
db_p_2:
	inc	l
	add	ix,de
	djnz	db_p_1

	pop	ck number, L with disk and sector numbers
db_get_sect_param:
	ld	hl,(hstdsk)	; H = hsttrk, L = hstdsk
	rrc	l		; rotate disk number to b6,b7
	rrc	l
	ld	a,(hstsec)	; now OR in sector
	or	l
	ld	l,a
	ret


; all data storage here

db_page_1:	ds	1

db_page_num_1:	ds	1

; next sector in normal list
db_next_sector:
	db	first_used_sector+1

	if	dir_list
; next sector in dir list
db_next_dir_sector:
	db	first_used_sector
	endif

db_entries:	ds	1	; maximum number of entries (pages*64-2)

trk)
	cp	(hl)		; is system ?
	jr	c,db_cant_buff	; don't buffer system
	if	dir_list
	 inc	hl
	 cp	(hl)		; is dir ?
	 ld	a,true		; flag dir track (sector)
	 jr	c,db_s_t_1
	 xor	a		; flag normal track
db_s_t_1:
	 ld	(db_is_dir),a	; 'is directory sector' flag
	endif
	pop	de
	pop	hl
; can buffer so return Z
	map	bios_map
	xor	a
	ret

; can't buffer so return NZ
db_cant_buff:
	pop	de
	pop	hl
	map	bios_map
db_cant_buff_1:
	dec	a	; NZ since A = 0 or bios_map (0Ch)
	ret


; calculate numTrack-Info

å	
	if	dir_list
db_is_dir:	ds	1	; next sector read/write is dir
	endif
;
;
;	ERAseRAM : 512k operating system support program.
;	Erases ramdisks.
;
;

bdos		equ	5
cr		equ	13
lf		equ	10
tab		equ	9
bell		equ	7

command_line	equ	80h
bios_start	equ	0E700h
id		equ	218h
id_val		equ	0AA55h
pages_m		equ	225h
pages_n		equ	227h
mem_page_addr	equ	292h
map_port	equ	50h
bios_map	equ	0Ch
normal_map	equ	4

map	macro	mval
	ld	a,mval
	out	(map_port),a
	endm

	aseg

	org	100h

	ld	de,start_mesg
	ld	c,9
	call	bdos

	ld	hl,(bios_start+id)
	ld	de,id_val
	or	a
	sbc	hl,de
	jr	nz,get_lost

	ld	hl,move_stuff_src
	ld	de,move_stuff_dest
	ld	bc,move_stuff_len
	ldir

	ld	hl,command_line
	ld	b,(hl)

	ld	a,b
	or	a
	jr	z,ask_which

parse_name:
	inc	hl
	ld	a,(hl)
	cp	'M'
	jr	z,got_name
	cp	'N'
	jr	z,got_name
	cp	' '
	jr	nz,ask_which
	djnz	parse_name
	jr	ask_which

got_name:
	sub	'M'
	ld	(name),a
	or	a
	jr	z,gn_1
	ld	a,(bios_start+pages_n)
	or	a
	jr	z,show_use
gn_1:
	dec	b
	jr	z,ask_conf
	dec	b
	jr	z,ask_conf
	inc	hl
	jr	parse_confTrack-Info

å	
z	er_2
	map	normal_map
	ld	de,era_mesg
	ld	c,9
	call	bdos
	rst	0

ram_file_name:
	db	0,'-RAMDISK'
ram_name:
	db	'M',':'+80h,' ',0,0,0,0

move_stuff_len	equ	$-move_stuff_dest

	.dephase

start_mesg:
	db	cr,lf,'Microbee 512k Enhanced Operating System v2.2,'
	db	' (c) 1987 Peter Broughton.',cr,lf
	db	'ERARAM : Erases ramdisks.',cr,lf,lf,'$'

wb_mesg:
	db	bell,'Wrong operating system !!',cr,lf,lf,'$'

use_mesg:
	db	'Use : ERARAM [M:/N: [F]]',cr,lf
	db	tab,'F - don''t ask for confirmati

parse_conf:
	inc	hl
	ld	a,(hl)
	cp	'F'
	jr	z,do_erase
	cp	' '
	jr	nz,ask_conf
	djnz	parse_conf
	jr	ask_conf

do_erase:
	ld	a,(name)
	or	a
	jr	z,de_1
	ld	a,'N'
	ld	(era_name),a
	ld	a,(bios_start+pages_m)
de_1:
	add	a,3
	jp	erase_it

show_use:
	ld	de,use_mesg
	jr	prt_ret

get_lost:
	ld	de,wb_mesg
prt_ret:
	ld	c,9
	call	bdos
	ret

ask_which:
	call	show_use
	ld	a,(bios_start+pages_n)
	or	a
	jr	z,ask_conf
	ld	de,ask_name_mesg
	ld	c,9
	call	bdos
aw_1:
	ld	e,0FFh
	ld	c,rt_mesg
	ld	c,9
	call	bdos

	ld	hl,(bios_start+id)
	ld	de,id_val
	or	a
	sbc	hl,de
	jp	nz,get_lost

	ld	hl,move_stuff_src
	ld	de,move_stuff_dest
	ld	bc,move_stuff_len
	ldir

	ld	hl,command_line
	ld	a,(hl)
	or	a
	jr	z,save_def
	ld	b,a
parse:
	inc	hl
	ld	a,(hl)
	cp	'S'
	jr	z,save
	cp	'L'
	jp	z,load
	cp	' '
	jp	nz,show_use
	djnz	parse

save_def:
	ld	hl,fcb_def+1
	ld	de,fcb+1
	ld	bc,16-1
	ldir
	ld	a,(bios_start+swap_a_m)
	and	'M'-'A'
	add	a,1
	ld	(fcb),a
	jr	save_1

saveon.',cr,lf
	db	tab,'If no memory is assigned to N: then ramdisk M: is'
	db	' assumed.'
crlf_mesg:
	db	cr,lf,lf,'$'

ask_name_mesg:
	db	'Erase which ramdisk (M:/N:) ? $'

ask_conf_mesg:
	db	'Erase ramdisk '
ask_conf_name:
	db	'M:, are you sure ? $'

no_era_mesg:
	db	'N',cr,lf,lf,'Erase aborted !!',cr,lf,lf,'$'

era_mesg:
	db	'Ramdisk '
era_name:
	db	'M: erased !!',cr,lf,lf,'$'
	
name	equ	$

	if	($ and 7Fh) ne 0
	 ds	80h-($ and 7Fh)
	endif

	end
6
	call	bdos
	res	5,a
	cp	'['-40h
	jr	z,aw_4
	cp	'C'-40h
	jr	nz,aw_3
aw_4:
	pop	hl
	ld	de,crlf_mesg
	jr	prt_ret
aw_3:
	cp	'N'
	jr	z,aw_2
	cp	'M'
	jr	nz,aw_1
aw_2:
	push	af
	ld	de,crlf_mesg-1
	ld	(de),a
	ld	c,9
	call	bdos
	pop	af
	sub	'M'
	ld	(name),a

ask_conf:
	ld	a,(name)
	or	a
	jr	z,ac_1
	ld	a,'N'
	ld	(ask_conf_name),a
ac_1:
	ld	de,ask_conf_mesg
	ld	c,9
	call	bdos
ac_2:
	ld	e,0FFh
	ld	c,6
	call	bdos
	or	a
	jr	z,ac_2
	res	5,a
	cp	'Y'
	jr	z,ac_3
	ld	de,no_era_me:
	call	check_file_name
	jr	z,save_def
	call	set_up_fcb
save_1:
	ld	de,save_drive
	call	print_f_name
	ld	de,save_mesg
	ld	c,9
	call	bdos
;	ld	a,rst_00h
;	ld	(ret_inst),a
	call	zero_fcb_stuff
; See if file is already there
	ld	de,fcb
	ld	c,15
	call	bdos
	cp	0FFh
	jr	z,s_not_there
; Was so delete it
	ld	de,fcb
	ld	c,19
	call	bdos
s_not_there:
	call	zero_fcb_stuff
; Open new file
	ld	de,fcb
	ld	c,22
	call	bdos
	cp	0FFh
	jp	z,prt_err
; Get function keys out of system page
	call	 sg
	jr	prt_ret
ac_3:
	ld	de,crlf_mesg-1
	ld	(de),a
	ld	c,9
	call	bdos
	jp	do_erase


move_stuff_src	equ	$

	.phase	9000h

move_stuff_dest	equ	$

erase_it:
	push	af
	cp	3
	jr	z,er_1
	ld	a,'N'+80h
	ld	(ram_name),a
er_1:
	map	bios_map
	pop	af
	ld	hl,(bios_start+mem_page_addr)
	ld	(call_addr),hl
call_addr	equ	$+1
	call	0
	ld	hl,32
	ld	de,33
	ld	bc,+(255*32)-1
	ld	(hl),0E5h
	ldir
	ld	hl,ram_file_name
	ld	de,0
	ld	bc,16
	ldir
	xor	a
	ld	b,16
er_2:
	ld	(de),a
	inc	de
	djnget_f_keys
; Set up file header
	ld	hl,header+6
	ld	b,128-6
s_1:
	ld	(hl),0
	inc	hl
	djnz	s_1
; Copy in cursor keys
	ld	hl,bios_start+cursor_key_tab
	ld	de,header+40h
	ld	bc,16
	ldir
; Write header to file
	ld	de,header
	ld	c,26
	call	bdos
	ld	de,fcb
	ld	c,21
	call	bdos
	or	a
	jp	nz,prt_err
; Write buffer out to file, 1 record at a time
	ld	b,num_fkeys	; = number of records
	ld	de,fkey_buffer
save_loop:
	push	bc
	push	de
; Set buffer address
	ld	c,26
	call	bdos
; Write record;
;
;	FKEY : Function key load/save for 512k O/S
;
;

bdos		equ	5
cr		equ	13
lf		equ	10
tab		equ	9
bell		equ	7

rst_00h		equ	0C7h
move_stuff_dest	equ	8000h
command_line	equ	80h
fcb		equ	5Ch
curr_r		equ	fcb+32
fcb_2		equ	6Ch
bios_start	equ	0E700h
id		equ	218h
id_val		equ	0AA55h
swap_a_m	equ	21Bh
cursor_key_tab	equ	26Bh

num_fkeys	equ	12
fkey_spot	equ	8000h-(num_fkeys*128)
fkey_buffer	equ	0A000h

sys_page	equ	5
normal_map	equ	4
map_port	equ	50h

	aseg

	org	100h

	ld	de,staTrack-Info

å	
cb+16
	ld	b,20
zf_1:
	ld	(hl),0
	inc	hl
	djnz	zf_1
	ret

set_up_fcb:
	ld	hl,fcb_2
	ld	de,fcb
	ld	bc,9
	ldir
	ld	hl,fcb_def_tail
	ld	c,7
	ldir
; Check for ?'s in fcb
	ld	hl,fcb
	ld	b,9
sf_1:
	ld	a,(hl)
	cp	'?'
	jr	z,err_qm
	inc	hl
	djnz	sf_1
	ret

; Check if there seems to be a file name on command line (following S/L)
; Return : NZ if there is, Z if not
check_file_name:
	dec	b
	ret	z
; Skip past any non space characters
cf_2:
	inc	hl
	ld	a,(hl)
	cp	' '
	jr	z,cf_3
	djnz	
	ld	de,fcb
	ld	c,21
	call	bdos
	pop	de
	pop	bc
	or	a
	jp	nz,prt_err
	ld	hl,128
	add	hl,de
	ex	de,hl
	djnz	save_loop
; Close file
	ld	de,fcb
	ld	c,16
	call	bdos
	cp	0FFh
	jp	z,prt_err
	ret

load_def:
	ld	hl,fcb_def
	ld	de,fcb
	ld	bc,16
	ldir
	ld	a,(bios_start+swap_a_m)
	and	'M'-'A'
	add	a,1
	ld	(fcb),a
	jr	load_1

load:
	call	check_file_name
	jr	z,load_def
	call	set_up_fcb
load_1:
	ld	de,load_drive
	call	print_f_name
	ld	de,load_mesg
	ld	c,9
	call	bdos
;	ld	a,rst_00herror !!',cr,lf,lf,'$'

save_mesg:
	db	'Saving function keys to '
save_drive:
	db	'A:'
save_name:
	db	'DEFAULT',0,'.FK',cr,lf,lf,'$'

load_mesg:
	db	'Loading function keys from '
load_drive:
	db	'A:'
load_name:
	db	'DEFAULT',0,'.FK',cr,lf,lf,'$'

fcb_def:
	db	1,'DEFAULT '
fcb_def_tail:
	db	'FK ',0,0,0,0

; This MUST be the last thing in the file
header:
	dw	8000h,8000h-(num_fkeys*128),num_fkeys*128

	if	($ and 7Fh) ne 0
	 ds	80h-($ and 7Fh)
	endif

	end
cf_2
	xor	a
	ret
cf_3:
	dec	b
	ret	z
cf_1:
	inc	hl
	ld	a,(hl)
	cp	' '
	ret	nz
	djnz	cf_1
	xor	a
	ret

; Put file drive and name into print line
print_f_name:
	ld	hl,fcb
	ld	a,(hl)
	or	a
	jr	nz,pf_4
	ld	(de),a
	inc	de
	ld	(de),a
	jr	pf_5
pf_4:
	add	a,'A'-1
	ld	(de),a
	inc	de
pf_5:
	inc	de
	inc	hl
	ld	b,8
pf_1:
	ld	a,(hl)
	cp	' '
	jr	z,pf_2
	ld	(de),a
	inc	hl
	inc	de
	djnz	pf_1
	ret
pf_2:
	ld	a,0
pf_3:
	ld	(de),a
	inc	de
	djnz	pf_3
	ret

move_stuff_src	equ	$

;	ld	(ret_inst),a
	call	zero_fcb_stuff
; See if file is there
	ld	de,fcb
	ld	c,15
	call	bdos
	cp	0FFh
	jr	z,prt_err
; Read header from file
	ld	de,header
	ld	c,26
	call	bdos
	ld	de,fcb
	ld	c,20
	call	bdos
	or	a
	jr	nz,prt_err
; Read buffer from file, 1 record at a time
	ld	b,num_fkeys	; = number of records
	ld	de,fkey_buffer
load_loop:
	push	bc
	push	de
; Set buffer address
	ld	c,26
	call	bdos
; Read record
	ld	de,fcb
	ld	c,20
	call	bdos
	pop	de
	pop	bc
	or	a
	jr	nz,prt_err
	.phase	move_stuff_dest

get_f_keys:
	ld	a,sys_page
	out	(map_port),a
	ld	hl,fkey_spot
	ld	de,fkey_buffer
	ld	bc,num_fkeys*128
	ldir
	ld	a,normal_map
	out	(map_port),a
	ret

put_f_keys:
	ld	a,sys_page
	out	(map_port),a
	ld	hl,fkey_buffer
	ld	de,fkey_spot
	ld	bc,num_fkeys*128
	ldir
	ld	a,normal_map
	out	(map_port),a
	ret

move_stuff_len	equ	$-move_stuff_dest

	.dephase

start_mesg:
	db	cr,lf,'Microbee 512k Enhanced Operating System v2.2,'
	db	' (c) 1987 Peter Broughton.',cr,lf
	ld	hl,128
	add	hl,de
	ex	de,hl
	djnz	load_loop
; Copy function keys to system page
	call	put_f_keys
; Copy cursor keys to table
	ld	hl,header+40h
	ld	de,bios_start+cursor_key_tab
	ld	bc,16
	ldir
; Close file
	ld	de,fcb
	ld	c,16
	call	bdos
	cp	0FFh
	jr	z,prt_err
	ret

err_qm:
	pop	hl	; return address
prt_err:
	ld	de,err_mesg
	jr	prt_ret

show_use:
	ld	de,use_mesg
prt_ret:
	ld	c,9
	call	bdos
ret_inst:
	ret

get_lost:
	ld	de,wb_mesg
	jr	prt_ret

zero_fcb_stuff:
	ld	hl,f
	db	'FKEY : Save/load function and cursor keys.',cr,lf,lf,'$'

wb_mesg:
	db	bell,'Wrong operating system !!',cr,lf,lf,'$'

use_mesg:
	db	'Use : FKEY',cr,lf
	db	tab,'- Save function keys to A:DEFAULT.FK',cr,lf
	db	'Use : FKEY S/L [[d:]filename] (no extension)',cr,lf
	db	tab,'S - Save function keys to d:filename.FK,',cr,lf
	db	tab,'L - Load function keys from d:filename.FK,',cr,lf
	db	tab,'If no filename is supplied then A:DEFAULT.FK'
	db	' is assumed.',cr,lf,lf,'$'

err_mesg:
	db	bell,'File Track-Info

å	
force interrupt
RA_CMND	equ	0C0H		;read address command
SEEK_CMND	equ	01cH		;seek, hld, verify
STPIN_CMND	equ	058H		;stpin, update, hld, no verify

; the read and write commmands assume disks formatted with
; the side byte zero on both sides - this allows both
; 1/2793 and 1/2797 controller chips to be used
RD_CMND	equ	088H			;read 1 sector, no HLD wait
WR_CMND	equ	0A8H			;write 1 sector, no HLD wait
;
; assuming c=drq, this macro will wait for the DRQ
; flag from the FDC
	idrqwait	macro
	zdrqase of misseek)
TRY_RA:
	push	bc
	push	de
fz_a	defl	$
	di			;disable RS232 interrupts
	out	(vwait_off),a	;kill colour board
	ld	a,ra_cmnd
	call	cmnd_delay	;give command, load head if necc.
	ld	c,drq
	idrqwait
	in	a,(data)	;get possible track number
	ld	d,a
	ld	b,3		;read through side,sector,length
fz_b	defl	$
	idrqwait
	in	a,(data)
	djnz	fz_b
fz_baaa:
	ld	e,a		;get poss. sector length byte
	call	wbsy		;wait till unbusy, get status
	ei
	and	098H
	jr	nz,ra_ex	;bad read, so exit early
	wait	defl	$
	in	a,(c)
	jp	p,zdrqwait
	endm
;
	odrqwait	macro
	zdrqwait	defl	$
	in	d,(c)
	jp	p,zdrqwait
	endm
;
; select drive (A), and set (sec_length) and (dden_byte)
; according to what type of disk is in the drive
; also correct track register
; return Z if O.K., NZ if drive won't select (no disk
; or no drive if unused drive_sels are connected to IP)
SEL_FLOPPY:
	push	bc
	ld	(disk),a
	ld	c,a			;what is desired
	ld	a,(dden_byte)
	or	c
	out	(drives),a		;select drive,density
;
; donld	a,d		;track number read from disk
	out	(track),a	;correct track register
	cp	3		;if >= track 3, continue
	jr	nc,fz_aaaw
; step in a track to determine type correctly for foreign formats
	ld	a,stpin_cmnd
	call	cm_wrdy
	jr	fz_a
fz_aaaw:
; no problems, so update track, sec_length, and # pair of bytes
	ld	a,e
	ld	(sec_length),a		;sector length 0=128, 2=512
; this does not work for 1024 byte sectors ..
	ld	a,1 shl 5
fz_a	defl	$
	rla
	dec	e
	jp	p,fz_a
fz_aaax:
	ld	(num_pairs),a
	cp	a
; .. 't bother checking whether there is a disk in the drive,
; because if we return an error, we would have to bomb the
; program anyway
	call	d_int			;force type I status
	call	dense_sense		;fix track, density, size
	jr	z,fzz_aam
	call	d_restore		;in case off track, restore
	call	dense_sense		;and try again
fzz_aam:
	pop	bc
	ret


; sense the density and sector length of the currently
; selected disk by retrying up to ds_retry times until a correct
; read is obtained (update track register if it	.Z80

; DOUBLE DENSITY disk package for 512k BIOS

MILLISEC	equ	122		;3.375 Mhz only
; This should be the value to set the number of retries.
RTCNT	equ	25	;50		;retry count (or 25)
DS_RETRY	equ	4		;# times to try read addr.
CMND	equ	044H		;WD1793/97 FDC
STATUS	equ	cmnd
TRACK	equ	cmnd+1
SECTOR	equ	cmnd+2
DATA	equ	cmnd+3
DRQ	equ	048H
DRIVES	equ	drq
DDEN_SEL	equ	3		;bits on the (drives) port
SIDE_SEL	equ	2
TTD	equ	3		;30 Ms for restore only
TRKPD	equ	40		;40 cylinders

INT_CMND	equ	0D0H		;Z flag is true
RA_EX:	
	pop	de
	pop	bc
	ret


; setup for read or write ...
; given d=track with b7=1 for side 1, e=sector,
; try to seek to correct position, if O.K., return
; Z, otherwise return NZ if seek error
; also return b=# pairs of bytes to read, c=drq
SETUP:	
	out	(vwait_off),a	;disable screen waiting each line
	push	de
	ld	a,(disk)
	ld	e,a
	ld	a,(dden_byte)
	or	e
	ld	e,a		;e = disk | dden_byte

	bit	7,d
	jr	z,side0
	res	7,d		;and for physical track number
	set	side_sel,e	; is ok)
DENSE_SENSE:	
	push	bc
	ld	b,ds_retry		;ds_retry goes to get it right
fz_a	defl	$
	call	try_ra		;read address, return Z/NZ
	jr	z,fz_aaav
	push	hl
	ld	hl,dden_byte
	ld	a,1 shl dden_sel
	xor	(hl)		;invert dden bit (swap modes)
	ld	(hl),a
	ld	a,(disk)
	or	(hl)
	out	(drives),a	;tell controller
	pop	hl
	or	-1		;set nz=error
	djnz	fz_a
fz_aaav:
	pop	bc
	ret


; try_ra tries to do a READ ADDRESS command and
; if successful, updates the sector length bytes and
; track register (in cTrack-Info

å	
	call	erchk		;do dense_sense and restore sometimes
	djnz	fz_a
fz_aaay:
	pop	bc
	xor	a
	inc	a
	ret			;unrecoverable error
;
;
; Write 'host' sector
; given ...
; drive number in 'drive'
; sector length in (sec_length)
; d=track, e=sector
; hl=data transfer address
;
; returns ..
; hl=hl+128*2^(sec_length)
; a=0 (and Z) if no errors, else returns 1 (and NZ)
;
; Write a sector
WR_FLOPPY:	
	push	bc
	ld	b,rtcnt
fz_a	defl	$
	push	hl		;save transfer address
	push	bc		;save error count-dowset for side 1
SIDE0:	
	ld	a,e
	out	(drives),a	;set drive, side, density
;
	in	a,(track)
	cp	d		;already there?
	jr	z,fzz_aan
	ld	a,d
	out	(data),a	;desired track
	ld	a,seek_cmnd	;seek with verify and hld at 6ms
	call	cm_wrdy		;and return status in a
	ld	b,10
	call	dely1		;10 Ms head settle time
	in	a,(status)
	and	018H		;did verify fail?
fzz_aan:
; get # pairs of bytes to read or write in B
	ld	a,(num_pairs)	;quickest way to get it
	ld	b,a
;
	ld	c,drq		;for ED70 loop
	pop	de
	ld	a,e	M_WRDY:	
	out	(cmnd),a
DWRDY:	
	call	d_delay
WBSY:	
	in	a,(status)
	bit	0,a			;check busy flag
	jr	nz,wbsy		;wait till not busy
	ret
;
; delay for b milliseconds
DELY1:	
	push	hl
DLY1LP:	
	ld	hl,millisec
DLY:	
	dec	hl
	ld	a,h
	or	l
	jr	nz,dly
	djnz	dly1lp
	pop	hl
	ret
;
;
; a routine which loads consecutive sectors into memory for
; a specified number of bytes
;
; Requires no. bytes to load in BC
; destination of load in HL
; D=starting track no 0-79
; E=starting sector no 1-?n
	call	setup		;seek, set sector, b=# pairs, c=drq
	jr	nz,fzz_aap
	di
	push	de		;save de since we must "in ?,(c)"
	ld	a,wr_cmnd	;write, no wait cmnd
	call	cmnd_delay	;give command, wait for status valid
fz_b	defl	$
	ld	a,(hl)
	odrqwait
	out	(data),a
	inc	hl
	ld	a,(hl)
	odrqwait
	out	(data),a
	inc	hl
	djnz	fz_b
fz_baac:
	ei
	pop	de
	call	wbsy		;wait for unbusy, get status
	and	0FDH		;relevant bits only
	jr	nz,fzz_aap
	pop	bc		;pop off error count
	pop	bc		;pop off transfer address
	p	;required sector
	out	(sector),a
	ret
;
;
; Read 'host' sector
; given ...
; drive number in 'drive'
; sector length in (sec_length)
; d=track, e=sector
; hl=data transfer address
;
; returns ..
; data at (hl) for 128*2^(sec_length) bytes
; hl=hl+128*2^(sec_length)
; a=0 (and Z) if no errors, else returns 1 (and NZ)
;
RD_FLOPPY:	
	push	bc
	ld	b,rtcnt
fz_a	defl	$
	push	hl		;save transfer address
	push	bc		;save error count-down
	call	setup		;seek, set sector, b=# pairs, c=drq
	jr	nz,
;  returns Z if OK, NZ if a bad read occured
;
;OFFLOAD:	
;	push	ix
;	push	iy
;;
;	push	hl
;	pop	ix
;	add	ix,bc
;	call	get_tab		;address of sectors per track in iy
;	ld	b,5			;number of retries
;fz_a	defl	$
;	push	bc		;save #retries left
;	push	de		;save initial track/sector
;	push	hl		;save initial address
;fz_b	defl	$
;	call	setup		;seek and set init. sector reg.
;	jr	nz,fz_baad
;	di			;kill RS232 ints
;	ld	a,rd_cmnd+010H	;multiple sec read
;	call	cmnd_delay		;ensure head loaded (& mop	bc
	ret			;successful write exit
fzz_aap:
	pop	bc		;reget error count in b
	pop	hl		;reget transfer address
	call	erchk		;do dense_sense and restore sometimes

	djnz	fz_a
fz_aaaz:
	pop	bc
	xor	a
	inc	a
	ret				;unrecoverable error
;
; an error has occured, so
; home the head after every 8 retrys (b is counter)
; also STATUS is type I after this subroutine
; also update error count
ERCHK:	
	push	af
	call	try_ra		;try to read address, fix track reg ..
	ld	a,7
	and	b		;restore every 8 fzz_aao
	di
	ld	a,rd_cmnd	;read, no wait cmnd
	call	cmnd_delay	;give command, wait for status valid
fz_b	defl	$
	idrqwait
	in	a,(data)
	ld	(hl),a
	inc	hl
	idrqwait
	in	a,(data)
	ld	(hl),a
	inc	hl
	djnz	fz_b
fz_baab:
	ei
	call	wbsy		;wait for unbusy, get status
	and	09CH		;relevant bits only
	jr	nz,fzz_aao
	pop	bc		;pop off error count
	pop	bc		;pop off transfer address
	pop	bc
	ret			;successful read exit
fzz_aao:
	pop	bc		;reget error count in b
	pop	hl		;reget transfer address

otor)
;fz_c	defl	$
;	ld	a,(num_pairs)
;	ld	b,a
;	ld	c,drq		;port with drq bit 7
;fz_d	defl	$
;	idrqwait
;	in	a,(data)
;	ld	(hl),a
;	inc	hl
;	idrqwait
;	in	a,(data)
;	ld	(hl),a
;	inc	hl
;	djnz	fz_d
;fz_daaa:
;	push	ix
;	pop	bc
;	push	hl
;	and	a		;clear carry
;	sbc	hl,bc
;	pop	hl
;	jr	nc,qr_exit	;don't need any more sectors
;;
;	ld	a,e
;	inc	e
;	cp	(iy+0)	;number of sectors per track
;	jr	nz,fz_c
;fz_caaa:
;	ld	b,3
;	call	dely1			;wait for busy status valid
;	in	a,(status)
;	cpretrys
	call	z,d_restore	;do a restore
	call	d_int		;force type I status (not read status)
; keep a count of total errors, stopping at 255
	ld	a,(total_errs)
	inc	a
	jr	z,fzz_aaq
	ld	(total_errs),a
fzz_aaq:
	pop	af
	ret
;
CMND_DELAY:	
	out	(cmnd),a
; greater than 60uS delay at 2.25Mhz
D_DELAY:	
	ld	a,16
fz_a	defl	$
	dec	a
	jr	nz,fz_a
fz_aaba:
	ret
;
; interrupt the FDC
D_INT:	
	ld	a,int_cmnd
	jr	cm_wrdy
; restore to track zero
D_RESTORE:	
	ld	a,8+ttd		;restore (slowly always)
CTrack-Info

å	
_aar
	dec	a		;double density
fzz_aar:
	ld	iy,max_sects	;default to 18 if too big or small
	ret	m		;and NZ if 128 byte DD !
	bit	2,a		;too big if 512 SD, or 1024 SD&DD
	ret	nz
	push	de
	ld	d,0
	ld	e,a
	add	iy,de
	pop	de
	ret
;
;
; a table of the maximum number of sectors per
; track for the 4 supported formats
MAX_SECTS:	
	defb	18		;SD 128 bytes	(old sd format)
	defb	18		;DD 256 bytes	(mos)
	defb	10		;SD 256 bytes	(osborne)
	defb	10		;DD 512 bytes	(main DD format)


DISK:	defb	0	;currl	
;	bit	0,a
;	jr	nz,fz_baad
;;
;	call	d_int			;kill track read
;	ld	e,1
;	inc	d			;next track
;	jr	fz_b
;fz_baad:
;	pop	hl			;start address
;	pop	de			;starting track, sector
;	pop	bc			;number of retries
;	djnz	fz_a
;fz_aabb:
;QR_PX:	
;	ei
;	pop	iy
;	pop	ix
;	ret	nz			;if stopped for error
;	call	d_int			;kill multi-sector read
;	and	09CH			;relevant bits only
;	ret
;QR_EXIT:	
;	pop	hl
;	pop	de
;	pop	bc
;	xor	a			;set z flag -> check status reg.
;	jr	qr_px
;;
;
; a routine wh 
Publiã Domaiî Softwarå Library»  Speciaì Priceó oî Consumerablå Goodó  sucè 
aó  Diskó anä Paper¬  Classeó foò Basiã anä Assembleò anä alsï ouò owî RBBÓ 
service.

TAPÅ LIBRARÙ - Thå Tapå Librarù operateó aô thå monthlù Generaì Meetinç anä 
offeró á rangå oæ tapå softwarå includinç games¬  adventures¬  databaså anä 
utilitieó foò thå cassettå baseä Microbees®  Á smalì feå ió chargeä foò onå 
monthó loan® Orderó foò tapeó maù bå alsï madå bù mail.

DISË  LIBRARÙ  -   Thå  Publiã Domaiî Disë Libraently selected disk
SEC_LENGTH:	defb	2	;0=128, 1=256, 2=512
NUM_PAIRS:	defb	1	;# pairs of byte to xfer
TOTAL_ERROR:	defb	0	;total r/w errors so far
DDEN_BYTE:	defb	08H	;=08H if double density selected
ich stores consecutive sectors onto disk for
; a specified number of bytes (taken up to next sector length)
;
; Requires no. bytes to save in BC
; source of load in HL
; D=starting track no 0-79
; E=starting sector no 1-?
;  returns Z if OK, NZ if a bad write occured
;blockwrite
;	push	iy
;	push	hl
;	add	hl,bc
;	ld	b,h		;bc=byte after last byte to read
;	ld	c,l
;	call	get_tab	;get address of sectors per track
;	pop	hl
;	{
;		call	wr_floppy
;		#if	nz,brk	;bad sector read
;		ld	a,e
;		inc	rù  consistó  oæ  oveò  40° 
volumeó oæ software® Orderó foò diskó maù bå madå aô thå Generaì Meetinç oò 
bù mail® Theù maù bå ordereä oî 3.5"¬ 5¢ oò 8¢ formats.

MAGAZINÅ  LIBRARÙ  - Thió  includeó Applieä  Technologù  (Microbeå  Systemó 
Limited©  manuals¬  hardwarå  noteó anä pasô issueó oæ ouò owî   anä  otheò 
Microbeå Useò  Group'ó magazines.

CLASSEÓ  -  Theså  arå helä froí timå tï timå wheî sufficienô  interesô  ió 
shown.

RBBÓ   -  Thå cluâ operateó á Remotå Bulletiî Boarä servicå 2´ he
;		cp	(iy+0)	;overflow off track?
;		#if	c,nxt
;		inc	d		;next track
;		ld	e,1		;first sector
;	#mark
;		push	hl
;		and	a		;clear carry
;		sbc	hl,bc
;		pop	hl
;		#if	c,cont
;		cp	a		;set Z flag
;	}
;	pop	iy
;	ret
;
;
; return iy pointing to byte containing the number
; of sectors per track for a disk formatted in the
; current format
GET_TAB:	
	push	hl
	ld	hl,dden_byte
	ld	a,(sec_length)	;0=128, 1=256, 2=512
	rlca			;*2
	bit	dden_sel,(hl)	;is it single density?
	pop	hl
	jr	z,fzzouró á day¬ 
seveî dayó á week® Modemó arå requireä tï accesó thå RBBÓ service.
     
Thå  cluâ magazinå "THÅ CATCHER¢ ió maileä tï memberó monthly®  Insidå  yoõ 
wilì  finä 20-2´ pageó oæ programó anä helpfuì hintó oî runninç  youò  Bee® 
Onå  thå besô thinç abouô thå cluâ ió thå atmospherå aô thå  meetings®  Thå 
latesô  hardwarå anä softwarå bù Applieä Technologù ió usuallù displayeä aó 
welì aó demonstrationó anä tutorials® 

                            MEMBERSHIÐ DETAILS

           Therå ar.pl66
                      Mbuç   Australiá Incorporated®  

Thå  followinç ió á brieæ descriptioî oæ ouò cluâ activitieó whicè supportó 
thå Microbeå anä DG-Z8° rangå oæ personaì computers®  Thå cluâ haó oveò 60° 
memberó locally¬  interstatå anä overseas®  Thå cluâ meetinç ió helä oî thå 
seconä Wednesdaù oæ eacè montè aô thå Mounô Waverleù Communitù Centre¬ Cnr® 
oæ Stephensonó Roaä anä Milleò Crescent¬ Mounô Waverley.

Somå oæ thå benefitó thå cluâ offeró tï memberó are:-  Tape¬  Magazine¬ anäTrack-Info

å	
becomå á membeò oæ MBUÇ AUSTRALIÁ INC®  anä agreå tï 
     bå bounä bù thå ruleó oæ thå incorporateä association.


                       Signature:__________________ Date:_______

================================================================

Payment details.                             Date:______________ 

Member name:__________________________ Amount paid:_____________

Iæ  payinç bù  crediô         Carä Holdeò name:_________________
carä completå detailó
oî thå right®                 å two membershið classifications® Theù are:-

                 1® Fulì membershið       $20.0° peò year
                 2® Studenô membershið    $15.0° peò year
                 
Fulì  membershið  includeó  alì noî individuaì  memberó  sucè  aó  schools¬ 
businesseó anä institutions® 

Studentó  memberó receivå á discounô ratå oî thå presentatioî oæ á  studenô 
card®  Thió  membershið ió foò noî paiä studentó whï arå normallù supporteä 
bù theiò parents® 

Iæ  yoõ  wisè tï joiî thå cluâ pleaså Card No.__________________________

                              Signature:________________________


Iæ  payinç bù  chequå         Bank:_____________________________
completå  detailó  oî
thå righô.                    Branch:___________________________

                              Namå oæ Account:__________________
filì ouô thå Membershið Forí  oî  thå 
nexô pagå anä senä iô tï thå addresó oî thå toð oæ thaô page.
Š.po5
.uj off
THE TREASURER,                               Receipt No.
MBUG AUSTRALIA INCORPORATED.                 
P.O. BOX 157,                                Date.
NUNAWADING.    3131


NAME:____________________________________________________________

ADDRESS:_________________________________________________________

____________________________________________ POST CODE:__________

TELEPHONE A/H:__________________ TELEPHONE B/H:__________________

SYSTEM:__________________________________________________________

PERIPHERALS:_____________________________________________________

Please find enclosed my remittance of $_________
     being for, (tick box below)


RENEWAL OF MEMBERSHIP                        [ ]

NEW MEMBERSHIP                           
          FULL                     @ $20.00  [ ]
          STUDENT (full time)      @ $15.00  [ ]


É  desirå tï Track-Info

å	
	"ðÿA	6í°íSø\ÍþÿÂ‹JÍâÍÀÃBõ*ò#"òí[ø*öí°Í)*ø"êë*ðs#r#"ð!"øñ(!*ò+)í[Þ§íRDMí[ðÕá++í¸í[ê#s#r\ÍþÿÊHæ<&o~þå(å#"ö	~:þA(þS 8Ê8Ç*ô#"ô!"Þ@	ÍÛÊ+ë*öÕå>§ÿ(ËÝËÛ	ÅFæË¸Á y¸ 
ËËË›Ë‹ç#ãáÑò+*Þ##³}öo#{ö=_OÍ$áÑÃ~ÕYWÕ:		·(~#~¶(# ìár+sÉ*ò|µÊå)"úá+:§ :þ(>/Oÿ	8ûíSú!@	"ü"þ"	"	!"î"ê*üÍÖ(YÍâ*þÍÖÍ›(&Íâ*	ÍÖÍ›(Íâ:þ *	ÍÖÍ›(ÍâÍÀ*ê:§(:‡…o0$##"êí[ú§íR8Ÿ>-2=´Íâ*òÍH»Íâ*ôÍHÉÍâ:þ $í[	*	:	gË|()øë:àÍ<Í¦ÛÍâ*îÍ¦éÍâÍÀÃB:å_ Íí{:	ÉÍå*	ÍŠÍŠÍŠ#ëá~#å&0% ùz³ îá*	#§íB:àÍ<ÉõÕ°ÍâÑñÉÍH¢ÃâÍo"æ¯2\É*æ}´È:\<2\GÍŠ"æ0êx·Éí[ê^#Vë|µÉåÝáÝË~>.(>*2$Í###^#Vë:âÍ<ÍŠÍŠÍŠ|µ ªÃâ^Íð#È>¹ ôÍðíë*î"îëÍHkÃðÕÕ ÍðÑÉåë!üÔ;!œÿÔ;!öÿÔ;:=þ-Ì@áÅÕåöÿÿÿ	8ü
	ë|µÄh{Æ0_ÍðáÑÁÉË<ËÉ~#þ (úþ	(öÉþ:0Ö0Ð¯2ìÉþ:Êþ*À>?ü~§Èþ.À#ÉõÕå!é4:– wÿÍ·(öËÍâáÑñÉåÕÅõ	ÍñÁÑáÉåÕÅõ{æ_ÍÍ·(ÍÃUñÁÑáÉÍ	í°:	Ö!Í6"à>Í6"âÉ·È)=úÕë!<=(úÑÉNo Matching Files$Drive ??: ---v2.2-+---$No Disk Name$----+---- * => R/O -$----+-------$k $Free$   --$ | $------$ Files +-----$ Extents +-------$Size +-------$Used$
Extended List. 16th July 84

Usage: L [[d][u]:][afn] [a][s][h][t]

? = all active drives, * = all users
Options:	A = list SYS and DIR files
		S = list SYS files only
		H = sort horizontally
		T = sort by filetype

$!??????????ns:	A = list SYS and DIR files
ÃList 16Jul84 MRT & RWC !"æís:	1:	Í2ä¯2é=2ì!\6#6 ^
í°ÿ Í2å_!Íþ?8	(Ö@2\~#þ:(?þ*2í(Íš_~þ:(#ÍšW{‡‡ƒ‡‚_~þ: :ì§(
å Íá#!Í+¯2\2í]~þ ( #þ.(§(UÍ¦îe~þ (	#§(BÍ¦ò~#§(8þ  ÷Íþ ((þT 2ÕþH 2þA(þS 2	îÍâÃU~#§ Ï!]~þ  6?#û!h6?#6#6?:\§ :ä<2\þ?ÂHÍ¯Í½ÊU:\=_ÕÆA!bw#:íþ* w>?2\åÿ Íá6/þ
84Ö
0ûÆ
#Æ0w#6:#6 ÑÍ!"ò"ôÍÀÍµ\Íâ(*æ<<o&> 2$Í>!Í½À>-2ÏÎÍþÿÉsÍâ€:þÌâ•ÍâÍÍc>-2=Í¦¥ÍâÍÀ>.2=!@Track-Info

å	
cc(length(name)) to 30 do
      name[i]:=#0;
    for i:=$1000 to $27FF do
      begin
(*
       { start of boot code to check }
       if (buffer[i]=$FF) then
          if (buffer[succ(i)]=$11) then
            if (buffer[i+2]=$22) then
              start_check:=i;
        { end of boot code to check }
        if (buffer[i]=$FF) then
          if (buffer[succ(i)]=$33) then
            if (buffer[i+2]=$44) then
              end_check:=i;
*)
        { start of space for user name }
        program encrypt_system;

{ This program names and encrypts an operating system    }
{   prior to storage on disk.                            }
{ THIS PROGRAM IS NOT TO BE RELEASED TO ANYONE !!!!      }
{              THIS MEANS YOU !!!!                       }
{ Matches system version 2.2, 17/5/88 and after.         }
{ Actually this does not do any encryption as that       }
{   section of the operating system no longer works!     }

var
    in_file, out_file : file;
    buffer : array [0..$27Fif (char(buffer[i])='!') then
          if (char(buffer[succ(i)])='@') then
            if (char(buffer[i+2])='#') then
              begin
                name_pos:=i;
                goto end_loop;
              end;
(*
        { start of area to encrypt }
        if (buffer[i]=$98) then
          if (buffer[succ(i)]=$76) then
            if (buffer[i+2]=$54) then
              encrypt_start:=i;
        if (buffer[i]=$12) then
          if (buffer[succ(i)]=$34) then
            if (buffer[iF] of byte;
    in_file_name, out_file_name : string [14];
    name : string [30];
    i, ch_byte, start_check, end_check, name_pos, encrypt_start, encrypt_end,
      rot_val : integer;
    check_sum, encr_byte : byte;
    key : char;

label
    end_loop;

begin
    if paramcount<>2 then
      begin
        write(^J'Enter source file name - ');
        readln(in_file_name);
        write(^J'Enter destination file name - ');
        readln(out_file_name);
      end
    else
      begin
 MEMSAV	EQU	020E2H		;ENTRY TO MEMSAV
	ORG	02D00H
	LD	E,0AH
	LD	C,2
	CALL	5H
	LD	E,0AH
	LD	C,2
	CALL	5H
	LD	DE,MSG
	LD	C,9
	CALL	5H
	JR	LOOP
MSG	DB	'PLEASE SAVE 3000 FOR 2800 AFTER ENTERING TYPE OF SYSTEM'
	DB	' AND NAME...             (LIKE 256 FRED BLOGGS): $'
LOOP	LD	HL,2F00H	;BUFFER FOR SYSTEM AND NAME
LOOP3	PUSH	HL
LOOP2	LD	C,1
	CALL	5H
	CP	8H
	JR	Z,ADJUST
	CP	0DH
	JR	Z,CODE
	POP	HL
	LD	(HL),A
	INC	HL
	JR	LOOP3
CODE	POP	HL
	JP	BUFFER
ADJUST	POP	HL
	DEC	HL
	LD	(HL),0
	PUSH	H+2]=$56) then
              encrypt_end:=i;
*)
      end;
end_loop:
      for i:=1 to 30 do
        buffer[pred(name_pos+i)]:=byte(name[i]);
(*
      check_sum:=0;
      for i:=start_check+4 to end_check-1 do
        begin
          rot_val:=(buffer[i] + i) and 7;
          ch_byte:=buffer[succ(i)];
          ch_byte:=lo((ch_byte+(ch_byte shl 8)) shr rot_val);
          check_sum:=lo(check_sum+ch_byte);
        end;
      encr_byte:=0;
      for i:=encrypt_start to encrypt_end+3 do
              in_file_name:=paramstr(1);
        out_file_name:=paramstr(2);
      end;
    assign(in_file,in_file_name);
    reset(in_file);
    blockread(in_file,buffer,80);
    close(in_file);
    repeat
      write(^J'Enter name - ');
      readln(name);
      writeln(^J'This disk belongs to ',name,'.'^J);
      write('Is this correct ? ');
      repeat
        read(kbd,key);
        key:=upcase(key);
       until (key='Y') or (key='N');
      writeln(key,^J);
    until key='Y';
    for i:=suL
	JR	LOOP2
;NEXT ROUTINE WILL PLACE BUFFER INTO SYS FILE
;SYSTEM NO IS AT 4320,21,22HEX AND NAME STARTS AT 4395 HEX
BUFFER	LD	HL,2F00H
	LD	DE,4320H	;SPOT FOR SYS NO
	LD	BC,3H		;FOR 3 BYTES
	LDIR
	LD	HL,2F04H	;START OF NAME
	LD	DE,4395H	;WHERE IT GOES
	LD	BC,1CH		;SURE THAT SHOULD BE ENOUGH
	LDIR
	JP	MEMSAV		;START OF MEMSAV TO EXTRACT FILE
 	END
 begin
          encr_byte:=lo(encr_byte+check_sum);
          buffer[i]:=buffer[i] xor encr_byte xor lo(i);
        end;
*)
      assign(out_file,out_file_name);
      rewrite(out_file);
      blockwrite(out_file,buffer,80);
      close(out_file);
end.
Track-Info

å	
Í	!«§íR(«Íå	Íå	Í:º·(ÍÃÆ:··ÊàÇÝ~ÍSÀþ øÉÝ~ÍYÀþ øÉå!¸5áÝ#Ý~þ	ÈþÈþ É!Wã!»~· +6ÿÍÍEþ" ÝåÍYþ" ùÝ6ÝáÝ#Íï£	Í 2»>IQ!Ä	‡!í°!€í°*ës#r#:w!£	Ä	!í°¯2ÉÍCþ{(5þ}(v¯2`	2a	2b	!ÖÍÙ>#Í>HÝå_Í Í‹
	ÍÝáÉ:º·(	þÿ >NÃò!5	í[í°íS<2º!E	Í>:Í!E	5	í°!L	Í˜!T	Ã˜!=	Í>:Í:º·(´=2º !E	5	í°É*+D	í¸#"ÉÍ!U	Í>:Í![	~<þ{86a+õwÉÍS û>	Í!5	ÃÍÝ~Í^ÌC(õ!`	Ý~w#ÍCþ, ô!ëå!û~·ÈG#ÝåÍ®Ýá ^#V#ëãÉå>p>r2^	ÕÍ!\	Íá^#VëÃÍCûÉþ#Èþ;Èþ{Èþ}É>ÿ2¸Ý!
Ý6ÿÍqþ;(þ"Ì`þ'Ì`þ(Í^(æÍSäÍCÝ~þ öÝ+Í[ÀÃCOÍSþÈ¹ ÷ÍS¹(ñÉÍSÍ[ÀþÈÍCô~·ÈG#ÝåÍ®Ý~Ýá ïÍ^ êÉ~·ÈG#ÝåÍ®Ýá ^#Vëé##éÅåÝ~Í¬¾ #Ý#òáÁH	AÉÍCÍC:µ·(Ý~þ0 ÍCôÝ~Í¬þA8	þ[0>0ÍÝ~Ý#þ08þ:8óÍ¬þA8þ[8èÝ+>HÍÉF#~#·(ÍöÉÝåÅõ:¸OÝ	<2¸GÝNÝqÝ+öñÁÝáÝwÝ#ÉÝåÅõ:¸=2¸Ý~ÝwÝ#þ
 ôñÁÝáÉ!‹

ƒÍƒþ
(ùw#þÈþÈíÍƒþ ùÉÅÕå:·Ì=2*~#"áÑÁÉíSÍÄ	Í·>€È!6É:µ·(	Í!:
þÈ!¶ËV(!
å^Íá~#þ
 ò:æ	þ È!
„~#å*w#"í[·íRÔ	áþ
ÈåÉõÅÝå+Íª*·íRDM!·íB0(ý!+€ýwý#þ(óÕå	ÍÑ· þ(Çë«x±(í°íSÝáÁñÉÝáÁñÁ¤=ÊÆ™ÃÆÝ!ÍïÂÃÍpþ=Â¸!¬	> ¾ 6M#6A#6C!£	å	!í°Ý#ÍïÂÃÍpþ/ Ý~þCÂ¸>ÿ2µ:¤	þ Ê¸!¬	~þ  6Z:æ	þ  !¤	æ	í°!£	Ä	!í°É!£	¯wÍp(7Ý~þ: Ý~ZþAÚÆþQÒÆÖ@wÝ#Ý#¯2<Í?Ý~þ. Ý#Í?Íb¯Íd>·ÉÍƒ(#þ* 6?ÍiwÝ#þ?ÌiåÍƒÈÝ#ø> #wüÉå!<4áÉÝ~·Èþ=Èþ/ÈÍƒÀÝ#íÝ~·Èþ!8þ=Èþ_Èþ.Èþ/Èþ:Èþ,Èþ;Èþ<Èþ>Èþ;É¯ÉþaØþ{ÐË¯Éÿ„EQUSETDEFLMACRO0XÆINCLUDEgMARK…U	DJNZ¥IFµNXTøÃ
Í<É1£		ÍÃþ
P80  0.1a  15-Jan-88  Copyright (c) 1987 Aardvark Software
$
*$?Bad drive$?Ambiguous file name$?Command error$?File not found$?Disk full$?No directory space$Áz‰e	Í%Unterminated loop$¯2·V	Í!6ë
Í
ÍÝ!Ý~ÿ·(ØGÝ~þ!8Í¬ÝwÝ#îy·(¿Ý6ÍvÄ	ÍÊ¾å	Íå	Í¯22º2»!«"!"Í_þÊÒ>
w#6$>…2¸Ý!
ÍS(.Í(.>2¹ÍS(
þ:(:¹<îÝåÍE!¼Í€Ýá· >:ÍÍ7($Í þ;(ÍÐ!ÐÍ—ÍS õþ(	Í7(þ; èÍ»ÃW!»~6·("!‡Ä	!í°€í°^#V#íS~2ÃWÍ»Track-Info

å	
U	NEXTôU	CONTø5	CONTINUEô5	BRKø=	BREAKô=	c_aaaaab_aaaaac_aaaaab_aaaaam_aaaajr	cc,MARK…U	DJNZ¥IFµNXTøbined on the same input line by sep-
erating them with semicolons.  Example:
  A>SUPERSUB /STAT;DIR
specifies two commands on the same input line.

Submitted jobs may be nested...SUPERSUB does not erase
any existing submit job (appends to them instead).
$line by sep-
erating them witÿÿ€micolons.  Example:
  A>SUPERSUB /STAT;DIR
specifies two commands on the same input line.

Submitted jobs may be nested...SU$$$     SUB!9"º1¤	ÍSuperSUB V1.1
$Ñ	:]þ Ê™ÍÍoÍhÍ@ÍìÍèÍÃ!e~þ ÊUÅÍ8Â¶Éë!ÅÍ_É~#Â_É!ÍŸ2Øþ/Â†#"~2þ À#Ãx~#·Èþ Ê”þ	Â†ÍŸØÍ±ØÃ”~#·7Èþ ÊŸþ	ÊŸ+·Éå*ë*~·ÂÜs#r#"áÕ~#·Êàþ Êàþ	ÊàÃÊë"ápë·7È?É!"
:þ/Ê\Í<Ê¶*
#"
*ë*"s#r#å#ÍQÚKÍþÊKþ
ÊþÊCw#ÍßúôÃ"áqÃ"áqÉåÕÅ:þ/ÂbÍŽÃz:·üÒn>_<2!€~ÁÑá·É\Í·>7À?É:·Â¬:9·üÁÚ©=29ò¬>É>É*~#"þ;Â¼>É·À>Ék	Í8
Í:9!:"·7È?É:=¼ÐÃ§¼Í<Êû:Ë2ÜÉ¼Í<Ê•É*|µÊ^#V#ë"ë~·ÊÃ2*|µÊ8^#V#ë"ëÍ@Ã!¼Ã~#2"!"¯2€Ew#ÂSÍòÚÚþ^ÂtÍòÚÖ@Úþ Òþ$Â‘:þ/>$Ê‘ÍÚÏþ$Â—ÍòÍÃYÍBÚÏÃ®ÍÚ¾ÍBÚ¾ÍòÖ0Ox‡‡€‡GÃ¢x=úÏÍÚÏGÊY~#åÍáÃÊ*6#}·ÂÝ¼Í·ÂˆÉ!~=7øw*~#"?É!€4úô*w#"É:·7È~?Éþ
ÒÜo&)^#Vz³Â4¯Éë~#É¾À#Â8Éþ0Øþ:?ÉÅÕåöÿÿÿ	ÚR
	ë|µÄI{Æ0ÍráÑÁÉ>Ír>
åÕÅ_ÍÁÑáÉþaØþ{Ðæ_ÉÍ1Disk full$Í1Directory full$Í1Memory full$Í1Submit file not found$Í1Parameter$Í1Too many parameters:$Í1Line too long:$Í1Submit file empty.$Í1Control character$Ñ	ÍS	Í*
ÍIÍk¼ÍÃ error on line number: $
*$!26#x±Âu!"!ÿÿ"6!¤	">€229É¦	Í*ºùÉ
How to use SUPERSUB:

SUPERSUB<CR>            :print this HELP message
SUPERSUB /<CR>          :go into interactive mode
SUPERSUB /<cmd lines>   :use SUMMARY mode
SUPERSUB <FILE> <PARMS> :as in standard SUBMIT.COM

In "/" (interactive) mode, SUPERSUB will prompt you
a line at a time for the SUBMIT job input...logical
lines may be comTrack-Info

å	
nc	hl
	ld	a,(hl)
	cp	'?'
	jr	z,show_speed
	or	'a'-'A'
	cp	'f'
	jr	z,set_fast
	cp	's'
	jr	z,set_slow
	djnz	parse
	jr	prt_ret

set_fast:
	ld	hl,fast_mesg
	ld	a,0FFh
	jr	set_speed

set_slow:
	ld	hl,slow_mesg
	xor	a

set_speed:
	ld	(bios_start+speed_flag),a
	and	speed_bit
	in	a,(speed_port)
	ld	de,speed_mesg_loc
	ld	bc,5
	ldir
	ld	de,speed_mesg
	jr	prt_ret

show_speed:
	ld	a,(bios_start+speed_flag)
	ld	hl,fast_mesg
	or	a
	jr	nz,ss_1
	ld	hl,slow_mesg
ss_1:
	ld	de,show_mesg_loc
	ld	bc,5
	ldir
	ld	de,show_mesg
	jr	prt_ret

get_lost:
	ld	de,wb_mesg
prt_ret:
	ld	c,9
	call	bdos
	ret

start_mesg:
	db	cr,lf,'Microbee 512k Enhanced Operating System v2.2,'
	db	' (c) 1987 Peter Broughton.',cr,lf
	db	'SPEED : CPU speed switcher (requires hardware).',cr,lf,lf,'$'

wb_mesg:
	db	bell,'Wrong operating system !!',cr,lf,lf,'$'

use_mesg:
	db	'Use : SPEED F(ast)/S(low)/?(query).',cr,lf,lf,'$'

speed_mesg:
	db	'CPU speed now set to '
speed_mesg_loc:
	db	'42.00 MHz.',cr,lf,lf,'$'

show_mesg:
	db	'CPU speed currently '
show_mesg_loc:
	db	'42.00 MHz.',cr,lf,lf,'$'

fast_mesg:
	db	'6.75',0
slow_mesg:
	db	'3.375'

	if	($ and 7Fh) ne 0
	 ds	80h-($ and 7Fh)
	endif

	end
;
;
;	512k Operating system support program.
;	CPU speed switcher.
;
;

bdos		equ	5
cr		equ	13
lf		equ	10
tab		equ	9
bell		equ	7
command_line	equ	80h

bios_start	equ	0E700h
id		equ	218h
id_val		equ	0AA55h
speed_flag	equ	28Dh
speed_port	equ	9
speed_bit	equ	2

	aseg

	org	100h

	ld	de,start_mesg
	ld	c,9
	call	bdos

	ld	hl,(bios_start+id)
	ld	de,id_val
	or	a
	sbc	hl,de
	jr	nz,get_lost

	ld	de,use_mesg
	ld	hl,command_line
	ld	a,(hl)
	or	a
	jr	z,prt_ret
	ld	b,a
parse:
	iTrack-Info

å	
,stat_mesg
	jr	prt_ret

get_lost:
	ld	de,wb_mesg
prt_ret:
	ld	c,9
	call	bdos
ret_inst:
	ret

move_stuff_src	equ	$

	.phase	8000h

move_stuff_dest	equ	$

change_status_mesg:
	ld	a,sys_page
	out	(map_port),a
	ld	hl,(bios_start+sl_table)
	ld	de,+(3*5)+2
	add	hl,de
	ld	e,(hl)
	ld	hl,(bios_start+sl_messages)
	add	hl,de
	ld	e,3
	add	hl,de
	ld	a,(bios_start+swap_a_m)
	add	a,'A'
	ld	(hl),a
	ld	a,normal_map
	out	(map_port),a
	ret


move_stuff_len	equ	$-move_stuff_dest

	.dephase;
;
;	SWAPA : Operating system support program.
;	Selects what A: refers to (physical A, ramdisk M or ramdisk N)
;
;

bdos		equ	5
cr		equ	13
lf		equ	10
tab		equ	9
bell		equ	7

map_port	equ	50h
normal_map	equ	4
sys_page	equ	5
rst_00h		equ	0C7h
command_line	equ	80h
bios_start	equ	0E700h
id		equ	218h
id_val		equ	0AA55h
swap_a_m	equ	21Bh
pages_n		equ	227h
sl_table	equ	2CBh
sl_messages	equ	2CDh

	aseg

	org	100h

	ld	de,start_mesg
	ld	c,9
	call	bdos

	ld	hl,(bios_start+id)
	ld	

start_mesg:
	db	cr,lf,'Microbee 512k Enhanced Operating System v2.2,'
	db	' (c) 1987 Peter Broughton.',cr,lf
	db	'SWAPA : swaps drive A: and either ramdisk.',cr,lf,lf,'$'

wb_mesg:
	db	bell,'Wrong operating system !!',cr,lf,lf,'$'

use_mesg:
	db	'Use : SWAPA A/M/N/?',cr,lf
	db	tab,'A - assigns A: to pysical drive A,',cr,lf
	db	tab,tab,'(this is the normal configuration)',cr,lf
	db	tab,'M - assigns A: to first ramdisk (M)',cr,lf
	db	tab,tab,    'and M: to physical drive A,',cr,lf
	db	tab,'Nde,id_val
	or	a
	sbc	hl,de
	jp	nz,get_lost

	ld	hl,move_stuff_src
	ld	de,move_stuff_dest
	ld	bc,move_stuff_len
	ldir

	ld	hl,command_line
	ld	a,(hl)
	or	a
	jr	z,show_use
	ld	b,a
parse:
	inc	hl
	ld	a,(hl)
	cp	'?'
	jr	z,show_status
	cp	'A'
	jr	z,set_swap
	cp	'M'
	jr	z,set_swap
	cp	'N'
	jr	z,set_swap_n
	cp	' '
	jr	nz,show_use
	djnz	parse

show_use:
	ld	de,use_mesg
	ld	c,9
	call	bdos
	jr	show_status

set_swap_n:
	ld	de,no_n_mesg
	ld	a,(bios_start+pages_n)
	or	a
	jr	z,prt_;
;
;	Operating system support program template.
;
;

bdos		equ	5
cr		equ	13
lf		equ	10
tab		equ	9
bell		equ	7

bios_start	equ	0E700h
id		equ	218h
id_val		equ	0AA55h

	aseg

	org	100h

	ld	de,start_mesg
	ld	c,9
	call	bdos

	ld	hl,(bios_start+id)
	ld	de,id_val
	or	a
	sbc	hl,de
	jr	nz,get_lost

	ld	de,use_mesg
	ld	c,9
	call	bdos
	ret

get_lost:
	ld	de,wb_mesg
	ld	c,9
	call	bdos
	ret

start_mesg:
	db	cr,lf,'Microbee 512k Enhanced Operating System v2.2,'
	db	' (c) 1987 - assigns A: to second ramdisk (N, if enabled)',cr,lf
	db	tab,tab,    'and N: to physical drive A,',cr,lf
	db	tab,'?  - displays current assignment.',cr,lf,lf,'$'

no_n_mesg:
	db	bell,'No memory assigned to ramdisk N:.',cr,lf,lf,'$'

name_a:
	db	'physical drive A',0,0
name_m:
	db	'first ramdisk (M)',0
name_n:
	db	'second ramdisk (N)'

len_name	equ	$-name_n

n_space	macro
	 ds	len_name,' '
	endm

stat_mesg:
	db	'A: --> '
stat_a:
	n_space
	db	',',cr,lf
	db	'M: --> '
stat_m:
	n_spacret
	ld	a,'N'

set_swap:
	sub	'A'
	ld	(bios_start+swap_a_m),a
	ld	a,rst_00h
	ld	(ret_inst),a
	call	change_status_mesg

show_status:
	ld	hl,name_a
	ld	de,name_m
	ld	bc,name_n
	ld	a,(bios_start+swap_a_m)
	cp	'M'-'A'
	jr	z,ss_is_m
	cp	'N'-'A'
	jr	nz,ss_put
	push	bc
	push	hl
	pop	bc
	pop	hl
	jr	ss_put
ss_is_m:
	ex	de,hl
ss_put:
	push	bc
	push	de
	ld	de,stat_a
	ld	bc,len_name
	ldir
	pop	hl
	ld	de,stat_m
	ld	c,len_name
	ldir
	pop	hl
	ld	de,stat_n
	ld	c,len_name
	ldir
	ld	de Peter Broughton.',cr,lf
	db	'FILENAME : system support program.',cr,lf,lf,'$'

wb_mesg:
	db	bell,'Wrong operating system !!',cr,lf,lf,'$'

use_mesg:
	db	'Use : FILENAME other stuff.',cr,lf,lf,'$'

	if	($ and 7Fh) ne 0
	 ds	80h-($ and 7Fh)
	endif

	end
e
	db	',',cr,lf
	db	'N: --> '
stat_n:
	n_space
	db	'.',cr,lf,lf,'$'


	if	($ and 7Fh) ne 0
	 ds	80h-($ and 7Fh)
	endif

	end
Track-Info

å	

fn_store	equ	8000h-(num_fn_keys*128)

spare_fn_str	equ	fn_store-128	; space for returning date, time

fn_key_1	equ	81h	; code returned by scn_in

fn_key_1_code	equ	81h	; code in function string

fn_key_1_us	equ	'1'+80h	; code for new keyboard unshifted F1

fn_str_end	equ	0FFh

fn_str_pause	equ	0FEh

fn_str_wait	equ	0FDh

window_key	equ	0A0h	; this is the key returned by scn_in when
				; user presses window combination

curs_key	equ	90h	; values returned by scn_in for cursor keys
				; start with this one

window_start	equ	08000h+80+((80-num_cols)/2)

window_attr	equ	1	; value to put in attribute RAM if premium

; window size
num_lines	equ	13
num_cols	equ	40

def_bios_start	equ	0E700h	; may not work unless bios start is this addr

print_s_line	equ	5806h	; BIOS routine to update status line

; offsets in definition section of (MY!) BIOS
screen_colour	equ	12Ah

status_on	equ	3Ah

status_colour	equ	228h

is_premium	equ	21Ch

curs_key_tab	equ	26Bh

click_length	equ	223h

click_tone	equ	224h

caps_lock	equ	27Bh+17

cpu_speed	equ	28Dh
fast_bit	equ	2
speed_port	equ	9

; graphic characters
pcg_1		equ	8Ch
char_tl		equ	pcg_1+0
char_t		equ	pcg_1+1
char_tr		equ	pcg_1+2
char_l		equ	pcg_1+3
char_bl		equ	pcg_1+4
char_br		equ	pcg_1+5
char_lm		equ	pcg_1+6
char_rm		equ	pcg_1+7
char_curs	equ	pcg_1+8
char_pause	equ	pcg_1+9
char_ctrl	equ	pcg_1+10
char_fn		equ	pcg_1+11
char_wait	equ	pcg_1+12

first_char	equ	8800h+(16*(pcg_1-80h))
num_pcg		equ	13

get_char	eq;
;	*************************************************
;	*						*
;	*		  WINDOW.SYS			*
;	*						*
;	*	512k/256k enhanced BIOS.		*
;	*	System control window program.		*
;	*						*
;	*	Copyright 1986/7/8 Peter Broughton.	*
;	*						*
;	*************************************************
;
;
;
;


true		equ	-1
false		equ	0

version	macro
	db	'Version 2, 7th Jul., 1988'
	endm

fake_standard	equ	false	; Makes Premium think it is a standard.

start_address	equ	5D00h

num_fn_keys	equ	12
Track-Info

å	
rt_hello:
	ld	a,r
	or	a
	ret	nz
	pop	hl
prt_hello_a:
	call	clear_lower
	call	h_dec
	ld	hl,hello_1
	call	print_string
	ld	hl,hello_2
	call	print_string
	ld	hl,hello_3
	call	print_string
	ld	hl,hello_4
	call	print_string
	ld	hl,hello_5
	call	print_string
	ld	hl,hello_6
	call	print_string
	call	h_dec
	xor	a
	ld	(last_key),a
	ret

h_dec:
	ld	hl,h31
	ld	b,4
h_d1:
	ld	a,(hl)
	cp	255
	jr	z,h_d2
	neg
	ld	(hl),a
	inc	hl
	jr	h_d1
h_d2:
	inc	hl
	inc	hl
	inc	hl
	djnz	h_d1
	ret
u	27Bh+0
get_rtc		equ	27Bh+2
put_rtc		equ	27Bh+4
con_out		equ	27Bh+9
ptr_out		equ	27Bh+11
                        
col_latch	equ	8
	if	fake_standard
vml		equ	0
	else
vml		equ	1Ch
	endif

; 128 bytes with addresses etc.

		aseg

		org	100h
		.phase	start_address-128

	dw	8000h			; Min BIOS start
	dw	start_address		; Start address
	dw	end_code-start_address	; length

	ds	(start_address)-$

; Start of code

	ld	(save_sp),sp
	ld	sp,stack
; all used regs except a, bc, hl must be savt+(80*5)+((40-(h22-h21))/2)
h21:	db	'Enhanced Operating System v2.2'
h22:	db	255

; System Setup Window.
; Version x.x, xx/xx/xx.

version_1:
	dw	window_start+(80*6)+((40-(v12-v11))/2)
v11:	db	'System Setup Window.'
v12:	db	255

version_2:
	dw	window_start+(80*7)+((40-(v22-v21))/2)
v21:	version
v22:	db	255


do_function:
	sub	fn_key_1

; jump to this point will 'do' fn in A ( 0.. , or -1 for time/date stamp )
do_fn_A:
	add	a,high (fn_store*2)
	ld	c,0
	srl	a
	rr	c
	ld	b,a
	ld	hl,d
hello_3:
	dw	window_start+(80*6)+((40-(h32-h31))/2)
h31:	db	-'B',-'r',-'o',-'u',-'g',-'h',-'t',-' ',-'t',-'o',-' '
	db	-'y',-'o',-'u',-' ',-'b',-'y',-' ',-'t',-'h',-'e',-' '
	db	-'p',-'r',-'o',-'g',-'r',-'a',-'m',-'m',-'i',-'n',-'g'
h32:	db	255
hello_4:
	dw	window_start+(80*7)+((40-(h42-h41))/2)
h41:	db	-'s',-'k',-'i',-'l',-'l',-'s',-' ',-'o',-'f',-' '
	db	-'P',-'e',-'t',-'e',-'r',-' '
	db	-'B',-'r',-'o',-'u',-'g',-'h',-'t',-'o',-'n',-'.'
h42:	db	255
hello_5:
	dw	window_start+(80*8)+((40-(h52ed
	push	de
	push	ix

	call	do_checks

	call	save_screen

; main loop
main_loop:
	call	main_menu

m_lp1:
	call	get_a_key
	jr	nz,m_lp1

	cp	' '
	jr	z,main_loop
	call	conv_upper
	cp	'C'
	jp	z,set_curs_key
	cp	'F'
	jp	z,set_fn
	cp	'K'
	jp	z,set_click
	cp	'M'
	jp	z,misc_functions
	cp	'S'
	jp	z,screen_functions
	cp	'T'
	jp	z,time_functions
	cp	'W'
	jp	z,warm_boot

m_lp_2:
	ld	hl,last_key
	cp	(hl)
	ld	(hl),a
	jr	nz,m_lp_3
	cp	'V'
	call	z,prt_version
	cp	'X'-40h
	call	z,pref_bios_start+27Bh+6
	ld	(hl),true
	inc	hl
	ld	(hl),c
	inc	hl
	ld	(hl),b
	jp	exit_window


misc_functions:
	call	clear_lower
	ld	hl,misc_fn_1
	call	print_string
	ld	hl,misc_fn_2
	call	print_string
mf_1:
	call	get_a_key
	call	conv_upper
	cp	'F'
	jr	z,set_fast
	cp	'S'
	jr	z,set_slow
	cp	'['-40h
	jr	nz,mf_1
	jp	main_loop

set_fast:
	ld	a,true
sf_1:
	ld	(def_bios_start+cpu_speed),a
	and	fast_bit
	in	a,(speed_port)
	jr	mf_1

set_slow:
	xor	a
	jr	sf_1

warm_boot:
; must rese-h51))/2)
h51:	db	-'N',-'o',-'t',-'e',-':',-' ',-'T',-'h',-'i',-'s',-' '
	db	-'i',-'s',-' ',-'i',-'n',-'e',-'x',-'p',-'e',-'n',-'s',-'i'
	db	-'v',-'e',-' ',-'S',-'/',-'W',-','
h52:	db	255
hello_6:
	dw	window_start+(80*9)+((40-(h62-h61))/2)
h61:	db	-'p',-'l',-'e',-'a',-'s',-'e',-' ',-'d',-'o',-'n',-'''',-'t'
	db	-' ',-'c',-'o',-'p',-'y',-' ',-'i',-'t',-' '
	db	-'i',-'l',-'l',-'e',-'g',-'a',-'l',-'l',-'y',-' ',-'!',-'!'
h62:	db	255


;	The above lines read :

;Microbee 512k/256k
;Enhanced Opert_hello_a

m_lp_3:
; ESC = exit
	cp	'['-40h
	jr	nz,m_lp1

exit_window:
	call	restore_screen

	pop	ix
	pop	de
	ld	sp,(save_sp)
	ret


main_menu:
	call	prt_hello
	call	clear_lower
	ld	hl,main_menu_3
	call	print_string
	ld	hl,main_menu_4
	call	print_string
	ld	hl,main_menu_5
	call	print_string
	ld	hl,main_menu_6
	call	print_string
	ld	hl,main_menu_7
	call	print_string
	ld	hl,main_menu_8
	call	print_string
	ld	hl,main_menu_9
	call	print_string
	xor	a
	ld	(last_key),a
	ret

pt pointers to extended command line
	ld	hl,def_bios_start+15Ch
	ld	e,(hl)
	ld	(hl),60h	; low (bios_start)+160h
	inc	hl
	ld	(hl),h		; high (bios_start)+160h
	inc	hl
	ld	(hl),128	; total length of command buffer
	inc	hl
	ld	(hl),0		; length of command buffer used
	inc	hl
	ld	d,h
	ld	a,e
	cp	60h
	jr	c,w_b_5		; illegal if e < 60h
;	cp	60h+128		; or if e > 60h+128
;	jr	nc,w_b_5	; then fill buffer with 0h's
; at this stage hl --> start of command buffer
;		de --> start of valid section of commanating System v2.2
;Brought to you by the programming
;skills of Peter Broughton.
;Note: This is inexpensive S/W,
;please don't copy it illegally !!


prt_version:
	call	clear_lower
	ld	hl,hello_1
	call	print_string
	ld	hl,hello_2
	call	print_string
	ld	hl,version_1
	call	print_string
	ld	hl,version_2
	call	print_string
	xor	a
	ld	(last_key),a
	ret


hello_1:
	dw	window_start+(80*4)+((40-(h12-h11))/2)
h11:	db	9,9,'  Microbee 512k/256k  ',13,13
h12:	db	255

hello_2:
	dw	window_starTrack-Info

å	

	ld	c,a
	add	hl,bc
	ld	a,(hl)
	ld	(de),a
	jr	s_cl1

s_cl_tone:
	sub	'1'
	ld	hl,click_tones
	ld	de,def_bios_start+click_tone
	jr	s_cl2


; program function keys
set_fn:
	call	clear_lower
s_fn3:
	ld	hl,set_fn_1
	call	print_string
	ld	hl,set_fn_2
	call	print_string
	ld	hl,set_fn_3
	call	print_string
	ld	a,(def_bios_start+220h)
	ld	hl,set_fn_on	; fn active message
	or	a
	jr	nz,s_fn4
	ld	hl,set_fn_off
s_fn4:
	call	print_string
s_fn1:
	call	get_a_key
	call	conv_upper
	cp	'O'
	jrd line
; now move back valid section to start of command buffer
w_b_4:
	ld	a,e
	cp	60h+128
	jr	nc,w_b_5
	ld	a,(de)
	ld	(hl),a
	inc	hl
	inc	de
	jr	w_b_4
w_b_5:
; pad rest of line with 0h's
	ld	a,l
	cp	60h+128
	jr	z,w_b_6
	ld	(hl),0
	inc	hl
	jr	w_b_5
w_b_6:
	call	clear_lower
	ld	hl,w_boot_1
	call	print_string
	ld	hl,w_boot_2
	call	print_string
	ld	hl,w_boot_3
	call	print_string
	ld	hl,w_boot_4
	call	print_string
w_b2:
	call	get_a_key
	call	conv_upper
	cp	'B'
	jr	z,do_boot
	cp
	inc	hl
	ld	(hl),fn_str_end
	add	hl,de
	inc	a
	djnz	s_fn5
	jp	set_fn


; enter text into 128 byte buffer (temp_string)
; max 127 chars
; a is true for function string, ie. allow entering of control codes, etc.,
;      false for command line, no control codes.
; returns nz if can save, ie. wasn't aborted
enter_string:
	ld	ix,fn_flag
	ld	(ix),a
	or	a
	ld	a,fn_str_end	; if true then end char is 0FFh or whatever
	jr	nz,es_2
	xor	a		; else is 0h
es_2:
	ld	hl,temp_string
	ld	c,0
es_3:
	cp	z,fn_toggle
	cp	'N'
	jr	z,fn_number
	cp	'['-40h
	jp	z,main_loop
; any one of a number of keys can get fn up : '1'.. (&'"','#','$','%'),
; F1.., 'unshifted' F1..
	cp	'"'
	jr	c,s_fn9
	cp	'%'+1
	jr	nc,s_fn8
; convert to F9..F12 (8..11)
	sub	'"'-8
	jr	s_fn10
s_fn8:
	or	80h
s_fn9:
; convert '1'+80h to F1
	cp	fn_key_1_us
	jr	c,s_fn7
	sub	fn_key_1_us-fn_key_1
s_fn7:
	cp	fn_key_1
	jr	c,s_fn1
	cp	fn_key_1+num_fn_keys
	jr	nc,s_fn1

; function key is pressed so program it, first find its me	'S'
	jr	z,force_shell
	cp	'C'
	jr	z,force_ccp
	cp	'E'
	jr	z,mod_com
	cp	'['-40h
	jr	nz,w_b2
	jp	main_loop
; force to boot to shell
force_shell:
	ld	a,1
	jr	w_b3
force_ccp:
	xor	a
w_b3:
	ld	(def_bios_start+128h),a

; do the actual boot
do_boot:
	call	restore_screen
	call	clear_screen
	ld	hl,def_bios_start
	inc	hl
	inc	hl
	inc	hl
	jp	(hl)

; modify command line
mod_com:
	ld	hl,def_bios_start+160h
	push	hl
	ld	de,temp_string
	ld	bc,128
	ldir
	xor	a
	call	clear_lower
	call		(hl)
	jr	z,es_4		; found end
	inc	c		; one more char in valid line
	bit	7,c		; has it gone too far
	jr	nz,es_8
	inc	hl
	jr	es_3
; physical end found first
es_8:
	ld	(hl),a		; give it an end char
	dec	c
es_4:
	ld	a,c
	ld	(line_length),a
	call	clear_p_lower
	ld	hl,ent_str_1
	call	print_string
	bit	0,(ix)
	jr	z,es_10
	ld	hl,ent_str_2
	call	print_string
	ld	hl,ent_str_3
	call	print_string
	ld	hl,ent_str_4
	call	print_string
es_10:
	xor	a
; this is the main loop that is gone through omory location
	sub	fn_key_1
s_fn10:
; and save its number (0.. ) for later printing
	push	af
	ld	l,0
	srl	a
	rr	l
	add	a,high fn_store
	ld	h,a
	ld	(prog_fn_addr),hl
	ld	de,temp_string
	ld	bc,128
	ldir
	call	clear_lower
	ld	hl,window_start+(4*80)+4
	ld	(hl),char_fn
	inc	hl
	pop	af
; print fn number, first is it =>F10 ( 9 actually since now F1 = 0 )
	cp	9
	jr	c,s_fn6
	ld	(hl),'1'
	inc	hl
	sub	10		; convert to second digit
s_fn6:
	add	a,'1'
	ld	(hl),a
	ld	a,true
	call	enter_stringenter_string
	pop	de
	jp	z,warm_boot
	ld	hl,temp_string
	ld	bc,128
	ldir
	jp	warm_boot

set_click:
	call	clear_lower
	ld	hl,click_1
	call	print_string
	ld	hl,click_2
	call	print_string
s_cl1:
	call	get_a_key
	call	conv_upper
	cp	'['-40h
	jp	z,main_loop
	cp	'1'
	jr	c,s_cl1
	cp	'9'+1
	jr	c,s_cl_tone
	cp	'L'
	jr	nz,s_cl1

s_cl_len:
	call	get_a_key
	jr	nz,s_cl_len
	sub	'0'
	jr	c,s_cl1
	cp	9+1
	jr	nc,s_cl1
	ld	hl,click_lengths
	ld	de,def_bios_start+click_length
s_cl2:
	ld	b,0nce for every successful key
new_c_pos_1:
	ld	(pointer),a	; where cursor is
	call	print_line
es_1:
	ld	a,(pointer)
	ld	c,a
	call	get_a_key_c
	jr	nz,es_1
	bit	7,(ix)
	jr	nz,es_15
	call	conv_upper	; convert to upper case if command line
	jr	es_17		; and skip the next stuff
es_15:
; controls that are only available when entering function string
	cp	'P'-40h
	jp	z,es_pause	; enter pause
	cp	'W'-40h
	jp	z,es_wait
	cp	'^'
	jp	z,es_lit	; enter CTRL code
; is 'unshifted' function key pressed
;	
	jp	z,s_fn3
	ld	hl,temp_string
	ld	de,(prog_fn_addr)
	ld	bc,128
	ldir
	jp	set_fn
	
; toggle function keys on/off
fn_toggle:
	call	fn_tog1
	jp	s_fn3
fn_tog1:
	ld	hl,def_bios_start+220h
	ld	a,(hl)
	xor	true
	ld	(hl),a
	ret

; assign numbers to unshifted function keys ( for Simply Write etc.)
fn_number:
	ld	hl,fn_num_1
	call	print_string
fn_n_1:
	call	get_a_key
	jr	nz,fn_n_1
	call	conv_upper
	cp	'Y'
	jp	nz,set_fn	
	ld	hl,fn_store
	ld	b,8
	ld	a,'1'
	ld	de,127
s_fn5:
	ld	(hl),aTrack-Info

å	
del:
	xor	a
	or	c
	jp	z,es_1
	call	del_char
	dec	a
	jr	new_c_pos
; ^G, DEL : delete char under (above) cursor
es_del_u:
	ld	a,(line_length)
	cp	c
	jp	z,es_1
	inc	c
	call	del_char
	jr	new_c_pos
; ^ : enter control code
es_lit:
	call	get_a_key_c
	jr	nz,es_lit
	cp	7Fh		; let through DEL char
	jr	z,es_norm
	cp	'^'		; let through ^
	jr	z,es_norm
	and	31		; else convert to CTRL
	jr	es_norm
; ^P : enter pause char into string
es_pause:
	ld	a,fn_str_pause
	jr	es_norm

; ^W : enter waitcp	fn_key_1_us
;	jr	c,es_16
;	cp	fn_key_1_us+num_fn_keys	
;	jp	c,es_chain
;es_16:
; is function key pressed (ie. chain to new function)
	cp	fn_key_1
	jr	c,es_17
	cp	fn_key_1+num_fn_keys
	jp	c,es_chain
; controls available for entering fn and command
es_17:
	cp	80h		; don't let through any other high bit codes
	jr	nc,es_1
	cp	127
	jp	z,es_del_u
	cp	' '
	jp	nc,es_norm
	cp	'A'-40h
	jr	z,es_left_lots
	cp	'D'-40h
	jr	z,es_right
	cp	'E'-40h
	jr	z,es_start
	cp	'F'-40h
	jr	z,es_right_lots
19:
	cp	fn_key_1
	jr	c,p_l17
	cp	fn_key_1+num_fn_keys
	jr	nc,p_l17
	dec	b
	jr	z,p_l3
	cp	fn_key_1+9		; >=F10 so 2 chars
	jr	nc,p_l18
p_l17:
	cp	' '		; ditto for control code
	jr	nc,p_l2
p_l18:
	dec	b
	jr	z,p_l3
p_l2:
	djnz	p_l1
p_l3:
	bit	7,c
	jr	z,p_l10
; cursor is close to start of line and the above code went back too far so..
	ld	c,0
	ld	hl,temp_string
p_l10:
; at this stage HL should point to the start of the section to be displayed
;  and C should contain the number of the cha char into string
es_wait:
	ld	a,fn_str_wait
;	jr	es_norm

; chain to new function
es_chain:

; enter character in A into string
es_norm:
	push	af
	ld	a,(line_length)
	cp	127		; is line already full
	jr	z,str_full
	inc	a
	ld	(line_length),a
	ld	hl,temp_string+126	; move rest of string to right
	ld	d,h
	ld	e,l
	inc	de
	ld	a,127
	sub	c		; num chars to move
	ld	c,a
	ld	b,0
	lddr
	pop	af
	ld	(de),a		; insert new char
	ld	a,(pointer)
	inc	a
	jp	new_c_pos

str_full:
	pop	af
	jp	es	cp	'G'-40h
	jr	z,es_del_u
	cp	'H'-40h
	jp	z,es_del
	cp	'S'-40h
	jr	z,es_left
	cp	'X'-40h
	jr	z,es_end
	cp	'Y'-40h
	jr	z,es_kill
	cp	'['-40h
	jr	z,es_quit
	cp	'M'-40h
	jr	nz,es_1
; <RETURN> : return nz
	or	0FFh
; <ESC> : return z
es_quit:
	push	af
	call	clear_lower
	pop	af
	ret

; ^A : 8 left
es_left_lots:
	ld	a,c
	sub	8
	jr	nc,new_c_pos
; ^E : start of line
es_start:
	xor	a
	jr	new_c_pos
; ^S : 1 left
es_left:
	ld	a,c
	dec	a
	cp	255
	jr	nz,new_c_pos
	jr	es_start
; ^D racter to start display with
	ex	de,hl
	ld	hl,window_start+(80*4)+8
; load B with end of line character
	ld	b,0
	bit	0,(ix)
	jr	z,p_l7
	ld	b,fn_str_end
p_l7:
; loop printing characters until full or end of line encountered
p_l11:
; is this where the cursor is
	ld	a,(pointer)
	cp	c
	jr	nz,p_l8
	push	bc
	push	hl
	ld	bc,80
	add	hl,bc
	ld	(hl),char_curs	; if yes then print cursor on line below
	pop	hl
	pop	bc
p_l8:
	ld	a,(de)
	cp	b		; end of line
	jr	z,p_l4
	cp	fn_str_pause	; pause cha_1

; toggle function keys on/off so that 'unshifted' F1.. can be entered
; with a standard keyboard
;es_fn_toggle:
;	call	fn_tog1
;	jp	es_1

; delete char to left of c, ie. move chars from c to end left one
; return current pointer in a
del_char:
	ld	b,0
	ld	hl,temp_string
	add	hl,bc
	ld	d,h
	ld	e,l
	dec	de
	ld	a,128
	sub	c
	ld	c,a
	ldir
	ld	hl,line_length
	dec	(hl)
	ld	a,(pointer)
	ret

; print section of line around cursor position ( in A )
; Try to position cursor at 13th colu: 1 right
es_right:
	ld	a,c
	inc	a
check_right:
	ld	b,a
	ld	a,(line_length)
	inc	a
	ld	c,a
	ld	a,b
	cp	c
	jr	c,new_c_pos
; ^X : end of line
es_end:
	ld	a,(line_length)
new_c_pos:
	jp	new_c_pos_1

; ^F : 8 right
es_right_lots:
	ld	a,c
	add	a,8
	jr	check_right
; ^Y : delete line
es_kill:
	ld	hl,temp_string
	ld	b,128
	xor	a
	bit	0,(ix)
	jr	z,es_k1
	ld	a,fn_str_end
es_k1:
	ld	(hl),a
	inc	hl
	djnz	es_k1
	xor	a
	ld	(line_length),a
	jr	new_c_pos
; BS : delete char to left
es_racter
	jr	nz,p_l5
	ld	a,char_pause
	jr	p_l6
p_l5:
	cp	fn_str_wait	; wait character
	jr	nz,p_l21
	ld	a,char_wait
	jr	p_l6
p_l21:
	cp	fn_key_1	; chain to fn
	jr	c,p_l15
;	call	check_eol
;	jr	z,p_l13
	ld	(hl),char_fn
; is it actually 'unshifted' F1..
;	cp	fn_key_1_us
;	jr	c,p_l20
;	ld	(hl),char_fn_us
;	sub	fn_key_1_us-fn_key_1
p_l20:
	inc	hl
	sub	fn_key_1
	cp	9
	jr	c,p_l16
	ld	(hl),'1'
	inc	hl
	sub	10
p_l16:
	add	a,'1'
	jr	p_l6
p_l15:
	cp	' '
	jr	nc,p_l6
;	call	check_eol
;	jmn from start of line,
; else somewhere to left of this.
print_line:
; clear cursor line first
	ld	hl,window_start+(80*5)+8
	ld	b,28
p_l12:
	ld	(hl),' '
	inc	hl
	djnz	p_l12
; find pos to start display from
	ld	hl,temp_string
	ld	c,a
	ld	b,0
	add	hl,bc
	ld	b,16
	ld	c,a
p_l1:
	dec	hl
	dec	c
	ld	a,(hl)
; if chain to new fn then can display 1 or 2 less chars
; ditto for 'unshifted' F1..
	cp	fn_key_1_us
	jr	c,p_l19
	cp	fn_key_1_us+num_fn_keys
	jr	nc,p_l19
	sub	fn_key_1_us-fn_key_1
p_lTrack-Info

å	
(80*4)+8+23
;	or	a
;	push	hl
;	sbc	hl,bc
;	pop	hl
;	pop	bc
;	ret


; define premium cursor control keys
set_curs_key:
	call	clear_lower
	ld	hl,set_curs_1
	call	print_string
s_ck1:
	call	get_a_key
	cp	'['-40h
	jp	z,main_loop
	cp	curs_key
	jr	c,s_ck1
	cp	curs_key+10h
	jr	nc,s_ck1

; key has been found
s_ck3:
	and	0Fh
	ld	hl,def_bios_start+curs_key_tab
	ld	c,a
	ld	b,0
	add	hl,bc
	push	hl
	ld	b,(hl)			; present value
	ld	hl,set_curs_2
	call	print_string
	ld	hl,set_curs_3
	callr	z,p_l13		; not enough room on line
	ld	(hl),char_ctrl	; control character
	inc	hl
	add	a,40h
p_l6:
	ld	(hl),a		; put it on the screen
; next character until end
	inc	hl
	inc	de
	inc	c
; end of physical line, should not reach here as there should be an
; EOL character
	ld	a,128
	cp	c
	jr	z,p_l13
	push	bc
	ld	bc,window_start+(80*4)+8+24
	or	a
	push	hl
	sbc	hl,bc
	pop	hl
	pop	bc
	jr	c,p_l11
	jr	p_l13
; finished printing line but must add end of line character
p_l4:
	ld	(hl),13
	incd	(entered_time+3),a
	ld	hl,window_start+(80*4)+7
	call	display_time
	pop	ix
	ld	hl,window_start+(80*5)
	call	clear_a_line
	ld	hl,window_start+(80*5)
	ld	d,0
	ld	e,(ix+0)
	add	hl,de
	ld	b,(ix+1)
s_t_3:
	ld	(hl),char_curs
	inc	hl
	djnz	s_t_3
	ld	hl,entered_time
	ld	e,(ix+4)
	add	hl,de
s_t_2:
	call	get_a_key
	call	conv_upper
	cp	'M'-40h
	jp	z,save_time
	cp	'['-40h
	jp	z,time_functions
	cp	'D'
	jp	z,save_date
	cp	'Z'-40h
	jp	z,s_t_zero_digits
	ld	bc,-6
	cp	93h			; Left
	jp	z,s_t_	print_string
	ld	hl,window_start+6*80+22	; print it
	ld	a,b
	cp	' '
	jr	nc,s_ck8
	ld	(hl),'^'
	inc	hl
	add	a,40h
s_ck8:
	ld	(hl),a
s_ck7:
	call	get_a_key_c	; get value to replace it with
	jr	nz,s_ck7
	cp	80h		; don't want a 'key' above 80h
	jr	nc,s_ck7
	pop	hl
	ld	(hl),a		; put it in table
	jr	set_curs_key	

time_functions:
	ld	a,(no_clock)
	or	a
	jp	nz,main_loop
	call	clear_lower
	ld	hl,time_1
	call	print_string
	ld	hl,time_2
	call	print_string
	ld	hl,time_3
	call	print_string	hl
; now clear any unused positions
p_l13:
	ex	de,hl
	ld	hl,window_start+(80*4)+8+25+2	; +2 for a bit extra
	or	a
	sbc	hl,de
	ld	b,l		; num unused
	ex	de,hl
p_l14:
	ld	(hl),' '
	inc	hl
	djnz	p_l14
; print number of characters on line
print_bin:
	ld	hl,window_start+(5*80)+28
	ld	c,false				; leading zero flag
	ld	a,(line_length)
; hundred
	cp	100
	ld	b,' '
	jr	c,p_b_1
	ld	b,'1'
	ld	c,true
	sub	100
p_b_1:
	ld	(hl),b
	inc	hl
; tens
	ld	d,10
	ld	e,0
p_b_3:
	sub	d
	jr	c,p_b_2
	move_digits
	cp	'S'-40h
	jp	z,s_t_move_digits
	ld	bc,6
	cp	96h			; Right
	jr	z,s_t_move_digits
	cp	'D'-40h
	jr	z,s_t_move_digits
	ld	c,1
	cp	90h			; Up
	jr	z,s_t_inc_digits
	cp	'E'-40h
	jr	z,s_t_inc_digits
	ld	c,(ix+5)
	cp	98h			; Shift Up
	jr	z,s_t_inc_digits
	cp	'R'-40h
	jr	z,s_t_inc_digits
	cp	9Ah			; Shift Down
	jr	z,s_t_dec_digits
	cp	'C'-40h
	jr	z,s_t_dec_digits
	ld	c,1
	cp	92h			; Down
	jr	z,s_t_dec_digits
	cp	'X'-40h
	jr	nz,s_t_2

s_t_dec_digits:
	ld	a,(hl)
	sub	c
	daa
	ld	hl,time_4
	call	print_string
	ld	hl,time_5
	call	print_string
	ld	hl,time_6
	call	print_string
t_f1:
	ld	hl,spare_fn_str		; space for returning time
	call	get_a_key
	cp	'['-40h
	jp	z,main_loop
	call	conv_upper
	cp	'1'
	jp	z,date_st_1
	cp	'2'
	jp	z,date_st_2
	cp	'3'
	jp	z,date_st_3
	cp	'4'
	jp	z,date_st_4
	cp	'T'
	jp	z,time_st
	cp	'S'
	jr	nz,t_f1

; Set time, date
	call	clear_lower
	ld	hl,set_time_1
	call	print_string
	ld	hl,set_time_2
	call	print_string
	ld	hl,set_time_3inc	e
	jr	p_b_3
p_b_2:
	add	a,d
	ld	d,a
	ld	a,c	; blank if =0 and is leading number
	or	e
	ld	a,' '
	jr	z,p_b_4
	ld	a,'0'
	add	a,e
p_b_4:
	ld	(hl),a
	inc	hl
; units
	ld	a,'0'
	add	a,d
	ld	(hl),a
	inc	hl
	ex	de,hl
	ld	hl,char_word
	ld	bc,len_char_word
	ldir
	ld	a,(line_length)
	cp	1
	ld	a,' '
	jr	z,p_b_5
	ld	a,'s'
p_b_5:
	ld	(de),a
	ret

char_word:
	db	' char'
len_char_word	equ	$-char_word

; have we reached end of usable line
;check_eol:
;	push	bc
;	ld	bc,window_start+
	ld	b,a
	ld	a,(ix+3)	; maximum +1
	cp	0FFh		; date? then get max for month
	call	z,s_t_getdays
	or	a
	ld	c,a
	ld	a,b
	jr	z,s_t_24	; special case for years
	ld	b,(ix+2)	; minimum limit
	cp	b
	jr	nc,s_t_8
s_t_7:
	sub	b
	daa
	add	a,c
	daa
	jr	s_t_6
s_t_8:
	cp	c
	jr	nc,s_t_7
s_t_6:
	ld	(hl),a
	jp	s_t_1
s_t_24:
	or	a
	jr	nz,s_t_6
	ld	a,99h
	jr	s_t_6

s_t_inc_digits:
	ld	a,(hl)
	add	a,c
	daa
	ld	b,a
	ld	a,(ix+3)
	cp	0FFh		; is this date? then get max for month
	call	z,s_t_get
	call	print_string
	ld	hl,set_time_4
	call	print_string
	ld	ix,t_f_digits_info
	ld	hl,time
	ld	de,entered_time
	ld	bc,10
	ldir
s_t_1:
	push	ix
	ld	ix,entered_time
	call	s_t_dow
	jr	z,s_t_18
	call	s_t_getdays		; if illegal then       
	dec	a			; try max date for month
	ld	(entered_time+2),a
	call	s_t_dow
	jr	z,s_t_18
	ld	a,1			; still illegal then
	ld	(entered_time),a	; reset date to 1st Jan 1901
	ld	(entered_time+1),a
	ld	(entered_time+2),a
	ld	a,3			; which is a Tuesday
s_t_18:
	lTrack-Info
 
å         	 
umber of days in completed month
	push	af
	ld	a,(de)
	call	conv_bin
	dec	a
	ld	c,a
	add	hl,bc
	pop	af
	inc	de
	dec	a
	jr	nz,s_t_20
s_t_19:
	ld	a,(ix+2)	; date
	or	a
	jr	z,s_t_d_err
	ld	c,a
	call	s_t_getdays
	dec	a		; max for month
	cp	c
	jr	c,s_t_d_err	; illegal if max<date
	ld	a,c
	call	conv_bin
	ld	c,a
	add	hl,bc
;	xor	a		; clear carry, but add hl,bc does it
	ld	c,7		; MOD 7
s_t_22:
	sbc	hl,bc
	jr	nc,s_t_22
	ld	a,l		; now -7..-1
	add	a,c		; now 0..6
	inc	a		; now 1..7
	cp	adays
	or	a
	ld	c,a
	ld	a,b
	jr	z,s_t_23	; special case for years
	cp	c
	jr	c,s_t_6
	sub	c
	daa
	add	a,(ix+2)
	daa
	jr	s_t_6
s_t_23:
	or	a
	jr	nz,s_t_6
	inc	a
	jr	s_t_6

s_t_zero_digits:
	ld	a,(ix+2)
	jr	s_t_6

s_t_move_digits:
	add	ix,bc
	push	ix
	pop	hl
	ld	d,h
	ld	e,l
	ld	bc,t_f_digits_info
	xor	a
	sbc	hl,bc
	jr	c,s_t_m_left
	ld	h,d
	ld	l,e
	ld	bc,t_f_digits_end
	sbc	hl,bc
	jp	c,s_t_1
; too far to right
	ld	ix,t_f_digits_info
	jp	s_t_1
; too far to left
s_t_m_left:_s_pr_date
	jr	d_s_1

d_s_year:
	db	', 19'
len_d_s_year	equ	$-d_s_year

d_s_pr_date:
	ld	a,(time+2)		; date
	ld	c,a
	call	print_bcd_1
	ld	de,'t'*256+'h'		; 4th etc
	ld	a,0F0h
	and	c
	cp	10h			; skip 11th, 12th etc.
	jr	z,d_s_2
	ld	a,0Fh
	and	c
	cp	1
	jr	nz,d_s_3
	ld	de,'s'*256+'t'		; 1st etc
	jr	d_s_2
d_s_3:
	cp	2
	jr	nz,d_s_4
	ld	de,'n'*256+'d'		; 2nd etc
	jr	d_s_2
d_s_4:
	cp	3
	jr	nz,d_s_2
	ld	de,'r'*256+'d'		;3rd etc
d_s_2:
	ld	(hl),d
	inc	hl
	ld	(hl),e
	inc	hl
	ret
		; makes Z - legal date
;	pop	hl
;	pop	de
	ret
s_t_d_err:
	or	0FFh		; makes NZ - illegal date
	ret

; Return in A days+1 in month
s_t_getdays:	
	push	bc
	push	hl
	ld	hl,days_in_month-1
	ld	a,(entered_time+1)	; get month
	call	conv_bin
	ld	c,a
	ld	b,0
	add	hl,bc
	ld	a,c
	cp	2
	ld	a,(hl)			; get days in month
	jr	nz,s_t_14
; February :
	ld	c,a
	ld	a,(entered_time)	; get year
	and	3			; see if leap year
	ld	a,c
	jr	nz,s_t_14
	inc	a			; inc for leap year
s_t_14:
	pop	hl
	pop	bc

	ld	ix,t_f_digits_end-6
	jp	s_t_1

save_time:
	ld	b,10		; 10 regs
s_t_9:
	ld	de,put_rtc
	call	get_address
	ld	(call_p_rtc+1),hl
	ld	hl,entered_time
	ld	e,0		; read from reg 0
call_p_rtc:
	call	0
	jp	time_functions

; only change date, leave time unaltered
save_date:
	ld	b,4		; 4 regs only
	jr	s_t_9


; Return in A day of week of date (1 = SUN)
; also returns nz if illegal
; destroys - BC, DE, HL
s_t_dow:	
;	push	de
;	push	hl
	ld	hl,2-1		; 1st Jan 1901 = Tuesday but sub 1 extra

d_s_pr_month:
	ex	de,hl
	ld	hl,month_1
	ld	a,(time+1)		; month
	call	conv_bin
	dec	a
	ld	c,a			; *3
	add	a,c
	add	a,c
	ld	c,a
	ld	b,0
	add	hl,bc
	ld	bc,3
	ldir
	ex	de,hl
	ld	a,(time+1)
	cp	5
	ret	z			; if not May then add '.'
	ld	(hl),'.'
	inc	hl
	ret

; date 16/1/86
date_st_3:
	ld	a,(time+2)
	call	print_bcd_1
	ld	(hl),'/'
	inc	hl
	ld	a,(time+1)
d_s_3_1:
	call	print_bcd_1
	ld	(hl),'/'
	inc	hl
	ld	a,(time+0)
	call	print_bcd
	jp	do_time_fn

; date 1/16/86 - American (yuk)	ret

days_in_month:
;	actually days+1 (BCD) for compatability with checking code
;	db	Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec
;	db	 31,  28,  31,  30,  31,  30,  31,  31,  30,  31,  30,  31
	db	32h, 29h, 32h, 31h, 32h, 31h, 32h, 32h, 31h, 32h, 31h, 32h

t_f_digits_info:
;	db	pos. of digits, num. of digits, min., max.+1 (BCD), reg., incr
	db	 7, 2, 0, 24h, 4, 12	; hour
	db	10, 2, 0, 60h, 5, 10	; min
	db	13, 2, 0, 60h, 6, 10	; sec
;	db	19, 3, 1, 08h, 3,  0	; day -- will be handled by DOW	ld	a,(ix+0)	; year
	or	a
	jr	z,s_t_d_err
	call	conv_bin
	dec	a
	ld	c,a
	ld	b,0
	add	hl,bc		; one extra day per year
	xor	a
	srl	c		; leap years
	rra
	srl	c
	rra
	add	hl,bc		; and one more for each completed leap year
	cp	0C0h		; is this a leap year ?
	ld	a,(ix+1)	; months
	jr	nz,s_t_21
	cp	3		; and after Feb ?
	jr	c,s_t_21
	inc	hl		; then add 1 to day
s_t_21:
	call	conv_bin
	dec	a		; month 0..11
	cp	12
	jr	nc,s_t_d_err
	or	a
	jr	z,s_t_19
	ld	de,days_in_month
s_t_20:				; count n format
date_st_4:
	ld	a,(time+1)
	call	print_bcd_1
	ld	(hl),'/'
	inc	hl
	ld	a,(time+2)
	jr	d_s_3_1

time_st:
	ld	c,'A'
	ld	a,(time+4)	; hours
	or	a
	jr	nz,t_s_1
	ld	a,12h		; 12 AM (midnight)
t_s_1:
	cp	13h
	jr	c,t_s_2
	sub	12h		; 1..11 PM
	daa
	ld	c,'P'
t_s_2:
	cp	12h
	jr	nz,t_s_5
	ld	c,'P'		; 12 PM (midday)
t_s_5:
	call	print_bcd_1
	ld	(hl),':'
	inc	hl
	ld	a,(time+5)	; minutes
	call	print_bcd
	ld	(hl),' '
	inc	hl
	ld	(hl),c		; A or P
	inc	hl
	ld	(hl),'M'
	inc	hl
	jp	do code
	db	24, 2, 1,0FFh, 2, 10	; date -- FFh -> depends on month
	db	27, 3, 1, 13h, 1,  6	; month
	db	31, 2, 1, 00h, 0, 10	; year

t_f_digits_end	equ	$

date_st_1:
	call	d_s_pr_date
	ld	(hl),' '
	inc	hl
	call	d_s_pr_month
d_s_1:
	ex	de,hl			; print ', 19'
	ld	hl,d_s_year
	ld	bc,len_d_s_year
	ldir
	ex	de,hl
	ld	a,(time)		; year
	call	print_bcd
do_time_fn:
	ld	(hl),fn_str_end
	ld	a,-1			; spare function number
	jp	do_fn_a

date_st_2:
	call	d_s_pr_month
	ld	(hl),' '
	inc	hl
	call	dTrack-Info
 
å         	 
crement
	ld	hl,def_bios_start+screen_colour
	ld	b,(hl)
	ld	c,b
	inc	c		; increment
	or	a
	jr	z,sc_f_3
	dec	c		; no actually decrement
	dec	c
sc_f_3:
	ld	a,(ix+0)	; 0Fh / 1Fh
	and	c
	ld	c,a
	ld	a,(ix+1)	; 0F0h / 0E0h
sc_f_2:
	and	b
	add	a,c
	ld	(hl),a
	ld	c,a
	ld	a,40h
	out	(8),a
	ld	hl,8800h
	ld	(hl),c
	ld	de,8801h
	ld	bc,24*80-1
	ldir
	call	window_colour
	jp	sc_f_1

sc_f_back:
	ld	hl,def_bios_start+screen_colour
	ld	b,(hl)
	ld	a,b
	ld	d,(ix+2)	; 10h / 20h
	add	a,d		; incre_time_fn


screen_functions:
	call	clear_lower
	ld	hl,screen_1
	call	print_string
	ld	hl,screen_2
	call	print_string
	ld	hl,screen_3
	call	print_string
	ld	hl,screen_4
	call	print_string
	ld	hl,screen_5
	call	print_string
	ld	hl,screen_6
	call	print_string
	ld	hl,screen_7
	call	print_string
	ld	a,(def_bios_start+is_premium)
	ld	ix,premium_col_masks
	or	a
	jr	nz,sc_f_1
	ld	ix,standard_col_masks
sc_f_1:
	call	get_a_key
	cp	'['-40h
	jp	z,main_loop
	ld	b,a
	ld	a,(colour_fitted)
	orget address contained at (bios_start+DE)
get_address:
	ld	hl,def_bios_start
	add	hl,de
	ld	e,(hl)
	inc	hl
	ld	h,(hl)
	ld	l,e
	ret

; get a key from keyboard (bypasses function keys)
; also updates clock display
; returns Z if key pressed
get_a_key:
	push	hl
	push	de
	call	get_key_1
	pop	de
	pop	hl
	ret

; as above but convert cursor code to control code, ignore window key etc.
get_a_key_c:
	push	hl
	push	de
	call	get_key_1
	jr	nz,g_k_1
	cp	fn_key_1_us
	jr	nc,got_a_key
	cp	windowment
	bit	0,c		; true to decrement
	jr	z,sc_f_4
	sub	d		; no actually decrement
	sub	d
sc_f_4:
	and	(ix+1)
	ld	c,a
	ld	a,(ix+0)	; 0Fh, 1Fh
	jr	sc_f_2

sc_f_w_fore:
	ld	a,c		; true to decrement
	ld	hl,def_bios_start+status_colour
	ld	b,(hl)
	ld	c,b
	inc	c		; increment
	or	a
	jr	z,sc_f_6
	dec	c		; no actually decrement
	dec	c
sc_f_6:
	ld	a,(ix+0)
	and	c
	ld	c,a
	ld	a,(ix+1)
sc_f_7:
	and	b
	add	a,c
	ld	(hl),a
	ld	c,a
	ld	a,40h
	out	(8),a
	ld	hl,8800h+24*80
	ld	(hl),c
	ld	a,c	a
	ld	a,b
	jr	z,sc_f_5
	ld	hl,def_bios_start+caps_lock
	bit	0,(hl)
	jr	z,sc_f_12
; caps lock is on
	xor	'a'-'A'		; removes effect of caps lock
sc_f_12:
	ld	c,false		; 'increment'
	cp	'a'		; if upper case then shift is pressed
	jr	nc,sc_f_11
	ld	c,true		; 'decrement' flag
sc_f_11:
	call	conv_upper
	cp	'F'
	jp	z,sc_f_fore
	cp	'B'
	jp	z,sc_f_back
	cp	'C'
	jp	z,sc_f_w_fore
	cp	'V'
	jp	z,sc_f_w_back
sc_f_5:
	call	conv_upper
	cp	'L'
	jp	z,sc_f_w_toggle
	ld	bc,7*256+1		; up
	cp	90h
	j_key
	jr	nc,not_a_key
	cp	curs_key
	jr	c,got_a_key
;	cp	curs_key+16
;	jr	nc,got_a_key
	and	0Fh
	ld	hl,def_bios_start+curs_key_tab
	ld	e,a
	ld	d,0
	add	hl,de
	ld	a,(hl)
got_a_key:
	cp	a
	jr	g_k_1
not_a_key:
	or	-1
g_k_1:
	pop	de
	pop	hl
	ret

get_key_1:
	push	ix
	push	bc
	ld	a,(def_bios_start+status_on)
	cp	25
	call	z,print_s_line
	call	read_time
	ld	ix,time
	ld	hl,window_start+(80*2)+7
	call	z,display_time
	ld	de,get_char
	call	get_address
	ld	(call_kbd_i+1),hl
call_kbd_i:
	ld	de,8801h+24*80
	ld	bc,80-1
	ldir
	ld	b,num_lines
	ld	hl,window_start+800h
	ld	de,80-num_cols
sc_f_10:
	push	bc
	ld	b,num_cols
sc_f_9:
	ld	(hl),a
	inc	hl
	djnz	sc_f_9
	add	hl,de
	pop	bc
	djnz	sc_f_10
	xor	a
	out	(8),a
	jp	sc_f_1

sc_f_w_back:
	ld	hl,def_bios_start+status_colour
	ld	b,(hl)
	ld	a,b
	ld	d,(ix+2)	; 10h / 20h
	add	a,d		; increment
	bit	0,c		; true to decrement
	jr	z,sc_f_8
	sub	d		; no actually decrement
	sub	d
sc_f_8:
	and	(ix+1)
	ld	c,a
	ld	a,(ix+0)
	jr	scr	z,sc_f_move
	cp	'E'-40h
	jr	z,sc_f_move
	ld	bc,7*256+255		; down
	cp	92h
	jr	z,sc_f_move
	cp	'X'-40h
	jr	z,sc_f_move
	ld	bc,2*256+1		; left
	cp	93h
	jr	z,sc_f_move
	cp	'S'-40h
	jr	z,sc_f_move
	ld	bc,2*256+255		; right
	cp	96h
	jr	z,sc_f_move
	cp	'D'-40h
	jr	nz,sc_f_1


sc_f_move:
	ld	hl,def_bios_start
	ld	a,34h
	add	a,b
	ld	e,a
	ld	d,0
	add	hl,de
	ld	a,(hl)
	add	a,c
	ld	(hl),a
	ld	c,a
	ld	a,b
	out	(12),a
	ld	a,c
	out	(13),a
	jp	sc_f_1

sc_f_fore:
	ld	a,c		; true to de
	call	0
	pop	bc
	pop	ix
	ret

; convert char in A to upper case
conv_upper:
	cp	'a'
	ret	c
	cp	'z'+1
	ret	nc	
	sub	'a'-'A'
	ret

; read time from RTC and return z if changed from last time
read_time:
; but first, is it there ?
	ld	a,(no_clock)
	or	a
	ret	nz	; no it wasn't there - make sure no display occurs
	ld	de,get_rtc
	call	get_address
	ld	(c_r1+1),hl
	ld	hl,new_time
	ld	e,0		; read from reg 0
	ld	b,10		; 10 regs
c_r1:
	call	0
; update main time regs and check if any change_f_7

sc_f_w_toggle:
	ld	hl,def_bios_start+3Ah
	ld	a,(hl)
	xor	1
	ld	(hl),a
	ld	b,a
	ld	a,6
	out	(12),a
	ld	a,b
	out	(13),a
	jp	sc_f_1

premium_col_masks:
	db	0Fh,0F0h,10h
standard_col_masks:
	db	1Fh,0E0h,20h

;	
; start of house keeping routines etc.
;

; convert BCD to binary for calculations
conv_bin:
	push	bc
	ld	b,a
	and	0Fh
	ld	c,a
	ld	a,b
	and	0F0h
	rra
	rra
	rra
	rra
	ld	b,a
	ld	a,c
	jr	z,c_b_2
	ld	c,10
c_b_1:
	add	a,c
	djnz	c_b_1
c_b_2:
	pop	bc
	ret

; Track-Info
!
å!!!!!!!!!	!
lour and clock
do_checks:
; standard BIOS location has is_premium flag
	ld	ix,def_bios_start+is_premium
	bit	0,(ix)
	jr	z,d_c_1
; is premium so get old value of vml and must have colour
	in	a,(vml)		; premium - VML latch, standard - same as 0Ch
	ld	(old_vml),a
	ld	a,true
	ld	(colour_fitted),a
	jr	d_c_2
; now check for colour
d_c_1:
	ld	hl,8800h
	ld	b,(hl)
	ld	a,40h
	out	(8),a
	ld	c,(hl)
	ld	a,b
	cpl
	ld	d,a
	ld	(hl),a
	xor	a
	out	(8),a
	ld	a,(hl)
	cp	d
	ld	a,false
	jr	z,no_colour has occurred
	ld	bc,10*256	; b with 10, c with false
	ld	de,new_time
	ld	hl,time
r_t1:
	ld	a,(de)
	cp	(hl)
	ld	(hl),a
	jr	z,r_t2
	ld	c,true		; a value has changed
r_t2:
	inc	de
	inc	hl
	djnz	r_t1
	ld	a,true
	cp	c		; z if changed
	ret

; print time from (ix) to (hl)
display_time:
	ld	a,(ix+4)	; hours
	ld	c,'P'
	sub	12h
	daa
	jr	nc,dt_1
	add	a,12h
	daa
	ld	c,'A'
dt_1:
	or	a
	jr	nz,dt_2
	ld	a,12h
dt_2:
	cp	10h
	jr	nc,dt_3
	ld	(hl),' '
	inc	hl
dt_3:
	call	print_bcd_1
	ld	
	ld	bc,80*(num_lines-6)
	add	hl,bc
	call	clear_a_line
	ld	(hl),' '
	inc	hl
	ld	(hl),char_bl
	inc	hl
	ld	b,num_cols-4
s_sc4:
	ld	(hl),char_t
	inc	hl
	djnz	s_sc4
	ld	(hl),char_br
	inc	hl
	ld	(hl),' '
	ld	hl,top_line
	call	print_string
	ld	hl,esc_exit_1
	call	print_string
	ret

window_colour:
	ld	hl,def_bios_start+228h
	ld	c,(hl)
	ld	a,40h
	out	(8),a
	ld	a,c
	ld	hl,window_start+800h
	ld	de,temp_col
	call	save_block
	xor	a
	out	(8),a
	ret

; save screen section from any bank 
	ld	a,true
no_colour:
	ld	(colour_fitted),a
	ld	(hl),b
	ld	a,40h
	out	(8),a
	ld	(hl),c
	xor	a
	out	(8),a
d_c_2:
; now check for clock
	ld	c,7
	ld	a,14
	out	(4),a
	in	b,(c)
	ld	a,14
	out	(4),a
	ld	a,85
	out	(6),a
	ld	a,14
	out	(4),a
	in	d,(c)
	ld	a,14
	out	(4),a
	ld	a,b
	out	(6),a
	ld	a,d
	sub	85
	ld	(no_clock),a	; nz if no rtc present
	ret

; save contents of screen, PCG, colour and attribute RAM as necessary
; and set up for window
save_screen:
; colour first
	ld	a,(col(hl),':'
	inc	hl
	ld	a,(ix+5)	; min
	call	print_bcd
	ld	(hl),':'
	inc	hl
	ld	a,(ix+6)	; sec
	call	print_bcd
	inc	hl
	ld	(hl),c
	inc	hl
	ld	(hl),'M'
	inc	hl
	inc	hl
	ld	c,(ix+3)	; day
	dec	c
	ld	a,c
	add	a,c		; *2
	add	a,c		; *3
	ld	c,a
	ld	b,0
	ex	de,hl
	ld	hl,day_1	; --> day name
	add	hl,bc
	ld	c,3
	ldir
	ex	de,hl
	ld	(hl),','
	inc	hl
	inc	hl
	ld	a,(ix+2)	; date
	call	print_bcd
	ld	(hl),'-'
	inc	hl
	ld	a,(ix+1)	; month
	call	conv_bin
	dec	a
	ld	c,a
	add	a,a		; *2
	addof RAM
; and fill with value in A
save_block:
	ld	b,num_lines
s_b2:
	push	bc
	ld	bc,num_cols
	push	hl
	ldir
	pop	hl
	ld	b,num_cols
s_b1:
	ld	(hl),a
	inc	hl
	djnz	s_b1
	ld	c,80-num_cols
	add	hl,bc
	pop	bc
	djnz	s_b2
	ret

; restore screen, colour, attribute and inverse
restore_screen:
; colour..
	ld	a,(colour_fitted)
	or	a
	jr	z,r_sc1
	ld	a,40h
	out	(8),a
	ld	hl,temp_col
	ld	de,window_start+800h
	call	restore_block
	xor	a
	out	(8),a
r_sc1:
; screen..
	ld	hl,temp_screen
	lour_fitted)
	or	a
	jr	z,s_sc8
	call	window_colour
s_sc8:
; now attribute
	bit	0,(ix)
	jr	z,s_sc9
	ld	a,90h
	out	(vml),a
	ld	a,window_attr
	ld	hl,window_start
	ld	de,temp_attr
	call	save_block
	ld	a,80h
	out	(vml),a
s_sc9:
; now screen
	ld	hl,window_start
	ld	de,temp_screen
	ld	a,' '
	call	save_block
; now inverse
	bit	0,(ix)
	jr	z,s_sc10
	ld	a,80h+(window_attr and 0Fh)	; select PCG 1 if premium
	out	(vml),a
s_sc10:
	ld	hl,first_char
	ld	de,temp_inverse
	ld	bc,num_pcg*16
	ldir	a,c		; *3
	ld	c,a
	ex	de,hl
	ld	hl,month_1
	add	hl,bc
	ld	c,3
	ldir
	ex	de,hl
	ld	(hl),'-'
	inc	hl
	ld	a,(ix+0)	; year
	call	print_bcd
	ret

; print bcd num in a to (hl)
print_bcd:
	push	de
	ld	e,a
	rra
	rra
	rra
	rra
	and	0Fh
	add	a,'0'
	ld	(hl),a
	inc	hl
	ld	a,e
	and	0Fh
	add	a,'0'
	ld	(hl),a
	inc	hl
	pop	de
	ret

; print bcd with leading zero blanking
print_bcd_1:
	cp	10h
	jr	nc,print_bcd
	add	a,'0'
	ld	(hl),a
	inc	hl
	ret

; subroutine to check for premium, cod	de,window_start
	call	restore_block
; inverse..
	ld	hl,temp_inverse
	ld	de,first_char
	ld	bc,num_pcg*16
	ldir
; attribute..
	ld	a,(def_bios_start+is_premium)
	or	a
	ret	z
	ld	a,90h
	out	(vml),a
	ld	hl,temp_attr
	ld	de,window_start
	call	restore_block
	ld	a,(old_vml)
	out	(vml),a
	ret

restore_block:
	ld	b,num_lines
r_b1:
	push	bc
	ld	bc,num_cols
	ldir
	ld	c,80-num_cols
	ex	de,hl
	add	hl,bc
	ex	de,hl
	pop	bc
	djnz	r_b1
	ret


clear_lower:
	ld	hl,window_start+(80*4)
	ld	
	ld	hl,inv_chars
	ld	de,first_char
	ld	bc,num_pcg*16
	ldir
; now set up window on screen
	ld	hl,window_start
	ld	de,80-num_cols+1
	ld	(hl),' '
	inc	hl
	ld	(hl),char_tl
	inc	hl
	ld	b,num_cols-4
s_sc1:
	ld	(hl),char_t
	inc	hl
	djnz	s_sc1
	ld	(hl),char_tr
	inc	hl
	ld	(hl),' '
	add	hl,de
	call	clear_a_line
	call	clear_a_line
	ld	(hl),' '
	inc	hl
	ld	(hl),char_lm
	inc	hl
	ld	b,num_cols-4
s_sc2:
	ld	(hl),char_t
	inc	hl
	djnz	s_sc2
	ld	(hl),char_rm
	inc	hl
	ld	(hl),' '
	add	hl,deTrack-Info
!
å!!!!!!!!!	!
db	'<S> for Screen Functions,',255
main_menu_9:
	dw	window_start+(80*10)+5
	db	'<M> for Miscellaneous.',255

day_1:	
	db	'SunMonTueWedThuFriSat'
month_1:
	db	'JanFebMarAprMayJunJulAugSepOctNovDec'

misc_fn_1:
	dw	window_start+(80*4)+5
	db	'<F> for Fast CPU (6.75 MHz),',255
misc_fn_2:
	dw	window_start+(80*5)+5
	db	'<S> for Slow CPU (3.375 MHz).',255

click_1:
	dw	window_start+(80*4)+5
	db	'1..9 to set click pitch,',255
click_2:
	dw	window_start+(80*5)+5
	db	'<L> 0..9 to set length.',255b,num_lines-6
cl_low1:
	call	clear_a_line
	djnz	cl_low1
	ret

clear_p_lower:
	ld	hl,window_start+(80*5)
	ld	b,num_lines-7
	jr	cl_low1

clear_a_line:
	push	bc
	ld	(hl),' '
	inc	hl
	ld	(hl),char_l
	inc	hl
	ld	b,num_cols-4
cl_line1:
	ld	(hl),' '
	inc	hl
	djnz	cl_line1
	ld	(hl),char_l
	inc	hl
	ld	(hl),' '
	ld	de,80-num_cols+1
	add	hl,de
	pop	bc
	ret

clear_screen:
	ld	hl,8000h
	ld	de,8001h
	ld	bc,7FEh
	ld	(hl),' '
	ldir
	ld	a,(is_premium)
	or	a
	jr	z,cl_s1
	xor	a
	out	(vm255
time_3:
	dw	window_start+(80*6)+5
	db	'<2> Date - Dec. 20th, 1987,',255
time_4:
	dw	window_start+(80*7)+5
	db	'<3> Date - 20/12/87,',255
time_5:
	dw	window_start+(80*8)+5
	db	'<4> Date - 12/20/87 (U.S.),',255
time_6:
	dw	window_start+(80*9)+5
	db	'<T> Time stamp.',255

set_time_1:
	dw	window_start+(80*6)+5
	db	'Use cursor keys to set,',255
set_time_²:
	dw	window_start+(80*7)+5
	db	'^Z to zero digits,',255
set_time_3:
	dw	window_start+(80*8)+5
	db	'<RETURN> to save new time,',255
s

click_tones:
	db	11,15,23,33,51,75,111,171,255	; Odd
click_lengths:
	db	0,1,3,5,7,11,15,21,31,45

set_fn_1:
	dw	window_start+(80*4)+5
	db	'Select function ',char_fn,'1..',char_fn,'12,',255
set_fn_2:
	dw	window_start+(80*5)+5
	db	'<O> to toggle on/off (',255
set_fn_on:
	dw	window_start+(80*5)+5+22
	db	'ON), ',255
set_fn_off:
	dw	window_start+(80*5)+5+22
	db	'OFF),',255
set_fn_3:
	dw	window_start+(80*6)+5
	db	'<N> assign numbers to ',char_fn,'1..',char_fn,'8.',255

fn_num_1:
	dw	windl),a
cl_s1:
; must set cursor address to 8000h
	ld	hl,def_bios_start+286h
	ld	(hl),0
	inc	hl
	ld	(hl),0
	inc	hl
	ld	(hl),0
	inc	hl
	ld	(hl),80h
	ret

; print string pointed to by HL, starts with screen address, ends with 0FFh
print_string:
	push	de
	ld	e,(hl)
	inc	hl
	ld	d,(hl)
	inc	hl
prt_st1:
	ld	a,(hl)
	cp	0FFh
	jr	z,prt_exit
	ld	(de),a
	inc	hl
	inc	de
	jr	prt_st1
prt_exit:
	pop	de
	ret


top_line:
	dw	window_start+80+((40-(t_l2-t_l1))/2)
t_l1:	db	'SYSTEM SETUP WINDOW'et_time_4:
	dw	window_start+(80*9)+5
	db	'<D> to save date only.',255

screen_1:
	dw	window_start+(80*4)+5
	db	'Use cursor keys to move screen,',255
screen_2:
	dw	window_start+(80*5)+5
	db	'<F> foreground colour,',255
screen_3:
	dw	window_start+(80*6)+5
	db	'<B> background colour,',255
screen_4:
	dw	window_start+(80*7)+5
	db	'<C> window foreground,',255
screen_5:
	dw	window_start+(80*8)+5
	db	'<V> window background,',255
screen_6:
	dw	window_start+(80*9)+7
	db	'( <SHIFT> to reverse )',2ow_start+(80*8)+5
	db	'Erases ',char_fn,'1..',char_fn,'8 !! Sure ?',255

ent_str_1:
	dw	window_start+(80*6)+5
	db	'<RETURN> to save line,',255
ent_str_2:
	dw	window_start+(80*7)+5
	db	'<^> to enter CTRL key,',255
ent_str_3:
	dw	window_start+(80*8)+5
	db	'^P to enter pause (',char_pause,'),',255
ent_str_4:
	dw	window_start+(80*9)+5
	db	'^W to enter wait (',char_wait,').',255

w_boot_1:
	dw	window_start+(80*4)+5
	db	'<B> to warm boot,',255
w_boot_2:
	dw	window_start+(80*5)+5
	db	'<S> to b
t_l2:	db	255

esc_exit_1:
	dw	window_start+(80*(num_lines-2))+5
	db	'<ESC> to exit.',255
main_menu_3:
	dw	window_start+(80*9)+5
	db	'<W> to Warm Boot,',255
main_menu_4:
	dw	window_start+(80*4)+5
	db	'<F> to set Function Keys,',255
main_menu_5:
	dw	window_start+(80*5)+5
	db	'<C> to set Cursor Keys,',255
main_menu_6:
	dw	window_start+(80*6)+5
	db	'<K> to set Key Click,',255
main_menu_7:
	dw	window_start+(80*8)+5
	db	'<T> for Clock Functions,',255
main_menu_8:
	dw	window_start+(80*7)+5
	55
screen_7:
	dw	window_start+(80*10)+5
	db	'<L> status line on/off.',255


inv_chars:
;; top left
;	db	000h,000h,000h,000h,00Fh,01Fh,01Ch,01Ch,01Ch,01Ch,01Ch
;	db	 01Ch,01Ch,01Ch,01Ch,01Ch
;; top, bottom
;	db	000h,000h,000h,000h,0FFh,0FFh,000h,000h,000h,000h,000h
;	db	 000h,000h,000h,000h,000h
;; top right
;	db	000h,000h,000h,000h,0F8h,0FCh,01Ch,01Ch,01Ch,01Ch,01Ch
;	db	 01Ch,01Ch,01Ch,01Ch,01Ch
;; left, right
;	db	01Ch,01Ch,01Ch,01Ch,01Ch,01Ch,01Ch,01Ch,01Ch,01Ch,01Ch
;	db	 01Ch,01Ch,01Coot to Shell,',255
w_boot_3:
	dw	window_start+(80*6)+5
	db	'<C> to boot to CCP,',255
w_boot_4:
	dw	window_start+(80*7)+5
	db	'<E> to edit command line.',255

set_curs_1:
	dw	window_start+(80*4)+5
	db	'Press cursor key to change.',255
set_curs_2:
	dw	window_start+(80*6)+10
	db	'Currently - ',255
set_curs_3:
	dw	window_start+(80*8)+10
	db	'Change to ?',255

time_1:
	dw	window_start+(80*4)+5
	db	'<S> Set time/date,',255
time_2:
	dw	window_start+(80*5)+5
	db	'<1> Date - 20th Dec., 1987,',Track-Info
"
å"""""""""	"

	db	000h,000h,000h,000h,03Ch,008h,01Eh,000h,000h,000h,000h
	db	 000h,000h,000h,000h,000h
; control code
	db	000h,000h,008h,01Ch,036h,022h,000h,000h,000h,000h,000h
	db	 000h,000h,000h,000h,000h
; chain function
	db	000h,03Eh,030h,030h,03Eh,030h,030h,030h,000h,000h,000h
	db	 000h,000h,000h,000h,000h
; wait
	db	000h,000h,000h,03Eh,030h,03Eh,030h,030h,000h,000h,000h
	db	 000h,000h,000h,000h,000h


end_code	equ	$

; zero fill to end of CP/M record (128 bytes)
	if	($ and 127) ne 0
	 ds	128-($ ah,01Ch,01Ch
;; bottom left
;	db	01Ch,01Ch,01Ch,01Ch,01Fh,00Fh,000h,000h,000h,000h,000h
;	db	 000h,000h,000h,000h,000h
;; bottom right
;	db	01Ch,01Ch,01Ch,01Ch,0FCh,0F8h,000h,000h,000h,000h,000h
;	db	 000h,000h,000h,000h,000h
;; middle left
;	db	01Ch,01Ch,01Ch,01Ch,01Fh,01Fh,01Ch,01Ch,01Ch,01Ch,01Ch
;	db	 01Ch,01Ch,01Ch,01Ch,01Ch
;; middle right
;	db	01Ch,01Ch,01Ch,01Ch,0FCh,0FCh,01Ch,01Ch,01Ch,01Ch,01Ch
;	db	 01Ch,01Ch,01Ch,01Ch,01Ch

; Alternate set with two lines ...
; top left
	db	000h,00nd 127)
	endif

; start of uninitialised storage

save_sp		equ	end_code

stack		equ	save_sp+64+2

temp_screen	equ	stack

temp_inverse	equ	temp_screen+(num_lines*num_cols)

temp_col	equ	temp_inverse+(num_pcg*16)

temp_attr	equ	temp_col+(num_lines*num_cols)

time		equ	temp_attr+(num_lines*num_cols)

new_time	equ	time+10

entered_time	equ	new_time+10

no_clock	equ	entered_time+10

prog_fn_addr	equ	no_clock+1

temp_string	equ	prog_fn_addr+2

pointer		equ	temp_string+128

line_leng0h,000h,000h,00Fh,010h,021h,022h,024h,024h,024h
	db	 024h,024h,024h,024h,024h
; top, bottom
	db	000h,000h,000h,000h,0FFh,000h,0FFh,000h,000h,000h,000h
	db	 000h,000h,000h,000h,000h
; top right
	db	000h,000h,000h,000h,0F0h,008h,084h,044h,024h,024h,024h
	db	 024h,024h,024h,024h,024h
; left, right
	db	024h,024h,024h,024h,024h,024h,024h,024h,024h,024h,024h
	db	 024h,024h,024h,024h,024h
; bottom left
	db	024h,024h,024h,022h,021h,010h,00Fh,000h,000h,000h,000h
	db	 000h,000h,000h,000h,000h
; bottom rth	equ	pointer+1

fn_flag		equ	line_length+1

colour_fitted	equ	fn_flag+1

old_vml		equ	colour_fitted+1

last_key	equ	old_vml+1

last_addr	equ	last_key+1
	if	(last_addr gt spare_fn_str)
error	 equ	 code gone too far !!!
	 dw	 last_addr-spare_fn_str+zero
	endif

	end
ight
	db	024h,024h,024h,044h,084h,008h,0F0h,000h,000h,000h,000h
	db	 000h,000h,000h,000h,000h
; middle left
	db	024h,024h,024h,022h,021h,020h,021h,022h,024h,024h,024h
	db	 024h,024h,024h,024h,024h
; middle right
	db	024h,024h,024h,044h,084h,004h,084h,044h,024h,024h,024h
	db	 024h,024h,024h,024h,024h


; cursor for entering strings, time
	db	0FFh,0FFh,000h,000h,000h,000h,000h,000h,000h,000h,000h
	db	 000h,000h,000h,000h,000h

; pause
;	db	000h,000h,000h,000h,008h,014h,008h,000h,000h,000h,000hTrack-Info
"
å"""""""""	"
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
#
å#########	#
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
#
å#########	#
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
$
å$$$$$$$$$	$
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
$
å$$$$$$$$$	$
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
%
å%%%%%%%%%	%
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
%
å%%%%%%%%%	%
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
&
å&&&&&&&&&	&
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
&
å&&&&&&&&&	&
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
'
å'''''''''	'
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
'
å'''''''''	'
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
(
å(((((((((	(
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
(
å(((((((((	(
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
)
å)))))))))	)
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
)
å)))))))))	)
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
*
å*********	*
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
*
å*********	*
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
+
å+++++++++	+
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
+
å+++++++++	+
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
,
å,,,,,,,,,	,
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
,
å,,,,,,,,,	,
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
-
å---------	-
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
-
å---------	-
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
.
å.........	.
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
.
å.........	.
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
/
å/////////	/
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
/
å/////////	/
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
0
å000000000	0
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
0
å000000000	0
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
1
å111111111	1
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
1
å111111111	1
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
2
å222222222	2
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
2
å222222222	2
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
3
å333333333	3
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
3
å333333333	3
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
4
å444444444	4
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
4
å444444444	4
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
5
å555555555	5
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
5
å555555555	5
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
6
å666666666	6
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
6
å666666666	6
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
7
å777777777	7
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
7
å777777777	7
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
8
å888888888	8
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
8
å888888888	8
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
9
å999999999	9
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
9
å999999999	9
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
:
å:::::::::	:
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
:
å:::::::::	:
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
;
å;;;;;;;;;	;
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
;
å;;;;;;;;;	;
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
<
å<<<<<<<<<	<
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
<
å<<<<<<<<<	<
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
=
å=========	=
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
=
å=========	=
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
>
å>>>>>>>>>	>
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
>
å>>>>>>>>>	>
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
?
å?????????	?
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
?
å?????????	?
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
@
å@@@@@@@@@	@
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
@
å@@@@@@@@@	@
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
A
åAAAAAAAAA	A
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
A
åAAAAAAAAA	A
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
B
åBBBBBBBBB	B
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
B
åBBBBBBBBB	B
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
C
åCCCCCCCCC	C
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
C
åCCCCCCCCC	C
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
D
åDDDDDDDDD	D
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
D
åDDDDDDDDD	D
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
E
åEEEEEEEEE	E
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
E
åEEEEEEEEE	E
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
F
åFFFFFFFFF	F
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
F
åFFFFFFFFF	F
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
G
åGGGGGGGGG	G
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
G
åGGGGGGGGG	G
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
H
åHHHHHHHHH	H
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
H
åHHHHHHHHH	H
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
I
åIIIIIIIII	I
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
I
åIIIIIIIII	I
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
J
åJJJJJJJJJ	J
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
J
åJJJJJJJJJ	J
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
K
åKKKKKKKKK	K
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
K
åKKKKKKKKK	K
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
L
åLLLLLLLLL	L
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
L
åLLLLLLLLL	L
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
M
åMMMMMMMMM	M
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
M
åMMMMMMMMM	M
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
N
åNNNNNNNNN	N
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
N
åNNNNNNNNN	N
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
O
åOOOOOOOOO	O
ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTrack-Info
O
åOOOOOOOOO	O
åååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååå