'________________________________________________ ' ' M I D I T O O L S - S P 4 C E B A R '________________________________________________ SANS=0 AUTOMATIC_PLAYBACK=0 '"L" LOCAL, "E" EXTERNAL, "B" BOTH LOCATION$="L" 'ROM ENTRY FILE NUMBER (0-15) FILE_IN=4 '"P" PLAY, "C" CONVERT, "M" PLAY ONE TRACK AT A TIME, "R" READ COMMAND$="P" 'OUTPUT FILE (NX MUSIC EXTRACTED FROM MIDI) FILE_OUT=15 X = 48 Y = 16 SPRITE 0, X + 8, Y + 49, 128 SPRITE 1, X + 32, Y + 49, 131 SPRITE 2, X + 12, Y, 64 SPRITE 3, X, Y + 25, 134 SPRITE 4, X + 32, Y + 25, 138 SPRITE 0 SIZE 2 SPRITE 1 SIZE 2 SPRITE 2 SIZE 3 SPRITE 3 SIZE 3 SPRITE 4 SIZE 3 'NEW TO DO 'X FIX SCREEN FLICKERING IN FAST MIDI FILES, CPU ISN'T AT 100% MOST OF THE TIME ' X THAT IS PROBABLY THE PROBLEM, IT IS, THE METER DOEN'T UPDATE FAST ENOUGH '- LOAD THE MANY TRACKS INTO AN ARRAY (LIVE: NOTES AND VEL) '- DISPLAY THE ARRAY ON THE SCREEN '- ADD SOME ENVELOPE MAYBE '- READ THE SYNTH TYPE OF EACH TRACK FROM THE FILE 'MOST SIGNIFICANT BITS ARE FIRST: DON'T USE PEEKW OR PEEKL 'BUGS '- IN RUNNING STATUS FILES: KEY IS ALWAYS 2 WHILE CONVERTING: NO KEY UP COMMANDS '- MAYBE ALL KEY-UP COMMANDS ARE BLOCKED, BUT ONLY THE CONVERTER REALLY NEEDS IT '- CONVERSION VELOCITIES ARE 0 TOO OFTEN ' - DATA GOES SOMETHING LIKE THIS ' - HANDLE DT=0 BETTER ' ' 'MERGE THE MIDI FILE READER,PLAYER, AND CONVERTER IN ONE PROGRAM FOR EASY DEVELOPMENT 'AFTER ASKING WHAT FILE TO LOAD, ASK WHAT TO DO: '- READ MIDI '- PLAY MIDI '- CONVERT AND SAVE TO LOCATION (ASK LOCATION) ' 'TO DO: '- WRITE PALETTE DATA INTO THE PALETTE PART OF THE SIMULATED RAM (SEE MEMORY MAP) ' - PUT THE DATA AS DATA IN CODE, FOR LOOP TROUGH IT, DO SOMETHING LIKE: READ X, POKE(A,X) '- MORE PLAYBACK OPTIONS AFTER CONVERSION ' - JUST ADD THE TRACK COUNTER, SO THAT YOU CAN SEE IF IT LINES UP ' - ADD AN INDEX ARRAY FOR THE CONVERTOR OUTPUT ARRAY: AT WHAT TIMES DO TRACKS START ' - CHANGE SETTINGS BEFORE PLAYBACK: TRANSPOSE, START TIME ' - MAYBE DO THIS WHILE PLAYING WITH THE KEYBOARD ' - SET PLAYBACK TIME ' - HIT R TO REPLAY THE SONG ' - HIT L TO REWRITE MUSIC DATA ' - SKIP TRACKS OR GO BACK (WITH N AND P) ' - MUSIC FILE TRACK PLAYING OPTIONS: ONE AFTER ANOTHER OR AT THE SAME TIME '- MORE MIDI PLAYBACK OPTIONS ' - SKIP TRACKS OR GO BACK (WITH N AND P) '- USE MORE MIDI INFORMATION: ' - PLAYBACK SPEED ' - MIDI INSTRUMENT (LIKE DRUMS) '- PLAY TRACKS PARALLEL (MELODY, BASS, DRUMS, ALL INSTRUMENTS ALL AT ONCE) '[DONE] MAKE A FILE IMPORTER: ' - [DONE] IMPORT LOCAL OR EXTERNAL FILES, SPECIFY THE FILE NUMBER 'TEST THE ALGORITHM ON MORE MIDI FILES '- (SOME ARE POLYPHONIC, SOME ARE MORE COMPLEX, MANY TRACKS) '[DONE] A MESSAGE WHEN THE FILE IS TOO BIG 'ADD A SCANNING OPTION FOR WHEN THE PROGRAM GETS AN INVALID STATUS BYTE (AND GETS LOST) ' - FIRST ASSUME IT'S MIDI: SKIP 2 BYTES NOPE, IT CAN BE ONE BYTE, JUST SCAN ' - IT'LL SCAN FOR BYTES WITH BIT 7 (MSB) TURNED ON, THIS EITHER MEANS: ' - FIRST PART OF A LONG TIME VALUE ' - OR IT MEANS: NEW STATUS BYTE FOUND, ASSUME THIS, ERROR?: ASSUME THE OTHER OPTION 'MAKE IT WORK WITH BIG FILES: ' - IDEA: MAKE A FUNCTION WHICH LOADS VALUES FROM RAM AND SWAPS OUT THE RAM IF NECCESARY ' - LOAD THE FIRST 16KB IN RAM ' - WHEN IT HAS REACHED THE END: LOAD THE SECOND 16KB ' - IT CAN BE UP TO 32KB: THE CONVERSION OUTPUT WILL BE IN ANOTHER DISK ' - USE BOTH THE INTERNAL AND THE EXTERNAL DISK TO GET 2 X 32KB FILE INPUT 'REPLACE ADDRESS VARIABLE I WITH A, I IS TOO COMMON 'MARIO FILE NOT WORKING: '- [NOPE] MAYBE IT HAS DETECTED A TOO SMALL LENGTH OF A META EVENT (LENGTH HAS VAR LEN QUANTITY) '- [NOPE] CHECK HEX EDITOR ASCII '- THE FILE MAY HAVE BEEN CORRUPTED, CHECK WITH ANOTHER MIDI PLAYER TOUCHSCREEN DIM GLOBAL TRACKD(31,2) DIM GLOBAL INDEX(31) DIM GLOBAL TA(1,16383) DIM GLOBAL PLAYING(1,3) DIM GLOBAL VIRTUAL_VOICE(3,31) 'TA: TRACK ATTRIBUTES GLOBAL TYPE,S,V,V0,V1,V2,V3,F,F1,I,CSIZE,TN,TRACKS,TIME,STATUS,KEY,RECENT80,PITCH,VELOCITY,FILE_PART,ADDR_END,CHANNEL_MODE,K$,O$,OPERATION,DIV,TIME_UNIT,AUTOMATIC_PLAYBACK I=$A000 TYPE=0 CSIZE=0 TN=0 DT=0 TIME=0 KEY=0 STATUS=0 RECENT80=0 TIME_UNIT=10000 FILE_PART=0 CHANNEL_MODE=0 OPERATION=-1 ROT=0 'S E T U P : U S E R I N P U T IF AUTOMATIC_PLAYBACK THEN K$=LOCATION$ F=FILE_IN O$=COMMAND$ F1=FILE_OUT ELSE K$="L" F=5 O$="P" END IF 'B A S I C F I L E I N F O A N D H E A D E R S=SIZE(F) COPY ROM(F),S TO $A000 ADDR_END=$A000+S 'R E A D H E A D E R D=256*PEEK($A00C)+PEEK($A00D) D1=D\2^15 D2=D MOD 2^15 IF D1=0 THEN 'PRINT "DIVISION:",D2 'PRINT "TICKS/QUARTER NOTE" DIV=D2\24 ELSE IF D1=1 THEN 'PRINT "DIVISION:",D2\2^8,D2 MOD 2^8 'PRINT "F/S AND TICKS/F" END IF 'I N D E X T H E F I L E REPEAT CALL RAM_PEEK4(I) CALL DETERMINE_TYPE WAIT 1 UNTIL I=ADDR_END INDEX(TN)=ADDR_END TRACKS=TN-1 'D E T E R M I N E B L O C K T Y P E SUB DETERMINE_TYPE IF V0=77 AND V1=84 THEN IF V2=104 AND V3=100 THEN TYPE=1 ADD I,4 CALL DETERMINE_SIZE ELSE IF V2=114 AND V3=107 THEN TYPE=2 INDEX(TN)=I INC TN ADD I,4 CALL DETERMINE_SIZE END IF ELSE I=ADDR_END END IF END SUB 'D E T E R M I N E B L O C K S I Z E SUB DETERMINE_SIZE CALL RAM_PEEK4(I) CSIZE=2^24*V0+2^16*V1+2^8*V2+V3 ADD I,4 I=I+CSIZE END SUB 'DISPLAY STORED INDEX VALUES FOR I=0 TO 15 V=INDEX(I) NEXT I 'T A P T O C O N T I N U E SUB TAP_TO_CONTINUE IF AUTOMATIC_PLAYBACK THEN CLW EXIT SUB END IF PAL 2 'PRINT "TAP TO CONTINUE" PAL 0 WHILE NOT TAP WAIT 1 WEND FOR J=0 TO 16 'PRINT "" NEXT J CLW END SUB SUB PLAY_(V,N,O) A=$FF40+12*V POKEW A,O+16*16.35*2^((N-1)/12) POKE A+2,PEEK(A+2) OR %11000000 END SUB 'P L A Y M I D I M U L T I T R A C K 'MULTITRACKPLAYER: T_ZERO=TIMER FOR J=0 TO TRACKS I=INDEX(J)+8 CALL VAR_LEN_QUANTITY DT=V DT3=DT\DIV ADD TRACKD(J,2),DT TRACKD(J,0)=TIMER-(DT3>=0)*DT3 TRACKD(J,1)=I NEXT J TIME=0 J=0 I=INDEX(J)+8 'DETERMINE DELTA TIME CALL VAR_LEN_QUANTITY DT=V DT3=DT\DIV ADD TRACKD(J,2),DT TRACKD(J,0)=TIMER-(DT3>0)*DT3 TRACKD(J,1)=I DO SANS = SANS +1 IF SANS < 60 THEN SPRITE 2, X + 12, Y, 192 ELSE IF SANS < 120 THEN SPRITE 2, X + 12, Y, 192+4 ELSE IF SANS < 180 THEN SPRITE 2, X + 12, Y, 192+8 ELSE SPRITE 2, X + 12, Y, 192+12 END IF SOONEST=-1 MIDI_TIMER=TIMER*DIV 'FIND THE LOWEST NUMBER, I COULD USE THE "MIN" FUNCTION FOR I=0 TO TRACKS IF (SOONEST<0 OR TRACKD(I,0)0 THEN 'NEW TIME VALUE SOONEST=T_ZERO+TRACKD(I,2)\DIV J=I END IF NEXT I IF SOONEST=-1 THEN EXIT I=TRACKD(J,1) 'NEW TIME GENERATOR: IT'S SHARP AND ACCURATE TI=TRACKD(J,2)\DIV+T_ZERO-TIMER IF TI>0 THEN WAIT TI BG FILL 0,5 TO 19,10 CHAR 0 BG TINT 0,12 TO 19,15 PAL 0 CALL STATUS(I,J,ROT) PVELOCITY=VELOCITY PPITCH=PITCH INC I 'DETERMINE DELTA TIME CALL VAR_LEN_QUANTITY DT=V DT3=DT\DIV ADD TRACKD(J,2),DT TRACKD(J,0)=TIMER-(DT3>0)*DT3 TRACKD(J,1)=I 'PRINT "DT=",V," " IF I>=INDEX(J+1)-1 THEN TRACKD(J,0)=-1 'IF TRACKD(0,0)=-1 THEN TRACE TRACKD(0,0) 'TRACE "SAVE ",J,HEX$(I-$A000) LOOP STOP 'S U B P R O G R A M S 'S T A T U S I N T E R P R E T E R SUB STATUS(I,TRACKN,ROT) 'INTERPRET THE STATUS BYTE: '- 00 TO 7F: NOT A STATUS CODE -> RUNNING STATUS (CONTINUE WITH PREVIOUS STATUS) '- 80 TO EF: MIDI STATUS CODE -> NEXT IS PITCH -> NEXT IS VELOCITY ' - 9N: KEY DOWN ' - 8N: KEY UP ' N=MIDI CHANNEL NUMBER (0 TO 15) '- F0=SYSEX 1 -> NEXT IS LENGTH: AMOUNT OF BYTES FOLLOWING '- F7=SYSEX 2 -> NEXT IS LENGTH: AMOUNT OF BYTES FOLLOWING '- FF=META -> NEXT IS META-CODE -> NEXT IS LENGTH: AMOUNT OF BYTES FOLLOWING CALL RAM_PEEK(I) 'TRACE "STATS",HEX$(I-$A000) 'WAIT 30 IF V\128=1 THEN STATUS=V INC I END IF 'IF V>=$80 AND V<=$89 THEN TRACE "V1" 'IF STATUS>=$80 AND STATUS<=$89 THEN TRACE "K1" IF O$<>"C" THEN PAL 3 'PRINT "STATUS:",HEX$(STATUS),""; END IF 'TRACE "SLOAD",HEX$(I-$A000) 'I N T E R P R E T O R IF STATUS>$7F AND STATUS<$F0 THEN 'TRACE "S",HEX$(I-$A000) 'MIDI TRACKM=STATUS AND 16 IF STATUS<$A0 THEN IF STATUS<$90 THEN IF O$<>"C" THEN 'PRINT "KEY UP " KEY=1 RECENT80=1 DT2=INT(DT2+0.5) ELSE IF STATUS<$A0 THEN IF O$<>"C" THEN 'PRINT "KEY DOWN " KEY=2 DT2=INT(DT2+0.49) END IF CALL RAM_PEEK(I) IF O$<>"C" THEN PAL 0 'PRINT "PITCH=",V,""; END IF 'ROUTE NOT TAKEN AT PROBLEM 'TRACE 2,HEX$(I-$A000) 'MIDI PITCH STARTS AT 0, IT HAS TO BE TRANSPOSED +1 PITCH=V+1 INC I CALL RAM_PEEK(I) IF O$<>"C" THEN 'PRINT "VEL=",V,"" VELOCITY=V\8 IF O$="P" THEN 'VOLUME 0,VELOCITY, IF KEY=2 THEN CALL KEYDOWN(ROT,TRACKN,TRACKM,PITCH,VELOCITY) ELSE IF KEY=1 THEN CALL KEYUP(TRACKN,TRACKM,PITCH) END IF 'TRACE 3,HEX$(I-$A000) ELSE IF O$="C" AND OPERATION=1 THEN 'TRACE HEX$(I),TIME,VELOCITY,-(KEY=1 OR KEY=2 AND RECENT80=0) IF KEY=2 AND RECENT80=1 THEN RECENT80=0 END IF IF KEY=1 OR (KEY=2 AND RECENT80=0) THEN FOR A=0 TO DT2-1 IF A+TIME<16384 THEN TA(0,A+TIME)=PPITCH TA(1,A+TIME)=PVELOCITY ELSE IF CURSOR.Y>3 THEN CLW LOCATE 0,0 PAL 1 'PRINT TIME 'PRINT "CONVERTOR" 'PRINT "OUT OF MEMORY" PAL 0 END IF 'TRACE A+TIME NEXT A END IF END IF ELSE IF STATUS<$B0 THEN 'TRACE "A",HEX$(I-$A000) 'A0-AF IF O$<>"C" THEN 'PRINT "AFTERTOUCH" PAL 0 CALL RAM_PEEK(I) 'PRINT "KEY=",V,""; LOCATE 0,12+VOI PAL 2 'PRINT VOI,PITCH,VELOCITY," " LOCATE 0,5 PAL 0 END IF INC I CALL RAM_PEEK(I) ELSE IF STATUS<$C0 THEN 'TRACE "B",HEX$(I-$A000) 'B0-BF CALL RAM_PEEK(I) CTRL=V IF O$<>"C" THEN PAL 0 'PRINT "CONTR=",HEX$(V),""; END IF INC I CALL RAM_PEEK(I) IF CTRL=$7E THEN CHANNEL_MODE=0 STOP ELSE IF CTRL=$7F THEN CHANNEL_MODE=1 STOP END IF ELSE IF STATUS<$E0 THEN 'TRACE "CD",HEX$(I-$A000) 'C0-DF IF O$<>"C" THEN PAL 0 CALL RAM_PEEK(I) 'PRINT "VAL=",V END IF ELSE 'TRACE "E",HEX$(I-$A000) 'V0=PEEK(I) CALL RAM_PEEK(I) V0=V INC I CALL RAM_PEEK(I) V0=V0+256*V IF O$<>"C" THEN PAL 0 'PRINT "VAL=",V END IF END IF ELSE IF STATUS>$EF THEN 'TRACE "F",HEX$(I-$A000) IF STATUS=$F0 THEN 'SYSEX 1 IF O$<>"C" THEN 'PRINT "SYSEX 1" PAL 0 END IF CALL VAR_LEN_QUANTITY IF O$<>"C" THEN 'PRINT "LENGTH= ",V LENGTH=V ADD I,V-1 ELSE IF STATUS=$F7 THEN 'TRACE "F7",HEX$(I-$A000) 'SYSEX 2 IF O$<>"C" THEN 'PRINT "SYSEX 2" PAL 0 END IF CALL VAR_LEN_QUANTITY IF O$<>"C" THEN 'PRINT "LENGTH= ",V LENGTH=V ADD I,V-1 ELSE IF STATUS=$FF THEN 'TRACE "FF",HEX$(I-$A000) 'META IF O$<>"C" THEN 'PRINT "META " PAL 0 END IF 'V=PEEK(I) CALL RAM_PEEK(I) IF O$<>"C" THEN 'PRINT "META CODE=",HEX$(V) IF V=$2F THEN PAL 1 'PRINT "END OF TRACK " PAL 0 END IF END IF INC I CALL VAR_LEN_QUANTITY IF O$<>"C" THEN 'PRINT "LENGTH= ",V LENGTH=V 'TRACE V ADD I,V-1 'TRACE "F0",HEX$(I-$A000) END IF ELSE 'TRACE "R",HEX$(I-$A000) IF O$<>"C" THEN PAL 1 'PRINT "RUNNING STATUS" PAL 0 END IF END IF 'TRACE 4,HEX$(I-$A000) CALL VOICESELECT(ROT,TRACKN,PITCH,VELOCITY) END SUB 'K E Y D O W N SUB KEYDOWN2(ROT,TRACKN,TRACKM,PITCH,VELOCITY) 'REUSE VIRTUAL VOICES FOR X=0 TO 31 VAR=VIRTUAL_VOICE(1,X) IF VAR=PITCH OR VAR=0 THEN T=X EXIT END IF NEXT X 'WRITE SOUND TO VIRTUAL VOICE VIRTUAL_VOICE(0,T)=TRACKN*16+TRACKM VIRTUAL_VOICE(1,T)=PITCH VIRTUAL_VOICE(2,T)=VELOCITY VIRTUAL_VOICE(3,T)=TIMER 'FIND OLDEST TRACK ON VOICE OLDEST=0 VOI=0 FOR X=0 TO 3 IF PLAYING(1,X)>OLDEST THEN OLDEST=PLAYING(1,X) VOI=X END IF NEXT X PLAYING(0,VOI)=VIRTUAL_VOICE(0,T) PLAYING(1,VOI)=VIRTUAL_VOICE(1,T) OFFSET=0 CALL PLAYSOUND(VOI,PITCH,VELOCITY,OFFSET) END SUB SUB PLAYSOUND(VOI,PITCH,VELOCITY,OFFSET) VOLUME VOI,VELOCITY, CALL PLAY_(VOI,PITCH,0) END SUB SUB VOICESELECT(ROT,TRACKN,PITCH,VELOCITY) END SUB SUB KEYDOWN(ROT,TRACKN,TRACKM,PITCH,VELOCITY) 'CALL KEYDOWN2(ROT,TRACKN,TRACKM,PITCH,VELOCITY) 'EXIT SUB VOI=ROT ADD ROT,1,0 TO 3 'VOI=-1 'FIND AVAILABLE VOICES FOR X=0 TO 3 IF PLAYING(0,X)=PITCH THEN VOI=X EXIT ELSE IF PLAYING(0,X)=0 THEN VOI=X END IF NEXT X 'IF VOI=-1 THEN EXIT SUB 'OVERWRITE VOICE IF THE SAME KEY IS ALREADY PRESSED (SAME PITCH) 'TRACE VOI,PITCH,PLAYING(0),PLAYING(1),PLAYING(2),PLAYING(3) PLAYING(0,VOI)=PITCH 'STOP SOUND IF VELOCITY=0 THEN 'TRACE "STOP",VOI PLAYING(0,VOI)=0 STOP VOI LOCATE 0,12+VOI PAL 1 ''PRINT VOI,PITCH,0," " 'PRINT VOI," " LOCATE 0,5 PAL 0 ELSE LOCATE 0,12+VOI PAL 3 'PRINT VOI,PITCH,VELOCITY," "; LOCATE 9,12+VOI 'PRINT TRACKN,TRACKM," " LOCATE 0,5 PAL 0 END IF 'VELOCITY VELOCITY=-VELOCITY*(VELOCITY>=0 AND VELOCITY<=15)-15*(VELOCITY>15) VOLUME VOI,VELOCITY, 'TWO OCTAVES DOWN ADD PITCH,-24 'OCT -2 CALL PLAY_(VOI,PITCH,0) 'CALL PLAYORCLIP END SUB SUB PLAYORCLIP 'PLAY OR CLIP IF PITCH>0 AND PITCH<97 THEN CALL PLAY_(VOI,PITCH,0) ELSE IF PITCH<1 THEN CALL PLAY_(VOI,PITCH AND 12,0) 'PRINT "PITCH TOO LOW" ELSE CALL PLAY_(VOI,84+PITCH AND 12,0) 'PRINT "PITCH TOO HIGH" END IF END SUB SUB KEYUP(TRACKN,TRACKM,PITCH) FOR X=0 TO 3 IF PITCH=PLAYING(0,X) THEN STOP X PLAYING(0,X)=0 'TRACE "STOP",X LOCATE 0,12+X PAL 1 ''PRINT X,PITCH,0," " 'PRINT X," " LOCATE 0,5 PAL 0 END IF NEXT X END SUB 'V A R I A B L E L E N G T H Q U A N T I T Y SUB VAR_LEN_QUANTITY V0=0 REPEAT V0=V0*128 CALL RAM_PEEK(I) ''PRINT " ",HEX$(V) ADD V0,V MOD 128 ''PRINT " ",HEX$(V0) INC I UNTIL V\128=0 V=V0 END SUB SUB NEW_VAR_LEN_QUANTITY(I,V) V0=0 V=0 REPEAT V0=V0*128 CALL RAM_PEEK(I) ''PRINT " ",HEX$(V) ADD V0,V MOD 128 ''PRINT " ",HEX$(V0) INC I UNTIL V\128=0 V=V0 END SUB 'THIS FUNCTION SIMULATES A 64KB RAM: 'IF THE ADDRESS IS OUT OF RANGE IT'LL CHANGE THE DATA BLOCK 'CALL RAM_PEEK(I) WILL BE USED INSTEAD OF PEEK(I) 'R A M P E E K SUB RAM_PEEK(A) 'TRACE HEX$(A-$A000) IF (A-$A000)\$4000 = FILE_PART THEN V=PEEK(A-FILE_PART*$4000) ELSE 'TRACE "SWITCH",FILE_PART FILE_PART=(A-$A000)\$4000 OFFSET=$4000*(FILE_PART MOD 2) IF K$<>"B" AND FILE_PART>1 THEN IF OPERATION<>-1 THEN PAL 1 'PRINT "" 'PRINT "OUT OF DATA" PAL 0 END IF ELSE IF K$="L" OR K$="B" AND FILE_PART\2=1 THEN COPY ROM(F)+OFFSET,-(FILE_PART=1)*(S-$4000)-(FILE_PART=0)*$4000 TO $A000 ELSE IF K$="E" OR K$="B" AND FILE_PART\2=0 THEN LOAD F,$A000,$4000,OFFSET END IF V=PEEK(A-FILE_PART*$4000) 'TRACE "SWITCHED",FILE_PART END IF END IF END SUB 'R A M P E E K F O U R SUB RAM_PEEK4(A) CALL RAM_PEEK(A) V0=V CALL RAM_PEEK(A+1) V1=V CALL RAM_PEEK(A+2) V2=V CALL RAM_PEEK(A+3) V3=V END SUB 'S A V E SUB SAVEDATA(ADDR,V,OFFSET) 'BITSHIFT POKE ADDR,PEEK(ADDR)+INT(V*2^OFFSET)MOD 256 END SUB 'T R A S H SUB NOT_IN_USE WHILE 0 'V=PEEK(I) CALL RAM_PEEK(I) 'PRINT HEX$(V) WHILE NOT TAP WAIT 1 WEND INC I WAIT 1 WEND END SUB #1:MAIN PALETTES 003F0F3000383400003C0C00003F3C00 003F2A15003F2A15003F2A15003F2A15 #2:MAIN CHARACTERS 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000001070F1F3F0000000000000000 00003FFFFFFFFFFF0000000000000000 0000FCFFFFFFFFFF0000000000000000 00000080E0F0F8FC0000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 3F7F7F7C706060600000000000000000 FFFFFF0F070707070000000000000000 FFFFFFF0E0E0E0E00000000000000200 FCFEFE3E0E0606060000000000008000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 303C1F1F3D3C313D0000000000000000 0E0EDC3CFCFF3F400000000000000000 70703B3C3FFFFE010000000000000000 0C3CF8F8BC9C0C3C0000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 1E1F0F07010000000000000000000000 7636C6F0FF3F00000000000000000000 EDECE907FFFC00000000000000000000 78F8F0E0800000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000020404040000000000000000 000000006060C0C00000000000000000 00000000000008140000000000000000 0000000C0C0C0C0C0000000000000000 00000010100808080000000000000000 00000000000000000000000000000000 00000000000000010000000000000000 00387C7E8F0100000000000000000000 0000000080C0E0380000000000000000 00000000000082FE0000000000000000 000000000001070F0000000000000000 1C3E78F2E1C180080000000000000000 000000000080C0400000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 040409090909090F0000000000000000 C0C08080808080800000000000000000 14141232222222220000000000000000 0E0E0E0E060606070000000000000000 080404040404043C0000000000000000 00000000000000000000000000000000 02040808101030300000000000000000 08080808080D0E080000000000000000 1E1312121EF2090B0000000000000000 7C3D00787D7D7D7D0000000000000000 F0E0A0A0E0A127E80000000000000000 1010103070D010180000000000000000 203018080C0C04040000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 0000001E3F7F7F7F0000000000000000 7F000078B8D8C0EC0000000000000000 C1000000000000000000000000000000 FF00101F3F3F007E0000000000000000 C00000C79F7FFFFF0000000000000000 00000000C0E0E0C00000000000000000 30180C06030100000000000000000000 1010101090909C3E0000000000000000 0D090B05050507070000000000000000 7D7D7D7D7D01FFC00000000000000000 2828D0506040C0FF0000000000000000 0808080808183BF30000000000000000 04040C18306080000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 0F000000000000000000000000000000 F8000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 30000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000001070F1F3F0000000000000000 00003FFFFFFFFFFF0000000000000000 0000FCFFFFFFFFFF0000000000000000 00000080E0F0F8FC0000000000000000 00000001070F1F3F0000000000000000 00003FFFFFFFFFFF0000000000000000 0000FCFFFFFFFFFF0000000000000000 00000080E0F0F8FC0000000000000000 00000001070F1F3F0000000000000000 00003FFFFFFFFFFF0000000000000000 0000FCFFFFFFFFFF0000000000000000 00000080E0F0F8FC0000000000000000 00000001070F1F3F0000000000000000 00003FFFFFFFFFFF0000000000000000 0000FCFFFFFFFFFF0000000000000000 00000080E0F0F8FC0000000000000000 3F7F7F7C706060600000000000000000 FFFFFF0F0707C7C70000000000000000 FFFFFFF0E0E0E3E30000000000000000 FCFEFE3E0E0606060000000000000000 3F7F7F7C706063630000000000000000 FFFFFF0F070707070000000000000000 FFFFFFF0E0E0E6E60000000000000000 FCFEFE3E0E0606060000000000000000 3F7F7F7F7F7F7F6F0000000000000000 FFFFFFFFFFF7F7E70000000000000000 FFFFFFFFFFEFEFE70000000000000000 FCFEFEFEFEFEFEF60000000000000000 3F7F7F7C706060600000000000000000 FFFFFF0F070707070000000000000000 FFFFFFF0E0E0E0E00000000003070E07 FCFEFE3E0E0606060000000080C0E0C0 303C1F1F3D3C313D0000000000000000 0E0EDC3CFCFF3F400000000000000000 70703B3C3FFFFE010000000000000000 0C3CF8F8BC9C0C3C0000000000000000 203F1F1F3D3C313D0000000000000000 06EEDC3CFCFF3F400000000000000000 60773B3C3FFFFE010000000000000000 04FCF8F8BC9C0C3C0000000000000000 303C1F1F3D3C313D0000000000000000 0E0EDC3CFCFF3F400000000000000000 70703B3C3FFFFE010000000000000000 0C3CF8F8BC9C0C3C0000000000000000 303C1F1F3D3C313D0000000000000000 0E0EDC3CFCFF3F400000000000000000 70703B3C3FFFFE010300000000000000 0C3CF8F8BC9C0C3C8000000000000000 1E1F0F07010000000000000000000000 7636C6F0FF3F00000000000000000000 EDECE907FFFC00000000000000000000 78F8F0E0800000000000000000000000 1E1F0F07010000000000000000000000 7636C6F0FF3F00000000000000000000 EDECE907FFFC00000000000000000000 78F8F0E0800000000000000000000000 1E1F0F07010000000000000000000000 7636C6F0FF3F00000000000000000000 EDECE907FFFC00000000000000000000 78F8F0E0800000000000000000000000 1E1F0F07010000000000000000000000 7636C6F0FF3F00000000000000000000 EDECE907FFFC00000000000000000000 78F8F0E0800000000000000000000000 #5:MIDI FILE 4D546864000000060001000500604D54 726B0000002D00FF030B4D6567616C6F 76616E696100FF0208546F627920466F 7800FF58040402180800FF5902FF0100 FF2F004D54726B0000000B00FF510303 FB0600FF2F004D54726B000026B900B9 0A4000B9076900E9004000B9650000B9 640000B9060C00C90000B95B1300B940 00AD0099371F30893740309937303089 37403099374130893740309937523089 37403099395400992E31009924523089 244000892E4000893940309928520099 2E3130892E400089284030992E310099 24523089244000892E40309928510099 2E313089284000892E40009924513089 244000992E3130892E40009924513089 24400099285100992E3130892E400089 2840009924503089244000992E310099 24503089244000892E40309928500099 245000992E3130892E40008924400089 284030992E3100992452308924400089 2E403099285200992E3130892E400089 284030992E3100992452308924400089 2E4030992E310099285130892E400089 2840009924513089244000992E313089 2E40009924513089244000992E310099 28513089284000892E40009924503089 244000992E3100992450308924400089 2E4030992E3100992450009928503089 28400089244000892E4030992E310099 24523089244000892E4030992E310099 28523089284000892E4030992E310099 24523089244000892E4030992E310099 285130892E4000892840009924513089 244000992E3130892E40009924513089 244000992E3100992851308928400089 2E40009924503089244000992E310099 24503089244000892E4030992E310099 24500099285030892840008924400089 2E4030992E3100992452308924400089 2E4030992E3100992852308928400089 2E4030992E3100992452308924400089 2E40009928513089284000992E313089 2E400099245100992851308928400089 244000992E3130892E40009924513089 24400099285100992E3130892E400089 2840009924503089244000992E310099 2450009928513089284000892E400089 2440309928500099245000992E313089 2E400089244000892840309939520099 2E31009924523089244000892E400089 39403099285200992E3130892E400089 284030992E3100992452308924400089 2E403099285100992E31308928400089 2E40009924513089244000992E313089 2E400099245130892440009928510099 2E3130892E4000892840009924503089 244000992E3100992450308924400089 2E40309928500099245000992E313089 2E40008924400089284030992E310099 24523089244000892E40309928520099 2E3130892E400089284030992E310099 24523089244000892E4030992E310099 285130892E4000892840009924513089 244000992E3130892E40009924513089 244000992E3100992851308928400089 2E40009924503089244000992E310099 24503089244000892E4030992E310099 24500099285030892840008924400089 2E4030992E3100992452308924400089 2E403099285200992E3130892E400089 284030992E3100992452308924400089 2E403099285100992E31308928400089 2E40009924513089244000992E313089 2E400099245130892440009928510099 2E3130892E4000892840009924503089 244000992E3100992450308924400089 2E40309928500099245000992E313089 2E40008924400089284030992E310099 24523089244000892E40309928520099 2E3130892E400089284030992E310099 24523089244000892E40009928513089 284000992E3130892E40009924510099 2851308928400089244000992E313089 2E40009924513089244000992E310099 28513089284000892E40009924503089 244000992E3100992450009928513089 284000892E400089244030992E310099 24500099285030892840008924400089 2E4030992C3F00993952009924523089 24400089394000892C4000992C3F3089 2C40009928523089284000992C3F3089 2C4000992C3F00992452308924400089 2C4000992C3F30892C40009928513089 2840009924513089244000992C3F3089 2C400099245100992C3F30892C400089 2440009928513089284000992C3F0099 24503089244000892C4000992C3F0099 24503089244000892C4000992C3F3089 2C400099285000992450308924400089 28403099245200992C3F30892C400089 244000992C3F30892C40009928523089 284000992C3F30892C40009924520099 2C3F30892C400089244000992C3F3089 2C400099285130892840009924513089 244000992C3F30892C40009924510099 2C3F30892C4000892440009928513089 284000992C3F00992450308924400089 2C4000992C3F00992450308924400089 2C4000992C3F30892C40009924500099 2850308928400089244030992C3F0099 24523089244000892C4000992C3F3089 2C40009928523089284000992C3F3089 2C4000992C3F00992452308924400089 2C4000992C3F30892C40009928513089 2840009924513089244000992C3F3089 2C4000992C3F00992451308924400089 2C400099285130892840009924500099 2C3F30892C400089244000992C3F0099 24503089244000892C4000992C3F3089 2C400099285000992450308924400089 284030992C3F00992452308924400089 2C4000992C3F30892C40009928523089 284000992C3F30892C4000992C3F0099 24523089244000892C4000992C3F0099 28513089284000892C40309924510099 2851308928400089244000992C3F3089 2C400099395200992C3F009924513089 244000892C4000893940009928513089 28400099245000993153308931400089 244000992C3F00992851009924503089 24400089284000892C40009939520099 2C3F30892C4000992850009924500099 2C3F30892C4000893940008924400089 28403099395200992E31009924523089 244000892E400089394030992E310099 28523089284000892E4030992E310099 24523089244000892E4030992E310099 285130892E4000892840009924513089 244000992E3130892E40009924513089 244000992E3100992851308928400089 2E40009924503089244000992E310099 24503089244000892E4030992E310099 24500099285030892840008924400089 2E4030992E3100992452308924400089 2E4030992E3100992852308928400089 2E4030992E3100992452308924400089 2E403099285100992E31308928400089 2E40009924513089244000992E313089 2E400099245130892440009928510099 2E3130892E4000892840009924503089 244000992E3100992450308924400089 2E40309928500099245000992E313089 2E40008924400089284030992E310099 24523089244000892E4030992E310099 28523089284000892E4030992E310099 24523089244000892E4030992E310099 28513089284000892E40009924513089 244000992E3130892E40009924513089 244000992E3100992851308928400089 2E40009924503089244000992E310099 24503089244000892E4030992E310099 24500099285030892840008924400089 2E4030992E3100992452308924400089 2E4030992E3100992852308928400089 2E4030992E3100992452308924400089 2E40009928513089284000992E313089 2E400099245100992851308928400089 244000992E3130892E40009924510099 39523089394000892440009928510099 2E3130892E4000892840009931530099 2450308924400089314000992E310099 24500099285130892840008924400089 2E400099395230992850009924500099 2E313089394000892E40008924400089 28403099395200992E31009924520099 3952308939400089244000892E400089 394030992E3100992852308928400089 2E4030992E3100992452308924400089 2E4030992E310099285130892E400089 2840009924513089244000992E313089 2E40009924513089244000992E310099 28513089284000892E40009924503089 244000992E3100992450308924400089 2E4030992E3100992450009928503089 28400089244000892E4030992E310099 24523089244000892E4030992E310099 28523089284000892E4030992E310099 24523089244000892E40309928510099 2E313089284000892E40009924513089 244000992E3130892E40009924513089 24400099285100992E3130892E400089 2840009924503089244000992E310099 24503089244000892E40309928500099 245000992E3130892E40008924400089 284030992E3100992452308924400089 2E4030992E3100992852308928400089 2E4030992E3100992452308924400089 2E4030992E3100992851308928400089 2E40009924513089244000992E313089 2E40009924513089244000992E310099 28513089284000892E40009924503089 244000992E3100992450308924400089 2E4030992E3100992450009928503089 28400089244000892E4030992E310099 24523089244000892E4030992E310099 28523089284000892E4030992E310099 24523089244000892E40009928513089 284000992E3130892E40009924510099 2851308928400089244000992E313089 2E400099245100993952308939400089 24400099285100992E3130892E400089 28400099315300992450009928513089 2840008924400089314000992E310099 24503089244000892E40009928500099 39523089284000992850009924500099 2E313089394000892E40008924400089 2840309939520099395200992E310099 24520099395230893940008924400089 2E40008939400089394030992E310099 28523089284000892E40309924520099 2E3130892E4000892440309928510099 2E3130892E4000892840009924513089 244000992E3130892E40009924513089 24400099285100992E3130892E400089 28400099245030892440009924500099 2E3130892E400089244030992E310099 24500099285030892840008924400089 2E4030992E3100992452308924400089 2E4030992E3100992852308928400089 2E403099245200992E3130892E400089 244030992E310099285130892E400089 2840009924513089244000992E313089 2E40009924513089244000992E310099 28513089284000892E40009924503089 24400099245000992E3130892E400089 2440309928500099245000992E313089 2E40008924400089284030992E310099 24523089244000892E4030992E310099 28523089284000892E40309924520099 2E3130892E4000892440309928510099 2E313089284000892E40009924513089 244000992E3130892E40009924513089 24400099285100992E3130892E400089 28400099245030892440009924500099 2E3130892E4000892440309928500099 245000992E3130892E40008924400089 284030992E3100992452308924400089 2E4030992E3100992852308928400089 2E403099245200992E3130892E400089 2440009928513089284000992E313089 2E400099285100992451308924400089 284000992E3130892E40009939520099 2451308924400089394000992E310099 28513089284000892E40009928510099 24500099315330893140008924400089 28400099245000992E3130892E400089 24400099395200992850308928400099 28500099245000992E3130892E400089 39400089244000892840309939520099 2E310099245200993952009939523089 3940008939400089244000892E400089 394030992E3100992852308928400089 2E403099245200992E3130892E400089 24403099285100992E31308928400089 2E40009924513089244000992E313089 2E400099245130892440009928510099 2E3130892E4000892840009924503089 24400099245000992E3130892E400089 244030992E3100992450009928503089 28400089244000892E4030992E310099 24523089244000892E4030992E310099 28523089284000892E40309924520099 2E3130892E400089244030992E310099 285130892E4000892840009924513089 244000992E3130892E40009924513089 244000992E3100992851308928400089 2E400099245030892440009924500099 2E3130892E4000892440309928500099 245000992E3130892E40008924400089 284030992E3100992452308924400089 2E4030992E3100992852308928400089 2E403099245200992E3130892E400089 24403099285100992E3130892E400089 2840009924513089244000992E313089 2E400099245130892440009928510099 2E3130892E4000892840009924503089 24400099245000992E3130892E400089 2440309928500099245000992E313089 2E40008924400089284030992E310099 24523089244000892E4030992E310099 28523089284000892E40309924520099 2E3130892E4000892440009928513089 284000992E3130892E40009928510099 2451308924400089284000992E313089 2E400099395200992451308924400089 394000992E3100992851308928400089 2E400099285100992450009931533089 31400089244000892840009924500099 2E3130892E4000892440009939520099 28503089284000992850009924500099 2E3130892E4000893940008924400089 2840309939520099395200992E310099 24520099395230893940008924400089 2E400089394000893940309928520099 2E3130892E4000892840309924520099 2E3130892E400089244030992E310099 28513089284000892E40009924513089 244000992E3130892E40009924513089 244000992E3100992851308928400089 2E400099245030892440009924500099 2E3130892E4000892440309928500099 245000992E3130892E40008924400089 284030992E3100992452308924400089 2E403099285200992E3130892E400089 28403099245200992E3130892E400089 24403099285100992E31308928400089 2E40009924513089244000992E313089 2E400099245130892440009928510099 2E3130892E4000892840009924503089 24400099245000992E3130892E400089 244030992E3100992450009928503089 28400089244000892E4030992E310099 24523089244000892E40309928520099 2E3130892E4000892840309924520099 2E3130892E400089244030992E310099 285130892E4000892840009924513089 244000992E3130892E40009924513089 244000992E3100992851308928400089 2E400099245030892440009924500099 2E3130892E400089244030992E310099 24500099285030892840008924400089 2E4030992E3100992452308924400089 2E403099285200992E3130892E400089 28403099245200992E3130892E400089 2440009928513089284000992E313089 2E400099285100992451308924400089 284000992E3130892E40009939520099 24513089244000893940009928510099 2E3130892E4000892840009928510099 24500099315230893140008924400089 284000992E3100992450308924400089 2E400099395200992850308928400099 2E310099285000992450308924400089 39400089284000892E4030992C310099 24500099395230893940008924400089 2C4030992C3130892C4030992C310099 28503089284000892C4030992C313089 2C40009924503089244000992C313089 2C40009924503089244000992C313089 2C40009924503089244000992C310099 24500099285030892840008924400089 2C4030992C3130892C40009928503089 284000992C3100992450308924400089 2C4030992C3130892C4030992C310099 28503089284000892C4030992C313089 2C40009924503089244000992C313089 2C40009924503089244000992C313089 2C40009924503089244000992C310099 2450009928503089284000892C400089 244030992C3130892C40009928503089 284000992C3100992450308924400089 2C4030992C3130892C4030992C310099 28503089284000892C4030992C313089 2C40009924503089244000992C313089 2C40009924503089244000992C313089 2C40009924503089244000992C310099 2450009928503089284000892C400089 244030992C3130892C40009928503089 284000992C3100992450308924400089 2C4030992C3130892C4030992C310099 28503089284000892C4030992C313089 2C40009924503089244000992C313089 2C40009924503089244000992C313089 2C40009924503089244000992C310099 2450009928503089284000892C400089 244030992C3130892C40009928503089 284000992C3100992450308924400089 2C4030992C3130892C4030992C310099 28503089284000892C4030992C313089 2C40009924503089244000992C313089 2C40009924503089244000992C313089 2C40009924503089244000992C310099 24500099285030892840008924400089 2C4030992C3130892C40009928503089 284000992C3100992450308924400089 2C4030992C3130892C4030992C310099 28503089284000892C4030992C313089 2C40009924503089244000992C313089 2C40009924503089244000992C313089 2C40009924503089244000992C310099 2450009928503089284000892C400089 244030992C3130892C40009928503089 284000992C3100992450308924400089 2C4030992C3130892C40309928500099 2C3130892C400089284030992C313089 2C40009924503089244000992C313089 2C40009924503089244000992C313089 2C400099245030892440009928500099 245000992C3130892C40008928400089 244030992C3130892C40009928503089 284000992C3100992450308924400089 2C4030992C3130892C40309928500099 2C3130892C400089284030992C313089 2C40009924503089244000992C313089 2C40009924503089244000992C313089 2C400099245030892440009928500099 245000992C3130892C40008928400089 244030992C3130892C40009928503089 28400099245000992C31009937523089 374000892C400089244030992C313089 2C403099285000992C3130892C400089 284030992C3130892C40009924503089 244000992C3130892C40009924503089 244000992C3130892C40009924503089 2440009928500099245000992C313089 2C40008928400089244030992C313089 2C400099285030892840009924500099 2C3130892C400089244030992C313089 2C403099285000992C3130892C400089 284030992C3130892C40009924503089 244000992C3130892C40009924503089 244000992C3130892C40009924503089 2440009928500099245000992C313089 2C40008928400089244030992C313089 2C40009928503089284000992C310099 24503089244000892C4030992C313089 2C4030992C3100992850308928400089 2C4030992C3130892C40009924503089 244000992C3130892C40009924503089 244000992C3130892C40009924503089 2440009928500099245000992C313089 2C40008928400089244030992C313089 2C400099285030892840009924500099 2C3130892C400089244030992C313089 2C403099285000992C3130892C400089 284030992C3130892C40009924503089 244000992C3130892C40009924503089 244000992C3130892C40009924503089 2440009928500099245000992C313089 2C40008928400089244030992C313089 2C400099285030892840009924500099 2C3130892C400089244030992C313089 2C403099285000992C3130892C400089 284030992C3130892C40009924503089 244000992C3130892C40009924503089 244000992C3130892C40009924503089 2440009928500099245000992C313089 2C40008928400089244030992C313089 2C400099285030892840009924500099 2C3130892C400089244030992C313089 2C403099285000992C3130892C400089 284030992C3130892C40009924503089 244000992C3130892C40009924503089 244000992C3130892C40009924503089 2440009928500099245000992C313089 2C40008928400089244030992C313089 2C400099285030892840893099395230 89394030993151308931403099395260 8939403099395200992E310099245230 89244000892E40008939403099285200 992E3130892E400089284030992E3100 9924523089244000892E403099285100 992E313089284000892E400099245130 89244000992E3130892E400099245130 8924400099285100992E3130892E4000 892840009924503089244000992E3100 9924503089244000892E403099285000 99245000992E3130892E400089244000 89284030992E31009924523089244000 892E403099285200992E3130892E4000 89284030992E31009924523089244000 892E4030992E310099285130892E4000 892840009924513089244000992E3130 892E40009924513089244000992E3100 9928513089284000892E400099245030 89244000992E31009924503089244000 892E4030992E31009924500099285030 8928400089244000892E4030992E3100 9924523089244000892E403099285200 992E3130892E400089284030992E3100 9924523089244000892E403099285100 992E313089284000892E400099245130 89244000992E3130892E400099245130 8924400099285100992E3130892E4000 892840009924503089244000992E3100 9924503089244000892E403099285000 99245000992E3130892E400089244000 89284030992E31009924523089244000 892E403099285200992E3130892E4000 89284030992E31009924523089244000 892E40009928513089284000992E3130 892E4000992451009928513089284000 89244000992E3130892E400099395200 992451308924400089394000992E3100 9928513089284000892E400099315100 992450308924400089314000992E3100 99245000992851308928400089244000 892E400099395230992E310099245000 99285030893940008928400089244000 892E403099395200992E310099245200 993952308939400089244000892E4000 8939403099285200992E3130892E4000 89284030992E31009924523089244000 892E403099285100992E313089284000 892E40009924513089244000992E3130 892E4000992451308924400099285100 992E3130892E40008928400099245030 89244000992E31009924503089244000 892E40309928500099245000992E3130 892E40008924400089284030992E3100 9924523089244000892E403099285200 992E3130892E400089284030992E3100 9924523089244000892E4030992E3100 99285130892E40008928400099245130 89244000992E3130892E400099245130 89244000992E31009928513089284000 892E40009924503089244000992E3100 9924503089244000892E4030992E3100 99245000992850308928400089244000 892E4030992E31009924523089244000 892E403099285200992E3130892E4000 89284030992E31009924523089244000 892E403099285100992E313089284000 892E40009924513089244000992E3130 892E4000992451308924400099285100 992E3130892E40008928400099245030 89244000992E31009924503089244000 892E40309928500099245000992E3130 892E40008924400089284030992E3100 9924523089244000892E403099285200 992E3130892E400089284030992E3100 9924523089244000892E400099285130 89284000992E3130892E400099245100 992851308928400089244000992E3130 892E4000993952009924513089244000 89394000992E31009928513089284000 892E4000993151009924500099285130 892840008924400089314000992E3100 9924503089244000892E400099395200 9928503089284000992E310099245000 99285030892840008939400089244000 892E403099395200992E310099245230 89244000892E400089394030992E3100 9928523089284000892E4030992E3100 9924523089244000892E4030992E3100 99285130892E40008928400099245130 89244000992E3130892E400099245130 89244000992E31009928513089284000 892E40009924503089244000992E3100 9924503089244000892E4030992E3100 99245000992850308928400089244000 892E4030992E31009924523089244000 892E4030992E31009928523089284000 892E4030992E31009924523089244000 892E403099285100992E313089284000 892E40009924513089244000992E3130 892E4000992451308924400099285100 992E3130892E40008928400099245030 89244000992E31009924503089244000 892E40309928500099245000992E3130 892E40008924400089284030992E3100 9924523089244000892E4030992E3100 9928523089284000892E4030992E3100 9924523089244000892E4030992E3100 99285130892E40008928400099245130 89244000992E3130892E400099245130 89244000992E31009928513089284000 892E40009924503089244000992E3100 9924503089244000892E4030992E3100 99245000992850308928400089244000 892E4030992E31009924523089244000 892E4030992E31009928523089284000 892E4030992E31009924523089244000 892E40009928513089284000992E3130 892E4000992451009928513089284000 89244000992E3130892E400099245100 99395230893940008924400099285100 992E3130892E40008928400099315100 992450308924400089314000992E3100 99245000992851308928400089244000 892E4000993952309928500099245000 992E313089394000892E400089244000 8928403099395200992E310099245200 993952308939400089244000892E4000 89394030992E31009928523089284000 892E4030992E31009924523089244000 892E4030992E310099285130892E4000 892840009924513089244000992E3130 892E40009924513089244000992E3100 9928513089284000892E400099245030 89244000992E31009924503089244000 892E4030992E31009924500099285030 8928400089244000892E4030992E3100 9924523089244000892E4030992E3100 9928523089284000892E4030992E3100 9924523089244000892E403099285100 992E313089284000892E400099245130 89244000992E3130892E400099245130 8924400099285100992E3130892E4000 892840009924503089244000992E3100 9924503089244000892E403099285000 99245000992E3130892E400089244000 89284030992E31009924523089244000 892E4030992E31009928523089284000 892E4030992E31009924523089244000 892E4030992E310099285130892E4000 892840009924513089244000992E3130 892E40009924513089244000992E3100 9928513089284000892E400099245030 89244000992E31009924503089244000 892E4030992E31009924500099285030 8928400089244000892E4030992E3100 9924523089244000892E4030992E3100 9928523089284000892E4030992E3100 9924523089244000892E400099285130 89284000992E3130892E400099245100 992851308928400089244000992E3130 892E4000992451009939523089394000 8924400099285100992E3130892E4000 89284000993151009924500099285130 892840008924400089314000992E3100 9924503089244000892E400099285000 99395230892840009928500099245000 992E313089394000892E400089244000 89284000FF2F004D54726B0000194500 B00A3300B0076400E0004000B0650000 B0640000B0060C00C00000B05B3000B0 400000903E5130803E0000903E523080 3E0000904A5260804A00009045528110 80450000904452608044000090435260 804300009041526080410000903E5230 803E0000904152308041000090435230 80430000903C5230803C0000903C5230 803C0000904A5260804A000090455281 10804500009044526080440000904352 60804300009041526080410000903E52 30803E00009041523080410000904352 3080430000903B5230803B0000903B52 30803B0000904A5260804A0000904552 81108045000090445260804400009043 5260804300009041526080410000903E 5230803E000090415230804100009043 523080430000903A5230803A0000903A 5230803A0000904A5260804A00009045 52811080450000904452608044000090 43526080430000904152608041000090 3E5230803E0000904152308041000090 43523080430000903E5230803E000090 3E5230803E0000904A5260804A000090 45528110804500009044526080440000 90435260804300009041526080410000 903E5230803E00009041523080410000 9043523080430000903C5230803C0000 903C5230803C0000904A5260804A0000 90455281108045000090445260804400 00904352608043000090415260804100 00903E5230803E000090415230804100 009043523080430000903B5230803B00 00903B5230803B0000904A5260804A00 00904552811080450000904452608044 00009043526080430000904152608041 0000903E5230803E0000904152308041 00009043523080430000903A5230803A 0000903A5230803A0000904A5260804A 00009045528110804500009044526080 44000090435260804300009041526080 410000903E5230803E00009041523080 4100009043523080430000904A5C3080 4A0000904A5C30804A000090565C6080 56000090515C81108051000090505C60 80500000904F5C60804F0000904D5C60 804D0000904A5C30804A0000904D5C30 804D0000904F5C30804F000090485C30 8048000090485C308048000090565C60 8056000090515C81108051000090505C 6080500000904F5C60804F0000904D5C 60804D0000904A5C30804A0000904D5C 30804D0000904F5C30804F000090475C 308047000090475C308047000090565C 608056000090515C8110805100009050 5C6080500000904F5C60804F0000904D 5C60804D0000904A5C30804A0000904D 5C30804D0000904F5C30804F00009046 5C308046000090465C30804600009056 5C608056000090515C81108051000090 505C6080500000904F5C60804F000090 4D5C60804D0000904A5C30804A000090 4D5C30804D0000904F5C30804F000090 4A5C30804A0000904A5C30804A000090 565C608056000090515C811080510000 90505C6080500000904F5C60804F0000 904D5C60804D0000904A5C30804A0000 904D5C30804D0000904F5C30804F0000 90485C308048000090485C3080480000 90565C608056000090515C8110805100 0090505C6080500000904F5C60804F00 00904D5C60804D0000904A5C30804A00 00904D5C30804D0000904F5C30804F00 0090475C308047000090475C30804700 0090565C608056000090515C81108051 000090505C6080500000904F5C60804F 0000904D5C60804D0000904A5C30804A 0000904D5C30804D0000904F5C30804F 000090465C308046000090465C308046 000090565C608056000090515C811080 51000090505C6080500000904F5C6080 4F0000904D5C60804D0000904A5C3080 4A0000904D5C30804D0000904F5C3080 4F0000904D5C30804D0030904D5C3080 4D0000904D5C60804D0000904D5C6080 4D0000904D5C60804D0000904A5C6080 4A0000904A5C8170804A0000904D5C60 804D0000904D5C30804D0000904D5C60 804D0000904F5C60804F000090505C60 80500000904F5C30804F0000904D5C30 804D0000904A5C30804A0000904D5C30 804D0000904F5C8110804F0000904D5C 30804D0030904D5C30804D0000904D5C 60804D0000904F5C60804F000090505C 608050000090515C608051000090545C 308054003090515C8110805100009056 5C608056000090565C60805600009056 5C308056000090515C30805100009056 5C308056000090545C83308054000090 4D5C0090515C30804D00008051003090 515C00904D5C3080510000804D000090 4D5C0090515C6080510000804D000090 4D5C0090515C6080510000804D000090 4D5C0090515C6080510000804D000090 4A5C00904F5C60804F0000804A000090 4A5C00904F5C8170804F0000804A0000 90515C00904D5C30804D000080510030 90515C00904D5C3080510000804D0000 904D5C0090515C6080510000804D0000 904D5C0090515C6080510000804D0000 904A5C00904F5C60804F0000804A0000 904D5C0090515C6080510000804D0000 90515C0090565C608056000080510000 904D5C0090515C3080510000804D0000 904F5C00904A5C60804F0000804A0000 90565C00904D5C60804D000080560000 90515C00904D5C60804D000080510000 904F5C00904A5C60804A0000804F0000 904D5C00904A5C60804A0000804D0000 904D5C0090545C6080540000804D0000 904D5C00904F5C60804D0000804F0000 904A5C00904D5C60804A0000804D0000 904A5C00904C5C60804C0000804A0000 90465C608046000090485C3080480000 904A5C30804A0030904D5C0090465C60 80460000804D000090485C00904C5C00 90545C833080540000804C0000804800 8300904D5C30804D0000904A5C30804A 0000904D5C30804D0000904F5C30804F 000090505C3080500000904F5C30804F 0000904D5C30804D0000904A5C30804A 000090505C1880500000904F5C18804F 0000904D5C18804D0000904A5C18804A 0000904D5C30804D0030904F5C009048 5C830080480000804F003090505C6080 50000090515C308051000090545C3080 54003090515C308051000090505C3080 500000904F5C30804F0000904D5C3080 4D0000904A5C30804A0000904C5C3080 4C0000904D5C60804D0000904F5C6080 4F000090515C608051000090545C6080 54000090555C0090495C608055000080 49000090505C608050000090505C3080 500000904F5C30804F0000904D5C3080 4D0000904F5C00904B5C8330804B0000 804F000090415C608041000090435C60 8043000090415C0090455C6080450000 80410000904D5C60804D000090485C00 904C5C8140804C00008048000090455C 00904A5C814080450000804A0000904C 5C0090435C814080430000804C000090 455C00904D5C8140804D000080450000 90485C00904F5C8140804F0000804800 0090455C00904C5C814080450000804C 000090515C00904A5C8300804A000080 51000090515C308051000090505C3080 500000904F5C30804F0000904E5C3080 4E0000904D5C30804D0000904C5C3080 4C0000904B5C30804B0000904A5C3080 4A000090495C0090445C825080490000 8044000090465C00904B5C8330804B00 008046008300904D5C30804D0000904A 5C30804A0000904D5C30804D0000904F 5C30804F000090505C3080500000904F 5C30804F0000904D5C30804D0000904A 5C30804A000090505C1880500000904F 5C18804F0000904D5C18804D0000904A 5C18804A0000904D5C30804D0030904F 5C0090485C8300804F00008048003090 505C608050000090515C308051000090 545C308054003090515C308051000090 505C3080500000904F5C30804F000090 4D5C30804D0000904A5C30804A000090 4C5C30804C0000904D5C60804D000090 4F5C60804F000090515C608051000090 545C608054000090555C0090495C6080 4900008055000090505C608050000090 505C3080500000904F5C30804F000090 4D5C30804D0000904F5C00904B5C8330 804B0000804F000090415C6080410000 90435C608043000090415C0090455C60 8045000080410000904D5C60804D0000 90485C00904C5C8140804C0000804800 0090455C00904A5C814080450000804A 0000904C5C0090435C81408043000080 4C000090455C00904D5C8140804D0000 8045000090485C00904F5C8140804F00 008048000090455C00904C5C81408045 0000804C000090515C00904A5C830080 4A00008051000090515C308051000090 505C3080500000904F5C30804F000090 4E5C30804E0000904D5C30804D000090 4C5C30804C0000904B5C30804B000090 4A5C30804A000090495C0090445C8250 804400008049000090465C00904B5C83 3080460000804B0000903A688440803A 00009041688140804100009040688300 80400000903E688300803E0000904168 86008041008600903A688440803A0000 90416881408041000090406883008040 0000903E688300803E0000903E688600 803E008600903E6830803E0000903E68 30803E0000904A6860804A0000904568 81108045000090446860804400009043 6860804300009041686080410000903E 6830803E000090416830804100009043 683080430000903C6830803C0000903C 6830803C0000904A6860804A00009045 68811080450000904468608044000090 43686080430000904168608041000090 3E6830803E0000904168308041000090 43683080430000903B6830803B000090 3B6830803B0000904A6860804A000090 45688110804500009044686080440000 90436860804300009041686080410000 903E6830803E00009041683080410000 9043683080430000903B6830803B0000 903B6830803B0000904A6860804A0000 90456881108045000090446860804400 00904368608043000090416860804100 00903E6830803E000090416830804100 009043683080430000903E6830803E00 00903E6830803E0000904A6860804A00 00904568811080450000904468608044 00009043686080430000904168608041 0000903E6830803E0000904168308041 00009043683080430000903C6830803C 0000903C6830803C0000904A6860804A 00009045688110804500009044686080 44000090436860804300009041686080 410000903E6830803E00009041683080 4100009043683080430060904A680090 4D6848804A0018804D00009045680090 4C6830804C0000804500609044680090 48686080440000804800009043680090 4C6830804C0000804300309041680090 4A686080410000804A0000903C680090 45683080450000803C00009040680090 4868308048000080400000904A680090 41683080410000804A0060904A680090 4D6848804A0018804D0000904C680090 45683080450000804C00609044680090 4868608044000080480000904C680090 43683080430000804C00309041680090 4A686080410000804A00009045680090 3C6830803C0000804500009040680090 48683080480000804000009041680090 4A6830804A0000804100009046550090 41556080460000804100009041570090 46576080460000804100009046570090 41573080410000804600009046570090 41576080410000804600009041570090 46576080460000804100009046570090 41576080410000804600009041570090 46576080460000804100009046570090 41573080410000804600009041570090 46576080410000804600009048570090 43576080430000804800009043570090 48576080480000804300009048570090 43573080430000804800009048570090 43576080430000804800009043570090 48576080480000804300009048570090 43576080430000804800009043570090 48576080480000804300009048570090 43573080430000804800009043570090 4857608043000080480000904A570090 45576080450000804A00009045570090 4A5760804A000080450000904A570090 45573080450000804A0000904A570090 45576080450000804A00009044570090 49576080490000804400009049570090 44576080440000804900009044570090 49576080490000804400009049570090 44573080440000804900009044570090 49576080440000804900009048570090 43576080430000804800009043570090 48576080480000804300009048570090 43573080430000804800009048570090 43576080430000804800009043570090 47576080470000804300009047570090 43576080430000804700009043570090 47576080470000804300009047570090 43573080430000804700009043570090 47576080430000804700009046570090 41576080410000804600009041570090 46576080460000804100009046570090 41573080410000804600009046570090 41576080410000804600009041570090 46576080460000804100009046570090 41576080410000804600009041570090 46576080460000804100009046570090 41573080410000804600009041570090 46576080410000804600009048570090 43576080430000804800009043570090 48576080480000804300009048570090 43573080430000804800009048570090 43576080430000804800009043570090 48576080480000804300009048570090 43576080430000804800009043570090 48576080480000804300009048570090 43573080430000804800009043570090 4857608043000080480000904A570090 45576080450000804A00009045570090 4A5760804A000080450000904A570090 45573080450000804A0000904A570090 45576080450000804A00009045570090 4A5760804A000080450000904A570090 45576080450000804A00009045570090 4A5760804A000080450000904A570090 45573080450000804A00009045570090 4A576080450000804A0000904A560090 45566080450000804A00009045560090 4A5660804A000080450000904A560090 45563080450000804A0000904A560090 45566080450000804A00009045560090 4A5660804A000080450000904A560090 45566080450000804A00009045560090 4A5660804A000080450000904A560090 45563080450000804A00009045560090 4A566080450000804A00009046560090 41566080460000804100009041560090 46566080460000804100009046560090 41563080410000804600009046560090 41566080410000804600009041560090 46566080460000804100009046560090 41566080410000804600009041560090 46566080460000804100009046560090 41563080410000804600009041560090 46566080410000804600009048560090 43566080430000804800009043560090 48566080480000804300009048560090 43563080430000804800009048560090 43566080430000804800009043560090 48566080480000804300009048560090 43566080430000804800009043560090 48566080480000804300009048560090 43563080430000804800009043560090 4856608043000080480000904A560090 45566080450000804A00009045560090 4A5660804A000080450000904A560090 45563080450000804A0000904A560090 45566080450000804A00009044560090 49566080490000804400009049560090 44566080440000804900009044560090 49566080490000804400009049560090 44563080440000804900009044560090 49566080440000804900009048560090 43566080430000804800009043560090 48566080480000804300009048560090 43563080430000804800009048560090 43566080430000804800009043560090 47566080470000804300009047560090 43566080430000804700009043560090 47566080470000804300009047560090 43563080430000804700009043560090 47566080430000804700009046560090 41566080410000804600009041560090 46566080460000804100009046560090 41563080410000804600009046560090 41566080410000804600009041560090 46566080460000804100009046560090 41566080410000804600009041560090 46566080460000804100009046560090 41563080410000804600009041560090 46566080410000804600009048560090 43566080430000804800009043560090 48566080480000804300009048560090 43563080430000804800009048560090 43566080430000804800009043560090 48566080480000804300009048560090 43566080430000804800009043560090 48566080480000804300009048570090 43573080430000804800009043570090 4857608043000080480000903E573080 3E0000903E5730803E0000904A576080 4A000090455781108045000090445760 80440000904357608043000090415760 80410000903E5730803E000090415730 804100009043573080430000903E5730 803E0000903E5730803E0000904A5760 804A0000904557811080450000904457 60804400009043576080430000904157 6080410000903E5730803E0000904157 30804100009043573080430000903A57 30803A0000903A5730803A0000904A57 60804A00009045578110804500009044 57608044000090435760804300009041 576080410000903E5730803E00009041 5730804100009043573080430000903C 5730803C0000903C5730803C0000904A 5760804A000090455781108045000090 44576080440000904357608043000090 41576080410000903E5730803E000090 41573080410000904357308043000090 3E5730803E0000903E5730803E000090 4A5760804A0000904557811080450000 90445760804400009043576080430000 9041576080410000903E5730803E0000 90415730804100009043573080430000 903E5730803E0000903E5730803E0000 904A5760804A00009045588110804500 00904458608044000090435860804300 009041586080410000903E5830803E00 00904158308041000090435830804300 00FF2F004D54726B000024DA00B10A33 00B1076400E1004000B1650000B16400 00B1060C00C10000B15B3000B1400098 00913245608132000091325060813200 0091324C308132000091324C60813200 0091324B608132000091324A60813200 0091324D608132000091324C30813200 0091324F608132000091304A60813000 0091304C608130000091304A30813000 0091304B608130000091304A60813000 00913049608130000091304A60813000 00913046308130000091304B60813000 00912F4B60812F0000912F4960812F00 00912F4D30812F0000912F4D60812F00 00912F4F60812F0000912F4C60812F00 00912F4C60812F0000912F4C30812F00 00912F4C60812F0000912E4960812E00 00912E4C60812E0000912E4A30812E00 00912E4860812E000091304B60813000 0091304E608130000091304A60813000 0091304B308130000091304B60813000 00912652009132526081320000812600 0091324C0091264C6081260000813200 0091324F0091264F3081320000812600 0091264F0091324F6081320000812600 00912649009132496081320000812600 0091324B0091264B6081260000813200 00912649009132496081320000812600 0091264E0091324E3081320000812600 0091264A0091324A6081320000812600 00913049009124496081240000813000 0091304A0091244A6081240000813000 00913050009124503081300000812400 00912450009130506081300000812400 0091304D0091244D6081240000813000 0091244E0091304E6081300000812400 0091304E0091244E6081240000813000 0091244D0091304D3081300000812400 0091304B0091244B6081240000813000 0091234D00912F4D60812F0000812300 0091234D00912F4D60812F0000812300 0091234A00912F4A3081230000812F00 0091234C00912F4C60812F0000812300 0091234900912F4960812F0000812300 0091234D00912F4D60812F0000812300 0091234B00912F4B60812F0000812300 0091234E00912F4E30812F0000812300 0091235000912F5060812F0000812300 0091224D00912E4D60812E0000812200 0091224C00912E4C60812E0000812200 0091224800912E483081220000812E00 0091224C00912E4C60812E0000812200 00912448009130486081240000813000 0091244A0091304A6081300000812400 0091244F0091304F6081300000812400 0091244F0091304F3081300000812400 0091244D0091304D6081300000812400 0091264A0091324A6081320000812600 00912649009132496081320000812600 00912653009132533081260000813200 0091264B0091324B6081320000812600 0091264C0091324C6081320000812600 0091264C0091324C6081320000812600 00912651009132516081320000812600 0091264D0091324D3081320000812600 00912649009132496081320000812600 00912449009130496081300000812400 0091244E0091304E6081300000812400 0091244E0091304E3081240000813000 0091244A0091304A6081300000812400 0091244E0091304E6081300000812400 0091244F0091304F6081300000812400 0091244B0091304B6081300000812400 0091244D0091304D3081300000812400 0091244B0091304B6081300000812400 0091234700912F4760812F0000812300 0091234F00912F4F60812F0000812300 0091234B00912F4B3081230000812F00 00912F4D0091234D6081230000812F00 0091234E00912F4E60812F0000812300 00912F4B0091234B6081230000812F00 0091234900912F4960812F0000812300 00912F4A0091234A3081230000812F00 0091234C00912F4C60812F0000812300 0091224F00912E4F60812E0000812200 0091224B00912E4B60812E0000812200 0091224B00912E4B3081220000812E00 00912E4D0091224D6081220000812E00 00912451009130516081240000813000 0091304B0091244B6081240000813000 0091244F0091304F6081300000812400 0091304F0091244F3081240000813000 00912450009130506081300000812400 00913953009132536081320000813900 0091324D0091394D6081390000813200 0091394A0091324A3081320000813900 00913250009139506081390000813200 00913251009139516081390000813200 0091394C0091324C6081390000813200