start working on the tile drawing engine

Signed-off-by: Jessie Williams <quorawings@gmail.com>
This commit is contained in:
Jessie Williams 2022-03-12 22:22:48 -05:00
parent dcfeebfbb0
commit e663014231
9 changed files with 399 additions and 8 deletions

32
levels/demo.json Normal file
View File

@ -0,0 +1,32 @@
{ "compressionlevel":-1,
"height":20,
"infinite":false,
"layers":[
{
"data":[38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 201, 202, 38, 38, 38, 38, 38, 38, 38, 38, 38, 201, 202, 38, 38, 38, 38, 38, 38, 38, 225, 226, 38, 38, 38, 38, 38, 38, 38, 38, 38, 225, 226, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 201, 202, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 225, 226, 38, 38, 1, 2, 3, 4, 3, 4, 5, 6, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 25, 26, 247, 248, 251, 76, 29, 30, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 49, 76, 271, 272, 76, 76, 53, 54, 38, 38, 38, 38, 38, 38, 38, 10, 9, 10, 9, 10, 73, 76, 275, 76, 76, 251, 77, 78, 9, 10, 9, 10, 9, 10, 9, 34, 33, 34, 33, 34, 49, 76, 249, 250, 76, 76, 53, 54, 33, 34, 33, 34, 33, 34, 33, 38, 38, 38, 38, 38, 73, 76, 76, 76, 76, 249, 77, 78, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 97, 98, 251, 100, 99, 273, 101, 102, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 121, 122, 123, 124, 123, 124, 125, 126, 38, 38, 38, 38, 201, 202, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 225, 226, 38, 38, 38, 38, 38, 201, 202, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 225, 226, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 201, 202, 38, 38, 38, 38, 201, 202, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 225, 226, 38, 38, 38, 38, 225, 226, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38],
"height":20,
"id":1,
"name":"Tile Layer 1",
"opacity":1,
"type":"tilelayer",
"visible":true,
"width":20,
"x":0,
"y":0
}],
"nextlayerid":2,
"nextobjectid":1,
"orientation":"orthogonal",
"renderorder":"right-down",
"tiledversion":"1.8.2",
"tileheight":8,
"tilesets":[
{
"firstgid":1,
"source":"..\/sprites\/TownTiles.tsx"
}],
"tilewidth":8,
"type":"map",
"version":"1.8",
"width":20
}

31
levels/demo.tmx Normal file
View File

@ -0,0 +1,31 @@
<?xml version="1.0" encoding="UTF-8"?>
<map version="1.8" tiledversion="1.8.2" orientation="orthogonal" renderorder="right-down" width="20" height="20" tilewidth="8" tileheight="8" infinite="0" nextlayerid="2" nextobjectid="1">
<editorsettings>
<export target="demo.json" format="json"/>
</editorsettings>
<tileset firstgid="1" source="../sprites/TownTiles.tsx"/>
<layer id="1" name="Tile Layer 1" width="20" height="20">
<data encoding="csv">
38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,
38,38,38,38,38,201,202,38,38,38,38,38,38,38,38,38,201,202,38,38,
38,38,38,38,38,225,226,38,38,38,38,38,38,38,38,38,225,226,38,38,
38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,
38,201,202,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,
38,225,226,38,38,1,2,3,4,3,4,5,6,38,38,38,38,38,38,38,
38,38,38,38,38,25,26,247,248,251,76,29,30,38,38,38,38,38,38,38,
38,38,38,38,38,49,76,271,272,76,76,53,54,38,38,38,38,38,38,38,
10,9,10,9,10,73,76,275,76,76,251,77,78,9,10,9,10,9,10,9,
34,33,34,33,34,49,76,249,250,76,76,53,54,33,34,33,34,33,34,33,
38,38,38,38,38,73,76,76,76,76,249,77,78,38,38,38,38,38,38,38,
38,38,38,38,38,97,98,251,100,99,273,101,102,38,38,38,38,38,38,38,
38,38,38,38,38,121,122,123,124,123,124,125,126,38,38,38,38,201,202,38,
38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,225,226,38,
38,38,38,38,201,202,38,38,38,38,38,38,38,38,38,38,38,38,38,38,
38,38,38,38,225,226,38,38,38,38,38,38,38,38,38,38,38,38,38,38,
38,38,38,38,38,38,38,38,38,201,202,38,38,38,38,201,202,38,38,38,
38,38,38,38,38,38,38,38,38,225,226,38,38,38,38,225,226,38,38,38,
38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,
38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38
</data>
</layer>
</map>

BIN
sprites/TownTiles.ase Normal file

Binary file not shown.

BIN
sprites/TownTiles.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

4
sprites/TownTiles.tsx Normal file
View File

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<tileset version="1.8" tiledversion="1.8.2" name="TownTiles" tilewidth="8" tileheight="8" tilecount="288" columns="24">
<image source="TownTiles.png" width="192" height="96"/>
</tileset>

BIN
sprites/frame.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

View File

@ -70,9 +70,9 @@ impl Game {
self.mara_position.x = 144; self.mara_position.x = 144;
self.bonk(); self.bonk();
} }
if self.mara_dir == Down && self.mara_position.y >= 120 { if self.mara_dir == Down && self.mara_position.y >= 144 {
self.mara_speed = 0; self.mara_speed = 0;
self.mara_position.y = 120; self.mara_position.y = 144;
self.bonk(); self.bonk();
} }
if self.mara_dir == Left && self.mara_position.x <= 0 { if self.mara_dir == Left && self.mara_position.x <= 0 {
@ -80,7 +80,7 @@ impl Game {
self.mara_position.x = 0; self.mara_position.x = 0;
self.bonk(); self.bonk();
} }
if self.mara_dir == Up && self.mara_position.y <= 80 { if self.mara_dir == Up && self.mara_position.y <= 0 {
self.mara_speed = 0; self.mara_speed = 0;
self.mara_position.y = 80; self.mara_position.y = 80;
self.bonk(); self.bonk();
@ -161,8 +161,21 @@ impl Game {
} }
// draw // draw
sprites::TITLE.draw((7, 3).into(), 0); //sprites::TITLE.draw((7, 3).into(), 0);
sprites::SUBTITLE.draw((0, 52).into(), 0); //sprites::SUBTITLE.draw((0, 52).into(), 0);
/*palette::set_draw_color(0x4321);
blit_sub(
&sprites::TOWN_TILES,
0,
0,
6*8,
6*8,
0,
0,
sprites::TOWN_TILES_WIDTH,
sprites::TOWN_TILES_FLAGS,
);*/
for i in 0..self.gate_count { for i in 0..self.gate_count {
let mut gate = self.gate_pos.clone(); let mut gate = self.gate_pos.clone();
@ -178,7 +191,7 @@ impl Game {
); );
palette::set_draw_color(4); palette::set_draw_color(4);
text("Press x\nFrom Within 2022", 10, 144); //text(" Press x\nFrom Within 2022", 10, 144);
sprites::MARA.draw(self.mara_dir, self.mara_frame, self.mara_position, 0); sprites::MARA.draw(self.mara_dir, self.mara_frame, self.mara_position, 0);
} }
@ -186,7 +199,7 @@ impl Game {
#[no_mangle] #[no_mangle]
unsafe fn start() { unsafe fn start() {
palette::en4(); palette::t_lollipop();
GAME.rng = Some(Rng::with_seed(420)); GAME.rng = Some(Rng::with_seed(420));
// GAME.song.pause(); // GAME.song.pause();
} }

0
src/sh0rk/text.rs Normal file
View File

View File

@ -29,7 +29,7 @@ pub const MAI: Sprite<64> = Sprite {
pub const MARA: SpriteAtlas<384> = SpriteAtlas { pub const MARA: SpriteAtlas<384> = SpriteAtlas {
atlas: Sprite { atlas: Sprite {
palette: 0x3210, palette: 0x4210,
width: 96, width: 96,
height: 16, height: 16,
flags: BLIT_2BPP, flags: BLIT_2BPP,
@ -166,3 +166,314 @@ pub const TITLE: Sprite<864> = Sprite {
0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x60,
], ],
}; };
// TownTiles
pub const TOWN_TILES_WIDTH: u32 = 192;
pub const TOWN_TILES_HEIGHT: u32 = 96;
pub const TOWN_TILES_FLAGS: u32 = 1; // BLIT_2BPP
pub const TOWN_TILES: [u8; 4608] = [
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff,
0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf5, 0x55, 0x55, 0x55,
0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x40, 0x00,
0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x0f, 0xff, 0xff, 0xff,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd5, 0x55, 0x55, 0x55,
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
0x39, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x6c, 0x39, 0x55, 0x55, 0x55,
0x00, 0x00, 0x15, 0x14, 0x01, 0x50, 0x05, 0x40, 0x14, 0x54, 0x00, 0x00, 0xd5, 0x55, 0x55, 0x55,
0x00, 0x40, 0x00, 0x10, 0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
0xe6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x9b, 0xe6, 0xff, 0xff, 0xff,
0x00, 0x50, 0x41, 0x6b, 0x06, 0xa4, 0x1a, 0x90, 0xe9, 0x41, 0x05, 0x00, 0xd5, 0x55, 0x55, 0x55,
0x00, 0x40, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
0xdf, 0xaa, 0x7a, 0xa7, 0xaa, 0x7a, 0xa7, 0xaa, 0x7a, 0xa7, 0xab, 0xf7, 0xdf, 0xff, 0xaa, 0xaa,
0x00, 0x55, 0x06, 0xbf, 0x9b, 0xf9, 0x6f, 0xe5, 0xfe, 0x90, 0x55, 0x00, 0xd5, 0x55, 0x55, 0x55,
0x00, 0x40, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
0xfb, 0xaa, 0x7a, 0xa7, 0xaa, 0x7a, 0xa7, 0xaa, 0x7a, 0xa7, 0xaa, 0xef, 0xfb, 0xfa, 0xaa, 0xaa,
0x01, 0x41, 0x5b, 0xeb, 0xae, 0xae, 0xba, 0xba, 0xeb, 0xe5, 0x41, 0x40, 0xd5, 0x55, 0x55, 0x55,
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
0xdb, 0xaa, 0x7a, 0xa7, 0xaa, 0x7a, 0xa7, 0xaa, 0x7a, 0xa7, 0xaa, 0xdb, 0xdb, 0xea, 0xaa, 0xaa,
0x01, 0x45, 0x6e, 0xaa, 0xfa, 0xab, 0xea, 0xaf, 0xaa, 0xb9, 0x51, 0x40, 0xc0, 0x00, 0x00, 0x00,
0x00, 0x00, 0x40, 0x00, 0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
0xdb, 0xaa, 0x7a, 0xa7, 0xaa, 0x7a, 0xa7, 0xaa, 0x7a, 0xa7, 0xaa, 0xdb, 0xdb, 0xaa, 0xaa, 0xaa,
0x01, 0x15, 0xba, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xae, 0x54, 0x40, 0xd5, 0x55, 0x55, 0x55,
0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
0xdb, 0xaa, 0x7a, 0xa7, 0xaa, 0x7a, 0xa7, 0xaa, 0x7a, 0xa7, 0xaa, 0xdb, 0xdb, 0xaa, 0xaa, 0xaa,
0x00, 0x16, 0xba, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xae, 0x94, 0x00, 0xea, 0xaa, 0xaa, 0xaa,
0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
0xdb, 0xaa, 0x7a, 0xa7, 0xaa, 0x7a, 0xa7, 0xaa, 0x7a, 0xa7, 0xaa, 0xdb, 0xdb, 0xaa, 0xaa, 0xaa,
0x00, 0x1b, 0xea, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xab, 0xe4, 0x00, 0xff, 0xff, 0xff, 0xff,
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
0xdb, 0xaa, 0x7a, 0xa7, 0xaa, 0x7a, 0xa7, 0xaa, 0x7a, 0xa7, 0xaa, 0xdb, 0xdb, 0xaa, 0xaa, 0xaa,
0x00, 0x2e, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xb8, 0x00, 0xd5, 0x55, 0x95, 0x55,
0x00, 0x40, 0x00, 0x10, 0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
0xdb, 0xaa, 0x7a, 0xa7, 0xaa, 0x7a, 0xa7, 0xaa, 0x7a, 0xa7, 0xaa, 0xdb, 0xdb, 0xaa, 0xaa, 0xaa,
0x00, 0x6e, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xb9, 0x00, 0xd5, 0x55, 0x95, 0x55,
0x00, 0x40, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
0xdb, 0xaa, 0x7a, 0xa7, 0xaa, 0x7a, 0xa7, 0xaa, 0x7a, 0xa7, 0xaa, 0xdb, 0xdb, 0xaa, 0xaa, 0xaa,
0x01, 0xba, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xae, 0x40, 0xea, 0xaa, 0xea, 0xaa,
0x00, 0x40, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
0xdb, 0xaa, 0x7a, 0xa7, 0xaa, 0x7a, 0xa7, 0xaa, 0x7a, 0xa7, 0xaa, 0xdb, 0xdb, 0xaa, 0xaa, 0xaa,
0x01, 0xba, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xae, 0x40, 0xea, 0xaa, 0xea, 0xaa,
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
0xdb, 0xaa, 0x7a, 0xa7, 0xaa, 0x7a, 0xa7, 0xaa, 0x7a, 0xa7, 0xaa, 0xdb, 0xdb, 0xaa, 0xaa, 0xaa,
0x00, 0xfe, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xbf, 0x00, 0xea, 0xaa, 0xea, 0xaa,
0x00, 0x00, 0x40, 0x00, 0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
0xdb, 0xaa, 0x7a, 0xa7, 0xaa, 0x7a, 0xa7, 0xaa, 0x7a, 0xa7, 0xaa, 0xdb, 0xdb, 0xaa, 0xaa, 0xaa,
0x00, 0x1b, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xe8, 0x00, 0x00, 0x00, 0x00, 0x00,
0x50, 0x01, 0x14, 0x00, 0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
0xdb, 0xaa, 0x7a, 0xa7, 0xaa, 0x7a, 0xa7, 0xaa, 0x7a, 0xa7, 0xaa, 0xdb, 0xdb, 0xaa, 0xaa, 0xaa,
0x00, 0x1b, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xe4, 0x00, 0x15, 0x55, 0x55, 0x54,
0x54, 0x15, 0x54, 0x01, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x40, 0x00,
0xdb, 0xaa, 0x7a, 0xa7, 0xaa, 0x7a, 0xa7, 0xaa, 0x7a, 0xa7, 0xaa, 0xdb, 0xdb, 0xaa, 0xaa, 0xaa,
0x00, 0x6e, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xb9, 0x00, 0x10, 0x00, 0x00, 0x04,
0x41, 0x50, 0x15, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x50, 0x00,
0xdb, 0xaa, 0x7a, 0xa7, 0xaa, 0x7a, 0xa7, 0xaa, 0x7a, 0xa7, 0xaa, 0xdb, 0xdb, 0xaa, 0xaa, 0xaa,
0x01, 0xba, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xae, 0x40, 0x11, 0x55, 0x55, 0x44,
0x01, 0x40, 0x05, 0x54, 0x00, 0x00, 0x00, 0x00, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
0xdb, 0xaa, 0x7a, 0xa7, 0xaa, 0x7a, 0xa7, 0xaa, 0x7a, 0xa7, 0xaa, 0xdb, 0xff, 0xff, 0xff, 0xff,
0x01, 0xba, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xae, 0x40, 0x11, 0x00, 0x00, 0x44,
0x01, 0x40, 0x01, 0x05, 0xaa, 0xaa, 0xaa, 0xaa, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11,
0xeb, 0xaa, 0x7a, 0xa7, 0xaa, 0x7a, 0xa7, 0xaa, 0x7a, 0xa7, 0xaa, 0xeb, 0xfa, 0xaa, 0xaa, 0xaa,
0x01, 0xba, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xae, 0x40, 0x11, 0x00, 0x00, 0x44,
0x41, 0x00, 0x04, 0x01, 0x55, 0x55, 0x55, 0x55, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe5, 0x55, 0x55, 0x55,
0x00, 0x6e, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xb9, 0x00, 0x11, 0x00, 0x00, 0x44,
0x55, 0x40, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
0xd5, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x57, 0xfa, 0xaa, 0xaa, 0xaa,
0x00, 0x1b, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xe4, 0x00, 0x11, 0x00, 0x00, 0x44,
0x40, 0x10, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
0xea, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xab, 0xff, 0xff, 0xaa, 0xbf,
0x00, 0x1b, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xe4, 0x00, 0x11, 0x00, 0x00, 0x44,
0x00, 0x11, 0x41, 0x01, 0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x00, 0x6e, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xb9, 0x00, 0x11, 0x00, 0x00, 0x44,
0x00, 0x04, 0x00, 0x41, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xdb, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xe7, 0xdb, 0xff, 0xff, 0xff,
0x01, 0xba, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xae, 0x40, 0x11, 0x00, 0x00, 0x44,
0x00, 0x04, 0x00, 0x45, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xdb, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xe7, 0xdb, 0x6d, 0x76, 0xdb,
0x01, 0xba, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xae, 0x40, 0x11, 0x00, 0x00, 0x44,
0x00, 0x05, 0x01, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xdb, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xe7, 0xdb, 0xbe, 0xbb, 0xeb,
0x01, 0xba, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xae, 0x40, 0x11, 0x55, 0x55, 0x44,
0x00, 0x15, 0x55, 0x50, 0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdb, 0xff, 0xff, 0xff,
0x00, 0x6e, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xb9, 0x00, 0x10, 0x00, 0x00, 0x04,
0x41, 0x54, 0x15, 0x05, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xd5, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x57, 0xdb, 0xb5, 0xe7, 0x6d,
0x00, 0x1b, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xe4, 0x00, 0x15, 0x55, 0x55, 0x54,
0x54, 0x14, 0x04, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xea, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xab, 0xdb, 0xba, 0xfb, 0xae,
0x00, 0x2b, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xe4, 0x00, 0x00, 0x00, 0x00, 0x00,
0x10, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdb, 0xff, 0xff, 0xff,
0x00, 0xfe, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x06, 0x06, 0x06, 0x06, 0x40, 0x10, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
0xdb, 0xaa, 0xaa, 0xaa, 0xaf, 0xff, 0xff, 0xfa, 0xaa, 0xaa, 0xaa, 0xdb, 0xdb, 0xb5, 0xeb, 0x5d,
0x01, 0xba, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xae, 0x40, 0x00, 0x00, 0x00, 0x00,
0x05, 0x00, 0x00, 0x00, 0x06, 0x06, 0x06, 0x06, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00,
0xdb, 0xbf, 0xff, 0xff, 0xbf, 0x55, 0x55, 0xfe, 0xff, 0xff, 0xfe, 0xdb, 0xdb, 0xfa, 0xeb, 0xfe,
0x01, 0xba, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xae, 0x40, 0x00, 0x00, 0x00, 0x00,
0x05, 0x41, 0x40, 0x50, 0x06, 0x06, 0x06, 0x06, 0x04, 0x00, 0x40, 0x04, 0x00, 0x00, 0x00, 0x00,
0xdb, 0xba, 0x55, 0x6b, 0xbd, 0xaa, 0xaa, 0x7e, 0xe9, 0x55, 0xae, 0xdb, 0xdb, 0x7f, 0xff, 0xef,
0x00, 0x6e, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0x41, 0x51, 0x50, 0x06, 0x06, 0x06, 0x06, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00,
0xdb, 0xbf, 0xff, 0xff, 0xb6, 0xaa, 0xaa, 0x9e, 0xff, 0xff, 0xfe, 0xdb, 0xdb, 0xbf, 0x55, 0x7d,
0x00, 0x2e, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x01, 0x40, 0x06, 0x06, 0x06, 0x06, 0x40, 0x10, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
0xdb, 0xb5, 0x55, 0x57, 0xb6, 0x55, 0x55, 0xbe, 0xd5, 0x55, 0x5e, 0xdb, 0xdb, 0xb6, 0xff, 0xe7,
0x00, 0x1b, 0xea, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xab, 0xe4, 0x00, 0x01, 0x00, 0x01, 0x00,
0x05, 0x01, 0x40, 0x05, 0x06, 0x06, 0x06, 0x06, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00,
0xdb, 0xb4, 0x00, 0x07, 0xf6, 0xff, 0xff, 0xaf, 0xd0, 0x00, 0x1e, 0xdb, 0xdb, 0xdb, 0x4c, 0x79,
0x00, 0x16, 0xba, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xae, 0x94, 0x00, 0x00, 0x00, 0x00, 0x00,
0x05, 0x45, 0x40, 0x15, 0x06, 0x06, 0x06, 0x06, 0x04, 0x00, 0x40, 0x04, 0x00, 0x55, 0x55, 0x50,
0xdb, 0xb0, 0x01, 0x03, 0xf6, 0xaa, 0xaa, 0xbf, 0xc0, 0x40, 0x0e, 0xdb, 0xdb, 0xdd, 0x0c, 0x1d,
0x01, 0x15, 0xba, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xae, 0x54, 0x40, 0x00, 0x00, 0x00, 0x00,
0x01, 0x45, 0x00, 0x14, 0x06, 0x06, 0x06, 0x06, 0x55, 0x55, 0x55, 0x55, 0x00, 0x55, 0x55, 0x50,
0xdb, 0xb0, 0x40, 0x43, 0xf6, 0xaa, 0xaa, 0xaf, 0xc1, 0x01, 0x0e, 0xdb, 0xdb, 0xdf, 0xff, 0xfd,
0x01, 0x45, 0x6e, 0xaa, 0xfa, 0xab, 0xea, 0xaf, 0xaa, 0xb9, 0x51, 0x40, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x06, 0x06, 0x06, 0x06, 0x40, 0x10, 0x01, 0x00, 0x00, 0x55, 0x55, 0x50,
0xdb, 0xb0, 0x10, 0x03, 0xb6, 0xaa, 0xa7, 0xbe, 0xc0, 0x04, 0x0e, 0xdb, 0xdb, 0xdc, 0x0d, 0x0d,
0x01, 0x41, 0x5b, 0xeb, 0xae, 0xae, 0xba, 0xba, 0xeb, 0xe5, 0x41, 0x40, 0x00, 0x00, 0x00, 0x00,
0x00, 0x05, 0x01, 0x40, 0x06, 0x06, 0x06, 0x06, 0x55, 0x55, 0x55, 0x55, 0x00, 0x55, 0x55, 0x50,
0xdb, 0xb0, 0x00, 0x03, 0xb6, 0xaa, 0xaf, 0xae, 0xc0, 0x00, 0x0e, 0xdb, 0xdb, 0xec, 0x1c, 0x0e,
0x00, 0x55, 0x06, 0xbf, 0x9b, 0xf9, 0x6f, 0xe5, 0xfe, 0x90, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x05, 0x45, 0x40, 0x06, 0x06, 0x06, 0x06, 0x04, 0x00, 0x40, 0x04, 0x00, 0x00, 0x00, 0x00,
0xdb, 0xbf, 0xff, 0xff, 0xb6, 0xaa, 0xaa, 0xbe, 0xff, 0xff, 0xfe, 0xdb, 0xdb, 0xef, 0xff, 0xfe,
0x00, 0x50, 0x41, 0x6b, 0x06, 0xa4, 0x1a, 0x90, 0xe9, 0x41, 0x05, 0x00, 0x00, 0x10, 0x00, 0x10,
0x00, 0x00, 0x05, 0x00, 0x06, 0x06, 0x06, 0x06, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00,
0xdb, 0xba, 0x55, 0x6b, 0xb6, 0xaa, 0xaa, 0xae, 0xe9, 0x55, 0xae, 0xdb, 0xdb, 0x79, 0x6a, 0x5b,
0x00, 0x00, 0x15, 0x14, 0x01, 0x50, 0x05, 0x40, 0x14, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x14, 0x05, 0x00, 0x14, 0x06, 0x06, 0x06, 0x06, 0x40, 0x10, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
0xdb, 0xbf, 0xff, 0xff, 0xb6, 0x55, 0x55, 0xbe, 0xff, 0xff, 0xfe, 0xdb, 0xdb, 0x7f, 0xff, 0xfd,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x15, 0x15, 0x00, 0x54, 0x06, 0x06, 0x06, 0x06, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00,
0xdb, 0x95, 0x55, 0x55, 0xb6, 0xff, 0xff, 0xae, 0x55, 0x55, 0x56, 0xdb, 0xdb, 0xba, 0xeb, 0xae,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x05, 0x14, 0x00, 0x50, 0x06, 0x06, 0x06, 0x06, 0x04, 0x00, 0x40, 0x04, 0x00, 0x00, 0x00, 0x00,
0xdb, 0xff, 0xff, 0xff, 0xfe, 0xaa, 0xaa, 0xbf, 0xff, 0xff, 0xff, 0xdb, 0xdb, 0xff, 0xff, 0xff,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x06, 0x06, 0x06, 0x06, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00,
0xbf, 0xaa, 0xaa, 0xaa, 0xbf, 0xff, 0xff, 0xfe, 0xaa, 0xaa, 0xaa, 0xfe, 0xbf, 0xaa, 0xaa, 0xaa,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x90, 0x90, 0x90, 0x90, 0x40, 0x10, 0x01, 0x00, 0xea, 0xaa, 0xea, 0xaa,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xc0, 0x00, 0x00,
0x05, 0x40, 0x54, 0x05, 0x40, 0x54, 0x05, 0x40, 0x54, 0x05, 0x40, 0x54, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x90, 0x90, 0x90, 0x90, 0x55, 0x55, 0x55, 0x55, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0xfd, 0x14, 0x15, 0xbf, 0x00, 0x00,
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x90, 0x90, 0x90, 0x90, 0x04, 0x00, 0x40, 0x04, 0xd5, 0x55, 0x55, 0x55,
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x6c, 0x00, 0x0f, 0x40, 0x00, 0x10, 0x56, 0xf0, 0x00,
0x50, 0x15, 0x01, 0x50, 0x15, 0x01, 0x50, 0x15, 0x01, 0x50, 0x15, 0x01, 0x00, 0x00, 0x00, 0x00,
0x00, 0x01, 0x00, 0x10, 0x90, 0x90, 0x90, 0x90, 0x55, 0x55, 0x55, 0x55, 0xd5, 0x55, 0x55, 0x55,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x9b, 0x00, 0xf4, 0x00, 0x00, 0x00, 0x55, 0x6f, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x10, 0x90, 0x90, 0x90, 0x90, 0x11, 0x11, 0x11, 0x11, 0xea, 0xaa, 0xaa, 0xaa,
0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xff, 0xf7, 0x03, 0x40, 0x00, 0x00, 0x01, 0x55, 0xab, 0xc0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40,
0x01, 0x00, 0x00, 0x00, 0x90, 0x90, 0x90, 0x90, 0x44, 0x44, 0x44, 0x44, 0xea, 0xaa, 0xaa, 0xaa,
0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaf, 0xef, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x41, 0x6a, 0xf0,
0x01, 0x50, 0x15, 0x01, 0x50, 0x15, 0x01, 0x50, 0x15, 0x01, 0x50, 0x15, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x10, 0x00, 0x90, 0x90, 0x90, 0x90, 0x55, 0x55, 0x55, 0x55, 0xea, 0xaa, 0xaa, 0xaa,
0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xab, 0xdb, 0x34, 0x00, 0x00, 0x00, 0x00, 0x01, 0x56, 0xbc,
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x10, 0x00, 0x90, 0x90, 0x90, 0x90, 0x55, 0x55, 0x55, 0x55, 0xea, 0xaa, 0xaa, 0xaa,
0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xdb, 0x30, 0x00, 0x00, 0x00, 0x00, 0x15, 0x55, 0xac,
0x54, 0x05, 0x40, 0x54, 0x05, 0x40, 0x54, 0x05, 0x40, 0x54, 0x05, 0x40, 0x00, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x04, 0x90, 0x90, 0x90, 0x90, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff,
0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xdb, 0xd0, 0x00, 0x00, 0x00, 0x01, 0x05, 0x59, 0x5f,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x90, 0x90, 0x90, 0x90, 0x00, 0x00, 0x00, 0x00, 0xd5, 0x55, 0x95, 0x55,
0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xdb, 0xd4, 0x00, 0x00, 0x00, 0x01, 0x01, 0x59, 0x5b,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x01, 0x00, 0x00, 0x90, 0x90, 0x90, 0x90, 0x00, 0x00, 0x00, 0x00, 0xd5, 0x55, 0x95, 0x55,
0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xdb, 0xd0, 0x00, 0x00, 0x00, 0x41, 0x41, 0x55, 0xab,
0x05, 0x40, 0x54, 0x05, 0x40, 0x54, 0x05, 0x40, 0x54, 0x05, 0x40, 0x54, 0x04, 0x00, 0x04, 0x00,
0x00, 0x00, 0x00, 0x00, 0x90, 0x90, 0x90, 0x90, 0x00, 0x00, 0x00, 0x00, 0xea, 0xaa, 0xea, 0xaa,
0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xdb, 0xd0, 0x41, 0x00, 0x00, 0x40, 0x55, 0x69, 0xab,
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00,
0x01, 0x00, 0x01, 0x00, 0x90, 0x90, 0x90, 0x90, 0x00, 0x00, 0x00, 0x00, 0xea, 0xaa, 0xea, 0xaa,
0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xdb, 0xd5, 0x01, 0x41, 0x10, 0x50, 0x55, 0x6a, 0xbf,
0x50, 0x15, 0x01, 0x50, 0x15, 0x01, 0x50, 0x15, 0x01, 0x50, 0x15, 0x01, 0x00, 0x00, 0x00, 0x00,
0x01, 0x04, 0x01, 0x00, 0x90, 0x90, 0x90, 0x90, 0x00, 0x00, 0x00, 0x00, 0xea, 0xaa, 0xea, 0xaa,
0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xdb, 0xe5, 0x05, 0x01, 0x40, 0x55, 0x59, 0x5a, 0xab,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x90, 0x90, 0x90, 0x90, 0x00, 0x00, 0x00, 0x00, 0xfa, 0xaa, 0xea, 0xaa,
0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xdb, 0xe9, 0x55, 0x05, 0x41, 0x55, 0x56, 0x56, 0xfb,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x90, 0x90, 0x90, 0x90, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff,
0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xdb, 0xe9, 0x59, 0x55, 0x55, 0x55, 0x95, 0x96, 0xbf,
0x05, 0x40, 0x54, 0x05, 0x40, 0x54, 0x05, 0x40, 0x54, 0x05, 0x40, 0x54, 0x55, 0x55, 0x55, 0x55,
0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xdb, 0xfa, 0x59, 0x65, 0x55, 0xa5, 0xa5, 0xaa, 0xaf,
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x5f,
0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xdb, 0x3e, 0xb9, 0x59, 0x65, 0x65, 0x6a, 0xbe, 0xbc,
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x57,
0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xdb, 0x3f, 0xf6, 0x59, 0xa9, 0x69, 0x6a, 0xaf, 0xfc,
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x57,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0xea, 0xe5, 0x6a, 0x9a, 0xaa, 0xab, 0xf0,
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
0x00, 0x04, 0x01, 0x00, 0xff, 0xff, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x57,
0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaf, 0x03, 0xff, 0x99, 0x6a, 0xaa, 0xaf, 0xaf, 0xc0,
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
0x00, 0x05, 0x11, 0x00, 0xff, 0xff, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x57,
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x5b, 0x03, 0xff, 0xae, 0xae, 0xaf, 0xab, 0xff, 0xc0,
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
0x00, 0x01, 0x11, 0x00, 0xff, 0xff, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x57,
0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaf, 0x00, 0xef, 0xfe, 0xaf, 0xab, 0xff, 0xfb, 0x00,
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
0xea, 0xaa, 0xbf, 0xea, 0xaf, 0xea, 0xff, 0xff, 0x00, 0x3a, 0xff, 0xff, 0xff, 0xff, 0xac, 0x00,
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x57,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x0f, 0xab, 0xff, 0xff, 0xea, 0xf0, 0x00,
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xab,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdb, 0x00, 0x0f, 0xfa, 0xba, 0xeb, 0xef, 0xf0, 0x00,
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
0x00, 0x40, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x5e, 0x75, 0xdb, 0x5d, 0xb5, 0xe7, 0x9d, 0xdb, 0x00, 0x3f, 0xff, 0xfa, 0xff, 0xbf, 0xfc, 0x00,
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
0x01, 0x04, 0x04, 0x00, 0xff, 0xff, 0xff, 0xff, 0x55, 0x56, 0x55, 0x55, 0x55, 0x56, 0x55, 0x57,
0xaf, 0xba, 0xef, 0xae, 0xfa, 0xfb, 0xee, 0xdb, 0x00, 0xf1, 0xab, 0xff, 0xff, 0xf9, 0x4f, 0x00,
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
0x01, 0x10, 0x01, 0x10, 0xff, 0xff, 0xff, 0xff, 0x55, 0x56, 0x55, 0x55, 0x55, 0x56, 0x55, 0x57,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdb, 0x00, 0xc6, 0xbe, 0xbf, 0xff, 0xbe, 0x93, 0x00,
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
0x01, 0x10, 0x01, 0x10, 0xff, 0xff, 0xff, 0xff, 0xaa, 0xab, 0xaa, 0xaa, 0xaa, 0xab, 0xaa, 0xab,
0xb5, 0xdb, 0x5d, 0xb9, 0xdb, 0x5d, 0xb6, 0xdb, 0x03, 0x1a, 0xfa, 0xf1, 0xaf, 0xaf, 0xa4, 0xc0,
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xaa, 0xab, 0xaa, 0xaa, 0xaa, 0xab, 0xaa, 0xab,
0xfa, 0xef, 0xae, 0xfa, 0xef, 0xbf, 0xbb, 0xdb, 0x03, 0xab, 0xff, 0xc5, 0xab, 0xff, 0xe9, 0xc0,
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xaa, 0xab, 0xaa, 0xaa, 0xaa, 0xab, 0xaa, 0xab,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdb, 0x03, 0xff, 0xf0, 0xff, 0xff, 0x0f, 0xff, 0xc0,
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xaa, 0xaa, 0xaa, 0xaa,
0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xab, 0xaa, 0xaa, 0xaa, 0xab, 0xaa, 0xab,
0x7f, 0xff, 0xff, 0xfd, 0x75, 0xeb, 0x5e, 0xdb, 0x57, 0xff, 0xff, 0xd5, 0x57, 0xff, 0xff, 0xd5,
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xaa, 0xaa, 0xaa, 0xaa,
0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xbf, 0x55, 0x55, 0xfe, 0xbf, 0xeb, 0xaf, 0xdb, 0x5f, 0x6a, 0xa9, 0xf5, 0x5f, 0x55, 0x55, 0xf5,
0x54, 0x15, 0x55, 0x55, 0x54, 0x15, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xa9, 0x6a, 0xaa, 0xaa,
0xa9, 0x6a, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x95, 0x55, 0x55, 0x56, 0x55, 0x55, 0x55, 0x57,
0xfd, 0xaa, 0xaa, 0x7f, 0xfb, 0xff, 0xfd, 0xdb, 0x7d, 0xaf, 0xfa, 0x7d, 0x7d, 0xaa, 0xaa, 0x7d,
0x41, 0x41, 0x55, 0x55, 0x51, 0x45, 0x55, 0x55, 0x54, 0x15, 0x55, 0x55, 0x96, 0x96, 0xaa, 0xaa,
0xa6, 0x9a, 0xaa, 0xaa, 0xa9, 0x6a, 0xaa, 0xaa, 0x95, 0x55, 0x55, 0x56, 0x55, 0x55, 0x55, 0x57,
0x76, 0xaa, 0xaa, 0x9d, 0x7d, 0x55, 0xfe, 0xdb, 0x76, 0xbf, 0xfe, 0x9d, 0x76, 0xaa, 0xaa, 0x9d,
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x54, 0x15, 0x55, 0x55, 0x54, 0x15, 0xaa, 0xaa, 0xaa, 0xaa,
0xaa, 0xaa, 0xa9, 0x6a, 0xaa, 0xaa, 0xa9, 0x6a, 0xea, 0xaa, 0xaa, 0xab, 0xaa, 0xaa, 0xaa, 0xab,
0xb6, 0x55, 0x55, 0xbe, 0xdb, 0xff, 0x9e, 0xdb, 0x7a, 0xff, 0xff, 0xad, 0x76, 0x55, 0x55, 0xbd,
0x55, 0x55, 0x54, 0x15, 0x55, 0x55, 0x51, 0x45, 0x55, 0x55, 0x41, 0x41, 0xaa, 0xaa, 0xa9, 0x6a,
0xaa, 0xaa, 0xa6, 0x9a, 0xaa, 0xaa, 0x96, 0x96, 0xea, 0xaa, 0xaa, 0xab, 0xaa, 0xaa, 0xaa, 0xab,
0xf6, 0xff, 0xff, 0xaf, 0x6d, 0x31, 0xe7, 0xdb, 0x7a, 0xff, 0xff, 0xad, 0x76, 0xff, 0xff, 0xad,
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xaa, 0xaa, 0xaa, 0xaa,
0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xea, 0xaa, 0xaa, 0xab, 0xaa, 0xaa, 0xaa, 0xab,
0xf6, 0xaa, 0xaa, 0xbf, 0x74, 0x30, 0x77, 0xdb, 0x7b, 0xff, 0xff, 0xed, 0x76, 0xaa, 0xaa, 0xbd,
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xaa, 0xaa, 0xaa, 0xaa,
0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xea, 0xaa, 0xaa, 0xab, 0xaa, 0xaa, 0xaa, 0xab,
0xf6, 0xaa, 0xaa, 0xaf, 0x7f, 0xff, 0xf7, 0xdb, 0x7b, 0xff, 0xff, 0xed, 0x76, 0xaa, 0xaa, 0xad,
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xaa, 0xaa, 0xaa, 0xaa,
0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xf6, 0xaa, 0xa7, 0xbf, 0x70, 0x70, 0x37, 0xdb, 0x7b, 0xff, 0xff, 0xed, 0x76, 0xaa, 0xaf, 0xbd,
0x55, 0x55, 0x45, 0x55, 0x55, 0x55, 0x45, 0x55, 0x55, 0x55, 0x55, 0x55, 0xaa, 0xaa, 0x9a, 0xaa,
0xaa, 0xaa, 0x9a, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x56, 0x55, 0x55, 0x55, 0x56, 0x55, 0x57,
0xf6, 0xaa, 0xaf, 0xaf, 0xb0, 0x34, 0x3b, 0xdb, 0x7b, 0xff, 0xff, 0xed, 0x76, 0xaa, 0xaf, 0xad,
0x55, 0x54, 0x10, 0x55, 0x55, 0x55, 0x11, 0x55, 0x55, 0x55, 0x45, 0x55, 0xaa, 0xa9, 0x65, 0xaa,
0xaa, 0xaa, 0x66, 0xaa, 0xaa, 0xaa, 0x9a, 0xaa, 0x55, 0x56, 0x55, 0x55, 0x55, 0x56, 0x55, 0x57,
0xf6, 0xaa, 0xaa, 0xbf, 0xbf, 0xff, 0xfb, 0xdb, 0x7b, 0xbb, 0xbb, 0xed, 0x76, 0xaa, 0xaa, 0xbd,
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xaa, 0xaa, 0xaa, 0xaa,
0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xab, 0xaa, 0xaa, 0xaa, 0xab, 0xaa, 0xab,
0x76, 0xaa, 0xaa, 0xad, 0xe5, 0xa9, 0x6d, 0xdb, 0x7b, 0xff, 0xff, 0xed, 0x76, 0xaa, 0xaa, 0xad,
0x55, 0x55, 0x55, 0x55, 0x50, 0x55, 0x55, 0x55, 0x50, 0x55, 0x55, 0x55, 0xaa, 0xaa, 0xaa, 0xaa,
0xa5, 0xaa, 0xaa, 0xaa, 0xa5, 0xaa, 0xaa, 0xaa, 0xaa, 0xab, 0xaa, 0xaa, 0xaa, 0xab, 0xaa, 0xab,
0x76, 0x55, 0x55, 0xbd, 0x7f, 0xff, 0xfd, 0xdb, 0x7b, 0xee, 0xee, 0xed, 0x76, 0x55, 0x55, 0xbd,
0x50, 0x55, 0x55, 0x55, 0x45, 0x15, 0x55, 0x55, 0x05, 0x05, 0x55, 0x55, 0xa5, 0xaa, 0xaa, 0xaa,
0x9a, 0x6a, 0xaa, 0xaa, 0x5a, 0x5a, 0xaa, 0xaa, 0xaa, 0xab, 0xaa, 0xaa, 0xaa, 0xab, 0xaa, 0xab,
0xb6, 0xff, 0xff, 0xae, 0xba, 0xeb, 0xae, 0xdb, 0x7b, 0xbb, 0xbb, 0xed, 0x76, 0xff, 0xff, 0xad,
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xaa, 0xaa, 0xaa, 0xaa,
0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xab, 0xaa, 0xaa, 0xaa, 0xab, 0xaa, 0xaf,
0xfe, 0xaa, 0xaa, 0xbf, 0xff, 0xff, 0xff, 0xdb, 0x7b, 0xff, 0xff, 0xed, 0x7e, 0xaa, 0xaa, 0xbd,
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xaa, 0xaa, 0xaa, 0xaa,
0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xbf, 0xff, 0xff, 0xfe, 0xaa, 0xaa, 0xaa, 0xfe, 0x76, 0xaa, 0xaa, 0x9d, 0x7f, 0xff, 0xff, 0xfd,
];
// frame
pub const FRAME_WIDTH: u32 = 24;
pub const FRAME_HEIGHT: u32 = 24;
pub const FRAME_FLAGS: u32 = 1; // BLIT_2BPP
pub const FRAME: [u8; 144] = [
0xfa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaf, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x8f, 0xff, 0xff, 0xff,
0xff, 0xf2, 0x8c, 0x00, 0x00, 0x00, 0x00, 0x32, 0x88, 0xff, 0xff, 0xff, 0xff, 0x22, 0x8c, 0xff,
0xff, 0xff, 0xff, 0x32, 0x88, 0xff, 0xff, 0xff, 0xff, 0x22, 0x88, 0xff, 0xff, 0xff, 0xff, 0x22,
0x88, 0xff, 0xff, 0xff, 0xff, 0x22, 0x88, 0xff, 0xff, 0xff, 0xff, 0x22, 0x88, 0xff, 0xff, 0xff,
0xff, 0x22, 0x88, 0xff, 0xff, 0xff, 0xff, 0x22, 0x88, 0xff, 0xff, 0xff, 0xff, 0x22, 0x88, 0xff,
0xff, 0xff, 0xff, 0x22, 0x88, 0xff, 0xff, 0xff, 0xff, 0x22, 0x88, 0xff, 0xff, 0xff, 0xff, 0x22,
0x84, 0xff, 0xff, 0xff, 0xff, 0x12, 0x88, 0xff, 0xff, 0xff, 0xff, 0x22, 0x84, 0xff, 0xff, 0xff,
0xff, 0x12, 0x88, 0xff, 0xff, 0xff, 0xff, 0x22, 0x84, 0x00, 0x00, 0x00, 0x00, 0x12, 0x85, 0x55,
0x55, 0x55, 0x55, 0x52, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x0b, 0xfa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaf,
];