diff --git a/rust/embgfx/src/main.rs b/rust/embgfx/src/main.rs index b7f9d88..5428cc2 100644 --- a/rust/embgfx/src/main.rs +++ b/rust/embgfx/src/main.rs @@ -16,7 +16,7 @@ use k210_hal::stdout::Stdout; use k210_hal::pac::Peripherals; use k210_shared::board::def::{io, DISP_HEIGHT, DISP_PIXELS, DISP_WIDTH}; use k210_shared::board::lcd::{self, LCD, LCDHL}; -use k210_shared::board::lcd_render::ScreenImage; +use k210_shared::board::lcd_render::{AsU16, ScreenImage}; use k210_shared::soc::dmac::{dma_channel, DMACExt}; use k210_shared::soc::fpioa; use k210_shared::soc::sleep::usleep; @@ -69,13 +69,12 @@ impl Drawing for Display { where T: IntoIterator>, { - let data = - unsafe { core::slice::from_raw_parts_mut(self.data.as_ptr() as *mut u16, DISP_PIXELS) }; + let data = self.data.as_u16_slice_mut(); for Pixel(coord, color) in item { let x = coord[0] as usize; let y = coord[1] as usize; if x < (DISP_WIDTH as usize) && y < (DISP_HEIGHT as usize) { - let index = (x ^ 1) + (y * (DISP_WIDTH as usize)); + let index = x + (y * (DISP_WIDTH as usize)); data[index] = RawU16::from(color).into_inner(); } } diff --git a/rust/game-of-life/gen-block-sprite.py b/rust/game-of-life/gen-block-sprite.py index 1c74b97..3bb6e69 100755 --- a/rust/game-of-life/gen-block-sprite.py +++ b/rust/game-of-life/gen-block-sprite.py @@ -19,7 +19,7 @@ for y in range(BLK_SIZE//2): outb = [] for y in range(BLK_SIZE): - outb.append([((rgb565(*image[y][x*2+0])<<16) | rgb565(*image[y][x*2+1])) for x in range(BLK_SIZE//2)]) + outb.append([((rgb565(*image[y][x*2+0]) << 0) | (rgb565(*image[y][x*2+1]) << 16)) for x in range(BLK_SIZE//2)]) print('pub static BLOCK_SPRITE: [[u32; 4];8] = [') for y in outb: diff --git a/rust/game-of-life/src/main.rs b/rust/game-of-life/src/main.rs index 5e7ad8d..affcf2f 100644 --- a/rust/game-of-life/src/main.rs +++ b/rust/game-of-life/src/main.rs @@ -10,6 +10,7 @@ use k210_hal::stdout::Stdout; use k210_shared::board::def::{io,DISP_WIDTH,DISP_HEIGHT,DISP_PIXELS,NS2009_SLV_ADDR,NS2009_CAL,NS2009_ADDR_BITS,NS2009_CLK}; use k210_shared::board::lcd::{LCD,LCDHL,self}; use k210_shared::board::lcd_colors; +use k210_shared::board::lcd_render::ScreenImage; use k210_shared::board::ns2009::TouchScreen; use k210_shared::soc::dmac::{DMACExt, dma_channel}; use k210_shared::soc::fpioa; @@ -23,12 +24,6 @@ pub const BLK_SIZE: usize = 8; pub const GRID_WIDTH: usize = (DISP_WIDTH as usize) / BLK_SIZE; pub const GRID_HEIGHT: usize = (DISP_HEIGHT as usize) / BLK_SIZE; -/** Array for representing an image of the entire screen. - * This is an array of DISP_WIDTH / 2 × DISP_HEIGHT, each two horizontally consecutive - * pixels are encoded in a u32 with `(a << 16)|b`. - */ -pub type ScreenImage = [u32; DISP_PIXELS / 2]; - /** Universe abstraction */ struct Universe { state: [[bool; GRID_WIDTH*GRID_HEIGHT]; 2], @@ -129,12 +124,12 @@ fn io_set_power() { /** How to show a block */ pub static BLOCK_SPRITE: [[u32; 4];8] = [ [0x38c738c7, 0x38c738c7, 0x38c738c7, 0x38c738c7], - [0x38c7718e, 0x718e718e, 0x718e718e, 0x718e38c7], - [0x38c7718e, 0xaa55aa55, 0xaa55aa55, 0x718e38c7], - [0x38c7718e, 0xaa55e31c, 0xe31caa55, 0x718e38c7], - [0x38c7718e, 0xaa55e31c, 0xe31caa55, 0x718e38c7], - [0x38c7718e, 0xaa55aa55, 0xaa55aa55, 0x718e38c7], - [0x38c7718e, 0x718e718e, 0x718e718e, 0x718e38c7], + [0x718e38c7, 0x718e718e, 0x718e718e, 0x38c7718e], + [0x718e38c7, 0xaa55aa55, 0xaa55aa55, 0x38c7718e], + [0x718e38c7, 0xe31caa55, 0xaa55e31c, 0x38c7718e], + [0x718e38c7, 0xe31caa55, 0xaa55e31c, 0x38c7718e], + [0x718e38c7, 0xaa55aa55, 0xaa55aa55, 0x38c7718e], + [0x718e38c7, 0x718e718e, 0x718e718e, 0x38c7718e], [0x38c738c7, 0x38c738c7, 0x38c738c7, 0x38c738c7], ]; diff --git a/rust/k210-console/scripts/gencolorfont.py b/rust/k210-console/scripts/gencolorfont.py index 83f87fd..1064f86 100755 --- a/rust/k210-console/scripts/gencolorfont.py +++ b/rust/k210-console/scripts/gencolorfont.py @@ -35,8 +35,8 @@ def encode_block(block): for yi in range(0, BH): for xi in range(0, BW//2): out.append( - (rgb565(block[yi][xi*2 + 0]) << 16) | - rgb565(block[yi][xi*2 + 1])) + (rgb565(block[yi][xi*2 + 0]) << 0) | + rgb565(block[yi][xi*2 + 1]) << 16) return tuple(out) assert(len(sys.argv) >= 3) diff --git a/rust/k210-console/src/console.rs b/rust/k210-console/src/console.rs index c631b9b..0428b97 100644 --- a/rust/k210-console/src/console.rs +++ b/rust/k210-console/src/console.rs @@ -145,18 +145,8 @@ impl Console { for yi in 0..8 { let val = glyph[yi]; for xih in 0..4 { - image[image_ofs + xih] = (u32::from(if val & (1 << (xih * 2 + 0)) != 0 { - fg - } else { - bg - }) - << 16) - | (u32::from(if val & (1 << (xih * 2 + 1)) != 0 { - fg - } else { - bg - }) - << 0); + image[image_ofs + xih] = (u32::from(if val & (1 << (xih * 2 + 0)) != 0 { fg } else { bg }) << 0) | + (u32::from(if val & (1 << (xih * 2 + 1)) != 0 { fg } else { bg }) << 16); } image_ofs += usize::from(DISP_WIDTH) / 2; } diff --git a/rust/k210-console/src/example_colorfont.rs b/rust/k210-console/src/example_colorfont.rs index 3547977..e2a18a3 100644 --- a/rust/k210-console/src/example_colorfont.rs +++ b/rust/k210-console/src/example_colorfont.rs @@ -2,111 +2,111 @@ #[rustfmt::skip] pub static FONT: [[u32; 32]; 106] = [ [0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, ], - [0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff, 0xffffffff, 0x00000000, 0x00000000, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xff9dffbe, 0xffffffff, 0xffffffff, 0xffffffff, 0xf4cef3a5, 0xf3c6f408, 0xf48cf510, 0xffffffff, 0xfdd4f384, 0xf384f384, 0xf384f384, 0xffffffff, 0xfed9f384, 0xf384f384, 0xf384f384, ], - [0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff, 0x00000000, 0x00000000, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffdd, 0xffffffff, 0xffffffff, 0xffffffff, 0xffbbfee4, 0xf572fdb3, 0xfe16fe78, 0xfefaffff, 0xffffffbb, 0xf384f384, 0xf384f384, 0xf384f4ce, 0xff5cffff, 0xf384f384, 0xf384f384, 0xf384f384, 0xf3a5fdd4, ], - [0x0000ffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xfffeffff, 0xffffffff, 0xffffffff, 0xff98ff0b, 0xfec1fec3, 0xff0eff54, 0xff76feea, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfee9fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xffddff2f, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xff9dffff, 0xffdcff98, 0xff54ff0e, 0xfee5fec0, ], - [0xffffffff, 0xffff0000, 0x00000000, 0x00000000, 0xffffffff, 0xffffffff, 0xffffffff, 0xffdf0000, 0xff98ffbb, 0xfffeffff, 0xffffffff, 0xffffffff, 0xfec0fec0, 0xfec2ff0d, 0xff76ffdd, 0xffffffff, 0xfec0fec0, 0xfec0fec0, 0xfec0fec2, 0xff2fff99, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, ], - [0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffff0000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0xffffffff, 0x00000000, 0x00000000, 0xffffffff, 0xffffffff, 0xffffffff, 0x00000000, 0xfee8ff75, 0xffddffff, 0xffffffff, 0xffffffff, 0xfec0fec0, 0xfec2ff30, 0xffbaffff, 0xffffffff, 0xfec0fec0, 0xfec0fec0, 0xfec0feea, 0xff76ffdd, ], - [0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0xffff0000, 0x00000000, 0x0000ffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, ], - [0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffdd, 0xffbbff98, ], - [0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffdd, 0xffbaff77, 0xff53ff0e, 0xff54ff2f, 0xfee7fec2, 0xfec0fec0, 0xfec0fec0, ], - [0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x0000ffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffdc, 0xfffffffd, 0xffbbff98, 0xff75ff2f, 0xfee5fec0, 0xfee6fec2, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, ], - [0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xfffeffbc, 0xff98ff54, 0xff99ff75, 0xff31fee9, 0xfec3fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, ], - [0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xff31ff31, 0xff52ff75, 0xff77ff98, 0xffbaffbc, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, ], - [0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0xffff0000, 0x00000000, 0x00000000, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffdcffdd, 0xfffdffff, 0xffffffff, 0xffffffff, 0xfec0fec1, 0xfec2fec4, 0xfee7ff0b, 0xff30ff52, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, ], - [0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xff55ff77, 0xff98ffb9, 0xffbbffdc, 0xffdcffdd, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec2, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, ], - [0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xfffeffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xfec4fee6, 0xff0aff0f, 0xff32ff53, 0xff77ff98, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, ], - [0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0xffffffff, 0xffff0000, 0x00000000, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xff99ffba, 0xffdcffdc, 0xffddfffe, 0xffffffff, 0xfec0fec0, 0xfec0fec0, 0xfec2fec4, 0xfee6ff0d, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, ], - [0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffdcffff, 0xffffffdf, 0xffdeffbe, 0xffbdff9d, 0xfee8ffdd, 0xfffffe36, 0xf3c6f3c6, 0xf3a5f3a5, ], - [0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xff7dff7c, 0xff5cff5c, 0xff1bfefa, 0xfed9fed9, 0xf3a4f3a4, 0xf384f384, 0xf384f384, 0xf384f384, ], - [0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xfeb8fe98, 0xfe78fe78, 0xfe37fe15, 0xfdd4f593, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, ], - [0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0xffff0000, 0x00000000, 0x00000000, 0xffffffff, 0xffffffff, 0xffff0000, 0x00000000, 0xf572fdd4, 0xffbeffff, 0xffffffff, 0x00000000, 0xf384f384, 0xf46cff5c, 0xffffffff, 0xffff0000, ], - [0xffffffff, 0xff9df384, 0xf384f384, 0xf384f384, 0xffffffff, 0xfffff46b, 0xf384f384, 0xf384f384, 0x0000ffff, 0xfffffe57, 0xf3a4f384, 0xf384f384, 0x0000ffff, 0xffffffff, 0xff1bf4ce, 0xf384f384, 0x0000f79e, 0xffffffff, 0xffffffff, 0xfeb8f44a, 0x00000000, 0x0000ffff, 0xffffffff, 0xffffffde, 0x00000000, 0x00000000, 0x0000ffff, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, ], - [0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xfe36f3e8, 0xf384f384, 0xf384f384, 0xf384f384, 0xffffff9e, 0xfdd4f3c7, 0xf384f384, 0xf384f384, 0xffffffff, 0xffffff9d, 0xfdf5f408, 0xf384f384, ], - [0xf3c6f531, 0xfe98ff7c, 0xffffffff, 0xffffffdd, 0xf384f384, 0xf384f3a4, 0xf408f530, 0xfe57ff3c, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f3a4, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, ], - [0xffbaff76, 0xff30fee5, 0xfec0fec0, 0xfec0fec0, 0xffffffff, 0xfffffffe, 0xff99ff30, 0xfec1fec0, 0xf42afdd4, 0xff1bffff, 0xffffffff, 0xffddff76, 0xf384f384, 0xf3a4f44b, 0xfe36ff7d, 0xffffffff, 0xf384f384, 0xf384f384, 0xf384f3a5, 0xf510fed9, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, ], - [0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec4, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xff0cfec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xffffffbb, 0xff32fec3, 0xfec0fec0, 0xfec0fec0, 0xffdfffff, 0xffffffdd, 0xff76feea, 0xfec0fec0, 0xf429fdf5, 0xff5cffff, 0xffffffff, 0xffbaff31, 0xf384f384, 0xf3a5f4ef, 0xfeb9ffde, 0xffffffff, 0xf384f384, 0xf384f384, 0xf384f408, 0xfdd4ff5c, ], - [0xff31ffbb, 0xffffffff, 0xffffffff, 0xfffffffe, 0xfec0fec0, 0xff0bff55, 0xff75ff32, 0xff0afec4, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec3fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xffddff76, 0xff0bfec0, 0xfec0fec0, 0xfec0fec0, 0xffffffff, 0xffffffbb, 0xff52fee7, 0xfec0fec0, ], - [0xffbbff98, 0xff54ff30, 0xfee8fec3, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, ], + [0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffff0000, 0xffffffff, 0x00000000, 0x00000000, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffbeff9d, 0xffffffff, 0xffffffff, 0xffffffff, 0xf3a5f4ce, 0xf408f3c6, 0xf510f48c, 0xffffffff, 0xf384fdd4, 0xf384f384, 0xf384f384, 0xffffffff, 0xf384fed9, 0xf384f384, 0xf384f384, ], + [0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffff0000, 0x00000000, 0x00000000, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffddffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xfee4ffbb, 0xfdb3f572, 0xfe78fe16, 0xfffffefa, 0xffbbffff, 0xf384f384, 0xf384f384, 0xf4cef384, 0xffffff5c, 0xf384f384, 0xf384f384, 0xf384f384, 0xfdd4f3a5, ], + [0xffff0000, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xfffffffe, 0xffffffff, 0xffffffff, 0xff0bff98, 0xfec3fec1, 0xff54ff0e, 0xfeeaff76, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fee9, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xff2fffdd, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xffffff9d, 0xff98ffdc, 0xff0eff54, 0xfec0fee5, ], + [0xffffffff, 0x0000ffff, 0x00000000, 0x00000000, 0xffffffff, 0xffffffff, 0xffffffff, 0x0000ffdf, 0xffbbff98, 0xfffffffe, 0xffffffff, 0xffffffff, 0xfec0fec0, 0xff0dfec2, 0xffddff76, 0xffffffff, 0xfec0fec0, 0xfec0fec0, 0xfec2fec0, 0xff99ff2f, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, ], + [0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0xffffffff, 0x00000000, 0x00000000, 0xffffffff, 0xffffffff, 0xffffffff, 0x00000000, 0xff75fee8, 0xffffffdd, 0xffffffff, 0xffffffff, 0xfec0fec0, 0xff30fec2, 0xffffffba, 0xffffffff, 0xfec0fec0, 0xfec0fec0, 0xfeeafec0, 0xffddff76, ], + [0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x0000ffff, 0x00000000, 0xffff0000, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, ], + [0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffff0000, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffddffff, 0xff98ffbb, ], + [0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffff0000, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffddffff, 0xff77ffba, 0xff0eff53, 0xff2fff54, 0xfec2fee7, 0xfec0fec0, 0xfec0fec0, ], + [0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0xffff0000, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffdcffff, 0xfffdffff, 0xff98ffbb, 0xff2fff75, 0xfec0fee5, 0xfec2fee6, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, ], + [0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffbcfffe, 0xff54ff98, 0xff75ff99, 0xfee9ff31, 0xfec0fec3, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, ], + [0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xff31ff31, 0xff75ff52, 0xff98ff77, 0xffbcffba, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, ], + [0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x0000ffff, 0x00000000, 0x00000000, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffddffdc, 0xfffffffd, 0xffffffff, 0xffffffff, 0xfec1fec0, 0xfec4fec2, 0xff0bfee7, 0xff52ff30, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, ], + [0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xff77ff55, 0xffb9ff98, 0xffdcffbb, 0xffddffdc, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec2fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, ], + [0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xfffffffe, 0xffffffff, 0xffffffff, 0xffffffff, 0xfee6fec4, 0xff0fff0a, 0xff53ff32, 0xff98ff77, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, ], + [0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0xffffffff, 0x0000ffff, 0x00000000, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffbaff99, 0xffdcffdc, 0xfffeffdd, 0xffffffff, 0xfec0fec0, 0xfec0fec0, 0xfec4fec2, 0xff0dfee6, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, ], + [0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffdc, 0xffdfffff, 0xffbeffde, 0xff9dffbd, 0xffddfee8, 0xfe36ffff, 0xf3c6f3c6, 0xf3a5f3a5, ], + [0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xff7cff7d, 0xff5cff5c, 0xfefaff1b, 0xfed9fed9, 0xf3a4f3a4, 0xf384f384, 0xf384f384, 0xf384f384, ], + [0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xfe98feb8, 0xfe78fe78, 0xfe15fe37, 0xf593fdd4, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, ], + [0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x0000ffff, 0x00000000, 0x00000000, 0xffffffff, 0xffffffff, 0x0000ffff, 0x00000000, 0xfdd4f572, 0xffffffbe, 0xffffffff, 0x00000000, 0xf384f384, 0xff5cf46c, 0xffffffff, 0x0000ffff, ], + [0xffffffff, 0xf384ff9d, 0xf384f384, 0xf384f384, 0xffffffff, 0xf46bffff, 0xf384f384, 0xf384f384, 0xffff0000, 0xfe57ffff, 0xf384f3a4, 0xf384f384, 0xffff0000, 0xffffffff, 0xf4ceff1b, 0xf384f384, 0xf79e0000, 0xffffffff, 0xffffffff, 0xf44afeb8, 0x00000000, 0xffff0000, 0xffffffff, 0xffdeffff, 0x00000000, 0x00000000, 0xffff0000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, ], + [0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf3e8fe36, 0xf384f384, 0xf384f384, 0xf384f384, 0xff9effff, 0xf3c7fdd4, 0xf384f384, 0xf384f384, 0xffffffff, 0xff9dffff, 0xf408fdf5, 0xf384f384, ], + [0xf531f3c6, 0xff7cfe98, 0xffffffff, 0xffddffff, 0xf384f384, 0xf3a4f384, 0xf530f408, 0xff3cfe57, 0xf384f384, 0xf384f384, 0xf384f384, 0xf3a4f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, ], + [0xff76ffba, 0xfee5ff30, 0xfec0fec0, 0xfec0fec0, 0xffffffff, 0xfffeffff, 0xff30ff99, 0xfec0fec1, 0xfdd4f42a, 0xffffff1b, 0xffffffff, 0xff76ffdd, 0xf384f384, 0xf44bf3a4, 0xff7dfe36, 0xffffffff, 0xf384f384, 0xf384f384, 0xf3a5f384, 0xfed9f510, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, ], + [0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec4fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0ff0c, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xffbbffff, 0xfec3ff32, 0xfec0fec0, 0xfec0fec0, 0xffffffdf, 0xffddffff, 0xfeeaff76, 0xfec0fec0, 0xfdf5f429, 0xffffff5c, 0xffffffff, 0xff31ffba, 0xf384f384, 0xf4eff3a5, 0xffdefeb9, 0xffffffff, 0xf384f384, 0xf384f384, 0xf408f384, 0xff5cfdd4, ], + [0xffbbff31, 0xffffffff, 0xffffffff, 0xfffeffff, 0xfec0fec0, 0xff55ff0b, 0xff32ff75, 0xfec4ff0a, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec3, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xff76ffdd, 0xfec0ff0b, 0xfec0fec0, 0xfec0fec0, 0xffffffff, 0xffbbffff, 0xfee7ff52, 0xfec0fec0, ], + [0xff98ffbb, 0xff30ff54, 0xfec3fee8, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, ], [0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, ], - [0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfee3fee9, 0xfec0fec0, 0xfec0fec0, 0xff0bff99, 0xfffeffff, 0xfec0fec0, 0xfee9ff97, 0xffffffff, 0xffbeff1b, ], - [0xfec0feeb, 0xfffeffff, 0xf551f384, 0xf384f384, 0xfec0fec0, 0xff0effff, 0xffdef4ad, 0xf384f384, 0xfec0fec0, 0xfec0ff31, 0xffffff9d, 0xf429f384, 0xfec0fec0, 0xfec0fec0, 0xff54ffff, 0xff3bf3c6, 0xfec0fec0, 0xfec0fec0, 0xfec0ff98, 0xfffffeb9, 0xff0dff0f, 0xff2fff2f, 0xff2fff30, 0xfffeffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffde, 0xfeb9fe78, 0xfe15f5b3, 0xf530f48c, 0xf42af3e7, ], - [0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xfdf5f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xff9df48d, 0xf384f384, 0xf384f384, 0xf384f384, 0xf3a5f384, 0xf384f384, 0xf384f384, 0xf384f384, ], + [0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfee9fee3, 0xfec0fec0, 0xfec0fec0, 0xff99ff0b, 0xfffffffe, 0xfec0fec0, 0xff97fee9, 0xffffffff, 0xff1bffbe, ], + [0xfeebfec0, 0xfffffffe, 0xf384f551, 0xf384f384, 0xfec0fec0, 0xffffff0e, 0xf4adffde, 0xf384f384, 0xfec0fec0, 0xff31fec0, 0xff9dffff, 0xf384f429, 0xfec0fec0, 0xfec0fec0, 0xffffff54, 0xf3c6ff3b, 0xfec0fec0, 0xfec0fec0, 0xff98fec0, 0xfeb9ffff, 0xff0fff0d, 0xff2fff2f, 0xff30ff2f, 0xfffffffe, 0xffffffff, 0xffffffff, 0xffffffff, 0xffdeffff, 0xfe78feb9, 0xf5b3fe15, 0xf48cf530, 0xf3e7f42a, ], + [0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384fdf5, 0xf384f384, 0xf384f384, 0xf384f384, 0xf48dff9d, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f3a5, 0xf384f384, 0xf384f384, 0xf384f384, ], [0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, ], - [0xf384f384, 0xf384f3e7, 0xfed9ffff, 0xffffffff, 0xf384f384, 0xf384f384, 0xf3a4fdf5, 0xffffffff, 0xf384f384, 0xf384f384, 0xf384f384, 0xf531ffbe, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f46b, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, ], - [0xf7be0000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0xffff0000, 0x00000000, 0x00000000, 0xff5cffff, 0xffffffff, 0x00000000, 0x00000000, 0xf3e7feb9, 0xffffffff, 0xffffffff, 0x00000000, 0xf384f3a4, 0xfdf5ffff, 0xffffffff, 0xffff0000, 0xf384f384, 0xf384f530, 0xffbeffff, 0xffffffff, 0xf384f384, 0xf384f384, 0xf46bff5c, 0xffffffff, ], - [0xffffffff, 0xffffffff, 0xffffffbe, 0xfe77f48c, 0x00000000, 0xffffffff, 0xffffffff, 0xffffffff, 0x00000000, 0x00000000, 0xffffffff, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, ], - [0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xff1bf572, 0xf3c7f384, 0xf384f384, 0xf384f384, 0xffffffff, 0xffbefe78, 0xf4aef3a4, 0xf384f384, 0xffffffff, 0xffffffff, 0xffffff5c, 0xfdd4f409, 0x0000ffff, 0xffffffff, 0xffffffff, 0xffffffde, 0x00000000, 0x00000000, 0xffffffff, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, ], - [0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xfeb9f4ef, 0xf384f384, 0xf384f384, 0xf384f384, 0xffffffff, 0xfedaf46b, 0xf384f384, 0xf384f384, 0xffffffff, 0xffffffde, 0xfdf5f3a5, 0xf384f384, 0x0000ffff, 0xffffffff, 0xffffff3c, 0xf4cef384, ], - [0xf384f384, 0xf384f384, 0xf384f384, 0xf384f3a4, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, ], - [0xf4cefeb8, 0xffdeffff, 0xfffffffe, 0xff98fee9, 0xf384f384, 0xf409fdf5, 0xff9dffff, 0xfffffffe, 0xf384f384, 0xf384f384, 0xf3e8fe78, 0xffffffff, 0xf384f384, 0xf384f384, 0xf384f384, 0xf531ffbe, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f42a, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, ], - [0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xff30fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xffffff77, 0xfee6fec0, 0xfec0fec0, 0xfec0fec0, 0xffffffff, 0xffdcfee9, 0xfec0fec0, 0xfec0fec0, 0xfefaffff, 0xfffffffe, 0xff31fec0, 0xfec0fec0, 0xf3a5fdf5, 0xffdfffff, 0xffffff97, 0xfec4fec0, 0xf384f384, 0xf4ceff7c, 0xffffffff, 0xffbbfee8, 0xf384f384, 0xf384f3e7, 0xfe98ffff, 0xffffffdd, ], - [0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xff0cfec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, ], - [0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec1, 0xfec0fec0, ], - [0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec2fee4, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xff76fffe, ], - [0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfee4fee3, 0xfec2fec1, 0xfec1fec0, 0xfec0fec0, 0xfffefffe, 0xfffefffe, 0xfffefffe, 0xfffeffde, ], - [0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0ff0b, 0xfec0fec0, 0xfec0fec0, 0xfec0feea, 0xff97ffff, 0xffddffdd, 0xffddffdc, 0xffdcffff, 0xffffffff, ], - [0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec3ff53, 0xfec0fec0, 0xfec0fec0, 0xfec1ff31, 0xffdcffff, 0xfec0fec0, 0xfec0ff2f, 0xffbbffff, 0xffffffff, 0xfec0ff0d, 0xffbaffff, 0xffffffff, 0xff5cf4ef, 0xff99ffff, 0xffffffff, 0xffbefdf5, 0xf3c6f384, 0xffffffff, 0xfffffed9, 0xf44bf384, 0xf384f384, 0xffffff7d, 0xf551f3a4, 0xf384f384, 0xf384f384, ], - [0xfee6ff75, 0xfffeffff, 0xffdffe36, 0xf3e7f384, 0xffddffff, 0xfffffefa, 0xf48cf384, 0xf384f384, 0xffffff9d, 0xf593f3a4, 0xf384f384, 0xf384f384, 0xfe78f409, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, ], - [0xf384f384, 0xf384f384, 0xf46bfe57, 0xfe57fe57, 0xf384f384, 0xf384f384, 0xf3a5ff9d, 0xffffffff, 0xf384f384, 0xf384f384, 0xf384fe16, 0xffffffff, 0xf384f384, 0xf384f384, 0xf384f409, 0xffdfffff, 0xf384f384, 0xf384f384, 0xf384f384, 0xfe98ffff, 0xf384f384, 0xf384f384, 0xf384f384, 0xf4adffff, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384ff1b, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f551, ], - [0xfe57fe57, 0xfe57fe57, 0xfe57fe57, 0xfe57fe57, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffff0000, 0x00000000, 0x00000000, 0x00000000, 0xffff0000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, ], + [0xf384f384, 0xf3e7f384, 0xfffffed9, 0xffffffff, 0xf384f384, 0xf384f384, 0xfdf5f3a4, 0xffffffff, 0xf384f384, 0xf384f384, 0xf384f384, 0xffbef531, 0xf384f384, 0xf384f384, 0xf384f384, 0xf46bf384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, ], + [0x0000f7be, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x0000ffff, 0x00000000, 0x00000000, 0xffffff5c, 0xffffffff, 0x00000000, 0x00000000, 0xfeb9f3e7, 0xffffffff, 0xffffffff, 0x00000000, 0xf3a4f384, 0xfffffdf5, 0xffffffff, 0x0000ffff, 0xf384f384, 0xf530f384, 0xffffffbe, 0xffffffff, 0xf384f384, 0xf384f384, 0xff5cf46b, 0xffffffff, ], + [0xffffffff, 0xffffffff, 0xffbeffff, 0xf48cfe77, 0x00000000, 0xffffffff, 0xffffffff, 0xffffffff, 0x00000000, 0x00000000, 0xffffffff, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xffff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, ], + [0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf572ff1b, 0xf384f3c7, 0xf384f384, 0xf384f384, 0xffffffff, 0xfe78ffbe, 0xf3a4f4ae, 0xf384f384, 0xffffffff, 0xffffffff, 0xff5cffff, 0xf409fdd4, 0xffff0000, 0xffffffff, 0xffffffff, 0xffdeffff, 0x00000000, 0x00000000, 0xffffffff, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xffff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, ], + [0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf4effeb9, 0xf384f384, 0xf384f384, 0xf384f384, 0xffffffff, 0xf46bfeda, 0xf384f384, 0xf384f384, 0xffffffff, 0xffdeffff, 0xf3a5fdf5, 0xf384f384, 0xffff0000, 0xffffffff, 0xff3cffff, 0xf384f4ce, ], + [0xf384f384, 0xf384f384, 0xf384f384, 0xf3a4f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, ], + [0xfeb8f4ce, 0xffffffde, 0xfffeffff, 0xfee9ff98, 0xf384f384, 0xfdf5f409, 0xffffff9d, 0xfffeffff, 0xf384f384, 0xf384f384, 0xfe78f3e8, 0xffffffff, 0xf384f384, 0xf384f384, 0xf384f384, 0xffbef531, 0xf384f384, 0xf384f384, 0xf384f384, 0xf42af384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, ], + [0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0ff30, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xff77ffff, 0xfec0fee6, 0xfec0fec0, 0xfec0fec0, 0xffffffff, 0xfee9ffdc, 0xfec0fec0, 0xfec0fec0, 0xfffffefa, 0xfffeffff, 0xfec0ff31, 0xfec0fec0, 0xfdf5f3a5, 0xffffffdf, 0xff97ffff, 0xfec0fec4, 0xf384f384, 0xff7cf4ce, 0xffffffff, 0xfee8ffbb, 0xf384f384, 0xf3e7f384, 0xfffffe98, 0xffddffff, ], + [0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0ff0c, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, ], + [0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec1fec0, 0xfec0fec0, ], + [0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfee4fec2, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfffeff76, ], + [0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfee3fee4, 0xfec1fec2, 0xfec0fec1, 0xfec0fec0, 0xfffefffe, 0xfffefffe, 0xfffefffe, 0xffdefffe, ], + [0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xff0bfec0, 0xfec0fec0, 0xfec0fec0, 0xfeeafec0, 0xffffff97, 0xffddffdd, 0xffdcffdd, 0xffffffdc, 0xffffffff, ], + [0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xff53fec3, 0xfec0fec0, 0xfec0fec0, 0xff31fec1, 0xffffffdc, 0xfec0fec0, 0xff2ffec0, 0xffffffbb, 0xffffffff, 0xff0dfec0, 0xffffffba, 0xffffffff, 0xf4efff5c, 0xffffff99, 0xffffffff, 0xfdf5ffbe, 0xf384f3c6, 0xffffffff, 0xfed9ffff, 0xf384f44b, 0xf384f384, 0xff7dffff, 0xf3a4f551, 0xf384f384, 0xf384f384, ], + [0xff75fee6, 0xfffffffe, 0xfe36ffdf, 0xf384f3e7, 0xffffffdd, 0xfefaffff, 0xf384f48c, 0xf384f384, 0xff9dffff, 0xf3a4f593, 0xf384f384, 0xf384f384, 0xf409fe78, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, ], + [0xf384f384, 0xf384f384, 0xfe57f46b, 0xfe57fe57, 0xf384f384, 0xf384f384, 0xff9df3a5, 0xffffffff, 0xf384f384, 0xf384f384, 0xfe16f384, 0xffffffff, 0xf384f384, 0xf384f384, 0xf409f384, 0xffffffdf, 0xf384f384, 0xf384f384, 0xf384f384, 0xfffffe98, 0xf384f384, 0xf384f384, 0xf384f384, 0xfffff4ad, 0xf384f384, 0xf384f384, 0xf384f384, 0xff1bf384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf551f384, ], + [0xfe57fe57, 0xfe57fe57, 0xfe57fe57, 0xfe57fe57, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x0000ffff, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, ], [0xfe57fe57, 0xfe57fe57, 0xfe57fe57, 0xfe57fe57, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, ], - [0xfe57fe57, 0xfe57fe57, 0xfe57fe98, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, ], - [0x00000000, 0xffffffff, 0xffffffff, 0xfffffe57, 0x00000000, 0x00000000, 0xffffffff, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, ], - [0xf3e8f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xff7df531, 0xf384f384, 0xf384f384, 0xf384f384, 0xffffffff, 0xfeb9f42a, 0xf384f384, 0xf384f384, 0xffffffff, 0xffffffbe, 0xf5b3f3a4, 0xf384f384, 0x0000ffff, 0xffffffff, 0xffffff1a, 0xf48cf384, 0x00000000, 0xffffffff, 0xffffffff, 0xffdefdf5, 0x00000000, 0x00000000, 0xffffffff, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, ], - [0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf3c6f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xff5cf4ce, 0xf384f384, 0xf384f384, 0xf384f384, 0xffffffff, 0xfe57f3e7, 0xf384f384, 0xf384f384, ], - [0xf384f384, 0xf384f384, 0xf384f572, 0xffbeffff, 0xf384f384, 0xf384f384, 0xf384f384, 0xf46bff1b, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f3a5, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, ], - [0xfffeff31, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xffffffff, 0xff76fec3, 0xfec0fec0, 0xfec0fec0, 0xfe36ffff, 0xffffffba, 0xfeeafec0, 0xfec0fec0, 0xf384f4ef, 0xff9dffff, 0xffffffba, 0xff99ff99, 0xf384f384, 0xf408fed9, 0xffffffff, 0xffffffff, 0xf384f384, 0xf384f3a4, 0xf572fe36, 0xfe57fe57, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, ], - [0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xff99ff99, 0xff99ff99, 0xff99ff99, 0xff99ff99, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xfe57fe77, 0xfe77fe77, 0xfe78fe78, 0xfe98fe98, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, ], - [0xfec0fec0, 0xfec0fec0, 0xff30fffe, 0xffdbff99, 0xfec0fec0, 0xfec0fec0, 0xfec0ff77, 0xffffffff, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xff97ffff, 0xff99ff99, 0xff97ff76, 0xff55ff54, 0xff52ffdd, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xfeb9feb9, 0xfed9feda, 0xfedafefa, 0xfefafefa, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, ], - [0xff75ff31, 0xff0cfee6, 0xfec0fec0, 0xff0effff, 0xffffffff, 0xfffffffe, 0xffddffba, 0xff98ffff, 0xff1bfe15, 0xfed9ff7d, 0xffdfffff, 0xffffffff, 0xfffffeb9, 0xf3e7f3a4, 0xf429f50f, 0xfe15feda, 0xffffffff, 0xff3cf44b, 0xf384f384, 0xf384f384, 0xfefaff1a, 0xff1afeb8, 0xf3c5f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, ], - [0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xfffffed9, 0xf4adf4ee, 0xf530f572, 0xf5b4fdf5, 0xffffffff, 0xfe78f3a4, 0xf384f384, 0xf384f384, 0xff7dffdf, 0xfffffe98, 0xf3a5f384, 0xf384f384, 0xf3a4f42a, 0xf530fe16, 0xf510f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, ], - [0xffffffff, 0xffffffff, 0xffffffff, 0xffffffdf, 0xfe36fe77, 0xfeb9fefa, 0xff1bff5c, 0xfed9f4ad, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, ], - [0xfe57f3e7, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, ], - [0xff7dffff, 0xffff0000, 0x00000000, 0x00000000, 0xfdf5ffff, 0xffff0000, 0xffffffff, 0xffffffff, 0xf3e7ffde, 0xffffffff, 0xffffffff, 0xffffffff, 0xf384fe78, 0xffffffff, 0xffffff7d, 0xfed9fe15, 0xf384f44b, 0xfe98fdb4, 0xf46cf3a4, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, ], - [0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0xffff0000, 0x00000000, 0x00000000, 0xff5cffff, 0xffff0000, 0x00000000, 0x00000000, 0xf46cffbe, 0xffffffff, 0x00000000, 0x00000000, 0xf384f551, 0xffffffff, 0xffff0000, 0x00000000, 0xf384f384, 0xfe57ffff, 0xffffffff, 0x00000000, 0xf384f384, 0xf3a5ff3b, 0xffffffff, 0xffff0000, ], - [0x00000000, 0x00000000, 0x00000000, 0x0000ffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, ], - [0xffffffff, 0xffffff7d, 0xf44bf384, 0xf384f384, 0x0000ffff, 0xffffffde, 0xf408f384, 0xf384f384, 0xffffffff, 0xfffffe36, 0xf384f384, 0xf384f384, 0xffffffff, 0xffbef3e7, 0xf384f384, 0xf384f384, 0xffffffff, 0xfdf5f384, 0xf384f384, 0xf384f384, 0xffffff9d, 0xf3c6f384, 0xf384f384, 0xf384f384, 0xfffffdd4, 0xf384f384, 0xf384f384, 0xf384f384, 0xff7df3a5, 0xf384f384, 0xf384f384, 0xf384f384, ], - [0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f3c6, 0xf46bf384, 0xf384f384, 0xf384f384, 0xf44aff3b, 0xffdef48d, 0xf384f384, ], - [0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf3a4f3e8, 0xf48cf551, 0xf384f384, 0xf384fe98, 0xff9dffde, 0xffffffff, 0xf384f384, 0xf384feda, 0xffffffff, 0xffffffff, 0xf384f384, 0xf384fe57, 0xffffffff, 0x00000000, ], - [0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf3c6f42a, 0xf4cef593, 0xfdf5fe78, 0xfedaff5c, 0xffbeffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, ], - [0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f3c6, 0xf42af4cd, 0xf593fe16, 0xfe36fed9, 0xff3cffbe, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, ], - [0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xfe98f409, 0xf384f384, 0xf384f384, 0xf384f384, 0xfffffe36, 0xf384f384, 0xf384f384, 0xf384f384, 0xffffffbe, 0xf3c6f384, 0xf384f384, 0xf384f384, 0xffffffff, 0xfdd4f384, 0xf384f384, 0xf384f384, 0xffffffff, 0xff7cf3a4, 0xf384f384, 0xf384f384, 0xffffffff, 0xfffff551, 0xf384f384, 0xf384f384, ], - [0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384fe36, 0xfdb4f46b, 0xf3a5f384, 0xf384f384, 0xf384ff9d, 0xffffffff, 0xff7dfe98, 0xf572f429, 0xf3c5ffff, 0xffffffff, 0xffffffff, 0xffffffdf, 0xf48cffff, 0xffff0000, 0xffffffff, 0xffffffff, ], - [0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf3a4f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xff3cfe36, 0xf4eff3e7, 0xf384f384, 0xf384f384, 0xffffffff, 0xffffffbe, 0xfefafdf4, 0xf46cf3a5, ], - [0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf3a4f3e8, 0xf44bf3a4, 0xf3c6f48c, 0xfdb3fe98, 0xff5cffde, 0xfffffe36, ], - [0xf384f384, 0xf384f44a, 0xffbeffff, 0xffff0000, 0xf384f384, 0xf384f384, 0xf530ffff, 0xffffffff, 0xf384f384, 0xf384f384, 0xf384fe36, 0xffffffff, 0xf384f384, 0xf384f384, 0xf384f3a4, 0xff1affff, 0xf384f384, 0xf384f384, 0xf384f384, 0xf429ff9d, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f510, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, ], - [0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffff0000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0xffff0000, 0x00000000, 0x00000000, 0xfed9ffff, 0xffff0000, 0x00000000, 0x00000000, 0xfeb9ffff, 0xffff0000, 0x00000000, 0x00000000, ], - [0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff, 0xffffffff, 0x00000000, 0xffffffff, 0xffffffff, 0xffffffff, ], - [0x00000000, 0x00000000, 0x0000ffff, 0xffffffff, 0x00000000, 0x00000000, 0x0000ffff, 0xffffff5c, 0x00000000, 0x00000000, 0xffffffff, 0xfffff551, 0x00000000, 0x00000000, 0xffffffff, 0xff3bf384, 0x00000000, 0x0000ffff, 0xffffffff, 0xf510f384, 0xffffffff, 0xffffffff, 0xffffff1b, 0xf384f384, 0xffffffff, 0xffffffff, 0xff7df48d, 0xf384f384, 0xffffffbe, 0xfe98f4ef, 0xf3a4f384, 0xf384f384, ], - [0xf593f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf3a4f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, ], - [0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f3a4, 0xf384f384, 0xf384f384, 0xf384f384, 0xf3e7feb9, 0xf384f384, 0xf384f384, 0xf384f46c, 0xff5cffff, 0xf384f384, 0xf384f384, 0xf551ffbe, 0xffffffff, 0xf384f384, 0xf3a5fe36, 0xffffffff, 0xffffffff, 0xf384f409, 0xfefaffff, 0xffffffff, 0x00000000, 0xf4ceff9d, 0xffffffff, 0xffff0000, 0x00000000, ], - [0xf384f510, 0xff9dffff, 0xffffff5c, 0xf3c6f384, 0xfdf5ffff, 0xffffffff, 0xffffffff, 0xfe98f384, 0xffffffff, 0xffff0000, 0xffffffff, 0xfffff572, 0xffffffff, 0x00000000, 0x0000ffff, 0xffffffbe, 0xffff0000, 0x00000000, 0x0000ffff, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, ], - [0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf46bf384, 0xf384f384, 0xf384f384, 0xf384f384, 0xff3bf3a5, 0xf384f384, 0xf384f384, 0xf384f384, 0xfffffe57, 0xf384f384, 0xf384f384, 0xf384f384, 0xffffffff, 0xf531f384, 0xf384f384, 0xf384f384, 0xffffffff, 0xffbef44a, 0xf384f384, 0xf384f384, ], - [0xf384f384, 0xf384f593, 0xffffffff, 0x00000000, 0xf384f384, 0xf384f4ef, 0xffffffff, 0x00000000, 0xf384f384, 0xf384f3e7, 0xffffffff, 0x00000000, 0xf384f384, 0xf384f384, 0xff9dffff, 0xffff0000, 0xf384f384, 0xf384f384, 0xff3bffff, 0xffff0000, 0xf384f384, 0xf384f384, 0xfe98ffff, 0xffffffff, 0xf384f384, 0xf384f384, 0xfdf5ffff, 0xffffffff, 0xf384f384, 0xf384f384, 0xf551ffff, 0xff7dfe57, ], - [0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff, 0xffff0000, 0x00000000, 0xffffffff, 0xffffffff, 0xffffffff, 0x00000000, 0xffffffff, 0xffffffff, 0xffffffff, 0x00000000, 0xffffffbe, 0xfed9fdb4, 0xffffffff, 0x00000000, 0xf510f3a5, 0xf384f572, 0xffffffff, 0x00000000, ], - [0x0000ffff, 0xffffff1b, 0xf384f384, 0xf384f384, 0x0000ffff, 0xffffffff, 0xf4adf384, 0xf384f384, 0x00000000, 0xffffffff, 0xfeb9f384, 0xf384f384, 0x00000000, 0xffffffff, 0xffdff42a, 0xf384f384, 0x00000000, 0x0000ffff, 0xfffffe56, 0xf384f384, 0x00000000, 0x0000ffff, 0xffffffbe, 0xf3c6f384, 0x00000000, 0x00000000, 0xffffffff, 0xfdd4f384, 0x00000000, 0x0000ffff, 0xffffffff, 0xff7cf3a4, ], - [0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f3c5, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f48c, ], - [0xf551ffff, 0xffff0000, 0x00000000, 0x0000ffff, 0xfdd4ffff, 0xffff0000, 0x00000000, 0x00000000, 0xfe57ffff, 0xffff0000, 0x00000000, 0x00000000, 0xfed9ffff, 0xffff0000, 0x00000000, 0x00000000, 0xff5cffff, 0xffff0000, 0x00000000, 0x00000000, 0xffbdffff, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, ], - [0xffffffff, 0xffffffff, 0xffffffff, 0xffffff9d, 0x00000000, 0x0000ffff, 0xffffffff, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, ], - [0xfeb9f592, 0xf42af3c6, 0xf408f531, 0xfe57ff1b, 0xffffffff, 0xffffff9d, 0xffdeffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, ], - [0xffbeffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffff0000, 0xffffffff, 0xffff0000, 0x00000000, 0x00000000, 0x0000ffff, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, ], - [0xf593f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xffdff4ef, 0xf384f384, 0xf384f384, 0xf384f3a4, 0xffffffbe, 0xf44bf384, 0xf384f384, 0xf384f48c, 0xffffffff, 0xff5cf3e7, 0xf384f384, 0xf384f572, 0xffffffff, 0xfffffefa, 0xf3a5f384, 0xf384fe57, 0x0000ffff, 0xffffffff, 0xfe56f384, 0xf384fefa, 0x00000000, 0xffffffff, 0xfffff5b3, 0xf384ff7d, 0x00000000, 0x0000ffff, 0xffffffff, 0xf572ffff, ], - [0xff5cffff, 0xffff0000, 0x00000000, 0x00000000, 0xffdfffff, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xffff0000, 0x00000000, 0x00000000, 0x00000000, ], - [0x00000000, 0x00000000, 0x00000000, 0x0000ffff, 0x00000000, 0x00000000, 0x0000ffff, 0xffffffff, 0x00000000, 0x00000000, 0x0000ffff, 0xffffffff, 0x00000000, 0x00000000, 0x0000ffff, 0xffffffdf, 0x00000000, 0x00000000, 0x0000ffff, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, ], - [0xffffffff, 0xffffffff, 0xffffffff, 0xffbefeb9, 0xffffffff, 0xffffffde, 0xfed9f552, 0xf3c5f384, 0xffdffefa, 0xf592f3c6, 0xf384f384, 0xf384f384, 0xfe77f593, 0xf510f44a, 0xf3c6f3a5, 0xf3a4f384, 0xffffffff, 0xffffffff, 0xffffffbe, 0xff7dff3c, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, ], - [0xf530f3a5, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xfedafe98, 0xfe57fdd4, 0xf572f4ce, 0xf429f3a5, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, ], - [0xf384f384, 0xf384f384, 0xf384f384, 0xf384f5b3, 0xf384f384, 0xf384f384, 0xf384f3c5, 0xfe78ffff, 0xf384f384, 0xf384f384, 0xf44aff3b, 0xffffffff, 0xf384f384, 0xf384f510, 0xffbeffff, 0xffffffff, 0xf3a4f3a4, 0xfdf5ffff, 0xffffffff, 0xffff0000, 0xff9dff9d, 0xffffffff, 0xffff0000, 0x00000000, 0xffffffff, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, ], - [0xffdfffff, 0xffffffff, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xffff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, ], - [0xffffffff, 0xffffff1b, 0xf3a5f384, 0xf384f384, 0x0000ffff, 0xffffffff, 0xfe36f384, 0xf384f384, 0x00000000, 0xffffffff, 0xfffff530, 0xf384f384, 0x00000000, 0x0000ffff, 0xffffffbe, 0xf42af384, 0x00000000, 0x0000ffff, 0xffffffff, 0xff3bf48c, 0x00000000, 0x00000000, 0xffffffff, 0xffffffff, 0x00000000, 0x00000000, 0x0000ffff, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, ], - [0xf384f384, 0xf384f384, 0xf3e8f48c, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf429f429, 0xf408f408, 0xf408f408, 0xf407f407, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, ], - [0xf384f384, 0xf384feb9, 0xffffffff, 0x00000000, 0xf384f384, 0xf3a5ffbe, 0xffffffff, 0x00000000, 0xf384f384, 0xf510ffff, 0xffff0000, 0x00000000, 0xf384f384, 0xfe98ffff, 0xffff0000, 0x00000000, 0xf407f44a, 0xffbeffff, 0xffff0000, 0x00000000, 0xffffffff, 0xffffffff, 0x00000000, 0x00000000, 0xffffffff, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, ], - [0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff, 0x00000000, 0x00000000, 0x0000ffdf, 0xffffffff, 0x00000000, 0x00000000, 0x0000ffff, 0xffffffff, 0x00000000, 0x00000000, 0x0000ffff, 0xffffffde, 0x00000000, 0x00000000, 0x0000ffff, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, ], - [0x0000ffff, 0xffffffff, 0xffffffff, 0xffbef44b, 0xffffffff, 0xffffffff, 0xff9dfdf5, 0xf3c7f384, 0xffffffff, 0xff9dfdd4, 0xf3c6f384, 0xf384f384, 0xff9dfdb4, 0xf3c5f384, 0xf384f384, 0xf384f3a4, 0xfeb9fed9, 0xfefaff1b, 0xff3cff5c, 0xff5cff7c, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, ], - [0xf384f384, 0xf384f384, 0xf384f384, 0xf384f551, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384fdd4, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384fe77, 0xf3a4f3a4, 0xf3a5f3a5, 0xf3a5f3c6, 0xf407fefa, 0xff9dff9d, 0xffbeffde, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, ], - [0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xffff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, ], + [0xfe57fe57, 0xfe57fe57, 0xfe98fe57, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, ], + [0x00000000, 0xffffffff, 0xffffffff, 0xfe57ffff, 0x00000000, 0x00000000, 0xffffffff, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xffff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, ], + [0xf384f3e8, 0xf384f384, 0xf384f384, 0xf384f384, 0xf531ff7d, 0xf384f384, 0xf384f384, 0xf384f384, 0xffffffff, 0xf42afeb9, 0xf384f384, 0xf384f384, 0xffffffff, 0xffbeffff, 0xf3a4f5b3, 0xf384f384, 0xffff0000, 0xffffffff, 0xff1affff, 0xf384f48c, 0x00000000, 0xffffffff, 0xffffffff, 0xfdf5ffde, 0x00000000, 0x00000000, 0xffffffff, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, ], + [0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f3c6, 0xf384f384, 0xf384f384, 0xf384f384, 0xf4ceff5c, 0xf384f384, 0xf384f384, 0xf384f384, 0xffffffff, 0xf3e7fe57, 0xf384f384, 0xf384f384, ], + [0xf384f384, 0xf384f384, 0xf572f384, 0xffffffbe, 0xf384f384, 0xf384f384, 0xf384f384, 0xff1bf46b, 0xf384f384, 0xf384f384, 0xf384f384, 0xf3a5f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, ], + [0xff31fffe, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xffffffff, 0xfec3ff76, 0xfec0fec0, 0xfec0fec0, 0xfffffe36, 0xffbaffff, 0xfec0feea, 0xfec0fec0, 0xf4eff384, 0xffffff9d, 0xffbaffff, 0xff99ff99, 0xf384f384, 0xfed9f408, 0xffffffff, 0xffffffff, 0xf384f384, 0xf3a4f384, 0xfe36f572, 0xfe57fe57, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, ], + [0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xff99ff99, 0xff99ff99, 0xff99ff99, 0xff99ff99, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xfe77fe57, 0xfe77fe77, 0xfe78fe78, 0xfe98fe98, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, ], + [0xfec0fec0, 0xfec0fec0, 0xfffeff30, 0xff99ffdb, 0xfec0fec0, 0xfec0fec0, 0xff77fec0, 0xffffffff, 0xfec0fec0, 0xfec0fec0, 0xfec0fec0, 0xffffff97, 0xff99ff99, 0xff76ff97, 0xff54ff55, 0xffddff52, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xfeb9feb9, 0xfedafed9, 0xfefafeda, 0xfefafefa, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, ], + [0xff31ff75, 0xfee6ff0c, 0xfec0fec0, 0xffffff0e, 0xffffffff, 0xfffeffff, 0xffbaffdd, 0xffffff98, 0xfe15ff1b, 0xff7dfed9, 0xffffffdf, 0xffffffff, 0xfeb9ffff, 0xf3a4f3e7, 0xf50ff429, 0xfedafe15, 0xffffffff, 0xf44bff3c, 0xf384f384, 0xf384f384, 0xff1afefa, 0xfeb8ff1a, 0xf384f3c5, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, ], + [0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xfed9ffff, 0xf4eef4ad, 0xf572f530, 0xfdf5f5b4, 0xffffffff, 0xf3a4fe78, 0xf384f384, 0xf384f384, 0xffdfff7d, 0xfe98ffff, 0xf384f3a5, 0xf384f384, 0xf42af3a4, 0xfe16f530, 0xf384f510, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, ], + [0xffffffff, 0xffffffff, 0xffffffff, 0xffdfffff, 0xfe77fe36, 0xfefafeb9, 0xff5cff1b, 0xf4adfed9, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, ], + [0xf3e7fe57, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, ], + [0xffffff7d, 0x0000ffff, 0x00000000, 0x00000000, 0xfffffdf5, 0x0000ffff, 0xffffffff, 0xffffffff, 0xffdef3e7, 0xffffffff, 0xffffffff, 0xffffffff, 0xfe78f384, 0xffffffff, 0xff7dffff, 0xfe15fed9, 0xf44bf384, 0xfdb4fe98, 0xf3a4f46c, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, ], + [0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x0000ffff, 0x00000000, 0x00000000, 0xffffff5c, 0x0000ffff, 0x00000000, 0x00000000, 0xffbef46c, 0xffffffff, 0x00000000, 0x00000000, 0xf551f384, 0xffffffff, 0x0000ffff, 0x00000000, 0xf384f384, 0xfffffe57, 0xffffffff, 0x00000000, 0xf384f384, 0xff3bf3a5, 0xffffffff, 0x0000ffff, ], + [0x00000000, 0x00000000, 0x00000000, 0xffff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffff0000, 0x00000000, 0x00000000, 0x00000000, 0xffff0000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, ], + [0xffffffff, 0xff7dffff, 0xf384f44b, 0xf384f384, 0xffff0000, 0xffdeffff, 0xf384f408, 0xf384f384, 0xffffffff, 0xfe36ffff, 0xf384f384, 0xf384f384, 0xffffffff, 0xf3e7ffbe, 0xf384f384, 0xf384f384, 0xffffffff, 0xf384fdf5, 0xf384f384, 0xf384f384, 0xff9dffff, 0xf384f3c6, 0xf384f384, 0xf384f384, 0xfdd4ffff, 0xf384f384, 0xf384f384, 0xf384f384, 0xf3a5ff7d, 0xf384f384, 0xf384f384, 0xf384f384, ], + [0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf3c6f384, 0xf384f46b, 0xf384f384, 0xf384f384, 0xff3bf44a, 0xf48dffde, 0xf384f384, ], + [0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf3e8f3a4, 0xf551f48c, 0xf384f384, 0xfe98f384, 0xffdeff9d, 0xffffffff, 0xf384f384, 0xfedaf384, 0xffffffff, 0xffffffff, 0xf384f384, 0xfe57f384, 0xffffffff, 0x00000000, ], + [0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf42af3c6, 0xf593f4ce, 0xfe78fdf5, 0xff5cfeda, 0xffffffbe, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x0000ffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, ], + [0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf3c6f384, 0xf4cdf42a, 0xfe16f593, 0xfed9fe36, 0xffbeff3c, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, ], + [0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf409fe98, 0xf384f384, 0xf384f384, 0xf384f384, 0xfe36ffff, 0xf384f384, 0xf384f384, 0xf384f384, 0xffbeffff, 0xf384f3c6, 0xf384f384, 0xf384f384, 0xffffffff, 0xf384fdd4, 0xf384f384, 0xf384f384, 0xffffffff, 0xf3a4ff7c, 0xf384f384, 0xf384f384, 0xffffffff, 0xf551ffff, 0xf384f384, 0xf384f384, ], + [0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xfe36f384, 0xf46bfdb4, 0xf384f3a5, 0xf384f384, 0xff9df384, 0xffffffff, 0xfe98ff7d, 0xf429f572, 0xfffff3c5, 0xffffffff, 0xffffffff, 0xffdfffff, 0xfffff48c, 0x0000ffff, 0xffffffff, 0xffffffff, ], + [0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f3a4, 0xf384f384, 0xf384f384, 0xf384f384, 0xfe36ff3c, 0xf3e7f4ef, 0xf384f384, 0xf384f384, 0xffffffff, 0xffbeffff, 0xfdf4fefa, 0xf3a5f46c, ], + [0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf3e8f3a4, 0xf3a4f44b, 0xf48cf3c6, 0xfe98fdb3, 0xffdeff5c, 0xfe36ffff, ], + [0xf384f384, 0xf44af384, 0xffffffbe, 0x0000ffff, 0xf384f384, 0xf384f384, 0xfffff530, 0xffffffff, 0xf384f384, 0xf384f384, 0xfe36f384, 0xffffffff, 0xf384f384, 0xf384f384, 0xf3a4f384, 0xffffff1a, 0xf384f384, 0xf384f384, 0xf384f384, 0xff9df429, 0xf384f384, 0xf384f384, 0xf384f384, 0xf510f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, ], + [0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x0000ffff, 0x00000000, 0x00000000, 0xfffffed9, 0x0000ffff, 0x00000000, 0x00000000, 0xfffffeb9, 0x0000ffff, 0x00000000, 0x00000000, ], + [0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffff0000, 0xffffffff, 0x00000000, 0xffffffff, 0xffffffff, 0xffffffff, ], + [0x00000000, 0x00000000, 0xffff0000, 0xffffffff, 0x00000000, 0x00000000, 0xffff0000, 0xff5cffff, 0x00000000, 0x00000000, 0xffffffff, 0xf551ffff, 0x00000000, 0x00000000, 0xffffffff, 0xf384ff3b, 0x00000000, 0xffff0000, 0xffffffff, 0xf384f510, 0xffffffff, 0xffffffff, 0xff1bffff, 0xf384f384, 0xffffffff, 0xffffffff, 0xf48dff7d, 0xf384f384, 0xffbeffff, 0xf4effe98, 0xf384f3a4, 0xf384f384, ], + [0xf384f593, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f3a4, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, ], + [0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf3a4f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xfeb9f3e7, 0xf384f384, 0xf384f384, 0xf46cf384, 0xffffff5c, 0xf384f384, 0xf384f384, 0xffbef551, 0xffffffff, 0xf384f384, 0xfe36f3a5, 0xffffffff, 0xffffffff, 0xf409f384, 0xfffffefa, 0xffffffff, 0x00000000, 0xff9df4ce, 0xffffffff, 0x0000ffff, 0x00000000, ], + [0xf510f384, 0xffffff9d, 0xff5cffff, 0xf384f3c6, 0xfffffdf5, 0xffffffff, 0xffffffff, 0xf384fe98, 0xffffffff, 0x0000ffff, 0xffffffff, 0xf572ffff, 0xffffffff, 0x00000000, 0xffff0000, 0xffbeffff, 0x0000ffff, 0x00000000, 0xffff0000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xffff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, ], + [0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f46b, 0xf384f384, 0xf384f384, 0xf384f384, 0xf3a5ff3b, 0xf384f384, 0xf384f384, 0xf384f384, 0xfe57ffff, 0xf384f384, 0xf384f384, 0xf384f384, 0xffffffff, 0xf384f531, 0xf384f384, 0xf384f384, 0xffffffff, 0xf44affbe, 0xf384f384, 0xf384f384, ], + [0xf384f384, 0xf593f384, 0xffffffff, 0x00000000, 0xf384f384, 0xf4eff384, 0xffffffff, 0x00000000, 0xf384f384, 0xf3e7f384, 0xffffffff, 0x00000000, 0xf384f384, 0xf384f384, 0xffffff9d, 0x0000ffff, 0xf384f384, 0xf384f384, 0xffffff3b, 0x0000ffff, 0xf384f384, 0xf384f384, 0xfffffe98, 0xffffffff, 0xf384f384, 0xf384f384, 0xfffffdf5, 0xffffffff, 0xf384f384, 0xf384f384, 0xfffff551, 0xfe57ff7d, ], + [0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffff0000, 0x0000ffff, 0x00000000, 0xffffffff, 0xffffffff, 0xffffffff, 0x00000000, 0xffffffff, 0xffffffff, 0xffffffff, 0x00000000, 0xffbeffff, 0xfdb4fed9, 0xffffffff, 0x00000000, 0xf3a5f510, 0xf572f384, 0xffffffff, 0x00000000, ], + [0xffff0000, 0xff1bffff, 0xf384f384, 0xf384f384, 0xffff0000, 0xffffffff, 0xf384f4ad, 0xf384f384, 0x00000000, 0xffffffff, 0xf384feb9, 0xf384f384, 0x00000000, 0xffffffff, 0xf42affdf, 0xf384f384, 0x00000000, 0xffff0000, 0xfe56ffff, 0xf384f384, 0x00000000, 0xffff0000, 0xffbeffff, 0xf384f3c6, 0x00000000, 0x00000000, 0xffffffff, 0xf384fdd4, 0x00000000, 0xffff0000, 0xffffffff, 0xf3a4ff7c, ], + [0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf3c5f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf48cf384, ], + [0xfffff551, 0x0000ffff, 0x00000000, 0xffff0000, 0xfffffdd4, 0x0000ffff, 0x00000000, 0x00000000, 0xfffffe57, 0x0000ffff, 0x00000000, 0x00000000, 0xfffffed9, 0x0000ffff, 0x00000000, 0x00000000, 0xffffff5c, 0x0000ffff, 0x00000000, 0x00000000, 0xffffffbd, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, ], + [0xffffffff, 0xffffffff, 0xffffffff, 0xff9dffff, 0x00000000, 0xffff0000, 0xffffffff, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xffff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, ], + [0xf592feb9, 0xf3c6f42a, 0xf531f408, 0xff1bfe57, 0xffffffff, 0xff9dffff, 0xffffffde, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, ], + [0xffffffbe, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x0000ffff, 0xffffffff, 0x0000ffff, 0x00000000, 0x00000000, 0xffff0000, 0x00000000, 0x00000000, 0x00000000, 0xffff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, ], + [0xf384f593, 0xf384f384, 0xf384f384, 0xf384f384, 0xf4efffdf, 0xf384f384, 0xf384f384, 0xf3a4f384, 0xffbeffff, 0xf384f44b, 0xf384f384, 0xf48cf384, 0xffffffff, 0xf3e7ff5c, 0xf384f384, 0xf572f384, 0xffffffff, 0xfefaffff, 0xf384f3a5, 0xfe57f384, 0xffff0000, 0xffffffff, 0xf384fe56, 0xfefaf384, 0x00000000, 0xffffffff, 0xf5b3ffff, 0xff7df384, 0x00000000, 0xffff0000, 0xffffffff, 0xfffff572, ], + [0xffffff5c, 0x0000ffff, 0x00000000, 0x00000000, 0xffffffdf, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff, 0x00000000, 0x00000000, 0x00000000, ], + [0x00000000, 0x00000000, 0x00000000, 0xffff0000, 0x00000000, 0x00000000, 0xffff0000, 0xffffffff, 0x00000000, 0x00000000, 0xffff0000, 0xffffffff, 0x00000000, 0x00000000, 0xffff0000, 0xffdfffff, 0x00000000, 0x00000000, 0xffff0000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, ], + [0xffffffff, 0xffffffff, 0xffffffff, 0xfeb9ffbe, 0xffffffff, 0xffdeffff, 0xf552fed9, 0xf384f3c5, 0xfefaffdf, 0xf3c6f592, 0xf384f384, 0xf384f384, 0xf593fe77, 0xf44af510, 0xf3a5f3c6, 0xf384f3a4, 0xffffffff, 0xffffffff, 0xffbeffff, 0xff3cff7d, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, ], + [0xf3a5f530, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xfe98feda, 0xfdd4fe57, 0xf4cef572, 0xf3a5f429, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, ], + [0xf384f384, 0xf384f384, 0xf384f384, 0xf5b3f384, 0xf384f384, 0xf384f384, 0xf3c5f384, 0xfffffe78, 0xf384f384, 0xf384f384, 0xff3bf44a, 0xffffffff, 0xf384f384, 0xf510f384, 0xffffffbe, 0xffffffff, 0xf3a4f3a4, 0xfffffdf5, 0xffffffff, 0x0000ffff, 0xff9dff9d, 0xffffffff, 0x0000ffff, 0x00000000, 0xffffffff, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, ], + [0xffffffdf, 0xffffffff, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, ], + [0xffffffff, 0xff1bffff, 0xf384f3a5, 0xf384f384, 0xffff0000, 0xffffffff, 0xf384fe36, 0xf384f384, 0x00000000, 0xffffffff, 0xf530ffff, 0xf384f384, 0x00000000, 0xffff0000, 0xffbeffff, 0xf384f42a, 0x00000000, 0xffff0000, 0xffffffff, 0xf48cff3b, 0x00000000, 0x00000000, 0xffffffff, 0xffffffff, 0x00000000, 0x00000000, 0xffff0000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, ], + [0xf384f384, 0xf384f384, 0xf48cf3e8, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xf429f429, 0xf408f408, 0xf408f408, 0xf407f407, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, ], + [0xf384f384, 0xfeb9f384, 0xffffffff, 0x00000000, 0xf384f384, 0xffbef3a5, 0xffffffff, 0x00000000, 0xf384f384, 0xfffff510, 0x0000ffff, 0x00000000, 0xf384f384, 0xfffffe98, 0x0000ffff, 0x00000000, 0xf44af407, 0xffffffbe, 0x0000ffff, 0x00000000, 0xffffffff, 0xffffffff, 0x00000000, 0x00000000, 0xffffffff, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, ], + [0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffff0000, 0x00000000, 0x00000000, 0xffdf0000, 0xffffffff, 0x00000000, 0x00000000, 0xffff0000, 0xffffffff, 0x00000000, 0x00000000, 0xffff0000, 0xffdeffff, 0x00000000, 0x00000000, 0xffff0000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, ], + [0xffff0000, 0xffffffff, 0xffffffff, 0xf44bffbe, 0xffffffff, 0xffffffff, 0xfdf5ff9d, 0xf384f3c7, 0xffffffff, 0xfdd4ff9d, 0xf384f3c6, 0xf384f384, 0xfdb4ff9d, 0xf384f3c5, 0xf384f384, 0xf3a4f384, 0xfed9feb9, 0xff1bfefa, 0xff5cff3c, 0xff7cff5c, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x0000ffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, ], + [0xf384f384, 0xf384f384, 0xf384f384, 0xf551f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xfdd4f384, 0xf384f384, 0xf384f384, 0xf384f384, 0xfe77f384, 0xf3a4f3a4, 0xf3a5f3a5, 0xf3c6f3a5, 0xfefaf407, 0xff9dff9d, 0xffdeffbe, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, ], + [0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, ], [0x00000000, 0x00000000, 0xffffffff, 0xffffffff, 0x00000000, 0x00000000, 0xffffffff, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, ], - [0xffff0000, 0x00000000, 0x00000000, 0x00000000, 0xffff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, ], + [0x0000ffff, 0x00000000, 0x00000000, 0x00000000, 0x0000ffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, ], ]; #[rustfmt::skip] diff --git a/rust/k210-shared/src/board/lcd.rs b/rust/k210-shared/src/board/lcd.rs index d95efec..a9678a3 100644 --- a/rust/k210-shared/src/board/lcd.rs +++ b/rust/k210-shared/src/board/lcd.rs @@ -141,9 +141,7 @@ pub trait LCDLL { fn write_command(&self, cmd: command); /** Write bytes. These are provided as 32-bit units (ignoring the upper 24 bits) for efficient DMA */ fn write_byte(&self, data_buf: &[u32]); - /** Write halfs. These are provided as 32-bit units (ignoring the upper 16 bits) for efficient DMA */ - fn write_half(&self, data_buf: &[u32]); - /** Write words. */ + /** Write 32-bit words. */ fn write_word(&self, data_buf: &[u32]); fn fill_data(&self, data: u32, length: usize); } @@ -157,7 +155,7 @@ pub trait LCDHL { /** Clear the screen to a single RGB565 color. */ fn clear(&self, color: u16); /** Draw a picture, filling the entire screen or part of it. `data` packs two RGB565 pixels - * per u32 as 0xAAAABBBB. */ + * per u32 as 0xBBBBAAAA. */ fn draw_picture(&self, x1: u16, y1: u16, width: u16, height: u16, data: &[u32]); /** Shut down and turn off the screen. */ fn shutdown(&mut self); @@ -273,29 +271,13 @@ impl LCDLL for LCD<'_, X> { self.spi.send_data_dma(self.dmac, self.channel, self.spi_cs, data_buf); } - fn write_half(&self, data_buf: &[u32]) { - self.set_dcx_data(); - self.spi.configure( - work_mode::MODE0, - frame_format::OCTAL, - 16, /*data bits*/ - 0, /*endian*/ - 0, /*instruction length*/ - 16, /*address length*/ - 0, /*wait cycles*/ - aitm::AS_FRAME_FORMAT, - tmod::TRANS, - ); - self.spi.send_data_dma(self.dmac, self.channel, self.spi_cs, data_buf); - } - fn write_word(&self, data_buf: &[u32]) { self.set_dcx_data(); self.spi.configure( work_mode::MODE0, frame_format::OCTAL, 32, /*data bits*/ - 0, /*endian*/ + 1, /*endian*/ 0, /*instruction length*/ 32, /*address length*/ 0, /*wait cycles*/ @@ -333,6 +315,9 @@ impl LCDHL for LCD<'_, X> { self.write_command(command::SLPOUT); usleep(100000); /*pixel format*/ + self.write_command(command::RAMCTRL); + self.write_byte(&[0x00, 0xf0 | 0x08]); // little-endian + self.write_command(command::COLMOD); self.write_byte(&[0x55]); self.set_direction(direction::XY_LRUD); diff --git a/rust/k210-shared/src/board/lcd_render.rs b/rust/k210-shared/src/board/lcd_render.rs index 38300cb..c02047a 100644 --- a/rust/k210-shared/src/board/lcd_render.rs +++ b/rust/k210-shared/src/board/lcd_render.rs @@ -5,10 +5,38 @@ use crate::board::lcd::LCDHL; /** Array for representing an image of the entire screen. * This is an array of DISP_WIDTH / 2 × DISP_HEIGHT, each two horizontally consecutive - * pixels are encoded in a u32 with `(a << 16)|b`. + * pixels are encoded in a u32 with `(b << 16)|a`. */ pub type ScreenImage = [u32; DISP_PIXELS / 2]; +pub trait AsU8 { + fn as_u8_slice(&self) -> &[u8]; + fn as_u8_slice_mut(&mut self) -> &mut [u8]; +} + +pub trait AsU16 { + fn as_u16_slice(&self) -> &[u16]; + fn as_u16_slice_mut(&mut self) -> &mut [u16]; +} + +impl AsU8 for ScreenImage { + fn as_u8_slice(&self) -> &[u8] { + unsafe { core::slice::from_raw_parts(self.as_ptr() as *mut u8, DISP_PIXELS * 2) } + } + fn as_u8_slice_mut(&mut self) -> &mut [u8] { + unsafe { core::slice::from_raw_parts_mut(self.as_mut_ptr() as *mut u8, DISP_PIXELS * 2) } + } +} + +impl AsU16 for ScreenImage { + fn as_u16_slice(&self) -> &[u16] { + unsafe { core::slice::from_raw_parts(self.as_ptr() as *mut u16, DISP_PIXELS) } + } + fn as_u16_slice_mut(&mut self) -> &mut [u16] { + unsafe { core::slice::from_raw_parts_mut(self.as_mut_ptr() as *mut u16, DISP_PIXELS) } + } +} + pub fn render_image(lcd: &mut L, mut image: I) where L: LCDHL, @@ -21,7 +49,7 @@ where let yx = (0..DISP_HEIGHT) .flat_map(|y| core::iter::repeat(y).zip(0..DISP_WIDTH / 2)); idata.iter_mut().zip(yx).for_each(|(v, (y, x))| { - *v = (u32::from(image(x * 2 + 0, y)) << 16) | (u32::from(image(x * 2 + 1, y))); + *v = (u32::from(image(x * 2 + 0, y)) << 0) | (u32::from(image(x * 2 + 1, y)) << 16); }); // It would be possible to make draw_picture take an iterator directly diff --git a/rust/sdlcd/src/main.rs b/rust/sdlcd/src/main.rs index 0b960f9..0315639 100644 --- a/rust/sdlcd/src/main.rs +++ b/rust/sdlcd/src/main.rs @@ -14,6 +14,7 @@ use k210_hal::pac::Peripherals; use k210_shared::board::def::{io, DISP_HEIGHT, DISP_PIXELS, DISP_WIDTH}; use k210_shared::board::lcd::{self, LCD, LCDHL}; use k210_shared::board::lcd_colors; +use k210_shared::board::lcd_render::{AsU8, ScreenImage}; use k210_shared::board::sdcard; use k210_shared::soc::dmac::{dma_channel, DMACExt}; use k210_shared::soc::fpioa; @@ -28,8 +29,6 @@ const SD_CS_GPIONUM: u8 = 7; * in the FPIOA */ const SD_CS: u32 = 3; -pub type ScreenImage = [u32; DISP_PIXELS / 2]; - /** Connect pins to internal functions */ fn io_init() { /* Init SD card function settings */ @@ -93,23 +92,15 @@ fn main() -> ! { assert!(num_sectors > 0); let mut sector: u64 = 0; let mut image: ScreenImage = [0; DISP_PIXELS / 2]; - let mut buffer = [0u8; DISP_PIXELS * 2]; while sector < num_sectors { /* Read raw image */ - sd.read_sector(&mut buffer, sector.try_into().unwrap()) + sd.read_sector(image.as_u8_slice_mut(), sector.try_into().unwrap()) .unwrap(); + writeln!(stdout, "sector {} succesfully read", sector).unwrap(); - let mut i = buffer.iter(); - /* Combine into u32s, reordering 16-bit halves */ - for x in image.iter_mut() { - *x = (u32::from(*i.next().unwrap()) << 16) - | (u32::from(*i.next().unwrap()) << 24) - | (u32::from(*i.next().unwrap()) << 0) - | (u32::from(*i.next().unwrap()) << 8); - } lcd.draw_picture(0, 0, DISP_WIDTH, DISP_HEIGHT, &image); - sector += (buffer.len() / 512) as u64; + sector += (image.len() * 4 / 512) as u64; } loop {} } diff --git a/rust/voxel/src/main.rs b/rust/voxel/src/main.rs index 30819b9..b257479 100644 --- a/rust/voxel/src/main.rs +++ b/rust/voxel/src/main.rs @@ -11,7 +11,7 @@ use k210_hal::pac::Peripherals; use k210_shared::board::def::{io, DISP_HEIGHT, DISP_PIXELS, DISP_WIDTH, MSA300_SLV_ADDR,MSA300_ADDR_BITS,MSA300_CLK}; use k210_shared::board::lcd::{self, LCD, LCDHL}; use k210_shared::board::lcd_colors; -use k210_shared::board::lcd_render::ScreenImage; +use k210_shared::board::lcd_render::{AsU16, ScreenImage}; use k210_shared::board::msa300::Accelerometer; use k210_shared::soc::dmac::{dma_channel, DMACExt}; use k210_shared::soc::fpioa; @@ -131,7 +131,7 @@ struct Display { * a vertical line. */ trait VoxelTarget { - /** Draw a vertical line at x coordinate `cx`, from y coordinate `cy1` to `cy2`. */ + /** Draw a vertical line at x coordinate `cx`, from y coordinate `cy1` to `cy2`, exclusive. */ fn dvline(&mut self, cx: i32, cy1: i32, cy2: i32, color: Color); } @@ -141,25 +141,18 @@ impl Display { data: [0; DISP_PIXELS / 2], } } - - /** Image data as mutable [u16] for internal drawing use. */ - fn data(&mut self) -> &mut [u16] { - unsafe { core::slice::from_raw_parts_mut(self.data.as_ptr() as *mut u16, DISP_PIXELS) } - } } impl VoxelTarget for Display { - /** Draw a vertical line at x coordinate `cx`, from y coordinate `cy1` to `cy2`. */ - fn dvline(&mut self, cx: i32, cy1: i32, cy2: i32, color: Color) { - let data = self.data(); + fn dvline(&mut self, cx: i32, mut cy1: i32, mut cy2: i32, color: Color) { + let data = self.data.as_u16_slice_mut(); if cx < 0 || cx >= (DISP_WIDTH as i32) { return; } - let xofs = (cx ^ 1) as usize; + cy1 = core::cmp::max(cy1, 0); + cy2 = core::cmp::min(cy2, DISP_HEIGHT as i32); for y in cy1..cy2 { - if y >= 0 && y < (DISP_HEIGHT as i32) { - data[(y as usize) * (DISP_WIDTH as usize) + xofs] = color; - } + data[(y as usize) * (DISP_WIDTH as usize) + (cx as usize)] = color; } } }