diff --git a/demos/shell/Overlay.s b/demos/shell/Overlay.s index 45499b7..1999254 100644 --- a/demos/shell/Overlay.s +++ b/demos/shell/Overlay.s @@ -14,7 +14,7 @@ CHAR_TILE_BASE equ 241 ; set this to the real tile id that starts an ASCII run starting at '0' through 'Z' -; Define the sized of the left and right overlay buffers +; Define the sizes of the left and right overlay buffers R_CHAR_COUNT equ 8 ; "TICK:XXX" L_CHAR_COUNT equ 7 ; "FPS:XXX" diff --git a/demos/shell/package-lock.json b/demos/shell/package-lock.json index 82b4205..6d19b60 100644 --- a/demos/shell/package-lock.json +++ b/demos/shell/package-lock.json @@ -13,15 +13,6 @@ "file-uri-to-path": "1.0.0" } }, - "exec-sh": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.2.2.tgz", - "integrity": "sha512-FIUCJz1RbuS0FKTdaAafAByGS0CPvU3R0MeHxgtl+djzCc//F8HakL8GzmVNZanasTbTAY/3DRFA0KpVqj/eAw==", - "dev": true, - "requires": { - "merge": "^1.2.0" - } - }, "file-uri-to-path": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", @@ -62,18 +53,6 @@ } } }, - "merge": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/merge/-/merge-1.2.1.tgz", - "integrity": "sha512-VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ==", - "dev": true - }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - }, "nan": { "version": "2.15.0", "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz", @@ -125,16 +104,6 @@ } } }, - "watch": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/watch/-/watch-1.0.2.tgz", - "integrity": "sha1-NApxe952Vyb6CqB9ch4BR6VR3ww=", - "dev": true, - "requires": { - "exec-sh": "^0.2.0", - "minimist": "^1.2.0" - } - }, "xml2json": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/xml2json/-/xml2json-0.12.0.tgz", diff --git a/demos/shell/package.json b/demos/shell/package.json index 3a89880..4a25ec8 100644 --- a/demos/shell/package.json +++ b/demos/shell/package.json @@ -39,7 +39,6 @@ "devDependencies": { "pngjs": "^6.0.0", "string-builder": "^0.1.8", - "watch": "latest", "xml2json": "^0.12.0" } } diff --git a/demos/sprites/App.Main.s b/demos/sprites/App.Main.s index 0d15950..42d79a9 100644 --- a/demos/sprites/App.Main.s +++ b/demos/sprites/App.Main.s @@ -40,36 +40,157 @@ DOWN_ARROW equ $0A ; Set up our level data jsr BG0SetUp - jsr TileAnimInit + jsr SetLimits -; Allocate room to load data - jsr MovePlayerToOrigin ; Put the player at the beginning of the map + jsr InitOverlay ; Initialize the status bar + stz frameCount + ldal OneSecondCounter + sta oldOneSecondCounter + jsr UdtOverlay + +; Initialize the sprite's global position (this is tracked outside of the tile engine) + lda #16 + sta PlayerGlobalX + lda MaxGlobalY + sec + lda #40 ; 32 for tiles, 8 for sprite + sta PlayerGlobalY + + stz PlayerXVel + stz PlayerYVel + +; Add a sprite to the engine and save it's sprite ID + + jsr UpdatePlayerLocal + lda #64 ; 8x8 sprite, tile ID = 64 + ldx PlayerX + ldy PlayerY + jsl AddSprite + bcc :sprite_ok + brl Exit ; If we could not allocate a sprite, exit + +:sprite_ok + sta PlayerID + +; Draw the initial screen lda #DIRTY_BIT_BG0_REFRESH ; Redraw all of the tiles on the next Render tsb DirtyBits - - lda #$FFFF jsl Render + +; Set up a very specific test. First, we draw a sprite into the sprite plane, and then +; leave it alone. We are just testing the ability to merge sprite plane data into +; the play field tiles. EvtLoop - jsl DoTimers - jsl Render - jsl ReadControl + +; Check the buttons first + pha + + bit #$0100 + beq :no_jump + lda PlayerStanding + beq :no_jump + lda #$FFF8 + sta PlayerYVel +:no_jump + pla and #$007F ; Ignore the buttons for now cmp #'q' - bne :7 + bne :not_q brl Exit +:not_q -:7 cmp #LEFT_ARROW - bne :8 - brl EvtLoop + cmp #'d' + bne :not_d + lda StartX + cmp MaxBG0X + bcs :do_render + inc + jsl SetBG0XPos + bra :do_render +:not_d -:8 cmp #RIGHT_ARROW - bne :9 - brl EvtLoop + cmp #'a' + bne :not_a + lda StartX + beq :do_render + dec + jsl SetBG0XPos + bra :do_render +:not_a -:9 + cmp #'s' + bne :not_s + lda StartY + cmp MaxBG0Y + bcs :do_render + inc + jsl SetBG0YPos + bra :do_render +:not_s + + cmp #'w' + bne :not_w + lda StartY + beq :do_render + dec + jsl SetBG0YPos + bra :do_render +:not_w + +; Do j,l to move the character left/right + cmp #'j' + bne :not_j + lda PlayerXVel + bpl :pos_xvel + cmp #$FFFA + bcc :not_j +:pos_xvel dec + dec + sta PlayerXVel + bra :do_render +:not_j + + cmp #'l' + bne :not_l + lda PlayerXVel + bmi :neg_xvel + cmp #6 + bcs :not_l +:neg_xvel inc + inc + sta PlayerXVel + bra :do_render +:not_l + +; Update the camera position + +:do_render + jsr UpdatePlayerPos ; Moves in global cordinates + jsr UpdateCameraPos ; Moves the screen + jsr UpdatePlayerLocal ; Gets local sprite coordinates + + lda PlayerID + ldx PlayerX + ldy PlayerY + jsl UpdateSprite ; Move the sprite to this local position + +; Let's see what it looks like! + + jsl Render + +; Update the performance counters + + inc frameCount + ldal OneSecondCounter + cmp oldOneSecondCounter + beq :noudt + sta oldOneSecondCounter + jsr UdtOverlay + stz frameCount +:noudt brl EvtLoop ; Exit code @@ -81,7 +202,222 @@ Exit bcs Fatal Fatal brk $00 -MyPalette dw $0000,$0777,$0F31,$0E51,$00A0,$02E3,$0BF1,$0FA4,$0FD7,$0EE6,$0F59,$068F,$01CE,$09B9,$0EDA,$0EEE +MyPalette dw $068F,$0EDA,$0000,$068F,$0BF1,$00A0,$0EEE,$0777,$01CE,$0FA4,$0F59,$0D40,$02E3,$09B9,$0F93,$0FD7 + +PlayerGlobalX ds 2 +PlayerGlobalY ds 2 + +PlayerID ds 2 +PlayerX ds 2 +PlayerXOld ds 2 +PlayerY ds 2 +PlayerYOld ds 2 +PlayerLastPos ds 2 +PlayerXVel ds 2 +PlayerYVel ds 2 +KeyState ds 2 +PlayerStanding ds 2 +MaxGlobalX ds 2 +MaxGlobalY ds 2 +MaxBG0X ds 2 +MaxBG0Y ds 2 + +oldOneSecondCounter ds 2 +frameCount ds 2 + +PLAYER_X_MIN equ 0 +PLAYER_X_MAX equ 160-4 +PLAYER_Y_MIN equ 0 +PLAYER_Y_MAX equ 200-8 + +EMPTY_TILE equ $0029 ; the tile that makes up the background + +AdjustLocalX + clc + adc StartXMod164 + cmp #164 + bcc *+5 + sbc #164 + rts +AdjustLocalY + clc + adc StartYMod208 + cmp #208 + bcc *+5 + sbc #208 + rts + +SetLimits + lda TileMapWidth + asl + asl + sta MaxGlobalX + sec + sbc ScreenWidth + sta MaxBG0X + + lda TileMapHeight + asl + asl + asl + sta MaxGlobalY + sec + sbc ScreenHeight + sta MaxBG0Y + rts + +; Set the scroll position based on the global cooridinate of the player +; Try to center the player on the screen +UpdateCameraPos + lda ScreenWidth + lsr + sta tmp0 + lda PlayerGlobalX + sec + sbc tmp0 + bpl :x_pos + lda #0 +:x_pos cmp MaxBG0X + bcc :x_ok + lda MaxBG0X +:x_ok jsl SetBG0XPos + + lda ScreenHeight + lsr + sta tmp0 + lda PlayerGlobalY + sec + sbc tmp0 + bpl :y_pos + lda #0 +:y_pos cmp MaxBG0Y + bcc :y_ok + lda MaxBG0Y +:y_ok jsl SetBG0YPos + rts + +; Convert the global coordinates to adjusted local coordinated (compensating for wrap-around) +UpdatePlayerLocal + lda PlayerGlobalX + sec + sbc StartX +; jsr AdjustLocalX + sta PlayerX + + lda PlayerGlobalY + sec + sbc StartY +; jsr AdjustLocalY + sta PlayerY + rts + +; Simple updates with gravity and collisions. It's important that eveything in this +; subroutine be done against +UpdatePlayerPos + stz PlayerStanding + lda PlayerYVel + bmi :no_ground_check + +; Check if the player is standing on the ground at their current local position + + ldx PlayerX + lda PlayerY + clc + adc #8 + tay + jsr GetTileAt + cmp #EMPTY_TILE + beq :no_ground_check + + lda PlayerGlobalY + and #$fff8 + sta PlayerGlobalY + stz PlayerYVel + lda #1 + sta PlayerStanding + +:no_ground_check + lda PlayerGlobalY + clc + adc PlayerYVel + bpl *+5 + lda #0 + + cmp MaxGlobalY + bcc *+5 + lda MaxGlobalY + sta PlayerGlobalY + + lda PlayerGlobalX + clc + adc PlayerXVel + bpl *+5 + lda #0 + + cmp MaxGlobalX + bcc *+5 + lda MaxGlobalX + sta PlayerGlobalX + + lda PlayerXVel + beq :no_dxv + bpl :pos_dxv + inc + bra :no_dxv +:pos_dxv + dec +:no_dxv + sta PlayerXVel + + lda PlayerStanding + bne :too_fast + + lda PlayerYVel + inc + bmi :is_neg + cmp #4 + bcs :too_fast +:is_neg + sta PlayerYVel +:too_fast + rts + +; X = coordinate +; Y = coordinate +GetTileAt + txa + bmi :out + clc + adc StartXMod164 + cmp #164 + bcc *+5 + sbc #164 + + lsr + lsr + tax + + tya + bmi :out + clc + adc StartYMod208 + cmp #208 + bcc *+5 + sbc #208 + + lsr + lsr + lsr + tay + + jsl GetTileStoreOffset + tax + ldal TileStore+TS_TILE_ID,x + rts + +:out + lda #EMPTY_TILE + rts ; Position the screen with the botom-left corner of the tilemap visible MovePlayerToOrigin @@ -95,19 +431,13 @@ MovePlayerToOrigin sec sbc ScreenHeight jsl SetBG0YPos - - ldx #10 - ldy #10 - jsl AddSprite rts qtRec adrl $0000 da $00 + PUT ../shell/Overlay.s PUT gen/App.TileMapBG0.s PUT gen/App.TileSetAnim.s -Overlay ENT - rtl - ANGLEBNK ENT \ No newline at end of file diff --git a/demos/sprites/App.s b/demos/sprites/App.s index 62dad69..9a1c19e 100644 --- a/demos/sprites/App.s +++ b/demos/sprites/App.s @@ -23,3 +23,15 @@ DS 0 KND #$1001 ; Type and Attributes ($11=Static+Bank Relative,$01=Data) SNA Tiles + +; Segment #4 -- 64KB Sprite Plane Data + + ASM SprData.s + KND #$1001 ; Type and Attributes ($11=Static+Bank Relative,$01=Data) + SNA SPRDATA + +; Segment #5 -- 64KB Sprite Mask Data + + ASM SprMask.s + KND #$1001 ; Type and Attributes ($11=Static+Bank Relative,$01=Data) + SNA SPRMASK diff --git a/demos/sprites/SprData.s b/demos/sprites/SprData.s new file mode 100644 index 0000000..55967b9 --- /dev/null +++ b/demos/sprites/SprData.s @@ -0,0 +1,2 @@ +spritedata ENT + ds 65536 \ No newline at end of file diff --git a/demos/sprites/SprMask.s b/demos/sprites/SprMask.s new file mode 100644 index 0000000..a6ef5b6 --- /dev/null +++ b/demos/sprites/SprMask.s @@ -0,0 +1,2 @@ +spritemask ENT + ds 65536 \ No newline at end of file diff --git a/demos/sprites/assets/tiled/world_1-1.json b/demos/sprites/assets/tiled/world_1-1.json index d5559ec..62e4a77 100644 --- a/demos/sprites/assets/tiled/world_1-1.json +++ b/demos/sprites/assets/tiled/world_1-1.json @@ -3,14 +3,14 @@ "infinite":false, "layers":[ { - "data":[41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 11, 12, 13, 14, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 15, 16, 17, 18, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 169, 170, 169, 170, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 11, 12, 13, 14, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 19, 20, 21, 22, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 57, 58, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 209, 210, 209, 210, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 15, 16, 17, 18, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 19, 20, 21, 22, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 56, 21, 62, 59, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 11, 12, 13, 14, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 19, 20, 21, 22, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 19, 20, 21, 22, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 56, 21, 21, 21, 21, 59, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 57, 2147483705, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 15, 16, 17, 18, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 19, 20, 21, 22, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 19, 20, 21, 22, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 56, 21, 62, 21, 21, 62, 21, 59, 41, 41, 41, 169, 170, 169, 170, 169, 170, 169, 170, 169, 170, 41, 41, 42, 43, 42, 43, 42, 43, 41, 41, 41, 56, 21, 62, 2147483704, 41, 41, 41, 169, 170, 169, 170, 169, 170, 41, 41, 42, 43, 41, 41, 41, 41, 169, 170, 19, 20, 21, 22, 41, 41, 169, 170, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 19, 20, 21, 22, 41, 41, 41, 41, 42, 43, 42, 43, 41, 41, 41, 41, 19, 20, 21, 22, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 56, 21, 21, 21, 21, 21, 21, 21, 21, 59, 41, 41, 209, 210, 209, 210, 209, 210, 209, 210, 209, 210, 41, 44, 45, 45, 45, 45, 45, 45, 46, 41, 56, 21, 21, 21, 21, 2147483704, 41, 41, 209, 210, 209, 210, 209, 210, 41, 44, 45, 45, 46, 41, 41, 41, 209, 210, 19, 20, 21, 22, 41, 41, 209, 210, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 19, 20, 21, 22, 41, 41, 41, 44, 45, 45, 45, 45, 46, 41, 41, 41, 19, 20, 21, 22, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4], + "data":[41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 65, 66, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 67, 68, 68, 69, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 65, 66, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 70, 71, 72, 73, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 65, 66, 65, 66, 65, 66, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 65, 66, 65, 66, 65, 66, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 35, 36, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 67, 68, 68, 69, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 67, 68, 68, 68, 68, 68, 68, 69, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 67, 68, 68, 68, 68, 68, 68, 69, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 63, 64, 10, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 70, 71, 72, 73, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 70, 71, 72, 71, 72, 71, 72, 73, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 70, 71, 72, 71, 72, 71, 72, 73, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 63, 10, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 9, 10, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 113, 114, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 74, 75, 74, 75, 74, 75, 74, 75, 74, 75, 74, 75, 74, 75, 74, 75, 41, 41, 41, 41, 41, 41, 74, 75, 74, 75, 74, 75, 113, 114, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 113, 114, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 74, 75, 74, 75, 74, 75, 41, 41, 41, 41, 41, 41, 41, 41, 74, 75, 113, 114, 113, 114, 74, 75, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 5, 6, 5, 6, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 9, 10, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 153, 154, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 41, 41, 41, 41, 41, 41, 26, 26, 26, 26, 26, 26, 153, 154, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 153, 154, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 26, 26, 26, 26, 26, 26, 41, 41, 41, 41, 41, 41, 41, 41, 26, 26, 153, 154, 153, 154, 26, 26, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 7, 8, 7, 8, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 9, 10, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 5, 6, 5, 6, 5, 6, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 9, 10, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 7, 8, 7, 8, 7, 8, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 9, 10, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 5, 6, 5, 6, 5, 6, 5, 6, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 9, 10, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 7, 8, 7, 8, 7, 8, 7, 8, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 9, 10, 41, 41, 41, 41, 41, 41, 41, 41, 31, 32, 31, 32, 31, 32, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 9, 10, 41, 41, 41, 41, 41, 41, 41, 41, 26, 26, 26, 26, 26, 26, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 9, 10, 41, 41, 41, 41, 41, 41, 41, 41, 26, 26, 26, 26, 26, 26, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 113, 114, 41, 41, 41, 41, 41, 41, 74, 75, 113, 114, 74, 75, 113, 114, 74, 75, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 11, 12, 13, 14, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 11, 12, 13, 14, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 74, 75, 113, 114, 74, 75, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 74, 75, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 74, 75, 74, 75, 41, 41, 41, 41, 41, 41, 41, 41, 113, 114, 41, 41, 41, 41, 113, 114, 41, 41, 41, 41, 113, 114, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 74, 75, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 74, 75, 74, 75, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 5, 6, 41, 41, 41, 41, 5, 6, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 5, 6, 5, 6, 41, 41, 41, 41, 5, 6, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 74, 75, 74, 75, 113, 114, 74, 75, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 9, 10, 41, 41, 41, 41, 41, 41, 41, 41, 26, 0, 26, 26, 0, 26, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 153, 154, 41, 41, 41, 41, 41, 41, 26, 26, 153, 154, 26, 26, 153, 154, 26, 26, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 15, 16, 17, 18, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 15, 16, 17, 18, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 26, 26, 153, 154, 26, 26, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 26, 26, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 26, 26, 26, 26, 41, 41, 41, 41, 41, 41, 41, 41, 153, 154, 41, 41, 41, 41, 153, 154, 41, 41, 41, 41, 153, 154, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 26, 26, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 26, 26, 26, 26, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 7, 8, 41, 41, 41, 41, 7, 8, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 7, 8, 7, 8, 41, 41, 41, 41, 7, 8, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 26, 26, 26, 26, 153, 154, 26, 26, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 9, 10, 41, 41, 41, 41, 41, 41, 41, 41, 26, 0, 26, 26, 0, 26, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 11, 12, 13, 14, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 19, 20, 21, 22, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 19, 20, 21, 22, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 5, 6, 5, 6, 41, 41, 41, 41, 5, 6, 5, 6, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 5, 6, 5, 6, 5, 6, 41, 41, 41, 41, 5, 6, 5, 6, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 9, 10, 41, 41, 41, 41, 41, 41, 31, 32, 24, 25, 24, 25, 24, 25, 31, 32, 41, 41, 41, 41, 41, 41, 57, 58, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 15, 16, 17, 18, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 19, 20, 21, 22, 41, 41, 41, 41, 57, 58, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 19, 20, 21, 22, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 57, 58, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 7, 8, 7, 8, 41, 41, 41, 41, 7, 8, 7, 8, 41, 41, 41, 41, 41, 41, 41, 41, 57, 58, 41, 41, 41, 41, 41, 41, 7, 8, 7, 8, 7, 8, 41, 41, 41, 41, 7, 8, 7, 8, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 41, 41, 41, 41, 41, 41, 41, 41, 57, 58, 41, 41, 41, 41, 41, 41, 9, 10, 41, 41, 41, 41, 41, 41, 26, 26, 26, 26, 33, 34, 26, 26, 26, 26, 41, 41, 41, 41, 41, 56, 21, 62, 59, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 11, 12, 13, 14, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 19, 20, 21, 22, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 19, 20, 21, 22, 41, 41, 41, 56, 21, 62, 59, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 19, 20, 21, 22, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 56, 21, 62, 59, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 5, 6, 5, 6, 5, 6, 41, 41, 41, 41, 5, 6, 5, 6, 5, 6, 41, 41, 41, 41, 41, 56, 21, 62, 59, 41, 41, 41, 5, 6, 5, 6, 5, 6, 5, 6, 41, 41, 41, 41, 5, 6, 5, 6, 5, 6, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 11, 12, 13, 14, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 11, 12, 13, 14, 41, 41, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 41, 41, 41, 41, 41, 41, 41, 56, 21, 62, 59, 41, 41, 41, 41, 41, 9, 10, 41, 41, 41, 41, 41, 41, 26, 26, 26, 26, 0, 0, 26, 26, 26, 26, 41, 41, 41, 41, 56, 21, 21, 21, 21, 59, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 57, 2147483705, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 15, 16, 17, 18, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 19, 20, 21, 22, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 19, 20, 21, 22, 41, 41, 56, 21, 21, 21, 21, 59, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 19, 20, 21, 22, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 57, 58, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 56, 21, 21, 21, 21, 59, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 57, 58, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 7, 8, 7, 8, 7, 8, 41, 41, 41, 41, 7, 8, 7, 8, 7, 8, 41, 41, 41, 41, 56, 21, 21, 21, 21, 59, 41, 41, 7, 8, 7, 8, 7, 8, 7, 8, 41, 41, 41, 41, 7, 8, 7, 8, 7, 8, 41, 41, 41, 41, 41, 41, 57, 58, 41, 41, 15, 16, 17, 18, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 15, 16, 17, 18, 41, 41, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 41, 41, 41, 41, 41, 41, 56, 21, 21, 21, 21, 59, 41, 41, 41, 41, 9, 10, 41, 41, 41, 41, 41, 41, 26, 26, 26, 26, 0, 0, 26, 26, 26, 26, 41, 41, 41, 56, 21, 62, 21, 21, 62, 21, 59, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 42, 43, 42, 43, 42, 43, 41, 41, 41, 56, 21, 62, 2147483704, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 42, 43, 41, 41, 41, 41, 41, 41, 19, 20, 21, 22, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 19, 20, 21, 22, 41, 41, 41, 41, 42, 43, 42, 43, 41, 41, 41, 41, 19, 20, 21, 22, 41, 56, 21, 62, 21, 21, 62, 21, 59, 41, 41, 41, 41, 41, 41, 41, 41, 41, 19, 20, 21, 22, 41, 41, 42, 43, 42, 43, 42, 43, 41, 41, 41, 56, 21, 62, 59, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 42, 43, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 42, 43, 42, 43, 41, 41, 41, 41, 41, 41, 41, 41, 41, 56, 21, 62, 21, 21, 62, 21, 59, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 42, 43, 42, 43, 42, 43, 41, 41, 41, 56, 21, 62, 59, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 42, 43, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 5, 6, 5, 6, 5, 6, 5, 6, 42, 43, 42, 43, 5, 6, 5, 6, 5, 6, 5, 6, 41, 56, 21, 62, 21, 21, 62, 21, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 41, 41, 41, 41, 5, 6, 5, 6, 5, 6, 5, 6, 41, 41, 41, 56, 21, 62, 59, 41, 19, 20, 21, 22, 41, 41, 41, 41, 0, 41, 42, 43, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 19, 20, 21, 22, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 41, 41, 41, 41, 41, 56, 21, 62, 21, 21, 62, 21, 59, 41, 41, 41, 5, 6, 41, 41, 41, 41, 41, 41, 26, 26, 26, 26, 0, 0, 26, 26, 26, 26, 41, 41, 56, 21, 21, 21, 21, 21, 21, 21, 21, 59, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 44, 45, 45, 45, 45, 45, 45, 46, 41, 56, 21, 21, 21, 21, 2147483704, 41, 41, 41, 41, 41, 41, 41, 41, 41, 44, 45, 45, 46, 41, 41, 41, 41, 41, 19, 20, 21, 22, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 19, 20, 21, 22, 41, 41, 41, 44, 45, 45, 45, 45, 46, 41, 41, 41, 19, 20, 21, 22, 56, 21, 21, 21, 21, 21, 21, 21, 21, 59, 41, 41, 41, 41, 41, 41, 41, 41, 19, 20, 21, 22, 41, 44, 45, 45, 45, 45, 45, 45, 46, 41, 56, 21, 21, 21, 21, 59, 41, 41, 41, 41, 41, 41, 41, 41, 41, 44, 45, 45, 46, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 44, 45, 45, 45, 45, 46, 41, 41, 41, 41, 41, 41, 41, 56, 21, 21, 21, 21, 21, 21, 21, 21, 59, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 44, 45, 45, 45, 45, 45, 45, 46, 41, 56, 21, 21, 21, 21, 59, 41, 41, 41, 41, 41, 41, 41, 41, 41, 44, 45, 45, 46, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 7, 8, 7, 8, 7, 8, 7, 8, 45, 45, 45, 45, 7, 8, 7, 8, 7, 8, 7, 8, 56, 21, 21, 21, 21, 21, 21, 21, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 41, 41, 41, 41, 7, 8, 7, 8, 7, 8, 7, 8, 46, 41, 56, 21, 21, 21, 21, 59, 19, 20, 21, 22, 41, 41, 41, 41, 0, 44, 45, 45, 46, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 19, 20, 21, 22, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 8, 41, 41, 41, 41, 56, 21, 21, 21, 21, 21, 21, 21, 21, 59, 41, 41, 7, 8, 41, 41, 41, 41, 41, 41, 26, 26, 26, 26, 0, 0, 26, 26, 26, 26, 46, 41, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 41, 41, 41, 41, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 41, 41, 41, 41, 41, 41, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 41, 41, 41, 41, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 41, 41, 41, 41, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 41, 41, 41, 41, 41, 41, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 41, 41, 41, 41, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 41, 41, 41, 41, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 41, 41, 41, 41, 41, 41, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 41, 41, 41, 41, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 41, 41, 41, 41, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 41, 41, 41, 41, 41, 41, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 41, 41, 41, 41, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4], "height":30, "id":1, "name":"App.TileMapBG0", "opacity":1, "type":"tilelayer", "visible":true, - "width":256, + "width":416, "x":0, "y":0 }], @@ -28,5 +28,5 @@ "tilewidth":8, "type":"map", "version":"1.6", - "width":256 + "width":416 } \ No newline at end of file diff --git a/demos/sprites/assets/tiled/world_1-1.tmx b/demos/sprites/assets/tiled/world_1-1.tmx index 7a3cd23..ee08dc6 100644 --- a/demos/sprites/assets/tiled/world_1-1.tmx +++ b/demos/sprites/assets/tiled/world_1-1.tmx @@ -1,41 +1,41 @@ - + - + -41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41, -41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41, -41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41, -41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41, -41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41, -41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41, -41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41, -41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41, -41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41, -41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41, -41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41, -41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41, -41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41, -41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41, -41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41, -41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41, -41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41, -41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41, -41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,11,12,13,14,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41, -41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,15,16,17,18,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41, -41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,169,170,169,170,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,11,12,13,14,41,41,41,41,41,41,41,41,41,41,41,41,19,20,21,22,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41, -41,41,41,41,57,58,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,209,210,209,210,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,15,16,17,18,41,41,41,41,41,41,41,41,41,41,41,41,19,20,21,22,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41, -41,41,41,56,21,62,59,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,11,12,13,14,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,19,20,21,22,41,41,41,41,41,41,41,41,41,41,41,41,19,20,21,22,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41, -41,41,56,21,21,21,21,59,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,57,2147483705,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,15,16,17,18,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,19,20,21,22,41,41,41,41,41,41,41,41,41,41,41,41,19,20,21,22,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41, -41,56,21,62,21,21,62,21,59,41,41,41,169,170,169,170,169,170,169,170,169,170,41,41,42,43,42,43,42,43,41,41,41,56,21,62,2147483704,41,41,41,169,170,169,170,169,170,41,41,42,43,41,41,41,41,169,170,19,20,21,22,41,41,169,170,41,41,41,41,41,41,41,41,41,41,41,41,19,20,21,22,41,41,41,41,42,43,42,43,41,41,41,41,19,20,21,22,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41, -56,21,21,21,21,21,21,21,21,59,41,41,209,210,209,210,209,210,209,210,209,210,41,44,45,45,45,45,45,45,46,41,56,21,21,21,21,2147483704,41,41,209,210,209,210,209,210,41,44,45,45,46,41,41,41,209,210,19,20,21,22,41,41,209,210,41,41,41,41,41,41,41,41,41,41,41,41,19,20,21,22,41,41,41,44,45,45,45,45,46,41,41,41,19,20,21,22,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41, -1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, -3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4, -1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, -3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4 +41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41, +41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41, +41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41, +41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41, +41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,65,66,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41, +41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,67,68,68,69,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41, +41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,65,66,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,70,71,72,73,41,41,41,41,41,41,41,41,41,41,41,41,65,66,65,66,65,66,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,65,66,65,66,65,66,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,35,36,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41, +41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,67,68,68,69,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,67,68,68,68,68,68,68,69,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,67,68,68,68,68,68,68,69,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,63,64,10,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41, +41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,70,71,72,73,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,70,71,72,71,72,71,72,73,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,70,71,72,71,72,71,72,73,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,63,10,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41, +41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,9,10,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41, +41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,113,114,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,74,75,74,75,74,75,74,75,74,75,74,75,74,75,74,75,41,41,41,41,41,41,74,75,74,75,74,75,113,114,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,113,114,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,74,75,74,75,74,75,41,41,41,41,41,41,41,41,74,75,113,114,113,114,74,75,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,5,6,5,6,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,9,10,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41, +41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,153,154,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,41,41,41,41,41,41,26,26,26,26,26,26,153,154,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,153,154,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,26,26,26,26,26,26,41,41,41,41,41,41,41,41,26,26,153,154,153,154,26,26,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,7,8,7,8,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,9,10,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41, +41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,5,6,5,6,5,6,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,9,10,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41, +41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,7,8,7,8,7,8,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,9,10,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41, +41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,5,6,5,6,5,6,5,6,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,9,10,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41, +41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,7,8,7,8,7,8,7,8,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,9,10,41,41,41,41,41,41,41,41,31,32,31,32,31,32,41,41,41,41, +41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,5,6,5,6,5,6,5,6,5,6,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,9,10,41,41,41,41,41,41,41,41,26,26,26,26,26,26,41,41,41,41, +41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,7,8,7,8,7,8,7,8,7,8,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,9,10,41,41,41,41,41,41,41,41,26,26,26,26,26,26,41,41,41,41, +41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,113,114,41,41,41,41,41,41,74,75,113,114,74,75,113,114,74,75,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,11,12,13,14,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,11,12,13,14,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,74,75,113,114,74,75,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,74,75,41,41,41,41,41,41,41,41,41,41,74,75,74,75,41,41,41,41,41,41,41,41,113,114,41,41,41,41,113,114,41,41,41,41,113,114,41,41,41,41,41,41,41,41,41,41,74,75,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,74,75,74,75,41,41,41,41,41,41,41,41,41,41,41,41,5,6,41,41,41,41,5,6,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,5,6,5,6,41,41,41,41,5,6,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,74,75,74,75,113,114,74,75,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,5,6,5,6,5,6,5,6,5,6,5,6,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,9,10,41,41,41,41,41,41,41,41,26,0,26,26,0,26,41,41,41,41, +41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,153,154,41,41,41,41,41,41,26,26,153,154,26,26,153,154,26,26,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,15,16,17,18,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,15,16,17,18,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,26,26,153,154,26,26,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,26,26,41,41,41,41,41,41,41,41,41,41,26,26,26,26,41,41,41,41,41,41,41,41,153,154,41,41,41,41,153,154,41,41,41,41,153,154,41,41,41,41,41,41,41,41,41,41,26,26,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,26,26,26,26,41,41,41,41,41,41,41,41,41,41,41,41,7,8,41,41,41,41,7,8,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,7,8,7,8,41,41,41,41,7,8,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,26,26,26,26,153,154,26,26,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,7,8,7,8,7,8,7,8,7,8,7,8,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,9,10,41,41,41,41,41,41,41,41,26,0,26,26,0,26,41,41,41,41, +41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,11,12,13,14,41,41,41,41,41,41,41,41,41,41,41,41,19,20,21,22,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,19,20,21,22,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,5,6,5,6,41,41,41,41,5,6,5,6,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,5,6,5,6,5,6,41,41,41,41,5,6,5,6,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,5,6,5,6,5,6,5,6,5,6,5,6,5,6,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,9,10,41,41,41,41,41,41,31,32,24,25,24,25,24,25,31,32,41,41, +41,41,41,41,57,58,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,15,16,17,18,41,41,41,41,41,41,41,41,41,41,41,41,19,20,21,22,41,41,41,41,57,58,41,41,41,41,41,41,41,41,41,41,41,41,19,20,21,22,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,57,58,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,7,8,7,8,41,41,41,41,7,8,7,8,41,41,41,41,41,41,41,41,57,58,41,41,41,41,41,41,7,8,7,8,7,8,41,41,41,41,7,8,7,8,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,7,8,7,8,7,8,7,8,7,8,7,8,7,8,41,41,41,41,41,41,41,41,57,58,41,41,41,41,41,41,9,10,41,41,41,41,41,41,26,26,26,26,33,34,26,26,26,26,41,41, +41,41,41,56,21,62,59,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,11,12,13,14,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,19,20,21,22,41,41,41,41,41,41,41,41,41,41,41,41,19,20,21,22,41,41,41,56,21,62,59,41,41,41,41,41,41,41,41,41,41,41,19,20,21,22,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,56,21,62,59,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,5,6,5,6,5,6,41,41,41,41,5,6,5,6,5,6,41,41,41,41,41,56,21,62,59,41,41,41,5,6,5,6,5,6,5,6,41,41,41,41,5,6,5,6,5,6,41,41,41,41,41,41,41,41,41,41,11,12,13,14,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,11,12,13,14,41,41,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,41,41,41,41,41,41,41,56,21,62,59,41,41,41,41,41,9,10,41,41,41,41,41,41,26,26,26,26,0,0,26,26,26,26,41,41, +41,41,56,21,21,21,21,59,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,57,2147483705,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,15,16,17,18,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,19,20,21,22,41,41,41,41,41,41,41,41,41,41,41,41,19,20,21,22,41,41,56,21,21,21,21,59,41,41,41,41,41,41,41,41,41,41,19,20,21,22,41,41,41,41,41,41,41,41,41,41,41,41,57,58,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,56,21,21,21,21,59,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,57,58,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,7,8,7,8,7,8,41,41,41,41,7,8,7,8,7,8,41,41,41,41,56,21,21,21,21,59,41,41,7,8,7,8,7,8,7,8,41,41,41,41,7,8,7,8,7,8,41,41,41,41,41,41,57,58,41,41,15,16,17,18,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,15,16,17,18,41,41,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,41,41,41,41,41,41,56,21,21,21,21,59,41,41,41,41,9,10,41,41,41,41,41,41,26,26,26,26,0,0,26,26,26,26,41,41, +41,56,21,62,21,21,62,21,59,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,42,43,42,43,42,43,41,41,41,56,21,62,2147483704,41,41,41,41,41,41,41,41,41,41,41,42,43,41,41,41,41,41,41,19,20,21,22,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,19,20,21,22,41,41,41,41,42,43,42,43,41,41,41,41,19,20,21,22,41,56,21,62,21,21,62,21,59,41,41,41,41,41,41,41,41,41,19,20,21,22,41,41,42,43,42,43,42,43,41,41,41,56,21,62,59,41,41,41,41,41,41,41,41,41,41,41,42,43,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,42,43,42,43,41,41,41,41,41,41,41,41,41,56,21,62,21,21,62,21,59,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,42,43,42,43,42,43,41,41,41,56,21,62,59,41,41,41,41,41,41,41,41,41,41,41,42,43,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,5,6,5,6,5,6,5,6,42,43,42,43,5,6,5,6,5,6,5,6,41,56,21,62,21,21,62,21,5,6,5,6,5,6,5,6,5,6,41,41,41,41,5,6,5,6,5,6,5,6,41,41,41,56,21,62,59,41,19,20,21,22,41,41,41,41,0,41,42,43,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,19,20,21,22,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,41,41,41,41,41,56,21,62,21,21,62,21,59,41,41,41,5,6,41,41,41,41,41,41,26,26,26,26,0,0,26,26,26,26,41,41, +56,21,21,21,21,21,21,21,21,59,41,41,41,41,41,41,41,41,41,41,41,41,41,44,45,45,45,45,45,45,46,41,56,21,21,21,21,2147483704,41,41,41,41,41,41,41,41,41,44,45,45,46,41,41,41,41,41,19,20,21,22,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,19,20,21,22,41,41,41,44,45,45,45,45,46,41,41,41,19,20,21,22,56,21,21,21,21,21,21,21,21,59,41,41,41,41,41,41,41,41,19,20,21,22,41,44,45,45,45,45,45,45,46,41,56,21,21,21,21,59,41,41,41,41,41,41,41,41,41,44,45,45,46,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,44,45,45,45,45,46,41,41,41,41,41,41,41,56,21,21,21,21,21,21,21,21,59,41,41,41,41,41,41,41,41,41,41,41,41,41,44,45,45,45,45,45,45,46,41,56,21,21,21,21,59,41,41,41,41,41,41,41,41,41,44,45,45,46,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,7,8,7,8,7,8,7,8,45,45,45,45,7,8,7,8,7,8,7,8,56,21,21,21,21,21,21,21,7,8,7,8,7,8,7,8,7,8,41,41,41,41,7,8,7,8,7,8,7,8,46,41,56,21,21,21,21,59,19,20,21,22,41,41,41,41,0,44,45,45,46,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,19,20,21,22,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,41,41,41,41,56,21,21,21,21,21,21,21,21,59,41,41,7,8,41,41,41,41,41,41,26,26,26,26,0,0,26,26,26,26,46,41, +1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,41,41,41,41,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,41,41,41,41,41,41,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,41,41,41,41,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, +3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,41,41,41,41,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,41,41,41,41,41,41,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,41,41,41,41,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4, +1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,41,41,41,41,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,41,41,41,41,41,41,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,41,41,41,41,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, +3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,41,41,41,41,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,41,41,41,41,41,41,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,41,41,41,41,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4 diff --git a/demos/sprites/assets/tilesets/smb-16.png b/demos/sprites/assets/tilesets/smb-16.png index b49978c..aabf684 100644 Binary files a/demos/sprites/assets/tilesets/smb-16.png and b/demos/sprites/assets/tilesets/smb-16.png differ diff --git a/demos/sprites/gen/App.TileMapBG0.s b/demos/sprites/gen/App.TileMapBG0.s index 71df859..c580c14 100644 --- a/demos/sprites/gen/App.TileMapBG0.s +++ b/demos/sprites/gen/App.TileMapBG0.s @@ -5,7 +5,7 @@ BG0SetUp - lda #256 + lda #416 sta TileMapWidth lda #30 sta TileMapHeight @@ -16,123 +16,198 @@ BG0SetUp rts App_TileMapBG0 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$000b,$000c,$000d,$000e,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$100f,$0010,$0011,$1012,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$0800,$0801,$0800,$0801,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$000b,$000c,$000d,$000e,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1013,$0014,$0015,$1016,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1039,$103a,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$0802,$0803,$0802,$0803,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$100f,$0010,$0011,$1012,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1013,$0014,$0015,$1016,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1038,$0015,$003e,$103b,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$000b,$000c,$000d,$000e,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1013,$0014,$0015,$1016,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1013,$0014,$0015,$1016,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1038,$0015,$0015,$0015,$0015,$103b,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1039,$1239,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$100f,$0010,$0011,$1012,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1013,$0014,$0015,$1016,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1013,$0014,$0015,$1016,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1038,$0015,$003e,$0015,$0015,$003e,$0015,$103b,$1029,$1029,$1029,$0800,$0801,$0800,$0801,$0800,$0801,$0800,$0801,$0800,$0801,$1029,$1029,$102a,$102b,$102a,$102b,$102a,$102b,$1029,$1029,$1029,$1038,$0015,$003e,$1238,$1029,$1029,$1029,$0800,$0801,$0800,$0801,$0800,$0801,$1029,$1029,$102a,$102b,$1029,$1029,$1029,$1029,$0800,$0801,$1013,$0014,$0015,$1016,$1029,$1029,$0800,$0801 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1013,$0014,$0015,$1016,$1029,$1029,$1029,$1029,$102a,$102b,$102a,$102b,$1029,$1029,$1029,$1029,$1013,$0014,$0015,$1016,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1038,$0015,$0015,$0015,$0015,$0015,$0015,$0015,$0015,$103b,$1029,$1029,$0802,$0803,$0802,$0803,$0802,$0803,$0802,$0803,$0802,$0803,$1029,$102c,$002d,$002d,$002d,$002d,$002d,$002d,$102e,$1029,$1038,$0015,$0015,$0015,$0015,$1238,$1029,$1029,$0802,$0803,$0802,$0803,$0802,$0803,$1029,$102c,$002d,$002d,$102e,$1029,$1029,$1029,$0802,$0803,$1013,$0014,$0015,$1016,$1029,$1029,$0802,$0803 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1013,$0014,$0015,$1016,$1029,$1029,$1029,$102c,$002d,$002d,$002d,$002d,$102e,$1029,$1029,$1029,$1013,$0014,$0015,$1016,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 - dw $1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029,$1029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0041,$0042,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0043,$0044,$0044,$0045,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0041,$0042,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0046,$0047,$0048,$0049,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0041,$0042,$0041,$0042,$0041,$0042,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0041,$0042,$0041,$0042,$0041,$0042,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0023,$0024,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0043,$0044,$0044,$0045,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0043,$0044,$0044,$0044,$0044,$0044,$0044,$0045,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0043,$0044,$0044,$0044,$0044,$0044,$0044,$0045,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$003f,$0040,$000a,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0046,$0047,$0048,$0049,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0046,$0047,$0048,$0047,$0048,$0047,$0048,$0049,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0046,$0047,$0048,$0047,$0048,$0047,$0048,$0049 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$003f,$000a,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0009,$000a,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0071,$0072,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$004a,$004b,$004a,$004b,$004a,$004b,$004a,$004b,$004a,$004b,$004a,$004b,$004a,$004b,$004a,$004b,$0029,$0029,$0029,$0029,$0029,$0029,$004a,$004b,$004a,$004b,$004a,$004b,$0071,$0072,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0071,$0072,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$004a,$004b,$004a,$004b,$004a,$004b,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $004a,$004b,$0071,$0072,$0071,$0072,$004a,$004b,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0005,$0006,$0005,$0006,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0009,$000a,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0099,$009a,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $001a,$001a,$001a,$001a,$001a,$001a,$001a,$001a,$001a,$001a,$001a,$001a,$001a,$001a,$001a,$001a,$0029,$0029,$0029,$0029,$0029,$0029,$001a,$001a,$001a,$001a,$001a,$001a,$0099,$009a,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0099,$009a,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$001a,$001a,$001a,$001a,$001a,$001a,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$001a,$001a,$0099,$009a,$0099,$009a,$001a,$001a,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0007,$0008,$0007,$0008,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0009,$000a,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0005,$0006,$0005,$0006,$0005,$0006,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0009,$000a,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0007,$0008,$0007,$0008,$0007,$0008,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0009,$000a,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0005,$0006,$0005,$0006,$0005,$0006,$0005,$0006,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0009,$000a,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0007,$0008,$0007,$0008,$0007,$0008,$0007,$0008,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0009,$000a,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$001f,$0020,$001f,$0020,$001f,$0020,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0005,$0006,$0005,$0006,$0005,$0006,$0005,$0006,$0005,$0006,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0009,$000a,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$001a,$001a,$001a,$001a,$001a,$001a,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0007,$0008,$0007,$0008,$0007,$0008,$0007,$0008,$0007,$0008,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0009,$000a,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$001a,$001a,$001a,$001a,$001a,$001a,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0071,$0072,$0029,$0029,$0029,$0029,$0029,$0029,$004a,$004b,$0071,$0072,$004a,$004b,$0071,$0072,$004a,$004b,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$000b,$000c,$000d,$000e,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$000b,$000c,$000d,$000e,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$004a,$004b,$0071,$0072,$004a,$004b,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$004a,$004b,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$004a,$004b,$004a,$004b,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0071,$0072,$0029,$0029,$0029,$0029,$0071,$0072,$0029,$0029,$0029,$0029,$0071,$0072,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$004a,$004b,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$004a,$004b,$004a,$004b,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0005,$0006,$0029,$0029,$0029,$0029,$0005,$0006,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0005,$0006,$0005,$0006,$0029,$0029,$0029,$0029,$0005,$0006,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$004a,$004b,$004a,$004b,$0071,$0072,$004a,$004b,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0005,$0006,$0005,$0006,$0005,$0006,$0005,$0006,$0005,$0006,$0005,$0006,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0009,$000a,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$001a,$0000,$001a,$001a,$0000,$001a,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0099,$009a,$0029,$0029,$0029,$0029,$0029,$0029,$001a,$001a,$0099,$009a,$001a,$001a,$0099,$009a,$001a,$001a,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$000f,$0010,$0011,$0012 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$000f,$0010,$0011,$0012,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$001a,$001a,$0099,$009a,$001a,$001a + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$001a,$001a,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$001a,$001a,$001a,$001a,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0099,$009a,$0029,$0029,$0029,$0029,$0099,$009a,$0029,$0029,$0029,$0029 + dw $0099,$009a,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$001a,$001a,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$001a,$001a,$001a,$001a,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0007,$0008,$0029,$0029,$0029,$0029,$0007,$0008,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0007,$0008,$0007,$0008,$0029,$0029,$0029,$0029,$0007,$0008,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$001a,$001a,$001a,$001a,$0099,$009a,$001a,$001a,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0007,$0008,$0007,$0008,$0007,$0008,$0007,$0008,$0007,$0008,$0007,$0008,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0009,$000a,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$001a,$0000,$001a,$001a,$0000,$001a,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$000b,$000c,$000d,$000e,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0013,$0014,$0015,$0016,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0013,$0014,$0015,$0016,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0005,$0006,$0005,$0006,$0029,$0029,$0029,$0029,$0005,$0006,$0005,$0006,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0005,$0006,$0005,$0006,$0005,$0006,$0029,$0029,$0029,$0029,$0005,$0006,$0005,$0006,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0005,$0006,$0005,$0006,$0005,$0006,$0005,$0006,$0005,$0006,$0005,$0006,$0005,$0006,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0009,$000a,$0029,$0029,$0029,$0029,$0029,$0029,$001f,$0020,$0018,$0019,$0018,$0019,$0018,$0019,$001f,$0020,$0029,$0029,$0029,$0029,$0029,$0029,$0039,$003a,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$000f,$0010,$0011,$0012,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0013,$0014,$0015,$0016 + dw $0029,$0029,$0029,$0029,$0039,$003a,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0013,$0014,$0015,$0016,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0039,$003a,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0007,$0008,$0007,$0008,$0029,$0029,$0029,$0029,$0007,$0008,$0007,$0008,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0039,$003a,$0029,$0029,$0029,$0029,$0029,$0029,$0007,$0008,$0007,$0008,$0007,$0008,$0029,$0029,$0029,$0029,$0007,$0008,$0007,$0008,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0007,$0008,$0007,$0008,$0007,$0008,$0007,$0008,$0007,$0008,$0007,$0008,$0007,$0008,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0039,$003a,$0029,$0029,$0029,$0029,$0029,$0029,$0009,$000a,$0029,$0029,$0029,$0029,$0029,$0029,$001a,$001a,$001a,$001a,$0021,$0022,$001a,$001a,$001a,$001a,$0029,$0029 + dw $0029,$0029,$0029,$0038,$0015,$003e,$003b,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$000b,$000c,$000d,$000e,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0013,$0014,$0015,$0016,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0013,$0014,$0015,$0016,$0029,$0029,$0029,$0038,$0015,$003e,$003b,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0013,$0014,$0015,$0016,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0038,$0015,$003e,$003b,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0005,$0006,$0005,$0006,$0005,$0006,$0029,$0029,$0029,$0029,$0005,$0006,$0005,$0006,$0005,$0006,$0029,$0029,$0029,$0029,$0029,$0038,$0015,$003e,$003b,$0029,$0029,$0029,$0005,$0006,$0005,$0006,$0005,$0006,$0005,$0006,$0029,$0029,$0029,$0029,$0005,$0006,$0005,$0006,$0005,$0006,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$000b,$000c,$000d,$000e,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$000b,$000c,$000d,$000e,$0029,$0029,$0005,$0006,$0005,$0006,$0005,$0006,$0005,$0006,$0005,$0006,$0005,$0006,$0005,$0006,$0005,$0006,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0038,$0015,$003e,$003b,$0029,$0029,$0029,$0029,$0029,$0009,$000a,$0029,$0029,$0029,$0029,$0029,$0029,$001a,$001a,$001a,$001a,$0000,$0000,$001a,$001a,$001a,$001a,$0029,$0029,$0029,$0029,$0038,$0015,$0015,$0015,$0015,$003b,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0039,$0239,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$000f,$0010,$0011,$0012,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0013,$0014,$0015,$0016,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0013,$0014,$0015,$0016 + dw $0029,$0029,$0038,$0015,$0015,$0015,$0015,$003b,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0013,$0014,$0015,$0016,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0039,$003a,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0038,$0015,$0015,$0015,$0015,$003b,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0039,$003a,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0007,$0008,$0007,$0008,$0007,$0008,$0029,$0029,$0029,$0029,$0007,$0008,$0007,$0008,$0007,$0008,$0029,$0029 + dw $0029,$0029,$0038,$0015,$0015,$0015,$0015,$003b,$0029,$0029,$0007,$0008,$0007,$0008,$0007,$0008,$0007,$0008,$0029,$0029,$0029,$0029,$0007,$0008,$0007,$0008,$0007,$0008,$0029,$0029,$0029,$0029,$0029,$0029,$0039,$003a,$0029,$0029,$000f,$0010,$0011,$0012,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$000f,$0010,$0011,$0012,$0029,$0029,$0007,$0008,$0007,$0008,$0007,$0008,$0007,$0008,$0007,$0008,$0007,$0008,$0007,$0008,$0007,$0008,$0029,$0029,$0029,$0029,$0029,$0029,$0038,$0015,$0015,$0015,$0015,$003b,$0029,$0029,$0029,$0029,$0009,$000a,$0029,$0029,$0029,$0029,$0029,$0029,$001a,$001a,$001a,$001a,$0000,$0000,$001a,$001a,$001a,$001a,$0029,$0029 + dw $0029,$0038,$0015,$003e,$0015,$0015,$003e,$0015,$003b,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$002a,$002b,$002a,$002b,$002a,$002b,$0029,$0029,$0029,$0038,$0015,$003e,$0238,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$002a,$002b,$0029,$0029,$0029,$0029,$0029,$0029,$0013,$0014,$0015,$0016,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0013,$0014,$0015,$0016,$0029,$0029,$0029,$0029,$002a,$002b,$002a,$002b,$0029,$0029,$0029,$0029,$0013,$0014,$0015,$0016,$0029,$0038,$0015,$003e,$0015,$0015,$003e,$0015,$003b,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0013,$0014,$0015,$0016,$0029,$0029,$002a,$002b,$002a,$002b,$002a,$002b,$0029,$0029 + dw $0029,$0038,$0015,$003e,$003b,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$002a,$002b,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$002a,$002b,$002a,$002b,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0038,$0015,$003e,$0015,$0015,$003e,$0015,$003b,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$002a,$002b,$002a,$002b,$002a,$002b,$0029,$0029,$0029,$0038,$0015,$003e,$003b,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$002a,$002b,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0005,$0006,$0005,$0006,$0005,$0006,$0005,$0006,$002a,$002b,$002a,$002b,$0005,$0006,$0005,$0006,$0005,$0006,$0005,$0006,$0029,$0038,$0015,$003e,$0015,$0015,$003e,$0015,$0005,$0006,$0005,$0006,$0005,$0006,$0005,$0006,$0005,$0006,$0029,$0029,$0029,$0029,$0005,$0006,$0005,$0006,$0005,$0006,$0005,$0006,$0029,$0029 + dw $0029,$0038,$0015,$003e,$003b,$0029,$0013,$0014,$0015,$0016,$0029,$0029,$0029,$0029,$0000,$0029,$002a,$002b,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0013,$0014,$0015,$0016,$0005,$0006,$0005,$0006,$0005,$0006,$0005,$0006,$0005,$0006,$0005,$0006,$0005,$0006,$0005,$0006,$0005,$0006,$0029,$0029,$0029,$0029 + dw $0029,$0038,$0015,$003e,$0015,$0015,$003e,$0015,$003b,$0029,$0029,$0029,$0005,$0006,$0029,$0029,$0029,$0029,$0029,$0029,$001a,$001a,$001a,$001a,$0000,$0000,$001a,$001a,$001a,$001a,$0029,$0029,$0038,$0015,$0015,$0015,$0015,$0015,$0015,$0015,$0015,$003b,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$002c,$002d,$002d,$002d,$002d,$002d,$002d,$002e,$0029 + dw $0038,$0015,$0015,$0015,$0015,$0238,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$002c,$002d,$002d,$002e,$0029,$0029,$0029,$0029,$0029,$0013,$0014,$0015,$0016,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0013,$0014,$0015,$0016,$0029,$0029,$0029,$002c,$002d,$002d,$002d,$002d,$002e,$0029,$0029,$0029,$0013,$0014,$0015,$0016 + dw $0038,$0015,$0015,$0015,$0015,$0015,$0015,$0015,$0015,$003b,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0013,$0014,$0015,$0016,$0029,$002c,$002d,$002d,$002d,$002d,$002d,$002d,$002e,$0029,$0038,$0015,$0015,$0015,$0015,$003b,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$002c,$002d,$002d,$002e,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$002c,$002d,$002d,$002d,$002d,$002e,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0038,$0015,$0015,$0015,$0015,$0015,$0015,$0015,$0015,$003b,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$002c,$002d,$002d,$002d,$002d,$002d,$002d,$002e,$0029 + dw $0038,$0015,$0015,$0015,$0015,$003b,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$002c,$002d,$002d,$002e,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0007,$0008,$0007,$0008,$0007,$0008,$0007,$0008,$002d,$002d,$002d,$002d,$0007,$0008,$0007,$0008,$0007,$0008,$0007,$0008 + dw $0038,$0015,$0015,$0015,$0015,$0015,$0015,$0015,$0007,$0008,$0007,$0008,$0007,$0008,$0007,$0008,$0007,$0008,$0029,$0029,$0029,$0029,$0007,$0008,$0007,$0008,$0007,$0008,$0007,$0008,$002e,$0029,$0038,$0015,$0015,$0015,$0015,$003b,$0013,$0014,$0015,$0016,$0029,$0029,$0029,$0029,$0000,$002c,$002d,$002d,$002e,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029,$0029 + dw $0029,$0029,$0029,$0029,$0029,$0029,$0013,$0014,$0015,$0016,$0007,$0008,$0007,$0008,$0007,$0008,$0007,$0008,$0007,$0008,$0007,$0008,$0007,$0008,$0007,$0008,$0007,$0008,$0029,$0029,$0029,$0029,$0038,$0015,$0015,$0015,$0015,$0015,$0015,$0015,$0015,$003b,$0029,$0029,$0007,$0008,$0029,$0029,$0029,$0029,$0029,$0029,$001a,$001a,$001a,$001a,$0000,$0000,$001a,$001a,$001a,$001a,$002e,$0029 dw $0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002 dw $0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002 + dw $0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0029,$0029,$0029,$0029,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0029,$0029,$0029,$0029,$0029,$0029,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002 dw $0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002 + dw $0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0029,$0029,$0029,$0029,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002 dw $0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002 + dw $0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004 dw $0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004 + dw $0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0029,$0029,$0029,$0029,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004 + dw $0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0029,$0029,$0029,$0029,$0029,$0029,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004 dw $0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004 - dw $0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004 + dw $0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0029,$0029,$0029,$0029,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004 dw $0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004 dw $0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002 dw $0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002 + dw $0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0029,$0029,$0029,$0029,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0029,$0029,$0029,$0029,$0029,$0029,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002 dw $0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002 + dw $0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0029,$0029,$0029,$0029,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002 dw $0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002 + dw $0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0001,$0002,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004 dw $0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004 + dw $0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0029,$0029,$0029,$0029,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004 + dw $0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0029,$0029,$0029,$0029,$0029,$0029,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004 dw $0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004 - dw $0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004 + dw $0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0029,$0029,$0029,$0029,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004 dw $0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004,$0003,$0004 \ No newline at end of file diff --git a/demos/sprites/gen/App.TileSet.s b/demos/sprites/gen/App.TileSet.s index e6c1692..86ad169 100644 --- a/demos/sprites/gen/App.TileSet.s +++ b/demos/sprites/gen/App.TileSet.s @@ -1,6 +1,8 @@ ; startIndex = 0 +; Looking for transparent color 6B8CFF +; found color at palette index 3 ; Palette: -; $0000,$0777,$0F31,$0E51,$00A0,$02E3,$0BF1,$0FA4,$0FD7,$0EE6,$0F59,$068F,$01CE,$09B9,$0EDA,$0EEE +; $0E51,$0EDA,$0000,$068F,$0BF1,$00A0,$0EEE,$0777,$01CE,$0FA4,$0F59,$0D40,$02E3,$09B9,$0F93,$0FD7 ; Converting to BG0 format... tiledata ENT @@ -8,14 +10,14 @@ tiledata ENT ds 128 ; Tile ID 1 ; From image coordinates 0, 0 - hex 3eeeeeee - hex e3333333 - hex e3333333 - hex e3333333 - hex e3333333 - hex e3333333 - hex e3333333 - hex e3333333 + hex 01111111 + hex 10000000 + hex 10000000 + hex 10000000 + hex 10000000 + hex 10000000 + hex 10000000 + hex 10000000 hex 00000000 hex 00000000 @@ -26,14 +28,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex eeeeeee3 - hex 3333333e - hex 3333333e - hex 3333333e - hex 3333333e - hex 3333333e - hex 3333333e - hex 3333333e + hex 11111110 + hex 00000001 + hex 00000001 + hex 00000001 + hex 00000001 + hex 00000001 + hex 00000001 + hex 00000001 hex 00000000 hex 00000000 @@ -46,14 +48,14 @@ tiledata ENT ; Tile ID 2 ; From image coordinates 8, 0 - hex e03eeee3 - hex 30e33330 - hex 30e33330 - hex 30e33330 - hex 30e03330 - hex 30300003 - hex 30eeeee0 - hex 30e33330 + hex 12011110 + hex 02100002 + hex 02100002 + hex 02100002 + hex 02120002 + hex 02022220 + hex 02111112 + hex 02100002 hex 00000000 hex 00000000 @@ -64,14 +66,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 3eeee30e - hex 03333e03 - hex 03333e03 - hex 03333e03 - hex 03330e03 - hex 30000303 - hex 0eeeee03 - hex 03333e03 + hex 01111021 + hex 20000120 + hex 20000120 + hex 20000120 + hex 20002120 + hex 02222020 + hex 21111120 + hex 20000120 hex 00000000 hex 00000000 @@ -84,14 +86,14 @@ tiledata ENT ; Tile ID 3 ; From image coordinates 16, 0 - hex e3333333 - hex e3333333 - hex 00333333 - hex ee003333 - hex e3ee0000 - hex e333eee0 - hex e3333330 - hex 30000003 + hex 10000000 + hex 10000000 + hex 22000000 + hex 11220000 + hex 10112222 + hex 10001112 + hex 10000002 + hex 02222220 hex 00000000 hex 00000000 @@ -102,14 +104,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 3333333e - hex 3333333e - hex 33333300 - hex 333300ee - hex 0000ee3e - hex 0eee333e - hex 0333333e - hex 30000003 + hex 00000001 + hex 00000001 + hex 00000022 + hex 00002211 + hex 22221101 + hex 21110001 + hex 20000001 + hex 02222220 hex 00000000 hex 00000000 @@ -122,14 +124,14 @@ tiledata ENT ; Tile ID 4 ; From image coordinates 24, 0 - hex 30e33330 - hex 30e33330 - hex 0e333330 - hex 0e333330 - hex e3333330 - hex e3333330 - hex e3333300 - hex e0000003 + hex 02100002 + hex 02100002 + hex 21000002 + hex 21000002 + hex 10000002 + hex 10000002 + hex 10000022 + hex 12222220 hex 00000000 hex 00000000 @@ -140,14 +142,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 03333e03 - hex 03333e03 - hex 033333e0 - hex 033333e0 - hex 0333333e - hex 0333333e - hex 0033333e - hex 3000000e + hex 20000120 + hex 20000120 + hex 20000012 + hex 20000012 + hex 20000001 + hex 20000001 + hex 22000001 + hex 02222221 hex 00000000 hex 00000000 @@ -160,14 +162,14 @@ tiledata ENT ; Tile ID 5 ; From image coordinates 32, 0 - hex 3eeeeeee - hex e3eeeeee - hex ee3eeeee - hex eee3eeee - hex eeee3333 - hex eeee3333 - hex eeee3333 - hex eeee3333 + hex 01111111 + hex 10111111 + hex 11011111 + hex 11101111 + hex 11110000 + hex 11110000 + hex 11110000 + hex 11110000 hex 00000000 hex 00000000 @@ -178,14 +180,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex eeeeeee3 - hex eeeeee3e - hex eeeee3ee - hex eeee3eee - hex 3333eeee - hex 3333eeee - hex 3333eeee - hex 3333eeee + hex 11111110 + hex 11111101 + hex 11111011 + hex 11110111 + hex 00001111 + hex 00001111 + hex 00001111 + hex 00001111 hex 00000000 hex 00000000 @@ -198,14 +200,14 @@ tiledata ENT ; Tile ID 6 ; From image coordinates 40, 0 - hex eeeeeee0 - hex eeeeee00 - hex eeeee000 - hex eeee0000 - hex 33330000 - hex 33330000 - hex 33330000 - hex 33330000 + hex 11111112 + hex 11111122 + hex 11111222 + hex 11112222 + hex 00002222 + hex 00002222 + hex 00002222 + hex 00002222 hex 00000000 hex 00000000 @@ -216,14 +218,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 0eeeeeee - hex 00eeeeee - hex 000eeeee - hex 0000eeee - hex 00003333 - hex 00003333 - hex 00003333 - hex 00003333 + hex 21111111 + hex 22111111 + hex 22211111 + hex 22221111 + hex 22220000 + hex 22220000 + hex 22220000 + hex 22220000 hex 00000000 hex 00000000 @@ -236,14 +238,14 @@ tiledata ENT ; Tile ID 7 ; From image coordinates 48, 0 - hex eeee3333 - hex eeee3333 - hex eeee3333 - hex eeee3333 - hex eee00000 - hex ee000000 - hex e0000000 - hex 00000000 + hex 11110000 + hex 11110000 + hex 11110000 + hex 11110000 + hex 11122222 + hex 11222222 + hex 12222222 + hex 22222222 hex 00000000 hex 00000000 @@ -254,14 +256,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 3333eeee - hex 3333eeee - hex 3333eeee - hex 3333eeee - hex 00000eee - hex 000000ee - hex 0000000e - hex 00000000 + hex 00001111 + hex 00001111 + hex 00001111 + hex 00001111 + hex 22222111 + hex 22222211 + hex 22222221 + hex 22222222 hex 00000000 hex 00000000 @@ -274,14 +276,14 @@ tiledata ENT ; Tile ID 8 ; From image coordinates 56, 0 - hex 33330000 - hex 33330000 - hex 33330000 - hex 33330000 - hex 00003000 - hex 00000300 - hex 00000030 - hex 00000003 + hex 00002222 + hex 00002222 + hex 00002222 + hex 00002222 + hex 22220222 + hex 22222022 + hex 22222202 + hex 22222220 hex 00000000 hex 00000000 @@ -292,14 +294,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 00003333 - hex 00003333 - hex 00003333 - hex 00003333 - hex 00030000 - hex 00300000 - hex 03000000 - hex 30000000 + hex 22220000 + hex 22220000 + hex 22220000 + hex 22220000 + hex 22202222 + hex 22022222 + hex 20222222 + hex 02222222 hex 00000000 hex 00000000 @@ -312,14 +314,14 @@ tiledata ENT ; Tile ID 9 ; From image coordinates 64, 0 - hex 00000006 - hex 00000006 - hex 00000006 - hex 00000006 - hex 00000006 - hex 00000006 - hex 00000006 - hex 00000006 + hex 00000004 + hex 00000004 + hex 00000004 + hex 00000004 + hex 00000004 + hex 00000004 + hex 00000004 + hex 00000004 hex fffffff0 hex fffffff0 @@ -330,14 +332,14 @@ tiledata ENT hex fffffff0 hex fffffff0 - hex 60000000 - hex 60000000 - hex 60000000 - hex 60000000 - hex 60000000 - hex 60000000 - hex 60000000 - hex 60000000 + hex 40000000 + hex 40000000 + hex 40000000 + hex 40000000 + hex 40000000 + hex 40000000 + hex 40000000 + hex 40000000 hex 0fffffff hex 0fffffff @@ -350,14 +352,14 @@ tiledata ENT ; Tile ID 10 ; From image coordinates 72, 0 - hex 60000000 - hex 60000000 - hex 60000000 - hex 60000000 - hex 60000000 - hex 60000000 - hex 60000000 - hex 60000000 + hex 40000000 + hex 40000000 + hex 40000000 + hex 40000000 + hex 40000000 + hex 40000000 + hex 40000000 + hex 40000000 hex 0fffffff hex 0fffffff @@ -368,14 +370,14 @@ tiledata ENT hex 0fffffff hex 0fffffff - hex 00000006 - hex 00000006 - hex 00000006 - hex 00000006 - hex 00000006 - hex 00000006 - hex 00000006 - hex 00000006 + hex 00000004 + hex 00000004 + hex 00000004 + hex 00000004 + hex 00000004 + hex 00000004 + hex 00000004 + hex 00000004 hex fffffff0 hex fffffff0 @@ -388,14 +390,14 @@ tiledata ENT ; Tile ID 11 ; From image coordinates 80, 0 - hex 00000000 - hex 06666666 - hex 04444466 - hex 06664466 - hex 06664466 - hex 06664466 - hex 06664466 - hex 06664466 + hex 22222222 + hex 24444444 + hex 25555544 + hex 24445544 + hex 24445544 + hex 24445544 + hex 24445544 + hex 24445544 hex 00000000 hex 00000000 @@ -406,14 +408,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 00000000 - hex 66666660 - hex 66444440 - hex 66446660 - hex 66446660 - hex 66446660 - hex 66446660 - hex 66446660 + hex 22222222 + hex 44444442 + hex 44555552 + hex 44554442 + hex 44554442 + hex 44554442 + hex 44554442 + hex 44554442 hex 00000000 hex 00000000 @@ -426,14 +428,14 @@ tiledata ENT ; Tile ID 12 ; From image coordinates 88, 0 - hex 00000000 - hex 66666666 - hex 66664444 - hex 66664664 - hex 66664664 - hex 66664664 - hex 66664664 - hex 66664664 + hex 22222222 + hex 44444444 + hex 44445555 + hex 44445445 + hex 44445445 + hex 44445445 + hex 44445445 + hex 44445445 hex 00000000 hex 00000000 @@ -444,14 +446,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 00000000 - hex 66666666 - hex 44446666 - hex 46646666 - hex 46646666 - hex 46646666 - hex 46646666 - hex 46646666 + hex 22222222 + hex 44444444 + hex 55554444 + hex 54454444 + hex 54454444 + hex 54454444 + hex 54454444 + hex 54454444 hex 00000000 hex 00000000 @@ -464,14 +466,14 @@ tiledata ENT ; Tile ID 13 ; From image coordinates 96, 0 - hex 00000000 - hex 66666666 - hex 44444444 - hex 44444444 - hex 44444444 - hex 44444444 - hex 44444444 + hex 22222222 hex 44444444 + hex 55555555 + hex 55555555 + hex 55555555 + hex 55555555 + hex 55555555 + hex 55555555 hex 00000000 hex 00000000 @@ -482,14 +484,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 00000000 - hex 66666666 - hex 44444444 - hex 44444444 - hex 44444444 - hex 44444444 - hex 44444444 + hex 22222222 hex 44444444 + hex 55555555 + hex 55555555 + hex 55555555 + hex 55555555 + hex 55555555 + hex 55555555 hex 00000000 hex 00000000 @@ -502,14 +504,14 @@ tiledata ENT ; Tile ID 14 ; From image coordinates 104, 0 - hex 00000000 - hex 66666660 - hex 44444440 - hex 46464660 - hex 44646660 - hex 46464660 - hex 44646660 - hex 46464660 + hex 22222222 + hex 44444442 + hex 55555552 + hex 54545442 + hex 55454442 + hex 54545442 + hex 55454442 + hex 54545442 hex 00000000 hex 00000000 @@ -520,14 +522,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 00000000 - hex 06666666 - hex 04444444 - hex 06646464 - hex 06664644 - hex 06646464 - hex 06664644 - hex 06646464 + hex 22222222 + hex 24444444 + hex 25555555 + hex 24454545 + hex 24445455 + hex 24454545 + hex 24445455 + hex 24454545 hex 00000000 hex 00000000 @@ -540,14 +542,14 @@ tiledata ENT ; Tile ID 15 ; From image coordinates 112, 0 - hex 06664466 - hex 06664466 - hex 06664466 - hex 06664466 - hex 06664466 - hex 06664466 - hex 00000000 - hex 00000000 + hex 24445544 + hex 24445544 + hex 24445544 + hex 24445544 + hex 24445544 + hex 24445544 + hex 22222222 + hex 00222222 hex 00000000 hex 00000000 @@ -558,14 +560,14 @@ tiledata ENT hex 00000000 hex ff000000 - hex 66446660 - hex 66446660 - hex 66446660 - hex 66446660 - hex 66446660 - hex 66446660 - hex 00000000 - hex 00000000 + hex 44554442 + hex 44554442 + hex 44554442 + hex 44554442 + hex 44554442 + hex 44554442 + hex 22222222 + hex 22222200 hex 00000000 hex 00000000 @@ -578,14 +580,14 @@ tiledata ENT ; Tile ID 16 ; From image coordinates 120, 0 - hex 66664664 - hex 66664664 - hex 66664664 - hex 66664664 - hex 66664664 - hex 66664664 - hex 00000000 - hex 00000000 + hex 44445445 + hex 44445445 + hex 44445445 + hex 44445445 + hex 44445445 + hex 44445445 + hex 22222222 + hex 22222222 hex 00000000 hex 00000000 @@ -596,14 +598,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 46646666 - hex 46646666 - hex 46646666 - hex 46646666 - hex 46646666 - hex 46646666 - hex 00000000 - hex 00000000 + hex 54454444 + hex 54454444 + hex 54454444 + hex 54454444 + hex 54454444 + hex 54454444 + hex 22222222 + hex 22222222 hex 00000000 hex 00000000 @@ -616,14 +618,14 @@ tiledata ENT ; Tile ID 17 ; From image coordinates 128, 0 - hex 44444444 - hex 44444444 - hex 44444444 - hex 44444444 - hex 44444444 - hex 44444444 - hex 00000000 - hex 00000000 + hex 55555555 + hex 55555555 + hex 55555555 + hex 55555555 + hex 55555555 + hex 55555555 + hex 22222222 + hex 22222222 hex 00000000 hex 00000000 @@ -634,14 +636,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 44444444 - hex 44444444 - hex 44444444 - hex 44444444 - hex 44444444 - hex 44444444 - hex 00000000 - hex 00000000 + hex 55555555 + hex 55555555 + hex 55555555 + hex 55555555 + hex 55555555 + hex 55555555 + hex 22222222 + hex 22222222 hex 00000000 hex 00000000 @@ -654,14 +656,14 @@ tiledata ENT ; Tile ID 18 ; From image coordinates 136, 0 - hex 44646660 - hex 46464660 - hex 44646660 - hex 46464660 - hex 44646660 - hex 46464660 - hex 00000000 - hex 00000000 + hex 55454442 + hex 54545442 + hex 55454442 + hex 54545442 + hex 55454442 + hex 54545442 + hex 22222222 + hex 22222200 hex 00000000 hex 00000000 @@ -672,14 +674,14 @@ tiledata ENT hex 00000000 hex 000000ff - hex 06664644 - hex 06646464 - hex 06664644 - hex 06646464 - hex 06664644 - hex 06646464 - hex 00000000 - hex 00000000 + hex 24445455 + hex 24454545 + hex 24445455 + hex 24454545 + hex 24445455 + hex 24454545 + hex 22222222 + hex 00222222 hex 00000000 hex 00000000 @@ -692,14 +694,14 @@ tiledata ENT ; Tile ID 19 ; From image coordinates 144, 0 - hex 00066644 - hex 00066644 - hex 00066644 - hex 00066644 - hex 00066644 - hex 00066644 - hex 00066644 - hex 00066644 + hex 00244455 + hex 00244455 + hex 00244455 + hex 00244455 + hex 00244455 + hex 00244455 + hex 00244455 + hex 00244455 hex ff000000 hex ff000000 @@ -710,14 +712,14 @@ tiledata ENT hex ff000000 hex ff000000 - hex 44666000 - hex 44666000 - hex 44666000 - hex 44666000 - hex 44666000 - hex 44666000 - hex 44666000 - hex 44666000 + hex 55444200 + hex 55444200 + hex 55444200 + hex 55444200 + hex 55444200 + hex 55444200 + hex 55444200 + hex 55444200 hex 000000ff hex 000000ff @@ -730,14 +732,14 @@ tiledata ENT ; Tile ID 20 ; From image coordinates 152, 0 - hex 66666466 - hex 66666466 - hex 66666466 - hex 66666466 - hex 66666466 - hex 66666466 - hex 66666466 - hex 66666466 + hex 44444544 + hex 44444544 + hex 44444544 + hex 44444544 + hex 44444544 + hex 44444544 + hex 44444544 + hex 44444544 hex 00000000 hex 00000000 @@ -748,14 +750,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 66466666 - hex 66466666 - hex 66466666 - hex 66466666 - hex 66466666 - hex 66466666 - hex 66466666 - hex 66466666 + hex 44544444 + hex 44544444 + hex 44544444 + hex 44544444 + hex 44544444 + hex 44544444 + hex 44544444 + hex 44544444 hex 00000000 hex 00000000 @@ -768,14 +770,14 @@ tiledata ENT ; Tile ID 21 ; From image coordinates 160, 0 - hex 44444444 - hex 44444444 - hex 44444444 - hex 44444444 - hex 44444444 - hex 44444444 - hex 44444444 - hex 44444444 + hex 55555555 + hex 55555555 + hex 55555555 + hex 55555555 + hex 55555555 + hex 55555555 + hex 55555555 + hex 55555555 hex 00000000 hex 00000000 @@ -786,14 +788,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 44444444 - hex 44444444 - hex 44444444 - hex 44444444 - hex 44444444 - hex 44444444 - hex 44444444 - hex 44444444 + hex 55555555 + hex 55555555 + hex 55555555 + hex 55555555 + hex 55555555 + hex 55555555 + hex 55555555 + hex 55555555 hex 00000000 hex 00000000 @@ -806,14 +808,14 @@ tiledata ENT ; Tile ID 22 ; From image coordinates 168, 0 - hex 64666000 - hex 46466000 - hex 64666000 - hex 46466000 - hex 64666000 - hex 46466000 - hex 64666000 - hex 46466000 + hex 45444200 + hex 54544200 + hex 45444200 + hex 54544200 + hex 45444200 + hex 54544200 + hex 45444200 + hex 54544200 hex 000000ff hex 000000ff @@ -824,14 +826,14 @@ tiledata ENT hex 000000ff hex 000000ff - hex 00066646 - hex 00066464 - hex 00066646 - hex 00066464 - hex 00066646 - hex 00066464 - hex 00066646 - hex 00066464 + hex 00244454 + hex 00244545 + hex 00244454 + hex 00244545 + hex 00244454 + hex 00244545 + hex 00244454 + hex 00244545 hex ff000000 hex ff000000 @@ -844,14 +846,14 @@ tiledata ENT ; Tile ID 23 ; From image coordinates 176, 0 - hex 33333333 - hex 33330333 - hex 33330333 - hex 33330333 - hex 33303333 - hex 33303333 - hex 33303333 - hex 33333333 + hex 00000000 + hex 00002000 + hex 00002000 + hex 00002000 + hex 00020000 + hex 00020000 + hex 00020000 + hex 00000000 hex 00000000 hex 00000000 @@ -862,14 +864,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 33333333 - hex 33303333 - hex 33303333 - hex 33303333 - hex 33330333 - hex 33330333 - hex 33330333 - hex 33333333 + hex 00000000 + hex 00020000 + hex 00020000 + hex 00020000 + hex 00002000 + hex 00002000 + hex 00002000 + hex 00000000 hex 00000000 hex 00000000 @@ -882,14 +884,14 @@ tiledata ENT ; Tile ID 24 ; From image coordinates 184, 0 - hex eeee3330 - hex 333e3330 - hex 333e3330 - hex 333e0000 - hex 333e3333 - hex 333e3333 - hex 333e3333 - hex 000eeeee + hex 11110002 + hex 00010002 + hex 00010002 + hex 00012222 + hex 00010000 + hex 00010000 + hex 00010000 + hex 22211111 hex 00000000 hex 00000000 @@ -900,14 +902,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 0333eeee - hex 0333e333 - hex 0333e333 - hex 0000e333 - hex 3333e333 - hex 3333e333 - hex 3333e333 - hex eeeee000 + hex 20001111 + hex 20001000 + hex 20001000 + hex 22221000 + hex 00001000 + hex 00001000 + hex 00001000 + hex 11111222 hex 00000000 hex 00000000 @@ -920,14 +922,14 @@ tiledata ENT ; Tile ID 25 ; From image coordinates 192, 0 - hex 333eeeee - hex 333e3333 - hex 333e3333 - hex 000e3333 - hex 333e3333 - hex 333e3333 - hex 333e3333 - hex eeee0000 + hex 00011111 + hex 00010000 + hex 00010000 + hex 22210000 + hex 00010000 + hex 00010000 + hex 00010000 + hex 11112222 hex 00000000 hex 00000000 @@ -938,14 +940,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex eeeee333 - hex 3333e333 - hex 3333e333 - hex 3333e000 - hex 3333e333 - hex 3333e333 - hex 3333e333 - hex 0000eeee + hex 11111000 + hex 00001000 + hex 00001000 + hex 00001222 + hex 00001000 + hex 00001000 + hex 00001000 + hex 22221111 hex 00000000 hex 00000000 @@ -958,14 +960,14 @@ tiledata ENT ; Tile ID 26 ; From image coordinates 200, 0 - hex 33333330 - hex 33333330 - hex 33333330 - hex 00000000 - hex 33303333 - hex 33303333 - hex 33303333 - hex 00000000 + hex 00000002 + hex 00000002 + hex 00000002 + hex 22222222 + hex 00020000 + hex 00020000 + hex 00020000 + hex 22222222 hex 00000000 hex 00000000 @@ -976,14 +978,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 03333333 - hex 03333333 - hex 03333333 - hex 00000000 - hex 33330333 - hex 33330333 - hex 33330333 - hex 00000000 + hex 20000000 + hex 20000000 + hex 20000000 + hex 22222222 + hex 00002000 + hex 00002000 + hex 00002000 + hex 22222222 hex 00000000 hex 00000000 @@ -996,14 +998,14 @@ tiledata ENT ; Tile ID 27 ; From image coordinates 208, 0 - hex 00000000 - hex 03333333 - hex 03033333 - hex 03333333 - hex 03333333 - hex 03333333 - hex 03333333 - hex 03333333 + hex 02222222 + hex 20000000 + hex 20200000 + hex 20000000 + hex 20000000 + hex 20000000 + hex 20000000 + hex 20000000 hex f0000000 hex 00000000 @@ -1014,14 +1016,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 00000000 - hex 33333330 - hex 33333030 - hex 33333330 - hex 33333330 - hex 33333330 - hex 33333330 - hex 33333330 + hex 22222220 + hex 00000002 + hex 00000202 + hex 00000002 + hex 00000002 + hex 00000002 + hex 00000002 + hex 00000002 hex 0000000f hex 00000000 @@ -1034,14 +1036,14 @@ tiledata ENT ; Tile ID 28 ; From image coordinates 216, 0 - hex 00000000 - hex 33333330 - hex 33333030 - hex 33333330 - hex 33333330 - hex 33333330 - hex 33333330 - hex 33333330 + hex 22222220 + hex 00000002 + hex 00000202 + hex 00000002 + hex 00000002 + hex 00000002 + hex 00000002 + hex 00000002 hex 0000000f hex 00000000 @@ -1052,14 +1054,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 00000000 - hex 03333333 - hex 03033333 - hex 03333333 - hex 03333333 - hex 03333333 - hex 03333333 - hex 03333333 + hex 02222222 + hex 20000000 + hex 20200000 + hex 20000000 + hex 20000000 + hex 20000000 + hex 20000000 + hex 20000000 hex f0000000 hex 00000000 @@ -1072,14 +1074,14 @@ tiledata ENT ; Tile ID 29 ; From image coordinates 224, 0 - hex 03333333 - hex 03333333 - hex 03333333 - hex 03333333 - hex 03333333 - hex 03033333 - hex 03333333 - hex 00000000 + hex 20000000 + hex 20000000 + hex 20000000 + hex 20000000 + hex 20000000 + hex 20200000 + hex 20000000 + hex 02222222 hex 00000000 hex 00000000 @@ -1090,14 +1092,14 @@ tiledata ENT hex 00000000 hex f0000000 - hex 33333330 - hex 33333330 - hex 33333330 - hex 33333330 - hex 33333330 - hex 33333030 - hex 33333330 - hex 00000000 + hex 00000002 + hex 00000002 + hex 00000002 + hex 00000002 + hex 00000002 + hex 00000202 + hex 00000002 + hex 22222220 hex 00000000 hex 00000000 @@ -1110,14 +1112,14 @@ tiledata ENT ; Tile ID 30 ; From image coordinates 232, 0 - hex 33333330 - hex 33333330 - hex 33333330 - hex 33333330 - hex 33333330 - hex 33333030 - hex 33333330 - hex 00000000 + hex 00000002 + hex 00000002 + hex 00000002 + hex 00000002 + hex 00000002 + hex 00000202 + hex 00000002 + hex 22222220 hex 00000000 hex 00000000 @@ -1128,14 +1130,14 @@ tiledata ENT hex 00000000 hex 0000000f - hex 03333333 - hex 03333333 - hex 03333333 - hex 03333333 - hex 03333333 - hex 03033333 - hex 03333333 - hex 00000000 + hex 20000000 + hex 20000000 + hex 20000000 + hex 20000000 + hex 20000000 + hex 20200000 + hex 20000000 + hex 02222222 hex 00000000 hex 00000000 @@ -1148,14 +1150,14 @@ tiledata ENT ; Tile ID 31 ; From image coordinates 240, 0 - hex eeee0000 - hex 333e0000 - hex 333e0000 - hex 333e0000 - hex 333e0000 - hex 333e0000 - hex 333e0000 - hex 000eeeee + hex 11110000 + hex 00010000 + hex 00010000 + hex 00010000 + hex 00010000 + hex 00010000 + hex 00010000 + hex 22211111 hex 0000ffff hex 0000ffff @@ -1166,14 +1168,14 @@ tiledata ENT hex 0000ffff hex 00000000 - hex 0000eeee - hex 0000e333 - hex 0000e333 - hex 0000e333 - hex 0000e333 - hex 0000e333 - hex 0000e333 - hex eeeee000 + hex 00001111 + hex 00001000 + hex 00001000 + hex 00001000 + hex 00001000 + hex 00001000 + hex 00001000 + hex 11111222 hex ffff0000 hex ffff0000 @@ -1186,14 +1188,14 @@ tiledata ENT ; Tile ID 32 ; From image coordinates 248, 0 - hex 000eeeee - hex 000e3333 - hex 000e3333 - hex 000e3333 - hex 000e3333 - hex 000e3333 - hex 000e3333 - hex eeee0000 + hex 00011111 + hex 00010000 + hex 00010000 + hex 00010000 + hex 00010000 + hex 00010000 + hex 00010000 + hex 11112222 hex fff00000 hex fff00000 @@ -1204,14 +1206,14 @@ tiledata ENT hex fff00000 hex 00000000 - hex eeeee000 - hex 3333e000 - hex 3333e000 - hex 3333e000 - hex 3333e000 - hex 3333e000 - hex 3333e000 - hex 0000eeee + hex 11111000 + hex 00001000 + hex 00001000 + hex 00001000 + hex 00001000 + hex 00001000 + hex 00001000 + hex 22221111 hex 00000fff hex 00000fff @@ -1224,14 +1226,14 @@ tiledata ENT ; Tile ID 33 ; From image coordinates 256, 0 - hex 33333000 - hex 33300000 - hex 33000000 - hex 00000000 - hex 30000000 - hex 30000000 - hex 00000000 - hex 00000000 + hex 00000222 + hex 00022222 + hex 00222222 + hex 22222222 + hex 02222222 + hex 02222222 + hex 22222222 + hex 22222222 hex 00000000 hex 00000000 @@ -1242,14 +1244,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 00033333 - hex 00000333 - hex 00000033 - hex 00000000 - hex 00000003 - hex 00000003 - hex 00000000 - hex 00000000 + hex 22200000 + hex 22222000 + hex 22222200 + hex 22222222 + hex 22222220 + hex 22222220 + hex 22222222 + hex 22222222 hex 00000000 hex 00000000 @@ -1262,14 +1264,14 @@ tiledata ENT ; Tile ID 34 ; From image coordinates 264, 0 - hex 00033330 - hex 00000330 - hex 00000030 - hex 00000000 - hex 00000003 - hex 00000003 - hex 00000000 - hex 00000000 + hex 22200002 + hex 22222002 + hex 22222202 + hex 22222222 + hex 22222220 + hex 22222220 + hex 22222222 + hex 22222222 hex 00000000 hex 00000000 @@ -1280,14 +1282,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 03333000 - hex 03300000 - hex 03000000 - hex 00000000 - hex 30000000 - hex 30000000 - hex 00000000 - hex 00000000 + hex 20000222 + hex 20022222 + hex 20222222 + hex 22222222 + hex 02222222 + hex 02222222 + hex 22222222 + hex 22222222 hex 00000000 hex 00000000 @@ -1300,14 +1302,14 @@ tiledata ENT ; Tile ID 35 ; From image coordinates 272, 0 - hex 00000000 - hex 00000064 - hex 00000644 - hex 00000644 - hex 00000444 - hex 00000444 - hex 00000044 - hex 00000000 + hex 00000022 + hex 00000245 + hex 00002455 + hex 00002455 + hex 00002555 + hex 00002555 + hex 00000255 + hex 00000022 hex ffffff00 hex fffff000 @@ -1318,14 +1320,14 @@ tiledata ENT hex fffff000 hex ffffff00 - hex 00000000 - hex 46000000 - hex 44600000 - hex 44600000 - hex 44400000 - hex 44400000 - hex 44000000 - hex 00000000 + hex 22000000 + hex 54200000 + hex 55420000 + hex 55420000 + hex 55520000 + hex 55520000 + hex 55200000 + hex 22000000 hex 00ffffff hex 000fffff @@ -1338,14 +1340,14 @@ tiledata ENT ; Tile ID 36 ; From image coordinates 280, 0 - hex 00000000 - hex 44000000 - hex 44400000 - hex 44400000 - hex 44400000 - hex 44400000 - hex 44000000 - hex 00000000 + hex 22000000 + hex 55200000 + hex 55520000 + hex 55520000 + hex 55520000 + hex 55520000 + hex 55200000 + hex 22000000 hex 00ffffff hex 000fffff @@ -1356,14 +1358,14 @@ tiledata ENT hex 000fffff hex 00ffffff - hex 00000000 - hex 00000044 - hex 00000444 - hex 00000444 - hex 00000444 - hex 00000444 - hex 00000044 - hex 00000000 + hex 00000022 + hex 00000255 + hex 00002555 + hex 00002555 + hex 00002555 + hex 00002555 + hex 00000255 + hex 00000022 hex ffffff00 hex fffff000 @@ -1376,14 +1378,14 @@ tiledata ENT ; Tile ID 37 ; From image coordinates 288, 0 - hex 00000000 - hex 00066666 - hex 00666666 - hex 00666666 - hex 06666666 - hex 06666666 - hex 06666666 - hex 06666666 + hex 00022222 + hex 00244444 + hex 02444444 + hex 02444444 + hex 24444444 + hex 24444444 + hex 24444444 + hex 24444444 hex fff00000 hex ff000000 @@ -1394,14 +1396,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 00000000 - hex 66666000 - hex 66666600 - hex 66666600 - hex 66666660 - hex 66666660 - hex 66666660 - hex 66666660 + hex 22222000 + hex 44444200 + hex 44444420 + hex 44444420 + hex 44444442 + hex 44444442 + hex 44444442 + hex 44444442 hex 00000fff hex 000000ff @@ -1414,14 +1416,14 @@ tiledata ENT ; Tile ID 38 ; From image coordinates 296, 0 - hex 00000000 - hex 66666666 - hex 66666666 - hex 66666666 - hex 66666666 - hex 66666666 - hex 66666666 - hex 66666666 + hex 22222222 + hex 44444444 + hex 44444444 + hex 44444444 + hex 44444444 + hex 44444444 + hex 44444444 + hex 44444444 hex 00000000 hex 00000000 @@ -1432,14 +1434,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 00000000 - hex 66666666 - hex 66666666 - hex 66666666 - hex 66666666 - hex 66666666 - hex 66666666 - hex 66666666 + hex 22222222 + hex 44444444 + hex 44444444 + hex 44444444 + hex 44444444 + hex 44444444 + hex 44444444 + hex 44444444 hex 00000000 hex 00000000 @@ -1452,14 +1454,14 @@ tiledata ENT ; Tile ID 39 ; From image coordinates 304, 0 - hex 00000000 - hex 66666000 - hex 66666600 - hex 66666600 - hex 66666660 - hex 66666660 - hex 66666660 - hex 66666660 + hex 22222000 + hex 44444200 + hex 44444420 + hex 44444420 + hex 44444442 + hex 44444442 + hex 44444442 + hex 44444442 hex 00000fff hex 000000ff @@ -1470,14 +1472,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 00000000 - hex 00066666 - hex 00666666 - hex 00666666 - hex 06666666 - hex 06666666 - hex 06666666 - hex 06666666 + hex 00022222 + hex 00244444 + hex 02444444 + hex 02444444 + hex 24444444 + hex 24444444 + hex 24444444 + hex 24444444 hex fff00000 hex ff000000 @@ -1490,23 +1492,14 @@ tiledata ENT ; Tile ID 40 ; From image coordinates 312, 0 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff + hex 33333333 + hex 33333333 + hex 33333333 + hex 33333333 + hex 33333333 + hex 33333333 + hex 33333333 + hex 33333333 hex 00000000 hex 00000000 @@ -1517,34 +1510,34 @@ tiledata ENT hex 00000000 hex 00000000 - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff + hex 33333333 + hex 33333333 + hex 33333333 + hex 33333333 + hex 33333333 + hex 33333333 + hex 33333333 + hex 33333333 + + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 ; Tile ID 41 ; From image coordinates 0, 8 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff + hex 33333333 + hex 33333333 + hex 33333333 + hex 33333333 + hex 33333333 + hex 33333333 + hex 33333333 + hex 33333333 hex 00000000 hex 00000000 @@ -1555,25 +1548,34 @@ tiledata ENT hex 00000000 hex 00000000 - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff + hex 33333333 + hex 33333333 + hex 33333333 + hex 33333333 + hex 33333333 + hex 33333333 + hex 33333333 + hex 33333333 + + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 ; Tile ID 42 ; From image coordinates 8, 8 - hex 00000000 - hex 00000066 - hex 00000666 - hex 00066666 - hex 00066666 - hex 00066666 - hex 00666446 - hex 06664666 + hex 00000022 + hex 00000244 + hex 00022444 + hex 00244444 + hex 00244444 + hex 00244444 + hex 02444554 + hex 24445444 hex ffffff00 hex fffff000 @@ -1584,14 +1586,14 @@ tiledata ENT hex f0000000 hex 00000000 - hex 00000000 - hex 66000000 - hex 66600000 - hex 66666000 - hex 66666000 - hex 66666000 - hex 64466600 - hex 66646660 + hex 22000000 + hex 44200000 + hex 44422000 + hex 44444200 + hex 44444200 + hex 44444200 + hex 45544420 + hex 44454442 hex 00ffffff hex 000fffff @@ -1604,14 +1606,14 @@ tiledata ENT ; Tile ID 43 ; From image coordinates 16, 8 - hex 00000000 - hex 66000000 - hex 66600000 - hex 66600000 - hex 66660600 - hex 64666660 - hex 66466660 - hex 66666660 + hex 22000000 + hex 44200000 + hex 44420000 + hex 44420200 + hex 44442420 + hex 45444442 + hex 44544442 + hex 44444442 hex 00ffffff hex 000fffff @@ -1622,14 +1624,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 00000000 - hex 00000066 - hex 00000666 - hex 00000666 - hex 00606666 - hex 06666646 - hex 06666466 - hex 06666666 + hex 00000022 + hex 00000244 + hex 00002444 + hex 00202444 + hex 02424444 + hex 24444454 + hex 24444544 + hex 24444444 hex ffffff00 hex fffff000 @@ -1642,14 +1644,14 @@ tiledata ENT ; Tile ID 44 ; From image coordinates 24, 8 - hex 00000000 - hex 00000666 - hex 00006666 - hex 00066666 - hex 00066666 - hex 06666666 - hex 06666666 - hex 00666666 + hex 00000222 + hex 00002444 + hex 00024444 + hex 00044444 + hex 02244444 + hex 24444444 + hex 24444444 + hex 02444444 hex fffff000 hex ffff0000 @@ -1660,14 +1662,14 @@ tiledata ENT hex 00000000 hex f0000000 - hex 00000000 - hex 66600000 - hex 66660000 - hex 66666000 - hex 66666000 - hex 66666660 - hex 66666660 - hex 66666600 + hex 22200000 + hex 44420000 + hex 44442000 + hex 44444000 + hex 44444220 + hex 44444442 + hex 44444442 + hex 44444420 hex 000fffff hex 0000ffff @@ -1680,14 +1682,14 @@ tiledata ENT ; Tile ID 45 ; From image coordinates 32, 8 - hex 66666666 - hex 66666666 - hex 66666666 - hex 66666666 - hex 66666666 - hex 66666666 - hex 66666666 - hex 66666666 + hex 44444444 + hex 44444444 + hex 44444444 + hex 44444444 + hex 44444444 + hex 44444444 + hex 44444444 + hex 44444444 hex 00000000 hex 00000000 @@ -1698,14 +1700,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 66666666 - hex 66666666 - hex 66666666 - hex 66666666 - hex 66666666 - hex 66666666 - hex 66666666 - hex 66666666 + hex 44444444 + hex 44444444 + hex 44444444 + hex 44444444 + hex 44444444 + hex 44444444 + hex 44444444 + hex 44444444 hex 00000000 hex 00000000 @@ -1718,14 +1720,14 @@ tiledata ENT ; Tile ID 46 ; From image coordinates 40, 8 - hex 00000000 - hex 00060000 - hex 60660000 - hex 66660000 - hex 66666060 - hex 66666660 - hex 66666660 - hex 66666600 + hex 20020000 + hex 20242000 + hex 42442000 + hex 44442020 + hex 44444242 + hex 44444442 + hex 44444442 + hex 44444420 hex 0ff0ffff hex 0f000fff @@ -1736,14 +1738,14 @@ tiledata ENT hex 00000000 hex 0000000f - hex 00000000 - hex 00006000 - hex 00006606 - hex 00006666 - hex 06066666 - hex 06666666 - hex 06666666 - hex 00666666 + hex 00002002 + hex 00024202 + hex 00024424 + hex 02024444 + hex 24244444 + hex 24444444 + hex 24444444 + hex 02444444 hex ffff0ff0 hex fff000f0 @@ -1756,14 +1758,14 @@ tiledata ENT ; Tile ID 47 ; From image coordinates 48, 8 - hex ff10ffff - hex ee10feee - hex ee10feee - hex ee10feee - hex ee10feee - hex ee10feee - hex 11101111 - hex 00000000 + hex 66726666 + hex 11726111 + hex 11726111 + hex 11726111 + hex 11726111 + hex 11726111 + hex 77727777 + hex 22222222 hex 00000000 hex 00000000 @@ -1774,14 +1776,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex ffff01ff - hex eeef01ee - hex eeef01ee - hex eeef01ee - hex eeef01ee - hex eeef01ee - hex 11110111 - hex 00000000 + hex 66662766 + hex 11162711 + hex 11162711 + hex 11162711 + hex 11162711 + hex 11162711 + hex 77772777 + hex 22222222 hex 00000000 hex 00000000 @@ -1794,14 +1796,14 @@ tiledata ENT ; Tile ID 48 ; From image coordinates 56, 8 - hex ffffff10 - hex feeeee10 - hex feeeee10 - hex feeeee10 - hex feeeee10 - hex feeeee10 - hex 11111110 - hex 00000000 + hex 66666672 + hex 61111172 + hex 61111172 + hex 61111172 + hex 61111172 + hex 61111172 + hex 77777772 + hex 22222222 hex 00000000 hex 00000000 @@ -1812,14 +1814,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 01ffffff - hex 01eeeeef - hex 01eeeeef - hex 01eeeeef - hex 01eeeeef - hex 01eeeeef - hex 01111111 - hex 00000000 + hex 27666666 + hex 27111116 + hex 27111116 + hex 27111116 + hex 27111116 + hex 27111116 + hex 27777777 + hex 22222222 hex 00000000 hex 00000000 @@ -1832,52 +1834,128 @@ tiledata ENT ; Tile ID 49 ; From image coordinates 64, 8 - hex 06666666 - hex 06666666 - hex 06666666 - hex 06666666 - hex 06666666 - hex 06666660 - hex 00666600 + hex 00000022 + hex 00000244 + hex 00022444 + hex 00244444 + hex 00244444 + hex 00244444 + hex 02444554 + hex 24445444 + + hex ffffff00 + hex fffff000 + hex fff00000 + hex ff000000 + hex ff000000 + hex ff000000 + hex f0000000 hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex f000000f - hex ff0000ff + hex 22000000 + hex 44200000 + hex 44422000 + hex 44444200 + hex 44444200 + hex 44444200 + hex 45544420 + hex 44454442 - hex 66666660 - hex 66666660 - hex 66666660 - hex 66666660 - hex 66666660 - hex 06666660 - hex 00666600 + hex 00ffffff + hex 000fffff + hex 00000fff + hex 000000ff + hex 000000ff + hex 000000ff + hex 0000000f hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex f000000f - hex ff0000ff - ; Tile ID 50 ; From image coordinates 72, 8 - hex 66666666 - hex 66666666 - hex 66666666 - hex 66666666 - hex 66666666 - hex 66666660 - hex 06666600 + hex 22000000 + hex 44200000 + hex 44420000 + hex 44420200 + hex 44442420 + hex 45444442 + hex 44544442 + hex 44444442 + + hex 00ffffff + hex 000fffff + hex 0000ffff + hex 0000f0ff + hex 0000000f hex 00000000 + hex 00000000 + hex 00000000 + + hex 00000022 + hex 00000244 + hex 00002444 + hex 00202444 + hex 02424444 + hex 24444454 + hex 24444544 + hex 24444444 + + hex ffffff00 + hex fffff000 + hex ffff0000 + hex ff0f0000 + hex f0000000 + hex 00000000 + hex 00000000 + hex 00000000 + +; Tile ID 51 +; From image coordinates 80, 8 + hex 00000222 + hex 00002444 + hex 00024444 + hex 00044444 + hex 02244444 + hex 24444444 + hex 24444444 + hex 02444444 + + hex fffff000 + hex ffff0000 + hex fff00000 + hex fff00000 + hex f0000000 + hex 00000000 + hex 00000000 + hex f0000000 + + hex 22200000 + hex 44420000 + hex 44442000 + hex 44444000 + hex 44444220 + hex 44444442 + hex 44444442 + hex 44444420 + + hex 000fffff + hex 0000ffff + hex 00000fff + hex 00000fff + hex 0000000f + hex 00000000 + hex 00000000 + hex 0000000f + +; Tile ID 52 +; From image coordinates 88, 8 + hex 44444444 + hex 44444444 + hex 44444444 + hex 44444444 + hex 44444444 + hex 44444444 + hex 44444444 + hex 44444444 hex 00000000 hex 00000000 @@ -1885,151 +1963,75 @@ tiledata ENT hex 00000000 hex 00000000 hex 00000000 + hex 00000000 + hex 00000000 + + hex 44444444 + hex 44444444 + hex 44444444 + hex 44444444 + hex 44444444 + hex 44444444 + hex 44444444 + hex 44444444 + + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + +; Tile ID 53 +; From image coordinates 96, 8 + hex 20020000 + hex 20242000 + hex 42442000 + hex 44442020 + hex 44444242 + hex 44444442 + hex 44444442 + hex 44444420 + + hex 0ff0ffff + hex 0f000fff + hex 00000fff + hex 00000f0f + hex 00000000 + hex 00000000 + hex 00000000 hex 0000000f - hex f00000ff - hex 66666666 - hex 66666666 - hex 66666666 - hex 66666666 - hex 66666666 - hex 06666666 - hex 00666660 - hex 00000000 + hex 00002002 + hex 00024202 + hex 00024424 + hex 02024444 + hex 24244444 + hex 24444444 + hex 24444444 + hex 02444444 - hex 00000000 - hex 00000000 - hex 00000000 + hex ffff0ff0 + hex fff000f0 + hex fff00000 + hex f0f00000 hex 00000000 hex 00000000 hex 00000000 hex f0000000 - hex ff00000f - -; Tile ID 51 -; From image coordinates 80, 8 - hex 66666666 - hex 66666666 - hex 66666666 - hex 66666666 - hex 66666666 - hex 66666660 - hex 06666604 - hex 40000044 - - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - - hex 66666666 - hex 66666666 - hex 66666666 - hex 66666666 - hex 66666666 - hex 06666666 - hex 40666660 - hex 44000004 - - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - -; Tile ID 52 -; From image coordinates 88, 8 - hex 66666660 - hex 66666660 - hex 66666660 - hex 66666660 - hex 66666660 - hex 06666660 - hex 00666600 - hex 00000000 - - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex f000000f - hex ff0000ff - - hex 06666666 - hex 06666666 - hex 06666666 - hex 06666666 - hex 06666666 - hex 06666660 - hex 00666600 - hex 00000000 - - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex f000000f - hex ff0000ff - -; Tile ID 53 -; From image coordinates 96, 8 - hex 000000fe - hex 00000f0e - hex 00000ee0 - hex 000fe000 - hex 000ee000 - hex 0fe00000 - hex f0e00000 - hex ee000000 - - hex ffffff00 - hex fffff0f0 - hex fffff00f - hex fff00fff - hex fff00fff - hex f00fffff - hex 0f0fffff - hex 00ffffff - - hex ef000000 - hex e0f00000 - hex 0ee00000 - hex 000ef000 - hex 000ee000 - hex 00000ef0 - hex 00000e0f - hex 000000ee - - hex 00ffffff - hex 0f0fffff - hex f00fffff - hex fff00fff - hex fff00fff - hex fffff00f - hex fffff0f0 - hex ffffff00 ; Tile ID 54 ; From image coordinates 104, 8 - hex 00000eee - hex 00000eee - hex 00000eee - hex 00000eee - hex 00000eee - hex 000000ee - hex 000000e0 - hex 00000e0e + hex 00002111 + hex 00002111 + hex 00002111 + hex 00002111 + hex 00002111 + hex 00002211 + hex 00000212 + hex 00002121 hex ffff0000 hex ffff0000 @@ -2040,14 +2042,14 @@ tiledata ENT hex fffff000 hex ffff0000 - hex eee00000 - hex eee00000 - hex eee00000 - hex eee00000 - hex eee00000 - hex ee000000 - hex 0e000000 - hex e0e00000 + hex 11120000 + hex 11120000 + hex 11120000 + hex 11120000 + hex 11120000 + hex 11220000 + hex 21200000 + hex 12120000 hex 0000ffff hex 0000ffff @@ -2060,14 +2062,14 @@ tiledata ENT ; Tile ID 55 ; From image coordinates 112, 8 - hex eee00000 - hex e0e00000 - hex e0e00000 - hex e0e00000 - hex e0e00000 - hex ee000000 - hex 0e000000 - hex e0e00000 + hex 11120000 + hex 12120000 + hex 12120000 + hex 12120000 + hex 12120000 + hex 11220000 + hex 21200000 + hex 12120000 hex 0000ffff hex 0000ffff @@ -2078,14 +2080,14 @@ tiledata ENT hex 000fffff hex 0000ffff - hex 00000eee - hex 00000e0e - hex 00000e0e - hex 00000e0e - hex 00000e0e - hex 000000ee - hex 000000e0 - hex 00000e0e + hex 00002111 + hex 00002121 + hex 00002121 + hex 00002121 + hex 00002121 + hex 00002211 + hex 00000212 + hex 00002121 hex ffff0000 hex ffff0000 @@ -2098,14 +2100,14 @@ tiledata ENT ; Tile ID 56 ; From image coordinates 120, 8 - hex 00000000 - hex 00000004 - hex 00000044 - hex 00000444 - hex 00004444 - hex 00044444 - hex 00444444 - hex 04444444 + hex 00000002 + hex 00000025 + hex 00000255 + hex 00002555 + hex 00025555 + hex 00255555 + hex 02555555 + hex 25555555 hex fffffff0 hex ffffff00 @@ -2116,14 +2118,14 @@ tiledata ENT hex f0000000 hex 00000000 - hex 00000000 - hex 40000000 - hex 44000000 - hex 44400000 - hex 44440000 - hex 44444000 - hex 44444400 - hex 44444440 + hex 20000000 + hex 52000000 + hex 55200000 + hex 55520000 + hex 55552000 + hex 55555200 + hex 55555520 + hex 55555552 hex 0fffffff hex 00ffffff @@ -2141,9 +2143,9 @@ tiledata ENT hex 00000000 hex 00000000 hex 00000000 - hex 00000000 - hex 00000444 - hex 00444444 + hex 00000222 + hex 00222555 + hex 22555555 hex ffffffff hex ffffffff @@ -2159,9 +2161,9 @@ tiledata ENT hex 00000000 hex 00000000 hex 00000000 - hex 00000000 - hex 44400000 - hex 44444400 + hex 22200000 + hex 55522200 + hex 55555522 hex ffffffff hex ffffffff @@ -2179,9 +2181,9 @@ tiledata ENT hex 00000000 hex 00000000 hex 00000000 - hex 00000000 - hex 44400000 - hex 44444400 + hex 22200000 + hex 55522200 + hex 55555522 hex ffffffff hex ffffffff @@ -2197,9 +2199,9 @@ tiledata ENT hex 00000000 hex 00000000 hex 00000000 - hex 00000000 - hex 00000444 - hex 00444444 + hex 00000222 + hex 00222555 + hex 22555555 hex ffffffff hex ffffffff @@ -2212,14 +2214,14 @@ tiledata ENT ; Tile ID 59 ; From image coordinates 144, 8 - hex 00000000 - hex 40000000 - hex 44000000 - hex 44400000 - hex 44440000 - hex 44444000 - hex 44444400 - hex 44444440 + hex 20000000 + hex 52000000 + hex 55200000 + hex 55520000 + hex 55552000 + hex 55555200 + hex 55555520 + hex 55555552 hex 0fffffff hex 00ffffff @@ -2230,14 +2232,14 @@ tiledata ENT hex 0000000f hex 00000000 - hex 00000000 - hex 00000004 - hex 00000044 - hex 00000444 - hex 00004444 - hex 00044444 - hex 00444444 - hex 04444444 + hex 00000002 + hex 00000025 + hex 00000255 + hex 00002555 + hex 00025555 + hex 00255555 + hex 02555555 + hex 25555555 hex fffffff0 hex ffffff00 @@ -2250,14 +2252,14 @@ tiledata ENT ; Tile ID 60 ; From image coordinates 152, 8 - hex 06666666 - hex 06666666 - hex 06666666 - hex 06666666 - hex 06666666 - hex 06666666 - hex 06666666 - hex 06666666 + hex 24444444 + hex 24444444 + hex 24444444 + hex 24444444 + hex 24444444 + hex 24444444 + hex 24444444 + hex 24444444 hex 00000000 hex 00000000 @@ -2268,14 +2270,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 66666660 - hex 66666660 - hex 66666660 - hex 66666660 - hex 66666660 - hex 66666660 - hex 66666660 - hex 66666660 + hex 44444442 + hex 44444442 + hex 44444442 + hex 44444442 + hex 44444442 + hex 44444442 + hex 44444442 + hex 44444442 hex 00000000 hex 00000000 @@ -2288,14 +2290,14 @@ tiledata ENT ; Tile ID 61 ; From image coordinates 160, 8 - hex 66666660 - hex 66666660 - hex 66666660 - hex 66666660 - hex 66666660 - hex 66666660 - hex 66666660 - hex 66666660 + hex 44444442 + hex 44444442 + hex 44444442 + hex 44444442 + hex 44444442 + hex 44444442 + hex 44444442 + hex 44444442 hex 00000000 hex 00000000 @@ -2306,14 +2308,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 06666666 - hex 06666666 - hex 06666666 - hex 06666666 - hex 06666666 - hex 06666666 - hex 06666666 - hex 06666666 + hex 24444444 + hex 24444444 + hex 24444444 + hex 24444444 + hex 24444444 + hex 24444444 + hex 24444444 + hex 24444444 hex 00000000 hex 00000000 @@ -2326,14 +2328,14 @@ tiledata ENT ; Tile ID 62 ; From image coordinates 168, 8 - hex 44444044 - hex 44440004 - hex 44440004 - hex 44440004 - hex 40040004 - hex 40044044 - hex 40044444 - hex 40044444 + hex 55555255 + hex 55552225 + hex 55552225 + hex 55552225 + hex 52252225 + hex 52255255 + hex 52255555 + hex 52255555 hex 00000000 hex 00000000 @@ -2344,14 +2346,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 44044444 - hex 40004444 - hex 40004444 - hex 40004444 - hex 40004004 - hex 44044004 - hex 44444004 - hex 44444004 + hex 55255555 + hex 52225555 + hex 52225555 + hex 52225555 + hex 52225225 + hex 55255225 + hex 55555225 + hex 55555225 hex 00000000 hex 00000000 @@ -2364,14 +2366,14 @@ tiledata ENT ; Tile ID 63 ; From image coordinates 176, 8 - hex ffffffff - hex 0fffffff - hex 00ffffff - hex 000fffff - hex 0000ffff - hex 00000fff - hex 000000ff - hex 0000000f + hex 66666666 + hex 06666666 + hex 00666666 + hex 00066666 + hex 00006666 + hex 00000666 + hex 00000066 + hex 00000006 hex 00000000 hex f0000000 @@ -2382,14 +2384,14 @@ tiledata ENT hex ffffff00 hex fffffff0 - hex ffffffff - hex fffffff0 - hex ffffff00 - hex fffff000 - hex ffff0000 - hex fff00000 - hex ff000000 - hex f0000000 + hex 66666666 + hex 66666660 + hex 66666600 + hex 66666000 + hex 66660000 + hex 66600000 + hex 66000000 + hex 60000000 hex 00000000 hex 0000000f @@ -2402,14 +2404,14 @@ tiledata ENT ; Tile ID 64 ; From image coordinates 184, 8 - hex ffffffff - hex f44444ff - hex 44f4f44f - hex 4ff4ff4f - hex 4f444f4f - hex 444f444f - hex 4444444f - hex ff444fff + hex 66666666 + hex 65555566 + hex 55656556 + hex 56656656 + hex 56555656 + hex 55565556 + hex 55555556 + hex 66555666 hex 00000000 hex 00000000 @@ -2420,14 +2422,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex ffffffff - hex ff44444f - hex f44f4f44 - hex f4ff4ff4 - hex f4f444f4 - hex f444f444 - hex f4444444 - hex fff444ff + hex 66666666 + hex 66555556 + hex 65565655 + hex 65665665 + hex 65655565 + hex 65556555 + hex 65555555 + hex 66655566 hex 00000000 hex 00000000 @@ -2440,137 +2442,128 @@ tiledata ENT ; Tile ID 65 ; From image coordinates 192, 8 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 + hex 00000022 + hex 00000266 + hex 00022666 + hex 00266666 + hex 00266666 + hex 00266666 + hex 02666886 + hex 26668666 + + hex ffffff00 + hex fffff000 + hex fff00000 + hex ff000000 + hex ff000000 + hex ff000000 + hex f0000000 hex 00000000 - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff + hex 22000000 + hex 66200000 + hex 66622000 + hex 66666200 + hex 66666200 + hex 66666200 + hex 68866620 + hex 66686662 + hex 00ffffff + hex 000fffff + hex 00000fff + hex 000000ff + hex 000000ff + hex 000000ff + hex 0000000f hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff ; Tile ID 66 ; From image coordinates 200, 8 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 + hex 22000000 + hex 66200000 + hex 66620000 + hex 66620200 + hex 66662620 + hex 68666662 + hex 66866662 + hex 66666662 + + hex 00ffffff + hex 000fffff + hex 0000ffff + hex 0000f0ff + hex 0000000f hex 00000000 hex 00000000 hex 00000000 - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff + hex 00000022 + hex 00000266 + hex 00002666 + hex 00202666 + hex 02626666 + hex 26666686 + hex 26666866 + hex 26666666 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - -; Tile ID 67 -; From image coordinates 208, 8 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 + hex ffffff00 + hex fffff000 + hex ffff0000 + hex ff0f0000 + hex f0000000 hex 00000000 hex 00000000 hex 00000000 - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff +; Tile ID 67 +; From image coordinates 208, 8 + hex 00000222 + hex 00002666 + hex 00026666 + hex 00066666 + hex 02266666 + hex 26666666 + hex 26666666 + hex 02666666 + hex fffff000 + hex ffff0000 + hex fff00000 + hex fff00000 + hex f0000000 hex 00000000 hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 + hex f0000000 - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff + hex 22200000 + hex 66620000 + hex 66662000 + hex 66666000 + hex 66666220 + hex 66666662 + hex 66666662 + hex 66666620 + + hex 000fffff + hex 0000ffff + hex 00000fff + hex 00000fff + hex 0000000f + hex 00000000 + hex 00000000 + hex 0000000f ; Tile ID 68 ; From image coordinates 216, 8 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff + hex 66666666 + hex 66666666 + hex 66666666 + hex 66666666 + hex 66666666 + hex 66666666 + hex 66666666 + hex 66666666 hex 00000000 hex 00000000 @@ -2581,110 +2574,110 @@ tiledata ENT hex 00000000 hex 00000000 - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff + hex 66666666 + hex 66666666 + hex 66666666 + hex 66666666 + hex 66666666 + hex 66666666 + hex 66666666 + hex 66666666 + + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 ; Tile ID 69 ; From image coordinates 224, 8 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 + hex 20020000 + hex 20262000 + hex 62662000 + hex 66662020 + hex 66666262 + hex 66666662 + hex 66666662 + hex 66666620 - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff + hex 0ff0ffff + hex 0f000fff + hex 00000fff + hex 00000f0f + hex 00000000 + hex 00000000 + hex 00000000 + hex 0000000f - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 + hex 00002002 + hex 00026202 + hex 00026626 + hex 02026666 + hex 26266666 + hex 26666666 + hex 26666666 + hex 02666666 - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff + hex ffff0ff0 + hex fff000f0 + hex fff00000 + hex f0f00000 + hex 00000000 + hex 00000000 + hex 00000000 + hex f0000000 ; Tile ID 70 ; From image coordinates 232, 8 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 + hex 00266866 + hex 00026686 + hex 00002668 + hex 00002666 + hex 00000222 hex 00000000 hex 00000000 hex 00000000 - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff + hex ff000000 + hex fff00000 + hex ffff0000 + hex ffff0000 + hex fffff000 hex ffffffff hex ffffffff hex ffffffff - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 + hex 66866200 + hex 68662000 + hex 86620000 + hex 66620000 + hex 22200000 hex 00000000 hex 00000000 hex 00000000 - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff + hex 000000ff + hex 00000fff + hex 0000ffff + hex 0000ffff + hex 000fffff hex ffffffff hex ffffffff hex ffffffff ; Tile ID 71 ; From image coordinates 240, 8 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff + hex 66666666 + hex 68666666 + hex 88866688 + hex 66888888 + hex 66668866 + hex 26666662 + hex 02266620 + hex 00022200 hex 00000000 hex 00000000 @@ -2692,37 +2685,37 @@ tiledata ENT hex 00000000 hex 00000000 hex 00000000 - hex 00000000 - hex 00000000 + hex f000000f + hex fff000ff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff + hex 66666666 + hex 66666686 + hex 88666888 + hex 88888866 + hex 66886666 + hex 26666662 + hex 02666220 + hex 00222000 + + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex f000000f + hex ff000fff ; Tile ID 72 ; From image coordinates 248, 8 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff + hex 68666666 + hex 86666666 + hex 88666686 + hex 68888866 + hex 66888666 + hex 66666666 + hex 22666622 + hex 00222200 hex 00000000 hex 00000000 @@ -2731,74 +2724,74 @@ tiledata ENT hex 00000000 hex 00000000 hex 00000000 - hex 00000000 + hex ff0000ff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff + hex 66666686 + hex 66666668 + hex 68666688 + hex 66888886 + hex 66688866 + hex 66666666 + hex 22666622 + hex 00222200 + + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex ff0000ff ; Tile ID 73 ; From image coordinates 256, 8 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 + hex 66666200 + hex 66666620 + hex 66666662 + hex 66666660 + hex 66666220 + hex 26622000 + hex 02200000 hex 00000000 - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff + hex 000000ff + hex 0000000f + hex 00000000 + hex 0000000f + hex 0000000f + hex 00000fff + hex f00fffff hex ffffffff - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 + hex 00266666 + hex 02666666 + hex 26666666 + hex 06666666 + hex 02266666 + hex 00022662 + hex 00000220 hex 00000000 - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff + hex ff000000 + hex f0000000 + hex 00000000 + hex f0000000 + hex f0000000 + hex fff00000 + hex fffff00f hex ffffffff ; Tile ID 74 ; From image coordinates 264, 8 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff + hex 11111111 + hex 00000002 + hex 00000002 + hex 22222222 + hex 00020000 + hex 00020000 + hex 00020000 + hex 22222222 hex 00000000 hex 00000000 @@ -2809,34 +2802,34 @@ tiledata ENT hex 00000000 hex 00000000 - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff + hex 11111111 + hex 20000000 + hex 20000000 + hex 22222222 + hex 00002000 + hex 00002000 + hex 00002000 + hex 22222222 + + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 ; Tile ID 75 ; From image coordinates 272, 8 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff + hex 11111111 + hex 00000002 + hex 00000002 + hex 22222222 + hex 00020000 + hex 00020000 + hex 00020000 + hex 22222222 hex 00000000 hex 00000000 @@ -2847,14 +2840,23 @@ tiledata ENT hex 00000000 hex 00000000 - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff + hex 11111111 + hex 20000000 + hex 20000000 + hex 22222222 + hex 00002000 + hex 00002000 + hex 00002000 + hex 22222222 + + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 ; Tile ID 76 ; From image coordinates 280, 8 @@ -3048,14 +3050,14 @@ tiledata ENT ; Tile ID 81 ; From image coordinates 0, 16 - hex 64666000 - hex 46460000 - hex 64606666 - hex 46406666 - hex 64606666 - hex 46066666 - hex 64044444 - hex 46044444 + hex 45444200 + hex 54542222 + hex 45424444 + hex 54524444 + hex 45424444 + hex 54244444 + hex 45255555 + hex 54255555 hex 000000ff hex 00000000 @@ -3066,14 +3068,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 00066646 - hex 00006464 - hex 66660646 - hex 66660464 - hex 66660646 - hex 66666064 - hex 44444046 - hex 44444064 + hex 00244454 + hex 22224545 + hex 44442454 + hex 44442545 + hex 44442454 + hex 44444245 + hex 55555254 + hex 55555245 hex ff000000 hex 00000000 @@ -3087,13 +3089,13 @@ tiledata ENT ; Tile ID 82 ; From image coordinates 8, 16 hex 00000000 - hex 00000000 - hex 66666666 - hex 66666666 - hex 66666666 - hex 66666666 + hex 22222222 hex 44444444 hex 44444444 + hex 44444444 + hex 44444444 + hex 55555555 + hex 55555555 hex ffffffff hex 00000000 @@ -3105,13 +3107,13 @@ tiledata ENT hex 00000000 hex 00000000 - hex 00000000 - hex 66666666 - hex 66666666 - hex 66666666 - hex 66666666 + hex 22222222 hex 44444444 hex 44444444 + hex 44444444 + hex 44444444 + hex 55555555 + hex 55555555 hex ffffffff hex 00000000 @@ -3124,14 +3126,14 @@ tiledata ENT ; Tile ID 83 ; From image coordinates 16, 16 - hex 00000000 - hex 00666666 - hex 00666666 - hex 00666666 - hex 00666666 - hex 00444444 - hex 00444444 - hex 00666666 + hex 02222222 + hex 22444444 + hex 22444444 + hex 22444444 + hex 22444444 + hex 22555555 + hex 22555555 + hex 22444444 hex f0000000 hex 00000000 @@ -3142,14 +3144,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 00000000 - hex 66666600 - hex 66666600 - hex 66666600 - hex 66666600 - hex 44444400 - hex 44444400 - hex 66666600 + hex 22222220 + hex 44444422 + hex 44444422 + hex 44444422 + hex 44444422 + hex 55555522 + hex 55555522 + hex 44444422 hex 0000000f hex 00000000 @@ -3162,14 +3164,14 @@ tiledata ENT ; Tile ID 84 ; From image coordinates 24, 16 - hex 00000000 - hex 66666660 - hex 66666660 - hex 66666660 - hex 66666660 - hex 44444440 - hex 44444440 - hex 66666660 + hex 22222222 + hex 44444442 + hex 44444442 + hex 44444442 + hex 44444442 + hex 55555552 + hex 55555552 + hex 44444442 hex 00000000 hex 00000000 @@ -3180,14 +3182,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 00000000 - hex 06666666 - hex 06666666 - hex 06666666 - hex 06666666 - hex 04444444 - hex 04444444 - hex 06666666 + hex 22222222 + hex 24444444 + hex 24444444 + hex 24444444 + hex 24444444 + hex 25555555 + hex 25555555 + hex 24444444 hex 00000000 hex 00000000 @@ -3200,14 +3202,14 @@ tiledata ENT ; Tile ID 85 ; From image coordinates 32, 16 - hex 00000000 - hex 06666666 - hex 06666666 - hex 06666666 - hex 06666666 - hex 04444444 - hex 04444444 - hex 06666666 + hex 22222222 + hex 24444444 + hex 24444444 + hex 24444444 + hex 24444444 + hex 25555555 + hex 25555555 + hex 24444444 hex 00000000 hex 00000000 @@ -3218,14 +3220,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 00000000 - hex 66666660 - hex 66666660 - hex 66666660 - hex 66666660 - hex 44444440 - hex 44444440 - hex 66666660 + hex 22222222 + hex 44444442 + hex 44444442 + hex 44444442 + hex 44444442 + hex 55555552 + hex 55555552 + hex 44444442 hex 00000000 hex 00000000 @@ -3238,14 +3240,14 @@ tiledata ENT ; Tile ID 86 ; From image coordinates 40, 16 - hex 00000000 - hex 66666600 - hex 66666600 - hex 66666600 - hex 66666600 - hex 44444400 - hex 44444400 - hex 66666600 + hex 22222220 + hex 44444422 + hex 44444422 + hex 44444422 + hex 44444422 + hex 55555522 + hex 55555522 + hex 44444422 hex 0000000f hex 00000000 @@ -3256,14 +3258,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 00000000 - hex 00666666 - hex 00666666 - hex 00666666 - hex 00666666 - hex 00444444 - hex 00444444 - hex 00666666 + hex 02222222 + hex 22444444 + hex 22444444 + hex 22444444 + hex 22444444 + hex 22555555 + hex 22555555 + hex 22444444 hex f0000000 hex 00000000 @@ -3277,13 +3279,13 @@ tiledata ENT ; Tile ID 87 ; From image coordinates 48, 16 hex 00000000 - hex 00000000 - hex 66666666 - hex 66666666 - hex 66666666 - hex 66666666 + hex 22222222 hex 44444444 hex 44444444 + hex 44444444 + hex 44444444 + hex 55555555 + hex 55555555 hex ffffffff hex 00000000 @@ -3295,13 +3297,13 @@ tiledata ENT hex 00000000 hex 00000000 - hex 00000000 - hex 66666666 - hex 66666666 - hex 66666666 - hex 66666666 + hex 22222222 hex 44444444 hex 44444444 + hex 44444444 + hex 44444444 + hex 55555555 + hex 55555555 hex ffffffff hex 00000000 @@ -3314,14 +3316,14 @@ tiledata ENT ; Tile ID 88 ; From image coordinates 56, 16 - hex 00066646 - hex 00006464 - hex 66660646 - hex 66660464 - hex 66660646 - hex 66666064 - hex 44444046 - hex 44444064 + hex 00244454 + hex 22224545 + hex 44442454 + hex 44442545 + hex 44442454 + hex 44444245 + hex 55555254 + hex 55555245 hex ff000000 hex 00000000 @@ -3332,14 +3334,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 64666000 - hex 46460000 - hex 64606666 - hex 46406666 - hex 64606666 - hex 46066666 - hex 64044444 - hex 46044444 + hex 45444200 + hex 54542222 + hex 45424444 + hex 54524444 + hex 45424444 + hex 54244444 + hex 45255555 + hex 54255555 hex 000000ff hex 00000000 @@ -3352,14 +3354,14 @@ tiledata ENT ; Tile ID 89 ; From image coordinates 64, 16 - hex 60000006 - hex 60000000 - hex 60000006 - hex 60000006 - hex 60000006 - hex 60000006 - hex 60000006 - hex 60000006 + hex 40000004 + hex 42000002 + hex 40200024 + hex 40200024 + hex 40022204 + hex 40000004 + hex 40000004 + hex 40000004 hex 0ffffff0 hex 00fffff0 @@ -3370,14 +3372,14 @@ tiledata ENT hex 0ffffff0 hex 0ffffff0 - hex 60000006 - hex 00000006 - hex 60000006 - hex 60000006 - hex 60000006 - hex 60000006 - hex 60000006 - hex 60000006 + hex 40000004 + hex 20000024 + hex 42000204 + hex 42000204 + hex 40222004 + hex 40000004 + hex 40000004 + hex 40000004 hex 0ffffff0 hex 0fffff00 @@ -3390,14 +3392,14 @@ tiledata ENT ; Tile ID 90 ; From image coordinates 72, 16 - hex 00000000 hex 00022222 - hex 00222222 - hex 00222222 - hex 02222222 - hex 02222222 - hex 02222222 - hex 02222227 + hex 002bbbbb + hex 02bbbbbb + hex 02bbbbbb + hex 2bbbbbbb + hex 2bbbbbbb + hex 2bbbbbbb + hex 2bbbbbb9 hex fff00000 hex ff000000 @@ -3408,14 +3410,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 00000000 hex 22222000 - hex 22222200 - hex 22222200 - hex 22222220 - hex 22222220 - hex 22222220 - hex 72222220 + hex bbbbb200 + hex bbbbbb20 + hex bbbbbb20 + hex bbbbbbb2 + hex bbbbbbb2 + hex bbbbbbb2 + hex 9bbbbbb2 hex 00000fff hex 000000ff @@ -3428,14 +3430,14 @@ tiledata ENT ; Tile ID 91 ; From image coordinates 80, 16 - hex 00000000 - hex 27777777 - hex 27777777 - hex 27777777 - hex 27777777 - hex 77777777 - hex 77722277 - hex 77222227 + hex 22222222 + hex b9999999 + hex b9999999 + hex b9999999 + hex b9999999 + hex 99999999 + hex 999bbb99 + hex 99bbbbb9 hex 00000000 hex 00000000 @@ -3446,14 +3448,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 00000000 - hex 77777772 - hex 77777772 - hex 77777772 - hex 77777772 - hex 77777777 - hex 77222777 - hex 72222277 + hex 22222222 + hex 9999999b + hex 9999999b + hex 9999999b + hex 9999999b + hex 99999999 + hex 99bbb999 + hex 9bbbbb99 hex 00000000 hex 00000000 @@ -3466,14 +3468,14 @@ tiledata ENT ; Tile ID 92 ; From image coordinates 88, 16 - hex 00000000 hex 22222222 - hex 22222222 - hex 22222222 - hex 22222222 - hex 72222227 - hex 77222277 - hex 77777777 + hex bbbbbbbb + hex bbbbbbbb + hex bbbbbbbb + hex bbbbbbbb + hex 9bbbbbb9 + hex 99bbbb99 + hex 99999999 hex 00000000 hex 00000000 @@ -3484,14 +3486,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 00000000 hex 22222222 - hex 22222222 - hex 22222222 - hex 22222222 - hex 72222227 - hex 77222277 - hex 77777777 + hex bbbbbbbb + hex bbbbbbbb + hex bbbbbbbb + hex bbbbbbbb + hex 9bbbbbb9 + hex 99bbbb99 + hex 99999999 hex 00000000 hex 00000000 @@ -3504,14 +3506,14 @@ tiledata ENT ; Tile ID 93 ; From image coordinates 96, 16 - hex 00000000 - hex 77777000 - hex 77777700 - hex 77777700 - hex 77722270 - hex 77222220 - hex 72222220 - hex 72222220 + hex 22222000 + hex 99999200 + hex 99999920 + hex 99999920 + hex 999bbb92 + hex 99bbbbb2 + hex 9bbbbbb2 + hex 9bbbbbb2 hex 00000fff hex 000000ff @@ -3522,14 +3524,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 00000000 - hex 00077777 - hex 00777777 - hex 00777777 - hex 07222777 - hex 02222277 - hex 02222227 - hex 02222227 + hex 00022222 + hex 00299999 + hex 02999999 + hex 02999999 + hex 29bbb999 + hex 2bbbbb99 + hex 2bbbbbb9 + hex 2bbbbbb9 hex fff00000 hex ff000000 @@ -3542,14 +3544,14 @@ tiledata ENT ; Tile ID 94 ; From image coordinates 104, 16 - hex 00000000 - hex 72222222 - hex 72222222 - hex 77222222 - hex 77777777 - hex 77777777 - hex 77777772 - hex 77777772 + hex 22222222 + hex 9bbbbbbb + hex 9bbbbbbb + hex 99bbbbbb + hex 99999999 + hex 99999999 + hex 9999999b + hex 9999999b hex 00000000 hex 00000000 @@ -3560,14 +3562,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 00000000 - hex 22222227 - hex 22222227 - hex 22222277 - hex 77777777 - hex 77777777 - hex 27777777 - hex 27777777 + hex 22222222 + hex bbbbbbb9 + hex bbbbbbb9 + hex bbbbbb99 + hex 99999999 + hex 99999999 + hex b9999999 + hex b9999999 hex 00000000 hex 00000000 @@ -3580,14 +3582,14 @@ tiledata ENT ; Tile ID 95 ; From image coordinates 112, 16 - hex 00000000 - hex 27777777 - hex 27777777 - hex 77777777 - hex 77777777 - hex 22222777 - hex 22222277 - hex 22222277 + hex 22222222 + hex b9999999 + hex b9999999 + hex 99999999 + hex 99999999 + hex bbbbb999 + hex bbbbbb99 + hex bbbbbb99 hex 00000000 hex 00000000 @@ -3598,14 +3600,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 00000000 - hex 77777772 - hex 77777772 - hex 77777777 - hex 77777777 - hex 77722222 - hex 77222222 - hex 77222222 + hex 22222222 + hex 9999999b + hex 9999999b + hex 99999999 + hex 99999999 + hex 999bbbbb + hex 99bbbbbb + hex 99bbbbbb hex 00000000 hex 00000000 @@ -3618,14 +3620,14 @@ tiledata ENT ; Tile ID 96 ; From image coordinates 120, 16 - hex 00700000 - hex 07177003 - hex 07177771 - hex 71777773 - hex 71777773 - hex 71777773 - hex 71777773 - hex 71777773 + hex 00900000 + hex 09799000 + hex 09799997 + hex 97999990 + hex 97999990 + hex 97999990 + hex 97999990 + hex 97999990 hex ff0fffff hex f0000ff0 @@ -3636,14 +3638,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 00000700 - hex 30077170 - hex 17777170 - hex 37777717 - hex 37777717 - hex 37777717 - hex 37777717 - hex 37777717 + hex 00000900 + hex 00099790 + hex 79999790 + hex 09999979 + hex 09999979 + hex 09999979 + hex 09999979 + hex 09999979 hex fffff0ff hex 0ff0000f @@ -3656,14 +3658,14 @@ tiledata ENT ; Tile ID 97 ; From image coordinates 128, 16 - hex 00000700 - hex 10077070 - hex 17777070 - hex 17777707 - hex 17777707 - hex 17777707 - hex 17777707 - hex 17777707 + hex 00000900 + hex 70099290 + hex 79999290 + hex 79999929 + hex 79999929 + hex 79999929 + hex 79999929 + hex 79999929 hex fffff0ff hex 0ff0000f @@ -3674,14 +3676,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 00700000 - hex 07077001 - hex 07077771 - hex 70777771 - hex 70777771 - hex 70777771 - hex 70777771 - hex 70777771 + hex 00900000 + hex 09299007 + hex 09299997 + hex 92999997 + hex 92999997 + hex 92999997 + hex 92999997 + hex 92999997 hex ff0fffff hex f0000ff0 @@ -3694,14 +3696,14 @@ tiledata ENT ; Tile ID 98 ; From image coordinates 136, 16 - hex 00000000 - hex 000fffff - hex 00ffffff - hex 00ffffff - hex 00ffffff - hex 0fffffff - hex 0fffff0f - hex 0fffff0f + hex 00022222 + hex 00266666 + hex 02666666 + hex 02666666 + hex 02666666 + hex 26666666 + hex 26666626 + hex 26666626 hex fff00000 hex ff000000 @@ -3712,14 +3714,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 00000000 - hex fffff000 - hex ffffff00 - hex ffffff00 - hex ffffff00 - hex fffffff0 - hex f0fffff0 - hex f0fffff0 + hex 22222000 + hex 66666200 + hex 66666620 + hex 66666620 + hex 66666620 + hex 66666662 + hex 62666662 + hex 62666662 hex 00000fff hex 000000ff @@ -3732,14 +3734,14 @@ tiledata ENT ; Tile ID 99 ; From image coordinates 144, 16 - hex 00000000 - hex fffff000 - hex ffffff00 - hex ffffff00 - hex ffffff00 - hex fffffff0 - hex f0fffff0 - hex f0fffff0 + hex 22222000 + hex 66666200 + hex 66666620 + hex 66666620 + hex 66666620 + hex 66666662 + hex 62666662 + hex 62666662 hex 00000fff hex 000000ff @@ -3750,14 +3752,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 00000000 - hex 000fffff - hex 00ffffff - hex 00ffffff - hex 00ffffff - hex 0fffffff - hex 0fffff0f - hex 0fffff0f + hex 00022222 + hex 00266666 + hex 02666666 + hex 02666666 + hex 02666666 + hex 26666666 + hex 26666626 + hex 26666626 hex fff00000 hex ff000000 @@ -3772,12 +3774,12 @@ tiledata ENT ; From image coordinates 152, 16 hex 00000000 hex 00000000 - hex 00000000 - hex 00000066 - hex 00006666 - hex 00066666 - hex 00666666 - hex 00666666 + hex 00000022 + hex 00002244 + hex 00024444 + hex 00244444 + hex 02444444 + hex 02444444 hex ffffffff hex ffffffff @@ -3790,12 +3792,12 @@ tiledata ENT hex 00000000 hex 00000000 - hex 00000000 - hex 66000000 - hex 66660000 - hex 66666000 - hex 66666600 - hex 66666600 + hex 22000000 + hex 44220000 + hex 44442000 + hex 44444200 + hex 44444420 + hex 44444420 hex ffffffff hex ffffffff @@ -3810,12 +3812,12 @@ tiledata ENT ; From image coordinates 160, 16 hex 00000000 hex 00000000 - hex 00000000 - hex 66000000 - hex 66660000 - hex 66666000 - hex 66666600 - hex 66666600 + hex 22000000 + hex 44220000 + hex 44442000 + hex 44444200 + hex 44444420 + hex 44444420 hex ffffffff hex ffffffff @@ -3828,12 +3830,12 @@ tiledata ENT hex 00000000 hex 00000000 - hex 00000000 - hex 00000066 - hex 00006666 - hex 00066666 - hex 00666666 - hex 00666666 + hex 00000022 + hex 00002244 + hex 00024444 + hex 00244444 + hex 02444444 + hex 02444444 hex ffffffff hex ffffffff @@ -3846,14 +3848,14 @@ tiledata ENT ; Tile ID 102 ; From image coordinates 168, 16 - hex 0000e3ee - hex 0000e3ee - hex 33eee3ee - hex 3333e3ee - hex 0000e3ee - hex 0000e3ee - hex 0000e3ee - hex 0000e3e3 + hex 00001011 + hex 00001011 + hex 00111011 + hex 00001011 + hex 22221011 + hex 00001011 + hex 00001011 + hex 00001010 hex ffff0000 hex ffff0000 @@ -3864,14 +3866,14 @@ tiledata ENT hex ffff0000 hex ffff0000 - hex ee3e0000 - hex ee3e0000 - hex ee3eee33 - hex ee3e3333 - hex ee3e0000 - hex ee3e0000 - hex ee3e0000 - hex 3e3e0000 + hex 11010000 + hex 11010000 + hex 11011100 + hex 11010000 + hex 11012222 + hex 11010000 + hex 11010000 + hex 01010000 hex 0000ffff hex 0000ffff @@ -3884,14 +3886,14 @@ tiledata ENT ; Tile ID 103 ; From image coordinates 176, 16 - hex e3300000 - hex 33300000 - hex 3330eeee - hex 33303333 - hex 33300000 - hex 33300000 - hex 33300000 - hex e3300000 + hex 10020000 + hex 00020000 + hex 00021111 + hex 00020000 + hex 00022222 + hex 00020000 + hex 00020000 + hex 10020000 hex 0000ffff hex 0000ffff @@ -3902,14 +3904,14 @@ tiledata ENT hex 0000ffff hex 0000ffff - hex 0000033e - hex 00000333 - hex eeee0333 - hex 33330333 - hex 00000333 - hex 00000333 - hex 00000333 - hex 0000033e + hex 00002001 + hex 00002000 + hex 11112000 + hex 00002000 + hex 22222000 + hex 00002000 + hex 00002000 + hex 00002001 hex ffff0000 hex ffff0000 @@ -3922,14 +3924,14 @@ tiledata ENT ; Tile ID 104 ; From image coordinates 184, 16 - hex 0fff0fff - hex 0fff0fff - hex 0fff0fff - hex 0fff0fff - hex 01110111 - hex 21112111 - hex 21112111 - hex 21112111 + hex 26662666 + hex 26662666 + hex 26662666 + hex 26662666 + hex 27772777 + hex b777b777 + hex b777b777 + hex b777b777 hex 00000000 hex 00000000 @@ -3940,14 +3942,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex fff0fff0 - hex fff0fff0 - hex fff0fff0 - hex fff0fff0 - hex 11101110 - hex 11121112 - hex 11121112 - hex 11121112 + hex 66626662 + hex 66626662 + hex 66626662 + hex 66626662 + hex 77727772 + hex 777b777b + hex 777b777b + hex 777b777b hex 00000000 hex 00000000 @@ -3965,9 +3967,9 @@ tiledata ENT hex a00a000a hex aa0a000a hex 0a0a00aa - hex 0a0a00a2 - hex 02aa00a2 - hex 0022aaa2 + hex 0a0a00ab + hex 0baa00ab + hex 00bbaaab hex ffff0fff hex 0fff0fff @@ -3983,9 +3985,9 @@ tiledata ENT hex a000a00a hex a000a0aa hex aa00a0a0 - hex 2a00a0a0 - hex 2a00aa20 - hex 2aaa2200 + hex ba00a0a0 + hex ba00aab0 + hex baaabb00 hex fff0ffff hex fff0fff0 @@ -3998,14 +4000,14 @@ tiledata ENT ; Tile ID 106 ; From image coordinates 200, 16 - hex a200000a - hex a20000a2 - hex a2000a20 - hex 20000200 - hex 2aaaa200 - hex 22222a00 - hex 000022a0 - hex 00000020 + hex ab00000a + hex ab0000ab + hex ab000ab0 + hex b0000b00 + hex baaaab00 + hex bbbbba00 + hex 0000bba0 + hex 000000b0 hex 00fffff0 hex 00ffff00 @@ -4016,14 +4018,14 @@ tiledata ENT hex ffff000f hex ffffff0f - hex a000002a - hex 2a00002a - hex 02a0002a - hex 00200002 - hex 002aaaa2 - hex 00a22222 - hex 0a220000 - hex 02000000 + hex a00000ba + hex ba0000ba + hex 0ba000ba + hex 00b0000b + hex 00baaaab + hex 00abbbbb + hex 0abb0000 + hex 0b000000 hex 0fffff00 hex 00ffff00 @@ -4036,14 +4038,14 @@ tiledata ENT ; Tile ID 107 ; From image coordinates 208, 16 - hex 44ffffff - hex 4ffff444 - hex fff44fff - hex 0f44ffff - hex 404ff444 - hex 404ff444 - hex 404f4444 - hex 044f4444 + hex 55666666 + hex 56666555 + hex 66655666 + hex 26556666 + hex 52566555 + hex 52566555 + hex 52565555 + hex 25565555 hex 00000000 hex 00000000 @@ -4054,14 +4056,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex ffffff44 - hex 444ffff4 - hex fff44fff - hex ffff44f0 - hex 444ff404 - hex 444ff404 - hex 4444f404 - hex 4444f440 + hex 66666655 + hex 55566665 + hex 66655666 + hex 66665562 + hex 55566525 + hex 55566525 + hex 55556525 + hex 55556552 hex 00000000 hex 00000000 @@ -4074,14 +4076,14 @@ tiledata ENT ; Tile ID 108 ; From image coordinates 216, 16 - hex ffffff04 - hex 44444400 - hex 4444fff0 - hex f44f444f - hex 40ff4444 - hex 40f44444 - hex 44044444 - hex 44004440 + hex 66666625 + hex 55555522 + hex 55556662 + hex 65565556 + hex 52665555 + hex 52655555 + hex 55255555 + hex 55225552 hex 00000000 hex 00000000 @@ -4092,14 +4094,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 40ffffff - hex 00444444 - hex 0fff4444 - hex f444f44f - hex 4444ff04 - hex 44444f04 - hex 44444044 - hex 04440044 + hex 52666666 + hex 22555555 + hex 26665555 + hex 65556556 + hex 55556625 + hex 55555625 + hex 55555255 + hex 25552255 hex 00000000 hex 00000000 @@ -4112,14 +4114,14 @@ tiledata ENT ; Tile ID 109 ; From image coordinates 224, 16 - hex eee00000 - hex e000eeee - hex eee00000 - hex eee0eeee - hex e000eeee - hex e0000000 - hex e0000000 - hex e0000000 + hex 11100000 + hex 12221111 + hex 11122222 + hex 11121111 + hex 12221111 + hex 12222222 + hex 12222222 + hex 12222222 hex 000fffff hex 00000000 @@ -4130,14 +4132,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 00000eee - hex eeee000e - hex 00000eee - hex eeee0eee - hex eeee000e - hex 0000000e - hex 0000000e - hex 0000000e + hex 00000111 + hex 11112221 + hex 22222111 + hex 11112111 + hex 11112221 + hex 22222221 + hex 22222221 + hex 22222221 hex fffff000 hex 00000000 @@ -4150,14 +4152,14 @@ tiledata ENT ; Tile ID 110 ; From image coordinates 232, 16 - hex 00000eee - hex eeeeee00 - hex 00000eee - hex eeeeeeee - hex eeeeee00 - hex 00000e00 - hex 00000e00 - hex 00000e00 + hex 00000111 + hex 11111122 + hex 22222111 + hex 11111111 + hex 11111122 + hex 22222122 + hex 22222122 + hex 22222122 hex fffff000 hex 00000000 @@ -4168,14 +4170,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex eee00000 - hex 00eeeeee - hex eee00000 - hex eeeeeeee - hex 00eeeeee - hex 00e00000 - hex 00e00000 - hex 00e00000 + hex 11100000 + hex 22111111 + hex 11122222 + hex 11111111 + hex 22111111 + hex 22122222 + hex 22122222 + hex 22122222 hex 000fffff hex 00000000 @@ -4188,14 +4190,14 @@ tiledata ENT ; Tile ID 111 ; From image coordinates 240, 16 - hex 000e0000 - hex 000e0000 - hex 00e00000 - hex 00e00000 - hex 0e003333 - hex 0e0333ee - hex e0033eee - hex e0033e3e + hex 00012222 + hex 00012222 + hex 00122222 + hex 00122222 + hex 01220000 + hex 01200011 + hex 12200111 + hex 12200101 hex fff00000 hex fff00000 @@ -4206,14 +4208,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 0000e000 - hex 0000e000 - hex 00000e00 - hex 00000e00 - hex 333300e0 - hex ee3330e0 - hex eee3300e - hex e3e3300e + hex 22221000 + hex 22221000 + hex 22222100 + hex 22222100 + hex 00002210 + hex 11000210 + hex 11100221 + hex 10100221 hex 00000fff hex 00000fff @@ -4226,14 +4228,14 @@ tiledata ENT ; Tile ID 112 ; From image coordinates 248, 16 - hex 00003000 - hex 00003000 - hex 00000300 - hex 00000300 - hex 33330030 - hex ee333030 - hex eee33030 - hex e3e33003 + hex 22220000 + hex 22220000 + hex 22222000 + hex 22222000 + hex 00002200 + hex 11000200 + hex 11100200 + hex 10100220 hex 00000fff hex 00000fff @@ -4244,14 +4246,14 @@ tiledata ENT hex 0000000f hex 00000000 - hex 00030000 - hex 00030000 - hex 00300000 - hex 00300000 - hex 03003333 - hex 030333ee - hex 03033eee - hex 30033e3e + hex 00002222 + hex 00002222 + hex 00022222 + hex 00022222 + hex 00220000 + hex 00200011 + hex 00200111 + hex 02200101 hex fff00000 hex fff00000 @@ -4265,6 +4267,15 @@ tiledata ENT ; Tile ID 113 ; From image coordinates 256, 16 hex 00000000 + hex 09999999 + hex 09299999 + hex 09999000 + hex 09990022 + hex 09990029 + hex 09990029 + hex 09999229 + + hex f0000000 hex 00000000 hex 00000000 hex 00000000 @@ -4273,36 +4284,16 @@ tiledata ENT hex 00000000 hex 00000000 - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff + hex 00000000 + hex 99999990 + hex 99999290 + hex 00099990 + hex 22009990 + hex 92009990 + hex 92009990 + hex 92299990 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - -; Tile ID 114 -; From image coordinates 264, 16 - hex 00000000 + hex 0000000f hex 00000000 hex 00000000 hex 00000000 @@ -4311,16 +4302,18 @@ tiledata ENT hex 00000000 hex 00000000 - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - +; Tile ID 114 +; From image coordinates 264, 16 hex 00000000 + hex 99999992 + hex 99999292 + hex 00999992 + hex 20099992 + hex 90029992 + hex 90029992 + hex 00029992 + + hex 0000000f hex 00000000 hex 00000000 hex 00000000 @@ -4329,14 +4322,23 @@ tiledata ENT hex 00000000 hex 00000000 - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff + hex 00000000 + hex 29999999 + hex 29299999 + hex 29999900 + hex 29999002 + hex 29992009 + hex 29992009 + hex 29992000 + + hex f0000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 ; Tile ID 115 ; From image coordinates 272, 16 @@ -4568,14 +4570,14 @@ tiledata ENT ; Tile ID 121 ; From image coordinates 0, 24 - hex 64066666 - hex 46066666 - hex 60666666 - hex 40666666 - hex 60666666 - hex 40444444 - hex 60666666 - hex 40666666 + hex 45244444 + hex 54244444 + hex 42444444 + hex 52444444 + hex 42444444 + hex 52555555 + hex 42444444 + hex 52444444 hex 00000000 hex 00000000 @@ -4586,14 +4588,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 66666046 - hex 66666064 - hex 66666606 - hex 66666604 - hex 66666606 - hex 44444404 - hex 66666606 - hex 66666604 + hex 44444254 + hex 44444245 + hex 44444424 + hex 44444425 + hex 44444424 + hex 55555525 + hex 44444424 + hex 44444425 hex 00000000 hex 00000000 @@ -4606,14 +4608,14 @@ tiledata ENT ; Tile ID 122 ; From image coordinates 8, 24 - hex 66666666 - hex 66666666 - hex 66666666 - hex 66666666 - hex 66666666 hex 44444444 - hex 66666666 - hex 66666666 + hex 44444444 + hex 44444444 + hex 44444444 + hex 44444444 + hex 55555555 + hex 44444444 + hex 44444444 hex 00000000 hex 00000000 @@ -4624,14 +4626,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 66666666 - hex 66666666 - hex 66666666 - hex 66666666 - hex 66666666 hex 44444444 - hex 66666666 - hex 66666666 + hex 44444444 + hex 44444444 + hex 44444444 + hex 44444444 + hex 55555555 + hex 44444444 + hex 44444444 hex 00000000 hex 00000000 @@ -4644,14 +4646,14 @@ tiledata ENT ; Tile ID 123 ; From image coordinates 16, 24 - hex 00666666 - hex 00666666 - hex 00666666 - hex 00666666 - hex 00444444 - hex 00666666 - hex 00666666 - hex 00666666 + hex 22444444 + hex 22444444 + hex 22444444 + hex 22444444 + hex 22555555 + hex 22444444 + hex 22444444 + hex 22444444 hex 00000000 hex 00000000 @@ -4662,14 +4664,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 66666600 - hex 66666600 - hex 66666600 - hex 66666600 - hex 44444400 - hex 66666600 - hex 66666600 - hex 66666600 + hex 44444422 + hex 44444422 + hex 44444422 + hex 44444422 + hex 55555522 + hex 44444422 + hex 44444422 + hex 44444422 hex 00000000 hex 00000000 @@ -4682,14 +4684,14 @@ tiledata ENT ; Tile ID 124 ; From image coordinates 24, 24 - hex 66666660 - hex 66666660 - hex 66666660 - hex 66666660 - hex 44444440 - hex 66666660 - hex 66666660 - hex 66666660 + hex 44444442 + hex 44444442 + hex 44444442 + hex 44444442 + hex 55555552 + hex 44444442 + hex 44444442 + hex 44444442 hex 00000000 hex 00000000 @@ -4700,14 +4702,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 06666666 - hex 06666666 - hex 06666666 - hex 06666666 - hex 04444444 - hex 06666666 - hex 06666666 - hex 06666666 + hex 24444444 + hex 24444444 + hex 24444444 + hex 24444444 + hex 25555555 + hex 24444444 + hex 24444444 + hex 24444444 hex 00000000 hex 00000000 @@ -4720,14 +4722,14 @@ tiledata ENT ; Tile ID 125 ; From image coordinates 32, 24 - hex 06666666 - hex 06666666 - hex 06666666 - hex 06666666 - hex 04444444 - hex 06666666 - hex 06666666 - hex 06666666 + hex 24444444 + hex 24444444 + hex 24444444 + hex 24444444 + hex 25555555 + hex 24444444 + hex 24444444 + hex 24444444 hex 00000000 hex 00000000 @@ -4738,14 +4740,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 66666660 - hex 66666660 - hex 66666660 - hex 66666660 - hex 44444440 - hex 66666660 - hex 66666660 - hex 66666660 + hex 44444442 + hex 44444442 + hex 44444442 + hex 44444442 + hex 55555552 + hex 44444442 + hex 44444442 + hex 44444442 hex 00000000 hex 00000000 @@ -4758,14 +4760,14 @@ tiledata ENT ; Tile ID 126 ; From image coordinates 40, 24 - hex 66666600 - hex 66666600 - hex 66666600 - hex 66666600 - hex 44444400 - hex 66666600 - hex 66666600 - hex 66666600 + hex 44444422 + hex 44444422 + hex 44444422 + hex 44444422 + hex 55555522 + hex 44444422 + hex 44444422 + hex 44444422 hex 00000000 hex 00000000 @@ -4776,14 +4778,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 00666666 - hex 00666666 - hex 00666666 - hex 00666666 - hex 00444444 - hex 00666666 - hex 00666666 - hex 00666666 + hex 22444444 + hex 22444444 + hex 22444444 + hex 22444444 + hex 22555555 + hex 22444444 + hex 22444444 + hex 22444444 hex 00000000 hex 00000000 @@ -4796,14 +4798,14 @@ tiledata ENT ; Tile ID 127 ; From image coordinates 48, 24 - hex 66666666 - hex 66666666 - hex 66666666 - hex 66666666 - hex 66666666 hex 44444444 - hex 66666666 - hex 66666666 + hex 44444444 + hex 44444444 + hex 44444444 + hex 44444444 + hex 55555555 + hex 44444444 + hex 44444444 hex 00000000 hex 00000000 @@ -4814,14 +4816,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 66666666 - hex 66666666 - hex 66666666 - hex 66666666 - hex 66666666 hex 44444444 - hex 66666666 - hex 66666666 + hex 44444444 + hex 44444444 + hex 44444444 + hex 44444444 + hex 55555555 + hex 44444444 + hex 44444444 hex 00000000 hex 00000000 @@ -4834,14 +4836,14 @@ tiledata ENT ; Tile ID 128 ; From image coordinates 56, 24 - hex 66666046 - hex 66666064 - hex 66666606 - hex 66666604 - hex 66666606 - hex 44444404 - hex 66666606 - hex 66666604 + hex 44444254 + hex 44444245 + hex 44444424 + hex 44444425 + hex 44444424 + hex 55555525 + hex 44444424 + hex 44444425 hex 00000000 hex 00000000 @@ -4852,14 +4854,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 64066666 - hex 46066666 - hex 60666666 - hex 40666666 - hex 60666666 - hex 40444444 - hex 60666666 - hex 40666666 + hex 45244444 + hex 54244444 + hex 42444444 + hex 52444444 + hex 42444444 + hex 52555555 + hex 42444444 + hex 52444444 hex 00000000 hex 00000000 @@ -4872,14 +4874,14 @@ tiledata ENT ; Tile ID 129 ; From image coordinates 64, 24 - hex 00000000 - hex eee000ee - hex ee33333e - hex ee33333e - hex ee33333e - hex ee33333e - hex eee000ee - hex 00000000 + hex 22200022 + hex 11120211 + hex 11000001 + hex 11000001 + hex 11000001 + hex 11000001 + hex 11120211 + hex 22200022 hex 000fff00 hex 0000f000 @@ -4890,14 +4892,14 @@ tiledata ENT hex 0000f000 hex 000fff00 - hex 00000000 - hex ee000eee - hex e33333ee - hex e33333ee - hex e33333ee - hex e33333ee - hex ee000eee - hex 00000000 + hex 22000222 + hex 11202111 + hex 10000011 + hex 10000011 + hex 10000011 + hex 10000011 + hex 11202111 + hex 22000222 hex 00fff000 hex 000f0000 @@ -4910,14 +4912,14 @@ tiledata ENT ; Tile ID 130 ; From image coordinates 72, 24 - hex 02222277 - hex 07777777 - hex 07777777 - hex 07777777 - hex 07777777 - hex 07777777 - hex 00077777 - hex 00000000 + hex 2bbbbb99 + hex 29999999 + hex 29999999 + hex 29999999 + hex 29999999 + hex 29999999 + hex 02299999 + hex 00022222 hex 00000000 hex 00000000 @@ -4928,14 +4930,14 @@ tiledata ENT hex f0000000 hex fff00000 - hex 77222220 - hex 77777770 - hex 77777770 - hex 77777770 - hex 77777770 - hex 77777770 - hex 77777000 - hex 00000000 + hex 99bbbbb2 + hex 99999992 + hex 99999992 + hex 99999992 + hex 99999992 + hex 99999992 + hex 99999220 + hex 22222000 hex 00000000 hex 00000000 @@ -4948,14 +4950,14 @@ tiledata ENT ; Tile ID 131 ; From image coordinates 80, 24 - hex 72222222 - hex 72222222 - hex 72222222 - hex 77222227 - hex 77722277 - hex 77777777 - hex 77777777 - hex 00000000 + hex 9bbbbbbb + hex 9bbbbbbb + hex 9bbbbbbb + hex 99bbbbb9 + hex 999bbb99 + hex 99999999 + hex 99999999 + hex 22222222 hex 00000000 hex 00000000 @@ -4966,14 +4968,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 22222227 - hex 22222227 - hex 22222227 - hex 72222277 - hex 77222777 - hex 77777777 - hex 77777777 - hex 00000000 + hex bbbbbbb9 + hex bbbbbbb9 + hex bbbbbbb9 + hex 9bbbbb99 + hex 99bbb999 + hex 99999999 + hex 99999999 + hex 22222222 hex 00000000 hex 00000000 @@ -4986,14 +4988,14 @@ tiledata ENT ; Tile ID 132 ; From image coordinates 88, 24 - hex 77777777 - hex 77777777 - hex 77777777 - hex 77777777 - hex 77777777 - hex 77777777 - hex 77777777 - hex 00000000 + hex 99999999 + hex 99999999 + hex 99999999 + hex 99999999 + hex 99999999 + hex 99999999 + hex 99999999 + hex 22222222 hex 00000000 hex 00000000 @@ -5004,14 +5006,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 77777777 - hex 77777777 - hex 77777777 - hex 77777777 - hex 77777777 - hex 77777777 - hex 77777777 - hex 00000000 + hex 99999999 + hex 99999999 + hex 99999999 + hex 99999999 + hex 99999999 + hex 99999999 + hex 99999999 + hex 22222222 hex 00000000 hex 00000000 @@ -5024,14 +5026,14 @@ tiledata ENT ; Tile ID 133 ; From image coordinates 96, 24 - hex 72222220 - hex 77222220 - hex 77722270 - hex 77777770 - hex 77777770 - hex 77777770 - hex 77777700 - hex 00000000 + hex 9bbbbbb2 + hex 99bbbbb2 + hex 999bbb92 + hex 99999992 + hex 99999992 + hex 99999992 + hex 99999922 + hex 22222220 hex 00000000 hex 00000000 @@ -5042,14 +5044,14 @@ tiledata ENT hex 00000000 hex 0000000f - hex 02222227 - hex 02222277 - hex 07222777 - hex 07777777 - hex 07777777 - hex 07777777 - hex 00777777 - hex 00000000 + hex 2bbbbbb9 + hex 2bbbbb99 + hex 29bbb999 + hex 29999999 + hex 29999999 + hex 29999999 + hex 22999999 + hex 02222222 hex 00000000 hex 00000000 @@ -5062,14 +5064,14 @@ tiledata ENT ; Tile ID 134 ; From image coordinates 104, 24 - hex 77777722 - hex 77777722 - hex 77777722 - hex 77777722 - hex 77777772 - hex 77777772 - hex 77777777 - hex 00000000 + hex 999999bb + hex 999999bb + hex 999999bb + hex 999999bb + hex 9999999b + hex 9999999b + hex 99999999 + hex 22222222 hex 00000000 hex 00000000 @@ -5080,14 +5082,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 22777777 - hex 22777777 - hex 22777777 - hex 22777777 - hex 27777777 - hex 27777777 - hex 77777777 - hex 00000000 + hex bb999999 + hex bb999999 + hex bb999999 + hex bb999999 + hex b9999999 + hex b9999999 + hex 99999999 + hex 22222222 hex 00000000 hex 00000000 @@ -5100,14 +5102,14 @@ tiledata ENT ; Tile ID 135 ; From image coordinates 112, 24 - hex 22222227 - hex 22222227 - hex 22222227 - hex 22222227 - hex 22222277 - hex 22222277 - hex 22222777 - hex 00000000 + hex bbbbbbb9 + hex bbbbbbb9 + hex bbbbbbb9 + hex bbbbbbb9 + hex bbbbbb99 + hex bbbbbb99 + hex bbbbb999 + hex 22222222 hex 00000000 hex 00000000 @@ -5118,14 +5120,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 72222222 - hex 72222222 - hex 72222222 - hex 72222222 - hex 77222222 - hex 77222222 - hex 77722222 - hex 00000000 + hex 9bbbbbbb + hex 9bbbbbbb + hex 9bbbbbbb + hex 9bbbbbbb + hex 99bbbbbb + hex 99bbbbbb + hex 999bbbbb + hex 22222222 hex 00000000 hex 00000000 @@ -5138,14 +5140,14 @@ tiledata ENT ; Tile ID 136 ; From image coordinates 120, 24 - hex 07177773 - hex 07177003 - hex 00700001 - hex 00000003 - hex 00000001 - hex 00000003 - hex 00000001 - hex 00000003 + hex 09799990 + hex 09799000 + hex 00900007 + hex 00000000 + hex 00000007 + hex 00000000 + hex 00000007 + hex 00000000 hex f0000000 hex f0000ff0 @@ -5156,14 +5158,14 @@ tiledata ENT hex fffffff0 hex fffffff0 - hex 37777170 - hex 30077170 - hex 10000700 - hex 30000000 - hex 10000000 - hex 30000000 - hex 10000000 - hex 30000000 + hex 09999790 + hex 00099790 + hex 70000900 + hex 00000000 + hex 70000000 + hex 00000000 + hex 70000000 + hex 00000000 hex 0000000f hex 0ff0000f @@ -5176,14 +5178,14 @@ tiledata ENT ; Tile ID 137 ; From image coordinates 128, 24 - hex 17777070 - hex 10007070 - hex 10000700 - hex 10000000 - hex 10000000 - hex 10000000 - hex 10000000 - hex 10000000 + hex 79999290 + hex 70009290 + hex 70000900 + hex 70000000 + hex 70000000 + hex 70000000 + hex 70000000 + hex 70000000 hex 0000000f hex 0fff000f @@ -5194,14 +5196,14 @@ tiledata ENT hex 0fffffff hex 0fffffff - hex 07077771 - hex 07070001 - hex 00700001 - hex 00000001 - hex 00000001 - hex 00000001 - hex 00000001 - hex 00000001 + hex 09299997 + hex 09290007 + hex 00900007 + hex 00000007 + hex 00000007 + hex 00000007 + hex 00000007 + hex 00000007 hex f0000000 hex f000fff0 @@ -5214,14 +5216,14 @@ tiledata ENT ; Tile ID 138 ; From image coordinates 136, 24 - hex 0fffff0f - hex 0fffffff - hex 0f0fffff - hex 00fff0ff - hex 00ffff00 - hex 00ffffff - hex 000ffff0 - hex 00000000 + hex 26666626 + hex 26666666 + hex 26266666 + hex 02666266 + hex 02666622 + hex 02666666 + hex 00266662 + hex 00022220 hex 00000000 hex 00000000 @@ -5232,14 +5234,14 @@ tiledata ENT hex ff000000 hex fff0000f - hex f0fffff0 - hex fffffff0 - hex fffff0f0 - hex ff0fff00 - hex 00ffff00 - hex ffffff00 - hex 0ffff000 - hex 00000000 + hex 62666662 + hex 66666662 + hex 66666262 + hex 66266620 + hex 22666620 + hex 66666620 + hex 26666200 + hex 02222000 hex 00000000 hex 00000000 @@ -5252,14 +5254,14 @@ tiledata ENT ; Tile ID 139 ; From image coordinates 144, 24 - hex f0fffff0 - hex fffffff0 - hex fffff0f0 - hex ff0fff00 - hex 00ffff00 - hex ffffff00 - hex 0ffff000 - hex 00000000 + hex 62666662 + hex 66666662 + hex 66666262 + hex 66266620 + hex 22666620 + hex 66666620 + hex 26666200 + hex 02222000 hex 00000000 hex 00000000 @@ -5270,14 +5272,14 @@ tiledata ENT hex 000000ff hex f0000fff - hex 0fffff0f - hex 0fffffff - hex 0f0fffff - hex 00fff0ff - hex 00ffff00 - hex 00ffffff - hex 000ffff0 - hex 00000000 + hex 26666626 + hex 26666666 + hex 26266666 + hex 02666266 + hex 02666622 + hex 02666666 + hex 00266662 + hex 00022220 hex 00000000 hex 00000000 @@ -5290,14 +5292,14 @@ tiledata ENT ; Tile ID 140 ; From image coordinates 152, 24 - hex 00666666 - hex 00666666 - hex 00666666 - hex 00066666 - hex 00006666 - hex 00000066 - hex 00000000 - hex 00000000 + hex 02444444 + hex 02444444 + hex 02444444 + hex 00244444 + hex 00224444 + hex 00022244 + hex 00002222 + hex 00000222 hex f0000000 hex f0000000 @@ -5308,14 +5310,14 @@ tiledata ENT hex ffff0000 hex fffff000 - hex 66666600 - hex 66666600 - hex 66666600 - hex 66666000 - hex 66660000 - hex 66000000 - hex 00000000 - hex 00000000 + hex 44444420 + hex 44444420 + hex 44444420 + hex 44444200 + hex 44442200 + hex 44222000 + hex 22220000 + hex 22200000 hex 0000000f hex 0000000f @@ -5328,14 +5330,14 @@ tiledata ENT ; Tile ID 141 ; From image coordinates 160, 24 - hex 66666600 - hex 66666600 - hex 66666600 - hex 66666000 - hex 66660000 - hex 66000000 - hex 00000000 - hex 00000000 + hex 44444420 + hex 44444420 + hex 44444420 + hex 44444200 + hex 44442200 + hex 44222000 + hex 22220000 + hex 22220000 hex 0000000f hex 0000000f @@ -5346,14 +5348,14 @@ tiledata ENT hex 0000ffff hex 0000ffff - hex 00666666 - hex 00666666 - hex 00666666 - hex 00066666 - hex 00006666 - hex 00000066 - hex 00000000 - hex 00000000 + hex 02444444 + hex 02444444 + hex 02444444 + hex 00244444 + hex 00224444 + hex 00022244 + hex 00002222 + hex 00002222 hex f0000000 hex f0000000 @@ -5366,14 +5368,14 @@ tiledata ENT ; Tile ID 142 ; From image coordinates 168, 24 - hex 0000e3e3 - hex 0000e3e3 - hex 33eee3e3 - hex 3333e3e3 - hex 0000e3ee - hex 0000e3ee - hex 0000e3ee - hex 0000e3ee + hex 00001010 + hex 00001010 + hex 00111010 + hex 00001010 + hex 22221011 + hex 00001011 + hex 00001011 + hex 00001011 hex ffff0000 hex ffff0000 @@ -5384,14 +5386,14 @@ tiledata ENT hex ffff0000 hex ffff0000 - hex 3e3e0000 - hex 3e3e0000 - hex 3e3eee33 - hex 3e3e3333 - hex ee3e0000 - hex ee3e0000 - hex ee3e0000 - hex ee3e0000 + hex 01010000 + hex 01010000 + hex 01011100 + hex 01010000 + hex 11012222 + hex 11010000 + hex 11010000 + hex 11010000 hex 0000ffff hex 0000ffff @@ -5404,14 +5406,14 @@ tiledata ENT ; Tile ID 143 ; From image coordinates 176, 24 - hex e3300000 - hex e3300000 - hex e330eeee - hex e3303333 - hex e3300000 - hex e3300000 - hex e3300000 - hex e3300000 + hex 10020000 + hex 10020000 + hex 10021111 + hex 10020000 + hex 10022222 + hex 10020000 + hex 10020000 + hex 10020000 hex 0000ffff hex 0000ffff @@ -5422,14 +5424,14 @@ tiledata ENT hex 0000ffff hex 0000ffff - hex 0000033e - hex 0000033e - hex eeee033e - hex 3333033e - hex 0000033e - hex 0000033e - hex 0000033e - hex 0000033e + hex 00002001 + hex 00002001 + hex 11112001 + hex 00002001 + hex 22222001 + hex 00002001 + hex 00002001 + hex 00002001 hex ffff0000 hex ffff0000 @@ -5442,14 +5444,14 @@ tiledata ENT ; Tile ID 144 ; From image coordinates 184, 24 - hex 21112111 - hex 21112111 - hex 21112111 - hex 01110111 - hex 02220222 - hex 02220222 - hex 02220222 - hex 02220222 + hex b777b777 + hex b777b777 + hex b777b777 + hex 27772777 + hex 2bbb2bbb + hex 2bbb2bbb + hex 2bbb2bbb + hex 2bbb2bbb hex 00000000 hex 00000000 @@ -5460,14 +5462,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 11121112 - hex 11121112 - hex 11121112 - hex 11101110 - hex 22202220 - hex 22202220 - hex 22202220 - hex 22202220 + hex 777b777b + hex 777b777b + hex 777b777b + hex 77727772 + hex bbb2bbb2 + hex bbb2bbb2 + hex bbb2bbb2 + hex bbb2bbb2 hex 00000000 hex 00000000 @@ -5480,14 +5482,14 @@ tiledata ENT ; Tile ID 145 ; From image coordinates 192, 24 - hex 000022a2 - hex 0a0000a2 - hex 0a0aa0a2 + hex 0000bbab + hex 0a0000ab + hex 0a0aa0ab hex 0a0a00aa hex 00aa000a - hex 0002a00a - hex 00002aaa - hex 00000222 + hex 000ba00a + hex 0000baaa + hex 00000bbb hex ffff0000 hex f0ffff00 @@ -5498,14 +5500,14 @@ tiledata ENT hex ffff0000 hex fffff000 - hex 2a220000 - hex 2a0000a0 - hex 2a0aa0a0 + hex babb0000 + hex ba0000a0 + hex ba0aa0a0 hex aa00a0a0 hex a000aa00 - hex a00a2000 - hex aaa20000 - hex 22200000 + hex a00ab000 + hex aaab0000 + hex bbb00000 hex 0000ffff hex 00ffff0f @@ -5521,11 +5523,11 @@ tiledata ENT hex 000a0000 hex 00a00000 hex 00a000a0 - hex 20a220a0 - hex 2a200220 - hex a2200002 - hex a2000000 - hex a2000000 + hex b0abb0a0 + hex bab00bb0 + hex abb0000b + hex ab000000 + hex ab000000 hex fff0ffff hex ff0fffff @@ -5539,11 +5541,11 @@ tiledata ENT hex 0000a000 hex 00000a00 hex 0a000a00 - hex 0a022a02 - hex 022002a2 - hex 2000022a - hex 0000002a - hex 0000002a + hex 0a0bba0b + hex 0bb00bab + hex b0000bba + hex 000000ba + hex 000000ba hex ffff0fff hex fffff0ff @@ -5556,14 +5558,14 @@ tiledata ENT ; Tile ID 147 ; From image coordinates 208, 24 - hex f40f4444 - hex f0ffff44 - hex f0f444f4 - hex ff444440 - hex ff444440 - hex f4444400 - hex f4440000 - hex 40000004 + hex 65265555 + hex 62666655 + hex 62655565 + hex 66555552 + hex 66555552 + hex 65555522 + hex 65552222 + hex 52222225 hex 00000000 hex 00000000 @@ -5574,14 +5576,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 4444f04f - hex 44ffff0f - hex 4f444f0f - hex 044444ff - hex 044444ff - hex 0044444f - hex 0000444f - hex 40000004 + hex 55556256 + hex 55666626 + hex 56555626 + hex 25555566 + hex 25555566 + hex 22555556 + hex 22225556 + hex 52222225 hex 00000000 hex 00000000 @@ -5594,14 +5596,14 @@ tiledata ENT ; Tile ID 148 ; From image coordinates 216, 24 - hex 440000f0 - hex 44000f00 - hex 44400f40 - hex 4400f440 - hex 4000f400 - hex ffff4400 - hex f4444004 - hex 00000004 + hex 55222262 + hex 55222622 + hex 55522652 + hex 55226552 + hex 52226522 + hex 66665522 + hex 65555225 + hex 22222225 hex 00000000 hex 00000000 @@ -5612,14 +5614,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 0f000044 - hex 00f00044 - hex 04f00444 - hex 044f0044 - hex 004f0004 - hex 0044ffff - hex 4004444f - hex 40000000 + hex 26222255 + hex 22622255 + hex 25622555 + hex 25562255 + hex 22562225 + hex 22556666 + hex 52255556 + hex 52222222 hex 00000000 hex 00000000 @@ -5632,14 +5634,14 @@ tiledata ENT ; Tile ID 149 ; From image coordinates 224, 24 - hex e00000ee - hex e0000e00 - hex e000e00e - hex e000e0e0 - hex e000e0e0 - hex e000e003 - hex eee0e000 - hex e000e000 + hex 12222211 + hex 12222122 + hex 12221221 + hex 12221212 + hex 12221212 + hex 12221220 + hex 11121222 + hex 12201222 hex 00000000 hex 00000000 @@ -5650,14 +5652,14 @@ tiledata ENT hex 00000000 hex 000f0000 - hex ee00000e - hex 00e0000e - hex e00e000e - hex 0e0e000e - hex 0e0e000e - hex 300e000e - hex 000e0eee - hex 000e000e + hex 11222221 + hex 22122221 + hex 12212221 + hex 21212221 + hex 21212221 + hex 02212221 + hex 22212111 + hex 22210221 hex 00000000 hex 00000000 @@ -5670,14 +5672,14 @@ tiledata ENT ; Tile ID 150 ; From image coordinates 232, 24 - hex ee000e00 - hex 00300e00 - hex e0030e00 - hex 03030e00 - hex 03030e00 - hex 3003ee00 - hex 00030eee - hex 00030e00 + hex 11222122 + hex 22022122 + hex 12202122 + hex 20202122 + hex 20202122 + hex 02201122 + hex 22202111 + hex 22200122 hex 00000000 hex 00000000 @@ -5688,14 +5690,14 @@ tiledata ENT hex 00000000 hex 0000f000 - hex 00e000ee - hex 00e00300 - hex 00e0300e - hex 00e03030 - hex 00e03030 - hex 00ee3003 - hex eee03000 - hex 00e03000 + hex 22122211 + hex 22122022 + hex 22120221 + hex 22120202 + hex 22120202 + hex 22110220 + hex 11120222 + hex 22100222 hex 00000000 hex 00000000 @@ -5708,14 +5710,14 @@ tiledata ENT ; Tile ID 151 ; From image coordinates 240, 24 - hex e003e33e - hex e003e33e - hex e003e33e - hex e003eeee - hex e00333e3 - hex e00333ee - hex e0003333 - hex e0000000 + hex 12201001 + hex 12201001 + hex 12201001 + hex 12201111 + hex 12200010 + hex 12200011 + hex 12220000 + hex 12222222 hex 00000000 hex 00000000 @@ -5726,14 +5728,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex e33e300e - hex e33e300e - hex e33e300e - hex eeee300e - hex 3e33300e - hex ee33300e - hex 3333000e - hex 0000000e + hex 10010221 + hex 10010221 + hex 10010221 + hex 11110221 + hex 01000221 + hex 11000221 + hex 00002221 + hex 22222221 hex 00000000 hex 00000000 @@ -5746,14 +5748,14 @@ tiledata ENT ; Tile ID 152 ; From image coordinates 248, 24 - hex e33e3003 - hex e33e3003 - hex e33e3003 - hex eeee3003 - hex 3e333003 - hex ee333003 - hex 33330003 - hex 00000003 + hex 10010220 + hex 10010220 + hex 10010220 + hex 11110220 + hex 01000220 + hex 11000220 + hex 00002220 + hex 22222220 hex 00000000 hex 00000000 @@ -5764,14 +5766,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 3003e33e - hex 3003e33e - hex 3003e33e - hex 3003eeee - hex 300333e3 - hex 300333ee - hex 30003333 - hex 30000000 + hex 02201001 + hex 02201001 + hex 02201001 + hex 02201111 + hex 02200010 + hex 02200011 + hex 02220000 + hex 02222222 hex 00000000 hex 00000000 @@ -5784,23 +5786,14 @@ tiledata ENT ; Tile ID 153 ; From image coordinates 256, 24 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff + hex 09999990 + hex 09999990 + hex 09999999 + hex 09999990 + hex 09999990 + hex 09299999 + hex 09999999 + hex 22222222 hex 00000000 hex 00000000 @@ -5811,34 +5804,34 @@ tiledata ENT hex 00000000 hex 00000000 - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff + hex 09999990 + hex 09999990 + hex 99999990 + hex 09999990 + hex 09999990 + hex 99999290 + hex 99999990 + hex 22222222 + + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 ; Tile ID 154 ; From image coordinates 264, 24 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff + hex 02229992 + hex 02999992 + hex 22999992 + hex 09999992 + hex 02999992 + hex 22999292 + hex 99999992 + hex 22222222 hex 00000000 hex 00000000 @@ -5849,14 +5842,23 @@ tiledata ENT hex 00000000 hex 00000000 - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff + hex 29992220 + hex 29999920 + hex 29999922 + hex 29999990 + hex 29999920 + hex 29299922 + hex 29999999 + hex 22222222 + + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 + hex 00000000 ; Tile ID 155 ; From image coordinates 272, 24 @@ -6088,14 +6090,14 @@ tiledata ENT ; Tile ID 161 ; From image coordinates 0, 32 - hex 60444444 - hex 40444444 - hex 60444444 - hex 40444444 - hex 60444444 - hex 40444444 - hex 64044444 - hex 46044444 + hex 42555555 + hex 52555555 + hex 42555555 + hex 52555555 + hex 42555555 + hex 52555555 + hex 45255555 + hex 54255555 hex 00000000 hex 00000000 @@ -6106,14 +6108,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 44444406 - hex 44444404 - hex 44444406 - hex 44444404 - hex 44444406 - hex 44444404 - hex 44444046 - hex 44444064 + hex 55555524 + hex 55555525 + hex 55555524 + hex 55555525 + hex 55555524 + hex 55555525 + hex 55555254 + hex 55555245 hex 00000000 hex 00000000 @@ -6126,14 +6128,14 @@ tiledata ENT ; Tile ID 162 ; From image coordinates 8, 32 - hex 44444444 - hex 44444444 - hex 44444444 - hex 44444444 - hex 44444444 - hex 44444444 - hex 44444444 - hex 44444444 + hex 55555555 + hex 55555555 + hex 55555555 + hex 55555555 + hex 55555555 + hex 55555555 + hex 55555555 + hex 55555555 hex 00000000 hex 00000000 @@ -6144,14 +6146,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 44444444 - hex 44444444 - hex 44444444 - hex 44444444 - hex 44444444 - hex 44444444 - hex 44444444 - hex 44444444 + hex 55555555 + hex 55555555 + hex 55555555 + hex 55555555 + hex 55555555 + hex 55555555 + hex 55555555 + hex 55555555 hex 00000000 hex 00000000 @@ -6164,14 +6166,14 @@ tiledata ENT ; Tile ID 163 ; From image coordinates 16, 32 - hex 00666666 - hex 00444444 - hex 00444444 - hex 00444444 - hex 00444444 - hex 00444444 - hex 00444444 - hex 00444444 + hex 22444444 + hex 22555555 + hex 22555555 + hex 22555555 + hex 22555555 + hex 22555555 + hex 22555555 + hex 22555555 hex 00000000 hex 00000000 @@ -6182,14 +6184,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 66666600 - hex 44444400 - hex 44444400 - hex 44444400 - hex 44444400 - hex 44444400 - hex 44444400 - hex 44444400 + hex 44444422 + hex 55555522 + hex 55555522 + hex 55555522 + hex 55555522 + hex 55555522 + hex 55555522 + hex 55555522 hex 00000000 hex 00000000 @@ -6202,14 +6204,14 @@ tiledata ENT ; Tile ID 164 ; From image coordinates 24, 32 - hex 66666660 - hex 44444440 - hex 44444440 - hex 44444440 - hex 44444440 - hex 44444440 - hex 44444440 - hex 44444440 + hex 44444442 + hex 55555552 + hex 55555552 + hex 55555552 + hex 55555552 + hex 55555552 + hex 55555552 + hex 55555552 hex 00000000 hex 00000000 @@ -6220,14 +6222,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 06666666 - hex 04444444 - hex 04444444 - hex 04444444 - hex 04444444 - hex 04444444 - hex 04444444 - hex 04444444 + hex 24444444 + hex 25555555 + hex 25555555 + hex 25555555 + hex 25555555 + hex 25555555 + hex 25555555 + hex 25555555 hex 00000000 hex 00000000 @@ -6240,14 +6242,14 @@ tiledata ENT ; Tile ID 165 ; From image coordinates 32, 32 - hex 06666666 - hex 04444444 - hex 04444444 - hex 04444444 - hex 04444444 - hex 04444444 - hex 04444444 - hex 04444444 + hex 24444444 + hex 25555555 + hex 25555555 + hex 25555555 + hex 25555555 + hex 25555555 + hex 25555555 + hex 25555555 hex 00000000 hex 00000000 @@ -6258,14 +6260,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 66666660 - hex 44444440 - hex 44444440 - hex 44444440 - hex 44444440 - hex 44444440 - hex 44444440 - hex 44444440 + hex 44444442 + hex 55555552 + hex 55555552 + hex 55555552 + hex 55555552 + hex 55555552 + hex 55555552 + hex 55555552 hex 00000000 hex 00000000 @@ -6278,14 +6280,14 @@ tiledata ENT ; Tile ID 166 ; From image coordinates 40, 32 - hex 66666600 - hex 44444400 - hex 44444400 - hex 44444400 - hex 44444400 - hex 44444400 - hex 44444400 - hex 44444400 + hex 44444422 + hex 55555522 + hex 55555522 + hex 55555522 + hex 55555522 + hex 55555522 + hex 55555522 + hex 55555522 hex 00000000 hex 00000000 @@ -6296,14 +6298,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 00666666 - hex 00444444 - hex 00444444 - hex 00444444 - hex 00444444 - hex 00444444 - hex 00444444 - hex 00444444 + hex 22444444 + hex 22555555 + hex 22555555 + hex 22555555 + hex 22555555 + hex 22555555 + hex 22555555 + hex 22555555 hex 00000000 hex 00000000 @@ -6316,14 +6318,14 @@ tiledata ENT ; Tile ID 167 ; From image coordinates 48, 32 - hex 44444444 - hex 44444444 - hex 44444444 - hex 44444444 - hex 44444444 - hex 44444444 - hex 44444444 - hex 44444444 + hex 55555555 + hex 55555555 + hex 55555555 + hex 55555555 + hex 55555555 + hex 55555555 + hex 55555555 + hex 55555555 hex 00000000 hex 00000000 @@ -6334,14 +6336,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 44444444 - hex 44444444 - hex 44444444 - hex 44444444 - hex 44444444 - hex 44444444 - hex 44444444 - hex 44444444 + hex 55555555 + hex 55555555 + hex 55555555 + hex 55555555 + hex 55555555 + hex 55555555 + hex 55555555 + hex 55555555 hex 00000000 hex 00000000 @@ -6354,14 +6356,14 @@ tiledata ENT ; Tile ID 168 ; From image coordinates 56, 32 - hex 44444406 - hex 44444405 - hex 4444440d - hex 44444405 - hex 4444440d - hex 44444405 - hex 4444404d - hex 44444065 + hex 55555524 + hex 5555552c + hex 5555552d + hex 5555552c + hex 5555552d + hex 5555552c + hex 5555525d + hex 5555524c hex 00000000 hex 00000000 @@ -6372,14 +6374,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 60444444 - hex 50444444 - hex d0444444 - hex 50444444 - hex d0444444 - hex 50444444 - hex d4044444 - hex 56044444 + hex 42555555 + hex c2555555 + hex d2555555 + hex c2555555 + hex d2555555 + hex c2555555 + hex d5255555 + hex c4255555 hex 00000000 hex 00000000 @@ -6394,12 +6396,12 @@ tiledata ENT ; From image coordinates 64, 32 hex 00000000 hex 00000000 - hex 00000000 - hex 0000996c - hex 00095666 - hex 00090606 - hex 00950606 - hex 00950606 + hex 00002222 + hex 0002ff48 + hex 002fc444 + hex 002f2424 + hex 02fc2424 + hex 02fc2424 hex ffffffff hex ffffffff @@ -6412,12 +6414,12 @@ tiledata ENT hex 00000000 hex 00000000 - hex 00000000 - hex c6990000 - hex 66659000 - hex 60609000 - hex 60605900 - hex 60605900 + hex 22220000 + hex 84ff2000 + hex 444cf200 + hex 4242f200 + hex 4242cf20 + hex 4242cf20 hex ffffffff hex ffffffff @@ -6432,12 +6434,12 @@ tiledata ENT ; From image coordinates 72, 32 hex 00000000 hex 00000000 - hex 00000000 - hex c0000000 - hex c0000000 - hex cc000000 - hex cc000000 - hex c0000000 + hex 20000000 + hex 82000000 + hex 82000000 + hex 88200000 + hex 88200000 + hex 82222200 hex ffffffff hex ffffffff @@ -6450,12 +6452,12 @@ tiledata ENT hex 00000000 hex 00000000 - hex 00000000 - hex 0000000c - hex 0000000c - hex 000000cc - hex 000000cc - hex 0000000c + hex 00000002 + hex 00000028 + hex 00000028 + hex 00000288 + hex 00000288 + hex 00222228 hex ffffffff hex ffffffff @@ -6469,13 +6471,13 @@ tiledata ENT ; Tile ID 171 ; From image coordinates 80, 32 hex 00000000 - hex 00000000 - hex 00000eec - hex 00000e55 - hex 0000ee05 - hex 0000e505 - hex 0000e555 - hex 000e5555 + hex 00000222 + hex 00002118 + hex 000021cc + hex 0002112c + hex 00021c2c + hex 00021ccc + hex 0021cccc hex ffffffff hex fffff000 @@ -6487,13 +6489,13 @@ tiledata ENT hex ff000000 hex 00000000 - hex 00000000 - hex cee00000 - hex 55e00000 - hex 50ee0000 - hex 505e0000 - hex 555e0000 - hex 5555e000 + hex 22200000 + hex 81120000 + hex cc120000 + hex c2112000 + hex c2c12000 + hex ccc12000 + hex cccc1200 hex ffffffff hex 000fffff @@ -6507,13 +6509,13 @@ tiledata ENT ; Tile ID 172 ; From image coordinates 88, 32 hex 00000000 - hex 00000000 - hex c0000000 - hex c0000000 - hex 0c000000 - hex 0c000000 - hex 5c000000 - hex 5c0eec00 + hex 20000000 + hex 82000000 + hex 82000000 + hex 28200000 + hex 28200000 + hex c8222200 + hex c8211820 hex ffffffff hex 0fffffff @@ -6525,13 +6527,13 @@ tiledata ENT hex 0000000f hex 00000000 - hex 00000000 - hex 0000000c - hex 0000000c - hex 000000c0 - hex 000000c0 - hex 000000c5 - hex 00cee0c5 + hex 00000002 + hex 00000028 + hex 00000028 + hex 00000282 + hex 00000282 + hex 0022228c + hex 0281128c hex ffffffff hex fffffff0 @@ -6546,12 +6548,12 @@ tiledata ENT ; From image coordinates 96, 32 hex 00000000 hex 00000000 - hex 00000000 - hex 0000ee5c - hex 000e5555 - hex 000e0505 - hex 00e50505 - hex 00e50505 + hex 00002222 + hex 000211c8 + hex 0021cccc + hex 00212c2c + hex 021c2c2c + hex 021c2c2c hex ffffffff hex ffffffff @@ -6564,12 +6566,12 @@ tiledata ENT hex 00000000 hex 00000000 - hex 00000000 - hex c5ee0000 - hex 5555e000 - hex 5050e000 - hex 50505e00 - hex 50505e00 + hex 22220000 + hex 8c112000 + hex cccc1200 + hex c2c21200 + hex c2c2c120 + hex c2c2c120 hex ffffffff hex ffffffff @@ -6584,12 +6586,12 @@ tiledata ENT ; From image coordinates 104, 32 hex 00000000 hex 00000000 - hex 00000000 - hex c0000000 - hex cc000000 - hex cc000000 - hex ccc00000 - hex cc000000 + hex 20000000 + hex 82000000 + hex 88200000 + hex 88200000 + hex 88820000 + hex 88222000 hex ffffffff hex ffffffff @@ -6602,12 +6604,12 @@ tiledata ENT hex 00000000 hex 00000000 - hex 00000000 - hex 0000000c - hex 000000cc - hex 000000cc - hex 00000ccc - hex 000000cc + hex 00000002 + hex 00000028 + hex 00000288 + hex 00000288 + hex 00002888 + hex 00022288 hex ffffffff hex ffffffff @@ -6621,13 +6623,13 @@ tiledata ENT ; Tile ID 175 ; From image coordinates 112, 32 hex 00000000 - hex 00000000 - hex 00eeec00 - hex 0ee55c00 - hex 0e0505c0 - hex 0e0505c0 - hex 0e0505cc - hex 0e5555c0 + hex 00222200 + hex 02111820 + hex 211cc820 + hex 212c2c82 + hex 212c2c82 + hex 212c2c88 + hex 21cccc82 hex ffffffff hex ff0000ff @@ -6639,13 +6641,13 @@ tiledata ENT hex 00000000 hex 00000000 - hex 00000000 - hex 00ceee00 - hex 00c55ee0 - hex 0c5050e0 - hex 0c5050e0 - hex cc5050e0 - hex 0c5555e0 + hex 00222200 + hex 02811120 + hex 028cc112 + hex 28c2c212 + hex 28c2c212 + hex 88c2c212 + hex 28cccc12 hex ffffffff hex ff0000ff @@ -6664,8 +6666,8 @@ tiledata ENT hex 00000000 hex 00000000 hex 00000000 - hex 00000000 - hex eee00000 + hex 22200000 + hex 11120000 hex ffffffff hex ffffffff @@ -6682,8 +6684,8 @@ tiledata ENT hex 00000000 hex 00000000 hex 00000000 - hex 00000000 - hex 00000eee + hex 00000222 + hex 00002111 hex ffffffff hex ffffffff @@ -6696,307 +6698,307 @@ tiledata ENT ; Tile ID 177 ; From image coordinates 128, 32 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 + hex 00000bbb + hex 0000bbbb + hex 0000bbbe + hex 000bebee + hex 000bebbe + hex 000bbeee + hex 00000eee + hex 0000bbbb - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff + hex fffff000 + hex ffff0000 + hex ffff0000 + hex fff00000 + hex fff00000 + hex fff00000 + hex fffff000 + hex ffff0000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 + hex bbb00000 + hex bbbb0000 + hex ebbb0000 + hex eebeb000 + hex ebbeb000 + hex eeebb000 + hex eee00000 + hex bbbb0000 - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff + hex 000fffff + hex 0000ffff + hex 0000ffff + hex 00000fff + hex 00000fff + hex 00000fff + hex 000fffff + hex 0000ffff ; Tile ID 178 ; From image coordinates 136, 32 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 + hex bb000000 + hex bbbbb000 + hex ebe00000 + hex ebeee000 + hex eebeee00 + hex ebbbb000 + hex eeee0000 + hex bb000000 - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff + hex 00ffffff + hex 00000fff + hex 000fffff + hex 00000fff + hex 000000ff + hex 00000fff + hex 0000ffff + hex 00ffffff - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 + hex 000000bb + hex 000bbbbb + hex 00000ebe + hex 000eeebe + hex 00eeebee + hex 000bbbbe + hex 0000eeee + hex 000000bb - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff + hex ffffff00 + hex fff00000 + hex fffff000 + hex fff00000 + hex ff000000 + hex fff00000 + hex ffff0000 + hex ffffff00 ; Tile ID 179 ; From image coordinates 144, 32 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 + hex 00000bbb + hex 0000bbbb + hex 0000bbbe + hex 000bebee + hex 000bebbe + hex 000bbeee + hex 00000eee + hex 00bbbbbb - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff + hex fffff000 + hex ffff0000 + hex ffff0000 + hex fff00000 + hex fff00000 + hex fff00000 + hex fffff000 + hex ff000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 + hex bbb00000 + hex bbbb0000 + hex ebbb0000 + hex eebeb000 + hex ebbeb000 + hex eeebb000 + hex eee00000 + hex bbbbbb00 - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff + hex 000fffff + hex 0000ffff + hex 0000ffff + hex 00000fff + hex 00000fff + hex 00000fff + hex 000fffff + hex 000000ff ; Tile ID 180 ; From image coordinates 152, 32 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 + hex bb000000 + hex bbbbb000 + hex ebe00000 + hex ebeee000 + hex eebeee00 + hex ebbbb000 + hex eeee0000 + hex bb000000 - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff + hex 00ffffff + hex 00000fff + hex 000fffff + hex 00000fff + hex 000000ff + hex 00000fff + hex 0000ffff + hex 00ffffff - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 + hex 000000bb + hex 000bbbbb + hex 00000ebe + hex 000eeebe + hex 00eeebee + hex 000bbbbe + hex 0000eeee + hex 000000bb - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff + hex ffffff00 + hex fff00000 + hex fffff000 + hex fff00000 + hex ff000000 + hex fff00000 + hex ffff0000 + hex ffffff00 ; Tile ID 181 ; From image coordinates 160, 32 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 + hex 00000bbb + hex 0000bbbb + hex 0000bbbe + hex 000bebee + hex 000bebbe + hex 000bbeee + hex 00000eee + hex 0000bbbb - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff + hex fffff000 + hex ffff0000 + hex ffff0000 + hex fff00000 + hex fff00000 + hex fff00000 + hex fffff000 + hex ffff0000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 + hex bbb00000 + hex bbbb0000 + hex ebbb0000 + hex eebeb000 + hex ebbeb000 + hex eeebb000 + hex eee00000 + hex bbbb0000 - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff + hex 000fffff + hex 0000ffff + hex 0000ffff + hex 00000fff + hex 00000fff + hex 00000fff + hex 000fffff + hex 0000ffff ; Tile ID 182 ; From image coordinates 168, 32 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 + hex bb000000 + hex bbbbb000 + hex ebe00000 + hex ebeee000 + hex eebeee00 + hex ebbbb000 + hex eeee0000 + hex bb000000 - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff + hex 00ffffff + hex 00000fff + hex 000fffff + hex 00000fff + hex 000000ff + hex 00000fff + hex 0000ffff + hex 00ffffff - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 + hex 000000bb + hex 000bbbbb + hex 00000ebe + hex 000eeebe + hex 00eeebee + hex 000bbbbe + hex 0000eeee + hex 000000bb - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff + hex ffffff00 + hex fff00000 + hex fffff000 + hex fff00000 + hex ff000000 + hex fff00000 + hex ffff0000 + hex ffffff00 ; Tile ID 183 ; From image coordinates 176, 32 hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 + hex 000000bb + hex 00000bbb + hex 00000bbb + hex 0000bebe + hex 0000bebb + hex 0000bbee + hex 000000ee hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff + hex ffffff00 + hex fffff000 + hex fffff000 + hex ffff0000 + hex ffff0000 + hex ffff0000 + hex ffffff00 hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 + hex bb000000 + hex bbb00000 + hex bbb00000 + hex ebeb0000 + hex bbeb0000 + hex eebb0000 + hex ee000000 hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff + hex 00ffffff + hex 000fffff + hex 000fffff + hex 0000ffff + hex 0000ffff + hex 0000ffff + hex 00ffffff ; Tile ID 184 ; From image coordinates 184, 32 hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 + hex bbb00000 + hex bbbbbb00 + hex eebe0000 + hex eebeee00 + hex eeebeee0 + hex eebbbb00 + hex eeeee000 hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff + hex 000fffff + hex 000000ff + hex 0000ffff + hex 000000ff + hex 0000000f + hex 000000ff + hex 00000fff hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 + hex 00000bbb + hex 00bbbbbb + hex 0000ebee + hex 00eeebee + hex 0eeebeee + hex 00bbbbee + hex 000eeeee hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff + hex fffff000 + hex ff000000 + hex ffff0000 + hex ff000000 + hex f0000000 + hex ff000000 + hex fff00000 ; Tile ID 185 ; From image coordinates 192, 32 @@ -7608,14 +7610,14 @@ tiledata ENT ; Tile ID 201 ; From image coordinates 0, 40 - hex 64044444 - hex 46046464 - hex 64064646 - hex 46406464 - hex 64606666 - hex 46406666 - hex 64660000 - hex 46466000 + hex 45255555 + hex 54254545 + hex 45245454 + hex 54524545 + hex 45424444 + hex 54524444 + hex 45442222 + hex 54544200 hex 00000000 hex 00000000 @@ -7626,14 +7628,14 @@ tiledata ENT hex 00000000 hex 000000ff - hex 44444046 - hex 46464064 - hex 64646046 - hex 46460464 - hex 66660646 - hex 66660464 - hex 00006646 - hex 00066464 + hex 55555254 + hex 54545245 + hex 45454254 + hex 54542545 + hex 44442454 + hex 44442545 + hex 22224454 + hex 00244545 hex 00000000 hex 00000000 @@ -7646,13 +7648,13 @@ tiledata ENT ; Tile ID 202 ; From image coordinates 8, 40 + hex 55555555 + hex 45454545 + hex 54545454 + hex 45454545 hex 44444444 - hex 64646464 - hex 46464646 - hex 64646464 - hex 66666666 - hex 66666666 - hex 00000000 + hex 44444444 + hex 22222222 hex 00000000 hex 00000000 @@ -7664,13 +7666,13 @@ tiledata ENT hex 00000000 hex ffffffff + hex 55555555 + hex 54545454 + hex 45454545 + hex 54545454 hex 44444444 - hex 46464646 - hex 64646464 - hex 46464646 - hex 66666666 - hex 66666666 - hex 00000000 + hex 44444444 + hex 22222222 hex 00000000 hex 00000000 @@ -7684,14 +7686,14 @@ tiledata ENT ; Tile ID 203 ; From image coordinates 16, 40 - hex 00444444 - hex 00444444 - hex 00464646 - hex 00646464 - hex 00464646 - hex 00666666 - hex 00666666 - hex 00000000 + hex 22555555 + hex 22555555 + hex 22545454 + hex 22454545 + hex 22545454 + hex 22444444 + hex 22444444 + hex 02222222 hex 00000000 hex 00000000 @@ -7702,14 +7704,14 @@ tiledata ENT hex 00000000 hex f0000000 - hex 44444400 - hex 44444400 - hex 64646400 - hex 46464600 - hex 64646400 - hex 66666600 - hex 66666600 - hex 00000000 + hex 55555522 + hex 55555522 + hex 45454522 + hex 54545422 + hex 45454522 + hex 44444422 + hex 44444422 + hex 22222220 hex 00000000 hex 00000000 @@ -7722,14 +7724,14 @@ tiledata ENT ; Tile ID 204 ; From image coordinates 24, 40 - hex 44444440 - hex 44444440 - hex 46464640 - hex 64646460 - hex 46464640 - hex 66666660 - hex 66666660 - hex 00000000 + hex 55555552 + hex 55555552 + hex 54545452 + hex 45454542 + hex 54545452 + hex 44444442 + hex 44444442 + hex 22222222 hex 00000000 hex 00000000 @@ -7740,14 +7742,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 04444444 - hex 04444444 - hex 04646464 - hex 06464646 - hex 04646464 - hex 06666666 - hex 06666666 - hex 00000000 + hex 25555555 + hex 25555555 + hex 25454545 + hex 24545454 + hex 25454545 + hex 24444444 + hex 24444444 + hex 22222222 hex 00000000 hex 00000000 @@ -7760,14 +7762,14 @@ tiledata ENT ; Tile ID 205 ; From image coordinates 32, 40 - hex 04444444 - hex 04444444 - hex 04646464 - hex 06464646 - hex 04646464 - hex 06666666 - hex 06666666 - hex 00000000 + hex 25555555 + hex 25555555 + hex 25454545 + hex 24545454 + hex 25454545 + hex 24444444 + hex 24444444 + hex 22222222 hex 00000000 hex 00000000 @@ -7778,14 +7780,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 44444440 - hex 44444440 - hex 46464640 - hex 64646460 - hex 46464640 - hex 66666660 - hex 66666660 - hex 00000000 + hex 55555552 + hex 55555552 + hex 54545452 + hex 45454542 + hex 54545452 + hex 44444442 + hex 44444442 + hex 22222222 hex 00000000 hex 00000000 @@ -7798,14 +7800,14 @@ tiledata ENT ; Tile ID 206 ; From image coordinates 40, 40 - hex 44444400 - hex 44444400 - hex 64646400 - hex 46464600 - hex 64646400 - hex 66666600 - hex 66666600 - hex 00000000 + hex 55555522 + hex 55555522 + hex 45454522 + hex 54545422 + hex 45454522 + hex 44444422 + hex 44444422 + hex 22222220 hex 00000000 hex 00000000 @@ -7816,14 +7818,14 @@ tiledata ENT hex 00000000 hex 0000000f - hex 00444444 - hex 00444444 - hex 00464646 - hex 00646464 - hex 00464646 - hex 00666666 - hex 00666666 - hex 00000000 + hex 22555555 + hex 22555555 + hex 22545454 + hex 22454545 + hex 22545454 + hex 22444444 + hex 22444444 + hex 02222222 hex 00000000 hex 00000000 @@ -7836,13 +7838,13 @@ tiledata ENT ; Tile ID 207 ; From image coordinates 48, 40 + hex 55555555 + hex 54545454 + hex 45454545 + hex 54545454 hex 44444444 - hex 46464646 - hex 64646464 - hex 46464646 - hex 66666666 - hex 66666666 - hex 00000000 + hex 44444444 + hex 22222222 hex 00000000 hex 00000000 @@ -7854,13 +7856,13 @@ tiledata ENT hex 00000000 hex ffffffff + hex 55555555 + hex 45454545 + hex 54545454 + hex 45454545 hex 44444444 - hex 64646464 - hex 46464646 - hex 64646464 - hex 66666666 - hex 66666666 - hex 00000000 + hex 44444444 + hex 22222222 hex 00000000 hex 00000000 @@ -7874,14 +7876,14 @@ tiledata ENT ; Tile ID 208 ; From image coordinates 56, 40 - hex 44444046 - hex 46464064 - hex 64646046 - hex 46460464 - hex 66660646 - hex 66660464 - hex 00006646 - hex 00066464 + hex 55555254 + hex 54545245 + hex 45454254 + hex 54542545 + hex 44442454 + hex 44442545 + hex 22224454 + hex 00244545 hex 00000000 hex 00000000 @@ -7892,14 +7894,14 @@ tiledata ENT hex 00000000 hex ff000000 - hex 64044444 - hex 46046464 - hex 64064646 - hex 46406464 - hex 64606666 - hex 46406666 - hex 64660000 - hex 46466000 + hex 45255555 + hex 54254545 + hex 45245454 + hex 54524545 + hex 45424444 + hex 54524444 + hex 45442222 + hex 54544200 hex 00000000 hex 00000000 @@ -7912,13 +7914,13 @@ tiledata ENT ; Tile ID 209 ; From image coordinates 64, 40 - hex 0966666c - hex 0966666c - hex 0966666c - hex 0096666c - hex e0966666 - hex e0096660 - hex 00000000 + hex 2f444448 + hex 2f444448 + hex 2f444448 + hex 22f44448 + hex 12f44444 + hex 122f4442 + hex 22222222 hex 00000000 hex 00000000 @@ -7930,13 +7932,13 @@ tiledata ENT hex 00000000 hex ffffffff - hex c6666690 - hex c6666690 - hex c6666690 - hex c6666900 - hex 6666690e - hex 0666900e - hex 00000000 + hex 844444f2 + hex 844444f2 + hex 844444f2 + hex 84444f22 + hex 44444f21 + hex 2444f221 + hex 22222222 hex 00000000 hex 00000000 @@ -7950,13 +7952,13 @@ tiledata ENT ; Tile ID 210 ; From image coordinates 72, 40 - hex 09666c00 - hex 0e060c00 - hex 0e060c00 - hex 09666c00 - hex 66666c00 - hex 6666cc00 - hex 0cccc000 + hex 2f444820 + hex 21242820 + hex 21242820 + hex 2f444820 + hex 44444820 + hex 44448820 + hex 28888222 hex 00000000 hex 0000000f @@ -7968,13 +7970,13 @@ tiledata ENT hex 00000000 hex ffffffff - hex 00c66690 - hex 00c060e0 - hex 00c060e0 - hex 00c66690 - hex 00c66666 - hex 00cc6666 - hex 000cccc0 + hex 028444f2 + hex 02824212 + hex 02824212 + hex 028444f2 + hex 02844444 + hex 02884444 + hex 22288882 hex 00000000 hex f0000000 @@ -7988,13 +7990,13 @@ tiledata ENT ; Tile ID 211 ; From image coordinates 80, 40 - hex 000e5555 - hex 000e5555 - hex 000e555c - hex 000e555c - hex 0000e55c - hex 0000e5c0 - hex 00000000 + hex 0021cccc + hex 0021cccc + hex 0021ccc8 + hex 0021ccc8 + hex 00021cc8 + hex 00021c82 + hex 22222222 hex 00000000 hex ff000000 @@ -8006,13 +8008,13 @@ tiledata ENT hex 00000000 hex ffffffff - hex 5555e000 - hex 5555e000 - hex c555e000 - hex c555e000 - hex c55e0000 - hex 0c5e0000 - hex 00000000 + hex cccc1200 + hex cccc1200 + hex 8ccc1200 + hex 8ccc1200 + hex 8cc12000 + hex 28c12000 + hex 22222222 hex 00000000 hex 000000ff @@ -8026,13 +8028,13 @@ tiledata ENT ; Tile ID 212 ; From image coordinates 88, 40 - hex c0e0e0c0 - hex c0e050c0 - hex 0e5555c0 - hex e5555c00 - hex e5555c00 - hex e555c000 - hex 05555000 + hex 82121282 + hex 8212c282 + hex 21cccc82 + hex 1cccc820 + hex 1cccc820 + hex 1ccc8220 + hex 2cccc222 hex 00000000 hex 00000000 @@ -8044,13 +8046,13 @@ tiledata ENT hex 00000000 hex ffffffff - hex 0c0e0e0c - hex 0c050e0c - hex 0c5555e0 - hex 00c5555e - hex 00c5555e - hex 000c555e - hex 00055550 + hex 28212128 + hex 282c2128 + hex 28cccc12 + hex 028cccc1 + hex 028cccc1 + hex 0228ccc1 + hex 222cccc2 hex 00000000 hex 00000000 @@ -8064,13 +8066,13 @@ tiledata ENT ; Tile ID 213 ; From image coordinates 96, 40 - hex 00e5555c - hex 00e5555c - hex 0055555c - hex 0005555c - hex 0005555c - hex 000055c0 - hex 00000000 + hex 021cccc8 + hex 021cccc8 + hex 02ccccc8 + hex 002cccc8 + hex 002cccc8 + hex 0002cc82 + hex 22222222 hex 00000000 hex f0000000 @@ -8082,13 +8084,13 @@ tiledata ENT hex 00000000 hex ffffffff - hex c5555e00 - hex c5555e00 - hex c5555500 - hex c5555000 - hex c5555000 - hex 0c550000 - hex 00000000 + hex 8cccc120 + hex 8cccc120 + hex 8ccccc20 + hex 8cccc200 + hex 8cccc200 + hex 28cc2000 + hex 22222222 hex 00000000 hex 0000000f @@ -8102,13 +8104,13 @@ tiledata ENT ; Tile ID 214 ; From image coordinates 104, 40 - hex c0eec000 - hex 0e555c00 - hex 0e050c00 - hex 0e555c00 - hex 55555c00 - hex 5555cc00 - hex 0cccc000 + hex 82118200 + hex 21ccc820 + hex 212c2820 + hex 21ccc820 + hex ccccc820 + hex cccc8820 + hex 28888222 hex 00000000 hex 000000ff @@ -8120,13 +8122,13 @@ tiledata ENT hex 00000000 hex ffffffff - hex 000cee0c - hex 00c555e0 - hex 00c050e0 - hex 00c555e0 - hex 00c55555 - hex 00cc5555 - hex 000cccc0 + hex 00281128 + hex 028ccc12 + hex 0282c212 + hex 028ccc12 + hex 028ccccc + hex 0288cccc + hex 22288882 hex 00000000 hex ff000000 @@ -8140,13 +8142,13 @@ tiledata ENT ; Tile ID 215 ; From image coordinates 112, 40 - hex 0e55550e - hex 0e55550e - hex 0e55550e - hex 00e55550 - hex 00e55555 - hex 000e5555 - hex 00000000 + hex 21cccc21 + hex 21cccc21 + hex 21cccc21 + hex 021cccc2 + hex 021ccccc + hex 0021cccc + hex 22222222 hex 00000000 hex 00000000 @@ -8158,13 +8160,13 @@ tiledata ENT hex 00000000 hex ffffffff - hex e05555e0 - hex e05555e0 - hex e05555e0 - hex 05555e00 - hex 55555e00 - hex 5555e000 - hex 00000000 + hex 12cccc12 + hex 12cccc12 + hex 12cccc12 + hex 2cccc120 + hex ccccc120 + hex cccc1200 + hex 22222222 hex 00000000 hex 00000000 @@ -8178,13 +8180,13 @@ tiledata ENT ; Tile ID 216 ; From image coordinates 120, 40 - hex 0e0c0000 - hex 050c0000 - hex 5555c000 - hex 55555c00 - hex 05555c00 - hex 5555cc00 - hex 0cccc000 + hex 21282000 + hex 2c282000 + hex cccc8200 + hex ccccc820 + hex 2cccc820 + hex cccc8820 + hex 28888222 hex 00000000 hex 00000fff @@ -8196,13 +8198,13 @@ tiledata ENT hex 00000000 hex ffffffff - hex 0000c0e0 - hex 0000c050 - hex 000c5555 - hex 00c55555 - hex 00c55550 - hex 00cc5555 - hex 000cccc0 + hex 00028212 + hex 000282c2 + hex 0028cccc + hex 028ccccc + hex 028cccc2 + hex 0288cccc + hex 22288882 hex 00000000 hex fff00000 @@ -8216,307 +8218,307 @@ tiledata ENT ; Tile ID 217 ; From image coordinates 128, 40 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 + hex 000bbbbb + hex 00bbbbbb + hex 00eebbeb + hex 00eeebbb + hex 00eebbbb + hex 0000bbb0 + hex 000bbb00 + hex 00bbbb00 - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff + hex fff00000 + hex ff000000 + hex ff000000 + hex ff000000 + hex ff000000 + hex ffff000f + hex fff000ff + hex ff0000ff - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 + hex bbbbb000 + hex bbbbbb00 + hex bebbee00 + hex bbbeee00 + hex bbbbee00 + hex 0bbb0000 + hex 00bbb000 + hex 00bbbb00 - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff + hex 00000fff + hex 000000ff + hex 000000ff + hex 000000ff + hex 000000ff + hex f000ffff + hex ff000fff + hex ff0000ff ; Tile ID 218 ; From image coordinates 136, 40 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 + hex bbbbb000 + hex bbbbbb00 + hex bebbee00 + hex bbbeee00 + hex bbbbee00 + hex 0bbb0000 + hex 00bbb000 + hex 00bbbb00 - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff + hex 00000fff + hex 000000ff + hex 000000ff + hex 000000ff + hex 000000ff + hex f000ffff + hex ff000fff + hex ff0000ff - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 + hex 000bbbbb + hex 00bbbbbb + hex 00eebbeb + hex 00eeebbb + hex 00eebbbb + hex 0000bbb0 + hex 000bbb00 + hex 00bbbb00 - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff + hex fff00000 + hex ff000000 + hex ff000000 + hex ff000000 + hex ff000000 + hex ffff000f + hex fff000ff + hex ff0000ff ; Tile ID 219 ; From image coordinates 144, 40 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff + hex eebbbbbb + hex eee0bbbe + hex ee00bbbb + hex 000bbbbb + hex 00bbbbbb + hex 0bbbbb00 + hex 0bbb0000 + hex 00bbb000 hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 + hex 000f0000 + hex 00ff0000 + hex fff00000 + hex ff000000 + hex f00000ff + hex f000ffff + hex ff000fff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff + hex bbbbbbee + hex ebbb0eee + hex bbbb00ee + hex bbbbb000 + hex bbbbbb00 + hex 00bbbbb0 + hex 0000bbb0 + hex 000bbb00 + + hex 00000000 + hex 0000f000 + hex 0000ff00 + hex 00000fff + hex 000000ff + hex ff00000f + hex ffff000f + hex fff000ff ; Tile ID 220 ; From image coordinates 152, 40 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 + hex bbbbeee0 + hex bbbbbee0 + hex bbb00b00 + hex bbbbbb00 + hex bbbbbb00 + hex 0bbbbb00 hex 00000000 hex 00000000 - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff + hex 0000000f + hex 0000000f + hex 000ff0ff + hex 000000ff + hex 000000ff + hex f00000ff hex ffffffff hex ffffffff - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 + hex 0eeebbbb + hex 0eebbbbb + hex 00b00bbb + hex 00bbbbbb + hex 00bbbbbb + hex 00bbbbb0 hex 00000000 hex 00000000 - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff + hex f0000000 + hex f0000000 + hex ff0ff000 + hex ff000000 + hex ff000000 + hex ff00000f hex ffffffff hex ffffffff ; Tile ID 221 ; From image coordinates 160, 40 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 + hex 000bbbbb + hex 000bbbbb + hex 000bbbbb + hex 000bbbee + hex 0000bbee + hex 00000bbb + hex 00000bbb + hex 00000bbb - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff + hex fff00000 + hex fff00000 + hex fff00000 + hex fff00000 + hex ffff0000 + hex fffff000 + hex fffff000 + hex fffff000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 + hex bbbbb000 + hex bbbbb000 + hex bbbbb000 + hex eebbb000 + hex eebb0000 + hex bbb00000 + hex bbb00000 + hex bbb00000 - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff + hex 00000fff + hex 00000fff + hex 00000fff + hex 00000fff + hex 0000ffff + hex 000fffff + hex 000fffff + hex 000fffff ; Tile ID 222 ; From image coordinates 168, 40 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 + hex bbb00000 + hex ebbe0000 + hex bbbb0000 + hex ebbb0000 + hex bbb00000 + hex bbb00000 + hex bbbb0000 + hex b0000000 - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff + hex 000fffff + hex 0000ffff + hex 0000ffff + hex 0000ffff + hex 000fffff + hex 000fffff + hex 0000ffff + hex 0fffffff - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 + hex 00000bbb + hex 0000ebbe + hex 0000bbbb + hex 0000bbbe + hex 00000bbb + hex 00000bbb + hex 0000bbbb + hex 0000000b - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff + hex fffff000 + hex ffff0000 + hex ffff0000 + hex ffff0000 + hex fffff000 + hex fffff000 + hex ffff0000 + hex fffffff0 ; Tile ID 223 ; From image coordinates 176, 40 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 + hex 00000bbb + hex 0000ebbb + hex 000eebbb + hex 000bbbbb + hex 000bbbbb + hex 00bbbbb0 + hex 00b0000b + hex 0000000b - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff + hex fffff000 + hex ffff0000 + hex fff00000 + hex fff00000 + hex fff00000 + hex ff00000f + hex ff0ffff0 + hex fffffff0 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 + hex bbb00000 + hex bbbe0000 + hex bbbee000 + hex bbbbb000 + hex bbbbb000 + hex 0bbbbb00 + hex b0000b00 + hex b0000000 - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff + hex 000fffff + hex 0000ffff + hex 00000fff + hex 00000fff + hex 00000fff + hex f00000ff + hex 0ffff0ff + hex 0fffffff ; Tile ID 224 ; From image coordinates 184, 40 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 + hex bbb0e000 + hex bbbeee00 + hex bbbee000 + hex bbbb0000 + hex bbbb0000 + hex bbb00000 + hex bb000000 + hex bbb00000 - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff + hex 000f0fff + hex 000000ff + hex 00000fff + hex 0000ffff + hex 0000ffff + hex 000fffff + hex 00ffffff + hex 000fffff - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 - hex 00000000 + hex 000e0bbb + hex 00eeebbb + hex 000eebbb + hex 0000bbbb + hex 0000bbbb + hex 00000bbb + hex 000000bb + hex 00000bbb - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff - hex ffffffff + hex fff0f000 + hex ff000000 + hex fff00000 + hex ffff0000 + hex ffff0000 + hex fffff000 + hex ffffff00 + hex fffff000 ; Tile ID 225 ; From image coordinates 192, 40 @@ -9129,13 +9131,13 @@ tiledata ENT ; Tile ID 241 ; From image coordinates 0, 48 hex 00000000 - hex 00000000 - hex 00888800 - hex 08800880 - hex 08800880 - hex 08800880 - hex 00888800 - hex 00000000 + hex 02222220 + hex 22ffff22 + hex 2ff22ff2 + hex 2ff22ff2 + hex 2ff22ff2 + hex 22ffff22 + hex 02222220 hex ffffffff hex f000000f @@ -9147,13 +9149,13 @@ tiledata ENT hex f000000f hex 00000000 - hex 00000000 - hex 00888800 - hex 08800880 - hex 08800880 - hex 08800880 - hex 00888800 - hex 00000000 + hex 02222220 + hex 22ffff22 + hex 2ff22ff2 + hex 2ff22ff2 + hex 2ff22ff2 + hex 22ffff22 + hex 02222220 hex ffffffff hex f000000f @@ -9167,13 +9169,13 @@ tiledata ENT ; Tile ID 242 ; From image coordinates 8, 48 hex 00000000 - hex 00000000 - hex 00888000 - hex 00088000 - hex 00088000 - hex 00088000 - hex 00088000 - hex 00000000 + hex 02222200 + hex 02fff200 + hex 022ff200 + hex 002ff200 + hex 002ff200 + hex 002ff200 + hex 00222200 hex ffffffff hex f00000ff @@ -9185,13 +9187,13 @@ tiledata ENT hex ff0000ff hex 00000000 - hex 00000000 - hex 00088800 - hex 00088000 - hex 00088000 - hex 00088000 - hex 00088000 - hex 00000000 + hex 00222220 + hex 002fff20 + hex 002ff220 + hex 002ff200 + hex 002ff200 + hex 002ff200 + hex 00222200 hex ffffffff hex ff00000f @@ -9205,13 +9207,13 @@ tiledata ENT ; Tile ID 243 ; From image coordinates 16, 48 hex 00000000 - hex 00000000 - hex 00888800 - hex 08800880 - hex 00088800 - hex 00880000 - hex 08888880 - hex 00000000 + hex 02222220 + hex 22ffff22 + hex 2ff22ff2 + hex 222fff20 + hex 02ff2222 + hex 2ffffff2 + hex 22222222 hex ffffffff hex f000000f @@ -9223,13 +9225,13 @@ tiledata ENT hex 00000000 hex 00000000 - hex 00000000 - hex 00888800 - hex 08800880 - hex 00888000 - hex 00008800 - hex 08888880 - hex 00000000 + hex 02222220 + hex 22ffff22 + hex 2ff22ff2 + hex 02fff222 + hex 2222ff20 + hex 2ffffff2 + hex 22222222 hex ffffffff hex f000000f @@ -9243,13 +9245,13 @@ tiledata ENT ; Tile ID 244 ; From image coordinates 24, 48 hex 00000000 - hex 00000000 - hex 08888800 - hex 00000880 - hex 00088800 - hex 00000880 - hex 08888800 - hex 00000000 + hex 22222220 + hex 2fffff22 + hex 22222ff2 + hex 002fff20 + hex 22222ff2 + hex 2fffff22 + hex 22222220 hex ffffffff hex 0000000f @@ -9261,13 +9263,13 @@ tiledata ENT hex 0000000f hex 00000000 - hex 00000000 - hex 00888880 - hex 08800000 - hex 00888000 - hex 08800000 - hex 00888880 - hex 00000000 + hex 02222222 + hex 22fffff2 + hex 2ff22222 + hex 02fff200 + hex 2ff22222 + hex 22fffff2 + hex 02222222 hex ffffffff hex f0000000 @@ -9281,13 +9283,13 @@ tiledata ENT ; Tile ID 245 ; From image coordinates 32, 48 hex 00000000 - hex 00000000 - hex 00088800 - hex 00808800 - hex 08008800 - hex 08888880 - hex 00008800 - hex 00000000 + hex 00222220 + hex 022fff20 + hex 22f2ff20 + hex 2f22ff22 + hex 2ffffff2 + hex 2222ff22 + hex 00022220 hex ffffffff hex ff00000f @@ -9299,13 +9301,13 @@ tiledata ENT hex fff0000f hex 00000000 - hex 00000000 - hex 00888000 - hex 00880800 - hex 00880080 - hex 08888880 - hex 00880000 - hex 00000000 + hex 02222200 + hex 02fff220 + hex 02ff2f22 + hex 22ff22f2 + hex 2ffffff2 + hex 22ff2222 + hex 02222000 hex ffffffff hex f00000ff @@ -9319,13 +9321,13 @@ tiledata ENT ; Tile ID 246 ; From image coordinates 40, 48 hex 00000000 - hex 00000000 - hex 08888800 - hex 08800000 - hex 08888800 - hex 00000880 - hex 08888800 - hex 00000000 + hex 22222220 + hex 2fffff20 + hex 2ff22220 + hex 2fffff22 + hex 02222ff2 + hex 2fffff22 + hex 22222220 hex ffffffff hex 0000000f @@ -9337,13 +9339,13 @@ tiledata ENT hex 0000000f hex 00000000 - hex 00000000 - hex 00888880 - hex 00000880 - hex 00888880 - hex 08800000 - hex 00888880 - hex 00000000 + hex 02222222 + hex 02fffff2 + hex 02222ff2 + hex 22fffff2 + hex 2ff22220 + hex 22fffff2 + hex 02222222 hex ffffffff hex f0000000 @@ -9357,13 +9359,13 @@ tiledata ENT ; Tile ID 247 ; From image coordinates 48, 48 hex 00000000 - hex 00000000 - hex 00888800 - hex 08800000 - hex 08888800 - hex 08800880 - hex 00888800 - hex 00000000 + hex 02222220 + hex 22ffff20 + hex 2ff22220 + hex 2fffff22 + hex 2ff22ff2 + hex 22ffff22 + hex 02222220 hex ffffffff hex f000000f @@ -9375,13 +9377,13 @@ tiledata ENT hex f000000f hex 00000000 - hex 00000000 - hex 00888800 - hex 00000880 - hex 00888880 - hex 08800880 - hex 00888800 - hex 00000000 + hex 02222220 + hex 02ffff22 + hex 02222ff2 + hex 22fffff2 + hex 2ff22ff2 + hex 22ffff22 + hex 02222220 hex ffffffff hex f000000f @@ -9395,13 +9397,13 @@ tiledata ENT ; Tile ID 248 ; From image coordinates 56, 48 hex 00000000 - hex 00000000 - hex 08888880 - hex 08800880 - hex 00008800 - hex 00088000 - hex 00088000 - hex 00000000 + hex 22222222 + hex 2ffffff2 + hex 2ff22ff2 + hex 2222ff20 + hex 002ff200 + hex 002ff200 + hex 00222200 hex ffffffff hex 00000000 @@ -9413,13 +9415,13 @@ tiledata ENT hex ff0000ff hex 00000000 - hex 00000000 - hex 08888880 - hex 08800880 - hex 00880000 - hex 00088000 - hex 00088000 - hex 00000000 + hex 22222222 + hex 2ffffff2 + hex 2ff22ff2 + hex 02ff2222 + hex 002ff200 + hex 002ff200 + hex 00222200 hex ffffffff hex 00000000 @@ -9433,13 +9435,13 @@ tiledata ENT ; Tile ID 249 ; From image coordinates 64, 48 hex 00000000 - hex 00000000 - hex 00888800 - hex 08800880 - hex 00888800 - hex 08800880 - hex 00888800 - hex 00000000 + hex 02222220 + hex 22ffff22 + hex 2ff22ff2 + hex 02ffff20 + hex 2ff22ff2 + hex 22ffff22 + hex 02222220 hex ffffffff hex f000000f @@ -9451,13 +9453,13 @@ tiledata ENT hex f000000f hex 00000000 - hex 00000000 - hex 00888800 - hex 08800880 - hex 00888800 - hex 08800880 - hex 00888800 - hex 00000000 + hex 02222220 + hex 22ffff22 + hex 2ff22ff2 + hex 02ffff20 + hex 2ff22ff2 + hex 22ffff22 + hex 02222220 hex ffffffff hex f000000f @@ -9471,13 +9473,13 @@ tiledata ENT ; Tile ID 250 ; From image coordinates 72, 48 hex 00000000 - hex 00000000 - hex 00888800 - hex 08800880 - hex 00888880 - hex 00000880 - hex 00888800 - hex 00000000 + hex 02222220 + hex 22ffff22 + hex 2ff22ff2 + hex 22fffff2 + hex 02222ff2 + hex 02ffff22 + hex 02222220 hex ffffffff hex f000000f @@ -9489,13 +9491,13 @@ tiledata ENT hex f000000f hex 00000000 - hex 00000000 - hex 00888800 - hex 08800880 - hex 08888800 - hex 08800000 - hex 00888800 - hex 00000000 + hex 02222220 + hex 22ffff22 + hex 2ff22ff2 + hex 2fffff22 + hex 2ff22220 + hex 22ffff20 + hex 02222220 hex ffffffff hex f000000f @@ -9509,13 +9511,13 @@ tiledata ENT ; Tile ID 251 ; From image coordinates 80, 48 hex 00000000 - hex 00000000 - hex 00800080 - hex 00080800 - hex 00008000 - hex 00080800 - hex 00800080 - hex 00000000 + hex 02200022 + hex 02f202f2 + hex 002f2f20 + hex 0002f200 + hex 002f2f20 + hex 02f202f2 + hex 02200022 hex ffffffff hex f00fff00 @@ -9527,13 +9529,13 @@ tiledata ENT hex f00fff00 hex 00000000 - hex 00000000 - hex 08000800 - hex 00808000 - hex 00080000 - hex 00808000 - hex 08000800 - hex 00000000 + hex 22000220 + hex 2f202f20 + hex 02f2f200 + hex 002f2000 + hex 02f2f200 + hex 2f202f20 + hex 22000220 hex ffffffff hex 00fff00f @@ -9550,9 +9552,9 @@ tiledata ENT hex 00000000 hex 00000000 hex 00000000 - hex 00000000 - hex 00888800 - hex 00000000 + hex 02222220 + hex 02ffff20 + hex 02222220 hex 00000000 hex ffffffff @@ -9568,9 +9570,9 @@ tiledata ENT hex 00000000 hex 00000000 hex 00000000 - hex 00000000 - hex 00888800 - hex 00000000 + hex 02222220 + hex 02ffff20 + hex 02222220 hex 00000000 hex ffffffff @@ -9584,14 +9586,14 @@ tiledata ENT ; Tile ID 253 ; From image coordinates 96, 48 - hex 00000000 - hex 00088000 - hex 00088000 - hex 00088000 - hex 00088000 - hex 00000000 - hex 00088000 - hex 00000000 + hex 00022000 + hex 002ff200 + hex 002ff200 + hex 002ff200 + hex 002ff200 + hex 00022000 + hex 002ff200 + hex 00022000 hex fff00fff hex ff0000ff @@ -9602,14 +9604,14 @@ tiledata ENT hex ff0000ff hex fff00fff - hex 00000000 - hex 00088000 - hex 00088000 - hex 00088000 - hex 00088000 - hex 00000000 - hex 00088000 - hex 00000000 + hex 00022000 + hex 002ff200 + hex 002ff200 + hex 002ff200 + hex 002ff200 + hex 00022000 + hex 002ff200 + hex 00022000 hex fff00fff hex ff0000ff @@ -9622,14 +9624,14 @@ tiledata ENT ; Tile ID 254 ; From image coordinates 104, 48 - hex 00000000 - hex 00880800 - hex 08808080 - hex 08808080 - hex 08808080 - hex 08008080 - hex 00880800 - hex 00000000 + hex 00222200 + hex 02ff2f20 + hex 2ff2f2f2 + hex 2ff2f2f2 + hex 2ff2f2f2 + hex 2f22f2f2 + hex 02ff2f20 + hex 00222200 hex ff0000ff hex f000000f @@ -9640,14 +9642,14 @@ tiledata ENT hex f000000f hex ff0000ff - hex 00000000 - hex 00808800 - hex 08080880 - hex 08080880 - hex 08080880 - hex 08080080 - hex 00808800 - hex 00000000 + hex 00222200 + hex 02f2ff20 + hex 2f2f2ff2 + hex 2f2f2ff2 + hex 2f2f2ff2 + hex 2f2f22f2 + hex 02f2ff20 + hex 00222200 hex ff0000ff hex f000000f @@ -9660,13 +9662,13 @@ tiledata ENT ; Tile ID 255 ; From image coordinates 112, 48 - hex 00000000 - hex 00808000 - hex 08808800 - hex 08800000 - hex 08888800 - hex 00888000 - hex 00000000 + hex 00222000 + hex 02f2f200 + hex 2ff2ff20 + hex 2ff22220 + hex 2fffff20 + hex 02fff200 + hex 00222000 hex 00000000 hex ff000fff @@ -9678,13 +9680,13 @@ tiledata ENT hex ff000fff hex ffffffff - hex 00000000 - hex 00080800 - hex 00880880 - hex 00000880 - hex 00888880 - hex 00088800 - hex 00000000 + hex 00022200 + hex 002f2f20 + hex 02ff2ff2 + hex 02222ff2 + hex 02fffff2 + hex 002fff20 + hex 00022200 hex 00000000 hex fff000ff @@ -9699,12 +9701,12 @@ tiledata ENT ; Tile ID 256 ; From image coordinates 120, 48 hex 00000000 - hex 00000000 - hex 00888800 - hex 00000000 - hex 00000000 - hex 00888800 - hex 00000000 + hex 02222220 + hex 02ffff20 + hex 02222220 + hex 02222220 + hex 02ffff20 + hex 02222220 hex 00000000 hex ffffffff @@ -9717,12 +9719,12 @@ tiledata ENT hex ffffffff hex 00000000 - hex 00000000 - hex 00888800 - hex 00000000 - hex 00000000 - hex 00888800 - hex 00000000 + hex 02222220 + hex 02ffff20 + hex 02222220 + hex 02222220 + hex 02ffff20 + hex 02222220 hex 00000000 hex ffffffff @@ -9736,14 +9738,14 @@ tiledata ENT ; Tile ID 257 ; From image coordinates 128, 48 - hex 00000000 - hex 00008000 + hex 00022200 + hex 0002f200 + hex 00022200 hex 00000000 hex 00000000 - hex 00000000 - hex 00000000 - hex 00008000 - hex 00000000 + hex 00022200 + hex 0002f200 + hex 00022200 hex fff000ff hex fff000ff @@ -9754,14 +9756,14 @@ tiledata ENT hex fff000ff hex fff000ff - hex 00000000 - hex 00080000 + hex 00222000 + hex 002f2000 + hex 00222000 hex 00000000 hex 00000000 - hex 00000000 - hex 00000000 - hex 00080000 - hex 00000000 + hex 00222000 + hex 002f2000 + hex 00222000 hex ff000fff hex ff000fff @@ -9774,14 +9776,14 @@ tiledata ENT ; Tile ID 258 ; From image coordinates 136, 48 - hex 00000000 - hex 00088000 - hex 00800800 - hex 08800880 - hex 08888880 - hex 08800880 - hex 08800880 - hex 00000000 + hex 00022000 + hex 002ff200 + hex 02f22f20 + hex 2ff22ff2 + hex 2ffffff2 + hex 2ff22ff2 + hex 2ff22ff2 + hex 22222222 hex fff00fff hex ff0000ff @@ -9792,14 +9794,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 00000000 - hex 00088000 - hex 00800800 - hex 08800880 - hex 08888880 - hex 08800880 - hex 08800880 - hex 00000000 + hex 00022000 + hex 002ff200 + hex 02f22f20 + hex 2ff22ff2 + hex 2ffffff2 + hex 2ff22ff2 + hex 2ff22ff2 + hex 22222222 hex fff00fff hex ff0000ff @@ -9812,14 +9814,14 @@ tiledata ENT ; Tile ID 259 ; From image coordinates 144, 48 - hex 00000000 - hex 08888800 - hex 08800880 - hex 08888800 - hex 08800880 - hex 08800880 - hex 08888800 - hex 00000000 + hex 22222200 + hex 2fffff20 + hex 2ff22ff2 + hex 2fffff20 + hex 2ff22ff2 + hex 2ff22ff2 + hex 2fffff20 + hex 22222200 hex 000000ff hex 0000000f @@ -9830,14 +9832,14 @@ tiledata ENT hex 0000000f hex 000000ff - hex 00000000 - hex 00888880 - hex 08800880 - hex 00888880 - hex 08800880 - hex 08800880 - hex 00888880 - hex 00000000 + hex 00222222 + hex 02fffff2 + hex 2ff22ff2 + hex 02fffff2 + hex 2ff22ff2 + hex 2ff22ff2 + hex 02fffff2 + hex 00222222 hex ff000000 hex f0000000 @@ -9850,14 +9852,14 @@ tiledata ENT ; Tile ID 260 ; From image coordinates 152, 48 - hex 00000000 - hex 00888800 - hex 08800880 - hex 08800000 - hex 08800000 - hex 08800880 - hex 00888800 - hex 00000000 + hex 00222200 + hex 02ffff20 + hex 2ff22ff2 + hex 2ff22222 + hex 2ff22222 + hex 2ff22ff2 + hex 02ffff20 + hex 00222200 hex ff0000ff hex f000000f @@ -9868,14 +9870,14 @@ tiledata ENT hex f000000f hex ff0000ff - hex 00000000 - hex 00888800 - hex 08800880 - hex 00000880 - hex 00000880 - hex 08800880 - hex 00888800 - hex 00000000 + hex 00222200 + hex 02ffff20 + hex 2ff22ff2 + hex 22222ff2 + hex 22222ff2 + hex 2ff22ff2 + hex 02ffff20 + hex 00222200 hex ff0000ff hex f000000f @@ -9888,14 +9890,14 @@ tiledata ENT ; Tile ID 261 ; From image coordinates 160, 48 - hex 00000000 - hex 08888000 - hex 08800800 - hex 08800880 - hex 08800880 - hex 08800800 - hex 08888000 - hex 00000000 + hex 22222000 + hex 2ffff200 + hex 2ff22f20 + hex 2ff22ff2 + hex 2ff22ff2 + hex 2ff22f20 + hex 2ffff200 + hex 22222000 hex 00000fff hex 000000ff @@ -9906,14 +9908,14 @@ tiledata ENT hex 000000ff hex 00000fff - hex 00000000 - hex 00088880 - hex 00800880 - hex 08800880 - hex 08800880 - hex 00800880 - hex 00088880 - hex 00000000 + hex 00022222 + hex 002ffff2 + hex 02f22ff2 + hex 2ff22ff2 + hex 2ff22ff2 + hex 02f22ff2 + hex 002ffff2 + hex 00022222 hex fff00000 hex ff000000 @@ -9926,14 +9928,14 @@ tiledata ENT ; Tile ID 262 ; From image coordinates 168, 48 - hex 00000000 - hex 08888880 - hex 08800000 - hex 08888800 - hex 08800000 - hex 08800000 - hex 08888880 - hex 00000000 + hex 22222222 + hex 2ffffff2 + hex 2ff22222 + hex 2fffff20 + hex 2ff22220 + hex 2ff22222 + hex 2ffffff2 + hex 22222222 hex 00000000 hex 00000000 @@ -9944,14 +9946,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 00000000 - hex 08888880 - hex 00000880 - hex 00888880 - hex 00000880 - hex 00000880 - hex 08888880 - hex 00000000 + hex 22222222 + hex 2ffffff2 + hex 22222ff2 + hex 02fffff2 + hex 02222ff2 + hex 22222ff2 + hex 2ffffff2 + hex 22222222 hex 00000000 hex 00000000 @@ -9964,14 +9966,14 @@ tiledata ENT ; Tile ID 263 ; From image coordinates 176, 48 - hex 00000000 - hex 08888880 - hex 08800000 - hex 08888800 - hex 08800000 - hex 08800000 - hex 08800000 - hex 00000000 + hex 22222222 + hex 2ffffff2 + hex 2ff22222 + hex 2fffff20 + hex 2ff22220 + hex 2ff20000 + hex 2ff20000 + hex 22220000 hex 00000000 hex 00000000 @@ -9982,14 +9984,14 @@ tiledata ENT hex 0000ffff hex 0000ffff - hex 00000000 - hex 08888880 - hex 00000880 - hex 00888880 - hex 00000880 - hex 00000880 - hex 00000880 - hex 00000000 + hex 22222222 + hex 2ffffff2 + hex 22222ff2 + hex 02fffff2 + hex 02222ff2 + hex 00002ff2 + hex 00002ff2 + hex 00002222 hex 00000000 hex 00000000 @@ -10002,14 +10004,14 @@ tiledata ENT ; Tile ID 264 ; From image coordinates 184, 48 - hex 00000000 - hex 00888800 - hex 08800880 - hex 08800000 - hex 08808880 - hex 08800880 - hex 00888880 - hex 00000000 + hex 02222220 + hex 22ffff22 + hex 2ff22ff2 + hex 2ff22222 + hex 2ff2fff2 + hex 2ff22ff2 + hex 22fffff2 + hex 02222220 hex f000000f hex 00000000 @@ -10020,14 +10022,14 @@ tiledata ENT hex 00000000 hex f000000f - hex 00000000 - hex 00888800 - hex 08800880 - hex 00000880 - hex 08880880 - hex 08800880 - hex 08888800 - hex 00000000 + hex 02222220 + hex 22ffff22 + hex 2ff22ff2 + hex 22222ff2 + hex 2fff2ff2 + hex 2ff22ff2 + hex 2fffff22 + hex 02222220 hex f000000f hex 00000000 @@ -10040,14 +10042,14 @@ tiledata ENT ; Tile ID 265 ; From image coordinates 192, 48 - hex 00000000 - hex 08800880 - hex 08800880 - hex 08888880 - hex 08800880 - hex 08800880 - hex 08800880 - hex 00000000 + hex 22222222 + hex 2ff22ff2 + hex 2ff22ff2 + hex 2ffffff2 + hex 2ff22ff2 + hex 2ff22ff2 + hex 2ff22ff2 + hex 22222222 hex 00000000 hex 00000000 @@ -10058,14 +10060,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 00000000 - hex 08800880 - hex 08800880 - hex 08888880 - hex 08800880 - hex 08800880 - hex 08800880 - hex 00000000 + hex 22222222 + hex 2ff22ff2 + hex 2ff22ff2 + hex 2ffffff2 + hex 2ff22ff2 + hex 2ff22ff2 + hex 2ff22ff2 + hex 22222222 hex 00000000 hex 00000000 @@ -10078,14 +10080,14 @@ tiledata ENT ; Tile ID 266 ; From image coordinates 200, 48 - hex 00000000 - hex 00888800 - hex 00088000 - hex 00088000 - hex 00088000 - hex 00088000 - hex 00888800 - hex 00000000 + hex 02222220 + hex 02ffff20 + hex 002ff200 + hex 002ff200 + hex 002ff200 + hex 002ff200 + hex 02ffff20 + hex 02222220 hex f000000f hex f000000f @@ -10096,14 +10098,14 @@ tiledata ENT hex f000000f hex f000000f - hex 00000000 - hex 00888800 - hex 00088000 - hex 00088000 - hex 00088000 - hex 00088000 - hex 00888800 - hex 00000000 + hex 02222220 + hex 02ffff20 + hex 002ff200 + hex 002ff200 + hex 002ff200 + hex 002ff200 + hex 02ffff20 + hex 02222220 hex f000000f hex f000000f @@ -10116,14 +10118,14 @@ tiledata ENT ; Tile ID 267 ; From image coordinates 208, 48 - hex 00000000 - hex 00088880 - hex 00008800 - hex 00008800 - hex 00008800 - hex 08808800 - hex 00888000 - hex 00000000 + hex 00222222 + hex 002ffff2 + hex 0022ff22 + hex 0002ff20 + hex 2222ff20 + hex 2ff2ff20 + hex 22fff220 + hex 02222200 hex ff000000 hex ff000000 @@ -10134,14 +10136,14 @@ tiledata ENT hex 0000000f hex f00000ff - hex 00000000 - hex 08888000 - hex 00880000 - hex 00880000 - hex 00880000 - hex 00880880 - hex 00088800 - hex 00000000 + hex 22222200 + hex 2ffff200 + hex 22ff2200 + hex 02ff2000 + hex 02ff2222 + hex 02ff2ff2 + hex 022fff22 + hex 00222220 hex 000000ff hex 000000ff @@ -10154,14 +10156,14 @@ tiledata ENT ; Tile ID 268 ; From image coordinates 216, 48 - hex 00000000 - hex 08800880 - hex 08808800 - hex 08888000 - hex 08888000 - hex 08808800 - hex 08800880 - hex 00000000 + hex 22222222 + hex 2ff22ff2 + hex 2ff2ff22 + hex 2ffff220 + hex 2ffff220 + hex 2ff2ff22 + hex 2ff22ff2 + hex 22222222 hex 00000000 hex 00000000 @@ -10172,14 +10174,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 00000000 - hex 08800880 - hex 00880880 - hex 00088880 - hex 00088880 - hex 00880880 - hex 08800880 - hex 00000000 + hex 22222222 + hex 2ff22ff2 + hex 22ff2ff2 + hex 022ffff2 + hex 022ffff2 + hex 22ff2ff2 + hex 2ff22ff2 + hex 22222222 hex 00000000 hex 00000000 @@ -10192,14 +10194,14 @@ tiledata ENT ; Tile ID 269 ; From image coordinates 224, 48 - hex 00000000 - hex 08800000 - hex 08800000 - hex 08800000 - hex 08800000 - hex 08800000 - hex 08888880 - hex 00000000 + hex 22220000 + hex 2ff20000 + hex 2ff20000 + hex 2ff20000 + hex 2ff20000 + hex 2ff22222 + hex 2ffffff2 + hex 22222222 hex 0000ffff hex 0000ffff @@ -10210,14 +10212,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 00000000 - hex 00000880 - hex 00000880 - hex 00000880 - hex 00000880 - hex 00000880 - hex 08888880 - hex 00000000 + hex 00002222 + hex 00002ff2 + hex 00002ff2 + hex 00002ff2 + hex 00002ff2 + hex 22222ff2 + hex 2ffffff2 + hex 22222222 hex ffff0000 hex ffff0000 @@ -10230,14 +10232,14 @@ tiledata ENT ; Tile ID 270 ; From image coordinates 232, 48 - hex 00000000 - hex 08800080 - hex 08880880 - hex 08888880 - hex 08808080 - hex 08800080 - hex 08800080 - hex 00000000 + hex 22200022 + hex 2ff202f2 + hex 2fff2ff2 + hex 2ffffff2 + hex 2ff2f2f2 + hex 2ff222f2 + hex 2ff202f2 + hex 22220222 hex 000fff00 hex 0000f000 @@ -10248,14 +10250,14 @@ tiledata ENT hex 0000f000 hex 0000f000 - hex 00000000 - hex 08000880 - hex 08808880 - hex 08888880 - hex 08080880 - hex 08000880 - hex 08000880 - hex 00000000 + hex 22000222 + hex 2f202ff2 + hex 2ff2fff2 + hex 2ffffff2 + hex 2f2f2ff2 + hex 2f222ff2 + hex 2f202ff2 + hex 22202222 hex 00fff000 hex 000f0000 @@ -10268,14 +10270,14 @@ tiledata ENT ; Tile ID 271 ; From image coordinates 240, 48 - hex 00000000 - hex 08800080 - hex 08880080 - hex 08888080 - hex 08808880 - hex 08800880 - hex 08800080 - hex 00000000 + hex 22200222 + hex 2ff202f2 + hex 2fff22f2 + hex 2ffff2f2 + hex 2ff2fff2 + hex 2ff22ff2 + hex 2ff202f2 + hex 22220022 hex 000ff000 hex 0000f000 @@ -10286,14 +10288,14 @@ tiledata ENT hex 0000f000 hex 0000ff00 - hex 00000000 - hex 08000880 - hex 08008880 - hex 08088880 - hex 08880880 - hex 08800880 - hex 08000880 - hex 00000000 + hex 22200222 + hex 2f202ff2 + hex 2f22fff2 + hex 2f2ffff2 + hex 2fff2ff2 + hex 2ff22ff2 + hex 2f202ff2 + hex 22002222 hex 000ff000 hex 000f0000 @@ -10306,14 +10308,14 @@ tiledata ENT ; Tile ID 272 ; From image coordinates 248, 48 - hex 00000000 - hex 00888800 - hex 08800880 - hex 08800880 - hex 08800880 - hex 08800880 - hex 00888800 - hex 00000000 + hex 00222200 + hex 02ffff20 + hex 2ff22ff2 + hex 2ff22ff2 + hex 2ff22ff2 + hex 2ff22ff2 + hex 02ffff20 + hex 00222200 hex ff0000ff hex f000000f @@ -10324,14 +10326,14 @@ tiledata ENT hex f000000f hex ff0000ff - hex 00000000 - hex 00888800 - hex 08800880 - hex 08800880 - hex 08800880 - hex 08800880 - hex 00888800 - hex 00000000 + hex 00222200 + hex 02ffff20 + hex 2ff22ff2 + hex 2ff22ff2 + hex 2ff22ff2 + hex 2ff22ff2 + hex 02ffff20 + hex 00222200 hex ff0000ff hex f000000f @@ -10344,14 +10346,14 @@ tiledata ENT ; Tile ID 273 ; From image coordinates 256, 48 - hex 00000000 - hex 08888800 - hex 08800880 - hex 08800880 - hex 08888800 - hex 08800000 - hex 08800000 - hex 00000000 + hex 22222200 + hex 2fffff20 + hex 2ff22ff2 + hex 2ff22ff2 + hex 2fffff20 + hex 2ff22200 + hex 2ff20000 + hex 22220000 hex 000000ff hex 0000000f @@ -10362,14 +10364,14 @@ tiledata ENT hex 0000ffff hex 0000ffff - hex 00000000 - hex 00888880 - hex 08800880 - hex 08800880 - hex 00888880 - hex 00000880 - hex 00000880 - hex 00000000 + hex 00222222 + hex 02fffff2 + hex 2ff22ff2 + hex 2ff22ff2 + hex 02fffff2 + hex 00222ff2 + hex 00002ff2 + hex 00002222 hex ff000000 hex f0000000 @@ -10382,14 +10384,14 @@ tiledata ENT ; Tile ID 274 ; From image coordinates 264, 48 - hex 00000000 - hex 00888800 - hex 08800880 - hex 08800880 - hex 08888880 - hex 08800800 - hex 00888880 - hex 00000000 + hex 00222200 + hex 02ffff20 + hex 2ff22ff2 + hex 2ff22ff2 + hex 2ffffff2 + hex 2ff22f20 + hex 02fffff2 + hex 00222220 hex ff0000ff hex f000000f @@ -10400,14 +10402,14 @@ tiledata ENT hex f0000000 hex ff00000f - hex 00000000 - hex 00888800 - hex 08800880 - hex 08800880 - hex 08888880 - hex 00800880 - hex 08888800 - hex 00000000 + hex 00222200 + hex 02ffff20 + hex 2ff22ff2 + hex 2ff22ff2 + hex 2ffffff2 + hex 02f22ff2 + hex 2fffff20 + hex 02222200 hex ff0000ff hex f000000f @@ -10420,14 +10422,14 @@ tiledata ENT ; Tile ID 275 ; From image coordinates 272, 48 - hex 00000000 - hex 08888800 - hex 08800880 - hex 08800880 - hex 08888800 - hex 08808800 - hex 08800880 - hex 00000000 + hex 22222200 + hex 2fffff20 + hex 2ff22ff2 + hex 2ff22ff2 + hex 2fffff20 + hex 2ff2ff20 + hex 2ff22ff2 + hex 22220222 hex 000000ff hex 0000000f @@ -10438,14 +10440,14 @@ tiledata ENT hex 00000000 hex 0000f000 - hex 00000000 - hex 00888880 - hex 08800880 - hex 08800880 - hex 00888880 - hex 00880880 - hex 08800880 - hex 00000000 + hex 00222222 + hex 02fffff2 + hex 2ff22ff2 + hex 2ff22ff2 + hex 02fffff2 + hex 02ff2ff2 + hex 2ff22ff2 + hex 22202222 hex ff000000 hex f0000000 @@ -10458,14 +10460,14 @@ tiledata ENT ; Tile ID 276 ; From image coordinates 280, 48 - hex 00000000 - hex 00888800 - hex 08800000 - hex 00888800 - hex 00000880 - hex 08800880 - hex 00888800 - hex 00000000 + hex 00222220 + hex 02ffff20 + hex 2ff22200 + hex 02ffff20 + hex 22222ff2 + hex 2ff22ff2 + hex 02ffff20 + hex 00222200 hex ff00000f hex f000000f @@ -10476,14 +10478,14 @@ tiledata ENT hex f000000f hex ff0000ff - hex 00000000 - hex 00888800 - hex 00000880 - hex 00888800 - hex 08800000 - hex 08800880 - hex 00888800 - hex 00000000 + hex 02222200 + hex 02ffff20 + hex 00222ff2 + hex 02ffff20 + hex 2ff22222 + hex 2ff22ff2 + hex 02ffff20 + hex 00222200 hex f00000ff hex f000000f @@ -10496,14 +10498,14 @@ tiledata ENT ; Tile ID 277 ; From image coordinates 288, 48 - hex 00000000 - hex 08888880 - hex 00088000 - hex 00088000 - hex 00088000 - hex 00088000 - hex 00088000 - hex 00000000 + hex 22222222 + hex 2ffffff2 + hex 222ff222 + hex 002ff200 + hex 002ff200 + hex 002ff200 + hex 002ff200 + hex 00222200 hex 00000000 hex 00000000 @@ -10514,14 +10516,14 @@ tiledata ENT hex ff0000ff hex ff0000ff - hex 00000000 - hex 08888880 - hex 00088000 - hex 00088000 - hex 00088000 - hex 00088000 - hex 00088000 - hex 00000000 + hex 22222222 + hex 2ffffff2 + hex 222ff222 + hex 002ff200 + hex 002ff200 + hex 002ff200 + hex 002ff200 + hex 00222200 hex 00000000 hex 00000000 @@ -10534,14 +10536,14 @@ tiledata ENT ; Tile ID 278 ; From image coordinates 296, 48 - hex 00000000 - hex 08800880 - hex 08800880 - hex 08800880 - hex 08800880 - hex 08800880 - hex 00888800 - hex 00000000 + hex 22200222 + hex 2ff22ff2 + hex 2ff22ff2 + hex 2ff22ff2 + hex 2ff22ff2 + hex 2ff22ff2 + hex 02ffff20 + hex 00222200 hex 000ff000 hex 00000000 @@ -10552,14 +10554,14 @@ tiledata ENT hex f000000f hex ff0000ff - hex 00000000 - hex 08800880 - hex 08800880 - hex 08800880 - hex 08800880 - hex 08800880 - hex 00888800 - hex 00000000 + hex 22200222 + hex 2ff22ff2 + hex 2ff22ff2 + hex 2ff22ff2 + hex 2ff22ff2 + hex 2ff22ff2 + hex 02ffff20 + hex 00222200 hex 000ff000 hex 00000000 @@ -10572,14 +10574,14 @@ tiledata ENT ; Tile ID 279 ; From image coordinates 304, 48 - hex 00000000 - hex 08800880 - hex 08800880 - hex 08800880 - hex 00800800 - hex 00888800 - hex 00088000 - hex 00000000 + hex 22222222 + hex 2ff22ff2 + hex 2ff22ff2 + hex 2ff22ff2 + hex 22f22f22 + hex 02ffff20 + hex 022ff220 + hex 00222200 hex 00000000 hex 00000000 @@ -10590,14 +10592,14 @@ tiledata ENT hex f000000f hex ff0000ff - hex 00000000 - hex 08800880 - hex 08800880 - hex 08800880 - hex 00800800 - hex 00888800 - hex 00088000 - hex 00000000 + hex 22222222 + hex 2ff22ff2 + hex 2ff22ff2 + hex 2ff22ff2 + hex 22f22f22 + hex 02ffff20 + hex 022ff220 + hex 00222200 hex 00000000 hex 00000000 @@ -10610,14 +10612,14 @@ tiledata ENT ; Tile ID 280 ; From image coordinates 312, 48 - hex 00000000 - hex 08808080 - hex 08808080 - hex 08808080 - hex 08808080 - hex 08888880 - hex 00080800 - hex 00000000 + hex 22222222 + hex 2ff2f2f2 + hex 2ff2f2f2 + hex 2ff2f2f2 + hex 2ff2f2f2 + hex 2ffffff2 + hex 222f2f22 + hex 02222220 hex 00000000 hex 00000000 @@ -10628,14 +10630,14 @@ tiledata ENT hex 00000000 hex f000000f - hex 00000000 - hex 08080880 - hex 08080880 - hex 08080880 - hex 08080880 - hex 08888880 - hex 00808000 - hex 00000000 + hex 22222222 + hex 2f2f2ff2 + hex 2f2f2ff2 + hex 2f2f2ff2 + hex 2f2f2ff2 + hex 2ffffff2 + hex 22f2f222 + hex 02222220 hex 00000000 hex 00000000 @@ -10648,14 +10650,14 @@ tiledata ENT ; Tile ID 281 ; From image coordinates 0, 56 - hex 00000000 - hex 08800080 - hex 08880800 - hex 00888000 - hex 00088800 - hex 00808880 - hex 08000880 - hex 00000000 + hex 22220222 + hex 2ff222f2 + hex 2fff2f22 + hex 22fff220 + hex 022fff22 + hex 22f2fff2 + hex 2f222ff2 + hex 22202222 hex 0000f000 hex 00000000 @@ -10666,14 +10668,14 @@ tiledata ENT hex 00000000 hex 000f0000 - hex 00000000 - hex 08000880 - hex 00808880 - hex 00088800 - hex 00888000 - hex 08880800 - hex 08800080 - hex 00000000 + hex 22202222 + hex 2f222ff2 + hex 22f2fff2 + hex 022fff22 + hex 22fff220 + hex 2fff2f22 + hex 2ff222f2 + hex 22220222 hex 000f0000 hex 00000000 @@ -10686,14 +10688,14 @@ tiledata ENT ; Tile ID 282 ; From image coordinates 8, 56 - hex 00000000 - hex 08800880 - hex 08800880 - hex 00888800 - hex 00088000 - hex 00088000 - hex 00088000 - hex 00000000 + hex 22222222 + hex 2ff22ff2 + hex 2ff22ff2 + hex 22ffff22 + hex 022ff220 + hex 002ff200 + hex 002ff200 + hex 00222200 hex 00000000 hex 00000000 @@ -10704,14 +10706,14 @@ tiledata ENT hex ff0000ff hex ff0000ff - hex 00000000 - hex 08800880 - hex 08800880 - hex 00888800 - hex 00088000 - hex 00088000 - hex 00088000 - hex 00000000 + hex 22222222 + hex 2ff22ff2 + hex 2ff22ff2 + hex 22ffff22 + hex 022ff220 + hex 002ff200 + hex 002ff200 + hex 00222200 hex 00000000 hex 00000000 @@ -10724,14 +10726,14 @@ tiledata ENT ; Tile ID 283 ; From image coordinates 16, 56 - hex 00000000 - hex 08888880 - hex 00008880 - hex 00088800 - hex 00888000 - hex 08880000 - hex 08888880 - hex 00000000 + hex 22222222 + hex 2ffffff2 + hex 2222fff2 + hex 002fff20 + hex 02fff200 + hex 2fff2222 + hex 2ffffff2 + hex 22222222 hex 00000000 hex 00000000 @@ -10742,14 +10744,14 @@ tiledata ENT hex 00000000 hex 00000000 - hex 00000000 - hex 08888880 - hex 08880000 - hex 00888000 - hex 00088800 - hex 00008880 - hex 08888880 - hex 00000000 + hex 22222222 + hex 2ffffff2 + hex 2fff2222 + hex 02fff200 + hex 002fff20 + hex 2222fff2 + hex 2ffffff2 + hex 22222222 hex 00000000 hex 00000000 diff --git a/demos/sprites/package.json b/demos/sprites/package.json index 59c0f59..1ca744f 100644 --- a/demos/sprites/package.json +++ b/demos/sprites/package.json @@ -14,10 +14,10 @@ }, "scripts": { "test": "npm run build && build-image.bat %npm_package_config_cadius% && %npm_package_config_gsport%", - "debug": "%npm_package_config_crossrunner% GTETestApp -Source GTETestApp_S02_MAINSEG_Output.txt -Debug -CompatibilityLayer", + "debug": "%npm_package_config_crossrunner% GTETestSprites -Source GTETestSprites_S02_MAINSEG_Output.txt -Debug -CompatibilityLayer", "build": "%npm_package_config_merlin32% -V %npm_package_config_macros% App.s", "build:map": "node %npm_package_config_tiled2iigs% ./assets/tiled/world_1-1.json --output-dir ./gen", - "build:tiles": "node %npm_package_config_png2iigs% ./assets/tilesets/smb-16.png --max-tiles 360 --as-tile-data --transparent-color-index 11 > ./gen/App.TileSet.s" + "build:tiles": "node %npm_package_config_png2iigs% ./assets/tilesets/smb-16.png --max-tiles 360 --as-tile-data --transparent-color 6B8CFF > ./gen/App.TileSet.s" }, "repository": { "type": "git", diff --git a/macros/CORE.MACS.S b/macros/CORE.MACS.S index da8a16f..f4b3a34 100644 --- a/macros/CORE.MACS.S +++ b/macros/CORE.MACS.S @@ -119,6 +119,44 @@ min mac lda ]1 mout <<< +asr16 mac + cmp #$8000 + ror + <<< + +asr8 mac + cmp #$80 + ror + <<< + +; Inline macros for fast calculation of some internal values +_TileStoreOffset mac + lda ]2 + asl + tay + lda ]1 + asl ; Assume in range, so asl puts a 0 bit into the carry + adc TileStoreYTable,y + <<< + +_TileStoreOffsetX mac + lda ]2 + asl + tax + lda ]1 + asl ; Assume in range, so asl puts a 0 bit into the carry + adc TileStoreYTable,x + <<< + +_; Macro variant to calculate inline from any source +_SpriteVBuffAddr mac + lda ]2 + clc + adc #NUM_BUFF_LINES + xba + adc ]1 + <<< + ; Macro to define script steps ScriptStep MAC IF #=]5 @@ -128,6 +166,76 @@ ScriptStep MAC FIN <<< +; A specialized CopyMaskedWord macro that draws a tile from a direct page workspace. Used +; to render fringe tiles and sprite tiles when BG1 is active. If there is no second background, +; then one should use the optimized functions which assumes a PEA opcode and only +; needs to copy data words +; +; ]1 : tiledata direct page address , the tilemask direct page address is tiledata + 32 +; ]2 : code field offset +CopyMaskedWordD MAC + lda ]1+32 ; load the mask value + bne mixed ; a non-zero value may be mixed + +; This is a solid word + lda #$00F4 ; PEA instruction + sta: ]2,y + ldal ]1 ; load the tile data + sta: ]2+1,y ; PEA operand + bra next + +mixed cmp #$FFFF ; All 1's in the mask is fully transparent + beq transparent + +; This is the slowest path because there is a *lot* of work to do. So much that it's +; worth it to change up the environment to optimize things a bit more. +; +; Need to fill in the first 8 bytes of the JMP handler with the following code sequence +; +; lda (00),y +; and #MASK +; ora #DATA + + lda #$004C ; JMP instruction + sta: ]2,y + + ldx _X_REG ; Get the addressing offset + ldal JTableOffset,x ; Get the address offset and add to the base address + adc _BASE_ADDR ; of the current code field line + adc #{]2&$F000} ; adjust for the current row offset + sta: ]2+1,y + + tay ; This becomes the new address that we use to patch in + txa ; Get the offset and render a LDA (dp),y instruction + + sep #$20 + sta: $0001,y ; LDA (00),y operand + lda #$B1 + sta: $0000,y ; LDA (00),y opcode + lda #$29 + sta: $0002,y ; AND #$0000 opcode + lda #$09 + sta: $0005,y ; ORA #$0000 opcode + rep #$20 + + lda ]1+32 ; insert the tile mask and data into the exception + sta: $0003,y ; handler. + lda ]1 + sta: $0006,y + + ldy _Y_REG ; restore original y-register value and move on + bra next + +; This is a transparent word, so just show the second background layer +transparent + lda #$00B1 ; LDA (dp),y instruction + sta: ]2,y + lda _X_REG ; X is the logical tile offset (0, 2, 4, ... 82) left-to-right + ora #$4800 ; put a PHA after the offset + sta: ]2+1,y +next + eom + ; Macros to use in the Masked Tile renderer ; ; ]1 : tiledata offset @@ -243,3 +351,56 @@ CopyMaskedDWord MAC lda #$0290 ; BCC *+4 sta: $0006,x eom + + +; Masked renderer for a dynamic tile with sprite data overlaid. What's interesting about this renderer is that the mask +; value is not used directly, but simply indicates if we can use a LDA 0,x / PHA sequence, +; a LDA (00),y / PHA, or a JMP to a blended render +; +; If a dynamic tile is animated, there is the possibility to create a special mask that marks +; words of the tile that a front / back / mixed across all frames. +; +; ]1 : tiledata offset +; ]2 : tilemask offset +; ]3 : code field offset +CopyMaskedDynSpriteWord MAC + +; Need to fill in the first 12(!!) bytes of the JMP handler with the following code sequence +; +; lda (00),y +; and $80,x +; ora $00,x +; and #MASK +; ora #DATA +; +; If MASK == 0, then we can do a PEA. If MASK == $FFFF, then fall back to the simple Dynamic Masked +; code. + + + ldx _X_REG ; Get the addressing offset + ldal JTableOffset,x ; Get the address offset and add to the base address + adc _BASE_ADDR ; of the current code field line + adc #{]1&$F000} ; adjust for the current row offset + sta: ]1+1,y + + tax ; This becomes the new address that we use to patch in + lda _X_REG ; Get the offset and render a LDA (dp),y instruction + + sep #$20 ; Easier to do 8-bit operations + sta: $0001,x ; Set the LDA (00),y operand + lda #$B1 + sta: $0000,x ; Set the LDA (00),y opcode + + lda _T_PTR + sta: $0005,x ; Set ORA 00,x operand + ora #$80 + sta: $0003,x ; Set AND 00,x operand + lda #$35 + sta: $0002,x ; Set AND 00,x operand + lda #$15 + sta: $0004,x ; Set ORA 00,x operand + rep #$30 + + lda #$0290 ; BCC *+4 + sta: $0006,x + eom diff --git a/src/Core.s b/src/Core.s index f235d90..f9f1d36 100644 --- a/src/Core.s +++ b/src/Core.s @@ -8,12 +8,16 @@ use .\Defs.s ; Feature flags -NO_INTERRUPTS equ 1 ; turn off for crossrunner debugging +NO_INTERRUPTS equ 0 ; turn off for crossrunner debugging NO_MUSIC equ 1 ; turn music + tool loading off ; External data provided by the main program segment tiledata EXT +; Sprite plane data and mask banks are provided as an exteral segment +spritedata EXT +spritemask EXT + ; IF there are overlays, they are provided as an external Overlay EXT @@ -42,6 +46,10 @@ EngineStartUp ENT jsr EngineReset ; All of the resources are allocated, put the engine in a known state jsr InitGraphics ; Initialize all of the graphics-related data + nop + jsr InitSprites ; Initialize the sprite subsystem + jsr InitTiles ; Initialize the tile subsystem + jsr InitTimers ; Initialize the timer subsystem plb @@ -247,6 +255,7 @@ EngineReset jsr BuildBank ]step equ ]step+4 --^ + rts ; Allow the user to dynamically select one of the pre-configured screen sizes, or pass @@ -333,7 +342,7 @@ ClearKbdStrobe sep #$20 rep #$20 rts -; Read the keyboard and paddle controls and return in a game-cotroller-like format +; Read the keyboard and paddle controls and return in a game-controller-like format ReadControl ENT pea $0000 ; low byte = key code, high byte = %------AB @@ -343,8 +352,8 @@ ReadControl ENT beq :BNotDown lda #1 - ora 1,s - sta 1,s + ora 2,s + sta 2,s :BNotDown ldal COMMAND_KEY_REG @@ -352,8 +361,8 @@ ReadControl ENT beq :ANotDown lda #2 - ora 1,s - sta 1,s + ora 2,s + sta 2,s :ANotDown ldal KBD_STROBE_REG ; read the keyboard @@ -370,6 +379,7 @@ ReadControl ENT put Memory.s put Graphics.s + put Sprite.s put Render.s put Timer.s put Script.s @@ -379,7 +389,18 @@ ReadControl ENT put blitter/Tables.s put blitter/Template.s put blitter/Tiles.s + put blitter/Tiles00000.s +; put blitter/Tiles00001.s +; put blitter/Tiles00010.s +; put blitter/Tiles00011.s + put blitter/Tiles01000.s +; put blitter/Tiles10001.s +; put blitter/Tiles10010.s +; put blitter/Tiles10011.s +; put blitter/Tiles11000.s + put blitter/TilesBG1.s put blitter/Vert.s put blitter/BG0.s put blitter/BG1.s put TileMap.s + \ No newline at end of file diff --git a/src/Defs.s b/src/Defs.s index 12cf76e..c393e99 100644 --- a/src/Defs.s +++ b/src/Defs.s @@ -82,7 +82,7 @@ BankLoad equ 128 AppSpace equ 160 ; 16 bytes of space reserved for application use -tiletmp equ 186 ; 8 bytes of temp storage for the tile renderers +tiletmp equ 178 ; 16 bytes of temp storage for the tile renderers blttmp equ 192 ; 32 bytes of local cache/scratch space for blitter tmp8 equ 224 ; another 16 bytes of temporary space to be used as scratch @@ -119,3 +119,26 @@ SWAP_PALETTE_ENTRY equ $0004 SET_DYN_TILE equ $0006 CALLBACK equ $0010 +; Tile constants +TILE_ID_MASK equ $01FF +TILE_SPRITE_BIT equ $8000 ; Set if this tile intersects an active sprite +TILE_PRIORITY_BIT equ $4000 ; Put tile on top of sprite +TILE_FRINGE_BIT equ $2000 +TILE_MASK_BIT equ $1000 +TILE_DYN_BIT equ $0800 +TILE_VFLIP_BIT equ $0400 +TILE_HFLIP_BIT equ $0200 + +; Tile Store Offsets (internals) +MAX_TILES equ {26*41} ; Number of tiles in the code field (41 columns * 26 rows) +TILE_STORE_SIZE equ {MAX_TILES*2} ; The tile store contains a tile descriptor in each slot + +TS_TILE_ID equ TILE_STORE_SIZE*0 +TS_DIRTY equ TILE_STORE_SIZE*1 +TS_SPRITE_FLAG equ TILE_STORE_SIZE*2 +TS_TILE_ADDR equ TILE_STORE_SIZE*3 ; const value +TS_CODE_ADDR_LOW equ TILE_STORE_SIZE*4 ; const value +TS_CODE_ADDR_HIGH equ TILE_STORE_SIZE*5 ; const value +TS_WORD_OFFSET equ TILE_STORE_SIZE*6 +TS_BASE_ADDR equ TILE_STORE_SIZE*7 +TS_SPRITE_ADDR equ TILE_STORE_SIZE*8 diff --git a/src/GTE.s b/src/GTE.s index ec08777..ba7d000 100644 --- a/src/GTE.s +++ b/src/GTE.s @@ -36,10 +36,25 @@ DoTimers EXT StartScript EXT StopScript EXT +; Sprite functions +AddSprite EXT +UpdateSprite EXT + ; Direct access to internals DoScriptSeq EXT GetTileAddr EXT +PushDirtyTile EXT ; A = address from GetTileStoreOffset, marks as dirty (will not mark the same tile more than once) +PopDirtyTile EXT ; No args, returns Y with tile store offset of the dirty tile +ApplyTiles EXT ; Drain the dirty tile queue and call RenderTile on each +RenderTile EXT ; Y = address from GetTileStoreOffset +GetTileStoreOffset EXT ; X = column, Y = row +TileStore EXT ; Tile store internal data structure + +DrawTileSprite EXT ; X = target address in sprite plane, Y = address in tile bank +EraseTileSprite EXT ; X = target address is sprite plane +GetSpriteVBuffAddr EXT ; X = x-coordinate (0 - 159), Y = y-coordinate (0 - 199). Return in Acc. + ; Allocate a full 64K bank AllocBank EXT diff --git a/src/Memory.s b/src/Memory.s index af6c01b..59b75bc 100644 --- a/src/Memory.s +++ b/src/Memory.s @@ -67,7 +67,8 @@ InitMemory PushLong #0 ; space for result ]step equ ]step+4 --^ -; Fill in a tables with the adddress of all 208 scanlines across all 13 banks +; Fill in a table with the adddress of all 208 scanlines across all 13 banks. Also fill in +; a shorter table that just holds the starting address of the 26 tile block rows. ldx #0 ldy #0 @@ -99,9 +100,38 @@ InitMemory PushLong #0 ; space for result adc #4 ; move to the next bank address tay cmp #4*13 - bcs :exit + bcs :exit1 brl :bloop +:exit1 + ldx #0 + ldy #0 +:bloop2 + lda BlitBuff+2,y ; Copy the high word first + + sta BRowTableHigh,x ; Two rows per bank + sta BRowTableHigh+{26*2},x + sta BRowTableHigh+2,x + sta BRowTableHigh+{26*2}+2,x + + lda BlitBuff,y + sta BRowTableLow,x + sta BRowTableLow+{26*2},x + clc + adc #$8000 + sta BRowTableLow+2,x + sta BRowTableLow+{26*2}+2,x + + txa + adc #4 + tax + + tya + adc #4 ; move to the next bank address + tay + cmp #4*13 + bcs :exit + brl :bloop2 :exit rts diff --git a/src/README.md b/src/README.md new file mode 100644 index 0000000..fc2c161 --- /dev/null +++ b/src/README.md @@ -0,0 +1,35 @@ += Rendering Pipeline = + +The engine run through the following render loop on every frame + +1. Lock in any changes to the play field scroll position +1. Erase/Redraw dirty sprites into the sprite plane + - If a sprite has moved a different amount than the scroll position, it's marked dirty + - If a sprite was just added on this frame, it's marked dirty + - Any sprite that overlaps a dirty sprite is marked as impacted + - All dirty sprites are erased from the sprite plane + - All dirty and impacted sprites are drawn into the sprite plane + - All of the play field tiles that intersect dirty sprites are marked as dirty with the sprite flag set +1. If a scroll map is defined + - Calculate the new regions of the screen that have been scrolled into view + - For each new tile + - Copy the tile descriptor from the tile map into the tile store + - Mark the tile as dirty +1. For each dirty tile + - Load the tile descriptor from the tile store + - Dispatch to the appropriate tile renderer + - Clear the tile dirty flag +1. If any Masked Overlays are defined + - Turn off shadowing + - Draw the play field on the Overlay rows + - Turn on shadowing +1. In top-to-bottom order + - Draw any Maksed Overlays + - Draw any Opaque Overlays + - Draw any play field rows + +*NOTES* + +* The dirty tile list has a fast test to see if a tile has already been marked as dirty it is not added twice +* The tile renderer is where data from the sprite plane is combined with tile data to show the sprites on-screen. +* Typically, there will not be Overlays defined and the last step of the renderer is just a single render of all playfield lines at once. \ No newline at end of file diff --git a/src/Render.s b/src/Render.s index b5fac27..11eabe5 100644 --- a/src/Render.s +++ b/src/Render.s @@ -78,37 +78,43 @@ _Render jsr _ApplyBG0XPosPre jsr _ApplyBG1XPosPre - jsr _UpdateBG0TileMap - jsr _UpdateBG1TileMap + jsr _RenderSprites ; Once the BG0 X and Y positions are committed, update sprite data - jsr _ApplyBG0XPos ; Patch the PEA instructions with exit BRA opcode - jsr _ApplyBG1XPos ; Patch the PEA instructions with exit BRA opcode + jsr _UpdateBG0TileMap ; and the tile maps. These subroutines build up a list of tiles + jsr _UpdateBG1TileMap ; that need to be updated in the code field -; The code fields are locked in now and reder to be rendered + jsr _ApplyTiles ; This function actually draws the new tiles into the code field + + jsr _ApplyBG0XPos ; Patch the code field instructions with exit BRA opcode + jsr _ApplyBG1XPos ; Update the direct page value based on the horizontal position + +; The code fields are locked in now and ready to be rendered jsr _ShadowOff +; Shadowing is turned off. Render all of the scan lines that need a second pass. One +; optimization that can be done here is that the lines can be rendered in any order +; since it is not shown on-screen yet. + ldx #0 ; Blit the full virtual buffer to the screen ldy #8 jsr _BltRange +; Turn shadowing back on + jsr _ShadowOn -; ldx #0 ; Expose the top 8 rows -; ldy #8 -; jsr _PEISlam +; Now render all of the remaining lines in top-to-bottom (or bottom-to-top) order -; ldx #0 ; Blit the full virtual buffer to the screen -; ldy #16 -; jsr _BltRange - - lda ScreenY0 ; pass the address of the first line of the overlay - asl - tax - lda ScreenAddr,x - clc - adc ScreenX0 - jsl Overlay + lda ScreenY0 ; pass the address of the first line of the overlay + clc + adc #0 + asl + tax + lda ScreenAddr,x + clc + adc ScreenX0 + jsl Overlay ldx #8 ; Blit the full virtual buffer to the screen ldy ScreenHeight @@ -130,4 +136,3 @@ _Render stz DirtyBits rts - diff --git a/src/Sprite.s b/src/Sprite.s index c867efc..0298109 100644 --- a/src/Sprite.s +++ b/src/Sprite.s @@ -1,5 +1,718 @@ -; Some sample code / utilities to help integrate compiled sprites int the GTE rendering -; pipeline. +; Functions for sprie handling. Mostly maintains the sprite list and provides +; utility functions to calculate sprite/tile intersections ; -; The main point of this file to to establish calling conventions and provide a framework -; for blitting a range of sprite lines, instead of always the full sprite. +; The sprite plane actually covers two banks so that more than 32K can be used as a virtual +; screen buffer. In order to be able to draw sprites offscreen, the virtual screen must be +; wider and taller than the physical graphics screen. +; +; Initialize the sprite plane data and mask banks (all data = $0000, all masks = $FFFF) +InitSprites + ldx #$FFFE + lda #0 +:loop1 stal spritedata,x + dex + dex + cpx #$FFFE + bne :loop1 + + ldx #$FFFE + lda #$FFFF +:loop2 stal spritemask,x + dex + dex + cpx #$FFFE + bne :loop2 + +; Clear values in the sprite array + + ldx #{MAX_SPRITES-1}*2 +:loop3 stz _Sprites+TILE_STORE_ADDR_1,x + dex + dex + bpl :loop3 + + rts + + +; This function looks at the sprite list and renders the sprite plane data into the appropriate +; tiles in the code field +forceSpriteFlag ds 2 +_RenderSprites + +; First step is to look at the StartX and StartY values. If the offsets have changed from the +; last time that the frame was rederer, then we need to mark all of the sprites as dirty so that +; the tiles that they were located at on the previous frame will be refreshed + + stz forceSpriteFlag + lda StartX + cmp OldStartX + beq :no_chng_x + lda #SPRITE_STATUS_DIRTY + sta forceSpriteFlag +:no_chng_x + lda StartY + cmp OldStartY + beq :no_chng_y + lda #SPRITE_STATUS_DIRTY + sta forceSpriteFlag +:no_chng_y + +; Second step is to scan the list of sprites. A sprite is either clean or dirty. If it's dirty, +; then its position had changed, so we need to add tiles to the dirty queue to make sure the +; playfield gets update. If it's clean, we can skip everything. + + ldx #0 +:loop lda _Sprites+SPRITE_STATUS,x ; If the status is zero, that's the sentinel value + beq :out + ora forceSpriteFlag + bit #SPRITE_STATUS_DIRTY ; If the dirty flag is set, do the things.... + bne :render +:next inx + inx + bra :loop +:out rts + +; This is the complicated part; we need to draw the sprite into the sprite plane, but then +; calculate the code field tiles that this sprite potentially overlaps with and mark those +; tiles as dirty and store the appropriate sprite plane address that those tiles need to copy +; from. +:render + stx tmp0 ; stash the X register + txy ; switch to the Y register + +; Run through the list of tile store offsets that this sprite was last drawn into and mark +; those tiles as dirty. The most tiles that a sprite could possibly cover is 20 (a 4x3 sprite) +; that is offset, covering a 5x4 area of play field tiles. +; +; For now, we limit ourselved to 4 tiles until things are working.... + + lda _Sprites+TILE_STORE_ADDR_1,y + beq :erase_done + jsr _PushDirtyTile + lda _Sprites+TILE_STORE_ADDR_2,y + beq :erase_done + jsr _PushDirtyTile + lda _Sprites+TILE_STORE_ADDR_3,y + beq :erase_done + jsr _PushDirtyTile + lda _Sprites+TILE_STORE_ADDR_4,y + beq :erase_done + jsr _PushDirtyTile +:erase_done + +; Really, we should only be erasing and redrawing a sprite if its local coordinateds change. Look into this +; as a future optimization. Ideally, all of the sprites will be rendered into the sprite plane in a separate +; pass from this function, which is primarily concerned with flagging dirty tiles in the Tile Store. + + ldx _Sprites+OLD_VBUFF_ADDR,y + jsr _EraseTileSprite ; erase from the old position + +; Draw the sprite into the sprint plane buffer(s) + + ldx _Sprites+VBUFF_ADDR,y ; Get the address in the sprite plane to draw at + lda _Sprites+TILE_DATA_OFFSET,y ; and the tile address of the tile + tay + jsr _DrawTileSprite ; draw the sprite into the sprite plane + +; Mark the appropriate tiles as dirty and as occupied by a sprite so that the ApplyTiles +; subroutine will get the drawn data from the sprite plane into the code field where it +; can be drawn to the screen + + ldx tmp0 ; Restore the index into the sprite array + jsr _MarkDirtySprite8x8 ; Eventually will have routines for all sprite sizes + + ldx tmp0 ; Restore the index again + bra :next + +; Marks a 8x8 square as dirty. The work here is mapping from local screen coordinates to the +; tile store indices. The first step is to adjust the sprite coordinates based on the current +; code field offsets and then cache variations of this value needed in the rest of the subroutine +; +; The SpritX is always the MAXIMUM value of the corner coordinates. We subtract (SpriteX + StartX) mod 4 +; to find the coordinate in the sprite plane that match up with the tile in the play field and +; then use that to calculate the VBUFF address to copy sprite data from. +; +; StartX SpriteX z = * mod 4 (SprietX - z) +; ---------------------------------------------- +; 0 8 0 8 +; 1 8 1 7 +; 2 8 2 6 +; 3 8 3 5 +; 4 9 1 8 +; 5 9 2 7 +; 6 9 3 6 +; 7 9 0 9 +; 8 10 2 8 +; ... +; +; For the Y-coordinate, we just use "mod 8" instead of "mod 4" +; +; On input, X register = Sprite Array Index +_MarkDirtySprite8x8 + + stz _Sprites+TILE_STORE_ADDR_1,x ; Clear the Dirty Tiles in case of an early exit + +; First, bounds check the X and Y coodinates of the sprite and, if they pass, pre-calculate some +; values that we can use later + + lda _Sprites+SPRITE_Y,x ; This is a signed value + bpl :y_is_pos + cmp #$FFF9 ; If a tile is <= -8 do nothing, it's off-screen + bcs :y_is_ok + rts +:y_is_pos cmp ScreenHeight ; Is a tile is > ScreenHeight, it's off-screen + bcc :y_is_ok + rts +:y_is_ok + +; The sprite's Y coordinate is in a range that it will impact the visible tiles that make up the play +; field. Figure out what tile(s) they are and what part fo the sprite plane data/mask need to be +; accessed to overlay with the tile pixels + + clc + adc StartYMod208 ; Adjust for the scroll offset (could be a negative number!) + tay ; Save this value + and #$0007 ; Get (StartY + SpriteY) mod 8. For negative, this is ok because 65536 mod 8 = 0. + sta tmp6 + + eor #$FFFF + inc + clc + adc _Sprites+SPRITE_Y,x ; subtract from the SpriteY position + sta tmp1 ; This position will line up with the tile that the sprite overlaps with + + tya ; Get back the position of the sprite in the code field + bpl :ty_is_pos + clc + adc #208 ; wrap around if we are slightly off-screen + bra :ty_is_ok +:ty_is_pos cmp #208 ; check if we went too far positive + bcc :ty_is_ok + sbc #208 +:ty_is_ok + lsr + lsr + lsr ; This is the row in the Tile Store for top-left corner of the sprite + sta tmp2 + +; Same code, except for the X coordiante + + lda _Sprites+SPRITE_X,x + bpl :x_is_pos + cmp #$FFFD ; If a tile is <= -4 do nothing, it's off-screen + bcs :x_is_ok + rts +:x_is_pos cmp ScreenWidth ; Is a tile is > ScreeWidth, it's off-screen + bcc :x_is_ok + rts +:x_is_ok + clc + adc StartXMod164 + tay + and #$0003 + sta tmp5 ; save the mod value to test for alignment later + + eor #$FFFF + inc + clc + adc _Sprites+SPRITE_X,x + sta tmp3 + + tya + bpl :tx_is_pos + clc + adc #164 + bra :tx_is_ok +:tx_is_pos cmp #164 + bcc :tx_is_ok + sbc #164 +:tx_is_ok + lsr + lsr + sta tmp4 + +; tmp5 = X mod 4 +; tmp6 = Y mod 8 +; +; Look at these values to determine, up front, exactly which tiles will need to be put into the +; dirty tile queue. +; +; tmp5 tmp6 +; ------------+ +; 0 0 | top-left only (1 tile) +; !0 0 | top row (2 tiles) +; 0 !0 | left column (2 tiles) +; !0 !0 | square (4 tiles) + + txy + + ldx #0 + lda tmp6 + beq :hop_y + ldx #4 +:hop_y + lda tmp5 + beq :hop_x + inx + inx +:hop_x + lda #0 ; shared value + jmp (:mark,x) ; pick the appropriate marking routine +:mark dw :mark1x1,:mark1x2,:mark2x1,:mark2x2 + +; At this point we have the top-left corner in the sprite plane (tmp1, tmp3) and the corresponding +; column and row in the tile store (tmp2, tmp4). The next step is to add these tile locations to +; the dirty queue and set the sprite flag along with the VBUFF location. We try to incrementally +; calculate new values to avoid re-doing work. +:mark1x1 + sta _Sprites+TILE_STORE_ADDR_2,y ; Terminate the list after one item + + jsr :top_left + sta _Sprites+TILE_STORE_ADDR_1,y ; Returns the tile store offset + jmp _PushDirtyTile + +:mark1x2 + sta _Sprites+TILE_STORE_ADDR_3,y ; Terminate the list after two items + jsr :calc_col1 ; Calculate the values for the next column + + jsr :top_left + sta _Sprites+TILE_STORE_ADDR_1,y + jsr _PushDirtyTile + + jsr :top_right + sta _Sprites+TILE_STORE_ADDR_2,y + jmp _PushDirtyTile + +:mark2x1 + sta _Sprites+TILE_STORE_ADDR_3,y ; Terminate the list after two items + jsr :calc_row1 ; Calculate the values for the next row + + jsr :top_left + sta _Sprites+TILE_STORE_ADDR_1,y + jsr _PushDirtyTile + + jsr :bottom_left + sta _Sprites+TILE_STORE_ADDR_2,y + jmp _PushDirtyTile + +; This is the maximum value, so no need to terminate the list early +:mark2x2 + jsr :calc_col1 ; Calculate the next row and column values + jsr :calc_row1 + + jsr :top_left + sta _Sprites+TILE_STORE_ADDR_1,y + jsr _PushDirtyTile + + jsr :bottom_left + sta _Sprites+TILE_STORE_ADDR_2,y + jsr _PushDirtyTile + + jsr :top_right + sta _Sprites+TILE_STORE_ADDR_3,y + jsr _PushDirtyTile + + jsr :bottom_right + sta _Sprites+TILE_STORE_ADDR_4,y + jmp _PushDirtyTile + +; Functions to advance to the right, or down and cache the values in the direct page +; temporary space for re-use. col0 and row0 is the original tile +:calc_col1 + lda tmp3 + clc + adc #4 + sta tmp7 + lda tmp4 + inc + cmp #41 + bcc *+5 + lda #0 + sta tmp8 + rts + +:calc_row1 + lda tmp1 + clc + adc #8 + sta tmp9 + lda tmp2 + inc + cmp #26 + bcc *+5 + lda #0 + sta tmp10 + rts + +:top_left + _TileStoreOffsetX tmp4;tmp2 ; Overwrites X + tax + _SpriteVBuffAddr tmp3;tmp1 ; Does not affect X, Y + sta TileStore+TS_SPRITE_ADDR,x + lda #TILE_SPRITE_BIT + sta TileStore+TS_SPRITE_FLAG,x + txa + rts + +:top_right + _TileStoreOffsetX tmp8;tmp2 + tax + _SpriteVBuffAddr tmp7;tmp1 + sta TileStore+TS_SPRITE_ADDR,x + lda #TILE_SPRITE_BIT + sta TileStore+TS_SPRITE_FLAG,x + txa + rts + +:bottom_left + _TileStoreOffsetX tmp4;tmp10 + tax + _SpriteVBuffAddr tmp3;tmp9 + sta TileStore+TS_SPRITE_ADDR,x + lda #TILE_SPRITE_BIT + sta TileStore+TS_SPRITE_FLAG,x + txa + rts + +:bottom_right + _TileStoreOffsetX tmp8;tmp10 + tax + _SpriteVBuffAddr tmp7;tmp9 + sta TileStore+TS_SPRITE_ADDR,x + lda #TILE_SPRITE_BIT + sta TileStore+TS_SPRITE_FLAG,x + txa + rts + +; _GetTileAt +; +; Given a relative playfield coordinate [0, ScreenWidth), [0, ScreenHeight) return the +; X = horizontal point [0, ScreenTileWidth] +; Y = vertical point [0, ScreenTileHeight] +; +; Return +; C = 1, out of range +; C = 0, X = column, Y = row +_GetTileAt + cpx ScreenWidth + bcc *+3 + rts + + cpy ScreenHeight + bcc *+3 + rts + + tya ; carry is clear here + adc StartYMod208 ; This is the code field line that is at the top of the screen + cmp #208 + bcc *+5 + sbc #208 + + lsr + lsr + lsr + tay ; This is the code field row for this point + + clc + txa + adc StartXMod164 + cmp #164 + bcc *+5 + sbc #164 + + lsr + lsr + tax ; Could call _CopyBG0Tile with these arguments + + clc + rts + +; _DrawSprite +; +; Draw the sprites on the _Sprite list into the Sprite Plane data and mask buffers. This is using the +; tile data right now, but could be replaced with compiled sprite routines. +_DrawSprites + ldx #0 +:loop lda _Sprites+SPRITE_STATUS,x + beq :out ; The first open slot is the end of the list + cmp #SPRITE_STATUS_DIRTY + bne :skip + + phx + + lda _Sprites+VBUFF_ADDR,x ; Load the address in the sprite plane + ldy _Sprites+TILE_DATA_OFFSET,x ; Load the address in the tile data bank + tax + jsr _DrawTileSprite + plx +:skip + inx + inx + bra :loop +:out rts + +DrawTileSprite ENT + jsr _DrawTileSprite + rtl + +_DrawTileSprite + phb + pea #^tiledata ; Set the bank to the tile data + plb + +]line equ 0 + lup 8 + lda: tiledata+32+{]line*4},y + andl spritemask+{]line*256},x + stal spritemask+{]line*256},x + + ldal spritedata+{]line*SPRITE_PLANE_SPAN},x + and: tiledata+32+{]line*4},y + ora: tiledata+{]line*4},y + stal spritedata+{]line*SPRITE_PLANE_SPAN},x + + lda: tiledata+32+{]line*4}+2,y + andl spritemask+{]line*SPRITE_PLANE_SPAN}+2,x + stal spritemask+{]line*SPRITE_PLANE_SPAN}+2,x + + ldal spritedata+{]line*SPRITE_PLANE_SPAN}+2,x + and: tiledata+32+{]line*4}+2,y + ora: tiledata+{]line*4}+2,y + stal spritedata+{]line*SPRITE_PLANE_SPAN}+2,x +]line equ ]line+1 + --^ + + plb ; pop extra byte + plb + rts + +; Erase is easy -- set an 8x8 area of the data region to all $0000 and the corresponding mask +; resgion to all $FFFF +; +; X = address is sprite plane -- erases an 8x8 region +SPRITE_PLANE_SPAN equ 256 + +EraseTileSprite ENT + jsr _EraseTileSprite + rtl + +_EraseTileSprite + phb ; Save the bank to switch to the sprite plane + + pea #^spritedata + plb + + lda #0 + sta: {0*SPRITE_PLANE_SPAN}+0,x + sta: {0*SPRITE_PLANE_SPAN}+2,x + sta: {1*SPRITE_PLANE_SPAN}+0,x + sta: {1*SPRITE_PLANE_SPAN}+2,x + sta: {2*SPRITE_PLANE_SPAN}+0,x + sta: {2*SPRITE_PLANE_SPAN}+2,x + sta: {3*SPRITE_PLANE_SPAN}+0,x + sta: {3*SPRITE_PLANE_SPAN}+2,x + sta: {4*SPRITE_PLANE_SPAN}+0,x + sta: {4*SPRITE_PLANE_SPAN}+2,x + sta: {5*SPRITE_PLANE_SPAN}+0,x + sta: {5*SPRITE_PLANE_SPAN}+2,x + sta: {6*SPRITE_PLANE_SPAN}+0,x + sta: {6*SPRITE_PLANE_SPAN}+2,x + sta: {7*SPRITE_PLANE_SPAN}+0,x + sta: {7*SPRITE_PLANE_SPAN}+2,x + + pea #^spritemask + plb + + lda #$FFFF + sta: {0*SPRITE_PLANE_SPAN}+0,x + sta: {0*SPRITE_PLANE_SPAN}+2,x + sta: {1*SPRITE_PLANE_SPAN}+0,x + sta: {1*SPRITE_PLANE_SPAN}+2,x + sta: {2*SPRITE_PLANE_SPAN}+0,x + sta: {2*SPRITE_PLANE_SPAN}+2,x + sta: {3*SPRITE_PLANE_SPAN}+0,x + sta: {3*SPRITE_PLANE_SPAN}+2,x + sta: {4*SPRITE_PLANE_SPAN}+0,x + sta: {4*SPRITE_PLANE_SPAN}+2,x + sta: {5*SPRITE_PLANE_SPAN}+0,x + sta: {5*SPRITE_PLANE_SPAN}+2,x + sta: {6*SPRITE_PLANE_SPAN}+0,x + sta: {6*SPRITE_PLANE_SPAN}+2,x + sta: {7*SPRITE_PLANE_SPAN}+0,x + sta: {7*SPRITE_PLANE_SPAN}+2,x + + pla + plb + rts + +; Add a new sprite to the rendering pipeline +; +; The tile id ithe range 0 - 511. The top 7 bits are used as sprite control bits +; +; Bit 9 : Horizontal flip. +; Bit 10 : Vertical flip. +; Bits 11 - 13 : Sprite Size Selector +; 000 - 8x8 (1x1 tile) +; 001 - 8x16 (1x2 tiles) +; 010 - 16x8 (2x1 tiles) +; 011 - 16x16 (2x2 tiles) +; 100 - 24x16 (3x2 tiles) +; 101 - 16x24 (2x3 tiles) +; 110 - 24x24 (3x3 tiles) +; 111 - 32x24 (4x3 tiles) +; Bit 14 : Low Sprite priority. Draws behind high priority tiles. +; Bit 15 : Reserved. Must be zero. +; +; When a sprite has a size > 8x8, the horizontal tiles are taken from the next tile index and +; the vertical tiles are taken from tileId + 32. This is why tile sheets should be saved +; with a width of 256 pixels. +; +; Single sprite are limited to 24 lines high because there are 28 lines of padding above and below the +; sprite plane buffers, so a sprite that is 32 lines high could overflow the drawing area. +; +; A = tileId + flags +; X = x position +; Y = y position +AddSprite ENT + phb + phk + plb + jsr _AddSprite + plb + rtl + +_AddSprite + phx ; Save the horizontal position and tile ID + pha + + ldx #0 +:loop lda _Sprites+SPRITE_STATUS,x ; Look for an open slot + beq :open + inx + inx + cpx #MAX_SPRITES*2 + bcc :loop + + pla ; Early out + pla + sec ; Signal that no sprite slot was available + rts + +:open lda #SPRITE_STATUS_DIRTY + sta _Sprites+SPRITE_STATUS,x ; Mark this sprite slot as occupied and that it needs to be drawn + pla + jsr _GetTileAddr ; This applies the TILE_ID_MASK + sta _Sprites+TILE_DATA_OFFSET,x + + tya ; Y coordinate + sta _Sprites+SPRITE_Y,x + + pla ; X coordinate + sta _Sprites+SPRITE_X,x + + jsr _GetSpriteVBuffAddr ; Preserves X-register + sta _Sprites+VBUFF_ADDR,x + + clc ; Mark that the sprite was successfully added + txa ; And return the sprite ID + rts + +; X = x coordinate +; Y = y coordinate +GetSpriteVBuffAddr ENT + jsr _GetSpriteVBuffAddr + rtl + +; A = x coordinate +; Y = y coordinate +_GetSpriteVBuffAddr + pha + tya + clc + adc #NUM_BUFF_LINES ; The virtual buffer has 24 lines of off-screen space + xba ; Each virtual scan line is 256 bytes wide for overdraw space + clc + adc 1,s + sta 1,s + pla + rts + +; Move a sprite to a new location. If the tile ID of the sprite needs to be changed, then +; a full remove/add cycle needs to happen +; +; A = sprite ID +; X = x position +; Y = y position +UpdateSprite ENT + phb + phk + plb + jsr _UpdateSprite + plb + rtl + +_UpdateSprite + cmp #MAX_SPRITES*2 ; Make sure we're in bounds + bcc :ok + rts + +:ok + stx tmp0 ; Save the horizontal position + and #$FFFE ; Defensive + tax ; Get the sprite index + + lda #SPRITE_STATUS_DIRTY ; Position is changing, mark as dirty + sta _Sprites+SPRITE_STATUS,x ; Mark this sprite slot as occupied and that it needs to be drawn + + lda _Sprites+VBUFF_ADDR,x ; Save the previous draw location for erasing + sta _Sprites+OLD_VBUFF_ADDR,x + +; lda _Sprites+SPRITE_X,x +; sta _Sprites+OLD_SPRITE_X,x + +; lda _Sprites+SPRITE_Y,x +; sta _Sprites+OLD_SPRITE_Y,x + + lda tmp0 ; Update the X coordinate + sta _Sprites+SPRITE_X,x + + tya ; Update the Y coordinate + sta _Sprites+SPRITE_Y,x + + lda tmp0 + jsr _GetSpriteVBuffAddr + sta _Sprites+VBUFF_ADDR,x + + rts + +; Sprite data structures. We cache quite a few pieces of information about the sprite +; to make calculations faster, so this is hidden from the caller. +; +; Each sprite record contains the following properties: +; +; +0: Sprite status word (0 = unoccupied) +; +2: Tile data address +; +4: Screen offset address (used for data and masks) + +; Number of "off-screen" lines above logical (0,0) +NUM_BUFF_LINES equ 24 + +MAX_SPRITES equ 16 +SPRITE_REC_SIZE equ 20 + +SPRITE_STATUS_EMPTY equ 0 +SPRITE_STATUS_CLEAN equ 1 +SPRITE_STATUS_DIRTY equ 2 + +SPRITE_STATUS equ 0 +TILE_DATA_OFFSET equ {MAX_SPRITES*2} +VBUFF_ADDR equ {MAX_SPRITES*4} +SPRITE_X equ {MAX_SPRITES*6} +SPRITE_Y equ {MAX_SPRITES*8} +OLD_VBUFF_ADDR equ {MAX_SPRITES*10} +TILE_STORE_ADDR_1 equ {MAX_SPRITES*12} +TILE_STORE_ADDR_2 equ {MAX_SPRITES*14} +TILE_STORE_ADDR_3 equ {MAX_SPRITES*16} +TILE_STORE_ADDR_4 equ {MAX_SPRITES*18} + +_Sprites ds SPRITE_REC_SIZE*MAX_SPRITES diff --git a/src/TileMap.s b/src/TileMap.s index bed81e4..c6e0326 100644 --- a/src/TileMap.s +++ b/src/TileMap.s @@ -290,7 +290,7 @@ _UpdateBG0TileMap sbc #MAX_TILE_Y+1 sta :BlkY ; This is the Y-block we start drawing from - lda StartXMod164 ; Dx the same thing for X, except only need to clamp by 4 + lda StartXMod164 ; Do the same thing for X, except only need to clamp by 4 and #$FFFC lsr lsr @@ -307,7 +307,7 @@ _UpdateBG0TileMap ; X = Tile column (0 - 40) ; Y = Tile row (0 - 25) - pei :BlkX ; cache the starting X-block index to restore later + pha ; cache the starting X-block index to restore later pei :Width ; cache the Width value to restore later :yloop :xloop @@ -316,25 +316,26 @@ _UpdateBG0TileMap ; Handle fringe tiles -- if the fringe bit is set, then we need to get the fringe tile index ; and merge the tiles before rendering - bit #TILE_FRINGE_BIT - beq :no_fringe - jsr _GetTileAddr - tax - lda FringeMapPtr - ora FringeMapPtr+2 - beq :no_fringe - lda [FringeMapPtr],y - jsr _GetTileAddr - tay - jsr _MergeTiles -:no_fringe +; bit #TILE_FRINGE_BIT +; beq :no_fringe +; jsr _GetTileAddr +; tax +; lda FringeMapPtr +; ora FringeMapPtr+2 +; beq :no_fringe +; lda [FringeMapPtr],y +; jsr _GetTileAddr +; tay +; jsr _MergeTiles +; +;:no_fringe inc :Offset ; pre-increment the address. inc :Offset ldx :BlkX ldy :BlkY - jsr _CopyBG0Tile + jsr _SetTile ; set the value in the tile store lda :BlkX inc diff --git a/src/blitter/BG1.s b/src/blitter/BG1.s index af75da4..649b633 100644 --- a/src/blitter/BG1.s +++ b/src/blitter/BG1.s @@ -106,7 +106,7 @@ _SetBG1YPos ; Everytime either BG1 or BG0 X-position changes, we have to update the direct page values. We -; *could* do this by adjusting the since address offset, but we have to change up to 200 values +; *could* do this by adjusting the since the address offset, but we have to change up to 200 values ; when the vertical position changes, and only 41 when the horizontal value changes. Plus ; these are all direct page values ; diff --git a/src/blitter/Blitter.s b/src/blitter/Blitter.s index 4c1c813..54c3316 100644 --- a/src/blitter/Blitter.s +++ b/src/blitter/Blitter.s @@ -90,8 +90,3 @@ stk_save lda #0000 ; load the stack plb ; restore the bank rts - -; Placeholder for actual sprite drawing. The implementation will be simple because -; we don't do anything sprite related; just call function pointers provided to us. -_RenderSprites - rts diff --git a/src/blitter/Tables.s b/src/blitter/Tables.s index 9f25c79..acd94c1 100644 --- a/src/blitter/Tables.s +++ b/src/blitter/Tables.s @@ -221,6 +221,16 @@ ScreenAddr ENT ]step = ]step+160 --^ +; Table of offsets into each row of a Tile Store table. We currently have two tables defined; one +; that is the backing store for the tiles rendered into the code field, and another that holds +; backlink information on the sprite entries that overlap various tiles. +]step equ 0 +TileStoreYTable ENT + lup 26 + dw ]step +]step = ]step+{41*2} + --^ + ; This is a double-length table that holds the right-edge adresses of the playfield on the physical ; screen. At most, it needs to hold 200 addresses for a full height playfield. It is double-length ; so that code can pick any offset and copy values without needing to check for a wrap-around. If the @@ -238,6 +248,10 @@ BlitBuff ENT BTableHigh ds 208*2*2 BTableLow ds 208*2*2 +; A shorter table that just holds the blitter row addresses +BRowTableHigh ds 26*2*2 +BRowTableLow ds 26*2*2 + ; A double-length table of addresses for the BG1 bank. The BG1 buffer is 208 rows of 256 bytes each and ; the first row starts $1800 bytes in to cenrer the buffer in the bank ]step equ $1800 diff --git a/src/blitter/Tiles.s b/src/blitter/Tiles.s index 59ae813..6adf57b 100644 --- a/src/blitter/Tiles.s +++ b/src/blitter/Tiles.s @@ -8,10 +8,10 @@ ; CopyTileLinear -- copies the tile data from the tile bank in linear order, e.g. ; 32 consecutive bytes are copied -; RenderTile +; _RenderTile ; ; A high-level function that takes a 16-bit tile descriptor and dispatched to the -; appropriate tile copy courinte based on the descritor flags +; appropriate tile copy routine based on the descriptor flags ; ; Bit 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 ; +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ @@ -19,13 +19,13 @@ ; +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ ; \____/ | | | | | \________________________/ ; | | | | | | Tile ID (0 to 511) -; | | | | | | -; | | | | | +-- H : Flip tile horizontally -; | | | | +----- V : Flip tile vertically -; | | | +-------- D : Render as a Dynamic Tile (Tile ID < 32, V and H have no effect) -; | | +----------- M : Apply tile mask -; | +-------------- F : Overlay a fringe tile -; +----------------- Reserved +; | | | | | | +; | | | | | +-- H : Flip tile horizontally +; | | | | +----- V : Flip tile vertically +; | | | +-------- D : Render as a Dynamic Tile (Tile ID < 32, V and H have no effect) +; | | +----------- M : Apply tile mask +; | +-------------- F : Overlay a fringe tile +; +------------------- Reserved (must be zero) ; ; Each logical tile (corresponding to each Tile ID) actually takes up 128 bytes of memory in the ; tile bank @@ -38,13 +38,16 @@ ; It is simply too slow to try to horizontally reverse the pixel data on the fly. This still allows ; for up to 512 tiles to be stored in a single bank, which should be sufficient. -TILE_ID_MASK equ $01FF -TILE_FRINGE_BIT equ $2000 -TILE_MASK_BIT equ $1000 -TILE_DYN_BIT equ $0800 -TILE_VFLIP_BIT equ $0400 -TILE_HFLIP_BIT equ $0200 -TILE_CTRL_MASK equ $1E00 ; Deliberately ignore the Fringe bit in the dispatch +TILE_CTRL_MASK equ $FE00 +TILE_PROC_MASK equ $F800 ; Select tile proc for rendering + +; Temporary direct page locatinos used by some of the complex tile renderers + +_X_REG equ tiletmp +_Y_REG equ tiletmp+2 +_T_PTR equ tiletmp+4 ; Copy of the tile address pointer +_BASE_ADDR equ tiletmp+6 ; Copy of BTableLow for this tile +_SPR_X_REG equ tiletmp+8 ; Cache address of sprite plane source for a tile ; Low-level function to take a tile descriptor and return the address in the tiledata ; bank. This is not too useful in the fast-path because the fast-path does more @@ -77,147 +80,123 @@ _GetTileAddr ; Y is set to the top-left address of the tile in the BG1 data bank ; ; tmp0/tmp1 is reserved -RenderTileBG1 - tax ; Save the tile descriptor - and #TILE_ID_MASK ; Mask out the ID and save just that - _Mul128 ; multiplied by 128 - pha +_RenderTileBG1 + pha ; Save the tile descriptor - txa and #TILE_VFLIP_BIT+TILE_HFLIP_BIT ; Only horizontal and vertical flips are supported for BG1 xba tax - jmp (:actions,x) + ldal :actions,x + stal :tiledisp+1 -:actions dw bg1_noflip,bg1_hflip,bg1_vflip,bg1_hvflip - -bg1_noflip pla - brl _CopyTileBG1 - -bg1_hflip - pla - clc - adc #64 ; Advance to the flipped version - brl _CopyTileBG1 - -bg1_vflip - pla - brl _CopyTileBG1V - -bg1_hvflip - pla - clc - adc #64 ; Advance to the flipped version - brl _CopyTileBG1V - -_CopyTileBG1 tax - - ldal tiledata+0,x - sta: $0000,y - ldal tiledata+2,x - sta: $0002,y - ldal tiledata+4,x - sta $0100,y - ldal tiledata+6,x - sta $0102,y - ldal tiledata+8,x - sta $0200,y - ldal tiledata+10,x - sta $0202,y - ldal tiledata+12,x - sta $0300,y - ldal tiledata+14,x - sta $0302,y - ldal tiledata+16,x - sta $0400,y - ldal tiledata+18,x - sta $0402,y - ldal tiledata+20,x - sta $0500,y - ldal tiledata+22,x - sta $0502,y - ldal tiledata+24,x - sta $0600,y - ldal tiledata+26,x - sta $0602,y - ldal tiledata+28,x - sta $0700,y - ldal tiledata+30,x - sta $0702,y - rts - -_CopyTileBG1V tax - - ldal tiledata+0,x - sta: $0700,y - ldal tiledata+2,x - sta: $0702,y - ldal tiledata+4,x - sta $0600,y - ldal tiledata+6,x - sta $0602,y - ldal tiledata+8,x - sta $0500,y - ldal tiledata+10,x - sta $0502,y - ldal tiledata+12,x - sta $0400,y - ldal tiledata+14,x - sta $0402,y - ldal tiledata+16,x - sta $0300,y - ldal tiledata+18,x - sta $0302,y - ldal tiledata+20,x - sta $0200,y - ldal tiledata+22,x - sta $0202,y - ldal tiledata+24,x - sta $0100,y - ldal tiledata+26,x - sta $0102,y - ldal tiledata+28,x - sta $0000,y - ldal tiledata+30,x - sta $0002,y - rts - -; On entry -; -; B is set to the correct code field bank -; A is set to the the tile descriptor -; Y is set to the top-left address of the tile in the code field -; X is set to the tile word offset (0 through 80 in steps of 4) -; -; tmp0/tmp1 is reserved -RenderTile - bit #TILE_CTRL_MASK ; Fast path for "normal" tiles - beq _CopyTile - cmp #TILE_MASK_BIT ; Tile 0 w/mask bit set is special, too - bne *+5 - brl ClearTile - - phx ; Save the tile offset - - tax and #TILE_ID_MASK ; Mask out the ID and save just that _Mul128 ; multiplied by 128 - pha + tax +:tiledisp jmp $0000 - txa - and #TILE_CTRL_MASK ; Mask out the different modifiers +:actions dw _TBSolidBG1_00,_TBSolidBG1_0H,_TBSolidBG1_V0,_TBSolidBG1_VH + +; Given an address to a Tile Store record, dispatch to the appropriate tile renderer. The Tile +; Store record contains all of the low-level information that's needed to call the renderer. +; +; Y = address of tile +RenderTile ENT + phb + phk + plb + jsr _RenderTile2 + plb + rtl + +_RenderTile2 + lda TileStore+TS_TILE_ID,y ; build the finalized tile descriptor + ora TileStore+TS_SPRITE_FLAG,y + bpl :nosprite ; save a few cycles on average -- the sprite flag is $8000, so easy bpl/bmi test + tyx + stz TileStore+TS_SPRITE_FLAG,x ; clear the sprite flag + ldx TileStore+TS_SPRITE_ADDR,y + stx _SPR_X_REG + +:nosprite + and #TILE_CTRL_MASK xba tax - jmp (:actions,x) + lda TileProcs,x ; load and patch in the appropriate subroutine + sta :tiledisp+1 -:actions dw solid,solid_hflip,solid_vflip,solid_hvflip -; dw dynamic,dynamic,dynamic,dynamic - dw dyn_masked,dyn_masked,dyn_masked,dyn_masked - dw masked,masked_hflip,masked_vflip,masked_hvflip - dw dyn_masked,dyn_masked,dyn_masked,dyn_masked + ldx TileStore+TS_TILE_ADDR,y ; load the address of this tile's data (pre-calculated) -FillWord0 + sep #$20 ; load the bank of the target code field line + lda TileStore+TS_CODE_ADDR_HIGH,y + pha + rep #$20 + lda TileStore+TS_CODE_ADDR_LOW,y ; load the address of the code field + pha + lda TileStore+TS_BASE_ADDR,y ; load the address of the code field + sta _BASE_ADDR + + lda TileStore+TS_WORD_OFFSET,y + ply + plb ; set the bank + +; B is set to the correct code field bank +; A is set to the tile word offset (0 through 80 in steps of 4) +; Y is set to the top-left address of the tile in the code field +; X is set to the address of the tile data + +:tiledisp jmp $0000 ; render the tile + +; Reference all of the tile rendering subroutines defined in the TileXXXXX files. Each file defines +; 8 entry points: +; +; One set for normal, horizontally flipped, vertically flipped and hors & vert flipped. +; A second set that are optimized for when EngineMode has BG1 disabled. +TileProcs dw _TBSolidTile_00,_TBSolidTile_0H,_TBSolidTile_V0,_TBSolidTile_VH ; 00000 : normal tiles + dw _TBSolidTile_00,_TBSolidTile_0H,_TBSolidTile_V0,_TBSolidTile_VH ; 00001 : dynamic tiles + dw _TBSolidTile_00,_TBSolidTile_0H,_TBSolidTile_V0,_TBSolidTile_VH ; 00010 : masked normal tiles + dw _TBSolidTile_00,_TBSolidTile_0H,_TBSolidTile_V0,_TBSolidTile_VH ; 00011 : masked dynamic tiles + + dw _TBSolidTile_00,_TBSolidTile_0H,_TBSolidTile_V0,_TBSolidTile_VH ; 00100 : fringed normal tiles + dw _TBSolidTile_00,_TBSolidTile_0H,_TBSolidTile_V0,_TBSolidTile_VH ; 00101 : fringed dynamic tiles + dw _TBSolidTile_00,_TBSolidTile_0H,_TBSolidTile_V0,_TBSolidTile_VH ; 00110 : fringed masked normal tiles + dw _TBSolidTile_00,_TBSolidTile_0H,_TBSolidTile_V0,_TBSolidTile_VH ; 00111 : fringed masked dynamic tiles + + dw _TBSolidTile_00,_TBSolidTile_0H,_TBSolidTile_V0,_TBSolidTile_VH ; 01000 : high-priority normal tiles + dw _TBSolidTile_00,_TBSolidTile_0H,_TBSolidTile_V0,_TBSolidTile_VH ; 01001 : high-priority dynamic tiles + dw _TBSolidTile_00,_TBSolidTile_0H,_TBSolidTile_V0,_TBSolidTile_VH ; 01010 : high-priority masked normal tiles + dw _TBSolidTile_00,_TBSolidTile_0H,_TBSolidTile_V0,_TBSolidTile_VH ; 01011 : high-priority masked dynamic tiles + + dw _TBSolidTile_00,_TBSolidTile_0H,_TBSolidTile_V0,_TBSolidTile_VH ; 01100 : high-priority fringed normal tiles + dw _TBSolidTile_00,_TBSolidTile_0H,_TBSolidTile_V0,_TBSolidTile_VH ; 01101 : high-priority fringed dynamic tiles + dw _TBSolidTile_00,_TBSolidTile_0H,_TBSolidTile_V0,_TBSolidTile_VH ; 01110 : high-priority fringed masked normal tiles + dw _TBSolidTile_00,_TBSolidTile_0H,_TBSolidTile_V0,_TBSolidTile_VH ; 01111 : high-priority fringed masked dynamic tiles + + dw _TBSolidSpriteTile_00,_TBSolidSpriteTile_0H,_TBSolidSpriteTile_V0,_TBSolidSpriteTile_VH ; 10000 : normal tiles w/sprite + dw _TBSolidTile_00,_TBSolidTile_0H,_TBSolidTile_V0,_TBSolidTile_VH ; 10001 : dynamic tiles w/sprite + dw _TBSolidTile_00,_TBSolidTile_0H,_TBSolidTile_V0,_TBSolidTile_VH ; 10010 : masked normal tiles w/sprite + dw _TBSolidTile_00,_TBSolidTile_0H,_TBSolidTile_V0,_TBSolidTile_VH ; 10011 : masked dynamic tiles w/sprite + + dw _TBSolidTile_00,_TBSolidTile_0H,_TBSolidTile_V0,_TBSolidTile_VH ; 10100 : fringed normal tiles w/sprite + dw _TBSolidTile_00,_TBSolidTile_0H,_TBSolidTile_V0,_TBSolidTile_VH ; 10101 : fringed dynamic tiles w/sprite + dw _TBSolidTile_00,_TBSolidTile_0H,_TBSolidTile_V0,_TBSolidTile_VH ; 10110 : fringed masked normal tiles w/sprite + dw _TBSolidTile_00,_TBSolidTile_0H,_TBSolidTile_V0,_TBSolidTile_VH ; 10111 : fringed masked dynamic tiles w/sprite + + dw _TBSolidTile_00,_TBSolidTile_0H,_TBSolidTile_V0,_TBSolidTile_VH ; 11000 : high-priority normal tiles w/sprite + dw _TBSolidTile_00,_TBSolidTile_0H,_TBSolidTile_V0,_TBSolidTile_VH ; 11001 : high-priority dynamic tiles w/sprite + dw _TBSolidTile_00,_TBSolidTile_0H,_TBSolidTile_V0,_TBSolidTile_VH ; 11010 : high-priority masked normal tiles w/sprite + dw _TBSolidTile_00,_TBSolidTile_0H,_TBSolidTile_V0,_TBSolidTile_VH ; 11011 : high-priority masked dynamic tiles w/sprite + + dw _TBSolidTile_00,_TBSolidTile_0H,_TBSolidTile_V0,_TBSolidTile_VH ; 11100 : high-priority fringed normal tiles w/sprite + dw _TBSolidTile_00,_TBSolidTile_0H,_TBSolidTile_V0,_TBSolidTile_VH ; 11101 : high-priority fringed dynamic tiles w/sprite + dw _TBSolidTile_00,_TBSolidTile_0H,_TBSolidTile_V0,_TBSolidTile_VH ; 11110 : high-priority fringed masked normal tiles w/sprite + dw _TBSolidTile_00,_TBSolidTile_0H,_TBSolidTile_V0,_TBSolidTile_VH ; 11111 : high-priority fringed masked dynamic tiles w/sprite + +; _TBConstTile +; +; A specialized routine that fills in a tile with a single constant value. It's intended to be used to +; fill in solid colors, so there are no specialized horizontal or verical flipped variants +_TBConstTile sta: $0001,y sta: $0004,y sta $1001,y @@ -234,195 +213,9 @@ FillWord0 sta $6004,y sta $7001,y sta $7004,y - bra FillPEAOpcode + jmp _TBFillPEAOpcode -; _CopyTile -; -; Copy a solid tile into one of the code banks -; -; B = bank of the code field -; A = Tile ID (0 - 1023) -; Y = Base Adddress in the code field - - -_CopyTile cmp #$0000 ; Fast-path the special zero tile - beq FillWord0 - -CopyTileMem - _Mul128 ; Take care of getting the right tile address - -CopyTileMem0 - tax - - ldal tiledata+0,x ; The low word goes in the *next* instruction - sta: $0004,y - ldal tiledata+2,x - sta: $0001,y - ldal tiledata+4,x - sta $1004,y - ldal tiledata+6,x - sta $1001,y - ldal tiledata+8,x - sta $2004,y - ldal tiledata+10,x - sta $2001,y - ldal tiledata+12,x - sta $3004,y - ldal tiledata+14,x - sta $3001,y - ldal tiledata+16,x - sta $4004,y - ldal tiledata+18,x - sta $4001,y - ldal tiledata+20,x - sta $5004,y - ldal tiledata+22,x - sta $5001,y - ldal tiledata+24,x - sta $6004,y - ldal tiledata+26,x - sta $6001,y - ldal tiledata+28,x - sta $7004,y - ldal tiledata+30,x - sta $7001,y ; Fall through - -; For solid tiles -FillPEAOpcode - sep #$20 - lda #$F4 - sta: $0000,y - sta: $0003,y - sta $1000,y - sta $1003,y - sta $2000,y - sta $2003,y - sta $3000,y - sta $3003,y - sta $4000,y - sta $4003,y - sta $5000,y - sta $5003,y - sta $6000,y - sta $6003,y - sta $7000,y - sta $7003,y - rep #$20 - rts - -; Masked tiles -; -; Can result in one of three different code sequences -; -; If mask === $0000, then insert PEA $DATA -; If mask === $FFFF, then insert LDA (DP),y / PHA -; Else then insert JMP and patch exception handler -; -; Because every word of the tile can lead to different opcodes, we -; do the entire setup for each word rather than breaking them up into -; 16-bit and 8-bit operations. - -; Macro to make the loop simpler. Takes three arguments -; -; ]1 = address of tile data -; ]2 = address of tile mask -; ]3 = address of target in code field - -_X_REG equ tiletmp -_Y_REG equ tiletmp+2 -_T_PTR equ tiletmp+4 ; Copy of the tile address pointer -_BASE_ADDR equ tiletmp+6 ; Copy of BTableLow for this tile - -CopyTileMemM - - stx _X_REG ; Save these values as we will need to reload them - sty _Y_REG ; at certain points - sta _T_PTR - tax - -; Do the left column first - - CopyMaskedWord tiledata+0;tiledata+32+0;$0003 - CopyMaskedWord tiledata+4;tiledata+32+4;$1003 - CopyMaskedWord tiledata+8;tiledata+32+8;$2003 - CopyMaskedWord tiledata+12;tiledata+32+12;$3003 - CopyMaskedWord tiledata+16;tiledata+32+16;$4003 - CopyMaskedWord tiledata+20;tiledata+32+20;$5003 - CopyMaskedWord tiledata+24;tiledata+32+24;$6003 - CopyMaskedWord tiledata+28;tiledata+32+28;$7003 - -; Move the index for the JTableOffset array. This is the same index used for transparent words, -; so, if _X_REG is zero, then we would be patching out the last word in the code field with LDA (0),y -; and then increment _X_REG by two to patch the next-to-last word in the code field with LDA (2),y - - inc _X_REG - inc _X_REG - -; Do the right column - - CopyMaskedWord tiledata+2;tiledata+32+2;$0000 - CopyMaskedWord tiledata+6;tiledata+32+6;$1000 - CopyMaskedWord tiledata+10;tiledata+32+10;$2000 - CopyMaskedWord tiledata+14;tiledata+32+14;$3000 - CopyMaskedWord tiledata+18;tiledata+32+18;$4000 - CopyMaskedWord tiledata+22;tiledata+32+22;$5000 - CopyMaskedWord tiledata+26;tiledata+32+26;$6000 - CopyMaskedWord tiledata+30;tiledata+32+30;$7000 - - rts - -CopyTileMemMV - - stx _X_REG ; Save these values as we will need to reload them - sty _Y_REG ; at certain points - sta _T_PTR - tax - - CopyMaskedWord tiledata+0;tiledata+32+0;$7003 - CopyMaskedWord tiledata+2;tiledata+32+2;$7000 - CopyMaskedWord tiledata+4;tiledata+32+4;$6003 - CopyMaskedWord tiledata+6;tiledata+32+6;$6000 - CopyMaskedWord tiledata+8;tiledata+32+8;$5003 - CopyMaskedWord tiledata+10;tiledata+32+10;$5000 - CopyMaskedWord tiledata+12;tiledata+32+12;$4003 - CopyMaskedWord tiledata+14;tiledata+32+14;$4000 - CopyMaskedWord tiledata+16;tiledata+32+16;$3003 - CopyMaskedWord tiledata+18;tiledata+32+18;$3000 - CopyMaskedWord tiledata+20;tiledata+32+20;$2003 - CopyMaskedWord tiledata+22;tiledata+32+22;$2000 - CopyMaskedWord tiledata+24;tiledata+32+24;$1003 - CopyMaskedWord tiledata+28;tiledata+32+26;$1000 - CopyMaskedWord tiledata+30;tiledata+32+28;$0003 - CopyMaskedWord tiledata+32;tiledata+32+30;$0000 - - rts - -TilePatterns dw $0000,$1111,$2222,$3333 - dw $4444,$5555,$6666,$7777 - dw $8888,$9999,$AAAA,$BBBB - dw $CCCC,$DDDD,$EEEE,$FFFF - -ClearTile sep #$20 - lda #$B1 ; This is a special case where we can set all the words to LDA (DP),y - sta: $0000,y - sta: $0003,y - sta $1000,y - sta $1003,y - sta $2000,y - sta $2003,y - sta $3000,y - sta $3003,y - sta $4000,y - sta $4003,y - sta $5000,y - sta $5003,y - sta $6000,y - sta $6003,y - sta $7000,y - sta $7003,y - rep #$20 - - txa +ClearTile and #$00FF ora #$4800 sta: $0004,y @@ -443,126 +236,9 @@ ClearTile sep #$20 sta $5001,y sta $6001,y sta $7001,y - rts - -; Copy a tile, but vertically flip the data -CopyTileMemV - tax - - ldal tiledata+0,x ; The low word goes in the *next* instruction - sta $7004,y - ldal tiledata+2,x - sta $7001,y - ldal tiledata+4,x - sta $6004,y - ldal tiledata+6,x - sta $6001,y - ldal tiledata+8,x - sta $5004,y - ldal tiledata+10,x - sta $5001,y - ldal tiledata+12,x - sta $4004,y - ldal tiledata+14,x - sta $4001,y - ldal tiledata+16,x - sta $3004,y - ldal tiledata+18,x - sta $3001,y - ldal tiledata+20,x - sta $2004,y - ldal tiledata+22,x - sta $2001,y - ldal tiledata+24,x - sta $1004,y - ldal tiledata+26,x - sta $1001,y - ldal tiledata+28,x - sta: $0004,y - ldal tiledata+30,x - sta: $0001,y - rts - -; Primitives to render a dynamic tile -; -; LDA 00,x / PHA where the operand is fixed when the tile is rendered -; $B5 $00 $48 -; -; A = dynamic tile id (must be <32) - -DynamicTile - and #$007F ; clamp to < (32 * 4) - ora #$4800 - sta: $0004,y - sta $1004,y - sta $2004,y - sta $3004,y - sta $4004,y - sta $5004,y - sta $6004,y - sta $7004,y - inc - inc - sta: $0001,y - sta $1001,y - sta $2001,y - sta $3001,y - sta $4001,y - sta $5001,y - sta $6001,y - sta $7001,y sep #$20 - lda #$B5 - sta: $0000,y - sta: $0003,y - sta $1000,y - sta $1003,y - sta $2000,y - sta $2003,y - sta $3000,y - sta $3003,y - sta $4000,y - sta $4003,y - sta $5000,y - sta $5003,y - sta $6000,y - sta $6003,y - sta $7000,y - sta $7003,y - rep #$20 - rts - -DynamicTileM - and #$007F ; clamp to < (32 * 4) - sta _T_PTR - stx _X_REG - - CopyMaskedDWord $0003 - CopyMaskedDWord $1003 - CopyMaskedDWord $2003 - CopyMaskedDWord $3003 - CopyMaskedDWord $4003 - CopyMaskedDWord $5003 - CopyMaskedDWord $6003 - CopyMaskedDWord $7003 - - inc _T_PTR ; Move to the next column - inc _T_PTR - inc _X_REG ; Move to the next column - inc _X_REG - - CopyMaskedDWord $0000 - CopyMaskedDWord $1000 - CopyMaskedDWord $2000 - CopyMaskedDWord $3000 - CopyMaskedDWord $4000 - CopyMaskedDWord $5000 - CopyMaskedDWord $6000 - CopyMaskedDWord $7000 - - sep #$20 - lda #$4C ; Set everything to JMP instructions + lda #$B1 ; This is a special case where we can set all the words to LDA (DP),y sta: $0000,y sta: $0003,y sta $1000,y @@ -598,26 +274,7 @@ CopyTileToDyn ENT adc #$0100 ; Go to the next page tay jsr CopyTileDToDyn ; Copy the tile data - jsr CopyTileMToDyn ; Copy the tile data - rtl - -; Helper functions to copy tile data and mask to the appropriate location in Bank 0 -; X = tile ID -; Y = dynamic tile ID -CopyTileAndMaskToDyn ENT - txa - jsr _GetTileAddr - tax - - tya - and #$001F ; Maximum of 32 dynamic tiles - asl - asl ; 4 bytes per page - adc BlitterDP ; Add to the bank 00 base address - adc #$0100 ; Go to the next page - tay - jsr CopyTileDToDyn ; Copy the tile data - jsr CopyTileMToDyn ; Copy the tile data + jsr CopyTileMToDyn ; Copy the tile mask rtl ; X = address of tile @@ -718,105 +375,6 @@ CopyTileMToDyn plb rts -; This should never be called, because empty control value should be fast-pathed -solid - pla - plx - brl CopyTileMem - -solid_hflip - pla - clc - adc #64 ; Advance to the flipped version - plx - brl CopyTileMem - -solid_vflip - pla - plx - brl CopyTileMemV - -solid_hvflip - pla - clc - adc #64 ; Advance to the flipped version - plx - brl CopyTileMemV - -masked - pla - plx - brl CopyTileMemM - -masked_hflip - pla - clc - adc #64 ; Advance to the flipped version - plx - brl CopyTileMemM - -masked_vflip - pla - plx - brl CopyTileMemMV - -masked_hvflip - pla - clc - adc #64 ; Advance to the flipped version - plx - brl CopyTileMemMV - -dynamic - pla - asl - asl - asl - xba ; Undo the x128 we just need x4 - plx - brl DynamicTile - -dyn_masked - pla - asl - asl - asl - xba ; Undo the x128 we just need x4 - plx - brl DynamicTileM - -; Merge -; -; For fringe support -- takes a pointer to two tiles and composites them into -; some scratch space. -; -; X = primary tile address -; Y = fringe tile address - -tilescratch equ $FF80 -_MergeTiles -; Merge the tile data -]step equ 0 - lup 16 - lda: tiledata+]step,x - and: tiledata+32+]step,y - ora: tiledata+]step,y - sta: tilescratch+]step -]step equ ]step+2 - --^ - -; Merge the tile masks -]step equ 0 - lup 16 - lda: tiledata+32+]step,x - and: tiledata+32+]step,y - sta: tilescratch+32+]step -]step equ ]step+2 - --^ - - lda #tilescratch/128 - rts - ; CopyBG0Tile ; ; A low-level function that copies 8x8 tiles directly into the code field space. @@ -841,7 +399,7 @@ _CopyBG0Tile asl asl asl - asl + asl ; x2 because the table contains words, not tay sep #$20 ; set the bank register @@ -860,20 +418,17 @@ _CopyBG0Tile adc Col2CodeOffset+2,x ; Get the right edge (which is the lower physical address) tay -; Optimization note: We could make a Tile2CodeOffset table that is pre-reversed, which should simplify -; the code starting after the 'rep #$20' to just be this. Saves around 16 cycles / tile... -; -; There would need to be a similar modification made to the JTable as well. - plb ; set the bank pla ; pop the tile ID - jsr RenderTile +; jsr _RenderTile +:exit plx ; pop the x-register plb ; restore the data bank and return rts -; CopyTileBG1 + +; CopyBG1Tile ; ; A low-level function that copies 8x8 tiles directly into the BG1 data buffer. ; @@ -914,26 +469,280 @@ _CopyBG1Tile rep #$20 pla ; pop the tile ID - jsr RenderTileBG1 + jsr _RenderTileBG1 plx ; pop the x-register plb ; restore the data bank and return rts +; Tile Store that holds tile records which contain all the essential information for rendering +; a tile. +; +; TileStore+TS_TILE_ID : Tile descriptor +; TileStore+TS_DIRTY : $FFFF is clean, otherwise stores a back-reference to the DirtyTiles array +; TileStore+TS_SPRITE_FLAG : Set to TILE_SPRITE_BIT is a sprite is present at this tile location +; TileStore+TS_SPRITE_ADDR ; Address of the tile in the sprite plane +; TileStore+TS_TILE_ADDR : Address of the tile in the tile data buffer +; TIleStore+TS_CODE_ADDR_LOW : Low word of the address in the code field that receives the tile +; TileStore+TS_CODE_ADDR_HIGH : High word of the address in the code field that receives the tile +; TileStore+TS_WORD_OFFSET : Logical number of word for this location +; TileStore+TS_BASE_ADDR : Copy of BTableAddrLow + +TileStore ENT + ds TILE_STORE_SIZE*9 + +; A list of dirty tiles that need to be updated in a given frame +DirtyTileCount ds 2 +DirtyTiles ds TILE_STORE_SIZE ; At most this many tiles can possibly be update at once + +; Initialize the tile storage data structures. This takes care of populating the tile records with the +; appropriate constant values. +InitTiles +:col equ tmp0 +:row equ tmp1 + +; Fill in the TileStoreYTable. This is just a table of offsets into the Tile Store for each row. There +; are 26 rows with a stride of 41 + ldy #0 + lda #0 +:yloop + sta TileStoreYTable,y + clc + adc #41*2 + iny + iny + cpy #26*2 + bcc :yloop + +; Next, initialize the Tile Store itself + + ldx #TILE_STORE_SIZE-2 + lda #25 + sta :row + lda #40 + sta :col + +:loop + +; The first set of values in the Tile Store are changed during each frame based on the actions +; that are happening + + stz TileStore+TS_TILE_ID,x ; clear the tile store with the special zero tile + stz TileStore+TS_TILE_ADDR,x + + stz TileStore+TS_SPRITE_FLAG,x ; no sprites are set at the beginning + lda #$FFFF ; none of the tiles are dirty + sta TileStore+TS_DIRTY,x + +; The next set of values are constants that are simply used as cached parameters to avoid needing to +; calculate any of these values during tile rendering + + lda :row ; Set the long address of where this tile + asl ; exists in the code fields + tay + lda BRowTableHigh,y + sta TileStore+TS_CODE_ADDR_HIGH,x ; High word of the tile address (just the bank) + lda BRowTableLow,y + sta TileStore+TS_BASE_ADDR,x ; May not be needed later if we can figure out the right constant... + + lda :col ; Set the offset values based on the column + asl ; of this tile + asl + sta TileStore+TS_WORD_OFFSET,x ; This is the offset from 0 to 82, used in LDA (dp),y instruction + + tay + lda Col2CodeOffset+2,y + clc + adc TileStore+TS_BASE_ADDR,x + sta TileStore+TS_CODE_ADDR_LOW,x ; Low word of the tile address in the code field + + dec :col + bpl :hop + dec :row + lda #40 + sta :col +:hop + + dex + dex + bpl :loop + rts + +_ClearDirtyTiles + bra :hop +:loop + jsr _PopDirtyTile +:hop + lda DirtyTileCount + bne :loop + rts + +; Helper function to get the address offset into the tile cachce / tile backing store +; X = tile column [0, 40] (41 columns) +; Y = tile row [0, 25] (26 rows) +GetTileStoreOffset ENT + phb + phk + plb + jsr _GetTileStoreOffset + plb + rtl +_GetTileStoreOffset + phx ; preserve the registers + phy + jsr _GetTileStoreOffset0 + ply + plx + rts +_GetTileStoreOffset0 + tya + asl + tay + txa + asl + clc + adc TileStoreYTable,y + rts +; Set a tile value in the tile backing store. Mark dirty if the value changes +; +; A = tile id +; X = tile column [0, 40] (41 columns) +; Y = tile row [0, 25] (26 rows) +_SetTile + pha + jsr _GetTileStoreOffset0 ; Get the address of the X,Y tile position + tay + pla + + cmp TileStore+TS_TILE_ID,y ; Only set to dirty if the value changes + beq :nochange + sta TileStore+TS_TILE_ID,y ; Value is different, store it. + jsr _GetTileAddr + sta TileStore+TS_TILE_ADDR,y ; Committed to drawing this tile, so get the address of the tile in the tiledata bank for later + tya ; Add this tile to the list of dirty tiles to refresh + jmp _PushDirtyTile ; on the next call to _ApplyTiles +:nochange rts + +; Append a new dirty tile record +; +; A = result of _GetTileStoreOffset for X, Y +; +; The main purpose of this function is to +; +; 1. Avoid marking the same tile dirty multiple times, and +; 2. Pre-calculating all of the information necessary to render the tile +PushDirtyTile ENT + phb + phk + plb + jsr _PushDirtyTile + plb + rtl +_PushDirtyTileOld + tay ; check if this already marked immediately + lda TileStore+TS_DIRTY,y ; If the lookup === $FFFF (<$8000), it is free. + bpl :occupied +; At this point, keep the Y register value because it is the correct offset to all of the tile +; record fields. + ldx DirtyTileCount + txa + sta TileStore+TS_DIRTY,y ; Store a back-link to this record + tya + sta DirtyTiles,x ; Store the lookup address in the list + inx + inx + stx DirtyTileCount ; Commit +:occupied + rts +; alternate version that is very slightly slower, but preserves the y-register +_PushDirtyTile + tax + lda TileStore+TS_DIRTY,x + bpl :occupied2 + + lda DirtyTileCount + sta TileStore+TS_DIRTY,x + + pha ; Would be nice to have an "exchange a and x" instruction + txa + plx + sta DirtyTiles,x + + inx + inx + stx DirtyTileCount +:occupied2 + rts +; Remove a dirty tile from the list and return it in state ready to be rendered. It is important +; that the core rendering functions *only* use _PopDirtyTile to get a list of tiles to update, +; because this routine merges the tile IDs stored in the Tile Store with the Sprite +; information to set the TILE_SPRITE_BIT. This is the *only* place in the entire code base that +; applies this bit to a tile descriptor. +PopDirtyTile ENT + phb + phk + plb + jsr _PopDirtyTile + plb + rtl + +_PopDirtyTile + ldx DirtyTileCount + bne _PopDirtyTile2 + rts + +_PopDirtyTile2 ; alternate entry point + dex + dex + stx DirtyTileCount ; remove last item from the list + + ldy DirtyTiles,x ; load the offset into the Tile Store + lda #$FFFF + sta TileStore+TS_DIRTY,y ; clear the occupied backlink + rts + +; Run through the dirty tile list and render them into the code field +ApplyTiles ENT + phb + phk + plb + jsr _ApplyTiles + plb + rtl + +_ApplyTiles + bra :begin + +:loop +; Retrieve the offset of the next dirty Tile Store items in the Y-register + + jsr _PopDirtyTile2 + +; Call the generic dispatch with the Tile Store record pointer at by the Y-register. + + phb + jsr _RenderTile2 + plb + +; Loop again until the list of dirty tiles is empty + +:begin ldx DirtyTileCount + bne :loop + rts \ No newline at end of file diff --git a/src/blitter/Tiles00000.s b/src/blitter/Tiles00000.s new file mode 100644 index 0000000..a5e632f --- /dev/null +++ b/src/blitter/Tiles00000.s @@ -0,0 +1,112 @@ +; _TBSolidTile +; +; Define the addresses of the subroutines that draw the normal and flipped variants of the tiles, both +; in the optimized (no second background) and normal cases. +; +; On entry, the following register values need to be set +; +; X : address of base tile in the tiledata bank (tileId * 128) +; Y : address of the top-left corder of the tile location in the code field +; B : set to the code field bank +;_TBSolidTile dw _TBSolidTile_00,_TBSolidTile_0H,_TBSolidTile_V0,_TBSolidTile_VH +; dw _TBCopyData,_TBCopyDataH,_TBCopyDataV,_TBCopyDataVH + +_TBSolidTile_00 + jsr _TBCopyData + jmp _TBFillPEAOpcode + +_TBSolidTile_0H + jsr _TBCopyDataH + jmp _TBFillPEAOpcode + +_TBSolidTile_V0 + jsr _TBCopyDataV + jmp _TBFillPEAOpcode + +_TBSolidTile_VH + jsr _TBCopyDataVH + jmp _TBFillPEAOpcode + +; The workhorse blitter. This blitter copies tile data into the code field without masking. This is the +; most common blitter function. It is slightly optimized to fall through to the code that sets the PEA +; opcodes in order to be slightly more efficient given it's frequent usage. +; +; There is a small variation of this blitter that just copies the data without setting the PEA opcodes. This +; is used by the engine when the capabilitiy bits have turned off the second background layer. In fact, most +; of the tile rendering routines have an optimized version for this important use case. Skipping the opcode +; step results in a 37% speed boost in tile rendering. +; +; This does not increase the FPS by 37% because only a small number of tiles are drawn each frame, but it +; has an impact and can significantly help out when sprites trigger more dirty tile updates than normal. +_TBCopyData +]line equ 0 + lup 8 + ldal tiledata+{]line*4},x + sta: $0004+{]line*$1000},y + ldal tiledata+{]line*4}+2,x + sta: $0001+{]line*$1000},y +]line equ ]line+1 + --^ + rts + +_TBCopyDataH +]line equ 0 + lup 8 + ldal tiledata+{]line*4}+64,x + sta: $0004+{]line*$1000},y + ldal tiledata+{]line*4}+66,x + sta: $0001+{]line*$1000},y +]line equ ]line+1 + --^ + rts + +_TBCopyDataV +]src equ 7 +]dest equ 0 + lup 8 + ldal tiledata+{]src*4},x + sta: $0004+{]dest*$1000},y + ldal tiledata+{]src*4}+2,x + sta: $0001+{]dest*$1000},y +]src equ ]src-1 +]dest equ ]dest+1 + --^ + rts + +_TBCopyDataVH +]src equ 7 +]dest equ 0 + lup 8 + ldal tiledata+{]src*4}+64,x + sta: $0004+{]dest*$1000},y + ldal tiledata+{]src*4}+66,x + sta: $0001+{]dest*$1000},y +]src equ ]src-1 +]dest equ ]dest+1 + --^ + rts + +; A simple helper function that fill in all of the opcodes of a tile with the PEA opcode. This is +; a common function since a tile must be explicitly flagged to use a mask, so this routine is used +; quite frequently in a well-designed tile map. +_TBFillPEAOpcode + sep #$20 + lda #$F4 + sta: $0000,y + sta: $0003,y + sta $1000,y + sta $1003,y + sta $2000,y + sta $2003,y + sta $3000,y + sta $3003,y + sta $4000,y + sta $4003,y + sta $5000,y + sta $5003,y + sta $6000,y + sta $6003,y + sta $7000,y + sta $7003,y + rep #$20 + rts diff --git a/src/blitter/Tiles00001.s b/src/blitter/Tiles00001.s new file mode 100644 index 0000000..5cad5a6 --- /dev/null +++ b/src/blitter/Tiles00001.s @@ -0,0 +1,70 @@ +; _TBDynamicTile +; +; These subroutines fill in the code field with the instructions to render data from the dynamic +; code buffer. This is a bit different, because no tile data is manipulated. It is the +; responsibiliy of the user of the API to use the CopyTileToDyn subroutine to get data +; into the correct location. +; +; This tile type does not explicitly support horizontal or vertical flipping. An appropriate tile +; descriptor should be passed into CopyTileToDyn to put the horizontally or vertically flipped source +; data into the dynamic tile buffer +_TBDynamicTile dw _TBDynamicTile_00,_TBDynamicTile_00,_TBDynamicTile_00,_TBDynamicTile_00 + dw _TBDynamicTile_00,_TBDynamicTile_00,_TBDynamicTile_00,_TBDynamicTile_00 + +_TBDynamicTile_00 + jsr _TBDynamicData + jmp _TBFillLdaDpOpcode + +; Primitives to render a dynamic tile +; +; LDA 00,x / PHA where the operand is fixed when the tile is rendered +; $B5 $00 $48 +; +; A = dynamic tile id (must be <32) +_TBDynamicData + txa + asl + asl + asl + xba ; Undo the x128 we just need x4 + and #$007F ; clamp to < (32 * 4) + ora #$4800 ; insert the PHA instruction + +]line equ 0 ; render the first column + lup 8 + sta: $0004+{]line*$1000},y +]line equ ]line+1 + --^ + + inc ; advance to the next word + inc + +]line equ 0 ; render the second column + lup 8 + sta: $0001+{]line*$1000},y +]line equ ]line+1 + + rts + +; A simple helper function that fill in all of the opcodes of a tile with the LDA dp,x opcode. +_TBFillLdaDpOpcode + sep #$20 + lda #$B5 + sta: $0000,y + sta: $0003,y + sta $1000,y + sta $1003,y + sta $2000,y + sta $2003,y + sta $3000,y + sta $3003,y + sta $4000,y + sta $4003,y + sta $5000,y + sta $5003,y + sta $6000,y + sta $6003,y + sta $7000,y + sta $7003,y + rep #$20 + rts diff --git a/src/blitter/Tiles00010.s b/src/blitter/Tiles00010.s new file mode 100644 index 0000000..b668999 --- /dev/null +++ b/src/blitter/Tiles00010.s @@ -0,0 +1,130 @@ +; _TBMaskedTile +; +; These tile renderes are for "normal" tiles that also apply their mask data. If the case of the second +; background being disabled, the optimized variants are the same as Tile00000 +_TBMaskedTile dw _TBMaskedTile_00,_TBMaskedTile_0H,_TBMaskedTile_V0,_TBMaskedTile_VH + dw _TBCopyData,_TBCopyDataH,_TBCopyDataV,_TBCopyDataVH + +_TBMaskedTile_00 + stx _X_REG ; Save these values as we will need to reload them + sty _Y_REG ; at certain points + sta _T_PTR + tax + +; Do the left column first + + CopyMaskedWord tiledata+0;tiledata+32+0;$0003 + CopyMaskedWord tiledata+4;tiledata+32+4;$1003 + CopyMaskedWord tiledata+8;tiledata+32+8;$2003 + CopyMaskedWord tiledata+12;tiledata+32+12;$3003 + CopyMaskedWord tiledata+16;tiledata+32+16;$4003 + CopyMaskedWord tiledata+20;tiledata+32+20;$5003 + CopyMaskedWord tiledata+24;tiledata+32+24;$6003 + CopyMaskedWord tiledata+28;tiledata+32+28;$7003 + +; Move the index for the JTableOffset array. This is the same index used for transparent words, +; so, if _X_REG is zero, then we would be patching out the last word in the code field with LDA (0),y +; and then increment _X_REG by two to patch the next-to-last word in the code field with LDA (2),y + + inc _X_REG + inc _X_REG + +; Do the right column + + CopyMaskedWord tiledata+2;tiledata+32+2;$0000 + CopyMaskedWord tiledata+6;tiledata+32+6;$1000 + CopyMaskedWord tiledata+10;tiledata+32+10;$2000 + CopyMaskedWord tiledata+14;tiledata+32+14;$3000 + CopyMaskedWord tiledata+18;tiledata+32+18;$4000 + CopyMaskedWord tiledata+22;tiledata+32+22;$5000 + CopyMaskedWord tiledata+26;tiledata+32+26;$6000 + CopyMaskedWord tiledata+30;tiledata+32+30;$7000 + + rts + +_TBMaskedTile_0H + stx _X_REG ; Save these values as we will need to reload them + sty _Y_REG ; at certain points + sta _T_PTR + tax + + CopyMaskedWord tiledata+64+0;tiledata+64+32+0;$0003 + CopyMaskedWord tiledata+64+4;tiledata+64+32+4;$1003 + CopyMaskedWord tiledata+64+8;tiledata+64+32+8;$2003 + CopyMaskedWord tiledata+64+12;tiledata+64+32+12;$3003 + CopyMaskedWord tiledata+64+16;tiledata+64+32+16;$4003 + CopyMaskedWord tiledata+64+20;tiledata+64+32+20;$5003 + CopyMaskedWord tiledata+64+24;tiledata+64+32+24;$6003 + CopyMaskedWord tiledata+64+28;tiledata+64+32+28;$7003 + + inc _X_REG + inc _X_REG + + CopyMaskedWord tiledata+64+2;tiledata+64+32+2;$0000 + CopyMaskedWord tiledata+64+6;tiledata+64+32+6;$1000 + CopyMaskedWord tiledata+64+10;tiledata+64+32+10;$2000 + CopyMaskedWord tiledata+64+14;tiledata+64+32+14;$3000 + CopyMaskedWord tiledata+64+18;tiledata+64+32+18;$4000 + CopyMaskedWord tiledata+64+22;tiledata+64+32+22;$5000 + CopyMaskedWord tiledata+64+26;tiledata+64+32+26;$6000 + CopyMaskedWord tiledata+64+30;tiledata+64+32+30;$7000 + + rts + +_TBMaskedTile_V0 + stx _X_REG ; Save these values as we will need to reload them + sty _Y_REG ; at certain points + sta _T_PTR + tax + + CopyMaskedWord tiledata+0;tiledata+32+0;$7003 + CopyMaskedWord tiledata+4;tiledata+32+4;$6003 + CopyMaskedWord tiledata+8;tiledata+32+8;$5003 + CopyMaskedWord tiledata+12;tiledata+32+12;$4003 + CopyMaskedWord tiledata+16;tiledata+32+16;$3003 + CopyMaskedWord tiledata+20;tiledata+32+20;$2003 + CopyMaskedWord tiledata+24;tiledata+32+24;$1003 + CopyMaskedWord tiledata+28;tiledata+32+28;$0003 + + inc _X_REG + inc _X_REG + + CopyMaskedWord tiledata+2;tiledata+32+2;$7000 + CopyMaskedWord tiledata+6;tiledata+32+6;$6000 + CopyMaskedWord tiledata+10;tiledata+32+10;$5000 + CopyMaskedWord tiledata+14;tiledata+32+14;$4000 + CopyMaskedWord tiledata+18;tiledata+32+18;$3000 + CopyMaskedWord tiledata+22;tiledata+32+22;$2000 + CopyMaskedWord tiledata+26;tiledata+32+26;$1000 + CopyMaskedWord tiledata+30;tiledata+32+30;$0000 + + rts + +_TBMaskedTile_VH + stx _X_REG ; Save these values as we will need to reload them + sty _Y_REG ; at certain points + sta _T_PTR + tax + + CopyMaskedWord tiledata+64+0;tiledata+64+32+0;$7003 + CopyMaskedWord tiledata+64+4;tiledata+64+32+4;$6003 + CopyMaskedWord tiledata+64+8;tiledata+64+32+8;$5003 + CopyMaskedWord tiledata+64+12;tiledata+64+32+12;$4003 + CopyMaskedWord tiledata+64+16;tiledata+64+32+16;$3003 + CopyMaskedWord tiledata+64+20;tiledata+64+32+20;$2003 + CopyMaskedWord tiledata+64+24;tiledata+64+32+24;$1003 + CopyMaskedWord tiledata+64+28;tiledata+64+32+28;$0003 + + inc _X_REG + inc _X_REG + + CopyMaskedWord tiledata+64+2;tiledata+64+32+2;$7000 + CopyMaskedWord tiledata+64+6;tiledata+64+32+6;$6000 + CopyMaskedWord tiledata+64+10;tiledata+64+32+10;$5000 + CopyMaskedWord tiledata+64+14;tiledata+64+32+14;$4000 + CopyMaskedWord tiledata+64+18;tiledata+64+32+18;$3000 + CopyMaskedWord tiledata+64+22;tiledata+64+32+22;$2000 + CopyMaskedWord tiledata+64+26;tiledata+64+32+26;$1000 + CopyMaskedWord tiledata+64+30;tiledata+64+32+30;$0000 + + rts diff --git a/src/blitter/Tiles00011.s b/src/blitter/Tiles00011.s new file mode 100644 index 0000000..19dd598 --- /dev/null +++ b/src/blitter/Tiles00011.s @@ -0,0 +1,64 @@ +; _TBDynamicMaskTile +; +; Insert a code sequence to mask the dynamic tile against the background. This is quite a slow process because +; every word needs to be handled with a JMP exception; but it looks good! +_TBDynamicMaskTile dw _TBDynamicMaskTile_00,_TBDynamicMaskTile_00,_TBDynamicMaskTile_00,_TBDynamicMaskTile_00 + dw _TBDynamicTile_00,_TBDynamicTile_00,_TBDynamicTile_00,_TBDynamicTile_00 + +_TBDynamicMaskTile_00 + jsr _TBDynamicDataAndMask + jmp _TBFillJMPOpcode + +; A = dynamic tile id (must be <32) +_TBDynamicDataAndMask + and #$007F ; clamp to < (32 * 4) + sta _T_PTR + stx _X_REG + + CopyMaskedDWord $0003 + CopyMaskedDWord $1003 + CopyMaskedDWord $2003 + CopyMaskedDWord $3003 + CopyMaskedDWord $4003 + CopyMaskedDWord $5003 + CopyMaskedDWord $6003 + CopyMaskedDWord $7003 + + inc _T_PTR ; Move to the next column + inc _T_PTR + inc _X_REG ; Move to the next column + inc _X_REG + + CopyMaskedDWord $0000 + CopyMaskedDWord $1000 + CopyMaskedDWord $2000 + CopyMaskedDWord $3000 + CopyMaskedDWord $4000 + CopyMaskedDWord $5000 + CopyMaskedDWord $6000 + CopyMaskedDWord $7000 + + rts + +; A simple helper function that fill in all of the opcodes of a tile with the JMP opcode. +_TBFillJMPOpcode + sep #$20 + lda #$4C + sta: $0000,y + sta: $0003,y + sta $1000,y + sta $1003,y + sta $2000,y + sta $2003,y + sta $3000,y + sta $3003,y + sta $4000,y + sta $4003,y + sta $5000,y + sta $5003,y + sta $6000,y + sta $6003,y + sta $7000,y + sta $7003,y + rep #$20 + rts diff --git a/src/blitter/Tiles01000.s b/src/blitter/Tiles01000.s new file mode 100644 index 0000000..77df282 --- /dev/null +++ b/src/blitter/Tiles01000.s @@ -0,0 +1,132 @@ +; _TBSolidSpriteTile +; +; Renders solid tiles with sprites layered on top of the tile data. Because we need to combine +; data from the sprite plane, tile data and write to the code field (which are all in different banks), +; there is no way to do everything inline, so a composite tile is created on the fly and written to +; a direct page buffer. This direct page buffer is then used to render the tile. +_TBSolidSpriteTile_00 +; ldx #45*128 + jsr _TBCopyTileDataToCBuff ; Copy the tile into the compositing buffer (using correct x-register) + jsr _TBApplySpriteData ; Overlay the data form the sprite plane (and copy into the code field) + jmp _TBFillPEAOpcode ; Fill in the code field opcodes + +_TBSolidSpriteTile_0H + jsr _TBCopyTileDataToCBuffH + jsr _TBApplySpriteData + jmp _TBFillPEAOpcode + +_TBSolidSpriteTile_V0 + jsr _TBCopyTileDataToCBuffV + jsr _TBApplySpriteData + jmp _TBFillPEAOpcode + +_TBSolidSpriteTile_VH + jsr _TBCopyTileDataToCBuffVH + jsr _TBApplySpriteData + jmp _TBFillPEAOpcode + +; Fast variation that does not need to set the opcode +_TBFastSpriteTile_00 + jsr _TBCopyTileDataToCBuff ; Copy the tile into the compositing buffer + jmp _TBApplySpriteData ; Overlay the data form the sprite plane (and copy into the code field) + +_TBFastSpriteTile_0H + jsr _TBCopyTileDataToCBuffH + jmp _TBApplySpriteData + +_TBFastSpriteTile_V0 + jsr _TBCopyTileDataToCBuffV + jmp _TBApplySpriteData + +_TBFastSpriteTile_VH + jsr _TBCopyTileDataToCBuffVH + jmp _TBApplySpriteData + +; Need to update the X-register before calling this +_TBApplySpriteData + ldx _SPR_X_REG ; set to the unaligned tile block address in the sprite plane + +]line equ 0 + lup 8 + lda blttmp+{]line*4} + andl spritemask+{]line*SPRITE_PLANE_SPAN},x + oral spritedata+{]line*SPRITE_PLANE_SPAN},x + sta: $0004+{]line*$1000},y + + lda blttmp+{]line*4}+2 + andl spritemask+{]line*SPRITE_PLANE_SPAN}+2,x + oral spritedata+{]line*SPRITE_PLANE_SPAN}+2,x + sta: $0001+{]line*$1000},y +]line equ ]line+1 + --^ + rts + +; Copy tile data into the direct page compositing buffer. The main reason to do this in full passes is +; because we can avoid needing to use both the X and Y registers during the compositing process and +; reserve Y to hold the code field address. +; +; Also, we can get away with not setting the bank register, this is a wash in terms of speed, but results +; in simpler, more composable subroutines +_TBCopyTileDataToCBuff +]line equ 0 + lup 8 + ldal tiledata+{]line*4},x + sta blttmp+{]line*4} + + ldal tiledata+{]line*4}+2,x + sta blttmp+{]line*4}+2 +]line equ ]line+1 + --^ + rts + +_TBCopyTileDataToCBuffH +]line equ 0 + lup 8 + ldal tiledata+{]line*4}+64,x + sta blttmp+{]line*4} + + ldal tiledata+{]line*4}+64+2,x + sta blttmp+{]line*4}+2 +]line equ ]line+1 + --^ + rts + +_TBCopyTileDataToCBuffV +]src equ 7 +]dest equ 0 + lup 8 + ldal tiledata+{]src*4},x + sta blttmp+{]dest*4} + + ldal tiledata+{]src*4}+2,x + sta blttmp+{]dest*4}+2 +]src equ ]src-1 +]dest equ ]dest+1 + --^ + rts + +_TBCopyTileDataToCBuffVH +]src equ 7 +]dest equ 0 + lup 8 + ldal tiledata+{]src*4}+64,x + sta blttmp+{]dest*4} + + ldal tiledata+{]src*4}+64+2,x + sta blttmp+{]dest*4}+2 +]src equ ]src-1 +]dest equ ]dest+1 + --^ + rts + +; Copy just the data into the code field from the composite buffer +_TBSolidComposite +]line equ 0 + lup 8 + lda blttmp+{]line*4} + sta: $0004+{]line*$1000},y + lda blttmp+{]line*4}+2 + sta: $0001+{]line*$1000},y +]line equ ]line+1 + --^ + rts diff --git a/src/blitter/Tiles01010.s b/src/blitter/Tiles01010.s new file mode 100644 index 0000000..b8f4a30 --- /dev/null +++ b/src/blitter/Tiles01010.s @@ -0,0 +1,132 @@ +; _TBMaskedSpriteTile +; +; Renders a composited tile with masking to the code field. +_TBMaskedSpriteTile dw _TBMaskedSpriteTile_00 + dw _TBMaskedSpriteTile_0H + dw _TBMaskedSpriteTile_V0 + dw _TBMaskedSpriteTile_VH +; dw _TBCopyData,_TBCopyDataH,_TBCopyDataV,_TBCopyDataVH + +_TBMaskedSpriteTile_00 + jsr _TBCreateComposite + jsr _TBSolidComposite + jmp _TBFillPEAOpcode + +_TBMaskedSpriteTile_0H + jsr _TBCreateCompositeH + jsr _TBSolidComposite + jmp _TBFillPEAOpcode + +_TBMaskedSpriteTile_V0 + jsr _TBCreateCompositeV + jsr _TBSolidComposite + jmp _TBFillPEAOpcode + +_TBMaskedSpriteTile_VH + jsr _TBCreateCompositeVH + jsr _TBSolidComposite + jmp _TBFillPEAOpcode + +_TBCreateCompositeDataAndMask + phb + pea #^tiledata + plb + +]line equ 0 + lup 8 + lda: tiledata+{]line*4},y + andl spritemask+{]line*SPRITE_PLANE_SPAN},x + oral spritedata+{]line*SPRITE_PLANE_SPAN},x + sta blttmp+{]line*4} + + lda: tiledata+{]line*4}+32,y + andl spritemask+{]line*SPRITE_PLANE_SPAN},x + sta blttmp+{]line*4}+32 + + lda: tiledata+{]line*4}+2,y + andl spritemask+{]line*SPRITE_PLANE_SPAN}+2,x + oral spritedata+{]line*SPRITE_PLANE_SPAN}+2,x + sta blttmp+{]line*4}+2 + + lda: tiledata+{]line*4}+32+2,y + andl spritemask+{]line*SPRITE_PLANE_SPAN}+2,x + sta blttmp+{]line*4}+32+2 +]line equ ]line+1 + --^ + + plb + plb + rts + +_TBCreateCompositeH + phb + pea #^tiledata + plb + +]line equ 0 + lup 8 + lda: tiledata+{]line*4}+64,y + andl spritemask+{]line*SPRITE_PLANE_SPAN},x + oral spritedata+{]line*SPRITE_PLANE_SPAN},x + sta blttmp+{]line*4} + + lda: tiledata+{]line*4}+64+2,y + andl spritemask+{]line*SPRITE_PLANE_SPAN}+2,x + oral spritedata+{]line*SPRITE_PLANE_SPAN}+2,x + sta blttmp+{]line*4}+2 +]line equ ]line+1 + --^ + + plb + plb + rts + + +_TBCreateCompositeV +]src equ 7 +]dest equ 0 + lup 8 + lda: tiledata+{]src*4},y + andl spritemask+{]dest*SPRITE_PLANE_SPAN},x + oral spritedata+{]dest*SPRITE_PLANE_SPAN},x + sta blttmp+{]dest*4} + + lda: tiledata+{]src*4}+2,y + andl spritemask+{]dest*SPRITE_PLANE_SPAN}+2,x + oral spritedata+{]dest*SPRITE_PLANE_SPAN}+2,x + sta blttmp+{]dest*4}+2 +]src equ ]src-1 +]dest equ ]dest+1 + --^ + rts + +_TBCreateCompositeVH +]src equ 7 +]dest equ 0 + lup 8 + lda: tiledata+{]src*4}+64,y + andl spritemask+{]dest*SPRITE_PLANE_SPAN},x + oral spritedata+{]dest*SPRITE_PLANE_SPAN},x + sta blttmp+{]dest*4} + + lda: tiledata+{]src*4}+64+2,y + andl spritemask+{]dest*SPRITE_PLANE_SPAN}+2,x + oral spritedata+{]dest*SPRITE_PLANE_SPAN}+2,x + sta blttmp+{]dest*4}+2 +]src equ ]src-1 +]dest equ ]dest+1 + --^ + rts + +; Copy just the data into the code field from the composite buffer +_TBSolidComposite +]line equ 0 + lup 8 + lda blttmp+{]line*4} + sta: $0004+{]line*$1000},y + lda blttmp+{]line*4}+2 + sta: $0001+{]line*$1000},y +]line equ ]line+1 + --^ + rts + diff --git a/src/blitter/Tiles10000.s b/src/blitter/Tiles10000.s new file mode 100644 index 0000000..c723a94 --- /dev/null +++ b/src/blitter/Tiles10000.s @@ -0,0 +1,6 @@ +; _TBPriorityTile +; +; The priority bit allows the tile to be rendered in front of sprites. If there's no sprite +; in this tile area, then just fallback to the Tile00000.s implementation +_TBPriorityTile dw _TBSolidTile_00,_TBSolidTile_0H,_TBSolidTile_V0,_TBSolidTile_VH + dw _TBCopyData,_TBCopyDataH,_TBCopyDataV,_TBCopyDataVH diff --git a/src/blitter/Tiles10001.s b/src/blitter/Tiles10001.s new file mode 100644 index 0000000..8c26050 --- /dev/null +++ b/src/blitter/Tiles10001.s @@ -0,0 +1,6 @@ +; _TBPriorityDynamicTile +; +; The priority bit allows the tile to be rendered in front of sprites. If there's no sprite +; in this tile area, then just fallback to the Tile00001.s implementation +_TBPriorityDynamicTile dw _TBDynamicTile_00,_TBDynamicTile_00,_TBDynamicTile_00,_TBDynamicTile_00 + dw _TBDynamicTile_00,_TBDynamicTile_00,_TBDynamicTile_00,_TBDynamicTile_00 diff --git a/src/blitter/Tiles10010.s b/src/blitter/Tiles10010.s new file mode 100644 index 0000000..53dbbdf --- /dev/null +++ b/src/blitter/Tiles10010.s @@ -0,0 +1,19 @@ +; _TBMaskedPriorityTile +; +; The priority bit allows the tile to be rendered in front of sprites. If there's no sprite +; in this tile area, then just fallback to the Tile00000.s implementation +_TBMaskedPriorityTile dw _TBMaskedTile_00,_TBMaskedTile_0H,_TBMaskedTile_V0,_TBMaskedTile_VH + dw _TBCopyData,_TBCopyDataH,_TBCopyDataV,_TBCopyDataVH + +; NOTE: Eventually, we want a way to support this use-case +; +; When the high-priority bit is set for a tile, then the BG0 tile will be rendered behind the BG1 data. In +; order to support this, the optional BG1 mask buffer needs to be enabled and *every* word in the tile +; becomes a JMP handler (similar to masked dynamic tiles) +; +; The 8 bytes of code that is generated in the JMP handler is +; +; lda #tiledata +; and [dp],y +; ora (dp),y +; nop diff --git a/src/blitter/Tiles10011.s b/src/blitter/Tiles10011.s new file mode 100644 index 0000000..841f1bd --- /dev/null +++ b/src/blitter/Tiles10011.s @@ -0,0 +1,6 @@ +; _TBPriorityDynamicMaskTile +; +; The priority bit allows the tile to be rendered in front of sprites. If there's no sprite +; in this tile area, then just fallback to the Tile00000.s implementation +_TBPriorityDynamicMaskTile dw _TBDynamicMaskTile_00,_TBDynamicMaskTile_00,_TBDynamicMaskTile_00,_TBDynamicMaskTile_00 + dw _TBDynamicTile_00,_TBDynamicTile_00,_TBDynamicTile_00,_TBDynamicTile_00 diff --git a/src/blitter/Tiles11000.s b/src/blitter/Tiles11000.s new file mode 100644 index 0000000..79acfb2 --- /dev/null +++ b/src/blitter/Tiles11000.s @@ -0,0 +1,25 @@ +; _TBPrioritySpriteTile +; +; When the sprite is composited with the tile data, the tile mask is used to place the tile data on top of +; any sprite data + +; Need to update the X-register before calling this +_TBApplyPrioritySpriteData + ldx _SPR_X_REG ; set to the unaligned tile block address in the sprite plane + +]line equ 0 + lup 8 + ldal spritedata+{]line*SPRITE_PLANE_SPAN},x + and blttmp+{]line*4}+32 + ora blttmp+{]line*4} + sta: $0004+{]line*$1000},y + + ldal spritedata+{]line*SPRITE_PLANE_SPAN}+2,x + and blttmp+{]line*4}+32+2 + ora blttmp+{]line*4}+2 + sta: $0001+{]line*$1000},y +]line equ ]line+1 + --^ + + ldx _X_REG ; restore the original value + rts \ No newline at end of file diff --git a/src/blitter/TilesBG1.s b/src/blitter/TilesBG1.s new file mode 100644 index 0000000..5345830 --- /dev/null +++ b/src/blitter/TilesBG1.s @@ -0,0 +1,47 @@ +_TBSolidBG1_00 +]line equ 0 + lup 8 + ldal tiledata+{]line*4},x + sta: $0000+{]line*$0100},y + ldal tiledata+{]line*4}+2,x + sta: $0002+{]line*$0100},y +]line equ ]line+1 + --^ + rts + +_TBSolidBG1_0H +]line equ 0 + lup 8 + ldal tiledata+{]line*4}+64,x + sta: $0000+{]line*$0100},y + ldal tiledata+{]line*4}+64+2,x + sta: $0002+{]line*$0100},y +]line equ ]line+1 + --^ + rts + +_TBSolidBG1_V0 +]src equ 7 +]dest equ 0 + lup 8 + ldal tiledata+{]src*4},x + sta: $0000+{]dest*$0100},y + ldal tiledata+{]src*4}+2,x + sta: $0002+{]dest*$0100},y +]src equ ]src-1 +]dest equ ]dest+1 + --^ + rts + +_TBSolidBG1_VH +]src equ 7 +]dest equ 0 + lup 8 + ldal tiledata+{]src*4}+64,x + sta: $0000+{]dest*$0100},y + ldal tiledata+{]src*4}+64+2,x + sta: $0002+{]dest*$0100},y +]src equ ]src-1 +]dest equ ]dest+1 + --^ + rts diff --git a/tools/mksprite.js b/tools/mksprite.js index fbf25d9..cb099f3 100644 --- a/tools/mksprite.js +++ b/tools/mksprite.js @@ -2,7 +2,7 @@ * Basic sprite compiler * * GTE has some specific needs that makes existing tools (like MrSprite) inappropriate. GTE - * sprites need to reference some internal data structures and have slightly difference code + * sprites need to reference some internal data structures and have slightly different code * in order to handle clipping to the playfield bounds. * * The core sprite drawing approach is the same (set up Bank 1 direct page and stack), but @@ -41,4 +41,81 @@ * a sprite record is set up to allow the sprite to be entered in the middle and exited * before the last line of the sprite. */ +const { readPNG, pngToIIgsBuff } = require('./png2iigs'); +const process = require('process'); +main(process.argv.slice(2)).then( + () => process.exit(0), + (e) => { + console.error(e); + process.exit(1); + } +); + +async function main(argv) { + const png = await readPNG(argv[0]); + const buff = pngToIIgsBuff(png); + + const options = { + staticClip: true, + label: 'Sprite001' + }; + + startIndex = getArg(argv, '--start-index', x => parseInt(x, 10), 0); + asTileData = getArg(argv, '--as-tile-data', null, 0); + maxTiles = getArg(argv, '--max-tiles', x => parseInt(x, 10), 64); +} + +function getArg(argv, arg, fn, defaultValue) { + for (let i = 0; i < argv.length; i += 1) { + if (argv[i] === arg) { + if (fn) { + return fn(argv[i+1]); + } + return true; // Return true if the argument was found + } + } + return defaultValue; +} + + +function buildMerlinCodeForSprite(sprite, options) { + const { label, staticClip } = options; + const rtnOpCode = options.longReturn ? 'rtl' : 'rts'; + + const sb = new StringBuilder(); + sb.appendLine(`${label} ENT`); + sb.appendLine(` cpx #${sprite.height * 2}`); + sb.appendLine(` bcc *+3`); + sb.appendLine(` ${rtnOpCode}`); + sb.appendLine(` sei`); + sb.appendLine(` tcs`); + sb.appendLine(` jmp (${label}_jtbl,x)`); + sb.appendLine(`${label}_jtbl`); + for (let line = 0; line < sprite.rows.length; line += 1) { + lda DP ; A = $1234 + * eor #DATA ; A = $4444 + * and #~MASK ; A = $4440 + * and screen_mask,y ; A = $4400 + * and >field_mask,x ; A = $4000 + * eor DP ; A = $5234 <-- Only the high nibble is set to the sprite data + * sta DP + sb.appendLine(` dw ${label}_${line}`); + } + + // Implement each line to draw the sprite data + // + // label_XX tdc + // clc + // adc #160*line + // tcd + // main_XX lda 00 + // and # + // ora # + // + for (let line = 0; line < sprite.rows.length; line += 1) { + + } + + return sb.toString(); +} \ No newline at end of file diff --git a/tools/png2iigs.js b/tools/png2iigs.js index 07d0c44..92ca5a6 100644 --- a/tools/png2iigs.js +++ b/tools/png2iigs.js @@ -8,6 +8,7 @@ const StringBuilder = require('string-builder'); let startIndex = 0; let transparentColor = 0; let transparentIndex = -1; +let maxTiles = 511; main(process.argv.slice(2)).then( () => process.exit(0), @@ -92,6 +93,18 @@ function pngToIIgsBuffRepeat(png) { return buff; } +function paletteToHexString(palette) { + const r = Math.round(palette[0]); + const g = Math.round(palette[1]); + const b = Math.round(palette[2]); + + return ( + r.toString(16).toUpperCase().padStart(2, '0') + + g.toString(16).toUpperCase().padStart(2, '0') + + b.toString(16).toUpperCase().padStart(2, '0') + ); +} + function paletteToIIgs(palette) { const r = Math.round(palette[0] / 17); const g = Math.round(palette[1] / 17); @@ -133,10 +146,12 @@ async function main(argv) { startIndex = getArg(argv, '--start-index', x => parseInt(x, 10), 0); asTileData = getArg(argv, '--as-tile-data', null, 0); - maxTiles = getArg(argv, '--max-tiles', x => parseInt(x, 10), 64); + maxTiles = getArg(argv, '--max-tiles', x => parseInt(x, 10), 511); transparentColor = getArg(argv, '--transparent-color-index', x => parseInt(x, 10), -1); - transparentIndex = transparentColor; + if (transparentColor !== -1) { + transparentIndex = transparentColor; + } console.info(`; startIndex = ${startIndex}`); @@ -150,6 +165,17 @@ async function main(argv) { return; } + // Get the RGB triplets from the palette + const palette = png.palette.map(c => paletteToHexString(c)); + transparentColorTriple = getArg(argv, '--transparent-color', x => x, null); + if (transparentColorTriple) { + console.log('; Looking for transparent color', transparentColorTriple); + transparentIndex = palette.findIndex(p => p === transparentColorTriple); + if (transparentIndex !== -1) { + console.log('; found color at palette index', transparentIndex); + } + } + // Dump the palette in IIgs hex format console.log('; Palette:'); const hexCodes = png.palette.map(c => '$' + paletteToIIgs(c)); @@ -277,12 +303,10 @@ function buildTile(buff, width, x, y, transparentIndex = -1) { function buildTiles(buff, width, transparentIndex = -1) { const tiles = []; - const MAX_TILES = 240; - let count = 0; for (let y = 0; ; y += 8) { for (let x = 0; x < width; x += 4, count += 1) { - if (count >= MAX_TILES) { + if (count >= maxTiles) { return tiles; } const tile = buildTile(buff, width, x, y, transparentIndex); diff --git a/tools/tiled2iigs.js b/tools/tiled2iigs.js index 70f7ead..0fa3f7a 100644 --- a/tools/tiled2iigs.js +++ b/tools/tiled2iigs.js @@ -197,6 +197,9 @@ function findAnimatedTiles(tileset) { return animations; } +// Global reference object +let GLOBALS = {}; + /** * Command line arguments * @@ -246,6 +249,13 @@ async function main(argv) { // Load up any/all tilesets const tileSets = await Promise.all(doc.tilesets.map(tileset => loadTileset(workdir, tileset))); + // Create a global reference object + GLOBALS = { + outdir, + tileSets, + tileLayers + }; + // Save all of the tilesets let bg0TileSet = null; @@ -396,9 +406,17 @@ function convertTileID(tileId, tileset) { throw new Error('A maximum of 511 tiles are supported'); } + if (tileIndex === 0) { + // This should be a warning + return 0; + } + // The tileId starts at one, but the tile set starts at zero. It's ok when we export, // because a special zero tile is inserted, but we have to manually adjust here - const mask_bit = !tileset[tileIndex - 1].isSolid; + if (!tileset[tileIndex - 1]) { + throw new Error(`Tileset for tileId ${tileIndex} is underinfed`); + } + const mask_bit = (!tileset[tileIndex - 1].isSolid) && (GLOBALS.tileLayers.length !== 1); // Build up a partial set of control bits let control_bits = (mask_bit ? GTE_MASK_BIT : 0) + (hflip ? GTE_HFLIP_BIT : 0) + (vflip ? GTE_VFLIP_BIT : 0);