controls: p = right, o = left, space = jump
Loading ZX Spectrum...
source code bellow can be loaded into SPIN emulator:
; ============================================================ ; Hero sprite animation & main game loop ; ============================================================ ; IYL - animation frame counter ; IX - points to current sprite frame data ; ============================================================ org 33000 ; ---------------------------------------------------------- ; Constants ; ---------------------------------------------------------- hero_color EQU %01000101 ; flash-no, bright-on, black paper, cyan ink anim_frames EQU 8 ; total frames of animation for hero sprite_attrs EQU 44000 ; memory location for sprite attribute byte ; ---------------------------------------------------------- ; Initialisation ; ---------------------------------------------------------- ; --- Load full-screen background art --- ld hl, background ; source: background data ld de, 16384 ; dest: screen memory ld bc, 6912 ; length: pixel + attribute bytes ldir ; --- Set up hero sprite --- ld ix, sprite ; point to first animation frame ld a, %00001001 ; sprite attributes: ; bit 0-2: animation frame (unused) ; bit 3: direction (0=left, 1=right) ; bit 4: moving ; bit 5: in-air ld (sprite_attrs), a ld iyl, anim_frames ; initialise frame counter call reverse_hero_sprites ; generate mirror-image frames ; --- Set starting coordinates --- ld b, 144 ; y-coordinate (pixels) ld c, 3 ; x-coordinate (pixels) ld a, b ld (sprite_y), a ld a, c ld (sprite_x), a ; --- Save background under hero, then draw --- call Get_Pix_Address_DE ; compute screen address from x,y call save_sprite_bg ; store background pixels to buffer call draw_sprite ; render hero dec iyl ; ---------------------------------------------------------- ; Main loop ; ---------------------------------------------------------- main call gravity call key_scan ; --- Redraw? (moving horizontally OR y changed) --- ld a, (sprite_attrs) bit 4, a jp nz, do_draw ld a, (sprite_attrs) bit 5, a jp z, no_move ; grounded & not moving › skip draw do_draw call save_sprite_bg call draw_sprite halt ; --- Animate only if walking (bit 4), not just airborne --- ld a, (sprite_attrs) bit 4, a jp z, skip_anim res 4, a ; clear "moving" flag ld (sprite_attrs), a dec iyl call z, reset_sprite ; wrap to frame 0 if underflow jp no_move ; --- Stationary: point to correct idle frame by direction --- skip_anim ld a, (sprite_attrs) bit 3, a jp nz, skip_right ld ix, sprite + 576 + 72 ; 3rd frame, left direction jp skip_done skip_right ld ix, sprite + 72 ; 3rd frame, right direction skip_done res 4, a ld (sprite_attrs), a no_move jp main ; ---------------------------------------------------------- ; Unreachable return (kept for completeness) ; ---------------------------------------------------------- ret ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;; routines below ;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; gravity ld a, (44000) bit 5, a ; in-air? jp z, no_jump ld a, (45000) ; load jump timer cp 0 jp z, land_jump cp 26 ; >26 = going up, <=26 = coming down jp nc, jump_up jump_down call clr_sprite call restore_sprite_bg ld a, (sprite_y) inc a ; y++ (move down) ld (sprite_y), a ld a, (45000) dec a ; timer-- jp store_jump_vel jump_up call clr_sprite call restore_sprite_bg ld a, (sprite_y) dec a ; y-- (move up) ld (sprite_y), a ld a, (45000) dec a ; timer-- jp store_jump_vel store_jump_vel ld (45000), a jp no_jump land_jump ld a, (44000) res 5, a ; clear in-air flag ld (44000), a no_jump ret key_scan ;now we scan the keyboard for 'space' 'P' and 'O' keys scan_space ld a, (44000) bit 5, a jp nz, scan_p ; already in-air, ignore ld bc, 0x7FFE ; B=0xDF (Row 5), C=0xFE (Port) in a, (c) ; Read column states and %00000001 ; Mask bit 2 ONLY (Column 2 = I key) jp nz, scan_p ; Jump if space is pressed (bit is 0) ; i_pressed jp space_pressed scan_p ld bc, 0xDFFE ; detect P in a, (c) and 1 jp nz, scan_o ;p_pressed jp p_pressed scan_o ld bc, 0xDFFE ; detect O in a, (c) and 2 jp nz, end_key_scan ; o_pressed jp o_pressed space_pressed call clr_sprite call restore_sprite_bg ld a, (44000) bit 5, a jp nz, end_key_scan ; already in-air, ignore set 5, a ld (44000), a ld a, 50 ;height of jump ld (45000), a jp end_key_scan end_key_scan ;update x and y coordinates ret p_pressed ld a, (44000) bit 5, a jp nz, p_skip_erase call clr_sprite call restore_sprite_bg p_skip_erase ; was facing left? need to turn ld a, (44000) bit 3, a jp nz, no_turn_r turn_right ld a, iyl cp 3 jp z, right_turn_adjustX cp 4 jp z, right_turn_adjustX cp 5 jp z, right_turn_adjustX jp right_turn_no_adjustX right_turn_adjustX ld a, (sprite_x) inc a inc a inc a inc a ld (sprite_x), a jp right_turn_no_adjustX right_turn_no_adjustX ld iyl, 1 ld a, (sprite_x) add a, 7 and %11111000 sub 7 ld (sprite_x), a ; set direction to right ld a, (44000) set 3, a ld (44000), a jp p_done no_turn_r p_done ld a, (sprite_x) inc a ld (sprite_x), a ld a, (44000) set 4, a ld (44000), a jp scan_o o_pressed ld a, (44000) bit 5, a jp nz, o_skip_erase ; in-air: gravity already erased call clr_sprite call restore_sprite_bg o_skip_erase ; was facing right? need to turn ld a, (44000) bit 3, a jp z, no_turn_l turn_left ; certain frames require x-coordinate adjustment ld a, iyl cp 3 jp z, left_turn_adjustX cp 4 jp z, left_turn_adjustX cp 5 jp z, left_turn_adjustX jp left_turn_no_adjustX left_turn_adjustX ld a, (sprite_x) dec a dec a dec a dec a ld (sprite_x), a jp left_turn_no_adjustX left_turn_no_adjustX ; align to x-grid ld a, (sprite_x) add a, 8 ld (sprite_x), a ld iyl, 1 ld a, (sprite_x) sub 6 and %11111000 add a, 6 ld (sprite_x), a ; set direction to left ld a, (44000) res 3, a ld (44000), a jp o_done no_turn_l o_done ld a, (sprite_x) dec a ld (sprite_x), a ld a, (44000) set 4, a ld (44000), a jp end_key_scan draw_sprite ld a, (44000) bit 3, a jp nz, use_right ld a, iyl jp z, frame_offset ld ix, sprite + 576 jp frame_offset use_right frame_offset ld a, iyl add a, a ; multiply by 2 (defw entries are 2 bytes) ld hl, frame_off add a, l ld l, a inc a jp c, no_carry inc h no_carry ld e, (hl) inc h ld d, (hl) add ix, de ld a, (sprite_y) ld b, a ld a, (sprite_x) ld c, a ld h, 8 ld a, (44000) bit 3, a jp nz, draw_right call loop_24x24_reverse call apply_attributes inc d ld h, 8 call loop_24x24_reverse call apply_attributes inc d ld h, 8 call loop_24x24_reverse call apply_attributes jp rows_done draw_right call loop_24x24 call apply_attributes inc d ld h, 8 call loop_24x24 call apply_attributes inc d ld h, 8 call loop_24x24 call apply_attributes jp rows_done rows_done ret reset_sprite ld a, $10 ; beeper ON out (254), a ld b, 80 ; duration beep_d djnz beep_d ld a, 0 ; beeper OFF out (254), a ld a, (44000) bit 3, a jp nz, reset_right ld ix, sprite + 576 jp reset_done reset_right ld ix, sprite reset_done ld iyl, anim_frames ret loop_24x24 call Get_Pix_Address_DE push hl push bc ex de, hl ; for masking we must use HL instead of DE ; --- first column bytes --- ld a, (ix+0) sla a cpl and (hl) ld (hl), a ld a, (ix+0) sra a cpl and (hl) ld (hl), a ld a, (ix+0) or (hl) ld (hl), a inc l ; --- second column bytes --- ld a, (ix+1) sla a cpl and (hl) ld (hl), a ld a, (ix+1) sra a cpl and (hl) ld (hl), a ld a, (ix+1) or (hl) ld (hl), a inc l ; --- third column bytes --- ld a, (ix+2) sla a cpl and (hl) ld (hl), a ld a, (ix+2) sra a cpl and (hl) ld (hl), a ld a, (ix+2) or (hl) ld (hl), a inc l ; --- Advance IX --- inc ix inc ix inc ix pop bc inc b pop hl dec h jp nz, loop_24x24 ret loop_24x24_reverse call Get_Pix_Address_DE push hl push bc ex de, hl ; --- first column (ix+2) --- ld a, (ix+2) sla a cpl and (hl) ld (hl), a ld a, (ix+2) sra a cpl and (hl) ld (hl), a ld a, (ix+2) or (hl) ld (hl), a inc l ; --- second column (ix+1) --- ld a, (ix+1) sla a cpl and (hl) ld (hl), a ld a, (ix+1) sra a cpl and (hl) ld (hl), a ld a, (ix+1) or (hl) ld (hl), a inc l ; --- third column (ix+0) --- ld a, (ix+0) sla a cpl and (hl) ld (hl), a ld a, (ix+0) sra a cpl and (hl) ld (hl), a ld a, (ix+0) or (hl) ld (hl), a inc l ; --- Advance IX --- inc ix inc ix inc ix pop bc inc b pop hl dec h jp nz, loop_24x24_reverse ret apply_attributes ; per row for character push de push hl push bc call get_attr_addr pop bc ; --- load characters with attribute values --- ld a, hero_color ld (de), a ; first 8x8 of row inc e ld (de), a ; second 8x8 of row inc e ld (de), a ; third 8x8 of row pop hl ; restore HL pop de ret clr_sprite ld a, (sprite_y) ld b, a ld a, (sprite_x) ld c, a ld h, 8 ; set counter call loop_clr inc d ld h, 8 ; set counter call loop_clr inc d ld h, 8 ; set counter call loop_clr ret loop_clr call Get_Pix_Address_DE ld a, 0 ld (de), a inc e ld (de), a inc e ld (de), a inc b dec h jp nz, loop_clr ret save_sprite_bg ld a, (sprite_y) ld b, a ld a, (sprite_x) ld c, a push bc push ix ld ix, sprite_bg_addr ld h, 8 call save_sprite_bg_loop ld h, 8 inc d dec e dec e dec e call save_sprite_bg_loop ld h, 8 inc d dec e dec e dec e call save_sprite_bg_loop ; --- save sprite background attributes --- push bc push hl ld a, b sub 16 ld b, a call get_attr_addr ld hl, 37000 ; --- row 1 --- ld a, (de) ; save 1st row ld (hl), a inc e inc l ld a, (de) ld (hl), a inc e inc l ld a, (de) ld (hl), a inc l ld a, e add a, 30 ; jump to 2nd row ld e, a ; --- row 2 --- ld a, (de) ; save 2nd row ld (hl), a inc l inc e ld a, (de) ld (hl), a inc l inc e ld a, (de) ld (hl), a inc l ld a, e add a, 30 ; jump to 3rd row ld e, a ; --- row 3 --- ld a, (de) ; save ld (hl), a inc l inc e ld a, (de) ld (hl), a inc l inc e ld a, (de) ld (hl), a inc l ld a, e add a, 30 ; jump to 4th row ld e, a ; --- row 4 --- ld a, (de) ; save ld (hl), a inc l inc e ld a, (de) ld (hl), a inc l inc e ld a, (de) ld (hl), a pop hl pop bc pop ix pop bc ret save_sprite_bg_loop call Get_Pix_Address_DE ld a, (de) ld (ix+0), a inc e ld a, (de) ld (ix+1), a inc e ld a, (de) ld (ix+2), a inc b inc ixl inc ixl inc ixl dec h jp nz, save_sprite_bg_loop ret restore_sprite_bg ld a, (sprite_y) ld b, a ld a, (sprite_x) ld c, a push bc push ix ; preserve sprite data addr ld ix, sprite_bg_addr ld h, 8 call restore_sprite_bg_loop inc d dec e dec e dec e ld h, 8 call restore_sprite_bg_loop inc d dec e dec e dec e ld h, 8 call restore_sprite_bg_loop ; --- restore sprite background attributes --- push de push hl ld a, b sub 16 ld b, a call get_attr_addr ; for restoring ld hl, 37000 ; --- row 1 --- ld a, (hl) ld (de), a inc l inc e ld a, (hl) ld (de), a inc l inc e ld a, (hl) ld (de), a dec e dec e inc l ld a, e add a, 32 ; jump to 2nd row ld e, a ; --- row 2 --- ld a, (hl) ; restore ld (de), a inc e inc l ld a, (hl) ld (de), a inc e inc l ld a, (hl) ld (de), a dec e dec e inc l ld a, e add a, 32 ; jump to 3rd row ld e, a ; --- row 3 --- ld a, (hl) ; restore ld (de), a inc e inc l ld a, (hl) ld (de), a inc e inc l ld a, (hl) ld (de), a dec e dec e inc l ld a, e add a, 32 ; jump to 4th row ld e, a ; --- row 4 --- ld a, (hl) ; restore ld (de), a inc e inc l ld a, (hl) ld (de), a inc e inc l ld a, (hl) ld (de), a pop hl pop de pop ix pop bc ret restore_sprite_bg_loop call Get_Pix_Address_DE ld a, (ix+0) ld (de), a inc e ld a, (ix+1) ld (de), a inc e ld a, (ix+2) ld (de), a inc b dec h inc ix inc ix inc ix jp nz, restore_sprite_bg_loop ret get_attr_addr ; attr address = 22528 + (INT(Y / 8) × 32) + INT(X / 8) ld h, 0 ; clear H ld l, 0 ld a, b sub 8 ; back to original y (B) ld b, a ld a, b srl a srl a srl a ld l, a add hl, hl add hl, hl add hl, hl add hl, hl add hl, hl ld de, 22528 add hl, de ex de, hl ld h, 0 ld l, 0 ld a, c srl a srl a srl a ld l, a add hl, de ex de, hl ret delay push af delay_loop dec bc ld a, b or c jp nz, delay_loop pop af ret Get_Pix_Address_DE ld a, b ; Y coordinate and %00000111 ; Y2, Y1, Y0 or %01000000 ; base &4000 ld d, a ; store in D ld a, b ; Y7, Y6 rra rra rra and %00011000 or d ; OR with Y2, Y1, Y0 ld d, a ; final D ld a, b ; Y5, Y4, Y3 rla rla and %11100000 ld e, a ; store in E ld a, c ; X4, X3, X2, X1, X0 rra rra rra and %00011111 or e ; OR with Y5, Y4, Y3 ld e, a ; final E ret ; address in DE reverse_hero_sprites ; we will now take our 8-frames of 24x24 sprites from ; memory location labeled 'sprite', reverse them - ; and load them into memory location at 'sprite_reversed' ld bc, 576 ; setting our counter 72 x 8 frames ld hl, sprite ; load 'hl' with source address ld de, sprite_reversed ; load 'de' with destination address sprite_reverse_loop ld a, (hl) ; load 'a' byte by byte call reverse_a ; we call the routine to reverse the bits in 'a' ld (de), a ; we load it into the destination memory address inc hl ; increment for next source memory address inc de ; increment for next destination address ld a, c ; check to see where our counter is at or b ; have we reached 0? if yes the Z-flag will be set dec bc ; decrement our counter jp nz, sprite_reverse_loop ; if Z is not set, continue ret reverse_a ; routine to mirror bits. we are 'pre-rendering' with it to avoid slowdown push bc ld b, a rrca rrca xor b and %10101010 xor b ld b, a rrca rrca rrca rlc b xor b and %00110011 xor b rlca rlca pop bc ret sprite ; hero animation frames ; --- frame 1 - top --- defb %00010000, %00000000, %00000000 defb %00011111, %10000000, %00000000 defb %00001111, %11111000, %00000000 defb %00000011, %11111110, %00000000 defb %00000001, %11111111, %00000000 defb %00000000, %11111111, %10000000 defb %00000000, %01111111, %11000000 defb %00000000, %00111111, %11000000 ; --- frame 1 - middle --- defb %00000000, %00011111, %11100000 defb %00000000, %00111111, %11000000 defb %00000000, %00111111, %10000000 defb %00000000, %00000111, %00000000 defb %00000000, %00000010, %00000000 defb %00000000, %00001111, %00000000 defb %00000000, %00011111, %10000000 defb %00000000, %00111111, %11000000 ; --- frame 1 - bottom --- defb %00000000, %01101111, %01110000 defb %00000000, %11001111, %00110000 defb %00000000, %11001111, %00000000 defb %00000000, %00000111, %10000000 defb %00000000, %00000100, %11000000 defb %00000000, %00011000, %01100000 defb %00000000, %00010010, %00101000 defb %00000000, %00011110, %00111000 ; --- frame 2 - top --- defb %00001100, %00000000, %00000000 defb %00001111, %11100000, %00000000 defb %00000111, %11111000, %00000000 defb %00000011, %11111111, %00000000 defb %00000000, %01111111, %11000000 defb %00000000, %01111111, %11000000 defb %00000000, %00111111, %11000000 defb %00000000, %00001111, %11100000 ; --- frame 2 - middle --- defb %00000000, %00001111, %11110000 defb %00000000, %00011111, %11110000 defb %00000000, %00011111, %11000000 defb %00000000, %00000011, %11000000 defb %00000000, %00000001, %00000000 defb %00000000, %00000111, %11000000 defb %00000000, %00000111, %11000000 defb %00000000, %00001111, %11000000 ; --- frame 2 - bottom --- defb %00000000, %00110111, %11000000 defb %00000000, %00110111, %11000000 defb %00000000, %00000110, %00000000 defb %00000000, %00000110, %00000000 defb %00000000, %00000110, %00000000 defb %00000000, %00000110, %00000000 defb %00000000, %00000111, %01000000 defb %00000000, %00000111, %11000000 ; --- frame 3 - top --- defb %00000001, %10000000, %00000000 defb %00000000, %11111100, %00000000 defb %00000000, %01111110, %00000000 defb %00000000, %01111111, %11000000 defb %00000000, %00111111, %11100000 defb %00000000, %00011111, %11110000 defb %00000000, %00011111, %11111000 defb %00000000, %00000111, %11111100 ; --- frame 3 - middle --- defb %00000000, %00000111, %11111000 defb %00000000, %00001111, %11110000 defb %00000000, %00001111, %11110000 defb %00000000, %00000000, %01000000 defb %00000000, %00000000, %11110000 defb %00000000, %00000001, %11110000 defb %00000000, %00000001, %11110110 defb %00000000, %00000001, %11111110 ; --- frame 3 - bottom --- defb %00000000, %00000011, %11100000 defb %00000000, %00001111, %11100000 defb %00000000, %00001101, %11000000 defb %00000000, %00000001, %00110100 defb %00000000, %00000001, %00111100 defb %00000000, %00000111, %00000000 defb %00000000, %00001110, %00000000 defb %00000000, %00001111, %00000000 ; --- frame 4 - top --- defb %00000001, %10000000, %00000000 defb %00000001, %11111100, %00000000 defb %00000001, %11111110, %00000000 defb %00000000, %00111111, %11100000 defb %00000000, %00011111, %11111000 defb %00000000, %00011111, %11111100 defb %00000000, %00000111, %11111110 defb %00000000, %00000011, %11111111 ; --- frame 4 - middle --- defb %00000000, %00000001, %11111100 defb %00000000, %00000111, %11111100 defb %00000000, %00000111, %11111000 defb %00000000, %00000000, %11111000 defb %00000000, %00000000, %00100000 defb %00000000, %00000000, %01111000 defb %00000000, %00000000, %11111000 defb %00000000, %00000000, %11111000 ; --- frame 4 - bottom --- defb %00000000, %00000001, %11111100 defb %00000000, %00000011, %11111111 defb %00000000, %00000110, %00100011 defb %00000000, %00000000, %11111000 defb %00000000, %00000000, %11111010 defb %00000000, %00000111, %00011110 defb %00000000, %00000110, %00000110 defb %00000000, %00000111, %00000000 ; --- frame 5 - top --- defb %00000000, %00110000, %00000000 defb %00000000, %00011110, %00000000 defb %00000000, %00011111, %10000000 defb %00000000, %00000111, %11110000 defb %00000000, %00000111, %11111000 defb %00000000, %00000011, %11111100 defb %00000000, %00000001, %11111100 defb %00000000, %00000000, %11111110 ; --- frame 5 - middle --- defb %00000000, %00000000, %11111111 defb %00000000, %00000001, %11111110 defb %00000000, %00000001, %11111100 defb %00000000, %00000000, %00111000 defb %00000000, %00000000, %00011000 defb %00000000, %00000000, %00111100 defb %00000000, %00000000, %00111100 defb %00000000, %00000000, %00111100 ; --- frame 5 - bottom --- defb %00000000, %00000000, %11111111 defb %00000000, %00000000, %11111111 defb %00000000, %00000000, %11011011 defb %00000000, %00000000, %00011000 defb %00000000, %00000000, %00011000 defb %00000000, %00000000, %11100100 defb %00000000, %00000000, %00000111 defb %00000000, %00000000, %00000011 ; --- frame 6 - top --- defb %00011000, %00000000, %00000000 defb %00001111, %10000000, %00000000 defb %00000111, %10000000, %00000000 defb %00000011, %11110000, %00000000 defb %00000011, %11111000, %00000000 defb %00000001, %11111110, %00000000 defb %00000001, %11111111, %00000000 defb %00000001, %11111111, %10000000 ; --- frame 6 - middle --- defb %00000000, %11111110, %00000000 defb %00000000, %11111110, %00000000 defb %00000001, %11111110, %00000000 defb %00000001, %10111100, %00000000 defb %00000000, %00001000, %00000000 defb %00000000, %00111100, %00000000 defb %00000000, %00111110, %00000000 defb %00000000, %00111110, %00000000 ; --- frame 6 - bottom --- defb %00000000, %00111111, %00000000 defb %00000000, %00101100, %00000000 defb %00000000, %00011110, %00000000 defb %00000000, %00101010, %00000000 defb %00000000, %00111011, %00000000 defb %00000001, %11100011, %00000000 defb %00000001, %10000011, %01000000 defb %00000001, %11000011, %10000000 ; --- frame 7 - top --- defb %01100000, %00000000, %00000000 defb %00011110, %00000000, %00000000 defb %00011110, %00000000, %00000000 defb %00001111, %11110000, %00000000 defb %00000011, %11111110, %00000000 defb %00000011, %11111110, %00000000 defb %00000001, %11111111, %00000000 defb %00000000, %01111111, %00000000 ; --- frame 7 - middle --- defb %00000000, %01111111, %00000000 defb %00000000, %11111110, %00000000 defb %00000000, %11111110, %00000000 defb %00000000, %00111110, %00000000 defb %00000000, %00001000, %00000000 defb %00000000, %00011100, %00000000 defb %00000000, %00111100, %00000000 defb %00000000, %01111110, %00000000 ; --- frame 7 - bottom --- defb %00000000, %01111110, %00000000 defb %00000000, %01111110, %00000000 defb %00000000, %00111110, %00000000 defb %00000000, %00111000, %00000000 defb %00000000, %00111000, %00000000 defb %00000000, %01001100, %00000000 defb %00000000, %01100101, %00000000 defb %00000000, %01110111, %00000000 ; --- frame 8 - top --- defb %00111000, %00000000, %00000000 defb %00011111, %10000000, %00000000 defb %00000111, %11110000, %00000000 defb %00000011, %11111000, %00000000 defb %00000001, %11111110, %00000000 defb %00000000, %11111110, %00000000 defb %00000000, %01111111, %10000000 defb %00000000, %01111111, %11000000 ; --- frame 8 - middle --- defb %00000000, %00111111, %00000000 defb %00000000, %01111111, %00000000 defb %00000000, %00111111, %00000000 defb %00000000, %00001110, %00000000 defb %00000000, %00000100, %00000000 defb %00000000, %00011110, %00000000 defb %00000000, %00011110, %00000000 defb %00000000, %00011111, %10000000 ; --- frame 8 - bottom --- defb %00000000, %01101110, %11000000 defb %00000000, %01101110, %11000000 defb %00000000, %00001110, %00000000 defb %00000000, %00001110, %00000000 defb %00000000, %00001110, %10000000 defb %00000000, %01110000, %11000000 defb %00000000, %01000100, %01010000 defb %00000000, %01100000, %01110000 sprite_reversed ; pre-flipped bytes go here org 39000 frame_off defw 0, 72, 144, 216, 288, 360, 432, 504 org 40000 sprite_y defb 0 sprite_x defb 0 org 41000 sprite_bg_addr ; location for saving background behind sprite org 42000 background ; data for full screen artwork defb 0, 1, 119, 127, 127, 113, 16, 7, 119, 87, 87, 119, 119, 119, 119, 119 defb 119, 119, 119, 127, 85, 5, 119, 119, 68, 5, 0, 84, 17, 0, 0, 0 defb 81, 85, 16, 5, 87, 84, 65, 4, 0, 23, 119, 87, 119, 119, 119, 119 defb 119, 119, 125, 84, 65, 1, 127, 119, 127, 0, 7, 119, 119, 64, 85, 80 defb 5, 0, 16, 21, 80, 4, 0, 0, 87, 119, 119, 67, 119, 119, 119, 119 defb 119, 119, 119, 117, 85, 1, 95, 85, 80, 0, 0, 16, 84, 21, 80, 0 defb 0, 4, 0, 4, 65, 21, 85, 0, 0, 5, 117, 65, 127, 119, 119, 87 defb 119, 117, 85, 16, 1, 0, 65, 127, 116, 17, 1, 85, 85, 85, 80, 0 defb 0, 0, 23, 85, 1, 1, 0, 0, 23, 119, 213, 16, 65, 119, 125, 68 defb 127, 127, 119, 85, 0, 0, 21, 85, 17, 17, 1, 1, 16, 16, 0, 0 defb 16, 17, 16, 5, 85, 85, 16, 0, 23, 80, 0, 21, 19, 119, 84, 0 defb 80, 1, 85, 80, 1, 85, 80, 119, 117, 0, 0, 85, 64, 16, 0, 0 defb 0, 0, 1, 0, 0, 1, 5, 0, 0, 1, 17, 80, 87, 81, 64, 21 defb 17, 0, 0, 0, 1, 85, 65, 85, 17, 0, 0, 0, 85, 85, 0, 0 defb 0, 0, 0, 0, 4, 16, 0, 0, 0, 85, 81, 80, 0, 80, 16, 85 defb 21, 84, 0, 1, 65, 85, 80, 1, 0, 0, 81, 20, 85, 85, 1, 64 defb 40, 0, 255, 255, 255, 251, 170, 15, 255, 255, 255, 255, 255, 255, 255, 255 defb 255, 255, 255, 255, 186, 171, 255, 255, 251, 34, 15, 251, 176, 0, 128, 0 defb 170, 191, 186, 162, 63, 168, 128, 0, 0, 255, 255, 239, 255, 255, 255, 255 defb 255, 255, 251, 186, 2, 138, 191, 255, 254, 42, 15, 255, 250, 162, 171, 168 defb 2, 34, 42, 42, 42, 250, 40, 0, 63, 255, 255, 171, 255, 255, 255, 255 defb 255, 255, 255, 251, 186, 0, 191, 251, 160, 8, 136, 34, 186, 191, 170, 160 defb 0, 2, 2, 7, 187, 170, 171, 128, 0, 35, 251, 163, 255, 255, 255, 175 defb 255, 255, 186, 166, 10, 160, 35, 191, 187, 186, 163, 251, 187, 187, 160, 160 defb 0, 0, 11, 254, 170, 11, 160, 2, 159, 191, 254, 170, 15, 255, 255, 170 defb 31, 255, 255, 186, 42, 0, 170, 42, 42, 168, 38, 2, 40, 32, 0, 2 defb 170, 56, 170, 2, 123, 187, 186, 0, 59, 123, 224, 168, 131, 191, 254, 0 defb 176, 8, 167, 130, 15, 186, 240, 127, 250, 160, 0, 62, 192, 8, 40, 0 defb 40, 130, 10, 162, 32, 50, 42, 128, 0, 2, 58, 170, 191, 251, 136, 0 defb 170, 128, 0, 32, 32, 46, 0, 168, 184, 162, 32, 34, 42, 186, 34, 0 defb 2, 0, 0, 0, 8, 162, 138, 0, 0, 62, 34, 10, 10, 160, 2, 170 defb 170, 58, 0, 0, 128, 186, 170, 42, 0, 2, 170, 187, 170, 186, 170, 128 defb 16, 0, 21, 255, 255, 213, 84, 0, 255, 221, 221, 223, 223, 255, 255, 255 defb 223, 223, 223, 253, 84, 71, 223, 223, 209, 0, 71, 85, 0, 1, 0, 0 defb 81, 85, 84, 80, 85, 64, 0, 0, 0, 31, 221, 199, 223, 223, 223, 255 defb 223, 223, 245, 20, 197, 0, 95, 255, 253, 84, 65, 221, 220, 4, 84, 0 defb 0, 16, 68, 5, 0, 112, 68, 0, 13, 223, 253, 81, 223, 221, 223, 255 defb 255, 223, 223, 85, 85, 4, 87, 245, 64, 64, 4, 84, 85, 85, 84, 0 defb 0, 2, 4, 5, 21, 17, 85, 64, 0, 21, 85, 81, 127, 223, 255, 215 defb 255, 221, 212, 68, 0, 16, 0, 255, 85, 84, 85, 85, 85, 85, 0, 64 defb 5, 64, 5, 253, 220, 21, 64, 1, 95, 213, 213, 20, 7, 223, 249, 197 defb 15, 255, 253, 84, 68, 0, 69, 92, 1, 0, 4, 1, 80, 0, 0, 16 defb 20, 16, 84, 0, 5, 85, 80, 0, 0, 85, 192, 4, 65, 31, 212, 4 defb 24, 4, 4, 4, 5, 0, 64, 93, 197, 4, 64, 4, 64, 64, 0, 0 defb 5, 64, 17, 5, 0, 0, 1, 0, 0, 0, 65, 85, 29, 197, 1, 0 defb 65, 0, 0, 1, 1, 85, 65, 84, 81, 0, 64, 1, 68, 84, 0, 64 defb 0, 0, 0, 0, 4, 69, 69, 68, 0, 20, 0, 69, 1, 64, 64, 85 defb 69, 21, 0, 1, 65, 93, 1, 29, 0, 1, 85, 85, 85, 85, 69, 0 defb 128, 0, 15, 255, 251, 238, 170, 0, 255, 255, 255, 255, 255, 255, 255, 255 defb 255, 255, 255, 239, 254, 175, 255, 255, 239, 226, 11, 254, 136, 2, 0, 136 defb 238, 143, 170, 42, 42, 168, 128, 0, 40, 255, 255, 239, 255, 255, 255, 255 defb 255, 255, 254, 239, 128, 2, 175, 255, 254, 174, 160, 63, 254, 170, 170, 170 defb 0, 136, 36, 2, 128, 238, 238, 10, 143, 255, 255, 170, 255, 255, 255, 255 defb 255, 255, 255, 254, 236, 170, 191, 255, 169, 160, 2, 168, 175, 255, 234, 160 defb 0, 3, 14, 232, 190, 44, 238, 224, 8, 15, 254, 170, 255, 255, 255, 235 defb 255, 255, 248, 138, 0, 10, 10, 191, 174, 174, 174, 254, 254, 238, 0, 160 defb 142, 160, 11, 255, 250, 238, 128, 3, 239, 255, 254, 238, 159, 255, 251, 134 defb 131, 255, 254, 234, 170, 128, 10, 185, 8, 0, 43, 2, 0, 8, 0, 0 defb 170, 14, 174, 170, 8, 234, 186, 138, 42, 255, 140, 34, 0, 63, 170, 98 defb 44, 2, 40, 168, 0, 0, 0, 63, 250, 170, 162, 136, 34, 168, 168, 8 defb 160, 8, 2, 136, 8, 0, 8, 160, 0, 0, 46, 174, 175, 238, 170, 10 defb 168, 160, 0, 10, 138, 171, 130, 170, 162, 160, 128, 4, 168, 238, 42, 160 defb 0, 0, 0, 8, 14, 162, 142, 160, 130, 8, 160, 130, 162, 160, 168, 142 defb 170, 15, 128, 8, 8, 238, 168, 130, 0, 10, 191, 174, 255, 250, 138, 0 defb 16, 0, 23, 119, 245, 85, 81, 0, 23, 119, 119, 119, 119, 119, 119, 119 defb 119, 119, 119, 245, 21, 83, 119, 119, 243, 128, 17, 116, 21, 64, 1, 0 defb 85, 85, 84, 20, 20, 19, 0, 0, 0, 119, 119, 87, 119, 119, 119, 119 defb 119, 119, 245, 215, 1, 5, 23, 119, 117, 85, 16, 23, 113, 81, 65, 0 defb 0, 0, 0, 0, 16, 213, 68, 0, 1, 119, 245, 64, 119, 119, 119, 119 defb 119, 119, 117, 84, 81, 0, 23, 247, 81, 0, 5, 64, 85, 85, 80, 4 defb 0, 0, 1, 84, 16, 64, 85, 80, 5, 1, 84, 84, 119, 119, 119, 101 defb 119, 119, 212, 0, 0, 1, 0, 81, 85, 84, 0, 85, 84, 68, 0, 64 defb 5, 64, 1, 117, 117, 84, 64, 3, 119, 85, 85, 85, 87, 119, 245, 5 defb 1, 127, 81, 85, 84, 5, 0, 87, 48, 0, 0, 4, 80, 0, 0, 0 defb 16, 20, 69, 17, 0, 21, 20, 80, 0, 21, 84, 0, 0, 55, 80, 80 defb 20, 0, 0, 0, 0, 0, 0, 21, 85, 16, 0, 0, 21, 64, 64, 0 defb 0, 0, 0, 0, 4, 0, 4, 16, 0, 16, 20, 85, 21, 84, 4, 0 defb 65, 0, 0, 5, 17, 85, 0, 0, 64, 64, 0, 5, 64, 85, 16, 0 defb 0, 0, 16, 0, 21, 1, 5, 16, 0, 4, 64, 0, 5, 0, 1, 85 defb 85, 1, 64, 0, 1, 85, 64, 20, 0, 0, 16, 85, 85, 85, 20, 0 defb 162, 138, 0, 19, 251, 186, 170, 32, 1, 255, 255, 255, 255, 255, 255, 255 defb 255, 255, 255, 251, 187, 187, 255, 255, 255, 136, 59, 255, 255, 208, 10, 0 defb 170, 171, 186, 170, 186, 2, 128, 2, 142, 255, 255, 239, 255, 255, 255, 255 defb 255, 255, 255, 254, 138, 130, 191, 255, 170, 170, 42, 175, 234, 170, 170, 34 defb 0, 128, 0, 0, 191, 186, 170, 8, 131, 255, 255, 179, 255, 255, 255, 255 defb 255, 255, 255, 234, 162, 162, 170, 254, 238, 128, 10, 170, 191, 255, 170, 32 defb 0, 0, 51, 254, 136, 136, 136, 176, 1, 139, 186, 138, 191, 255, 255, 233 defb 255, 255, 191, 160, 128, 2, 11, 186, 186, 138, 170, 187, 186, 152, 0, 32 defb 10, 170, 2, 191, 255, 250, 136, 3, 255, 187, 251, 186, 63, 255, 255, 131 defb 130, 127, 171, 250, 184, 27, 130, 62, 228, 32, 0, 184, 128, 32, 0, 0 defb 168, 14, 171, 171, 162, 43, 186, 162, 138, 59, 176, 160, 160, 191, 160, 168 defb 138, 0, 0, 0, 0, 2, 128, 30, 170, 42, 40, 2, 163, 136, 168, 40 defb 2, 0, 8, 0, 42, 0, 0, 0, 34, 2, 186, 186, 171, 186, 40, 0 defb 42, 176, 0, 10, 170, 187, 160, 40, 162, 0, 0, 10, 130, 251, 170, 160 defb 0, 0, 0, 32, 58, 138, 162, 186, 40, 34, 3, 128, 11, 128, 42, 255 defb 251, 162, 160, 0, 1, 239, 128, 10, 128, 34, 136, 187, 187, 186, 42, 0 defb 80, 69, 64, 69, 253, 81, 0, 0, 1, 221, 221, 253, 253, 255, 255, 255 defb 255, 255, 255, 213, 85, 20, 255, 255, 255, 64, 28, 93, 253, 192, 21, 64 defb 5, 85, 84, 84, 0, 0, 0, 1, 247, 255, 253, 87, 253, 253, 255, 255 defb 255, 255, 255, 252, 68, 1, 223, 253, 197, 69, 4, 21, 85, 69, 85, 0 defb 0, 0, 0, 0, 28, 212, 69, 0, 0, 85, 253, 85, 253, 253, 255, 255 defb 255, 253, 212, 85, 64, 17, 1, 127, 117, 0, 0, 21, 29, 93, 208, 64 defb 0, 0, 113, 245, 0, 0, 16, 80, 4, 215, 213, 65, 69, 255, 252, 68 defb 255, 253, 255, 65, 64, 0, 21, 213, 85, 68, 16, 85, 85, 16, 0, 0 defb 0, 20, 64, 125, 221, 85, 68, 1, 253, 197, 197, 85, 7, 255, 245, 1 defb 64, 21, 85, 212, 80, 85, 64, 29, 196, 0, 0, 81, 1, 64, 0, 0 defb 84, 4, 69, 21, 0, 69, 21, 64, 69, 5, 212, 84, 69, 84, 192, 16 defb 5, 0, 0, 0, 0, 0, 0, 21, 68, 0, 0, 0, 85, 4, 64, 0 defb 0, 0, 4, 0, 68, 0, 0, 0, 5, 0, 84, 85, 64, 28, 4, 4 defb 20, 80, 4, 5, 80, 81, 64, 0, 0, 1, 0, 21, 5, 85, 68, 0 defb 0, 0, 0, 64, 84, 4, 69, 80, 4, 0, 1, 0, 21, 0, 5, 85 defb 212, 68, 80, 0, 1, 213, 68, 1, 64, 64, 5, 84, 85, 85, 4, 0 defb 226, 170, 128, 43, 255, 238, 32, 8, 130, 191, 255, 255, 255, 255, 255, 255 defb 255, 255, 255, 254, 234, 142, 255, 255, 255, 136, 255, 255, 255, 232, 42, 168 defb 42, 234, 250, 170, 160, 134, 168, 0, 255, 255, 255, 239, 255, 255, 255, 255 defb 255, 255, 255, 254, 170, 130, 255, 254, 233, 42, 136, 46, 174, 126, 190, 136 defb 32, 8, 0, 32, 137, 238, 238, 232, 42, 143, 254, 235, 255, 255, 255, 255 defb 255, 255, 254, 186, 8, 168, 202, 255, 254, 170, 2, 170, 191, 255, 234, 160 defb 8, 128, 63, 254, 224, 128, 136, 224, 160, 255, 234, 168, 207, 255, 254, 238 defb 255, 255, 255, 198, 168, 128, 175, 250, 170, 162, 2, 224, 184, 48, 0, 8 defb 136, 42, 168, 63, 255, 254, 232, 8, 127, 238, 188, 254, 175, 255, 238, 0 defb 224, 142, 235, 248, 168, 255, 224, 159, 254, 8, 0, 251, 224, 16, 40, 0 defb 40, 130, 42, 206, 128, 139, 42, 34, 32, 170, 232, 168, 227, 255, 224, 170 defb 142, 128, 0, 32, 40, 168, 128, 234, 170, 168, 128, 0, 46, 174, 136, 160 defb 2, 0, 2, 0, 138, 8, 8, 0, 0, 254, 168, 234, 130, 248, 168, 170 defb 138, 184, 0, 2, 232, 234, 128, 168, 32, 2, 168, 174, 186, 250, 238, 128 defb 0, 136, 8, 136, 238, 138, 34, 184, 162, 170, 136, 0, 30, 0, 46, 255 defb 254, 42, 232, 0, 0, 239, 232, 8, 128, 160, 171, 250, 235, 174, 40, 0 defb 0, 4, 0, 0, 21, 4, 0, 80, 1, 1, 0, 0, 84, 0, 5, 5 defb 85, 21, 20, 0, 0, 85, 65, 0, 1, 1, 5, 69, 21, 0, 0, 0 defb 0, 21, 85, 21, 85, 80, 0, 0, 0, 0, 1, 84, 0, 5, 17, 21 defb 17, 85, 84, 84, 0, 1, 64, 20, 0, 1, 0, 16, 16, 64, 0, 0 defb 0, 1, 0, 0, 4, 0, 0, 0, 0, 1, 81, 0, 16, 85, 5, 87 defb 65, 85, 80, 16, 20, 0, 1, 0, 0, 0, 0, 0, 0, 0, 17, 0 defb 0, 0, 0, 0, 0, 81, 0, 16, 21, 0, 0, 1, 85, 87, 0, 0 defb 5, 119, 87, 81, 69, 5, 0, 0, 0, 0, 4, 17, 69, 65, 0, 0 defb 64, 0, 17, 1, 16, 0, 5, 64, 0, 21, 1, 21, 85, 85, 87, 85 defb 85, 85, 85, 85, 85, 64, 21, 80, 0, 0, 80, 1, 85, 0, 1, 64 defb 0, 0, 0, 0, 0, 84, 0, 1, 1, 85, 85, 87, 85, 85, 85, 85 defb 87, 87, 85, 119, 85, 85, 0, 0, 1, 0, 0, 16, 16, 16, 0, 0 defb 0, 80, 0, 0, 64, 1, 65, 65, 1, 85, 81, 1, 0, 17, 87, 85 defb 71, 64, 0, 1, 7, 23, 0, 21, 0, 0, 0, 0, 1, 0, 0, 0 defb 0, 0, 20, 21, 81, 5, 16, 0, 5, 119, 0, 21, 21, 81, 7, 87 defb 0, 0, 1, 16, 3, 5, 65, 16, 16, 0, 17, 80, 64, 0, 0, 0 defb 2, 8, 0, 0, 42, 10, 34, 136, 34, 128, 8, 0, 184, 0, 170, 171 defb 255, 154, 190, 8, 0, 255, 168, 10, 40, 175, 187, 171, 162, 168, 2, 0 defb 170, 43, 190, 170, 187, 168, 0, 0, 2, 2, 1, 248, 168, 170, 168, 8 defb 11, 250, 170, 58, 0, 43, 40, 170, 42, 2, 0, 34, 32, 136, 0, 0 defb 0, 160, 34, 128, 42, 2, 0, 130, 0, 11, 162, 128, 2, 42, 163, 170 defb 171, 255, 186, 174, 139, 128, 2, 2, 0, 0, 8, 32, 0, 2, 170, 128 defb 0, 0, 0, 0, 2, 170, 170, 42, 43, 42, 2, 42, 171, 255, 42, 162 defb 43, 191, 255, 186, 162, 35, 168, 2, 0, 0, 32, 43, 175, 162, 34, 160 defb 136, 0, 24, 160, 32, 0, 10, 128, 160, 171, 170, 171, 255, 251, 255, 255 defb 255, 255, 255, 255, 255, 170, 42, 186, 0, 130, 162, 170, 171, 162, 138, 128 defb 128, 0, 0, 0, 2, 122, 32, 0, 11, 171, 191, 255, 251, 175, 251, 255 defb 191, 255, 170, 191, 255, 255, 8, 10, 34, 0, 0, 56, 34, 10, 0, 0 defb 0, 40, 136, 1, 160, 179, 170, 163, 139, 187, 186, 170, 168, 163, 191, 255 defb 138, 128, 0, 0, 171, 191, 184, 2, 8, 32, 40, 40, 2, 128, 0, 2 defb 32, 2, 8, 11, 170, 42, 168, 0, 27, 254, 162, 42, 170, 168, 43, 255 defb 2, 160, 170, 138, 170, 139, 160, 50, 32, 168, 42, 170, 40, 0, 32, 0 defb 4, 4, 0, 4, 20, 0, 64, 84, 5, 64, 0, 1, 64, 64, 21, 85 defb 221, 77, 77, 0, 0, 17, 68, 4, 85, 85, 85, 93, 65, 4, 0, 0 defb 64, 5, 85, 85, 69, 80, 0, 0, 1, 4, 1, 64, 80, 85, 0, 0 defb 1, 213, 69, 21, 0, 21, 1, 4, 64, 0, 0, 64, 0, 0, 64, 0 defb 0, 0, 16, 0, 0, 0, 0, 0, 0, 21, 4, 5, 21, 85, 69, 80 defb 65, 221, 93, 84, 5, 64, 0, 0, 0, 0, 0, 0, 0, 0, 64, 64 defb 0, 0, 0, 0, 0, 17, 68, 17, 84, 0, 5, 5, 85, 93, 197, 85 defb 71, 223, 213, 84, 80, 65, 80, 0, 0, 1, 21, 85, 85, 64, 1, 64 defb 0, 4, 4, 64, 68, 0, 21, 0, 4, 85, 0, 69, 221, 85, 93, 93 defb 93, 221, 221, 85, 85, 85, 84, 4, 64, 0, 0, 69, 85, 1, 5, 68 defb 0, 0, 0, 0, 0, 80, 0, 0, 5, 85, 21, 68, 69, 80, 85, 93 defb 93, 221, 69, 85, 221, 220, 0, 0, 64, 0, 0, 0, 20, 4, 0, 0 defb 0, 84, 68, 1, 64, 81, 0, 69, 69, 92, 0, 0, 0, 4, 29, 221 defb 196, 0, 0, 0, 5, 20, 84, 1, 16, 0, 0, 68, 0, 0, 0, 1 defb 64, 0, 0, 21, 84, 1, 0, 1, 69, 221, 0, 0, 64, 80, 7, 85 defb 5, 0, 0, 0, 69, 5, 1, 16, 5, 84, 84, 80, 0, 0, 0, 0 defb 10, 138, 170, 8, 40, 8, 32, 12, 40, 32, 0, 6, 224, 162, 170, 0 defb 255, 238, 239, 136, 8, 175, 128, 168, 170, 15, 234, 235, 138, 32, 128, 128 defb 160, 139, 175, 143, 168, 8, 0, 0, 0, 8, 15, 224, 226, 255, 130, 0 defb 3, 254, 238, 143, 136, 138, 192, 10, 162, 2, 0, 130, 2, 128, 128, 0 defb 128, 32, 128, 0, 2, 0, 128, 42, 128, 46, 138, 10, 170, 175, 195, 238 defb 235, 255, 254, 234, 163, 224, 0, 160, 0, 0, 0, 0, 10, 162, 170, 160 defb 0, 2, 32, 130, 0, 42, 162, 174, 162, 160, 42, 170, 254, 255, 255, 255 defb 255, 255, 255, 255, 234, 40, 248, 136, 0, 0, 234, 174, 254, 232, 130, 168 defb 2, 10, 40, 168, 172, 0, 234, 10, 10, 238, 170, 174, 255, 254, 239, 239 defb 239, 239, 255, 239, 255, 254, 174, 7, 128, 160, 138, 43, 250, 130, 170, 136 defb 128, 0, 0, 0, 42, 166, 0, 0, 10, 175, 174, 234, 170, 138, 238, 255 defb 255, 234, 168, 174, 255, 254, 168, 0, 168, 0, 0, 32, 42, 168, 0, 0 defb 160, 44, 130, 2, 226, 104, 138, 170, 195, 254, 170, 63, 175, 234, 175, 255 defb 230, 160, 0, 0, 174, 174, 168, 32, 10, 32, 34, 170, 10, 8, 0, 34 defb 40, 8, 136, 14, 232, 2, 136, 2, 143, 254, 130, 46, 175, 232, 47, 255 defb 234, 128, 138, 136, 173, 190, 226, 50, 42, 162, 250, 170, 168, 0, 162, 0 defb 16, 5, 16, 16, 16, 0, 16, 0, 0, 16, 0, 5, 64, 65, 64, 1 defb 87, 81, 81, 64, 1, 117, 64, 17, 17, 69, 17, 85, 1, 5, 0, 0 defb 0, 17, 65, 65, 80, 0, 0, 0, 0, 0, 21, 0, 65, 85, 1, 5 defb 65, 85, 81, 1, 0, 0, 0, 1, 1, 16, 1, 0, 0, 1, 0, 0 defb 0, 0, 0, 0, 0, 0, 0, 1, 0, 80, 16, 21, 85, 87, 87, 85 defb 65, 119, 119, 85, 16, 80, 0, 0, 0, 0, 0, 0, 16, 65, 0, 0 defb 0, 0, 0, 17, 0, 1, 0, 21, 64, 0, 1, 17, 85, 85, 119, 85 defb 119, 119, 119, 117, 85, 0, 20, 64, 0, 65, 85, 85, 85, 80, 1, 80 defb 0, 0, 4, 0, 0, 0, 80, 0, 1, 85, 21, 87, 119, 117, 85, 117 defb 85, 85, 85, 85, 85, 85, 81, 0, 80, 0, 0, 21, 16, 0, 17, 0 defb 0, 0, 0, 0, 0, 0, 0, 0, 21, 85, 65, 64, 16, 16, 85, 85 defb 85, 84, 0, 1, 21, 117, 80, 0, 0, 0, 0, 1, 16, 64, 0, 0 defb 0, 20, 17, 5, 64, 81, 0, 4, 1, 117, 0, 85, 21, 80, 5, 118 defb 17, 0, 0, 0, 4, 20, 17, 16, 16, 80, 1, 16, 0, 0, 0, 0 defb 64, 0, 0, 1, 84, 0, 0, 5, 69, 85, 0, 21, 87, 80, 5, 117 defb 85, 16, 0, 16, 5, 85, 81, 16, 16, 17, 80, 16, 0, 0, 0, 0 defb 34, 171, 138, 42, 32, 0, 128, 128, 2, 8, 0, 26, 128, 130, 128, 42 defb 187, 171, 171, 160, 0, 171, 192, 170, 170, 186, 34, 170, 138, 1, 8, 0 defb 32, 130, 163, 162, 56, 0, 32, 32, 0, 2, 58, 11, 162, 251, 135, 170 defb 227, 255, 171, 160, 160, 0, 0, 34, 32, 8, 2, 0, 0, 0, 0, 0 defb 0, 0, 0, 0, 0, 128, 168, 32, 128, 240, 168, 43, 170, 191, 195, 235 defb 235, 255, 255, 186, 170, 184, 0, 34, 32, 32, 0, 10, 234, 186, 162, 160 defb 34, 2, 160, 42, 130, 10, 160, 58, 130, 2, 42, 170, 187, 186, 255, 186 defb 175, 255, 255, 255, 250, 138, 14, 170, 160, 171, 163, 186, 187, 226, 2, 170 defb 0, 0, 2, 8, 136, 11, 162, 0, 10, 251, 187, 255, 255, 255, 255, 255 defb 255, 251, 255, 255, 255, 255, 128, 0, 58, 2, 32, 171, 168, 8, 32, 0 defb 128, 32, 0, 34, 34, 160, 0, 0, 59, 255, 242, 170, 170, 162, 191, 255 defb 255, 168, 32, 8, 191, 254, 232, 168, 0, 0, 2, 0, 32, 160, 0, 0 defb 128, 40, 168, 3, 160, 186, 170, 162, 131, 254, 170, 63, 255, 234, 47, 254 defb 43, 32, 10, 136, 136, 158, 168, 58, 10, 40, 34, 168, 0, 0, 2, 0 defb 32, 0, 42, 138, 170, 42, 162, 3, 163, 190, 170, 46, 191, 170, 47, 187 defb 255, 130, 130, 136, 175, 254, 170, 50, 10, 162, 186, 34, 130, 0, 0, 0 defb 4, 85, 69, 85, 1, 0, 0, 0, 0, 0, 0, 21, 0, 1, 68, 4 defb 69, 213, 212, 80, 0, 87, 193, 69, 84, 4, 64, 21, 4, 0, 16, 0 defb 0, 1, 65, 64, 5, 0, 64, 0, 0, 0, 84, 65, 69, 213, 69, 85 defb 193, 253, 212, 64, 80, 0, 64, 64, 0, 0, 4, 0, 0, 0, 0, 0 defb 0, 0, 0, 0, 0, 69, 0, 84, 69, 192, 16, 85, 85, 85, 85, 213 defb 193, 85, 213, 213, 84, 84, 0, 0, 0, 0, 0, 1, 5, 85, 0, 0 defb 64, 0, 84, 20, 69, 0, 0, 80, 4, 4, 85, 85, 93, 85, 213, 85 defb 213, 85, 85, 85, 213, 68, 69, 80, 0, 84, 21, 81, 85, 64, 5, 68 defb 0, 4, 0, 0, 0, 21, 64, 0, 5, 85, 93, 223, 213, 85, 93, 213 defb 85, 221, 213, 213, 221, 213, 64, 0, 21, 64, 0, 5, 16, 16, 4, 0 defb 0, 16, 64, 0, 0, 64, 16, 64, 21, 95, 213, 69, 85, 1, 93, 255 defb 223, 208, 5, 65, 23, 221, 80, 4, 0, 0, 4, 1, 0, 64, 0, 0 defb 64, 0, 16, 1, 80, 85, 68, 0, 5, 253, 0, 93, 95, 208, 5, 255 defb 5, 0, 0, 0, 1, 69, 65, 16, 4, 84, 17, 64, 0, 0, 0, 0 defb 80, 0, 4, 4, 84, 20, 84, 5, 69, 85, 0, 29, 93, 208, 5, 213 defb 253, 0, 0, 64, 13, 253, 80, 84, 84, 64, 20, 68, 0, 21, 64, 0 defb 162, 174, 254, 234, 254, 128, 128, 128, 128, 0, 0, 254, 8, 42, 162, 170 defb 234, 254, 238, 248, 0, 235, 136, 174, 170, 18, 160, 234, 138, 4, 160, 0 defb 128, 42, 170, 224, 170, 136, 10, 168, 0, 136, 250, 168, 174, 255, 207, 239 defb 235, 255, 254, 40, 234, 0, 0, 168, 160, 128, 0, 2, 0, 0, 40, 0 defb 0, 0, 0, 0, 14, 186, 168, 42, 175, 162, 128, 170, 170, 255, 207, 239 defb 235, 255, 255, 254, 154, 174, 2, 2, 128, 160, 0, 62, 170, 238, 168, 160 defb 192, 0, 170, 32, 250, 10, 0, 232, 0, 10, 238, 170, 255, 255, 255, 255 defb 255, 255, 255, 255, 255, 170, 171, 238, 128, 234, 238, 170, 255, 168, 138, 138 defb 128, 0, 0, 128, 0, 46, 168, 0, 0, 239, 191, 255, 255, 255, 254, 255 defb 239, 255, 255, 238, 239, 254, 128, 32, 175, 234, 2, 14, 40, 2, 160, 0 defb 128, 120, 128, 136, 234, 170, 234, 168, 63, 255, 248, 42, 168, 130, 255, 255 defb 223, 162, 168, 168, 175, 191, 232, 168, 136, 42, 136, 0, 0, 128, 0, 2 defb 128, 40, 40, 6, 232, 170, 170, 128, 143, 254, 170, 127, 255, 232, 46, 254 defb 128, 128, 168, 138, 172, 15, 130, 58, 40, 168, 50, 136, 32, 8, 8, 0 defb 96, 8, 34, 8, 232, 14, 34, 2, 227, 254, 170, 42, 238, 234, 175, 255 defb 255, 130, 138, 138, 175, 238, 234, 242, 42, 234, 14, 170, 136, 138, 160, 1 defb 16, 0, 0, 17, 80, 0, 0, 1, 69, 87, 1, 1, 85, 16, 7, 119 defb 117, 0, 0, 0, 5, 85, 81, 119, 80, 80, 21, 64, 0, 84, 0, 1 defb 20, 0, 0, 85, 0, 0, 0, 81, 17, 21, 0, 69, 1, 20, 71, 127 defb 71, 0, 0, 1, 23, 85, 5, 80, 80, 0, 0, 16, 21, 85, 0, 20 defb 81, 64, 4, 17, 1, 0, 1, 80, 85, 16, 0, 0, 0, 64, 1, 17 defb 4, 1, 0, 1, 21, 81, 0, 0, 0, 0, 1, 0, 84, 85, 0, 64 defb 17, 21, 80, 20, 17, 5, 5, 81, 1, 20, 17, 16, 0, 5, 1, 85 defb 64, 0, 0, 0, 1, 85, 80, 0, 0, 0, 0, 17, 85, 85, 84, 16 defb 21, 85, 17, 84, 23, 81, 85, 85, 85, 84, 21, 17, 81, 17, 17, 17 defb 85, 5, 85, 65, 21, 85, 85, 85, 85, 21, 85, 64, 81, 21, 85, 0 defb 85, 5, 1, 84, 85, 16, 17, 85, 119, 85, 85, 85, 85, 85, 87, 85 defb 85, 85, 85, 85, 85, 85, 87, 85, 85, 85, 117, 84, 0, 53, 84, 1 defb 20, 1, 0, 21, 85, 0, 16, 17, 85, 21, 85, 85, 85, 85, 85, 85 defb 85, 85, 85, 87, 85, 85, 85, 85, 117, 84, 85, 85, 81, 1, 5, 16 defb 0, 1, 4, 85, 0, 0, 0, 16, 21, 85, 85, 87, 87, 85, 85, 87 defb 85, 85, 85, 85, 85, 85, 117, 81, 80, 16, 1, 0, 16, 16, 0, 0 defb 40, 0, 0, 171, 170, 0, 0, 0, 163, 254, 170, 47, 191, 232, 43, 251 defb 187, 130, 170, 168, 175, 254, 170, 251, 170, 170, 10, 168, 163, 170, 0, 9 defb 40, 0, 0, 175, 184, 128, 0, 162, 35, 186, 154, 34, 42, 136, 35, 251 defb 171, 130, 170, 128, 175, 190, 3, 170, 34, 0, 2, 42, 162, 186, 128, 10 defb 39, 160, 8, 130, 138, 0, 11, 186, 190, 170, 130, 42, 170, 226, 171, 162 defb 10, 2, 170, 136, 170, 190, 128, 40, 130, 32, 2, 40, 186, 170, 162, 160 defb 170, 42, 170, 187, 186, 170, 190, 170, 170, 3, 178, 2, 10, 130, 42, 170 defb 163, 186, 255, 255, 187, 187, 32, 0, 0, 2, 2, 170, 170, 186, 190, 162 defb 170, 186, 162, 186, 171, 170, 191, 186, 170, 170, 170, 170, 170, 170, 186, 170 defb 171, 255, 255, 162, 170, 170, 171, 255, 187, 171, 190, 170, 154, 171, 138, 168 defb 171, 168, 42, 175, 170, 170, 171, 255, 255, 255, 187, 191, 255, 255, 255, 255 defb 187, 170, 187, 187, 175, 42, 187, 187, 255, 186, 187, 170, 32, 62, 168, 0 defb 2, 34, 170, 171, 187, 0, 160, 11, 186, 191, 255, 255, 255, 255, 255, 255 defb 255, 191, 187, 255, 191, 191, 251, 255, 251, 250, 234, 170, 168, 42, 136, 170 defb 136, 162, 40, 32, 162, 170, 128, 2, 10, 63, 170, 255, 255, 255, 255, 255 defb 255, 191, 255, 255, 191, 171, 186, 170, 42, 34, 170, 170, 32, 130, 32, 128 defb 80, 4, 0, 85, 85, 0, 0, 0, 5, 93, 0, 15, 223, 208, 5, 93 defb 223, 0, 0, 0, 29, 252, 64, 85, 80, 16, 69, 64, 65, 85, 64, 5 defb 84, 0, 5, 93, 0, 0, 0, 81, 65, 84, 0, 0, 4, 17, 65, 253 defb 5, 20, 0, 64, 21, 221, 5, 85, 81, 0, 4, 4, 1, 84, 0, 68 defb 85, 64, 0, 64, 4, 64, 5, 84, 85, 4, 85, 68, 84, 81, 69, 5 defb 64, 0, 0, 0, 17, 16, 0, 64, 0, 0, 0, 0, 85, 68, 69, 64 defb 85, 85, 85, 85, 84, 21, 84, 20, 4, 17, 64, 4, 4, 4, 69, 85 defb 65, 85, 85, 93, 84, 81, 64, 0, 0, 0, 1, 68, 213, 20, 85, 80 defb 84, 28, 69, 85, 85, 69, 93, 85, 93, 85, 85, 85, 85, 69, 85, 85 defb 85, 93, 85, 93, 69, 85, 85, 93, 85, 85, 93, 64, 64, 85, 64, 64 defb 5, 64, 21, 213, 84, 0, 77, 85, 221, 93, 221, 93, 93, 221, 221, 221 defb 213, 85, 85, 85, 85, 85, 85, 84, 85, 85, 221, 68, 0, 117, 80, 0 defb 0, 4, 4, 17, 93, 1, 64, 69, 84, 21, 93, 221, 213, 93, 221, 221 defb 221, 85, 85, 85, 85, 85, 93, 221, 213, 84, 85, 85, 4, 81, 5, 20 defb 68, 5, 0, 0, 0, 21, 0, 64, 20, 85, 65, 221, 221, 221, 93, 221 defb 213, 85, 93, 221, 85, 85, 85, 84, 20, 20, 65, 4, 0, 65, 64, 0 defb 104, 10, 0, 191, 170, 128, 8, 0, 15, 254, 168, 47, 255, 232, 47, 255 defb 255, 128, 42, 168, 175, 255, 162, 239, 40, 168, 138, 168, 138, 234, 168, 13 defb 106, 0, 10, 255, 170, 160, 6, 232, 162, 186, 130, 136, 138, 12, 165, 254 defb 138, 162, 170, 138, 175, 250, 175, 234, 168, 10, 0, 138, 139, 238, 138, 98 defb 238, 224, 0, 0, 10, 128, 59, 250, 250, 170, 254, 191, 186, 175, 238, 186 defb 130, 160, 170, 170, 40, 200, 128, 160, 128, 0, 0, 0, 47, 238, 174, 234 defb 235, 174, 238, 238, 175, 42, 255, 138, 136, 138, 0, 160, 138, 2, 168, 138 defb 130, 136, 174, 168, 40, 232, 160, 8, 8, 138, 170, 170, 238, 190, 238, 224 defb 170, 254, 46, 234, 234, 128, 191, 239, 255, 238, 238, 239, 255, 239, 255, 238 defb 238, 255, 175, 255, 175, 238, 238, 255, 254, 238, 255, 232, 168, 174, 142, 160 defb 170, 128, 14, 254, 138, 160, 131, 255, 255, 255, 255, 255, 255, 255, 255, 255 defb 255, 254, 239, 255, 174, 255, 255, 238, 255, 238, 255, 248, 170, 191, 234, 136 defb 128, 136, 170, 238, 238, 130, 168, 170, 238, 255, 255, 255, 255, 255, 255, 255 defb 255, 255, 255, 255, 239, 255, 251, 255, 255, 174, 234, 238, 170, 168, 42, 40 defb 34, 32, 2, 10, 138, 238, 2, 170, 226, 126, 174, 255, 255, 255, 255, 255 defb 255, 255, 255, 255, 239, 234, 170, 168, 138, 14, 160, 34, 42, 168, 32, 0 defb 20, 0, 0, 85, 84, 0, 0, 64, 5, 117, 1, 7, 215, 80, 7, 117 defb 119, 16, 1, 0, 23, 116, 68, 85, 16, 80, 5, 80, 0, 80, 0, 21 defb 80, 0, 1, 85, 1, 0, 5, 80, 5, 80, 0, 80, 16, 80, 64, 117 defb 64, 16, 0, 1, 21, 85, 69, 80, 1, 0, 0, 0, 5, 85, 17, 16 defb 85, 64, 0, 0, 4, 0, 21, 17, 85, 5, 84, 17, 85, 85, 5, 81 defb 0, 16, 0, 0, 16, 16, 64, 0, 0, 0, 0, 0, 85, 85, 5, 64 defb 81, 69, 85, 85, 17, 65, 81, 4, 0, 16, 68, 0, 0, 0, 64, 0 defb 5, 85, 87, 85, 80, 64, 0, 0, 0, 1, 21, 85, 85, 21, 85, 64 defb 21, 17, 5, 81, 81, 64, 85, 85, 117, 85, 85, 85, 85, 85, 85, 85 defb 85, 17, 21, 117, 85, 85, 85, 85, 81, 21, 85, 84, 0, 21, 16, 64 defb 80, 0, 20, 69, 80, 0, 16, 85, 85, 85, 85, 85, 85, 117, 117, 117 defb 85, 85, 85, 85, 85, 85, 85, 85, 85, 84, 85, 80, 16, 21, 84, 16 defb 1, 0, 16, 80, 85, 0, 0, 17, 17, 85, 85, 117, 85, 85, 117, 85 defb 85, 85, 85, 85, 85, 85, 81, 87, 112, 17, 85, 21, 5, 0, 0, 64 defb 65, 20, 16, 0, 1, 0, 0, 64, 84, 85, 85, 85, 85, 119, 119, 119 defb 117, 85, 85, 117, 85, 85, 84, 80, 0, 16, 0, 16, 0, 0, 0, 0 defb 40, 2, 0, 170, 34, 160, 0, 32, 227, 254, 170, 47, 255, 224, 47, 255 defb 255, 160, 42, 162, 175, 250, 162, 167, 170, 130, 42, 168, 34, 170, 32, 25 defb 34, 0, 42, 235, 161, 128, 3, 162, 2, 160, 0, 34, 130, 2, 0, 250 defb 170, 34, 42, 136, 190, 186, 171, 170, 8, 162, 128, 2, 163, 170, 160, 168 defb 175, 184, 0, 0, 18, 8, 42, 186, 184, 138, 186, 171, 186, 42, 171, 186 defb 160, 162, 170, 170, 34, 232, 128, 0, 0, 0, 0, 0, 58, 239, 170, 170 defb 186, 171, 234, 186, 235, 162, 170, 10, 164, 10, 0, 0, 40, 32, 10, 136 defb 11, 186, 191, 251, 184, 32, 42, 0, 42, 170, 170, 190, 186, 170, 186, 162 defb 43, 170, 43, 234, 170, 130, 235, 187, 255, 255, 191, 255, 251, 255, 255, 186 defb 250, 186, 63, 250, 191, 250, 255, 255, 190, 191, 255, 186, 160, 186, 162, 162 defb 170, 0, 40, 126, 162, 160, 170, 171, 255, 255, 255, 255, 255, 255, 255, 255 defb 255, 255, 255, 255, 255, 187, 255, 187, 251, 186, 187, 170, 10, 174, 42, 162 defb 130, 32, 171, 170, 234, 10, 160, 168, 186, 191, 255, 255, 191, 255, 255, 255 defb 255, 255, 251, 255, 187, 187, 234, 174, 234, 168, 174, 138, 170, 168, 40, 138 defb 162, 0, 32, 42, 162, 168, 0, 40, 168, 186, 47, 235, 255, 255, 255, 255 defb 255, 251, 255, 254, 170, 255, 170, 162, 34, 42, 128, 10, 162, 170, 0, 2 defb 84, 0, 0, 17, 81, 64, 0, 65, 65, 85, 0, 69, 213, 80, 5, 221 defb 221, 16, 0, 0, 29, 81, 4, 5, 81, 0, 5, 68, 0, 84, 0, 4 defb 64, 64, 5, 85, 1, 0, 1, 69, 21, 64, 1, 64, 0, 0, 4, 196 defb 84, 64, 64, 1, 21, 85, 69, 0, 4, 69, 0, 0, 21, 85, 0, 84 defb 85, 80, 0, 0, 16, 16, 5, 85, 1, 5, 84, 80, 21, 68, 65, 85 defb 68, 80, 84, 80, 21, 85, 80, 0, 0, 0, 0, 0, 85, 85, 20, 64 defb 85, 21, 85, 85, 116, 84, 84, 0, 69, 64, 80, 0, 4, 0, 80, 0 defb 0, 0, 5, 64, 1, 68, 80, 4, 85, 85, 69, 85, 85, 85, 21, 64 defb 4, 65, 85, 213, 85, 17, 5, 85, 221, 221, 85, 85, 85, 85, 213, 85 defb 221, 85, 85, 197, 93, 213, 221, 93, 84, 85, 253, 68, 0, 21, 80, 64 defb 64, 0, 0, 85, 84, 64, 20, 85, 221, 85, 221, 221, 221, 221, 213, 221 defb 221, 213, 221, 221, 85, 85, 93, 213, 221, 84, 93, 64, 68, 5, 4, 0 defb 1, 64, 5, 84, 68, 64, 80, 21, 21, 221, 221, 93, 213, 221, 221, 221 defb 221, 213, 213, 213, 85, 85, 85, 197, 84, 68, 84, 84, 84, 20, 64, 0 defb 0, 0, 0, 0, 64, 0, 0, 68, 4, 85, 85, 85, 93, 221, 221, 221 defb 221, 85, 221, 93, 84, 85, 84, 68, 0, 0, 0, 1, 65, 64, 0, 0 defb 40, 0, 2, 14, 168, 136, 0, 226, 227, 254, 42, 226, 238, 168, 47, 255 defb 239, 162, 170, 168, 175, 250, 130, 191, 194, 160, 34, 170, 234, 174, 40, 46 defb 40, 192, 6, 238, 130, 128, 2, 170, 254, 234, 168, 42, 170, 160, 41, 250 defb 170, 130, 170, 136, 186, 174, 162, 168, 130, 170, 128, 169, 238, 234, 129, 168 defb 174, 224, 170, 170, 46, 130, 162, 234, 170, 166, 186, 170, 170, 138, 238, 238 defb 136, 128, 170, 170, 143, 250, 232, 8, 0, 2, 0, 32, 191, 254, 174, 128 defb 174, 174, 238, 255, 175, 234, 238, 170, 170, 168, 168, 2, 130, 42, 170, 170 defb 47, 232, 255, 128, 170, 203, 234, 170, 239, 254, 234, 234, 250, 170, 238, 162 defb 174, 235, 238, 250, 237, 170, 139, 255, 255, 255, 255, 255, 255, 255, 255, 255 defb 255, 254, 238, 170, 255, 235, 255, 255, 254, 255, 255, 250, 160, 58, 184, 136 defb 32, 128, 170, 174, 170, 0, 170, 175, 255, 255, 255, 255, 255, 255, 255, 255 defb 255, 255, 255, 255, 255, 255, 255, 255, 255, 250, 255, 234, 226, 174, 142, 138 defb 138, 162, 46, 186, 238, 42, 168, 232, 10, 250, 250, 255, 255, 255, 255, 255 defb 255, 255, 255, 255, 254, 186, 238, 170, 238, 226, 162, 234, 170, 170, 32, 34 defb 138, 128, 10, 130, 128, 168, 136, 160, 42, 250, 175, 238, 255, 255, 255, 255 defb 255, 255, 254, 254, 234, 254, 174, 170, 160, 136, 0, 8, 162, 170, 128, 0 ;background attribute data defb 69, 69, 69, 69, 69, 69, 69, 69, 69, 77, 77, 77, 77, 77, 77, 77 defb 77, 77, 77, 69, 69, 5, 77, 77, 69, 69, 69, 77, 69, 69, 69, 69 defb 69, 5, 69, 68, 69, 69, 69, 69, 69, 69, 77, 69, 77, 77, 77, 77 defb 77, 77, 69, 69, 69, 69, 69, 77, 69, 69, 69, 69, 69, 69, 5, 69 defb 68, 69, 69, 68, 69, 69, 69, 69, 69, 77, 69, 69, 77, 77, 77, 77 defb 77, 77, 77, 69, 69, 69, 69, 69, 69, 69, 69, 69, 5, 69, 69, 68 defb 65, 65, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 77, 77, 69 defb 77, 77, 69, 69, 69, 65, 69, 69, 69, 69, 69, 5, 69, 69, 69, 68 defb 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 5, 5, 69, 77, 69, 69 defb 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 65, 68, 65 defb 68, 69, 68, 68, 69, 69, 69, 69, 69, 69, 69, 69, 69, 77, 69, 65 defb 69, 65, 69, 69, 69, 69, 69, 69, 69, 69, 65, 69, 69, 69, 68, 69 defb 69, 68, 68, 68, 69, 69, 69, 68, 65, 69, 69, 5, 69, 69, 65, 65 defb 69, 69, 65, 69, 69, 5, 69, 69, 69, 69, 65, 69, 69, 5, 69, 65 defb 68, 68, 68, 65, 69, 69, 69, 69, 69, 69, 65, 69, 69, 69, 65, 1 defb 5, 69, 69, 69, 69, 5, 65, 65, 65, 69, 69, 69, 5, 5, 69, 65 defb 69, 69, 69, 69, 69, 65, 69, 69, 69, 69, 65, 69, 69, 65, 65, 69 defb 5, 5, 5, 69, 65, 1, 65, 69, 69, 69, 69, 5, 68, 69, 69, 69 defb 69, 69, 69, 69, 69, 69, 68, 68, 69, 65, 69, 65, 65, 1, 65, 69 defb 69, 69, 65, 69, 69, 65, 65, 69, 69, 68, 69, 69, 69, 69, 69, 64 defb 65, 69, 69, 65, 69, 65, 69, 69, 69, 69, 69, 65, 13, 13, 69, 77 defb 69, 69, 69, 5, 69, 69, 65, 65, 65, 65, 65, 69, 69, 69, 69, 65 defb 65, 65, 65, 65, 65, 69, 69, 69, 69, 65, 65, 13, 13, 69, 69, 69 defb 69, 69, 69, 69, 5, 69, 69, 65, 65, 69, 69, 69, 69, 69, 65, 65 defb 65, 65, 65, 65, 65, 69, 69, 65, 65, 1, 13, 69, 69, 69, 69, 69 defb 69, 69, 69, 69, 69, 5, 65, 69, 69, 65, 68, 69, 69, 69, 65, 65 defb 65, 65, 65, 65, 65, 65, 69, 69, 65, 5, 69, 69, 69, 69, 69, 69 defb 69, 69, 69, 69, 69, 69, 69, 65, 69, 65, 65, 65, 69, 69, 64, 65 defb 65, 65, 65, 69, 69, 5, 68, 68, 69, 69, 69, 65, 65, 65, 69, 69 defb 69, 69, 69, 69, 69, 69, 69, 65, 69, 69, 65, 65, 69, 65, 69, 65 defb 69, 65, 65, 69, 69, 69, 68, 69, 69, 69, 69, 77, 77, 69, 69, 77 defb 69, 69, 69, 69, 69, 69, 69, 65, 69, 69, 69, 65, 65, 69, 69, 65 defb 69, 65, 69, 69, 69, 65, 68, 69, 69, 69, 69, 13, 5, 69, 69, 77 defb 69, 69, 69, 69, 69, 69, 69, 1, 65, 69, 69, 69, 65, 69, 65, 69 defb 69, 69, 68, 5, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69 defb 69, 69, 69, 69, 69, 69, 65, 69, 65, 65, 69, 69, 68, 5, 69, 69 defb 5, 69, 68, 69, 69, 69, 69, 69, 5, 69, 69, 69, 69, 69, 69, 69 defb 69, 69, 69, 69, 69, 69, 69, 69, 69, 65, 68, 65, 5, 5, 69, 69 defb 69, 69, 5, 5, 5, 68, 5, 69, 69, 69, 69, 69, 69, 69, 69, 69 defb 69, 69, 5, 69, 69, 69, 69, 69, 69, 69, 69, 69, 5, 69, 5, 65 defb 65, 5, 69, 5, 5, 68, 5, 69, 69, 69, 69, 69, 69, 69, 69, 69 defb 5, 69, 69, 69, 69, 69, 69, 5, 69, 69, 5, 69, 65, 5, 65, 65 defb 65, 65, 69, 5, 68, 68, 68, 69, 5, 69, 69, 69, 69, 69, 69, 69 defb 69, 69, 5, 5, 69, 69, 5, 69, 5, 69, 5, 69, 69, 1, 65, 65 defb 65, 65, 65, 65, 1, 65, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69 defb 69, 69, 69, 5, 69, 69, 69, 69, 5, 69, 5, 5, 65, 65, 65, 65 defb 65, 65, 65, 65, 65, 65, 69, 69, 69, 5, 69, 69, 69, 69, 69, 69 defb 69, 69, 69, 69, 69, 5, 5, 68, 69, 69, 65, 65, 65, 65, 65, 65