diff --git a/ironrdp/src/basic_output/bitmap.rs b/ironrdp/src/basic_output/bitmap.rs index 1004917b..e9e97219 100644 --- a/ironrdp/src/basic_output/bitmap.rs +++ b/ironrdp/src/basic_output/bitmap.rs @@ -1,18 +1,15 @@ #[cfg(test)] mod tests; +use std::fmt::{self, Debug}; use std::io::{self, Write}; use bitflags::bitflags; use byteorder::{LittleEndian, ReadBytesExt, WriteBytesExt}; use failure::Fail; -use std::fmt::{self, Debug}; -use crate::{ - impl_from_error, - utils::{Rectangle, SplitTo}, - PduBufferParsing, PduParsing, -}; +use crate::utils::{Rectangle, SplitTo}; +use crate::{impl_from_error, PduBufferParsing, PduParsing}; pub const COMPRESSED_DATA_HEADER_SIZE: usize = 8; pub const BITMAP_DATA_MAIN_DATA_SIZE: usize = 12; @@ -57,10 +54,7 @@ impl<'a> PduBufferParsing<'a> for Bitmap<'a> { } fn buffer_length(&self) -> usize { - self.rectangles - .iter() - .map(|b| b.buffer_length()) - .sum::() + self.rectangles.iter().map(|b| b.buffer_length()).sum::() } } @@ -234,10 +228,7 @@ pub enum BitmapError { InvalidDataLength { actual: usize, expected: usize }, #[fail(display = "Compression is not supported for Bitmap data")] NotSupportedCompression, - #[fail( - display = "Invalid first row size, expected: {}, but got: {}", - actual, expected - )] + #[fail(display = "Invalid first row size, expected: {}, but got: {}", actual, expected)] InvalidFirstRowSize { actual: usize, expected: usize }, #[fail(display = "The width of the bitmap must be divisible by 4")] InvalidScanWidth, diff --git a/ironrdp/src/basic_output/bitmap/tests.rs b/ironrdp/src/basic_output/bitmap/tests.rs index c060de12..be0c8d3e 100644 --- a/ironrdp/src/basic_output/bitmap/tests.rs +++ b/ironrdp/src/basic_output/bitmap/tests.rs @@ -23,12 +23,11 @@ const BITMAP_BUFFER: [u8; 114] = [ 0x1c, 0x00, // ScanWidth - width of the bitmap in pixels(must be divisible by 4) = 28 // UncompressedSize - size in bytes of the bitmap data after it has been decompressed = 4 0x04, 0x00, // Bitmap data - 0x21, 0x00, 0x21, 0x00, 0x01, 0x00, 0x20, 0x09, 0x84, 0x21, 0x00, 0x21, 0x00, 0x21, 0x00, 0x12, - 0x00, 0x10, 0xd8, 0x20, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x1e, 0x21, - 0x00, 0x00, 0xa8, 0x83, 0x21, 0x00, 0x55, 0xad, 0xff, 0xff, 0x45, 0x29, 0x7a, 0xce, 0xa3, 0x10, - 0x0e, 0x82, 0x45, 0x29, 0x7a, 0xce, 0xd5, 0x82, 0x10, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0e, - 0x45, 0x29, 0x9e, 0xf7, 0xff, 0xff, 0x9e, 0xf7, 0x45, 0x29, 0x21, 0x00, 0x55, 0xad, 0x10, 0x10, - 0xa8, 0xd8, 0x60, 0x12, + 0x21, 0x00, 0x21, 0x00, 0x01, 0x00, 0x20, 0x09, 0x84, 0x21, 0x00, 0x21, 0x00, 0x21, 0x00, 0x12, 0x00, 0x10, 0xd8, + 0x20, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x1e, 0x21, 0x00, 0x00, 0xa8, 0x83, 0x21, 0x00, + 0x55, 0xad, 0xff, 0xff, 0x45, 0x29, 0x7a, 0xce, 0xa3, 0x10, 0x0e, 0x82, 0x45, 0x29, 0x7a, 0xce, 0xd5, 0x82, 0x10, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0e, 0x45, 0x29, 0x9e, 0xf7, 0xff, 0xff, 0x9e, 0xf7, 0x45, 0x29, 0x21, 0x00, + 0x55, 0xad, 0x10, 0x10, 0xa8, 0xd8, 0x60, 0x12, ]; lazy_static! { @@ -70,9 +69,7 @@ fn from_buffer_bitmap_data_parsses_correctly() { fn to_buffer_bitmap_data_serializes_correcly() { let expected = BITMAP_BUFFER.as_ref(); let mut buffer = vec![0; expected.len()]; - BITMAP - .to_buffer_consume(&mut buffer.as_mut_slice()) - .unwrap(); + BITMAP.to_buffer_consume(&mut buffer.as_mut_slice()).unwrap(); assert_eq!(expected, buffer.as_slice()); } diff --git a/ironrdp/src/basic_output/fast_path.rs b/ironrdp/src/basic_output/fast_path.rs index 21e3cddc..4af21759 100644 --- a/ironrdp/src/basic_output/fast_path.rs +++ b/ironrdp/src/basic_output/fast_path.rs @@ -10,12 +10,10 @@ use failure::Fail; use num_derive::{FromPrimitive, ToPrimitive}; use num_traits::{FromPrimitive, ToPrimitive}; -use super::{ - bitmap::{Bitmap, BitmapError}, - surface_commands::{SurfaceCommand, SurfaceCommandsError, SURFACE_COMMAND_HEADER_SIZE}, -}; - -use crate::{impl_from_error, per, utils::SplitTo, PduBufferParsing, PduParsing}; +use super::bitmap::{Bitmap, BitmapError}; +use super::surface_commands::{SurfaceCommand, SurfaceCommandsError, SURFACE_COMMAND_HEADER_SIZE}; +use crate::utils::SplitTo; +use crate::{impl_from_error, per, PduBufferParsing, PduParsing}; /// Implements the Fast-Path RDP message header PDU. #[derive(Debug, Clone, PartialEq)] @@ -26,10 +24,7 @@ pub struct FastPathHeader { } impl FastPathHeader { - pub fn from_buffer_with_header( - mut stream: impl io::Read, - header: u8, - ) -> Result { + pub fn from_buffer_with_header(mut stream: impl io::Read, header: u8) -> Result { let flags = EncryptionFlags::from_bits_truncate(header.get_bits(6..8)); let (length, sizeof_length) = per::read_length(&mut stream)?; @@ -73,10 +68,7 @@ impl PduParsing for FastPathHeader { // Preserve same layout for header as received per::write_long_length(stream, (self.data_length + self.buffer_length()) as u16)?; } else { - per::write_length( - stream, - (self.data_length + self.minimal_buffer_length()) as u16, - )?; + per::write_length(stream, (self.data_length + self.minimal_buffer_length()) as u16)?; } Ok(()) @@ -105,12 +97,11 @@ impl<'a> PduBufferParsing<'a> for FastPathUpdatePdu<'a> { let header = buffer.read_u8()?; let update_code = header.get_bits(0..4); - let update_code = UpdateCode::from_u8(update_code) - .ok_or(FastPathError::InvalidUpdateCode(update_code))?; + let update_code = UpdateCode::from_u8(update_code).ok_or(FastPathError::InvalidUpdateCode(update_code))?; let fragmentation = header.get_bits(4..6); - let fragmentation = Fragmentation::from_u8(fragmentation) - .ok_or(FastPathError::InvalidFragmentation(fragmentation))?; + let fragmentation = + Fragmentation::from_u8(fragmentation).ok_or(FastPathError::InvalidFragmentation(fragmentation))?; let compression = Compression::from_bits_truncate(header.get_bits(6..8)); if compression.contains(Compression::COMPRESSION_USED) { @@ -156,17 +147,11 @@ pub enum FastPathUpdate<'a> { } impl<'a> FastPathUpdate<'a> { - pub fn from_buffer_with_code( - mut buffer: &'a [u8], - code: UpdateCode, - ) -> Result { + pub fn from_buffer_with_code(mut buffer: &'a [u8], code: UpdateCode) -> Result { Self::from_buffer_consume_with_code(&mut buffer, code) } - pub fn from_buffer_consume_with_code( - buffer: &mut &'a [u8], - code: UpdateCode, - ) -> Result { + pub fn from_buffer_consume_with_code(buffer: &mut &'a [u8], code: UpdateCode) -> Result { match code { UpdateCode::SurfaceCommands => { let mut commands = Vec::with_capacity(1); @@ -201,9 +186,7 @@ impl<'a> FastPathUpdate<'a> { pub fn buffer_length(&self) -> usize { match self { - Self::SurfaceCommands(commands) => { - commands.iter().map(|c| c.buffer_length()).sum::() - } + Self::SurfaceCommands(commands) => commands.iter().map(|c| c.buffer_length()).sum::(), Self::Bitmap(bitmap) => bitmap.buffer_length(), } } @@ -281,19 +264,12 @@ pub enum FastPathError { InvalidFragmentation(u8), #[fail(display = "Received compressed Fast-Path package")] CompressionNotSupported, - #[fail( - display = "Input buffer is shorter then the data length: {} < {}", - actual, expected - )] + #[fail(display = "Input buffer is shorter then the data length: {} < {}", actual, expected)] InvalidDataLength { expected: usize, actual: usize }, #[fail(display = "Received unsupported Fast-Path Update: {:?}", _0)] UnsupportedFastPathUpdate(UpdateCode), } impl_from_error!(io::Error, FastPathError, FastPathError::IOError); -impl_from_error!( - SurfaceCommandsError, - FastPathError, - FastPathError::SurfaceCommandsError -); +impl_from_error!(SurfaceCommandsError, FastPathError, FastPathError::SurfaceCommandsError); impl_from_error!(BitmapError, FastPathError, FastPathError::BitmapError); diff --git a/ironrdp/src/basic_output/fast_path/test.rs b/ironrdp/src/basic_output/fast_path/test.rs index 03e99f41..204b6349 100644 --- a/ironrdp/src/basic_output/fast_path/test.rs +++ b/ironrdp/src/basic_output/fast_path/test.rs @@ -127,9 +127,7 @@ fn from_buffer_correctly_parses_fast_path_update() { #[test] fn from_buffer_returns_error_on_long_length_for_fast_path_update() { - assert!( - FastPathUpdatePdu::from_buffer(FAST_PATH_UPDATE_PDU_WITH_LONG_LEN_BUFFER.as_ref()).is_err() - ); + assert!(FastPathUpdatePdu::from_buffer(FAST_PATH_UPDATE_PDU_WITH_LONG_LEN_BUFFER.as_ref()).is_err()); } #[test] @@ -145,8 +143,5 @@ fn to_buffer_correctly_serializes_fast_path_update() { #[test] fn buffer_length_is_correct_for_fast_path_update() { - assert_eq!( - FAST_PATH_UPDATE_PDU_BUFFER.len(), - FAST_PATH_UPDATE_PDU.buffer_length() - ); + assert_eq!(FAST_PATH_UPDATE_PDU_BUFFER.len(), FAST_PATH_UPDATE_PDU.buffer_length()); } diff --git a/ironrdp/src/basic_output/surface_commands.rs b/ironrdp/src/basic_output/surface_commands.rs index c832296b..b707c295 100644 --- a/ironrdp/src/basic_output/surface_commands.rs +++ b/ironrdp/src/basic_output/surface_commands.rs @@ -9,7 +9,8 @@ use failure::Fail; use num_derive::{FromPrimitive, ToPrimitive}; use num_traits::{FromPrimitive, ToPrimitive}; -use crate::{impl_from_error, utils::Rectangle, utils::SplitTo, PduBufferParsing, PduParsing}; +use crate::utils::{Rectangle, SplitTo}; +use crate::{impl_from_error, PduBufferParsing, PduParsing}; pub const SURFACE_COMMAND_HEADER_SIZE: usize = 2; @@ -25,19 +26,17 @@ impl<'a> PduBufferParsing<'a> for SurfaceCommand<'a> { fn from_buffer_consume(buffer: &mut &'a [u8]) -> Result { let cmd_type = buffer.read_u16::()?; - let cmd_type = SurfaceCommandType::from_u16(cmd_type) - .ok_or(SurfaceCommandsError::InvalidSurfaceCommandType(cmd_type))?; + let cmd_type = + SurfaceCommandType::from_u16(cmd_type).ok_or(SurfaceCommandsError::InvalidSurfaceCommandType(cmd_type))?; match cmd_type { - SurfaceCommandType::SetSurfaceBits => Ok(Self::SetSurfaceBits( - SurfaceBitsPdu::from_buffer_consume(buffer)?, - )), - SurfaceCommandType::FrameMarker => Ok(Self::FrameMarker( - FrameMarkerPdu::from_buffer_consume(buffer)?, - )), - SurfaceCommandType::StreamSurfaceBits => Ok(Self::StreamSurfaceBits( - SurfaceBitsPdu::from_buffer_consume(buffer)?, - )), + SurfaceCommandType::SetSurfaceBits => { + Ok(Self::SetSurfaceBits(SurfaceBitsPdu::from_buffer_consume(buffer)?)) + } + SurfaceCommandType::FrameMarker => Ok(Self::FrameMarker(FrameMarkerPdu::from_buffer_consume(buffer)?)), + SurfaceCommandType::StreamSurfaceBits => { + Ok(Self::StreamSurfaceBits(SurfaceBitsPdu::from_buffer_consume(buffer)?)) + } } } @@ -46,9 +45,7 @@ impl<'a> PduBufferParsing<'a> for SurfaceCommand<'a> { buffer.write_u16::(cmd_type.to_u16().unwrap())?; match self { - Self::SetSurfaceBits(pdu) | Self::StreamSurfaceBits(pdu) => { - pdu.to_buffer_consume(buffer) - } + Self::SetSurfaceBits(pdu) | Self::StreamSurfaceBits(pdu) => pdu.to_buffer_consume(buffer), Self::FrameMarker(pdu) => pdu.to_buffer_consume(buffer), } } @@ -104,8 +101,8 @@ impl<'a> PduBufferParsing<'a> for FrameMarkerPdu { fn from_buffer_consume(buffer: &mut &[u8]) -> Result { let frame_action = buffer.read_u16::()?; - let frame_action = FrameAction::from_u16(frame_action) - .ok_or(SurfaceCommandsError::InvalidFrameAction(frame_action))?; + let frame_action = + FrameAction::from_u16(frame_action).ok_or(SurfaceCommandsError::InvalidFrameAction(frame_action))?; let frame_id = if buffer.is_empty() { // Sometimes Windows 10 RDP server sends not complete FrameMarker PDU (without frame ID), @@ -116,10 +113,7 @@ impl<'a> PduBufferParsing<'a> for FrameMarkerPdu { Some(buffer.read_u32::()?) }; - Ok(Self { - frame_action, - frame_id, - }) + Ok(Self { frame_action, frame_id }) } fn to_buffer_consume(&self, buffer: &mut &mut [u8]) -> Result<(), Self::Error> { @@ -202,12 +196,7 @@ impl<'a> PduBufferParsing<'a> for ExtendedBitmapDataPdu<'a> { } fn buffer_length(&self) -> usize { - 12 + self - .header - .as_ref() - .map(PduBufferParsing::buffer_length) - .unwrap_or(0) - + self.data.len() + 12 + self.header.as_ref().map(PduBufferParsing::buffer_length).unwrap_or(0) + self.data.len() } } @@ -289,15 +278,8 @@ pub enum SurfaceCommandsError { InvalidSurfaceCommandType(u16), #[fail(display = "Invalid Frame Marker action: {}", _0)] InvalidFrameAction(u16), - #[fail( - display = "Input buffer is shorter then the data length: {} < {}", - actual, expected - )] + #[fail(display = "Input buffer is shorter then the data length: {} < {}", actual, expected)] InvalidDataLength { expected: usize, actual: usize }, } -impl_from_error!( - io::Error, - SurfaceCommandsError, - SurfaceCommandsError::IOError -); +impl_from_error!(io::Error, SurfaceCommandsError, SurfaceCommandsError::IOError); diff --git a/ironrdp/src/basic_output/surface_commands/tests.rs b/ironrdp/src/basic_output/surface_commands/tests.rs index 0b8e7dcf..8181df89 100644 --- a/ironrdp/src/basic_output/surface_commands/tests.rs +++ b/ironrdp/src/basic_output/surface_commands/tests.rs @@ -5,81 +5,68 @@ use super::*; const FRAME_MARKER_BUFFER: [u8; 8] = [0x4, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0]; const SURFACE_BITS_BUFFER: [u8; 1217] = [ - 0x6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0x7, 0x38, 0x4, 0x20, 0x0, 0x0, 0x3, 0x80, 0x7, 0x38, 0x4, - 0xab, 0x4, 0x0, 0x0, 0xc4, 0xcc, 0xe, 0x0, 0x0, 0x0, 0x1, 0x0, 0x4, 0x0, 0x0, 0x0, 0x1, 0x0, - 0xc6, 0xcc, 0x17, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x1, 0x0, 0x70, 0x7, 0xa0, 0x0, 0x10, 0x0, - 0xc0, 0x0, 0xc1, 0xca, 0x1, 0x0, 0xc7, 0xcc, 0x7e, 0x4, 0x0, 0x0, 0x1, 0x0, 0xc2, 0xca, 0x0, - 0x0, 0x51, 0x50, 0x1, 0x40, 0x4, 0x0, 0x63, 0x4, 0x0, 0x0, 0x66, 0x66, 0x77, 0x88, 0x98, 0xc3, - 0xca, 0x25, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1d, 0x0, 0x2, 0x0, 0x0, 0x1, 0xd, 0x0, 0x5, 0x0, - 0x6, 0x41, 0xb8, 0xbc, 0x5e, 0x7e, 0x2f, 0x3f, 0x17, 0x9f, 0x8b, 0xc3, 0xf9, 0x7c, 0xbe, 0x7e, - 0x7e, 0x2f, 0x43, 0xb3, 0x85, 0x68, 0xe4, 0x70, 0x46, 0x8e, 0x47, 0xa, 0xc8, 0xe4, 0x60, 0x46, - 0x47, 0x23, 0x5, 0x64, 0x72, 0x30, 0x23, 0x23, 0x91, 0x82, 0xb2, 0x39, 0x18, 0x11, 0x91, 0xc8, - 0xc1, 0x59, 0x1c, 0x8c, 0x8, 0xc8, 0xe4, 0x60, 0xac, 0x8e, 0x46, 0x4, 0x64, 0x72, 0x30, 0x56, - 0x47, 0x23, 0x2, 0x32, 0x39, 0x18, 0x0, 0xcd, 0xb0, 0x34, 0x1a, 0x1a, 0x1a, 0x34, 0xd6, 0xb7, - 0xe7, 0xc7, 0xc7, 0x4e, 0x9d, 0x3a, 0x69, 0x0, 0x1, 0xf, 0x20, 0xc8, 0x32, 0x19, 0x18, 0x0, - 0xf, 0xe6, 0x43, 0xe4, 0x7c, 0x8f, 0xa7, 0xd7, 0xdf, 0xbf, 0x89, 0x32, 0x8e, 0x82, 0x13, 0xff, - 0xe0, 0x84, 0x82, 0x1f, 0xfe, 0x60, 0x1c, 0xa0, 0x83, 0xff, 0xcc, 0x0, 0xa2, 0x82, 0xf, 0xc6, - 0x0, 0x52, 0x82, 0xf, 0xc6, 0x0, 0xa5, 0x4, 0x1f, 0xfe, 0x60, 0x5, 0x14, 0x10, 0x7e, 0x30, 0x0, - 0x18, 0xdc, 0x2e, 0x2e, 0x5c, 0xdb, 0x7f, 0x8f, 0xd3, 0xc9, 0x46, 0x0, 0x22, 0x10, 0x10, 0xa, - 0x13, 0xcb, 0xcb, 0x20, 0x0, 0x7e, 0x11, 0x13, 0xa8, 0x82, 0xd8, 0x8d, 0xc4, 0xc5, 0x88, 0x4f, - 0xf4, 0x9, 0xff, 0xff, 0xd1, 0x6, 0xf8, 0x88, 0x13, 0xe2, 0x20, 0x32, 0x65, 0xaf, 0x1e, 0x38, - 0x18, 0x4c, 0x25, 0x4a, 0xc0, 0x27, 0x80, 0x1a, 0xb, 0xdc, 0x1, 0x47, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xbb, 0x0, 0xa4, 0xd, 0x1, 0x25, 0x80, 0xa8, 0x18, 0x4a, 0x40, 0x18, 0x0, - 0x48, 0xa2, 0xa8, 0x0, 0x10, 0x74, 0xd6, 0x80, 0x8, 0xc4, 0x1b, 0x89, 0x10, 0x0, 0x28, 0xdf, - 0xff, 0xf6, 0xa1, 0xc0, 0x0, 0x70, 0xde, 0x4, 0xf2, 0x0, 0x7, 0xd, 0x73, 0xe4, 0x0, 0x0, 0x0, - 0x1f, 0x10, 0x40, 0xb4, 0x4, 0x85, 0xa0, 0x48, 0xb2, 0x40, 0x0, 0x0, 0x0, 0x8, 0x6, 0x0, 0xc3, - 0xca, 0x30, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1d, 0x0, 0x3, 0x0, 0x13, 0x1, 0x5, 0x0, 0x5, 0x0, - 0x6, 0x49, 0xc9, 0x81, 0xf2, 0x39, 0x30, 0x23, 0x23, 0x91, 0x81, 0x19, 0x1c, 0x8c, 0x15, 0x91, - 0xc8, 0xc0, 0x8c, 0x8e, 0x46, 0xa, 0xc8, 0xe4, 0x60, 0x46, 0x47, 0x23, 0x5, 0x64, 0x72, 0x30, - 0x23, 0x23, 0x91, 0x82, 0xb2, 0x39, 0x18, 0x11, 0x91, 0xc8, 0xc1, 0x59, 0x1c, 0x8c, 0x8, 0xc8, - 0xe4, 0x60, 0xac, 0x8e, 0x46, 0x4, 0x64, 0x72, 0x30, 0x56, 0x47, 0x23, 0x2, 0x32, 0x39, 0x18, - 0x2b, 0x23, 0x91, 0x81, 0x19, 0x1c, 0x8c, 0x15, 0x91, 0xc8, 0xc0, 0x8c, 0x8e, 0x46, 0xa, 0xc8, - 0xe4, 0x60, 0x46, 0x47, 0x23, 0x5, 0x64, 0x72, 0x30, 0x23, 0x23, 0x91, 0x82, 0xb2, 0x39, 0x18, - 0x11, 0x91, 0xc8, 0xc1, 0x59, 0x1c, 0x8c, 0x8, 0xc8, 0xe4, 0x60, 0xac, 0x8e, 0x46, 0x4, 0x64, - 0x72, 0x30, 0x0, 0x4, 0x19, 0x48, 0x0, 0x40, 0x8, 0x7, 0xff, 0x46, 0x24, 0x1, 0x0, 0x83, 0xef, - 0xa, 0x4, 0x13, 0xe8, 0x42, 0x41, 0xf, 0xff, 0x30, 0xe, 0x50, 0x41, 0xff, 0xe6, 0x0, 0x51, - 0x41, 0x7, 0xe3, 0x0, 0x29, 0x41, 0x7, 0xe3, 0x0, 0x52, 0x82, 0xf, 0xff, 0x30, 0x2, 0x8a, 0x8, - 0x3f, 0x18, 0x1, 0x4a, 0x8, 0x3f, 0x18, 0x2, 0x94, 0x10, 0x7f, 0xf9, 0x80, 0x14, 0x50, 0x41, - 0xf8, 0xc0, 0xa, 0x50, 0x41, 0xf8, 0xc0, 0x14, 0xa0, 0x83, 0xff, 0xcc, 0x0, 0xa2, 0x82, 0xf, - 0xc6, 0x0, 0x52, 0x82, 0xf, 0xc6, 0x0, 0x0, 0x10, 0x7f, 0x88, 0x1, 0x46, 0xf8, 0x80, 0x53, - 0x70, 0x80, 0xbb, 0x84, 0x13, 0x70, 0x84, 0x6e, 0x10, 0x80, 0x9f, 0x10, 0x81, 0xbe, 0x21, 0x0, - 0x1, 0x9, 0xff, 0xff, 0xff, 0xfd, 0x4b, 0xd, 0xb, 0xc8, 0x20, 0xf6, 0x1a, 0x5e, 0x4c, 0x32, - 0xc3, 0x5b, 0x9e, 0x44, 0x40, 0x5, 0xd, 0x6e, 0x79, 0x11, 0x0, 0x14, 0x37, 0xf8, 0x27, 0x90, - 0x0, 0x38, 0x6f, 0x2, 0x79, 0x0, 0x3, 0x86, 0xff, 0x4, 0xf2, 0x0, 0x7, 0xd, 0x73, 0xe4, 0x0, - 0x0, 0x0, 0x8, 0x6, 0x0, 0x0, 0x0, 0x8, 0x6, 0x0, 0xc3, 0xca, 0x30, 0x1, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x1d, 0x0, 0x4, 0x0, 0x13, 0x1, 0x5, 0x0, 0x5, 0x0, 0x6, 0x49, 0xc9, 0x81, 0xf2, 0x39, - 0x30, 0x23, 0x23, 0x91, 0x81, 0x19, 0x1c, 0x8c, 0x15, 0x91, 0xc8, 0xc0, 0x8c, 0x8e, 0x46, 0xa, - 0xc8, 0xe4, 0x60, 0x46, 0x47, 0x23, 0x5, 0x64, 0x72, 0x30, 0x23, 0x23, 0x91, 0x82, 0xb2, 0x39, - 0x18, 0x11, 0x91, 0xc8, 0xc1, 0x59, 0x1c, 0x8c, 0x8, 0xc8, 0xe4, 0x60, 0xac, 0x8e, 0x46, 0x4, - 0x64, 0x72, 0x30, 0x56, 0x47, 0x23, 0x2, 0x32, 0x39, 0x18, 0x2b, 0x23, 0x91, 0x81, 0x19, 0x1c, - 0x8c, 0x15, 0x91, 0xc8, 0xc0, 0x8c, 0x8e, 0x46, 0xa, 0xc8, 0xe4, 0x60, 0x46, 0x47, 0x23, 0x5, - 0x64, 0x72, 0x30, 0x23, 0x23, 0x91, 0x82, 0xb2, 0x39, 0x18, 0x11, 0x91, 0xc8, 0xc1, 0x59, 0x1c, - 0x8c, 0x8, 0xc8, 0xe4, 0x60, 0xac, 0x8e, 0x46, 0x4, 0x64, 0x72, 0x30, 0x0, 0x4, 0x19, 0x48, - 0x0, 0x40, 0x8, 0x7, 0xff, 0x46, 0x24, 0x1, 0x0, 0x83, 0xef, 0xa, 0x4, 0x13, 0xe8, 0x42, 0x41, - 0xf, 0xff, 0x30, 0xe, 0x50, 0x41, 0xff, 0xe6, 0x0, 0x51, 0x41, 0x7, 0xe3, 0x0, 0x29, 0x41, 0x7, - 0xe3, 0x0, 0x52, 0x82, 0xf, 0xff, 0x30, 0x2, 0x8a, 0x8, 0x3f, 0x18, 0x1, 0x4a, 0x8, 0x3f, 0x18, - 0x2, 0x94, 0x10, 0x7f, 0xf9, 0x80, 0x14, 0x50, 0x41, 0xf8, 0xc0, 0xa, 0x50, 0x41, 0xf8, 0xc0, - 0x14, 0xa0, 0x83, 0xff, 0xcc, 0x0, 0xa2, 0x82, 0xf, 0xc6, 0x0, 0x52, 0x82, 0xf, 0xc6, 0x0, 0x0, - 0x10, 0x7f, 0x88, 0x1, 0x46, 0xf8, 0x80, 0x53, 0x70, 0x80, 0xbb, 0x84, 0x13, 0x70, 0x84, 0x6e, - 0x10, 0x80, 0x9f, 0x10, 0x81, 0xbe, 0x21, 0x0, 0x1, 0x9, 0xff, 0xff, 0xff, 0xfd, 0x4b, 0xd, - 0xb, 0xc8, 0x20, 0xf6, 0x1a, 0x5e, 0x4c, 0x32, 0xc3, 0x5b, 0x9e, 0x44, 0x40, 0x5, 0xd, 0x6e, - 0x79, 0x11, 0x0, 0x14, 0x37, 0xf8, 0x27, 0x90, 0x0, 0x38, 0x6f, 0x2, 0x79, 0x0, 0x3, 0x86, - 0xff, 0x4, 0xf2, 0x0, 0x7, 0xd, 0x73, 0xe4, 0x0, 0x0, 0x0, 0x8, 0x6, 0x0, 0x0, 0x0, 0x8, 0x6, - 0x0, 0xc3, 0xca, 0xde, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1d, 0x0, 0x5, 0x0, 0xc1, 0x0, 0x5, 0x0, - 0x5, 0x0, 0x6, 0x49, 0xc9, 0x81, 0xf2, 0x39, 0x30, 0x23, 0x23, 0x91, 0x81, 0x19, 0x1c, 0x8c, - 0x15, 0x91, 0xc8, 0xc0, 0x8c, 0x8e, 0x46, 0xa, 0xc8, 0xe4, 0x60, 0x46, 0x47, 0x23, 0x5, 0x64, - 0x72, 0x30, 0x23, 0xb, 0xc5, 0xe7, 0xe2, 0xf3, 0xf1, 0x79, 0xf8, 0xbc, 0xfc, 0x5e, 0x7e, 0x2f, - 0x3f, 0x17, 0x9f, 0x8b, 0xcf, 0xc5, 0xe7, 0xe2, 0xf3, 0xf1, 0x78, 0xc, 0x1e, 0x81, 0xd0, 0x74, - 0x3a, 0x18, 0x0, 0xb, 0xf5, 0x20, 0x1, 0x0, 0x20, 0x1f, 0xfd, 0x31, 0x20, 0x8, 0x4, 0x1f, 0x54, - 0x28, 0x10, 0x47, 0xd0, 0x84, 0x82, 0x13, 0xe8, 0x19, 0x21, 0xf, 0xff, 0x30, 0x5, 0xa4, 0x81, - 0x52, 0x7d, 0x2e, 0x97, 0x5f, 0x4b, 0xcf, 0xc5, 0xe7, 0xe2, 0xf0, 0x60, 0x40, 0x80, 0x8a, 0x1e, - 0x8f, 0x4c, 0x0, 0x4, 0x4, 0x85, 0x9, 0x6f, 0xff, 0xfa, 0x1, 0x4d, 0xf1, 0x2, 0xb7, 0xa8, 0x14, - 0x84, 0x92, 0x5, 0xa6, 0x16, 0x84, 0x16, 0x8c, 0x5e, 0x1, 0x24, 0x3f, 0xff, 0x80, 0x98, 0xe1, - 0x2, 0x7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf2, 0xb0, 0x1a, 0x21, 0xe4, 0x4, 0x35, - 0x80, 0xd2, 0x3c, 0x84, 0x30, 0x3, 0x81, 0xa9, 0xa3, 0xc7, 0x80, 0xc, 0x0, 0x41, 0x24, 0x20, - 0x0, 0x5, 0x12, 0xaa, 0xa0, 0x1, 0xc4, 0xe5, 0x54, 0x0, 0x72, 0x72, 0xaa, 0x0, 0x72, 0x4b, - 0x50, 0x0, 0x0, 0x8, 0x6, 0x0, 0x0, 0x0, 0x8, 0x6, 0x0, 0xc5, 0xcc, 0x8, 0x0, 0x0, 0x0, 0x1, - 0x0, + 0x6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0x7, 0x38, 0x4, 0x20, 0x0, 0x0, 0x3, 0x80, 0x7, 0x38, 0x4, 0xab, 0x4, 0x0, 0x0, + 0xc4, 0xcc, 0xe, 0x0, 0x0, 0x0, 0x1, 0x0, 0x4, 0x0, 0x0, 0x0, 0x1, 0x0, 0xc6, 0xcc, 0x17, 0x0, 0x0, 0x0, 0x1, 0x0, + 0x1, 0x1, 0x0, 0x70, 0x7, 0xa0, 0x0, 0x10, 0x0, 0xc0, 0x0, 0xc1, 0xca, 0x1, 0x0, 0xc7, 0xcc, 0x7e, 0x4, 0x0, 0x0, + 0x1, 0x0, 0xc2, 0xca, 0x0, 0x0, 0x51, 0x50, 0x1, 0x40, 0x4, 0x0, 0x63, 0x4, 0x0, 0x0, 0x66, 0x66, 0x77, 0x88, 0x98, + 0xc3, 0xca, 0x25, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1d, 0x0, 0x2, 0x0, 0x0, 0x1, 0xd, 0x0, 0x5, 0x0, 0x6, 0x41, 0xb8, + 0xbc, 0x5e, 0x7e, 0x2f, 0x3f, 0x17, 0x9f, 0x8b, 0xc3, 0xf9, 0x7c, 0xbe, 0x7e, 0x7e, 0x2f, 0x43, 0xb3, 0x85, 0x68, + 0xe4, 0x70, 0x46, 0x8e, 0x47, 0xa, 0xc8, 0xe4, 0x60, 0x46, 0x47, 0x23, 0x5, 0x64, 0x72, 0x30, 0x23, 0x23, 0x91, + 0x82, 0xb2, 0x39, 0x18, 0x11, 0x91, 0xc8, 0xc1, 0x59, 0x1c, 0x8c, 0x8, 0xc8, 0xe4, 0x60, 0xac, 0x8e, 0x46, 0x4, + 0x64, 0x72, 0x30, 0x56, 0x47, 0x23, 0x2, 0x32, 0x39, 0x18, 0x0, 0xcd, 0xb0, 0x34, 0x1a, 0x1a, 0x1a, 0x34, 0xd6, + 0xb7, 0xe7, 0xc7, 0xc7, 0x4e, 0x9d, 0x3a, 0x69, 0x0, 0x1, 0xf, 0x20, 0xc8, 0x32, 0x19, 0x18, 0x0, 0xf, 0xe6, 0x43, + 0xe4, 0x7c, 0x8f, 0xa7, 0xd7, 0xdf, 0xbf, 0x89, 0x32, 0x8e, 0x82, 0x13, 0xff, 0xe0, 0x84, 0x82, 0x1f, 0xfe, 0x60, + 0x1c, 0xa0, 0x83, 0xff, 0xcc, 0x0, 0xa2, 0x82, 0xf, 0xc6, 0x0, 0x52, 0x82, 0xf, 0xc6, 0x0, 0xa5, 0x4, 0x1f, 0xfe, + 0x60, 0x5, 0x14, 0x10, 0x7e, 0x30, 0x0, 0x18, 0xdc, 0x2e, 0x2e, 0x5c, 0xdb, 0x7f, 0x8f, 0xd3, 0xc9, 0x46, 0x0, + 0x22, 0x10, 0x10, 0xa, 0x13, 0xcb, 0xcb, 0x20, 0x0, 0x7e, 0x11, 0x13, 0xa8, 0x82, 0xd8, 0x8d, 0xc4, 0xc5, 0x88, + 0x4f, 0xf4, 0x9, 0xff, 0xff, 0xd1, 0x6, 0xf8, 0x88, 0x13, 0xe2, 0x20, 0x32, 0x65, 0xaf, 0x1e, 0x38, 0x18, 0x4c, + 0x25, 0x4a, 0xc0, 0x27, 0x80, 0x1a, 0xb, 0xdc, 0x1, 0x47, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbb, 0x0, + 0xa4, 0xd, 0x1, 0x25, 0x80, 0xa8, 0x18, 0x4a, 0x40, 0x18, 0x0, 0x48, 0xa2, 0xa8, 0x0, 0x10, 0x74, 0xd6, 0x80, 0x8, + 0xc4, 0x1b, 0x89, 0x10, 0x0, 0x28, 0xdf, 0xff, 0xf6, 0xa1, 0xc0, 0x0, 0x70, 0xde, 0x4, 0xf2, 0x0, 0x7, 0xd, 0x73, + 0xe4, 0x0, 0x0, 0x0, 0x1f, 0x10, 0x40, 0xb4, 0x4, 0x85, 0xa0, 0x48, 0xb2, 0x40, 0x0, 0x0, 0x0, 0x8, 0x6, 0x0, 0xc3, + 0xca, 0x30, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1d, 0x0, 0x3, 0x0, 0x13, 0x1, 0x5, 0x0, 0x5, 0x0, 0x6, 0x49, 0xc9, + 0x81, 0xf2, 0x39, 0x30, 0x23, 0x23, 0x91, 0x81, 0x19, 0x1c, 0x8c, 0x15, 0x91, 0xc8, 0xc0, 0x8c, 0x8e, 0x46, 0xa, + 0xc8, 0xe4, 0x60, 0x46, 0x47, 0x23, 0x5, 0x64, 0x72, 0x30, 0x23, 0x23, 0x91, 0x82, 0xb2, 0x39, 0x18, 0x11, 0x91, + 0xc8, 0xc1, 0x59, 0x1c, 0x8c, 0x8, 0xc8, 0xe4, 0x60, 0xac, 0x8e, 0x46, 0x4, 0x64, 0x72, 0x30, 0x56, 0x47, 0x23, + 0x2, 0x32, 0x39, 0x18, 0x2b, 0x23, 0x91, 0x81, 0x19, 0x1c, 0x8c, 0x15, 0x91, 0xc8, 0xc0, 0x8c, 0x8e, 0x46, 0xa, + 0xc8, 0xe4, 0x60, 0x46, 0x47, 0x23, 0x5, 0x64, 0x72, 0x30, 0x23, 0x23, 0x91, 0x82, 0xb2, 0x39, 0x18, 0x11, 0x91, + 0xc8, 0xc1, 0x59, 0x1c, 0x8c, 0x8, 0xc8, 0xe4, 0x60, 0xac, 0x8e, 0x46, 0x4, 0x64, 0x72, 0x30, 0x0, 0x4, 0x19, 0x48, + 0x0, 0x40, 0x8, 0x7, 0xff, 0x46, 0x24, 0x1, 0x0, 0x83, 0xef, 0xa, 0x4, 0x13, 0xe8, 0x42, 0x41, 0xf, 0xff, 0x30, + 0xe, 0x50, 0x41, 0xff, 0xe6, 0x0, 0x51, 0x41, 0x7, 0xe3, 0x0, 0x29, 0x41, 0x7, 0xe3, 0x0, 0x52, 0x82, 0xf, 0xff, + 0x30, 0x2, 0x8a, 0x8, 0x3f, 0x18, 0x1, 0x4a, 0x8, 0x3f, 0x18, 0x2, 0x94, 0x10, 0x7f, 0xf9, 0x80, 0x14, 0x50, 0x41, + 0xf8, 0xc0, 0xa, 0x50, 0x41, 0xf8, 0xc0, 0x14, 0xa0, 0x83, 0xff, 0xcc, 0x0, 0xa2, 0x82, 0xf, 0xc6, 0x0, 0x52, 0x82, + 0xf, 0xc6, 0x0, 0x0, 0x10, 0x7f, 0x88, 0x1, 0x46, 0xf8, 0x80, 0x53, 0x70, 0x80, 0xbb, 0x84, 0x13, 0x70, 0x84, 0x6e, + 0x10, 0x80, 0x9f, 0x10, 0x81, 0xbe, 0x21, 0x0, 0x1, 0x9, 0xff, 0xff, 0xff, 0xfd, 0x4b, 0xd, 0xb, 0xc8, 0x20, 0xf6, + 0x1a, 0x5e, 0x4c, 0x32, 0xc3, 0x5b, 0x9e, 0x44, 0x40, 0x5, 0xd, 0x6e, 0x79, 0x11, 0x0, 0x14, 0x37, 0xf8, 0x27, + 0x90, 0x0, 0x38, 0x6f, 0x2, 0x79, 0x0, 0x3, 0x86, 0xff, 0x4, 0xf2, 0x0, 0x7, 0xd, 0x73, 0xe4, 0x0, 0x0, 0x0, 0x8, + 0x6, 0x0, 0x0, 0x0, 0x8, 0x6, 0x0, 0xc3, 0xca, 0x30, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1d, 0x0, 0x4, 0x0, 0x13, 0x1, + 0x5, 0x0, 0x5, 0x0, 0x6, 0x49, 0xc9, 0x81, 0xf2, 0x39, 0x30, 0x23, 0x23, 0x91, 0x81, 0x19, 0x1c, 0x8c, 0x15, 0x91, + 0xc8, 0xc0, 0x8c, 0x8e, 0x46, 0xa, 0xc8, 0xe4, 0x60, 0x46, 0x47, 0x23, 0x5, 0x64, 0x72, 0x30, 0x23, 0x23, 0x91, + 0x82, 0xb2, 0x39, 0x18, 0x11, 0x91, 0xc8, 0xc1, 0x59, 0x1c, 0x8c, 0x8, 0xc8, 0xe4, 0x60, 0xac, 0x8e, 0x46, 0x4, + 0x64, 0x72, 0x30, 0x56, 0x47, 0x23, 0x2, 0x32, 0x39, 0x18, 0x2b, 0x23, 0x91, 0x81, 0x19, 0x1c, 0x8c, 0x15, 0x91, + 0xc8, 0xc0, 0x8c, 0x8e, 0x46, 0xa, 0xc8, 0xe4, 0x60, 0x46, 0x47, 0x23, 0x5, 0x64, 0x72, 0x30, 0x23, 0x23, 0x91, + 0x82, 0xb2, 0x39, 0x18, 0x11, 0x91, 0xc8, 0xc1, 0x59, 0x1c, 0x8c, 0x8, 0xc8, 0xe4, 0x60, 0xac, 0x8e, 0x46, 0x4, + 0x64, 0x72, 0x30, 0x0, 0x4, 0x19, 0x48, 0x0, 0x40, 0x8, 0x7, 0xff, 0x46, 0x24, 0x1, 0x0, 0x83, 0xef, 0xa, 0x4, + 0x13, 0xe8, 0x42, 0x41, 0xf, 0xff, 0x30, 0xe, 0x50, 0x41, 0xff, 0xe6, 0x0, 0x51, 0x41, 0x7, 0xe3, 0x0, 0x29, 0x41, + 0x7, 0xe3, 0x0, 0x52, 0x82, 0xf, 0xff, 0x30, 0x2, 0x8a, 0x8, 0x3f, 0x18, 0x1, 0x4a, 0x8, 0x3f, 0x18, 0x2, 0x94, + 0x10, 0x7f, 0xf9, 0x80, 0x14, 0x50, 0x41, 0xf8, 0xc0, 0xa, 0x50, 0x41, 0xf8, 0xc0, 0x14, 0xa0, 0x83, 0xff, 0xcc, + 0x0, 0xa2, 0x82, 0xf, 0xc6, 0x0, 0x52, 0x82, 0xf, 0xc6, 0x0, 0x0, 0x10, 0x7f, 0x88, 0x1, 0x46, 0xf8, 0x80, 0x53, + 0x70, 0x80, 0xbb, 0x84, 0x13, 0x70, 0x84, 0x6e, 0x10, 0x80, 0x9f, 0x10, 0x81, 0xbe, 0x21, 0x0, 0x1, 0x9, 0xff, + 0xff, 0xff, 0xfd, 0x4b, 0xd, 0xb, 0xc8, 0x20, 0xf6, 0x1a, 0x5e, 0x4c, 0x32, 0xc3, 0x5b, 0x9e, 0x44, 0x40, 0x5, 0xd, + 0x6e, 0x79, 0x11, 0x0, 0x14, 0x37, 0xf8, 0x27, 0x90, 0x0, 0x38, 0x6f, 0x2, 0x79, 0x0, 0x3, 0x86, 0xff, 0x4, 0xf2, + 0x0, 0x7, 0xd, 0x73, 0xe4, 0x0, 0x0, 0x0, 0x8, 0x6, 0x0, 0x0, 0x0, 0x8, 0x6, 0x0, 0xc3, 0xca, 0xde, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x1d, 0x0, 0x5, 0x0, 0xc1, 0x0, 0x5, 0x0, 0x5, 0x0, 0x6, 0x49, 0xc9, 0x81, 0xf2, 0x39, 0x30, 0x23, + 0x23, 0x91, 0x81, 0x19, 0x1c, 0x8c, 0x15, 0x91, 0xc8, 0xc0, 0x8c, 0x8e, 0x46, 0xa, 0xc8, 0xe4, 0x60, 0x46, 0x47, + 0x23, 0x5, 0x64, 0x72, 0x30, 0x23, 0xb, 0xc5, 0xe7, 0xe2, 0xf3, 0xf1, 0x79, 0xf8, 0xbc, 0xfc, 0x5e, 0x7e, 0x2f, + 0x3f, 0x17, 0x9f, 0x8b, 0xcf, 0xc5, 0xe7, 0xe2, 0xf3, 0xf1, 0x78, 0xc, 0x1e, 0x81, 0xd0, 0x74, 0x3a, 0x18, 0x0, + 0xb, 0xf5, 0x20, 0x1, 0x0, 0x20, 0x1f, 0xfd, 0x31, 0x20, 0x8, 0x4, 0x1f, 0x54, 0x28, 0x10, 0x47, 0xd0, 0x84, 0x82, + 0x13, 0xe8, 0x19, 0x21, 0xf, 0xff, 0x30, 0x5, 0xa4, 0x81, 0x52, 0x7d, 0x2e, 0x97, 0x5f, 0x4b, 0xcf, 0xc5, 0xe7, + 0xe2, 0xf0, 0x60, 0x40, 0x80, 0x8a, 0x1e, 0x8f, 0x4c, 0x0, 0x4, 0x4, 0x85, 0x9, 0x6f, 0xff, 0xfa, 0x1, 0x4d, 0xf1, + 0x2, 0xb7, 0xa8, 0x14, 0x84, 0x92, 0x5, 0xa6, 0x16, 0x84, 0x16, 0x8c, 0x5e, 0x1, 0x24, 0x3f, 0xff, 0x80, 0x98, + 0xe1, 0x2, 0x7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf2, 0xb0, 0x1a, 0x21, 0xe4, 0x4, 0x35, 0x80, 0xd2, + 0x3c, 0x84, 0x30, 0x3, 0x81, 0xa9, 0xa3, 0xc7, 0x80, 0xc, 0x0, 0x41, 0x24, 0x20, 0x0, 0x5, 0x12, 0xaa, 0xa0, 0x1, + 0xc4, 0xe5, 0x54, 0x0, 0x72, 0x72, 0xaa, 0x0, 0x72, 0x4b, 0x50, 0x0, 0x0, 0x8, 0x6, 0x0, 0x0, 0x0, 0x8, 0x6, 0x0, + 0xc5, 0xcc, 0x8, 0x0, 0x0, 0x0, 0x1, 0x0, ]; const FRAME_MARKER_PDU: SurfaceCommand<'_> = SurfaceCommand::FrameMarker(FrameMarkerPdu { @@ -88,23 +75,22 @@ const FRAME_MARKER_PDU: SurfaceCommand<'_> = SurfaceCommand::FrameMarker(FrameMa }); lazy_static! { - static ref SURFACE_BITS_PDU: SurfaceCommand<'static> = - SurfaceCommand::StreamSurfaceBits(SurfaceBitsPdu { - destination: Rectangle { - left: 0, - top: 0, - right: 1920, - bottom: 1080, - }, - extended_bitmap_data: ExtendedBitmapDataPdu { - bpp: 32, - codec_id: 3, - width: 1920, - height: 1080, - header: None, - data: &SURFACE_BITS_BUFFER[22..], - }, - }); + static ref SURFACE_BITS_PDU: SurfaceCommand<'static> = SurfaceCommand::StreamSurfaceBits(SurfaceBitsPdu { + destination: Rectangle { + left: 0, + top: 0, + right: 1920, + bottom: 1080, + }, + extended_bitmap_data: ExtendedBitmapDataPdu { + bpp: 32, + codec_id: 3, + width: 1920, + height: 1080, + header: None, + data: &SURFACE_BITS_BUFFER[22..], + }, + }); } #[test] @@ -120,9 +106,7 @@ fn to_buffer_correctly_serializes_surface_command_frame_marker() { let expected = FRAME_MARKER_BUFFER.as_ref(); let mut buffer = vec![0; expected.len()]; - FRAME_MARKER_PDU - .to_buffer_consume(&mut buffer.as_mut_slice()) - .unwrap(); + FRAME_MARKER_PDU.to_buffer_consume(&mut buffer.as_mut_slice()).unwrap(); assert_eq!(expected, buffer.as_slice()); } @@ -144,9 +128,7 @@ fn to_buffer_correctly_serializes_surface_command_bits() { let expected = SURFACE_BITS_BUFFER.as_ref(); let mut buffer = vec![0; expected.len()]; - SURFACE_BITS_PDU - .to_buffer_consume(&mut buffer.as_mut_slice()) - .unwrap(); + SURFACE_BITS_PDU.to_buffer_consume(&mut buffer.as_mut_slice()).unwrap(); assert_eq!(expected, buffer.as_slice()); } diff --git a/ironrdp/src/ber.rs b/ironrdp/src/ber.rs index 40ed51cd..14b2f5a0 100644 --- a/ironrdp/src/ber.rs +++ b/ironrdp/src/ber.rs @@ -73,8 +73,7 @@ pub fn write_sequence_tag(mut stream: impl io::Write, length: u16) -> io::Result pub fn read_sequence_tag(mut stream: impl io::Read) -> io::Result { let identifier = stream.read_u8()?; - if identifier != Class::Universal as u8 | Pc::Construct as u8 | (TAG_MASK & Tag::Sequence as u8) - { + if identifier != Class::Universal as u8 | Pc::Construct as u8 | (TAG_MASK & Tag::Sequence as u8) { Err(io::Error::new( io::ErrorKind::InvalidData, "invalid sequence tag identifier", @@ -84,11 +83,7 @@ pub fn read_sequence_tag(mut stream: impl io::Read) -> io::Result { } } -pub fn write_application_tag( - mut stream: impl io::Write, - tagnum: u8, - length: u16, -) -> io::Result { +pub fn write_application_tag(mut stream: impl io::Write, tagnum: u8, length: u16) -> io::Result { let taglen = if tagnum > 0x1E { stream.write_u8(Class::Application as u8 | Pc::Construct as u8 | TAG_MASK)?; stream.write_u8(tagnum)?; @@ -142,18 +137,12 @@ pub fn read_enumerated(mut stream: impl io::Read, count: u8) -> io::Result { let length = read_length(&mut stream)?; if length != 1 { - return Err(io::Error::new( - io::ErrorKind::InvalidData, - "invalid enumerated len", - )); + return Err(io::Error::new(io::ErrorKind::InvalidData, "invalid enumerated len")); } let enumerated = stream.read_u8()?; if enumerated == std::u8::MAX || enumerated + 1 > count { - return Err(io::Error::new( - io::ErrorKind::InvalidData, - "invalid enumerated value", - )); + return Err(io::Error::new(io::ErrorKind::InvalidData, "invalid enumerated value")); } Ok(enumerated) @@ -204,10 +193,7 @@ pub fn read_integer(mut stream: impl io::Read) -> io::Result { } else if length == 8 { stream.read_u64::() } else { - Err(io::Error::new( - io::ErrorKind::InvalidData, - "invalid integer len", - )) + Err(io::Error::new(io::ErrorKind::InvalidData, "invalid integer len")) } } @@ -226,10 +212,7 @@ pub fn read_bool(mut stream: impl io::Read) -> io::Result { let length = read_length(&mut stream)?; if length != 1 { - return Err(io::Error::new( - io::ErrorKind::InvalidData, - "invalid integer len", - )); + return Err(io::Error::new(io::ErrorKind::InvalidData, "invalid integer len")); } Ok(stream.read_u8()? != 0) diff --git a/ironrdp/src/ber/tests.rs b/ironrdp/src/ber/tests.rs index 57652367..96fc221f 100644 --- a/ironrdp/src/ber/tests.rs +++ b/ironrdp/src/ber/tests.rs @@ -39,28 +39,20 @@ fn write_application_tag_is_correct_with_short_tag() { #[test] fn read_application_tag_is_correct_with_long_tag() { let buf = vec![0x7F, 0x1F, 0x0F]; - assert_eq!( - read_application_tag(&mut buf.as_slice(), 0x1F).unwrap(), - 0x0F - ); + assert_eq!(read_application_tag(&mut buf.as_slice(), 0x1F).unwrap(), 0x0F); } #[test] fn read_application_tag_is_correct_with_short_tag() { let buf = vec![0x68, 0x82, 0x01, 0x00]; - assert_eq!( - read_application_tag(&mut buf.as_slice(), 0x08).unwrap(), - 0x100 - ); + assert_eq!(read_application_tag(&mut buf.as_slice(), 0x08).unwrap(), 0x100); } #[test] fn read_application_tag_returns_error_on_invalid_long_tag() { let buf = vec![0x68, 0x1B, 0x0F]; assert_eq!( - read_application_tag(&mut buf.as_slice(), 0x1F) - .unwrap_err() - .kind(), + read_application_tag(&mut buf.as_slice(), 0x1F).unwrap_err().kind(), io::ErrorKind::InvalidData ); } @@ -69,9 +61,7 @@ fn read_application_tag_returns_error_on_invalid_long_tag() { fn read_application_tag_returns_error_on_invalid_long_tag_value() { let buf = vec![0x7F, 0x1B, 0x0F]; assert_eq!( - read_application_tag(&mut buf.as_slice(), 0x1F) - .unwrap_err() - .kind(), + read_application_tag(&mut buf.as_slice(), 0x1F).unwrap_err().kind(), io::ErrorKind::InvalidData ); } @@ -80,9 +70,7 @@ fn read_application_tag_returns_error_on_invalid_long_tag_value() { fn read_application_tag_returns_error_on_invalid_short_tag() { let buf = vec![0x67, 0x0F]; assert_eq!( - read_application_tag(&mut buf.as_slice(), 0x08) - .unwrap_err() - .kind(), + read_application_tag(&mut buf.as_slice(), 0x08).unwrap_err().kind(), io::ErrorKind::InvalidData ); } @@ -104,9 +92,7 @@ fn read_enumerated_is_correct() { fn read_enumerated_returns_error_on_wrong_tag() { let buf = vec![0x0B, 0x01, 0x0F]; assert_eq!( - read_enumerated(&mut buf.as_slice(), 0x10) - .unwrap_err() - .kind(), + read_enumerated(&mut buf.as_slice(), 0x10).unwrap_err().kind(), io::ErrorKind::InvalidData ); } @@ -115,9 +101,7 @@ fn read_enumerated_returns_error_on_wrong_tag() { fn read_enumerated_returns_error_on_invalid_len() { let buf = vec![0x0A, 0x02, 0x0F]; assert_eq!( - read_enumerated(&mut buf.as_slice(), 0x10) - .unwrap_err() - .kind(), + read_enumerated(&mut buf.as_slice(), 0x10).unwrap_err().kind(), io::ErrorKind::InvalidData ); } @@ -126,9 +110,7 @@ fn read_enumerated_returns_error_on_invalid_len() { fn read_enumerated_returns_error_on_invalid_variant() { let buf = vec![0x0A, 0x01, 0x0F]; assert_eq!( - read_enumerated(&mut buf.as_slice(), 0x05) - .unwrap_err() - .kind(), + read_enumerated(&mut buf.as_slice(), 0x05).unwrap_err().kind(), io::ErrorKind::InvalidData ); } @@ -194,9 +176,7 @@ fn read_octet_string_tag_is_correct() { fn read_octet_string_tag_returns_error_on_wrong_tag() { let buf = vec![0x05, 0x0F]; assert_eq!( - read_octet_string_tag(&mut buf.as_slice()) - .unwrap_err() - .kind(), + read_octet_string_tag(&mut buf.as_slice()).unwrap_err().kind(), io::ErrorKind::InvalidData ); } @@ -213,10 +193,7 @@ fn write_octet_string_is_correct() { #[test] fn read_octet_string_is_correct() { let buf = vec![0x04, 0x03, 0x00, 0x01, 0x02]; - assert_eq!( - read_octet_string(&mut buf.as_slice()).unwrap(), - vec![0x00, 0x01, 0x02] - ); + assert_eq!(read_octet_string(&mut buf.as_slice()).unwrap(), vec![0x00, 0x01, 0x02]); } #[test] @@ -298,10 +275,7 @@ fn write_integer_is_correct_with_1_byte_integer() { #[test] fn read_integer_is_correct_with_8_byte_integer() { let buf = vec![0x02, 0x08, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]; - assert_eq!( - read_integer(&mut buf.as_slice()).unwrap(), - 0x0080_0000_0000_0000 - ); + assert_eq!(read_integer(&mut buf.as_slice()).unwrap(), 0x0080_0000_0000_0000); } #[test] @@ -340,10 +314,7 @@ fn read_integer_returns_error_on_incorrect_len() { #[test] fn write_universal_tag_primitive_integer_is_correct() { let mut buf = Vec::new(); - assert_eq!( - write_universal_tag(&mut buf, Tag::Integer, Pc::Primitive).unwrap(), - 1 - ); + assert_eq!(write_universal_tag(&mut buf, Tag::Integer, Pc::Primitive).unwrap(), 1); assert_eq!(buf, vec![0x02]); } diff --git a/ironrdp/src/codecs/rfx.rs b/ironrdp/src/codecs/rfx.rs index ffa5436d..5dc05f8d 100644 --- a/ironrdp/src/codecs/rfx.rs +++ b/ironrdp/src/codecs/rfx.rs @@ -11,15 +11,6 @@ mod header_messages; #[cfg(test)] mod tests; -pub use self::{ - data_messages::{ - ContextPdu, EntropyAlgorithm, FrameBeginPdu, FrameEndPdu, OperatingMode, Quant, RegionPdu, - RfxRectangle, Tile, TileSetPdu, - }, - header_messages::{Channel, ChannelsPdu, CodecVersionsPdu, SyncPdu}, - rlgr::RlgrError, -}; - use std::io; use byteorder::{LittleEndian, ReadBytesExt, WriteBytesExt}; @@ -27,6 +18,12 @@ use failure::Fail; use num_derive::{FromPrimitive, ToPrimitive}; use num_traits::{FromPrimitive, ToPrimitive}; +pub use self::data_messages::{ + ContextPdu, EntropyAlgorithm, FrameBeginPdu, FrameEndPdu, OperatingMode, Quant, RegionPdu, RfxRectangle, Tile, + TileSetPdu, +}; +pub use self::header_messages::{Channel, ChannelsPdu, CodecVersionsPdu, SyncPdu}; +pub use self::rlgr::RlgrError; use crate::{impl_from_error, PduBufferParsing, PduParsing}; const BLOCK_HEADER_SIZE: usize = 6; @@ -52,9 +49,7 @@ impl<'a> PduBufferParsing<'a> for Headers { let ty = BlockType::from_u16(ty).ok_or(RfxError::InvalidBlockType(ty))?; match ty { - BlockType::CodecVersions => Ok(Self::CodecVersions( - CodecVersionsPdu::from_buffer_consume(buffer)?, - )), + BlockType::CodecVersions => Ok(Self::CodecVersions(CodecVersionsPdu::from_buffer_consume(buffer)?)), BlockType::Channels => Ok(Self::Channels(ChannelsPdu::from_buffer_consume(buffer)?)), BlockType::Context => Ok(Self::Context(ContextPdu::from_buffer_consume(buffer)?)), _ => Err(RfxError::InvalidHeaderBlockType(ty)), @@ -106,10 +101,7 @@ impl BlockHeader { Ok(Self { ty, data_length }) } - fn from_buffer_consume_with_expected_type( - buffer: &mut &[u8], - expected_type: BlockType, - ) -> Result { + fn from_buffer_consume_with_expected_type(buffer: &mut &[u8], expected_type: BlockType) -> Result { let ty = buffer.read_u16::()?; let ty = BlockType::from_u16(ty).ok_or(RfxError::InvalidBlockType(ty))?; if ty != expected_type { @@ -152,11 +144,7 @@ impl CodecChannelHeader { Ok(Self) } - fn to_buffer_consume_with_type( - &self, - buffer: &mut &mut [u8], - ty: BlockType, - ) -> Result<(), RfxError> { + fn to_buffer_consume_with_type(&self, buffer: &mut &mut [u8], ty: BlockType) -> Result<(), RfxError> { buffer.write_u8(CODEC_ID)?; let channel_id = match ty { @@ -232,14 +220,8 @@ pub enum RfxError { display = "Got unexpected Block type: expected ({:?}) != actual({:?})", expected, actual )] - UnexpectedBlockType { - expected: BlockType, - actual: BlockType, - }, - #[fail( - display = "Got unexpected Block type ({:?}) while was expected header message", - _0 - )] + UnexpectedBlockType { expected: BlockType, actual: BlockType }, + #[fail(display = "Got unexpected Block type ({:?}) while was expected header message", _0)] InvalidHeaderBlockType(BlockType), #[fail(display = "Got invalid block length: {}", _0)] InvalidBlockLength(usize), @@ -267,10 +249,7 @@ pub enum RfxError { InvalidEntropyAlgorithm(u16), #[fail(display = "Got invalid quantization type: {}", _0)] InvalidQuantizationType(u16), - #[fail( - display = "Input buffer is shorter then the data length: {} < {}", - actual, expected - )] + #[fail(display = "Input buffer is shorter then the data length: {} < {}", actual, expected)] InvalidDataLength { expected: usize, actual: usize }, #[fail(display = "Got invalid Region LRF: {}", _0)] InvalidLrf(bool), diff --git a/ironrdp/src/codecs/rfx/color_conversion.rs b/ironrdp/src/codecs/rfx/color_conversion.rs index 3be52c3a..9c71bf0c 100644 --- a/ironrdp/src/codecs/rfx/color_conversion.rs +++ b/ironrdp/src/codecs/rfx/color_conversion.rs @@ -1,10 +1,8 @@ #[cfg(test)] mod tests; -use std::{ - cmp::{max, min}, - io::{self, Write}, -}; +use std::cmp::{max, min}; +use std::io::{self, Write}; const DIVISOR: f32 = (1 << 16) as f32; const ALPHA: u8 = 255; diff --git a/ironrdp/src/codecs/rfx/color_conversion/tests.rs b/ironrdp/src/codecs/rfx/color_conversion/tests.rs index cabdff81..7ec593c4 100644 --- a/ironrdp/src/codecs/rfx/color_conversion/tests.rs +++ b/ironrdp/src/codecs/rfx/color_conversion/tests.rs @@ -6,11 +6,7 @@ use super::*; fn rgb_from_ycbcr_works_for_zeros() { let ycbcr = YCbCr { y: 0, cb: 0, cr: 0 }; - let expected = Rgb { - r: 128, - g: 128, - b: 128, - }; + let expected = Rgb { r: 128, g: 128, b: 128 }; let actual = Rgb::from(ycbcr); assert_eq!(expected, actual); } @@ -23,11 +19,7 @@ fn rgb_from_ycbcr_works_for_max_values() { cr: 32767, }; - let expected = Rgb { - r: 255, - g: 68, - b: 255, - }; + let expected = Rgb { r: 255, g: 68, b: 255 }; let actual = Rgb::from(ycbcr); assert_eq!(expected, actual); } @@ -53,11 +45,7 @@ fn rgb_from_ycbcr_works_for_regular_values() { cr: -2128, }; - let expected = Rgb { - r: 36, - g: 159, - b: 224, - }; + let expected = Rgb { r: 36, g: 159, b: 224 }; let actual = Rgb::from(ycbcr); assert_eq!(expected, actual); } @@ -91,1835 +79,1534 @@ fn ycbcr_to_rgb_converts_large_buffer() { } const YCBCR_BUFFER_Y: [i16; 4096] = [ - -32, 16, 64, 272, -32, -16, 0, -16, -32, -24, -16, -8, 0, -24, -48, -72, -96, -90, -84, -78, - -72, -98, -124, -150, -176, -192, -208, -224, -240, -256, -272, -288, -304, -304, -304, -304, - -304, -336, -368, -400, -432, -450, -468, -486, -504, -522, -540, -558, -576, -598, -620, -642, - -664, -686, -708, -730, -752, -768, -784, -800, -816, -816, -816, -816, 68, 120, 172, 240, 53, - 55, 57, 43, 30, 32, 34, 36, 38, 20, 2, -16, -34, -36, -38, -40, -42, -68, -94, -120, -146, - -149, -152, -186, -221, -228, -234, -241, -247, -255, -262, -269, -276, -303, -330, -357, -384, - -404, -424, -444, -463, -485, -507, -529, -550, -573, -595, -617, -639, -674, -708, -710, -712, - -733, -754, -775, -796, -796, -796, -796, 168, 224, 281, 209, 138, 126, 115, 103, 92, 88, 84, - 80, 76, 64, 52, 40, 28, 18, 8, -2, -12, -38, -64, -90, -116, -106, -95, -148, -201, -199, -196, - -193, -190, -205, -219, -233, -247, -270, -292, -314, -336, -358, -379, -401, -422, -448, -473, - -499, -524, -547, -569, -592, -614, -661, -707, -690, -672, -698, -724, -750, -776, -776, -776, - -776, 268, 312, 357, 274, 191, 181, 172, 163, 154, 144, 134, 124, 114, 108, 102, 80, 58, 56, - 54, 52, 50, 24, -2, -44, -86, -63, -38, -94, -150, -138, -126, -146, -165, -171, -176, -198, - -219, -237, -254, -271, -288, -312, -335, -358, -381, -411, -440, -469, -498, -521, -544, -567, - -589, -648, -707, -670, -632, -663, -694, -725, -756, -756, -756, -756, 368, 401, 434, 339, - 244, 237, 230, 223, 216, 200, 184, 168, 152, 152, 152, 120, 88, 94, 100, 106, 112, 86, 60, 2, - -56, -19, 19, -40, -98, -77, -55, -98, -140, -137, -133, -162, -190, -203, -215, -228, -240, - -265, -290, -315, -340, -373, -406, -439, -472, -495, -518, -541, -564, -635, -706, -649, -592, - -628, -664, -700, -736, -736, -736, -736, 404, 557, 454, 383, 313, 532, 239, 282, 326, 304, - 282, 260, 238, 246, 254, 118, 238, 196, 154, 32, -90, -88, -86, 76, 238, 242, 247, 28, -191, - -232, -273, -123, 29, -63, -155, -151, -146, -164, -181, -199, -216, -241, -266, -291, -315, - -346, -377, -408, -438, -448, -457, -498, -539, -597, -654, -503, -608, -625, -642, -675, -708, - -708, -708, -708, 440, 713, 475, 428, 382, 827, 249, 342, 436, 408, 380, 352, 324, 340, 356, - -140, -124, 42, 208, 214, 220, 250, 280, 406, 532, 504, 476, 352, 229, 125, 21, -147, -314, - -245, -176, -139, -101, -124, -147, -170, -192, -217, -241, -266, -290, -319, -347, -376, -404, - -400, -395, -455, -514, -558, -601, -357, -624, -622, -620, -650, -680, -680, -680, -680, 604, - 677, 495, 457, 419, 770, 354, 386, 418, 416, 414, 380, 346, 258, -342, -302, -6, 288, 582, 604, - 626, 588, 550, 688, 826, 829, 833, 724, 616, 482, 347, 181, 15, -139, -293, -175, -57, -85, - -113, -141, -168, -193, -217, -241, -265, -292, -318, -344, -370, -352, -334, -412, -489, -487, - -485, -403, -576, -587, -598, -625, -652, -652, -652, -652, 1280, 1154, 1028, 998, 968, 970, - 460, 430, 400, 424, 448, 408, 368, 432, -528, -208, 112, 534, 956, 994, 1032, 926, 820, 970, - 1120, 1155, 1190, 1097, 1004, 839, 674, 509, 344, 223, 102, 45, -12, -45, -78, -111, -144, - -168, -192, -216, -240, -264, -288, -312, -336, -304, -272, -368, -464, -416, -368, -448, -528, - -552, -576, -600, -624, -624, -624, -624, 770, 671, 573, 554, 536, 629, 467, 464, 462, 492, - 523, 490, 457, 281, -406, -101, 204, 599, 995, 1310, 1370, 1297, 1225, 1296, 1368, 1433, 1498, - 1403, 1308, 1185, 1062, 875, 688, 586, 485, 304, 123, -83, -32, -77, -122, -175, -227, -200, - -172, -194, -217, -239, -261, -315, -368, -326, -283, -361, -438, -452, -465, -515, -565, -583, - -601, -617, -633, -633, 772, 701, 630, 623, 616, 545, 474, 499, 524, 561, 599, 572, 546, 131, - -283, 6, 296, 665, 1034, 1627, 1708, 1669, 1630, 1623, 1616, 1711, 1806, 1709, 1612, 1531, - 1450, 1241, 1032, 950, 869, 563, 258, -120, 15, -43, -100, -181, -262, -183, -103, -124, -145, - -166, -186, -325, -464, -283, -102, -305, -508, -455, -402, -478, -554, -566, -578, -610, -642, - -642, 774, 730, 687, 675, 664, 620, 577, 581, 586, 598, 610, 590, 571, -147, -97, 209, 516, - 794, 1073, 1575, 1822, 1976, 1875, 1869, 1864, 1989, 2114, 2015, 1916, 1877, 1838, 1607, 1376, - 1266, 1156, 902, 137, -61, -3, -121, -238, -124, -9, -70, -131, -166, -201, -221, -239, -272, - -304, -129, -209, -298, -386, -427, -467, -937, -895, -549, -459, -667, -619, -619, 776, 760, - 744, 728, 712, 696, 680, 664, 648, 635, 622, 609, 596, -425, 90, 413, 736, 924, 1112, 1524, - 1936, 2284, 2120, 2116, 2112, 2267, 2422, 2321, 2220, 2223, 2226, 1973, 1720, 1582, 1444, 1242, - 16, -2, -20, 58, 136, -66, -267, -213, -158, -208, -257, -275, -292, -218, -144, 26, -316, - -290, -264, -142, -20, 2956, 2860, -788, -852, -980, -596, -596, 826, 807, 789, 770, 752, 749, - 747, 744, 742, 677, 613, 517, 421, -286, 288, 574, 860, 1081, 1303, 1668, 2034, 2313, 2337, - 2344, 2352, 2453, 2554, 2575, 2596, 2507, 2418, 2249, 2080, 1961, 1843, 925, 7, 40, 74, 748, - 654, 451, 250, 48, -154, -108, -62, -112, -161, -29, 104, 44, -271, -275, -278, -842, 1411, - 3007, 3323, 327, -1389, -1197, -493, -493, 876, 855, 834, 813, 792, 803, 814, 825, 836, 720, - 605, 681, 758, 110, 487, 735, 984, 1239, 1494, 1813, 2132, 2343, 2554, 2573, 2592, 2639, 2686, - 2829, 2972, 2791, 2610, 2525, 2440, 2341, 2243, 608, -2, 83, 169, 1438, 1172, 969, 767, 565, - 363, 248, 134, 52, -30, -95, -160, -193, -226, -259, -292, 763, -742, 2290, 1738, -1118, -902, - -902, -390, -390, 926, 902, 879, 855, 832, 824, 817, 809, 802, 763, 724, 397, 2375, 970, 589, - 848, 1108, 1396, 1685, 1941, 2198, 2468, 2739, 2785, 2832, 2889, 2946, 3179, 2900, 3059, 2962, - 2849, 2736, 2897, 2546, -365, 309, 206, 871, 1760, 1626, 1471, 1316, 1146, 975, 844, 714, 599, - 485, 350, 216, 145, 75, -356, 750, 2687, 529, -1067, -615, -835, -799, -847, -383, -383, 976, - 950, 924, 898, 872, 846, 820, 794, 768, 806, 844, 882, 1432, 2598, 692, 962, 1232, 1554, 1876, - 2070, 2264, 2594, 2924, 2998, 3072, 3139, 3206, 3273, 2316, 3071, 3314, 3173, 3032, 2941, 1826, - -57, 108, 73, 1574, 2083, 2080, 1973, 1866, 1727, 1588, 1441, 1294, 1147, 1000, 796, 592, 484, - 376, 828, 256, 772, -248, -72, -408, 984, -184, -536, -376, -376, 1026, 997, 969, 941, 913, - 888, 864, 840, 816, 762, 709, 768, 1339, 2269, 2176, 1411, 1414, 1677, 1941, 2188, 2436, 2730, - 3023, 3157, 3291, 3350, 3409, 3420, 2152, 3001, 3594, 3403, 3213, 3234, 951, 12, 97, -302, - 2883, 2756, 2373, 2312, 2252, 2144, 2036, 1861, 1687, 1545, 1403, 1254, 1106, 974, 842, 1229, - 1105, 21, 217, 46, -381, 1912, 3181, 2765, 301, -723, 1076, 1045, 1015, 984, 954, 931, 909, - 886, 864, 719, 575, 654, 1246, 1685, 3149, 1604, 1596, 1801, 2006, 2307, 2609, 2866, 3123, - 3316, 3510, 3561, 3613, 3568, 1988, 2931, 3875, 3634, 3394, 3527, 76, 81, 86, 859, 3168, 2917, - 2666, 2652, 2639, 2561, 2484, 2282, 2081, 1943, 1806, 1713, 1621, 1464, 1308, 1119, 931, 550, - 170, -92, -354, 1560, 3986, 1970, -558, -558, 1126, 1093, 1060, 1027, 995, 974, 953, 932, 912, - 900, 888, -340, 1249, 1757, 2521, 2421, 1810, 2036, 2263, 2522, 2781, 3066, 3351, 3443, 3537, - 3612, 3688, 3476, 2496, 3021, 3803, 3833, 3863, 2844, 33, 134, -21, 2100, 3197, 3062, 2927, - 2944, 2961, 2882, 2804, 2607, 2410, 2309, 2209, 2140, 2071, 1842, 1614, 1329, 1044, 663, 283, - 10, -263, -488, -201, -201, -457, -457, 1176, 1141, 1106, 1071, 1036, 1017, 998, 979, 960, 825, - 690, 203, 740, 1573, 1894, 3239, 2024, 2272, 2521, 2737, 2954, 3010, 3067, 3315, 3564, 3664, - 3764, 3384, 3004, 3112, 3732, 3776, 3820, 1905, -10, 187, -128, 3341, 3226, 3207, 3188, 3236, - 3284, 3204, 3124, 2932, 2740, 2676, 2612, 2567, 2522, 2221, 1920, 1539, 1158, 777, 396, 112, - -172, -488, -292, -324, -356, -356, 1194, 1162, 1131, 1100, 1069, 1047, 1026, 973, 920, 969, - 507, 381, 767, 1428, 1834, 2800, 2486, 2347, 2722, 2920, 3118, 3290, 3462, 3266, 3071, 3157, - 3243, 3521, 3800, 3674, 3548, 3710, 3873, 874, 179, 92, 517, 3440, 3291, 3334, 3377, 3403, - 3430, 3361, 3292, 3174, 3057, 3004, 2951, 2761, 2572, 2223, 1874, 1554, 1235, 884, 533, 220, - -93, -470, -335, -319, -303, -303, 1212, 1184, 1157, 1129, 1102, 1078, 1055, 967, 880, 1114, - 325, 559, 794, 1284, 1775, 2361, 2948, 2423, 2923, 3103, 3283, 3314, 3346, 3474, 3602, 3674, - 3747, 3659, 3572, 3980, 3877, 3901, 3926, -157, 368, 253, 1674, 3795, 3356, 3461, 3566, 3571, - 3577, 3518, 3460, 3417, 3375, 3332, 3290, 2956, 2623, 2225, 1828, 1570, 1313, 991, 670, 328, - -14, -452, -378, -314, -250, -250, 1230, 1206, 1182, 1158, 1135, 1109, 1083, 1025, 968, 779, - 78, 481, 885, 1284, 1939, 2466, 3250, 2627, 2772, 3158, 3543, 3514, 3486, 3729, 3717, 3775, - 3834, 3781, 3728, 3934, 3885, 3916, 2667, 92, 333, 174, 2831, 3702, 3549, 3588, 3627, 3643, - 3659, 3643, 3628, 3676, 3724, 3436, 3149, 2847, 2545, 2275, 2006, 1730, 1454, 1114, 775, 388, - 1, -402, -293, -309, -325, -325, 1248, 1228, 1208, 1188, 1168, 1140, 1112, 1084, 1056, 700, - 344, 660, 976, 1284, 2104, 2316, 3040, 2319, 2110, 2189, 2268, 2691, 3114, 3729, 3832, 3877, - 3922, 3903, 3884, 3889, 3894, 3931, 1408, 341, 298, 95, 3988, 3609, 3742, 3715, 3688, 3715, - 3742, 3769, 3796, 3679, 3562, 3285, 3008, 2738, 2468, 2326, 2184, 1890, 1596, 1238, 880, 448, - 16, -352, -208, -304, -400, -400, 1296, 1284, 1272, 1260, 1249, 1165, 1081, 1093, 1106, 232, - 382, 677, 971, 973, 1232, 834, 693, 538, 639, 565, 490, 563, 637, -106, 944, 2358, 3773, 3795, - 4074, 3964, 3855, 4337, 212, 204, 197, 1342, 4023, 3813, 3860, 3811, 3762, 3766, 3771, 3776, - 3781, 3604, 3427, 3202, 2977, 2838, 2699, 2400, 2101, 1982, 1607, 1280, 954, 545, -120, -321, - -266, -314, -362, -362, 1344, 1340, 1337, 1333, 1330, 1190, 1051, 1103, 1156, 20, 933, 950, - 967, 919, 872, 889, 906, 805, 705, 733, 761, 740, 720, 668, 616, 328, 40, 1640, 3752, 3784, - 3816, 3208, 40, 580, 97, 2589, 4058, 4018, 3979, 3907, 3836, 3818, 3801, 3784, 3767, 3529, - 3292, 3375, 3458, 3706, 3954, 3754, 3555, 2843, 1619, 1067, 516, 386, -256, -290, -324, -324, - -324, -324, 1392, 1364, 1337, 1310, 1283, 1247, 1212, 969, 982, 1424, 1100, 1079, 1058, 1073, - 1088, 815, 799, 1056, 803, 773, 743, 645, 547, 769, 736, 649, 563, 332, 102, 1939, 4033, 1982, - 444, 332, -36, 4076, 4093, 4047, 4001, 3955, 3910, 3870, 3831, 3791, 3752, 3806, 3861, 3836, - 3811, 3678, 3545, 3380, 3216, 3639, 3807, 2342, 1134, 1091, 24, -387, -286, -286, -286, -286, - 1440, 1389, 1338, 1287, 1236, 1305, 1374, 1091, 1320, 1037, 1267, 1208, 1150, 715, 281, 486, - 1204, 1564, 901, 1325, 1750, 1830, 1911, 1383, 344, 459, 574, 817, 548, 351, 666, 757, 336, - 340, 856, 4028, 4128, 4076, 4024, 4004, 3984, 3922, 3861, 3799, 3738, 3828, 3919, 3785, 3652, - 3394, 3137, 3007, 2878, 2900, 2923, 3105, 3800, 1284, 1328, 28, -248, -248, -248, -248, 1456, - 1407, 1358, 1309, 1261, 1210, 1159, 1444, 1218, 1265, 33, -655, -1343, -977, -355, 394, 1401, - 1753, 1338, 1739, 2140, 2575, 3010, 3524, 3784, 2536, 1033, 265, 522, 440, 615, 629, 388, 403, - 2211, 4051, 4099, 4078, 4058, 3990, 3922, 3910, 3898, 3886, 3875, 3805, 3736, 3554, 3373, 3126, - 2880, 2585, 2291, 2026, 1762, 2650, 3026, 2303, 2092, 665, -250, -250, -250, -250, 1472, 1425, - 1379, 1332, 1286, 1371, 1457, 1030, -932, -1834, -1712, -1238, -763, -621, 33, 815, 1598, 1943, - 1776, 2153, 2531, 2808, 3085, 3362, 3640, 4102, 4052, 3042, 496, 530, 564, 502, 440, 211, 3055, - 3818, 4070, 4081, 4093, 3976, 3860, 3898, 3936, 3974, 4013, 3783, 3553, 3323, 3094, 2858, 2623, - 2420, 2217, 1921, 1626, 915, 2764, 250, 296, 22, -252, -252, -252, -252, 1488, 1443, 1399, - 1371, 1343, 1308, 1530, -408, -1834, -1590, -1089, -813, -536, -281, 485, 1172, 1859, 2132, - 2150, 2503, 2857, 3105, 3352, 3536, 3720, 3875, 3775, 4298, 4054, 2123, 449, 502, 556, 547, 26, - 2113, 3945, 4116, 4031, 3946, 3862, 3838, 3814, 3982, 3894, 3488, 3338, 3140, 2943, 2622, 2302, - 2030, 1758, 1496, 1234, 1260, 774, -347, -188, -189, -190, -222, -254, -254, 1504, 1462, 1420, - 1410, 1400, 1246, 1604, -1334, -1712, -1089, -978, -643, -308, 59, 938, 1529, 2120, 2322, 2524, - 2854, 3184, 3402, 3620, 3710, 3800, 3905, 4010, 4019, 4028, 3973, 334, 503, 672, 627, 582, 409, - 236, 2359, 3970, 3917, 3864, 3778, 3692, 3990, 3776, 3194, 3124, 2958, 2792, 2387, 1982, 1641, - 1300, 1071, 842, 69, -192, -176, -160, -144, -128, -192, -256, -256, 1546, 1496, 1447, 1430, - 1413, 1627, 1330, -2103, -1184, -820, -712, -396, -80, 406, 1148, 1714, 2280, 2486, 2692, 2995, - 3297, 3467, 3638, 3712, 3787, 3916, 4045, 3918, 4047, 3098, 357, 656, 699, 198, 466, 381, 297, - 376, 200, 1815, 3431, 3568, 3961, 4114, 3755, 3310, 3121, 2804, 2487, 2209, 1931, 1189, 447, - 37, -117, -255, -136, -111, -86, -109, -132, -196, -260, -260, 1588, 1531, 1475, 1450, 1426, - 1497, 33, -1592, -1168, -807, -446, -149, 148, 753, 1358, 1899, 2440, 2650, 2861, 3136, 3411, - 3533, 3656, 3715, 3774, 3927, 4080, 3817, 4066, 2223, 380, 553, 214, 3610, 350, 354, 358, 442, - 526, 226, -74, 286, 1158, 1678, 1686, 1634, 1582, 1114, 646, 239, -168, -31, 107, -228, -51, - -66, -80, -46, -12, -74, -136, -200, -264, -264, 1630, 1566, 1502, 1470, 1439, 1591, -817, - -1401, -960, -634, -308, -14, 280, 876, 1472, 1972, 2472, 2718, 2966, 3229, 3492, 3583, 3674, - 3701, 3729, 3794, 3859, 4148, 4181, 708, 563, 418, 1297, 3917, 4234, 2198, 163, 267, 372, 348, - 325, 108, 147, 186, -31, 38, 107, 96, 85, 61, 37, -163, -106, -126, 111, 875, -152, -93, -34, - -87, -140, -204, -268, -268, 1672, 1601, 1530, 1491, 1452, 1685, -1666, -1209, -752, -461, - -170, 121, 412, 999, 1586, 2045, 2504, 2787, 3071, 3322, 3574, 3633, 3693, 3688, 3684, 3661, - 3638, 3711, 2760, 473, 746, 283, 2380, 4225, 4022, 4043, 4064, 2141, 218, 215, 212, 186, 160, - 230, 300, 234, 168, 102, 36, -117, -269, 218, 1218, 2025, 2833, 1048, -224, -140, -56, -100, - -144, -208, -272, -272, 1626, 1607, 1589, 1459, 1585, 692, -1480, -1108, -736, -452, -168, 116, - 400, 806, 1468, 1938, 2408, 2703, 2999, 3327, 3655, 3569, 3483, 3620, 3759, 3440, 3121, 1602, - 851, 820, 533, 438, 3415, 4252, 4066, 4055, 4045, 4084, 4124, 2995, 1867, 1068, 269, 62, -145, - -38, 69, 704, 1339, 2183, 3028, 2816, 2861, 2953, 2790, -349, 96, -19, -134, -137, -140, -204, - -268, -268, 1580, 1614, 1649, 1427, 1718, -300, -1293, -1007, -720, -443, -166, 111, 388, 613, - 1350, 1831, 2312, 2620, 2928, 3076, 3225, 3249, 3273, 3297, 3322, 3475, 3628, 3333, 1502, 655, - 832, 593, 3938, 4024, 4110, 4068, 4026, 3980, 3934, 3984, 4034, 3998, 3962, 3990, 4018, 3786, - 3554, 3610, 3666, 3459, 3253, 3111, 2969, 2858, 2236, -210, -96, -154, -212, -174, -136, -200, - -264, -264, 1662, 1653, 1644, 1619, 1851, -988, -1267, -986, -704, -402, -100, 10, 120, 404, - 944, 1580, 2216, 2504, 2793, 2873, 2954, 2977, 2999, 3086, 3173, 3238, 3303, 3576, 521, 554, - 587, 1772, 3981, 4019, 4058, 4032, 4007, 3971, 3936, 3948, 3961, 3920, 3879, 3806, 3989, 3866, - 3743, 3636, 3529, 3375, 3222, 3069, 2916, 2907, 1362, -119, -64, -113, -162, -147, -132, -196, - -260, -260, 1744, 1692, 1640, 1556, 1472, -1932, -1240, -964, -688, -361, -34, 165, 364, 707, - 1050, 1585, 2120, 2389, 2658, 2671, 2684, 2705, 2726, 2875, 3024, 3001, 2978, 2283, 564, 965, - 342, 2951, 4024, 4015, 4006, 3997, 3988, 3963, 3938, 3913, 3888, 3842, 3796, 3622, 3960, 3946, - 3932, 3662, 3392, 3292, 3192, 3028, 2864, 2956, 488, -28, -32, -72, -112, -120, -128, -192, - -256, -256, 1834, 1635, 1692, 1718, 207, -1664, -1230, -925, -619, -285, 50, 256, 719, 706, - 948, 1127, 1562, 1845, 2129, 2236, 2344, 2448, 2551, 2655, 2759, 2739, 2719, 1563, 663, 623, - 327, 4207, 3992, 4013, 4034, 3991, 3948, 3923, 3898, 3873, 3848, 3774, 3701, 3484, 3523, 3726, - 3929, 3812, 3695, 3604, 3513, 3407, 3300, 3349, -441, -232, -22, -48, -74, -100, -126, -174, - -222, -222, 1924, 1578, 1745, 1880, -1057, -1395, -1220, -885, -550, -208, 134, 92, 563, 449, - 847, 669, 1004, 1302, 1600, 1802, 2005, 2191, 2377, 2435, 2494, 2477, 2460, 843, 763, 794, - 1337, 3928, 3960, 4011, 4062, 3985, 3908, 3883, 3858, 3833, 3808, 3707, 3607, 3603, 3599, 3506, - 3414, 3706, 3998, 3916, 3835, 3786, 3737, 2207, -346, 77, -12, -24, -36, -80, -124, -156, -188, - -188, 1598, 1585, 1830, 2154, -1874, -1414, -1210, -558, -417, -516, -102, 440, 214, 192, 682, - 435, 702, 870, 1039, 1224, 1409, 1710, 2011, 2039, 2069, 2087, 1849, 795, 766, 596, 2475, 3953, - 3896, 3929, 3962, 3915, 3868, 3843, 3818, 3793, 3768, 3688, 3609, 3577, 3546, 3462, 3379, 3312, - 3245, 3364, 3485, 3189, 2893, 857, -155, 33, -34, -48, -62, -108, -154, -154, -154, -154, 1784, - 1849, 1915, 892, -1666, -1177, -1711, -742, -796, -823, 175, -748, 378, 191, 517, 202, 400, - 439, 479, 646, 814, 1229, 1645, 1644, 1644, 1697, 1239, 748, 770, 399, 3613, 3978, 3832, 3847, - 3862, 3845, 3828, 3803, 3778, 3753, 3728, 3669, 3611, 3552, 3494, 3419, 3345, 3174, 3004, 2813, - 2623, 2592, 2562, -237, 37, -10, -56, -72, -88, -136, -184, -152, -120, -120, 1802, 1900, 2255, - -286, -1291, -1130, -713, -393, -327, -387, -445, 200, -179, 436, 27, -46, -118, 203, 270, 384, - 498, 686, 874, 998, 1123, 1253, 1128, 794, 717, 1161, 3654, 3843, 3776, 3789, 3802, 3783, 3764, - 3617, 3726, 3691, 3656, 3596, 3536, 3476, 3417, 3341, 3266, 3078, 2891, 2687, 2484, 2617, 1982, - -29, 8, 12, 18, -18, -54, 6, 66, -30, -126, -126, 1820, 1696, 2084, -2232, -1939, -571, -1763, - -1835, -1394, -462, -553, -388, -223, -1111, -462, -37, -124, -32, -451, -134, 183, 143, 104, - 353, 602, 809, 1017, 841, 665, 1924, 3696, 3708, 3720, 3731, 3742, 3721, 3700, 3431, 3674, - 3629, 3584, 3523, 3462, 3401, 3341, 3264, 3187, 2982, 2778, 2562, 2346, 2386, 891, -77, -21, - 35, 92, 36, -20, -108, -196, -164, -132, -132, 1710, 1955, 1177, -2834, -956, -2076, -2173, - -365, -1885, -1353, -821, -1600, -844, -1250, -887, -653, -674, -555, -436, -636, -325, -304, - -282, -101, -175, 493, 906, 871, 580, 2767, 3674, 3653, 3632, 3657, 3682, 3627, 3572, 3437, - 3558, 3535, 3512, 3450, 3388, 3326, 3264, 3186, 3108, 2902, 2697, 2500, 2304, 2219, 343, 179, - 270, 154, 38, -6, -50, -110, -170, -154, -138, -138, 1600, 1959, -242, -2667, -2020, -2557, - -2582, -1455, 696, 316, 960, 2052, 2120, 1940, 1760, 1292, 824, -310, -932, -1394, -832, -750, - -668, -298, -440, 434, 796, 902, 496, 3610, 3652, 3598, 3544, 3583, 3622, 3533, 3444, 3443, - 3442, 3441, 3440, 3377, 3314, 3251, 3188, 3109, 3030, 2823, 2616, 2439, 2262, 2053, -204, 179, - 50, 17, -16, -48, -80, -112, -144, -144, -144, -144, 1956, 1852, -2091, -3026, -1145, 322, - 2045, 1672, 1555, 1328, 1614, 1916, 1706, 1622, 1282, 1502, 1466, 1301, 1393, 940, -792, -1548, - -769, -821, -617, 926, 934, 909, 1397, 3323, 3456, 3446, 3436, 3393, 3351, 3388, 3426, 3374, - 3321, 3445, 3313, 3265, 3217, 3153, 3090, 2998, 2906, 2686, 2467, 2291, 2115, 1283, -61, 137, - 79, 37, -5, -37, -69, -101, -133, -133, -133, -133, 1800, 1746, 669, 1992, 1779, 1665, 1552, - 1727, 1390, 1317, 1245, 1269, 1293, 1560, 1316, 1456, 1084, 1121, 1158, 971, 1297, 726, -869, - -1344, -794, 1419, 1072, 917, 2299, 3036, 3261, 3294, 3328, 3204, 3080, 3244, 3409, 3305, 3201, - 3449, 3186, 3153, 3121, 3056, 2992, 2887, 2783, 2550, 2318, 2143, 1968, 513, 82, 95, 108, 57, - 6, -26, -58, -90, -122, -122, -122, -122, 1516, 1832, 1637, 1905, 1406, 1344, 1283, 1590, 1641, - 1466, 1292, 1277, 1263, 1386, 1254, 1314, 1118, 1116, 1115, 906, 953, 1160, 1111, 117, -363, - 807, 698, 701, 2240, 3325, 2362, 2934, 3252, 2998, 2745, 2924, 3103, 3156, 2953, 3277, 3091, - 3057, 3024, 2959, 2894, 2776, 2659, 2414, 2169, 2075, 1981, 255, 65, 69, 73, 45, 17, -15, -47, - -79, -111, -111, -111, -111, 1744, 1662, 1581, 1563, 1546, 1536, 1527, 1453, 1380, 1359, 1339, - 1286, 1234, 1213, 1193, 1172, 1152, 1112, 1073, 1097, 1122, 826, 1043, 1067, 1092, 964, 837, - 741, 2182, 2078, 2487, 2831, 2664, 2793, 2923, 2860, 2798, 3007, 2705, 3106, 2996, 2962, 2928, - 2862, 2796, 2666, 2536, 2278, 2020, 1751, 1482, -259, 48, 43, 38, 33, 28, -4, -36, -68, -100, - -100, -100, -100, 1684, 1640, 1596, 1584, 1573, 1543, 1514, 1452, 1391, 1360, 1329, 1282, 1236, - 1213, 1191, 1168, 1146, 1107, 1070, 1064, 1058, 920, 1038, 996, 955, 924, 895, 881, 1635, 1679, - 2235, 2439, 2132, 2451, 2772, 2580, 2644, 2714, 2528, 2742, 2701, 2828, 2699, 2570, 2442, 2383, - 2324, 2105, 1887, 1733, 811, -79, 55, 63, 71, 47, 23, -7, -37, -67, -97, -113, -129, -129, - 1624, 1618, 1612, 1606, 1601, 1551, 1501, 1451, 1402, 1361, 1320, 1279, 1239, 1214, 1189, 1164, - 1140, 1103, 1067, 1031, 995, 1014, 1034, 926, 818, 885, 953, 1021, 1089, 1024, 1472, 2048, - 2112, 2110, 2109, 2044, 2491, 2421, 2352, 2379, 2406, 2694, 2471, 2279, 2088, 2100, 2113, 1933, - 1754, 1715, 140, 101, 62, 83, 104, 61, 18, -10, -38, -66, -94, -126, -158, -158, 1724, 1788, - 1852, 1692, 1532, 1494, 1456, 1418, 1381, 1346, 1311, 1276, 1241, 1214, 1187, 1160, 1134, 1099, - 1064, 1030, 995, 996, 998, 935, 873, 878, 883, 793, 702, 657, 1125, 1832, 2284, 1193, 1638, - 1796, 2209, 2320, 2176, 2239, 2047, 2560, 2562, 1892, 1734, 1673, 1613, 1745, 1621, 1153, -83, - -7, 69, 71, 73, 43, 13, -13, -39, -65, -91, -139, -187, -187, 1824, 1702, 1580, 1522, 1464, - 1438, 1412, 1386, 1360, 1331, 1302, 1273, 1244, 1215, 1186, 1157, 1128, 1095, 1062, 1029, 996, - 979, 962, 945, 928, 871, 814, 821, 828, 803, 1290, 1617, 1944, 2068, 1168, 1292, 1416, 1708, - 1488, 1844, 1688, 2171, 2142, 1249, 1380, 1503, 1626, 1045, -48, 79, 206, 141, 76, 59, 42, 25, - 8, -16, -40, -64, -88, -152, -216, -216, 1688, 1615, 1542, 1501, 1460, 1429, 1398, 1367, 1336, - 1310, 1284, 1258, 1232, 1206, 1180, 1154, 1128, 1093, 1058, 1023, 988, 969, 950, 931, 912, 862, - 812, 794, 776, 596, 672, 972, 1272, 330, 924, 1038, 1152, 1298, 1444, 1910, 1608, 1532, 1200, - 516, 344, 260, 176, 252, 72, 123, 174, 129, 84, 65, 46, 27, 8, -18, -44, -70, -96, -144, -192, - -192, 1552, 1528, 1504, 1480, 1456, 1420, 1384, 1348, 1312, 1289, 1266, 1243, 1220, 1197, 1174, - 1151, 1128, 1091, 1054, 1017, 980, 959, 938, 917, 896, 853, 810, 767, 724, 645, 566, 583, 600, - 640, 680, 528, 376, 376, 888, 1464, 1016, 637, 258, 295, 332, 297, 262, 227, 192, 167, 142, - 117, 92, 71, 50, 29, 8, -20, -48, -76, -104, -136, -168, -168, 1544, 1521, 1498, 1475, 1452, - 1411, 1370, 1329, 1288, 1268, 1248, 1228, 1208, 1188, 1168, 1148, 1128, 1089, 1050, 1011, 972, - 949, 926, 903, 880, 844, 808, 772, 736, 678, 620, 610, 600, 614, 628, 546, 464, 238, 2060, - 1690, 1576, 1710, 308, 314, 320, 286, 252, 218, 184, 163, 142, 121, 100, 77, 54, 31, 8, -22, - -52, -82, -112, -128, -144, -144, 1536, 1514, 1492, 1470, 1448, 1402, 1356, 1310, 1264, 1247, - 1230, 1213, 1196, 1179, 1162, 1145, 1128, 1087, 1046, 1005, 964, 939, 914, 889, 864, 835, 806, - 777, 748, 711, 674, 637, 600, 588, 576, 564, 552, 612, 160, 1916, 1112, 223, 358, 333, 308, - 275, 242, 209, 176, 159, 142, 125, 108, 83, 58, 33, 8, -24, -56, -88, -120, -120, -120, -120, - 1536, 1514, 1492, 1470, 1448, 1402, 1356, 1310, 1264, 1247, 1230, 1213, 1196, 1179, 1162, 1145, - 1128, 1087, 1046, 1005, 964, 939, 914, 889, 864, 835, 806, 777, 748, 711, 674, 637, 600, 588, - 576, 564, 552, 644, 480, 108, 504, 159, 326, 317, 308, 275, 242, 209, 176, 159, 142, 125, 108, - 83, 58, 33, 8, -24, -56, -88, -120, -120, -120, -120, 1536, 1514, 1492, 1470, 1448, 1402, 1356, - 1310, 1264, 1247, 1230, 1213, 1196, 1179, 1162, 1145, 1128, 1087, 1046, 1005, 964, 939, 914, - 889, 864, 835, 806, 777, 748, 711, 674, 637, 600, 588, 576, 564, 552, 420, 288, 348, 408, 351, - 294, 301, 308, 275, 242, 209, 176, 159, 142, 125, 108, 83, 58, 33, 8, -24, -56, -88, -120, - -120, -120, -120, 1536, 1514, 1492, 1470, 1448, 1402, 1356, 1310, 1264, 1247, 1230, 1213, 1196, - 1179, 1162, 1145, 1128, 1087, 1046, 1005, 964, 939, 914, 889, 864, 835, 806, 777, 748, 711, - 674, 637, 600, 588, 576, 564, 552, 420, 288, 348, 408, 351, 294, 301, 308, 275, 242, 209, 176, - 159, 142, 125, 108, 83, 58, 33, 8, -24, -56, -88, -120, -120, -120, -120, + -32, 16, 64, 272, -32, -16, 0, -16, -32, -24, -16, -8, 0, -24, -48, -72, -96, -90, -84, -78, -72, -98, -124, -150, + -176, -192, -208, -224, -240, -256, -272, -288, -304, -304, -304, -304, -304, -336, -368, -400, -432, -450, -468, + -486, -504, -522, -540, -558, -576, -598, -620, -642, -664, -686, -708, -730, -752, -768, -784, -800, -816, -816, + -816, -816, 68, 120, 172, 240, 53, 55, 57, 43, 30, 32, 34, 36, 38, 20, 2, -16, -34, -36, -38, -40, -42, -68, -94, + -120, -146, -149, -152, -186, -221, -228, -234, -241, -247, -255, -262, -269, -276, -303, -330, -357, -384, -404, + -424, -444, -463, -485, -507, -529, -550, -573, -595, -617, -639, -674, -708, -710, -712, -733, -754, -775, -796, + -796, -796, -796, 168, 224, 281, 209, 138, 126, 115, 103, 92, 88, 84, 80, 76, 64, 52, 40, 28, 18, 8, -2, -12, -38, + -64, -90, -116, -106, -95, -148, -201, -199, -196, -193, -190, -205, -219, -233, -247, -270, -292, -314, -336, + -358, -379, -401, -422, -448, -473, -499, -524, -547, -569, -592, -614, -661, -707, -690, -672, -698, -724, -750, + -776, -776, -776, -776, 268, 312, 357, 274, 191, 181, 172, 163, 154, 144, 134, 124, 114, 108, 102, 80, 58, 56, 54, + 52, 50, 24, -2, -44, -86, -63, -38, -94, -150, -138, -126, -146, -165, -171, -176, -198, -219, -237, -254, -271, + -288, -312, -335, -358, -381, -411, -440, -469, -498, -521, -544, -567, -589, -648, -707, -670, -632, -663, -694, + -725, -756, -756, -756, -756, 368, 401, 434, 339, 244, 237, 230, 223, 216, 200, 184, 168, 152, 152, 152, 120, 88, + 94, 100, 106, 112, 86, 60, 2, -56, -19, 19, -40, -98, -77, -55, -98, -140, -137, -133, -162, -190, -203, -215, + -228, -240, -265, -290, -315, -340, -373, -406, -439, -472, -495, -518, -541, -564, -635, -706, -649, -592, -628, + -664, -700, -736, -736, -736, -736, 404, 557, 454, 383, 313, 532, 239, 282, 326, 304, 282, 260, 238, 246, 254, 118, + 238, 196, 154, 32, -90, -88, -86, 76, 238, 242, 247, 28, -191, -232, -273, -123, 29, -63, -155, -151, -146, -164, + -181, -199, -216, -241, -266, -291, -315, -346, -377, -408, -438, -448, -457, -498, -539, -597, -654, -503, -608, + -625, -642, -675, -708, -708, -708, -708, 440, 713, 475, 428, 382, 827, 249, 342, 436, 408, 380, 352, 324, 340, + 356, -140, -124, 42, 208, 214, 220, 250, 280, 406, 532, 504, 476, 352, 229, 125, 21, -147, -314, -245, -176, -139, + -101, -124, -147, -170, -192, -217, -241, -266, -290, -319, -347, -376, -404, -400, -395, -455, -514, -558, -601, + -357, -624, -622, -620, -650, -680, -680, -680, -680, 604, 677, 495, 457, 419, 770, 354, 386, 418, 416, 414, 380, + 346, 258, -342, -302, -6, 288, 582, 604, 626, 588, 550, 688, 826, 829, 833, 724, 616, 482, 347, 181, 15, -139, + -293, -175, -57, -85, -113, -141, -168, -193, -217, -241, -265, -292, -318, -344, -370, -352, -334, -412, -489, + -487, -485, -403, -576, -587, -598, -625, -652, -652, -652, -652, 1280, 1154, 1028, 998, 968, 970, 460, 430, 400, + 424, 448, 408, 368, 432, -528, -208, 112, 534, 956, 994, 1032, 926, 820, 970, 1120, 1155, 1190, 1097, 1004, 839, + 674, 509, 344, 223, 102, 45, -12, -45, -78, -111, -144, -168, -192, -216, -240, -264, -288, -312, -336, -304, -272, + -368, -464, -416, -368, -448, -528, -552, -576, -600, -624, -624, -624, -624, 770, 671, 573, 554, 536, 629, 467, + 464, 462, 492, 523, 490, 457, 281, -406, -101, 204, 599, 995, 1310, 1370, 1297, 1225, 1296, 1368, 1433, 1498, 1403, + 1308, 1185, 1062, 875, 688, 586, 485, 304, 123, -83, -32, -77, -122, -175, -227, -200, -172, -194, -217, -239, + -261, -315, -368, -326, -283, -361, -438, -452, -465, -515, -565, -583, -601, -617, -633, -633, 772, 701, 630, 623, + 616, 545, 474, 499, 524, 561, 599, 572, 546, 131, -283, 6, 296, 665, 1034, 1627, 1708, 1669, 1630, 1623, 1616, + 1711, 1806, 1709, 1612, 1531, 1450, 1241, 1032, 950, 869, 563, 258, -120, 15, -43, -100, -181, -262, -183, -103, + -124, -145, -166, -186, -325, -464, -283, -102, -305, -508, -455, -402, -478, -554, -566, -578, -610, -642, -642, + 774, 730, 687, 675, 664, 620, 577, 581, 586, 598, 610, 590, 571, -147, -97, 209, 516, 794, 1073, 1575, 1822, 1976, + 1875, 1869, 1864, 1989, 2114, 2015, 1916, 1877, 1838, 1607, 1376, 1266, 1156, 902, 137, -61, -3, -121, -238, -124, + -9, -70, -131, -166, -201, -221, -239, -272, -304, -129, -209, -298, -386, -427, -467, -937, -895, -549, -459, + -667, -619, -619, 776, 760, 744, 728, 712, 696, 680, 664, 648, 635, 622, 609, 596, -425, 90, 413, 736, 924, 1112, + 1524, 1936, 2284, 2120, 2116, 2112, 2267, 2422, 2321, 2220, 2223, 2226, 1973, 1720, 1582, 1444, 1242, 16, -2, -20, + 58, 136, -66, -267, -213, -158, -208, -257, -275, -292, -218, -144, 26, -316, -290, -264, -142, -20, 2956, 2860, + -788, -852, -980, -596, -596, 826, 807, 789, 770, 752, 749, 747, 744, 742, 677, 613, 517, 421, -286, 288, 574, 860, + 1081, 1303, 1668, 2034, 2313, 2337, 2344, 2352, 2453, 2554, 2575, 2596, 2507, 2418, 2249, 2080, 1961, 1843, 925, 7, + 40, 74, 748, 654, 451, 250, 48, -154, -108, -62, -112, -161, -29, 104, 44, -271, -275, -278, -842, 1411, 3007, + 3323, 327, -1389, -1197, -493, -493, 876, 855, 834, 813, 792, 803, 814, 825, 836, 720, 605, 681, 758, 110, 487, + 735, 984, 1239, 1494, 1813, 2132, 2343, 2554, 2573, 2592, 2639, 2686, 2829, 2972, 2791, 2610, 2525, 2440, 2341, + 2243, 608, -2, 83, 169, 1438, 1172, 969, 767, 565, 363, 248, 134, 52, -30, -95, -160, -193, -226, -259, -292, 763, + -742, 2290, 1738, -1118, -902, -902, -390, -390, 926, 902, 879, 855, 832, 824, 817, 809, 802, 763, 724, 397, 2375, + 970, 589, 848, 1108, 1396, 1685, 1941, 2198, 2468, 2739, 2785, 2832, 2889, 2946, 3179, 2900, 3059, 2962, 2849, + 2736, 2897, 2546, -365, 309, 206, 871, 1760, 1626, 1471, 1316, 1146, 975, 844, 714, 599, 485, 350, 216, 145, 75, + -356, 750, 2687, 529, -1067, -615, -835, -799, -847, -383, -383, 976, 950, 924, 898, 872, 846, 820, 794, 768, 806, + 844, 882, 1432, 2598, 692, 962, 1232, 1554, 1876, 2070, 2264, 2594, 2924, 2998, 3072, 3139, 3206, 3273, 2316, 3071, + 3314, 3173, 3032, 2941, 1826, -57, 108, 73, 1574, 2083, 2080, 1973, 1866, 1727, 1588, 1441, 1294, 1147, 1000, 796, + 592, 484, 376, 828, 256, 772, -248, -72, -408, 984, -184, -536, -376, -376, 1026, 997, 969, 941, 913, 888, 864, + 840, 816, 762, 709, 768, 1339, 2269, 2176, 1411, 1414, 1677, 1941, 2188, 2436, 2730, 3023, 3157, 3291, 3350, 3409, + 3420, 2152, 3001, 3594, 3403, 3213, 3234, 951, 12, 97, -302, 2883, 2756, 2373, 2312, 2252, 2144, 2036, 1861, 1687, + 1545, 1403, 1254, 1106, 974, 842, 1229, 1105, 21, 217, 46, -381, 1912, 3181, 2765, 301, -723, 1076, 1045, 1015, + 984, 954, 931, 909, 886, 864, 719, 575, 654, 1246, 1685, 3149, 1604, 1596, 1801, 2006, 2307, 2609, 2866, 3123, + 3316, 3510, 3561, 3613, 3568, 1988, 2931, 3875, 3634, 3394, 3527, 76, 81, 86, 859, 3168, 2917, 2666, 2652, 2639, + 2561, 2484, 2282, 2081, 1943, 1806, 1713, 1621, 1464, 1308, 1119, 931, 550, 170, -92, -354, 1560, 3986, 1970, -558, + -558, 1126, 1093, 1060, 1027, 995, 974, 953, 932, 912, 900, 888, -340, 1249, 1757, 2521, 2421, 1810, 2036, 2263, + 2522, 2781, 3066, 3351, 3443, 3537, 3612, 3688, 3476, 2496, 3021, 3803, 3833, 3863, 2844, 33, 134, -21, 2100, 3197, + 3062, 2927, 2944, 2961, 2882, 2804, 2607, 2410, 2309, 2209, 2140, 2071, 1842, 1614, 1329, 1044, 663, 283, 10, -263, + -488, -201, -201, -457, -457, 1176, 1141, 1106, 1071, 1036, 1017, 998, 979, 960, 825, 690, 203, 740, 1573, 1894, + 3239, 2024, 2272, 2521, 2737, 2954, 3010, 3067, 3315, 3564, 3664, 3764, 3384, 3004, 3112, 3732, 3776, 3820, 1905, + -10, 187, -128, 3341, 3226, 3207, 3188, 3236, 3284, 3204, 3124, 2932, 2740, 2676, 2612, 2567, 2522, 2221, 1920, + 1539, 1158, 777, 396, 112, -172, -488, -292, -324, -356, -356, 1194, 1162, 1131, 1100, 1069, 1047, 1026, 973, 920, + 969, 507, 381, 767, 1428, 1834, 2800, 2486, 2347, 2722, 2920, 3118, 3290, 3462, 3266, 3071, 3157, 3243, 3521, 3800, + 3674, 3548, 3710, 3873, 874, 179, 92, 517, 3440, 3291, 3334, 3377, 3403, 3430, 3361, 3292, 3174, 3057, 3004, 2951, + 2761, 2572, 2223, 1874, 1554, 1235, 884, 533, 220, -93, -470, -335, -319, -303, -303, 1212, 1184, 1157, 1129, 1102, + 1078, 1055, 967, 880, 1114, 325, 559, 794, 1284, 1775, 2361, 2948, 2423, 2923, 3103, 3283, 3314, 3346, 3474, 3602, + 3674, 3747, 3659, 3572, 3980, 3877, 3901, 3926, -157, 368, 253, 1674, 3795, 3356, 3461, 3566, 3571, 3577, 3518, + 3460, 3417, 3375, 3332, 3290, 2956, 2623, 2225, 1828, 1570, 1313, 991, 670, 328, -14, -452, -378, -314, -250, -250, + 1230, 1206, 1182, 1158, 1135, 1109, 1083, 1025, 968, 779, 78, 481, 885, 1284, 1939, 2466, 3250, 2627, 2772, 3158, + 3543, 3514, 3486, 3729, 3717, 3775, 3834, 3781, 3728, 3934, 3885, 3916, 2667, 92, 333, 174, 2831, 3702, 3549, 3588, + 3627, 3643, 3659, 3643, 3628, 3676, 3724, 3436, 3149, 2847, 2545, 2275, 2006, 1730, 1454, 1114, 775, 388, 1, -402, + -293, -309, -325, -325, 1248, 1228, 1208, 1188, 1168, 1140, 1112, 1084, 1056, 700, 344, 660, 976, 1284, 2104, 2316, + 3040, 2319, 2110, 2189, 2268, 2691, 3114, 3729, 3832, 3877, 3922, 3903, 3884, 3889, 3894, 3931, 1408, 341, 298, 95, + 3988, 3609, 3742, 3715, 3688, 3715, 3742, 3769, 3796, 3679, 3562, 3285, 3008, 2738, 2468, 2326, 2184, 1890, 1596, + 1238, 880, 448, 16, -352, -208, -304, -400, -400, 1296, 1284, 1272, 1260, 1249, 1165, 1081, 1093, 1106, 232, 382, + 677, 971, 973, 1232, 834, 693, 538, 639, 565, 490, 563, 637, -106, 944, 2358, 3773, 3795, 4074, 3964, 3855, 4337, + 212, 204, 197, 1342, 4023, 3813, 3860, 3811, 3762, 3766, 3771, 3776, 3781, 3604, 3427, 3202, 2977, 2838, 2699, + 2400, 2101, 1982, 1607, 1280, 954, 545, -120, -321, -266, -314, -362, -362, 1344, 1340, 1337, 1333, 1330, 1190, + 1051, 1103, 1156, 20, 933, 950, 967, 919, 872, 889, 906, 805, 705, 733, 761, 740, 720, 668, 616, 328, 40, 1640, + 3752, 3784, 3816, 3208, 40, 580, 97, 2589, 4058, 4018, 3979, 3907, 3836, 3818, 3801, 3784, 3767, 3529, 3292, 3375, + 3458, 3706, 3954, 3754, 3555, 2843, 1619, 1067, 516, 386, -256, -290, -324, -324, -324, -324, 1392, 1364, 1337, + 1310, 1283, 1247, 1212, 969, 982, 1424, 1100, 1079, 1058, 1073, 1088, 815, 799, 1056, 803, 773, 743, 645, 547, 769, + 736, 649, 563, 332, 102, 1939, 4033, 1982, 444, 332, -36, 4076, 4093, 4047, 4001, 3955, 3910, 3870, 3831, 3791, + 3752, 3806, 3861, 3836, 3811, 3678, 3545, 3380, 3216, 3639, 3807, 2342, 1134, 1091, 24, -387, -286, -286, -286, + -286, 1440, 1389, 1338, 1287, 1236, 1305, 1374, 1091, 1320, 1037, 1267, 1208, 1150, 715, 281, 486, 1204, 1564, 901, + 1325, 1750, 1830, 1911, 1383, 344, 459, 574, 817, 548, 351, 666, 757, 336, 340, 856, 4028, 4128, 4076, 4024, 4004, + 3984, 3922, 3861, 3799, 3738, 3828, 3919, 3785, 3652, 3394, 3137, 3007, 2878, 2900, 2923, 3105, 3800, 1284, 1328, + 28, -248, -248, -248, -248, 1456, 1407, 1358, 1309, 1261, 1210, 1159, 1444, 1218, 1265, 33, -655, -1343, -977, + -355, 394, 1401, 1753, 1338, 1739, 2140, 2575, 3010, 3524, 3784, 2536, 1033, 265, 522, 440, 615, 629, 388, 403, + 2211, 4051, 4099, 4078, 4058, 3990, 3922, 3910, 3898, 3886, 3875, 3805, 3736, 3554, 3373, 3126, 2880, 2585, 2291, + 2026, 1762, 2650, 3026, 2303, 2092, 665, -250, -250, -250, -250, 1472, 1425, 1379, 1332, 1286, 1371, 1457, 1030, + -932, -1834, -1712, -1238, -763, -621, 33, 815, 1598, 1943, 1776, 2153, 2531, 2808, 3085, 3362, 3640, 4102, 4052, + 3042, 496, 530, 564, 502, 440, 211, 3055, 3818, 4070, 4081, 4093, 3976, 3860, 3898, 3936, 3974, 4013, 3783, 3553, + 3323, 3094, 2858, 2623, 2420, 2217, 1921, 1626, 915, 2764, 250, 296, 22, -252, -252, -252, -252, 1488, 1443, 1399, + 1371, 1343, 1308, 1530, -408, -1834, -1590, -1089, -813, -536, -281, 485, 1172, 1859, 2132, 2150, 2503, 2857, 3105, + 3352, 3536, 3720, 3875, 3775, 4298, 4054, 2123, 449, 502, 556, 547, 26, 2113, 3945, 4116, 4031, 3946, 3862, 3838, + 3814, 3982, 3894, 3488, 3338, 3140, 2943, 2622, 2302, 2030, 1758, 1496, 1234, 1260, 774, -347, -188, -189, -190, + -222, -254, -254, 1504, 1462, 1420, 1410, 1400, 1246, 1604, -1334, -1712, -1089, -978, -643, -308, 59, 938, 1529, + 2120, 2322, 2524, 2854, 3184, 3402, 3620, 3710, 3800, 3905, 4010, 4019, 4028, 3973, 334, 503, 672, 627, 582, 409, + 236, 2359, 3970, 3917, 3864, 3778, 3692, 3990, 3776, 3194, 3124, 2958, 2792, 2387, 1982, 1641, 1300, 1071, 842, 69, + -192, -176, -160, -144, -128, -192, -256, -256, 1546, 1496, 1447, 1430, 1413, 1627, 1330, -2103, -1184, -820, -712, + -396, -80, 406, 1148, 1714, 2280, 2486, 2692, 2995, 3297, 3467, 3638, 3712, 3787, 3916, 4045, 3918, 4047, 3098, + 357, 656, 699, 198, 466, 381, 297, 376, 200, 1815, 3431, 3568, 3961, 4114, 3755, 3310, 3121, 2804, 2487, 2209, + 1931, 1189, 447, 37, -117, -255, -136, -111, -86, -109, -132, -196, -260, -260, 1588, 1531, 1475, 1450, 1426, 1497, + 33, -1592, -1168, -807, -446, -149, 148, 753, 1358, 1899, 2440, 2650, 2861, 3136, 3411, 3533, 3656, 3715, 3774, + 3927, 4080, 3817, 4066, 2223, 380, 553, 214, 3610, 350, 354, 358, 442, 526, 226, -74, 286, 1158, 1678, 1686, 1634, + 1582, 1114, 646, 239, -168, -31, 107, -228, -51, -66, -80, -46, -12, -74, -136, -200, -264, -264, 1630, 1566, 1502, + 1470, 1439, 1591, -817, -1401, -960, -634, -308, -14, 280, 876, 1472, 1972, 2472, 2718, 2966, 3229, 3492, 3583, + 3674, 3701, 3729, 3794, 3859, 4148, 4181, 708, 563, 418, 1297, 3917, 4234, 2198, 163, 267, 372, 348, 325, 108, 147, + 186, -31, 38, 107, 96, 85, 61, 37, -163, -106, -126, 111, 875, -152, -93, -34, -87, -140, -204, -268, -268, 1672, + 1601, 1530, 1491, 1452, 1685, -1666, -1209, -752, -461, -170, 121, 412, 999, 1586, 2045, 2504, 2787, 3071, 3322, + 3574, 3633, 3693, 3688, 3684, 3661, 3638, 3711, 2760, 473, 746, 283, 2380, 4225, 4022, 4043, 4064, 2141, 218, 215, + 212, 186, 160, 230, 300, 234, 168, 102, 36, -117, -269, 218, 1218, 2025, 2833, 1048, -224, -140, -56, -100, -144, + -208, -272, -272, 1626, 1607, 1589, 1459, 1585, 692, -1480, -1108, -736, -452, -168, 116, 400, 806, 1468, 1938, + 2408, 2703, 2999, 3327, 3655, 3569, 3483, 3620, 3759, 3440, 3121, 1602, 851, 820, 533, 438, 3415, 4252, 4066, 4055, + 4045, 4084, 4124, 2995, 1867, 1068, 269, 62, -145, -38, 69, 704, 1339, 2183, 3028, 2816, 2861, 2953, 2790, -349, + 96, -19, -134, -137, -140, -204, -268, -268, 1580, 1614, 1649, 1427, 1718, -300, -1293, -1007, -720, -443, -166, + 111, 388, 613, 1350, 1831, 2312, 2620, 2928, 3076, 3225, 3249, 3273, 3297, 3322, 3475, 3628, 3333, 1502, 655, 832, + 593, 3938, 4024, 4110, 4068, 4026, 3980, 3934, 3984, 4034, 3998, 3962, 3990, 4018, 3786, 3554, 3610, 3666, 3459, + 3253, 3111, 2969, 2858, 2236, -210, -96, -154, -212, -174, -136, -200, -264, -264, 1662, 1653, 1644, 1619, 1851, + -988, -1267, -986, -704, -402, -100, 10, 120, 404, 944, 1580, 2216, 2504, 2793, 2873, 2954, 2977, 2999, 3086, 3173, + 3238, 3303, 3576, 521, 554, 587, 1772, 3981, 4019, 4058, 4032, 4007, 3971, 3936, 3948, 3961, 3920, 3879, 3806, + 3989, 3866, 3743, 3636, 3529, 3375, 3222, 3069, 2916, 2907, 1362, -119, -64, -113, -162, -147, -132, -196, -260, + -260, 1744, 1692, 1640, 1556, 1472, -1932, -1240, -964, -688, -361, -34, 165, 364, 707, 1050, 1585, 2120, 2389, + 2658, 2671, 2684, 2705, 2726, 2875, 3024, 3001, 2978, 2283, 564, 965, 342, 2951, 4024, 4015, 4006, 3997, 3988, + 3963, 3938, 3913, 3888, 3842, 3796, 3622, 3960, 3946, 3932, 3662, 3392, 3292, 3192, 3028, 2864, 2956, 488, -28, + -32, -72, -112, -120, -128, -192, -256, -256, 1834, 1635, 1692, 1718, 207, -1664, -1230, -925, -619, -285, 50, 256, + 719, 706, 948, 1127, 1562, 1845, 2129, 2236, 2344, 2448, 2551, 2655, 2759, 2739, 2719, 1563, 663, 623, 327, 4207, + 3992, 4013, 4034, 3991, 3948, 3923, 3898, 3873, 3848, 3774, 3701, 3484, 3523, 3726, 3929, 3812, 3695, 3604, 3513, + 3407, 3300, 3349, -441, -232, -22, -48, -74, -100, -126, -174, -222, -222, 1924, 1578, 1745, 1880, -1057, -1395, + -1220, -885, -550, -208, 134, 92, 563, 449, 847, 669, 1004, 1302, 1600, 1802, 2005, 2191, 2377, 2435, 2494, 2477, + 2460, 843, 763, 794, 1337, 3928, 3960, 4011, 4062, 3985, 3908, 3883, 3858, 3833, 3808, 3707, 3607, 3603, 3599, + 3506, 3414, 3706, 3998, 3916, 3835, 3786, 3737, 2207, -346, 77, -12, -24, -36, -80, -124, -156, -188, -188, 1598, + 1585, 1830, 2154, -1874, -1414, -1210, -558, -417, -516, -102, 440, 214, 192, 682, 435, 702, 870, 1039, 1224, 1409, + 1710, 2011, 2039, 2069, 2087, 1849, 795, 766, 596, 2475, 3953, 3896, 3929, 3962, 3915, 3868, 3843, 3818, 3793, + 3768, 3688, 3609, 3577, 3546, 3462, 3379, 3312, 3245, 3364, 3485, 3189, 2893, 857, -155, 33, -34, -48, -62, -108, + -154, -154, -154, -154, 1784, 1849, 1915, 892, -1666, -1177, -1711, -742, -796, -823, 175, -748, 378, 191, 517, + 202, 400, 439, 479, 646, 814, 1229, 1645, 1644, 1644, 1697, 1239, 748, 770, 399, 3613, 3978, 3832, 3847, 3862, + 3845, 3828, 3803, 3778, 3753, 3728, 3669, 3611, 3552, 3494, 3419, 3345, 3174, 3004, 2813, 2623, 2592, 2562, -237, + 37, -10, -56, -72, -88, -136, -184, -152, -120, -120, 1802, 1900, 2255, -286, -1291, -1130, -713, -393, -327, -387, + -445, 200, -179, 436, 27, -46, -118, 203, 270, 384, 498, 686, 874, 998, 1123, 1253, 1128, 794, 717, 1161, 3654, + 3843, 3776, 3789, 3802, 3783, 3764, 3617, 3726, 3691, 3656, 3596, 3536, 3476, 3417, 3341, 3266, 3078, 2891, 2687, + 2484, 2617, 1982, -29, 8, 12, 18, -18, -54, 6, 66, -30, -126, -126, 1820, 1696, 2084, -2232, -1939, -571, -1763, + -1835, -1394, -462, -553, -388, -223, -1111, -462, -37, -124, -32, -451, -134, 183, 143, 104, 353, 602, 809, 1017, + 841, 665, 1924, 3696, 3708, 3720, 3731, 3742, 3721, 3700, 3431, 3674, 3629, 3584, 3523, 3462, 3401, 3341, 3264, + 3187, 2982, 2778, 2562, 2346, 2386, 891, -77, -21, 35, 92, 36, -20, -108, -196, -164, -132, -132, 1710, 1955, 1177, + -2834, -956, -2076, -2173, -365, -1885, -1353, -821, -1600, -844, -1250, -887, -653, -674, -555, -436, -636, -325, + -304, -282, -101, -175, 493, 906, 871, 580, 2767, 3674, 3653, 3632, 3657, 3682, 3627, 3572, 3437, 3558, 3535, 3512, + 3450, 3388, 3326, 3264, 3186, 3108, 2902, 2697, 2500, 2304, 2219, 343, 179, 270, 154, 38, -6, -50, -110, -170, + -154, -138, -138, 1600, 1959, -242, -2667, -2020, -2557, -2582, -1455, 696, 316, 960, 2052, 2120, 1940, 1760, 1292, + 824, -310, -932, -1394, -832, -750, -668, -298, -440, 434, 796, 902, 496, 3610, 3652, 3598, 3544, 3583, 3622, 3533, + 3444, 3443, 3442, 3441, 3440, 3377, 3314, 3251, 3188, 3109, 3030, 2823, 2616, 2439, 2262, 2053, -204, 179, 50, 17, + -16, -48, -80, -112, -144, -144, -144, -144, 1956, 1852, -2091, -3026, -1145, 322, 2045, 1672, 1555, 1328, 1614, + 1916, 1706, 1622, 1282, 1502, 1466, 1301, 1393, 940, -792, -1548, -769, -821, -617, 926, 934, 909, 1397, 3323, + 3456, 3446, 3436, 3393, 3351, 3388, 3426, 3374, 3321, 3445, 3313, 3265, 3217, 3153, 3090, 2998, 2906, 2686, 2467, + 2291, 2115, 1283, -61, 137, 79, 37, -5, -37, -69, -101, -133, -133, -133, -133, 1800, 1746, 669, 1992, 1779, 1665, + 1552, 1727, 1390, 1317, 1245, 1269, 1293, 1560, 1316, 1456, 1084, 1121, 1158, 971, 1297, 726, -869, -1344, -794, + 1419, 1072, 917, 2299, 3036, 3261, 3294, 3328, 3204, 3080, 3244, 3409, 3305, 3201, 3449, 3186, 3153, 3121, 3056, + 2992, 2887, 2783, 2550, 2318, 2143, 1968, 513, 82, 95, 108, 57, 6, -26, -58, -90, -122, -122, -122, -122, 1516, + 1832, 1637, 1905, 1406, 1344, 1283, 1590, 1641, 1466, 1292, 1277, 1263, 1386, 1254, 1314, 1118, 1116, 1115, 906, + 953, 1160, 1111, 117, -363, 807, 698, 701, 2240, 3325, 2362, 2934, 3252, 2998, 2745, 2924, 3103, 3156, 2953, 3277, + 3091, 3057, 3024, 2959, 2894, 2776, 2659, 2414, 2169, 2075, 1981, 255, 65, 69, 73, 45, 17, -15, -47, -79, -111, + -111, -111, -111, 1744, 1662, 1581, 1563, 1546, 1536, 1527, 1453, 1380, 1359, 1339, 1286, 1234, 1213, 1193, 1172, + 1152, 1112, 1073, 1097, 1122, 826, 1043, 1067, 1092, 964, 837, 741, 2182, 2078, 2487, 2831, 2664, 2793, 2923, 2860, + 2798, 3007, 2705, 3106, 2996, 2962, 2928, 2862, 2796, 2666, 2536, 2278, 2020, 1751, 1482, -259, 48, 43, 38, 33, 28, + -4, -36, -68, -100, -100, -100, -100, 1684, 1640, 1596, 1584, 1573, 1543, 1514, 1452, 1391, 1360, 1329, 1282, 1236, + 1213, 1191, 1168, 1146, 1107, 1070, 1064, 1058, 920, 1038, 996, 955, 924, 895, 881, 1635, 1679, 2235, 2439, 2132, + 2451, 2772, 2580, 2644, 2714, 2528, 2742, 2701, 2828, 2699, 2570, 2442, 2383, 2324, 2105, 1887, 1733, 811, -79, 55, + 63, 71, 47, 23, -7, -37, -67, -97, -113, -129, -129, 1624, 1618, 1612, 1606, 1601, 1551, 1501, 1451, 1402, 1361, + 1320, 1279, 1239, 1214, 1189, 1164, 1140, 1103, 1067, 1031, 995, 1014, 1034, 926, 818, 885, 953, 1021, 1089, 1024, + 1472, 2048, 2112, 2110, 2109, 2044, 2491, 2421, 2352, 2379, 2406, 2694, 2471, 2279, 2088, 2100, 2113, 1933, 1754, + 1715, 140, 101, 62, 83, 104, 61, 18, -10, -38, -66, -94, -126, -158, -158, 1724, 1788, 1852, 1692, 1532, 1494, + 1456, 1418, 1381, 1346, 1311, 1276, 1241, 1214, 1187, 1160, 1134, 1099, 1064, 1030, 995, 996, 998, 935, 873, 878, + 883, 793, 702, 657, 1125, 1832, 2284, 1193, 1638, 1796, 2209, 2320, 2176, 2239, 2047, 2560, 2562, 1892, 1734, 1673, + 1613, 1745, 1621, 1153, -83, -7, 69, 71, 73, 43, 13, -13, -39, -65, -91, -139, -187, -187, 1824, 1702, 1580, 1522, + 1464, 1438, 1412, 1386, 1360, 1331, 1302, 1273, 1244, 1215, 1186, 1157, 1128, 1095, 1062, 1029, 996, 979, 962, 945, + 928, 871, 814, 821, 828, 803, 1290, 1617, 1944, 2068, 1168, 1292, 1416, 1708, 1488, 1844, 1688, 2171, 2142, 1249, + 1380, 1503, 1626, 1045, -48, 79, 206, 141, 76, 59, 42, 25, 8, -16, -40, -64, -88, -152, -216, -216, 1688, 1615, + 1542, 1501, 1460, 1429, 1398, 1367, 1336, 1310, 1284, 1258, 1232, 1206, 1180, 1154, 1128, 1093, 1058, 1023, 988, + 969, 950, 931, 912, 862, 812, 794, 776, 596, 672, 972, 1272, 330, 924, 1038, 1152, 1298, 1444, 1910, 1608, 1532, + 1200, 516, 344, 260, 176, 252, 72, 123, 174, 129, 84, 65, 46, 27, 8, -18, -44, -70, -96, -144, -192, -192, 1552, + 1528, 1504, 1480, 1456, 1420, 1384, 1348, 1312, 1289, 1266, 1243, 1220, 1197, 1174, 1151, 1128, 1091, 1054, 1017, + 980, 959, 938, 917, 896, 853, 810, 767, 724, 645, 566, 583, 600, 640, 680, 528, 376, 376, 888, 1464, 1016, 637, + 258, 295, 332, 297, 262, 227, 192, 167, 142, 117, 92, 71, 50, 29, 8, -20, -48, -76, -104, -136, -168, -168, 1544, + 1521, 1498, 1475, 1452, 1411, 1370, 1329, 1288, 1268, 1248, 1228, 1208, 1188, 1168, 1148, 1128, 1089, 1050, 1011, + 972, 949, 926, 903, 880, 844, 808, 772, 736, 678, 620, 610, 600, 614, 628, 546, 464, 238, 2060, 1690, 1576, 1710, + 308, 314, 320, 286, 252, 218, 184, 163, 142, 121, 100, 77, 54, 31, 8, -22, -52, -82, -112, -128, -144, -144, 1536, + 1514, 1492, 1470, 1448, 1402, 1356, 1310, 1264, 1247, 1230, 1213, 1196, 1179, 1162, 1145, 1128, 1087, 1046, 1005, + 964, 939, 914, 889, 864, 835, 806, 777, 748, 711, 674, 637, 600, 588, 576, 564, 552, 612, 160, 1916, 1112, 223, + 358, 333, 308, 275, 242, 209, 176, 159, 142, 125, 108, 83, 58, 33, 8, -24, -56, -88, -120, -120, -120, -120, 1536, + 1514, 1492, 1470, 1448, 1402, 1356, 1310, 1264, 1247, 1230, 1213, 1196, 1179, 1162, 1145, 1128, 1087, 1046, 1005, + 964, 939, 914, 889, 864, 835, 806, 777, 748, 711, 674, 637, 600, 588, 576, 564, 552, 644, 480, 108, 504, 159, 326, + 317, 308, 275, 242, 209, 176, 159, 142, 125, 108, 83, 58, 33, 8, -24, -56, -88, -120, -120, -120, -120, 1536, 1514, + 1492, 1470, 1448, 1402, 1356, 1310, 1264, 1247, 1230, 1213, 1196, 1179, 1162, 1145, 1128, 1087, 1046, 1005, 964, + 939, 914, 889, 864, 835, 806, 777, 748, 711, 674, 637, 600, 588, 576, 564, 552, 420, 288, 348, 408, 351, 294, 301, + 308, 275, 242, 209, 176, 159, 142, 125, 108, 83, 58, 33, 8, -24, -56, -88, -120, -120, -120, -120, 1536, 1514, + 1492, 1470, 1448, 1402, 1356, 1310, 1264, 1247, 1230, 1213, 1196, 1179, 1162, 1145, 1128, 1087, 1046, 1005, 964, + 939, 914, 889, 864, 835, 806, 777, 748, 711, 674, 637, 600, 588, 576, 564, 552, 420, 288, 348, 408, 351, 294, 301, + 308, 275, 242, 209, 176, 159, 142, 125, 108, 83, 58, 33, 8, -24, -56, -88, -120, -120, -120, -120, ]; const YCBCR_BUFFER_CB: [i16; 4096] = [ - 1728, 1730, 1732, 1734, 1736, 1738, 1740, 1742, 1744, 1740, 1736, 1732, 1728, 1796, 1864, 1804, - 1744, 1754, 1764, 1774, 1784, 1794, 1804, 1814, 1824, 1774, 1724, 1802, 1880, 1814, 1748, 1810, - 1872, 1878, 1884, 1890, 1896, 1910, 1924, 1938, 1952, 1938, 1924, 1910, 1896, 1914, 1932, 1950, - 1968, 1974, 1980, 1986, 1992, 1998, 2004, 2010, 2016, 2016, 2016, 2016, 2016, 2016, 2016, 2016, - 1710, 1697, 1684, 1704, 1723, 1726, 1730, 1733, 1737, 1738, 1740, 1741, 1743, 1758, 1774, 1757, - 1741, 1762, 1783, 1788, 1793, 1774, 1755, 1784, 1813, 1817, 1821, 1825, 1829, 1857, 1885, 1881, - 1877, 1849, 1821, 1857, 1894, 1904, 1914, 1924, 1935, 1928, 1922, 1915, 1909, 1922, 1936, 1949, - 1963, 1974, 1985, 1997, 2008, 2009, 2011, 2012, 2014, 2017, 2020, 2023, 2026, 2026, 2026, 2026, - 1692, 1664, 1637, 1674, 1711, 1715, 1720, 1725, 1730, 1737, 1744, 1751, 1758, 1721, 1684, 1711, - 1738, 1770, 1802, 1802, 1802, 1754, 1706, 1754, 1802, 1860, 1918, 1848, 1778, 1900, 2022, 1952, - 1882, 1820, 1759, 1825, 1892, 1898, 1905, 1911, 1918, 1919, 1920, 1921, 1922, 1931, 1940, 1949, - 1958, 1974, 1991, 2008, 2025, 2021, 2018, 2015, 2012, 2018, 2024, 2030, 2036, 2036, 2036, 2036, - 1674, 1631, 1590, 1644, 1698, 1704, 1710, 1716, 1723, 1735, 1748, 1760, 1773, 1763, 1754, 1760, - 1767, 1794, 1821, 1800, 1779, 1830, 1881, 1900, 1919, 2047, 2175, 2015, 1855, 1879, 1903, 1927, - 1951, 1759, 1824, 1857, 1890, 1892, 1895, 1898, 1901, 1909, 1918, 1926, 1935, 1939, 1944, 1948, - 1953, 1974, 1997, 2019, 2041, 2033, 2025, 2017, 2010, 2019, 2028, 2037, 2046, 2046, 2046, 2046, - 1656, 1599, 1543, 1614, 1686, 1693, 1701, 1708, 1716, 1734, 1752, 1770, 1788, 1806, 1824, 1810, - 1796, 1818, 1840, 2054, 2268, 1650, 1032, 510, -12, -70, -128, 390, 908, 1602, 2296, 2158, - 2020, 1699, 1890, 1889, 1888, 1887, 1886, 1885, 1884, 1900, 1916, 1932, 1948, 1948, 1948, 1948, - 1948, 1975, 2003, 2030, 2058, 2045, 2033, 2020, 2008, 2020, 2032, 2044, 2056, 2056, 2056, 2056, - 1590, 1570, 1551, 1612, 1673, 1580, 1743, 1713, 1685, 1672, 1660, 1711, 1763, 1694, 1626, 1941, - 2001, 2060, 583, -654, -1891, -2046, -2201, -2084, -1967, -2049, -2131, -2053, -1975, -1751, - -1527, 41, 1609, 2374, 1859, 2000, 1886, 1899, 1912, 1909, 1907, 1900, 1894, 1919, 1945, 1944, - 1944, 1943, 1943, 1967, 1992, 2017, 2042, 2033, 2024, 2014, 2006, 2017, 2028, 2039, 2050, 2050, - 2050, 2050, 1524, 1542, 1560, 1610, 1661, 1467, 1785, 1719, 1654, 1611, 1568, 1653, 1738, 1839, - 1940, 793, -866, -2050, -2210, -2082, -1954, -1902, -1850, -1862, -1874, -1980, -2086, -1936, - -1786, -1776, -1766, -1820, -1874, -535, 1829, 2112, 1884, 1911, 1939, 1934, 1930, 1901, 1872, - 1907, 1942, 1941, 1940, 1939, 1938, 1960, 1982, 2004, 2027, 2021, 2015, 2009, 2004, 2014, 2024, - 2034, 2044, 2044, 2044, 2044, 1586, 1641, 1697, 1704, 1712, 1578, 1699, 1661, 1623, 1613, 1604, - 1642, 1681, 1791, -402, -2036, -1877, -2144, -1899, -1942, -1985, -1918, -1851, -1880, -1909, - -1959, -2009, -1931, -1853, -1801, -1749, -1617, -1485, -1940, -1882, 96, 2074, 1971, 1869, - 1895, 1921, 1885, 1850, 1894, 1939, 1937, 1936, 1934, 1933, 1952, 1972, 1991, 2011, 2009, 2006, - 2004, 2002, 2011, 2020, 2029, 2038, 2038, 2038, 2038, 1136, 1229, 1322, 1287, 1252, 1433, 1614, - 1603, 1592, 1616, 1640, 1632, 1624, 2256, -1720, -1792, -1864, -1982, -2100, -2058, -2016, - -1934, -1852, -1898, -1944, -1938, -1932, -1926, -1920, -1826, -1732, -1670, -1608, -1552, - -1496, -1664, -1320, 2288, 1800, 1856, 1912, 1870, 1828, 1882, 1936, 1934, 1932, 1930, 1928, - 1945, 1962, 1979, 1996, 1997, 1998, 1999, 2000, 2008, 2016, 2024, 2032, 2032, 2032, 2032, 1552, - 1625, 1698, 1675, 1652, 1645, 1638, 1615, 1592, 1611, 1630, 1681, 1733, 1146, -2001, -1788, - -1830, -1925, -2019, -2050, -2080, -1987, -1893, -1896, -1898, -1897, -1895, -1861, -1827, - -1780, -1732, -1668, -1604, -1616, -1627, -1879, -594, 2063, 1903, 2016, 1873, 2132, 1880, - 1884, 1888, 1921, 1955, 1941, 1927, 1926, 1925, 1956, 1987, 2006, 2025, 2044, 2063, 1995, 1927, - 2099, 2015, 2095, 2175, 2175, 1456, 1509, 1562, 1551, 1540, 1601, 1662, 1627, 1592, 1606, 1621, - 1731, 1842, 36, -2281, -1783, -1796, -1867, -1938, -2041, -2144, -2039, -1934, -1893, -1852, - -1855, -1857, -1796, -1734, -1733, -1731, -1666, -1600, -1679, -1758, -1837, 645, 2094, 2007, - 1920, 1322, 2139, 1933, 1886, 1840, 1909, 1979, 1952, 1926, 1907, 1888, 1933, 1978, 2015, 2052, - 2089, 2126, 1982, 1838, 2174, 1998, 2158, 2318, 2318, 1488, 1521, 1554, 1555, 1556, 1589, 1622, - 1607, 1592, 1569, 1547, 1701, 1855, -994, -2050, -1826, -1858, -1906, -1953, -2017, -2080, - -1996, -1911, -1859, -1806, -1813, -1820, -1731, -1641, -1686, -1731, -1680, -1628, -1679, - -1729, -2195, 1947, 2125, 2047, 944, -2205, 114, 2177, 2144, 1856, 1913, 1970, 1963, 1957, - 1936, 1915, 1926, 1937, 1992, 2047, 2182, 2061, 2337, 2613, 1817, 2301, 2157, 2269, 2397, 1520, - 1533, 1546, 1559, 1572, 1577, 1582, 1587, 1592, 1533, 1474, 1671, 1868, -2023, -1818, -1869, - -1920, -1944, -1968, -1992, -2016, -1952, -1888, -1824, -1760, -1771, -1782, -1665, -1548, - -1639, -1730, -1693, -1656, -1678, -1699, -1017, 2226, 1644, 2087, -287, -2148, -2167, -1674, - 611, 2384, 2173, 1962, 1975, 1988, 1965, 1942, 1919, 1896, 1969, 2042, 2019, 1484, -1916, - -1220, 2484, 1068, -916, 1708, 1964, 1504, 1515, 1526, 1537, 1548, 1551, 1554, 1557, 1560, - 1582, 1604, 1786, 689, -2139, -1895, -1907, -1918, -1927, -1935, -1944, -1952, -1879, -1805, - -1732, -1658, -1628, -1597, -1550, -1503, -1509, -1514, -1519, -1524, -1528, -1786, 147, 2080, - 1995, 2422, -2095, -2003, -2035, -1810, -1665, -1776, -190, 1397, 2536, 2139, 2122, 2105, 2328, - 2295, 2204, 2113, 2870, -213, -1669, -1077, -1237, -1653, -1589, 2059, 1931, 1488, 1497, 1506, - 1515, 1524, 1525, 1526, 1527, 1528, 1631, 1735, 1902, -490, -2255, -1971, -1944, -1916, -1909, - -1902, -1895, -1888, -1805, -1722, -1639, -1556, -1484, -1411, -1435, -1458, -1378, -1297, - -1345, -1392, -1377, -1873, 1311, 1935, 1834, 1734, -2622, -2370, -2158, -1945, -1893, -1840, - -2040, -2239, -2023, -782, -281, 220, 433, 134, -377, -888, -1655, -1398, -1166, -934, -1374, - -1302, -726, 2410, 1898, 1472, 1479, 1486, 1493, 1500, 1499, 1498, 1497, 1496, 1600, 1705, - 1666, -933, -1475, -2016, -1965, -1914, -1892, -1869, -1847, -1824, -1732, -1639, -1547, -1454, - -1388, -1322, -1192, -1317, -1151, -1241, -1251, -1260, -1546, -1576, 2459, 1885, 2057, 182, - -2430, -2225, -2089, -1953, -1929, -1904, -1906, -1908, -2150, -1879, -1836, -1793, -1670, - -1803, -1646, -1489, -1492, -1239, -1335, -1431, -1335, -1495, 681, 2345, 2089, 1456, 1461, - 1466, 1471, 1476, 1473, 1470, 1467, 1464, 1570, 1676, 1174, -1888, -950, -2060, -1986, -1912, - -1874, -1836, -1798, -1760, -1658, -1556, -1454, -1352, -1292, -1232, -1204, -1688, -1180, - -1184, -1156, -1128, -1203, -254, 2071, 1836, 2281, -1370, -2237, -2080, -2020, -1960, -1964, - -1968, -2028, -2088, -2020, -1952, -1855, -1758, -1725, -1692, -1635, -1578, -1329, -1592, - -1504, -1416, -1040, -1688, 2088, 2280, 2280, 1428, 1439, 1450, 1461, 1472, 1463, 1454, 1493, - 1533, 1512, 1748, -161, -2069, -1347, -1138, -1776, -1902, -1849, -1795, -1709, -1623, -1545, - -1467, -1357, -1247, -1199, -1150, -1197, -1756, -1247, -994, -1013, -1032, -1203, 930, 2023, - 1837, 2238, -2481, -2288, -1838, -1800, -1762, -1836, -1909, -1955, -2001, -1983, -1964, -1909, - -1854, -1831, -1807, -1750, -1693, -1540, -1642, -1526, -1410, -638, -122, 774, 1926, 1926, - 1400, 1417, 1434, 1451, 1469, 1454, 1439, 1520, 1602, 1455, 1820, -1239, -1737, -1744, -727, - -1822, -1892, -1823, -1753, -1619, -1485, -1432, -1378, -1260, -1142, -1105, -1067, -1189, - -1823, -1314, -804, -870, -936, -1203, 2115, 1976, 1838, 915, -2055, -1570, -1596, -1580, - -1563, -1707, -1850, -1882, -1913, -1945, -1976, -1963, -1949, -1936, -1922, -1865, -1807, - -1750, -1692, -1548, -1404, -1004, -92, 996, 2084, 2084, 1372, 1395, 1418, 1441, 1465, 1444, - 1424, 1483, 1543, 1765, 1732, -2205, -1534, -1613, -1180, -1276, -1882, -1765, -1647, -1562, - -1476, -1303, -1129, -1115, -1101, -995, -888, -1054, -1731, -1397, -806, -711, -872, -307, - 2051, 1929, 2063, -152, -1598, -1348, -1354, -1328, -1301, -1418, -1535, -1601, -1666, -1731, - -1796, -1825, -1853, -1881, -1909, -1884, -1858, -1768, -1678, -1570, -1462, -1434, 1154, 2402, - 1858, 1858, 1344, 1373, 1403, 1432, 1462, 1435, 1409, 1446, 1484, 1564, 621, -1891, -1842, - -1738, -1633, -729, -1872, -1707, -1541, -1504, -1466, -1429, -1391, -1226, -1060, -885, -709, - -918, -1638, -1479, -807, -552, -808, 590, 1988, 1882, 2288, -1218, -1140, -1126, -1112, -1075, - -1038, -1129, -1220, -1319, -1418, -1517, -1616, -1686, -1756, -1826, -1896, -1902, -1908, - -1786, -1664, -1592, -1520, -1864, 2400, 2016, 2144, 2144, 1348, 1373, 1399, 1424, 1450, 1463, - 1477, 1491, 1505, 1728, -607, -1839, -1791, -1737, -1683, -1005, -1350, -1711, -1560, -1521, - -1481, -1384, -1286, -1381, -1475, -1209, -943, -613, -794, -798, -801, -613, -680, 1364, 1872, - 1932, 1481, -1151, -967, -927, -886, -869, -852, -931, -1009, -1062, -1115, -1232, -1348, - -1522, -1696, -1806, -1915, -1901, -1887, -1793, -1698, -1604, -1766, -744, 2326, 2134, 2198, - 2198, 1352, 1373, 1395, 1417, 1439, 1492, 1546, 1536, 1526, 1893, -1835, -1787, -1739, -1736, - -1732, -1280, -828, -1715, -1578, -1537, -1495, -1338, -1181, -1024, -866, -765, -664, -563, - -973, -372, -283, -418, -552, 2138, 1757, 1983, 674, -1084, -793, -727, -660, -663, -665, -732, - -798, -805, -811, -946, -1080, -1358, -1635, -1785, -1934, -1900, -1865, -1799, -1732, -1616, - -2012, 376, 2252, 2252, 2252, 2252, 1356, 1373, 1391, 1409, 1427, 1425, 1423, 1501, 1579, 906, - -1815, -1703, -1848, -1911, -1717, -1636, -786, -1687, -1820, -1713, -1606, -1373, -1140, -923, - -705, -657, -609, -385, -417, -235, -309, -479, 376, 1968, 1769, 2034, -5, -841, -652, -607, - -562, -585, -607, -661, -715, -740, -764, -964, -1164, -1434, -1703, -1844, -1985, -1979, - -1972, -1885, -1798, -2012, -2226, 2152, 2178, 2194, 2210, 2210, 1360, 1374, 1388, 1402, 1416, - 1358, 1300, 1466, 1632, -81, -1794, -1619, -1956, -2085, -1702, -1991, -744, -891, -526, -353, - -180, -383, -586, -821, -1056, -805, -554, -463, -372, -353, -334, -539, 1304, 1799, 1782, - 2085, -684, -597, -510, -487, -464, -506, -548, -590, -632, -674, -716, -982, -1248, -1509, - -1770, -1903, -2036, -2057, -2078, -1971, -1864, -1896, -1416, 2392, 2104, 2136, 2168, 2168, - 1346, 1358, 1371, 1383, 1396, 1395, 1393, 1552, 1711, -1178, -1763, -2204, -1364, -465, 690, - 1941, 1913, 1747, 1837, 1816, 1794, 1888, 1983, 1773, 1564, 548, -468, -299, -387, -393, -398, - -148, 1895, 1920, 1946, 1284, -402, -398, -394, -422, -450, -479, -508, -569, -630, -723, -816, - -1069, -1321, -1698, -2075, -2083, -2092, -2131, -2169, -2032, -1894, -2028, 142, 2280, 2114, - 2082, 2050, 2050, 1332, 1343, 1354, 1365, 1377, 1432, 1487, 1382, 1278, -1763, -195, 1308, - 1788, 1667, 1547, 1522, 1498, 1569, 1641, 1681, 1721, 1600, 1480, 1552, 1624, 1901, 2179, 1145, - -401, -432, -462, -12, 1974, 1786, 2111, 484, -119, -199, -278, -357, -436, -452, -468, -548, - -627, -771, -915, -899, -882, -607, -331, -471, -611, -1436, -2260, -2092, -1924, -2160, 1700, - 2168, 2124, 2028, 1932, 1932, 1318, 1327, 1337, 1347, 1357, 1405, 1453, 1420, 1389, 1380, 1628, - 1748, 1356, 1495, 1635, 1631, 1627, 1551, 1733, 1690, 1647, 1728, 1809, 1730, 1652, 1686, 1722, - 1949, 1920, 873, -430, 363, 1925, 1764, 1860, 147, -29, -96, -162, -292, -422, -425, -428, - -559, -689, -372, -310, -281, -251, -572, -891, -859, -827, -565, -303, -1081, -1858, -1636, - 2170, 2296, 2166, 2118, 2070, 2070, 1304, 1312, 1321, 1329, 1338, 1378, 1419, 1459, 1500, 1452, - 1404, 1420, 1436, 1580, 1724, 1484, 1244, 1022, 1313, 1187, 1062, 1088, 1115, 1397, 1680, 1728, - 1777, 1729, 1682, 1922, 1651, 1763, 1876, 1742, 1609, -189, 62, 8, -45, -227, -408, -398, -387, - -569, -750, -228, -217, -431, -644, -1048, -1451, -1503, -1554, -1230, -905, -581, -256, -856, - 1616, 1912, 2208, 2208, 2208, 2208, 1290, 1304, 1320, 1335, 1350, 1377, 1404, 1271, 1395, 1525, - 1655, 1769, 1884, 1802, 1720, 1430, 1141, 1026, 1168, 1038, 908, 700, 492, 331, 172, 873, 1575, - 1525, 1731, 1991, 1739, 1774, 1811, 1914, 993, -120, 48, -75, -197, -272, -346, -409, -471, - -326, -180, -215, -505, -811, -1117, -1275, -1432, -1637, -1842, -1825, -1552, -1248, -686, - 1194, 1026, 1610, 2194, 2194, 2194, 2194, 1276, 1297, 1319, 1341, 1363, 1376, 1390, 1340, 1802, - 1854, 1907, 1863, 1820, 1768, 1717, 1377, 1038, 1031, 1024, 889, 755, 568, 381, 290, 200, 19, - -162, 553, 1781, 2060, 1827, 1786, 1746, 2086, 378, -50, 35, -157, -349, -317, -284, -420, - -555, -338, -121, -457, -792, -935, -1078, -1245, -1412, -1515, -1617, -1908, -1687, -1658, - -1116, 1964, 1972, 2076, 2180, 2180, 2180, 2180, 1262, 1290, 1318, 1347, 1375, 1359, 1344, - 1632, 1921, 1927, 1934, 1877, 1820, 1702, 1585, 1260, 935, 907, 880, 724, 569, 436, 302, 217, - 132, 44, -43, -99, 102, 801, 2011, 1878, 1745, 1426, 2131, 916, -43, -192, -341, -394, -446, - -463, -479, -239, -255, -523, -791, -963, -1135, -1520, -1648, -1761, -1873, -1447, -2046, - -1828, -1354, 2254, 2278, 2222, 2166, 2166, 2166, 2166, 1248, 1283, 1318, 1353, 1388, 1343, - 1298, 1925, 2040, 2001, 1962, 1891, 1820, 1637, 1454, 1143, 832, 784, 736, 560, 384, 304, 224, - 144, 64, 70, 76, 18, -40, 54, 1684, 1714, 1744, 1790, 1836, 1882, 1928, 798, -332, -470, -608, - -505, -402, -139, -388, -589, -790, -991, -1192, -1794, -1884, -2006, -2128, -2266, -868, 818, - 2504, 2288, 2072, 2112, 2152, 2152, 2152, 2152, 1238, 1264, 1290, 1333, 1375, 1301, 1484, 2002, - 2009, 1974, 1939, 1872, 1805, 1608, 1411, 1118, 826, 751, 676, 505, 334, 273, 212, 151, 91, 69, - 48, 10, -27, 482, 1758, 1771, 1784, 2033, 1771, 1860, 1950, 1989, 2029, 884, -260, -1157, -261, - -310, -614, -923, -975, -1412, -1848, -2062, -2019, -697, 626, 2060, 2471, 2273, 2076, 2051, - 2026, 2081, 2136, 2136, 2136, 2136, 1228, 1245, 1263, 1313, 1363, 1260, 1670, 2080, 1978, 1947, - 1916, 1853, 1791, 1580, 1369, 1094, 820, 718, 616, 450, 285, 243, 201, 159, 118, 69, 20, 3, - -13, 910, 1833, 1828, 1824, 229, 1706, 1839, 1972, 1901, 1830, 1983, 2136, 2032, 1416, 1056, - 696, 280, 376, 728, 1080, 1767, 2454, 2405, 2356, 2035, 2226, 2193, 2160, 2070, 1980, 2050, - 2120, 2120, 2120, 2120, 1218, 1226, 1236, 1293, 1350, 1235, 1888, 2061, 1979, 1936, 1893, 1834, - 1776, 1551, 1327, 1070, 814, 685, 556, 395, 235, 212, 190, 167, 145, 116, 88, -68, 32, 1306, - 1812, 1949, 1576, -200, -183, 905, 1994, 1956, 1919, 1881, 1844, 2004, 1909, 2005, 2102, 2042, - 2239, 2195, 2152, 2043, 1935, 2370, 2038, 2697, 1821, 368, 2244, 2121, 1998, 2051, 2104, 2104, - 2104, 2104, 1208, 1208, 1209, 1273, 1338, 1210, 2107, 2043, 1980, 1925, 1871, 1816, 1762, 1523, - 1285, 1046, 808, 652, 497, 341, 186, 182, 179, 175, 172, 164, 157, 117, 590, 1958, 1791, 1815, - 816, 140, -24, -28, -32, 988, 2008, 2036, 2064, 1977, 1890, 1931, 1972, 2013, 2054, 2127, 2200, - 2320, 2440, 2080, 184, -1760, -3192, 336, 2328, 2172, 2016, 2052, 2088, 2088, 2088, 2088, 1222, - 1215, 1209, 1267, 1325, 1459, 2105, 2046, 1989, 1946, 1904, 1861, 1819, 1612, 1406, 1136, 866, - 715, 565, 446, 328, 295, 263, 231, 199, 481, 765, 712, 1427, 2086, 1721, 1692, 128, -37, 55, - -14, -82, -109, -135, 334, 804, 1293, 1783, 2272, 2250, 2197, 1889, 1356, 568, -764, -2095, - -3011, -2646, -2932, -2705, 2305, 2196, 2159, 2122, 2117, 2112, 2112, 2112, 2112, 1236, 1223, - 1210, 1261, 1313, 1708, 2103, 2050, 1998, 1967, 1937, 1907, 1877, 1702, 1528, 1226, 924, 778, - 633, 552, 471, 409, 348, 287, 226, 287, 349, 283, 1241, 1702, 1652, 1826, -48, 43, 134, 1, - -132, -181, -230, -343, -456, -670, -884, -202, -544, -946, -1860, -1718, -2088, -2311, -2534, - -2469, -2404, -2311, -1706, 2483, 2064, 2146, 2228, 2182, 2136, 2136, 2136, 2136, 1250, 1230, - 1211, 1255, 1300, 1957, 2101, 2054, 2007, 1956, 1906, 1856, 1806, 1696, 1586, 1284, 982, 841, - 701, 657, 613, 555, 497, 439, 381, 413, 445, 718, 1758, 1782, 1807, 1095, -128, -70, -11, -97, - -182, -254, -325, -429, -532, -762, -991, -581, -170, -1034, -873, -1977, -1800, -2019, -2237, - -2344, -2450, -2651, -35, 2308, 2092, 2117, 2142, 2151, 2160, 2160, 2160, 2160, 1264, 1238, - 1212, 1250, 1288, 2206, 2100, 2058, 2016, 1946, 1876, 1806, 1736, 1690, 1644, 1342, 1040, 905, - 770, 763, 756, 701, 646, 591, 536, 539, 542, 897, 1764, 1607, 1962, 365, -208, -182, -156, - -194, -232, -326, -420, -514, -608, -853, -1098, -1471, -820, -97, -910, -955, -2024, -2238, - -2452, -2474, -2496, -2990, 1636, 2134, 2120, 2088, 2056, 2120, 2184, 2184, 2184, 2184, 1198, - 1191, 1185, 1227, 1525, 2065, 2093, 2009, 1925, 1887, 1850, 1781, 1712, 1682, 1653, 1464, 1275, - 1130, 986, 937, 889, 841, 792, 744, 696, 685, 674, 1335, 1741, 1840, 1939, 54, -294, -296, - -298, -299, -301, -415, -528, -642, -755, -948, -1140, -1733, -1813, -734, -166, -1039, -887, - -1235, -1582, -1610, -1637, -1158, 2392, 2279, 2166, 2119, 2072, 2121, 2170, 2170, 2170, 2170, - 1132, 1145, 1159, 1205, 1763, 1924, 2086, 1960, 1834, 1829, 1825, 1756, 1688, 1675, 1663, 1586, - 1510, 1356, 1202, 1112, 1023, 981, 939, 897, 856, 831, 807, 1774, 1718, 1817, 1405, -512, -380, - -410, -439, -404, -369, -503, -636, -769, -902, -1042, -1182, -1482, -1782, -2138, -1982, -610, - -262, -487, -712, -745, -777, 162, 2125, 1912, 2212, 2150, 2088, 2122, 2156, 2156, 2156, 2156, - 1194, 1147, 1101, 1182, 1776, 1927, 2079, 1863, 1903, 1979, 1799, 1843, 1632, 1620, 1608, 1612, - 1617, 1517, 1418, 1351, 1284, 1217, 1150, 1098, 1048, 945, 1099, 1781, 1695, 1954, 422, -566, - -530, -556, -580, -573, -566, -687, -808, -929, -1049, -1233, -1416, -1680, -1943, -2343, - -2486, -2502, -2773, -2076, -1378, -1672, -2222, 458, 2370, 2137, 2162, 2133, 2104, 2123, 2142, - 2142, 2142, 2142, 1256, 1149, 1043, 1160, 1790, 1931, 2073, 1766, 1972, 2129, 1774, 1931, 1576, - 1565, 1554, 1639, 1724, 1679, 1635, 1590, 1546, 1453, 1361, 1300, 1240, 1060, 1392, 1788, 1672, - 2092, -560, -620, -680, -701, -721, -742, -762, -871, -979, -1088, -1196, -1423, -1650, -1877, - -2104, -2291, -2478, -2857, -2724, -2896, -3067, -3111, -3666, 2546, 2103, 2107, 2112, 2116, - 2120, 2124, 2128, 2128, 2128, 2128, 1214, 1171, 1128, 1453, 1779, 1692, 1862, 1807, 1753, 1732, - 1712, 1804, 1640, 1759, 1623, 1711, 1799, 1666, 1791, 1755, 1719, 1629, 1539, 1497, 1456, 1352, - 1504, 1752, 1745, 1445, -903, -899, -894, -909, -923, -937, -951, -1071, -1191, -1312, -1431, - -1642, -1852, -2063, -2273, -2432, -2590, -2813, -2779, -2931, -3081, -3280, -2199, 2298, 2187, - 2124, 2062, 2081, 2100, 2119, 2138, 2138, 2138, 2138, 1172, 1193, 1214, 1747, 1769, 1710, 2163, - 2360, 2046, 1592, 1651, 1677, 1704, 1954, 1693, 1783, 1874, 1654, 1947, 1920, 1893, 1805, 1718, - 1695, 1672, 1644, 1617, 1717, 1818, 798, -1245, -1177, -1108, -1116, -1124, -1132, -1139, - -1271, -1403, -1535, -1666, -1860, -2054, -2248, -2442, -2572, -2702, -2768, -2834, -2965, - -3095, -3193, -219, 2306, 2272, 2142, 2012, 2046, 2080, 2114, 2148, 2148, 2148, 2148, 1194, - 1151, 1364, 1785, 1694, 1983, 2272, 1441, 2147, 1980, 1813, 1838, 1864, 1909, 1698, 1823, 1949, - 1818, 1943, 1989, 2034, 1933, 1833, 1812, 1792, 1712, 1633, 1650, 1923, -537, -1460, -1391, - -1322, -1356, -1389, -1423, -1456, -1567, -1679, -1790, -1901, -2079, -2256, -2434, -2611, - -2745, -2878, -2916, -2953, -2999, -3045, -3778, 1632, 2298, 1941, 2015, 2090, 2107, 2124, - 2141, 2158, 2158, 2158, 2158, 1216, 1109, 1514, 1823, 1620, 2001, 1870, 1803, 1224, 1600, 1464, - 1232, 1000, 1096, 1192, 1352, 1512, 1726, 1940, 2058, 2176, 2062, 1948, 1930, 1912, 1781, 1650, - 1583, 2028, -1871, -1674, -1605, -1536, -1595, -1654, -1713, -1772, -1863, -1954, -2045, -2136, - -2297, -2458, -2619, -2780, -2917, -3054, -3063, -3072, -3033, -2994, -2827, 2460, 2035, 2122, - 2145, 2168, 2168, 2168, 2168, 2168, 2168, 2168, 2168, 1190, 1272, 1610, 1757, 1647, 1523, 1144, - 1324, 1249, 1364, 1224, 1211, 1199, 1255, 1566, 1430, 1294, 1404, 1514, 1800, 2087, 2075, 2063, - 2003, 1944, 1654, 1621, 1812, 979, -1999, -1904, -1889, -1874, -1929, -1983, -2038, -2092, - -2164, -2237, -2309, -2381, -2514, -2646, -2779, -2911, -3006, -3100, -3115, -3129, -3040, - -3206, -1085, 2317, 2104, 2148, 2159, 2171, 2175, 2179, 2183, 2187, 2187, 2187, 2187, 1164, - 1179, 1195, 1179, 1163, 1302, 1442, 1358, 1274, 1385, 1496, 1447, 1399, 1158, 1429, 1508, 1588, - 1594, 1601, 1543, 1486, 1832, 2179, 2077, 1976, 1528, 1593, 1785, -582, -2382, -2133, -2173, - -2212, -2262, -2312, -2362, -2411, -2465, -2519, -2573, -2626, -2730, -2834, -2938, -3042, - -3094, -3146, -3166, -3186, -3046, -3418, 658, 2174, 2174, 2174, 2174, 2174, 2182, 2190, 2198, - 2206, 2206, 2206, 2206, 1202, 1230, 1260, 1273, 1286, 1321, 1356, 1343, 1331, 1405, 1480, 1475, - 1470, 1349, 1484, 1522, 1562, 1576, 1591, 1574, 1557, 1589, 1622, 1719, 1816, 1690, 1820, 1694, - -2015, -2557, -2331, -2377, -2422, -2612, -2801, -2702, -2603, -2670, -2737, -2805, -2871, - -2947, -3022, -3098, -3173, -3183, -3192, -3154, -3115, -3325, -3278, 2256, 2159, 2147, 2136, - 2156, 2177, 2189, 2201, 2213, 2225, 2225, 2225, 2225, 1240, 1282, 1325, 1367, 1410, 1340, 1271, - 1329, 1388, 1426, 1465, 1503, 1542, 1540, 1539, 1537, 1536, 1559, 1582, 1605, 1628, 1603, 1578, - 1617, 1656, 1596, 1536, 1604, -2936, -2476, -2528, -2580, -2632, -2705, -2777, -2786, -2794, - -2875, -2955, -3036, -3116, -3163, -3210, -3257, -3304, -3271, -3238, -3141, -3044, -3091, - -2114, 2319, 2144, 2121, 2098, 2139, 2180, 2196, 2212, 2228, 2244, 2244, 2244, 2244, 1230, - 1255, 1281, 1307, 1333, 1303, 1273, 1338, 1405, 1436, 1469, 1501, 1533, 1535, 1537, 1539, 1542, - 1563, 1584, 1605, 1627, 1602, 1577, 1616, 1656, 1807, 1959, -417, -2793, -2798, -2546, -2582, - -2618, -2689, -2758, -2796, -2834, -2902, -2970, -3038, -3105, -3146, -3186, -3179, -3171, - -3150, -3128, -3059, -2989, -3222, -126, 2281, 2129, 2084, 2040, 2107, 2175, 2189, 2203, 2217, - 2231, 2231, 2231, 2231, 1220, 1229, 1238, 1247, 1257, 1266, 1275, 1348, 1422, 1447, 1473, 1499, - 1525, 1530, 1536, 1542, 1548, 1567, 1587, 1606, 1626, 1601, 1577, 1616, 1656, 1763, 1871, 1658, - -2138, -2863, -2563, -2584, -2604, -2672, -2739, -2806, -2873, -2929, -2984, -3039, -3094, - -3128, -3162, -3100, -3038, -3028, -3018, -2976, -2934, -3352, 1862, 2244, 2114, 2048, 1982, - 2076, 2170, 2182, 2194, 2206, 2218, 2218, 2218, 2218, 1210, 1234, 1259, 1283, 1308, 1325, 1341, - 1390, 1439, 1458, 1477, 1497, 1516, 1525, 1535, 1544, 1554, 1571, 1589, 1607, 1625, 1616, 1608, - 1632, 1656, 1719, 1782, 1685, 1845, 528, -2837, -2730, -2622, -2655, -2688, -2720, -2753, - -2764, -2774, -2993, -2955, -3031, -3106, -2814, -2777, -3227, -2908, -3134, -3359, -971, 2186, - 2270, 2099, 2075, 2052, 2108, 2165, 2175, 2185, 2195, 2205, 2205, 2205, 2205, 1200, 1240, 1280, - 1320, 1360, 1384, 1408, 1432, 1456, 1469, 1482, 1495, 1508, 1521, 1534, 1547, 1560, 1576, 1592, - 1608, 1624, 1632, 1640, 1648, 1656, 1675, 1694, 1713, 1732, 1871, 986, -827, -2640, -2638, - -2636, -2634, -2632, -2598, -2564, -2946, -2816, -2933, -3050, -2783, -3028, -3169, -1774, 293, - 2360, 2179, 1998, 2041, 2084, 2103, 2122, 2141, 2160, 2168, 2176, 2184, 2192, 2192, 2192, 2192, - 1232, 1266, 1300, 1334, 1368, 1390, 1412, 1434, 1456, 1469, 1482, 1495, 1508, 1521, 1534, 1547, - 1560, 1578, 1596, 1614, 1632, 1640, 1648, 1656, 1664, 1646, 1628, 1706, 1784, 2102, 1908, 1298, - 688, 1071, -594, -1587, -2580, -2891, -3202, -2281, -2640, -2058, -1476, -94, 1032, 2278, 2244, - 2210, 2176, 2132, 2088, 2092, 2096, 2112, 2128, 2144, 2160, 2168, 2176, 2184, 2192, 2192, 2192, - 2192, 1264, 1292, 1320, 1348, 1376, 1396, 1416, 1436, 1456, 1469, 1482, 1495, 1508, 1521, 1534, - 1547, 1560, 1580, 1600, 1620, 1640, 1648, 1656, 1664, 1672, 1617, 1562, 1699, 1836, 1821, 1806, - 1887, 1968, 1964, 1960, 2020, 2080, 1936, 1792, 1200, 1632, 1889, 2146, 2083, 2020, 2093, 2166, - 2079, 1992, 2085, 2178, 2143, 2108, 2121, 2134, 2147, 2160, 2168, 2176, 2184, 2192, 2192, 2192, - 2192, 1296, 1318, 1340, 1362, 1384, 1402, 1420, 1438, 1456, 1469, 1482, 1495, 1508, 1521, 1534, - 1547, 1560, 1582, 1604, 1626, 1648, 1656, 1664, 1672, 1680, 1668, 1656, 1740, 1824, 1812, 1800, - 1836, 1872, 1881, 1890, 1819, 1748, 1995, 450, 937, 912, 716, 2056, 2020, 1984, 2036, 2088, - 2060, 2032, 2086, 2140, 2130, 2120, 2130, 2140, 2150, 2160, 2168, 2176, 2184, 2192, 2192, 2192, - 2192, 1328, 1344, 1360, 1376, 1392, 1408, 1424, 1440, 1456, 1469, 1482, 1495, 1508, 1521, 1534, - 1547, 1560, 1584, 1608, 1632, 1656, 1664, 1672, 1680, 1688, 1719, 1750, 1781, 1812, 1803, 1794, - 1785, 1776, 1798, 1820, 1874, 1928, 1798, 2180, 674, 1216, 2103, 1966, 1957, 1948, 1979, 2010, - 2041, 2072, 2087, 2102, 2117, 2132, 2139, 2146, 2153, 2160, 2168, 2176, 2184, 2192, 2192, 2192, - 2192, 1328, 1344, 1360, 1376, 1392, 1408, 1424, 1440, 1456, 1469, 1482, 1495, 1508, 1521, 1534, - 1547, 1560, 1584, 1608, 1632, 1656, 1664, 1672, 1680, 1688, 1719, 1750, 1781, 1812, 1803, 1794, - 1785, 1776, 1798, 1820, 1858, 1896, 1750, 1860, 2338, 1792, 2135, 1966, 1957, 1948, 1979, 2010, - 2041, 2072, 2087, 2102, 2117, 2132, 2139, 2146, 2153, 2160, 2168, 2176, 2184, 2192, 2192, 2192, - 2192, 1328, 1344, 1360, 1376, 1392, 1408, 1424, 1440, 1456, 1469, 1482, 1495, 1508, 1521, 1534, - 1547, 1560, 1584, 1608, 1632, 1656, 1664, 1672, 1680, 1688, 1719, 1750, 1781, 1812, 1803, 1794, - 1785, 1776, 1798, 1820, 1842, 1864, 1958, 2052, 1954, 1856, 1911, 1966, 1957, 1948, 1979, 2010, - 2041, 2072, 2087, 2102, 2117, 2132, 2139, 2146, 2153, 2160, 2168, 2176, 2184, 2192, 2192, 2192, - 2192, 1328, 1344, 1360, 1376, 1392, 1408, 1424, 1440, 1456, 1469, 1482, 1495, 1508, 1521, 1534, - 1547, 1560, 1584, 1608, 1632, 1656, 1664, 1672, 1680, 1688, 1719, 1750, 1781, 1812, 1803, 1794, - 1785, 1776, 1798, 1820, 1842, 1864, 1958, 2052, 1954, 1856, 1911, 1966, 1957, 1948, 1979, 2010, - 2041, 2072, 2087, 2102, 2117, 2132, 2139, 2146, 2153, 2160, 2168, 2176, 2184, 2192, 2192, 2192, - 2192, + 1728, 1730, 1732, 1734, 1736, 1738, 1740, 1742, 1744, 1740, 1736, 1732, 1728, 1796, 1864, 1804, 1744, 1754, 1764, + 1774, 1784, 1794, 1804, 1814, 1824, 1774, 1724, 1802, 1880, 1814, 1748, 1810, 1872, 1878, 1884, 1890, 1896, 1910, + 1924, 1938, 1952, 1938, 1924, 1910, 1896, 1914, 1932, 1950, 1968, 1974, 1980, 1986, 1992, 1998, 2004, 2010, 2016, + 2016, 2016, 2016, 2016, 2016, 2016, 2016, 1710, 1697, 1684, 1704, 1723, 1726, 1730, 1733, 1737, 1738, 1740, 1741, + 1743, 1758, 1774, 1757, 1741, 1762, 1783, 1788, 1793, 1774, 1755, 1784, 1813, 1817, 1821, 1825, 1829, 1857, 1885, + 1881, 1877, 1849, 1821, 1857, 1894, 1904, 1914, 1924, 1935, 1928, 1922, 1915, 1909, 1922, 1936, 1949, 1963, 1974, + 1985, 1997, 2008, 2009, 2011, 2012, 2014, 2017, 2020, 2023, 2026, 2026, 2026, 2026, 1692, 1664, 1637, 1674, 1711, + 1715, 1720, 1725, 1730, 1737, 1744, 1751, 1758, 1721, 1684, 1711, 1738, 1770, 1802, 1802, 1802, 1754, 1706, 1754, + 1802, 1860, 1918, 1848, 1778, 1900, 2022, 1952, 1882, 1820, 1759, 1825, 1892, 1898, 1905, 1911, 1918, 1919, 1920, + 1921, 1922, 1931, 1940, 1949, 1958, 1974, 1991, 2008, 2025, 2021, 2018, 2015, 2012, 2018, 2024, 2030, 2036, 2036, + 2036, 2036, 1674, 1631, 1590, 1644, 1698, 1704, 1710, 1716, 1723, 1735, 1748, 1760, 1773, 1763, 1754, 1760, 1767, + 1794, 1821, 1800, 1779, 1830, 1881, 1900, 1919, 2047, 2175, 2015, 1855, 1879, 1903, 1927, 1951, 1759, 1824, 1857, + 1890, 1892, 1895, 1898, 1901, 1909, 1918, 1926, 1935, 1939, 1944, 1948, 1953, 1974, 1997, 2019, 2041, 2033, 2025, + 2017, 2010, 2019, 2028, 2037, 2046, 2046, 2046, 2046, 1656, 1599, 1543, 1614, 1686, 1693, 1701, 1708, 1716, 1734, + 1752, 1770, 1788, 1806, 1824, 1810, 1796, 1818, 1840, 2054, 2268, 1650, 1032, 510, -12, -70, -128, 390, 908, 1602, + 2296, 2158, 2020, 1699, 1890, 1889, 1888, 1887, 1886, 1885, 1884, 1900, 1916, 1932, 1948, 1948, 1948, 1948, 1948, + 1975, 2003, 2030, 2058, 2045, 2033, 2020, 2008, 2020, 2032, 2044, 2056, 2056, 2056, 2056, 1590, 1570, 1551, 1612, + 1673, 1580, 1743, 1713, 1685, 1672, 1660, 1711, 1763, 1694, 1626, 1941, 2001, 2060, 583, -654, -1891, -2046, -2201, + -2084, -1967, -2049, -2131, -2053, -1975, -1751, -1527, 41, 1609, 2374, 1859, 2000, 1886, 1899, 1912, 1909, 1907, + 1900, 1894, 1919, 1945, 1944, 1944, 1943, 1943, 1967, 1992, 2017, 2042, 2033, 2024, 2014, 2006, 2017, 2028, 2039, + 2050, 2050, 2050, 2050, 1524, 1542, 1560, 1610, 1661, 1467, 1785, 1719, 1654, 1611, 1568, 1653, 1738, 1839, 1940, + 793, -866, -2050, -2210, -2082, -1954, -1902, -1850, -1862, -1874, -1980, -2086, -1936, -1786, -1776, -1766, -1820, + -1874, -535, 1829, 2112, 1884, 1911, 1939, 1934, 1930, 1901, 1872, 1907, 1942, 1941, 1940, 1939, 1938, 1960, 1982, + 2004, 2027, 2021, 2015, 2009, 2004, 2014, 2024, 2034, 2044, 2044, 2044, 2044, 1586, 1641, 1697, 1704, 1712, 1578, + 1699, 1661, 1623, 1613, 1604, 1642, 1681, 1791, -402, -2036, -1877, -2144, -1899, -1942, -1985, -1918, -1851, + -1880, -1909, -1959, -2009, -1931, -1853, -1801, -1749, -1617, -1485, -1940, -1882, 96, 2074, 1971, 1869, 1895, + 1921, 1885, 1850, 1894, 1939, 1937, 1936, 1934, 1933, 1952, 1972, 1991, 2011, 2009, 2006, 2004, 2002, 2011, 2020, + 2029, 2038, 2038, 2038, 2038, 1136, 1229, 1322, 1287, 1252, 1433, 1614, 1603, 1592, 1616, 1640, 1632, 1624, 2256, + -1720, -1792, -1864, -1982, -2100, -2058, -2016, -1934, -1852, -1898, -1944, -1938, -1932, -1926, -1920, -1826, + -1732, -1670, -1608, -1552, -1496, -1664, -1320, 2288, 1800, 1856, 1912, 1870, 1828, 1882, 1936, 1934, 1932, 1930, + 1928, 1945, 1962, 1979, 1996, 1997, 1998, 1999, 2000, 2008, 2016, 2024, 2032, 2032, 2032, 2032, 1552, 1625, 1698, + 1675, 1652, 1645, 1638, 1615, 1592, 1611, 1630, 1681, 1733, 1146, -2001, -1788, -1830, -1925, -2019, -2050, -2080, + -1987, -1893, -1896, -1898, -1897, -1895, -1861, -1827, -1780, -1732, -1668, -1604, -1616, -1627, -1879, -594, + 2063, 1903, 2016, 1873, 2132, 1880, 1884, 1888, 1921, 1955, 1941, 1927, 1926, 1925, 1956, 1987, 2006, 2025, 2044, + 2063, 1995, 1927, 2099, 2015, 2095, 2175, 2175, 1456, 1509, 1562, 1551, 1540, 1601, 1662, 1627, 1592, 1606, 1621, + 1731, 1842, 36, -2281, -1783, -1796, -1867, -1938, -2041, -2144, -2039, -1934, -1893, -1852, -1855, -1857, -1796, + -1734, -1733, -1731, -1666, -1600, -1679, -1758, -1837, 645, 2094, 2007, 1920, 1322, 2139, 1933, 1886, 1840, 1909, + 1979, 1952, 1926, 1907, 1888, 1933, 1978, 2015, 2052, 2089, 2126, 1982, 1838, 2174, 1998, 2158, 2318, 2318, 1488, + 1521, 1554, 1555, 1556, 1589, 1622, 1607, 1592, 1569, 1547, 1701, 1855, -994, -2050, -1826, -1858, -1906, -1953, + -2017, -2080, -1996, -1911, -1859, -1806, -1813, -1820, -1731, -1641, -1686, -1731, -1680, -1628, -1679, -1729, + -2195, 1947, 2125, 2047, 944, -2205, 114, 2177, 2144, 1856, 1913, 1970, 1963, 1957, 1936, 1915, 1926, 1937, 1992, + 2047, 2182, 2061, 2337, 2613, 1817, 2301, 2157, 2269, 2397, 1520, 1533, 1546, 1559, 1572, 1577, 1582, 1587, 1592, + 1533, 1474, 1671, 1868, -2023, -1818, -1869, -1920, -1944, -1968, -1992, -2016, -1952, -1888, -1824, -1760, -1771, + -1782, -1665, -1548, -1639, -1730, -1693, -1656, -1678, -1699, -1017, 2226, 1644, 2087, -287, -2148, -2167, -1674, + 611, 2384, 2173, 1962, 1975, 1988, 1965, 1942, 1919, 1896, 1969, 2042, 2019, 1484, -1916, -1220, 2484, 1068, -916, + 1708, 1964, 1504, 1515, 1526, 1537, 1548, 1551, 1554, 1557, 1560, 1582, 1604, 1786, 689, -2139, -1895, -1907, + -1918, -1927, -1935, -1944, -1952, -1879, -1805, -1732, -1658, -1628, -1597, -1550, -1503, -1509, -1514, -1519, + -1524, -1528, -1786, 147, 2080, 1995, 2422, -2095, -2003, -2035, -1810, -1665, -1776, -190, 1397, 2536, 2139, 2122, + 2105, 2328, 2295, 2204, 2113, 2870, -213, -1669, -1077, -1237, -1653, -1589, 2059, 1931, 1488, 1497, 1506, 1515, + 1524, 1525, 1526, 1527, 1528, 1631, 1735, 1902, -490, -2255, -1971, -1944, -1916, -1909, -1902, -1895, -1888, + -1805, -1722, -1639, -1556, -1484, -1411, -1435, -1458, -1378, -1297, -1345, -1392, -1377, -1873, 1311, 1935, 1834, + 1734, -2622, -2370, -2158, -1945, -1893, -1840, -2040, -2239, -2023, -782, -281, 220, 433, 134, -377, -888, -1655, + -1398, -1166, -934, -1374, -1302, -726, 2410, 1898, 1472, 1479, 1486, 1493, 1500, 1499, 1498, 1497, 1496, 1600, + 1705, 1666, -933, -1475, -2016, -1965, -1914, -1892, -1869, -1847, -1824, -1732, -1639, -1547, -1454, -1388, -1322, + -1192, -1317, -1151, -1241, -1251, -1260, -1546, -1576, 2459, 1885, 2057, 182, -2430, -2225, -2089, -1953, -1929, + -1904, -1906, -1908, -2150, -1879, -1836, -1793, -1670, -1803, -1646, -1489, -1492, -1239, -1335, -1431, -1335, + -1495, 681, 2345, 2089, 1456, 1461, 1466, 1471, 1476, 1473, 1470, 1467, 1464, 1570, 1676, 1174, -1888, -950, -2060, + -1986, -1912, -1874, -1836, -1798, -1760, -1658, -1556, -1454, -1352, -1292, -1232, -1204, -1688, -1180, -1184, + -1156, -1128, -1203, -254, 2071, 1836, 2281, -1370, -2237, -2080, -2020, -1960, -1964, -1968, -2028, -2088, -2020, + -1952, -1855, -1758, -1725, -1692, -1635, -1578, -1329, -1592, -1504, -1416, -1040, -1688, 2088, 2280, 2280, 1428, + 1439, 1450, 1461, 1472, 1463, 1454, 1493, 1533, 1512, 1748, -161, -2069, -1347, -1138, -1776, -1902, -1849, -1795, + -1709, -1623, -1545, -1467, -1357, -1247, -1199, -1150, -1197, -1756, -1247, -994, -1013, -1032, -1203, 930, 2023, + 1837, 2238, -2481, -2288, -1838, -1800, -1762, -1836, -1909, -1955, -2001, -1983, -1964, -1909, -1854, -1831, + -1807, -1750, -1693, -1540, -1642, -1526, -1410, -638, -122, 774, 1926, 1926, 1400, 1417, 1434, 1451, 1469, 1454, + 1439, 1520, 1602, 1455, 1820, -1239, -1737, -1744, -727, -1822, -1892, -1823, -1753, -1619, -1485, -1432, -1378, + -1260, -1142, -1105, -1067, -1189, -1823, -1314, -804, -870, -936, -1203, 2115, 1976, 1838, 915, -2055, -1570, + -1596, -1580, -1563, -1707, -1850, -1882, -1913, -1945, -1976, -1963, -1949, -1936, -1922, -1865, -1807, -1750, + -1692, -1548, -1404, -1004, -92, 996, 2084, 2084, 1372, 1395, 1418, 1441, 1465, 1444, 1424, 1483, 1543, 1765, 1732, + -2205, -1534, -1613, -1180, -1276, -1882, -1765, -1647, -1562, -1476, -1303, -1129, -1115, -1101, -995, -888, + -1054, -1731, -1397, -806, -711, -872, -307, 2051, 1929, 2063, -152, -1598, -1348, -1354, -1328, -1301, -1418, + -1535, -1601, -1666, -1731, -1796, -1825, -1853, -1881, -1909, -1884, -1858, -1768, -1678, -1570, -1462, -1434, + 1154, 2402, 1858, 1858, 1344, 1373, 1403, 1432, 1462, 1435, 1409, 1446, 1484, 1564, 621, -1891, -1842, -1738, + -1633, -729, -1872, -1707, -1541, -1504, -1466, -1429, -1391, -1226, -1060, -885, -709, -918, -1638, -1479, -807, + -552, -808, 590, 1988, 1882, 2288, -1218, -1140, -1126, -1112, -1075, -1038, -1129, -1220, -1319, -1418, -1517, + -1616, -1686, -1756, -1826, -1896, -1902, -1908, -1786, -1664, -1592, -1520, -1864, 2400, 2016, 2144, 2144, 1348, + 1373, 1399, 1424, 1450, 1463, 1477, 1491, 1505, 1728, -607, -1839, -1791, -1737, -1683, -1005, -1350, -1711, -1560, + -1521, -1481, -1384, -1286, -1381, -1475, -1209, -943, -613, -794, -798, -801, -613, -680, 1364, 1872, 1932, 1481, + -1151, -967, -927, -886, -869, -852, -931, -1009, -1062, -1115, -1232, -1348, -1522, -1696, -1806, -1915, -1901, + -1887, -1793, -1698, -1604, -1766, -744, 2326, 2134, 2198, 2198, 1352, 1373, 1395, 1417, 1439, 1492, 1546, 1536, + 1526, 1893, -1835, -1787, -1739, -1736, -1732, -1280, -828, -1715, -1578, -1537, -1495, -1338, -1181, -1024, -866, + -765, -664, -563, -973, -372, -283, -418, -552, 2138, 1757, 1983, 674, -1084, -793, -727, -660, -663, -665, -732, + -798, -805, -811, -946, -1080, -1358, -1635, -1785, -1934, -1900, -1865, -1799, -1732, -1616, -2012, 376, 2252, + 2252, 2252, 2252, 1356, 1373, 1391, 1409, 1427, 1425, 1423, 1501, 1579, 906, -1815, -1703, -1848, -1911, -1717, + -1636, -786, -1687, -1820, -1713, -1606, -1373, -1140, -923, -705, -657, -609, -385, -417, -235, -309, -479, 376, + 1968, 1769, 2034, -5, -841, -652, -607, -562, -585, -607, -661, -715, -740, -764, -964, -1164, -1434, -1703, -1844, + -1985, -1979, -1972, -1885, -1798, -2012, -2226, 2152, 2178, 2194, 2210, 2210, 1360, 1374, 1388, 1402, 1416, 1358, + 1300, 1466, 1632, -81, -1794, -1619, -1956, -2085, -1702, -1991, -744, -891, -526, -353, -180, -383, -586, -821, + -1056, -805, -554, -463, -372, -353, -334, -539, 1304, 1799, 1782, 2085, -684, -597, -510, -487, -464, -506, -548, + -590, -632, -674, -716, -982, -1248, -1509, -1770, -1903, -2036, -2057, -2078, -1971, -1864, -1896, -1416, 2392, + 2104, 2136, 2168, 2168, 1346, 1358, 1371, 1383, 1396, 1395, 1393, 1552, 1711, -1178, -1763, -2204, -1364, -465, + 690, 1941, 1913, 1747, 1837, 1816, 1794, 1888, 1983, 1773, 1564, 548, -468, -299, -387, -393, -398, -148, 1895, + 1920, 1946, 1284, -402, -398, -394, -422, -450, -479, -508, -569, -630, -723, -816, -1069, -1321, -1698, -2075, + -2083, -2092, -2131, -2169, -2032, -1894, -2028, 142, 2280, 2114, 2082, 2050, 2050, 1332, 1343, 1354, 1365, 1377, + 1432, 1487, 1382, 1278, -1763, -195, 1308, 1788, 1667, 1547, 1522, 1498, 1569, 1641, 1681, 1721, 1600, 1480, 1552, + 1624, 1901, 2179, 1145, -401, -432, -462, -12, 1974, 1786, 2111, 484, -119, -199, -278, -357, -436, -452, -468, + -548, -627, -771, -915, -899, -882, -607, -331, -471, -611, -1436, -2260, -2092, -1924, -2160, 1700, 2168, 2124, + 2028, 1932, 1932, 1318, 1327, 1337, 1347, 1357, 1405, 1453, 1420, 1389, 1380, 1628, 1748, 1356, 1495, 1635, 1631, + 1627, 1551, 1733, 1690, 1647, 1728, 1809, 1730, 1652, 1686, 1722, 1949, 1920, 873, -430, 363, 1925, 1764, 1860, + 147, -29, -96, -162, -292, -422, -425, -428, -559, -689, -372, -310, -281, -251, -572, -891, -859, -827, -565, + -303, -1081, -1858, -1636, 2170, 2296, 2166, 2118, 2070, 2070, 1304, 1312, 1321, 1329, 1338, 1378, 1419, 1459, + 1500, 1452, 1404, 1420, 1436, 1580, 1724, 1484, 1244, 1022, 1313, 1187, 1062, 1088, 1115, 1397, 1680, 1728, 1777, + 1729, 1682, 1922, 1651, 1763, 1876, 1742, 1609, -189, 62, 8, -45, -227, -408, -398, -387, -569, -750, -228, -217, + -431, -644, -1048, -1451, -1503, -1554, -1230, -905, -581, -256, -856, 1616, 1912, 2208, 2208, 2208, 2208, 1290, + 1304, 1320, 1335, 1350, 1377, 1404, 1271, 1395, 1525, 1655, 1769, 1884, 1802, 1720, 1430, 1141, 1026, 1168, 1038, + 908, 700, 492, 331, 172, 873, 1575, 1525, 1731, 1991, 1739, 1774, 1811, 1914, 993, -120, 48, -75, -197, -272, -346, + -409, -471, -326, -180, -215, -505, -811, -1117, -1275, -1432, -1637, -1842, -1825, -1552, -1248, -686, 1194, 1026, + 1610, 2194, 2194, 2194, 2194, 1276, 1297, 1319, 1341, 1363, 1376, 1390, 1340, 1802, 1854, 1907, 1863, 1820, 1768, + 1717, 1377, 1038, 1031, 1024, 889, 755, 568, 381, 290, 200, 19, -162, 553, 1781, 2060, 1827, 1786, 1746, 2086, 378, + -50, 35, -157, -349, -317, -284, -420, -555, -338, -121, -457, -792, -935, -1078, -1245, -1412, -1515, -1617, + -1908, -1687, -1658, -1116, 1964, 1972, 2076, 2180, 2180, 2180, 2180, 1262, 1290, 1318, 1347, 1375, 1359, 1344, + 1632, 1921, 1927, 1934, 1877, 1820, 1702, 1585, 1260, 935, 907, 880, 724, 569, 436, 302, 217, 132, 44, -43, -99, + 102, 801, 2011, 1878, 1745, 1426, 2131, 916, -43, -192, -341, -394, -446, -463, -479, -239, -255, -523, -791, -963, + -1135, -1520, -1648, -1761, -1873, -1447, -2046, -1828, -1354, 2254, 2278, 2222, 2166, 2166, 2166, 2166, 1248, + 1283, 1318, 1353, 1388, 1343, 1298, 1925, 2040, 2001, 1962, 1891, 1820, 1637, 1454, 1143, 832, 784, 736, 560, 384, + 304, 224, 144, 64, 70, 76, 18, -40, 54, 1684, 1714, 1744, 1790, 1836, 1882, 1928, 798, -332, -470, -608, -505, + -402, -139, -388, -589, -790, -991, -1192, -1794, -1884, -2006, -2128, -2266, -868, 818, 2504, 2288, 2072, 2112, + 2152, 2152, 2152, 2152, 1238, 1264, 1290, 1333, 1375, 1301, 1484, 2002, 2009, 1974, 1939, 1872, 1805, 1608, 1411, + 1118, 826, 751, 676, 505, 334, 273, 212, 151, 91, 69, 48, 10, -27, 482, 1758, 1771, 1784, 2033, 1771, 1860, 1950, + 1989, 2029, 884, -260, -1157, -261, -310, -614, -923, -975, -1412, -1848, -2062, -2019, -697, 626, 2060, 2471, + 2273, 2076, 2051, 2026, 2081, 2136, 2136, 2136, 2136, 1228, 1245, 1263, 1313, 1363, 1260, 1670, 2080, 1978, 1947, + 1916, 1853, 1791, 1580, 1369, 1094, 820, 718, 616, 450, 285, 243, 201, 159, 118, 69, 20, 3, -13, 910, 1833, 1828, + 1824, 229, 1706, 1839, 1972, 1901, 1830, 1983, 2136, 2032, 1416, 1056, 696, 280, 376, 728, 1080, 1767, 2454, 2405, + 2356, 2035, 2226, 2193, 2160, 2070, 1980, 2050, 2120, 2120, 2120, 2120, 1218, 1226, 1236, 1293, 1350, 1235, 1888, + 2061, 1979, 1936, 1893, 1834, 1776, 1551, 1327, 1070, 814, 685, 556, 395, 235, 212, 190, 167, 145, 116, 88, -68, + 32, 1306, 1812, 1949, 1576, -200, -183, 905, 1994, 1956, 1919, 1881, 1844, 2004, 1909, 2005, 2102, 2042, 2239, + 2195, 2152, 2043, 1935, 2370, 2038, 2697, 1821, 368, 2244, 2121, 1998, 2051, 2104, 2104, 2104, 2104, 1208, 1208, + 1209, 1273, 1338, 1210, 2107, 2043, 1980, 1925, 1871, 1816, 1762, 1523, 1285, 1046, 808, 652, 497, 341, 186, 182, + 179, 175, 172, 164, 157, 117, 590, 1958, 1791, 1815, 816, 140, -24, -28, -32, 988, 2008, 2036, 2064, 1977, 1890, + 1931, 1972, 2013, 2054, 2127, 2200, 2320, 2440, 2080, 184, -1760, -3192, 336, 2328, 2172, 2016, 2052, 2088, 2088, + 2088, 2088, 1222, 1215, 1209, 1267, 1325, 1459, 2105, 2046, 1989, 1946, 1904, 1861, 1819, 1612, 1406, 1136, 866, + 715, 565, 446, 328, 295, 263, 231, 199, 481, 765, 712, 1427, 2086, 1721, 1692, 128, -37, 55, -14, -82, -109, -135, + 334, 804, 1293, 1783, 2272, 2250, 2197, 1889, 1356, 568, -764, -2095, -3011, -2646, -2932, -2705, 2305, 2196, 2159, + 2122, 2117, 2112, 2112, 2112, 2112, 1236, 1223, 1210, 1261, 1313, 1708, 2103, 2050, 1998, 1967, 1937, 1907, 1877, + 1702, 1528, 1226, 924, 778, 633, 552, 471, 409, 348, 287, 226, 287, 349, 283, 1241, 1702, 1652, 1826, -48, 43, 134, + 1, -132, -181, -230, -343, -456, -670, -884, -202, -544, -946, -1860, -1718, -2088, -2311, -2534, -2469, -2404, + -2311, -1706, 2483, 2064, 2146, 2228, 2182, 2136, 2136, 2136, 2136, 1250, 1230, 1211, 1255, 1300, 1957, 2101, 2054, + 2007, 1956, 1906, 1856, 1806, 1696, 1586, 1284, 982, 841, 701, 657, 613, 555, 497, 439, 381, 413, 445, 718, 1758, + 1782, 1807, 1095, -128, -70, -11, -97, -182, -254, -325, -429, -532, -762, -991, -581, -170, -1034, -873, -1977, + -1800, -2019, -2237, -2344, -2450, -2651, -35, 2308, 2092, 2117, 2142, 2151, 2160, 2160, 2160, 2160, 1264, 1238, + 1212, 1250, 1288, 2206, 2100, 2058, 2016, 1946, 1876, 1806, 1736, 1690, 1644, 1342, 1040, 905, 770, 763, 756, 701, + 646, 591, 536, 539, 542, 897, 1764, 1607, 1962, 365, -208, -182, -156, -194, -232, -326, -420, -514, -608, -853, + -1098, -1471, -820, -97, -910, -955, -2024, -2238, -2452, -2474, -2496, -2990, 1636, 2134, 2120, 2088, 2056, 2120, + 2184, 2184, 2184, 2184, 1198, 1191, 1185, 1227, 1525, 2065, 2093, 2009, 1925, 1887, 1850, 1781, 1712, 1682, 1653, + 1464, 1275, 1130, 986, 937, 889, 841, 792, 744, 696, 685, 674, 1335, 1741, 1840, 1939, 54, -294, -296, -298, -299, + -301, -415, -528, -642, -755, -948, -1140, -1733, -1813, -734, -166, -1039, -887, -1235, -1582, -1610, -1637, + -1158, 2392, 2279, 2166, 2119, 2072, 2121, 2170, 2170, 2170, 2170, 1132, 1145, 1159, 1205, 1763, 1924, 2086, 1960, + 1834, 1829, 1825, 1756, 1688, 1675, 1663, 1586, 1510, 1356, 1202, 1112, 1023, 981, 939, 897, 856, 831, 807, 1774, + 1718, 1817, 1405, -512, -380, -410, -439, -404, -369, -503, -636, -769, -902, -1042, -1182, -1482, -1782, -2138, + -1982, -610, -262, -487, -712, -745, -777, 162, 2125, 1912, 2212, 2150, 2088, 2122, 2156, 2156, 2156, 2156, 1194, + 1147, 1101, 1182, 1776, 1927, 2079, 1863, 1903, 1979, 1799, 1843, 1632, 1620, 1608, 1612, 1617, 1517, 1418, 1351, + 1284, 1217, 1150, 1098, 1048, 945, 1099, 1781, 1695, 1954, 422, -566, -530, -556, -580, -573, -566, -687, -808, + -929, -1049, -1233, -1416, -1680, -1943, -2343, -2486, -2502, -2773, -2076, -1378, -1672, -2222, 458, 2370, 2137, + 2162, 2133, 2104, 2123, 2142, 2142, 2142, 2142, 1256, 1149, 1043, 1160, 1790, 1931, 2073, 1766, 1972, 2129, 1774, + 1931, 1576, 1565, 1554, 1639, 1724, 1679, 1635, 1590, 1546, 1453, 1361, 1300, 1240, 1060, 1392, 1788, 1672, 2092, + -560, -620, -680, -701, -721, -742, -762, -871, -979, -1088, -1196, -1423, -1650, -1877, -2104, -2291, -2478, + -2857, -2724, -2896, -3067, -3111, -3666, 2546, 2103, 2107, 2112, 2116, 2120, 2124, 2128, 2128, 2128, 2128, 1214, + 1171, 1128, 1453, 1779, 1692, 1862, 1807, 1753, 1732, 1712, 1804, 1640, 1759, 1623, 1711, 1799, 1666, 1791, 1755, + 1719, 1629, 1539, 1497, 1456, 1352, 1504, 1752, 1745, 1445, -903, -899, -894, -909, -923, -937, -951, -1071, -1191, + -1312, -1431, -1642, -1852, -2063, -2273, -2432, -2590, -2813, -2779, -2931, -3081, -3280, -2199, 2298, 2187, 2124, + 2062, 2081, 2100, 2119, 2138, 2138, 2138, 2138, 1172, 1193, 1214, 1747, 1769, 1710, 2163, 2360, 2046, 1592, 1651, + 1677, 1704, 1954, 1693, 1783, 1874, 1654, 1947, 1920, 1893, 1805, 1718, 1695, 1672, 1644, 1617, 1717, 1818, 798, + -1245, -1177, -1108, -1116, -1124, -1132, -1139, -1271, -1403, -1535, -1666, -1860, -2054, -2248, -2442, -2572, + -2702, -2768, -2834, -2965, -3095, -3193, -219, 2306, 2272, 2142, 2012, 2046, 2080, 2114, 2148, 2148, 2148, 2148, + 1194, 1151, 1364, 1785, 1694, 1983, 2272, 1441, 2147, 1980, 1813, 1838, 1864, 1909, 1698, 1823, 1949, 1818, 1943, + 1989, 2034, 1933, 1833, 1812, 1792, 1712, 1633, 1650, 1923, -537, -1460, -1391, -1322, -1356, -1389, -1423, -1456, + -1567, -1679, -1790, -1901, -2079, -2256, -2434, -2611, -2745, -2878, -2916, -2953, -2999, -3045, -3778, 1632, + 2298, 1941, 2015, 2090, 2107, 2124, 2141, 2158, 2158, 2158, 2158, 1216, 1109, 1514, 1823, 1620, 2001, 1870, 1803, + 1224, 1600, 1464, 1232, 1000, 1096, 1192, 1352, 1512, 1726, 1940, 2058, 2176, 2062, 1948, 1930, 1912, 1781, 1650, + 1583, 2028, -1871, -1674, -1605, -1536, -1595, -1654, -1713, -1772, -1863, -1954, -2045, -2136, -2297, -2458, + -2619, -2780, -2917, -3054, -3063, -3072, -3033, -2994, -2827, 2460, 2035, 2122, 2145, 2168, 2168, 2168, 2168, + 2168, 2168, 2168, 2168, 1190, 1272, 1610, 1757, 1647, 1523, 1144, 1324, 1249, 1364, 1224, 1211, 1199, 1255, 1566, + 1430, 1294, 1404, 1514, 1800, 2087, 2075, 2063, 2003, 1944, 1654, 1621, 1812, 979, -1999, -1904, -1889, -1874, + -1929, -1983, -2038, -2092, -2164, -2237, -2309, -2381, -2514, -2646, -2779, -2911, -3006, -3100, -3115, -3129, + -3040, -3206, -1085, 2317, 2104, 2148, 2159, 2171, 2175, 2179, 2183, 2187, 2187, 2187, 2187, 1164, 1179, 1195, + 1179, 1163, 1302, 1442, 1358, 1274, 1385, 1496, 1447, 1399, 1158, 1429, 1508, 1588, 1594, 1601, 1543, 1486, 1832, + 2179, 2077, 1976, 1528, 1593, 1785, -582, -2382, -2133, -2173, -2212, -2262, -2312, -2362, -2411, -2465, -2519, + -2573, -2626, -2730, -2834, -2938, -3042, -3094, -3146, -3166, -3186, -3046, -3418, 658, 2174, 2174, 2174, 2174, + 2174, 2182, 2190, 2198, 2206, 2206, 2206, 2206, 1202, 1230, 1260, 1273, 1286, 1321, 1356, 1343, 1331, 1405, 1480, + 1475, 1470, 1349, 1484, 1522, 1562, 1576, 1591, 1574, 1557, 1589, 1622, 1719, 1816, 1690, 1820, 1694, -2015, -2557, + -2331, -2377, -2422, -2612, -2801, -2702, -2603, -2670, -2737, -2805, -2871, -2947, -3022, -3098, -3173, -3183, + -3192, -3154, -3115, -3325, -3278, 2256, 2159, 2147, 2136, 2156, 2177, 2189, 2201, 2213, 2225, 2225, 2225, 2225, + 1240, 1282, 1325, 1367, 1410, 1340, 1271, 1329, 1388, 1426, 1465, 1503, 1542, 1540, 1539, 1537, 1536, 1559, 1582, + 1605, 1628, 1603, 1578, 1617, 1656, 1596, 1536, 1604, -2936, -2476, -2528, -2580, -2632, -2705, -2777, -2786, + -2794, -2875, -2955, -3036, -3116, -3163, -3210, -3257, -3304, -3271, -3238, -3141, -3044, -3091, -2114, 2319, + 2144, 2121, 2098, 2139, 2180, 2196, 2212, 2228, 2244, 2244, 2244, 2244, 1230, 1255, 1281, 1307, 1333, 1303, 1273, + 1338, 1405, 1436, 1469, 1501, 1533, 1535, 1537, 1539, 1542, 1563, 1584, 1605, 1627, 1602, 1577, 1616, 1656, 1807, + 1959, -417, -2793, -2798, -2546, -2582, -2618, -2689, -2758, -2796, -2834, -2902, -2970, -3038, -3105, -3146, + -3186, -3179, -3171, -3150, -3128, -3059, -2989, -3222, -126, 2281, 2129, 2084, 2040, 2107, 2175, 2189, 2203, 2217, + 2231, 2231, 2231, 2231, 1220, 1229, 1238, 1247, 1257, 1266, 1275, 1348, 1422, 1447, 1473, 1499, 1525, 1530, 1536, + 1542, 1548, 1567, 1587, 1606, 1626, 1601, 1577, 1616, 1656, 1763, 1871, 1658, -2138, -2863, -2563, -2584, -2604, + -2672, -2739, -2806, -2873, -2929, -2984, -3039, -3094, -3128, -3162, -3100, -3038, -3028, -3018, -2976, -2934, + -3352, 1862, 2244, 2114, 2048, 1982, 2076, 2170, 2182, 2194, 2206, 2218, 2218, 2218, 2218, 1210, 1234, 1259, 1283, + 1308, 1325, 1341, 1390, 1439, 1458, 1477, 1497, 1516, 1525, 1535, 1544, 1554, 1571, 1589, 1607, 1625, 1616, 1608, + 1632, 1656, 1719, 1782, 1685, 1845, 528, -2837, -2730, -2622, -2655, -2688, -2720, -2753, -2764, -2774, -2993, + -2955, -3031, -3106, -2814, -2777, -3227, -2908, -3134, -3359, -971, 2186, 2270, 2099, 2075, 2052, 2108, 2165, + 2175, 2185, 2195, 2205, 2205, 2205, 2205, 1200, 1240, 1280, 1320, 1360, 1384, 1408, 1432, 1456, 1469, 1482, 1495, + 1508, 1521, 1534, 1547, 1560, 1576, 1592, 1608, 1624, 1632, 1640, 1648, 1656, 1675, 1694, 1713, 1732, 1871, 986, + -827, -2640, -2638, -2636, -2634, -2632, -2598, -2564, -2946, -2816, -2933, -3050, -2783, -3028, -3169, -1774, 293, + 2360, 2179, 1998, 2041, 2084, 2103, 2122, 2141, 2160, 2168, 2176, 2184, 2192, 2192, 2192, 2192, 1232, 1266, 1300, + 1334, 1368, 1390, 1412, 1434, 1456, 1469, 1482, 1495, 1508, 1521, 1534, 1547, 1560, 1578, 1596, 1614, 1632, 1640, + 1648, 1656, 1664, 1646, 1628, 1706, 1784, 2102, 1908, 1298, 688, 1071, -594, -1587, -2580, -2891, -3202, -2281, + -2640, -2058, -1476, -94, 1032, 2278, 2244, 2210, 2176, 2132, 2088, 2092, 2096, 2112, 2128, 2144, 2160, 2168, 2176, + 2184, 2192, 2192, 2192, 2192, 1264, 1292, 1320, 1348, 1376, 1396, 1416, 1436, 1456, 1469, 1482, 1495, 1508, 1521, + 1534, 1547, 1560, 1580, 1600, 1620, 1640, 1648, 1656, 1664, 1672, 1617, 1562, 1699, 1836, 1821, 1806, 1887, 1968, + 1964, 1960, 2020, 2080, 1936, 1792, 1200, 1632, 1889, 2146, 2083, 2020, 2093, 2166, 2079, 1992, 2085, 2178, 2143, + 2108, 2121, 2134, 2147, 2160, 2168, 2176, 2184, 2192, 2192, 2192, 2192, 1296, 1318, 1340, 1362, 1384, 1402, 1420, + 1438, 1456, 1469, 1482, 1495, 1508, 1521, 1534, 1547, 1560, 1582, 1604, 1626, 1648, 1656, 1664, 1672, 1680, 1668, + 1656, 1740, 1824, 1812, 1800, 1836, 1872, 1881, 1890, 1819, 1748, 1995, 450, 937, 912, 716, 2056, 2020, 1984, 2036, + 2088, 2060, 2032, 2086, 2140, 2130, 2120, 2130, 2140, 2150, 2160, 2168, 2176, 2184, 2192, 2192, 2192, 2192, 1328, + 1344, 1360, 1376, 1392, 1408, 1424, 1440, 1456, 1469, 1482, 1495, 1508, 1521, 1534, 1547, 1560, 1584, 1608, 1632, + 1656, 1664, 1672, 1680, 1688, 1719, 1750, 1781, 1812, 1803, 1794, 1785, 1776, 1798, 1820, 1874, 1928, 1798, 2180, + 674, 1216, 2103, 1966, 1957, 1948, 1979, 2010, 2041, 2072, 2087, 2102, 2117, 2132, 2139, 2146, 2153, 2160, 2168, + 2176, 2184, 2192, 2192, 2192, 2192, 1328, 1344, 1360, 1376, 1392, 1408, 1424, 1440, 1456, 1469, 1482, 1495, 1508, + 1521, 1534, 1547, 1560, 1584, 1608, 1632, 1656, 1664, 1672, 1680, 1688, 1719, 1750, 1781, 1812, 1803, 1794, 1785, + 1776, 1798, 1820, 1858, 1896, 1750, 1860, 2338, 1792, 2135, 1966, 1957, 1948, 1979, 2010, 2041, 2072, 2087, 2102, + 2117, 2132, 2139, 2146, 2153, 2160, 2168, 2176, 2184, 2192, 2192, 2192, 2192, 1328, 1344, 1360, 1376, 1392, 1408, + 1424, 1440, 1456, 1469, 1482, 1495, 1508, 1521, 1534, 1547, 1560, 1584, 1608, 1632, 1656, 1664, 1672, 1680, 1688, + 1719, 1750, 1781, 1812, 1803, 1794, 1785, 1776, 1798, 1820, 1842, 1864, 1958, 2052, 1954, 1856, 1911, 1966, 1957, + 1948, 1979, 2010, 2041, 2072, 2087, 2102, 2117, 2132, 2139, 2146, 2153, 2160, 2168, 2176, 2184, 2192, 2192, 2192, + 2192, 1328, 1344, 1360, 1376, 1392, 1408, 1424, 1440, 1456, 1469, 1482, 1495, 1508, 1521, 1534, 1547, 1560, 1584, + 1608, 1632, 1656, 1664, 1672, 1680, 1688, 1719, 1750, 1781, 1812, 1803, 1794, 1785, 1776, 1798, 1820, 1842, 1864, + 1958, 2052, 1954, 1856, 1911, 1966, 1957, 1948, 1979, 2010, 2041, 2072, 2087, 2102, 2117, 2132, 2139, 2146, 2153, + 2160, 2168, 2176, 2184, 2192, 2192, 2192, 2192, ]; const YCBCR_BUFFER_CR: [i16; 4096] = [ - -2112, -2114, -2116, -2118, -2120, -2122, -2124, -2126, -2128, -2118, -2108, -2098, -2088, - -2150, -2212, -2146, -2080, -2100, -2120, -2140, -2160, -2164, -2168, -2172, -2176, -2092, - -2008, -2052, -2096, -2132, -2168, -2076, -1984, -2088, -2192, -2168, -2144, -2136, -2128, - -2120, -2112, -2126, -2140, -2154, -2168, -2150, -2132, -2114, -2096, -2096, -2096, -2096, - -2096, -2096, -2096, -2096, -2096, -2080, -2064, -2048, -2032, -2032, -2032, -2032, -2128, - -2114, -2099, -2116, -2133, -2134, -2135, -2136, -2137, -2128, -2118, -2108, -2098, -2118, - -2138, -2126, -2114, -2135, -2155, -2160, -2164, -2136, -2109, -2129, -2149, -2133, -2117, - -2116, -2116, -2116, -2115, -2099, -2082, -2113, -2143, -2142, -2140, -2134, -2129, -2123, - -2117, -2128, -2138, -2148, -2158, -2147, -2135, -2123, -2111, -2109, -2107, -2105, -2102, - -2102, -2102, -2102, -2101, -2087, -2073, -2059, -2045, -2045, -2045, -2045, -2144, -2113, - -2081, -2113, -2145, -2146, -2146, -2146, -2146, -2137, -2127, -2117, -2107, -2086, -2064, - -2106, -2148, -2169, -2190, -2179, -2167, -2108, -2049, -2086, -2122, -2174, -2225, -2180, - -2135, -2099, -2062, -2121, -2180, -2137, -2094, -2115, -2135, -2132, -2129, -2126, -2122, - -2129, -2135, -2142, -2148, -2143, -2137, -2132, -2126, -2122, -2117, -2113, -2108, -2108, - -2107, -2107, -2106, -2094, -2082, -2070, -2058, -2058, -2058, -2058, -2160, -2112, -2063, - -2111, -2158, -2158, -2157, -2156, -2155, -2146, -2136, -2127, -2117, -2134, -2150, -2134, - -2118, -2156, -2193, -2182, -2171, -2496, -2309, -2395, -2479, -2471, -2461, -2244, -2283, - -2354, -2169, -2176, -2182, -2162, -2141, -2136, -2131, -2130, -2129, -2129, -2127, -2130, - -2133, -2136, -2138, -2139, -2140, -2141, -2141, -2135, -2128, -2121, -2114, -2114, -2113, - -2112, -2111, -2101, -2091, -2081, -2071, -2071, -2071, -2071, -2176, -2111, -2045, -2108, - -2170, -2169, -2167, -2166, -2164, -2155, -2145, -2136, -2126, -2181, -2235, -2162, -2088, - -2142, -2195, -2441, -2686, -2372, -1033, -399, 236, 305, 375, -4, -894, -2097, -2787, -2486, - -2184, -2186, -2187, -2157, -2126, -2128, -2129, -2131, -2132, -2131, -2130, -2129, -2128, - -2135, -2142, -2149, -2156, -2147, -2138, -2129, -2120, -2119, -2118, -2117, -2116, -2108, - -2100, -2092, -2084, -2084, -2084, -2084, -2112, -2086, -2060, -2114, -2167, -2069, -2226, - -2192, -2157, -2108, -2059, -2106, -2152, -2121, -2089, -2634, -2666, -2265, -838, 844, 2526, - 3326, 2846, 2846, 2847, 2726, 2606, 2966, 3070, 2968, 2866, 395, -2074, -2747, -2138, -2282, - -2170, -2204, -2238, -2192, -2145, -2147, -2148, -2149, -2150, -2154, -2157, -2160, -2163, - -2160, -2157, -2154, -2150, -2131, -2112, -2125, -2137, -2127, -2117, -2107, -2097, -2097, - -2097, -2097, -2048, -2061, -2074, -2119, -2163, -1968, -2285, -2218, -2150, -2061, -1972, - -2075, -2177, -2316, -2455, -1058, 1364, 2989, 2567, 2593, 2619, 2368, 2630, 2508, 2386, 2332, - 2278, 2352, 2427, 2913, 2887, 3021, 3156, 1301, -2089, -2407, -2213, -2280, -2346, -2252, - -2158, -2162, -2165, -2169, -2172, -2172, -2171, -2171, -2170, -2173, -2175, -2178, -2180, - -2143, -2105, -2132, -2158, -2146, -2134, -2122, -2110, -2110, -2110, -2110, -2112, -2164, - -2216, -2236, -2256, -1996, -2248, -2196, -2143, -2110, -2077, -2124, -2171, -2272, 699, 3526, - 2770, 2035, 2324, 2294, 2263, 2178, 2350, 2265, 2181, 2129, 2078, 2154, 2231, 2522, 2556, 2559, - 2562, 3221, 3112, 140, -2833, -2036, -2262, -2201, -2139, -2161, -2183, -2189, -2194, -2190, - -2186, -2182, -2177, -2186, -2194, -2202, -2210, -2155, -2099, -2139, -2179, -2165, -2151, - -2137, -2123, -2123, -2123, -2123, -1664, -1755, -1846, -1841, -1836, -1767, -2210, -2173, - -2136, -2159, -2182, -2173, -2164, -2739, 2830, 2735, 2640, 2361, 2082, 1995, 1908, 1989, 2070, - 2023, 1976, 1927, 1878, 1957, 2036, 2131, 2226, 2353, 2480, 2581, 2682, 2943, 2692, -2815, - -2178, -2149, -2120, -2160, -2200, -2208, -2216, -2208, -2200, -2192, -2184, -2198, -2212, - -2226, -2240, -2166, -2092, -2146, -2200, -2184, -2168, -2152, -2136, -2136, -2136, -2136, - -2096, -2168, -2239, -2230, -2221, -2088, -2211, -2174, -2137, -2191, -2244, -2153, -2318, - -2032, 3375, 2862, 2605, 2306, 2007, 1852, 1697, 1756, 1815, 1810, 1806, 1756, 1707, 1754, - 1801, 1912, 2023, 2150, 2277, 2300, 2323, 2730, 1345, -2440, -2129, -2218, -2307, -2350, -2137, - -2180, -2223, -2224, -2225, -2194, -2162, -2172, -2181, -2191, -2200, -2199, -2199, -2214, - -2229, -2172, -2115, -2170, -2225, -2113, -2257, -2257, -2016, -2068, -2119, -2106, -2093, - -2153, -2212, -2175, -2138, -2222, -2305, -2133, -2472, 212, 2897, 2477, 2570, 2251, 1932, - 1709, 1487, 1524, 1561, 1598, 1636, 1586, 1537, 1552, 1567, 1693, 1820, 1947, 2074, 2019, 1964, - 2261, -514, -2321, -2080, -2031, -1982, -2284, -2074, -2152, -2229, -2239, -2249, -2195, -2140, - -2145, -2150, -2155, -2159, -2232, -2305, -2282, -2258, -2160, -2062, -2188, -2314, -2090, - -2378, -2378, -2064, -2096, -2127, -2127, -2126, -2154, -2181, -2160, -2139, -2205, -2271, - -2145, -2530, 1688, 2834, 2460, 2343, 2148, 1953, 1678, 1404, 1387, 1371, 1418, 1466, 1416, - 1367, 1349, 1332, 1442, 1553, 1664, 1775, 1818, 1861, 2416, -2405, -2458, -1999, -2036, -281, - -1466, -2395, -2380, -2364, -2303, -2241, -2196, -2150, -2167, -2183, -2183, -2183, -2201, - -2219, -2190, -2159, -2756, -2329, -1934, -2307, -2627, -2179, -2307, -2112, -2124, -2135, - -2147, -2158, -2154, -2149, -2145, -2140, -2188, -2236, -2156, -2588, 3164, 2772, 2444, 2116, - 2045, 1975, 1648, 1322, 1251, 1181, 1238, 1296, 1246, 1197, 1147, 1098, 1192, 1287, 1381, 1476, - 1617, 1758, 1291, -2760, -2083, -2430, -1273, -628, -648, -667, -1583, -2498, -2366, -2233, - -2197, -2160, -2188, -2215, -2211, -2206, -2170, -2133, -2097, -2060, -280, -548, -2448, -1788, - -860, -1980, -2236, -2112, -2122, -2132, -2142, -2151, -2147, -2142, -2138, -2133, -2148, - -2162, -2080, -718, 3207, 2525, 2291, 2057, 1942, 1828, 1553, 1279, 1174, 1070, 1094, 1118, - 1044, 970, 976, 983, 1001, 1020, 1166, 1313, 1306, 1555, -212, -2491, -2190, -2401, -868, -615, - -644, -672, -605, -537, -1356, -2174, -2272, -2370, -2342, -2312, -2331, -2350, -2317, -2284, - -2699, -1321, -420, -543, -394, -757, -741, -2261, -2261, -2112, -2120, -2128, -2136, -2143, - -2139, -2135, -2131, -2126, -2107, -2087, -2260, 640, 2995, 2279, 2138, 1998, 1839, 1681, 1459, - 1237, 1098, 960, 950, 940, 842, 744, 806, 869, 811, 753, 951, 1150, 995, 1352, -1715, -2222, - -2297, -2372, -463, -602, -640, -677, -650, -623, -601, -578, -811, -1044, -1215, -1385, -1427, - -1469, -1184, -898, -484, -582, -560, -538, -900, -750, -1134, -2542, -2286, -2112, -2118, - -2124, -2130, -2136, -2132, -2128, -2124, -2119, -2018, -1917, -2888, 1262, 2015, 2256, 2097, - 1939, 1736, 1534, 1364, 1194, 1022, 850, 806, 762, 736, 710, 508, 818, 604, 646, 752, 859, - 1132, 1149, -2866, -2273, -2340, -1639, -426, -493, -524, -554, -568, -582, -678, -774, -662, - -550, -568, -586, -587, -589, -659, -728, -574, -675, -668, -661, -798, -679, -1799, -2407, - -2151, -2112, -2116, -2120, -2124, -2128, -2124, -2120, -2116, -2112, -2185, -2258, -1723, - 1884, 1035, 2234, 2057, 1880, 1634, 1388, 1270, 1152, 946, 740, 662, 584, 630, 676, 466, 1280, - 654, 540, 554, 568, 757, -78, -2481, -2324, -2383, -906, -389, -384, -407, -430, -485, -540, - -499, -458, -513, -568, -689, -810, -771, -732, -645, -558, -663, -768, -776, -784, -696, -608, - -2464, -2272, -2016, -2104, -2111, -2117, -2123, -2129, -2106, -2082, -2106, -2130, -2206, - -2537, -85, 1856, 1149, 1209, 1702, 1683, 1507, 1332, 1188, 1045, 837, 630, 518, 407, 489, 572, - 398, 1249, 662, 330, 383, 436, 589, -1305, -2352, -2118, -2616, 213, -13, -239, -267, -294, - -322, -349, -378, -408, -485, -562, -627, -692, -677, -661, -626, -591, -684, -776, -804, -832, - -540, -248, -664, -1848, -2616, -2096, -2105, -2113, -2122, -2130, -2087, -2043, -2096, -2148, - -2226, -2816, 1554, 1829, 1519, 697, 1603, 1486, 1381, 1276, 1107, 938, 729, 520, 375, 230, - 349, 468, 331, 1219, 670, 121, 212, 304, 422, -2532, -2478, -2423, -1569, 309, -149, -94, -126, - -158, -158, -157, -257, -357, -457, -556, -565, -573, -582, -590, -607, -623, -704, -784, -832, - -880, -384, 112, -1424, -2448, -2192, -2088, -2099, -2110, -2121, -2131, -2100, -2069, -2102, - -2134, -2487, -2327, 2921, 2025, 1537, 1049, 1088, 1385, 1270, 1156, 993, 831, 700, 570, 407, - 245, 256, 268, 344, 932, 662, 136, 185, 236, -338, -2447, -2348, -2505, -794, 149, -77, -45, - -66, -86, -90, -94, -184, -274, -365, -454, -455, -455, -519, -583, -620, -656, -724, -792, - -796, -800, -868, -1960, -2296, -2376, -2248, -2080, -2093, -2106, -2119, -2132, -2113, -2094, - -2107, -2120, -2235, -813, 2752, 2222, 1555, 1401, 574, 1284, 1160, 1036, 880, 724, 672, 620, - 440, 260, 164, 69, 357, 646, 654, 151, 159, 168, -1097, -2361, -2218, -2586, -19, -11, -4, 4, - -5, -13, -22, -30, -111, -191, -272, -352, -344, -336, -456, -576, -632, -688, -744, -800, - -760, -720, -584, -2496, -2400, -2304, -2304, -2072, -2088, -2103, -2118, -2133, -2173, -2212, - -2171, -2130, -2464, 1044, 2615, 2138, 1657, 1432, 807, 951, 1193, 924, 734, 545, 397, 250, - 486, 723, 569, 417, 312, 207, 384, 305, 242, 180, -1827, -2296, -2350, -1892, 68, -20, -12, -3, - -9, -13, -18, -23, -66, -109, -184, -258, -310, -362, -478, -593, -641, -689, -737, -784, -752, - -720, -1200, -2448, -2384, -2320, -2320, -2064, -2082, -2099, -2117, -2134, -2232, -2329, - -2235, -2140, -2692, 2901, 2478, 2055, 1759, 1464, 1041, 618, 1227, 812, 589, 366, 379, 392, - 277, 162, 207, 253, 267, 281, 114, -52, 70, 192, -2556, -2231, -2482, -1197, 155, -28, -19, - -10, -12, -13, -14, -15, -21, -26, -95, -164, -276, -387, -499, -610, -650, -689, -729, -768, - -744, -720, -1816, -2400, -2368, -2336, -2336, -2056, -2076, -2096, -2116, -2135, -2179, -2223, - -2139, -2310, -1320, 2742, 2293, 2099, 1893, 1432, 1242, 541, 1036, 1020, 699, 379, 376, 374, - 275, 177, 197, 217, 190, 162, 100, 39, 153, -756, -2421, -2294, -2550, -503, 130, -4, -11, -17, - -15, -13, -10, -8, -8, -7, -103, -198, -322, -445, -520, -595, -643, -690, -721, -752, -768, - -784, -2192, -2320, -2336, -2352, -2352, -2048, -2070, -2092, -2114, -2136, -2126, -2116, - -2042, -2480, 52, 2584, 2108, 2144, 2028, 1400, 1444, 464, 78, -308, -470, -632, -394, -156, - 18, 192, 187, 182, 113, 44, 87, 130, 237, -1704, -2286, -2356, -2618, 192, 106, 20, -2, -24, - -18, -12, -6, 0, 6, 12, -110, -232, -367, -502, -541, -580, -635, -690, -713, -736, -792, -848, - -2568, -2240, -2304, -2368, -2368, -2046, -2069, -2092, -2114, -2137, -2122, -2106, -2187, - -2523, 1999, 2681, 2739, 1518, 116, -1542, -2640, -2457, -2466, -2475, -2467, -2460, -2499, - -2537, -2304, -2070, -995, 81, -76, 24, 35, 47, -150, -2394, -2423, -2451, -1807, 117, 85, 53, - 21, -11, -11, -11, -11, -11, -11, -11, -107, -203, -405, -606, -616, -625, -611, -596, -694, - -791, -757, -1491, -2401, -2287, -2303, -2319, -2319, -2044, -2068, -2091, -2114, -2137, -2117, - -2096, -2075, -2054, 2922, 219, -1749, -2692, -2564, -2435, -2115, -2306, -2194, -2081, -2160, - -2239, -2299, -2358, -2321, -2284, -2432, -2580, -1544, 4, -16, -36, -280, -2572, -2303, -2545, - -995, 43, 64, 86, 44, 2, -4, -10, -16, -22, -28, -34, -104, -174, -186, -198, -178, -158, -330, - -502, -674, -846, -722, -2134, -2234, -2334, -2302, -2270, -2270, -2042, -2067, -2090, -2114, - -2138, -2160, -2182, -2156, -2129, -2459, -2532, -2605, -2166, -2220, -2273, -2294, -2315, - -2002, -2199, -2221, -2243, -2323, -2403, -2387, -2370, -2286, -2201, -2453, -2704, -1412, 137, - -1403, -2174, -2503, -2831, 248, 0, 27, 55, 35, 15, 3, -9, -21, -33, -45, -57, -101, -145, - -176, -206, -221, -235, -178, -120, -415, -709, -191, -2489, -2547, -2349, -2349, -2349, -2349, - -2040, -2065, -2089, -2114, -2138, -2203, -2267, -2236, -2204, -2207, -2210, -2181, -2152, - -2131, -2110, -2217, -1812, -1553, -2317, -2026, -1734, -1579, -1423, -1940, -2456, -2395, - -2334, -2081, -2340, -2551, -2250, -2013, -2288, -2447, -2093, -44, -42, -9, 25, 26, 28, 10, - -8, -26, -44, -62, -80, -98, -116, -165, -214, -263, -312, -281, -250, -155, -60, -940, -1820, - -2348, -2364, -2396, -2428, -2428, -2038, -2060, -2081, -2102, -2123, -2124, -2125, -2287, - -2191, -2066, -1941, -1912, -1882, -2233, -2328, -2151, -1717, -1487, -2024, -1761, -1498, - -1243, -988, -718, -446, -1227, -2007, -2724, -2160, -2331, -2245, -2176, -2362, -2339, -1036, - 107, -29, -20, -10, 15, 41, 19, -3, -25, -47, -89, -131, -141, -151, -209, -266, -356, -445, - -459, -472, -406, -83, -1135, -1163, -1895, -2371, -2387, -2403, -2403, -2036, -2054, -2072, - -2090, -2107, -2045, -1983, -2081, -1666, -1669, -1671, -1898, -2124, -2591, -2545, -2084, - -1622, -1420, -1730, -1496, -1261, -1163, -1065, -775, -484, -314, -144, -806, -2492, -2366, - -2240, -2338, -2436, -2487, -490, 3, -15, -30, -45, 4, 54, 28, 2, -24, -50, -116, -182, -184, - -186, -252, -318, -448, -578, -636, -694, -656, -106, -2098, -2042, -2210, -2378, -2378, -2378, - -2378, -2034, -2049, -2063, -2078, -2092, -2094, -2097, -1651, -1461, -1688, -1914, -2156, - -2398, -2677, -2443, -2017, -1591, -1450, -1564, -1343, -1121, -987, -854, -624, -394, -266, - -137, 199, 24, -1554, -2363, -2325, -2286, -2123, -2728, -1221, 30, 135, -16, 25, 67, 37, 7, - -7, -21, -111, -201, -211, -221, -296, -370, -461, -551, -510, -468, -635, -545, -2805, -2249, - -2301, -2353, -2353, -2353, -2353, -2032, -2043, -2054, -2065, -2076, -2143, -2210, -1477, - -1768, -1962, -2156, -2414, -2672, -2762, -2340, -1950, -1560, -1479, -1398, -1189, -980, -811, - -642, -473, -304, -217, -130, -75, -20, 27, -2486, -2311, -2136, -2527, -2406, -2445, -2484, - -979, 14, 47, 80, 46, 12, 10, 8, -106, -220, -238, -256, -339, -422, -473, -524, -639, -754, - -1637, -2520, -2232, -2456, -2392, -2328, -2328, -2328, -2328, -2012, -2031, -2050, -2053, - -2056, -2193, -2074, -1587, -1867, -2082, -2296, -2527, -2757, -2654, -2294, -1887, -1479, - -1381, -1282, -1088, -893, -749, -604, -492, -379, -244, -109, -182, 1, -606, -2493, -2284, - -2331, -2482, -2376, -2415, -2453, -2309, -2422, -1350, -278, -125, 29, 87, 145, 126, 108, 26, - -56, -279, -502, -1108, -1715, -2164, -2612, -2533, -2453, -2297, -2397, -2369, -2341, -2341, - -2341, -2341, -1992, -2019, -2046, -2041, -2035, -2242, -1937, -1696, -1966, -2201, -2436, - -2639, -2842, -2545, -2248, -1823, -1398, -1282, -1166, -986, -806, -686, -566, -510, -454, - -271, -88, -289, 22, -1239, -2500, -2257, -2526, -388, -2346, -2384, -2421, -2359, -2297, - -2491, -2684, -2343, -2001, -1628, -1254, -1177, -1099, -1502, -1904, -2267, -2629, -2511, - -2393, -2408, -2422, -2404, -2386, -2362, -2338, -2346, -2354, -2354, -2354, -2354, -1972, - -2007, -2042, -2045, -2047, -2196, -1832, -1837, -2097, -2337, -2576, -2736, -2895, -2565, - -2234, -1840, -1445, -1280, -1114, -917, -719, -624, -528, -529, -529, -426, -323, -60, -53, - -2528, -2443, -2518, -2081, 169, -140, -1313, -2486, -2441, -2396, -2384, -2370, -2401, -2432, - -2511, -2589, -2560, -2531, -2502, -2472, -2431, -2388, -2490, -2336, -2940, -2008, -1332, - -2447, -2395, -2343, -2355, -2367, -2367, -2367, -2367, -1952, -1995, -2037, -2048, -2058, - -2149, -1727, -1978, -2228, -2472, -2716, -2832, -2948, -2584, -2220, -1856, -1492, -1277, - -1062, -847, -632, -561, -490, -547, -604, -581, -558, -343, -1152, -2281, -2386, -2523, -1124, - -41, 19, 14, 10, -1243, -2495, -2532, -2568, -2459, -2350, -2369, -2388, -2407, -2426, -2477, - -2528, -2594, -2659, -2213, -1254, 368, 967, -1027, -2508, -2428, -2348, -2364, -2380, -2380, - -2380, -2380, -1948, -1997, -2045, -2062, -2078, -1959, -1839, -2071, -2303, -2546, -2788, - -2919, -3049, -2874, -2442, -2027, -1611, -1375, -1138, -966, -793, -733, -672, -708, -743, - -848, -953, -2018, -2059, -2442, -2313, -2328, -295, 98, -19, 23, 65, 25, -15, -631, -1246, - -1796, -2345, -2510, -2675, -2541, -2406, -1887, -1368, -468, 433, 438, 699, 1162, 857, -2697, - -2409, -2413, -2417, -2389, -2361, -2361, -2361, -2361, -1944, -1999, -2053, -2075, -2097, - -1768, -1950, -2164, -2378, -2619, -2860, -3005, -3150, -3163, -2664, -2197, -1730, -1472, - -1214, -1084, -954, -904, -854, -868, -882, -859, -836, -877, -1942, -2091, -2240, -2389, 22, - -18, -57, 32, 121, 13, -94, -9, 76, 148, 221, 165, 110, 142, 175, 239, 304, 379, 454, 529, 605, - 676, 235, -2574, -2310, -2398, -2486, -2414, -2342, -2342, -2342, -2342, -1940, -2001, -2061, - -2073, -2085, -1641, -1965, -2145, -2325, -2533, -2740, -2900, -3059, -3053, -2790, -2320, - -1849, -1570, -1290, -1203, -1115, -1076, -1036, -1029, -1021, -1078, -1135, -504, -2689, - -2396, -2359, -1554, 19, -6, -31, 25, 80, 33, -13, 36, 86, 124, 162, 136, 111, 137, 163, 237, - 312, 393, 475, 524, 574, 654, -803, -2467, -2339, -2383, -2427, -2375, -2323, -2323, -2323, - -2323, -1936, -2002, -2068, -2070, -2072, -1514, -1980, -2126, -2272, -2446, -2620, -2794, - -2968, -2942, -2916, -2442, -1968, -1667, -1366, -1321, -1276, -1247, -1218, -1189, -1160, - -1041, -922, -1411, -2412, -2189, -2478, -719, 16, 6, -4, 18, 40, 54, 68, 82, 96, 100, 104, - 108, 112, 132, 152, 236, 320, 408, 496, 520, 544, 632, -1840, -2360, -2368, -2368, -2368, - -2336, -2304, -2304, -2304, -2304, -1898, -1921, -1944, -2111, -1766, -1551, -1848, -1985, - -2122, -2319, -2516, -2665, -2814, -3075, -3080, -2829, -2321, -2026, -1730, -1610, -1490, - -1458, -1426, -1394, -1362, -1247, -1132, -1880, -2373, -2534, -2694, 329, 25, 40, 55, 54, 54, - 71, 88, 105, 123, 151, 180, 208, 237, 83, -70, 48, 167, 248, 329, 346, 363, 732, -2739, -2578, - -2416, -2395, -2374, -2353, -2332, -2332, -2332, -2332, -1860, -1840, -1820, -2152, -1460, - -1588, -1716, -1844, -1972, -2192, -2412, -2536, -2659, -2951, -2731, -2959, -2674, -2384, - -2093, -1898, -1703, -1669, -1634, -1599, -1564, -1453, -1341, -2349, -2333, -2366, -1886, - -158, 34, 74, 115, 91, 68, 88, 109, 129, 150, 203, 256, 309, 362, 291, 220, 117, 14, 88, 162, - 172, 183, -703, -2613, -2283, -2464, -2422, -2380, -2370, -2360, -2360, -2360, -2360, -2110, - -1967, -1824, -1953, -1314, -1513, -1712, -1815, -1918, -2209, -2244, -2455, -2409, -2604, - -2542, -2753, -2707, -2694, -2680, -2411, -2141, -2056, -1970, -1868, -1766, -1723, -1678, - -2370, -2294, -2518, -950, -54, 75, 92, 110, 96, 82, 105, 129, 153, 177, 222, 268, 313, 359, - 354, 350, 441, 533, 472, 411, 414, 674, -1691, -2519, -2340, -2416, -2401, -2386, -2387, -2388, - -2388, -2388, -2388, -1848, -1838, -1828, -1754, -1168, -1438, -1708, -1786, -1864, -2226, - -2075, -2373, -2158, -2256, -2353, -2547, -2740, -2748, -2755, -2667, -2578, -2442, -2305, - -2137, -1968, -1992, -2015, -2391, -2254, -2670, -13, 51, 116, 111, 106, 101, 96, 123, 150, - 177, 204, 242, 280, 318, 356, 418, 480, 510, 540, 600, 661, 657, 1166, -2678, -2425, -2397, - -2368, -2380, -2392, -2404, -2416, -2416, -2416, -2416, -1882, -1711, -1796, -1369, -1198, - -1419, -1640, -1749, -1858, -1979, -1843, -2060, -2020, -2115, -2209, -2367, -2525, -2480, - -2691, -2838, -2984, -2761, -2537, -2394, -2250, -2196, -2141, -2358, -2319, -2020, 71, 113, - 157, 151, 145, 139, 134, 160, 186, 212, 239, 273, 308, 342, 377, 439, 502, 548, 595, 632, 670, - 931, 169, -2668, -2432, -2404, -2376, -2385, -2394, -2403, -2412, -2412, -2412, -2412, -1916, - -1840, -2276, -1240, -1228, -1400, -1572, -1712, -1852, -1732, -1611, -1746, -1881, -1973, - -2064, -2187, -2310, -2212, -2626, -2752, -2877, -2823, -2769, -2651, -2532, -2399, -2266, - -2325, -2383, -1370, 155, 176, 198, 191, 185, 178, 172, 197, 223, 248, 274, 305, 336, 367, 398, - 461, 524, 587, 650, 664, 679, 1206, -827, -2657, -2438, -2411, -2384, -2390, -2396, -2402, - -2408, -2408, -2408, -2408, -1950, -1953, -1956, -1063, -1194, -1317, -1440, -1435, -1430, - -1501, -1315, -1433, -1551, -1639, -1727, -1799, -1871, -1928, -2241, -2410, -2579, -2598, - -2617, -2732, -2846, -2555, -2263, -2260, -2512, -528, 175, 207, 239, 231, 224, 217, 210, 234, - 259, 284, 309, 336, 364, 391, 419, 482, 546, 609, 673, 744, 816, 936, -2016, -2486, -2188, - -2290, -2392, -2395, -2398, -2401, -2404, -2404, -2404, -2404, -1984, -2066, -1636, -886, - -1160, -1234, -1308, -1414, -1520, -2037, -2042, -1887, -1732, -1817, -1902, -1923, -1944, - -1900, -1856, -2068, -2280, -2372, -2464, -2556, -2648, -2454, -2260, -2194, -2640, 314, 196, - 238, 280, 272, 264, 256, 248, 272, 296, 320, 344, 368, 392, 416, 440, 504, 568, 632, 696, 825, - 954, 923, -2692, -2315, -2450, -2425, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, - -2252, -1954, -1143, -1036, -1441, -1827, -2212, -2245, -2278, -2222, -1909, -1916, -1923, - -2002, -2337, -2096, -2111, -2172, -2232, -2132, -2032, -2144, -2256, -2304, -2352, -2307, - -2261, -2360, -1690, 442, 269, 305, 341, 333, 325, 317, 309, 329, 349, 369, 389, 415, 441, 468, - 494, 536, 579, 669, 760, 797, 1091, -248, -2610, -2407, -2459, -2432, -2404, -2400, -2396, - -2392, -2388, -2388, -2388, -2388, -2008, -2097, -1673, -1954, -2234, -2163, -2091, -2052, - -2012, -2150, -2287, -2200, -2113, -1931, -2260, -2013, -2278, -2187, -2095, -2195, -2295, - -2172, -2048, -2052, -2056, -2159, -2262, -2525, -739, 570, 343, 372, 402, 394, 386, 378, 370, - 386, 402, 418, 434, 462, 491, 520, 549, 569, 590, 707, 824, 770, 1228, -1418, -2528, -2498, - -2468, -2438, -2408, -2400, -2392, -2384, -2376, -2376, -2376, -2376, -1988, -2192, -2140, - -2152, -2163, -2131, -2099, -2083, -2066, -2142, -2217, -2181, -2144, -2068, -2247, -2138, - -2285, -2234, -2182, -2227, -2271, -2328, -2384, -2168, -1952, -2252, -2551, -2466, 179, 394, - 353, 407, 463, 455, 447, 423, 399, 523, 391, 547, 447, 493, 541, 572, 603, 634, 665, 792, 920, - 1094, 1269, -2765, -2446, -2430, -2413, -2413, -2412, -2400, -2388, -2376, -2364, -2364, -2364, - -2364, -1968, -2031, -2094, -2093, -2092, -2099, -2106, -2113, -2120, -2134, -2147, -2161, - -2174, -2204, -2233, -2263, -2292, -2281, -2269, -2258, -2246, -2227, -2207, -2284, -2360, - -2344, -2327, -2407, 586, -38, 363, 443, 524, 516, 508, 468, 428, 660, 380, 676, 460, 525, 591, - 624, 658, 699, 741, 878, 1016, 907, 286, -2575, -2364, -2361, -2358, -2387, -2416, -2400, - -2384, -2368, -2352, -2352, -2352, -2352, -2020, -2073, -2125, -2081, -2037, -2064, -2090, - -2116, -2142, -2154, -2166, -2178, -2189, -2213, -2236, -2260, -2283, -2276, -2269, -2262, - -2254, -2251, -2247, -2292, -2336, -2339, -2340, -1206, -72, -16, 296, 496, 441, 469, 497, 381, - 521, 635, 493, 735, 465, 544, 624, 640, 656, 748, 840, 899, 960, 1115, -1033, -2494, -2418, - -2379, -2339, -2380, -2420, -2408, -2396, -2384, -2372, -2372, -2372, -2372, -2072, -2114, - -2155, -2069, -1982, -2028, -2073, -2119, -2164, -2174, -2184, -2194, -2203, -2221, -2239, - -2257, -2274, -2271, -2268, -2265, -2261, -2274, -2287, -2300, -2312, -2333, -2353, -2053, - -729, 6, 230, 550, 358, 422, 486, 294, 614, 610, 606, 794, 470, 564, 658, 656, 655, 797, 939, - 921, 904, 1324, -2352, -2412, -2472, -2396, -2320, -2372, -2424, -2416, -2408, -2400, -2392, - -2392, -2392, -2392, -1996, -1931, -1866, -1961, -2055, -2088, -2121, -2154, -2186, -2194, - -2202, -2210, -2218, -2230, -2242, -2254, -2265, -2266, -2267, -2268, -2269, -2282, -2295, - -2308, -2320, -2343, -2366, -2708, -2539, -1492, -188, 171, 275, 327, 379, 287, 451, 505, 559, - 773, 475, 551, 628, 512, 653, 910, 654, 1007, 1104, -740, -2583, -2507, -2430, -2398, -2365, - -2397, -2428, -2424, -2420, -2416, -2412, -2412, -2412, -2412, -1920, -2004, -2088, -2108, - -2128, -2148, -2168, -2188, -2208, -2214, -2220, -2226, -2232, -2238, -2244, -2250, -2256, - -2261, -2266, -2271, -2276, -2289, -2302, -2315, -2328, -2353, -2378, -2339, -2300, -2477, - -1630, -719, 192, 232, 272, 280, 288, 400, 512, 752, 480, 539, 598, 369, 652, 767, -142, -1211, - -2792, -2547, -2302, -2345, -2388, -2399, -2410, -2421, -2432, -2432, -2432, -2432, -2432, - -2432, -2432, -2432, -2024, -2070, -2116, -2130, -2144, -2164, -2184, -2204, -2224, -2228, - -2232, -2236, -2240, -2244, -2248, -2252, -2256, -2263, -2270, -2277, -2284, -2297, -2310, - -2323, -2336, -2320, -2304, -2288, -2272, -2560, -2336, -1856, -1376, -2264, -1104, -520, 64, - 384, 704, 704, 192, -44, -280, -1236, -1936, -3018, -2564, -2350, -2392, -2391, -2390, -2389, - -2388, -2399, -2410, -2421, -2432, -2432, -2432, -2432, -2432, -2432, -2432, -2432, -2128, - -2136, -2144, -2152, -2160, -2180, -2200, -2220, -2240, -2242, -2244, -2246, -2248, -2250, - -2252, -2254, -2256, -2265, -2274, -2283, -2292, -2305, -2318, -2331, -2344, -2287, -2230, - -2237, -2244, -2387, -2530, -2481, -2432, -2456, -2480, -2600, -2720, -2448, -2176, -1904, - -2144, -2419, -2694, -2585, -2476, -2451, -2426, -2465, -2504, -2491, -2478, -2433, -2388, - -2399, -2410, -2421, -2432, -2432, -2432, -2432, -2432, -2432, -2432, -2432, -2104, -2122, - -2140, -2158, -2176, -2196, -2216, -2236, -2256, -2256, -2256, -2256, -2256, -2256, -2256, - -2256, -2256, -2267, -2278, -2289, -2300, -2313, -2326, -2339, -2352, -2318, -2284, -2282, - -2280, -2358, -2436, -2418, -2400, -2408, -2416, -2360, -2304, -2480, -864, -1648, -1408, - -1226, -2580, -2510, -2440, -2428, -2416, -2436, -2456, -2447, -2438, -2413, -2388, -2399, - -2410, -2421, -2432, -2432, -2432, -2432, -2432, -2432, -2432, -2432, -2080, -2108, -2136, - -2164, -2192, -2212, -2232, -2252, -2272, -2270, -2268, -2266, -2264, -2262, -2260, -2258, - -2256, -2269, -2282, -2295, -2308, -2321, -2334, -2347, -2360, -2349, -2338, -2327, -2316, - -2329, -2342, -2355, -2368, -2360, -2352, -2376, -2400, -2256, -2624, -1392, -1696, -2593, - -2466, -2435, -2404, -2405, -2406, -2407, -2408, -2403, -2398, -2393, -2388, -2399, -2410, - -2421, -2432, -2432, -2432, -2432, -2432, -2432, -2432, -2432, -2080, -2108, -2136, -2164, - -2192, -2212, -2232, -2252, -2272, -2270, -2268, -2266, -2264, -2262, -2260, -2258, -2256, - -2269, -2282, -2295, -2308, -2321, -2334, -2347, -2360, -2349, -2338, -2327, -2316, -2329, - -2342, -2355, -2368, -2360, -2352, -2360, -2368, -2352, -2592, -2192, -2560, -2769, -2466, - -2435, -2404, -2405, -2406, -2407, -2408, -2403, -2398, -2393, -2388, -2399, -2410, -2421, - -2432, -2432, -2432, -2432, -2432, -2432, -2432, -2432, -2080, -2108, -2136, -2164, -2192, - -2212, -2232, -2252, -2272, -2270, -2268, -2266, -2264, -2262, -2260, -2258, -2256, -2269, - -2282, -2295, -2308, -2321, -2334, -2347, -2360, -2349, -2338, -2327, -2316, -2329, -2342, - -2355, -2368, -2360, -2352, -2344, -2336, -2448, -2560, -2480, -2400, -2433, -2466, -2435, - -2404, -2405, -2406, -2407, -2408, -2403, -2398, -2393, -2388, -2399, -2410, -2421, -2432, - -2432, -2432, -2432, -2432, -2432, -2432, -2432, -2080, -2108, -2136, -2164, -2192, -2212, - -2232, -2252, -2272, -2270, -2268, -2266, -2264, -2262, -2260, -2258, -2256, -2269, -2282, - -2295, -2308, -2321, -2334, -2347, -2360, -2349, -2338, -2327, -2316, -2329, -2342, -2355, - -2368, -2360, -2352, -2344, -2336, -2448, -2560, -2480, -2400, -2433, -2466, -2435, -2404, - -2405, -2406, -2407, -2408, -2403, -2398, -2393, -2388, -2399, -2410, -2421, -2432, -2432, - -2432, -2432, -2432, -2432, -2432, -2432, + -2112, -2114, -2116, -2118, -2120, -2122, -2124, -2126, -2128, -2118, -2108, -2098, -2088, -2150, -2212, -2146, + -2080, -2100, -2120, -2140, -2160, -2164, -2168, -2172, -2176, -2092, -2008, -2052, -2096, -2132, -2168, -2076, + -1984, -2088, -2192, -2168, -2144, -2136, -2128, -2120, -2112, -2126, -2140, -2154, -2168, -2150, -2132, -2114, + -2096, -2096, -2096, -2096, -2096, -2096, -2096, -2096, -2096, -2080, -2064, -2048, -2032, -2032, -2032, -2032, + -2128, -2114, -2099, -2116, -2133, -2134, -2135, -2136, -2137, -2128, -2118, -2108, -2098, -2118, -2138, -2126, + -2114, -2135, -2155, -2160, -2164, -2136, -2109, -2129, -2149, -2133, -2117, -2116, -2116, -2116, -2115, -2099, + -2082, -2113, -2143, -2142, -2140, -2134, -2129, -2123, -2117, -2128, -2138, -2148, -2158, -2147, -2135, -2123, + -2111, -2109, -2107, -2105, -2102, -2102, -2102, -2102, -2101, -2087, -2073, -2059, -2045, -2045, -2045, -2045, + -2144, -2113, -2081, -2113, -2145, -2146, -2146, -2146, -2146, -2137, -2127, -2117, -2107, -2086, -2064, -2106, + -2148, -2169, -2190, -2179, -2167, -2108, -2049, -2086, -2122, -2174, -2225, -2180, -2135, -2099, -2062, -2121, + -2180, -2137, -2094, -2115, -2135, -2132, -2129, -2126, -2122, -2129, -2135, -2142, -2148, -2143, -2137, -2132, + -2126, -2122, -2117, -2113, -2108, -2108, -2107, -2107, -2106, -2094, -2082, -2070, -2058, -2058, -2058, -2058, + -2160, -2112, -2063, -2111, -2158, -2158, -2157, -2156, -2155, -2146, -2136, -2127, -2117, -2134, -2150, -2134, + -2118, -2156, -2193, -2182, -2171, -2496, -2309, -2395, -2479, -2471, -2461, -2244, -2283, -2354, -2169, -2176, + -2182, -2162, -2141, -2136, -2131, -2130, -2129, -2129, -2127, -2130, -2133, -2136, -2138, -2139, -2140, -2141, + -2141, -2135, -2128, -2121, -2114, -2114, -2113, -2112, -2111, -2101, -2091, -2081, -2071, -2071, -2071, -2071, + -2176, -2111, -2045, -2108, -2170, -2169, -2167, -2166, -2164, -2155, -2145, -2136, -2126, -2181, -2235, -2162, + -2088, -2142, -2195, -2441, -2686, -2372, -1033, -399, 236, 305, 375, -4, -894, -2097, -2787, -2486, -2184, -2186, + -2187, -2157, -2126, -2128, -2129, -2131, -2132, -2131, -2130, -2129, -2128, -2135, -2142, -2149, -2156, -2147, + -2138, -2129, -2120, -2119, -2118, -2117, -2116, -2108, -2100, -2092, -2084, -2084, -2084, -2084, -2112, -2086, + -2060, -2114, -2167, -2069, -2226, -2192, -2157, -2108, -2059, -2106, -2152, -2121, -2089, -2634, -2666, -2265, + -838, 844, 2526, 3326, 2846, 2846, 2847, 2726, 2606, 2966, 3070, 2968, 2866, 395, -2074, -2747, -2138, -2282, + -2170, -2204, -2238, -2192, -2145, -2147, -2148, -2149, -2150, -2154, -2157, -2160, -2163, -2160, -2157, -2154, + -2150, -2131, -2112, -2125, -2137, -2127, -2117, -2107, -2097, -2097, -2097, -2097, -2048, -2061, -2074, -2119, + -2163, -1968, -2285, -2218, -2150, -2061, -1972, -2075, -2177, -2316, -2455, -1058, 1364, 2989, 2567, 2593, 2619, + 2368, 2630, 2508, 2386, 2332, 2278, 2352, 2427, 2913, 2887, 3021, 3156, 1301, -2089, -2407, -2213, -2280, -2346, + -2252, -2158, -2162, -2165, -2169, -2172, -2172, -2171, -2171, -2170, -2173, -2175, -2178, -2180, -2143, -2105, + -2132, -2158, -2146, -2134, -2122, -2110, -2110, -2110, -2110, -2112, -2164, -2216, -2236, -2256, -1996, -2248, + -2196, -2143, -2110, -2077, -2124, -2171, -2272, 699, 3526, 2770, 2035, 2324, 2294, 2263, 2178, 2350, 2265, 2181, + 2129, 2078, 2154, 2231, 2522, 2556, 2559, 2562, 3221, 3112, 140, -2833, -2036, -2262, -2201, -2139, -2161, -2183, + -2189, -2194, -2190, -2186, -2182, -2177, -2186, -2194, -2202, -2210, -2155, -2099, -2139, -2179, -2165, -2151, + -2137, -2123, -2123, -2123, -2123, -1664, -1755, -1846, -1841, -1836, -1767, -2210, -2173, -2136, -2159, -2182, + -2173, -2164, -2739, 2830, 2735, 2640, 2361, 2082, 1995, 1908, 1989, 2070, 2023, 1976, 1927, 1878, 1957, 2036, + 2131, 2226, 2353, 2480, 2581, 2682, 2943, 2692, -2815, -2178, -2149, -2120, -2160, -2200, -2208, -2216, -2208, + -2200, -2192, -2184, -2198, -2212, -2226, -2240, -2166, -2092, -2146, -2200, -2184, -2168, -2152, -2136, -2136, + -2136, -2136, -2096, -2168, -2239, -2230, -2221, -2088, -2211, -2174, -2137, -2191, -2244, -2153, -2318, -2032, + 3375, 2862, 2605, 2306, 2007, 1852, 1697, 1756, 1815, 1810, 1806, 1756, 1707, 1754, 1801, 1912, 2023, 2150, 2277, + 2300, 2323, 2730, 1345, -2440, -2129, -2218, -2307, -2350, -2137, -2180, -2223, -2224, -2225, -2194, -2162, -2172, + -2181, -2191, -2200, -2199, -2199, -2214, -2229, -2172, -2115, -2170, -2225, -2113, -2257, -2257, -2016, -2068, + -2119, -2106, -2093, -2153, -2212, -2175, -2138, -2222, -2305, -2133, -2472, 212, 2897, 2477, 2570, 2251, 1932, + 1709, 1487, 1524, 1561, 1598, 1636, 1586, 1537, 1552, 1567, 1693, 1820, 1947, 2074, 2019, 1964, 2261, -514, -2321, + -2080, -2031, -1982, -2284, -2074, -2152, -2229, -2239, -2249, -2195, -2140, -2145, -2150, -2155, -2159, -2232, + -2305, -2282, -2258, -2160, -2062, -2188, -2314, -2090, -2378, -2378, -2064, -2096, -2127, -2127, -2126, -2154, + -2181, -2160, -2139, -2205, -2271, -2145, -2530, 1688, 2834, 2460, 2343, 2148, 1953, 1678, 1404, 1387, 1371, 1418, + 1466, 1416, 1367, 1349, 1332, 1442, 1553, 1664, 1775, 1818, 1861, 2416, -2405, -2458, -1999, -2036, -281, -1466, + -2395, -2380, -2364, -2303, -2241, -2196, -2150, -2167, -2183, -2183, -2183, -2201, -2219, -2190, -2159, -2756, + -2329, -1934, -2307, -2627, -2179, -2307, -2112, -2124, -2135, -2147, -2158, -2154, -2149, -2145, -2140, -2188, + -2236, -2156, -2588, 3164, 2772, 2444, 2116, 2045, 1975, 1648, 1322, 1251, 1181, 1238, 1296, 1246, 1197, 1147, + 1098, 1192, 1287, 1381, 1476, 1617, 1758, 1291, -2760, -2083, -2430, -1273, -628, -648, -667, -1583, -2498, -2366, + -2233, -2197, -2160, -2188, -2215, -2211, -2206, -2170, -2133, -2097, -2060, -280, -548, -2448, -1788, -860, -1980, + -2236, -2112, -2122, -2132, -2142, -2151, -2147, -2142, -2138, -2133, -2148, -2162, -2080, -718, 3207, 2525, 2291, + 2057, 1942, 1828, 1553, 1279, 1174, 1070, 1094, 1118, 1044, 970, 976, 983, 1001, 1020, 1166, 1313, 1306, 1555, + -212, -2491, -2190, -2401, -868, -615, -644, -672, -605, -537, -1356, -2174, -2272, -2370, -2342, -2312, -2331, + -2350, -2317, -2284, -2699, -1321, -420, -543, -394, -757, -741, -2261, -2261, -2112, -2120, -2128, -2136, -2143, + -2139, -2135, -2131, -2126, -2107, -2087, -2260, 640, 2995, 2279, 2138, 1998, 1839, 1681, 1459, 1237, 1098, 960, + 950, 940, 842, 744, 806, 869, 811, 753, 951, 1150, 995, 1352, -1715, -2222, -2297, -2372, -463, -602, -640, -677, + -650, -623, -601, -578, -811, -1044, -1215, -1385, -1427, -1469, -1184, -898, -484, -582, -560, -538, -900, -750, + -1134, -2542, -2286, -2112, -2118, -2124, -2130, -2136, -2132, -2128, -2124, -2119, -2018, -1917, -2888, 1262, + 2015, 2256, 2097, 1939, 1736, 1534, 1364, 1194, 1022, 850, 806, 762, 736, 710, 508, 818, 604, 646, 752, 859, 1132, + 1149, -2866, -2273, -2340, -1639, -426, -493, -524, -554, -568, -582, -678, -774, -662, -550, -568, -586, -587, + -589, -659, -728, -574, -675, -668, -661, -798, -679, -1799, -2407, -2151, -2112, -2116, -2120, -2124, -2128, + -2124, -2120, -2116, -2112, -2185, -2258, -1723, 1884, 1035, 2234, 2057, 1880, 1634, 1388, 1270, 1152, 946, 740, + 662, 584, 630, 676, 466, 1280, 654, 540, 554, 568, 757, -78, -2481, -2324, -2383, -906, -389, -384, -407, -430, + -485, -540, -499, -458, -513, -568, -689, -810, -771, -732, -645, -558, -663, -768, -776, -784, -696, -608, -2464, + -2272, -2016, -2104, -2111, -2117, -2123, -2129, -2106, -2082, -2106, -2130, -2206, -2537, -85, 1856, 1149, 1209, + 1702, 1683, 1507, 1332, 1188, 1045, 837, 630, 518, 407, 489, 572, 398, 1249, 662, 330, 383, 436, 589, -1305, -2352, + -2118, -2616, 213, -13, -239, -267, -294, -322, -349, -378, -408, -485, -562, -627, -692, -677, -661, -626, -591, + -684, -776, -804, -832, -540, -248, -664, -1848, -2616, -2096, -2105, -2113, -2122, -2130, -2087, -2043, -2096, + -2148, -2226, -2816, 1554, 1829, 1519, 697, 1603, 1486, 1381, 1276, 1107, 938, 729, 520, 375, 230, 349, 468, 331, + 1219, 670, 121, 212, 304, 422, -2532, -2478, -2423, -1569, 309, -149, -94, -126, -158, -158, -157, -257, -357, + -457, -556, -565, -573, -582, -590, -607, -623, -704, -784, -832, -880, -384, 112, -1424, -2448, -2192, -2088, + -2099, -2110, -2121, -2131, -2100, -2069, -2102, -2134, -2487, -2327, 2921, 2025, 1537, 1049, 1088, 1385, 1270, + 1156, 993, 831, 700, 570, 407, 245, 256, 268, 344, 932, 662, 136, 185, 236, -338, -2447, -2348, -2505, -794, 149, + -77, -45, -66, -86, -90, -94, -184, -274, -365, -454, -455, -455, -519, -583, -620, -656, -724, -792, -796, -800, + -868, -1960, -2296, -2376, -2248, -2080, -2093, -2106, -2119, -2132, -2113, -2094, -2107, -2120, -2235, -813, 2752, + 2222, 1555, 1401, 574, 1284, 1160, 1036, 880, 724, 672, 620, 440, 260, 164, 69, 357, 646, 654, 151, 159, 168, + -1097, -2361, -2218, -2586, -19, -11, -4, 4, -5, -13, -22, -30, -111, -191, -272, -352, -344, -336, -456, -576, + -632, -688, -744, -800, -760, -720, -584, -2496, -2400, -2304, -2304, -2072, -2088, -2103, -2118, -2133, -2173, + -2212, -2171, -2130, -2464, 1044, 2615, 2138, 1657, 1432, 807, 951, 1193, 924, 734, 545, 397, 250, 486, 723, 569, + 417, 312, 207, 384, 305, 242, 180, -1827, -2296, -2350, -1892, 68, -20, -12, -3, -9, -13, -18, -23, -66, -109, + -184, -258, -310, -362, -478, -593, -641, -689, -737, -784, -752, -720, -1200, -2448, -2384, -2320, -2320, -2064, + -2082, -2099, -2117, -2134, -2232, -2329, -2235, -2140, -2692, 2901, 2478, 2055, 1759, 1464, 1041, 618, 1227, 812, + 589, 366, 379, 392, 277, 162, 207, 253, 267, 281, 114, -52, 70, 192, -2556, -2231, -2482, -1197, 155, -28, -19, + -10, -12, -13, -14, -15, -21, -26, -95, -164, -276, -387, -499, -610, -650, -689, -729, -768, -744, -720, -1816, + -2400, -2368, -2336, -2336, -2056, -2076, -2096, -2116, -2135, -2179, -2223, -2139, -2310, -1320, 2742, 2293, 2099, + 1893, 1432, 1242, 541, 1036, 1020, 699, 379, 376, 374, 275, 177, 197, 217, 190, 162, 100, 39, 153, -756, -2421, + -2294, -2550, -503, 130, -4, -11, -17, -15, -13, -10, -8, -8, -7, -103, -198, -322, -445, -520, -595, -643, -690, + -721, -752, -768, -784, -2192, -2320, -2336, -2352, -2352, -2048, -2070, -2092, -2114, -2136, -2126, -2116, -2042, + -2480, 52, 2584, 2108, 2144, 2028, 1400, 1444, 464, 78, -308, -470, -632, -394, -156, 18, 192, 187, 182, 113, 44, + 87, 130, 237, -1704, -2286, -2356, -2618, 192, 106, 20, -2, -24, -18, -12, -6, 0, 6, 12, -110, -232, -367, -502, + -541, -580, -635, -690, -713, -736, -792, -848, -2568, -2240, -2304, -2368, -2368, -2046, -2069, -2092, -2114, + -2137, -2122, -2106, -2187, -2523, 1999, 2681, 2739, 1518, 116, -1542, -2640, -2457, -2466, -2475, -2467, -2460, + -2499, -2537, -2304, -2070, -995, 81, -76, 24, 35, 47, -150, -2394, -2423, -2451, -1807, 117, 85, 53, 21, -11, -11, + -11, -11, -11, -11, -11, -107, -203, -405, -606, -616, -625, -611, -596, -694, -791, -757, -1491, -2401, -2287, + -2303, -2319, -2319, -2044, -2068, -2091, -2114, -2137, -2117, -2096, -2075, -2054, 2922, 219, -1749, -2692, -2564, + -2435, -2115, -2306, -2194, -2081, -2160, -2239, -2299, -2358, -2321, -2284, -2432, -2580, -1544, 4, -16, -36, + -280, -2572, -2303, -2545, -995, 43, 64, 86, 44, 2, -4, -10, -16, -22, -28, -34, -104, -174, -186, -198, -178, + -158, -330, -502, -674, -846, -722, -2134, -2234, -2334, -2302, -2270, -2270, -2042, -2067, -2090, -2114, -2138, + -2160, -2182, -2156, -2129, -2459, -2532, -2605, -2166, -2220, -2273, -2294, -2315, -2002, -2199, -2221, -2243, + -2323, -2403, -2387, -2370, -2286, -2201, -2453, -2704, -1412, 137, -1403, -2174, -2503, -2831, 248, 0, 27, 55, 35, + 15, 3, -9, -21, -33, -45, -57, -101, -145, -176, -206, -221, -235, -178, -120, -415, -709, -191, -2489, -2547, + -2349, -2349, -2349, -2349, -2040, -2065, -2089, -2114, -2138, -2203, -2267, -2236, -2204, -2207, -2210, -2181, + -2152, -2131, -2110, -2217, -1812, -1553, -2317, -2026, -1734, -1579, -1423, -1940, -2456, -2395, -2334, -2081, + -2340, -2551, -2250, -2013, -2288, -2447, -2093, -44, -42, -9, 25, 26, 28, 10, -8, -26, -44, -62, -80, -98, -116, + -165, -214, -263, -312, -281, -250, -155, -60, -940, -1820, -2348, -2364, -2396, -2428, -2428, -2038, -2060, -2081, + -2102, -2123, -2124, -2125, -2287, -2191, -2066, -1941, -1912, -1882, -2233, -2328, -2151, -1717, -1487, -2024, + -1761, -1498, -1243, -988, -718, -446, -1227, -2007, -2724, -2160, -2331, -2245, -2176, -2362, -2339, -1036, 107, + -29, -20, -10, 15, 41, 19, -3, -25, -47, -89, -131, -141, -151, -209, -266, -356, -445, -459, -472, -406, -83, + -1135, -1163, -1895, -2371, -2387, -2403, -2403, -2036, -2054, -2072, -2090, -2107, -2045, -1983, -2081, -1666, + -1669, -1671, -1898, -2124, -2591, -2545, -2084, -1622, -1420, -1730, -1496, -1261, -1163, -1065, -775, -484, -314, + -144, -806, -2492, -2366, -2240, -2338, -2436, -2487, -490, 3, -15, -30, -45, 4, 54, 28, 2, -24, -50, -116, -182, + -184, -186, -252, -318, -448, -578, -636, -694, -656, -106, -2098, -2042, -2210, -2378, -2378, -2378, -2378, -2034, + -2049, -2063, -2078, -2092, -2094, -2097, -1651, -1461, -1688, -1914, -2156, -2398, -2677, -2443, -2017, -1591, + -1450, -1564, -1343, -1121, -987, -854, -624, -394, -266, -137, 199, 24, -1554, -2363, -2325, -2286, -2123, -2728, + -1221, 30, 135, -16, 25, 67, 37, 7, -7, -21, -111, -201, -211, -221, -296, -370, -461, -551, -510, -468, -635, + -545, -2805, -2249, -2301, -2353, -2353, -2353, -2353, -2032, -2043, -2054, -2065, -2076, -2143, -2210, -1477, + -1768, -1962, -2156, -2414, -2672, -2762, -2340, -1950, -1560, -1479, -1398, -1189, -980, -811, -642, -473, -304, + -217, -130, -75, -20, 27, -2486, -2311, -2136, -2527, -2406, -2445, -2484, -979, 14, 47, 80, 46, 12, 10, 8, -106, + -220, -238, -256, -339, -422, -473, -524, -639, -754, -1637, -2520, -2232, -2456, -2392, -2328, -2328, -2328, + -2328, -2012, -2031, -2050, -2053, -2056, -2193, -2074, -1587, -1867, -2082, -2296, -2527, -2757, -2654, -2294, + -1887, -1479, -1381, -1282, -1088, -893, -749, -604, -492, -379, -244, -109, -182, 1, -606, -2493, -2284, -2331, + -2482, -2376, -2415, -2453, -2309, -2422, -1350, -278, -125, 29, 87, 145, 126, 108, 26, -56, -279, -502, -1108, + -1715, -2164, -2612, -2533, -2453, -2297, -2397, -2369, -2341, -2341, -2341, -2341, -1992, -2019, -2046, -2041, + -2035, -2242, -1937, -1696, -1966, -2201, -2436, -2639, -2842, -2545, -2248, -1823, -1398, -1282, -1166, -986, + -806, -686, -566, -510, -454, -271, -88, -289, 22, -1239, -2500, -2257, -2526, -388, -2346, -2384, -2421, -2359, + -2297, -2491, -2684, -2343, -2001, -1628, -1254, -1177, -1099, -1502, -1904, -2267, -2629, -2511, -2393, -2408, + -2422, -2404, -2386, -2362, -2338, -2346, -2354, -2354, -2354, -2354, -1972, -2007, -2042, -2045, -2047, -2196, + -1832, -1837, -2097, -2337, -2576, -2736, -2895, -2565, -2234, -1840, -1445, -1280, -1114, -917, -719, -624, -528, + -529, -529, -426, -323, -60, -53, -2528, -2443, -2518, -2081, 169, -140, -1313, -2486, -2441, -2396, -2384, -2370, + -2401, -2432, -2511, -2589, -2560, -2531, -2502, -2472, -2431, -2388, -2490, -2336, -2940, -2008, -1332, -2447, + -2395, -2343, -2355, -2367, -2367, -2367, -2367, -1952, -1995, -2037, -2048, -2058, -2149, -1727, -1978, -2228, + -2472, -2716, -2832, -2948, -2584, -2220, -1856, -1492, -1277, -1062, -847, -632, -561, -490, -547, -604, -581, + -558, -343, -1152, -2281, -2386, -2523, -1124, -41, 19, 14, 10, -1243, -2495, -2532, -2568, -2459, -2350, -2369, + -2388, -2407, -2426, -2477, -2528, -2594, -2659, -2213, -1254, 368, 967, -1027, -2508, -2428, -2348, -2364, -2380, + -2380, -2380, -2380, -1948, -1997, -2045, -2062, -2078, -1959, -1839, -2071, -2303, -2546, -2788, -2919, -3049, + -2874, -2442, -2027, -1611, -1375, -1138, -966, -793, -733, -672, -708, -743, -848, -953, -2018, -2059, -2442, + -2313, -2328, -295, 98, -19, 23, 65, 25, -15, -631, -1246, -1796, -2345, -2510, -2675, -2541, -2406, -1887, -1368, + -468, 433, 438, 699, 1162, 857, -2697, -2409, -2413, -2417, -2389, -2361, -2361, -2361, -2361, -1944, -1999, -2053, + -2075, -2097, -1768, -1950, -2164, -2378, -2619, -2860, -3005, -3150, -3163, -2664, -2197, -1730, -1472, -1214, + -1084, -954, -904, -854, -868, -882, -859, -836, -877, -1942, -2091, -2240, -2389, 22, -18, -57, 32, 121, 13, -94, + -9, 76, 148, 221, 165, 110, 142, 175, 239, 304, 379, 454, 529, 605, 676, 235, -2574, -2310, -2398, -2486, -2414, + -2342, -2342, -2342, -2342, -1940, -2001, -2061, -2073, -2085, -1641, -1965, -2145, -2325, -2533, -2740, -2900, + -3059, -3053, -2790, -2320, -1849, -1570, -1290, -1203, -1115, -1076, -1036, -1029, -1021, -1078, -1135, -504, + -2689, -2396, -2359, -1554, 19, -6, -31, 25, 80, 33, -13, 36, 86, 124, 162, 136, 111, 137, 163, 237, 312, 393, 475, + 524, 574, 654, -803, -2467, -2339, -2383, -2427, -2375, -2323, -2323, -2323, -2323, -1936, -2002, -2068, -2070, + -2072, -1514, -1980, -2126, -2272, -2446, -2620, -2794, -2968, -2942, -2916, -2442, -1968, -1667, -1366, -1321, + -1276, -1247, -1218, -1189, -1160, -1041, -922, -1411, -2412, -2189, -2478, -719, 16, 6, -4, 18, 40, 54, 68, 82, + 96, 100, 104, 108, 112, 132, 152, 236, 320, 408, 496, 520, 544, 632, -1840, -2360, -2368, -2368, -2368, -2336, + -2304, -2304, -2304, -2304, -1898, -1921, -1944, -2111, -1766, -1551, -1848, -1985, -2122, -2319, -2516, -2665, + -2814, -3075, -3080, -2829, -2321, -2026, -1730, -1610, -1490, -1458, -1426, -1394, -1362, -1247, -1132, -1880, + -2373, -2534, -2694, 329, 25, 40, 55, 54, 54, 71, 88, 105, 123, 151, 180, 208, 237, 83, -70, 48, 167, 248, 329, + 346, 363, 732, -2739, -2578, -2416, -2395, -2374, -2353, -2332, -2332, -2332, -2332, -1860, -1840, -1820, -2152, + -1460, -1588, -1716, -1844, -1972, -2192, -2412, -2536, -2659, -2951, -2731, -2959, -2674, -2384, -2093, -1898, + -1703, -1669, -1634, -1599, -1564, -1453, -1341, -2349, -2333, -2366, -1886, -158, 34, 74, 115, 91, 68, 88, 109, + 129, 150, 203, 256, 309, 362, 291, 220, 117, 14, 88, 162, 172, 183, -703, -2613, -2283, -2464, -2422, -2380, -2370, + -2360, -2360, -2360, -2360, -2110, -1967, -1824, -1953, -1314, -1513, -1712, -1815, -1918, -2209, -2244, -2455, + -2409, -2604, -2542, -2753, -2707, -2694, -2680, -2411, -2141, -2056, -1970, -1868, -1766, -1723, -1678, -2370, + -2294, -2518, -950, -54, 75, 92, 110, 96, 82, 105, 129, 153, 177, 222, 268, 313, 359, 354, 350, 441, 533, 472, 411, + 414, 674, -1691, -2519, -2340, -2416, -2401, -2386, -2387, -2388, -2388, -2388, -2388, -1848, -1838, -1828, -1754, + -1168, -1438, -1708, -1786, -1864, -2226, -2075, -2373, -2158, -2256, -2353, -2547, -2740, -2748, -2755, -2667, + -2578, -2442, -2305, -2137, -1968, -1992, -2015, -2391, -2254, -2670, -13, 51, 116, 111, 106, 101, 96, 123, 150, + 177, 204, 242, 280, 318, 356, 418, 480, 510, 540, 600, 661, 657, 1166, -2678, -2425, -2397, -2368, -2380, -2392, + -2404, -2416, -2416, -2416, -2416, -1882, -1711, -1796, -1369, -1198, -1419, -1640, -1749, -1858, -1979, -1843, + -2060, -2020, -2115, -2209, -2367, -2525, -2480, -2691, -2838, -2984, -2761, -2537, -2394, -2250, -2196, -2141, + -2358, -2319, -2020, 71, 113, 157, 151, 145, 139, 134, 160, 186, 212, 239, 273, 308, 342, 377, 439, 502, 548, 595, + 632, 670, 931, 169, -2668, -2432, -2404, -2376, -2385, -2394, -2403, -2412, -2412, -2412, -2412, -1916, -1840, + -2276, -1240, -1228, -1400, -1572, -1712, -1852, -1732, -1611, -1746, -1881, -1973, -2064, -2187, -2310, -2212, + -2626, -2752, -2877, -2823, -2769, -2651, -2532, -2399, -2266, -2325, -2383, -1370, 155, 176, 198, 191, 185, 178, + 172, 197, 223, 248, 274, 305, 336, 367, 398, 461, 524, 587, 650, 664, 679, 1206, -827, -2657, -2438, -2411, -2384, + -2390, -2396, -2402, -2408, -2408, -2408, -2408, -1950, -1953, -1956, -1063, -1194, -1317, -1440, -1435, -1430, + -1501, -1315, -1433, -1551, -1639, -1727, -1799, -1871, -1928, -2241, -2410, -2579, -2598, -2617, -2732, -2846, + -2555, -2263, -2260, -2512, -528, 175, 207, 239, 231, 224, 217, 210, 234, 259, 284, 309, 336, 364, 391, 419, 482, + 546, 609, 673, 744, 816, 936, -2016, -2486, -2188, -2290, -2392, -2395, -2398, -2401, -2404, -2404, -2404, -2404, + -1984, -2066, -1636, -886, -1160, -1234, -1308, -1414, -1520, -2037, -2042, -1887, -1732, -1817, -1902, -1923, + -1944, -1900, -1856, -2068, -2280, -2372, -2464, -2556, -2648, -2454, -2260, -2194, -2640, 314, 196, 238, 280, 272, + 264, 256, 248, 272, 296, 320, 344, 368, 392, 416, 440, 504, 568, 632, 696, 825, 954, 923, -2692, -2315, -2450, + -2425, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2252, -1954, -1143, -1036, -1441, -1827, -2212, + -2245, -2278, -2222, -1909, -1916, -1923, -2002, -2337, -2096, -2111, -2172, -2232, -2132, -2032, -2144, -2256, + -2304, -2352, -2307, -2261, -2360, -1690, 442, 269, 305, 341, 333, 325, 317, 309, 329, 349, 369, 389, 415, 441, + 468, 494, 536, 579, 669, 760, 797, 1091, -248, -2610, -2407, -2459, -2432, -2404, -2400, -2396, -2392, -2388, + -2388, -2388, -2388, -2008, -2097, -1673, -1954, -2234, -2163, -2091, -2052, -2012, -2150, -2287, -2200, -2113, + -1931, -2260, -2013, -2278, -2187, -2095, -2195, -2295, -2172, -2048, -2052, -2056, -2159, -2262, -2525, -739, 570, + 343, 372, 402, 394, 386, 378, 370, 386, 402, 418, 434, 462, 491, 520, 549, 569, 590, 707, 824, 770, 1228, -1418, + -2528, -2498, -2468, -2438, -2408, -2400, -2392, -2384, -2376, -2376, -2376, -2376, -1988, -2192, -2140, -2152, + -2163, -2131, -2099, -2083, -2066, -2142, -2217, -2181, -2144, -2068, -2247, -2138, -2285, -2234, -2182, -2227, + -2271, -2328, -2384, -2168, -1952, -2252, -2551, -2466, 179, 394, 353, 407, 463, 455, 447, 423, 399, 523, 391, 547, + 447, 493, 541, 572, 603, 634, 665, 792, 920, 1094, 1269, -2765, -2446, -2430, -2413, -2413, -2412, -2400, -2388, + -2376, -2364, -2364, -2364, -2364, -1968, -2031, -2094, -2093, -2092, -2099, -2106, -2113, -2120, -2134, -2147, + -2161, -2174, -2204, -2233, -2263, -2292, -2281, -2269, -2258, -2246, -2227, -2207, -2284, -2360, -2344, -2327, + -2407, 586, -38, 363, 443, 524, 516, 508, 468, 428, 660, 380, 676, 460, 525, 591, 624, 658, 699, 741, 878, 1016, + 907, 286, -2575, -2364, -2361, -2358, -2387, -2416, -2400, -2384, -2368, -2352, -2352, -2352, -2352, -2020, -2073, + -2125, -2081, -2037, -2064, -2090, -2116, -2142, -2154, -2166, -2178, -2189, -2213, -2236, -2260, -2283, -2276, + -2269, -2262, -2254, -2251, -2247, -2292, -2336, -2339, -2340, -1206, -72, -16, 296, 496, 441, 469, 497, 381, 521, + 635, 493, 735, 465, 544, 624, 640, 656, 748, 840, 899, 960, 1115, -1033, -2494, -2418, -2379, -2339, -2380, -2420, + -2408, -2396, -2384, -2372, -2372, -2372, -2372, -2072, -2114, -2155, -2069, -1982, -2028, -2073, -2119, -2164, + -2174, -2184, -2194, -2203, -2221, -2239, -2257, -2274, -2271, -2268, -2265, -2261, -2274, -2287, -2300, -2312, + -2333, -2353, -2053, -729, 6, 230, 550, 358, 422, 486, 294, 614, 610, 606, 794, 470, 564, 658, 656, 655, 797, 939, + 921, 904, 1324, -2352, -2412, -2472, -2396, -2320, -2372, -2424, -2416, -2408, -2400, -2392, -2392, -2392, -2392, + -1996, -1931, -1866, -1961, -2055, -2088, -2121, -2154, -2186, -2194, -2202, -2210, -2218, -2230, -2242, -2254, + -2265, -2266, -2267, -2268, -2269, -2282, -2295, -2308, -2320, -2343, -2366, -2708, -2539, -1492, -188, 171, 275, + 327, 379, 287, 451, 505, 559, 773, 475, 551, 628, 512, 653, 910, 654, 1007, 1104, -740, -2583, -2507, -2430, -2398, + -2365, -2397, -2428, -2424, -2420, -2416, -2412, -2412, -2412, -2412, -1920, -2004, -2088, -2108, -2128, -2148, + -2168, -2188, -2208, -2214, -2220, -2226, -2232, -2238, -2244, -2250, -2256, -2261, -2266, -2271, -2276, -2289, + -2302, -2315, -2328, -2353, -2378, -2339, -2300, -2477, -1630, -719, 192, 232, 272, 280, 288, 400, 512, 752, 480, + 539, 598, 369, 652, 767, -142, -1211, -2792, -2547, -2302, -2345, -2388, -2399, -2410, -2421, -2432, -2432, -2432, + -2432, -2432, -2432, -2432, -2432, -2024, -2070, -2116, -2130, -2144, -2164, -2184, -2204, -2224, -2228, -2232, + -2236, -2240, -2244, -2248, -2252, -2256, -2263, -2270, -2277, -2284, -2297, -2310, -2323, -2336, -2320, -2304, + -2288, -2272, -2560, -2336, -1856, -1376, -2264, -1104, -520, 64, 384, 704, 704, 192, -44, -280, -1236, -1936, + -3018, -2564, -2350, -2392, -2391, -2390, -2389, -2388, -2399, -2410, -2421, -2432, -2432, -2432, -2432, -2432, + -2432, -2432, -2432, -2128, -2136, -2144, -2152, -2160, -2180, -2200, -2220, -2240, -2242, -2244, -2246, -2248, + -2250, -2252, -2254, -2256, -2265, -2274, -2283, -2292, -2305, -2318, -2331, -2344, -2287, -2230, -2237, -2244, + -2387, -2530, -2481, -2432, -2456, -2480, -2600, -2720, -2448, -2176, -1904, -2144, -2419, -2694, -2585, -2476, + -2451, -2426, -2465, -2504, -2491, -2478, -2433, -2388, -2399, -2410, -2421, -2432, -2432, -2432, -2432, -2432, + -2432, -2432, -2432, -2104, -2122, -2140, -2158, -2176, -2196, -2216, -2236, -2256, -2256, -2256, -2256, -2256, + -2256, -2256, -2256, -2256, -2267, -2278, -2289, -2300, -2313, -2326, -2339, -2352, -2318, -2284, -2282, -2280, + -2358, -2436, -2418, -2400, -2408, -2416, -2360, -2304, -2480, -864, -1648, -1408, -1226, -2580, -2510, -2440, + -2428, -2416, -2436, -2456, -2447, -2438, -2413, -2388, -2399, -2410, -2421, -2432, -2432, -2432, -2432, -2432, + -2432, -2432, -2432, -2080, -2108, -2136, -2164, -2192, -2212, -2232, -2252, -2272, -2270, -2268, -2266, -2264, + -2262, -2260, -2258, -2256, -2269, -2282, -2295, -2308, -2321, -2334, -2347, -2360, -2349, -2338, -2327, -2316, + -2329, -2342, -2355, -2368, -2360, -2352, -2376, -2400, -2256, -2624, -1392, -1696, -2593, -2466, -2435, -2404, + -2405, -2406, -2407, -2408, -2403, -2398, -2393, -2388, -2399, -2410, -2421, -2432, -2432, -2432, -2432, -2432, + -2432, -2432, -2432, -2080, -2108, -2136, -2164, -2192, -2212, -2232, -2252, -2272, -2270, -2268, -2266, -2264, + -2262, -2260, -2258, -2256, -2269, -2282, -2295, -2308, -2321, -2334, -2347, -2360, -2349, -2338, -2327, -2316, + -2329, -2342, -2355, -2368, -2360, -2352, -2360, -2368, -2352, -2592, -2192, -2560, -2769, -2466, -2435, -2404, + -2405, -2406, -2407, -2408, -2403, -2398, -2393, -2388, -2399, -2410, -2421, -2432, -2432, -2432, -2432, -2432, + -2432, -2432, -2432, -2080, -2108, -2136, -2164, -2192, -2212, -2232, -2252, -2272, -2270, -2268, -2266, -2264, + -2262, -2260, -2258, -2256, -2269, -2282, -2295, -2308, -2321, -2334, -2347, -2360, -2349, -2338, -2327, -2316, + -2329, -2342, -2355, -2368, -2360, -2352, -2344, -2336, -2448, -2560, -2480, -2400, -2433, -2466, -2435, -2404, + -2405, -2406, -2407, -2408, -2403, -2398, -2393, -2388, -2399, -2410, -2421, -2432, -2432, -2432, -2432, -2432, + -2432, -2432, -2432, -2080, -2108, -2136, -2164, -2192, -2212, -2232, -2252, -2272, -2270, -2268, -2266, -2264, + -2262, -2260, -2258, -2256, -2269, -2282, -2295, -2308, -2321, -2334, -2347, -2360, -2349, -2338, -2327, -2316, + -2329, -2342, -2355, -2368, -2360, -2352, -2344, -2336, -2448, -2560, -2480, -2400, -2433, -2466, -2435, -2404, + -2405, -2406, -2407, -2408, -2403, -2398, -2393, -2388, -2399, -2410, -2421, -2432, -2432, -2432, -2432, -2432, + -2432, -2432, -2432, ]; const RGB_BUFFER: [u8; 4 * 64 * 64] = [ - 0xDE, 0x9B, 0x22, 0xFF, 0xE0, 0x9D, 0x23, 0xFF, 0xE1, 0x9E, 0x25, 0xFF, 0xE8, 0xA5, 0x2B, 0xFF, - 0xDF, 0x9B, 0x22, 0xFF, 0xDF, 0x9C, 0x22, 0xFF, 0xE0, 0x9C, 0x22, 0xFF, 0xDF, 0x9C, 0x22, 0xFF, - 0xDF, 0x9B, 0x21, 0xFF, 0xDF, 0x9B, 0x22, 0xFF, 0xDF, 0x9B, 0x23, 0xFF, 0xDF, 0x9B, 0x23, 0xFF, - 0xDF, 0x9C, 0x24, 0xFF, 0xE2, 0x9B, 0x21, 0xFF, 0xE5, 0x9B, 0x1D, 0xFF, 0xE1, 0x9A, 0x1F, 0xFF, - 0xDD, 0x98, 0x21, 0xFF, 0xDE, 0x99, 0x21, 0xFF, 0xDE, 0x99, 0x20, 0xFF, 0xDF, 0x9A, 0x1F, 0xFF, - 0xE0, 0x9A, 0x1F, 0xFF, 0xE0, 0x99, 0x1E, 0xFF, 0xDF, 0x99, 0x1D, 0xFF, 0xDF, 0x98, 0x1C, 0xFF, - 0xDF, 0x97, 0x1B, 0xFF, 0xDC, 0x95, 0x1E, 0xFF, 0xD8, 0x93, 0x21, 0xFF, 0xDC, 0x93, 0x1F, 0xFF, - 0xE0, 0x93, 0x1C, 0xFF, 0xDC, 0x94, 0x1A, 0xFF, 0xD8, 0x95, 0x18, 0xFF, 0xDB, 0x91, 0x1C, 0xFF, - 0xDE, 0x8E, 0x1F, 0xFF, 0xDE, 0x90, 0x1A, 0xFF, 0xDE, 0x93, 0x16, 0xFF, 0xDF, 0x92, 0x17, 0xFF, - 0xDF, 0x91, 0x18, 0xFF, 0xDF, 0x90, 0x17, 0xFF, 0xDE, 0x8F, 0x17, 0xFF, 0xDE, 0x8E, 0x16, 0xFF, - 0xDE, 0x8C, 0x15, 0xFF, 0xDD, 0x8C, 0x14, 0xFF, 0xDB, 0x8C, 0x13, 0xFF, 0xDA, 0x8C, 0x12, 0xFF, - 0xD9, 0x8C, 0x11, 0xFF, 0xD9, 0x8B, 0x11, 0xFF, 0xD9, 0x89, 0x11, 0xFF, 0xDA, 0x88, 0x11, 0xFF, - 0xDA, 0x87, 0x12, 0xFF, 0xDA, 0x86, 0x11, 0xFF, 0xDA, 0x86, 0x10, 0xFF, 0xD9, 0x85, 0x10, 0xFF, - 0xD9, 0x84, 0x0F, 0xFF, 0xD9, 0x83, 0x0E, 0xFF, 0xD8, 0x83, 0x0E, 0xFF, 0xD8, 0x82, 0x0D, 0xFF, - 0xD8, 0x81, 0x0C, 0xFF, 0xD7, 0x80, 0x0C, 0xFF, 0xD7, 0x7F, 0x0D, 0xFF, 0xD6, 0x7F, 0x0D, 0xFF, - 0xD6, 0x7E, 0x0D, 0xFF, 0xD6, 0x7E, 0x0D, 0xFF, 0xD6, 0x7E, 0x0D, 0xFF, 0xD6, 0x7E, 0x0D, 0xFF, - 0xE0, 0x9F, 0x24, 0xFF, 0xE1, 0xA0, 0x27, 0xFF, 0xE2, 0xA2, 0x29, 0xFF, 0xE5, 0xA4, 0x2A, 0xFF, - 0xE0, 0x9E, 0x24, 0xFF, 0xE1, 0x9E, 0x24, 0xFF, 0xE1, 0x9E, 0x24, 0xFF, 0xE1, 0x9E, 0x23, 0xFF, - 0xE1, 0x9D, 0x23, 0xFF, 0xE1, 0x9D, 0x23, 0xFF, 0xE1, 0x9D, 0x24, 0xFF, 0xE1, 0x9D, 0x24, 0xFF, - 0xE1, 0x9D, 0x25, 0xFF, 0xE1, 0x9D, 0x23, 0xFF, 0xE2, 0x9C, 0x22, 0xFF, 0xE0, 0x9C, 0x22, 0xFF, - 0xDF, 0x9B, 0x22, 0xFF, 0xE0, 0x9B, 0x21, 0xFF, 0xE1, 0x9B, 0x20, 0xFF, 0xE1, 0x9B, 0x20, 0xFF, - 0xE1, 0x9B, 0x1F, 0xFF, 0xDF, 0x9A, 0x20, 0xFF, 0xDE, 0x99, 0x20, 0xFF, 0xDE, 0x98, 0x1E, 0xFF, - 0xDF, 0x97, 0x1D, 0xFF, 0xDF, 0x97, 0x1D, 0xFF, 0xDF, 0x96, 0x1E, 0xFF, 0xDF, 0x95, 0x1D, 0xFF, - 0xDE, 0x94, 0x1C, 0xFF, 0xDF, 0x94, 0x1C, 0xFF, 0xE0, 0x93, 0x1B, 0xFF, 0xE0, 0x93, 0x1C, 0xFF, - 0xE0, 0x92, 0x1D, 0xFF, 0xDE, 0x93, 0x1B, 0xFF, 0xDC, 0x94, 0x19, 0xFF, 0xDE, 0x93, 0x19, 0xFF, - 0xE0, 0x92, 0x19, 0xFF, 0xDF, 0x91, 0x19, 0xFF, 0xDF, 0x90, 0x18, 0xFF, 0xDF, 0x8F, 0x17, 0xFF, - 0xDF, 0x8E, 0x17, 0xFF, 0xDE, 0x8E, 0x16, 0xFF, 0xDD, 0x8D, 0x15, 0xFF, 0xDC, 0x8D, 0x13, 0xFF, - 0xDB, 0x8D, 0x12, 0xFF, 0xDB, 0x8C, 0x12, 0xFF, 0xDB, 0x8B, 0x12, 0xFF, 0xDB, 0x89, 0x12, 0xFF, - 0xDB, 0x88, 0x12, 0xFF, 0xDB, 0x87, 0x11, 0xFF, 0xDB, 0x87, 0x11, 0xFF, 0xDB, 0x86, 0x10, 0xFF, - 0xDB, 0x85, 0x0F, 0xFF, 0xDA, 0x84, 0x0E, 0xFF, 0xD9, 0x83, 0x0D, 0xFF, 0xD9, 0x83, 0x0D, 0xFF, - 0xD9, 0x83, 0x0D, 0xFF, 0xD8, 0x82, 0x0D, 0xFF, 0xD8, 0x81, 0x0D, 0xFF, 0xD7, 0x80, 0x0D, 0xFF, - 0xD7, 0x7F, 0x0D, 0xFF, 0xD7, 0x7F, 0x0D, 0xFF, 0xD7, 0x7F, 0x0D, 0xFF, 0xD7, 0x7F, 0x0D, 0xFF, - 0xE2, 0xA2, 0x27, 0xFF, 0xE3, 0xA4, 0x2A, 0xFF, 0xE3, 0xA5, 0x2D, 0xFF, 0xE3, 0xA3, 0x29, 0xFF, - 0xE2, 0xA1, 0x26, 0xFF, 0xE2, 0xA1, 0x25, 0xFF, 0xE2, 0xA1, 0x25, 0xFF, 0xE2, 0xA0, 0x25, 0xFF, - 0xE2, 0xA0, 0x24, 0xFF, 0xE2, 0x9F, 0x25, 0xFF, 0xE3, 0x9F, 0x25, 0xFF, 0xE3, 0x9E, 0x25, 0xFF, - 0xE3, 0x9E, 0x26, 0xFF, 0xE1, 0x9E, 0x26, 0xFF, 0xDE, 0x9D, 0x27, 0xFF, 0xDF, 0x9D, 0x24, 0xFF, - 0xE1, 0x9E, 0x22, 0xFF, 0xE2, 0x9D, 0x21, 0xFF, 0xE3, 0x9D, 0x20, 0xFF, 0xE3, 0x9D, 0x20, 0xFF, - 0xE3, 0x9C, 0x20, 0xFF, 0xDF, 0x9B, 0x22, 0xFF, 0xDC, 0x99, 0x24, 0xFF, 0xDE, 0x98, 0x21, 0xFF, - 0xE0, 0x98, 0x1F, 0xFF, 0xE3, 0x99, 0x1D, 0xFF, 0xE7, 0x9A, 0x1B, 0xFF, 0xE1, 0x98, 0x1B, 0xFF, - 0xDC, 0x96, 0x1C, 0xFF, 0xE2, 0x94, 0x1D, 0xFF, 0xE9, 0x92, 0x1F, 0xFF, 0xE5, 0x94, 0x1D, 0xFF, - 0xE2, 0x96, 0x1A, 0xFF, 0xDE, 0x95, 0x1B, 0xFF, 0xDA, 0x95, 0x1D, 0xFF, 0xDD, 0x94, 0x1C, 0xFF, - 0xE0, 0x93, 0x1A, 0xFF, 0xE0, 0x92, 0x1A, 0xFF, 0xE0, 0x91, 0x19, 0xFF, 0xDF, 0x91, 0x19, 0xFF, - 0xDF, 0x90, 0x18, 0xFF, 0xDE, 0x8F, 0x17, 0xFF, 0xDE, 0x8F, 0x16, 0xFF, 0xDD, 0x8E, 0x15, 0xFF, - 0xDD, 0x8E, 0x14, 0xFF, 0xDC, 0x8D, 0x14, 0xFF, 0xDC, 0x8C, 0x13, 0xFF, 0xDC, 0x8B, 0x12, 0xFF, - 0xDB, 0x8A, 0x12, 0xFF, 0xDC, 0x89, 0x11, 0xFF, 0xDC, 0x88, 0x11, 0xFF, 0xDC, 0x87, 0x10, 0xFF, - 0xDC, 0x86, 0x10, 0xFF, 0xDB, 0x84, 0x0E, 0xFF, 0xD9, 0x83, 0x0D, 0xFF, 0xD9, 0x83, 0x0E, 0xFF, - 0xDA, 0x84, 0x0E, 0xFF, 0xD9, 0x83, 0x0E, 0xFF, 0xD9, 0x82, 0x0E, 0xFF, 0xD8, 0x80, 0x0D, 0xFF, - 0xD8, 0x7F, 0x0D, 0xFF, 0xD8, 0x7F, 0x0D, 0xFF, 0xD8, 0x7F, 0x0D, 0xFF, 0xD8, 0x7F, 0x0D, 0xFF, - 0xE4, 0xA6, 0x29, 0xFF, 0xE3, 0xA7, 0x2D, 0xFF, 0xE3, 0xA8, 0x30, 0xFF, 0xE3, 0xA6, 0x2C, 0xFF, - 0xE3, 0xA3, 0x27, 0xFF, 0xE3, 0xA3, 0x27, 0xFF, 0xE3, 0xA3, 0x26, 0xFF, 0xE4, 0xA2, 0x26, 0xFF, - 0xE4, 0xA2, 0x26, 0xFF, 0xE4, 0xA1, 0x26, 0xFF, 0xE4, 0xA1, 0x26, 0xFF, 0xE5, 0xA0, 0x26, 0xFF, - 0xE5, 0x9F, 0x26, 0xFF, 0xE4, 0xA0, 0x25, 0xFF, 0xE4, 0xA0, 0x24, 0xFF, 0xE3, 0x9F, 0x24, 0xFF, - 0xE3, 0x9E, 0x24, 0xFF, 0xE4, 0x9E, 0x23, 0xFF, 0xE6, 0x9F, 0x21, 0xFF, 0xE5, 0x9F, 0x21, 0xFF, - 0xE3, 0x9E, 0x22, 0xFF, 0xE5, 0xA4, 0x13, 0xFF, 0xE7, 0x9F, 0x1A, 0xFF, 0xE7, 0x9F, 0x15, 0xFF, - 0xE7, 0xA0, 0x10, 0xFF, 0xEF, 0x9F, 0x11, 0xFF, 0xF7, 0x9E, 0x12, 0xFF, 0xEC, 0x99, 0x1A, 0xFF, - 0xE1, 0x9A, 0x17, 0xFF, 0xE3, 0x9C, 0x14, 0xFF, 0xE5, 0x98, 0x1C, 0xFF, 0xE6, 0x97, 0x1C, 0xFF, - 0xE6, 0x96, 0x1B, 0xFF, 0xDB, 0x98, 0x1B, 0xFF, 0xDF, 0x96, 0x1C, 0xFF, 0xE0, 0x95, 0x1C, 0xFF, - 0xE1, 0x94, 0x1B, 0xFF, 0xE1, 0x93, 0x1B, 0xFF, 0xE0, 0x93, 0x1A, 0xFF, 0xE0, 0x92, 0x1A, 0xFF, - 0xE0, 0x92, 0x19, 0xFF, 0xDF, 0x91, 0x18, 0xFF, 0xDF, 0x90, 0x18, 0xFF, 0xDF, 0x8F, 0x17, 0xFF, - 0xDF, 0x8F, 0x16, 0xFF, 0xDE, 0x8E, 0x15, 0xFF, 0xDD, 0x8D, 0x14, 0xFF, 0xDD, 0x8C, 0x13, 0xFF, - 0xDC, 0x8B, 0x12, 0xFF, 0xDC, 0x8A, 0x12, 0xFF, 0xDD, 0x89, 0x11, 0xFF, 0xDD, 0x87, 0x11, 0xFF, - 0xDE, 0x86, 0x10, 0xFF, 0xDC, 0x85, 0x0F, 0xFF, 0xD9, 0x83, 0x0D, 0xFF, 0xDA, 0x84, 0x0E, 0xFF, - 0xDB, 0x85, 0x0F, 0xFF, 0xDA, 0x84, 0x0F, 0xFF, 0xDA, 0x83, 0x0E, 0xFF, 0xDA, 0x81, 0x0E, 0xFF, - 0xD9, 0x80, 0x0D, 0xFF, 0xD9, 0x80, 0x0D, 0xFF, 0xD9, 0x80, 0x0D, 0xFF, 0xD9, 0x80, 0x0D, 0xFF, - 0xE7, 0xAA, 0x2C, 0xFF, 0xE4, 0xAA, 0x30, 0xFF, 0xE2, 0xAA, 0x33, 0xFF, 0xE3, 0xA8, 0x2E, 0xFF, - 0xE4, 0xA5, 0x28, 0xFF, 0xE5, 0xA5, 0x28, 0xFF, 0xE5, 0xA5, 0x28, 0xFF, 0xE5, 0xA4, 0x28, 0xFF, - 0xE5, 0xA4, 0x27, 0xFF, 0xE6, 0xA3, 0x27, 0xFF, 0xE6, 0xA2, 0x27, 0xFF, 0xE7, 0xA1, 0x27, 0xFF, - 0xE7, 0xA1, 0x27, 0xFF, 0xE8, 0xA2, 0x25, 0xFF, 0xE9, 0xA3, 0x22, 0xFF, 0xE7, 0xA0, 0x24, 0xFF, - 0xE6, 0x9E, 0x27, 0xFF, 0xE7, 0x9F, 0x25, 0xFF, 0xE8, 0xA0, 0x22, 0xFF, 0xF4, 0xA3, 0x18, 0xFF, - 0xFF, 0xA7, 0x0D, 0xFF, 0xDD, 0xA5, 0x1A, 0xFF, 0xBA, 0x8D, 0x54, 0xFF, 0x9C, 0x83, 0x6E, 0xFF, - 0x7D, 0x79, 0x88, 0xFF, 0x7B, 0x79, 0x8C, 0xFF, 0x79, 0x79, 0x91, 0xFF, 0x94, 0x7A, 0x7E, 0xFF, - 0xAF, 0x87, 0x55, 0xFF, 0xD6, 0x9B, 0x21, 0xFF, 0xFD, 0xA3, 0x04, 0xFF, 0xF4, 0x9D, 0x0F, 0xFF, - 0xEB, 0x96, 0x1B, 0xFF, 0xD9, 0x9A, 0x1B, 0xFF, 0xE4, 0x98, 0x1B, 0xFF, 0xE3, 0x96, 0x1C, 0xFF, - 0xE2, 0x95, 0x1C, 0xFF, 0xE2, 0x94, 0x1C, 0xFF, 0xE1, 0x94, 0x1B, 0xFF, 0xE1, 0x94, 0x1B, 0xFF, - 0xE0, 0x93, 0x1B, 0xFF, 0xE0, 0x92, 0x1A, 0xFF, 0xE0, 0x91, 0x19, 0xFF, 0xE1, 0x90, 0x18, 0xFF, - 0xE1, 0x8F, 0x18, 0xFF, 0xE0, 0x8F, 0x16, 0xFF, 0xDF, 0x8E, 0x15, 0xFF, 0xDE, 0x8D, 0x14, 0xFF, - 0xDC, 0x8C, 0x12, 0xFF, 0xDD, 0x8B, 0x12, 0xFF, 0xDE, 0x8A, 0x12, 0xFF, 0xDF, 0x88, 0x11, 0xFF, - 0xE0, 0x87, 0x11, 0xFF, 0xDD, 0x85, 0x0F, 0xFF, 0xDA, 0x83, 0x0D, 0xFF, 0xDB, 0x85, 0x0E, 0xFF, - 0xDC, 0x87, 0x10, 0xFF, 0xDC, 0x85, 0x0F, 0xFF, 0xDB, 0x84, 0x0F, 0xFF, 0xDB, 0x82, 0x0E, 0xFF, - 0xDA, 0x81, 0x0D, 0xFF, 0xDA, 0x81, 0x0D, 0xFF, 0xDA, 0x81, 0x0D, 0xFF, 0xDA, 0x81, 0x0D, 0xFF, - 0xE4, 0xAA, 0x30, 0xFF, 0xE8, 0xAF, 0x35, 0xFF, 0xE3, 0xAB, 0x33, 0xFF, 0xE5, 0xA9, 0x2F, 0xFF, - 0xE6, 0xA8, 0x2A, 0xFF, 0xE8, 0xAD, 0x35, 0xFF, 0xE7, 0xA6, 0x25, 0xFF, 0xE7, 0xA7, 0x28, 0xFF, - 0xE7, 0xA8, 0x2B, 0xFF, 0xE5, 0xA6, 0x2D, 0xFF, 0xE4, 0xA4, 0x2E, 0xFF, 0xE6, 0xA4, 0x2B, 0xFF, - 0xE8, 0xA4, 0x29, 0xFF, 0xE5, 0xA4, 0x2A, 0xFF, 0xE1, 0xA5, 0x2C, 0xFF, 0xEF, 0xA9, 0x10, 0xFF, - 0xF6, 0xAD, 0x12, 0xFF, 0xF8, 0xA2, 0x22, 0xFF, 0xA5, 0x91, 0x60, 0xFF, 0x5C, 0x75, 0xA5, 0xFF, - 0x14, 0x59, 0xEB, 0xFF, 0x0C, 0x48, 0xFF, 0xFF, 0x03, 0x55, 0xFA, 0xFF, 0x0F, 0x59, 0xFF, 0xFF, - 0x1A, 0x5D, 0xFF, 0xFF, 0x16, 0x60, 0xFF, 0xFF, 0x11, 0x64, 0xF9, 0xFF, 0x0F, 0x54, 0xFF, 0xFF, - 0x0C, 0x4A, 0xFF, 0xFF, 0x17, 0x49, 0xFA, 0xFF, 0x23, 0x47, 0xF5, 0xFF, 0x7E, 0x72, 0x8D, 0xFF, - 0xD9, 0x9D, 0x26, 0xFF, 0xFF, 0xA1, 0x05, 0xFF, 0xE1, 0x96, 0x1D, 0xFF, 0xE9, 0x98, 0x17, 0xFF, - 0xE3, 0x97, 0x1C, 0xFF, 0xE3, 0x97, 0x1A, 0xFF, 0xE4, 0x97, 0x18, 0xFF, 0xE3, 0x96, 0x19, 0xFF, - 0xE2, 0x94, 0x1B, 0xFF, 0xE1, 0x93, 0x1A, 0xFF, 0xE0, 0x93, 0x19, 0xFF, 0xE1, 0x92, 0x18, 0xFF, - 0xE1, 0x91, 0x17, 0xFF, 0xE0, 0x90, 0x16, 0xFF, 0xDF, 0x8F, 0x15, 0xFF, 0xDE, 0x8E, 0x14, 0xFF, - 0xDD, 0x8D, 0x13, 0xFF, 0xDE, 0x8D, 0x13, 0xFF, 0xDF, 0x8C, 0x13, 0xFF, 0xDF, 0x8A, 0x12, 0xFF, - 0xE0, 0x89, 0x10, 0xFF, 0xDD, 0x87, 0x0F, 0xFF, 0xDB, 0x84, 0x0E, 0xFF, 0xDF, 0x8A, 0x13, 0xFF, - 0xDB, 0x87, 0x0F, 0xFF, 0xDC, 0x86, 0x0F, 0xFF, 0xDC, 0x85, 0x0F, 0xFF, 0xDB, 0x84, 0x0E, 0xFF, - 0xDB, 0x82, 0x0D, 0xFF, 0xDB, 0x82, 0x0D, 0xFF, 0xDB, 0x82, 0x0D, 0xFF, 0xDB, 0x82, 0x0D, 0xFF, - 0xE2, 0xAB, 0x33, 0xFF, 0xEB, 0xB3, 0x3B, 0xFF, 0xE5, 0xAC, 0x33, 0xFF, 0xE6, 0xAB, 0x30, 0xFF, - 0xE7, 0xAA, 0x2D, 0xFF, 0xEA, 0xB6, 0x43, 0xFF, 0xEA, 0xA7, 0x23, 0xFF, 0xE9, 0xA9, 0x29, 0xFF, - 0xE9, 0xAB, 0x2F, 0xFF, 0xE5, 0xA9, 0x32, 0xFF, 0xE2, 0xA7, 0x35, 0xFF, 0xE6, 0xA7, 0x30, 0xFF, - 0xEA, 0xA8, 0x2A, 0xFF, 0xF0, 0xAA, 0x25, 0xFF, 0xF6, 0xAD, 0x1F, 0xFF, 0xA7, 0x8A, 0x4D, 0xFF, - 0x4C, 0x66, 0xB7, 0xFF, 0x0F, 0x54, 0xFF, 0xFF, 0x0C, 0x64, 0xF7, 0xFF, 0x13, 0x63, 0xF8, 0xFF, - 0x1A, 0x61, 0xF9, 0xFF, 0x1E, 0x67, 0xEF, 0xFF, 0x22, 0x61, 0xFC, 0xFF, 0x25, 0x68, 0xFA, 0xFF, - 0x28, 0x6F, 0xF9, 0xFF, 0x22, 0x70, 0xF5, 0xFF, 0x1B, 0x72, 0xF2, 0xFF, 0x1F, 0x6B, 0xF2, 0xFF, - 0x24, 0x64, 0xF1, 0xFF, 0x21, 0x55, 0xFF, 0xFF, 0x1E, 0x53, 0xFF, 0xFF, 0x16, 0x4B, 0xFF, 0xFF, - 0x0E, 0x43, 0xFF, 0xFF, 0x5A, 0x61, 0xB1, 0xFF, 0xDF, 0x95, 0x1E, 0xFF, 0xF0, 0x9A, 0x12, 0xFF, - 0xE5, 0x9A, 0x1B, 0xFF, 0xE5, 0x9A, 0x18, 0xFF, 0xE6, 0x9A, 0x14, 0xFF, 0xE5, 0x98, 0x17, 0xFF, - 0xE4, 0x95, 0x1B, 0xFF, 0xE2, 0x95, 0x1A, 0xFF, 0xE0, 0x94, 0x19, 0xFF, 0xE1, 0x93, 0x18, 0xFF, - 0xE2, 0x92, 0x17, 0xFF, 0xE1, 0x91, 0x16, 0xFF, 0xE0, 0x90, 0x16, 0xFF, 0xDF, 0x8F, 0x15, 0xFF, - 0xDE, 0x8F, 0x14, 0xFF, 0xDF, 0x8E, 0x14, 0xFF, 0xE1, 0x8E, 0x14, 0xFF, 0xE0, 0x8C, 0x12, 0xFF, - 0xE0, 0x8A, 0x10, 0xFF, 0xDE, 0x88, 0x10, 0xFF, 0xDC, 0x86, 0x10, 0xFF, 0xE3, 0x8E, 0x17, 0xFF, - 0xDB, 0x87, 0x0D, 0xFF, 0xDB, 0x86, 0x0E, 0xFF, 0xDC, 0x86, 0x0F, 0xFF, 0xDC, 0x85, 0x0E, 0xFF, - 0xDB, 0x83, 0x0E, 0xFF, 0xDB, 0x83, 0x0E, 0xFF, 0xDB, 0x83, 0x0E, 0xFF, 0xDB, 0x83, 0x0E, 0xFF, - 0xEA, 0xB0, 0x36, 0xFF, 0xEF, 0xB3, 0x36, 0xFF, 0xED, 0xAE, 0x2E, 0xFF, 0xEC, 0xAD, 0x2C, 0xFF, - 0xEB, 0xAD, 0x2A, 0xFF, 0xEF, 0xB3, 0x40, 0xFF, 0xE9, 0xAA, 0x28, 0xFF, 0xE7, 0xAB, 0x2B, 0xFF, - 0xE6, 0xAB, 0x2F, 0xFF, 0xE6, 0xAA, 0x30, 0xFF, 0xE5, 0xAA, 0x31, 0xFF, 0xE6, 0xA9, 0x2E, 0xFF, - 0xE7, 0xA9, 0x2B, 0xFF, 0xEB, 0xA7, 0x24, 0xFF, 0x5F, 0x6A, 0x93, 0xFF, 0x05, 0x3D, 0xFF, 0xFF, - 0x17, 0x56, 0xF9, 0xFF, 0x12, 0x72, 0xE2, 0xFF, 0x29, 0x72, 0xF8, 0xFF, 0x27, 0x74, 0xF7, 0xFF, - 0x25, 0x76, 0xF6, 0xFF, 0x28, 0x76, 0xF1, 0xFF, 0x2A, 0x70, 0xF8, 0xFF, 0x2D, 0x77, 0xF8, 0xFF, - 0x30, 0x7D, 0xF9, 0xFF, 0x2D, 0x7F, 0xF7, 0xFF, 0x2A, 0x81, 0xF5, 0xFF, 0x2B, 0x7B, 0xF5, 0xFF, - 0x2C, 0x75, 0xF5, 0xFF, 0x2B, 0x6A, 0xFD, 0xFF, 0x2A, 0x64, 0xFA, 0xFF, 0x2C, 0x5D, 0xF5, 0xFF, - 0x2E, 0x57, 0xF0, 0xFF, 0x10, 0x48, 0xFF, 0xFF, 0x0E, 0x45, 0xFF, 0xFF, 0x7F, 0x76, 0x80, 0xFF, - 0xF0, 0xA7, 0x02, 0xFF, 0xEA, 0x95, 0x24, 0xFF, 0xE3, 0x9A, 0x19, 0xFF, 0xE4, 0x98, 0x1B, 0xFF, - 0xE4, 0x95, 0x1D, 0xFF, 0xE2, 0x95, 0x1B, 0xFF, 0xDF, 0x96, 0x19, 0xFF, 0xE1, 0x94, 0x18, 0xFF, - 0xE2, 0x93, 0x17, 0xFF, 0xE2, 0x92, 0x16, 0xFF, 0xE1, 0x92, 0x16, 0xFF, 0xE0, 0x91, 0x15, 0xFF, - 0xDF, 0x90, 0x15, 0xFF, 0xE0, 0x90, 0x15, 0xFF, 0xE2, 0x91, 0x15, 0xFF, 0xE1, 0x8E, 0x12, 0xFF, - 0xDF, 0x8C, 0x0F, 0xFF, 0xDF, 0x8B, 0x12, 0xFF, 0xDF, 0x8A, 0x14, 0xFF, 0xE2, 0x8D, 0x15, 0xFF, - 0xDC, 0x89, 0x0E, 0xFF, 0xDC, 0x88, 0x0E, 0xFF, 0xDD, 0x87, 0x0F, 0xFF, 0xDC, 0x86, 0x0E, 0xFF, - 0xDC, 0x85, 0x0E, 0xFF, 0xDC, 0x85, 0x0E, 0xFF, 0xDC, 0x85, 0x0E, 0xFF, 0xDC, 0x85, 0x0E, 0xFF, - 0xE6, 0xC0, 0x5F, 0xFF, 0xE8, 0xBE, 0x57, 0xFF, 0xE9, 0xBB, 0x4F, 0xFF, 0xE6, 0xBA, 0x4E, 0xFF, - 0xE3, 0xB9, 0x4D, 0xFF, 0xED, 0xB6, 0x50, 0xFF, 0xE7, 0xAE, 0x2D, 0xFF, 0xE6, 0xAC, 0x2E, 0xFF, - 0xE4, 0xAB, 0x2E, 0xFF, 0xE6, 0xAC, 0x2E, 0xFF, 0xE8, 0xAD, 0x2E, 0xFF, 0xE7, 0xAB, 0x2D, 0xFF, - 0xE5, 0xAA, 0x2C, 0xFF, 0xFF, 0xB2, 0x15, 0xFF, 0x10, 0x42, 0xEB, 0xFF, 0x16, 0x4F, 0xF1, 0xFF, - 0x1C, 0x5C, 0xF7, 0xFF, 0x23, 0x71, 0xF8, 0xFF, 0x29, 0x85, 0xF9, 0xFF, 0x2D, 0x88, 0xF6, 0xFF, - 0x30, 0x8B, 0xF3, 0xFF, 0x31, 0x85, 0xF4, 0xFF, 0x33, 0x7F, 0xF4, 0xFF, 0x35, 0x85, 0xF6, 0xFF, - 0x37, 0x8B, 0xF9, 0xFF, 0x38, 0x8D, 0xF8, 0xFF, 0x3A, 0x90, 0xF7, 0xFF, 0x37, 0x8B, 0xF8, 0xFF, - 0x35, 0x86, 0xF8, 0xFF, 0x35, 0x7E, 0xF7, 0xFF, 0x35, 0x75, 0xF6, 0xFF, 0x33, 0x6D, 0xF7, 0xFF, - 0x31, 0x64, 0xF7, 0xFF, 0x31, 0x5E, 0xF8, 0xFF, 0x30, 0x57, 0xF8, 0xFF, 0x25, 0x51, 0xFF, 0xFF, - 0x36, 0x51, 0xF5, 0xFF, 0xFD, 0xA4, 0x03, 0xFF, 0xE1, 0x9A, 0x1E, 0xFF, 0xE3, 0x98, 0x1E, 0xFF, - 0xE5, 0x96, 0x1E, 0xFF, 0xE2, 0x96, 0x1C, 0xFF, 0xDF, 0x97, 0x19, 0xFF, 0xE1, 0x96, 0x18, 0xFF, - 0xE3, 0x95, 0x17, 0xFF, 0xE2, 0x94, 0x16, 0xFF, 0xE1, 0x93, 0x16, 0xFF, 0xE0, 0x92, 0x16, 0xFF, - 0xE0, 0x91, 0x15, 0xFF, 0xE2, 0x92, 0x16, 0xFF, 0xE4, 0x93, 0x16, 0xFF, 0xE1, 0x90, 0x12, 0xFF, - 0xDF, 0x8E, 0x0F, 0xFF, 0xE1, 0x8D, 0x14, 0xFF, 0xE3, 0x8D, 0x18, 0xFF, 0xE0, 0x8C, 0x13, 0xFF, - 0xDE, 0x8B, 0x0F, 0xFF, 0xDD, 0x89, 0x0F, 0xFF, 0xDD, 0x88, 0x0E, 0xFF, 0xDD, 0x87, 0x0E, 0xFF, - 0xDC, 0x86, 0x0E, 0xFF, 0xDC, 0x86, 0x0E, 0xFF, 0xDC, 0x86, 0x0E, 0xFF, 0xDC, 0x86, 0x0E, 0xFF, - 0xED, 0xB6, 0x3C, 0xFF, 0xEE, 0xB3, 0x35, 0xFF, 0xEF, 0xB1, 0x2F, 0xFF, 0xED, 0xB1, 0x2F, 0xFF, - 0xEC, 0xB0, 0x2F, 0xFF, 0xEE, 0xB0, 0x38, 0xFF, 0xE9, 0xAE, 0x2D, 0xFF, 0xE7, 0xAD, 0x2F, 0xFF, - 0xE6, 0xAD, 0x30, 0xFF, 0xE8, 0xAE, 0x2F, 0xFF, 0xEA, 0xB0, 0x2D, 0xFF, 0xEC, 0xAD, 0x30, 0xFF, - 0xEE, 0xAF, 0x28, 0xFF, 0xC8, 0xA9, 0x2F, 0xFF, 0x04, 0x3D, 0xFF, 0xFF, 0x19, 0x50, 0xFA, 0xFF, - 0x21, 0x5F, 0xF8, 0xFF, 0x28, 0x73, 0xF7, 0xFF, 0x2F, 0x87, 0xF7, 0xFF, 0x37, 0x95, 0xFA, 0xFF, - 0x37, 0x9B, 0xF5, 0xFF, 0x3A, 0x96, 0xF5, 0xFF, 0x3D, 0x92, 0xF5, 0xFF, 0x3F, 0x94, 0xF7, 0xFF, - 0x41, 0x96, 0xF9, 0xFF, 0x43, 0x99, 0xF9, 0xFF, 0x46, 0x9D, 0xF9, 0xFF, 0x44, 0x98, 0xF8, 0xFF, - 0x43, 0x94, 0xF7, 0xFF, 0x42, 0x8D, 0xF8, 0xFF, 0x41, 0x86, 0xF9, 0xFF, 0x3F, 0x7D, 0xF9, 0xFF, - 0x3C, 0x73, 0xF9, 0xFF, 0x38, 0x70, 0xF7, 0xFF, 0x35, 0x6C, 0xF4, 0xFF, 0x21, 0x60, 0xFF, 0xFF, - 0x62, 0x6C, 0xBE, 0xFF, 0xEF, 0x9D, 0x12, 0xFF, 0xE8, 0x9A, 0x21, 0xFF, 0xED, 0x99, 0x1C, 0xFF, - 0xE3, 0x9B, 0x17, 0xFF, 0xF0, 0x98, 0x13, 0xFF, 0xE0, 0x94, 0x1B, 0xFF, 0xE1, 0x96, 0x1A, 0xFF, - 0xE3, 0x97, 0x19, 0xFF, 0xE4, 0x96, 0x18, 0xFF, 0xE5, 0x95, 0x17, 0xFF, 0xE3, 0x94, 0x18, 0xFF, - 0xE2, 0x93, 0x19, 0xFF, 0xE0, 0x91, 0x16, 0xFF, 0xDE, 0x90, 0x14, 0xFF, 0xE1, 0x91, 0x15, 0xFF, - 0xE5, 0x92, 0x16, 0xFF, 0xE3, 0x90, 0x14, 0xFF, 0xE2, 0x8D, 0x11, 0xFF, 0xE2, 0x8D, 0x10, 0xFF, - 0xE3, 0x8D, 0x0F, 0xFF, 0xDE, 0x8A, 0x10, 0xFF, 0xD8, 0x88, 0x11, 0xFF, 0xE1, 0x87, 0x0E, 0xFF, - 0xDC, 0x89, 0x0B, 0xFF, 0xE0, 0x85, 0x10, 0xFF, 0xE4, 0x87, 0x09, 0xFF, 0xE4, 0x87, 0x09, 0xFF, - 0xE8, 0xB5, 0x3F, 0xFF, 0xE9, 0xB3, 0x3B, 0xFF, 0xEA, 0xB2, 0x36, 0xFF, 0xE9, 0xB1, 0x37, 0xFF, - 0xE8, 0xB1, 0x37, 0xFF, 0xE9, 0xAF, 0x32, 0xFF, 0xEA, 0xAE, 0x2D, 0xFF, 0xE9, 0xAE, 0x30, 0xFF, - 0xE8, 0xAF, 0x32, 0xFF, 0xEA, 0xB1, 0x30, 0xFF, 0xEC, 0xB4, 0x2D, 0xFF, 0xF1, 0xAE, 0x34, 0xFF, - 0xF6, 0xB4, 0x24, 0xFF, 0x86, 0x7E, 0x8D, 0xFF, 0x00, 0x4E, 0xF6, 0xFF, 0x1D, 0x5C, 0xEC, 0xFF, - 0x25, 0x63, 0xF9, 0xFF, 0x2D, 0x76, 0xF7, 0xFF, 0x35, 0x89, 0xF4, 0xFF, 0x41, 0xA2, 0xFD, 0xFF, - 0x3E, 0xAB, 0xF6, 0xFF, 0x43, 0xA8, 0xF6, 0xFF, 0x47, 0xA4, 0xF7, 0xFF, 0x4A, 0xA3, 0xF8, 0xFF, - 0x4C, 0xA1, 0xFA, 0xFF, 0x4E, 0xA5, 0xFA, 0xFF, 0x51, 0xAA, 0xFB, 0xFF, 0x52, 0xA6, 0xF9, 0xFF, - 0x52, 0xA2, 0xF7, 0xFF, 0x4F, 0x9C, 0xFA, 0xFF, 0x4D, 0x97, 0xFD, 0xFF, 0x4A, 0x8D, 0xFC, 0xFF, - 0x47, 0x83, 0xFB, 0xFF, 0x40, 0x82, 0xF6, 0xFF, 0x39, 0x82, 0xF1, 0xFF, 0x2B, 0x72, 0xF4, 0xFF, - 0xAB, 0x8C, 0x71, 0xFF, 0xF0, 0x99, 0x16, 0xFF, 0xEF, 0x99, 0x25, 0xFF, 0xE8, 0x97, 0x25, 0xFF, - 0xC5, 0x9A, 0x26, 0xFF, 0xF0, 0x96, 0x16, 0xFF, 0xE2, 0x91, 0x1C, 0xFF, 0xE2, 0x96, 0x1B, 0xFF, - 0xE2, 0x9A, 0x1B, 0xFF, 0xE5, 0x99, 0x19, 0xFF, 0xE8, 0x98, 0x18, 0xFF, 0xE6, 0x96, 0x1A, 0xFF, - 0xE4, 0x95, 0x1C, 0xFF, 0xDF, 0x91, 0x17, 0xFF, 0xD9, 0x8D, 0x13, 0xFF, 0xE2, 0x92, 0x18, 0xFF, - 0xEA, 0x97, 0x1E, 0xFF, 0xE5, 0x92, 0x14, 0xFF, 0xE1, 0x8D, 0x0B, 0xFF, 0xE5, 0x8E, 0x0D, 0xFF, - 0xE9, 0x8F, 0x10, 0xFF, 0xDE, 0x8B, 0x12, 0xFF, 0xD4, 0x88, 0x14, 0xFF, 0xE6, 0x87, 0x0E, 0xFF, - 0xDC, 0x8C, 0x08, 0xFF, 0xE4, 0x84, 0x11, 0xFF, 0xEC, 0x88, 0x03, 0xFF, 0xEC, 0x88, 0x03, 0xFF, - 0xEA, 0xB6, 0x3D, 0xFF, 0xEA, 0xB5, 0x3A, 0xFF, 0xEB, 0xB4, 0x38, 0xFF, 0xEB, 0xB3, 0x37, 0xFF, - 0xEA, 0xB3, 0x37, 0xFF, 0xEB, 0xB2, 0x34, 0xFF, 0xEB, 0xB1, 0x32, 0xFF, 0xEB, 0xB1, 0x33, 0xFF, - 0xEA, 0xB0, 0x34, 0xFF, 0xE9, 0xB3, 0x32, 0xFF, 0xE8, 0xB5, 0x2F, 0xFF, 0xF0, 0xB0, 0x34, 0xFF, - 0xF8, 0xB6, 0x22, 0xFF, 0x44, 0x60, 0xC5, 0xFF, 0x0B, 0x53, 0xF9, 0xFF, 0x21, 0x63, 0xF2, 0xFF, - 0x29, 0x6F, 0xF6, 0xFF, 0x2F, 0x7D, 0xF6, 0xFF, 0x35, 0x8A, 0xF7, 0xFF, 0x41, 0xA1, 0xFA, 0xFF, - 0x45, 0xAF, 0xF6, 0xFF, 0x4F, 0xB4, 0xFA, 0xFF, 0x50, 0xB0, 0xF6, 0xFF, 0x53, 0xAE, 0xF8, 0xFF, - 0x56, 0xAC, 0xFA, 0xFF, 0x59, 0xB2, 0xFC, 0xFF, 0x5D, 0xB7, 0xFD, 0xFF, 0x5F, 0xB3, 0xFA, 0xFF, - 0x61, 0xAF, 0xF6, 0xFF, 0x5D, 0xAC, 0xF9, 0xFF, 0x59, 0xA9, 0xFD, 0xFF, 0x55, 0x9F, 0xFB, 0xFF, - 0x50, 0x94, 0xF8, 0xFF, 0x4A, 0x91, 0xF7, 0xFF, 0x44, 0x8D, 0xF5, 0xFF, 0x22, 0x7D, 0xFF, 0xFF, - 0xEF, 0xA5, 0x1A, 0xFF, 0xF3, 0x9E, 0x12, 0xFF, 0xF1, 0x96, 0x28, 0xFF, 0xB0, 0x9F, 0x22, 0xFF, - 0x00, 0x96, 0x6C, 0xFF, 0x82, 0x9B, 0x3B, 0xFF, 0xF8, 0x9D, 0x16, 0xFF, 0xF4, 0x9B, 0x15, 0xFF, - 0xE2, 0x9C, 0x14, 0xFF, 0xE4, 0x99, 0x15, 0xFF, 0xE6, 0x96, 0x17, 0xFF, 0xE5, 0x95, 0x18, 0xFF, - 0xE4, 0x93, 0x1A, 0xFF, 0xE2, 0x93, 0x18, 0xFF, 0xE0, 0x92, 0x16, 0xFF, 0xE6, 0x98, 0x1C, 0xFF, - 0xE4, 0x95, 0x19, 0xFF, 0xE4, 0x92, 0x16, 0xFF, 0xE5, 0x8F, 0x12, 0xFF, 0xEB, 0x8C, 0x12, 0xFF, - 0xE3, 0x8B, 0x12, 0xFF, 0xE3, 0x87, 0x00, 0xFF, 0xF4, 0x7B, 0x00, 0xFF, 0xD3, 0x86, 0x1A, 0xFF, - 0xF0, 0x8C, 0x0C, 0xFF, 0xE2, 0x8E, 0x00, 0xFF, 0xEA, 0x84, 0x0D, 0xFF, 0xF1, 0x86, 0x07, 0xFF, - 0xEC, 0xB7, 0x3B, 0xFF, 0xEC, 0xB6, 0x3A, 0xFF, 0xEC, 0xB6, 0x39, 0xFF, 0xEC, 0xB5, 0x38, 0xFF, - 0xED, 0xB5, 0x37, 0xFF, 0xEC, 0xB4, 0x37, 0xFF, 0xEC, 0xB4, 0x37, 0xFF, 0xEC, 0xB3, 0x36, 0xFF, - 0xEC, 0xB2, 0x36, 0xFF, 0xE8, 0xB4, 0x33, 0xFF, 0xE4, 0xB5, 0x31, 0xFF, 0xEF, 0xB1, 0x34, 0xFF, - 0xF9, 0xB8, 0x21, 0xFF, 0x02, 0x41, 0xFD, 0xFF, 0x1E, 0x58, 0xFC, 0xFF, 0x25, 0x6A, 0xF8, 0xFF, - 0x2C, 0x7C, 0xF3, 0xFF, 0x31, 0x84, 0xF6, 0xFF, 0x35, 0x8B, 0xF9, 0xFF, 0x41, 0xA0, 0xF7, 0xFF, - 0x4C, 0xB4, 0xF6, 0xFF, 0x5B, 0xC0, 0xFE, 0xFF, 0x59, 0xBC, 0xF6, 0xFF, 0x5D, 0xBA, 0xF8, 0xFF, - 0x60, 0xB7, 0xFA, 0xFF, 0x64, 0xBE, 0xFD, 0xFF, 0x69, 0xC4, 0xFF, 0xFF, 0x6C, 0xC0, 0xFA, 0xFF, - 0x6F, 0xBD, 0xF5, 0xFF, 0x6A, 0xBC, 0xF9, 0xFF, 0x65, 0xBB, 0xFD, 0xFF, 0x60, 0xB1, 0xFA, 0xFF, - 0x5A, 0xA6, 0xF6, 0xFF, 0x54, 0x9F, 0xF8, 0xFF, 0x4F, 0x98, 0xFA, 0xFF, 0x6E, 0x94, 0xDF, 0xFF, - 0xFB, 0xA6, 0x07, 0xFF, 0xDA, 0x9C, 0x24, 0xFF, 0xF2, 0x9F, 0x14, 0xFF, 0x71, 0xA1, 0x4A, 0xFF, - 0x0D, 0xA9, 0x68, 0xFF, 0x06, 0xA3, 0x61, 0xFF, 0x1B, 0x98, 0x5A, 0xFF, 0x9B, 0x96, 0x33, 0xFF, - 0xFE, 0x99, 0x0D, 0xFF, 0xF1, 0x96, 0x11, 0xFF, 0xE4, 0x94, 0x16, 0xFF, 0xE4, 0x93, 0x17, 0xFF, - 0xE4, 0x91, 0x18, 0xFF, 0xE5, 0x94, 0x19, 0xFF, 0xE6, 0x98, 0x1A, 0xFF, 0xEA, 0x9D, 0x1F, 0xFF, - 0xDE, 0x93, 0x15, 0xFF, 0xE3, 0x92, 0x17, 0xFF, 0xE8, 0x91, 0x1A, 0xFF, 0xEB, 0x94, 0x1F, 0xFF, - 0xD1, 0x9D, 0x25, 0xFF, 0x72, 0xF7, 0xD0, 0xFF, 0x95, 0xF2, 0xC1, 0xFF, 0xF0, 0x83, 0x00, 0xFF, - 0xA0, 0x81, 0x17, 0xFF, 0x2E, 0x7E, 0x3B, 0xFF, 0xCB, 0x87, 0x16, 0xFF, 0xDA, 0x8A, 0x0B, 0xFF, - 0xEC, 0xB8, 0x3D, 0xFF, 0xED, 0xB8, 0x3C, 0xFF, 0xED, 0xB7, 0x3B, 0xFF, 0xED, 0xB7, 0x3A, 0xFF, - 0xED, 0xB6, 0x39, 0xFF, 0xED, 0xB6, 0x39, 0xFF, 0xED, 0xB6, 0x39, 0xFF, 0xED, 0xB6, 0x39, 0xFF, - 0xED, 0xB6, 0x39, 0xFF, 0xEC, 0xB4, 0x37, 0xFF, 0xEB, 0xB2, 0x34, 0xFF, 0xF2, 0xAB, 0x34, 0xFF, - 0xB3, 0x95, 0x6D, 0xFF, 0x00, 0x46, 0xFF, 0xFF, 0x20, 0x64, 0xF7, 0xFF, 0x28, 0x73, 0xF6, 0xFF, - 0x30, 0x81, 0xF5, 0xFF, 0x37, 0x8B, 0xF6, 0xFF, 0x3D, 0x94, 0xF8, 0xFF, 0x48, 0xA6, 0xF8, 0xFF, - 0x53, 0xB7, 0xF7, 0xFF, 0x60, 0xC2, 0xFB, 0xFF, 0x65, 0xC4, 0xF7, 0xFF, 0x69, 0xC3, 0xF9, 0xFF, - 0x6D, 0xC2, 0xFA, 0xFF, 0x72, 0xC6, 0xFA, 0xFF, 0x77, 0xCB, 0xFA, 0xFF, 0x7A, 0xCB, 0xFB, 0xFF, - 0x7D, 0xCB, 0xFC, 0xFF, 0x7A, 0xC8, 0xFA, 0xFF, 0x77, 0xC5, 0xF8, 0xFF, 0x72, 0xBC, 0xF9, 0xFF, - 0x6C, 0xB4, 0xFA, 0xFF, 0x68, 0xB0, 0xF6, 0xFF, 0x56, 0xAA, 0xFD, 0xFF, 0xA5, 0xA0, 0x93, 0xFF, - 0xF3, 0xA1, 0x13, 0xFF, 0xEF, 0x9C, 0x21, 0xFF, 0xFF, 0x9D, 0x19, 0xFF, 0x23, 0xC1, 0x71, 0xFF, - 0x25, 0xB7, 0x79, 0xFF, 0x1D, 0xB2, 0x71, 0xFF, 0x23, 0xAA, 0x6A, 0xFF, 0x25, 0xA0, 0x66, 0xFF, - 0x18, 0x9A, 0x63, 0xFF, 0x72, 0x9C, 0x41, 0xFF, 0xCB, 0x9F, 0x1E, 0xFF, 0xFF, 0x93, 0x18, 0xFF, - 0xF1, 0x98, 0x13, 0xFF, 0xF4, 0x9C, 0x18, 0xFF, 0xF7, 0xA0, 0x1D, 0xFF, 0xFF, 0x9C, 0x1B, 0xFF, - 0xF6, 0x93, 0x10, 0xFF, 0xF1, 0x93, 0x11, 0xFF, 0xEC, 0x93, 0x13, 0xFF, 0xFF, 0x83, 0x00, 0xFF, - 0xA0, 0xCB, 0x72, 0xFF, 0x81, 0xF9, 0xCB, 0xFF, 0xAC, 0xFF, 0xD0, 0xFF, 0x45, 0xA0, 0x78, 0xFF, - 0x00, 0x77, 0x33, 0xFF, 0x02, 0x7C, 0x3A, 0xFF, 0xE2, 0x8C, 0x0D, 0xFF, 0xDB, 0x8E, 0x0D, 0xFF, - 0xED, 0xBA, 0x3E, 0xFF, 0xED, 0xB9, 0x3D, 0xFF, 0xED, 0xB9, 0x3C, 0xFF, 0xED, 0xB8, 0x3B, 0xFF, - 0xED, 0xB8, 0x3A, 0xFF, 0xED, 0xB8, 0x3B, 0xFF, 0xED, 0xB8, 0x3B, 0xFF, 0xEE, 0xB8, 0x3C, 0xFF, - 0xEE, 0xB9, 0x3C, 0xFF, 0xF0, 0xB4, 0x3A, 0xFF, 0xF2, 0xAE, 0x37, 0xFF, 0xFE, 0xB3, 0x32, 0xFF, - 0x7C, 0x8E, 0xB3, 0xFF, 0x06, 0x58, 0xFF, 0xFF, 0x22, 0x71, 0xF3, 0xFF, 0x2B, 0x7C, 0xF4, 0xFF, - 0x34, 0x86, 0xF6, 0xFF, 0x3D, 0x92, 0xF7, 0xFF, 0x45, 0x9D, 0xF8, 0xFF, 0x4F, 0xAC, 0xF8, 0xFF, - 0x5A, 0xBB, 0xF8, 0xFF, 0x65, 0xC4, 0xF9, 0xFF, 0x70, 0xCC, 0xF9, 0xFF, 0x75, 0xCC, 0xFA, 0xFF, - 0x7A, 0xCC, 0xFA, 0xFF, 0x80, 0xCF, 0xF7, 0xFF, 0x85, 0xD2, 0xF4, 0xFF, 0x89, 0xD5, 0xFB, 0xFF, - 0x8C, 0xD9, 0xFF, 0xFF, 0x8B, 0xD3, 0xFA, 0xFF, 0x89, 0xCE, 0xF2, 0xFF, 0x84, 0xC8, 0xF8, 0xFF, - 0x7F, 0xC1, 0xFE, 0xFF, 0x7C, 0xC1, 0xF4, 0xFF, 0x5E, 0xBC, 0xFF, 0xFF, 0xDB, 0xAB, 0x47, 0xFF, - 0xEA, 0x9C, 0x1E, 0xFF, 0xE8, 0xA2, 0x1D, 0xFF, 0xE5, 0xA7, 0x1D, 0xFF, 0x1B, 0xD3, 0x98, 0xFF, - 0x21, 0xCB, 0x8A, 0xFF, 0x26, 0xC3, 0x82, 0xFF, 0x2C, 0xBB, 0x7A, 0xFF, 0x28, 0xB4, 0x75, 0xFF, - 0x25, 0xAD, 0x70, 0xFF, 0x16, 0xAB, 0x6D, 0xFF, 0x08, 0xA9, 0x6A, 0xFF, 0x11, 0xA9, 0x5E, 0xFF, - 0x53, 0x9E, 0x51, 0xFF, 0x6D, 0x9B, 0x47, 0xFF, 0x87, 0x97, 0x3E, 0xFF, 0x91, 0x95, 0x3B, 0xFF, - 0x80, 0x98, 0x38, 0xFF, 0x63, 0x96, 0x44, 0xFF, 0x45, 0x94, 0x4F, 0xFF, 0x3C, 0xB4, 0x82, 0xFF, - 0x1B, 0x84, 0x4F, 0xFF, 0x87, 0xE0, 0xAF, 0xFF, 0x82, 0xCC, 0x9E, 0xFF, 0x11, 0x7F, 0x35, 0xFF, - 0x1B, 0x82, 0x42, 0xFF, 0x3B, 0x84, 0x32, 0xFF, 0xF9, 0x92, 0x04, 0xFF, 0xDC, 0x92, 0x0F, 0xFF, - 0xEE, 0xBC, 0x40, 0xFF, 0xED, 0xBB, 0x3F, 0xFF, 0xED, 0xBA, 0x3E, 0xFF, 0xED, 0xBA, 0x3D, 0xFF, - 0xEC, 0xB9, 0x3C, 0xFF, 0xEC, 0xB9, 0x3C, 0xFF, 0xEC, 0xB8, 0x3C, 0xFF, 0xEC, 0xB8, 0x3C, 0xFF, - 0xEB, 0xB8, 0x3C, 0xFF, 0xF0, 0xB3, 0x3F, 0xFF, 0xF4, 0xAF, 0x42, 0xFF, 0xE8, 0xBA, 0x0D, 0xFF, - 0x96, 0xB8, 0xFF, 0xFF, 0x4C, 0x81, 0xF6, 0xFF, 0x22, 0x75, 0xF5, 0xFF, 0x2D, 0x80, 0xF6, 0xFF, - 0x38, 0x8B, 0xF7, 0xFF, 0x42, 0x99, 0xF7, 0xFF, 0x4D, 0xA6, 0xF7, 0xFF, 0x56, 0xB2, 0xF8, 0xFF, - 0x5F, 0xBD, 0xF9, 0xFF, 0x6D, 0xC8, 0xF9, 0xFF, 0x7A, 0xD4, 0xFA, 0xFF, 0x81, 0xD5, 0xFA, 0xFF, - 0x88, 0xD7, 0xF9, 0xFF, 0x8D, 0xD8, 0xFA, 0xFF, 0x92, 0xDA, 0xFB, 0xFF, 0xA1, 0xE4, 0xF9, 0xFF, - 0x91, 0xD6, 0xFE, 0xFF, 0x9F, 0xDE, 0xFA, 0xFF, 0x97, 0xDB, 0xF8, 0xFF, 0x93, 0xD5, 0xF9, 0xFF, - 0x8F, 0xCF, 0xFB, 0xFF, 0x85, 0xD1, 0xFF, 0xFF, 0x78, 0xC6, 0xFF, 0xFF, 0xFC, 0x9A, 0x00, 0xFF, - 0xF1, 0xA8, 0x26, 0xFF, 0xF8, 0xA4, 0x1F, 0xFF, 0xA5, 0xBD, 0x53, 0xFF, 0x30, 0xDA, 0xA4, 0xFF, - 0x37, 0xD5, 0x9D, 0xFF, 0x3A, 0xD0, 0x97, 0xFF, 0x3D, 0xCA, 0x90, 0xFF, 0x39, 0xC5, 0x8A, 0xFF, - 0x35, 0xBF, 0x84, 0xFF, 0x30, 0xBD, 0x7C, 0xFF, 0x2C, 0xBC, 0x74, 0xFF, 0x1B, 0xB8, 0x75, 0xFF, - 0x27, 0xAF, 0x77, 0xFF, 0x25, 0xAB, 0x72, 0xFF, 0x23, 0xA7, 0x6D, 0xFF, 0x28, 0xA3, 0x6A, 0xFF, - 0x1E, 0xA2, 0x68, 0xFF, 0x19, 0x95, 0x57, 0xFF, 0x45, 0xB7, 0x77, 0xFF, 0x81, 0xF0, 0xBA, 0xFF, - 0x4C, 0xAC, 0x72, 0xFF, 0x14, 0x7B, 0x41, 0xFF, 0x1D, 0x8A, 0x4F, 0xFF, 0x1C, 0x86, 0x42, 0xFF, - 0x14, 0x86, 0x49, 0xFF, 0x8B, 0x86, 0x16, 0xFF, 0xF5, 0x90, 0x0A, 0xFF, 0xE7, 0x8D, 0x15, 0xFF, - 0xEF, 0xBE, 0x41, 0xFF, 0xEE, 0xBD, 0x40, 0xFF, 0xED, 0xBC, 0x3F, 0xFF, 0xED, 0xBB, 0x3E, 0xFF, - 0xEC, 0xBA, 0x3D, 0xFF, 0xEB, 0xBA, 0x3D, 0xFF, 0xEA, 0xB9, 0x3C, 0xFF, 0xE9, 0xB8, 0x3C, 0xFF, - 0xE8, 0xB7, 0x3B, 0xFF, 0xF0, 0xB9, 0x39, 0xFF, 0xF7, 0xBA, 0x37, 0xFF, 0xDC, 0xB5, 0x50, 0xFF, - 0x44, 0x96, 0xFF, 0xFF, 0x9C, 0xC4, 0xFE, 0xFF, 0x23, 0x79, 0xF7, 0xFF, 0x30, 0x85, 0xF8, 0xFF, - 0x3C, 0x91, 0xF8, 0xFF, 0x48, 0xA0, 0xF8, 0xFF, 0x55, 0xAF, 0xF7, 0xFF, 0x5D, 0xB7, 0xF8, 0xFF, - 0x65, 0xBF, 0xF9, 0xFF, 0x75, 0xCD, 0xFA, 0xFF, 0x85, 0xDB, 0xFB, 0xFF, 0x8D, 0xDE, 0xFA, 0xFF, - 0x95, 0xE1, 0xF9, 0xFF, 0x9A, 0xE1, 0xFD, 0xFF, 0xA0, 0xE2, 0xFF, 0xFF, 0xA3, 0xE8, 0xFA, 0xFF, - 0x6B, 0xBD, 0xFF, 0xFF, 0x9E, 0xDE, 0xFC, 0xFF, 0xA6, 0xE8, 0xFF, 0xFF, 0xA3, 0xE3, 0xFB, 0xFF, - 0xA0, 0xDE, 0xF7, 0xFF, 0x99, 0xD7, 0xFD, 0xFF, 0xAB, 0xBD, 0xB5, 0xFF, 0xF0, 0x9F, 0x11, 0xFF, - 0xE8, 0xA3, 0x1D, 0xFF, 0xFF, 0x9E, 0x19, 0xFF, 0x65, 0xD4, 0x89, 0xFF, 0x45, 0xE1, 0xB0, 0xFF, - 0x4D, 0xDF, 0xB0, 0xFF, 0x4D, 0xDC, 0xAB, 0xFF, 0x4D, 0xD8, 0xA7, 0xFF, 0x49, 0xD5, 0xA0, 0xFF, - 0x44, 0xD2, 0x99, 0xFF, 0x3C, 0xCD, 0x97, 0xFF, 0x34, 0xC9, 0x94, 0xFF, 0x34, 0xC4, 0x8D, 0xFF, - 0x33, 0xC0, 0x86, 0xFF, 0x32, 0xBC, 0x7A, 0xFF, 0x31, 0xB7, 0x6E, 0xFF, 0x2F, 0xB2, 0x6D, 0xFF, - 0x2E, 0xAE, 0x6B, 0xFF, 0x3F, 0xB9, 0x7D, 0xFF, 0x30, 0xA5, 0x6F, 0xFF, 0x4E, 0xB5, 0x7B, 0xFF, - 0x20, 0x9A, 0x56, 0xFF, 0x2A, 0x9F, 0x5B, 0xFF, 0x24, 0x93, 0x50, 0xFF, 0x65, 0xB9, 0x80, 0xFF, - 0x1C, 0x99, 0x5F, 0xFF, 0xE2, 0x8F, 0x03, 0xFF, 0xF2, 0x8E, 0x10, 0xFF, 0xF2, 0x88, 0x1B, 0xFF, - 0xEF, 0xBF, 0x43, 0xFF, 0xEE, 0xBE, 0x42, 0xFF, 0xEE, 0xBD, 0x41, 0xFF, 0xEE, 0xBD, 0x40, 0xFF, - 0xED, 0xBC, 0x3F, 0xFF, 0xEC, 0xBB, 0x3F, 0xFF, 0xEB, 0xB9, 0x3F, 0xFF, 0xEC, 0xB9, 0x3D, 0xFF, - 0xEE, 0xB8, 0x3C, 0xFF, 0xEB, 0xB8, 0x37, 0xFF, 0xF6, 0xBC, 0x26, 0xFF, 0x8F, 0x9B, 0x94, 0xFF, - 0x37, 0x96, 0xFB, 0xFF, 0x7C, 0xBB, 0xF9, 0xFF, 0x85, 0xB5, 0xF8, 0xFF, 0x49, 0x99, 0xF6, 0xFF, - 0x42, 0x9B, 0xF5, 0xFF, 0x4E, 0xA6, 0xF6, 0xFF, 0x59, 0xB2, 0xF7, 0xFF, 0x65, 0xBC, 0xF8, 0xFF, - 0x72, 0xC6, 0xF9, 0xFF, 0x7F, 0xD3, 0xF9, 0xFF, 0x8D, 0xE0, 0xFA, 0xFF, 0x97, 0xE5, 0xF9, 0xFF, - 0xA1, 0xEB, 0xF8, 0xFF, 0xA6, 0xEA, 0xFE, 0xFF, 0xAA, 0xEA, 0xFF, 0xFF, 0xA8, 0xEE, 0xFC, 0xFF, - 0x62, 0xBA, 0xF9, 0xFF, 0x98, 0xDC, 0xFA, 0xFF, 0xB9, 0xF3, 0xFE, 0xFF, 0xB2, 0xEC, 0xFB, 0xFF, - 0xAB, 0xE5, 0xF7, 0xFF, 0xA2, 0xE4, 0xFE, 0xFF, 0xD1, 0xB0, 0x64, 0xFF, 0xF0, 0x9F, 0x19, 0xFF, - 0xE8, 0x9E, 0x26, 0xFF, 0xF2, 0x98, 0x03, 0xFF, 0x50, 0xEF, 0xE3, 0xFF, 0x57, 0xEE, 0xD5, 0xFF, - 0x64, 0xE3, 0xBF, 0xFF, 0x64, 0xE1, 0xBC, 0xFF, 0x64, 0xDF, 0xB9, 0xFF, 0x5D, 0xDD, 0xB4, 0xFF, - 0x56, 0xDB, 0xB0, 0xFF, 0x4E, 0xD7, 0xA9, 0xFF, 0x46, 0xD3, 0xA2, 0xFF, 0x42, 0xD0, 0x9B, 0xFF, - 0x3F, 0xCD, 0x93, 0xFF, 0x3D, 0xC9, 0x8B, 0xFF, 0x3C, 0xC5, 0x84, 0xFF, 0x39, 0xC1, 0x80, 0xFF, - 0x36, 0xBC, 0x7D, 0xFF, 0x45, 0xC7, 0x8A, 0xFF, 0x44, 0xC1, 0x88, 0xFF, 0x2B, 0xA0, 0x62, 0xFF, - 0x2B, 0xA9, 0x64, 0xFF, 0x2D, 0xA3, 0x5E, 0xFF, 0x26, 0x95, 0x4F, 0xFF, 0x98, 0xCE, 0xA4, 0xFF, - 0xDC, 0xEA, 0xD8, 0xFF, 0xFF, 0xDC, 0xB9, 0xFF, 0xF3, 0x9D, 0x38, 0xFF, 0xD3, 0x8F, 0x00, 0xFF, - 0xEF, 0xC1, 0x45, 0xFF, 0xEF, 0xC0, 0x44, 0xFF, 0xEF, 0xBF, 0x43, 0xFF, 0xEF, 0xBE, 0x41, 0xFF, - 0xEF, 0xBD, 0x40, 0xFF, 0xED, 0xBC, 0x41, 0xFF, 0xEB, 0xBA, 0x42, 0xFF, 0xEF, 0xBA, 0x3F, 0xFF, - 0xF3, 0xB9, 0x3C, 0xFF, 0xE6, 0xB8, 0x34, 0xFF, 0xF6, 0xBD, 0x16, 0xFF, 0x4F, 0x7F, 0xD8, 0xFF, - 0x46, 0x90, 0xF7, 0xFF, 0x54, 0xA5, 0xF7, 0xFF, 0xBA, 0xDA, 0xFF, 0xFF, 0x4D, 0xA1, 0xF8, 0xFF, - 0x49, 0xA5, 0xF3, 0xFF, 0x53, 0xAD, 0xF4, 0xFF, 0x5D, 0xB5, 0xF6, 0xFF, 0x6E, 0xC0, 0xF8, 0xFF, - 0x7F, 0xCC, 0xFA, 0xFF, 0x8A, 0xD8, 0xF9, 0xFF, 0x95, 0xE4, 0xF8, 0xFF, 0xA1, 0xEC, 0xF8, 0xFF, - 0xAE, 0xF4, 0xF7, 0xFF, 0xB2, 0xF3, 0xFE, 0xFF, 0xB5, 0xF1, 0xFF, 0xFF, 0xAD, 0xF4, 0xFE, 0xFF, - 0x59, 0xB6, 0xF3, 0xFF, 0x92, 0xDA, 0xF8, 0xFF, 0xCC, 0xFF, 0xFE, 0xFF, 0xC1, 0xF6, 0xFA, 0xFF, - 0xB6, 0xED, 0xF7, 0xFF, 0xAB, 0xF1, 0xFF, 0xFF, 0xF7, 0xA4, 0x13, 0xFF, 0xEF, 0xA4, 0x15, 0xFF, - 0xE8, 0xA5, 0x18, 0xFF, 0xCD, 0xB4, 0x56, 0xFF, 0x71, 0xF2, 0xF0, 0xFF, 0x84, 0xEF, 0xD4, 0xFF, - 0x7B, 0xE6, 0xCF, 0xFF, 0x7B, 0xE6, 0xCD, 0xFF, 0x7C, 0xE6, 0xCB, 0xFF, 0x71, 0xE5, 0xC9, 0xFF, - 0x67, 0xE5, 0xC6, 0xFF, 0x5F, 0xE1, 0xBC, 0xFF, 0x57, 0xDD, 0xB1, 0xFF, 0x51, 0xDB, 0xA8, 0xFF, - 0x4B, 0xDA, 0xA0, 0xFF, 0x48, 0xD7, 0x9C, 0xFF, 0x46, 0xD4, 0x99, 0xFF, 0x42, 0xCF, 0x94, 0xFF, - 0x3E, 0xCA, 0x8F, 0xFF, 0x3B, 0xC4, 0x88, 0xFF, 0x39, 0xBE, 0x81, 0xFF, 0x30, 0xB3, 0x72, 0xFF, - 0x27, 0xA8, 0x62, 0xFF, 0x27, 0xA0, 0x58, 0xFF, 0x27, 0x97, 0x4E, 0xFF, 0x79, 0xC4, 0x9F, 0xFF, - 0xF7, 0xFB, 0xFF, 0xFF, 0xF4, 0xD2, 0x7F, 0xFF, 0xE1, 0x8E, 0x03, 0xFF, 0xE1, 0x89, 0x0E, 0xFF, - 0xEF, 0xC3, 0x47, 0xFF, 0xEF, 0xC2, 0x46, 0xFF, 0xEF, 0xC0, 0x44, 0xFF, 0xEF, 0xBF, 0x43, 0xFF, - 0xF0, 0xBE, 0x41, 0xFF, 0xEE, 0xBD, 0x42, 0xFF, 0xEC, 0xBC, 0x43, 0xFF, 0xEF, 0xBC, 0x40, 0xFF, - 0xF1, 0xBB, 0x3E, 0xFF, 0xFD, 0xC0, 0x2F, 0xFF, 0xFB, 0xBD, 0x35, 0xFF, 0x00, 0x4B, 0xF5, 0xFF, - 0x52, 0x8A, 0xFF, 0xFF, 0x5D, 0xA5, 0xFA, 0xFF, 0x8D, 0xC4, 0xFC, 0xFF, 0x85, 0xC1, 0xFB, 0xFF, - 0x50, 0xAD, 0xF5, 0xFF, 0x5E, 0xB6, 0xF7, 0xFF, 0x6B, 0xBE, 0xF9, 0xFF, 0x78, 0xC9, 0xFA, 0xFF, - 0x85, 0xD4, 0xFB, 0xFF, 0x97, 0xDE, 0xFE, 0xFF, 0xAA, 0xE8, 0xFF, 0xFF, 0xAD, 0xEE, 0xFD, 0xFF, - 0xB1, 0xF4, 0xF9, 0xFF, 0xB9, 0xF5, 0xFC, 0xFF, 0xC2, 0xF6, 0xFE, 0xFF, 0xB2, 0xF0, 0xFB, 0xFF, - 0x6E, 0xCB, 0xF6, 0xFF, 0x91, 0xDE, 0xFB, 0xFF, 0xCA, 0xFC, 0xFC, 0xFF, 0xD0, 0xFB, 0xFF, 0xFF, - 0xC8, 0xFC, 0xFF, 0xFF, 0xC7, 0xE3, 0xCA, 0xFF, 0xF2, 0xA1, 0x15, 0xFF, 0xEE, 0xA3, 0x1D, 0xFF, - 0xF1, 0xA1, 0x11, 0xFF, 0xB9, 0xD4, 0x9E, 0xFF, 0x8B, 0xF1, 0xEA, 0xFF, 0x95, 0xEF, 0xDC, 0xFF, - 0x90, 0xEB, 0xD9, 0xFF, 0x92, 0xEB, 0xD9, 0xFF, 0x94, 0xEC, 0xD8, 0xFF, 0x8B, 0xEB, 0xD6, 0xFF, - 0x82, 0xEA, 0xD3, 0xFF, 0x78, 0xE6, 0xC9, 0xFF, 0x6F, 0xE3, 0xBF, 0xFF, 0x68, 0xE2, 0xB8, 0xFF, - 0x61, 0xE2, 0xB1, 0xFF, 0x5D, 0xE0, 0xAE, 0xFF, 0x5A, 0xDE, 0xAC, 0xFF, 0x51, 0xD9, 0xA2, 0xFF, - 0x48, 0xD3, 0x98, 0xFF, 0x41, 0xCB, 0x8E, 0xFF, 0x39, 0xC3, 0x83, 0xFF, 0x32, 0xB7, 0x74, 0xFF, - 0x2C, 0xAC, 0x66, 0xFF, 0x29, 0xA2, 0x5D, 0xFF, 0x26, 0x99, 0x54, 0xFF, 0x21, 0x93, 0x4A, 0xFF, - 0xB9, 0x99, 0x23, 0xFF, 0xFE, 0x93, 0x15, 0xFF, 0xD8, 0x92, 0x09, 0xFF, 0xD8, 0x8F, 0x0F, 0xFF, - 0xEF, 0xC4, 0x49, 0xFF, 0xEF, 0xC3, 0x47, 0xFF, 0xF0, 0xC2, 0x46, 0xFF, 0xF0, 0xC1, 0x44, 0xFF, - 0xF1, 0xC0, 0x42, 0xFF, 0xEF, 0xBF, 0x43, 0xFF, 0xED, 0xBE, 0x43, 0xFF, 0xEE, 0xBE, 0x42, 0xFF, - 0xF0, 0xBD, 0x41, 0xFF, 0xF0, 0xBA, 0x37, 0xFF, 0xB7, 0xA1, 0x71, 0xFF, 0x1D, 0x5D, 0xFE, 0xFF, - 0x31, 0x79, 0xF8, 0xFF, 0x51, 0xA1, 0xF5, 0xFF, 0x60, 0xAD, 0xF8, 0xFF, 0xBC, 0xE0, 0xFE, 0xFF, - 0x57, 0xB6, 0xF7, 0xFF, 0x68, 0xBF, 0xF9, 0xFF, 0x79, 0xC8, 0xFC, 0xFF, 0x82, 0xD2, 0xFC, 0xFF, - 0x8B, 0xDB, 0xFC, 0xFF, 0x8F, 0xDE, 0xFB, 0xFF, 0x92, 0xE0, 0xFB, 0xFF, 0xA3, 0xEA, 0xFA, 0xFF, - 0xB4, 0xF4, 0xFA, 0xFF, 0xC1, 0xF8, 0xF9, 0xFF, 0xCE, 0xFB, 0xF8, 0xFF, 0xB6, 0xEB, 0xF9, 0xFF, - 0x83, 0xE1, 0xFA, 0xFF, 0x8F, 0xE2, 0xFD, 0xFF, 0xC7, 0xF9, 0xFB, 0xFF, 0xD7, 0xF8, 0xFC, 0xFF, - 0xCA, 0xFC, 0xFE, 0xFF, 0xDC, 0xCD, 0x8B, 0xFF, 0xED, 0x9F, 0x18, 0xFF, 0xED, 0xA3, 0x24, 0xFF, - 0xFA, 0x9D, 0x0A, 0xFF, 0xA5, 0xF5, 0xE7, 0xFF, 0xA5, 0xF1, 0xE4, 0xFF, 0xA5, 0xF0, 0xE4, 0xFF, - 0xA6, 0xEF, 0xE3, 0xFF, 0xA9, 0xF0, 0xE4, 0xFF, 0xAD, 0xF2, 0xE6, 0xFF, 0xA5, 0xF0, 0xE3, 0xFF, - 0x9E, 0xEF, 0xE0, 0xFF, 0x92, 0xEC, 0xD6, 0xFF, 0x87, 0xE9, 0xCD, 0xFF, 0x7F, 0xE9, 0xC7, 0xFF, - 0x78, 0xEA, 0xC2, 0xFF, 0x72, 0xEA, 0xC1, 0xFF, 0x6D, 0xE9, 0xC0, 0xFF, 0x60, 0xE3, 0xB1, 0xFF, - 0x53, 0xDD, 0xA2, 0xFF, 0x46, 0xD2, 0x94, 0xFF, 0x3A, 0xC8, 0x86, 0xFF, 0x35, 0xBC, 0x77, 0xFF, - 0x30, 0xB0, 0x69, 0xFF, 0x2B, 0xA5, 0x62, 0xFF, 0x26, 0x9B, 0x5B, 0xFF, 0x09, 0x91, 0x57, 0xFF, - 0xFB, 0x94, 0x09, 0xFF, 0xE5, 0x95, 0x0C, 0xFF, 0xEB, 0x91, 0x0F, 0xFF, 0xEB, 0x91, 0x0F, 0xFF, - 0xEF, 0xC5, 0x4A, 0xFF, 0xF0, 0xC4, 0x48, 0xFF, 0xF0, 0xC3, 0x47, 0xFF, 0xF1, 0xC2, 0x45, 0xFF, - 0xF1, 0xC1, 0x43, 0xFF, 0xF1, 0xC1, 0x41, 0xFF, 0xF1, 0xC1, 0x3F, 0xFF, 0xF0, 0xBE, 0x3F, 0xFF, - 0xEF, 0xBC, 0x3F, 0xFF, 0xFD, 0xC2, 0x32, 0xFF, 0x6E, 0x7F, 0xBD, 0xFF, 0x26, 0x65, 0xFE, 0xFF, - 0x34, 0x7B, 0xF5, 0xFF, 0x4C, 0x9A, 0xF5, 0xFF, 0x5C, 0xAB, 0xF8, 0xFF, 0x9F, 0xD0, 0xFA, 0xFF, - 0x83, 0xC6, 0xF7, 0xFF, 0x6A, 0xC1, 0xFD, 0xFF, 0x7E, 0xD1, 0xFD, 0xFF, 0x87, 0xDB, 0xFB, 0xFF, - 0x8F, 0xE5, 0xF9, 0xFF, 0x9A, 0xEC, 0xF8, 0xFF, 0xA5, 0xF4, 0xF7, 0xFF, 0x99, 0xEA, 0xFB, 0xFF, - 0x8E, 0xDF, 0xFF, 0xFF, 0x9F, 0xE2, 0xFB, 0xFF, 0xB1, 0xE6, 0xF7, 0xFF, 0xCC, 0xED, 0xFB, 0xFF, - 0xCA, 0xFA, 0xFF, 0xFF, 0xC6, 0xF2, 0xFF, 0xFF, 0xC2, 0xF0, 0xFC, 0xFF, 0xD2, 0xF5, 0xFE, 0xFF, - 0xD3, 0xFC, 0xFF, 0xFF, 0xE6, 0xB5, 0x4B, 0xFF, 0xED, 0xA4, 0x20, 0xFF, 0xED, 0xA2, 0x1B, 0xFF, - 0xE2, 0xAA, 0x3D, 0xFF, 0xAB, 0xF6, 0xEE, 0xFF, 0xB1, 0xF1, 0xE5, 0xFF, 0xB4, 0xF2, 0xE7, 0xFF, - 0xB8, 0xF3, 0xE9, 0xFF, 0xBA, 0xF3, 0xE9, 0xFF, 0xBC, 0xF4, 0xEA, 0xFF, 0xB5, 0xF3, 0xE8, 0xFF, - 0xAF, 0xF2, 0xE5, 0xFF, 0xA8, 0xF0, 0xE0, 0xFF, 0xA1, 0xED, 0xDA, 0xFF, 0x99, 0xEF, 0xD5, 0xFF, - 0x91, 0xF0, 0xD0, 0xFF, 0x82, 0xED, 0xC8, 0xFF, 0x72, 0xEA, 0xC0, 0xFF, 0x61, 0xE3, 0xB0, 0xFF, - 0x50, 0xDC, 0xA0, 0xFF, 0x47, 0xD3, 0x94, 0xFF, 0x3E, 0xCA, 0x88, 0xFF, 0x38, 0xBF, 0x7B, 0xFF, - 0x32, 0xB4, 0x6E, 0xFF, 0x2E, 0xA8, 0x65, 0xFF, 0x1B, 0xA0, 0x5D, 0xFF, 0x48, 0x94, 0x3C, 0xFF, - 0xF6, 0x93, 0x0A, 0xFF, 0xEC, 0x94, 0x0D, 0xFF, 0xF0, 0x92, 0x10, 0xFF, 0xF0, 0x92, 0x10, 0xFF, - 0xF0, 0xC5, 0x4B, 0xFF, 0xF0, 0xC4, 0x49, 0xFF, 0xF1, 0xC4, 0x48, 0xFF, 0xF1, 0xC3, 0x46, 0xFF, - 0xF2, 0xC2, 0x44, 0xFF, 0xF4, 0xC3, 0x3F, 0xFF, 0xF6, 0xC4, 0x3A, 0xFF, 0xF3, 0xBF, 0x3C, 0xFF, - 0xEF, 0xBA, 0x3D, 0xFF, 0xFF, 0xCA, 0x2C, 0xFF, 0x24, 0x5D, 0xFF, 0xFF, 0x2E, 0x6D, 0xFE, 0xFF, - 0x38, 0x7D, 0xF2, 0xFF, 0x48, 0x93, 0xF5, 0xFF, 0x57, 0xA9, 0xF7, 0xFF, 0x82, 0xC0, 0xF7, 0xFF, - 0xAE, 0xD7, 0xF7, 0xFF, 0x6C, 0xC2, 0xFF, 0xFF, 0x84, 0xDA, 0xFE, 0xFF, 0x8B, 0xE4, 0xFA, 0xFF, - 0x93, 0xEE, 0xF6, 0xFF, 0x9D, 0xED, 0xF8, 0xFF, 0xA7, 0xEC, 0xF9, 0xFF, 0xB3, 0xF1, 0xF8, 0xFF, - 0xC0, 0xF6, 0xF7, 0xFF, 0xC8, 0xF6, 0xFB, 0xFF, 0xD0, 0xF6, 0xFF, 0xFF, 0xD3, 0xF2, 0xFE, 0xFF, - 0xB9, 0xF3, 0xFB, 0xFF, 0xE7, 0xFD, 0xFF, 0xFF, 0xE9, 0xFD, 0xF6, 0xFF, 0xE2, 0xFC, 0xFC, 0xFF, - 0xDC, 0xFC, 0xFF, 0xFF, 0xF1, 0x9D, 0x0B, 0xFF, 0xEC, 0xAA, 0x29, 0xFF, 0xF5, 0xAA, 0x1B, 0xFF, - 0xD9, 0xC7, 0x7F, 0xFF, 0xBA, 0xFE, 0xFD, 0xFF, 0xBD, 0xF2, 0xE7, 0xFF, 0xC3, 0xF4, 0xEB, 0xFF, - 0xCA, 0xF6, 0xEE, 0xFF, 0xCA, 0xF6, 0xEF, 0xFF, 0xCB, 0xF7, 0xEF, 0xFF, 0xC5, 0xF6, 0xED, 0xFF, - 0xBF, 0xF5, 0xEB, 0xFF, 0xBE, 0xF3, 0xE9, 0xFF, 0xBC, 0xF2, 0xE8, 0xFF, 0xB3, 0xF4, 0xE3, 0xFF, - 0xAB, 0xF6, 0xDF, 0xFF, 0x91, 0xF1, 0xD0, 0xFF, 0x77, 0xEC, 0xC1, 0xFF, 0x62, 0xE3, 0xAF, 0xFF, - 0x4E, 0xDB, 0x9E, 0xFF, 0x47, 0xD3, 0x94, 0xFF, 0x41, 0xCC, 0x8A, 0xFF, 0x3B, 0xC2, 0x7F, 0xFF, - 0x35, 0xB8, 0x73, 0xFF, 0x30, 0xAC, 0x69, 0xFF, 0x10, 0xA5, 0x60, 0xFF, 0x86, 0x96, 0x22, 0xFF, - 0xF0, 0x91, 0x0A, 0xFF, 0xF2, 0x92, 0x0E, 0xFF, 0xF4, 0x94, 0x11, 0xFF, 0xF4, 0x94, 0x11, 0xFF, - 0xF1, 0xC5, 0x4C, 0xFF, 0xF1, 0xC5, 0x4A, 0xFF, 0xF1, 0xC4, 0x49, 0xFF, 0xF2, 0xC4, 0x47, 0xFF, - 0xF2, 0xC3, 0x45, 0xFF, 0xF1, 0xC3, 0x43, 0xFF, 0xF0, 0xC4, 0x40, 0xFF, 0xF3, 0xBF, 0x42, 0xFF, - 0xF5, 0xC0, 0x39, 0xFF, 0xCA, 0xAC, 0x5E, 0xFF, 0x1E, 0x58, 0xFA, 0xFF, 0x30, 0x6E, 0xF3, 0xFF, - 0x35, 0x80, 0xF7, 0xFF, 0x3E, 0x92, 0xFB, 0xFF, 0x5D, 0xAF, 0xFB, 0xFF, 0x72, 0xC2, 0xFF, 0xFF, - 0xBA, 0xE1, 0xFD, 0xFF, 0x74, 0xCD, 0xFF, 0xFF, 0x71, 0xD3, 0xFF, 0xFF, 0x83, 0xE5, 0xFF, 0xFF, - 0x95, 0xF7, 0xFF, 0xFF, 0xA1, 0xF4, 0xFE, 0xFF, 0xAD, 0xF0, 0xFD, 0xFF, 0xC1, 0xF8, 0xFF, 0xFF, - 0xCD, 0xF7, 0xFB, 0xFF, 0xD1, 0xF8, 0xFE, 0xFF, 0xD6, 0xF9, 0xFF, 0xFF, 0xE0, 0xF6, 0xFE, 0xFF, - 0xDD, 0xF5, 0xFB, 0xFF, 0xED, 0xFB, 0xFF, 0xFF, 0xE8, 0xFB, 0xFB, 0xFF, 0xDF, 0xFC, 0xFF, 0xFF, - 0xE8, 0xE0, 0xB2, 0xFF, 0xEF, 0xA3, 0x18, 0xFF, 0xEC, 0xAA, 0x25, 0xFF, 0xF5, 0xA8, 0x15, 0xFF, - 0xD8, 0xE3, 0xC2, 0xFF, 0xC5, 0xF9, 0xF9, 0xFF, 0xCA, 0xF5, 0xEE, 0xFF, 0xCE, 0xF6, 0xEF, 0xFF, - 0xD2, 0xF7, 0xF0, 0xFF, 0xD1, 0xF8, 0xF1, 0xFF, 0xD0, 0xF9, 0xF1, 0xFF, 0xCD, 0xF9, 0xF1, 0xFF, - 0xC9, 0xF9, 0xF1, 0xFF, 0xC9, 0xFB, 0xF2, 0xFF, 0xCA, 0xFC, 0xF4, 0xFF, 0xB6, 0xF8, 0xE6, 0xFF, - 0xA2, 0xF3, 0xD9, 0xFF, 0x89, 0xEF, 0xCA, 0xFF, 0x71, 0xEB, 0xBC, 0xFF, 0x61, 0xE6, 0xB0, 0xFF, - 0x50, 0xE1, 0xA4, 0xFF, 0x48, 0xD9, 0x99, 0xFF, 0x40, 0xD2, 0x8F, 0xFF, 0x3A, 0xC7, 0x83, 0xFF, - 0x34, 0xBC, 0x77, 0xFF, 0x1C, 0xB2, 0x6A, 0xFF, 0x04, 0xA9, 0x5D, 0xFF, 0xEA, 0x8D, 0x13, 0xFF, - 0xEF, 0x93, 0x11, 0xFF, 0xEF, 0x92, 0x0F, 0xFF, 0xF0, 0x92, 0x0E, 0xFF, 0xF0, 0x92, 0x0E, 0xFF, - 0xF2, 0xC6, 0x4D, 0xFF, 0xF2, 0xC5, 0x4B, 0xFF, 0xF2, 0xC5, 0x4A, 0xFF, 0xF2, 0xC5, 0x48, 0xFF, - 0xF2, 0xC4, 0x46, 0xFF, 0xEE, 0xC4, 0x46, 0xFF, 0xEA, 0xC4, 0x46, 0xFF, 0xF2, 0xBF, 0x48, 0xFF, - 0xFB, 0xC6, 0x34, 0xFF, 0x91, 0x95, 0x98, 0xFF, 0x27, 0x64, 0xFC, 0xFF, 0x3B, 0x76, 0xF1, 0xFF, - 0x32, 0x83, 0xFC, 0xFF, 0x34, 0x91, 0xFF, 0xFF, 0x63, 0xB4, 0xFF, 0xFF, 0x5A, 0xBD, 0xFF, 0xFF, - 0xB5, 0xDC, 0xF3, 0xFF, 0x97, 0xD0, 0xCB, 0xFF, 0xA4, 0xCE, 0xB4, 0xFF, 0xB0, 0xD2, 0xAF, 0xFF, - 0xBC, 0xD6, 0xAB, 0xFF, 0xBE, 0xE1, 0xC2, 0xFF, 0xC0, 0xEB, 0xDA, 0xFF, 0xC7, 0xFC, 0xF5, 0xFF, - 0xBD, 0xFE, 0xFF, 0xFF, 0xCC, 0xFD, 0xFF, 0xFF, 0xDB, 0xFC, 0xFF, 0xFF, 0xE0, 0xFC, 0xFE, 0xFF, - 0xE4, 0xFC, 0xFB, 0xFF, 0xE6, 0xFB, 0xFD, 0xFF, 0xE7, 0xFA, 0xFF, 0xFF, 0xDD, 0xFB, 0xFF, 0xFF, - 0xF4, 0xC4, 0x61, 0xFF, 0xEE, 0xAA, 0x26, 0xFF, 0xEB, 0xAA, 0x22, 0xFF, 0xF6, 0xA7, 0x10, 0xFF, - 0xD6, 0xFF, 0xFF, 0xFF, 0xCF, 0xF4, 0xF5, 0xFF, 0xD8, 0xF9, 0xF5, 0xFF, 0xD9, 0xF9, 0xF4, 0xFF, - 0xD9, 0xF8, 0xF2, 0xFF, 0xD8, 0xF9, 0xF3, 0xFF, 0xD6, 0xFB, 0xF4, 0xFF, 0xD5, 0xFC, 0xF5, 0xFF, - 0xD3, 0xFD, 0xF6, 0xFF, 0xCD, 0xFA, 0xF3, 0xFF, 0xC7, 0xF6, 0xEF, 0xFF, 0xB0, 0xF3, 0xE1, 0xFF, - 0x98, 0xF0, 0xD3, 0xFF, 0x82, 0xED, 0xC5, 0xFF, 0x6B, 0xEB, 0xB7, 0xFF, 0x5F, 0xE9, 0xB0, 0xFF, - 0x53, 0xE7, 0xAA, 0xFF, 0x49, 0xDF, 0x9F, 0xFF, 0x3E, 0xD7, 0x93, 0xFF, 0x39, 0xCB, 0x87, 0xFF, - 0x34, 0xBF, 0x7B, 0xFF, 0x25, 0xB4, 0x6B, 0xFF, 0x32, 0xA2, 0x5B, 0xFF, 0xF9, 0x94, 0x04, 0xFF, - 0xED, 0x94, 0x17, 0xFF, 0xEC, 0x92, 0x11, 0xFF, 0xEB, 0x91, 0x0B, 0xFF, 0xEB, 0x91, 0x0B, 0xFF, - 0xF2, 0xC7, 0x4E, 0xFF, 0xF3, 0xC7, 0x4D, 0xFF, 0xF3, 0xC7, 0x4C, 0xFF, 0xF3, 0xC7, 0x4A, 0xFF, - 0xF4, 0xC7, 0x49, 0xFF, 0xF1, 0xC4, 0x47, 0xFF, 0xEE, 0xC1, 0x45, 0xFF, 0xF7, 0xC2, 0x42, 0xFF, - 0xFF, 0xC8, 0x33, 0xFF, 0x46, 0x67, 0xDE, 0xFF, 0x2A, 0x63, 0xFF, 0xFF, 0x1B, 0x6F, 0xFF, 0xFF, - 0x52, 0x8B, 0xE0, 0xFF, 0x84, 0xA0, 0xA3, 0xFF, 0xCC, 0xC1, 0x62, 0xFF, 0xFF, 0xC0, 0x26, 0xFF, - 0xFF, 0xB7, 0x29, 0xFF, 0xF1, 0xB5, 0x24, 0xFF, 0xF9, 0xB7, 0x27, 0xFF, 0xF6, 0xB5, 0x25, 0xFF, - 0xF2, 0xB2, 0x23, 0xFF, 0xFA, 0xB5, 0x24, 0xFF, 0xFF, 0xB7, 0x24, 0xFF, 0xDE, 0x9D, 0x17, 0xFF, - 0xF4, 0xBA, 0x42, 0xFF, 0xE7, 0xDA, 0x9E, 0xFF, 0xDC, 0xF9, 0xF9, 0xFF, 0xE6, 0xFB, 0xF3, 0xFF, - 0xE9, 0xFF, 0xFF, 0xFF, 0xE6, 0xFF, 0xFD, 0xFF, 0xE2, 0xFB, 0xFA, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xEF, 0xA7, 0x1D, 0xFF, 0xF0, 0xA7, 0x1C, 0xFF, 0xF1, 0xA7, 0x1A, 0xFF, 0xF0, 0xC4, 0x5A, 0xFF, - 0xE7, 0xFF, 0xFF, 0xFF, 0xE1, 0xF9, 0xFA, 0xFF, 0xE2, 0xFB, 0xFA, 0xFF, 0xDF, 0xFB, 0xF8, 0xFF, - 0xDC, 0xFA, 0xF5, 0xFF, 0xDB, 0xFB, 0xF5, 0xFF, 0xD9, 0xFB, 0xF5, 0xFF, 0xD6, 0xFC, 0xF5, 0xFF, - 0xD3, 0xFD, 0xF5, 0xFF, 0xC8, 0xF8, 0xF0, 0xFF, 0xBD, 0xF4, 0xEA, 0xFF, 0xA8, 0xF1, 0xDF, 0xFF, - 0x93, 0xEF, 0xD4, 0xFF, 0x7A, 0xF3, 0xC6, 0xFF, 0x61, 0xF8, 0xB9, 0xFF, 0x57, 0xEF, 0xB0, 0xFF, - 0x4D, 0xE6, 0xA6, 0xFF, 0x48, 0xE2, 0xA3, 0xFF, 0x3A, 0xD6, 0x98, 0xFF, 0x37, 0xCD, 0x89, 0xFF, - 0x35, 0xC3, 0x7B, 0xFF, 0x20, 0xB7, 0x6F, 0xFF, 0x84, 0x9C, 0x3A, 0xFF, 0xF4, 0x93, 0x0C, 0xFF, - 0xEC, 0x94, 0x13, 0xFF, 0xE9, 0x93, 0x11, 0xFF, 0xE6, 0x92, 0x0F, 0xFF, 0xE6, 0x92, 0x0F, 0xFF, - 0xF3, 0xC9, 0x50, 0xFF, 0xF4, 0xC9, 0x4F, 0xFF, 0xF4, 0xC9, 0x4E, 0xFF, 0xF5, 0xCA, 0x4D, 0xFF, - 0xF5, 0xCA, 0x4B, 0xFF, 0xF4, 0xC5, 0x48, 0xFF, 0xF3, 0xBF, 0x44, 0xFF, 0xEE, 0xC1, 0x47, 0xFF, - 0xEA, 0xC4, 0x4A, 0xFF, 0x1F, 0x52, 0xFF, 0xFF, 0x92, 0x9A, 0xA6, 0xFF, 0xE6, 0xB6, 0x51, 0xFF, - 0xFF, 0xC7, 0x28, 0xFF, 0xF8, 0xC4, 0x2C, 0xFF, 0xF0, 0xC0, 0x30, 0xFF, 0xEF, 0xBA, 0x3F, 0xFF, - 0xEF, 0xBF, 0x37, 0xFF, 0xEF, 0xB9, 0x38, 0xFF, 0xF0, 0xB2, 0x3A, 0xFF, 0xF3, 0xB5, 0x38, 0xFF, - 0xF6, 0xB7, 0x35, 0xFF, 0xEF, 0xB9, 0x32, 0xFF, 0xE8, 0xBB, 0x2F, 0xFF, 0xEA, 0xB8, 0x2F, 0xFF, - 0xED, 0xB4, 0x2F, 0xFF, 0xF3, 0xAC, 0x1F, 0xFF, 0xF9, 0xA3, 0x10, 0xFF, 0xF2, 0xC9, 0x6F, 0xFF, - 0xDF, 0xF9, 0xF5, 0xFF, 0xDE, 0xFB, 0xF5, 0xFF, 0xDD, 0xFD, 0xF5, 0xFF, 0xE3, 0xEA, 0xD7, 0xFF, - 0xEE, 0xA5, 0x10, 0xFF, 0xF4, 0xB2, 0x2D, 0xFF, 0xF7, 0xA5, 0x13, 0xFF, 0xEB, 0xE1, 0xA5, 0xFF, - 0xF8, 0xFF, 0xFF, 0xFF, 0xF2, 0xFE, 0xFF, 0xFF, 0xEC, 0xFD, 0xFF, 0xFF, 0xE6, 0xFC, 0xFC, 0xFF, - 0xDF, 0xFC, 0xF7, 0xFF, 0xDE, 0xFC, 0xF7, 0xFF, 0xDC, 0xFC, 0xF6, 0xFF, 0xD7, 0xFC, 0xF5, 0xFF, - 0xD3, 0xFC, 0xF4, 0xFF, 0xC3, 0xF7, 0xED, 0xFF, 0xB4, 0xF1, 0xE5, 0xFF, 0xB7, 0xF5, 0xE4, 0xFF, - 0xBB, 0xF9, 0xE4, 0xFF, 0xD2, 0xFE, 0xEB, 0xFF, 0xE9, 0xFF, 0xF2, 0xFF, 0xDB, 0xFE, 0xED, 0xFF, - 0xCD, 0xF9, 0xE8, 0xFF, 0x89, 0xEF, 0xCA, 0xFF, 0x35, 0xD6, 0x9C, 0xFF, 0x2D, 0xC6, 0x83, 0xFF, - 0x25, 0xB7, 0x6B, 0xFF, 0x14, 0xB3, 0x6C, 0xFF, 0xD6, 0x95, 0x1A, 0xFF, 0xEE, 0x91, 0x15, 0xFF, - 0xEB, 0x93, 0x0F, 0xFF, 0xE6, 0x93, 0x10, 0xFF, 0xE0, 0x93, 0x12, 0xFF, 0xE0, 0x93, 0x12, 0xFF, - 0xF4, 0xCA, 0x52, 0xFF, 0xF4, 0xCA, 0x50, 0xFF, 0xF3, 0xCA, 0x4E, 0xFF, 0xF3, 0xC9, 0x4C, 0xFF, - 0xF3, 0xC9, 0x4A, 0xFF, 0xF4, 0xC8, 0x48, 0xFF, 0xF6, 0xC6, 0x46, 0xFF, 0xEC, 0xBF, 0x3F, 0xFF, - 0xEB, 0xBF, 0x41, 0xFF, 0xF8, 0xD4, 0x40, 0xFF, 0xFC, 0xC9, 0x33, 0xFF, 0xFF, 0xC9, 0x2F, 0xFF, - 0xEC, 0xC2, 0x42, 0xFF, 0xF4, 0xC3, 0x40, 0xFF, 0xFC, 0xC3, 0x3E, 0xFF, 0xF3, 0xBB, 0x34, 0xFF, - 0xF2, 0xBB, 0x33, 0xFF, 0xF6, 0xBD, 0x49, 0xFF, 0xF8, 0xB7, 0x38, 0xFF, 0xF5, 0xB7, 0x36, 0xFF, - 0xF2, 0xB7, 0x34, 0xFF, 0xF3, 0xB5, 0x2E, 0xFF, 0xF5, 0xB3, 0x27, 0xFF, 0xF7, 0xBA, 0x2F, 0xFF, - 0xF2, 0xBA, 0x2F, 0xFF, 0xF1, 0xB5, 0x30, 0xFF, 0xF0, 0xB0, 0x31, 0xFF, 0xF6, 0xAC, 0x1E, 0xFF, - 0xED, 0xAA, 0x0C, 0xFF, 0xEC, 0xD2, 0x7E, 0xFF, 0xE6, 0xFF, 0xFF, 0xFF, 0xD2, 0xD9, 0x80, 0xFF, - 0xF8, 0xA9, 0x2E, 0xFF, 0xEB, 0xAF, 0x1C, 0xFF, 0xE5, 0xAA, 0x02, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, - 0xFE, 0xFF, 0xFF, 0xFF, 0xF9, 0xFE, 0xFF, 0xFF, 0xF4, 0xFD, 0xFF, 0xFF, 0xEB, 0xFD, 0xFD, 0xFF, - 0xE2, 0xFE, 0xFA, 0xFF, 0xE1, 0xFD, 0xF9, 0xFF, 0xE0, 0xFC, 0xF7, 0xFF, 0xD7, 0xFC, 0xF5, 0xFF, - 0xCF, 0xFD, 0xF3, 0xFF, 0xE2, 0xFB, 0xF4, 0xFF, 0xE7, 0xFD, 0xF6, 0xFF, 0xE8, 0xFD, 0xF3, 0xFF, - 0xE9, 0xFD, 0xF0, 0xFF, 0xD3, 0xFD, 0xEB, 0xFF, 0xBD, 0xFC, 0xE5, 0xFF, 0xBA, 0xF7, 0xDF, 0xFF, - 0xB6, 0xF2, 0xDA, 0xFF, 0xD2, 0xFB, 0xE9, 0xFF, 0xE6, 0xFC, 0xF1, 0xFF, 0x8D, 0xDE, 0xB6, 0xFF, - 0x3C, 0xC7, 0x84, 0xFF, 0x47, 0xB7, 0x99, 0xFF, 0xF8, 0xA1, 0x13, 0xFF, 0xF2, 0x94, 0x04, 0xFF, - 0xEE, 0x94, 0x10, 0xFF, 0xEC, 0x94, 0x10, 0xFF, 0xE9, 0x95, 0x10, 0xFF, 0xE9, 0x95, 0x10, 0xFF, - 0xF5, 0xCC, 0x53, 0xFF, 0xF3, 0xCB, 0x50, 0xFF, 0xF2, 0xCA, 0x4E, 0xFF, 0xF1, 0xC9, 0x4B, 0xFF, - 0xF0, 0xC7, 0x48, 0xFF, 0xF4, 0xCB, 0x48, 0xFF, 0xF9, 0xCE, 0x47, 0xFF, 0xF2, 0xC4, 0x40, 0xFF, - 0xFC, 0xCA, 0x48, 0xFF, 0xF0, 0xC2, 0x3F, 0xFF, 0xF5, 0xC9, 0x46, 0xFF, 0xF4, 0xC7, 0x46, 0xFF, - 0xF3, 0xC4, 0x45, 0xFF, 0xED, 0xB4, 0x38, 0xFF, 0xE8, 0xA5, 0x2C, 0xFF, 0xE1, 0xB0, 0x2E, 0xFF, - 0xEA, 0xC0, 0x56, 0xFF, 0xE9, 0xC8, 0x6C, 0xFF, 0xE4, 0xC1, 0x36, 0xFF, 0xEB, 0xC9, 0x50, 0xFF, - 0xF1, 0xD1, 0x6A, 0xFF, 0xF5, 0xD0, 0x73, 0xFF, 0xF9, 0xCF, 0x7D, 0xFF, 0xF8, 0xC7, 0x56, 0xFF, - 0xE7, 0xAF, 0x1F, 0xFF, 0xED, 0xB1, 0x25, 0xFF, 0xF4, 0xB2, 0x2B, 0xFF, 0xF9, 0xB5, 0x3E, 0xFF, - 0xEE, 0xB3, 0x2A, 0xFF, 0xF5, 0xAF, 0x1B, 0xFF, 0xF0, 0xB5, 0x32, 0xFF, 0xF9, 0xB1, 0x3F, 0xFF, - 0xF2, 0xA9, 0x26, 0xFF, 0xEA, 0xAE, 0x1F, 0xFF, 0xF3, 0xB8, 0x3F, 0xFF, 0xF3, 0xFF, 0xFB, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFB, 0xFD, 0xFE, 0xFF, 0xF0, 0xFE, 0xFE, 0xFF, - 0xE5, 0xFF, 0xFD, 0xFF, 0xE4, 0xFE, 0xFB, 0xFF, 0xE3, 0xFC, 0xF8, 0xFF, 0xD7, 0xFD, 0xF5, 0xFF, - 0xCB, 0xFD, 0xF2, 0xFF, 0xEB, 0xFB, 0xF4, 0xFF, 0xEE, 0xFE, 0xF6, 0xFF, 0xDE, 0xFD, 0xF1, 0xFF, - 0xCE, 0xFB, 0xED, 0xFF, 0xB0, 0xF9, 0xE2, 0xFF, 0x91, 0xF6, 0xD8, 0xFF, 0x8A, 0xF3, 0xD2, 0xFF, - 0x83, 0xF1, 0xCC, 0xFF, 0x96, 0xEE, 0xCE, 0xFF, 0xA9, 0xEA, 0xD0, 0xFF, 0xC0, 0xEA, 0xDA, 0xFF, - 0xE8, 0xFA, 0xF4, 0xFF, 0x78, 0xC6, 0x7E, 0xFF, 0xFF, 0xC0, 0x59, 0xFF, 0xEA, 0xA0, 0x19, 0xFF, - 0xF2, 0x95, 0x10, 0xFF, 0xF2, 0x96, 0x0F, 0xFF, 0xF2, 0x96, 0x0D, 0xFF, 0xF2, 0x96, 0x0D, 0xFF, - 0xF4, 0xCD, 0x54, 0xFF, 0xF4, 0xCB, 0x51, 0xFF, 0xF3, 0xCA, 0x4F, 0xFF, 0xF2, 0xC9, 0x4C, 0xFF, - 0xF2, 0xC8, 0x4A, 0xFF, 0xF1, 0xC6, 0x48, 0xFF, 0xF1, 0xC4, 0x47, 0xFF, 0xF3, 0xD2, 0x48, 0xFF, - 0xF3, 0xC7, 0x46, 0xFF, 0xFB, 0xC5, 0x4C, 0xFF, 0xDC, 0x9A, 0x2B, 0xFF, 0xCD, 0x83, 0x17, 0xFF, - 0xBE, 0x6B, 0x03, 0xFF, 0xC5, 0x7F, 0x00, 0xFF, 0xD4, 0x96, 0x0E, 0xFF, 0xDB, 0xAC, 0x2E, 0xFF, - 0xEA, 0xC5, 0x60, 0xFF, 0xEF, 0xCC, 0x75, 0xFF, 0xEA, 0xCA, 0x51, 0xFF, 0xEF, 0xD2, 0x69, 0xFF, - 0xF5, 0xDA, 0x81, 0xFF, 0xF7, 0xE4, 0x99, 0xFF, 0xF9, 0xEE, 0xB2, 0xFF, 0xFF, 0xFA, 0xCE, 0xFF, - 0xFF, 0xFE, 0xE2, 0xFF, 0xFF, 0xE1, 0x99, 0xFF, 0xF7, 0xBC, 0x48, 0xFF, 0xDC, 0xB4, 0x10, 0xFF, - 0xF0, 0xAD, 0x31, 0xFF, 0xFB, 0xAC, 0x27, 0xFF, 0xF3, 0xB2, 0x30, 0xFF, 0xF5, 0xB1, 0x34, 0xFF, - 0xF0, 0xAD, 0x24, 0xFF, 0xF6, 0xAC, 0x26, 0xFF, 0xFC, 0xD1, 0x97, 0xFF, 0xF7, 0xFD, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFE, 0xFF, 0xFB, 0xFF, 0xFE, 0xFF, 0xF3, 0xFF, 0xFE, 0xFF, 0xED, 0xFF, 0xFD, 0xFF, - 0xE7, 0xFD, 0xFC, 0xFF, 0xE3, 0xFE, 0xFB, 0xFF, 0xDF, 0xFE, 0xF9, 0xFF, 0xE7, 0xFD, 0xF8, 0xFF, - 0xEF, 0xFC, 0xF7, 0xFF, 0xEB, 0xFB, 0xF3, 0xFF, 0xD8, 0xFD, 0xEF, 0xFF, 0xC2, 0xFA, 0xE8, 0xFF, - 0xAB, 0xF8, 0xE2, 0xFF, 0x9B, 0xF4, 0xD8, 0xFF, 0x8A, 0xEF, 0xCE, 0xFF, 0x76, 0xEA, 0xC1, 0xFF, - 0x61, 0xE5, 0xB4, 0xFF, 0x5A, 0xDD, 0xAB, 0xFF, 0x61, 0xD2, 0xA2, 0xFF, 0x8D, 0xE9, 0xC1, 0xFF, - 0xB8, 0xE7, 0xDA, 0xFF, 0xFF, 0xD4, 0x96, 0xFF, 0xFA, 0xD0, 0x8E, 0xFF, 0xED, 0xAD, 0x41, 0xFF, - 0xF1, 0x95, 0x10, 0xFF, 0xF1, 0x95, 0x0F, 0xFF, 0xF1, 0x96, 0x0E, 0xFF, 0xF1, 0x96, 0x0E, 0xFF, - 0xF4, 0xCD, 0x54, 0xFF, 0xF4, 0xCC, 0x52, 0xFF, 0xF4, 0xCB, 0x50, 0xFF, 0xF3, 0xC9, 0x4E, 0xFF, - 0xF3, 0xC8, 0x4B, 0xFF, 0xF6, 0xC9, 0x51, 0xFF, 0xFA, 0xCA, 0x56, 0xFF, 0xEA, 0xC0, 0x44, 0xFF, - 0xC6, 0x74, 0x19, 0xFF, 0xAD, 0x58, 0x00, 0xFF, 0xB3, 0x5B, 0x01, 0xFF, 0xC0, 0x6F, 0x06, 0xFF, - 0xCC, 0x84, 0x0B, 0xFF, 0xCE, 0x93, 0x00, 0xFF, 0xDF, 0xA7, 0x11, 0xFF, 0xE5, 0xB9, 0x3E, 0xFF, - 0xEB, 0xCA, 0x6A, 0xFF, 0xF5, 0xD1, 0x7E, 0xFF, 0xF0, 0xD3, 0x6B, 0xFF, 0xF4, 0xDB, 0x81, 0xFF, - 0xF8, 0xE3, 0x97, 0xFF, 0xF7, 0xEB, 0xA4, 0xFF, 0xF5, 0xF4, 0xB1, 0xFF, 0xF9, 0xF7, 0xC7, 0xFF, - 0xFC, 0xFA, 0xDC, 0xFF, 0xFF, 0xFF, 0xF2, 0xFF, 0xF5, 0xFF, 0xF8, 0xFF, 0xFD, 0xEB, 0xBB, 0xFF, - 0xF2, 0xB4, 0x22, 0xFF, 0xFF, 0xAF, 0x28, 0xFF, 0xF6, 0xB0, 0x2F, 0xFF, 0xF2, 0xB0, 0x29, 0xFF, - 0xEE, 0xB1, 0x22, 0xFF, 0xF9, 0xA7, 0x19, 0xFF, 0xF4, 0xE6, 0xC9, 0xFF, 0xF4, 0xF7, 0xF7, 0xFF, - 0xFF, 0xFF, 0xFE, 0xFF, 0xF6, 0xFF, 0xFE, 0xFF, 0xEC, 0xFF, 0xFD, 0xFF, 0xEA, 0xFF, 0xFC, 0xFF, - 0xE8, 0xFA, 0xFA, 0xFF, 0xE2, 0xFD, 0xFB, 0xFF, 0xDC, 0xFF, 0xFB, 0xFF, 0xE9, 0xFF, 0xFB, 0xFF, - 0xF6, 0xFF, 0xFB, 0xFF, 0xDC, 0xFD, 0xF1, 0xFF, 0xC3, 0xFB, 0xE7, 0xFF, 0xB4, 0xF5, 0xDF, 0xFF, - 0xA5, 0xF0, 0xD8, 0xFF, 0x94, 0xEC, 0xCE, 0xFF, 0x83, 0xE8, 0xC4, 0xFF, 0x77, 0xE5, 0xB7, 0xFF, - 0x6B, 0xE3, 0xAB, 0xFF, 0x52, 0xDE, 0xA0, 0xFF, 0x55, 0xD4, 0x94, 0xFF, 0x40, 0xBD, 0x7F, 0xFF, - 0x98, 0xE4, 0xD1, 0xFF, 0xF4, 0xA1, 0x2B, 0xFF, 0xF6, 0xA1, 0x2F, 0xFF, 0xF3, 0x9B, 0x1F, 0xFF, - 0xF0, 0x95, 0x0F, 0xFF, 0xF0, 0x95, 0x0F, 0xFF, 0xF0, 0x95, 0x0F, 0xFF, 0xF0, 0x95, 0x0F, 0xFF, - 0xF4, 0xCE, 0x55, 0xFF, 0xF4, 0xCC, 0x53, 0xFF, 0xF4, 0xCB, 0x51, 0xFF, 0xF5, 0xCA, 0x4F, 0xFF, - 0xF6, 0xC9, 0x4E, 0xFF, 0xF4, 0xC9, 0x4D, 0xFF, 0xFA, 0xD0, 0x53, 0xFF, 0xCD, 0x86, 0x2A, 0xFF, - 0xB0, 0x52, 0x06, 0xFF, 0xB8, 0x5F, 0x04, 0xFF, 0xC8, 0x73, 0x0A, 0xFF, 0xCE, 0x82, 0x08, 0xFF, - 0xD3, 0x91, 0x06, 0xFF, 0xD5, 0xA0, 0x01, 0xFF, 0xE6, 0xB4, 0x24, 0xFF, 0xEA, 0xC4, 0x4C, 0xFF, - 0xED, 0xD3, 0x74, 0xFF, 0xF4, 0xD9, 0x83, 0xFF, 0xF3, 0xDC, 0x7E, 0xFF, 0xF6, 0xE4, 0x93, 0xFF, - 0xF8, 0xEC, 0xA8, 0xFF, 0xF9, 0xF2, 0xB5, 0xFF, 0xF9, 0xF8, 0xC3, 0xFF, 0xFA, 0xFA, 0xD3, 0xFF, - 0xFB, 0xFB, 0xE2, 0xFF, 0xFB, 0xFE, 0xED, 0xFF, 0xF3, 0xF9, 0xEF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFD, 0xFF, 0xFF, 0xEE, 0xDC, 0x7E, 0xFF, 0xFD, 0xAD, 0x26, 0xFF, 0xF7, 0xAF, 0x29, 0xFF, - 0xF1, 0xB1, 0x2D, 0xFF, 0xDF, 0xB1, 0x34, 0xFF, 0xF6, 0xA6, 0x09, 0xFF, 0xF4, 0xD3, 0x8C, 0xFF, - 0xF8, 0xFB, 0xFC, 0xFF, 0xF6, 0xFF, 0xFF, 0xFF, 0xEB, 0xFF, 0xFD, 0xFF, 0xE5, 0xFE, 0xFC, 0xFF, - 0xE0, 0xFB, 0xFB, 0xFF, 0xDE, 0xFC, 0xF9, 0xFF, 0xDC, 0xFC, 0xF7, 0xFF, 0xEF, 0xFF, 0xFC, 0xFF, - 0xEB, 0xFC, 0xF8, 0xFF, 0xD0, 0xF5, 0xE8, 0xFF, 0xBC, 0xF5, 0xDF, 0xFF, 0xAC, 0xF1, 0xD8, 0xFF, - 0x9D, 0xED, 0xD2, 0xFF, 0x7D, 0xE8, 0xC4, 0xFF, 0x6C, 0xE1, 0xB7, 0xFF, 0x5E, 0xDC, 0xAB, 0xFF, - 0x4F, 0xD7, 0x9E, 0xFF, 0x5E, 0xC9, 0x98, 0xFF, 0x35, 0xC6, 0x92, 0xFF, 0x42, 0xC9, 0x8B, 0xFF, - 0x4D, 0xB2, 0x80, 0xFF, 0xF1, 0x9B, 0x00, 0xFF, 0xF8, 0x93, 0x17, 0xFF, 0xF4, 0x95, 0x15, 0xFF, - 0xF1, 0x97, 0x12, 0xFF, 0xF0, 0x96, 0x11, 0xFF, 0xEF, 0x95, 0x10, 0xFF, 0xEF, 0x95, 0x10, 0xFF, - 0xF4, 0xCE, 0x55, 0xFF, 0xF4, 0xCD, 0x54, 0xFF, 0xF5, 0xCC, 0x52, 0xFF, 0xF6, 0xCB, 0x51, 0xFF, - 0xF8, 0xCB, 0x50, 0xFF, 0xF1, 0xC8, 0x49, 0xFF, 0xF9, 0xD5, 0x51, 0xFF, 0xC0, 0x62, 0x15, 0xFF, - 0xBB, 0x5C, 0x00, 0xFF, 0xCC, 0x74, 0x07, 0xFF, 0xCD, 0x7C, 0x02, 0xFF, 0xD4, 0x8D, 0x02, 0xFF, - 0xDB, 0x9E, 0x01, 0xFF, 0xDC, 0xAD, 0x08, 0xFF, 0xED, 0xC1, 0x36, 0xFF, 0xEE, 0xCF, 0x5A, 0xFF, - 0xF0, 0xDC, 0x7D, 0xFF, 0xF3, 0xE1, 0x87, 0xFF, 0xF7, 0xE6, 0x91, 0xFF, 0xF8, 0xED, 0xA5, 0xFF, - 0xF8, 0xF5, 0xB8, 0xFF, 0xFB, 0xF9, 0xC6, 0xFF, 0xFD, 0xFD, 0xD4, 0xFF, 0xFB, 0xFC, 0xDF, 0xFF, - 0xFA, 0xFC, 0xE9, 0xFF, 0xFD, 0xFE, 0xF0, 0xFF, 0xFF, 0xFF, 0xF7, 0xFF, 0xFE, 0xFF, 0xFA, 0xFF, - 0xFB, 0xFE, 0xFC, 0xFF, 0xFF, 0xFA, 0xFD, 0xFF, 0xE7, 0xAF, 0x1D, 0xFF, 0xEE, 0xB0, 0x2A, 0xFF, - 0xF5, 0xB1, 0x37, 0xFF, 0xF6, 0xB8, 0x24, 0xFF, 0xF7, 0xB4, 0x28, 0xFF, 0xF4, 0xAF, 0x21, 0xFF, - 0xF2, 0xAA, 0x1A, 0xFF, 0xF5, 0xD7, 0x9E, 0xFF, 0xE9, 0xFF, 0xFC, 0xFF, 0xE0, 0xFE, 0xFC, 0xFF, - 0xD7, 0xFD, 0xFC, 0xFF, 0xDA, 0xFA, 0xF8, 0xFF, 0xDD, 0xF7, 0xF3, 0xFF, 0xF4, 0xFD, 0xFD, 0xFF, - 0xE0, 0xF9, 0xF6, 0xFF, 0xC3, 0xEC, 0xDF, 0xFF, 0xB5, 0xEF, 0xD7, 0xFF, 0xA5, 0xEC, 0xD2, 0xFF, - 0x95, 0xE9, 0xCC, 0xFF, 0x67, 0xE5, 0xBB, 0xFF, 0x55, 0xDB, 0xAB, 0xFF, 0x44, 0xD3, 0x9E, 0xFF, - 0x32, 0xCB, 0x91, 0xFF, 0x24, 0xC8, 0x85, 0xFF, 0x6A, 0xB4, 0x79, 0xFF, 0xAF, 0x9D, 0x3A, 0xFF, - 0xFF, 0x97, 0x0B, 0xFF, 0xF9, 0x93, 0x18, 0xFF, 0xED, 0x9B, 0x0F, 0xFF, 0xF0, 0x9A, 0x12, 0xFF, - 0xF3, 0x98, 0x15, 0xFF, 0xF1, 0x96, 0x13, 0xFF, 0xEF, 0x94, 0x11, 0xFF, 0xEF, 0x94, 0x11, 0xFF, - 0xF4, 0xCF, 0x58, 0xFF, 0xF4, 0xCE, 0x55, 0xFF, 0xF4, 0xCD, 0x53, 0xFF, 0xF6, 0xCC, 0x52, 0xFF, - 0xF8, 0xCB, 0x52, 0xFF, 0xFA, 0xD5, 0x52, 0xFF, 0xFB, 0xC7, 0x4E, 0xFF, 0xAD, 0x4C, 0x00, 0xFF, - 0xCA, 0x6F, 0x09, 0xFF, 0xD3, 0x7F, 0x0B, 0xFF, 0xD4, 0x88, 0x05, 0xFF, 0xDB, 0x97, 0x04, 0xFF, - 0xE1, 0xA7, 0x04, 0xFF, 0xE5, 0xB6, 0x18, 0xFF, 0xF1, 0xC7, 0x3F, 0xFF, 0xF3, 0xD3, 0x62, 0xFF, - 0xF4, 0xDF, 0x86, 0xFF, 0xF7, 0xE4, 0x91, 0xFF, 0xF9, 0xE9, 0x9B, 0xFF, 0xF9, 0xF0, 0xAD, 0xFF, - 0xF9, 0xF7, 0xBF, 0xFF, 0xFB, 0xFA, 0xCB, 0xFF, 0xFD, 0xFC, 0xD7, 0xFF, 0xFC, 0xFD, 0xDE, 0xFF, - 0xFB, 0xFD, 0xE5, 0xFF, 0xFE, 0xFF, 0xEF, 0xFF, 0xFF, 0xFF, 0xF9, 0xFF, 0xFA, 0xFE, 0xF2, 0xFF, - 0xFC, 0xFE, 0xFE, 0xFF, 0xFB, 0xE9, 0xC6, 0xFF, 0xEC, 0xAF, 0x1D, 0xFF, 0xF6, 0xB4, 0x30, 0xFF, - 0xF8, 0xB6, 0x2F, 0xFF, 0xF6, 0xA7, 0x19, 0xFF, 0xF0, 0xB0, 0x26, 0xFF, 0xF2, 0xAD, 0x22, 0xFF, - 0xF5, 0xAB, 0x1D, 0xFF, 0xF9, 0xA9, 0x26, 0xFF, 0xF6, 0xA6, 0x1C, 0xFF, 0xE9, 0xCD, 0x7D, 0xFF, - 0xDC, 0xF4, 0xDF, 0xFF, 0xAF, 0xFE, 0xEA, 0xFF, 0xED, 0xFD, 0xFD, 0xFF, 0xEF, 0xFF, 0xFF, 0xFF, - 0xD3, 0xF8, 0xFB, 0xFF, 0xB4, 0xEE, 0xEC, 0xFF, 0xAB, 0xE9, 0xE6, 0xFF, 0x89, 0xE6, 0xD8, 0xFF, - 0x67, 0xE2, 0xCB, 0xFF, 0x52, 0xE1, 0xB8, 0xFF, 0x4C, 0xDD, 0xA6, 0xFF, 0x7E, 0xC5, 0x74, 0xFF, - 0xB0, 0xAD, 0x42, 0xFF, 0xF3, 0x9B, 0x22, 0xFF, 0xFF, 0x9C, 0x09, 0xFF, 0xF5, 0x98, 0x09, 0xFF, - 0xEE, 0x9C, 0x10, 0xFF, 0xED, 0x99, 0x17, 0xFF, 0xED, 0x9D, 0x14, 0xFF, 0xEF, 0x9B, 0x14, 0xFF, - 0xF2, 0x99, 0x15, 0xFF, 0xF0, 0x97, 0x13, 0xFF, 0xEE, 0x95, 0x11, 0xFF, 0xEE, 0x95, 0x11, 0xFF, - 0xF5, 0xD0, 0x5A, 0xFF, 0xF4, 0xCF, 0x57, 0xFF, 0xF3, 0xCE, 0x54, 0xFF, 0xF5, 0xCC, 0x53, 0xFF, - 0xF7, 0xCB, 0x53, 0xFF, 0xF4, 0xD3, 0x4C, 0xFF, 0xDD, 0x9A, 0x2C, 0xFF, 0xC1, 0x5D, 0x03, 0xFF, - 0xC8, 0x72, 0x05, 0xFF, 0xD2, 0x83, 0x06, 0xFF, 0xDC, 0x93, 0x07, 0xFF, 0xE1, 0xA2, 0x07, 0xFF, - 0xE7, 0xB0, 0x08, 0xFF, 0xEE, 0xBF, 0x27, 0xFF, 0xF6, 0xCD, 0x47, 0xFF, 0xF7, 0xD8, 0x6B, 0xFF, - 0xF9, 0xE2, 0x8E, 0xFF, 0xFA, 0xE7, 0x9A, 0xFF, 0xFB, 0xEC, 0xA6, 0xFF, 0xFA, 0xF3, 0xB6, 0xFF, - 0xFA, 0xF9, 0xC7, 0xFF, 0xFB, 0xFB, 0xD0, 0xFF, 0xFD, 0xFC, 0xD9, 0xFF, 0xFC, 0xFD, 0xDD, 0xFF, - 0xFC, 0xFE, 0xE2, 0xFF, 0xFE, 0xFF, 0xEE, 0xFF, 0xFF, 0xFF, 0xFB, 0xFF, 0xF7, 0xFD, 0xEA, 0xFF, - 0xFE, 0xFE, 0xFF, 0xFF, 0xF7, 0xD7, 0x8F, 0xFF, 0xF1, 0xAF, 0x1E, 0xFF, 0xF6, 0xB0, 0x2E, 0xFF, - 0xEB, 0xAB, 0x17, 0xFF, 0xFD, 0xF7, 0xDF, 0xFF, 0xE9, 0xAC, 0x24, 0xFF, 0xF0, 0xAC, 0x22, 0xFF, - 0xF8, 0xAC, 0x21, 0xFF, 0xF6, 0xAE, 0x26, 0xFF, 0xF5, 0xB0, 0x2B, 0xFF, 0xF4, 0xA9, 0x19, 0xFF, - 0xF3, 0xA2, 0x08, 0xFF, 0xF9, 0xA7, 0x22, 0xFF, 0xF2, 0xC1, 0x4C, 0xFF, 0xEE, 0xCD, 0x6D, 0xFF, - 0xDB, 0xC9, 0x7D, 0xFF, 0xC2, 0xCA, 0x7F, 0xFF, 0xC6, 0xC5, 0x81, 0xFF, 0xCB, 0xBC, 0x60, 0xFF, - 0xCF, 0xB3, 0x40, 0xFF, 0xE9, 0xA7, 0x24, 0xFF, 0xFF, 0x9B, 0x07, 0xFF, 0xFF, 0x9D, 0x10, 0xFF, - 0xFF, 0x9F, 0x1A, 0xFF, 0xE9, 0x98, 0x0F, 0xFF, 0xF9, 0x9C, 0x14, 0xFF, 0xF7, 0x9C, 0x14, 0xFF, - 0xF4, 0x9B, 0x14, 0xFF, 0xF1, 0x9D, 0x17, 0xFF, 0xED, 0x9E, 0x19, 0xFF, 0xEF, 0x9C, 0x16, 0xFF, - 0xF1, 0x99, 0x14, 0xFF, 0xEF, 0x97, 0x12, 0xFF, 0xED, 0x95, 0x10, 0xFF, 0xED, 0x95, 0x10, 0xFF, - 0xF6, 0xD1, 0x5C, 0xFF, 0xF4, 0xD0, 0x58, 0xFF, 0xF3, 0xCF, 0x55, 0xFF, 0xF5, 0xCD, 0x54, 0xFF, - 0xF7, 0xCC, 0x53, 0xFF, 0xF6, 0xD5, 0x51, 0xFF, 0xCE, 0x7B, 0x16, 0xFF, 0xC6, 0x67, 0x03, 0xFF, - 0xCF, 0x7B, 0x06, 0xFF, 0xD7, 0x8B, 0x05, 0xFF, 0xDF, 0x9B, 0x05, 0xFF, 0xE4, 0xA8, 0x07, 0xFF, - 0xEA, 0xB6, 0x09, 0xFF, 0xF1, 0xC3, 0x2A, 0xFF, 0xF7, 0xD1, 0x4C, 0xFF, 0xF8, 0xDB, 0x6C, 0xFF, - 0xFA, 0xE4, 0x8D, 0xFF, 0xFA, 0xEA, 0x9C, 0xFF, 0xFB, 0xEF, 0xAB, 0xFF, 0xFA, 0xF5, 0xBC, 0xFF, - 0xFA, 0xFA, 0xCD, 0xFF, 0xFB, 0xFB, 0xD4, 0xFF, 0xFD, 0xFC, 0xDB, 0xFF, 0xFC, 0xFD, 0xDC, 0xFF, - 0xFC, 0xFE, 0xDD, 0xFF, 0xFC, 0xFE, 0xE3, 0xFF, 0xFD, 0xFE, 0xEA, 0xFF, 0xFD, 0xFF, 0xFE, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xDE, 0xC0, 0x27, 0xFF, 0xF5, 0xB4, 0x26, 0xFF, 0xF8, 0xB0, 0x1E, 0xFF, - 0xFF, 0xC6, 0x4D, 0xFF, 0xEF, 0xF8, 0xFF, 0xFF, 0xFA, 0xFF, 0xFE, 0xFF, 0xF6, 0xD8, 0x8B, 0xFF, - 0xF3, 0xA7, 0x18, 0xFF, 0xF4, 0xA9, 0x1D, 0xFF, 0xF5, 0xAC, 0x22, 0xFF, 0xF2, 0xAB, 0x22, 0xFF, - 0xF0, 0xAB, 0x22, 0xFF, 0xF2, 0xA3, 0x1A, 0xFF, 0xEE, 0xA6, 0x1A, 0xFF, 0xF4, 0xA8, 0x17, 0xFF, - 0xF3, 0xA2, 0x0D, 0xFF, 0xF2, 0xA4, 0x10, 0xFF, 0xFF, 0xA3, 0x14, 0xFF, 0xFC, 0xA3, 0x15, 0xFF, - 0xF9, 0xA2, 0x16, 0xFF, 0xF2, 0xA2, 0x17, 0xFF, 0xEC, 0xA1, 0x18, 0xFF, 0xFD, 0x99, 0x0D, 0xFF, - 0xED, 0x9A, 0x16, 0xFF, 0xFF, 0xA0, 0x00, 0xFF, 0xE8, 0x9C, 0x2B, 0xFF, 0xAF, 0xB5, 0x60, 0xFF, - 0xF7, 0x99, 0x10, 0xFF, 0xF2, 0x9B, 0x14, 0xFF, 0xED, 0x9D, 0x18, 0xFF, 0xEE, 0x9B, 0x16, 0xFF, - 0xEF, 0x99, 0x13, 0xFF, 0xED, 0x97, 0x11, 0xFF, 0xEB, 0x95, 0x0F, 0xFF, 0xEB, 0x95, 0x0F, 0xFF, - 0xF7, 0xD2, 0x5E, 0xFF, 0xF4, 0xD1, 0x5A, 0xFF, 0xF2, 0xD0, 0x56, 0xFF, 0xF5, 0xCE, 0x54, 0xFF, - 0xF7, 0xCC, 0x53, 0xFF, 0xF7, 0xD7, 0x56, 0xFF, 0xC0, 0x5B, 0x00, 0xFF, 0xCB, 0x70, 0x03, 0xFF, - 0xD6, 0x84, 0x06, 0xFF, 0xDC, 0x94, 0x05, 0xFF, 0xE2, 0xA3, 0x03, 0xFF, 0xE8, 0xAF, 0x07, 0xFF, - 0xEE, 0xBB, 0x0B, 0xFF, 0xF3, 0xC8, 0x2D, 0xFF, 0xF8, 0xD5, 0x50, 0xFF, 0xF9, 0xDE, 0x6E, 0xFF, - 0xFA, 0xE6, 0x8C, 0xFF, 0xFB, 0xEC, 0x9F, 0xFF, 0xFB, 0xF2, 0xB1, 0xFF, 0xFA, 0xF7, 0xC2, 0xFF, - 0xF9, 0xFB, 0xD3, 0xFF, 0xFB, 0xFC, 0xD8, 0xFF, 0xFD, 0xFC, 0xDD, 0xFF, 0xFC, 0xFD, 0xDB, 0xFF, - 0xFC, 0xFE, 0xD8, 0xFF, 0xFB, 0xFD, 0xD8, 0xFF, 0xFA, 0xFC, 0xD9, 0xFF, 0xFA, 0xFA, 0xE4, 0xFF, - 0xF6, 0xE9, 0xA3, 0xFF, 0xFB, 0xAC, 0x2A, 0xFF, 0xFA, 0xB9, 0x2E, 0xFF, 0xED, 0xAD, 0x1A, 0xFF, - 0xF7, 0xDA, 0x99, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xFD, 0xFE, 0xFF, 0xFC, 0xFE, 0xFE, 0xFF, - 0xFD, 0xFF, 0xFF, 0xFF, 0xF9, 0xD4, 0x8C, 0xFF, 0xF5, 0xA8, 0x19, 0xFF, 0xF7, 0xA9, 0x17, 0xFF, - 0xF8, 0xA9, 0x16, 0xFF, 0xF3, 0xA7, 0x1A, 0xFF, 0xED, 0xA5, 0x1E, 0xFF, 0xF1, 0xA7, 0x1F, 0xFF, - 0xF6, 0xA9, 0x20, 0xFF, 0xF6, 0xA7, 0x1D, 0xFF, 0xF6, 0xA5, 0x1A, 0xFF, 0xF8, 0xA3, 0x16, 0xFF, - 0xFA, 0xA1, 0x12, 0xFF, 0xFC, 0x9D, 0x0A, 0xFF, 0xFE, 0x98, 0x03, 0xFF, 0xF9, 0xA1, 0x25, 0xFF, - 0xB0, 0xC0, 0x6F, 0xFF, 0x5D, 0xC9, 0xCF, 0xFF, 0x27, 0xE5, 0xFF, 0xFF, 0xB3, 0xB4, 0x73, 0xFF, - 0xF9, 0x97, 0x0B, 0xFF, 0xF3, 0x9A, 0x11, 0xFF, 0xED, 0x9D, 0x17, 0xFF, 0xEE, 0x9B, 0x15, 0xFF, - 0xEE, 0x9A, 0x13, 0xFF, 0xEC, 0x98, 0x11, 0xFF, 0xEA, 0x96, 0x0F, 0xFF, 0xEA, 0x96, 0x0F, 0xFF, - 0xF6, 0xD1, 0x5D, 0xFF, 0xF5, 0xD1, 0x5A, 0xFF, 0xF4, 0xD2, 0x58, 0xFF, 0xF3, 0xCE, 0x53, 0xFF, - 0xFA, 0xD1, 0x56, 0xFF, 0xE6, 0xB1, 0x3F, 0xFF, 0xC6, 0x64, 0x01, 0xFF, 0xCE, 0x75, 0x02, 0xFF, - 0xD7, 0x87, 0x04, 0xFF, 0xDD, 0x95, 0x02, 0xFF, 0xE4, 0xA4, 0x00, 0xFF, 0xEA, 0xB0, 0x03, 0xFF, - 0xF1, 0xBD, 0x06, 0xFF, 0xF2, 0xC8, 0x1B, 0xFF, 0xFB, 0xD5, 0x42, 0xFF, 0xFB, 0xDD, 0x63, 0xFF, - 0xFB, 0xE5, 0x84, 0xFF, 0xFC, 0xEB, 0x98, 0xFF, 0xFC, 0xF1, 0xAB, 0xFF, 0xFF, 0xF8, 0xBD, 0xFF, - 0xFF, 0xFF, 0xCF, 0xFF, 0xFF, 0xFC, 0xCF, 0xFF, 0xFB, 0xF9, 0xCF, 0xFF, 0xFD, 0xFE, 0xD2, 0xFF, - 0xFF, 0xFF, 0xD4, 0xFF, 0xFF, 0xF9, 0xC6, 0xFF, 0xFF, 0xEE, 0xB7, 0xFF, 0xD9, 0xD7, 0x59, 0xFF, - 0xE9, 0xB9, 0x40, 0xFF, 0xFF, 0xB9, 0x2E, 0xFF, 0xEF, 0xB1, 0x2B, 0xFF, 0xEB, 0xAF, 0x27, 0xFF, - 0xF1, 0xEF, 0xDD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFE, 0xFF, 0xFD, 0xFE, 0xFF, 0xFF, - 0xF9, 0xFD, 0xFF, 0xFF, 0xF9, 0xFF, 0xFF, 0xFF, 0xF9, 0xFF, 0xFF, 0xFF, 0xF0, 0xE8, 0xC1, 0xFF, - 0xE6, 0xCD, 0x83, 0xFF, 0xE8, 0xBB, 0x52, 0xFF, 0xEB, 0xA9, 0x21, 0xFF, 0xFF, 0xA1, 0x13, 0xFF, - 0xF7, 0x9F, 0x06, 0xFF, 0xF8, 0x9F, 0x0F, 0xFF, 0xEA, 0xA3, 0x18, 0xFF, 0xE0, 0xB1, 0x43, 0xFF, - 0xC9, 0xC2, 0x6D, 0xFF, 0x99, 0xD6, 0xAF, 0xFF, 0x6A, 0xEB, 0xF1, 0xFF, 0x31, 0xEE, 0xEB, 0xFF, - 0x47, 0xE6, 0xF8, 0xFF, 0x3A, 0xE1, 0xFF, 0xFF, 0x41, 0xE1, 0xFC, 0xFF, 0xF4, 0x98, 0x00, 0xFF, - 0xFC, 0xA1, 0x19, 0xFF, 0xF6, 0x9E, 0x15, 0xFF, 0xF1, 0x9A, 0x11, 0xFF, 0xF0, 0x9A, 0x13, 0xFF, - 0xF0, 0x99, 0x14, 0xFF, 0xEE, 0x97, 0x12, 0xFF, 0xEC, 0x95, 0x10, 0xFF, 0xEC, 0x95, 0x10, 0xFF, - 0xF5, 0xCF, 0x5C, 0xFF, 0xF6, 0xD1, 0x5A, 0xFF, 0xF6, 0xD4, 0x59, 0xFF, 0xF2, 0xCD, 0x51, 0xFF, - 0xFE, 0xD6, 0x59, 0xFF, 0xD5, 0x8B, 0x29, 0xFF, 0xCB, 0x6C, 0x02, 0xFF, 0xD1, 0x7A, 0x01, 0xFF, - 0xD8, 0x89, 0x01, 0xFF, 0xDE, 0x97, 0x00, 0xFF, 0xE5, 0xA5, 0x00, 0xFF, 0xEC, 0xB2, 0x00, 0xFF, - 0xF3, 0xBE, 0x02, 0xFF, 0xF1, 0xC7, 0x08, 0xFF, 0xFE, 0xD5, 0x35, 0xFF, 0xFD, 0xDD, 0x58, 0xFF, - 0xFB, 0xE4, 0x7C, 0xFF, 0xFC, 0xEA, 0x91, 0xFF, 0xFE, 0xEF, 0xA6, 0xFF, 0xFE, 0xF2, 0xB0, 0xFF, - 0xFE, 0xF5, 0xBA, 0xFF, 0xFC, 0xF5, 0xBD, 0xFF, 0xF9, 0xF5, 0xC0, 0xFF, 0xF6, 0xF7, 0xC0, 0xFF, - 0xF4, 0xF9, 0xC1, 0xFF, 0xFC, 0xFC, 0xC6, 0xFF, 0xFF, 0xFF, 0xCC, 0xFF, 0xF7, 0xF8, 0xC1, 0xFF, - 0xF3, 0xCC, 0x59, 0xFF, 0xF2, 0xB0, 0x38, 0xFF, 0xF5, 0xBA, 0x37, 0xFF, 0xF7, 0xB4, 0x29, 0xFF, - 0xF8, 0xFB, 0xFC, 0xFF, 0xFF, 0xFD, 0xFC, 0xFF, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, - 0xF6, 0xFC, 0xFF, 0xFF, 0xF2, 0xFE, 0xFC, 0xFF, 0xEE, 0xFF, 0xF6, 0xFF, 0xE9, 0xFF, 0xFC, 0xFF, - 0xE4, 0xFF, 0xFF, 0xFF, 0xD7, 0xFF, 0xFF, 0xFF, 0xCA, 0xFF, 0xFF, 0xFF, 0xF1, 0xFB, 0xFF, 0xFF, - 0xDF, 0xFF, 0xFF, 0xFF, 0xC1, 0xFD, 0xFC, 0xFF, 0x88, 0xFF, 0xF6, 0xFF, 0x91, 0xFD, 0xFB, 0xFF, - 0x7F, 0xFF, 0xFF, 0xFF, 0x6C, 0xFC, 0xFC, 0xFF, 0x59, 0xF6, 0xF9, 0xFF, 0x58, 0xEF, 0xF8, 0xFF, - 0x57, 0xE9, 0xF7, 0xFF, 0x59, 0xE3, 0xF6, 0xFF, 0x67, 0xD2, 0xD0, 0xFF, 0xFF, 0x98, 0x08, 0xFF, - 0xEF, 0x9A, 0x17, 0xFF, 0xF1, 0x99, 0x12, 0xFF, 0xF4, 0x98, 0x0C, 0xFF, 0xF3, 0x99, 0x10, 0xFF, - 0xF1, 0x99, 0x15, 0xFF, 0xEF, 0x97, 0x13, 0xFF, 0xED, 0x95, 0x11, 0xFF, 0xED, 0x95, 0x11, 0xFF, - 0xF9, 0xD1, 0x5E, 0xFF, 0xF7, 0xD3, 0x5B, 0xFF, 0xF6, 0xD4, 0x59, 0xFF, 0xF8, 0xD3, 0x57, 0xFF, - 0xFF, 0xDA, 0x5E, 0xFF, 0xCD, 0x70, 0x19, 0xFF, 0xCC, 0x6D, 0x02, 0xFF, 0xD2, 0x7B, 0x03, 0xFF, - 0xD9, 0x88, 0x04, 0xFF, 0xDF, 0x96, 0x04, 0xFF, 0xE6, 0xA5, 0x04, 0xFF, 0xE6, 0xAD, 0x01, 0xFF, - 0xE7, 0xB4, 0x00, 0xFF, 0xEA, 0xBE, 0x06, 0xFF, 0xF5, 0xCA, 0x23, 0xFF, 0xF8, 0xD7, 0x4B, 0xFF, - 0xFB, 0xE3, 0x74, 0xFF, 0xFC, 0xE8, 0x89, 0xFF, 0xFE, 0xEC, 0x9E, 0xFF, 0xFE, 0xED, 0xA5, 0xFF, - 0xFE, 0xEE, 0xAB, 0xFF, 0xFB, 0xEF, 0xAD, 0xFF, 0xF9, 0xEF, 0xB0, 0xFF, 0xF8, 0xF2, 0xB3, 0xFF, - 0xF8, 0xF5, 0xB6, 0xFF, 0xFC, 0xF8, 0xB5, 0xFF, 0xFF, 0xFB, 0xB5, 0xFF, 0xFF, 0xF3, 0xD9, 0xFF, - 0xF1, 0xB9, 0x1A, 0xFF, 0xF3, 0xB3, 0x28, 0xFF, 0xF6, 0xB3, 0x2A, 0xFF, 0xF3, 0xCE, 0x73, 0xFF, - 0xF5, 0xFD, 0xFD, 0xFF, 0xF9, 0xFE, 0xFD, 0xFF, 0xFE, 0xFF, 0xFD, 0xFF, 0xF8, 0xFE, 0xFF, 0xFF, - 0xF3, 0xFD, 0xFF, 0xFF, 0xEE, 0xFE, 0xFD, 0xFF, 0xE9, 0xFE, 0xFA, 0xFF, 0xE3, 0xFF, 0xFC, 0xFF, - 0xDE, 0xFF, 0xFF, 0xFF, 0xD0, 0xFF, 0xFF, 0xFF, 0xC2, 0xFF, 0xFF, 0xFF, 0xD6, 0xFA, 0xFC, 0xFF, - 0xF3, 0xFC, 0xFF, 0xFF, 0xBF, 0xFF, 0xFE, 0xFF, 0xC4, 0xFA, 0xFC, 0xFF, 0x84, 0xFF, 0xFC, 0xFF, - 0x8A, 0xFA, 0xFB, 0xFF, 0x79, 0xF6, 0xFA, 0xFF, 0x68, 0xF2, 0xF9, 0xFF, 0x5E, 0xED, 0xF6, 0xFF, - 0x53, 0xE8, 0xF4, 0xFF, 0x48, 0xE8, 0xF7, 0xFF, 0xA8, 0xBC, 0x87, 0xFF, 0xFB, 0x9A, 0x10, 0xFF, - 0xF1, 0x9B, 0x17, 0xFF, 0xF1, 0x9A, 0x14, 0xFF, 0xF1, 0x9A, 0x10, 0xFF, 0xF2, 0x99, 0x13, 0xFF, - 0xF3, 0x98, 0x16, 0xFF, 0xF1, 0x96, 0x14, 0xFF, 0xEF, 0x94, 0x12, 0xFF, 0xEF, 0x94, 0x12, 0xFF, - 0xFC, 0xD4, 0x61, 0xFF, 0xF9, 0xD4, 0x5D, 0xFF, 0xF6, 0xD4, 0x58, 0xFF, 0xF5, 0xD1, 0x55, 0xFF, - 0xF5, 0xCE, 0x53, 0xFF, 0xBD, 0x4D, 0x01, 0xFF, 0xCD, 0x6E, 0x02, 0xFF, 0xD3, 0x7B, 0x04, 0xFF, - 0xDA, 0x87, 0x06, 0xFF, 0xE0, 0x96, 0x09, 0xFF, 0xE6, 0xA5, 0x0C, 0xFF, 0xE9, 0xB0, 0x0A, 0xFF, - 0xEB, 0xBA, 0x09, 0xFF, 0xF3, 0xC5, 0x15, 0xFF, 0xFB, 0xD0, 0x21, 0xFF, 0xFB, 0xD9, 0x46, 0xFF, - 0xFB, 0xE3, 0x6B, 0xFF, 0xFC, 0xE6, 0x81, 0xFF, 0xFD, 0xE9, 0x97, 0xFF, 0xFD, 0xE8, 0x99, 0xFF, - 0xFD, 0xE8, 0x9B, 0xFF, 0xFB, 0xE8, 0x9D, 0xFF, 0xF8, 0xE9, 0x9F, 0xFF, 0xFA, 0xEE, 0xA5, 0xFF, - 0xFC, 0xF2, 0xAB, 0xFF, 0xFB, 0xEF, 0xB0, 0xFF, 0xFB, 0xEB, 0xB4, 0xFF, 0xF8, 0xDD, 0x89, 0xFF, - 0xF3, 0xB4, 0x27, 0xFF, 0xF7, 0xBD, 0x3E, 0xFF, 0xF7, 0xAC, 0x1E, 0xFF, 0xF0, 0xE8, 0xBC, 0xFF, - 0xF2, 0xFF, 0xFE, 0xFF, 0xF3, 0xFF, 0xFD, 0xFF, 0xF4, 0xFE, 0xFD, 0xFF, 0xF2, 0xFE, 0xFD, 0xFF, - 0xEF, 0xFE, 0xFE, 0xFF, 0xE9, 0xFE, 0xFE, 0xFF, 0xE3, 0xFE, 0xFE, 0xFF, 0xDD, 0xFD, 0xFD, 0xFF, - 0xD7, 0xFD, 0xFD, 0xFF, 0xC8, 0xFE, 0xFC, 0xFF, 0xB9, 0xFF, 0xFB, 0xFF, 0x9F, 0xFE, 0xF5, 0xFF, - 0xCE, 0xFF, 0xFF, 0xFF, 0xF5, 0xF9, 0xFF, 0xFF, 0xC8, 0xFF, 0xFF, 0xFF, 0xBD, 0xF7, 0xFC, 0xFF, - 0x7A, 0xF8, 0xF8, 0xFF, 0x6B, 0xF5, 0xF8, 0xFF, 0x5C, 0xF3, 0xF9, 0xFF, 0x55, 0xED, 0xF5, 0xFF, - 0x4F, 0xE8, 0xF1, 0xFF, 0x37, 0xEE, 0xF8, 0xFF, 0xE9, 0xA6, 0x3E, 0xFF, 0xF5, 0x9C, 0x17, 0xFF, - 0xF4, 0x9D, 0x17, 0xFF, 0xF1, 0x9C, 0x15, 0xFF, 0xEE, 0x9B, 0x14, 0xFF, 0xF1, 0x99, 0x15, 0xFF, - 0xF4, 0x97, 0x17, 0xFF, 0xF2, 0x95, 0x15, 0xFF, 0xF0, 0x93, 0x13, 0xFF, 0xF0, 0x93, 0x13, 0xFF, - 0xFB, 0xD6, 0x66, 0xFF, 0xF4, 0xD1, 0x5E, 0xFF, 0xF6, 0xD3, 0x5F, 0xFF, 0xF9, 0xD7, 0x59, 0xFF, - 0xDA, 0x9D, 0x39, 0xFF, 0xBE, 0x58, 0x08, 0xFF, 0xCD, 0x6C, 0x08, 0xFF, 0xD2, 0x79, 0x0C, 0xFF, - 0xD7, 0x87, 0x0F, 0xFF, 0xDF, 0x96, 0x11, 0xFF, 0xE7, 0xA5, 0x13, 0xFF, 0xEA, 0xB0, 0x13, 0xFF, - 0xF5, 0xC2, 0x1B, 0xFF, 0xF3, 0xC8, 0x0F, 0xFF, 0xF9, 0xD0, 0x16, 0xFF, 0xF4, 0xD2, 0x27, 0xFF, - 0xF7, 0xD6, 0x4B, 0xFF, 0xF8, 0xDA, 0x60, 0xFF, 0xF9, 0xDE, 0x76, 0xFF, 0xF9, 0xDF, 0x7F, 0xFF, - 0xFA, 0xE0, 0x87, 0xFF, 0xFB, 0xE4, 0x8C, 0xFF, 0xFB, 0xE7, 0x91, 0xFF, 0xFC, 0xEA, 0x95, 0xFF, - 0xFC, 0xED, 0x9A, 0xFF, 0xFB, 0xEA, 0x9E, 0xFF, 0xFA, 0xE7, 0xA3, 0xFF, 0xFA, 0xCC, 0x5E, 0xFF, - 0xF5, 0xB6, 0x2C, 0xFF, 0xF9, 0xB8, 0x24, 0xFF, 0xF5, 0xB1, 0x14, 0xFF, 0xFF, 0xFB, 0xFF, 0xFF, - 0xEC, 0xFF, 0xFD, 0xFF, 0xED, 0xFF, 0xFF, 0xFF, 0xED, 0xFF, 0xFF, 0xFF, 0xEC, 0xFE, 0xFF, 0xFF, - 0xEA, 0xFD, 0xFD, 0xFF, 0xE3, 0xFD, 0xFD, 0xFF, 0xDC, 0xFD, 0xFD, 0xFF, 0xD5, 0xFD, 0xFD, 0xFF, - 0xCE, 0xFD, 0xFD, 0xFF, 0xC1, 0xFC, 0xFC, 0xFF, 0xB4, 0xFB, 0xFB, 0xFF, 0x8D, 0xFA, 0xF5, 0xFF, - 0x89, 0xFC, 0xF8, 0xFF, 0xCB, 0xFA, 0xF8, 0xFF, 0xF1, 0xFE, 0xF7, 0xFF, 0xBD, 0xFF, 0xF9, 0xFF, - 0xC2, 0xF9, 0xFA, 0xFF, 0xAC, 0xF8, 0xFB, 0xFF, 0x96, 0xF7, 0xFC, 0xFF, 0x91, 0xF4, 0xF9, 0xFF, - 0x8C, 0xF0, 0xF7, 0xFF, 0xA8, 0xE4, 0xFF, 0xFF, 0xF6, 0x95, 0x00, 0xFF, 0xF6, 0x99, 0x07, 0xFF, - 0xF7, 0x9D, 0x15, 0xFF, 0xF3, 0x9D, 0x15, 0xFF, 0xF0, 0x9C, 0x15, 0xFF, 0xF2, 0x9A, 0x15, 0xFF, - 0xF4, 0x98, 0x15, 0xFF, 0xF2, 0x97, 0x14, 0xFF, 0xF1, 0x95, 0x12, 0xFF, 0xF1, 0x95, 0x12, 0xFF, - 0xFA, 0xD9, 0x6A, 0xFF, 0xF0, 0xCE, 0x60, 0xFF, 0xF6, 0xD2, 0x66, 0xFF, 0xFD, 0xDD, 0x5C, 0xFF, - 0xC0, 0x6C, 0x1E, 0xFF, 0xBE, 0x63, 0x0E, 0xFF, 0xCD, 0x69, 0x0E, 0xFF, 0xD0, 0x78, 0x13, 0xFF, - 0xD4, 0x87, 0x18, 0xFF, 0xDE, 0x96, 0x19, 0xFF, 0xE9, 0xA6, 0x1A, 0xFF, 0xE3, 0xA8, 0x13, 0xFF, - 0xEE, 0xBA, 0x1D, 0xFF, 0xEA, 0xBD, 0x0C, 0xFF, 0xF6, 0xC5, 0x22, 0xFF, 0xEC, 0xC5, 0x13, 0xFF, - 0xF2, 0xCA, 0x2A, 0xFF, 0xF3, 0xCF, 0x40, 0xFF, 0xF4, 0xD3, 0x56, 0xFF, 0xF5, 0xD6, 0x65, 0xFF, - 0xF7, 0xD9, 0x74, 0xFF, 0xFA, 0xDF, 0x7B, 0xFF, 0xFE, 0xE4, 0x82, 0xFF, 0xFD, 0xE6, 0x86, 0xFF, - 0xFD, 0xE7, 0x89, 0xFF, 0xFB, 0xE4, 0x8D, 0xFF, 0xF9, 0xE2, 0x92, 0xFF, 0xFC, 0xBB, 0x33, 0xFF, - 0xF6, 0xB9, 0x31, 0xFF, 0xFD, 0xBA, 0x31, 0xFF, 0xF7, 0xC4, 0x57, 0xFF, 0xDE, 0xFF, 0xF3, 0xFF, - 0xE6, 0xFF, 0xFD, 0xFF, 0xE6, 0xFF, 0xFF, 0xFF, 0xE6, 0xFF, 0xFF, 0xFF, 0xE6, 0xFE, 0xFF, 0xFF, - 0xE5, 0xFC, 0xFD, 0xFF, 0xDD, 0xFC, 0xFD, 0xFF, 0xD5, 0xFC, 0xFD, 0xFF, 0xCD, 0xFD, 0xFD, 0xFF, - 0xC5, 0xFD, 0xFD, 0xFF, 0xBA, 0xFA, 0xFC, 0xFF, 0xAF, 0xF7, 0xFB, 0xFF, 0x9E, 0xF9, 0xFE, 0xFF, - 0x8D, 0xFB, 0xFF, 0xFF, 0x77, 0xFE, 0xFA, 0xFF, 0x7D, 0xFB, 0xF4, 0xFF, 0xD2, 0xF7, 0xF8, 0xFF, - 0xEE, 0xFF, 0xFD, 0xFF, 0xDF, 0xFD, 0xFE, 0xFF, 0xD0, 0xFB, 0xFE, 0xFF, 0xCD, 0xFA, 0xFD, 0xFF, - 0xC9, 0xF9, 0xFC, 0xFF, 0xCD, 0xD2, 0xA6, 0xFF, 0xEA, 0x98, 0x02, 0xFF, 0xEC, 0xA0, 0x1E, 0xFF, - 0xF9, 0x9E, 0x13, 0xFF, 0xF6, 0x9E, 0x15, 0xFF, 0xF2, 0x9D, 0x16, 0xFF, 0xF2, 0x9B, 0x15, 0xFF, - 0xF3, 0x99, 0x14, 0xFF, 0xF2, 0x98, 0x13, 0xFF, 0xF1, 0x97, 0x12, 0xFF, 0xF1, 0x97, 0x12, 0xFF, - 0xF3, 0xD4, 0x55, 0xFF, 0xF0, 0xD1, 0x5B, 0xFF, 0xF6, 0xD6, 0x69, 0xFF, 0xFF, 0xE2, 0x6D, 0xFF, - 0xA7, 0x4F, 0x0B, 0xFF, 0xBE, 0x60, 0x11, 0xFF, 0xCD, 0x6A, 0x0F, 0xFF, 0xD5, 0x83, 0x1F, 0xFF, - 0xDC, 0x89, 0x1E, 0xFF, 0xDD, 0x8B, 0x0F, 0xFF, 0xE0, 0x9B, 0x1A, 0xFF, 0xF3, 0xB0, 0x22, 0xFF, - 0xE0, 0xAA, 0x1D, 0xFF, 0xDF, 0xAE, 0x13, 0xFF, 0xEE, 0xBC, 0x25, 0xFF, 0xE6, 0xB9, 0x14, 0xFF, - 0xEF, 0xC1, 0x1F, 0xFF, 0xEF, 0xC7, 0x25, 0xFF, 0xEE, 0xCD, 0x2B, 0xFF, 0xF0, 0xCD, 0x3C, 0xFF, - 0xF3, 0xCE, 0x4E, 0xFF, 0xF8, 0xD6, 0x5B, 0xFF, 0xFE, 0xDE, 0x68, 0xFF, 0xFC, 0xDD, 0x6D, 0xFF, - 0xFA, 0xDC, 0x73, 0xFF, 0xF5, 0xDD, 0x75, 0xFF, 0xF6, 0xD3, 0x70, 0xFF, 0xFB, 0xBA, 0x30, 0xFF, - 0xF5, 0xB8, 0x33, 0xFF, 0xFE, 0xB5, 0x24, 0xFF, 0xE4, 0xDE, 0xA3, 0xFF, 0xDC, 0xFF, 0xF9, 0xFF, - 0xDC, 0xFD, 0xFD, 0xFF, 0xDC, 0xFE, 0xFE, 0xFF, 0xDB, 0xFF, 0xFF, 0xFF, 0xDA, 0xFE, 0xFE, 0xFF, - 0xD9, 0xFD, 0xFC, 0xFF, 0xD2, 0xFD, 0xFC, 0xFF, 0xCA, 0xFD, 0xFC, 0xFF, 0xC3, 0xFD, 0xFD, 0xFF, - 0xBB, 0xFD, 0xFD, 0xFF, 0xAF, 0xFB, 0xFC, 0xFF, 0xA2, 0xFA, 0xFC, 0xFF, 0x92, 0xFA, 0xFD, 0xFF, - 0x83, 0xFB, 0xFE, 0xFF, 0x6A, 0xFD, 0xFB, 0xFF, 0x60, 0xFC, 0xF8, 0xFF, 0x5D, 0xF8, 0xFA, 0xFF, - 0x4C, 0xF7, 0xFC, 0xFF, 0x76, 0xF4, 0xFD, 0xFF, 0xA0, 0xF2, 0xFE, 0xFF, 0x87, 0xEC, 0xF5, 0xFF, - 0x5F, 0xE3, 0xF7, 0xFF, 0xB4, 0xBB, 0x50, 0xFF, 0xFE, 0x99, 0x0C, 0xFF, 0xF7, 0x9E, 0x1A, 0xFF, - 0xF6, 0x9D, 0x15, 0xFF, 0xF4, 0x9D, 0x15, 0xFF, 0xF2, 0x9C, 0x15, 0xFF, 0xF2, 0x9B, 0x14, 0xFF, - 0xF1, 0x99, 0x12, 0xFF, 0xF1, 0x99, 0x12, 0xFF, 0xF1, 0x99, 0x12, 0xFF, 0xF1, 0x99, 0x12, 0xFF, - 0xFD, 0xD3, 0x66, 0xFF, 0xF9, 0xD6, 0x69, 0xFF, 0xF5, 0xD9, 0x6B, 0xFF, 0xDC, 0xB6, 0x4E, 0xFF, - 0xAE, 0x52, 0x18, 0xFF, 0xC6, 0x66, 0x1C, 0xFF, 0xBD, 0x5A, 0x00, 0xFF, 0xCA, 0x7D, 0x1A, 0xFF, - 0xD4, 0x7B, 0x15, 0xFF, 0xDC, 0x81, 0x04, 0xFF, 0xE7, 0xA0, 0x2A, 0xFF, 0xD3, 0x88, 0x00, 0xFF, - 0xE2, 0xAB, 0x2D, 0xFF, 0xDC, 0xA7, 0x23, 0xFF, 0xE6, 0xB3, 0x29, 0xFF, 0xE0, 0xAD, 0x16, 0xFF, - 0xEB, 0xB7, 0x14, 0xFF, 0xEA, 0xB9, 0x15, 0xFF, 0xE9, 0xBA, 0x16, 0xFF, 0xEC, 0xBE, 0x1F, 0xFF, - 0xEE, 0xC2, 0x28, 0xFF, 0xF6, 0xCD, 0x3B, 0xFF, 0xFE, 0xD8, 0x4E, 0xFF, 0xFB, 0xD5, 0x55, 0xFF, - 0xF7, 0xD1, 0x5D, 0xFF, 0xEF, 0xD6, 0x5D, 0xFF, 0xF3, 0xC4, 0x4E, 0xFF, 0xFA, 0xB9, 0x2E, 0xFF, - 0xF4, 0xB8, 0x35, 0xFF, 0xFF, 0xB1, 0x17, 0xFF, 0xD1, 0xF7, 0xF0, 0xFF, 0xDA, 0xFF, 0xFE, 0xFF, - 0xD2, 0xFC, 0xFC, 0xFF, 0xD1, 0xFD, 0xFD, 0xFF, 0xD0, 0xFE, 0xFD, 0xFF, 0xCF, 0xFD, 0xFC, 0xFF, - 0xCD, 0xFD, 0xFB, 0xFF, 0xC6, 0xFD, 0xFC, 0xFF, 0xBF, 0xFD, 0xFC, 0xFF, 0xB9, 0xFD, 0xFD, 0xFF, - 0xB2, 0xFC, 0xFD, 0xFF, 0xA3, 0xFC, 0xFD, 0xFF, 0x95, 0xFC, 0xFD, 0xFF, 0x87, 0xFC, 0xFC, 0xFF, - 0x78, 0xFB, 0xFC, 0xFF, 0x6C, 0xFA, 0xFD, 0xFF, 0x5F, 0xF8, 0xFD, 0xFF, 0x45, 0xF6, 0xF9, 0xFF, - 0x47, 0xEF, 0xF5, 0xFF, 0x37, 0xE9, 0xF2, 0xFF, 0x28, 0xE4, 0xEE, 0xFF, 0x24, 0xE3, 0xED, 0xFF, - 0x05, 0xDD, 0xFF, 0xFF, 0xFF, 0x99, 0x03, 0xFF, 0xF5, 0xA0, 0x16, 0xFF, 0xF4, 0x9E, 0x16, 0xFF, - 0xF3, 0x9C, 0x16, 0xFF, 0xF2, 0x9C, 0x15, 0xFF, 0xF2, 0x9B, 0x14, 0xFF, 0xF1, 0x9A, 0x12, 0xFF, - 0xEF, 0x99, 0x10, 0xFF, 0xF0, 0x9A, 0x11, 0xFF, 0xF1, 0x9B, 0x12, 0xFF, 0xF1, 0x9B, 0x12, 0xFF, - 0xFB, 0xD5, 0x65, 0xFF, 0xFC, 0xD4, 0x70, 0xFF, 0xFF, 0xE2, 0x77, 0xFF, 0xC7, 0x86, 0x3B, 0xFF, - 0xBA, 0x5F, 0x23, 0xFF, 0xBA, 0x6A, 0x1E, 0xFF, 0xD0, 0x7A, 0x21, 0xFF, 0xD7, 0x87, 0x27, 0xFF, - 0xD6, 0x8C, 0x24, 0xFF, 0xD3, 0x8D, 0x1D, 0xFF, 0xD0, 0x88, 0x21, 0xFF, 0xEA, 0xA0, 0x2B, 0xFF, - 0xD5, 0x95, 0x21, 0xFF, 0xEE, 0xA9, 0x30, 0xFF, 0xDA, 0xA0, 0x20, 0xFF, 0xDD, 0xA1, 0x16, 0xFF, - 0xDF, 0xA1, 0x0D, 0xFF, 0xE2, 0xAB, 0x19, 0xFF, 0xEB, 0xB1, 0x12, 0xFF, 0xED, 0xB8, 0x0F, 0xFF, - 0xEE, 0xBF, 0x0C, 0xFF, 0xEF, 0xC1, 0x1C, 0xFF, 0xF0, 0xC3, 0x2C, 0xFF, 0xF1, 0xC4, 0x36, 0xFF, - 0xF3, 0xC5, 0x40, 0xFF, 0xF1, 0xC9, 0x46, 0xFF, 0xF6, 0xC2, 0x45, 0xFF, 0xF9, 0xBA, 0x31, 0xFF, - 0xF6, 0xB7, 0x30, 0xFF, 0xF4, 0xC1, 0x4B, 0xFF, 0xC0, 0xFA, 0xF5, 0xFF, 0xC6, 0xFF, 0xFD, 0xFF, - 0xC4, 0xFC, 0xFC, 0xFF, 0xC4, 0xFC, 0xFD, 0xFF, 0xC3, 0xFD, 0xFD, 0xFF, 0xC2, 0xFD, 0xFC, 0xFF, - 0xC1, 0xFC, 0xFB, 0xFF, 0xB5, 0xF8, 0xF8, 0xFF, 0xB2, 0xFD, 0xFC, 0xFF, 0xAA, 0xFC, 0xFC, 0xFF, - 0xA3, 0xFC, 0xFC, 0xFF, 0x95, 0xFB, 0xFC, 0xFF, 0x88, 0xFB, 0xFB, 0xFF, 0x7A, 0xFB, 0xFB, 0xFF, - 0x6D, 0xFA, 0xFB, 0xFF, 0x61, 0xF8, 0xFB, 0xFF, 0x56, 0xF6, 0xFC, 0xFF, 0x44, 0xF2, 0xF8, 0xFF, - 0x40, 0xEA, 0xF4, 0xFF, 0x31, 0xE5, 0xEF, 0xFF, 0x23, 0xDF, 0xEA, 0xFF, 0x1C, 0xE0, 0xFA, 0xFF, - 0x44, 0xD1, 0xC5, 0xFF, 0xFE, 0xA1, 0x0A, 0xFF, 0xF9, 0x9F, 0x15, 0xFF, 0xF5, 0x9F, 0x17, 0xFF, - 0xF2, 0x9F, 0x18, 0xFF, 0xF2, 0x9E, 0x16, 0xFF, 0xF2, 0x9D, 0x15, 0xFF, 0xF5, 0x9F, 0x16, 0xFF, - 0xF8, 0xA0, 0x18, 0xFF, 0xF5, 0x9D, 0x15, 0xFF, 0xF2, 0x9A, 0x12, 0xFF, 0xF2, 0x9A, 0x12, 0xFF, - 0xF9, 0xD7, 0x64, 0xFF, 0xF6, 0xD1, 0x64, 0xFF, 0xFF, 0xE6, 0x5D, 0xFF, 0x9A, 0x43, 0x03, 0xFF, - 0xA5, 0x4B, 0x0D, 0xFF, 0xCC, 0x7B, 0x30, 0xFF, 0xC0, 0x54, 0x04, 0xFF, 0xC9, 0x53, 0x00, 0xFF, - 0xC5, 0x67, 0x03, 0xFF, 0xC9, 0x87, 0x25, 0xFF, 0xCA, 0x80, 0x28, 0xFF, 0xD0, 0x88, 0x27, 0xFF, - 0xD7, 0x90, 0x26, 0xFF, 0xC9, 0x74, 0x06, 0xFF, 0xCF, 0x8D, 0x17, 0xFF, 0xE1, 0x9C, 0x1E, 0xFF, - 0xE3, 0x9B, 0x16, 0xFF, 0xDA, 0x9E, 0x1E, 0xFF, 0xDD, 0x97, 0x00, 0xFF, 0xE6, 0xA4, 0x03, 0xFF, - 0xEE, 0xB1, 0x07, 0xFF, 0xE8, 0xB0, 0x08, 0xFF, 0xE2, 0xAE, 0x09, 0xFF, 0xE8, 0xB4, 0x16, 0xFF, - 0xEF, 0xB9, 0x23, 0xFF, 0xF4, 0xBD, 0x30, 0xFF, 0xF9, 0xC1, 0x3C, 0xFF, 0xF9, 0xBB, 0x34, 0xFF, - 0xF9, 0xB6, 0x2C, 0xFF, 0xE8, 0xD2, 0x80, 0xFF, 0xAE, 0xFD, 0xFA, 0xFF, 0xB2, 0xFC, 0xFB, 0xFF, - 0xB6, 0xFB, 0xFC, 0xFF, 0xB6, 0xFC, 0xFC, 0xFF, 0xB6, 0xFC, 0xFD, 0xFF, 0xB5, 0xFC, 0xFC, 0xFF, - 0xB4, 0xFC, 0xFB, 0xFF, 0xA4, 0xF4, 0xF3, 0xFF, 0xA5, 0xFC, 0xFC, 0xFF, 0x9C, 0xFC, 0xFC, 0xFF, - 0x93, 0xFB, 0xFC, 0xFF, 0x87, 0xFB, 0xFB, 0xFF, 0x7A, 0xFA, 0xFA, 0xFF, 0x6D, 0xFA, 0xFA, 0xFF, - 0x61, 0xF9, 0xF9, 0xFF, 0x57, 0xF7, 0xFA, 0xFF, 0x4E, 0xF4, 0xFA, 0xFF, 0x44, 0xED, 0xF6, 0xFF, - 0x3A, 0xE6, 0xF3, 0xFF, 0x2C, 0xE1, 0xED, 0xFF, 0x1E, 0xDB, 0xE7, 0xFF, 0x19, 0xD1, 0xFF, 0xFF, - 0x8F, 0xB0, 0x77, 0xFF, 0xFD, 0xA0, 0x09, 0xFF, 0xFD, 0x9D, 0x14, 0xFF, 0xF7, 0x9F, 0x17, 0xFF, - 0xF2, 0xA2, 0x1A, 0xFF, 0xF2, 0xA0, 0x18, 0xFF, 0xF2, 0x9E, 0x16, 0xFF, 0xF1, 0x9B, 0x13, 0xFF, - 0xF0, 0x98, 0x10, 0xFF, 0xF1, 0x99, 0x11, 0xFF, 0xF2, 0x9A, 0x12, 0xFF, 0xF2, 0x9A, 0x12, 0xFF, - 0xF7, 0xD4, 0x5F, 0xFF, 0xFC, 0xDC, 0x67, 0xFF, 0xF0, 0xC1, 0x4F, 0xFF, 0x8A, 0x2B, 0x00, 0xFF, - 0xBF, 0x6A, 0x2D, 0xFF, 0xAC, 0x47, 0x05, 0xFF, 0xB9, 0x43, 0x00, 0xFF, 0xC4, 0x85, 0x35, 0xFF, - 0xBB, 0x4D, 0x06, 0xFF, 0xC3, 0x61, 0x13, 0xFF, 0xCA, 0x70, 0x2C, 0xFF, 0xB3, 0x5A, 0x0F, 0xFF, - 0xCC, 0x74, 0x21, 0xFF, 0xC2, 0x69, 0x11, 0xFF, 0xC2, 0x78, 0x18, 0xFF, 0xD0, 0x80, 0x1C, 0xFF, - 0xD6, 0x7F, 0x18, 0xFF, 0xD3, 0x86, 0x1A, 0xFF, 0xDD, 0x8F, 0x10, 0xFF, 0xDA, 0x8C, 0x02, 0xFF, - 0xE6, 0x99, 0x04, 0xFF, 0xE1, 0x9B, 0x04, 0xFF, 0xDC, 0x9D, 0x04, 0xFF, 0xE1, 0xA6, 0x05, 0xFF, - 0xDD, 0xA6, 0x00, 0xFF, 0xEE, 0xB6, 0x1F, 0xFF, 0xF6, 0xBD, 0x39, 0xFF, 0xF6, 0xBB, 0x38, 0xFF, - 0xFC, 0xB5, 0x24, 0xFF, 0xB8, 0xE8, 0xBF, 0xFF, 0xA2, 0xFE, 0xFA, 0xFF, 0xA5, 0xFC, 0xFB, 0xFF, - 0xA8, 0xFA, 0xFB, 0xFF, 0xA7, 0xFB, 0xFC, 0xFF, 0xA6, 0xFC, 0xFC, 0xFF, 0xA2, 0xFB, 0xFA, 0xFF, - 0x9F, 0xFA, 0xF8, 0xFF, 0x94, 0xF7, 0xF5, 0xFF, 0x92, 0xFB, 0xFA, 0xFF, 0x8B, 0xFB, 0xFA, 0xFF, - 0x84, 0xFB, 0xFB, 0xFF, 0x78, 0xFA, 0xFA, 0xFF, 0x6D, 0xF9, 0xF9, 0xFF, 0x61, 0xF9, 0xF9, 0xFF, - 0x55, 0xF8, 0xF8, 0xFF, 0x4B, 0xF6, 0xF8, 0xFF, 0x41, 0xF3, 0xF9, 0xFF, 0x39, 0xEC, 0xF5, 0xFF, - 0x30, 0xE4, 0xF1, 0xFF, 0x28, 0xDD, 0xEE, 0xFF, 0x1F, 0xD6, 0xEB, 0xFF, 0x00, 0xD9, 0xEE, 0xFF, - 0xE4, 0xA6, 0x32, 0xFF, 0xFF, 0xA4, 0x18, 0xFF, 0xF3, 0xA4, 0x28, 0xFF, 0xF4, 0xA2, 0x20, 0xFF, - 0xF4, 0xA0, 0x18, 0xFF, 0xF4, 0x9E, 0x16, 0xFF, 0xF3, 0x9D, 0x15, 0xFF, 0xF2, 0x9B, 0x13, 0xFF, - 0xF2, 0x99, 0x11, 0xFF, 0xF2, 0x99, 0x11, 0xFF, 0xF3, 0x9A, 0x12, 0xFF, 0xF3, 0x9A, 0x12, 0xFF, - 0xF5, 0xD1, 0x5B, 0xFF, 0xFA, 0xDF, 0x62, 0xFF, 0xCC, 0x8C, 0x30, 0xFF, 0x91, 0x2C, 0x05, 0xFF, - 0x9A, 0x49, 0x0E, 0xFF, 0x9E, 0x36, 0x00, 0xFF, 0x96, 0x38, 0x00, 0xFF, 0xB6, 0x5E, 0x14, 0xFF, - 0xD9, 0xAA, 0x53, 0xFF, 0xE2, 0xA6, 0x30, 0xFF, 0xEE, 0xBB, 0x44, 0xFF, 0xFF, 0xDD, 0x6D, 0xFF, - 0xF9, 0xDE, 0x76, 0xFF, 0xF9, 0xD9, 0x6C, 0xFF, 0xF8, 0xD4, 0x63, 0xFF, 0xF3, 0xC4, 0x54, 0xFF, - 0xED, 0xB4, 0x44, 0xFF, 0xD5, 0x8E, 0x23, 0xFF, 0xCE, 0x77, 0x11, 0xFF, 0xC6, 0x6C, 0x00, 0xFF, - 0xDE, 0x81, 0x02, 0xFF, 0xDA, 0x87, 0x00, 0xFF, 0xD6, 0x8D, 0x00, 0xFF, 0xE1, 0x9B, 0x06, 0xFF, - 0xDC, 0x98, 0x00, 0xFF, 0xF0, 0xB1, 0x22, 0xFF, 0xF4, 0xB9, 0x35, 0xFF, 0xF3, 0xBC, 0x3C, 0xFF, - 0xFF, 0xB4, 0x1B, 0xFF, 0x89, 0xFD, 0xFE, 0xFF, 0x95, 0xFF, 0xFA, 0xFF, 0x97, 0xFC, 0xFA, 0xFF, - 0x99, 0xF8, 0xFB, 0xFF, 0x97, 0xFB, 0xFB, 0xFF, 0x95, 0xFD, 0xFC, 0xFF, 0x8F, 0xFB, 0xF9, 0xFF, - 0x89, 0xF9, 0xF6, 0xFF, 0x84, 0xF9, 0xF7, 0xFF, 0x7F, 0xF9, 0xF8, 0xFF, 0x7A, 0xFA, 0xF9, 0xFF, - 0x75, 0xFA, 0xFA, 0xFF, 0x6A, 0xF9, 0xF9, 0xFF, 0x5F, 0xF9, 0xF8, 0xFF, 0x54, 0xF8, 0xF7, 0xFF, - 0x49, 0xF7, 0xF6, 0xFF, 0x3F, 0xF5, 0xF7, 0xFF, 0x35, 0xF2, 0xF7, 0xFF, 0x2E, 0xEB, 0xF3, 0xFF, - 0x27, 0xE3, 0xF0, 0xFF, 0x24, 0xDA, 0xF0, 0xFF, 0x21, 0xD1, 0xF0, 0xFF, 0x23, 0xC9, 0xE8, 0xFF, - 0xFF, 0x9B, 0x03, 0xFF, 0xF6, 0xA3, 0x20, 0xFF, 0xF6, 0xA1, 0x16, 0xFF, 0xF7, 0x9F, 0x16, 0xFF, - 0xF7, 0x9D, 0x16, 0xFF, 0xF6, 0x9C, 0x15, 0xFF, 0xF5, 0x9B, 0x14, 0xFF, 0xF4, 0x9A, 0x13, 0xFF, - 0xF3, 0x99, 0x12, 0xFF, 0xF3, 0x99, 0x12, 0xFF, 0xF3, 0x99, 0x12, 0xFF, 0xF3, 0x99, 0x12, 0xFF, - 0xFE, 0xE2, 0x5A, 0xFF, 0xFF, 0xD7, 0x64, 0xFF, 0x97, 0x46, 0x0C, 0xFF, 0x82, 0x25, 0x00, 0xFF, - 0xB7, 0x6A, 0x1D, 0xFF, 0xDE, 0xA2, 0x39, 0xFF, 0xFF, 0xE5, 0x5E, 0xFF, 0xFD, 0xD8, 0x51, 0xFF, - 0xF5, 0xD6, 0x4C, 0xFF, 0xF4, 0xCC, 0x48, 0xFF, 0xF6, 0xCF, 0x5E, 0xFF, 0xFE, 0xD9, 0x67, 0xFF, - 0xF7, 0xD3, 0x61, 0xFF, 0xF8, 0xD1, 0x5A, 0xFF, 0xFE, 0xCB, 0x41, 0xFF, 0xFE, 0xCE, 0x53, 0xFF, - 0xF5, 0xCF, 0x51, 0xFF, 0xF6, 0xCA, 0x49, 0xFF, 0xFF, 0xCD, 0x49, 0xFF, 0xFF, 0xB9, 0x3F, 0xFF, - 0xDA, 0x7E, 0x0E, 0xFF, 0xC2, 0x69, 0x00, 0xFF, 0xDA, 0x84, 0x05, 0xFF, 0xD5, 0x84, 0x01, 0xFF, - 0xD8, 0x8C, 0x05, 0xFF, 0xF8, 0xBE, 0x37, 0xFF, 0xF6, 0xBE, 0x3A, 0xFF, 0xFF, 0xBD, 0x34, 0xFF, - 0xE1, 0xC6, 0x61, 0xFF, 0x79, 0xF3, 0xFB, 0xFF, 0x82, 0xFA, 0xF7, 0xFF, 0x83, 0xF9, 0xF9, 0xFF, - 0x83, 0xF7, 0xFA, 0xFF, 0x7F, 0xF7, 0xF8, 0xFF, 0x7B, 0xF6, 0xF6, 0xFF, 0x79, 0xF8, 0xF7, 0xFF, - 0x77, 0xFA, 0xF8, 0xFF, 0x71, 0xF9, 0xF7, 0xFF, 0x6C, 0xF8, 0xF7, 0xFF, 0x6B, 0xFC, 0xFB, 0xFF, - 0x63, 0xF8, 0xF8, 0xFF, 0x5A, 0xF7, 0xF8, 0xFF, 0x52, 0xF7, 0xF7, 0xFF, 0x48, 0xF5, 0xF7, 0xFF, - 0x3F, 0xF4, 0xF6, 0xFF, 0x37, 0xF2, 0xF5, 0xFF, 0x2F, 0xEF, 0xF4, 0xFF, 0x27, 0xE6, 0xF1, 0xFF, - 0x20, 0xDD, 0xEE, 0xFF, 0x1F, 0xD6, 0xEA, 0xFF, 0x10, 0xCC, 0xF1, 0xFF, 0x6C, 0xB9, 0x9D, 0xFF, - 0xFE, 0x9F, 0x0B, 0xFF, 0xF8, 0xA3, 0x1A, 0xFF, 0xF9, 0xA2, 0x16, 0xFF, 0xF8, 0xA0, 0x16, 0xFF, - 0xF7, 0x9E, 0x16, 0xFF, 0xF7, 0x9D, 0x15, 0xFF, 0xF6, 0x9B, 0x14, 0xFF, 0xF5, 0x9A, 0x14, 0xFF, - 0xF4, 0x99, 0x13, 0xFF, 0xF4, 0x99, 0x13, 0xFF, 0xF4, 0x99, 0x13, 0xFF, 0xF4, 0x99, 0x13, 0xFF, - 0xF8, 0xD8, 0x60, 0xFF, 0xF7, 0xD8, 0x5A, 0xFF, 0xD7, 0xAD, 0x4B, 0xFF, 0xFF, 0xDD, 0x68, 0xFF, - 0xF7, 0xDC, 0x55, 0xFF, 0xFC, 0xD6, 0x55, 0xFF, 0xFF, 0xCF, 0x54, 0xFF, 0xFF, 0xD5, 0x5C, 0xFF, - 0xF1, 0xCA, 0x53, 0xFF, 0xF5, 0xCA, 0x4A, 0xFF, 0xF9, 0xC9, 0x42, 0xFF, 0xF7, 0xC9, 0x47, 0xFF, - 0xF5, 0xC8, 0x4B, 0xFF, 0xF0, 0xCF, 0x5C, 0xFF, 0xF8, 0xCC, 0x46, 0xFF, 0xFF, 0xCA, 0x55, 0xFF, - 0xF9, 0xC3, 0x3E, 0xFF, 0xFB, 0xC2, 0x43, 0xFF, 0xFC, 0xC1, 0x48, 0xFF, 0xF3, 0xBE, 0x3E, 0xFF, - 0xFA, 0xCB, 0x43, 0xFF, 0xFC, 0xB3, 0x37, 0xFF, 0xDD, 0x7B, 0x0B, 0xFF, 0xC8, 0x6D, 0x00, 0xFF, - 0xD4, 0x7F, 0x0D, 0xFF, 0xFF, 0xCC, 0x4D, 0xFF, 0xF9, 0xC2, 0x3E, 0xFF, 0xFF, 0xC1, 0x2D, 0xFF, - 0xA7, 0xDE, 0xA7, 0xFF, 0x5B, 0xEB, 0xF7, 0xFF, 0x6F, 0xF5, 0xF4, 0xFF, 0x6E, 0xF5, 0xF7, 0xFF, - 0x6D, 0xF6, 0xF9, 0xFF, 0x67, 0xF3, 0xF5, 0xFF, 0x60, 0xF0, 0xF1, 0xFF, 0x62, 0xF6, 0xF5, 0xFF, - 0x65, 0xFC, 0xFA, 0xFF, 0x5E, 0xF9, 0xF8, 0xFF, 0x58, 0xF6, 0xF5, 0xFF, 0x5D, 0xFE, 0xFE, 0xFF, - 0x52, 0xF6, 0xF6, 0xFF, 0x4B, 0xF5, 0xF6, 0xFF, 0x44, 0xF5, 0xF7, 0xFF, 0x3D, 0xF3, 0xF6, 0xFF, - 0x35, 0xF1, 0xF5, 0xFF, 0x2F, 0xEE, 0xF3, 0xFF, 0x28, 0xEB, 0xF0, 0xFF, 0x20, 0xE1, 0xEE, 0xFF, - 0x18, 0xD8, 0xEC, 0xFF, 0x1A, 0xD2, 0xE4, 0xFF, 0x00, 0xC6, 0xF3, 0xFF, 0xB4, 0xA8, 0x51, 0xFF, - 0xFA, 0xA3, 0x13, 0xFF, 0xFB, 0xA3, 0x15, 0xFF, 0xFB, 0xA3, 0x17, 0xFF, 0xFA, 0xA0, 0x16, 0xFF, - 0xF8, 0x9E, 0x16, 0xFF, 0xF7, 0x9D, 0x15, 0xFF, 0xF7, 0x9C, 0x15, 0xFF, 0xF6, 0x9A, 0x14, 0xFF, - 0xF6, 0x99, 0x14, 0xFF, 0xF6, 0x99, 0x14, 0xFF, 0xF6, 0x99, 0x14, 0xFF, 0xF6, 0x99, 0x14, 0xFF, - 0xF1, 0xCE, 0x58, 0xFF, 0xFD, 0xDC, 0x59, 0xFF, 0xF8, 0xD5, 0x55, 0xFF, 0xFF, 0xDD, 0x5D, 0xFF, - 0xF3, 0xCE, 0x4D, 0xFF, 0xF3, 0xCB, 0x4C, 0xFF, 0xF3, 0xC8, 0x4C, 0xFF, 0xFB, 0xD1, 0x56, 0xFF, - 0xFC, 0xD3, 0x58, 0xFF, 0xFB, 0xCE, 0x4F, 0xFF, 0xFA, 0xC9, 0x47, 0xFF, 0xF9, 0xC8, 0x48, 0xFF, - 0xF8, 0xC7, 0x49, 0xFF, 0xF5, 0xCA, 0x50, 0xFF, 0xF9, 0xC9, 0x44, 0xFF, 0xFD, 0xC8, 0x4B, 0xFF, - 0xF9, 0xC5, 0x3E, 0xFF, 0xFA, 0xC3, 0x40, 0xFF, 0xFA, 0xC2, 0x43, 0xFF, 0xF3, 0xBD, 0x3A, 0xFF, - 0xF3, 0xBF, 0x3A, 0xFF, 0xFC, 0xC7, 0x3E, 0xFF, 0xFC, 0xC6, 0x3A, 0xFF, 0xE2, 0xA1, 0x24, 0xFF, - 0xD9, 0x8C, 0x1F, 0xFF, 0xF6, 0xB9, 0x36, 0xFF, 0xFA, 0xBB, 0x26, 0xFF, 0xF3, 0xBA, 0x29, 0xFF, - 0x56, 0xD7, 0xCD, 0xFF, 0x5A, 0xFA, 0xF9, 0xFF, 0x48, 0xDA, 0xD9, 0xFF, 0x58, 0xEC, 0xED, 0xFF, - 0x5F, 0xF5, 0xF9, 0xFF, 0x4D, 0xEF, 0xF1, 0xFF, 0x3A, 0xE9, 0xE9, 0xFF, 0x45, 0xEE, 0xED, 0xFF, - 0x50, 0xF4, 0xF2, 0xFF, 0x4E, 0xF3, 0xF9, 0xFF, 0x44, 0xF0, 0xED, 0xFF, 0x4B, 0xF8, 0xFE, 0xFF, - 0x41, 0xF5, 0xF4, 0xFF, 0x3C, 0xF4, 0xF5, 0xFF, 0x37, 0xF2, 0xF6, 0xFF, 0x31, 0xF0, 0xF5, 0xFF, - 0x2A, 0xEF, 0xF4, 0xFF, 0x26, 0xEA, 0xF2, 0xFF, 0x22, 0xE6, 0xF0, 0xFF, 0x1C, 0xDB, 0xEE, 0xFF, - 0x17, 0xD0, 0xEC, 0xFF, 0x08, 0xCC, 0xF0, 0xFF, 0x08, 0xC4, 0xF5, 0xFF, 0xFF, 0xAD, 0x0E, 0xFF, - 0xF9, 0xA1, 0x16, 0xFF, 0xF8, 0xA1, 0x17, 0xFF, 0xF8, 0xA1, 0x18, 0xFF, 0xF8, 0xA0, 0x17, 0xFF, - 0xF8, 0x9E, 0x16, 0xFF, 0xF8, 0x9D, 0x16, 0xFF, 0xF8, 0x9C, 0x15, 0xFF, 0xF7, 0x9A, 0x15, 0xFF, - 0xF7, 0x99, 0x14, 0xFF, 0xF7, 0x99, 0x14, 0xFF, 0xF7, 0x99, 0x14, 0xFF, 0xF7, 0x99, 0x14, 0xFF, - 0xFB, 0xD5, 0x60, 0xFF, 0xFA, 0xD3, 0x5A, 0xFF, 0xFA, 0xD1, 0x55, 0xFF, 0xFC, 0xD0, 0x55, 0xFF, - 0xFE, 0xCF, 0x54, 0xFF, 0xFA, 0xD0, 0x54, 0xFF, 0xF6, 0xD1, 0x53, 0xFF, 0xF6, 0xCE, 0x50, 0xFF, - 0xF7, 0xCB, 0x4E, 0xFF, 0xF9, 0xCA, 0x4C, 0xFF, 0xFA, 0xCA, 0x4B, 0xFF, 0xFB, 0xC8, 0x49, 0xFF, - 0xFB, 0xC6, 0x47, 0xFF, 0xFB, 0xC6, 0x45, 0xFF, 0xFA, 0xC6, 0x43, 0xFF, 0xF9, 0xC6, 0x41, 0xFF, - 0xF8, 0xC6, 0x3F, 0xFF, 0xF8, 0xC4, 0x3E, 0xFF, 0xF9, 0xC3, 0x3E, 0xFF, 0xFB, 0xC3, 0x3F, 0xFF, - 0xFD, 0xC3, 0x40, 0xFF, 0xF2, 0xBA, 0x38, 0xFF, 0xF7, 0xC0, 0x3F, 0xFF, 0xFA, 0xC2, 0x3D, 0xFF, - 0xFD, 0xC5, 0x3A, 0xFF, 0xF6, 0xC1, 0x37, 0xFF, 0xEF, 0xBD, 0x34, 0xFF, 0xEF, 0xBB, 0x2D, 0xFF, - 0x21, 0xD6, 0xDD, 0xFF, 0x37, 0xDC, 0xBF, 0xFF, 0x41, 0xE0, 0xDD, 0xFF, 0x49, 0xEA, 0xEB, 0xFF, - 0x41, 0xE3, 0xEA, 0xFF, 0x41, 0xE8, 0xED, 0xFF, 0x41, 0xED, 0xF1, 0xFF, 0x3F, 0xEC, 0xED, 0xFF, - 0x3C, 0xEB, 0xEA, 0xFF, 0x3E, 0xEE, 0xFA, 0xFF, 0x31, 0xEB, 0xE5, 0xFF, 0x39, 0xF2, 0xFE, 0xFF, - 0x31, 0xF4, 0xF1, 0xFF, 0x2D, 0xF2, 0xF3, 0xFF, 0x29, 0xF0, 0xF5, 0xFF, 0x25, 0xEE, 0xF4, 0xFF, - 0x20, 0xEC, 0xF4, 0xFF, 0x1E, 0xE6, 0xF1, 0xFF, 0x1C, 0xE1, 0xEF, 0xFF, 0x19, 0xD5, 0xED, 0xFF, - 0x16, 0xC9, 0xEB, 0xFF, 0x0B, 0xC3, 0xDE, 0xFF, 0x39, 0xBE, 0xBA, 0xFF, 0xF8, 0x98, 0x07, 0xFF, - 0xF8, 0x9F, 0x19, 0xFF, 0xF6, 0x9F, 0x19, 0xFF, 0xF5, 0x9F, 0x19, 0xFF, 0xF7, 0x9F, 0x18, 0xFF, - 0xF9, 0x9F, 0x16, 0xFF, 0xF9, 0x9D, 0x16, 0xFF, 0xF9, 0x9C, 0x16, 0xFF, 0xF9, 0x9A, 0x16, 0xFF, - 0xF8, 0x99, 0x15, 0xFF, 0xF8, 0x99, 0x15, 0xFF, 0xF8, 0x99, 0x15, 0xFF, 0xF8, 0x99, 0x15, 0xFF, - 0xF8, 0xD4, 0x5C, 0xFF, 0xF8, 0xD4, 0x58, 0xFF, 0xF8, 0xD3, 0x54, 0xFF, 0xF9, 0xD1, 0x56, 0xFF, - 0xFA, 0xD0, 0x57, 0xFF, 0xF8, 0xD0, 0x55, 0xFF, 0xF5, 0xD0, 0x53, 0xFF, 0xF7, 0xCE, 0x50, 0xFF, - 0xF9, 0xCC, 0x4D, 0xFF, 0xF9, 0xCB, 0x4C, 0xFF, 0xFA, 0xCA, 0x4A, 0xFF, 0xFB, 0xC8, 0x48, 0xFF, - 0xFB, 0xC7, 0x46, 0xFF, 0xFA, 0xC6, 0x44, 0xFF, 0xFA, 0xC6, 0x43, 0xFF, 0xF9, 0xC6, 0x41, 0xFF, - 0xF9, 0xC6, 0x3F, 0xFF, 0xF9, 0xC4, 0x3E, 0xFF, 0xF9, 0xC3, 0x3D, 0xFF, 0xFA, 0xC2, 0x3E, 0xFF, - 0xFB, 0xC1, 0x3E, 0xFF, 0xF5, 0xBD, 0x3A, 0xFF, 0xF7, 0xC1, 0x3D, 0xFF, 0xF8, 0xC0, 0x3A, 0xFF, - 0xF9, 0xC0, 0x37, 0xFF, 0xFF, 0xBD, 0x36, 0xFF, 0xFF, 0xBB, 0x35, 0xFF, 0x84, 0xBA, 0x66, 0xFF, - 0x18, 0xD2, 0xAF, 0xFF, 0x19, 0xD2, 0xB3, 0xFF, 0x39, 0xDA, 0xD2, 0xFF, 0x3D, 0xDC, 0xE1, 0xFF, - 0x31, 0xD4, 0xD5, 0xFF, 0x37, 0xDF, 0xE1, 0xFF, 0x3E, 0xE9, 0xEC, 0xFF, 0x35, 0xE6, 0xE1, 0xFF, - 0x35, 0xE5, 0xE9, 0xFF, 0x34, 0xE5, 0xF0, 0xFF, 0x2A, 0xE3, 0xE4, 0xFF, 0x2D, 0xE5, 0xF5, 0xFF, - 0x28, 0xEB, 0xE8, 0xFF, 0x2A, 0xEE, 0xF0, 0xFF, 0x24, 0xE8, 0xEF, 0xFF, 0x20, 0xE4, 0xEC, 0xFF, - 0x1C, 0xDF, 0xE9, 0xFF, 0x1C, 0xDB, 0xEB, 0xFF, 0x1B, 0xD7, 0xED, 0xFF, 0x18, 0xCE, 0xE9, 0xFF, - 0x15, 0xC5, 0xE5, 0xFF, 0x03, 0xBF, 0xE7, 0xFF, 0x92, 0xB1, 0x6C, 0xFF, 0xFB, 0x9C, 0x10, 0xFF, - 0xF7, 0xA0, 0x17, 0xFF, 0xF5, 0xA0, 0x19, 0xFF, 0xF3, 0xA0, 0x1B, 0xFF, 0xF6, 0x9F, 0x19, 0xFF, - 0xF9, 0x9F, 0x16, 0xFF, 0xF8, 0x9E, 0x16, 0xFF, 0xF8, 0x9C, 0x15, 0xFF, 0xF8, 0x9B, 0x15, 0xFF, - 0xF8, 0x99, 0x15, 0xFF, 0xF7, 0x99, 0x14, 0xFF, 0xF7, 0x98, 0x14, 0xFF, 0xF7, 0x98, 0x14, 0xFF, - 0xF6, 0xD3, 0x57, 0xFF, 0xF6, 0xD4, 0x55, 0xFF, 0xF6, 0xD5, 0x53, 0xFF, 0xF7, 0xD2, 0x57, 0xFF, - 0xF7, 0xD0, 0x5B, 0xFF, 0xF6, 0xD0, 0x57, 0xFF, 0xF5, 0xCF, 0x54, 0xFF, 0xF7, 0xCE, 0x50, 0xFF, - 0xFA, 0xCC, 0x4C, 0xFF, 0xFA, 0xCB, 0x4B, 0xFF, 0xFA, 0xCA, 0x49, 0xFF, 0xFA, 0xC8, 0x47, 0xFF, - 0xFB, 0xC7, 0x46, 0xFF, 0xFA, 0xC7, 0x44, 0xFF, 0xFA, 0xC6, 0x43, 0xFF, 0xF9, 0xC6, 0x41, 0xFF, - 0xF9, 0xC5, 0x3F, 0xFF, 0xF9, 0xC4, 0x3E, 0xFF, 0xF9, 0xC2, 0x3D, 0xFF, 0xF9, 0xC1, 0x3C, 0xFF, - 0xF9, 0xC0, 0x3B, 0xFF, 0xF8, 0xC1, 0x3C, 0xFF, 0xF7, 0xC2, 0x3C, 0xFF, 0xF6, 0xBE, 0x38, 0xFF, - 0xF5, 0xBB, 0x34, 0xFF, 0xFD, 0xBC, 0x35, 0xFF, 0xFF, 0xBE, 0x36, 0xFF, 0xFB, 0xBB, 0x45, 0xFF, - 0x2B, 0xC9, 0x82, 0xFF, 0x01, 0xBE, 0xA0, 0xFF, 0x20, 0xC4, 0xB8, 0xFF, 0x31, 0xCF, 0xD8, 0xFF, - 0x31, 0xD5, 0xD1, 0xFF, 0x2E, 0xD5, 0xD4, 0xFF, 0x2A, 0xD4, 0xD7, 0xFF, 0x24, 0xD7, 0xCC, 0xFF, - 0x2E, 0xDE, 0xE8, 0xFF, 0x29, 0xDD, 0xE6, 0xFF, 0x24, 0xDC, 0xE4, 0xFF, 0x22, 0xD9, 0xED, 0xFF, - 0x20, 0xE1, 0xDF, 0xFF, 0x27, 0xE9, 0xEC, 0xFF, 0x1E, 0xE0, 0xEA, 0xFF, 0x1B, 0xD9, 0xE3, 0xFF, - 0x19, 0xD3, 0xDD, 0xFF, 0x1A, 0xD0, 0xE4, 0xFF, 0x1B, 0xCD, 0xEB, 0xFF, 0x17, 0xC7, 0xE4, 0xFF, - 0x14, 0xC2, 0xDE, 0xFF, 0x00, 0xBC, 0xEF, 0xFF, 0xEB, 0xA4, 0x1D, 0xFF, 0xFF, 0xA0, 0x19, 0xFF, - 0xF6, 0xA2, 0x15, 0xFF, 0xF3, 0xA2, 0x19, 0xFF, 0xF0, 0xA1, 0x1D, 0xFF, 0xF4, 0xA0, 0x19, 0xFF, - 0xF8, 0x9F, 0x16, 0xFF, 0xF8, 0x9E, 0x15, 0xFF, 0xF8, 0x9D, 0x15, 0xFF, 0xF7, 0x9B, 0x14, 0xFF, - 0xF7, 0x9A, 0x14, 0xFF, 0xF6, 0x99, 0x13, 0xFF, 0xF5, 0x98, 0x12, 0xFF, 0xF5, 0x98, 0x12, 0xFF, - 0xF8, 0xD5, 0x5E, 0xFF, 0xFC, 0xD5, 0x63, 0xFF, 0xFF, 0xD6, 0x68, 0xFF, 0xFB, 0xD2, 0x5E, 0xFF, - 0xF8, 0xCF, 0x55, 0xFF, 0xF7, 0xCF, 0x53, 0xFF, 0xF7, 0xCE, 0x50, 0xFF, 0xF9, 0xCD, 0x4D, 0xFF, - 0xFA, 0xCC, 0x4B, 0xFF, 0xFA, 0xCB, 0x49, 0xFF, 0xFA, 0xCA, 0x48, 0xFF, 0xFA, 0xC9, 0x47, 0xFF, - 0xFA, 0xC8, 0x45, 0xFF, 0xFA, 0xC7, 0x44, 0xFF, 0xF9, 0xC6, 0x42, 0xFF, 0xF9, 0xC5, 0x41, 0xFF, - 0xF9, 0xC5, 0x40, 0xFF, 0xF9, 0xC4, 0x3F, 0xFF, 0xF9, 0xC2, 0x3D, 0xFF, 0xF9, 0xC1, 0x3C, 0xFF, - 0xF8, 0xC0, 0x3B, 0xFF, 0xF8, 0xC0, 0x3B, 0xFF, 0xF8, 0xC1, 0x3A, 0xFF, 0xF7, 0xBF, 0x38, 0xFF, - 0xF6, 0xBD, 0x35, 0xFF, 0xFA, 0xBD, 0x34, 0xFF, 0xFE, 0xBD, 0x33, 0xFF, 0xF5, 0xC3, 0x22, 0xFF, - 0xFB, 0xBA, 0x26, 0xFF, 0xB1, 0xB0, 0x53, 0xFF, 0x06, 0xC5, 0x9A, 0xFF, 0x22, 0xD2, 0xC0, 0xFF, - 0x36, 0xDD, 0xD3, 0xFF, 0x12, 0xBA, 0xB3, 0xFF, 0x1E, 0xC7, 0xC3, 0xFF, 0x21, 0xCE, 0xC4, 0xFF, - 0x2C, 0xD8, 0xD8, 0xFF, 0x2F, 0xDA, 0xDE, 0xFF, 0x2A, 0xD5, 0xDC, 0xFF, 0x20, 0xD4, 0xE7, 0xFF, - 0x1C, 0xD5, 0xD4, 0xFF, 0x28, 0xE4, 0xE8, 0xFF, 0x24, 0xE3, 0xEB, 0xFF, 0x1F, 0xCD, 0xD1, 0xFF, - 0x1C, 0xC5, 0xD2, 0xFF, 0x01, 0xC2, 0xDC, 0xFF, 0x11, 0xC3, 0xCF, 0xFF, 0x09, 0xC1, 0xE2, 0xFF, - 0x00, 0xBE, 0xE3, 0xFF, 0x6E, 0xBE, 0x83, 0xFF, 0xF6, 0x9F, 0x0C, 0xFF, 0xFD, 0x9F, 0x11, 0xFF, - 0xF6, 0xA1, 0x17, 0xFF, 0xF4, 0xA1, 0x19, 0xFF, 0xF3, 0xA1, 0x1A, 0xFF, 0xF5, 0xA0, 0x18, 0xFF, - 0xF8, 0x9F, 0x15, 0xFF, 0xF7, 0x9E, 0x15, 0xFF, 0xF7, 0x9D, 0x14, 0xFF, 0xF7, 0x9C, 0x14, 0xFF, - 0xF7, 0x9B, 0x13, 0xFF, 0xF5, 0x99, 0x11, 0xFF, 0xF4, 0x98, 0x10, 0xFF, 0xF4, 0x98, 0x10, 0xFF, - 0xFB, 0xD6, 0x64, 0xFF, 0xF9, 0xD4, 0x5D, 0xFF, 0xF8, 0xD2, 0x55, 0xFF, 0xF8, 0xD0, 0x53, 0xFF, - 0xF8, 0xCE, 0x50, 0xFF, 0xF9, 0xCE, 0x4E, 0xFF, 0xFA, 0xCD, 0x4D, 0xFF, 0xFA, 0xCC, 0x4B, 0xFF, - 0xFB, 0xCC, 0x49, 0xFF, 0xFA, 0xCB, 0x48, 0xFF, 0xFA, 0xCA, 0x47, 0xFF, 0xFA, 0xC9, 0x46, 0xFF, - 0xFA, 0xC8, 0x45, 0xFF, 0xFA, 0xC7, 0x43, 0xFF, 0xF9, 0xC6, 0x42, 0xFF, 0xF9, 0xC5, 0x41, 0xFF, - 0xF9, 0xC4, 0x40, 0xFF, 0xF9, 0xC3, 0x3F, 0xFF, 0xF9, 0xC2, 0x3D, 0xFF, 0xF9, 0xC1, 0x3C, 0xFF, - 0xF8, 0xC0, 0x3B, 0xFF, 0xF8, 0xC0, 0x3A, 0xFF, 0xF8, 0xBF, 0x39, 0xFF, 0xF8, 0xBF, 0x38, 0xFF, - 0xF8, 0xBF, 0x36, 0xFF, 0xF7, 0xBD, 0x34, 0xFF, 0xF7, 0xBC, 0x31, 0xFF, 0xF8, 0xBB, 0x33, 0xFF, - 0xF9, 0xBA, 0x35, 0xFF, 0xFF, 0xBC, 0x2C, 0xFF, 0xDE, 0xC2, 0x60, 0xFF, 0x84, 0xCB, 0x93, 0xFF, - 0x2A, 0xD4, 0xC5, 0xFF, 0x2E, 0xD7, 0xCA, 0xFF, 0x12, 0xBA, 0xB0, 0xFF, 0x16, 0xBE, 0xB4, 0xFF, - 0x1A, 0xC2, 0xB8, 0xFF, 0x25, 0xC8, 0xC6, 0xFF, 0x20, 0xBE, 0xC4, 0xFF, 0x16, 0xC8, 0xDA, 0xFF, - 0x18, 0xC8, 0xC9, 0xFF, 0x21, 0xD7, 0xDB, 0xFF, 0x1A, 0xD6, 0xDD, 0xFF, 0x0D, 0xBC, 0xB7, 0xFF, - 0x03, 0xBD, 0xC7, 0xFF, 0x00, 0xBF, 0xD0, 0xFF, 0x50, 0xC9, 0xAC, 0xFF, 0xB0, 0xB8, 0x6B, 0xFF, - 0xFF, 0xA3, 0x04, 0xFF, 0xFA, 0xA3, 0x12, 0xFF, 0xF4, 0xA4, 0x21, 0xFF, 0xF5, 0xA2, 0x1D, 0xFF, - 0xF5, 0xA1, 0x19, 0xFF, 0xF6, 0xA0, 0x18, 0xFF, 0xF6, 0xA0, 0x17, 0xFF, 0xF7, 0x9F, 0x16, 0xFF, - 0xF7, 0x9F, 0x15, 0xFF, 0xF7, 0x9E, 0x14, 0xFF, 0xF7, 0x9D, 0x14, 0xFF, 0xF6, 0x9C, 0x13, 0xFF, - 0xF6, 0x9B, 0x12, 0xFF, 0xF4, 0x99, 0x10, 0xFF, 0xF2, 0x97, 0x0E, 0xFF, 0xF2, 0x97, 0x0E, 0xFF, - 0xF8, 0xD4, 0x5C, 0xFF, 0xF8, 0xD3, 0x57, 0xFF, 0xF8, 0xD1, 0x53, 0xFF, 0xF8, 0xD0, 0x51, 0xFF, - 0xF9, 0xCE, 0x4F, 0xFF, 0xF9, 0xCE, 0x4D, 0xFF, 0xF9, 0xCD, 0x4B, 0xFF, 0xFA, 0xCC, 0x4A, 0xFF, - 0xFA, 0xCB, 0x48, 0xFF, 0xFA, 0xCA, 0x47, 0xFF, 0xFA, 0xCA, 0x46, 0xFF, 0xF9, 0xC9, 0x45, 0xFF, - 0xF9, 0xC8, 0x44, 0xFF, 0xF9, 0xC7, 0x43, 0xFF, 0xF9, 0xC6, 0x42, 0xFF, 0xF9, 0xC5, 0x41, 0xFF, - 0xF9, 0xC4, 0x40, 0xFF, 0xF9, 0xC3, 0x3E, 0xFF, 0xF9, 0xC2, 0x3D, 0xFF, 0xF9, 0xC1, 0x3C, 0xFF, - 0xF9, 0xC0, 0x3A, 0xFF, 0xF8, 0xBF, 0x39, 0xFF, 0xF8, 0xBF, 0x38, 0xFF, 0xF8, 0xBF, 0x37, 0xFF, - 0xF8, 0xBE, 0x36, 0xFF, 0xF5, 0xBD, 0x35, 0xFF, 0xF3, 0xBB, 0x34, 0xFF, 0xF7, 0xB9, 0x34, 0xFF, - 0xFA, 0xB7, 0x34, 0xFF, 0xFF, 0xB5, 0x22, 0xFF, 0xFE, 0xB4, 0x2E, 0xFF, 0xE6, 0xB9, 0x4D, 0xFF, - 0xCD, 0xBF, 0x6B, 0xFF, 0xC5, 0xB1, 0x27, 0xFF, 0x7C, 0xBB, 0x6C, 0xFF, 0x48, 0xBD, 0x89, 0xFF, - 0x15, 0xBE, 0xA6, 0xFF, 0x08, 0xBF, 0xB9, 0xFF, 0x00, 0xBF, 0xCB, 0xFF, 0x3D, 0xC4, 0xDA, 0xFF, - 0x20, 0xCA, 0xBA, 0xFF, 0x3E, 0xC6, 0xAD, 0xFF, 0x53, 0xBB, 0x99, 0xFF, 0x8A, 0xAC, 0x59, 0xFF, - 0xC3, 0xAA, 0x35, 0xFF, 0xFF, 0xB3, 0x03, 0xFF, 0xFF, 0xA6, 0x15, 0xFF, 0xFF, 0xA4, 0x20, 0xFF, - 0xFA, 0xA0, 0x19, 0xFF, 0xF9, 0xA2, 0x1B, 0xFF, 0xF8, 0xA4, 0x1C, 0xFF, 0xF7, 0xA2, 0x1B, 0xFF, - 0xF6, 0xA1, 0x19, 0xFF, 0xF6, 0xA0, 0x18, 0xFF, 0xF7, 0xA0, 0x17, 0xFF, 0xF7, 0x9F, 0x16, 0xFF, - 0xF7, 0x9F, 0x15, 0xFF, 0xF7, 0x9E, 0x14, 0xFF, 0xF6, 0x9D, 0x14, 0xFF, 0xF6, 0x9C, 0x13, 0xFF, - 0xF6, 0x9B, 0x12, 0xFF, 0xF4, 0x9A, 0x10, 0xFF, 0xF3, 0x98, 0x0F, 0xFF, 0xF3, 0x98, 0x0F, 0xFF, - 0xF6, 0xD2, 0x53, 0xFF, 0xF7, 0xD1, 0x52, 0xFF, 0xF8, 0xD0, 0x51, 0xFF, 0xF8, 0xCF, 0x4F, 0xFF, - 0xF9, 0xCE, 0x4E, 0xFF, 0xF9, 0xCE, 0x4C, 0xFF, 0xF9, 0xCD, 0x4A, 0xFF, 0xF9, 0xCC, 0x48, 0xFF, - 0xF9, 0xCB, 0x46, 0xFF, 0xF9, 0xCA, 0x46, 0xFF, 0xF9, 0xC9, 0x45, 0xFF, 0xF9, 0xC8, 0x44, 0xFF, - 0xF9, 0xC8, 0x43, 0xFF, 0xF9, 0xC7, 0x42, 0xFF, 0xF9, 0xC6, 0x41, 0xFF, 0xF9, 0xC5, 0x41, 0xFF, - 0xF9, 0xC4, 0x40, 0xFF, 0xF9, 0xC3, 0x3E, 0xFF, 0xF9, 0xC2, 0x3D, 0xFF, 0xF9, 0xC1, 0x3B, 0xFF, - 0xF9, 0xC0, 0x3A, 0xFF, 0xF9, 0xBF, 0x38, 0xFF, 0xF8, 0xBF, 0x37, 0xFF, 0xF8, 0xBE, 0x36, 0xFF, - 0xF8, 0xBE, 0x35, 0xFF, 0xF4, 0xBC, 0x36, 0xFF, 0xEF, 0xBA, 0x37, 0xFF, 0xF5, 0xB7, 0x35, 0xFF, - 0xFC, 0xB5, 0x34, 0xFF, 0xF8, 0xB5, 0x2B, 0xFF, 0xF5, 0xB6, 0x22, 0xFF, 0xFA, 0xB5, 0x25, 0xFF, - 0xFF, 0xB3, 0x28, 0xFF, 0xFF, 0xB5, 0x28, 0xFF, 0xFF, 0xB7, 0x28, 0xFF, 0xFF, 0xB4, 0x1E, 0xFF, - 0xFE, 0xB2, 0x14, 0xFF, 0xF6, 0xAD, 0x20, 0xFF, 0xFE, 0xB9, 0x3C, 0xFF, 0xF0, 0xCB, 0x5A, 0xFF, - 0xFA, 0xBE, 0x41, 0xFF, 0xFC, 0xB5, 0x29, 0xFF, 0xFE, 0xAD, 0x11, 0xFF, 0xFC, 0xAC, 0x17, 0xFF, - 0xFA, 0xAB, 0x1D, 0xFF, 0xFD, 0xA9, 0x1D, 0xFF, 0xFF, 0xA7, 0x1D, 0xFF, 0xFA, 0xA7, 0x1B, 0xFF, - 0xF4, 0xA8, 0x18, 0xFF, 0xF8, 0xA6, 0x18, 0xFF, 0xFC, 0xA4, 0x17, 0xFF, 0xFA, 0xA2, 0x19, 0xFF, - 0xF7, 0xA1, 0x1A, 0xFF, 0xF7, 0xA0, 0x19, 0xFF, 0xF7, 0xA0, 0x17, 0xFF, 0xF7, 0x9F, 0x16, 0xFF, - 0xF7, 0x9F, 0x15, 0xFF, 0xF7, 0x9E, 0x14, 0xFF, 0xF6, 0x9D, 0x13, 0xFF, 0xF6, 0x9C, 0x13, 0xFF, - 0xF5, 0x9B, 0x12, 0xFF, 0xF4, 0x9A, 0x11, 0xFF, 0xF3, 0x99, 0x10, 0xFF, 0xF3, 0x99, 0x10, 0xFF, - 0xF7, 0xD1, 0x54, 0xFF, 0xF8, 0xD0, 0x52, 0xFF, 0xF8, 0xD0, 0x51, 0xFF, 0xF9, 0xCF, 0x4F, 0xFF, - 0xF9, 0xCF, 0x4E, 0xFF, 0xF9, 0xCE, 0x4B, 0xFF, 0xF9, 0xCD, 0x49, 0xFF, 0xF9, 0xCC, 0x47, 0xFF, - 0xF8, 0xCA, 0x45, 0xFF, 0xF8, 0xCA, 0x44, 0xFF, 0xF8, 0xC9, 0x44, 0xFF, 0xF9, 0xC8, 0x43, 0xFF, - 0xF9, 0xC7, 0x42, 0xFF, 0xF9, 0xC7, 0x42, 0xFF, 0xF9, 0xC6, 0x41, 0xFF, 0xF9, 0xC5, 0x40, 0xFF, - 0xF9, 0xC4, 0x40, 0xFF, 0xF9, 0xC3, 0x3E, 0xFF, 0xF9, 0xC2, 0x3C, 0xFF, 0xF9, 0xC1, 0x3B, 0xFF, - 0xF9, 0xC0, 0x39, 0xFF, 0xF9, 0xBF, 0x38, 0xFF, 0xF8, 0xBE, 0x36, 0xFF, 0xF8, 0xBE, 0x35, 0xFF, - 0xF8, 0xBD, 0x34, 0xFF, 0xF6, 0xBC, 0x34, 0xFF, 0xF4, 0xBA, 0x35, 0xFF, 0xF8, 0xB8, 0x34, 0xFF, - 0xFB, 0xB6, 0x33, 0xFF, 0xF9, 0xB6, 0x2D, 0xFF, 0xF6, 0xB6, 0x28, 0xFF, 0xF8, 0xB5, 0x29, 0xFF, - 0xFA, 0xB4, 0x29, 0xFF, 0xFB, 0xB4, 0x29, 0xFF, 0xFC, 0xB5, 0x29, 0xFF, 0xF5, 0xB2, 0x29, 0xFF, - 0xEF, 0xAF, 0x29, 0xFF, 0xF5, 0xA9, 0x1A, 0xFF, 0xD9, 0xCE, 0x9A, 0xFF, 0xE8, 0xCF, 0x6C, 0xFF, - 0xE3, 0xC6, 0x73, 0xFF, 0xDD, 0xC9, 0x7F, 0xFF, 0xFB, 0xAD, 0x18, 0xFF, 0xF9, 0xAC, 0x1B, 0xFF, - 0xF7, 0xAB, 0x1F, 0xFF, 0xF9, 0xA9, 0x1E, 0xFF, 0xFB, 0xA7, 0x1D, 0xFF, 0xF8, 0xA7, 0x1C, 0xFF, - 0xF6, 0xA6, 0x1A, 0xFF, 0xF8, 0xA5, 0x19, 0xFF, 0xFA, 0xA3, 0x19, 0xFF, 0xF9, 0xA2, 0x1A, 0xFF, - 0xF8, 0xA1, 0x1A, 0xFF, 0xF8, 0xA1, 0x19, 0xFF, 0xF8, 0xA0, 0x18, 0xFF, 0xF7, 0x9F, 0x16, 0xFF, - 0xF7, 0x9F, 0x15, 0xFF, 0xF7, 0x9E, 0x14, 0xFF, 0xF6, 0x9D, 0x13, 0xFF, 0xF6, 0x9C, 0x12, 0xFF, - 0xF5, 0x9B, 0x11, 0xFF, 0xF5, 0x9A, 0x11, 0xFF, 0xF4, 0x9A, 0x10, 0xFF, 0xF4, 0x9A, 0x10, 0xFF, - 0xF9, 0xD0, 0x54, 0xFF, 0xF9, 0xCF, 0x52, 0xFF, 0xF9, 0xCF, 0x51, 0xFF, 0xFA, 0xCF, 0x4F, 0xFF, - 0xFA, 0xCF, 0x4D, 0xFF, 0xF9, 0xCE, 0x4A, 0xFF, 0xF9, 0xCC, 0x48, 0xFF, 0xF8, 0xCB, 0x46, 0xFF, - 0xF8, 0xCA, 0x43, 0xFF, 0xF8, 0xC9, 0x43, 0xFF, 0xF8, 0xC9, 0x43, 0xFF, 0xF8, 0xC8, 0x42, 0xFF, - 0xF8, 0xC7, 0x42, 0xFF, 0xF8, 0xC7, 0x41, 0xFF, 0xF9, 0xC6, 0x41, 0xFF, 0xF9, 0xC5, 0x40, 0xFF, - 0xF9, 0xC4, 0x40, 0xFF, 0xF9, 0xC3, 0x3E, 0xFF, 0xF9, 0xC2, 0x3C, 0xFF, 0xF9, 0xC1, 0x3A, 0xFF, - 0xF9, 0xBF, 0x38, 0xFF, 0xF9, 0xBF, 0x37, 0xFF, 0xF9, 0xBE, 0x36, 0xFF, 0xF8, 0xBE, 0x34, 0xFF, - 0xF8, 0xBD, 0x33, 0xFF, 0xF9, 0xBC, 0x33, 0xFF, 0xF9, 0xBA, 0x32, 0xFF, 0xFA, 0xB9, 0x32, 0xFF, - 0xFB, 0xB7, 0x31, 0xFF, 0xF9, 0xB6, 0x30, 0xFF, 0xF8, 0xB6, 0x2E, 0xFF, 0xF6, 0xB5, 0x2C, 0xFF, - 0xF4, 0xB4, 0x2A, 0xFF, 0xF5, 0xB3, 0x2A, 0xFF, 0xF6, 0xB2, 0x2A, 0xFF, 0xF9, 0xB2, 0x29, 0xFF, - 0xFB, 0xB2, 0x28, 0xFF, 0xF6, 0xB2, 0x30, 0xFF, 0xFD, 0xA8, 0x11, 0xFF, 0xE1, 0xD3, 0x7E, 0xFF, - 0xE6, 0xBB, 0x58, 0xFF, 0xFB, 0xAA, 0x15, 0xFF, 0xF7, 0xAD, 0x1F, 0xFF, 0xF6, 0xAB, 0x1F, 0xFF, - 0xF5, 0xAA, 0x20, 0xFF, 0xF6, 0xA9, 0x1F, 0xFF, 0xF6, 0xA7, 0x1E, 0xFF, 0xF7, 0xA6, 0x1D, 0xFF, - 0xF8, 0xA5, 0x1B, 0xFF, 0xF8, 0xA4, 0x1B, 0xFF, 0xF8, 0xA3, 0x1B, 0xFF, 0xF8, 0xA2, 0x1B, 0xFF, - 0xF9, 0xA1, 0x1A, 0xFF, 0xF8, 0xA1, 0x19, 0xFF, 0xF8, 0xA0, 0x18, 0xFF, 0xF8, 0x9F, 0x16, 0xFF, - 0xF7, 0x9F, 0x15, 0xFF, 0xF7, 0x9E, 0x14, 0xFF, 0xF6, 0x9D, 0x13, 0xFF, 0xF6, 0x9C, 0x12, 0xFF, - 0xF5, 0x9A, 0x11, 0xFF, 0xF5, 0x9A, 0x11, 0xFF, 0xF5, 0x9A, 0x11, 0xFF, 0xF5, 0x9A, 0x11, 0xFF, - 0xF9, 0xD0, 0x54, 0xFF, 0xF9, 0xCF, 0x52, 0xFF, 0xF9, 0xCF, 0x51, 0xFF, 0xFA, 0xCF, 0x4F, 0xFF, - 0xFA, 0xCF, 0x4D, 0xFF, 0xF9, 0xCE, 0x4A, 0xFF, 0xF9, 0xCC, 0x48, 0xFF, 0xF8, 0xCB, 0x46, 0xFF, - 0xF8, 0xCA, 0x43, 0xFF, 0xF8, 0xC9, 0x43, 0xFF, 0xF8, 0xC9, 0x43, 0xFF, 0xF8, 0xC8, 0x42, 0xFF, - 0xF8, 0xC7, 0x42, 0xFF, 0xF8, 0xC7, 0x41, 0xFF, 0xF9, 0xC6, 0x41, 0xFF, 0xF9, 0xC5, 0x40, 0xFF, - 0xF9, 0xC4, 0x40, 0xFF, 0xF9, 0xC3, 0x3E, 0xFF, 0xF9, 0xC2, 0x3C, 0xFF, 0xF9, 0xC1, 0x3A, 0xFF, - 0xF9, 0xBF, 0x38, 0xFF, 0xF9, 0xBF, 0x37, 0xFF, 0xF9, 0xBE, 0x36, 0xFF, 0xF8, 0xBE, 0x34, 0xFF, - 0xF8, 0xBD, 0x33, 0xFF, 0xF9, 0xBC, 0x33, 0xFF, 0xF9, 0xBA, 0x32, 0xFF, 0xFA, 0xB9, 0x32, 0xFF, - 0xFB, 0xB7, 0x31, 0xFF, 0xF9, 0xB6, 0x30, 0xFF, 0xF8, 0xB6, 0x2E, 0xFF, 0xF6, 0xB5, 0x2C, 0xFF, - 0xF4, 0xB4, 0x2A, 0xFF, 0xF5, 0xB3, 0x2A, 0xFF, 0xF6, 0xB2, 0x2A, 0xFF, 0xF8, 0xB2, 0x2A, 0xFF, - 0xFA, 0xB1, 0x29, 0xFF, 0xF4, 0xB5, 0x2D, 0xFF, 0xF5, 0xB4, 0x1D, 0xFF, 0xFF, 0x9B, 0x23, 0xFF, - 0xF2, 0xB5, 0x1F, 0xFF, 0xFB, 0xAB, 0x0B, 0xFF, 0xF6, 0xAC, 0x1E, 0xFF, 0xF6, 0xAB, 0x1F, 0xFF, - 0xF5, 0xAA, 0x20, 0xFF, 0xF6, 0xA9, 0x1F, 0xFF, 0xF6, 0xA7, 0x1E, 0xFF, 0xF7, 0xA6, 0x1D, 0xFF, - 0xF8, 0xA5, 0x1B, 0xFF, 0xF8, 0xA4, 0x1B, 0xFF, 0xF8, 0xA3, 0x1B, 0xFF, 0xF8, 0xA2, 0x1B, 0xFF, - 0xF9, 0xA1, 0x1A, 0xFF, 0xF8, 0xA1, 0x19, 0xFF, 0xF8, 0xA0, 0x18, 0xFF, 0xF8, 0x9F, 0x16, 0xFF, - 0xF7, 0x9F, 0x15, 0xFF, 0xF7, 0x9E, 0x14, 0xFF, 0xF6, 0x9D, 0x13, 0xFF, 0xF6, 0x9C, 0x12, 0xFF, - 0xF5, 0x9A, 0x11, 0xFF, 0xF5, 0x9A, 0x11, 0xFF, 0xF5, 0x9A, 0x11, 0xFF, 0xF5, 0x9A, 0x11, 0xFF, - 0xF9, 0xD0, 0x54, 0xFF, 0xF9, 0xCF, 0x52, 0xFF, 0xF9, 0xCF, 0x51, 0xFF, 0xFA, 0xCF, 0x4F, 0xFF, - 0xFA, 0xCF, 0x4D, 0xFF, 0xF9, 0xCE, 0x4A, 0xFF, 0xF9, 0xCC, 0x48, 0xFF, 0xF8, 0xCB, 0x46, 0xFF, - 0xF8, 0xCA, 0x43, 0xFF, 0xF8, 0xC9, 0x43, 0xFF, 0xF8, 0xC9, 0x43, 0xFF, 0xF8, 0xC8, 0x42, 0xFF, - 0xF8, 0xC7, 0x42, 0xFF, 0xF8, 0xC7, 0x41, 0xFF, 0xF9, 0xC6, 0x41, 0xFF, 0xF9, 0xC5, 0x40, 0xFF, - 0xF9, 0xC4, 0x40, 0xFF, 0xF9, 0xC3, 0x3E, 0xFF, 0xF9, 0xC2, 0x3C, 0xFF, 0xF9, 0xC1, 0x3A, 0xFF, - 0xF9, 0xBF, 0x38, 0xFF, 0xF9, 0xBF, 0x37, 0xFF, 0xF9, 0xBE, 0x36, 0xFF, 0xF8, 0xBE, 0x34, 0xFF, - 0xF8, 0xBD, 0x33, 0xFF, 0xF9, 0xBC, 0x33, 0xFF, 0xF9, 0xBA, 0x32, 0xFF, 0xFA, 0xB9, 0x32, 0xFF, - 0xFB, 0xB7, 0x31, 0xFF, 0xF9, 0xB6, 0x30, 0xFF, 0xF8, 0xB6, 0x2E, 0xFF, 0xF6, 0xB5, 0x2C, 0xFF, - 0xF4, 0xB4, 0x2A, 0xFF, 0xF5, 0xB3, 0x2A, 0xFF, 0xF6, 0xB2, 0x2A, 0xFF, 0xF7, 0xB2, 0x2A, 0xFF, - 0xF8, 0xB1, 0x2A, 0xFF, 0xF9, 0xAE, 0x21, 0xFF, 0xFA, 0xAC, 0x18, 0xFF, 0xF6, 0xAD, 0x1E, 0xFF, - 0xF3, 0xAE, 0x23, 0xFF, 0xF4, 0xAC, 0x20, 0xFF, 0xF5, 0xAB, 0x1D, 0xFF, 0xF5, 0xAA, 0x1E, 0xFF, - 0xF5, 0xAA, 0x20, 0xFF, 0xF6, 0xA9, 0x1F, 0xFF, 0xF6, 0xA7, 0x1E, 0xFF, 0xF7, 0xA6, 0x1D, 0xFF, - 0xF8, 0xA5, 0x1B, 0xFF, 0xF8, 0xA4, 0x1B, 0xFF, 0xF8, 0xA3, 0x1B, 0xFF, 0xF8, 0xA2, 0x1B, 0xFF, - 0xF9, 0xA1, 0x1A, 0xFF, 0xF8, 0xA1, 0x19, 0xFF, 0xF8, 0xA0, 0x18, 0xFF, 0xF8, 0x9F, 0x16, 0xFF, - 0xF7, 0x9F, 0x15, 0xFF, 0xF7, 0x9E, 0x14, 0xFF, 0xF6, 0x9D, 0x13, 0xFF, 0xF6, 0x9C, 0x12, 0xFF, - 0xF5, 0x9A, 0x11, 0xFF, 0xF5, 0x9A, 0x11, 0xFF, 0xF5, 0x9A, 0x11, 0xFF, 0xF5, 0x9A, 0x11, 0xFF, - 0xF9, 0xD0, 0x54, 0xFF, 0xF9, 0xCF, 0x52, 0xFF, 0xF9, 0xCF, 0x51, 0xFF, 0xFA, 0xCF, 0x4F, 0xFF, - 0xFA, 0xCF, 0x4D, 0xFF, 0xF9, 0xCE, 0x4A, 0xFF, 0xF9, 0xCC, 0x48, 0xFF, 0xF8, 0xCB, 0x46, 0xFF, - 0xF8, 0xCA, 0x43, 0xFF, 0xF8, 0xC9, 0x43, 0xFF, 0xF8, 0xC9, 0x43, 0xFF, 0xF8, 0xC8, 0x42, 0xFF, - 0xF8, 0xC7, 0x42, 0xFF, 0xF8, 0xC7, 0x41, 0xFF, 0xF9, 0xC6, 0x41, 0xFF, 0xF9, 0xC5, 0x40, 0xFF, - 0xF9, 0xC4, 0x40, 0xFF, 0xF9, 0xC3, 0x3E, 0xFF, 0xF9, 0xC2, 0x3C, 0xFF, 0xF9, 0xC1, 0x3A, 0xFF, - 0xF9, 0xBF, 0x38, 0xFF, 0xF9, 0xBF, 0x37, 0xFF, 0xF9, 0xBE, 0x36, 0xFF, 0xF8, 0xBE, 0x34, 0xFF, - 0xF8, 0xBD, 0x33, 0xFF, 0xF9, 0xBC, 0x33, 0xFF, 0xF9, 0xBA, 0x32, 0xFF, 0xFA, 0xB9, 0x32, 0xFF, - 0xFB, 0xB7, 0x31, 0xFF, 0xF9, 0xB6, 0x30, 0xFF, 0xF8, 0xB6, 0x2E, 0xFF, 0xF6, 0xB5, 0x2C, 0xFF, - 0xF4, 0xB4, 0x2A, 0xFF, 0xF5, 0xB3, 0x2A, 0xFF, 0xF6, 0xB2, 0x2A, 0xFF, 0xF7, 0xB2, 0x2A, 0xFF, - 0xF8, 0xB1, 0x2A, 0xFF, 0xF9, 0xAE, 0x21, 0xFF, 0xFA, 0xAC, 0x18, 0xFF, 0xF6, 0xAD, 0x1E, 0xFF, - 0xF3, 0xAE, 0x23, 0xFF, 0xF4, 0xAC, 0x20, 0xFF, 0xF5, 0xAB, 0x1D, 0xFF, 0xF5, 0xAA, 0x1E, 0xFF, - 0xF5, 0xAA, 0x20, 0xFF, 0xF6, 0xA9, 0x1F, 0xFF, 0xF6, 0xA7, 0x1E, 0xFF, 0xF7, 0xA6, 0x1D, 0xFF, - 0xF8, 0xA5, 0x1B, 0xFF, 0xF8, 0xA4, 0x1B, 0xFF, 0xF8, 0xA3, 0x1B, 0xFF, 0xF8, 0xA2, 0x1B, 0xFF, - 0xF9, 0xA1, 0x1A, 0xFF, 0xF8, 0xA1, 0x19, 0xFF, 0xF8, 0xA0, 0x18, 0xFF, 0xF8, 0x9F, 0x16, 0xFF, - 0xF7, 0x9F, 0x15, 0xFF, 0xF7, 0x9E, 0x14, 0xFF, 0xF6, 0x9D, 0x13, 0xFF, 0xF6, 0x9C, 0x12, 0xFF, - 0xF5, 0x9A, 0x11, 0xFF, 0xF5, 0x9A, 0x11, 0xFF, 0xF5, 0x9A, 0x11, 0xFF, 0xF5, 0x9A, 0x11, 0xFF, + 0xDE, 0x9B, 0x22, 0xFF, 0xE0, 0x9D, 0x23, 0xFF, 0xE1, 0x9E, 0x25, 0xFF, 0xE8, 0xA5, 0x2B, 0xFF, 0xDF, 0x9B, 0x22, + 0xFF, 0xDF, 0x9C, 0x22, 0xFF, 0xE0, 0x9C, 0x22, 0xFF, 0xDF, 0x9C, 0x22, 0xFF, 0xDF, 0x9B, 0x21, 0xFF, 0xDF, 0x9B, + 0x22, 0xFF, 0xDF, 0x9B, 0x23, 0xFF, 0xDF, 0x9B, 0x23, 0xFF, 0xDF, 0x9C, 0x24, 0xFF, 0xE2, 0x9B, 0x21, 0xFF, 0xE5, + 0x9B, 0x1D, 0xFF, 0xE1, 0x9A, 0x1F, 0xFF, 0xDD, 0x98, 0x21, 0xFF, 0xDE, 0x99, 0x21, 0xFF, 0xDE, 0x99, 0x20, 0xFF, + 0xDF, 0x9A, 0x1F, 0xFF, 0xE0, 0x9A, 0x1F, 0xFF, 0xE0, 0x99, 0x1E, 0xFF, 0xDF, 0x99, 0x1D, 0xFF, 0xDF, 0x98, 0x1C, + 0xFF, 0xDF, 0x97, 0x1B, 0xFF, 0xDC, 0x95, 0x1E, 0xFF, 0xD8, 0x93, 0x21, 0xFF, 0xDC, 0x93, 0x1F, 0xFF, 0xE0, 0x93, + 0x1C, 0xFF, 0xDC, 0x94, 0x1A, 0xFF, 0xD8, 0x95, 0x18, 0xFF, 0xDB, 0x91, 0x1C, 0xFF, 0xDE, 0x8E, 0x1F, 0xFF, 0xDE, + 0x90, 0x1A, 0xFF, 0xDE, 0x93, 0x16, 0xFF, 0xDF, 0x92, 0x17, 0xFF, 0xDF, 0x91, 0x18, 0xFF, 0xDF, 0x90, 0x17, 0xFF, + 0xDE, 0x8F, 0x17, 0xFF, 0xDE, 0x8E, 0x16, 0xFF, 0xDE, 0x8C, 0x15, 0xFF, 0xDD, 0x8C, 0x14, 0xFF, 0xDB, 0x8C, 0x13, + 0xFF, 0xDA, 0x8C, 0x12, 0xFF, 0xD9, 0x8C, 0x11, 0xFF, 0xD9, 0x8B, 0x11, 0xFF, 0xD9, 0x89, 0x11, 0xFF, 0xDA, 0x88, + 0x11, 0xFF, 0xDA, 0x87, 0x12, 0xFF, 0xDA, 0x86, 0x11, 0xFF, 0xDA, 0x86, 0x10, 0xFF, 0xD9, 0x85, 0x10, 0xFF, 0xD9, + 0x84, 0x0F, 0xFF, 0xD9, 0x83, 0x0E, 0xFF, 0xD8, 0x83, 0x0E, 0xFF, 0xD8, 0x82, 0x0D, 0xFF, 0xD8, 0x81, 0x0C, 0xFF, + 0xD7, 0x80, 0x0C, 0xFF, 0xD7, 0x7F, 0x0D, 0xFF, 0xD6, 0x7F, 0x0D, 0xFF, 0xD6, 0x7E, 0x0D, 0xFF, 0xD6, 0x7E, 0x0D, + 0xFF, 0xD6, 0x7E, 0x0D, 0xFF, 0xD6, 0x7E, 0x0D, 0xFF, 0xE0, 0x9F, 0x24, 0xFF, 0xE1, 0xA0, 0x27, 0xFF, 0xE2, 0xA2, + 0x29, 0xFF, 0xE5, 0xA4, 0x2A, 0xFF, 0xE0, 0x9E, 0x24, 0xFF, 0xE1, 0x9E, 0x24, 0xFF, 0xE1, 0x9E, 0x24, 0xFF, 0xE1, + 0x9E, 0x23, 0xFF, 0xE1, 0x9D, 0x23, 0xFF, 0xE1, 0x9D, 0x23, 0xFF, 0xE1, 0x9D, 0x24, 0xFF, 0xE1, 0x9D, 0x24, 0xFF, + 0xE1, 0x9D, 0x25, 0xFF, 0xE1, 0x9D, 0x23, 0xFF, 0xE2, 0x9C, 0x22, 0xFF, 0xE0, 0x9C, 0x22, 0xFF, 0xDF, 0x9B, 0x22, + 0xFF, 0xE0, 0x9B, 0x21, 0xFF, 0xE1, 0x9B, 0x20, 0xFF, 0xE1, 0x9B, 0x20, 0xFF, 0xE1, 0x9B, 0x1F, 0xFF, 0xDF, 0x9A, + 0x20, 0xFF, 0xDE, 0x99, 0x20, 0xFF, 0xDE, 0x98, 0x1E, 0xFF, 0xDF, 0x97, 0x1D, 0xFF, 0xDF, 0x97, 0x1D, 0xFF, 0xDF, + 0x96, 0x1E, 0xFF, 0xDF, 0x95, 0x1D, 0xFF, 0xDE, 0x94, 0x1C, 0xFF, 0xDF, 0x94, 0x1C, 0xFF, 0xE0, 0x93, 0x1B, 0xFF, + 0xE0, 0x93, 0x1C, 0xFF, 0xE0, 0x92, 0x1D, 0xFF, 0xDE, 0x93, 0x1B, 0xFF, 0xDC, 0x94, 0x19, 0xFF, 0xDE, 0x93, 0x19, + 0xFF, 0xE0, 0x92, 0x19, 0xFF, 0xDF, 0x91, 0x19, 0xFF, 0xDF, 0x90, 0x18, 0xFF, 0xDF, 0x8F, 0x17, 0xFF, 0xDF, 0x8E, + 0x17, 0xFF, 0xDE, 0x8E, 0x16, 0xFF, 0xDD, 0x8D, 0x15, 0xFF, 0xDC, 0x8D, 0x13, 0xFF, 0xDB, 0x8D, 0x12, 0xFF, 0xDB, + 0x8C, 0x12, 0xFF, 0xDB, 0x8B, 0x12, 0xFF, 0xDB, 0x89, 0x12, 0xFF, 0xDB, 0x88, 0x12, 0xFF, 0xDB, 0x87, 0x11, 0xFF, + 0xDB, 0x87, 0x11, 0xFF, 0xDB, 0x86, 0x10, 0xFF, 0xDB, 0x85, 0x0F, 0xFF, 0xDA, 0x84, 0x0E, 0xFF, 0xD9, 0x83, 0x0D, + 0xFF, 0xD9, 0x83, 0x0D, 0xFF, 0xD9, 0x83, 0x0D, 0xFF, 0xD8, 0x82, 0x0D, 0xFF, 0xD8, 0x81, 0x0D, 0xFF, 0xD7, 0x80, + 0x0D, 0xFF, 0xD7, 0x7F, 0x0D, 0xFF, 0xD7, 0x7F, 0x0D, 0xFF, 0xD7, 0x7F, 0x0D, 0xFF, 0xD7, 0x7F, 0x0D, 0xFF, 0xE2, + 0xA2, 0x27, 0xFF, 0xE3, 0xA4, 0x2A, 0xFF, 0xE3, 0xA5, 0x2D, 0xFF, 0xE3, 0xA3, 0x29, 0xFF, 0xE2, 0xA1, 0x26, 0xFF, + 0xE2, 0xA1, 0x25, 0xFF, 0xE2, 0xA1, 0x25, 0xFF, 0xE2, 0xA0, 0x25, 0xFF, 0xE2, 0xA0, 0x24, 0xFF, 0xE2, 0x9F, 0x25, + 0xFF, 0xE3, 0x9F, 0x25, 0xFF, 0xE3, 0x9E, 0x25, 0xFF, 0xE3, 0x9E, 0x26, 0xFF, 0xE1, 0x9E, 0x26, 0xFF, 0xDE, 0x9D, + 0x27, 0xFF, 0xDF, 0x9D, 0x24, 0xFF, 0xE1, 0x9E, 0x22, 0xFF, 0xE2, 0x9D, 0x21, 0xFF, 0xE3, 0x9D, 0x20, 0xFF, 0xE3, + 0x9D, 0x20, 0xFF, 0xE3, 0x9C, 0x20, 0xFF, 0xDF, 0x9B, 0x22, 0xFF, 0xDC, 0x99, 0x24, 0xFF, 0xDE, 0x98, 0x21, 0xFF, + 0xE0, 0x98, 0x1F, 0xFF, 0xE3, 0x99, 0x1D, 0xFF, 0xE7, 0x9A, 0x1B, 0xFF, 0xE1, 0x98, 0x1B, 0xFF, 0xDC, 0x96, 0x1C, + 0xFF, 0xE2, 0x94, 0x1D, 0xFF, 0xE9, 0x92, 0x1F, 0xFF, 0xE5, 0x94, 0x1D, 0xFF, 0xE2, 0x96, 0x1A, 0xFF, 0xDE, 0x95, + 0x1B, 0xFF, 0xDA, 0x95, 0x1D, 0xFF, 0xDD, 0x94, 0x1C, 0xFF, 0xE0, 0x93, 0x1A, 0xFF, 0xE0, 0x92, 0x1A, 0xFF, 0xE0, + 0x91, 0x19, 0xFF, 0xDF, 0x91, 0x19, 0xFF, 0xDF, 0x90, 0x18, 0xFF, 0xDE, 0x8F, 0x17, 0xFF, 0xDE, 0x8F, 0x16, 0xFF, + 0xDD, 0x8E, 0x15, 0xFF, 0xDD, 0x8E, 0x14, 0xFF, 0xDC, 0x8D, 0x14, 0xFF, 0xDC, 0x8C, 0x13, 0xFF, 0xDC, 0x8B, 0x12, + 0xFF, 0xDB, 0x8A, 0x12, 0xFF, 0xDC, 0x89, 0x11, 0xFF, 0xDC, 0x88, 0x11, 0xFF, 0xDC, 0x87, 0x10, 0xFF, 0xDC, 0x86, + 0x10, 0xFF, 0xDB, 0x84, 0x0E, 0xFF, 0xD9, 0x83, 0x0D, 0xFF, 0xD9, 0x83, 0x0E, 0xFF, 0xDA, 0x84, 0x0E, 0xFF, 0xD9, + 0x83, 0x0E, 0xFF, 0xD9, 0x82, 0x0E, 0xFF, 0xD8, 0x80, 0x0D, 0xFF, 0xD8, 0x7F, 0x0D, 0xFF, 0xD8, 0x7F, 0x0D, 0xFF, + 0xD8, 0x7F, 0x0D, 0xFF, 0xD8, 0x7F, 0x0D, 0xFF, 0xE4, 0xA6, 0x29, 0xFF, 0xE3, 0xA7, 0x2D, 0xFF, 0xE3, 0xA8, 0x30, + 0xFF, 0xE3, 0xA6, 0x2C, 0xFF, 0xE3, 0xA3, 0x27, 0xFF, 0xE3, 0xA3, 0x27, 0xFF, 0xE3, 0xA3, 0x26, 0xFF, 0xE4, 0xA2, + 0x26, 0xFF, 0xE4, 0xA2, 0x26, 0xFF, 0xE4, 0xA1, 0x26, 0xFF, 0xE4, 0xA1, 0x26, 0xFF, 0xE5, 0xA0, 0x26, 0xFF, 0xE5, + 0x9F, 0x26, 0xFF, 0xE4, 0xA0, 0x25, 0xFF, 0xE4, 0xA0, 0x24, 0xFF, 0xE3, 0x9F, 0x24, 0xFF, 0xE3, 0x9E, 0x24, 0xFF, + 0xE4, 0x9E, 0x23, 0xFF, 0xE6, 0x9F, 0x21, 0xFF, 0xE5, 0x9F, 0x21, 0xFF, 0xE3, 0x9E, 0x22, 0xFF, 0xE5, 0xA4, 0x13, + 0xFF, 0xE7, 0x9F, 0x1A, 0xFF, 0xE7, 0x9F, 0x15, 0xFF, 0xE7, 0xA0, 0x10, 0xFF, 0xEF, 0x9F, 0x11, 0xFF, 0xF7, 0x9E, + 0x12, 0xFF, 0xEC, 0x99, 0x1A, 0xFF, 0xE1, 0x9A, 0x17, 0xFF, 0xE3, 0x9C, 0x14, 0xFF, 0xE5, 0x98, 0x1C, 0xFF, 0xE6, + 0x97, 0x1C, 0xFF, 0xE6, 0x96, 0x1B, 0xFF, 0xDB, 0x98, 0x1B, 0xFF, 0xDF, 0x96, 0x1C, 0xFF, 0xE0, 0x95, 0x1C, 0xFF, + 0xE1, 0x94, 0x1B, 0xFF, 0xE1, 0x93, 0x1B, 0xFF, 0xE0, 0x93, 0x1A, 0xFF, 0xE0, 0x92, 0x1A, 0xFF, 0xE0, 0x92, 0x19, + 0xFF, 0xDF, 0x91, 0x18, 0xFF, 0xDF, 0x90, 0x18, 0xFF, 0xDF, 0x8F, 0x17, 0xFF, 0xDF, 0x8F, 0x16, 0xFF, 0xDE, 0x8E, + 0x15, 0xFF, 0xDD, 0x8D, 0x14, 0xFF, 0xDD, 0x8C, 0x13, 0xFF, 0xDC, 0x8B, 0x12, 0xFF, 0xDC, 0x8A, 0x12, 0xFF, 0xDD, + 0x89, 0x11, 0xFF, 0xDD, 0x87, 0x11, 0xFF, 0xDE, 0x86, 0x10, 0xFF, 0xDC, 0x85, 0x0F, 0xFF, 0xD9, 0x83, 0x0D, 0xFF, + 0xDA, 0x84, 0x0E, 0xFF, 0xDB, 0x85, 0x0F, 0xFF, 0xDA, 0x84, 0x0F, 0xFF, 0xDA, 0x83, 0x0E, 0xFF, 0xDA, 0x81, 0x0E, + 0xFF, 0xD9, 0x80, 0x0D, 0xFF, 0xD9, 0x80, 0x0D, 0xFF, 0xD9, 0x80, 0x0D, 0xFF, 0xD9, 0x80, 0x0D, 0xFF, 0xE7, 0xAA, + 0x2C, 0xFF, 0xE4, 0xAA, 0x30, 0xFF, 0xE2, 0xAA, 0x33, 0xFF, 0xE3, 0xA8, 0x2E, 0xFF, 0xE4, 0xA5, 0x28, 0xFF, 0xE5, + 0xA5, 0x28, 0xFF, 0xE5, 0xA5, 0x28, 0xFF, 0xE5, 0xA4, 0x28, 0xFF, 0xE5, 0xA4, 0x27, 0xFF, 0xE6, 0xA3, 0x27, 0xFF, + 0xE6, 0xA2, 0x27, 0xFF, 0xE7, 0xA1, 0x27, 0xFF, 0xE7, 0xA1, 0x27, 0xFF, 0xE8, 0xA2, 0x25, 0xFF, 0xE9, 0xA3, 0x22, + 0xFF, 0xE7, 0xA0, 0x24, 0xFF, 0xE6, 0x9E, 0x27, 0xFF, 0xE7, 0x9F, 0x25, 0xFF, 0xE8, 0xA0, 0x22, 0xFF, 0xF4, 0xA3, + 0x18, 0xFF, 0xFF, 0xA7, 0x0D, 0xFF, 0xDD, 0xA5, 0x1A, 0xFF, 0xBA, 0x8D, 0x54, 0xFF, 0x9C, 0x83, 0x6E, 0xFF, 0x7D, + 0x79, 0x88, 0xFF, 0x7B, 0x79, 0x8C, 0xFF, 0x79, 0x79, 0x91, 0xFF, 0x94, 0x7A, 0x7E, 0xFF, 0xAF, 0x87, 0x55, 0xFF, + 0xD6, 0x9B, 0x21, 0xFF, 0xFD, 0xA3, 0x04, 0xFF, 0xF4, 0x9D, 0x0F, 0xFF, 0xEB, 0x96, 0x1B, 0xFF, 0xD9, 0x9A, 0x1B, + 0xFF, 0xE4, 0x98, 0x1B, 0xFF, 0xE3, 0x96, 0x1C, 0xFF, 0xE2, 0x95, 0x1C, 0xFF, 0xE2, 0x94, 0x1C, 0xFF, 0xE1, 0x94, + 0x1B, 0xFF, 0xE1, 0x94, 0x1B, 0xFF, 0xE0, 0x93, 0x1B, 0xFF, 0xE0, 0x92, 0x1A, 0xFF, 0xE0, 0x91, 0x19, 0xFF, 0xE1, + 0x90, 0x18, 0xFF, 0xE1, 0x8F, 0x18, 0xFF, 0xE0, 0x8F, 0x16, 0xFF, 0xDF, 0x8E, 0x15, 0xFF, 0xDE, 0x8D, 0x14, 0xFF, + 0xDC, 0x8C, 0x12, 0xFF, 0xDD, 0x8B, 0x12, 0xFF, 0xDE, 0x8A, 0x12, 0xFF, 0xDF, 0x88, 0x11, 0xFF, 0xE0, 0x87, 0x11, + 0xFF, 0xDD, 0x85, 0x0F, 0xFF, 0xDA, 0x83, 0x0D, 0xFF, 0xDB, 0x85, 0x0E, 0xFF, 0xDC, 0x87, 0x10, 0xFF, 0xDC, 0x85, + 0x0F, 0xFF, 0xDB, 0x84, 0x0F, 0xFF, 0xDB, 0x82, 0x0E, 0xFF, 0xDA, 0x81, 0x0D, 0xFF, 0xDA, 0x81, 0x0D, 0xFF, 0xDA, + 0x81, 0x0D, 0xFF, 0xDA, 0x81, 0x0D, 0xFF, 0xE4, 0xAA, 0x30, 0xFF, 0xE8, 0xAF, 0x35, 0xFF, 0xE3, 0xAB, 0x33, 0xFF, + 0xE5, 0xA9, 0x2F, 0xFF, 0xE6, 0xA8, 0x2A, 0xFF, 0xE8, 0xAD, 0x35, 0xFF, 0xE7, 0xA6, 0x25, 0xFF, 0xE7, 0xA7, 0x28, + 0xFF, 0xE7, 0xA8, 0x2B, 0xFF, 0xE5, 0xA6, 0x2D, 0xFF, 0xE4, 0xA4, 0x2E, 0xFF, 0xE6, 0xA4, 0x2B, 0xFF, 0xE8, 0xA4, + 0x29, 0xFF, 0xE5, 0xA4, 0x2A, 0xFF, 0xE1, 0xA5, 0x2C, 0xFF, 0xEF, 0xA9, 0x10, 0xFF, 0xF6, 0xAD, 0x12, 0xFF, 0xF8, + 0xA2, 0x22, 0xFF, 0xA5, 0x91, 0x60, 0xFF, 0x5C, 0x75, 0xA5, 0xFF, 0x14, 0x59, 0xEB, 0xFF, 0x0C, 0x48, 0xFF, 0xFF, + 0x03, 0x55, 0xFA, 0xFF, 0x0F, 0x59, 0xFF, 0xFF, 0x1A, 0x5D, 0xFF, 0xFF, 0x16, 0x60, 0xFF, 0xFF, 0x11, 0x64, 0xF9, + 0xFF, 0x0F, 0x54, 0xFF, 0xFF, 0x0C, 0x4A, 0xFF, 0xFF, 0x17, 0x49, 0xFA, 0xFF, 0x23, 0x47, 0xF5, 0xFF, 0x7E, 0x72, + 0x8D, 0xFF, 0xD9, 0x9D, 0x26, 0xFF, 0xFF, 0xA1, 0x05, 0xFF, 0xE1, 0x96, 0x1D, 0xFF, 0xE9, 0x98, 0x17, 0xFF, 0xE3, + 0x97, 0x1C, 0xFF, 0xE3, 0x97, 0x1A, 0xFF, 0xE4, 0x97, 0x18, 0xFF, 0xE3, 0x96, 0x19, 0xFF, 0xE2, 0x94, 0x1B, 0xFF, + 0xE1, 0x93, 0x1A, 0xFF, 0xE0, 0x93, 0x19, 0xFF, 0xE1, 0x92, 0x18, 0xFF, 0xE1, 0x91, 0x17, 0xFF, 0xE0, 0x90, 0x16, + 0xFF, 0xDF, 0x8F, 0x15, 0xFF, 0xDE, 0x8E, 0x14, 0xFF, 0xDD, 0x8D, 0x13, 0xFF, 0xDE, 0x8D, 0x13, 0xFF, 0xDF, 0x8C, + 0x13, 0xFF, 0xDF, 0x8A, 0x12, 0xFF, 0xE0, 0x89, 0x10, 0xFF, 0xDD, 0x87, 0x0F, 0xFF, 0xDB, 0x84, 0x0E, 0xFF, 0xDF, + 0x8A, 0x13, 0xFF, 0xDB, 0x87, 0x0F, 0xFF, 0xDC, 0x86, 0x0F, 0xFF, 0xDC, 0x85, 0x0F, 0xFF, 0xDB, 0x84, 0x0E, 0xFF, + 0xDB, 0x82, 0x0D, 0xFF, 0xDB, 0x82, 0x0D, 0xFF, 0xDB, 0x82, 0x0D, 0xFF, 0xDB, 0x82, 0x0D, 0xFF, 0xE2, 0xAB, 0x33, + 0xFF, 0xEB, 0xB3, 0x3B, 0xFF, 0xE5, 0xAC, 0x33, 0xFF, 0xE6, 0xAB, 0x30, 0xFF, 0xE7, 0xAA, 0x2D, 0xFF, 0xEA, 0xB6, + 0x43, 0xFF, 0xEA, 0xA7, 0x23, 0xFF, 0xE9, 0xA9, 0x29, 0xFF, 0xE9, 0xAB, 0x2F, 0xFF, 0xE5, 0xA9, 0x32, 0xFF, 0xE2, + 0xA7, 0x35, 0xFF, 0xE6, 0xA7, 0x30, 0xFF, 0xEA, 0xA8, 0x2A, 0xFF, 0xF0, 0xAA, 0x25, 0xFF, 0xF6, 0xAD, 0x1F, 0xFF, + 0xA7, 0x8A, 0x4D, 0xFF, 0x4C, 0x66, 0xB7, 0xFF, 0x0F, 0x54, 0xFF, 0xFF, 0x0C, 0x64, 0xF7, 0xFF, 0x13, 0x63, 0xF8, + 0xFF, 0x1A, 0x61, 0xF9, 0xFF, 0x1E, 0x67, 0xEF, 0xFF, 0x22, 0x61, 0xFC, 0xFF, 0x25, 0x68, 0xFA, 0xFF, 0x28, 0x6F, + 0xF9, 0xFF, 0x22, 0x70, 0xF5, 0xFF, 0x1B, 0x72, 0xF2, 0xFF, 0x1F, 0x6B, 0xF2, 0xFF, 0x24, 0x64, 0xF1, 0xFF, 0x21, + 0x55, 0xFF, 0xFF, 0x1E, 0x53, 0xFF, 0xFF, 0x16, 0x4B, 0xFF, 0xFF, 0x0E, 0x43, 0xFF, 0xFF, 0x5A, 0x61, 0xB1, 0xFF, + 0xDF, 0x95, 0x1E, 0xFF, 0xF0, 0x9A, 0x12, 0xFF, 0xE5, 0x9A, 0x1B, 0xFF, 0xE5, 0x9A, 0x18, 0xFF, 0xE6, 0x9A, 0x14, + 0xFF, 0xE5, 0x98, 0x17, 0xFF, 0xE4, 0x95, 0x1B, 0xFF, 0xE2, 0x95, 0x1A, 0xFF, 0xE0, 0x94, 0x19, 0xFF, 0xE1, 0x93, + 0x18, 0xFF, 0xE2, 0x92, 0x17, 0xFF, 0xE1, 0x91, 0x16, 0xFF, 0xE0, 0x90, 0x16, 0xFF, 0xDF, 0x8F, 0x15, 0xFF, 0xDE, + 0x8F, 0x14, 0xFF, 0xDF, 0x8E, 0x14, 0xFF, 0xE1, 0x8E, 0x14, 0xFF, 0xE0, 0x8C, 0x12, 0xFF, 0xE0, 0x8A, 0x10, 0xFF, + 0xDE, 0x88, 0x10, 0xFF, 0xDC, 0x86, 0x10, 0xFF, 0xE3, 0x8E, 0x17, 0xFF, 0xDB, 0x87, 0x0D, 0xFF, 0xDB, 0x86, 0x0E, + 0xFF, 0xDC, 0x86, 0x0F, 0xFF, 0xDC, 0x85, 0x0E, 0xFF, 0xDB, 0x83, 0x0E, 0xFF, 0xDB, 0x83, 0x0E, 0xFF, 0xDB, 0x83, + 0x0E, 0xFF, 0xDB, 0x83, 0x0E, 0xFF, 0xEA, 0xB0, 0x36, 0xFF, 0xEF, 0xB3, 0x36, 0xFF, 0xED, 0xAE, 0x2E, 0xFF, 0xEC, + 0xAD, 0x2C, 0xFF, 0xEB, 0xAD, 0x2A, 0xFF, 0xEF, 0xB3, 0x40, 0xFF, 0xE9, 0xAA, 0x28, 0xFF, 0xE7, 0xAB, 0x2B, 0xFF, + 0xE6, 0xAB, 0x2F, 0xFF, 0xE6, 0xAA, 0x30, 0xFF, 0xE5, 0xAA, 0x31, 0xFF, 0xE6, 0xA9, 0x2E, 0xFF, 0xE7, 0xA9, 0x2B, + 0xFF, 0xEB, 0xA7, 0x24, 0xFF, 0x5F, 0x6A, 0x93, 0xFF, 0x05, 0x3D, 0xFF, 0xFF, 0x17, 0x56, 0xF9, 0xFF, 0x12, 0x72, + 0xE2, 0xFF, 0x29, 0x72, 0xF8, 0xFF, 0x27, 0x74, 0xF7, 0xFF, 0x25, 0x76, 0xF6, 0xFF, 0x28, 0x76, 0xF1, 0xFF, 0x2A, + 0x70, 0xF8, 0xFF, 0x2D, 0x77, 0xF8, 0xFF, 0x30, 0x7D, 0xF9, 0xFF, 0x2D, 0x7F, 0xF7, 0xFF, 0x2A, 0x81, 0xF5, 0xFF, + 0x2B, 0x7B, 0xF5, 0xFF, 0x2C, 0x75, 0xF5, 0xFF, 0x2B, 0x6A, 0xFD, 0xFF, 0x2A, 0x64, 0xFA, 0xFF, 0x2C, 0x5D, 0xF5, + 0xFF, 0x2E, 0x57, 0xF0, 0xFF, 0x10, 0x48, 0xFF, 0xFF, 0x0E, 0x45, 0xFF, 0xFF, 0x7F, 0x76, 0x80, 0xFF, 0xF0, 0xA7, + 0x02, 0xFF, 0xEA, 0x95, 0x24, 0xFF, 0xE3, 0x9A, 0x19, 0xFF, 0xE4, 0x98, 0x1B, 0xFF, 0xE4, 0x95, 0x1D, 0xFF, 0xE2, + 0x95, 0x1B, 0xFF, 0xDF, 0x96, 0x19, 0xFF, 0xE1, 0x94, 0x18, 0xFF, 0xE2, 0x93, 0x17, 0xFF, 0xE2, 0x92, 0x16, 0xFF, + 0xE1, 0x92, 0x16, 0xFF, 0xE0, 0x91, 0x15, 0xFF, 0xDF, 0x90, 0x15, 0xFF, 0xE0, 0x90, 0x15, 0xFF, 0xE2, 0x91, 0x15, + 0xFF, 0xE1, 0x8E, 0x12, 0xFF, 0xDF, 0x8C, 0x0F, 0xFF, 0xDF, 0x8B, 0x12, 0xFF, 0xDF, 0x8A, 0x14, 0xFF, 0xE2, 0x8D, + 0x15, 0xFF, 0xDC, 0x89, 0x0E, 0xFF, 0xDC, 0x88, 0x0E, 0xFF, 0xDD, 0x87, 0x0F, 0xFF, 0xDC, 0x86, 0x0E, 0xFF, 0xDC, + 0x85, 0x0E, 0xFF, 0xDC, 0x85, 0x0E, 0xFF, 0xDC, 0x85, 0x0E, 0xFF, 0xDC, 0x85, 0x0E, 0xFF, 0xE6, 0xC0, 0x5F, 0xFF, + 0xE8, 0xBE, 0x57, 0xFF, 0xE9, 0xBB, 0x4F, 0xFF, 0xE6, 0xBA, 0x4E, 0xFF, 0xE3, 0xB9, 0x4D, 0xFF, 0xED, 0xB6, 0x50, + 0xFF, 0xE7, 0xAE, 0x2D, 0xFF, 0xE6, 0xAC, 0x2E, 0xFF, 0xE4, 0xAB, 0x2E, 0xFF, 0xE6, 0xAC, 0x2E, 0xFF, 0xE8, 0xAD, + 0x2E, 0xFF, 0xE7, 0xAB, 0x2D, 0xFF, 0xE5, 0xAA, 0x2C, 0xFF, 0xFF, 0xB2, 0x15, 0xFF, 0x10, 0x42, 0xEB, 0xFF, 0x16, + 0x4F, 0xF1, 0xFF, 0x1C, 0x5C, 0xF7, 0xFF, 0x23, 0x71, 0xF8, 0xFF, 0x29, 0x85, 0xF9, 0xFF, 0x2D, 0x88, 0xF6, 0xFF, + 0x30, 0x8B, 0xF3, 0xFF, 0x31, 0x85, 0xF4, 0xFF, 0x33, 0x7F, 0xF4, 0xFF, 0x35, 0x85, 0xF6, 0xFF, 0x37, 0x8B, 0xF9, + 0xFF, 0x38, 0x8D, 0xF8, 0xFF, 0x3A, 0x90, 0xF7, 0xFF, 0x37, 0x8B, 0xF8, 0xFF, 0x35, 0x86, 0xF8, 0xFF, 0x35, 0x7E, + 0xF7, 0xFF, 0x35, 0x75, 0xF6, 0xFF, 0x33, 0x6D, 0xF7, 0xFF, 0x31, 0x64, 0xF7, 0xFF, 0x31, 0x5E, 0xF8, 0xFF, 0x30, + 0x57, 0xF8, 0xFF, 0x25, 0x51, 0xFF, 0xFF, 0x36, 0x51, 0xF5, 0xFF, 0xFD, 0xA4, 0x03, 0xFF, 0xE1, 0x9A, 0x1E, 0xFF, + 0xE3, 0x98, 0x1E, 0xFF, 0xE5, 0x96, 0x1E, 0xFF, 0xE2, 0x96, 0x1C, 0xFF, 0xDF, 0x97, 0x19, 0xFF, 0xE1, 0x96, 0x18, + 0xFF, 0xE3, 0x95, 0x17, 0xFF, 0xE2, 0x94, 0x16, 0xFF, 0xE1, 0x93, 0x16, 0xFF, 0xE0, 0x92, 0x16, 0xFF, 0xE0, 0x91, + 0x15, 0xFF, 0xE2, 0x92, 0x16, 0xFF, 0xE4, 0x93, 0x16, 0xFF, 0xE1, 0x90, 0x12, 0xFF, 0xDF, 0x8E, 0x0F, 0xFF, 0xE1, + 0x8D, 0x14, 0xFF, 0xE3, 0x8D, 0x18, 0xFF, 0xE0, 0x8C, 0x13, 0xFF, 0xDE, 0x8B, 0x0F, 0xFF, 0xDD, 0x89, 0x0F, 0xFF, + 0xDD, 0x88, 0x0E, 0xFF, 0xDD, 0x87, 0x0E, 0xFF, 0xDC, 0x86, 0x0E, 0xFF, 0xDC, 0x86, 0x0E, 0xFF, 0xDC, 0x86, 0x0E, + 0xFF, 0xDC, 0x86, 0x0E, 0xFF, 0xED, 0xB6, 0x3C, 0xFF, 0xEE, 0xB3, 0x35, 0xFF, 0xEF, 0xB1, 0x2F, 0xFF, 0xED, 0xB1, + 0x2F, 0xFF, 0xEC, 0xB0, 0x2F, 0xFF, 0xEE, 0xB0, 0x38, 0xFF, 0xE9, 0xAE, 0x2D, 0xFF, 0xE7, 0xAD, 0x2F, 0xFF, 0xE6, + 0xAD, 0x30, 0xFF, 0xE8, 0xAE, 0x2F, 0xFF, 0xEA, 0xB0, 0x2D, 0xFF, 0xEC, 0xAD, 0x30, 0xFF, 0xEE, 0xAF, 0x28, 0xFF, + 0xC8, 0xA9, 0x2F, 0xFF, 0x04, 0x3D, 0xFF, 0xFF, 0x19, 0x50, 0xFA, 0xFF, 0x21, 0x5F, 0xF8, 0xFF, 0x28, 0x73, 0xF7, + 0xFF, 0x2F, 0x87, 0xF7, 0xFF, 0x37, 0x95, 0xFA, 0xFF, 0x37, 0x9B, 0xF5, 0xFF, 0x3A, 0x96, 0xF5, 0xFF, 0x3D, 0x92, + 0xF5, 0xFF, 0x3F, 0x94, 0xF7, 0xFF, 0x41, 0x96, 0xF9, 0xFF, 0x43, 0x99, 0xF9, 0xFF, 0x46, 0x9D, 0xF9, 0xFF, 0x44, + 0x98, 0xF8, 0xFF, 0x43, 0x94, 0xF7, 0xFF, 0x42, 0x8D, 0xF8, 0xFF, 0x41, 0x86, 0xF9, 0xFF, 0x3F, 0x7D, 0xF9, 0xFF, + 0x3C, 0x73, 0xF9, 0xFF, 0x38, 0x70, 0xF7, 0xFF, 0x35, 0x6C, 0xF4, 0xFF, 0x21, 0x60, 0xFF, 0xFF, 0x62, 0x6C, 0xBE, + 0xFF, 0xEF, 0x9D, 0x12, 0xFF, 0xE8, 0x9A, 0x21, 0xFF, 0xED, 0x99, 0x1C, 0xFF, 0xE3, 0x9B, 0x17, 0xFF, 0xF0, 0x98, + 0x13, 0xFF, 0xE0, 0x94, 0x1B, 0xFF, 0xE1, 0x96, 0x1A, 0xFF, 0xE3, 0x97, 0x19, 0xFF, 0xE4, 0x96, 0x18, 0xFF, 0xE5, + 0x95, 0x17, 0xFF, 0xE3, 0x94, 0x18, 0xFF, 0xE2, 0x93, 0x19, 0xFF, 0xE0, 0x91, 0x16, 0xFF, 0xDE, 0x90, 0x14, 0xFF, + 0xE1, 0x91, 0x15, 0xFF, 0xE5, 0x92, 0x16, 0xFF, 0xE3, 0x90, 0x14, 0xFF, 0xE2, 0x8D, 0x11, 0xFF, 0xE2, 0x8D, 0x10, + 0xFF, 0xE3, 0x8D, 0x0F, 0xFF, 0xDE, 0x8A, 0x10, 0xFF, 0xD8, 0x88, 0x11, 0xFF, 0xE1, 0x87, 0x0E, 0xFF, 0xDC, 0x89, + 0x0B, 0xFF, 0xE0, 0x85, 0x10, 0xFF, 0xE4, 0x87, 0x09, 0xFF, 0xE4, 0x87, 0x09, 0xFF, 0xE8, 0xB5, 0x3F, 0xFF, 0xE9, + 0xB3, 0x3B, 0xFF, 0xEA, 0xB2, 0x36, 0xFF, 0xE9, 0xB1, 0x37, 0xFF, 0xE8, 0xB1, 0x37, 0xFF, 0xE9, 0xAF, 0x32, 0xFF, + 0xEA, 0xAE, 0x2D, 0xFF, 0xE9, 0xAE, 0x30, 0xFF, 0xE8, 0xAF, 0x32, 0xFF, 0xEA, 0xB1, 0x30, 0xFF, 0xEC, 0xB4, 0x2D, + 0xFF, 0xF1, 0xAE, 0x34, 0xFF, 0xF6, 0xB4, 0x24, 0xFF, 0x86, 0x7E, 0x8D, 0xFF, 0x00, 0x4E, 0xF6, 0xFF, 0x1D, 0x5C, + 0xEC, 0xFF, 0x25, 0x63, 0xF9, 0xFF, 0x2D, 0x76, 0xF7, 0xFF, 0x35, 0x89, 0xF4, 0xFF, 0x41, 0xA2, 0xFD, 0xFF, 0x3E, + 0xAB, 0xF6, 0xFF, 0x43, 0xA8, 0xF6, 0xFF, 0x47, 0xA4, 0xF7, 0xFF, 0x4A, 0xA3, 0xF8, 0xFF, 0x4C, 0xA1, 0xFA, 0xFF, + 0x4E, 0xA5, 0xFA, 0xFF, 0x51, 0xAA, 0xFB, 0xFF, 0x52, 0xA6, 0xF9, 0xFF, 0x52, 0xA2, 0xF7, 0xFF, 0x4F, 0x9C, 0xFA, + 0xFF, 0x4D, 0x97, 0xFD, 0xFF, 0x4A, 0x8D, 0xFC, 0xFF, 0x47, 0x83, 0xFB, 0xFF, 0x40, 0x82, 0xF6, 0xFF, 0x39, 0x82, + 0xF1, 0xFF, 0x2B, 0x72, 0xF4, 0xFF, 0xAB, 0x8C, 0x71, 0xFF, 0xF0, 0x99, 0x16, 0xFF, 0xEF, 0x99, 0x25, 0xFF, 0xE8, + 0x97, 0x25, 0xFF, 0xC5, 0x9A, 0x26, 0xFF, 0xF0, 0x96, 0x16, 0xFF, 0xE2, 0x91, 0x1C, 0xFF, 0xE2, 0x96, 0x1B, 0xFF, + 0xE2, 0x9A, 0x1B, 0xFF, 0xE5, 0x99, 0x19, 0xFF, 0xE8, 0x98, 0x18, 0xFF, 0xE6, 0x96, 0x1A, 0xFF, 0xE4, 0x95, 0x1C, + 0xFF, 0xDF, 0x91, 0x17, 0xFF, 0xD9, 0x8D, 0x13, 0xFF, 0xE2, 0x92, 0x18, 0xFF, 0xEA, 0x97, 0x1E, 0xFF, 0xE5, 0x92, + 0x14, 0xFF, 0xE1, 0x8D, 0x0B, 0xFF, 0xE5, 0x8E, 0x0D, 0xFF, 0xE9, 0x8F, 0x10, 0xFF, 0xDE, 0x8B, 0x12, 0xFF, 0xD4, + 0x88, 0x14, 0xFF, 0xE6, 0x87, 0x0E, 0xFF, 0xDC, 0x8C, 0x08, 0xFF, 0xE4, 0x84, 0x11, 0xFF, 0xEC, 0x88, 0x03, 0xFF, + 0xEC, 0x88, 0x03, 0xFF, 0xEA, 0xB6, 0x3D, 0xFF, 0xEA, 0xB5, 0x3A, 0xFF, 0xEB, 0xB4, 0x38, 0xFF, 0xEB, 0xB3, 0x37, + 0xFF, 0xEA, 0xB3, 0x37, 0xFF, 0xEB, 0xB2, 0x34, 0xFF, 0xEB, 0xB1, 0x32, 0xFF, 0xEB, 0xB1, 0x33, 0xFF, 0xEA, 0xB0, + 0x34, 0xFF, 0xE9, 0xB3, 0x32, 0xFF, 0xE8, 0xB5, 0x2F, 0xFF, 0xF0, 0xB0, 0x34, 0xFF, 0xF8, 0xB6, 0x22, 0xFF, 0x44, + 0x60, 0xC5, 0xFF, 0x0B, 0x53, 0xF9, 0xFF, 0x21, 0x63, 0xF2, 0xFF, 0x29, 0x6F, 0xF6, 0xFF, 0x2F, 0x7D, 0xF6, 0xFF, + 0x35, 0x8A, 0xF7, 0xFF, 0x41, 0xA1, 0xFA, 0xFF, 0x45, 0xAF, 0xF6, 0xFF, 0x4F, 0xB4, 0xFA, 0xFF, 0x50, 0xB0, 0xF6, + 0xFF, 0x53, 0xAE, 0xF8, 0xFF, 0x56, 0xAC, 0xFA, 0xFF, 0x59, 0xB2, 0xFC, 0xFF, 0x5D, 0xB7, 0xFD, 0xFF, 0x5F, 0xB3, + 0xFA, 0xFF, 0x61, 0xAF, 0xF6, 0xFF, 0x5D, 0xAC, 0xF9, 0xFF, 0x59, 0xA9, 0xFD, 0xFF, 0x55, 0x9F, 0xFB, 0xFF, 0x50, + 0x94, 0xF8, 0xFF, 0x4A, 0x91, 0xF7, 0xFF, 0x44, 0x8D, 0xF5, 0xFF, 0x22, 0x7D, 0xFF, 0xFF, 0xEF, 0xA5, 0x1A, 0xFF, + 0xF3, 0x9E, 0x12, 0xFF, 0xF1, 0x96, 0x28, 0xFF, 0xB0, 0x9F, 0x22, 0xFF, 0x00, 0x96, 0x6C, 0xFF, 0x82, 0x9B, 0x3B, + 0xFF, 0xF8, 0x9D, 0x16, 0xFF, 0xF4, 0x9B, 0x15, 0xFF, 0xE2, 0x9C, 0x14, 0xFF, 0xE4, 0x99, 0x15, 0xFF, 0xE6, 0x96, + 0x17, 0xFF, 0xE5, 0x95, 0x18, 0xFF, 0xE4, 0x93, 0x1A, 0xFF, 0xE2, 0x93, 0x18, 0xFF, 0xE0, 0x92, 0x16, 0xFF, 0xE6, + 0x98, 0x1C, 0xFF, 0xE4, 0x95, 0x19, 0xFF, 0xE4, 0x92, 0x16, 0xFF, 0xE5, 0x8F, 0x12, 0xFF, 0xEB, 0x8C, 0x12, 0xFF, + 0xE3, 0x8B, 0x12, 0xFF, 0xE3, 0x87, 0x00, 0xFF, 0xF4, 0x7B, 0x00, 0xFF, 0xD3, 0x86, 0x1A, 0xFF, 0xF0, 0x8C, 0x0C, + 0xFF, 0xE2, 0x8E, 0x00, 0xFF, 0xEA, 0x84, 0x0D, 0xFF, 0xF1, 0x86, 0x07, 0xFF, 0xEC, 0xB7, 0x3B, 0xFF, 0xEC, 0xB6, + 0x3A, 0xFF, 0xEC, 0xB6, 0x39, 0xFF, 0xEC, 0xB5, 0x38, 0xFF, 0xED, 0xB5, 0x37, 0xFF, 0xEC, 0xB4, 0x37, 0xFF, 0xEC, + 0xB4, 0x37, 0xFF, 0xEC, 0xB3, 0x36, 0xFF, 0xEC, 0xB2, 0x36, 0xFF, 0xE8, 0xB4, 0x33, 0xFF, 0xE4, 0xB5, 0x31, 0xFF, + 0xEF, 0xB1, 0x34, 0xFF, 0xF9, 0xB8, 0x21, 0xFF, 0x02, 0x41, 0xFD, 0xFF, 0x1E, 0x58, 0xFC, 0xFF, 0x25, 0x6A, 0xF8, + 0xFF, 0x2C, 0x7C, 0xF3, 0xFF, 0x31, 0x84, 0xF6, 0xFF, 0x35, 0x8B, 0xF9, 0xFF, 0x41, 0xA0, 0xF7, 0xFF, 0x4C, 0xB4, + 0xF6, 0xFF, 0x5B, 0xC0, 0xFE, 0xFF, 0x59, 0xBC, 0xF6, 0xFF, 0x5D, 0xBA, 0xF8, 0xFF, 0x60, 0xB7, 0xFA, 0xFF, 0x64, + 0xBE, 0xFD, 0xFF, 0x69, 0xC4, 0xFF, 0xFF, 0x6C, 0xC0, 0xFA, 0xFF, 0x6F, 0xBD, 0xF5, 0xFF, 0x6A, 0xBC, 0xF9, 0xFF, + 0x65, 0xBB, 0xFD, 0xFF, 0x60, 0xB1, 0xFA, 0xFF, 0x5A, 0xA6, 0xF6, 0xFF, 0x54, 0x9F, 0xF8, 0xFF, 0x4F, 0x98, 0xFA, + 0xFF, 0x6E, 0x94, 0xDF, 0xFF, 0xFB, 0xA6, 0x07, 0xFF, 0xDA, 0x9C, 0x24, 0xFF, 0xF2, 0x9F, 0x14, 0xFF, 0x71, 0xA1, + 0x4A, 0xFF, 0x0D, 0xA9, 0x68, 0xFF, 0x06, 0xA3, 0x61, 0xFF, 0x1B, 0x98, 0x5A, 0xFF, 0x9B, 0x96, 0x33, 0xFF, 0xFE, + 0x99, 0x0D, 0xFF, 0xF1, 0x96, 0x11, 0xFF, 0xE4, 0x94, 0x16, 0xFF, 0xE4, 0x93, 0x17, 0xFF, 0xE4, 0x91, 0x18, 0xFF, + 0xE5, 0x94, 0x19, 0xFF, 0xE6, 0x98, 0x1A, 0xFF, 0xEA, 0x9D, 0x1F, 0xFF, 0xDE, 0x93, 0x15, 0xFF, 0xE3, 0x92, 0x17, + 0xFF, 0xE8, 0x91, 0x1A, 0xFF, 0xEB, 0x94, 0x1F, 0xFF, 0xD1, 0x9D, 0x25, 0xFF, 0x72, 0xF7, 0xD0, 0xFF, 0x95, 0xF2, + 0xC1, 0xFF, 0xF0, 0x83, 0x00, 0xFF, 0xA0, 0x81, 0x17, 0xFF, 0x2E, 0x7E, 0x3B, 0xFF, 0xCB, 0x87, 0x16, 0xFF, 0xDA, + 0x8A, 0x0B, 0xFF, 0xEC, 0xB8, 0x3D, 0xFF, 0xED, 0xB8, 0x3C, 0xFF, 0xED, 0xB7, 0x3B, 0xFF, 0xED, 0xB7, 0x3A, 0xFF, + 0xED, 0xB6, 0x39, 0xFF, 0xED, 0xB6, 0x39, 0xFF, 0xED, 0xB6, 0x39, 0xFF, 0xED, 0xB6, 0x39, 0xFF, 0xED, 0xB6, 0x39, + 0xFF, 0xEC, 0xB4, 0x37, 0xFF, 0xEB, 0xB2, 0x34, 0xFF, 0xF2, 0xAB, 0x34, 0xFF, 0xB3, 0x95, 0x6D, 0xFF, 0x00, 0x46, + 0xFF, 0xFF, 0x20, 0x64, 0xF7, 0xFF, 0x28, 0x73, 0xF6, 0xFF, 0x30, 0x81, 0xF5, 0xFF, 0x37, 0x8B, 0xF6, 0xFF, 0x3D, + 0x94, 0xF8, 0xFF, 0x48, 0xA6, 0xF8, 0xFF, 0x53, 0xB7, 0xF7, 0xFF, 0x60, 0xC2, 0xFB, 0xFF, 0x65, 0xC4, 0xF7, 0xFF, + 0x69, 0xC3, 0xF9, 0xFF, 0x6D, 0xC2, 0xFA, 0xFF, 0x72, 0xC6, 0xFA, 0xFF, 0x77, 0xCB, 0xFA, 0xFF, 0x7A, 0xCB, 0xFB, + 0xFF, 0x7D, 0xCB, 0xFC, 0xFF, 0x7A, 0xC8, 0xFA, 0xFF, 0x77, 0xC5, 0xF8, 0xFF, 0x72, 0xBC, 0xF9, 0xFF, 0x6C, 0xB4, + 0xFA, 0xFF, 0x68, 0xB0, 0xF6, 0xFF, 0x56, 0xAA, 0xFD, 0xFF, 0xA5, 0xA0, 0x93, 0xFF, 0xF3, 0xA1, 0x13, 0xFF, 0xEF, + 0x9C, 0x21, 0xFF, 0xFF, 0x9D, 0x19, 0xFF, 0x23, 0xC1, 0x71, 0xFF, 0x25, 0xB7, 0x79, 0xFF, 0x1D, 0xB2, 0x71, 0xFF, + 0x23, 0xAA, 0x6A, 0xFF, 0x25, 0xA0, 0x66, 0xFF, 0x18, 0x9A, 0x63, 0xFF, 0x72, 0x9C, 0x41, 0xFF, 0xCB, 0x9F, 0x1E, + 0xFF, 0xFF, 0x93, 0x18, 0xFF, 0xF1, 0x98, 0x13, 0xFF, 0xF4, 0x9C, 0x18, 0xFF, 0xF7, 0xA0, 0x1D, 0xFF, 0xFF, 0x9C, + 0x1B, 0xFF, 0xF6, 0x93, 0x10, 0xFF, 0xF1, 0x93, 0x11, 0xFF, 0xEC, 0x93, 0x13, 0xFF, 0xFF, 0x83, 0x00, 0xFF, 0xA0, + 0xCB, 0x72, 0xFF, 0x81, 0xF9, 0xCB, 0xFF, 0xAC, 0xFF, 0xD0, 0xFF, 0x45, 0xA0, 0x78, 0xFF, 0x00, 0x77, 0x33, 0xFF, + 0x02, 0x7C, 0x3A, 0xFF, 0xE2, 0x8C, 0x0D, 0xFF, 0xDB, 0x8E, 0x0D, 0xFF, 0xED, 0xBA, 0x3E, 0xFF, 0xED, 0xB9, 0x3D, + 0xFF, 0xED, 0xB9, 0x3C, 0xFF, 0xED, 0xB8, 0x3B, 0xFF, 0xED, 0xB8, 0x3A, 0xFF, 0xED, 0xB8, 0x3B, 0xFF, 0xED, 0xB8, + 0x3B, 0xFF, 0xEE, 0xB8, 0x3C, 0xFF, 0xEE, 0xB9, 0x3C, 0xFF, 0xF0, 0xB4, 0x3A, 0xFF, 0xF2, 0xAE, 0x37, 0xFF, 0xFE, + 0xB3, 0x32, 0xFF, 0x7C, 0x8E, 0xB3, 0xFF, 0x06, 0x58, 0xFF, 0xFF, 0x22, 0x71, 0xF3, 0xFF, 0x2B, 0x7C, 0xF4, 0xFF, + 0x34, 0x86, 0xF6, 0xFF, 0x3D, 0x92, 0xF7, 0xFF, 0x45, 0x9D, 0xF8, 0xFF, 0x4F, 0xAC, 0xF8, 0xFF, 0x5A, 0xBB, 0xF8, + 0xFF, 0x65, 0xC4, 0xF9, 0xFF, 0x70, 0xCC, 0xF9, 0xFF, 0x75, 0xCC, 0xFA, 0xFF, 0x7A, 0xCC, 0xFA, 0xFF, 0x80, 0xCF, + 0xF7, 0xFF, 0x85, 0xD2, 0xF4, 0xFF, 0x89, 0xD5, 0xFB, 0xFF, 0x8C, 0xD9, 0xFF, 0xFF, 0x8B, 0xD3, 0xFA, 0xFF, 0x89, + 0xCE, 0xF2, 0xFF, 0x84, 0xC8, 0xF8, 0xFF, 0x7F, 0xC1, 0xFE, 0xFF, 0x7C, 0xC1, 0xF4, 0xFF, 0x5E, 0xBC, 0xFF, 0xFF, + 0xDB, 0xAB, 0x47, 0xFF, 0xEA, 0x9C, 0x1E, 0xFF, 0xE8, 0xA2, 0x1D, 0xFF, 0xE5, 0xA7, 0x1D, 0xFF, 0x1B, 0xD3, 0x98, + 0xFF, 0x21, 0xCB, 0x8A, 0xFF, 0x26, 0xC3, 0x82, 0xFF, 0x2C, 0xBB, 0x7A, 0xFF, 0x28, 0xB4, 0x75, 0xFF, 0x25, 0xAD, + 0x70, 0xFF, 0x16, 0xAB, 0x6D, 0xFF, 0x08, 0xA9, 0x6A, 0xFF, 0x11, 0xA9, 0x5E, 0xFF, 0x53, 0x9E, 0x51, 0xFF, 0x6D, + 0x9B, 0x47, 0xFF, 0x87, 0x97, 0x3E, 0xFF, 0x91, 0x95, 0x3B, 0xFF, 0x80, 0x98, 0x38, 0xFF, 0x63, 0x96, 0x44, 0xFF, + 0x45, 0x94, 0x4F, 0xFF, 0x3C, 0xB4, 0x82, 0xFF, 0x1B, 0x84, 0x4F, 0xFF, 0x87, 0xE0, 0xAF, 0xFF, 0x82, 0xCC, 0x9E, + 0xFF, 0x11, 0x7F, 0x35, 0xFF, 0x1B, 0x82, 0x42, 0xFF, 0x3B, 0x84, 0x32, 0xFF, 0xF9, 0x92, 0x04, 0xFF, 0xDC, 0x92, + 0x0F, 0xFF, 0xEE, 0xBC, 0x40, 0xFF, 0xED, 0xBB, 0x3F, 0xFF, 0xED, 0xBA, 0x3E, 0xFF, 0xED, 0xBA, 0x3D, 0xFF, 0xEC, + 0xB9, 0x3C, 0xFF, 0xEC, 0xB9, 0x3C, 0xFF, 0xEC, 0xB8, 0x3C, 0xFF, 0xEC, 0xB8, 0x3C, 0xFF, 0xEB, 0xB8, 0x3C, 0xFF, + 0xF0, 0xB3, 0x3F, 0xFF, 0xF4, 0xAF, 0x42, 0xFF, 0xE8, 0xBA, 0x0D, 0xFF, 0x96, 0xB8, 0xFF, 0xFF, 0x4C, 0x81, 0xF6, + 0xFF, 0x22, 0x75, 0xF5, 0xFF, 0x2D, 0x80, 0xF6, 0xFF, 0x38, 0x8B, 0xF7, 0xFF, 0x42, 0x99, 0xF7, 0xFF, 0x4D, 0xA6, + 0xF7, 0xFF, 0x56, 0xB2, 0xF8, 0xFF, 0x5F, 0xBD, 0xF9, 0xFF, 0x6D, 0xC8, 0xF9, 0xFF, 0x7A, 0xD4, 0xFA, 0xFF, 0x81, + 0xD5, 0xFA, 0xFF, 0x88, 0xD7, 0xF9, 0xFF, 0x8D, 0xD8, 0xFA, 0xFF, 0x92, 0xDA, 0xFB, 0xFF, 0xA1, 0xE4, 0xF9, 0xFF, + 0x91, 0xD6, 0xFE, 0xFF, 0x9F, 0xDE, 0xFA, 0xFF, 0x97, 0xDB, 0xF8, 0xFF, 0x93, 0xD5, 0xF9, 0xFF, 0x8F, 0xCF, 0xFB, + 0xFF, 0x85, 0xD1, 0xFF, 0xFF, 0x78, 0xC6, 0xFF, 0xFF, 0xFC, 0x9A, 0x00, 0xFF, 0xF1, 0xA8, 0x26, 0xFF, 0xF8, 0xA4, + 0x1F, 0xFF, 0xA5, 0xBD, 0x53, 0xFF, 0x30, 0xDA, 0xA4, 0xFF, 0x37, 0xD5, 0x9D, 0xFF, 0x3A, 0xD0, 0x97, 0xFF, 0x3D, + 0xCA, 0x90, 0xFF, 0x39, 0xC5, 0x8A, 0xFF, 0x35, 0xBF, 0x84, 0xFF, 0x30, 0xBD, 0x7C, 0xFF, 0x2C, 0xBC, 0x74, 0xFF, + 0x1B, 0xB8, 0x75, 0xFF, 0x27, 0xAF, 0x77, 0xFF, 0x25, 0xAB, 0x72, 0xFF, 0x23, 0xA7, 0x6D, 0xFF, 0x28, 0xA3, 0x6A, + 0xFF, 0x1E, 0xA2, 0x68, 0xFF, 0x19, 0x95, 0x57, 0xFF, 0x45, 0xB7, 0x77, 0xFF, 0x81, 0xF0, 0xBA, 0xFF, 0x4C, 0xAC, + 0x72, 0xFF, 0x14, 0x7B, 0x41, 0xFF, 0x1D, 0x8A, 0x4F, 0xFF, 0x1C, 0x86, 0x42, 0xFF, 0x14, 0x86, 0x49, 0xFF, 0x8B, + 0x86, 0x16, 0xFF, 0xF5, 0x90, 0x0A, 0xFF, 0xE7, 0x8D, 0x15, 0xFF, 0xEF, 0xBE, 0x41, 0xFF, 0xEE, 0xBD, 0x40, 0xFF, + 0xED, 0xBC, 0x3F, 0xFF, 0xED, 0xBB, 0x3E, 0xFF, 0xEC, 0xBA, 0x3D, 0xFF, 0xEB, 0xBA, 0x3D, 0xFF, 0xEA, 0xB9, 0x3C, + 0xFF, 0xE9, 0xB8, 0x3C, 0xFF, 0xE8, 0xB7, 0x3B, 0xFF, 0xF0, 0xB9, 0x39, 0xFF, 0xF7, 0xBA, 0x37, 0xFF, 0xDC, 0xB5, + 0x50, 0xFF, 0x44, 0x96, 0xFF, 0xFF, 0x9C, 0xC4, 0xFE, 0xFF, 0x23, 0x79, 0xF7, 0xFF, 0x30, 0x85, 0xF8, 0xFF, 0x3C, + 0x91, 0xF8, 0xFF, 0x48, 0xA0, 0xF8, 0xFF, 0x55, 0xAF, 0xF7, 0xFF, 0x5D, 0xB7, 0xF8, 0xFF, 0x65, 0xBF, 0xF9, 0xFF, + 0x75, 0xCD, 0xFA, 0xFF, 0x85, 0xDB, 0xFB, 0xFF, 0x8D, 0xDE, 0xFA, 0xFF, 0x95, 0xE1, 0xF9, 0xFF, 0x9A, 0xE1, 0xFD, + 0xFF, 0xA0, 0xE2, 0xFF, 0xFF, 0xA3, 0xE8, 0xFA, 0xFF, 0x6B, 0xBD, 0xFF, 0xFF, 0x9E, 0xDE, 0xFC, 0xFF, 0xA6, 0xE8, + 0xFF, 0xFF, 0xA3, 0xE3, 0xFB, 0xFF, 0xA0, 0xDE, 0xF7, 0xFF, 0x99, 0xD7, 0xFD, 0xFF, 0xAB, 0xBD, 0xB5, 0xFF, 0xF0, + 0x9F, 0x11, 0xFF, 0xE8, 0xA3, 0x1D, 0xFF, 0xFF, 0x9E, 0x19, 0xFF, 0x65, 0xD4, 0x89, 0xFF, 0x45, 0xE1, 0xB0, 0xFF, + 0x4D, 0xDF, 0xB0, 0xFF, 0x4D, 0xDC, 0xAB, 0xFF, 0x4D, 0xD8, 0xA7, 0xFF, 0x49, 0xD5, 0xA0, 0xFF, 0x44, 0xD2, 0x99, + 0xFF, 0x3C, 0xCD, 0x97, 0xFF, 0x34, 0xC9, 0x94, 0xFF, 0x34, 0xC4, 0x8D, 0xFF, 0x33, 0xC0, 0x86, 0xFF, 0x32, 0xBC, + 0x7A, 0xFF, 0x31, 0xB7, 0x6E, 0xFF, 0x2F, 0xB2, 0x6D, 0xFF, 0x2E, 0xAE, 0x6B, 0xFF, 0x3F, 0xB9, 0x7D, 0xFF, 0x30, + 0xA5, 0x6F, 0xFF, 0x4E, 0xB5, 0x7B, 0xFF, 0x20, 0x9A, 0x56, 0xFF, 0x2A, 0x9F, 0x5B, 0xFF, 0x24, 0x93, 0x50, 0xFF, + 0x65, 0xB9, 0x80, 0xFF, 0x1C, 0x99, 0x5F, 0xFF, 0xE2, 0x8F, 0x03, 0xFF, 0xF2, 0x8E, 0x10, 0xFF, 0xF2, 0x88, 0x1B, + 0xFF, 0xEF, 0xBF, 0x43, 0xFF, 0xEE, 0xBE, 0x42, 0xFF, 0xEE, 0xBD, 0x41, 0xFF, 0xEE, 0xBD, 0x40, 0xFF, 0xED, 0xBC, + 0x3F, 0xFF, 0xEC, 0xBB, 0x3F, 0xFF, 0xEB, 0xB9, 0x3F, 0xFF, 0xEC, 0xB9, 0x3D, 0xFF, 0xEE, 0xB8, 0x3C, 0xFF, 0xEB, + 0xB8, 0x37, 0xFF, 0xF6, 0xBC, 0x26, 0xFF, 0x8F, 0x9B, 0x94, 0xFF, 0x37, 0x96, 0xFB, 0xFF, 0x7C, 0xBB, 0xF9, 0xFF, + 0x85, 0xB5, 0xF8, 0xFF, 0x49, 0x99, 0xF6, 0xFF, 0x42, 0x9B, 0xF5, 0xFF, 0x4E, 0xA6, 0xF6, 0xFF, 0x59, 0xB2, 0xF7, + 0xFF, 0x65, 0xBC, 0xF8, 0xFF, 0x72, 0xC6, 0xF9, 0xFF, 0x7F, 0xD3, 0xF9, 0xFF, 0x8D, 0xE0, 0xFA, 0xFF, 0x97, 0xE5, + 0xF9, 0xFF, 0xA1, 0xEB, 0xF8, 0xFF, 0xA6, 0xEA, 0xFE, 0xFF, 0xAA, 0xEA, 0xFF, 0xFF, 0xA8, 0xEE, 0xFC, 0xFF, 0x62, + 0xBA, 0xF9, 0xFF, 0x98, 0xDC, 0xFA, 0xFF, 0xB9, 0xF3, 0xFE, 0xFF, 0xB2, 0xEC, 0xFB, 0xFF, 0xAB, 0xE5, 0xF7, 0xFF, + 0xA2, 0xE4, 0xFE, 0xFF, 0xD1, 0xB0, 0x64, 0xFF, 0xF0, 0x9F, 0x19, 0xFF, 0xE8, 0x9E, 0x26, 0xFF, 0xF2, 0x98, 0x03, + 0xFF, 0x50, 0xEF, 0xE3, 0xFF, 0x57, 0xEE, 0xD5, 0xFF, 0x64, 0xE3, 0xBF, 0xFF, 0x64, 0xE1, 0xBC, 0xFF, 0x64, 0xDF, + 0xB9, 0xFF, 0x5D, 0xDD, 0xB4, 0xFF, 0x56, 0xDB, 0xB0, 0xFF, 0x4E, 0xD7, 0xA9, 0xFF, 0x46, 0xD3, 0xA2, 0xFF, 0x42, + 0xD0, 0x9B, 0xFF, 0x3F, 0xCD, 0x93, 0xFF, 0x3D, 0xC9, 0x8B, 0xFF, 0x3C, 0xC5, 0x84, 0xFF, 0x39, 0xC1, 0x80, 0xFF, + 0x36, 0xBC, 0x7D, 0xFF, 0x45, 0xC7, 0x8A, 0xFF, 0x44, 0xC1, 0x88, 0xFF, 0x2B, 0xA0, 0x62, 0xFF, 0x2B, 0xA9, 0x64, + 0xFF, 0x2D, 0xA3, 0x5E, 0xFF, 0x26, 0x95, 0x4F, 0xFF, 0x98, 0xCE, 0xA4, 0xFF, 0xDC, 0xEA, 0xD8, 0xFF, 0xFF, 0xDC, + 0xB9, 0xFF, 0xF3, 0x9D, 0x38, 0xFF, 0xD3, 0x8F, 0x00, 0xFF, 0xEF, 0xC1, 0x45, 0xFF, 0xEF, 0xC0, 0x44, 0xFF, 0xEF, + 0xBF, 0x43, 0xFF, 0xEF, 0xBE, 0x41, 0xFF, 0xEF, 0xBD, 0x40, 0xFF, 0xED, 0xBC, 0x41, 0xFF, 0xEB, 0xBA, 0x42, 0xFF, + 0xEF, 0xBA, 0x3F, 0xFF, 0xF3, 0xB9, 0x3C, 0xFF, 0xE6, 0xB8, 0x34, 0xFF, 0xF6, 0xBD, 0x16, 0xFF, 0x4F, 0x7F, 0xD8, + 0xFF, 0x46, 0x90, 0xF7, 0xFF, 0x54, 0xA5, 0xF7, 0xFF, 0xBA, 0xDA, 0xFF, 0xFF, 0x4D, 0xA1, 0xF8, 0xFF, 0x49, 0xA5, + 0xF3, 0xFF, 0x53, 0xAD, 0xF4, 0xFF, 0x5D, 0xB5, 0xF6, 0xFF, 0x6E, 0xC0, 0xF8, 0xFF, 0x7F, 0xCC, 0xFA, 0xFF, 0x8A, + 0xD8, 0xF9, 0xFF, 0x95, 0xE4, 0xF8, 0xFF, 0xA1, 0xEC, 0xF8, 0xFF, 0xAE, 0xF4, 0xF7, 0xFF, 0xB2, 0xF3, 0xFE, 0xFF, + 0xB5, 0xF1, 0xFF, 0xFF, 0xAD, 0xF4, 0xFE, 0xFF, 0x59, 0xB6, 0xF3, 0xFF, 0x92, 0xDA, 0xF8, 0xFF, 0xCC, 0xFF, 0xFE, + 0xFF, 0xC1, 0xF6, 0xFA, 0xFF, 0xB6, 0xED, 0xF7, 0xFF, 0xAB, 0xF1, 0xFF, 0xFF, 0xF7, 0xA4, 0x13, 0xFF, 0xEF, 0xA4, + 0x15, 0xFF, 0xE8, 0xA5, 0x18, 0xFF, 0xCD, 0xB4, 0x56, 0xFF, 0x71, 0xF2, 0xF0, 0xFF, 0x84, 0xEF, 0xD4, 0xFF, 0x7B, + 0xE6, 0xCF, 0xFF, 0x7B, 0xE6, 0xCD, 0xFF, 0x7C, 0xE6, 0xCB, 0xFF, 0x71, 0xE5, 0xC9, 0xFF, 0x67, 0xE5, 0xC6, 0xFF, + 0x5F, 0xE1, 0xBC, 0xFF, 0x57, 0xDD, 0xB1, 0xFF, 0x51, 0xDB, 0xA8, 0xFF, 0x4B, 0xDA, 0xA0, 0xFF, 0x48, 0xD7, 0x9C, + 0xFF, 0x46, 0xD4, 0x99, 0xFF, 0x42, 0xCF, 0x94, 0xFF, 0x3E, 0xCA, 0x8F, 0xFF, 0x3B, 0xC4, 0x88, 0xFF, 0x39, 0xBE, + 0x81, 0xFF, 0x30, 0xB3, 0x72, 0xFF, 0x27, 0xA8, 0x62, 0xFF, 0x27, 0xA0, 0x58, 0xFF, 0x27, 0x97, 0x4E, 0xFF, 0x79, + 0xC4, 0x9F, 0xFF, 0xF7, 0xFB, 0xFF, 0xFF, 0xF4, 0xD2, 0x7F, 0xFF, 0xE1, 0x8E, 0x03, 0xFF, 0xE1, 0x89, 0x0E, 0xFF, + 0xEF, 0xC3, 0x47, 0xFF, 0xEF, 0xC2, 0x46, 0xFF, 0xEF, 0xC0, 0x44, 0xFF, 0xEF, 0xBF, 0x43, 0xFF, 0xF0, 0xBE, 0x41, + 0xFF, 0xEE, 0xBD, 0x42, 0xFF, 0xEC, 0xBC, 0x43, 0xFF, 0xEF, 0xBC, 0x40, 0xFF, 0xF1, 0xBB, 0x3E, 0xFF, 0xFD, 0xC0, + 0x2F, 0xFF, 0xFB, 0xBD, 0x35, 0xFF, 0x00, 0x4B, 0xF5, 0xFF, 0x52, 0x8A, 0xFF, 0xFF, 0x5D, 0xA5, 0xFA, 0xFF, 0x8D, + 0xC4, 0xFC, 0xFF, 0x85, 0xC1, 0xFB, 0xFF, 0x50, 0xAD, 0xF5, 0xFF, 0x5E, 0xB6, 0xF7, 0xFF, 0x6B, 0xBE, 0xF9, 0xFF, + 0x78, 0xC9, 0xFA, 0xFF, 0x85, 0xD4, 0xFB, 0xFF, 0x97, 0xDE, 0xFE, 0xFF, 0xAA, 0xE8, 0xFF, 0xFF, 0xAD, 0xEE, 0xFD, + 0xFF, 0xB1, 0xF4, 0xF9, 0xFF, 0xB9, 0xF5, 0xFC, 0xFF, 0xC2, 0xF6, 0xFE, 0xFF, 0xB2, 0xF0, 0xFB, 0xFF, 0x6E, 0xCB, + 0xF6, 0xFF, 0x91, 0xDE, 0xFB, 0xFF, 0xCA, 0xFC, 0xFC, 0xFF, 0xD0, 0xFB, 0xFF, 0xFF, 0xC8, 0xFC, 0xFF, 0xFF, 0xC7, + 0xE3, 0xCA, 0xFF, 0xF2, 0xA1, 0x15, 0xFF, 0xEE, 0xA3, 0x1D, 0xFF, 0xF1, 0xA1, 0x11, 0xFF, 0xB9, 0xD4, 0x9E, 0xFF, + 0x8B, 0xF1, 0xEA, 0xFF, 0x95, 0xEF, 0xDC, 0xFF, 0x90, 0xEB, 0xD9, 0xFF, 0x92, 0xEB, 0xD9, 0xFF, 0x94, 0xEC, 0xD8, + 0xFF, 0x8B, 0xEB, 0xD6, 0xFF, 0x82, 0xEA, 0xD3, 0xFF, 0x78, 0xE6, 0xC9, 0xFF, 0x6F, 0xE3, 0xBF, 0xFF, 0x68, 0xE2, + 0xB8, 0xFF, 0x61, 0xE2, 0xB1, 0xFF, 0x5D, 0xE0, 0xAE, 0xFF, 0x5A, 0xDE, 0xAC, 0xFF, 0x51, 0xD9, 0xA2, 0xFF, 0x48, + 0xD3, 0x98, 0xFF, 0x41, 0xCB, 0x8E, 0xFF, 0x39, 0xC3, 0x83, 0xFF, 0x32, 0xB7, 0x74, 0xFF, 0x2C, 0xAC, 0x66, 0xFF, + 0x29, 0xA2, 0x5D, 0xFF, 0x26, 0x99, 0x54, 0xFF, 0x21, 0x93, 0x4A, 0xFF, 0xB9, 0x99, 0x23, 0xFF, 0xFE, 0x93, 0x15, + 0xFF, 0xD8, 0x92, 0x09, 0xFF, 0xD8, 0x8F, 0x0F, 0xFF, 0xEF, 0xC4, 0x49, 0xFF, 0xEF, 0xC3, 0x47, 0xFF, 0xF0, 0xC2, + 0x46, 0xFF, 0xF0, 0xC1, 0x44, 0xFF, 0xF1, 0xC0, 0x42, 0xFF, 0xEF, 0xBF, 0x43, 0xFF, 0xED, 0xBE, 0x43, 0xFF, 0xEE, + 0xBE, 0x42, 0xFF, 0xF0, 0xBD, 0x41, 0xFF, 0xF0, 0xBA, 0x37, 0xFF, 0xB7, 0xA1, 0x71, 0xFF, 0x1D, 0x5D, 0xFE, 0xFF, + 0x31, 0x79, 0xF8, 0xFF, 0x51, 0xA1, 0xF5, 0xFF, 0x60, 0xAD, 0xF8, 0xFF, 0xBC, 0xE0, 0xFE, 0xFF, 0x57, 0xB6, 0xF7, + 0xFF, 0x68, 0xBF, 0xF9, 0xFF, 0x79, 0xC8, 0xFC, 0xFF, 0x82, 0xD2, 0xFC, 0xFF, 0x8B, 0xDB, 0xFC, 0xFF, 0x8F, 0xDE, + 0xFB, 0xFF, 0x92, 0xE0, 0xFB, 0xFF, 0xA3, 0xEA, 0xFA, 0xFF, 0xB4, 0xF4, 0xFA, 0xFF, 0xC1, 0xF8, 0xF9, 0xFF, 0xCE, + 0xFB, 0xF8, 0xFF, 0xB6, 0xEB, 0xF9, 0xFF, 0x83, 0xE1, 0xFA, 0xFF, 0x8F, 0xE2, 0xFD, 0xFF, 0xC7, 0xF9, 0xFB, 0xFF, + 0xD7, 0xF8, 0xFC, 0xFF, 0xCA, 0xFC, 0xFE, 0xFF, 0xDC, 0xCD, 0x8B, 0xFF, 0xED, 0x9F, 0x18, 0xFF, 0xED, 0xA3, 0x24, + 0xFF, 0xFA, 0x9D, 0x0A, 0xFF, 0xA5, 0xF5, 0xE7, 0xFF, 0xA5, 0xF1, 0xE4, 0xFF, 0xA5, 0xF0, 0xE4, 0xFF, 0xA6, 0xEF, + 0xE3, 0xFF, 0xA9, 0xF0, 0xE4, 0xFF, 0xAD, 0xF2, 0xE6, 0xFF, 0xA5, 0xF0, 0xE3, 0xFF, 0x9E, 0xEF, 0xE0, 0xFF, 0x92, + 0xEC, 0xD6, 0xFF, 0x87, 0xE9, 0xCD, 0xFF, 0x7F, 0xE9, 0xC7, 0xFF, 0x78, 0xEA, 0xC2, 0xFF, 0x72, 0xEA, 0xC1, 0xFF, + 0x6D, 0xE9, 0xC0, 0xFF, 0x60, 0xE3, 0xB1, 0xFF, 0x53, 0xDD, 0xA2, 0xFF, 0x46, 0xD2, 0x94, 0xFF, 0x3A, 0xC8, 0x86, + 0xFF, 0x35, 0xBC, 0x77, 0xFF, 0x30, 0xB0, 0x69, 0xFF, 0x2B, 0xA5, 0x62, 0xFF, 0x26, 0x9B, 0x5B, 0xFF, 0x09, 0x91, + 0x57, 0xFF, 0xFB, 0x94, 0x09, 0xFF, 0xE5, 0x95, 0x0C, 0xFF, 0xEB, 0x91, 0x0F, 0xFF, 0xEB, 0x91, 0x0F, 0xFF, 0xEF, + 0xC5, 0x4A, 0xFF, 0xF0, 0xC4, 0x48, 0xFF, 0xF0, 0xC3, 0x47, 0xFF, 0xF1, 0xC2, 0x45, 0xFF, 0xF1, 0xC1, 0x43, 0xFF, + 0xF1, 0xC1, 0x41, 0xFF, 0xF1, 0xC1, 0x3F, 0xFF, 0xF0, 0xBE, 0x3F, 0xFF, 0xEF, 0xBC, 0x3F, 0xFF, 0xFD, 0xC2, 0x32, + 0xFF, 0x6E, 0x7F, 0xBD, 0xFF, 0x26, 0x65, 0xFE, 0xFF, 0x34, 0x7B, 0xF5, 0xFF, 0x4C, 0x9A, 0xF5, 0xFF, 0x5C, 0xAB, + 0xF8, 0xFF, 0x9F, 0xD0, 0xFA, 0xFF, 0x83, 0xC6, 0xF7, 0xFF, 0x6A, 0xC1, 0xFD, 0xFF, 0x7E, 0xD1, 0xFD, 0xFF, 0x87, + 0xDB, 0xFB, 0xFF, 0x8F, 0xE5, 0xF9, 0xFF, 0x9A, 0xEC, 0xF8, 0xFF, 0xA5, 0xF4, 0xF7, 0xFF, 0x99, 0xEA, 0xFB, 0xFF, + 0x8E, 0xDF, 0xFF, 0xFF, 0x9F, 0xE2, 0xFB, 0xFF, 0xB1, 0xE6, 0xF7, 0xFF, 0xCC, 0xED, 0xFB, 0xFF, 0xCA, 0xFA, 0xFF, + 0xFF, 0xC6, 0xF2, 0xFF, 0xFF, 0xC2, 0xF0, 0xFC, 0xFF, 0xD2, 0xF5, 0xFE, 0xFF, 0xD3, 0xFC, 0xFF, 0xFF, 0xE6, 0xB5, + 0x4B, 0xFF, 0xED, 0xA4, 0x20, 0xFF, 0xED, 0xA2, 0x1B, 0xFF, 0xE2, 0xAA, 0x3D, 0xFF, 0xAB, 0xF6, 0xEE, 0xFF, 0xB1, + 0xF1, 0xE5, 0xFF, 0xB4, 0xF2, 0xE7, 0xFF, 0xB8, 0xF3, 0xE9, 0xFF, 0xBA, 0xF3, 0xE9, 0xFF, 0xBC, 0xF4, 0xEA, 0xFF, + 0xB5, 0xF3, 0xE8, 0xFF, 0xAF, 0xF2, 0xE5, 0xFF, 0xA8, 0xF0, 0xE0, 0xFF, 0xA1, 0xED, 0xDA, 0xFF, 0x99, 0xEF, 0xD5, + 0xFF, 0x91, 0xF0, 0xD0, 0xFF, 0x82, 0xED, 0xC8, 0xFF, 0x72, 0xEA, 0xC0, 0xFF, 0x61, 0xE3, 0xB0, 0xFF, 0x50, 0xDC, + 0xA0, 0xFF, 0x47, 0xD3, 0x94, 0xFF, 0x3E, 0xCA, 0x88, 0xFF, 0x38, 0xBF, 0x7B, 0xFF, 0x32, 0xB4, 0x6E, 0xFF, 0x2E, + 0xA8, 0x65, 0xFF, 0x1B, 0xA0, 0x5D, 0xFF, 0x48, 0x94, 0x3C, 0xFF, 0xF6, 0x93, 0x0A, 0xFF, 0xEC, 0x94, 0x0D, 0xFF, + 0xF0, 0x92, 0x10, 0xFF, 0xF0, 0x92, 0x10, 0xFF, 0xF0, 0xC5, 0x4B, 0xFF, 0xF0, 0xC4, 0x49, 0xFF, 0xF1, 0xC4, 0x48, + 0xFF, 0xF1, 0xC3, 0x46, 0xFF, 0xF2, 0xC2, 0x44, 0xFF, 0xF4, 0xC3, 0x3F, 0xFF, 0xF6, 0xC4, 0x3A, 0xFF, 0xF3, 0xBF, + 0x3C, 0xFF, 0xEF, 0xBA, 0x3D, 0xFF, 0xFF, 0xCA, 0x2C, 0xFF, 0x24, 0x5D, 0xFF, 0xFF, 0x2E, 0x6D, 0xFE, 0xFF, 0x38, + 0x7D, 0xF2, 0xFF, 0x48, 0x93, 0xF5, 0xFF, 0x57, 0xA9, 0xF7, 0xFF, 0x82, 0xC0, 0xF7, 0xFF, 0xAE, 0xD7, 0xF7, 0xFF, + 0x6C, 0xC2, 0xFF, 0xFF, 0x84, 0xDA, 0xFE, 0xFF, 0x8B, 0xE4, 0xFA, 0xFF, 0x93, 0xEE, 0xF6, 0xFF, 0x9D, 0xED, 0xF8, + 0xFF, 0xA7, 0xEC, 0xF9, 0xFF, 0xB3, 0xF1, 0xF8, 0xFF, 0xC0, 0xF6, 0xF7, 0xFF, 0xC8, 0xF6, 0xFB, 0xFF, 0xD0, 0xF6, + 0xFF, 0xFF, 0xD3, 0xF2, 0xFE, 0xFF, 0xB9, 0xF3, 0xFB, 0xFF, 0xE7, 0xFD, 0xFF, 0xFF, 0xE9, 0xFD, 0xF6, 0xFF, 0xE2, + 0xFC, 0xFC, 0xFF, 0xDC, 0xFC, 0xFF, 0xFF, 0xF1, 0x9D, 0x0B, 0xFF, 0xEC, 0xAA, 0x29, 0xFF, 0xF5, 0xAA, 0x1B, 0xFF, + 0xD9, 0xC7, 0x7F, 0xFF, 0xBA, 0xFE, 0xFD, 0xFF, 0xBD, 0xF2, 0xE7, 0xFF, 0xC3, 0xF4, 0xEB, 0xFF, 0xCA, 0xF6, 0xEE, + 0xFF, 0xCA, 0xF6, 0xEF, 0xFF, 0xCB, 0xF7, 0xEF, 0xFF, 0xC5, 0xF6, 0xED, 0xFF, 0xBF, 0xF5, 0xEB, 0xFF, 0xBE, 0xF3, + 0xE9, 0xFF, 0xBC, 0xF2, 0xE8, 0xFF, 0xB3, 0xF4, 0xE3, 0xFF, 0xAB, 0xF6, 0xDF, 0xFF, 0x91, 0xF1, 0xD0, 0xFF, 0x77, + 0xEC, 0xC1, 0xFF, 0x62, 0xE3, 0xAF, 0xFF, 0x4E, 0xDB, 0x9E, 0xFF, 0x47, 0xD3, 0x94, 0xFF, 0x41, 0xCC, 0x8A, 0xFF, + 0x3B, 0xC2, 0x7F, 0xFF, 0x35, 0xB8, 0x73, 0xFF, 0x30, 0xAC, 0x69, 0xFF, 0x10, 0xA5, 0x60, 0xFF, 0x86, 0x96, 0x22, + 0xFF, 0xF0, 0x91, 0x0A, 0xFF, 0xF2, 0x92, 0x0E, 0xFF, 0xF4, 0x94, 0x11, 0xFF, 0xF4, 0x94, 0x11, 0xFF, 0xF1, 0xC5, + 0x4C, 0xFF, 0xF1, 0xC5, 0x4A, 0xFF, 0xF1, 0xC4, 0x49, 0xFF, 0xF2, 0xC4, 0x47, 0xFF, 0xF2, 0xC3, 0x45, 0xFF, 0xF1, + 0xC3, 0x43, 0xFF, 0xF0, 0xC4, 0x40, 0xFF, 0xF3, 0xBF, 0x42, 0xFF, 0xF5, 0xC0, 0x39, 0xFF, 0xCA, 0xAC, 0x5E, 0xFF, + 0x1E, 0x58, 0xFA, 0xFF, 0x30, 0x6E, 0xF3, 0xFF, 0x35, 0x80, 0xF7, 0xFF, 0x3E, 0x92, 0xFB, 0xFF, 0x5D, 0xAF, 0xFB, + 0xFF, 0x72, 0xC2, 0xFF, 0xFF, 0xBA, 0xE1, 0xFD, 0xFF, 0x74, 0xCD, 0xFF, 0xFF, 0x71, 0xD3, 0xFF, 0xFF, 0x83, 0xE5, + 0xFF, 0xFF, 0x95, 0xF7, 0xFF, 0xFF, 0xA1, 0xF4, 0xFE, 0xFF, 0xAD, 0xF0, 0xFD, 0xFF, 0xC1, 0xF8, 0xFF, 0xFF, 0xCD, + 0xF7, 0xFB, 0xFF, 0xD1, 0xF8, 0xFE, 0xFF, 0xD6, 0xF9, 0xFF, 0xFF, 0xE0, 0xF6, 0xFE, 0xFF, 0xDD, 0xF5, 0xFB, 0xFF, + 0xED, 0xFB, 0xFF, 0xFF, 0xE8, 0xFB, 0xFB, 0xFF, 0xDF, 0xFC, 0xFF, 0xFF, 0xE8, 0xE0, 0xB2, 0xFF, 0xEF, 0xA3, 0x18, + 0xFF, 0xEC, 0xAA, 0x25, 0xFF, 0xF5, 0xA8, 0x15, 0xFF, 0xD8, 0xE3, 0xC2, 0xFF, 0xC5, 0xF9, 0xF9, 0xFF, 0xCA, 0xF5, + 0xEE, 0xFF, 0xCE, 0xF6, 0xEF, 0xFF, 0xD2, 0xF7, 0xF0, 0xFF, 0xD1, 0xF8, 0xF1, 0xFF, 0xD0, 0xF9, 0xF1, 0xFF, 0xCD, + 0xF9, 0xF1, 0xFF, 0xC9, 0xF9, 0xF1, 0xFF, 0xC9, 0xFB, 0xF2, 0xFF, 0xCA, 0xFC, 0xF4, 0xFF, 0xB6, 0xF8, 0xE6, 0xFF, + 0xA2, 0xF3, 0xD9, 0xFF, 0x89, 0xEF, 0xCA, 0xFF, 0x71, 0xEB, 0xBC, 0xFF, 0x61, 0xE6, 0xB0, 0xFF, 0x50, 0xE1, 0xA4, + 0xFF, 0x48, 0xD9, 0x99, 0xFF, 0x40, 0xD2, 0x8F, 0xFF, 0x3A, 0xC7, 0x83, 0xFF, 0x34, 0xBC, 0x77, 0xFF, 0x1C, 0xB2, + 0x6A, 0xFF, 0x04, 0xA9, 0x5D, 0xFF, 0xEA, 0x8D, 0x13, 0xFF, 0xEF, 0x93, 0x11, 0xFF, 0xEF, 0x92, 0x0F, 0xFF, 0xF0, + 0x92, 0x0E, 0xFF, 0xF0, 0x92, 0x0E, 0xFF, 0xF2, 0xC6, 0x4D, 0xFF, 0xF2, 0xC5, 0x4B, 0xFF, 0xF2, 0xC5, 0x4A, 0xFF, + 0xF2, 0xC5, 0x48, 0xFF, 0xF2, 0xC4, 0x46, 0xFF, 0xEE, 0xC4, 0x46, 0xFF, 0xEA, 0xC4, 0x46, 0xFF, 0xF2, 0xBF, 0x48, + 0xFF, 0xFB, 0xC6, 0x34, 0xFF, 0x91, 0x95, 0x98, 0xFF, 0x27, 0x64, 0xFC, 0xFF, 0x3B, 0x76, 0xF1, 0xFF, 0x32, 0x83, + 0xFC, 0xFF, 0x34, 0x91, 0xFF, 0xFF, 0x63, 0xB4, 0xFF, 0xFF, 0x5A, 0xBD, 0xFF, 0xFF, 0xB5, 0xDC, 0xF3, 0xFF, 0x97, + 0xD0, 0xCB, 0xFF, 0xA4, 0xCE, 0xB4, 0xFF, 0xB0, 0xD2, 0xAF, 0xFF, 0xBC, 0xD6, 0xAB, 0xFF, 0xBE, 0xE1, 0xC2, 0xFF, + 0xC0, 0xEB, 0xDA, 0xFF, 0xC7, 0xFC, 0xF5, 0xFF, 0xBD, 0xFE, 0xFF, 0xFF, 0xCC, 0xFD, 0xFF, 0xFF, 0xDB, 0xFC, 0xFF, + 0xFF, 0xE0, 0xFC, 0xFE, 0xFF, 0xE4, 0xFC, 0xFB, 0xFF, 0xE6, 0xFB, 0xFD, 0xFF, 0xE7, 0xFA, 0xFF, 0xFF, 0xDD, 0xFB, + 0xFF, 0xFF, 0xF4, 0xC4, 0x61, 0xFF, 0xEE, 0xAA, 0x26, 0xFF, 0xEB, 0xAA, 0x22, 0xFF, 0xF6, 0xA7, 0x10, 0xFF, 0xD6, + 0xFF, 0xFF, 0xFF, 0xCF, 0xF4, 0xF5, 0xFF, 0xD8, 0xF9, 0xF5, 0xFF, 0xD9, 0xF9, 0xF4, 0xFF, 0xD9, 0xF8, 0xF2, 0xFF, + 0xD8, 0xF9, 0xF3, 0xFF, 0xD6, 0xFB, 0xF4, 0xFF, 0xD5, 0xFC, 0xF5, 0xFF, 0xD3, 0xFD, 0xF6, 0xFF, 0xCD, 0xFA, 0xF3, + 0xFF, 0xC7, 0xF6, 0xEF, 0xFF, 0xB0, 0xF3, 0xE1, 0xFF, 0x98, 0xF0, 0xD3, 0xFF, 0x82, 0xED, 0xC5, 0xFF, 0x6B, 0xEB, + 0xB7, 0xFF, 0x5F, 0xE9, 0xB0, 0xFF, 0x53, 0xE7, 0xAA, 0xFF, 0x49, 0xDF, 0x9F, 0xFF, 0x3E, 0xD7, 0x93, 0xFF, 0x39, + 0xCB, 0x87, 0xFF, 0x34, 0xBF, 0x7B, 0xFF, 0x25, 0xB4, 0x6B, 0xFF, 0x32, 0xA2, 0x5B, 0xFF, 0xF9, 0x94, 0x04, 0xFF, + 0xED, 0x94, 0x17, 0xFF, 0xEC, 0x92, 0x11, 0xFF, 0xEB, 0x91, 0x0B, 0xFF, 0xEB, 0x91, 0x0B, 0xFF, 0xF2, 0xC7, 0x4E, + 0xFF, 0xF3, 0xC7, 0x4D, 0xFF, 0xF3, 0xC7, 0x4C, 0xFF, 0xF3, 0xC7, 0x4A, 0xFF, 0xF4, 0xC7, 0x49, 0xFF, 0xF1, 0xC4, + 0x47, 0xFF, 0xEE, 0xC1, 0x45, 0xFF, 0xF7, 0xC2, 0x42, 0xFF, 0xFF, 0xC8, 0x33, 0xFF, 0x46, 0x67, 0xDE, 0xFF, 0x2A, + 0x63, 0xFF, 0xFF, 0x1B, 0x6F, 0xFF, 0xFF, 0x52, 0x8B, 0xE0, 0xFF, 0x84, 0xA0, 0xA3, 0xFF, 0xCC, 0xC1, 0x62, 0xFF, + 0xFF, 0xC0, 0x26, 0xFF, 0xFF, 0xB7, 0x29, 0xFF, 0xF1, 0xB5, 0x24, 0xFF, 0xF9, 0xB7, 0x27, 0xFF, 0xF6, 0xB5, 0x25, + 0xFF, 0xF2, 0xB2, 0x23, 0xFF, 0xFA, 0xB5, 0x24, 0xFF, 0xFF, 0xB7, 0x24, 0xFF, 0xDE, 0x9D, 0x17, 0xFF, 0xF4, 0xBA, + 0x42, 0xFF, 0xE7, 0xDA, 0x9E, 0xFF, 0xDC, 0xF9, 0xF9, 0xFF, 0xE6, 0xFB, 0xF3, 0xFF, 0xE9, 0xFF, 0xFF, 0xFF, 0xE6, + 0xFF, 0xFD, 0xFF, 0xE2, 0xFB, 0xFA, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0xA7, 0x1D, 0xFF, 0xF0, 0xA7, 0x1C, 0xFF, + 0xF1, 0xA7, 0x1A, 0xFF, 0xF0, 0xC4, 0x5A, 0xFF, 0xE7, 0xFF, 0xFF, 0xFF, 0xE1, 0xF9, 0xFA, 0xFF, 0xE2, 0xFB, 0xFA, + 0xFF, 0xDF, 0xFB, 0xF8, 0xFF, 0xDC, 0xFA, 0xF5, 0xFF, 0xDB, 0xFB, 0xF5, 0xFF, 0xD9, 0xFB, 0xF5, 0xFF, 0xD6, 0xFC, + 0xF5, 0xFF, 0xD3, 0xFD, 0xF5, 0xFF, 0xC8, 0xF8, 0xF0, 0xFF, 0xBD, 0xF4, 0xEA, 0xFF, 0xA8, 0xF1, 0xDF, 0xFF, 0x93, + 0xEF, 0xD4, 0xFF, 0x7A, 0xF3, 0xC6, 0xFF, 0x61, 0xF8, 0xB9, 0xFF, 0x57, 0xEF, 0xB0, 0xFF, 0x4D, 0xE6, 0xA6, 0xFF, + 0x48, 0xE2, 0xA3, 0xFF, 0x3A, 0xD6, 0x98, 0xFF, 0x37, 0xCD, 0x89, 0xFF, 0x35, 0xC3, 0x7B, 0xFF, 0x20, 0xB7, 0x6F, + 0xFF, 0x84, 0x9C, 0x3A, 0xFF, 0xF4, 0x93, 0x0C, 0xFF, 0xEC, 0x94, 0x13, 0xFF, 0xE9, 0x93, 0x11, 0xFF, 0xE6, 0x92, + 0x0F, 0xFF, 0xE6, 0x92, 0x0F, 0xFF, 0xF3, 0xC9, 0x50, 0xFF, 0xF4, 0xC9, 0x4F, 0xFF, 0xF4, 0xC9, 0x4E, 0xFF, 0xF5, + 0xCA, 0x4D, 0xFF, 0xF5, 0xCA, 0x4B, 0xFF, 0xF4, 0xC5, 0x48, 0xFF, 0xF3, 0xBF, 0x44, 0xFF, 0xEE, 0xC1, 0x47, 0xFF, + 0xEA, 0xC4, 0x4A, 0xFF, 0x1F, 0x52, 0xFF, 0xFF, 0x92, 0x9A, 0xA6, 0xFF, 0xE6, 0xB6, 0x51, 0xFF, 0xFF, 0xC7, 0x28, + 0xFF, 0xF8, 0xC4, 0x2C, 0xFF, 0xF0, 0xC0, 0x30, 0xFF, 0xEF, 0xBA, 0x3F, 0xFF, 0xEF, 0xBF, 0x37, 0xFF, 0xEF, 0xB9, + 0x38, 0xFF, 0xF0, 0xB2, 0x3A, 0xFF, 0xF3, 0xB5, 0x38, 0xFF, 0xF6, 0xB7, 0x35, 0xFF, 0xEF, 0xB9, 0x32, 0xFF, 0xE8, + 0xBB, 0x2F, 0xFF, 0xEA, 0xB8, 0x2F, 0xFF, 0xED, 0xB4, 0x2F, 0xFF, 0xF3, 0xAC, 0x1F, 0xFF, 0xF9, 0xA3, 0x10, 0xFF, + 0xF2, 0xC9, 0x6F, 0xFF, 0xDF, 0xF9, 0xF5, 0xFF, 0xDE, 0xFB, 0xF5, 0xFF, 0xDD, 0xFD, 0xF5, 0xFF, 0xE3, 0xEA, 0xD7, + 0xFF, 0xEE, 0xA5, 0x10, 0xFF, 0xF4, 0xB2, 0x2D, 0xFF, 0xF7, 0xA5, 0x13, 0xFF, 0xEB, 0xE1, 0xA5, 0xFF, 0xF8, 0xFF, + 0xFF, 0xFF, 0xF2, 0xFE, 0xFF, 0xFF, 0xEC, 0xFD, 0xFF, 0xFF, 0xE6, 0xFC, 0xFC, 0xFF, 0xDF, 0xFC, 0xF7, 0xFF, 0xDE, + 0xFC, 0xF7, 0xFF, 0xDC, 0xFC, 0xF6, 0xFF, 0xD7, 0xFC, 0xF5, 0xFF, 0xD3, 0xFC, 0xF4, 0xFF, 0xC3, 0xF7, 0xED, 0xFF, + 0xB4, 0xF1, 0xE5, 0xFF, 0xB7, 0xF5, 0xE4, 0xFF, 0xBB, 0xF9, 0xE4, 0xFF, 0xD2, 0xFE, 0xEB, 0xFF, 0xE9, 0xFF, 0xF2, + 0xFF, 0xDB, 0xFE, 0xED, 0xFF, 0xCD, 0xF9, 0xE8, 0xFF, 0x89, 0xEF, 0xCA, 0xFF, 0x35, 0xD6, 0x9C, 0xFF, 0x2D, 0xC6, + 0x83, 0xFF, 0x25, 0xB7, 0x6B, 0xFF, 0x14, 0xB3, 0x6C, 0xFF, 0xD6, 0x95, 0x1A, 0xFF, 0xEE, 0x91, 0x15, 0xFF, 0xEB, + 0x93, 0x0F, 0xFF, 0xE6, 0x93, 0x10, 0xFF, 0xE0, 0x93, 0x12, 0xFF, 0xE0, 0x93, 0x12, 0xFF, 0xF4, 0xCA, 0x52, 0xFF, + 0xF4, 0xCA, 0x50, 0xFF, 0xF3, 0xCA, 0x4E, 0xFF, 0xF3, 0xC9, 0x4C, 0xFF, 0xF3, 0xC9, 0x4A, 0xFF, 0xF4, 0xC8, 0x48, + 0xFF, 0xF6, 0xC6, 0x46, 0xFF, 0xEC, 0xBF, 0x3F, 0xFF, 0xEB, 0xBF, 0x41, 0xFF, 0xF8, 0xD4, 0x40, 0xFF, 0xFC, 0xC9, + 0x33, 0xFF, 0xFF, 0xC9, 0x2F, 0xFF, 0xEC, 0xC2, 0x42, 0xFF, 0xF4, 0xC3, 0x40, 0xFF, 0xFC, 0xC3, 0x3E, 0xFF, 0xF3, + 0xBB, 0x34, 0xFF, 0xF2, 0xBB, 0x33, 0xFF, 0xF6, 0xBD, 0x49, 0xFF, 0xF8, 0xB7, 0x38, 0xFF, 0xF5, 0xB7, 0x36, 0xFF, + 0xF2, 0xB7, 0x34, 0xFF, 0xF3, 0xB5, 0x2E, 0xFF, 0xF5, 0xB3, 0x27, 0xFF, 0xF7, 0xBA, 0x2F, 0xFF, 0xF2, 0xBA, 0x2F, + 0xFF, 0xF1, 0xB5, 0x30, 0xFF, 0xF0, 0xB0, 0x31, 0xFF, 0xF6, 0xAC, 0x1E, 0xFF, 0xED, 0xAA, 0x0C, 0xFF, 0xEC, 0xD2, + 0x7E, 0xFF, 0xE6, 0xFF, 0xFF, 0xFF, 0xD2, 0xD9, 0x80, 0xFF, 0xF8, 0xA9, 0x2E, 0xFF, 0xEB, 0xAF, 0x1C, 0xFF, 0xE5, + 0xAA, 0x02, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xF9, 0xFE, 0xFF, 0xFF, 0xF4, 0xFD, 0xFF, 0xFF, + 0xEB, 0xFD, 0xFD, 0xFF, 0xE2, 0xFE, 0xFA, 0xFF, 0xE1, 0xFD, 0xF9, 0xFF, 0xE0, 0xFC, 0xF7, 0xFF, 0xD7, 0xFC, 0xF5, + 0xFF, 0xCF, 0xFD, 0xF3, 0xFF, 0xE2, 0xFB, 0xF4, 0xFF, 0xE7, 0xFD, 0xF6, 0xFF, 0xE8, 0xFD, 0xF3, 0xFF, 0xE9, 0xFD, + 0xF0, 0xFF, 0xD3, 0xFD, 0xEB, 0xFF, 0xBD, 0xFC, 0xE5, 0xFF, 0xBA, 0xF7, 0xDF, 0xFF, 0xB6, 0xF2, 0xDA, 0xFF, 0xD2, + 0xFB, 0xE9, 0xFF, 0xE6, 0xFC, 0xF1, 0xFF, 0x8D, 0xDE, 0xB6, 0xFF, 0x3C, 0xC7, 0x84, 0xFF, 0x47, 0xB7, 0x99, 0xFF, + 0xF8, 0xA1, 0x13, 0xFF, 0xF2, 0x94, 0x04, 0xFF, 0xEE, 0x94, 0x10, 0xFF, 0xEC, 0x94, 0x10, 0xFF, 0xE9, 0x95, 0x10, + 0xFF, 0xE9, 0x95, 0x10, 0xFF, 0xF5, 0xCC, 0x53, 0xFF, 0xF3, 0xCB, 0x50, 0xFF, 0xF2, 0xCA, 0x4E, 0xFF, 0xF1, 0xC9, + 0x4B, 0xFF, 0xF0, 0xC7, 0x48, 0xFF, 0xF4, 0xCB, 0x48, 0xFF, 0xF9, 0xCE, 0x47, 0xFF, 0xF2, 0xC4, 0x40, 0xFF, 0xFC, + 0xCA, 0x48, 0xFF, 0xF0, 0xC2, 0x3F, 0xFF, 0xF5, 0xC9, 0x46, 0xFF, 0xF4, 0xC7, 0x46, 0xFF, 0xF3, 0xC4, 0x45, 0xFF, + 0xED, 0xB4, 0x38, 0xFF, 0xE8, 0xA5, 0x2C, 0xFF, 0xE1, 0xB0, 0x2E, 0xFF, 0xEA, 0xC0, 0x56, 0xFF, 0xE9, 0xC8, 0x6C, + 0xFF, 0xE4, 0xC1, 0x36, 0xFF, 0xEB, 0xC9, 0x50, 0xFF, 0xF1, 0xD1, 0x6A, 0xFF, 0xF5, 0xD0, 0x73, 0xFF, 0xF9, 0xCF, + 0x7D, 0xFF, 0xF8, 0xC7, 0x56, 0xFF, 0xE7, 0xAF, 0x1F, 0xFF, 0xED, 0xB1, 0x25, 0xFF, 0xF4, 0xB2, 0x2B, 0xFF, 0xF9, + 0xB5, 0x3E, 0xFF, 0xEE, 0xB3, 0x2A, 0xFF, 0xF5, 0xAF, 0x1B, 0xFF, 0xF0, 0xB5, 0x32, 0xFF, 0xF9, 0xB1, 0x3F, 0xFF, + 0xF2, 0xA9, 0x26, 0xFF, 0xEA, 0xAE, 0x1F, 0xFF, 0xF3, 0xB8, 0x3F, 0xFF, 0xF3, 0xFF, 0xFB, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFB, 0xFD, 0xFE, 0xFF, 0xF0, 0xFE, 0xFE, 0xFF, 0xE5, 0xFF, 0xFD, 0xFF, 0xE4, 0xFE, + 0xFB, 0xFF, 0xE3, 0xFC, 0xF8, 0xFF, 0xD7, 0xFD, 0xF5, 0xFF, 0xCB, 0xFD, 0xF2, 0xFF, 0xEB, 0xFB, 0xF4, 0xFF, 0xEE, + 0xFE, 0xF6, 0xFF, 0xDE, 0xFD, 0xF1, 0xFF, 0xCE, 0xFB, 0xED, 0xFF, 0xB0, 0xF9, 0xE2, 0xFF, 0x91, 0xF6, 0xD8, 0xFF, + 0x8A, 0xF3, 0xD2, 0xFF, 0x83, 0xF1, 0xCC, 0xFF, 0x96, 0xEE, 0xCE, 0xFF, 0xA9, 0xEA, 0xD0, 0xFF, 0xC0, 0xEA, 0xDA, + 0xFF, 0xE8, 0xFA, 0xF4, 0xFF, 0x78, 0xC6, 0x7E, 0xFF, 0xFF, 0xC0, 0x59, 0xFF, 0xEA, 0xA0, 0x19, 0xFF, 0xF2, 0x95, + 0x10, 0xFF, 0xF2, 0x96, 0x0F, 0xFF, 0xF2, 0x96, 0x0D, 0xFF, 0xF2, 0x96, 0x0D, 0xFF, 0xF4, 0xCD, 0x54, 0xFF, 0xF4, + 0xCB, 0x51, 0xFF, 0xF3, 0xCA, 0x4F, 0xFF, 0xF2, 0xC9, 0x4C, 0xFF, 0xF2, 0xC8, 0x4A, 0xFF, 0xF1, 0xC6, 0x48, 0xFF, + 0xF1, 0xC4, 0x47, 0xFF, 0xF3, 0xD2, 0x48, 0xFF, 0xF3, 0xC7, 0x46, 0xFF, 0xFB, 0xC5, 0x4C, 0xFF, 0xDC, 0x9A, 0x2B, + 0xFF, 0xCD, 0x83, 0x17, 0xFF, 0xBE, 0x6B, 0x03, 0xFF, 0xC5, 0x7F, 0x00, 0xFF, 0xD4, 0x96, 0x0E, 0xFF, 0xDB, 0xAC, + 0x2E, 0xFF, 0xEA, 0xC5, 0x60, 0xFF, 0xEF, 0xCC, 0x75, 0xFF, 0xEA, 0xCA, 0x51, 0xFF, 0xEF, 0xD2, 0x69, 0xFF, 0xF5, + 0xDA, 0x81, 0xFF, 0xF7, 0xE4, 0x99, 0xFF, 0xF9, 0xEE, 0xB2, 0xFF, 0xFF, 0xFA, 0xCE, 0xFF, 0xFF, 0xFE, 0xE2, 0xFF, + 0xFF, 0xE1, 0x99, 0xFF, 0xF7, 0xBC, 0x48, 0xFF, 0xDC, 0xB4, 0x10, 0xFF, 0xF0, 0xAD, 0x31, 0xFF, 0xFB, 0xAC, 0x27, + 0xFF, 0xF3, 0xB2, 0x30, 0xFF, 0xF5, 0xB1, 0x34, 0xFF, 0xF0, 0xAD, 0x24, 0xFF, 0xF6, 0xAC, 0x26, 0xFF, 0xFC, 0xD1, + 0x97, 0xFF, 0xF7, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFB, 0xFF, 0xFE, 0xFF, 0xF3, 0xFF, 0xFE, 0xFF, 0xED, + 0xFF, 0xFD, 0xFF, 0xE7, 0xFD, 0xFC, 0xFF, 0xE3, 0xFE, 0xFB, 0xFF, 0xDF, 0xFE, 0xF9, 0xFF, 0xE7, 0xFD, 0xF8, 0xFF, + 0xEF, 0xFC, 0xF7, 0xFF, 0xEB, 0xFB, 0xF3, 0xFF, 0xD8, 0xFD, 0xEF, 0xFF, 0xC2, 0xFA, 0xE8, 0xFF, 0xAB, 0xF8, 0xE2, + 0xFF, 0x9B, 0xF4, 0xD8, 0xFF, 0x8A, 0xEF, 0xCE, 0xFF, 0x76, 0xEA, 0xC1, 0xFF, 0x61, 0xE5, 0xB4, 0xFF, 0x5A, 0xDD, + 0xAB, 0xFF, 0x61, 0xD2, 0xA2, 0xFF, 0x8D, 0xE9, 0xC1, 0xFF, 0xB8, 0xE7, 0xDA, 0xFF, 0xFF, 0xD4, 0x96, 0xFF, 0xFA, + 0xD0, 0x8E, 0xFF, 0xED, 0xAD, 0x41, 0xFF, 0xF1, 0x95, 0x10, 0xFF, 0xF1, 0x95, 0x0F, 0xFF, 0xF1, 0x96, 0x0E, 0xFF, + 0xF1, 0x96, 0x0E, 0xFF, 0xF4, 0xCD, 0x54, 0xFF, 0xF4, 0xCC, 0x52, 0xFF, 0xF4, 0xCB, 0x50, 0xFF, 0xF3, 0xC9, 0x4E, + 0xFF, 0xF3, 0xC8, 0x4B, 0xFF, 0xF6, 0xC9, 0x51, 0xFF, 0xFA, 0xCA, 0x56, 0xFF, 0xEA, 0xC0, 0x44, 0xFF, 0xC6, 0x74, + 0x19, 0xFF, 0xAD, 0x58, 0x00, 0xFF, 0xB3, 0x5B, 0x01, 0xFF, 0xC0, 0x6F, 0x06, 0xFF, 0xCC, 0x84, 0x0B, 0xFF, 0xCE, + 0x93, 0x00, 0xFF, 0xDF, 0xA7, 0x11, 0xFF, 0xE5, 0xB9, 0x3E, 0xFF, 0xEB, 0xCA, 0x6A, 0xFF, 0xF5, 0xD1, 0x7E, 0xFF, + 0xF0, 0xD3, 0x6B, 0xFF, 0xF4, 0xDB, 0x81, 0xFF, 0xF8, 0xE3, 0x97, 0xFF, 0xF7, 0xEB, 0xA4, 0xFF, 0xF5, 0xF4, 0xB1, + 0xFF, 0xF9, 0xF7, 0xC7, 0xFF, 0xFC, 0xFA, 0xDC, 0xFF, 0xFF, 0xFF, 0xF2, 0xFF, 0xF5, 0xFF, 0xF8, 0xFF, 0xFD, 0xEB, + 0xBB, 0xFF, 0xF2, 0xB4, 0x22, 0xFF, 0xFF, 0xAF, 0x28, 0xFF, 0xF6, 0xB0, 0x2F, 0xFF, 0xF2, 0xB0, 0x29, 0xFF, 0xEE, + 0xB1, 0x22, 0xFF, 0xF9, 0xA7, 0x19, 0xFF, 0xF4, 0xE6, 0xC9, 0xFF, 0xF4, 0xF7, 0xF7, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, + 0xF6, 0xFF, 0xFE, 0xFF, 0xEC, 0xFF, 0xFD, 0xFF, 0xEA, 0xFF, 0xFC, 0xFF, 0xE8, 0xFA, 0xFA, 0xFF, 0xE2, 0xFD, 0xFB, + 0xFF, 0xDC, 0xFF, 0xFB, 0xFF, 0xE9, 0xFF, 0xFB, 0xFF, 0xF6, 0xFF, 0xFB, 0xFF, 0xDC, 0xFD, 0xF1, 0xFF, 0xC3, 0xFB, + 0xE7, 0xFF, 0xB4, 0xF5, 0xDF, 0xFF, 0xA5, 0xF0, 0xD8, 0xFF, 0x94, 0xEC, 0xCE, 0xFF, 0x83, 0xE8, 0xC4, 0xFF, 0x77, + 0xE5, 0xB7, 0xFF, 0x6B, 0xE3, 0xAB, 0xFF, 0x52, 0xDE, 0xA0, 0xFF, 0x55, 0xD4, 0x94, 0xFF, 0x40, 0xBD, 0x7F, 0xFF, + 0x98, 0xE4, 0xD1, 0xFF, 0xF4, 0xA1, 0x2B, 0xFF, 0xF6, 0xA1, 0x2F, 0xFF, 0xF3, 0x9B, 0x1F, 0xFF, 0xF0, 0x95, 0x0F, + 0xFF, 0xF0, 0x95, 0x0F, 0xFF, 0xF0, 0x95, 0x0F, 0xFF, 0xF0, 0x95, 0x0F, 0xFF, 0xF4, 0xCE, 0x55, 0xFF, 0xF4, 0xCC, + 0x53, 0xFF, 0xF4, 0xCB, 0x51, 0xFF, 0xF5, 0xCA, 0x4F, 0xFF, 0xF6, 0xC9, 0x4E, 0xFF, 0xF4, 0xC9, 0x4D, 0xFF, 0xFA, + 0xD0, 0x53, 0xFF, 0xCD, 0x86, 0x2A, 0xFF, 0xB0, 0x52, 0x06, 0xFF, 0xB8, 0x5F, 0x04, 0xFF, 0xC8, 0x73, 0x0A, 0xFF, + 0xCE, 0x82, 0x08, 0xFF, 0xD3, 0x91, 0x06, 0xFF, 0xD5, 0xA0, 0x01, 0xFF, 0xE6, 0xB4, 0x24, 0xFF, 0xEA, 0xC4, 0x4C, + 0xFF, 0xED, 0xD3, 0x74, 0xFF, 0xF4, 0xD9, 0x83, 0xFF, 0xF3, 0xDC, 0x7E, 0xFF, 0xF6, 0xE4, 0x93, 0xFF, 0xF8, 0xEC, + 0xA8, 0xFF, 0xF9, 0xF2, 0xB5, 0xFF, 0xF9, 0xF8, 0xC3, 0xFF, 0xFA, 0xFA, 0xD3, 0xFF, 0xFB, 0xFB, 0xE2, 0xFF, 0xFB, + 0xFE, 0xED, 0xFF, 0xF3, 0xF9, 0xEF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0xEE, 0xDC, 0x7E, 0xFF, + 0xFD, 0xAD, 0x26, 0xFF, 0xF7, 0xAF, 0x29, 0xFF, 0xF1, 0xB1, 0x2D, 0xFF, 0xDF, 0xB1, 0x34, 0xFF, 0xF6, 0xA6, 0x09, + 0xFF, 0xF4, 0xD3, 0x8C, 0xFF, 0xF8, 0xFB, 0xFC, 0xFF, 0xF6, 0xFF, 0xFF, 0xFF, 0xEB, 0xFF, 0xFD, 0xFF, 0xE5, 0xFE, + 0xFC, 0xFF, 0xE0, 0xFB, 0xFB, 0xFF, 0xDE, 0xFC, 0xF9, 0xFF, 0xDC, 0xFC, 0xF7, 0xFF, 0xEF, 0xFF, 0xFC, 0xFF, 0xEB, + 0xFC, 0xF8, 0xFF, 0xD0, 0xF5, 0xE8, 0xFF, 0xBC, 0xF5, 0xDF, 0xFF, 0xAC, 0xF1, 0xD8, 0xFF, 0x9D, 0xED, 0xD2, 0xFF, + 0x7D, 0xE8, 0xC4, 0xFF, 0x6C, 0xE1, 0xB7, 0xFF, 0x5E, 0xDC, 0xAB, 0xFF, 0x4F, 0xD7, 0x9E, 0xFF, 0x5E, 0xC9, 0x98, + 0xFF, 0x35, 0xC6, 0x92, 0xFF, 0x42, 0xC9, 0x8B, 0xFF, 0x4D, 0xB2, 0x80, 0xFF, 0xF1, 0x9B, 0x00, 0xFF, 0xF8, 0x93, + 0x17, 0xFF, 0xF4, 0x95, 0x15, 0xFF, 0xF1, 0x97, 0x12, 0xFF, 0xF0, 0x96, 0x11, 0xFF, 0xEF, 0x95, 0x10, 0xFF, 0xEF, + 0x95, 0x10, 0xFF, 0xF4, 0xCE, 0x55, 0xFF, 0xF4, 0xCD, 0x54, 0xFF, 0xF5, 0xCC, 0x52, 0xFF, 0xF6, 0xCB, 0x51, 0xFF, + 0xF8, 0xCB, 0x50, 0xFF, 0xF1, 0xC8, 0x49, 0xFF, 0xF9, 0xD5, 0x51, 0xFF, 0xC0, 0x62, 0x15, 0xFF, 0xBB, 0x5C, 0x00, + 0xFF, 0xCC, 0x74, 0x07, 0xFF, 0xCD, 0x7C, 0x02, 0xFF, 0xD4, 0x8D, 0x02, 0xFF, 0xDB, 0x9E, 0x01, 0xFF, 0xDC, 0xAD, + 0x08, 0xFF, 0xED, 0xC1, 0x36, 0xFF, 0xEE, 0xCF, 0x5A, 0xFF, 0xF0, 0xDC, 0x7D, 0xFF, 0xF3, 0xE1, 0x87, 0xFF, 0xF7, + 0xE6, 0x91, 0xFF, 0xF8, 0xED, 0xA5, 0xFF, 0xF8, 0xF5, 0xB8, 0xFF, 0xFB, 0xF9, 0xC6, 0xFF, 0xFD, 0xFD, 0xD4, 0xFF, + 0xFB, 0xFC, 0xDF, 0xFF, 0xFA, 0xFC, 0xE9, 0xFF, 0xFD, 0xFE, 0xF0, 0xFF, 0xFF, 0xFF, 0xF7, 0xFF, 0xFE, 0xFF, 0xFA, + 0xFF, 0xFB, 0xFE, 0xFC, 0xFF, 0xFF, 0xFA, 0xFD, 0xFF, 0xE7, 0xAF, 0x1D, 0xFF, 0xEE, 0xB0, 0x2A, 0xFF, 0xF5, 0xB1, + 0x37, 0xFF, 0xF6, 0xB8, 0x24, 0xFF, 0xF7, 0xB4, 0x28, 0xFF, 0xF4, 0xAF, 0x21, 0xFF, 0xF2, 0xAA, 0x1A, 0xFF, 0xF5, + 0xD7, 0x9E, 0xFF, 0xE9, 0xFF, 0xFC, 0xFF, 0xE0, 0xFE, 0xFC, 0xFF, 0xD7, 0xFD, 0xFC, 0xFF, 0xDA, 0xFA, 0xF8, 0xFF, + 0xDD, 0xF7, 0xF3, 0xFF, 0xF4, 0xFD, 0xFD, 0xFF, 0xE0, 0xF9, 0xF6, 0xFF, 0xC3, 0xEC, 0xDF, 0xFF, 0xB5, 0xEF, 0xD7, + 0xFF, 0xA5, 0xEC, 0xD2, 0xFF, 0x95, 0xE9, 0xCC, 0xFF, 0x67, 0xE5, 0xBB, 0xFF, 0x55, 0xDB, 0xAB, 0xFF, 0x44, 0xD3, + 0x9E, 0xFF, 0x32, 0xCB, 0x91, 0xFF, 0x24, 0xC8, 0x85, 0xFF, 0x6A, 0xB4, 0x79, 0xFF, 0xAF, 0x9D, 0x3A, 0xFF, 0xFF, + 0x97, 0x0B, 0xFF, 0xF9, 0x93, 0x18, 0xFF, 0xED, 0x9B, 0x0F, 0xFF, 0xF0, 0x9A, 0x12, 0xFF, 0xF3, 0x98, 0x15, 0xFF, + 0xF1, 0x96, 0x13, 0xFF, 0xEF, 0x94, 0x11, 0xFF, 0xEF, 0x94, 0x11, 0xFF, 0xF4, 0xCF, 0x58, 0xFF, 0xF4, 0xCE, 0x55, + 0xFF, 0xF4, 0xCD, 0x53, 0xFF, 0xF6, 0xCC, 0x52, 0xFF, 0xF8, 0xCB, 0x52, 0xFF, 0xFA, 0xD5, 0x52, 0xFF, 0xFB, 0xC7, + 0x4E, 0xFF, 0xAD, 0x4C, 0x00, 0xFF, 0xCA, 0x6F, 0x09, 0xFF, 0xD3, 0x7F, 0x0B, 0xFF, 0xD4, 0x88, 0x05, 0xFF, 0xDB, + 0x97, 0x04, 0xFF, 0xE1, 0xA7, 0x04, 0xFF, 0xE5, 0xB6, 0x18, 0xFF, 0xF1, 0xC7, 0x3F, 0xFF, 0xF3, 0xD3, 0x62, 0xFF, + 0xF4, 0xDF, 0x86, 0xFF, 0xF7, 0xE4, 0x91, 0xFF, 0xF9, 0xE9, 0x9B, 0xFF, 0xF9, 0xF0, 0xAD, 0xFF, 0xF9, 0xF7, 0xBF, + 0xFF, 0xFB, 0xFA, 0xCB, 0xFF, 0xFD, 0xFC, 0xD7, 0xFF, 0xFC, 0xFD, 0xDE, 0xFF, 0xFB, 0xFD, 0xE5, 0xFF, 0xFE, 0xFF, + 0xEF, 0xFF, 0xFF, 0xFF, 0xF9, 0xFF, 0xFA, 0xFE, 0xF2, 0xFF, 0xFC, 0xFE, 0xFE, 0xFF, 0xFB, 0xE9, 0xC6, 0xFF, 0xEC, + 0xAF, 0x1D, 0xFF, 0xF6, 0xB4, 0x30, 0xFF, 0xF8, 0xB6, 0x2F, 0xFF, 0xF6, 0xA7, 0x19, 0xFF, 0xF0, 0xB0, 0x26, 0xFF, + 0xF2, 0xAD, 0x22, 0xFF, 0xF5, 0xAB, 0x1D, 0xFF, 0xF9, 0xA9, 0x26, 0xFF, 0xF6, 0xA6, 0x1C, 0xFF, 0xE9, 0xCD, 0x7D, + 0xFF, 0xDC, 0xF4, 0xDF, 0xFF, 0xAF, 0xFE, 0xEA, 0xFF, 0xED, 0xFD, 0xFD, 0xFF, 0xEF, 0xFF, 0xFF, 0xFF, 0xD3, 0xF8, + 0xFB, 0xFF, 0xB4, 0xEE, 0xEC, 0xFF, 0xAB, 0xE9, 0xE6, 0xFF, 0x89, 0xE6, 0xD8, 0xFF, 0x67, 0xE2, 0xCB, 0xFF, 0x52, + 0xE1, 0xB8, 0xFF, 0x4C, 0xDD, 0xA6, 0xFF, 0x7E, 0xC5, 0x74, 0xFF, 0xB0, 0xAD, 0x42, 0xFF, 0xF3, 0x9B, 0x22, 0xFF, + 0xFF, 0x9C, 0x09, 0xFF, 0xF5, 0x98, 0x09, 0xFF, 0xEE, 0x9C, 0x10, 0xFF, 0xED, 0x99, 0x17, 0xFF, 0xED, 0x9D, 0x14, + 0xFF, 0xEF, 0x9B, 0x14, 0xFF, 0xF2, 0x99, 0x15, 0xFF, 0xF0, 0x97, 0x13, 0xFF, 0xEE, 0x95, 0x11, 0xFF, 0xEE, 0x95, + 0x11, 0xFF, 0xF5, 0xD0, 0x5A, 0xFF, 0xF4, 0xCF, 0x57, 0xFF, 0xF3, 0xCE, 0x54, 0xFF, 0xF5, 0xCC, 0x53, 0xFF, 0xF7, + 0xCB, 0x53, 0xFF, 0xF4, 0xD3, 0x4C, 0xFF, 0xDD, 0x9A, 0x2C, 0xFF, 0xC1, 0x5D, 0x03, 0xFF, 0xC8, 0x72, 0x05, 0xFF, + 0xD2, 0x83, 0x06, 0xFF, 0xDC, 0x93, 0x07, 0xFF, 0xE1, 0xA2, 0x07, 0xFF, 0xE7, 0xB0, 0x08, 0xFF, 0xEE, 0xBF, 0x27, + 0xFF, 0xF6, 0xCD, 0x47, 0xFF, 0xF7, 0xD8, 0x6B, 0xFF, 0xF9, 0xE2, 0x8E, 0xFF, 0xFA, 0xE7, 0x9A, 0xFF, 0xFB, 0xEC, + 0xA6, 0xFF, 0xFA, 0xF3, 0xB6, 0xFF, 0xFA, 0xF9, 0xC7, 0xFF, 0xFB, 0xFB, 0xD0, 0xFF, 0xFD, 0xFC, 0xD9, 0xFF, 0xFC, + 0xFD, 0xDD, 0xFF, 0xFC, 0xFE, 0xE2, 0xFF, 0xFE, 0xFF, 0xEE, 0xFF, 0xFF, 0xFF, 0xFB, 0xFF, 0xF7, 0xFD, 0xEA, 0xFF, + 0xFE, 0xFE, 0xFF, 0xFF, 0xF7, 0xD7, 0x8F, 0xFF, 0xF1, 0xAF, 0x1E, 0xFF, 0xF6, 0xB0, 0x2E, 0xFF, 0xEB, 0xAB, 0x17, + 0xFF, 0xFD, 0xF7, 0xDF, 0xFF, 0xE9, 0xAC, 0x24, 0xFF, 0xF0, 0xAC, 0x22, 0xFF, 0xF8, 0xAC, 0x21, 0xFF, 0xF6, 0xAE, + 0x26, 0xFF, 0xF5, 0xB0, 0x2B, 0xFF, 0xF4, 0xA9, 0x19, 0xFF, 0xF3, 0xA2, 0x08, 0xFF, 0xF9, 0xA7, 0x22, 0xFF, 0xF2, + 0xC1, 0x4C, 0xFF, 0xEE, 0xCD, 0x6D, 0xFF, 0xDB, 0xC9, 0x7D, 0xFF, 0xC2, 0xCA, 0x7F, 0xFF, 0xC6, 0xC5, 0x81, 0xFF, + 0xCB, 0xBC, 0x60, 0xFF, 0xCF, 0xB3, 0x40, 0xFF, 0xE9, 0xA7, 0x24, 0xFF, 0xFF, 0x9B, 0x07, 0xFF, 0xFF, 0x9D, 0x10, + 0xFF, 0xFF, 0x9F, 0x1A, 0xFF, 0xE9, 0x98, 0x0F, 0xFF, 0xF9, 0x9C, 0x14, 0xFF, 0xF7, 0x9C, 0x14, 0xFF, 0xF4, 0x9B, + 0x14, 0xFF, 0xF1, 0x9D, 0x17, 0xFF, 0xED, 0x9E, 0x19, 0xFF, 0xEF, 0x9C, 0x16, 0xFF, 0xF1, 0x99, 0x14, 0xFF, 0xEF, + 0x97, 0x12, 0xFF, 0xED, 0x95, 0x10, 0xFF, 0xED, 0x95, 0x10, 0xFF, 0xF6, 0xD1, 0x5C, 0xFF, 0xF4, 0xD0, 0x58, 0xFF, + 0xF3, 0xCF, 0x55, 0xFF, 0xF5, 0xCD, 0x54, 0xFF, 0xF7, 0xCC, 0x53, 0xFF, 0xF6, 0xD5, 0x51, 0xFF, 0xCE, 0x7B, 0x16, + 0xFF, 0xC6, 0x67, 0x03, 0xFF, 0xCF, 0x7B, 0x06, 0xFF, 0xD7, 0x8B, 0x05, 0xFF, 0xDF, 0x9B, 0x05, 0xFF, 0xE4, 0xA8, + 0x07, 0xFF, 0xEA, 0xB6, 0x09, 0xFF, 0xF1, 0xC3, 0x2A, 0xFF, 0xF7, 0xD1, 0x4C, 0xFF, 0xF8, 0xDB, 0x6C, 0xFF, 0xFA, + 0xE4, 0x8D, 0xFF, 0xFA, 0xEA, 0x9C, 0xFF, 0xFB, 0xEF, 0xAB, 0xFF, 0xFA, 0xF5, 0xBC, 0xFF, 0xFA, 0xFA, 0xCD, 0xFF, + 0xFB, 0xFB, 0xD4, 0xFF, 0xFD, 0xFC, 0xDB, 0xFF, 0xFC, 0xFD, 0xDC, 0xFF, 0xFC, 0xFE, 0xDD, 0xFF, 0xFC, 0xFE, 0xE3, + 0xFF, 0xFD, 0xFE, 0xEA, 0xFF, 0xFD, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDE, 0xC0, 0x27, 0xFF, 0xF5, 0xB4, + 0x26, 0xFF, 0xF8, 0xB0, 0x1E, 0xFF, 0xFF, 0xC6, 0x4D, 0xFF, 0xEF, 0xF8, 0xFF, 0xFF, 0xFA, 0xFF, 0xFE, 0xFF, 0xF6, + 0xD8, 0x8B, 0xFF, 0xF3, 0xA7, 0x18, 0xFF, 0xF4, 0xA9, 0x1D, 0xFF, 0xF5, 0xAC, 0x22, 0xFF, 0xF2, 0xAB, 0x22, 0xFF, + 0xF0, 0xAB, 0x22, 0xFF, 0xF2, 0xA3, 0x1A, 0xFF, 0xEE, 0xA6, 0x1A, 0xFF, 0xF4, 0xA8, 0x17, 0xFF, 0xF3, 0xA2, 0x0D, + 0xFF, 0xF2, 0xA4, 0x10, 0xFF, 0xFF, 0xA3, 0x14, 0xFF, 0xFC, 0xA3, 0x15, 0xFF, 0xF9, 0xA2, 0x16, 0xFF, 0xF2, 0xA2, + 0x17, 0xFF, 0xEC, 0xA1, 0x18, 0xFF, 0xFD, 0x99, 0x0D, 0xFF, 0xED, 0x9A, 0x16, 0xFF, 0xFF, 0xA0, 0x00, 0xFF, 0xE8, + 0x9C, 0x2B, 0xFF, 0xAF, 0xB5, 0x60, 0xFF, 0xF7, 0x99, 0x10, 0xFF, 0xF2, 0x9B, 0x14, 0xFF, 0xED, 0x9D, 0x18, 0xFF, + 0xEE, 0x9B, 0x16, 0xFF, 0xEF, 0x99, 0x13, 0xFF, 0xED, 0x97, 0x11, 0xFF, 0xEB, 0x95, 0x0F, 0xFF, 0xEB, 0x95, 0x0F, + 0xFF, 0xF7, 0xD2, 0x5E, 0xFF, 0xF4, 0xD1, 0x5A, 0xFF, 0xF2, 0xD0, 0x56, 0xFF, 0xF5, 0xCE, 0x54, 0xFF, 0xF7, 0xCC, + 0x53, 0xFF, 0xF7, 0xD7, 0x56, 0xFF, 0xC0, 0x5B, 0x00, 0xFF, 0xCB, 0x70, 0x03, 0xFF, 0xD6, 0x84, 0x06, 0xFF, 0xDC, + 0x94, 0x05, 0xFF, 0xE2, 0xA3, 0x03, 0xFF, 0xE8, 0xAF, 0x07, 0xFF, 0xEE, 0xBB, 0x0B, 0xFF, 0xF3, 0xC8, 0x2D, 0xFF, + 0xF8, 0xD5, 0x50, 0xFF, 0xF9, 0xDE, 0x6E, 0xFF, 0xFA, 0xE6, 0x8C, 0xFF, 0xFB, 0xEC, 0x9F, 0xFF, 0xFB, 0xF2, 0xB1, + 0xFF, 0xFA, 0xF7, 0xC2, 0xFF, 0xF9, 0xFB, 0xD3, 0xFF, 0xFB, 0xFC, 0xD8, 0xFF, 0xFD, 0xFC, 0xDD, 0xFF, 0xFC, 0xFD, + 0xDB, 0xFF, 0xFC, 0xFE, 0xD8, 0xFF, 0xFB, 0xFD, 0xD8, 0xFF, 0xFA, 0xFC, 0xD9, 0xFF, 0xFA, 0xFA, 0xE4, 0xFF, 0xF6, + 0xE9, 0xA3, 0xFF, 0xFB, 0xAC, 0x2A, 0xFF, 0xFA, 0xB9, 0x2E, 0xFF, 0xED, 0xAD, 0x1A, 0xFF, 0xF7, 0xDA, 0x99, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xFD, 0xFE, 0xFF, 0xFC, 0xFE, 0xFE, 0xFF, 0xFD, 0xFF, 0xFF, 0xFF, 0xF9, 0xD4, 0x8C, + 0xFF, 0xF5, 0xA8, 0x19, 0xFF, 0xF7, 0xA9, 0x17, 0xFF, 0xF8, 0xA9, 0x16, 0xFF, 0xF3, 0xA7, 0x1A, 0xFF, 0xED, 0xA5, + 0x1E, 0xFF, 0xF1, 0xA7, 0x1F, 0xFF, 0xF6, 0xA9, 0x20, 0xFF, 0xF6, 0xA7, 0x1D, 0xFF, 0xF6, 0xA5, 0x1A, 0xFF, 0xF8, + 0xA3, 0x16, 0xFF, 0xFA, 0xA1, 0x12, 0xFF, 0xFC, 0x9D, 0x0A, 0xFF, 0xFE, 0x98, 0x03, 0xFF, 0xF9, 0xA1, 0x25, 0xFF, + 0xB0, 0xC0, 0x6F, 0xFF, 0x5D, 0xC9, 0xCF, 0xFF, 0x27, 0xE5, 0xFF, 0xFF, 0xB3, 0xB4, 0x73, 0xFF, 0xF9, 0x97, 0x0B, + 0xFF, 0xF3, 0x9A, 0x11, 0xFF, 0xED, 0x9D, 0x17, 0xFF, 0xEE, 0x9B, 0x15, 0xFF, 0xEE, 0x9A, 0x13, 0xFF, 0xEC, 0x98, + 0x11, 0xFF, 0xEA, 0x96, 0x0F, 0xFF, 0xEA, 0x96, 0x0F, 0xFF, 0xF6, 0xD1, 0x5D, 0xFF, 0xF5, 0xD1, 0x5A, 0xFF, 0xF4, + 0xD2, 0x58, 0xFF, 0xF3, 0xCE, 0x53, 0xFF, 0xFA, 0xD1, 0x56, 0xFF, 0xE6, 0xB1, 0x3F, 0xFF, 0xC6, 0x64, 0x01, 0xFF, + 0xCE, 0x75, 0x02, 0xFF, 0xD7, 0x87, 0x04, 0xFF, 0xDD, 0x95, 0x02, 0xFF, 0xE4, 0xA4, 0x00, 0xFF, 0xEA, 0xB0, 0x03, + 0xFF, 0xF1, 0xBD, 0x06, 0xFF, 0xF2, 0xC8, 0x1B, 0xFF, 0xFB, 0xD5, 0x42, 0xFF, 0xFB, 0xDD, 0x63, 0xFF, 0xFB, 0xE5, + 0x84, 0xFF, 0xFC, 0xEB, 0x98, 0xFF, 0xFC, 0xF1, 0xAB, 0xFF, 0xFF, 0xF8, 0xBD, 0xFF, 0xFF, 0xFF, 0xCF, 0xFF, 0xFF, + 0xFC, 0xCF, 0xFF, 0xFB, 0xF9, 0xCF, 0xFF, 0xFD, 0xFE, 0xD2, 0xFF, 0xFF, 0xFF, 0xD4, 0xFF, 0xFF, 0xF9, 0xC6, 0xFF, + 0xFF, 0xEE, 0xB7, 0xFF, 0xD9, 0xD7, 0x59, 0xFF, 0xE9, 0xB9, 0x40, 0xFF, 0xFF, 0xB9, 0x2E, 0xFF, 0xEF, 0xB1, 0x2B, + 0xFF, 0xEB, 0xAF, 0x27, 0xFF, 0xF1, 0xEF, 0xDD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFE, 0xFF, 0xFD, 0xFE, + 0xFF, 0xFF, 0xF9, 0xFD, 0xFF, 0xFF, 0xF9, 0xFF, 0xFF, 0xFF, 0xF9, 0xFF, 0xFF, 0xFF, 0xF0, 0xE8, 0xC1, 0xFF, 0xE6, + 0xCD, 0x83, 0xFF, 0xE8, 0xBB, 0x52, 0xFF, 0xEB, 0xA9, 0x21, 0xFF, 0xFF, 0xA1, 0x13, 0xFF, 0xF7, 0x9F, 0x06, 0xFF, + 0xF8, 0x9F, 0x0F, 0xFF, 0xEA, 0xA3, 0x18, 0xFF, 0xE0, 0xB1, 0x43, 0xFF, 0xC9, 0xC2, 0x6D, 0xFF, 0x99, 0xD6, 0xAF, + 0xFF, 0x6A, 0xEB, 0xF1, 0xFF, 0x31, 0xEE, 0xEB, 0xFF, 0x47, 0xE6, 0xF8, 0xFF, 0x3A, 0xE1, 0xFF, 0xFF, 0x41, 0xE1, + 0xFC, 0xFF, 0xF4, 0x98, 0x00, 0xFF, 0xFC, 0xA1, 0x19, 0xFF, 0xF6, 0x9E, 0x15, 0xFF, 0xF1, 0x9A, 0x11, 0xFF, 0xF0, + 0x9A, 0x13, 0xFF, 0xF0, 0x99, 0x14, 0xFF, 0xEE, 0x97, 0x12, 0xFF, 0xEC, 0x95, 0x10, 0xFF, 0xEC, 0x95, 0x10, 0xFF, + 0xF5, 0xCF, 0x5C, 0xFF, 0xF6, 0xD1, 0x5A, 0xFF, 0xF6, 0xD4, 0x59, 0xFF, 0xF2, 0xCD, 0x51, 0xFF, 0xFE, 0xD6, 0x59, + 0xFF, 0xD5, 0x8B, 0x29, 0xFF, 0xCB, 0x6C, 0x02, 0xFF, 0xD1, 0x7A, 0x01, 0xFF, 0xD8, 0x89, 0x01, 0xFF, 0xDE, 0x97, + 0x00, 0xFF, 0xE5, 0xA5, 0x00, 0xFF, 0xEC, 0xB2, 0x00, 0xFF, 0xF3, 0xBE, 0x02, 0xFF, 0xF1, 0xC7, 0x08, 0xFF, 0xFE, + 0xD5, 0x35, 0xFF, 0xFD, 0xDD, 0x58, 0xFF, 0xFB, 0xE4, 0x7C, 0xFF, 0xFC, 0xEA, 0x91, 0xFF, 0xFE, 0xEF, 0xA6, 0xFF, + 0xFE, 0xF2, 0xB0, 0xFF, 0xFE, 0xF5, 0xBA, 0xFF, 0xFC, 0xF5, 0xBD, 0xFF, 0xF9, 0xF5, 0xC0, 0xFF, 0xF6, 0xF7, 0xC0, + 0xFF, 0xF4, 0xF9, 0xC1, 0xFF, 0xFC, 0xFC, 0xC6, 0xFF, 0xFF, 0xFF, 0xCC, 0xFF, 0xF7, 0xF8, 0xC1, 0xFF, 0xF3, 0xCC, + 0x59, 0xFF, 0xF2, 0xB0, 0x38, 0xFF, 0xF5, 0xBA, 0x37, 0xFF, 0xF7, 0xB4, 0x29, 0xFF, 0xF8, 0xFB, 0xFC, 0xFF, 0xFF, + 0xFD, 0xFC, 0xFF, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xF6, 0xFC, 0xFF, 0xFF, 0xF2, 0xFE, 0xFC, 0xFF, + 0xEE, 0xFF, 0xF6, 0xFF, 0xE9, 0xFF, 0xFC, 0xFF, 0xE4, 0xFF, 0xFF, 0xFF, 0xD7, 0xFF, 0xFF, 0xFF, 0xCA, 0xFF, 0xFF, + 0xFF, 0xF1, 0xFB, 0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0xFF, 0xC1, 0xFD, 0xFC, 0xFF, 0x88, 0xFF, 0xF6, 0xFF, 0x91, 0xFD, + 0xFB, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0x6C, 0xFC, 0xFC, 0xFF, 0x59, 0xF6, 0xF9, 0xFF, 0x58, 0xEF, 0xF8, 0xFF, 0x57, + 0xE9, 0xF7, 0xFF, 0x59, 0xE3, 0xF6, 0xFF, 0x67, 0xD2, 0xD0, 0xFF, 0xFF, 0x98, 0x08, 0xFF, 0xEF, 0x9A, 0x17, 0xFF, + 0xF1, 0x99, 0x12, 0xFF, 0xF4, 0x98, 0x0C, 0xFF, 0xF3, 0x99, 0x10, 0xFF, 0xF1, 0x99, 0x15, 0xFF, 0xEF, 0x97, 0x13, + 0xFF, 0xED, 0x95, 0x11, 0xFF, 0xED, 0x95, 0x11, 0xFF, 0xF9, 0xD1, 0x5E, 0xFF, 0xF7, 0xD3, 0x5B, 0xFF, 0xF6, 0xD4, + 0x59, 0xFF, 0xF8, 0xD3, 0x57, 0xFF, 0xFF, 0xDA, 0x5E, 0xFF, 0xCD, 0x70, 0x19, 0xFF, 0xCC, 0x6D, 0x02, 0xFF, 0xD2, + 0x7B, 0x03, 0xFF, 0xD9, 0x88, 0x04, 0xFF, 0xDF, 0x96, 0x04, 0xFF, 0xE6, 0xA5, 0x04, 0xFF, 0xE6, 0xAD, 0x01, 0xFF, + 0xE7, 0xB4, 0x00, 0xFF, 0xEA, 0xBE, 0x06, 0xFF, 0xF5, 0xCA, 0x23, 0xFF, 0xF8, 0xD7, 0x4B, 0xFF, 0xFB, 0xE3, 0x74, + 0xFF, 0xFC, 0xE8, 0x89, 0xFF, 0xFE, 0xEC, 0x9E, 0xFF, 0xFE, 0xED, 0xA5, 0xFF, 0xFE, 0xEE, 0xAB, 0xFF, 0xFB, 0xEF, + 0xAD, 0xFF, 0xF9, 0xEF, 0xB0, 0xFF, 0xF8, 0xF2, 0xB3, 0xFF, 0xF8, 0xF5, 0xB6, 0xFF, 0xFC, 0xF8, 0xB5, 0xFF, 0xFF, + 0xFB, 0xB5, 0xFF, 0xFF, 0xF3, 0xD9, 0xFF, 0xF1, 0xB9, 0x1A, 0xFF, 0xF3, 0xB3, 0x28, 0xFF, 0xF6, 0xB3, 0x2A, 0xFF, + 0xF3, 0xCE, 0x73, 0xFF, 0xF5, 0xFD, 0xFD, 0xFF, 0xF9, 0xFE, 0xFD, 0xFF, 0xFE, 0xFF, 0xFD, 0xFF, 0xF8, 0xFE, 0xFF, + 0xFF, 0xF3, 0xFD, 0xFF, 0xFF, 0xEE, 0xFE, 0xFD, 0xFF, 0xE9, 0xFE, 0xFA, 0xFF, 0xE3, 0xFF, 0xFC, 0xFF, 0xDE, 0xFF, + 0xFF, 0xFF, 0xD0, 0xFF, 0xFF, 0xFF, 0xC2, 0xFF, 0xFF, 0xFF, 0xD6, 0xFA, 0xFC, 0xFF, 0xF3, 0xFC, 0xFF, 0xFF, 0xBF, + 0xFF, 0xFE, 0xFF, 0xC4, 0xFA, 0xFC, 0xFF, 0x84, 0xFF, 0xFC, 0xFF, 0x8A, 0xFA, 0xFB, 0xFF, 0x79, 0xF6, 0xFA, 0xFF, + 0x68, 0xF2, 0xF9, 0xFF, 0x5E, 0xED, 0xF6, 0xFF, 0x53, 0xE8, 0xF4, 0xFF, 0x48, 0xE8, 0xF7, 0xFF, 0xA8, 0xBC, 0x87, + 0xFF, 0xFB, 0x9A, 0x10, 0xFF, 0xF1, 0x9B, 0x17, 0xFF, 0xF1, 0x9A, 0x14, 0xFF, 0xF1, 0x9A, 0x10, 0xFF, 0xF2, 0x99, + 0x13, 0xFF, 0xF3, 0x98, 0x16, 0xFF, 0xF1, 0x96, 0x14, 0xFF, 0xEF, 0x94, 0x12, 0xFF, 0xEF, 0x94, 0x12, 0xFF, 0xFC, + 0xD4, 0x61, 0xFF, 0xF9, 0xD4, 0x5D, 0xFF, 0xF6, 0xD4, 0x58, 0xFF, 0xF5, 0xD1, 0x55, 0xFF, 0xF5, 0xCE, 0x53, 0xFF, + 0xBD, 0x4D, 0x01, 0xFF, 0xCD, 0x6E, 0x02, 0xFF, 0xD3, 0x7B, 0x04, 0xFF, 0xDA, 0x87, 0x06, 0xFF, 0xE0, 0x96, 0x09, + 0xFF, 0xE6, 0xA5, 0x0C, 0xFF, 0xE9, 0xB0, 0x0A, 0xFF, 0xEB, 0xBA, 0x09, 0xFF, 0xF3, 0xC5, 0x15, 0xFF, 0xFB, 0xD0, + 0x21, 0xFF, 0xFB, 0xD9, 0x46, 0xFF, 0xFB, 0xE3, 0x6B, 0xFF, 0xFC, 0xE6, 0x81, 0xFF, 0xFD, 0xE9, 0x97, 0xFF, 0xFD, + 0xE8, 0x99, 0xFF, 0xFD, 0xE8, 0x9B, 0xFF, 0xFB, 0xE8, 0x9D, 0xFF, 0xF8, 0xE9, 0x9F, 0xFF, 0xFA, 0xEE, 0xA5, 0xFF, + 0xFC, 0xF2, 0xAB, 0xFF, 0xFB, 0xEF, 0xB0, 0xFF, 0xFB, 0xEB, 0xB4, 0xFF, 0xF8, 0xDD, 0x89, 0xFF, 0xF3, 0xB4, 0x27, + 0xFF, 0xF7, 0xBD, 0x3E, 0xFF, 0xF7, 0xAC, 0x1E, 0xFF, 0xF0, 0xE8, 0xBC, 0xFF, 0xF2, 0xFF, 0xFE, 0xFF, 0xF3, 0xFF, + 0xFD, 0xFF, 0xF4, 0xFE, 0xFD, 0xFF, 0xF2, 0xFE, 0xFD, 0xFF, 0xEF, 0xFE, 0xFE, 0xFF, 0xE9, 0xFE, 0xFE, 0xFF, 0xE3, + 0xFE, 0xFE, 0xFF, 0xDD, 0xFD, 0xFD, 0xFF, 0xD7, 0xFD, 0xFD, 0xFF, 0xC8, 0xFE, 0xFC, 0xFF, 0xB9, 0xFF, 0xFB, 0xFF, + 0x9F, 0xFE, 0xF5, 0xFF, 0xCE, 0xFF, 0xFF, 0xFF, 0xF5, 0xF9, 0xFF, 0xFF, 0xC8, 0xFF, 0xFF, 0xFF, 0xBD, 0xF7, 0xFC, + 0xFF, 0x7A, 0xF8, 0xF8, 0xFF, 0x6B, 0xF5, 0xF8, 0xFF, 0x5C, 0xF3, 0xF9, 0xFF, 0x55, 0xED, 0xF5, 0xFF, 0x4F, 0xE8, + 0xF1, 0xFF, 0x37, 0xEE, 0xF8, 0xFF, 0xE9, 0xA6, 0x3E, 0xFF, 0xF5, 0x9C, 0x17, 0xFF, 0xF4, 0x9D, 0x17, 0xFF, 0xF1, + 0x9C, 0x15, 0xFF, 0xEE, 0x9B, 0x14, 0xFF, 0xF1, 0x99, 0x15, 0xFF, 0xF4, 0x97, 0x17, 0xFF, 0xF2, 0x95, 0x15, 0xFF, + 0xF0, 0x93, 0x13, 0xFF, 0xF0, 0x93, 0x13, 0xFF, 0xFB, 0xD6, 0x66, 0xFF, 0xF4, 0xD1, 0x5E, 0xFF, 0xF6, 0xD3, 0x5F, + 0xFF, 0xF9, 0xD7, 0x59, 0xFF, 0xDA, 0x9D, 0x39, 0xFF, 0xBE, 0x58, 0x08, 0xFF, 0xCD, 0x6C, 0x08, 0xFF, 0xD2, 0x79, + 0x0C, 0xFF, 0xD7, 0x87, 0x0F, 0xFF, 0xDF, 0x96, 0x11, 0xFF, 0xE7, 0xA5, 0x13, 0xFF, 0xEA, 0xB0, 0x13, 0xFF, 0xF5, + 0xC2, 0x1B, 0xFF, 0xF3, 0xC8, 0x0F, 0xFF, 0xF9, 0xD0, 0x16, 0xFF, 0xF4, 0xD2, 0x27, 0xFF, 0xF7, 0xD6, 0x4B, 0xFF, + 0xF8, 0xDA, 0x60, 0xFF, 0xF9, 0xDE, 0x76, 0xFF, 0xF9, 0xDF, 0x7F, 0xFF, 0xFA, 0xE0, 0x87, 0xFF, 0xFB, 0xE4, 0x8C, + 0xFF, 0xFB, 0xE7, 0x91, 0xFF, 0xFC, 0xEA, 0x95, 0xFF, 0xFC, 0xED, 0x9A, 0xFF, 0xFB, 0xEA, 0x9E, 0xFF, 0xFA, 0xE7, + 0xA3, 0xFF, 0xFA, 0xCC, 0x5E, 0xFF, 0xF5, 0xB6, 0x2C, 0xFF, 0xF9, 0xB8, 0x24, 0xFF, 0xF5, 0xB1, 0x14, 0xFF, 0xFF, + 0xFB, 0xFF, 0xFF, 0xEC, 0xFF, 0xFD, 0xFF, 0xED, 0xFF, 0xFF, 0xFF, 0xED, 0xFF, 0xFF, 0xFF, 0xEC, 0xFE, 0xFF, 0xFF, + 0xEA, 0xFD, 0xFD, 0xFF, 0xE3, 0xFD, 0xFD, 0xFF, 0xDC, 0xFD, 0xFD, 0xFF, 0xD5, 0xFD, 0xFD, 0xFF, 0xCE, 0xFD, 0xFD, + 0xFF, 0xC1, 0xFC, 0xFC, 0xFF, 0xB4, 0xFB, 0xFB, 0xFF, 0x8D, 0xFA, 0xF5, 0xFF, 0x89, 0xFC, 0xF8, 0xFF, 0xCB, 0xFA, + 0xF8, 0xFF, 0xF1, 0xFE, 0xF7, 0xFF, 0xBD, 0xFF, 0xF9, 0xFF, 0xC2, 0xF9, 0xFA, 0xFF, 0xAC, 0xF8, 0xFB, 0xFF, 0x96, + 0xF7, 0xFC, 0xFF, 0x91, 0xF4, 0xF9, 0xFF, 0x8C, 0xF0, 0xF7, 0xFF, 0xA8, 0xE4, 0xFF, 0xFF, 0xF6, 0x95, 0x00, 0xFF, + 0xF6, 0x99, 0x07, 0xFF, 0xF7, 0x9D, 0x15, 0xFF, 0xF3, 0x9D, 0x15, 0xFF, 0xF0, 0x9C, 0x15, 0xFF, 0xF2, 0x9A, 0x15, + 0xFF, 0xF4, 0x98, 0x15, 0xFF, 0xF2, 0x97, 0x14, 0xFF, 0xF1, 0x95, 0x12, 0xFF, 0xF1, 0x95, 0x12, 0xFF, 0xFA, 0xD9, + 0x6A, 0xFF, 0xF0, 0xCE, 0x60, 0xFF, 0xF6, 0xD2, 0x66, 0xFF, 0xFD, 0xDD, 0x5C, 0xFF, 0xC0, 0x6C, 0x1E, 0xFF, 0xBE, + 0x63, 0x0E, 0xFF, 0xCD, 0x69, 0x0E, 0xFF, 0xD0, 0x78, 0x13, 0xFF, 0xD4, 0x87, 0x18, 0xFF, 0xDE, 0x96, 0x19, 0xFF, + 0xE9, 0xA6, 0x1A, 0xFF, 0xE3, 0xA8, 0x13, 0xFF, 0xEE, 0xBA, 0x1D, 0xFF, 0xEA, 0xBD, 0x0C, 0xFF, 0xF6, 0xC5, 0x22, + 0xFF, 0xEC, 0xC5, 0x13, 0xFF, 0xF2, 0xCA, 0x2A, 0xFF, 0xF3, 0xCF, 0x40, 0xFF, 0xF4, 0xD3, 0x56, 0xFF, 0xF5, 0xD6, + 0x65, 0xFF, 0xF7, 0xD9, 0x74, 0xFF, 0xFA, 0xDF, 0x7B, 0xFF, 0xFE, 0xE4, 0x82, 0xFF, 0xFD, 0xE6, 0x86, 0xFF, 0xFD, + 0xE7, 0x89, 0xFF, 0xFB, 0xE4, 0x8D, 0xFF, 0xF9, 0xE2, 0x92, 0xFF, 0xFC, 0xBB, 0x33, 0xFF, 0xF6, 0xB9, 0x31, 0xFF, + 0xFD, 0xBA, 0x31, 0xFF, 0xF7, 0xC4, 0x57, 0xFF, 0xDE, 0xFF, 0xF3, 0xFF, 0xE6, 0xFF, 0xFD, 0xFF, 0xE6, 0xFF, 0xFF, + 0xFF, 0xE6, 0xFF, 0xFF, 0xFF, 0xE6, 0xFE, 0xFF, 0xFF, 0xE5, 0xFC, 0xFD, 0xFF, 0xDD, 0xFC, 0xFD, 0xFF, 0xD5, 0xFC, + 0xFD, 0xFF, 0xCD, 0xFD, 0xFD, 0xFF, 0xC5, 0xFD, 0xFD, 0xFF, 0xBA, 0xFA, 0xFC, 0xFF, 0xAF, 0xF7, 0xFB, 0xFF, 0x9E, + 0xF9, 0xFE, 0xFF, 0x8D, 0xFB, 0xFF, 0xFF, 0x77, 0xFE, 0xFA, 0xFF, 0x7D, 0xFB, 0xF4, 0xFF, 0xD2, 0xF7, 0xF8, 0xFF, + 0xEE, 0xFF, 0xFD, 0xFF, 0xDF, 0xFD, 0xFE, 0xFF, 0xD0, 0xFB, 0xFE, 0xFF, 0xCD, 0xFA, 0xFD, 0xFF, 0xC9, 0xF9, 0xFC, + 0xFF, 0xCD, 0xD2, 0xA6, 0xFF, 0xEA, 0x98, 0x02, 0xFF, 0xEC, 0xA0, 0x1E, 0xFF, 0xF9, 0x9E, 0x13, 0xFF, 0xF6, 0x9E, + 0x15, 0xFF, 0xF2, 0x9D, 0x16, 0xFF, 0xF2, 0x9B, 0x15, 0xFF, 0xF3, 0x99, 0x14, 0xFF, 0xF2, 0x98, 0x13, 0xFF, 0xF1, + 0x97, 0x12, 0xFF, 0xF1, 0x97, 0x12, 0xFF, 0xF3, 0xD4, 0x55, 0xFF, 0xF0, 0xD1, 0x5B, 0xFF, 0xF6, 0xD6, 0x69, 0xFF, + 0xFF, 0xE2, 0x6D, 0xFF, 0xA7, 0x4F, 0x0B, 0xFF, 0xBE, 0x60, 0x11, 0xFF, 0xCD, 0x6A, 0x0F, 0xFF, 0xD5, 0x83, 0x1F, + 0xFF, 0xDC, 0x89, 0x1E, 0xFF, 0xDD, 0x8B, 0x0F, 0xFF, 0xE0, 0x9B, 0x1A, 0xFF, 0xF3, 0xB0, 0x22, 0xFF, 0xE0, 0xAA, + 0x1D, 0xFF, 0xDF, 0xAE, 0x13, 0xFF, 0xEE, 0xBC, 0x25, 0xFF, 0xE6, 0xB9, 0x14, 0xFF, 0xEF, 0xC1, 0x1F, 0xFF, 0xEF, + 0xC7, 0x25, 0xFF, 0xEE, 0xCD, 0x2B, 0xFF, 0xF0, 0xCD, 0x3C, 0xFF, 0xF3, 0xCE, 0x4E, 0xFF, 0xF8, 0xD6, 0x5B, 0xFF, + 0xFE, 0xDE, 0x68, 0xFF, 0xFC, 0xDD, 0x6D, 0xFF, 0xFA, 0xDC, 0x73, 0xFF, 0xF5, 0xDD, 0x75, 0xFF, 0xF6, 0xD3, 0x70, + 0xFF, 0xFB, 0xBA, 0x30, 0xFF, 0xF5, 0xB8, 0x33, 0xFF, 0xFE, 0xB5, 0x24, 0xFF, 0xE4, 0xDE, 0xA3, 0xFF, 0xDC, 0xFF, + 0xF9, 0xFF, 0xDC, 0xFD, 0xFD, 0xFF, 0xDC, 0xFE, 0xFE, 0xFF, 0xDB, 0xFF, 0xFF, 0xFF, 0xDA, 0xFE, 0xFE, 0xFF, 0xD9, + 0xFD, 0xFC, 0xFF, 0xD2, 0xFD, 0xFC, 0xFF, 0xCA, 0xFD, 0xFC, 0xFF, 0xC3, 0xFD, 0xFD, 0xFF, 0xBB, 0xFD, 0xFD, 0xFF, + 0xAF, 0xFB, 0xFC, 0xFF, 0xA2, 0xFA, 0xFC, 0xFF, 0x92, 0xFA, 0xFD, 0xFF, 0x83, 0xFB, 0xFE, 0xFF, 0x6A, 0xFD, 0xFB, + 0xFF, 0x60, 0xFC, 0xF8, 0xFF, 0x5D, 0xF8, 0xFA, 0xFF, 0x4C, 0xF7, 0xFC, 0xFF, 0x76, 0xF4, 0xFD, 0xFF, 0xA0, 0xF2, + 0xFE, 0xFF, 0x87, 0xEC, 0xF5, 0xFF, 0x5F, 0xE3, 0xF7, 0xFF, 0xB4, 0xBB, 0x50, 0xFF, 0xFE, 0x99, 0x0C, 0xFF, 0xF7, + 0x9E, 0x1A, 0xFF, 0xF6, 0x9D, 0x15, 0xFF, 0xF4, 0x9D, 0x15, 0xFF, 0xF2, 0x9C, 0x15, 0xFF, 0xF2, 0x9B, 0x14, 0xFF, + 0xF1, 0x99, 0x12, 0xFF, 0xF1, 0x99, 0x12, 0xFF, 0xF1, 0x99, 0x12, 0xFF, 0xF1, 0x99, 0x12, 0xFF, 0xFD, 0xD3, 0x66, + 0xFF, 0xF9, 0xD6, 0x69, 0xFF, 0xF5, 0xD9, 0x6B, 0xFF, 0xDC, 0xB6, 0x4E, 0xFF, 0xAE, 0x52, 0x18, 0xFF, 0xC6, 0x66, + 0x1C, 0xFF, 0xBD, 0x5A, 0x00, 0xFF, 0xCA, 0x7D, 0x1A, 0xFF, 0xD4, 0x7B, 0x15, 0xFF, 0xDC, 0x81, 0x04, 0xFF, 0xE7, + 0xA0, 0x2A, 0xFF, 0xD3, 0x88, 0x00, 0xFF, 0xE2, 0xAB, 0x2D, 0xFF, 0xDC, 0xA7, 0x23, 0xFF, 0xE6, 0xB3, 0x29, 0xFF, + 0xE0, 0xAD, 0x16, 0xFF, 0xEB, 0xB7, 0x14, 0xFF, 0xEA, 0xB9, 0x15, 0xFF, 0xE9, 0xBA, 0x16, 0xFF, 0xEC, 0xBE, 0x1F, + 0xFF, 0xEE, 0xC2, 0x28, 0xFF, 0xF6, 0xCD, 0x3B, 0xFF, 0xFE, 0xD8, 0x4E, 0xFF, 0xFB, 0xD5, 0x55, 0xFF, 0xF7, 0xD1, + 0x5D, 0xFF, 0xEF, 0xD6, 0x5D, 0xFF, 0xF3, 0xC4, 0x4E, 0xFF, 0xFA, 0xB9, 0x2E, 0xFF, 0xF4, 0xB8, 0x35, 0xFF, 0xFF, + 0xB1, 0x17, 0xFF, 0xD1, 0xF7, 0xF0, 0xFF, 0xDA, 0xFF, 0xFE, 0xFF, 0xD2, 0xFC, 0xFC, 0xFF, 0xD1, 0xFD, 0xFD, 0xFF, + 0xD0, 0xFE, 0xFD, 0xFF, 0xCF, 0xFD, 0xFC, 0xFF, 0xCD, 0xFD, 0xFB, 0xFF, 0xC6, 0xFD, 0xFC, 0xFF, 0xBF, 0xFD, 0xFC, + 0xFF, 0xB9, 0xFD, 0xFD, 0xFF, 0xB2, 0xFC, 0xFD, 0xFF, 0xA3, 0xFC, 0xFD, 0xFF, 0x95, 0xFC, 0xFD, 0xFF, 0x87, 0xFC, + 0xFC, 0xFF, 0x78, 0xFB, 0xFC, 0xFF, 0x6C, 0xFA, 0xFD, 0xFF, 0x5F, 0xF8, 0xFD, 0xFF, 0x45, 0xF6, 0xF9, 0xFF, 0x47, + 0xEF, 0xF5, 0xFF, 0x37, 0xE9, 0xF2, 0xFF, 0x28, 0xE4, 0xEE, 0xFF, 0x24, 0xE3, 0xED, 0xFF, 0x05, 0xDD, 0xFF, 0xFF, + 0xFF, 0x99, 0x03, 0xFF, 0xF5, 0xA0, 0x16, 0xFF, 0xF4, 0x9E, 0x16, 0xFF, 0xF3, 0x9C, 0x16, 0xFF, 0xF2, 0x9C, 0x15, + 0xFF, 0xF2, 0x9B, 0x14, 0xFF, 0xF1, 0x9A, 0x12, 0xFF, 0xEF, 0x99, 0x10, 0xFF, 0xF0, 0x9A, 0x11, 0xFF, 0xF1, 0x9B, + 0x12, 0xFF, 0xF1, 0x9B, 0x12, 0xFF, 0xFB, 0xD5, 0x65, 0xFF, 0xFC, 0xD4, 0x70, 0xFF, 0xFF, 0xE2, 0x77, 0xFF, 0xC7, + 0x86, 0x3B, 0xFF, 0xBA, 0x5F, 0x23, 0xFF, 0xBA, 0x6A, 0x1E, 0xFF, 0xD0, 0x7A, 0x21, 0xFF, 0xD7, 0x87, 0x27, 0xFF, + 0xD6, 0x8C, 0x24, 0xFF, 0xD3, 0x8D, 0x1D, 0xFF, 0xD0, 0x88, 0x21, 0xFF, 0xEA, 0xA0, 0x2B, 0xFF, 0xD5, 0x95, 0x21, + 0xFF, 0xEE, 0xA9, 0x30, 0xFF, 0xDA, 0xA0, 0x20, 0xFF, 0xDD, 0xA1, 0x16, 0xFF, 0xDF, 0xA1, 0x0D, 0xFF, 0xE2, 0xAB, + 0x19, 0xFF, 0xEB, 0xB1, 0x12, 0xFF, 0xED, 0xB8, 0x0F, 0xFF, 0xEE, 0xBF, 0x0C, 0xFF, 0xEF, 0xC1, 0x1C, 0xFF, 0xF0, + 0xC3, 0x2C, 0xFF, 0xF1, 0xC4, 0x36, 0xFF, 0xF3, 0xC5, 0x40, 0xFF, 0xF1, 0xC9, 0x46, 0xFF, 0xF6, 0xC2, 0x45, 0xFF, + 0xF9, 0xBA, 0x31, 0xFF, 0xF6, 0xB7, 0x30, 0xFF, 0xF4, 0xC1, 0x4B, 0xFF, 0xC0, 0xFA, 0xF5, 0xFF, 0xC6, 0xFF, 0xFD, + 0xFF, 0xC4, 0xFC, 0xFC, 0xFF, 0xC4, 0xFC, 0xFD, 0xFF, 0xC3, 0xFD, 0xFD, 0xFF, 0xC2, 0xFD, 0xFC, 0xFF, 0xC1, 0xFC, + 0xFB, 0xFF, 0xB5, 0xF8, 0xF8, 0xFF, 0xB2, 0xFD, 0xFC, 0xFF, 0xAA, 0xFC, 0xFC, 0xFF, 0xA3, 0xFC, 0xFC, 0xFF, 0x95, + 0xFB, 0xFC, 0xFF, 0x88, 0xFB, 0xFB, 0xFF, 0x7A, 0xFB, 0xFB, 0xFF, 0x6D, 0xFA, 0xFB, 0xFF, 0x61, 0xF8, 0xFB, 0xFF, + 0x56, 0xF6, 0xFC, 0xFF, 0x44, 0xF2, 0xF8, 0xFF, 0x40, 0xEA, 0xF4, 0xFF, 0x31, 0xE5, 0xEF, 0xFF, 0x23, 0xDF, 0xEA, + 0xFF, 0x1C, 0xE0, 0xFA, 0xFF, 0x44, 0xD1, 0xC5, 0xFF, 0xFE, 0xA1, 0x0A, 0xFF, 0xF9, 0x9F, 0x15, 0xFF, 0xF5, 0x9F, + 0x17, 0xFF, 0xF2, 0x9F, 0x18, 0xFF, 0xF2, 0x9E, 0x16, 0xFF, 0xF2, 0x9D, 0x15, 0xFF, 0xF5, 0x9F, 0x16, 0xFF, 0xF8, + 0xA0, 0x18, 0xFF, 0xF5, 0x9D, 0x15, 0xFF, 0xF2, 0x9A, 0x12, 0xFF, 0xF2, 0x9A, 0x12, 0xFF, 0xF9, 0xD7, 0x64, 0xFF, + 0xF6, 0xD1, 0x64, 0xFF, 0xFF, 0xE6, 0x5D, 0xFF, 0x9A, 0x43, 0x03, 0xFF, 0xA5, 0x4B, 0x0D, 0xFF, 0xCC, 0x7B, 0x30, + 0xFF, 0xC0, 0x54, 0x04, 0xFF, 0xC9, 0x53, 0x00, 0xFF, 0xC5, 0x67, 0x03, 0xFF, 0xC9, 0x87, 0x25, 0xFF, 0xCA, 0x80, + 0x28, 0xFF, 0xD0, 0x88, 0x27, 0xFF, 0xD7, 0x90, 0x26, 0xFF, 0xC9, 0x74, 0x06, 0xFF, 0xCF, 0x8D, 0x17, 0xFF, 0xE1, + 0x9C, 0x1E, 0xFF, 0xE3, 0x9B, 0x16, 0xFF, 0xDA, 0x9E, 0x1E, 0xFF, 0xDD, 0x97, 0x00, 0xFF, 0xE6, 0xA4, 0x03, 0xFF, + 0xEE, 0xB1, 0x07, 0xFF, 0xE8, 0xB0, 0x08, 0xFF, 0xE2, 0xAE, 0x09, 0xFF, 0xE8, 0xB4, 0x16, 0xFF, 0xEF, 0xB9, 0x23, + 0xFF, 0xF4, 0xBD, 0x30, 0xFF, 0xF9, 0xC1, 0x3C, 0xFF, 0xF9, 0xBB, 0x34, 0xFF, 0xF9, 0xB6, 0x2C, 0xFF, 0xE8, 0xD2, + 0x80, 0xFF, 0xAE, 0xFD, 0xFA, 0xFF, 0xB2, 0xFC, 0xFB, 0xFF, 0xB6, 0xFB, 0xFC, 0xFF, 0xB6, 0xFC, 0xFC, 0xFF, 0xB6, + 0xFC, 0xFD, 0xFF, 0xB5, 0xFC, 0xFC, 0xFF, 0xB4, 0xFC, 0xFB, 0xFF, 0xA4, 0xF4, 0xF3, 0xFF, 0xA5, 0xFC, 0xFC, 0xFF, + 0x9C, 0xFC, 0xFC, 0xFF, 0x93, 0xFB, 0xFC, 0xFF, 0x87, 0xFB, 0xFB, 0xFF, 0x7A, 0xFA, 0xFA, 0xFF, 0x6D, 0xFA, 0xFA, + 0xFF, 0x61, 0xF9, 0xF9, 0xFF, 0x57, 0xF7, 0xFA, 0xFF, 0x4E, 0xF4, 0xFA, 0xFF, 0x44, 0xED, 0xF6, 0xFF, 0x3A, 0xE6, + 0xF3, 0xFF, 0x2C, 0xE1, 0xED, 0xFF, 0x1E, 0xDB, 0xE7, 0xFF, 0x19, 0xD1, 0xFF, 0xFF, 0x8F, 0xB0, 0x77, 0xFF, 0xFD, + 0xA0, 0x09, 0xFF, 0xFD, 0x9D, 0x14, 0xFF, 0xF7, 0x9F, 0x17, 0xFF, 0xF2, 0xA2, 0x1A, 0xFF, 0xF2, 0xA0, 0x18, 0xFF, + 0xF2, 0x9E, 0x16, 0xFF, 0xF1, 0x9B, 0x13, 0xFF, 0xF0, 0x98, 0x10, 0xFF, 0xF1, 0x99, 0x11, 0xFF, 0xF2, 0x9A, 0x12, + 0xFF, 0xF2, 0x9A, 0x12, 0xFF, 0xF7, 0xD4, 0x5F, 0xFF, 0xFC, 0xDC, 0x67, 0xFF, 0xF0, 0xC1, 0x4F, 0xFF, 0x8A, 0x2B, + 0x00, 0xFF, 0xBF, 0x6A, 0x2D, 0xFF, 0xAC, 0x47, 0x05, 0xFF, 0xB9, 0x43, 0x00, 0xFF, 0xC4, 0x85, 0x35, 0xFF, 0xBB, + 0x4D, 0x06, 0xFF, 0xC3, 0x61, 0x13, 0xFF, 0xCA, 0x70, 0x2C, 0xFF, 0xB3, 0x5A, 0x0F, 0xFF, 0xCC, 0x74, 0x21, 0xFF, + 0xC2, 0x69, 0x11, 0xFF, 0xC2, 0x78, 0x18, 0xFF, 0xD0, 0x80, 0x1C, 0xFF, 0xD6, 0x7F, 0x18, 0xFF, 0xD3, 0x86, 0x1A, + 0xFF, 0xDD, 0x8F, 0x10, 0xFF, 0xDA, 0x8C, 0x02, 0xFF, 0xE6, 0x99, 0x04, 0xFF, 0xE1, 0x9B, 0x04, 0xFF, 0xDC, 0x9D, + 0x04, 0xFF, 0xE1, 0xA6, 0x05, 0xFF, 0xDD, 0xA6, 0x00, 0xFF, 0xEE, 0xB6, 0x1F, 0xFF, 0xF6, 0xBD, 0x39, 0xFF, 0xF6, + 0xBB, 0x38, 0xFF, 0xFC, 0xB5, 0x24, 0xFF, 0xB8, 0xE8, 0xBF, 0xFF, 0xA2, 0xFE, 0xFA, 0xFF, 0xA5, 0xFC, 0xFB, 0xFF, + 0xA8, 0xFA, 0xFB, 0xFF, 0xA7, 0xFB, 0xFC, 0xFF, 0xA6, 0xFC, 0xFC, 0xFF, 0xA2, 0xFB, 0xFA, 0xFF, 0x9F, 0xFA, 0xF8, + 0xFF, 0x94, 0xF7, 0xF5, 0xFF, 0x92, 0xFB, 0xFA, 0xFF, 0x8B, 0xFB, 0xFA, 0xFF, 0x84, 0xFB, 0xFB, 0xFF, 0x78, 0xFA, + 0xFA, 0xFF, 0x6D, 0xF9, 0xF9, 0xFF, 0x61, 0xF9, 0xF9, 0xFF, 0x55, 0xF8, 0xF8, 0xFF, 0x4B, 0xF6, 0xF8, 0xFF, 0x41, + 0xF3, 0xF9, 0xFF, 0x39, 0xEC, 0xF5, 0xFF, 0x30, 0xE4, 0xF1, 0xFF, 0x28, 0xDD, 0xEE, 0xFF, 0x1F, 0xD6, 0xEB, 0xFF, + 0x00, 0xD9, 0xEE, 0xFF, 0xE4, 0xA6, 0x32, 0xFF, 0xFF, 0xA4, 0x18, 0xFF, 0xF3, 0xA4, 0x28, 0xFF, 0xF4, 0xA2, 0x20, + 0xFF, 0xF4, 0xA0, 0x18, 0xFF, 0xF4, 0x9E, 0x16, 0xFF, 0xF3, 0x9D, 0x15, 0xFF, 0xF2, 0x9B, 0x13, 0xFF, 0xF2, 0x99, + 0x11, 0xFF, 0xF2, 0x99, 0x11, 0xFF, 0xF3, 0x9A, 0x12, 0xFF, 0xF3, 0x9A, 0x12, 0xFF, 0xF5, 0xD1, 0x5B, 0xFF, 0xFA, + 0xDF, 0x62, 0xFF, 0xCC, 0x8C, 0x30, 0xFF, 0x91, 0x2C, 0x05, 0xFF, 0x9A, 0x49, 0x0E, 0xFF, 0x9E, 0x36, 0x00, 0xFF, + 0x96, 0x38, 0x00, 0xFF, 0xB6, 0x5E, 0x14, 0xFF, 0xD9, 0xAA, 0x53, 0xFF, 0xE2, 0xA6, 0x30, 0xFF, 0xEE, 0xBB, 0x44, + 0xFF, 0xFF, 0xDD, 0x6D, 0xFF, 0xF9, 0xDE, 0x76, 0xFF, 0xF9, 0xD9, 0x6C, 0xFF, 0xF8, 0xD4, 0x63, 0xFF, 0xF3, 0xC4, + 0x54, 0xFF, 0xED, 0xB4, 0x44, 0xFF, 0xD5, 0x8E, 0x23, 0xFF, 0xCE, 0x77, 0x11, 0xFF, 0xC6, 0x6C, 0x00, 0xFF, 0xDE, + 0x81, 0x02, 0xFF, 0xDA, 0x87, 0x00, 0xFF, 0xD6, 0x8D, 0x00, 0xFF, 0xE1, 0x9B, 0x06, 0xFF, 0xDC, 0x98, 0x00, 0xFF, + 0xF0, 0xB1, 0x22, 0xFF, 0xF4, 0xB9, 0x35, 0xFF, 0xF3, 0xBC, 0x3C, 0xFF, 0xFF, 0xB4, 0x1B, 0xFF, 0x89, 0xFD, 0xFE, + 0xFF, 0x95, 0xFF, 0xFA, 0xFF, 0x97, 0xFC, 0xFA, 0xFF, 0x99, 0xF8, 0xFB, 0xFF, 0x97, 0xFB, 0xFB, 0xFF, 0x95, 0xFD, + 0xFC, 0xFF, 0x8F, 0xFB, 0xF9, 0xFF, 0x89, 0xF9, 0xF6, 0xFF, 0x84, 0xF9, 0xF7, 0xFF, 0x7F, 0xF9, 0xF8, 0xFF, 0x7A, + 0xFA, 0xF9, 0xFF, 0x75, 0xFA, 0xFA, 0xFF, 0x6A, 0xF9, 0xF9, 0xFF, 0x5F, 0xF9, 0xF8, 0xFF, 0x54, 0xF8, 0xF7, 0xFF, + 0x49, 0xF7, 0xF6, 0xFF, 0x3F, 0xF5, 0xF7, 0xFF, 0x35, 0xF2, 0xF7, 0xFF, 0x2E, 0xEB, 0xF3, 0xFF, 0x27, 0xE3, 0xF0, + 0xFF, 0x24, 0xDA, 0xF0, 0xFF, 0x21, 0xD1, 0xF0, 0xFF, 0x23, 0xC9, 0xE8, 0xFF, 0xFF, 0x9B, 0x03, 0xFF, 0xF6, 0xA3, + 0x20, 0xFF, 0xF6, 0xA1, 0x16, 0xFF, 0xF7, 0x9F, 0x16, 0xFF, 0xF7, 0x9D, 0x16, 0xFF, 0xF6, 0x9C, 0x15, 0xFF, 0xF5, + 0x9B, 0x14, 0xFF, 0xF4, 0x9A, 0x13, 0xFF, 0xF3, 0x99, 0x12, 0xFF, 0xF3, 0x99, 0x12, 0xFF, 0xF3, 0x99, 0x12, 0xFF, + 0xF3, 0x99, 0x12, 0xFF, 0xFE, 0xE2, 0x5A, 0xFF, 0xFF, 0xD7, 0x64, 0xFF, 0x97, 0x46, 0x0C, 0xFF, 0x82, 0x25, 0x00, + 0xFF, 0xB7, 0x6A, 0x1D, 0xFF, 0xDE, 0xA2, 0x39, 0xFF, 0xFF, 0xE5, 0x5E, 0xFF, 0xFD, 0xD8, 0x51, 0xFF, 0xF5, 0xD6, + 0x4C, 0xFF, 0xF4, 0xCC, 0x48, 0xFF, 0xF6, 0xCF, 0x5E, 0xFF, 0xFE, 0xD9, 0x67, 0xFF, 0xF7, 0xD3, 0x61, 0xFF, 0xF8, + 0xD1, 0x5A, 0xFF, 0xFE, 0xCB, 0x41, 0xFF, 0xFE, 0xCE, 0x53, 0xFF, 0xF5, 0xCF, 0x51, 0xFF, 0xF6, 0xCA, 0x49, 0xFF, + 0xFF, 0xCD, 0x49, 0xFF, 0xFF, 0xB9, 0x3F, 0xFF, 0xDA, 0x7E, 0x0E, 0xFF, 0xC2, 0x69, 0x00, 0xFF, 0xDA, 0x84, 0x05, + 0xFF, 0xD5, 0x84, 0x01, 0xFF, 0xD8, 0x8C, 0x05, 0xFF, 0xF8, 0xBE, 0x37, 0xFF, 0xF6, 0xBE, 0x3A, 0xFF, 0xFF, 0xBD, + 0x34, 0xFF, 0xE1, 0xC6, 0x61, 0xFF, 0x79, 0xF3, 0xFB, 0xFF, 0x82, 0xFA, 0xF7, 0xFF, 0x83, 0xF9, 0xF9, 0xFF, 0x83, + 0xF7, 0xFA, 0xFF, 0x7F, 0xF7, 0xF8, 0xFF, 0x7B, 0xF6, 0xF6, 0xFF, 0x79, 0xF8, 0xF7, 0xFF, 0x77, 0xFA, 0xF8, 0xFF, + 0x71, 0xF9, 0xF7, 0xFF, 0x6C, 0xF8, 0xF7, 0xFF, 0x6B, 0xFC, 0xFB, 0xFF, 0x63, 0xF8, 0xF8, 0xFF, 0x5A, 0xF7, 0xF8, + 0xFF, 0x52, 0xF7, 0xF7, 0xFF, 0x48, 0xF5, 0xF7, 0xFF, 0x3F, 0xF4, 0xF6, 0xFF, 0x37, 0xF2, 0xF5, 0xFF, 0x2F, 0xEF, + 0xF4, 0xFF, 0x27, 0xE6, 0xF1, 0xFF, 0x20, 0xDD, 0xEE, 0xFF, 0x1F, 0xD6, 0xEA, 0xFF, 0x10, 0xCC, 0xF1, 0xFF, 0x6C, + 0xB9, 0x9D, 0xFF, 0xFE, 0x9F, 0x0B, 0xFF, 0xF8, 0xA3, 0x1A, 0xFF, 0xF9, 0xA2, 0x16, 0xFF, 0xF8, 0xA0, 0x16, 0xFF, + 0xF7, 0x9E, 0x16, 0xFF, 0xF7, 0x9D, 0x15, 0xFF, 0xF6, 0x9B, 0x14, 0xFF, 0xF5, 0x9A, 0x14, 0xFF, 0xF4, 0x99, 0x13, + 0xFF, 0xF4, 0x99, 0x13, 0xFF, 0xF4, 0x99, 0x13, 0xFF, 0xF4, 0x99, 0x13, 0xFF, 0xF8, 0xD8, 0x60, 0xFF, 0xF7, 0xD8, + 0x5A, 0xFF, 0xD7, 0xAD, 0x4B, 0xFF, 0xFF, 0xDD, 0x68, 0xFF, 0xF7, 0xDC, 0x55, 0xFF, 0xFC, 0xD6, 0x55, 0xFF, 0xFF, + 0xCF, 0x54, 0xFF, 0xFF, 0xD5, 0x5C, 0xFF, 0xF1, 0xCA, 0x53, 0xFF, 0xF5, 0xCA, 0x4A, 0xFF, 0xF9, 0xC9, 0x42, 0xFF, + 0xF7, 0xC9, 0x47, 0xFF, 0xF5, 0xC8, 0x4B, 0xFF, 0xF0, 0xCF, 0x5C, 0xFF, 0xF8, 0xCC, 0x46, 0xFF, 0xFF, 0xCA, 0x55, + 0xFF, 0xF9, 0xC3, 0x3E, 0xFF, 0xFB, 0xC2, 0x43, 0xFF, 0xFC, 0xC1, 0x48, 0xFF, 0xF3, 0xBE, 0x3E, 0xFF, 0xFA, 0xCB, + 0x43, 0xFF, 0xFC, 0xB3, 0x37, 0xFF, 0xDD, 0x7B, 0x0B, 0xFF, 0xC8, 0x6D, 0x00, 0xFF, 0xD4, 0x7F, 0x0D, 0xFF, 0xFF, + 0xCC, 0x4D, 0xFF, 0xF9, 0xC2, 0x3E, 0xFF, 0xFF, 0xC1, 0x2D, 0xFF, 0xA7, 0xDE, 0xA7, 0xFF, 0x5B, 0xEB, 0xF7, 0xFF, + 0x6F, 0xF5, 0xF4, 0xFF, 0x6E, 0xF5, 0xF7, 0xFF, 0x6D, 0xF6, 0xF9, 0xFF, 0x67, 0xF3, 0xF5, 0xFF, 0x60, 0xF0, 0xF1, + 0xFF, 0x62, 0xF6, 0xF5, 0xFF, 0x65, 0xFC, 0xFA, 0xFF, 0x5E, 0xF9, 0xF8, 0xFF, 0x58, 0xF6, 0xF5, 0xFF, 0x5D, 0xFE, + 0xFE, 0xFF, 0x52, 0xF6, 0xF6, 0xFF, 0x4B, 0xF5, 0xF6, 0xFF, 0x44, 0xF5, 0xF7, 0xFF, 0x3D, 0xF3, 0xF6, 0xFF, 0x35, + 0xF1, 0xF5, 0xFF, 0x2F, 0xEE, 0xF3, 0xFF, 0x28, 0xEB, 0xF0, 0xFF, 0x20, 0xE1, 0xEE, 0xFF, 0x18, 0xD8, 0xEC, 0xFF, + 0x1A, 0xD2, 0xE4, 0xFF, 0x00, 0xC6, 0xF3, 0xFF, 0xB4, 0xA8, 0x51, 0xFF, 0xFA, 0xA3, 0x13, 0xFF, 0xFB, 0xA3, 0x15, + 0xFF, 0xFB, 0xA3, 0x17, 0xFF, 0xFA, 0xA0, 0x16, 0xFF, 0xF8, 0x9E, 0x16, 0xFF, 0xF7, 0x9D, 0x15, 0xFF, 0xF7, 0x9C, + 0x15, 0xFF, 0xF6, 0x9A, 0x14, 0xFF, 0xF6, 0x99, 0x14, 0xFF, 0xF6, 0x99, 0x14, 0xFF, 0xF6, 0x99, 0x14, 0xFF, 0xF6, + 0x99, 0x14, 0xFF, 0xF1, 0xCE, 0x58, 0xFF, 0xFD, 0xDC, 0x59, 0xFF, 0xF8, 0xD5, 0x55, 0xFF, 0xFF, 0xDD, 0x5D, 0xFF, + 0xF3, 0xCE, 0x4D, 0xFF, 0xF3, 0xCB, 0x4C, 0xFF, 0xF3, 0xC8, 0x4C, 0xFF, 0xFB, 0xD1, 0x56, 0xFF, 0xFC, 0xD3, 0x58, + 0xFF, 0xFB, 0xCE, 0x4F, 0xFF, 0xFA, 0xC9, 0x47, 0xFF, 0xF9, 0xC8, 0x48, 0xFF, 0xF8, 0xC7, 0x49, 0xFF, 0xF5, 0xCA, + 0x50, 0xFF, 0xF9, 0xC9, 0x44, 0xFF, 0xFD, 0xC8, 0x4B, 0xFF, 0xF9, 0xC5, 0x3E, 0xFF, 0xFA, 0xC3, 0x40, 0xFF, 0xFA, + 0xC2, 0x43, 0xFF, 0xF3, 0xBD, 0x3A, 0xFF, 0xF3, 0xBF, 0x3A, 0xFF, 0xFC, 0xC7, 0x3E, 0xFF, 0xFC, 0xC6, 0x3A, 0xFF, + 0xE2, 0xA1, 0x24, 0xFF, 0xD9, 0x8C, 0x1F, 0xFF, 0xF6, 0xB9, 0x36, 0xFF, 0xFA, 0xBB, 0x26, 0xFF, 0xF3, 0xBA, 0x29, + 0xFF, 0x56, 0xD7, 0xCD, 0xFF, 0x5A, 0xFA, 0xF9, 0xFF, 0x48, 0xDA, 0xD9, 0xFF, 0x58, 0xEC, 0xED, 0xFF, 0x5F, 0xF5, + 0xF9, 0xFF, 0x4D, 0xEF, 0xF1, 0xFF, 0x3A, 0xE9, 0xE9, 0xFF, 0x45, 0xEE, 0xED, 0xFF, 0x50, 0xF4, 0xF2, 0xFF, 0x4E, + 0xF3, 0xF9, 0xFF, 0x44, 0xF0, 0xED, 0xFF, 0x4B, 0xF8, 0xFE, 0xFF, 0x41, 0xF5, 0xF4, 0xFF, 0x3C, 0xF4, 0xF5, 0xFF, + 0x37, 0xF2, 0xF6, 0xFF, 0x31, 0xF0, 0xF5, 0xFF, 0x2A, 0xEF, 0xF4, 0xFF, 0x26, 0xEA, 0xF2, 0xFF, 0x22, 0xE6, 0xF0, + 0xFF, 0x1C, 0xDB, 0xEE, 0xFF, 0x17, 0xD0, 0xEC, 0xFF, 0x08, 0xCC, 0xF0, 0xFF, 0x08, 0xC4, 0xF5, 0xFF, 0xFF, 0xAD, + 0x0E, 0xFF, 0xF9, 0xA1, 0x16, 0xFF, 0xF8, 0xA1, 0x17, 0xFF, 0xF8, 0xA1, 0x18, 0xFF, 0xF8, 0xA0, 0x17, 0xFF, 0xF8, + 0x9E, 0x16, 0xFF, 0xF8, 0x9D, 0x16, 0xFF, 0xF8, 0x9C, 0x15, 0xFF, 0xF7, 0x9A, 0x15, 0xFF, 0xF7, 0x99, 0x14, 0xFF, + 0xF7, 0x99, 0x14, 0xFF, 0xF7, 0x99, 0x14, 0xFF, 0xF7, 0x99, 0x14, 0xFF, 0xFB, 0xD5, 0x60, 0xFF, 0xFA, 0xD3, 0x5A, + 0xFF, 0xFA, 0xD1, 0x55, 0xFF, 0xFC, 0xD0, 0x55, 0xFF, 0xFE, 0xCF, 0x54, 0xFF, 0xFA, 0xD0, 0x54, 0xFF, 0xF6, 0xD1, + 0x53, 0xFF, 0xF6, 0xCE, 0x50, 0xFF, 0xF7, 0xCB, 0x4E, 0xFF, 0xF9, 0xCA, 0x4C, 0xFF, 0xFA, 0xCA, 0x4B, 0xFF, 0xFB, + 0xC8, 0x49, 0xFF, 0xFB, 0xC6, 0x47, 0xFF, 0xFB, 0xC6, 0x45, 0xFF, 0xFA, 0xC6, 0x43, 0xFF, 0xF9, 0xC6, 0x41, 0xFF, + 0xF8, 0xC6, 0x3F, 0xFF, 0xF8, 0xC4, 0x3E, 0xFF, 0xF9, 0xC3, 0x3E, 0xFF, 0xFB, 0xC3, 0x3F, 0xFF, 0xFD, 0xC3, 0x40, + 0xFF, 0xF2, 0xBA, 0x38, 0xFF, 0xF7, 0xC0, 0x3F, 0xFF, 0xFA, 0xC2, 0x3D, 0xFF, 0xFD, 0xC5, 0x3A, 0xFF, 0xF6, 0xC1, + 0x37, 0xFF, 0xEF, 0xBD, 0x34, 0xFF, 0xEF, 0xBB, 0x2D, 0xFF, 0x21, 0xD6, 0xDD, 0xFF, 0x37, 0xDC, 0xBF, 0xFF, 0x41, + 0xE0, 0xDD, 0xFF, 0x49, 0xEA, 0xEB, 0xFF, 0x41, 0xE3, 0xEA, 0xFF, 0x41, 0xE8, 0xED, 0xFF, 0x41, 0xED, 0xF1, 0xFF, + 0x3F, 0xEC, 0xED, 0xFF, 0x3C, 0xEB, 0xEA, 0xFF, 0x3E, 0xEE, 0xFA, 0xFF, 0x31, 0xEB, 0xE5, 0xFF, 0x39, 0xF2, 0xFE, + 0xFF, 0x31, 0xF4, 0xF1, 0xFF, 0x2D, 0xF2, 0xF3, 0xFF, 0x29, 0xF0, 0xF5, 0xFF, 0x25, 0xEE, 0xF4, 0xFF, 0x20, 0xEC, + 0xF4, 0xFF, 0x1E, 0xE6, 0xF1, 0xFF, 0x1C, 0xE1, 0xEF, 0xFF, 0x19, 0xD5, 0xED, 0xFF, 0x16, 0xC9, 0xEB, 0xFF, 0x0B, + 0xC3, 0xDE, 0xFF, 0x39, 0xBE, 0xBA, 0xFF, 0xF8, 0x98, 0x07, 0xFF, 0xF8, 0x9F, 0x19, 0xFF, 0xF6, 0x9F, 0x19, 0xFF, + 0xF5, 0x9F, 0x19, 0xFF, 0xF7, 0x9F, 0x18, 0xFF, 0xF9, 0x9F, 0x16, 0xFF, 0xF9, 0x9D, 0x16, 0xFF, 0xF9, 0x9C, 0x16, + 0xFF, 0xF9, 0x9A, 0x16, 0xFF, 0xF8, 0x99, 0x15, 0xFF, 0xF8, 0x99, 0x15, 0xFF, 0xF8, 0x99, 0x15, 0xFF, 0xF8, 0x99, + 0x15, 0xFF, 0xF8, 0xD4, 0x5C, 0xFF, 0xF8, 0xD4, 0x58, 0xFF, 0xF8, 0xD3, 0x54, 0xFF, 0xF9, 0xD1, 0x56, 0xFF, 0xFA, + 0xD0, 0x57, 0xFF, 0xF8, 0xD0, 0x55, 0xFF, 0xF5, 0xD0, 0x53, 0xFF, 0xF7, 0xCE, 0x50, 0xFF, 0xF9, 0xCC, 0x4D, 0xFF, + 0xF9, 0xCB, 0x4C, 0xFF, 0xFA, 0xCA, 0x4A, 0xFF, 0xFB, 0xC8, 0x48, 0xFF, 0xFB, 0xC7, 0x46, 0xFF, 0xFA, 0xC6, 0x44, + 0xFF, 0xFA, 0xC6, 0x43, 0xFF, 0xF9, 0xC6, 0x41, 0xFF, 0xF9, 0xC6, 0x3F, 0xFF, 0xF9, 0xC4, 0x3E, 0xFF, 0xF9, 0xC3, + 0x3D, 0xFF, 0xFA, 0xC2, 0x3E, 0xFF, 0xFB, 0xC1, 0x3E, 0xFF, 0xF5, 0xBD, 0x3A, 0xFF, 0xF7, 0xC1, 0x3D, 0xFF, 0xF8, + 0xC0, 0x3A, 0xFF, 0xF9, 0xC0, 0x37, 0xFF, 0xFF, 0xBD, 0x36, 0xFF, 0xFF, 0xBB, 0x35, 0xFF, 0x84, 0xBA, 0x66, 0xFF, + 0x18, 0xD2, 0xAF, 0xFF, 0x19, 0xD2, 0xB3, 0xFF, 0x39, 0xDA, 0xD2, 0xFF, 0x3D, 0xDC, 0xE1, 0xFF, 0x31, 0xD4, 0xD5, + 0xFF, 0x37, 0xDF, 0xE1, 0xFF, 0x3E, 0xE9, 0xEC, 0xFF, 0x35, 0xE6, 0xE1, 0xFF, 0x35, 0xE5, 0xE9, 0xFF, 0x34, 0xE5, + 0xF0, 0xFF, 0x2A, 0xE3, 0xE4, 0xFF, 0x2D, 0xE5, 0xF5, 0xFF, 0x28, 0xEB, 0xE8, 0xFF, 0x2A, 0xEE, 0xF0, 0xFF, 0x24, + 0xE8, 0xEF, 0xFF, 0x20, 0xE4, 0xEC, 0xFF, 0x1C, 0xDF, 0xE9, 0xFF, 0x1C, 0xDB, 0xEB, 0xFF, 0x1B, 0xD7, 0xED, 0xFF, + 0x18, 0xCE, 0xE9, 0xFF, 0x15, 0xC5, 0xE5, 0xFF, 0x03, 0xBF, 0xE7, 0xFF, 0x92, 0xB1, 0x6C, 0xFF, 0xFB, 0x9C, 0x10, + 0xFF, 0xF7, 0xA0, 0x17, 0xFF, 0xF5, 0xA0, 0x19, 0xFF, 0xF3, 0xA0, 0x1B, 0xFF, 0xF6, 0x9F, 0x19, 0xFF, 0xF9, 0x9F, + 0x16, 0xFF, 0xF8, 0x9E, 0x16, 0xFF, 0xF8, 0x9C, 0x15, 0xFF, 0xF8, 0x9B, 0x15, 0xFF, 0xF8, 0x99, 0x15, 0xFF, 0xF7, + 0x99, 0x14, 0xFF, 0xF7, 0x98, 0x14, 0xFF, 0xF7, 0x98, 0x14, 0xFF, 0xF6, 0xD3, 0x57, 0xFF, 0xF6, 0xD4, 0x55, 0xFF, + 0xF6, 0xD5, 0x53, 0xFF, 0xF7, 0xD2, 0x57, 0xFF, 0xF7, 0xD0, 0x5B, 0xFF, 0xF6, 0xD0, 0x57, 0xFF, 0xF5, 0xCF, 0x54, + 0xFF, 0xF7, 0xCE, 0x50, 0xFF, 0xFA, 0xCC, 0x4C, 0xFF, 0xFA, 0xCB, 0x4B, 0xFF, 0xFA, 0xCA, 0x49, 0xFF, 0xFA, 0xC8, + 0x47, 0xFF, 0xFB, 0xC7, 0x46, 0xFF, 0xFA, 0xC7, 0x44, 0xFF, 0xFA, 0xC6, 0x43, 0xFF, 0xF9, 0xC6, 0x41, 0xFF, 0xF9, + 0xC5, 0x3F, 0xFF, 0xF9, 0xC4, 0x3E, 0xFF, 0xF9, 0xC2, 0x3D, 0xFF, 0xF9, 0xC1, 0x3C, 0xFF, 0xF9, 0xC0, 0x3B, 0xFF, + 0xF8, 0xC1, 0x3C, 0xFF, 0xF7, 0xC2, 0x3C, 0xFF, 0xF6, 0xBE, 0x38, 0xFF, 0xF5, 0xBB, 0x34, 0xFF, 0xFD, 0xBC, 0x35, + 0xFF, 0xFF, 0xBE, 0x36, 0xFF, 0xFB, 0xBB, 0x45, 0xFF, 0x2B, 0xC9, 0x82, 0xFF, 0x01, 0xBE, 0xA0, 0xFF, 0x20, 0xC4, + 0xB8, 0xFF, 0x31, 0xCF, 0xD8, 0xFF, 0x31, 0xD5, 0xD1, 0xFF, 0x2E, 0xD5, 0xD4, 0xFF, 0x2A, 0xD4, 0xD7, 0xFF, 0x24, + 0xD7, 0xCC, 0xFF, 0x2E, 0xDE, 0xE8, 0xFF, 0x29, 0xDD, 0xE6, 0xFF, 0x24, 0xDC, 0xE4, 0xFF, 0x22, 0xD9, 0xED, 0xFF, + 0x20, 0xE1, 0xDF, 0xFF, 0x27, 0xE9, 0xEC, 0xFF, 0x1E, 0xE0, 0xEA, 0xFF, 0x1B, 0xD9, 0xE3, 0xFF, 0x19, 0xD3, 0xDD, + 0xFF, 0x1A, 0xD0, 0xE4, 0xFF, 0x1B, 0xCD, 0xEB, 0xFF, 0x17, 0xC7, 0xE4, 0xFF, 0x14, 0xC2, 0xDE, 0xFF, 0x00, 0xBC, + 0xEF, 0xFF, 0xEB, 0xA4, 0x1D, 0xFF, 0xFF, 0xA0, 0x19, 0xFF, 0xF6, 0xA2, 0x15, 0xFF, 0xF3, 0xA2, 0x19, 0xFF, 0xF0, + 0xA1, 0x1D, 0xFF, 0xF4, 0xA0, 0x19, 0xFF, 0xF8, 0x9F, 0x16, 0xFF, 0xF8, 0x9E, 0x15, 0xFF, 0xF8, 0x9D, 0x15, 0xFF, + 0xF7, 0x9B, 0x14, 0xFF, 0xF7, 0x9A, 0x14, 0xFF, 0xF6, 0x99, 0x13, 0xFF, 0xF5, 0x98, 0x12, 0xFF, 0xF5, 0x98, 0x12, + 0xFF, 0xF8, 0xD5, 0x5E, 0xFF, 0xFC, 0xD5, 0x63, 0xFF, 0xFF, 0xD6, 0x68, 0xFF, 0xFB, 0xD2, 0x5E, 0xFF, 0xF8, 0xCF, + 0x55, 0xFF, 0xF7, 0xCF, 0x53, 0xFF, 0xF7, 0xCE, 0x50, 0xFF, 0xF9, 0xCD, 0x4D, 0xFF, 0xFA, 0xCC, 0x4B, 0xFF, 0xFA, + 0xCB, 0x49, 0xFF, 0xFA, 0xCA, 0x48, 0xFF, 0xFA, 0xC9, 0x47, 0xFF, 0xFA, 0xC8, 0x45, 0xFF, 0xFA, 0xC7, 0x44, 0xFF, + 0xF9, 0xC6, 0x42, 0xFF, 0xF9, 0xC5, 0x41, 0xFF, 0xF9, 0xC5, 0x40, 0xFF, 0xF9, 0xC4, 0x3F, 0xFF, 0xF9, 0xC2, 0x3D, + 0xFF, 0xF9, 0xC1, 0x3C, 0xFF, 0xF8, 0xC0, 0x3B, 0xFF, 0xF8, 0xC0, 0x3B, 0xFF, 0xF8, 0xC1, 0x3A, 0xFF, 0xF7, 0xBF, + 0x38, 0xFF, 0xF6, 0xBD, 0x35, 0xFF, 0xFA, 0xBD, 0x34, 0xFF, 0xFE, 0xBD, 0x33, 0xFF, 0xF5, 0xC3, 0x22, 0xFF, 0xFB, + 0xBA, 0x26, 0xFF, 0xB1, 0xB0, 0x53, 0xFF, 0x06, 0xC5, 0x9A, 0xFF, 0x22, 0xD2, 0xC0, 0xFF, 0x36, 0xDD, 0xD3, 0xFF, + 0x12, 0xBA, 0xB3, 0xFF, 0x1E, 0xC7, 0xC3, 0xFF, 0x21, 0xCE, 0xC4, 0xFF, 0x2C, 0xD8, 0xD8, 0xFF, 0x2F, 0xDA, 0xDE, + 0xFF, 0x2A, 0xD5, 0xDC, 0xFF, 0x20, 0xD4, 0xE7, 0xFF, 0x1C, 0xD5, 0xD4, 0xFF, 0x28, 0xE4, 0xE8, 0xFF, 0x24, 0xE3, + 0xEB, 0xFF, 0x1F, 0xCD, 0xD1, 0xFF, 0x1C, 0xC5, 0xD2, 0xFF, 0x01, 0xC2, 0xDC, 0xFF, 0x11, 0xC3, 0xCF, 0xFF, 0x09, + 0xC1, 0xE2, 0xFF, 0x00, 0xBE, 0xE3, 0xFF, 0x6E, 0xBE, 0x83, 0xFF, 0xF6, 0x9F, 0x0C, 0xFF, 0xFD, 0x9F, 0x11, 0xFF, + 0xF6, 0xA1, 0x17, 0xFF, 0xF4, 0xA1, 0x19, 0xFF, 0xF3, 0xA1, 0x1A, 0xFF, 0xF5, 0xA0, 0x18, 0xFF, 0xF8, 0x9F, 0x15, + 0xFF, 0xF7, 0x9E, 0x15, 0xFF, 0xF7, 0x9D, 0x14, 0xFF, 0xF7, 0x9C, 0x14, 0xFF, 0xF7, 0x9B, 0x13, 0xFF, 0xF5, 0x99, + 0x11, 0xFF, 0xF4, 0x98, 0x10, 0xFF, 0xF4, 0x98, 0x10, 0xFF, 0xFB, 0xD6, 0x64, 0xFF, 0xF9, 0xD4, 0x5D, 0xFF, 0xF8, + 0xD2, 0x55, 0xFF, 0xF8, 0xD0, 0x53, 0xFF, 0xF8, 0xCE, 0x50, 0xFF, 0xF9, 0xCE, 0x4E, 0xFF, 0xFA, 0xCD, 0x4D, 0xFF, + 0xFA, 0xCC, 0x4B, 0xFF, 0xFB, 0xCC, 0x49, 0xFF, 0xFA, 0xCB, 0x48, 0xFF, 0xFA, 0xCA, 0x47, 0xFF, 0xFA, 0xC9, 0x46, + 0xFF, 0xFA, 0xC8, 0x45, 0xFF, 0xFA, 0xC7, 0x43, 0xFF, 0xF9, 0xC6, 0x42, 0xFF, 0xF9, 0xC5, 0x41, 0xFF, 0xF9, 0xC4, + 0x40, 0xFF, 0xF9, 0xC3, 0x3F, 0xFF, 0xF9, 0xC2, 0x3D, 0xFF, 0xF9, 0xC1, 0x3C, 0xFF, 0xF8, 0xC0, 0x3B, 0xFF, 0xF8, + 0xC0, 0x3A, 0xFF, 0xF8, 0xBF, 0x39, 0xFF, 0xF8, 0xBF, 0x38, 0xFF, 0xF8, 0xBF, 0x36, 0xFF, 0xF7, 0xBD, 0x34, 0xFF, + 0xF7, 0xBC, 0x31, 0xFF, 0xF8, 0xBB, 0x33, 0xFF, 0xF9, 0xBA, 0x35, 0xFF, 0xFF, 0xBC, 0x2C, 0xFF, 0xDE, 0xC2, 0x60, + 0xFF, 0x84, 0xCB, 0x93, 0xFF, 0x2A, 0xD4, 0xC5, 0xFF, 0x2E, 0xD7, 0xCA, 0xFF, 0x12, 0xBA, 0xB0, 0xFF, 0x16, 0xBE, + 0xB4, 0xFF, 0x1A, 0xC2, 0xB8, 0xFF, 0x25, 0xC8, 0xC6, 0xFF, 0x20, 0xBE, 0xC4, 0xFF, 0x16, 0xC8, 0xDA, 0xFF, 0x18, + 0xC8, 0xC9, 0xFF, 0x21, 0xD7, 0xDB, 0xFF, 0x1A, 0xD6, 0xDD, 0xFF, 0x0D, 0xBC, 0xB7, 0xFF, 0x03, 0xBD, 0xC7, 0xFF, + 0x00, 0xBF, 0xD0, 0xFF, 0x50, 0xC9, 0xAC, 0xFF, 0xB0, 0xB8, 0x6B, 0xFF, 0xFF, 0xA3, 0x04, 0xFF, 0xFA, 0xA3, 0x12, + 0xFF, 0xF4, 0xA4, 0x21, 0xFF, 0xF5, 0xA2, 0x1D, 0xFF, 0xF5, 0xA1, 0x19, 0xFF, 0xF6, 0xA0, 0x18, 0xFF, 0xF6, 0xA0, + 0x17, 0xFF, 0xF7, 0x9F, 0x16, 0xFF, 0xF7, 0x9F, 0x15, 0xFF, 0xF7, 0x9E, 0x14, 0xFF, 0xF7, 0x9D, 0x14, 0xFF, 0xF6, + 0x9C, 0x13, 0xFF, 0xF6, 0x9B, 0x12, 0xFF, 0xF4, 0x99, 0x10, 0xFF, 0xF2, 0x97, 0x0E, 0xFF, 0xF2, 0x97, 0x0E, 0xFF, + 0xF8, 0xD4, 0x5C, 0xFF, 0xF8, 0xD3, 0x57, 0xFF, 0xF8, 0xD1, 0x53, 0xFF, 0xF8, 0xD0, 0x51, 0xFF, 0xF9, 0xCE, 0x4F, + 0xFF, 0xF9, 0xCE, 0x4D, 0xFF, 0xF9, 0xCD, 0x4B, 0xFF, 0xFA, 0xCC, 0x4A, 0xFF, 0xFA, 0xCB, 0x48, 0xFF, 0xFA, 0xCA, + 0x47, 0xFF, 0xFA, 0xCA, 0x46, 0xFF, 0xF9, 0xC9, 0x45, 0xFF, 0xF9, 0xC8, 0x44, 0xFF, 0xF9, 0xC7, 0x43, 0xFF, 0xF9, + 0xC6, 0x42, 0xFF, 0xF9, 0xC5, 0x41, 0xFF, 0xF9, 0xC4, 0x40, 0xFF, 0xF9, 0xC3, 0x3E, 0xFF, 0xF9, 0xC2, 0x3D, 0xFF, + 0xF9, 0xC1, 0x3C, 0xFF, 0xF9, 0xC0, 0x3A, 0xFF, 0xF8, 0xBF, 0x39, 0xFF, 0xF8, 0xBF, 0x38, 0xFF, 0xF8, 0xBF, 0x37, + 0xFF, 0xF8, 0xBE, 0x36, 0xFF, 0xF5, 0xBD, 0x35, 0xFF, 0xF3, 0xBB, 0x34, 0xFF, 0xF7, 0xB9, 0x34, 0xFF, 0xFA, 0xB7, + 0x34, 0xFF, 0xFF, 0xB5, 0x22, 0xFF, 0xFE, 0xB4, 0x2E, 0xFF, 0xE6, 0xB9, 0x4D, 0xFF, 0xCD, 0xBF, 0x6B, 0xFF, 0xC5, + 0xB1, 0x27, 0xFF, 0x7C, 0xBB, 0x6C, 0xFF, 0x48, 0xBD, 0x89, 0xFF, 0x15, 0xBE, 0xA6, 0xFF, 0x08, 0xBF, 0xB9, 0xFF, + 0x00, 0xBF, 0xCB, 0xFF, 0x3D, 0xC4, 0xDA, 0xFF, 0x20, 0xCA, 0xBA, 0xFF, 0x3E, 0xC6, 0xAD, 0xFF, 0x53, 0xBB, 0x99, + 0xFF, 0x8A, 0xAC, 0x59, 0xFF, 0xC3, 0xAA, 0x35, 0xFF, 0xFF, 0xB3, 0x03, 0xFF, 0xFF, 0xA6, 0x15, 0xFF, 0xFF, 0xA4, + 0x20, 0xFF, 0xFA, 0xA0, 0x19, 0xFF, 0xF9, 0xA2, 0x1B, 0xFF, 0xF8, 0xA4, 0x1C, 0xFF, 0xF7, 0xA2, 0x1B, 0xFF, 0xF6, + 0xA1, 0x19, 0xFF, 0xF6, 0xA0, 0x18, 0xFF, 0xF7, 0xA0, 0x17, 0xFF, 0xF7, 0x9F, 0x16, 0xFF, 0xF7, 0x9F, 0x15, 0xFF, + 0xF7, 0x9E, 0x14, 0xFF, 0xF6, 0x9D, 0x14, 0xFF, 0xF6, 0x9C, 0x13, 0xFF, 0xF6, 0x9B, 0x12, 0xFF, 0xF4, 0x9A, 0x10, + 0xFF, 0xF3, 0x98, 0x0F, 0xFF, 0xF3, 0x98, 0x0F, 0xFF, 0xF6, 0xD2, 0x53, 0xFF, 0xF7, 0xD1, 0x52, 0xFF, 0xF8, 0xD0, + 0x51, 0xFF, 0xF8, 0xCF, 0x4F, 0xFF, 0xF9, 0xCE, 0x4E, 0xFF, 0xF9, 0xCE, 0x4C, 0xFF, 0xF9, 0xCD, 0x4A, 0xFF, 0xF9, + 0xCC, 0x48, 0xFF, 0xF9, 0xCB, 0x46, 0xFF, 0xF9, 0xCA, 0x46, 0xFF, 0xF9, 0xC9, 0x45, 0xFF, 0xF9, 0xC8, 0x44, 0xFF, + 0xF9, 0xC8, 0x43, 0xFF, 0xF9, 0xC7, 0x42, 0xFF, 0xF9, 0xC6, 0x41, 0xFF, 0xF9, 0xC5, 0x41, 0xFF, 0xF9, 0xC4, 0x40, + 0xFF, 0xF9, 0xC3, 0x3E, 0xFF, 0xF9, 0xC2, 0x3D, 0xFF, 0xF9, 0xC1, 0x3B, 0xFF, 0xF9, 0xC0, 0x3A, 0xFF, 0xF9, 0xBF, + 0x38, 0xFF, 0xF8, 0xBF, 0x37, 0xFF, 0xF8, 0xBE, 0x36, 0xFF, 0xF8, 0xBE, 0x35, 0xFF, 0xF4, 0xBC, 0x36, 0xFF, 0xEF, + 0xBA, 0x37, 0xFF, 0xF5, 0xB7, 0x35, 0xFF, 0xFC, 0xB5, 0x34, 0xFF, 0xF8, 0xB5, 0x2B, 0xFF, 0xF5, 0xB6, 0x22, 0xFF, + 0xFA, 0xB5, 0x25, 0xFF, 0xFF, 0xB3, 0x28, 0xFF, 0xFF, 0xB5, 0x28, 0xFF, 0xFF, 0xB7, 0x28, 0xFF, 0xFF, 0xB4, 0x1E, + 0xFF, 0xFE, 0xB2, 0x14, 0xFF, 0xF6, 0xAD, 0x20, 0xFF, 0xFE, 0xB9, 0x3C, 0xFF, 0xF0, 0xCB, 0x5A, 0xFF, 0xFA, 0xBE, + 0x41, 0xFF, 0xFC, 0xB5, 0x29, 0xFF, 0xFE, 0xAD, 0x11, 0xFF, 0xFC, 0xAC, 0x17, 0xFF, 0xFA, 0xAB, 0x1D, 0xFF, 0xFD, + 0xA9, 0x1D, 0xFF, 0xFF, 0xA7, 0x1D, 0xFF, 0xFA, 0xA7, 0x1B, 0xFF, 0xF4, 0xA8, 0x18, 0xFF, 0xF8, 0xA6, 0x18, 0xFF, + 0xFC, 0xA4, 0x17, 0xFF, 0xFA, 0xA2, 0x19, 0xFF, 0xF7, 0xA1, 0x1A, 0xFF, 0xF7, 0xA0, 0x19, 0xFF, 0xF7, 0xA0, 0x17, + 0xFF, 0xF7, 0x9F, 0x16, 0xFF, 0xF7, 0x9F, 0x15, 0xFF, 0xF7, 0x9E, 0x14, 0xFF, 0xF6, 0x9D, 0x13, 0xFF, 0xF6, 0x9C, + 0x13, 0xFF, 0xF5, 0x9B, 0x12, 0xFF, 0xF4, 0x9A, 0x11, 0xFF, 0xF3, 0x99, 0x10, 0xFF, 0xF3, 0x99, 0x10, 0xFF, 0xF7, + 0xD1, 0x54, 0xFF, 0xF8, 0xD0, 0x52, 0xFF, 0xF8, 0xD0, 0x51, 0xFF, 0xF9, 0xCF, 0x4F, 0xFF, 0xF9, 0xCF, 0x4E, 0xFF, + 0xF9, 0xCE, 0x4B, 0xFF, 0xF9, 0xCD, 0x49, 0xFF, 0xF9, 0xCC, 0x47, 0xFF, 0xF8, 0xCA, 0x45, 0xFF, 0xF8, 0xCA, 0x44, + 0xFF, 0xF8, 0xC9, 0x44, 0xFF, 0xF9, 0xC8, 0x43, 0xFF, 0xF9, 0xC7, 0x42, 0xFF, 0xF9, 0xC7, 0x42, 0xFF, 0xF9, 0xC6, + 0x41, 0xFF, 0xF9, 0xC5, 0x40, 0xFF, 0xF9, 0xC4, 0x40, 0xFF, 0xF9, 0xC3, 0x3E, 0xFF, 0xF9, 0xC2, 0x3C, 0xFF, 0xF9, + 0xC1, 0x3B, 0xFF, 0xF9, 0xC0, 0x39, 0xFF, 0xF9, 0xBF, 0x38, 0xFF, 0xF8, 0xBE, 0x36, 0xFF, 0xF8, 0xBE, 0x35, 0xFF, + 0xF8, 0xBD, 0x34, 0xFF, 0xF6, 0xBC, 0x34, 0xFF, 0xF4, 0xBA, 0x35, 0xFF, 0xF8, 0xB8, 0x34, 0xFF, 0xFB, 0xB6, 0x33, + 0xFF, 0xF9, 0xB6, 0x2D, 0xFF, 0xF6, 0xB6, 0x28, 0xFF, 0xF8, 0xB5, 0x29, 0xFF, 0xFA, 0xB4, 0x29, 0xFF, 0xFB, 0xB4, + 0x29, 0xFF, 0xFC, 0xB5, 0x29, 0xFF, 0xF5, 0xB2, 0x29, 0xFF, 0xEF, 0xAF, 0x29, 0xFF, 0xF5, 0xA9, 0x1A, 0xFF, 0xD9, + 0xCE, 0x9A, 0xFF, 0xE8, 0xCF, 0x6C, 0xFF, 0xE3, 0xC6, 0x73, 0xFF, 0xDD, 0xC9, 0x7F, 0xFF, 0xFB, 0xAD, 0x18, 0xFF, + 0xF9, 0xAC, 0x1B, 0xFF, 0xF7, 0xAB, 0x1F, 0xFF, 0xF9, 0xA9, 0x1E, 0xFF, 0xFB, 0xA7, 0x1D, 0xFF, 0xF8, 0xA7, 0x1C, + 0xFF, 0xF6, 0xA6, 0x1A, 0xFF, 0xF8, 0xA5, 0x19, 0xFF, 0xFA, 0xA3, 0x19, 0xFF, 0xF9, 0xA2, 0x1A, 0xFF, 0xF8, 0xA1, + 0x1A, 0xFF, 0xF8, 0xA1, 0x19, 0xFF, 0xF8, 0xA0, 0x18, 0xFF, 0xF7, 0x9F, 0x16, 0xFF, 0xF7, 0x9F, 0x15, 0xFF, 0xF7, + 0x9E, 0x14, 0xFF, 0xF6, 0x9D, 0x13, 0xFF, 0xF6, 0x9C, 0x12, 0xFF, 0xF5, 0x9B, 0x11, 0xFF, 0xF5, 0x9A, 0x11, 0xFF, + 0xF4, 0x9A, 0x10, 0xFF, 0xF4, 0x9A, 0x10, 0xFF, 0xF9, 0xD0, 0x54, 0xFF, 0xF9, 0xCF, 0x52, 0xFF, 0xF9, 0xCF, 0x51, + 0xFF, 0xFA, 0xCF, 0x4F, 0xFF, 0xFA, 0xCF, 0x4D, 0xFF, 0xF9, 0xCE, 0x4A, 0xFF, 0xF9, 0xCC, 0x48, 0xFF, 0xF8, 0xCB, + 0x46, 0xFF, 0xF8, 0xCA, 0x43, 0xFF, 0xF8, 0xC9, 0x43, 0xFF, 0xF8, 0xC9, 0x43, 0xFF, 0xF8, 0xC8, 0x42, 0xFF, 0xF8, + 0xC7, 0x42, 0xFF, 0xF8, 0xC7, 0x41, 0xFF, 0xF9, 0xC6, 0x41, 0xFF, 0xF9, 0xC5, 0x40, 0xFF, 0xF9, 0xC4, 0x40, 0xFF, + 0xF9, 0xC3, 0x3E, 0xFF, 0xF9, 0xC2, 0x3C, 0xFF, 0xF9, 0xC1, 0x3A, 0xFF, 0xF9, 0xBF, 0x38, 0xFF, 0xF9, 0xBF, 0x37, + 0xFF, 0xF9, 0xBE, 0x36, 0xFF, 0xF8, 0xBE, 0x34, 0xFF, 0xF8, 0xBD, 0x33, 0xFF, 0xF9, 0xBC, 0x33, 0xFF, 0xF9, 0xBA, + 0x32, 0xFF, 0xFA, 0xB9, 0x32, 0xFF, 0xFB, 0xB7, 0x31, 0xFF, 0xF9, 0xB6, 0x30, 0xFF, 0xF8, 0xB6, 0x2E, 0xFF, 0xF6, + 0xB5, 0x2C, 0xFF, 0xF4, 0xB4, 0x2A, 0xFF, 0xF5, 0xB3, 0x2A, 0xFF, 0xF6, 0xB2, 0x2A, 0xFF, 0xF9, 0xB2, 0x29, 0xFF, + 0xFB, 0xB2, 0x28, 0xFF, 0xF6, 0xB2, 0x30, 0xFF, 0xFD, 0xA8, 0x11, 0xFF, 0xE1, 0xD3, 0x7E, 0xFF, 0xE6, 0xBB, 0x58, + 0xFF, 0xFB, 0xAA, 0x15, 0xFF, 0xF7, 0xAD, 0x1F, 0xFF, 0xF6, 0xAB, 0x1F, 0xFF, 0xF5, 0xAA, 0x20, 0xFF, 0xF6, 0xA9, + 0x1F, 0xFF, 0xF6, 0xA7, 0x1E, 0xFF, 0xF7, 0xA6, 0x1D, 0xFF, 0xF8, 0xA5, 0x1B, 0xFF, 0xF8, 0xA4, 0x1B, 0xFF, 0xF8, + 0xA3, 0x1B, 0xFF, 0xF8, 0xA2, 0x1B, 0xFF, 0xF9, 0xA1, 0x1A, 0xFF, 0xF8, 0xA1, 0x19, 0xFF, 0xF8, 0xA0, 0x18, 0xFF, + 0xF8, 0x9F, 0x16, 0xFF, 0xF7, 0x9F, 0x15, 0xFF, 0xF7, 0x9E, 0x14, 0xFF, 0xF6, 0x9D, 0x13, 0xFF, 0xF6, 0x9C, 0x12, + 0xFF, 0xF5, 0x9A, 0x11, 0xFF, 0xF5, 0x9A, 0x11, 0xFF, 0xF5, 0x9A, 0x11, 0xFF, 0xF5, 0x9A, 0x11, 0xFF, 0xF9, 0xD0, + 0x54, 0xFF, 0xF9, 0xCF, 0x52, 0xFF, 0xF9, 0xCF, 0x51, 0xFF, 0xFA, 0xCF, 0x4F, 0xFF, 0xFA, 0xCF, 0x4D, 0xFF, 0xF9, + 0xCE, 0x4A, 0xFF, 0xF9, 0xCC, 0x48, 0xFF, 0xF8, 0xCB, 0x46, 0xFF, 0xF8, 0xCA, 0x43, 0xFF, 0xF8, 0xC9, 0x43, 0xFF, + 0xF8, 0xC9, 0x43, 0xFF, 0xF8, 0xC8, 0x42, 0xFF, 0xF8, 0xC7, 0x42, 0xFF, 0xF8, 0xC7, 0x41, 0xFF, 0xF9, 0xC6, 0x41, + 0xFF, 0xF9, 0xC5, 0x40, 0xFF, 0xF9, 0xC4, 0x40, 0xFF, 0xF9, 0xC3, 0x3E, 0xFF, 0xF9, 0xC2, 0x3C, 0xFF, 0xF9, 0xC1, + 0x3A, 0xFF, 0xF9, 0xBF, 0x38, 0xFF, 0xF9, 0xBF, 0x37, 0xFF, 0xF9, 0xBE, 0x36, 0xFF, 0xF8, 0xBE, 0x34, 0xFF, 0xF8, + 0xBD, 0x33, 0xFF, 0xF9, 0xBC, 0x33, 0xFF, 0xF9, 0xBA, 0x32, 0xFF, 0xFA, 0xB9, 0x32, 0xFF, 0xFB, 0xB7, 0x31, 0xFF, + 0xF9, 0xB6, 0x30, 0xFF, 0xF8, 0xB6, 0x2E, 0xFF, 0xF6, 0xB5, 0x2C, 0xFF, 0xF4, 0xB4, 0x2A, 0xFF, 0xF5, 0xB3, 0x2A, + 0xFF, 0xF6, 0xB2, 0x2A, 0xFF, 0xF8, 0xB2, 0x2A, 0xFF, 0xFA, 0xB1, 0x29, 0xFF, 0xF4, 0xB5, 0x2D, 0xFF, 0xF5, 0xB4, + 0x1D, 0xFF, 0xFF, 0x9B, 0x23, 0xFF, 0xF2, 0xB5, 0x1F, 0xFF, 0xFB, 0xAB, 0x0B, 0xFF, 0xF6, 0xAC, 0x1E, 0xFF, 0xF6, + 0xAB, 0x1F, 0xFF, 0xF5, 0xAA, 0x20, 0xFF, 0xF6, 0xA9, 0x1F, 0xFF, 0xF6, 0xA7, 0x1E, 0xFF, 0xF7, 0xA6, 0x1D, 0xFF, + 0xF8, 0xA5, 0x1B, 0xFF, 0xF8, 0xA4, 0x1B, 0xFF, 0xF8, 0xA3, 0x1B, 0xFF, 0xF8, 0xA2, 0x1B, 0xFF, 0xF9, 0xA1, 0x1A, + 0xFF, 0xF8, 0xA1, 0x19, 0xFF, 0xF8, 0xA0, 0x18, 0xFF, 0xF8, 0x9F, 0x16, 0xFF, 0xF7, 0x9F, 0x15, 0xFF, 0xF7, 0x9E, + 0x14, 0xFF, 0xF6, 0x9D, 0x13, 0xFF, 0xF6, 0x9C, 0x12, 0xFF, 0xF5, 0x9A, 0x11, 0xFF, 0xF5, 0x9A, 0x11, 0xFF, 0xF5, + 0x9A, 0x11, 0xFF, 0xF5, 0x9A, 0x11, 0xFF, 0xF9, 0xD0, 0x54, 0xFF, 0xF9, 0xCF, 0x52, 0xFF, 0xF9, 0xCF, 0x51, 0xFF, + 0xFA, 0xCF, 0x4F, 0xFF, 0xFA, 0xCF, 0x4D, 0xFF, 0xF9, 0xCE, 0x4A, 0xFF, 0xF9, 0xCC, 0x48, 0xFF, 0xF8, 0xCB, 0x46, + 0xFF, 0xF8, 0xCA, 0x43, 0xFF, 0xF8, 0xC9, 0x43, 0xFF, 0xF8, 0xC9, 0x43, 0xFF, 0xF8, 0xC8, 0x42, 0xFF, 0xF8, 0xC7, + 0x42, 0xFF, 0xF8, 0xC7, 0x41, 0xFF, 0xF9, 0xC6, 0x41, 0xFF, 0xF9, 0xC5, 0x40, 0xFF, 0xF9, 0xC4, 0x40, 0xFF, 0xF9, + 0xC3, 0x3E, 0xFF, 0xF9, 0xC2, 0x3C, 0xFF, 0xF9, 0xC1, 0x3A, 0xFF, 0xF9, 0xBF, 0x38, 0xFF, 0xF9, 0xBF, 0x37, 0xFF, + 0xF9, 0xBE, 0x36, 0xFF, 0xF8, 0xBE, 0x34, 0xFF, 0xF8, 0xBD, 0x33, 0xFF, 0xF9, 0xBC, 0x33, 0xFF, 0xF9, 0xBA, 0x32, + 0xFF, 0xFA, 0xB9, 0x32, 0xFF, 0xFB, 0xB7, 0x31, 0xFF, 0xF9, 0xB6, 0x30, 0xFF, 0xF8, 0xB6, 0x2E, 0xFF, 0xF6, 0xB5, + 0x2C, 0xFF, 0xF4, 0xB4, 0x2A, 0xFF, 0xF5, 0xB3, 0x2A, 0xFF, 0xF6, 0xB2, 0x2A, 0xFF, 0xF7, 0xB2, 0x2A, 0xFF, 0xF8, + 0xB1, 0x2A, 0xFF, 0xF9, 0xAE, 0x21, 0xFF, 0xFA, 0xAC, 0x18, 0xFF, 0xF6, 0xAD, 0x1E, 0xFF, 0xF3, 0xAE, 0x23, 0xFF, + 0xF4, 0xAC, 0x20, 0xFF, 0xF5, 0xAB, 0x1D, 0xFF, 0xF5, 0xAA, 0x1E, 0xFF, 0xF5, 0xAA, 0x20, 0xFF, 0xF6, 0xA9, 0x1F, + 0xFF, 0xF6, 0xA7, 0x1E, 0xFF, 0xF7, 0xA6, 0x1D, 0xFF, 0xF8, 0xA5, 0x1B, 0xFF, 0xF8, 0xA4, 0x1B, 0xFF, 0xF8, 0xA3, + 0x1B, 0xFF, 0xF8, 0xA2, 0x1B, 0xFF, 0xF9, 0xA1, 0x1A, 0xFF, 0xF8, 0xA1, 0x19, 0xFF, 0xF8, 0xA0, 0x18, 0xFF, 0xF8, + 0x9F, 0x16, 0xFF, 0xF7, 0x9F, 0x15, 0xFF, 0xF7, 0x9E, 0x14, 0xFF, 0xF6, 0x9D, 0x13, 0xFF, 0xF6, 0x9C, 0x12, 0xFF, + 0xF5, 0x9A, 0x11, 0xFF, 0xF5, 0x9A, 0x11, 0xFF, 0xF5, 0x9A, 0x11, 0xFF, 0xF5, 0x9A, 0x11, 0xFF, 0xF9, 0xD0, 0x54, + 0xFF, 0xF9, 0xCF, 0x52, 0xFF, 0xF9, 0xCF, 0x51, 0xFF, 0xFA, 0xCF, 0x4F, 0xFF, 0xFA, 0xCF, 0x4D, 0xFF, 0xF9, 0xCE, + 0x4A, 0xFF, 0xF9, 0xCC, 0x48, 0xFF, 0xF8, 0xCB, 0x46, 0xFF, 0xF8, 0xCA, 0x43, 0xFF, 0xF8, 0xC9, 0x43, 0xFF, 0xF8, + 0xC9, 0x43, 0xFF, 0xF8, 0xC8, 0x42, 0xFF, 0xF8, 0xC7, 0x42, 0xFF, 0xF8, 0xC7, 0x41, 0xFF, 0xF9, 0xC6, 0x41, 0xFF, + 0xF9, 0xC5, 0x40, 0xFF, 0xF9, 0xC4, 0x40, 0xFF, 0xF9, 0xC3, 0x3E, 0xFF, 0xF9, 0xC2, 0x3C, 0xFF, 0xF9, 0xC1, 0x3A, + 0xFF, 0xF9, 0xBF, 0x38, 0xFF, 0xF9, 0xBF, 0x37, 0xFF, 0xF9, 0xBE, 0x36, 0xFF, 0xF8, 0xBE, 0x34, 0xFF, 0xF8, 0xBD, + 0x33, 0xFF, 0xF9, 0xBC, 0x33, 0xFF, 0xF9, 0xBA, 0x32, 0xFF, 0xFA, 0xB9, 0x32, 0xFF, 0xFB, 0xB7, 0x31, 0xFF, 0xF9, + 0xB6, 0x30, 0xFF, 0xF8, 0xB6, 0x2E, 0xFF, 0xF6, 0xB5, 0x2C, 0xFF, 0xF4, 0xB4, 0x2A, 0xFF, 0xF5, 0xB3, 0x2A, 0xFF, + 0xF6, 0xB2, 0x2A, 0xFF, 0xF7, 0xB2, 0x2A, 0xFF, 0xF8, 0xB1, 0x2A, 0xFF, 0xF9, 0xAE, 0x21, 0xFF, 0xFA, 0xAC, 0x18, + 0xFF, 0xF6, 0xAD, 0x1E, 0xFF, 0xF3, 0xAE, 0x23, 0xFF, 0xF4, 0xAC, 0x20, 0xFF, 0xF5, 0xAB, 0x1D, 0xFF, 0xF5, 0xAA, + 0x1E, 0xFF, 0xF5, 0xAA, 0x20, 0xFF, 0xF6, 0xA9, 0x1F, 0xFF, 0xF6, 0xA7, 0x1E, 0xFF, 0xF7, 0xA6, 0x1D, 0xFF, 0xF8, + 0xA5, 0x1B, 0xFF, 0xF8, 0xA4, 0x1B, 0xFF, 0xF8, 0xA3, 0x1B, 0xFF, 0xF8, 0xA2, 0x1B, 0xFF, 0xF9, 0xA1, 0x1A, 0xFF, + 0xF8, 0xA1, 0x19, 0xFF, 0xF8, 0xA0, 0x18, 0xFF, 0xF8, 0x9F, 0x16, 0xFF, 0xF7, 0x9F, 0x15, 0xFF, 0xF7, 0x9E, 0x14, + 0xFF, 0xF6, 0x9D, 0x13, 0xFF, 0xF6, 0x9C, 0x12, 0xFF, 0xF5, 0x9A, 0x11, 0xFF, 0xF5, 0x9A, 0x11, 0xFF, 0xF5, 0x9A, + 0x11, 0xFF, 0xF5, 0x9A, 0x11, 0xFF, ]; diff --git a/ironrdp/src/codecs/rfx/data_messages.rs b/ironrdp/src/codecs/rfx/data_messages.rs index 16e265e5..36ae6dd6 100644 --- a/ironrdp/src/codecs/rfx/data_messages.rs +++ b/ironrdp/src/codecs/rfx/data_messages.rs @@ -6,10 +6,7 @@ use byteorder::{LittleEndian, ReadBytesExt, WriteBytesExt}; use num_derive::{FromPrimitive, ToPrimitive}; use num_traits::{FromPrimitive, ToPrimitive}; -use super::{ - BlockHeader, BlockType, CodecChannelHeader, RfxError, BLOCK_HEADER_SIZE, - CODEC_CHANNEL_HEADER_SIZE, -}; +use super::{BlockHeader, BlockType, CodecChannelHeader, RfxError, BLOCK_HEADER_SIZE, CODEC_CHANNEL_HEADER_SIZE}; use crate::utils::SplitTo; use crate::PduBufferParsing; @@ -34,10 +31,7 @@ pub struct ContextPdu { } impl ContextPdu { - pub fn from_buffer_consume_with_header( - buffer: &mut &[u8], - header: BlockHeader, - ) -> Result { + pub fn from_buffer_consume_with_header(buffer: &mut &[u8], header: BlockHeader) -> Result { CodecChannelHeader::from_buffer_consume_with_type(buffer, BlockType::Context)?; let mut buffer = buffer.split_to(header.data_length); @@ -55,9 +49,7 @@ impl ContextPdu { let flags = OperatingMode::from_bits_truncate(properties.get_bits(0..3)); let color_conversion_transform = properties.get_bits(3..5); if color_conversion_transform != COLOR_CONVERSION_ICT { - return Err(RfxError::InvalidColorConversionTransform( - color_conversion_transform, - )); + return Err(RfxError::InvalidColorConversionTransform(color_conversion_transform)); } let dwt = properties.get_bits(5..9); @@ -87,8 +79,7 @@ impl<'a> PduBufferParsing<'a> for ContextPdu { type Error = RfxError; fn from_buffer_consume(buffer: &mut &[u8]) -> Result { - let header = - BlockHeader::from_buffer_consume_with_expected_type(buffer, BlockType::Context)?; + let header = BlockHeader::from_buffer_consume_with_expected_type(buffer, BlockType::Context)?; Self::from_buffer_consume_with_header(buffer, header) } @@ -133,8 +124,7 @@ impl<'a> PduBufferParsing<'a> for FrameBeginPdu { type Error = RfxError; fn from_buffer_consume(buffer: &mut &[u8]) -> Result { - let header = - BlockHeader::from_buffer_consume_with_expected_type(buffer, BlockType::FrameBegin)?; + let header = BlockHeader::from_buffer_consume_with_expected_type(buffer, BlockType::FrameBegin)?; CodecChannelHeader::from_buffer_consume_with_type(buffer, BlockType::FrameBegin)?; let mut buffer = buffer.split_to(header.data_length); @@ -175,8 +165,7 @@ impl<'a> PduBufferParsing<'a> for FrameEndPdu { type Error = RfxError; fn from_buffer_consume(buffer: &mut &[u8]) -> Result { - let _header = - BlockHeader::from_buffer_consume_with_expected_type(buffer, BlockType::FrameEnd)?; + let _header = BlockHeader::from_buffer_consume_with_expected_type(buffer, BlockType::FrameEnd)?; CodecChannelHeader::from_buffer_consume_with_type(buffer, BlockType::FrameEnd)?; Ok(Self) @@ -209,8 +198,7 @@ impl<'a> PduBufferParsing<'a> for RegionPdu { type Error = RfxError; fn from_buffer_consume(buffer: &mut &[u8]) -> Result { - let header = - BlockHeader::from_buffer_consume_with_expected_type(buffer, BlockType::Region)?; + let header = BlockHeader::from_buffer_consume_with_expected_type(buffer, BlockType::Region)?; CodecChannelHeader::from_buffer_consume_with_type(buffer, BlockType::Region)?; let mut buffer = buffer.split_to(header.data_length); @@ -293,8 +281,7 @@ impl<'a> PduBufferParsing<'a> for TileSetPdu<'a> { type Error = RfxError; fn from_buffer_consume(buffer: &mut &'a [u8]) -> Result { - let header = - BlockHeader::from_buffer_consume_with_expected_type(buffer, BlockType::Extension)?; + let header = BlockHeader::from_buffer_consume_with_expected_type(buffer, BlockType::Extension)?; CodecChannelHeader::from_buffer_consume_with_type(buffer, BlockType::Extension)?; let mut buffer = buffer.split_to(header.data_length); @@ -321,9 +308,7 @@ impl<'a> PduBufferParsing<'a> for TileSetPdu<'a> { let color_conversion_transform = properties.get_bits(4..6); if color_conversion_transform != COLOR_CONVERSION_ICT { - return Err(RfxError::InvalidColorConversionTransform( - color_conversion_transform, - )); + return Err(RfxError::InvalidColorConversionTransform(color_conversion_transform)); } let dwt = properties.get_bits(6..10); @@ -417,11 +402,7 @@ impl<'a> PduBufferParsing<'a> for TileSetPdu<'a> { BLOCK_HEADER_SIZE + CODEC_CHANNEL_HEADER_SIZE + 14 - + self - .quants - .iter() - .map(PduBufferParsing::buffer_length) - .sum::() + + self.quants.iter().map(PduBufferParsing::buffer_length).sum::() + self.tiles.iter().map(|t| t.buffer_length()).sum::() } } @@ -443,12 +424,7 @@ impl<'a> PduBufferParsing<'a> for RfxRectangle { let width = buffer.read_u16::()?; let height = buffer.read_u16::()?; - Ok(Self { - x, - y, - width, - height, - }) + Ok(Self { x, y, width, height }) } fn to_buffer_consume(&self, buffer: &mut &mut [u8]) -> Result<(), Self::Error> { diff --git a/ironrdp/src/codecs/rfx/dwt.rs b/ironrdp/src/codecs/rfx/dwt.rs index 56f63942..9385ef99 100644 --- a/ironrdp/src/codecs/rfx/dwt.rs +++ b/ironrdp/src/codecs/rfx/dwt.rs @@ -35,21 +35,15 @@ fn inverse_horizontal(mut buffer: &[i16], temp_buffer: &mut [i16], subband_width h_dst[0] = (i32::from(lh[0]) - ((i32::from(hh[0]) + i32::from(hh[0]) + 1) >> 1)) as i16; for n in 1..subband_width { let x = n * 2; - l_dst[x] = - (i32::from(ll[n]) - ((i32::from(hl[n - 1]) + i32::from(hl[n]) + 1) >> 1)) as i16; - h_dst[x] = - (i32::from(lh[n]) - ((i32::from(hh[n - 1]) + i32::from(hh[n]) + 1) >> 1)) as i16; + l_dst[x] = (i32::from(ll[n]) - ((i32::from(hl[n - 1]) + i32::from(hl[n]) + 1) >> 1)) as i16; + h_dst[x] = (i32::from(lh[n]) - ((i32::from(hh[n - 1]) + i32::from(hh[n]) + 1) >> 1)) as i16; } // Odd coefficients for n in 0..subband_width - 1 { let x = n * 2; - l_dst[x + 1] = (i32::from(hl[n] << 1) - + ((i32::from(l_dst[x]) + i32::from(l_dst[x + 2])) >> 1)) - as i16; - h_dst[x + 1] = (i32::from(hh[n] << 1) - + ((i32::from(h_dst[x]) + i32::from(h_dst[x + 2])) >> 1)) - as i16; + l_dst[x + 1] = (i32::from(hl[n] << 1) + ((i32::from(l_dst[x]) + i32::from(l_dst[x + 2])) >> 1)) as i16; + h_dst[x + 1] = (i32::from(hh[n] << 1) + ((i32::from(h_dst[x]) + i32::from(h_dst[x + 2])) >> 1)) as i16; } let n = subband_width - 1; let x = n * 2; @@ -70,9 +64,8 @@ fn inverse_vertical(mut buffer: &mut [i16], mut temp_buffer: &[i16], subband_wid let total_width = subband_width * 2; for _ in 0..total_width { - buffer[0] = (i32::from(temp_buffer[0]) - - ((i32::from(temp_buffer[subband_width * total_width]) * 2 + 1) >> 1)) - as i16; + buffer[0] = + (i32::from(temp_buffer[0]) - ((i32::from(temp_buffer[subband_width * total_width]) * 2 + 1) >> 1)) as i16; let mut l = temp_buffer; let mut lh = &temp_buffer[(subband_width - 1) * total_width..]; @@ -85,19 +78,16 @@ fn inverse_vertical(mut buffer: &mut [i16], mut temp_buffer: &[i16], subband_wid h = &h[total_width..]; // Even coefficients - dst[2 * total_width] = - (i32::from(l[0]) - ((i32::from(lh[0]) + i32::from(h[0]) + 1) >> 1)) as i16; + dst[2 * total_width] = (i32::from(l[0]) - ((i32::from(lh[0]) + i32::from(h[0]) + 1) >> 1)) as i16; // Odd coefficients - dst[total_width] = (i32::from(lh[0] << 1) - + ((i32::from(dst[0]) + i32::from(dst[2 * total_width])) >> 1)) - as i16; + dst[total_width] = + (i32::from(lh[0] << 1) + ((i32::from(dst[0]) + i32::from(dst[2 * total_width])) >> 1)) as i16; dst = &mut dst[2 * total_width..]; } - dst[total_width] = (i32::from(lh[total_width] << 1) - + ((i32::from(dst[0]) + i32::from(dst[0])) >> 1)) as i16; + dst[total_width] = (i32::from(lh[total_width] << 1) + ((i32::from(dst[0]) + i32::from(dst[0])) >> 1)) as i16; temp_buffer = &temp_buffer[1..]; buffer = &mut buffer[1..]; diff --git a/ironrdp/src/codecs/rfx/dwt/tests.rs b/ironrdp/src/codecs/rfx/dwt/tests.rs index 5a955fbe..a07f5755 100644 --- a/ironrdp/src/codecs/rfx/dwt/tests.rs +++ b/ironrdp/src/codecs/rfx/dwt/tests.rs @@ -31,676 +31,561 @@ fn decode_works_for_regular_values() { } const DECODED_DWT_FOR_MAX_VALUES: [i16; 4096] = [ - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, - 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, - 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, - -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, - -16383, -4, 16383, 16379, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, - -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, - 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, - 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, - 8191, 2, 8191, 16381, -8194, -32768, -2, 32764, 32764, 2, -4100, -8194, -12294, -16385, -12294, - -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, - -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, - -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, - -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, - -6, 16381, 16377, 2, -16383, -32768, -16385, -2, -16385, -32768, -16383, 2, -16383, -32768, - -16385, -2, -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, -16385, -32768, -16383, 2, - -16383, -32768, -16385, -2, -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, -16385, - -32768, -16383, 2, -16383, -32768, -16385, -2, -16385, -32768, -16383, 2, -16383, -32768, - -16385, -2, -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, -2, -2, -2, 2, -4100, -8194, - -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, - -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, - -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, - -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, - -8194, -12294, -16385, -6, 16381, 16377, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, - 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, - 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, - 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, - -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -2, 32764, 32764, 2, 4092, 8191, -4100, - -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, - -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, - 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, - 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4, 16383, 16379, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, - 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, - 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, - -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, - -16383, -4, 16383, 16379, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, - -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, - 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, - 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, - 8191, 2, 8191, 16381, -8194, -32768, -2, 32764, 32764, 2, -4100, -8194, -12294, -16385, -12294, - -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, - -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, - -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, - -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, - -6, 16381, 16377, 2, -16383, -32768, -16385, -2, -16385, -32768, -16383, 2, -16383, -32768, - -16385, -2, -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, -16385, -32768, -16383, 2, - -16383, -32768, -16385, -2, -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, -16385, - -32768, -16383, 2, -16383, -32768, -16385, -2, -16385, -32768, -16383, 2, -16383, -32768, - -16385, -2, -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, -2, -2, -2, 2, -4100, -8194, - -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, - -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, - -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, - -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, - -8194, -12294, -16385, -6, 16381, 16377, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, - 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, - 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, - 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, - -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -2, 32764, 32764, 2, 4092, 8191, -4100, - -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, - -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, - 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, - 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4, 16383, 16379, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, - 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, - 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, - -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, - -16383, -4, 16383, 16379, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, - -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, - 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, - 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, - 8191, 2, 8191, 16381, -8194, -32768, -2, 32764, 32764, 2, -4100, -8194, -12294, -16385, -12294, - -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, - -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, - -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, - -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, - -6, 16381, 16377, 2, -16383, -32768, -16385, -2, -16385, -32768, -16383, 2, -16383, -32768, - -16385, -2, -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, -16385, -32768, -16383, 2, - -16383, -32768, -16385, -2, -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, -16385, - -32768, -16383, 2, -16383, -32768, -16385, -2, -16385, -32768, -16383, 2, -16383, -32768, - -16385, -2, -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, -2, -2, -2, 2, -4100, -8194, - -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, - -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, - -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, - -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, - -8194, -12294, -16385, -6, 16381, 16377, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, - 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, - 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, - 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, - -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -2, 32764, 32764, 2, 4092, 8191, -4100, - -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, - -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, - 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, - 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4, 16383, 16379, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, - 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, - 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, - -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, - -16383, -4, 16383, 16379, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, - -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, - 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, - 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, - 8191, 2, 8191, 16381, -8194, -32768, -2, 32764, 32764, 2, -4100, -8194, -12294, -16385, -12294, - -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, - -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, - -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, - -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, - -6, 16381, 16377, 2, -16383, -32768, -16385, -2, -16385, -32768, -16383, 2, -16383, -32768, - -16385, -2, -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, -16385, -32768, -16383, 2, - -16383, -32768, -16385, -2, -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, -16385, - -32768, -16383, 2, -16383, -32768, -16385, -2, -16385, -32768, -16383, 2, -16383, -32768, - -16385, -2, -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, -2, -2, -2, 2, -4100, -8194, - -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, - -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, - -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, - -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, - -8194, -12294, -16385, -6, 16381, 16377, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, - 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, - 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, - 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, - -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -2, 32764, 32764, 2, 4092, 8191, -4100, - -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, - -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, - 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, - 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4, 16383, 16379, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, - 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, - 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, - -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, - -16383, -4, 16383, 16379, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, - -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, - 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, - 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, - 8191, 2, 8191, 16381, -8194, -32768, -2, 32764, 32764, 2, -4100, -8194, -12294, -16385, -12294, - -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, - -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, - -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, - -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, - -6, 16381, 16377, 2, -16383, -32768, -16385, -2, -16385, -32768, -16383, 2, -16383, -32768, - -16385, -2, -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, -16385, -32768, -16383, 2, - -16383, -32768, -16385, -2, -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, -16385, - -32768, -16383, 2, -16383, -32768, -16385, -2, -16385, -32768, -16383, 2, -16383, -32768, - -16385, -2, -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, -2, -2, -2, 2, -4100, -8194, - -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, - -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, - -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, - -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, - -8194, -12294, -16385, -6, 16381, 16377, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, - 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, - 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, - 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, - -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -2, 32764, 32764, 2, 4092, 8191, -4100, - -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, - -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, - 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, - 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4, 16383, 16379, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, - 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, - 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, - -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, - -16383, -4, 16383, 16379, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, - -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, - 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, - 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, - 8191, 2, 8191, 16381, -8194, -32768, -2, 32764, 32764, 2, -4100, -8194, -12294, -16385, -12294, - -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, - -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, - -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, - -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, - -6, 16381, 16377, 2, -16383, -32768, -16385, -2, -16385, -32768, -16383, 2, -16383, -32768, - -16385, -2, -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, -16385, -32768, -16383, 2, - -16383, -32768, -16385, -2, -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, -16385, - -32768, -16383, 2, -16383, -32768, -16385, -2, -16385, -32768, -16383, 2, -16383, -32768, - -16385, -2, -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, -2, -2, -2, 2, -4100, -8194, - -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, - -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, - -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, - -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, - -8194, -12294, -16385, -6, 16381, 16377, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, - 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, - 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, - 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, - -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -2, 32764, 32764, 2, 4092, 8191, -4100, - -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, - -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, - 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, - 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4, 16383, 16379, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, - 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, - 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, - -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, - -16383, -4, 16383, 16379, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, - -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, - 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, - 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, - 8191, 2, 8191, 16381, -8194, -32768, -2, 32764, 32764, 2, -4100, -8194, -12294, -16385, -12294, - -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, - -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, - -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, - -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, - -6, 16381, 16377, 2, -16383, -32768, -16385, -2, -16385, -32768, -16383, 2, -16383, -32768, - -16385, -2, -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, -16385, -32768, -16383, 2, - -16383, -32768, -16385, -2, -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, -16385, - -32768, -16383, 2, -16383, -32768, -16385, -2, -16385, -32768, -16383, 2, -16383, -32768, - -16385, -2, -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, -2, -2, -2, 2, -4100, -8194, - -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, - -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, - -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, - -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, - -8194, -12294, -16385, -6, 16381, 16377, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, - 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, - 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, - 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, - -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -2, 32764, 32764, 2, 4092, 8191, -4100, - -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, - -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, - 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, - 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4, 16383, 16379, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, - 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, - 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, - -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, - -16383, -4, 16383, 16379, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, - -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, - 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, - 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, - 8191, 2, 8191, 16381, -8194, -32768, -2, 32764, 32764, 2, -4100, -8194, -12294, -16385, -12294, - -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, - -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, - -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, - -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, - -6, 16381, 16377, 2, -16383, -32768, -16385, -2, -16385, -32768, -16383, 2, -16383, -32768, - -16385, -2, -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, -16385, -32768, -16383, 2, - -16383, -32768, -16385, -2, -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, -16385, - -32768, -16383, 2, -16383, -32768, -16385, -2, -16385, -32768, -16383, 2, -16383, -32768, - -16385, -2, -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, -2, -2, -2, 2, -4, -2, -6, - -2, -6, -2, -4, 2, -4, -2, -6, -2, -6, -2, -4, 2, -4, -2, -6, -2, -6, -2, -4, 2, -4, -2, -6, - -2, -6, -2, -4, 2, -4, -2, -6, -2, -6, -2, -4, 2, -4, -2, -6, -2, -6, -2, -4, 2, -4, -2, -6, - -2, -6, -2, -4, 2, -4, -2, -6, -2, -7, -4, -8, 2, 16383, 32764, 16381, -2, 16381, 32764, 16383, - 2, 16383, 32764, 16381, -2, 16381, 32764, 16383, 2, 16383, 32764, 16381, -2, 16381, 32764, - 16383, 2, 16383, 32764, 16381, -2, 16381, 32764, 16383, 2, 16383, 32764, 16381, -2, 16381, - 32764, 16383, 2, 16383, 32764, 16381, -2, 16381, 32764, 16383, 2, 16383, 32764, 16381, -2, - 16381, 32764, 16383, 2, 16383, 32764, 16381, -2, -4, -6, -6, 2, 16379, 32764, 16377, -2, 16377, - 32764, 16379, 2, 16379, 32764, 16377, -2, 16377, 32764, 16379, 2, 16379, 32764, 16377, -2, - 16377, 32764, 16379, 2, 16379, 32764, 16377, -2, 16377, 32764, 16379, 2, 16379, 32764, 16377, - -2, 16377, 32764, 16379, 2, 16379, 32764, 16377, -2, 16377, 32764, 16379, 2, 16379, 32764, - 16377, -2, 16377, 32764, 16379, 2, 16379, 32764, 16377, -2, -8, -6, -10, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4092, 8191, -4100, -16383, -4100, + 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, + 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, + -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, + -4, 16383, 16379, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, + 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, + 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, + -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -2, 32764, 32764, 2, -4100, -8194, -12294, + -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, + -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, + -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, + -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -6, 16381, 16377, 2, -16383, -32768, -16385, -2, + -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, + -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, + -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, + -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, -2, -2, -2, 2, -4100, -8194, -12294, -16385, -12294, -8194, + -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, + -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, + -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, + -4100, 2, -4100, -8194, -12294, -16385, -6, 16381, 16377, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, + 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, + -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, + -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -2, + 32764, 32764, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, + 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, + -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, + -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4, 16383, 16379, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, + 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, + 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, + -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4, 16383, 16379, 2, 8191, 16381, -8194, -32768, + -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, + 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, + 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, + -8194, -32768, -2, 32764, 32764, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, + -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, + -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, + -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, + -16385, -6, 16381, 16377, 2, -16383, -32768, -16385, -2, -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, + -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, + -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, + -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, -2, + -2, -2, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, + -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, + -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, + -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -6, 16381, 16377, 2, + 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, + -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, + -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, + -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -2, 32764, 32764, 2, 4092, 8191, -4100, -16383, -4100, 8191, + 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, + 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, + -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4, + 16383, 16379, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4092, 8191, -4100, + -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, + 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, + 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, + -4100, -16383, -4, 16383, 16379, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, + -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, + 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, + 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -2, 32764, 32764, 2, -4100, -8194, + -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, + -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, + -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, + -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -6, 16381, 16377, 2, -16383, -32768, -16385, + -2, -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, + -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, + -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, + -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, -2, -2, -2, 2, -4100, -8194, -12294, -16385, -12294, -8194, + -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, + -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, + -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, + -4100, 2, -4100, -8194, -12294, -16385, -6, 16381, 16377, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, + 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, + -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, + -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -2, + 32764, 32764, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, + 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, + -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, + -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4, 16383, 16379, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, + 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, + 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, + -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4, 16383, 16379, 2, 8191, 16381, -8194, -32768, + -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, + 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, + 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, + -8194, -32768, -2, 32764, 32764, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, + -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, + -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, + -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, + -16385, -6, 16381, 16377, 2, -16383, -32768, -16385, -2, -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, + -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, + -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, + -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, -2, + -2, -2, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, + -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, + -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, + -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -6, 16381, 16377, 2, + 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, + -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, + -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, + -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -2, 32764, 32764, 2, 4092, 8191, -4100, -16383, -4100, 8191, + 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, + 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, + -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4, + 16383, 16379, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4092, 8191, -4100, + -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, + 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, + 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, + -4100, -16383, -4, 16383, 16379, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, + -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, + 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, + 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -2, 32764, 32764, 2, -4100, -8194, + -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, + -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, + -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, + -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -6, 16381, 16377, 2, -16383, -32768, -16385, + -2, -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, + -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, + -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, + -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, -2, -2, -2, 2, -4100, -8194, -12294, -16385, -12294, -8194, + -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, + -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, + -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, + -4100, 2, -4100, -8194, -12294, -16385, -6, 16381, 16377, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, + 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, + -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, + -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -2, + 32764, 32764, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, + 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, + -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, + -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4, 16383, 16379, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, + 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, + 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, + -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4, 16383, 16379, 2, 8191, 16381, -8194, -32768, + -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, + 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, + 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, + -8194, -32768, -2, 32764, 32764, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, + -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, + -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, + -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, + -16385, -6, 16381, 16377, 2, -16383, -32768, -16385, -2, -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, + -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, + -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, + -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, -2, + -2, -2, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, + -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, + -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, + -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -6, 16381, 16377, 2, + 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, + -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, + -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, + -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -2, 32764, 32764, 2, 4092, 8191, -4100, -16383, -4100, 8191, + 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, + 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, + -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4, + 16383, 16379, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4092, 8191, -4100, + -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, + 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, + 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, + -4100, -16383, -4, 16383, 16379, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, + -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, + 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, + 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -2, 32764, 32764, 2, -4100, -8194, + -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, + -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, + -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, + -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -6, 16381, 16377, 2, -16383, -32768, -16385, + -2, -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, + -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, + -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, + -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, -2, -2, -2, 2, -4100, -8194, -12294, -16385, -12294, -8194, + -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, + -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, + -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, + -4100, 2, -4100, -8194, -12294, -16385, -6, 16381, 16377, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, + 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, + -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, + -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -2, + 32764, 32764, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, + 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, + -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, + -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4, 16383, 16379, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, + 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, + 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, + -4100, -16383, -4100, 8191, 4092, 2, 4092, 8191, -4100, -16383, -4, 16383, 16379, 2, 8191, 16381, -8194, -32768, + -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, + 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, + 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, -8194, -32768, -8194, 16381, 8191, 2, 8191, 16381, + -8194, -32768, -2, 32764, 32764, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, + -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, + -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, + -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, -16385, -12294, -8194, -4100, 2, -4100, -8194, -12294, + -16385, -6, 16381, 16377, 2, -16383, -32768, -16385, -2, -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, + -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, + -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, + -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, -16385, -32768, -16383, 2, -16383, -32768, -16385, -2, -2, + -2, -2, 2, -4, -2, -6, -2, -6, -2, -4, 2, -4, -2, -6, -2, -6, -2, -4, 2, -4, -2, -6, -2, -6, -2, -4, 2, -4, -2, -6, + -2, -6, -2, -4, 2, -4, -2, -6, -2, -6, -2, -4, 2, -4, -2, -6, -2, -6, -2, -4, 2, -4, -2, -6, -2, -6, -2, -4, 2, -4, + -2, -6, -2, -7, -4, -8, 2, 16383, 32764, 16381, -2, 16381, 32764, 16383, 2, 16383, 32764, 16381, -2, 16381, 32764, + 16383, 2, 16383, 32764, 16381, -2, 16381, 32764, 16383, 2, 16383, 32764, 16381, -2, 16381, 32764, 16383, 2, 16383, + 32764, 16381, -2, 16381, 32764, 16383, 2, 16383, 32764, 16381, -2, 16381, 32764, 16383, 2, 16383, 32764, 16381, -2, + 16381, 32764, 16383, 2, 16383, 32764, 16381, -2, -4, -6, -6, 2, 16379, 32764, 16377, -2, 16377, 32764, 16379, 2, + 16379, 32764, 16377, -2, 16377, 32764, 16379, 2, 16379, 32764, 16377, -2, 16377, 32764, 16379, 2, 16379, 32764, + 16377, -2, 16377, 32764, 16379, 2, 16379, 32764, 16377, -2, 16377, 32764, 16379, 2, 16379, 32764, 16377, -2, 16377, + 32764, 16379, 2, 16379, 32764, 16377, -2, 16377, 32764, 16379, 2, 16379, 32764, 16377, -2, -8, -6, -10, ]; const ENCODED_DWT: [i16; 4096] = [ - 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 128, 0, 256, 0, 0, 0, 0, -128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, - 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, -128, 0, 0, 0, 0, 0, - 0, 0, 0, 0, -128, 128, 0, 0, 0, 0, 0, 0, 0, 0, -384, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 256, 0, 0, - 0, 0, 0, 0, 0, 128, 0, -256, 512, -640, -128, 0, 0, 0, 0, 0, 0, -128, -384, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, -384, 0, 384, 0, 0, 0, 0, 0, 0, -128, 512, 512, -640, -128, 0, 0, 0, 0, 0, 0, -256, - 640, 0, 0, 0, 0, 0, 0, 256, 128, 0, 256, -640, -512, 128, 0, 0, 0, 0, 0, 0, 128, 384, -128, - 640, 0, -128, 0, 0, 0, 0, 0, -256, -256, -384, 0, 0, 0, 0, 0, 384, 0, 0, 896, 0, -512, 0, 0, 0, - 0, 0, 0, 0, 0, -128, 0, -128, 256, -128, 0, 0, 0, 0, 0, -384, 128, 640, 0, 0, 0, 0, 0, 0, -128, - 0, 0, 128, 896, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 0, 0, 0, 0, 0, 0, 256, 0, 0, 0, -256, 0, 0, - 0, 0, 0, 128, 0, -1152, -384, 640, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 0, 0, 0, 0, 0, 0, 0, 0, - -128, -128, -128, 0, 0, 0, 0, 0, 0, 768, -256, -1024, -128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, - 0, 0, 0, 0, 0, 0, -384, 0, 0, 0, 0, 0, 0, -128, 0, -128, 0, 640, 256, 384, 0, 0, 0, 0, 0, 0, 0, - 0, 128, 0, 256, 0, 0, 0, 0, 0, 0, -128, 128, 0, 0, -128, 256, 0, 0, 128, 0, 0, -128, 0, -128, - 896, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -384, -256, 0, 0, 0, 0, 0, 384, -128, 0, -128, 0, 128, 0, 0, - 0, 128, 256, -128, 0, -640, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, -384, -512, 0, 0, 0, 0, 0, -128, - -768, 128, 0, -128, 0, 0, 0, 0, 0, 0, 0, 768, 0, -128, 0, 128, 0, 0, 128, -128, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 384, -640, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, -128, 128, 1280, 0, 0, 0, -128, - 128, 0, 0, 0, 0, -128, 128, 0, 0, 0, 0, 0, 0, 896, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, -640, - -640, 384, 0, 0, 0, 0, 0, 0, 0, 0, -128, 0, -128, 0, 0, 0, 0, 0, -128, -256, 0, 0, 0, -128, 0, - 0, 0, 0, 0, 0, 384, -128, -896, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, -768, 0, 0, 0, 0, 0, 0, - -1024, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 384, 256, 512, 0, 0, 0, 0, 0, -128, 0, 0, 0, 0, 768, -128, - 0, 0, 0, 0, -128, 896, -128, 0, 0, 0, -128, -128, 0, 0, 0, 0, 0, -384, -128, 768, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 384, 128, 0, 0, 0, 0, 0, 512, 128, 256, -256, -256, 0, -128, 0, 0, 0, 0, 128, - -128, -896, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -768, 0, 0, 0, 0, 0, -128, -1280, 384, 128, 256, - 0, -256, 128, 128, 0, 0, 0, 0, 0, -128, 0, 0, 0, -128, 0, 0, 0, 0, 0, 0, 384, -256, 0, 0, 0, 0, - 0, 768, -1024, -256, 0, -256, 128, 0, 0, -128, -128, -128, 128, 128, 128, 768, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 512, 128, 0, 0, 0, 0, 0, 384, 256, 0, 128, 0, 0, 128, 128, 0, 0, 128, -256, 640, - -384, 256, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, -256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -128, 0, 0, -384, 0, 128, 0, 0, 128, 128, 0, 0, 0, 0, 0, -512, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 128, -128, -128, 0, 0, 128, 0, 0, 0, 384, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 0, 0, 0, 128, 128, 128, -256, 0, 128, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 0, -256, 128, 128, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 384, - -128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - -128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, -128, -128, 0, 0, - -128, -128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, -128, -128, 0, 0, 0, 0, - -128, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, -128, - -128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 128, 0, 0, 0, 0, 0, 0, -256, - -1024, 256, 0, 0, 0, 0, 0, 0, 0, -128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 0, 0, - 128, 0, -256, 512, 512, -128, 0, 0, 0, 0, 0, 0, -128, 384, -128, 0, 0, 0, 0, 0, 0, 128, 0, 0, - 128, 0, 0, 0, 0, 0, 0, 0, 0, -128, 384, 384, -896, -128, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, -128, 128, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 768, 384, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 128, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1024, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 128, -256, -256, 256, -128, 0, 0, -128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, -128, 0, 0, 128, 128, 384, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 0, -128, -640, -384, -512, -768, -768, 896, 128, 128, - -128, 0, 0, 0, 0, 0, 0, 0, -128, -256, -384, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 256, -128, - 0, -256, -384, 128, 128, -1024, 768, 0, -128, 128, 0, 0, 0, 0, 128, 128, 0, 0, 768, -384, -128, - 0, 0, 0, 0, 0, -128, 640, 256, -768, -256, 0, 0, 0, 256, 896, -768, -128, 0, 0, 128, 0, 0, 0, - 0, 0, 0, 0, 0, -128, -128, 128, 768, 0, 0, 0, 0, 0, 0, -256, 128, 0, 0, 0, 0, 0, 0, 0, -128, - 768, -128, 128, -768, 896, 0, 0, 0, 0, 0, 0, 0, 0, 128, -128, -128, 0, 0, 0, 0, 0, 128, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, -256, 0, -1024, 768, 768, 512, 384, 384, 512, -128, -256, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 256, -128, -128, 896, -1024, 0, 128, - -256, -512, -384, -128, 128, -384, -512, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, - 128, -384, -640, 0, 128, 0, 0, 1024, -128, -896, -1152, -896, -256, 768, 384, 0, 0, 0, 0, 0, 0, - 0, 128, 0, 0, 0, -128, -128, 0, 0, 0, 0, 0, 128, -128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, -128, 128, 0, 0, 0, 0, 0, -128, 128, - 0, 0, 128, -128, 0, 0, 0, 0, -128, 128, -128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, -128, 128, -128, 0, 0, 0, 0, 0, 0, 128, 128, 384, 384, 0, 128, 128, -128, - 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 128, 0, 0, 0, 256, 128, - -512, -640, -1024, -768, -512, 128, 0, 0, -128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, - 0, 0, 0, 0, 384, -1152, -640, 1280, 256, 256, 0, -128, 256, 768, -512, -128, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 256, -128, -128, 128, 0, 0, 0, 0, 0, -128, 512, - -256, -128, 128, -128, 128, -128, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, -128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, -128, 0, -128, 128, 128, 0, 128, 0, -128, 384, -128, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, -128, -128, 128, 128, 128, 0, - -256, -384, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, - 512, 256, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, -256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -256, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -512, -256, 256, 0, 0, 0, 0, 0, 0, 0, -256, -256, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, -256, 0, 0, 0, 0, 0, 0, 0, 0, -256, 256, -512, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -256, 0, 0, 0, 0, 0, 0, 0, 0, -256, 0, 0, 256, -256, 0, - 0, 0, 0, 0, -256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -256, 0, 0, 0, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -256, 0, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 256, 0, 0, 0, 0, 0, 0, 0, 256, 0, 0, 0, 0, 0, 0, 0, 0, -256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 256, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -256, 0, 256, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 256, 0, 0, 0, 0, 0, 0, 0, -256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -512, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -256, 0, - -256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - -256, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 256, 0, 0, 0, 0, 0, 0, 256, 0, 0, 0, 256, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -256, 0, 0, - 256, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -256, - -256, 512, 0, -256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 256, -256, 0, 0, 0, 0, 0, 0, 0, 256, -256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -256, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -256, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -256, -256, 256, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -256, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, - 64, 0, 0, 64, 0, 0, 0, 0, 0, 0, -64, 0, 0, -64, -64, 0, -320, 192, -128, 64, 0, -64, 0, 0, 0, - 0, 64, -256, -64, 0, 0, 64, -320, -128, 64, 64, 64, 384, -128, -64, 0, 64, -256, 1344, 384, 0, - 0, -320, -64, 64, 128, 256, 256, 192, 320, 0, 0, -64, 256, -512, -704, 0, 0, -128, 512, -64, 0, - 192, 64, -1152, 1024, 64, -64, 128, 0, -256, -256, 0, 0, -384, 64, -192, -64, 64, 896, -1472, - 64, 0, 64, 0, 64, -192, -64, 0, 0, 0, -320, -128, 192, -64, 704, -512, -192, 0, 64, 0, -64, - -192, 64, 0, 896, 64, 0, -64, 0, 0, -960, -128, 448, 64, -64, 64, -192, -64, -64, -128, -896, - 0, 64, 0, 0, 320, -1152, 896, -448, -64, -64, -128, 832, 64, -64, 192, -896, 64, -128, 128, - -64, 704, -1024, -128, 128, -64, 64, 0, -576, 0, -64, 1216, 64, 64, 64, 0, 128, 128, 512, 0, 0, - 0, 0, 64, -832, 0, 0, -384, -192, -64, 0, -128, -128, 384, 832, 0, 0, 0, 64, 576, 64, 0, 0, - -64, 128, 0, 0, 64, 0, -320, 0, 0, -64, 0, 0, 64, 64, 0, 0, 0, 0, 0, 0, 0, 0, 64, -128, -256, - 64, 256, 256, -128, 0, 0, -64, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, -256, -64, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, -64, 64, 64, -64, -192, 0, -128, -192, 0, 0, 0, 0, - 0, 0, 0, -128, -128, 0, 64, -64, 128, 0, 0, 0, 64, -64, 64, 0, 64, -512, -64, 0, 0, 64, -192, - 0, 0, -64, 192, 0, 0, 64, -192, -192, -192, 192, -256, 0, 0, 0, 64, 0, 0, 192, -192, 192, -64, - 64, 64, 0, 64, -320, 1280, 0, 0, 0, -64, 128, 448, -64, 0, 192, -128, 64, 0, 256, -64, 0, 64, - 0, 64, -192, 128, -576, -768, -1216, 640, -64, 128, 0, -64, 64, 576, -832, 0, 0, 64, -256, - -832, 0, 0, 1024, -448, 0, 1024, -192, 64, -128, -64, 128, -64, 0, 0, 0, 64, 64, 0, 0, 256, - -192, -1088, -896, 128, -256, -896, -64, 0, -64, 64, 0, -64, 0, 64, 64, -128, 64, 192, 1088, - 832, 960, 576, -128, 0, 128, -192, 128, 128, -128, 128, 64, -64, 64, 0, 0, -128, 320, 448, -64, - 0, 64, 256, -448, -896, -448, 128, -128, 0, 0, 0, 0, 0, 0, -64, 64, 0, -192, 1088, 512, -64, - 256, 512, -576, 384, 0, 64, 0, 0, 0, 0, 0, 0, -64, 64, 0, 0, 0, 0, 0, -128, -128, 128, 0, 0, - 320, -64, 0, 0, -64, 0, 0, 0, 0, 0, 0, 0, -320, -256, -128, -384, -64, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, -448, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 0, -512, - -128, 0, 0, 0, 0, 0, 0, -128, -128, 128, -128, 0, 0, 0, 0, 256, 256, 0, 0, 0, 384, 0, 0, 128, - 128, -128, 128, 0, 0, 0, 0, -512, -1024, 0, 0, 0, -128, 0, 0, -128, -128, -128, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 128, 128, -128, -384, 384, 0, 0, 0, -128, 128, 0, 0, 0, 0, 128, -256, 0, 0, - -128, 384, 128, 256, -128, 0, 0, 0, -256, -128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 128, 128, 0, - -384, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, -128, 256, 0, -128, 128, 0, 0, 0, 128, 128, 0, 0, 0, 0, - 0, -128, 0, 0, 0, -128, 0, -256, 0, 0, 256, 256, 128, -128, 0, -128, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -256, 256, 0, 0, 128, -256, 128, -128, -128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, - 0, 0, 0, -128, -256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, -128, -128, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, -64, -64, 32, 0, -32, -64, 0, -32, 256, 192, - 96, 0, -32, -192, 0, 128, 160, -416, -1696, -96, -64, 0, -64, -480, -224, 800, 256, 96, 224, - -800, 832, -384, 160, 640, 192, 224, -160, -416, 64, -64, 160, -1728, 320, -64, 960, 96, -1472, - 352, -288, -32, -64, 32, -576, -64, 256, -96, 96, -160, -128, -32, -160, -64, -96, 0, 32, -320, - -96, 32, -32, 32, -160, -32, -96, 96, 224, -448, -416, 320, 0, -32, 352, 64, 160, 64, 384, 0, - -256, 768, -672, -1568, -128, 320, 288, 992, -32, 160, 320, 32, 416, -1824, -1664, 288, 384, - -192, -576, 160, 32, -96, -128, -32, 416, 672, 256, 352, 96, 224, 224, -64, -96, -32, 0, 64, - -448, -608, -224, 32, -32, -32, -96, -64, 0, 0, -32, -32, -32, -224, 96, 128, 224, -32, -192, - -448, -32, -224, 96, -384, -512, -64, 64, -32, -288, 32, 224, -672, 800, -128, -64, -736, 64, - 64, 96, -128, 704, -128, 160, -128, -64, -64, 128, -224, 0, 0, 96, 64, 544, -192, 224, 160, 96, - 32, -160, 0, 32, 0, 0, 192, 32, -128, 64, 0, -32, 0, -32, -480, -384, -384, -608, -736, 864, - 448, 96, 1184, 352, -384, -480, -512, 928, 800, 1472, 3296, 2752, 1376, 832, 352, 1216, 992, - 1792, 2752, 2016, 4096, 3680, 864, 2304, -992, 1728, 4000, 288, 3104, 2144, 320, 2144, -1088, - 1920, 2720, 3264, 3424, 3616, 192, 672, -320, 320, -512, 4032, 3456, 2720, -320, 1888, 1664, - 1248, 960, 1120, 1696, 480, -96, + 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 256, 0, 0, 0, 0, -128, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, -128, 0, 0, 0, 0, 0, 0, + 0, 0, 0, -128, 128, 0, 0, 0, 0, 0, 0, 0, 0, -384, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 256, 0, 0, 0, 0, 0, 0, 0, 128, 0, + -256, 512, -640, -128, 0, 0, 0, 0, 0, 0, -128, -384, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -384, 0, 384, 0, 0, 0, 0, 0, 0, + -128, 512, 512, -640, -128, 0, 0, 0, 0, 0, 0, -256, 640, 0, 0, 0, 0, 0, 0, 256, 128, 0, 256, -640, -512, 128, 0, 0, + 0, 0, 0, 0, 128, 384, -128, 640, 0, -128, 0, 0, 0, 0, 0, -256, -256, -384, 0, 0, 0, 0, 0, 384, 0, 0, 896, 0, -512, + 0, 0, 0, 0, 0, 0, 0, 0, -128, 0, -128, 256, -128, 0, 0, 0, 0, 0, -384, 128, 640, 0, 0, 0, 0, 0, 0, -128, 0, 0, 128, + 896, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 0, 0, 0, 0, 0, 0, 256, 0, 0, 0, -256, 0, 0, 0, 0, 0, 128, 0, -1152, -384, + 640, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 0, 0, 0, 0, 0, 0, 0, 0, -128, -128, -128, 0, 0, 0, 0, 0, 0, 768, -256, + -1024, -128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 0, 0, 0, 0, 0, 0, -384, 0, 0, 0, 0, 0, 0, -128, 0, -128, 0, 640, + 256, 384, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 256, 0, 0, 0, 0, 0, 0, -128, 128, 0, 0, -128, 256, 0, 0, 128, 0, 0, -128, + 0, -128, 896, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -384, -256, 0, 0, 0, 0, 0, 384, -128, 0, -128, 0, 128, 0, 0, 0, 128, + 256, -128, 0, -640, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, -384, -512, 0, 0, 0, 0, 0, -128, -768, 128, 0, -128, 0, 0, 0, + 0, 0, 0, 0, 768, 0, -128, 0, 128, 0, 0, 128, -128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 384, -640, 0, 0, 0, 0, 0, 0, 0, + 0, 0, -128, -128, 128, 1280, 0, 0, 0, -128, 128, 0, 0, 0, 0, -128, 128, 0, 0, 0, 0, 0, 0, 896, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 128, -640, -640, 384, 0, 0, 0, 0, 0, 0, 0, 0, -128, 0, -128, 0, 0, 0, 0, 0, -128, -256, 0, 0, 0, -128, 0, + 0, 0, 0, 0, 0, 384, -128, -896, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, -768, 0, 0, 0, 0, 0, 0, -1024, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 384, 256, 512, 0, 0, 0, 0, 0, -128, 0, 0, 0, 0, 768, -128, 0, 0, 0, 0, -128, 896, -128, 0, 0, 0, -128, + -128, 0, 0, 0, 0, 0, -384, -128, 768, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 384, 128, 0, 0, 0, 0, 0, 512, 128, 256, -256, + -256, 0, -128, 0, 0, 0, 0, 128, -128, -896, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -768, 0, 0, 0, 0, 0, -128, -1280, + 384, 128, 256, 0, -256, 128, 128, 0, 0, 0, 0, 0, -128, 0, 0, 0, -128, 0, 0, 0, 0, 0, 0, 384, -256, 0, 0, 0, 0, 0, + 768, -1024, -256, 0, -256, 128, 0, 0, -128, -128, -128, 128, 128, 128, 768, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 512, 128, + 0, 0, 0, 0, 0, 384, 256, 0, 128, 0, 0, 128, 128, 0, 0, 128, -256, 640, -384, 256, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, + -256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 0, 0, -384, 0, 128, 0, 0, 128, 128, 0, 0, 0, 0, 0, + -512, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 128, -128, -128, 0, 0, 128, 0, 0, 0, 384, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 0, 0, 0, 128, 128, 128, -256, 0, 128, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 0, -256, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 384, -128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, -128, -128, 0, 0, -128, -128, + 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, -128, -128, 0, 0, 0, 0, -128, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, -128, -128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 128, 0, 0, + 0, 0, 0, 0, -256, -1024, 256, 0, 0, 0, 0, 0, 0, 0, -128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 0, 0, + 128, 0, -256, 512, 512, -128, 0, 0, 0, 0, 0, 0, -128, 384, -128, 0, 0, 0, 0, 0, 0, 128, 0, 0, 128, 0, 0, 0, 0, 0, + 0, 0, 0, -128, 384, 384, -896, -128, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 128, 0, 0, 0, + 0, 0, 0, 0, 128, 0, 0, 768, 384, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, -1024, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, -256, -256, 256, -128, 0, 0, -128, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 0, 0, 128, 128, 384, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 0, -128, -640, -384, -512, -768, -768, 896, 128, 128, -128, 0, 0, 0, 0, 0, 0, 0, + -128, -256, -384, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 256, -128, 0, -256, -384, 128, 128, -1024, 768, 0, -128, + 128, 0, 0, 0, 0, 128, 128, 0, 0, 768, -384, -128, 0, 0, 0, 0, 0, -128, 640, 256, -768, -256, 0, 0, 0, 256, 896, + -768, -128, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, -128, -128, 128, 768, 0, 0, 0, 0, 0, 0, -256, 128, 0, 0, 0, 0, 0, 0, + 0, -128, 768, -128, 128, -768, 896, 0, 0, 0, 0, 0, 0, 0, 0, 128, -128, -128, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, -128, -256, 0, -1024, 768, 768, 512, 384, 384, 512, -128, -256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 256, -128, -128, 896, -1024, 0, 128, -256, -512, -384, -128, 128, -384, -512, 128, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 128, -384, -640, 0, 128, 0, 0, 1024, -128, -896, -1152, -896, -256, 768, 384, 0, + 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, -128, -128, 0, 0, 0, 0, 0, 128, -128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, -128, 128, 0, 0, 0, 0, 0, -128, 128, 0, 0, 128, -128, 0, 0, 0, + 0, -128, 128, -128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 128, -128, 0, 0, 0, 0, + 0, 0, 128, 128, 384, 384, 0, 128, 128, -128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, + 128, 0, 0, 0, 256, 128, -512, -640, -1024, -768, -512, 128, 0, 0, -128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 128, 0, 0, 0, 0, 384, -1152, -640, 1280, 256, 256, 0, -128, 256, 768, -512, -128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 256, -128, -128, 128, 0, 0, 0, 0, 0, -128, 512, -256, -128, 128, -128, 128, -128, + 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, -128, 128, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, -128, 0, -128, 128, 128, 0, 128, + 0, -128, 384, -128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, -128, -128, 128, 128, 128, + 0, -256, -384, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 512, 256, 128, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -256, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -256, 256, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -512, -256, 256, 0, 0, 0, 0, + 0, 0, 0, -256, -256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -256, 0, 0, 0, 0, 0, 0, 0, 0, -256, 256, -512, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -256, 0, 0, 0, 0, 0, 0, 0, 0, -256, 0, 0, 256, -256, 0, 0, 0, 0, 0, + -256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -256, 0, 0, 0, 256, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -256, 0, 256, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 256, 0, 0, 0, 0, 0, 0, 0, 256, 0, 0, 0, 0, 0, 0, 0, 0, -256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 256, + 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -256, 0, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 256, 0, 0, 0, + 0, 0, 0, 0, -256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -512, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -256, 0, -256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, -256, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 256, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 256, 0, 0, 0, 0, 0, 0, 256, 0, 0, 0, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -256, 0, 0, 256, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, -256, -256, 512, 0, -256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 256, -256, 0, 0, 0, 0, 0, 0, 0, 256, -256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, -256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, -256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -256, + -256, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -256, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 64, 0, 0, 64, 0, 0, 0, 0, 0, 0, -64, 0, 0, -64, + -64, 0, -320, 192, -128, 64, 0, -64, 0, 0, 0, 0, 64, -256, -64, 0, 0, 64, -320, -128, 64, 64, 64, 384, -128, -64, + 0, 64, -256, 1344, 384, 0, 0, -320, -64, 64, 128, 256, 256, 192, 320, 0, 0, -64, 256, -512, -704, 0, 0, -128, 512, + -64, 0, 192, 64, -1152, 1024, 64, -64, 128, 0, -256, -256, 0, 0, -384, 64, -192, -64, 64, 896, -1472, 64, 0, 64, 0, + 64, -192, -64, 0, 0, 0, -320, -128, 192, -64, 704, -512, -192, 0, 64, 0, -64, -192, 64, 0, 896, 64, 0, -64, 0, 0, + -960, -128, 448, 64, -64, 64, -192, -64, -64, -128, -896, 0, 64, 0, 0, 320, -1152, 896, -448, -64, -64, -128, 832, + 64, -64, 192, -896, 64, -128, 128, -64, 704, -1024, -128, 128, -64, 64, 0, -576, 0, -64, 1216, 64, 64, 64, 0, 128, + 128, 512, 0, 0, 0, 0, 64, -832, 0, 0, -384, -192, -64, 0, -128, -128, 384, 832, 0, 0, 0, 64, 576, 64, 0, 0, -64, + 128, 0, 0, 64, 0, -320, 0, 0, -64, 0, 0, 64, 64, 0, 0, 0, 0, 0, 0, 0, 0, 64, -128, -256, 64, 256, 256, -128, 0, 0, + -64, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, -256, -64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, + -64, 64, 64, -64, -192, 0, -128, -192, 0, 0, 0, 0, 0, 0, 0, -128, -128, 0, 64, -64, 128, 0, 0, 0, 64, -64, 64, 0, + 64, -512, -64, 0, 0, 64, -192, 0, 0, -64, 192, 0, 0, 64, -192, -192, -192, 192, -256, 0, 0, 0, 64, 0, 0, 192, -192, + 192, -64, 64, 64, 0, 64, -320, 1280, 0, 0, 0, -64, 128, 448, -64, 0, 192, -128, 64, 0, 256, -64, 0, 64, 0, 64, + -192, 128, -576, -768, -1216, 640, -64, 128, 0, -64, 64, 576, -832, 0, 0, 64, -256, -832, 0, 0, 1024, -448, 0, + 1024, -192, 64, -128, -64, 128, -64, 0, 0, 0, 64, 64, 0, 0, 256, -192, -1088, -896, 128, -256, -896, -64, 0, -64, + 64, 0, -64, 0, 64, 64, -128, 64, 192, 1088, 832, 960, 576, -128, 0, 128, -192, 128, 128, -128, 128, 64, -64, 64, 0, + 0, -128, 320, 448, -64, 0, 64, 256, -448, -896, -448, 128, -128, 0, 0, 0, 0, 0, 0, -64, 64, 0, -192, 1088, 512, + -64, 256, 512, -576, 384, 0, 64, 0, 0, 0, 0, 0, 0, -64, 64, 0, 0, 0, 0, 0, -128, -128, 128, 0, 0, 320, -64, 0, 0, + -64, 0, 0, 0, 0, 0, 0, 0, -320, -256, -128, -384, -64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -448, 64, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, -128, 0, -512, -128, 0, 0, 0, 0, 0, 0, -128, -128, 128, -128, 0, 0, 0, 0, 256, 256, 0, 0, 0, 384, + 0, 0, 128, 128, -128, 128, 0, 0, 0, 0, -512, -1024, 0, 0, 0, -128, 0, 0, -128, -128, -128, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 128, 128, -128, -384, 384, 0, 0, 0, -128, 128, 0, 0, 0, 0, 128, -256, 0, 0, -128, 384, 128, 256, -128, 0, 0, + 0, -256, -128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 128, 128, 0, -384, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, -128, 256, 0, + -128, 128, 0, 0, 0, 128, 128, 0, 0, 0, 0, 0, -128, 0, 0, 0, -128, 0, -256, 0, 0, 256, 256, 128, -128, 0, -128, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, -256, 256, 0, 0, 128, -256, 128, -128, -128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, + 0, 0, 0, 0, -128, -256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, -128, -128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, -64, -64, 32, 0, -32, -64, 0, -32, 256, 192, 96, 0, -32, -192, 0, 128, 160, -416, + -1696, -96, -64, 0, -64, -480, -224, 800, 256, 96, 224, -800, 832, -384, 160, 640, 192, 224, -160, -416, 64, -64, + 160, -1728, 320, -64, 960, 96, -1472, 352, -288, -32, -64, 32, -576, -64, 256, -96, 96, -160, -128, -32, -160, -64, + -96, 0, 32, -320, -96, 32, -32, 32, -160, -32, -96, 96, 224, -448, -416, 320, 0, -32, 352, 64, 160, 64, 384, 0, + -256, 768, -672, -1568, -128, 320, 288, 992, -32, 160, 320, 32, 416, -1824, -1664, 288, 384, -192, -576, 160, 32, + -96, -128, -32, 416, 672, 256, 352, 96, 224, 224, -64, -96, -32, 0, 64, -448, -608, -224, 32, -32, -32, -96, -64, + 0, 0, -32, -32, -32, -224, 96, 128, 224, -32, -192, -448, -32, -224, 96, -384, -512, -64, 64, -32, -288, 32, 224, + -672, 800, -128, -64, -736, 64, 64, 96, -128, 704, -128, 160, -128, -64, -64, 128, -224, 0, 0, 96, 64, 544, -192, + 224, 160, 96, 32, -160, 0, 32, 0, 0, 192, 32, -128, 64, 0, -32, 0, -32, -480, -384, -384, -608, -736, 864, 448, 96, + 1184, 352, -384, -480, -512, 928, 800, 1472, 3296, 2752, 1376, 832, 352, 1216, 992, 1792, 2752, 2016, 4096, 3680, + 864, 2304, -992, 1728, 4000, 288, 3104, 2144, 320, 2144, -1088, 1920, 2720, 3264, 3424, 3616, 192, 672, -320, 320, + -512, 4032, 3456, 2720, -320, 1888, 1664, 1248, 960, 1120, 1696, 480, -96, ]; const DECODED_DWT: [i16; 4096] = [ - -32, 16, 64, 272, -32, -16, 0, -16, -32, -24, -16, -8, 0, -24, -48, -72, -96, -90, -84, -78, - -72, -98, -124, -150, -176, -192, -208, -224, -240, -256, -272, -288, -304, -304, -304, -304, - -304, -336, -368, -400, -432, -450, -468, -486, -504, -522, -540, -558, -576, -598, -620, -642, - -664, -686, -708, -730, -752, -768, -784, -800, -816, -816, -816, -816, 68, 120, 172, 240, 53, - 55, 57, 43, 30, 32, 34, 36, 38, 20, 2, -16, -34, -36, -38, -40, -42, -68, -94, -120, -146, - -149, -152, -186, -221, -228, -234, -241, -247, -255, -262, -269, -276, -303, -330, -357, -384, - -404, -424, -444, -463, -485, -507, -529, -550, -573, -595, -617, -639, -674, -708, -710, -712, - -733, -754, -775, -796, -796, -796, -796, 168, 224, 281, 209, 138, 126, 115, 103, 92, 88, 84, - 80, 76, 64, 52, 40, 28, 18, 8, -2, -12, -38, -64, -90, -116, -106, -95, -148, -201, -199, -196, - -193, -190, -205, -219, -233, -247, -270, -292, -314, -336, -358, -379, -401, -422, -448, -473, - -499, -524, -547, -569, -592, -614, -661, -707, -690, -672, -698, -724, -750, -776, -776, -776, - -776, 268, 312, 357, 274, 191, 181, 172, 163, 154, 144, 134, 124, 114, 108, 102, 80, 58, 56, - 54, 52, 50, 24, -2, -44, -86, -63, -38, -94, -150, -138, -126, -146, -165, -171, -176, -198, - -219, -237, -254, -271, -288, -312, -335, -358, -381, -411, -440, -469, -498, -521, -544, -567, - -589, -648, -707, -670, -632, -663, -694, -725, -756, -756, -756, -756, 368, 401, 434, 339, - 244, 237, 230, 223, 216, 200, 184, 168, 152, 152, 152, 120, 88, 94, 100, 106, 112, 86, 60, 2, - -56, -19, 19, -40, -98, -77, -55, -98, -140, -137, -133, -162, -190, -203, -215, -228, -240, - -265, -290, -315, -340, -373, -406, -439, -472, -495, -518, -541, -564, -635, -706, -649, -592, - -628, -664, -700, -736, -736, -736, -736, 404, 557, 454, 383, 313, 532, 239, 282, 326, 304, - 282, 260, 238, 246, 254, 118, 238, 196, 154, 32, -90, -88, -86, 76, 238, 242, 247, 28, -191, - -232, -273, -123, 29, -63, -155, -151, -146, -164, -181, -199, -216, -241, -266, -291, -315, - -346, -377, -408, -438, -448, -457, -498, -539, -597, -654, -503, -608, -625, -642, -675, -708, - -708, -708, -708, 440, 713, 475, 428, 382, 827, 249, 342, 436, 408, 380, 352, 324, 340, 356, - -140, -124, 42, 208, 214, 220, 250, 280, 406, 532, 504, 476, 352, 229, 125, 21, -147, -314, - -245, -176, -139, -101, -124, -147, -170, -192, -217, -241, -266, -290, -319, -347, -376, -404, - -400, -395, -455, -514, -558, -601, -357, -624, -622, -620, -650, -680, -680, -680, -680, 604, - 677, 495, 457, 419, 770, 354, 386, 418, 416, 414, 380, 346, 258, -342, -302, -6, 288, 582, 604, - 626, 588, 550, 688, 826, 829, 833, 724, 616, 482, 347, 181, 15, -139, -293, -175, -57, -85, - -113, -141, -168, -193, -217, -241, -265, -292, -318, -344, -370, -352, -334, -412, -489, -487, - -485, -403, -576, -587, -598, -625, -652, -652, -652, -652, 1280, 1154, 1028, 998, 968, 970, - 460, 430, 400, 424, 448, 408, 368, 432, -528, -208, 112, 534, 956, 994, 1032, 926, 820, 970, - 1120, 1155, 1190, 1097, 1004, 839, 674, 509, 344, 223, 102, 45, -12, -45, -78, -111, -144, - -168, -192, -216, -240, -264, -288, -312, -336, -304, -272, -368, -464, -416, -368, -448, -528, - -552, -576, -600, -624, -624, -624, -624, 770, 671, 573, 554, 536, 629, 467, 464, 462, 492, - 523, 490, 457, 281, -406, -101, 204, 599, 995, 1310, 1370, 1297, 1225, 1296, 1368, 1433, 1498, - 1403, 1308, 1185, 1062, 875, 688, 586, 485, 304, 123, -83, -32, -77, -122, -175, -227, -200, - -172, -194, -217, -239, -261, -315, -368, -326, -283, -361, -438, -452, -465, -515, -565, -583, - -601, -617, -633, -633, 772, 701, 630, 623, 616, 545, 474, 499, 524, 561, 599, 572, 546, 131, - -283, 6, 296, 665, 1034, 1627, 1708, 1669, 1630, 1623, 1616, 1711, 1806, 1709, 1612, 1531, - 1450, 1241, 1032, 950, 869, 563, 258, -120, 15, -43, -100, -181, -262, -183, -103, -124, -145, - -166, -186, -325, -464, -283, -102, -305, -508, -455, -402, -478, -554, -566, -578, -610, -642, - -642, 774, 730, 687, 675, 664, 620, 577, 581, 586, 598, 610, 590, 571, -147, -97, 209, 516, - 794, 1073, 1575, 1822, 1976, 1875, 1869, 1864, 1989, 2114, 2015, 1916, 1877, 1838, 1607, 1376, - 1266, 1156, 902, 137, -61, -3, -121, -238, -124, -9, -70, -131, -166, -201, -221, -239, -272, - -304, -129, -209, -298, -386, -427, -467, -937, -895, -549, -459, -667, -619, -619, 776, 760, - 744, 728, 712, 696, 680, 664, 648, 635, 622, 609, 596, -425, 90, 413, 736, 924, 1112, 1524, - 1936, 2284, 2120, 2116, 2112, 2267, 2422, 2321, 2220, 2223, 2226, 1973, 1720, 1582, 1444, 1242, - 16, -2, -20, 58, 136, -66, -267, -213, -158, -208, -257, -275, -292, -218, -144, 26, -316, - -290, -264, -142, -20, 2956, 2860, -788, -852, -980, -596, -596, 826, 807, 789, 770, 752, 749, - 747, 744, 742, 677, 613, 517, 421, -286, 288, 574, 860, 1081, 1303, 1668, 2034, 2313, 2337, - 2344, 2352, 2453, 2554, 2575, 2596, 2507, 2418, 2249, 2080, 1961, 1843, 925, 7, 40, 74, 748, - 654, 451, 250, 48, -154, -108, -62, -112, -161, -29, 104, 44, -271, -275, -278, -842, 1411, - 3007, 3323, 327, -1389, -1197, -493, -493, 876, 855, 834, 813, 792, 803, 814, 825, 836, 720, - 605, 681, 758, 110, 487, 735, 984, 1239, 1494, 1813, 2132, 2343, 2554, 2573, 2592, 2639, 2686, - 2829, 2972, 2791, 2610, 2525, 2440, 2341, 2243, 608, -2, 83, 169, 1438, 1172, 969, 767, 565, - 363, 248, 134, 52, -30, -95, -160, -193, -226, -259, -292, 763, -742, 2290, 1738, -1118, -902, - -902, -390, -390, 926, 902, 879, 855, 832, 824, 817, 809, 802, 763, 724, 397, 2375, 970, 589, - 848, 1108, 1396, 1685, 1941, 2198, 2468, 2739, 2785, 2832, 2889, 2946, 3179, 2900, 3059, 2962, - 2849, 2736, 2897, 2546, -365, 309, 206, 871, 1760, 1626, 1471, 1316, 1146, 975, 844, 714, 599, - 485, 350, 216, 145, 75, -356, 750, 2687, 529, -1067, -615, -835, -799, -847, -383, -383, 976, - 950, 924, 898, 872, 846, 820, 794, 768, 806, 844, 882, 1432, 2598, 692, 962, 1232, 1554, 1876, - 2070, 2264, 2594, 2924, 2998, 3072, 3139, 3206, 3273, 2316, 3071, 3314, 3173, 3032, 2941, 1826, - -57, 108, 73, 1574, 2083, 2080, 1973, 1866, 1727, 1588, 1441, 1294, 1147, 1000, 796, 592, 484, - 376, 828, 256, 772, -248, -72, -408, 984, -184, -536, -376, -376, 1026, 997, 969, 941, 913, - 888, 864, 840, 816, 762, 709, 768, 1339, 2269, 2176, 1411, 1414, 1677, 1941, 2188, 2436, 2730, - 3023, 3157, 3291, 3350, 3409, 3420, 2152, 3001, 3594, 3403, 3213, 3234, 951, 12, 97, -302, - 2883, 2756, 2373, 2312, 2252, 2144, 2036, 1861, 1687, 1545, 1403, 1254, 1106, 974, 842, 1229, - 1105, 21, 217, 46, -381, 1912, 3181, 2765, 301, -723, 1076, 1045, 1015, 984, 954, 931, 909, - 886, 864, 719, 575, 654, 1246, 1685, 3149, 1604, 1596, 1801, 2006, 2307, 2609, 2866, 3123, - 3316, 3510, 3561, 3613, 3568, 1988, 2931, 3875, 3634, 3394, 3527, 76, 81, 86, 859, 3168, 2917, - 2666, 2652, 2639, 2561, 2484, 2282, 2081, 1943, 1806, 1713, 1621, 1464, 1308, 1119, 931, 550, - 170, -92, -354, 1560, 3986, 1970, -558, -558, 1126, 1093, 1060, 1027, 995, 974, 953, 932, 912, - 900, 888, -340, 1249, 1757, 2521, 2421, 1810, 2036, 2263, 2522, 2781, 3066, 3351, 3443, 3537, - 3612, 3688, 3476, 2496, 3021, 3803, 3833, 3863, 2844, 33, 134, -21, 2100, 3197, 3062, 2927, - 2944, 2961, 2882, 2804, 2607, 2410, 2309, 2209, 2140, 2071, 1842, 1614, 1329, 1044, 663, 283, - 10, -263, -488, -201, -201, -457, -457, 1176, 1141, 1106, 1071, 1036, 1017, 998, 979, 960, 825, - 690, 203, 740, 1573, 1894, 3239, 2024, 2272, 2521, 2737, 2954, 3010, 3067, 3315, 3564, 3664, - 3764, 3384, 3004, 3112, 3732, 3776, 3820, 1905, -10, 187, -128, 3341, 3226, 3207, 3188, 3236, - 3284, 3204, 3124, 2932, 2740, 2676, 2612, 2567, 2522, 2221, 1920, 1539, 1158, 777, 396, 112, - -172, -488, -292, -324, -356, -356, 1194, 1162, 1131, 1100, 1069, 1047, 1026, 973, 920, 969, - 507, 381, 767, 1428, 1834, 2800, 2486, 2347, 2722, 2920, 3118, 3290, 3462, 3266, 3071, 3157, - 3243, 3521, 3800, 3674, 3548, 3710, 3873, 874, 179, 92, 517, 3440, 3291, 3334, 3377, 3403, - 3430, 3361, 3292, 3174, 3057, 3004, 2951, 2761, 2572, 2223, 1874, 1554, 1235, 884, 533, 220, - -93, -470, -335, -319, -303, -303, 1212, 1184, 1157, 1129, 1102, 1078, 1055, 967, 880, 1114, - 325, 559, 794, 1284, 1775, 2361, 2948, 2423, 2923, 3103, 3283, 3314, 3346, 3474, 3602, 3674, - 3747, 3659, 3572, 3980, 3877, 3901, 3926, -157, 368, 253, 1674, 3795, 3356, 3461, 3566, 3571, - 3577, 3518, 3460, 3417, 3375, 3332, 3290, 2956, 2623, 2225, 1828, 1570, 1313, 991, 670, 328, - -14, -452, -378, -314, -250, -250, 1230, 1206, 1182, 1158, 1135, 1109, 1083, 1025, 968, 779, - 78, 481, 885, 1284, 1939, 2466, 3250, 2627, 2772, 3158, 3543, 3514, 3486, 3729, 3717, 3775, - 3834, 3781, 3728, 3934, 3885, 3916, 2667, 92, 333, 174, 2831, 3702, 3549, 3588, 3627, 3643, - 3659, 3643, 3628, 3676, 3724, 3436, 3149, 2847, 2545, 2275, 2006, 1730, 1454, 1114, 775, 388, - 1, -402, -293, -309, -325, -325, 1248, 1228, 1208, 1188, 1168, 1140, 1112, 1084, 1056, 700, - 344, 660, 976, 1284, 2104, 2316, 3040, 2319, 2110, 2189, 2268, 2691, 3114, 3729, 3832, 3877, - 3922, 3903, 3884, 3889, 3894, 3931, 1408, 341, 298, 95, 3988, 3609, 3742, 3715, 3688, 3715, - 3742, 3769, 3796, 3679, 3562, 3285, 3008, 2738, 2468, 2326, 2184, 1890, 1596, 1238, 880, 448, - 16, -352, -208, -304, -400, -400, 1296, 1284, 1272, 1260, 1249, 1165, 1081, 1093, 1106, 232, - 382, 677, 971, 973, 1232, 834, 693, 538, 639, 565, 490, 563, 637, -106, 944, 2358, 3773, 3795, - 4074, 3964, 3855, 4337, 212, 204, 197, 1342, 4023, 3813, 3860, 3811, 3762, 3766, 3771, 3776, - 3781, 3604, 3427, 3202, 2977, 2838, 2699, 2400, 2101, 1982, 1607, 1280, 954, 545, -120, -321, - -266, -314, -362, -362, 1344, 1340, 1337, 1333, 1330, 1190, 1051, 1103, 1156, 20, 933, 950, - 967, 919, 872, 889, 906, 805, 705, 733, 761, 740, 720, 668, 616, 328, 40, 1640, 3752, 3784, - 3816, 3208, 40, 580, 97, 2589, 4058, 4018, 3979, 3907, 3836, 3818, 3801, 3784, 3767, 3529, - 3292, 3375, 3458, 3706, 3954, 3754, 3555, 2843, 1619, 1067, 516, 386, -256, -290, -324, -324, - -324, -324, 1392, 1364, 1337, 1310, 1283, 1247, 1212, 969, 982, 1424, 1100, 1079, 1058, 1073, - 1088, 815, 799, 1056, 803, 773, 743, 645, 547, 769, 736, 649, 563, 332, 102, 1939, 4033, 1982, - 444, 332, -36, 4076, 4093, 4047, 4001, 3955, 3910, 3870, 3831, 3791, 3752, 3806, 3861, 3836, - 3811, 3678, 3545, 3380, 3216, 3639, 3807, 2342, 1134, 1091, 24, -387, -286, -286, -286, -286, - 1440, 1389, 1338, 1287, 1236, 1305, 1374, 1091, 1320, 1037, 1267, 1208, 1150, 715, 281, 486, - 1204, 1564, 901, 1325, 1750, 1830, 1911, 1383, 344, 459, 574, 817, 548, 351, 666, 757, 336, - 340, 856, 4028, 4128, 4076, 4024, 4004, 3984, 3922, 3861, 3799, 3738, 3828, 3919, 3785, 3652, - 3394, 3137, 3007, 2878, 2900, 2923, 3105, 3800, 1284, 1328, 28, -248, -248, -248, -248, 1456, - 1407, 1358, 1309, 1261, 1210, 1159, 1444, 1218, 1265, 33, -655, -1343, -977, -355, 394, 1401, - 1753, 1338, 1739, 2140, 2575, 3010, 3524, 3784, 2536, 1033, 265, 522, 440, 615, 629, 388, 403, - 2211, 4051, 4099, 4078, 4058, 3990, 3922, 3910, 3898, 3886, 3875, 3805, 3736, 3554, 3373, 3126, - 2880, 2585, 2291, 2026, 1762, 2650, 3026, 2303, 2092, 665, -250, -250, -250, -250, 1472, 1425, - 1379, 1332, 1286, 1371, 1457, 1030, -932, -1834, -1712, -1238, -763, -621, 33, 815, 1598, 1943, - 1776, 2153, 2531, 2808, 3085, 3362, 3640, 4102, 4052, 3042, 496, 530, 564, 502, 440, 211, 3055, - 3818, 4070, 4081, 4093, 3976, 3860, 3898, 3936, 3974, 4013, 3783, 3553, 3323, 3094, 2858, 2623, - 2420, 2217, 1921, 1626, 915, 2764, 250, 296, 22, -252, -252, -252, -252, 1488, 1443, 1399, - 1371, 1343, 1308, 1530, -408, -1834, -1590, -1089, -813, -536, -281, 485, 1172, 1859, 2132, - 2150, 2503, 2857, 3105, 3352, 3536, 3720, 3875, 3775, 4298, 4054, 2123, 449, 502, 556, 547, 26, - 2113, 3945, 4116, 4031, 3946, 3862, 3838, 3814, 3982, 3894, 3488, 3338, 3140, 2943, 2622, 2302, - 2030, 1758, 1496, 1234, 1260, 774, -347, -188, -189, -190, -222, -254, -254, 1504, 1462, 1420, - 1410, 1400, 1246, 1604, -1334, -1712, -1089, -978, -643, -308, 59, 938, 1529, 2120, 2322, 2524, - 2854, 3184, 3402, 3620, 3710, 3800, 3905, 4010, 4019, 4028, 3973, 334, 503, 672, 627, 582, 409, - 236, 2359, 3970, 3917, 3864, 3778, 3692, 3990, 3776, 3194, 3124, 2958, 2792, 2387, 1982, 1641, - 1300, 1071, 842, 69, -192, -176, -160, -144, -128, -192, -256, -256, 1546, 1496, 1447, 1430, - 1413, 1627, 1330, -2103, -1184, -820, -712, -396, -80, 406, 1148, 1714, 2280, 2486, 2692, 2995, - 3297, 3467, 3638, 3712, 3787, 3916, 4045, 3918, 4047, 3098, 357, 656, 699, 198, 466, 381, 297, - 376, 200, 1815, 3431, 3568, 3961, 4114, 3755, 3310, 3121, 2804, 2487, 2209, 1931, 1189, 447, - 37, -117, -255, -136, -111, -86, -109, -132, -196, -260, -260, 1588, 1531, 1475, 1450, 1426, - 1497, 33, -1592, -1168, -807, -446, -149, 148, 753, 1358, 1899, 2440, 2650, 2861, 3136, 3411, - 3533, 3656, 3715, 3774, 3927, 4080, 3817, 4066, 2223, 380, 553, 214, 3610, 350, 354, 358, 442, - 526, 226, -74, 286, 1158, 1678, 1686, 1634, 1582, 1114, 646, 239, -168, -31, 107, -228, -51, - -66, -80, -46, -12, -74, -136, -200, -264, -264, 1630, 1566, 1502, 1470, 1439, 1591, -817, - -1401, -960, -634, -308, -14, 280, 876, 1472, 1972, 2472, 2718, 2966, 3229, 3492, 3583, 3674, - 3701, 3729, 3794, 3859, 4148, 4181, 708, 563, 418, 1297, 3917, 4234, 2198, 163, 267, 372, 348, - 325, 108, 147, 186, -31, 38, 107, 96, 85, 61, 37, -163, -106, -126, 111, 875, -152, -93, -34, - -87, -140, -204, -268, -268, 1672, 1601, 1530, 1491, 1452, 1685, -1666, -1209, -752, -461, - -170, 121, 412, 999, 1586, 2045, 2504, 2787, 3071, 3322, 3574, 3633, 3693, 3688, 3684, 3661, - 3638, 3711, 2760, 473, 746, 283, 2380, 4225, 4022, 4043, 4064, 2141, 218, 215, 212, 186, 160, - 230, 300, 234, 168, 102, 36, -117, -269, 218, 1218, 2025, 2833, 1048, -224, -140, -56, -100, - -144, -208, -272, -272, 1626, 1607, 1589, 1459, 1585, 692, -1480, -1108, -736, -452, -168, 116, - 400, 806, 1468, 1938, 2408, 2703, 2999, 3327, 3655, 3569, 3483, 3620, 3759, 3440, 3121, 1602, - 851, 820, 533, 438, 3415, 4252, 4066, 4055, 4045, 4084, 4124, 2995, 1867, 1068, 269, 62, -145, - -38, 69, 704, 1339, 2183, 3028, 2816, 2861, 2953, 2790, -349, 96, -19, -134, -137, -140, -204, - -268, -268, 1580, 1614, 1649, 1427, 1718, -300, -1293, -1007, -720, -443, -166, 111, 388, 613, - 1350, 1831, 2312, 2620, 2928, 3076, 3225, 3249, 3273, 3297, 3322, 3475, 3628, 3333, 1502, 655, - 832, 593, 3938, 4024, 4110, 4068, 4026, 3980, 3934, 3984, 4034, 3998, 3962, 3990, 4018, 3786, - 3554, 3610, 3666, 3459, 3253, 3111, 2969, 2858, 2236, -210, -96, -154, -212, -174, -136, -200, - -264, -264, 1662, 1653, 1644, 1619, 1851, -988, -1267, -986, -704, -402, -100, 10, 120, 404, - 944, 1580, 2216, 2504, 2793, 2873, 2954, 2977, 2999, 3086, 3173, 3238, 3303, 3576, 521, 554, - 587, 1772, 3981, 4019, 4058, 4032, 4007, 3971, 3936, 3948, 3961, 3920, 3879, 3806, 3989, 3866, - 3743, 3636, 3529, 3375, 3222, 3069, 2916, 2907, 1362, -119, -64, -113, -162, -147, -132, -196, - -260, -260, 1744, 1692, 1640, 1556, 1472, -1932, -1240, -964, -688, -361, -34, 165, 364, 707, - 1050, 1585, 2120, 2389, 2658, 2671, 2684, 2705, 2726, 2875, 3024, 3001, 2978, 2283, 564, 965, - 342, 2951, 4024, 4015, 4006, 3997, 3988, 3963, 3938, 3913, 3888, 3842, 3796, 3622, 3960, 3946, - 3932, 3662, 3392, 3292, 3192, 3028, 2864, 2956, 488, -28, -32, -72, -112, -120, -128, -192, - -256, -256, 1834, 1635, 1692, 1718, 207, -1664, -1230, -925, -619, -285, 50, 256, 719, 706, - 948, 1127, 1562, 1845, 2129, 2236, 2344, 2448, 2551, 2655, 2759, 2739, 2719, 1563, 663, 623, - 327, 4207, 3992, 4013, 4034, 3991, 3948, 3923, 3898, 3873, 3848, 3774, 3701, 3484, 3523, 3726, - 3929, 3812, 3695, 3604, 3513, 3407, 3300, 3349, -441, -232, -22, -48, -74, -100, -126, -174, - -222, -222, 1924, 1578, 1745, 1880, -1057, -1395, -1220, -885, -550, -208, 134, 92, 563, 449, - 847, 669, 1004, 1302, 1600, 1802, 2005, 2191, 2377, 2435, 2494, 2477, 2460, 843, 763, 794, - 1337, 3928, 3960, 4011, 4062, 3985, 3908, 3883, 3858, 3833, 3808, 3707, 3607, 3603, 3599, 3506, - 3414, 3706, 3998, 3916, 3835, 3786, 3737, 2207, -346, 77, -12, -24, -36, -80, -124, -156, -188, - -188, 1598, 1585, 1830, 2154, -1874, -1414, -1210, -558, -417, -516, -102, 440, 214, 192, 682, - 435, 702, 870, 1039, 1224, 1409, 1710, 2011, 2039, 2069, 2087, 1849, 795, 766, 596, 2475, 3953, - 3896, 3929, 3962, 3915, 3868, 3843, 3818, 3793, 3768, 3688, 3609, 3577, 3546, 3462, 3379, 3312, - 3245, 3364, 3485, 3189, 2893, 857, -155, 33, -34, -48, -62, -108, -154, -154, -154, -154, 1784, - 1849, 1915, 892, -1666, -1177, -1711, -742, -796, -823, 175, -748, 378, 191, 517, 202, 400, - 439, 479, 646, 814, 1229, 1645, 1644, 1644, 1697, 1239, 748, 770, 399, 3613, 3978, 3832, 3847, - 3862, 3845, 3828, 3803, 3778, 3753, 3728, 3669, 3611, 3552, 3494, 3419, 3345, 3174, 3004, 2813, - 2623, 2592, 2562, -237, 37, -10, -56, -72, -88, -136, -184, -152, -120, -120, 1802, 1900, 2255, - -286, -1291, -1130, -713, -393, -327, -387, -445, 200, -179, 436, 27, -46, -118, 203, 270, 384, - 498, 686, 874, 998, 1123, 1253, 1128, 794, 717, 1161, 3654, 3843, 3776, 3789, 3802, 3783, 3764, - 3617, 3726, 3691, 3656, 3596, 3536, 3476, 3417, 3341, 3266, 3078, 2891, 2687, 2484, 2617, 1982, - -29, 8, 12, 18, -18, -54, 6, 66, -30, -126, -126, 1820, 1696, 2084, -2232, -1939, -571, -1763, - -1835, -1394, -462, -553, -388, -223, -1111, -462, -37, -124, -32, -451, -134, 183, 143, 104, - 353, 602, 809, 1017, 841, 665, 1924, 3696, 3708, 3720, 3731, 3742, 3721, 3700, 3431, 3674, - 3629, 3584, 3523, 3462, 3401, 3341, 3264, 3187, 2982, 2778, 2562, 2346, 2386, 891, -77, -21, - 35, 92, 36, -20, -108, -196, -164, -132, -132, 1710, 1955, 1177, -2834, -956, -2076, -2173, - -365, -1885, -1353, -821, -1600, -844, -1250, -887, -653, -674, -555, -436, -636, -325, -304, - -282, -101, -175, 493, 906, 871, 580, 2767, 3674, 3653, 3632, 3657, 3682, 3627, 3572, 3437, - 3558, 3535, 3512, 3450, 3388, 3326, 3264, 3186, 3108, 2902, 2697, 2500, 2304, 2219, 343, 179, - 270, 154, 38, -6, -50, -110, -170, -154, -138, -138, 1600, 1959, -242, -2667, -2020, -2557, - -2582, -1455, 696, 316, 960, 2052, 2120, 1940, 1760, 1292, 824, -310, -932, -1394, -832, -750, - -668, -298, -440, 434, 796, 902, 496, 3610, 3652, 3598, 3544, 3583, 3622, 3533, 3444, 3443, - 3442, 3441, 3440, 3377, 3314, 3251, 3188, 3109, 3030, 2823, 2616, 2439, 2262, 2053, -204, 179, - 50, 17, -16, -48, -80, -112, -144, -144, -144, -144, 1956, 1852, -2091, -3026, -1145, 322, - 2045, 1672, 1555, 1328, 1614, 1916, 1706, 1622, 1282, 1502, 1466, 1301, 1393, 940, -792, -1548, - -769, -821, -617, 926, 934, 909, 1397, 3323, 3456, 3446, 3436, 3393, 3351, 3388, 3426, 3374, - 3321, 3445, 3313, 3265, 3217, 3153, 3090, 2998, 2906, 2686, 2467, 2291, 2115, 1283, -61, 137, - 79, 37, -5, -37, -69, -101, -133, -133, -133, -133, 1800, 1746, 669, 1992, 1779, 1665, 1552, - 1727, 1390, 1317, 1245, 1269, 1293, 1560, 1316, 1456, 1084, 1121, 1158, 971, 1297, 726, -869, - -1344, -794, 1419, 1072, 917, 2299, 3036, 3261, 3294, 3328, 3204, 3080, 3244, 3409, 3305, 3201, - 3449, 3186, 3153, 3121, 3056, 2992, 2887, 2783, 2550, 2318, 2143, 1968, 513, 82, 95, 108, 57, - 6, -26, -58, -90, -122, -122, -122, -122, 1516, 1832, 1637, 1905, 1406, 1344, 1283, 1590, 1641, - 1466, 1292, 1277, 1263, 1386, 1254, 1314, 1118, 1116, 1115, 906, 953, 1160, 1111, 117, -363, - 807, 698, 701, 2240, 3325, 2362, 2934, 3252, 2998, 2745, 2924, 3103, 3156, 2953, 3277, 3091, - 3057, 3024, 2959, 2894, 2776, 2659, 2414, 2169, 2075, 1981, 255, 65, 69, 73, 45, 17, -15, -47, - -79, -111, -111, -111, -111, 1744, 1662, 1581, 1563, 1546, 1536, 1527, 1453, 1380, 1359, 1339, - 1286, 1234, 1213, 1193, 1172, 1152, 1112, 1073, 1097, 1122, 826, 1043, 1067, 1092, 964, 837, - 741, 2182, 2078, 2487, 2831, 2664, 2793, 2923, 2860, 2798, 3007, 2705, 3106, 2996, 2962, 2928, - 2862, 2796, 2666, 2536, 2278, 2020, 1751, 1482, -259, 48, 43, 38, 33, 28, -4, -36, -68, -100, - -100, -100, -100, 1684, 1640, 1596, 1584, 1573, 1543, 1514, 1452, 1391, 1360, 1329, 1282, 1236, - 1213, 1191, 1168, 1146, 1107, 1070, 1064, 1058, 920, 1038, 996, 955, 924, 895, 881, 1635, 1679, - 2235, 2439, 2132, 2451, 2772, 2580, 2644, 2714, 2528, 2742, 2701, 2828, 2699, 2570, 2442, 2383, - 2324, 2105, 1887, 1733, 811, -79, 55, 63, 71, 47, 23, -7, -37, -67, -97, -113, -129, -129, - 1624, 1618, 1612, 1606, 1601, 1551, 1501, 1451, 1402, 1361, 1320, 1279, 1239, 1214, 1189, 1164, - 1140, 1103, 1067, 1031, 995, 1014, 1034, 926, 818, 885, 953, 1021, 1089, 1024, 1472, 2048, - 2112, 2110, 2109, 2044, 2491, 2421, 2352, 2379, 2406, 2694, 2471, 2279, 2088, 2100, 2113, 1933, - 1754, 1715, 140, 101, 62, 83, 104, 61, 18, -10, -38, -66, -94, -126, -158, -158, 1724, 1788, - 1852, 1692, 1532, 1494, 1456, 1418, 1381, 1346, 1311, 1276, 1241, 1214, 1187, 1160, 1134, 1099, - 1064, 1030, 995, 996, 998, 935, 873, 878, 883, 793, 702, 657, 1125, 1832, 2284, 1193, 1638, - 1796, 2209, 2320, 2176, 2239, 2047, 2560, 2562, 1892, 1734, 1673, 1613, 1745, 1621, 1153, -83, - -7, 69, 71, 73, 43, 13, -13, -39, -65, -91, -139, -187, -187, 1824, 1702, 1580, 1522, 1464, - 1438, 1412, 1386, 1360, 1331, 1302, 1273, 1244, 1215, 1186, 1157, 1128, 1095, 1062, 1029, 996, - 979, 962, 945, 928, 871, 814, 821, 828, 803, 1290, 1617, 1944, 2068, 1168, 1292, 1416, 1708, - 1488, 1844, 1688, 2171, 2142, 1249, 1380, 1503, 1626, 1045, -48, 79, 206, 141, 76, 59, 42, 25, - 8, -16, -40, -64, -88, -152, -216, -216, 1688, 1615, 1542, 1501, 1460, 1429, 1398, 1367, 1336, - 1310, 1284, 1258, 1232, 1206, 1180, 1154, 1128, 1093, 1058, 1023, 988, 969, 950, 931, 912, 862, - 812, 794, 776, 596, 672, 972, 1272, 330, 924, 1038, 1152, 1298, 1444, 1910, 1608, 1532, 1200, - 516, 344, 260, 176, 252, 72, 123, 174, 129, 84, 65, 46, 27, 8, -18, -44, -70, -96, -144, -192, - -192, 1552, 1528, 1504, 1480, 1456, 1420, 1384, 1348, 1312, 1289, 1266, 1243, 1220, 1197, 1174, - 1151, 1128, 1091, 1054, 1017, 980, 959, 938, 917, 896, 853, 810, 767, 724, 645, 566, 583, 600, - 640, 680, 528, 376, 376, 888, 1464, 1016, 637, 258, 295, 332, 297, 262, 227, 192, 167, 142, - 117, 92, 71, 50, 29, 8, -20, -48, -76, -104, -136, -168, -168, 1544, 1521, 1498, 1475, 1452, - 1411, 1370, 1329, 1288, 1268, 1248, 1228, 1208, 1188, 1168, 1148, 1128, 1089, 1050, 1011, 972, - 949, 926, 903, 880, 844, 808, 772, 736, 678, 620, 610, 600, 614, 628, 546, 464, 238, 2060, - 1690, 1576, 1710, 308, 314, 320, 286, 252, 218, 184, 163, 142, 121, 100, 77, 54, 31, 8, -22, - -52, -82, -112, -128, -144, -144, 1536, 1514, 1492, 1470, 1448, 1402, 1356, 1310, 1264, 1247, - 1230, 1213, 1196, 1179, 1162, 1145, 1128, 1087, 1046, 1005, 964, 939, 914, 889, 864, 835, 806, - 777, 748, 711, 674, 637, 600, 588, 576, 564, 552, 612, 160, 1916, 1112, 223, 358, 333, 308, - 275, 242, 209, 176, 159, 142, 125, 108, 83, 58, 33, 8, -24, -56, -88, -120, -120, -120, -120, - 1536, 1514, 1492, 1470, 1448, 1402, 1356, 1310, 1264, 1247, 1230, 1213, 1196, 1179, 1162, 1145, - 1128, 1087, 1046, 1005, 964, 939, 914, 889, 864, 835, 806, 777, 748, 711, 674, 637, 600, 588, - 576, 564, 552, 644, 480, 108, 504, 159, 326, 317, 308, 275, 242, 209, 176, 159, 142, 125, 108, - 83, 58, 33, 8, -24, -56, -88, -120, -120, -120, -120, 1536, 1514, 1492, 1470, 1448, 1402, 1356, - 1310, 1264, 1247, 1230, 1213, 1196, 1179, 1162, 1145, 1128, 1087, 1046, 1005, 964, 939, 914, - 889, 864, 835, 806, 777, 748, 711, 674, 637, 600, 588, 576, 564, 552, 420, 288, 348, 408, 351, - 294, 301, 308, 275, 242, 209, 176, 159, 142, 125, 108, 83, 58, 33, 8, -24, -56, -88, -120, - -120, -120, -120, 1536, 1514, 1492, 1470, 1448, 1402, 1356, 1310, 1264, 1247, 1230, 1213, 1196, - 1179, 1162, 1145, 1128, 1087, 1046, 1005, 964, 939, 914, 889, 864, 835, 806, 777, 748, 711, - 674, 637, 600, 588, 576, 564, 552, 420, 288, 348, 408, 351, 294, 301, 308, 275, 242, 209, 176, - 159, 142, 125, 108, 83, 58, 33, 8, -24, -56, -88, -120, -120, -120, -120, + -32, 16, 64, 272, -32, -16, 0, -16, -32, -24, -16, -8, 0, -24, -48, -72, -96, -90, -84, -78, -72, -98, -124, -150, + -176, -192, -208, -224, -240, -256, -272, -288, -304, -304, -304, -304, -304, -336, -368, -400, -432, -450, -468, + -486, -504, -522, -540, -558, -576, -598, -620, -642, -664, -686, -708, -730, -752, -768, -784, -800, -816, -816, + -816, -816, 68, 120, 172, 240, 53, 55, 57, 43, 30, 32, 34, 36, 38, 20, 2, -16, -34, -36, -38, -40, -42, -68, -94, + -120, -146, -149, -152, -186, -221, -228, -234, -241, -247, -255, -262, -269, -276, -303, -330, -357, -384, -404, + -424, -444, -463, -485, -507, -529, -550, -573, -595, -617, -639, -674, -708, -710, -712, -733, -754, -775, -796, + -796, -796, -796, 168, 224, 281, 209, 138, 126, 115, 103, 92, 88, 84, 80, 76, 64, 52, 40, 28, 18, 8, -2, -12, -38, + -64, -90, -116, -106, -95, -148, -201, -199, -196, -193, -190, -205, -219, -233, -247, -270, -292, -314, -336, + -358, -379, -401, -422, -448, -473, -499, -524, -547, -569, -592, -614, -661, -707, -690, -672, -698, -724, -750, + -776, -776, -776, -776, 268, 312, 357, 274, 191, 181, 172, 163, 154, 144, 134, 124, 114, 108, 102, 80, 58, 56, 54, + 52, 50, 24, -2, -44, -86, -63, -38, -94, -150, -138, -126, -146, -165, -171, -176, -198, -219, -237, -254, -271, + -288, -312, -335, -358, -381, -411, -440, -469, -498, -521, -544, -567, -589, -648, -707, -670, -632, -663, -694, + -725, -756, -756, -756, -756, 368, 401, 434, 339, 244, 237, 230, 223, 216, 200, 184, 168, 152, 152, 152, 120, 88, + 94, 100, 106, 112, 86, 60, 2, -56, -19, 19, -40, -98, -77, -55, -98, -140, -137, -133, -162, -190, -203, -215, + -228, -240, -265, -290, -315, -340, -373, -406, -439, -472, -495, -518, -541, -564, -635, -706, -649, -592, -628, + -664, -700, -736, -736, -736, -736, 404, 557, 454, 383, 313, 532, 239, 282, 326, 304, 282, 260, 238, 246, 254, 118, + 238, 196, 154, 32, -90, -88, -86, 76, 238, 242, 247, 28, -191, -232, -273, -123, 29, -63, -155, -151, -146, -164, + -181, -199, -216, -241, -266, -291, -315, -346, -377, -408, -438, -448, -457, -498, -539, -597, -654, -503, -608, + -625, -642, -675, -708, -708, -708, -708, 440, 713, 475, 428, 382, 827, 249, 342, 436, 408, 380, 352, 324, 340, + 356, -140, -124, 42, 208, 214, 220, 250, 280, 406, 532, 504, 476, 352, 229, 125, 21, -147, -314, -245, -176, -139, + -101, -124, -147, -170, -192, -217, -241, -266, -290, -319, -347, -376, -404, -400, -395, -455, -514, -558, -601, + -357, -624, -622, -620, -650, -680, -680, -680, -680, 604, 677, 495, 457, 419, 770, 354, 386, 418, 416, 414, 380, + 346, 258, -342, -302, -6, 288, 582, 604, 626, 588, 550, 688, 826, 829, 833, 724, 616, 482, 347, 181, 15, -139, + -293, -175, -57, -85, -113, -141, -168, -193, -217, -241, -265, -292, -318, -344, -370, -352, -334, -412, -489, + -487, -485, -403, -576, -587, -598, -625, -652, -652, -652, -652, 1280, 1154, 1028, 998, 968, 970, 460, 430, 400, + 424, 448, 408, 368, 432, -528, -208, 112, 534, 956, 994, 1032, 926, 820, 970, 1120, 1155, 1190, 1097, 1004, 839, + 674, 509, 344, 223, 102, 45, -12, -45, -78, -111, -144, -168, -192, -216, -240, -264, -288, -312, -336, -304, -272, + -368, -464, -416, -368, -448, -528, -552, -576, -600, -624, -624, -624, -624, 770, 671, 573, 554, 536, 629, 467, + 464, 462, 492, 523, 490, 457, 281, -406, -101, 204, 599, 995, 1310, 1370, 1297, 1225, 1296, 1368, 1433, 1498, 1403, + 1308, 1185, 1062, 875, 688, 586, 485, 304, 123, -83, -32, -77, -122, -175, -227, -200, -172, -194, -217, -239, + -261, -315, -368, -326, -283, -361, -438, -452, -465, -515, -565, -583, -601, -617, -633, -633, 772, 701, 630, 623, + 616, 545, 474, 499, 524, 561, 599, 572, 546, 131, -283, 6, 296, 665, 1034, 1627, 1708, 1669, 1630, 1623, 1616, + 1711, 1806, 1709, 1612, 1531, 1450, 1241, 1032, 950, 869, 563, 258, -120, 15, -43, -100, -181, -262, -183, -103, + -124, -145, -166, -186, -325, -464, -283, -102, -305, -508, -455, -402, -478, -554, -566, -578, -610, -642, -642, + 774, 730, 687, 675, 664, 620, 577, 581, 586, 598, 610, 590, 571, -147, -97, 209, 516, 794, 1073, 1575, 1822, 1976, + 1875, 1869, 1864, 1989, 2114, 2015, 1916, 1877, 1838, 1607, 1376, 1266, 1156, 902, 137, -61, -3, -121, -238, -124, + -9, -70, -131, -166, -201, -221, -239, -272, -304, -129, -209, -298, -386, -427, -467, -937, -895, -549, -459, + -667, -619, -619, 776, 760, 744, 728, 712, 696, 680, 664, 648, 635, 622, 609, 596, -425, 90, 413, 736, 924, 1112, + 1524, 1936, 2284, 2120, 2116, 2112, 2267, 2422, 2321, 2220, 2223, 2226, 1973, 1720, 1582, 1444, 1242, 16, -2, -20, + 58, 136, -66, -267, -213, -158, -208, -257, -275, -292, -218, -144, 26, -316, -290, -264, -142, -20, 2956, 2860, + -788, -852, -980, -596, -596, 826, 807, 789, 770, 752, 749, 747, 744, 742, 677, 613, 517, 421, -286, 288, 574, 860, + 1081, 1303, 1668, 2034, 2313, 2337, 2344, 2352, 2453, 2554, 2575, 2596, 2507, 2418, 2249, 2080, 1961, 1843, 925, 7, + 40, 74, 748, 654, 451, 250, 48, -154, -108, -62, -112, -161, -29, 104, 44, -271, -275, -278, -842, 1411, 3007, + 3323, 327, -1389, -1197, -493, -493, 876, 855, 834, 813, 792, 803, 814, 825, 836, 720, 605, 681, 758, 110, 487, + 735, 984, 1239, 1494, 1813, 2132, 2343, 2554, 2573, 2592, 2639, 2686, 2829, 2972, 2791, 2610, 2525, 2440, 2341, + 2243, 608, -2, 83, 169, 1438, 1172, 969, 767, 565, 363, 248, 134, 52, -30, -95, -160, -193, -226, -259, -292, 763, + -742, 2290, 1738, -1118, -902, -902, -390, -390, 926, 902, 879, 855, 832, 824, 817, 809, 802, 763, 724, 397, 2375, + 970, 589, 848, 1108, 1396, 1685, 1941, 2198, 2468, 2739, 2785, 2832, 2889, 2946, 3179, 2900, 3059, 2962, 2849, + 2736, 2897, 2546, -365, 309, 206, 871, 1760, 1626, 1471, 1316, 1146, 975, 844, 714, 599, 485, 350, 216, 145, 75, + -356, 750, 2687, 529, -1067, -615, -835, -799, -847, -383, -383, 976, 950, 924, 898, 872, 846, 820, 794, 768, 806, + 844, 882, 1432, 2598, 692, 962, 1232, 1554, 1876, 2070, 2264, 2594, 2924, 2998, 3072, 3139, 3206, 3273, 2316, 3071, + 3314, 3173, 3032, 2941, 1826, -57, 108, 73, 1574, 2083, 2080, 1973, 1866, 1727, 1588, 1441, 1294, 1147, 1000, 796, + 592, 484, 376, 828, 256, 772, -248, -72, -408, 984, -184, -536, -376, -376, 1026, 997, 969, 941, 913, 888, 864, + 840, 816, 762, 709, 768, 1339, 2269, 2176, 1411, 1414, 1677, 1941, 2188, 2436, 2730, 3023, 3157, 3291, 3350, 3409, + 3420, 2152, 3001, 3594, 3403, 3213, 3234, 951, 12, 97, -302, 2883, 2756, 2373, 2312, 2252, 2144, 2036, 1861, 1687, + 1545, 1403, 1254, 1106, 974, 842, 1229, 1105, 21, 217, 46, -381, 1912, 3181, 2765, 301, -723, 1076, 1045, 1015, + 984, 954, 931, 909, 886, 864, 719, 575, 654, 1246, 1685, 3149, 1604, 1596, 1801, 2006, 2307, 2609, 2866, 3123, + 3316, 3510, 3561, 3613, 3568, 1988, 2931, 3875, 3634, 3394, 3527, 76, 81, 86, 859, 3168, 2917, 2666, 2652, 2639, + 2561, 2484, 2282, 2081, 1943, 1806, 1713, 1621, 1464, 1308, 1119, 931, 550, 170, -92, -354, 1560, 3986, 1970, -558, + -558, 1126, 1093, 1060, 1027, 995, 974, 953, 932, 912, 900, 888, -340, 1249, 1757, 2521, 2421, 1810, 2036, 2263, + 2522, 2781, 3066, 3351, 3443, 3537, 3612, 3688, 3476, 2496, 3021, 3803, 3833, 3863, 2844, 33, 134, -21, 2100, 3197, + 3062, 2927, 2944, 2961, 2882, 2804, 2607, 2410, 2309, 2209, 2140, 2071, 1842, 1614, 1329, 1044, 663, 283, 10, -263, + -488, -201, -201, -457, -457, 1176, 1141, 1106, 1071, 1036, 1017, 998, 979, 960, 825, 690, 203, 740, 1573, 1894, + 3239, 2024, 2272, 2521, 2737, 2954, 3010, 3067, 3315, 3564, 3664, 3764, 3384, 3004, 3112, 3732, 3776, 3820, 1905, + -10, 187, -128, 3341, 3226, 3207, 3188, 3236, 3284, 3204, 3124, 2932, 2740, 2676, 2612, 2567, 2522, 2221, 1920, + 1539, 1158, 777, 396, 112, -172, -488, -292, -324, -356, -356, 1194, 1162, 1131, 1100, 1069, 1047, 1026, 973, 920, + 969, 507, 381, 767, 1428, 1834, 2800, 2486, 2347, 2722, 2920, 3118, 3290, 3462, 3266, 3071, 3157, 3243, 3521, 3800, + 3674, 3548, 3710, 3873, 874, 179, 92, 517, 3440, 3291, 3334, 3377, 3403, 3430, 3361, 3292, 3174, 3057, 3004, 2951, + 2761, 2572, 2223, 1874, 1554, 1235, 884, 533, 220, -93, -470, -335, -319, -303, -303, 1212, 1184, 1157, 1129, 1102, + 1078, 1055, 967, 880, 1114, 325, 559, 794, 1284, 1775, 2361, 2948, 2423, 2923, 3103, 3283, 3314, 3346, 3474, 3602, + 3674, 3747, 3659, 3572, 3980, 3877, 3901, 3926, -157, 368, 253, 1674, 3795, 3356, 3461, 3566, 3571, 3577, 3518, + 3460, 3417, 3375, 3332, 3290, 2956, 2623, 2225, 1828, 1570, 1313, 991, 670, 328, -14, -452, -378, -314, -250, -250, + 1230, 1206, 1182, 1158, 1135, 1109, 1083, 1025, 968, 779, 78, 481, 885, 1284, 1939, 2466, 3250, 2627, 2772, 3158, + 3543, 3514, 3486, 3729, 3717, 3775, 3834, 3781, 3728, 3934, 3885, 3916, 2667, 92, 333, 174, 2831, 3702, 3549, 3588, + 3627, 3643, 3659, 3643, 3628, 3676, 3724, 3436, 3149, 2847, 2545, 2275, 2006, 1730, 1454, 1114, 775, 388, 1, -402, + -293, -309, -325, -325, 1248, 1228, 1208, 1188, 1168, 1140, 1112, 1084, 1056, 700, 344, 660, 976, 1284, 2104, 2316, + 3040, 2319, 2110, 2189, 2268, 2691, 3114, 3729, 3832, 3877, 3922, 3903, 3884, 3889, 3894, 3931, 1408, 341, 298, 95, + 3988, 3609, 3742, 3715, 3688, 3715, 3742, 3769, 3796, 3679, 3562, 3285, 3008, 2738, 2468, 2326, 2184, 1890, 1596, + 1238, 880, 448, 16, -352, -208, -304, -400, -400, 1296, 1284, 1272, 1260, 1249, 1165, 1081, 1093, 1106, 232, 382, + 677, 971, 973, 1232, 834, 693, 538, 639, 565, 490, 563, 637, -106, 944, 2358, 3773, 3795, 4074, 3964, 3855, 4337, + 212, 204, 197, 1342, 4023, 3813, 3860, 3811, 3762, 3766, 3771, 3776, 3781, 3604, 3427, 3202, 2977, 2838, 2699, + 2400, 2101, 1982, 1607, 1280, 954, 545, -120, -321, -266, -314, -362, -362, 1344, 1340, 1337, 1333, 1330, 1190, + 1051, 1103, 1156, 20, 933, 950, 967, 919, 872, 889, 906, 805, 705, 733, 761, 740, 720, 668, 616, 328, 40, 1640, + 3752, 3784, 3816, 3208, 40, 580, 97, 2589, 4058, 4018, 3979, 3907, 3836, 3818, 3801, 3784, 3767, 3529, 3292, 3375, + 3458, 3706, 3954, 3754, 3555, 2843, 1619, 1067, 516, 386, -256, -290, -324, -324, -324, -324, 1392, 1364, 1337, + 1310, 1283, 1247, 1212, 969, 982, 1424, 1100, 1079, 1058, 1073, 1088, 815, 799, 1056, 803, 773, 743, 645, 547, 769, + 736, 649, 563, 332, 102, 1939, 4033, 1982, 444, 332, -36, 4076, 4093, 4047, 4001, 3955, 3910, 3870, 3831, 3791, + 3752, 3806, 3861, 3836, 3811, 3678, 3545, 3380, 3216, 3639, 3807, 2342, 1134, 1091, 24, -387, -286, -286, -286, + -286, 1440, 1389, 1338, 1287, 1236, 1305, 1374, 1091, 1320, 1037, 1267, 1208, 1150, 715, 281, 486, 1204, 1564, 901, + 1325, 1750, 1830, 1911, 1383, 344, 459, 574, 817, 548, 351, 666, 757, 336, 340, 856, 4028, 4128, 4076, 4024, 4004, + 3984, 3922, 3861, 3799, 3738, 3828, 3919, 3785, 3652, 3394, 3137, 3007, 2878, 2900, 2923, 3105, 3800, 1284, 1328, + 28, -248, -248, -248, -248, 1456, 1407, 1358, 1309, 1261, 1210, 1159, 1444, 1218, 1265, 33, -655, -1343, -977, + -355, 394, 1401, 1753, 1338, 1739, 2140, 2575, 3010, 3524, 3784, 2536, 1033, 265, 522, 440, 615, 629, 388, 403, + 2211, 4051, 4099, 4078, 4058, 3990, 3922, 3910, 3898, 3886, 3875, 3805, 3736, 3554, 3373, 3126, 2880, 2585, 2291, + 2026, 1762, 2650, 3026, 2303, 2092, 665, -250, -250, -250, -250, 1472, 1425, 1379, 1332, 1286, 1371, 1457, 1030, + -932, -1834, -1712, -1238, -763, -621, 33, 815, 1598, 1943, 1776, 2153, 2531, 2808, 3085, 3362, 3640, 4102, 4052, + 3042, 496, 530, 564, 502, 440, 211, 3055, 3818, 4070, 4081, 4093, 3976, 3860, 3898, 3936, 3974, 4013, 3783, 3553, + 3323, 3094, 2858, 2623, 2420, 2217, 1921, 1626, 915, 2764, 250, 296, 22, -252, -252, -252, -252, 1488, 1443, 1399, + 1371, 1343, 1308, 1530, -408, -1834, -1590, -1089, -813, -536, -281, 485, 1172, 1859, 2132, 2150, 2503, 2857, 3105, + 3352, 3536, 3720, 3875, 3775, 4298, 4054, 2123, 449, 502, 556, 547, 26, 2113, 3945, 4116, 4031, 3946, 3862, 3838, + 3814, 3982, 3894, 3488, 3338, 3140, 2943, 2622, 2302, 2030, 1758, 1496, 1234, 1260, 774, -347, -188, -189, -190, + -222, -254, -254, 1504, 1462, 1420, 1410, 1400, 1246, 1604, -1334, -1712, -1089, -978, -643, -308, 59, 938, 1529, + 2120, 2322, 2524, 2854, 3184, 3402, 3620, 3710, 3800, 3905, 4010, 4019, 4028, 3973, 334, 503, 672, 627, 582, 409, + 236, 2359, 3970, 3917, 3864, 3778, 3692, 3990, 3776, 3194, 3124, 2958, 2792, 2387, 1982, 1641, 1300, 1071, 842, 69, + -192, -176, -160, -144, -128, -192, -256, -256, 1546, 1496, 1447, 1430, 1413, 1627, 1330, -2103, -1184, -820, -712, + -396, -80, 406, 1148, 1714, 2280, 2486, 2692, 2995, 3297, 3467, 3638, 3712, 3787, 3916, 4045, 3918, 4047, 3098, + 357, 656, 699, 198, 466, 381, 297, 376, 200, 1815, 3431, 3568, 3961, 4114, 3755, 3310, 3121, 2804, 2487, 2209, + 1931, 1189, 447, 37, -117, -255, -136, -111, -86, -109, -132, -196, -260, -260, 1588, 1531, 1475, 1450, 1426, 1497, + 33, -1592, -1168, -807, -446, -149, 148, 753, 1358, 1899, 2440, 2650, 2861, 3136, 3411, 3533, 3656, 3715, 3774, + 3927, 4080, 3817, 4066, 2223, 380, 553, 214, 3610, 350, 354, 358, 442, 526, 226, -74, 286, 1158, 1678, 1686, 1634, + 1582, 1114, 646, 239, -168, -31, 107, -228, -51, -66, -80, -46, -12, -74, -136, -200, -264, -264, 1630, 1566, 1502, + 1470, 1439, 1591, -817, -1401, -960, -634, -308, -14, 280, 876, 1472, 1972, 2472, 2718, 2966, 3229, 3492, 3583, + 3674, 3701, 3729, 3794, 3859, 4148, 4181, 708, 563, 418, 1297, 3917, 4234, 2198, 163, 267, 372, 348, 325, 108, 147, + 186, -31, 38, 107, 96, 85, 61, 37, -163, -106, -126, 111, 875, -152, -93, -34, -87, -140, -204, -268, -268, 1672, + 1601, 1530, 1491, 1452, 1685, -1666, -1209, -752, -461, -170, 121, 412, 999, 1586, 2045, 2504, 2787, 3071, 3322, + 3574, 3633, 3693, 3688, 3684, 3661, 3638, 3711, 2760, 473, 746, 283, 2380, 4225, 4022, 4043, 4064, 2141, 218, 215, + 212, 186, 160, 230, 300, 234, 168, 102, 36, -117, -269, 218, 1218, 2025, 2833, 1048, -224, -140, -56, -100, -144, + -208, -272, -272, 1626, 1607, 1589, 1459, 1585, 692, -1480, -1108, -736, -452, -168, 116, 400, 806, 1468, 1938, + 2408, 2703, 2999, 3327, 3655, 3569, 3483, 3620, 3759, 3440, 3121, 1602, 851, 820, 533, 438, 3415, 4252, 4066, 4055, + 4045, 4084, 4124, 2995, 1867, 1068, 269, 62, -145, -38, 69, 704, 1339, 2183, 3028, 2816, 2861, 2953, 2790, -349, + 96, -19, -134, -137, -140, -204, -268, -268, 1580, 1614, 1649, 1427, 1718, -300, -1293, -1007, -720, -443, -166, + 111, 388, 613, 1350, 1831, 2312, 2620, 2928, 3076, 3225, 3249, 3273, 3297, 3322, 3475, 3628, 3333, 1502, 655, 832, + 593, 3938, 4024, 4110, 4068, 4026, 3980, 3934, 3984, 4034, 3998, 3962, 3990, 4018, 3786, 3554, 3610, 3666, 3459, + 3253, 3111, 2969, 2858, 2236, -210, -96, -154, -212, -174, -136, -200, -264, -264, 1662, 1653, 1644, 1619, 1851, + -988, -1267, -986, -704, -402, -100, 10, 120, 404, 944, 1580, 2216, 2504, 2793, 2873, 2954, 2977, 2999, 3086, 3173, + 3238, 3303, 3576, 521, 554, 587, 1772, 3981, 4019, 4058, 4032, 4007, 3971, 3936, 3948, 3961, 3920, 3879, 3806, + 3989, 3866, 3743, 3636, 3529, 3375, 3222, 3069, 2916, 2907, 1362, -119, -64, -113, -162, -147, -132, -196, -260, + -260, 1744, 1692, 1640, 1556, 1472, -1932, -1240, -964, -688, -361, -34, 165, 364, 707, 1050, 1585, 2120, 2389, + 2658, 2671, 2684, 2705, 2726, 2875, 3024, 3001, 2978, 2283, 564, 965, 342, 2951, 4024, 4015, 4006, 3997, 3988, + 3963, 3938, 3913, 3888, 3842, 3796, 3622, 3960, 3946, 3932, 3662, 3392, 3292, 3192, 3028, 2864, 2956, 488, -28, + -32, -72, -112, -120, -128, -192, -256, -256, 1834, 1635, 1692, 1718, 207, -1664, -1230, -925, -619, -285, 50, 256, + 719, 706, 948, 1127, 1562, 1845, 2129, 2236, 2344, 2448, 2551, 2655, 2759, 2739, 2719, 1563, 663, 623, 327, 4207, + 3992, 4013, 4034, 3991, 3948, 3923, 3898, 3873, 3848, 3774, 3701, 3484, 3523, 3726, 3929, 3812, 3695, 3604, 3513, + 3407, 3300, 3349, -441, -232, -22, -48, -74, -100, -126, -174, -222, -222, 1924, 1578, 1745, 1880, -1057, -1395, + -1220, -885, -550, -208, 134, 92, 563, 449, 847, 669, 1004, 1302, 1600, 1802, 2005, 2191, 2377, 2435, 2494, 2477, + 2460, 843, 763, 794, 1337, 3928, 3960, 4011, 4062, 3985, 3908, 3883, 3858, 3833, 3808, 3707, 3607, 3603, 3599, + 3506, 3414, 3706, 3998, 3916, 3835, 3786, 3737, 2207, -346, 77, -12, -24, -36, -80, -124, -156, -188, -188, 1598, + 1585, 1830, 2154, -1874, -1414, -1210, -558, -417, -516, -102, 440, 214, 192, 682, 435, 702, 870, 1039, 1224, 1409, + 1710, 2011, 2039, 2069, 2087, 1849, 795, 766, 596, 2475, 3953, 3896, 3929, 3962, 3915, 3868, 3843, 3818, 3793, + 3768, 3688, 3609, 3577, 3546, 3462, 3379, 3312, 3245, 3364, 3485, 3189, 2893, 857, -155, 33, -34, -48, -62, -108, + -154, -154, -154, -154, 1784, 1849, 1915, 892, -1666, -1177, -1711, -742, -796, -823, 175, -748, 378, 191, 517, + 202, 400, 439, 479, 646, 814, 1229, 1645, 1644, 1644, 1697, 1239, 748, 770, 399, 3613, 3978, 3832, 3847, 3862, + 3845, 3828, 3803, 3778, 3753, 3728, 3669, 3611, 3552, 3494, 3419, 3345, 3174, 3004, 2813, 2623, 2592, 2562, -237, + 37, -10, -56, -72, -88, -136, -184, -152, -120, -120, 1802, 1900, 2255, -286, -1291, -1130, -713, -393, -327, -387, + -445, 200, -179, 436, 27, -46, -118, 203, 270, 384, 498, 686, 874, 998, 1123, 1253, 1128, 794, 717, 1161, 3654, + 3843, 3776, 3789, 3802, 3783, 3764, 3617, 3726, 3691, 3656, 3596, 3536, 3476, 3417, 3341, 3266, 3078, 2891, 2687, + 2484, 2617, 1982, -29, 8, 12, 18, -18, -54, 6, 66, -30, -126, -126, 1820, 1696, 2084, -2232, -1939, -571, -1763, + -1835, -1394, -462, -553, -388, -223, -1111, -462, -37, -124, -32, -451, -134, 183, 143, 104, 353, 602, 809, 1017, + 841, 665, 1924, 3696, 3708, 3720, 3731, 3742, 3721, 3700, 3431, 3674, 3629, 3584, 3523, 3462, 3401, 3341, 3264, + 3187, 2982, 2778, 2562, 2346, 2386, 891, -77, -21, 35, 92, 36, -20, -108, -196, -164, -132, -132, 1710, 1955, 1177, + -2834, -956, -2076, -2173, -365, -1885, -1353, -821, -1600, -844, -1250, -887, -653, -674, -555, -436, -636, -325, + -304, -282, -101, -175, 493, 906, 871, 580, 2767, 3674, 3653, 3632, 3657, 3682, 3627, 3572, 3437, 3558, 3535, 3512, + 3450, 3388, 3326, 3264, 3186, 3108, 2902, 2697, 2500, 2304, 2219, 343, 179, 270, 154, 38, -6, -50, -110, -170, + -154, -138, -138, 1600, 1959, -242, -2667, -2020, -2557, -2582, -1455, 696, 316, 960, 2052, 2120, 1940, 1760, 1292, + 824, -310, -932, -1394, -832, -750, -668, -298, -440, 434, 796, 902, 496, 3610, 3652, 3598, 3544, 3583, 3622, 3533, + 3444, 3443, 3442, 3441, 3440, 3377, 3314, 3251, 3188, 3109, 3030, 2823, 2616, 2439, 2262, 2053, -204, 179, 50, 17, + -16, -48, -80, -112, -144, -144, -144, -144, 1956, 1852, -2091, -3026, -1145, 322, 2045, 1672, 1555, 1328, 1614, + 1916, 1706, 1622, 1282, 1502, 1466, 1301, 1393, 940, -792, -1548, -769, -821, -617, 926, 934, 909, 1397, 3323, + 3456, 3446, 3436, 3393, 3351, 3388, 3426, 3374, 3321, 3445, 3313, 3265, 3217, 3153, 3090, 2998, 2906, 2686, 2467, + 2291, 2115, 1283, -61, 137, 79, 37, -5, -37, -69, -101, -133, -133, -133, -133, 1800, 1746, 669, 1992, 1779, 1665, + 1552, 1727, 1390, 1317, 1245, 1269, 1293, 1560, 1316, 1456, 1084, 1121, 1158, 971, 1297, 726, -869, -1344, -794, + 1419, 1072, 917, 2299, 3036, 3261, 3294, 3328, 3204, 3080, 3244, 3409, 3305, 3201, 3449, 3186, 3153, 3121, 3056, + 2992, 2887, 2783, 2550, 2318, 2143, 1968, 513, 82, 95, 108, 57, 6, -26, -58, -90, -122, -122, -122, -122, 1516, + 1832, 1637, 1905, 1406, 1344, 1283, 1590, 1641, 1466, 1292, 1277, 1263, 1386, 1254, 1314, 1118, 1116, 1115, 906, + 953, 1160, 1111, 117, -363, 807, 698, 701, 2240, 3325, 2362, 2934, 3252, 2998, 2745, 2924, 3103, 3156, 2953, 3277, + 3091, 3057, 3024, 2959, 2894, 2776, 2659, 2414, 2169, 2075, 1981, 255, 65, 69, 73, 45, 17, -15, -47, -79, -111, + -111, -111, -111, 1744, 1662, 1581, 1563, 1546, 1536, 1527, 1453, 1380, 1359, 1339, 1286, 1234, 1213, 1193, 1172, + 1152, 1112, 1073, 1097, 1122, 826, 1043, 1067, 1092, 964, 837, 741, 2182, 2078, 2487, 2831, 2664, 2793, 2923, 2860, + 2798, 3007, 2705, 3106, 2996, 2962, 2928, 2862, 2796, 2666, 2536, 2278, 2020, 1751, 1482, -259, 48, 43, 38, 33, 28, + -4, -36, -68, -100, -100, -100, -100, 1684, 1640, 1596, 1584, 1573, 1543, 1514, 1452, 1391, 1360, 1329, 1282, 1236, + 1213, 1191, 1168, 1146, 1107, 1070, 1064, 1058, 920, 1038, 996, 955, 924, 895, 881, 1635, 1679, 2235, 2439, 2132, + 2451, 2772, 2580, 2644, 2714, 2528, 2742, 2701, 2828, 2699, 2570, 2442, 2383, 2324, 2105, 1887, 1733, 811, -79, 55, + 63, 71, 47, 23, -7, -37, -67, -97, -113, -129, -129, 1624, 1618, 1612, 1606, 1601, 1551, 1501, 1451, 1402, 1361, + 1320, 1279, 1239, 1214, 1189, 1164, 1140, 1103, 1067, 1031, 995, 1014, 1034, 926, 818, 885, 953, 1021, 1089, 1024, + 1472, 2048, 2112, 2110, 2109, 2044, 2491, 2421, 2352, 2379, 2406, 2694, 2471, 2279, 2088, 2100, 2113, 1933, 1754, + 1715, 140, 101, 62, 83, 104, 61, 18, -10, -38, -66, -94, -126, -158, -158, 1724, 1788, 1852, 1692, 1532, 1494, + 1456, 1418, 1381, 1346, 1311, 1276, 1241, 1214, 1187, 1160, 1134, 1099, 1064, 1030, 995, 996, 998, 935, 873, 878, + 883, 793, 702, 657, 1125, 1832, 2284, 1193, 1638, 1796, 2209, 2320, 2176, 2239, 2047, 2560, 2562, 1892, 1734, 1673, + 1613, 1745, 1621, 1153, -83, -7, 69, 71, 73, 43, 13, -13, -39, -65, -91, -139, -187, -187, 1824, 1702, 1580, 1522, + 1464, 1438, 1412, 1386, 1360, 1331, 1302, 1273, 1244, 1215, 1186, 1157, 1128, 1095, 1062, 1029, 996, 979, 962, 945, + 928, 871, 814, 821, 828, 803, 1290, 1617, 1944, 2068, 1168, 1292, 1416, 1708, 1488, 1844, 1688, 2171, 2142, 1249, + 1380, 1503, 1626, 1045, -48, 79, 206, 141, 76, 59, 42, 25, 8, -16, -40, -64, -88, -152, -216, -216, 1688, 1615, + 1542, 1501, 1460, 1429, 1398, 1367, 1336, 1310, 1284, 1258, 1232, 1206, 1180, 1154, 1128, 1093, 1058, 1023, 988, + 969, 950, 931, 912, 862, 812, 794, 776, 596, 672, 972, 1272, 330, 924, 1038, 1152, 1298, 1444, 1910, 1608, 1532, + 1200, 516, 344, 260, 176, 252, 72, 123, 174, 129, 84, 65, 46, 27, 8, -18, -44, -70, -96, -144, -192, -192, 1552, + 1528, 1504, 1480, 1456, 1420, 1384, 1348, 1312, 1289, 1266, 1243, 1220, 1197, 1174, 1151, 1128, 1091, 1054, 1017, + 980, 959, 938, 917, 896, 853, 810, 767, 724, 645, 566, 583, 600, 640, 680, 528, 376, 376, 888, 1464, 1016, 637, + 258, 295, 332, 297, 262, 227, 192, 167, 142, 117, 92, 71, 50, 29, 8, -20, -48, -76, -104, -136, -168, -168, 1544, + 1521, 1498, 1475, 1452, 1411, 1370, 1329, 1288, 1268, 1248, 1228, 1208, 1188, 1168, 1148, 1128, 1089, 1050, 1011, + 972, 949, 926, 903, 880, 844, 808, 772, 736, 678, 620, 610, 600, 614, 628, 546, 464, 238, 2060, 1690, 1576, 1710, + 308, 314, 320, 286, 252, 218, 184, 163, 142, 121, 100, 77, 54, 31, 8, -22, -52, -82, -112, -128, -144, -144, 1536, + 1514, 1492, 1470, 1448, 1402, 1356, 1310, 1264, 1247, 1230, 1213, 1196, 1179, 1162, 1145, 1128, 1087, 1046, 1005, + 964, 939, 914, 889, 864, 835, 806, 777, 748, 711, 674, 637, 600, 588, 576, 564, 552, 612, 160, 1916, 1112, 223, + 358, 333, 308, 275, 242, 209, 176, 159, 142, 125, 108, 83, 58, 33, 8, -24, -56, -88, -120, -120, -120, -120, 1536, + 1514, 1492, 1470, 1448, 1402, 1356, 1310, 1264, 1247, 1230, 1213, 1196, 1179, 1162, 1145, 1128, 1087, 1046, 1005, + 964, 939, 914, 889, 864, 835, 806, 777, 748, 711, 674, 637, 600, 588, 576, 564, 552, 644, 480, 108, 504, 159, 326, + 317, 308, 275, 242, 209, 176, 159, 142, 125, 108, 83, 58, 33, 8, -24, -56, -88, -120, -120, -120, -120, 1536, 1514, + 1492, 1470, 1448, 1402, 1356, 1310, 1264, 1247, 1230, 1213, 1196, 1179, 1162, 1145, 1128, 1087, 1046, 1005, 964, + 939, 914, 889, 864, 835, 806, 777, 748, 711, 674, 637, 600, 588, 576, 564, 552, 420, 288, 348, 408, 351, 294, 301, + 308, 275, 242, 209, 176, 159, 142, 125, 108, 83, 58, 33, 8, -24, -56, -88, -120, -120, -120, -120, 1536, 1514, + 1492, 1470, 1448, 1402, 1356, 1310, 1264, 1247, 1230, 1213, 1196, 1179, 1162, 1145, 1128, 1087, 1046, 1005, 964, + 939, 914, 889, 864, 835, 806, 777, 748, 711, 674, 637, 600, 588, 576, 564, 552, 420, 288, 348, 408, 351, 294, 301, + 308, 275, 242, 209, 176, 159, 142, 125, 108, 83, 58, 33, 8, -24, -56, -88, -120, -120, -120, -120, ]; diff --git a/ironrdp/src/codecs/rfx/header_messages.rs b/ironrdp/src/codecs/rfx/header_messages.rs index 071ec0b8..863332e2 100644 --- a/ironrdp/src/codecs/rfx/header_messages.rs +++ b/ironrdp/src/codecs/rfx/header_messages.rs @@ -57,10 +57,7 @@ impl<'a> PduBufferParsing<'a> for SyncPdu { pub struct CodecVersionsPdu; impl CodecVersionsPdu { - pub fn from_buffer_consume_with_header( - buffer: &mut &[u8], - header: BlockHeader, - ) -> Result { + pub fn from_buffer_consume_with_header(buffer: &mut &[u8], header: BlockHeader) -> Result { let mut buffer = buffer.split_to(header.data_length); let codecs_number = buffer.read_u8()?; @@ -78,8 +75,7 @@ impl<'a> PduBufferParsing<'a> for CodecVersionsPdu { type Error = RfxError; fn from_buffer_consume(buffer: &mut &[u8]) -> Result { - let header = - BlockHeader::from_buffer_consume_with_expected_type(buffer, BlockType::CodecVersions)?; + let header = BlockHeader::from_buffer_consume_with_expected_type(buffer, BlockType::CodecVersions)?; Self::from_buffer_consume_with_header(buffer, header) } @@ -105,10 +101,7 @@ impl<'a> PduBufferParsing<'a> for CodecVersionsPdu { pub struct ChannelsPdu(pub Vec); impl ChannelsPdu { - pub fn from_buffer_consume_with_header( - buffer: &mut &[u8], - header: BlockHeader, - ) -> Result { + pub fn from_buffer_consume_with_header(buffer: &mut &[u8], header: BlockHeader) -> Result { let mut buffer = buffer.split_to(header.data_length); let channels_number = usize::from(buffer.read_u8()?); @@ -132,8 +125,7 @@ impl<'a> PduBufferParsing<'a> for ChannelsPdu { type Error = RfxError; fn from_buffer_consume(buffer: &mut &[u8]) -> Result { - let header = - BlockHeader::from_buffer_consume_with_expected_type(buffer, BlockType::Channels)?; + let header = BlockHeader::from_buffer_consume_with_expected_type(buffer, BlockType::Channels)?; Self::from_buffer_consume_with_header(buffer, header) } @@ -155,13 +147,7 @@ impl<'a> PduBufferParsing<'a> for ChannelsPdu { } fn buffer_length(&self) -> usize { - BLOCK_HEADER_SIZE - + 1 - + self - .0 - .iter() - .map(PduBufferParsing::buffer_length) - .sum::() + BLOCK_HEADER_SIZE + 1 + self.0.iter().map(PduBufferParsing::buffer_length).sum::() } } diff --git a/ironrdp/src/codecs/rfx/image_processing.rs b/ironrdp/src/codecs/rfx/image_processing.rs index 7e9d2534..3c5769d8 100644 --- a/ironrdp/src/codecs/rfx/image_processing.rs +++ b/ironrdp/src/codecs/rfx/image_processing.rs @@ -68,9 +68,7 @@ impl<'a> ImageRegion<'a> { let dst = &mut other.data[((y + dst_point.y) * dst_step)..]; for x in 0..width { - let color = self - .pixel_format - .read_color(&src[((x + src_point.x) * src_byte)..])?; + let color = self.pixel_format.read_color(&src[((x + src_point.x) * src_byte)..])?; other .pixel_format .write_color(color, &mut dst[((x + dst_point.x) * dst_byte)..])?; diff --git a/ironrdp/src/codecs/rfx/image_processing/tests.rs b/ironrdp/src/codecs/rfx/image_processing/tests.rs index 2bab6324..b4d034cc 100644 --- a/ironrdp/src/codecs/rfx/image_processing/tests.rs +++ b/ironrdp/src/codecs/rfx/image_processing/tests.rs @@ -27,10 +27,7 @@ fn image_region_correctly_writes_image_with_different_formats_with_same_sizes() }; source_region.copy_to(&mut destination_region).unwrap(); - assert_eq!( - CONVERTED_TO_XRGB_BUFFER.as_ref(), - destination_data.as_slice() - ); + assert_eq!(CONVERTED_TO_XRGB_BUFFER.as_ref(), destination_data.as_slice()); } #[test] @@ -67,3082 +64,2599 @@ fn image_region_correctly_writes_image_with_same_formats_and_different_sizes() { } const SOURCE_IN_RGBX_BUFFER: [u8; 64 * 64 * 4] = [ - 0xDE, 0x9B, 0x22, 0xFF, 0xE0, 0x9D, 0x23, 0xFF, 0xE1, 0x9E, 0x25, 0xFF, 0xE8, 0xA5, 0x2B, 0xFF, - 0xDF, 0x9B, 0x22, 0xFF, 0xDF, 0x9C, 0x22, 0xFF, 0xE0, 0x9C, 0x22, 0xFF, 0xDF, 0x9C, 0x22, 0xFF, - 0xDF, 0x9B, 0x21, 0xFF, 0xDF, 0x9B, 0x22, 0xFF, 0xDF, 0x9B, 0x23, 0xFF, 0xDF, 0x9B, 0x23, 0xFF, - 0xDF, 0x9C, 0x24, 0xFF, 0xE2, 0x9B, 0x21, 0xFF, 0xE5, 0x9B, 0x1D, 0xFF, 0xE1, 0x9A, 0x1F, 0xFF, - 0xDD, 0x98, 0x21, 0xFF, 0xDE, 0x99, 0x21, 0xFF, 0xDE, 0x99, 0x20, 0xFF, 0xDF, 0x9A, 0x1F, 0xFF, - 0xE0, 0x9A, 0x1F, 0xFF, 0xE0, 0x99, 0x1E, 0xFF, 0xDF, 0x99, 0x1D, 0xFF, 0xDF, 0x98, 0x1C, 0xFF, - 0xDF, 0x97, 0x1B, 0xFF, 0xDC, 0x95, 0x1E, 0xFF, 0xD8, 0x93, 0x21, 0xFF, 0xDC, 0x93, 0x1F, 0xFF, - 0xE0, 0x93, 0x1C, 0xFF, 0xDC, 0x94, 0x1A, 0xFF, 0xD8, 0x95, 0x18, 0xFF, 0xDB, 0x91, 0x1C, 0xFF, - 0xDE, 0x8E, 0x1F, 0xFF, 0xDE, 0x90, 0x1A, 0xFF, 0xDE, 0x93, 0x16, 0xFF, 0xDF, 0x92, 0x17, 0xFF, - 0xDF, 0x91, 0x18, 0xFF, 0xDF, 0x90, 0x17, 0xFF, 0xDE, 0x8F, 0x17, 0xFF, 0xDE, 0x8E, 0x16, 0xFF, - 0xDE, 0x8C, 0x15, 0xFF, 0xDD, 0x8C, 0x14, 0xFF, 0xDB, 0x8C, 0x13, 0xFF, 0xDA, 0x8C, 0x12, 0xFF, - 0xD9, 0x8C, 0x11, 0xFF, 0xD9, 0x8B, 0x11, 0xFF, 0xD9, 0x89, 0x11, 0xFF, 0xDA, 0x88, 0x11, 0xFF, - 0xDA, 0x87, 0x12, 0xFF, 0xDA, 0x86, 0x11, 0xFF, 0xDA, 0x86, 0x10, 0xFF, 0xD9, 0x85, 0x10, 0xFF, - 0xD9, 0x84, 0x0F, 0xFF, 0xD9, 0x83, 0x0E, 0xFF, 0xD8, 0x83, 0x0E, 0xFF, 0xD8, 0x82, 0x0D, 0xFF, - 0xD8, 0x81, 0x0C, 0xFF, 0xD7, 0x80, 0x0C, 0xFF, 0xD7, 0x7F, 0x0D, 0xFF, 0xD6, 0x7F, 0x0D, 0xFF, - 0xD6, 0x7E, 0x0D, 0xFF, 0xD6, 0x7E, 0x0D, 0xFF, 0xD6, 0x7E, 0x0D, 0xFF, 0xD6, 0x7E, 0x0D, 0xFF, - 0xE0, 0x9F, 0x24, 0xFF, 0xE1, 0xA0, 0x27, 0xFF, 0xE2, 0xA2, 0x29, 0xFF, 0xE5, 0xA4, 0x2A, 0xFF, - 0xE0, 0x9E, 0x24, 0xFF, 0xE1, 0x9E, 0x24, 0xFF, 0xE1, 0x9E, 0x24, 0xFF, 0xE1, 0x9E, 0x23, 0xFF, - 0xE1, 0x9D, 0x23, 0xFF, 0xE1, 0x9D, 0x23, 0xFF, 0xE1, 0x9D, 0x24, 0xFF, 0xE1, 0x9D, 0x24, 0xFF, - 0xE1, 0x9D, 0x25, 0xFF, 0xE1, 0x9D, 0x23, 0xFF, 0xE2, 0x9C, 0x22, 0xFF, 0xE0, 0x9C, 0x22, 0xFF, - 0xDF, 0x9B, 0x22, 0xFF, 0xE0, 0x9B, 0x21, 0xFF, 0xE1, 0x9B, 0x20, 0xFF, 0xE1, 0x9B, 0x20, 0xFF, - 0xE1, 0x9B, 0x1F, 0xFF, 0xDF, 0x9A, 0x20, 0xFF, 0xDE, 0x99, 0x20, 0xFF, 0xDE, 0x98, 0x1E, 0xFF, - 0xDF, 0x97, 0x1D, 0xFF, 0xDF, 0x97, 0x1D, 0xFF, 0xDF, 0x96, 0x1E, 0xFF, 0xDF, 0x95, 0x1D, 0xFF, - 0xDE, 0x94, 0x1C, 0xFF, 0xDF, 0x94, 0x1C, 0xFF, 0xE0, 0x93, 0x1B, 0xFF, 0xE0, 0x93, 0x1C, 0xFF, - 0xE0, 0x92, 0x1D, 0xFF, 0xDE, 0x93, 0x1B, 0xFF, 0xDC, 0x94, 0x19, 0xFF, 0xDE, 0x93, 0x19, 0xFF, - 0xE0, 0x92, 0x19, 0xFF, 0xDF, 0x91, 0x19, 0xFF, 0xDF, 0x90, 0x18, 0xFF, 0xDF, 0x8F, 0x17, 0xFF, - 0xDF, 0x8E, 0x17, 0xFF, 0xDE, 0x8E, 0x16, 0xFF, 0xDD, 0x8D, 0x15, 0xFF, 0xDC, 0x8D, 0x13, 0xFF, - 0xDB, 0x8D, 0x12, 0xFF, 0xDB, 0x8C, 0x12, 0xFF, 0xDB, 0x8B, 0x12, 0xFF, 0xDB, 0x89, 0x12, 0xFF, - 0xDB, 0x88, 0x12, 0xFF, 0xDB, 0x87, 0x11, 0xFF, 0xDB, 0x87, 0x11, 0xFF, 0xDB, 0x86, 0x10, 0xFF, - 0xDB, 0x85, 0x0F, 0xFF, 0xDA, 0x84, 0x0E, 0xFF, 0xD9, 0x83, 0x0D, 0xFF, 0xD9, 0x83, 0x0D, 0xFF, - 0xD9, 0x83, 0x0D, 0xFF, 0xD8, 0x82, 0x0D, 0xFF, 0xD8, 0x81, 0x0D, 0xFF, 0xD7, 0x80, 0x0D, 0xFF, - 0xD7, 0x7F, 0x0D, 0xFF, 0xD7, 0x7F, 0x0D, 0xFF, 0xD7, 0x7F, 0x0D, 0xFF, 0xD7, 0x7F, 0x0D, 0xFF, - 0xE2, 0xA2, 0x27, 0xFF, 0xE3, 0xA4, 0x2A, 0xFF, 0xE3, 0xA5, 0x2D, 0xFF, 0xE3, 0xA3, 0x29, 0xFF, - 0xE2, 0xA1, 0x26, 0xFF, 0xE2, 0xA1, 0x25, 0xFF, 0xE2, 0xA1, 0x25, 0xFF, 0xE2, 0xA0, 0x25, 0xFF, - 0xE2, 0xA0, 0x24, 0xFF, 0xE2, 0x9F, 0x25, 0xFF, 0xE3, 0x9F, 0x25, 0xFF, 0xE3, 0x9E, 0x25, 0xFF, - 0xE3, 0x9E, 0x26, 0xFF, 0xE1, 0x9E, 0x26, 0xFF, 0xDE, 0x9D, 0x27, 0xFF, 0xDF, 0x9D, 0x24, 0xFF, - 0xE1, 0x9E, 0x22, 0xFF, 0xE2, 0x9D, 0x21, 0xFF, 0xE3, 0x9D, 0x20, 0xFF, 0xE3, 0x9D, 0x20, 0xFF, - 0xE3, 0x9C, 0x20, 0xFF, 0xDF, 0x9B, 0x22, 0xFF, 0xDC, 0x99, 0x24, 0xFF, 0xDE, 0x98, 0x21, 0xFF, - 0xE0, 0x98, 0x1F, 0xFF, 0xE3, 0x99, 0x1D, 0xFF, 0xE7, 0x9A, 0x1B, 0xFF, 0xE1, 0x98, 0x1B, 0xFF, - 0xDC, 0x96, 0x1C, 0xFF, 0xE2, 0x94, 0x1D, 0xFF, 0xE9, 0x92, 0x1F, 0xFF, 0xE5, 0x94, 0x1D, 0xFF, - 0xE2, 0x96, 0x1A, 0xFF, 0xDE, 0x95, 0x1B, 0xFF, 0xDA, 0x95, 0x1D, 0xFF, 0xDD, 0x94, 0x1C, 0xFF, - 0xE0, 0x93, 0x1A, 0xFF, 0xE0, 0x92, 0x1A, 0xFF, 0xE0, 0x91, 0x19, 0xFF, 0xDF, 0x91, 0x19, 0xFF, - 0xDF, 0x90, 0x18, 0xFF, 0xDE, 0x8F, 0x17, 0xFF, 0xDE, 0x8F, 0x16, 0xFF, 0xDD, 0x8E, 0x15, 0xFF, - 0xDD, 0x8E, 0x14, 0xFF, 0xDC, 0x8D, 0x14, 0xFF, 0xDC, 0x8C, 0x13, 0xFF, 0xDC, 0x8B, 0x12, 0xFF, - 0xDB, 0x8A, 0x12, 0xFF, 0xDC, 0x89, 0x11, 0xFF, 0xDC, 0x88, 0x11, 0xFF, 0xDC, 0x87, 0x10, 0xFF, - 0xDC, 0x86, 0x10, 0xFF, 0xDB, 0x84, 0x0E, 0xFF, 0xD9, 0x83, 0x0D, 0xFF, 0xD9, 0x83, 0x0E, 0xFF, - 0xDA, 0x84, 0x0E, 0xFF, 0xD9, 0x83, 0x0E, 0xFF, 0xD9, 0x82, 0x0E, 0xFF, 0xD8, 0x80, 0x0D, 0xFF, - 0xD8, 0x7F, 0x0D, 0xFF, 0xD8, 0x7F, 0x0D, 0xFF, 0xD8, 0x7F, 0x0D, 0xFF, 0xD8, 0x7F, 0x0D, 0xFF, - 0xE4, 0xA6, 0x29, 0xFF, 0xE3, 0xA7, 0x2D, 0xFF, 0xE3, 0xA8, 0x30, 0xFF, 0xE3, 0xA6, 0x2C, 0xFF, - 0xE3, 0xA3, 0x27, 0xFF, 0xE3, 0xA3, 0x27, 0xFF, 0xE3, 0xA3, 0x26, 0xFF, 0xE4, 0xA2, 0x26, 0xFF, - 0xE4, 0xA2, 0x26, 0xFF, 0xE4, 0xA1, 0x26, 0xFF, 0xE4, 0xA1, 0x26, 0xFF, 0xE5, 0xA0, 0x26, 0xFF, - 0xE5, 0x9F, 0x26, 0xFF, 0xE4, 0xA0, 0x25, 0xFF, 0xE4, 0xA0, 0x24, 0xFF, 0xE3, 0x9F, 0x24, 0xFF, - 0xE3, 0x9E, 0x24, 0xFF, 0xE4, 0x9E, 0x23, 0xFF, 0xE6, 0x9F, 0x21, 0xFF, 0xE5, 0x9F, 0x21, 0xFF, - 0xE3, 0x9E, 0x22, 0xFF, 0xE5, 0xA4, 0x13, 0xFF, 0xE7, 0x9F, 0x1A, 0xFF, 0xE7, 0x9F, 0x15, 0xFF, - 0xE7, 0xA0, 0x10, 0xFF, 0xEF, 0x9F, 0x11, 0xFF, 0xF7, 0x9E, 0x12, 0xFF, 0xEC, 0x99, 0x1A, 0xFF, - 0xE1, 0x9A, 0x17, 0xFF, 0xE3, 0x9C, 0x14, 0xFF, 0xE5, 0x98, 0x1C, 0xFF, 0xE6, 0x97, 0x1C, 0xFF, - 0xE6, 0x96, 0x1B, 0xFF, 0xDB, 0x98, 0x1B, 0xFF, 0xDF, 0x96, 0x1C, 0xFF, 0xE0, 0x95, 0x1C, 0xFF, - 0xE1, 0x94, 0x1B, 0xFF, 0xE1, 0x93, 0x1B, 0xFF, 0xE0, 0x93, 0x1A, 0xFF, 0xE0, 0x92, 0x1A, 0xFF, - 0xE0, 0x92, 0x19, 0xFF, 0xDF, 0x91, 0x18, 0xFF, 0xDF, 0x90, 0x18, 0xFF, 0xDF, 0x8F, 0x17, 0xFF, - 0xDF, 0x8F, 0x16, 0xFF, 0xDE, 0x8E, 0x15, 0xFF, 0xDD, 0x8D, 0x14, 0xFF, 0xDD, 0x8C, 0x13, 0xFF, - 0xDC, 0x8B, 0x12, 0xFF, 0xDC, 0x8A, 0x12, 0xFF, 0xDD, 0x89, 0x11, 0xFF, 0xDD, 0x87, 0x11, 0xFF, - 0xDE, 0x86, 0x10, 0xFF, 0xDC, 0x85, 0x0F, 0xFF, 0xD9, 0x83, 0x0D, 0xFF, 0xDA, 0x84, 0x0E, 0xFF, - 0xDB, 0x85, 0x0F, 0xFF, 0xDA, 0x84, 0x0F, 0xFF, 0xDA, 0x83, 0x0E, 0xFF, 0xDA, 0x81, 0x0E, 0xFF, - 0xD9, 0x80, 0x0D, 0xFF, 0xD9, 0x80, 0x0D, 0xFF, 0xD9, 0x80, 0x0D, 0xFF, 0xD9, 0x80, 0x0D, 0xFF, - 0xE7, 0xAA, 0x2C, 0xFF, 0xE4, 0xAA, 0x30, 0xFF, 0xE2, 0xAA, 0x33, 0xFF, 0xE3, 0xA8, 0x2E, 0xFF, - 0xE4, 0xA5, 0x28, 0xFF, 0xE5, 0xA5, 0x28, 0xFF, 0xE5, 0xA5, 0x28, 0xFF, 0xE5, 0xA4, 0x28, 0xFF, - 0xE5, 0xA4, 0x27, 0xFF, 0xE6, 0xA3, 0x27, 0xFF, 0xE6, 0xA2, 0x27, 0xFF, 0xE7, 0xA1, 0x27, 0xFF, - 0xE7, 0xA1, 0x27, 0xFF, 0xE8, 0xA2, 0x25, 0xFF, 0xE9, 0xA3, 0x22, 0xFF, 0xE7, 0xA0, 0x24, 0xFF, - 0xE6, 0x9E, 0x27, 0xFF, 0xE7, 0x9F, 0x25, 0xFF, 0xE8, 0xA0, 0x22, 0xFF, 0xF4, 0xA3, 0x18, 0xFF, - 0xFF, 0xA7, 0x0D, 0xFF, 0xDD, 0xA5, 0x1A, 0xFF, 0xBA, 0x8D, 0x54, 0xFF, 0x9C, 0x83, 0x6E, 0xFF, - 0x7D, 0x79, 0x88, 0xFF, 0x7B, 0x79, 0x8C, 0xFF, 0x79, 0x79, 0x91, 0xFF, 0x94, 0x7A, 0x7E, 0xFF, - 0xAF, 0x87, 0x55, 0xFF, 0xD6, 0x9B, 0x21, 0xFF, 0xFD, 0xA3, 0x04, 0xFF, 0xF4, 0x9D, 0x0F, 0xFF, - 0xEB, 0x96, 0x1B, 0xFF, 0xD9, 0x9A, 0x1B, 0xFF, 0xE4, 0x98, 0x1B, 0xFF, 0xE3, 0x96, 0x1C, 0xFF, - 0xE2, 0x95, 0x1C, 0xFF, 0xE2, 0x94, 0x1C, 0xFF, 0xE1, 0x94, 0x1B, 0xFF, 0xE1, 0x94, 0x1B, 0xFF, - 0xE0, 0x93, 0x1B, 0xFF, 0xE0, 0x92, 0x1A, 0xFF, 0xE0, 0x91, 0x19, 0xFF, 0xE1, 0x90, 0x18, 0xFF, - 0xE1, 0x8F, 0x18, 0xFF, 0xE0, 0x8F, 0x16, 0xFF, 0xDF, 0x8E, 0x15, 0xFF, 0xDE, 0x8D, 0x14, 0xFF, - 0xDC, 0x8C, 0x12, 0xFF, 0xDD, 0x8B, 0x12, 0xFF, 0xDE, 0x8A, 0x12, 0xFF, 0xDF, 0x88, 0x11, 0xFF, - 0xE0, 0x87, 0x11, 0xFF, 0xDD, 0x85, 0x0F, 0xFF, 0xDA, 0x83, 0x0D, 0xFF, 0xDB, 0x85, 0x0E, 0xFF, - 0xDC, 0x87, 0x10, 0xFF, 0xDC, 0x85, 0x0F, 0xFF, 0xDB, 0x84, 0x0F, 0xFF, 0xDB, 0x82, 0x0E, 0xFF, - 0xDA, 0x81, 0x0D, 0xFF, 0xDA, 0x81, 0x0D, 0xFF, 0xDA, 0x81, 0x0D, 0xFF, 0xDA, 0x81, 0x0D, 0xFF, - 0xE4, 0xAA, 0x30, 0xFF, 0xE8, 0xAF, 0x35, 0xFF, 0xE3, 0xAB, 0x33, 0xFF, 0xE5, 0xA9, 0x2F, 0xFF, - 0xE6, 0xA8, 0x2A, 0xFF, 0xE8, 0xAD, 0x35, 0xFF, 0xE7, 0xA6, 0x25, 0xFF, 0xE7, 0xA7, 0x28, 0xFF, - 0xE7, 0xA8, 0x2B, 0xFF, 0xE5, 0xA6, 0x2D, 0xFF, 0xE4, 0xA4, 0x2E, 0xFF, 0xE6, 0xA4, 0x2B, 0xFF, - 0xE8, 0xA4, 0x29, 0xFF, 0xE5, 0xA4, 0x2A, 0xFF, 0xE1, 0xA5, 0x2C, 0xFF, 0xEF, 0xA9, 0x10, 0xFF, - 0xF6, 0xAD, 0x12, 0xFF, 0xF8, 0xA2, 0x22, 0xFF, 0xA5, 0x91, 0x60, 0xFF, 0x5C, 0x75, 0xA5, 0xFF, - 0x14, 0x59, 0xEB, 0xFF, 0x0C, 0x48, 0xFF, 0xFF, 0x03, 0x55, 0xFA, 0xFF, 0x0F, 0x59, 0xFF, 0xFF, - 0x1A, 0x5D, 0xFF, 0xFF, 0x16, 0x60, 0xFF, 0xFF, 0x11, 0x64, 0xF9, 0xFF, 0x0F, 0x54, 0xFF, 0xFF, - 0x0C, 0x4A, 0xFF, 0xFF, 0x17, 0x49, 0xFA, 0xFF, 0x23, 0x47, 0xF5, 0xFF, 0x7E, 0x72, 0x8D, 0xFF, - 0xD9, 0x9D, 0x26, 0xFF, 0xFF, 0xA1, 0x05, 0xFF, 0xE1, 0x96, 0x1D, 0xFF, 0xE9, 0x98, 0x17, 0xFF, - 0xE3, 0x97, 0x1C, 0xFF, 0xE3, 0x97, 0x1A, 0xFF, 0xE4, 0x97, 0x18, 0xFF, 0xE3, 0x96, 0x19, 0xFF, - 0xE2, 0x94, 0x1B, 0xFF, 0xE1, 0x93, 0x1A, 0xFF, 0xE0, 0x93, 0x19, 0xFF, 0xE1, 0x92, 0x18, 0xFF, - 0xE1, 0x91, 0x17, 0xFF, 0xE0, 0x90, 0x16, 0xFF, 0xDF, 0x8F, 0x15, 0xFF, 0xDE, 0x8E, 0x14, 0xFF, - 0xDD, 0x8D, 0x13, 0xFF, 0xDE, 0x8D, 0x13, 0xFF, 0xDF, 0x8C, 0x13, 0xFF, 0xDF, 0x8A, 0x12, 0xFF, - 0xE0, 0x89, 0x10, 0xFF, 0xDD, 0x87, 0x0F, 0xFF, 0xDB, 0x84, 0x0E, 0xFF, 0xDF, 0x8A, 0x13, 0xFF, - 0xDB, 0x87, 0x0F, 0xFF, 0xDC, 0x86, 0x0F, 0xFF, 0xDC, 0x85, 0x0F, 0xFF, 0xDB, 0x84, 0x0E, 0xFF, - 0xDB, 0x82, 0x0D, 0xFF, 0xDB, 0x82, 0x0D, 0xFF, 0xDB, 0x82, 0x0D, 0xFF, 0xDB, 0x82, 0x0D, 0xFF, - 0xE2, 0xAB, 0x33, 0xFF, 0xEB, 0xB3, 0x3B, 0xFF, 0xE5, 0xAC, 0x33, 0xFF, 0xE6, 0xAB, 0x30, 0xFF, - 0xE7, 0xAA, 0x2D, 0xFF, 0xEA, 0xB6, 0x43, 0xFF, 0xEA, 0xA7, 0x23, 0xFF, 0xE9, 0xA9, 0x29, 0xFF, - 0xE9, 0xAB, 0x2F, 0xFF, 0xE5, 0xA9, 0x32, 0xFF, 0xE2, 0xA7, 0x35, 0xFF, 0xE6, 0xA7, 0x30, 0xFF, - 0xEA, 0xA8, 0x2A, 0xFF, 0xF0, 0xAA, 0x25, 0xFF, 0xF6, 0xAD, 0x1F, 0xFF, 0xA7, 0x8A, 0x4D, 0xFF, - 0x4C, 0x66, 0xB7, 0xFF, 0x0F, 0x54, 0xFF, 0xFF, 0x0C, 0x64, 0xF7, 0xFF, 0x13, 0x63, 0xF8, 0xFF, - 0x1A, 0x61, 0xF9, 0xFF, 0x1E, 0x67, 0xEF, 0xFF, 0x22, 0x61, 0xFC, 0xFF, 0x25, 0x68, 0xFA, 0xFF, - 0x28, 0x6F, 0xF9, 0xFF, 0x22, 0x70, 0xF5, 0xFF, 0x1B, 0x72, 0xF2, 0xFF, 0x1F, 0x6B, 0xF2, 0xFF, - 0x24, 0x64, 0xF1, 0xFF, 0x21, 0x55, 0xFF, 0xFF, 0x1E, 0x53, 0xFF, 0xFF, 0x16, 0x4B, 0xFF, 0xFF, - 0x0E, 0x43, 0xFF, 0xFF, 0x5A, 0x61, 0xB1, 0xFF, 0xDF, 0x95, 0x1E, 0xFF, 0xF0, 0x9A, 0x12, 0xFF, - 0xE5, 0x9A, 0x1B, 0xFF, 0xE5, 0x9A, 0x18, 0xFF, 0xE6, 0x9A, 0x14, 0xFF, 0xE5, 0x98, 0x17, 0xFF, - 0xE4, 0x95, 0x1B, 0xFF, 0xE2, 0x95, 0x1A, 0xFF, 0xE0, 0x94, 0x19, 0xFF, 0xE1, 0x93, 0x18, 0xFF, - 0xE2, 0x92, 0x17, 0xFF, 0xE1, 0x91, 0x16, 0xFF, 0xE0, 0x90, 0x16, 0xFF, 0xDF, 0x8F, 0x15, 0xFF, - 0xDE, 0x8F, 0x14, 0xFF, 0xDF, 0x8E, 0x14, 0xFF, 0xE1, 0x8E, 0x14, 0xFF, 0xE0, 0x8C, 0x12, 0xFF, - 0xE0, 0x8A, 0x10, 0xFF, 0xDE, 0x88, 0x10, 0xFF, 0xDC, 0x86, 0x10, 0xFF, 0xE3, 0x8E, 0x17, 0xFF, - 0xDB, 0x87, 0x0D, 0xFF, 0xDB, 0x86, 0x0E, 0xFF, 0xDC, 0x86, 0x0F, 0xFF, 0xDC, 0x85, 0x0E, 0xFF, - 0xDB, 0x83, 0x0E, 0xFF, 0xDB, 0x83, 0x0E, 0xFF, 0xDB, 0x83, 0x0E, 0xFF, 0xDB, 0x83, 0x0E, 0xFF, - 0xEA, 0xB0, 0x36, 0xFF, 0xEF, 0xB3, 0x36, 0xFF, 0xED, 0xAE, 0x2E, 0xFF, 0xEC, 0xAD, 0x2C, 0xFF, - 0xEB, 0xAD, 0x2A, 0xFF, 0xEF, 0xB3, 0x40, 0xFF, 0xE9, 0xAA, 0x28, 0xFF, 0xE7, 0xAB, 0x2B, 0xFF, - 0xE6, 0xAB, 0x2F, 0xFF, 0xE6, 0xAA, 0x30, 0xFF, 0xE5, 0xAA, 0x31, 0xFF, 0xE6, 0xA9, 0x2E, 0xFF, - 0xE7, 0xA9, 0x2B, 0xFF, 0xEB, 0xA7, 0x24, 0xFF, 0x5F, 0x6A, 0x93, 0xFF, 0x05, 0x3D, 0xFF, 0xFF, - 0x17, 0x56, 0xF9, 0xFF, 0x12, 0x72, 0xE2, 0xFF, 0x29, 0x72, 0xF8, 0xFF, 0x27, 0x74, 0xF7, 0xFF, - 0x25, 0x76, 0xF6, 0xFF, 0x28, 0x76, 0xF1, 0xFF, 0x2A, 0x70, 0xF8, 0xFF, 0x2D, 0x77, 0xF8, 0xFF, - 0x30, 0x7D, 0xF9, 0xFF, 0x2D, 0x7F, 0xF7, 0xFF, 0x2A, 0x81, 0xF5, 0xFF, 0x2B, 0x7B, 0xF5, 0xFF, - 0x2C, 0x75, 0xF5, 0xFF, 0x2B, 0x6A, 0xFD, 0xFF, 0x2A, 0x64, 0xFA, 0xFF, 0x2C, 0x5D, 0xF5, 0xFF, - 0x2E, 0x57, 0xF0, 0xFF, 0x10, 0x48, 0xFF, 0xFF, 0x0E, 0x45, 0xFF, 0xFF, 0x7F, 0x76, 0x80, 0xFF, - 0xF0, 0xA7, 0x02, 0xFF, 0xEA, 0x95, 0x24, 0xFF, 0xE3, 0x9A, 0x19, 0xFF, 0xE4, 0x98, 0x1B, 0xFF, - 0xE4, 0x95, 0x1D, 0xFF, 0xE2, 0x95, 0x1B, 0xFF, 0xDF, 0x96, 0x19, 0xFF, 0xE1, 0x94, 0x18, 0xFF, - 0xE2, 0x93, 0x17, 0xFF, 0xE2, 0x92, 0x16, 0xFF, 0xE1, 0x92, 0x16, 0xFF, 0xE0, 0x91, 0x15, 0xFF, - 0xDF, 0x90, 0x15, 0xFF, 0xE0, 0x90, 0x15, 0xFF, 0xE2, 0x91, 0x15, 0xFF, 0xE1, 0x8E, 0x12, 0xFF, - 0xDF, 0x8C, 0x0F, 0xFF, 0xDF, 0x8B, 0x12, 0xFF, 0xDF, 0x8A, 0x14, 0xFF, 0xE2, 0x8D, 0x15, 0xFF, - 0xDC, 0x89, 0x0E, 0xFF, 0xDC, 0x88, 0x0E, 0xFF, 0xDD, 0x87, 0x0F, 0xFF, 0xDC, 0x86, 0x0E, 0xFF, - 0xDC, 0x85, 0x0E, 0xFF, 0xDC, 0x85, 0x0E, 0xFF, 0xDC, 0x85, 0x0E, 0xFF, 0xDC, 0x85, 0x0E, 0xFF, - 0xE6, 0xC0, 0x5F, 0xFF, 0xE8, 0xBE, 0x57, 0xFF, 0xE9, 0xBB, 0x4F, 0xFF, 0xE6, 0xBA, 0x4E, 0xFF, - 0xE3, 0xB9, 0x4D, 0xFF, 0xED, 0xB6, 0x50, 0xFF, 0xE7, 0xAE, 0x2D, 0xFF, 0xE6, 0xAC, 0x2E, 0xFF, - 0xE4, 0xAB, 0x2E, 0xFF, 0xE6, 0xAC, 0x2E, 0xFF, 0xE8, 0xAD, 0x2E, 0xFF, 0xE7, 0xAB, 0x2D, 0xFF, - 0xE5, 0xAA, 0x2C, 0xFF, 0xFF, 0xB2, 0x15, 0xFF, 0x10, 0x42, 0xEB, 0xFF, 0x16, 0x4F, 0xF1, 0xFF, - 0x1C, 0x5C, 0xF7, 0xFF, 0x23, 0x71, 0xF8, 0xFF, 0x29, 0x85, 0xF9, 0xFF, 0x2D, 0x88, 0xF6, 0xFF, - 0x30, 0x8B, 0xF3, 0xFF, 0x31, 0x85, 0xF4, 0xFF, 0x33, 0x7F, 0xF4, 0xFF, 0x35, 0x85, 0xF6, 0xFF, - 0x37, 0x8B, 0xF9, 0xFF, 0x38, 0x8D, 0xF8, 0xFF, 0x3A, 0x90, 0xF7, 0xFF, 0x37, 0x8B, 0xF8, 0xFF, - 0x35, 0x86, 0xF8, 0xFF, 0x35, 0x7E, 0xF7, 0xFF, 0x35, 0x75, 0xF6, 0xFF, 0x33, 0x6D, 0xF7, 0xFF, - 0x31, 0x64, 0xF7, 0xFF, 0x31, 0x5E, 0xF8, 0xFF, 0x30, 0x57, 0xF8, 0xFF, 0x25, 0x51, 0xFF, 0xFF, - 0x36, 0x51, 0xF5, 0xFF, 0xFD, 0xA4, 0x03, 0xFF, 0xE1, 0x9A, 0x1E, 0xFF, 0xE3, 0x98, 0x1E, 0xFF, - 0xE5, 0x96, 0x1E, 0xFF, 0xE2, 0x96, 0x1C, 0xFF, 0xDF, 0x97, 0x19, 0xFF, 0xE1, 0x96, 0x18, 0xFF, - 0xE3, 0x95, 0x17, 0xFF, 0xE2, 0x94, 0x16, 0xFF, 0xE1, 0x93, 0x16, 0xFF, 0xE0, 0x92, 0x16, 0xFF, - 0xE0, 0x91, 0x15, 0xFF, 0xE2, 0x92, 0x16, 0xFF, 0xE4, 0x93, 0x16, 0xFF, 0xE1, 0x90, 0x12, 0xFF, - 0xDF, 0x8E, 0x0F, 0xFF, 0xE1, 0x8D, 0x14, 0xFF, 0xE3, 0x8D, 0x18, 0xFF, 0xE0, 0x8C, 0x13, 0xFF, - 0xDE, 0x8B, 0x0F, 0xFF, 0xDD, 0x89, 0x0F, 0xFF, 0xDD, 0x88, 0x0E, 0xFF, 0xDD, 0x87, 0x0E, 0xFF, - 0xDC, 0x86, 0x0E, 0xFF, 0xDC, 0x86, 0x0E, 0xFF, 0xDC, 0x86, 0x0E, 0xFF, 0xDC, 0x86, 0x0E, 0xFF, - 0xED, 0xB6, 0x3C, 0xFF, 0xEE, 0xB3, 0x35, 0xFF, 0xEF, 0xB1, 0x2F, 0xFF, 0xED, 0xB1, 0x2F, 0xFF, - 0xEC, 0xB0, 0x2F, 0xFF, 0xEE, 0xB0, 0x38, 0xFF, 0xE9, 0xAE, 0x2D, 0xFF, 0xE7, 0xAD, 0x2F, 0xFF, - 0xE6, 0xAD, 0x30, 0xFF, 0xE8, 0xAE, 0x2F, 0xFF, 0xEA, 0xB0, 0x2D, 0xFF, 0xEC, 0xAD, 0x30, 0xFF, - 0xEE, 0xAF, 0x28, 0xFF, 0xC8, 0xA9, 0x2F, 0xFF, 0x04, 0x3D, 0xFF, 0xFF, 0x19, 0x50, 0xFA, 0xFF, - 0x21, 0x5F, 0xF8, 0xFF, 0x28, 0x73, 0xF7, 0xFF, 0x2F, 0x87, 0xF7, 0xFF, 0x37, 0x95, 0xFA, 0xFF, - 0x37, 0x9B, 0xF5, 0xFF, 0x3A, 0x96, 0xF5, 0xFF, 0x3D, 0x92, 0xF5, 0xFF, 0x3F, 0x94, 0xF7, 0xFF, - 0x41, 0x96, 0xF9, 0xFF, 0x43, 0x99, 0xF9, 0xFF, 0x46, 0x9D, 0xF9, 0xFF, 0x44, 0x98, 0xF8, 0xFF, - 0x43, 0x94, 0xF7, 0xFF, 0x42, 0x8D, 0xF8, 0xFF, 0x41, 0x86, 0xF9, 0xFF, 0x3F, 0x7D, 0xF9, 0xFF, - 0x3C, 0x73, 0xF9, 0xFF, 0x38, 0x70, 0xF7, 0xFF, 0x35, 0x6C, 0xF4, 0xFF, 0x21, 0x60, 0xFF, 0xFF, - 0x62, 0x6C, 0xBE, 0xFF, 0xEF, 0x9D, 0x12, 0xFF, 0xE8, 0x9A, 0x21, 0xFF, 0xED, 0x99, 0x1C, 0xFF, - 0xE3, 0x9B, 0x17, 0xFF, 0xF0, 0x98, 0x13, 0xFF, 0xE0, 0x94, 0x1B, 0xFF, 0xE1, 0x96, 0x1A, 0xFF, - 0xE3, 0x97, 0x19, 0xFF, 0xE4, 0x96, 0x18, 0xFF, 0xE5, 0x95, 0x17, 0xFF, 0xE3, 0x94, 0x18, 0xFF, - 0xE2, 0x93, 0x19, 0xFF, 0xE0, 0x91, 0x16, 0xFF, 0xDE, 0x90, 0x14, 0xFF, 0xE1, 0x91, 0x15, 0xFF, - 0xE5, 0x92, 0x16, 0xFF, 0xE3, 0x90, 0x14, 0xFF, 0xE2, 0x8D, 0x11, 0xFF, 0xE2, 0x8D, 0x10, 0xFF, - 0xE3, 0x8D, 0x0F, 0xFF, 0xDE, 0x8A, 0x10, 0xFF, 0xD8, 0x88, 0x11, 0xFF, 0xE1, 0x87, 0x0E, 0xFF, - 0xDC, 0x89, 0x0B, 0xFF, 0xE0, 0x85, 0x10, 0xFF, 0xE4, 0x87, 0x09, 0xFF, 0xE4, 0x87, 0x09, 0xFF, - 0xE8, 0xB5, 0x3F, 0xFF, 0xE9, 0xB3, 0x3B, 0xFF, 0xEA, 0xB2, 0x36, 0xFF, 0xE9, 0xB1, 0x37, 0xFF, - 0xE8, 0xB1, 0x37, 0xFF, 0xE9, 0xAF, 0x32, 0xFF, 0xEA, 0xAE, 0x2D, 0xFF, 0xE9, 0xAE, 0x30, 0xFF, - 0xE8, 0xAF, 0x32, 0xFF, 0xEA, 0xB1, 0x30, 0xFF, 0xEC, 0xB4, 0x2D, 0xFF, 0xF1, 0xAE, 0x34, 0xFF, - 0xF6, 0xB4, 0x24, 0xFF, 0x86, 0x7E, 0x8D, 0xFF, 0x00, 0x4E, 0xF6, 0xFF, 0x1D, 0x5C, 0xEC, 0xFF, - 0x25, 0x63, 0xF9, 0xFF, 0x2D, 0x76, 0xF7, 0xFF, 0x35, 0x89, 0xF4, 0xFF, 0x41, 0xA2, 0xFD, 0xFF, - 0x3E, 0xAB, 0xF6, 0xFF, 0x43, 0xA8, 0xF6, 0xFF, 0x47, 0xA4, 0xF7, 0xFF, 0x4A, 0xA3, 0xF8, 0xFF, - 0x4C, 0xA1, 0xFA, 0xFF, 0x4E, 0xA5, 0xFA, 0xFF, 0x51, 0xAA, 0xFB, 0xFF, 0x52, 0xA6, 0xF9, 0xFF, - 0x52, 0xA2, 0xF7, 0xFF, 0x4F, 0x9C, 0xFA, 0xFF, 0x4D, 0x97, 0xFD, 0xFF, 0x4A, 0x8D, 0xFC, 0xFF, - 0x47, 0x83, 0xFB, 0xFF, 0x40, 0x82, 0xF6, 0xFF, 0x39, 0x82, 0xF1, 0xFF, 0x2B, 0x72, 0xF4, 0xFF, - 0xAB, 0x8C, 0x71, 0xFF, 0xF0, 0x99, 0x16, 0xFF, 0xEF, 0x99, 0x25, 0xFF, 0xE8, 0x97, 0x25, 0xFF, - 0xC5, 0x9A, 0x26, 0xFF, 0xF0, 0x96, 0x16, 0xFF, 0xE2, 0x91, 0x1C, 0xFF, 0xE2, 0x96, 0x1B, 0xFF, - 0xE2, 0x9A, 0x1B, 0xFF, 0xE5, 0x99, 0x19, 0xFF, 0xE8, 0x98, 0x18, 0xFF, 0xE6, 0x96, 0x1A, 0xFF, - 0xE4, 0x95, 0x1C, 0xFF, 0xDF, 0x91, 0x17, 0xFF, 0xD9, 0x8D, 0x13, 0xFF, 0xE2, 0x92, 0x18, 0xFF, - 0xEA, 0x97, 0x1E, 0xFF, 0xE5, 0x92, 0x14, 0xFF, 0xE1, 0x8D, 0x0B, 0xFF, 0xE5, 0x8E, 0x0D, 0xFF, - 0xE9, 0x8F, 0x10, 0xFF, 0xDE, 0x8B, 0x12, 0xFF, 0xD4, 0x88, 0x14, 0xFF, 0xE6, 0x87, 0x0E, 0xFF, - 0xDC, 0x8C, 0x08, 0xFF, 0xE4, 0x84, 0x11, 0xFF, 0xEC, 0x88, 0x03, 0xFF, 0xEC, 0x88, 0x03, 0xFF, - 0xEA, 0xB6, 0x3D, 0xFF, 0xEA, 0xB5, 0x3A, 0xFF, 0xEB, 0xB4, 0x38, 0xFF, 0xEB, 0xB3, 0x37, 0xFF, - 0xEA, 0xB3, 0x37, 0xFF, 0xEB, 0xB2, 0x34, 0xFF, 0xEB, 0xB1, 0x32, 0xFF, 0xEB, 0xB1, 0x33, 0xFF, - 0xEA, 0xB0, 0x34, 0xFF, 0xE9, 0xB3, 0x32, 0xFF, 0xE8, 0xB5, 0x2F, 0xFF, 0xF0, 0xB0, 0x34, 0xFF, - 0xF8, 0xB6, 0x22, 0xFF, 0x44, 0x60, 0xC5, 0xFF, 0x0B, 0x53, 0xF9, 0xFF, 0x21, 0x63, 0xF2, 0xFF, - 0x29, 0x6F, 0xF6, 0xFF, 0x2F, 0x7D, 0xF6, 0xFF, 0x35, 0x8A, 0xF7, 0xFF, 0x41, 0xA1, 0xFA, 0xFF, - 0x45, 0xAF, 0xF6, 0xFF, 0x4F, 0xB4, 0xFA, 0xFF, 0x50, 0xB0, 0xF6, 0xFF, 0x53, 0xAE, 0xF8, 0xFF, - 0x56, 0xAC, 0xFA, 0xFF, 0x59, 0xB2, 0xFC, 0xFF, 0x5D, 0xB7, 0xFD, 0xFF, 0x5F, 0xB3, 0xFA, 0xFF, - 0x61, 0xAF, 0xF6, 0xFF, 0x5D, 0xAC, 0xF9, 0xFF, 0x59, 0xA9, 0xFD, 0xFF, 0x55, 0x9F, 0xFB, 0xFF, - 0x50, 0x94, 0xF8, 0xFF, 0x4A, 0x91, 0xF7, 0xFF, 0x44, 0x8D, 0xF5, 0xFF, 0x22, 0x7D, 0xFF, 0xFF, - 0xEF, 0xA5, 0x1A, 0xFF, 0xF3, 0x9E, 0x12, 0xFF, 0xF1, 0x96, 0x28, 0xFF, 0xB0, 0x9F, 0x22, 0xFF, - 0x00, 0x96, 0x6C, 0xFF, 0x82, 0x9B, 0x3B, 0xFF, 0xF8, 0x9D, 0x16, 0xFF, 0xF4, 0x9B, 0x15, 0xFF, - 0xE2, 0x9C, 0x14, 0xFF, 0xE4, 0x99, 0x15, 0xFF, 0xE6, 0x96, 0x17, 0xFF, 0xE5, 0x95, 0x18, 0xFF, - 0xE4, 0x93, 0x1A, 0xFF, 0xE2, 0x93, 0x18, 0xFF, 0xE0, 0x92, 0x16, 0xFF, 0xE6, 0x98, 0x1C, 0xFF, - 0xE4, 0x95, 0x19, 0xFF, 0xE4, 0x92, 0x16, 0xFF, 0xE5, 0x8F, 0x12, 0xFF, 0xEB, 0x8C, 0x12, 0xFF, - 0xE3, 0x8B, 0x12, 0xFF, 0xE3, 0x87, 0x00, 0xFF, 0xF4, 0x7B, 0x00, 0xFF, 0xD3, 0x86, 0x1A, 0xFF, - 0xF0, 0x8C, 0x0C, 0xFF, 0xE2, 0x8E, 0x00, 0xFF, 0xEA, 0x84, 0x0D, 0xFF, 0xF1, 0x86, 0x07, 0xFF, - 0xEC, 0xB7, 0x3B, 0xFF, 0xEC, 0xB6, 0x3A, 0xFF, 0xEC, 0xB6, 0x39, 0xFF, 0xEC, 0xB5, 0x38, 0xFF, - 0xED, 0xB5, 0x37, 0xFF, 0xEC, 0xB4, 0x37, 0xFF, 0xEC, 0xB4, 0x37, 0xFF, 0xEC, 0xB3, 0x36, 0xFF, - 0xEC, 0xB2, 0x36, 0xFF, 0xE8, 0xB4, 0x33, 0xFF, 0xE4, 0xB5, 0x31, 0xFF, 0xEF, 0xB1, 0x34, 0xFF, - 0xF9, 0xB8, 0x21, 0xFF, 0x02, 0x41, 0xFD, 0xFF, 0x1E, 0x58, 0xFC, 0xFF, 0x25, 0x6A, 0xF8, 0xFF, - 0x2C, 0x7C, 0xF3, 0xFF, 0x31, 0x84, 0xF6, 0xFF, 0x35, 0x8B, 0xF9, 0xFF, 0x41, 0xA0, 0xF7, 0xFF, - 0x4C, 0xB4, 0xF6, 0xFF, 0x5B, 0xC0, 0xFE, 0xFF, 0x59, 0xBC, 0xF6, 0xFF, 0x5D, 0xBA, 0xF8, 0xFF, - 0x60, 0xB7, 0xFA, 0xFF, 0x64, 0xBE, 0xFD, 0xFF, 0x69, 0xC4, 0xFF, 0xFF, 0x6C, 0xC0, 0xFA, 0xFF, - 0x6F, 0xBD, 0xF5, 0xFF, 0x6A, 0xBC, 0xF9, 0xFF, 0x65, 0xBB, 0xFD, 0xFF, 0x60, 0xB1, 0xFA, 0xFF, - 0x5A, 0xA6, 0xF6, 0xFF, 0x54, 0x9F, 0xF8, 0xFF, 0x4F, 0x98, 0xFA, 0xFF, 0x6E, 0x94, 0xDF, 0xFF, - 0xFB, 0xA6, 0x07, 0xFF, 0xDA, 0x9C, 0x24, 0xFF, 0xF2, 0x9F, 0x14, 0xFF, 0x71, 0xA1, 0x4A, 0xFF, - 0x0D, 0xA9, 0x68, 0xFF, 0x06, 0xA3, 0x61, 0xFF, 0x1B, 0x98, 0x5A, 0xFF, 0x9B, 0x96, 0x33, 0xFF, - 0xFE, 0x99, 0x0D, 0xFF, 0xF1, 0x96, 0x11, 0xFF, 0xE4, 0x94, 0x16, 0xFF, 0xE4, 0x93, 0x17, 0xFF, - 0xE4, 0x91, 0x18, 0xFF, 0xE5, 0x94, 0x19, 0xFF, 0xE6, 0x98, 0x1A, 0xFF, 0xEA, 0x9D, 0x1F, 0xFF, - 0xDE, 0x93, 0x15, 0xFF, 0xE3, 0x92, 0x17, 0xFF, 0xE8, 0x91, 0x1A, 0xFF, 0xEB, 0x94, 0x1F, 0xFF, - 0xD1, 0x9D, 0x25, 0xFF, 0x72, 0xF7, 0xD0, 0xFF, 0x95, 0xF2, 0xC1, 0xFF, 0xF0, 0x83, 0x00, 0xFF, - 0xA0, 0x81, 0x17, 0xFF, 0x2E, 0x7E, 0x3B, 0xFF, 0xCB, 0x87, 0x16, 0xFF, 0xDA, 0x8A, 0x0B, 0xFF, - 0xEC, 0xB8, 0x3D, 0xFF, 0xED, 0xB8, 0x3C, 0xFF, 0xED, 0xB7, 0x3B, 0xFF, 0xED, 0xB7, 0x3A, 0xFF, - 0xED, 0xB6, 0x39, 0xFF, 0xED, 0xB6, 0x39, 0xFF, 0xED, 0xB6, 0x39, 0xFF, 0xED, 0xB6, 0x39, 0xFF, - 0xED, 0xB6, 0x39, 0xFF, 0xEC, 0xB4, 0x37, 0xFF, 0xEB, 0xB2, 0x34, 0xFF, 0xF2, 0xAB, 0x34, 0xFF, - 0xB3, 0x95, 0x6D, 0xFF, 0x00, 0x46, 0xFF, 0xFF, 0x20, 0x64, 0xF7, 0xFF, 0x28, 0x73, 0xF6, 0xFF, - 0x30, 0x81, 0xF5, 0xFF, 0x37, 0x8B, 0xF6, 0xFF, 0x3D, 0x94, 0xF8, 0xFF, 0x48, 0xA6, 0xF8, 0xFF, - 0x53, 0xB7, 0xF7, 0xFF, 0x60, 0xC2, 0xFB, 0xFF, 0x65, 0xC4, 0xF7, 0xFF, 0x69, 0xC3, 0xF9, 0xFF, - 0x6D, 0xC2, 0xFA, 0xFF, 0x72, 0xC6, 0xFA, 0xFF, 0x77, 0xCB, 0xFA, 0xFF, 0x7A, 0xCB, 0xFB, 0xFF, - 0x7D, 0xCB, 0xFC, 0xFF, 0x7A, 0xC8, 0xFA, 0xFF, 0x77, 0xC5, 0xF8, 0xFF, 0x72, 0xBC, 0xF9, 0xFF, - 0x6C, 0xB4, 0xFA, 0xFF, 0x68, 0xB0, 0xF6, 0xFF, 0x56, 0xAA, 0xFD, 0xFF, 0xA5, 0xA0, 0x93, 0xFF, - 0xF3, 0xA1, 0x13, 0xFF, 0xEF, 0x9C, 0x21, 0xFF, 0xFF, 0x9D, 0x19, 0xFF, 0x23, 0xC1, 0x71, 0xFF, - 0x25, 0xB7, 0x79, 0xFF, 0x1D, 0xB2, 0x71, 0xFF, 0x23, 0xAA, 0x6A, 0xFF, 0x25, 0xA0, 0x66, 0xFF, - 0x18, 0x9A, 0x63, 0xFF, 0x72, 0x9C, 0x41, 0xFF, 0xCB, 0x9F, 0x1E, 0xFF, 0xFF, 0x93, 0x18, 0xFF, - 0xF1, 0x98, 0x13, 0xFF, 0xF4, 0x9C, 0x18, 0xFF, 0xF7, 0xA0, 0x1D, 0xFF, 0xFF, 0x9C, 0x1B, 0xFF, - 0xF6, 0x93, 0x10, 0xFF, 0xF1, 0x93, 0x11, 0xFF, 0xEC, 0x93, 0x13, 0xFF, 0xFF, 0x83, 0x00, 0xFF, - 0xA0, 0xCB, 0x72, 0xFF, 0x81, 0xF9, 0xCB, 0xFF, 0xAC, 0xFF, 0xD0, 0xFF, 0x45, 0xA0, 0x78, 0xFF, - 0x00, 0x77, 0x33, 0xFF, 0x02, 0x7C, 0x3A, 0xFF, 0xE2, 0x8C, 0x0D, 0xFF, 0xDB, 0x8E, 0x0D, 0xFF, - 0xED, 0xBA, 0x3E, 0xFF, 0xED, 0xB9, 0x3D, 0xFF, 0xED, 0xB9, 0x3C, 0xFF, 0xED, 0xB8, 0x3B, 0xFF, - 0xED, 0xB8, 0x3A, 0xFF, 0xED, 0xB8, 0x3B, 0xFF, 0xED, 0xB8, 0x3B, 0xFF, 0xEE, 0xB8, 0x3C, 0xFF, - 0xEE, 0xB9, 0x3C, 0xFF, 0xF0, 0xB4, 0x3A, 0xFF, 0xF2, 0xAE, 0x37, 0xFF, 0xFE, 0xB3, 0x32, 0xFF, - 0x7C, 0x8E, 0xB3, 0xFF, 0x06, 0x58, 0xFF, 0xFF, 0x22, 0x71, 0xF3, 0xFF, 0x2B, 0x7C, 0xF4, 0xFF, - 0x34, 0x86, 0xF6, 0xFF, 0x3D, 0x92, 0xF7, 0xFF, 0x45, 0x9D, 0xF8, 0xFF, 0x4F, 0xAC, 0xF8, 0xFF, - 0x5A, 0xBB, 0xF8, 0xFF, 0x65, 0xC4, 0xF9, 0xFF, 0x70, 0xCC, 0xF9, 0xFF, 0x75, 0xCC, 0xFA, 0xFF, - 0x7A, 0xCC, 0xFA, 0xFF, 0x80, 0xCF, 0xF7, 0xFF, 0x85, 0xD2, 0xF4, 0xFF, 0x89, 0xD5, 0xFB, 0xFF, - 0x8C, 0xD9, 0xFF, 0xFF, 0x8B, 0xD3, 0xFA, 0xFF, 0x89, 0xCE, 0xF2, 0xFF, 0x84, 0xC8, 0xF8, 0xFF, - 0x7F, 0xC1, 0xFE, 0xFF, 0x7C, 0xC1, 0xF4, 0xFF, 0x5E, 0xBC, 0xFF, 0xFF, 0xDB, 0xAB, 0x47, 0xFF, - 0xEA, 0x9C, 0x1E, 0xFF, 0xE8, 0xA2, 0x1D, 0xFF, 0xE5, 0xA7, 0x1D, 0xFF, 0x1B, 0xD3, 0x98, 0xFF, - 0x21, 0xCB, 0x8A, 0xFF, 0x26, 0xC3, 0x82, 0xFF, 0x2C, 0xBB, 0x7A, 0xFF, 0x28, 0xB4, 0x75, 0xFF, - 0x25, 0xAD, 0x70, 0xFF, 0x16, 0xAB, 0x6D, 0xFF, 0x08, 0xA9, 0x6A, 0xFF, 0x11, 0xA9, 0x5E, 0xFF, - 0x53, 0x9E, 0x51, 0xFF, 0x6D, 0x9B, 0x47, 0xFF, 0x87, 0x97, 0x3E, 0xFF, 0x91, 0x95, 0x3B, 0xFF, - 0x80, 0x98, 0x38, 0xFF, 0x63, 0x96, 0x44, 0xFF, 0x45, 0x94, 0x4F, 0xFF, 0x3C, 0xB4, 0x82, 0xFF, - 0x1B, 0x84, 0x4F, 0xFF, 0x87, 0xE0, 0xAF, 0xFF, 0x82, 0xCC, 0x9E, 0xFF, 0x11, 0x7F, 0x35, 0xFF, - 0x1B, 0x82, 0x42, 0xFF, 0x3B, 0x84, 0x32, 0xFF, 0xF9, 0x92, 0x04, 0xFF, 0xDC, 0x92, 0x0F, 0xFF, - 0xEE, 0xBC, 0x40, 0xFF, 0xED, 0xBB, 0x3F, 0xFF, 0xED, 0xBA, 0x3E, 0xFF, 0xED, 0xBA, 0x3D, 0xFF, - 0xEC, 0xB9, 0x3C, 0xFF, 0xEC, 0xB9, 0x3C, 0xFF, 0xEC, 0xB8, 0x3C, 0xFF, 0xEC, 0xB8, 0x3C, 0xFF, - 0xEB, 0xB8, 0x3C, 0xFF, 0xF0, 0xB3, 0x3F, 0xFF, 0xF4, 0xAF, 0x42, 0xFF, 0xE8, 0xBA, 0x0D, 0xFF, - 0x96, 0xB8, 0xFF, 0xFF, 0x4C, 0x81, 0xF6, 0xFF, 0x22, 0x75, 0xF5, 0xFF, 0x2D, 0x80, 0xF6, 0xFF, - 0x38, 0x8B, 0xF7, 0xFF, 0x42, 0x99, 0xF7, 0xFF, 0x4D, 0xA6, 0xF7, 0xFF, 0x56, 0xB2, 0xF8, 0xFF, - 0x5F, 0xBD, 0xF9, 0xFF, 0x6D, 0xC8, 0xF9, 0xFF, 0x7A, 0xD4, 0xFA, 0xFF, 0x81, 0xD5, 0xFA, 0xFF, - 0x88, 0xD7, 0xF9, 0xFF, 0x8D, 0xD8, 0xFA, 0xFF, 0x92, 0xDA, 0xFB, 0xFF, 0xA1, 0xE4, 0xF9, 0xFF, - 0x91, 0xD6, 0xFE, 0xFF, 0x9F, 0xDE, 0xFA, 0xFF, 0x97, 0xDB, 0xF8, 0xFF, 0x93, 0xD5, 0xF9, 0xFF, - 0x8F, 0xCF, 0xFB, 0xFF, 0x85, 0xD1, 0xFF, 0xFF, 0x78, 0xC6, 0xFF, 0xFF, 0xFC, 0x9A, 0x00, 0xFF, - 0xF1, 0xA8, 0x26, 0xFF, 0xF8, 0xA4, 0x1F, 0xFF, 0xA5, 0xBD, 0x53, 0xFF, 0x30, 0xDA, 0xA4, 0xFF, - 0x37, 0xD5, 0x9D, 0xFF, 0x3A, 0xD0, 0x97, 0xFF, 0x3D, 0xCA, 0x90, 0xFF, 0x39, 0xC5, 0x8A, 0xFF, - 0x35, 0xBF, 0x84, 0xFF, 0x30, 0xBD, 0x7C, 0xFF, 0x2C, 0xBC, 0x74, 0xFF, 0x1B, 0xB8, 0x75, 0xFF, - 0x27, 0xAF, 0x77, 0xFF, 0x25, 0xAB, 0x72, 0xFF, 0x23, 0xA7, 0x6D, 0xFF, 0x28, 0xA3, 0x6A, 0xFF, - 0x1E, 0xA2, 0x68, 0xFF, 0x19, 0x95, 0x57, 0xFF, 0x45, 0xB7, 0x77, 0xFF, 0x81, 0xF0, 0xBA, 0xFF, - 0x4C, 0xAC, 0x72, 0xFF, 0x14, 0x7B, 0x41, 0xFF, 0x1D, 0x8A, 0x4F, 0xFF, 0x1C, 0x86, 0x42, 0xFF, - 0x14, 0x86, 0x49, 0xFF, 0x8B, 0x86, 0x16, 0xFF, 0xF5, 0x90, 0x0A, 0xFF, 0xE7, 0x8D, 0x15, 0xFF, - 0xEF, 0xBE, 0x41, 0xFF, 0xEE, 0xBD, 0x40, 0xFF, 0xED, 0xBC, 0x3F, 0xFF, 0xED, 0xBB, 0x3E, 0xFF, - 0xEC, 0xBA, 0x3D, 0xFF, 0xEB, 0xBA, 0x3D, 0xFF, 0xEA, 0xB9, 0x3C, 0xFF, 0xE9, 0xB8, 0x3C, 0xFF, - 0xE8, 0xB7, 0x3B, 0xFF, 0xF0, 0xB9, 0x39, 0xFF, 0xF7, 0xBA, 0x37, 0xFF, 0xDC, 0xB5, 0x50, 0xFF, - 0x44, 0x96, 0xFF, 0xFF, 0x9C, 0xC4, 0xFE, 0xFF, 0x23, 0x79, 0xF7, 0xFF, 0x30, 0x85, 0xF8, 0xFF, - 0x3C, 0x91, 0xF8, 0xFF, 0x48, 0xA0, 0xF8, 0xFF, 0x55, 0xAF, 0xF7, 0xFF, 0x5D, 0xB7, 0xF8, 0xFF, - 0x65, 0xBF, 0xF9, 0xFF, 0x75, 0xCD, 0xFA, 0xFF, 0x85, 0xDB, 0xFB, 0xFF, 0x8D, 0xDE, 0xFA, 0xFF, - 0x95, 0xE1, 0xF9, 0xFF, 0x9A, 0xE1, 0xFD, 0xFF, 0xA0, 0xE2, 0xFF, 0xFF, 0xA3, 0xE8, 0xFA, 0xFF, - 0x6B, 0xBD, 0xFF, 0xFF, 0x9E, 0xDE, 0xFC, 0xFF, 0xA6, 0xE8, 0xFF, 0xFF, 0xA3, 0xE3, 0xFB, 0xFF, - 0xA0, 0xDE, 0xF7, 0xFF, 0x99, 0xD7, 0xFD, 0xFF, 0xAB, 0xBD, 0xB5, 0xFF, 0xF0, 0x9F, 0x11, 0xFF, - 0xE8, 0xA3, 0x1D, 0xFF, 0xFF, 0x9E, 0x19, 0xFF, 0x65, 0xD4, 0x89, 0xFF, 0x45, 0xE1, 0xB0, 0xFF, - 0x4D, 0xDF, 0xB0, 0xFF, 0x4D, 0xDC, 0xAB, 0xFF, 0x4D, 0xD8, 0xA7, 0xFF, 0x49, 0xD5, 0xA0, 0xFF, - 0x44, 0xD2, 0x99, 0xFF, 0x3C, 0xCD, 0x97, 0xFF, 0x34, 0xC9, 0x94, 0xFF, 0x34, 0xC4, 0x8D, 0xFF, - 0x33, 0xC0, 0x86, 0xFF, 0x32, 0xBC, 0x7A, 0xFF, 0x31, 0xB7, 0x6E, 0xFF, 0x2F, 0xB2, 0x6D, 0xFF, - 0x2E, 0xAE, 0x6B, 0xFF, 0x3F, 0xB9, 0x7D, 0xFF, 0x30, 0xA5, 0x6F, 0xFF, 0x4E, 0xB5, 0x7B, 0xFF, - 0x20, 0x9A, 0x56, 0xFF, 0x2A, 0x9F, 0x5B, 0xFF, 0x24, 0x93, 0x50, 0xFF, 0x65, 0xB9, 0x80, 0xFF, - 0x1C, 0x99, 0x5F, 0xFF, 0xE2, 0x8F, 0x03, 0xFF, 0xF2, 0x8E, 0x10, 0xFF, 0xF2, 0x88, 0x1B, 0xFF, - 0xEF, 0xBF, 0x43, 0xFF, 0xEE, 0xBE, 0x42, 0xFF, 0xEE, 0xBD, 0x41, 0xFF, 0xEE, 0xBD, 0x40, 0xFF, - 0xED, 0xBC, 0x3F, 0xFF, 0xEC, 0xBB, 0x3F, 0xFF, 0xEB, 0xB9, 0x3F, 0xFF, 0xEC, 0xB9, 0x3D, 0xFF, - 0xEE, 0xB8, 0x3C, 0xFF, 0xEB, 0xB8, 0x37, 0xFF, 0xF6, 0xBC, 0x26, 0xFF, 0x8F, 0x9B, 0x94, 0xFF, - 0x37, 0x96, 0xFB, 0xFF, 0x7C, 0xBB, 0xF9, 0xFF, 0x85, 0xB5, 0xF8, 0xFF, 0x49, 0x99, 0xF6, 0xFF, - 0x42, 0x9B, 0xF5, 0xFF, 0x4E, 0xA6, 0xF6, 0xFF, 0x59, 0xB2, 0xF7, 0xFF, 0x65, 0xBC, 0xF8, 0xFF, - 0x72, 0xC6, 0xF9, 0xFF, 0x7F, 0xD3, 0xF9, 0xFF, 0x8D, 0xE0, 0xFA, 0xFF, 0x97, 0xE5, 0xF9, 0xFF, - 0xA1, 0xEB, 0xF8, 0xFF, 0xA6, 0xEA, 0xFE, 0xFF, 0xAA, 0xEA, 0xFF, 0xFF, 0xA8, 0xEE, 0xFC, 0xFF, - 0x62, 0xBA, 0xF9, 0xFF, 0x98, 0xDC, 0xFA, 0xFF, 0xB9, 0xF3, 0xFE, 0xFF, 0xB2, 0xEC, 0xFB, 0xFF, - 0xAB, 0xE5, 0xF7, 0xFF, 0xA2, 0xE4, 0xFE, 0xFF, 0xD1, 0xB0, 0x64, 0xFF, 0xF0, 0x9F, 0x19, 0xFF, - 0xE8, 0x9E, 0x26, 0xFF, 0xF2, 0x98, 0x03, 0xFF, 0x50, 0xEF, 0xE3, 0xFF, 0x57, 0xEE, 0xD5, 0xFF, - 0x64, 0xE3, 0xBF, 0xFF, 0x64, 0xE1, 0xBC, 0xFF, 0x64, 0xDF, 0xB9, 0xFF, 0x5D, 0xDD, 0xB4, 0xFF, - 0x56, 0xDB, 0xB0, 0xFF, 0x4E, 0xD7, 0xA9, 0xFF, 0x46, 0xD3, 0xA2, 0xFF, 0x42, 0xD0, 0x9B, 0xFF, - 0x3F, 0xCD, 0x93, 0xFF, 0x3D, 0xC9, 0x8B, 0xFF, 0x3C, 0xC5, 0x84, 0xFF, 0x39, 0xC1, 0x80, 0xFF, - 0x36, 0xBC, 0x7D, 0xFF, 0x45, 0xC7, 0x8A, 0xFF, 0x44, 0xC1, 0x88, 0xFF, 0x2B, 0xA0, 0x62, 0xFF, - 0x2B, 0xA9, 0x64, 0xFF, 0x2D, 0xA3, 0x5E, 0xFF, 0x26, 0x95, 0x4F, 0xFF, 0x98, 0xCE, 0xA4, 0xFF, - 0xDC, 0xEA, 0xD8, 0xFF, 0xFF, 0xDC, 0xB9, 0xFF, 0xF3, 0x9D, 0x38, 0xFF, 0xD3, 0x8F, 0x00, 0xFF, - 0xEF, 0xC1, 0x45, 0xFF, 0xEF, 0xC0, 0x44, 0xFF, 0xEF, 0xBF, 0x43, 0xFF, 0xEF, 0xBE, 0x41, 0xFF, - 0xEF, 0xBD, 0x40, 0xFF, 0xED, 0xBC, 0x41, 0xFF, 0xEB, 0xBA, 0x42, 0xFF, 0xEF, 0xBA, 0x3F, 0xFF, - 0xF3, 0xB9, 0x3C, 0xFF, 0xE6, 0xB8, 0x34, 0xFF, 0xF6, 0xBD, 0x16, 0xFF, 0x4F, 0x7F, 0xD8, 0xFF, - 0x46, 0x90, 0xF7, 0xFF, 0x54, 0xA5, 0xF7, 0xFF, 0xBA, 0xDA, 0xFF, 0xFF, 0x4D, 0xA1, 0xF8, 0xFF, - 0x49, 0xA5, 0xF3, 0xFF, 0x53, 0xAD, 0xF4, 0xFF, 0x5D, 0xB5, 0xF6, 0xFF, 0x6E, 0xC0, 0xF8, 0xFF, - 0x7F, 0xCC, 0xFA, 0xFF, 0x8A, 0xD8, 0xF9, 0xFF, 0x95, 0xE4, 0xF8, 0xFF, 0xA1, 0xEC, 0xF8, 0xFF, - 0xAE, 0xF4, 0xF7, 0xFF, 0xB2, 0xF3, 0xFE, 0xFF, 0xB5, 0xF1, 0xFF, 0xFF, 0xAD, 0xF4, 0xFE, 0xFF, - 0x59, 0xB6, 0xF3, 0xFF, 0x92, 0xDA, 0xF8, 0xFF, 0xCC, 0xFF, 0xFE, 0xFF, 0xC1, 0xF6, 0xFA, 0xFF, - 0xB6, 0xED, 0xF7, 0xFF, 0xAB, 0xF1, 0xFF, 0xFF, 0xF7, 0xA4, 0x13, 0xFF, 0xEF, 0xA4, 0x15, 0xFF, - 0xE8, 0xA5, 0x18, 0xFF, 0xCD, 0xB4, 0x56, 0xFF, 0x71, 0xF2, 0xF0, 0xFF, 0x84, 0xEF, 0xD4, 0xFF, - 0x7B, 0xE6, 0xCF, 0xFF, 0x7B, 0xE6, 0xCD, 0xFF, 0x7C, 0xE6, 0xCB, 0xFF, 0x71, 0xE5, 0xC9, 0xFF, - 0x67, 0xE5, 0xC6, 0xFF, 0x5F, 0xE1, 0xBC, 0xFF, 0x57, 0xDD, 0xB1, 0xFF, 0x51, 0xDB, 0xA8, 0xFF, - 0x4B, 0xDA, 0xA0, 0xFF, 0x48, 0xD7, 0x9C, 0xFF, 0x46, 0xD4, 0x99, 0xFF, 0x42, 0xCF, 0x94, 0xFF, - 0x3E, 0xCA, 0x8F, 0xFF, 0x3B, 0xC4, 0x88, 0xFF, 0x39, 0xBE, 0x81, 0xFF, 0x30, 0xB3, 0x72, 0xFF, - 0x27, 0xA8, 0x62, 0xFF, 0x27, 0xA0, 0x58, 0xFF, 0x27, 0x97, 0x4E, 0xFF, 0x79, 0xC4, 0x9F, 0xFF, - 0xF7, 0xFB, 0xFF, 0xFF, 0xF4, 0xD2, 0x7F, 0xFF, 0xE1, 0x8E, 0x03, 0xFF, 0xE1, 0x89, 0x0E, 0xFF, - 0xEF, 0xC3, 0x47, 0xFF, 0xEF, 0xC2, 0x46, 0xFF, 0xEF, 0xC0, 0x44, 0xFF, 0xEF, 0xBF, 0x43, 0xFF, - 0xF0, 0xBE, 0x41, 0xFF, 0xEE, 0xBD, 0x42, 0xFF, 0xEC, 0xBC, 0x43, 0xFF, 0xEF, 0xBC, 0x40, 0xFF, - 0xF1, 0xBB, 0x3E, 0xFF, 0xFD, 0xC0, 0x2F, 0xFF, 0xFB, 0xBD, 0x35, 0xFF, 0x00, 0x4B, 0xF5, 0xFF, - 0x52, 0x8A, 0xFF, 0xFF, 0x5D, 0xA5, 0xFA, 0xFF, 0x8D, 0xC4, 0xFC, 0xFF, 0x85, 0xC1, 0xFB, 0xFF, - 0x50, 0xAD, 0xF5, 0xFF, 0x5E, 0xB6, 0xF7, 0xFF, 0x6B, 0xBE, 0xF9, 0xFF, 0x78, 0xC9, 0xFA, 0xFF, - 0x85, 0xD4, 0xFB, 0xFF, 0x97, 0xDE, 0xFE, 0xFF, 0xAA, 0xE8, 0xFF, 0xFF, 0xAD, 0xEE, 0xFD, 0xFF, - 0xB1, 0xF4, 0xF9, 0xFF, 0xB9, 0xF5, 0xFC, 0xFF, 0xC2, 0xF6, 0xFE, 0xFF, 0xB2, 0xF0, 0xFB, 0xFF, - 0x6E, 0xCB, 0xF6, 0xFF, 0x91, 0xDE, 0xFB, 0xFF, 0xCA, 0xFC, 0xFC, 0xFF, 0xD0, 0xFB, 0xFF, 0xFF, - 0xC8, 0xFC, 0xFF, 0xFF, 0xC7, 0xE3, 0xCA, 0xFF, 0xF2, 0xA1, 0x15, 0xFF, 0xEE, 0xA3, 0x1D, 0xFF, - 0xF1, 0xA1, 0x11, 0xFF, 0xB9, 0xD4, 0x9E, 0xFF, 0x8B, 0xF1, 0xEA, 0xFF, 0x95, 0xEF, 0xDC, 0xFF, - 0x90, 0xEB, 0xD9, 0xFF, 0x92, 0xEB, 0xD9, 0xFF, 0x94, 0xEC, 0xD8, 0xFF, 0x8B, 0xEB, 0xD6, 0xFF, - 0x82, 0xEA, 0xD3, 0xFF, 0x78, 0xE6, 0xC9, 0xFF, 0x6F, 0xE3, 0xBF, 0xFF, 0x68, 0xE2, 0xB8, 0xFF, - 0x61, 0xE2, 0xB1, 0xFF, 0x5D, 0xE0, 0xAE, 0xFF, 0x5A, 0xDE, 0xAC, 0xFF, 0x51, 0xD9, 0xA2, 0xFF, - 0x48, 0xD3, 0x98, 0xFF, 0x41, 0xCB, 0x8E, 0xFF, 0x39, 0xC3, 0x83, 0xFF, 0x32, 0xB7, 0x74, 0xFF, - 0x2C, 0xAC, 0x66, 0xFF, 0x29, 0xA2, 0x5D, 0xFF, 0x26, 0x99, 0x54, 0xFF, 0x21, 0x93, 0x4A, 0xFF, - 0xB9, 0x99, 0x23, 0xFF, 0xFE, 0x93, 0x15, 0xFF, 0xD8, 0x92, 0x09, 0xFF, 0xD8, 0x8F, 0x0F, 0xFF, - 0xEF, 0xC4, 0x49, 0xFF, 0xEF, 0xC3, 0x47, 0xFF, 0xF0, 0xC2, 0x46, 0xFF, 0xF0, 0xC1, 0x44, 0xFF, - 0xF1, 0xC0, 0x42, 0xFF, 0xEF, 0xBF, 0x43, 0xFF, 0xED, 0xBE, 0x43, 0xFF, 0xEE, 0xBE, 0x42, 0xFF, - 0xF0, 0xBD, 0x41, 0xFF, 0xF0, 0xBA, 0x37, 0xFF, 0xB7, 0xA1, 0x71, 0xFF, 0x1D, 0x5D, 0xFE, 0xFF, - 0x31, 0x79, 0xF8, 0xFF, 0x51, 0xA1, 0xF5, 0xFF, 0x60, 0xAD, 0xF8, 0xFF, 0xBC, 0xE0, 0xFE, 0xFF, - 0x57, 0xB6, 0xF7, 0xFF, 0x68, 0xBF, 0xF9, 0xFF, 0x79, 0xC8, 0xFC, 0xFF, 0x82, 0xD2, 0xFC, 0xFF, - 0x8B, 0xDB, 0xFC, 0xFF, 0x8F, 0xDE, 0xFB, 0xFF, 0x92, 0xE0, 0xFB, 0xFF, 0xA3, 0xEA, 0xFA, 0xFF, - 0xB4, 0xF4, 0xFA, 0xFF, 0xC1, 0xF8, 0xF9, 0xFF, 0xCE, 0xFB, 0xF8, 0xFF, 0xB6, 0xEB, 0xF9, 0xFF, - 0x83, 0xE1, 0xFA, 0xFF, 0x8F, 0xE2, 0xFD, 0xFF, 0xC7, 0xF9, 0xFB, 0xFF, 0xD7, 0xF8, 0xFC, 0xFF, - 0xCA, 0xFC, 0xFE, 0xFF, 0xDC, 0xCD, 0x8B, 0xFF, 0xED, 0x9F, 0x18, 0xFF, 0xED, 0xA3, 0x24, 0xFF, - 0xFA, 0x9D, 0x0A, 0xFF, 0xA5, 0xF5, 0xE7, 0xFF, 0xA5, 0xF1, 0xE4, 0xFF, 0xA5, 0xF0, 0xE4, 0xFF, - 0xA6, 0xEF, 0xE3, 0xFF, 0xA9, 0xF0, 0xE4, 0xFF, 0xAD, 0xF2, 0xE6, 0xFF, 0xA5, 0xF0, 0xE3, 0xFF, - 0x9E, 0xEF, 0xE0, 0xFF, 0x92, 0xEC, 0xD6, 0xFF, 0x87, 0xE9, 0xCD, 0xFF, 0x7F, 0xE9, 0xC7, 0xFF, - 0x78, 0xEA, 0xC2, 0xFF, 0x72, 0xEA, 0xC1, 0xFF, 0x6D, 0xE9, 0xC0, 0xFF, 0x60, 0xE3, 0xB1, 0xFF, - 0x53, 0xDD, 0xA2, 0xFF, 0x46, 0xD2, 0x94, 0xFF, 0x3A, 0xC8, 0x86, 0xFF, 0x35, 0xBC, 0x77, 0xFF, - 0x30, 0xB0, 0x69, 0xFF, 0x2B, 0xA5, 0x62, 0xFF, 0x26, 0x9B, 0x5B, 0xFF, 0x09, 0x91, 0x57, 0xFF, - 0xFB, 0x94, 0x09, 0xFF, 0xE5, 0x95, 0x0C, 0xFF, 0xEB, 0x91, 0x0F, 0xFF, 0xEB, 0x91, 0x0F, 0xFF, - 0xEF, 0xC5, 0x4A, 0xFF, 0xF0, 0xC4, 0x48, 0xFF, 0xF0, 0xC3, 0x47, 0xFF, 0xF1, 0xC2, 0x45, 0xFF, - 0xF1, 0xC1, 0x43, 0xFF, 0xF1, 0xC1, 0x41, 0xFF, 0xF1, 0xC1, 0x3F, 0xFF, 0xF0, 0xBE, 0x3F, 0xFF, - 0xEF, 0xBC, 0x3F, 0xFF, 0xFD, 0xC2, 0x32, 0xFF, 0x6E, 0x7F, 0xBD, 0xFF, 0x26, 0x65, 0xFE, 0xFF, - 0x34, 0x7B, 0xF5, 0xFF, 0x4C, 0x9A, 0xF5, 0xFF, 0x5C, 0xAB, 0xF8, 0xFF, 0x9F, 0xD0, 0xFA, 0xFF, - 0x83, 0xC6, 0xF7, 0xFF, 0x6A, 0xC1, 0xFD, 0xFF, 0x7E, 0xD1, 0xFD, 0xFF, 0x87, 0xDB, 0xFB, 0xFF, - 0x8F, 0xE5, 0xF9, 0xFF, 0x9A, 0xEC, 0xF8, 0xFF, 0xA5, 0xF4, 0xF7, 0xFF, 0x99, 0xEA, 0xFB, 0xFF, - 0x8E, 0xDF, 0xFF, 0xFF, 0x9F, 0xE2, 0xFB, 0xFF, 0xB1, 0xE6, 0xF7, 0xFF, 0xCC, 0xED, 0xFB, 0xFF, - 0xCA, 0xFA, 0xFF, 0xFF, 0xC6, 0xF2, 0xFF, 0xFF, 0xC2, 0xF0, 0xFC, 0xFF, 0xD2, 0xF5, 0xFE, 0xFF, - 0xD3, 0xFC, 0xFF, 0xFF, 0xE6, 0xB5, 0x4B, 0xFF, 0xED, 0xA4, 0x20, 0xFF, 0xED, 0xA2, 0x1B, 0xFF, - 0xE2, 0xAA, 0x3D, 0xFF, 0xAB, 0xF6, 0xEE, 0xFF, 0xB1, 0xF1, 0xE5, 0xFF, 0xB4, 0xF2, 0xE7, 0xFF, - 0xB8, 0xF3, 0xE9, 0xFF, 0xBA, 0xF3, 0xE9, 0xFF, 0xBC, 0xF4, 0xEA, 0xFF, 0xB5, 0xF3, 0xE8, 0xFF, - 0xAF, 0xF2, 0xE5, 0xFF, 0xA8, 0xF0, 0xE0, 0xFF, 0xA1, 0xED, 0xDA, 0xFF, 0x99, 0xEF, 0xD5, 0xFF, - 0x91, 0xF0, 0xD0, 0xFF, 0x82, 0xED, 0xC8, 0xFF, 0x72, 0xEA, 0xC0, 0xFF, 0x61, 0xE3, 0xB0, 0xFF, - 0x50, 0xDC, 0xA0, 0xFF, 0x47, 0xD3, 0x94, 0xFF, 0x3E, 0xCA, 0x88, 0xFF, 0x38, 0xBF, 0x7B, 0xFF, - 0x32, 0xB4, 0x6E, 0xFF, 0x2E, 0xA8, 0x65, 0xFF, 0x1B, 0xA0, 0x5D, 0xFF, 0x48, 0x94, 0x3C, 0xFF, - 0xF6, 0x93, 0x0A, 0xFF, 0xEC, 0x94, 0x0D, 0xFF, 0xF0, 0x92, 0x10, 0xFF, 0xF0, 0x92, 0x10, 0xFF, - 0xF0, 0xC5, 0x4B, 0xFF, 0xF0, 0xC4, 0x49, 0xFF, 0xF1, 0xC4, 0x48, 0xFF, 0xF1, 0xC3, 0x46, 0xFF, - 0xF2, 0xC2, 0x44, 0xFF, 0xF4, 0xC3, 0x3F, 0xFF, 0xF6, 0xC4, 0x3A, 0xFF, 0xF3, 0xBF, 0x3C, 0xFF, - 0xEF, 0xBA, 0x3D, 0xFF, 0xFF, 0xCA, 0x2C, 0xFF, 0x24, 0x5D, 0xFF, 0xFF, 0x2E, 0x6D, 0xFE, 0xFF, - 0x38, 0x7D, 0xF2, 0xFF, 0x48, 0x93, 0xF5, 0xFF, 0x57, 0xA9, 0xF7, 0xFF, 0x82, 0xC0, 0xF7, 0xFF, - 0xAE, 0xD7, 0xF7, 0xFF, 0x6C, 0xC2, 0xFF, 0xFF, 0x84, 0xDA, 0xFE, 0xFF, 0x8B, 0xE4, 0xFA, 0xFF, - 0x93, 0xEE, 0xF6, 0xFF, 0x9D, 0xED, 0xF8, 0xFF, 0xA7, 0xEC, 0xF9, 0xFF, 0xB3, 0xF1, 0xF8, 0xFF, - 0xC0, 0xF6, 0xF7, 0xFF, 0xC8, 0xF6, 0xFB, 0xFF, 0xD0, 0xF6, 0xFF, 0xFF, 0xD3, 0xF2, 0xFE, 0xFF, - 0xB9, 0xF3, 0xFB, 0xFF, 0xE7, 0xFD, 0xFF, 0xFF, 0xE9, 0xFD, 0xF6, 0xFF, 0xE2, 0xFC, 0xFC, 0xFF, - 0xDC, 0xFC, 0xFF, 0xFF, 0xF1, 0x9D, 0x0B, 0xFF, 0xEC, 0xAA, 0x29, 0xFF, 0xF5, 0xAA, 0x1B, 0xFF, - 0xD9, 0xC7, 0x7F, 0xFF, 0xBA, 0xFE, 0xFD, 0xFF, 0xBD, 0xF2, 0xE7, 0xFF, 0xC3, 0xF4, 0xEB, 0xFF, - 0xCA, 0xF6, 0xEE, 0xFF, 0xCA, 0xF6, 0xEF, 0xFF, 0xCB, 0xF7, 0xEF, 0xFF, 0xC5, 0xF6, 0xED, 0xFF, - 0xBF, 0xF5, 0xEB, 0xFF, 0xBE, 0xF3, 0xE9, 0xFF, 0xBC, 0xF2, 0xE8, 0xFF, 0xB3, 0xF4, 0xE3, 0xFF, - 0xAB, 0xF6, 0xDF, 0xFF, 0x91, 0xF1, 0xD0, 0xFF, 0x77, 0xEC, 0xC1, 0xFF, 0x62, 0xE3, 0xAF, 0xFF, - 0x4E, 0xDB, 0x9E, 0xFF, 0x47, 0xD3, 0x94, 0xFF, 0x41, 0xCC, 0x8A, 0xFF, 0x3B, 0xC2, 0x7F, 0xFF, - 0x35, 0xB8, 0x73, 0xFF, 0x30, 0xAC, 0x69, 0xFF, 0x10, 0xA5, 0x60, 0xFF, 0x86, 0x96, 0x22, 0xFF, - 0xF0, 0x91, 0x0A, 0xFF, 0xF2, 0x92, 0x0E, 0xFF, 0xF4, 0x94, 0x11, 0xFF, 0xF4, 0x94, 0x11, 0xFF, - 0xF1, 0xC5, 0x4C, 0xFF, 0xF1, 0xC5, 0x4A, 0xFF, 0xF1, 0xC4, 0x49, 0xFF, 0xF2, 0xC4, 0x47, 0xFF, - 0xF2, 0xC3, 0x45, 0xFF, 0xF1, 0xC3, 0x43, 0xFF, 0xF0, 0xC4, 0x40, 0xFF, 0xF3, 0xBF, 0x42, 0xFF, - 0xF5, 0xC0, 0x39, 0xFF, 0xCA, 0xAC, 0x5E, 0xFF, 0x1E, 0x58, 0xFA, 0xFF, 0x30, 0x6E, 0xF3, 0xFF, - 0x35, 0x80, 0xF7, 0xFF, 0x3E, 0x92, 0xFB, 0xFF, 0x5D, 0xAF, 0xFB, 0xFF, 0x72, 0xC2, 0xFF, 0xFF, - 0xBA, 0xE1, 0xFD, 0xFF, 0x74, 0xCD, 0xFF, 0xFF, 0x71, 0xD3, 0xFF, 0xFF, 0x83, 0xE5, 0xFF, 0xFF, - 0x95, 0xF7, 0xFF, 0xFF, 0xA1, 0xF4, 0xFE, 0xFF, 0xAD, 0xF0, 0xFD, 0xFF, 0xC1, 0xF8, 0xFF, 0xFF, - 0xCD, 0xF7, 0xFB, 0xFF, 0xD1, 0xF8, 0xFE, 0xFF, 0xD6, 0xF9, 0xFF, 0xFF, 0xE0, 0xF6, 0xFE, 0xFF, - 0xDD, 0xF5, 0xFB, 0xFF, 0xED, 0xFB, 0xFF, 0xFF, 0xE8, 0xFB, 0xFB, 0xFF, 0xDF, 0xFC, 0xFF, 0xFF, - 0xE8, 0xE0, 0xB2, 0xFF, 0xEF, 0xA3, 0x18, 0xFF, 0xEC, 0xAA, 0x25, 0xFF, 0xF5, 0xA8, 0x15, 0xFF, - 0xD8, 0xE3, 0xC2, 0xFF, 0xC5, 0xF9, 0xF9, 0xFF, 0xCA, 0xF5, 0xEE, 0xFF, 0xCE, 0xF6, 0xEF, 0xFF, - 0xD2, 0xF7, 0xF0, 0xFF, 0xD1, 0xF8, 0xF1, 0xFF, 0xD0, 0xF9, 0xF1, 0xFF, 0xCD, 0xF9, 0xF1, 0xFF, - 0xC9, 0xF9, 0xF1, 0xFF, 0xC9, 0xFB, 0xF2, 0xFF, 0xCA, 0xFC, 0xF4, 0xFF, 0xB6, 0xF8, 0xE6, 0xFF, - 0xA2, 0xF3, 0xD9, 0xFF, 0x89, 0xEF, 0xCA, 0xFF, 0x71, 0xEB, 0xBC, 0xFF, 0x61, 0xE6, 0xB0, 0xFF, - 0x50, 0xE1, 0xA4, 0xFF, 0x48, 0xD9, 0x99, 0xFF, 0x40, 0xD2, 0x8F, 0xFF, 0x3A, 0xC7, 0x83, 0xFF, - 0x34, 0xBC, 0x77, 0xFF, 0x1C, 0xB2, 0x6A, 0xFF, 0x04, 0xA9, 0x5D, 0xFF, 0xEA, 0x8D, 0x13, 0xFF, - 0xEF, 0x93, 0x11, 0xFF, 0xEF, 0x92, 0x0F, 0xFF, 0xF0, 0x92, 0x0E, 0xFF, 0xF0, 0x92, 0x0E, 0xFF, - 0xF2, 0xC6, 0x4D, 0xFF, 0xF2, 0xC5, 0x4B, 0xFF, 0xF2, 0xC5, 0x4A, 0xFF, 0xF2, 0xC5, 0x48, 0xFF, - 0xF2, 0xC4, 0x46, 0xFF, 0xEE, 0xC4, 0x46, 0xFF, 0xEA, 0xC4, 0x46, 0xFF, 0xF2, 0xBF, 0x48, 0xFF, - 0xFB, 0xC6, 0x34, 0xFF, 0x91, 0x95, 0x98, 0xFF, 0x27, 0x64, 0xFC, 0xFF, 0x3B, 0x76, 0xF1, 0xFF, - 0x32, 0x83, 0xFC, 0xFF, 0x34, 0x91, 0xFF, 0xFF, 0x63, 0xB4, 0xFF, 0xFF, 0x5A, 0xBD, 0xFF, 0xFF, - 0xB5, 0xDC, 0xF3, 0xFF, 0x97, 0xD0, 0xCB, 0xFF, 0xA4, 0xCE, 0xB4, 0xFF, 0xB0, 0xD2, 0xAF, 0xFF, - 0xBC, 0xD6, 0xAB, 0xFF, 0xBE, 0xE1, 0xC2, 0xFF, 0xC0, 0xEB, 0xDA, 0xFF, 0xC7, 0xFC, 0xF5, 0xFF, - 0xBD, 0xFE, 0xFF, 0xFF, 0xCC, 0xFD, 0xFF, 0xFF, 0xDB, 0xFC, 0xFF, 0xFF, 0xE0, 0xFC, 0xFE, 0xFF, - 0xE4, 0xFC, 0xFB, 0xFF, 0xE6, 0xFB, 0xFD, 0xFF, 0xE7, 0xFA, 0xFF, 0xFF, 0xDD, 0xFB, 0xFF, 0xFF, - 0xF4, 0xC4, 0x61, 0xFF, 0xEE, 0xAA, 0x26, 0xFF, 0xEB, 0xAA, 0x22, 0xFF, 0xF6, 0xA7, 0x10, 0xFF, - 0xD6, 0xFF, 0xFF, 0xFF, 0xCF, 0xF4, 0xF5, 0xFF, 0xD8, 0xF9, 0xF5, 0xFF, 0xD9, 0xF9, 0xF4, 0xFF, - 0xD9, 0xF8, 0xF2, 0xFF, 0xD8, 0xF9, 0xF3, 0xFF, 0xD6, 0xFB, 0xF4, 0xFF, 0xD5, 0xFC, 0xF5, 0xFF, - 0xD3, 0xFD, 0xF6, 0xFF, 0xCD, 0xFA, 0xF3, 0xFF, 0xC7, 0xF6, 0xEF, 0xFF, 0xB0, 0xF3, 0xE1, 0xFF, - 0x98, 0xF0, 0xD3, 0xFF, 0x82, 0xED, 0xC5, 0xFF, 0x6B, 0xEB, 0xB7, 0xFF, 0x5F, 0xE9, 0xB0, 0xFF, - 0x53, 0xE7, 0xAA, 0xFF, 0x49, 0xDF, 0x9F, 0xFF, 0x3E, 0xD7, 0x93, 0xFF, 0x39, 0xCB, 0x87, 0xFF, - 0x34, 0xBF, 0x7B, 0xFF, 0x25, 0xB4, 0x6B, 0xFF, 0x32, 0xA2, 0x5B, 0xFF, 0xF9, 0x94, 0x04, 0xFF, - 0xED, 0x94, 0x17, 0xFF, 0xEC, 0x92, 0x11, 0xFF, 0xEB, 0x91, 0x0B, 0xFF, 0xEB, 0x91, 0x0B, 0xFF, - 0xF2, 0xC7, 0x4E, 0xFF, 0xF3, 0xC7, 0x4D, 0xFF, 0xF3, 0xC7, 0x4C, 0xFF, 0xF3, 0xC7, 0x4A, 0xFF, - 0xF4, 0xC7, 0x49, 0xFF, 0xF1, 0xC4, 0x47, 0xFF, 0xEE, 0xC1, 0x45, 0xFF, 0xF7, 0xC2, 0x42, 0xFF, - 0xFF, 0xC8, 0x33, 0xFF, 0x46, 0x67, 0xDE, 0xFF, 0x2A, 0x63, 0xFF, 0xFF, 0x1B, 0x6F, 0xFF, 0xFF, - 0x52, 0x8B, 0xE0, 0xFF, 0x84, 0xA0, 0xA3, 0xFF, 0xCC, 0xC1, 0x62, 0xFF, 0xFF, 0xC0, 0x26, 0xFF, - 0xFF, 0xB7, 0x29, 0xFF, 0xF1, 0xB5, 0x24, 0xFF, 0xF9, 0xB7, 0x27, 0xFF, 0xF6, 0xB5, 0x25, 0xFF, - 0xF2, 0xB2, 0x23, 0xFF, 0xFA, 0xB5, 0x24, 0xFF, 0xFF, 0xB7, 0x24, 0xFF, 0xDE, 0x9D, 0x17, 0xFF, - 0xF4, 0xBA, 0x42, 0xFF, 0xE7, 0xDA, 0x9E, 0xFF, 0xDC, 0xF9, 0xF9, 0xFF, 0xE6, 0xFB, 0xF3, 0xFF, - 0xE9, 0xFF, 0xFF, 0xFF, 0xE6, 0xFF, 0xFD, 0xFF, 0xE2, 0xFB, 0xFA, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xEF, 0xA7, 0x1D, 0xFF, 0xF0, 0xA7, 0x1C, 0xFF, 0xF1, 0xA7, 0x1A, 0xFF, 0xF0, 0xC4, 0x5A, 0xFF, - 0xE7, 0xFF, 0xFF, 0xFF, 0xE1, 0xF9, 0xFA, 0xFF, 0xE2, 0xFB, 0xFA, 0xFF, 0xDF, 0xFB, 0xF8, 0xFF, - 0xDC, 0xFA, 0xF5, 0xFF, 0xDB, 0xFB, 0xF5, 0xFF, 0xD9, 0xFB, 0xF5, 0xFF, 0xD6, 0xFC, 0xF5, 0xFF, - 0xD3, 0xFD, 0xF5, 0xFF, 0xC8, 0xF8, 0xF0, 0xFF, 0xBD, 0xF4, 0xEA, 0xFF, 0xA8, 0xF1, 0xDF, 0xFF, - 0x93, 0xEF, 0xD4, 0xFF, 0x7A, 0xF3, 0xC6, 0xFF, 0x61, 0xF8, 0xB9, 0xFF, 0x57, 0xEF, 0xB0, 0xFF, - 0x4D, 0xE6, 0xA6, 0xFF, 0x48, 0xE2, 0xA3, 0xFF, 0x3A, 0xD6, 0x98, 0xFF, 0x37, 0xCD, 0x89, 0xFF, - 0x35, 0xC3, 0x7B, 0xFF, 0x20, 0xB7, 0x6F, 0xFF, 0x84, 0x9C, 0x3A, 0xFF, 0xF4, 0x93, 0x0C, 0xFF, - 0xEC, 0x94, 0x13, 0xFF, 0xE9, 0x93, 0x11, 0xFF, 0xE6, 0x92, 0x0F, 0xFF, 0xE6, 0x92, 0x0F, 0xFF, - 0xF3, 0xC9, 0x50, 0xFF, 0xF4, 0xC9, 0x4F, 0xFF, 0xF4, 0xC9, 0x4E, 0xFF, 0xF5, 0xCA, 0x4D, 0xFF, - 0xF5, 0xCA, 0x4B, 0xFF, 0xF4, 0xC5, 0x48, 0xFF, 0xF3, 0xBF, 0x44, 0xFF, 0xEE, 0xC1, 0x47, 0xFF, - 0xEA, 0xC4, 0x4A, 0xFF, 0x1F, 0x52, 0xFF, 0xFF, 0x92, 0x9A, 0xA6, 0xFF, 0xE6, 0xB6, 0x51, 0xFF, - 0xFF, 0xC7, 0x28, 0xFF, 0xF8, 0xC4, 0x2C, 0xFF, 0xF0, 0xC0, 0x30, 0xFF, 0xEF, 0xBA, 0x3F, 0xFF, - 0xEF, 0xBF, 0x37, 0xFF, 0xEF, 0xB9, 0x38, 0xFF, 0xF0, 0xB2, 0x3A, 0xFF, 0xF3, 0xB5, 0x38, 0xFF, - 0xF6, 0xB7, 0x35, 0xFF, 0xEF, 0xB9, 0x32, 0xFF, 0xE8, 0xBB, 0x2F, 0xFF, 0xEA, 0xB8, 0x2F, 0xFF, - 0xED, 0xB4, 0x2F, 0xFF, 0xF3, 0xAC, 0x1F, 0xFF, 0xF9, 0xA3, 0x10, 0xFF, 0xF2, 0xC9, 0x6F, 0xFF, - 0xDF, 0xF9, 0xF5, 0xFF, 0xDE, 0xFB, 0xF5, 0xFF, 0xDD, 0xFD, 0xF5, 0xFF, 0xE3, 0xEA, 0xD7, 0xFF, - 0xEE, 0xA5, 0x10, 0xFF, 0xF4, 0xB2, 0x2D, 0xFF, 0xF7, 0xA5, 0x13, 0xFF, 0xEB, 0xE1, 0xA5, 0xFF, - 0xF8, 0xFF, 0xFF, 0xFF, 0xF2, 0xFE, 0xFF, 0xFF, 0xEC, 0xFD, 0xFF, 0xFF, 0xE6, 0xFC, 0xFC, 0xFF, - 0xDF, 0xFC, 0xF7, 0xFF, 0xDE, 0xFC, 0xF7, 0xFF, 0xDC, 0xFC, 0xF6, 0xFF, 0xD7, 0xFC, 0xF5, 0xFF, - 0xD3, 0xFC, 0xF4, 0xFF, 0xC3, 0xF7, 0xED, 0xFF, 0xB4, 0xF1, 0xE5, 0xFF, 0xB7, 0xF5, 0xE4, 0xFF, - 0xBB, 0xF9, 0xE4, 0xFF, 0xD2, 0xFE, 0xEB, 0xFF, 0xE9, 0xFF, 0xF2, 0xFF, 0xDB, 0xFE, 0xED, 0xFF, - 0xCD, 0xF9, 0xE8, 0xFF, 0x89, 0xEF, 0xCA, 0xFF, 0x35, 0xD6, 0x9C, 0xFF, 0x2D, 0xC6, 0x83, 0xFF, - 0x25, 0xB7, 0x6B, 0xFF, 0x14, 0xB3, 0x6C, 0xFF, 0xD6, 0x95, 0x1A, 0xFF, 0xEE, 0x91, 0x15, 0xFF, - 0xEB, 0x93, 0x0F, 0xFF, 0xE6, 0x93, 0x10, 0xFF, 0xE0, 0x93, 0x12, 0xFF, 0xE0, 0x93, 0x12, 0xFF, - 0xF4, 0xCA, 0x52, 0xFF, 0xF4, 0xCA, 0x50, 0xFF, 0xF3, 0xCA, 0x4E, 0xFF, 0xF3, 0xC9, 0x4C, 0xFF, - 0xF3, 0xC9, 0x4A, 0xFF, 0xF4, 0xC8, 0x48, 0xFF, 0xF6, 0xC6, 0x46, 0xFF, 0xEC, 0xBF, 0x3F, 0xFF, - 0xEB, 0xBF, 0x41, 0xFF, 0xF8, 0xD4, 0x40, 0xFF, 0xFC, 0xC9, 0x33, 0xFF, 0xFF, 0xC9, 0x2F, 0xFF, - 0xEC, 0xC2, 0x42, 0xFF, 0xF4, 0xC3, 0x40, 0xFF, 0xFC, 0xC3, 0x3E, 0xFF, 0xF3, 0xBB, 0x34, 0xFF, - 0xF2, 0xBB, 0x33, 0xFF, 0xF6, 0xBD, 0x49, 0xFF, 0xF8, 0xB7, 0x38, 0xFF, 0xF5, 0xB7, 0x36, 0xFF, - 0xF2, 0xB7, 0x34, 0xFF, 0xF3, 0xB5, 0x2E, 0xFF, 0xF5, 0xB3, 0x27, 0xFF, 0xF7, 0xBA, 0x2F, 0xFF, - 0xF2, 0xBA, 0x2F, 0xFF, 0xF1, 0xB5, 0x30, 0xFF, 0xF0, 0xB0, 0x31, 0xFF, 0xF6, 0xAC, 0x1E, 0xFF, - 0xED, 0xAA, 0x0C, 0xFF, 0xEC, 0xD2, 0x7E, 0xFF, 0xE6, 0xFF, 0xFF, 0xFF, 0xD2, 0xD9, 0x80, 0xFF, - 0xF8, 0xA9, 0x2E, 0xFF, 0xEB, 0xAF, 0x1C, 0xFF, 0xE5, 0xAA, 0x02, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, - 0xFE, 0xFF, 0xFF, 0xFF, 0xF9, 0xFE, 0xFF, 0xFF, 0xF4, 0xFD, 0xFF, 0xFF, 0xEB, 0xFD, 0xFD, 0xFF, - 0xE2, 0xFE, 0xFA, 0xFF, 0xE1, 0xFD, 0xF9, 0xFF, 0xE0, 0xFC, 0xF7, 0xFF, 0xD7, 0xFC, 0xF5, 0xFF, - 0xCF, 0xFD, 0xF3, 0xFF, 0xE2, 0xFB, 0xF4, 0xFF, 0xE7, 0xFD, 0xF6, 0xFF, 0xE8, 0xFD, 0xF3, 0xFF, - 0xE9, 0xFD, 0xF0, 0xFF, 0xD3, 0xFD, 0xEB, 0xFF, 0xBD, 0xFC, 0xE5, 0xFF, 0xBA, 0xF7, 0xDF, 0xFF, - 0xB6, 0xF2, 0xDA, 0xFF, 0xD2, 0xFB, 0xE9, 0xFF, 0xE6, 0xFC, 0xF1, 0xFF, 0x8D, 0xDE, 0xB6, 0xFF, - 0x3C, 0xC7, 0x84, 0xFF, 0x47, 0xB7, 0x99, 0xFF, 0xF8, 0xA1, 0x13, 0xFF, 0xF2, 0x94, 0x04, 0xFF, - 0xEE, 0x94, 0x10, 0xFF, 0xEC, 0x94, 0x10, 0xFF, 0xE9, 0x95, 0x10, 0xFF, 0xE9, 0x95, 0x10, 0xFF, - 0xF5, 0xCC, 0x53, 0xFF, 0xF3, 0xCB, 0x50, 0xFF, 0xF2, 0xCA, 0x4E, 0xFF, 0xF1, 0xC9, 0x4B, 0xFF, - 0xF0, 0xC7, 0x48, 0xFF, 0xF4, 0xCB, 0x48, 0xFF, 0xF9, 0xCE, 0x47, 0xFF, 0xF2, 0xC4, 0x40, 0xFF, - 0xFC, 0xCA, 0x48, 0xFF, 0xF0, 0xC2, 0x3F, 0xFF, 0xF5, 0xC9, 0x46, 0xFF, 0xF4, 0xC7, 0x46, 0xFF, - 0xF3, 0xC4, 0x45, 0xFF, 0xED, 0xB4, 0x38, 0xFF, 0xE8, 0xA5, 0x2C, 0xFF, 0xE1, 0xB0, 0x2E, 0xFF, - 0xEA, 0xC0, 0x56, 0xFF, 0xE9, 0xC8, 0x6C, 0xFF, 0xE4, 0xC1, 0x36, 0xFF, 0xEB, 0xC9, 0x50, 0xFF, - 0xF1, 0xD1, 0x6A, 0xFF, 0xF5, 0xD0, 0x73, 0xFF, 0xF9, 0xCF, 0x7D, 0xFF, 0xF8, 0xC7, 0x56, 0xFF, - 0xE7, 0xAF, 0x1F, 0xFF, 0xED, 0xB1, 0x25, 0xFF, 0xF4, 0xB2, 0x2B, 0xFF, 0xF9, 0xB5, 0x3E, 0xFF, - 0xEE, 0xB3, 0x2A, 0xFF, 0xF5, 0xAF, 0x1B, 0xFF, 0xF0, 0xB5, 0x32, 0xFF, 0xF9, 0xB1, 0x3F, 0xFF, - 0xF2, 0xA9, 0x26, 0xFF, 0xEA, 0xAE, 0x1F, 0xFF, 0xF3, 0xB8, 0x3F, 0xFF, 0xF3, 0xFF, 0xFB, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFB, 0xFD, 0xFE, 0xFF, 0xF0, 0xFE, 0xFE, 0xFF, - 0xE5, 0xFF, 0xFD, 0xFF, 0xE4, 0xFE, 0xFB, 0xFF, 0xE3, 0xFC, 0xF8, 0xFF, 0xD7, 0xFD, 0xF5, 0xFF, - 0xCB, 0xFD, 0xF2, 0xFF, 0xEB, 0xFB, 0xF4, 0xFF, 0xEE, 0xFE, 0xF6, 0xFF, 0xDE, 0xFD, 0xF1, 0xFF, - 0xCE, 0xFB, 0xED, 0xFF, 0xB0, 0xF9, 0xE2, 0xFF, 0x91, 0xF6, 0xD8, 0xFF, 0x8A, 0xF3, 0xD2, 0xFF, - 0x83, 0xF1, 0xCC, 0xFF, 0x96, 0xEE, 0xCE, 0xFF, 0xA9, 0xEA, 0xD0, 0xFF, 0xC0, 0xEA, 0xDA, 0xFF, - 0xE8, 0xFA, 0xF4, 0xFF, 0x78, 0xC6, 0x7E, 0xFF, 0xFF, 0xC0, 0x59, 0xFF, 0xEA, 0xA0, 0x19, 0xFF, - 0xF2, 0x95, 0x10, 0xFF, 0xF2, 0x96, 0x0F, 0xFF, 0xF2, 0x96, 0x0D, 0xFF, 0xF2, 0x96, 0x0D, 0xFF, - 0xF4, 0xCD, 0x54, 0xFF, 0xF4, 0xCB, 0x51, 0xFF, 0xF3, 0xCA, 0x4F, 0xFF, 0xF2, 0xC9, 0x4C, 0xFF, - 0xF2, 0xC8, 0x4A, 0xFF, 0xF1, 0xC6, 0x48, 0xFF, 0xF1, 0xC4, 0x47, 0xFF, 0xF3, 0xD2, 0x48, 0xFF, - 0xF3, 0xC7, 0x46, 0xFF, 0xFB, 0xC5, 0x4C, 0xFF, 0xDC, 0x9A, 0x2B, 0xFF, 0xCD, 0x83, 0x17, 0xFF, - 0xBE, 0x6B, 0x03, 0xFF, 0xC5, 0x7F, 0x00, 0xFF, 0xD4, 0x96, 0x0E, 0xFF, 0xDB, 0xAC, 0x2E, 0xFF, - 0xEA, 0xC5, 0x60, 0xFF, 0xEF, 0xCC, 0x75, 0xFF, 0xEA, 0xCA, 0x51, 0xFF, 0xEF, 0xD2, 0x69, 0xFF, - 0xF5, 0xDA, 0x81, 0xFF, 0xF7, 0xE4, 0x99, 0xFF, 0xF9, 0xEE, 0xB2, 0xFF, 0xFF, 0xFA, 0xCE, 0xFF, - 0xFF, 0xFE, 0xE2, 0xFF, 0xFF, 0xE1, 0x99, 0xFF, 0xF7, 0xBC, 0x48, 0xFF, 0xDC, 0xB4, 0x10, 0xFF, - 0xF0, 0xAD, 0x31, 0xFF, 0xFB, 0xAC, 0x27, 0xFF, 0xF3, 0xB2, 0x30, 0xFF, 0xF5, 0xB1, 0x34, 0xFF, - 0xF0, 0xAD, 0x24, 0xFF, 0xF6, 0xAC, 0x26, 0xFF, 0xFC, 0xD1, 0x97, 0xFF, 0xF7, 0xFD, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFE, 0xFF, 0xFB, 0xFF, 0xFE, 0xFF, 0xF3, 0xFF, 0xFE, 0xFF, 0xED, 0xFF, 0xFD, 0xFF, - 0xE7, 0xFD, 0xFC, 0xFF, 0xE3, 0xFE, 0xFB, 0xFF, 0xDF, 0xFE, 0xF9, 0xFF, 0xE7, 0xFD, 0xF8, 0xFF, - 0xEF, 0xFC, 0xF7, 0xFF, 0xEB, 0xFB, 0xF3, 0xFF, 0xD8, 0xFD, 0xEF, 0xFF, 0xC2, 0xFA, 0xE8, 0xFF, - 0xAB, 0xF8, 0xE2, 0xFF, 0x9B, 0xF4, 0xD8, 0xFF, 0x8A, 0xEF, 0xCE, 0xFF, 0x76, 0xEA, 0xC1, 0xFF, - 0x61, 0xE5, 0xB4, 0xFF, 0x5A, 0xDD, 0xAB, 0xFF, 0x61, 0xD2, 0xA2, 0xFF, 0x8D, 0xE9, 0xC1, 0xFF, - 0xB8, 0xE7, 0xDA, 0xFF, 0xFF, 0xD4, 0x96, 0xFF, 0xFA, 0xD0, 0x8E, 0xFF, 0xED, 0xAD, 0x41, 0xFF, - 0xF1, 0x95, 0x10, 0xFF, 0xF1, 0x95, 0x0F, 0xFF, 0xF1, 0x96, 0x0E, 0xFF, 0xF1, 0x96, 0x0E, 0xFF, - 0xF4, 0xCD, 0x54, 0xFF, 0xF4, 0xCC, 0x52, 0xFF, 0xF4, 0xCB, 0x50, 0xFF, 0xF3, 0xC9, 0x4E, 0xFF, - 0xF3, 0xC8, 0x4B, 0xFF, 0xF6, 0xC9, 0x51, 0xFF, 0xFA, 0xCA, 0x56, 0xFF, 0xEA, 0xC0, 0x44, 0xFF, - 0xC6, 0x74, 0x19, 0xFF, 0xAD, 0x58, 0x00, 0xFF, 0xB3, 0x5B, 0x01, 0xFF, 0xC0, 0x6F, 0x06, 0xFF, - 0xCC, 0x84, 0x0B, 0xFF, 0xCE, 0x93, 0x00, 0xFF, 0xDF, 0xA7, 0x11, 0xFF, 0xE5, 0xB9, 0x3E, 0xFF, - 0xEB, 0xCA, 0x6A, 0xFF, 0xF5, 0xD1, 0x7E, 0xFF, 0xF0, 0xD3, 0x6B, 0xFF, 0xF4, 0xDB, 0x81, 0xFF, - 0xF8, 0xE3, 0x97, 0xFF, 0xF7, 0xEB, 0xA4, 0xFF, 0xF5, 0xF4, 0xB1, 0xFF, 0xF9, 0xF7, 0xC7, 0xFF, - 0xFC, 0xFA, 0xDC, 0xFF, 0xFF, 0xFF, 0xF2, 0xFF, 0xF5, 0xFF, 0xF8, 0xFF, 0xFD, 0xEB, 0xBB, 0xFF, - 0xF2, 0xB4, 0x22, 0xFF, 0xFF, 0xAF, 0x28, 0xFF, 0xF6, 0xB0, 0x2F, 0xFF, 0xF2, 0xB0, 0x29, 0xFF, - 0xEE, 0xB1, 0x22, 0xFF, 0xF9, 0xA7, 0x19, 0xFF, 0xF4, 0xE6, 0xC9, 0xFF, 0xF4, 0xF7, 0xF7, 0xFF, - 0xFF, 0xFF, 0xFE, 0xFF, 0xF6, 0xFF, 0xFE, 0xFF, 0xEC, 0xFF, 0xFD, 0xFF, 0xEA, 0xFF, 0xFC, 0xFF, - 0xE8, 0xFA, 0xFA, 0xFF, 0xE2, 0xFD, 0xFB, 0xFF, 0xDC, 0xFF, 0xFB, 0xFF, 0xE9, 0xFF, 0xFB, 0xFF, - 0xF6, 0xFF, 0xFB, 0xFF, 0xDC, 0xFD, 0xF1, 0xFF, 0xC3, 0xFB, 0xE7, 0xFF, 0xB4, 0xF5, 0xDF, 0xFF, - 0xA5, 0xF0, 0xD8, 0xFF, 0x94, 0xEC, 0xCE, 0xFF, 0x83, 0xE8, 0xC4, 0xFF, 0x77, 0xE5, 0xB7, 0xFF, - 0x6B, 0xE3, 0xAB, 0xFF, 0x52, 0xDE, 0xA0, 0xFF, 0x55, 0xD4, 0x94, 0xFF, 0x40, 0xBD, 0x7F, 0xFF, - 0x98, 0xE4, 0xD1, 0xFF, 0xF4, 0xA1, 0x2B, 0xFF, 0xF6, 0xA1, 0x2F, 0xFF, 0xF3, 0x9B, 0x1F, 0xFF, - 0xF0, 0x95, 0x0F, 0xFF, 0xF0, 0x95, 0x0F, 0xFF, 0xF0, 0x95, 0x0F, 0xFF, 0xF0, 0x95, 0x0F, 0xFF, - 0xF4, 0xCE, 0x55, 0xFF, 0xF4, 0xCC, 0x53, 0xFF, 0xF4, 0xCB, 0x51, 0xFF, 0xF5, 0xCA, 0x4F, 0xFF, - 0xF6, 0xC9, 0x4E, 0xFF, 0xF4, 0xC9, 0x4D, 0xFF, 0xFA, 0xD0, 0x53, 0xFF, 0xCD, 0x86, 0x2A, 0xFF, - 0xB0, 0x52, 0x06, 0xFF, 0xB8, 0x5F, 0x04, 0xFF, 0xC8, 0x73, 0x0A, 0xFF, 0xCE, 0x82, 0x08, 0xFF, - 0xD3, 0x91, 0x06, 0xFF, 0xD5, 0xA0, 0x01, 0xFF, 0xE6, 0xB4, 0x24, 0xFF, 0xEA, 0xC4, 0x4C, 0xFF, - 0xED, 0xD3, 0x74, 0xFF, 0xF4, 0xD9, 0x83, 0xFF, 0xF3, 0xDC, 0x7E, 0xFF, 0xF6, 0xE4, 0x93, 0xFF, - 0xF8, 0xEC, 0xA8, 0xFF, 0xF9, 0xF2, 0xB5, 0xFF, 0xF9, 0xF8, 0xC3, 0xFF, 0xFA, 0xFA, 0xD3, 0xFF, - 0xFB, 0xFB, 0xE2, 0xFF, 0xFB, 0xFE, 0xED, 0xFF, 0xF3, 0xF9, 0xEF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFD, 0xFF, 0xFF, 0xEE, 0xDC, 0x7E, 0xFF, 0xFD, 0xAD, 0x26, 0xFF, 0xF7, 0xAF, 0x29, 0xFF, - 0xF1, 0xB1, 0x2D, 0xFF, 0xDF, 0xB1, 0x34, 0xFF, 0xF6, 0xA6, 0x09, 0xFF, 0xF4, 0xD3, 0x8C, 0xFF, - 0xF8, 0xFB, 0xFC, 0xFF, 0xF6, 0xFF, 0xFF, 0xFF, 0xEB, 0xFF, 0xFD, 0xFF, 0xE5, 0xFE, 0xFC, 0xFF, - 0xE0, 0xFB, 0xFB, 0xFF, 0xDE, 0xFC, 0xF9, 0xFF, 0xDC, 0xFC, 0xF7, 0xFF, 0xEF, 0xFF, 0xFC, 0xFF, - 0xEB, 0xFC, 0xF8, 0xFF, 0xD0, 0xF5, 0xE8, 0xFF, 0xBC, 0xF5, 0xDF, 0xFF, 0xAC, 0xF1, 0xD8, 0xFF, - 0x9D, 0xED, 0xD2, 0xFF, 0x7D, 0xE8, 0xC4, 0xFF, 0x6C, 0xE1, 0xB7, 0xFF, 0x5E, 0xDC, 0xAB, 0xFF, - 0x4F, 0xD7, 0x9E, 0xFF, 0x5E, 0xC9, 0x98, 0xFF, 0x35, 0xC6, 0x92, 0xFF, 0x42, 0xC9, 0x8B, 0xFF, - 0x4D, 0xB2, 0x80, 0xFF, 0xF1, 0x9B, 0x00, 0xFF, 0xF8, 0x93, 0x17, 0xFF, 0xF4, 0x95, 0x15, 0xFF, - 0xF1, 0x97, 0x12, 0xFF, 0xF0, 0x96, 0x11, 0xFF, 0xEF, 0x95, 0x10, 0xFF, 0xEF, 0x95, 0x10, 0xFF, - 0xF4, 0xCE, 0x55, 0xFF, 0xF4, 0xCD, 0x54, 0xFF, 0xF5, 0xCC, 0x52, 0xFF, 0xF6, 0xCB, 0x51, 0xFF, - 0xF8, 0xCB, 0x50, 0xFF, 0xF1, 0xC8, 0x49, 0xFF, 0xF9, 0xD5, 0x51, 0xFF, 0xC0, 0x62, 0x15, 0xFF, - 0xBB, 0x5C, 0x00, 0xFF, 0xCC, 0x74, 0x07, 0xFF, 0xCD, 0x7C, 0x02, 0xFF, 0xD4, 0x8D, 0x02, 0xFF, - 0xDB, 0x9E, 0x01, 0xFF, 0xDC, 0xAD, 0x08, 0xFF, 0xED, 0xC1, 0x36, 0xFF, 0xEE, 0xCF, 0x5A, 0xFF, - 0xF0, 0xDC, 0x7D, 0xFF, 0xF3, 0xE1, 0x87, 0xFF, 0xF7, 0xE6, 0x91, 0xFF, 0xF8, 0xED, 0xA5, 0xFF, - 0xF8, 0xF5, 0xB8, 0xFF, 0xFB, 0xF9, 0xC6, 0xFF, 0xFD, 0xFD, 0xD4, 0xFF, 0xFB, 0xFC, 0xDF, 0xFF, - 0xFA, 0xFC, 0xE9, 0xFF, 0xFD, 0xFE, 0xF0, 0xFF, 0xFF, 0xFF, 0xF7, 0xFF, 0xFE, 0xFF, 0xFA, 0xFF, - 0xFB, 0xFE, 0xFC, 0xFF, 0xFF, 0xFA, 0xFD, 0xFF, 0xE7, 0xAF, 0x1D, 0xFF, 0xEE, 0xB0, 0x2A, 0xFF, - 0xF5, 0xB1, 0x37, 0xFF, 0xF6, 0xB8, 0x24, 0xFF, 0xF7, 0xB4, 0x28, 0xFF, 0xF4, 0xAF, 0x21, 0xFF, - 0xF2, 0xAA, 0x1A, 0xFF, 0xF5, 0xD7, 0x9E, 0xFF, 0xE9, 0xFF, 0xFC, 0xFF, 0xE0, 0xFE, 0xFC, 0xFF, - 0xD7, 0xFD, 0xFC, 0xFF, 0xDA, 0xFA, 0xF8, 0xFF, 0xDD, 0xF7, 0xF3, 0xFF, 0xF4, 0xFD, 0xFD, 0xFF, - 0xE0, 0xF9, 0xF6, 0xFF, 0xC3, 0xEC, 0xDF, 0xFF, 0xB5, 0xEF, 0xD7, 0xFF, 0xA5, 0xEC, 0xD2, 0xFF, - 0x95, 0xE9, 0xCC, 0xFF, 0x67, 0xE5, 0xBB, 0xFF, 0x55, 0xDB, 0xAB, 0xFF, 0x44, 0xD3, 0x9E, 0xFF, - 0x32, 0xCB, 0x91, 0xFF, 0x24, 0xC8, 0x85, 0xFF, 0x6A, 0xB4, 0x79, 0xFF, 0xAF, 0x9D, 0x3A, 0xFF, - 0xFF, 0x97, 0x0B, 0xFF, 0xF9, 0x93, 0x18, 0xFF, 0xED, 0x9B, 0x0F, 0xFF, 0xF0, 0x9A, 0x12, 0xFF, - 0xF3, 0x98, 0x15, 0xFF, 0xF1, 0x96, 0x13, 0xFF, 0xEF, 0x94, 0x11, 0xFF, 0xEF, 0x94, 0x11, 0xFF, - 0xF4, 0xCF, 0x58, 0xFF, 0xF4, 0xCE, 0x55, 0xFF, 0xF4, 0xCD, 0x53, 0xFF, 0xF6, 0xCC, 0x52, 0xFF, - 0xF8, 0xCB, 0x52, 0xFF, 0xFA, 0xD5, 0x52, 0xFF, 0xFB, 0xC7, 0x4E, 0xFF, 0xAD, 0x4C, 0x00, 0xFF, - 0xCA, 0x6F, 0x09, 0xFF, 0xD3, 0x7F, 0x0B, 0xFF, 0xD4, 0x88, 0x05, 0xFF, 0xDB, 0x97, 0x04, 0xFF, - 0xE1, 0xA7, 0x04, 0xFF, 0xE5, 0xB6, 0x18, 0xFF, 0xF1, 0xC7, 0x3F, 0xFF, 0xF3, 0xD3, 0x62, 0xFF, - 0xF4, 0xDF, 0x86, 0xFF, 0xF7, 0xE4, 0x91, 0xFF, 0xF9, 0xE9, 0x9B, 0xFF, 0xF9, 0xF0, 0xAD, 0xFF, - 0xF9, 0xF7, 0xBF, 0xFF, 0xFB, 0xFA, 0xCB, 0xFF, 0xFD, 0xFC, 0xD7, 0xFF, 0xFC, 0xFD, 0xDE, 0xFF, - 0xFB, 0xFD, 0xE5, 0xFF, 0xFE, 0xFF, 0xEF, 0xFF, 0xFF, 0xFF, 0xF9, 0xFF, 0xFA, 0xFE, 0xF2, 0xFF, - 0xFC, 0xFE, 0xFE, 0xFF, 0xFB, 0xE9, 0xC6, 0xFF, 0xEC, 0xAF, 0x1D, 0xFF, 0xF6, 0xB4, 0x30, 0xFF, - 0xF8, 0xB6, 0x2F, 0xFF, 0xF6, 0xA7, 0x19, 0xFF, 0xF0, 0xB0, 0x26, 0xFF, 0xF2, 0xAD, 0x22, 0xFF, - 0xF5, 0xAB, 0x1D, 0xFF, 0xF9, 0xA9, 0x26, 0xFF, 0xF6, 0xA6, 0x1C, 0xFF, 0xE9, 0xCD, 0x7D, 0xFF, - 0xDC, 0xF4, 0xDF, 0xFF, 0xAF, 0xFE, 0xEA, 0xFF, 0xED, 0xFD, 0xFD, 0xFF, 0xEF, 0xFF, 0xFF, 0xFF, - 0xD3, 0xF8, 0xFB, 0xFF, 0xB4, 0xEE, 0xEC, 0xFF, 0xAB, 0xE9, 0xE6, 0xFF, 0x89, 0xE6, 0xD8, 0xFF, - 0x67, 0xE2, 0xCB, 0xFF, 0x52, 0xE1, 0xB8, 0xFF, 0x4C, 0xDD, 0xA6, 0xFF, 0x7E, 0xC5, 0x74, 0xFF, - 0xB0, 0xAD, 0x42, 0xFF, 0xF3, 0x9B, 0x22, 0xFF, 0xFF, 0x9C, 0x09, 0xFF, 0xF5, 0x98, 0x09, 0xFF, - 0xEE, 0x9C, 0x10, 0xFF, 0xED, 0x99, 0x17, 0xFF, 0xED, 0x9D, 0x14, 0xFF, 0xEF, 0x9B, 0x14, 0xFF, - 0xF2, 0x99, 0x15, 0xFF, 0xF0, 0x97, 0x13, 0xFF, 0xEE, 0x95, 0x11, 0xFF, 0xEE, 0x95, 0x11, 0xFF, - 0xF5, 0xD0, 0x5A, 0xFF, 0xF4, 0xCF, 0x57, 0xFF, 0xF3, 0xCE, 0x54, 0xFF, 0xF5, 0xCC, 0x53, 0xFF, - 0xF7, 0xCB, 0x53, 0xFF, 0xF4, 0xD3, 0x4C, 0xFF, 0xDD, 0x9A, 0x2C, 0xFF, 0xC1, 0x5D, 0x03, 0xFF, - 0xC8, 0x72, 0x05, 0xFF, 0xD2, 0x83, 0x06, 0xFF, 0xDC, 0x93, 0x07, 0xFF, 0xE1, 0xA2, 0x07, 0xFF, - 0xE7, 0xB0, 0x08, 0xFF, 0xEE, 0xBF, 0x27, 0xFF, 0xF6, 0xCD, 0x47, 0xFF, 0xF7, 0xD8, 0x6B, 0xFF, - 0xF9, 0xE2, 0x8E, 0xFF, 0xFA, 0xE7, 0x9A, 0xFF, 0xFB, 0xEC, 0xA6, 0xFF, 0xFA, 0xF3, 0xB6, 0xFF, - 0xFA, 0xF9, 0xC7, 0xFF, 0xFB, 0xFB, 0xD0, 0xFF, 0xFD, 0xFC, 0xD9, 0xFF, 0xFC, 0xFD, 0xDD, 0xFF, - 0xFC, 0xFE, 0xE2, 0xFF, 0xFE, 0xFF, 0xEE, 0xFF, 0xFF, 0xFF, 0xFB, 0xFF, 0xF7, 0xFD, 0xEA, 0xFF, - 0xFE, 0xFE, 0xFF, 0xFF, 0xF7, 0xD7, 0x8F, 0xFF, 0xF1, 0xAF, 0x1E, 0xFF, 0xF6, 0xB0, 0x2E, 0xFF, - 0xEB, 0xAB, 0x17, 0xFF, 0xFD, 0xF7, 0xDF, 0xFF, 0xE9, 0xAC, 0x24, 0xFF, 0xF0, 0xAC, 0x22, 0xFF, - 0xF8, 0xAC, 0x21, 0xFF, 0xF6, 0xAE, 0x26, 0xFF, 0xF5, 0xB0, 0x2B, 0xFF, 0xF4, 0xA9, 0x19, 0xFF, - 0xF3, 0xA2, 0x08, 0xFF, 0xF9, 0xA7, 0x22, 0xFF, 0xF2, 0xC1, 0x4C, 0xFF, 0xEE, 0xCD, 0x6D, 0xFF, - 0xDB, 0xC9, 0x7D, 0xFF, 0xC2, 0xCA, 0x7F, 0xFF, 0xC6, 0xC5, 0x81, 0xFF, 0xCB, 0xBC, 0x60, 0xFF, - 0xCF, 0xB3, 0x40, 0xFF, 0xE9, 0xA7, 0x24, 0xFF, 0xFF, 0x9B, 0x07, 0xFF, 0xFF, 0x9D, 0x10, 0xFF, - 0xFF, 0x9F, 0x1A, 0xFF, 0xE9, 0x98, 0x0F, 0xFF, 0xF9, 0x9C, 0x14, 0xFF, 0xF7, 0x9C, 0x14, 0xFF, - 0xF4, 0x9B, 0x14, 0xFF, 0xF1, 0x9D, 0x17, 0xFF, 0xED, 0x9E, 0x19, 0xFF, 0xEF, 0x9C, 0x16, 0xFF, - 0xF1, 0x99, 0x14, 0xFF, 0xEF, 0x97, 0x12, 0xFF, 0xED, 0x95, 0x10, 0xFF, 0xED, 0x95, 0x10, 0xFF, - 0xF6, 0xD1, 0x5C, 0xFF, 0xF4, 0xD0, 0x58, 0xFF, 0xF3, 0xCF, 0x55, 0xFF, 0xF5, 0xCD, 0x54, 0xFF, - 0xF7, 0xCC, 0x53, 0xFF, 0xF6, 0xD5, 0x51, 0xFF, 0xCE, 0x7B, 0x16, 0xFF, 0xC6, 0x67, 0x03, 0xFF, - 0xCF, 0x7B, 0x06, 0xFF, 0xD7, 0x8B, 0x05, 0xFF, 0xDF, 0x9B, 0x05, 0xFF, 0xE4, 0xA8, 0x07, 0xFF, - 0xEA, 0xB6, 0x09, 0xFF, 0xF1, 0xC3, 0x2A, 0xFF, 0xF7, 0xD1, 0x4C, 0xFF, 0xF8, 0xDB, 0x6C, 0xFF, - 0xFA, 0xE4, 0x8D, 0xFF, 0xFA, 0xEA, 0x9C, 0xFF, 0xFB, 0xEF, 0xAB, 0xFF, 0xFA, 0xF5, 0xBC, 0xFF, - 0xFA, 0xFA, 0xCD, 0xFF, 0xFB, 0xFB, 0xD4, 0xFF, 0xFD, 0xFC, 0xDB, 0xFF, 0xFC, 0xFD, 0xDC, 0xFF, - 0xFC, 0xFE, 0xDD, 0xFF, 0xFC, 0xFE, 0xE3, 0xFF, 0xFD, 0xFE, 0xEA, 0xFF, 0xFD, 0xFF, 0xFE, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xDE, 0xC0, 0x27, 0xFF, 0xF5, 0xB4, 0x26, 0xFF, 0xF8, 0xB0, 0x1E, 0xFF, - 0xFF, 0xC6, 0x4D, 0xFF, 0xEF, 0xF8, 0xFF, 0xFF, 0xFA, 0xFF, 0xFE, 0xFF, 0xF6, 0xD8, 0x8B, 0xFF, - 0xF3, 0xA7, 0x18, 0xFF, 0xF4, 0xA9, 0x1D, 0xFF, 0xF5, 0xAC, 0x22, 0xFF, 0xF2, 0xAB, 0x22, 0xFF, - 0xF0, 0xAB, 0x22, 0xFF, 0xF2, 0xA3, 0x1A, 0xFF, 0xEE, 0xA6, 0x1A, 0xFF, 0xF4, 0xA8, 0x17, 0xFF, - 0xF3, 0xA2, 0x0D, 0xFF, 0xF2, 0xA4, 0x10, 0xFF, 0xFF, 0xA3, 0x14, 0xFF, 0xFC, 0xA3, 0x15, 0xFF, - 0xF9, 0xA2, 0x16, 0xFF, 0xF2, 0xA2, 0x17, 0xFF, 0xEC, 0xA1, 0x18, 0xFF, 0xFD, 0x99, 0x0D, 0xFF, - 0xED, 0x9A, 0x16, 0xFF, 0xFF, 0xA0, 0x00, 0xFF, 0xE8, 0x9C, 0x2B, 0xFF, 0xAF, 0xB5, 0x60, 0xFF, - 0xF7, 0x99, 0x10, 0xFF, 0xF2, 0x9B, 0x14, 0xFF, 0xED, 0x9D, 0x18, 0xFF, 0xEE, 0x9B, 0x16, 0xFF, - 0xEF, 0x99, 0x13, 0xFF, 0xED, 0x97, 0x11, 0xFF, 0xEB, 0x95, 0x0F, 0xFF, 0xEB, 0x95, 0x0F, 0xFF, - 0xF7, 0xD2, 0x5E, 0xFF, 0xF4, 0xD1, 0x5A, 0xFF, 0xF2, 0xD0, 0x56, 0xFF, 0xF5, 0xCE, 0x54, 0xFF, - 0xF7, 0xCC, 0x53, 0xFF, 0xF7, 0xD7, 0x56, 0xFF, 0xC0, 0x5B, 0x00, 0xFF, 0xCB, 0x70, 0x03, 0xFF, - 0xD6, 0x84, 0x06, 0xFF, 0xDC, 0x94, 0x05, 0xFF, 0xE2, 0xA3, 0x03, 0xFF, 0xE8, 0xAF, 0x07, 0xFF, - 0xEE, 0xBB, 0x0B, 0xFF, 0xF3, 0xC8, 0x2D, 0xFF, 0xF8, 0xD5, 0x50, 0xFF, 0xF9, 0xDE, 0x6E, 0xFF, - 0xFA, 0xE6, 0x8C, 0xFF, 0xFB, 0xEC, 0x9F, 0xFF, 0xFB, 0xF2, 0xB1, 0xFF, 0xFA, 0xF7, 0xC2, 0xFF, - 0xF9, 0xFB, 0xD3, 0xFF, 0xFB, 0xFC, 0xD8, 0xFF, 0xFD, 0xFC, 0xDD, 0xFF, 0xFC, 0xFD, 0xDB, 0xFF, - 0xFC, 0xFE, 0xD8, 0xFF, 0xFB, 0xFD, 0xD8, 0xFF, 0xFA, 0xFC, 0xD9, 0xFF, 0xFA, 0xFA, 0xE4, 0xFF, - 0xF6, 0xE9, 0xA3, 0xFF, 0xFB, 0xAC, 0x2A, 0xFF, 0xFA, 0xB9, 0x2E, 0xFF, 0xED, 0xAD, 0x1A, 0xFF, - 0xF7, 0xDA, 0x99, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xFD, 0xFE, 0xFF, 0xFC, 0xFE, 0xFE, 0xFF, - 0xFD, 0xFF, 0xFF, 0xFF, 0xF9, 0xD4, 0x8C, 0xFF, 0xF5, 0xA8, 0x19, 0xFF, 0xF7, 0xA9, 0x17, 0xFF, - 0xF8, 0xA9, 0x16, 0xFF, 0xF3, 0xA7, 0x1A, 0xFF, 0xED, 0xA5, 0x1E, 0xFF, 0xF1, 0xA7, 0x1F, 0xFF, - 0xF6, 0xA9, 0x20, 0xFF, 0xF6, 0xA7, 0x1D, 0xFF, 0xF6, 0xA5, 0x1A, 0xFF, 0xF8, 0xA3, 0x16, 0xFF, - 0xFA, 0xA1, 0x12, 0xFF, 0xFC, 0x9D, 0x0A, 0xFF, 0xFE, 0x98, 0x03, 0xFF, 0xF9, 0xA1, 0x25, 0xFF, - 0xB0, 0xC0, 0x6F, 0xFF, 0x5D, 0xC9, 0xCF, 0xFF, 0x27, 0xE5, 0xFF, 0xFF, 0xB3, 0xB4, 0x73, 0xFF, - 0xF9, 0x97, 0x0B, 0xFF, 0xF3, 0x9A, 0x11, 0xFF, 0xED, 0x9D, 0x17, 0xFF, 0xEE, 0x9B, 0x15, 0xFF, - 0xEE, 0x9A, 0x13, 0xFF, 0xEC, 0x98, 0x11, 0xFF, 0xEA, 0x96, 0x0F, 0xFF, 0xEA, 0x96, 0x0F, 0xFF, - 0xF6, 0xD1, 0x5D, 0xFF, 0xF5, 0xD1, 0x5A, 0xFF, 0xF4, 0xD2, 0x58, 0xFF, 0xF3, 0xCE, 0x53, 0xFF, - 0xFA, 0xD1, 0x56, 0xFF, 0xE6, 0xB1, 0x3F, 0xFF, 0xC6, 0x64, 0x01, 0xFF, 0xCE, 0x75, 0x02, 0xFF, - 0xD7, 0x87, 0x04, 0xFF, 0xDD, 0x95, 0x02, 0xFF, 0xE4, 0xA4, 0x00, 0xFF, 0xEA, 0xB0, 0x03, 0xFF, - 0xF1, 0xBD, 0x06, 0xFF, 0xF2, 0xC8, 0x1B, 0xFF, 0xFB, 0xD5, 0x42, 0xFF, 0xFB, 0xDD, 0x63, 0xFF, - 0xFB, 0xE5, 0x84, 0xFF, 0xFC, 0xEB, 0x98, 0xFF, 0xFC, 0xF1, 0xAB, 0xFF, 0xFF, 0xF8, 0xBD, 0xFF, - 0xFF, 0xFF, 0xCF, 0xFF, 0xFF, 0xFC, 0xCF, 0xFF, 0xFB, 0xF9, 0xCF, 0xFF, 0xFD, 0xFE, 0xD2, 0xFF, - 0xFF, 0xFF, 0xD4, 0xFF, 0xFF, 0xF9, 0xC6, 0xFF, 0xFF, 0xEE, 0xB7, 0xFF, 0xD9, 0xD7, 0x59, 0xFF, - 0xE9, 0xB9, 0x40, 0xFF, 0xFF, 0xB9, 0x2E, 0xFF, 0xEF, 0xB1, 0x2B, 0xFF, 0xEB, 0xAF, 0x27, 0xFF, - 0xF1, 0xEF, 0xDD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFE, 0xFF, 0xFD, 0xFE, 0xFF, 0xFF, - 0xF9, 0xFD, 0xFF, 0xFF, 0xF9, 0xFF, 0xFF, 0xFF, 0xF9, 0xFF, 0xFF, 0xFF, 0xF0, 0xE8, 0xC1, 0xFF, - 0xE6, 0xCD, 0x83, 0xFF, 0xE8, 0xBB, 0x52, 0xFF, 0xEB, 0xA9, 0x21, 0xFF, 0xFF, 0xA1, 0x13, 0xFF, - 0xF7, 0x9F, 0x06, 0xFF, 0xF8, 0x9F, 0x0F, 0xFF, 0xEA, 0xA3, 0x18, 0xFF, 0xE0, 0xB1, 0x43, 0xFF, - 0xC9, 0xC2, 0x6D, 0xFF, 0x99, 0xD6, 0xAF, 0xFF, 0x6A, 0xEB, 0xF1, 0xFF, 0x31, 0xEE, 0xEB, 0xFF, - 0x47, 0xE6, 0xF8, 0xFF, 0x3A, 0xE1, 0xFF, 0xFF, 0x41, 0xE1, 0xFC, 0xFF, 0xF4, 0x98, 0x00, 0xFF, - 0xFC, 0xA1, 0x19, 0xFF, 0xF6, 0x9E, 0x15, 0xFF, 0xF1, 0x9A, 0x11, 0xFF, 0xF0, 0x9A, 0x13, 0xFF, - 0xF0, 0x99, 0x14, 0xFF, 0xEE, 0x97, 0x12, 0xFF, 0xEC, 0x95, 0x10, 0xFF, 0xEC, 0x95, 0x10, 0xFF, - 0xF5, 0xCF, 0x5C, 0xFF, 0xF6, 0xD1, 0x5A, 0xFF, 0xF6, 0xD4, 0x59, 0xFF, 0xF2, 0xCD, 0x51, 0xFF, - 0xFE, 0xD6, 0x59, 0xFF, 0xD5, 0x8B, 0x29, 0xFF, 0xCB, 0x6C, 0x02, 0xFF, 0xD1, 0x7A, 0x01, 0xFF, - 0xD8, 0x89, 0x01, 0xFF, 0xDE, 0x97, 0x00, 0xFF, 0xE5, 0xA5, 0x00, 0xFF, 0xEC, 0xB2, 0x00, 0xFF, - 0xF3, 0xBE, 0x02, 0xFF, 0xF1, 0xC7, 0x08, 0xFF, 0xFE, 0xD5, 0x35, 0xFF, 0xFD, 0xDD, 0x58, 0xFF, - 0xFB, 0xE4, 0x7C, 0xFF, 0xFC, 0xEA, 0x91, 0xFF, 0xFE, 0xEF, 0xA6, 0xFF, 0xFE, 0xF2, 0xB0, 0xFF, - 0xFE, 0xF5, 0xBA, 0xFF, 0xFC, 0xF5, 0xBD, 0xFF, 0xF9, 0xF5, 0xC0, 0xFF, 0xF6, 0xF7, 0xC0, 0xFF, - 0xF4, 0xF9, 0xC1, 0xFF, 0xFC, 0xFC, 0xC6, 0xFF, 0xFF, 0xFF, 0xCC, 0xFF, 0xF7, 0xF8, 0xC1, 0xFF, - 0xF3, 0xCC, 0x59, 0xFF, 0xF2, 0xB0, 0x38, 0xFF, 0xF5, 0xBA, 0x37, 0xFF, 0xF7, 0xB4, 0x29, 0xFF, - 0xF8, 0xFB, 0xFC, 0xFF, 0xFF, 0xFD, 0xFC, 0xFF, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, - 0xF6, 0xFC, 0xFF, 0xFF, 0xF2, 0xFE, 0xFC, 0xFF, 0xEE, 0xFF, 0xF6, 0xFF, 0xE9, 0xFF, 0xFC, 0xFF, - 0xE4, 0xFF, 0xFF, 0xFF, 0xD7, 0xFF, 0xFF, 0xFF, 0xCA, 0xFF, 0xFF, 0xFF, 0xF1, 0xFB, 0xFF, 0xFF, - 0xDF, 0xFF, 0xFF, 0xFF, 0xC1, 0xFD, 0xFC, 0xFF, 0x88, 0xFF, 0xF6, 0xFF, 0x91, 0xFD, 0xFB, 0xFF, - 0x7F, 0xFF, 0xFF, 0xFF, 0x6C, 0xFC, 0xFC, 0xFF, 0x59, 0xF6, 0xF9, 0xFF, 0x58, 0xEF, 0xF8, 0xFF, - 0x57, 0xE9, 0xF7, 0xFF, 0x59, 0xE3, 0xF6, 0xFF, 0x67, 0xD2, 0xD0, 0xFF, 0xFF, 0x98, 0x08, 0xFF, - 0xEF, 0x9A, 0x17, 0xFF, 0xF1, 0x99, 0x12, 0xFF, 0xF4, 0x98, 0x0C, 0xFF, 0xF3, 0x99, 0x10, 0xFF, - 0xF1, 0x99, 0x15, 0xFF, 0xEF, 0x97, 0x13, 0xFF, 0xED, 0x95, 0x11, 0xFF, 0xED, 0x95, 0x11, 0xFF, - 0xF9, 0xD1, 0x5E, 0xFF, 0xF7, 0xD3, 0x5B, 0xFF, 0xF6, 0xD4, 0x59, 0xFF, 0xF8, 0xD3, 0x57, 0xFF, - 0xFF, 0xDA, 0x5E, 0xFF, 0xCD, 0x70, 0x19, 0xFF, 0xCC, 0x6D, 0x02, 0xFF, 0xD2, 0x7B, 0x03, 0xFF, - 0xD9, 0x88, 0x04, 0xFF, 0xDF, 0x96, 0x04, 0xFF, 0xE6, 0xA5, 0x04, 0xFF, 0xE6, 0xAD, 0x01, 0xFF, - 0xE7, 0xB4, 0x00, 0xFF, 0xEA, 0xBE, 0x06, 0xFF, 0xF5, 0xCA, 0x23, 0xFF, 0xF8, 0xD7, 0x4B, 0xFF, - 0xFB, 0xE3, 0x74, 0xFF, 0xFC, 0xE8, 0x89, 0xFF, 0xFE, 0xEC, 0x9E, 0xFF, 0xFE, 0xED, 0xA5, 0xFF, - 0xFE, 0xEE, 0xAB, 0xFF, 0xFB, 0xEF, 0xAD, 0xFF, 0xF9, 0xEF, 0xB0, 0xFF, 0xF8, 0xF2, 0xB3, 0xFF, - 0xF8, 0xF5, 0xB6, 0xFF, 0xFC, 0xF8, 0xB5, 0xFF, 0xFF, 0xFB, 0xB5, 0xFF, 0xFF, 0xF3, 0xD9, 0xFF, - 0xF1, 0xB9, 0x1A, 0xFF, 0xF3, 0xB3, 0x28, 0xFF, 0xF6, 0xB3, 0x2A, 0xFF, 0xF3, 0xCE, 0x73, 0xFF, - 0xF5, 0xFD, 0xFD, 0xFF, 0xF9, 0xFE, 0xFD, 0xFF, 0xFE, 0xFF, 0xFD, 0xFF, 0xF8, 0xFE, 0xFF, 0xFF, - 0xF3, 0xFD, 0xFF, 0xFF, 0xEE, 0xFE, 0xFD, 0xFF, 0xE9, 0xFE, 0xFA, 0xFF, 0xE3, 0xFF, 0xFC, 0xFF, - 0xDE, 0xFF, 0xFF, 0xFF, 0xD0, 0xFF, 0xFF, 0xFF, 0xC2, 0xFF, 0xFF, 0xFF, 0xD6, 0xFA, 0xFC, 0xFF, - 0xF3, 0xFC, 0xFF, 0xFF, 0xBF, 0xFF, 0xFE, 0xFF, 0xC4, 0xFA, 0xFC, 0xFF, 0x84, 0xFF, 0xFC, 0xFF, - 0x8A, 0xFA, 0xFB, 0xFF, 0x79, 0xF6, 0xFA, 0xFF, 0x68, 0xF2, 0xF9, 0xFF, 0x5E, 0xED, 0xF6, 0xFF, - 0x53, 0xE8, 0xF4, 0xFF, 0x48, 0xE8, 0xF7, 0xFF, 0xA8, 0xBC, 0x87, 0xFF, 0xFB, 0x9A, 0x10, 0xFF, - 0xF1, 0x9B, 0x17, 0xFF, 0xF1, 0x9A, 0x14, 0xFF, 0xF1, 0x9A, 0x10, 0xFF, 0xF2, 0x99, 0x13, 0xFF, - 0xF3, 0x98, 0x16, 0xFF, 0xF1, 0x96, 0x14, 0xFF, 0xEF, 0x94, 0x12, 0xFF, 0xEF, 0x94, 0x12, 0xFF, - 0xFC, 0xD4, 0x61, 0xFF, 0xF9, 0xD4, 0x5D, 0xFF, 0xF6, 0xD4, 0x58, 0xFF, 0xF5, 0xD1, 0x55, 0xFF, - 0xF5, 0xCE, 0x53, 0xFF, 0xBD, 0x4D, 0x01, 0xFF, 0xCD, 0x6E, 0x02, 0xFF, 0xD3, 0x7B, 0x04, 0xFF, - 0xDA, 0x87, 0x06, 0xFF, 0xE0, 0x96, 0x09, 0xFF, 0xE6, 0xA5, 0x0C, 0xFF, 0xE9, 0xB0, 0x0A, 0xFF, - 0xEB, 0xBA, 0x09, 0xFF, 0xF3, 0xC5, 0x15, 0xFF, 0xFB, 0xD0, 0x21, 0xFF, 0xFB, 0xD9, 0x46, 0xFF, - 0xFB, 0xE3, 0x6B, 0xFF, 0xFC, 0xE6, 0x81, 0xFF, 0xFD, 0xE9, 0x97, 0xFF, 0xFD, 0xE8, 0x99, 0xFF, - 0xFD, 0xE8, 0x9B, 0xFF, 0xFB, 0xE8, 0x9D, 0xFF, 0xF8, 0xE9, 0x9F, 0xFF, 0xFA, 0xEE, 0xA5, 0xFF, - 0xFC, 0xF2, 0xAB, 0xFF, 0xFB, 0xEF, 0xB0, 0xFF, 0xFB, 0xEB, 0xB4, 0xFF, 0xF8, 0xDD, 0x89, 0xFF, - 0xF3, 0xB4, 0x27, 0xFF, 0xF7, 0xBD, 0x3E, 0xFF, 0xF7, 0xAC, 0x1E, 0xFF, 0xF0, 0xE8, 0xBC, 0xFF, - 0xF2, 0xFF, 0xFE, 0xFF, 0xF3, 0xFF, 0xFD, 0xFF, 0xF4, 0xFE, 0xFD, 0xFF, 0xF2, 0xFE, 0xFD, 0xFF, - 0xEF, 0xFE, 0xFE, 0xFF, 0xE9, 0xFE, 0xFE, 0xFF, 0xE3, 0xFE, 0xFE, 0xFF, 0xDD, 0xFD, 0xFD, 0xFF, - 0xD7, 0xFD, 0xFD, 0xFF, 0xC8, 0xFE, 0xFC, 0xFF, 0xB9, 0xFF, 0xFB, 0xFF, 0x9F, 0xFE, 0xF5, 0xFF, - 0xCE, 0xFF, 0xFF, 0xFF, 0xF5, 0xF9, 0xFF, 0xFF, 0xC8, 0xFF, 0xFF, 0xFF, 0xBD, 0xF7, 0xFC, 0xFF, - 0x7A, 0xF8, 0xF8, 0xFF, 0x6B, 0xF5, 0xF8, 0xFF, 0x5C, 0xF3, 0xF9, 0xFF, 0x55, 0xED, 0xF5, 0xFF, - 0x4F, 0xE8, 0xF1, 0xFF, 0x37, 0xEE, 0xF8, 0xFF, 0xE9, 0xA6, 0x3E, 0xFF, 0xF5, 0x9C, 0x17, 0xFF, - 0xF4, 0x9D, 0x17, 0xFF, 0xF1, 0x9C, 0x15, 0xFF, 0xEE, 0x9B, 0x14, 0xFF, 0xF1, 0x99, 0x15, 0xFF, - 0xF4, 0x97, 0x17, 0xFF, 0xF2, 0x95, 0x15, 0xFF, 0xF0, 0x93, 0x13, 0xFF, 0xF0, 0x93, 0x13, 0xFF, - 0xFB, 0xD6, 0x66, 0xFF, 0xF4, 0xD1, 0x5E, 0xFF, 0xF6, 0xD3, 0x5F, 0xFF, 0xF9, 0xD7, 0x59, 0xFF, - 0xDA, 0x9D, 0x39, 0xFF, 0xBE, 0x58, 0x08, 0xFF, 0xCD, 0x6C, 0x08, 0xFF, 0xD2, 0x79, 0x0C, 0xFF, - 0xD7, 0x87, 0x0F, 0xFF, 0xDF, 0x96, 0x11, 0xFF, 0xE7, 0xA5, 0x13, 0xFF, 0xEA, 0xB0, 0x13, 0xFF, - 0xF5, 0xC2, 0x1B, 0xFF, 0xF3, 0xC8, 0x0F, 0xFF, 0xF9, 0xD0, 0x16, 0xFF, 0xF4, 0xD2, 0x27, 0xFF, - 0xF7, 0xD6, 0x4B, 0xFF, 0xF8, 0xDA, 0x60, 0xFF, 0xF9, 0xDE, 0x76, 0xFF, 0xF9, 0xDF, 0x7F, 0xFF, - 0xFA, 0xE0, 0x87, 0xFF, 0xFB, 0xE4, 0x8C, 0xFF, 0xFB, 0xE7, 0x91, 0xFF, 0xFC, 0xEA, 0x95, 0xFF, - 0xFC, 0xED, 0x9A, 0xFF, 0xFB, 0xEA, 0x9E, 0xFF, 0xFA, 0xE7, 0xA3, 0xFF, 0xFA, 0xCC, 0x5E, 0xFF, - 0xF5, 0xB6, 0x2C, 0xFF, 0xF9, 0xB8, 0x24, 0xFF, 0xF5, 0xB1, 0x14, 0xFF, 0xFF, 0xFB, 0xFF, 0xFF, - 0xEC, 0xFF, 0xFD, 0xFF, 0xED, 0xFF, 0xFF, 0xFF, 0xED, 0xFF, 0xFF, 0xFF, 0xEC, 0xFE, 0xFF, 0xFF, - 0xEA, 0xFD, 0xFD, 0xFF, 0xE3, 0xFD, 0xFD, 0xFF, 0xDC, 0xFD, 0xFD, 0xFF, 0xD5, 0xFD, 0xFD, 0xFF, - 0xCE, 0xFD, 0xFD, 0xFF, 0xC1, 0xFC, 0xFC, 0xFF, 0xB4, 0xFB, 0xFB, 0xFF, 0x8D, 0xFA, 0xF5, 0xFF, - 0x89, 0xFC, 0xF8, 0xFF, 0xCB, 0xFA, 0xF8, 0xFF, 0xF1, 0xFE, 0xF7, 0xFF, 0xBD, 0xFF, 0xF9, 0xFF, - 0xC2, 0xF9, 0xFA, 0xFF, 0xAC, 0xF8, 0xFB, 0xFF, 0x96, 0xF7, 0xFC, 0xFF, 0x91, 0xF4, 0xF9, 0xFF, - 0x8C, 0xF0, 0xF7, 0xFF, 0xA8, 0xE4, 0xFF, 0xFF, 0xF6, 0x95, 0x00, 0xFF, 0xF6, 0x99, 0x07, 0xFF, - 0xF7, 0x9D, 0x15, 0xFF, 0xF3, 0x9D, 0x15, 0xFF, 0xF0, 0x9C, 0x15, 0xFF, 0xF2, 0x9A, 0x15, 0xFF, - 0xF4, 0x98, 0x15, 0xFF, 0xF2, 0x97, 0x14, 0xFF, 0xF1, 0x95, 0x12, 0xFF, 0xF1, 0x95, 0x12, 0xFF, - 0xFA, 0xD9, 0x6A, 0xFF, 0xF0, 0xCE, 0x60, 0xFF, 0xF6, 0xD2, 0x66, 0xFF, 0xFD, 0xDD, 0x5C, 0xFF, - 0xC0, 0x6C, 0x1E, 0xFF, 0xBE, 0x63, 0x0E, 0xFF, 0xCD, 0x69, 0x0E, 0xFF, 0xD0, 0x78, 0x13, 0xFF, - 0xD4, 0x87, 0x18, 0xFF, 0xDE, 0x96, 0x19, 0xFF, 0xE9, 0xA6, 0x1A, 0xFF, 0xE3, 0xA8, 0x13, 0xFF, - 0xEE, 0xBA, 0x1D, 0xFF, 0xEA, 0xBD, 0x0C, 0xFF, 0xF6, 0xC5, 0x22, 0xFF, 0xEC, 0xC5, 0x13, 0xFF, - 0xF2, 0xCA, 0x2A, 0xFF, 0xF3, 0xCF, 0x40, 0xFF, 0xF4, 0xD3, 0x56, 0xFF, 0xF5, 0xD6, 0x65, 0xFF, - 0xF7, 0xD9, 0x74, 0xFF, 0xFA, 0xDF, 0x7B, 0xFF, 0xFE, 0xE4, 0x82, 0xFF, 0xFD, 0xE6, 0x86, 0xFF, - 0xFD, 0xE7, 0x89, 0xFF, 0xFB, 0xE4, 0x8D, 0xFF, 0xF9, 0xE2, 0x92, 0xFF, 0xFC, 0xBB, 0x33, 0xFF, - 0xF6, 0xB9, 0x31, 0xFF, 0xFD, 0xBA, 0x31, 0xFF, 0xF7, 0xC4, 0x57, 0xFF, 0xDE, 0xFF, 0xF3, 0xFF, - 0xE6, 0xFF, 0xFD, 0xFF, 0xE6, 0xFF, 0xFF, 0xFF, 0xE6, 0xFF, 0xFF, 0xFF, 0xE6, 0xFE, 0xFF, 0xFF, - 0xE5, 0xFC, 0xFD, 0xFF, 0xDD, 0xFC, 0xFD, 0xFF, 0xD5, 0xFC, 0xFD, 0xFF, 0xCD, 0xFD, 0xFD, 0xFF, - 0xC5, 0xFD, 0xFD, 0xFF, 0xBA, 0xFA, 0xFC, 0xFF, 0xAF, 0xF7, 0xFB, 0xFF, 0x9E, 0xF9, 0xFE, 0xFF, - 0x8D, 0xFB, 0xFF, 0xFF, 0x77, 0xFE, 0xFA, 0xFF, 0x7D, 0xFB, 0xF4, 0xFF, 0xD2, 0xF7, 0xF8, 0xFF, - 0xEE, 0xFF, 0xFD, 0xFF, 0xDF, 0xFD, 0xFE, 0xFF, 0xD0, 0xFB, 0xFE, 0xFF, 0xCD, 0xFA, 0xFD, 0xFF, - 0xC9, 0xF9, 0xFC, 0xFF, 0xCD, 0xD2, 0xA6, 0xFF, 0xEA, 0x98, 0x02, 0xFF, 0xEC, 0xA0, 0x1E, 0xFF, - 0xF9, 0x9E, 0x13, 0xFF, 0xF6, 0x9E, 0x15, 0xFF, 0xF2, 0x9D, 0x16, 0xFF, 0xF2, 0x9B, 0x15, 0xFF, - 0xF3, 0x99, 0x14, 0xFF, 0xF2, 0x98, 0x13, 0xFF, 0xF1, 0x97, 0x12, 0xFF, 0xF1, 0x97, 0x12, 0xFF, - 0xF3, 0xD4, 0x55, 0xFF, 0xF0, 0xD1, 0x5B, 0xFF, 0xF6, 0xD6, 0x69, 0xFF, 0xFF, 0xE2, 0x6D, 0xFF, - 0xA7, 0x4F, 0x0B, 0xFF, 0xBE, 0x60, 0x11, 0xFF, 0xCD, 0x6A, 0x0F, 0xFF, 0xD5, 0x83, 0x1F, 0xFF, - 0xDC, 0x89, 0x1E, 0xFF, 0xDD, 0x8B, 0x0F, 0xFF, 0xE0, 0x9B, 0x1A, 0xFF, 0xF3, 0xB0, 0x22, 0xFF, - 0xE0, 0xAA, 0x1D, 0xFF, 0xDF, 0xAE, 0x13, 0xFF, 0xEE, 0xBC, 0x25, 0xFF, 0xE6, 0xB9, 0x14, 0xFF, - 0xEF, 0xC1, 0x1F, 0xFF, 0xEF, 0xC7, 0x25, 0xFF, 0xEE, 0xCD, 0x2B, 0xFF, 0xF0, 0xCD, 0x3C, 0xFF, - 0xF3, 0xCE, 0x4E, 0xFF, 0xF8, 0xD6, 0x5B, 0xFF, 0xFE, 0xDE, 0x68, 0xFF, 0xFC, 0xDD, 0x6D, 0xFF, - 0xFA, 0xDC, 0x73, 0xFF, 0xF5, 0xDD, 0x75, 0xFF, 0xF6, 0xD3, 0x70, 0xFF, 0xFB, 0xBA, 0x30, 0xFF, - 0xF5, 0xB8, 0x33, 0xFF, 0xFE, 0xB5, 0x24, 0xFF, 0xE4, 0xDE, 0xA3, 0xFF, 0xDC, 0xFF, 0xF9, 0xFF, - 0xDC, 0xFD, 0xFD, 0xFF, 0xDC, 0xFE, 0xFE, 0xFF, 0xDB, 0xFF, 0xFF, 0xFF, 0xDA, 0xFE, 0xFE, 0xFF, - 0xD9, 0xFD, 0xFC, 0xFF, 0xD2, 0xFD, 0xFC, 0xFF, 0xCA, 0xFD, 0xFC, 0xFF, 0xC3, 0xFD, 0xFD, 0xFF, - 0xBB, 0xFD, 0xFD, 0xFF, 0xAF, 0xFB, 0xFC, 0xFF, 0xA2, 0xFA, 0xFC, 0xFF, 0x92, 0xFA, 0xFD, 0xFF, - 0x83, 0xFB, 0xFE, 0xFF, 0x6A, 0xFD, 0xFB, 0xFF, 0x60, 0xFC, 0xF8, 0xFF, 0x5D, 0xF8, 0xFA, 0xFF, - 0x4C, 0xF7, 0xFC, 0xFF, 0x76, 0xF4, 0xFD, 0xFF, 0xA0, 0xF2, 0xFE, 0xFF, 0x87, 0xEC, 0xF5, 0xFF, - 0x5F, 0xE3, 0xF7, 0xFF, 0xB4, 0xBB, 0x50, 0xFF, 0xFE, 0x99, 0x0C, 0xFF, 0xF7, 0x9E, 0x1A, 0xFF, - 0xF6, 0x9D, 0x15, 0xFF, 0xF4, 0x9D, 0x15, 0xFF, 0xF2, 0x9C, 0x15, 0xFF, 0xF2, 0x9B, 0x14, 0xFF, - 0xF1, 0x99, 0x12, 0xFF, 0xF1, 0x99, 0x12, 0xFF, 0xF1, 0x99, 0x12, 0xFF, 0xF1, 0x99, 0x12, 0xFF, - 0xFD, 0xD3, 0x66, 0xFF, 0xF9, 0xD6, 0x69, 0xFF, 0xF5, 0xD9, 0x6B, 0xFF, 0xDC, 0xB6, 0x4E, 0xFF, - 0xAE, 0x52, 0x18, 0xFF, 0xC6, 0x66, 0x1C, 0xFF, 0xBD, 0x5A, 0x00, 0xFF, 0xCA, 0x7D, 0x1A, 0xFF, - 0xD4, 0x7B, 0x15, 0xFF, 0xDC, 0x81, 0x04, 0xFF, 0xE7, 0xA0, 0x2A, 0xFF, 0xD3, 0x88, 0x00, 0xFF, - 0xE2, 0xAB, 0x2D, 0xFF, 0xDC, 0xA7, 0x23, 0xFF, 0xE6, 0xB3, 0x29, 0xFF, 0xE0, 0xAD, 0x16, 0xFF, - 0xEB, 0xB7, 0x14, 0xFF, 0xEA, 0xB9, 0x15, 0xFF, 0xE9, 0xBA, 0x16, 0xFF, 0xEC, 0xBE, 0x1F, 0xFF, - 0xEE, 0xC2, 0x28, 0xFF, 0xF6, 0xCD, 0x3B, 0xFF, 0xFE, 0xD8, 0x4E, 0xFF, 0xFB, 0xD5, 0x55, 0xFF, - 0xF7, 0xD1, 0x5D, 0xFF, 0xEF, 0xD6, 0x5D, 0xFF, 0xF3, 0xC4, 0x4E, 0xFF, 0xFA, 0xB9, 0x2E, 0xFF, - 0xF4, 0xB8, 0x35, 0xFF, 0xFF, 0xB1, 0x17, 0xFF, 0xD1, 0xF7, 0xF0, 0xFF, 0xDA, 0xFF, 0xFE, 0xFF, - 0xD2, 0xFC, 0xFC, 0xFF, 0xD1, 0xFD, 0xFD, 0xFF, 0xD0, 0xFE, 0xFD, 0xFF, 0xCF, 0xFD, 0xFC, 0xFF, - 0xCD, 0xFD, 0xFB, 0xFF, 0xC6, 0xFD, 0xFC, 0xFF, 0xBF, 0xFD, 0xFC, 0xFF, 0xB9, 0xFD, 0xFD, 0xFF, - 0xB2, 0xFC, 0xFD, 0xFF, 0xA3, 0xFC, 0xFD, 0xFF, 0x95, 0xFC, 0xFD, 0xFF, 0x87, 0xFC, 0xFC, 0xFF, - 0x78, 0xFB, 0xFC, 0xFF, 0x6C, 0xFA, 0xFD, 0xFF, 0x5F, 0xF8, 0xFD, 0xFF, 0x45, 0xF6, 0xF9, 0xFF, - 0x47, 0xEF, 0xF5, 0xFF, 0x37, 0xE9, 0xF2, 0xFF, 0x28, 0xE4, 0xEE, 0xFF, 0x24, 0xE3, 0xED, 0xFF, - 0x05, 0xDD, 0xFF, 0xFF, 0xFF, 0x99, 0x03, 0xFF, 0xF5, 0xA0, 0x16, 0xFF, 0xF4, 0x9E, 0x16, 0xFF, - 0xF3, 0x9C, 0x16, 0xFF, 0xF2, 0x9C, 0x15, 0xFF, 0xF2, 0x9B, 0x14, 0xFF, 0xF1, 0x9A, 0x12, 0xFF, - 0xEF, 0x99, 0x10, 0xFF, 0xF0, 0x9A, 0x11, 0xFF, 0xF1, 0x9B, 0x12, 0xFF, 0xF1, 0x9B, 0x12, 0xFF, - 0xFB, 0xD5, 0x65, 0xFF, 0xFC, 0xD4, 0x70, 0xFF, 0xFF, 0xE2, 0x77, 0xFF, 0xC7, 0x86, 0x3B, 0xFF, - 0xBA, 0x5F, 0x23, 0xFF, 0xBA, 0x6A, 0x1E, 0xFF, 0xD0, 0x7A, 0x21, 0xFF, 0xD7, 0x87, 0x27, 0xFF, - 0xD6, 0x8C, 0x24, 0xFF, 0xD3, 0x8D, 0x1D, 0xFF, 0xD0, 0x88, 0x21, 0xFF, 0xEA, 0xA0, 0x2B, 0xFF, - 0xD5, 0x95, 0x21, 0xFF, 0xEE, 0xA9, 0x30, 0xFF, 0xDA, 0xA0, 0x20, 0xFF, 0xDD, 0xA1, 0x16, 0xFF, - 0xDF, 0xA1, 0x0D, 0xFF, 0xE2, 0xAB, 0x19, 0xFF, 0xEB, 0xB1, 0x12, 0xFF, 0xED, 0xB8, 0x0F, 0xFF, - 0xEE, 0xBF, 0x0C, 0xFF, 0xEF, 0xC1, 0x1C, 0xFF, 0xF0, 0xC3, 0x2C, 0xFF, 0xF1, 0xC4, 0x36, 0xFF, - 0xF3, 0xC5, 0x40, 0xFF, 0xF1, 0xC9, 0x46, 0xFF, 0xF6, 0xC2, 0x45, 0xFF, 0xF9, 0xBA, 0x31, 0xFF, - 0xF6, 0xB7, 0x30, 0xFF, 0xF4, 0xC1, 0x4B, 0xFF, 0xC0, 0xFA, 0xF5, 0xFF, 0xC6, 0xFF, 0xFD, 0xFF, - 0xC4, 0xFC, 0xFC, 0xFF, 0xC4, 0xFC, 0xFD, 0xFF, 0xC3, 0xFD, 0xFD, 0xFF, 0xC2, 0xFD, 0xFC, 0xFF, - 0xC1, 0xFC, 0xFB, 0xFF, 0xB5, 0xF8, 0xF8, 0xFF, 0xB2, 0xFD, 0xFC, 0xFF, 0xAA, 0xFC, 0xFC, 0xFF, - 0xA3, 0xFC, 0xFC, 0xFF, 0x95, 0xFB, 0xFC, 0xFF, 0x88, 0xFB, 0xFB, 0xFF, 0x7A, 0xFB, 0xFB, 0xFF, - 0x6D, 0xFA, 0xFB, 0xFF, 0x61, 0xF8, 0xFB, 0xFF, 0x56, 0xF6, 0xFC, 0xFF, 0x44, 0xF2, 0xF8, 0xFF, - 0x40, 0xEA, 0xF4, 0xFF, 0x31, 0xE5, 0xEF, 0xFF, 0x23, 0xDF, 0xEA, 0xFF, 0x1C, 0xE0, 0xFA, 0xFF, - 0x44, 0xD1, 0xC5, 0xFF, 0xFE, 0xA1, 0x0A, 0xFF, 0xF9, 0x9F, 0x15, 0xFF, 0xF5, 0x9F, 0x17, 0xFF, - 0xF2, 0x9F, 0x18, 0xFF, 0xF2, 0x9E, 0x16, 0xFF, 0xF2, 0x9D, 0x15, 0xFF, 0xF5, 0x9F, 0x16, 0xFF, - 0xF8, 0xA0, 0x18, 0xFF, 0xF5, 0x9D, 0x15, 0xFF, 0xF2, 0x9A, 0x12, 0xFF, 0xF2, 0x9A, 0x12, 0xFF, - 0xF9, 0xD7, 0x64, 0xFF, 0xF6, 0xD1, 0x64, 0xFF, 0xFF, 0xE6, 0x5D, 0xFF, 0x9A, 0x43, 0x03, 0xFF, - 0xA5, 0x4B, 0x0D, 0xFF, 0xCC, 0x7B, 0x30, 0xFF, 0xC0, 0x54, 0x04, 0xFF, 0xC9, 0x53, 0x00, 0xFF, - 0xC5, 0x67, 0x03, 0xFF, 0xC9, 0x87, 0x25, 0xFF, 0xCA, 0x80, 0x28, 0xFF, 0xD0, 0x88, 0x27, 0xFF, - 0xD7, 0x90, 0x26, 0xFF, 0xC9, 0x74, 0x06, 0xFF, 0xCF, 0x8D, 0x17, 0xFF, 0xE1, 0x9C, 0x1E, 0xFF, - 0xE3, 0x9B, 0x16, 0xFF, 0xDA, 0x9E, 0x1E, 0xFF, 0xDD, 0x97, 0x00, 0xFF, 0xE6, 0xA4, 0x03, 0xFF, - 0xEE, 0xB1, 0x07, 0xFF, 0xE8, 0xB0, 0x08, 0xFF, 0xE2, 0xAE, 0x09, 0xFF, 0xE8, 0xB4, 0x16, 0xFF, - 0xEF, 0xB9, 0x23, 0xFF, 0xF4, 0xBD, 0x30, 0xFF, 0xF9, 0xC1, 0x3C, 0xFF, 0xF9, 0xBB, 0x34, 0xFF, - 0xF9, 0xB6, 0x2C, 0xFF, 0xE8, 0xD2, 0x80, 0xFF, 0xAE, 0xFD, 0xFA, 0xFF, 0xB2, 0xFC, 0xFB, 0xFF, - 0xB6, 0xFB, 0xFC, 0xFF, 0xB6, 0xFC, 0xFC, 0xFF, 0xB6, 0xFC, 0xFD, 0xFF, 0xB5, 0xFC, 0xFC, 0xFF, - 0xB4, 0xFC, 0xFB, 0xFF, 0xA4, 0xF4, 0xF3, 0xFF, 0xA5, 0xFC, 0xFC, 0xFF, 0x9C, 0xFC, 0xFC, 0xFF, - 0x93, 0xFB, 0xFC, 0xFF, 0x87, 0xFB, 0xFB, 0xFF, 0x7A, 0xFA, 0xFA, 0xFF, 0x6D, 0xFA, 0xFA, 0xFF, - 0x61, 0xF9, 0xF9, 0xFF, 0x57, 0xF7, 0xFA, 0xFF, 0x4E, 0xF4, 0xFA, 0xFF, 0x44, 0xED, 0xF6, 0xFF, - 0x3A, 0xE6, 0xF3, 0xFF, 0x2C, 0xE1, 0xED, 0xFF, 0x1E, 0xDB, 0xE7, 0xFF, 0x19, 0xD1, 0xFF, 0xFF, - 0x8F, 0xB0, 0x77, 0xFF, 0xFD, 0xA0, 0x09, 0xFF, 0xFD, 0x9D, 0x14, 0xFF, 0xF7, 0x9F, 0x17, 0xFF, - 0xF2, 0xA2, 0x1A, 0xFF, 0xF2, 0xA0, 0x18, 0xFF, 0xF2, 0x9E, 0x16, 0xFF, 0xF1, 0x9B, 0x13, 0xFF, - 0xF0, 0x98, 0x10, 0xFF, 0xF1, 0x99, 0x11, 0xFF, 0xF2, 0x9A, 0x12, 0xFF, 0xF2, 0x9A, 0x12, 0xFF, - 0xF7, 0xD4, 0x5F, 0xFF, 0xFC, 0xDC, 0x67, 0xFF, 0xF0, 0xC1, 0x4F, 0xFF, 0x8A, 0x2B, 0x00, 0xFF, - 0xBF, 0x6A, 0x2D, 0xFF, 0xAC, 0x47, 0x05, 0xFF, 0xB9, 0x43, 0x00, 0xFF, 0xC4, 0x85, 0x35, 0xFF, - 0xBB, 0x4D, 0x06, 0xFF, 0xC3, 0x61, 0x13, 0xFF, 0xCA, 0x70, 0x2C, 0xFF, 0xB3, 0x5A, 0x0F, 0xFF, - 0xCC, 0x74, 0x21, 0xFF, 0xC2, 0x69, 0x11, 0xFF, 0xC2, 0x78, 0x18, 0xFF, 0xD0, 0x80, 0x1C, 0xFF, - 0xD6, 0x7F, 0x18, 0xFF, 0xD3, 0x86, 0x1A, 0xFF, 0xDD, 0x8F, 0x10, 0xFF, 0xDA, 0x8C, 0x02, 0xFF, - 0xE6, 0x99, 0x04, 0xFF, 0xE1, 0x9B, 0x04, 0xFF, 0xDC, 0x9D, 0x04, 0xFF, 0xE1, 0xA6, 0x05, 0xFF, - 0xDD, 0xA6, 0x00, 0xFF, 0xEE, 0xB6, 0x1F, 0xFF, 0xF6, 0xBD, 0x39, 0xFF, 0xF6, 0xBB, 0x38, 0xFF, - 0xFC, 0xB5, 0x24, 0xFF, 0xB8, 0xE8, 0xBF, 0xFF, 0xA2, 0xFE, 0xFA, 0xFF, 0xA5, 0xFC, 0xFB, 0xFF, - 0xA8, 0xFA, 0xFB, 0xFF, 0xA7, 0xFB, 0xFC, 0xFF, 0xA6, 0xFC, 0xFC, 0xFF, 0xA2, 0xFB, 0xFA, 0xFF, - 0x9F, 0xFA, 0xF8, 0xFF, 0x94, 0xF7, 0xF5, 0xFF, 0x92, 0xFB, 0xFA, 0xFF, 0x8B, 0xFB, 0xFA, 0xFF, - 0x84, 0xFB, 0xFB, 0xFF, 0x78, 0xFA, 0xFA, 0xFF, 0x6D, 0xF9, 0xF9, 0xFF, 0x61, 0xF9, 0xF9, 0xFF, - 0x55, 0xF8, 0xF8, 0xFF, 0x4B, 0xF6, 0xF8, 0xFF, 0x41, 0xF3, 0xF9, 0xFF, 0x39, 0xEC, 0xF5, 0xFF, - 0x30, 0xE4, 0xF1, 0xFF, 0x28, 0xDD, 0xEE, 0xFF, 0x1F, 0xD6, 0xEB, 0xFF, 0x00, 0xD9, 0xEE, 0xFF, - 0xE4, 0xA6, 0x32, 0xFF, 0xFF, 0xA4, 0x18, 0xFF, 0xF3, 0xA4, 0x28, 0xFF, 0xF4, 0xA2, 0x20, 0xFF, - 0xF4, 0xA0, 0x18, 0xFF, 0xF4, 0x9E, 0x16, 0xFF, 0xF3, 0x9D, 0x15, 0xFF, 0xF2, 0x9B, 0x13, 0xFF, - 0xF2, 0x99, 0x11, 0xFF, 0xF2, 0x99, 0x11, 0xFF, 0xF3, 0x9A, 0x12, 0xFF, 0xF3, 0x9A, 0x12, 0xFF, - 0xF5, 0xD1, 0x5B, 0xFF, 0xFA, 0xDF, 0x62, 0xFF, 0xCC, 0x8C, 0x30, 0xFF, 0x91, 0x2C, 0x05, 0xFF, - 0x9A, 0x49, 0x0E, 0xFF, 0x9E, 0x36, 0x00, 0xFF, 0x96, 0x38, 0x00, 0xFF, 0xB6, 0x5E, 0x14, 0xFF, - 0xD9, 0xAA, 0x53, 0xFF, 0xE2, 0xA6, 0x30, 0xFF, 0xEE, 0xBB, 0x44, 0xFF, 0xFF, 0xDD, 0x6D, 0xFF, - 0xF9, 0xDE, 0x76, 0xFF, 0xF9, 0xD9, 0x6C, 0xFF, 0xF8, 0xD4, 0x63, 0xFF, 0xF3, 0xC4, 0x54, 0xFF, - 0xED, 0xB4, 0x44, 0xFF, 0xD5, 0x8E, 0x23, 0xFF, 0xCE, 0x77, 0x11, 0xFF, 0xC6, 0x6C, 0x00, 0xFF, - 0xDE, 0x81, 0x02, 0xFF, 0xDA, 0x87, 0x00, 0xFF, 0xD6, 0x8D, 0x00, 0xFF, 0xE1, 0x9B, 0x06, 0xFF, - 0xDC, 0x98, 0x00, 0xFF, 0xF0, 0xB1, 0x22, 0xFF, 0xF4, 0xB9, 0x35, 0xFF, 0xF3, 0xBC, 0x3C, 0xFF, - 0xFF, 0xB4, 0x1B, 0xFF, 0x89, 0xFD, 0xFE, 0xFF, 0x95, 0xFF, 0xFA, 0xFF, 0x97, 0xFC, 0xFA, 0xFF, - 0x99, 0xF8, 0xFB, 0xFF, 0x97, 0xFB, 0xFB, 0xFF, 0x95, 0xFD, 0xFC, 0xFF, 0x8F, 0xFB, 0xF9, 0xFF, - 0x89, 0xF9, 0xF6, 0xFF, 0x84, 0xF9, 0xF7, 0xFF, 0x7F, 0xF9, 0xF8, 0xFF, 0x7A, 0xFA, 0xF9, 0xFF, - 0x75, 0xFA, 0xFA, 0xFF, 0x6A, 0xF9, 0xF9, 0xFF, 0x5F, 0xF9, 0xF8, 0xFF, 0x54, 0xF8, 0xF7, 0xFF, - 0x49, 0xF7, 0xF6, 0xFF, 0x3F, 0xF5, 0xF7, 0xFF, 0x35, 0xF2, 0xF7, 0xFF, 0x2E, 0xEB, 0xF3, 0xFF, - 0x27, 0xE3, 0xF0, 0xFF, 0x24, 0xDA, 0xF0, 0xFF, 0x21, 0xD1, 0xF0, 0xFF, 0x23, 0xC9, 0xE8, 0xFF, - 0xFF, 0x9B, 0x03, 0xFF, 0xF6, 0xA3, 0x20, 0xFF, 0xF6, 0xA1, 0x16, 0xFF, 0xF7, 0x9F, 0x16, 0xFF, - 0xF7, 0x9D, 0x16, 0xFF, 0xF6, 0x9C, 0x15, 0xFF, 0xF5, 0x9B, 0x14, 0xFF, 0xF4, 0x9A, 0x13, 0xFF, - 0xF3, 0x99, 0x12, 0xFF, 0xF3, 0x99, 0x12, 0xFF, 0xF3, 0x99, 0x12, 0xFF, 0xF3, 0x99, 0x12, 0xFF, - 0xFE, 0xE2, 0x5A, 0xFF, 0xFF, 0xD7, 0x64, 0xFF, 0x97, 0x46, 0x0C, 0xFF, 0x82, 0x25, 0x00, 0xFF, - 0xB7, 0x6A, 0x1D, 0xFF, 0xDE, 0xA2, 0x39, 0xFF, 0xFF, 0xE5, 0x5E, 0xFF, 0xFD, 0xD8, 0x51, 0xFF, - 0xF5, 0xD6, 0x4C, 0xFF, 0xF4, 0xCC, 0x48, 0xFF, 0xF6, 0xCF, 0x5E, 0xFF, 0xFE, 0xD9, 0x67, 0xFF, - 0xF7, 0xD3, 0x61, 0xFF, 0xF8, 0xD1, 0x5A, 0xFF, 0xFE, 0xCB, 0x41, 0xFF, 0xFE, 0xCE, 0x53, 0xFF, - 0xF5, 0xCF, 0x51, 0xFF, 0xF6, 0xCA, 0x49, 0xFF, 0xFF, 0xCD, 0x49, 0xFF, 0xFF, 0xB9, 0x3F, 0xFF, - 0xDA, 0x7E, 0x0E, 0xFF, 0xC2, 0x69, 0x00, 0xFF, 0xDA, 0x84, 0x05, 0xFF, 0xD5, 0x84, 0x01, 0xFF, - 0xD8, 0x8C, 0x05, 0xFF, 0xF8, 0xBE, 0x37, 0xFF, 0xF6, 0xBE, 0x3A, 0xFF, 0xFF, 0xBD, 0x34, 0xFF, - 0xE1, 0xC6, 0x61, 0xFF, 0x79, 0xF3, 0xFB, 0xFF, 0x82, 0xFA, 0xF7, 0xFF, 0x83, 0xF9, 0xF9, 0xFF, - 0x83, 0xF7, 0xFA, 0xFF, 0x7F, 0xF7, 0xF8, 0xFF, 0x7B, 0xF6, 0xF6, 0xFF, 0x79, 0xF8, 0xF7, 0xFF, - 0x77, 0xFA, 0xF8, 0xFF, 0x71, 0xF9, 0xF7, 0xFF, 0x6C, 0xF8, 0xF7, 0xFF, 0x6B, 0xFC, 0xFB, 0xFF, - 0x63, 0xF8, 0xF8, 0xFF, 0x5A, 0xF7, 0xF8, 0xFF, 0x52, 0xF7, 0xF7, 0xFF, 0x48, 0xF5, 0xF7, 0xFF, - 0x3F, 0xF4, 0xF6, 0xFF, 0x37, 0xF2, 0xF5, 0xFF, 0x2F, 0xEF, 0xF4, 0xFF, 0x27, 0xE6, 0xF1, 0xFF, - 0x20, 0xDD, 0xEE, 0xFF, 0x1F, 0xD6, 0xEA, 0xFF, 0x10, 0xCC, 0xF1, 0xFF, 0x6C, 0xB9, 0x9D, 0xFF, - 0xFE, 0x9F, 0x0B, 0xFF, 0xF8, 0xA3, 0x1A, 0xFF, 0xF9, 0xA2, 0x16, 0xFF, 0xF8, 0xA0, 0x16, 0xFF, - 0xF7, 0x9E, 0x16, 0xFF, 0xF7, 0x9D, 0x15, 0xFF, 0xF6, 0x9B, 0x14, 0xFF, 0xF5, 0x9A, 0x14, 0xFF, - 0xF4, 0x99, 0x13, 0xFF, 0xF4, 0x99, 0x13, 0xFF, 0xF4, 0x99, 0x13, 0xFF, 0xF4, 0x99, 0x13, 0xFF, - 0xF8, 0xD8, 0x60, 0xFF, 0xF7, 0xD8, 0x5A, 0xFF, 0xD7, 0xAD, 0x4B, 0xFF, 0xFF, 0xDD, 0x68, 0xFF, - 0xF7, 0xDC, 0x55, 0xFF, 0xFC, 0xD6, 0x55, 0xFF, 0xFF, 0xCF, 0x54, 0xFF, 0xFF, 0xD5, 0x5C, 0xFF, - 0xF1, 0xCA, 0x53, 0xFF, 0xF5, 0xCA, 0x4A, 0xFF, 0xF9, 0xC9, 0x42, 0xFF, 0xF7, 0xC9, 0x47, 0xFF, - 0xF5, 0xC8, 0x4B, 0xFF, 0xF0, 0xCF, 0x5C, 0xFF, 0xF8, 0xCC, 0x46, 0xFF, 0xFF, 0xCA, 0x55, 0xFF, - 0xF9, 0xC3, 0x3E, 0xFF, 0xFB, 0xC2, 0x43, 0xFF, 0xFC, 0xC1, 0x48, 0xFF, 0xF3, 0xBE, 0x3E, 0xFF, - 0xFA, 0xCB, 0x43, 0xFF, 0xFC, 0xB3, 0x37, 0xFF, 0xDD, 0x7B, 0x0B, 0xFF, 0xC8, 0x6D, 0x00, 0xFF, - 0xD4, 0x7F, 0x0D, 0xFF, 0xFF, 0xCC, 0x4D, 0xFF, 0xF9, 0xC2, 0x3E, 0xFF, 0xFF, 0xC1, 0x2D, 0xFF, - 0xA7, 0xDE, 0xA7, 0xFF, 0x5B, 0xEB, 0xF7, 0xFF, 0x6F, 0xF5, 0xF4, 0xFF, 0x6E, 0xF5, 0xF7, 0xFF, - 0x6D, 0xF6, 0xF9, 0xFF, 0x67, 0xF3, 0xF5, 0xFF, 0x60, 0xF0, 0xF1, 0xFF, 0x62, 0xF6, 0xF5, 0xFF, - 0x65, 0xFC, 0xFA, 0xFF, 0x5E, 0xF9, 0xF8, 0xFF, 0x58, 0xF6, 0xF5, 0xFF, 0x5D, 0xFE, 0xFE, 0xFF, - 0x52, 0xF6, 0xF6, 0xFF, 0x4B, 0xF5, 0xF6, 0xFF, 0x44, 0xF5, 0xF7, 0xFF, 0x3D, 0xF3, 0xF6, 0xFF, - 0x35, 0xF1, 0xF5, 0xFF, 0x2F, 0xEE, 0xF3, 0xFF, 0x28, 0xEB, 0xF0, 0xFF, 0x20, 0xE1, 0xEE, 0xFF, - 0x18, 0xD8, 0xEC, 0xFF, 0x1A, 0xD2, 0xE4, 0xFF, 0x00, 0xC6, 0xF3, 0xFF, 0xB4, 0xA8, 0x51, 0xFF, - 0xFA, 0xA3, 0x13, 0xFF, 0xFB, 0xA3, 0x15, 0xFF, 0xFB, 0xA3, 0x17, 0xFF, 0xFA, 0xA0, 0x16, 0xFF, - 0xF8, 0x9E, 0x16, 0xFF, 0xF7, 0x9D, 0x15, 0xFF, 0xF7, 0x9C, 0x15, 0xFF, 0xF6, 0x9A, 0x14, 0xFF, - 0xF6, 0x99, 0x14, 0xFF, 0xF6, 0x99, 0x14, 0xFF, 0xF6, 0x99, 0x14, 0xFF, 0xF6, 0x99, 0x14, 0xFF, - 0xF1, 0xCE, 0x58, 0xFF, 0xFD, 0xDC, 0x59, 0xFF, 0xF8, 0xD5, 0x55, 0xFF, 0xFF, 0xDD, 0x5D, 0xFF, - 0xF3, 0xCE, 0x4D, 0xFF, 0xF3, 0xCB, 0x4C, 0xFF, 0xF3, 0xC8, 0x4C, 0xFF, 0xFB, 0xD1, 0x56, 0xFF, - 0xFC, 0xD3, 0x58, 0xFF, 0xFB, 0xCE, 0x4F, 0xFF, 0xFA, 0xC9, 0x47, 0xFF, 0xF9, 0xC8, 0x48, 0xFF, - 0xF8, 0xC7, 0x49, 0xFF, 0xF5, 0xCA, 0x50, 0xFF, 0xF9, 0xC9, 0x44, 0xFF, 0xFD, 0xC8, 0x4B, 0xFF, - 0xF9, 0xC5, 0x3E, 0xFF, 0xFA, 0xC3, 0x40, 0xFF, 0xFA, 0xC2, 0x43, 0xFF, 0xF3, 0xBD, 0x3A, 0xFF, - 0xF3, 0xBF, 0x3A, 0xFF, 0xFC, 0xC7, 0x3E, 0xFF, 0xFC, 0xC6, 0x3A, 0xFF, 0xE2, 0xA1, 0x24, 0xFF, - 0xD9, 0x8C, 0x1F, 0xFF, 0xF6, 0xB9, 0x36, 0xFF, 0xFA, 0xBB, 0x26, 0xFF, 0xF3, 0xBA, 0x29, 0xFF, - 0x56, 0xD7, 0xCD, 0xFF, 0x5A, 0xFA, 0xF9, 0xFF, 0x48, 0xDA, 0xD9, 0xFF, 0x58, 0xEC, 0xED, 0xFF, - 0x5F, 0xF5, 0xF9, 0xFF, 0x4D, 0xEF, 0xF1, 0xFF, 0x3A, 0xE9, 0xE9, 0xFF, 0x45, 0xEE, 0xED, 0xFF, - 0x50, 0xF4, 0xF2, 0xFF, 0x4E, 0xF3, 0xF9, 0xFF, 0x44, 0xF0, 0xED, 0xFF, 0x4B, 0xF8, 0xFE, 0xFF, - 0x41, 0xF5, 0xF4, 0xFF, 0x3C, 0xF4, 0xF5, 0xFF, 0x37, 0xF2, 0xF6, 0xFF, 0x31, 0xF0, 0xF5, 0xFF, - 0x2A, 0xEF, 0xF4, 0xFF, 0x26, 0xEA, 0xF2, 0xFF, 0x22, 0xE6, 0xF0, 0xFF, 0x1C, 0xDB, 0xEE, 0xFF, - 0x17, 0xD0, 0xEC, 0xFF, 0x08, 0xCC, 0xF0, 0xFF, 0x08, 0xC4, 0xF5, 0xFF, 0xFF, 0xAD, 0x0E, 0xFF, - 0xF9, 0xA1, 0x16, 0xFF, 0xF8, 0xA1, 0x17, 0xFF, 0xF8, 0xA1, 0x18, 0xFF, 0xF8, 0xA0, 0x17, 0xFF, - 0xF8, 0x9E, 0x16, 0xFF, 0xF8, 0x9D, 0x16, 0xFF, 0xF8, 0x9C, 0x15, 0xFF, 0xF7, 0x9A, 0x15, 0xFF, - 0xF7, 0x99, 0x14, 0xFF, 0xF7, 0x99, 0x14, 0xFF, 0xF7, 0x99, 0x14, 0xFF, 0xF7, 0x99, 0x14, 0xFF, - 0xFB, 0xD5, 0x60, 0xFF, 0xFA, 0xD3, 0x5A, 0xFF, 0xFA, 0xD1, 0x55, 0xFF, 0xFC, 0xD0, 0x55, 0xFF, - 0xFE, 0xCF, 0x54, 0xFF, 0xFA, 0xD0, 0x54, 0xFF, 0xF6, 0xD1, 0x53, 0xFF, 0xF6, 0xCE, 0x50, 0xFF, - 0xF7, 0xCB, 0x4E, 0xFF, 0xF9, 0xCA, 0x4C, 0xFF, 0xFA, 0xCA, 0x4B, 0xFF, 0xFB, 0xC8, 0x49, 0xFF, - 0xFB, 0xC6, 0x47, 0xFF, 0xFB, 0xC6, 0x45, 0xFF, 0xFA, 0xC6, 0x43, 0xFF, 0xF9, 0xC6, 0x41, 0xFF, - 0xF8, 0xC6, 0x3F, 0xFF, 0xF8, 0xC4, 0x3E, 0xFF, 0xF9, 0xC3, 0x3E, 0xFF, 0xFB, 0xC3, 0x3F, 0xFF, - 0xFD, 0xC3, 0x40, 0xFF, 0xF2, 0xBA, 0x38, 0xFF, 0xF7, 0xC0, 0x3F, 0xFF, 0xFA, 0xC2, 0x3D, 0xFF, - 0xFD, 0xC5, 0x3A, 0xFF, 0xF6, 0xC1, 0x37, 0xFF, 0xEF, 0xBD, 0x34, 0xFF, 0xEF, 0xBB, 0x2D, 0xFF, - 0x21, 0xD6, 0xDD, 0xFF, 0x37, 0xDC, 0xBF, 0xFF, 0x41, 0xE0, 0xDD, 0xFF, 0x49, 0xEA, 0xEB, 0xFF, - 0x41, 0xE3, 0xEA, 0xFF, 0x41, 0xE8, 0xED, 0xFF, 0x41, 0xED, 0xF1, 0xFF, 0x3F, 0xEC, 0xED, 0xFF, - 0x3C, 0xEB, 0xEA, 0xFF, 0x3E, 0xEE, 0xFA, 0xFF, 0x31, 0xEB, 0xE5, 0xFF, 0x39, 0xF2, 0xFE, 0xFF, - 0x31, 0xF4, 0xF1, 0xFF, 0x2D, 0xF2, 0xF3, 0xFF, 0x29, 0xF0, 0xF5, 0xFF, 0x25, 0xEE, 0xF4, 0xFF, - 0x20, 0xEC, 0xF4, 0xFF, 0x1E, 0xE6, 0xF1, 0xFF, 0x1C, 0xE1, 0xEF, 0xFF, 0x19, 0xD5, 0xED, 0xFF, - 0x16, 0xC9, 0xEB, 0xFF, 0x0B, 0xC3, 0xDE, 0xFF, 0x39, 0xBE, 0xBA, 0xFF, 0xF8, 0x98, 0x07, 0xFF, - 0xF8, 0x9F, 0x19, 0xFF, 0xF6, 0x9F, 0x19, 0xFF, 0xF5, 0x9F, 0x19, 0xFF, 0xF7, 0x9F, 0x18, 0xFF, - 0xF9, 0x9F, 0x16, 0xFF, 0xF9, 0x9D, 0x16, 0xFF, 0xF9, 0x9C, 0x16, 0xFF, 0xF9, 0x9A, 0x16, 0xFF, - 0xF8, 0x99, 0x15, 0xFF, 0xF8, 0x99, 0x15, 0xFF, 0xF8, 0x99, 0x15, 0xFF, 0xF8, 0x99, 0x15, 0xFF, - 0xF8, 0xD4, 0x5C, 0xFF, 0xF8, 0xD4, 0x58, 0xFF, 0xF8, 0xD3, 0x54, 0xFF, 0xF9, 0xD1, 0x56, 0xFF, - 0xFA, 0xD0, 0x57, 0xFF, 0xF8, 0xD0, 0x55, 0xFF, 0xF5, 0xD0, 0x53, 0xFF, 0xF7, 0xCE, 0x50, 0xFF, - 0xF9, 0xCC, 0x4D, 0xFF, 0xF9, 0xCB, 0x4C, 0xFF, 0xFA, 0xCA, 0x4A, 0xFF, 0xFB, 0xC8, 0x48, 0xFF, - 0xFB, 0xC7, 0x46, 0xFF, 0xFA, 0xC6, 0x44, 0xFF, 0xFA, 0xC6, 0x43, 0xFF, 0xF9, 0xC6, 0x41, 0xFF, - 0xF9, 0xC6, 0x3F, 0xFF, 0xF9, 0xC4, 0x3E, 0xFF, 0xF9, 0xC3, 0x3D, 0xFF, 0xFA, 0xC2, 0x3E, 0xFF, - 0xFB, 0xC1, 0x3E, 0xFF, 0xF5, 0xBD, 0x3A, 0xFF, 0xF7, 0xC1, 0x3D, 0xFF, 0xF8, 0xC0, 0x3A, 0xFF, - 0xF9, 0xC0, 0x37, 0xFF, 0xFF, 0xBD, 0x36, 0xFF, 0xFF, 0xBB, 0x35, 0xFF, 0x84, 0xBA, 0x66, 0xFF, - 0x18, 0xD2, 0xAF, 0xFF, 0x19, 0xD2, 0xB3, 0xFF, 0x39, 0xDA, 0xD2, 0xFF, 0x3D, 0xDC, 0xE1, 0xFF, - 0x31, 0xD4, 0xD5, 0xFF, 0x37, 0xDF, 0xE1, 0xFF, 0x3E, 0xE9, 0xEC, 0xFF, 0x35, 0xE6, 0xE1, 0xFF, - 0x35, 0xE5, 0xE9, 0xFF, 0x34, 0xE5, 0xF0, 0xFF, 0x2A, 0xE3, 0xE4, 0xFF, 0x2D, 0xE5, 0xF5, 0xFF, - 0x28, 0xEB, 0xE8, 0xFF, 0x2A, 0xEE, 0xF0, 0xFF, 0x24, 0xE8, 0xEF, 0xFF, 0x20, 0xE4, 0xEC, 0xFF, - 0x1C, 0xDF, 0xE9, 0xFF, 0x1C, 0xDB, 0xEB, 0xFF, 0x1B, 0xD7, 0xED, 0xFF, 0x18, 0xCE, 0xE9, 0xFF, - 0x15, 0xC5, 0xE5, 0xFF, 0x03, 0xBF, 0xE7, 0xFF, 0x92, 0xB1, 0x6C, 0xFF, 0xFB, 0x9C, 0x10, 0xFF, - 0xF7, 0xA0, 0x17, 0xFF, 0xF5, 0xA0, 0x19, 0xFF, 0xF3, 0xA0, 0x1B, 0xFF, 0xF6, 0x9F, 0x19, 0xFF, - 0xF9, 0x9F, 0x16, 0xFF, 0xF8, 0x9E, 0x16, 0xFF, 0xF8, 0x9C, 0x15, 0xFF, 0xF8, 0x9B, 0x15, 0xFF, - 0xF8, 0x99, 0x15, 0xFF, 0xF7, 0x99, 0x14, 0xFF, 0xF7, 0x98, 0x14, 0xFF, 0xF7, 0x98, 0x14, 0xFF, - 0xF6, 0xD3, 0x57, 0xFF, 0xF6, 0xD4, 0x55, 0xFF, 0xF6, 0xD5, 0x53, 0xFF, 0xF7, 0xD2, 0x57, 0xFF, - 0xF7, 0xD0, 0x5B, 0xFF, 0xF6, 0xD0, 0x57, 0xFF, 0xF5, 0xCF, 0x54, 0xFF, 0xF7, 0xCE, 0x50, 0xFF, - 0xFA, 0xCC, 0x4C, 0xFF, 0xFA, 0xCB, 0x4B, 0xFF, 0xFA, 0xCA, 0x49, 0xFF, 0xFA, 0xC8, 0x47, 0xFF, - 0xFB, 0xC7, 0x46, 0xFF, 0xFA, 0xC7, 0x44, 0xFF, 0xFA, 0xC6, 0x43, 0xFF, 0xF9, 0xC6, 0x41, 0xFF, - 0xF9, 0xC5, 0x3F, 0xFF, 0xF9, 0xC4, 0x3E, 0xFF, 0xF9, 0xC2, 0x3D, 0xFF, 0xF9, 0xC1, 0x3C, 0xFF, - 0xF9, 0xC0, 0x3B, 0xFF, 0xF8, 0xC1, 0x3C, 0xFF, 0xF7, 0xC2, 0x3C, 0xFF, 0xF6, 0xBE, 0x38, 0xFF, - 0xF5, 0xBB, 0x34, 0xFF, 0xFD, 0xBC, 0x35, 0xFF, 0xFF, 0xBE, 0x36, 0xFF, 0xFB, 0xBB, 0x45, 0xFF, - 0x2B, 0xC9, 0x82, 0xFF, 0x01, 0xBE, 0xA0, 0xFF, 0x20, 0xC4, 0xB8, 0xFF, 0x31, 0xCF, 0xD8, 0xFF, - 0x31, 0xD5, 0xD1, 0xFF, 0x2E, 0xD5, 0xD4, 0xFF, 0x2A, 0xD4, 0xD7, 0xFF, 0x24, 0xD7, 0xCC, 0xFF, - 0x2E, 0xDE, 0xE8, 0xFF, 0x29, 0xDD, 0xE6, 0xFF, 0x24, 0xDC, 0xE4, 0xFF, 0x22, 0xD9, 0xED, 0xFF, - 0x20, 0xE1, 0xDF, 0xFF, 0x27, 0xE9, 0xEC, 0xFF, 0x1E, 0xE0, 0xEA, 0xFF, 0x1B, 0xD9, 0xE3, 0xFF, - 0x19, 0xD3, 0xDD, 0xFF, 0x1A, 0xD0, 0xE4, 0xFF, 0x1B, 0xCD, 0xEB, 0xFF, 0x17, 0xC7, 0xE4, 0xFF, - 0x14, 0xC2, 0xDE, 0xFF, 0x00, 0xBC, 0xEF, 0xFF, 0xEB, 0xA4, 0x1D, 0xFF, 0xFF, 0xA0, 0x19, 0xFF, - 0xF6, 0xA2, 0x15, 0xFF, 0xF3, 0xA2, 0x19, 0xFF, 0xF0, 0xA1, 0x1D, 0xFF, 0xF4, 0xA0, 0x19, 0xFF, - 0xF8, 0x9F, 0x16, 0xFF, 0xF8, 0x9E, 0x15, 0xFF, 0xF8, 0x9D, 0x15, 0xFF, 0xF7, 0x9B, 0x14, 0xFF, - 0xF7, 0x9A, 0x14, 0xFF, 0xF6, 0x99, 0x13, 0xFF, 0xF5, 0x98, 0x12, 0xFF, 0xF5, 0x98, 0x12, 0xFF, - 0xF8, 0xD5, 0x5E, 0xFF, 0xFC, 0xD5, 0x63, 0xFF, 0xFF, 0xD6, 0x68, 0xFF, 0xFB, 0xD2, 0x5E, 0xFF, - 0xF8, 0xCF, 0x55, 0xFF, 0xF7, 0xCF, 0x53, 0xFF, 0xF7, 0xCE, 0x50, 0xFF, 0xF9, 0xCD, 0x4D, 0xFF, - 0xFA, 0xCC, 0x4B, 0xFF, 0xFA, 0xCB, 0x49, 0xFF, 0xFA, 0xCA, 0x48, 0xFF, 0xFA, 0xC9, 0x47, 0xFF, - 0xFA, 0xC8, 0x45, 0xFF, 0xFA, 0xC7, 0x44, 0xFF, 0xF9, 0xC6, 0x42, 0xFF, 0xF9, 0xC5, 0x41, 0xFF, - 0xF9, 0xC5, 0x40, 0xFF, 0xF9, 0xC4, 0x3F, 0xFF, 0xF9, 0xC2, 0x3D, 0xFF, 0xF9, 0xC1, 0x3C, 0xFF, - 0xF8, 0xC0, 0x3B, 0xFF, 0xF8, 0xC0, 0x3B, 0xFF, 0xF8, 0xC1, 0x3A, 0xFF, 0xF7, 0xBF, 0x38, 0xFF, - 0xF6, 0xBD, 0x35, 0xFF, 0xFA, 0xBD, 0x34, 0xFF, 0xFE, 0xBD, 0x33, 0xFF, 0xF5, 0xC3, 0x22, 0xFF, - 0xFB, 0xBA, 0x26, 0xFF, 0xB1, 0xB0, 0x53, 0xFF, 0x06, 0xC5, 0x9A, 0xFF, 0x22, 0xD2, 0xC0, 0xFF, - 0x36, 0xDD, 0xD3, 0xFF, 0x12, 0xBA, 0xB3, 0xFF, 0x1E, 0xC7, 0xC3, 0xFF, 0x21, 0xCE, 0xC4, 0xFF, - 0x2C, 0xD8, 0xD8, 0xFF, 0x2F, 0xDA, 0xDE, 0xFF, 0x2A, 0xD5, 0xDC, 0xFF, 0x20, 0xD4, 0xE7, 0xFF, - 0x1C, 0xD5, 0xD4, 0xFF, 0x28, 0xE4, 0xE8, 0xFF, 0x24, 0xE3, 0xEB, 0xFF, 0x1F, 0xCD, 0xD1, 0xFF, - 0x1C, 0xC5, 0xD2, 0xFF, 0x01, 0xC2, 0xDC, 0xFF, 0x11, 0xC3, 0xCF, 0xFF, 0x09, 0xC1, 0xE2, 0xFF, - 0x00, 0xBE, 0xE3, 0xFF, 0x6E, 0xBE, 0x83, 0xFF, 0xF6, 0x9F, 0x0C, 0xFF, 0xFD, 0x9F, 0x11, 0xFF, - 0xF6, 0xA1, 0x17, 0xFF, 0xF4, 0xA1, 0x19, 0xFF, 0xF3, 0xA1, 0x1A, 0xFF, 0xF5, 0xA0, 0x18, 0xFF, - 0xF8, 0x9F, 0x15, 0xFF, 0xF7, 0x9E, 0x15, 0xFF, 0xF7, 0x9D, 0x14, 0xFF, 0xF7, 0x9C, 0x14, 0xFF, - 0xF7, 0x9B, 0x13, 0xFF, 0xF5, 0x99, 0x11, 0xFF, 0xF4, 0x98, 0x10, 0xFF, 0xF4, 0x98, 0x10, 0xFF, - 0xFB, 0xD6, 0x64, 0xFF, 0xF9, 0xD4, 0x5D, 0xFF, 0xF8, 0xD2, 0x55, 0xFF, 0xF8, 0xD0, 0x53, 0xFF, - 0xF8, 0xCE, 0x50, 0xFF, 0xF9, 0xCE, 0x4E, 0xFF, 0xFA, 0xCD, 0x4D, 0xFF, 0xFA, 0xCC, 0x4B, 0xFF, - 0xFB, 0xCC, 0x49, 0xFF, 0xFA, 0xCB, 0x48, 0xFF, 0xFA, 0xCA, 0x47, 0xFF, 0xFA, 0xC9, 0x46, 0xFF, - 0xFA, 0xC8, 0x45, 0xFF, 0xFA, 0xC7, 0x43, 0xFF, 0xF9, 0xC6, 0x42, 0xFF, 0xF9, 0xC5, 0x41, 0xFF, - 0xF9, 0xC4, 0x40, 0xFF, 0xF9, 0xC3, 0x3F, 0xFF, 0xF9, 0xC2, 0x3D, 0xFF, 0xF9, 0xC1, 0x3C, 0xFF, - 0xF8, 0xC0, 0x3B, 0xFF, 0xF8, 0xC0, 0x3A, 0xFF, 0xF8, 0xBF, 0x39, 0xFF, 0xF8, 0xBF, 0x38, 0xFF, - 0xF8, 0xBF, 0x36, 0xFF, 0xF7, 0xBD, 0x34, 0xFF, 0xF7, 0xBC, 0x31, 0xFF, 0xF8, 0xBB, 0x33, 0xFF, - 0xF9, 0xBA, 0x35, 0xFF, 0xFF, 0xBC, 0x2C, 0xFF, 0xDE, 0xC2, 0x60, 0xFF, 0x84, 0xCB, 0x93, 0xFF, - 0x2A, 0xD4, 0xC5, 0xFF, 0x2E, 0xD7, 0xCA, 0xFF, 0x12, 0xBA, 0xB0, 0xFF, 0x16, 0xBE, 0xB4, 0xFF, - 0x1A, 0xC2, 0xB8, 0xFF, 0x25, 0xC8, 0xC6, 0xFF, 0x20, 0xBE, 0xC4, 0xFF, 0x16, 0xC8, 0xDA, 0xFF, - 0x18, 0xC8, 0xC9, 0xFF, 0x21, 0xD7, 0xDB, 0xFF, 0x1A, 0xD6, 0xDD, 0xFF, 0x0D, 0xBC, 0xB7, 0xFF, - 0x03, 0xBD, 0xC7, 0xFF, 0x00, 0xBF, 0xD0, 0xFF, 0x50, 0xC9, 0xAC, 0xFF, 0xB0, 0xB8, 0x6B, 0xFF, - 0xFF, 0xA3, 0x04, 0xFF, 0xFA, 0xA3, 0x12, 0xFF, 0xF4, 0xA4, 0x21, 0xFF, 0xF5, 0xA2, 0x1D, 0xFF, - 0xF5, 0xA1, 0x19, 0xFF, 0xF6, 0xA0, 0x18, 0xFF, 0xF6, 0xA0, 0x17, 0xFF, 0xF7, 0x9F, 0x16, 0xFF, - 0xF7, 0x9F, 0x15, 0xFF, 0xF7, 0x9E, 0x14, 0xFF, 0xF7, 0x9D, 0x14, 0xFF, 0xF6, 0x9C, 0x13, 0xFF, - 0xF6, 0x9B, 0x12, 0xFF, 0xF4, 0x99, 0x10, 0xFF, 0xF2, 0x97, 0x0E, 0xFF, 0xF2, 0x97, 0x0E, 0xFF, - 0xF8, 0xD4, 0x5C, 0xFF, 0xF8, 0xD3, 0x57, 0xFF, 0xF8, 0xD1, 0x53, 0xFF, 0xF8, 0xD0, 0x51, 0xFF, - 0xF9, 0xCE, 0x4F, 0xFF, 0xF9, 0xCE, 0x4D, 0xFF, 0xF9, 0xCD, 0x4B, 0xFF, 0xFA, 0xCC, 0x4A, 0xFF, - 0xFA, 0xCB, 0x48, 0xFF, 0xFA, 0xCA, 0x47, 0xFF, 0xFA, 0xCA, 0x46, 0xFF, 0xF9, 0xC9, 0x45, 0xFF, - 0xF9, 0xC8, 0x44, 0xFF, 0xF9, 0xC7, 0x43, 0xFF, 0xF9, 0xC6, 0x42, 0xFF, 0xF9, 0xC5, 0x41, 0xFF, - 0xF9, 0xC4, 0x40, 0xFF, 0xF9, 0xC3, 0x3E, 0xFF, 0xF9, 0xC2, 0x3D, 0xFF, 0xF9, 0xC1, 0x3C, 0xFF, - 0xF9, 0xC0, 0x3A, 0xFF, 0xF8, 0xBF, 0x39, 0xFF, 0xF8, 0xBF, 0x38, 0xFF, 0xF8, 0xBF, 0x37, 0xFF, - 0xF8, 0xBE, 0x36, 0xFF, 0xF5, 0xBD, 0x35, 0xFF, 0xF3, 0xBB, 0x34, 0xFF, 0xF7, 0xB9, 0x34, 0xFF, - 0xFA, 0xB7, 0x34, 0xFF, 0xFF, 0xB5, 0x22, 0xFF, 0xFE, 0xB4, 0x2E, 0xFF, 0xE6, 0xB9, 0x4D, 0xFF, - 0xCD, 0xBF, 0x6B, 0xFF, 0xC5, 0xB1, 0x27, 0xFF, 0x7C, 0xBB, 0x6C, 0xFF, 0x48, 0xBD, 0x89, 0xFF, - 0x15, 0xBE, 0xA6, 0xFF, 0x08, 0xBF, 0xB9, 0xFF, 0x00, 0xBF, 0xCB, 0xFF, 0x3D, 0xC4, 0xDA, 0xFF, - 0x20, 0xCA, 0xBA, 0xFF, 0x3E, 0xC6, 0xAD, 0xFF, 0x53, 0xBB, 0x99, 0xFF, 0x8A, 0xAC, 0x59, 0xFF, - 0xC3, 0xAA, 0x35, 0xFF, 0xFF, 0xB3, 0x03, 0xFF, 0xFF, 0xA6, 0x15, 0xFF, 0xFF, 0xA4, 0x20, 0xFF, - 0xFA, 0xA0, 0x19, 0xFF, 0xF9, 0xA2, 0x1B, 0xFF, 0xF8, 0xA4, 0x1C, 0xFF, 0xF7, 0xA2, 0x1B, 0xFF, - 0xF6, 0xA1, 0x19, 0xFF, 0xF6, 0xA0, 0x18, 0xFF, 0xF7, 0xA0, 0x17, 0xFF, 0xF7, 0x9F, 0x16, 0xFF, - 0xF7, 0x9F, 0x15, 0xFF, 0xF7, 0x9E, 0x14, 0xFF, 0xF6, 0x9D, 0x14, 0xFF, 0xF6, 0x9C, 0x13, 0xFF, - 0xF6, 0x9B, 0x12, 0xFF, 0xF4, 0x9A, 0x10, 0xFF, 0xF3, 0x98, 0x0F, 0xFF, 0xF3, 0x98, 0x0F, 0xFF, - 0xF6, 0xD2, 0x53, 0xFF, 0xF7, 0xD1, 0x52, 0xFF, 0xF8, 0xD0, 0x51, 0xFF, 0xF8, 0xCF, 0x4F, 0xFF, - 0xF9, 0xCE, 0x4E, 0xFF, 0xF9, 0xCE, 0x4C, 0xFF, 0xF9, 0xCD, 0x4A, 0xFF, 0xF9, 0xCC, 0x48, 0xFF, - 0xF9, 0xCB, 0x46, 0xFF, 0xF9, 0xCA, 0x46, 0xFF, 0xF9, 0xC9, 0x45, 0xFF, 0xF9, 0xC8, 0x44, 0xFF, - 0xF9, 0xC8, 0x43, 0xFF, 0xF9, 0xC7, 0x42, 0xFF, 0xF9, 0xC6, 0x41, 0xFF, 0xF9, 0xC5, 0x41, 0xFF, - 0xF9, 0xC4, 0x40, 0xFF, 0xF9, 0xC3, 0x3E, 0xFF, 0xF9, 0xC2, 0x3D, 0xFF, 0xF9, 0xC1, 0x3B, 0xFF, - 0xF9, 0xC0, 0x3A, 0xFF, 0xF9, 0xBF, 0x38, 0xFF, 0xF8, 0xBF, 0x37, 0xFF, 0xF8, 0xBE, 0x36, 0xFF, - 0xF8, 0xBE, 0x35, 0xFF, 0xF4, 0xBC, 0x36, 0xFF, 0xEF, 0xBA, 0x37, 0xFF, 0xF5, 0xB7, 0x35, 0xFF, - 0xFC, 0xB5, 0x34, 0xFF, 0xF8, 0xB5, 0x2B, 0xFF, 0xF5, 0xB6, 0x22, 0xFF, 0xFA, 0xB5, 0x25, 0xFF, - 0xFF, 0xB3, 0x28, 0xFF, 0xFF, 0xB5, 0x28, 0xFF, 0xFF, 0xB7, 0x28, 0xFF, 0xFF, 0xB4, 0x1E, 0xFF, - 0xFE, 0xB2, 0x14, 0xFF, 0xF6, 0xAD, 0x20, 0xFF, 0xFE, 0xB9, 0x3C, 0xFF, 0xF0, 0xCB, 0x5A, 0xFF, - 0xFA, 0xBE, 0x41, 0xFF, 0xFC, 0xB5, 0x29, 0xFF, 0xFE, 0xAD, 0x11, 0xFF, 0xFC, 0xAC, 0x17, 0xFF, - 0xFA, 0xAB, 0x1D, 0xFF, 0xFD, 0xA9, 0x1D, 0xFF, 0xFF, 0xA7, 0x1D, 0xFF, 0xFA, 0xA7, 0x1B, 0xFF, - 0xF4, 0xA8, 0x18, 0xFF, 0xF8, 0xA6, 0x18, 0xFF, 0xFC, 0xA4, 0x17, 0xFF, 0xFA, 0xA2, 0x19, 0xFF, - 0xF7, 0xA1, 0x1A, 0xFF, 0xF7, 0xA0, 0x19, 0xFF, 0xF7, 0xA0, 0x17, 0xFF, 0xF7, 0x9F, 0x16, 0xFF, - 0xF7, 0x9F, 0x15, 0xFF, 0xF7, 0x9E, 0x14, 0xFF, 0xF6, 0x9D, 0x13, 0xFF, 0xF6, 0x9C, 0x13, 0xFF, - 0xF5, 0x9B, 0x12, 0xFF, 0xF4, 0x9A, 0x11, 0xFF, 0xF3, 0x99, 0x10, 0xFF, 0xF3, 0x99, 0x10, 0xFF, - 0xF7, 0xD1, 0x54, 0xFF, 0xF8, 0xD0, 0x52, 0xFF, 0xF8, 0xD0, 0x51, 0xFF, 0xF9, 0xCF, 0x4F, 0xFF, - 0xF9, 0xCF, 0x4E, 0xFF, 0xF9, 0xCE, 0x4B, 0xFF, 0xF9, 0xCD, 0x49, 0xFF, 0xF9, 0xCC, 0x47, 0xFF, - 0xF8, 0xCA, 0x45, 0xFF, 0xF8, 0xCA, 0x44, 0xFF, 0xF8, 0xC9, 0x44, 0xFF, 0xF9, 0xC8, 0x43, 0xFF, - 0xF9, 0xC7, 0x42, 0xFF, 0xF9, 0xC7, 0x42, 0xFF, 0xF9, 0xC6, 0x41, 0xFF, 0xF9, 0xC5, 0x40, 0xFF, - 0xF9, 0xC4, 0x40, 0xFF, 0xF9, 0xC3, 0x3E, 0xFF, 0xF9, 0xC2, 0x3C, 0xFF, 0xF9, 0xC1, 0x3B, 0xFF, - 0xF9, 0xC0, 0x39, 0xFF, 0xF9, 0xBF, 0x38, 0xFF, 0xF8, 0xBE, 0x36, 0xFF, 0xF8, 0xBE, 0x35, 0xFF, - 0xF8, 0xBD, 0x34, 0xFF, 0xF6, 0xBC, 0x34, 0xFF, 0xF4, 0xBA, 0x35, 0xFF, 0xF8, 0xB8, 0x34, 0xFF, - 0xFB, 0xB6, 0x33, 0xFF, 0xF9, 0xB6, 0x2D, 0xFF, 0xF6, 0xB6, 0x28, 0xFF, 0xF8, 0xB5, 0x29, 0xFF, - 0xFA, 0xB4, 0x29, 0xFF, 0xFB, 0xB4, 0x29, 0xFF, 0xFC, 0xB5, 0x29, 0xFF, 0xF5, 0xB2, 0x29, 0xFF, - 0xEF, 0xAF, 0x29, 0xFF, 0xF5, 0xA9, 0x1A, 0xFF, 0xD9, 0xCE, 0x9A, 0xFF, 0xE8, 0xCF, 0x6C, 0xFF, - 0xE3, 0xC6, 0x73, 0xFF, 0xDD, 0xC9, 0x7F, 0xFF, 0xFB, 0xAD, 0x18, 0xFF, 0xF9, 0xAC, 0x1B, 0xFF, - 0xF7, 0xAB, 0x1F, 0xFF, 0xF9, 0xA9, 0x1E, 0xFF, 0xFB, 0xA7, 0x1D, 0xFF, 0xF8, 0xA7, 0x1C, 0xFF, - 0xF6, 0xA6, 0x1A, 0xFF, 0xF8, 0xA5, 0x19, 0xFF, 0xFA, 0xA3, 0x19, 0xFF, 0xF9, 0xA2, 0x1A, 0xFF, - 0xF8, 0xA1, 0x1A, 0xFF, 0xF8, 0xA1, 0x19, 0xFF, 0xF8, 0xA0, 0x18, 0xFF, 0xF7, 0x9F, 0x16, 0xFF, - 0xF7, 0x9F, 0x15, 0xFF, 0xF7, 0x9E, 0x14, 0xFF, 0xF6, 0x9D, 0x13, 0xFF, 0xF6, 0x9C, 0x12, 0xFF, - 0xF5, 0x9B, 0x11, 0xFF, 0xF5, 0x9A, 0x11, 0xFF, 0xF4, 0x9A, 0x10, 0xFF, 0xF4, 0x9A, 0x10, 0xFF, - 0xF9, 0xD0, 0x54, 0xFF, 0xF9, 0xCF, 0x52, 0xFF, 0xF9, 0xCF, 0x51, 0xFF, 0xFA, 0xCF, 0x4F, 0xFF, - 0xFA, 0xCF, 0x4D, 0xFF, 0xF9, 0xCE, 0x4A, 0xFF, 0xF9, 0xCC, 0x48, 0xFF, 0xF8, 0xCB, 0x46, 0xFF, - 0xF8, 0xCA, 0x43, 0xFF, 0xF8, 0xC9, 0x43, 0xFF, 0xF8, 0xC9, 0x43, 0xFF, 0xF8, 0xC8, 0x42, 0xFF, - 0xF8, 0xC7, 0x42, 0xFF, 0xF8, 0xC7, 0x41, 0xFF, 0xF9, 0xC6, 0x41, 0xFF, 0xF9, 0xC5, 0x40, 0xFF, - 0xF9, 0xC4, 0x40, 0xFF, 0xF9, 0xC3, 0x3E, 0xFF, 0xF9, 0xC2, 0x3C, 0xFF, 0xF9, 0xC1, 0x3A, 0xFF, - 0xF9, 0xBF, 0x38, 0xFF, 0xF9, 0xBF, 0x37, 0xFF, 0xF9, 0xBE, 0x36, 0xFF, 0xF8, 0xBE, 0x34, 0xFF, - 0xF8, 0xBD, 0x33, 0xFF, 0xF9, 0xBC, 0x33, 0xFF, 0xF9, 0xBA, 0x32, 0xFF, 0xFA, 0xB9, 0x32, 0xFF, - 0xFB, 0xB7, 0x31, 0xFF, 0xF9, 0xB6, 0x30, 0xFF, 0xF8, 0xB6, 0x2E, 0xFF, 0xF6, 0xB5, 0x2C, 0xFF, - 0xF4, 0xB4, 0x2A, 0xFF, 0xF5, 0xB3, 0x2A, 0xFF, 0xF6, 0xB2, 0x2A, 0xFF, 0xF9, 0xB2, 0x29, 0xFF, - 0xFB, 0xB2, 0x28, 0xFF, 0xF6, 0xB2, 0x30, 0xFF, 0xFD, 0xA8, 0x11, 0xFF, 0xE1, 0xD3, 0x7E, 0xFF, - 0xE6, 0xBB, 0x58, 0xFF, 0xFB, 0xAA, 0x15, 0xFF, 0xF7, 0xAD, 0x1F, 0xFF, 0xF6, 0xAB, 0x1F, 0xFF, - 0xF5, 0xAA, 0x20, 0xFF, 0xF6, 0xA9, 0x1F, 0xFF, 0xF6, 0xA7, 0x1E, 0xFF, 0xF7, 0xA6, 0x1D, 0xFF, - 0xF8, 0xA5, 0x1B, 0xFF, 0xF8, 0xA4, 0x1B, 0xFF, 0xF8, 0xA3, 0x1B, 0xFF, 0xF8, 0xA2, 0x1B, 0xFF, - 0xF9, 0xA1, 0x1A, 0xFF, 0xF8, 0xA1, 0x19, 0xFF, 0xF8, 0xA0, 0x18, 0xFF, 0xF8, 0x9F, 0x16, 0xFF, - 0xF7, 0x9F, 0x15, 0xFF, 0xF7, 0x9E, 0x14, 0xFF, 0xF6, 0x9D, 0x13, 0xFF, 0xF6, 0x9C, 0x12, 0xFF, - 0xF5, 0x9A, 0x11, 0xFF, 0xF5, 0x9A, 0x11, 0xFF, 0xF5, 0x9A, 0x11, 0xFF, 0xF5, 0x9A, 0x11, 0xFF, - 0xF9, 0xD0, 0x54, 0xFF, 0xF9, 0xCF, 0x52, 0xFF, 0xF9, 0xCF, 0x51, 0xFF, 0xFA, 0xCF, 0x4F, 0xFF, - 0xFA, 0xCF, 0x4D, 0xFF, 0xF9, 0xCE, 0x4A, 0xFF, 0xF9, 0xCC, 0x48, 0xFF, 0xF8, 0xCB, 0x46, 0xFF, - 0xF8, 0xCA, 0x43, 0xFF, 0xF8, 0xC9, 0x43, 0xFF, 0xF8, 0xC9, 0x43, 0xFF, 0xF8, 0xC8, 0x42, 0xFF, - 0xF8, 0xC7, 0x42, 0xFF, 0xF8, 0xC7, 0x41, 0xFF, 0xF9, 0xC6, 0x41, 0xFF, 0xF9, 0xC5, 0x40, 0xFF, - 0xF9, 0xC4, 0x40, 0xFF, 0xF9, 0xC3, 0x3E, 0xFF, 0xF9, 0xC2, 0x3C, 0xFF, 0xF9, 0xC1, 0x3A, 0xFF, - 0xF9, 0xBF, 0x38, 0xFF, 0xF9, 0xBF, 0x37, 0xFF, 0xF9, 0xBE, 0x36, 0xFF, 0xF8, 0xBE, 0x34, 0xFF, - 0xF8, 0xBD, 0x33, 0xFF, 0xF9, 0xBC, 0x33, 0xFF, 0xF9, 0xBA, 0x32, 0xFF, 0xFA, 0xB9, 0x32, 0xFF, - 0xFB, 0xB7, 0x31, 0xFF, 0xF9, 0xB6, 0x30, 0xFF, 0xF8, 0xB6, 0x2E, 0xFF, 0xF6, 0xB5, 0x2C, 0xFF, - 0xF4, 0xB4, 0x2A, 0xFF, 0xF5, 0xB3, 0x2A, 0xFF, 0xF6, 0xB2, 0x2A, 0xFF, 0xF8, 0xB2, 0x2A, 0xFF, - 0xFA, 0xB1, 0x29, 0xFF, 0xF4, 0xB5, 0x2D, 0xFF, 0xF5, 0xB4, 0x1D, 0xFF, 0xFF, 0x9B, 0x23, 0xFF, - 0xF2, 0xB5, 0x1F, 0xFF, 0xFB, 0xAB, 0x0B, 0xFF, 0xF6, 0xAC, 0x1E, 0xFF, 0xF6, 0xAB, 0x1F, 0xFF, - 0xF5, 0xAA, 0x20, 0xFF, 0xF6, 0xA9, 0x1F, 0xFF, 0xF6, 0xA7, 0x1E, 0xFF, 0xF7, 0xA6, 0x1D, 0xFF, - 0xF8, 0xA5, 0x1B, 0xFF, 0xF8, 0xA4, 0x1B, 0xFF, 0xF8, 0xA3, 0x1B, 0xFF, 0xF8, 0xA2, 0x1B, 0xFF, - 0xF9, 0xA1, 0x1A, 0xFF, 0xF8, 0xA1, 0x19, 0xFF, 0xF8, 0xA0, 0x18, 0xFF, 0xF8, 0x9F, 0x16, 0xFF, - 0xF7, 0x9F, 0x15, 0xFF, 0xF7, 0x9E, 0x14, 0xFF, 0xF6, 0x9D, 0x13, 0xFF, 0xF6, 0x9C, 0x12, 0xFF, - 0xF5, 0x9A, 0x11, 0xFF, 0xF5, 0x9A, 0x11, 0xFF, 0xF5, 0x9A, 0x11, 0xFF, 0xF5, 0x9A, 0x11, 0xFF, - 0xF9, 0xD0, 0x54, 0xFF, 0xF9, 0xCF, 0x52, 0xFF, 0xF9, 0xCF, 0x51, 0xFF, 0xFA, 0xCF, 0x4F, 0xFF, - 0xFA, 0xCF, 0x4D, 0xFF, 0xF9, 0xCE, 0x4A, 0xFF, 0xF9, 0xCC, 0x48, 0xFF, 0xF8, 0xCB, 0x46, 0xFF, - 0xF8, 0xCA, 0x43, 0xFF, 0xF8, 0xC9, 0x43, 0xFF, 0xF8, 0xC9, 0x43, 0xFF, 0xF8, 0xC8, 0x42, 0xFF, - 0xF8, 0xC7, 0x42, 0xFF, 0xF8, 0xC7, 0x41, 0xFF, 0xF9, 0xC6, 0x41, 0xFF, 0xF9, 0xC5, 0x40, 0xFF, - 0xF9, 0xC4, 0x40, 0xFF, 0xF9, 0xC3, 0x3E, 0xFF, 0xF9, 0xC2, 0x3C, 0xFF, 0xF9, 0xC1, 0x3A, 0xFF, - 0xF9, 0xBF, 0x38, 0xFF, 0xF9, 0xBF, 0x37, 0xFF, 0xF9, 0xBE, 0x36, 0xFF, 0xF8, 0xBE, 0x34, 0xFF, - 0xF8, 0xBD, 0x33, 0xFF, 0xF9, 0xBC, 0x33, 0xFF, 0xF9, 0xBA, 0x32, 0xFF, 0xFA, 0xB9, 0x32, 0xFF, - 0xFB, 0xB7, 0x31, 0xFF, 0xF9, 0xB6, 0x30, 0xFF, 0xF8, 0xB6, 0x2E, 0xFF, 0xF6, 0xB5, 0x2C, 0xFF, - 0xF4, 0xB4, 0x2A, 0xFF, 0xF5, 0xB3, 0x2A, 0xFF, 0xF6, 0xB2, 0x2A, 0xFF, 0xF7, 0xB2, 0x2A, 0xFF, - 0xF8, 0xB1, 0x2A, 0xFF, 0xF9, 0xAE, 0x21, 0xFF, 0xFA, 0xAC, 0x18, 0xFF, 0xF6, 0xAD, 0x1E, 0xFF, - 0xF3, 0xAE, 0x23, 0xFF, 0xF4, 0xAC, 0x20, 0xFF, 0xF5, 0xAB, 0x1D, 0xFF, 0xF5, 0xAA, 0x1E, 0xFF, - 0xF5, 0xAA, 0x20, 0xFF, 0xF6, 0xA9, 0x1F, 0xFF, 0xF6, 0xA7, 0x1E, 0xFF, 0xF7, 0xA6, 0x1D, 0xFF, - 0xF8, 0xA5, 0x1B, 0xFF, 0xF8, 0xA4, 0x1B, 0xFF, 0xF8, 0xA3, 0x1B, 0xFF, 0xF8, 0xA2, 0x1B, 0xFF, - 0xF9, 0xA1, 0x1A, 0xFF, 0xF8, 0xA1, 0x19, 0xFF, 0xF8, 0xA0, 0x18, 0xFF, 0xF8, 0x9F, 0x16, 0xFF, - 0xF7, 0x9F, 0x15, 0xFF, 0xF7, 0x9E, 0x14, 0xFF, 0xF6, 0x9D, 0x13, 0xFF, 0xF6, 0x9C, 0x12, 0xFF, - 0xF5, 0x9A, 0x11, 0xFF, 0xF5, 0x9A, 0x11, 0xFF, 0xF5, 0x9A, 0x11, 0xFF, 0xF5, 0x9A, 0x11, 0xFF, - 0xF9, 0xD0, 0x54, 0xFF, 0xF9, 0xCF, 0x52, 0xFF, 0xF9, 0xCF, 0x51, 0xFF, 0xFA, 0xCF, 0x4F, 0xFF, - 0xFA, 0xCF, 0x4D, 0xFF, 0xF9, 0xCE, 0x4A, 0xFF, 0xF9, 0xCC, 0x48, 0xFF, 0xF8, 0xCB, 0x46, 0xFF, - 0xF8, 0xCA, 0x43, 0xFF, 0xF8, 0xC9, 0x43, 0xFF, 0xF8, 0xC9, 0x43, 0xFF, 0xF8, 0xC8, 0x42, 0xFF, - 0xF8, 0xC7, 0x42, 0xFF, 0xF8, 0xC7, 0x41, 0xFF, 0xF9, 0xC6, 0x41, 0xFF, 0xF9, 0xC5, 0x40, 0xFF, - 0xF9, 0xC4, 0x40, 0xFF, 0xF9, 0xC3, 0x3E, 0xFF, 0xF9, 0xC2, 0x3C, 0xFF, 0xF9, 0xC1, 0x3A, 0xFF, - 0xF9, 0xBF, 0x38, 0xFF, 0xF9, 0xBF, 0x37, 0xFF, 0xF9, 0xBE, 0x36, 0xFF, 0xF8, 0xBE, 0x34, 0xFF, - 0xF8, 0xBD, 0x33, 0xFF, 0xF9, 0xBC, 0x33, 0xFF, 0xF9, 0xBA, 0x32, 0xFF, 0xFA, 0xB9, 0x32, 0xFF, - 0xFB, 0xB7, 0x31, 0xFF, 0xF9, 0xB6, 0x30, 0xFF, 0xF8, 0xB6, 0x2E, 0xFF, 0xF6, 0xB5, 0x2C, 0xFF, - 0xF4, 0xB4, 0x2A, 0xFF, 0xF5, 0xB3, 0x2A, 0xFF, 0xF6, 0xB2, 0x2A, 0xFF, 0xF7, 0xB2, 0x2A, 0xFF, - 0xF8, 0xB1, 0x2A, 0xFF, 0xF9, 0xAE, 0x21, 0xFF, 0xFA, 0xAC, 0x18, 0xFF, 0xF6, 0xAD, 0x1E, 0xFF, - 0xF3, 0xAE, 0x23, 0xFF, 0xF4, 0xAC, 0x20, 0xFF, 0xF5, 0xAB, 0x1D, 0xFF, 0xF5, 0xAA, 0x1E, 0xFF, - 0xF5, 0xAA, 0x20, 0xFF, 0xF6, 0xA9, 0x1F, 0xFF, 0xF6, 0xA7, 0x1E, 0xFF, 0xF7, 0xA6, 0x1D, 0xFF, - 0xF8, 0xA5, 0x1B, 0xFF, 0xF8, 0xA4, 0x1B, 0xFF, 0xF8, 0xA3, 0x1B, 0xFF, 0xF8, 0xA2, 0x1B, 0xFF, - 0xF9, 0xA1, 0x1A, 0xFF, 0xF8, 0xA1, 0x19, 0xFF, 0xF8, 0xA0, 0x18, 0xFF, 0xF8, 0x9F, 0x16, 0xFF, - 0xF7, 0x9F, 0x15, 0xFF, 0xF7, 0x9E, 0x14, 0xFF, 0xF6, 0x9D, 0x13, 0xFF, 0xF6, 0x9C, 0x12, 0xFF, - 0xF5, 0x9A, 0x11, 0xFF, 0xF5, 0x9A, 0x11, 0xFF, 0xF5, 0x9A, 0x11, 0xFF, 0xF5, 0x9A, 0x11, 0xFF, + 0xDE, 0x9B, 0x22, 0xFF, 0xE0, 0x9D, 0x23, 0xFF, 0xE1, 0x9E, 0x25, 0xFF, 0xE8, 0xA5, 0x2B, 0xFF, 0xDF, 0x9B, 0x22, + 0xFF, 0xDF, 0x9C, 0x22, 0xFF, 0xE0, 0x9C, 0x22, 0xFF, 0xDF, 0x9C, 0x22, 0xFF, 0xDF, 0x9B, 0x21, 0xFF, 0xDF, 0x9B, + 0x22, 0xFF, 0xDF, 0x9B, 0x23, 0xFF, 0xDF, 0x9B, 0x23, 0xFF, 0xDF, 0x9C, 0x24, 0xFF, 0xE2, 0x9B, 0x21, 0xFF, 0xE5, + 0x9B, 0x1D, 0xFF, 0xE1, 0x9A, 0x1F, 0xFF, 0xDD, 0x98, 0x21, 0xFF, 0xDE, 0x99, 0x21, 0xFF, 0xDE, 0x99, 0x20, 0xFF, + 0xDF, 0x9A, 0x1F, 0xFF, 0xE0, 0x9A, 0x1F, 0xFF, 0xE0, 0x99, 0x1E, 0xFF, 0xDF, 0x99, 0x1D, 0xFF, 0xDF, 0x98, 0x1C, + 0xFF, 0xDF, 0x97, 0x1B, 0xFF, 0xDC, 0x95, 0x1E, 0xFF, 0xD8, 0x93, 0x21, 0xFF, 0xDC, 0x93, 0x1F, 0xFF, 0xE0, 0x93, + 0x1C, 0xFF, 0xDC, 0x94, 0x1A, 0xFF, 0xD8, 0x95, 0x18, 0xFF, 0xDB, 0x91, 0x1C, 0xFF, 0xDE, 0x8E, 0x1F, 0xFF, 0xDE, + 0x90, 0x1A, 0xFF, 0xDE, 0x93, 0x16, 0xFF, 0xDF, 0x92, 0x17, 0xFF, 0xDF, 0x91, 0x18, 0xFF, 0xDF, 0x90, 0x17, 0xFF, + 0xDE, 0x8F, 0x17, 0xFF, 0xDE, 0x8E, 0x16, 0xFF, 0xDE, 0x8C, 0x15, 0xFF, 0xDD, 0x8C, 0x14, 0xFF, 0xDB, 0x8C, 0x13, + 0xFF, 0xDA, 0x8C, 0x12, 0xFF, 0xD9, 0x8C, 0x11, 0xFF, 0xD9, 0x8B, 0x11, 0xFF, 0xD9, 0x89, 0x11, 0xFF, 0xDA, 0x88, + 0x11, 0xFF, 0xDA, 0x87, 0x12, 0xFF, 0xDA, 0x86, 0x11, 0xFF, 0xDA, 0x86, 0x10, 0xFF, 0xD9, 0x85, 0x10, 0xFF, 0xD9, + 0x84, 0x0F, 0xFF, 0xD9, 0x83, 0x0E, 0xFF, 0xD8, 0x83, 0x0E, 0xFF, 0xD8, 0x82, 0x0D, 0xFF, 0xD8, 0x81, 0x0C, 0xFF, + 0xD7, 0x80, 0x0C, 0xFF, 0xD7, 0x7F, 0x0D, 0xFF, 0xD6, 0x7F, 0x0D, 0xFF, 0xD6, 0x7E, 0x0D, 0xFF, 0xD6, 0x7E, 0x0D, + 0xFF, 0xD6, 0x7E, 0x0D, 0xFF, 0xD6, 0x7E, 0x0D, 0xFF, 0xE0, 0x9F, 0x24, 0xFF, 0xE1, 0xA0, 0x27, 0xFF, 0xE2, 0xA2, + 0x29, 0xFF, 0xE5, 0xA4, 0x2A, 0xFF, 0xE0, 0x9E, 0x24, 0xFF, 0xE1, 0x9E, 0x24, 0xFF, 0xE1, 0x9E, 0x24, 0xFF, 0xE1, + 0x9E, 0x23, 0xFF, 0xE1, 0x9D, 0x23, 0xFF, 0xE1, 0x9D, 0x23, 0xFF, 0xE1, 0x9D, 0x24, 0xFF, 0xE1, 0x9D, 0x24, 0xFF, + 0xE1, 0x9D, 0x25, 0xFF, 0xE1, 0x9D, 0x23, 0xFF, 0xE2, 0x9C, 0x22, 0xFF, 0xE0, 0x9C, 0x22, 0xFF, 0xDF, 0x9B, 0x22, + 0xFF, 0xE0, 0x9B, 0x21, 0xFF, 0xE1, 0x9B, 0x20, 0xFF, 0xE1, 0x9B, 0x20, 0xFF, 0xE1, 0x9B, 0x1F, 0xFF, 0xDF, 0x9A, + 0x20, 0xFF, 0xDE, 0x99, 0x20, 0xFF, 0xDE, 0x98, 0x1E, 0xFF, 0xDF, 0x97, 0x1D, 0xFF, 0xDF, 0x97, 0x1D, 0xFF, 0xDF, + 0x96, 0x1E, 0xFF, 0xDF, 0x95, 0x1D, 0xFF, 0xDE, 0x94, 0x1C, 0xFF, 0xDF, 0x94, 0x1C, 0xFF, 0xE0, 0x93, 0x1B, 0xFF, + 0xE0, 0x93, 0x1C, 0xFF, 0xE0, 0x92, 0x1D, 0xFF, 0xDE, 0x93, 0x1B, 0xFF, 0xDC, 0x94, 0x19, 0xFF, 0xDE, 0x93, 0x19, + 0xFF, 0xE0, 0x92, 0x19, 0xFF, 0xDF, 0x91, 0x19, 0xFF, 0xDF, 0x90, 0x18, 0xFF, 0xDF, 0x8F, 0x17, 0xFF, 0xDF, 0x8E, + 0x17, 0xFF, 0xDE, 0x8E, 0x16, 0xFF, 0xDD, 0x8D, 0x15, 0xFF, 0xDC, 0x8D, 0x13, 0xFF, 0xDB, 0x8D, 0x12, 0xFF, 0xDB, + 0x8C, 0x12, 0xFF, 0xDB, 0x8B, 0x12, 0xFF, 0xDB, 0x89, 0x12, 0xFF, 0xDB, 0x88, 0x12, 0xFF, 0xDB, 0x87, 0x11, 0xFF, + 0xDB, 0x87, 0x11, 0xFF, 0xDB, 0x86, 0x10, 0xFF, 0xDB, 0x85, 0x0F, 0xFF, 0xDA, 0x84, 0x0E, 0xFF, 0xD9, 0x83, 0x0D, + 0xFF, 0xD9, 0x83, 0x0D, 0xFF, 0xD9, 0x83, 0x0D, 0xFF, 0xD8, 0x82, 0x0D, 0xFF, 0xD8, 0x81, 0x0D, 0xFF, 0xD7, 0x80, + 0x0D, 0xFF, 0xD7, 0x7F, 0x0D, 0xFF, 0xD7, 0x7F, 0x0D, 0xFF, 0xD7, 0x7F, 0x0D, 0xFF, 0xD7, 0x7F, 0x0D, 0xFF, 0xE2, + 0xA2, 0x27, 0xFF, 0xE3, 0xA4, 0x2A, 0xFF, 0xE3, 0xA5, 0x2D, 0xFF, 0xE3, 0xA3, 0x29, 0xFF, 0xE2, 0xA1, 0x26, 0xFF, + 0xE2, 0xA1, 0x25, 0xFF, 0xE2, 0xA1, 0x25, 0xFF, 0xE2, 0xA0, 0x25, 0xFF, 0xE2, 0xA0, 0x24, 0xFF, 0xE2, 0x9F, 0x25, + 0xFF, 0xE3, 0x9F, 0x25, 0xFF, 0xE3, 0x9E, 0x25, 0xFF, 0xE3, 0x9E, 0x26, 0xFF, 0xE1, 0x9E, 0x26, 0xFF, 0xDE, 0x9D, + 0x27, 0xFF, 0xDF, 0x9D, 0x24, 0xFF, 0xE1, 0x9E, 0x22, 0xFF, 0xE2, 0x9D, 0x21, 0xFF, 0xE3, 0x9D, 0x20, 0xFF, 0xE3, + 0x9D, 0x20, 0xFF, 0xE3, 0x9C, 0x20, 0xFF, 0xDF, 0x9B, 0x22, 0xFF, 0xDC, 0x99, 0x24, 0xFF, 0xDE, 0x98, 0x21, 0xFF, + 0xE0, 0x98, 0x1F, 0xFF, 0xE3, 0x99, 0x1D, 0xFF, 0xE7, 0x9A, 0x1B, 0xFF, 0xE1, 0x98, 0x1B, 0xFF, 0xDC, 0x96, 0x1C, + 0xFF, 0xE2, 0x94, 0x1D, 0xFF, 0xE9, 0x92, 0x1F, 0xFF, 0xE5, 0x94, 0x1D, 0xFF, 0xE2, 0x96, 0x1A, 0xFF, 0xDE, 0x95, + 0x1B, 0xFF, 0xDA, 0x95, 0x1D, 0xFF, 0xDD, 0x94, 0x1C, 0xFF, 0xE0, 0x93, 0x1A, 0xFF, 0xE0, 0x92, 0x1A, 0xFF, 0xE0, + 0x91, 0x19, 0xFF, 0xDF, 0x91, 0x19, 0xFF, 0xDF, 0x90, 0x18, 0xFF, 0xDE, 0x8F, 0x17, 0xFF, 0xDE, 0x8F, 0x16, 0xFF, + 0xDD, 0x8E, 0x15, 0xFF, 0xDD, 0x8E, 0x14, 0xFF, 0xDC, 0x8D, 0x14, 0xFF, 0xDC, 0x8C, 0x13, 0xFF, 0xDC, 0x8B, 0x12, + 0xFF, 0xDB, 0x8A, 0x12, 0xFF, 0xDC, 0x89, 0x11, 0xFF, 0xDC, 0x88, 0x11, 0xFF, 0xDC, 0x87, 0x10, 0xFF, 0xDC, 0x86, + 0x10, 0xFF, 0xDB, 0x84, 0x0E, 0xFF, 0xD9, 0x83, 0x0D, 0xFF, 0xD9, 0x83, 0x0E, 0xFF, 0xDA, 0x84, 0x0E, 0xFF, 0xD9, + 0x83, 0x0E, 0xFF, 0xD9, 0x82, 0x0E, 0xFF, 0xD8, 0x80, 0x0D, 0xFF, 0xD8, 0x7F, 0x0D, 0xFF, 0xD8, 0x7F, 0x0D, 0xFF, + 0xD8, 0x7F, 0x0D, 0xFF, 0xD8, 0x7F, 0x0D, 0xFF, 0xE4, 0xA6, 0x29, 0xFF, 0xE3, 0xA7, 0x2D, 0xFF, 0xE3, 0xA8, 0x30, + 0xFF, 0xE3, 0xA6, 0x2C, 0xFF, 0xE3, 0xA3, 0x27, 0xFF, 0xE3, 0xA3, 0x27, 0xFF, 0xE3, 0xA3, 0x26, 0xFF, 0xE4, 0xA2, + 0x26, 0xFF, 0xE4, 0xA2, 0x26, 0xFF, 0xE4, 0xA1, 0x26, 0xFF, 0xE4, 0xA1, 0x26, 0xFF, 0xE5, 0xA0, 0x26, 0xFF, 0xE5, + 0x9F, 0x26, 0xFF, 0xE4, 0xA0, 0x25, 0xFF, 0xE4, 0xA0, 0x24, 0xFF, 0xE3, 0x9F, 0x24, 0xFF, 0xE3, 0x9E, 0x24, 0xFF, + 0xE4, 0x9E, 0x23, 0xFF, 0xE6, 0x9F, 0x21, 0xFF, 0xE5, 0x9F, 0x21, 0xFF, 0xE3, 0x9E, 0x22, 0xFF, 0xE5, 0xA4, 0x13, + 0xFF, 0xE7, 0x9F, 0x1A, 0xFF, 0xE7, 0x9F, 0x15, 0xFF, 0xE7, 0xA0, 0x10, 0xFF, 0xEF, 0x9F, 0x11, 0xFF, 0xF7, 0x9E, + 0x12, 0xFF, 0xEC, 0x99, 0x1A, 0xFF, 0xE1, 0x9A, 0x17, 0xFF, 0xE3, 0x9C, 0x14, 0xFF, 0xE5, 0x98, 0x1C, 0xFF, 0xE6, + 0x97, 0x1C, 0xFF, 0xE6, 0x96, 0x1B, 0xFF, 0xDB, 0x98, 0x1B, 0xFF, 0xDF, 0x96, 0x1C, 0xFF, 0xE0, 0x95, 0x1C, 0xFF, + 0xE1, 0x94, 0x1B, 0xFF, 0xE1, 0x93, 0x1B, 0xFF, 0xE0, 0x93, 0x1A, 0xFF, 0xE0, 0x92, 0x1A, 0xFF, 0xE0, 0x92, 0x19, + 0xFF, 0xDF, 0x91, 0x18, 0xFF, 0xDF, 0x90, 0x18, 0xFF, 0xDF, 0x8F, 0x17, 0xFF, 0xDF, 0x8F, 0x16, 0xFF, 0xDE, 0x8E, + 0x15, 0xFF, 0xDD, 0x8D, 0x14, 0xFF, 0xDD, 0x8C, 0x13, 0xFF, 0xDC, 0x8B, 0x12, 0xFF, 0xDC, 0x8A, 0x12, 0xFF, 0xDD, + 0x89, 0x11, 0xFF, 0xDD, 0x87, 0x11, 0xFF, 0xDE, 0x86, 0x10, 0xFF, 0xDC, 0x85, 0x0F, 0xFF, 0xD9, 0x83, 0x0D, 0xFF, + 0xDA, 0x84, 0x0E, 0xFF, 0xDB, 0x85, 0x0F, 0xFF, 0xDA, 0x84, 0x0F, 0xFF, 0xDA, 0x83, 0x0E, 0xFF, 0xDA, 0x81, 0x0E, + 0xFF, 0xD9, 0x80, 0x0D, 0xFF, 0xD9, 0x80, 0x0D, 0xFF, 0xD9, 0x80, 0x0D, 0xFF, 0xD9, 0x80, 0x0D, 0xFF, 0xE7, 0xAA, + 0x2C, 0xFF, 0xE4, 0xAA, 0x30, 0xFF, 0xE2, 0xAA, 0x33, 0xFF, 0xE3, 0xA8, 0x2E, 0xFF, 0xE4, 0xA5, 0x28, 0xFF, 0xE5, + 0xA5, 0x28, 0xFF, 0xE5, 0xA5, 0x28, 0xFF, 0xE5, 0xA4, 0x28, 0xFF, 0xE5, 0xA4, 0x27, 0xFF, 0xE6, 0xA3, 0x27, 0xFF, + 0xE6, 0xA2, 0x27, 0xFF, 0xE7, 0xA1, 0x27, 0xFF, 0xE7, 0xA1, 0x27, 0xFF, 0xE8, 0xA2, 0x25, 0xFF, 0xE9, 0xA3, 0x22, + 0xFF, 0xE7, 0xA0, 0x24, 0xFF, 0xE6, 0x9E, 0x27, 0xFF, 0xE7, 0x9F, 0x25, 0xFF, 0xE8, 0xA0, 0x22, 0xFF, 0xF4, 0xA3, + 0x18, 0xFF, 0xFF, 0xA7, 0x0D, 0xFF, 0xDD, 0xA5, 0x1A, 0xFF, 0xBA, 0x8D, 0x54, 0xFF, 0x9C, 0x83, 0x6E, 0xFF, 0x7D, + 0x79, 0x88, 0xFF, 0x7B, 0x79, 0x8C, 0xFF, 0x79, 0x79, 0x91, 0xFF, 0x94, 0x7A, 0x7E, 0xFF, 0xAF, 0x87, 0x55, 0xFF, + 0xD6, 0x9B, 0x21, 0xFF, 0xFD, 0xA3, 0x04, 0xFF, 0xF4, 0x9D, 0x0F, 0xFF, 0xEB, 0x96, 0x1B, 0xFF, 0xD9, 0x9A, 0x1B, + 0xFF, 0xE4, 0x98, 0x1B, 0xFF, 0xE3, 0x96, 0x1C, 0xFF, 0xE2, 0x95, 0x1C, 0xFF, 0xE2, 0x94, 0x1C, 0xFF, 0xE1, 0x94, + 0x1B, 0xFF, 0xE1, 0x94, 0x1B, 0xFF, 0xE0, 0x93, 0x1B, 0xFF, 0xE0, 0x92, 0x1A, 0xFF, 0xE0, 0x91, 0x19, 0xFF, 0xE1, + 0x90, 0x18, 0xFF, 0xE1, 0x8F, 0x18, 0xFF, 0xE0, 0x8F, 0x16, 0xFF, 0xDF, 0x8E, 0x15, 0xFF, 0xDE, 0x8D, 0x14, 0xFF, + 0xDC, 0x8C, 0x12, 0xFF, 0xDD, 0x8B, 0x12, 0xFF, 0xDE, 0x8A, 0x12, 0xFF, 0xDF, 0x88, 0x11, 0xFF, 0xE0, 0x87, 0x11, + 0xFF, 0xDD, 0x85, 0x0F, 0xFF, 0xDA, 0x83, 0x0D, 0xFF, 0xDB, 0x85, 0x0E, 0xFF, 0xDC, 0x87, 0x10, 0xFF, 0xDC, 0x85, + 0x0F, 0xFF, 0xDB, 0x84, 0x0F, 0xFF, 0xDB, 0x82, 0x0E, 0xFF, 0xDA, 0x81, 0x0D, 0xFF, 0xDA, 0x81, 0x0D, 0xFF, 0xDA, + 0x81, 0x0D, 0xFF, 0xDA, 0x81, 0x0D, 0xFF, 0xE4, 0xAA, 0x30, 0xFF, 0xE8, 0xAF, 0x35, 0xFF, 0xE3, 0xAB, 0x33, 0xFF, + 0xE5, 0xA9, 0x2F, 0xFF, 0xE6, 0xA8, 0x2A, 0xFF, 0xE8, 0xAD, 0x35, 0xFF, 0xE7, 0xA6, 0x25, 0xFF, 0xE7, 0xA7, 0x28, + 0xFF, 0xE7, 0xA8, 0x2B, 0xFF, 0xE5, 0xA6, 0x2D, 0xFF, 0xE4, 0xA4, 0x2E, 0xFF, 0xE6, 0xA4, 0x2B, 0xFF, 0xE8, 0xA4, + 0x29, 0xFF, 0xE5, 0xA4, 0x2A, 0xFF, 0xE1, 0xA5, 0x2C, 0xFF, 0xEF, 0xA9, 0x10, 0xFF, 0xF6, 0xAD, 0x12, 0xFF, 0xF8, + 0xA2, 0x22, 0xFF, 0xA5, 0x91, 0x60, 0xFF, 0x5C, 0x75, 0xA5, 0xFF, 0x14, 0x59, 0xEB, 0xFF, 0x0C, 0x48, 0xFF, 0xFF, + 0x03, 0x55, 0xFA, 0xFF, 0x0F, 0x59, 0xFF, 0xFF, 0x1A, 0x5D, 0xFF, 0xFF, 0x16, 0x60, 0xFF, 0xFF, 0x11, 0x64, 0xF9, + 0xFF, 0x0F, 0x54, 0xFF, 0xFF, 0x0C, 0x4A, 0xFF, 0xFF, 0x17, 0x49, 0xFA, 0xFF, 0x23, 0x47, 0xF5, 0xFF, 0x7E, 0x72, + 0x8D, 0xFF, 0xD9, 0x9D, 0x26, 0xFF, 0xFF, 0xA1, 0x05, 0xFF, 0xE1, 0x96, 0x1D, 0xFF, 0xE9, 0x98, 0x17, 0xFF, 0xE3, + 0x97, 0x1C, 0xFF, 0xE3, 0x97, 0x1A, 0xFF, 0xE4, 0x97, 0x18, 0xFF, 0xE3, 0x96, 0x19, 0xFF, 0xE2, 0x94, 0x1B, 0xFF, + 0xE1, 0x93, 0x1A, 0xFF, 0xE0, 0x93, 0x19, 0xFF, 0xE1, 0x92, 0x18, 0xFF, 0xE1, 0x91, 0x17, 0xFF, 0xE0, 0x90, 0x16, + 0xFF, 0xDF, 0x8F, 0x15, 0xFF, 0xDE, 0x8E, 0x14, 0xFF, 0xDD, 0x8D, 0x13, 0xFF, 0xDE, 0x8D, 0x13, 0xFF, 0xDF, 0x8C, + 0x13, 0xFF, 0xDF, 0x8A, 0x12, 0xFF, 0xE0, 0x89, 0x10, 0xFF, 0xDD, 0x87, 0x0F, 0xFF, 0xDB, 0x84, 0x0E, 0xFF, 0xDF, + 0x8A, 0x13, 0xFF, 0xDB, 0x87, 0x0F, 0xFF, 0xDC, 0x86, 0x0F, 0xFF, 0xDC, 0x85, 0x0F, 0xFF, 0xDB, 0x84, 0x0E, 0xFF, + 0xDB, 0x82, 0x0D, 0xFF, 0xDB, 0x82, 0x0D, 0xFF, 0xDB, 0x82, 0x0D, 0xFF, 0xDB, 0x82, 0x0D, 0xFF, 0xE2, 0xAB, 0x33, + 0xFF, 0xEB, 0xB3, 0x3B, 0xFF, 0xE5, 0xAC, 0x33, 0xFF, 0xE6, 0xAB, 0x30, 0xFF, 0xE7, 0xAA, 0x2D, 0xFF, 0xEA, 0xB6, + 0x43, 0xFF, 0xEA, 0xA7, 0x23, 0xFF, 0xE9, 0xA9, 0x29, 0xFF, 0xE9, 0xAB, 0x2F, 0xFF, 0xE5, 0xA9, 0x32, 0xFF, 0xE2, + 0xA7, 0x35, 0xFF, 0xE6, 0xA7, 0x30, 0xFF, 0xEA, 0xA8, 0x2A, 0xFF, 0xF0, 0xAA, 0x25, 0xFF, 0xF6, 0xAD, 0x1F, 0xFF, + 0xA7, 0x8A, 0x4D, 0xFF, 0x4C, 0x66, 0xB7, 0xFF, 0x0F, 0x54, 0xFF, 0xFF, 0x0C, 0x64, 0xF7, 0xFF, 0x13, 0x63, 0xF8, + 0xFF, 0x1A, 0x61, 0xF9, 0xFF, 0x1E, 0x67, 0xEF, 0xFF, 0x22, 0x61, 0xFC, 0xFF, 0x25, 0x68, 0xFA, 0xFF, 0x28, 0x6F, + 0xF9, 0xFF, 0x22, 0x70, 0xF5, 0xFF, 0x1B, 0x72, 0xF2, 0xFF, 0x1F, 0x6B, 0xF2, 0xFF, 0x24, 0x64, 0xF1, 0xFF, 0x21, + 0x55, 0xFF, 0xFF, 0x1E, 0x53, 0xFF, 0xFF, 0x16, 0x4B, 0xFF, 0xFF, 0x0E, 0x43, 0xFF, 0xFF, 0x5A, 0x61, 0xB1, 0xFF, + 0xDF, 0x95, 0x1E, 0xFF, 0xF0, 0x9A, 0x12, 0xFF, 0xE5, 0x9A, 0x1B, 0xFF, 0xE5, 0x9A, 0x18, 0xFF, 0xE6, 0x9A, 0x14, + 0xFF, 0xE5, 0x98, 0x17, 0xFF, 0xE4, 0x95, 0x1B, 0xFF, 0xE2, 0x95, 0x1A, 0xFF, 0xE0, 0x94, 0x19, 0xFF, 0xE1, 0x93, + 0x18, 0xFF, 0xE2, 0x92, 0x17, 0xFF, 0xE1, 0x91, 0x16, 0xFF, 0xE0, 0x90, 0x16, 0xFF, 0xDF, 0x8F, 0x15, 0xFF, 0xDE, + 0x8F, 0x14, 0xFF, 0xDF, 0x8E, 0x14, 0xFF, 0xE1, 0x8E, 0x14, 0xFF, 0xE0, 0x8C, 0x12, 0xFF, 0xE0, 0x8A, 0x10, 0xFF, + 0xDE, 0x88, 0x10, 0xFF, 0xDC, 0x86, 0x10, 0xFF, 0xE3, 0x8E, 0x17, 0xFF, 0xDB, 0x87, 0x0D, 0xFF, 0xDB, 0x86, 0x0E, + 0xFF, 0xDC, 0x86, 0x0F, 0xFF, 0xDC, 0x85, 0x0E, 0xFF, 0xDB, 0x83, 0x0E, 0xFF, 0xDB, 0x83, 0x0E, 0xFF, 0xDB, 0x83, + 0x0E, 0xFF, 0xDB, 0x83, 0x0E, 0xFF, 0xEA, 0xB0, 0x36, 0xFF, 0xEF, 0xB3, 0x36, 0xFF, 0xED, 0xAE, 0x2E, 0xFF, 0xEC, + 0xAD, 0x2C, 0xFF, 0xEB, 0xAD, 0x2A, 0xFF, 0xEF, 0xB3, 0x40, 0xFF, 0xE9, 0xAA, 0x28, 0xFF, 0xE7, 0xAB, 0x2B, 0xFF, + 0xE6, 0xAB, 0x2F, 0xFF, 0xE6, 0xAA, 0x30, 0xFF, 0xE5, 0xAA, 0x31, 0xFF, 0xE6, 0xA9, 0x2E, 0xFF, 0xE7, 0xA9, 0x2B, + 0xFF, 0xEB, 0xA7, 0x24, 0xFF, 0x5F, 0x6A, 0x93, 0xFF, 0x05, 0x3D, 0xFF, 0xFF, 0x17, 0x56, 0xF9, 0xFF, 0x12, 0x72, + 0xE2, 0xFF, 0x29, 0x72, 0xF8, 0xFF, 0x27, 0x74, 0xF7, 0xFF, 0x25, 0x76, 0xF6, 0xFF, 0x28, 0x76, 0xF1, 0xFF, 0x2A, + 0x70, 0xF8, 0xFF, 0x2D, 0x77, 0xF8, 0xFF, 0x30, 0x7D, 0xF9, 0xFF, 0x2D, 0x7F, 0xF7, 0xFF, 0x2A, 0x81, 0xF5, 0xFF, + 0x2B, 0x7B, 0xF5, 0xFF, 0x2C, 0x75, 0xF5, 0xFF, 0x2B, 0x6A, 0xFD, 0xFF, 0x2A, 0x64, 0xFA, 0xFF, 0x2C, 0x5D, 0xF5, + 0xFF, 0x2E, 0x57, 0xF0, 0xFF, 0x10, 0x48, 0xFF, 0xFF, 0x0E, 0x45, 0xFF, 0xFF, 0x7F, 0x76, 0x80, 0xFF, 0xF0, 0xA7, + 0x02, 0xFF, 0xEA, 0x95, 0x24, 0xFF, 0xE3, 0x9A, 0x19, 0xFF, 0xE4, 0x98, 0x1B, 0xFF, 0xE4, 0x95, 0x1D, 0xFF, 0xE2, + 0x95, 0x1B, 0xFF, 0xDF, 0x96, 0x19, 0xFF, 0xE1, 0x94, 0x18, 0xFF, 0xE2, 0x93, 0x17, 0xFF, 0xE2, 0x92, 0x16, 0xFF, + 0xE1, 0x92, 0x16, 0xFF, 0xE0, 0x91, 0x15, 0xFF, 0xDF, 0x90, 0x15, 0xFF, 0xE0, 0x90, 0x15, 0xFF, 0xE2, 0x91, 0x15, + 0xFF, 0xE1, 0x8E, 0x12, 0xFF, 0xDF, 0x8C, 0x0F, 0xFF, 0xDF, 0x8B, 0x12, 0xFF, 0xDF, 0x8A, 0x14, 0xFF, 0xE2, 0x8D, + 0x15, 0xFF, 0xDC, 0x89, 0x0E, 0xFF, 0xDC, 0x88, 0x0E, 0xFF, 0xDD, 0x87, 0x0F, 0xFF, 0xDC, 0x86, 0x0E, 0xFF, 0xDC, + 0x85, 0x0E, 0xFF, 0xDC, 0x85, 0x0E, 0xFF, 0xDC, 0x85, 0x0E, 0xFF, 0xDC, 0x85, 0x0E, 0xFF, 0xE6, 0xC0, 0x5F, 0xFF, + 0xE8, 0xBE, 0x57, 0xFF, 0xE9, 0xBB, 0x4F, 0xFF, 0xE6, 0xBA, 0x4E, 0xFF, 0xE3, 0xB9, 0x4D, 0xFF, 0xED, 0xB6, 0x50, + 0xFF, 0xE7, 0xAE, 0x2D, 0xFF, 0xE6, 0xAC, 0x2E, 0xFF, 0xE4, 0xAB, 0x2E, 0xFF, 0xE6, 0xAC, 0x2E, 0xFF, 0xE8, 0xAD, + 0x2E, 0xFF, 0xE7, 0xAB, 0x2D, 0xFF, 0xE5, 0xAA, 0x2C, 0xFF, 0xFF, 0xB2, 0x15, 0xFF, 0x10, 0x42, 0xEB, 0xFF, 0x16, + 0x4F, 0xF1, 0xFF, 0x1C, 0x5C, 0xF7, 0xFF, 0x23, 0x71, 0xF8, 0xFF, 0x29, 0x85, 0xF9, 0xFF, 0x2D, 0x88, 0xF6, 0xFF, + 0x30, 0x8B, 0xF3, 0xFF, 0x31, 0x85, 0xF4, 0xFF, 0x33, 0x7F, 0xF4, 0xFF, 0x35, 0x85, 0xF6, 0xFF, 0x37, 0x8B, 0xF9, + 0xFF, 0x38, 0x8D, 0xF8, 0xFF, 0x3A, 0x90, 0xF7, 0xFF, 0x37, 0x8B, 0xF8, 0xFF, 0x35, 0x86, 0xF8, 0xFF, 0x35, 0x7E, + 0xF7, 0xFF, 0x35, 0x75, 0xF6, 0xFF, 0x33, 0x6D, 0xF7, 0xFF, 0x31, 0x64, 0xF7, 0xFF, 0x31, 0x5E, 0xF8, 0xFF, 0x30, + 0x57, 0xF8, 0xFF, 0x25, 0x51, 0xFF, 0xFF, 0x36, 0x51, 0xF5, 0xFF, 0xFD, 0xA4, 0x03, 0xFF, 0xE1, 0x9A, 0x1E, 0xFF, + 0xE3, 0x98, 0x1E, 0xFF, 0xE5, 0x96, 0x1E, 0xFF, 0xE2, 0x96, 0x1C, 0xFF, 0xDF, 0x97, 0x19, 0xFF, 0xE1, 0x96, 0x18, + 0xFF, 0xE3, 0x95, 0x17, 0xFF, 0xE2, 0x94, 0x16, 0xFF, 0xE1, 0x93, 0x16, 0xFF, 0xE0, 0x92, 0x16, 0xFF, 0xE0, 0x91, + 0x15, 0xFF, 0xE2, 0x92, 0x16, 0xFF, 0xE4, 0x93, 0x16, 0xFF, 0xE1, 0x90, 0x12, 0xFF, 0xDF, 0x8E, 0x0F, 0xFF, 0xE1, + 0x8D, 0x14, 0xFF, 0xE3, 0x8D, 0x18, 0xFF, 0xE0, 0x8C, 0x13, 0xFF, 0xDE, 0x8B, 0x0F, 0xFF, 0xDD, 0x89, 0x0F, 0xFF, + 0xDD, 0x88, 0x0E, 0xFF, 0xDD, 0x87, 0x0E, 0xFF, 0xDC, 0x86, 0x0E, 0xFF, 0xDC, 0x86, 0x0E, 0xFF, 0xDC, 0x86, 0x0E, + 0xFF, 0xDC, 0x86, 0x0E, 0xFF, 0xED, 0xB6, 0x3C, 0xFF, 0xEE, 0xB3, 0x35, 0xFF, 0xEF, 0xB1, 0x2F, 0xFF, 0xED, 0xB1, + 0x2F, 0xFF, 0xEC, 0xB0, 0x2F, 0xFF, 0xEE, 0xB0, 0x38, 0xFF, 0xE9, 0xAE, 0x2D, 0xFF, 0xE7, 0xAD, 0x2F, 0xFF, 0xE6, + 0xAD, 0x30, 0xFF, 0xE8, 0xAE, 0x2F, 0xFF, 0xEA, 0xB0, 0x2D, 0xFF, 0xEC, 0xAD, 0x30, 0xFF, 0xEE, 0xAF, 0x28, 0xFF, + 0xC8, 0xA9, 0x2F, 0xFF, 0x04, 0x3D, 0xFF, 0xFF, 0x19, 0x50, 0xFA, 0xFF, 0x21, 0x5F, 0xF8, 0xFF, 0x28, 0x73, 0xF7, + 0xFF, 0x2F, 0x87, 0xF7, 0xFF, 0x37, 0x95, 0xFA, 0xFF, 0x37, 0x9B, 0xF5, 0xFF, 0x3A, 0x96, 0xF5, 0xFF, 0x3D, 0x92, + 0xF5, 0xFF, 0x3F, 0x94, 0xF7, 0xFF, 0x41, 0x96, 0xF9, 0xFF, 0x43, 0x99, 0xF9, 0xFF, 0x46, 0x9D, 0xF9, 0xFF, 0x44, + 0x98, 0xF8, 0xFF, 0x43, 0x94, 0xF7, 0xFF, 0x42, 0x8D, 0xF8, 0xFF, 0x41, 0x86, 0xF9, 0xFF, 0x3F, 0x7D, 0xF9, 0xFF, + 0x3C, 0x73, 0xF9, 0xFF, 0x38, 0x70, 0xF7, 0xFF, 0x35, 0x6C, 0xF4, 0xFF, 0x21, 0x60, 0xFF, 0xFF, 0x62, 0x6C, 0xBE, + 0xFF, 0xEF, 0x9D, 0x12, 0xFF, 0xE8, 0x9A, 0x21, 0xFF, 0xED, 0x99, 0x1C, 0xFF, 0xE3, 0x9B, 0x17, 0xFF, 0xF0, 0x98, + 0x13, 0xFF, 0xE0, 0x94, 0x1B, 0xFF, 0xE1, 0x96, 0x1A, 0xFF, 0xE3, 0x97, 0x19, 0xFF, 0xE4, 0x96, 0x18, 0xFF, 0xE5, + 0x95, 0x17, 0xFF, 0xE3, 0x94, 0x18, 0xFF, 0xE2, 0x93, 0x19, 0xFF, 0xE0, 0x91, 0x16, 0xFF, 0xDE, 0x90, 0x14, 0xFF, + 0xE1, 0x91, 0x15, 0xFF, 0xE5, 0x92, 0x16, 0xFF, 0xE3, 0x90, 0x14, 0xFF, 0xE2, 0x8D, 0x11, 0xFF, 0xE2, 0x8D, 0x10, + 0xFF, 0xE3, 0x8D, 0x0F, 0xFF, 0xDE, 0x8A, 0x10, 0xFF, 0xD8, 0x88, 0x11, 0xFF, 0xE1, 0x87, 0x0E, 0xFF, 0xDC, 0x89, + 0x0B, 0xFF, 0xE0, 0x85, 0x10, 0xFF, 0xE4, 0x87, 0x09, 0xFF, 0xE4, 0x87, 0x09, 0xFF, 0xE8, 0xB5, 0x3F, 0xFF, 0xE9, + 0xB3, 0x3B, 0xFF, 0xEA, 0xB2, 0x36, 0xFF, 0xE9, 0xB1, 0x37, 0xFF, 0xE8, 0xB1, 0x37, 0xFF, 0xE9, 0xAF, 0x32, 0xFF, + 0xEA, 0xAE, 0x2D, 0xFF, 0xE9, 0xAE, 0x30, 0xFF, 0xE8, 0xAF, 0x32, 0xFF, 0xEA, 0xB1, 0x30, 0xFF, 0xEC, 0xB4, 0x2D, + 0xFF, 0xF1, 0xAE, 0x34, 0xFF, 0xF6, 0xB4, 0x24, 0xFF, 0x86, 0x7E, 0x8D, 0xFF, 0x00, 0x4E, 0xF6, 0xFF, 0x1D, 0x5C, + 0xEC, 0xFF, 0x25, 0x63, 0xF9, 0xFF, 0x2D, 0x76, 0xF7, 0xFF, 0x35, 0x89, 0xF4, 0xFF, 0x41, 0xA2, 0xFD, 0xFF, 0x3E, + 0xAB, 0xF6, 0xFF, 0x43, 0xA8, 0xF6, 0xFF, 0x47, 0xA4, 0xF7, 0xFF, 0x4A, 0xA3, 0xF8, 0xFF, 0x4C, 0xA1, 0xFA, 0xFF, + 0x4E, 0xA5, 0xFA, 0xFF, 0x51, 0xAA, 0xFB, 0xFF, 0x52, 0xA6, 0xF9, 0xFF, 0x52, 0xA2, 0xF7, 0xFF, 0x4F, 0x9C, 0xFA, + 0xFF, 0x4D, 0x97, 0xFD, 0xFF, 0x4A, 0x8D, 0xFC, 0xFF, 0x47, 0x83, 0xFB, 0xFF, 0x40, 0x82, 0xF6, 0xFF, 0x39, 0x82, + 0xF1, 0xFF, 0x2B, 0x72, 0xF4, 0xFF, 0xAB, 0x8C, 0x71, 0xFF, 0xF0, 0x99, 0x16, 0xFF, 0xEF, 0x99, 0x25, 0xFF, 0xE8, + 0x97, 0x25, 0xFF, 0xC5, 0x9A, 0x26, 0xFF, 0xF0, 0x96, 0x16, 0xFF, 0xE2, 0x91, 0x1C, 0xFF, 0xE2, 0x96, 0x1B, 0xFF, + 0xE2, 0x9A, 0x1B, 0xFF, 0xE5, 0x99, 0x19, 0xFF, 0xE8, 0x98, 0x18, 0xFF, 0xE6, 0x96, 0x1A, 0xFF, 0xE4, 0x95, 0x1C, + 0xFF, 0xDF, 0x91, 0x17, 0xFF, 0xD9, 0x8D, 0x13, 0xFF, 0xE2, 0x92, 0x18, 0xFF, 0xEA, 0x97, 0x1E, 0xFF, 0xE5, 0x92, + 0x14, 0xFF, 0xE1, 0x8D, 0x0B, 0xFF, 0xE5, 0x8E, 0x0D, 0xFF, 0xE9, 0x8F, 0x10, 0xFF, 0xDE, 0x8B, 0x12, 0xFF, 0xD4, + 0x88, 0x14, 0xFF, 0xE6, 0x87, 0x0E, 0xFF, 0xDC, 0x8C, 0x08, 0xFF, 0xE4, 0x84, 0x11, 0xFF, 0xEC, 0x88, 0x03, 0xFF, + 0xEC, 0x88, 0x03, 0xFF, 0xEA, 0xB6, 0x3D, 0xFF, 0xEA, 0xB5, 0x3A, 0xFF, 0xEB, 0xB4, 0x38, 0xFF, 0xEB, 0xB3, 0x37, + 0xFF, 0xEA, 0xB3, 0x37, 0xFF, 0xEB, 0xB2, 0x34, 0xFF, 0xEB, 0xB1, 0x32, 0xFF, 0xEB, 0xB1, 0x33, 0xFF, 0xEA, 0xB0, + 0x34, 0xFF, 0xE9, 0xB3, 0x32, 0xFF, 0xE8, 0xB5, 0x2F, 0xFF, 0xF0, 0xB0, 0x34, 0xFF, 0xF8, 0xB6, 0x22, 0xFF, 0x44, + 0x60, 0xC5, 0xFF, 0x0B, 0x53, 0xF9, 0xFF, 0x21, 0x63, 0xF2, 0xFF, 0x29, 0x6F, 0xF6, 0xFF, 0x2F, 0x7D, 0xF6, 0xFF, + 0x35, 0x8A, 0xF7, 0xFF, 0x41, 0xA1, 0xFA, 0xFF, 0x45, 0xAF, 0xF6, 0xFF, 0x4F, 0xB4, 0xFA, 0xFF, 0x50, 0xB0, 0xF6, + 0xFF, 0x53, 0xAE, 0xF8, 0xFF, 0x56, 0xAC, 0xFA, 0xFF, 0x59, 0xB2, 0xFC, 0xFF, 0x5D, 0xB7, 0xFD, 0xFF, 0x5F, 0xB3, + 0xFA, 0xFF, 0x61, 0xAF, 0xF6, 0xFF, 0x5D, 0xAC, 0xF9, 0xFF, 0x59, 0xA9, 0xFD, 0xFF, 0x55, 0x9F, 0xFB, 0xFF, 0x50, + 0x94, 0xF8, 0xFF, 0x4A, 0x91, 0xF7, 0xFF, 0x44, 0x8D, 0xF5, 0xFF, 0x22, 0x7D, 0xFF, 0xFF, 0xEF, 0xA5, 0x1A, 0xFF, + 0xF3, 0x9E, 0x12, 0xFF, 0xF1, 0x96, 0x28, 0xFF, 0xB0, 0x9F, 0x22, 0xFF, 0x00, 0x96, 0x6C, 0xFF, 0x82, 0x9B, 0x3B, + 0xFF, 0xF8, 0x9D, 0x16, 0xFF, 0xF4, 0x9B, 0x15, 0xFF, 0xE2, 0x9C, 0x14, 0xFF, 0xE4, 0x99, 0x15, 0xFF, 0xE6, 0x96, + 0x17, 0xFF, 0xE5, 0x95, 0x18, 0xFF, 0xE4, 0x93, 0x1A, 0xFF, 0xE2, 0x93, 0x18, 0xFF, 0xE0, 0x92, 0x16, 0xFF, 0xE6, + 0x98, 0x1C, 0xFF, 0xE4, 0x95, 0x19, 0xFF, 0xE4, 0x92, 0x16, 0xFF, 0xE5, 0x8F, 0x12, 0xFF, 0xEB, 0x8C, 0x12, 0xFF, + 0xE3, 0x8B, 0x12, 0xFF, 0xE3, 0x87, 0x00, 0xFF, 0xF4, 0x7B, 0x00, 0xFF, 0xD3, 0x86, 0x1A, 0xFF, 0xF0, 0x8C, 0x0C, + 0xFF, 0xE2, 0x8E, 0x00, 0xFF, 0xEA, 0x84, 0x0D, 0xFF, 0xF1, 0x86, 0x07, 0xFF, 0xEC, 0xB7, 0x3B, 0xFF, 0xEC, 0xB6, + 0x3A, 0xFF, 0xEC, 0xB6, 0x39, 0xFF, 0xEC, 0xB5, 0x38, 0xFF, 0xED, 0xB5, 0x37, 0xFF, 0xEC, 0xB4, 0x37, 0xFF, 0xEC, + 0xB4, 0x37, 0xFF, 0xEC, 0xB3, 0x36, 0xFF, 0xEC, 0xB2, 0x36, 0xFF, 0xE8, 0xB4, 0x33, 0xFF, 0xE4, 0xB5, 0x31, 0xFF, + 0xEF, 0xB1, 0x34, 0xFF, 0xF9, 0xB8, 0x21, 0xFF, 0x02, 0x41, 0xFD, 0xFF, 0x1E, 0x58, 0xFC, 0xFF, 0x25, 0x6A, 0xF8, + 0xFF, 0x2C, 0x7C, 0xF3, 0xFF, 0x31, 0x84, 0xF6, 0xFF, 0x35, 0x8B, 0xF9, 0xFF, 0x41, 0xA0, 0xF7, 0xFF, 0x4C, 0xB4, + 0xF6, 0xFF, 0x5B, 0xC0, 0xFE, 0xFF, 0x59, 0xBC, 0xF6, 0xFF, 0x5D, 0xBA, 0xF8, 0xFF, 0x60, 0xB7, 0xFA, 0xFF, 0x64, + 0xBE, 0xFD, 0xFF, 0x69, 0xC4, 0xFF, 0xFF, 0x6C, 0xC0, 0xFA, 0xFF, 0x6F, 0xBD, 0xF5, 0xFF, 0x6A, 0xBC, 0xF9, 0xFF, + 0x65, 0xBB, 0xFD, 0xFF, 0x60, 0xB1, 0xFA, 0xFF, 0x5A, 0xA6, 0xF6, 0xFF, 0x54, 0x9F, 0xF8, 0xFF, 0x4F, 0x98, 0xFA, + 0xFF, 0x6E, 0x94, 0xDF, 0xFF, 0xFB, 0xA6, 0x07, 0xFF, 0xDA, 0x9C, 0x24, 0xFF, 0xF2, 0x9F, 0x14, 0xFF, 0x71, 0xA1, + 0x4A, 0xFF, 0x0D, 0xA9, 0x68, 0xFF, 0x06, 0xA3, 0x61, 0xFF, 0x1B, 0x98, 0x5A, 0xFF, 0x9B, 0x96, 0x33, 0xFF, 0xFE, + 0x99, 0x0D, 0xFF, 0xF1, 0x96, 0x11, 0xFF, 0xE4, 0x94, 0x16, 0xFF, 0xE4, 0x93, 0x17, 0xFF, 0xE4, 0x91, 0x18, 0xFF, + 0xE5, 0x94, 0x19, 0xFF, 0xE6, 0x98, 0x1A, 0xFF, 0xEA, 0x9D, 0x1F, 0xFF, 0xDE, 0x93, 0x15, 0xFF, 0xE3, 0x92, 0x17, + 0xFF, 0xE8, 0x91, 0x1A, 0xFF, 0xEB, 0x94, 0x1F, 0xFF, 0xD1, 0x9D, 0x25, 0xFF, 0x72, 0xF7, 0xD0, 0xFF, 0x95, 0xF2, + 0xC1, 0xFF, 0xF0, 0x83, 0x00, 0xFF, 0xA0, 0x81, 0x17, 0xFF, 0x2E, 0x7E, 0x3B, 0xFF, 0xCB, 0x87, 0x16, 0xFF, 0xDA, + 0x8A, 0x0B, 0xFF, 0xEC, 0xB8, 0x3D, 0xFF, 0xED, 0xB8, 0x3C, 0xFF, 0xED, 0xB7, 0x3B, 0xFF, 0xED, 0xB7, 0x3A, 0xFF, + 0xED, 0xB6, 0x39, 0xFF, 0xED, 0xB6, 0x39, 0xFF, 0xED, 0xB6, 0x39, 0xFF, 0xED, 0xB6, 0x39, 0xFF, 0xED, 0xB6, 0x39, + 0xFF, 0xEC, 0xB4, 0x37, 0xFF, 0xEB, 0xB2, 0x34, 0xFF, 0xF2, 0xAB, 0x34, 0xFF, 0xB3, 0x95, 0x6D, 0xFF, 0x00, 0x46, + 0xFF, 0xFF, 0x20, 0x64, 0xF7, 0xFF, 0x28, 0x73, 0xF6, 0xFF, 0x30, 0x81, 0xF5, 0xFF, 0x37, 0x8B, 0xF6, 0xFF, 0x3D, + 0x94, 0xF8, 0xFF, 0x48, 0xA6, 0xF8, 0xFF, 0x53, 0xB7, 0xF7, 0xFF, 0x60, 0xC2, 0xFB, 0xFF, 0x65, 0xC4, 0xF7, 0xFF, + 0x69, 0xC3, 0xF9, 0xFF, 0x6D, 0xC2, 0xFA, 0xFF, 0x72, 0xC6, 0xFA, 0xFF, 0x77, 0xCB, 0xFA, 0xFF, 0x7A, 0xCB, 0xFB, + 0xFF, 0x7D, 0xCB, 0xFC, 0xFF, 0x7A, 0xC8, 0xFA, 0xFF, 0x77, 0xC5, 0xF8, 0xFF, 0x72, 0xBC, 0xF9, 0xFF, 0x6C, 0xB4, + 0xFA, 0xFF, 0x68, 0xB0, 0xF6, 0xFF, 0x56, 0xAA, 0xFD, 0xFF, 0xA5, 0xA0, 0x93, 0xFF, 0xF3, 0xA1, 0x13, 0xFF, 0xEF, + 0x9C, 0x21, 0xFF, 0xFF, 0x9D, 0x19, 0xFF, 0x23, 0xC1, 0x71, 0xFF, 0x25, 0xB7, 0x79, 0xFF, 0x1D, 0xB2, 0x71, 0xFF, + 0x23, 0xAA, 0x6A, 0xFF, 0x25, 0xA0, 0x66, 0xFF, 0x18, 0x9A, 0x63, 0xFF, 0x72, 0x9C, 0x41, 0xFF, 0xCB, 0x9F, 0x1E, + 0xFF, 0xFF, 0x93, 0x18, 0xFF, 0xF1, 0x98, 0x13, 0xFF, 0xF4, 0x9C, 0x18, 0xFF, 0xF7, 0xA0, 0x1D, 0xFF, 0xFF, 0x9C, + 0x1B, 0xFF, 0xF6, 0x93, 0x10, 0xFF, 0xF1, 0x93, 0x11, 0xFF, 0xEC, 0x93, 0x13, 0xFF, 0xFF, 0x83, 0x00, 0xFF, 0xA0, + 0xCB, 0x72, 0xFF, 0x81, 0xF9, 0xCB, 0xFF, 0xAC, 0xFF, 0xD0, 0xFF, 0x45, 0xA0, 0x78, 0xFF, 0x00, 0x77, 0x33, 0xFF, + 0x02, 0x7C, 0x3A, 0xFF, 0xE2, 0x8C, 0x0D, 0xFF, 0xDB, 0x8E, 0x0D, 0xFF, 0xED, 0xBA, 0x3E, 0xFF, 0xED, 0xB9, 0x3D, + 0xFF, 0xED, 0xB9, 0x3C, 0xFF, 0xED, 0xB8, 0x3B, 0xFF, 0xED, 0xB8, 0x3A, 0xFF, 0xED, 0xB8, 0x3B, 0xFF, 0xED, 0xB8, + 0x3B, 0xFF, 0xEE, 0xB8, 0x3C, 0xFF, 0xEE, 0xB9, 0x3C, 0xFF, 0xF0, 0xB4, 0x3A, 0xFF, 0xF2, 0xAE, 0x37, 0xFF, 0xFE, + 0xB3, 0x32, 0xFF, 0x7C, 0x8E, 0xB3, 0xFF, 0x06, 0x58, 0xFF, 0xFF, 0x22, 0x71, 0xF3, 0xFF, 0x2B, 0x7C, 0xF4, 0xFF, + 0x34, 0x86, 0xF6, 0xFF, 0x3D, 0x92, 0xF7, 0xFF, 0x45, 0x9D, 0xF8, 0xFF, 0x4F, 0xAC, 0xF8, 0xFF, 0x5A, 0xBB, 0xF8, + 0xFF, 0x65, 0xC4, 0xF9, 0xFF, 0x70, 0xCC, 0xF9, 0xFF, 0x75, 0xCC, 0xFA, 0xFF, 0x7A, 0xCC, 0xFA, 0xFF, 0x80, 0xCF, + 0xF7, 0xFF, 0x85, 0xD2, 0xF4, 0xFF, 0x89, 0xD5, 0xFB, 0xFF, 0x8C, 0xD9, 0xFF, 0xFF, 0x8B, 0xD3, 0xFA, 0xFF, 0x89, + 0xCE, 0xF2, 0xFF, 0x84, 0xC8, 0xF8, 0xFF, 0x7F, 0xC1, 0xFE, 0xFF, 0x7C, 0xC1, 0xF4, 0xFF, 0x5E, 0xBC, 0xFF, 0xFF, + 0xDB, 0xAB, 0x47, 0xFF, 0xEA, 0x9C, 0x1E, 0xFF, 0xE8, 0xA2, 0x1D, 0xFF, 0xE5, 0xA7, 0x1D, 0xFF, 0x1B, 0xD3, 0x98, + 0xFF, 0x21, 0xCB, 0x8A, 0xFF, 0x26, 0xC3, 0x82, 0xFF, 0x2C, 0xBB, 0x7A, 0xFF, 0x28, 0xB4, 0x75, 0xFF, 0x25, 0xAD, + 0x70, 0xFF, 0x16, 0xAB, 0x6D, 0xFF, 0x08, 0xA9, 0x6A, 0xFF, 0x11, 0xA9, 0x5E, 0xFF, 0x53, 0x9E, 0x51, 0xFF, 0x6D, + 0x9B, 0x47, 0xFF, 0x87, 0x97, 0x3E, 0xFF, 0x91, 0x95, 0x3B, 0xFF, 0x80, 0x98, 0x38, 0xFF, 0x63, 0x96, 0x44, 0xFF, + 0x45, 0x94, 0x4F, 0xFF, 0x3C, 0xB4, 0x82, 0xFF, 0x1B, 0x84, 0x4F, 0xFF, 0x87, 0xE0, 0xAF, 0xFF, 0x82, 0xCC, 0x9E, + 0xFF, 0x11, 0x7F, 0x35, 0xFF, 0x1B, 0x82, 0x42, 0xFF, 0x3B, 0x84, 0x32, 0xFF, 0xF9, 0x92, 0x04, 0xFF, 0xDC, 0x92, + 0x0F, 0xFF, 0xEE, 0xBC, 0x40, 0xFF, 0xED, 0xBB, 0x3F, 0xFF, 0xED, 0xBA, 0x3E, 0xFF, 0xED, 0xBA, 0x3D, 0xFF, 0xEC, + 0xB9, 0x3C, 0xFF, 0xEC, 0xB9, 0x3C, 0xFF, 0xEC, 0xB8, 0x3C, 0xFF, 0xEC, 0xB8, 0x3C, 0xFF, 0xEB, 0xB8, 0x3C, 0xFF, + 0xF0, 0xB3, 0x3F, 0xFF, 0xF4, 0xAF, 0x42, 0xFF, 0xE8, 0xBA, 0x0D, 0xFF, 0x96, 0xB8, 0xFF, 0xFF, 0x4C, 0x81, 0xF6, + 0xFF, 0x22, 0x75, 0xF5, 0xFF, 0x2D, 0x80, 0xF6, 0xFF, 0x38, 0x8B, 0xF7, 0xFF, 0x42, 0x99, 0xF7, 0xFF, 0x4D, 0xA6, + 0xF7, 0xFF, 0x56, 0xB2, 0xF8, 0xFF, 0x5F, 0xBD, 0xF9, 0xFF, 0x6D, 0xC8, 0xF9, 0xFF, 0x7A, 0xD4, 0xFA, 0xFF, 0x81, + 0xD5, 0xFA, 0xFF, 0x88, 0xD7, 0xF9, 0xFF, 0x8D, 0xD8, 0xFA, 0xFF, 0x92, 0xDA, 0xFB, 0xFF, 0xA1, 0xE4, 0xF9, 0xFF, + 0x91, 0xD6, 0xFE, 0xFF, 0x9F, 0xDE, 0xFA, 0xFF, 0x97, 0xDB, 0xF8, 0xFF, 0x93, 0xD5, 0xF9, 0xFF, 0x8F, 0xCF, 0xFB, + 0xFF, 0x85, 0xD1, 0xFF, 0xFF, 0x78, 0xC6, 0xFF, 0xFF, 0xFC, 0x9A, 0x00, 0xFF, 0xF1, 0xA8, 0x26, 0xFF, 0xF8, 0xA4, + 0x1F, 0xFF, 0xA5, 0xBD, 0x53, 0xFF, 0x30, 0xDA, 0xA4, 0xFF, 0x37, 0xD5, 0x9D, 0xFF, 0x3A, 0xD0, 0x97, 0xFF, 0x3D, + 0xCA, 0x90, 0xFF, 0x39, 0xC5, 0x8A, 0xFF, 0x35, 0xBF, 0x84, 0xFF, 0x30, 0xBD, 0x7C, 0xFF, 0x2C, 0xBC, 0x74, 0xFF, + 0x1B, 0xB8, 0x75, 0xFF, 0x27, 0xAF, 0x77, 0xFF, 0x25, 0xAB, 0x72, 0xFF, 0x23, 0xA7, 0x6D, 0xFF, 0x28, 0xA3, 0x6A, + 0xFF, 0x1E, 0xA2, 0x68, 0xFF, 0x19, 0x95, 0x57, 0xFF, 0x45, 0xB7, 0x77, 0xFF, 0x81, 0xF0, 0xBA, 0xFF, 0x4C, 0xAC, + 0x72, 0xFF, 0x14, 0x7B, 0x41, 0xFF, 0x1D, 0x8A, 0x4F, 0xFF, 0x1C, 0x86, 0x42, 0xFF, 0x14, 0x86, 0x49, 0xFF, 0x8B, + 0x86, 0x16, 0xFF, 0xF5, 0x90, 0x0A, 0xFF, 0xE7, 0x8D, 0x15, 0xFF, 0xEF, 0xBE, 0x41, 0xFF, 0xEE, 0xBD, 0x40, 0xFF, + 0xED, 0xBC, 0x3F, 0xFF, 0xED, 0xBB, 0x3E, 0xFF, 0xEC, 0xBA, 0x3D, 0xFF, 0xEB, 0xBA, 0x3D, 0xFF, 0xEA, 0xB9, 0x3C, + 0xFF, 0xE9, 0xB8, 0x3C, 0xFF, 0xE8, 0xB7, 0x3B, 0xFF, 0xF0, 0xB9, 0x39, 0xFF, 0xF7, 0xBA, 0x37, 0xFF, 0xDC, 0xB5, + 0x50, 0xFF, 0x44, 0x96, 0xFF, 0xFF, 0x9C, 0xC4, 0xFE, 0xFF, 0x23, 0x79, 0xF7, 0xFF, 0x30, 0x85, 0xF8, 0xFF, 0x3C, + 0x91, 0xF8, 0xFF, 0x48, 0xA0, 0xF8, 0xFF, 0x55, 0xAF, 0xF7, 0xFF, 0x5D, 0xB7, 0xF8, 0xFF, 0x65, 0xBF, 0xF9, 0xFF, + 0x75, 0xCD, 0xFA, 0xFF, 0x85, 0xDB, 0xFB, 0xFF, 0x8D, 0xDE, 0xFA, 0xFF, 0x95, 0xE1, 0xF9, 0xFF, 0x9A, 0xE1, 0xFD, + 0xFF, 0xA0, 0xE2, 0xFF, 0xFF, 0xA3, 0xE8, 0xFA, 0xFF, 0x6B, 0xBD, 0xFF, 0xFF, 0x9E, 0xDE, 0xFC, 0xFF, 0xA6, 0xE8, + 0xFF, 0xFF, 0xA3, 0xE3, 0xFB, 0xFF, 0xA0, 0xDE, 0xF7, 0xFF, 0x99, 0xD7, 0xFD, 0xFF, 0xAB, 0xBD, 0xB5, 0xFF, 0xF0, + 0x9F, 0x11, 0xFF, 0xE8, 0xA3, 0x1D, 0xFF, 0xFF, 0x9E, 0x19, 0xFF, 0x65, 0xD4, 0x89, 0xFF, 0x45, 0xE1, 0xB0, 0xFF, + 0x4D, 0xDF, 0xB0, 0xFF, 0x4D, 0xDC, 0xAB, 0xFF, 0x4D, 0xD8, 0xA7, 0xFF, 0x49, 0xD5, 0xA0, 0xFF, 0x44, 0xD2, 0x99, + 0xFF, 0x3C, 0xCD, 0x97, 0xFF, 0x34, 0xC9, 0x94, 0xFF, 0x34, 0xC4, 0x8D, 0xFF, 0x33, 0xC0, 0x86, 0xFF, 0x32, 0xBC, + 0x7A, 0xFF, 0x31, 0xB7, 0x6E, 0xFF, 0x2F, 0xB2, 0x6D, 0xFF, 0x2E, 0xAE, 0x6B, 0xFF, 0x3F, 0xB9, 0x7D, 0xFF, 0x30, + 0xA5, 0x6F, 0xFF, 0x4E, 0xB5, 0x7B, 0xFF, 0x20, 0x9A, 0x56, 0xFF, 0x2A, 0x9F, 0x5B, 0xFF, 0x24, 0x93, 0x50, 0xFF, + 0x65, 0xB9, 0x80, 0xFF, 0x1C, 0x99, 0x5F, 0xFF, 0xE2, 0x8F, 0x03, 0xFF, 0xF2, 0x8E, 0x10, 0xFF, 0xF2, 0x88, 0x1B, + 0xFF, 0xEF, 0xBF, 0x43, 0xFF, 0xEE, 0xBE, 0x42, 0xFF, 0xEE, 0xBD, 0x41, 0xFF, 0xEE, 0xBD, 0x40, 0xFF, 0xED, 0xBC, + 0x3F, 0xFF, 0xEC, 0xBB, 0x3F, 0xFF, 0xEB, 0xB9, 0x3F, 0xFF, 0xEC, 0xB9, 0x3D, 0xFF, 0xEE, 0xB8, 0x3C, 0xFF, 0xEB, + 0xB8, 0x37, 0xFF, 0xF6, 0xBC, 0x26, 0xFF, 0x8F, 0x9B, 0x94, 0xFF, 0x37, 0x96, 0xFB, 0xFF, 0x7C, 0xBB, 0xF9, 0xFF, + 0x85, 0xB5, 0xF8, 0xFF, 0x49, 0x99, 0xF6, 0xFF, 0x42, 0x9B, 0xF5, 0xFF, 0x4E, 0xA6, 0xF6, 0xFF, 0x59, 0xB2, 0xF7, + 0xFF, 0x65, 0xBC, 0xF8, 0xFF, 0x72, 0xC6, 0xF9, 0xFF, 0x7F, 0xD3, 0xF9, 0xFF, 0x8D, 0xE0, 0xFA, 0xFF, 0x97, 0xE5, + 0xF9, 0xFF, 0xA1, 0xEB, 0xF8, 0xFF, 0xA6, 0xEA, 0xFE, 0xFF, 0xAA, 0xEA, 0xFF, 0xFF, 0xA8, 0xEE, 0xFC, 0xFF, 0x62, + 0xBA, 0xF9, 0xFF, 0x98, 0xDC, 0xFA, 0xFF, 0xB9, 0xF3, 0xFE, 0xFF, 0xB2, 0xEC, 0xFB, 0xFF, 0xAB, 0xE5, 0xF7, 0xFF, + 0xA2, 0xE4, 0xFE, 0xFF, 0xD1, 0xB0, 0x64, 0xFF, 0xF0, 0x9F, 0x19, 0xFF, 0xE8, 0x9E, 0x26, 0xFF, 0xF2, 0x98, 0x03, + 0xFF, 0x50, 0xEF, 0xE3, 0xFF, 0x57, 0xEE, 0xD5, 0xFF, 0x64, 0xE3, 0xBF, 0xFF, 0x64, 0xE1, 0xBC, 0xFF, 0x64, 0xDF, + 0xB9, 0xFF, 0x5D, 0xDD, 0xB4, 0xFF, 0x56, 0xDB, 0xB0, 0xFF, 0x4E, 0xD7, 0xA9, 0xFF, 0x46, 0xD3, 0xA2, 0xFF, 0x42, + 0xD0, 0x9B, 0xFF, 0x3F, 0xCD, 0x93, 0xFF, 0x3D, 0xC9, 0x8B, 0xFF, 0x3C, 0xC5, 0x84, 0xFF, 0x39, 0xC1, 0x80, 0xFF, + 0x36, 0xBC, 0x7D, 0xFF, 0x45, 0xC7, 0x8A, 0xFF, 0x44, 0xC1, 0x88, 0xFF, 0x2B, 0xA0, 0x62, 0xFF, 0x2B, 0xA9, 0x64, + 0xFF, 0x2D, 0xA3, 0x5E, 0xFF, 0x26, 0x95, 0x4F, 0xFF, 0x98, 0xCE, 0xA4, 0xFF, 0xDC, 0xEA, 0xD8, 0xFF, 0xFF, 0xDC, + 0xB9, 0xFF, 0xF3, 0x9D, 0x38, 0xFF, 0xD3, 0x8F, 0x00, 0xFF, 0xEF, 0xC1, 0x45, 0xFF, 0xEF, 0xC0, 0x44, 0xFF, 0xEF, + 0xBF, 0x43, 0xFF, 0xEF, 0xBE, 0x41, 0xFF, 0xEF, 0xBD, 0x40, 0xFF, 0xED, 0xBC, 0x41, 0xFF, 0xEB, 0xBA, 0x42, 0xFF, + 0xEF, 0xBA, 0x3F, 0xFF, 0xF3, 0xB9, 0x3C, 0xFF, 0xE6, 0xB8, 0x34, 0xFF, 0xF6, 0xBD, 0x16, 0xFF, 0x4F, 0x7F, 0xD8, + 0xFF, 0x46, 0x90, 0xF7, 0xFF, 0x54, 0xA5, 0xF7, 0xFF, 0xBA, 0xDA, 0xFF, 0xFF, 0x4D, 0xA1, 0xF8, 0xFF, 0x49, 0xA5, + 0xF3, 0xFF, 0x53, 0xAD, 0xF4, 0xFF, 0x5D, 0xB5, 0xF6, 0xFF, 0x6E, 0xC0, 0xF8, 0xFF, 0x7F, 0xCC, 0xFA, 0xFF, 0x8A, + 0xD8, 0xF9, 0xFF, 0x95, 0xE4, 0xF8, 0xFF, 0xA1, 0xEC, 0xF8, 0xFF, 0xAE, 0xF4, 0xF7, 0xFF, 0xB2, 0xF3, 0xFE, 0xFF, + 0xB5, 0xF1, 0xFF, 0xFF, 0xAD, 0xF4, 0xFE, 0xFF, 0x59, 0xB6, 0xF3, 0xFF, 0x92, 0xDA, 0xF8, 0xFF, 0xCC, 0xFF, 0xFE, + 0xFF, 0xC1, 0xF6, 0xFA, 0xFF, 0xB6, 0xED, 0xF7, 0xFF, 0xAB, 0xF1, 0xFF, 0xFF, 0xF7, 0xA4, 0x13, 0xFF, 0xEF, 0xA4, + 0x15, 0xFF, 0xE8, 0xA5, 0x18, 0xFF, 0xCD, 0xB4, 0x56, 0xFF, 0x71, 0xF2, 0xF0, 0xFF, 0x84, 0xEF, 0xD4, 0xFF, 0x7B, + 0xE6, 0xCF, 0xFF, 0x7B, 0xE6, 0xCD, 0xFF, 0x7C, 0xE6, 0xCB, 0xFF, 0x71, 0xE5, 0xC9, 0xFF, 0x67, 0xE5, 0xC6, 0xFF, + 0x5F, 0xE1, 0xBC, 0xFF, 0x57, 0xDD, 0xB1, 0xFF, 0x51, 0xDB, 0xA8, 0xFF, 0x4B, 0xDA, 0xA0, 0xFF, 0x48, 0xD7, 0x9C, + 0xFF, 0x46, 0xD4, 0x99, 0xFF, 0x42, 0xCF, 0x94, 0xFF, 0x3E, 0xCA, 0x8F, 0xFF, 0x3B, 0xC4, 0x88, 0xFF, 0x39, 0xBE, + 0x81, 0xFF, 0x30, 0xB3, 0x72, 0xFF, 0x27, 0xA8, 0x62, 0xFF, 0x27, 0xA0, 0x58, 0xFF, 0x27, 0x97, 0x4E, 0xFF, 0x79, + 0xC4, 0x9F, 0xFF, 0xF7, 0xFB, 0xFF, 0xFF, 0xF4, 0xD2, 0x7F, 0xFF, 0xE1, 0x8E, 0x03, 0xFF, 0xE1, 0x89, 0x0E, 0xFF, + 0xEF, 0xC3, 0x47, 0xFF, 0xEF, 0xC2, 0x46, 0xFF, 0xEF, 0xC0, 0x44, 0xFF, 0xEF, 0xBF, 0x43, 0xFF, 0xF0, 0xBE, 0x41, + 0xFF, 0xEE, 0xBD, 0x42, 0xFF, 0xEC, 0xBC, 0x43, 0xFF, 0xEF, 0xBC, 0x40, 0xFF, 0xF1, 0xBB, 0x3E, 0xFF, 0xFD, 0xC0, + 0x2F, 0xFF, 0xFB, 0xBD, 0x35, 0xFF, 0x00, 0x4B, 0xF5, 0xFF, 0x52, 0x8A, 0xFF, 0xFF, 0x5D, 0xA5, 0xFA, 0xFF, 0x8D, + 0xC4, 0xFC, 0xFF, 0x85, 0xC1, 0xFB, 0xFF, 0x50, 0xAD, 0xF5, 0xFF, 0x5E, 0xB6, 0xF7, 0xFF, 0x6B, 0xBE, 0xF9, 0xFF, + 0x78, 0xC9, 0xFA, 0xFF, 0x85, 0xD4, 0xFB, 0xFF, 0x97, 0xDE, 0xFE, 0xFF, 0xAA, 0xE8, 0xFF, 0xFF, 0xAD, 0xEE, 0xFD, + 0xFF, 0xB1, 0xF4, 0xF9, 0xFF, 0xB9, 0xF5, 0xFC, 0xFF, 0xC2, 0xF6, 0xFE, 0xFF, 0xB2, 0xF0, 0xFB, 0xFF, 0x6E, 0xCB, + 0xF6, 0xFF, 0x91, 0xDE, 0xFB, 0xFF, 0xCA, 0xFC, 0xFC, 0xFF, 0xD0, 0xFB, 0xFF, 0xFF, 0xC8, 0xFC, 0xFF, 0xFF, 0xC7, + 0xE3, 0xCA, 0xFF, 0xF2, 0xA1, 0x15, 0xFF, 0xEE, 0xA3, 0x1D, 0xFF, 0xF1, 0xA1, 0x11, 0xFF, 0xB9, 0xD4, 0x9E, 0xFF, + 0x8B, 0xF1, 0xEA, 0xFF, 0x95, 0xEF, 0xDC, 0xFF, 0x90, 0xEB, 0xD9, 0xFF, 0x92, 0xEB, 0xD9, 0xFF, 0x94, 0xEC, 0xD8, + 0xFF, 0x8B, 0xEB, 0xD6, 0xFF, 0x82, 0xEA, 0xD3, 0xFF, 0x78, 0xE6, 0xC9, 0xFF, 0x6F, 0xE3, 0xBF, 0xFF, 0x68, 0xE2, + 0xB8, 0xFF, 0x61, 0xE2, 0xB1, 0xFF, 0x5D, 0xE0, 0xAE, 0xFF, 0x5A, 0xDE, 0xAC, 0xFF, 0x51, 0xD9, 0xA2, 0xFF, 0x48, + 0xD3, 0x98, 0xFF, 0x41, 0xCB, 0x8E, 0xFF, 0x39, 0xC3, 0x83, 0xFF, 0x32, 0xB7, 0x74, 0xFF, 0x2C, 0xAC, 0x66, 0xFF, + 0x29, 0xA2, 0x5D, 0xFF, 0x26, 0x99, 0x54, 0xFF, 0x21, 0x93, 0x4A, 0xFF, 0xB9, 0x99, 0x23, 0xFF, 0xFE, 0x93, 0x15, + 0xFF, 0xD8, 0x92, 0x09, 0xFF, 0xD8, 0x8F, 0x0F, 0xFF, 0xEF, 0xC4, 0x49, 0xFF, 0xEF, 0xC3, 0x47, 0xFF, 0xF0, 0xC2, + 0x46, 0xFF, 0xF0, 0xC1, 0x44, 0xFF, 0xF1, 0xC0, 0x42, 0xFF, 0xEF, 0xBF, 0x43, 0xFF, 0xED, 0xBE, 0x43, 0xFF, 0xEE, + 0xBE, 0x42, 0xFF, 0xF0, 0xBD, 0x41, 0xFF, 0xF0, 0xBA, 0x37, 0xFF, 0xB7, 0xA1, 0x71, 0xFF, 0x1D, 0x5D, 0xFE, 0xFF, + 0x31, 0x79, 0xF8, 0xFF, 0x51, 0xA1, 0xF5, 0xFF, 0x60, 0xAD, 0xF8, 0xFF, 0xBC, 0xE0, 0xFE, 0xFF, 0x57, 0xB6, 0xF7, + 0xFF, 0x68, 0xBF, 0xF9, 0xFF, 0x79, 0xC8, 0xFC, 0xFF, 0x82, 0xD2, 0xFC, 0xFF, 0x8B, 0xDB, 0xFC, 0xFF, 0x8F, 0xDE, + 0xFB, 0xFF, 0x92, 0xE0, 0xFB, 0xFF, 0xA3, 0xEA, 0xFA, 0xFF, 0xB4, 0xF4, 0xFA, 0xFF, 0xC1, 0xF8, 0xF9, 0xFF, 0xCE, + 0xFB, 0xF8, 0xFF, 0xB6, 0xEB, 0xF9, 0xFF, 0x83, 0xE1, 0xFA, 0xFF, 0x8F, 0xE2, 0xFD, 0xFF, 0xC7, 0xF9, 0xFB, 0xFF, + 0xD7, 0xF8, 0xFC, 0xFF, 0xCA, 0xFC, 0xFE, 0xFF, 0xDC, 0xCD, 0x8B, 0xFF, 0xED, 0x9F, 0x18, 0xFF, 0xED, 0xA3, 0x24, + 0xFF, 0xFA, 0x9D, 0x0A, 0xFF, 0xA5, 0xF5, 0xE7, 0xFF, 0xA5, 0xF1, 0xE4, 0xFF, 0xA5, 0xF0, 0xE4, 0xFF, 0xA6, 0xEF, + 0xE3, 0xFF, 0xA9, 0xF0, 0xE4, 0xFF, 0xAD, 0xF2, 0xE6, 0xFF, 0xA5, 0xF0, 0xE3, 0xFF, 0x9E, 0xEF, 0xE0, 0xFF, 0x92, + 0xEC, 0xD6, 0xFF, 0x87, 0xE9, 0xCD, 0xFF, 0x7F, 0xE9, 0xC7, 0xFF, 0x78, 0xEA, 0xC2, 0xFF, 0x72, 0xEA, 0xC1, 0xFF, + 0x6D, 0xE9, 0xC0, 0xFF, 0x60, 0xE3, 0xB1, 0xFF, 0x53, 0xDD, 0xA2, 0xFF, 0x46, 0xD2, 0x94, 0xFF, 0x3A, 0xC8, 0x86, + 0xFF, 0x35, 0xBC, 0x77, 0xFF, 0x30, 0xB0, 0x69, 0xFF, 0x2B, 0xA5, 0x62, 0xFF, 0x26, 0x9B, 0x5B, 0xFF, 0x09, 0x91, + 0x57, 0xFF, 0xFB, 0x94, 0x09, 0xFF, 0xE5, 0x95, 0x0C, 0xFF, 0xEB, 0x91, 0x0F, 0xFF, 0xEB, 0x91, 0x0F, 0xFF, 0xEF, + 0xC5, 0x4A, 0xFF, 0xF0, 0xC4, 0x48, 0xFF, 0xF0, 0xC3, 0x47, 0xFF, 0xF1, 0xC2, 0x45, 0xFF, 0xF1, 0xC1, 0x43, 0xFF, + 0xF1, 0xC1, 0x41, 0xFF, 0xF1, 0xC1, 0x3F, 0xFF, 0xF0, 0xBE, 0x3F, 0xFF, 0xEF, 0xBC, 0x3F, 0xFF, 0xFD, 0xC2, 0x32, + 0xFF, 0x6E, 0x7F, 0xBD, 0xFF, 0x26, 0x65, 0xFE, 0xFF, 0x34, 0x7B, 0xF5, 0xFF, 0x4C, 0x9A, 0xF5, 0xFF, 0x5C, 0xAB, + 0xF8, 0xFF, 0x9F, 0xD0, 0xFA, 0xFF, 0x83, 0xC6, 0xF7, 0xFF, 0x6A, 0xC1, 0xFD, 0xFF, 0x7E, 0xD1, 0xFD, 0xFF, 0x87, + 0xDB, 0xFB, 0xFF, 0x8F, 0xE5, 0xF9, 0xFF, 0x9A, 0xEC, 0xF8, 0xFF, 0xA5, 0xF4, 0xF7, 0xFF, 0x99, 0xEA, 0xFB, 0xFF, + 0x8E, 0xDF, 0xFF, 0xFF, 0x9F, 0xE2, 0xFB, 0xFF, 0xB1, 0xE6, 0xF7, 0xFF, 0xCC, 0xED, 0xFB, 0xFF, 0xCA, 0xFA, 0xFF, + 0xFF, 0xC6, 0xF2, 0xFF, 0xFF, 0xC2, 0xF0, 0xFC, 0xFF, 0xD2, 0xF5, 0xFE, 0xFF, 0xD3, 0xFC, 0xFF, 0xFF, 0xE6, 0xB5, + 0x4B, 0xFF, 0xED, 0xA4, 0x20, 0xFF, 0xED, 0xA2, 0x1B, 0xFF, 0xE2, 0xAA, 0x3D, 0xFF, 0xAB, 0xF6, 0xEE, 0xFF, 0xB1, + 0xF1, 0xE5, 0xFF, 0xB4, 0xF2, 0xE7, 0xFF, 0xB8, 0xF3, 0xE9, 0xFF, 0xBA, 0xF3, 0xE9, 0xFF, 0xBC, 0xF4, 0xEA, 0xFF, + 0xB5, 0xF3, 0xE8, 0xFF, 0xAF, 0xF2, 0xE5, 0xFF, 0xA8, 0xF0, 0xE0, 0xFF, 0xA1, 0xED, 0xDA, 0xFF, 0x99, 0xEF, 0xD5, + 0xFF, 0x91, 0xF0, 0xD0, 0xFF, 0x82, 0xED, 0xC8, 0xFF, 0x72, 0xEA, 0xC0, 0xFF, 0x61, 0xE3, 0xB0, 0xFF, 0x50, 0xDC, + 0xA0, 0xFF, 0x47, 0xD3, 0x94, 0xFF, 0x3E, 0xCA, 0x88, 0xFF, 0x38, 0xBF, 0x7B, 0xFF, 0x32, 0xB4, 0x6E, 0xFF, 0x2E, + 0xA8, 0x65, 0xFF, 0x1B, 0xA0, 0x5D, 0xFF, 0x48, 0x94, 0x3C, 0xFF, 0xF6, 0x93, 0x0A, 0xFF, 0xEC, 0x94, 0x0D, 0xFF, + 0xF0, 0x92, 0x10, 0xFF, 0xF0, 0x92, 0x10, 0xFF, 0xF0, 0xC5, 0x4B, 0xFF, 0xF0, 0xC4, 0x49, 0xFF, 0xF1, 0xC4, 0x48, + 0xFF, 0xF1, 0xC3, 0x46, 0xFF, 0xF2, 0xC2, 0x44, 0xFF, 0xF4, 0xC3, 0x3F, 0xFF, 0xF6, 0xC4, 0x3A, 0xFF, 0xF3, 0xBF, + 0x3C, 0xFF, 0xEF, 0xBA, 0x3D, 0xFF, 0xFF, 0xCA, 0x2C, 0xFF, 0x24, 0x5D, 0xFF, 0xFF, 0x2E, 0x6D, 0xFE, 0xFF, 0x38, + 0x7D, 0xF2, 0xFF, 0x48, 0x93, 0xF5, 0xFF, 0x57, 0xA9, 0xF7, 0xFF, 0x82, 0xC0, 0xF7, 0xFF, 0xAE, 0xD7, 0xF7, 0xFF, + 0x6C, 0xC2, 0xFF, 0xFF, 0x84, 0xDA, 0xFE, 0xFF, 0x8B, 0xE4, 0xFA, 0xFF, 0x93, 0xEE, 0xF6, 0xFF, 0x9D, 0xED, 0xF8, + 0xFF, 0xA7, 0xEC, 0xF9, 0xFF, 0xB3, 0xF1, 0xF8, 0xFF, 0xC0, 0xF6, 0xF7, 0xFF, 0xC8, 0xF6, 0xFB, 0xFF, 0xD0, 0xF6, + 0xFF, 0xFF, 0xD3, 0xF2, 0xFE, 0xFF, 0xB9, 0xF3, 0xFB, 0xFF, 0xE7, 0xFD, 0xFF, 0xFF, 0xE9, 0xFD, 0xF6, 0xFF, 0xE2, + 0xFC, 0xFC, 0xFF, 0xDC, 0xFC, 0xFF, 0xFF, 0xF1, 0x9D, 0x0B, 0xFF, 0xEC, 0xAA, 0x29, 0xFF, 0xF5, 0xAA, 0x1B, 0xFF, + 0xD9, 0xC7, 0x7F, 0xFF, 0xBA, 0xFE, 0xFD, 0xFF, 0xBD, 0xF2, 0xE7, 0xFF, 0xC3, 0xF4, 0xEB, 0xFF, 0xCA, 0xF6, 0xEE, + 0xFF, 0xCA, 0xF6, 0xEF, 0xFF, 0xCB, 0xF7, 0xEF, 0xFF, 0xC5, 0xF6, 0xED, 0xFF, 0xBF, 0xF5, 0xEB, 0xFF, 0xBE, 0xF3, + 0xE9, 0xFF, 0xBC, 0xF2, 0xE8, 0xFF, 0xB3, 0xF4, 0xE3, 0xFF, 0xAB, 0xF6, 0xDF, 0xFF, 0x91, 0xF1, 0xD0, 0xFF, 0x77, + 0xEC, 0xC1, 0xFF, 0x62, 0xE3, 0xAF, 0xFF, 0x4E, 0xDB, 0x9E, 0xFF, 0x47, 0xD3, 0x94, 0xFF, 0x41, 0xCC, 0x8A, 0xFF, + 0x3B, 0xC2, 0x7F, 0xFF, 0x35, 0xB8, 0x73, 0xFF, 0x30, 0xAC, 0x69, 0xFF, 0x10, 0xA5, 0x60, 0xFF, 0x86, 0x96, 0x22, + 0xFF, 0xF0, 0x91, 0x0A, 0xFF, 0xF2, 0x92, 0x0E, 0xFF, 0xF4, 0x94, 0x11, 0xFF, 0xF4, 0x94, 0x11, 0xFF, 0xF1, 0xC5, + 0x4C, 0xFF, 0xF1, 0xC5, 0x4A, 0xFF, 0xF1, 0xC4, 0x49, 0xFF, 0xF2, 0xC4, 0x47, 0xFF, 0xF2, 0xC3, 0x45, 0xFF, 0xF1, + 0xC3, 0x43, 0xFF, 0xF0, 0xC4, 0x40, 0xFF, 0xF3, 0xBF, 0x42, 0xFF, 0xF5, 0xC0, 0x39, 0xFF, 0xCA, 0xAC, 0x5E, 0xFF, + 0x1E, 0x58, 0xFA, 0xFF, 0x30, 0x6E, 0xF3, 0xFF, 0x35, 0x80, 0xF7, 0xFF, 0x3E, 0x92, 0xFB, 0xFF, 0x5D, 0xAF, 0xFB, + 0xFF, 0x72, 0xC2, 0xFF, 0xFF, 0xBA, 0xE1, 0xFD, 0xFF, 0x74, 0xCD, 0xFF, 0xFF, 0x71, 0xD3, 0xFF, 0xFF, 0x83, 0xE5, + 0xFF, 0xFF, 0x95, 0xF7, 0xFF, 0xFF, 0xA1, 0xF4, 0xFE, 0xFF, 0xAD, 0xF0, 0xFD, 0xFF, 0xC1, 0xF8, 0xFF, 0xFF, 0xCD, + 0xF7, 0xFB, 0xFF, 0xD1, 0xF8, 0xFE, 0xFF, 0xD6, 0xF9, 0xFF, 0xFF, 0xE0, 0xF6, 0xFE, 0xFF, 0xDD, 0xF5, 0xFB, 0xFF, + 0xED, 0xFB, 0xFF, 0xFF, 0xE8, 0xFB, 0xFB, 0xFF, 0xDF, 0xFC, 0xFF, 0xFF, 0xE8, 0xE0, 0xB2, 0xFF, 0xEF, 0xA3, 0x18, + 0xFF, 0xEC, 0xAA, 0x25, 0xFF, 0xF5, 0xA8, 0x15, 0xFF, 0xD8, 0xE3, 0xC2, 0xFF, 0xC5, 0xF9, 0xF9, 0xFF, 0xCA, 0xF5, + 0xEE, 0xFF, 0xCE, 0xF6, 0xEF, 0xFF, 0xD2, 0xF7, 0xF0, 0xFF, 0xD1, 0xF8, 0xF1, 0xFF, 0xD0, 0xF9, 0xF1, 0xFF, 0xCD, + 0xF9, 0xF1, 0xFF, 0xC9, 0xF9, 0xF1, 0xFF, 0xC9, 0xFB, 0xF2, 0xFF, 0xCA, 0xFC, 0xF4, 0xFF, 0xB6, 0xF8, 0xE6, 0xFF, + 0xA2, 0xF3, 0xD9, 0xFF, 0x89, 0xEF, 0xCA, 0xFF, 0x71, 0xEB, 0xBC, 0xFF, 0x61, 0xE6, 0xB0, 0xFF, 0x50, 0xE1, 0xA4, + 0xFF, 0x48, 0xD9, 0x99, 0xFF, 0x40, 0xD2, 0x8F, 0xFF, 0x3A, 0xC7, 0x83, 0xFF, 0x34, 0xBC, 0x77, 0xFF, 0x1C, 0xB2, + 0x6A, 0xFF, 0x04, 0xA9, 0x5D, 0xFF, 0xEA, 0x8D, 0x13, 0xFF, 0xEF, 0x93, 0x11, 0xFF, 0xEF, 0x92, 0x0F, 0xFF, 0xF0, + 0x92, 0x0E, 0xFF, 0xF0, 0x92, 0x0E, 0xFF, 0xF2, 0xC6, 0x4D, 0xFF, 0xF2, 0xC5, 0x4B, 0xFF, 0xF2, 0xC5, 0x4A, 0xFF, + 0xF2, 0xC5, 0x48, 0xFF, 0xF2, 0xC4, 0x46, 0xFF, 0xEE, 0xC4, 0x46, 0xFF, 0xEA, 0xC4, 0x46, 0xFF, 0xF2, 0xBF, 0x48, + 0xFF, 0xFB, 0xC6, 0x34, 0xFF, 0x91, 0x95, 0x98, 0xFF, 0x27, 0x64, 0xFC, 0xFF, 0x3B, 0x76, 0xF1, 0xFF, 0x32, 0x83, + 0xFC, 0xFF, 0x34, 0x91, 0xFF, 0xFF, 0x63, 0xB4, 0xFF, 0xFF, 0x5A, 0xBD, 0xFF, 0xFF, 0xB5, 0xDC, 0xF3, 0xFF, 0x97, + 0xD0, 0xCB, 0xFF, 0xA4, 0xCE, 0xB4, 0xFF, 0xB0, 0xD2, 0xAF, 0xFF, 0xBC, 0xD6, 0xAB, 0xFF, 0xBE, 0xE1, 0xC2, 0xFF, + 0xC0, 0xEB, 0xDA, 0xFF, 0xC7, 0xFC, 0xF5, 0xFF, 0xBD, 0xFE, 0xFF, 0xFF, 0xCC, 0xFD, 0xFF, 0xFF, 0xDB, 0xFC, 0xFF, + 0xFF, 0xE0, 0xFC, 0xFE, 0xFF, 0xE4, 0xFC, 0xFB, 0xFF, 0xE6, 0xFB, 0xFD, 0xFF, 0xE7, 0xFA, 0xFF, 0xFF, 0xDD, 0xFB, + 0xFF, 0xFF, 0xF4, 0xC4, 0x61, 0xFF, 0xEE, 0xAA, 0x26, 0xFF, 0xEB, 0xAA, 0x22, 0xFF, 0xF6, 0xA7, 0x10, 0xFF, 0xD6, + 0xFF, 0xFF, 0xFF, 0xCF, 0xF4, 0xF5, 0xFF, 0xD8, 0xF9, 0xF5, 0xFF, 0xD9, 0xF9, 0xF4, 0xFF, 0xD9, 0xF8, 0xF2, 0xFF, + 0xD8, 0xF9, 0xF3, 0xFF, 0xD6, 0xFB, 0xF4, 0xFF, 0xD5, 0xFC, 0xF5, 0xFF, 0xD3, 0xFD, 0xF6, 0xFF, 0xCD, 0xFA, 0xF3, + 0xFF, 0xC7, 0xF6, 0xEF, 0xFF, 0xB0, 0xF3, 0xE1, 0xFF, 0x98, 0xF0, 0xD3, 0xFF, 0x82, 0xED, 0xC5, 0xFF, 0x6B, 0xEB, + 0xB7, 0xFF, 0x5F, 0xE9, 0xB0, 0xFF, 0x53, 0xE7, 0xAA, 0xFF, 0x49, 0xDF, 0x9F, 0xFF, 0x3E, 0xD7, 0x93, 0xFF, 0x39, + 0xCB, 0x87, 0xFF, 0x34, 0xBF, 0x7B, 0xFF, 0x25, 0xB4, 0x6B, 0xFF, 0x32, 0xA2, 0x5B, 0xFF, 0xF9, 0x94, 0x04, 0xFF, + 0xED, 0x94, 0x17, 0xFF, 0xEC, 0x92, 0x11, 0xFF, 0xEB, 0x91, 0x0B, 0xFF, 0xEB, 0x91, 0x0B, 0xFF, 0xF2, 0xC7, 0x4E, + 0xFF, 0xF3, 0xC7, 0x4D, 0xFF, 0xF3, 0xC7, 0x4C, 0xFF, 0xF3, 0xC7, 0x4A, 0xFF, 0xF4, 0xC7, 0x49, 0xFF, 0xF1, 0xC4, + 0x47, 0xFF, 0xEE, 0xC1, 0x45, 0xFF, 0xF7, 0xC2, 0x42, 0xFF, 0xFF, 0xC8, 0x33, 0xFF, 0x46, 0x67, 0xDE, 0xFF, 0x2A, + 0x63, 0xFF, 0xFF, 0x1B, 0x6F, 0xFF, 0xFF, 0x52, 0x8B, 0xE0, 0xFF, 0x84, 0xA0, 0xA3, 0xFF, 0xCC, 0xC1, 0x62, 0xFF, + 0xFF, 0xC0, 0x26, 0xFF, 0xFF, 0xB7, 0x29, 0xFF, 0xF1, 0xB5, 0x24, 0xFF, 0xF9, 0xB7, 0x27, 0xFF, 0xF6, 0xB5, 0x25, + 0xFF, 0xF2, 0xB2, 0x23, 0xFF, 0xFA, 0xB5, 0x24, 0xFF, 0xFF, 0xB7, 0x24, 0xFF, 0xDE, 0x9D, 0x17, 0xFF, 0xF4, 0xBA, + 0x42, 0xFF, 0xE7, 0xDA, 0x9E, 0xFF, 0xDC, 0xF9, 0xF9, 0xFF, 0xE6, 0xFB, 0xF3, 0xFF, 0xE9, 0xFF, 0xFF, 0xFF, 0xE6, + 0xFF, 0xFD, 0xFF, 0xE2, 0xFB, 0xFA, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0xA7, 0x1D, 0xFF, 0xF0, 0xA7, 0x1C, 0xFF, + 0xF1, 0xA7, 0x1A, 0xFF, 0xF0, 0xC4, 0x5A, 0xFF, 0xE7, 0xFF, 0xFF, 0xFF, 0xE1, 0xF9, 0xFA, 0xFF, 0xE2, 0xFB, 0xFA, + 0xFF, 0xDF, 0xFB, 0xF8, 0xFF, 0xDC, 0xFA, 0xF5, 0xFF, 0xDB, 0xFB, 0xF5, 0xFF, 0xD9, 0xFB, 0xF5, 0xFF, 0xD6, 0xFC, + 0xF5, 0xFF, 0xD3, 0xFD, 0xF5, 0xFF, 0xC8, 0xF8, 0xF0, 0xFF, 0xBD, 0xF4, 0xEA, 0xFF, 0xA8, 0xF1, 0xDF, 0xFF, 0x93, + 0xEF, 0xD4, 0xFF, 0x7A, 0xF3, 0xC6, 0xFF, 0x61, 0xF8, 0xB9, 0xFF, 0x57, 0xEF, 0xB0, 0xFF, 0x4D, 0xE6, 0xA6, 0xFF, + 0x48, 0xE2, 0xA3, 0xFF, 0x3A, 0xD6, 0x98, 0xFF, 0x37, 0xCD, 0x89, 0xFF, 0x35, 0xC3, 0x7B, 0xFF, 0x20, 0xB7, 0x6F, + 0xFF, 0x84, 0x9C, 0x3A, 0xFF, 0xF4, 0x93, 0x0C, 0xFF, 0xEC, 0x94, 0x13, 0xFF, 0xE9, 0x93, 0x11, 0xFF, 0xE6, 0x92, + 0x0F, 0xFF, 0xE6, 0x92, 0x0F, 0xFF, 0xF3, 0xC9, 0x50, 0xFF, 0xF4, 0xC9, 0x4F, 0xFF, 0xF4, 0xC9, 0x4E, 0xFF, 0xF5, + 0xCA, 0x4D, 0xFF, 0xF5, 0xCA, 0x4B, 0xFF, 0xF4, 0xC5, 0x48, 0xFF, 0xF3, 0xBF, 0x44, 0xFF, 0xEE, 0xC1, 0x47, 0xFF, + 0xEA, 0xC4, 0x4A, 0xFF, 0x1F, 0x52, 0xFF, 0xFF, 0x92, 0x9A, 0xA6, 0xFF, 0xE6, 0xB6, 0x51, 0xFF, 0xFF, 0xC7, 0x28, + 0xFF, 0xF8, 0xC4, 0x2C, 0xFF, 0xF0, 0xC0, 0x30, 0xFF, 0xEF, 0xBA, 0x3F, 0xFF, 0xEF, 0xBF, 0x37, 0xFF, 0xEF, 0xB9, + 0x38, 0xFF, 0xF0, 0xB2, 0x3A, 0xFF, 0xF3, 0xB5, 0x38, 0xFF, 0xF6, 0xB7, 0x35, 0xFF, 0xEF, 0xB9, 0x32, 0xFF, 0xE8, + 0xBB, 0x2F, 0xFF, 0xEA, 0xB8, 0x2F, 0xFF, 0xED, 0xB4, 0x2F, 0xFF, 0xF3, 0xAC, 0x1F, 0xFF, 0xF9, 0xA3, 0x10, 0xFF, + 0xF2, 0xC9, 0x6F, 0xFF, 0xDF, 0xF9, 0xF5, 0xFF, 0xDE, 0xFB, 0xF5, 0xFF, 0xDD, 0xFD, 0xF5, 0xFF, 0xE3, 0xEA, 0xD7, + 0xFF, 0xEE, 0xA5, 0x10, 0xFF, 0xF4, 0xB2, 0x2D, 0xFF, 0xF7, 0xA5, 0x13, 0xFF, 0xEB, 0xE1, 0xA5, 0xFF, 0xF8, 0xFF, + 0xFF, 0xFF, 0xF2, 0xFE, 0xFF, 0xFF, 0xEC, 0xFD, 0xFF, 0xFF, 0xE6, 0xFC, 0xFC, 0xFF, 0xDF, 0xFC, 0xF7, 0xFF, 0xDE, + 0xFC, 0xF7, 0xFF, 0xDC, 0xFC, 0xF6, 0xFF, 0xD7, 0xFC, 0xF5, 0xFF, 0xD3, 0xFC, 0xF4, 0xFF, 0xC3, 0xF7, 0xED, 0xFF, + 0xB4, 0xF1, 0xE5, 0xFF, 0xB7, 0xF5, 0xE4, 0xFF, 0xBB, 0xF9, 0xE4, 0xFF, 0xD2, 0xFE, 0xEB, 0xFF, 0xE9, 0xFF, 0xF2, + 0xFF, 0xDB, 0xFE, 0xED, 0xFF, 0xCD, 0xF9, 0xE8, 0xFF, 0x89, 0xEF, 0xCA, 0xFF, 0x35, 0xD6, 0x9C, 0xFF, 0x2D, 0xC6, + 0x83, 0xFF, 0x25, 0xB7, 0x6B, 0xFF, 0x14, 0xB3, 0x6C, 0xFF, 0xD6, 0x95, 0x1A, 0xFF, 0xEE, 0x91, 0x15, 0xFF, 0xEB, + 0x93, 0x0F, 0xFF, 0xE6, 0x93, 0x10, 0xFF, 0xE0, 0x93, 0x12, 0xFF, 0xE0, 0x93, 0x12, 0xFF, 0xF4, 0xCA, 0x52, 0xFF, + 0xF4, 0xCA, 0x50, 0xFF, 0xF3, 0xCA, 0x4E, 0xFF, 0xF3, 0xC9, 0x4C, 0xFF, 0xF3, 0xC9, 0x4A, 0xFF, 0xF4, 0xC8, 0x48, + 0xFF, 0xF6, 0xC6, 0x46, 0xFF, 0xEC, 0xBF, 0x3F, 0xFF, 0xEB, 0xBF, 0x41, 0xFF, 0xF8, 0xD4, 0x40, 0xFF, 0xFC, 0xC9, + 0x33, 0xFF, 0xFF, 0xC9, 0x2F, 0xFF, 0xEC, 0xC2, 0x42, 0xFF, 0xF4, 0xC3, 0x40, 0xFF, 0xFC, 0xC3, 0x3E, 0xFF, 0xF3, + 0xBB, 0x34, 0xFF, 0xF2, 0xBB, 0x33, 0xFF, 0xF6, 0xBD, 0x49, 0xFF, 0xF8, 0xB7, 0x38, 0xFF, 0xF5, 0xB7, 0x36, 0xFF, + 0xF2, 0xB7, 0x34, 0xFF, 0xF3, 0xB5, 0x2E, 0xFF, 0xF5, 0xB3, 0x27, 0xFF, 0xF7, 0xBA, 0x2F, 0xFF, 0xF2, 0xBA, 0x2F, + 0xFF, 0xF1, 0xB5, 0x30, 0xFF, 0xF0, 0xB0, 0x31, 0xFF, 0xF6, 0xAC, 0x1E, 0xFF, 0xED, 0xAA, 0x0C, 0xFF, 0xEC, 0xD2, + 0x7E, 0xFF, 0xE6, 0xFF, 0xFF, 0xFF, 0xD2, 0xD9, 0x80, 0xFF, 0xF8, 0xA9, 0x2E, 0xFF, 0xEB, 0xAF, 0x1C, 0xFF, 0xE5, + 0xAA, 0x02, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xF9, 0xFE, 0xFF, 0xFF, 0xF4, 0xFD, 0xFF, 0xFF, + 0xEB, 0xFD, 0xFD, 0xFF, 0xE2, 0xFE, 0xFA, 0xFF, 0xE1, 0xFD, 0xF9, 0xFF, 0xE0, 0xFC, 0xF7, 0xFF, 0xD7, 0xFC, 0xF5, + 0xFF, 0xCF, 0xFD, 0xF3, 0xFF, 0xE2, 0xFB, 0xF4, 0xFF, 0xE7, 0xFD, 0xF6, 0xFF, 0xE8, 0xFD, 0xF3, 0xFF, 0xE9, 0xFD, + 0xF0, 0xFF, 0xD3, 0xFD, 0xEB, 0xFF, 0xBD, 0xFC, 0xE5, 0xFF, 0xBA, 0xF7, 0xDF, 0xFF, 0xB6, 0xF2, 0xDA, 0xFF, 0xD2, + 0xFB, 0xE9, 0xFF, 0xE6, 0xFC, 0xF1, 0xFF, 0x8D, 0xDE, 0xB6, 0xFF, 0x3C, 0xC7, 0x84, 0xFF, 0x47, 0xB7, 0x99, 0xFF, + 0xF8, 0xA1, 0x13, 0xFF, 0xF2, 0x94, 0x04, 0xFF, 0xEE, 0x94, 0x10, 0xFF, 0xEC, 0x94, 0x10, 0xFF, 0xE9, 0x95, 0x10, + 0xFF, 0xE9, 0x95, 0x10, 0xFF, 0xF5, 0xCC, 0x53, 0xFF, 0xF3, 0xCB, 0x50, 0xFF, 0xF2, 0xCA, 0x4E, 0xFF, 0xF1, 0xC9, + 0x4B, 0xFF, 0xF0, 0xC7, 0x48, 0xFF, 0xF4, 0xCB, 0x48, 0xFF, 0xF9, 0xCE, 0x47, 0xFF, 0xF2, 0xC4, 0x40, 0xFF, 0xFC, + 0xCA, 0x48, 0xFF, 0xF0, 0xC2, 0x3F, 0xFF, 0xF5, 0xC9, 0x46, 0xFF, 0xF4, 0xC7, 0x46, 0xFF, 0xF3, 0xC4, 0x45, 0xFF, + 0xED, 0xB4, 0x38, 0xFF, 0xE8, 0xA5, 0x2C, 0xFF, 0xE1, 0xB0, 0x2E, 0xFF, 0xEA, 0xC0, 0x56, 0xFF, 0xE9, 0xC8, 0x6C, + 0xFF, 0xE4, 0xC1, 0x36, 0xFF, 0xEB, 0xC9, 0x50, 0xFF, 0xF1, 0xD1, 0x6A, 0xFF, 0xF5, 0xD0, 0x73, 0xFF, 0xF9, 0xCF, + 0x7D, 0xFF, 0xF8, 0xC7, 0x56, 0xFF, 0xE7, 0xAF, 0x1F, 0xFF, 0xED, 0xB1, 0x25, 0xFF, 0xF4, 0xB2, 0x2B, 0xFF, 0xF9, + 0xB5, 0x3E, 0xFF, 0xEE, 0xB3, 0x2A, 0xFF, 0xF5, 0xAF, 0x1B, 0xFF, 0xF0, 0xB5, 0x32, 0xFF, 0xF9, 0xB1, 0x3F, 0xFF, + 0xF2, 0xA9, 0x26, 0xFF, 0xEA, 0xAE, 0x1F, 0xFF, 0xF3, 0xB8, 0x3F, 0xFF, 0xF3, 0xFF, 0xFB, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFB, 0xFD, 0xFE, 0xFF, 0xF0, 0xFE, 0xFE, 0xFF, 0xE5, 0xFF, 0xFD, 0xFF, 0xE4, 0xFE, + 0xFB, 0xFF, 0xE3, 0xFC, 0xF8, 0xFF, 0xD7, 0xFD, 0xF5, 0xFF, 0xCB, 0xFD, 0xF2, 0xFF, 0xEB, 0xFB, 0xF4, 0xFF, 0xEE, + 0xFE, 0xF6, 0xFF, 0xDE, 0xFD, 0xF1, 0xFF, 0xCE, 0xFB, 0xED, 0xFF, 0xB0, 0xF9, 0xE2, 0xFF, 0x91, 0xF6, 0xD8, 0xFF, + 0x8A, 0xF3, 0xD2, 0xFF, 0x83, 0xF1, 0xCC, 0xFF, 0x96, 0xEE, 0xCE, 0xFF, 0xA9, 0xEA, 0xD0, 0xFF, 0xC0, 0xEA, 0xDA, + 0xFF, 0xE8, 0xFA, 0xF4, 0xFF, 0x78, 0xC6, 0x7E, 0xFF, 0xFF, 0xC0, 0x59, 0xFF, 0xEA, 0xA0, 0x19, 0xFF, 0xF2, 0x95, + 0x10, 0xFF, 0xF2, 0x96, 0x0F, 0xFF, 0xF2, 0x96, 0x0D, 0xFF, 0xF2, 0x96, 0x0D, 0xFF, 0xF4, 0xCD, 0x54, 0xFF, 0xF4, + 0xCB, 0x51, 0xFF, 0xF3, 0xCA, 0x4F, 0xFF, 0xF2, 0xC9, 0x4C, 0xFF, 0xF2, 0xC8, 0x4A, 0xFF, 0xF1, 0xC6, 0x48, 0xFF, + 0xF1, 0xC4, 0x47, 0xFF, 0xF3, 0xD2, 0x48, 0xFF, 0xF3, 0xC7, 0x46, 0xFF, 0xFB, 0xC5, 0x4C, 0xFF, 0xDC, 0x9A, 0x2B, + 0xFF, 0xCD, 0x83, 0x17, 0xFF, 0xBE, 0x6B, 0x03, 0xFF, 0xC5, 0x7F, 0x00, 0xFF, 0xD4, 0x96, 0x0E, 0xFF, 0xDB, 0xAC, + 0x2E, 0xFF, 0xEA, 0xC5, 0x60, 0xFF, 0xEF, 0xCC, 0x75, 0xFF, 0xEA, 0xCA, 0x51, 0xFF, 0xEF, 0xD2, 0x69, 0xFF, 0xF5, + 0xDA, 0x81, 0xFF, 0xF7, 0xE4, 0x99, 0xFF, 0xF9, 0xEE, 0xB2, 0xFF, 0xFF, 0xFA, 0xCE, 0xFF, 0xFF, 0xFE, 0xE2, 0xFF, + 0xFF, 0xE1, 0x99, 0xFF, 0xF7, 0xBC, 0x48, 0xFF, 0xDC, 0xB4, 0x10, 0xFF, 0xF0, 0xAD, 0x31, 0xFF, 0xFB, 0xAC, 0x27, + 0xFF, 0xF3, 0xB2, 0x30, 0xFF, 0xF5, 0xB1, 0x34, 0xFF, 0xF0, 0xAD, 0x24, 0xFF, 0xF6, 0xAC, 0x26, 0xFF, 0xFC, 0xD1, + 0x97, 0xFF, 0xF7, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFB, 0xFF, 0xFE, 0xFF, 0xF3, 0xFF, 0xFE, 0xFF, 0xED, + 0xFF, 0xFD, 0xFF, 0xE7, 0xFD, 0xFC, 0xFF, 0xE3, 0xFE, 0xFB, 0xFF, 0xDF, 0xFE, 0xF9, 0xFF, 0xE7, 0xFD, 0xF8, 0xFF, + 0xEF, 0xFC, 0xF7, 0xFF, 0xEB, 0xFB, 0xF3, 0xFF, 0xD8, 0xFD, 0xEF, 0xFF, 0xC2, 0xFA, 0xE8, 0xFF, 0xAB, 0xF8, 0xE2, + 0xFF, 0x9B, 0xF4, 0xD8, 0xFF, 0x8A, 0xEF, 0xCE, 0xFF, 0x76, 0xEA, 0xC1, 0xFF, 0x61, 0xE5, 0xB4, 0xFF, 0x5A, 0xDD, + 0xAB, 0xFF, 0x61, 0xD2, 0xA2, 0xFF, 0x8D, 0xE9, 0xC1, 0xFF, 0xB8, 0xE7, 0xDA, 0xFF, 0xFF, 0xD4, 0x96, 0xFF, 0xFA, + 0xD0, 0x8E, 0xFF, 0xED, 0xAD, 0x41, 0xFF, 0xF1, 0x95, 0x10, 0xFF, 0xF1, 0x95, 0x0F, 0xFF, 0xF1, 0x96, 0x0E, 0xFF, + 0xF1, 0x96, 0x0E, 0xFF, 0xF4, 0xCD, 0x54, 0xFF, 0xF4, 0xCC, 0x52, 0xFF, 0xF4, 0xCB, 0x50, 0xFF, 0xF3, 0xC9, 0x4E, + 0xFF, 0xF3, 0xC8, 0x4B, 0xFF, 0xF6, 0xC9, 0x51, 0xFF, 0xFA, 0xCA, 0x56, 0xFF, 0xEA, 0xC0, 0x44, 0xFF, 0xC6, 0x74, + 0x19, 0xFF, 0xAD, 0x58, 0x00, 0xFF, 0xB3, 0x5B, 0x01, 0xFF, 0xC0, 0x6F, 0x06, 0xFF, 0xCC, 0x84, 0x0B, 0xFF, 0xCE, + 0x93, 0x00, 0xFF, 0xDF, 0xA7, 0x11, 0xFF, 0xE5, 0xB9, 0x3E, 0xFF, 0xEB, 0xCA, 0x6A, 0xFF, 0xF5, 0xD1, 0x7E, 0xFF, + 0xF0, 0xD3, 0x6B, 0xFF, 0xF4, 0xDB, 0x81, 0xFF, 0xF8, 0xE3, 0x97, 0xFF, 0xF7, 0xEB, 0xA4, 0xFF, 0xF5, 0xF4, 0xB1, + 0xFF, 0xF9, 0xF7, 0xC7, 0xFF, 0xFC, 0xFA, 0xDC, 0xFF, 0xFF, 0xFF, 0xF2, 0xFF, 0xF5, 0xFF, 0xF8, 0xFF, 0xFD, 0xEB, + 0xBB, 0xFF, 0xF2, 0xB4, 0x22, 0xFF, 0xFF, 0xAF, 0x28, 0xFF, 0xF6, 0xB0, 0x2F, 0xFF, 0xF2, 0xB0, 0x29, 0xFF, 0xEE, + 0xB1, 0x22, 0xFF, 0xF9, 0xA7, 0x19, 0xFF, 0xF4, 0xE6, 0xC9, 0xFF, 0xF4, 0xF7, 0xF7, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, + 0xF6, 0xFF, 0xFE, 0xFF, 0xEC, 0xFF, 0xFD, 0xFF, 0xEA, 0xFF, 0xFC, 0xFF, 0xE8, 0xFA, 0xFA, 0xFF, 0xE2, 0xFD, 0xFB, + 0xFF, 0xDC, 0xFF, 0xFB, 0xFF, 0xE9, 0xFF, 0xFB, 0xFF, 0xF6, 0xFF, 0xFB, 0xFF, 0xDC, 0xFD, 0xF1, 0xFF, 0xC3, 0xFB, + 0xE7, 0xFF, 0xB4, 0xF5, 0xDF, 0xFF, 0xA5, 0xF0, 0xD8, 0xFF, 0x94, 0xEC, 0xCE, 0xFF, 0x83, 0xE8, 0xC4, 0xFF, 0x77, + 0xE5, 0xB7, 0xFF, 0x6B, 0xE3, 0xAB, 0xFF, 0x52, 0xDE, 0xA0, 0xFF, 0x55, 0xD4, 0x94, 0xFF, 0x40, 0xBD, 0x7F, 0xFF, + 0x98, 0xE4, 0xD1, 0xFF, 0xF4, 0xA1, 0x2B, 0xFF, 0xF6, 0xA1, 0x2F, 0xFF, 0xF3, 0x9B, 0x1F, 0xFF, 0xF0, 0x95, 0x0F, + 0xFF, 0xF0, 0x95, 0x0F, 0xFF, 0xF0, 0x95, 0x0F, 0xFF, 0xF0, 0x95, 0x0F, 0xFF, 0xF4, 0xCE, 0x55, 0xFF, 0xF4, 0xCC, + 0x53, 0xFF, 0xF4, 0xCB, 0x51, 0xFF, 0xF5, 0xCA, 0x4F, 0xFF, 0xF6, 0xC9, 0x4E, 0xFF, 0xF4, 0xC9, 0x4D, 0xFF, 0xFA, + 0xD0, 0x53, 0xFF, 0xCD, 0x86, 0x2A, 0xFF, 0xB0, 0x52, 0x06, 0xFF, 0xB8, 0x5F, 0x04, 0xFF, 0xC8, 0x73, 0x0A, 0xFF, + 0xCE, 0x82, 0x08, 0xFF, 0xD3, 0x91, 0x06, 0xFF, 0xD5, 0xA0, 0x01, 0xFF, 0xE6, 0xB4, 0x24, 0xFF, 0xEA, 0xC4, 0x4C, + 0xFF, 0xED, 0xD3, 0x74, 0xFF, 0xF4, 0xD9, 0x83, 0xFF, 0xF3, 0xDC, 0x7E, 0xFF, 0xF6, 0xE4, 0x93, 0xFF, 0xF8, 0xEC, + 0xA8, 0xFF, 0xF9, 0xF2, 0xB5, 0xFF, 0xF9, 0xF8, 0xC3, 0xFF, 0xFA, 0xFA, 0xD3, 0xFF, 0xFB, 0xFB, 0xE2, 0xFF, 0xFB, + 0xFE, 0xED, 0xFF, 0xF3, 0xF9, 0xEF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0xEE, 0xDC, 0x7E, 0xFF, + 0xFD, 0xAD, 0x26, 0xFF, 0xF7, 0xAF, 0x29, 0xFF, 0xF1, 0xB1, 0x2D, 0xFF, 0xDF, 0xB1, 0x34, 0xFF, 0xF6, 0xA6, 0x09, + 0xFF, 0xF4, 0xD3, 0x8C, 0xFF, 0xF8, 0xFB, 0xFC, 0xFF, 0xF6, 0xFF, 0xFF, 0xFF, 0xEB, 0xFF, 0xFD, 0xFF, 0xE5, 0xFE, + 0xFC, 0xFF, 0xE0, 0xFB, 0xFB, 0xFF, 0xDE, 0xFC, 0xF9, 0xFF, 0xDC, 0xFC, 0xF7, 0xFF, 0xEF, 0xFF, 0xFC, 0xFF, 0xEB, + 0xFC, 0xF8, 0xFF, 0xD0, 0xF5, 0xE8, 0xFF, 0xBC, 0xF5, 0xDF, 0xFF, 0xAC, 0xF1, 0xD8, 0xFF, 0x9D, 0xED, 0xD2, 0xFF, + 0x7D, 0xE8, 0xC4, 0xFF, 0x6C, 0xE1, 0xB7, 0xFF, 0x5E, 0xDC, 0xAB, 0xFF, 0x4F, 0xD7, 0x9E, 0xFF, 0x5E, 0xC9, 0x98, + 0xFF, 0x35, 0xC6, 0x92, 0xFF, 0x42, 0xC9, 0x8B, 0xFF, 0x4D, 0xB2, 0x80, 0xFF, 0xF1, 0x9B, 0x00, 0xFF, 0xF8, 0x93, + 0x17, 0xFF, 0xF4, 0x95, 0x15, 0xFF, 0xF1, 0x97, 0x12, 0xFF, 0xF0, 0x96, 0x11, 0xFF, 0xEF, 0x95, 0x10, 0xFF, 0xEF, + 0x95, 0x10, 0xFF, 0xF4, 0xCE, 0x55, 0xFF, 0xF4, 0xCD, 0x54, 0xFF, 0xF5, 0xCC, 0x52, 0xFF, 0xF6, 0xCB, 0x51, 0xFF, + 0xF8, 0xCB, 0x50, 0xFF, 0xF1, 0xC8, 0x49, 0xFF, 0xF9, 0xD5, 0x51, 0xFF, 0xC0, 0x62, 0x15, 0xFF, 0xBB, 0x5C, 0x00, + 0xFF, 0xCC, 0x74, 0x07, 0xFF, 0xCD, 0x7C, 0x02, 0xFF, 0xD4, 0x8D, 0x02, 0xFF, 0xDB, 0x9E, 0x01, 0xFF, 0xDC, 0xAD, + 0x08, 0xFF, 0xED, 0xC1, 0x36, 0xFF, 0xEE, 0xCF, 0x5A, 0xFF, 0xF0, 0xDC, 0x7D, 0xFF, 0xF3, 0xE1, 0x87, 0xFF, 0xF7, + 0xE6, 0x91, 0xFF, 0xF8, 0xED, 0xA5, 0xFF, 0xF8, 0xF5, 0xB8, 0xFF, 0xFB, 0xF9, 0xC6, 0xFF, 0xFD, 0xFD, 0xD4, 0xFF, + 0xFB, 0xFC, 0xDF, 0xFF, 0xFA, 0xFC, 0xE9, 0xFF, 0xFD, 0xFE, 0xF0, 0xFF, 0xFF, 0xFF, 0xF7, 0xFF, 0xFE, 0xFF, 0xFA, + 0xFF, 0xFB, 0xFE, 0xFC, 0xFF, 0xFF, 0xFA, 0xFD, 0xFF, 0xE7, 0xAF, 0x1D, 0xFF, 0xEE, 0xB0, 0x2A, 0xFF, 0xF5, 0xB1, + 0x37, 0xFF, 0xF6, 0xB8, 0x24, 0xFF, 0xF7, 0xB4, 0x28, 0xFF, 0xF4, 0xAF, 0x21, 0xFF, 0xF2, 0xAA, 0x1A, 0xFF, 0xF5, + 0xD7, 0x9E, 0xFF, 0xE9, 0xFF, 0xFC, 0xFF, 0xE0, 0xFE, 0xFC, 0xFF, 0xD7, 0xFD, 0xFC, 0xFF, 0xDA, 0xFA, 0xF8, 0xFF, + 0xDD, 0xF7, 0xF3, 0xFF, 0xF4, 0xFD, 0xFD, 0xFF, 0xE0, 0xF9, 0xF6, 0xFF, 0xC3, 0xEC, 0xDF, 0xFF, 0xB5, 0xEF, 0xD7, + 0xFF, 0xA5, 0xEC, 0xD2, 0xFF, 0x95, 0xE9, 0xCC, 0xFF, 0x67, 0xE5, 0xBB, 0xFF, 0x55, 0xDB, 0xAB, 0xFF, 0x44, 0xD3, + 0x9E, 0xFF, 0x32, 0xCB, 0x91, 0xFF, 0x24, 0xC8, 0x85, 0xFF, 0x6A, 0xB4, 0x79, 0xFF, 0xAF, 0x9D, 0x3A, 0xFF, 0xFF, + 0x97, 0x0B, 0xFF, 0xF9, 0x93, 0x18, 0xFF, 0xED, 0x9B, 0x0F, 0xFF, 0xF0, 0x9A, 0x12, 0xFF, 0xF3, 0x98, 0x15, 0xFF, + 0xF1, 0x96, 0x13, 0xFF, 0xEF, 0x94, 0x11, 0xFF, 0xEF, 0x94, 0x11, 0xFF, 0xF4, 0xCF, 0x58, 0xFF, 0xF4, 0xCE, 0x55, + 0xFF, 0xF4, 0xCD, 0x53, 0xFF, 0xF6, 0xCC, 0x52, 0xFF, 0xF8, 0xCB, 0x52, 0xFF, 0xFA, 0xD5, 0x52, 0xFF, 0xFB, 0xC7, + 0x4E, 0xFF, 0xAD, 0x4C, 0x00, 0xFF, 0xCA, 0x6F, 0x09, 0xFF, 0xD3, 0x7F, 0x0B, 0xFF, 0xD4, 0x88, 0x05, 0xFF, 0xDB, + 0x97, 0x04, 0xFF, 0xE1, 0xA7, 0x04, 0xFF, 0xE5, 0xB6, 0x18, 0xFF, 0xF1, 0xC7, 0x3F, 0xFF, 0xF3, 0xD3, 0x62, 0xFF, + 0xF4, 0xDF, 0x86, 0xFF, 0xF7, 0xE4, 0x91, 0xFF, 0xF9, 0xE9, 0x9B, 0xFF, 0xF9, 0xF0, 0xAD, 0xFF, 0xF9, 0xF7, 0xBF, + 0xFF, 0xFB, 0xFA, 0xCB, 0xFF, 0xFD, 0xFC, 0xD7, 0xFF, 0xFC, 0xFD, 0xDE, 0xFF, 0xFB, 0xFD, 0xE5, 0xFF, 0xFE, 0xFF, + 0xEF, 0xFF, 0xFF, 0xFF, 0xF9, 0xFF, 0xFA, 0xFE, 0xF2, 0xFF, 0xFC, 0xFE, 0xFE, 0xFF, 0xFB, 0xE9, 0xC6, 0xFF, 0xEC, + 0xAF, 0x1D, 0xFF, 0xF6, 0xB4, 0x30, 0xFF, 0xF8, 0xB6, 0x2F, 0xFF, 0xF6, 0xA7, 0x19, 0xFF, 0xF0, 0xB0, 0x26, 0xFF, + 0xF2, 0xAD, 0x22, 0xFF, 0xF5, 0xAB, 0x1D, 0xFF, 0xF9, 0xA9, 0x26, 0xFF, 0xF6, 0xA6, 0x1C, 0xFF, 0xE9, 0xCD, 0x7D, + 0xFF, 0xDC, 0xF4, 0xDF, 0xFF, 0xAF, 0xFE, 0xEA, 0xFF, 0xED, 0xFD, 0xFD, 0xFF, 0xEF, 0xFF, 0xFF, 0xFF, 0xD3, 0xF8, + 0xFB, 0xFF, 0xB4, 0xEE, 0xEC, 0xFF, 0xAB, 0xE9, 0xE6, 0xFF, 0x89, 0xE6, 0xD8, 0xFF, 0x67, 0xE2, 0xCB, 0xFF, 0x52, + 0xE1, 0xB8, 0xFF, 0x4C, 0xDD, 0xA6, 0xFF, 0x7E, 0xC5, 0x74, 0xFF, 0xB0, 0xAD, 0x42, 0xFF, 0xF3, 0x9B, 0x22, 0xFF, + 0xFF, 0x9C, 0x09, 0xFF, 0xF5, 0x98, 0x09, 0xFF, 0xEE, 0x9C, 0x10, 0xFF, 0xED, 0x99, 0x17, 0xFF, 0xED, 0x9D, 0x14, + 0xFF, 0xEF, 0x9B, 0x14, 0xFF, 0xF2, 0x99, 0x15, 0xFF, 0xF0, 0x97, 0x13, 0xFF, 0xEE, 0x95, 0x11, 0xFF, 0xEE, 0x95, + 0x11, 0xFF, 0xF5, 0xD0, 0x5A, 0xFF, 0xF4, 0xCF, 0x57, 0xFF, 0xF3, 0xCE, 0x54, 0xFF, 0xF5, 0xCC, 0x53, 0xFF, 0xF7, + 0xCB, 0x53, 0xFF, 0xF4, 0xD3, 0x4C, 0xFF, 0xDD, 0x9A, 0x2C, 0xFF, 0xC1, 0x5D, 0x03, 0xFF, 0xC8, 0x72, 0x05, 0xFF, + 0xD2, 0x83, 0x06, 0xFF, 0xDC, 0x93, 0x07, 0xFF, 0xE1, 0xA2, 0x07, 0xFF, 0xE7, 0xB0, 0x08, 0xFF, 0xEE, 0xBF, 0x27, + 0xFF, 0xF6, 0xCD, 0x47, 0xFF, 0xF7, 0xD8, 0x6B, 0xFF, 0xF9, 0xE2, 0x8E, 0xFF, 0xFA, 0xE7, 0x9A, 0xFF, 0xFB, 0xEC, + 0xA6, 0xFF, 0xFA, 0xF3, 0xB6, 0xFF, 0xFA, 0xF9, 0xC7, 0xFF, 0xFB, 0xFB, 0xD0, 0xFF, 0xFD, 0xFC, 0xD9, 0xFF, 0xFC, + 0xFD, 0xDD, 0xFF, 0xFC, 0xFE, 0xE2, 0xFF, 0xFE, 0xFF, 0xEE, 0xFF, 0xFF, 0xFF, 0xFB, 0xFF, 0xF7, 0xFD, 0xEA, 0xFF, + 0xFE, 0xFE, 0xFF, 0xFF, 0xF7, 0xD7, 0x8F, 0xFF, 0xF1, 0xAF, 0x1E, 0xFF, 0xF6, 0xB0, 0x2E, 0xFF, 0xEB, 0xAB, 0x17, + 0xFF, 0xFD, 0xF7, 0xDF, 0xFF, 0xE9, 0xAC, 0x24, 0xFF, 0xF0, 0xAC, 0x22, 0xFF, 0xF8, 0xAC, 0x21, 0xFF, 0xF6, 0xAE, + 0x26, 0xFF, 0xF5, 0xB0, 0x2B, 0xFF, 0xF4, 0xA9, 0x19, 0xFF, 0xF3, 0xA2, 0x08, 0xFF, 0xF9, 0xA7, 0x22, 0xFF, 0xF2, + 0xC1, 0x4C, 0xFF, 0xEE, 0xCD, 0x6D, 0xFF, 0xDB, 0xC9, 0x7D, 0xFF, 0xC2, 0xCA, 0x7F, 0xFF, 0xC6, 0xC5, 0x81, 0xFF, + 0xCB, 0xBC, 0x60, 0xFF, 0xCF, 0xB3, 0x40, 0xFF, 0xE9, 0xA7, 0x24, 0xFF, 0xFF, 0x9B, 0x07, 0xFF, 0xFF, 0x9D, 0x10, + 0xFF, 0xFF, 0x9F, 0x1A, 0xFF, 0xE9, 0x98, 0x0F, 0xFF, 0xF9, 0x9C, 0x14, 0xFF, 0xF7, 0x9C, 0x14, 0xFF, 0xF4, 0x9B, + 0x14, 0xFF, 0xF1, 0x9D, 0x17, 0xFF, 0xED, 0x9E, 0x19, 0xFF, 0xEF, 0x9C, 0x16, 0xFF, 0xF1, 0x99, 0x14, 0xFF, 0xEF, + 0x97, 0x12, 0xFF, 0xED, 0x95, 0x10, 0xFF, 0xED, 0x95, 0x10, 0xFF, 0xF6, 0xD1, 0x5C, 0xFF, 0xF4, 0xD0, 0x58, 0xFF, + 0xF3, 0xCF, 0x55, 0xFF, 0xF5, 0xCD, 0x54, 0xFF, 0xF7, 0xCC, 0x53, 0xFF, 0xF6, 0xD5, 0x51, 0xFF, 0xCE, 0x7B, 0x16, + 0xFF, 0xC6, 0x67, 0x03, 0xFF, 0xCF, 0x7B, 0x06, 0xFF, 0xD7, 0x8B, 0x05, 0xFF, 0xDF, 0x9B, 0x05, 0xFF, 0xE4, 0xA8, + 0x07, 0xFF, 0xEA, 0xB6, 0x09, 0xFF, 0xF1, 0xC3, 0x2A, 0xFF, 0xF7, 0xD1, 0x4C, 0xFF, 0xF8, 0xDB, 0x6C, 0xFF, 0xFA, + 0xE4, 0x8D, 0xFF, 0xFA, 0xEA, 0x9C, 0xFF, 0xFB, 0xEF, 0xAB, 0xFF, 0xFA, 0xF5, 0xBC, 0xFF, 0xFA, 0xFA, 0xCD, 0xFF, + 0xFB, 0xFB, 0xD4, 0xFF, 0xFD, 0xFC, 0xDB, 0xFF, 0xFC, 0xFD, 0xDC, 0xFF, 0xFC, 0xFE, 0xDD, 0xFF, 0xFC, 0xFE, 0xE3, + 0xFF, 0xFD, 0xFE, 0xEA, 0xFF, 0xFD, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDE, 0xC0, 0x27, 0xFF, 0xF5, 0xB4, + 0x26, 0xFF, 0xF8, 0xB0, 0x1E, 0xFF, 0xFF, 0xC6, 0x4D, 0xFF, 0xEF, 0xF8, 0xFF, 0xFF, 0xFA, 0xFF, 0xFE, 0xFF, 0xF6, + 0xD8, 0x8B, 0xFF, 0xF3, 0xA7, 0x18, 0xFF, 0xF4, 0xA9, 0x1D, 0xFF, 0xF5, 0xAC, 0x22, 0xFF, 0xF2, 0xAB, 0x22, 0xFF, + 0xF0, 0xAB, 0x22, 0xFF, 0xF2, 0xA3, 0x1A, 0xFF, 0xEE, 0xA6, 0x1A, 0xFF, 0xF4, 0xA8, 0x17, 0xFF, 0xF3, 0xA2, 0x0D, + 0xFF, 0xF2, 0xA4, 0x10, 0xFF, 0xFF, 0xA3, 0x14, 0xFF, 0xFC, 0xA3, 0x15, 0xFF, 0xF9, 0xA2, 0x16, 0xFF, 0xF2, 0xA2, + 0x17, 0xFF, 0xEC, 0xA1, 0x18, 0xFF, 0xFD, 0x99, 0x0D, 0xFF, 0xED, 0x9A, 0x16, 0xFF, 0xFF, 0xA0, 0x00, 0xFF, 0xE8, + 0x9C, 0x2B, 0xFF, 0xAF, 0xB5, 0x60, 0xFF, 0xF7, 0x99, 0x10, 0xFF, 0xF2, 0x9B, 0x14, 0xFF, 0xED, 0x9D, 0x18, 0xFF, + 0xEE, 0x9B, 0x16, 0xFF, 0xEF, 0x99, 0x13, 0xFF, 0xED, 0x97, 0x11, 0xFF, 0xEB, 0x95, 0x0F, 0xFF, 0xEB, 0x95, 0x0F, + 0xFF, 0xF7, 0xD2, 0x5E, 0xFF, 0xF4, 0xD1, 0x5A, 0xFF, 0xF2, 0xD0, 0x56, 0xFF, 0xF5, 0xCE, 0x54, 0xFF, 0xF7, 0xCC, + 0x53, 0xFF, 0xF7, 0xD7, 0x56, 0xFF, 0xC0, 0x5B, 0x00, 0xFF, 0xCB, 0x70, 0x03, 0xFF, 0xD6, 0x84, 0x06, 0xFF, 0xDC, + 0x94, 0x05, 0xFF, 0xE2, 0xA3, 0x03, 0xFF, 0xE8, 0xAF, 0x07, 0xFF, 0xEE, 0xBB, 0x0B, 0xFF, 0xF3, 0xC8, 0x2D, 0xFF, + 0xF8, 0xD5, 0x50, 0xFF, 0xF9, 0xDE, 0x6E, 0xFF, 0xFA, 0xE6, 0x8C, 0xFF, 0xFB, 0xEC, 0x9F, 0xFF, 0xFB, 0xF2, 0xB1, + 0xFF, 0xFA, 0xF7, 0xC2, 0xFF, 0xF9, 0xFB, 0xD3, 0xFF, 0xFB, 0xFC, 0xD8, 0xFF, 0xFD, 0xFC, 0xDD, 0xFF, 0xFC, 0xFD, + 0xDB, 0xFF, 0xFC, 0xFE, 0xD8, 0xFF, 0xFB, 0xFD, 0xD8, 0xFF, 0xFA, 0xFC, 0xD9, 0xFF, 0xFA, 0xFA, 0xE4, 0xFF, 0xF6, + 0xE9, 0xA3, 0xFF, 0xFB, 0xAC, 0x2A, 0xFF, 0xFA, 0xB9, 0x2E, 0xFF, 0xED, 0xAD, 0x1A, 0xFF, 0xF7, 0xDA, 0x99, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xFD, 0xFE, 0xFF, 0xFC, 0xFE, 0xFE, 0xFF, 0xFD, 0xFF, 0xFF, 0xFF, 0xF9, 0xD4, 0x8C, + 0xFF, 0xF5, 0xA8, 0x19, 0xFF, 0xF7, 0xA9, 0x17, 0xFF, 0xF8, 0xA9, 0x16, 0xFF, 0xF3, 0xA7, 0x1A, 0xFF, 0xED, 0xA5, + 0x1E, 0xFF, 0xF1, 0xA7, 0x1F, 0xFF, 0xF6, 0xA9, 0x20, 0xFF, 0xF6, 0xA7, 0x1D, 0xFF, 0xF6, 0xA5, 0x1A, 0xFF, 0xF8, + 0xA3, 0x16, 0xFF, 0xFA, 0xA1, 0x12, 0xFF, 0xFC, 0x9D, 0x0A, 0xFF, 0xFE, 0x98, 0x03, 0xFF, 0xF9, 0xA1, 0x25, 0xFF, + 0xB0, 0xC0, 0x6F, 0xFF, 0x5D, 0xC9, 0xCF, 0xFF, 0x27, 0xE5, 0xFF, 0xFF, 0xB3, 0xB4, 0x73, 0xFF, 0xF9, 0x97, 0x0B, + 0xFF, 0xF3, 0x9A, 0x11, 0xFF, 0xED, 0x9D, 0x17, 0xFF, 0xEE, 0x9B, 0x15, 0xFF, 0xEE, 0x9A, 0x13, 0xFF, 0xEC, 0x98, + 0x11, 0xFF, 0xEA, 0x96, 0x0F, 0xFF, 0xEA, 0x96, 0x0F, 0xFF, 0xF6, 0xD1, 0x5D, 0xFF, 0xF5, 0xD1, 0x5A, 0xFF, 0xF4, + 0xD2, 0x58, 0xFF, 0xF3, 0xCE, 0x53, 0xFF, 0xFA, 0xD1, 0x56, 0xFF, 0xE6, 0xB1, 0x3F, 0xFF, 0xC6, 0x64, 0x01, 0xFF, + 0xCE, 0x75, 0x02, 0xFF, 0xD7, 0x87, 0x04, 0xFF, 0xDD, 0x95, 0x02, 0xFF, 0xE4, 0xA4, 0x00, 0xFF, 0xEA, 0xB0, 0x03, + 0xFF, 0xF1, 0xBD, 0x06, 0xFF, 0xF2, 0xC8, 0x1B, 0xFF, 0xFB, 0xD5, 0x42, 0xFF, 0xFB, 0xDD, 0x63, 0xFF, 0xFB, 0xE5, + 0x84, 0xFF, 0xFC, 0xEB, 0x98, 0xFF, 0xFC, 0xF1, 0xAB, 0xFF, 0xFF, 0xF8, 0xBD, 0xFF, 0xFF, 0xFF, 0xCF, 0xFF, 0xFF, + 0xFC, 0xCF, 0xFF, 0xFB, 0xF9, 0xCF, 0xFF, 0xFD, 0xFE, 0xD2, 0xFF, 0xFF, 0xFF, 0xD4, 0xFF, 0xFF, 0xF9, 0xC6, 0xFF, + 0xFF, 0xEE, 0xB7, 0xFF, 0xD9, 0xD7, 0x59, 0xFF, 0xE9, 0xB9, 0x40, 0xFF, 0xFF, 0xB9, 0x2E, 0xFF, 0xEF, 0xB1, 0x2B, + 0xFF, 0xEB, 0xAF, 0x27, 0xFF, 0xF1, 0xEF, 0xDD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFE, 0xFF, 0xFD, 0xFE, + 0xFF, 0xFF, 0xF9, 0xFD, 0xFF, 0xFF, 0xF9, 0xFF, 0xFF, 0xFF, 0xF9, 0xFF, 0xFF, 0xFF, 0xF0, 0xE8, 0xC1, 0xFF, 0xE6, + 0xCD, 0x83, 0xFF, 0xE8, 0xBB, 0x52, 0xFF, 0xEB, 0xA9, 0x21, 0xFF, 0xFF, 0xA1, 0x13, 0xFF, 0xF7, 0x9F, 0x06, 0xFF, + 0xF8, 0x9F, 0x0F, 0xFF, 0xEA, 0xA3, 0x18, 0xFF, 0xE0, 0xB1, 0x43, 0xFF, 0xC9, 0xC2, 0x6D, 0xFF, 0x99, 0xD6, 0xAF, + 0xFF, 0x6A, 0xEB, 0xF1, 0xFF, 0x31, 0xEE, 0xEB, 0xFF, 0x47, 0xE6, 0xF8, 0xFF, 0x3A, 0xE1, 0xFF, 0xFF, 0x41, 0xE1, + 0xFC, 0xFF, 0xF4, 0x98, 0x00, 0xFF, 0xFC, 0xA1, 0x19, 0xFF, 0xF6, 0x9E, 0x15, 0xFF, 0xF1, 0x9A, 0x11, 0xFF, 0xF0, + 0x9A, 0x13, 0xFF, 0xF0, 0x99, 0x14, 0xFF, 0xEE, 0x97, 0x12, 0xFF, 0xEC, 0x95, 0x10, 0xFF, 0xEC, 0x95, 0x10, 0xFF, + 0xF5, 0xCF, 0x5C, 0xFF, 0xF6, 0xD1, 0x5A, 0xFF, 0xF6, 0xD4, 0x59, 0xFF, 0xF2, 0xCD, 0x51, 0xFF, 0xFE, 0xD6, 0x59, + 0xFF, 0xD5, 0x8B, 0x29, 0xFF, 0xCB, 0x6C, 0x02, 0xFF, 0xD1, 0x7A, 0x01, 0xFF, 0xD8, 0x89, 0x01, 0xFF, 0xDE, 0x97, + 0x00, 0xFF, 0xE5, 0xA5, 0x00, 0xFF, 0xEC, 0xB2, 0x00, 0xFF, 0xF3, 0xBE, 0x02, 0xFF, 0xF1, 0xC7, 0x08, 0xFF, 0xFE, + 0xD5, 0x35, 0xFF, 0xFD, 0xDD, 0x58, 0xFF, 0xFB, 0xE4, 0x7C, 0xFF, 0xFC, 0xEA, 0x91, 0xFF, 0xFE, 0xEF, 0xA6, 0xFF, + 0xFE, 0xF2, 0xB0, 0xFF, 0xFE, 0xF5, 0xBA, 0xFF, 0xFC, 0xF5, 0xBD, 0xFF, 0xF9, 0xF5, 0xC0, 0xFF, 0xF6, 0xF7, 0xC0, + 0xFF, 0xF4, 0xF9, 0xC1, 0xFF, 0xFC, 0xFC, 0xC6, 0xFF, 0xFF, 0xFF, 0xCC, 0xFF, 0xF7, 0xF8, 0xC1, 0xFF, 0xF3, 0xCC, + 0x59, 0xFF, 0xF2, 0xB0, 0x38, 0xFF, 0xF5, 0xBA, 0x37, 0xFF, 0xF7, 0xB4, 0x29, 0xFF, 0xF8, 0xFB, 0xFC, 0xFF, 0xFF, + 0xFD, 0xFC, 0xFF, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xF6, 0xFC, 0xFF, 0xFF, 0xF2, 0xFE, 0xFC, 0xFF, + 0xEE, 0xFF, 0xF6, 0xFF, 0xE9, 0xFF, 0xFC, 0xFF, 0xE4, 0xFF, 0xFF, 0xFF, 0xD7, 0xFF, 0xFF, 0xFF, 0xCA, 0xFF, 0xFF, + 0xFF, 0xF1, 0xFB, 0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0xFF, 0xC1, 0xFD, 0xFC, 0xFF, 0x88, 0xFF, 0xF6, 0xFF, 0x91, 0xFD, + 0xFB, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0x6C, 0xFC, 0xFC, 0xFF, 0x59, 0xF6, 0xF9, 0xFF, 0x58, 0xEF, 0xF8, 0xFF, 0x57, + 0xE9, 0xF7, 0xFF, 0x59, 0xE3, 0xF6, 0xFF, 0x67, 0xD2, 0xD0, 0xFF, 0xFF, 0x98, 0x08, 0xFF, 0xEF, 0x9A, 0x17, 0xFF, + 0xF1, 0x99, 0x12, 0xFF, 0xF4, 0x98, 0x0C, 0xFF, 0xF3, 0x99, 0x10, 0xFF, 0xF1, 0x99, 0x15, 0xFF, 0xEF, 0x97, 0x13, + 0xFF, 0xED, 0x95, 0x11, 0xFF, 0xED, 0x95, 0x11, 0xFF, 0xF9, 0xD1, 0x5E, 0xFF, 0xF7, 0xD3, 0x5B, 0xFF, 0xF6, 0xD4, + 0x59, 0xFF, 0xF8, 0xD3, 0x57, 0xFF, 0xFF, 0xDA, 0x5E, 0xFF, 0xCD, 0x70, 0x19, 0xFF, 0xCC, 0x6D, 0x02, 0xFF, 0xD2, + 0x7B, 0x03, 0xFF, 0xD9, 0x88, 0x04, 0xFF, 0xDF, 0x96, 0x04, 0xFF, 0xE6, 0xA5, 0x04, 0xFF, 0xE6, 0xAD, 0x01, 0xFF, + 0xE7, 0xB4, 0x00, 0xFF, 0xEA, 0xBE, 0x06, 0xFF, 0xF5, 0xCA, 0x23, 0xFF, 0xF8, 0xD7, 0x4B, 0xFF, 0xFB, 0xE3, 0x74, + 0xFF, 0xFC, 0xE8, 0x89, 0xFF, 0xFE, 0xEC, 0x9E, 0xFF, 0xFE, 0xED, 0xA5, 0xFF, 0xFE, 0xEE, 0xAB, 0xFF, 0xFB, 0xEF, + 0xAD, 0xFF, 0xF9, 0xEF, 0xB0, 0xFF, 0xF8, 0xF2, 0xB3, 0xFF, 0xF8, 0xF5, 0xB6, 0xFF, 0xFC, 0xF8, 0xB5, 0xFF, 0xFF, + 0xFB, 0xB5, 0xFF, 0xFF, 0xF3, 0xD9, 0xFF, 0xF1, 0xB9, 0x1A, 0xFF, 0xF3, 0xB3, 0x28, 0xFF, 0xF6, 0xB3, 0x2A, 0xFF, + 0xF3, 0xCE, 0x73, 0xFF, 0xF5, 0xFD, 0xFD, 0xFF, 0xF9, 0xFE, 0xFD, 0xFF, 0xFE, 0xFF, 0xFD, 0xFF, 0xF8, 0xFE, 0xFF, + 0xFF, 0xF3, 0xFD, 0xFF, 0xFF, 0xEE, 0xFE, 0xFD, 0xFF, 0xE9, 0xFE, 0xFA, 0xFF, 0xE3, 0xFF, 0xFC, 0xFF, 0xDE, 0xFF, + 0xFF, 0xFF, 0xD0, 0xFF, 0xFF, 0xFF, 0xC2, 0xFF, 0xFF, 0xFF, 0xD6, 0xFA, 0xFC, 0xFF, 0xF3, 0xFC, 0xFF, 0xFF, 0xBF, + 0xFF, 0xFE, 0xFF, 0xC4, 0xFA, 0xFC, 0xFF, 0x84, 0xFF, 0xFC, 0xFF, 0x8A, 0xFA, 0xFB, 0xFF, 0x79, 0xF6, 0xFA, 0xFF, + 0x68, 0xF2, 0xF9, 0xFF, 0x5E, 0xED, 0xF6, 0xFF, 0x53, 0xE8, 0xF4, 0xFF, 0x48, 0xE8, 0xF7, 0xFF, 0xA8, 0xBC, 0x87, + 0xFF, 0xFB, 0x9A, 0x10, 0xFF, 0xF1, 0x9B, 0x17, 0xFF, 0xF1, 0x9A, 0x14, 0xFF, 0xF1, 0x9A, 0x10, 0xFF, 0xF2, 0x99, + 0x13, 0xFF, 0xF3, 0x98, 0x16, 0xFF, 0xF1, 0x96, 0x14, 0xFF, 0xEF, 0x94, 0x12, 0xFF, 0xEF, 0x94, 0x12, 0xFF, 0xFC, + 0xD4, 0x61, 0xFF, 0xF9, 0xD4, 0x5D, 0xFF, 0xF6, 0xD4, 0x58, 0xFF, 0xF5, 0xD1, 0x55, 0xFF, 0xF5, 0xCE, 0x53, 0xFF, + 0xBD, 0x4D, 0x01, 0xFF, 0xCD, 0x6E, 0x02, 0xFF, 0xD3, 0x7B, 0x04, 0xFF, 0xDA, 0x87, 0x06, 0xFF, 0xE0, 0x96, 0x09, + 0xFF, 0xE6, 0xA5, 0x0C, 0xFF, 0xE9, 0xB0, 0x0A, 0xFF, 0xEB, 0xBA, 0x09, 0xFF, 0xF3, 0xC5, 0x15, 0xFF, 0xFB, 0xD0, + 0x21, 0xFF, 0xFB, 0xD9, 0x46, 0xFF, 0xFB, 0xE3, 0x6B, 0xFF, 0xFC, 0xE6, 0x81, 0xFF, 0xFD, 0xE9, 0x97, 0xFF, 0xFD, + 0xE8, 0x99, 0xFF, 0xFD, 0xE8, 0x9B, 0xFF, 0xFB, 0xE8, 0x9D, 0xFF, 0xF8, 0xE9, 0x9F, 0xFF, 0xFA, 0xEE, 0xA5, 0xFF, + 0xFC, 0xF2, 0xAB, 0xFF, 0xFB, 0xEF, 0xB0, 0xFF, 0xFB, 0xEB, 0xB4, 0xFF, 0xF8, 0xDD, 0x89, 0xFF, 0xF3, 0xB4, 0x27, + 0xFF, 0xF7, 0xBD, 0x3E, 0xFF, 0xF7, 0xAC, 0x1E, 0xFF, 0xF0, 0xE8, 0xBC, 0xFF, 0xF2, 0xFF, 0xFE, 0xFF, 0xF3, 0xFF, + 0xFD, 0xFF, 0xF4, 0xFE, 0xFD, 0xFF, 0xF2, 0xFE, 0xFD, 0xFF, 0xEF, 0xFE, 0xFE, 0xFF, 0xE9, 0xFE, 0xFE, 0xFF, 0xE3, + 0xFE, 0xFE, 0xFF, 0xDD, 0xFD, 0xFD, 0xFF, 0xD7, 0xFD, 0xFD, 0xFF, 0xC8, 0xFE, 0xFC, 0xFF, 0xB9, 0xFF, 0xFB, 0xFF, + 0x9F, 0xFE, 0xF5, 0xFF, 0xCE, 0xFF, 0xFF, 0xFF, 0xF5, 0xF9, 0xFF, 0xFF, 0xC8, 0xFF, 0xFF, 0xFF, 0xBD, 0xF7, 0xFC, + 0xFF, 0x7A, 0xF8, 0xF8, 0xFF, 0x6B, 0xF5, 0xF8, 0xFF, 0x5C, 0xF3, 0xF9, 0xFF, 0x55, 0xED, 0xF5, 0xFF, 0x4F, 0xE8, + 0xF1, 0xFF, 0x37, 0xEE, 0xF8, 0xFF, 0xE9, 0xA6, 0x3E, 0xFF, 0xF5, 0x9C, 0x17, 0xFF, 0xF4, 0x9D, 0x17, 0xFF, 0xF1, + 0x9C, 0x15, 0xFF, 0xEE, 0x9B, 0x14, 0xFF, 0xF1, 0x99, 0x15, 0xFF, 0xF4, 0x97, 0x17, 0xFF, 0xF2, 0x95, 0x15, 0xFF, + 0xF0, 0x93, 0x13, 0xFF, 0xF0, 0x93, 0x13, 0xFF, 0xFB, 0xD6, 0x66, 0xFF, 0xF4, 0xD1, 0x5E, 0xFF, 0xF6, 0xD3, 0x5F, + 0xFF, 0xF9, 0xD7, 0x59, 0xFF, 0xDA, 0x9D, 0x39, 0xFF, 0xBE, 0x58, 0x08, 0xFF, 0xCD, 0x6C, 0x08, 0xFF, 0xD2, 0x79, + 0x0C, 0xFF, 0xD7, 0x87, 0x0F, 0xFF, 0xDF, 0x96, 0x11, 0xFF, 0xE7, 0xA5, 0x13, 0xFF, 0xEA, 0xB0, 0x13, 0xFF, 0xF5, + 0xC2, 0x1B, 0xFF, 0xF3, 0xC8, 0x0F, 0xFF, 0xF9, 0xD0, 0x16, 0xFF, 0xF4, 0xD2, 0x27, 0xFF, 0xF7, 0xD6, 0x4B, 0xFF, + 0xF8, 0xDA, 0x60, 0xFF, 0xF9, 0xDE, 0x76, 0xFF, 0xF9, 0xDF, 0x7F, 0xFF, 0xFA, 0xE0, 0x87, 0xFF, 0xFB, 0xE4, 0x8C, + 0xFF, 0xFB, 0xE7, 0x91, 0xFF, 0xFC, 0xEA, 0x95, 0xFF, 0xFC, 0xED, 0x9A, 0xFF, 0xFB, 0xEA, 0x9E, 0xFF, 0xFA, 0xE7, + 0xA3, 0xFF, 0xFA, 0xCC, 0x5E, 0xFF, 0xF5, 0xB6, 0x2C, 0xFF, 0xF9, 0xB8, 0x24, 0xFF, 0xF5, 0xB1, 0x14, 0xFF, 0xFF, + 0xFB, 0xFF, 0xFF, 0xEC, 0xFF, 0xFD, 0xFF, 0xED, 0xFF, 0xFF, 0xFF, 0xED, 0xFF, 0xFF, 0xFF, 0xEC, 0xFE, 0xFF, 0xFF, + 0xEA, 0xFD, 0xFD, 0xFF, 0xE3, 0xFD, 0xFD, 0xFF, 0xDC, 0xFD, 0xFD, 0xFF, 0xD5, 0xFD, 0xFD, 0xFF, 0xCE, 0xFD, 0xFD, + 0xFF, 0xC1, 0xFC, 0xFC, 0xFF, 0xB4, 0xFB, 0xFB, 0xFF, 0x8D, 0xFA, 0xF5, 0xFF, 0x89, 0xFC, 0xF8, 0xFF, 0xCB, 0xFA, + 0xF8, 0xFF, 0xF1, 0xFE, 0xF7, 0xFF, 0xBD, 0xFF, 0xF9, 0xFF, 0xC2, 0xF9, 0xFA, 0xFF, 0xAC, 0xF8, 0xFB, 0xFF, 0x96, + 0xF7, 0xFC, 0xFF, 0x91, 0xF4, 0xF9, 0xFF, 0x8C, 0xF0, 0xF7, 0xFF, 0xA8, 0xE4, 0xFF, 0xFF, 0xF6, 0x95, 0x00, 0xFF, + 0xF6, 0x99, 0x07, 0xFF, 0xF7, 0x9D, 0x15, 0xFF, 0xF3, 0x9D, 0x15, 0xFF, 0xF0, 0x9C, 0x15, 0xFF, 0xF2, 0x9A, 0x15, + 0xFF, 0xF4, 0x98, 0x15, 0xFF, 0xF2, 0x97, 0x14, 0xFF, 0xF1, 0x95, 0x12, 0xFF, 0xF1, 0x95, 0x12, 0xFF, 0xFA, 0xD9, + 0x6A, 0xFF, 0xF0, 0xCE, 0x60, 0xFF, 0xF6, 0xD2, 0x66, 0xFF, 0xFD, 0xDD, 0x5C, 0xFF, 0xC0, 0x6C, 0x1E, 0xFF, 0xBE, + 0x63, 0x0E, 0xFF, 0xCD, 0x69, 0x0E, 0xFF, 0xD0, 0x78, 0x13, 0xFF, 0xD4, 0x87, 0x18, 0xFF, 0xDE, 0x96, 0x19, 0xFF, + 0xE9, 0xA6, 0x1A, 0xFF, 0xE3, 0xA8, 0x13, 0xFF, 0xEE, 0xBA, 0x1D, 0xFF, 0xEA, 0xBD, 0x0C, 0xFF, 0xF6, 0xC5, 0x22, + 0xFF, 0xEC, 0xC5, 0x13, 0xFF, 0xF2, 0xCA, 0x2A, 0xFF, 0xF3, 0xCF, 0x40, 0xFF, 0xF4, 0xD3, 0x56, 0xFF, 0xF5, 0xD6, + 0x65, 0xFF, 0xF7, 0xD9, 0x74, 0xFF, 0xFA, 0xDF, 0x7B, 0xFF, 0xFE, 0xE4, 0x82, 0xFF, 0xFD, 0xE6, 0x86, 0xFF, 0xFD, + 0xE7, 0x89, 0xFF, 0xFB, 0xE4, 0x8D, 0xFF, 0xF9, 0xE2, 0x92, 0xFF, 0xFC, 0xBB, 0x33, 0xFF, 0xF6, 0xB9, 0x31, 0xFF, + 0xFD, 0xBA, 0x31, 0xFF, 0xF7, 0xC4, 0x57, 0xFF, 0xDE, 0xFF, 0xF3, 0xFF, 0xE6, 0xFF, 0xFD, 0xFF, 0xE6, 0xFF, 0xFF, + 0xFF, 0xE6, 0xFF, 0xFF, 0xFF, 0xE6, 0xFE, 0xFF, 0xFF, 0xE5, 0xFC, 0xFD, 0xFF, 0xDD, 0xFC, 0xFD, 0xFF, 0xD5, 0xFC, + 0xFD, 0xFF, 0xCD, 0xFD, 0xFD, 0xFF, 0xC5, 0xFD, 0xFD, 0xFF, 0xBA, 0xFA, 0xFC, 0xFF, 0xAF, 0xF7, 0xFB, 0xFF, 0x9E, + 0xF9, 0xFE, 0xFF, 0x8D, 0xFB, 0xFF, 0xFF, 0x77, 0xFE, 0xFA, 0xFF, 0x7D, 0xFB, 0xF4, 0xFF, 0xD2, 0xF7, 0xF8, 0xFF, + 0xEE, 0xFF, 0xFD, 0xFF, 0xDF, 0xFD, 0xFE, 0xFF, 0xD0, 0xFB, 0xFE, 0xFF, 0xCD, 0xFA, 0xFD, 0xFF, 0xC9, 0xF9, 0xFC, + 0xFF, 0xCD, 0xD2, 0xA6, 0xFF, 0xEA, 0x98, 0x02, 0xFF, 0xEC, 0xA0, 0x1E, 0xFF, 0xF9, 0x9E, 0x13, 0xFF, 0xF6, 0x9E, + 0x15, 0xFF, 0xF2, 0x9D, 0x16, 0xFF, 0xF2, 0x9B, 0x15, 0xFF, 0xF3, 0x99, 0x14, 0xFF, 0xF2, 0x98, 0x13, 0xFF, 0xF1, + 0x97, 0x12, 0xFF, 0xF1, 0x97, 0x12, 0xFF, 0xF3, 0xD4, 0x55, 0xFF, 0xF0, 0xD1, 0x5B, 0xFF, 0xF6, 0xD6, 0x69, 0xFF, + 0xFF, 0xE2, 0x6D, 0xFF, 0xA7, 0x4F, 0x0B, 0xFF, 0xBE, 0x60, 0x11, 0xFF, 0xCD, 0x6A, 0x0F, 0xFF, 0xD5, 0x83, 0x1F, + 0xFF, 0xDC, 0x89, 0x1E, 0xFF, 0xDD, 0x8B, 0x0F, 0xFF, 0xE0, 0x9B, 0x1A, 0xFF, 0xF3, 0xB0, 0x22, 0xFF, 0xE0, 0xAA, + 0x1D, 0xFF, 0xDF, 0xAE, 0x13, 0xFF, 0xEE, 0xBC, 0x25, 0xFF, 0xE6, 0xB9, 0x14, 0xFF, 0xEF, 0xC1, 0x1F, 0xFF, 0xEF, + 0xC7, 0x25, 0xFF, 0xEE, 0xCD, 0x2B, 0xFF, 0xF0, 0xCD, 0x3C, 0xFF, 0xF3, 0xCE, 0x4E, 0xFF, 0xF8, 0xD6, 0x5B, 0xFF, + 0xFE, 0xDE, 0x68, 0xFF, 0xFC, 0xDD, 0x6D, 0xFF, 0xFA, 0xDC, 0x73, 0xFF, 0xF5, 0xDD, 0x75, 0xFF, 0xF6, 0xD3, 0x70, + 0xFF, 0xFB, 0xBA, 0x30, 0xFF, 0xF5, 0xB8, 0x33, 0xFF, 0xFE, 0xB5, 0x24, 0xFF, 0xE4, 0xDE, 0xA3, 0xFF, 0xDC, 0xFF, + 0xF9, 0xFF, 0xDC, 0xFD, 0xFD, 0xFF, 0xDC, 0xFE, 0xFE, 0xFF, 0xDB, 0xFF, 0xFF, 0xFF, 0xDA, 0xFE, 0xFE, 0xFF, 0xD9, + 0xFD, 0xFC, 0xFF, 0xD2, 0xFD, 0xFC, 0xFF, 0xCA, 0xFD, 0xFC, 0xFF, 0xC3, 0xFD, 0xFD, 0xFF, 0xBB, 0xFD, 0xFD, 0xFF, + 0xAF, 0xFB, 0xFC, 0xFF, 0xA2, 0xFA, 0xFC, 0xFF, 0x92, 0xFA, 0xFD, 0xFF, 0x83, 0xFB, 0xFE, 0xFF, 0x6A, 0xFD, 0xFB, + 0xFF, 0x60, 0xFC, 0xF8, 0xFF, 0x5D, 0xF8, 0xFA, 0xFF, 0x4C, 0xF7, 0xFC, 0xFF, 0x76, 0xF4, 0xFD, 0xFF, 0xA0, 0xF2, + 0xFE, 0xFF, 0x87, 0xEC, 0xF5, 0xFF, 0x5F, 0xE3, 0xF7, 0xFF, 0xB4, 0xBB, 0x50, 0xFF, 0xFE, 0x99, 0x0C, 0xFF, 0xF7, + 0x9E, 0x1A, 0xFF, 0xF6, 0x9D, 0x15, 0xFF, 0xF4, 0x9D, 0x15, 0xFF, 0xF2, 0x9C, 0x15, 0xFF, 0xF2, 0x9B, 0x14, 0xFF, + 0xF1, 0x99, 0x12, 0xFF, 0xF1, 0x99, 0x12, 0xFF, 0xF1, 0x99, 0x12, 0xFF, 0xF1, 0x99, 0x12, 0xFF, 0xFD, 0xD3, 0x66, + 0xFF, 0xF9, 0xD6, 0x69, 0xFF, 0xF5, 0xD9, 0x6B, 0xFF, 0xDC, 0xB6, 0x4E, 0xFF, 0xAE, 0x52, 0x18, 0xFF, 0xC6, 0x66, + 0x1C, 0xFF, 0xBD, 0x5A, 0x00, 0xFF, 0xCA, 0x7D, 0x1A, 0xFF, 0xD4, 0x7B, 0x15, 0xFF, 0xDC, 0x81, 0x04, 0xFF, 0xE7, + 0xA0, 0x2A, 0xFF, 0xD3, 0x88, 0x00, 0xFF, 0xE2, 0xAB, 0x2D, 0xFF, 0xDC, 0xA7, 0x23, 0xFF, 0xE6, 0xB3, 0x29, 0xFF, + 0xE0, 0xAD, 0x16, 0xFF, 0xEB, 0xB7, 0x14, 0xFF, 0xEA, 0xB9, 0x15, 0xFF, 0xE9, 0xBA, 0x16, 0xFF, 0xEC, 0xBE, 0x1F, + 0xFF, 0xEE, 0xC2, 0x28, 0xFF, 0xF6, 0xCD, 0x3B, 0xFF, 0xFE, 0xD8, 0x4E, 0xFF, 0xFB, 0xD5, 0x55, 0xFF, 0xF7, 0xD1, + 0x5D, 0xFF, 0xEF, 0xD6, 0x5D, 0xFF, 0xF3, 0xC4, 0x4E, 0xFF, 0xFA, 0xB9, 0x2E, 0xFF, 0xF4, 0xB8, 0x35, 0xFF, 0xFF, + 0xB1, 0x17, 0xFF, 0xD1, 0xF7, 0xF0, 0xFF, 0xDA, 0xFF, 0xFE, 0xFF, 0xD2, 0xFC, 0xFC, 0xFF, 0xD1, 0xFD, 0xFD, 0xFF, + 0xD0, 0xFE, 0xFD, 0xFF, 0xCF, 0xFD, 0xFC, 0xFF, 0xCD, 0xFD, 0xFB, 0xFF, 0xC6, 0xFD, 0xFC, 0xFF, 0xBF, 0xFD, 0xFC, + 0xFF, 0xB9, 0xFD, 0xFD, 0xFF, 0xB2, 0xFC, 0xFD, 0xFF, 0xA3, 0xFC, 0xFD, 0xFF, 0x95, 0xFC, 0xFD, 0xFF, 0x87, 0xFC, + 0xFC, 0xFF, 0x78, 0xFB, 0xFC, 0xFF, 0x6C, 0xFA, 0xFD, 0xFF, 0x5F, 0xF8, 0xFD, 0xFF, 0x45, 0xF6, 0xF9, 0xFF, 0x47, + 0xEF, 0xF5, 0xFF, 0x37, 0xE9, 0xF2, 0xFF, 0x28, 0xE4, 0xEE, 0xFF, 0x24, 0xE3, 0xED, 0xFF, 0x05, 0xDD, 0xFF, 0xFF, + 0xFF, 0x99, 0x03, 0xFF, 0xF5, 0xA0, 0x16, 0xFF, 0xF4, 0x9E, 0x16, 0xFF, 0xF3, 0x9C, 0x16, 0xFF, 0xF2, 0x9C, 0x15, + 0xFF, 0xF2, 0x9B, 0x14, 0xFF, 0xF1, 0x9A, 0x12, 0xFF, 0xEF, 0x99, 0x10, 0xFF, 0xF0, 0x9A, 0x11, 0xFF, 0xF1, 0x9B, + 0x12, 0xFF, 0xF1, 0x9B, 0x12, 0xFF, 0xFB, 0xD5, 0x65, 0xFF, 0xFC, 0xD4, 0x70, 0xFF, 0xFF, 0xE2, 0x77, 0xFF, 0xC7, + 0x86, 0x3B, 0xFF, 0xBA, 0x5F, 0x23, 0xFF, 0xBA, 0x6A, 0x1E, 0xFF, 0xD0, 0x7A, 0x21, 0xFF, 0xD7, 0x87, 0x27, 0xFF, + 0xD6, 0x8C, 0x24, 0xFF, 0xD3, 0x8D, 0x1D, 0xFF, 0xD0, 0x88, 0x21, 0xFF, 0xEA, 0xA0, 0x2B, 0xFF, 0xD5, 0x95, 0x21, + 0xFF, 0xEE, 0xA9, 0x30, 0xFF, 0xDA, 0xA0, 0x20, 0xFF, 0xDD, 0xA1, 0x16, 0xFF, 0xDF, 0xA1, 0x0D, 0xFF, 0xE2, 0xAB, + 0x19, 0xFF, 0xEB, 0xB1, 0x12, 0xFF, 0xED, 0xB8, 0x0F, 0xFF, 0xEE, 0xBF, 0x0C, 0xFF, 0xEF, 0xC1, 0x1C, 0xFF, 0xF0, + 0xC3, 0x2C, 0xFF, 0xF1, 0xC4, 0x36, 0xFF, 0xF3, 0xC5, 0x40, 0xFF, 0xF1, 0xC9, 0x46, 0xFF, 0xF6, 0xC2, 0x45, 0xFF, + 0xF9, 0xBA, 0x31, 0xFF, 0xF6, 0xB7, 0x30, 0xFF, 0xF4, 0xC1, 0x4B, 0xFF, 0xC0, 0xFA, 0xF5, 0xFF, 0xC6, 0xFF, 0xFD, + 0xFF, 0xC4, 0xFC, 0xFC, 0xFF, 0xC4, 0xFC, 0xFD, 0xFF, 0xC3, 0xFD, 0xFD, 0xFF, 0xC2, 0xFD, 0xFC, 0xFF, 0xC1, 0xFC, + 0xFB, 0xFF, 0xB5, 0xF8, 0xF8, 0xFF, 0xB2, 0xFD, 0xFC, 0xFF, 0xAA, 0xFC, 0xFC, 0xFF, 0xA3, 0xFC, 0xFC, 0xFF, 0x95, + 0xFB, 0xFC, 0xFF, 0x88, 0xFB, 0xFB, 0xFF, 0x7A, 0xFB, 0xFB, 0xFF, 0x6D, 0xFA, 0xFB, 0xFF, 0x61, 0xF8, 0xFB, 0xFF, + 0x56, 0xF6, 0xFC, 0xFF, 0x44, 0xF2, 0xF8, 0xFF, 0x40, 0xEA, 0xF4, 0xFF, 0x31, 0xE5, 0xEF, 0xFF, 0x23, 0xDF, 0xEA, + 0xFF, 0x1C, 0xE0, 0xFA, 0xFF, 0x44, 0xD1, 0xC5, 0xFF, 0xFE, 0xA1, 0x0A, 0xFF, 0xF9, 0x9F, 0x15, 0xFF, 0xF5, 0x9F, + 0x17, 0xFF, 0xF2, 0x9F, 0x18, 0xFF, 0xF2, 0x9E, 0x16, 0xFF, 0xF2, 0x9D, 0x15, 0xFF, 0xF5, 0x9F, 0x16, 0xFF, 0xF8, + 0xA0, 0x18, 0xFF, 0xF5, 0x9D, 0x15, 0xFF, 0xF2, 0x9A, 0x12, 0xFF, 0xF2, 0x9A, 0x12, 0xFF, 0xF9, 0xD7, 0x64, 0xFF, + 0xF6, 0xD1, 0x64, 0xFF, 0xFF, 0xE6, 0x5D, 0xFF, 0x9A, 0x43, 0x03, 0xFF, 0xA5, 0x4B, 0x0D, 0xFF, 0xCC, 0x7B, 0x30, + 0xFF, 0xC0, 0x54, 0x04, 0xFF, 0xC9, 0x53, 0x00, 0xFF, 0xC5, 0x67, 0x03, 0xFF, 0xC9, 0x87, 0x25, 0xFF, 0xCA, 0x80, + 0x28, 0xFF, 0xD0, 0x88, 0x27, 0xFF, 0xD7, 0x90, 0x26, 0xFF, 0xC9, 0x74, 0x06, 0xFF, 0xCF, 0x8D, 0x17, 0xFF, 0xE1, + 0x9C, 0x1E, 0xFF, 0xE3, 0x9B, 0x16, 0xFF, 0xDA, 0x9E, 0x1E, 0xFF, 0xDD, 0x97, 0x00, 0xFF, 0xE6, 0xA4, 0x03, 0xFF, + 0xEE, 0xB1, 0x07, 0xFF, 0xE8, 0xB0, 0x08, 0xFF, 0xE2, 0xAE, 0x09, 0xFF, 0xE8, 0xB4, 0x16, 0xFF, 0xEF, 0xB9, 0x23, + 0xFF, 0xF4, 0xBD, 0x30, 0xFF, 0xF9, 0xC1, 0x3C, 0xFF, 0xF9, 0xBB, 0x34, 0xFF, 0xF9, 0xB6, 0x2C, 0xFF, 0xE8, 0xD2, + 0x80, 0xFF, 0xAE, 0xFD, 0xFA, 0xFF, 0xB2, 0xFC, 0xFB, 0xFF, 0xB6, 0xFB, 0xFC, 0xFF, 0xB6, 0xFC, 0xFC, 0xFF, 0xB6, + 0xFC, 0xFD, 0xFF, 0xB5, 0xFC, 0xFC, 0xFF, 0xB4, 0xFC, 0xFB, 0xFF, 0xA4, 0xF4, 0xF3, 0xFF, 0xA5, 0xFC, 0xFC, 0xFF, + 0x9C, 0xFC, 0xFC, 0xFF, 0x93, 0xFB, 0xFC, 0xFF, 0x87, 0xFB, 0xFB, 0xFF, 0x7A, 0xFA, 0xFA, 0xFF, 0x6D, 0xFA, 0xFA, + 0xFF, 0x61, 0xF9, 0xF9, 0xFF, 0x57, 0xF7, 0xFA, 0xFF, 0x4E, 0xF4, 0xFA, 0xFF, 0x44, 0xED, 0xF6, 0xFF, 0x3A, 0xE6, + 0xF3, 0xFF, 0x2C, 0xE1, 0xED, 0xFF, 0x1E, 0xDB, 0xE7, 0xFF, 0x19, 0xD1, 0xFF, 0xFF, 0x8F, 0xB0, 0x77, 0xFF, 0xFD, + 0xA0, 0x09, 0xFF, 0xFD, 0x9D, 0x14, 0xFF, 0xF7, 0x9F, 0x17, 0xFF, 0xF2, 0xA2, 0x1A, 0xFF, 0xF2, 0xA0, 0x18, 0xFF, + 0xF2, 0x9E, 0x16, 0xFF, 0xF1, 0x9B, 0x13, 0xFF, 0xF0, 0x98, 0x10, 0xFF, 0xF1, 0x99, 0x11, 0xFF, 0xF2, 0x9A, 0x12, + 0xFF, 0xF2, 0x9A, 0x12, 0xFF, 0xF7, 0xD4, 0x5F, 0xFF, 0xFC, 0xDC, 0x67, 0xFF, 0xF0, 0xC1, 0x4F, 0xFF, 0x8A, 0x2B, + 0x00, 0xFF, 0xBF, 0x6A, 0x2D, 0xFF, 0xAC, 0x47, 0x05, 0xFF, 0xB9, 0x43, 0x00, 0xFF, 0xC4, 0x85, 0x35, 0xFF, 0xBB, + 0x4D, 0x06, 0xFF, 0xC3, 0x61, 0x13, 0xFF, 0xCA, 0x70, 0x2C, 0xFF, 0xB3, 0x5A, 0x0F, 0xFF, 0xCC, 0x74, 0x21, 0xFF, + 0xC2, 0x69, 0x11, 0xFF, 0xC2, 0x78, 0x18, 0xFF, 0xD0, 0x80, 0x1C, 0xFF, 0xD6, 0x7F, 0x18, 0xFF, 0xD3, 0x86, 0x1A, + 0xFF, 0xDD, 0x8F, 0x10, 0xFF, 0xDA, 0x8C, 0x02, 0xFF, 0xE6, 0x99, 0x04, 0xFF, 0xE1, 0x9B, 0x04, 0xFF, 0xDC, 0x9D, + 0x04, 0xFF, 0xE1, 0xA6, 0x05, 0xFF, 0xDD, 0xA6, 0x00, 0xFF, 0xEE, 0xB6, 0x1F, 0xFF, 0xF6, 0xBD, 0x39, 0xFF, 0xF6, + 0xBB, 0x38, 0xFF, 0xFC, 0xB5, 0x24, 0xFF, 0xB8, 0xE8, 0xBF, 0xFF, 0xA2, 0xFE, 0xFA, 0xFF, 0xA5, 0xFC, 0xFB, 0xFF, + 0xA8, 0xFA, 0xFB, 0xFF, 0xA7, 0xFB, 0xFC, 0xFF, 0xA6, 0xFC, 0xFC, 0xFF, 0xA2, 0xFB, 0xFA, 0xFF, 0x9F, 0xFA, 0xF8, + 0xFF, 0x94, 0xF7, 0xF5, 0xFF, 0x92, 0xFB, 0xFA, 0xFF, 0x8B, 0xFB, 0xFA, 0xFF, 0x84, 0xFB, 0xFB, 0xFF, 0x78, 0xFA, + 0xFA, 0xFF, 0x6D, 0xF9, 0xF9, 0xFF, 0x61, 0xF9, 0xF9, 0xFF, 0x55, 0xF8, 0xF8, 0xFF, 0x4B, 0xF6, 0xF8, 0xFF, 0x41, + 0xF3, 0xF9, 0xFF, 0x39, 0xEC, 0xF5, 0xFF, 0x30, 0xE4, 0xF1, 0xFF, 0x28, 0xDD, 0xEE, 0xFF, 0x1F, 0xD6, 0xEB, 0xFF, + 0x00, 0xD9, 0xEE, 0xFF, 0xE4, 0xA6, 0x32, 0xFF, 0xFF, 0xA4, 0x18, 0xFF, 0xF3, 0xA4, 0x28, 0xFF, 0xF4, 0xA2, 0x20, + 0xFF, 0xF4, 0xA0, 0x18, 0xFF, 0xF4, 0x9E, 0x16, 0xFF, 0xF3, 0x9D, 0x15, 0xFF, 0xF2, 0x9B, 0x13, 0xFF, 0xF2, 0x99, + 0x11, 0xFF, 0xF2, 0x99, 0x11, 0xFF, 0xF3, 0x9A, 0x12, 0xFF, 0xF3, 0x9A, 0x12, 0xFF, 0xF5, 0xD1, 0x5B, 0xFF, 0xFA, + 0xDF, 0x62, 0xFF, 0xCC, 0x8C, 0x30, 0xFF, 0x91, 0x2C, 0x05, 0xFF, 0x9A, 0x49, 0x0E, 0xFF, 0x9E, 0x36, 0x00, 0xFF, + 0x96, 0x38, 0x00, 0xFF, 0xB6, 0x5E, 0x14, 0xFF, 0xD9, 0xAA, 0x53, 0xFF, 0xE2, 0xA6, 0x30, 0xFF, 0xEE, 0xBB, 0x44, + 0xFF, 0xFF, 0xDD, 0x6D, 0xFF, 0xF9, 0xDE, 0x76, 0xFF, 0xF9, 0xD9, 0x6C, 0xFF, 0xF8, 0xD4, 0x63, 0xFF, 0xF3, 0xC4, + 0x54, 0xFF, 0xED, 0xB4, 0x44, 0xFF, 0xD5, 0x8E, 0x23, 0xFF, 0xCE, 0x77, 0x11, 0xFF, 0xC6, 0x6C, 0x00, 0xFF, 0xDE, + 0x81, 0x02, 0xFF, 0xDA, 0x87, 0x00, 0xFF, 0xD6, 0x8D, 0x00, 0xFF, 0xE1, 0x9B, 0x06, 0xFF, 0xDC, 0x98, 0x00, 0xFF, + 0xF0, 0xB1, 0x22, 0xFF, 0xF4, 0xB9, 0x35, 0xFF, 0xF3, 0xBC, 0x3C, 0xFF, 0xFF, 0xB4, 0x1B, 0xFF, 0x89, 0xFD, 0xFE, + 0xFF, 0x95, 0xFF, 0xFA, 0xFF, 0x97, 0xFC, 0xFA, 0xFF, 0x99, 0xF8, 0xFB, 0xFF, 0x97, 0xFB, 0xFB, 0xFF, 0x95, 0xFD, + 0xFC, 0xFF, 0x8F, 0xFB, 0xF9, 0xFF, 0x89, 0xF9, 0xF6, 0xFF, 0x84, 0xF9, 0xF7, 0xFF, 0x7F, 0xF9, 0xF8, 0xFF, 0x7A, + 0xFA, 0xF9, 0xFF, 0x75, 0xFA, 0xFA, 0xFF, 0x6A, 0xF9, 0xF9, 0xFF, 0x5F, 0xF9, 0xF8, 0xFF, 0x54, 0xF8, 0xF7, 0xFF, + 0x49, 0xF7, 0xF6, 0xFF, 0x3F, 0xF5, 0xF7, 0xFF, 0x35, 0xF2, 0xF7, 0xFF, 0x2E, 0xEB, 0xF3, 0xFF, 0x27, 0xE3, 0xF0, + 0xFF, 0x24, 0xDA, 0xF0, 0xFF, 0x21, 0xD1, 0xF0, 0xFF, 0x23, 0xC9, 0xE8, 0xFF, 0xFF, 0x9B, 0x03, 0xFF, 0xF6, 0xA3, + 0x20, 0xFF, 0xF6, 0xA1, 0x16, 0xFF, 0xF7, 0x9F, 0x16, 0xFF, 0xF7, 0x9D, 0x16, 0xFF, 0xF6, 0x9C, 0x15, 0xFF, 0xF5, + 0x9B, 0x14, 0xFF, 0xF4, 0x9A, 0x13, 0xFF, 0xF3, 0x99, 0x12, 0xFF, 0xF3, 0x99, 0x12, 0xFF, 0xF3, 0x99, 0x12, 0xFF, + 0xF3, 0x99, 0x12, 0xFF, 0xFE, 0xE2, 0x5A, 0xFF, 0xFF, 0xD7, 0x64, 0xFF, 0x97, 0x46, 0x0C, 0xFF, 0x82, 0x25, 0x00, + 0xFF, 0xB7, 0x6A, 0x1D, 0xFF, 0xDE, 0xA2, 0x39, 0xFF, 0xFF, 0xE5, 0x5E, 0xFF, 0xFD, 0xD8, 0x51, 0xFF, 0xF5, 0xD6, + 0x4C, 0xFF, 0xF4, 0xCC, 0x48, 0xFF, 0xF6, 0xCF, 0x5E, 0xFF, 0xFE, 0xD9, 0x67, 0xFF, 0xF7, 0xD3, 0x61, 0xFF, 0xF8, + 0xD1, 0x5A, 0xFF, 0xFE, 0xCB, 0x41, 0xFF, 0xFE, 0xCE, 0x53, 0xFF, 0xF5, 0xCF, 0x51, 0xFF, 0xF6, 0xCA, 0x49, 0xFF, + 0xFF, 0xCD, 0x49, 0xFF, 0xFF, 0xB9, 0x3F, 0xFF, 0xDA, 0x7E, 0x0E, 0xFF, 0xC2, 0x69, 0x00, 0xFF, 0xDA, 0x84, 0x05, + 0xFF, 0xD5, 0x84, 0x01, 0xFF, 0xD8, 0x8C, 0x05, 0xFF, 0xF8, 0xBE, 0x37, 0xFF, 0xF6, 0xBE, 0x3A, 0xFF, 0xFF, 0xBD, + 0x34, 0xFF, 0xE1, 0xC6, 0x61, 0xFF, 0x79, 0xF3, 0xFB, 0xFF, 0x82, 0xFA, 0xF7, 0xFF, 0x83, 0xF9, 0xF9, 0xFF, 0x83, + 0xF7, 0xFA, 0xFF, 0x7F, 0xF7, 0xF8, 0xFF, 0x7B, 0xF6, 0xF6, 0xFF, 0x79, 0xF8, 0xF7, 0xFF, 0x77, 0xFA, 0xF8, 0xFF, + 0x71, 0xF9, 0xF7, 0xFF, 0x6C, 0xF8, 0xF7, 0xFF, 0x6B, 0xFC, 0xFB, 0xFF, 0x63, 0xF8, 0xF8, 0xFF, 0x5A, 0xF7, 0xF8, + 0xFF, 0x52, 0xF7, 0xF7, 0xFF, 0x48, 0xF5, 0xF7, 0xFF, 0x3F, 0xF4, 0xF6, 0xFF, 0x37, 0xF2, 0xF5, 0xFF, 0x2F, 0xEF, + 0xF4, 0xFF, 0x27, 0xE6, 0xF1, 0xFF, 0x20, 0xDD, 0xEE, 0xFF, 0x1F, 0xD6, 0xEA, 0xFF, 0x10, 0xCC, 0xF1, 0xFF, 0x6C, + 0xB9, 0x9D, 0xFF, 0xFE, 0x9F, 0x0B, 0xFF, 0xF8, 0xA3, 0x1A, 0xFF, 0xF9, 0xA2, 0x16, 0xFF, 0xF8, 0xA0, 0x16, 0xFF, + 0xF7, 0x9E, 0x16, 0xFF, 0xF7, 0x9D, 0x15, 0xFF, 0xF6, 0x9B, 0x14, 0xFF, 0xF5, 0x9A, 0x14, 0xFF, 0xF4, 0x99, 0x13, + 0xFF, 0xF4, 0x99, 0x13, 0xFF, 0xF4, 0x99, 0x13, 0xFF, 0xF4, 0x99, 0x13, 0xFF, 0xF8, 0xD8, 0x60, 0xFF, 0xF7, 0xD8, + 0x5A, 0xFF, 0xD7, 0xAD, 0x4B, 0xFF, 0xFF, 0xDD, 0x68, 0xFF, 0xF7, 0xDC, 0x55, 0xFF, 0xFC, 0xD6, 0x55, 0xFF, 0xFF, + 0xCF, 0x54, 0xFF, 0xFF, 0xD5, 0x5C, 0xFF, 0xF1, 0xCA, 0x53, 0xFF, 0xF5, 0xCA, 0x4A, 0xFF, 0xF9, 0xC9, 0x42, 0xFF, + 0xF7, 0xC9, 0x47, 0xFF, 0xF5, 0xC8, 0x4B, 0xFF, 0xF0, 0xCF, 0x5C, 0xFF, 0xF8, 0xCC, 0x46, 0xFF, 0xFF, 0xCA, 0x55, + 0xFF, 0xF9, 0xC3, 0x3E, 0xFF, 0xFB, 0xC2, 0x43, 0xFF, 0xFC, 0xC1, 0x48, 0xFF, 0xF3, 0xBE, 0x3E, 0xFF, 0xFA, 0xCB, + 0x43, 0xFF, 0xFC, 0xB3, 0x37, 0xFF, 0xDD, 0x7B, 0x0B, 0xFF, 0xC8, 0x6D, 0x00, 0xFF, 0xD4, 0x7F, 0x0D, 0xFF, 0xFF, + 0xCC, 0x4D, 0xFF, 0xF9, 0xC2, 0x3E, 0xFF, 0xFF, 0xC1, 0x2D, 0xFF, 0xA7, 0xDE, 0xA7, 0xFF, 0x5B, 0xEB, 0xF7, 0xFF, + 0x6F, 0xF5, 0xF4, 0xFF, 0x6E, 0xF5, 0xF7, 0xFF, 0x6D, 0xF6, 0xF9, 0xFF, 0x67, 0xF3, 0xF5, 0xFF, 0x60, 0xF0, 0xF1, + 0xFF, 0x62, 0xF6, 0xF5, 0xFF, 0x65, 0xFC, 0xFA, 0xFF, 0x5E, 0xF9, 0xF8, 0xFF, 0x58, 0xF6, 0xF5, 0xFF, 0x5D, 0xFE, + 0xFE, 0xFF, 0x52, 0xF6, 0xF6, 0xFF, 0x4B, 0xF5, 0xF6, 0xFF, 0x44, 0xF5, 0xF7, 0xFF, 0x3D, 0xF3, 0xF6, 0xFF, 0x35, + 0xF1, 0xF5, 0xFF, 0x2F, 0xEE, 0xF3, 0xFF, 0x28, 0xEB, 0xF0, 0xFF, 0x20, 0xE1, 0xEE, 0xFF, 0x18, 0xD8, 0xEC, 0xFF, + 0x1A, 0xD2, 0xE4, 0xFF, 0x00, 0xC6, 0xF3, 0xFF, 0xB4, 0xA8, 0x51, 0xFF, 0xFA, 0xA3, 0x13, 0xFF, 0xFB, 0xA3, 0x15, + 0xFF, 0xFB, 0xA3, 0x17, 0xFF, 0xFA, 0xA0, 0x16, 0xFF, 0xF8, 0x9E, 0x16, 0xFF, 0xF7, 0x9D, 0x15, 0xFF, 0xF7, 0x9C, + 0x15, 0xFF, 0xF6, 0x9A, 0x14, 0xFF, 0xF6, 0x99, 0x14, 0xFF, 0xF6, 0x99, 0x14, 0xFF, 0xF6, 0x99, 0x14, 0xFF, 0xF6, + 0x99, 0x14, 0xFF, 0xF1, 0xCE, 0x58, 0xFF, 0xFD, 0xDC, 0x59, 0xFF, 0xF8, 0xD5, 0x55, 0xFF, 0xFF, 0xDD, 0x5D, 0xFF, + 0xF3, 0xCE, 0x4D, 0xFF, 0xF3, 0xCB, 0x4C, 0xFF, 0xF3, 0xC8, 0x4C, 0xFF, 0xFB, 0xD1, 0x56, 0xFF, 0xFC, 0xD3, 0x58, + 0xFF, 0xFB, 0xCE, 0x4F, 0xFF, 0xFA, 0xC9, 0x47, 0xFF, 0xF9, 0xC8, 0x48, 0xFF, 0xF8, 0xC7, 0x49, 0xFF, 0xF5, 0xCA, + 0x50, 0xFF, 0xF9, 0xC9, 0x44, 0xFF, 0xFD, 0xC8, 0x4B, 0xFF, 0xF9, 0xC5, 0x3E, 0xFF, 0xFA, 0xC3, 0x40, 0xFF, 0xFA, + 0xC2, 0x43, 0xFF, 0xF3, 0xBD, 0x3A, 0xFF, 0xF3, 0xBF, 0x3A, 0xFF, 0xFC, 0xC7, 0x3E, 0xFF, 0xFC, 0xC6, 0x3A, 0xFF, + 0xE2, 0xA1, 0x24, 0xFF, 0xD9, 0x8C, 0x1F, 0xFF, 0xF6, 0xB9, 0x36, 0xFF, 0xFA, 0xBB, 0x26, 0xFF, 0xF3, 0xBA, 0x29, + 0xFF, 0x56, 0xD7, 0xCD, 0xFF, 0x5A, 0xFA, 0xF9, 0xFF, 0x48, 0xDA, 0xD9, 0xFF, 0x58, 0xEC, 0xED, 0xFF, 0x5F, 0xF5, + 0xF9, 0xFF, 0x4D, 0xEF, 0xF1, 0xFF, 0x3A, 0xE9, 0xE9, 0xFF, 0x45, 0xEE, 0xED, 0xFF, 0x50, 0xF4, 0xF2, 0xFF, 0x4E, + 0xF3, 0xF9, 0xFF, 0x44, 0xF0, 0xED, 0xFF, 0x4B, 0xF8, 0xFE, 0xFF, 0x41, 0xF5, 0xF4, 0xFF, 0x3C, 0xF4, 0xF5, 0xFF, + 0x37, 0xF2, 0xF6, 0xFF, 0x31, 0xF0, 0xF5, 0xFF, 0x2A, 0xEF, 0xF4, 0xFF, 0x26, 0xEA, 0xF2, 0xFF, 0x22, 0xE6, 0xF0, + 0xFF, 0x1C, 0xDB, 0xEE, 0xFF, 0x17, 0xD0, 0xEC, 0xFF, 0x08, 0xCC, 0xF0, 0xFF, 0x08, 0xC4, 0xF5, 0xFF, 0xFF, 0xAD, + 0x0E, 0xFF, 0xF9, 0xA1, 0x16, 0xFF, 0xF8, 0xA1, 0x17, 0xFF, 0xF8, 0xA1, 0x18, 0xFF, 0xF8, 0xA0, 0x17, 0xFF, 0xF8, + 0x9E, 0x16, 0xFF, 0xF8, 0x9D, 0x16, 0xFF, 0xF8, 0x9C, 0x15, 0xFF, 0xF7, 0x9A, 0x15, 0xFF, 0xF7, 0x99, 0x14, 0xFF, + 0xF7, 0x99, 0x14, 0xFF, 0xF7, 0x99, 0x14, 0xFF, 0xF7, 0x99, 0x14, 0xFF, 0xFB, 0xD5, 0x60, 0xFF, 0xFA, 0xD3, 0x5A, + 0xFF, 0xFA, 0xD1, 0x55, 0xFF, 0xFC, 0xD0, 0x55, 0xFF, 0xFE, 0xCF, 0x54, 0xFF, 0xFA, 0xD0, 0x54, 0xFF, 0xF6, 0xD1, + 0x53, 0xFF, 0xF6, 0xCE, 0x50, 0xFF, 0xF7, 0xCB, 0x4E, 0xFF, 0xF9, 0xCA, 0x4C, 0xFF, 0xFA, 0xCA, 0x4B, 0xFF, 0xFB, + 0xC8, 0x49, 0xFF, 0xFB, 0xC6, 0x47, 0xFF, 0xFB, 0xC6, 0x45, 0xFF, 0xFA, 0xC6, 0x43, 0xFF, 0xF9, 0xC6, 0x41, 0xFF, + 0xF8, 0xC6, 0x3F, 0xFF, 0xF8, 0xC4, 0x3E, 0xFF, 0xF9, 0xC3, 0x3E, 0xFF, 0xFB, 0xC3, 0x3F, 0xFF, 0xFD, 0xC3, 0x40, + 0xFF, 0xF2, 0xBA, 0x38, 0xFF, 0xF7, 0xC0, 0x3F, 0xFF, 0xFA, 0xC2, 0x3D, 0xFF, 0xFD, 0xC5, 0x3A, 0xFF, 0xF6, 0xC1, + 0x37, 0xFF, 0xEF, 0xBD, 0x34, 0xFF, 0xEF, 0xBB, 0x2D, 0xFF, 0x21, 0xD6, 0xDD, 0xFF, 0x37, 0xDC, 0xBF, 0xFF, 0x41, + 0xE0, 0xDD, 0xFF, 0x49, 0xEA, 0xEB, 0xFF, 0x41, 0xE3, 0xEA, 0xFF, 0x41, 0xE8, 0xED, 0xFF, 0x41, 0xED, 0xF1, 0xFF, + 0x3F, 0xEC, 0xED, 0xFF, 0x3C, 0xEB, 0xEA, 0xFF, 0x3E, 0xEE, 0xFA, 0xFF, 0x31, 0xEB, 0xE5, 0xFF, 0x39, 0xF2, 0xFE, + 0xFF, 0x31, 0xF4, 0xF1, 0xFF, 0x2D, 0xF2, 0xF3, 0xFF, 0x29, 0xF0, 0xF5, 0xFF, 0x25, 0xEE, 0xF4, 0xFF, 0x20, 0xEC, + 0xF4, 0xFF, 0x1E, 0xE6, 0xF1, 0xFF, 0x1C, 0xE1, 0xEF, 0xFF, 0x19, 0xD5, 0xED, 0xFF, 0x16, 0xC9, 0xEB, 0xFF, 0x0B, + 0xC3, 0xDE, 0xFF, 0x39, 0xBE, 0xBA, 0xFF, 0xF8, 0x98, 0x07, 0xFF, 0xF8, 0x9F, 0x19, 0xFF, 0xF6, 0x9F, 0x19, 0xFF, + 0xF5, 0x9F, 0x19, 0xFF, 0xF7, 0x9F, 0x18, 0xFF, 0xF9, 0x9F, 0x16, 0xFF, 0xF9, 0x9D, 0x16, 0xFF, 0xF9, 0x9C, 0x16, + 0xFF, 0xF9, 0x9A, 0x16, 0xFF, 0xF8, 0x99, 0x15, 0xFF, 0xF8, 0x99, 0x15, 0xFF, 0xF8, 0x99, 0x15, 0xFF, 0xF8, 0x99, + 0x15, 0xFF, 0xF8, 0xD4, 0x5C, 0xFF, 0xF8, 0xD4, 0x58, 0xFF, 0xF8, 0xD3, 0x54, 0xFF, 0xF9, 0xD1, 0x56, 0xFF, 0xFA, + 0xD0, 0x57, 0xFF, 0xF8, 0xD0, 0x55, 0xFF, 0xF5, 0xD0, 0x53, 0xFF, 0xF7, 0xCE, 0x50, 0xFF, 0xF9, 0xCC, 0x4D, 0xFF, + 0xF9, 0xCB, 0x4C, 0xFF, 0xFA, 0xCA, 0x4A, 0xFF, 0xFB, 0xC8, 0x48, 0xFF, 0xFB, 0xC7, 0x46, 0xFF, 0xFA, 0xC6, 0x44, + 0xFF, 0xFA, 0xC6, 0x43, 0xFF, 0xF9, 0xC6, 0x41, 0xFF, 0xF9, 0xC6, 0x3F, 0xFF, 0xF9, 0xC4, 0x3E, 0xFF, 0xF9, 0xC3, + 0x3D, 0xFF, 0xFA, 0xC2, 0x3E, 0xFF, 0xFB, 0xC1, 0x3E, 0xFF, 0xF5, 0xBD, 0x3A, 0xFF, 0xF7, 0xC1, 0x3D, 0xFF, 0xF8, + 0xC0, 0x3A, 0xFF, 0xF9, 0xC0, 0x37, 0xFF, 0xFF, 0xBD, 0x36, 0xFF, 0xFF, 0xBB, 0x35, 0xFF, 0x84, 0xBA, 0x66, 0xFF, + 0x18, 0xD2, 0xAF, 0xFF, 0x19, 0xD2, 0xB3, 0xFF, 0x39, 0xDA, 0xD2, 0xFF, 0x3D, 0xDC, 0xE1, 0xFF, 0x31, 0xD4, 0xD5, + 0xFF, 0x37, 0xDF, 0xE1, 0xFF, 0x3E, 0xE9, 0xEC, 0xFF, 0x35, 0xE6, 0xE1, 0xFF, 0x35, 0xE5, 0xE9, 0xFF, 0x34, 0xE5, + 0xF0, 0xFF, 0x2A, 0xE3, 0xE4, 0xFF, 0x2D, 0xE5, 0xF5, 0xFF, 0x28, 0xEB, 0xE8, 0xFF, 0x2A, 0xEE, 0xF0, 0xFF, 0x24, + 0xE8, 0xEF, 0xFF, 0x20, 0xE4, 0xEC, 0xFF, 0x1C, 0xDF, 0xE9, 0xFF, 0x1C, 0xDB, 0xEB, 0xFF, 0x1B, 0xD7, 0xED, 0xFF, + 0x18, 0xCE, 0xE9, 0xFF, 0x15, 0xC5, 0xE5, 0xFF, 0x03, 0xBF, 0xE7, 0xFF, 0x92, 0xB1, 0x6C, 0xFF, 0xFB, 0x9C, 0x10, + 0xFF, 0xF7, 0xA0, 0x17, 0xFF, 0xF5, 0xA0, 0x19, 0xFF, 0xF3, 0xA0, 0x1B, 0xFF, 0xF6, 0x9F, 0x19, 0xFF, 0xF9, 0x9F, + 0x16, 0xFF, 0xF8, 0x9E, 0x16, 0xFF, 0xF8, 0x9C, 0x15, 0xFF, 0xF8, 0x9B, 0x15, 0xFF, 0xF8, 0x99, 0x15, 0xFF, 0xF7, + 0x99, 0x14, 0xFF, 0xF7, 0x98, 0x14, 0xFF, 0xF7, 0x98, 0x14, 0xFF, 0xF6, 0xD3, 0x57, 0xFF, 0xF6, 0xD4, 0x55, 0xFF, + 0xF6, 0xD5, 0x53, 0xFF, 0xF7, 0xD2, 0x57, 0xFF, 0xF7, 0xD0, 0x5B, 0xFF, 0xF6, 0xD0, 0x57, 0xFF, 0xF5, 0xCF, 0x54, + 0xFF, 0xF7, 0xCE, 0x50, 0xFF, 0xFA, 0xCC, 0x4C, 0xFF, 0xFA, 0xCB, 0x4B, 0xFF, 0xFA, 0xCA, 0x49, 0xFF, 0xFA, 0xC8, + 0x47, 0xFF, 0xFB, 0xC7, 0x46, 0xFF, 0xFA, 0xC7, 0x44, 0xFF, 0xFA, 0xC6, 0x43, 0xFF, 0xF9, 0xC6, 0x41, 0xFF, 0xF9, + 0xC5, 0x3F, 0xFF, 0xF9, 0xC4, 0x3E, 0xFF, 0xF9, 0xC2, 0x3D, 0xFF, 0xF9, 0xC1, 0x3C, 0xFF, 0xF9, 0xC0, 0x3B, 0xFF, + 0xF8, 0xC1, 0x3C, 0xFF, 0xF7, 0xC2, 0x3C, 0xFF, 0xF6, 0xBE, 0x38, 0xFF, 0xF5, 0xBB, 0x34, 0xFF, 0xFD, 0xBC, 0x35, + 0xFF, 0xFF, 0xBE, 0x36, 0xFF, 0xFB, 0xBB, 0x45, 0xFF, 0x2B, 0xC9, 0x82, 0xFF, 0x01, 0xBE, 0xA0, 0xFF, 0x20, 0xC4, + 0xB8, 0xFF, 0x31, 0xCF, 0xD8, 0xFF, 0x31, 0xD5, 0xD1, 0xFF, 0x2E, 0xD5, 0xD4, 0xFF, 0x2A, 0xD4, 0xD7, 0xFF, 0x24, + 0xD7, 0xCC, 0xFF, 0x2E, 0xDE, 0xE8, 0xFF, 0x29, 0xDD, 0xE6, 0xFF, 0x24, 0xDC, 0xE4, 0xFF, 0x22, 0xD9, 0xED, 0xFF, + 0x20, 0xE1, 0xDF, 0xFF, 0x27, 0xE9, 0xEC, 0xFF, 0x1E, 0xE0, 0xEA, 0xFF, 0x1B, 0xD9, 0xE3, 0xFF, 0x19, 0xD3, 0xDD, + 0xFF, 0x1A, 0xD0, 0xE4, 0xFF, 0x1B, 0xCD, 0xEB, 0xFF, 0x17, 0xC7, 0xE4, 0xFF, 0x14, 0xC2, 0xDE, 0xFF, 0x00, 0xBC, + 0xEF, 0xFF, 0xEB, 0xA4, 0x1D, 0xFF, 0xFF, 0xA0, 0x19, 0xFF, 0xF6, 0xA2, 0x15, 0xFF, 0xF3, 0xA2, 0x19, 0xFF, 0xF0, + 0xA1, 0x1D, 0xFF, 0xF4, 0xA0, 0x19, 0xFF, 0xF8, 0x9F, 0x16, 0xFF, 0xF8, 0x9E, 0x15, 0xFF, 0xF8, 0x9D, 0x15, 0xFF, + 0xF7, 0x9B, 0x14, 0xFF, 0xF7, 0x9A, 0x14, 0xFF, 0xF6, 0x99, 0x13, 0xFF, 0xF5, 0x98, 0x12, 0xFF, 0xF5, 0x98, 0x12, + 0xFF, 0xF8, 0xD5, 0x5E, 0xFF, 0xFC, 0xD5, 0x63, 0xFF, 0xFF, 0xD6, 0x68, 0xFF, 0xFB, 0xD2, 0x5E, 0xFF, 0xF8, 0xCF, + 0x55, 0xFF, 0xF7, 0xCF, 0x53, 0xFF, 0xF7, 0xCE, 0x50, 0xFF, 0xF9, 0xCD, 0x4D, 0xFF, 0xFA, 0xCC, 0x4B, 0xFF, 0xFA, + 0xCB, 0x49, 0xFF, 0xFA, 0xCA, 0x48, 0xFF, 0xFA, 0xC9, 0x47, 0xFF, 0xFA, 0xC8, 0x45, 0xFF, 0xFA, 0xC7, 0x44, 0xFF, + 0xF9, 0xC6, 0x42, 0xFF, 0xF9, 0xC5, 0x41, 0xFF, 0xF9, 0xC5, 0x40, 0xFF, 0xF9, 0xC4, 0x3F, 0xFF, 0xF9, 0xC2, 0x3D, + 0xFF, 0xF9, 0xC1, 0x3C, 0xFF, 0xF8, 0xC0, 0x3B, 0xFF, 0xF8, 0xC0, 0x3B, 0xFF, 0xF8, 0xC1, 0x3A, 0xFF, 0xF7, 0xBF, + 0x38, 0xFF, 0xF6, 0xBD, 0x35, 0xFF, 0xFA, 0xBD, 0x34, 0xFF, 0xFE, 0xBD, 0x33, 0xFF, 0xF5, 0xC3, 0x22, 0xFF, 0xFB, + 0xBA, 0x26, 0xFF, 0xB1, 0xB0, 0x53, 0xFF, 0x06, 0xC5, 0x9A, 0xFF, 0x22, 0xD2, 0xC0, 0xFF, 0x36, 0xDD, 0xD3, 0xFF, + 0x12, 0xBA, 0xB3, 0xFF, 0x1E, 0xC7, 0xC3, 0xFF, 0x21, 0xCE, 0xC4, 0xFF, 0x2C, 0xD8, 0xD8, 0xFF, 0x2F, 0xDA, 0xDE, + 0xFF, 0x2A, 0xD5, 0xDC, 0xFF, 0x20, 0xD4, 0xE7, 0xFF, 0x1C, 0xD5, 0xD4, 0xFF, 0x28, 0xE4, 0xE8, 0xFF, 0x24, 0xE3, + 0xEB, 0xFF, 0x1F, 0xCD, 0xD1, 0xFF, 0x1C, 0xC5, 0xD2, 0xFF, 0x01, 0xC2, 0xDC, 0xFF, 0x11, 0xC3, 0xCF, 0xFF, 0x09, + 0xC1, 0xE2, 0xFF, 0x00, 0xBE, 0xE3, 0xFF, 0x6E, 0xBE, 0x83, 0xFF, 0xF6, 0x9F, 0x0C, 0xFF, 0xFD, 0x9F, 0x11, 0xFF, + 0xF6, 0xA1, 0x17, 0xFF, 0xF4, 0xA1, 0x19, 0xFF, 0xF3, 0xA1, 0x1A, 0xFF, 0xF5, 0xA0, 0x18, 0xFF, 0xF8, 0x9F, 0x15, + 0xFF, 0xF7, 0x9E, 0x15, 0xFF, 0xF7, 0x9D, 0x14, 0xFF, 0xF7, 0x9C, 0x14, 0xFF, 0xF7, 0x9B, 0x13, 0xFF, 0xF5, 0x99, + 0x11, 0xFF, 0xF4, 0x98, 0x10, 0xFF, 0xF4, 0x98, 0x10, 0xFF, 0xFB, 0xD6, 0x64, 0xFF, 0xF9, 0xD4, 0x5D, 0xFF, 0xF8, + 0xD2, 0x55, 0xFF, 0xF8, 0xD0, 0x53, 0xFF, 0xF8, 0xCE, 0x50, 0xFF, 0xF9, 0xCE, 0x4E, 0xFF, 0xFA, 0xCD, 0x4D, 0xFF, + 0xFA, 0xCC, 0x4B, 0xFF, 0xFB, 0xCC, 0x49, 0xFF, 0xFA, 0xCB, 0x48, 0xFF, 0xFA, 0xCA, 0x47, 0xFF, 0xFA, 0xC9, 0x46, + 0xFF, 0xFA, 0xC8, 0x45, 0xFF, 0xFA, 0xC7, 0x43, 0xFF, 0xF9, 0xC6, 0x42, 0xFF, 0xF9, 0xC5, 0x41, 0xFF, 0xF9, 0xC4, + 0x40, 0xFF, 0xF9, 0xC3, 0x3F, 0xFF, 0xF9, 0xC2, 0x3D, 0xFF, 0xF9, 0xC1, 0x3C, 0xFF, 0xF8, 0xC0, 0x3B, 0xFF, 0xF8, + 0xC0, 0x3A, 0xFF, 0xF8, 0xBF, 0x39, 0xFF, 0xF8, 0xBF, 0x38, 0xFF, 0xF8, 0xBF, 0x36, 0xFF, 0xF7, 0xBD, 0x34, 0xFF, + 0xF7, 0xBC, 0x31, 0xFF, 0xF8, 0xBB, 0x33, 0xFF, 0xF9, 0xBA, 0x35, 0xFF, 0xFF, 0xBC, 0x2C, 0xFF, 0xDE, 0xC2, 0x60, + 0xFF, 0x84, 0xCB, 0x93, 0xFF, 0x2A, 0xD4, 0xC5, 0xFF, 0x2E, 0xD7, 0xCA, 0xFF, 0x12, 0xBA, 0xB0, 0xFF, 0x16, 0xBE, + 0xB4, 0xFF, 0x1A, 0xC2, 0xB8, 0xFF, 0x25, 0xC8, 0xC6, 0xFF, 0x20, 0xBE, 0xC4, 0xFF, 0x16, 0xC8, 0xDA, 0xFF, 0x18, + 0xC8, 0xC9, 0xFF, 0x21, 0xD7, 0xDB, 0xFF, 0x1A, 0xD6, 0xDD, 0xFF, 0x0D, 0xBC, 0xB7, 0xFF, 0x03, 0xBD, 0xC7, 0xFF, + 0x00, 0xBF, 0xD0, 0xFF, 0x50, 0xC9, 0xAC, 0xFF, 0xB0, 0xB8, 0x6B, 0xFF, 0xFF, 0xA3, 0x04, 0xFF, 0xFA, 0xA3, 0x12, + 0xFF, 0xF4, 0xA4, 0x21, 0xFF, 0xF5, 0xA2, 0x1D, 0xFF, 0xF5, 0xA1, 0x19, 0xFF, 0xF6, 0xA0, 0x18, 0xFF, 0xF6, 0xA0, + 0x17, 0xFF, 0xF7, 0x9F, 0x16, 0xFF, 0xF7, 0x9F, 0x15, 0xFF, 0xF7, 0x9E, 0x14, 0xFF, 0xF7, 0x9D, 0x14, 0xFF, 0xF6, + 0x9C, 0x13, 0xFF, 0xF6, 0x9B, 0x12, 0xFF, 0xF4, 0x99, 0x10, 0xFF, 0xF2, 0x97, 0x0E, 0xFF, 0xF2, 0x97, 0x0E, 0xFF, + 0xF8, 0xD4, 0x5C, 0xFF, 0xF8, 0xD3, 0x57, 0xFF, 0xF8, 0xD1, 0x53, 0xFF, 0xF8, 0xD0, 0x51, 0xFF, 0xF9, 0xCE, 0x4F, + 0xFF, 0xF9, 0xCE, 0x4D, 0xFF, 0xF9, 0xCD, 0x4B, 0xFF, 0xFA, 0xCC, 0x4A, 0xFF, 0xFA, 0xCB, 0x48, 0xFF, 0xFA, 0xCA, + 0x47, 0xFF, 0xFA, 0xCA, 0x46, 0xFF, 0xF9, 0xC9, 0x45, 0xFF, 0xF9, 0xC8, 0x44, 0xFF, 0xF9, 0xC7, 0x43, 0xFF, 0xF9, + 0xC6, 0x42, 0xFF, 0xF9, 0xC5, 0x41, 0xFF, 0xF9, 0xC4, 0x40, 0xFF, 0xF9, 0xC3, 0x3E, 0xFF, 0xF9, 0xC2, 0x3D, 0xFF, + 0xF9, 0xC1, 0x3C, 0xFF, 0xF9, 0xC0, 0x3A, 0xFF, 0xF8, 0xBF, 0x39, 0xFF, 0xF8, 0xBF, 0x38, 0xFF, 0xF8, 0xBF, 0x37, + 0xFF, 0xF8, 0xBE, 0x36, 0xFF, 0xF5, 0xBD, 0x35, 0xFF, 0xF3, 0xBB, 0x34, 0xFF, 0xF7, 0xB9, 0x34, 0xFF, 0xFA, 0xB7, + 0x34, 0xFF, 0xFF, 0xB5, 0x22, 0xFF, 0xFE, 0xB4, 0x2E, 0xFF, 0xE6, 0xB9, 0x4D, 0xFF, 0xCD, 0xBF, 0x6B, 0xFF, 0xC5, + 0xB1, 0x27, 0xFF, 0x7C, 0xBB, 0x6C, 0xFF, 0x48, 0xBD, 0x89, 0xFF, 0x15, 0xBE, 0xA6, 0xFF, 0x08, 0xBF, 0xB9, 0xFF, + 0x00, 0xBF, 0xCB, 0xFF, 0x3D, 0xC4, 0xDA, 0xFF, 0x20, 0xCA, 0xBA, 0xFF, 0x3E, 0xC6, 0xAD, 0xFF, 0x53, 0xBB, 0x99, + 0xFF, 0x8A, 0xAC, 0x59, 0xFF, 0xC3, 0xAA, 0x35, 0xFF, 0xFF, 0xB3, 0x03, 0xFF, 0xFF, 0xA6, 0x15, 0xFF, 0xFF, 0xA4, + 0x20, 0xFF, 0xFA, 0xA0, 0x19, 0xFF, 0xF9, 0xA2, 0x1B, 0xFF, 0xF8, 0xA4, 0x1C, 0xFF, 0xF7, 0xA2, 0x1B, 0xFF, 0xF6, + 0xA1, 0x19, 0xFF, 0xF6, 0xA0, 0x18, 0xFF, 0xF7, 0xA0, 0x17, 0xFF, 0xF7, 0x9F, 0x16, 0xFF, 0xF7, 0x9F, 0x15, 0xFF, + 0xF7, 0x9E, 0x14, 0xFF, 0xF6, 0x9D, 0x14, 0xFF, 0xF6, 0x9C, 0x13, 0xFF, 0xF6, 0x9B, 0x12, 0xFF, 0xF4, 0x9A, 0x10, + 0xFF, 0xF3, 0x98, 0x0F, 0xFF, 0xF3, 0x98, 0x0F, 0xFF, 0xF6, 0xD2, 0x53, 0xFF, 0xF7, 0xD1, 0x52, 0xFF, 0xF8, 0xD0, + 0x51, 0xFF, 0xF8, 0xCF, 0x4F, 0xFF, 0xF9, 0xCE, 0x4E, 0xFF, 0xF9, 0xCE, 0x4C, 0xFF, 0xF9, 0xCD, 0x4A, 0xFF, 0xF9, + 0xCC, 0x48, 0xFF, 0xF9, 0xCB, 0x46, 0xFF, 0xF9, 0xCA, 0x46, 0xFF, 0xF9, 0xC9, 0x45, 0xFF, 0xF9, 0xC8, 0x44, 0xFF, + 0xF9, 0xC8, 0x43, 0xFF, 0xF9, 0xC7, 0x42, 0xFF, 0xF9, 0xC6, 0x41, 0xFF, 0xF9, 0xC5, 0x41, 0xFF, 0xF9, 0xC4, 0x40, + 0xFF, 0xF9, 0xC3, 0x3E, 0xFF, 0xF9, 0xC2, 0x3D, 0xFF, 0xF9, 0xC1, 0x3B, 0xFF, 0xF9, 0xC0, 0x3A, 0xFF, 0xF9, 0xBF, + 0x38, 0xFF, 0xF8, 0xBF, 0x37, 0xFF, 0xF8, 0xBE, 0x36, 0xFF, 0xF8, 0xBE, 0x35, 0xFF, 0xF4, 0xBC, 0x36, 0xFF, 0xEF, + 0xBA, 0x37, 0xFF, 0xF5, 0xB7, 0x35, 0xFF, 0xFC, 0xB5, 0x34, 0xFF, 0xF8, 0xB5, 0x2B, 0xFF, 0xF5, 0xB6, 0x22, 0xFF, + 0xFA, 0xB5, 0x25, 0xFF, 0xFF, 0xB3, 0x28, 0xFF, 0xFF, 0xB5, 0x28, 0xFF, 0xFF, 0xB7, 0x28, 0xFF, 0xFF, 0xB4, 0x1E, + 0xFF, 0xFE, 0xB2, 0x14, 0xFF, 0xF6, 0xAD, 0x20, 0xFF, 0xFE, 0xB9, 0x3C, 0xFF, 0xF0, 0xCB, 0x5A, 0xFF, 0xFA, 0xBE, + 0x41, 0xFF, 0xFC, 0xB5, 0x29, 0xFF, 0xFE, 0xAD, 0x11, 0xFF, 0xFC, 0xAC, 0x17, 0xFF, 0xFA, 0xAB, 0x1D, 0xFF, 0xFD, + 0xA9, 0x1D, 0xFF, 0xFF, 0xA7, 0x1D, 0xFF, 0xFA, 0xA7, 0x1B, 0xFF, 0xF4, 0xA8, 0x18, 0xFF, 0xF8, 0xA6, 0x18, 0xFF, + 0xFC, 0xA4, 0x17, 0xFF, 0xFA, 0xA2, 0x19, 0xFF, 0xF7, 0xA1, 0x1A, 0xFF, 0xF7, 0xA0, 0x19, 0xFF, 0xF7, 0xA0, 0x17, + 0xFF, 0xF7, 0x9F, 0x16, 0xFF, 0xF7, 0x9F, 0x15, 0xFF, 0xF7, 0x9E, 0x14, 0xFF, 0xF6, 0x9D, 0x13, 0xFF, 0xF6, 0x9C, + 0x13, 0xFF, 0xF5, 0x9B, 0x12, 0xFF, 0xF4, 0x9A, 0x11, 0xFF, 0xF3, 0x99, 0x10, 0xFF, 0xF3, 0x99, 0x10, 0xFF, 0xF7, + 0xD1, 0x54, 0xFF, 0xF8, 0xD0, 0x52, 0xFF, 0xF8, 0xD0, 0x51, 0xFF, 0xF9, 0xCF, 0x4F, 0xFF, 0xF9, 0xCF, 0x4E, 0xFF, + 0xF9, 0xCE, 0x4B, 0xFF, 0xF9, 0xCD, 0x49, 0xFF, 0xF9, 0xCC, 0x47, 0xFF, 0xF8, 0xCA, 0x45, 0xFF, 0xF8, 0xCA, 0x44, + 0xFF, 0xF8, 0xC9, 0x44, 0xFF, 0xF9, 0xC8, 0x43, 0xFF, 0xF9, 0xC7, 0x42, 0xFF, 0xF9, 0xC7, 0x42, 0xFF, 0xF9, 0xC6, + 0x41, 0xFF, 0xF9, 0xC5, 0x40, 0xFF, 0xF9, 0xC4, 0x40, 0xFF, 0xF9, 0xC3, 0x3E, 0xFF, 0xF9, 0xC2, 0x3C, 0xFF, 0xF9, + 0xC1, 0x3B, 0xFF, 0xF9, 0xC0, 0x39, 0xFF, 0xF9, 0xBF, 0x38, 0xFF, 0xF8, 0xBE, 0x36, 0xFF, 0xF8, 0xBE, 0x35, 0xFF, + 0xF8, 0xBD, 0x34, 0xFF, 0xF6, 0xBC, 0x34, 0xFF, 0xF4, 0xBA, 0x35, 0xFF, 0xF8, 0xB8, 0x34, 0xFF, 0xFB, 0xB6, 0x33, + 0xFF, 0xF9, 0xB6, 0x2D, 0xFF, 0xF6, 0xB6, 0x28, 0xFF, 0xF8, 0xB5, 0x29, 0xFF, 0xFA, 0xB4, 0x29, 0xFF, 0xFB, 0xB4, + 0x29, 0xFF, 0xFC, 0xB5, 0x29, 0xFF, 0xF5, 0xB2, 0x29, 0xFF, 0xEF, 0xAF, 0x29, 0xFF, 0xF5, 0xA9, 0x1A, 0xFF, 0xD9, + 0xCE, 0x9A, 0xFF, 0xE8, 0xCF, 0x6C, 0xFF, 0xE3, 0xC6, 0x73, 0xFF, 0xDD, 0xC9, 0x7F, 0xFF, 0xFB, 0xAD, 0x18, 0xFF, + 0xF9, 0xAC, 0x1B, 0xFF, 0xF7, 0xAB, 0x1F, 0xFF, 0xF9, 0xA9, 0x1E, 0xFF, 0xFB, 0xA7, 0x1D, 0xFF, 0xF8, 0xA7, 0x1C, + 0xFF, 0xF6, 0xA6, 0x1A, 0xFF, 0xF8, 0xA5, 0x19, 0xFF, 0xFA, 0xA3, 0x19, 0xFF, 0xF9, 0xA2, 0x1A, 0xFF, 0xF8, 0xA1, + 0x1A, 0xFF, 0xF8, 0xA1, 0x19, 0xFF, 0xF8, 0xA0, 0x18, 0xFF, 0xF7, 0x9F, 0x16, 0xFF, 0xF7, 0x9F, 0x15, 0xFF, 0xF7, + 0x9E, 0x14, 0xFF, 0xF6, 0x9D, 0x13, 0xFF, 0xF6, 0x9C, 0x12, 0xFF, 0xF5, 0x9B, 0x11, 0xFF, 0xF5, 0x9A, 0x11, 0xFF, + 0xF4, 0x9A, 0x10, 0xFF, 0xF4, 0x9A, 0x10, 0xFF, 0xF9, 0xD0, 0x54, 0xFF, 0xF9, 0xCF, 0x52, 0xFF, 0xF9, 0xCF, 0x51, + 0xFF, 0xFA, 0xCF, 0x4F, 0xFF, 0xFA, 0xCF, 0x4D, 0xFF, 0xF9, 0xCE, 0x4A, 0xFF, 0xF9, 0xCC, 0x48, 0xFF, 0xF8, 0xCB, + 0x46, 0xFF, 0xF8, 0xCA, 0x43, 0xFF, 0xF8, 0xC9, 0x43, 0xFF, 0xF8, 0xC9, 0x43, 0xFF, 0xF8, 0xC8, 0x42, 0xFF, 0xF8, + 0xC7, 0x42, 0xFF, 0xF8, 0xC7, 0x41, 0xFF, 0xF9, 0xC6, 0x41, 0xFF, 0xF9, 0xC5, 0x40, 0xFF, 0xF9, 0xC4, 0x40, 0xFF, + 0xF9, 0xC3, 0x3E, 0xFF, 0xF9, 0xC2, 0x3C, 0xFF, 0xF9, 0xC1, 0x3A, 0xFF, 0xF9, 0xBF, 0x38, 0xFF, 0xF9, 0xBF, 0x37, + 0xFF, 0xF9, 0xBE, 0x36, 0xFF, 0xF8, 0xBE, 0x34, 0xFF, 0xF8, 0xBD, 0x33, 0xFF, 0xF9, 0xBC, 0x33, 0xFF, 0xF9, 0xBA, + 0x32, 0xFF, 0xFA, 0xB9, 0x32, 0xFF, 0xFB, 0xB7, 0x31, 0xFF, 0xF9, 0xB6, 0x30, 0xFF, 0xF8, 0xB6, 0x2E, 0xFF, 0xF6, + 0xB5, 0x2C, 0xFF, 0xF4, 0xB4, 0x2A, 0xFF, 0xF5, 0xB3, 0x2A, 0xFF, 0xF6, 0xB2, 0x2A, 0xFF, 0xF9, 0xB2, 0x29, 0xFF, + 0xFB, 0xB2, 0x28, 0xFF, 0xF6, 0xB2, 0x30, 0xFF, 0xFD, 0xA8, 0x11, 0xFF, 0xE1, 0xD3, 0x7E, 0xFF, 0xE6, 0xBB, 0x58, + 0xFF, 0xFB, 0xAA, 0x15, 0xFF, 0xF7, 0xAD, 0x1F, 0xFF, 0xF6, 0xAB, 0x1F, 0xFF, 0xF5, 0xAA, 0x20, 0xFF, 0xF6, 0xA9, + 0x1F, 0xFF, 0xF6, 0xA7, 0x1E, 0xFF, 0xF7, 0xA6, 0x1D, 0xFF, 0xF8, 0xA5, 0x1B, 0xFF, 0xF8, 0xA4, 0x1B, 0xFF, 0xF8, + 0xA3, 0x1B, 0xFF, 0xF8, 0xA2, 0x1B, 0xFF, 0xF9, 0xA1, 0x1A, 0xFF, 0xF8, 0xA1, 0x19, 0xFF, 0xF8, 0xA0, 0x18, 0xFF, + 0xF8, 0x9F, 0x16, 0xFF, 0xF7, 0x9F, 0x15, 0xFF, 0xF7, 0x9E, 0x14, 0xFF, 0xF6, 0x9D, 0x13, 0xFF, 0xF6, 0x9C, 0x12, + 0xFF, 0xF5, 0x9A, 0x11, 0xFF, 0xF5, 0x9A, 0x11, 0xFF, 0xF5, 0x9A, 0x11, 0xFF, 0xF5, 0x9A, 0x11, 0xFF, 0xF9, 0xD0, + 0x54, 0xFF, 0xF9, 0xCF, 0x52, 0xFF, 0xF9, 0xCF, 0x51, 0xFF, 0xFA, 0xCF, 0x4F, 0xFF, 0xFA, 0xCF, 0x4D, 0xFF, 0xF9, + 0xCE, 0x4A, 0xFF, 0xF9, 0xCC, 0x48, 0xFF, 0xF8, 0xCB, 0x46, 0xFF, 0xF8, 0xCA, 0x43, 0xFF, 0xF8, 0xC9, 0x43, 0xFF, + 0xF8, 0xC9, 0x43, 0xFF, 0xF8, 0xC8, 0x42, 0xFF, 0xF8, 0xC7, 0x42, 0xFF, 0xF8, 0xC7, 0x41, 0xFF, 0xF9, 0xC6, 0x41, + 0xFF, 0xF9, 0xC5, 0x40, 0xFF, 0xF9, 0xC4, 0x40, 0xFF, 0xF9, 0xC3, 0x3E, 0xFF, 0xF9, 0xC2, 0x3C, 0xFF, 0xF9, 0xC1, + 0x3A, 0xFF, 0xF9, 0xBF, 0x38, 0xFF, 0xF9, 0xBF, 0x37, 0xFF, 0xF9, 0xBE, 0x36, 0xFF, 0xF8, 0xBE, 0x34, 0xFF, 0xF8, + 0xBD, 0x33, 0xFF, 0xF9, 0xBC, 0x33, 0xFF, 0xF9, 0xBA, 0x32, 0xFF, 0xFA, 0xB9, 0x32, 0xFF, 0xFB, 0xB7, 0x31, 0xFF, + 0xF9, 0xB6, 0x30, 0xFF, 0xF8, 0xB6, 0x2E, 0xFF, 0xF6, 0xB5, 0x2C, 0xFF, 0xF4, 0xB4, 0x2A, 0xFF, 0xF5, 0xB3, 0x2A, + 0xFF, 0xF6, 0xB2, 0x2A, 0xFF, 0xF8, 0xB2, 0x2A, 0xFF, 0xFA, 0xB1, 0x29, 0xFF, 0xF4, 0xB5, 0x2D, 0xFF, 0xF5, 0xB4, + 0x1D, 0xFF, 0xFF, 0x9B, 0x23, 0xFF, 0xF2, 0xB5, 0x1F, 0xFF, 0xFB, 0xAB, 0x0B, 0xFF, 0xF6, 0xAC, 0x1E, 0xFF, 0xF6, + 0xAB, 0x1F, 0xFF, 0xF5, 0xAA, 0x20, 0xFF, 0xF6, 0xA9, 0x1F, 0xFF, 0xF6, 0xA7, 0x1E, 0xFF, 0xF7, 0xA6, 0x1D, 0xFF, + 0xF8, 0xA5, 0x1B, 0xFF, 0xF8, 0xA4, 0x1B, 0xFF, 0xF8, 0xA3, 0x1B, 0xFF, 0xF8, 0xA2, 0x1B, 0xFF, 0xF9, 0xA1, 0x1A, + 0xFF, 0xF8, 0xA1, 0x19, 0xFF, 0xF8, 0xA0, 0x18, 0xFF, 0xF8, 0x9F, 0x16, 0xFF, 0xF7, 0x9F, 0x15, 0xFF, 0xF7, 0x9E, + 0x14, 0xFF, 0xF6, 0x9D, 0x13, 0xFF, 0xF6, 0x9C, 0x12, 0xFF, 0xF5, 0x9A, 0x11, 0xFF, 0xF5, 0x9A, 0x11, 0xFF, 0xF5, + 0x9A, 0x11, 0xFF, 0xF5, 0x9A, 0x11, 0xFF, 0xF9, 0xD0, 0x54, 0xFF, 0xF9, 0xCF, 0x52, 0xFF, 0xF9, 0xCF, 0x51, 0xFF, + 0xFA, 0xCF, 0x4F, 0xFF, 0xFA, 0xCF, 0x4D, 0xFF, 0xF9, 0xCE, 0x4A, 0xFF, 0xF9, 0xCC, 0x48, 0xFF, 0xF8, 0xCB, 0x46, + 0xFF, 0xF8, 0xCA, 0x43, 0xFF, 0xF8, 0xC9, 0x43, 0xFF, 0xF8, 0xC9, 0x43, 0xFF, 0xF8, 0xC8, 0x42, 0xFF, 0xF8, 0xC7, + 0x42, 0xFF, 0xF8, 0xC7, 0x41, 0xFF, 0xF9, 0xC6, 0x41, 0xFF, 0xF9, 0xC5, 0x40, 0xFF, 0xF9, 0xC4, 0x40, 0xFF, 0xF9, + 0xC3, 0x3E, 0xFF, 0xF9, 0xC2, 0x3C, 0xFF, 0xF9, 0xC1, 0x3A, 0xFF, 0xF9, 0xBF, 0x38, 0xFF, 0xF9, 0xBF, 0x37, 0xFF, + 0xF9, 0xBE, 0x36, 0xFF, 0xF8, 0xBE, 0x34, 0xFF, 0xF8, 0xBD, 0x33, 0xFF, 0xF9, 0xBC, 0x33, 0xFF, 0xF9, 0xBA, 0x32, + 0xFF, 0xFA, 0xB9, 0x32, 0xFF, 0xFB, 0xB7, 0x31, 0xFF, 0xF9, 0xB6, 0x30, 0xFF, 0xF8, 0xB6, 0x2E, 0xFF, 0xF6, 0xB5, + 0x2C, 0xFF, 0xF4, 0xB4, 0x2A, 0xFF, 0xF5, 0xB3, 0x2A, 0xFF, 0xF6, 0xB2, 0x2A, 0xFF, 0xF7, 0xB2, 0x2A, 0xFF, 0xF8, + 0xB1, 0x2A, 0xFF, 0xF9, 0xAE, 0x21, 0xFF, 0xFA, 0xAC, 0x18, 0xFF, 0xF6, 0xAD, 0x1E, 0xFF, 0xF3, 0xAE, 0x23, 0xFF, + 0xF4, 0xAC, 0x20, 0xFF, 0xF5, 0xAB, 0x1D, 0xFF, 0xF5, 0xAA, 0x1E, 0xFF, 0xF5, 0xAA, 0x20, 0xFF, 0xF6, 0xA9, 0x1F, + 0xFF, 0xF6, 0xA7, 0x1E, 0xFF, 0xF7, 0xA6, 0x1D, 0xFF, 0xF8, 0xA5, 0x1B, 0xFF, 0xF8, 0xA4, 0x1B, 0xFF, 0xF8, 0xA3, + 0x1B, 0xFF, 0xF8, 0xA2, 0x1B, 0xFF, 0xF9, 0xA1, 0x1A, 0xFF, 0xF8, 0xA1, 0x19, 0xFF, 0xF8, 0xA0, 0x18, 0xFF, 0xF8, + 0x9F, 0x16, 0xFF, 0xF7, 0x9F, 0x15, 0xFF, 0xF7, 0x9E, 0x14, 0xFF, 0xF6, 0x9D, 0x13, 0xFF, 0xF6, 0x9C, 0x12, 0xFF, + 0xF5, 0x9A, 0x11, 0xFF, 0xF5, 0x9A, 0x11, 0xFF, 0xF5, 0x9A, 0x11, 0xFF, 0xF5, 0x9A, 0x11, 0xFF, 0xF9, 0xD0, 0x54, + 0xFF, 0xF9, 0xCF, 0x52, 0xFF, 0xF9, 0xCF, 0x51, 0xFF, 0xFA, 0xCF, 0x4F, 0xFF, 0xFA, 0xCF, 0x4D, 0xFF, 0xF9, 0xCE, + 0x4A, 0xFF, 0xF9, 0xCC, 0x48, 0xFF, 0xF8, 0xCB, 0x46, 0xFF, 0xF8, 0xCA, 0x43, 0xFF, 0xF8, 0xC9, 0x43, 0xFF, 0xF8, + 0xC9, 0x43, 0xFF, 0xF8, 0xC8, 0x42, 0xFF, 0xF8, 0xC7, 0x42, 0xFF, 0xF8, 0xC7, 0x41, 0xFF, 0xF9, 0xC6, 0x41, 0xFF, + 0xF9, 0xC5, 0x40, 0xFF, 0xF9, 0xC4, 0x40, 0xFF, 0xF9, 0xC3, 0x3E, 0xFF, 0xF9, 0xC2, 0x3C, 0xFF, 0xF9, 0xC1, 0x3A, + 0xFF, 0xF9, 0xBF, 0x38, 0xFF, 0xF9, 0xBF, 0x37, 0xFF, 0xF9, 0xBE, 0x36, 0xFF, 0xF8, 0xBE, 0x34, 0xFF, 0xF8, 0xBD, + 0x33, 0xFF, 0xF9, 0xBC, 0x33, 0xFF, 0xF9, 0xBA, 0x32, 0xFF, 0xFA, 0xB9, 0x32, 0xFF, 0xFB, 0xB7, 0x31, 0xFF, 0xF9, + 0xB6, 0x30, 0xFF, 0xF8, 0xB6, 0x2E, 0xFF, 0xF6, 0xB5, 0x2C, 0xFF, 0xF4, 0xB4, 0x2A, 0xFF, 0xF5, 0xB3, 0x2A, 0xFF, + 0xF6, 0xB2, 0x2A, 0xFF, 0xF7, 0xB2, 0x2A, 0xFF, 0xF8, 0xB1, 0x2A, 0xFF, 0xF9, 0xAE, 0x21, 0xFF, 0xFA, 0xAC, 0x18, + 0xFF, 0xF6, 0xAD, 0x1E, 0xFF, 0xF3, 0xAE, 0x23, 0xFF, 0xF4, 0xAC, 0x20, 0xFF, 0xF5, 0xAB, 0x1D, 0xFF, 0xF5, 0xAA, + 0x1E, 0xFF, 0xF5, 0xAA, 0x20, 0xFF, 0xF6, 0xA9, 0x1F, 0xFF, 0xF6, 0xA7, 0x1E, 0xFF, 0xF7, 0xA6, 0x1D, 0xFF, 0xF8, + 0xA5, 0x1B, 0xFF, 0xF8, 0xA4, 0x1B, 0xFF, 0xF8, 0xA3, 0x1B, 0xFF, 0xF8, 0xA2, 0x1B, 0xFF, 0xF9, 0xA1, 0x1A, 0xFF, + 0xF8, 0xA1, 0x19, 0xFF, 0xF8, 0xA0, 0x18, 0xFF, 0xF8, 0x9F, 0x16, 0xFF, 0xF7, 0x9F, 0x15, 0xFF, 0xF7, 0x9E, 0x14, + 0xFF, 0xF6, 0x9D, 0x13, 0xFF, 0xF6, 0x9C, 0x12, 0xFF, 0xF5, 0x9A, 0x11, 0xFF, 0xF5, 0x9A, 0x11, 0xFF, 0xF5, 0x9A, + 0x11, 0xFF, 0xF5, 0x9A, 0x11, 0xFF, ]; const CONVERTED_TO_XRGB_BUFFER: [u8; 64 * 64 * 4] = [ - 0x00, 0x22, 0x9B, 0xDE, 0x00, 0x23, 0x9D, 0xE0, 0x00, 0x25, 0x9E, 0xE1, 0x00, 0x2B, 0xA5, 0xE8, - 0x00, 0x22, 0x9B, 0xDF, 0x00, 0x22, 0x9C, 0xDF, 0x00, 0x22, 0x9C, 0xE0, 0x00, 0x22, 0x9C, 0xDF, - 0x00, 0x21, 0x9B, 0xDF, 0x00, 0x22, 0x9B, 0xDF, 0x00, 0x23, 0x9B, 0xDF, 0x00, 0x23, 0x9B, 0xDF, - 0x00, 0x24, 0x9C, 0xDF, 0x00, 0x21, 0x9B, 0xE2, 0x00, 0x1D, 0x9B, 0xE5, 0x00, 0x1F, 0x9A, 0xE1, - 0x00, 0x21, 0x98, 0xDD, 0x00, 0x21, 0x99, 0xDE, 0x00, 0x20, 0x99, 0xDE, 0x00, 0x1F, 0x9A, 0xDF, - 0x00, 0x1F, 0x9A, 0xE0, 0x00, 0x1E, 0x99, 0xE0, 0x00, 0x1D, 0x99, 0xDF, 0x00, 0x1C, 0x98, 0xDF, - 0x00, 0x1B, 0x97, 0xDF, 0x00, 0x1E, 0x95, 0xDC, 0x00, 0x21, 0x93, 0xD8, 0x00, 0x1F, 0x93, 0xDC, - 0x00, 0x1C, 0x93, 0xE0, 0x00, 0x1A, 0x94, 0xDC, 0x00, 0x18, 0x95, 0xD8, 0x00, 0x1C, 0x91, 0xDB, - 0x00, 0x1F, 0x8E, 0xDE, 0x00, 0x1A, 0x90, 0xDE, 0x00, 0x16, 0x93, 0xDE, 0x00, 0x17, 0x92, 0xDF, - 0x00, 0x18, 0x91, 0xDF, 0x00, 0x17, 0x90, 0xDF, 0x00, 0x17, 0x8F, 0xDE, 0x00, 0x16, 0x8E, 0xDE, - 0x00, 0x15, 0x8C, 0xDE, 0x00, 0x14, 0x8C, 0xDD, 0x00, 0x13, 0x8C, 0xDB, 0x00, 0x12, 0x8C, 0xDA, - 0x00, 0x11, 0x8C, 0xD9, 0x00, 0x11, 0x8B, 0xD9, 0x00, 0x11, 0x89, 0xD9, 0x00, 0x11, 0x88, 0xDA, - 0x00, 0x12, 0x87, 0xDA, 0x00, 0x11, 0x86, 0xDA, 0x00, 0x10, 0x86, 0xDA, 0x00, 0x10, 0x85, 0xD9, - 0x00, 0x0F, 0x84, 0xD9, 0x00, 0x0E, 0x83, 0xD9, 0x00, 0x0E, 0x83, 0xD8, 0x00, 0x0D, 0x82, 0xD8, - 0x00, 0x0C, 0x81, 0xD8, 0x00, 0x0C, 0x80, 0xD7, 0x00, 0x0D, 0x7F, 0xD7, 0x00, 0x0D, 0x7F, 0xD6, - 0x00, 0x0D, 0x7E, 0xD6, 0x00, 0x0D, 0x7E, 0xD6, 0x00, 0x0D, 0x7E, 0xD6, 0x00, 0x0D, 0x7E, 0xD6, - 0x00, 0x24, 0x9F, 0xE0, 0x00, 0x27, 0xA0, 0xE1, 0x00, 0x29, 0xA2, 0xE2, 0x00, 0x2A, 0xA4, 0xE5, - 0x00, 0x24, 0x9E, 0xE0, 0x00, 0x24, 0x9E, 0xE1, 0x00, 0x24, 0x9E, 0xE1, 0x00, 0x23, 0x9E, 0xE1, - 0x00, 0x23, 0x9D, 0xE1, 0x00, 0x23, 0x9D, 0xE1, 0x00, 0x24, 0x9D, 0xE1, 0x00, 0x24, 0x9D, 0xE1, - 0x00, 0x25, 0x9D, 0xE1, 0x00, 0x23, 0x9D, 0xE1, 0x00, 0x22, 0x9C, 0xE2, 0x00, 0x22, 0x9C, 0xE0, - 0x00, 0x22, 0x9B, 0xDF, 0x00, 0x21, 0x9B, 0xE0, 0x00, 0x20, 0x9B, 0xE1, 0x00, 0x20, 0x9B, 0xE1, - 0x00, 0x1F, 0x9B, 0xE1, 0x00, 0x20, 0x9A, 0xDF, 0x00, 0x20, 0x99, 0xDE, 0x00, 0x1E, 0x98, 0xDE, - 0x00, 0x1D, 0x97, 0xDF, 0x00, 0x1D, 0x97, 0xDF, 0x00, 0x1E, 0x96, 0xDF, 0x00, 0x1D, 0x95, 0xDF, - 0x00, 0x1C, 0x94, 0xDE, 0x00, 0x1C, 0x94, 0xDF, 0x00, 0x1B, 0x93, 0xE0, 0x00, 0x1C, 0x93, 0xE0, - 0x00, 0x1D, 0x92, 0xE0, 0x00, 0x1B, 0x93, 0xDE, 0x00, 0x19, 0x94, 0xDC, 0x00, 0x19, 0x93, 0xDE, - 0x00, 0x19, 0x92, 0xE0, 0x00, 0x19, 0x91, 0xDF, 0x00, 0x18, 0x90, 0xDF, 0x00, 0x17, 0x8F, 0xDF, - 0x00, 0x17, 0x8E, 0xDF, 0x00, 0x16, 0x8E, 0xDE, 0x00, 0x15, 0x8D, 0xDD, 0x00, 0x13, 0x8D, 0xDC, - 0x00, 0x12, 0x8D, 0xDB, 0x00, 0x12, 0x8C, 0xDB, 0x00, 0x12, 0x8B, 0xDB, 0x00, 0x12, 0x89, 0xDB, - 0x00, 0x12, 0x88, 0xDB, 0x00, 0x11, 0x87, 0xDB, 0x00, 0x11, 0x87, 0xDB, 0x00, 0x10, 0x86, 0xDB, - 0x00, 0x0F, 0x85, 0xDB, 0x00, 0x0E, 0x84, 0xDA, 0x00, 0x0D, 0x83, 0xD9, 0x00, 0x0D, 0x83, 0xD9, - 0x00, 0x0D, 0x83, 0xD9, 0x00, 0x0D, 0x82, 0xD8, 0x00, 0x0D, 0x81, 0xD8, 0x00, 0x0D, 0x80, 0xD7, - 0x00, 0x0D, 0x7F, 0xD7, 0x00, 0x0D, 0x7F, 0xD7, 0x00, 0x0D, 0x7F, 0xD7, 0x00, 0x0D, 0x7F, 0xD7, - 0x00, 0x27, 0xA2, 0xE2, 0x00, 0x2A, 0xA4, 0xE3, 0x00, 0x2D, 0xA5, 0xE3, 0x00, 0x29, 0xA3, 0xE3, - 0x00, 0x26, 0xA1, 0xE2, 0x00, 0x25, 0xA1, 0xE2, 0x00, 0x25, 0xA1, 0xE2, 0x00, 0x25, 0xA0, 0xE2, - 0x00, 0x24, 0xA0, 0xE2, 0x00, 0x25, 0x9F, 0xE2, 0x00, 0x25, 0x9F, 0xE3, 0x00, 0x25, 0x9E, 0xE3, - 0x00, 0x26, 0x9E, 0xE3, 0x00, 0x26, 0x9E, 0xE1, 0x00, 0x27, 0x9D, 0xDE, 0x00, 0x24, 0x9D, 0xDF, - 0x00, 0x22, 0x9E, 0xE1, 0x00, 0x21, 0x9D, 0xE2, 0x00, 0x20, 0x9D, 0xE3, 0x00, 0x20, 0x9D, 0xE3, - 0x00, 0x20, 0x9C, 0xE3, 0x00, 0x22, 0x9B, 0xDF, 0x00, 0x24, 0x99, 0xDC, 0x00, 0x21, 0x98, 0xDE, - 0x00, 0x1F, 0x98, 0xE0, 0x00, 0x1D, 0x99, 0xE3, 0x00, 0x1B, 0x9A, 0xE7, 0x00, 0x1B, 0x98, 0xE1, - 0x00, 0x1C, 0x96, 0xDC, 0x00, 0x1D, 0x94, 0xE2, 0x00, 0x1F, 0x92, 0xE9, 0x00, 0x1D, 0x94, 0xE5, - 0x00, 0x1A, 0x96, 0xE2, 0x00, 0x1B, 0x95, 0xDE, 0x00, 0x1D, 0x95, 0xDA, 0x00, 0x1C, 0x94, 0xDD, - 0x00, 0x1A, 0x93, 0xE0, 0x00, 0x1A, 0x92, 0xE0, 0x00, 0x19, 0x91, 0xE0, 0x00, 0x19, 0x91, 0xDF, - 0x00, 0x18, 0x90, 0xDF, 0x00, 0x17, 0x8F, 0xDE, 0x00, 0x16, 0x8F, 0xDE, 0x00, 0x15, 0x8E, 0xDD, - 0x00, 0x14, 0x8E, 0xDD, 0x00, 0x14, 0x8D, 0xDC, 0x00, 0x13, 0x8C, 0xDC, 0x00, 0x12, 0x8B, 0xDC, - 0x00, 0x12, 0x8A, 0xDB, 0x00, 0x11, 0x89, 0xDC, 0x00, 0x11, 0x88, 0xDC, 0x00, 0x10, 0x87, 0xDC, - 0x00, 0x10, 0x86, 0xDC, 0x00, 0x0E, 0x84, 0xDB, 0x00, 0x0D, 0x83, 0xD9, 0x00, 0x0E, 0x83, 0xD9, - 0x00, 0x0E, 0x84, 0xDA, 0x00, 0x0E, 0x83, 0xD9, 0x00, 0x0E, 0x82, 0xD9, 0x00, 0x0D, 0x80, 0xD8, - 0x00, 0x0D, 0x7F, 0xD8, 0x00, 0x0D, 0x7F, 0xD8, 0x00, 0x0D, 0x7F, 0xD8, 0x00, 0x0D, 0x7F, 0xD8, - 0x00, 0x29, 0xA6, 0xE4, 0x00, 0x2D, 0xA7, 0xE3, 0x00, 0x30, 0xA8, 0xE3, 0x00, 0x2C, 0xA6, 0xE3, - 0x00, 0x27, 0xA3, 0xE3, 0x00, 0x27, 0xA3, 0xE3, 0x00, 0x26, 0xA3, 0xE3, 0x00, 0x26, 0xA2, 0xE4, - 0x00, 0x26, 0xA2, 0xE4, 0x00, 0x26, 0xA1, 0xE4, 0x00, 0x26, 0xA1, 0xE4, 0x00, 0x26, 0xA0, 0xE5, - 0x00, 0x26, 0x9F, 0xE5, 0x00, 0x25, 0xA0, 0xE4, 0x00, 0x24, 0xA0, 0xE4, 0x00, 0x24, 0x9F, 0xE3, - 0x00, 0x24, 0x9E, 0xE3, 0x00, 0x23, 0x9E, 0xE4, 0x00, 0x21, 0x9F, 0xE6, 0x00, 0x21, 0x9F, 0xE5, - 0x00, 0x22, 0x9E, 0xE3, 0x00, 0x13, 0xA4, 0xE5, 0x00, 0x1A, 0x9F, 0xE7, 0x00, 0x15, 0x9F, 0xE7, - 0x00, 0x10, 0xA0, 0xE7, 0x00, 0x11, 0x9F, 0xEF, 0x00, 0x12, 0x9E, 0xF7, 0x00, 0x1A, 0x99, 0xEC, - 0x00, 0x17, 0x9A, 0xE1, 0x00, 0x14, 0x9C, 0xE3, 0x00, 0x1C, 0x98, 0xE5, 0x00, 0x1C, 0x97, 0xE6, - 0x00, 0x1B, 0x96, 0xE6, 0x00, 0x1B, 0x98, 0xDB, 0x00, 0x1C, 0x96, 0xDF, 0x00, 0x1C, 0x95, 0xE0, - 0x00, 0x1B, 0x94, 0xE1, 0x00, 0x1B, 0x93, 0xE1, 0x00, 0x1A, 0x93, 0xE0, 0x00, 0x1A, 0x92, 0xE0, - 0x00, 0x19, 0x92, 0xE0, 0x00, 0x18, 0x91, 0xDF, 0x00, 0x18, 0x90, 0xDF, 0x00, 0x17, 0x8F, 0xDF, - 0x00, 0x16, 0x8F, 0xDF, 0x00, 0x15, 0x8E, 0xDE, 0x00, 0x14, 0x8D, 0xDD, 0x00, 0x13, 0x8C, 0xDD, - 0x00, 0x12, 0x8B, 0xDC, 0x00, 0x12, 0x8A, 0xDC, 0x00, 0x11, 0x89, 0xDD, 0x00, 0x11, 0x87, 0xDD, - 0x00, 0x10, 0x86, 0xDE, 0x00, 0x0F, 0x85, 0xDC, 0x00, 0x0D, 0x83, 0xD9, 0x00, 0x0E, 0x84, 0xDA, - 0x00, 0x0F, 0x85, 0xDB, 0x00, 0x0F, 0x84, 0xDA, 0x00, 0x0E, 0x83, 0xDA, 0x00, 0x0E, 0x81, 0xDA, - 0x00, 0x0D, 0x80, 0xD9, 0x00, 0x0D, 0x80, 0xD9, 0x00, 0x0D, 0x80, 0xD9, 0x00, 0x0D, 0x80, 0xD9, - 0x00, 0x2C, 0xAA, 0xE7, 0x00, 0x30, 0xAA, 0xE4, 0x00, 0x33, 0xAA, 0xE2, 0x00, 0x2E, 0xA8, 0xE3, - 0x00, 0x28, 0xA5, 0xE4, 0x00, 0x28, 0xA5, 0xE5, 0x00, 0x28, 0xA5, 0xE5, 0x00, 0x28, 0xA4, 0xE5, - 0x00, 0x27, 0xA4, 0xE5, 0x00, 0x27, 0xA3, 0xE6, 0x00, 0x27, 0xA2, 0xE6, 0x00, 0x27, 0xA1, 0xE7, - 0x00, 0x27, 0xA1, 0xE7, 0x00, 0x25, 0xA2, 0xE8, 0x00, 0x22, 0xA3, 0xE9, 0x00, 0x24, 0xA0, 0xE7, - 0x00, 0x27, 0x9E, 0xE6, 0x00, 0x25, 0x9F, 0xE7, 0x00, 0x22, 0xA0, 0xE8, 0x00, 0x18, 0xA3, 0xF4, - 0x00, 0x0D, 0xA7, 0xFF, 0x00, 0x1A, 0xA5, 0xDD, 0x00, 0x54, 0x8D, 0xBA, 0x00, 0x6E, 0x83, 0x9C, - 0x00, 0x88, 0x79, 0x7D, 0x00, 0x8C, 0x79, 0x7B, 0x00, 0x91, 0x79, 0x79, 0x00, 0x7E, 0x7A, 0x94, - 0x00, 0x55, 0x87, 0xAF, 0x00, 0x21, 0x9B, 0xD6, 0x00, 0x04, 0xA3, 0xFD, 0x00, 0x0F, 0x9D, 0xF4, - 0x00, 0x1B, 0x96, 0xEB, 0x00, 0x1B, 0x9A, 0xD9, 0x00, 0x1B, 0x98, 0xE4, 0x00, 0x1C, 0x96, 0xE3, - 0x00, 0x1C, 0x95, 0xE2, 0x00, 0x1C, 0x94, 0xE2, 0x00, 0x1B, 0x94, 0xE1, 0x00, 0x1B, 0x94, 0xE1, - 0x00, 0x1B, 0x93, 0xE0, 0x00, 0x1A, 0x92, 0xE0, 0x00, 0x19, 0x91, 0xE0, 0x00, 0x18, 0x90, 0xE1, - 0x00, 0x18, 0x8F, 0xE1, 0x00, 0x16, 0x8F, 0xE0, 0x00, 0x15, 0x8E, 0xDF, 0x00, 0x14, 0x8D, 0xDE, - 0x00, 0x12, 0x8C, 0xDC, 0x00, 0x12, 0x8B, 0xDD, 0x00, 0x12, 0x8A, 0xDE, 0x00, 0x11, 0x88, 0xDF, - 0x00, 0x11, 0x87, 0xE0, 0x00, 0x0F, 0x85, 0xDD, 0x00, 0x0D, 0x83, 0xDA, 0x00, 0x0E, 0x85, 0xDB, - 0x00, 0x10, 0x87, 0xDC, 0x00, 0x0F, 0x85, 0xDC, 0x00, 0x0F, 0x84, 0xDB, 0x00, 0x0E, 0x82, 0xDB, - 0x00, 0x0D, 0x81, 0xDA, 0x00, 0x0D, 0x81, 0xDA, 0x00, 0x0D, 0x81, 0xDA, 0x00, 0x0D, 0x81, 0xDA, - 0x00, 0x30, 0xAA, 0xE4, 0x00, 0x35, 0xAF, 0xE8, 0x00, 0x33, 0xAB, 0xE3, 0x00, 0x2F, 0xA9, 0xE5, - 0x00, 0x2A, 0xA8, 0xE6, 0x00, 0x35, 0xAD, 0xE8, 0x00, 0x25, 0xA6, 0xE7, 0x00, 0x28, 0xA7, 0xE7, - 0x00, 0x2B, 0xA8, 0xE7, 0x00, 0x2D, 0xA6, 0xE5, 0x00, 0x2E, 0xA4, 0xE4, 0x00, 0x2B, 0xA4, 0xE6, - 0x00, 0x29, 0xA4, 0xE8, 0x00, 0x2A, 0xA4, 0xE5, 0x00, 0x2C, 0xA5, 0xE1, 0x00, 0x10, 0xA9, 0xEF, - 0x00, 0x12, 0xAD, 0xF6, 0x00, 0x22, 0xA2, 0xF8, 0x00, 0x60, 0x91, 0xA5, 0x00, 0xA5, 0x75, 0x5C, - 0x00, 0xEB, 0x59, 0x14, 0x00, 0xFF, 0x48, 0x0C, 0x00, 0xFA, 0x55, 0x03, 0x00, 0xFF, 0x59, 0x0F, - 0x00, 0xFF, 0x5D, 0x1A, 0x00, 0xFF, 0x60, 0x16, 0x00, 0xF9, 0x64, 0x11, 0x00, 0xFF, 0x54, 0x0F, - 0x00, 0xFF, 0x4A, 0x0C, 0x00, 0xFA, 0x49, 0x17, 0x00, 0xF5, 0x47, 0x23, 0x00, 0x8D, 0x72, 0x7E, - 0x00, 0x26, 0x9D, 0xD9, 0x00, 0x05, 0xA1, 0xFF, 0x00, 0x1D, 0x96, 0xE1, 0x00, 0x17, 0x98, 0xE9, - 0x00, 0x1C, 0x97, 0xE3, 0x00, 0x1A, 0x97, 0xE3, 0x00, 0x18, 0x97, 0xE4, 0x00, 0x19, 0x96, 0xE3, - 0x00, 0x1B, 0x94, 0xE2, 0x00, 0x1A, 0x93, 0xE1, 0x00, 0x19, 0x93, 0xE0, 0x00, 0x18, 0x92, 0xE1, - 0x00, 0x17, 0x91, 0xE1, 0x00, 0x16, 0x90, 0xE0, 0x00, 0x15, 0x8F, 0xDF, 0x00, 0x14, 0x8E, 0xDE, - 0x00, 0x13, 0x8D, 0xDD, 0x00, 0x13, 0x8D, 0xDE, 0x00, 0x13, 0x8C, 0xDF, 0x00, 0x12, 0x8A, 0xDF, - 0x00, 0x10, 0x89, 0xE0, 0x00, 0x0F, 0x87, 0xDD, 0x00, 0x0E, 0x84, 0xDB, 0x00, 0x13, 0x8A, 0xDF, - 0x00, 0x0F, 0x87, 0xDB, 0x00, 0x0F, 0x86, 0xDC, 0x00, 0x0F, 0x85, 0xDC, 0x00, 0x0E, 0x84, 0xDB, - 0x00, 0x0D, 0x82, 0xDB, 0x00, 0x0D, 0x82, 0xDB, 0x00, 0x0D, 0x82, 0xDB, 0x00, 0x0D, 0x82, 0xDB, - 0x00, 0x33, 0xAB, 0xE2, 0x00, 0x3B, 0xB3, 0xEB, 0x00, 0x33, 0xAC, 0xE5, 0x00, 0x30, 0xAB, 0xE6, - 0x00, 0x2D, 0xAA, 0xE7, 0x00, 0x43, 0xB6, 0xEA, 0x00, 0x23, 0xA7, 0xEA, 0x00, 0x29, 0xA9, 0xE9, - 0x00, 0x2F, 0xAB, 0xE9, 0x00, 0x32, 0xA9, 0xE5, 0x00, 0x35, 0xA7, 0xE2, 0x00, 0x30, 0xA7, 0xE6, - 0x00, 0x2A, 0xA8, 0xEA, 0x00, 0x25, 0xAA, 0xF0, 0x00, 0x1F, 0xAD, 0xF6, 0x00, 0x4D, 0x8A, 0xA7, - 0x00, 0xB7, 0x66, 0x4C, 0x00, 0xFF, 0x54, 0x0F, 0x00, 0xF7, 0x64, 0x0C, 0x00, 0xF8, 0x63, 0x13, - 0x00, 0xF9, 0x61, 0x1A, 0x00, 0xEF, 0x67, 0x1E, 0x00, 0xFC, 0x61, 0x22, 0x00, 0xFA, 0x68, 0x25, - 0x00, 0xF9, 0x6F, 0x28, 0x00, 0xF5, 0x70, 0x22, 0x00, 0xF2, 0x72, 0x1B, 0x00, 0xF2, 0x6B, 0x1F, - 0x00, 0xF1, 0x64, 0x24, 0x00, 0xFF, 0x55, 0x21, 0x00, 0xFF, 0x53, 0x1E, 0x00, 0xFF, 0x4B, 0x16, - 0x00, 0xFF, 0x43, 0x0E, 0x00, 0xB1, 0x61, 0x5A, 0x00, 0x1E, 0x95, 0xDF, 0x00, 0x12, 0x9A, 0xF0, - 0x00, 0x1B, 0x9A, 0xE5, 0x00, 0x18, 0x9A, 0xE5, 0x00, 0x14, 0x9A, 0xE6, 0x00, 0x17, 0x98, 0xE5, - 0x00, 0x1B, 0x95, 0xE4, 0x00, 0x1A, 0x95, 0xE2, 0x00, 0x19, 0x94, 0xE0, 0x00, 0x18, 0x93, 0xE1, - 0x00, 0x17, 0x92, 0xE2, 0x00, 0x16, 0x91, 0xE1, 0x00, 0x16, 0x90, 0xE0, 0x00, 0x15, 0x8F, 0xDF, - 0x00, 0x14, 0x8F, 0xDE, 0x00, 0x14, 0x8E, 0xDF, 0x00, 0x14, 0x8E, 0xE1, 0x00, 0x12, 0x8C, 0xE0, - 0x00, 0x10, 0x8A, 0xE0, 0x00, 0x10, 0x88, 0xDE, 0x00, 0x10, 0x86, 0xDC, 0x00, 0x17, 0x8E, 0xE3, - 0x00, 0x0D, 0x87, 0xDB, 0x00, 0x0E, 0x86, 0xDB, 0x00, 0x0F, 0x86, 0xDC, 0x00, 0x0E, 0x85, 0xDC, - 0x00, 0x0E, 0x83, 0xDB, 0x00, 0x0E, 0x83, 0xDB, 0x00, 0x0E, 0x83, 0xDB, 0x00, 0x0E, 0x83, 0xDB, - 0x00, 0x36, 0xB0, 0xEA, 0x00, 0x36, 0xB3, 0xEF, 0x00, 0x2E, 0xAE, 0xED, 0x00, 0x2C, 0xAD, 0xEC, - 0x00, 0x2A, 0xAD, 0xEB, 0x00, 0x40, 0xB3, 0xEF, 0x00, 0x28, 0xAA, 0xE9, 0x00, 0x2B, 0xAB, 0xE7, - 0x00, 0x2F, 0xAB, 0xE6, 0x00, 0x30, 0xAA, 0xE6, 0x00, 0x31, 0xAA, 0xE5, 0x00, 0x2E, 0xA9, 0xE6, - 0x00, 0x2B, 0xA9, 0xE7, 0x00, 0x24, 0xA7, 0xEB, 0x00, 0x93, 0x6A, 0x5F, 0x00, 0xFF, 0x3D, 0x05, - 0x00, 0xF9, 0x56, 0x17, 0x00, 0xE2, 0x72, 0x12, 0x00, 0xF8, 0x72, 0x29, 0x00, 0xF7, 0x74, 0x27, - 0x00, 0xF6, 0x76, 0x25, 0x00, 0xF1, 0x76, 0x28, 0x00, 0xF8, 0x70, 0x2A, 0x00, 0xF8, 0x77, 0x2D, - 0x00, 0xF9, 0x7D, 0x30, 0x00, 0xF7, 0x7F, 0x2D, 0x00, 0xF5, 0x81, 0x2A, 0x00, 0xF5, 0x7B, 0x2B, - 0x00, 0xF5, 0x75, 0x2C, 0x00, 0xFD, 0x6A, 0x2B, 0x00, 0xFA, 0x64, 0x2A, 0x00, 0xF5, 0x5D, 0x2C, - 0x00, 0xF0, 0x57, 0x2E, 0x00, 0xFF, 0x48, 0x10, 0x00, 0xFF, 0x45, 0x0E, 0x00, 0x80, 0x76, 0x7F, - 0x00, 0x02, 0xA7, 0xF0, 0x00, 0x24, 0x95, 0xEA, 0x00, 0x19, 0x9A, 0xE3, 0x00, 0x1B, 0x98, 0xE4, - 0x00, 0x1D, 0x95, 0xE4, 0x00, 0x1B, 0x95, 0xE2, 0x00, 0x19, 0x96, 0xDF, 0x00, 0x18, 0x94, 0xE1, - 0x00, 0x17, 0x93, 0xE2, 0x00, 0x16, 0x92, 0xE2, 0x00, 0x16, 0x92, 0xE1, 0x00, 0x15, 0x91, 0xE0, - 0x00, 0x15, 0x90, 0xDF, 0x00, 0x15, 0x90, 0xE0, 0x00, 0x15, 0x91, 0xE2, 0x00, 0x12, 0x8E, 0xE1, - 0x00, 0x0F, 0x8C, 0xDF, 0x00, 0x12, 0x8B, 0xDF, 0x00, 0x14, 0x8A, 0xDF, 0x00, 0x15, 0x8D, 0xE2, - 0x00, 0x0E, 0x89, 0xDC, 0x00, 0x0E, 0x88, 0xDC, 0x00, 0x0F, 0x87, 0xDD, 0x00, 0x0E, 0x86, 0xDC, - 0x00, 0x0E, 0x85, 0xDC, 0x00, 0x0E, 0x85, 0xDC, 0x00, 0x0E, 0x85, 0xDC, 0x00, 0x0E, 0x85, 0xDC, - 0x00, 0x5F, 0xC0, 0xE6, 0x00, 0x57, 0xBE, 0xE8, 0x00, 0x4F, 0xBB, 0xE9, 0x00, 0x4E, 0xBA, 0xE6, - 0x00, 0x4D, 0xB9, 0xE3, 0x00, 0x50, 0xB6, 0xED, 0x00, 0x2D, 0xAE, 0xE7, 0x00, 0x2E, 0xAC, 0xE6, - 0x00, 0x2E, 0xAB, 0xE4, 0x00, 0x2E, 0xAC, 0xE6, 0x00, 0x2E, 0xAD, 0xE8, 0x00, 0x2D, 0xAB, 0xE7, - 0x00, 0x2C, 0xAA, 0xE5, 0x00, 0x15, 0xB2, 0xFF, 0x00, 0xEB, 0x42, 0x10, 0x00, 0xF1, 0x4F, 0x16, - 0x00, 0xF7, 0x5C, 0x1C, 0x00, 0xF8, 0x71, 0x23, 0x00, 0xF9, 0x85, 0x29, 0x00, 0xF6, 0x88, 0x2D, - 0x00, 0xF3, 0x8B, 0x30, 0x00, 0xF4, 0x85, 0x31, 0x00, 0xF4, 0x7F, 0x33, 0x00, 0xF6, 0x85, 0x35, - 0x00, 0xF9, 0x8B, 0x37, 0x00, 0xF8, 0x8D, 0x38, 0x00, 0xF7, 0x90, 0x3A, 0x00, 0xF8, 0x8B, 0x37, - 0x00, 0xF8, 0x86, 0x35, 0x00, 0xF7, 0x7E, 0x35, 0x00, 0xF6, 0x75, 0x35, 0x00, 0xF7, 0x6D, 0x33, - 0x00, 0xF7, 0x64, 0x31, 0x00, 0xF8, 0x5E, 0x31, 0x00, 0xF8, 0x57, 0x30, 0x00, 0xFF, 0x51, 0x25, - 0x00, 0xF5, 0x51, 0x36, 0x00, 0x03, 0xA4, 0xFD, 0x00, 0x1E, 0x9A, 0xE1, 0x00, 0x1E, 0x98, 0xE3, - 0x00, 0x1E, 0x96, 0xE5, 0x00, 0x1C, 0x96, 0xE2, 0x00, 0x19, 0x97, 0xDF, 0x00, 0x18, 0x96, 0xE1, - 0x00, 0x17, 0x95, 0xE3, 0x00, 0x16, 0x94, 0xE2, 0x00, 0x16, 0x93, 0xE1, 0x00, 0x16, 0x92, 0xE0, - 0x00, 0x15, 0x91, 0xE0, 0x00, 0x16, 0x92, 0xE2, 0x00, 0x16, 0x93, 0xE4, 0x00, 0x12, 0x90, 0xE1, - 0x00, 0x0F, 0x8E, 0xDF, 0x00, 0x14, 0x8D, 0xE1, 0x00, 0x18, 0x8D, 0xE3, 0x00, 0x13, 0x8C, 0xE0, - 0x00, 0x0F, 0x8B, 0xDE, 0x00, 0x0F, 0x89, 0xDD, 0x00, 0x0E, 0x88, 0xDD, 0x00, 0x0E, 0x87, 0xDD, - 0x00, 0x0E, 0x86, 0xDC, 0x00, 0x0E, 0x86, 0xDC, 0x00, 0x0E, 0x86, 0xDC, 0x00, 0x0E, 0x86, 0xDC, - 0x00, 0x3C, 0xB6, 0xED, 0x00, 0x35, 0xB3, 0xEE, 0x00, 0x2F, 0xB1, 0xEF, 0x00, 0x2F, 0xB1, 0xED, - 0x00, 0x2F, 0xB0, 0xEC, 0x00, 0x38, 0xB0, 0xEE, 0x00, 0x2D, 0xAE, 0xE9, 0x00, 0x2F, 0xAD, 0xE7, - 0x00, 0x30, 0xAD, 0xE6, 0x00, 0x2F, 0xAE, 0xE8, 0x00, 0x2D, 0xB0, 0xEA, 0x00, 0x30, 0xAD, 0xEC, - 0x00, 0x28, 0xAF, 0xEE, 0x00, 0x2F, 0xA9, 0xC8, 0x00, 0xFF, 0x3D, 0x04, 0x00, 0xFA, 0x50, 0x19, - 0x00, 0xF8, 0x5F, 0x21, 0x00, 0xF7, 0x73, 0x28, 0x00, 0xF7, 0x87, 0x2F, 0x00, 0xFA, 0x95, 0x37, - 0x00, 0xF5, 0x9B, 0x37, 0x00, 0xF5, 0x96, 0x3A, 0x00, 0xF5, 0x92, 0x3D, 0x00, 0xF7, 0x94, 0x3F, - 0x00, 0xF9, 0x96, 0x41, 0x00, 0xF9, 0x99, 0x43, 0x00, 0xF9, 0x9D, 0x46, 0x00, 0xF8, 0x98, 0x44, - 0x00, 0xF7, 0x94, 0x43, 0x00, 0xF8, 0x8D, 0x42, 0x00, 0xF9, 0x86, 0x41, 0x00, 0xF9, 0x7D, 0x3F, - 0x00, 0xF9, 0x73, 0x3C, 0x00, 0xF7, 0x70, 0x38, 0x00, 0xF4, 0x6C, 0x35, 0x00, 0xFF, 0x60, 0x21, - 0x00, 0xBE, 0x6C, 0x62, 0x00, 0x12, 0x9D, 0xEF, 0x00, 0x21, 0x9A, 0xE8, 0x00, 0x1C, 0x99, 0xED, - 0x00, 0x17, 0x9B, 0xE3, 0x00, 0x13, 0x98, 0xF0, 0x00, 0x1B, 0x94, 0xE0, 0x00, 0x1A, 0x96, 0xE1, - 0x00, 0x19, 0x97, 0xE3, 0x00, 0x18, 0x96, 0xE4, 0x00, 0x17, 0x95, 0xE5, 0x00, 0x18, 0x94, 0xE3, - 0x00, 0x19, 0x93, 0xE2, 0x00, 0x16, 0x91, 0xE0, 0x00, 0x14, 0x90, 0xDE, 0x00, 0x15, 0x91, 0xE1, - 0x00, 0x16, 0x92, 0xE5, 0x00, 0x14, 0x90, 0xE3, 0x00, 0x11, 0x8D, 0xE2, 0x00, 0x10, 0x8D, 0xE2, - 0x00, 0x0F, 0x8D, 0xE3, 0x00, 0x10, 0x8A, 0xDE, 0x00, 0x11, 0x88, 0xD8, 0x00, 0x0E, 0x87, 0xE1, - 0x00, 0x0B, 0x89, 0xDC, 0x00, 0x10, 0x85, 0xE0, 0x00, 0x09, 0x87, 0xE4, 0x00, 0x09, 0x87, 0xE4, - 0x00, 0x3F, 0xB5, 0xE8, 0x00, 0x3B, 0xB3, 0xE9, 0x00, 0x36, 0xB2, 0xEA, 0x00, 0x37, 0xB1, 0xE9, - 0x00, 0x37, 0xB1, 0xE8, 0x00, 0x32, 0xAF, 0xE9, 0x00, 0x2D, 0xAE, 0xEA, 0x00, 0x30, 0xAE, 0xE9, - 0x00, 0x32, 0xAF, 0xE8, 0x00, 0x30, 0xB1, 0xEA, 0x00, 0x2D, 0xB4, 0xEC, 0x00, 0x34, 0xAE, 0xF1, - 0x00, 0x24, 0xB4, 0xF6, 0x00, 0x8D, 0x7E, 0x86, 0x00, 0xF6, 0x4E, 0x00, 0x00, 0xEC, 0x5C, 0x1D, - 0x00, 0xF9, 0x63, 0x25, 0x00, 0xF7, 0x76, 0x2D, 0x00, 0xF4, 0x89, 0x35, 0x00, 0xFD, 0xA2, 0x41, - 0x00, 0xF6, 0xAB, 0x3E, 0x00, 0xF6, 0xA8, 0x43, 0x00, 0xF7, 0xA4, 0x47, 0x00, 0xF8, 0xA3, 0x4A, - 0x00, 0xFA, 0xA1, 0x4C, 0x00, 0xFA, 0xA5, 0x4E, 0x00, 0xFB, 0xAA, 0x51, 0x00, 0xF9, 0xA6, 0x52, - 0x00, 0xF7, 0xA2, 0x52, 0x00, 0xFA, 0x9C, 0x4F, 0x00, 0xFD, 0x97, 0x4D, 0x00, 0xFC, 0x8D, 0x4A, - 0x00, 0xFB, 0x83, 0x47, 0x00, 0xF6, 0x82, 0x40, 0x00, 0xF1, 0x82, 0x39, 0x00, 0xF4, 0x72, 0x2B, - 0x00, 0x71, 0x8C, 0xAB, 0x00, 0x16, 0x99, 0xF0, 0x00, 0x25, 0x99, 0xEF, 0x00, 0x25, 0x97, 0xE8, - 0x00, 0x26, 0x9A, 0xC5, 0x00, 0x16, 0x96, 0xF0, 0x00, 0x1C, 0x91, 0xE2, 0x00, 0x1B, 0x96, 0xE2, - 0x00, 0x1B, 0x9A, 0xE2, 0x00, 0x19, 0x99, 0xE5, 0x00, 0x18, 0x98, 0xE8, 0x00, 0x1A, 0x96, 0xE6, - 0x00, 0x1C, 0x95, 0xE4, 0x00, 0x17, 0x91, 0xDF, 0x00, 0x13, 0x8D, 0xD9, 0x00, 0x18, 0x92, 0xE2, - 0x00, 0x1E, 0x97, 0xEA, 0x00, 0x14, 0x92, 0xE5, 0x00, 0x0B, 0x8D, 0xE1, 0x00, 0x0D, 0x8E, 0xE5, - 0x00, 0x10, 0x8F, 0xE9, 0x00, 0x12, 0x8B, 0xDE, 0x00, 0x14, 0x88, 0xD4, 0x00, 0x0E, 0x87, 0xE6, - 0x00, 0x08, 0x8C, 0xDC, 0x00, 0x11, 0x84, 0xE4, 0x00, 0x03, 0x88, 0xEC, 0x00, 0x03, 0x88, 0xEC, - 0x00, 0x3D, 0xB6, 0xEA, 0x00, 0x3A, 0xB5, 0xEA, 0x00, 0x38, 0xB4, 0xEB, 0x00, 0x37, 0xB3, 0xEB, - 0x00, 0x37, 0xB3, 0xEA, 0x00, 0x34, 0xB2, 0xEB, 0x00, 0x32, 0xB1, 0xEB, 0x00, 0x33, 0xB1, 0xEB, - 0x00, 0x34, 0xB0, 0xEA, 0x00, 0x32, 0xB3, 0xE9, 0x00, 0x2F, 0xB5, 0xE8, 0x00, 0x34, 0xB0, 0xF0, - 0x00, 0x22, 0xB6, 0xF8, 0x00, 0xC5, 0x60, 0x44, 0x00, 0xF9, 0x53, 0x0B, 0x00, 0xF2, 0x63, 0x21, - 0x00, 0xF6, 0x6F, 0x29, 0x00, 0xF6, 0x7D, 0x2F, 0x00, 0xF7, 0x8A, 0x35, 0x00, 0xFA, 0xA1, 0x41, - 0x00, 0xF6, 0xAF, 0x45, 0x00, 0xFA, 0xB4, 0x4F, 0x00, 0xF6, 0xB0, 0x50, 0x00, 0xF8, 0xAE, 0x53, - 0x00, 0xFA, 0xAC, 0x56, 0x00, 0xFC, 0xB2, 0x59, 0x00, 0xFD, 0xB7, 0x5D, 0x00, 0xFA, 0xB3, 0x5F, - 0x00, 0xF6, 0xAF, 0x61, 0x00, 0xF9, 0xAC, 0x5D, 0x00, 0xFD, 0xA9, 0x59, 0x00, 0xFB, 0x9F, 0x55, - 0x00, 0xF8, 0x94, 0x50, 0x00, 0xF7, 0x91, 0x4A, 0x00, 0xF5, 0x8D, 0x44, 0x00, 0xFF, 0x7D, 0x22, - 0x00, 0x1A, 0xA5, 0xEF, 0x00, 0x12, 0x9E, 0xF3, 0x00, 0x28, 0x96, 0xF1, 0x00, 0x22, 0x9F, 0xB0, - 0x00, 0x6C, 0x96, 0x00, 0x00, 0x3B, 0x9B, 0x82, 0x00, 0x16, 0x9D, 0xF8, 0x00, 0x15, 0x9B, 0xF4, - 0x00, 0x14, 0x9C, 0xE2, 0x00, 0x15, 0x99, 0xE4, 0x00, 0x17, 0x96, 0xE6, 0x00, 0x18, 0x95, 0xE5, - 0x00, 0x1A, 0x93, 0xE4, 0x00, 0x18, 0x93, 0xE2, 0x00, 0x16, 0x92, 0xE0, 0x00, 0x1C, 0x98, 0xE6, - 0x00, 0x19, 0x95, 0xE4, 0x00, 0x16, 0x92, 0xE4, 0x00, 0x12, 0x8F, 0xE5, 0x00, 0x12, 0x8C, 0xEB, - 0x00, 0x12, 0x8B, 0xE3, 0x00, 0x00, 0x87, 0xE3, 0x00, 0x00, 0x7B, 0xF4, 0x00, 0x1A, 0x86, 0xD3, - 0x00, 0x0C, 0x8C, 0xF0, 0x00, 0x00, 0x8E, 0xE2, 0x00, 0x0D, 0x84, 0xEA, 0x00, 0x07, 0x86, 0xF1, - 0x00, 0x3B, 0xB7, 0xEC, 0x00, 0x3A, 0xB6, 0xEC, 0x00, 0x39, 0xB6, 0xEC, 0x00, 0x38, 0xB5, 0xEC, - 0x00, 0x37, 0xB5, 0xED, 0x00, 0x37, 0xB4, 0xEC, 0x00, 0x37, 0xB4, 0xEC, 0x00, 0x36, 0xB3, 0xEC, - 0x00, 0x36, 0xB2, 0xEC, 0x00, 0x33, 0xB4, 0xE8, 0x00, 0x31, 0xB5, 0xE4, 0x00, 0x34, 0xB1, 0xEF, - 0x00, 0x21, 0xB8, 0xF9, 0x00, 0xFD, 0x41, 0x02, 0x00, 0xFC, 0x58, 0x1E, 0x00, 0xF8, 0x6A, 0x25, - 0x00, 0xF3, 0x7C, 0x2C, 0x00, 0xF6, 0x84, 0x31, 0x00, 0xF9, 0x8B, 0x35, 0x00, 0xF7, 0xA0, 0x41, - 0x00, 0xF6, 0xB4, 0x4C, 0x00, 0xFE, 0xC0, 0x5B, 0x00, 0xF6, 0xBC, 0x59, 0x00, 0xF8, 0xBA, 0x5D, - 0x00, 0xFA, 0xB7, 0x60, 0x00, 0xFD, 0xBE, 0x64, 0x00, 0xFF, 0xC4, 0x69, 0x00, 0xFA, 0xC0, 0x6C, - 0x00, 0xF5, 0xBD, 0x6F, 0x00, 0xF9, 0xBC, 0x6A, 0x00, 0xFD, 0xBB, 0x65, 0x00, 0xFA, 0xB1, 0x60, - 0x00, 0xF6, 0xA6, 0x5A, 0x00, 0xF8, 0x9F, 0x54, 0x00, 0xFA, 0x98, 0x4F, 0x00, 0xDF, 0x94, 0x6E, - 0x00, 0x07, 0xA6, 0xFB, 0x00, 0x24, 0x9C, 0xDA, 0x00, 0x14, 0x9F, 0xF2, 0x00, 0x4A, 0xA1, 0x71, - 0x00, 0x68, 0xA9, 0x0D, 0x00, 0x61, 0xA3, 0x06, 0x00, 0x5A, 0x98, 0x1B, 0x00, 0x33, 0x96, 0x9B, - 0x00, 0x0D, 0x99, 0xFE, 0x00, 0x11, 0x96, 0xF1, 0x00, 0x16, 0x94, 0xE4, 0x00, 0x17, 0x93, 0xE4, - 0x00, 0x18, 0x91, 0xE4, 0x00, 0x19, 0x94, 0xE5, 0x00, 0x1A, 0x98, 0xE6, 0x00, 0x1F, 0x9D, 0xEA, - 0x00, 0x15, 0x93, 0xDE, 0x00, 0x17, 0x92, 0xE3, 0x00, 0x1A, 0x91, 0xE8, 0x00, 0x1F, 0x94, 0xEB, - 0x00, 0x25, 0x9D, 0xD1, 0x00, 0xD0, 0xF7, 0x72, 0x00, 0xC1, 0xF2, 0x95, 0x00, 0x00, 0x83, 0xF0, - 0x00, 0x17, 0x81, 0xA0, 0x00, 0x3B, 0x7E, 0x2E, 0x00, 0x16, 0x87, 0xCB, 0x00, 0x0B, 0x8A, 0xDA, - 0x00, 0x3D, 0xB8, 0xEC, 0x00, 0x3C, 0xB8, 0xED, 0x00, 0x3B, 0xB7, 0xED, 0x00, 0x3A, 0xB7, 0xED, - 0x00, 0x39, 0xB6, 0xED, 0x00, 0x39, 0xB6, 0xED, 0x00, 0x39, 0xB6, 0xED, 0x00, 0x39, 0xB6, 0xED, - 0x00, 0x39, 0xB6, 0xED, 0x00, 0x37, 0xB4, 0xEC, 0x00, 0x34, 0xB2, 0xEB, 0x00, 0x34, 0xAB, 0xF2, - 0x00, 0x6D, 0x95, 0xB3, 0x00, 0xFF, 0x46, 0x00, 0x00, 0xF7, 0x64, 0x20, 0x00, 0xF6, 0x73, 0x28, - 0x00, 0xF5, 0x81, 0x30, 0x00, 0xF6, 0x8B, 0x37, 0x00, 0xF8, 0x94, 0x3D, 0x00, 0xF8, 0xA6, 0x48, - 0x00, 0xF7, 0xB7, 0x53, 0x00, 0xFB, 0xC2, 0x60, 0x00, 0xF7, 0xC4, 0x65, 0x00, 0xF9, 0xC3, 0x69, - 0x00, 0xFA, 0xC2, 0x6D, 0x00, 0xFA, 0xC6, 0x72, 0x00, 0xFA, 0xCB, 0x77, 0x00, 0xFB, 0xCB, 0x7A, - 0x00, 0xFC, 0xCB, 0x7D, 0x00, 0xFA, 0xC8, 0x7A, 0x00, 0xF8, 0xC5, 0x77, 0x00, 0xF9, 0xBC, 0x72, - 0x00, 0xFA, 0xB4, 0x6C, 0x00, 0xF6, 0xB0, 0x68, 0x00, 0xFD, 0xAA, 0x56, 0x00, 0x93, 0xA0, 0xA5, - 0x00, 0x13, 0xA1, 0xF3, 0x00, 0x21, 0x9C, 0xEF, 0x00, 0x19, 0x9D, 0xFF, 0x00, 0x71, 0xC1, 0x23, - 0x00, 0x79, 0xB7, 0x25, 0x00, 0x71, 0xB2, 0x1D, 0x00, 0x6A, 0xAA, 0x23, 0x00, 0x66, 0xA0, 0x25, - 0x00, 0x63, 0x9A, 0x18, 0x00, 0x41, 0x9C, 0x72, 0x00, 0x1E, 0x9F, 0xCB, 0x00, 0x18, 0x93, 0xFF, - 0x00, 0x13, 0x98, 0xF1, 0x00, 0x18, 0x9C, 0xF4, 0x00, 0x1D, 0xA0, 0xF7, 0x00, 0x1B, 0x9C, 0xFF, - 0x00, 0x10, 0x93, 0xF6, 0x00, 0x11, 0x93, 0xF1, 0x00, 0x13, 0x93, 0xEC, 0x00, 0x00, 0x83, 0xFF, - 0x00, 0x72, 0xCB, 0xA0, 0x00, 0xCB, 0xF9, 0x81, 0x00, 0xD0, 0xFF, 0xAC, 0x00, 0x78, 0xA0, 0x45, - 0x00, 0x33, 0x77, 0x00, 0x00, 0x3A, 0x7C, 0x02, 0x00, 0x0D, 0x8C, 0xE2, 0x00, 0x0D, 0x8E, 0xDB, - 0x00, 0x3E, 0xBA, 0xED, 0x00, 0x3D, 0xB9, 0xED, 0x00, 0x3C, 0xB9, 0xED, 0x00, 0x3B, 0xB8, 0xED, - 0x00, 0x3A, 0xB8, 0xED, 0x00, 0x3B, 0xB8, 0xED, 0x00, 0x3B, 0xB8, 0xED, 0x00, 0x3C, 0xB8, 0xEE, - 0x00, 0x3C, 0xB9, 0xEE, 0x00, 0x3A, 0xB4, 0xF0, 0x00, 0x37, 0xAE, 0xF2, 0x00, 0x32, 0xB3, 0xFE, - 0x00, 0xB3, 0x8E, 0x7C, 0x00, 0xFF, 0x58, 0x06, 0x00, 0xF3, 0x71, 0x22, 0x00, 0xF4, 0x7C, 0x2B, - 0x00, 0xF6, 0x86, 0x34, 0x00, 0xF7, 0x92, 0x3D, 0x00, 0xF8, 0x9D, 0x45, 0x00, 0xF8, 0xAC, 0x4F, - 0x00, 0xF8, 0xBB, 0x5A, 0x00, 0xF9, 0xC4, 0x65, 0x00, 0xF9, 0xCC, 0x70, 0x00, 0xFA, 0xCC, 0x75, - 0x00, 0xFA, 0xCC, 0x7A, 0x00, 0xF7, 0xCF, 0x80, 0x00, 0xF4, 0xD2, 0x85, 0x00, 0xFB, 0xD5, 0x89, - 0x00, 0xFF, 0xD9, 0x8C, 0x00, 0xFA, 0xD3, 0x8B, 0x00, 0xF2, 0xCE, 0x89, 0x00, 0xF8, 0xC8, 0x84, - 0x00, 0xFE, 0xC1, 0x7F, 0x00, 0xF4, 0xC1, 0x7C, 0x00, 0xFF, 0xBC, 0x5E, 0x00, 0x47, 0xAB, 0xDB, - 0x00, 0x1E, 0x9C, 0xEA, 0x00, 0x1D, 0xA2, 0xE8, 0x00, 0x1D, 0xA7, 0xE5, 0x00, 0x98, 0xD3, 0x1B, - 0x00, 0x8A, 0xCB, 0x21, 0x00, 0x82, 0xC3, 0x26, 0x00, 0x7A, 0xBB, 0x2C, 0x00, 0x75, 0xB4, 0x28, - 0x00, 0x70, 0xAD, 0x25, 0x00, 0x6D, 0xAB, 0x16, 0x00, 0x6A, 0xA9, 0x08, 0x00, 0x5E, 0xA9, 0x11, - 0x00, 0x51, 0x9E, 0x53, 0x00, 0x47, 0x9B, 0x6D, 0x00, 0x3E, 0x97, 0x87, 0x00, 0x3B, 0x95, 0x91, - 0x00, 0x38, 0x98, 0x80, 0x00, 0x44, 0x96, 0x63, 0x00, 0x4F, 0x94, 0x45, 0x00, 0x82, 0xB4, 0x3C, - 0x00, 0x4F, 0x84, 0x1B, 0x00, 0xAF, 0xE0, 0x87, 0x00, 0x9E, 0xCC, 0x82, 0x00, 0x35, 0x7F, 0x11, - 0x00, 0x42, 0x82, 0x1B, 0x00, 0x32, 0x84, 0x3B, 0x00, 0x04, 0x92, 0xF9, 0x00, 0x0F, 0x92, 0xDC, - 0x00, 0x40, 0xBC, 0xEE, 0x00, 0x3F, 0xBB, 0xED, 0x00, 0x3E, 0xBA, 0xED, 0x00, 0x3D, 0xBA, 0xED, - 0x00, 0x3C, 0xB9, 0xEC, 0x00, 0x3C, 0xB9, 0xEC, 0x00, 0x3C, 0xB8, 0xEC, 0x00, 0x3C, 0xB8, 0xEC, - 0x00, 0x3C, 0xB8, 0xEB, 0x00, 0x3F, 0xB3, 0xF0, 0x00, 0x42, 0xAF, 0xF4, 0x00, 0x0D, 0xBA, 0xE8, - 0x00, 0xFF, 0xB8, 0x96, 0x00, 0xF6, 0x81, 0x4C, 0x00, 0xF5, 0x75, 0x22, 0x00, 0xF6, 0x80, 0x2D, - 0x00, 0xF7, 0x8B, 0x38, 0x00, 0xF7, 0x99, 0x42, 0x00, 0xF7, 0xA6, 0x4D, 0x00, 0xF8, 0xB2, 0x56, - 0x00, 0xF9, 0xBD, 0x5F, 0x00, 0xF9, 0xC8, 0x6D, 0x00, 0xFA, 0xD4, 0x7A, 0x00, 0xFA, 0xD5, 0x81, - 0x00, 0xF9, 0xD7, 0x88, 0x00, 0xFA, 0xD8, 0x8D, 0x00, 0xFB, 0xDA, 0x92, 0x00, 0xF9, 0xE4, 0xA1, - 0x00, 0xFE, 0xD6, 0x91, 0x00, 0xFA, 0xDE, 0x9F, 0x00, 0xF8, 0xDB, 0x97, 0x00, 0xF9, 0xD5, 0x93, - 0x00, 0xFB, 0xCF, 0x8F, 0x00, 0xFF, 0xD1, 0x85, 0x00, 0xFF, 0xC6, 0x78, 0x00, 0x00, 0x9A, 0xFC, - 0x00, 0x26, 0xA8, 0xF1, 0x00, 0x1F, 0xA4, 0xF8, 0x00, 0x53, 0xBD, 0xA5, 0x00, 0xA4, 0xDA, 0x30, - 0x00, 0x9D, 0xD5, 0x37, 0x00, 0x97, 0xD0, 0x3A, 0x00, 0x90, 0xCA, 0x3D, 0x00, 0x8A, 0xC5, 0x39, - 0x00, 0x84, 0xBF, 0x35, 0x00, 0x7C, 0xBD, 0x30, 0x00, 0x74, 0xBC, 0x2C, 0x00, 0x75, 0xB8, 0x1B, - 0x00, 0x77, 0xAF, 0x27, 0x00, 0x72, 0xAB, 0x25, 0x00, 0x6D, 0xA7, 0x23, 0x00, 0x6A, 0xA3, 0x28, - 0x00, 0x68, 0xA2, 0x1E, 0x00, 0x57, 0x95, 0x19, 0x00, 0x77, 0xB7, 0x45, 0x00, 0xBA, 0xF0, 0x81, - 0x00, 0x72, 0xAC, 0x4C, 0x00, 0x41, 0x7B, 0x14, 0x00, 0x4F, 0x8A, 0x1D, 0x00, 0x42, 0x86, 0x1C, - 0x00, 0x49, 0x86, 0x14, 0x00, 0x16, 0x86, 0x8B, 0x00, 0x0A, 0x90, 0xF5, 0x00, 0x15, 0x8D, 0xE7, - 0x00, 0x41, 0xBE, 0xEF, 0x00, 0x40, 0xBD, 0xEE, 0x00, 0x3F, 0xBC, 0xED, 0x00, 0x3E, 0xBB, 0xED, - 0x00, 0x3D, 0xBA, 0xEC, 0x00, 0x3D, 0xBA, 0xEB, 0x00, 0x3C, 0xB9, 0xEA, 0x00, 0x3C, 0xB8, 0xE9, - 0x00, 0x3B, 0xB7, 0xE8, 0x00, 0x39, 0xB9, 0xF0, 0x00, 0x37, 0xBA, 0xF7, 0x00, 0x50, 0xB5, 0xDC, - 0x00, 0xFF, 0x96, 0x44, 0x00, 0xFE, 0xC4, 0x9C, 0x00, 0xF7, 0x79, 0x23, 0x00, 0xF8, 0x85, 0x30, - 0x00, 0xF8, 0x91, 0x3C, 0x00, 0xF8, 0xA0, 0x48, 0x00, 0xF7, 0xAF, 0x55, 0x00, 0xF8, 0xB7, 0x5D, - 0x00, 0xF9, 0xBF, 0x65, 0x00, 0xFA, 0xCD, 0x75, 0x00, 0xFB, 0xDB, 0x85, 0x00, 0xFA, 0xDE, 0x8D, - 0x00, 0xF9, 0xE1, 0x95, 0x00, 0xFD, 0xE1, 0x9A, 0x00, 0xFF, 0xE2, 0xA0, 0x00, 0xFA, 0xE8, 0xA3, - 0x00, 0xFF, 0xBD, 0x6B, 0x00, 0xFC, 0xDE, 0x9E, 0x00, 0xFF, 0xE8, 0xA6, 0x00, 0xFB, 0xE3, 0xA3, - 0x00, 0xF7, 0xDE, 0xA0, 0x00, 0xFD, 0xD7, 0x99, 0x00, 0xB5, 0xBD, 0xAB, 0x00, 0x11, 0x9F, 0xF0, - 0x00, 0x1D, 0xA3, 0xE8, 0x00, 0x19, 0x9E, 0xFF, 0x00, 0x89, 0xD4, 0x65, 0x00, 0xB0, 0xE1, 0x45, - 0x00, 0xB0, 0xDF, 0x4D, 0x00, 0xAB, 0xDC, 0x4D, 0x00, 0xA7, 0xD8, 0x4D, 0x00, 0xA0, 0xD5, 0x49, - 0x00, 0x99, 0xD2, 0x44, 0x00, 0x97, 0xCD, 0x3C, 0x00, 0x94, 0xC9, 0x34, 0x00, 0x8D, 0xC4, 0x34, - 0x00, 0x86, 0xC0, 0x33, 0x00, 0x7A, 0xBC, 0x32, 0x00, 0x6E, 0xB7, 0x31, 0x00, 0x6D, 0xB2, 0x2F, - 0x00, 0x6B, 0xAE, 0x2E, 0x00, 0x7D, 0xB9, 0x3F, 0x00, 0x6F, 0xA5, 0x30, 0x00, 0x7B, 0xB5, 0x4E, - 0x00, 0x56, 0x9A, 0x20, 0x00, 0x5B, 0x9F, 0x2A, 0x00, 0x50, 0x93, 0x24, 0x00, 0x80, 0xB9, 0x65, - 0x00, 0x5F, 0x99, 0x1C, 0x00, 0x03, 0x8F, 0xE2, 0x00, 0x10, 0x8E, 0xF2, 0x00, 0x1B, 0x88, 0xF2, - 0x00, 0x43, 0xBF, 0xEF, 0x00, 0x42, 0xBE, 0xEE, 0x00, 0x41, 0xBD, 0xEE, 0x00, 0x40, 0xBD, 0xEE, - 0x00, 0x3F, 0xBC, 0xED, 0x00, 0x3F, 0xBB, 0xEC, 0x00, 0x3F, 0xB9, 0xEB, 0x00, 0x3D, 0xB9, 0xEC, - 0x00, 0x3C, 0xB8, 0xEE, 0x00, 0x37, 0xB8, 0xEB, 0x00, 0x26, 0xBC, 0xF6, 0x00, 0x94, 0x9B, 0x8F, - 0x00, 0xFB, 0x96, 0x37, 0x00, 0xF9, 0xBB, 0x7C, 0x00, 0xF8, 0xB5, 0x85, 0x00, 0xF6, 0x99, 0x49, - 0x00, 0xF5, 0x9B, 0x42, 0x00, 0xF6, 0xA6, 0x4E, 0x00, 0xF7, 0xB2, 0x59, 0x00, 0xF8, 0xBC, 0x65, - 0x00, 0xF9, 0xC6, 0x72, 0x00, 0xF9, 0xD3, 0x7F, 0x00, 0xFA, 0xE0, 0x8D, 0x00, 0xF9, 0xE5, 0x97, - 0x00, 0xF8, 0xEB, 0xA1, 0x00, 0xFE, 0xEA, 0xA6, 0x00, 0xFF, 0xEA, 0xAA, 0x00, 0xFC, 0xEE, 0xA8, - 0x00, 0xF9, 0xBA, 0x62, 0x00, 0xFA, 0xDC, 0x98, 0x00, 0xFE, 0xF3, 0xB9, 0x00, 0xFB, 0xEC, 0xB2, - 0x00, 0xF7, 0xE5, 0xAB, 0x00, 0xFE, 0xE4, 0xA2, 0x00, 0x64, 0xB0, 0xD1, 0x00, 0x19, 0x9F, 0xF0, - 0x00, 0x26, 0x9E, 0xE8, 0x00, 0x03, 0x98, 0xF2, 0x00, 0xE3, 0xEF, 0x50, 0x00, 0xD5, 0xEE, 0x57, - 0x00, 0xBF, 0xE3, 0x64, 0x00, 0xBC, 0xE1, 0x64, 0x00, 0xB9, 0xDF, 0x64, 0x00, 0xB4, 0xDD, 0x5D, - 0x00, 0xB0, 0xDB, 0x56, 0x00, 0xA9, 0xD7, 0x4E, 0x00, 0xA2, 0xD3, 0x46, 0x00, 0x9B, 0xD0, 0x42, - 0x00, 0x93, 0xCD, 0x3F, 0x00, 0x8B, 0xC9, 0x3D, 0x00, 0x84, 0xC5, 0x3C, 0x00, 0x80, 0xC1, 0x39, - 0x00, 0x7D, 0xBC, 0x36, 0x00, 0x8A, 0xC7, 0x45, 0x00, 0x88, 0xC1, 0x44, 0x00, 0x62, 0xA0, 0x2B, - 0x00, 0x64, 0xA9, 0x2B, 0x00, 0x5E, 0xA3, 0x2D, 0x00, 0x4F, 0x95, 0x26, 0x00, 0xA4, 0xCE, 0x98, - 0x00, 0xD8, 0xEA, 0xDC, 0x00, 0xB9, 0xDC, 0xFF, 0x00, 0x38, 0x9D, 0xF3, 0x00, 0x00, 0x8F, 0xD3, - 0x00, 0x45, 0xC1, 0xEF, 0x00, 0x44, 0xC0, 0xEF, 0x00, 0x43, 0xBF, 0xEF, 0x00, 0x41, 0xBE, 0xEF, - 0x00, 0x40, 0xBD, 0xEF, 0x00, 0x41, 0xBC, 0xED, 0x00, 0x42, 0xBA, 0xEB, 0x00, 0x3F, 0xBA, 0xEF, - 0x00, 0x3C, 0xB9, 0xF3, 0x00, 0x34, 0xB8, 0xE6, 0x00, 0x16, 0xBD, 0xF6, 0x00, 0xD8, 0x7F, 0x4F, - 0x00, 0xF7, 0x90, 0x46, 0x00, 0xF7, 0xA5, 0x54, 0x00, 0xFF, 0xDA, 0xBA, 0x00, 0xF8, 0xA1, 0x4D, - 0x00, 0xF3, 0xA5, 0x49, 0x00, 0xF4, 0xAD, 0x53, 0x00, 0xF6, 0xB5, 0x5D, 0x00, 0xF8, 0xC0, 0x6E, - 0x00, 0xFA, 0xCC, 0x7F, 0x00, 0xF9, 0xD8, 0x8A, 0x00, 0xF8, 0xE4, 0x95, 0x00, 0xF8, 0xEC, 0xA1, - 0x00, 0xF7, 0xF4, 0xAE, 0x00, 0xFE, 0xF3, 0xB2, 0x00, 0xFF, 0xF1, 0xB5, 0x00, 0xFE, 0xF4, 0xAD, - 0x00, 0xF3, 0xB6, 0x59, 0x00, 0xF8, 0xDA, 0x92, 0x00, 0xFE, 0xFF, 0xCC, 0x00, 0xFA, 0xF6, 0xC1, - 0x00, 0xF7, 0xED, 0xB6, 0x00, 0xFF, 0xF1, 0xAB, 0x00, 0x13, 0xA4, 0xF7, 0x00, 0x15, 0xA4, 0xEF, - 0x00, 0x18, 0xA5, 0xE8, 0x00, 0x56, 0xB4, 0xCD, 0x00, 0xF0, 0xF2, 0x71, 0x00, 0xD4, 0xEF, 0x84, - 0x00, 0xCF, 0xE6, 0x7B, 0x00, 0xCD, 0xE6, 0x7B, 0x00, 0xCB, 0xE6, 0x7C, 0x00, 0xC9, 0xE5, 0x71, - 0x00, 0xC6, 0xE5, 0x67, 0x00, 0xBC, 0xE1, 0x5F, 0x00, 0xB1, 0xDD, 0x57, 0x00, 0xA8, 0xDB, 0x51, - 0x00, 0xA0, 0xDA, 0x4B, 0x00, 0x9C, 0xD7, 0x48, 0x00, 0x99, 0xD4, 0x46, 0x00, 0x94, 0xCF, 0x42, - 0x00, 0x8F, 0xCA, 0x3E, 0x00, 0x88, 0xC4, 0x3B, 0x00, 0x81, 0xBE, 0x39, 0x00, 0x72, 0xB3, 0x30, - 0x00, 0x62, 0xA8, 0x27, 0x00, 0x58, 0xA0, 0x27, 0x00, 0x4E, 0x97, 0x27, 0x00, 0x9F, 0xC4, 0x79, - 0x00, 0xFF, 0xFB, 0xF7, 0x00, 0x7F, 0xD2, 0xF4, 0x00, 0x03, 0x8E, 0xE1, 0x00, 0x0E, 0x89, 0xE1, - 0x00, 0x47, 0xC3, 0xEF, 0x00, 0x46, 0xC2, 0xEF, 0x00, 0x44, 0xC0, 0xEF, 0x00, 0x43, 0xBF, 0xEF, - 0x00, 0x41, 0xBE, 0xF0, 0x00, 0x42, 0xBD, 0xEE, 0x00, 0x43, 0xBC, 0xEC, 0x00, 0x40, 0xBC, 0xEF, - 0x00, 0x3E, 0xBB, 0xF1, 0x00, 0x2F, 0xC0, 0xFD, 0x00, 0x35, 0xBD, 0xFB, 0x00, 0xF5, 0x4B, 0x00, - 0x00, 0xFF, 0x8A, 0x52, 0x00, 0xFA, 0xA5, 0x5D, 0x00, 0xFC, 0xC4, 0x8D, 0x00, 0xFB, 0xC1, 0x85, - 0x00, 0xF5, 0xAD, 0x50, 0x00, 0xF7, 0xB6, 0x5E, 0x00, 0xF9, 0xBE, 0x6B, 0x00, 0xFA, 0xC9, 0x78, - 0x00, 0xFB, 0xD4, 0x85, 0x00, 0xFE, 0xDE, 0x97, 0x00, 0xFF, 0xE8, 0xAA, 0x00, 0xFD, 0xEE, 0xAD, - 0x00, 0xF9, 0xF4, 0xB1, 0x00, 0xFC, 0xF5, 0xB9, 0x00, 0xFE, 0xF6, 0xC2, 0x00, 0xFB, 0xF0, 0xB2, - 0x00, 0xF6, 0xCB, 0x6E, 0x00, 0xFB, 0xDE, 0x91, 0x00, 0xFC, 0xFC, 0xCA, 0x00, 0xFF, 0xFB, 0xD0, - 0x00, 0xFF, 0xFC, 0xC8, 0x00, 0xCA, 0xE3, 0xC7, 0x00, 0x15, 0xA1, 0xF2, 0x00, 0x1D, 0xA3, 0xEE, - 0x00, 0x11, 0xA1, 0xF1, 0x00, 0x9E, 0xD4, 0xB9, 0x00, 0xEA, 0xF1, 0x8B, 0x00, 0xDC, 0xEF, 0x95, - 0x00, 0xD9, 0xEB, 0x90, 0x00, 0xD9, 0xEB, 0x92, 0x00, 0xD8, 0xEC, 0x94, 0x00, 0xD6, 0xEB, 0x8B, - 0x00, 0xD3, 0xEA, 0x82, 0x00, 0xC9, 0xE6, 0x78, 0x00, 0xBF, 0xE3, 0x6F, 0x00, 0xB8, 0xE2, 0x68, - 0x00, 0xB1, 0xE2, 0x61, 0x00, 0xAE, 0xE0, 0x5D, 0x00, 0xAC, 0xDE, 0x5A, 0x00, 0xA2, 0xD9, 0x51, - 0x00, 0x98, 0xD3, 0x48, 0x00, 0x8E, 0xCB, 0x41, 0x00, 0x83, 0xC3, 0x39, 0x00, 0x74, 0xB7, 0x32, - 0x00, 0x66, 0xAC, 0x2C, 0x00, 0x5D, 0xA2, 0x29, 0x00, 0x54, 0x99, 0x26, 0x00, 0x4A, 0x93, 0x21, - 0x00, 0x23, 0x99, 0xB9, 0x00, 0x15, 0x93, 0xFE, 0x00, 0x09, 0x92, 0xD8, 0x00, 0x0F, 0x8F, 0xD8, - 0x00, 0x49, 0xC4, 0xEF, 0x00, 0x47, 0xC3, 0xEF, 0x00, 0x46, 0xC2, 0xF0, 0x00, 0x44, 0xC1, 0xF0, - 0x00, 0x42, 0xC0, 0xF1, 0x00, 0x43, 0xBF, 0xEF, 0x00, 0x43, 0xBE, 0xED, 0x00, 0x42, 0xBE, 0xEE, - 0x00, 0x41, 0xBD, 0xF0, 0x00, 0x37, 0xBA, 0xF0, 0x00, 0x71, 0xA1, 0xB7, 0x00, 0xFE, 0x5D, 0x1D, - 0x00, 0xF8, 0x79, 0x31, 0x00, 0xF5, 0xA1, 0x51, 0x00, 0xF8, 0xAD, 0x60, 0x00, 0xFE, 0xE0, 0xBC, - 0x00, 0xF7, 0xB6, 0x57, 0x00, 0xF9, 0xBF, 0x68, 0x00, 0xFC, 0xC8, 0x79, 0x00, 0xFC, 0xD2, 0x82, - 0x00, 0xFC, 0xDB, 0x8B, 0x00, 0xFB, 0xDE, 0x8F, 0x00, 0xFB, 0xE0, 0x92, 0x00, 0xFA, 0xEA, 0xA3, - 0x00, 0xFA, 0xF4, 0xB4, 0x00, 0xF9, 0xF8, 0xC1, 0x00, 0xF8, 0xFB, 0xCE, 0x00, 0xF9, 0xEB, 0xB6, - 0x00, 0xFA, 0xE1, 0x83, 0x00, 0xFD, 0xE2, 0x8F, 0x00, 0xFB, 0xF9, 0xC7, 0x00, 0xFC, 0xF8, 0xD7, - 0x00, 0xFE, 0xFC, 0xCA, 0x00, 0x8B, 0xCD, 0xDC, 0x00, 0x18, 0x9F, 0xED, 0x00, 0x24, 0xA3, 0xED, - 0x00, 0x0A, 0x9D, 0xFA, 0x00, 0xE7, 0xF5, 0xA5, 0x00, 0xE4, 0xF1, 0xA5, 0x00, 0xE4, 0xF0, 0xA5, - 0x00, 0xE3, 0xEF, 0xA6, 0x00, 0xE4, 0xF0, 0xA9, 0x00, 0xE6, 0xF2, 0xAD, 0x00, 0xE3, 0xF0, 0xA5, - 0x00, 0xE0, 0xEF, 0x9E, 0x00, 0xD6, 0xEC, 0x92, 0x00, 0xCD, 0xE9, 0x87, 0x00, 0xC7, 0xE9, 0x7F, - 0x00, 0xC2, 0xEA, 0x78, 0x00, 0xC1, 0xEA, 0x72, 0x00, 0xC0, 0xE9, 0x6D, 0x00, 0xB1, 0xE3, 0x60, - 0x00, 0xA2, 0xDD, 0x53, 0x00, 0x94, 0xD2, 0x46, 0x00, 0x86, 0xC8, 0x3A, 0x00, 0x77, 0xBC, 0x35, - 0x00, 0x69, 0xB0, 0x30, 0x00, 0x62, 0xA5, 0x2B, 0x00, 0x5B, 0x9B, 0x26, 0x00, 0x57, 0x91, 0x09, - 0x00, 0x09, 0x94, 0xFB, 0x00, 0x0C, 0x95, 0xE5, 0x00, 0x0F, 0x91, 0xEB, 0x00, 0x0F, 0x91, 0xEB, - 0x00, 0x4A, 0xC5, 0xEF, 0x00, 0x48, 0xC4, 0xF0, 0x00, 0x47, 0xC3, 0xF0, 0x00, 0x45, 0xC2, 0xF1, - 0x00, 0x43, 0xC1, 0xF1, 0x00, 0x41, 0xC1, 0xF1, 0x00, 0x3F, 0xC1, 0xF1, 0x00, 0x3F, 0xBE, 0xF0, - 0x00, 0x3F, 0xBC, 0xEF, 0x00, 0x32, 0xC2, 0xFD, 0x00, 0xBD, 0x7F, 0x6E, 0x00, 0xFE, 0x65, 0x26, - 0x00, 0xF5, 0x7B, 0x34, 0x00, 0xF5, 0x9A, 0x4C, 0x00, 0xF8, 0xAB, 0x5C, 0x00, 0xFA, 0xD0, 0x9F, - 0x00, 0xF7, 0xC6, 0x83, 0x00, 0xFD, 0xC1, 0x6A, 0x00, 0xFD, 0xD1, 0x7E, 0x00, 0xFB, 0xDB, 0x87, - 0x00, 0xF9, 0xE5, 0x8F, 0x00, 0xF8, 0xEC, 0x9A, 0x00, 0xF7, 0xF4, 0xA5, 0x00, 0xFB, 0xEA, 0x99, - 0x00, 0xFF, 0xDF, 0x8E, 0x00, 0xFB, 0xE2, 0x9F, 0x00, 0xF7, 0xE6, 0xB1, 0x00, 0xFB, 0xED, 0xCC, - 0x00, 0xFF, 0xFA, 0xCA, 0x00, 0xFF, 0xF2, 0xC6, 0x00, 0xFC, 0xF0, 0xC2, 0x00, 0xFE, 0xF5, 0xD2, - 0x00, 0xFF, 0xFC, 0xD3, 0x00, 0x4B, 0xB5, 0xE6, 0x00, 0x20, 0xA4, 0xED, 0x00, 0x1B, 0xA2, 0xED, - 0x00, 0x3D, 0xAA, 0xE2, 0x00, 0xEE, 0xF6, 0xAB, 0x00, 0xE5, 0xF1, 0xB1, 0x00, 0xE7, 0xF2, 0xB4, - 0x00, 0xE9, 0xF3, 0xB8, 0x00, 0xE9, 0xF3, 0xBA, 0x00, 0xEA, 0xF4, 0xBC, 0x00, 0xE8, 0xF3, 0xB5, - 0x00, 0xE5, 0xF2, 0xAF, 0x00, 0xE0, 0xF0, 0xA8, 0x00, 0xDA, 0xED, 0xA1, 0x00, 0xD5, 0xEF, 0x99, - 0x00, 0xD0, 0xF0, 0x91, 0x00, 0xC8, 0xED, 0x82, 0x00, 0xC0, 0xEA, 0x72, 0x00, 0xB0, 0xE3, 0x61, - 0x00, 0xA0, 0xDC, 0x50, 0x00, 0x94, 0xD3, 0x47, 0x00, 0x88, 0xCA, 0x3E, 0x00, 0x7B, 0xBF, 0x38, - 0x00, 0x6E, 0xB4, 0x32, 0x00, 0x65, 0xA8, 0x2E, 0x00, 0x5D, 0xA0, 0x1B, 0x00, 0x3C, 0x94, 0x48, - 0x00, 0x0A, 0x93, 0xF6, 0x00, 0x0D, 0x94, 0xEC, 0x00, 0x10, 0x92, 0xF0, 0x00, 0x10, 0x92, 0xF0, - 0x00, 0x4B, 0xC5, 0xF0, 0x00, 0x49, 0xC4, 0xF0, 0x00, 0x48, 0xC4, 0xF1, 0x00, 0x46, 0xC3, 0xF1, - 0x00, 0x44, 0xC2, 0xF2, 0x00, 0x3F, 0xC3, 0xF4, 0x00, 0x3A, 0xC4, 0xF6, 0x00, 0x3C, 0xBF, 0xF3, - 0x00, 0x3D, 0xBA, 0xEF, 0x00, 0x2C, 0xCA, 0xFF, 0x00, 0xFF, 0x5D, 0x24, 0x00, 0xFE, 0x6D, 0x2E, - 0x00, 0xF2, 0x7D, 0x38, 0x00, 0xF5, 0x93, 0x48, 0x00, 0xF7, 0xA9, 0x57, 0x00, 0xF7, 0xC0, 0x82, - 0x00, 0xF7, 0xD7, 0xAE, 0x00, 0xFF, 0xC2, 0x6C, 0x00, 0xFE, 0xDA, 0x84, 0x00, 0xFA, 0xE4, 0x8B, - 0x00, 0xF6, 0xEE, 0x93, 0x00, 0xF8, 0xED, 0x9D, 0x00, 0xF9, 0xEC, 0xA7, 0x00, 0xF8, 0xF1, 0xB3, - 0x00, 0xF7, 0xF6, 0xC0, 0x00, 0xFB, 0xF6, 0xC8, 0x00, 0xFF, 0xF6, 0xD0, 0x00, 0xFE, 0xF2, 0xD3, - 0x00, 0xFB, 0xF3, 0xB9, 0x00, 0xFF, 0xFD, 0xE7, 0x00, 0xF6, 0xFD, 0xE9, 0x00, 0xFC, 0xFC, 0xE2, - 0x00, 0xFF, 0xFC, 0xDC, 0x00, 0x0B, 0x9D, 0xF1, 0x00, 0x29, 0xAA, 0xEC, 0x00, 0x1B, 0xAA, 0xF5, - 0x00, 0x7F, 0xC7, 0xD9, 0x00, 0xFD, 0xFE, 0xBA, 0x00, 0xE7, 0xF2, 0xBD, 0x00, 0xEB, 0xF4, 0xC3, - 0x00, 0xEE, 0xF6, 0xCA, 0x00, 0xEF, 0xF6, 0xCA, 0x00, 0xEF, 0xF7, 0xCB, 0x00, 0xED, 0xF6, 0xC5, - 0x00, 0xEB, 0xF5, 0xBF, 0x00, 0xE9, 0xF3, 0xBE, 0x00, 0xE8, 0xF2, 0xBC, 0x00, 0xE3, 0xF4, 0xB3, - 0x00, 0xDF, 0xF6, 0xAB, 0x00, 0xD0, 0xF1, 0x91, 0x00, 0xC1, 0xEC, 0x77, 0x00, 0xAF, 0xE3, 0x62, - 0x00, 0x9E, 0xDB, 0x4E, 0x00, 0x94, 0xD3, 0x47, 0x00, 0x8A, 0xCC, 0x41, 0x00, 0x7F, 0xC2, 0x3B, - 0x00, 0x73, 0xB8, 0x35, 0x00, 0x69, 0xAC, 0x30, 0x00, 0x60, 0xA5, 0x10, 0x00, 0x22, 0x96, 0x86, - 0x00, 0x0A, 0x91, 0xF0, 0x00, 0x0E, 0x92, 0xF2, 0x00, 0x11, 0x94, 0xF4, 0x00, 0x11, 0x94, 0xF4, - 0x00, 0x4C, 0xC5, 0xF1, 0x00, 0x4A, 0xC5, 0xF1, 0x00, 0x49, 0xC4, 0xF1, 0x00, 0x47, 0xC4, 0xF2, - 0x00, 0x45, 0xC3, 0xF2, 0x00, 0x43, 0xC3, 0xF1, 0x00, 0x40, 0xC4, 0xF0, 0x00, 0x42, 0xBF, 0xF3, - 0x00, 0x39, 0xC0, 0xF5, 0x00, 0x5E, 0xAC, 0xCA, 0x00, 0xFA, 0x58, 0x1E, 0x00, 0xF3, 0x6E, 0x30, - 0x00, 0xF7, 0x80, 0x35, 0x00, 0xFB, 0x92, 0x3E, 0x00, 0xFB, 0xAF, 0x5D, 0x00, 0xFF, 0xC2, 0x72, - 0x00, 0xFD, 0xE1, 0xBA, 0x00, 0xFF, 0xCD, 0x74, 0x00, 0xFF, 0xD3, 0x71, 0x00, 0xFF, 0xE5, 0x83, - 0x00, 0xFF, 0xF7, 0x95, 0x00, 0xFE, 0xF4, 0xA1, 0x00, 0xFD, 0xF0, 0xAD, 0x00, 0xFF, 0xF8, 0xC1, - 0x00, 0xFB, 0xF7, 0xCD, 0x00, 0xFE, 0xF8, 0xD1, 0x00, 0xFF, 0xF9, 0xD6, 0x00, 0xFE, 0xF6, 0xE0, - 0x00, 0xFB, 0xF5, 0xDD, 0x00, 0xFF, 0xFB, 0xED, 0x00, 0xFB, 0xFB, 0xE8, 0x00, 0xFF, 0xFC, 0xDF, - 0x00, 0xB2, 0xE0, 0xE8, 0x00, 0x18, 0xA3, 0xEF, 0x00, 0x25, 0xAA, 0xEC, 0x00, 0x15, 0xA8, 0xF5, - 0x00, 0xC2, 0xE3, 0xD8, 0x00, 0xF9, 0xF9, 0xC5, 0x00, 0xEE, 0xF5, 0xCA, 0x00, 0xEF, 0xF6, 0xCE, - 0x00, 0xF0, 0xF7, 0xD2, 0x00, 0xF1, 0xF8, 0xD1, 0x00, 0xF1, 0xF9, 0xD0, 0x00, 0xF1, 0xF9, 0xCD, - 0x00, 0xF1, 0xF9, 0xC9, 0x00, 0xF2, 0xFB, 0xC9, 0x00, 0xF4, 0xFC, 0xCA, 0x00, 0xE6, 0xF8, 0xB6, - 0x00, 0xD9, 0xF3, 0xA2, 0x00, 0xCA, 0xEF, 0x89, 0x00, 0xBC, 0xEB, 0x71, 0x00, 0xB0, 0xE6, 0x61, - 0x00, 0xA4, 0xE1, 0x50, 0x00, 0x99, 0xD9, 0x48, 0x00, 0x8F, 0xD2, 0x40, 0x00, 0x83, 0xC7, 0x3A, - 0x00, 0x77, 0xBC, 0x34, 0x00, 0x6A, 0xB2, 0x1C, 0x00, 0x5D, 0xA9, 0x04, 0x00, 0x13, 0x8D, 0xEA, - 0x00, 0x11, 0x93, 0xEF, 0x00, 0x0F, 0x92, 0xEF, 0x00, 0x0E, 0x92, 0xF0, 0x00, 0x0E, 0x92, 0xF0, - 0x00, 0x4D, 0xC6, 0xF2, 0x00, 0x4B, 0xC5, 0xF2, 0x00, 0x4A, 0xC5, 0xF2, 0x00, 0x48, 0xC5, 0xF2, - 0x00, 0x46, 0xC4, 0xF2, 0x00, 0x46, 0xC4, 0xEE, 0x00, 0x46, 0xC4, 0xEA, 0x00, 0x48, 0xBF, 0xF2, - 0x00, 0x34, 0xC6, 0xFB, 0x00, 0x98, 0x95, 0x91, 0x00, 0xFC, 0x64, 0x27, 0x00, 0xF1, 0x76, 0x3B, - 0x00, 0xFC, 0x83, 0x32, 0x00, 0xFF, 0x91, 0x34, 0x00, 0xFF, 0xB4, 0x63, 0x00, 0xFF, 0xBD, 0x5A, - 0x00, 0xF3, 0xDC, 0xB5, 0x00, 0xCB, 0xD0, 0x97, 0x00, 0xB4, 0xCE, 0xA4, 0x00, 0xAF, 0xD2, 0xB0, - 0x00, 0xAB, 0xD6, 0xBC, 0x00, 0xC2, 0xE1, 0xBE, 0x00, 0xDA, 0xEB, 0xC0, 0x00, 0xF5, 0xFC, 0xC7, - 0x00, 0xFF, 0xFE, 0xBD, 0x00, 0xFF, 0xFD, 0xCC, 0x00, 0xFF, 0xFC, 0xDB, 0x00, 0xFE, 0xFC, 0xE0, - 0x00, 0xFB, 0xFC, 0xE4, 0x00, 0xFD, 0xFB, 0xE6, 0x00, 0xFF, 0xFA, 0xE7, 0x00, 0xFF, 0xFB, 0xDD, - 0x00, 0x61, 0xC4, 0xF4, 0x00, 0x26, 0xAA, 0xEE, 0x00, 0x22, 0xAA, 0xEB, 0x00, 0x10, 0xA7, 0xF6, - 0x00, 0xFF, 0xFF, 0xD6, 0x00, 0xF5, 0xF4, 0xCF, 0x00, 0xF5, 0xF9, 0xD8, 0x00, 0xF4, 0xF9, 0xD9, - 0x00, 0xF2, 0xF8, 0xD9, 0x00, 0xF3, 0xF9, 0xD8, 0x00, 0xF4, 0xFB, 0xD6, 0x00, 0xF5, 0xFC, 0xD5, - 0x00, 0xF6, 0xFD, 0xD3, 0x00, 0xF3, 0xFA, 0xCD, 0x00, 0xEF, 0xF6, 0xC7, 0x00, 0xE1, 0xF3, 0xB0, - 0x00, 0xD3, 0xF0, 0x98, 0x00, 0xC5, 0xED, 0x82, 0x00, 0xB7, 0xEB, 0x6B, 0x00, 0xB0, 0xE9, 0x5F, - 0x00, 0xAA, 0xE7, 0x53, 0x00, 0x9F, 0xDF, 0x49, 0x00, 0x93, 0xD7, 0x3E, 0x00, 0x87, 0xCB, 0x39, - 0x00, 0x7B, 0xBF, 0x34, 0x00, 0x6B, 0xB4, 0x25, 0x00, 0x5B, 0xA2, 0x32, 0x00, 0x04, 0x94, 0xF9, - 0x00, 0x17, 0x94, 0xED, 0x00, 0x11, 0x92, 0xEC, 0x00, 0x0B, 0x91, 0xEB, 0x00, 0x0B, 0x91, 0xEB, - 0x00, 0x4E, 0xC7, 0xF2, 0x00, 0x4D, 0xC7, 0xF3, 0x00, 0x4C, 0xC7, 0xF3, 0x00, 0x4A, 0xC7, 0xF3, - 0x00, 0x49, 0xC7, 0xF4, 0x00, 0x47, 0xC4, 0xF1, 0x00, 0x45, 0xC1, 0xEE, 0x00, 0x42, 0xC2, 0xF7, - 0x00, 0x33, 0xC8, 0xFF, 0x00, 0xDE, 0x67, 0x46, 0x00, 0xFF, 0x63, 0x2A, 0x00, 0xFF, 0x6F, 0x1B, - 0x00, 0xE0, 0x8B, 0x52, 0x00, 0xA3, 0xA0, 0x84, 0x00, 0x62, 0xC1, 0xCC, 0x00, 0x26, 0xC0, 0xFF, - 0x00, 0x29, 0xB7, 0xFF, 0x00, 0x24, 0xB5, 0xF1, 0x00, 0x27, 0xB7, 0xF9, 0x00, 0x25, 0xB5, 0xF6, - 0x00, 0x23, 0xB2, 0xF2, 0x00, 0x24, 0xB5, 0xFA, 0x00, 0x24, 0xB7, 0xFF, 0x00, 0x17, 0x9D, 0xDE, - 0x00, 0x42, 0xBA, 0xF4, 0x00, 0x9E, 0xDA, 0xE7, 0x00, 0xF9, 0xF9, 0xDC, 0x00, 0xF3, 0xFB, 0xE6, - 0x00, 0xFF, 0xFF, 0xE9, 0x00, 0xFD, 0xFF, 0xE6, 0x00, 0xFA, 0xFB, 0xE2, 0x00, 0xFF, 0xFF, 0xFF, - 0x00, 0x1D, 0xA7, 0xEF, 0x00, 0x1C, 0xA7, 0xF0, 0x00, 0x1A, 0xA7, 0xF1, 0x00, 0x5A, 0xC4, 0xF0, - 0x00, 0xFF, 0xFF, 0xE7, 0x00, 0xFA, 0xF9, 0xE1, 0x00, 0xFA, 0xFB, 0xE2, 0x00, 0xF8, 0xFB, 0xDF, - 0x00, 0xF5, 0xFA, 0xDC, 0x00, 0xF5, 0xFB, 0xDB, 0x00, 0xF5, 0xFB, 0xD9, 0x00, 0xF5, 0xFC, 0xD6, - 0x00, 0xF5, 0xFD, 0xD3, 0x00, 0xF0, 0xF8, 0xC8, 0x00, 0xEA, 0xF4, 0xBD, 0x00, 0xDF, 0xF1, 0xA8, - 0x00, 0xD4, 0xEF, 0x93, 0x00, 0xC6, 0xF3, 0x7A, 0x00, 0xB9, 0xF8, 0x61, 0x00, 0xB0, 0xEF, 0x57, - 0x00, 0xA6, 0xE6, 0x4D, 0x00, 0xA3, 0xE2, 0x48, 0x00, 0x98, 0xD6, 0x3A, 0x00, 0x89, 0xCD, 0x37, - 0x00, 0x7B, 0xC3, 0x35, 0x00, 0x6F, 0xB7, 0x20, 0x00, 0x3A, 0x9C, 0x84, 0x00, 0x0C, 0x93, 0xF4, - 0x00, 0x13, 0x94, 0xEC, 0x00, 0x11, 0x93, 0xE9, 0x00, 0x0F, 0x92, 0xE6, 0x00, 0x0F, 0x92, 0xE6, - 0x00, 0x50, 0xC9, 0xF3, 0x00, 0x4F, 0xC9, 0xF4, 0x00, 0x4E, 0xC9, 0xF4, 0x00, 0x4D, 0xCA, 0xF5, - 0x00, 0x4B, 0xCA, 0xF5, 0x00, 0x48, 0xC5, 0xF4, 0x00, 0x44, 0xBF, 0xF3, 0x00, 0x47, 0xC1, 0xEE, - 0x00, 0x4A, 0xC4, 0xEA, 0x00, 0xFF, 0x52, 0x1F, 0x00, 0xA6, 0x9A, 0x92, 0x00, 0x51, 0xB6, 0xE6, - 0x00, 0x28, 0xC7, 0xFF, 0x00, 0x2C, 0xC4, 0xF8, 0x00, 0x30, 0xC0, 0xF0, 0x00, 0x3F, 0xBA, 0xEF, - 0x00, 0x37, 0xBF, 0xEF, 0x00, 0x38, 0xB9, 0xEF, 0x00, 0x3A, 0xB2, 0xF0, 0x00, 0x38, 0xB5, 0xF3, - 0x00, 0x35, 0xB7, 0xF6, 0x00, 0x32, 0xB9, 0xEF, 0x00, 0x2F, 0xBB, 0xE8, 0x00, 0x2F, 0xB8, 0xEA, - 0x00, 0x2F, 0xB4, 0xED, 0x00, 0x1F, 0xAC, 0xF3, 0x00, 0x10, 0xA3, 0xF9, 0x00, 0x6F, 0xC9, 0xF2, - 0x00, 0xF5, 0xF9, 0xDF, 0x00, 0xF5, 0xFB, 0xDE, 0x00, 0xF5, 0xFD, 0xDD, 0x00, 0xD7, 0xEA, 0xE3, - 0x00, 0x10, 0xA5, 0xEE, 0x00, 0x2D, 0xB2, 0xF4, 0x00, 0x13, 0xA5, 0xF7, 0x00, 0xA5, 0xE1, 0xEB, - 0x00, 0xFF, 0xFF, 0xF8, 0x00, 0xFF, 0xFE, 0xF2, 0x00, 0xFF, 0xFD, 0xEC, 0x00, 0xFC, 0xFC, 0xE6, - 0x00, 0xF7, 0xFC, 0xDF, 0x00, 0xF7, 0xFC, 0xDE, 0x00, 0xF6, 0xFC, 0xDC, 0x00, 0xF5, 0xFC, 0xD7, - 0x00, 0xF4, 0xFC, 0xD3, 0x00, 0xED, 0xF7, 0xC3, 0x00, 0xE5, 0xF1, 0xB4, 0x00, 0xE4, 0xF5, 0xB7, - 0x00, 0xE4, 0xF9, 0xBB, 0x00, 0xEB, 0xFE, 0xD2, 0x00, 0xF2, 0xFF, 0xE9, 0x00, 0xED, 0xFE, 0xDB, - 0x00, 0xE8, 0xF9, 0xCD, 0x00, 0xCA, 0xEF, 0x89, 0x00, 0x9C, 0xD6, 0x35, 0x00, 0x83, 0xC6, 0x2D, - 0x00, 0x6B, 0xB7, 0x25, 0x00, 0x6C, 0xB3, 0x14, 0x00, 0x1A, 0x95, 0xD6, 0x00, 0x15, 0x91, 0xEE, - 0x00, 0x0F, 0x93, 0xEB, 0x00, 0x10, 0x93, 0xE6, 0x00, 0x12, 0x93, 0xE0, 0x00, 0x12, 0x93, 0xE0, - 0x00, 0x52, 0xCA, 0xF4, 0x00, 0x50, 0xCA, 0xF4, 0x00, 0x4E, 0xCA, 0xF3, 0x00, 0x4C, 0xC9, 0xF3, - 0x00, 0x4A, 0xC9, 0xF3, 0x00, 0x48, 0xC8, 0xF4, 0x00, 0x46, 0xC6, 0xF6, 0x00, 0x3F, 0xBF, 0xEC, - 0x00, 0x41, 0xBF, 0xEB, 0x00, 0x40, 0xD4, 0xF8, 0x00, 0x33, 0xC9, 0xFC, 0x00, 0x2F, 0xC9, 0xFF, - 0x00, 0x42, 0xC2, 0xEC, 0x00, 0x40, 0xC3, 0xF4, 0x00, 0x3E, 0xC3, 0xFC, 0x00, 0x34, 0xBB, 0xF3, - 0x00, 0x33, 0xBB, 0xF2, 0x00, 0x49, 0xBD, 0xF6, 0x00, 0x38, 0xB7, 0xF8, 0x00, 0x36, 0xB7, 0xF5, - 0x00, 0x34, 0xB7, 0xF2, 0x00, 0x2E, 0xB5, 0xF3, 0x00, 0x27, 0xB3, 0xF5, 0x00, 0x2F, 0xBA, 0xF7, - 0x00, 0x2F, 0xBA, 0xF2, 0x00, 0x30, 0xB5, 0xF1, 0x00, 0x31, 0xB0, 0xF0, 0x00, 0x1E, 0xAC, 0xF6, - 0x00, 0x0C, 0xAA, 0xED, 0x00, 0x7E, 0xD2, 0xEC, 0x00, 0xFF, 0xFF, 0xE6, 0x00, 0x80, 0xD9, 0xD2, - 0x00, 0x2E, 0xA9, 0xF8, 0x00, 0x1C, 0xAF, 0xEB, 0x00, 0x02, 0xAA, 0xE5, 0x00, 0xFF, 0xF8, 0xFF, - 0x00, 0xFF, 0xFF, 0xFE, 0x00, 0xFF, 0xFE, 0xF9, 0x00, 0xFF, 0xFD, 0xF4, 0x00, 0xFD, 0xFD, 0xEB, - 0x00, 0xFA, 0xFE, 0xE2, 0x00, 0xF9, 0xFD, 0xE1, 0x00, 0xF7, 0xFC, 0xE0, 0x00, 0xF5, 0xFC, 0xD7, - 0x00, 0xF3, 0xFD, 0xCF, 0x00, 0xF4, 0xFB, 0xE2, 0x00, 0xF6, 0xFD, 0xE7, 0x00, 0xF3, 0xFD, 0xE8, - 0x00, 0xF0, 0xFD, 0xE9, 0x00, 0xEB, 0xFD, 0xD3, 0x00, 0xE5, 0xFC, 0xBD, 0x00, 0xDF, 0xF7, 0xBA, - 0x00, 0xDA, 0xF2, 0xB6, 0x00, 0xE9, 0xFB, 0xD2, 0x00, 0xF1, 0xFC, 0xE6, 0x00, 0xB6, 0xDE, 0x8D, - 0x00, 0x84, 0xC7, 0x3C, 0x00, 0x99, 0xB7, 0x47, 0x00, 0x13, 0xA1, 0xF8, 0x00, 0x04, 0x94, 0xF2, - 0x00, 0x10, 0x94, 0xEE, 0x00, 0x10, 0x94, 0xEC, 0x00, 0x10, 0x95, 0xE9, 0x00, 0x10, 0x95, 0xE9, - 0x00, 0x53, 0xCC, 0xF5, 0x00, 0x50, 0xCB, 0xF3, 0x00, 0x4E, 0xCA, 0xF2, 0x00, 0x4B, 0xC9, 0xF1, - 0x00, 0x48, 0xC7, 0xF0, 0x00, 0x48, 0xCB, 0xF4, 0x00, 0x47, 0xCE, 0xF9, 0x00, 0x40, 0xC4, 0xF2, - 0x00, 0x48, 0xCA, 0xFC, 0x00, 0x3F, 0xC2, 0xF0, 0x00, 0x46, 0xC9, 0xF5, 0x00, 0x46, 0xC7, 0xF4, - 0x00, 0x45, 0xC4, 0xF3, 0x00, 0x38, 0xB4, 0xED, 0x00, 0x2C, 0xA5, 0xE8, 0x00, 0x2E, 0xB0, 0xE1, - 0x00, 0x56, 0xC0, 0xEA, 0x00, 0x6C, 0xC8, 0xE9, 0x00, 0x36, 0xC1, 0xE4, 0x00, 0x50, 0xC9, 0xEB, - 0x00, 0x6A, 0xD1, 0xF1, 0x00, 0x73, 0xD0, 0xF5, 0x00, 0x7D, 0xCF, 0xF9, 0x00, 0x56, 0xC7, 0xF8, - 0x00, 0x1F, 0xAF, 0xE7, 0x00, 0x25, 0xB1, 0xED, 0x00, 0x2B, 0xB2, 0xF4, 0x00, 0x3E, 0xB5, 0xF9, - 0x00, 0x2A, 0xB3, 0xEE, 0x00, 0x1B, 0xAF, 0xF5, 0x00, 0x32, 0xB5, 0xF0, 0x00, 0x3F, 0xB1, 0xF9, - 0x00, 0x26, 0xA9, 0xF2, 0x00, 0x1F, 0xAE, 0xEA, 0x00, 0x3F, 0xB8, 0xF3, 0x00, 0xFB, 0xFF, 0xF3, - 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFE, 0xFF, 0xFF, 0x00, 0xFE, 0xFD, 0xFB, 0x00, 0xFE, 0xFE, 0xF0, - 0x00, 0xFD, 0xFF, 0xE5, 0x00, 0xFB, 0xFE, 0xE4, 0x00, 0xF8, 0xFC, 0xE3, 0x00, 0xF5, 0xFD, 0xD7, - 0x00, 0xF2, 0xFD, 0xCB, 0x00, 0xF4, 0xFB, 0xEB, 0x00, 0xF6, 0xFE, 0xEE, 0x00, 0xF1, 0xFD, 0xDE, - 0x00, 0xED, 0xFB, 0xCE, 0x00, 0xE2, 0xF9, 0xB0, 0x00, 0xD8, 0xF6, 0x91, 0x00, 0xD2, 0xF3, 0x8A, - 0x00, 0xCC, 0xF1, 0x83, 0x00, 0xCE, 0xEE, 0x96, 0x00, 0xD0, 0xEA, 0xA9, 0x00, 0xDA, 0xEA, 0xC0, - 0x00, 0xF4, 0xFA, 0xE8, 0x00, 0x7E, 0xC6, 0x78, 0x00, 0x59, 0xC0, 0xFF, 0x00, 0x19, 0xA0, 0xEA, - 0x00, 0x10, 0x95, 0xF2, 0x00, 0x0F, 0x96, 0xF2, 0x00, 0x0D, 0x96, 0xF2, 0x00, 0x0D, 0x96, 0xF2, - 0x00, 0x54, 0xCD, 0xF4, 0x00, 0x51, 0xCB, 0xF4, 0x00, 0x4F, 0xCA, 0xF3, 0x00, 0x4C, 0xC9, 0xF2, - 0x00, 0x4A, 0xC8, 0xF2, 0x00, 0x48, 0xC6, 0xF1, 0x00, 0x47, 0xC4, 0xF1, 0x00, 0x48, 0xD2, 0xF3, - 0x00, 0x46, 0xC7, 0xF3, 0x00, 0x4C, 0xC5, 0xFB, 0x00, 0x2B, 0x9A, 0xDC, 0x00, 0x17, 0x83, 0xCD, - 0x00, 0x03, 0x6B, 0xBE, 0x00, 0x00, 0x7F, 0xC5, 0x00, 0x0E, 0x96, 0xD4, 0x00, 0x2E, 0xAC, 0xDB, - 0x00, 0x60, 0xC5, 0xEA, 0x00, 0x75, 0xCC, 0xEF, 0x00, 0x51, 0xCA, 0xEA, 0x00, 0x69, 0xD2, 0xEF, - 0x00, 0x81, 0xDA, 0xF5, 0x00, 0x99, 0xE4, 0xF7, 0x00, 0xB2, 0xEE, 0xF9, 0x00, 0xCE, 0xFA, 0xFF, - 0x00, 0xE2, 0xFE, 0xFF, 0x00, 0x99, 0xE1, 0xFF, 0x00, 0x48, 0xBC, 0xF7, 0x00, 0x10, 0xB4, 0xDC, - 0x00, 0x31, 0xAD, 0xF0, 0x00, 0x27, 0xAC, 0xFB, 0x00, 0x30, 0xB2, 0xF3, 0x00, 0x34, 0xB1, 0xF5, - 0x00, 0x24, 0xAD, 0xF0, 0x00, 0x26, 0xAC, 0xF6, 0x00, 0x97, 0xD1, 0xFC, 0x00, 0xFF, 0xFD, 0xF7, - 0x00, 0xFE, 0xFF, 0xFF, 0x00, 0xFE, 0xFF, 0xFB, 0x00, 0xFE, 0xFF, 0xF3, 0x00, 0xFD, 0xFF, 0xED, - 0x00, 0xFC, 0xFD, 0xE7, 0x00, 0xFB, 0xFE, 0xE3, 0x00, 0xF9, 0xFE, 0xDF, 0x00, 0xF8, 0xFD, 0xE7, - 0x00, 0xF7, 0xFC, 0xEF, 0x00, 0xF3, 0xFB, 0xEB, 0x00, 0xEF, 0xFD, 0xD8, 0x00, 0xE8, 0xFA, 0xC2, - 0x00, 0xE2, 0xF8, 0xAB, 0x00, 0xD8, 0xF4, 0x9B, 0x00, 0xCE, 0xEF, 0x8A, 0x00, 0xC1, 0xEA, 0x76, - 0x00, 0xB4, 0xE5, 0x61, 0x00, 0xAB, 0xDD, 0x5A, 0x00, 0xA2, 0xD2, 0x61, 0x00, 0xC1, 0xE9, 0x8D, - 0x00, 0xDA, 0xE7, 0xB8, 0x00, 0x96, 0xD4, 0xFF, 0x00, 0x8E, 0xD0, 0xFA, 0x00, 0x41, 0xAD, 0xED, - 0x00, 0x10, 0x95, 0xF1, 0x00, 0x0F, 0x95, 0xF1, 0x00, 0x0E, 0x96, 0xF1, 0x00, 0x0E, 0x96, 0xF1, - 0x00, 0x54, 0xCD, 0xF4, 0x00, 0x52, 0xCC, 0xF4, 0x00, 0x50, 0xCB, 0xF4, 0x00, 0x4E, 0xC9, 0xF3, - 0x00, 0x4B, 0xC8, 0xF3, 0x00, 0x51, 0xC9, 0xF6, 0x00, 0x56, 0xCA, 0xFA, 0x00, 0x44, 0xC0, 0xEA, - 0x00, 0x19, 0x74, 0xC6, 0x00, 0x00, 0x58, 0xAD, 0x00, 0x01, 0x5B, 0xB3, 0x00, 0x06, 0x6F, 0xC0, - 0x00, 0x0B, 0x84, 0xCC, 0x00, 0x00, 0x93, 0xCE, 0x00, 0x11, 0xA7, 0xDF, 0x00, 0x3E, 0xB9, 0xE5, - 0x00, 0x6A, 0xCA, 0xEB, 0x00, 0x7E, 0xD1, 0xF5, 0x00, 0x6B, 0xD3, 0xF0, 0x00, 0x81, 0xDB, 0xF4, - 0x00, 0x97, 0xE3, 0xF8, 0x00, 0xA4, 0xEB, 0xF7, 0x00, 0xB1, 0xF4, 0xF5, 0x00, 0xC7, 0xF7, 0xF9, - 0x00, 0xDC, 0xFA, 0xFC, 0x00, 0xF2, 0xFF, 0xFF, 0x00, 0xF8, 0xFF, 0xF5, 0x00, 0xBB, 0xEB, 0xFD, - 0x00, 0x22, 0xB4, 0xF2, 0x00, 0x28, 0xAF, 0xFF, 0x00, 0x2F, 0xB0, 0xF6, 0x00, 0x29, 0xB0, 0xF2, - 0x00, 0x22, 0xB1, 0xEE, 0x00, 0x19, 0xA7, 0xF9, 0x00, 0xC9, 0xE6, 0xF4, 0x00, 0xF7, 0xF7, 0xF4, - 0x00, 0xFE, 0xFF, 0xFF, 0x00, 0xFE, 0xFF, 0xF6, 0x00, 0xFD, 0xFF, 0xEC, 0x00, 0xFC, 0xFF, 0xEA, - 0x00, 0xFA, 0xFA, 0xE8, 0x00, 0xFB, 0xFD, 0xE2, 0x00, 0xFB, 0xFF, 0xDC, 0x00, 0xFB, 0xFF, 0xE9, - 0x00, 0xFB, 0xFF, 0xF6, 0x00, 0xF1, 0xFD, 0xDC, 0x00, 0xE7, 0xFB, 0xC3, 0x00, 0xDF, 0xF5, 0xB4, - 0x00, 0xD8, 0xF0, 0xA5, 0x00, 0xCE, 0xEC, 0x94, 0x00, 0xC4, 0xE8, 0x83, 0x00, 0xB7, 0xE5, 0x77, - 0x00, 0xAB, 0xE3, 0x6B, 0x00, 0xA0, 0xDE, 0x52, 0x00, 0x94, 0xD4, 0x55, 0x00, 0x7F, 0xBD, 0x40, - 0x00, 0xD1, 0xE4, 0x98, 0x00, 0x2B, 0xA1, 0xF4, 0x00, 0x2F, 0xA1, 0xF6, 0x00, 0x1F, 0x9B, 0xF3, - 0x00, 0x0F, 0x95, 0xF0, 0x00, 0x0F, 0x95, 0xF0, 0x00, 0x0F, 0x95, 0xF0, 0x00, 0x0F, 0x95, 0xF0, - 0x00, 0x55, 0xCE, 0xF4, 0x00, 0x53, 0xCC, 0xF4, 0x00, 0x51, 0xCB, 0xF4, 0x00, 0x4F, 0xCA, 0xF5, - 0x00, 0x4E, 0xC9, 0xF6, 0x00, 0x4D, 0xC9, 0xF4, 0x00, 0x53, 0xD0, 0xFA, 0x00, 0x2A, 0x86, 0xCD, - 0x00, 0x06, 0x52, 0xB0, 0x00, 0x04, 0x5F, 0xB8, 0x00, 0x0A, 0x73, 0xC8, 0x00, 0x08, 0x82, 0xCE, - 0x00, 0x06, 0x91, 0xD3, 0x00, 0x01, 0xA0, 0xD5, 0x00, 0x24, 0xB4, 0xE6, 0x00, 0x4C, 0xC4, 0xEA, - 0x00, 0x74, 0xD3, 0xED, 0x00, 0x83, 0xD9, 0xF4, 0x00, 0x7E, 0xDC, 0xF3, 0x00, 0x93, 0xE4, 0xF6, - 0x00, 0xA8, 0xEC, 0xF8, 0x00, 0xB5, 0xF2, 0xF9, 0x00, 0xC3, 0xF8, 0xF9, 0x00, 0xD3, 0xFA, 0xFA, - 0x00, 0xE2, 0xFB, 0xFB, 0x00, 0xED, 0xFE, 0xFB, 0x00, 0xEF, 0xF9, 0xF3, 0x00, 0xFF, 0xFF, 0xFF, - 0x00, 0xFF, 0xFD, 0xFF, 0x00, 0x7E, 0xDC, 0xEE, 0x00, 0x26, 0xAD, 0xFD, 0x00, 0x29, 0xAF, 0xF7, - 0x00, 0x2D, 0xB1, 0xF1, 0x00, 0x34, 0xB1, 0xDF, 0x00, 0x09, 0xA6, 0xF6, 0x00, 0x8C, 0xD3, 0xF4, - 0x00, 0xFC, 0xFB, 0xF8, 0x00, 0xFF, 0xFF, 0xF6, 0x00, 0xFD, 0xFF, 0xEB, 0x00, 0xFC, 0xFE, 0xE5, - 0x00, 0xFB, 0xFB, 0xE0, 0x00, 0xF9, 0xFC, 0xDE, 0x00, 0xF7, 0xFC, 0xDC, 0x00, 0xFC, 0xFF, 0xEF, - 0x00, 0xF8, 0xFC, 0xEB, 0x00, 0xE8, 0xF5, 0xD0, 0x00, 0xDF, 0xF5, 0xBC, 0x00, 0xD8, 0xF1, 0xAC, - 0x00, 0xD2, 0xED, 0x9D, 0x00, 0xC4, 0xE8, 0x7D, 0x00, 0xB7, 0xE1, 0x6C, 0x00, 0xAB, 0xDC, 0x5E, - 0x00, 0x9E, 0xD7, 0x4F, 0x00, 0x98, 0xC9, 0x5E, 0x00, 0x92, 0xC6, 0x35, 0x00, 0x8B, 0xC9, 0x42, - 0x00, 0x80, 0xB2, 0x4D, 0x00, 0x00, 0x9B, 0xF1, 0x00, 0x17, 0x93, 0xF8, 0x00, 0x15, 0x95, 0xF4, - 0x00, 0x12, 0x97, 0xF1, 0x00, 0x11, 0x96, 0xF0, 0x00, 0x10, 0x95, 0xEF, 0x00, 0x10, 0x95, 0xEF, - 0x00, 0x55, 0xCE, 0xF4, 0x00, 0x54, 0xCD, 0xF4, 0x00, 0x52, 0xCC, 0xF5, 0x00, 0x51, 0xCB, 0xF6, - 0x00, 0x50, 0xCB, 0xF8, 0x00, 0x49, 0xC8, 0xF1, 0x00, 0x51, 0xD5, 0xF9, 0x00, 0x15, 0x62, 0xC0, - 0x00, 0x00, 0x5C, 0xBB, 0x00, 0x07, 0x74, 0xCC, 0x00, 0x02, 0x7C, 0xCD, 0x00, 0x02, 0x8D, 0xD4, - 0x00, 0x01, 0x9E, 0xDB, 0x00, 0x08, 0xAD, 0xDC, 0x00, 0x36, 0xC1, 0xED, 0x00, 0x5A, 0xCF, 0xEE, - 0x00, 0x7D, 0xDC, 0xF0, 0x00, 0x87, 0xE1, 0xF3, 0x00, 0x91, 0xE6, 0xF7, 0x00, 0xA5, 0xED, 0xF8, - 0x00, 0xB8, 0xF5, 0xF8, 0x00, 0xC6, 0xF9, 0xFB, 0x00, 0xD4, 0xFD, 0xFD, 0x00, 0xDF, 0xFC, 0xFB, - 0x00, 0xE9, 0xFC, 0xFA, 0x00, 0xF0, 0xFE, 0xFD, 0x00, 0xF7, 0xFF, 0xFF, 0x00, 0xFA, 0xFF, 0xFE, - 0x00, 0xFC, 0xFE, 0xFB, 0x00, 0xFD, 0xFA, 0xFF, 0x00, 0x1D, 0xAF, 0xE7, 0x00, 0x2A, 0xB0, 0xEE, - 0x00, 0x37, 0xB1, 0xF5, 0x00, 0x24, 0xB8, 0xF6, 0x00, 0x28, 0xB4, 0xF7, 0x00, 0x21, 0xAF, 0xF4, - 0x00, 0x1A, 0xAA, 0xF2, 0x00, 0x9E, 0xD7, 0xF5, 0x00, 0xFC, 0xFF, 0xE9, 0x00, 0xFC, 0xFE, 0xE0, - 0x00, 0xFC, 0xFD, 0xD7, 0x00, 0xF8, 0xFA, 0xDA, 0x00, 0xF3, 0xF7, 0xDD, 0x00, 0xFD, 0xFD, 0xF4, - 0x00, 0xF6, 0xF9, 0xE0, 0x00, 0xDF, 0xEC, 0xC3, 0x00, 0xD7, 0xEF, 0xB5, 0x00, 0xD2, 0xEC, 0xA5, - 0x00, 0xCC, 0xE9, 0x95, 0x00, 0xBB, 0xE5, 0x67, 0x00, 0xAB, 0xDB, 0x55, 0x00, 0x9E, 0xD3, 0x44, - 0x00, 0x91, 0xCB, 0x32, 0x00, 0x85, 0xC8, 0x24, 0x00, 0x79, 0xB4, 0x6A, 0x00, 0x3A, 0x9D, 0xAF, - 0x00, 0x0B, 0x97, 0xFF, 0x00, 0x18, 0x93, 0xF9, 0x00, 0x0F, 0x9B, 0xED, 0x00, 0x12, 0x9A, 0xF0, - 0x00, 0x15, 0x98, 0xF3, 0x00, 0x13, 0x96, 0xF1, 0x00, 0x11, 0x94, 0xEF, 0x00, 0x11, 0x94, 0xEF, - 0x00, 0x58, 0xCF, 0xF4, 0x00, 0x55, 0xCE, 0xF4, 0x00, 0x53, 0xCD, 0xF4, 0x00, 0x52, 0xCC, 0xF6, - 0x00, 0x52, 0xCB, 0xF8, 0x00, 0x52, 0xD5, 0xFA, 0x00, 0x4E, 0xC7, 0xFB, 0x00, 0x00, 0x4C, 0xAD, - 0x00, 0x09, 0x6F, 0xCA, 0x00, 0x0B, 0x7F, 0xD3, 0x00, 0x05, 0x88, 0xD4, 0x00, 0x04, 0x97, 0xDB, - 0x00, 0x04, 0xA7, 0xE1, 0x00, 0x18, 0xB6, 0xE5, 0x00, 0x3F, 0xC7, 0xF1, 0x00, 0x62, 0xD3, 0xF3, - 0x00, 0x86, 0xDF, 0xF4, 0x00, 0x91, 0xE4, 0xF7, 0x00, 0x9B, 0xE9, 0xF9, 0x00, 0xAD, 0xF0, 0xF9, - 0x00, 0xBF, 0xF7, 0xF9, 0x00, 0xCB, 0xFA, 0xFB, 0x00, 0xD7, 0xFC, 0xFD, 0x00, 0xDE, 0xFD, 0xFC, - 0x00, 0xE5, 0xFD, 0xFB, 0x00, 0xEF, 0xFF, 0xFE, 0x00, 0xF9, 0xFF, 0xFF, 0x00, 0xF2, 0xFE, 0xFA, - 0x00, 0xFE, 0xFE, 0xFC, 0x00, 0xC6, 0xE9, 0xFB, 0x00, 0x1D, 0xAF, 0xEC, 0x00, 0x30, 0xB4, 0xF6, - 0x00, 0x2F, 0xB6, 0xF8, 0x00, 0x19, 0xA7, 0xF6, 0x00, 0x26, 0xB0, 0xF0, 0x00, 0x22, 0xAD, 0xF2, - 0x00, 0x1D, 0xAB, 0xF5, 0x00, 0x26, 0xA9, 0xF9, 0x00, 0x1C, 0xA6, 0xF6, 0x00, 0x7D, 0xCD, 0xE9, - 0x00, 0xDF, 0xF4, 0xDC, 0x00, 0xEA, 0xFE, 0xAF, 0x00, 0xFD, 0xFD, 0xED, 0x00, 0xFF, 0xFF, 0xEF, - 0x00, 0xFB, 0xF8, 0xD3, 0x00, 0xEC, 0xEE, 0xB4, 0x00, 0xE6, 0xE9, 0xAB, 0x00, 0xD8, 0xE6, 0x89, - 0x00, 0xCB, 0xE2, 0x67, 0x00, 0xB8, 0xE1, 0x52, 0x00, 0xA6, 0xDD, 0x4C, 0x00, 0x74, 0xC5, 0x7E, - 0x00, 0x42, 0xAD, 0xB0, 0x00, 0x22, 0x9B, 0xF3, 0x00, 0x09, 0x9C, 0xFF, 0x00, 0x09, 0x98, 0xF5, - 0x00, 0x10, 0x9C, 0xEE, 0x00, 0x17, 0x99, 0xED, 0x00, 0x14, 0x9D, 0xED, 0x00, 0x14, 0x9B, 0xEF, - 0x00, 0x15, 0x99, 0xF2, 0x00, 0x13, 0x97, 0xF0, 0x00, 0x11, 0x95, 0xEE, 0x00, 0x11, 0x95, 0xEE, - 0x00, 0x5A, 0xD0, 0xF5, 0x00, 0x57, 0xCF, 0xF4, 0x00, 0x54, 0xCE, 0xF3, 0x00, 0x53, 0xCC, 0xF5, - 0x00, 0x53, 0xCB, 0xF7, 0x00, 0x4C, 0xD3, 0xF4, 0x00, 0x2C, 0x9A, 0xDD, 0x00, 0x03, 0x5D, 0xC1, - 0x00, 0x05, 0x72, 0xC8, 0x00, 0x06, 0x83, 0xD2, 0x00, 0x07, 0x93, 0xDC, 0x00, 0x07, 0xA2, 0xE1, - 0x00, 0x08, 0xB0, 0xE7, 0x00, 0x27, 0xBF, 0xEE, 0x00, 0x47, 0xCD, 0xF6, 0x00, 0x6B, 0xD8, 0xF7, - 0x00, 0x8E, 0xE2, 0xF9, 0x00, 0x9A, 0xE7, 0xFA, 0x00, 0xA6, 0xEC, 0xFB, 0x00, 0xB6, 0xF3, 0xFA, - 0x00, 0xC7, 0xF9, 0xFA, 0x00, 0xD0, 0xFB, 0xFB, 0x00, 0xD9, 0xFC, 0xFD, 0x00, 0xDD, 0xFD, 0xFC, - 0x00, 0xE2, 0xFE, 0xFC, 0x00, 0xEE, 0xFF, 0xFE, 0x00, 0xFB, 0xFF, 0xFF, 0x00, 0xEA, 0xFD, 0xF7, - 0x00, 0xFF, 0xFE, 0xFE, 0x00, 0x8F, 0xD7, 0xF7, 0x00, 0x1E, 0xAF, 0xF1, 0x00, 0x2E, 0xB0, 0xF6, - 0x00, 0x17, 0xAB, 0xEB, 0x00, 0xDF, 0xF7, 0xFD, 0x00, 0x24, 0xAC, 0xE9, 0x00, 0x22, 0xAC, 0xF0, - 0x00, 0x21, 0xAC, 0xF8, 0x00, 0x26, 0xAE, 0xF6, 0x00, 0x2B, 0xB0, 0xF5, 0x00, 0x19, 0xA9, 0xF4, - 0x00, 0x08, 0xA2, 0xF3, 0x00, 0x22, 0xA7, 0xF9, 0x00, 0x4C, 0xC1, 0xF2, 0x00, 0x6D, 0xCD, 0xEE, - 0x00, 0x7D, 0xC9, 0xDB, 0x00, 0x7F, 0xCA, 0xC2, 0x00, 0x81, 0xC5, 0xC6, 0x00, 0x60, 0xBC, 0xCB, - 0x00, 0x40, 0xB3, 0xCF, 0x00, 0x24, 0xA7, 0xE9, 0x00, 0x07, 0x9B, 0xFF, 0x00, 0x10, 0x9D, 0xFF, - 0x00, 0x1A, 0x9F, 0xFF, 0x00, 0x0F, 0x98, 0xE9, 0x00, 0x14, 0x9C, 0xF9, 0x00, 0x14, 0x9C, 0xF7, - 0x00, 0x14, 0x9B, 0xF4, 0x00, 0x17, 0x9D, 0xF1, 0x00, 0x19, 0x9E, 0xED, 0x00, 0x16, 0x9C, 0xEF, - 0x00, 0x14, 0x99, 0xF1, 0x00, 0x12, 0x97, 0xEF, 0x00, 0x10, 0x95, 0xED, 0x00, 0x10, 0x95, 0xED, - 0x00, 0x5C, 0xD1, 0xF6, 0x00, 0x58, 0xD0, 0xF4, 0x00, 0x55, 0xCF, 0xF3, 0x00, 0x54, 0xCD, 0xF5, - 0x00, 0x53, 0xCC, 0xF7, 0x00, 0x51, 0xD5, 0xF6, 0x00, 0x16, 0x7B, 0xCE, 0x00, 0x03, 0x67, 0xC6, - 0x00, 0x06, 0x7B, 0xCF, 0x00, 0x05, 0x8B, 0xD7, 0x00, 0x05, 0x9B, 0xDF, 0x00, 0x07, 0xA8, 0xE4, - 0x00, 0x09, 0xB6, 0xEA, 0x00, 0x2A, 0xC3, 0xF1, 0x00, 0x4C, 0xD1, 0xF7, 0x00, 0x6C, 0xDB, 0xF8, - 0x00, 0x8D, 0xE4, 0xFA, 0x00, 0x9C, 0xEA, 0xFA, 0x00, 0xAB, 0xEF, 0xFB, 0x00, 0xBC, 0xF5, 0xFA, - 0x00, 0xCD, 0xFA, 0xFA, 0x00, 0xD4, 0xFB, 0xFB, 0x00, 0xDB, 0xFC, 0xFD, 0x00, 0xDC, 0xFD, 0xFC, - 0x00, 0xDD, 0xFE, 0xFC, 0x00, 0xE3, 0xFE, 0xFC, 0x00, 0xEA, 0xFE, 0xFD, 0x00, 0xFE, 0xFF, 0xFD, - 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x27, 0xC0, 0xDE, 0x00, 0x26, 0xB4, 0xF5, 0x00, 0x1E, 0xB0, 0xF8, - 0x00, 0x4D, 0xC6, 0xFF, 0x00, 0xFF, 0xF8, 0xEF, 0x00, 0xFE, 0xFF, 0xFA, 0x00, 0x8B, 0xD8, 0xF6, - 0x00, 0x18, 0xA7, 0xF3, 0x00, 0x1D, 0xA9, 0xF4, 0x00, 0x22, 0xAC, 0xF5, 0x00, 0x22, 0xAB, 0xF2, - 0x00, 0x22, 0xAB, 0xF0, 0x00, 0x1A, 0xA3, 0xF2, 0x00, 0x1A, 0xA6, 0xEE, 0x00, 0x17, 0xA8, 0xF4, - 0x00, 0x0D, 0xA2, 0xF3, 0x00, 0x10, 0xA4, 0xF2, 0x00, 0x14, 0xA3, 0xFF, 0x00, 0x15, 0xA3, 0xFC, - 0x00, 0x16, 0xA2, 0xF9, 0x00, 0x17, 0xA2, 0xF2, 0x00, 0x18, 0xA1, 0xEC, 0x00, 0x0D, 0x99, 0xFD, - 0x00, 0x16, 0x9A, 0xED, 0x00, 0x00, 0xA0, 0xFF, 0x00, 0x2B, 0x9C, 0xE8, 0x00, 0x60, 0xB5, 0xAF, - 0x00, 0x10, 0x99, 0xF7, 0x00, 0x14, 0x9B, 0xF2, 0x00, 0x18, 0x9D, 0xED, 0x00, 0x16, 0x9B, 0xEE, - 0x00, 0x13, 0x99, 0xEF, 0x00, 0x11, 0x97, 0xED, 0x00, 0x0F, 0x95, 0xEB, 0x00, 0x0F, 0x95, 0xEB, - 0x00, 0x5E, 0xD2, 0xF7, 0x00, 0x5A, 0xD1, 0xF4, 0x00, 0x56, 0xD0, 0xF2, 0x00, 0x54, 0xCE, 0xF5, - 0x00, 0x53, 0xCC, 0xF7, 0x00, 0x56, 0xD7, 0xF7, 0x00, 0x00, 0x5B, 0xC0, 0x00, 0x03, 0x70, 0xCB, - 0x00, 0x06, 0x84, 0xD6, 0x00, 0x05, 0x94, 0xDC, 0x00, 0x03, 0xA3, 0xE2, 0x00, 0x07, 0xAF, 0xE8, - 0x00, 0x0B, 0xBB, 0xEE, 0x00, 0x2D, 0xC8, 0xF3, 0x00, 0x50, 0xD5, 0xF8, 0x00, 0x6E, 0xDE, 0xF9, - 0x00, 0x8C, 0xE6, 0xFA, 0x00, 0x9F, 0xEC, 0xFB, 0x00, 0xB1, 0xF2, 0xFB, 0x00, 0xC2, 0xF7, 0xFA, - 0x00, 0xD3, 0xFB, 0xF9, 0x00, 0xD8, 0xFC, 0xFB, 0x00, 0xDD, 0xFC, 0xFD, 0x00, 0xDB, 0xFD, 0xFC, - 0x00, 0xD8, 0xFE, 0xFC, 0x00, 0xD8, 0xFD, 0xFB, 0x00, 0xD9, 0xFC, 0xFA, 0x00, 0xE4, 0xFA, 0xFA, - 0x00, 0xA3, 0xE9, 0xF6, 0x00, 0x2A, 0xAC, 0xFB, 0x00, 0x2E, 0xB9, 0xFA, 0x00, 0x1A, 0xAD, 0xED, - 0x00, 0x99, 0xDA, 0xF7, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFE, 0xFD, 0xFC, 0x00, 0xFE, 0xFE, 0xFC, - 0x00, 0xFF, 0xFF, 0xFD, 0x00, 0x8C, 0xD4, 0xF9, 0x00, 0x19, 0xA8, 0xF5, 0x00, 0x17, 0xA9, 0xF7, - 0x00, 0x16, 0xA9, 0xF8, 0x00, 0x1A, 0xA7, 0xF3, 0x00, 0x1E, 0xA5, 0xED, 0x00, 0x1F, 0xA7, 0xF1, - 0x00, 0x20, 0xA9, 0xF6, 0x00, 0x1D, 0xA7, 0xF6, 0x00, 0x1A, 0xA5, 0xF6, 0x00, 0x16, 0xA3, 0xF8, - 0x00, 0x12, 0xA1, 0xFA, 0x00, 0x0A, 0x9D, 0xFC, 0x00, 0x03, 0x98, 0xFE, 0x00, 0x25, 0xA1, 0xF9, - 0x00, 0x6F, 0xC0, 0xB0, 0x00, 0xCF, 0xC9, 0x5D, 0x00, 0xFF, 0xE5, 0x27, 0x00, 0x73, 0xB4, 0xB3, - 0x00, 0x0B, 0x97, 0xF9, 0x00, 0x11, 0x9A, 0xF3, 0x00, 0x17, 0x9D, 0xED, 0x00, 0x15, 0x9B, 0xEE, - 0x00, 0x13, 0x9A, 0xEE, 0x00, 0x11, 0x98, 0xEC, 0x00, 0x0F, 0x96, 0xEA, 0x00, 0x0F, 0x96, 0xEA, - 0x00, 0x5D, 0xD1, 0xF6, 0x00, 0x5A, 0xD1, 0xF5, 0x00, 0x58, 0xD2, 0xF4, 0x00, 0x53, 0xCE, 0xF3, - 0x00, 0x56, 0xD1, 0xFA, 0x00, 0x3F, 0xB1, 0xE6, 0x00, 0x01, 0x64, 0xC6, 0x00, 0x02, 0x75, 0xCE, - 0x00, 0x04, 0x87, 0xD7, 0x00, 0x02, 0x95, 0xDD, 0x00, 0x00, 0xA4, 0xE4, 0x00, 0x03, 0xB0, 0xEA, - 0x00, 0x06, 0xBD, 0xF1, 0x00, 0x1B, 0xC8, 0xF2, 0x00, 0x42, 0xD5, 0xFB, 0x00, 0x63, 0xDD, 0xFB, - 0x00, 0x84, 0xE5, 0xFB, 0x00, 0x98, 0xEB, 0xFC, 0x00, 0xAB, 0xF1, 0xFC, 0x00, 0xBD, 0xF8, 0xFF, - 0x00, 0xCF, 0xFF, 0xFF, 0x00, 0xCF, 0xFC, 0xFF, 0x00, 0xCF, 0xF9, 0xFB, 0x00, 0xD2, 0xFE, 0xFD, - 0x00, 0xD4, 0xFF, 0xFF, 0x00, 0xC6, 0xF9, 0xFF, 0x00, 0xB7, 0xEE, 0xFF, 0x00, 0x59, 0xD7, 0xD9, - 0x00, 0x40, 0xB9, 0xE9, 0x00, 0x2E, 0xB9, 0xFF, 0x00, 0x2B, 0xB1, 0xEF, 0x00, 0x27, 0xAF, 0xEB, - 0x00, 0xDD, 0xEF, 0xF1, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFE, 0xFE, 0xFF, 0x00, 0xFF, 0xFE, 0xFD, - 0x00, 0xFF, 0xFD, 0xF9, 0x00, 0xFF, 0xFF, 0xF9, 0x00, 0xFF, 0xFF, 0xF9, 0x00, 0xC1, 0xE8, 0xF0, - 0x00, 0x83, 0xCD, 0xE6, 0x00, 0x52, 0xBB, 0xE8, 0x00, 0x21, 0xA9, 0xEB, 0x00, 0x13, 0xA1, 0xFF, - 0x00, 0x06, 0x9F, 0xF7, 0x00, 0x0F, 0x9F, 0xF8, 0x00, 0x18, 0xA3, 0xEA, 0x00, 0x43, 0xB1, 0xE0, - 0x00, 0x6D, 0xC2, 0xC9, 0x00, 0xAF, 0xD6, 0x99, 0x00, 0xF1, 0xEB, 0x6A, 0x00, 0xEB, 0xEE, 0x31, - 0x00, 0xF8, 0xE6, 0x47, 0x00, 0xFF, 0xE1, 0x3A, 0x00, 0xFC, 0xE1, 0x41, 0x00, 0x00, 0x98, 0xF4, - 0x00, 0x19, 0xA1, 0xFC, 0x00, 0x15, 0x9E, 0xF6, 0x00, 0x11, 0x9A, 0xF1, 0x00, 0x13, 0x9A, 0xF0, - 0x00, 0x14, 0x99, 0xF0, 0x00, 0x12, 0x97, 0xEE, 0x00, 0x10, 0x95, 0xEC, 0x00, 0x10, 0x95, 0xEC, - 0x00, 0x5C, 0xCF, 0xF5, 0x00, 0x5A, 0xD1, 0xF6, 0x00, 0x59, 0xD4, 0xF6, 0x00, 0x51, 0xCD, 0xF2, - 0x00, 0x59, 0xD6, 0xFE, 0x00, 0x29, 0x8B, 0xD5, 0x00, 0x02, 0x6C, 0xCB, 0x00, 0x01, 0x7A, 0xD1, - 0x00, 0x01, 0x89, 0xD8, 0x00, 0x00, 0x97, 0xDE, 0x00, 0x00, 0xA5, 0xE5, 0x00, 0x00, 0xB2, 0xEC, - 0x00, 0x02, 0xBE, 0xF3, 0x00, 0x08, 0xC7, 0xF1, 0x00, 0x35, 0xD5, 0xFE, 0x00, 0x58, 0xDD, 0xFD, - 0x00, 0x7C, 0xE4, 0xFB, 0x00, 0x91, 0xEA, 0xFC, 0x00, 0xA6, 0xEF, 0xFE, 0x00, 0xB0, 0xF2, 0xFE, - 0x00, 0xBA, 0xF5, 0xFE, 0x00, 0xBD, 0xF5, 0xFC, 0x00, 0xC0, 0xF5, 0xF9, 0x00, 0xC0, 0xF7, 0xF6, - 0x00, 0xC1, 0xF9, 0xF4, 0x00, 0xC6, 0xFC, 0xFC, 0x00, 0xCC, 0xFF, 0xFF, 0x00, 0xC1, 0xF8, 0xF7, - 0x00, 0x59, 0xCC, 0xF3, 0x00, 0x38, 0xB0, 0xF2, 0x00, 0x37, 0xBA, 0xF5, 0x00, 0x29, 0xB4, 0xF7, - 0x00, 0xFC, 0xFB, 0xF8, 0x00, 0xFC, 0xFD, 0xFF, 0x00, 0xFD, 0xFF, 0xFF, 0x00, 0xFF, 0xFE, 0xFF, - 0x00, 0xFF, 0xFC, 0xF6, 0x00, 0xFC, 0xFE, 0xF2, 0x00, 0xF6, 0xFF, 0xEE, 0x00, 0xFC, 0xFF, 0xE9, - 0x00, 0xFF, 0xFF, 0xE4, 0x00, 0xFF, 0xFF, 0xD7, 0x00, 0xFF, 0xFF, 0xCA, 0x00, 0xFF, 0xFB, 0xF1, - 0x00, 0xFF, 0xFF, 0xDF, 0x00, 0xFC, 0xFD, 0xC1, 0x00, 0xF6, 0xFF, 0x88, 0x00, 0xFB, 0xFD, 0x91, - 0x00, 0xFF, 0xFF, 0x7F, 0x00, 0xFC, 0xFC, 0x6C, 0x00, 0xF9, 0xF6, 0x59, 0x00, 0xF8, 0xEF, 0x58, - 0x00, 0xF7, 0xE9, 0x57, 0x00, 0xF6, 0xE3, 0x59, 0x00, 0xD0, 0xD2, 0x67, 0x00, 0x08, 0x98, 0xFF, - 0x00, 0x17, 0x9A, 0xEF, 0x00, 0x12, 0x99, 0xF1, 0x00, 0x0C, 0x98, 0xF4, 0x00, 0x10, 0x99, 0xF3, - 0x00, 0x15, 0x99, 0xF1, 0x00, 0x13, 0x97, 0xEF, 0x00, 0x11, 0x95, 0xED, 0x00, 0x11, 0x95, 0xED, - 0x00, 0x5E, 0xD1, 0xF9, 0x00, 0x5B, 0xD3, 0xF7, 0x00, 0x59, 0xD4, 0xF6, 0x00, 0x57, 0xD3, 0xF8, - 0x00, 0x5E, 0xDA, 0xFF, 0x00, 0x19, 0x70, 0xCD, 0x00, 0x02, 0x6D, 0xCC, 0x00, 0x03, 0x7B, 0xD2, - 0x00, 0x04, 0x88, 0xD9, 0x00, 0x04, 0x96, 0xDF, 0x00, 0x04, 0xA5, 0xE6, 0x00, 0x01, 0xAD, 0xE6, - 0x00, 0x00, 0xB4, 0xE7, 0x00, 0x06, 0xBE, 0xEA, 0x00, 0x23, 0xCA, 0xF5, 0x00, 0x4B, 0xD7, 0xF8, - 0x00, 0x74, 0xE3, 0xFB, 0x00, 0x89, 0xE8, 0xFC, 0x00, 0x9E, 0xEC, 0xFE, 0x00, 0xA5, 0xED, 0xFE, - 0x00, 0xAB, 0xEE, 0xFE, 0x00, 0xAD, 0xEF, 0xFB, 0x00, 0xB0, 0xEF, 0xF9, 0x00, 0xB3, 0xF2, 0xF8, - 0x00, 0xB6, 0xF5, 0xF8, 0x00, 0xB5, 0xF8, 0xFC, 0x00, 0xB5, 0xFB, 0xFF, 0x00, 0xD9, 0xF3, 0xFF, - 0x00, 0x1A, 0xB9, 0xF1, 0x00, 0x28, 0xB3, 0xF3, 0x00, 0x2A, 0xB3, 0xF6, 0x00, 0x73, 0xCE, 0xF3, - 0x00, 0xFD, 0xFD, 0xF5, 0x00, 0xFD, 0xFE, 0xF9, 0x00, 0xFD, 0xFF, 0xFE, 0x00, 0xFF, 0xFE, 0xF8, - 0x00, 0xFF, 0xFD, 0xF3, 0x00, 0xFD, 0xFE, 0xEE, 0x00, 0xFA, 0xFE, 0xE9, 0x00, 0xFC, 0xFF, 0xE3, - 0x00, 0xFF, 0xFF, 0xDE, 0x00, 0xFF, 0xFF, 0xD0, 0x00, 0xFF, 0xFF, 0xC2, 0x00, 0xFC, 0xFA, 0xD6, - 0x00, 0xFF, 0xFC, 0xF3, 0x00, 0xFE, 0xFF, 0xBF, 0x00, 0xFC, 0xFA, 0xC4, 0x00, 0xFC, 0xFF, 0x84, - 0x00, 0xFB, 0xFA, 0x8A, 0x00, 0xFA, 0xF6, 0x79, 0x00, 0xF9, 0xF2, 0x68, 0x00, 0xF6, 0xED, 0x5E, - 0x00, 0xF4, 0xE8, 0x53, 0x00, 0xF7, 0xE8, 0x48, 0x00, 0x87, 0xBC, 0xA8, 0x00, 0x10, 0x9A, 0xFB, - 0x00, 0x17, 0x9B, 0xF1, 0x00, 0x14, 0x9A, 0xF1, 0x00, 0x10, 0x9A, 0xF1, 0x00, 0x13, 0x99, 0xF2, - 0x00, 0x16, 0x98, 0xF3, 0x00, 0x14, 0x96, 0xF1, 0x00, 0x12, 0x94, 0xEF, 0x00, 0x12, 0x94, 0xEF, - 0x00, 0x61, 0xD4, 0xFC, 0x00, 0x5D, 0xD4, 0xF9, 0x00, 0x58, 0xD4, 0xF6, 0x00, 0x55, 0xD1, 0xF5, - 0x00, 0x53, 0xCE, 0xF5, 0x00, 0x01, 0x4D, 0xBD, 0x00, 0x02, 0x6E, 0xCD, 0x00, 0x04, 0x7B, 0xD3, - 0x00, 0x06, 0x87, 0xDA, 0x00, 0x09, 0x96, 0xE0, 0x00, 0x0C, 0xA5, 0xE6, 0x00, 0x0A, 0xB0, 0xE9, - 0x00, 0x09, 0xBA, 0xEB, 0x00, 0x15, 0xC5, 0xF3, 0x00, 0x21, 0xD0, 0xFB, 0x00, 0x46, 0xD9, 0xFB, - 0x00, 0x6B, 0xE3, 0xFB, 0x00, 0x81, 0xE6, 0xFC, 0x00, 0x97, 0xE9, 0xFD, 0x00, 0x99, 0xE8, 0xFD, - 0x00, 0x9B, 0xE8, 0xFD, 0x00, 0x9D, 0xE8, 0xFB, 0x00, 0x9F, 0xE9, 0xF8, 0x00, 0xA5, 0xEE, 0xFA, - 0x00, 0xAB, 0xF2, 0xFC, 0x00, 0xB0, 0xEF, 0xFB, 0x00, 0xB4, 0xEB, 0xFB, 0x00, 0x89, 0xDD, 0xF8, - 0x00, 0x27, 0xB4, 0xF3, 0x00, 0x3E, 0xBD, 0xF7, 0x00, 0x1E, 0xAC, 0xF7, 0x00, 0xBC, 0xE8, 0xF0, - 0x00, 0xFE, 0xFF, 0xF2, 0x00, 0xFD, 0xFF, 0xF3, 0x00, 0xFD, 0xFE, 0xF4, 0x00, 0xFD, 0xFE, 0xF2, - 0x00, 0xFE, 0xFE, 0xEF, 0x00, 0xFE, 0xFE, 0xE9, 0x00, 0xFE, 0xFE, 0xE3, 0x00, 0xFD, 0xFD, 0xDD, - 0x00, 0xFD, 0xFD, 0xD7, 0x00, 0xFC, 0xFE, 0xC8, 0x00, 0xFB, 0xFF, 0xB9, 0x00, 0xF5, 0xFE, 0x9F, - 0x00, 0xFF, 0xFF, 0xCE, 0x00, 0xFF, 0xF9, 0xF5, 0x00, 0xFF, 0xFF, 0xC8, 0x00, 0xFC, 0xF7, 0xBD, - 0x00, 0xF8, 0xF8, 0x7A, 0x00, 0xF8, 0xF5, 0x6B, 0x00, 0xF9, 0xF3, 0x5C, 0x00, 0xF5, 0xED, 0x55, - 0x00, 0xF1, 0xE8, 0x4F, 0x00, 0xF8, 0xEE, 0x37, 0x00, 0x3E, 0xA6, 0xE9, 0x00, 0x17, 0x9C, 0xF5, - 0x00, 0x17, 0x9D, 0xF4, 0x00, 0x15, 0x9C, 0xF1, 0x00, 0x14, 0x9B, 0xEE, 0x00, 0x15, 0x99, 0xF1, - 0x00, 0x17, 0x97, 0xF4, 0x00, 0x15, 0x95, 0xF2, 0x00, 0x13, 0x93, 0xF0, 0x00, 0x13, 0x93, 0xF0, - 0x00, 0x66, 0xD6, 0xFB, 0x00, 0x5E, 0xD1, 0xF4, 0x00, 0x5F, 0xD3, 0xF6, 0x00, 0x59, 0xD7, 0xF9, - 0x00, 0x39, 0x9D, 0xDA, 0x00, 0x08, 0x58, 0xBE, 0x00, 0x08, 0x6C, 0xCD, 0x00, 0x0C, 0x79, 0xD2, - 0x00, 0x0F, 0x87, 0xD7, 0x00, 0x11, 0x96, 0xDF, 0x00, 0x13, 0xA5, 0xE7, 0x00, 0x13, 0xB0, 0xEA, - 0x00, 0x1B, 0xC2, 0xF5, 0x00, 0x0F, 0xC8, 0xF3, 0x00, 0x16, 0xD0, 0xF9, 0x00, 0x27, 0xD2, 0xF4, - 0x00, 0x4B, 0xD6, 0xF7, 0x00, 0x60, 0xDA, 0xF8, 0x00, 0x76, 0xDE, 0xF9, 0x00, 0x7F, 0xDF, 0xF9, - 0x00, 0x87, 0xE0, 0xFA, 0x00, 0x8C, 0xE4, 0xFB, 0x00, 0x91, 0xE7, 0xFB, 0x00, 0x95, 0xEA, 0xFC, - 0x00, 0x9A, 0xED, 0xFC, 0x00, 0x9E, 0xEA, 0xFB, 0x00, 0xA3, 0xE7, 0xFA, 0x00, 0x5E, 0xCC, 0xFA, - 0x00, 0x2C, 0xB6, 0xF5, 0x00, 0x24, 0xB8, 0xF9, 0x00, 0x14, 0xB1, 0xF5, 0x00, 0xFF, 0xFB, 0xFF, - 0x00, 0xFD, 0xFF, 0xEC, 0x00, 0xFF, 0xFF, 0xED, 0x00, 0xFF, 0xFF, 0xED, 0x00, 0xFF, 0xFE, 0xEC, - 0x00, 0xFD, 0xFD, 0xEA, 0x00, 0xFD, 0xFD, 0xE3, 0x00, 0xFD, 0xFD, 0xDC, 0x00, 0xFD, 0xFD, 0xD5, - 0x00, 0xFD, 0xFD, 0xCE, 0x00, 0xFC, 0xFC, 0xC1, 0x00, 0xFB, 0xFB, 0xB4, 0x00, 0xF5, 0xFA, 0x8D, - 0x00, 0xF8, 0xFC, 0x89, 0x00, 0xF8, 0xFA, 0xCB, 0x00, 0xF7, 0xFE, 0xF1, 0x00, 0xF9, 0xFF, 0xBD, - 0x00, 0xFA, 0xF9, 0xC2, 0x00, 0xFB, 0xF8, 0xAC, 0x00, 0xFC, 0xF7, 0x96, 0x00, 0xF9, 0xF4, 0x91, - 0x00, 0xF7, 0xF0, 0x8C, 0x00, 0xFF, 0xE4, 0xA8, 0x00, 0x00, 0x95, 0xF6, 0x00, 0x07, 0x99, 0xF6, - 0x00, 0x15, 0x9D, 0xF7, 0x00, 0x15, 0x9D, 0xF3, 0x00, 0x15, 0x9C, 0xF0, 0x00, 0x15, 0x9A, 0xF2, - 0x00, 0x15, 0x98, 0xF4, 0x00, 0x14, 0x97, 0xF2, 0x00, 0x12, 0x95, 0xF1, 0x00, 0x12, 0x95, 0xF1, - 0x00, 0x6A, 0xD9, 0xFA, 0x00, 0x60, 0xCE, 0xF0, 0x00, 0x66, 0xD2, 0xF6, 0x00, 0x5C, 0xDD, 0xFD, - 0x00, 0x1E, 0x6C, 0xC0, 0x00, 0x0E, 0x63, 0xBE, 0x00, 0x0E, 0x69, 0xCD, 0x00, 0x13, 0x78, 0xD0, - 0x00, 0x18, 0x87, 0xD4, 0x00, 0x19, 0x96, 0xDE, 0x00, 0x1A, 0xA6, 0xE9, 0x00, 0x13, 0xA8, 0xE3, - 0x00, 0x1D, 0xBA, 0xEE, 0x00, 0x0C, 0xBD, 0xEA, 0x00, 0x22, 0xC5, 0xF6, 0x00, 0x13, 0xC5, 0xEC, - 0x00, 0x2A, 0xCA, 0xF2, 0x00, 0x40, 0xCF, 0xF3, 0x00, 0x56, 0xD3, 0xF4, 0x00, 0x65, 0xD6, 0xF5, - 0x00, 0x74, 0xD9, 0xF7, 0x00, 0x7B, 0xDF, 0xFA, 0x00, 0x82, 0xE4, 0xFE, 0x00, 0x86, 0xE6, 0xFD, - 0x00, 0x89, 0xE7, 0xFD, 0x00, 0x8D, 0xE4, 0xFB, 0x00, 0x92, 0xE2, 0xF9, 0x00, 0x33, 0xBB, 0xFC, - 0x00, 0x31, 0xB9, 0xF6, 0x00, 0x31, 0xBA, 0xFD, 0x00, 0x57, 0xC4, 0xF7, 0x00, 0xF3, 0xFF, 0xDE, - 0x00, 0xFD, 0xFF, 0xE6, 0x00, 0xFF, 0xFF, 0xE6, 0x00, 0xFF, 0xFF, 0xE6, 0x00, 0xFF, 0xFE, 0xE6, - 0x00, 0xFD, 0xFC, 0xE5, 0x00, 0xFD, 0xFC, 0xDD, 0x00, 0xFD, 0xFC, 0xD5, 0x00, 0xFD, 0xFD, 0xCD, - 0x00, 0xFD, 0xFD, 0xC5, 0x00, 0xFC, 0xFA, 0xBA, 0x00, 0xFB, 0xF7, 0xAF, 0x00, 0xFE, 0xF9, 0x9E, - 0x00, 0xFF, 0xFB, 0x8D, 0x00, 0xFA, 0xFE, 0x77, 0x00, 0xF4, 0xFB, 0x7D, 0x00, 0xF8, 0xF7, 0xD2, - 0x00, 0xFD, 0xFF, 0xEE, 0x00, 0xFE, 0xFD, 0xDF, 0x00, 0xFE, 0xFB, 0xD0, 0x00, 0xFD, 0xFA, 0xCD, - 0x00, 0xFC, 0xF9, 0xC9, 0x00, 0xA6, 0xD2, 0xCD, 0x00, 0x02, 0x98, 0xEA, 0x00, 0x1E, 0xA0, 0xEC, - 0x00, 0x13, 0x9E, 0xF9, 0x00, 0x15, 0x9E, 0xF6, 0x00, 0x16, 0x9D, 0xF2, 0x00, 0x15, 0x9B, 0xF2, - 0x00, 0x14, 0x99, 0xF3, 0x00, 0x13, 0x98, 0xF2, 0x00, 0x12, 0x97, 0xF1, 0x00, 0x12, 0x97, 0xF1, - 0x00, 0x55, 0xD4, 0xF3, 0x00, 0x5B, 0xD1, 0xF0, 0x00, 0x69, 0xD6, 0xF6, 0x00, 0x6D, 0xE2, 0xFF, - 0x00, 0x0B, 0x4F, 0xA7, 0x00, 0x11, 0x60, 0xBE, 0x00, 0x0F, 0x6A, 0xCD, 0x00, 0x1F, 0x83, 0xD5, - 0x00, 0x1E, 0x89, 0xDC, 0x00, 0x0F, 0x8B, 0xDD, 0x00, 0x1A, 0x9B, 0xE0, 0x00, 0x22, 0xB0, 0xF3, - 0x00, 0x1D, 0xAA, 0xE0, 0x00, 0x13, 0xAE, 0xDF, 0x00, 0x25, 0xBC, 0xEE, 0x00, 0x14, 0xB9, 0xE6, - 0x00, 0x1F, 0xC1, 0xEF, 0x00, 0x25, 0xC7, 0xEF, 0x00, 0x2B, 0xCD, 0xEE, 0x00, 0x3C, 0xCD, 0xF0, - 0x00, 0x4E, 0xCE, 0xF3, 0x00, 0x5B, 0xD6, 0xF8, 0x00, 0x68, 0xDE, 0xFE, 0x00, 0x6D, 0xDD, 0xFC, - 0x00, 0x73, 0xDC, 0xFA, 0x00, 0x75, 0xDD, 0xF5, 0x00, 0x70, 0xD3, 0xF6, 0x00, 0x30, 0xBA, 0xFB, - 0x00, 0x33, 0xB8, 0xF5, 0x00, 0x24, 0xB5, 0xFE, 0x00, 0xA3, 0xDE, 0xE4, 0x00, 0xF9, 0xFF, 0xDC, - 0x00, 0xFD, 0xFD, 0xDC, 0x00, 0xFE, 0xFE, 0xDC, 0x00, 0xFF, 0xFF, 0xDB, 0x00, 0xFE, 0xFE, 0xDA, - 0x00, 0xFC, 0xFD, 0xD9, 0x00, 0xFC, 0xFD, 0xD2, 0x00, 0xFC, 0xFD, 0xCA, 0x00, 0xFD, 0xFD, 0xC3, - 0x00, 0xFD, 0xFD, 0xBB, 0x00, 0xFC, 0xFB, 0xAF, 0x00, 0xFC, 0xFA, 0xA2, 0x00, 0xFD, 0xFA, 0x92, - 0x00, 0xFE, 0xFB, 0x83, 0x00, 0xFB, 0xFD, 0x6A, 0x00, 0xF8, 0xFC, 0x60, 0x00, 0xFA, 0xF8, 0x5D, - 0x00, 0xFC, 0xF7, 0x4C, 0x00, 0xFD, 0xF4, 0x76, 0x00, 0xFE, 0xF2, 0xA0, 0x00, 0xF5, 0xEC, 0x87, - 0x00, 0xF7, 0xE3, 0x5F, 0x00, 0x50, 0xBB, 0xB4, 0x00, 0x0C, 0x99, 0xFE, 0x00, 0x1A, 0x9E, 0xF7, - 0x00, 0x15, 0x9D, 0xF6, 0x00, 0x15, 0x9D, 0xF4, 0x00, 0x15, 0x9C, 0xF2, 0x00, 0x14, 0x9B, 0xF2, - 0x00, 0x12, 0x99, 0xF1, 0x00, 0x12, 0x99, 0xF1, 0x00, 0x12, 0x99, 0xF1, 0x00, 0x12, 0x99, 0xF1, - 0x00, 0x66, 0xD3, 0xFD, 0x00, 0x69, 0xD6, 0xF9, 0x00, 0x6B, 0xD9, 0xF5, 0x00, 0x4E, 0xB6, 0xDC, - 0x00, 0x18, 0x52, 0xAE, 0x00, 0x1C, 0x66, 0xC6, 0x00, 0x00, 0x5A, 0xBD, 0x00, 0x1A, 0x7D, 0xCA, - 0x00, 0x15, 0x7B, 0xD4, 0x00, 0x04, 0x81, 0xDC, 0x00, 0x2A, 0xA0, 0xE7, 0x00, 0x00, 0x88, 0xD3, - 0x00, 0x2D, 0xAB, 0xE2, 0x00, 0x23, 0xA7, 0xDC, 0x00, 0x29, 0xB3, 0xE6, 0x00, 0x16, 0xAD, 0xE0, - 0x00, 0x14, 0xB7, 0xEB, 0x00, 0x15, 0xB9, 0xEA, 0x00, 0x16, 0xBA, 0xE9, 0x00, 0x1F, 0xBE, 0xEC, - 0x00, 0x28, 0xC2, 0xEE, 0x00, 0x3B, 0xCD, 0xF6, 0x00, 0x4E, 0xD8, 0xFE, 0x00, 0x55, 0xD5, 0xFB, - 0x00, 0x5D, 0xD1, 0xF7, 0x00, 0x5D, 0xD6, 0xEF, 0x00, 0x4E, 0xC4, 0xF3, 0x00, 0x2E, 0xB9, 0xFA, - 0x00, 0x35, 0xB8, 0xF4, 0x00, 0x17, 0xB1, 0xFF, 0x00, 0xF0, 0xF7, 0xD1, 0x00, 0xFE, 0xFF, 0xDA, - 0x00, 0xFC, 0xFC, 0xD2, 0x00, 0xFD, 0xFD, 0xD1, 0x00, 0xFD, 0xFE, 0xD0, 0x00, 0xFC, 0xFD, 0xCF, - 0x00, 0xFB, 0xFD, 0xCD, 0x00, 0xFC, 0xFD, 0xC6, 0x00, 0xFC, 0xFD, 0xBF, 0x00, 0xFD, 0xFD, 0xB9, - 0x00, 0xFD, 0xFC, 0xB2, 0x00, 0xFD, 0xFC, 0xA3, 0x00, 0xFD, 0xFC, 0x95, 0x00, 0xFC, 0xFC, 0x87, - 0x00, 0xFC, 0xFB, 0x78, 0x00, 0xFD, 0xFA, 0x6C, 0x00, 0xFD, 0xF8, 0x5F, 0x00, 0xF9, 0xF6, 0x45, - 0x00, 0xF5, 0xEF, 0x47, 0x00, 0xF2, 0xE9, 0x37, 0x00, 0xEE, 0xE4, 0x28, 0x00, 0xED, 0xE3, 0x24, - 0x00, 0xFF, 0xDD, 0x05, 0x00, 0x03, 0x99, 0xFF, 0x00, 0x16, 0xA0, 0xF5, 0x00, 0x16, 0x9E, 0xF4, - 0x00, 0x16, 0x9C, 0xF3, 0x00, 0x15, 0x9C, 0xF2, 0x00, 0x14, 0x9B, 0xF2, 0x00, 0x12, 0x9A, 0xF1, - 0x00, 0x10, 0x99, 0xEF, 0x00, 0x11, 0x9A, 0xF0, 0x00, 0x12, 0x9B, 0xF1, 0x00, 0x12, 0x9B, 0xF1, - 0x00, 0x65, 0xD5, 0xFB, 0x00, 0x70, 0xD4, 0xFC, 0x00, 0x77, 0xE2, 0xFF, 0x00, 0x3B, 0x86, 0xC7, - 0x00, 0x23, 0x5F, 0xBA, 0x00, 0x1E, 0x6A, 0xBA, 0x00, 0x21, 0x7A, 0xD0, 0x00, 0x27, 0x87, 0xD7, - 0x00, 0x24, 0x8C, 0xD6, 0x00, 0x1D, 0x8D, 0xD3, 0x00, 0x21, 0x88, 0xD0, 0x00, 0x2B, 0xA0, 0xEA, - 0x00, 0x21, 0x95, 0xD5, 0x00, 0x30, 0xA9, 0xEE, 0x00, 0x20, 0xA0, 0xDA, 0x00, 0x16, 0xA1, 0xDD, - 0x00, 0x0D, 0xA1, 0xDF, 0x00, 0x19, 0xAB, 0xE2, 0x00, 0x12, 0xB1, 0xEB, 0x00, 0x0F, 0xB8, 0xED, - 0x00, 0x0C, 0xBF, 0xEE, 0x00, 0x1C, 0xC1, 0xEF, 0x00, 0x2C, 0xC3, 0xF0, 0x00, 0x36, 0xC4, 0xF1, - 0x00, 0x40, 0xC5, 0xF3, 0x00, 0x46, 0xC9, 0xF1, 0x00, 0x45, 0xC2, 0xF6, 0x00, 0x31, 0xBA, 0xF9, - 0x00, 0x30, 0xB7, 0xF6, 0x00, 0x4B, 0xC1, 0xF4, 0x00, 0xF5, 0xFA, 0xC0, 0x00, 0xFD, 0xFF, 0xC6, - 0x00, 0xFC, 0xFC, 0xC4, 0x00, 0xFD, 0xFC, 0xC4, 0x00, 0xFD, 0xFD, 0xC3, 0x00, 0xFC, 0xFD, 0xC2, - 0x00, 0xFB, 0xFC, 0xC1, 0x00, 0xF8, 0xF8, 0xB5, 0x00, 0xFC, 0xFD, 0xB2, 0x00, 0xFC, 0xFC, 0xAA, - 0x00, 0xFC, 0xFC, 0xA3, 0x00, 0xFC, 0xFB, 0x95, 0x00, 0xFB, 0xFB, 0x88, 0x00, 0xFB, 0xFB, 0x7A, - 0x00, 0xFB, 0xFA, 0x6D, 0x00, 0xFB, 0xF8, 0x61, 0x00, 0xFC, 0xF6, 0x56, 0x00, 0xF8, 0xF2, 0x44, - 0x00, 0xF4, 0xEA, 0x40, 0x00, 0xEF, 0xE5, 0x31, 0x00, 0xEA, 0xDF, 0x23, 0x00, 0xFA, 0xE0, 0x1C, - 0x00, 0xC5, 0xD1, 0x44, 0x00, 0x0A, 0xA1, 0xFE, 0x00, 0x15, 0x9F, 0xF9, 0x00, 0x17, 0x9F, 0xF5, - 0x00, 0x18, 0x9F, 0xF2, 0x00, 0x16, 0x9E, 0xF2, 0x00, 0x15, 0x9D, 0xF2, 0x00, 0x16, 0x9F, 0xF5, - 0x00, 0x18, 0xA0, 0xF8, 0x00, 0x15, 0x9D, 0xF5, 0x00, 0x12, 0x9A, 0xF2, 0x00, 0x12, 0x9A, 0xF2, - 0x00, 0x64, 0xD7, 0xF9, 0x00, 0x64, 0xD1, 0xF6, 0x00, 0x5D, 0xE6, 0xFF, 0x00, 0x03, 0x43, 0x9A, - 0x00, 0x0D, 0x4B, 0xA5, 0x00, 0x30, 0x7B, 0xCC, 0x00, 0x04, 0x54, 0xC0, 0x00, 0x00, 0x53, 0xC9, - 0x00, 0x03, 0x67, 0xC5, 0x00, 0x25, 0x87, 0xC9, 0x00, 0x28, 0x80, 0xCA, 0x00, 0x27, 0x88, 0xD0, - 0x00, 0x26, 0x90, 0xD7, 0x00, 0x06, 0x74, 0xC9, 0x00, 0x17, 0x8D, 0xCF, 0x00, 0x1E, 0x9C, 0xE1, - 0x00, 0x16, 0x9B, 0xE3, 0x00, 0x1E, 0x9E, 0xDA, 0x00, 0x00, 0x97, 0xDD, 0x00, 0x03, 0xA4, 0xE6, - 0x00, 0x07, 0xB1, 0xEE, 0x00, 0x08, 0xB0, 0xE8, 0x00, 0x09, 0xAE, 0xE2, 0x00, 0x16, 0xB4, 0xE8, - 0x00, 0x23, 0xB9, 0xEF, 0x00, 0x30, 0xBD, 0xF4, 0x00, 0x3C, 0xC1, 0xF9, 0x00, 0x34, 0xBB, 0xF9, - 0x00, 0x2C, 0xB6, 0xF9, 0x00, 0x80, 0xD2, 0xE8, 0x00, 0xFA, 0xFD, 0xAE, 0x00, 0xFB, 0xFC, 0xB2, - 0x00, 0xFC, 0xFB, 0xB6, 0x00, 0xFC, 0xFC, 0xB6, 0x00, 0xFD, 0xFC, 0xB6, 0x00, 0xFC, 0xFC, 0xB5, - 0x00, 0xFB, 0xFC, 0xB4, 0x00, 0xF3, 0xF4, 0xA4, 0x00, 0xFC, 0xFC, 0xA5, 0x00, 0xFC, 0xFC, 0x9C, - 0x00, 0xFC, 0xFB, 0x93, 0x00, 0xFB, 0xFB, 0x87, 0x00, 0xFA, 0xFA, 0x7A, 0x00, 0xFA, 0xFA, 0x6D, - 0x00, 0xF9, 0xF9, 0x61, 0x00, 0xFA, 0xF7, 0x57, 0x00, 0xFA, 0xF4, 0x4E, 0x00, 0xF6, 0xED, 0x44, - 0x00, 0xF3, 0xE6, 0x3A, 0x00, 0xED, 0xE1, 0x2C, 0x00, 0xE7, 0xDB, 0x1E, 0x00, 0xFF, 0xD1, 0x19, - 0x00, 0x77, 0xB0, 0x8F, 0x00, 0x09, 0xA0, 0xFD, 0x00, 0x14, 0x9D, 0xFD, 0x00, 0x17, 0x9F, 0xF7, - 0x00, 0x1A, 0xA2, 0xF2, 0x00, 0x18, 0xA0, 0xF2, 0x00, 0x16, 0x9E, 0xF2, 0x00, 0x13, 0x9B, 0xF1, - 0x00, 0x10, 0x98, 0xF0, 0x00, 0x11, 0x99, 0xF1, 0x00, 0x12, 0x9A, 0xF2, 0x00, 0x12, 0x9A, 0xF2, - 0x00, 0x5F, 0xD4, 0xF7, 0x00, 0x67, 0xDC, 0xFC, 0x00, 0x4F, 0xC1, 0xF0, 0x00, 0x00, 0x2B, 0x8A, - 0x00, 0x2D, 0x6A, 0xBF, 0x00, 0x05, 0x47, 0xAC, 0x00, 0x00, 0x43, 0xB9, 0x00, 0x35, 0x85, 0xC4, - 0x00, 0x06, 0x4D, 0xBB, 0x00, 0x13, 0x61, 0xC3, 0x00, 0x2C, 0x70, 0xCA, 0x00, 0x0F, 0x5A, 0xB3, - 0x00, 0x21, 0x74, 0xCC, 0x00, 0x11, 0x69, 0xC2, 0x00, 0x18, 0x78, 0xC2, 0x00, 0x1C, 0x80, 0xD0, - 0x00, 0x18, 0x7F, 0xD6, 0x00, 0x1A, 0x86, 0xD3, 0x00, 0x10, 0x8F, 0xDD, 0x00, 0x02, 0x8C, 0xDA, - 0x00, 0x04, 0x99, 0xE6, 0x00, 0x04, 0x9B, 0xE1, 0x00, 0x04, 0x9D, 0xDC, 0x00, 0x05, 0xA6, 0xE1, - 0x00, 0x00, 0xA6, 0xDD, 0x00, 0x1F, 0xB6, 0xEE, 0x00, 0x39, 0xBD, 0xF6, 0x00, 0x38, 0xBB, 0xF6, - 0x00, 0x24, 0xB5, 0xFC, 0x00, 0xBF, 0xE8, 0xB8, 0x00, 0xFA, 0xFE, 0xA2, 0x00, 0xFB, 0xFC, 0xA5, - 0x00, 0xFB, 0xFA, 0xA8, 0x00, 0xFC, 0xFB, 0xA7, 0x00, 0xFC, 0xFC, 0xA6, 0x00, 0xFA, 0xFB, 0xA2, - 0x00, 0xF8, 0xFA, 0x9F, 0x00, 0xF5, 0xF7, 0x94, 0x00, 0xFA, 0xFB, 0x92, 0x00, 0xFA, 0xFB, 0x8B, - 0x00, 0xFB, 0xFB, 0x84, 0x00, 0xFA, 0xFA, 0x78, 0x00, 0xF9, 0xF9, 0x6D, 0x00, 0xF9, 0xF9, 0x61, - 0x00, 0xF8, 0xF8, 0x55, 0x00, 0xF8, 0xF6, 0x4B, 0x00, 0xF9, 0xF3, 0x41, 0x00, 0xF5, 0xEC, 0x39, - 0x00, 0xF1, 0xE4, 0x30, 0x00, 0xEE, 0xDD, 0x28, 0x00, 0xEB, 0xD6, 0x1F, 0x00, 0xEE, 0xD9, 0x00, - 0x00, 0x32, 0xA6, 0xE4, 0x00, 0x18, 0xA4, 0xFF, 0x00, 0x28, 0xA4, 0xF3, 0x00, 0x20, 0xA2, 0xF4, - 0x00, 0x18, 0xA0, 0xF4, 0x00, 0x16, 0x9E, 0xF4, 0x00, 0x15, 0x9D, 0xF3, 0x00, 0x13, 0x9B, 0xF2, - 0x00, 0x11, 0x99, 0xF2, 0x00, 0x11, 0x99, 0xF2, 0x00, 0x12, 0x9A, 0xF3, 0x00, 0x12, 0x9A, 0xF3, - 0x00, 0x5B, 0xD1, 0xF5, 0x00, 0x62, 0xDF, 0xFA, 0x00, 0x30, 0x8C, 0xCC, 0x00, 0x05, 0x2C, 0x91, - 0x00, 0x0E, 0x49, 0x9A, 0x00, 0x00, 0x36, 0x9E, 0x00, 0x00, 0x38, 0x96, 0x00, 0x14, 0x5E, 0xB6, - 0x00, 0x53, 0xAA, 0xD9, 0x00, 0x30, 0xA6, 0xE2, 0x00, 0x44, 0xBB, 0xEE, 0x00, 0x6D, 0xDD, 0xFF, - 0x00, 0x76, 0xDE, 0xF9, 0x00, 0x6C, 0xD9, 0xF9, 0x00, 0x63, 0xD4, 0xF8, 0x00, 0x54, 0xC4, 0xF3, - 0x00, 0x44, 0xB4, 0xED, 0x00, 0x23, 0x8E, 0xD5, 0x00, 0x11, 0x77, 0xCE, 0x00, 0x00, 0x6C, 0xC6, - 0x00, 0x02, 0x81, 0xDE, 0x00, 0x00, 0x87, 0xDA, 0x00, 0x00, 0x8D, 0xD6, 0x00, 0x06, 0x9B, 0xE1, - 0x00, 0x00, 0x98, 0xDC, 0x00, 0x22, 0xB1, 0xF0, 0x00, 0x35, 0xB9, 0xF4, 0x00, 0x3C, 0xBC, 0xF3, - 0x00, 0x1B, 0xB4, 0xFF, 0x00, 0xFE, 0xFD, 0x89, 0x00, 0xFA, 0xFF, 0x95, 0x00, 0xFA, 0xFC, 0x97, - 0x00, 0xFB, 0xF8, 0x99, 0x00, 0xFB, 0xFB, 0x97, 0x00, 0xFC, 0xFD, 0x95, 0x00, 0xF9, 0xFB, 0x8F, - 0x00, 0xF6, 0xF9, 0x89, 0x00, 0xF7, 0xF9, 0x84, 0x00, 0xF8, 0xF9, 0x7F, 0x00, 0xF9, 0xFA, 0x7A, - 0x00, 0xFA, 0xFA, 0x75, 0x00, 0xF9, 0xF9, 0x6A, 0x00, 0xF8, 0xF9, 0x5F, 0x00, 0xF7, 0xF8, 0x54, - 0x00, 0xF6, 0xF7, 0x49, 0x00, 0xF7, 0xF5, 0x3F, 0x00, 0xF7, 0xF2, 0x35, 0x00, 0xF3, 0xEB, 0x2E, - 0x00, 0xF0, 0xE3, 0x27, 0x00, 0xF0, 0xDA, 0x24, 0x00, 0xF0, 0xD1, 0x21, 0x00, 0xE8, 0xC9, 0x23, - 0x00, 0x03, 0x9B, 0xFF, 0x00, 0x20, 0xA3, 0xF6, 0x00, 0x16, 0xA1, 0xF6, 0x00, 0x16, 0x9F, 0xF7, - 0x00, 0x16, 0x9D, 0xF7, 0x00, 0x15, 0x9C, 0xF6, 0x00, 0x14, 0x9B, 0xF5, 0x00, 0x13, 0x9A, 0xF4, - 0x00, 0x12, 0x99, 0xF3, 0x00, 0x12, 0x99, 0xF3, 0x00, 0x12, 0x99, 0xF3, 0x00, 0x12, 0x99, 0xF3, - 0x00, 0x5A, 0xE2, 0xFE, 0x00, 0x64, 0xD7, 0xFF, 0x00, 0x0C, 0x46, 0x97, 0x00, 0x00, 0x25, 0x82, - 0x00, 0x1D, 0x6A, 0xB7, 0x00, 0x39, 0xA2, 0xDE, 0x00, 0x5E, 0xE5, 0xFF, 0x00, 0x51, 0xD8, 0xFD, - 0x00, 0x4C, 0xD6, 0xF5, 0x00, 0x48, 0xCC, 0xF4, 0x00, 0x5E, 0xCF, 0xF6, 0x00, 0x67, 0xD9, 0xFE, - 0x00, 0x61, 0xD3, 0xF7, 0x00, 0x5A, 0xD1, 0xF8, 0x00, 0x41, 0xCB, 0xFE, 0x00, 0x53, 0xCE, 0xFE, - 0x00, 0x51, 0xCF, 0xF5, 0x00, 0x49, 0xCA, 0xF6, 0x00, 0x49, 0xCD, 0xFF, 0x00, 0x3F, 0xB9, 0xFF, - 0x00, 0x0E, 0x7E, 0xDA, 0x00, 0x00, 0x69, 0xC2, 0x00, 0x05, 0x84, 0xDA, 0x00, 0x01, 0x84, 0xD5, - 0x00, 0x05, 0x8C, 0xD8, 0x00, 0x37, 0xBE, 0xF8, 0x00, 0x3A, 0xBE, 0xF6, 0x00, 0x34, 0xBD, 0xFF, - 0x00, 0x61, 0xC6, 0xE1, 0x00, 0xFB, 0xF3, 0x79, 0x00, 0xF7, 0xFA, 0x82, 0x00, 0xF9, 0xF9, 0x83, - 0x00, 0xFA, 0xF7, 0x83, 0x00, 0xF8, 0xF7, 0x7F, 0x00, 0xF6, 0xF6, 0x7B, 0x00, 0xF7, 0xF8, 0x79, - 0x00, 0xF8, 0xFA, 0x77, 0x00, 0xF7, 0xF9, 0x71, 0x00, 0xF7, 0xF8, 0x6C, 0x00, 0xFB, 0xFC, 0x6B, - 0x00, 0xF8, 0xF8, 0x63, 0x00, 0xF8, 0xF7, 0x5A, 0x00, 0xF7, 0xF7, 0x52, 0x00, 0xF7, 0xF5, 0x48, - 0x00, 0xF6, 0xF4, 0x3F, 0x00, 0xF5, 0xF2, 0x37, 0x00, 0xF4, 0xEF, 0x2F, 0x00, 0xF1, 0xE6, 0x27, - 0x00, 0xEE, 0xDD, 0x20, 0x00, 0xEA, 0xD6, 0x1F, 0x00, 0xF1, 0xCC, 0x10, 0x00, 0x9D, 0xB9, 0x6C, - 0x00, 0x0B, 0x9F, 0xFE, 0x00, 0x1A, 0xA3, 0xF8, 0x00, 0x16, 0xA2, 0xF9, 0x00, 0x16, 0xA0, 0xF8, - 0x00, 0x16, 0x9E, 0xF7, 0x00, 0x15, 0x9D, 0xF7, 0x00, 0x14, 0x9B, 0xF6, 0x00, 0x14, 0x9A, 0xF5, - 0x00, 0x13, 0x99, 0xF4, 0x00, 0x13, 0x99, 0xF4, 0x00, 0x13, 0x99, 0xF4, 0x00, 0x13, 0x99, 0xF4, - 0x00, 0x60, 0xD8, 0xF8, 0x00, 0x5A, 0xD8, 0xF7, 0x00, 0x4B, 0xAD, 0xD7, 0x00, 0x68, 0xDD, 0xFF, - 0x00, 0x55, 0xDC, 0xF7, 0x00, 0x55, 0xD6, 0xFC, 0x00, 0x54, 0xCF, 0xFF, 0x00, 0x5C, 0xD5, 0xFF, - 0x00, 0x53, 0xCA, 0xF1, 0x00, 0x4A, 0xCA, 0xF5, 0x00, 0x42, 0xC9, 0xF9, 0x00, 0x47, 0xC9, 0xF7, - 0x00, 0x4B, 0xC8, 0xF5, 0x00, 0x5C, 0xCF, 0xF0, 0x00, 0x46, 0xCC, 0xF8, 0x00, 0x55, 0xCA, 0xFF, - 0x00, 0x3E, 0xC3, 0xF9, 0x00, 0x43, 0xC2, 0xFB, 0x00, 0x48, 0xC1, 0xFC, 0x00, 0x3E, 0xBE, 0xF3, - 0x00, 0x43, 0xCB, 0xFA, 0x00, 0x37, 0xB3, 0xFC, 0x00, 0x0B, 0x7B, 0xDD, 0x00, 0x00, 0x6D, 0xC8, - 0x00, 0x0D, 0x7F, 0xD4, 0x00, 0x4D, 0xCC, 0xFF, 0x00, 0x3E, 0xC2, 0xF9, 0x00, 0x2D, 0xC1, 0xFF, - 0x00, 0xA7, 0xDE, 0xA7, 0x00, 0xF7, 0xEB, 0x5B, 0x00, 0xF4, 0xF5, 0x6F, 0x00, 0xF7, 0xF5, 0x6E, - 0x00, 0xF9, 0xF6, 0x6D, 0x00, 0xF5, 0xF3, 0x67, 0x00, 0xF1, 0xF0, 0x60, 0x00, 0xF5, 0xF6, 0x62, - 0x00, 0xFA, 0xFC, 0x65, 0x00, 0xF8, 0xF9, 0x5E, 0x00, 0xF5, 0xF6, 0x58, 0x00, 0xFE, 0xFE, 0x5D, - 0x00, 0xF6, 0xF6, 0x52, 0x00, 0xF6, 0xF5, 0x4B, 0x00, 0xF7, 0xF5, 0x44, 0x00, 0xF6, 0xF3, 0x3D, - 0x00, 0xF5, 0xF1, 0x35, 0x00, 0xF3, 0xEE, 0x2F, 0x00, 0xF0, 0xEB, 0x28, 0x00, 0xEE, 0xE1, 0x20, - 0x00, 0xEC, 0xD8, 0x18, 0x00, 0xE4, 0xD2, 0x1A, 0x00, 0xF3, 0xC6, 0x00, 0x00, 0x51, 0xA8, 0xB4, - 0x00, 0x13, 0xA3, 0xFA, 0x00, 0x15, 0xA3, 0xFB, 0x00, 0x17, 0xA3, 0xFB, 0x00, 0x16, 0xA0, 0xFA, - 0x00, 0x16, 0x9E, 0xF8, 0x00, 0x15, 0x9D, 0xF7, 0x00, 0x15, 0x9C, 0xF7, 0x00, 0x14, 0x9A, 0xF6, - 0x00, 0x14, 0x99, 0xF6, 0x00, 0x14, 0x99, 0xF6, 0x00, 0x14, 0x99, 0xF6, 0x00, 0x14, 0x99, 0xF6, - 0x00, 0x58, 0xCE, 0xF1, 0x00, 0x59, 0xDC, 0xFD, 0x00, 0x55, 0xD5, 0xF8, 0x00, 0x5D, 0xDD, 0xFF, - 0x00, 0x4D, 0xCE, 0xF3, 0x00, 0x4C, 0xCB, 0xF3, 0x00, 0x4C, 0xC8, 0xF3, 0x00, 0x56, 0xD1, 0xFB, - 0x00, 0x58, 0xD3, 0xFC, 0x00, 0x4F, 0xCE, 0xFB, 0x00, 0x47, 0xC9, 0xFA, 0x00, 0x48, 0xC8, 0xF9, - 0x00, 0x49, 0xC7, 0xF8, 0x00, 0x50, 0xCA, 0xF5, 0x00, 0x44, 0xC9, 0xF9, 0x00, 0x4B, 0xC8, 0xFD, - 0x00, 0x3E, 0xC5, 0xF9, 0x00, 0x40, 0xC3, 0xFA, 0x00, 0x43, 0xC2, 0xFA, 0x00, 0x3A, 0xBD, 0xF3, - 0x00, 0x3A, 0xBF, 0xF3, 0x00, 0x3E, 0xC7, 0xFC, 0x00, 0x3A, 0xC6, 0xFC, 0x00, 0x24, 0xA1, 0xE2, - 0x00, 0x1F, 0x8C, 0xD9, 0x00, 0x36, 0xB9, 0xF6, 0x00, 0x26, 0xBB, 0xFA, 0x00, 0x29, 0xBA, 0xF3, - 0x00, 0xCD, 0xD7, 0x56, 0x00, 0xF9, 0xFA, 0x5A, 0x00, 0xD9, 0xDA, 0x48, 0x00, 0xED, 0xEC, 0x58, - 0x00, 0xF9, 0xF5, 0x5F, 0x00, 0xF1, 0xEF, 0x4D, 0x00, 0xE9, 0xE9, 0x3A, 0x00, 0xED, 0xEE, 0x45, - 0x00, 0xF2, 0xF4, 0x50, 0x00, 0xF9, 0xF3, 0x4E, 0x00, 0xED, 0xF0, 0x44, 0x00, 0xFE, 0xF8, 0x4B, - 0x00, 0xF4, 0xF5, 0x41, 0x00, 0xF5, 0xF4, 0x3C, 0x00, 0xF6, 0xF2, 0x37, 0x00, 0xF5, 0xF0, 0x31, - 0x00, 0xF4, 0xEF, 0x2A, 0x00, 0xF2, 0xEA, 0x26, 0x00, 0xF0, 0xE6, 0x22, 0x00, 0xEE, 0xDB, 0x1C, - 0x00, 0xEC, 0xD0, 0x17, 0x00, 0xF0, 0xCC, 0x08, 0x00, 0xF5, 0xC4, 0x08, 0x00, 0x0E, 0xAD, 0xFF, - 0x00, 0x16, 0xA1, 0xF9, 0x00, 0x17, 0xA1, 0xF8, 0x00, 0x18, 0xA1, 0xF8, 0x00, 0x17, 0xA0, 0xF8, - 0x00, 0x16, 0x9E, 0xF8, 0x00, 0x16, 0x9D, 0xF8, 0x00, 0x15, 0x9C, 0xF8, 0x00, 0x15, 0x9A, 0xF7, - 0x00, 0x14, 0x99, 0xF7, 0x00, 0x14, 0x99, 0xF7, 0x00, 0x14, 0x99, 0xF7, 0x00, 0x14, 0x99, 0xF7, - 0x00, 0x60, 0xD5, 0xFB, 0x00, 0x5A, 0xD3, 0xFA, 0x00, 0x55, 0xD1, 0xFA, 0x00, 0x55, 0xD0, 0xFC, - 0x00, 0x54, 0xCF, 0xFE, 0x00, 0x54, 0xD0, 0xFA, 0x00, 0x53, 0xD1, 0xF6, 0x00, 0x50, 0xCE, 0xF6, - 0x00, 0x4E, 0xCB, 0xF7, 0x00, 0x4C, 0xCA, 0xF9, 0x00, 0x4B, 0xCA, 0xFA, 0x00, 0x49, 0xC8, 0xFB, - 0x00, 0x47, 0xC6, 0xFB, 0x00, 0x45, 0xC6, 0xFB, 0x00, 0x43, 0xC6, 0xFA, 0x00, 0x41, 0xC6, 0xF9, - 0x00, 0x3F, 0xC6, 0xF8, 0x00, 0x3E, 0xC4, 0xF8, 0x00, 0x3E, 0xC3, 0xF9, 0x00, 0x3F, 0xC3, 0xFB, - 0x00, 0x40, 0xC3, 0xFD, 0x00, 0x38, 0xBA, 0xF2, 0x00, 0x3F, 0xC0, 0xF7, 0x00, 0x3D, 0xC2, 0xFA, - 0x00, 0x3A, 0xC5, 0xFD, 0x00, 0x37, 0xC1, 0xF6, 0x00, 0x34, 0xBD, 0xEF, 0x00, 0x2D, 0xBB, 0xEF, - 0x00, 0xDD, 0xD6, 0x21, 0x00, 0xBF, 0xDC, 0x37, 0x00, 0xDD, 0xE0, 0x41, 0x00, 0xEB, 0xEA, 0x49, - 0x00, 0xEA, 0xE3, 0x41, 0x00, 0xED, 0xE8, 0x41, 0x00, 0xF1, 0xED, 0x41, 0x00, 0xED, 0xEC, 0x3F, - 0x00, 0xEA, 0xEB, 0x3C, 0x00, 0xFA, 0xEE, 0x3E, 0x00, 0xE5, 0xEB, 0x31, 0x00, 0xFE, 0xF2, 0x39, - 0x00, 0xF1, 0xF4, 0x31, 0x00, 0xF3, 0xF2, 0x2D, 0x00, 0xF5, 0xF0, 0x29, 0x00, 0xF4, 0xEE, 0x25, - 0x00, 0xF4, 0xEC, 0x20, 0x00, 0xF1, 0xE6, 0x1E, 0x00, 0xEF, 0xE1, 0x1C, 0x00, 0xED, 0xD5, 0x19, - 0x00, 0xEB, 0xC9, 0x16, 0x00, 0xDE, 0xC3, 0x0B, 0x00, 0xBA, 0xBE, 0x39, 0x00, 0x07, 0x98, 0xF8, - 0x00, 0x19, 0x9F, 0xF8, 0x00, 0x19, 0x9F, 0xF6, 0x00, 0x19, 0x9F, 0xF5, 0x00, 0x18, 0x9F, 0xF7, - 0x00, 0x16, 0x9F, 0xF9, 0x00, 0x16, 0x9D, 0xF9, 0x00, 0x16, 0x9C, 0xF9, 0x00, 0x16, 0x9A, 0xF9, - 0x00, 0x15, 0x99, 0xF8, 0x00, 0x15, 0x99, 0xF8, 0x00, 0x15, 0x99, 0xF8, 0x00, 0x15, 0x99, 0xF8, - 0x00, 0x5C, 0xD4, 0xF8, 0x00, 0x58, 0xD4, 0xF8, 0x00, 0x54, 0xD3, 0xF8, 0x00, 0x56, 0xD1, 0xF9, - 0x00, 0x57, 0xD0, 0xFA, 0x00, 0x55, 0xD0, 0xF8, 0x00, 0x53, 0xD0, 0xF5, 0x00, 0x50, 0xCE, 0xF7, - 0x00, 0x4D, 0xCC, 0xF9, 0x00, 0x4C, 0xCB, 0xF9, 0x00, 0x4A, 0xCA, 0xFA, 0x00, 0x48, 0xC8, 0xFB, - 0x00, 0x46, 0xC7, 0xFB, 0x00, 0x44, 0xC6, 0xFA, 0x00, 0x43, 0xC6, 0xFA, 0x00, 0x41, 0xC6, 0xF9, - 0x00, 0x3F, 0xC6, 0xF9, 0x00, 0x3E, 0xC4, 0xF9, 0x00, 0x3D, 0xC3, 0xF9, 0x00, 0x3E, 0xC2, 0xFA, - 0x00, 0x3E, 0xC1, 0xFB, 0x00, 0x3A, 0xBD, 0xF5, 0x00, 0x3D, 0xC1, 0xF7, 0x00, 0x3A, 0xC0, 0xF8, - 0x00, 0x37, 0xC0, 0xF9, 0x00, 0x36, 0xBD, 0xFF, 0x00, 0x35, 0xBB, 0xFF, 0x00, 0x66, 0xBA, 0x84, - 0x00, 0xAF, 0xD2, 0x18, 0x00, 0xB3, 0xD2, 0x19, 0x00, 0xD2, 0xDA, 0x39, 0x00, 0xE1, 0xDC, 0x3D, - 0x00, 0xD5, 0xD4, 0x31, 0x00, 0xE1, 0xDF, 0x37, 0x00, 0xEC, 0xE9, 0x3E, 0x00, 0xE1, 0xE6, 0x35, - 0x00, 0xE9, 0xE5, 0x35, 0x00, 0xF0, 0xE5, 0x34, 0x00, 0xE4, 0xE3, 0x2A, 0x00, 0xF5, 0xE5, 0x2D, - 0x00, 0xE8, 0xEB, 0x28, 0x00, 0xF0, 0xEE, 0x2A, 0x00, 0xEF, 0xE8, 0x24, 0x00, 0xEC, 0xE4, 0x20, - 0x00, 0xE9, 0xDF, 0x1C, 0x00, 0xEB, 0xDB, 0x1C, 0x00, 0xED, 0xD7, 0x1B, 0x00, 0xE9, 0xCE, 0x18, - 0x00, 0xE5, 0xC5, 0x15, 0x00, 0xE7, 0xBF, 0x03, 0x00, 0x6C, 0xB1, 0x92, 0x00, 0x10, 0x9C, 0xFB, - 0x00, 0x17, 0xA0, 0xF7, 0x00, 0x19, 0xA0, 0xF5, 0x00, 0x1B, 0xA0, 0xF3, 0x00, 0x19, 0x9F, 0xF6, - 0x00, 0x16, 0x9F, 0xF9, 0x00, 0x16, 0x9E, 0xF8, 0x00, 0x15, 0x9C, 0xF8, 0x00, 0x15, 0x9B, 0xF8, - 0x00, 0x15, 0x99, 0xF8, 0x00, 0x14, 0x99, 0xF7, 0x00, 0x14, 0x98, 0xF7, 0x00, 0x14, 0x98, 0xF7, - 0x00, 0x57, 0xD3, 0xF6, 0x00, 0x55, 0xD4, 0xF6, 0x00, 0x53, 0xD5, 0xF6, 0x00, 0x57, 0xD2, 0xF7, - 0x00, 0x5B, 0xD0, 0xF7, 0x00, 0x57, 0xD0, 0xF6, 0x00, 0x54, 0xCF, 0xF5, 0x00, 0x50, 0xCE, 0xF7, - 0x00, 0x4C, 0xCC, 0xFA, 0x00, 0x4B, 0xCB, 0xFA, 0x00, 0x49, 0xCA, 0xFA, 0x00, 0x47, 0xC8, 0xFA, - 0x00, 0x46, 0xC7, 0xFB, 0x00, 0x44, 0xC7, 0xFA, 0x00, 0x43, 0xC6, 0xFA, 0x00, 0x41, 0xC6, 0xF9, - 0x00, 0x3F, 0xC5, 0xF9, 0x00, 0x3E, 0xC4, 0xF9, 0x00, 0x3D, 0xC2, 0xF9, 0x00, 0x3C, 0xC1, 0xF9, - 0x00, 0x3B, 0xC0, 0xF9, 0x00, 0x3C, 0xC1, 0xF8, 0x00, 0x3C, 0xC2, 0xF7, 0x00, 0x38, 0xBE, 0xF6, - 0x00, 0x34, 0xBB, 0xF5, 0x00, 0x35, 0xBC, 0xFD, 0x00, 0x36, 0xBE, 0xFF, 0x00, 0x45, 0xBB, 0xFB, - 0x00, 0x82, 0xC9, 0x2B, 0x00, 0xA0, 0xBE, 0x01, 0x00, 0xB8, 0xC4, 0x20, 0x00, 0xD8, 0xCF, 0x31, - 0x00, 0xD1, 0xD5, 0x31, 0x00, 0xD4, 0xD5, 0x2E, 0x00, 0xD7, 0xD4, 0x2A, 0x00, 0xCC, 0xD7, 0x24, - 0x00, 0xE8, 0xDE, 0x2E, 0x00, 0xE6, 0xDD, 0x29, 0x00, 0xE4, 0xDC, 0x24, 0x00, 0xED, 0xD9, 0x22, - 0x00, 0xDF, 0xE1, 0x20, 0x00, 0xEC, 0xE9, 0x27, 0x00, 0xEA, 0xE0, 0x1E, 0x00, 0xE3, 0xD9, 0x1B, - 0x00, 0xDD, 0xD3, 0x19, 0x00, 0xE4, 0xD0, 0x1A, 0x00, 0xEB, 0xCD, 0x1B, 0x00, 0xE4, 0xC7, 0x17, - 0x00, 0xDE, 0xC2, 0x14, 0x00, 0xEF, 0xBC, 0x00, 0x00, 0x1D, 0xA4, 0xEB, 0x00, 0x19, 0xA0, 0xFF, - 0x00, 0x15, 0xA2, 0xF6, 0x00, 0x19, 0xA2, 0xF3, 0x00, 0x1D, 0xA1, 0xF0, 0x00, 0x19, 0xA0, 0xF4, - 0x00, 0x16, 0x9F, 0xF8, 0x00, 0x15, 0x9E, 0xF8, 0x00, 0x15, 0x9D, 0xF8, 0x00, 0x14, 0x9B, 0xF7, - 0x00, 0x14, 0x9A, 0xF7, 0x00, 0x13, 0x99, 0xF6, 0x00, 0x12, 0x98, 0xF5, 0x00, 0x12, 0x98, 0xF5, - 0x00, 0x5E, 0xD5, 0xF8, 0x00, 0x63, 0xD5, 0xFC, 0x00, 0x68, 0xD6, 0xFF, 0x00, 0x5E, 0xD2, 0xFB, - 0x00, 0x55, 0xCF, 0xF8, 0x00, 0x53, 0xCF, 0xF7, 0x00, 0x50, 0xCE, 0xF7, 0x00, 0x4D, 0xCD, 0xF9, - 0x00, 0x4B, 0xCC, 0xFA, 0x00, 0x49, 0xCB, 0xFA, 0x00, 0x48, 0xCA, 0xFA, 0x00, 0x47, 0xC9, 0xFA, - 0x00, 0x45, 0xC8, 0xFA, 0x00, 0x44, 0xC7, 0xFA, 0x00, 0x42, 0xC6, 0xF9, 0x00, 0x41, 0xC5, 0xF9, - 0x00, 0x40, 0xC5, 0xF9, 0x00, 0x3F, 0xC4, 0xF9, 0x00, 0x3D, 0xC2, 0xF9, 0x00, 0x3C, 0xC1, 0xF9, - 0x00, 0x3B, 0xC0, 0xF8, 0x00, 0x3B, 0xC0, 0xF8, 0x00, 0x3A, 0xC1, 0xF8, 0x00, 0x38, 0xBF, 0xF7, - 0x00, 0x35, 0xBD, 0xF6, 0x00, 0x34, 0xBD, 0xFA, 0x00, 0x33, 0xBD, 0xFE, 0x00, 0x22, 0xC3, 0xF5, - 0x00, 0x26, 0xBA, 0xFB, 0x00, 0x53, 0xB0, 0xB1, 0x00, 0x9A, 0xC5, 0x06, 0x00, 0xC0, 0xD2, 0x22, - 0x00, 0xD3, 0xDD, 0x36, 0x00, 0xB3, 0xBA, 0x12, 0x00, 0xC3, 0xC7, 0x1E, 0x00, 0xC4, 0xCE, 0x21, - 0x00, 0xD8, 0xD8, 0x2C, 0x00, 0xDE, 0xDA, 0x2F, 0x00, 0xDC, 0xD5, 0x2A, 0x00, 0xE7, 0xD4, 0x20, - 0x00, 0xD4, 0xD5, 0x1C, 0x00, 0xE8, 0xE4, 0x28, 0x00, 0xEB, 0xE3, 0x24, 0x00, 0xD1, 0xCD, 0x1F, - 0x00, 0xD2, 0xC5, 0x1C, 0x00, 0xDC, 0xC2, 0x01, 0x00, 0xCF, 0xC3, 0x11, 0x00, 0xE2, 0xC1, 0x09, - 0x00, 0xE3, 0xBE, 0x00, 0x00, 0x83, 0xBE, 0x6E, 0x00, 0x0C, 0x9F, 0xF6, 0x00, 0x11, 0x9F, 0xFD, - 0x00, 0x17, 0xA1, 0xF6, 0x00, 0x19, 0xA1, 0xF4, 0x00, 0x1A, 0xA1, 0xF3, 0x00, 0x18, 0xA0, 0xF5, - 0x00, 0x15, 0x9F, 0xF8, 0x00, 0x15, 0x9E, 0xF7, 0x00, 0x14, 0x9D, 0xF7, 0x00, 0x14, 0x9C, 0xF7, - 0x00, 0x13, 0x9B, 0xF7, 0x00, 0x11, 0x99, 0xF5, 0x00, 0x10, 0x98, 0xF4, 0x00, 0x10, 0x98, 0xF4, - 0x00, 0x64, 0xD6, 0xFB, 0x00, 0x5D, 0xD4, 0xF9, 0x00, 0x55, 0xD2, 0xF8, 0x00, 0x53, 0xD0, 0xF8, - 0x00, 0x50, 0xCE, 0xF8, 0x00, 0x4E, 0xCE, 0xF9, 0x00, 0x4D, 0xCD, 0xFA, 0x00, 0x4B, 0xCC, 0xFA, - 0x00, 0x49, 0xCC, 0xFB, 0x00, 0x48, 0xCB, 0xFA, 0x00, 0x47, 0xCA, 0xFA, 0x00, 0x46, 0xC9, 0xFA, - 0x00, 0x45, 0xC8, 0xFA, 0x00, 0x43, 0xC7, 0xFA, 0x00, 0x42, 0xC6, 0xF9, 0x00, 0x41, 0xC5, 0xF9, - 0x00, 0x40, 0xC4, 0xF9, 0x00, 0x3F, 0xC3, 0xF9, 0x00, 0x3D, 0xC2, 0xF9, 0x00, 0x3C, 0xC1, 0xF9, - 0x00, 0x3B, 0xC0, 0xF8, 0x00, 0x3A, 0xC0, 0xF8, 0x00, 0x39, 0xBF, 0xF8, 0x00, 0x38, 0xBF, 0xF8, - 0x00, 0x36, 0xBF, 0xF8, 0x00, 0x34, 0xBD, 0xF7, 0x00, 0x31, 0xBC, 0xF7, 0x00, 0x33, 0xBB, 0xF8, - 0x00, 0x35, 0xBA, 0xF9, 0x00, 0x2C, 0xBC, 0xFF, 0x00, 0x60, 0xC2, 0xDE, 0x00, 0x93, 0xCB, 0x84, - 0x00, 0xC5, 0xD4, 0x2A, 0x00, 0xCA, 0xD7, 0x2E, 0x00, 0xB0, 0xBA, 0x12, 0x00, 0xB4, 0xBE, 0x16, - 0x00, 0xB8, 0xC2, 0x1A, 0x00, 0xC6, 0xC8, 0x25, 0x00, 0xC4, 0xBE, 0x20, 0x00, 0xDA, 0xC8, 0x16, - 0x00, 0xC9, 0xC8, 0x18, 0x00, 0xDB, 0xD7, 0x21, 0x00, 0xDD, 0xD6, 0x1A, 0x00, 0xB7, 0xBC, 0x0D, - 0x00, 0xC7, 0xBD, 0x03, 0x00, 0xD0, 0xBF, 0x00, 0x00, 0xAC, 0xC9, 0x50, 0x00, 0x6B, 0xB8, 0xB0, - 0x00, 0x04, 0xA3, 0xFF, 0x00, 0x12, 0xA3, 0xFA, 0x00, 0x21, 0xA4, 0xF4, 0x00, 0x1D, 0xA2, 0xF5, - 0x00, 0x19, 0xA1, 0xF5, 0x00, 0x18, 0xA0, 0xF6, 0x00, 0x17, 0xA0, 0xF6, 0x00, 0x16, 0x9F, 0xF7, - 0x00, 0x15, 0x9F, 0xF7, 0x00, 0x14, 0x9E, 0xF7, 0x00, 0x14, 0x9D, 0xF7, 0x00, 0x13, 0x9C, 0xF6, - 0x00, 0x12, 0x9B, 0xF6, 0x00, 0x10, 0x99, 0xF4, 0x00, 0x0E, 0x97, 0xF2, 0x00, 0x0E, 0x97, 0xF2, - 0x00, 0x5C, 0xD4, 0xF8, 0x00, 0x57, 0xD3, 0xF8, 0x00, 0x53, 0xD1, 0xF8, 0x00, 0x51, 0xD0, 0xF8, - 0x00, 0x4F, 0xCE, 0xF9, 0x00, 0x4D, 0xCE, 0xF9, 0x00, 0x4B, 0xCD, 0xF9, 0x00, 0x4A, 0xCC, 0xFA, - 0x00, 0x48, 0xCB, 0xFA, 0x00, 0x47, 0xCA, 0xFA, 0x00, 0x46, 0xCA, 0xFA, 0x00, 0x45, 0xC9, 0xF9, - 0x00, 0x44, 0xC8, 0xF9, 0x00, 0x43, 0xC7, 0xF9, 0x00, 0x42, 0xC6, 0xF9, 0x00, 0x41, 0xC5, 0xF9, - 0x00, 0x40, 0xC4, 0xF9, 0x00, 0x3E, 0xC3, 0xF9, 0x00, 0x3D, 0xC2, 0xF9, 0x00, 0x3C, 0xC1, 0xF9, - 0x00, 0x3A, 0xC0, 0xF9, 0x00, 0x39, 0xBF, 0xF8, 0x00, 0x38, 0xBF, 0xF8, 0x00, 0x37, 0xBF, 0xF8, - 0x00, 0x36, 0xBE, 0xF8, 0x00, 0x35, 0xBD, 0xF5, 0x00, 0x34, 0xBB, 0xF3, 0x00, 0x34, 0xB9, 0xF7, - 0x00, 0x34, 0xB7, 0xFA, 0x00, 0x22, 0xB5, 0xFF, 0x00, 0x2E, 0xB4, 0xFE, 0x00, 0x4D, 0xB9, 0xE6, - 0x00, 0x6B, 0xBF, 0xCD, 0x00, 0x27, 0xB1, 0xC5, 0x00, 0x6C, 0xBB, 0x7C, 0x00, 0x89, 0xBD, 0x48, - 0x00, 0xA6, 0xBE, 0x15, 0x00, 0xB9, 0xBF, 0x08, 0x00, 0xCB, 0xBF, 0x00, 0x00, 0xDA, 0xC4, 0x3D, - 0x00, 0xBA, 0xCA, 0x20, 0x00, 0xAD, 0xC6, 0x3E, 0x00, 0x99, 0xBB, 0x53, 0x00, 0x59, 0xAC, 0x8A, - 0x00, 0x35, 0xAA, 0xC3, 0x00, 0x03, 0xB3, 0xFF, 0x00, 0x15, 0xA6, 0xFF, 0x00, 0x20, 0xA4, 0xFF, - 0x00, 0x19, 0xA0, 0xFA, 0x00, 0x1B, 0xA2, 0xF9, 0x00, 0x1C, 0xA4, 0xF8, 0x00, 0x1B, 0xA2, 0xF7, - 0x00, 0x19, 0xA1, 0xF6, 0x00, 0x18, 0xA0, 0xF6, 0x00, 0x17, 0xA0, 0xF7, 0x00, 0x16, 0x9F, 0xF7, - 0x00, 0x15, 0x9F, 0xF7, 0x00, 0x14, 0x9E, 0xF7, 0x00, 0x14, 0x9D, 0xF6, 0x00, 0x13, 0x9C, 0xF6, - 0x00, 0x12, 0x9B, 0xF6, 0x00, 0x10, 0x9A, 0xF4, 0x00, 0x0F, 0x98, 0xF3, 0x00, 0x0F, 0x98, 0xF3, - 0x00, 0x53, 0xD2, 0xF6, 0x00, 0x52, 0xD1, 0xF7, 0x00, 0x51, 0xD0, 0xF8, 0x00, 0x4F, 0xCF, 0xF8, - 0x00, 0x4E, 0xCE, 0xF9, 0x00, 0x4C, 0xCE, 0xF9, 0x00, 0x4A, 0xCD, 0xF9, 0x00, 0x48, 0xCC, 0xF9, - 0x00, 0x46, 0xCB, 0xF9, 0x00, 0x46, 0xCA, 0xF9, 0x00, 0x45, 0xC9, 0xF9, 0x00, 0x44, 0xC8, 0xF9, - 0x00, 0x43, 0xC8, 0xF9, 0x00, 0x42, 0xC7, 0xF9, 0x00, 0x41, 0xC6, 0xF9, 0x00, 0x41, 0xC5, 0xF9, - 0x00, 0x40, 0xC4, 0xF9, 0x00, 0x3E, 0xC3, 0xF9, 0x00, 0x3D, 0xC2, 0xF9, 0x00, 0x3B, 0xC1, 0xF9, - 0x00, 0x3A, 0xC0, 0xF9, 0x00, 0x38, 0xBF, 0xF9, 0x00, 0x37, 0xBF, 0xF8, 0x00, 0x36, 0xBE, 0xF8, - 0x00, 0x35, 0xBE, 0xF8, 0x00, 0x36, 0xBC, 0xF4, 0x00, 0x37, 0xBA, 0xEF, 0x00, 0x35, 0xB7, 0xF5, - 0x00, 0x34, 0xB5, 0xFC, 0x00, 0x2B, 0xB5, 0xF8, 0x00, 0x22, 0xB6, 0xF5, 0x00, 0x25, 0xB5, 0xFA, - 0x00, 0x28, 0xB3, 0xFF, 0x00, 0x28, 0xB5, 0xFF, 0x00, 0x28, 0xB7, 0xFF, 0x00, 0x1E, 0xB4, 0xFF, - 0x00, 0x14, 0xB2, 0xFE, 0x00, 0x20, 0xAD, 0xF6, 0x00, 0x3C, 0xB9, 0xFE, 0x00, 0x5A, 0xCB, 0xF0, - 0x00, 0x41, 0xBE, 0xFA, 0x00, 0x29, 0xB5, 0xFC, 0x00, 0x11, 0xAD, 0xFE, 0x00, 0x17, 0xAC, 0xFC, - 0x00, 0x1D, 0xAB, 0xFA, 0x00, 0x1D, 0xA9, 0xFD, 0x00, 0x1D, 0xA7, 0xFF, 0x00, 0x1B, 0xA7, 0xFA, - 0x00, 0x18, 0xA8, 0xF4, 0x00, 0x18, 0xA6, 0xF8, 0x00, 0x17, 0xA4, 0xFC, 0x00, 0x19, 0xA2, 0xFA, - 0x00, 0x1A, 0xA1, 0xF7, 0x00, 0x19, 0xA0, 0xF7, 0x00, 0x17, 0xA0, 0xF7, 0x00, 0x16, 0x9F, 0xF7, - 0x00, 0x15, 0x9F, 0xF7, 0x00, 0x14, 0x9E, 0xF7, 0x00, 0x13, 0x9D, 0xF6, 0x00, 0x13, 0x9C, 0xF6, - 0x00, 0x12, 0x9B, 0xF5, 0x00, 0x11, 0x9A, 0xF4, 0x00, 0x10, 0x99, 0xF3, 0x00, 0x10, 0x99, 0xF3, - 0x00, 0x54, 0xD1, 0xF7, 0x00, 0x52, 0xD0, 0xF8, 0x00, 0x51, 0xD0, 0xF8, 0x00, 0x4F, 0xCF, 0xF9, - 0x00, 0x4E, 0xCF, 0xF9, 0x00, 0x4B, 0xCE, 0xF9, 0x00, 0x49, 0xCD, 0xF9, 0x00, 0x47, 0xCC, 0xF9, - 0x00, 0x45, 0xCA, 0xF8, 0x00, 0x44, 0xCA, 0xF8, 0x00, 0x44, 0xC9, 0xF8, 0x00, 0x43, 0xC8, 0xF9, - 0x00, 0x42, 0xC7, 0xF9, 0x00, 0x42, 0xC7, 0xF9, 0x00, 0x41, 0xC6, 0xF9, 0x00, 0x40, 0xC5, 0xF9, - 0x00, 0x40, 0xC4, 0xF9, 0x00, 0x3E, 0xC3, 0xF9, 0x00, 0x3C, 0xC2, 0xF9, 0x00, 0x3B, 0xC1, 0xF9, - 0x00, 0x39, 0xC0, 0xF9, 0x00, 0x38, 0xBF, 0xF9, 0x00, 0x36, 0xBE, 0xF8, 0x00, 0x35, 0xBE, 0xF8, - 0x00, 0x34, 0xBD, 0xF8, 0x00, 0x34, 0xBC, 0xF6, 0x00, 0x35, 0xBA, 0xF4, 0x00, 0x34, 0xB8, 0xF8, - 0x00, 0x33, 0xB6, 0xFB, 0x00, 0x2D, 0xB6, 0xF9, 0x00, 0x28, 0xB6, 0xF6, 0x00, 0x29, 0xB5, 0xF8, - 0x00, 0x29, 0xB4, 0xFA, 0x00, 0x29, 0xB4, 0xFB, 0x00, 0x29, 0xB5, 0xFC, 0x00, 0x29, 0xB2, 0xF5, - 0x00, 0x29, 0xAF, 0xEF, 0x00, 0x1A, 0xA9, 0xF5, 0x00, 0x9A, 0xCE, 0xD9, 0x00, 0x6C, 0xCF, 0xE8, - 0x00, 0x73, 0xC6, 0xE3, 0x00, 0x7F, 0xC9, 0xDD, 0x00, 0x18, 0xAD, 0xFB, 0x00, 0x1B, 0xAC, 0xF9, - 0x00, 0x1F, 0xAB, 0xF7, 0x00, 0x1E, 0xA9, 0xF9, 0x00, 0x1D, 0xA7, 0xFB, 0x00, 0x1C, 0xA7, 0xF8, - 0x00, 0x1A, 0xA6, 0xF6, 0x00, 0x19, 0xA5, 0xF8, 0x00, 0x19, 0xA3, 0xFA, 0x00, 0x1A, 0xA2, 0xF9, - 0x00, 0x1A, 0xA1, 0xF8, 0x00, 0x19, 0xA1, 0xF8, 0x00, 0x18, 0xA0, 0xF8, 0x00, 0x16, 0x9F, 0xF7, - 0x00, 0x15, 0x9F, 0xF7, 0x00, 0x14, 0x9E, 0xF7, 0x00, 0x13, 0x9D, 0xF6, 0x00, 0x12, 0x9C, 0xF6, - 0x00, 0x11, 0x9B, 0xF5, 0x00, 0x11, 0x9A, 0xF5, 0x00, 0x10, 0x9A, 0xF4, 0x00, 0x10, 0x9A, 0xF4, - 0x00, 0x54, 0xD0, 0xF9, 0x00, 0x52, 0xCF, 0xF9, 0x00, 0x51, 0xCF, 0xF9, 0x00, 0x4F, 0xCF, 0xFA, - 0x00, 0x4D, 0xCF, 0xFA, 0x00, 0x4A, 0xCE, 0xF9, 0x00, 0x48, 0xCC, 0xF9, 0x00, 0x46, 0xCB, 0xF8, - 0x00, 0x43, 0xCA, 0xF8, 0x00, 0x43, 0xC9, 0xF8, 0x00, 0x43, 0xC9, 0xF8, 0x00, 0x42, 0xC8, 0xF8, - 0x00, 0x42, 0xC7, 0xF8, 0x00, 0x41, 0xC7, 0xF8, 0x00, 0x41, 0xC6, 0xF9, 0x00, 0x40, 0xC5, 0xF9, - 0x00, 0x40, 0xC4, 0xF9, 0x00, 0x3E, 0xC3, 0xF9, 0x00, 0x3C, 0xC2, 0xF9, 0x00, 0x3A, 0xC1, 0xF9, - 0x00, 0x38, 0xBF, 0xF9, 0x00, 0x37, 0xBF, 0xF9, 0x00, 0x36, 0xBE, 0xF9, 0x00, 0x34, 0xBE, 0xF8, - 0x00, 0x33, 0xBD, 0xF8, 0x00, 0x33, 0xBC, 0xF9, 0x00, 0x32, 0xBA, 0xF9, 0x00, 0x32, 0xB9, 0xFA, - 0x00, 0x31, 0xB7, 0xFB, 0x00, 0x30, 0xB6, 0xF9, 0x00, 0x2E, 0xB6, 0xF8, 0x00, 0x2C, 0xB5, 0xF6, - 0x00, 0x2A, 0xB4, 0xF4, 0x00, 0x2A, 0xB3, 0xF5, 0x00, 0x2A, 0xB2, 0xF6, 0x00, 0x29, 0xB2, 0xF9, - 0x00, 0x28, 0xB2, 0xFB, 0x00, 0x30, 0xB2, 0xF6, 0x00, 0x11, 0xA8, 0xFD, 0x00, 0x7E, 0xD3, 0xE1, - 0x00, 0x58, 0xBB, 0xE6, 0x00, 0x15, 0xAA, 0xFB, 0x00, 0x1F, 0xAD, 0xF7, 0x00, 0x1F, 0xAB, 0xF6, - 0x00, 0x20, 0xAA, 0xF5, 0x00, 0x1F, 0xA9, 0xF6, 0x00, 0x1E, 0xA7, 0xF6, 0x00, 0x1D, 0xA6, 0xF7, - 0x00, 0x1B, 0xA5, 0xF8, 0x00, 0x1B, 0xA4, 0xF8, 0x00, 0x1B, 0xA3, 0xF8, 0x00, 0x1B, 0xA2, 0xF8, - 0x00, 0x1A, 0xA1, 0xF9, 0x00, 0x19, 0xA1, 0xF8, 0x00, 0x18, 0xA0, 0xF8, 0x00, 0x16, 0x9F, 0xF8, - 0x00, 0x15, 0x9F, 0xF7, 0x00, 0x14, 0x9E, 0xF7, 0x00, 0x13, 0x9D, 0xF6, 0x00, 0x12, 0x9C, 0xF6, - 0x00, 0x11, 0x9A, 0xF5, 0x00, 0x11, 0x9A, 0xF5, 0x00, 0x11, 0x9A, 0xF5, 0x00, 0x11, 0x9A, 0xF5, - 0x00, 0x54, 0xD0, 0xF9, 0x00, 0x52, 0xCF, 0xF9, 0x00, 0x51, 0xCF, 0xF9, 0x00, 0x4F, 0xCF, 0xFA, - 0x00, 0x4D, 0xCF, 0xFA, 0x00, 0x4A, 0xCE, 0xF9, 0x00, 0x48, 0xCC, 0xF9, 0x00, 0x46, 0xCB, 0xF8, - 0x00, 0x43, 0xCA, 0xF8, 0x00, 0x43, 0xC9, 0xF8, 0x00, 0x43, 0xC9, 0xF8, 0x00, 0x42, 0xC8, 0xF8, - 0x00, 0x42, 0xC7, 0xF8, 0x00, 0x41, 0xC7, 0xF8, 0x00, 0x41, 0xC6, 0xF9, 0x00, 0x40, 0xC5, 0xF9, - 0x00, 0x40, 0xC4, 0xF9, 0x00, 0x3E, 0xC3, 0xF9, 0x00, 0x3C, 0xC2, 0xF9, 0x00, 0x3A, 0xC1, 0xF9, - 0x00, 0x38, 0xBF, 0xF9, 0x00, 0x37, 0xBF, 0xF9, 0x00, 0x36, 0xBE, 0xF9, 0x00, 0x34, 0xBE, 0xF8, - 0x00, 0x33, 0xBD, 0xF8, 0x00, 0x33, 0xBC, 0xF9, 0x00, 0x32, 0xBA, 0xF9, 0x00, 0x32, 0xB9, 0xFA, - 0x00, 0x31, 0xB7, 0xFB, 0x00, 0x30, 0xB6, 0xF9, 0x00, 0x2E, 0xB6, 0xF8, 0x00, 0x2C, 0xB5, 0xF6, - 0x00, 0x2A, 0xB4, 0xF4, 0x00, 0x2A, 0xB3, 0xF5, 0x00, 0x2A, 0xB2, 0xF6, 0x00, 0x2A, 0xB2, 0xF8, - 0x00, 0x29, 0xB1, 0xFA, 0x00, 0x2D, 0xB5, 0xF4, 0x00, 0x1D, 0xB4, 0xF5, 0x00, 0x23, 0x9B, 0xFF, - 0x00, 0x1F, 0xB5, 0xF2, 0x00, 0x0B, 0xAB, 0xFB, 0x00, 0x1E, 0xAC, 0xF6, 0x00, 0x1F, 0xAB, 0xF6, - 0x00, 0x20, 0xAA, 0xF5, 0x00, 0x1F, 0xA9, 0xF6, 0x00, 0x1E, 0xA7, 0xF6, 0x00, 0x1D, 0xA6, 0xF7, - 0x00, 0x1B, 0xA5, 0xF8, 0x00, 0x1B, 0xA4, 0xF8, 0x00, 0x1B, 0xA3, 0xF8, 0x00, 0x1B, 0xA2, 0xF8, - 0x00, 0x1A, 0xA1, 0xF9, 0x00, 0x19, 0xA1, 0xF8, 0x00, 0x18, 0xA0, 0xF8, 0x00, 0x16, 0x9F, 0xF8, - 0x00, 0x15, 0x9F, 0xF7, 0x00, 0x14, 0x9E, 0xF7, 0x00, 0x13, 0x9D, 0xF6, 0x00, 0x12, 0x9C, 0xF6, - 0x00, 0x11, 0x9A, 0xF5, 0x00, 0x11, 0x9A, 0xF5, 0x00, 0x11, 0x9A, 0xF5, 0x00, 0x11, 0x9A, 0xF5, - 0x00, 0x54, 0xD0, 0xF9, 0x00, 0x52, 0xCF, 0xF9, 0x00, 0x51, 0xCF, 0xF9, 0x00, 0x4F, 0xCF, 0xFA, - 0x00, 0x4D, 0xCF, 0xFA, 0x00, 0x4A, 0xCE, 0xF9, 0x00, 0x48, 0xCC, 0xF9, 0x00, 0x46, 0xCB, 0xF8, - 0x00, 0x43, 0xCA, 0xF8, 0x00, 0x43, 0xC9, 0xF8, 0x00, 0x43, 0xC9, 0xF8, 0x00, 0x42, 0xC8, 0xF8, - 0x00, 0x42, 0xC7, 0xF8, 0x00, 0x41, 0xC7, 0xF8, 0x00, 0x41, 0xC6, 0xF9, 0x00, 0x40, 0xC5, 0xF9, - 0x00, 0x40, 0xC4, 0xF9, 0x00, 0x3E, 0xC3, 0xF9, 0x00, 0x3C, 0xC2, 0xF9, 0x00, 0x3A, 0xC1, 0xF9, - 0x00, 0x38, 0xBF, 0xF9, 0x00, 0x37, 0xBF, 0xF9, 0x00, 0x36, 0xBE, 0xF9, 0x00, 0x34, 0xBE, 0xF8, - 0x00, 0x33, 0xBD, 0xF8, 0x00, 0x33, 0xBC, 0xF9, 0x00, 0x32, 0xBA, 0xF9, 0x00, 0x32, 0xB9, 0xFA, - 0x00, 0x31, 0xB7, 0xFB, 0x00, 0x30, 0xB6, 0xF9, 0x00, 0x2E, 0xB6, 0xF8, 0x00, 0x2C, 0xB5, 0xF6, - 0x00, 0x2A, 0xB4, 0xF4, 0x00, 0x2A, 0xB3, 0xF5, 0x00, 0x2A, 0xB2, 0xF6, 0x00, 0x2A, 0xB2, 0xF7, - 0x00, 0x2A, 0xB1, 0xF8, 0x00, 0x21, 0xAE, 0xF9, 0x00, 0x18, 0xAC, 0xFA, 0x00, 0x1E, 0xAD, 0xF6, - 0x00, 0x23, 0xAE, 0xF3, 0x00, 0x20, 0xAC, 0xF4, 0x00, 0x1D, 0xAB, 0xF5, 0x00, 0x1E, 0xAA, 0xF5, - 0x00, 0x20, 0xAA, 0xF5, 0x00, 0x1F, 0xA9, 0xF6, 0x00, 0x1E, 0xA7, 0xF6, 0x00, 0x1D, 0xA6, 0xF7, - 0x00, 0x1B, 0xA5, 0xF8, 0x00, 0x1B, 0xA4, 0xF8, 0x00, 0x1B, 0xA3, 0xF8, 0x00, 0x1B, 0xA2, 0xF8, - 0x00, 0x1A, 0xA1, 0xF9, 0x00, 0x19, 0xA1, 0xF8, 0x00, 0x18, 0xA0, 0xF8, 0x00, 0x16, 0x9F, 0xF8, - 0x00, 0x15, 0x9F, 0xF7, 0x00, 0x14, 0x9E, 0xF7, 0x00, 0x13, 0x9D, 0xF6, 0x00, 0x12, 0x9C, 0xF6, - 0x00, 0x11, 0x9A, 0xF5, 0x00, 0x11, 0x9A, 0xF5, 0x00, 0x11, 0x9A, 0xF5, 0x00, 0x11, 0x9A, 0xF5, - 0x00, 0x54, 0xD0, 0xF9, 0x00, 0x52, 0xCF, 0xF9, 0x00, 0x51, 0xCF, 0xF9, 0x00, 0x4F, 0xCF, 0xFA, - 0x00, 0x4D, 0xCF, 0xFA, 0x00, 0x4A, 0xCE, 0xF9, 0x00, 0x48, 0xCC, 0xF9, 0x00, 0x46, 0xCB, 0xF8, - 0x00, 0x43, 0xCA, 0xF8, 0x00, 0x43, 0xC9, 0xF8, 0x00, 0x43, 0xC9, 0xF8, 0x00, 0x42, 0xC8, 0xF8, - 0x00, 0x42, 0xC7, 0xF8, 0x00, 0x41, 0xC7, 0xF8, 0x00, 0x41, 0xC6, 0xF9, 0x00, 0x40, 0xC5, 0xF9, - 0x00, 0x40, 0xC4, 0xF9, 0x00, 0x3E, 0xC3, 0xF9, 0x00, 0x3C, 0xC2, 0xF9, 0x00, 0x3A, 0xC1, 0xF9, - 0x00, 0x38, 0xBF, 0xF9, 0x00, 0x37, 0xBF, 0xF9, 0x00, 0x36, 0xBE, 0xF9, 0x00, 0x34, 0xBE, 0xF8, - 0x00, 0x33, 0xBD, 0xF8, 0x00, 0x33, 0xBC, 0xF9, 0x00, 0x32, 0xBA, 0xF9, 0x00, 0x32, 0xB9, 0xFA, - 0x00, 0x31, 0xB7, 0xFB, 0x00, 0x30, 0xB6, 0xF9, 0x00, 0x2E, 0xB6, 0xF8, 0x00, 0x2C, 0xB5, 0xF6, - 0x00, 0x2A, 0xB4, 0xF4, 0x00, 0x2A, 0xB3, 0xF5, 0x00, 0x2A, 0xB2, 0xF6, 0x00, 0x2A, 0xB2, 0xF7, - 0x00, 0x2A, 0xB1, 0xF8, 0x00, 0x21, 0xAE, 0xF9, 0x00, 0x18, 0xAC, 0xFA, 0x00, 0x1E, 0xAD, 0xF6, - 0x00, 0x23, 0xAE, 0xF3, 0x00, 0x20, 0xAC, 0xF4, 0x00, 0x1D, 0xAB, 0xF5, 0x00, 0x1E, 0xAA, 0xF5, - 0x00, 0x20, 0xAA, 0xF5, 0x00, 0x1F, 0xA9, 0xF6, 0x00, 0x1E, 0xA7, 0xF6, 0x00, 0x1D, 0xA6, 0xF7, - 0x00, 0x1B, 0xA5, 0xF8, 0x00, 0x1B, 0xA4, 0xF8, 0x00, 0x1B, 0xA3, 0xF8, 0x00, 0x1B, 0xA2, 0xF8, - 0x00, 0x1A, 0xA1, 0xF9, 0x00, 0x19, 0xA1, 0xF8, 0x00, 0x18, 0xA0, 0xF8, 0x00, 0x16, 0x9F, 0xF8, - 0x00, 0x15, 0x9F, 0xF7, 0x00, 0x14, 0x9E, 0xF7, 0x00, 0x13, 0x9D, 0xF6, 0x00, 0x12, 0x9C, 0xF6, - 0x00, 0x11, 0x9A, 0xF5, 0x00, 0x11, 0x9A, 0xF5, 0x00, 0x11, 0x9A, 0xF5, 0x00, 0x11, 0x9A, 0xF5, + 0x00, 0x22, 0x9B, 0xDE, 0x00, 0x23, 0x9D, 0xE0, 0x00, 0x25, 0x9E, 0xE1, 0x00, 0x2B, 0xA5, 0xE8, 0x00, 0x22, 0x9B, + 0xDF, 0x00, 0x22, 0x9C, 0xDF, 0x00, 0x22, 0x9C, 0xE0, 0x00, 0x22, 0x9C, 0xDF, 0x00, 0x21, 0x9B, 0xDF, 0x00, 0x22, + 0x9B, 0xDF, 0x00, 0x23, 0x9B, 0xDF, 0x00, 0x23, 0x9B, 0xDF, 0x00, 0x24, 0x9C, 0xDF, 0x00, 0x21, 0x9B, 0xE2, 0x00, + 0x1D, 0x9B, 0xE5, 0x00, 0x1F, 0x9A, 0xE1, 0x00, 0x21, 0x98, 0xDD, 0x00, 0x21, 0x99, 0xDE, 0x00, 0x20, 0x99, 0xDE, + 0x00, 0x1F, 0x9A, 0xDF, 0x00, 0x1F, 0x9A, 0xE0, 0x00, 0x1E, 0x99, 0xE0, 0x00, 0x1D, 0x99, 0xDF, 0x00, 0x1C, 0x98, + 0xDF, 0x00, 0x1B, 0x97, 0xDF, 0x00, 0x1E, 0x95, 0xDC, 0x00, 0x21, 0x93, 0xD8, 0x00, 0x1F, 0x93, 0xDC, 0x00, 0x1C, + 0x93, 0xE0, 0x00, 0x1A, 0x94, 0xDC, 0x00, 0x18, 0x95, 0xD8, 0x00, 0x1C, 0x91, 0xDB, 0x00, 0x1F, 0x8E, 0xDE, 0x00, + 0x1A, 0x90, 0xDE, 0x00, 0x16, 0x93, 0xDE, 0x00, 0x17, 0x92, 0xDF, 0x00, 0x18, 0x91, 0xDF, 0x00, 0x17, 0x90, 0xDF, + 0x00, 0x17, 0x8F, 0xDE, 0x00, 0x16, 0x8E, 0xDE, 0x00, 0x15, 0x8C, 0xDE, 0x00, 0x14, 0x8C, 0xDD, 0x00, 0x13, 0x8C, + 0xDB, 0x00, 0x12, 0x8C, 0xDA, 0x00, 0x11, 0x8C, 0xD9, 0x00, 0x11, 0x8B, 0xD9, 0x00, 0x11, 0x89, 0xD9, 0x00, 0x11, + 0x88, 0xDA, 0x00, 0x12, 0x87, 0xDA, 0x00, 0x11, 0x86, 0xDA, 0x00, 0x10, 0x86, 0xDA, 0x00, 0x10, 0x85, 0xD9, 0x00, + 0x0F, 0x84, 0xD9, 0x00, 0x0E, 0x83, 0xD9, 0x00, 0x0E, 0x83, 0xD8, 0x00, 0x0D, 0x82, 0xD8, 0x00, 0x0C, 0x81, 0xD8, + 0x00, 0x0C, 0x80, 0xD7, 0x00, 0x0D, 0x7F, 0xD7, 0x00, 0x0D, 0x7F, 0xD6, 0x00, 0x0D, 0x7E, 0xD6, 0x00, 0x0D, 0x7E, + 0xD6, 0x00, 0x0D, 0x7E, 0xD6, 0x00, 0x0D, 0x7E, 0xD6, 0x00, 0x24, 0x9F, 0xE0, 0x00, 0x27, 0xA0, 0xE1, 0x00, 0x29, + 0xA2, 0xE2, 0x00, 0x2A, 0xA4, 0xE5, 0x00, 0x24, 0x9E, 0xE0, 0x00, 0x24, 0x9E, 0xE1, 0x00, 0x24, 0x9E, 0xE1, 0x00, + 0x23, 0x9E, 0xE1, 0x00, 0x23, 0x9D, 0xE1, 0x00, 0x23, 0x9D, 0xE1, 0x00, 0x24, 0x9D, 0xE1, 0x00, 0x24, 0x9D, 0xE1, + 0x00, 0x25, 0x9D, 0xE1, 0x00, 0x23, 0x9D, 0xE1, 0x00, 0x22, 0x9C, 0xE2, 0x00, 0x22, 0x9C, 0xE0, 0x00, 0x22, 0x9B, + 0xDF, 0x00, 0x21, 0x9B, 0xE0, 0x00, 0x20, 0x9B, 0xE1, 0x00, 0x20, 0x9B, 0xE1, 0x00, 0x1F, 0x9B, 0xE1, 0x00, 0x20, + 0x9A, 0xDF, 0x00, 0x20, 0x99, 0xDE, 0x00, 0x1E, 0x98, 0xDE, 0x00, 0x1D, 0x97, 0xDF, 0x00, 0x1D, 0x97, 0xDF, 0x00, + 0x1E, 0x96, 0xDF, 0x00, 0x1D, 0x95, 0xDF, 0x00, 0x1C, 0x94, 0xDE, 0x00, 0x1C, 0x94, 0xDF, 0x00, 0x1B, 0x93, 0xE0, + 0x00, 0x1C, 0x93, 0xE0, 0x00, 0x1D, 0x92, 0xE0, 0x00, 0x1B, 0x93, 0xDE, 0x00, 0x19, 0x94, 0xDC, 0x00, 0x19, 0x93, + 0xDE, 0x00, 0x19, 0x92, 0xE0, 0x00, 0x19, 0x91, 0xDF, 0x00, 0x18, 0x90, 0xDF, 0x00, 0x17, 0x8F, 0xDF, 0x00, 0x17, + 0x8E, 0xDF, 0x00, 0x16, 0x8E, 0xDE, 0x00, 0x15, 0x8D, 0xDD, 0x00, 0x13, 0x8D, 0xDC, 0x00, 0x12, 0x8D, 0xDB, 0x00, + 0x12, 0x8C, 0xDB, 0x00, 0x12, 0x8B, 0xDB, 0x00, 0x12, 0x89, 0xDB, 0x00, 0x12, 0x88, 0xDB, 0x00, 0x11, 0x87, 0xDB, + 0x00, 0x11, 0x87, 0xDB, 0x00, 0x10, 0x86, 0xDB, 0x00, 0x0F, 0x85, 0xDB, 0x00, 0x0E, 0x84, 0xDA, 0x00, 0x0D, 0x83, + 0xD9, 0x00, 0x0D, 0x83, 0xD9, 0x00, 0x0D, 0x83, 0xD9, 0x00, 0x0D, 0x82, 0xD8, 0x00, 0x0D, 0x81, 0xD8, 0x00, 0x0D, + 0x80, 0xD7, 0x00, 0x0D, 0x7F, 0xD7, 0x00, 0x0D, 0x7F, 0xD7, 0x00, 0x0D, 0x7F, 0xD7, 0x00, 0x0D, 0x7F, 0xD7, 0x00, + 0x27, 0xA2, 0xE2, 0x00, 0x2A, 0xA4, 0xE3, 0x00, 0x2D, 0xA5, 0xE3, 0x00, 0x29, 0xA3, 0xE3, 0x00, 0x26, 0xA1, 0xE2, + 0x00, 0x25, 0xA1, 0xE2, 0x00, 0x25, 0xA1, 0xE2, 0x00, 0x25, 0xA0, 0xE2, 0x00, 0x24, 0xA0, 0xE2, 0x00, 0x25, 0x9F, + 0xE2, 0x00, 0x25, 0x9F, 0xE3, 0x00, 0x25, 0x9E, 0xE3, 0x00, 0x26, 0x9E, 0xE3, 0x00, 0x26, 0x9E, 0xE1, 0x00, 0x27, + 0x9D, 0xDE, 0x00, 0x24, 0x9D, 0xDF, 0x00, 0x22, 0x9E, 0xE1, 0x00, 0x21, 0x9D, 0xE2, 0x00, 0x20, 0x9D, 0xE3, 0x00, + 0x20, 0x9D, 0xE3, 0x00, 0x20, 0x9C, 0xE3, 0x00, 0x22, 0x9B, 0xDF, 0x00, 0x24, 0x99, 0xDC, 0x00, 0x21, 0x98, 0xDE, + 0x00, 0x1F, 0x98, 0xE0, 0x00, 0x1D, 0x99, 0xE3, 0x00, 0x1B, 0x9A, 0xE7, 0x00, 0x1B, 0x98, 0xE1, 0x00, 0x1C, 0x96, + 0xDC, 0x00, 0x1D, 0x94, 0xE2, 0x00, 0x1F, 0x92, 0xE9, 0x00, 0x1D, 0x94, 0xE5, 0x00, 0x1A, 0x96, 0xE2, 0x00, 0x1B, + 0x95, 0xDE, 0x00, 0x1D, 0x95, 0xDA, 0x00, 0x1C, 0x94, 0xDD, 0x00, 0x1A, 0x93, 0xE0, 0x00, 0x1A, 0x92, 0xE0, 0x00, + 0x19, 0x91, 0xE0, 0x00, 0x19, 0x91, 0xDF, 0x00, 0x18, 0x90, 0xDF, 0x00, 0x17, 0x8F, 0xDE, 0x00, 0x16, 0x8F, 0xDE, + 0x00, 0x15, 0x8E, 0xDD, 0x00, 0x14, 0x8E, 0xDD, 0x00, 0x14, 0x8D, 0xDC, 0x00, 0x13, 0x8C, 0xDC, 0x00, 0x12, 0x8B, + 0xDC, 0x00, 0x12, 0x8A, 0xDB, 0x00, 0x11, 0x89, 0xDC, 0x00, 0x11, 0x88, 0xDC, 0x00, 0x10, 0x87, 0xDC, 0x00, 0x10, + 0x86, 0xDC, 0x00, 0x0E, 0x84, 0xDB, 0x00, 0x0D, 0x83, 0xD9, 0x00, 0x0E, 0x83, 0xD9, 0x00, 0x0E, 0x84, 0xDA, 0x00, + 0x0E, 0x83, 0xD9, 0x00, 0x0E, 0x82, 0xD9, 0x00, 0x0D, 0x80, 0xD8, 0x00, 0x0D, 0x7F, 0xD8, 0x00, 0x0D, 0x7F, 0xD8, + 0x00, 0x0D, 0x7F, 0xD8, 0x00, 0x0D, 0x7F, 0xD8, 0x00, 0x29, 0xA6, 0xE4, 0x00, 0x2D, 0xA7, 0xE3, 0x00, 0x30, 0xA8, + 0xE3, 0x00, 0x2C, 0xA6, 0xE3, 0x00, 0x27, 0xA3, 0xE3, 0x00, 0x27, 0xA3, 0xE3, 0x00, 0x26, 0xA3, 0xE3, 0x00, 0x26, + 0xA2, 0xE4, 0x00, 0x26, 0xA2, 0xE4, 0x00, 0x26, 0xA1, 0xE4, 0x00, 0x26, 0xA1, 0xE4, 0x00, 0x26, 0xA0, 0xE5, 0x00, + 0x26, 0x9F, 0xE5, 0x00, 0x25, 0xA0, 0xE4, 0x00, 0x24, 0xA0, 0xE4, 0x00, 0x24, 0x9F, 0xE3, 0x00, 0x24, 0x9E, 0xE3, + 0x00, 0x23, 0x9E, 0xE4, 0x00, 0x21, 0x9F, 0xE6, 0x00, 0x21, 0x9F, 0xE5, 0x00, 0x22, 0x9E, 0xE3, 0x00, 0x13, 0xA4, + 0xE5, 0x00, 0x1A, 0x9F, 0xE7, 0x00, 0x15, 0x9F, 0xE7, 0x00, 0x10, 0xA0, 0xE7, 0x00, 0x11, 0x9F, 0xEF, 0x00, 0x12, + 0x9E, 0xF7, 0x00, 0x1A, 0x99, 0xEC, 0x00, 0x17, 0x9A, 0xE1, 0x00, 0x14, 0x9C, 0xE3, 0x00, 0x1C, 0x98, 0xE5, 0x00, + 0x1C, 0x97, 0xE6, 0x00, 0x1B, 0x96, 0xE6, 0x00, 0x1B, 0x98, 0xDB, 0x00, 0x1C, 0x96, 0xDF, 0x00, 0x1C, 0x95, 0xE0, + 0x00, 0x1B, 0x94, 0xE1, 0x00, 0x1B, 0x93, 0xE1, 0x00, 0x1A, 0x93, 0xE0, 0x00, 0x1A, 0x92, 0xE0, 0x00, 0x19, 0x92, + 0xE0, 0x00, 0x18, 0x91, 0xDF, 0x00, 0x18, 0x90, 0xDF, 0x00, 0x17, 0x8F, 0xDF, 0x00, 0x16, 0x8F, 0xDF, 0x00, 0x15, + 0x8E, 0xDE, 0x00, 0x14, 0x8D, 0xDD, 0x00, 0x13, 0x8C, 0xDD, 0x00, 0x12, 0x8B, 0xDC, 0x00, 0x12, 0x8A, 0xDC, 0x00, + 0x11, 0x89, 0xDD, 0x00, 0x11, 0x87, 0xDD, 0x00, 0x10, 0x86, 0xDE, 0x00, 0x0F, 0x85, 0xDC, 0x00, 0x0D, 0x83, 0xD9, + 0x00, 0x0E, 0x84, 0xDA, 0x00, 0x0F, 0x85, 0xDB, 0x00, 0x0F, 0x84, 0xDA, 0x00, 0x0E, 0x83, 0xDA, 0x00, 0x0E, 0x81, + 0xDA, 0x00, 0x0D, 0x80, 0xD9, 0x00, 0x0D, 0x80, 0xD9, 0x00, 0x0D, 0x80, 0xD9, 0x00, 0x0D, 0x80, 0xD9, 0x00, 0x2C, + 0xAA, 0xE7, 0x00, 0x30, 0xAA, 0xE4, 0x00, 0x33, 0xAA, 0xE2, 0x00, 0x2E, 0xA8, 0xE3, 0x00, 0x28, 0xA5, 0xE4, 0x00, + 0x28, 0xA5, 0xE5, 0x00, 0x28, 0xA5, 0xE5, 0x00, 0x28, 0xA4, 0xE5, 0x00, 0x27, 0xA4, 0xE5, 0x00, 0x27, 0xA3, 0xE6, + 0x00, 0x27, 0xA2, 0xE6, 0x00, 0x27, 0xA1, 0xE7, 0x00, 0x27, 0xA1, 0xE7, 0x00, 0x25, 0xA2, 0xE8, 0x00, 0x22, 0xA3, + 0xE9, 0x00, 0x24, 0xA0, 0xE7, 0x00, 0x27, 0x9E, 0xE6, 0x00, 0x25, 0x9F, 0xE7, 0x00, 0x22, 0xA0, 0xE8, 0x00, 0x18, + 0xA3, 0xF4, 0x00, 0x0D, 0xA7, 0xFF, 0x00, 0x1A, 0xA5, 0xDD, 0x00, 0x54, 0x8D, 0xBA, 0x00, 0x6E, 0x83, 0x9C, 0x00, + 0x88, 0x79, 0x7D, 0x00, 0x8C, 0x79, 0x7B, 0x00, 0x91, 0x79, 0x79, 0x00, 0x7E, 0x7A, 0x94, 0x00, 0x55, 0x87, 0xAF, + 0x00, 0x21, 0x9B, 0xD6, 0x00, 0x04, 0xA3, 0xFD, 0x00, 0x0F, 0x9D, 0xF4, 0x00, 0x1B, 0x96, 0xEB, 0x00, 0x1B, 0x9A, + 0xD9, 0x00, 0x1B, 0x98, 0xE4, 0x00, 0x1C, 0x96, 0xE3, 0x00, 0x1C, 0x95, 0xE2, 0x00, 0x1C, 0x94, 0xE2, 0x00, 0x1B, + 0x94, 0xE1, 0x00, 0x1B, 0x94, 0xE1, 0x00, 0x1B, 0x93, 0xE0, 0x00, 0x1A, 0x92, 0xE0, 0x00, 0x19, 0x91, 0xE0, 0x00, + 0x18, 0x90, 0xE1, 0x00, 0x18, 0x8F, 0xE1, 0x00, 0x16, 0x8F, 0xE0, 0x00, 0x15, 0x8E, 0xDF, 0x00, 0x14, 0x8D, 0xDE, + 0x00, 0x12, 0x8C, 0xDC, 0x00, 0x12, 0x8B, 0xDD, 0x00, 0x12, 0x8A, 0xDE, 0x00, 0x11, 0x88, 0xDF, 0x00, 0x11, 0x87, + 0xE0, 0x00, 0x0F, 0x85, 0xDD, 0x00, 0x0D, 0x83, 0xDA, 0x00, 0x0E, 0x85, 0xDB, 0x00, 0x10, 0x87, 0xDC, 0x00, 0x0F, + 0x85, 0xDC, 0x00, 0x0F, 0x84, 0xDB, 0x00, 0x0E, 0x82, 0xDB, 0x00, 0x0D, 0x81, 0xDA, 0x00, 0x0D, 0x81, 0xDA, 0x00, + 0x0D, 0x81, 0xDA, 0x00, 0x0D, 0x81, 0xDA, 0x00, 0x30, 0xAA, 0xE4, 0x00, 0x35, 0xAF, 0xE8, 0x00, 0x33, 0xAB, 0xE3, + 0x00, 0x2F, 0xA9, 0xE5, 0x00, 0x2A, 0xA8, 0xE6, 0x00, 0x35, 0xAD, 0xE8, 0x00, 0x25, 0xA6, 0xE7, 0x00, 0x28, 0xA7, + 0xE7, 0x00, 0x2B, 0xA8, 0xE7, 0x00, 0x2D, 0xA6, 0xE5, 0x00, 0x2E, 0xA4, 0xE4, 0x00, 0x2B, 0xA4, 0xE6, 0x00, 0x29, + 0xA4, 0xE8, 0x00, 0x2A, 0xA4, 0xE5, 0x00, 0x2C, 0xA5, 0xE1, 0x00, 0x10, 0xA9, 0xEF, 0x00, 0x12, 0xAD, 0xF6, 0x00, + 0x22, 0xA2, 0xF8, 0x00, 0x60, 0x91, 0xA5, 0x00, 0xA5, 0x75, 0x5C, 0x00, 0xEB, 0x59, 0x14, 0x00, 0xFF, 0x48, 0x0C, + 0x00, 0xFA, 0x55, 0x03, 0x00, 0xFF, 0x59, 0x0F, 0x00, 0xFF, 0x5D, 0x1A, 0x00, 0xFF, 0x60, 0x16, 0x00, 0xF9, 0x64, + 0x11, 0x00, 0xFF, 0x54, 0x0F, 0x00, 0xFF, 0x4A, 0x0C, 0x00, 0xFA, 0x49, 0x17, 0x00, 0xF5, 0x47, 0x23, 0x00, 0x8D, + 0x72, 0x7E, 0x00, 0x26, 0x9D, 0xD9, 0x00, 0x05, 0xA1, 0xFF, 0x00, 0x1D, 0x96, 0xE1, 0x00, 0x17, 0x98, 0xE9, 0x00, + 0x1C, 0x97, 0xE3, 0x00, 0x1A, 0x97, 0xE3, 0x00, 0x18, 0x97, 0xE4, 0x00, 0x19, 0x96, 0xE3, 0x00, 0x1B, 0x94, 0xE2, + 0x00, 0x1A, 0x93, 0xE1, 0x00, 0x19, 0x93, 0xE0, 0x00, 0x18, 0x92, 0xE1, 0x00, 0x17, 0x91, 0xE1, 0x00, 0x16, 0x90, + 0xE0, 0x00, 0x15, 0x8F, 0xDF, 0x00, 0x14, 0x8E, 0xDE, 0x00, 0x13, 0x8D, 0xDD, 0x00, 0x13, 0x8D, 0xDE, 0x00, 0x13, + 0x8C, 0xDF, 0x00, 0x12, 0x8A, 0xDF, 0x00, 0x10, 0x89, 0xE0, 0x00, 0x0F, 0x87, 0xDD, 0x00, 0x0E, 0x84, 0xDB, 0x00, + 0x13, 0x8A, 0xDF, 0x00, 0x0F, 0x87, 0xDB, 0x00, 0x0F, 0x86, 0xDC, 0x00, 0x0F, 0x85, 0xDC, 0x00, 0x0E, 0x84, 0xDB, + 0x00, 0x0D, 0x82, 0xDB, 0x00, 0x0D, 0x82, 0xDB, 0x00, 0x0D, 0x82, 0xDB, 0x00, 0x0D, 0x82, 0xDB, 0x00, 0x33, 0xAB, + 0xE2, 0x00, 0x3B, 0xB3, 0xEB, 0x00, 0x33, 0xAC, 0xE5, 0x00, 0x30, 0xAB, 0xE6, 0x00, 0x2D, 0xAA, 0xE7, 0x00, 0x43, + 0xB6, 0xEA, 0x00, 0x23, 0xA7, 0xEA, 0x00, 0x29, 0xA9, 0xE9, 0x00, 0x2F, 0xAB, 0xE9, 0x00, 0x32, 0xA9, 0xE5, 0x00, + 0x35, 0xA7, 0xE2, 0x00, 0x30, 0xA7, 0xE6, 0x00, 0x2A, 0xA8, 0xEA, 0x00, 0x25, 0xAA, 0xF0, 0x00, 0x1F, 0xAD, 0xF6, + 0x00, 0x4D, 0x8A, 0xA7, 0x00, 0xB7, 0x66, 0x4C, 0x00, 0xFF, 0x54, 0x0F, 0x00, 0xF7, 0x64, 0x0C, 0x00, 0xF8, 0x63, + 0x13, 0x00, 0xF9, 0x61, 0x1A, 0x00, 0xEF, 0x67, 0x1E, 0x00, 0xFC, 0x61, 0x22, 0x00, 0xFA, 0x68, 0x25, 0x00, 0xF9, + 0x6F, 0x28, 0x00, 0xF5, 0x70, 0x22, 0x00, 0xF2, 0x72, 0x1B, 0x00, 0xF2, 0x6B, 0x1F, 0x00, 0xF1, 0x64, 0x24, 0x00, + 0xFF, 0x55, 0x21, 0x00, 0xFF, 0x53, 0x1E, 0x00, 0xFF, 0x4B, 0x16, 0x00, 0xFF, 0x43, 0x0E, 0x00, 0xB1, 0x61, 0x5A, + 0x00, 0x1E, 0x95, 0xDF, 0x00, 0x12, 0x9A, 0xF0, 0x00, 0x1B, 0x9A, 0xE5, 0x00, 0x18, 0x9A, 0xE5, 0x00, 0x14, 0x9A, + 0xE6, 0x00, 0x17, 0x98, 0xE5, 0x00, 0x1B, 0x95, 0xE4, 0x00, 0x1A, 0x95, 0xE2, 0x00, 0x19, 0x94, 0xE0, 0x00, 0x18, + 0x93, 0xE1, 0x00, 0x17, 0x92, 0xE2, 0x00, 0x16, 0x91, 0xE1, 0x00, 0x16, 0x90, 0xE0, 0x00, 0x15, 0x8F, 0xDF, 0x00, + 0x14, 0x8F, 0xDE, 0x00, 0x14, 0x8E, 0xDF, 0x00, 0x14, 0x8E, 0xE1, 0x00, 0x12, 0x8C, 0xE0, 0x00, 0x10, 0x8A, 0xE0, + 0x00, 0x10, 0x88, 0xDE, 0x00, 0x10, 0x86, 0xDC, 0x00, 0x17, 0x8E, 0xE3, 0x00, 0x0D, 0x87, 0xDB, 0x00, 0x0E, 0x86, + 0xDB, 0x00, 0x0F, 0x86, 0xDC, 0x00, 0x0E, 0x85, 0xDC, 0x00, 0x0E, 0x83, 0xDB, 0x00, 0x0E, 0x83, 0xDB, 0x00, 0x0E, + 0x83, 0xDB, 0x00, 0x0E, 0x83, 0xDB, 0x00, 0x36, 0xB0, 0xEA, 0x00, 0x36, 0xB3, 0xEF, 0x00, 0x2E, 0xAE, 0xED, 0x00, + 0x2C, 0xAD, 0xEC, 0x00, 0x2A, 0xAD, 0xEB, 0x00, 0x40, 0xB3, 0xEF, 0x00, 0x28, 0xAA, 0xE9, 0x00, 0x2B, 0xAB, 0xE7, + 0x00, 0x2F, 0xAB, 0xE6, 0x00, 0x30, 0xAA, 0xE6, 0x00, 0x31, 0xAA, 0xE5, 0x00, 0x2E, 0xA9, 0xE6, 0x00, 0x2B, 0xA9, + 0xE7, 0x00, 0x24, 0xA7, 0xEB, 0x00, 0x93, 0x6A, 0x5F, 0x00, 0xFF, 0x3D, 0x05, 0x00, 0xF9, 0x56, 0x17, 0x00, 0xE2, + 0x72, 0x12, 0x00, 0xF8, 0x72, 0x29, 0x00, 0xF7, 0x74, 0x27, 0x00, 0xF6, 0x76, 0x25, 0x00, 0xF1, 0x76, 0x28, 0x00, + 0xF8, 0x70, 0x2A, 0x00, 0xF8, 0x77, 0x2D, 0x00, 0xF9, 0x7D, 0x30, 0x00, 0xF7, 0x7F, 0x2D, 0x00, 0xF5, 0x81, 0x2A, + 0x00, 0xF5, 0x7B, 0x2B, 0x00, 0xF5, 0x75, 0x2C, 0x00, 0xFD, 0x6A, 0x2B, 0x00, 0xFA, 0x64, 0x2A, 0x00, 0xF5, 0x5D, + 0x2C, 0x00, 0xF0, 0x57, 0x2E, 0x00, 0xFF, 0x48, 0x10, 0x00, 0xFF, 0x45, 0x0E, 0x00, 0x80, 0x76, 0x7F, 0x00, 0x02, + 0xA7, 0xF0, 0x00, 0x24, 0x95, 0xEA, 0x00, 0x19, 0x9A, 0xE3, 0x00, 0x1B, 0x98, 0xE4, 0x00, 0x1D, 0x95, 0xE4, 0x00, + 0x1B, 0x95, 0xE2, 0x00, 0x19, 0x96, 0xDF, 0x00, 0x18, 0x94, 0xE1, 0x00, 0x17, 0x93, 0xE2, 0x00, 0x16, 0x92, 0xE2, + 0x00, 0x16, 0x92, 0xE1, 0x00, 0x15, 0x91, 0xE0, 0x00, 0x15, 0x90, 0xDF, 0x00, 0x15, 0x90, 0xE0, 0x00, 0x15, 0x91, + 0xE2, 0x00, 0x12, 0x8E, 0xE1, 0x00, 0x0F, 0x8C, 0xDF, 0x00, 0x12, 0x8B, 0xDF, 0x00, 0x14, 0x8A, 0xDF, 0x00, 0x15, + 0x8D, 0xE2, 0x00, 0x0E, 0x89, 0xDC, 0x00, 0x0E, 0x88, 0xDC, 0x00, 0x0F, 0x87, 0xDD, 0x00, 0x0E, 0x86, 0xDC, 0x00, + 0x0E, 0x85, 0xDC, 0x00, 0x0E, 0x85, 0xDC, 0x00, 0x0E, 0x85, 0xDC, 0x00, 0x0E, 0x85, 0xDC, 0x00, 0x5F, 0xC0, 0xE6, + 0x00, 0x57, 0xBE, 0xE8, 0x00, 0x4F, 0xBB, 0xE9, 0x00, 0x4E, 0xBA, 0xE6, 0x00, 0x4D, 0xB9, 0xE3, 0x00, 0x50, 0xB6, + 0xED, 0x00, 0x2D, 0xAE, 0xE7, 0x00, 0x2E, 0xAC, 0xE6, 0x00, 0x2E, 0xAB, 0xE4, 0x00, 0x2E, 0xAC, 0xE6, 0x00, 0x2E, + 0xAD, 0xE8, 0x00, 0x2D, 0xAB, 0xE7, 0x00, 0x2C, 0xAA, 0xE5, 0x00, 0x15, 0xB2, 0xFF, 0x00, 0xEB, 0x42, 0x10, 0x00, + 0xF1, 0x4F, 0x16, 0x00, 0xF7, 0x5C, 0x1C, 0x00, 0xF8, 0x71, 0x23, 0x00, 0xF9, 0x85, 0x29, 0x00, 0xF6, 0x88, 0x2D, + 0x00, 0xF3, 0x8B, 0x30, 0x00, 0xF4, 0x85, 0x31, 0x00, 0xF4, 0x7F, 0x33, 0x00, 0xF6, 0x85, 0x35, 0x00, 0xF9, 0x8B, + 0x37, 0x00, 0xF8, 0x8D, 0x38, 0x00, 0xF7, 0x90, 0x3A, 0x00, 0xF8, 0x8B, 0x37, 0x00, 0xF8, 0x86, 0x35, 0x00, 0xF7, + 0x7E, 0x35, 0x00, 0xF6, 0x75, 0x35, 0x00, 0xF7, 0x6D, 0x33, 0x00, 0xF7, 0x64, 0x31, 0x00, 0xF8, 0x5E, 0x31, 0x00, + 0xF8, 0x57, 0x30, 0x00, 0xFF, 0x51, 0x25, 0x00, 0xF5, 0x51, 0x36, 0x00, 0x03, 0xA4, 0xFD, 0x00, 0x1E, 0x9A, 0xE1, + 0x00, 0x1E, 0x98, 0xE3, 0x00, 0x1E, 0x96, 0xE5, 0x00, 0x1C, 0x96, 0xE2, 0x00, 0x19, 0x97, 0xDF, 0x00, 0x18, 0x96, + 0xE1, 0x00, 0x17, 0x95, 0xE3, 0x00, 0x16, 0x94, 0xE2, 0x00, 0x16, 0x93, 0xE1, 0x00, 0x16, 0x92, 0xE0, 0x00, 0x15, + 0x91, 0xE0, 0x00, 0x16, 0x92, 0xE2, 0x00, 0x16, 0x93, 0xE4, 0x00, 0x12, 0x90, 0xE1, 0x00, 0x0F, 0x8E, 0xDF, 0x00, + 0x14, 0x8D, 0xE1, 0x00, 0x18, 0x8D, 0xE3, 0x00, 0x13, 0x8C, 0xE0, 0x00, 0x0F, 0x8B, 0xDE, 0x00, 0x0F, 0x89, 0xDD, + 0x00, 0x0E, 0x88, 0xDD, 0x00, 0x0E, 0x87, 0xDD, 0x00, 0x0E, 0x86, 0xDC, 0x00, 0x0E, 0x86, 0xDC, 0x00, 0x0E, 0x86, + 0xDC, 0x00, 0x0E, 0x86, 0xDC, 0x00, 0x3C, 0xB6, 0xED, 0x00, 0x35, 0xB3, 0xEE, 0x00, 0x2F, 0xB1, 0xEF, 0x00, 0x2F, + 0xB1, 0xED, 0x00, 0x2F, 0xB0, 0xEC, 0x00, 0x38, 0xB0, 0xEE, 0x00, 0x2D, 0xAE, 0xE9, 0x00, 0x2F, 0xAD, 0xE7, 0x00, + 0x30, 0xAD, 0xE6, 0x00, 0x2F, 0xAE, 0xE8, 0x00, 0x2D, 0xB0, 0xEA, 0x00, 0x30, 0xAD, 0xEC, 0x00, 0x28, 0xAF, 0xEE, + 0x00, 0x2F, 0xA9, 0xC8, 0x00, 0xFF, 0x3D, 0x04, 0x00, 0xFA, 0x50, 0x19, 0x00, 0xF8, 0x5F, 0x21, 0x00, 0xF7, 0x73, + 0x28, 0x00, 0xF7, 0x87, 0x2F, 0x00, 0xFA, 0x95, 0x37, 0x00, 0xF5, 0x9B, 0x37, 0x00, 0xF5, 0x96, 0x3A, 0x00, 0xF5, + 0x92, 0x3D, 0x00, 0xF7, 0x94, 0x3F, 0x00, 0xF9, 0x96, 0x41, 0x00, 0xF9, 0x99, 0x43, 0x00, 0xF9, 0x9D, 0x46, 0x00, + 0xF8, 0x98, 0x44, 0x00, 0xF7, 0x94, 0x43, 0x00, 0xF8, 0x8D, 0x42, 0x00, 0xF9, 0x86, 0x41, 0x00, 0xF9, 0x7D, 0x3F, + 0x00, 0xF9, 0x73, 0x3C, 0x00, 0xF7, 0x70, 0x38, 0x00, 0xF4, 0x6C, 0x35, 0x00, 0xFF, 0x60, 0x21, 0x00, 0xBE, 0x6C, + 0x62, 0x00, 0x12, 0x9D, 0xEF, 0x00, 0x21, 0x9A, 0xE8, 0x00, 0x1C, 0x99, 0xED, 0x00, 0x17, 0x9B, 0xE3, 0x00, 0x13, + 0x98, 0xF0, 0x00, 0x1B, 0x94, 0xE0, 0x00, 0x1A, 0x96, 0xE1, 0x00, 0x19, 0x97, 0xE3, 0x00, 0x18, 0x96, 0xE4, 0x00, + 0x17, 0x95, 0xE5, 0x00, 0x18, 0x94, 0xE3, 0x00, 0x19, 0x93, 0xE2, 0x00, 0x16, 0x91, 0xE0, 0x00, 0x14, 0x90, 0xDE, + 0x00, 0x15, 0x91, 0xE1, 0x00, 0x16, 0x92, 0xE5, 0x00, 0x14, 0x90, 0xE3, 0x00, 0x11, 0x8D, 0xE2, 0x00, 0x10, 0x8D, + 0xE2, 0x00, 0x0F, 0x8D, 0xE3, 0x00, 0x10, 0x8A, 0xDE, 0x00, 0x11, 0x88, 0xD8, 0x00, 0x0E, 0x87, 0xE1, 0x00, 0x0B, + 0x89, 0xDC, 0x00, 0x10, 0x85, 0xE0, 0x00, 0x09, 0x87, 0xE4, 0x00, 0x09, 0x87, 0xE4, 0x00, 0x3F, 0xB5, 0xE8, 0x00, + 0x3B, 0xB3, 0xE9, 0x00, 0x36, 0xB2, 0xEA, 0x00, 0x37, 0xB1, 0xE9, 0x00, 0x37, 0xB1, 0xE8, 0x00, 0x32, 0xAF, 0xE9, + 0x00, 0x2D, 0xAE, 0xEA, 0x00, 0x30, 0xAE, 0xE9, 0x00, 0x32, 0xAF, 0xE8, 0x00, 0x30, 0xB1, 0xEA, 0x00, 0x2D, 0xB4, + 0xEC, 0x00, 0x34, 0xAE, 0xF1, 0x00, 0x24, 0xB4, 0xF6, 0x00, 0x8D, 0x7E, 0x86, 0x00, 0xF6, 0x4E, 0x00, 0x00, 0xEC, + 0x5C, 0x1D, 0x00, 0xF9, 0x63, 0x25, 0x00, 0xF7, 0x76, 0x2D, 0x00, 0xF4, 0x89, 0x35, 0x00, 0xFD, 0xA2, 0x41, 0x00, + 0xF6, 0xAB, 0x3E, 0x00, 0xF6, 0xA8, 0x43, 0x00, 0xF7, 0xA4, 0x47, 0x00, 0xF8, 0xA3, 0x4A, 0x00, 0xFA, 0xA1, 0x4C, + 0x00, 0xFA, 0xA5, 0x4E, 0x00, 0xFB, 0xAA, 0x51, 0x00, 0xF9, 0xA6, 0x52, 0x00, 0xF7, 0xA2, 0x52, 0x00, 0xFA, 0x9C, + 0x4F, 0x00, 0xFD, 0x97, 0x4D, 0x00, 0xFC, 0x8D, 0x4A, 0x00, 0xFB, 0x83, 0x47, 0x00, 0xF6, 0x82, 0x40, 0x00, 0xF1, + 0x82, 0x39, 0x00, 0xF4, 0x72, 0x2B, 0x00, 0x71, 0x8C, 0xAB, 0x00, 0x16, 0x99, 0xF0, 0x00, 0x25, 0x99, 0xEF, 0x00, + 0x25, 0x97, 0xE8, 0x00, 0x26, 0x9A, 0xC5, 0x00, 0x16, 0x96, 0xF0, 0x00, 0x1C, 0x91, 0xE2, 0x00, 0x1B, 0x96, 0xE2, + 0x00, 0x1B, 0x9A, 0xE2, 0x00, 0x19, 0x99, 0xE5, 0x00, 0x18, 0x98, 0xE8, 0x00, 0x1A, 0x96, 0xE6, 0x00, 0x1C, 0x95, + 0xE4, 0x00, 0x17, 0x91, 0xDF, 0x00, 0x13, 0x8D, 0xD9, 0x00, 0x18, 0x92, 0xE2, 0x00, 0x1E, 0x97, 0xEA, 0x00, 0x14, + 0x92, 0xE5, 0x00, 0x0B, 0x8D, 0xE1, 0x00, 0x0D, 0x8E, 0xE5, 0x00, 0x10, 0x8F, 0xE9, 0x00, 0x12, 0x8B, 0xDE, 0x00, + 0x14, 0x88, 0xD4, 0x00, 0x0E, 0x87, 0xE6, 0x00, 0x08, 0x8C, 0xDC, 0x00, 0x11, 0x84, 0xE4, 0x00, 0x03, 0x88, 0xEC, + 0x00, 0x03, 0x88, 0xEC, 0x00, 0x3D, 0xB6, 0xEA, 0x00, 0x3A, 0xB5, 0xEA, 0x00, 0x38, 0xB4, 0xEB, 0x00, 0x37, 0xB3, + 0xEB, 0x00, 0x37, 0xB3, 0xEA, 0x00, 0x34, 0xB2, 0xEB, 0x00, 0x32, 0xB1, 0xEB, 0x00, 0x33, 0xB1, 0xEB, 0x00, 0x34, + 0xB0, 0xEA, 0x00, 0x32, 0xB3, 0xE9, 0x00, 0x2F, 0xB5, 0xE8, 0x00, 0x34, 0xB0, 0xF0, 0x00, 0x22, 0xB6, 0xF8, 0x00, + 0xC5, 0x60, 0x44, 0x00, 0xF9, 0x53, 0x0B, 0x00, 0xF2, 0x63, 0x21, 0x00, 0xF6, 0x6F, 0x29, 0x00, 0xF6, 0x7D, 0x2F, + 0x00, 0xF7, 0x8A, 0x35, 0x00, 0xFA, 0xA1, 0x41, 0x00, 0xF6, 0xAF, 0x45, 0x00, 0xFA, 0xB4, 0x4F, 0x00, 0xF6, 0xB0, + 0x50, 0x00, 0xF8, 0xAE, 0x53, 0x00, 0xFA, 0xAC, 0x56, 0x00, 0xFC, 0xB2, 0x59, 0x00, 0xFD, 0xB7, 0x5D, 0x00, 0xFA, + 0xB3, 0x5F, 0x00, 0xF6, 0xAF, 0x61, 0x00, 0xF9, 0xAC, 0x5D, 0x00, 0xFD, 0xA9, 0x59, 0x00, 0xFB, 0x9F, 0x55, 0x00, + 0xF8, 0x94, 0x50, 0x00, 0xF7, 0x91, 0x4A, 0x00, 0xF5, 0x8D, 0x44, 0x00, 0xFF, 0x7D, 0x22, 0x00, 0x1A, 0xA5, 0xEF, + 0x00, 0x12, 0x9E, 0xF3, 0x00, 0x28, 0x96, 0xF1, 0x00, 0x22, 0x9F, 0xB0, 0x00, 0x6C, 0x96, 0x00, 0x00, 0x3B, 0x9B, + 0x82, 0x00, 0x16, 0x9D, 0xF8, 0x00, 0x15, 0x9B, 0xF4, 0x00, 0x14, 0x9C, 0xE2, 0x00, 0x15, 0x99, 0xE4, 0x00, 0x17, + 0x96, 0xE6, 0x00, 0x18, 0x95, 0xE5, 0x00, 0x1A, 0x93, 0xE4, 0x00, 0x18, 0x93, 0xE2, 0x00, 0x16, 0x92, 0xE0, 0x00, + 0x1C, 0x98, 0xE6, 0x00, 0x19, 0x95, 0xE4, 0x00, 0x16, 0x92, 0xE4, 0x00, 0x12, 0x8F, 0xE5, 0x00, 0x12, 0x8C, 0xEB, + 0x00, 0x12, 0x8B, 0xE3, 0x00, 0x00, 0x87, 0xE3, 0x00, 0x00, 0x7B, 0xF4, 0x00, 0x1A, 0x86, 0xD3, 0x00, 0x0C, 0x8C, + 0xF0, 0x00, 0x00, 0x8E, 0xE2, 0x00, 0x0D, 0x84, 0xEA, 0x00, 0x07, 0x86, 0xF1, 0x00, 0x3B, 0xB7, 0xEC, 0x00, 0x3A, + 0xB6, 0xEC, 0x00, 0x39, 0xB6, 0xEC, 0x00, 0x38, 0xB5, 0xEC, 0x00, 0x37, 0xB5, 0xED, 0x00, 0x37, 0xB4, 0xEC, 0x00, + 0x37, 0xB4, 0xEC, 0x00, 0x36, 0xB3, 0xEC, 0x00, 0x36, 0xB2, 0xEC, 0x00, 0x33, 0xB4, 0xE8, 0x00, 0x31, 0xB5, 0xE4, + 0x00, 0x34, 0xB1, 0xEF, 0x00, 0x21, 0xB8, 0xF9, 0x00, 0xFD, 0x41, 0x02, 0x00, 0xFC, 0x58, 0x1E, 0x00, 0xF8, 0x6A, + 0x25, 0x00, 0xF3, 0x7C, 0x2C, 0x00, 0xF6, 0x84, 0x31, 0x00, 0xF9, 0x8B, 0x35, 0x00, 0xF7, 0xA0, 0x41, 0x00, 0xF6, + 0xB4, 0x4C, 0x00, 0xFE, 0xC0, 0x5B, 0x00, 0xF6, 0xBC, 0x59, 0x00, 0xF8, 0xBA, 0x5D, 0x00, 0xFA, 0xB7, 0x60, 0x00, + 0xFD, 0xBE, 0x64, 0x00, 0xFF, 0xC4, 0x69, 0x00, 0xFA, 0xC0, 0x6C, 0x00, 0xF5, 0xBD, 0x6F, 0x00, 0xF9, 0xBC, 0x6A, + 0x00, 0xFD, 0xBB, 0x65, 0x00, 0xFA, 0xB1, 0x60, 0x00, 0xF6, 0xA6, 0x5A, 0x00, 0xF8, 0x9F, 0x54, 0x00, 0xFA, 0x98, + 0x4F, 0x00, 0xDF, 0x94, 0x6E, 0x00, 0x07, 0xA6, 0xFB, 0x00, 0x24, 0x9C, 0xDA, 0x00, 0x14, 0x9F, 0xF2, 0x00, 0x4A, + 0xA1, 0x71, 0x00, 0x68, 0xA9, 0x0D, 0x00, 0x61, 0xA3, 0x06, 0x00, 0x5A, 0x98, 0x1B, 0x00, 0x33, 0x96, 0x9B, 0x00, + 0x0D, 0x99, 0xFE, 0x00, 0x11, 0x96, 0xF1, 0x00, 0x16, 0x94, 0xE4, 0x00, 0x17, 0x93, 0xE4, 0x00, 0x18, 0x91, 0xE4, + 0x00, 0x19, 0x94, 0xE5, 0x00, 0x1A, 0x98, 0xE6, 0x00, 0x1F, 0x9D, 0xEA, 0x00, 0x15, 0x93, 0xDE, 0x00, 0x17, 0x92, + 0xE3, 0x00, 0x1A, 0x91, 0xE8, 0x00, 0x1F, 0x94, 0xEB, 0x00, 0x25, 0x9D, 0xD1, 0x00, 0xD0, 0xF7, 0x72, 0x00, 0xC1, + 0xF2, 0x95, 0x00, 0x00, 0x83, 0xF0, 0x00, 0x17, 0x81, 0xA0, 0x00, 0x3B, 0x7E, 0x2E, 0x00, 0x16, 0x87, 0xCB, 0x00, + 0x0B, 0x8A, 0xDA, 0x00, 0x3D, 0xB8, 0xEC, 0x00, 0x3C, 0xB8, 0xED, 0x00, 0x3B, 0xB7, 0xED, 0x00, 0x3A, 0xB7, 0xED, + 0x00, 0x39, 0xB6, 0xED, 0x00, 0x39, 0xB6, 0xED, 0x00, 0x39, 0xB6, 0xED, 0x00, 0x39, 0xB6, 0xED, 0x00, 0x39, 0xB6, + 0xED, 0x00, 0x37, 0xB4, 0xEC, 0x00, 0x34, 0xB2, 0xEB, 0x00, 0x34, 0xAB, 0xF2, 0x00, 0x6D, 0x95, 0xB3, 0x00, 0xFF, + 0x46, 0x00, 0x00, 0xF7, 0x64, 0x20, 0x00, 0xF6, 0x73, 0x28, 0x00, 0xF5, 0x81, 0x30, 0x00, 0xF6, 0x8B, 0x37, 0x00, + 0xF8, 0x94, 0x3D, 0x00, 0xF8, 0xA6, 0x48, 0x00, 0xF7, 0xB7, 0x53, 0x00, 0xFB, 0xC2, 0x60, 0x00, 0xF7, 0xC4, 0x65, + 0x00, 0xF9, 0xC3, 0x69, 0x00, 0xFA, 0xC2, 0x6D, 0x00, 0xFA, 0xC6, 0x72, 0x00, 0xFA, 0xCB, 0x77, 0x00, 0xFB, 0xCB, + 0x7A, 0x00, 0xFC, 0xCB, 0x7D, 0x00, 0xFA, 0xC8, 0x7A, 0x00, 0xF8, 0xC5, 0x77, 0x00, 0xF9, 0xBC, 0x72, 0x00, 0xFA, + 0xB4, 0x6C, 0x00, 0xF6, 0xB0, 0x68, 0x00, 0xFD, 0xAA, 0x56, 0x00, 0x93, 0xA0, 0xA5, 0x00, 0x13, 0xA1, 0xF3, 0x00, + 0x21, 0x9C, 0xEF, 0x00, 0x19, 0x9D, 0xFF, 0x00, 0x71, 0xC1, 0x23, 0x00, 0x79, 0xB7, 0x25, 0x00, 0x71, 0xB2, 0x1D, + 0x00, 0x6A, 0xAA, 0x23, 0x00, 0x66, 0xA0, 0x25, 0x00, 0x63, 0x9A, 0x18, 0x00, 0x41, 0x9C, 0x72, 0x00, 0x1E, 0x9F, + 0xCB, 0x00, 0x18, 0x93, 0xFF, 0x00, 0x13, 0x98, 0xF1, 0x00, 0x18, 0x9C, 0xF4, 0x00, 0x1D, 0xA0, 0xF7, 0x00, 0x1B, + 0x9C, 0xFF, 0x00, 0x10, 0x93, 0xF6, 0x00, 0x11, 0x93, 0xF1, 0x00, 0x13, 0x93, 0xEC, 0x00, 0x00, 0x83, 0xFF, 0x00, + 0x72, 0xCB, 0xA0, 0x00, 0xCB, 0xF9, 0x81, 0x00, 0xD0, 0xFF, 0xAC, 0x00, 0x78, 0xA0, 0x45, 0x00, 0x33, 0x77, 0x00, + 0x00, 0x3A, 0x7C, 0x02, 0x00, 0x0D, 0x8C, 0xE2, 0x00, 0x0D, 0x8E, 0xDB, 0x00, 0x3E, 0xBA, 0xED, 0x00, 0x3D, 0xB9, + 0xED, 0x00, 0x3C, 0xB9, 0xED, 0x00, 0x3B, 0xB8, 0xED, 0x00, 0x3A, 0xB8, 0xED, 0x00, 0x3B, 0xB8, 0xED, 0x00, 0x3B, + 0xB8, 0xED, 0x00, 0x3C, 0xB8, 0xEE, 0x00, 0x3C, 0xB9, 0xEE, 0x00, 0x3A, 0xB4, 0xF0, 0x00, 0x37, 0xAE, 0xF2, 0x00, + 0x32, 0xB3, 0xFE, 0x00, 0xB3, 0x8E, 0x7C, 0x00, 0xFF, 0x58, 0x06, 0x00, 0xF3, 0x71, 0x22, 0x00, 0xF4, 0x7C, 0x2B, + 0x00, 0xF6, 0x86, 0x34, 0x00, 0xF7, 0x92, 0x3D, 0x00, 0xF8, 0x9D, 0x45, 0x00, 0xF8, 0xAC, 0x4F, 0x00, 0xF8, 0xBB, + 0x5A, 0x00, 0xF9, 0xC4, 0x65, 0x00, 0xF9, 0xCC, 0x70, 0x00, 0xFA, 0xCC, 0x75, 0x00, 0xFA, 0xCC, 0x7A, 0x00, 0xF7, + 0xCF, 0x80, 0x00, 0xF4, 0xD2, 0x85, 0x00, 0xFB, 0xD5, 0x89, 0x00, 0xFF, 0xD9, 0x8C, 0x00, 0xFA, 0xD3, 0x8B, 0x00, + 0xF2, 0xCE, 0x89, 0x00, 0xF8, 0xC8, 0x84, 0x00, 0xFE, 0xC1, 0x7F, 0x00, 0xF4, 0xC1, 0x7C, 0x00, 0xFF, 0xBC, 0x5E, + 0x00, 0x47, 0xAB, 0xDB, 0x00, 0x1E, 0x9C, 0xEA, 0x00, 0x1D, 0xA2, 0xE8, 0x00, 0x1D, 0xA7, 0xE5, 0x00, 0x98, 0xD3, + 0x1B, 0x00, 0x8A, 0xCB, 0x21, 0x00, 0x82, 0xC3, 0x26, 0x00, 0x7A, 0xBB, 0x2C, 0x00, 0x75, 0xB4, 0x28, 0x00, 0x70, + 0xAD, 0x25, 0x00, 0x6D, 0xAB, 0x16, 0x00, 0x6A, 0xA9, 0x08, 0x00, 0x5E, 0xA9, 0x11, 0x00, 0x51, 0x9E, 0x53, 0x00, + 0x47, 0x9B, 0x6D, 0x00, 0x3E, 0x97, 0x87, 0x00, 0x3B, 0x95, 0x91, 0x00, 0x38, 0x98, 0x80, 0x00, 0x44, 0x96, 0x63, + 0x00, 0x4F, 0x94, 0x45, 0x00, 0x82, 0xB4, 0x3C, 0x00, 0x4F, 0x84, 0x1B, 0x00, 0xAF, 0xE0, 0x87, 0x00, 0x9E, 0xCC, + 0x82, 0x00, 0x35, 0x7F, 0x11, 0x00, 0x42, 0x82, 0x1B, 0x00, 0x32, 0x84, 0x3B, 0x00, 0x04, 0x92, 0xF9, 0x00, 0x0F, + 0x92, 0xDC, 0x00, 0x40, 0xBC, 0xEE, 0x00, 0x3F, 0xBB, 0xED, 0x00, 0x3E, 0xBA, 0xED, 0x00, 0x3D, 0xBA, 0xED, 0x00, + 0x3C, 0xB9, 0xEC, 0x00, 0x3C, 0xB9, 0xEC, 0x00, 0x3C, 0xB8, 0xEC, 0x00, 0x3C, 0xB8, 0xEC, 0x00, 0x3C, 0xB8, 0xEB, + 0x00, 0x3F, 0xB3, 0xF0, 0x00, 0x42, 0xAF, 0xF4, 0x00, 0x0D, 0xBA, 0xE8, 0x00, 0xFF, 0xB8, 0x96, 0x00, 0xF6, 0x81, + 0x4C, 0x00, 0xF5, 0x75, 0x22, 0x00, 0xF6, 0x80, 0x2D, 0x00, 0xF7, 0x8B, 0x38, 0x00, 0xF7, 0x99, 0x42, 0x00, 0xF7, + 0xA6, 0x4D, 0x00, 0xF8, 0xB2, 0x56, 0x00, 0xF9, 0xBD, 0x5F, 0x00, 0xF9, 0xC8, 0x6D, 0x00, 0xFA, 0xD4, 0x7A, 0x00, + 0xFA, 0xD5, 0x81, 0x00, 0xF9, 0xD7, 0x88, 0x00, 0xFA, 0xD8, 0x8D, 0x00, 0xFB, 0xDA, 0x92, 0x00, 0xF9, 0xE4, 0xA1, + 0x00, 0xFE, 0xD6, 0x91, 0x00, 0xFA, 0xDE, 0x9F, 0x00, 0xF8, 0xDB, 0x97, 0x00, 0xF9, 0xD5, 0x93, 0x00, 0xFB, 0xCF, + 0x8F, 0x00, 0xFF, 0xD1, 0x85, 0x00, 0xFF, 0xC6, 0x78, 0x00, 0x00, 0x9A, 0xFC, 0x00, 0x26, 0xA8, 0xF1, 0x00, 0x1F, + 0xA4, 0xF8, 0x00, 0x53, 0xBD, 0xA5, 0x00, 0xA4, 0xDA, 0x30, 0x00, 0x9D, 0xD5, 0x37, 0x00, 0x97, 0xD0, 0x3A, 0x00, + 0x90, 0xCA, 0x3D, 0x00, 0x8A, 0xC5, 0x39, 0x00, 0x84, 0xBF, 0x35, 0x00, 0x7C, 0xBD, 0x30, 0x00, 0x74, 0xBC, 0x2C, + 0x00, 0x75, 0xB8, 0x1B, 0x00, 0x77, 0xAF, 0x27, 0x00, 0x72, 0xAB, 0x25, 0x00, 0x6D, 0xA7, 0x23, 0x00, 0x6A, 0xA3, + 0x28, 0x00, 0x68, 0xA2, 0x1E, 0x00, 0x57, 0x95, 0x19, 0x00, 0x77, 0xB7, 0x45, 0x00, 0xBA, 0xF0, 0x81, 0x00, 0x72, + 0xAC, 0x4C, 0x00, 0x41, 0x7B, 0x14, 0x00, 0x4F, 0x8A, 0x1D, 0x00, 0x42, 0x86, 0x1C, 0x00, 0x49, 0x86, 0x14, 0x00, + 0x16, 0x86, 0x8B, 0x00, 0x0A, 0x90, 0xF5, 0x00, 0x15, 0x8D, 0xE7, 0x00, 0x41, 0xBE, 0xEF, 0x00, 0x40, 0xBD, 0xEE, + 0x00, 0x3F, 0xBC, 0xED, 0x00, 0x3E, 0xBB, 0xED, 0x00, 0x3D, 0xBA, 0xEC, 0x00, 0x3D, 0xBA, 0xEB, 0x00, 0x3C, 0xB9, + 0xEA, 0x00, 0x3C, 0xB8, 0xE9, 0x00, 0x3B, 0xB7, 0xE8, 0x00, 0x39, 0xB9, 0xF0, 0x00, 0x37, 0xBA, 0xF7, 0x00, 0x50, + 0xB5, 0xDC, 0x00, 0xFF, 0x96, 0x44, 0x00, 0xFE, 0xC4, 0x9C, 0x00, 0xF7, 0x79, 0x23, 0x00, 0xF8, 0x85, 0x30, 0x00, + 0xF8, 0x91, 0x3C, 0x00, 0xF8, 0xA0, 0x48, 0x00, 0xF7, 0xAF, 0x55, 0x00, 0xF8, 0xB7, 0x5D, 0x00, 0xF9, 0xBF, 0x65, + 0x00, 0xFA, 0xCD, 0x75, 0x00, 0xFB, 0xDB, 0x85, 0x00, 0xFA, 0xDE, 0x8D, 0x00, 0xF9, 0xE1, 0x95, 0x00, 0xFD, 0xE1, + 0x9A, 0x00, 0xFF, 0xE2, 0xA0, 0x00, 0xFA, 0xE8, 0xA3, 0x00, 0xFF, 0xBD, 0x6B, 0x00, 0xFC, 0xDE, 0x9E, 0x00, 0xFF, + 0xE8, 0xA6, 0x00, 0xFB, 0xE3, 0xA3, 0x00, 0xF7, 0xDE, 0xA0, 0x00, 0xFD, 0xD7, 0x99, 0x00, 0xB5, 0xBD, 0xAB, 0x00, + 0x11, 0x9F, 0xF0, 0x00, 0x1D, 0xA3, 0xE8, 0x00, 0x19, 0x9E, 0xFF, 0x00, 0x89, 0xD4, 0x65, 0x00, 0xB0, 0xE1, 0x45, + 0x00, 0xB0, 0xDF, 0x4D, 0x00, 0xAB, 0xDC, 0x4D, 0x00, 0xA7, 0xD8, 0x4D, 0x00, 0xA0, 0xD5, 0x49, 0x00, 0x99, 0xD2, + 0x44, 0x00, 0x97, 0xCD, 0x3C, 0x00, 0x94, 0xC9, 0x34, 0x00, 0x8D, 0xC4, 0x34, 0x00, 0x86, 0xC0, 0x33, 0x00, 0x7A, + 0xBC, 0x32, 0x00, 0x6E, 0xB7, 0x31, 0x00, 0x6D, 0xB2, 0x2F, 0x00, 0x6B, 0xAE, 0x2E, 0x00, 0x7D, 0xB9, 0x3F, 0x00, + 0x6F, 0xA5, 0x30, 0x00, 0x7B, 0xB5, 0x4E, 0x00, 0x56, 0x9A, 0x20, 0x00, 0x5B, 0x9F, 0x2A, 0x00, 0x50, 0x93, 0x24, + 0x00, 0x80, 0xB9, 0x65, 0x00, 0x5F, 0x99, 0x1C, 0x00, 0x03, 0x8F, 0xE2, 0x00, 0x10, 0x8E, 0xF2, 0x00, 0x1B, 0x88, + 0xF2, 0x00, 0x43, 0xBF, 0xEF, 0x00, 0x42, 0xBE, 0xEE, 0x00, 0x41, 0xBD, 0xEE, 0x00, 0x40, 0xBD, 0xEE, 0x00, 0x3F, + 0xBC, 0xED, 0x00, 0x3F, 0xBB, 0xEC, 0x00, 0x3F, 0xB9, 0xEB, 0x00, 0x3D, 0xB9, 0xEC, 0x00, 0x3C, 0xB8, 0xEE, 0x00, + 0x37, 0xB8, 0xEB, 0x00, 0x26, 0xBC, 0xF6, 0x00, 0x94, 0x9B, 0x8F, 0x00, 0xFB, 0x96, 0x37, 0x00, 0xF9, 0xBB, 0x7C, + 0x00, 0xF8, 0xB5, 0x85, 0x00, 0xF6, 0x99, 0x49, 0x00, 0xF5, 0x9B, 0x42, 0x00, 0xF6, 0xA6, 0x4E, 0x00, 0xF7, 0xB2, + 0x59, 0x00, 0xF8, 0xBC, 0x65, 0x00, 0xF9, 0xC6, 0x72, 0x00, 0xF9, 0xD3, 0x7F, 0x00, 0xFA, 0xE0, 0x8D, 0x00, 0xF9, + 0xE5, 0x97, 0x00, 0xF8, 0xEB, 0xA1, 0x00, 0xFE, 0xEA, 0xA6, 0x00, 0xFF, 0xEA, 0xAA, 0x00, 0xFC, 0xEE, 0xA8, 0x00, + 0xF9, 0xBA, 0x62, 0x00, 0xFA, 0xDC, 0x98, 0x00, 0xFE, 0xF3, 0xB9, 0x00, 0xFB, 0xEC, 0xB2, 0x00, 0xF7, 0xE5, 0xAB, + 0x00, 0xFE, 0xE4, 0xA2, 0x00, 0x64, 0xB0, 0xD1, 0x00, 0x19, 0x9F, 0xF0, 0x00, 0x26, 0x9E, 0xE8, 0x00, 0x03, 0x98, + 0xF2, 0x00, 0xE3, 0xEF, 0x50, 0x00, 0xD5, 0xEE, 0x57, 0x00, 0xBF, 0xE3, 0x64, 0x00, 0xBC, 0xE1, 0x64, 0x00, 0xB9, + 0xDF, 0x64, 0x00, 0xB4, 0xDD, 0x5D, 0x00, 0xB0, 0xDB, 0x56, 0x00, 0xA9, 0xD7, 0x4E, 0x00, 0xA2, 0xD3, 0x46, 0x00, + 0x9B, 0xD0, 0x42, 0x00, 0x93, 0xCD, 0x3F, 0x00, 0x8B, 0xC9, 0x3D, 0x00, 0x84, 0xC5, 0x3C, 0x00, 0x80, 0xC1, 0x39, + 0x00, 0x7D, 0xBC, 0x36, 0x00, 0x8A, 0xC7, 0x45, 0x00, 0x88, 0xC1, 0x44, 0x00, 0x62, 0xA0, 0x2B, 0x00, 0x64, 0xA9, + 0x2B, 0x00, 0x5E, 0xA3, 0x2D, 0x00, 0x4F, 0x95, 0x26, 0x00, 0xA4, 0xCE, 0x98, 0x00, 0xD8, 0xEA, 0xDC, 0x00, 0xB9, + 0xDC, 0xFF, 0x00, 0x38, 0x9D, 0xF3, 0x00, 0x00, 0x8F, 0xD3, 0x00, 0x45, 0xC1, 0xEF, 0x00, 0x44, 0xC0, 0xEF, 0x00, + 0x43, 0xBF, 0xEF, 0x00, 0x41, 0xBE, 0xEF, 0x00, 0x40, 0xBD, 0xEF, 0x00, 0x41, 0xBC, 0xED, 0x00, 0x42, 0xBA, 0xEB, + 0x00, 0x3F, 0xBA, 0xEF, 0x00, 0x3C, 0xB9, 0xF3, 0x00, 0x34, 0xB8, 0xE6, 0x00, 0x16, 0xBD, 0xF6, 0x00, 0xD8, 0x7F, + 0x4F, 0x00, 0xF7, 0x90, 0x46, 0x00, 0xF7, 0xA5, 0x54, 0x00, 0xFF, 0xDA, 0xBA, 0x00, 0xF8, 0xA1, 0x4D, 0x00, 0xF3, + 0xA5, 0x49, 0x00, 0xF4, 0xAD, 0x53, 0x00, 0xF6, 0xB5, 0x5D, 0x00, 0xF8, 0xC0, 0x6E, 0x00, 0xFA, 0xCC, 0x7F, 0x00, + 0xF9, 0xD8, 0x8A, 0x00, 0xF8, 0xE4, 0x95, 0x00, 0xF8, 0xEC, 0xA1, 0x00, 0xF7, 0xF4, 0xAE, 0x00, 0xFE, 0xF3, 0xB2, + 0x00, 0xFF, 0xF1, 0xB5, 0x00, 0xFE, 0xF4, 0xAD, 0x00, 0xF3, 0xB6, 0x59, 0x00, 0xF8, 0xDA, 0x92, 0x00, 0xFE, 0xFF, + 0xCC, 0x00, 0xFA, 0xF6, 0xC1, 0x00, 0xF7, 0xED, 0xB6, 0x00, 0xFF, 0xF1, 0xAB, 0x00, 0x13, 0xA4, 0xF7, 0x00, 0x15, + 0xA4, 0xEF, 0x00, 0x18, 0xA5, 0xE8, 0x00, 0x56, 0xB4, 0xCD, 0x00, 0xF0, 0xF2, 0x71, 0x00, 0xD4, 0xEF, 0x84, 0x00, + 0xCF, 0xE6, 0x7B, 0x00, 0xCD, 0xE6, 0x7B, 0x00, 0xCB, 0xE6, 0x7C, 0x00, 0xC9, 0xE5, 0x71, 0x00, 0xC6, 0xE5, 0x67, + 0x00, 0xBC, 0xE1, 0x5F, 0x00, 0xB1, 0xDD, 0x57, 0x00, 0xA8, 0xDB, 0x51, 0x00, 0xA0, 0xDA, 0x4B, 0x00, 0x9C, 0xD7, + 0x48, 0x00, 0x99, 0xD4, 0x46, 0x00, 0x94, 0xCF, 0x42, 0x00, 0x8F, 0xCA, 0x3E, 0x00, 0x88, 0xC4, 0x3B, 0x00, 0x81, + 0xBE, 0x39, 0x00, 0x72, 0xB3, 0x30, 0x00, 0x62, 0xA8, 0x27, 0x00, 0x58, 0xA0, 0x27, 0x00, 0x4E, 0x97, 0x27, 0x00, + 0x9F, 0xC4, 0x79, 0x00, 0xFF, 0xFB, 0xF7, 0x00, 0x7F, 0xD2, 0xF4, 0x00, 0x03, 0x8E, 0xE1, 0x00, 0x0E, 0x89, 0xE1, + 0x00, 0x47, 0xC3, 0xEF, 0x00, 0x46, 0xC2, 0xEF, 0x00, 0x44, 0xC0, 0xEF, 0x00, 0x43, 0xBF, 0xEF, 0x00, 0x41, 0xBE, + 0xF0, 0x00, 0x42, 0xBD, 0xEE, 0x00, 0x43, 0xBC, 0xEC, 0x00, 0x40, 0xBC, 0xEF, 0x00, 0x3E, 0xBB, 0xF1, 0x00, 0x2F, + 0xC0, 0xFD, 0x00, 0x35, 0xBD, 0xFB, 0x00, 0xF5, 0x4B, 0x00, 0x00, 0xFF, 0x8A, 0x52, 0x00, 0xFA, 0xA5, 0x5D, 0x00, + 0xFC, 0xC4, 0x8D, 0x00, 0xFB, 0xC1, 0x85, 0x00, 0xF5, 0xAD, 0x50, 0x00, 0xF7, 0xB6, 0x5E, 0x00, 0xF9, 0xBE, 0x6B, + 0x00, 0xFA, 0xC9, 0x78, 0x00, 0xFB, 0xD4, 0x85, 0x00, 0xFE, 0xDE, 0x97, 0x00, 0xFF, 0xE8, 0xAA, 0x00, 0xFD, 0xEE, + 0xAD, 0x00, 0xF9, 0xF4, 0xB1, 0x00, 0xFC, 0xF5, 0xB9, 0x00, 0xFE, 0xF6, 0xC2, 0x00, 0xFB, 0xF0, 0xB2, 0x00, 0xF6, + 0xCB, 0x6E, 0x00, 0xFB, 0xDE, 0x91, 0x00, 0xFC, 0xFC, 0xCA, 0x00, 0xFF, 0xFB, 0xD0, 0x00, 0xFF, 0xFC, 0xC8, 0x00, + 0xCA, 0xE3, 0xC7, 0x00, 0x15, 0xA1, 0xF2, 0x00, 0x1D, 0xA3, 0xEE, 0x00, 0x11, 0xA1, 0xF1, 0x00, 0x9E, 0xD4, 0xB9, + 0x00, 0xEA, 0xF1, 0x8B, 0x00, 0xDC, 0xEF, 0x95, 0x00, 0xD9, 0xEB, 0x90, 0x00, 0xD9, 0xEB, 0x92, 0x00, 0xD8, 0xEC, + 0x94, 0x00, 0xD6, 0xEB, 0x8B, 0x00, 0xD3, 0xEA, 0x82, 0x00, 0xC9, 0xE6, 0x78, 0x00, 0xBF, 0xE3, 0x6F, 0x00, 0xB8, + 0xE2, 0x68, 0x00, 0xB1, 0xE2, 0x61, 0x00, 0xAE, 0xE0, 0x5D, 0x00, 0xAC, 0xDE, 0x5A, 0x00, 0xA2, 0xD9, 0x51, 0x00, + 0x98, 0xD3, 0x48, 0x00, 0x8E, 0xCB, 0x41, 0x00, 0x83, 0xC3, 0x39, 0x00, 0x74, 0xB7, 0x32, 0x00, 0x66, 0xAC, 0x2C, + 0x00, 0x5D, 0xA2, 0x29, 0x00, 0x54, 0x99, 0x26, 0x00, 0x4A, 0x93, 0x21, 0x00, 0x23, 0x99, 0xB9, 0x00, 0x15, 0x93, + 0xFE, 0x00, 0x09, 0x92, 0xD8, 0x00, 0x0F, 0x8F, 0xD8, 0x00, 0x49, 0xC4, 0xEF, 0x00, 0x47, 0xC3, 0xEF, 0x00, 0x46, + 0xC2, 0xF0, 0x00, 0x44, 0xC1, 0xF0, 0x00, 0x42, 0xC0, 0xF1, 0x00, 0x43, 0xBF, 0xEF, 0x00, 0x43, 0xBE, 0xED, 0x00, + 0x42, 0xBE, 0xEE, 0x00, 0x41, 0xBD, 0xF0, 0x00, 0x37, 0xBA, 0xF0, 0x00, 0x71, 0xA1, 0xB7, 0x00, 0xFE, 0x5D, 0x1D, + 0x00, 0xF8, 0x79, 0x31, 0x00, 0xF5, 0xA1, 0x51, 0x00, 0xF8, 0xAD, 0x60, 0x00, 0xFE, 0xE0, 0xBC, 0x00, 0xF7, 0xB6, + 0x57, 0x00, 0xF9, 0xBF, 0x68, 0x00, 0xFC, 0xC8, 0x79, 0x00, 0xFC, 0xD2, 0x82, 0x00, 0xFC, 0xDB, 0x8B, 0x00, 0xFB, + 0xDE, 0x8F, 0x00, 0xFB, 0xE0, 0x92, 0x00, 0xFA, 0xEA, 0xA3, 0x00, 0xFA, 0xF4, 0xB4, 0x00, 0xF9, 0xF8, 0xC1, 0x00, + 0xF8, 0xFB, 0xCE, 0x00, 0xF9, 0xEB, 0xB6, 0x00, 0xFA, 0xE1, 0x83, 0x00, 0xFD, 0xE2, 0x8F, 0x00, 0xFB, 0xF9, 0xC7, + 0x00, 0xFC, 0xF8, 0xD7, 0x00, 0xFE, 0xFC, 0xCA, 0x00, 0x8B, 0xCD, 0xDC, 0x00, 0x18, 0x9F, 0xED, 0x00, 0x24, 0xA3, + 0xED, 0x00, 0x0A, 0x9D, 0xFA, 0x00, 0xE7, 0xF5, 0xA5, 0x00, 0xE4, 0xF1, 0xA5, 0x00, 0xE4, 0xF0, 0xA5, 0x00, 0xE3, + 0xEF, 0xA6, 0x00, 0xE4, 0xF0, 0xA9, 0x00, 0xE6, 0xF2, 0xAD, 0x00, 0xE3, 0xF0, 0xA5, 0x00, 0xE0, 0xEF, 0x9E, 0x00, + 0xD6, 0xEC, 0x92, 0x00, 0xCD, 0xE9, 0x87, 0x00, 0xC7, 0xE9, 0x7F, 0x00, 0xC2, 0xEA, 0x78, 0x00, 0xC1, 0xEA, 0x72, + 0x00, 0xC0, 0xE9, 0x6D, 0x00, 0xB1, 0xE3, 0x60, 0x00, 0xA2, 0xDD, 0x53, 0x00, 0x94, 0xD2, 0x46, 0x00, 0x86, 0xC8, + 0x3A, 0x00, 0x77, 0xBC, 0x35, 0x00, 0x69, 0xB0, 0x30, 0x00, 0x62, 0xA5, 0x2B, 0x00, 0x5B, 0x9B, 0x26, 0x00, 0x57, + 0x91, 0x09, 0x00, 0x09, 0x94, 0xFB, 0x00, 0x0C, 0x95, 0xE5, 0x00, 0x0F, 0x91, 0xEB, 0x00, 0x0F, 0x91, 0xEB, 0x00, + 0x4A, 0xC5, 0xEF, 0x00, 0x48, 0xC4, 0xF0, 0x00, 0x47, 0xC3, 0xF0, 0x00, 0x45, 0xC2, 0xF1, 0x00, 0x43, 0xC1, 0xF1, + 0x00, 0x41, 0xC1, 0xF1, 0x00, 0x3F, 0xC1, 0xF1, 0x00, 0x3F, 0xBE, 0xF0, 0x00, 0x3F, 0xBC, 0xEF, 0x00, 0x32, 0xC2, + 0xFD, 0x00, 0xBD, 0x7F, 0x6E, 0x00, 0xFE, 0x65, 0x26, 0x00, 0xF5, 0x7B, 0x34, 0x00, 0xF5, 0x9A, 0x4C, 0x00, 0xF8, + 0xAB, 0x5C, 0x00, 0xFA, 0xD0, 0x9F, 0x00, 0xF7, 0xC6, 0x83, 0x00, 0xFD, 0xC1, 0x6A, 0x00, 0xFD, 0xD1, 0x7E, 0x00, + 0xFB, 0xDB, 0x87, 0x00, 0xF9, 0xE5, 0x8F, 0x00, 0xF8, 0xEC, 0x9A, 0x00, 0xF7, 0xF4, 0xA5, 0x00, 0xFB, 0xEA, 0x99, + 0x00, 0xFF, 0xDF, 0x8E, 0x00, 0xFB, 0xE2, 0x9F, 0x00, 0xF7, 0xE6, 0xB1, 0x00, 0xFB, 0xED, 0xCC, 0x00, 0xFF, 0xFA, + 0xCA, 0x00, 0xFF, 0xF2, 0xC6, 0x00, 0xFC, 0xF0, 0xC2, 0x00, 0xFE, 0xF5, 0xD2, 0x00, 0xFF, 0xFC, 0xD3, 0x00, 0x4B, + 0xB5, 0xE6, 0x00, 0x20, 0xA4, 0xED, 0x00, 0x1B, 0xA2, 0xED, 0x00, 0x3D, 0xAA, 0xE2, 0x00, 0xEE, 0xF6, 0xAB, 0x00, + 0xE5, 0xF1, 0xB1, 0x00, 0xE7, 0xF2, 0xB4, 0x00, 0xE9, 0xF3, 0xB8, 0x00, 0xE9, 0xF3, 0xBA, 0x00, 0xEA, 0xF4, 0xBC, + 0x00, 0xE8, 0xF3, 0xB5, 0x00, 0xE5, 0xF2, 0xAF, 0x00, 0xE0, 0xF0, 0xA8, 0x00, 0xDA, 0xED, 0xA1, 0x00, 0xD5, 0xEF, + 0x99, 0x00, 0xD0, 0xF0, 0x91, 0x00, 0xC8, 0xED, 0x82, 0x00, 0xC0, 0xEA, 0x72, 0x00, 0xB0, 0xE3, 0x61, 0x00, 0xA0, + 0xDC, 0x50, 0x00, 0x94, 0xD3, 0x47, 0x00, 0x88, 0xCA, 0x3E, 0x00, 0x7B, 0xBF, 0x38, 0x00, 0x6E, 0xB4, 0x32, 0x00, + 0x65, 0xA8, 0x2E, 0x00, 0x5D, 0xA0, 0x1B, 0x00, 0x3C, 0x94, 0x48, 0x00, 0x0A, 0x93, 0xF6, 0x00, 0x0D, 0x94, 0xEC, + 0x00, 0x10, 0x92, 0xF0, 0x00, 0x10, 0x92, 0xF0, 0x00, 0x4B, 0xC5, 0xF0, 0x00, 0x49, 0xC4, 0xF0, 0x00, 0x48, 0xC4, + 0xF1, 0x00, 0x46, 0xC3, 0xF1, 0x00, 0x44, 0xC2, 0xF2, 0x00, 0x3F, 0xC3, 0xF4, 0x00, 0x3A, 0xC4, 0xF6, 0x00, 0x3C, + 0xBF, 0xF3, 0x00, 0x3D, 0xBA, 0xEF, 0x00, 0x2C, 0xCA, 0xFF, 0x00, 0xFF, 0x5D, 0x24, 0x00, 0xFE, 0x6D, 0x2E, 0x00, + 0xF2, 0x7D, 0x38, 0x00, 0xF5, 0x93, 0x48, 0x00, 0xF7, 0xA9, 0x57, 0x00, 0xF7, 0xC0, 0x82, 0x00, 0xF7, 0xD7, 0xAE, + 0x00, 0xFF, 0xC2, 0x6C, 0x00, 0xFE, 0xDA, 0x84, 0x00, 0xFA, 0xE4, 0x8B, 0x00, 0xF6, 0xEE, 0x93, 0x00, 0xF8, 0xED, + 0x9D, 0x00, 0xF9, 0xEC, 0xA7, 0x00, 0xF8, 0xF1, 0xB3, 0x00, 0xF7, 0xF6, 0xC0, 0x00, 0xFB, 0xF6, 0xC8, 0x00, 0xFF, + 0xF6, 0xD0, 0x00, 0xFE, 0xF2, 0xD3, 0x00, 0xFB, 0xF3, 0xB9, 0x00, 0xFF, 0xFD, 0xE7, 0x00, 0xF6, 0xFD, 0xE9, 0x00, + 0xFC, 0xFC, 0xE2, 0x00, 0xFF, 0xFC, 0xDC, 0x00, 0x0B, 0x9D, 0xF1, 0x00, 0x29, 0xAA, 0xEC, 0x00, 0x1B, 0xAA, 0xF5, + 0x00, 0x7F, 0xC7, 0xD9, 0x00, 0xFD, 0xFE, 0xBA, 0x00, 0xE7, 0xF2, 0xBD, 0x00, 0xEB, 0xF4, 0xC3, 0x00, 0xEE, 0xF6, + 0xCA, 0x00, 0xEF, 0xF6, 0xCA, 0x00, 0xEF, 0xF7, 0xCB, 0x00, 0xED, 0xF6, 0xC5, 0x00, 0xEB, 0xF5, 0xBF, 0x00, 0xE9, + 0xF3, 0xBE, 0x00, 0xE8, 0xF2, 0xBC, 0x00, 0xE3, 0xF4, 0xB3, 0x00, 0xDF, 0xF6, 0xAB, 0x00, 0xD0, 0xF1, 0x91, 0x00, + 0xC1, 0xEC, 0x77, 0x00, 0xAF, 0xE3, 0x62, 0x00, 0x9E, 0xDB, 0x4E, 0x00, 0x94, 0xD3, 0x47, 0x00, 0x8A, 0xCC, 0x41, + 0x00, 0x7F, 0xC2, 0x3B, 0x00, 0x73, 0xB8, 0x35, 0x00, 0x69, 0xAC, 0x30, 0x00, 0x60, 0xA5, 0x10, 0x00, 0x22, 0x96, + 0x86, 0x00, 0x0A, 0x91, 0xF0, 0x00, 0x0E, 0x92, 0xF2, 0x00, 0x11, 0x94, 0xF4, 0x00, 0x11, 0x94, 0xF4, 0x00, 0x4C, + 0xC5, 0xF1, 0x00, 0x4A, 0xC5, 0xF1, 0x00, 0x49, 0xC4, 0xF1, 0x00, 0x47, 0xC4, 0xF2, 0x00, 0x45, 0xC3, 0xF2, 0x00, + 0x43, 0xC3, 0xF1, 0x00, 0x40, 0xC4, 0xF0, 0x00, 0x42, 0xBF, 0xF3, 0x00, 0x39, 0xC0, 0xF5, 0x00, 0x5E, 0xAC, 0xCA, + 0x00, 0xFA, 0x58, 0x1E, 0x00, 0xF3, 0x6E, 0x30, 0x00, 0xF7, 0x80, 0x35, 0x00, 0xFB, 0x92, 0x3E, 0x00, 0xFB, 0xAF, + 0x5D, 0x00, 0xFF, 0xC2, 0x72, 0x00, 0xFD, 0xE1, 0xBA, 0x00, 0xFF, 0xCD, 0x74, 0x00, 0xFF, 0xD3, 0x71, 0x00, 0xFF, + 0xE5, 0x83, 0x00, 0xFF, 0xF7, 0x95, 0x00, 0xFE, 0xF4, 0xA1, 0x00, 0xFD, 0xF0, 0xAD, 0x00, 0xFF, 0xF8, 0xC1, 0x00, + 0xFB, 0xF7, 0xCD, 0x00, 0xFE, 0xF8, 0xD1, 0x00, 0xFF, 0xF9, 0xD6, 0x00, 0xFE, 0xF6, 0xE0, 0x00, 0xFB, 0xF5, 0xDD, + 0x00, 0xFF, 0xFB, 0xED, 0x00, 0xFB, 0xFB, 0xE8, 0x00, 0xFF, 0xFC, 0xDF, 0x00, 0xB2, 0xE0, 0xE8, 0x00, 0x18, 0xA3, + 0xEF, 0x00, 0x25, 0xAA, 0xEC, 0x00, 0x15, 0xA8, 0xF5, 0x00, 0xC2, 0xE3, 0xD8, 0x00, 0xF9, 0xF9, 0xC5, 0x00, 0xEE, + 0xF5, 0xCA, 0x00, 0xEF, 0xF6, 0xCE, 0x00, 0xF0, 0xF7, 0xD2, 0x00, 0xF1, 0xF8, 0xD1, 0x00, 0xF1, 0xF9, 0xD0, 0x00, + 0xF1, 0xF9, 0xCD, 0x00, 0xF1, 0xF9, 0xC9, 0x00, 0xF2, 0xFB, 0xC9, 0x00, 0xF4, 0xFC, 0xCA, 0x00, 0xE6, 0xF8, 0xB6, + 0x00, 0xD9, 0xF3, 0xA2, 0x00, 0xCA, 0xEF, 0x89, 0x00, 0xBC, 0xEB, 0x71, 0x00, 0xB0, 0xE6, 0x61, 0x00, 0xA4, 0xE1, + 0x50, 0x00, 0x99, 0xD9, 0x48, 0x00, 0x8F, 0xD2, 0x40, 0x00, 0x83, 0xC7, 0x3A, 0x00, 0x77, 0xBC, 0x34, 0x00, 0x6A, + 0xB2, 0x1C, 0x00, 0x5D, 0xA9, 0x04, 0x00, 0x13, 0x8D, 0xEA, 0x00, 0x11, 0x93, 0xEF, 0x00, 0x0F, 0x92, 0xEF, 0x00, + 0x0E, 0x92, 0xF0, 0x00, 0x0E, 0x92, 0xF0, 0x00, 0x4D, 0xC6, 0xF2, 0x00, 0x4B, 0xC5, 0xF2, 0x00, 0x4A, 0xC5, 0xF2, + 0x00, 0x48, 0xC5, 0xF2, 0x00, 0x46, 0xC4, 0xF2, 0x00, 0x46, 0xC4, 0xEE, 0x00, 0x46, 0xC4, 0xEA, 0x00, 0x48, 0xBF, + 0xF2, 0x00, 0x34, 0xC6, 0xFB, 0x00, 0x98, 0x95, 0x91, 0x00, 0xFC, 0x64, 0x27, 0x00, 0xF1, 0x76, 0x3B, 0x00, 0xFC, + 0x83, 0x32, 0x00, 0xFF, 0x91, 0x34, 0x00, 0xFF, 0xB4, 0x63, 0x00, 0xFF, 0xBD, 0x5A, 0x00, 0xF3, 0xDC, 0xB5, 0x00, + 0xCB, 0xD0, 0x97, 0x00, 0xB4, 0xCE, 0xA4, 0x00, 0xAF, 0xD2, 0xB0, 0x00, 0xAB, 0xD6, 0xBC, 0x00, 0xC2, 0xE1, 0xBE, + 0x00, 0xDA, 0xEB, 0xC0, 0x00, 0xF5, 0xFC, 0xC7, 0x00, 0xFF, 0xFE, 0xBD, 0x00, 0xFF, 0xFD, 0xCC, 0x00, 0xFF, 0xFC, + 0xDB, 0x00, 0xFE, 0xFC, 0xE0, 0x00, 0xFB, 0xFC, 0xE4, 0x00, 0xFD, 0xFB, 0xE6, 0x00, 0xFF, 0xFA, 0xE7, 0x00, 0xFF, + 0xFB, 0xDD, 0x00, 0x61, 0xC4, 0xF4, 0x00, 0x26, 0xAA, 0xEE, 0x00, 0x22, 0xAA, 0xEB, 0x00, 0x10, 0xA7, 0xF6, 0x00, + 0xFF, 0xFF, 0xD6, 0x00, 0xF5, 0xF4, 0xCF, 0x00, 0xF5, 0xF9, 0xD8, 0x00, 0xF4, 0xF9, 0xD9, 0x00, 0xF2, 0xF8, 0xD9, + 0x00, 0xF3, 0xF9, 0xD8, 0x00, 0xF4, 0xFB, 0xD6, 0x00, 0xF5, 0xFC, 0xD5, 0x00, 0xF6, 0xFD, 0xD3, 0x00, 0xF3, 0xFA, + 0xCD, 0x00, 0xEF, 0xF6, 0xC7, 0x00, 0xE1, 0xF3, 0xB0, 0x00, 0xD3, 0xF0, 0x98, 0x00, 0xC5, 0xED, 0x82, 0x00, 0xB7, + 0xEB, 0x6B, 0x00, 0xB0, 0xE9, 0x5F, 0x00, 0xAA, 0xE7, 0x53, 0x00, 0x9F, 0xDF, 0x49, 0x00, 0x93, 0xD7, 0x3E, 0x00, + 0x87, 0xCB, 0x39, 0x00, 0x7B, 0xBF, 0x34, 0x00, 0x6B, 0xB4, 0x25, 0x00, 0x5B, 0xA2, 0x32, 0x00, 0x04, 0x94, 0xF9, + 0x00, 0x17, 0x94, 0xED, 0x00, 0x11, 0x92, 0xEC, 0x00, 0x0B, 0x91, 0xEB, 0x00, 0x0B, 0x91, 0xEB, 0x00, 0x4E, 0xC7, + 0xF2, 0x00, 0x4D, 0xC7, 0xF3, 0x00, 0x4C, 0xC7, 0xF3, 0x00, 0x4A, 0xC7, 0xF3, 0x00, 0x49, 0xC7, 0xF4, 0x00, 0x47, + 0xC4, 0xF1, 0x00, 0x45, 0xC1, 0xEE, 0x00, 0x42, 0xC2, 0xF7, 0x00, 0x33, 0xC8, 0xFF, 0x00, 0xDE, 0x67, 0x46, 0x00, + 0xFF, 0x63, 0x2A, 0x00, 0xFF, 0x6F, 0x1B, 0x00, 0xE0, 0x8B, 0x52, 0x00, 0xA3, 0xA0, 0x84, 0x00, 0x62, 0xC1, 0xCC, + 0x00, 0x26, 0xC0, 0xFF, 0x00, 0x29, 0xB7, 0xFF, 0x00, 0x24, 0xB5, 0xF1, 0x00, 0x27, 0xB7, 0xF9, 0x00, 0x25, 0xB5, + 0xF6, 0x00, 0x23, 0xB2, 0xF2, 0x00, 0x24, 0xB5, 0xFA, 0x00, 0x24, 0xB7, 0xFF, 0x00, 0x17, 0x9D, 0xDE, 0x00, 0x42, + 0xBA, 0xF4, 0x00, 0x9E, 0xDA, 0xE7, 0x00, 0xF9, 0xF9, 0xDC, 0x00, 0xF3, 0xFB, 0xE6, 0x00, 0xFF, 0xFF, 0xE9, 0x00, + 0xFD, 0xFF, 0xE6, 0x00, 0xFA, 0xFB, 0xE2, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x1D, 0xA7, 0xEF, 0x00, 0x1C, 0xA7, 0xF0, + 0x00, 0x1A, 0xA7, 0xF1, 0x00, 0x5A, 0xC4, 0xF0, 0x00, 0xFF, 0xFF, 0xE7, 0x00, 0xFA, 0xF9, 0xE1, 0x00, 0xFA, 0xFB, + 0xE2, 0x00, 0xF8, 0xFB, 0xDF, 0x00, 0xF5, 0xFA, 0xDC, 0x00, 0xF5, 0xFB, 0xDB, 0x00, 0xF5, 0xFB, 0xD9, 0x00, 0xF5, + 0xFC, 0xD6, 0x00, 0xF5, 0xFD, 0xD3, 0x00, 0xF0, 0xF8, 0xC8, 0x00, 0xEA, 0xF4, 0xBD, 0x00, 0xDF, 0xF1, 0xA8, 0x00, + 0xD4, 0xEF, 0x93, 0x00, 0xC6, 0xF3, 0x7A, 0x00, 0xB9, 0xF8, 0x61, 0x00, 0xB0, 0xEF, 0x57, 0x00, 0xA6, 0xE6, 0x4D, + 0x00, 0xA3, 0xE2, 0x48, 0x00, 0x98, 0xD6, 0x3A, 0x00, 0x89, 0xCD, 0x37, 0x00, 0x7B, 0xC3, 0x35, 0x00, 0x6F, 0xB7, + 0x20, 0x00, 0x3A, 0x9C, 0x84, 0x00, 0x0C, 0x93, 0xF4, 0x00, 0x13, 0x94, 0xEC, 0x00, 0x11, 0x93, 0xE9, 0x00, 0x0F, + 0x92, 0xE6, 0x00, 0x0F, 0x92, 0xE6, 0x00, 0x50, 0xC9, 0xF3, 0x00, 0x4F, 0xC9, 0xF4, 0x00, 0x4E, 0xC9, 0xF4, 0x00, + 0x4D, 0xCA, 0xF5, 0x00, 0x4B, 0xCA, 0xF5, 0x00, 0x48, 0xC5, 0xF4, 0x00, 0x44, 0xBF, 0xF3, 0x00, 0x47, 0xC1, 0xEE, + 0x00, 0x4A, 0xC4, 0xEA, 0x00, 0xFF, 0x52, 0x1F, 0x00, 0xA6, 0x9A, 0x92, 0x00, 0x51, 0xB6, 0xE6, 0x00, 0x28, 0xC7, + 0xFF, 0x00, 0x2C, 0xC4, 0xF8, 0x00, 0x30, 0xC0, 0xF0, 0x00, 0x3F, 0xBA, 0xEF, 0x00, 0x37, 0xBF, 0xEF, 0x00, 0x38, + 0xB9, 0xEF, 0x00, 0x3A, 0xB2, 0xF0, 0x00, 0x38, 0xB5, 0xF3, 0x00, 0x35, 0xB7, 0xF6, 0x00, 0x32, 0xB9, 0xEF, 0x00, + 0x2F, 0xBB, 0xE8, 0x00, 0x2F, 0xB8, 0xEA, 0x00, 0x2F, 0xB4, 0xED, 0x00, 0x1F, 0xAC, 0xF3, 0x00, 0x10, 0xA3, 0xF9, + 0x00, 0x6F, 0xC9, 0xF2, 0x00, 0xF5, 0xF9, 0xDF, 0x00, 0xF5, 0xFB, 0xDE, 0x00, 0xF5, 0xFD, 0xDD, 0x00, 0xD7, 0xEA, + 0xE3, 0x00, 0x10, 0xA5, 0xEE, 0x00, 0x2D, 0xB2, 0xF4, 0x00, 0x13, 0xA5, 0xF7, 0x00, 0xA5, 0xE1, 0xEB, 0x00, 0xFF, + 0xFF, 0xF8, 0x00, 0xFF, 0xFE, 0xF2, 0x00, 0xFF, 0xFD, 0xEC, 0x00, 0xFC, 0xFC, 0xE6, 0x00, 0xF7, 0xFC, 0xDF, 0x00, + 0xF7, 0xFC, 0xDE, 0x00, 0xF6, 0xFC, 0xDC, 0x00, 0xF5, 0xFC, 0xD7, 0x00, 0xF4, 0xFC, 0xD3, 0x00, 0xED, 0xF7, 0xC3, + 0x00, 0xE5, 0xF1, 0xB4, 0x00, 0xE4, 0xF5, 0xB7, 0x00, 0xE4, 0xF9, 0xBB, 0x00, 0xEB, 0xFE, 0xD2, 0x00, 0xF2, 0xFF, + 0xE9, 0x00, 0xED, 0xFE, 0xDB, 0x00, 0xE8, 0xF9, 0xCD, 0x00, 0xCA, 0xEF, 0x89, 0x00, 0x9C, 0xD6, 0x35, 0x00, 0x83, + 0xC6, 0x2D, 0x00, 0x6B, 0xB7, 0x25, 0x00, 0x6C, 0xB3, 0x14, 0x00, 0x1A, 0x95, 0xD6, 0x00, 0x15, 0x91, 0xEE, 0x00, + 0x0F, 0x93, 0xEB, 0x00, 0x10, 0x93, 0xE6, 0x00, 0x12, 0x93, 0xE0, 0x00, 0x12, 0x93, 0xE0, 0x00, 0x52, 0xCA, 0xF4, + 0x00, 0x50, 0xCA, 0xF4, 0x00, 0x4E, 0xCA, 0xF3, 0x00, 0x4C, 0xC9, 0xF3, 0x00, 0x4A, 0xC9, 0xF3, 0x00, 0x48, 0xC8, + 0xF4, 0x00, 0x46, 0xC6, 0xF6, 0x00, 0x3F, 0xBF, 0xEC, 0x00, 0x41, 0xBF, 0xEB, 0x00, 0x40, 0xD4, 0xF8, 0x00, 0x33, + 0xC9, 0xFC, 0x00, 0x2F, 0xC9, 0xFF, 0x00, 0x42, 0xC2, 0xEC, 0x00, 0x40, 0xC3, 0xF4, 0x00, 0x3E, 0xC3, 0xFC, 0x00, + 0x34, 0xBB, 0xF3, 0x00, 0x33, 0xBB, 0xF2, 0x00, 0x49, 0xBD, 0xF6, 0x00, 0x38, 0xB7, 0xF8, 0x00, 0x36, 0xB7, 0xF5, + 0x00, 0x34, 0xB7, 0xF2, 0x00, 0x2E, 0xB5, 0xF3, 0x00, 0x27, 0xB3, 0xF5, 0x00, 0x2F, 0xBA, 0xF7, 0x00, 0x2F, 0xBA, + 0xF2, 0x00, 0x30, 0xB5, 0xF1, 0x00, 0x31, 0xB0, 0xF0, 0x00, 0x1E, 0xAC, 0xF6, 0x00, 0x0C, 0xAA, 0xED, 0x00, 0x7E, + 0xD2, 0xEC, 0x00, 0xFF, 0xFF, 0xE6, 0x00, 0x80, 0xD9, 0xD2, 0x00, 0x2E, 0xA9, 0xF8, 0x00, 0x1C, 0xAF, 0xEB, 0x00, + 0x02, 0xAA, 0xE5, 0x00, 0xFF, 0xF8, 0xFF, 0x00, 0xFF, 0xFF, 0xFE, 0x00, 0xFF, 0xFE, 0xF9, 0x00, 0xFF, 0xFD, 0xF4, + 0x00, 0xFD, 0xFD, 0xEB, 0x00, 0xFA, 0xFE, 0xE2, 0x00, 0xF9, 0xFD, 0xE1, 0x00, 0xF7, 0xFC, 0xE0, 0x00, 0xF5, 0xFC, + 0xD7, 0x00, 0xF3, 0xFD, 0xCF, 0x00, 0xF4, 0xFB, 0xE2, 0x00, 0xF6, 0xFD, 0xE7, 0x00, 0xF3, 0xFD, 0xE8, 0x00, 0xF0, + 0xFD, 0xE9, 0x00, 0xEB, 0xFD, 0xD3, 0x00, 0xE5, 0xFC, 0xBD, 0x00, 0xDF, 0xF7, 0xBA, 0x00, 0xDA, 0xF2, 0xB6, 0x00, + 0xE9, 0xFB, 0xD2, 0x00, 0xF1, 0xFC, 0xE6, 0x00, 0xB6, 0xDE, 0x8D, 0x00, 0x84, 0xC7, 0x3C, 0x00, 0x99, 0xB7, 0x47, + 0x00, 0x13, 0xA1, 0xF8, 0x00, 0x04, 0x94, 0xF2, 0x00, 0x10, 0x94, 0xEE, 0x00, 0x10, 0x94, 0xEC, 0x00, 0x10, 0x95, + 0xE9, 0x00, 0x10, 0x95, 0xE9, 0x00, 0x53, 0xCC, 0xF5, 0x00, 0x50, 0xCB, 0xF3, 0x00, 0x4E, 0xCA, 0xF2, 0x00, 0x4B, + 0xC9, 0xF1, 0x00, 0x48, 0xC7, 0xF0, 0x00, 0x48, 0xCB, 0xF4, 0x00, 0x47, 0xCE, 0xF9, 0x00, 0x40, 0xC4, 0xF2, 0x00, + 0x48, 0xCA, 0xFC, 0x00, 0x3F, 0xC2, 0xF0, 0x00, 0x46, 0xC9, 0xF5, 0x00, 0x46, 0xC7, 0xF4, 0x00, 0x45, 0xC4, 0xF3, + 0x00, 0x38, 0xB4, 0xED, 0x00, 0x2C, 0xA5, 0xE8, 0x00, 0x2E, 0xB0, 0xE1, 0x00, 0x56, 0xC0, 0xEA, 0x00, 0x6C, 0xC8, + 0xE9, 0x00, 0x36, 0xC1, 0xE4, 0x00, 0x50, 0xC9, 0xEB, 0x00, 0x6A, 0xD1, 0xF1, 0x00, 0x73, 0xD0, 0xF5, 0x00, 0x7D, + 0xCF, 0xF9, 0x00, 0x56, 0xC7, 0xF8, 0x00, 0x1F, 0xAF, 0xE7, 0x00, 0x25, 0xB1, 0xED, 0x00, 0x2B, 0xB2, 0xF4, 0x00, + 0x3E, 0xB5, 0xF9, 0x00, 0x2A, 0xB3, 0xEE, 0x00, 0x1B, 0xAF, 0xF5, 0x00, 0x32, 0xB5, 0xF0, 0x00, 0x3F, 0xB1, 0xF9, + 0x00, 0x26, 0xA9, 0xF2, 0x00, 0x1F, 0xAE, 0xEA, 0x00, 0x3F, 0xB8, 0xF3, 0x00, 0xFB, 0xFF, 0xF3, 0x00, 0xFF, 0xFF, + 0xFF, 0x00, 0xFE, 0xFF, 0xFF, 0x00, 0xFE, 0xFD, 0xFB, 0x00, 0xFE, 0xFE, 0xF0, 0x00, 0xFD, 0xFF, 0xE5, 0x00, 0xFB, + 0xFE, 0xE4, 0x00, 0xF8, 0xFC, 0xE3, 0x00, 0xF5, 0xFD, 0xD7, 0x00, 0xF2, 0xFD, 0xCB, 0x00, 0xF4, 0xFB, 0xEB, 0x00, + 0xF6, 0xFE, 0xEE, 0x00, 0xF1, 0xFD, 0xDE, 0x00, 0xED, 0xFB, 0xCE, 0x00, 0xE2, 0xF9, 0xB0, 0x00, 0xD8, 0xF6, 0x91, + 0x00, 0xD2, 0xF3, 0x8A, 0x00, 0xCC, 0xF1, 0x83, 0x00, 0xCE, 0xEE, 0x96, 0x00, 0xD0, 0xEA, 0xA9, 0x00, 0xDA, 0xEA, + 0xC0, 0x00, 0xF4, 0xFA, 0xE8, 0x00, 0x7E, 0xC6, 0x78, 0x00, 0x59, 0xC0, 0xFF, 0x00, 0x19, 0xA0, 0xEA, 0x00, 0x10, + 0x95, 0xF2, 0x00, 0x0F, 0x96, 0xF2, 0x00, 0x0D, 0x96, 0xF2, 0x00, 0x0D, 0x96, 0xF2, 0x00, 0x54, 0xCD, 0xF4, 0x00, + 0x51, 0xCB, 0xF4, 0x00, 0x4F, 0xCA, 0xF3, 0x00, 0x4C, 0xC9, 0xF2, 0x00, 0x4A, 0xC8, 0xF2, 0x00, 0x48, 0xC6, 0xF1, + 0x00, 0x47, 0xC4, 0xF1, 0x00, 0x48, 0xD2, 0xF3, 0x00, 0x46, 0xC7, 0xF3, 0x00, 0x4C, 0xC5, 0xFB, 0x00, 0x2B, 0x9A, + 0xDC, 0x00, 0x17, 0x83, 0xCD, 0x00, 0x03, 0x6B, 0xBE, 0x00, 0x00, 0x7F, 0xC5, 0x00, 0x0E, 0x96, 0xD4, 0x00, 0x2E, + 0xAC, 0xDB, 0x00, 0x60, 0xC5, 0xEA, 0x00, 0x75, 0xCC, 0xEF, 0x00, 0x51, 0xCA, 0xEA, 0x00, 0x69, 0xD2, 0xEF, 0x00, + 0x81, 0xDA, 0xF5, 0x00, 0x99, 0xE4, 0xF7, 0x00, 0xB2, 0xEE, 0xF9, 0x00, 0xCE, 0xFA, 0xFF, 0x00, 0xE2, 0xFE, 0xFF, + 0x00, 0x99, 0xE1, 0xFF, 0x00, 0x48, 0xBC, 0xF7, 0x00, 0x10, 0xB4, 0xDC, 0x00, 0x31, 0xAD, 0xF0, 0x00, 0x27, 0xAC, + 0xFB, 0x00, 0x30, 0xB2, 0xF3, 0x00, 0x34, 0xB1, 0xF5, 0x00, 0x24, 0xAD, 0xF0, 0x00, 0x26, 0xAC, 0xF6, 0x00, 0x97, + 0xD1, 0xFC, 0x00, 0xFF, 0xFD, 0xF7, 0x00, 0xFE, 0xFF, 0xFF, 0x00, 0xFE, 0xFF, 0xFB, 0x00, 0xFE, 0xFF, 0xF3, 0x00, + 0xFD, 0xFF, 0xED, 0x00, 0xFC, 0xFD, 0xE7, 0x00, 0xFB, 0xFE, 0xE3, 0x00, 0xF9, 0xFE, 0xDF, 0x00, 0xF8, 0xFD, 0xE7, + 0x00, 0xF7, 0xFC, 0xEF, 0x00, 0xF3, 0xFB, 0xEB, 0x00, 0xEF, 0xFD, 0xD8, 0x00, 0xE8, 0xFA, 0xC2, 0x00, 0xE2, 0xF8, + 0xAB, 0x00, 0xD8, 0xF4, 0x9B, 0x00, 0xCE, 0xEF, 0x8A, 0x00, 0xC1, 0xEA, 0x76, 0x00, 0xB4, 0xE5, 0x61, 0x00, 0xAB, + 0xDD, 0x5A, 0x00, 0xA2, 0xD2, 0x61, 0x00, 0xC1, 0xE9, 0x8D, 0x00, 0xDA, 0xE7, 0xB8, 0x00, 0x96, 0xD4, 0xFF, 0x00, + 0x8E, 0xD0, 0xFA, 0x00, 0x41, 0xAD, 0xED, 0x00, 0x10, 0x95, 0xF1, 0x00, 0x0F, 0x95, 0xF1, 0x00, 0x0E, 0x96, 0xF1, + 0x00, 0x0E, 0x96, 0xF1, 0x00, 0x54, 0xCD, 0xF4, 0x00, 0x52, 0xCC, 0xF4, 0x00, 0x50, 0xCB, 0xF4, 0x00, 0x4E, 0xC9, + 0xF3, 0x00, 0x4B, 0xC8, 0xF3, 0x00, 0x51, 0xC9, 0xF6, 0x00, 0x56, 0xCA, 0xFA, 0x00, 0x44, 0xC0, 0xEA, 0x00, 0x19, + 0x74, 0xC6, 0x00, 0x00, 0x58, 0xAD, 0x00, 0x01, 0x5B, 0xB3, 0x00, 0x06, 0x6F, 0xC0, 0x00, 0x0B, 0x84, 0xCC, 0x00, + 0x00, 0x93, 0xCE, 0x00, 0x11, 0xA7, 0xDF, 0x00, 0x3E, 0xB9, 0xE5, 0x00, 0x6A, 0xCA, 0xEB, 0x00, 0x7E, 0xD1, 0xF5, + 0x00, 0x6B, 0xD3, 0xF0, 0x00, 0x81, 0xDB, 0xF4, 0x00, 0x97, 0xE3, 0xF8, 0x00, 0xA4, 0xEB, 0xF7, 0x00, 0xB1, 0xF4, + 0xF5, 0x00, 0xC7, 0xF7, 0xF9, 0x00, 0xDC, 0xFA, 0xFC, 0x00, 0xF2, 0xFF, 0xFF, 0x00, 0xF8, 0xFF, 0xF5, 0x00, 0xBB, + 0xEB, 0xFD, 0x00, 0x22, 0xB4, 0xF2, 0x00, 0x28, 0xAF, 0xFF, 0x00, 0x2F, 0xB0, 0xF6, 0x00, 0x29, 0xB0, 0xF2, 0x00, + 0x22, 0xB1, 0xEE, 0x00, 0x19, 0xA7, 0xF9, 0x00, 0xC9, 0xE6, 0xF4, 0x00, 0xF7, 0xF7, 0xF4, 0x00, 0xFE, 0xFF, 0xFF, + 0x00, 0xFE, 0xFF, 0xF6, 0x00, 0xFD, 0xFF, 0xEC, 0x00, 0xFC, 0xFF, 0xEA, 0x00, 0xFA, 0xFA, 0xE8, 0x00, 0xFB, 0xFD, + 0xE2, 0x00, 0xFB, 0xFF, 0xDC, 0x00, 0xFB, 0xFF, 0xE9, 0x00, 0xFB, 0xFF, 0xF6, 0x00, 0xF1, 0xFD, 0xDC, 0x00, 0xE7, + 0xFB, 0xC3, 0x00, 0xDF, 0xF5, 0xB4, 0x00, 0xD8, 0xF0, 0xA5, 0x00, 0xCE, 0xEC, 0x94, 0x00, 0xC4, 0xE8, 0x83, 0x00, + 0xB7, 0xE5, 0x77, 0x00, 0xAB, 0xE3, 0x6B, 0x00, 0xA0, 0xDE, 0x52, 0x00, 0x94, 0xD4, 0x55, 0x00, 0x7F, 0xBD, 0x40, + 0x00, 0xD1, 0xE4, 0x98, 0x00, 0x2B, 0xA1, 0xF4, 0x00, 0x2F, 0xA1, 0xF6, 0x00, 0x1F, 0x9B, 0xF3, 0x00, 0x0F, 0x95, + 0xF0, 0x00, 0x0F, 0x95, 0xF0, 0x00, 0x0F, 0x95, 0xF0, 0x00, 0x0F, 0x95, 0xF0, 0x00, 0x55, 0xCE, 0xF4, 0x00, 0x53, + 0xCC, 0xF4, 0x00, 0x51, 0xCB, 0xF4, 0x00, 0x4F, 0xCA, 0xF5, 0x00, 0x4E, 0xC9, 0xF6, 0x00, 0x4D, 0xC9, 0xF4, 0x00, + 0x53, 0xD0, 0xFA, 0x00, 0x2A, 0x86, 0xCD, 0x00, 0x06, 0x52, 0xB0, 0x00, 0x04, 0x5F, 0xB8, 0x00, 0x0A, 0x73, 0xC8, + 0x00, 0x08, 0x82, 0xCE, 0x00, 0x06, 0x91, 0xD3, 0x00, 0x01, 0xA0, 0xD5, 0x00, 0x24, 0xB4, 0xE6, 0x00, 0x4C, 0xC4, + 0xEA, 0x00, 0x74, 0xD3, 0xED, 0x00, 0x83, 0xD9, 0xF4, 0x00, 0x7E, 0xDC, 0xF3, 0x00, 0x93, 0xE4, 0xF6, 0x00, 0xA8, + 0xEC, 0xF8, 0x00, 0xB5, 0xF2, 0xF9, 0x00, 0xC3, 0xF8, 0xF9, 0x00, 0xD3, 0xFA, 0xFA, 0x00, 0xE2, 0xFB, 0xFB, 0x00, + 0xED, 0xFE, 0xFB, 0x00, 0xEF, 0xF9, 0xF3, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFD, 0xFF, 0x00, 0x7E, 0xDC, 0xEE, + 0x00, 0x26, 0xAD, 0xFD, 0x00, 0x29, 0xAF, 0xF7, 0x00, 0x2D, 0xB1, 0xF1, 0x00, 0x34, 0xB1, 0xDF, 0x00, 0x09, 0xA6, + 0xF6, 0x00, 0x8C, 0xD3, 0xF4, 0x00, 0xFC, 0xFB, 0xF8, 0x00, 0xFF, 0xFF, 0xF6, 0x00, 0xFD, 0xFF, 0xEB, 0x00, 0xFC, + 0xFE, 0xE5, 0x00, 0xFB, 0xFB, 0xE0, 0x00, 0xF9, 0xFC, 0xDE, 0x00, 0xF7, 0xFC, 0xDC, 0x00, 0xFC, 0xFF, 0xEF, 0x00, + 0xF8, 0xFC, 0xEB, 0x00, 0xE8, 0xF5, 0xD0, 0x00, 0xDF, 0xF5, 0xBC, 0x00, 0xD8, 0xF1, 0xAC, 0x00, 0xD2, 0xED, 0x9D, + 0x00, 0xC4, 0xE8, 0x7D, 0x00, 0xB7, 0xE1, 0x6C, 0x00, 0xAB, 0xDC, 0x5E, 0x00, 0x9E, 0xD7, 0x4F, 0x00, 0x98, 0xC9, + 0x5E, 0x00, 0x92, 0xC6, 0x35, 0x00, 0x8B, 0xC9, 0x42, 0x00, 0x80, 0xB2, 0x4D, 0x00, 0x00, 0x9B, 0xF1, 0x00, 0x17, + 0x93, 0xF8, 0x00, 0x15, 0x95, 0xF4, 0x00, 0x12, 0x97, 0xF1, 0x00, 0x11, 0x96, 0xF0, 0x00, 0x10, 0x95, 0xEF, 0x00, + 0x10, 0x95, 0xEF, 0x00, 0x55, 0xCE, 0xF4, 0x00, 0x54, 0xCD, 0xF4, 0x00, 0x52, 0xCC, 0xF5, 0x00, 0x51, 0xCB, 0xF6, + 0x00, 0x50, 0xCB, 0xF8, 0x00, 0x49, 0xC8, 0xF1, 0x00, 0x51, 0xD5, 0xF9, 0x00, 0x15, 0x62, 0xC0, 0x00, 0x00, 0x5C, + 0xBB, 0x00, 0x07, 0x74, 0xCC, 0x00, 0x02, 0x7C, 0xCD, 0x00, 0x02, 0x8D, 0xD4, 0x00, 0x01, 0x9E, 0xDB, 0x00, 0x08, + 0xAD, 0xDC, 0x00, 0x36, 0xC1, 0xED, 0x00, 0x5A, 0xCF, 0xEE, 0x00, 0x7D, 0xDC, 0xF0, 0x00, 0x87, 0xE1, 0xF3, 0x00, + 0x91, 0xE6, 0xF7, 0x00, 0xA5, 0xED, 0xF8, 0x00, 0xB8, 0xF5, 0xF8, 0x00, 0xC6, 0xF9, 0xFB, 0x00, 0xD4, 0xFD, 0xFD, + 0x00, 0xDF, 0xFC, 0xFB, 0x00, 0xE9, 0xFC, 0xFA, 0x00, 0xF0, 0xFE, 0xFD, 0x00, 0xF7, 0xFF, 0xFF, 0x00, 0xFA, 0xFF, + 0xFE, 0x00, 0xFC, 0xFE, 0xFB, 0x00, 0xFD, 0xFA, 0xFF, 0x00, 0x1D, 0xAF, 0xE7, 0x00, 0x2A, 0xB0, 0xEE, 0x00, 0x37, + 0xB1, 0xF5, 0x00, 0x24, 0xB8, 0xF6, 0x00, 0x28, 0xB4, 0xF7, 0x00, 0x21, 0xAF, 0xF4, 0x00, 0x1A, 0xAA, 0xF2, 0x00, + 0x9E, 0xD7, 0xF5, 0x00, 0xFC, 0xFF, 0xE9, 0x00, 0xFC, 0xFE, 0xE0, 0x00, 0xFC, 0xFD, 0xD7, 0x00, 0xF8, 0xFA, 0xDA, + 0x00, 0xF3, 0xF7, 0xDD, 0x00, 0xFD, 0xFD, 0xF4, 0x00, 0xF6, 0xF9, 0xE0, 0x00, 0xDF, 0xEC, 0xC3, 0x00, 0xD7, 0xEF, + 0xB5, 0x00, 0xD2, 0xEC, 0xA5, 0x00, 0xCC, 0xE9, 0x95, 0x00, 0xBB, 0xE5, 0x67, 0x00, 0xAB, 0xDB, 0x55, 0x00, 0x9E, + 0xD3, 0x44, 0x00, 0x91, 0xCB, 0x32, 0x00, 0x85, 0xC8, 0x24, 0x00, 0x79, 0xB4, 0x6A, 0x00, 0x3A, 0x9D, 0xAF, 0x00, + 0x0B, 0x97, 0xFF, 0x00, 0x18, 0x93, 0xF9, 0x00, 0x0F, 0x9B, 0xED, 0x00, 0x12, 0x9A, 0xF0, 0x00, 0x15, 0x98, 0xF3, + 0x00, 0x13, 0x96, 0xF1, 0x00, 0x11, 0x94, 0xEF, 0x00, 0x11, 0x94, 0xEF, 0x00, 0x58, 0xCF, 0xF4, 0x00, 0x55, 0xCE, + 0xF4, 0x00, 0x53, 0xCD, 0xF4, 0x00, 0x52, 0xCC, 0xF6, 0x00, 0x52, 0xCB, 0xF8, 0x00, 0x52, 0xD5, 0xFA, 0x00, 0x4E, + 0xC7, 0xFB, 0x00, 0x00, 0x4C, 0xAD, 0x00, 0x09, 0x6F, 0xCA, 0x00, 0x0B, 0x7F, 0xD3, 0x00, 0x05, 0x88, 0xD4, 0x00, + 0x04, 0x97, 0xDB, 0x00, 0x04, 0xA7, 0xE1, 0x00, 0x18, 0xB6, 0xE5, 0x00, 0x3F, 0xC7, 0xF1, 0x00, 0x62, 0xD3, 0xF3, + 0x00, 0x86, 0xDF, 0xF4, 0x00, 0x91, 0xE4, 0xF7, 0x00, 0x9B, 0xE9, 0xF9, 0x00, 0xAD, 0xF0, 0xF9, 0x00, 0xBF, 0xF7, + 0xF9, 0x00, 0xCB, 0xFA, 0xFB, 0x00, 0xD7, 0xFC, 0xFD, 0x00, 0xDE, 0xFD, 0xFC, 0x00, 0xE5, 0xFD, 0xFB, 0x00, 0xEF, + 0xFF, 0xFE, 0x00, 0xF9, 0xFF, 0xFF, 0x00, 0xF2, 0xFE, 0xFA, 0x00, 0xFE, 0xFE, 0xFC, 0x00, 0xC6, 0xE9, 0xFB, 0x00, + 0x1D, 0xAF, 0xEC, 0x00, 0x30, 0xB4, 0xF6, 0x00, 0x2F, 0xB6, 0xF8, 0x00, 0x19, 0xA7, 0xF6, 0x00, 0x26, 0xB0, 0xF0, + 0x00, 0x22, 0xAD, 0xF2, 0x00, 0x1D, 0xAB, 0xF5, 0x00, 0x26, 0xA9, 0xF9, 0x00, 0x1C, 0xA6, 0xF6, 0x00, 0x7D, 0xCD, + 0xE9, 0x00, 0xDF, 0xF4, 0xDC, 0x00, 0xEA, 0xFE, 0xAF, 0x00, 0xFD, 0xFD, 0xED, 0x00, 0xFF, 0xFF, 0xEF, 0x00, 0xFB, + 0xF8, 0xD3, 0x00, 0xEC, 0xEE, 0xB4, 0x00, 0xE6, 0xE9, 0xAB, 0x00, 0xD8, 0xE6, 0x89, 0x00, 0xCB, 0xE2, 0x67, 0x00, + 0xB8, 0xE1, 0x52, 0x00, 0xA6, 0xDD, 0x4C, 0x00, 0x74, 0xC5, 0x7E, 0x00, 0x42, 0xAD, 0xB0, 0x00, 0x22, 0x9B, 0xF3, + 0x00, 0x09, 0x9C, 0xFF, 0x00, 0x09, 0x98, 0xF5, 0x00, 0x10, 0x9C, 0xEE, 0x00, 0x17, 0x99, 0xED, 0x00, 0x14, 0x9D, + 0xED, 0x00, 0x14, 0x9B, 0xEF, 0x00, 0x15, 0x99, 0xF2, 0x00, 0x13, 0x97, 0xF0, 0x00, 0x11, 0x95, 0xEE, 0x00, 0x11, + 0x95, 0xEE, 0x00, 0x5A, 0xD0, 0xF5, 0x00, 0x57, 0xCF, 0xF4, 0x00, 0x54, 0xCE, 0xF3, 0x00, 0x53, 0xCC, 0xF5, 0x00, + 0x53, 0xCB, 0xF7, 0x00, 0x4C, 0xD3, 0xF4, 0x00, 0x2C, 0x9A, 0xDD, 0x00, 0x03, 0x5D, 0xC1, 0x00, 0x05, 0x72, 0xC8, + 0x00, 0x06, 0x83, 0xD2, 0x00, 0x07, 0x93, 0xDC, 0x00, 0x07, 0xA2, 0xE1, 0x00, 0x08, 0xB0, 0xE7, 0x00, 0x27, 0xBF, + 0xEE, 0x00, 0x47, 0xCD, 0xF6, 0x00, 0x6B, 0xD8, 0xF7, 0x00, 0x8E, 0xE2, 0xF9, 0x00, 0x9A, 0xE7, 0xFA, 0x00, 0xA6, + 0xEC, 0xFB, 0x00, 0xB6, 0xF3, 0xFA, 0x00, 0xC7, 0xF9, 0xFA, 0x00, 0xD0, 0xFB, 0xFB, 0x00, 0xD9, 0xFC, 0xFD, 0x00, + 0xDD, 0xFD, 0xFC, 0x00, 0xE2, 0xFE, 0xFC, 0x00, 0xEE, 0xFF, 0xFE, 0x00, 0xFB, 0xFF, 0xFF, 0x00, 0xEA, 0xFD, 0xF7, + 0x00, 0xFF, 0xFE, 0xFE, 0x00, 0x8F, 0xD7, 0xF7, 0x00, 0x1E, 0xAF, 0xF1, 0x00, 0x2E, 0xB0, 0xF6, 0x00, 0x17, 0xAB, + 0xEB, 0x00, 0xDF, 0xF7, 0xFD, 0x00, 0x24, 0xAC, 0xE9, 0x00, 0x22, 0xAC, 0xF0, 0x00, 0x21, 0xAC, 0xF8, 0x00, 0x26, + 0xAE, 0xF6, 0x00, 0x2B, 0xB0, 0xF5, 0x00, 0x19, 0xA9, 0xF4, 0x00, 0x08, 0xA2, 0xF3, 0x00, 0x22, 0xA7, 0xF9, 0x00, + 0x4C, 0xC1, 0xF2, 0x00, 0x6D, 0xCD, 0xEE, 0x00, 0x7D, 0xC9, 0xDB, 0x00, 0x7F, 0xCA, 0xC2, 0x00, 0x81, 0xC5, 0xC6, + 0x00, 0x60, 0xBC, 0xCB, 0x00, 0x40, 0xB3, 0xCF, 0x00, 0x24, 0xA7, 0xE9, 0x00, 0x07, 0x9B, 0xFF, 0x00, 0x10, 0x9D, + 0xFF, 0x00, 0x1A, 0x9F, 0xFF, 0x00, 0x0F, 0x98, 0xE9, 0x00, 0x14, 0x9C, 0xF9, 0x00, 0x14, 0x9C, 0xF7, 0x00, 0x14, + 0x9B, 0xF4, 0x00, 0x17, 0x9D, 0xF1, 0x00, 0x19, 0x9E, 0xED, 0x00, 0x16, 0x9C, 0xEF, 0x00, 0x14, 0x99, 0xF1, 0x00, + 0x12, 0x97, 0xEF, 0x00, 0x10, 0x95, 0xED, 0x00, 0x10, 0x95, 0xED, 0x00, 0x5C, 0xD1, 0xF6, 0x00, 0x58, 0xD0, 0xF4, + 0x00, 0x55, 0xCF, 0xF3, 0x00, 0x54, 0xCD, 0xF5, 0x00, 0x53, 0xCC, 0xF7, 0x00, 0x51, 0xD5, 0xF6, 0x00, 0x16, 0x7B, + 0xCE, 0x00, 0x03, 0x67, 0xC6, 0x00, 0x06, 0x7B, 0xCF, 0x00, 0x05, 0x8B, 0xD7, 0x00, 0x05, 0x9B, 0xDF, 0x00, 0x07, + 0xA8, 0xE4, 0x00, 0x09, 0xB6, 0xEA, 0x00, 0x2A, 0xC3, 0xF1, 0x00, 0x4C, 0xD1, 0xF7, 0x00, 0x6C, 0xDB, 0xF8, 0x00, + 0x8D, 0xE4, 0xFA, 0x00, 0x9C, 0xEA, 0xFA, 0x00, 0xAB, 0xEF, 0xFB, 0x00, 0xBC, 0xF5, 0xFA, 0x00, 0xCD, 0xFA, 0xFA, + 0x00, 0xD4, 0xFB, 0xFB, 0x00, 0xDB, 0xFC, 0xFD, 0x00, 0xDC, 0xFD, 0xFC, 0x00, 0xDD, 0xFE, 0xFC, 0x00, 0xE3, 0xFE, + 0xFC, 0x00, 0xEA, 0xFE, 0xFD, 0x00, 0xFE, 0xFF, 0xFD, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x27, 0xC0, 0xDE, 0x00, 0x26, + 0xB4, 0xF5, 0x00, 0x1E, 0xB0, 0xF8, 0x00, 0x4D, 0xC6, 0xFF, 0x00, 0xFF, 0xF8, 0xEF, 0x00, 0xFE, 0xFF, 0xFA, 0x00, + 0x8B, 0xD8, 0xF6, 0x00, 0x18, 0xA7, 0xF3, 0x00, 0x1D, 0xA9, 0xF4, 0x00, 0x22, 0xAC, 0xF5, 0x00, 0x22, 0xAB, 0xF2, + 0x00, 0x22, 0xAB, 0xF0, 0x00, 0x1A, 0xA3, 0xF2, 0x00, 0x1A, 0xA6, 0xEE, 0x00, 0x17, 0xA8, 0xF4, 0x00, 0x0D, 0xA2, + 0xF3, 0x00, 0x10, 0xA4, 0xF2, 0x00, 0x14, 0xA3, 0xFF, 0x00, 0x15, 0xA3, 0xFC, 0x00, 0x16, 0xA2, 0xF9, 0x00, 0x17, + 0xA2, 0xF2, 0x00, 0x18, 0xA1, 0xEC, 0x00, 0x0D, 0x99, 0xFD, 0x00, 0x16, 0x9A, 0xED, 0x00, 0x00, 0xA0, 0xFF, 0x00, + 0x2B, 0x9C, 0xE8, 0x00, 0x60, 0xB5, 0xAF, 0x00, 0x10, 0x99, 0xF7, 0x00, 0x14, 0x9B, 0xF2, 0x00, 0x18, 0x9D, 0xED, + 0x00, 0x16, 0x9B, 0xEE, 0x00, 0x13, 0x99, 0xEF, 0x00, 0x11, 0x97, 0xED, 0x00, 0x0F, 0x95, 0xEB, 0x00, 0x0F, 0x95, + 0xEB, 0x00, 0x5E, 0xD2, 0xF7, 0x00, 0x5A, 0xD1, 0xF4, 0x00, 0x56, 0xD0, 0xF2, 0x00, 0x54, 0xCE, 0xF5, 0x00, 0x53, + 0xCC, 0xF7, 0x00, 0x56, 0xD7, 0xF7, 0x00, 0x00, 0x5B, 0xC0, 0x00, 0x03, 0x70, 0xCB, 0x00, 0x06, 0x84, 0xD6, 0x00, + 0x05, 0x94, 0xDC, 0x00, 0x03, 0xA3, 0xE2, 0x00, 0x07, 0xAF, 0xE8, 0x00, 0x0B, 0xBB, 0xEE, 0x00, 0x2D, 0xC8, 0xF3, + 0x00, 0x50, 0xD5, 0xF8, 0x00, 0x6E, 0xDE, 0xF9, 0x00, 0x8C, 0xE6, 0xFA, 0x00, 0x9F, 0xEC, 0xFB, 0x00, 0xB1, 0xF2, + 0xFB, 0x00, 0xC2, 0xF7, 0xFA, 0x00, 0xD3, 0xFB, 0xF9, 0x00, 0xD8, 0xFC, 0xFB, 0x00, 0xDD, 0xFC, 0xFD, 0x00, 0xDB, + 0xFD, 0xFC, 0x00, 0xD8, 0xFE, 0xFC, 0x00, 0xD8, 0xFD, 0xFB, 0x00, 0xD9, 0xFC, 0xFA, 0x00, 0xE4, 0xFA, 0xFA, 0x00, + 0xA3, 0xE9, 0xF6, 0x00, 0x2A, 0xAC, 0xFB, 0x00, 0x2E, 0xB9, 0xFA, 0x00, 0x1A, 0xAD, 0xED, 0x00, 0x99, 0xDA, 0xF7, + 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFE, 0xFD, 0xFC, 0x00, 0xFE, 0xFE, 0xFC, 0x00, 0xFF, 0xFF, 0xFD, 0x00, 0x8C, 0xD4, + 0xF9, 0x00, 0x19, 0xA8, 0xF5, 0x00, 0x17, 0xA9, 0xF7, 0x00, 0x16, 0xA9, 0xF8, 0x00, 0x1A, 0xA7, 0xF3, 0x00, 0x1E, + 0xA5, 0xED, 0x00, 0x1F, 0xA7, 0xF1, 0x00, 0x20, 0xA9, 0xF6, 0x00, 0x1D, 0xA7, 0xF6, 0x00, 0x1A, 0xA5, 0xF6, 0x00, + 0x16, 0xA3, 0xF8, 0x00, 0x12, 0xA1, 0xFA, 0x00, 0x0A, 0x9D, 0xFC, 0x00, 0x03, 0x98, 0xFE, 0x00, 0x25, 0xA1, 0xF9, + 0x00, 0x6F, 0xC0, 0xB0, 0x00, 0xCF, 0xC9, 0x5D, 0x00, 0xFF, 0xE5, 0x27, 0x00, 0x73, 0xB4, 0xB3, 0x00, 0x0B, 0x97, + 0xF9, 0x00, 0x11, 0x9A, 0xF3, 0x00, 0x17, 0x9D, 0xED, 0x00, 0x15, 0x9B, 0xEE, 0x00, 0x13, 0x9A, 0xEE, 0x00, 0x11, + 0x98, 0xEC, 0x00, 0x0F, 0x96, 0xEA, 0x00, 0x0F, 0x96, 0xEA, 0x00, 0x5D, 0xD1, 0xF6, 0x00, 0x5A, 0xD1, 0xF5, 0x00, + 0x58, 0xD2, 0xF4, 0x00, 0x53, 0xCE, 0xF3, 0x00, 0x56, 0xD1, 0xFA, 0x00, 0x3F, 0xB1, 0xE6, 0x00, 0x01, 0x64, 0xC6, + 0x00, 0x02, 0x75, 0xCE, 0x00, 0x04, 0x87, 0xD7, 0x00, 0x02, 0x95, 0xDD, 0x00, 0x00, 0xA4, 0xE4, 0x00, 0x03, 0xB0, + 0xEA, 0x00, 0x06, 0xBD, 0xF1, 0x00, 0x1B, 0xC8, 0xF2, 0x00, 0x42, 0xD5, 0xFB, 0x00, 0x63, 0xDD, 0xFB, 0x00, 0x84, + 0xE5, 0xFB, 0x00, 0x98, 0xEB, 0xFC, 0x00, 0xAB, 0xF1, 0xFC, 0x00, 0xBD, 0xF8, 0xFF, 0x00, 0xCF, 0xFF, 0xFF, 0x00, + 0xCF, 0xFC, 0xFF, 0x00, 0xCF, 0xF9, 0xFB, 0x00, 0xD2, 0xFE, 0xFD, 0x00, 0xD4, 0xFF, 0xFF, 0x00, 0xC6, 0xF9, 0xFF, + 0x00, 0xB7, 0xEE, 0xFF, 0x00, 0x59, 0xD7, 0xD9, 0x00, 0x40, 0xB9, 0xE9, 0x00, 0x2E, 0xB9, 0xFF, 0x00, 0x2B, 0xB1, + 0xEF, 0x00, 0x27, 0xAF, 0xEB, 0x00, 0xDD, 0xEF, 0xF1, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFE, 0xFE, 0xFF, 0x00, 0xFF, + 0xFE, 0xFD, 0x00, 0xFF, 0xFD, 0xF9, 0x00, 0xFF, 0xFF, 0xF9, 0x00, 0xFF, 0xFF, 0xF9, 0x00, 0xC1, 0xE8, 0xF0, 0x00, + 0x83, 0xCD, 0xE6, 0x00, 0x52, 0xBB, 0xE8, 0x00, 0x21, 0xA9, 0xEB, 0x00, 0x13, 0xA1, 0xFF, 0x00, 0x06, 0x9F, 0xF7, + 0x00, 0x0F, 0x9F, 0xF8, 0x00, 0x18, 0xA3, 0xEA, 0x00, 0x43, 0xB1, 0xE0, 0x00, 0x6D, 0xC2, 0xC9, 0x00, 0xAF, 0xD6, + 0x99, 0x00, 0xF1, 0xEB, 0x6A, 0x00, 0xEB, 0xEE, 0x31, 0x00, 0xF8, 0xE6, 0x47, 0x00, 0xFF, 0xE1, 0x3A, 0x00, 0xFC, + 0xE1, 0x41, 0x00, 0x00, 0x98, 0xF4, 0x00, 0x19, 0xA1, 0xFC, 0x00, 0x15, 0x9E, 0xF6, 0x00, 0x11, 0x9A, 0xF1, 0x00, + 0x13, 0x9A, 0xF0, 0x00, 0x14, 0x99, 0xF0, 0x00, 0x12, 0x97, 0xEE, 0x00, 0x10, 0x95, 0xEC, 0x00, 0x10, 0x95, 0xEC, + 0x00, 0x5C, 0xCF, 0xF5, 0x00, 0x5A, 0xD1, 0xF6, 0x00, 0x59, 0xD4, 0xF6, 0x00, 0x51, 0xCD, 0xF2, 0x00, 0x59, 0xD6, + 0xFE, 0x00, 0x29, 0x8B, 0xD5, 0x00, 0x02, 0x6C, 0xCB, 0x00, 0x01, 0x7A, 0xD1, 0x00, 0x01, 0x89, 0xD8, 0x00, 0x00, + 0x97, 0xDE, 0x00, 0x00, 0xA5, 0xE5, 0x00, 0x00, 0xB2, 0xEC, 0x00, 0x02, 0xBE, 0xF3, 0x00, 0x08, 0xC7, 0xF1, 0x00, + 0x35, 0xD5, 0xFE, 0x00, 0x58, 0xDD, 0xFD, 0x00, 0x7C, 0xE4, 0xFB, 0x00, 0x91, 0xEA, 0xFC, 0x00, 0xA6, 0xEF, 0xFE, + 0x00, 0xB0, 0xF2, 0xFE, 0x00, 0xBA, 0xF5, 0xFE, 0x00, 0xBD, 0xF5, 0xFC, 0x00, 0xC0, 0xF5, 0xF9, 0x00, 0xC0, 0xF7, + 0xF6, 0x00, 0xC1, 0xF9, 0xF4, 0x00, 0xC6, 0xFC, 0xFC, 0x00, 0xCC, 0xFF, 0xFF, 0x00, 0xC1, 0xF8, 0xF7, 0x00, 0x59, + 0xCC, 0xF3, 0x00, 0x38, 0xB0, 0xF2, 0x00, 0x37, 0xBA, 0xF5, 0x00, 0x29, 0xB4, 0xF7, 0x00, 0xFC, 0xFB, 0xF8, 0x00, + 0xFC, 0xFD, 0xFF, 0x00, 0xFD, 0xFF, 0xFF, 0x00, 0xFF, 0xFE, 0xFF, 0x00, 0xFF, 0xFC, 0xF6, 0x00, 0xFC, 0xFE, 0xF2, + 0x00, 0xF6, 0xFF, 0xEE, 0x00, 0xFC, 0xFF, 0xE9, 0x00, 0xFF, 0xFF, 0xE4, 0x00, 0xFF, 0xFF, 0xD7, 0x00, 0xFF, 0xFF, + 0xCA, 0x00, 0xFF, 0xFB, 0xF1, 0x00, 0xFF, 0xFF, 0xDF, 0x00, 0xFC, 0xFD, 0xC1, 0x00, 0xF6, 0xFF, 0x88, 0x00, 0xFB, + 0xFD, 0x91, 0x00, 0xFF, 0xFF, 0x7F, 0x00, 0xFC, 0xFC, 0x6C, 0x00, 0xF9, 0xF6, 0x59, 0x00, 0xF8, 0xEF, 0x58, 0x00, + 0xF7, 0xE9, 0x57, 0x00, 0xF6, 0xE3, 0x59, 0x00, 0xD0, 0xD2, 0x67, 0x00, 0x08, 0x98, 0xFF, 0x00, 0x17, 0x9A, 0xEF, + 0x00, 0x12, 0x99, 0xF1, 0x00, 0x0C, 0x98, 0xF4, 0x00, 0x10, 0x99, 0xF3, 0x00, 0x15, 0x99, 0xF1, 0x00, 0x13, 0x97, + 0xEF, 0x00, 0x11, 0x95, 0xED, 0x00, 0x11, 0x95, 0xED, 0x00, 0x5E, 0xD1, 0xF9, 0x00, 0x5B, 0xD3, 0xF7, 0x00, 0x59, + 0xD4, 0xF6, 0x00, 0x57, 0xD3, 0xF8, 0x00, 0x5E, 0xDA, 0xFF, 0x00, 0x19, 0x70, 0xCD, 0x00, 0x02, 0x6D, 0xCC, 0x00, + 0x03, 0x7B, 0xD2, 0x00, 0x04, 0x88, 0xD9, 0x00, 0x04, 0x96, 0xDF, 0x00, 0x04, 0xA5, 0xE6, 0x00, 0x01, 0xAD, 0xE6, + 0x00, 0x00, 0xB4, 0xE7, 0x00, 0x06, 0xBE, 0xEA, 0x00, 0x23, 0xCA, 0xF5, 0x00, 0x4B, 0xD7, 0xF8, 0x00, 0x74, 0xE3, + 0xFB, 0x00, 0x89, 0xE8, 0xFC, 0x00, 0x9E, 0xEC, 0xFE, 0x00, 0xA5, 0xED, 0xFE, 0x00, 0xAB, 0xEE, 0xFE, 0x00, 0xAD, + 0xEF, 0xFB, 0x00, 0xB0, 0xEF, 0xF9, 0x00, 0xB3, 0xF2, 0xF8, 0x00, 0xB6, 0xF5, 0xF8, 0x00, 0xB5, 0xF8, 0xFC, 0x00, + 0xB5, 0xFB, 0xFF, 0x00, 0xD9, 0xF3, 0xFF, 0x00, 0x1A, 0xB9, 0xF1, 0x00, 0x28, 0xB3, 0xF3, 0x00, 0x2A, 0xB3, 0xF6, + 0x00, 0x73, 0xCE, 0xF3, 0x00, 0xFD, 0xFD, 0xF5, 0x00, 0xFD, 0xFE, 0xF9, 0x00, 0xFD, 0xFF, 0xFE, 0x00, 0xFF, 0xFE, + 0xF8, 0x00, 0xFF, 0xFD, 0xF3, 0x00, 0xFD, 0xFE, 0xEE, 0x00, 0xFA, 0xFE, 0xE9, 0x00, 0xFC, 0xFF, 0xE3, 0x00, 0xFF, + 0xFF, 0xDE, 0x00, 0xFF, 0xFF, 0xD0, 0x00, 0xFF, 0xFF, 0xC2, 0x00, 0xFC, 0xFA, 0xD6, 0x00, 0xFF, 0xFC, 0xF3, 0x00, + 0xFE, 0xFF, 0xBF, 0x00, 0xFC, 0xFA, 0xC4, 0x00, 0xFC, 0xFF, 0x84, 0x00, 0xFB, 0xFA, 0x8A, 0x00, 0xFA, 0xF6, 0x79, + 0x00, 0xF9, 0xF2, 0x68, 0x00, 0xF6, 0xED, 0x5E, 0x00, 0xF4, 0xE8, 0x53, 0x00, 0xF7, 0xE8, 0x48, 0x00, 0x87, 0xBC, + 0xA8, 0x00, 0x10, 0x9A, 0xFB, 0x00, 0x17, 0x9B, 0xF1, 0x00, 0x14, 0x9A, 0xF1, 0x00, 0x10, 0x9A, 0xF1, 0x00, 0x13, + 0x99, 0xF2, 0x00, 0x16, 0x98, 0xF3, 0x00, 0x14, 0x96, 0xF1, 0x00, 0x12, 0x94, 0xEF, 0x00, 0x12, 0x94, 0xEF, 0x00, + 0x61, 0xD4, 0xFC, 0x00, 0x5D, 0xD4, 0xF9, 0x00, 0x58, 0xD4, 0xF6, 0x00, 0x55, 0xD1, 0xF5, 0x00, 0x53, 0xCE, 0xF5, + 0x00, 0x01, 0x4D, 0xBD, 0x00, 0x02, 0x6E, 0xCD, 0x00, 0x04, 0x7B, 0xD3, 0x00, 0x06, 0x87, 0xDA, 0x00, 0x09, 0x96, + 0xE0, 0x00, 0x0C, 0xA5, 0xE6, 0x00, 0x0A, 0xB0, 0xE9, 0x00, 0x09, 0xBA, 0xEB, 0x00, 0x15, 0xC5, 0xF3, 0x00, 0x21, + 0xD0, 0xFB, 0x00, 0x46, 0xD9, 0xFB, 0x00, 0x6B, 0xE3, 0xFB, 0x00, 0x81, 0xE6, 0xFC, 0x00, 0x97, 0xE9, 0xFD, 0x00, + 0x99, 0xE8, 0xFD, 0x00, 0x9B, 0xE8, 0xFD, 0x00, 0x9D, 0xE8, 0xFB, 0x00, 0x9F, 0xE9, 0xF8, 0x00, 0xA5, 0xEE, 0xFA, + 0x00, 0xAB, 0xF2, 0xFC, 0x00, 0xB0, 0xEF, 0xFB, 0x00, 0xB4, 0xEB, 0xFB, 0x00, 0x89, 0xDD, 0xF8, 0x00, 0x27, 0xB4, + 0xF3, 0x00, 0x3E, 0xBD, 0xF7, 0x00, 0x1E, 0xAC, 0xF7, 0x00, 0xBC, 0xE8, 0xF0, 0x00, 0xFE, 0xFF, 0xF2, 0x00, 0xFD, + 0xFF, 0xF3, 0x00, 0xFD, 0xFE, 0xF4, 0x00, 0xFD, 0xFE, 0xF2, 0x00, 0xFE, 0xFE, 0xEF, 0x00, 0xFE, 0xFE, 0xE9, 0x00, + 0xFE, 0xFE, 0xE3, 0x00, 0xFD, 0xFD, 0xDD, 0x00, 0xFD, 0xFD, 0xD7, 0x00, 0xFC, 0xFE, 0xC8, 0x00, 0xFB, 0xFF, 0xB9, + 0x00, 0xF5, 0xFE, 0x9F, 0x00, 0xFF, 0xFF, 0xCE, 0x00, 0xFF, 0xF9, 0xF5, 0x00, 0xFF, 0xFF, 0xC8, 0x00, 0xFC, 0xF7, + 0xBD, 0x00, 0xF8, 0xF8, 0x7A, 0x00, 0xF8, 0xF5, 0x6B, 0x00, 0xF9, 0xF3, 0x5C, 0x00, 0xF5, 0xED, 0x55, 0x00, 0xF1, + 0xE8, 0x4F, 0x00, 0xF8, 0xEE, 0x37, 0x00, 0x3E, 0xA6, 0xE9, 0x00, 0x17, 0x9C, 0xF5, 0x00, 0x17, 0x9D, 0xF4, 0x00, + 0x15, 0x9C, 0xF1, 0x00, 0x14, 0x9B, 0xEE, 0x00, 0x15, 0x99, 0xF1, 0x00, 0x17, 0x97, 0xF4, 0x00, 0x15, 0x95, 0xF2, + 0x00, 0x13, 0x93, 0xF0, 0x00, 0x13, 0x93, 0xF0, 0x00, 0x66, 0xD6, 0xFB, 0x00, 0x5E, 0xD1, 0xF4, 0x00, 0x5F, 0xD3, + 0xF6, 0x00, 0x59, 0xD7, 0xF9, 0x00, 0x39, 0x9D, 0xDA, 0x00, 0x08, 0x58, 0xBE, 0x00, 0x08, 0x6C, 0xCD, 0x00, 0x0C, + 0x79, 0xD2, 0x00, 0x0F, 0x87, 0xD7, 0x00, 0x11, 0x96, 0xDF, 0x00, 0x13, 0xA5, 0xE7, 0x00, 0x13, 0xB0, 0xEA, 0x00, + 0x1B, 0xC2, 0xF5, 0x00, 0x0F, 0xC8, 0xF3, 0x00, 0x16, 0xD0, 0xF9, 0x00, 0x27, 0xD2, 0xF4, 0x00, 0x4B, 0xD6, 0xF7, + 0x00, 0x60, 0xDA, 0xF8, 0x00, 0x76, 0xDE, 0xF9, 0x00, 0x7F, 0xDF, 0xF9, 0x00, 0x87, 0xE0, 0xFA, 0x00, 0x8C, 0xE4, + 0xFB, 0x00, 0x91, 0xE7, 0xFB, 0x00, 0x95, 0xEA, 0xFC, 0x00, 0x9A, 0xED, 0xFC, 0x00, 0x9E, 0xEA, 0xFB, 0x00, 0xA3, + 0xE7, 0xFA, 0x00, 0x5E, 0xCC, 0xFA, 0x00, 0x2C, 0xB6, 0xF5, 0x00, 0x24, 0xB8, 0xF9, 0x00, 0x14, 0xB1, 0xF5, 0x00, + 0xFF, 0xFB, 0xFF, 0x00, 0xFD, 0xFF, 0xEC, 0x00, 0xFF, 0xFF, 0xED, 0x00, 0xFF, 0xFF, 0xED, 0x00, 0xFF, 0xFE, 0xEC, + 0x00, 0xFD, 0xFD, 0xEA, 0x00, 0xFD, 0xFD, 0xE3, 0x00, 0xFD, 0xFD, 0xDC, 0x00, 0xFD, 0xFD, 0xD5, 0x00, 0xFD, 0xFD, + 0xCE, 0x00, 0xFC, 0xFC, 0xC1, 0x00, 0xFB, 0xFB, 0xB4, 0x00, 0xF5, 0xFA, 0x8D, 0x00, 0xF8, 0xFC, 0x89, 0x00, 0xF8, + 0xFA, 0xCB, 0x00, 0xF7, 0xFE, 0xF1, 0x00, 0xF9, 0xFF, 0xBD, 0x00, 0xFA, 0xF9, 0xC2, 0x00, 0xFB, 0xF8, 0xAC, 0x00, + 0xFC, 0xF7, 0x96, 0x00, 0xF9, 0xF4, 0x91, 0x00, 0xF7, 0xF0, 0x8C, 0x00, 0xFF, 0xE4, 0xA8, 0x00, 0x00, 0x95, 0xF6, + 0x00, 0x07, 0x99, 0xF6, 0x00, 0x15, 0x9D, 0xF7, 0x00, 0x15, 0x9D, 0xF3, 0x00, 0x15, 0x9C, 0xF0, 0x00, 0x15, 0x9A, + 0xF2, 0x00, 0x15, 0x98, 0xF4, 0x00, 0x14, 0x97, 0xF2, 0x00, 0x12, 0x95, 0xF1, 0x00, 0x12, 0x95, 0xF1, 0x00, 0x6A, + 0xD9, 0xFA, 0x00, 0x60, 0xCE, 0xF0, 0x00, 0x66, 0xD2, 0xF6, 0x00, 0x5C, 0xDD, 0xFD, 0x00, 0x1E, 0x6C, 0xC0, 0x00, + 0x0E, 0x63, 0xBE, 0x00, 0x0E, 0x69, 0xCD, 0x00, 0x13, 0x78, 0xD0, 0x00, 0x18, 0x87, 0xD4, 0x00, 0x19, 0x96, 0xDE, + 0x00, 0x1A, 0xA6, 0xE9, 0x00, 0x13, 0xA8, 0xE3, 0x00, 0x1D, 0xBA, 0xEE, 0x00, 0x0C, 0xBD, 0xEA, 0x00, 0x22, 0xC5, + 0xF6, 0x00, 0x13, 0xC5, 0xEC, 0x00, 0x2A, 0xCA, 0xF2, 0x00, 0x40, 0xCF, 0xF3, 0x00, 0x56, 0xD3, 0xF4, 0x00, 0x65, + 0xD6, 0xF5, 0x00, 0x74, 0xD9, 0xF7, 0x00, 0x7B, 0xDF, 0xFA, 0x00, 0x82, 0xE4, 0xFE, 0x00, 0x86, 0xE6, 0xFD, 0x00, + 0x89, 0xE7, 0xFD, 0x00, 0x8D, 0xE4, 0xFB, 0x00, 0x92, 0xE2, 0xF9, 0x00, 0x33, 0xBB, 0xFC, 0x00, 0x31, 0xB9, 0xF6, + 0x00, 0x31, 0xBA, 0xFD, 0x00, 0x57, 0xC4, 0xF7, 0x00, 0xF3, 0xFF, 0xDE, 0x00, 0xFD, 0xFF, 0xE6, 0x00, 0xFF, 0xFF, + 0xE6, 0x00, 0xFF, 0xFF, 0xE6, 0x00, 0xFF, 0xFE, 0xE6, 0x00, 0xFD, 0xFC, 0xE5, 0x00, 0xFD, 0xFC, 0xDD, 0x00, 0xFD, + 0xFC, 0xD5, 0x00, 0xFD, 0xFD, 0xCD, 0x00, 0xFD, 0xFD, 0xC5, 0x00, 0xFC, 0xFA, 0xBA, 0x00, 0xFB, 0xF7, 0xAF, 0x00, + 0xFE, 0xF9, 0x9E, 0x00, 0xFF, 0xFB, 0x8D, 0x00, 0xFA, 0xFE, 0x77, 0x00, 0xF4, 0xFB, 0x7D, 0x00, 0xF8, 0xF7, 0xD2, + 0x00, 0xFD, 0xFF, 0xEE, 0x00, 0xFE, 0xFD, 0xDF, 0x00, 0xFE, 0xFB, 0xD0, 0x00, 0xFD, 0xFA, 0xCD, 0x00, 0xFC, 0xF9, + 0xC9, 0x00, 0xA6, 0xD2, 0xCD, 0x00, 0x02, 0x98, 0xEA, 0x00, 0x1E, 0xA0, 0xEC, 0x00, 0x13, 0x9E, 0xF9, 0x00, 0x15, + 0x9E, 0xF6, 0x00, 0x16, 0x9D, 0xF2, 0x00, 0x15, 0x9B, 0xF2, 0x00, 0x14, 0x99, 0xF3, 0x00, 0x13, 0x98, 0xF2, 0x00, + 0x12, 0x97, 0xF1, 0x00, 0x12, 0x97, 0xF1, 0x00, 0x55, 0xD4, 0xF3, 0x00, 0x5B, 0xD1, 0xF0, 0x00, 0x69, 0xD6, 0xF6, + 0x00, 0x6D, 0xE2, 0xFF, 0x00, 0x0B, 0x4F, 0xA7, 0x00, 0x11, 0x60, 0xBE, 0x00, 0x0F, 0x6A, 0xCD, 0x00, 0x1F, 0x83, + 0xD5, 0x00, 0x1E, 0x89, 0xDC, 0x00, 0x0F, 0x8B, 0xDD, 0x00, 0x1A, 0x9B, 0xE0, 0x00, 0x22, 0xB0, 0xF3, 0x00, 0x1D, + 0xAA, 0xE0, 0x00, 0x13, 0xAE, 0xDF, 0x00, 0x25, 0xBC, 0xEE, 0x00, 0x14, 0xB9, 0xE6, 0x00, 0x1F, 0xC1, 0xEF, 0x00, + 0x25, 0xC7, 0xEF, 0x00, 0x2B, 0xCD, 0xEE, 0x00, 0x3C, 0xCD, 0xF0, 0x00, 0x4E, 0xCE, 0xF3, 0x00, 0x5B, 0xD6, 0xF8, + 0x00, 0x68, 0xDE, 0xFE, 0x00, 0x6D, 0xDD, 0xFC, 0x00, 0x73, 0xDC, 0xFA, 0x00, 0x75, 0xDD, 0xF5, 0x00, 0x70, 0xD3, + 0xF6, 0x00, 0x30, 0xBA, 0xFB, 0x00, 0x33, 0xB8, 0xF5, 0x00, 0x24, 0xB5, 0xFE, 0x00, 0xA3, 0xDE, 0xE4, 0x00, 0xF9, + 0xFF, 0xDC, 0x00, 0xFD, 0xFD, 0xDC, 0x00, 0xFE, 0xFE, 0xDC, 0x00, 0xFF, 0xFF, 0xDB, 0x00, 0xFE, 0xFE, 0xDA, 0x00, + 0xFC, 0xFD, 0xD9, 0x00, 0xFC, 0xFD, 0xD2, 0x00, 0xFC, 0xFD, 0xCA, 0x00, 0xFD, 0xFD, 0xC3, 0x00, 0xFD, 0xFD, 0xBB, + 0x00, 0xFC, 0xFB, 0xAF, 0x00, 0xFC, 0xFA, 0xA2, 0x00, 0xFD, 0xFA, 0x92, 0x00, 0xFE, 0xFB, 0x83, 0x00, 0xFB, 0xFD, + 0x6A, 0x00, 0xF8, 0xFC, 0x60, 0x00, 0xFA, 0xF8, 0x5D, 0x00, 0xFC, 0xF7, 0x4C, 0x00, 0xFD, 0xF4, 0x76, 0x00, 0xFE, + 0xF2, 0xA0, 0x00, 0xF5, 0xEC, 0x87, 0x00, 0xF7, 0xE3, 0x5F, 0x00, 0x50, 0xBB, 0xB4, 0x00, 0x0C, 0x99, 0xFE, 0x00, + 0x1A, 0x9E, 0xF7, 0x00, 0x15, 0x9D, 0xF6, 0x00, 0x15, 0x9D, 0xF4, 0x00, 0x15, 0x9C, 0xF2, 0x00, 0x14, 0x9B, 0xF2, + 0x00, 0x12, 0x99, 0xF1, 0x00, 0x12, 0x99, 0xF1, 0x00, 0x12, 0x99, 0xF1, 0x00, 0x12, 0x99, 0xF1, 0x00, 0x66, 0xD3, + 0xFD, 0x00, 0x69, 0xD6, 0xF9, 0x00, 0x6B, 0xD9, 0xF5, 0x00, 0x4E, 0xB6, 0xDC, 0x00, 0x18, 0x52, 0xAE, 0x00, 0x1C, + 0x66, 0xC6, 0x00, 0x00, 0x5A, 0xBD, 0x00, 0x1A, 0x7D, 0xCA, 0x00, 0x15, 0x7B, 0xD4, 0x00, 0x04, 0x81, 0xDC, 0x00, + 0x2A, 0xA0, 0xE7, 0x00, 0x00, 0x88, 0xD3, 0x00, 0x2D, 0xAB, 0xE2, 0x00, 0x23, 0xA7, 0xDC, 0x00, 0x29, 0xB3, 0xE6, + 0x00, 0x16, 0xAD, 0xE0, 0x00, 0x14, 0xB7, 0xEB, 0x00, 0x15, 0xB9, 0xEA, 0x00, 0x16, 0xBA, 0xE9, 0x00, 0x1F, 0xBE, + 0xEC, 0x00, 0x28, 0xC2, 0xEE, 0x00, 0x3B, 0xCD, 0xF6, 0x00, 0x4E, 0xD8, 0xFE, 0x00, 0x55, 0xD5, 0xFB, 0x00, 0x5D, + 0xD1, 0xF7, 0x00, 0x5D, 0xD6, 0xEF, 0x00, 0x4E, 0xC4, 0xF3, 0x00, 0x2E, 0xB9, 0xFA, 0x00, 0x35, 0xB8, 0xF4, 0x00, + 0x17, 0xB1, 0xFF, 0x00, 0xF0, 0xF7, 0xD1, 0x00, 0xFE, 0xFF, 0xDA, 0x00, 0xFC, 0xFC, 0xD2, 0x00, 0xFD, 0xFD, 0xD1, + 0x00, 0xFD, 0xFE, 0xD0, 0x00, 0xFC, 0xFD, 0xCF, 0x00, 0xFB, 0xFD, 0xCD, 0x00, 0xFC, 0xFD, 0xC6, 0x00, 0xFC, 0xFD, + 0xBF, 0x00, 0xFD, 0xFD, 0xB9, 0x00, 0xFD, 0xFC, 0xB2, 0x00, 0xFD, 0xFC, 0xA3, 0x00, 0xFD, 0xFC, 0x95, 0x00, 0xFC, + 0xFC, 0x87, 0x00, 0xFC, 0xFB, 0x78, 0x00, 0xFD, 0xFA, 0x6C, 0x00, 0xFD, 0xF8, 0x5F, 0x00, 0xF9, 0xF6, 0x45, 0x00, + 0xF5, 0xEF, 0x47, 0x00, 0xF2, 0xE9, 0x37, 0x00, 0xEE, 0xE4, 0x28, 0x00, 0xED, 0xE3, 0x24, 0x00, 0xFF, 0xDD, 0x05, + 0x00, 0x03, 0x99, 0xFF, 0x00, 0x16, 0xA0, 0xF5, 0x00, 0x16, 0x9E, 0xF4, 0x00, 0x16, 0x9C, 0xF3, 0x00, 0x15, 0x9C, + 0xF2, 0x00, 0x14, 0x9B, 0xF2, 0x00, 0x12, 0x9A, 0xF1, 0x00, 0x10, 0x99, 0xEF, 0x00, 0x11, 0x9A, 0xF0, 0x00, 0x12, + 0x9B, 0xF1, 0x00, 0x12, 0x9B, 0xF1, 0x00, 0x65, 0xD5, 0xFB, 0x00, 0x70, 0xD4, 0xFC, 0x00, 0x77, 0xE2, 0xFF, 0x00, + 0x3B, 0x86, 0xC7, 0x00, 0x23, 0x5F, 0xBA, 0x00, 0x1E, 0x6A, 0xBA, 0x00, 0x21, 0x7A, 0xD0, 0x00, 0x27, 0x87, 0xD7, + 0x00, 0x24, 0x8C, 0xD6, 0x00, 0x1D, 0x8D, 0xD3, 0x00, 0x21, 0x88, 0xD0, 0x00, 0x2B, 0xA0, 0xEA, 0x00, 0x21, 0x95, + 0xD5, 0x00, 0x30, 0xA9, 0xEE, 0x00, 0x20, 0xA0, 0xDA, 0x00, 0x16, 0xA1, 0xDD, 0x00, 0x0D, 0xA1, 0xDF, 0x00, 0x19, + 0xAB, 0xE2, 0x00, 0x12, 0xB1, 0xEB, 0x00, 0x0F, 0xB8, 0xED, 0x00, 0x0C, 0xBF, 0xEE, 0x00, 0x1C, 0xC1, 0xEF, 0x00, + 0x2C, 0xC3, 0xF0, 0x00, 0x36, 0xC4, 0xF1, 0x00, 0x40, 0xC5, 0xF3, 0x00, 0x46, 0xC9, 0xF1, 0x00, 0x45, 0xC2, 0xF6, + 0x00, 0x31, 0xBA, 0xF9, 0x00, 0x30, 0xB7, 0xF6, 0x00, 0x4B, 0xC1, 0xF4, 0x00, 0xF5, 0xFA, 0xC0, 0x00, 0xFD, 0xFF, + 0xC6, 0x00, 0xFC, 0xFC, 0xC4, 0x00, 0xFD, 0xFC, 0xC4, 0x00, 0xFD, 0xFD, 0xC3, 0x00, 0xFC, 0xFD, 0xC2, 0x00, 0xFB, + 0xFC, 0xC1, 0x00, 0xF8, 0xF8, 0xB5, 0x00, 0xFC, 0xFD, 0xB2, 0x00, 0xFC, 0xFC, 0xAA, 0x00, 0xFC, 0xFC, 0xA3, 0x00, + 0xFC, 0xFB, 0x95, 0x00, 0xFB, 0xFB, 0x88, 0x00, 0xFB, 0xFB, 0x7A, 0x00, 0xFB, 0xFA, 0x6D, 0x00, 0xFB, 0xF8, 0x61, + 0x00, 0xFC, 0xF6, 0x56, 0x00, 0xF8, 0xF2, 0x44, 0x00, 0xF4, 0xEA, 0x40, 0x00, 0xEF, 0xE5, 0x31, 0x00, 0xEA, 0xDF, + 0x23, 0x00, 0xFA, 0xE0, 0x1C, 0x00, 0xC5, 0xD1, 0x44, 0x00, 0x0A, 0xA1, 0xFE, 0x00, 0x15, 0x9F, 0xF9, 0x00, 0x17, + 0x9F, 0xF5, 0x00, 0x18, 0x9F, 0xF2, 0x00, 0x16, 0x9E, 0xF2, 0x00, 0x15, 0x9D, 0xF2, 0x00, 0x16, 0x9F, 0xF5, 0x00, + 0x18, 0xA0, 0xF8, 0x00, 0x15, 0x9D, 0xF5, 0x00, 0x12, 0x9A, 0xF2, 0x00, 0x12, 0x9A, 0xF2, 0x00, 0x64, 0xD7, 0xF9, + 0x00, 0x64, 0xD1, 0xF6, 0x00, 0x5D, 0xE6, 0xFF, 0x00, 0x03, 0x43, 0x9A, 0x00, 0x0D, 0x4B, 0xA5, 0x00, 0x30, 0x7B, + 0xCC, 0x00, 0x04, 0x54, 0xC0, 0x00, 0x00, 0x53, 0xC9, 0x00, 0x03, 0x67, 0xC5, 0x00, 0x25, 0x87, 0xC9, 0x00, 0x28, + 0x80, 0xCA, 0x00, 0x27, 0x88, 0xD0, 0x00, 0x26, 0x90, 0xD7, 0x00, 0x06, 0x74, 0xC9, 0x00, 0x17, 0x8D, 0xCF, 0x00, + 0x1E, 0x9C, 0xE1, 0x00, 0x16, 0x9B, 0xE3, 0x00, 0x1E, 0x9E, 0xDA, 0x00, 0x00, 0x97, 0xDD, 0x00, 0x03, 0xA4, 0xE6, + 0x00, 0x07, 0xB1, 0xEE, 0x00, 0x08, 0xB0, 0xE8, 0x00, 0x09, 0xAE, 0xE2, 0x00, 0x16, 0xB4, 0xE8, 0x00, 0x23, 0xB9, + 0xEF, 0x00, 0x30, 0xBD, 0xF4, 0x00, 0x3C, 0xC1, 0xF9, 0x00, 0x34, 0xBB, 0xF9, 0x00, 0x2C, 0xB6, 0xF9, 0x00, 0x80, + 0xD2, 0xE8, 0x00, 0xFA, 0xFD, 0xAE, 0x00, 0xFB, 0xFC, 0xB2, 0x00, 0xFC, 0xFB, 0xB6, 0x00, 0xFC, 0xFC, 0xB6, 0x00, + 0xFD, 0xFC, 0xB6, 0x00, 0xFC, 0xFC, 0xB5, 0x00, 0xFB, 0xFC, 0xB4, 0x00, 0xF3, 0xF4, 0xA4, 0x00, 0xFC, 0xFC, 0xA5, + 0x00, 0xFC, 0xFC, 0x9C, 0x00, 0xFC, 0xFB, 0x93, 0x00, 0xFB, 0xFB, 0x87, 0x00, 0xFA, 0xFA, 0x7A, 0x00, 0xFA, 0xFA, + 0x6D, 0x00, 0xF9, 0xF9, 0x61, 0x00, 0xFA, 0xF7, 0x57, 0x00, 0xFA, 0xF4, 0x4E, 0x00, 0xF6, 0xED, 0x44, 0x00, 0xF3, + 0xE6, 0x3A, 0x00, 0xED, 0xE1, 0x2C, 0x00, 0xE7, 0xDB, 0x1E, 0x00, 0xFF, 0xD1, 0x19, 0x00, 0x77, 0xB0, 0x8F, 0x00, + 0x09, 0xA0, 0xFD, 0x00, 0x14, 0x9D, 0xFD, 0x00, 0x17, 0x9F, 0xF7, 0x00, 0x1A, 0xA2, 0xF2, 0x00, 0x18, 0xA0, 0xF2, + 0x00, 0x16, 0x9E, 0xF2, 0x00, 0x13, 0x9B, 0xF1, 0x00, 0x10, 0x98, 0xF0, 0x00, 0x11, 0x99, 0xF1, 0x00, 0x12, 0x9A, + 0xF2, 0x00, 0x12, 0x9A, 0xF2, 0x00, 0x5F, 0xD4, 0xF7, 0x00, 0x67, 0xDC, 0xFC, 0x00, 0x4F, 0xC1, 0xF0, 0x00, 0x00, + 0x2B, 0x8A, 0x00, 0x2D, 0x6A, 0xBF, 0x00, 0x05, 0x47, 0xAC, 0x00, 0x00, 0x43, 0xB9, 0x00, 0x35, 0x85, 0xC4, 0x00, + 0x06, 0x4D, 0xBB, 0x00, 0x13, 0x61, 0xC3, 0x00, 0x2C, 0x70, 0xCA, 0x00, 0x0F, 0x5A, 0xB3, 0x00, 0x21, 0x74, 0xCC, + 0x00, 0x11, 0x69, 0xC2, 0x00, 0x18, 0x78, 0xC2, 0x00, 0x1C, 0x80, 0xD0, 0x00, 0x18, 0x7F, 0xD6, 0x00, 0x1A, 0x86, + 0xD3, 0x00, 0x10, 0x8F, 0xDD, 0x00, 0x02, 0x8C, 0xDA, 0x00, 0x04, 0x99, 0xE6, 0x00, 0x04, 0x9B, 0xE1, 0x00, 0x04, + 0x9D, 0xDC, 0x00, 0x05, 0xA6, 0xE1, 0x00, 0x00, 0xA6, 0xDD, 0x00, 0x1F, 0xB6, 0xEE, 0x00, 0x39, 0xBD, 0xF6, 0x00, + 0x38, 0xBB, 0xF6, 0x00, 0x24, 0xB5, 0xFC, 0x00, 0xBF, 0xE8, 0xB8, 0x00, 0xFA, 0xFE, 0xA2, 0x00, 0xFB, 0xFC, 0xA5, + 0x00, 0xFB, 0xFA, 0xA8, 0x00, 0xFC, 0xFB, 0xA7, 0x00, 0xFC, 0xFC, 0xA6, 0x00, 0xFA, 0xFB, 0xA2, 0x00, 0xF8, 0xFA, + 0x9F, 0x00, 0xF5, 0xF7, 0x94, 0x00, 0xFA, 0xFB, 0x92, 0x00, 0xFA, 0xFB, 0x8B, 0x00, 0xFB, 0xFB, 0x84, 0x00, 0xFA, + 0xFA, 0x78, 0x00, 0xF9, 0xF9, 0x6D, 0x00, 0xF9, 0xF9, 0x61, 0x00, 0xF8, 0xF8, 0x55, 0x00, 0xF8, 0xF6, 0x4B, 0x00, + 0xF9, 0xF3, 0x41, 0x00, 0xF5, 0xEC, 0x39, 0x00, 0xF1, 0xE4, 0x30, 0x00, 0xEE, 0xDD, 0x28, 0x00, 0xEB, 0xD6, 0x1F, + 0x00, 0xEE, 0xD9, 0x00, 0x00, 0x32, 0xA6, 0xE4, 0x00, 0x18, 0xA4, 0xFF, 0x00, 0x28, 0xA4, 0xF3, 0x00, 0x20, 0xA2, + 0xF4, 0x00, 0x18, 0xA0, 0xF4, 0x00, 0x16, 0x9E, 0xF4, 0x00, 0x15, 0x9D, 0xF3, 0x00, 0x13, 0x9B, 0xF2, 0x00, 0x11, + 0x99, 0xF2, 0x00, 0x11, 0x99, 0xF2, 0x00, 0x12, 0x9A, 0xF3, 0x00, 0x12, 0x9A, 0xF3, 0x00, 0x5B, 0xD1, 0xF5, 0x00, + 0x62, 0xDF, 0xFA, 0x00, 0x30, 0x8C, 0xCC, 0x00, 0x05, 0x2C, 0x91, 0x00, 0x0E, 0x49, 0x9A, 0x00, 0x00, 0x36, 0x9E, + 0x00, 0x00, 0x38, 0x96, 0x00, 0x14, 0x5E, 0xB6, 0x00, 0x53, 0xAA, 0xD9, 0x00, 0x30, 0xA6, 0xE2, 0x00, 0x44, 0xBB, + 0xEE, 0x00, 0x6D, 0xDD, 0xFF, 0x00, 0x76, 0xDE, 0xF9, 0x00, 0x6C, 0xD9, 0xF9, 0x00, 0x63, 0xD4, 0xF8, 0x00, 0x54, + 0xC4, 0xF3, 0x00, 0x44, 0xB4, 0xED, 0x00, 0x23, 0x8E, 0xD5, 0x00, 0x11, 0x77, 0xCE, 0x00, 0x00, 0x6C, 0xC6, 0x00, + 0x02, 0x81, 0xDE, 0x00, 0x00, 0x87, 0xDA, 0x00, 0x00, 0x8D, 0xD6, 0x00, 0x06, 0x9B, 0xE1, 0x00, 0x00, 0x98, 0xDC, + 0x00, 0x22, 0xB1, 0xF0, 0x00, 0x35, 0xB9, 0xF4, 0x00, 0x3C, 0xBC, 0xF3, 0x00, 0x1B, 0xB4, 0xFF, 0x00, 0xFE, 0xFD, + 0x89, 0x00, 0xFA, 0xFF, 0x95, 0x00, 0xFA, 0xFC, 0x97, 0x00, 0xFB, 0xF8, 0x99, 0x00, 0xFB, 0xFB, 0x97, 0x00, 0xFC, + 0xFD, 0x95, 0x00, 0xF9, 0xFB, 0x8F, 0x00, 0xF6, 0xF9, 0x89, 0x00, 0xF7, 0xF9, 0x84, 0x00, 0xF8, 0xF9, 0x7F, 0x00, + 0xF9, 0xFA, 0x7A, 0x00, 0xFA, 0xFA, 0x75, 0x00, 0xF9, 0xF9, 0x6A, 0x00, 0xF8, 0xF9, 0x5F, 0x00, 0xF7, 0xF8, 0x54, + 0x00, 0xF6, 0xF7, 0x49, 0x00, 0xF7, 0xF5, 0x3F, 0x00, 0xF7, 0xF2, 0x35, 0x00, 0xF3, 0xEB, 0x2E, 0x00, 0xF0, 0xE3, + 0x27, 0x00, 0xF0, 0xDA, 0x24, 0x00, 0xF0, 0xD1, 0x21, 0x00, 0xE8, 0xC9, 0x23, 0x00, 0x03, 0x9B, 0xFF, 0x00, 0x20, + 0xA3, 0xF6, 0x00, 0x16, 0xA1, 0xF6, 0x00, 0x16, 0x9F, 0xF7, 0x00, 0x16, 0x9D, 0xF7, 0x00, 0x15, 0x9C, 0xF6, 0x00, + 0x14, 0x9B, 0xF5, 0x00, 0x13, 0x9A, 0xF4, 0x00, 0x12, 0x99, 0xF3, 0x00, 0x12, 0x99, 0xF3, 0x00, 0x12, 0x99, 0xF3, + 0x00, 0x12, 0x99, 0xF3, 0x00, 0x5A, 0xE2, 0xFE, 0x00, 0x64, 0xD7, 0xFF, 0x00, 0x0C, 0x46, 0x97, 0x00, 0x00, 0x25, + 0x82, 0x00, 0x1D, 0x6A, 0xB7, 0x00, 0x39, 0xA2, 0xDE, 0x00, 0x5E, 0xE5, 0xFF, 0x00, 0x51, 0xD8, 0xFD, 0x00, 0x4C, + 0xD6, 0xF5, 0x00, 0x48, 0xCC, 0xF4, 0x00, 0x5E, 0xCF, 0xF6, 0x00, 0x67, 0xD9, 0xFE, 0x00, 0x61, 0xD3, 0xF7, 0x00, + 0x5A, 0xD1, 0xF8, 0x00, 0x41, 0xCB, 0xFE, 0x00, 0x53, 0xCE, 0xFE, 0x00, 0x51, 0xCF, 0xF5, 0x00, 0x49, 0xCA, 0xF6, + 0x00, 0x49, 0xCD, 0xFF, 0x00, 0x3F, 0xB9, 0xFF, 0x00, 0x0E, 0x7E, 0xDA, 0x00, 0x00, 0x69, 0xC2, 0x00, 0x05, 0x84, + 0xDA, 0x00, 0x01, 0x84, 0xD5, 0x00, 0x05, 0x8C, 0xD8, 0x00, 0x37, 0xBE, 0xF8, 0x00, 0x3A, 0xBE, 0xF6, 0x00, 0x34, + 0xBD, 0xFF, 0x00, 0x61, 0xC6, 0xE1, 0x00, 0xFB, 0xF3, 0x79, 0x00, 0xF7, 0xFA, 0x82, 0x00, 0xF9, 0xF9, 0x83, 0x00, + 0xFA, 0xF7, 0x83, 0x00, 0xF8, 0xF7, 0x7F, 0x00, 0xF6, 0xF6, 0x7B, 0x00, 0xF7, 0xF8, 0x79, 0x00, 0xF8, 0xFA, 0x77, + 0x00, 0xF7, 0xF9, 0x71, 0x00, 0xF7, 0xF8, 0x6C, 0x00, 0xFB, 0xFC, 0x6B, 0x00, 0xF8, 0xF8, 0x63, 0x00, 0xF8, 0xF7, + 0x5A, 0x00, 0xF7, 0xF7, 0x52, 0x00, 0xF7, 0xF5, 0x48, 0x00, 0xF6, 0xF4, 0x3F, 0x00, 0xF5, 0xF2, 0x37, 0x00, 0xF4, + 0xEF, 0x2F, 0x00, 0xF1, 0xE6, 0x27, 0x00, 0xEE, 0xDD, 0x20, 0x00, 0xEA, 0xD6, 0x1F, 0x00, 0xF1, 0xCC, 0x10, 0x00, + 0x9D, 0xB9, 0x6C, 0x00, 0x0B, 0x9F, 0xFE, 0x00, 0x1A, 0xA3, 0xF8, 0x00, 0x16, 0xA2, 0xF9, 0x00, 0x16, 0xA0, 0xF8, + 0x00, 0x16, 0x9E, 0xF7, 0x00, 0x15, 0x9D, 0xF7, 0x00, 0x14, 0x9B, 0xF6, 0x00, 0x14, 0x9A, 0xF5, 0x00, 0x13, 0x99, + 0xF4, 0x00, 0x13, 0x99, 0xF4, 0x00, 0x13, 0x99, 0xF4, 0x00, 0x13, 0x99, 0xF4, 0x00, 0x60, 0xD8, 0xF8, 0x00, 0x5A, + 0xD8, 0xF7, 0x00, 0x4B, 0xAD, 0xD7, 0x00, 0x68, 0xDD, 0xFF, 0x00, 0x55, 0xDC, 0xF7, 0x00, 0x55, 0xD6, 0xFC, 0x00, + 0x54, 0xCF, 0xFF, 0x00, 0x5C, 0xD5, 0xFF, 0x00, 0x53, 0xCA, 0xF1, 0x00, 0x4A, 0xCA, 0xF5, 0x00, 0x42, 0xC9, 0xF9, + 0x00, 0x47, 0xC9, 0xF7, 0x00, 0x4B, 0xC8, 0xF5, 0x00, 0x5C, 0xCF, 0xF0, 0x00, 0x46, 0xCC, 0xF8, 0x00, 0x55, 0xCA, + 0xFF, 0x00, 0x3E, 0xC3, 0xF9, 0x00, 0x43, 0xC2, 0xFB, 0x00, 0x48, 0xC1, 0xFC, 0x00, 0x3E, 0xBE, 0xF3, 0x00, 0x43, + 0xCB, 0xFA, 0x00, 0x37, 0xB3, 0xFC, 0x00, 0x0B, 0x7B, 0xDD, 0x00, 0x00, 0x6D, 0xC8, 0x00, 0x0D, 0x7F, 0xD4, 0x00, + 0x4D, 0xCC, 0xFF, 0x00, 0x3E, 0xC2, 0xF9, 0x00, 0x2D, 0xC1, 0xFF, 0x00, 0xA7, 0xDE, 0xA7, 0x00, 0xF7, 0xEB, 0x5B, + 0x00, 0xF4, 0xF5, 0x6F, 0x00, 0xF7, 0xF5, 0x6E, 0x00, 0xF9, 0xF6, 0x6D, 0x00, 0xF5, 0xF3, 0x67, 0x00, 0xF1, 0xF0, + 0x60, 0x00, 0xF5, 0xF6, 0x62, 0x00, 0xFA, 0xFC, 0x65, 0x00, 0xF8, 0xF9, 0x5E, 0x00, 0xF5, 0xF6, 0x58, 0x00, 0xFE, + 0xFE, 0x5D, 0x00, 0xF6, 0xF6, 0x52, 0x00, 0xF6, 0xF5, 0x4B, 0x00, 0xF7, 0xF5, 0x44, 0x00, 0xF6, 0xF3, 0x3D, 0x00, + 0xF5, 0xF1, 0x35, 0x00, 0xF3, 0xEE, 0x2F, 0x00, 0xF0, 0xEB, 0x28, 0x00, 0xEE, 0xE1, 0x20, 0x00, 0xEC, 0xD8, 0x18, + 0x00, 0xE4, 0xD2, 0x1A, 0x00, 0xF3, 0xC6, 0x00, 0x00, 0x51, 0xA8, 0xB4, 0x00, 0x13, 0xA3, 0xFA, 0x00, 0x15, 0xA3, + 0xFB, 0x00, 0x17, 0xA3, 0xFB, 0x00, 0x16, 0xA0, 0xFA, 0x00, 0x16, 0x9E, 0xF8, 0x00, 0x15, 0x9D, 0xF7, 0x00, 0x15, + 0x9C, 0xF7, 0x00, 0x14, 0x9A, 0xF6, 0x00, 0x14, 0x99, 0xF6, 0x00, 0x14, 0x99, 0xF6, 0x00, 0x14, 0x99, 0xF6, 0x00, + 0x14, 0x99, 0xF6, 0x00, 0x58, 0xCE, 0xF1, 0x00, 0x59, 0xDC, 0xFD, 0x00, 0x55, 0xD5, 0xF8, 0x00, 0x5D, 0xDD, 0xFF, + 0x00, 0x4D, 0xCE, 0xF3, 0x00, 0x4C, 0xCB, 0xF3, 0x00, 0x4C, 0xC8, 0xF3, 0x00, 0x56, 0xD1, 0xFB, 0x00, 0x58, 0xD3, + 0xFC, 0x00, 0x4F, 0xCE, 0xFB, 0x00, 0x47, 0xC9, 0xFA, 0x00, 0x48, 0xC8, 0xF9, 0x00, 0x49, 0xC7, 0xF8, 0x00, 0x50, + 0xCA, 0xF5, 0x00, 0x44, 0xC9, 0xF9, 0x00, 0x4B, 0xC8, 0xFD, 0x00, 0x3E, 0xC5, 0xF9, 0x00, 0x40, 0xC3, 0xFA, 0x00, + 0x43, 0xC2, 0xFA, 0x00, 0x3A, 0xBD, 0xF3, 0x00, 0x3A, 0xBF, 0xF3, 0x00, 0x3E, 0xC7, 0xFC, 0x00, 0x3A, 0xC6, 0xFC, + 0x00, 0x24, 0xA1, 0xE2, 0x00, 0x1F, 0x8C, 0xD9, 0x00, 0x36, 0xB9, 0xF6, 0x00, 0x26, 0xBB, 0xFA, 0x00, 0x29, 0xBA, + 0xF3, 0x00, 0xCD, 0xD7, 0x56, 0x00, 0xF9, 0xFA, 0x5A, 0x00, 0xD9, 0xDA, 0x48, 0x00, 0xED, 0xEC, 0x58, 0x00, 0xF9, + 0xF5, 0x5F, 0x00, 0xF1, 0xEF, 0x4D, 0x00, 0xE9, 0xE9, 0x3A, 0x00, 0xED, 0xEE, 0x45, 0x00, 0xF2, 0xF4, 0x50, 0x00, + 0xF9, 0xF3, 0x4E, 0x00, 0xED, 0xF0, 0x44, 0x00, 0xFE, 0xF8, 0x4B, 0x00, 0xF4, 0xF5, 0x41, 0x00, 0xF5, 0xF4, 0x3C, + 0x00, 0xF6, 0xF2, 0x37, 0x00, 0xF5, 0xF0, 0x31, 0x00, 0xF4, 0xEF, 0x2A, 0x00, 0xF2, 0xEA, 0x26, 0x00, 0xF0, 0xE6, + 0x22, 0x00, 0xEE, 0xDB, 0x1C, 0x00, 0xEC, 0xD0, 0x17, 0x00, 0xF0, 0xCC, 0x08, 0x00, 0xF5, 0xC4, 0x08, 0x00, 0x0E, + 0xAD, 0xFF, 0x00, 0x16, 0xA1, 0xF9, 0x00, 0x17, 0xA1, 0xF8, 0x00, 0x18, 0xA1, 0xF8, 0x00, 0x17, 0xA0, 0xF8, 0x00, + 0x16, 0x9E, 0xF8, 0x00, 0x16, 0x9D, 0xF8, 0x00, 0x15, 0x9C, 0xF8, 0x00, 0x15, 0x9A, 0xF7, 0x00, 0x14, 0x99, 0xF7, + 0x00, 0x14, 0x99, 0xF7, 0x00, 0x14, 0x99, 0xF7, 0x00, 0x14, 0x99, 0xF7, 0x00, 0x60, 0xD5, 0xFB, 0x00, 0x5A, 0xD3, + 0xFA, 0x00, 0x55, 0xD1, 0xFA, 0x00, 0x55, 0xD0, 0xFC, 0x00, 0x54, 0xCF, 0xFE, 0x00, 0x54, 0xD0, 0xFA, 0x00, 0x53, + 0xD1, 0xF6, 0x00, 0x50, 0xCE, 0xF6, 0x00, 0x4E, 0xCB, 0xF7, 0x00, 0x4C, 0xCA, 0xF9, 0x00, 0x4B, 0xCA, 0xFA, 0x00, + 0x49, 0xC8, 0xFB, 0x00, 0x47, 0xC6, 0xFB, 0x00, 0x45, 0xC6, 0xFB, 0x00, 0x43, 0xC6, 0xFA, 0x00, 0x41, 0xC6, 0xF9, + 0x00, 0x3F, 0xC6, 0xF8, 0x00, 0x3E, 0xC4, 0xF8, 0x00, 0x3E, 0xC3, 0xF9, 0x00, 0x3F, 0xC3, 0xFB, 0x00, 0x40, 0xC3, + 0xFD, 0x00, 0x38, 0xBA, 0xF2, 0x00, 0x3F, 0xC0, 0xF7, 0x00, 0x3D, 0xC2, 0xFA, 0x00, 0x3A, 0xC5, 0xFD, 0x00, 0x37, + 0xC1, 0xF6, 0x00, 0x34, 0xBD, 0xEF, 0x00, 0x2D, 0xBB, 0xEF, 0x00, 0xDD, 0xD6, 0x21, 0x00, 0xBF, 0xDC, 0x37, 0x00, + 0xDD, 0xE0, 0x41, 0x00, 0xEB, 0xEA, 0x49, 0x00, 0xEA, 0xE3, 0x41, 0x00, 0xED, 0xE8, 0x41, 0x00, 0xF1, 0xED, 0x41, + 0x00, 0xED, 0xEC, 0x3F, 0x00, 0xEA, 0xEB, 0x3C, 0x00, 0xFA, 0xEE, 0x3E, 0x00, 0xE5, 0xEB, 0x31, 0x00, 0xFE, 0xF2, + 0x39, 0x00, 0xF1, 0xF4, 0x31, 0x00, 0xF3, 0xF2, 0x2D, 0x00, 0xF5, 0xF0, 0x29, 0x00, 0xF4, 0xEE, 0x25, 0x00, 0xF4, + 0xEC, 0x20, 0x00, 0xF1, 0xE6, 0x1E, 0x00, 0xEF, 0xE1, 0x1C, 0x00, 0xED, 0xD5, 0x19, 0x00, 0xEB, 0xC9, 0x16, 0x00, + 0xDE, 0xC3, 0x0B, 0x00, 0xBA, 0xBE, 0x39, 0x00, 0x07, 0x98, 0xF8, 0x00, 0x19, 0x9F, 0xF8, 0x00, 0x19, 0x9F, 0xF6, + 0x00, 0x19, 0x9F, 0xF5, 0x00, 0x18, 0x9F, 0xF7, 0x00, 0x16, 0x9F, 0xF9, 0x00, 0x16, 0x9D, 0xF9, 0x00, 0x16, 0x9C, + 0xF9, 0x00, 0x16, 0x9A, 0xF9, 0x00, 0x15, 0x99, 0xF8, 0x00, 0x15, 0x99, 0xF8, 0x00, 0x15, 0x99, 0xF8, 0x00, 0x15, + 0x99, 0xF8, 0x00, 0x5C, 0xD4, 0xF8, 0x00, 0x58, 0xD4, 0xF8, 0x00, 0x54, 0xD3, 0xF8, 0x00, 0x56, 0xD1, 0xF9, 0x00, + 0x57, 0xD0, 0xFA, 0x00, 0x55, 0xD0, 0xF8, 0x00, 0x53, 0xD0, 0xF5, 0x00, 0x50, 0xCE, 0xF7, 0x00, 0x4D, 0xCC, 0xF9, + 0x00, 0x4C, 0xCB, 0xF9, 0x00, 0x4A, 0xCA, 0xFA, 0x00, 0x48, 0xC8, 0xFB, 0x00, 0x46, 0xC7, 0xFB, 0x00, 0x44, 0xC6, + 0xFA, 0x00, 0x43, 0xC6, 0xFA, 0x00, 0x41, 0xC6, 0xF9, 0x00, 0x3F, 0xC6, 0xF9, 0x00, 0x3E, 0xC4, 0xF9, 0x00, 0x3D, + 0xC3, 0xF9, 0x00, 0x3E, 0xC2, 0xFA, 0x00, 0x3E, 0xC1, 0xFB, 0x00, 0x3A, 0xBD, 0xF5, 0x00, 0x3D, 0xC1, 0xF7, 0x00, + 0x3A, 0xC0, 0xF8, 0x00, 0x37, 0xC0, 0xF9, 0x00, 0x36, 0xBD, 0xFF, 0x00, 0x35, 0xBB, 0xFF, 0x00, 0x66, 0xBA, 0x84, + 0x00, 0xAF, 0xD2, 0x18, 0x00, 0xB3, 0xD2, 0x19, 0x00, 0xD2, 0xDA, 0x39, 0x00, 0xE1, 0xDC, 0x3D, 0x00, 0xD5, 0xD4, + 0x31, 0x00, 0xE1, 0xDF, 0x37, 0x00, 0xEC, 0xE9, 0x3E, 0x00, 0xE1, 0xE6, 0x35, 0x00, 0xE9, 0xE5, 0x35, 0x00, 0xF0, + 0xE5, 0x34, 0x00, 0xE4, 0xE3, 0x2A, 0x00, 0xF5, 0xE5, 0x2D, 0x00, 0xE8, 0xEB, 0x28, 0x00, 0xF0, 0xEE, 0x2A, 0x00, + 0xEF, 0xE8, 0x24, 0x00, 0xEC, 0xE4, 0x20, 0x00, 0xE9, 0xDF, 0x1C, 0x00, 0xEB, 0xDB, 0x1C, 0x00, 0xED, 0xD7, 0x1B, + 0x00, 0xE9, 0xCE, 0x18, 0x00, 0xE5, 0xC5, 0x15, 0x00, 0xE7, 0xBF, 0x03, 0x00, 0x6C, 0xB1, 0x92, 0x00, 0x10, 0x9C, + 0xFB, 0x00, 0x17, 0xA0, 0xF7, 0x00, 0x19, 0xA0, 0xF5, 0x00, 0x1B, 0xA0, 0xF3, 0x00, 0x19, 0x9F, 0xF6, 0x00, 0x16, + 0x9F, 0xF9, 0x00, 0x16, 0x9E, 0xF8, 0x00, 0x15, 0x9C, 0xF8, 0x00, 0x15, 0x9B, 0xF8, 0x00, 0x15, 0x99, 0xF8, 0x00, + 0x14, 0x99, 0xF7, 0x00, 0x14, 0x98, 0xF7, 0x00, 0x14, 0x98, 0xF7, 0x00, 0x57, 0xD3, 0xF6, 0x00, 0x55, 0xD4, 0xF6, + 0x00, 0x53, 0xD5, 0xF6, 0x00, 0x57, 0xD2, 0xF7, 0x00, 0x5B, 0xD0, 0xF7, 0x00, 0x57, 0xD0, 0xF6, 0x00, 0x54, 0xCF, + 0xF5, 0x00, 0x50, 0xCE, 0xF7, 0x00, 0x4C, 0xCC, 0xFA, 0x00, 0x4B, 0xCB, 0xFA, 0x00, 0x49, 0xCA, 0xFA, 0x00, 0x47, + 0xC8, 0xFA, 0x00, 0x46, 0xC7, 0xFB, 0x00, 0x44, 0xC7, 0xFA, 0x00, 0x43, 0xC6, 0xFA, 0x00, 0x41, 0xC6, 0xF9, 0x00, + 0x3F, 0xC5, 0xF9, 0x00, 0x3E, 0xC4, 0xF9, 0x00, 0x3D, 0xC2, 0xF9, 0x00, 0x3C, 0xC1, 0xF9, 0x00, 0x3B, 0xC0, 0xF9, + 0x00, 0x3C, 0xC1, 0xF8, 0x00, 0x3C, 0xC2, 0xF7, 0x00, 0x38, 0xBE, 0xF6, 0x00, 0x34, 0xBB, 0xF5, 0x00, 0x35, 0xBC, + 0xFD, 0x00, 0x36, 0xBE, 0xFF, 0x00, 0x45, 0xBB, 0xFB, 0x00, 0x82, 0xC9, 0x2B, 0x00, 0xA0, 0xBE, 0x01, 0x00, 0xB8, + 0xC4, 0x20, 0x00, 0xD8, 0xCF, 0x31, 0x00, 0xD1, 0xD5, 0x31, 0x00, 0xD4, 0xD5, 0x2E, 0x00, 0xD7, 0xD4, 0x2A, 0x00, + 0xCC, 0xD7, 0x24, 0x00, 0xE8, 0xDE, 0x2E, 0x00, 0xE6, 0xDD, 0x29, 0x00, 0xE4, 0xDC, 0x24, 0x00, 0xED, 0xD9, 0x22, + 0x00, 0xDF, 0xE1, 0x20, 0x00, 0xEC, 0xE9, 0x27, 0x00, 0xEA, 0xE0, 0x1E, 0x00, 0xE3, 0xD9, 0x1B, 0x00, 0xDD, 0xD3, + 0x19, 0x00, 0xE4, 0xD0, 0x1A, 0x00, 0xEB, 0xCD, 0x1B, 0x00, 0xE4, 0xC7, 0x17, 0x00, 0xDE, 0xC2, 0x14, 0x00, 0xEF, + 0xBC, 0x00, 0x00, 0x1D, 0xA4, 0xEB, 0x00, 0x19, 0xA0, 0xFF, 0x00, 0x15, 0xA2, 0xF6, 0x00, 0x19, 0xA2, 0xF3, 0x00, + 0x1D, 0xA1, 0xF0, 0x00, 0x19, 0xA0, 0xF4, 0x00, 0x16, 0x9F, 0xF8, 0x00, 0x15, 0x9E, 0xF8, 0x00, 0x15, 0x9D, 0xF8, + 0x00, 0x14, 0x9B, 0xF7, 0x00, 0x14, 0x9A, 0xF7, 0x00, 0x13, 0x99, 0xF6, 0x00, 0x12, 0x98, 0xF5, 0x00, 0x12, 0x98, + 0xF5, 0x00, 0x5E, 0xD5, 0xF8, 0x00, 0x63, 0xD5, 0xFC, 0x00, 0x68, 0xD6, 0xFF, 0x00, 0x5E, 0xD2, 0xFB, 0x00, 0x55, + 0xCF, 0xF8, 0x00, 0x53, 0xCF, 0xF7, 0x00, 0x50, 0xCE, 0xF7, 0x00, 0x4D, 0xCD, 0xF9, 0x00, 0x4B, 0xCC, 0xFA, 0x00, + 0x49, 0xCB, 0xFA, 0x00, 0x48, 0xCA, 0xFA, 0x00, 0x47, 0xC9, 0xFA, 0x00, 0x45, 0xC8, 0xFA, 0x00, 0x44, 0xC7, 0xFA, + 0x00, 0x42, 0xC6, 0xF9, 0x00, 0x41, 0xC5, 0xF9, 0x00, 0x40, 0xC5, 0xF9, 0x00, 0x3F, 0xC4, 0xF9, 0x00, 0x3D, 0xC2, + 0xF9, 0x00, 0x3C, 0xC1, 0xF9, 0x00, 0x3B, 0xC0, 0xF8, 0x00, 0x3B, 0xC0, 0xF8, 0x00, 0x3A, 0xC1, 0xF8, 0x00, 0x38, + 0xBF, 0xF7, 0x00, 0x35, 0xBD, 0xF6, 0x00, 0x34, 0xBD, 0xFA, 0x00, 0x33, 0xBD, 0xFE, 0x00, 0x22, 0xC3, 0xF5, 0x00, + 0x26, 0xBA, 0xFB, 0x00, 0x53, 0xB0, 0xB1, 0x00, 0x9A, 0xC5, 0x06, 0x00, 0xC0, 0xD2, 0x22, 0x00, 0xD3, 0xDD, 0x36, + 0x00, 0xB3, 0xBA, 0x12, 0x00, 0xC3, 0xC7, 0x1E, 0x00, 0xC4, 0xCE, 0x21, 0x00, 0xD8, 0xD8, 0x2C, 0x00, 0xDE, 0xDA, + 0x2F, 0x00, 0xDC, 0xD5, 0x2A, 0x00, 0xE7, 0xD4, 0x20, 0x00, 0xD4, 0xD5, 0x1C, 0x00, 0xE8, 0xE4, 0x28, 0x00, 0xEB, + 0xE3, 0x24, 0x00, 0xD1, 0xCD, 0x1F, 0x00, 0xD2, 0xC5, 0x1C, 0x00, 0xDC, 0xC2, 0x01, 0x00, 0xCF, 0xC3, 0x11, 0x00, + 0xE2, 0xC1, 0x09, 0x00, 0xE3, 0xBE, 0x00, 0x00, 0x83, 0xBE, 0x6E, 0x00, 0x0C, 0x9F, 0xF6, 0x00, 0x11, 0x9F, 0xFD, + 0x00, 0x17, 0xA1, 0xF6, 0x00, 0x19, 0xA1, 0xF4, 0x00, 0x1A, 0xA1, 0xF3, 0x00, 0x18, 0xA0, 0xF5, 0x00, 0x15, 0x9F, + 0xF8, 0x00, 0x15, 0x9E, 0xF7, 0x00, 0x14, 0x9D, 0xF7, 0x00, 0x14, 0x9C, 0xF7, 0x00, 0x13, 0x9B, 0xF7, 0x00, 0x11, + 0x99, 0xF5, 0x00, 0x10, 0x98, 0xF4, 0x00, 0x10, 0x98, 0xF4, 0x00, 0x64, 0xD6, 0xFB, 0x00, 0x5D, 0xD4, 0xF9, 0x00, + 0x55, 0xD2, 0xF8, 0x00, 0x53, 0xD0, 0xF8, 0x00, 0x50, 0xCE, 0xF8, 0x00, 0x4E, 0xCE, 0xF9, 0x00, 0x4D, 0xCD, 0xFA, + 0x00, 0x4B, 0xCC, 0xFA, 0x00, 0x49, 0xCC, 0xFB, 0x00, 0x48, 0xCB, 0xFA, 0x00, 0x47, 0xCA, 0xFA, 0x00, 0x46, 0xC9, + 0xFA, 0x00, 0x45, 0xC8, 0xFA, 0x00, 0x43, 0xC7, 0xFA, 0x00, 0x42, 0xC6, 0xF9, 0x00, 0x41, 0xC5, 0xF9, 0x00, 0x40, + 0xC4, 0xF9, 0x00, 0x3F, 0xC3, 0xF9, 0x00, 0x3D, 0xC2, 0xF9, 0x00, 0x3C, 0xC1, 0xF9, 0x00, 0x3B, 0xC0, 0xF8, 0x00, + 0x3A, 0xC0, 0xF8, 0x00, 0x39, 0xBF, 0xF8, 0x00, 0x38, 0xBF, 0xF8, 0x00, 0x36, 0xBF, 0xF8, 0x00, 0x34, 0xBD, 0xF7, + 0x00, 0x31, 0xBC, 0xF7, 0x00, 0x33, 0xBB, 0xF8, 0x00, 0x35, 0xBA, 0xF9, 0x00, 0x2C, 0xBC, 0xFF, 0x00, 0x60, 0xC2, + 0xDE, 0x00, 0x93, 0xCB, 0x84, 0x00, 0xC5, 0xD4, 0x2A, 0x00, 0xCA, 0xD7, 0x2E, 0x00, 0xB0, 0xBA, 0x12, 0x00, 0xB4, + 0xBE, 0x16, 0x00, 0xB8, 0xC2, 0x1A, 0x00, 0xC6, 0xC8, 0x25, 0x00, 0xC4, 0xBE, 0x20, 0x00, 0xDA, 0xC8, 0x16, 0x00, + 0xC9, 0xC8, 0x18, 0x00, 0xDB, 0xD7, 0x21, 0x00, 0xDD, 0xD6, 0x1A, 0x00, 0xB7, 0xBC, 0x0D, 0x00, 0xC7, 0xBD, 0x03, + 0x00, 0xD0, 0xBF, 0x00, 0x00, 0xAC, 0xC9, 0x50, 0x00, 0x6B, 0xB8, 0xB0, 0x00, 0x04, 0xA3, 0xFF, 0x00, 0x12, 0xA3, + 0xFA, 0x00, 0x21, 0xA4, 0xF4, 0x00, 0x1D, 0xA2, 0xF5, 0x00, 0x19, 0xA1, 0xF5, 0x00, 0x18, 0xA0, 0xF6, 0x00, 0x17, + 0xA0, 0xF6, 0x00, 0x16, 0x9F, 0xF7, 0x00, 0x15, 0x9F, 0xF7, 0x00, 0x14, 0x9E, 0xF7, 0x00, 0x14, 0x9D, 0xF7, 0x00, + 0x13, 0x9C, 0xF6, 0x00, 0x12, 0x9B, 0xF6, 0x00, 0x10, 0x99, 0xF4, 0x00, 0x0E, 0x97, 0xF2, 0x00, 0x0E, 0x97, 0xF2, + 0x00, 0x5C, 0xD4, 0xF8, 0x00, 0x57, 0xD3, 0xF8, 0x00, 0x53, 0xD1, 0xF8, 0x00, 0x51, 0xD0, 0xF8, 0x00, 0x4F, 0xCE, + 0xF9, 0x00, 0x4D, 0xCE, 0xF9, 0x00, 0x4B, 0xCD, 0xF9, 0x00, 0x4A, 0xCC, 0xFA, 0x00, 0x48, 0xCB, 0xFA, 0x00, 0x47, + 0xCA, 0xFA, 0x00, 0x46, 0xCA, 0xFA, 0x00, 0x45, 0xC9, 0xF9, 0x00, 0x44, 0xC8, 0xF9, 0x00, 0x43, 0xC7, 0xF9, 0x00, + 0x42, 0xC6, 0xF9, 0x00, 0x41, 0xC5, 0xF9, 0x00, 0x40, 0xC4, 0xF9, 0x00, 0x3E, 0xC3, 0xF9, 0x00, 0x3D, 0xC2, 0xF9, + 0x00, 0x3C, 0xC1, 0xF9, 0x00, 0x3A, 0xC0, 0xF9, 0x00, 0x39, 0xBF, 0xF8, 0x00, 0x38, 0xBF, 0xF8, 0x00, 0x37, 0xBF, + 0xF8, 0x00, 0x36, 0xBE, 0xF8, 0x00, 0x35, 0xBD, 0xF5, 0x00, 0x34, 0xBB, 0xF3, 0x00, 0x34, 0xB9, 0xF7, 0x00, 0x34, + 0xB7, 0xFA, 0x00, 0x22, 0xB5, 0xFF, 0x00, 0x2E, 0xB4, 0xFE, 0x00, 0x4D, 0xB9, 0xE6, 0x00, 0x6B, 0xBF, 0xCD, 0x00, + 0x27, 0xB1, 0xC5, 0x00, 0x6C, 0xBB, 0x7C, 0x00, 0x89, 0xBD, 0x48, 0x00, 0xA6, 0xBE, 0x15, 0x00, 0xB9, 0xBF, 0x08, + 0x00, 0xCB, 0xBF, 0x00, 0x00, 0xDA, 0xC4, 0x3D, 0x00, 0xBA, 0xCA, 0x20, 0x00, 0xAD, 0xC6, 0x3E, 0x00, 0x99, 0xBB, + 0x53, 0x00, 0x59, 0xAC, 0x8A, 0x00, 0x35, 0xAA, 0xC3, 0x00, 0x03, 0xB3, 0xFF, 0x00, 0x15, 0xA6, 0xFF, 0x00, 0x20, + 0xA4, 0xFF, 0x00, 0x19, 0xA0, 0xFA, 0x00, 0x1B, 0xA2, 0xF9, 0x00, 0x1C, 0xA4, 0xF8, 0x00, 0x1B, 0xA2, 0xF7, 0x00, + 0x19, 0xA1, 0xF6, 0x00, 0x18, 0xA0, 0xF6, 0x00, 0x17, 0xA0, 0xF7, 0x00, 0x16, 0x9F, 0xF7, 0x00, 0x15, 0x9F, 0xF7, + 0x00, 0x14, 0x9E, 0xF7, 0x00, 0x14, 0x9D, 0xF6, 0x00, 0x13, 0x9C, 0xF6, 0x00, 0x12, 0x9B, 0xF6, 0x00, 0x10, 0x9A, + 0xF4, 0x00, 0x0F, 0x98, 0xF3, 0x00, 0x0F, 0x98, 0xF3, 0x00, 0x53, 0xD2, 0xF6, 0x00, 0x52, 0xD1, 0xF7, 0x00, 0x51, + 0xD0, 0xF8, 0x00, 0x4F, 0xCF, 0xF8, 0x00, 0x4E, 0xCE, 0xF9, 0x00, 0x4C, 0xCE, 0xF9, 0x00, 0x4A, 0xCD, 0xF9, 0x00, + 0x48, 0xCC, 0xF9, 0x00, 0x46, 0xCB, 0xF9, 0x00, 0x46, 0xCA, 0xF9, 0x00, 0x45, 0xC9, 0xF9, 0x00, 0x44, 0xC8, 0xF9, + 0x00, 0x43, 0xC8, 0xF9, 0x00, 0x42, 0xC7, 0xF9, 0x00, 0x41, 0xC6, 0xF9, 0x00, 0x41, 0xC5, 0xF9, 0x00, 0x40, 0xC4, + 0xF9, 0x00, 0x3E, 0xC3, 0xF9, 0x00, 0x3D, 0xC2, 0xF9, 0x00, 0x3B, 0xC1, 0xF9, 0x00, 0x3A, 0xC0, 0xF9, 0x00, 0x38, + 0xBF, 0xF9, 0x00, 0x37, 0xBF, 0xF8, 0x00, 0x36, 0xBE, 0xF8, 0x00, 0x35, 0xBE, 0xF8, 0x00, 0x36, 0xBC, 0xF4, 0x00, + 0x37, 0xBA, 0xEF, 0x00, 0x35, 0xB7, 0xF5, 0x00, 0x34, 0xB5, 0xFC, 0x00, 0x2B, 0xB5, 0xF8, 0x00, 0x22, 0xB6, 0xF5, + 0x00, 0x25, 0xB5, 0xFA, 0x00, 0x28, 0xB3, 0xFF, 0x00, 0x28, 0xB5, 0xFF, 0x00, 0x28, 0xB7, 0xFF, 0x00, 0x1E, 0xB4, + 0xFF, 0x00, 0x14, 0xB2, 0xFE, 0x00, 0x20, 0xAD, 0xF6, 0x00, 0x3C, 0xB9, 0xFE, 0x00, 0x5A, 0xCB, 0xF0, 0x00, 0x41, + 0xBE, 0xFA, 0x00, 0x29, 0xB5, 0xFC, 0x00, 0x11, 0xAD, 0xFE, 0x00, 0x17, 0xAC, 0xFC, 0x00, 0x1D, 0xAB, 0xFA, 0x00, + 0x1D, 0xA9, 0xFD, 0x00, 0x1D, 0xA7, 0xFF, 0x00, 0x1B, 0xA7, 0xFA, 0x00, 0x18, 0xA8, 0xF4, 0x00, 0x18, 0xA6, 0xF8, + 0x00, 0x17, 0xA4, 0xFC, 0x00, 0x19, 0xA2, 0xFA, 0x00, 0x1A, 0xA1, 0xF7, 0x00, 0x19, 0xA0, 0xF7, 0x00, 0x17, 0xA0, + 0xF7, 0x00, 0x16, 0x9F, 0xF7, 0x00, 0x15, 0x9F, 0xF7, 0x00, 0x14, 0x9E, 0xF7, 0x00, 0x13, 0x9D, 0xF6, 0x00, 0x13, + 0x9C, 0xF6, 0x00, 0x12, 0x9B, 0xF5, 0x00, 0x11, 0x9A, 0xF4, 0x00, 0x10, 0x99, 0xF3, 0x00, 0x10, 0x99, 0xF3, 0x00, + 0x54, 0xD1, 0xF7, 0x00, 0x52, 0xD0, 0xF8, 0x00, 0x51, 0xD0, 0xF8, 0x00, 0x4F, 0xCF, 0xF9, 0x00, 0x4E, 0xCF, 0xF9, + 0x00, 0x4B, 0xCE, 0xF9, 0x00, 0x49, 0xCD, 0xF9, 0x00, 0x47, 0xCC, 0xF9, 0x00, 0x45, 0xCA, 0xF8, 0x00, 0x44, 0xCA, + 0xF8, 0x00, 0x44, 0xC9, 0xF8, 0x00, 0x43, 0xC8, 0xF9, 0x00, 0x42, 0xC7, 0xF9, 0x00, 0x42, 0xC7, 0xF9, 0x00, 0x41, + 0xC6, 0xF9, 0x00, 0x40, 0xC5, 0xF9, 0x00, 0x40, 0xC4, 0xF9, 0x00, 0x3E, 0xC3, 0xF9, 0x00, 0x3C, 0xC2, 0xF9, 0x00, + 0x3B, 0xC1, 0xF9, 0x00, 0x39, 0xC0, 0xF9, 0x00, 0x38, 0xBF, 0xF9, 0x00, 0x36, 0xBE, 0xF8, 0x00, 0x35, 0xBE, 0xF8, + 0x00, 0x34, 0xBD, 0xF8, 0x00, 0x34, 0xBC, 0xF6, 0x00, 0x35, 0xBA, 0xF4, 0x00, 0x34, 0xB8, 0xF8, 0x00, 0x33, 0xB6, + 0xFB, 0x00, 0x2D, 0xB6, 0xF9, 0x00, 0x28, 0xB6, 0xF6, 0x00, 0x29, 0xB5, 0xF8, 0x00, 0x29, 0xB4, 0xFA, 0x00, 0x29, + 0xB4, 0xFB, 0x00, 0x29, 0xB5, 0xFC, 0x00, 0x29, 0xB2, 0xF5, 0x00, 0x29, 0xAF, 0xEF, 0x00, 0x1A, 0xA9, 0xF5, 0x00, + 0x9A, 0xCE, 0xD9, 0x00, 0x6C, 0xCF, 0xE8, 0x00, 0x73, 0xC6, 0xE3, 0x00, 0x7F, 0xC9, 0xDD, 0x00, 0x18, 0xAD, 0xFB, + 0x00, 0x1B, 0xAC, 0xF9, 0x00, 0x1F, 0xAB, 0xF7, 0x00, 0x1E, 0xA9, 0xF9, 0x00, 0x1D, 0xA7, 0xFB, 0x00, 0x1C, 0xA7, + 0xF8, 0x00, 0x1A, 0xA6, 0xF6, 0x00, 0x19, 0xA5, 0xF8, 0x00, 0x19, 0xA3, 0xFA, 0x00, 0x1A, 0xA2, 0xF9, 0x00, 0x1A, + 0xA1, 0xF8, 0x00, 0x19, 0xA1, 0xF8, 0x00, 0x18, 0xA0, 0xF8, 0x00, 0x16, 0x9F, 0xF7, 0x00, 0x15, 0x9F, 0xF7, 0x00, + 0x14, 0x9E, 0xF7, 0x00, 0x13, 0x9D, 0xF6, 0x00, 0x12, 0x9C, 0xF6, 0x00, 0x11, 0x9B, 0xF5, 0x00, 0x11, 0x9A, 0xF5, + 0x00, 0x10, 0x9A, 0xF4, 0x00, 0x10, 0x9A, 0xF4, 0x00, 0x54, 0xD0, 0xF9, 0x00, 0x52, 0xCF, 0xF9, 0x00, 0x51, 0xCF, + 0xF9, 0x00, 0x4F, 0xCF, 0xFA, 0x00, 0x4D, 0xCF, 0xFA, 0x00, 0x4A, 0xCE, 0xF9, 0x00, 0x48, 0xCC, 0xF9, 0x00, 0x46, + 0xCB, 0xF8, 0x00, 0x43, 0xCA, 0xF8, 0x00, 0x43, 0xC9, 0xF8, 0x00, 0x43, 0xC9, 0xF8, 0x00, 0x42, 0xC8, 0xF8, 0x00, + 0x42, 0xC7, 0xF8, 0x00, 0x41, 0xC7, 0xF8, 0x00, 0x41, 0xC6, 0xF9, 0x00, 0x40, 0xC5, 0xF9, 0x00, 0x40, 0xC4, 0xF9, + 0x00, 0x3E, 0xC3, 0xF9, 0x00, 0x3C, 0xC2, 0xF9, 0x00, 0x3A, 0xC1, 0xF9, 0x00, 0x38, 0xBF, 0xF9, 0x00, 0x37, 0xBF, + 0xF9, 0x00, 0x36, 0xBE, 0xF9, 0x00, 0x34, 0xBE, 0xF8, 0x00, 0x33, 0xBD, 0xF8, 0x00, 0x33, 0xBC, 0xF9, 0x00, 0x32, + 0xBA, 0xF9, 0x00, 0x32, 0xB9, 0xFA, 0x00, 0x31, 0xB7, 0xFB, 0x00, 0x30, 0xB6, 0xF9, 0x00, 0x2E, 0xB6, 0xF8, 0x00, + 0x2C, 0xB5, 0xF6, 0x00, 0x2A, 0xB4, 0xF4, 0x00, 0x2A, 0xB3, 0xF5, 0x00, 0x2A, 0xB2, 0xF6, 0x00, 0x29, 0xB2, 0xF9, + 0x00, 0x28, 0xB2, 0xFB, 0x00, 0x30, 0xB2, 0xF6, 0x00, 0x11, 0xA8, 0xFD, 0x00, 0x7E, 0xD3, 0xE1, 0x00, 0x58, 0xBB, + 0xE6, 0x00, 0x15, 0xAA, 0xFB, 0x00, 0x1F, 0xAD, 0xF7, 0x00, 0x1F, 0xAB, 0xF6, 0x00, 0x20, 0xAA, 0xF5, 0x00, 0x1F, + 0xA9, 0xF6, 0x00, 0x1E, 0xA7, 0xF6, 0x00, 0x1D, 0xA6, 0xF7, 0x00, 0x1B, 0xA5, 0xF8, 0x00, 0x1B, 0xA4, 0xF8, 0x00, + 0x1B, 0xA3, 0xF8, 0x00, 0x1B, 0xA2, 0xF8, 0x00, 0x1A, 0xA1, 0xF9, 0x00, 0x19, 0xA1, 0xF8, 0x00, 0x18, 0xA0, 0xF8, + 0x00, 0x16, 0x9F, 0xF8, 0x00, 0x15, 0x9F, 0xF7, 0x00, 0x14, 0x9E, 0xF7, 0x00, 0x13, 0x9D, 0xF6, 0x00, 0x12, 0x9C, + 0xF6, 0x00, 0x11, 0x9A, 0xF5, 0x00, 0x11, 0x9A, 0xF5, 0x00, 0x11, 0x9A, 0xF5, 0x00, 0x11, 0x9A, 0xF5, 0x00, 0x54, + 0xD0, 0xF9, 0x00, 0x52, 0xCF, 0xF9, 0x00, 0x51, 0xCF, 0xF9, 0x00, 0x4F, 0xCF, 0xFA, 0x00, 0x4D, 0xCF, 0xFA, 0x00, + 0x4A, 0xCE, 0xF9, 0x00, 0x48, 0xCC, 0xF9, 0x00, 0x46, 0xCB, 0xF8, 0x00, 0x43, 0xCA, 0xF8, 0x00, 0x43, 0xC9, 0xF8, + 0x00, 0x43, 0xC9, 0xF8, 0x00, 0x42, 0xC8, 0xF8, 0x00, 0x42, 0xC7, 0xF8, 0x00, 0x41, 0xC7, 0xF8, 0x00, 0x41, 0xC6, + 0xF9, 0x00, 0x40, 0xC5, 0xF9, 0x00, 0x40, 0xC4, 0xF9, 0x00, 0x3E, 0xC3, 0xF9, 0x00, 0x3C, 0xC2, 0xF9, 0x00, 0x3A, + 0xC1, 0xF9, 0x00, 0x38, 0xBF, 0xF9, 0x00, 0x37, 0xBF, 0xF9, 0x00, 0x36, 0xBE, 0xF9, 0x00, 0x34, 0xBE, 0xF8, 0x00, + 0x33, 0xBD, 0xF8, 0x00, 0x33, 0xBC, 0xF9, 0x00, 0x32, 0xBA, 0xF9, 0x00, 0x32, 0xB9, 0xFA, 0x00, 0x31, 0xB7, 0xFB, + 0x00, 0x30, 0xB6, 0xF9, 0x00, 0x2E, 0xB6, 0xF8, 0x00, 0x2C, 0xB5, 0xF6, 0x00, 0x2A, 0xB4, 0xF4, 0x00, 0x2A, 0xB3, + 0xF5, 0x00, 0x2A, 0xB2, 0xF6, 0x00, 0x2A, 0xB2, 0xF8, 0x00, 0x29, 0xB1, 0xFA, 0x00, 0x2D, 0xB5, 0xF4, 0x00, 0x1D, + 0xB4, 0xF5, 0x00, 0x23, 0x9B, 0xFF, 0x00, 0x1F, 0xB5, 0xF2, 0x00, 0x0B, 0xAB, 0xFB, 0x00, 0x1E, 0xAC, 0xF6, 0x00, + 0x1F, 0xAB, 0xF6, 0x00, 0x20, 0xAA, 0xF5, 0x00, 0x1F, 0xA9, 0xF6, 0x00, 0x1E, 0xA7, 0xF6, 0x00, 0x1D, 0xA6, 0xF7, + 0x00, 0x1B, 0xA5, 0xF8, 0x00, 0x1B, 0xA4, 0xF8, 0x00, 0x1B, 0xA3, 0xF8, 0x00, 0x1B, 0xA2, 0xF8, 0x00, 0x1A, 0xA1, + 0xF9, 0x00, 0x19, 0xA1, 0xF8, 0x00, 0x18, 0xA0, 0xF8, 0x00, 0x16, 0x9F, 0xF8, 0x00, 0x15, 0x9F, 0xF7, 0x00, 0x14, + 0x9E, 0xF7, 0x00, 0x13, 0x9D, 0xF6, 0x00, 0x12, 0x9C, 0xF6, 0x00, 0x11, 0x9A, 0xF5, 0x00, 0x11, 0x9A, 0xF5, 0x00, + 0x11, 0x9A, 0xF5, 0x00, 0x11, 0x9A, 0xF5, 0x00, 0x54, 0xD0, 0xF9, 0x00, 0x52, 0xCF, 0xF9, 0x00, 0x51, 0xCF, 0xF9, + 0x00, 0x4F, 0xCF, 0xFA, 0x00, 0x4D, 0xCF, 0xFA, 0x00, 0x4A, 0xCE, 0xF9, 0x00, 0x48, 0xCC, 0xF9, 0x00, 0x46, 0xCB, + 0xF8, 0x00, 0x43, 0xCA, 0xF8, 0x00, 0x43, 0xC9, 0xF8, 0x00, 0x43, 0xC9, 0xF8, 0x00, 0x42, 0xC8, 0xF8, 0x00, 0x42, + 0xC7, 0xF8, 0x00, 0x41, 0xC7, 0xF8, 0x00, 0x41, 0xC6, 0xF9, 0x00, 0x40, 0xC5, 0xF9, 0x00, 0x40, 0xC4, 0xF9, 0x00, + 0x3E, 0xC3, 0xF9, 0x00, 0x3C, 0xC2, 0xF9, 0x00, 0x3A, 0xC1, 0xF9, 0x00, 0x38, 0xBF, 0xF9, 0x00, 0x37, 0xBF, 0xF9, + 0x00, 0x36, 0xBE, 0xF9, 0x00, 0x34, 0xBE, 0xF8, 0x00, 0x33, 0xBD, 0xF8, 0x00, 0x33, 0xBC, 0xF9, 0x00, 0x32, 0xBA, + 0xF9, 0x00, 0x32, 0xB9, 0xFA, 0x00, 0x31, 0xB7, 0xFB, 0x00, 0x30, 0xB6, 0xF9, 0x00, 0x2E, 0xB6, 0xF8, 0x00, 0x2C, + 0xB5, 0xF6, 0x00, 0x2A, 0xB4, 0xF4, 0x00, 0x2A, 0xB3, 0xF5, 0x00, 0x2A, 0xB2, 0xF6, 0x00, 0x2A, 0xB2, 0xF7, 0x00, + 0x2A, 0xB1, 0xF8, 0x00, 0x21, 0xAE, 0xF9, 0x00, 0x18, 0xAC, 0xFA, 0x00, 0x1E, 0xAD, 0xF6, 0x00, 0x23, 0xAE, 0xF3, + 0x00, 0x20, 0xAC, 0xF4, 0x00, 0x1D, 0xAB, 0xF5, 0x00, 0x1E, 0xAA, 0xF5, 0x00, 0x20, 0xAA, 0xF5, 0x00, 0x1F, 0xA9, + 0xF6, 0x00, 0x1E, 0xA7, 0xF6, 0x00, 0x1D, 0xA6, 0xF7, 0x00, 0x1B, 0xA5, 0xF8, 0x00, 0x1B, 0xA4, 0xF8, 0x00, 0x1B, + 0xA3, 0xF8, 0x00, 0x1B, 0xA2, 0xF8, 0x00, 0x1A, 0xA1, 0xF9, 0x00, 0x19, 0xA1, 0xF8, 0x00, 0x18, 0xA0, 0xF8, 0x00, + 0x16, 0x9F, 0xF8, 0x00, 0x15, 0x9F, 0xF7, 0x00, 0x14, 0x9E, 0xF7, 0x00, 0x13, 0x9D, 0xF6, 0x00, 0x12, 0x9C, 0xF6, + 0x00, 0x11, 0x9A, 0xF5, 0x00, 0x11, 0x9A, 0xF5, 0x00, 0x11, 0x9A, 0xF5, 0x00, 0x11, 0x9A, 0xF5, 0x00, 0x54, 0xD0, + 0xF9, 0x00, 0x52, 0xCF, 0xF9, 0x00, 0x51, 0xCF, 0xF9, 0x00, 0x4F, 0xCF, 0xFA, 0x00, 0x4D, 0xCF, 0xFA, 0x00, 0x4A, + 0xCE, 0xF9, 0x00, 0x48, 0xCC, 0xF9, 0x00, 0x46, 0xCB, 0xF8, 0x00, 0x43, 0xCA, 0xF8, 0x00, 0x43, 0xC9, 0xF8, 0x00, + 0x43, 0xC9, 0xF8, 0x00, 0x42, 0xC8, 0xF8, 0x00, 0x42, 0xC7, 0xF8, 0x00, 0x41, 0xC7, 0xF8, 0x00, 0x41, 0xC6, 0xF9, + 0x00, 0x40, 0xC5, 0xF9, 0x00, 0x40, 0xC4, 0xF9, 0x00, 0x3E, 0xC3, 0xF9, 0x00, 0x3C, 0xC2, 0xF9, 0x00, 0x3A, 0xC1, + 0xF9, 0x00, 0x38, 0xBF, 0xF9, 0x00, 0x37, 0xBF, 0xF9, 0x00, 0x36, 0xBE, 0xF9, 0x00, 0x34, 0xBE, 0xF8, 0x00, 0x33, + 0xBD, 0xF8, 0x00, 0x33, 0xBC, 0xF9, 0x00, 0x32, 0xBA, 0xF9, 0x00, 0x32, 0xB9, 0xFA, 0x00, 0x31, 0xB7, 0xFB, 0x00, + 0x30, 0xB6, 0xF9, 0x00, 0x2E, 0xB6, 0xF8, 0x00, 0x2C, 0xB5, 0xF6, 0x00, 0x2A, 0xB4, 0xF4, 0x00, 0x2A, 0xB3, 0xF5, + 0x00, 0x2A, 0xB2, 0xF6, 0x00, 0x2A, 0xB2, 0xF7, 0x00, 0x2A, 0xB1, 0xF8, 0x00, 0x21, 0xAE, 0xF9, 0x00, 0x18, 0xAC, + 0xFA, 0x00, 0x1E, 0xAD, 0xF6, 0x00, 0x23, 0xAE, 0xF3, 0x00, 0x20, 0xAC, 0xF4, 0x00, 0x1D, 0xAB, 0xF5, 0x00, 0x1E, + 0xAA, 0xF5, 0x00, 0x20, 0xAA, 0xF5, 0x00, 0x1F, 0xA9, 0xF6, 0x00, 0x1E, 0xA7, 0xF6, 0x00, 0x1D, 0xA6, 0xF7, 0x00, + 0x1B, 0xA5, 0xF8, 0x00, 0x1B, 0xA4, 0xF8, 0x00, 0x1B, 0xA3, 0xF8, 0x00, 0x1B, 0xA2, 0xF8, 0x00, 0x1A, 0xA1, 0xF9, + 0x00, 0x19, 0xA1, 0xF8, 0x00, 0x18, 0xA0, 0xF8, 0x00, 0x16, 0x9F, 0xF8, 0x00, 0x15, 0x9F, 0xF7, 0x00, 0x14, 0x9E, + 0xF7, 0x00, 0x13, 0x9D, 0xF6, 0x00, 0x12, 0x9C, 0xF6, 0x00, 0x11, 0x9A, 0xF5, 0x00, 0x11, 0x9A, 0xF5, 0x00, 0x11, + 0x9A, 0xF5, 0x00, 0x11, 0x9A, 0xF5, ]; const CONVERTED_TO_BGRX_WITH_PARTIALLY_COVERED_RECTANGLE_BUFFER: [u8; 64 * 64 * 4] = [ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xE4, 0xAB, 0x2E, 0xFF, 0xE6, 0xAC, 0x2E, 0xFF, 0xE8, 0xAD, 0x2E, 0xFF, 0xE7, 0xAB, 0x2D, 0xFF, - 0xE5, 0xAA, 0x2C, 0xFF, 0xFF, 0xB2, 0x15, 0xFF, 0x10, 0x42, 0xEB, 0xFF, 0x16, 0x4F, 0xF1, 0xFF, - 0x1C, 0x5C, 0xF7, 0xFF, 0x23, 0x71, 0xF8, 0xFF, 0x29, 0x85, 0xF9, 0xFF, 0x2D, 0x88, 0xF6, 0xFF, - 0x30, 0x8B, 0xF3, 0xFF, 0x31, 0x85, 0xF4, 0xFF, 0x33, 0x7F, 0xF4, 0xFF, 0x35, 0x85, 0xF6, 0xFF, - 0x37, 0x8B, 0xF9, 0xFF, 0x38, 0x8D, 0xF8, 0xFF, 0x3A, 0x90, 0xF7, 0xFF, 0x37, 0x8B, 0xF8, 0xFF, - 0x35, 0x86, 0xF8, 0xFF, 0x35, 0x7E, 0xF7, 0xFF, 0x35, 0x75, 0xF6, 0xFF, 0x33, 0x6D, 0xF7, 0xFF, - 0x31, 0x64, 0xF7, 0xFF, 0x31, 0x5E, 0xF8, 0xFF, 0x30, 0x57, 0xF8, 0xFF, 0x25, 0x51, 0xFF, 0xFF, - 0x36, 0x51, 0xF5, 0xFF, 0xFD, 0xA4, 0x03, 0xFF, 0xE1, 0x9A, 0x1E, 0xFF, 0xE3, 0x98, 0x1E, 0xFF, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xE6, 0xAD, 0x30, 0xFF, 0xE8, 0xAE, 0x2F, 0xFF, 0xEA, 0xB0, 0x2D, 0xFF, 0xEC, 0xAD, 0x30, 0xFF, - 0xEE, 0xAF, 0x28, 0xFF, 0xC8, 0xA9, 0x2F, 0xFF, 0x04, 0x3D, 0xFF, 0xFF, 0x19, 0x50, 0xFA, 0xFF, - 0x21, 0x5F, 0xF8, 0xFF, 0x28, 0x73, 0xF7, 0xFF, 0x2F, 0x87, 0xF7, 0xFF, 0x37, 0x95, 0xFA, 0xFF, - 0x37, 0x9B, 0xF5, 0xFF, 0x3A, 0x96, 0xF5, 0xFF, 0x3D, 0x92, 0xF5, 0xFF, 0x3F, 0x94, 0xF7, 0xFF, - 0x41, 0x96, 0xF9, 0xFF, 0x43, 0x99, 0xF9, 0xFF, 0x46, 0x9D, 0xF9, 0xFF, 0x44, 0x98, 0xF8, 0xFF, - 0x43, 0x94, 0xF7, 0xFF, 0x42, 0x8D, 0xF8, 0xFF, 0x41, 0x86, 0xF9, 0xFF, 0x3F, 0x7D, 0xF9, 0xFF, - 0x3C, 0x73, 0xF9, 0xFF, 0x38, 0x70, 0xF7, 0xFF, 0x35, 0x6C, 0xF4, 0xFF, 0x21, 0x60, 0xFF, 0xFF, - 0x62, 0x6C, 0xBE, 0xFF, 0xEF, 0x9D, 0x12, 0xFF, 0xE8, 0x9A, 0x21, 0xFF, 0xED, 0x99, 0x1C, 0xFF, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xE8, 0xAF, 0x32, 0xFF, 0xEA, 0xB1, 0x30, 0xFF, 0xEC, 0xB4, 0x2D, 0xFF, 0xF1, 0xAE, 0x34, 0xFF, - 0xF6, 0xB4, 0x24, 0xFF, 0x86, 0x7E, 0x8D, 0xFF, 0x00, 0x4E, 0xF6, 0xFF, 0x1D, 0x5C, 0xEC, 0xFF, - 0x25, 0x63, 0xF9, 0xFF, 0x2D, 0x76, 0xF7, 0xFF, 0x35, 0x89, 0xF4, 0xFF, 0x41, 0xA2, 0xFD, 0xFF, - 0x3E, 0xAB, 0xF6, 0xFF, 0x43, 0xA8, 0xF6, 0xFF, 0x47, 0xA4, 0xF7, 0xFF, 0x4A, 0xA3, 0xF8, 0xFF, - 0x4C, 0xA1, 0xFA, 0xFF, 0x4E, 0xA5, 0xFA, 0xFF, 0x51, 0xAA, 0xFB, 0xFF, 0x52, 0xA6, 0xF9, 0xFF, - 0x52, 0xA2, 0xF7, 0xFF, 0x4F, 0x9C, 0xFA, 0xFF, 0x4D, 0x97, 0xFD, 0xFF, 0x4A, 0x8D, 0xFC, 0xFF, - 0x47, 0x83, 0xFB, 0xFF, 0x40, 0x82, 0xF6, 0xFF, 0x39, 0x82, 0xF1, 0xFF, 0x2B, 0x72, 0xF4, 0xFF, - 0xAB, 0x8C, 0x71, 0xFF, 0xF0, 0x99, 0x16, 0xFF, 0xEF, 0x99, 0x25, 0xFF, 0xE8, 0x97, 0x25, 0xFF, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xEA, 0xB0, 0x34, 0xFF, 0xE9, 0xB3, 0x32, 0xFF, 0xE8, 0xB5, 0x2F, 0xFF, 0xF0, 0xB0, 0x34, 0xFF, - 0xF8, 0xB6, 0x22, 0xFF, 0x44, 0x60, 0xC5, 0xFF, 0x0B, 0x53, 0xF9, 0xFF, 0x21, 0x63, 0xF2, 0xFF, - 0x29, 0x6F, 0xF6, 0xFF, 0x2F, 0x7D, 0xF6, 0xFF, 0x35, 0x8A, 0xF7, 0xFF, 0x41, 0xA1, 0xFA, 0xFF, - 0x45, 0xAF, 0xF6, 0xFF, 0x4F, 0xB4, 0xFA, 0xFF, 0x50, 0xB0, 0xF6, 0xFF, 0x53, 0xAE, 0xF8, 0xFF, - 0x56, 0xAC, 0xFA, 0xFF, 0x59, 0xB2, 0xFC, 0xFF, 0x5D, 0xB7, 0xFD, 0xFF, 0x5F, 0xB3, 0xFA, 0xFF, - 0x61, 0xAF, 0xF6, 0xFF, 0x5D, 0xAC, 0xF9, 0xFF, 0x59, 0xA9, 0xFD, 0xFF, 0x55, 0x9F, 0xFB, 0xFF, - 0x50, 0x94, 0xF8, 0xFF, 0x4A, 0x91, 0xF7, 0xFF, 0x44, 0x8D, 0xF5, 0xFF, 0x22, 0x7D, 0xFF, 0xFF, - 0xEF, 0xA5, 0x1A, 0xFF, 0xF3, 0x9E, 0x12, 0xFF, 0xF1, 0x96, 0x28, 0xFF, 0xB0, 0x9F, 0x22, 0xFF, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xEC, 0xB2, 0x36, 0xFF, 0xE8, 0xB4, 0x33, 0xFF, 0xE4, 0xB5, 0x31, 0xFF, 0xEF, 0xB1, 0x34, 0xFF, - 0xF9, 0xB8, 0x21, 0xFF, 0x02, 0x41, 0xFD, 0xFF, 0x1E, 0x58, 0xFC, 0xFF, 0x25, 0x6A, 0xF8, 0xFF, - 0x2C, 0x7C, 0xF3, 0xFF, 0x31, 0x84, 0xF6, 0xFF, 0x35, 0x8B, 0xF9, 0xFF, 0x41, 0xA0, 0xF7, 0xFF, - 0x4C, 0xB4, 0xF6, 0xFF, 0x5B, 0xC0, 0xFE, 0xFF, 0x59, 0xBC, 0xF6, 0xFF, 0x5D, 0xBA, 0xF8, 0xFF, - 0x60, 0xB7, 0xFA, 0xFF, 0x64, 0xBE, 0xFD, 0xFF, 0x69, 0xC4, 0xFF, 0xFF, 0x6C, 0xC0, 0xFA, 0xFF, - 0x6F, 0xBD, 0xF5, 0xFF, 0x6A, 0xBC, 0xF9, 0xFF, 0x65, 0xBB, 0xFD, 0xFF, 0x60, 0xB1, 0xFA, 0xFF, - 0x5A, 0xA6, 0xF6, 0xFF, 0x54, 0x9F, 0xF8, 0xFF, 0x4F, 0x98, 0xFA, 0xFF, 0x6E, 0x94, 0xDF, 0xFF, - 0xFB, 0xA6, 0x07, 0xFF, 0xDA, 0x9C, 0x24, 0xFF, 0xF2, 0x9F, 0x14, 0xFF, 0x71, 0xA1, 0x4A, 0xFF, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xED, 0xB6, 0x39, 0xFF, 0xEC, 0xB4, 0x37, 0xFF, 0xEB, 0xB2, 0x34, 0xFF, 0xF2, 0xAB, 0x34, 0xFF, - 0xB3, 0x95, 0x6D, 0xFF, 0x00, 0x46, 0xFF, 0xFF, 0x20, 0x64, 0xF7, 0xFF, 0x28, 0x73, 0xF6, 0xFF, - 0x30, 0x81, 0xF5, 0xFF, 0x37, 0x8B, 0xF6, 0xFF, 0x3D, 0x94, 0xF8, 0xFF, 0x48, 0xA6, 0xF8, 0xFF, - 0x53, 0xB7, 0xF7, 0xFF, 0x60, 0xC2, 0xFB, 0xFF, 0x65, 0xC4, 0xF7, 0xFF, 0x69, 0xC3, 0xF9, 0xFF, - 0x6D, 0xC2, 0xFA, 0xFF, 0x72, 0xC6, 0xFA, 0xFF, 0x77, 0xCB, 0xFA, 0xFF, 0x7A, 0xCB, 0xFB, 0xFF, - 0x7D, 0xCB, 0xFC, 0xFF, 0x7A, 0xC8, 0xFA, 0xFF, 0x77, 0xC5, 0xF8, 0xFF, 0x72, 0xBC, 0xF9, 0xFF, - 0x6C, 0xB4, 0xFA, 0xFF, 0x68, 0xB0, 0xF6, 0xFF, 0x56, 0xAA, 0xFD, 0xFF, 0xA5, 0xA0, 0x93, 0xFF, - 0xF3, 0xA1, 0x13, 0xFF, 0xEF, 0x9C, 0x21, 0xFF, 0xFF, 0x9D, 0x19, 0xFF, 0x23, 0xC1, 0x71, 0xFF, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xEE, 0xB9, 0x3C, 0xFF, 0xF0, 0xB4, 0x3A, 0xFF, 0xF2, 0xAE, 0x37, 0xFF, 0xFE, 0xB3, 0x32, 0xFF, - 0x7C, 0x8E, 0xB3, 0xFF, 0x06, 0x58, 0xFF, 0xFF, 0x22, 0x71, 0xF3, 0xFF, 0x2B, 0x7C, 0xF4, 0xFF, - 0x34, 0x86, 0xF6, 0xFF, 0x3D, 0x92, 0xF7, 0xFF, 0x45, 0x9D, 0xF8, 0xFF, 0x4F, 0xAC, 0xF8, 0xFF, - 0x5A, 0xBB, 0xF8, 0xFF, 0x65, 0xC4, 0xF9, 0xFF, 0x70, 0xCC, 0xF9, 0xFF, 0x75, 0xCC, 0xFA, 0xFF, - 0x7A, 0xCC, 0xFA, 0xFF, 0x80, 0xCF, 0xF7, 0xFF, 0x85, 0xD2, 0xF4, 0xFF, 0x89, 0xD5, 0xFB, 0xFF, - 0x8C, 0xD9, 0xFF, 0xFF, 0x8B, 0xD3, 0xFA, 0xFF, 0x89, 0xCE, 0xF2, 0xFF, 0x84, 0xC8, 0xF8, 0xFF, - 0x7F, 0xC1, 0xFE, 0xFF, 0x7C, 0xC1, 0xF4, 0xFF, 0x5E, 0xBC, 0xFF, 0xFF, 0xDB, 0xAB, 0x47, 0xFF, - 0xEA, 0x9C, 0x1E, 0xFF, 0xE8, 0xA2, 0x1D, 0xFF, 0xE5, 0xA7, 0x1D, 0xFF, 0x1B, 0xD3, 0x98, 0xFF, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xEB, 0xB8, 0x3C, 0xFF, 0xF0, 0xB3, 0x3F, 0xFF, 0xF4, 0xAF, 0x42, 0xFF, 0xE8, 0xBA, 0x0D, 0xFF, - 0x96, 0xB8, 0xFF, 0xFF, 0x4C, 0x81, 0xF6, 0xFF, 0x22, 0x75, 0xF5, 0xFF, 0x2D, 0x80, 0xF6, 0xFF, - 0x38, 0x8B, 0xF7, 0xFF, 0x42, 0x99, 0xF7, 0xFF, 0x4D, 0xA6, 0xF7, 0xFF, 0x56, 0xB2, 0xF8, 0xFF, - 0x5F, 0xBD, 0xF9, 0xFF, 0x6D, 0xC8, 0xF9, 0xFF, 0x7A, 0xD4, 0xFA, 0xFF, 0x81, 0xD5, 0xFA, 0xFF, - 0x88, 0xD7, 0xF9, 0xFF, 0x8D, 0xD8, 0xFA, 0xFF, 0x92, 0xDA, 0xFB, 0xFF, 0xA1, 0xE4, 0xF9, 0xFF, - 0x91, 0xD6, 0xFE, 0xFF, 0x9F, 0xDE, 0xFA, 0xFF, 0x97, 0xDB, 0xF8, 0xFF, 0x93, 0xD5, 0xF9, 0xFF, - 0x8F, 0xCF, 0xFB, 0xFF, 0x85, 0xD1, 0xFF, 0xFF, 0x78, 0xC6, 0xFF, 0xFF, 0xFC, 0x9A, 0x00, 0xFF, - 0xF1, 0xA8, 0x26, 0xFF, 0xF8, 0xA4, 0x1F, 0xFF, 0xA5, 0xBD, 0x53, 0xFF, 0x30, 0xDA, 0xA4, 0xFF, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xE8, 0xB7, 0x3B, 0xFF, 0xF0, 0xB9, 0x39, 0xFF, 0xF7, 0xBA, 0x37, 0xFF, 0xDC, 0xB5, 0x50, 0xFF, - 0x44, 0x96, 0xFF, 0xFF, 0x9C, 0xC4, 0xFE, 0xFF, 0x23, 0x79, 0xF7, 0xFF, 0x30, 0x85, 0xF8, 0xFF, - 0x3C, 0x91, 0xF8, 0xFF, 0x48, 0xA0, 0xF8, 0xFF, 0x55, 0xAF, 0xF7, 0xFF, 0x5D, 0xB7, 0xF8, 0xFF, - 0x65, 0xBF, 0xF9, 0xFF, 0x75, 0xCD, 0xFA, 0xFF, 0x85, 0xDB, 0xFB, 0xFF, 0x8D, 0xDE, 0xFA, 0xFF, - 0x95, 0xE1, 0xF9, 0xFF, 0x9A, 0xE1, 0xFD, 0xFF, 0xA0, 0xE2, 0xFF, 0xFF, 0xA3, 0xE8, 0xFA, 0xFF, - 0x6B, 0xBD, 0xFF, 0xFF, 0x9E, 0xDE, 0xFC, 0xFF, 0xA6, 0xE8, 0xFF, 0xFF, 0xA3, 0xE3, 0xFB, 0xFF, - 0xA0, 0xDE, 0xF7, 0xFF, 0x99, 0xD7, 0xFD, 0xFF, 0xAB, 0xBD, 0xB5, 0xFF, 0xF0, 0x9F, 0x11, 0xFF, - 0xE8, 0xA3, 0x1D, 0xFF, 0xFF, 0x9E, 0x19, 0xFF, 0x65, 0xD4, 0x89, 0xFF, 0x45, 0xE1, 0xB0, 0xFF, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xEE, 0xB8, 0x3C, 0xFF, 0xEB, 0xB8, 0x37, 0xFF, 0xF6, 0xBC, 0x26, 0xFF, 0x8F, 0x9B, 0x94, 0xFF, - 0x37, 0x96, 0xFB, 0xFF, 0x7C, 0xBB, 0xF9, 0xFF, 0x85, 0xB5, 0xF8, 0xFF, 0x49, 0x99, 0xF6, 0xFF, - 0x42, 0x9B, 0xF5, 0xFF, 0x4E, 0xA6, 0xF6, 0xFF, 0x59, 0xB2, 0xF7, 0xFF, 0x65, 0xBC, 0xF8, 0xFF, - 0x72, 0xC6, 0xF9, 0xFF, 0x7F, 0xD3, 0xF9, 0xFF, 0x8D, 0xE0, 0xFA, 0xFF, 0x97, 0xE5, 0xF9, 0xFF, - 0xA1, 0xEB, 0xF8, 0xFF, 0xA6, 0xEA, 0xFE, 0xFF, 0xAA, 0xEA, 0xFF, 0xFF, 0xA8, 0xEE, 0xFC, 0xFF, - 0x62, 0xBA, 0xF9, 0xFF, 0x98, 0xDC, 0xFA, 0xFF, 0xB9, 0xF3, 0xFE, 0xFF, 0xB2, 0xEC, 0xFB, 0xFF, - 0xAB, 0xE5, 0xF7, 0xFF, 0xA2, 0xE4, 0xFE, 0xFF, 0xD1, 0xB0, 0x64, 0xFF, 0xF0, 0x9F, 0x19, 0xFF, - 0xE8, 0x9E, 0x26, 0xFF, 0xF2, 0x98, 0x03, 0xFF, 0x50, 0xEF, 0xE3, 0xFF, 0x57, 0xEE, 0xD5, 0xFF, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xF3, 0xB9, 0x3C, 0xFF, 0xE6, 0xB8, 0x34, 0xFF, 0xF6, 0xBD, 0x16, 0xFF, 0x4F, 0x7F, 0xD8, 0xFF, - 0x46, 0x90, 0xF7, 0xFF, 0x54, 0xA5, 0xF7, 0xFF, 0xBA, 0xDA, 0xFF, 0xFF, 0x4D, 0xA1, 0xF8, 0xFF, - 0x49, 0xA5, 0xF3, 0xFF, 0x53, 0xAD, 0xF4, 0xFF, 0x5D, 0xB5, 0xF6, 0xFF, 0x6E, 0xC0, 0xF8, 0xFF, - 0x7F, 0xCC, 0xFA, 0xFF, 0x8A, 0xD8, 0xF9, 0xFF, 0x95, 0xE4, 0xF8, 0xFF, 0xA1, 0xEC, 0xF8, 0xFF, - 0xAE, 0xF4, 0xF7, 0xFF, 0xB2, 0xF3, 0xFE, 0xFF, 0xB5, 0xF1, 0xFF, 0xFF, 0xAD, 0xF4, 0xFE, 0xFF, - 0x59, 0xB6, 0xF3, 0xFF, 0x92, 0xDA, 0xF8, 0xFF, 0xCC, 0xFF, 0xFE, 0xFF, 0xC1, 0xF6, 0xFA, 0xFF, - 0xB6, 0xED, 0xF7, 0xFF, 0xAB, 0xF1, 0xFF, 0xFF, 0xF7, 0xA4, 0x13, 0xFF, 0xEF, 0xA4, 0x15, 0xFF, - 0xE8, 0xA5, 0x18, 0xFF, 0xCD, 0xB4, 0x56, 0xFF, 0x71, 0xF2, 0xF0, 0xFF, 0x84, 0xEF, 0xD4, 0xFF, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xF1, 0xBB, 0x3E, 0xFF, 0xFD, 0xC0, 0x2F, 0xFF, 0xFB, 0xBD, 0x35, 0xFF, 0x00, 0x4B, 0xF5, 0xFF, - 0x52, 0x8A, 0xFF, 0xFF, 0x5D, 0xA5, 0xFA, 0xFF, 0x8D, 0xC4, 0xFC, 0xFF, 0x85, 0xC1, 0xFB, 0xFF, - 0x50, 0xAD, 0xF5, 0xFF, 0x5E, 0xB6, 0xF7, 0xFF, 0x6B, 0xBE, 0xF9, 0xFF, 0x78, 0xC9, 0xFA, 0xFF, - 0x85, 0xD4, 0xFB, 0xFF, 0x97, 0xDE, 0xFE, 0xFF, 0xAA, 0xE8, 0xFF, 0xFF, 0xAD, 0xEE, 0xFD, 0xFF, - 0xB1, 0xF4, 0xF9, 0xFF, 0xB9, 0xF5, 0xFC, 0xFF, 0xC2, 0xF6, 0xFE, 0xFF, 0xB2, 0xF0, 0xFB, 0xFF, - 0x6E, 0xCB, 0xF6, 0xFF, 0x91, 0xDE, 0xFB, 0xFF, 0xCA, 0xFC, 0xFC, 0xFF, 0xD0, 0xFB, 0xFF, 0xFF, - 0xC8, 0xFC, 0xFF, 0xFF, 0xC7, 0xE3, 0xCA, 0xFF, 0xF2, 0xA1, 0x15, 0xFF, 0xEE, 0xA3, 0x1D, 0xFF, - 0xF1, 0xA1, 0x11, 0xFF, 0xB9, 0xD4, 0x9E, 0xFF, 0x8B, 0xF1, 0xEA, 0xFF, 0x95, 0xEF, 0xDC, 0xFF, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xF0, 0xBD, 0x41, 0xFF, 0xF0, 0xBA, 0x37, 0xFF, 0xB7, 0xA1, 0x71, 0xFF, 0x1D, 0x5D, 0xFE, 0xFF, - 0x31, 0x79, 0xF8, 0xFF, 0x51, 0xA1, 0xF5, 0xFF, 0x60, 0xAD, 0xF8, 0xFF, 0xBC, 0xE0, 0xFE, 0xFF, - 0x57, 0xB6, 0xF7, 0xFF, 0x68, 0xBF, 0xF9, 0xFF, 0x79, 0xC8, 0xFC, 0xFF, 0x82, 0xD2, 0xFC, 0xFF, - 0x8B, 0xDB, 0xFC, 0xFF, 0x8F, 0xDE, 0xFB, 0xFF, 0x92, 0xE0, 0xFB, 0xFF, 0xA3, 0xEA, 0xFA, 0xFF, - 0xB4, 0xF4, 0xFA, 0xFF, 0xC1, 0xF8, 0xF9, 0xFF, 0xCE, 0xFB, 0xF8, 0xFF, 0xB6, 0xEB, 0xF9, 0xFF, - 0x83, 0xE1, 0xFA, 0xFF, 0x8F, 0xE2, 0xFD, 0xFF, 0xC7, 0xF9, 0xFB, 0xFF, 0xD7, 0xF8, 0xFC, 0xFF, - 0xCA, 0xFC, 0xFE, 0xFF, 0xDC, 0xCD, 0x8B, 0xFF, 0xED, 0x9F, 0x18, 0xFF, 0xED, 0xA3, 0x24, 0xFF, - 0xFA, 0x9D, 0x0A, 0xFF, 0xA5, 0xF5, 0xE7, 0xFF, 0xA5, 0xF1, 0xE4, 0xFF, 0xA5, 0xF0, 0xE4, 0xFF, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xEF, 0xBC, 0x3F, 0xFF, 0xFD, 0xC2, 0x32, 0xFF, 0x6E, 0x7F, 0xBD, 0xFF, 0x26, 0x65, 0xFE, 0xFF, - 0x34, 0x7B, 0xF5, 0xFF, 0x4C, 0x9A, 0xF5, 0xFF, 0x5C, 0xAB, 0xF8, 0xFF, 0x9F, 0xD0, 0xFA, 0xFF, - 0x83, 0xC6, 0xF7, 0xFF, 0x6A, 0xC1, 0xFD, 0xFF, 0x7E, 0xD1, 0xFD, 0xFF, 0x87, 0xDB, 0xFB, 0xFF, - 0x8F, 0xE5, 0xF9, 0xFF, 0x9A, 0xEC, 0xF8, 0xFF, 0xA5, 0xF4, 0xF7, 0xFF, 0x99, 0xEA, 0xFB, 0xFF, - 0x8E, 0xDF, 0xFF, 0xFF, 0x9F, 0xE2, 0xFB, 0xFF, 0xB1, 0xE6, 0xF7, 0xFF, 0xCC, 0xED, 0xFB, 0xFF, - 0xCA, 0xFA, 0xFF, 0xFF, 0xC6, 0xF2, 0xFF, 0xFF, 0xC2, 0xF0, 0xFC, 0xFF, 0xD2, 0xF5, 0xFE, 0xFF, - 0xD3, 0xFC, 0xFF, 0xFF, 0xE6, 0xB5, 0x4B, 0xFF, 0xED, 0xA4, 0x20, 0xFF, 0xED, 0xA2, 0x1B, 0xFF, - 0xE2, 0xAA, 0x3D, 0xFF, 0xAB, 0xF6, 0xEE, 0xFF, 0xB1, 0xF1, 0xE5, 0xFF, 0xB4, 0xF2, 0xE7, 0xFF, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xEF, 0xBA, 0x3D, 0xFF, 0xFF, 0xCA, 0x2C, 0xFF, 0x24, 0x5D, 0xFF, 0xFF, 0x2E, 0x6D, 0xFE, 0xFF, - 0x38, 0x7D, 0xF2, 0xFF, 0x48, 0x93, 0xF5, 0xFF, 0x57, 0xA9, 0xF7, 0xFF, 0x82, 0xC0, 0xF7, 0xFF, - 0xAE, 0xD7, 0xF7, 0xFF, 0x6C, 0xC2, 0xFF, 0xFF, 0x84, 0xDA, 0xFE, 0xFF, 0x8B, 0xE4, 0xFA, 0xFF, - 0x93, 0xEE, 0xF6, 0xFF, 0x9D, 0xED, 0xF8, 0xFF, 0xA7, 0xEC, 0xF9, 0xFF, 0xB3, 0xF1, 0xF8, 0xFF, - 0xC0, 0xF6, 0xF7, 0xFF, 0xC8, 0xF6, 0xFB, 0xFF, 0xD0, 0xF6, 0xFF, 0xFF, 0xD3, 0xF2, 0xFE, 0xFF, - 0xB9, 0xF3, 0xFB, 0xFF, 0xE7, 0xFD, 0xFF, 0xFF, 0xE9, 0xFD, 0xF6, 0xFF, 0xE2, 0xFC, 0xFC, 0xFF, - 0xDC, 0xFC, 0xFF, 0xFF, 0xF1, 0x9D, 0x0B, 0xFF, 0xEC, 0xAA, 0x29, 0xFF, 0xF5, 0xAA, 0x1B, 0xFF, - 0xD9, 0xC7, 0x7F, 0xFF, 0xBA, 0xFE, 0xFD, 0xFF, 0xBD, 0xF2, 0xE7, 0xFF, 0xC3, 0xF4, 0xEB, 0xFF, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xF5, 0xC0, 0x39, 0xFF, 0xCA, 0xAC, 0x5E, 0xFF, 0x1E, 0x58, 0xFA, 0xFF, 0x30, 0x6E, 0xF3, 0xFF, - 0x35, 0x80, 0xF7, 0xFF, 0x3E, 0x92, 0xFB, 0xFF, 0x5D, 0xAF, 0xFB, 0xFF, 0x72, 0xC2, 0xFF, 0xFF, - 0xBA, 0xE1, 0xFD, 0xFF, 0x74, 0xCD, 0xFF, 0xFF, 0x71, 0xD3, 0xFF, 0xFF, 0x83, 0xE5, 0xFF, 0xFF, - 0x95, 0xF7, 0xFF, 0xFF, 0xA1, 0xF4, 0xFE, 0xFF, 0xAD, 0xF0, 0xFD, 0xFF, 0xC1, 0xF8, 0xFF, 0xFF, - 0xCD, 0xF7, 0xFB, 0xFF, 0xD1, 0xF8, 0xFE, 0xFF, 0xD6, 0xF9, 0xFF, 0xFF, 0xE0, 0xF6, 0xFE, 0xFF, - 0xDD, 0xF5, 0xFB, 0xFF, 0xED, 0xFB, 0xFF, 0xFF, 0xE8, 0xFB, 0xFB, 0xFF, 0xDF, 0xFC, 0xFF, 0xFF, - 0xE8, 0xE0, 0xB2, 0xFF, 0xEF, 0xA3, 0x18, 0xFF, 0xEC, 0xAA, 0x25, 0xFF, 0xF5, 0xA8, 0x15, 0xFF, - 0xD8, 0xE3, 0xC2, 0xFF, 0xC5, 0xF9, 0xF9, 0xFF, 0xCA, 0xF5, 0xEE, 0xFF, 0xCE, 0xF6, 0xEF, 0xFF, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE4, 0xAB, 0x2E, 0xFF, 0xE6, 0xAC, 0x2E, 0xFF, 0xE8, 0xAD, + 0x2E, 0xFF, 0xE7, 0xAB, 0x2D, 0xFF, 0xE5, 0xAA, 0x2C, 0xFF, 0xFF, 0xB2, 0x15, 0xFF, 0x10, 0x42, 0xEB, 0xFF, 0x16, + 0x4F, 0xF1, 0xFF, 0x1C, 0x5C, 0xF7, 0xFF, 0x23, 0x71, 0xF8, 0xFF, 0x29, 0x85, 0xF9, 0xFF, 0x2D, 0x88, 0xF6, 0xFF, + 0x30, 0x8B, 0xF3, 0xFF, 0x31, 0x85, 0xF4, 0xFF, 0x33, 0x7F, 0xF4, 0xFF, 0x35, 0x85, 0xF6, 0xFF, 0x37, 0x8B, 0xF9, + 0xFF, 0x38, 0x8D, 0xF8, 0xFF, 0x3A, 0x90, 0xF7, 0xFF, 0x37, 0x8B, 0xF8, 0xFF, 0x35, 0x86, 0xF8, 0xFF, 0x35, 0x7E, + 0xF7, 0xFF, 0x35, 0x75, 0xF6, 0xFF, 0x33, 0x6D, 0xF7, 0xFF, 0x31, 0x64, 0xF7, 0xFF, 0x31, 0x5E, 0xF8, 0xFF, 0x30, + 0x57, 0xF8, 0xFF, 0x25, 0x51, 0xFF, 0xFF, 0x36, 0x51, 0xF5, 0xFF, 0xFD, 0xA4, 0x03, 0xFF, 0xE1, 0x9A, 0x1E, 0xFF, + 0xE3, 0x98, 0x1E, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE6, + 0xAD, 0x30, 0xFF, 0xE8, 0xAE, 0x2F, 0xFF, 0xEA, 0xB0, 0x2D, 0xFF, 0xEC, 0xAD, 0x30, 0xFF, 0xEE, 0xAF, 0x28, 0xFF, + 0xC8, 0xA9, 0x2F, 0xFF, 0x04, 0x3D, 0xFF, 0xFF, 0x19, 0x50, 0xFA, 0xFF, 0x21, 0x5F, 0xF8, 0xFF, 0x28, 0x73, 0xF7, + 0xFF, 0x2F, 0x87, 0xF7, 0xFF, 0x37, 0x95, 0xFA, 0xFF, 0x37, 0x9B, 0xF5, 0xFF, 0x3A, 0x96, 0xF5, 0xFF, 0x3D, 0x92, + 0xF5, 0xFF, 0x3F, 0x94, 0xF7, 0xFF, 0x41, 0x96, 0xF9, 0xFF, 0x43, 0x99, 0xF9, 0xFF, 0x46, 0x9D, 0xF9, 0xFF, 0x44, + 0x98, 0xF8, 0xFF, 0x43, 0x94, 0xF7, 0xFF, 0x42, 0x8D, 0xF8, 0xFF, 0x41, 0x86, 0xF9, 0xFF, 0x3F, 0x7D, 0xF9, 0xFF, + 0x3C, 0x73, 0xF9, 0xFF, 0x38, 0x70, 0xF7, 0xFF, 0x35, 0x6C, 0xF4, 0xFF, 0x21, 0x60, 0xFF, 0xFF, 0x62, 0x6C, 0xBE, + 0xFF, 0xEF, 0x9D, 0x12, 0xFF, 0xE8, 0x9A, 0x21, 0xFF, 0xED, 0x99, 0x1C, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE8, 0xAF, 0x32, 0xFF, 0xEA, 0xB1, 0x30, 0xFF, 0xEC, 0xB4, 0x2D, + 0xFF, 0xF1, 0xAE, 0x34, 0xFF, 0xF6, 0xB4, 0x24, 0xFF, 0x86, 0x7E, 0x8D, 0xFF, 0x00, 0x4E, 0xF6, 0xFF, 0x1D, 0x5C, + 0xEC, 0xFF, 0x25, 0x63, 0xF9, 0xFF, 0x2D, 0x76, 0xF7, 0xFF, 0x35, 0x89, 0xF4, 0xFF, 0x41, 0xA2, 0xFD, 0xFF, 0x3E, + 0xAB, 0xF6, 0xFF, 0x43, 0xA8, 0xF6, 0xFF, 0x47, 0xA4, 0xF7, 0xFF, 0x4A, 0xA3, 0xF8, 0xFF, 0x4C, 0xA1, 0xFA, 0xFF, + 0x4E, 0xA5, 0xFA, 0xFF, 0x51, 0xAA, 0xFB, 0xFF, 0x52, 0xA6, 0xF9, 0xFF, 0x52, 0xA2, 0xF7, 0xFF, 0x4F, 0x9C, 0xFA, + 0xFF, 0x4D, 0x97, 0xFD, 0xFF, 0x4A, 0x8D, 0xFC, 0xFF, 0x47, 0x83, 0xFB, 0xFF, 0x40, 0x82, 0xF6, 0xFF, 0x39, 0x82, + 0xF1, 0xFF, 0x2B, 0x72, 0xF4, 0xFF, 0xAB, 0x8C, 0x71, 0xFF, 0xF0, 0x99, 0x16, 0xFF, 0xEF, 0x99, 0x25, 0xFF, 0xE8, + 0x97, 0x25, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEA, 0xB0, + 0x34, 0xFF, 0xE9, 0xB3, 0x32, 0xFF, 0xE8, 0xB5, 0x2F, 0xFF, 0xF0, 0xB0, 0x34, 0xFF, 0xF8, 0xB6, 0x22, 0xFF, 0x44, + 0x60, 0xC5, 0xFF, 0x0B, 0x53, 0xF9, 0xFF, 0x21, 0x63, 0xF2, 0xFF, 0x29, 0x6F, 0xF6, 0xFF, 0x2F, 0x7D, 0xF6, 0xFF, + 0x35, 0x8A, 0xF7, 0xFF, 0x41, 0xA1, 0xFA, 0xFF, 0x45, 0xAF, 0xF6, 0xFF, 0x4F, 0xB4, 0xFA, 0xFF, 0x50, 0xB0, 0xF6, + 0xFF, 0x53, 0xAE, 0xF8, 0xFF, 0x56, 0xAC, 0xFA, 0xFF, 0x59, 0xB2, 0xFC, 0xFF, 0x5D, 0xB7, 0xFD, 0xFF, 0x5F, 0xB3, + 0xFA, 0xFF, 0x61, 0xAF, 0xF6, 0xFF, 0x5D, 0xAC, 0xF9, 0xFF, 0x59, 0xA9, 0xFD, 0xFF, 0x55, 0x9F, 0xFB, 0xFF, 0x50, + 0x94, 0xF8, 0xFF, 0x4A, 0x91, 0xF7, 0xFF, 0x44, 0x8D, 0xF5, 0xFF, 0x22, 0x7D, 0xFF, 0xFF, 0xEF, 0xA5, 0x1A, 0xFF, + 0xF3, 0x9E, 0x12, 0xFF, 0xF1, 0x96, 0x28, 0xFF, 0xB0, 0x9F, 0x22, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEC, 0xB2, 0x36, 0xFF, 0xE8, 0xB4, 0x33, 0xFF, 0xE4, 0xB5, 0x31, 0xFF, + 0xEF, 0xB1, 0x34, 0xFF, 0xF9, 0xB8, 0x21, 0xFF, 0x02, 0x41, 0xFD, 0xFF, 0x1E, 0x58, 0xFC, 0xFF, 0x25, 0x6A, 0xF8, + 0xFF, 0x2C, 0x7C, 0xF3, 0xFF, 0x31, 0x84, 0xF6, 0xFF, 0x35, 0x8B, 0xF9, 0xFF, 0x41, 0xA0, 0xF7, 0xFF, 0x4C, 0xB4, + 0xF6, 0xFF, 0x5B, 0xC0, 0xFE, 0xFF, 0x59, 0xBC, 0xF6, 0xFF, 0x5D, 0xBA, 0xF8, 0xFF, 0x60, 0xB7, 0xFA, 0xFF, 0x64, + 0xBE, 0xFD, 0xFF, 0x69, 0xC4, 0xFF, 0xFF, 0x6C, 0xC0, 0xFA, 0xFF, 0x6F, 0xBD, 0xF5, 0xFF, 0x6A, 0xBC, 0xF9, 0xFF, + 0x65, 0xBB, 0xFD, 0xFF, 0x60, 0xB1, 0xFA, 0xFF, 0x5A, 0xA6, 0xF6, 0xFF, 0x54, 0x9F, 0xF8, 0xFF, 0x4F, 0x98, 0xFA, + 0xFF, 0x6E, 0x94, 0xDF, 0xFF, 0xFB, 0xA6, 0x07, 0xFF, 0xDA, 0x9C, 0x24, 0xFF, 0xF2, 0x9F, 0x14, 0xFF, 0x71, 0xA1, + 0x4A, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xED, 0xB6, 0x39, + 0xFF, 0xEC, 0xB4, 0x37, 0xFF, 0xEB, 0xB2, 0x34, 0xFF, 0xF2, 0xAB, 0x34, 0xFF, 0xB3, 0x95, 0x6D, 0xFF, 0x00, 0x46, + 0xFF, 0xFF, 0x20, 0x64, 0xF7, 0xFF, 0x28, 0x73, 0xF6, 0xFF, 0x30, 0x81, 0xF5, 0xFF, 0x37, 0x8B, 0xF6, 0xFF, 0x3D, + 0x94, 0xF8, 0xFF, 0x48, 0xA6, 0xF8, 0xFF, 0x53, 0xB7, 0xF7, 0xFF, 0x60, 0xC2, 0xFB, 0xFF, 0x65, 0xC4, 0xF7, 0xFF, + 0x69, 0xC3, 0xF9, 0xFF, 0x6D, 0xC2, 0xFA, 0xFF, 0x72, 0xC6, 0xFA, 0xFF, 0x77, 0xCB, 0xFA, 0xFF, 0x7A, 0xCB, 0xFB, + 0xFF, 0x7D, 0xCB, 0xFC, 0xFF, 0x7A, 0xC8, 0xFA, 0xFF, 0x77, 0xC5, 0xF8, 0xFF, 0x72, 0xBC, 0xF9, 0xFF, 0x6C, 0xB4, + 0xFA, 0xFF, 0x68, 0xB0, 0xF6, 0xFF, 0x56, 0xAA, 0xFD, 0xFF, 0xA5, 0xA0, 0x93, 0xFF, 0xF3, 0xA1, 0x13, 0xFF, 0xEF, + 0x9C, 0x21, 0xFF, 0xFF, 0x9D, 0x19, 0xFF, 0x23, 0xC1, 0x71, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEE, 0xB9, 0x3C, 0xFF, 0xF0, 0xB4, 0x3A, 0xFF, 0xF2, 0xAE, 0x37, 0xFF, 0xFE, + 0xB3, 0x32, 0xFF, 0x7C, 0x8E, 0xB3, 0xFF, 0x06, 0x58, 0xFF, 0xFF, 0x22, 0x71, 0xF3, 0xFF, 0x2B, 0x7C, 0xF4, 0xFF, + 0x34, 0x86, 0xF6, 0xFF, 0x3D, 0x92, 0xF7, 0xFF, 0x45, 0x9D, 0xF8, 0xFF, 0x4F, 0xAC, 0xF8, 0xFF, 0x5A, 0xBB, 0xF8, + 0xFF, 0x65, 0xC4, 0xF9, 0xFF, 0x70, 0xCC, 0xF9, 0xFF, 0x75, 0xCC, 0xFA, 0xFF, 0x7A, 0xCC, 0xFA, 0xFF, 0x80, 0xCF, + 0xF7, 0xFF, 0x85, 0xD2, 0xF4, 0xFF, 0x89, 0xD5, 0xFB, 0xFF, 0x8C, 0xD9, 0xFF, 0xFF, 0x8B, 0xD3, 0xFA, 0xFF, 0x89, + 0xCE, 0xF2, 0xFF, 0x84, 0xC8, 0xF8, 0xFF, 0x7F, 0xC1, 0xFE, 0xFF, 0x7C, 0xC1, 0xF4, 0xFF, 0x5E, 0xBC, 0xFF, 0xFF, + 0xDB, 0xAB, 0x47, 0xFF, 0xEA, 0x9C, 0x1E, 0xFF, 0xE8, 0xA2, 0x1D, 0xFF, 0xE5, 0xA7, 0x1D, 0xFF, 0x1B, 0xD3, 0x98, + 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEB, 0xB8, 0x3C, 0xFF, + 0xF0, 0xB3, 0x3F, 0xFF, 0xF4, 0xAF, 0x42, 0xFF, 0xE8, 0xBA, 0x0D, 0xFF, 0x96, 0xB8, 0xFF, 0xFF, 0x4C, 0x81, 0xF6, + 0xFF, 0x22, 0x75, 0xF5, 0xFF, 0x2D, 0x80, 0xF6, 0xFF, 0x38, 0x8B, 0xF7, 0xFF, 0x42, 0x99, 0xF7, 0xFF, 0x4D, 0xA6, + 0xF7, 0xFF, 0x56, 0xB2, 0xF8, 0xFF, 0x5F, 0xBD, 0xF9, 0xFF, 0x6D, 0xC8, 0xF9, 0xFF, 0x7A, 0xD4, 0xFA, 0xFF, 0x81, + 0xD5, 0xFA, 0xFF, 0x88, 0xD7, 0xF9, 0xFF, 0x8D, 0xD8, 0xFA, 0xFF, 0x92, 0xDA, 0xFB, 0xFF, 0xA1, 0xE4, 0xF9, 0xFF, + 0x91, 0xD6, 0xFE, 0xFF, 0x9F, 0xDE, 0xFA, 0xFF, 0x97, 0xDB, 0xF8, 0xFF, 0x93, 0xD5, 0xF9, 0xFF, 0x8F, 0xCF, 0xFB, + 0xFF, 0x85, 0xD1, 0xFF, 0xFF, 0x78, 0xC6, 0xFF, 0xFF, 0xFC, 0x9A, 0x00, 0xFF, 0xF1, 0xA8, 0x26, 0xFF, 0xF8, 0xA4, + 0x1F, 0xFF, 0xA5, 0xBD, 0x53, 0xFF, 0x30, 0xDA, 0xA4, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xE8, 0xB7, 0x3B, 0xFF, 0xF0, 0xB9, 0x39, 0xFF, 0xF7, 0xBA, 0x37, 0xFF, 0xDC, 0xB5, + 0x50, 0xFF, 0x44, 0x96, 0xFF, 0xFF, 0x9C, 0xC4, 0xFE, 0xFF, 0x23, 0x79, 0xF7, 0xFF, 0x30, 0x85, 0xF8, 0xFF, 0x3C, + 0x91, 0xF8, 0xFF, 0x48, 0xA0, 0xF8, 0xFF, 0x55, 0xAF, 0xF7, 0xFF, 0x5D, 0xB7, 0xF8, 0xFF, 0x65, 0xBF, 0xF9, 0xFF, + 0x75, 0xCD, 0xFA, 0xFF, 0x85, 0xDB, 0xFB, 0xFF, 0x8D, 0xDE, 0xFA, 0xFF, 0x95, 0xE1, 0xF9, 0xFF, 0x9A, 0xE1, 0xFD, + 0xFF, 0xA0, 0xE2, 0xFF, 0xFF, 0xA3, 0xE8, 0xFA, 0xFF, 0x6B, 0xBD, 0xFF, 0xFF, 0x9E, 0xDE, 0xFC, 0xFF, 0xA6, 0xE8, + 0xFF, 0xFF, 0xA3, 0xE3, 0xFB, 0xFF, 0xA0, 0xDE, 0xF7, 0xFF, 0x99, 0xD7, 0xFD, 0xFF, 0xAB, 0xBD, 0xB5, 0xFF, 0xF0, + 0x9F, 0x11, 0xFF, 0xE8, 0xA3, 0x1D, 0xFF, 0xFF, 0x9E, 0x19, 0xFF, 0x65, 0xD4, 0x89, 0xFF, 0x45, 0xE1, 0xB0, 0xFF, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEE, 0xB8, 0x3C, 0xFF, 0xEB, + 0xB8, 0x37, 0xFF, 0xF6, 0xBC, 0x26, 0xFF, 0x8F, 0x9B, 0x94, 0xFF, 0x37, 0x96, 0xFB, 0xFF, 0x7C, 0xBB, 0xF9, 0xFF, + 0x85, 0xB5, 0xF8, 0xFF, 0x49, 0x99, 0xF6, 0xFF, 0x42, 0x9B, 0xF5, 0xFF, 0x4E, 0xA6, 0xF6, 0xFF, 0x59, 0xB2, 0xF7, + 0xFF, 0x65, 0xBC, 0xF8, 0xFF, 0x72, 0xC6, 0xF9, 0xFF, 0x7F, 0xD3, 0xF9, 0xFF, 0x8D, 0xE0, 0xFA, 0xFF, 0x97, 0xE5, + 0xF9, 0xFF, 0xA1, 0xEB, 0xF8, 0xFF, 0xA6, 0xEA, 0xFE, 0xFF, 0xAA, 0xEA, 0xFF, 0xFF, 0xA8, 0xEE, 0xFC, 0xFF, 0x62, + 0xBA, 0xF9, 0xFF, 0x98, 0xDC, 0xFA, 0xFF, 0xB9, 0xF3, 0xFE, 0xFF, 0xB2, 0xEC, 0xFB, 0xFF, 0xAB, 0xE5, 0xF7, 0xFF, + 0xA2, 0xE4, 0xFE, 0xFF, 0xD1, 0xB0, 0x64, 0xFF, 0xF0, 0x9F, 0x19, 0xFF, 0xE8, 0x9E, 0x26, 0xFF, 0xF2, 0x98, 0x03, + 0xFF, 0x50, 0xEF, 0xE3, 0xFF, 0x57, 0xEE, 0xD5, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xF3, 0xB9, 0x3C, 0xFF, 0xE6, 0xB8, 0x34, 0xFF, 0xF6, 0xBD, 0x16, 0xFF, 0x4F, 0x7F, 0xD8, + 0xFF, 0x46, 0x90, 0xF7, 0xFF, 0x54, 0xA5, 0xF7, 0xFF, 0xBA, 0xDA, 0xFF, 0xFF, 0x4D, 0xA1, 0xF8, 0xFF, 0x49, 0xA5, + 0xF3, 0xFF, 0x53, 0xAD, 0xF4, 0xFF, 0x5D, 0xB5, 0xF6, 0xFF, 0x6E, 0xC0, 0xF8, 0xFF, 0x7F, 0xCC, 0xFA, 0xFF, 0x8A, + 0xD8, 0xF9, 0xFF, 0x95, 0xE4, 0xF8, 0xFF, 0xA1, 0xEC, 0xF8, 0xFF, 0xAE, 0xF4, 0xF7, 0xFF, 0xB2, 0xF3, 0xFE, 0xFF, + 0xB5, 0xF1, 0xFF, 0xFF, 0xAD, 0xF4, 0xFE, 0xFF, 0x59, 0xB6, 0xF3, 0xFF, 0x92, 0xDA, 0xF8, 0xFF, 0xCC, 0xFF, 0xFE, + 0xFF, 0xC1, 0xF6, 0xFA, 0xFF, 0xB6, 0xED, 0xF7, 0xFF, 0xAB, 0xF1, 0xFF, 0xFF, 0xF7, 0xA4, 0x13, 0xFF, 0xEF, 0xA4, + 0x15, 0xFF, 0xE8, 0xA5, 0x18, 0xFF, 0xCD, 0xB4, 0x56, 0xFF, 0x71, 0xF2, 0xF0, 0xFF, 0x84, 0xEF, 0xD4, 0xFF, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF1, 0xBB, 0x3E, 0xFF, 0xFD, 0xC0, + 0x2F, 0xFF, 0xFB, 0xBD, 0x35, 0xFF, 0x00, 0x4B, 0xF5, 0xFF, 0x52, 0x8A, 0xFF, 0xFF, 0x5D, 0xA5, 0xFA, 0xFF, 0x8D, + 0xC4, 0xFC, 0xFF, 0x85, 0xC1, 0xFB, 0xFF, 0x50, 0xAD, 0xF5, 0xFF, 0x5E, 0xB6, 0xF7, 0xFF, 0x6B, 0xBE, 0xF9, 0xFF, + 0x78, 0xC9, 0xFA, 0xFF, 0x85, 0xD4, 0xFB, 0xFF, 0x97, 0xDE, 0xFE, 0xFF, 0xAA, 0xE8, 0xFF, 0xFF, 0xAD, 0xEE, 0xFD, + 0xFF, 0xB1, 0xF4, 0xF9, 0xFF, 0xB9, 0xF5, 0xFC, 0xFF, 0xC2, 0xF6, 0xFE, 0xFF, 0xB2, 0xF0, 0xFB, 0xFF, 0x6E, 0xCB, + 0xF6, 0xFF, 0x91, 0xDE, 0xFB, 0xFF, 0xCA, 0xFC, 0xFC, 0xFF, 0xD0, 0xFB, 0xFF, 0xFF, 0xC8, 0xFC, 0xFF, 0xFF, 0xC7, + 0xE3, 0xCA, 0xFF, 0xF2, 0xA1, 0x15, 0xFF, 0xEE, 0xA3, 0x1D, 0xFF, 0xF1, 0xA1, 0x11, 0xFF, 0xB9, 0xD4, 0x9E, 0xFF, + 0x8B, 0xF1, 0xEA, 0xFF, 0x95, 0xEF, 0xDC, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xF0, 0xBD, 0x41, 0xFF, 0xF0, 0xBA, 0x37, 0xFF, 0xB7, 0xA1, 0x71, 0xFF, 0x1D, 0x5D, 0xFE, 0xFF, + 0x31, 0x79, 0xF8, 0xFF, 0x51, 0xA1, 0xF5, 0xFF, 0x60, 0xAD, 0xF8, 0xFF, 0xBC, 0xE0, 0xFE, 0xFF, 0x57, 0xB6, 0xF7, + 0xFF, 0x68, 0xBF, 0xF9, 0xFF, 0x79, 0xC8, 0xFC, 0xFF, 0x82, 0xD2, 0xFC, 0xFF, 0x8B, 0xDB, 0xFC, 0xFF, 0x8F, 0xDE, + 0xFB, 0xFF, 0x92, 0xE0, 0xFB, 0xFF, 0xA3, 0xEA, 0xFA, 0xFF, 0xB4, 0xF4, 0xFA, 0xFF, 0xC1, 0xF8, 0xF9, 0xFF, 0xCE, + 0xFB, 0xF8, 0xFF, 0xB6, 0xEB, 0xF9, 0xFF, 0x83, 0xE1, 0xFA, 0xFF, 0x8F, 0xE2, 0xFD, 0xFF, 0xC7, 0xF9, 0xFB, 0xFF, + 0xD7, 0xF8, 0xFC, 0xFF, 0xCA, 0xFC, 0xFE, 0xFF, 0xDC, 0xCD, 0x8B, 0xFF, 0xED, 0x9F, 0x18, 0xFF, 0xED, 0xA3, 0x24, + 0xFF, 0xFA, 0x9D, 0x0A, 0xFF, 0xA5, 0xF5, 0xE7, 0xFF, 0xA5, 0xF1, 0xE4, 0xFF, 0xA5, 0xF0, 0xE4, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEF, 0xBC, 0x3F, 0xFF, 0xFD, 0xC2, 0x32, + 0xFF, 0x6E, 0x7F, 0xBD, 0xFF, 0x26, 0x65, 0xFE, 0xFF, 0x34, 0x7B, 0xF5, 0xFF, 0x4C, 0x9A, 0xF5, 0xFF, 0x5C, 0xAB, + 0xF8, 0xFF, 0x9F, 0xD0, 0xFA, 0xFF, 0x83, 0xC6, 0xF7, 0xFF, 0x6A, 0xC1, 0xFD, 0xFF, 0x7E, 0xD1, 0xFD, 0xFF, 0x87, + 0xDB, 0xFB, 0xFF, 0x8F, 0xE5, 0xF9, 0xFF, 0x9A, 0xEC, 0xF8, 0xFF, 0xA5, 0xF4, 0xF7, 0xFF, 0x99, 0xEA, 0xFB, 0xFF, + 0x8E, 0xDF, 0xFF, 0xFF, 0x9F, 0xE2, 0xFB, 0xFF, 0xB1, 0xE6, 0xF7, 0xFF, 0xCC, 0xED, 0xFB, 0xFF, 0xCA, 0xFA, 0xFF, + 0xFF, 0xC6, 0xF2, 0xFF, 0xFF, 0xC2, 0xF0, 0xFC, 0xFF, 0xD2, 0xF5, 0xFE, 0xFF, 0xD3, 0xFC, 0xFF, 0xFF, 0xE6, 0xB5, + 0x4B, 0xFF, 0xED, 0xA4, 0x20, 0xFF, 0xED, 0xA2, 0x1B, 0xFF, 0xE2, 0xAA, 0x3D, 0xFF, 0xAB, 0xF6, 0xEE, 0xFF, 0xB1, + 0xF1, 0xE5, 0xFF, 0xB4, 0xF2, 0xE7, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xEF, 0xBA, 0x3D, 0xFF, 0xFF, 0xCA, 0x2C, 0xFF, 0x24, 0x5D, 0xFF, 0xFF, 0x2E, 0x6D, 0xFE, 0xFF, 0x38, + 0x7D, 0xF2, 0xFF, 0x48, 0x93, 0xF5, 0xFF, 0x57, 0xA9, 0xF7, 0xFF, 0x82, 0xC0, 0xF7, 0xFF, 0xAE, 0xD7, 0xF7, 0xFF, + 0x6C, 0xC2, 0xFF, 0xFF, 0x84, 0xDA, 0xFE, 0xFF, 0x8B, 0xE4, 0xFA, 0xFF, 0x93, 0xEE, 0xF6, 0xFF, 0x9D, 0xED, 0xF8, + 0xFF, 0xA7, 0xEC, 0xF9, 0xFF, 0xB3, 0xF1, 0xF8, 0xFF, 0xC0, 0xF6, 0xF7, 0xFF, 0xC8, 0xF6, 0xFB, 0xFF, 0xD0, 0xF6, + 0xFF, 0xFF, 0xD3, 0xF2, 0xFE, 0xFF, 0xB9, 0xF3, 0xFB, 0xFF, 0xE7, 0xFD, 0xFF, 0xFF, 0xE9, 0xFD, 0xF6, 0xFF, 0xE2, + 0xFC, 0xFC, 0xFF, 0xDC, 0xFC, 0xFF, 0xFF, 0xF1, 0x9D, 0x0B, 0xFF, 0xEC, 0xAA, 0x29, 0xFF, 0xF5, 0xAA, 0x1B, 0xFF, + 0xD9, 0xC7, 0x7F, 0xFF, 0xBA, 0xFE, 0xFD, 0xFF, 0xBD, 0xF2, 0xE7, 0xFF, 0xC3, 0xF4, 0xEB, 0xFF, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF5, 0xC0, 0x39, 0xFF, 0xCA, 0xAC, 0x5E, 0xFF, + 0x1E, 0x58, 0xFA, 0xFF, 0x30, 0x6E, 0xF3, 0xFF, 0x35, 0x80, 0xF7, 0xFF, 0x3E, 0x92, 0xFB, 0xFF, 0x5D, 0xAF, 0xFB, + 0xFF, 0x72, 0xC2, 0xFF, 0xFF, 0xBA, 0xE1, 0xFD, 0xFF, 0x74, 0xCD, 0xFF, 0xFF, 0x71, 0xD3, 0xFF, 0xFF, 0x83, 0xE5, + 0xFF, 0xFF, 0x95, 0xF7, 0xFF, 0xFF, 0xA1, 0xF4, 0xFE, 0xFF, 0xAD, 0xF0, 0xFD, 0xFF, 0xC1, 0xF8, 0xFF, 0xFF, 0xCD, + 0xF7, 0xFB, 0xFF, 0xD1, 0xF8, 0xFE, 0xFF, 0xD6, 0xF9, 0xFF, 0xFF, 0xE0, 0xF6, 0xFE, 0xFF, 0xDD, 0xF5, 0xFB, 0xFF, + 0xED, 0xFB, 0xFF, 0xFF, 0xE8, 0xFB, 0xFB, 0xFF, 0xDF, 0xFC, 0xFF, 0xFF, 0xE8, 0xE0, 0xB2, 0xFF, 0xEF, 0xA3, 0x18, + 0xFF, 0xEC, 0xAA, 0x25, 0xFF, 0xF5, 0xA8, 0x15, 0xFF, 0xD8, 0xE3, 0xC2, 0xFF, 0xC5, 0xF9, 0xF9, 0xFF, 0xCA, 0xF5, + 0xEE, 0xFF, 0xCE, 0xF6, 0xEF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ]; diff --git a/ironrdp/src/codecs/rfx/quantization.rs b/ironrdp/src/codecs/rfx/quantization.rs index 36267514..da66e8c0 100644 --- a/ironrdp/src/codecs/rfx/quantization.rs +++ b/ironrdp/src/codecs/rfx/quantization.rs @@ -9,8 +9,7 @@ const SECOND_LEVEL_SUBBANDS_COUNT: usize = 3; pub fn decode(buffer: &mut [i16], quant: &Quant) { let (first_level, buffer) = buffer.split_at_mut(FISRT_LEVEL_SUBBANDS_COUNT * FIRST_LEVEL_SIZE); - let (second_level, third_level) = - buffer.split_at_mut(SECOND_LEVEL_SUBBANDS_COUNT * SECOND_LEVEL_SIZE); + let (second_level, third_level) = buffer.split_at_mut(SECOND_LEVEL_SUBBANDS_COUNT * SECOND_LEVEL_SIZE); let decode_chunk = |a: (&mut [i16], u8)| decode_block(a.0, a.1 as i16 - 1); @@ -85,318 +84,262 @@ mod tests { } const QUANTIZIED_BUFFER: [i16; 4096] = [ - 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, -3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 2, - 0, 0, 0, 0, 0, 0, 0, 1, 0, -2, 4, -5, -1, 0, 0, 0, 0, 0, 0, -1, -3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, -3, 0, 3, 0, 0, 0, 0, 0, 0, -1, 4, 4, -5, -1, 0, 0, 0, 0, 0, 0, -2, 5, 0, 0, 0, 0, 0, - 0, 2, 1, 0, 2, -5, -4, 1, 0, 0, 0, 0, 0, 0, 1, 3, -1, 5, 0, -1, 0, 0, 0, 0, 0, -2, -2, -3, - 0, 0, 0, 0, 0, 3, 0, 0, 7, 0, -4, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 2, -1, 0, 0, 0, 0, 0, - -3, 1, 5, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, - 0, 0, 2, 0, 0, 0, -2, 0, 0, 0, 0, 0, 1, 0, -9, -3, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, - 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, 0, 0, 0, 0, 0, 0, 6, -2, -8, -1, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, -1, 0, 0, 0, 0, 0, 0, -3, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, 5, 2, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, -1, 2, 0, 0, 1, 0, 0, -1, 0, -1, 7, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, -3, -2, 0, 0, 0, 0, 0, 3, -1, 0, -1, 0, 1, 0, 0, 0, 1, 2, -1, 0, -5, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3, -4, 0, 0, 0, 0, 0, -1, -6, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, - 6, 0, -1, 0, 1, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -5, 0, 0, 0, 0, 0, 0, 0, - 0, 0, -1, -1, 1, 10, 0, 0, 0, -1, 1, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1, -5, -5, 3, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, -1, -2, 0, - 0, 0, -1, 0, 0, 0, 0, 0, 0, 3, -1, -7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -6, 0, 0, 0, 0, 0, - 0, -8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 4, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 6, -1, 0, 0, - 0, 0, -1, 7, -1, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, -3, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 1, 0, 0, 0, 0, 0, 4, 1, 2, -2, -2, 0, -1, 0, 0, 0, 0, 1, -1, -7, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, -6, 0, 0, 0, 0, 0, -1, -10, 3, 1, 2, 0, -2, 1, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, - 0, 0, 0, 0, 0, 0, 3, -2, 0, 0, 0, 0, 0, 6, -8, -2, 0, -2, 1, 0, 0, -1, -1, -1, 1, 1, 1, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0, 0, 0, 0, 0, 3, 2, 0, 1, 0, 0, 1, 1, 0, 0, 1, -2, 5, - -3, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - -1, 0, 0, -3, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, -1, 1, -1, -1, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, 1, 1, -2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, -1, 0, 0, -1, -1, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -2, -8, 2, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, -2, 4, 4, -1, 0, 0, 0, 0, 0, 0, -1, 3, - -1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 3, 3, -7, -1, 0, 0, 0, 0, 0, - 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 6, 3, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -8, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -2, -2, 2, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, -5, -3, -4, -6, -6, 7, 1, 1, -1, 0, 0, 0, 0, 0, 0, - 0, -1, -2, -3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, -1, 0, -2, -3, 1, 1, -8, 6, 0, -1, 1, - 0, 0, 0, 0, 1, 1, 0, 0, 6, -3, -1, 0, 0, 0, 0, 0, -1, 5, 2, -6, -2, 0, 0, 0, 2, 7, -6, -1, - 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 1, 6, 0, 0, 0, 0, 0, 0, -2, 1, 0, 0, 0, 0, 0, 0, - 0, -1, 6, -1, 1, -6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, -1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, -1, -2, 0, -8, 6, 6, 4, 3, 3, 4, -1, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2, -1, -1, 7, -8, 0, 1, -2, -4, -3, -1, 1, -3, -4, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, -3, -5, 0, 1, 0, 0, 8, -1, -7, -9, -7, -2, 6, 3, 0, 0, - 0, 0, 0, 0, 0, 1, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, -1, 1, - 0, 0, 1, -1, 0, 0, 0, 0, -1, 1, -1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, -1, 1, -1, 0, 0, 0, 0, 0, 0, 1, 1, 3, 3, 0, 1, 1, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 1, -4, -5, -8, -6, -4, 1, 0, 0, -1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 3, -9, -5, 10, 2, 2, 0, -1, 2, 6, -4, - -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 2, -1, -1, 1, 0, 0, 0, - 0, 0, -1, 4, -2, -1, 1, -1, 1, -1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, -1, 1, 1, 0, 1, 0, -1, 3, -1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, 1, 1, 1, 0, -2, -3, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 4, 2, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -1, 1, 0, 0, 0, 0, 0, 0, 0, -1, - -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, -2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, -1, - 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - -1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, - 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, - -1, 2, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, -1, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, -1, 0, 0, -1, -1, 0, -5, 3, -2, 1, 0, -1, 0, - 0, 0, 0, 1, -4, -1, 0, 0, 1, -5, -2, 1, 1, 1, 6, -2, -1, 0, 1, -4, 21, 6, 0, 0, -5, -1, 1, - 2, 4, 4, 3, 5, 0, 0, -1, 4, -8, -11, 0, 0, -2, 8, -1, 0, 3, 1, -18, 16, 1, -1, 2, 0, -4, - -4, 0, 0, -6, 1, -3, -1, 1, 14, -23, 1, 0, 1, 0, 1, -3, -1, 0, 0, 0, -5, -2, 3, -1, 11, -8, - -3, 0, 1, 0, -1, -3, 1, 0, 14, 1, 0, -1, 0, 0, -15, -2, 7, 1, -1, 1, -3, -1, -1, -2, -14, - 0, 1, 0, 0, 5, -18, 14, -7, -1, -1, -2, 13, 1, -1, 3, -14, 1, -2, 2, -1, 11, -16, -2, 2, - -1, 1, 0, -9, 0, -1, 19, 1, 1, 1, 0, 2, 2, 8, 0, 0, 0, 0, 1, -13, 0, 0, -6, -3, -1, 0, -2, - -2, 6, 13, 0, 0, 0, 1, 9, 1, 0, 0, -1, 2, 0, 0, 1, 0, -5, 0, 0, -1, 0, 0, 1, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 1, -2, -4, 1, 4, 4, -2, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -4, -1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -1, 1, 1, -1, -3, 0, -2, -3, 0, - 0, 0, 0, 0, 0, 0, -2, -2, 0, 1, -1, 2, 0, 0, 0, 1, -1, 1, 0, 1, -8, -1, 0, 0, 1, -3, 0, 0, - -1, 3, 0, 0, 1, -3, -3, -3, 3, -4, 0, 0, 0, 1, 0, 0, 3, -3, 3, -1, 1, 1, 0, 1, -5, 20, 0, - 0, 0, -1, 2, 7, -1, 0, 3, -2, 1, 0, 4, -1, 0, 1, 0, 1, -3, 2, -9, -12, -19, 10, -1, 2, 0, - -1, 1, 9, -13, 0, 0, 1, -4, -13, 0, 0, 16, -7, 0, 16, -3, 1, -2, -1, 2, -1, 0, 0, 0, 1, 1, - 0, 0, 4, -3, -17, -14, 2, -4, -14, -1, 0, -1, 1, 0, -1, 0, 1, 1, -2, 1, 3, 17, 13, 15, 9, - -2, 0, 2, -3, 2, 2, -2, 2, 1, -1, 1, 0, 0, -2, 5, 7, -1, 0, 1, 4, -7, -14, -7, 2, -2, 0, 0, - 0, 0, 0, 0, -1, 1, 0, -3, 17, 8, -1, 4, 8, -9, 6, 0, 1, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, - 0, 0, -2, -2, 2, 0, 0, 5, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, -5, -4, -2, -6, -1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - -1, 0, -4, -1, 0, 0, 0, 0, 0, 0, -1, -1, 1, -1, 0, 0, 0, 0, 2, 2, 0, 0, 0, 3, 0, 0, 1, 1, - -1, 1, 0, 0, 0, 0, -4, -8, 0, 0, 0, -1, 0, 0, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, - 1, -1, -3, 3, 0, 0, 0, -1, 1, 0, 0, 0, 0, 1, -2, 0, 0, -1, 3, 1, 2, -1, 0, 0, 0, -2, -1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, -3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, 2, 0, -1, 1, - 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, 0, -2, 0, 0, 2, 2, 1, -1, 0, -1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, -2, 2, 0, 0, 1, -2, 1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, - 0, 0, 0, 0, -1, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -2, -2, 1, 0, -1, -2, 0, -1, 8, 6, 3, 0, -1, -6, - 0, 4, 5, -13, -53, -3, -2, 0, -2, -15, -7, 25, 8, 3, 7, -25, 26, -12, 5, 20, 6, 7, -5, -13, - 2, -2, 5, -54, 10, -2, 30, 3, -46, 11, -9, -1, -2, 1, -18, -2, 8, -3, 3, -5, -4, -1, -5, - -2, -3, 0, 1, -10, -3, 1, -1, 1, -5, -1, -3, 3, 7, -14, -13, 10, 0, -1, 11, 2, 5, 2, 12, 0, - -8, 24, -21, -49, -4, 10, 9, 31, -1, 5, 10, 1, 13, -57, -52, 9, 12, -6, -18, 5, 1, -3, -4, - -1, 13, 21, 8, 11, 3, 7, 7, -2, -3, -1, 0, 2, -14, -19, -7, 1, -1, -1, -3, -2, 0, 0, -1, - -1, -1, -7, 3, 4, 7, -1, -6, -14, -1, -7, 3, -12, -16, -2, 2, -1, -9, 1, 7, -21, 25, -4, - -2, -23, 2, 2, 3, -4, 22, -4, 5, -4, -2, -2, 4, -7, 0, 0, 3, 2, 17, -6, 7, 5, 3, 1, -5, 0, - 1, 0, 0, 6, 1, -4, 2, 0, -1, 0, -1, -15, -12, -12, -19, -23, 27, 14, 3, 37, 11, -12, -15, - -16, 29, 25, 46, 103, 86, 43, 26, 11, 38, 31, 56, 86, 63, 128, 115, 27, 72, -31, 54, 125, - 9, 97, 67, 10, 67, -34, 60, 85, 102, 107, 113, 6, 21, -10, 10, -16, 126, 108, 85, -10, 59, - 52, 39, 30, 35, 53, 15, -3, + 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, -3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, -2, 4, + -5, -1, 0, 0, 0, 0, 0, 0, -1, -3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3, 0, 3, 0, 0, 0, 0, 0, 0, -1, 4, 4, -5, -1, + 0, 0, 0, 0, 0, 0, -2, 5, 0, 0, 0, 0, 0, 0, 2, 1, 0, 2, -5, -4, 1, 0, 0, 0, 0, 0, 0, 1, 3, -1, 5, 0, -1, 0, 0, + 0, 0, 0, -2, -2, -3, 0, 0, 0, 0, 0, 3, 0, 0, 7, 0, -4, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 2, -1, 0, 0, 0, 0, 0, + -3, 1, 5, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, -2, + 0, 0, 0, 0, 0, 1, 0, -9, -3, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, 0, 0, 0, + 0, 0, 0, 6, -2, -8, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, -3, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, + 5, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, -1, 2, 0, 0, 1, 0, 0, -1, 0, -1, 7, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, -3, -2, 0, 0, 0, 0, 0, 3, -1, 0, -1, 0, 1, 0, 0, 0, 1, 2, -1, 0, -5, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, -3, -4, 0, 0, 0, 0, 0, -1, -6, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 6, 0, -1, 0, 1, 0, 0, 1, -1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -5, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 1, 10, 0, 0, 0, -1, 1, 0, 0, 0, 0, -1, 1, + 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -5, -5, 3, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, + 0, -1, -2, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 3, -1, -7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -6, 0, 0, 0, 0, 0, 0, -8, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 4, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 6, -1, 0, 0, 0, 0, -1, 7, -1, 0, 0, 0, + -1, -1, 0, 0, 0, 0, 0, -3, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 0, 0, 0, 0, 0, 4, 1, 2, -2, -2, 0, -1, 0, + 0, 0, 0, 1, -1, -7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -6, 0, 0, 0, 0, 0, -1, -10, 3, 1, 2, 0, -2, 1, 1, 0, 0, 0, + 0, 0, -1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 3, -2, 0, 0, 0, 0, 0, 6, -8, -2, 0, -2, 1, 0, 0, -1, -1, -1, 1, 1, 1, + 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0, 0, 0, 0, 0, 3, 2, 0, 1, 0, 0, 1, 1, 0, 0, 1, -2, 5, -3, 2, 0, 0, 0, + 0, 1, 0, 0, 0, 0, 0, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, -3, 0, 1, 0, 0, 1, 1, 0, 0, + 0, 0, 0, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, -1, -1, 0, 0, 1, 0, 0, 0, 3, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, 1, 1, -2, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, -1, 0, 0, -1, -1, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -2, -8, 2, 0, + 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, -2, 4, 4, -1, 0, 0, 0, 0, 0, + 0, -1, 3, -1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 3, 3, -7, -1, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 6, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -2, -2, 2, -1, + 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, -5, -3, -4, -6, -6, 7, 1, 1, -1, 0, 0, 0, 0, 0, + 0, 0, -1, -2, -3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, -1, 0, -2, -3, 1, 1, -8, 6, 0, -1, 1, 0, 0, 0, 0, 1, + 1, 0, 0, 6, -3, -1, 0, 0, 0, 0, 0, -1, 5, 2, -6, -2, 0, 0, 0, 2, 7, -6, -1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, + -1, -1, 1, 6, 0, 0, 0, 0, 0, 0, -2, 1, 0, 0, 0, 0, 0, 0, 0, -1, 6, -1, 1, -6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, + -1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -2, 0, -8, 6, 6, 4, 3, 3, 4, -1, -2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, -1, -1, 7, -8, 0, 1, -2, -4, -3, -1, 1, -3, -4, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, -3, -5, 0, 1, 0, 0, 8, -1, -7, -9, -7, -2, 6, 3, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, + 0, -1, -1, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, + 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, -1, 1, 0, 0, 1, -1, 0, 0, 0, 0, -1, 1, -1, 1, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, -1, 0, 0, 0, 0, 0, 0, 1, 1, 3, 3, 0, 1, 1, -1, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 1, -4, -5, -8, -6, -4, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 3, -9, -5, 10, 2, 2, 0, -1, 2, 6, -4, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 2, -1, -1, 1, 0, 0, 0, 0, 0, -1, 4, -2, -1, 1, -1, 1, -1, 0, 0, 0, 0, 0, 0, + 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, -1, 1, 1, 0, 1, 0, -1, 3, -1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, 1, 1, 1, 0, -2, -3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 4, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -1, 1, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, + 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, + 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 2, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, + 0, 0, 1, 0, 0, 0, 0, 0, 0, -1, 0, 0, -1, -1, 0, -5, 3, -2, 1, 0, -1, 0, 0, 0, 0, 1, -4, -1, 0, 0, 1, -5, -2, 1, + 1, 1, 6, -2, -1, 0, 1, -4, 21, 6, 0, 0, -5, -1, 1, 2, 4, 4, 3, 5, 0, 0, -1, 4, -8, -11, 0, 0, -2, 8, -1, 0, 3, + 1, -18, 16, 1, -1, 2, 0, -4, -4, 0, 0, -6, 1, -3, -1, 1, 14, -23, 1, 0, 1, 0, 1, -3, -1, 0, 0, 0, -5, -2, 3, + -1, 11, -8, -3, 0, 1, 0, -1, -3, 1, 0, 14, 1, 0, -1, 0, 0, -15, -2, 7, 1, -1, 1, -3, -1, -1, -2, -14, 0, 1, 0, + 0, 5, -18, 14, -7, -1, -1, -2, 13, 1, -1, 3, -14, 1, -2, 2, -1, 11, -16, -2, 2, -1, 1, 0, -9, 0, -1, 19, 1, 1, + 1, 0, 2, 2, 8, 0, 0, 0, 0, 1, -13, 0, 0, -6, -3, -1, 0, -2, -2, 6, 13, 0, 0, 0, 1, 9, 1, 0, 0, -1, 2, 0, 0, 1, + 0, -5, 0, 0, -1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, -2, -4, 1, 4, 4, -2, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, -4, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -1, 1, 1, -1, -3, 0, -2, -3, 0, + 0, 0, 0, 0, 0, 0, -2, -2, 0, 1, -1, 2, 0, 0, 0, 1, -1, 1, 0, 1, -8, -1, 0, 0, 1, -3, 0, 0, -1, 3, 0, 0, 1, -3, + -3, -3, 3, -4, 0, 0, 0, 1, 0, 0, 3, -3, 3, -1, 1, 1, 0, 1, -5, 20, 0, 0, 0, -1, 2, 7, -1, 0, 3, -2, 1, 0, 4, + -1, 0, 1, 0, 1, -3, 2, -9, -12, -19, 10, -1, 2, 0, -1, 1, 9, -13, 0, 0, 1, -4, -13, 0, 0, 16, -7, 0, 16, -3, 1, + -2, -1, 2, -1, 0, 0, 0, 1, 1, 0, 0, 4, -3, -17, -14, 2, -4, -14, -1, 0, -1, 1, 0, -1, 0, 1, 1, -2, 1, 3, 17, + 13, 15, 9, -2, 0, 2, -3, 2, 2, -2, 2, 1, -1, 1, 0, 0, -2, 5, 7, -1, 0, 1, 4, -7, -14, -7, 2, -2, 0, 0, 0, 0, 0, + 0, -1, 1, 0, -3, 17, 8, -1, 4, 8, -9, 6, 0, 1, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, -2, -2, 2, 0, 0, 5, -1, + 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, -5, -4, -2, -6, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -7, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, -1, 0, -4, -1, 0, 0, 0, 0, 0, 0, -1, -1, 1, -1, 0, 0, 0, 0, 2, 2, 0, 0, 0, 3, 0, 0, 1, 1, -1, + 1, 0, 0, 0, 0, -4, -8, 0, 0, 0, -1, 0, 0, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, -1, -3, 3, 0, 0, 0, + -1, 1, 0, 0, 0, 0, 1, -2, 0, 0, -1, 3, 1, 2, -1, 0, 0, 0, -2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, -3, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, 2, 0, -1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, 0, -2, 0, 0, 2, + 2, 1, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, 2, 0, 0, 1, -2, 1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, 0, -1, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -2, -2, 1, 0, -1, -2, 0, -1, 8, 6, 3, 0, -1, -6, 0, 4, 5, -13, -53, -3, -2, 0, + -2, -15, -7, 25, 8, 3, 7, -25, 26, -12, 5, 20, 6, 7, -5, -13, 2, -2, 5, -54, 10, -2, 30, 3, -46, 11, -9, -1, + -2, 1, -18, -2, 8, -3, 3, -5, -4, -1, -5, -2, -3, 0, 1, -10, -3, 1, -1, 1, -5, -1, -3, 3, 7, -14, -13, 10, 0, + -1, 11, 2, 5, 2, 12, 0, -8, 24, -21, -49, -4, 10, 9, 31, -1, 5, 10, 1, 13, -57, -52, 9, 12, -6, -18, 5, 1, -3, + -4, -1, 13, 21, 8, 11, 3, 7, 7, -2, -3, -1, 0, 2, -14, -19, -7, 1, -1, -1, -3, -2, 0, 0, -1, -1, -1, -7, 3, 4, + 7, -1, -6, -14, -1, -7, 3, -12, -16, -2, 2, -1, -9, 1, 7, -21, 25, -4, -2, -23, 2, 2, 3, -4, 22, -4, 5, -4, -2, + -2, 4, -7, 0, 0, 3, 2, 17, -6, 7, 5, 3, 1, -5, 0, 1, 0, 0, 6, 1, -4, 2, 0, -1, 0, -1, -15, -12, -12, -19, -23, + 27, 14, 3, 37, 11, -12, -15, -16, 29, 25, 46, 103, 86, 43, 26, 11, 38, 31, 56, 86, 63, 128, 115, 27, 72, -31, + 54, 125, 9, 97, 67, 10, 67, -34, 60, 85, 102, 107, 113, 6, 21, -10, 10, -16, 126, 108, 85, -10, 59, 52, 39, 30, + 35, 53, 15, -3, ]; const DEQUANTIZED_BUFFER: [i16; 4096] = [ - 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 128, 0, 256, 0, 0, 0, 0, -128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, - 0, 0, -128, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 128, 0, 0, 0, 0, 0, 0, 0, 0, -384, 0, 0, 0, - 128, 0, 0, 0, 0, 0, 0, 256, 0, 0, 0, 0, 0, 0, 0, 128, 0, -256, 512, -640, -128, 0, 0, 0, 0, - 0, 0, -128, -384, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -384, 0, 384, 0, 0, 0, 0, 0, 0, -128, 512, - 512, -640, -128, 0, 0, 0, 0, 0, 0, -256, 640, 0, 0, 0, 0, 0, 0, 256, 128, 0, 256, -640, - -512, 128, 0, 0, 0, 0, 0, 0, 128, 384, -128, 640, 0, -128, 0, 0, 0, 0, 0, -256, -256, -384, - 0, 0, 0, 0, 0, 384, 0, 0, 896, 0, -512, 0, 0, 0, 0, 0, 0, 0, 0, -128, 0, -128, 256, -128, - 0, 0, 0, 0, 0, -384, 128, 640, 0, 0, 0, 0, 0, 0, -128, 0, 0, 128, 896, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, -128, 0, 0, 0, 0, 0, 0, 256, 0, 0, 0, -256, 0, 0, 0, 0, 0, 128, 0, -1152, -384, - 640, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 0, 0, 0, 0, 0, 0, 0, 0, -128, -128, -128, 0, 0, 0, - 0, 0, 0, 768, -256, -1024, -128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 0, 0, 0, 0, 0, 0, - -384, 0, 0, 0, 0, 0, 0, -128, 0, -128, 0, 640, 256, 384, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, - 256, 0, 0, 0, 0, 0, 0, -128, 128, 0, 0, -128, 256, 0, 0, 128, 0, 0, -128, 0, -128, 896, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, -384, -256, 0, 0, 0, 0, 0, 384, -128, 0, -128, 0, 128, 0, 0, 0, - 128, 256, -128, 0, -640, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, -384, -512, 0, 0, 0, 0, 0, -128, - -768, 128, 0, -128, 0, 0, 0, 0, 0, 0, 0, 768, 0, -128, 0, 128, 0, 0, 128, -128, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 384, -640, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, -128, 128, 1280, 0, 0, 0, - -128, 128, 0, 0, 0, 0, -128, 128, 0, 0, 0, 0, 0, 0, 896, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, - -640, -640, 384, 0, 0, 0, 0, 0, 0, 0, 0, -128, 0, -128, 0, 0, 0, 0, 0, -128, -256, 0, 0, 0, - -128, 0, 0, 0, 0, 0, 0, 384, -128, -896, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, -768, 0, 0, 0, - 0, 0, 0, -1024, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 384, 256, 512, 0, 0, 0, 0, 0, -128, 0, 0, 0, - 0, 768, -128, 0, 0, 0, 0, -128, 896, -128, 0, 0, 0, -128, -128, 0, 0, 0, 0, 0, -384, -128, - 768, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 384, 128, 0, 0, 0, 0, 0, 512, 128, 256, -256, -256, 0, - -128, 0, 0, 0, 0, 128, -128, -896, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -768, 0, 0, 0, 0, 0, - -128, -1280, 384, 128, 256, 0, -256, 128, 128, 0, 0, 0, 0, 0, -128, 0, 0, 0, -128, 0, 0, 0, - 0, 0, 0, 384, -256, 0, 0, 0, 0, 0, 768, -1024, -256, 0, -256, 128, 0, 0, -128, -128, -128, - 128, 128, 128, 768, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 512, 128, 0, 0, 0, 0, 0, 384, 256, 0, - 128, 0, 0, 128, 128, 0, 0, 128, -256, 640, -384, 256, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, -256, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 0, 0, -384, 0, 128, 0, 0, 128, 128, - 0, 0, 0, 0, 0, -512, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 128, - -128, -128, 0, 0, 128, 0, 0, 0, 384, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, -128, 0, 0, 0, 128, 128, 128, -256, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 0, -256, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 384, -128, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, -128, -128, 0, 0, -128, -128, - 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, -128, -128, 0, 0, 0, 0, -128, 0, 0, - 0, 0, 0, 0, 0, 0, 0, -128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, -128, -128, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 128, 0, 0, 0, 0, 0, 0, -256, - -1024, 256, 0, 0, 0, 0, 0, 0, 0, -128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, - 0, 0, 128, 0, -256, 512, 512, -128, 0, 0, 0, 0, 0, 0, -128, 384, -128, 0, 0, 0, 0, 0, 0, - 128, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, -128, 384, 384, -896, -128, 0, 0, 0, 0, 0, 0, 0, 0, - 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 128, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 768, 384, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - -1024, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, -256, -256, 256, -128, 0, 0, -128, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 0, 0, 128, 128, 384, 128, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 0, -128, -640, -384, - -512, -768, -768, 896, 128, 128, -128, 0, 0, 0, 0, 0, 0, 0, -128, -256, -384, 0, 128, 0, 0, - 0, 0, 0, 0, 0, 0, 128, 0, 256, -128, 0, -256, -384, 128, 128, -1024, 768, 0, -128, 128, 0, - 0, 0, 0, 128, 128, 0, 0, 768, -384, -128, 0, 0, 0, 0, 0, -128, 640, 256, -768, -256, 0, 0, - 0, 256, 896, -768, -128, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, -128, -128, 128, 768, 0, 0, 0, - 0, 0, 0, -256, 128, 0, 0, 0, 0, 0, 0, 0, -128, 768, -128, 128, -768, 896, 0, 0, 0, 0, 0, 0, - 0, 0, 128, -128, -128, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, -256, - 0, -1024, 768, 768, 512, 384, 384, 512, -128, -256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 256, -128, -128, 896, -1024, 0, 128, -256, -512, -384, -128, 128, -384, - -512, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 128, -384, -640, 0, 128, 0, 0, - 1024, -128, -896, -1152, -896, -256, 768, 384, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, -128, - -128, 0, 0, 0, 0, 0, 128, -128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, -128, 128, 0, 0, 0, 0, 0, -128, 128, 0, 0, 128, -128, - 0, 0, 0, 0, -128, 128, -128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, -128, 128, -128, 0, 0, 0, 0, 0, 0, 128, 128, 384, 384, 0, 128, 128, -128, 128, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 128, 0, 0, 0, 256, 128, -512, -640, - -1024, -768, -512, 128, 0, 0, -128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, - 0, 384, -1152, -640, 1280, 256, 256, 0, -128, 256, 768, -512, -128, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 256, -128, -128, 128, 0, 0, 0, 0, 0, -128, 512, - -256, -128, 128, -128, 128, -128, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, -128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, -128, 0, -128, 128, 128, 0, 128, 0, -128, - 384, -128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, -128, -128, - 128, 128, 128, 0, -256, -384, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, -128, 512, 256, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, -256, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, -512, -256, 256, 0, 0, 0, 0, 0, 0, 0, -256, -256, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, -256, 0, 0, 0, 0, 0, 0, 0, 0, -256, 256, -512, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -256, 0, 0, 0, 0, 0, 0, 0, 0, -256, 0, 0, 256, -256, 0, 0, 0, - 0, 0, -256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -256, 0, 0, 0, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -256, 0, 256, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 256, 0, 0, 0, 0, 0, 0, 0, 256, 0, 0, 0, 0, 0, 0, 0, 0, -256, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 256, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - -256, 0, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 256, 0, 0, 0, 0, 0, 0, 0, -256, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, -512, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, -256, 0, -256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 256, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -256, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -256, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 256, 0, 0, 0, 0, 0, 0, 256, 0, 0, 0, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -256, 0, 0, 256, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -256, -256, 512, 0, -256, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 256, -256, 0, 0, 0, 0, 0, 0, 0, - 256, -256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -256, -256, 256, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -256, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, - 0, 0, 64, 0, 0, 64, 0, 0, 0, 0, 0, 0, -64, 0, 0, -64, -64, 0, -320, 192, -128, 64, 0, -64, - 0, 0, 0, 0, 64, -256, -64, 0, 0, 64, -320, -128, 64, 64, 64, 384, -128, -64, 0, 64, -256, - 1344, 384, 0, 0, -320, -64, 64, 128, 256, 256, 192, 320, 0, 0, -64, 256, -512, -704, 0, 0, - -128, 512, -64, 0, 192, 64, -1152, 1024, 64, -64, 128, 0, -256, -256, 0, 0, -384, 64, -192, - -64, 64, 896, -1472, 64, 0, 64, 0, 64, -192, -64, 0, 0, 0, -320, -128, 192, -64, 704, -512, - -192, 0, 64, 0, -64, -192, 64, 0, 896, 64, 0, -64, 0, 0, -960, -128, 448, 64, -64, 64, - -192, -64, -64, -128, -896, 0, 64, 0, 0, 320, -1152, 896, -448, -64, -64, -128, 832, 64, - -64, 192, -896, 64, -128, 128, -64, 704, -1024, -128, 128, -64, 64, 0, -576, 0, -64, 1216, - 64, 64, 64, 0, 128, 128, 512, 0, 0, 0, 0, 64, -832, 0, 0, -384, -192, -64, 0, -128, -128, - 384, 832, 0, 0, 0, 64, 576, 64, 0, 0, -64, 128, 0, 0, 64, 0, -320, 0, 0, -64, 0, 0, 64, 64, - 0, 0, 0, 0, 0, 0, 0, 0, 64, -128, -256, 64, 256, 256, -128, 0, 0, -64, 0, 0, 0, 0, 0, 0, 0, - 0, 64, 0, -256, -64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, -64, - 64, 64, -64, -192, 0, -128, -192, 0, 0, 0, 0, 0, 0, 0, -128, -128, 0, 64, -64, 128, 0, 0, - 0, 64, -64, 64, 0, 64, -512, -64, 0, 0, 64, -192, 0, 0, -64, 192, 0, 0, 64, -192, -192, - -192, 192, -256, 0, 0, 0, 64, 0, 0, 192, -192, 192, -64, 64, 64, 0, 64, -320, 1280, 0, 0, - 0, -64, 128, 448, -64, 0, 192, -128, 64, 0, 256, -64, 0, 64, 0, 64, -192, 128, -576, -768, - -1216, 640, -64, 128, 0, -64, 64, 576, -832, 0, 0, 64, -256, -832, 0, 0, 1024, -448, 0, - 1024, -192, 64, -128, -64, 128, -64, 0, 0, 0, 64, 64, 0, 0, 256, -192, -1088, -896, 128, - -256, -896, -64, 0, -64, 64, 0, -64, 0, 64, 64, -128, 64, 192, 1088, 832, 960, 576, -128, - 0, 128, -192, 128, 128, -128, 128, 64, -64, 64, 0, 0, -128, 320, 448, -64, 0, 64, 256, - -448, -896, -448, 128, -128, 0, 0, 0, 0, 0, 0, -64, 64, 0, -192, 1088, 512, -64, 256, 512, - -576, 384, 0, 64, 0, 0, 0, 0, 0, 0, -64, 64, 0, 0, 0, 0, 0, -128, -128, 128, 0, 0, 320, - -64, 0, 0, -64, 0, 0, 0, 0, 0, 0, 0, -320, -256, -128, -384, -64, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, -448, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 0, - -512, -128, 0, 0, 0, 0, 0, 0, -128, -128, 128, -128, 0, 0, 0, 0, 256, 256, 0, 0, 0, 384, 0, - 0, 128, 128, -128, 128, 0, 0, 0, 0, -512, -1024, 0, 0, 0, -128, 0, 0, -128, -128, -128, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, -128, -384, 384, 0, 0, 0, -128, 128, 0, 0, 0, 0, 128, - -256, 0, 0, -128, 384, 128, 256, -128, 0, 0, 0, -256, -128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, - 0, 128, 128, 0, -384, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, -128, 256, 0, -128, 128, 0, 0, 0, - 128, 128, 0, 0, 0, 0, 0, -128, 0, 0, 0, -128, 0, -256, 0, 0, 256, 256, 128, -128, 0, -128, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -256, 256, 0, 0, 128, -256, 128, -128, -128, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, -128, -256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, - 128, -128, -128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, -64, - -64, 32, 0, -32, -64, 0, -32, 256, 192, 96, 0, -32, -192, 0, 128, 160, -416, -1696, -96, - -64, 0, -64, -480, -224, 800, 256, 96, 224, -800, 832, -384, 160, 640, 192, 224, -160, - -416, 64, -64, 160, -1728, 320, -64, 960, 96, -1472, 352, -288, -32, -64, 32, -576, -64, - 256, -96, 96, -160, -128, -32, -160, -64, -96, 0, 32, -320, -96, 32, -32, 32, -160, -32, - -96, 96, 224, -448, -416, 320, 0, -32, 352, 64, 160, 64, 384, 0, -256, 768, -672, -1568, - -128, 320, 288, 992, -32, 160, 320, 32, 416, -1824, -1664, 288, 384, -192, -576, 160, 32, - -96, -128, -32, 416, 672, 256, 352, 96, 224, 224, -64, -96, -32, 0, 64, -448, -608, -224, - 32, -32, -32, -96, -64, 0, 0, -32, -32, -32, -224, 96, 128, 224, -32, -192, -448, -32, - -224, 96, -384, -512, -64, 64, -32, -288, 32, 224, -672, 800, -128, -64, -736, 64, 64, 96, - -128, 704, -128, 160, -128, -64, -64, 128, -224, 0, 0, 96, 64, 544, -192, 224, 160, 96, 32, - -160, 0, 32, 0, 0, 192, 32, -128, 64, 0, -32, 0, -32, -480, -384, -384, -608, -736, 864, - 448, 96, 1184, 352, -384, -480, -512, 928, 800, 1472, 3296, 2752, 1376, 832, 352, 1216, - 992, 1792, 2752, 2016, 4096, 3680, 864, 2304, -992, 1728, 4000, 288, 3104, 2144, 320, 2144, - -1088, 1920, 2720, 3264, 3424, 3616, 192, 672, -320, 320, -512, 4032, 3456, 2720, -320, - 1888, 1664, 1248, 960, 1120, 1696, 480, -96, + 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 256, 0, 0, 0, 0, -128, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 256, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, + -128, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 128, 0, 0, 0, 0, 0, 0, 0, 0, -384, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 256, + 0, 0, 0, 0, 0, 0, 0, 128, 0, -256, 512, -640, -128, 0, 0, 0, 0, 0, 0, -128, -384, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -384, 0, 384, 0, 0, 0, 0, 0, 0, -128, 512, 512, -640, -128, 0, 0, 0, 0, 0, 0, -256, 640, 0, 0, 0, 0, 0, 0, 256, + 128, 0, 256, -640, -512, 128, 0, 0, 0, 0, 0, 0, 128, 384, -128, 640, 0, -128, 0, 0, 0, 0, 0, -256, -256, -384, + 0, 0, 0, 0, 0, 384, 0, 0, 896, 0, -512, 0, 0, 0, 0, 0, 0, 0, 0, -128, 0, -128, 256, -128, 0, 0, 0, 0, 0, -384, + 128, 640, 0, 0, 0, 0, 0, 0, -128, 0, 0, 128, 896, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 0, 0, 0, 0, 0, 0, 256, 0, + 0, 0, -256, 0, 0, 0, 0, 0, 128, 0, -1152, -384, 640, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 0, 0, 0, 0, 0, 0, 0, + 0, -128, -128, -128, 0, 0, 0, 0, 0, 0, 768, -256, -1024, -128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 0, 0, 0, 0, + 0, 0, -384, 0, 0, 0, 0, 0, 0, -128, 0, -128, 0, 640, 256, 384, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 256, 0, 0, 0, 0, + 0, 0, -128, 128, 0, 0, -128, 256, 0, 0, 128, 0, 0, -128, 0, -128, 896, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -384, + -256, 0, 0, 0, 0, 0, 384, -128, 0, -128, 0, 128, 0, 0, 0, 128, 256, -128, 0, -640, 128, 0, 0, 0, 0, 0, 0, 0, 0, + 0, -384, -512, 0, 0, 0, 0, 0, -128, -768, 128, 0, -128, 0, 0, 0, 0, 0, 0, 0, 768, 0, -128, 0, 128, 0, 0, 128, + -128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 384, -640, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, -128, 128, 1280, 0, 0, 0, + -128, 128, 0, 0, 0, 0, -128, 128, 0, 0, 0, 0, 0, 0, 896, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, -640, -640, 384, 0, + 0, 0, 0, 0, 0, 0, 0, -128, 0, -128, 0, 0, 0, 0, 0, -128, -256, 0, 0, 0, -128, 0, 0, 0, 0, 0, 0, 384, -128, + -896, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, -768, 0, 0, 0, 0, 0, 0, -1024, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 384, 256, + 512, 0, 0, 0, 0, 0, -128, 0, 0, 0, 0, 768, -128, 0, 0, 0, 0, -128, 896, -128, 0, 0, 0, -128, -128, 0, 0, 0, 0, + 0, -384, -128, 768, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 384, 128, 0, 0, 0, 0, 0, 512, 128, 256, -256, -256, 0, -128, + 0, 0, 0, 0, 128, -128, -896, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -768, 0, 0, 0, 0, 0, -128, -1280, 384, 128, + 256, 0, -256, 128, 128, 0, 0, 0, 0, 0, -128, 0, 0, 0, -128, 0, 0, 0, 0, 0, 0, 384, -256, 0, 0, 0, 0, 0, 768, + -1024, -256, 0, -256, 128, 0, 0, -128, -128, -128, 128, 128, 128, 768, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 512, 128, + 0, 0, 0, 0, 0, 384, 256, 0, 128, 0, 0, 128, 128, 0, 0, 128, -256, 640, -384, 256, 0, 0, 0, 0, 128, 0, 0, 0, 0, + 0, -256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 0, 0, -384, 0, 128, 0, 0, 128, 128, 0, 0, 0, 0, + 0, -512, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 128, -128, -128, 0, 0, 128, 0, 0, 0, + 384, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 0, 0, 0, 128, 128, 128, -256, 0, 128, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 0, -256, 128, 128, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 384, -128, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, + -128, -128, 0, 0, -128, -128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, -128, -128, 0, 0, 0, 0, + -128, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, -128, -128, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, -128, 128, 0, 0, 0, 0, 0, 0, -256, -1024, 256, 0, 0, 0, 0, 0, 0, 0, -128, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 0, 0, 128, 0, -256, 512, 512, -128, 0, 0, 0, 0, 0, 0, -128, 384, -128, + 0, 0, 0, 0, 0, 0, 128, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, -128, 384, 384, -896, -128, 0, 0, 0, 0, 0, 0, 0, 0, + 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 128, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 768, 384, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 128, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1024, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 128, -256, -256, 256, -128, 0, 0, -128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 0, 0, + 128, 128, 384, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 0, -128, + -640, -384, -512, -768, -768, 896, 128, 128, -128, 0, 0, 0, 0, 0, 0, 0, -128, -256, -384, 0, 128, 0, 0, 0, 0, + 0, 0, 0, 0, 128, 0, 256, -128, 0, -256, -384, 128, 128, -1024, 768, 0, -128, 128, 0, 0, 0, 0, 128, 128, 0, 0, + 768, -384, -128, 0, 0, 0, 0, 0, -128, 640, 256, -768, -256, 0, 0, 0, 256, 896, -768, -128, 0, 0, 128, 0, 0, 0, + 0, 0, 0, 0, 0, -128, -128, 128, 768, 0, 0, 0, 0, 0, 0, -256, 128, 0, 0, 0, 0, 0, 0, 0, -128, 768, -128, 128, + -768, 896, 0, 0, 0, 0, 0, 0, 0, 0, 128, -128, -128, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -128, -256, 0, -1024, 768, 768, 512, 384, 384, 512, -128, -256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 256, -128, -128, 896, -1024, 0, 128, -256, -512, -384, -128, 128, -384, -512, 128, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 128, 0, 128, -384, -640, 0, 128, 0, 0, 1024, -128, -896, -1152, -896, -256, 768, 384, 0, 0, + 0, 0, 0, 0, 0, 128, 0, 0, 0, -128, -128, 0, 0, 0, 0, 0, 128, -128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, -128, 128, 0, 0, 0, 0, 0, -128, 128, 0, 0, 128, -128, 0, + 0, 0, 0, -128, 128, -128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 128, -128, + 0, 0, 0, 0, 0, 0, 128, 128, 384, 384, 0, 128, 128, -128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 128, 0, 0, 0, 128, 0, 0, 0, 256, 128, -512, -640, -1024, -768, -512, 128, 0, 0, -128, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 384, -1152, -640, 1280, 256, 256, 0, -128, 256, 768, -512, -128, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 256, -128, -128, 128, 0, 0, 0, 0, 0, -128, 512, -256, + -128, 128, -128, 128, -128, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 128, -128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -128, -128, 0, -128, 128, 128, 0, 128, 0, -128, 384, -128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, -128, -128, -128, 128, 128, 128, 0, -256, -384, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 512, 256, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, -256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -256, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -512, -256, 256, 0, 0, 0, 0, 0, 0, 0, -256, -256, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, -256, 0, 0, 0, 0, 0, 0, 0, 0, -256, 256, -512, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, -256, 0, 0, 0, 0, 0, 0, 0, 0, -256, 0, 0, 256, -256, 0, 0, 0, 0, 0, -256, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -256, 0, 0, 0, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -256, 0, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 256, 0, 0, 0, 0, 0, 0, 0, 256, 0, 0, 0, 0, 0, 0, 0, 0, -256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 256, 256, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -256, 0, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 256, 0, 0, 0, 0, + 0, 0, 0, -256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -512, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -256, 0, -256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, -256, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 256, 0, 0, 0, 0, 0, 0, 256, 0, 0, 0, 256, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -256, 0, 0, 256, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -256, -256, 512, 0, -256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 256, -256, 0, 0, 0, 0, 0, 0, 0, 256, -256, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 256, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -256, -256, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 64, 0, 0, 64, 0, 0, 64, 0, 0, 0, 0, 0, 0, -64, 0, 0, -64, -64, 0, -320, 192, -128, 64, 0, -64, 0, 0, 0, 0, + 64, -256, -64, 0, 0, 64, -320, -128, 64, 64, 64, 384, -128, -64, 0, 64, -256, 1344, 384, 0, 0, -320, -64, 64, + 128, 256, 256, 192, 320, 0, 0, -64, 256, -512, -704, 0, 0, -128, 512, -64, 0, 192, 64, -1152, 1024, 64, -64, + 128, 0, -256, -256, 0, 0, -384, 64, -192, -64, 64, 896, -1472, 64, 0, 64, 0, 64, -192, -64, 0, 0, 0, -320, + -128, 192, -64, 704, -512, -192, 0, 64, 0, -64, -192, 64, 0, 896, 64, 0, -64, 0, 0, -960, -128, 448, 64, -64, + 64, -192, -64, -64, -128, -896, 0, 64, 0, 0, 320, -1152, 896, -448, -64, -64, -128, 832, 64, -64, 192, -896, + 64, -128, 128, -64, 704, -1024, -128, 128, -64, 64, 0, -576, 0, -64, 1216, 64, 64, 64, 0, 128, 128, 512, 0, 0, + 0, 0, 64, -832, 0, 0, -384, -192, -64, 0, -128, -128, 384, 832, 0, 0, 0, 64, 576, 64, 0, 0, -64, 128, 0, 0, 64, + 0, -320, 0, 0, -64, 0, 0, 64, 64, 0, 0, 0, 0, 0, 0, 0, 0, 64, -128, -256, 64, 256, 256, -128, 0, 0, -64, 0, 0, + 0, 0, 0, 0, 0, 0, 64, 0, -256, -64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, -64, 64, + 64, -64, -192, 0, -128, -192, 0, 0, 0, 0, 0, 0, 0, -128, -128, 0, 64, -64, 128, 0, 0, 0, 64, -64, 64, 0, 64, + -512, -64, 0, 0, 64, -192, 0, 0, -64, 192, 0, 0, 64, -192, -192, -192, 192, -256, 0, 0, 0, 64, 0, 0, 192, -192, + 192, -64, 64, 64, 0, 64, -320, 1280, 0, 0, 0, -64, 128, 448, -64, 0, 192, -128, 64, 0, 256, -64, 0, 64, 0, 64, + -192, 128, -576, -768, -1216, 640, -64, 128, 0, -64, 64, 576, -832, 0, 0, 64, -256, -832, 0, 0, 1024, -448, 0, + 1024, -192, 64, -128, -64, 128, -64, 0, 0, 0, 64, 64, 0, 0, 256, -192, -1088, -896, 128, -256, -896, -64, 0, + -64, 64, 0, -64, 0, 64, 64, -128, 64, 192, 1088, 832, 960, 576, -128, 0, 128, -192, 128, 128, -128, 128, 64, + -64, 64, 0, 0, -128, 320, 448, -64, 0, 64, 256, -448, -896, -448, 128, -128, 0, 0, 0, 0, 0, 0, -64, 64, 0, + -192, 1088, 512, -64, 256, 512, -576, 384, 0, 64, 0, 0, 0, 0, 0, 0, -64, 64, 0, 0, 0, 0, 0, -128, -128, 128, 0, + 0, 320, -64, 0, 0, -64, 0, 0, 0, 0, 0, 0, 0, -320, -256, -128, -384, -64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, -448, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -128, 0, -512, -128, 0, 0, 0, 0, 0, 0, -128, -128, 128, -128, + 0, 0, 0, 0, 256, 256, 0, 0, 0, 384, 0, 0, 128, 128, -128, 128, 0, 0, 0, 0, -512, -1024, 0, 0, 0, -128, 0, 0, + -128, -128, -128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, -128, -384, 384, 0, 0, 0, -128, 128, 0, 0, 0, 0, 128, + -256, 0, 0, -128, 384, 128, 256, -128, 0, 0, 0, -256, -128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 128, 128, 0, + -384, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, -128, 256, 0, -128, 128, 0, 0, 0, 128, 128, 0, 0, 0, 0, 0, -128, 0, 0, 0, + -128, 0, -256, 0, 0, 256, 256, 128, -128, 0, -128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -256, 256, 0, 0, 128, -256, + 128, -128, -128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, -128, -256, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 128, 128, -128, -128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, -64, -64, 32, + 0, -32, -64, 0, -32, 256, 192, 96, 0, -32, -192, 0, 128, 160, -416, -1696, -96, -64, 0, -64, -480, -224, 800, + 256, 96, 224, -800, 832, -384, 160, 640, 192, 224, -160, -416, 64, -64, 160, -1728, 320, -64, 960, 96, -1472, + 352, -288, -32, -64, 32, -576, -64, 256, -96, 96, -160, -128, -32, -160, -64, -96, 0, 32, -320, -96, 32, -32, + 32, -160, -32, -96, 96, 224, -448, -416, 320, 0, -32, 352, 64, 160, 64, 384, 0, -256, 768, -672, -1568, -128, + 320, 288, 992, -32, 160, 320, 32, 416, -1824, -1664, 288, 384, -192, -576, 160, 32, -96, -128, -32, 416, 672, + 256, 352, 96, 224, 224, -64, -96, -32, 0, 64, -448, -608, -224, 32, -32, -32, -96, -64, 0, 0, -32, -32, -32, + -224, 96, 128, 224, -32, -192, -448, -32, -224, 96, -384, -512, -64, 64, -32, -288, 32, 224, -672, 800, -128, + -64, -736, 64, 64, 96, -128, 704, -128, 160, -128, -64, -64, 128, -224, 0, 0, 96, 64, 544, -192, 224, 160, 96, + 32, -160, 0, 32, 0, 0, 192, 32, -128, 64, 0, -32, 0, -32, -480, -384, -384, -608, -736, 864, 448, 96, 1184, + 352, -384, -480, -512, 928, 800, 1472, 3296, 2752, 1376, 832, 352, 1216, 992, 1792, 2752, 2016, 4096, 3680, + 864, 2304, -992, 1728, 4000, 288, 3104, 2144, 320, 2144, -1088, 1920, 2720, 3264, 3424, 3616, 192, 672, -320, + 320, -512, 4032, 3456, 2720, -320, 1888, 1664, 1248, 960, 1120, 1696, 480, -96, ]; } diff --git a/ironrdp/src/codecs/rfx/rectangles_processing.rs b/ironrdp/src/codecs/rfx/rectangles_processing.rs index 5f6cecbc..7d0cc6e3 100644 --- a/ironrdp/src/codecs/rfx/rectangles_processing.rs +++ b/ironrdp/src/codecs/rfx/rectangles_processing.rs @@ -57,13 +57,7 @@ impl Region { if !bands.is_empty() { let next_band = bands[0]; - handle_rectangle_between_bands( - &rectangle, - band, - next_band, - &mut dst, - top_inter_band, - ); + handle_rectangle_between_bands(&rectangle, band, next_band, &mut dst, top_inter_band); } } @@ -79,23 +73,17 @@ impl Region { pub fn intersect_rectangle(&self, rectangle: &Rectangle) -> Self { match self.rectangles.len() { 0 => Self::new(), - 1 => self - .extents - .intersect(rectangle) - .map(Self::from) - .unwrap_or_default(), + 1 => self.extents.intersect(rectangle).map(Self::from).unwrap_or_default(), _ => { let rectangles = self .rectangles .iter() - .take_while(|r| r.top < rectangle.bottom).filter_map(|r| r.intersect(rectangle)) + .take_while(|r| r.top < rectangle.bottom) + .filter_map(|r| r.intersect(rectangle)) .collect::>(); let extents = Rectangle::union_all(rectangles.as_slice()); - let mut region = Self { - rectangles, - extents, - }; + let mut region = Self { rectangles, extents }; region.simplify(); region @@ -126,19 +114,14 @@ impl Region { < self.rectangles.len() { let current_band = get_current_band(&self.rectangles[current_band_start..]); - let next_band = - get_current_band(&self.rectangles[current_band_start + current_band.len()..]); + let next_band = get_current_band(&self.rectangles[current_band_start + current_band.len()..]); - if current_band[0].bottom == next_band[0].top - && bands_internals_equal(current_band, next_band) - { + if current_band[0].bottom == next_band[0].top && bands_internals_equal(current_band, next_band) { let first_band_len = current_band.len(); let second_band_len = next_band.len(); let second_band_bottom = next_band[0].bottom; - self.rectangles.drain( - current_band_start + first_band_len - ..current_band_start + first_band_len + second_band_len, - ); + self.rectangles + .drain(current_band_start + first_band_len..current_band_start + first_band_len + second_band_len); self.rectangles .iter_mut() .skip(current_band_start) @@ -166,11 +149,7 @@ impl From for Region { } } -fn handle_rectangle_higher_relative_to_extents( - rectangle: &Rectangle, - extents: &Rectangle, - dst: &mut Vec, -) { +fn handle_rectangle_higher_relative_to_extents(rectangle: &Rectangle, extents: &Rectangle, dst: &mut Vec) { if rectangle.top < extents.top { dst.push(Rectangle { top: rectangle.top, @@ -181,11 +160,7 @@ fn handle_rectangle_higher_relative_to_extents( } } -fn handle_rectangle_lower_relative_to_extents( - rectangle: &Rectangle, - extents: &Rectangle, - dst: &mut Vec, -) { +fn handle_rectangle_lower_relative_to_extents(rectangle: &Rectangle, extents: &Rectangle, dst: &mut Vec) { if extents.bottom < rectangle.bottom { dst.push(Rectangle { top: max(extents.bottom, rectangle.top), @@ -196,11 +171,7 @@ fn handle_rectangle_lower_relative_to_extents( } } -fn handle_rectangle_that_overlaps_band( - rectangle: &Rectangle, - band: &[Rectangle], - dst: &mut Vec, -) { +fn handle_rectangle_that_overlaps_band(rectangle: &Rectangle, band: &[Rectangle], dst: &mut Vec) { /* rect overlaps the band: | | | | ====^=================| |==| |=========================== band @@ -273,10 +244,7 @@ fn handle_rectangle_between_bands( let band_bottom = band[0].bottom; let next_band_top = next_band[0].top; - if next_band_top != band_bottom - && band_bottom < rectangle.bottom - && rectangle.top < next_band_top - { + if next_band_top != band_bottom && band_bottom < rectangle.bottom && rectangle.top < next_band_top { dst.push(Rectangle { top: top_inter_band, bottom: min(next_band_top, rectangle.bottom), @@ -348,10 +316,7 @@ fn copy_band_with_union( right: r.right, }) .take_while(|r| r.right < union_rectangle.left); - let items_before_union_rectangle_len = items_before_union_rectangle - .clone() - .map(|_| 1) - .sum::(); + let items_before_union_rectangle_len = items_before_union_rectangle.clone().map(|_| 1).sum::(); dst.extend(items_before_union_rectangle); band = &band[items_before_union_rectangle_len..]; @@ -420,9 +385,7 @@ fn bands_internals_equal(first_band: &[Rectangle], second_band: &[Rectangle]) -> } for (first_band_rect, second_band_rect) in first_band.iter().zip(second_band.iter()) { - if first_band_rect.left != second_band_rect.left - || first_band_rect.right != second_band_rect.right - { + if first_band_rect.left != second_band_rect.left || first_band_rect.right != second_band_rect.right { return false; } } diff --git a/ironrdp/src/codecs/rfx/rectangles_processing/tests.rs b/ironrdp/src/codecs/rfx/rectangles_processing/tests.rs index 477b9aac..85f3eefc 100644 --- a/ironrdp/src/codecs/rfx/rectangles_processing/tests.rs +++ b/ironrdp/src/codecs/rfx/rectangles_processing/tests.rs @@ -434,8 +434,7 @@ fn union_rectangle_inserts_new_rectangle_in_band_of_3_rectangles_without_merging } #[test] -fn union_rectangle_inserts_new_rectangle_in_band_of_3_rectangles_with_merging_with_side_rectangles() -{ +fn union_rectangle_inserts_new_rectangle_in_band_of_3_rectangles_with_merging_with_side_rectangles() { let mut region = Region { extents: Rectangle { left: 2, @@ -499,8 +498,7 @@ fn union_rectangle_inserts_new_rectangle_in_band_of_3_rectangles_with_merging_wi } #[test] -fn union_rectangle_inserts_new_rectangle_in_band_of_3_rectangles_with_merging_with_side_rectangles_on_board( -) { +fn union_rectangle_inserts_new_rectangle_in_band_of_3_rectangles_with_merging_with_side_rectangles_on_board() { let mut region = Region { extents: Rectangle { left: 2, diff --git a/ironrdp/src/codecs/rfx/rlgr.rs b/ironrdp/src/codecs/rfx/rlgr.rs index 1793302b..22d63152 100644 --- a/ironrdp/src/codecs/rfx/rlgr.rs +++ b/ironrdp/src/codecs/rfx/rlgr.rs @@ -1,7 +1,8 @@ #[cfg(test)] mod tests; -use std::{cmp::min, io}; +use std::cmp::min; +use std::io; use bitvec::field::BitField as _; use bitvec::order::Msb0; @@ -9,7 +10,8 @@ use bitvec::slice::BitSlice; use failure::Fail; use super::EntropyAlgorithm; -use crate::{impl_from_error, utils::Bits}; +use crate::impl_from_error; +use crate::utils::Bits; const KP_MAX: u32 = 80; const LS_GR: u32 = 3; @@ -40,11 +42,7 @@ macro_rules! try_split_bits { }; } -pub fn decode( - mode: EntropyAlgorithm, - tile: &[u8], - mut output: &mut [i16], -) -> Result<(), RlgrError> { +pub fn decode(mode: EntropyAlgorithm, tile: &[u8], mut output: &mut [i16]) -> Result<(), RlgrError> { let mut k: u32 = 1; let mut kr: u32 = 1; let mut kp: u32 = k << LS_GR; @@ -60,16 +58,14 @@ pub fn decode( CompressionMode::RunLength => { let number_of_zeros = truncate_leading_value(&mut bits, false); try_split_bits!(bits, 1); - let run = count_run(number_of_zeros, &mut k, &mut kp) - + load_be_u32(try_split_bits!(bits, k as usize)); + let run = count_run(number_of_zeros, &mut k, &mut kp) + load_be_u32(try_split_bits!(bits, k as usize)); let sign_bit = try_split_bits!(bits, 1).load_be::(); let number_of_ones = truncate_leading_value(&mut bits, true); try_split_bits!(bits, 1); - let code_remainder = load_be_u32(try_split_bits!(bits, kr as usize)) - + ((number_of_ones as u32) << kr); + let code_remainder = load_be_u32(try_split_bits!(bits, kr as usize)) + ((number_of_ones as u32) << kr); update_parameters_according_to_number_of_ones(number_of_ones, &mut kr, &mut krp); kp = kp.saturating_sub(DN_GR); @@ -86,8 +82,7 @@ pub fn decode( let number_of_ones = truncate_leading_value(&mut bits, true); try_split_bits!(bits, 1); - let code_remainder = load_be_u32(try_split_bits!(bits, kr as usize)) - + ((number_of_ones as u32) << kr); + let code_remainder = load_be_u32(try_split_bits!(bits, kr as usize)) + ((number_of_ones as u32) << kr); update_parameters_according_to_number_of_ones(number_of_ones, &mut kr, &mut krp); @@ -209,11 +204,7 @@ fn compute_n_index(code_remainder: u32) -> usize { 32 - leading_zeros } -fn update_parameters_according_to_number_of_ones( - number_of_ones: usize, - kr: &mut u32, - krp: &mut u32, -) { +fn update_parameters_according_to_number_of_ones(number_of_ones: usize, kr: &mut u32, krp: &mut u32) { if number_of_ones == 0 { *krp = (*krp).saturating_sub(2); *kr = *krp >> LS_GR; diff --git a/ironrdp/src/codecs/rfx/rlgr/tests.rs b/ironrdp/src/codecs/rfx/rlgr/tests.rs index 97579d33..a08ab093 100644 --- a/ironrdp/src/codecs/rfx/rlgr/tests.rs +++ b/ironrdp/src/codecs/rfx/rlgr/tests.rs @@ -17,12 +17,7 @@ fn decode_works_with_rlgr3() { let mut output = vec![0i16; expected.len() * output_len]; for (i, (input, expected)) in input.iter().zip(expected.iter()).enumerate() { - decode( - mode, - input, - &mut output[i * output_len..(i + 1) * output_len], - ) - .unwrap(); + decode(mode, input, &mut output[i * output_len..(i + 1) * output_len]).unwrap(); assert_eq!(&expected[..], &output[i * 4096..(i + 1) * 4096]); } } @@ -100,608 +95,510 @@ fn decode_correctly_decodes_rlgr1() { } const Y_DATA_ENCODED: [u8; 942] = [ - 0xc0, 0x01, 0x01, 0x15, 0x48, 0x99, 0xc7, 0x41, 0xa1, 0x12, 0x68, 0x11, 0xdc, 0x22, 0x29, 0x74, - 0xef, 0xfd, 0x20, 0x92, 0xe0, 0x4e, 0xa8, 0x69, 0x3b, 0xfd, 0x41, 0x83, 0xbf, 0x28, 0x53, 0x0c, - 0x1f, 0xe2, 0x54, 0x0c, 0x77, 0x7c, 0xa3, 0x05, 0x7c, 0x30, 0xd0, 0x9c, 0xe8, 0x09, 0x39, 0x1a, - 0x5d, 0xff, 0xe2, 0x01, 0x22, 0x13, 0x80, 0x90, 0x87, 0xd2, 0x9f, 0xfd, 0xfd, 0x50, 0x09, 0x0d, - 0x24, 0xa0, 0x8f, 0xab, 0xfe, 0x3c, 0x04, 0x84, 0xc6, 0x9c, 0xde, 0xf8, 0x80, 0xc3, 0x22, 0x50, - 0xaf, 0x4c, 0x2a, 0x7f, 0xfe, 0xe0, 0x5c, 0xa9, 0x52, 0x8a, 0x06, 0x7d, 0x3d, 0x09, 0x03, 0x65, - 0xa3, 0xaf, 0xd2, 0x61, 0x1f, 0x72, 0x04, 0x50, 0x8d, 0x3e, 0x16, 0x4a, 0x3f, 0xff, 0xfd, 0x41, - 0x42, 0x87, 0x24, 0x37, 0x06, 0x17, 0x2e, 0x56, 0x05, 0x9c, 0x1c, 0xb3, 0x84, 0x6a, 0xff, 0xfb, - 0x43, 0x8b, 0xa3, 0x7a, 0x32, 0x43, 0x28, 0xe1, 0x1f, 0x50, 0x54, 0xfc, 0xca, 0xa5, 0xdf, 0xff, - 0x08, 0x04, 0x48, 0x15, 0x61, 0xd9, 0x76, 0x43, 0xf8, 0x2a, 0x07, 0xe9, 0x65, 0xf7, 0xc6, 0x89, - 0x2d, 0x40, 0xa1, 0xc3, 0x35, 0x8d, 0xf5, 0xed, 0xf5, 0x91, 0xae, 0x2f, 0xcc, 0x01, 0xce, 0x03, - 0x48, 0xc0, 0x8d, 0x63, 0xf4, 0xfd, 0x50, 0x20, 0x2d, 0x0c, 0x9b, 0xb0, 0x8d, 0x13, 0xc0, 0x8a, - 0x09, 0x52, 0x1b, 0x02, 0x6e, 0x42, 0x3b, 0xd0, 0x13, 0x4e, 0x84, 0x01, 0x26, 0x88, 0x6a, 0x04, - 0x84, 0x34, 0x2a, 0xa5, 0x00, 0xba, 0x54, 0x48, 0x58, 0xea, 0x54, 0x02, 0xb4, 0x1d, 0xa7, 0xfa, - 0x47, 0x82, 0xec, 0x7a, 0x77, 0xfd, 0x00, 0x92, 0x66, 0x62, 0x04, 0xa6, 0x9b, 0xff, 0xf6, 0x80, - 0xc0, 0x69, 0x01, 0xc2, 0x3e, 0x90, 0x14, 0x20, 0x2f, 0xfc, 0x40, 0x96, 0x59, 0x58, 0x0c, 0xb1, - 0x13, 0x68, 0x20, 0x2e, 0xb5, 0xf5, 0xdf, 0xff, 0xf8, 0xfc, 0x56, 0x88, 0x60, 0x24, 0x53, 0xb5, - 0x41, 0x46, 0x5f, 0xf8, 0xf1, 0x7e, 0xde, 0x4a, 0x08, 0x97, 0xe0, 0x55, 0x03, 0x8f, 0xe5, 0x75, - 0x61, 0x03, 0xf2, 0xe1, 0x90, 0x01, 0xa2, 0x8e, 0x88, 0x04, 0x98, 0x05, 0x93, 0x6b, 0xff, 0xea, - 0xc0, 0x60, 0xa1, 0x88, 0x04, 0x49, 0xbf, 0xf7, 0xff, 0x8c, 0xb4, 0x59, 0x90, 0x80, 0x30, 0x64, - 0x53, 0xff, 0xf5, 0xc4, 0x48, 0xda, 0xda, 0xcb, 0x80, 0x38, 0x61, 0x57, 0xb2, 0xaf, 0x00, 0xe8, - 0x7b, 0x46, 0xe6, 0xd8, 0x02, 0x03, 0x8a, 0x06, 0x18, 0x14, 0x32, 0x83, 0xd0, 0x8a, 0xee, 0xbc, - 0x81, 0xb4, 0x28, 0xc4, 0x7f, 0xf9, 0xa1, 0x69, 0x00, 0x91, 0xc5, 0x51, 0xff, 0xfe, 0x3f, 0xe9, - 0xf1, 0x70, 0x30, 0x24, 0x10, 0xa7, 0xcb, 0x1f, 0x8a, 0x24, 0x93, 0xed, 0x83, 0x00, 0x36, 0x20, - 0xd1, 0x50, 0xe7, 0xd8, 0xad, 0x58, 0x20, 0x09, 0x22, 0x80, 0xd0, 0xca, 0x5d, 0x1a, 0xd7, 0xf1, - 0x60, 0x75, 0x2a, 0xf2, 0xd7, 0xf8, 0xc0, 0x32, 0x45, 0x86, 0x00, 0x43, 0x01, 0xfe, 0x80, 0xf7, - 0x42, 0x81, 0x74, 0x84, 0x4c, 0xa1, 0x60, 0x4c, 0xcb, 0x14, 0x58, 0x01, 0x4d, 0x18, 0xa1, 0xaa, - 0x47, 0x0e, 0x11, 0x1a, 0x40, 0x7d, 0x41, 0x02, 0xe3, 0x30, 0xcd, 0x33, 0x81, 0x34, 0x06, 0x46, - 0x83, 0xa2, 0x47, 0x1c, 0x04, 0xaa, 0x20, 0x12, 0xa2, 0x8b, 0x81, 0xc4, 0x9c, 0xa0, 0x2e, 0x06, - 0x32, 0xf8, 0x86, 0x85, 0x01, 0xe8, 0x70, 0xf9, 0x46, 0x09, 0x6a, 0xbf, 0xe0, 0xf5, 0xa4, 0xc8, - 0x78, 0xe7, 0xd2, 0x97, 0x0b, 0xbc, 0x3c, 0x97, 0xff, 0xd5, 0x40, 0x94, 0xb2, 0xc1, 0x18, 0x18, - 0x11, 0x1f, 0x43, 0xc1, 0x18, 0xc3, 0x83, 0x7f, 0x9a, 0x31, 0xc4, 0x8e, 0x70, 0x56, 0xda, 0xf6, - 0x17, 0xde, 0xd1, 0x02, 0x0d, 0x42, 0x21, 0x13, 0xdc, 0x3a, 0x3c, 0x40, 0x9e, 0xf4, 0x01, 0x43, - 0xea, 0x0c, 0x46, 0x73, 0xa2, 0x7b, 0x0c, 0x80, 0xff, 0xe4, 0xad, 0x2e, 0x09, 0xb4, 0x63, 0xb0, - 0x8c, 0x54, 0x59, 0xfa, 0xac, 0x76, 0x36, 0x10, 0x05, 0xf0, 0x98, 0x88, 0x83, 0x42, 0x00, 0x20, - 0x71, 0xcc, 0xc1, 0xa9, 0x97, 0x3e, 0x5a, 0x0d, 0x04, 0x50, 0x92, 0x23, 0x20, 0x0d, 0x0a, 0x1c, - 0x57, 0xd7, 0xff, 0x10, 0xf2, 0x03, 0x0f, 0x58, 0x1b, 0xa5, 0x11, 0xf8, 0xf1, 0xb4, 0x12, 0xdb, - 0x1a, 0x48, 0x56, 0x1f, 0xe3, 0xc7, 0x50, 0xe9, 0x16, 0xb4, 0xbc, 0xb0, 0x40, 0x93, 0xea, 0xb5, - 0x5b, 0x2f, 0xfc, 0x50, 0x0a, 0x6f, 0xcc, 0x25, 0xe0, 0x06, 0xab, 0x5f, 0x24, 0xfe, 0x8b, 0xcb, - 0x42, 0x43, 0x7e, 0x69, 0x02, 0x25, 0xc7, 0x38, 0x00, 0x6e, 0xe5, 0x80, 0xa8, 0xa4, 0x30, 0x44, - 0x15, 0x8f, 0xe9, 0x0c, 0xd3, 0xa6, 0xc2, 0x14, 0x34, 0x4a, 0xfe, 0x03, 0x7f, 0x06, 0xa5, 0x91, - 0x02, 0x54, 0xf1, 0xa1, 0xa1, 0x53, 0xbf, 0x11, 0xf2, 0x8f, 0x83, 0x67, 0x80, 0x09, 0x08, 0x12, - 0x3f, 0xfd, 0x44, 0x91, 0xc2, 0x83, 0x30, 0x50, 0x07, 0x02, 0x82, 0x4d, 0x31, 0x34, 0x06, 0x41, - 0x79, 0x6f, 0xf0, 0xcc, 0x03, 0x79, 0x00, 0x2c, 0x05, 0x24, 0xec, 0x8d, 0x29, 0x15, 0xaf, 0x44, - 0xc8, 0xeb, 0x4f, 0xe1, 0xfd, 0xf1, 0x41, 0x48, 0x81, 0x08, 0xaf, 0xfe, 0x51, 0x48, 0xce, 0xe7, - 0xf9, 0xb6, 0x0a, 0x30, 0x83, 0x11, 0xf0, 0x0c, 0x3b, 0xd2, 0xa6, 0x24, 0x24, 0xef, 0x25, 0xfa, - 0x5a, 0x3e, 0x92, 0x3e, 0x79, 0x0e, 0x35, 0x61, 0xc8, 0xaa, 0x1c, 0x2e, 0x9a, 0x27, 0x7f, 0xff, - 0xf0, 0x7d, 0x30, 0x5b, 0xbc, 0x91, 0xff, 0xfe, 0x43, 0x24, 0x28, 0x66, 0xa7, 0x70, 0x99, 0x28, - 0x6e, 0x2b, 0x18, 0x2b, 0xd4, 0xa1, 0x77, 0x3b, 0x96, 0x9f, 0xf7, 0xeb, 0xbe, 0x1f, 0x04, 0x34, - 0x75, 0x84, 0x31, 0x42, 0x4c, 0x65, 0xaa, 0x09, 0x50, 0xa0, 0xc4, 0x51, 0x31, 0xd3, 0x26, 0x3a, - 0x1b, 0xf4, 0x6e, 0x4a, 0x4e, 0x17, 0x25, 0x84, 0x78, 0x7d, 0x2c, 0x3f, 0x46, 0x18, 0xca, 0x5f, - 0xf9, 0xe5, 0x38, 0x2f, 0xd8, 0x71, 0x94, 0x94, 0xe2, 0xcc, 0xa3, 0x15, 0xb0, 0xda, 0xa9, 0xcb, - 0x58, 0xe4, 0x18, 0x77, 0x93, 0x8a, 0x51, 0xc6, 0x23, 0xc4, 0x4e, 0x6d, 0xd9, 0x14, 0x1e, 0x9b, - 0x8d, 0xbc, 0xcb, 0x9d, 0xc4, 0x18, 0x05, 0xf5, 0xa9, 0x29, 0xf8, 0x6d, 0x29, 0x38, 0xc7, 0x44, - 0xe5, 0x3a, 0xcd, 0xba, 0x61, 0x98, 0x4a, 0x57, 0x02, 0x96, 0x42, 0x02, 0xd9, 0x37, 0x11, 0xde, - 0x2d, 0xd4, 0x3f, 0xfe, 0x61, 0xe7, 0x33, 0xd7, 0x89, 0x4a, 0xdd, 0xb0, 0x34, 0x47, 0xf4, 0xdc, - 0xad, 0xaa, 0xc9, 0x9d, 0x7e, 0x6d, 0x4b, 0xcc, 0xdc, 0x17, 0x89, 0x57, 0xfd, 0xbb, 0x37, 0x75, - 0x47, 0x5a, 0xec, 0x2c, 0x6e, 0x3c, 0x15, 0x92, 0x54, 0x64, 0x2c, 0xab, 0x9e, 0xab, 0x2b, 0xdd, - 0x3c, 0x66, 0xa0, 0x8f, 0x47, 0x5e, 0x93, 0x1a, 0x37, 0x16, 0xf4, 0x89, 0x23, 0x00, + 0xc0, 0x01, 0x01, 0x15, 0x48, 0x99, 0xc7, 0x41, 0xa1, 0x12, 0x68, 0x11, 0xdc, 0x22, 0x29, 0x74, 0xef, 0xfd, 0x20, + 0x92, 0xe0, 0x4e, 0xa8, 0x69, 0x3b, 0xfd, 0x41, 0x83, 0xbf, 0x28, 0x53, 0x0c, 0x1f, 0xe2, 0x54, 0x0c, 0x77, 0x7c, + 0xa3, 0x05, 0x7c, 0x30, 0xd0, 0x9c, 0xe8, 0x09, 0x39, 0x1a, 0x5d, 0xff, 0xe2, 0x01, 0x22, 0x13, 0x80, 0x90, 0x87, + 0xd2, 0x9f, 0xfd, 0xfd, 0x50, 0x09, 0x0d, 0x24, 0xa0, 0x8f, 0xab, 0xfe, 0x3c, 0x04, 0x84, 0xc6, 0x9c, 0xde, 0xf8, + 0x80, 0xc3, 0x22, 0x50, 0xaf, 0x4c, 0x2a, 0x7f, 0xfe, 0xe0, 0x5c, 0xa9, 0x52, 0x8a, 0x06, 0x7d, 0x3d, 0x09, 0x03, + 0x65, 0xa3, 0xaf, 0xd2, 0x61, 0x1f, 0x72, 0x04, 0x50, 0x8d, 0x3e, 0x16, 0x4a, 0x3f, 0xff, 0xfd, 0x41, 0x42, 0x87, + 0x24, 0x37, 0x06, 0x17, 0x2e, 0x56, 0x05, 0x9c, 0x1c, 0xb3, 0x84, 0x6a, 0xff, 0xfb, 0x43, 0x8b, 0xa3, 0x7a, 0x32, + 0x43, 0x28, 0xe1, 0x1f, 0x50, 0x54, 0xfc, 0xca, 0xa5, 0xdf, 0xff, 0x08, 0x04, 0x48, 0x15, 0x61, 0xd9, 0x76, 0x43, + 0xf8, 0x2a, 0x07, 0xe9, 0x65, 0xf7, 0xc6, 0x89, 0x2d, 0x40, 0xa1, 0xc3, 0x35, 0x8d, 0xf5, 0xed, 0xf5, 0x91, 0xae, + 0x2f, 0xcc, 0x01, 0xce, 0x03, 0x48, 0xc0, 0x8d, 0x63, 0xf4, 0xfd, 0x50, 0x20, 0x2d, 0x0c, 0x9b, 0xb0, 0x8d, 0x13, + 0xc0, 0x8a, 0x09, 0x52, 0x1b, 0x02, 0x6e, 0x42, 0x3b, 0xd0, 0x13, 0x4e, 0x84, 0x01, 0x26, 0x88, 0x6a, 0x04, 0x84, + 0x34, 0x2a, 0xa5, 0x00, 0xba, 0x54, 0x48, 0x58, 0xea, 0x54, 0x02, 0xb4, 0x1d, 0xa7, 0xfa, 0x47, 0x82, 0xec, 0x7a, + 0x77, 0xfd, 0x00, 0x92, 0x66, 0x62, 0x04, 0xa6, 0x9b, 0xff, 0xf6, 0x80, 0xc0, 0x69, 0x01, 0xc2, 0x3e, 0x90, 0x14, + 0x20, 0x2f, 0xfc, 0x40, 0x96, 0x59, 0x58, 0x0c, 0xb1, 0x13, 0x68, 0x20, 0x2e, 0xb5, 0xf5, 0xdf, 0xff, 0xf8, 0xfc, + 0x56, 0x88, 0x60, 0x24, 0x53, 0xb5, 0x41, 0x46, 0x5f, 0xf8, 0xf1, 0x7e, 0xde, 0x4a, 0x08, 0x97, 0xe0, 0x55, 0x03, + 0x8f, 0xe5, 0x75, 0x61, 0x03, 0xf2, 0xe1, 0x90, 0x01, 0xa2, 0x8e, 0x88, 0x04, 0x98, 0x05, 0x93, 0x6b, 0xff, 0xea, + 0xc0, 0x60, 0xa1, 0x88, 0x04, 0x49, 0xbf, 0xf7, 0xff, 0x8c, 0xb4, 0x59, 0x90, 0x80, 0x30, 0x64, 0x53, 0xff, 0xf5, + 0xc4, 0x48, 0xda, 0xda, 0xcb, 0x80, 0x38, 0x61, 0x57, 0xb2, 0xaf, 0x00, 0xe8, 0x7b, 0x46, 0xe6, 0xd8, 0x02, 0x03, + 0x8a, 0x06, 0x18, 0x14, 0x32, 0x83, 0xd0, 0x8a, 0xee, 0xbc, 0x81, 0xb4, 0x28, 0xc4, 0x7f, 0xf9, 0xa1, 0x69, 0x00, + 0x91, 0xc5, 0x51, 0xff, 0xfe, 0x3f, 0xe9, 0xf1, 0x70, 0x30, 0x24, 0x10, 0xa7, 0xcb, 0x1f, 0x8a, 0x24, 0x93, 0xed, + 0x83, 0x00, 0x36, 0x20, 0xd1, 0x50, 0xe7, 0xd8, 0xad, 0x58, 0x20, 0x09, 0x22, 0x80, 0xd0, 0xca, 0x5d, 0x1a, 0xd7, + 0xf1, 0x60, 0x75, 0x2a, 0xf2, 0xd7, 0xf8, 0xc0, 0x32, 0x45, 0x86, 0x00, 0x43, 0x01, 0xfe, 0x80, 0xf7, 0x42, 0x81, + 0x74, 0x84, 0x4c, 0xa1, 0x60, 0x4c, 0xcb, 0x14, 0x58, 0x01, 0x4d, 0x18, 0xa1, 0xaa, 0x47, 0x0e, 0x11, 0x1a, 0x40, + 0x7d, 0x41, 0x02, 0xe3, 0x30, 0xcd, 0x33, 0x81, 0x34, 0x06, 0x46, 0x83, 0xa2, 0x47, 0x1c, 0x04, 0xaa, 0x20, 0x12, + 0xa2, 0x8b, 0x81, 0xc4, 0x9c, 0xa0, 0x2e, 0x06, 0x32, 0xf8, 0x86, 0x85, 0x01, 0xe8, 0x70, 0xf9, 0x46, 0x09, 0x6a, + 0xbf, 0xe0, 0xf5, 0xa4, 0xc8, 0x78, 0xe7, 0xd2, 0x97, 0x0b, 0xbc, 0x3c, 0x97, 0xff, 0xd5, 0x40, 0x94, 0xb2, 0xc1, + 0x18, 0x18, 0x11, 0x1f, 0x43, 0xc1, 0x18, 0xc3, 0x83, 0x7f, 0x9a, 0x31, 0xc4, 0x8e, 0x70, 0x56, 0xda, 0xf6, 0x17, + 0xde, 0xd1, 0x02, 0x0d, 0x42, 0x21, 0x13, 0xdc, 0x3a, 0x3c, 0x40, 0x9e, 0xf4, 0x01, 0x43, 0xea, 0x0c, 0x46, 0x73, + 0xa2, 0x7b, 0x0c, 0x80, 0xff, 0xe4, 0xad, 0x2e, 0x09, 0xb4, 0x63, 0xb0, 0x8c, 0x54, 0x59, 0xfa, 0xac, 0x76, 0x36, + 0x10, 0x05, 0xf0, 0x98, 0x88, 0x83, 0x42, 0x00, 0x20, 0x71, 0xcc, 0xc1, 0xa9, 0x97, 0x3e, 0x5a, 0x0d, 0x04, 0x50, + 0x92, 0x23, 0x20, 0x0d, 0x0a, 0x1c, 0x57, 0xd7, 0xff, 0x10, 0xf2, 0x03, 0x0f, 0x58, 0x1b, 0xa5, 0x11, 0xf8, 0xf1, + 0xb4, 0x12, 0xdb, 0x1a, 0x48, 0x56, 0x1f, 0xe3, 0xc7, 0x50, 0xe9, 0x16, 0xb4, 0xbc, 0xb0, 0x40, 0x93, 0xea, 0xb5, + 0x5b, 0x2f, 0xfc, 0x50, 0x0a, 0x6f, 0xcc, 0x25, 0xe0, 0x06, 0xab, 0x5f, 0x24, 0xfe, 0x8b, 0xcb, 0x42, 0x43, 0x7e, + 0x69, 0x02, 0x25, 0xc7, 0x38, 0x00, 0x6e, 0xe5, 0x80, 0xa8, 0xa4, 0x30, 0x44, 0x15, 0x8f, 0xe9, 0x0c, 0xd3, 0xa6, + 0xc2, 0x14, 0x34, 0x4a, 0xfe, 0x03, 0x7f, 0x06, 0xa5, 0x91, 0x02, 0x54, 0xf1, 0xa1, 0xa1, 0x53, 0xbf, 0x11, 0xf2, + 0x8f, 0x83, 0x67, 0x80, 0x09, 0x08, 0x12, 0x3f, 0xfd, 0x44, 0x91, 0xc2, 0x83, 0x30, 0x50, 0x07, 0x02, 0x82, 0x4d, + 0x31, 0x34, 0x06, 0x41, 0x79, 0x6f, 0xf0, 0xcc, 0x03, 0x79, 0x00, 0x2c, 0x05, 0x24, 0xec, 0x8d, 0x29, 0x15, 0xaf, + 0x44, 0xc8, 0xeb, 0x4f, 0xe1, 0xfd, 0xf1, 0x41, 0x48, 0x81, 0x08, 0xaf, 0xfe, 0x51, 0x48, 0xce, 0xe7, 0xf9, 0xb6, + 0x0a, 0x30, 0x83, 0x11, 0xf0, 0x0c, 0x3b, 0xd2, 0xa6, 0x24, 0x24, 0xef, 0x25, 0xfa, 0x5a, 0x3e, 0x92, 0x3e, 0x79, + 0x0e, 0x35, 0x61, 0xc8, 0xaa, 0x1c, 0x2e, 0x9a, 0x27, 0x7f, 0xff, 0xf0, 0x7d, 0x30, 0x5b, 0xbc, 0x91, 0xff, 0xfe, + 0x43, 0x24, 0x28, 0x66, 0xa7, 0x70, 0x99, 0x28, 0x6e, 0x2b, 0x18, 0x2b, 0xd4, 0xa1, 0x77, 0x3b, 0x96, 0x9f, 0xf7, + 0xeb, 0xbe, 0x1f, 0x04, 0x34, 0x75, 0x84, 0x31, 0x42, 0x4c, 0x65, 0xaa, 0x09, 0x50, 0xa0, 0xc4, 0x51, 0x31, 0xd3, + 0x26, 0x3a, 0x1b, 0xf4, 0x6e, 0x4a, 0x4e, 0x17, 0x25, 0x84, 0x78, 0x7d, 0x2c, 0x3f, 0x46, 0x18, 0xca, 0x5f, 0xf9, + 0xe5, 0x38, 0x2f, 0xd8, 0x71, 0x94, 0x94, 0xe2, 0xcc, 0xa3, 0x15, 0xb0, 0xda, 0xa9, 0xcb, 0x58, 0xe4, 0x18, 0x77, + 0x93, 0x8a, 0x51, 0xc6, 0x23, 0xc4, 0x4e, 0x6d, 0xd9, 0x14, 0x1e, 0x9b, 0x8d, 0xbc, 0xcb, 0x9d, 0xc4, 0x18, 0x05, + 0xf5, 0xa9, 0x29, 0xf8, 0x6d, 0x29, 0x38, 0xc7, 0x44, 0xe5, 0x3a, 0xcd, 0xba, 0x61, 0x98, 0x4a, 0x57, 0x02, 0x96, + 0x42, 0x02, 0xd9, 0x37, 0x11, 0xde, 0x2d, 0xd4, 0x3f, 0xfe, 0x61, 0xe7, 0x33, 0xd7, 0x89, 0x4a, 0xdd, 0xb0, 0x34, + 0x47, 0xf4, 0xdc, 0xad, 0xaa, 0xc9, 0x9d, 0x7e, 0x6d, 0x4b, 0xcc, 0xdc, 0x17, 0x89, 0x57, 0xfd, 0xbb, 0x37, 0x75, + 0x47, 0x5a, 0xec, 0x2c, 0x6e, 0x3c, 0x15, 0x92, 0x54, 0x64, 0x2c, 0xab, 0x9e, 0xab, 0x2b, 0xdd, 0x3c, 0x66, 0xa0, + 0x8f, 0x47, 0x5e, 0x93, 0x1a, 0x37, 0x16, 0xf4, 0x89, 0x23, 0x00, ]; const CB_DATA_ENCODED: [u8; 975] = [ - 0x00, 0xb0, 0x33, 0x56, 0xfa, 0x14, 0x1e, 0xff, 0x48, 0x7a, 0x7e, 0x0f, 0x10, 0x1f, 0xf4, 0x91, - 0xc8, 0x10, 0x56, 0x84, 0xff, 0x08, 0xec, 0xb4, 0xac, 0x0e, 0x0f, 0xff, 0xad, 0xc5, 0xe0, 0x1a, - 0x2f, 0x82, 0x04, 0x9f, 0x91, 0xc2, 0x0e, 0xfe, 0x48, 0x36, 0x79, 0x01, 0x42, 0x14, 0xff, 0xfe, - 0x30, 0xf0, 0x08, 0x18, 0xf1, 0x81, 0x45, 0x9a, 0x60, 0xc1, 0x79, 0xf0, 0x14, 0x12, 0x10, 0xce, - 0xea, 0x31, 0x5a, 0xff, 0xfc, 0x20, 0x13, 0x82, 0x2f, 0xc9, 0x02, 0x1f, 0x81, 0xcb, 0x00, 0xe1, - 0x10, 0xd2, 0xb4, 0xbe, 0x87, 0xff, 0xb0, 0x1e, 0x27, 0x81, 0xb7, 0x04, 0x06, 0x3c, 0xc2, 0x04, - 0xf6, 0x06, 0x0e, 0x28, 0xbc, 0x40, 0xbf, 0x12, 0x1e, 0x86, 0xd4, 0x6a, 0x7f, 0x18, 0x1b, 0x96, - 0x85, 0x4c, 0x16, 0x80, 0xdf, 0x2c, 0xa5, 0x8d, 0x86, 0xa3, 0x4a, 0x8a, 0xb4, 0x1b, 0xa1, 0x38, - 0xa9, 0xd5, 0xff, 0xff, 0xea, 0x06, 0x20, 0xd2, 0x95, 0x1e, 0xf4, 0x2f, 0xb2, 0x12, 0x0e, 0x61, - 0x78, 0x4a, 0x17, 0x52, 0x5d, 0xe4, 0x25, 0x1f, 0xfe, 0xc0, 0xb3, 0x1f, 0xff, 0xff, 0xec, 0x02, - 0x82, 0x80, 0x90, 0x41, 0x88, 0xde, 0x48, 0x2c, 0x42, 0x52, 0x0b, 0x2f, 0x43, 0x7e, 0x50, 0x78, - 0xf2, 0x67, 0x78, 0x41, 0x34, 0x3d, 0xc8, 0x0f, 0x67, 0xa1, 0xeb, 0x21, 0xfe, 0xc0, 0x1f, 0x22, - 0x60, 0x41, 0x6c, 0x00, 0x92, 0x4b, 0x60, 0x10, 0xd0, 0x0d, 0x01, 0x35, 0x05, 0x0e, 0x87, 0xa2, - 0xa0, 0x5d, 0x1f, 0xa3, 0xaf, 0x7f, 0xf1, 0xbe, 0x8f, 0xcd, 0xa5, 0x00, 0x1c, 0x10, 0x40, 0x15, - 0x76, 0x81, 0x05, 0xef, 0xee, 0x00, 0x60, 0x84, 0x00, 0x99, 0x40, 0x4a, 0x82, 0x17, 0xe9, 0xfc, - 0xc4, 0x7f, 0xff, 0xfd, 0x04, 0x80, 0x06, 0x06, 0xdc, 0xaf, 0xa7, 0x7e, 0x94, 0x75, 0x74, 0x01, - 0x00, 0xe0, 0x91, 0x00, 0x85, 0x7f, 0x8e, 0xd6, 0x0b, 0x20, 0x21, 0x30, 0xca, 0x62, 0x8e, 0x07, - 0x04, 0xe9, 0x45, 0x40, 0x5f, 0x47, 0x4a, 0x30, 0x15, 0x41, 0xcb, 0xdf, 0xff, 0xfc, 0xbf, 0xc3, - 0xb4, 0x46, 0x6a, 0x01, 0x40, 0xd0, 0xa7, 0x34, 0x18, 0x24, 0x1c, 0x2a, 0x45, 0xfe, 0xa8, 0x05, - 0x08, 0x61, 0xfd, 0xa8, 0x80, 0x71, 0x01, 0x25, 0x9c, 0xc1, 0x47, 0x17, 0x37, 0x02, 0x7a, 0x15, - 0xff, 0xf3, 0x01, 0x45, 0x7f, 0xd6, 0x80, 0x60, 0x83, 0x67, 0xf8, 0x9d, 0x2f, 0xf4, 0xdd, 0x8c, - 0x30, 0x01, 0x51, 0x42, 0xbc, 0x43, 0x7a, 0x6b, 0x9f, 0x84, 0x1e, 0x00, 0x48, 0xc1, 0xe0, 0xb7, - 0xe0, 0x7e, 0x99, 0xf2, 0x4a, 0xe9, 0x40, 0x02, 0x81, 0xc3, 0x00, 0x24, 0x3a, 0xc5, 0x52, 0x0f, - 0x91, 0xc8, 0x68, 0x25, 0x40, 0x99, 0xa4, 0x25, 0x1a, 0x04, 0xd0, 0xa2, 0x91, 0xdd, 0xeb, 0x93, - 0x00, 0x21, 0x49, 0x24, 0x8b, 0x40, 0x75, 0x38, 0x14, 0xa1, 0xfd, 0x3f, 0x88, 0x25, 0xbf, 0x32, - 0x00, 0xe3, 0x19, 0xfc, 0xb9, 0xf8, 0x6f, 0x81, 0xc0, 0x01, 0xb3, 0x93, 0x20, 0x09, 0x08, 0x25, - 0x84, 0xe1, 0x34, 0xd4, 0x1b, 0x48, 0x88, 0x11, 0xa0, 0x15, 0x59, 0xd7, 0x07, 0x81, 0x81, 0x3b, - 0xa1, 0x40, 0x2e, 0x2f, 0x48, 0x70, 0x09, 0xc4, 0x76, 0x49, 0x0f, 0x2e, 0x50, 0x2e, 0x46, 0x19, - 0xa4, 0x16, 0xa2, 0x1b, 0x84, 0xa2, 0x89, 0x58, 0xfc, 0x4f, 0x3f, 0x40, 0x90, 0x4c, 0xa3, 0x01, - 0x32, 0x09, 0x02, 0x80, 0x9c, 0x91, 0x13, 0x2c, 0xba, 0xde, 0x5d, 0x99, 0xf2, 0xff, 0xff, 0x3d, - 0x5a, 0x1f, 0xa9, 0x02, 0x90, 0x8f, 0xf3, 0x08, 0xbd, 0x01, 0xf8, 0xd0, 0x2a, 0x95, 0x41, 0x0c, - 0x40, 0x0a, 0x20, 0xc4, 0xd4, 0xcc, 0x6b, 0x0f, 0xf0, 0x80, 0xb1, 0x5d, 0x28, 0x3d, 0x08, 0xc2, - 0xf8, 0x31, 0x02, 0x49, 0x88, 0x14, 0x28, 0xed, 0xe8, 0x86, 0x3b, 0x00, 0x9f, 0x95, 0x06, 0x37, - 0x15, 0xa4, 0x59, 0xc8, 0x80, 0xb6, 0x10, 0xf0, 0xe5, 0xb8, 0x18, 0x00, 0x56, 0x1c, 0xff, 0x95, - 0x21, 0x0e, 0x7f, 0x2b, 0xc5, 0x08, 0x59, 0x10, 0xe1, 0x46, 0x31, 0x8d, 0xec, 0xe0, 0xa1, 0x99, - 0xbb, 0x21, 0xff, 0xfe, 0x30, 0x10, 0xd0, 0x05, 0xe3, 0x08, 0x50, 0xfc, 0xf3, 0x0e, 0x00, 0x8d, - 0x68, 0x8e, 0x07, 0xa6, 0x80, 0x34, 0x42, 0xed, 0x1f, 0x88, 0x00, 0xf0, 0x8a, 0x21, 0xae, 0xf7, - 0xfb, 0x80, 0x28, 0x86, 0x0f, 0xff, 0xff, 0x82, 0xea, 0x47, 0x95, 0x91, 0xe0, 0x04, 0x01, 0x44, - 0x0c, 0x29, 0xff, 0x0e, 0x33, 0xe8, 0xc0, 0x54, 0x04, 0x23, 0xfc, 0x81, 0x5b, 0xf0, 0x3c, 0x07, - 0x10, 0x70, 0x30, 0xd8, 0x21, 0x6f, 0xef, 0xde, 0x46, 0x09, 0x43, 0xfa, 0x5f, 0xff, 0x0d, 0x72, - 0x30, 0xdd, 0x00, 0xdb, 0xe4, 0x48, 0x24, 0x97, 0x08, 0x46, 0xb1, 0x49, 0xc4, 0x4d, 0x80, 0x12, - 0x60, 0xff, 0xa4, 0xa6, 0xff, 0xf6, 0x8c, 0x00, 0x40, 0x05, 0x02, 0xb4, 0x0f, 0xf0, 0x3e, 0xfc, - 0x84, 0x38, 0x81, 0x94, 0x8b, 0xfe, 0x49, 0xef, 0xc0, 0x10, 0x49, 0x88, 0x28, 0xa2, 0x1c, 0x2a, - 0x8b, 0x64, 0xd4, 0x86, 0xd7, 0xff, 0xff, 0xff, 0xeb, 0x91, 0x6b, 0x11, 0x10, 0x00, 0x69, 0x4c, - 0xbf, 0xb4, 0x1c, 0xd8, 0x00, 0x07, 0x16, 0x80, 0x60, 0x0a, 0x1c, 0x82, 0x42, 0x27, 0x82, 0x43, - 0xc9, 0x0a, 0x64, 0x20, 0x5a, 0x5f, 0x4e, 0xbf, 0x8c, 0x38, 0x82, 0x36, 0x02, 0x07, 0x72, 0x79, - 0x07, 0x23, 0xb4, 0xbb, 0x57, 0x5f, 0xe8, 0x04, 0xdd, 0x39, 0xe9, 0x07, 0x95, 0xbe, 0x04, 0x2b, - 0xdd, 0x8e, 0x22, 0xdc, 0x14, 0x2c, 0x61, 0xa3, 0xa9, 0xcd, 0x4f, 0x82, 0x5d, 0xa0, 0x44, 0xdf, - 0xf4, 0x96, 0xff, 0xf5, 0x2b, 0xff, 0xfe, 0x01, 0x19, 0xd2, 0xa2, 0x9e, 0x43, 0xa5, 0x7f, 0xf0, - 0x4c, 0x4c, 0x2b, 0x3c, 0x33, 0xe2, 0x55, 0xff, 0x04, 0x06, 0x29, 0x2c, 0x0d, 0x22, 0x5d, 0x7c, - 0x93, 0xba, 0x18, 0xaf, 0xf9, 0x32, 0xa6, 0xc3, 0x99, 0x46, 0x79, 0xe3, 0x06, 0xa6, 0x38, 0x8b, - 0x92, 0x22, 0x4b, 0xdb, 0x1b, 0x36, 0x20, 0xb0, 0x6c, 0x20, 0xce, 0x37, 0x42, 0xe1, 0x66, 0xd4, - 0x49, 0x34, 0x42, 0x8b, 0xfa, 0x9c, 0x12, 0x99, 0xdc, 0x06, 0x87, 0xfa, 0x46, 0xf8, 0x2f, 0x04, - 0xa9, 0xd8, 0x82, 0x07, 0xa6, 0x30, 0x0f, 0xc0, 0xdf, 0x35, 0xe8, 0x90, 0xf0, 0xff, 0xff, 0xa8, - 0xe0, 0xd7, 0x02, 0x60, 0x1a, 0xc3, 0x20, 0x28, 0xa2, 0x31, 0x29, 0x3c, 0xeb, 0x04, 0xa5, 0xdd, - 0x48, 0x0e, 0x82, 0xa4, 0xb6, 0x56, 0x22, 0x06, 0x57, 0xe0, 0xda, 0x10, 0x27, 0x31, 0x0e, 0x11, - 0x77, 0xfe, 0x02, 0x60, 0x16, 0x48, 0x81, 0x8c, 0x0d, 0x05, 0x17, 0x7f, 0xcb, 0xbb, 0x7e, 0x25, - 0x2a, 0x41, 0xfd, 0x8a, 0x7f, 0xc9, 0x36, 0x7c, 0xe0, 0x98, 0x7e, 0x92, 0xef, 0x7e, 0x06, 0x03, - 0x13, 0x3e, 0x20, 0x3a, 0xbf, 0x4c, 0xc3, 0x0f, 0x2e, 0x80, 0x74, 0xbf, 0x39, 0x3c, 0xf0, 0xa6, - 0xb2, 0xe9, 0x3f, 0x41, 0x55, 0x1f, 0x2c, 0xf5, 0xd2, 0x7e, 0x8c, 0xae, 0x4e, 0xaa, 0x61, 0x3c, - 0xbc, 0x3f, 0xc4, 0xc7, 0x36, 0xdc, 0x23, 0xc8, 0xb8, 0x52, 0xe2, 0x8a, 0x80, 0x18, 0x00, + 0x00, 0xb0, 0x33, 0x56, 0xfa, 0x14, 0x1e, 0xff, 0x48, 0x7a, 0x7e, 0x0f, 0x10, 0x1f, 0xf4, 0x91, 0xc8, 0x10, 0x56, + 0x84, 0xff, 0x08, 0xec, 0xb4, 0xac, 0x0e, 0x0f, 0xff, 0xad, 0xc5, 0xe0, 0x1a, 0x2f, 0x82, 0x04, 0x9f, 0x91, 0xc2, + 0x0e, 0xfe, 0x48, 0x36, 0x79, 0x01, 0x42, 0x14, 0xff, 0xfe, 0x30, 0xf0, 0x08, 0x18, 0xf1, 0x81, 0x45, 0x9a, 0x60, + 0xc1, 0x79, 0xf0, 0x14, 0x12, 0x10, 0xce, 0xea, 0x31, 0x5a, 0xff, 0xfc, 0x20, 0x13, 0x82, 0x2f, 0xc9, 0x02, 0x1f, + 0x81, 0xcb, 0x00, 0xe1, 0x10, 0xd2, 0xb4, 0xbe, 0x87, 0xff, 0xb0, 0x1e, 0x27, 0x81, 0xb7, 0x04, 0x06, 0x3c, 0xc2, + 0x04, 0xf6, 0x06, 0x0e, 0x28, 0xbc, 0x40, 0xbf, 0x12, 0x1e, 0x86, 0xd4, 0x6a, 0x7f, 0x18, 0x1b, 0x96, 0x85, 0x4c, + 0x16, 0x80, 0xdf, 0x2c, 0xa5, 0x8d, 0x86, 0xa3, 0x4a, 0x8a, 0xb4, 0x1b, 0xa1, 0x38, 0xa9, 0xd5, 0xff, 0xff, 0xea, + 0x06, 0x20, 0xd2, 0x95, 0x1e, 0xf4, 0x2f, 0xb2, 0x12, 0x0e, 0x61, 0x78, 0x4a, 0x17, 0x52, 0x5d, 0xe4, 0x25, 0x1f, + 0xfe, 0xc0, 0xb3, 0x1f, 0xff, 0xff, 0xec, 0x02, 0x82, 0x80, 0x90, 0x41, 0x88, 0xde, 0x48, 0x2c, 0x42, 0x52, 0x0b, + 0x2f, 0x43, 0x7e, 0x50, 0x78, 0xf2, 0x67, 0x78, 0x41, 0x34, 0x3d, 0xc8, 0x0f, 0x67, 0xa1, 0xeb, 0x21, 0xfe, 0xc0, + 0x1f, 0x22, 0x60, 0x41, 0x6c, 0x00, 0x92, 0x4b, 0x60, 0x10, 0xd0, 0x0d, 0x01, 0x35, 0x05, 0x0e, 0x87, 0xa2, 0xa0, + 0x5d, 0x1f, 0xa3, 0xaf, 0x7f, 0xf1, 0xbe, 0x8f, 0xcd, 0xa5, 0x00, 0x1c, 0x10, 0x40, 0x15, 0x76, 0x81, 0x05, 0xef, + 0xee, 0x00, 0x60, 0x84, 0x00, 0x99, 0x40, 0x4a, 0x82, 0x17, 0xe9, 0xfc, 0xc4, 0x7f, 0xff, 0xfd, 0x04, 0x80, 0x06, + 0x06, 0xdc, 0xaf, 0xa7, 0x7e, 0x94, 0x75, 0x74, 0x01, 0x00, 0xe0, 0x91, 0x00, 0x85, 0x7f, 0x8e, 0xd6, 0x0b, 0x20, + 0x21, 0x30, 0xca, 0x62, 0x8e, 0x07, 0x04, 0xe9, 0x45, 0x40, 0x5f, 0x47, 0x4a, 0x30, 0x15, 0x41, 0xcb, 0xdf, 0xff, + 0xfc, 0xbf, 0xc3, 0xb4, 0x46, 0x6a, 0x01, 0x40, 0xd0, 0xa7, 0x34, 0x18, 0x24, 0x1c, 0x2a, 0x45, 0xfe, 0xa8, 0x05, + 0x08, 0x61, 0xfd, 0xa8, 0x80, 0x71, 0x01, 0x25, 0x9c, 0xc1, 0x47, 0x17, 0x37, 0x02, 0x7a, 0x15, 0xff, 0xf3, 0x01, + 0x45, 0x7f, 0xd6, 0x80, 0x60, 0x83, 0x67, 0xf8, 0x9d, 0x2f, 0xf4, 0xdd, 0x8c, 0x30, 0x01, 0x51, 0x42, 0xbc, 0x43, + 0x7a, 0x6b, 0x9f, 0x84, 0x1e, 0x00, 0x48, 0xc1, 0xe0, 0xb7, 0xe0, 0x7e, 0x99, 0xf2, 0x4a, 0xe9, 0x40, 0x02, 0x81, + 0xc3, 0x00, 0x24, 0x3a, 0xc5, 0x52, 0x0f, 0x91, 0xc8, 0x68, 0x25, 0x40, 0x99, 0xa4, 0x25, 0x1a, 0x04, 0xd0, 0xa2, + 0x91, 0xdd, 0xeb, 0x93, 0x00, 0x21, 0x49, 0x24, 0x8b, 0x40, 0x75, 0x38, 0x14, 0xa1, 0xfd, 0x3f, 0x88, 0x25, 0xbf, + 0x32, 0x00, 0xe3, 0x19, 0xfc, 0xb9, 0xf8, 0x6f, 0x81, 0xc0, 0x01, 0xb3, 0x93, 0x20, 0x09, 0x08, 0x25, 0x84, 0xe1, + 0x34, 0xd4, 0x1b, 0x48, 0x88, 0x11, 0xa0, 0x15, 0x59, 0xd7, 0x07, 0x81, 0x81, 0x3b, 0xa1, 0x40, 0x2e, 0x2f, 0x48, + 0x70, 0x09, 0xc4, 0x76, 0x49, 0x0f, 0x2e, 0x50, 0x2e, 0x46, 0x19, 0xa4, 0x16, 0xa2, 0x1b, 0x84, 0xa2, 0x89, 0x58, + 0xfc, 0x4f, 0x3f, 0x40, 0x90, 0x4c, 0xa3, 0x01, 0x32, 0x09, 0x02, 0x80, 0x9c, 0x91, 0x13, 0x2c, 0xba, 0xde, 0x5d, + 0x99, 0xf2, 0xff, 0xff, 0x3d, 0x5a, 0x1f, 0xa9, 0x02, 0x90, 0x8f, 0xf3, 0x08, 0xbd, 0x01, 0xf8, 0xd0, 0x2a, 0x95, + 0x41, 0x0c, 0x40, 0x0a, 0x20, 0xc4, 0xd4, 0xcc, 0x6b, 0x0f, 0xf0, 0x80, 0xb1, 0x5d, 0x28, 0x3d, 0x08, 0xc2, 0xf8, + 0x31, 0x02, 0x49, 0x88, 0x14, 0x28, 0xed, 0xe8, 0x86, 0x3b, 0x00, 0x9f, 0x95, 0x06, 0x37, 0x15, 0xa4, 0x59, 0xc8, + 0x80, 0xb6, 0x10, 0xf0, 0xe5, 0xb8, 0x18, 0x00, 0x56, 0x1c, 0xff, 0x95, 0x21, 0x0e, 0x7f, 0x2b, 0xc5, 0x08, 0x59, + 0x10, 0xe1, 0x46, 0x31, 0x8d, 0xec, 0xe0, 0xa1, 0x99, 0xbb, 0x21, 0xff, 0xfe, 0x30, 0x10, 0xd0, 0x05, 0xe3, 0x08, + 0x50, 0xfc, 0xf3, 0x0e, 0x00, 0x8d, 0x68, 0x8e, 0x07, 0xa6, 0x80, 0x34, 0x42, 0xed, 0x1f, 0x88, 0x00, 0xf0, 0x8a, + 0x21, 0xae, 0xf7, 0xfb, 0x80, 0x28, 0x86, 0x0f, 0xff, 0xff, 0x82, 0xea, 0x47, 0x95, 0x91, 0xe0, 0x04, 0x01, 0x44, + 0x0c, 0x29, 0xff, 0x0e, 0x33, 0xe8, 0xc0, 0x54, 0x04, 0x23, 0xfc, 0x81, 0x5b, 0xf0, 0x3c, 0x07, 0x10, 0x70, 0x30, + 0xd8, 0x21, 0x6f, 0xef, 0xde, 0x46, 0x09, 0x43, 0xfa, 0x5f, 0xff, 0x0d, 0x72, 0x30, 0xdd, 0x00, 0xdb, 0xe4, 0x48, + 0x24, 0x97, 0x08, 0x46, 0xb1, 0x49, 0xc4, 0x4d, 0x80, 0x12, 0x60, 0xff, 0xa4, 0xa6, 0xff, 0xf6, 0x8c, 0x00, 0x40, + 0x05, 0x02, 0xb4, 0x0f, 0xf0, 0x3e, 0xfc, 0x84, 0x38, 0x81, 0x94, 0x8b, 0xfe, 0x49, 0xef, 0xc0, 0x10, 0x49, 0x88, + 0x28, 0xa2, 0x1c, 0x2a, 0x8b, 0x64, 0xd4, 0x86, 0xd7, 0xff, 0xff, 0xff, 0xeb, 0x91, 0x6b, 0x11, 0x10, 0x00, 0x69, + 0x4c, 0xbf, 0xb4, 0x1c, 0xd8, 0x00, 0x07, 0x16, 0x80, 0x60, 0x0a, 0x1c, 0x82, 0x42, 0x27, 0x82, 0x43, 0xc9, 0x0a, + 0x64, 0x20, 0x5a, 0x5f, 0x4e, 0xbf, 0x8c, 0x38, 0x82, 0x36, 0x02, 0x07, 0x72, 0x79, 0x07, 0x23, 0xb4, 0xbb, 0x57, + 0x5f, 0xe8, 0x04, 0xdd, 0x39, 0xe9, 0x07, 0x95, 0xbe, 0x04, 0x2b, 0xdd, 0x8e, 0x22, 0xdc, 0x14, 0x2c, 0x61, 0xa3, + 0xa9, 0xcd, 0x4f, 0x82, 0x5d, 0xa0, 0x44, 0xdf, 0xf4, 0x96, 0xff, 0xf5, 0x2b, 0xff, 0xfe, 0x01, 0x19, 0xd2, 0xa2, + 0x9e, 0x43, 0xa5, 0x7f, 0xf0, 0x4c, 0x4c, 0x2b, 0x3c, 0x33, 0xe2, 0x55, 0xff, 0x04, 0x06, 0x29, 0x2c, 0x0d, 0x22, + 0x5d, 0x7c, 0x93, 0xba, 0x18, 0xaf, 0xf9, 0x32, 0xa6, 0xc3, 0x99, 0x46, 0x79, 0xe3, 0x06, 0xa6, 0x38, 0x8b, 0x92, + 0x22, 0x4b, 0xdb, 0x1b, 0x36, 0x20, 0xb0, 0x6c, 0x20, 0xce, 0x37, 0x42, 0xe1, 0x66, 0xd4, 0x49, 0x34, 0x42, 0x8b, + 0xfa, 0x9c, 0x12, 0x99, 0xdc, 0x06, 0x87, 0xfa, 0x46, 0xf8, 0x2f, 0x04, 0xa9, 0xd8, 0x82, 0x07, 0xa6, 0x30, 0x0f, + 0xc0, 0xdf, 0x35, 0xe8, 0x90, 0xf0, 0xff, 0xff, 0xa8, 0xe0, 0xd7, 0x02, 0x60, 0x1a, 0xc3, 0x20, 0x28, 0xa2, 0x31, + 0x29, 0x3c, 0xeb, 0x04, 0xa5, 0xdd, 0x48, 0x0e, 0x82, 0xa4, 0xb6, 0x56, 0x22, 0x06, 0x57, 0xe0, 0xda, 0x10, 0x27, + 0x31, 0x0e, 0x11, 0x77, 0xfe, 0x02, 0x60, 0x16, 0x48, 0x81, 0x8c, 0x0d, 0x05, 0x17, 0x7f, 0xcb, 0xbb, 0x7e, 0x25, + 0x2a, 0x41, 0xfd, 0x8a, 0x7f, 0xc9, 0x36, 0x7c, 0xe0, 0x98, 0x7e, 0x92, 0xef, 0x7e, 0x06, 0x03, 0x13, 0x3e, 0x20, + 0x3a, 0xbf, 0x4c, 0xc3, 0x0f, 0x2e, 0x80, 0x74, 0xbf, 0x39, 0x3c, 0xf0, 0xa6, 0xb2, 0xe9, 0x3f, 0x41, 0x55, 0x1f, + 0x2c, 0xf5, 0xd2, 0x7e, 0x8c, 0xae, 0x4e, 0xaa, 0x61, 0x3c, 0xbc, 0x3f, 0xc4, 0xc7, 0x36, 0xdc, 0x23, 0xc8, 0xb8, + 0x52, 0xe2, 0x8a, 0x80, 0x18, 0x00, ]; const CR_DATA_ENCODED: [u8; 915] = [ - 0x00, 0xb2, 0x46, 0xa2, 0x56, 0x0d, 0x12, 0x94, 0xaa, 0xbd, 0x01, 0x07, 0xff, 0xfa, 0x34, 0x0c, - 0x5f, 0xf8, 0x0c, 0x12, 0x50, 0xaf, 0xd6, 0xd1, 0x89, 0x40, 0xa4, 0xff, 0xe0, 0xce, 0xc4, 0x49, - 0x25, 0x9d, 0xc1, 0xff, 0x7e, 0x60, 0x24, 0x5d, 0xcc, 0x10, 0xc0, 0xbe, 0x5a, 0x12, 0xd3, 0xc3, - 0xfe, 0x2d, 0x40, 0x7c, 0x28, 0x9e, 0x71, 0x01, 0xd2, 0x6e, 0x86, 0x0b, 0xc8, 0xf2, 0x9b, 0x45, - 0x08, 0x4c, 0x04, 0x52, 0x7e, 0xf2, 0x7e, 0xd9, 0xcc, 0x0b, 0x1c, 0x20, 0x80, 0xae, 0xaf, 0xfe, - 0xb0, 0x6d, 0x23, 0xf2, 0x41, 0xe3, 0x2e, 0x20, 0x11, 0x4b, 0x74, 0x89, 0xdd, 0xff, 0xa8, 0x38, - 0xa3, 0x95, 0x82, 0x15, 0xf0, 0xd0, 0xd5, 0xf1, 0x92, 0x8e, 0xee, 0xc0, 0x26, 0x81, 0xe9, 0x47, - 0xff, 0xee, 0x0d, 0x20, 0x34, 0x31, 0x3a, 0xef, 0x40, 0xb2, 0x29, 0x47, 0x19, 0x7f, 0x04, 0x27, - 0xf1, 0x90, 0x85, 0x09, 0x86, 0x7d, 0x42, 0xe2, 0x54, 0x5d, 0x5f, 0xe8, 0x0e, 0xd0, 0x2c, 0xaa, - 0x16, 0xbf, 0x04, 0xa7, 0xf8, 0xa2, 0x46, 0x0b, 0x08, 0x7a, 0x79, 0xe9, 0x28, 0x62, 0x7c, 0x33, - 0xf4, 0x0b, 0x14, 0x82, 0xfa, 0x61, 0xeb, 0xc1, 0xff, 0x4c, 0xa4, 0x11, 0x7f, 0x03, 0x68, 0x44, - 0xc1, 0x1f, 0x81, 0x3a, 0x6c, 0x77, 0x95, 0x02, 0x2b, 0x53, 0x80, 0xe5, 0x10, 0x1e, 0x90, 0xe8, - 0xfd, 0x1f, 0xa6, 0x40, 0x0b, 0x13, 0xff, 0x4e, 0x4d, 0x7f, 0x52, 0xe8, 0xaf, 0x9a, 0xc1, 0x80, - 0x0f, 0x0a, 0x14, 0x02, 0x3c, 0xc0, 0x09, 0x13, 0xe7, 0xdc, 0xc0, 0x1a, 0x28, 0xa0, 0xe4, 0x83, - 0x8e, 0x03, 0x88, 0xd5, 0xaf, 0x1a, 0xbd, 0x91, 0x00, 0xb7, 0x4e, 0xba, 0xdf, 0xf8, 0xdb, 0xcc, - 0x02, 0x43, 0xc4, 0x14, 0x2a, 0x3f, 0xc8, 0x0d, 0x09, 0x1c, 0x44, 0xf4, 0x01, 0x3c, 0xca, 0x28, - 0x56, 0x80, 0xa6, 0x85, 0x00, 0xea, 0x3e, 0x8f, 0xeb, 0x9f, 0xfc, 0x6e, 0x07, 0xc4, 0xe0, 0x30, - 0x78, 0xa0, 0x1e, 0x6f, 0x54, 0x78, 0x51, 0xff, 0x56, 0x4a, 0x01, 0x47, 0x02, 0x4c, 0x21, 0x3b, - 0xfb, 0x90, 0x0a, 0xcc, 0x1d, 0xd2, 0x47, 0xff, 0xfc, 0x70, 0x18, 0x22, 0xc0, 0xb9, 0x2f, 0xe9, - 0x7f, 0x91, 0xd3, 0x66, 0x2f, 0x80, 0x2c, 0x24, 0xa7, 0xfa, 0x84, 0x51, 0xab, 0x6b, 0x72, 0x00, - 0xab, 0x33, 0x04, 0xcf, 0x43, 0xff, 0x17, 0x51, 0x84, 0x0c, 0x01, 0x50, 0x10, 0x8f, 0x90, 0x34, - 0x41, 0x44, 0x84, 0x8e, 0x08, 0x19, 0x04, 0x48, 0x50, 0x84, 0x38, 0x3d, 0x02, 0x52, 0xf9, 0x7c, - 0xd2, 0xd0, 0x1f, 0x13, 0x42, 0xa0, 0x21, 0x41, 0xc4, 0x02, 0x02, 0x3d, 0x09, 0xc8, 0xfd, 0x60, - 0x7d, 0x35, 0x4f, 0x7f, 0xff, 0xf9, 0x97, 0x6a, 0xd8, 0x00, 0xc3, 0x83, 0x00, 0x09, 0x50, 0x4b, - 0x90, 0x8a, 0xc7, 0x94, 0x4d, 0x47, 0xc1, 0x62, 0x32, 0x28, 0x24, 0x09, 0x52, 0x2e, 0x2e, 0x1c, - 0x96, 0x44, 0xa0, 0x09, 0xc8, 0xce, 0x64, 0xa9, 0x1c, 0x19, 0x0e, 0x52, 0x3e, 0x3e, 0x19, 0x93, - 0xa0, 0x36, 0x26, 0x22, 0x08, 0x9a, 0x00, 0xdd, 0x66, 0x3a, 0x93, 0xd5, 0x89, 0xd1, 0x40, 0x06, - 0xd4, 0xa8, 0x22, 0x73, 0x7b, 0x3d, 0x3f, 0xe3, 0x04, 0x94, 0xff, 0xff, 0xff, 0xff, 0x0c, 0x56, - 0x77, 0xac, 0xe0, 0xc4, 0x06, 0x1f, 0xb8, 0xa5, 0x80, 0xfd, 0x68, 0x1c, 0x32, 0x16, 0x03, 0xde, - 0x71, 0x2a, 0x3d, 0x14, 0x19, 0xbe, 0xc2, 0x88, 0xd9, 0x24, 0x92, 0x5f, 0xc5, 0x90, 0x0a, 0x85, - 0xc2, 0x3f, 0x87, 0x03, 0xa8, 0x26, 0x17, 0xc4, 0x06, 0x86, 0x12, 0x87, 0x76, 0x0a, 0x48, 0x16, - 0xed, 0x96, 0x93, 0xec, 0x1b, 0x30, 0x73, 0xe8, 0x1a, 0x3f, 0xff, 0x4d, 0xce, 0x40, 0xf3, 0x0c, - 0x51, 0x4b, 0x84, 0x9e, 0x67, 0x2b, 0x15, 0x40, 0x1a, 0xa0, 0xfc, 0x10, 0x0f, 0xd8, 0x81, 0x35, - 0x87, 0xff, 0x98, 0x0f, 0x40, 0x00, 0xba, 0xc0, 0x71, 0xe2, 0x00, 0x18, 0x28, 0xb3, 0x82, 0xcc, - 0x80, 0x6a, 0xa0, 0x43, 0xff, 0x2d, 0xd6, 0x04, 0x8a, 0x68, 0xff, 0xff, 0xff, 0xfc, 0x1a, 0xf3, - 0x1a, 0x2a, 0x06, 0xc0, 0x01, 0x40, 0x0c, 0x30, 0xc1, 0xd0, 0xd7, 0x4f, 0xcb, 0x74, 0x1f, 0x07, - 0xd3, 0xb4, 0x0d, 0x88, 0x98, 0xea, 0xda, 0x9f, 0xce, 0x2b, 0x3c, 0x55, 0xb3, 0x40, 0x14, 0xff, - 0xff, 0xff, 0xea, 0xdb, 0x9b, 0x92, 0xd8, 0x68, 0x08, 0x0b, 0x41, 0x09, 0x26, 0x40, 0x8c, 0xf1, - 0xb0, 0x9a, 0x98, 0xc0, 0x80, 0x8b, 0xf0, 0x3d, 0xe7, 0xec, 0x19, 0x68, 0x21, 0x03, 0x29, 0x7f, - 0xe1, 0x6d, 0x4c, 0x0f, 0x01, 0xd1, 0x51, 0x01, 0x1a, 0x50, 0x2a, 0x59, 0x27, 0x80, 0xc1, 0x6e, - 0x33, 0xf1, 0x80, 0xe1, 0x49, 0x08, 0xe9, 0x17, 0xff, 0xff, 0xff, 0x80, 0x5a, 0x10, 0x10, 0x36, - 0x5e, 0xca, 0xf8, 0x3a, 0x00, 0x1e, 0xb0, 0x06, 0x84, 0x01, 0xf3, 0x07, 0x1b, 0x4a, 0xc0, 0x1e, - 0x21, 0x43, 0x8e, 0xa5, 0x55, 0x77, 0xc7, 0x65, 0x7c, 0xc2, 0xdf, 0x5e, 0x0c, 0x42, 0x20, 0xd2, - 0x48, 0x61, 0xc8, 0x1c, 0x65, 0xf8, 0xfe, 0x4c, 0x88, 0x71, 0x1f, 0x82, 0x50, 0x81, 0xa3, 0x54, - 0x09, 0x13, 0x28, 0x52, 0xf5, 0xe0, 0x82, 0xc3, 0x06, 0x7f, 0xfa, 0x2c, 0xcf, 0xf8, 0xf4, 0x7f, - 0xff, 0xfd, 0x01, 0x49, 0xa4, 0xb8, 0xde, 0x62, 0x84, 0xfe, 0xed, 0x65, 0x1f, 0x3c, 0x3c, 0xb2, - 0x50, 0x76, 0x30, 0x5b, 0x03, 0xc0, 0x08, 0xa6, 0x64, 0x90, 0xc8, 0xcd, 0x14, 0x6e, 0x69, 0x46, - 0x7a, 0xc6, 0x1c, 0x87, 0xd7, 0x48, 0x7b, 0x49, 0x05, 0x2d, 0x5e, 0x7f, 0xcb, 0x67, 0xf0, 0xd9, - 0x0d, 0x1e, 0x9e, 0x53, 0xb7, 0x64, 0xa5, 0xa5, 0x10, 0x39, 0x06, 0x11, 0x3f, 0xb1, 0xa9, 0xa6, - 0xe8, 0x4d, 0x47, 0x77, 0xda, 0x43, 0x76, 0x89, 0x45, 0x09, 0x70, 0xc2, 0x38, 0x0f, 0x09, 0x6f, - 0xe7, 0x2d, 0x82, 0x35, 0x07, 0xfe, 0x64, 0x18, 0x2e, 0xb8, 0x04, 0x42, 0x54, 0x80, 0x43, 0x12, - 0x6c, 0x9a, 0x55, 0xc9, 0x0a, 0xa0, 0x79, 0x47, 0x52, 0x65, 0x2a, 0xff, 0x50, 0x11, 0xc9, 0x4e, - 0xfe, 0x5b, 0x30, 0xa4, 0xe8, 0x30, 0x63, 0xff, 0x21, 0x12, 0x1b, 0xdc, 0x1c, 0x01, 0x41, 0x51, - 0x1f, 0xff, 0xfa, 0xc3, 0xe3, 0x55, 0xf1, 0x66, 0xe2, 0xd5, 0x78, 0x5e, 0xfa, 0x4d, 0xf2, 0x61, - 0x01, 0x26, 0x15, 0xa9, 0xf9, 0xd9, 0x32, 0x41, 0x90, 0x36, 0x4e, 0xae, 0xe3, 0x0b, 0x16, 0x56, - 0x8c, 0x6e, 0x42, 0x5d, 0xd8, 0x1e, 0xfe, 0x1d, 0x40, 0x3a, 0x50, 0x9f, 0x09, 0x14, 0xeb, 0x6e, - 0x48, 0x7a, 0x91, 0x88, 0x7b, 0x7d, 0x8f, 0x72, 0x42, 0x39, 0xb0, 0x1c, 0x65, 0x18, 0x23, 0x8b, + 0x00, 0xb2, 0x46, 0xa2, 0x56, 0x0d, 0x12, 0x94, 0xaa, 0xbd, 0x01, 0x07, 0xff, 0xfa, 0x34, 0x0c, 0x5f, 0xf8, 0x0c, + 0x12, 0x50, 0xaf, 0xd6, 0xd1, 0x89, 0x40, 0xa4, 0xff, 0xe0, 0xce, 0xc4, 0x49, 0x25, 0x9d, 0xc1, 0xff, 0x7e, 0x60, + 0x24, 0x5d, 0xcc, 0x10, 0xc0, 0xbe, 0x5a, 0x12, 0xd3, 0xc3, 0xfe, 0x2d, 0x40, 0x7c, 0x28, 0x9e, 0x71, 0x01, 0xd2, + 0x6e, 0x86, 0x0b, 0xc8, 0xf2, 0x9b, 0x45, 0x08, 0x4c, 0x04, 0x52, 0x7e, 0xf2, 0x7e, 0xd9, 0xcc, 0x0b, 0x1c, 0x20, + 0x80, 0xae, 0xaf, 0xfe, 0xb0, 0x6d, 0x23, 0xf2, 0x41, 0xe3, 0x2e, 0x20, 0x11, 0x4b, 0x74, 0x89, 0xdd, 0xff, 0xa8, + 0x38, 0xa3, 0x95, 0x82, 0x15, 0xf0, 0xd0, 0xd5, 0xf1, 0x92, 0x8e, 0xee, 0xc0, 0x26, 0x81, 0xe9, 0x47, 0xff, 0xee, + 0x0d, 0x20, 0x34, 0x31, 0x3a, 0xef, 0x40, 0xb2, 0x29, 0x47, 0x19, 0x7f, 0x04, 0x27, 0xf1, 0x90, 0x85, 0x09, 0x86, + 0x7d, 0x42, 0xe2, 0x54, 0x5d, 0x5f, 0xe8, 0x0e, 0xd0, 0x2c, 0xaa, 0x16, 0xbf, 0x04, 0xa7, 0xf8, 0xa2, 0x46, 0x0b, + 0x08, 0x7a, 0x79, 0xe9, 0x28, 0x62, 0x7c, 0x33, 0xf4, 0x0b, 0x14, 0x82, 0xfa, 0x61, 0xeb, 0xc1, 0xff, 0x4c, 0xa4, + 0x11, 0x7f, 0x03, 0x68, 0x44, 0xc1, 0x1f, 0x81, 0x3a, 0x6c, 0x77, 0x95, 0x02, 0x2b, 0x53, 0x80, 0xe5, 0x10, 0x1e, + 0x90, 0xe8, 0xfd, 0x1f, 0xa6, 0x40, 0x0b, 0x13, 0xff, 0x4e, 0x4d, 0x7f, 0x52, 0xe8, 0xaf, 0x9a, 0xc1, 0x80, 0x0f, + 0x0a, 0x14, 0x02, 0x3c, 0xc0, 0x09, 0x13, 0xe7, 0xdc, 0xc0, 0x1a, 0x28, 0xa0, 0xe4, 0x83, 0x8e, 0x03, 0x88, 0xd5, + 0xaf, 0x1a, 0xbd, 0x91, 0x00, 0xb7, 0x4e, 0xba, 0xdf, 0xf8, 0xdb, 0xcc, 0x02, 0x43, 0xc4, 0x14, 0x2a, 0x3f, 0xc8, + 0x0d, 0x09, 0x1c, 0x44, 0xf4, 0x01, 0x3c, 0xca, 0x28, 0x56, 0x80, 0xa6, 0x85, 0x00, 0xea, 0x3e, 0x8f, 0xeb, 0x9f, + 0xfc, 0x6e, 0x07, 0xc4, 0xe0, 0x30, 0x78, 0xa0, 0x1e, 0x6f, 0x54, 0x78, 0x51, 0xff, 0x56, 0x4a, 0x01, 0x47, 0x02, + 0x4c, 0x21, 0x3b, 0xfb, 0x90, 0x0a, 0xcc, 0x1d, 0xd2, 0x47, 0xff, 0xfc, 0x70, 0x18, 0x22, 0xc0, 0xb9, 0x2f, 0xe9, + 0x7f, 0x91, 0xd3, 0x66, 0x2f, 0x80, 0x2c, 0x24, 0xa7, 0xfa, 0x84, 0x51, 0xab, 0x6b, 0x72, 0x00, 0xab, 0x33, 0x04, + 0xcf, 0x43, 0xff, 0x17, 0x51, 0x84, 0x0c, 0x01, 0x50, 0x10, 0x8f, 0x90, 0x34, 0x41, 0x44, 0x84, 0x8e, 0x08, 0x19, + 0x04, 0x48, 0x50, 0x84, 0x38, 0x3d, 0x02, 0x52, 0xf9, 0x7c, 0xd2, 0xd0, 0x1f, 0x13, 0x42, 0xa0, 0x21, 0x41, 0xc4, + 0x02, 0x02, 0x3d, 0x09, 0xc8, 0xfd, 0x60, 0x7d, 0x35, 0x4f, 0x7f, 0xff, 0xf9, 0x97, 0x6a, 0xd8, 0x00, 0xc3, 0x83, + 0x00, 0x09, 0x50, 0x4b, 0x90, 0x8a, 0xc7, 0x94, 0x4d, 0x47, 0xc1, 0x62, 0x32, 0x28, 0x24, 0x09, 0x52, 0x2e, 0x2e, + 0x1c, 0x96, 0x44, 0xa0, 0x09, 0xc8, 0xce, 0x64, 0xa9, 0x1c, 0x19, 0x0e, 0x52, 0x3e, 0x3e, 0x19, 0x93, 0xa0, 0x36, + 0x26, 0x22, 0x08, 0x9a, 0x00, 0xdd, 0x66, 0x3a, 0x93, 0xd5, 0x89, 0xd1, 0x40, 0x06, 0xd4, 0xa8, 0x22, 0x73, 0x7b, + 0x3d, 0x3f, 0xe3, 0x04, 0x94, 0xff, 0xff, 0xff, 0xff, 0x0c, 0x56, 0x77, 0xac, 0xe0, 0xc4, 0x06, 0x1f, 0xb8, 0xa5, + 0x80, 0xfd, 0x68, 0x1c, 0x32, 0x16, 0x03, 0xde, 0x71, 0x2a, 0x3d, 0x14, 0x19, 0xbe, 0xc2, 0x88, 0xd9, 0x24, 0x92, + 0x5f, 0xc5, 0x90, 0x0a, 0x85, 0xc2, 0x3f, 0x87, 0x03, 0xa8, 0x26, 0x17, 0xc4, 0x06, 0x86, 0x12, 0x87, 0x76, 0x0a, + 0x48, 0x16, 0xed, 0x96, 0x93, 0xec, 0x1b, 0x30, 0x73, 0xe8, 0x1a, 0x3f, 0xff, 0x4d, 0xce, 0x40, 0xf3, 0x0c, 0x51, + 0x4b, 0x84, 0x9e, 0x67, 0x2b, 0x15, 0x40, 0x1a, 0xa0, 0xfc, 0x10, 0x0f, 0xd8, 0x81, 0x35, 0x87, 0xff, 0x98, 0x0f, + 0x40, 0x00, 0xba, 0xc0, 0x71, 0xe2, 0x00, 0x18, 0x28, 0xb3, 0x82, 0xcc, 0x80, 0x6a, 0xa0, 0x43, 0xff, 0x2d, 0xd6, + 0x04, 0x8a, 0x68, 0xff, 0xff, 0xff, 0xfc, 0x1a, 0xf3, 0x1a, 0x2a, 0x06, 0xc0, 0x01, 0x40, 0x0c, 0x30, 0xc1, 0xd0, + 0xd7, 0x4f, 0xcb, 0x74, 0x1f, 0x07, 0xd3, 0xb4, 0x0d, 0x88, 0x98, 0xea, 0xda, 0x9f, 0xce, 0x2b, 0x3c, 0x55, 0xb3, + 0x40, 0x14, 0xff, 0xff, 0xff, 0xea, 0xdb, 0x9b, 0x92, 0xd8, 0x68, 0x08, 0x0b, 0x41, 0x09, 0x26, 0x40, 0x8c, 0xf1, + 0xb0, 0x9a, 0x98, 0xc0, 0x80, 0x8b, 0xf0, 0x3d, 0xe7, 0xec, 0x19, 0x68, 0x21, 0x03, 0x29, 0x7f, 0xe1, 0x6d, 0x4c, + 0x0f, 0x01, 0xd1, 0x51, 0x01, 0x1a, 0x50, 0x2a, 0x59, 0x27, 0x80, 0xc1, 0x6e, 0x33, 0xf1, 0x80, 0xe1, 0x49, 0x08, + 0xe9, 0x17, 0xff, 0xff, 0xff, 0x80, 0x5a, 0x10, 0x10, 0x36, 0x5e, 0xca, 0xf8, 0x3a, 0x00, 0x1e, 0xb0, 0x06, 0x84, + 0x01, 0xf3, 0x07, 0x1b, 0x4a, 0xc0, 0x1e, 0x21, 0x43, 0x8e, 0xa5, 0x55, 0x77, 0xc7, 0x65, 0x7c, 0xc2, 0xdf, 0x5e, + 0x0c, 0x42, 0x20, 0xd2, 0x48, 0x61, 0xc8, 0x1c, 0x65, 0xf8, 0xfe, 0x4c, 0x88, 0x71, 0x1f, 0x82, 0x50, 0x81, 0xa3, + 0x54, 0x09, 0x13, 0x28, 0x52, 0xf5, 0xe0, 0x82, 0xc3, 0x06, 0x7f, 0xfa, 0x2c, 0xcf, 0xf8, 0xf4, 0x7f, 0xff, 0xfd, + 0x01, 0x49, 0xa4, 0xb8, 0xde, 0x62, 0x84, 0xfe, 0xed, 0x65, 0x1f, 0x3c, 0x3c, 0xb2, 0x50, 0x76, 0x30, 0x5b, 0x03, + 0xc0, 0x08, 0xa6, 0x64, 0x90, 0xc8, 0xcd, 0x14, 0x6e, 0x69, 0x46, 0x7a, 0xc6, 0x1c, 0x87, 0xd7, 0x48, 0x7b, 0x49, + 0x05, 0x2d, 0x5e, 0x7f, 0xcb, 0x67, 0xf0, 0xd9, 0x0d, 0x1e, 0x9e, 0x53, 0xb7, 0x64, 0xa5, 0xa5, 0x10, 0x39, 0x06, + 0x11, 0x3f, 0xb1, 0xa9, 0xa6, 0xe8, 0x4d, 0x47, 0x77, 0xda, 0x43, 0x76, 0x89, 0x45, 0x09, 0x70, 0xc2, 0x38, 0x0f, + 0x09, 0x6f, 0xe7, 0x2d, 0x82, 0x35, 0x07, 0xfe, 0x64, 0x18, 0x2e, 0xb8, 0x04, 0x42, 0x54, 0x80, 0x43, 0x12, 0x6c, + 0x9a, 0x55, 0xc9, 0x0a, 0xa0, 0x79, 0x47, 0x52, 0x65, 0x2a, 0xff, 0x50, 0x11, 0xc9, 0x4e, 0xfe, 0x5b, 0x30, 0xa4, + 0xe8, 0x30, 0x63, 0xff, 0x21, 0x12, 0x1b, 0xdc, 0x1c, 0x01, 0x41, 0x51, 0x1f, 0xff, 0xfa, 0xc3, 0xe3, 0x55, 0xf1, + 0x66, 0xe2, 0xd5, 0x78, 0x5e, 0xfa, 0x4d, 0xf2, 0x61, 0x01, 0x26, 0x15, 0xa9, 0xf9, 0xd9, 0x32, 0x41, 0x90, 0x36, + 0x4e, 0xae, 0xe3, 0x0b, 0x16, 0x56, 0x8c, 0x6e, 0x42, 0x5d, 0xd8, 0x1e, 0xfe, 0x1d, 0x40, 0x3a, 0x50, 0x9f, 0x09, + 0x14, 0xeb, 0x6e, 0x48, 0x7a, 0x91, 0x88, 0x7b, 0x7d, 0x8f, 0x72, 0x42, 0x39, 0xb0, 0x1c, 0x65, 0x18, 0x23, 0x8b, 0x60, 0x30, 0x00, ]; const Y_DATA_DECODED: [i16; 4096] = [ - 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 2, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, - 0, 0, 0, 0, 0, 0, 0, 0, -3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, -2, 4, - -5, -1, 0, 0, 0, 0, 0, 0, -1, -3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3, 0, 3, 0, 0, 0, 0, 0, 0, -1, - 4, 4, -5, -1, 0, 0, 0, 0, 0, 0, -2, 5, 0, 0, 0, 0, 0, 0, 2, 1, 0, 2, -5, -4, 1, 0, 0, 0, 0, 0, - 0, 1, 3, -1, 5, 0, -1, 0, 0, 0, 0, 0, -2, -2, -3, 0, 0, 0, 0, 0, 3, 0, 0, 7, 0, -4, 0, 0, 0, 0, - 0, 0, 0, 0, -1, 0, -1, 2, -1, 0, 0, 0, 0, 0, -3, 1, 5, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, 7, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, -2, 0, 0, 0, 0, 0, 1, 0, -9, -3, 5, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, 0, 0, 0, 0, 0, 0, 6, -2, - -8, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, -3, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, - 5, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, -1, 2, 0, 0, 1, 0, 0, - -1, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3, -2, 0, 0, 0, 0, 0, 3, -1, 0, -1, 0, 1, 0, 0, 0, - 1, 2, -1, 0, -5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3, -4, 0, 0, 0, 0, 0, -1, -6, 1, 0, -1, 0, 0, - 0, 0, 0, 0, 0, 6, 0, -1, 0, 1, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -5, 0, 0, 0, 0, - 0, 0, 0, 0, 0, -1, -1, 1, 10, 0, 0, 0, -1, 1, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1, -5, -5, 3, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, -1, -2, 0, - 0, 0, -1, 0, 0, 0, 0, 0, 0, 3, -1, -7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -6, 0, 0, 0, 0, 0, 0, - -8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 4, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 6, -1, 0, 0, 0, 0, - -1, 7, -1, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, -3, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 0, 0, - 0, 0, 0, 4, 1, 2, -2, -2, 0, -1, 0, 0, 0, 0, 1, -1, -7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -6, 0, - 0, 0, 0, 0, -1, -10, 3, 1, 2, 0, -2, 1, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 3, - -2, 0, 0, 0, 0, 0, 6, -8, -2, 0, -2, 1, 0, 0, -1, -1, -1, 1, 1, 1, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 4, 1, 0, 0, 0, 0, 0, 3, 2, 0, 1, 0, 0, 1, 1, 0, 0, 1, -2, 5, -3, 2, 0, 0, 0, 0, 1, 0, 0, - 0, 0, 0, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, -3, 0, 1, 0, 0, 1, 1, 0, - 0, 0, 0, 0, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, -1, -1, 0, - 0, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, - 1, 1, 1, -2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, - 0, -2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, -1, 0, - 0, -1, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, 0, 0, 0, 0, -1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -2, -8, 2, 0, 0, 0, 0, 0, 0, 0, -1, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, -2, 4, 4, -1, 0, 0, 0, 0, 0, 0, - -1, 3, -1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 3, 3, -7, -1, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 6, 3, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -8, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -2, -2, 2, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, -5, -3, -4, -6, -6, 7, 1, 1, -1, 0, 0, 0, 0, 0, 0, 0, -1, -2, - -3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, -1, 0, -2, -3, 1, 1, -8, 6, 0, -1, 1, 0, 0, 0, 0, 1, - 1, 0, 0, 6, -3, -1, 0, 0, 0, 0, 0, -1, 5, 2, -6, -2, 0, 0, 0, 2, 7, -6, -1, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, -1, -1, 1, 6, 0, 0, 0, 0, 0, 0, -2, 1, 0, 0, 0, 0, 0, 0, 0, -1, 6, -1, 1, -6, 7, - 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, -1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, - -2, 0, -8, 6, 6, 4, 3, 3, 4, -1, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, - -1, -1, 7, -8, 0, 1, -2, -4, -3, -1, 1, -3, -4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, - 1, -3, -5, 0, 1, 0, 0, 8, -1, -7, -9, -7, -2, 6, 3, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -1, -1, 0, - 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, -1, 1, 0, 0, 1, -1, 0, 0, 0, 0, -1, 1, -1, 1, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, -1, 0, 0, 0, 0, 0, 0, 1, 1, 3, 3, - 0, 1, 1, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 1, - -4, -5, -8, -6, -4, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 3, - -9, -5, 10, 2, 2, 0, -1, 2, 6, -4, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -1, 2, -1, -1, 1, 0, 0, 0, 0, 0, -1, 4, -2, -1, 1, -1, 1, -1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, -1, 1, 1, 0, 1, 0, -1, 3, - -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, 1, 1, 1, 0, -2, - -3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 4, 2, 1, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, -2, -1, 1, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, - 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, - 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, - -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, 1, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 2, 0, -1, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, - 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, -1, 0, - 0, -1, -1, 0, -5, 3, -2, 1, 0, -1, 0, 0, 0, 0, 1, -4, -1, 0, 0, 1, -5, -2, 1, 1, 1, 6, -2, -1, - 0, 1, -4, 21, 6, 0, 0, -5, -1, 1, 2, 4, 4, 3, 5, 0, 0, -1, 4, -8, -11, 0, 0, -2, 8, -1, 0, 3, - 1, -18, 16, 1, -1, 2, 0, -4, -4, 0, 0, -6, 1, -3, -1, 1, 14, -23, 1, 0, 1, 0, 1, -3, -1, 0, 0, - 0, -5, -2, 3, -1, 11, -8, -3, 0, 1, 0, -1, -3, 1, 0, 14, 1, 0, -1, 0, 0, -15, -2, 7, 1, -1, 1, - -3, -1, -1, -2, -14, 0, 1, 0, 0, 5, -18, 14, -7, -1, -1, -2, 13, 1, -1, 3, -14, 1, -2, 2, -1, - 11, -16, -2, 2, -1, 1, 0, -9, 0, -1, 19, 1, 1, 1, 0, 2, 2, 8, 0, 0, 0, 0, 1, -13, 0, 0, -6, -3, - -1, 0, -2, -2, 6, 13, 0, 0, 0, 1, 9, 1, 0, 0, -1, 2, 0, 0, 1, 0, -5, 0, 0, -1, 0, 0, 1, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 1, -2, -4, 1, 4, 4, -2, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -4, -1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -1, 1, 1, -1, -3, 0, -2, -3, 0, 0, - 0, 0, 0, 0, 0, -2, -2, 0, 1, -1, 2, 0, 0, 0, 1, -1, 1, 0, 1, -8, -1, 0, 0, 1, -3, 0, 0, -1, 3, - 0, 0, 1, -3, -3, -3, 3, -4, 0, 0, 0, 1, 0, 0, 3, -3, 3, -1, 1, 1, 0, 1, -5, 20, 0, 0, 0, -1, 2, - 7, -1, 0, 3, -2, 1, 0, 4, -1, 0, 1, 0, 1, -3, 2, -9, -12, -19, 10, -1, 2, 0, -1, 1, 9, -13, 0, - 0, 1, -4, -13, 0, 0, 16, -7, 0, 16, -3, 1, -2, -1, 2, -1, 0, 0, 0, 1, 1, 0, 0, 4, -3, -17, -14, - 2, -4, -14, -1, 0, -1, 1, 0, -1, 0, 1, 1, -2, 1, 3, 17, 13, 15, 9, -2, 0, 2, -3, 2, 2, -2, 2, - 1, -1, 1, 0, 0, -2, 5, 7, -1, 0, 1, 4, -7, -14, -7, 2, -2, 0, 0, 0, 0, 0, 0, -1, 1, 0, -3, 17, - 8, -1, 4, 8, -9, 6, 0, 1, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, -2, -2, 2, 0, 0, 5, -1, 0, 0, - -1, 0, 0, 0, 0, 0, 0, 0, -5, -4, -2, -6, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -7, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -4, -1, 0, 0, 0, 0, 0, 0, -1, -1, 1, -1, 0, - 0, 0, 0, 2, 2, 0, 0, 0, 3, 0, 0, 1, 1, -1, 1, 0, 0, 0, 0, -4, -8, 0, 0, 0, -1, 0, 0, -1, -1, - -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, -1, -3, 3, 0, 0, 0, -1, 1, 0, 0, 0, 0, 1, -2, 0, 0, -1, - 3, 1, 2, -1, 0, 0, 0, -2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, -3, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, -1, 2, 0, -1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, 0, -2, 0, 0, 2, 2, - 1, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, 2, 0, 0, 1, -2, 1, -1, -1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, -1, -1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -2, -2, 1, 0, -1, -2, 0, -1, 8, 6, - 3, 0, -1, -6, 0, 4, 5, -13, -53, -3, -2, 0, -2, -15, -7, 25, 8, 3, 7, -25, 26, -12, 5, 20, 6, - 7, -5, -13, 2, -2, 5, -54, 10, -2, 30, 3, -46, 11, -9, -1, -2, 1, -18, -2, 8, -3, 3, -5, -4, - -1, -5, -2, -3, 0, 1, -10, -3, 1, -1, 1, -5, -1, -3, 3, 7, -14, -13, 10, 0, -1, 11, 2, 5, 2, - 12, 0, -8, 24, -21, -49, -4, 10, 9, 31, -1, 5, 10, 1, 13, -57, -52, 9, 12, -6, -18, 5, 1, -3, - -4, -1, 13, 21, 8, 11, 3, 7, 7, -2, -3, -1, 0, 2, -14, -19, -7, 1, -1, -1, -3, -2, 0, 0, -1, - -1, -1, -7, 3, 4, 7, -1, -6, -14, -1, -7, 3, -12, -16, -2, 2, -1, -9, 1, 7, -21, 25, -4, -2, - -23, 2, 2, 3, -4, 22, -4, 5, -4, -2, -2, 4, -7, 0, 0, 3, 2, 17, -6, 7, 5, 3, 1, -5, 0, 1, 0, 0, - 6, 1, -4, 2, 0, -1, 1, -1, -14, 3, 0, -7, -4, 50, -13, -11, 34, -26, -23, -3, -1, 45, -4, 21, - 57, -17, -43, -17, -15, 27, -7, 25, 30, -23, 65, -13, -88, 45, -103, 85, 71, -116, 88, -30, - -57, 57, -101, 94, 25, 17, 5, 6, -107, 15, -31, 20, -26, 142, -18, -23, -95, 69, -7, -13, -9, - 5, 18, -38, -18, + 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, + 0, 0, 0, 0, 0, 0, 0, 0, -3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, -2, 4, -5, -1, 0, 0, 0, 0, + 0, 0, -1, -3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3, 0, 3, 0, 0, 0, 0, 0, 0, -1, 4, 4, -5, -1, 0, 0, 0, 0, 0, 0, -2, 5, + 0, 0, 0, 0, 0, 0, 2, 1, 0, 2, -5, -4, 1, 0, 0, 0, 0, 0, 0, 1, 3, -1, 5, 0, -1, 0, 0, 0, 0, 0, -2, -2, -3, 0, 0, 0, + 0, 0, 3, 0, 0, 7, 0, -4, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 2, -1, 0, 0, 0, 0, 0, -3, 1, 5, 0, 0, 0, 0, 0, 0, -1, + 0, 0, 1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, -2, 0, 0, 0, 0, 0, 1, 0, -9, -3, 5, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, 0, 0, 0, 0, 0, 0, 6, -2, -8, -1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, -3, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, 5, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, + 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, -1, 2, 0, 0, 1, 0, 0, -1, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3, -2, 0, 0, 0, + 0, 0, 3, -1, 0, -1, 0, 1, 0, 0, 0, 1, 2, -1, 0, -5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3, -4, 0, 0, 0, 0, 0, -1, -6, 1, + 0, -1, 0, 0, 0, 0, 0, 0, 0, 6, 0, -1, 0, 1, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -5, 0, 0, 0, 0, 0, 0, + 0, 0, 0, -1, -1, 1, 10, 0, 0, 0, -1, 1, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, + -5, -5, 3, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, -1, -2, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 3, -1, -7, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -6, 0, 0, 0, 0, 0, 0, -8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 4, 0, 0, 0, 0, 0, -1, + 0, 0, 0, 0, 6, -1, 0, 0, 0, 0, -1, 7, -1, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, -3, -1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3, 1, 0, 0, 0, 0, 0, 4, 1, 2, -2, -2, 0, -1, 0, 0, 0, 0, 1, -1, -7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -6, 0, 0, 0, + 0, 0, -1, -10, 3, 1, 2, 0, -2, 1, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 3, -2, 0, 0, 0, 0, 0, 6, -8, + -2, 0, -2, 1, 0, 0, -1, -1, -1, 1, 1, 1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0, 0, 0, 0, 0, 3, 2, 0, 1, 0, 0, 1, + 1, 0, 0, 1, -2, 5, -3, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, + 0, -3, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, -1, + -1, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, 1, 1, -2, + 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -2, 1, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, -1, 0, 0, -1, -1, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -2, -8, 2, 0, 0, 0, + 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, -2, 4, 4, -1, 0, 0, 0, 0, 0, 0, -1, 3, + -1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 3, 3, -7, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 6, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -2, -2, 2, -1, 0, 0, -1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, -5, -3, -4, -6, -6, 7, 1, 1, -1, 0, 0, 0, 0, 0, 0, 0, -1, -2, -3, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 1, 0, 2, -1, 0, -2, -3, 1, 1, -8, 6, 0, -1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 6, -3, -1, 0, 0, 0, 0, 0, -1, + 5, 2, -6, -2, 0, 0, 0, 2, 7, -6, -1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 1, 6, 0, 0, 0, 0, 0, 0, -2, 1, 0, 0, + 0, 0, 0, 0, 0, -1, 6, -1, 1, -6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, -1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, -1, -2, 0, -8, 6, 6, 4, 3, 3, 4, -1, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, -1, -1, + 7, -8, 0, 1, -2, -4, -3, -1, 1, -3, -4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, -3, -5, 0, 1, 0, 0, 8, + -1, -7, -9, -7, -2, 6, 3, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, -1, 1, 0, 0, 1, -1, 0, + 0, 0, 0, -1, 1, -1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, -1, 0, 0, 0, 0, 0, 0, 1, + 1, 3, 3, 0, 1, 1, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 1, -4, -5, -8, + -6, -4, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 3, -9, -5, 10, 2, 2, 0, -1, 2, 6, -4, + -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 2, -1, -1, 1, 0, 0, 0, 0, 0, -1, 4, -2, -1, 1, + -1, 1, -1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, -1, 1, 1, 0, 1, 0, -1, 3, + -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, 1, 1, 1, 0, -2, -3, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 4, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -1, 1, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, + 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, + 0, 0, 0, 0, -1, 0, 0, 1, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, -1, -1, 2, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, + 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, -1, 0, 0, -1, -1, 0, -5, 3, -2, 1, 0, -1, 0, 0, 0, 0, 1, -4, -1, 0, + 0, 1, -5, -2, 1, 1, 1, 6, -2, -1, 0, 1, -4, 21, 6, 0, 0, -5, -1, 1, 2, 4, 4, 3, 5, 0, 0, -1, 4, -8, -11, 0, 0, -2, + 8, -1, 0, 3, 1, -18, 16, 1, -1, 2, 0, -4, -4, 0, 0, -6, 1, -3, -1, 1, 14, -23, 1, 0, 1, 0, 1, -3, -1, 0, 0, 0, -5, + -2, 3, -1, 11, -8, -3, 0, 1, 0, -1, -3, 1, 0, 14, 1, 0, -1, 0, 0, -15, -2, 7, 1, -1, 1, -3, -1, -1, -2, -14, 0, 1, + 0, 0, 5, -18, 14, -7, -1, -1, -2, 13, 1, -1, 3, -14, 1, -2, 2, -1, 11, -16, -2, 2, -1, 1, 0, -9, 0, -1, 19, 1, 1, + 1, 0, 2, 2, 8, 0, 0, 0, 0, 1, -13, 0, 0, -6, -3, -1, 0, -2, -2, 6, 13, 0, 0, 0, 1, 9, 1, 0, 0, -1, 2, 0, 0, 1, 0, + -5, 0, 0, -1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, -2, -4, 1, 4, 4, -2, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, + -4, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -1, 1, 1, -1, -3, 0, -2, -3, 0, 0, 0, 0, 0, + 0, 0, -2, -2, 0, 1, -1, 2, 0, 0, 0, 1, -1, 1, 0, 1, -8, -1, 0, 0, 1, -3, 0, 0, -1, 3, 0, 0, 1, -3, -3, -3, 3, -4, + 0, 0, 0, 1, 0, 0, 3, -3, 3, -1, 1, 1, 0, 1, -5, 20, 0, 0, 0, -1, 2, 7, -1, 0, 3, -2, 1, 0, 4, -1, 0, 1, 0, 1, -3, + 2, -9, -12, -19, 10, -1, 2, 0, -1, 1, 9, -13, 0, 0, 1, -4, -13, 0, 0, 16, -7, 0, 16, -3, 1, -2, -1, 2, -1, 0, 0, 0, + 1, 1, 0, 0, 4, -3, -17, -14, 2, -4, -14, -1, 0, -1, 1, 0, -1, 0, 1, 1, -2, 1, 3, 17, 13, 15, 9, -2, 0, 2, -3, 2, 2, + -2, 2, 1, -1, 1, 0, 0, -2, 5, 7, -1, 0, 1, 4, -7, -14, -7, 2, -2, 0, 0, 0, 0, 0, 0, -1, 1, 0, -3, 17, 8, -1, 4, 8, + -9, 6, 0, 1, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, -2, -2, 2, 0, 0, 5, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, -5, -4, + -2, -6, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -4, -1, 0, 0, 0, 0, + 0, 0, -1, -1, 1, -1, 0, 0, 0, 0, 2, 2, 0, 0, 0, 3, 0, 0, 1, 1, -1, 1, 0, 0, 0, 0, -4, -8, 0, 0, 0, -1, 0, 0, -1, + -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, -1, -3, 3, 0, 0, 0, -1, 1, 0, 0, 0, 0, 1, -2, 0, 0, -1, 3, 1, 2, -1, 0, + 0, 0, -2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, -3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, 2, 0, -1, 1, 0, 0, 0, + 1, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, 0, -2, 0, 0, 2, 2, 1, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, 2, 0, 0, + 1, -2, 1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, + 1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -2, -2, 1, 0, -1, -2, 0, -1, 8, 6, 3, + 0, -1, -6, 0, 4, 5, -13, -53, -3, -2, 0, -2, -15, -7, 25, 8, 3, 7, -25, 26, -12, 5, 20, 6, 7, -5, -13, 2, -2, 5, + -54, 10, -2, 30, 3, -46, 11, -9, -1, -2, 1, -18, -2, 8, -3, 3, -5, -4, -1, -5, -2, -3, 0, 1, -10, -3, 1, -1, 1, -5, + -1, -3, 3, 7, -14, -13, 10, 0, -1, 11, 2, 5, 2, 12, 0, -8, 24, -21, -49, -4, 10, 9, 31, -1, 5, 10, 1, 13, -57, -52, + 9, 12, -6, -18, 5, 1, -3, -4, -1, 13, 21, 8, 11, 3, 7, 7, -2, -3, -1, 0, 2, -14, -19, -7, 1, -1, -1, -3, -2, 0, 0, + -1, -1, -1, -7, 3, 4, 7, -1, -6, -14, -1, -7, 3, -12, -16, -2, 2, -1, -9, 1, 7, -21, 25, -4, -2, -23, 2, 2, 3, -4, + 22, -4, 5, -4, -2, -2, 4, -7, 0, 0, 3, 2, 17, -6, 7, 5, 3, 1, -5, 0, 1, 0, 0, 6, 1, -4, 2, 0, -1, 1, -1, -14, 3, 0, + -7, -4, 50, -13, -11, 34, -26, -23, -3, -1, 45, -4, 21, 57, -17, -43, -17, -15, 27, -7, 25, 30, -23, 65, -13, -88, + 45, -103, 85, 71, -116, 88, -30, -57, 57, -101, 94, 25, 17, 5, 6, -107, 15, -31, 20, -26, 142, -18, -23, -95, 69, + -7, -13, -9, 5, 18, -38, -18, ]; const CB_DATA_DECODED: [i16; 4096] = [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, -1, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 9, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -6, 3, 2, 2, 0, 0, 0, 0, 0, 0, 0, - 1, -1, 1, 0, 0, 0, 0, 0, 0, 0, -8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -6, -2, -1, -1, 1, 0, 1, 0, 0, - 0, 3, -7, 7, -8, 1, 0, 0, 0, 0, 0, 5, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 6, 0, -10, 0, 0, 0, -1, - 0, 1, 0, 0, 0, -2, -5, -2, 0, 0, 0, 0, 0, 5, 4, 0, 0, 0, 0, 0, 0, 1, 1, 0, -2, 6, 9, -2, 0, 0, - 0, 0, 0, 0, 0, 1, 0, 2, 6, 0, 0, 0, 0, 0, -1, -6, -2, -2, 0, 0, 0, 0, 0, 1, 0, 0, -7, 0, 5, 1, - 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 2, -6, 0, 4, 0, 0, 0, 0, 0, 1, -1, 1, 0, -1, - -7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -9, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, -2, 0, 0, 0, 0, 1, 1, 0, 6, - 3, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, -1, -2, -1, 0, 0, 0, 0, 0, 0, - -4, 1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, -8, 1, 0, 1, 0, 0, 0, 0, 0, 1, - 0, -3, -1, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -8, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0, - 0, 0, 1, 0, 0, -4, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -5, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, -1, 1, 0, 3, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, -3, 0, 0, 0, 0, 0, -1, 1, 0, 0, -1, 0, -1, 0, 1, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, -5, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, -2, 0, 0, 0, 0, 0, 0, -2, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, -1, 3, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, -2, 1, 4, 0, 0, 0, 0, 0, 2, 0, 0, 0, -1, -1, 10, 0, 0, 0, 0, 0, 0, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -2, 0, 0, 0, 0, 0, -2, 2, 0, 0, 0, -10, 1, 0, 0, 0, 0, 0, - -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, -4, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, -3, -1, 0, 0, 0, - 0, 0, -1, 0, -1, 1, 1, 0, 0, 0, 0, 0, 0, -1, 1, 6, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, 12, 0, 0, - 0, 0, 0, 0, 1, -1, 0, -1, 0, 1, 0, -1, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -7, 5, - 0, 0, 0, 0, 0, -1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, -1, -8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - -11, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 5, -4, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -2, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, -1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, -10, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 3, 0, 1, 0, 0, 0, 0, - 1, -2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, - -1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - -2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 2, 4, 5, 2, -1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 7, 4, -8, -7, -4, -4, -6, - -7, 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, -3, -3, 1, 0, 0, 0, 0, - 0, 0, 1, -8, 6, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, -1, 1, 1, -6, 8, -1, 0, 0, 0, 0, 0, 2, 8, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, -8, 7, 7, 4, 5, 8, 1, -1, -7, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, -1, 1, 0, 0, 0, 0, 1, -2, -4, -4, -1, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, -2, 0, 0, 0, 0, 0, 1, - 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, -2, -1, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, -3, -3, -1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, - 0, 1, -4, -6, 4, 7, 5, 4, 6, 5, -5, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -1, -4, -3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1, 5, -1, 0, 1, 1, 1, 2, 0, -1, 5, -4, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 5, -3, 2, 0, - 0, 0, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0, -1, -3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, -1, -1, 1, - -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3, 1, -1, 3, -4, 0, 0, 0, 0, 0, 0, 0, 1, - -2, -7, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 5, -5, -4, -3, -3, - -7, -9, 3, 8, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, -4, 4, 0, -1, 1, - 3, 4, 2, -2, 4, 8, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, -1, 0, 0, -4, - 0, 5, 6, 7, 2, -9, -7, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, - 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, -2, 4, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, -1, -5, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 1, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, -1, 0, 0, 0, 0, 0, 1, 1, -2, 0, -1, 0, 1, -1, -1, 1, 0, 0, - 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, - 0, 1, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, -1, -3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, -1, 8, -7, 0, 0, 0, 0, 0, 0, 1, -2, -11, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2, 5, 0, -9, -10, -7, -4, 7, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -4, -2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, -2, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0, 2, 0, -1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, - 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, - 0, 0, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, - 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, - -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, - 0, 2, 0, -1, -2, 1, 1, -2, 0, 0, 0, 0, 0, 0, 1, 1, -2, -8, -1, 1, 0, -1, -5, 9, 2, 0, 0, -1, 2, - 0, 0, 0, 1, -17, 0, 0, -1, -1, -18, 20, -1, 1, 0, 5, -8, 8, 0, 0, 17, 1, 0, 0, 2, 3, -6, -10, - 3, -1, 1, 0, 3, 32, 0, -1, 5, 5, -1, 0, 5, 4, 14, -16, 1, 0, 0, -1, -17, 2, 0, -1, -17, -3, -2, - 1, -1, -9, 15, -1, 0, 1, -1, -1, -8, -4, 0, 1, 0, 3, 1, -1, 1, -6, 3, 2, 0, 2, -1, 2, 11, 0, 0, - -3, 0, 1, 1, 0, 0, 7, 1, -3, 0, -1, -4, 0, 4, 0, 0, 3, 0, 0, 0, 0, -2, 10, -7, 4, 0, -1, 3, - -24, -2, 0, -1, 4, 0, 2, -1, 0, -5, 10, 2, -1, -3, 4, -1, 11, -1, 0, -4, 1, 0, -1, 0, 0, -2, - -6, 0, 0, 1, -2, 0, 24, 0, 0, 1, 2, 1, 0, 0, 0, -1, -17, 0, 0, 0, -1, -26, 0, 0, 0, 0, -1, 0, - 0, 0, 0, 22, -2, -1, 0, 0, 2, -7, -3, 0, 0, 0, 0, 0, 0, 0, 0, -1, 2, 1, -1, -2, -4, 8, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, -2, 0, 10, 6, -2, 0, 0, 0, 0, 0, - 0, 0, 1, 1, 0, 2, -3, -19, -9, -13, -13, 14, -2, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, -1, 0, 0, 0, -2, - 14, 2, -2, -2, 6, 8, 0, 0, 1, -2, 0, 0, 0, 1, 0, 1, 0, -17, -6, 1, -8, -9, 0, 0, 1, -1, 0, 1, - 1, -1, 0, 0, 0, -2, -1, 0, 0, -2, 0, 0, 1, 1, -1, -8, 0, 3, -1, 0, 1, 1, 3, 1, 0, 0, 0, 1, -7, - 13, 13, 12, 14, -7, 0, 0, 0, -1, 1, 9, -7, 2, 0, 0, -1, 2, 0, 0, -8, 4, 0, -9, 2, 2, 0, 1, -12, - 3, 0, 0, 0, 0, 0, 0, 0, -2, 1, 9, 10, -4, 2, 35, 4, 0, 0, 0, 0, 1, 0, 0, -1, 1, 0, -1, -10, -8, - -21, -13, 3, 0, -1, 1, -1, 0, 1, -1, 0, 1, 0, 1, 1, -5, 14, 14, -2, 0, 0, 0, 2, 3, 2, 0, 1, 1, - 0, 1, 0, 0, 1, 1, -1, 0, 0, -3, -1, 0, 0, -2, 2, 0, -1, -1, 0, 0, -1, 1, 0, 0, 0, -1, 0, 0, 0, - 0, 2, -12, -4, 1, 1, 2, -20, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3, 19, 16, 15, 24, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 4, -1, 0, 0, -1, 3, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 3, 0, 0, -1, - 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 2, 2, -1, 1, -1, 3, 4, 0, 0, 1, 2, 0, 0, 0, 1, 2, -1, 0, 0, - 0, 0, 1, 0, 0, 0, -2, -1, -1, 0, 0, 1, 1, 0, 0, 0, 0, 0, -1, 0, 0, 1, -2, 0, 0, 0, 2, -2, 0, 0, - 0, -1, 1, -1, 4, 0, 0, 0, 0, 0, 0, 0, -2, 0, -1, 0, -1, -1, 1, -1, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -1, 0, 0, -1, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, -2, -2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 1, -2, 0, -2, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, -3, 0, 0, 0, 2, 6, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, -1, 0, -1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, - -9, -1, -2, 5, 1, 1, 0, 1, 33, -2, -2, 5, 1, 2, -3, -4, -14, -3, 2, 76, 4, 5, 17, 3, -37, 1, - -15, -8, 3, -1, 80, -5, 14, -2, -11, 2, 7, -16, 15, -2, 3, -2, 29, -2, 1, -51, -8, 6, -4, 3, 4, - 6, 4, 35, -1, -1, 1, -2, 8, -3, -7, 17, 1, 1, -4, 35, -4, 34, -5, 2, -1, 3, 0, 0, 2, 3, -17, - 46, 10, -2, 4, -9, -5, -2, 3, 4, 0, 1, 4, 28, 33, 2, -3, 14, -6, -1, 0, -4, -1, -7, 38, 60, -5, - -3, 2, 6, 1, 4, 4, -3, 1, -1, -3, -2, -7, -28, -5, -31, 8, 2, 0, 0, -8, 56, 85, 24, -3, 0, -10, - 3, -4, 4, 2, 1, 0, 1, 4, 2, 4, 15, 10, 6, -9, -1, -1, -4, 1, 5, 2, 0, 4, 1, 13, -3, 10, -11, - -4, 2, 7, -1, 0, -2, 1, -14, -3, 2, 2, 0, -1, -1, 3, 0, -5, -9, -4, -2, 2, -5, -28, 1, 7, 17, - 1, 0, 0, 0, -18, 5, 15, -6, 0, 55, -4, 34, -14, 18, -33, 7, -1, -16, 19, -109, -29, 19, 123, - 10, -6, -31, 13, -129, 32, 31, -43, 7, 9, 83, -29, -34, 15, 32, -44, -12, -18, 79, 31, -21, - -40, 58, -51, -33, 63, -8, 35, -31, -13, -10, -20, -44, 102, -11, 9, 2, 17, -136, 4, -58, 208, - -49, 6, 4, 11, -83, -38, 84, 54, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, -1, + 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 7, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -6, 3, 2, 2, 0, 0, 0, 0, 0, 0, 0, + 1, -1, 1, 0, 0, 0, 0, 0, 0, 0, -8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -6, -2, -1, -1, 1, 0, 1, 0, 0, 0, 3, -7, 7, -8, 1, + 0, 0, 0, 0, 0, 5, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 6, 0, -10, 0, 0, 0, -1, 0, 1, 0, 0, 0, -2, -5, -2, 0, 0, 0, 0, + 0, 5, 4, 0, 0, 0, 0, 0, 0, 1, 1, 0, -2, 6, 9, -2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 6, 0, 0, 0, 0, 0, -1, -6, -2, -2, + 0, 0, 0, 0, 0, 1, 0, 0, -7, 0, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 2, -6, 0, 4, 0, 0, 0, 0, 0, + 1, -1, 1, 0, -1, -7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -9, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, -2, 0, 0, 0, 0, 1, 1, 0, 6, 3, + -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, -1, -2, -1, 0, 0, 0, 0, 0, 0, -4, 1, 6, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, -1, 9, 0, 0, 0, 0, 0, 0, -8, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, -3, -1, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -8, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 0, -4, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -5, 0, 0, 0, 0, + 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 3, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, -3, 0, 0, 0, 0, 0, -1, 1, 0, 0, -1, 0, -1, 0, 1, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, -5, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, -2, 0, 0, 0, 0, 0, 0, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 3, 2, + -1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, 1, 4, 0, 0, 0, 0, 0, 2, + 0, 0, 0, -1, -1, 10, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -2, 0, 0, 0, 0, 0, -2, 2, 0, 0, 0, + -10, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, -4, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, -3, -1, 0, 0, + 0, 0, 0, -1, 0, -1, 1, 1, 0, 0, 0, 0, 0, 0, -1, 1, 6, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, 12, 0, 0, 0, 0, 0, 0, 1, + -1, 0, -1, 0, 1, 0, -1, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -7, 5, 0, 0, 0, 0, 0, -1, 1, 1, 0, 1, 0, 0, + 0, 0, 0, 0, 0, 0, -1, -8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -11, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, + 0, -1, 5, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, -2, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, -1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, -10, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 3, 0, 1, 0, 0, 0, 0, 1, -2, 0, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 2, 4, 5, 2, -1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 7, 4, -8, -7, -4, -4, -6, -7, 7, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, -3, -3, 1, 0, 0, 0, 0, 0, 0, 1, -8, 6, -1, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 1, -6, 8, -1, 0, 0, 0, 0, 0, 2, 8, 2, 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, -8, 7, 7, 4, 5, 8, 1, -1, -7, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, -1, 1, 0, 0, 0, 0, 1, -2, -4, -4, -1, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, -2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -1, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3, -3, -1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, + 0, 0, 0, 0, 1, -4, -6, 4, 7, 5, 4, 6, 5, -5, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -1, -4, -3, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 5, -1, 0, 1, 1, 1, 2, 0, -1, 5, -4, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 5, -3, 2, 0, 0, 0, 0, 0, 0, -1, 0, 1, 0, 0, + 0, 0, -1, -3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, -1, -1, 1, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, -3, 1, -1, 3, -4, 0, 0, 0, 0, 0, 0, 0, 1, -2, -7, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, + 0, 5, -5, -4, -3, -3, -7, -9, 3, 8, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, -4, 4, 0, -1, + 1, 3, 4, 2, -2, 4, 8, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, -1, 0, 0, -4, 0, 5, 6, 7, 2, -9, + -7, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, -2, 4, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -5, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, -1, 0, 0, 0, 0, 0, 1, 1, -2, 0, -1, 0, 1, -1, -1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, -1, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 8, -7, 0, 0, 0, 0, 0, 0, 1, -2, -11, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 5, 0, -9, -10, -7, -4, 7, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, -4, -2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, -2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, 0, + 0, 0, 2, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, + -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 2, 0, -1, -2, 1, 1, -2, 0, + 0, 0, 0, 0, 0, 1, 1, -2, -8, -1, 1, 0, -1, -5, 9, 2, 0, 0, -1, 2, 0, 0, 0, 1, -17, 0, 0, -1, -1, -18, 20, -1, 1, 0, + 5, -8, 8, 0, 0, 17, 1, 0, 0, 2, 3, -6, -10, 3, -1, 1, 0, 3, 32, 0, -1, 5, 5, -1, 0, 5, 4, 14, -16, 1, 0, 0, -1, + -17, 2, 0, -1, -17, -3, -2, 1, -1, -9, 15, -1, 0, 1, -1, -1, -8, -4, 0, 1, 0, 3, 1, -1, 1, -6, 3, 2, 0, 2, -1, 2, + 11, 0, 0, -3, 0, 1, 1, 0, 0, 7, 1, -3, 0, -1, -4, 0, 4, 0, 0, 3, 0, 0, 0, 0, -2, 10, -7, 4, 0, -1, 3, -24, -2, 0, + -1, 4, 0, 2, -1, 0, -5, 10, 2, -1, -3, 4, -1, 11, -1, 0, -4, 1, 0, -1, 0, 0, -2, -6, 0, 0, 1, -2, 0, 24, 0, 0, 1, + 2, 1, 0, 0, 0, -1, -17, 0, 0, 0, -1, -26, 0, 0, 0, 0, -1, 0, 0, 0, 0, 22, -2, -1, 0, 0, 2, -7, -3, 0, 0, 0, 0, 0, + 0, 0, 0, -1, 2, 1, -1, -2, -4, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, -2, 0, 10, + 6, -2, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 2, -3, -19, -9, -13, -13, 14, -2, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, -1, 0, 0, 0, + -2, 14, 2, -2, -2, 6, 8, 0, 0, 1, -2, 0, 0, 0, 1, 0, 1, 0, -17, -6, 1, -8, -9, 0, 0, 1, -1, 0, 1, 1, -1, 0, 0, 0, + -2, -1, 0, 0, -2, 0, 0, 1, 1, -1, -8, 0, 3, -1, 0, 1, 1, 3, 1, 0, 0, 0, 1, -7, 13, 13, 12, 14, -7, 0, 0, 0, -1, 1, + 9, -7, 2, 0, 0, -1, 2, 0, 0, -8, 4, 0, -9, 2, 2, 0, 1, -12, 3, 0, 0, 0, 0, 0, 0, 0, -2, 1, 9, 10, -4, 2, 35, 4, 0, + 0, 0, 0, 1, 0, 0, -1, 1, 0, -1, -10, -8, -21, -13, 3, 0, -1, 1, -1, 0, 1, -1, 0, 1, 0, 1, 1, -5, 14, 14, -2, 0, 0, + 0, 2, 3, 2, 0, 1, 1, 0, 1, 0, 0, 1, 1, -1, 0, 0, -3, -1, 0, 0, -2, 2, 0, -1, -1, 0, 0, -1, 1, 0, 0, 0, -1, 0, 0, 0, + 0, 2, -12, -4, 1, 1, 2, -20, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3, 19, 16, 15, 24, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 6, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, -1, 0, 0, -1, 3, -2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 3, 0, 0, -1, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 2, 2, -1, 1, -1, 3, 4, 0, + 0, 1, 2, 0, 0, 0, 1, 2, -1, 0, 0, 0, 0, 1, 0, 0, 0, -2, -1, -1, 0, 0, 1, 1, 0, 0, 0, 0, 0, -1, 0, 0, 1, -2, 0, 0, + 0, 2, -2, 0, 0, 0, -1, 1, -1, 4, 0, 0, 0, 0, 0, 0, 0, -2, 0, -1, 0, -1, -1, 1, -1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -1, 0, 0, -1, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, -2, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, -2, + 0, -2, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2, -3, 0, 0, 0, 2, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, -9, -1, -2, 5, 1, 1, 0, 1, 33, -2, -2, 5, 1, 2, -3, -4, -14, -3, 2, 76, 4, 5, 17, + 3, -37, 1, -15, -8, 3, -1, 80, -5, 14, -2, -11, 2, 7, -16, 15, -2, 3, -2, 29, -2, 1, -51, -8, 6, -4, 3, 4, 6, 4, + 35, -1, -1, 1, -2, 8, -3, -7, 17, 1, 1, -4, 35, -4, 34, -5, 2, -1, 3, 0, 0, 2, 3, -17, 46, 10, -2, 4, -9, -5, -2, + 3, 4, 0, 1, 4, 28, 33, 2, -3, 14, -6, -1, 0, -4, -1, -7, 38, 60, -5, -3, 2, 6, 1, 4, 4, -3, 1, -1, -3, -2, -7, -28, + -5, -31, 8, 2, 0, 0, -8, 56, 85, 24, -3, 0, -10, 3, -4, 4, 2, 1, 0, 1, 4, 2, 4, 15, 10, 6, -9, -1, -1, -4, 1, 5, 2, + 0, 4, 1, 13, -3, 10, -11, -4, 2, 7, -1, 0, -2, 1, -14, -3, 2, 2, 0, -1, -1, 3, 0, -5, -9, -4, -2, 2, -5, -28, 1, 7, + 17, 1, 0, 0, 0, -18, 5, 15, -6, 0, 55, -4, 34, -14, 18, -33, 7, -1, -16, 19, -109, -29, 19, 123, 10, -6, -31, 13, + -129, 32, 31, -43, 7, 9, 83, -29, -34, 15, 32, -44, -12, -18, 79, 31, -21, -40, 58, -51, -33, 63, -8, 35, -31, -13, + -10, -20, -44, 102, -11, 9, 2, 17, -136, 4, -58, 208, -49, 6, 4, 11, -83, -38, 84, 54, ]; const CR_DATA_DECODED: [i16; 4096] = [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, 0, 1, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1, 0, 2, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1, 0, 0, 0, -13, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, -10, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, -4, -1, -1, 0, 0, 0, 0, - 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 2, 0, 0, 0, 0, 0, - 0, 0, 0, -1, 3, -3, 3, -1, 0, 0, 0, 0, 0, -7, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -6, 0, 4, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 0, 0, -7, -4, 0, 0, 0, 0, 0, 0, -2, -1, 0, 2, -6, -4, 1, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3, 0, 0, 0, 0, 0, 1, 9, 1, 2, 0, 0, 0, 0, 0, -2, 0, 0, 6, 0, -3, - -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3, 9, -1, -3, 0, 0, 0, 0, 0, 0, 1, 0, 0, - 1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, -12, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, - -6, -3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, - 4, -1, -6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -4, 0, 0, 0, 0, 0, 0, 13, -1, 0, 0, 0, 0, 0, 0, 0, - -1, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, -2, 0, 0, -1, 2, 0, 0, 0, - 0, 0, -1, 0, -1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, -1, 0, 0, -1, 0, 1, 0, - 0, 0, 0, 1, -1, 0, -3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -5, 0, 0, 0, 0, 0, 0, 2, 0, 0, -1, 0, - 0, 0, 0, 0, 0, 0, 4, 0, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, -1, -1, 1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, -3, -3, 2, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, -1, 0, 0, 0, 0, 0, 0, 1, - 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 2, 0, -5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -7, 0, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, -1, 0, 0, 0, 0, 0, - -2, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, -2, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 0, 0, 0, - 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, -1, -6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -8, 0, - 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, -4, - 0, 0, 0, 0, 0, -1, 2, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, - 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, -4, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, - -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -5, -2, 0, 0, 0, 1, 1, 0, 0, 0, 0, - 1, -7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 1, 0, -1, 0, 1, 0, 0, 0, - 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, 0, -1, 0, 0, 1, 0, -1, - 1, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, 1, - 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, - -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -3, -6, -6, -3, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -10, -5, 11, 9, 6, 5, 9, - 11, -11, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, 0, 0, 0, 0, 4, 4, -1, 0, 0, - 0, 0, 0, 0, -1, 11, -10, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, 0, 0, 0, -1, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -2, 0, 3, -4, 0, 0, 0, 0, 0, 0, -1, -4, -1, -1, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, -3, -3, -2, -2, -4, -1, 1, 3, 0, 0, 0, 0, 0, - 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, -1, 0, 0, 0, 0, -1, 1, 2, 2, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, - 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 2, 1, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, -1, 6, 8, -5, -7, -5, -4, -5, -4, 5, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, - 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -8, 1, 0, -1, 0, -1, -2, 0, 1, -6, 4, 0, -1, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 1, 0, -1, 0, 0, 0, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0, 1, 4, -4, 0, 0, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, -1, 1, -4, 5, 0, 0, 0, - 0, 0, 0, 0, 0, 1, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, -5, - 4, 4, 3, 3, 4, 4, -1, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, -1, 4, - -5, 0, 1, -1, -3, -3, -1, 1, -3, -5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -3, - 0, 1, 0, 0, 5, 0, -5, -6, -5, -1, 6, 4, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, - 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, - -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 1, 1, 1, - 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, -1, 2, 1, -2, -2, 1, 0, - -1, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, -1, 1, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, -4, 2, 0, 0, 0, 0, 0, 0, 0, 1, 7, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -2, -1, 5, 6, 4, 3, -5, -6, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, - 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, - 0, 1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, -1, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, -1, 1, -1, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, -4, 0, 1, 2, 0, -2, 3, 0, 0, 0, 0, 0, 0, -1, -1, 3, 13, -2, 1, -2, 2, 7, - -15, -1, 0, 0, 1, -1, 0, 0, 0, -3, 25, 2, -1, 0, 0, 20, -7, 1, -1, 0, -2, 6, -3, 0, 0, -20, 0, - -1, -1, -2, -4, 5, 5, -1, 0, -1, 1, -3, -17, 0, 1, -5, -7, 2, 0, -3, -3, -13, 12, 0, 0, 1, 0, - 7, -2, 0, 1, 28, 0, 1, -1, 2, 10, -16, 1, 0, 1, -1, 0, 3, 1, 0, -1, 0, -3, -2, 2, 0, 7, -5, -2, - 0, 0, 0, -1, -6, 0, 0, -2, 1, -3, -1, -1, 0, -10, -2, 4, 0, 0, 1, -1, -2, 0, 0, 3, -1, 0, 0, 1, - 3, -12, 9, -5, 0, 0, -2, 16, 1, 0, -1, 2, 0, -4, 2, 0, 7, -11, -2, 1, 0, -1, 0, -7, 0, 0, -3, - -1, 0, 1, -1, 0, 2, 6, 0, 0, 0, 0, 0, -16, 0, 0, 1, -1, -1, -1, 1, 0, 1, 12, 0, 0, 0, 0, 18, 0, - 0, 0, 0, 0, 0, 0, 0, 0, -14, 1, 0, 0, 0, -2, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, -1, 3, 1, 3, - -5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3, -1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, -13, -8, 3, 0, - 0, 0, 0, 0, 0, 0, -1, -1, 0, -3, 3, 27, 12, 19, 20, -21, 3, 0, 0, 0, 0, 0, -1, -1, 0, -1, 0, - -1, 0, 0, 0, 0, -5, -1, 1, 1, -3, -4, 0, 0, -1, 5, -1, 0, 0, -2, 0, -1, -2, 7, 2, 0, 5, 3, 0, - 0, -1, 0, -1, 0, -2, 1, -1, -1, 1, 1, -1, 0, -2, 7, 0, 0, -1, -1, 3, 5, 1, -2, 2, -1, 0, 0, 1, - 0, 0, 0, 0, -1, 11, -17, -14, -10, -14, 7, -1, 1, 0, 0, 0, 2, -3, 0, 0, 0, 3, 2, 0, 0, 9, -5, - 0, 11, -2, -1, -1, -2, 5, -1, 0, 0, 0, 0, 1, 0, 0, 3, -2, -11, -10, 2, -2, -18, -3, 0, 0, 0, - -1, -2, 0, 0, 0, -2, 1, 2, 11, 9, 12, 9, -2, 0, 0, 0, 1, -1, -3, 2, 0, -1, 0, 0, 0, 1, -3, -3, - 0, 0, 0, -1, 1, 2, 1, -4, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -4, -2, -1, -1, 0, 3, 1, 0, 0, 0, - 0, 0, -1, 0, 0, -1, 1, 0, 0, 0, 0, 0, 4, 3, 0, -1, 0, 14, -3, 0, 0, -1, 0, 0, 0, 0, 0, 0, 2, - -11, -11, -9, -15, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -6, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -6, 1, 0, -1, 2, -4, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, -1, 1, -1, 0, 0, 0, -1, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, -1, -2, - 0, 0, -2, -2, 0, 0, 0, -1, -2, 1, 0, 0, 0, 0, -2, -3, 0, 0, 3, 1, 1, 0, 0, -1, -1, 0, 0, 0, 0, - 0, 0, 0, 0, -1, 3, 0, 1, -1, -2, 2, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, -1, 0, -1, 2, 1, 2, -1, - 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - -1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 0, 0, 0, -1, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 13, 4, 5, -8, -2, 0, 1, -1, -43, -7, -3, -4, 1, -1, 1, 5, - 22, -1, -1, -54, -2, -2, -4, -4, 52, -5, 17, 7, 1, -3, -33, -4, -25, 1, 15, 3, 2, 2, -11, 4, - -14, 5, -34, 6, -1, 35, 6, 11, 4, -2, -5, -4, -7, -21, 1, -2, 0, 1, -6, 1, 3, -11, 0, -2, 6, - -45, 14, -45, 4, -1, 1, -3, 1, 1, -7, -7, 5, -19, -4, 2, -4, 8, 4, -1, 3, 0, 0, 2, -15, -27, - -36, -2, 5, -1, 14, 2, -5, 7, 0, 8, -39, -41, 6, 1, 4, -12, -6, 0, -2, -2, -1, -4, -5, -3, 6, - 14, -2, 22, -5, -2, -1, 0, 5, -33, -51, -15, 2, 0, 14, -1, 8, -5, -1, 0, 0, -1, -2, -5, -5, - -10, -5, -3, 2, 2, 5, 5, -4, -8, -1, 0, -3, 2, -13, 5, -14, 15, -1, -1, -12, 1, -1, 2, -3, 15, - -1, 3, -3, 1, 5, -4, -2, 0, 2, 6, 2, -4, 0, 2, 15, 0, -5, -12, 0, 0, 0, 0, 12, -3, -10, 4, 0, - -68, 7, -44, 27, -28, 42, -3, 3, 1, -23, 147, 12, 8, -162, 6, 3, 10, -12, 147, -60, -13, -24, - -1, 1, -44, 40, 33, -24, -22, 48, -14, -22, -38, -3, -1, 61, -68, 60, -4, -37, 1, -18, 2, 29, - 29, 8, 18, -74, 10, 5, -17, -22, 108, -16, 33, -124, 22, -7, 0, -4, 48, 26, -46, -33, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, + 0, 1, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1, 0, 2, + -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -13, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, -10, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, -4, -1, -1, 0, 0, 0, 0, 0, + 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, -1, 3, -3, 3, + -1, 0, 0, 0, 0, 0, -7, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -6, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 0, + 0, -7, -4, 0, 0, 0, 0, 0, 0, -2, -1, 0, 2, -6, -4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3, 0, 0, 0, 0, 0, 1, 9, 1, 2, + 0, 0, 0, 0, 0, -2, 0, 0, 6, 0, -3, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3, 9, -1, -3, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, -12, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, -6, + -3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 4, -1, -6, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, -4, 0, 0, 0, 0, 0, 0, 13, -1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 4, 0, 0, 0, 0, 0, 0, 0, -2, 0, 0, -1, 2, 0, 0, 0, 0, 0, -1, 0, -1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, + 0, 0, 0, -1, 0, 0, -1, 0, 1, 0, 0, 0, 0, 1, -1, 0, -3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -5, 0, 0, 0, 0, 0, 0, 2, + 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 4, 0, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, -1, -1, 1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, + -3, -3, 2, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, -1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 2, 0, -5, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, -7, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 6, -1, 0, 0, 0, 0, 0, -2, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, -2, -1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, + 0, 0, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, -1, -6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -8, 0, 0, 0, 0, 0, + 1, 2, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, -4, 0, 0, 0, 0, 0, -1, 2, 0, 0, -1, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, + 0, 0, -4, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -5, -2, 0, + 0, 0, 1, 1, 0, 0, 0, 0, 1, -7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 1, 0, -1, 0, 1, 0, + 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, 0, -1, 0, 0, 1, 0, -1, 1, 1, -1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -3, -6, -6, -3, 1, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -10, -5, 11, 9, 6, 5, 9, 11, -11, -1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, 0, 0, 0, 0, 4, 4, -1, 0, 0, 0, 0, 0, 0, -1, 11, -10, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -2, 0, 3, -4, 0, 0, 0, 0, 0, 0, -1, -4, -1, -1, 0, + 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, -3, -3, -2, -2, -4, -1, 1, 3, 0, 0, 0, 0, 0, 0, + 0, -1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, -1, 0, 0, 0, 0, -1, 1, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 2, 1, -1, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 6, 8, -5, -7, -5, -4, -5, -4, 5, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, -2, -8, 1, 0, -1, 0, -1, -2, 0, 1, -6, 4, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0, + 0, 0, -1, 0, 1, 0, 0, 0, 0, 1, 4, -4, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 4, -1, 1, -4, 5, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, -1, -1, 0, -5, 4, 4, 3, 3, 4, 4, -1, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, -1, + 4, -5, 0, 1, -1, -3, -3, -1, 1, -3, -5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -3, 0, 1, 0, 0, 5, + 0, -5, -6, -5, -1, 6, 4, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, -1, 0, + 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 1, 1, 1, + 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, -1, 2, 1, -2, -2, 1, 0, -1, 0, -1, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, -1, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -4, 2, 0, 0, 0, 0, 0, 0, 0, 1, 7, -2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -2, -1, 5, 6, 4, 3, -5, -6, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, -1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, -1, 1, -1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, -4, + 0, 1, 2, 0, -2, 3, 0, 0, 0, 0, 0, 0, -1, -1, 3, 13, -2, 1, -2, 2, 7, -15, -1, 0, 0, 1, -1, 0, 0, 0, -3, 25, 2, -1, + 0, 0, 20, -7, 1, -1, 0, -2, 6, -3, 0, 0, -20, 0, -1, -1, -2, -4, 5, 5, -1, 0, -1, 1, -3, -17, 0, 1, -5, -7, 2, 0, + -3, -3, -13, 12, 0, 0, 1, 0, 7, -2, 0, 1, 28, 0, 1, -1, 2, 10, -16, 1, 0, 1, -1, 0, 3, 1, 0, -1, 0, -3, -2, 2, 0, + 7, -5, -2, 0, 0, 0, -1, -6, 0, 0, -2, 1, -3, -1, -1, 0, -10, -2, 4, 0, 0, 1, -1, -2, 0, 0, 3, -1, 0, 0, 1, 3, -12, + 9, -5, 0, 0, -2, 16, 1, 0, -1, 2, 0, -4, 2, 0, 7, -11, -2, 1, 0, -1, 0, -7, 0, 0, -3, -1, 0, 1, -1, 0, 2, 6, 0, 0, + 0, 0, 0, -16, 0, 0, 1, -1, -1, -1, 1, 0, 1, 12, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, -14, 1, 0, 0, 0, -2, 4, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, -1, 3, 1, 3, -5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3, -1, 0, 0, 0, 0, 0, 0, + 0, 0, 2, 0, -13, -8, 3, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, -3, 3, 27, 12, 19, 20, -21, 3, 0, 0, 0, 0, 0, -1, -1, 0, + -1, 0, -1, 0, 0, 0, 0, -5, -1, 1, 1, -3, -4, 0, 0, -1, 5, -1, 0, 0, -2, 0, -1, -2, 7, 2, 0, 5, 3, 0, 0, -1, 0, -1, + 0, -2, 1, -1, -1, 1, 1, -1, 0, -2, 7, 0, 0, -1, -1, 3, 5, 1, -2, 2, -1, 0, 0, 1, 0, 0, 0, 0, -1, 11, -17, -14, -10, + -14, 7, -1, 1, 0, 0, 0, 2, -3, 0, 0, 0, 3, 2, 0, 0, 9, -5, 0, 11, -2, -1, -1, -2, 5, -1, 0, 0, 0, 0, 1, 0, 0, 3, + -2, -11, -10, 2, -2, -18, -3, 0, 0, 0, -1, -2, 0, 0, 0, -2, 1, 2, 11, 9, 12, 9, -2, 0, 0, 0, 1, -1, -3, 2, 0, -1, + 0, 0, 0, 1, -3, -3, 0, 0, 0, -1, 1, 2, 1, -4, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -4, -2, -1, -1, 0, 3, 1, 0, 0, 0, + 0, 0, -1, 0, 0, -1, 1, 0, 0, 0, 0, 0, 4, 3, 0, -1, 0, 14, -3, 0, 0, -1, 0, 0, 0, 0, 0, 0, 2, -11, -11, -9, -15, -2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -6, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -6, 1, 0, -1, 2, -4, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, -1, 0, 0, 0, -1, 0, 0, 0, -1, -1, 0, 0, 0, + 0, 0, -1, -1, 0, 0, 0, -1, -2, 0, 0, -2, -2, 0, 0, 0, -1, -2, 1, 0, 0, 0, 0, -2, -3, 0, 0, 3, 1, 1, 0, 0, -1, -1, + 0, 0, 0, 0, 0, 0, 0, 0, -1, 3, 0, 1, -1, -2, 2, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, -1, 0, -1, 2, 1, 2, -1, 0, 0, 0, + -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, + 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, -1, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 13, 4, 5, -8, -2, 0, 1, -1, -43, -7, -3, -4, 1, -1, + 1, 5, 22, -1, -1, -54, -2, -2, -4, -4, 52, -5, 17, 7, 1, -3, -33, -4, -25, 1, 15, 3, 2, 2, -11, 4, -14, 5, -34, 6, + -1, 35, 6, 11, 4, -2, -5, -4, -7, -21, 1, -2, 0, 1, -6, 1, 3, -11, 0, -2, 6, -45, 14, -45, 4, -1, 1, -3, 1, 1, -7, + -7, 5, -19, -4, 2, -4, 8, 4, -1, 3, 0, 0, 2, -15, -27, -36, -2, 5, -1, 14, 2, -5, 7, 0, 8, -39, -41, 6, 1, 4, -12, + -6, 0, -2, -2, -1, -4, -5, -3, 6, 14, -2, 22, -5, -2, -1, 0, 5, -33, -51, -15, 2, 0, 14, -1, 8, -5, -1, 0, 0, -1, + -2, -5, -5, -10, -5, -3, 2, 2, 5, 5, -4, -8, -1, 0, -3, 2, -13, 5, -14, 15, -1, -1, -12, 1, -1, 2, -3, 15, -1, 3, + -3, 1, 5, -4, -2, 0, 2, 6, 2, -4, 0, 2, 15, 0, -5, -12, 0, 0, 0, 0, 12, -3, -10, 4, 0, -68, 7, -44, 27, -28, 42, + -3, 3, 1, -23, 147, 12, 8, -162, 6, 3, 10, -12, 147, -60, -13, -24, -1, 1, -44, 40, 33, -24, -22, 48, -14, -22, + -38, -3, -1, 61, -68, 60, -4, -37, 1, -18, 2, 29, 29, 8, 18, -74, 10, 5, -17, -22, 108, -16, 33, -124, 22, -7, 0, + -4, 48, 26, -46, -33, ]; diff --git a/ironrdp/src/codecs/rfx/tests.rs b/ironrdp/src/codecs/rfx/tests.rs index c2e63a3a..c510aa4e 100644 --- a/ironrdp/src/codecs/rfx/tests.rs +++ b/ironrdp/src/codecs/rfx/tests.rs @@ -1,6 +1,7 @@ use lazy_static::lazy_static; -use super::{data_messages::*, header_messages::*}; +use super::data_messages::*; +use super::header_messages::*; use crate::PduBufferParsing; const SYNC_PDU_BUFFER: [u8; 12] = [ @@ -233,14 +234,8 @@ const FRAME_END_PDU: FrameEndPdu = FrameEndPdu; lazy_static! { static ref CHANNELS_PDU: ChannelsPdu = ChannelsPdu(vec![ - Channel { - width: 64, - height: 64, - }, - Channel { - width: 32, - height: 32, - } + Channel { width: 64, height: 64 }, + Channel { width: 32, height: 32 } ]); static ref REGION_PDU: RegionPdu = RegionPdu { rectangles: vec![ @@ -321,10 +316,7 @@ fn from_buffer_for_pdu_with_codec_channel_header_returns_error_on_small_buffer() #[test] fn from_buffer_correctly_parses_sync_pdu() { - assert_eq!( - SYNC_PDU, - SyncPdu::from_buffer(SYNC_PDU_BUFFER.as_ref()).unwrap() - ); + assert_eq!(SYNC_PDU, SyncPdu::from_buffer(SYNC_PDU_BUFFER.as_ref()).unwrap()); } #[test] @@ -332,9 +324,7 @@ fn to_buffer_correctly_serializes_sync_pdu() { let expected = SYNC_PDU_BUFFER.as_ref(); let mut buffer = vec![0; expected.len()]; - SYNC_PDU - .to_buffer_consume(&mut buffer.as_mut_slice()) - .unwrap(); + SYNC_PDU.to_buffer_consume(&mut buffer.as_mut_slice()).unwrap(); assert_eq!(expected, buffer.as_slice()); } @@ -364,10 +354,7 @@ fn to_buffer_correctly_serializes_codec_versions_pdu() { #[test] fn buffer_length_is_correct_for_codec_versions_pdu() { - assert_eq!( - CODEC_VERSIONS_PDU_BUFFER.len(), - CODEC_VERSIONS_PDU.buffer_length() - ); + assert_eq!(CODEC_VERSIONS_PDU_BUFFER.len(), CODEC_VERSIONS_PDU.buffer_length()); } #[test] @@ -383,17 +370,13 @@ fn to_buffer_correctly_serializes_channels_pdu() { let expected = CHANNELS_PDU_BUFFER.as_ref(); let mut buffer = vec![0; expected.len()]; - CHANNELS_PDU - .to_buffer_consume(&mut buffer.as_mut_slice()) - .unwrap(); + CHANNELS_PDU.to_buffer_consume(&mut buffer.as_mut_slice()).unwrap(); assert_eq!(expected, buffer.as_slice()); } #[test] fn from_buffer_returns_error_on_invalid_data_length_for_channels_pdu() { - assert!( - ChannelsPdu::from_buffer(CHANNELS_PDU_BUFFER_WITH_INVALID_DATA_LENGTH.as_ref()).is_err() - ); + assert!(ChannelsPdu::from_buffer(CHANNELS_PDU_BUFFER_WITH_INVALID_DATA_LENGTH.as_ref()).is_err()); } #[test] @@ -424,9 +407,7 @@ fn to_buffer_correctly_serializes_context_pdu() { let expected = CONTEXT_PDU_BUFFER.as_ref(); let mut buffer = vec![0; expected.len()]; - CONTEXT_PDU - .to_buffer_consume(&mut buffer.as_mut_slice()) - .unwrap(); + CONTEXT_PDU.to_buffer_consume(&mut buffer.as_mut_slice()).unwrap(); assert_eq!(expected, buffer.as_slice()); } @@ -448,18 +429,13 @@ fn to_buffer_correctly_serializes_frame_begin_pdu() { let expected = FRAME_BEGIN_PDU_BUFFER.as_ref(); let mut buffer = vec![0; expected.len()]; - FRAME_BEGIN_PDU - .to_buffer_consume(&mut buffer.as_mut_slice()) - .unwrap(); + FRAME_BEGIN_PDU.to_buffer_consume(&mut buffer.as_mut_slice()).unwrap(); assert_eq!(expected, buffer.as_slice()); } #[test] fn buffer_length_is_correct_for_frame_begin_pdu() { - assert_eq!( - FRAME_BEGIN_PDU_BUFFER.len(), - FRAME_BEGIN_PDU.buffer_length() - ); + assert_eq!(FRAME_BEGIN_PDU_BUFFER.len(), FRAME_BEGIN_PDU.buffer_length()); } #[test] @@ -475,9 +451,7 @@ fn to_buffer_correctly_serializes_frame_end_pdu() { let expected = FRAME_END_PDU_BUFFER.as_ref(); let mut buffer = vec![0; expected.len()]; - FRAME_END_PDU - .to_buffer_consume(&mut buffer.as_mut_slice()) - .unwrap(); + FRAME_END_PDU.to_buffer_consume(&mut buffer.as_mut_slice()).unwrap(); assert_eq!(expected, buffer.as_slice()); } @@ -488,10 +462,7 @@ fn buffer_length_is_correct_for_frame_end_pdu() { #[test] fn from_buffer_correctly_parses_region_pdu() { - assert_eq!( - *REGION_PDU, - RegionPdu::from_buffer(REGION_PDU_BUFFER.as_ref()).unwrap() - ); + assert_eq!(*REGION_PDU, RegionPdu::from_buffer(REGION_PDU_BUFFER.as_ref()).unwrap()); } #[test] @@ -499,9 +470,7 @@ fn to_buffer_correctly_serializes_region_pdu() { let expected = REGION_PDU_BUFFER.as_ref(); let mut buffer = vec![0; expected.len()]; - REGION_PDU - .to_buffer_consume(&mut buffer.as_mut_slice()) - .unwrap(); + REGION_PDU.to_buffer_consume(&mut buffer.as_mut_slice()).unwrap(); assert_eq!(expected, buffer.as_slice()); } @@ -512,18 +481,12 @@ fn buffer_length_is_correct_for_region_pdu() { #[test] fn from_buffer_returns_error_on_invalid_number_of_quants_for_tile_set_pdu() { - assert!(TileSetPdu::from_buffer_consume( - &mut TILESET_PDU_BUFFER_WITH_INVALID_NUMBER_OF_QUANTS.as_ref() - ) - .is_err()); + assert!(TileSetPdu::from_buffer_consume(&mut TILESET_PDU_BUFFER_WITH_INVALID_NUMBER_OF_QUANTS.as_ref()).is_err()); } #[test] fn from_buffer_returns_error_on_invalid_tiles_data_size_for_tile_set_pdu() { - assert!(TileSetPdu::from_buffer_consume( - &mut TILESET_PDU_BUFFER_WITH_INVALID_TILES_DATA_SIZE.as_ref() - ) - .is_err()); + assert!(TileSetPdu::from_buffer_consume(&mut TILESET_PDU_BUFFER_WITH_INVALID_TILES_DATA_SIZE.as_ref()).is_err()); } #[test] @@ -539,9 +502,7 @@ fn to_buffer_correctly_serializes_tile_set_pdu() { let expected = TILESET_PDU_BUFFER.as_ref(); let mut buffer = vec![0; expected.len()]; - TILESET_PDU - .to_buffer_consume(&mut buffer.as_mut_slice()) - .unwrap(); + TILESET_PDU.to_buffer_consume(&mut buffer.as_mut_slice()).unwrap(); assert_eq!(expected, buffer.as_slice()); } diff --git a/ironrdp/src/gcc.rs b/ironrdp/src/gcc.rs index c1ebb71b..8a61ee30 100644 --- a/ironrdp/src/gcc.rs +++ b/ironrdp/src/gcc.rs @@ -11,39 +11,6 @@ mod multi_transport_channel_data; mod network_data; mod security_data; -pub use self::{ - cluster_data::{ClientClusterData, ClusterDataError, RedirectionFlags, RedirectionVersion}, - conference_create::{ConferenceCreateRequest, ConferenceCreateResponse}, - core_data::{ - client::{ - ClientColorDepth, ClientCoreData, ClientCoreOptionalData, ClientEarlyCapabilityFlags, - ColorDepth, ConnectionType, HighColorDepth, KeyboardType, SecureAccessSequence, - SupportedColorDepths, IME_FILE_NAME_SIZE, - }, - server::{ServerCoreData, ServerCoreOptionalData, ServerEarlyCapabilityFlags}, - CoreDataError, RdpVersion, - }, - message_channel_data::{ClientMessageChannelData, ServerMessageChannelData}, - monitor_data::{ - ClientMonitorData, Monitor, MonitorDataError, MonitorFlags, MONITOR_COUNT_SIZE, - MONITOR_FLAGS_SIZE, MONITOR_SIZE, - }, - monitor_extended_data::{ - ClientMonitorExtendedData, ExtendedMonitorInfo, MonitorExtendedDataError, - MonitorOrientation, - }, - multi_transport_channel_data::{ - MultiTransportChannelData, MultiTransportChannelDataError, MultiTransportFlags, - }, - network_data::{ - Channel, ChannelOptions, ClientNetworkData, NetworkDataError, ServerNetworkData, - }, - security_data::{ - ClientSecurityData, EncryptionLevel, EncryptionMethod, SecurityDataError, - ServerSecurityData, - }, -}; - use std::io; use byteorder::{LittleEndian, ReadBytesExt, WriteBytesExt}; @@ -51,6 +18,28 @@ use failure::Fail; use num_derive::{FromPrimitive, ToPrimitive}; use num_traits::{FromPrimitive, ToPrimitive}; +pub use self::cluster_data::{ClientClusterData, ClusterDataError, RedirectionFlags, RedirectionVersion}; +pub use self::conference_create::{ConferenceCreateRequest, ConferenceCreateResponse}; +pub use self::core_data::client::{ + ClientColorDepth, ClientCoreData, ClientCoreOptionalData, ClientEarlyCapabilityFlags, ColorDepth, ConnectionType, + HighColorDepth, KeyboardType, SecureAccessSequence, SupportedColorDepths, IME_FILE_NAME_SIZE, +}; +pub use self::core_data::server::{ServerCoreData, ServerCoreOptionalData, ServerEarlyCapabilityFlags}; +pub use self::core_data::{CoreDataError, RdpVersion}; +pub use self::message_channel_data::{ClientMessageChannelData, ServerMessageChannelData}; +pub use self::monitor_data::{ + ClientMonitorData, Monitor, MonitorDataError, MonitorFlags, MONITOR_COUNT_SIZE, MONITOR_FLAGS_SIZE, MONITOR_SIZE, +}; +pub use self::monitor_extended_data::{ + ClientMonitorExtendedData, ExtendedMonitorInfo, MonitorExtendedDataError, MonitorOrientation, +}; +pub use self::multi_transport_channel_data::{ + MultiTransportChannelData, MultiTransportChannelDataError, MultiTransportFlags, +}; +pub use self::network_data::{Channel, ChannelOptions, ClientNetworkData, NetworkDataError, ServerNetworkData}; +pub use self::security_data::{ + ClientSecurityData, EncryptionLevel, EncryptionMethod, SecurityDataError, ServerSecurityData, +}; use crate::{impl_from_error, PduParsing}; macro_rules! user_header_try { @@ -103,34 +92,21 @@ impl PduParsing for ClientGccBlocks { let mut monitor_extended = None; loop { - let user_header = - user_header_try!(UserDataHeader::::from_buffer(&mut buffer)); + let user_header = user_header_try!(UserDataHeader::::from_buffer(&mut buffer)); match user_header.block_type { - ClientGccType::CoreData => { - core = Some(ClientCoreData::from_buffer( - user_header.block_data.as_slice(), - )?) - } + ClientGccType::CoreData => core = Some(ClientCoreData::from_buffer(user_header.block_data.as_slice())?), ClientGccType::SecurityData => { - security = Some(ClientSecurityData::from_buffer( - user_header.block_data.as_slice(), - )?) + security = Some(ClientSecurityData::from_buffer(user_header.block_data.as_slice())?) } ClientGccType::NetworkData => { - network = Some(ClientNetworkData::from_buffer( - user_header.block_data.as_slice(), - )?) + network = Some(ClientNetworkData::from_buffer(user_header.block_data.as_slice())?) } ClientGccType::ClusterData => { - cluster = Some(ClientClusterData::from_buffer( - user_header.block_data.as_slice(), - )?) + cluster = Some(ClientClusterData::from_buffer(user_header.block_data.as_slice())?) } ClientGccType::MonitorData => { - monitor = Some(ClientMonitorData::from_buffer( - user_header.block_data.as_slice(), - )?) + monitor = Some(ClientMonitorData::from_buffer(user_header.block_data.as_slice())?) } ClientGccType::MessageChannelData => { message_channel = Some(ClientMessageChannelData::from_buffer( @@ -151,12 +127,8 @@ impl PduParsing for ClientGccBlocks { } Ok(Self { - core: core.ok_or(GccError::RequiredClientDataBlockIsAbsent( - ClientGccType::CoreData, - ))?, - security: security.ok_or(GccError::RequiredClientDataBlockIsAbsent( - ClientGccType::SecurityData, - ))?, + core: core.ok_or(GccError::RequiredClientDataBlockIsAbsent(ClientGccType::CoreData))?, + security: security.ok_or(GccError::RequiredClientDataBlockIsAbsent(ClientGccType::SecurityData))?, network, cluster, monitor, @@ -167,33 +139,25 @@ impl PduParsing for ClientGccBlocks { } fn to_buffer(&self, mut buffer: impl io::Write) -> Result<(), Self::Error> { - UserDataHeader::from_gcc_block(ClientGccType::CoreData, &self.core)? - .to_buffer(&mut buffer)?; - UserDataHeader::from_gcc_block(ClientGccType::SecurityData, &self.security)? - .to_buffer(&mut buffer)?; + UserDataHeader::from_gcc_block(ClientGccType::CoreData, &self.core)?.to_buffer(&mut buffer)?; + UserDataHeader::from_gcc_block(ClientGccType::SecurityData, &self.security)?.to_buffer(&mut buffer)?; if let Some(ref network) = self.network { - UserDataHeader::from_gcc_block(ClientGccType::NetworkData, network)? - .to_buffer(&mut buffer)?; + UserDataHeader::from_gcc_block(ClientGccType::NetworkData, network)?.to_buffer(&mut buffer)?; } if let Some(ref cluster) = self.cluster { - UserDataHeader::from_gcc_block(ClientGccType::ClusterData, cluster)? - .to_buffer(&mut buffer)?; + UserDataHeader::from_gcc_block(ClientGccType::ClusterData, cluster)?.to_buffer(&mut buffer)?; } if let Some(ref monitor) = self.monitor { - UserDataHeader::from_gcc_block(ClientGccType::MonitorData, monitor)? - .to_buffer(&mut buffer)?; + UserDataHeader::from_gcc_block(ClientGccType::MonitorData, monitor)?.to_buffer(&mut buffer)?; } if let Some(ref message_channel) = self.message_channel { UserDataHeader::from_gcc_block(ClientGccType::MessageChannelData, message_channel)? .to_buffer(&mut buffer)?; } if let Some(ref multi_transport_channel) = self.multi_transport_channel { - UserDataHeader::from_gcc_block( - ClientGccType::MultiTransportChannelData, - multi_transport_channel, - )? - .to_buffer(&mut buffer)?; + UserDataHeader::from_gcc_block(ClientGccType::MultiTransportChannelData, multi_transport_channel)? + .to_buffer(&mut buffer)?; } if let Some(ref monitor_extended) = self.monitor_extended { UserDataHeader::from_gcc_block(ClientGccType::MonitorExtendedData, monitor_extended)? @@ -204,8 +168,7 @@ impl PduParsing for ClientGccBlocks { } fn buffer_length(&self) -> usize { - let mut size = - self.core.buffer_length() + self.security.buffer_length() + USER_DATA_HEADER_SIZE * 2; + let mut size = self.core.buffer_length() + self.security.buffer_length() + USER_DATA_HEADER_SIZE * 2; if let Some(ref network) = self.network { size += network.buffer_length() + USER_DATA_HEADER_SIZE; @@ -259,24 +222,15 @@ impl PduParsing for ServerGccBlocks { let mut multi_transport_channel = None; loop { - let user_header = - user_header_try!(UserDataHeader::::from_buffer(&mut buffer)); + let user_header = user_header_try!(UserDataHeader::::from_buffer(&mut buffer)); match user_header.block_type { - ServerGccType::CoreData => { - core = Some(ServerCoreData::from_buffer( - user_header.block_data.as_slice(), - )?) - } + ServerGccType::CoreData => core = Some(ServerCoreData::from_buffer(user_header.block_data.as_slice())?), ServerGccType::NetworkData => { - network = Some(ServerNetworkData::from_buffer( - user_header.block_data.as_slice(), - )?) + network = Some(ServerNetworkData::from_buffer(user_header.block_data.as_slice())?) } ServerGccType::SecurityData => { - security = Some(ServerSecurityData::from_buffer( - user_header.block_data.as_slice(), - )?) + security = Some(ServerSecurityData::from_buffer(user_header.block_data.as_slice())?) } ServerGccType::MessageChannelData => { message_channel = Some(ServerMessageChannelData::from_buffer( @@ -292,38 +246,26 @@ impl PduParsing for ServerGccBlocks { } Ok(Self { - core: core.ok_or(GccError::RequiredServerDataBlockIsAbsent( - ServerGccType::CoreData, - ))?, - network: network.ok_or(GccError::RequiredServerDataBlockIsAbsent( - ServerGccType::NetworkData, - ))?, - security: security.ok_or(GccError::RequiredServerDataBlockIsAbsent( - ServerGccType::SecurityData, - ))?, + core: core.ok_or(GccError::RequiredServerDataBlockIsAbsent(ServerGccType::CoreData))?, + network: network.ok_or(GccError::RequiredServerDataBlockIsAbsent(ServerGccType::NetworkData))?, + security: security.ok_or(GccError::RequiredServerDataBlockIsAbsent(ServerGccType::SecurityData))?, message_channel, multi_transport_channel, }) } fn to_buffer(&self, mut buffer: impl io::Write) -> Result<(), Self::Error> { - UserDataHeader::from_gcc_block(ServerGccType::CoreData, &self.core)? - .to_buffer(&mut buffer)?; - UserDataHeader::from_gcc_block(ServerGccType::NetworkData, &self.network)? - .to_buffer(&mut buffer)?; - UserDataHeader::from_gcc_block(ServerGccType::SecurityData, &self.security)? - .to_buffer(&mut buffer)?; + UserDataHeader::from_gcc_block(ServerGccType::CoreData, &self.core)?.to_buffer(&mut buffer)?; + UserDataHeader::from_gcc_block(ServerGccType::NetworkData, &self.network)?.to_buffer(&mut buffer)?; + UserDataHeader::from_gcc_block(ServerGccType::SecurityData, &self.security)?.to_buffer(&mut buffer)?; if let Some(ref message_channel) = self.message_channel { UserDataHeader::from_gcc_block(ServerGccType::MessageChannelData, message_channel)? .to_buffer(&mut buffer)?; } if let Some(ref multi_transport_channel) = self.multi_transport_channel { - UserDataHeader::from_gcc_block( - ServerGccType::MultiTransportChannelData, - multi_transport_channel, - )? - .to_buffer(&mut buffer)?; + UserDataHeader::from_gcc_block(ServerGccType::MultiTransportChannelData, multi_transport_channel)? + .to_buffer(&mut buffer)?; } Ok(()) @@ -383,10 +325,7 @@ impl UserDataHeader { let mut block_data = Vec::with_capacity(gcc_block.buffer_length()); gcc_block.to_buffer(&mut block_data)?; - Ok(Self { - block_type, - block_data, - }) + Ok(Self { block_type, block_data }) } fn block_length(&self) -> usize { @@ -398,8 +337,7 @@ impl PduParsing for UserDataHeader { type Error = GccError; fn from_buffer(mut buffer: impl io::Read) -> Result { - let block_type = - T::from_u16(buffer.read_u16::()?).ok_or(GccError::InvalidGccType)?; + let block_type = T::from_u16(buffer.read_u16::()?).ok_or(GccError::InvalidGccType)?; let block_length = buffer.read_u16::()?; if block_length <= USER_DATA_HEADER_SIZE as u16 { @@ -412,10 +350,7 @@ impl PduParsing for UserDataHeader { let mut block_data = vec![0; block_length as usize - USER_DATA_HEADER_SIZE]; buffer.read_exact(&mut block_data)?; - Ok(Self { - block_type, - block_data, - }) + Ok(Self { block_type, block_data }) } fn to_buffer(&self, mut buffer: impl io::Write) -> Result<(), Self::Error> { @@ -455,15 +390,9 @@ pub enum GccError { InvalidConferenceCreateRequest(String), #[fail(display = "Invalid Conference create response: {}", _0)] InvalidConferenceCreateResponse(String), - #[fail( - display = "A server did not send the required GCC data block: {:?}", - _0 - )] + #[fail(display = "A server did not send the required GCC data block: {:?}", _0)] RequiredClientDataBlockIsAbsent(ClientGccType), - #[fail( - display = "A client did not send the required GCC data block: {:?}", - _0 - )] + #[fail(display = "A client did not send the required GCC data block: {:?}", _0)] RequiredServerDataBlockIsAbsent(ServerGccType), } @@ -478,8 +407,4 @@ impl_from_error!( GccError, GccError::MultiTransportChannelError ); -impl_from_error!( - MonitorExtendedDataError, - GccError, - GccError::MonitorExtendedError -); +impl_from_error!(MonitorExtendedDataError, GccError, GccError::MonitorExtendedError); diff --git a/ironrdp/src/gcc/cluster_data.rs b/ironrdp/src/gcc/cluster_data.rs index 71e90bdf..ef44e9cc 100644 --- a/ironrdp/src/gcc/cluster_data.rs +++ b/ironrdp/src/gcc/cluster_data.rs @@ -32,10 +32,9 @@ impl PduParsing for ClientClusterData { let flags = RedirectionFlags::from_bits(flags_with_version & !REDIRECTION_VERSION_MASK) .ok_or(ClusterDataError::InvalidRedirectionFlags)?; - let redirection_version = RedirectionVersion::from_u8( - ((flags_with_version & REDIRECTION_VERSION_MASK) >> 2) as u8, - ) - .ok_or(ClusterDataError::InvalidRedirectionFlags)?; + let redirection_version = + RedirectionVersion::from_u8(((flags_with_version & REDIRECTION_VERSION_MASK) >> 2) as u8) + .ok_or(ClusterDataError::InvalidRedirectionFlags)?; Ok(Self { flags, @@ -45,8 +44,7 @@ impl PduParsing for ClientClusterData { } fn to_buffer(&self, mut buffer: impl io::Write) -> Result<(), Self::Error> { - let flags_with_version = - self.flags.bits() | (self.redirection_version.to_u32().unwrap() << 2); + let flags_with_version = self.flags.bits() | (self.redirection_version.to_u32().unwrap() << 2); buffer.write_u32::(flags_with_version)?; buffer.write_u32::(self.redirected_session_id)?; diff --git a/ironrdp/src/gcc/cluster_data/test.rs b/ironrdp/src/gcc/cluster_data/test.rs index 6edcfe9f..13356e32 100644 --- a/ironrdp/src/gcc/cluster_data/test.rs +++ b/ironrdp/src/gcc/cluster_data/test.rs @@ -16,10 +16,7 @@ lazy_static! { fn from_buffer_correctly_parses_client_cluster_data() { let buffer = CLUSTER_DATA_BUFFER.as_ref(); - assert_eq!( - *CLUSTER_DATA, - ClientClusterData::from_buffer(buffer).unwrap() - ); + assert_eq!(*CLUSTER_DATA, ClientClusterData::from_buffer(buffer).unwrap()); } #[test] diff --git a/ironrdp/src/gcc/conference_create.rs b/ironrdp/src/gcc/conference_create.rs index a2f58957..76008763 100644 --- a/ironrdp/src/gcc/conference_create.rs +++ b/ironrdp/src/gcc/conference_create.rs @@ -210,10 +210,7 @@ impl PduParsing for ConferenceCreateResponse { let (_gcc_blocks_buffer_length, _) = per::read_length(&mut stream)?; let gcc_blocks = ServerGccBlocks::from_buffer(&mut stream)?; - Ok(Self { - user_id, - gcc_blocks, - }) + Ok(Self { user_id, gcc_blocks }) } fn to_buffer(&self, mut stream: impl io::Write) -> Result<(), Self::Error> { diff --git a/ironrdp/src/gcc/conference_create/test.rs b/ironrdp/src/gcc/conference_create/test.rs index 70c2a965..efe29cb1 100644 --- a/ironrdp/src/gcc/conference_create/test.rs +++ b/ironrdp/src/gcc/conference_create/test.rs @@ -4,23 +4,22 @@ use super::*; use crate::gcc; const CONFERENCE_CREATE_REQUEST_PREFIX_BUFFER: [u8; 23] = [ - 0x00, 0x05, 0x00, 0x14, 0x7c, 0x00, 0x01, 0x81, 0x28, 0x00, 0x08, 0x00, 0x10, 0x00, 0x01, 0xc0, - 0x00, 0x44, 0x75, 0x63, 0x61, 0x81, 0x1c, + 0x00, 0x05, 0x00, 0x14, 0x7c, 0x00, 0x01, 0x81, 0x28, 0x00, 0x08, 0x00, 0x10, 0x00, 0x01, 0xc0, 0x00, 0x44, 0x75, + 0x63, 0x61, 0x81, 0x1c, ]; const CONFERENCE_CREATE_RESPONSE_PREFIX_BUFFER: [u8; 24] = [ - 0x00, 0x05, 0x00, 0x14, 0x7c, 0x00, 0x01, 0x81, 0x15, 0x14, 0x76, 0x0a, 0x01, 0x01, 0x00, 0x01, - 0xc0, 0x00, 0x4d, 0x63, 0x44, 0x6e, 0x81, 0x08, + 0x00, 0x05, 0x00, 0x14, 0x7c, 0x00, 0x01, 0x81, 0x15, 0x14, 0x76, 0x0a, 0x01, 0x01, 0x00, 0x01, 0xc0, 0x00, 0x4d, + 0x63, 0x44, 0x6e, 0x81, 0x08, ]; lazy_static! { pub static ref CONFERENCE_CREATE_REQUEST: ConferenceCreateRequest = ConferenceCreateRequest { gcc_blocks: gcc::test::CLIENT_GCC_WITH_CLUSTER_OPTIONAL_FIELD.clone(), }; - pub static ref CONFERENCE_CREATE_RESPONSE: ConferenceCreateResponse = - ConferenceCreateResponse { - user_id: 0x79f3, - gcc_blocks: gcc::test::SERVER_GCC_WITHOUT_OPTIONAL_FIELDS.clone(), - }; + pub static ref CONFERENCE_CREATE_RESPONSE: ConferenceCreateResponse = ConferenceCreateResponse { + user_id: 0x79f3, + gcc_blocks: gcc::test::SERVER_GCC_WITHOUT_OPTIONAL_FIELDS.clone(), + }; pub static ref CONFERENCE_CREATE_REQUEST_BUFFER: Vec = { let mut buffer = CONFERENCE_CREATE_REQUEST_PREFIX_BUFFER.to_vec(); buffer.extend(gcc::test::CLIENT_GCC_WITH_CLUSTER_OPTIONAL_FIELD_BUFFER.as_slice()); diff --git a/ironrdp/src/gcc/core_data/client.rs b/ironrdp/src/gcc/core_data/client.rs index b6180359..35d2edb9 100644 --- a/ironrdp/src/gcc/core_data/client.rs +++ b/ironrdp/src/gcc/core_data/client.rs @@ -61,8 +61,7 @@ impl ClientCoreData { pub fn client_color_depth(&self) -> ClientColorDepth { if let Some(high_color_depth) = self.optional_data.high_color_depth { if let Some(early_capability_flags) = self.optional_data.early_capability_flags { - if early_capability_flags.contains(ClientEarlyCapabilityFlags::WANT_32_BPP_SESSION) - { + if early_capability_flags.contains(ClientEarlyCapabilityFlags::WANT_32_BPP_SESSION) { ClientColorDepth::Bpp32 } else { From::from(high_color_depth) @@ -82,15 +81,13 @@ impl PduParsing for ClientCoreData { type Error = CoreDataError; fn from_buffer(mut buffer: impl io::Read) -> Result { - let version = RdpVersion::from_u32(buffer.read_u32::()?) - .unwrap_or(RdpVersion::VUnknown); + let version = RdpVersion::from_u32(buffer.read_u32::()?).unwrap_or(RdpVersion::VUnknown); let desktop_width = buffer.read_u16::()?; let desktop_height = buffer.read_u16::()?; - let color_depth = ColorDepth::from_u16(buffer.read_u16::()?) - .ok_or(CoreDataError::InvalidColorDepth)?; - let sec_access_sequence = - SecureAccessSequence::from_u16(buffer.read_u16::()?) - .ok_or(CoreDataError::InvalidSecureAccessSequence)?; + let color_depth = + ColorDepth::from_u16(buffer.read_u16::()?).ok_or(CoreDataError::InvalidColorDepth)?; + let sec_access_sequence = SecureAccessSequence::from_u16(buffer.read_u16::()?) + .ok_or(CoreDataError::InvalidSecureAccessSequence)?; let keyboard_layout = buffer.read_u32::()?; let client_build = buffer.read_u32::()?; @@ -100,8 +97,8 @@ impl PduParsing for ClientCoreData { .trim_end_matches('\u{0}') .into(); - let keyboard_type = KeyboardType::from_u32(buffer.read_u32::()?) - .ok_or(CoreDataError::InvalidKeyboardType)?; + let keyboard_type = + KeyboardType::from_u32(buffer.read_u32::()?).ok_or(CoreDataError::InvalidKeyboardType)?; let keyboard_subtype = buffer.read_u32::()?; let keyboard_functional_keys_count = buffer.read_u32::()?; @@ -196,44 +193,26 @@ impl PduParsing for ClientCoreOptionalData { let mut optional_data = Self::default(); optional_data.post_beta_color_depth = Some( - ColorDepth::from_u16(try_read_optional!( - buffer.read_u16::(), - optional_data - )) - .ok_or(CoreDataError::InvalidPostBetaColorDepth)?, + ColorDepth::from_u16(try_read_optional!(buffer.read_u16::(), optional_data)) + .ok_or(CoreDataError::InvalidPostBetaColorDepth)?, ); - optional_data.client_product_id = Some(try_read_optional!( - buffer.read_u16::(), - optional_data - )); - optional_data.serial_number = Some(try_read_optional!( - buffer.read_u32::(), - optional_data - )); + optional_data.client_product_id = Some(try_read_optional!(buffer.read_u16::(), optional_data)); + optional_data.serial_number = Some(try_read_optional!(buffer.read_u32::(), optional_data)); optional_data.high_color_depth = Some( - HighColorDepth::from_u16(try_read_optional!( - buffer.read_u16::(), - optional_data - )) - .ok_or(CoreDataError::InvalidHighColorDepth)?, + HighColorDepth::from_u16(try_read_optional!(buffer.read_u16::(), optional_data)) + .ok_or(CoreDataError::InvalidHighColorDepth)?, ); optional_data.supported_color_depths = Some( - SupportedColorDepths::from_bits(try_read_optional!( - buffer.read_u16::(), - optional_data - )) - .ok_or(CoreDataError::InvalidSupportedColorDepths)?, + SupportedColorDepths::from_bits(try_read_optional!(buffer.read_u16::(), optional_data)) + .ok_or(CoreDataError::InvalidSupportedColorDepths)?, ); optional_data.early_capability_flags = Some( - ClientEarlyCapabilityFlags::from_bits(try_read_optional!( - buffer.read_u16::(), - optional_data - )) - .ok_or(CoreDataError::InvalidEarlyCapabilityFlags)?, + ClientEarlyCapabilityFlags::from_bits(try_read_optional!(buffer.read_u16::(), optional_data)) + .ok_or(CoreDataError::InvalidEarlyCapabilityFlags)?, ); let mut dig_product_id_buffer = [0; DIG_PRODUCT_ID_SIZE]; @@ -252,28 +231,17 @@ impl PduParsing for ClientCoreOptionalData { try_read_optional!(buffer.read_u8(), optional_data); // pad1octet optional_data.server_selected_protocol = Some( - nego::SecurityProtocol::from_bits(try_read_optional!( - buffer.read_u32::(), - optional_data - )) - .ok_or(CoreDataError::InvalidServerSecurityProtocol)?, + nego::SecurityProtocol::from_bits(try_read_optional!(buffer.read_u32::(), optional_data)) + .ok_or(CoreDataError::InvalidServerSecurityProtocol)?, ); - optional_data.desktop_physical_width = Some(try_read_optional!( - buffer.read_u32::(), - optional_data - )); + optional_data.desktop_physical_width = + Some(try_read_optional!(buffer.read_u32::(), optional_data)); // physical height must be present, if the physical width is present optional_data.desktop_physical_height = Some(buffer.read_u32::()?); - optional_data.desktop_orientation = Some(try_read_optional!( - buffer.read_u16::(), - optional_data - )); - optional_data.desktop_scale_factor = Some(try_read_optional!( - buffer.read_u32::(), - optional_data - )); + optional_data.desktop_orientation = Some(try_read_optional!(buffer.read_u16::(), optional_data)); + optional_data.desktop_scale_factor = Some(try_read_optional!(buffer.read_u32::(), optional_data)); // device scale factor must be present, if the desktop scale factor is present optional_data.device_scale_factor = Some(buffer.read_u32::()?); @@ -292,19 +260,15 @@ impl PduParsing for ClientCoreOptionalData { .write_u32::(*value)); try_write_optional!(self.high_color_depth, |value: &HighColorDepth| buffer + .write_u16::(value.to_u16().unwrap())); + + try_write_optional!(self.supported_color_depths, |value: &SupportedColorDepths| buffer .write_u16::( - value.to_u16().unwrap() + value.bits() )); - try_write_optional!( - self.supported_color_depths, - |value: &SupportedColorDepths| buffer.write_u16::(value.bits()) - ); - - try_write_optional!( - self.early_capability_flags, - |value: &ClientEarlyCapabilityFlags| buffer.write_u16::(value.bits()) - ); + try_write_optional!(self.early_capability_flags, |value: &ClientEarlyCapabilityFlags| buffer + .write_u16::(value.bits())); try_write_optional!(self.dig_product_id, |value: &str| { let mut dig_product_id_buffer = utils::string_to_utf16(value); @@ -319,20 +283,15 @@ impl PduParsing for ClientCoreOptionalData { buffer.write_u8(0)?; // pad1octet - try_write_optional!( - self.server_selected_protocol, - |value: &nego::SecurityProtocol| { buffer.write_u32::(value.bits()) } - ); + try_write_optional!(self.server_selected_protocol, |value: &nego::SecurityProtocol| { + buffer.write_u32::(value.bits()) + }); try_write_optional!(self.desktop_physical_width, |value: &u32| buffer - .write_u32::( - *value - )); + .write_u32::(*value)); try_write_optional!(self.desktop_physical_height, |value: &u32| buffer - .write_u32::( - *value - )); + .write_u32::(*value)); try_write_optional!(self.desktop_orientation, |value: &u16| buffer .write_u16::(*value)); diff --git a/ironrdp/src/gcc/core_data/client/test.rs b/ironrdp/src/gcc/core_data/client/test.rs index cd4c3811..615b0298 100644 --- a/ironrdp/src/gcc/core_data/client/test.rs +++ b/ironrdp/src/gcc/core_data/client/test.rs @@ -1,9 +1,8 @@ use lazy_static::lazy_static; -use crate::{ - gcc::core_data::{client::*, *}, - nego, -}; +use crate::gcc::core_data::client::*; +use crate::gcc::core_data::*; +use crate::nego; const CLIENT_CORE_DATA_BUFFER: [u8; 128] = [ 0x04, 0x00, 0x08, 0x00, // version @@ -13,17 +12,15 @@ const CLIENT_CORE_DATA_BUFFER: [u8; 128] = [ 0x03, 0xaa, // sas sequence 0x09, 0x04, 0x00, 0x00, // keyboard layout 0xce, 0x0e, 0x00, 0x00, // client build - 0x45, 0x00, 0x4c, 0x00, 0x54, 0x00, 0x4f, 0x00, 0x4e, 0x00, 0x53, 0x00, 0x2d, 0x00, 0x44, 0x00, - 0x45, 0x00, 0x56, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, // client name + 0x45, 0x00, 0x4c, 0x00, 0x54, 0x00, 0x4f, 0x00, 0x4e, 0x00, 0x53, 0x00, 0x2d, 0x00, 0x44, 0x00, 0x45, 0x00, 0x56, + 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // client name 0x04, 0x00, 0x00, 0x00, // keyboard type 0x00, 0x00, 0x00, 0x00, // keyboard subtype 0x0c, 0x00, 0x00, 0x00, // keyboard function key - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, // ime file name + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ime file name ]; const CLIENT_OPTIONAL_CORE_DATA_TO_HIGH_COLOR_DEPTH_BUFFER: [u8; 8] = [ 0x01, 0xca, // post beta color depth @@ -37,18 +34,16 @@ const CLIENT_OPTIONAL_CORE_DATA_FROM_HIGH_COLOR_DEPTH_TO_SERVER_SELECTED_PROTOCO 0x18, 0x00, // high color depth 0x07, 0x00, // supported color depths 0x01, 0x00, // early capability flags - 0x36, 0x00, 0x39, 0x00, 0x37, 0x00, 0x31, 0x00, 0x32, 0x00, 0x2d, 0x00, 0x37, 0x00, 0x38, 0x00, - 0x33, 0x00, 0x2d, 0x00, 0x30, 0x00, 0x33, 0x00, 0x35, 0x00, 0x37, 0x00, 0x39, 0x00, 0x37, 0x00, - 0x34, 0x00, 0x2d, 0x00, 0x34, 0x00, 0x32, 0x00, 0x37, 0x00, 0x31, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, // client dig product id + 0x36, 0x00, 0x39, 0x00, 0x37, 0x00, 0x31, 0x00, 0x32, 0x00, 0x2d, 0x00, 0x37, 0x00, 0x38, 0x00, 0x33, 0x00, 0x2d, + 0x00, 0x30, 0x00, 0x33, 0x00, 0x35, 0x00, 0x37, 0x00, 0x39, 0x00, 0x37, 0x00, 0x34, 0x00, 0x2d, 0x00, 0x34, 0x00, + 0x32, 0x00, 0x37, 0x00, 0x31, 0x00, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // client dig product id 0x00, // connection type 0x00, // padding 0x00, 0x00, 0x00, 0x00, // server selected protocol ]; -const CLIENT_OPTIONAL_CORE_DATA_FROM_DESKTOP_PHYSICAL_WIDTH_TO_DEVICE_SCALE_FACTOR_BUFFER: [u8; - 18] = [ +const CLIENT_OPTIONAL_CORE_DATA_FROM_DESKTOP_PHYSICAL_WIDTH_TO_DEVICE_SCALE_FACTOR_BUFFER: [u8; 18] = [ 0x88, 0x13, 0x00, 0x00, // desktop physical width 0xb8, 0x0b, 0x00, 0x00, //desktop physical height 0x5a, 0x00, // desktop orientation @@ -84,11 +79,9 @@ lazy_static! { pub static ref CLIENT_OPTIONAL_CORE_DATA_TO_SERVER_SELECTED_PROTOCOL: ClientCoreData = { let mut data = CLIENT_OPTIONAL_CORE_DATA_TO_HIGH_COLOR_DEPTH.clone(); data.optional_data.high_color_depth = Some(HighColorDepth::Bpp24); - data.optional_data.supported_color_depths = Some( - SupportedColorDepths::BPP24 | SupportedColorDepths::BPP16 | SupportedColorDepths::BPP15, - ); - data.optional_data.early_capability_flags = - Some(ClientEarlyCapabilityFlags::SUPPORT_ERR_INFO_PDU); + data.optional_data.supported_color_depths = + Some(SupportedColorDepths::BPP24 | SupportedColorDepths::BPP16 | SupportedColorDepths::BPP15); + data.optional_data.early_capability_flags = Some(ClientEarlyCapabilityFlags::SUPPORT_ERR_INFO_PDU); data.optional_data.dig_product_id = Some(String::from("69712-783-0357974-42714")); data.optional_data.connection_type = Some(ConnectionType::NotUsed); data.optional_data.server_selected_protocol = Some(nego::SecurityProtocol::RDP); @@ -107,8 +100,7 @@ lazy_static! { }; pub static ref CLIENT_CORE_DATA_WITH_ALL_OPTIONAL_FIELDS_WITH_WANT_32_BPP_EARLY_FLAG: ClientCoreData = { let mut data = CLIENT_CORE_DATA_WITH_ALL_OPTIONAL_FIELDS.clone(); - data.optional_data.early_capability_flags = - Some(ClientEarlyCapabilityFlags::WANT_32_BPP_SESSION); + data.optional_data.early_capability_flags = Some(ClientEarlyCapabilityFlags::WANT_32_BPP_SESSION); data }; @@ -120,39 +112,28 @@ lazy_static! { }; pub static ref CLIENT_OPTIONAL_CORE_DATA_TO_SERVER_SELECTED_PROTOCOL_BUFFER: Vec = { let mut buffer = CLIENT_OPTIONAL_CORE_DATA_TO_HIGH_COLOR_DEPTH_BUFFER_BUFFER.to_vec(); - buffer.extend( - CLIENT_OPTIONAL_CORE_DATA_FROM_HIGH_COLOR_DEPTH_TO_SERVER_SELECTED_PROTOCOL_BUFFER - .as_ref(), - ); + buffer.extend(CLIENT_OPTIONAL_CORE_DATA_FROM_HIGH_COLOR_DEPTH_TO_SERVER_SELECTED_PROTOCOL_BUFFER.as_ref()); buffer }; pub static ref CLIENT_OPTIONAL_CORE_DATA_WITH_ALL_OPTIONAL_FIELDS_BUFFER: Vec = { let mut buffer = CLIENT_OPTIONAL_CORE_DATA_TO_SERVER_SELECTED_PROTOCOL_BUFFER.to_vec(); - buffer.extend( - CLIENT_OPTIONAL_CORE_DATA_FROM_DESKTOP_PHYSICAL_WIDTH_TO_DEVICE_SCALE_FACTOR_BUFFER - .as_ref(), - ); + buffer.extend(CLIENT_OPTIONAL_CORE_DATA_FROM_DESKTOP_PHYSICAL_WIDTH_TO_DEVICE_SCALE_FACTOR_BUFFER.as_ref()); buffer }; pub static ref CLIENT_CORE_DATA_WITH_ALL_OPTIONAL_FIELDS_WITH_WANT_32_BPP_EARLY_FLAG_BUFFER: Vec = { - let early_capability_flags = ClientEarlyCapabilityFlags::WANT_32_BPP_SESSION - .bits() - .to_le_bytes(); + let early_capability_flags = ClientEarlyCapabilityFlags::WANT_32_BPP_SESSION.bits().to_le_bytes(); let mut from_high_color_to_server_protocol = CLIENT_OPTIONAL_CORE_DATA_FROM_HIGH_COLOR_DEPTH_TO_SERVER_SELECTED_PROTOCOL_BUFFER; - from_high_color_to_server_protocol[EARLY_CAPABILITY_FLAGS_START - ..EARLY_CAPABILITY_FLAGS_START + EARLY_CAPABILITY_FLAGS_LENGTH] + from_high_color_to_server_protocol + [EARLY_CAPABILITY_FLAGS_START..EARLY_CAPABILITY_FLAGS_START + EARLY_CAPABILITY_FLAGS_LENGTH] .clone_from_slice(early_capability_flags.as_ref()); let mut buffer = CLIENT_OPTIONAL_CORE_DATA_TO_HIGH_COLOR_DEPTH_BUFFER_BUFFER.to_vec(); buffer.extend(from_high_color_to_server_protocol.as_ref()); - buffer.extend( - CLIENT_OPTIONAL_CORE_DATA_FROM_DESKTOP_PHYSICAL_WIDTH_TO_DEVICE_SCALE_FACTOR_BUFFER - .as_ref(), - ); + buffer.extend(CLIENT_OPTIONAL_CORE_DATA_FROM_DESKTOP_PHYSICAL_WIDTH_TO_DEVICE_SCALE_FACTOR_BUFFER.as_ref()); buffer }; @@ -277,18 +258,15 @@ fn client_color_depth_is_high_color_depth_if_want_32_bpp_flag_is_absent() { let buffer = CLIENT_OPTIONAL_CORE_DATA_WITH_ALL_OPTIONAL_FIELDS_BUFFER.clone(); let core_data = ClientCoreData::from_buffer(buffer.as_slice()).unwrap(); - let expected_client_color_depth: ClientColorDepth = - From::from(core_data.optional_data.high_color_depth.unwrap()); + let expected_client_color_depth: ClientColorDepth = From::from(core_data.optional_data.high_color_depth.unwrap()); assert_eq!(expected_client_color_depth, core_data.client_color_depth()); } #[test] fn client_color_depth_is_32_bpp_if_want_32_bpp_flag_is_set() { - let buffer = - CLIENT_CORE_DATA_WITH_ALL_OPTIONAL_FIELDS_WITH_WANT_32_BPP_EARLY_FLAG_BUFFER.clone(); - let expected_core_data = - CLIENT_CORE_DATA_WITH_ALL_OPTIONAL_FIELDS_WITH_WANT_32_BPP_EARLY_FLAG.clone(); + let buffer = CLIENT_CORE_DATA_WITH_ALL_OPTIONAL_FIELDS_WITH_WANT_32_BPP_EARLY_FLAG_BUFFER.clone(); + let expected_core_data = CLIENT_CORE_DATA_WITH_ALL_OPTIONAL_FIELDS_WITH_WANT_32_BPP_EARLY_FLAG.clone(); let expected_client_color_depth = ClientColorDepth::Bpp32; let core_data = ClientCoreData::from_buffer(buffer.as_slice()).unwrap(); diff --git a/ironrdp/src/gcc/core_data/server.rs b/ironrdp/src/gcc/core_data/server.rs index 3d35c202..3c021e5d 100644 --- a/ironrdp/src/gcc/core_data/server.rs +++ b/ironrdp/src/gcc/core_data/server.rs @@ -23,14 +23,10 @@ impl PduParsing for ServerCoreData { type Error = CoreDataError; fn from_buffer(mut buffer: impl io::Read) -> Result { - let version = RdpVersion::from_u32(buffer.read_u32::()?) - .unwrap_or(RdpVersion::VUnknown); + let version = RdpVersion::from_u32(buffer.read_u32::()?).unwrap_or(RdpVersion::VUnknown); let optional_data = ServerCoreOptionalData::from_buffer(&mut buffer)?; - Ok(Self { - version, - optional_data, - }) + Ok(Self { version, optional_data }) } fn to_buffer(&self, mut buffer: impl io::Write) -> Result<(), Self::Error> { @@ -56,34 +52,25 @@ impl PduParsing for ServerCoreOptionalData { let mut optional_data = Self::default(); optional_data.client_requested_protocols = Some( - nego::SecurityProtocol::from_bits(try_read_optional!( - buffer.read_u32::(), - optional_data - )) - .ok_or(CoreDataError::InvalidServerSecurityProtocol)?, + nego::SecurityProtocol::from_bits(try_read_optional!(buffer.read_u32::(), optional_data)) + .ok_or(CoreDataError::InvalidServerSecurityProtocol)?, ); optional_data.early_capability_flags = Some( - ServerEarlyCapabilityFlags::from_bits(try_read_optional!( - buffer.read_u32::(), - optional_data - )) - .ok_or(CoreDataError::InvalidEarlyCapabilityFlags)?, + ServerEarlyCapabilityFlags::from_bits(try_read_optional!(buffer.read_u32::(), optional_data)) + .ok_or(CoreDataError::InvalidEarlyCapabilityFlags)?, ); Ok(optional_data) } fn to_buffer(&self, mut buffer: impl io::Write) -> Result<(), Self::Error> { - try_write_optional!( - self.client_requested_protocols, - |value: &nego::SecurityProtocol| { buffer.write_u32::(value.bits()) } - ); + try_write_optional!(self.client_requested_protocols, |value: &nego::SecurityProtocol| { + buffer.write_u32::(value.bits()) + }); - try_write_optional!( - self.early_capability_flags, - |value: &ServerEarlyCapabilityFlags| buffer.write_u32::(value.bits()) - ); + try_write_optional!(self.early_capability_flags, |value: &ServerEarlyCapabilityFlags| buffer + .write_u32::(value.bits())); Ok(()) } diff --git a/ironrdp/src/gcc/core_data/server/test.rs b/ironrdp/src/gcc/core_data/server/test.rs index 3dd93993..38d37eee 100644 --- a/ironrdp/src/gcc/core_data/server/test.rs +++ b/ironrdp/src/gcc/core_data/server/test.rs @@ -1,9 +1,8 @@ use lazy_static::lazy_static; -use crate::{ - gcc::core_data::{server::*, *}, - nego, -}; +use crate::gcc::core_data::server::*; +use crate::gcc::core_data::*; +use crate::nego; const SERVER_CORE_DATA_BUFFER: [u8; 4] = [ 0x04, 0x00, 0x08, 0x00, // version @@ -55,10 +54,7 @@ lazy_static! { fn from_buffer_correctly_parses_server_core_data_without_optional_fields() { let buffer = SERVER_CORE_DATA_BUFFER.as_ref(); - assert_eq!( - *SERVER_CORE_DATA, - ServerCoreData::from_buffer(buffer).unwrap() - ); + assert_eq!(*SERVER_CORE_DATA, ServerCoreData::from_buffer(buffer).unwrap()); } #[test] diff --git a/ironrdp/src/gcc/message_channel_data.rs b/ironrdp/src/gcc/message_channel_data.rs index a5a0d4d7..9d414aaf 100644 --- a/ironrdp/src/gcc/message_channel_data.rs +++ b/ironrdp/src/gcc/message_channel_data.rs @@ -43,9 +43,7 @@ impl PduParsing for ServerMessageChannelData { fn from_buffer(mut buffer: impl io::Read) -> Result { let mcs_message_channel_id = buffer.read_u16::()?; - Ok(Self { - mcs_message_channel_id, - }) + Ok(Self { mcs_message_channel_id }) } fn to_buffer(&self, mut buffer: impl io::Write) -> Result<(), Self::Error> { buffer.write_u16::(self.mcs_message_channel_id)?; diff --git a/ironrdp/src/gcc/monitor_data.rs b/ironrdp/src/gcc/monitor_data.rs index 849addf8..3218c319 100644 --- a/ironrdp/src/gcc/monitor_data.rs +++ b/ironrdp/src/gcc/monitor_data.rs @@ -71,8 +71,8 @@ impl PduParsing for Monitor { let top = buffer.read_i32::()?; let right = buffer.read_i32::()?; let bottom = buffer.read_i32::()?; - let flags = MonitorFlags::from_bits(buffer.read_u32::()?) - .ok_or(MonitorDataError::InvalidMonitorFlags)?; + let flags = + MonitorFlags::from_bits(buffer.read_u32::()?).ok_or(MonitorDataError::InvalidMonitorFlags)?; Ok(Self { left, diff --git a/ironrdp/src/gcc/monitor_data/test.rs b/ironrdp/src/gcc/monitor_data/test.rs index 0f604c05..0f8d5b82 100644 --- a/ironrdp/src/gcc/monitor_data/test.rs +++ b/ironrdp/src/gcc/monitor_data/test.rs @@ -2,18 +2,15 @@ use lazy_static::lazy_static; use super::*; -pub const MONITOR_DATA_WITHOUT_MONITORS_BUFFER: [u8; 8] = - [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]; +pub const MONITOR_DATA_WITHOUT_MONITORS_BUFFER: [u8; 8] = [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]; pub const MONITOR_DATA_WITH_MONITORS_BUFFER: [u8; 48] = [ - 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x7f, 0x07, 0x00, 0x00, 0x37, 0x04, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0xfb, 0xff, 0xff, - 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x07, 0x00, + 0x00, 0x37, 0x04, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0xfb, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ]; lazy_static! { - pub static ref MONITOR_DATA_WITHOUT_MONITORS: ClientMonitorData = ClientMonitorData { - monitors: Vec::new() - }; + pub static ref MONITOR_DATA_WITHOUT_MONITORS: ClientMonitorData = ClientMonitorData { monitors: Vec::new() }; pub static ref MONITOR_DATA_WITH_MONITORS: ClientMonitorData = ClientMonitorData { monitors: vec![ Monitor { diff --git a/ironrdp/src/gcc/monitor_extended_data.rs b/ironrdp/src/gcc/monitor_extended_data.rs index ab7597a1..b50b064a 100644 --- a/ironrdp/src/gcc/monitor_extended_data.rs +++ b/ironrdp/src/gcc/monitor_extended_data.rs @@ -45,9 +45,7 @@ impl PduParsing for ClientMonitorExtendedData { extended_monitors_info.push(ExtendedMonitorInfo::from_buffer(&mut buffer)?); } - Ok(Self { - extended_monitors_info, - }) + Ok(Self { extended_monitors_info }) } fn to_buffer(&self, mut buffer: impl io::Write) -> Result<(), Self::Error> { buffer.write_u32::(0)?; // flags @@ -131,8 +129,4 @@ pub enum MonitorExtendedDataError { InvalidMonitorCount, } -impl_from_error!( - io::Error, - MonitorExtendedDataError, - MonitorExtendedDataError::IOError -); +impl_from_error!(io::Error, MonitorExtendedDataError, MonitorExtendedDataError::IOError); diff --git a/ironrdp/src/gcc/monitor_extended_data/test.rs b/ironrdp/src/gcc/monitor_extended_data/test.rs index bc77537a..23757bc6 100644 --- a/ironrdp/src/gcc/monitor_extended_data/test.rs +++ b/ironrdp/src/gcc/monitor_extended_data/test.rs @@ -2,40 +2,36 @@ use lazy_static::lazy_static; use super::*; -pub const MONITOR_DATA_WITHOUT_MONITORS_BUFFER: [u8; 12] = [ - 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -]; +pub const MONITOR_DATA_WITHOUT_MONITORS_BUFFER: [u8; 12] = + [0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]; pub const MONITOR_DATA_WITH_MONITORS_BUFFER: [u8; 52] = [ - 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ]; lazy_static! { - pub static ref MONITOR_DATA_WITHOUT_MONITORS: ClientMonitorExtendedData = - ClientMonitorExtendedData { - extended_monitors_info: Vec::new() - }; - pub static ref MONITOR_DATA_WITH_MONITORS: ClientMonitorExtendedData = - ClientMonitorExtendedData { - extended_monitors_info: vec![ - ExtendedMonitorInfo { - physical_width: 0, - physical_height: 0, - orientation: MonitorOrientation::Landscape, - desktop_scale_factor: 0, - device_scale_factor: 0, - }, - ExtendedMonitorInfo { - physical_width: 0, - physical_height: 0, - orientation: MonitorOrientation::Landscape, - desktop_scale_factor: 0, - device_scale_factor: 0, - } - ] - }; + pub static ref MONITOR_DATA_WITHOUT_MONITORS: ClientMonitorExtendedData = ClientMonitorExtendedData { + extended_monitors_info: Vec::new() + }; + pub static ref MONITOR_DATA_WITH_MONITORS: ClientMonitorExtendedData = ClientMonitorExtendedData { + extended_monitors_info: vec![ + ExtendedMonitorInfo { + physical_width: 0, + physical_height: 0, + orientation: MonitorOrientation::Landscape, + desktop_scale_factor: 0, + device_scale_factor: 0, + }, + ExtendedMonitorInfo { + physical_width: 0, + physical_height: 0, + orientation: MonitorOrientation::Landscape, + desktop_scale_factor: 0, + device_scale_factor: 0, + } + ] + }; } #[test] diff --git a/ironrdp/src/gcc/multi_transport_channel_data/test.rs b/ironrdp/src/gcc/multi_transport_channel_data/test.rs index 63a2046a..f5f14a20 100644 --- a/ironrdp/src/gcc/multi_transport_channel_data/test.rs +++ b/ironrdp/src/gcc/multi_transport_channel_data/test.rs @@ -5,12 +5,11 @@ use super::*; pub const SERVER_GCC_MULTI_TRANSPORT_CHANNEL_BLOCK_BUFFER: [u8; 4] = [0x01, 0x03, 0x00, 0x00]; lazy_static! { - pub static ref SERVER_GCC_MULTI_TRANSPORT_CHANNEL_BLOCK: MultiTransportChannelData = - MultiTransportChannelData { - flags: MultiTransportFlags::TRANSPORT_TYPE_UDP_FECR - | MultiTransportFlags::TRANSPORT_TYPE_UDP_PREFERRED - | MultiTransportFlags::SOFT_SYNC_TCP_TO_UDP, - }; + pub static ref SERVER_GCC_MULTI_TRANSPORT_CHANNEL_BLOCK: MultiTransportChannelData = MultiTransportChannelData { + flags: MultiTransportFlags::TRANSPORT_TYPE_UDP_FECR + | MultiTransportFlags::TRANSPORT_TYPE_UDP_PREFERRED + | MultiTransportFlags::SOFT_SYNC_TCP_TO_UDP, + }; } #[test] diff --git a/ironrdp/src/gcc/network_data.rs b/ironrdp/src/gcc/network_data.rs index 8f0252c2..40462c05 100644 --- a/ironrdp/src/gcc/network_data.rs +++ b/ironrdp/src/gcc/network_data.rs @@ -1,10 +1,8 @@ #[cfg(test)] pub mod test; -use std::{ - io::{self, Write}, - str, -}; +use std::io::{self, Write}; +use std::str; use bitflags::bitflags; use byteorder::{LittleEndian, ReadBytesExt, WriteBytesExt}; @@ -120,10 +118,7 @@ impl PduParsing for ServerNetworkData { fn buffer_length(&self) -> usize { let padding_size = if self.write_padding() { 2 } else { 0 }; - SERVER_IO_CHANNEL_SIZE - + SERVER_CHANNEL_COUNT_SIZE - + self.channel_ids.len() * SERVER_CHANNEL_SIZE - + padding_size + SERVER_IO_CHANNEL_SIZE + SERVER_CHANNEL_COUNT_SIZE + self.channel_ids.len() * SERVER_CHANNEL_SIZE + padding_size } } @@ -194,8 +189,4 @@ pub enum NetworkDataError { } impl_from_error!(io::Error, NetworkDataError, NetworkDataError::IOError); -impl_from_error!( - str::Utf8Error, - NetworkDataError, - NetworkDataError::Utf8Error -); +impl_from_error!(str::Utf8Error, NetworkDataError, NetworkDataError::Utf8Error); diff --git a/ironrdp/src/gcc/network_data/test.rs b/ironrdp/src/gcc/network_data/test.rs index 3c0f0597..68c2bf47 100644 --- a/ironrdp/src/gcc/network_data/test.rs +++ b/ironrdp/src/gcc/network_data/test.rs @@ -51,9 +51,7 @@ lazy_static! { io_channel: 1003, channel_ids: vec![1004, 1005, 1006], }; - static ref CLIENT_NETOWORK_DATA_WITHOUT_CHANNELS: ClientNetworkData = ClientNetworkData { - channels: Vec::new() - }; + static ref CLIENT_NETOWORK_DATA_WITHOUT_CHANNELS: ClientNetworkData = ClientNetworkData { channels: Vec::new() }; static ref SERVER_NETOWORK_DATA_WITHOUT_CHANNELS_ID: ServerNetworkData = ServerNetworkData { io_channel: 1003, channel_ids: Vec::new(), diff --git a/ironrdp/src/gcc/security_data.rs b/ironrdp/src/gcc/security_data.rs index 96f8e59f..22d158ae 100644 --- a/ironrdp/src/gcc/security_data.rs +++ b/ironrdp/src/gcc/security_data.rs @@ -90,31 +90,29 @@ impl PduParsing for ServerSecurityData { let encryption_level = EncryptionLevel::from_u32(buffer.read_u32::()?) .ok_or(SecurityDataError::InvalidEncryptionLevel)?; - let (server_random, server_cert) = - if encryption_method.is_empty() && encryption_level == EncryptionLevel::None { - (None, Vec::new()) - } else { - let server_random_len = buffer.read_u32::()?; - if server_random_len != SERVER_RANDOM_LEN as u32 { - return Err(SecurityDataError::InvalidServerRandomLen(server_random_len)); - } + let (server_random, server_cert) = if encryption_method.is_empty() && encryption_level == EncryptionLevel::None + { + (None, Vec::new()) + } else { + let server_random_len = buffer.read_u32::()?; + if server_random_len != SERVER_RANDOM_LEN as u32 { + return Err(SecurityDataError::InvalidServerRandomLen(server_random_len)); + } - let server_cert_len = buffer.read_u32::()?; + let server_cert_len = buffer.read_u32::()?; - if server_cert_len > MAX_SERVER_CERT_LEN { - return Err(SecurityDataError::InvalidServerCertificateLen( - server_cert_len, - )); - } + if server_cert_len > MAX_SERVER_CERT_LEN { + return Err(SecurityDataError::InvalidServerCertificateLen(server_cert_len)); + } - let mut server_random = [0; SERVER_RANDOM_LEN]; - buffer.read_exact(&mut server_random)?; + let mut server_random = [0; SERVER_RANDOM_LEN]; + buffer.read_exact(&mut server_random)?; - let mut server_cert = vec![0; server_cert_len as usize]; - buffer.read_exact(&mut server_cert)?; + let mut server_cert = vec![0; server_cert_len as usize]; + buffer.read_exact(&mut server_cert)?; - (Some(server_random), server_cert) - }; + (Some(server_random), server_cert) + }; Ok(Self { encryption_method, diff --git a/ironrdp/src/gcc/security_data/test.rs b/ironrdp/src/gcc/security_data/test.rs index 93a93efb..7cb9599c 100644 --- a/ironrdp/src/gcc/security_data/test.rs +++ b/ironrdp/src/gcc/security_data/test.rs @@ -16,22 +16,20 @@ const SERVER_SECURITY_DATA_WITH_OPTIONAL_FIELDS_PREFIX_BUFFER: [u8; 8] = [ 0x02, 0x00, 0x00, 0x00, // encryption level ]; const SERVER_RANDOM_BUFFER: [u8; 32] = [ - 0x10, 0x11, 0x77, 0x20, 0x30, 0x61, 0x0a, 0x12, 0xe4, 0x34, 0xa1, 0x1e, 0xf2, 0xc3, 0x9f, 0x31, - 0x7d, 0xa4, 0x5f, 0x01, 0x89, 0x34, 0x96, 0xe0, 0xff, 0x11, 0x08, 0x69, 0x7f, 0x1a, 0xc3, 0xd2, + 0x10, 0x11, 0x77, 0x20, 0x30, 0x61, 0x0a, 0x12, 0xe4, 0x34, 0xa1, 0x1e, 0xf2, 0xc3, 0x9f, 0x31, 0x7d, 0xa4, 0x5f, + 0x01, 0x89, 0x34, 0x96, 0xe0, 0xff, 0x11, 0x08, 0x69, 0x7f, 0x1a, 0xc3, 0xd2, ]; const SERVER_CERT_BUFFER: [u8; 184] = [ - 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0x00, 0x5c, 0x00, - 0x52, 0x53, 0x41, 0x31, 0x48, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x01, 0x00, 0xcb, 0x81, 0xfe, 0xba, 0x6d, 0x61, 0xc3, 0x55, 0x05, 0xd5, 0x5f, 0x2e, - 0x87, 0xf8, 0x71, 0x94, 0xd6, 0xf1, 0xa5, 0xcb, 0xf1, 0x5f, 0x0c, 0x3d, 0xf8, 0x70, 0x02, 0x96, - 0xc4, 0xfb, 0x9b, 0xc8, 0x3c, 0x2d, 0x55, 0xae, 0xe8, 0xff, 0x32, 0x75, 0xea, 0x68, 0x79, 0xe5, - 0xa2, 0x01, 0xfd, 0x31, 0xa0, 0xb1, 0x1f, 0x55, 0xa6, 0x1f, 0xc1, 0xf6, 0xd1, 0x83, 0x88, 0x63, - 0x26, 0x56, 0x12, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x48, 0x00, - 0xe9, 0xe1, 0xd6, 0x28, 0x46, 0x8b, 0x4e, 0xf5, 0x0a, 0xdf, 0xfd, 0xee, 0x21, 0x99, 0xac, 0xb4, - 0xe1, 0x8f, 0x5f, 0x81, 0x57, 0x82, 0xef, 0x9d, 0x96, 0x52, 0x63, 0x27, 0x18, 0x29, 0xdb, 0xb3, - 0x4a, 0xfd, 0x9a, 0xda, 0x42, 0xad, 0xb5, 0x69, 0x21, 0x89, 0x0e, 0x1d, 0xc0, 0x4c, 0x1a, 0xa8, - 0xaa, 0x71, 0x3e, 0x0f, 0x54, 0xb9, 0x9a, 0xe4, 0x99, 0x68, 0x3f, 0x6c, 0xd6, 0x76, 0x84, 0x61, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0x00, 0x5c, 0x00, 0x52, 0x53, 0x41, + 0x31, 0x48, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0xcb, 0x81, + 0xfe, 0xba, 0x6d, 0x61, 0xc3, 0x55, 0x05, 0xd5, 0x5f, 0x2e, 0x87, 0xf8, 0x71, 0x94, 0xd6, 0xf1, 0xa5, 0xcb, 0xf1, + 0x5f, 0x0c, 0x3d, 0xf8, 0x70, 0x02, 0x96, 0xc4, 0xfb, 0x9b, 0xc8, 0x3c, 0x2d, 0x55, 0xae, 0xe8, 0xff, 0x32, 0x75, + 0xea, 0x68, 0x79, 0xe5, 0xa2, 0x01, 0xfd, 0x31, 0xa0, 0xb1, 0x1f, 0x55, 0xa6, 0x1f, 0xc1, 0xf6, 0xd1, 0x83, 0x88, + 0x63, 0x26, 0x56, 0x12, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x48, 0x00, 0xe9, 0xe1, + 0xd6, 0x28, 0x46, 0x8b, 0x4e, 0xf5, 0x0a, 0xdf, 0xfd, 0xee, 0x21, 0x99, 0xac, 0xb4, 0xe1, 0x8f, 0x5f, 0x81, 0x57, + 0x82, 0xef, 0x9d, 0x96, 0x52, 0x63, 0x27, 0x18, 0x29, 0xdb, 0xb3, 0x4a, 0xfd, 0x9a, 0xda, 0x42, 0xad, 0xb5, 0x69, + 0x21, 0x89, 0x0e, 0x1d, 0xc0, 0x4c, 0x1a, 0xa8, 0xaa, 0x71, 0x3e, 0x0f, 0x54, 0xb9, 0x9a, 0xe4, 0x99, 0x68, 0x3f, + 0x6c, 0xd6, 0x76, 0x84, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ]; lazy_static! { @@ -42,20 +40,18 @@ lazy_static! { | EncryptionMethod::FIPS, ext_encryption_methods: 0, }; - pub static ref SERVER_SECURITY_DATA_WITHOUT_OPTIONAL_FIELDS: ServerSecurityData = - ServerSecurityData { - encryption_method: EncryptionMethod::empty(), - encryption_level: EncryptionLevel::None, - server_random: None, - server_cert: Vec::new(), - }; - pub static ref SERVER_SECURITY_DATA_WITH_OPTIONAL_FIELDS: ServerSecurityData = - ServerSecurityData { - encryption_method: EncryptionMethod::BIT_128, - encryption_level: EncryptionLevel::ClientCompatible, - server_random: Some(SERVER_RANDOM_BUFFER), - server_cert: SERVER_CERT_BUFFER.to_vec(), - }; + pub static ref SERVER_SECURITY_DATA_WITHOUT_OPTIONAL_FIELDS: ServerSecurityData = ServerSecurityData { + encryption_method: EncryptionMethod::empty(), + encryption_level: EncryptionLevel::None, + server_random: None, + server_cert: Vec::new(), + }; + pub static ref SERVER_SECURITY_DATA_WITH_OPTIONAL_FIELDS: ServerSecurityData = ServerSecurityData { + encryption_method: EncryptionMethod::BIT_128, + encryption_level: EncryptionLevel::ClientCompatible, + server_random: Some(SERVER_RANDOM_BUFFER), + server_cert: SERVER_CERT_BUFFER.to_vec(), + }; pub static ref SERVER_SECURITY_DATA_WITH_MISMATCH_OF_REQUIRED_AND_OPTIONAL_FIELDS: ServerSecurityData = ServerSecurityData { encryption_method: EncryptionMethod::empty(), @@ -99,10 +95,7 @@ lazy_static! { fn from_buffer_correctly_parses_client_security_data() { let buffer = CLIENT_SECURITY_DATA_BUFFER.as_ref(); - assert_eq!( - *CLIENT_SECURITY_DATA, - ClientSecurityData::from_buffer(buffer).unwrap() - ); + assert_eq!(*CLIENT_SECURITY_DATA, ClientSecurityData::from_buffer(buffer).unwrap()); } #[test] @@ -152,10 +145,7 @@ fn from_buffer_server_security_data_fails_with_invalid_server_random_length() { match ServerSecurityData::from_buffer(buffer.as_slice()) { Err(SecurityDataError::InvalidServerRandomLen(_)) => (), - res => panic!( - "Expected the invalid server random length error, got: {:?}", - res - ), + res => panic!("Expected the invalid server random length error, got: {:?}", res), }; } diff --git a/ironrdp/src/gcc/test.rs b/ironrdp/src/gcc/test.rs index eef3261f..bb47e5c6 100644 --- a/ironrdp/src/gcc/test.rs +++ b/ironrdp/src/gcc/test.rs @@ -3,8 +3,8 @@ use num_traits::{FromPrimitive, ToPrimitive}; use super::*; use crate::gcc::{ - cluster_data, core_data, message_channel_data, monitor_data, monitor_extended_data, - multi_transport_channel_data, network_data, security_data, + cluster_data, core_data, message_channel_data, monitor_data, monitor_extended_data, multi_transport_channel_data, + network_data, security_data, }; const USER_HEADER_LEN: usize = 4; @@ -64,8 +64,7 @@ lazy_static! { buffer }; pub static ref CLIENT_GCC_WITHOUT_OPTIONAL_FIELDS: ClientGccBlocks = ClientGccBlocks { - core: core_data::client::test::CLIENT_OPTIONAL_CORE_DATA_TO_SERVER_SELECTED_PROTOCOL - .clone(), + core: core_data::client::test::CLIENT_OPTIONAL_CORE_DATA_TO_SERVER_SELECTED_PROTOCOL.clone(), security: security_data::test::CLIENT_SECURITY_DATA.clone(), network: Some(network_data::test::CLIENT_NETOWORK_DATA_WITH_CHANNELS.clone()), cluster: None, @@ -83,8 +82,7 @@ lazy_static! { pub static ref CLIENT_GCC_WITH_ALL_OPTIONAL_FIELDS: ClientGccBlocks = { let mut data = CLIENT_GCC_WITH_CLUSTER_OPTIONAL_FIELD.clone(); data.monitor = Some(monitor_data::test::MONITOR_DATA_WITH_MONITORS.clone()); - data.monitor_extended = - Some(monitor_extended_data::test::MONITOR_DATA_WITH_MONITORS.clone()); + data.monitor_extended = Some(monitor_extended_data::test::MONITOR_DATA_WITH_MONITORS.clone()); data }; @@ -98,16 +96,14 @@ lazy_static! { pub static ref SERVER_GCC_WITH_OPTIONAL_FIELDS: ServerGccBlocks = { let mut data = SERVER_GCC_WITHOUT_OPTIONAL_FIELDS.clone(); data.message_channel = Some(message_channel_data::test::SERVER_GCC_MESSAGE_CHANNEL_BLOCK); - data.multi_transport_channel = Some( - multi_transport_channel_data::test::SERVER_GCC_MULTI_TRANSPORT_CHANNEL_BLOCK.clone(), - ); + data.multi_transport_channel = + Some(multi_transport_channel_data::test::SERVER_GCC_MULTI_TRANSPORT_CHANNEL_BLOCK.clone()); data }; pub static ref CLIENT_GCC_CORE_BLOCK_BUFFER: Vec = make_gcc_block_buffer( ClientGccType::CoreData, - core_data::client::test::CLIENT_OPTIONAL_CORE_DATA_TO_SERVER_SELECTED_PROTOCOL_BUFFER - .as_ref(), + core_data::client::test::CLIENT_OPTIONAL_CORE_DATA_TO_SERVER_SELECTED_PROTOCOL_BUFFER.as_ref(), ); pub static ref CLIENT_GCC_SECURITY_BLOCK_BUFFER: Vec = make_gcc_block_buffer( ClientGccType::SecurityData, @@ -147,19 +143,14 @@ lazy_static! { ); pub static ref SERVER_GCC_MULTI_TRANSPORT_CHANNEL_BLOCK_BUFFER: Vec = make_gcc_block_buffer( ServerGccType::MultiTransportChannelData, - multi_transport_channel_data::test::SERVER_GCC_MULTI_TRANSPORT_CHANNEL_BLOCK_BUFFER - .as_ref(), + multi_transport_channel_data::test::SERVER_GCC_MULTI_TRANSPORT_CHANNEL_BLOCK_BUFFER.as_ref(), ); } fn make_gcc_block_buffer(data_type: T, buffer: &[u8]) -> Vec { let mut result = Vec::new(); result.extend(data_type.to_u16().unwrap().to_le_bytes().as_ref()); - result.extend( - ((buffer.len() + USER_HEADER_LEN) as u16) - .to_le_bytes() - .as_ref(), - ); + result.extend(((buffer.len() + USER_HEADER_LEN) as u16).to_le_bytes().as_ref()); result.extend(buffer.as_ref()); result diff --git a/ironrdp/src/input.rs b/ironrdp/src/input.rs index 5e819bc0..0d75a6ea 100644 --- a/ironrdp/src/input.rs +++ b/ironrdp/src/input.rs @@ -7,11 +7,6 @@ mod tests; pub mod unicode; pub mod unused; -pub use self::{ - mouse::MousePdu, mouse_x::MouseXPdu, scan_code::ScanCodePdu, sync::SyncPdu, - unicode::UnicodePdu, unused::UnusedPdu, -}; - use std::io; use byteorder::{LittleEndian, ReadBytesExt, WriteBytesExt}; @@ -19,6 +14,12 @@ use failure::Fail; use num_derive::{FromPrimitive, ToPrimitive}; use num_traits::{FromPrimitive, ToPrimitive}; +pub use self::mouse::MousePdu; +pub use self::mouse_x::MouseXPdu; +pub use self::scan_code::ScanCodePdu; +pub use self::sync::SyncPdu; +pub use self::unicode::UnicodePdu; +pub use self::unused::UnusedPdu; use crate::{impl_from_error, PduParsing}; #[derive(Debug, Clone, PartialEq)] @@ -70,8 +71,8 @@ impl PduParsing for InputEvent { fn from_buffer(mut stream: impl io::Read) -> Result { let _event_time = stream.read_u32::()?; // ignored by a server let event_type = stream.read_u16::()?; - let event_type = InputEventType::from_u16(event_type) - .ok_or(InputEventError::InvalidInputEventType(event_type))?; + let event_type = + InputEventType::from_u16(event_type).ok_or(InputEventError::InvalidInputEventType(event_type))?; match event_type { InputEventType::Sync => Ok(Self::Sync(SyncPdu::from_buffer(&mut stream)?)), diff --git a/ironrdp/src/input/mouse.rs b/ironrdp/src/input/mouse.rs index 517bdb64..b3a89779 100644 --- a/ironrdp/src/input/mouse.rs +++ b/ironrdp/src/input/mouse.rs @@ -51,8 +51,7 @@ impl PduParsing for MousePdu { } else { WheelEvents::empty() }; - let number_of_wheel_rotations = - self.number_of_wheel_rotations as u16 & !WHEEL_ROTATION_MASK; + let number_of_wheel_rotations = self.number_of_wheel_rotations as u16 & !WHEEL_ROTATION_MASK; let flags = self.wheel_events.bits() | self.movement_events.bits() diff --git a/ironrdp/src/input/unicode.rs b/ironrdp/src/input/unicode.rs index beba20b8..f3b1a576 100644 --- a/ironrdp/src/input/unicode.rs +++ b/ironrdp/src/input/unicode.rs @@ -20,10 +20,7 @@ impl PduParsing for UnicodePdu { let unicode_code = stream.read_u16::()?; let _padding = stream.read_u16::()?; - Ok(Self { - flags, - unicode_code, - }) + Ok(Self { flags, unicode_code }) } fn to_buffer(&self, mut stream: impl io::Write) -> Result<(), Self::Error> { diff --git a/ironrdp/src/lib.rs b/ironrdp/src/lib.rs index 89aa20d5..7246cf7d 100644 --- a/ironrdp/src/lib.rs +++ b/ironrdp/src/lib.rs @@ -12,19 +12,17 @@ mod preconnection; mod utils; mod x224; -pub use crate::{ - basic_output::{bitmap, fast_path, surface_commands}, - mcs::{ConnectInitial, ConnectResponse, McsError, McsPdu, SendDataContext}, - nego::*, - preconnection::{PreconnectionPdu, PreconnectionPduError}, - rdp::{ - vc::dvc, CapabilitySet, ClientConfirmActive, ClientInfoPdu, ControlAction, DemandActive, - ServerDemandActive, ShareControlHeader, ShareControlPdu, ShareDataHeader, ShareDataPdu, - VirtualChannel, - }, - utils::Rectangle, - x224::*, +pub use crate::basic_output::{bitmap, fast_path, surface_commands}; +pub use crate::mcs::{ConnectInitial, ConnectResponse, McsError, McsPdu, SendDataContext}; +pub use crate::nego::*; +pub use crate::preconnection::{PreconnectionPdu, PreconnectionPduError}; +pub use crate::rdp::vc::dvc; +pub use crate::rdp::{ + CapabilitySet, ClientConfirmActive, ClientInfoPdu, ControlAction, DemandActive, ServerDemandActive, + ShareControlHeader, ShareControlPdu, ShareDataHeader, ShareDataPdu, VirtualChannel, }; +pub use crate::utils::Rectangle; +pub use crate::x224::*; pub trait PduParsing { type Error; @@ -65,13 +63,11 @@ impl PduParsing for RdpPdu { let action = Action::from_u8(action).ok_or(RdpError::InvalidActionCode(action))?; match action { - Action::X224 => Ok(Self::X224(x224::Data::from_buffer_with_version( + Action::X224 => Ok(Self::X224(x224::Data::from_buffer_with_version(&mut stream, header)?)), + Action::FastPath => Ok(Self::FastPath(fast_path::FastPathHeader::from_buffer_with_header( &mut stream, header, )?)), - Action::FastPath => Ok(Self::FastPath( - fast_path::FastPathHeader::from_buffer_with_header(&mut stream, header)?, - )), } } diff --git a/ironrdp/src/mcs.rs b/ironrdp/src/mcs.rs index 81d0b4b0..a3b39e81 100644 --- a/ironrdp/src/mcs.rs +++ b/ironrdp/src/mcs.rs @@ -2,8 +2,6 @@ mod connect_initial; #[cfg(test)] mod test; -pub use self::connect_initial::{ConnectInitial, ConnectResponse, DomainParameters}; - use std::io; use byteorder::{ReadBytesExt, WriteBytesExt}; @@ -11,7 +9,9 @@ use failure::Fail; use num_derive::{FromPrimitive, ToPrimitive}; use num_traits::{FromPrimitive, ToPrimitive}; -use crate::{gcc::GccError, impl_from_error, per, PduParsing}; +pub use self::connect_initial::{ConnectInitial, ConnectResponse, DomainParameters}; +use crate::gcc::GccError; +use crate::{impl_from_error, per, PduParsing}; pub const RESULT_ENUM_LENGTH: u8 = 16; @@ -54,28 +54,26 @@ impl PduParsing for McsPdu { let mcs_pdu = DomainMcsPdu::from_u8(choice >> 2).ok_or(McsError::InvalidDomainMcsPdu)?; match mcs_pdu { - DomainMcsPdu::ErectDomainRequest => Ok(McsPdu::ErectDomainRequest( - ErectDomainPdu::from_buffer(&mut stream)?, - )), + DomainMcsPdu::ErectDomainRequest => { + Ok(McsPdu::ErectDomainRequest(ErectDomainPdu::from_buffer(&mut stream)?)) + } DomainMcsPdu::AttachUserRequest => Ok(McsPdu::AttachUserRequest), - DomainMcsPdu::AttachUserConfirm => Ok(McsPdu::AttachUserConfirm( - AttachUserConfirmPdu::from_buffer(&mut stream)?, - )), - DomainMcsPdu::ChannelJoinRequest => Ok(McsPdu::ChannelJoinRequest( - ChannelJoinRequestPdu::from_buffer(&mut stream)?, - )), - DomainMcsPdu::ChannelJoinConfirm => Ok(McsPdu::ChannelJoinConfirm( - ChannelJoinConfirmPdu::from_buffer(&mut stream)?, - )), + DomainMcsPdu::AttachUserConfirm => Ok(McsPdu::AttachUserConfirm(AttachUserConfirmPdu::from_buffer( + &mut stream, + )?)), + DomainMcsPdu::ChannelJoinRequest => Ok(McsPdu::ChannelJoinRequest(ChannelJoinRequestPdu::from_buffer( + &mut stream, + )?)), + DomainMcsPdu::ChannelJoinConfirm => Ok(McsPdu::ChannelJoinConfirm(ChannelJoinConfirmPdu::from_buffer( + &mut stream, + )?)), DomainMcsPdu::DisconnectProviderUltimatum => Ok(McsPdu::DisconnectProviderUltimatum( DisconnectUltimatumReason::from_choice(&mut stream, choice)?, )), - DomainMcsPdu::SendDataRequest => Ok(McsPdu::SendDataRequest( - SendDataContext::from_buffer(&mut stream)?, - )), - DomainMcsPdu::SendDataIndication => Ok(McsPdu::SendDataIndication( - SendDataContext::from_buffer(&mut stream)?, - )), + DomainMcsPdu::SendDataRequest => Ok(McsPdu::SendDataRequest(SendDataContext::from_buffer(&mut stream)?)), + DomainMcsPdu::SendDataIndication => { + Ok(McsPdu::SendDataIndication(SendDataContext::from_buffer(&mut stream)?)) + } } } @@ -92,25 +90,14 @@ impl PduParsing for McsPdu { McsPdu::SendDataRequest(_) => (DomainMcsPdu::SendDataRequest, 0), McsPdu::SendDataIndication(_) => (DomainMcsPdu::SendDataIndication, 0), }; - per::write_choice( - &mut stream, - (domain_mcs_pdu.to_u8().unwrap() << 2) | options, - )?; + per::write_choice(&mut stream, (domain_mcs_pdu.to_u8().unwrap() << 2) | options)?; match self { - McsPdu::ErectDomainRequest(erect_domain_request) => { - erect_domain_request.to_buffer(&mut stream)? - } + McsPdu::ErectDomainRequest(erect_domain_request) => erect_domain_request.to_buffer(&mut stream)?, McsPdu::AttachUserRequest => (), - McsPdu::AttachUserConfirm(attach_user_confirm_pdu) => { - attach_user_confirm_pdu.to_buffer(&mut stream)? - } - McsPdu::ChannelJoinRequest(channel_join_request_pdu) => { - channel_join_request_pdu.to_buffer(&mut stream)? - } - McsPdu::ChannelJoinConfirm(channel_join_confirm_pdu) => { - channel_join_confirm_pdu.to_buffer(&mut stream)? - } + McsPdu::AttachUserConfirm(attach_user_confirm_pdu) => attach_user_confirm_pdu.to_buffer(&mut stream)?, + McsPdu::ChannelJoinRequest(channel_join_request_pdu) => channel_join_request_pdu.to_buffer(&mut stream)?, + McsPdu::ChannelJoinConfirm(channel_join_confirm_pdu) => channel_join_confirm_pdu.to_buffer(&mut stream)?, McsPdu::DisconnectProviderUltimatum(reason) => reason.to_buffer(&mut stream)?, McsPdu::SendDataRequest(send_data) => send_data.to_buffer(&mut stream)?, McsPdu::SendDataIndication(send_data) => send_data.to_buffer(&mut stream)?, @@ -121,19 +108,11 @@ impl PduParsing for McsPdu { fn buffer_length(&self) -> usize { let pdu_length = match self { - McsPdu::ErectDomainRequest(erect_domain_request) => { - erect_domain_request.buffer_length() - } + McsPdu::ErectDomainRequest(erect_domain_request) => erect_domain_request.buffer_length(), McsPdu::AttachUserRequest => 0, - McsPdu::AttachUserConfirm(attach_user_confirm_pdu) => { - attach_user_confirm_pdu.buffer_length() - } - McsPdu::ChannelJoinRequest(channel_join_request_pdu) => { - channel_join_request_pdu.buffer_length() - } - McsPdu::ChannelJoinConfirm(channel_join_confirm_pdu) => { - channel_join_confirm_pdu.buffer_length() - } + McsPdu::AttachUserConfirm(attach_user_confirm_pdu) => attach_user_confirm_pdu.buffer_length(), + McsPdu::ChannelJoinRequest(channel_join_request_pdu) => channel_join_request_pdu.buffer_length(), + McsPdu::ChannelJoinConfirm(channel_join_confirm_pdu) => channel_join_confirm_pdu.buffer_length(), McsPdu::DisconnectProviderUltimatum(reason) => reason.buffer_length(), McsPdu::SendDataRequest(send_data) => send_data.buffer_length(), McsPdu::SendDataIndication(send_data) => send_data.buffer_length(), @@ -335,14 +314,12 @@ impl DisconnectUltimatumReason { fn from_choice(mut stream: impl io::Read, choice: u8) -> Result { let b = per::read_choice(&mut stream)?; - Self::from_u8(((choice & 0x01) << 1) | (b >> 7)) - .ok_or(McsError::InvalidDisconnectProviderUltimatum) + Self::from_u8(((choice & 0x01) << 1) | (b >> 7)).ok_or(McsError::InvalidDisconnectProviderUltimatum) } fn to_buffer(self, mut stream: impl io::Write) -> Result<(), McsError> { let enumerated = match self { - DisconnectUltimatumReason::UserRequested - | DisconnectUltimatumReason::ProviderInitiated => 0x80, + DisconnectUltimatumReason::UserRequested | DisconnectUltimatumReason::ProviderInitiated => 0x80, _ => 0x40, }; per::write_enum(&mut stream, enumerated)?; @@ -382,9 +359,6 @@ impl_from_error!(GccError, McsError, McsError::GccError); impl From for io::Error { fn from(e: McsError) -> io::Error { - io::Error::new( - io::ErrorKind::Other, - format!("MCS Connection Sequence error: {}", e), - ) + io::Error::new(io::ErrorKind::Other, format!("MCS Connection Sequence error: {}", e)) } } diff --git a/ironrdp/src/mcs/connect_initial.rs b/ironrdp/src/mcs/connect_initial.rs index 7b81c703..7091d044 100644 --- a/ironrdp/src/mcs/connect_initial.rs +++ b/ironrdp/src/mcs/connect_initial.rs @@ -4,14 +4,9 @@ mod test; use std::io; use super::{McsError, RESULT_ENUM_LENGTH}; -use crate::{ - ber, - gcc::{ - conference_create::{ConferenceCreateRequest, ConferenceCreateResponse}, - Channel, ClientGccBlocks, - }, - PduParsing, -}; +use crate::gcc::conference_create::{ConferenceCreateRequest, ConferenceCreateResponse}; +use crate::gcc::{Channel, ClientGccBlocks}; +use crate::{ber, PduParsing}; const MCS_TYPE_CONNECT_INITIAL: u8 = 0x65; const MCS_TYPE_CONNECT_RESPONSE: u8 = 0x66; @@ -81,21 +76,14 @@ impl PduParsing for ConnectInitial { } fn to_buffer(&self, mut stream: impl io::Write) -> Result<(), McsError> { - ber::write_application_tag( - &mut stream, - MCS_TYPE_CONNECT_INITIAL, - self.fields_buffer_ber_length(), - )?; + ber::write_application_tag(&mut stream, MCS_TYPE_CONNECT_INITIAL, self.fields_buffer_ber_length())?; ber::write_octet_string(&mut stream, self.calling_domain_selector.as_ref())?; ber::write_octet_string(&mut stream, self.called_domain_selector.as_ref())?; ber::write_bool(&mut stream, self.upward_flag)?; self.target_parameters.to_buffer(&mut stream)?; self.min_parameters.to_buffer(&mut stream)?; self.max_parameters.to_buffer(&mut stream)?; - ber::write_octet_string_tag( - &mut stream, - self.conference_create_request.buffer_length() as u16, - )?; + ber::write_octet_string_tag(&mut stream, self.conference_create_request.buffer_length() as u16)?; self.conference_create_request.to_buffer(&mut stream)?; Ok(()) @@ -104,8 +92,7 @@ impl PduParsing for ConnectInitial { fn buffer_length(&self) -> usize { let fields_buffer_ber_length = self.fields_buffer_ber_length(); - (fields_buffer_ber_length - + ber::sizeof_application_tag(MCS_TYPE_CONNECT_INITIAL, fields_buffer_ber_length)) + (fields_buffer_ber_length + ber::sizeof_application_tag(MCS_TYPE_CONNECT_INITIAL, fields_buffer_ber_length)) as usize } } @@ -122,9 +109,7 @@ impl ConnectResponse { self.conference_create_response.gcc_blocks.channel_ids() } pub fn global_channel_id(&self) -> u16 { - self.conference_create_response - .gcc_blocks - .global_channel_id() + self.conference_create_response.gcc_blocks.global_channel_id() } fn fields_buffer_ber_length(&self) -> u16 { @@ -154,18 +139,11 @@ impl PduParsing for ConnectResponse { } fn to_buffer(&self, mut stream: impl io::Write) -> Result<(), McsError> { - ber::write_application_tag( - &mut stream, - MCS_TYPE_CONNECT_RESPONSE, - self.fields_buffer_ber_length(), - )?; + ber::write_application_tag(&mut stream, MCS_TYPE_CONNECT_RESPONSE, self.fields_buffer_ber_length())?; ber::write_enumerated(&mut stream, 0)?; ber::write_integer(&mut stream, self.called_connect_id)?; self.domain_parameters.to_buffer(&mut stream)?; - ber::write_octet_string_tag( - &mut stream, - self.conference_create_response.buffer_length() as u16, - )?; + ber::write_octet_string_tag(&mut stream, self.conference_create_response.buffer_length() as u16)?; self.conference_create_response.to_buffer(&mut stream)?; Ok(()) @@ -174,8 +152,7 @@ impl PduParsing for ConnectResponse { fn buffer_length(&self) -> usize { let fields_buffer_ber_length = self.fields_buffer_ber_length(); - (fields_buffer_ber_length - + ber::sizeof_application_tag(MCS_TYPE_CONNECT_RESPONSE, fields_buffer_ber_length)) + (fields_buffer_ber_length + ber::sizeof_application_tag(MCS_TYPE_CONNECT_RESPONSE, fields_buffer_ber_length)) as usize } } diff --git a/ironrdp/src/mcs/connect_initial/test.rs b/ironrdp/src/mcs/connect_initial/test.rs index c75d1987..281e77c6 100644 --- a/ironrdp/src/mcs/connect_initial/test.rs +++ b/ironrdp/src/mcs/connect_initial/test.rs @@ -5,20 +5,19 @@ use crate::gcc::conference_create; const CONNECT_INITIAL_PREFIX_BUFFER_LEN: usize = 107; const CONNECT_INITIAL_PREFIX_BUFFER: [u8; CONNECT_INITIAL_PREFIX_BUFFER_LEN] = [ - 0x7f, 0x65, 0x82, 0x01, 0x99, 0x04, 0x01, 0x01, 0x04, 0x01, 0x01, 0x01, 0x01, 0xff, 0x30, 0x1a, - 0x02, 0x01, 0x22, 0x02, 0x01, 0x02, 0x02, 0x01, 0x00, 0x02, 0x01, 0x01, 0x02, 0x01, 0x00, 0x02, - 0x01, 0x01, 0x02, 0x03, 0x00, 0xff, 0xff, 0x02, 0x01, 0x02, 0x30, 0x19, 0x02, 0x01, 0x01, 0x02, - 0x01, 0x01, 0x02, 0x01, 0x01, 0x02, 0x01, 0x01, 0x02, 0x01, 0x00, 0x02, 0x01, 0x01, 0x02, 0x02, - 0x04, 0x20, 0x02, 0x01, 0x02, 0x30, 0x20, 0x02, 0x03, 0x00, 0xff, 0xff, 0x02, 0x03, 0x00, 0xfc, - 0x17, 0x02, 0x03, 0x00, 0xff, 0xff, 0x02, 0x01, 0x01, 0x02, 0x01, 0x00, 0x02, 0x01, 0x01, 0x02, - 0x03, 0x00, 0xff, 0xff, 0x02, 0x01, 0x02, 0x04, 0x82, 0x01, 0x33, + 0x7f, 0x65, 0x82, 0x01, 0x99, 0x04, 0x01, 0x01, 0x04, 0x01, 0x01, 0x01, 0x01, 0xff, 0x30, 0x1a, 0x02, 0x01, 0x22, + 0x02, 0x01, 0x02, 0x02, 0x01, 0x00, 0x02, 0x01, 0x01, 0x02, 0x01, 0x00, 0x02, 0x01, 0x01, 0x02, 0x03, 0x00, 0xff, + 0xff, 0x02, 0x01, 0x02, 0x30, 0x19, 0x02, 0x01, 0x01, 0x02, 0x01, 0x01, 0x02, 0x01, 0x01, 0x02, 0x01, 0x01, 0x02, + 0x01, 0x00, 0x02, 0x01, 0x01, 0x02, 0x02, 0x04, 0x20, 0x02, 0x01, 0x02, 0x30, 0x20, 0x02, 0x03, 0x00, 0xff, 0xff, + 0x02, 0x03, 0x00, 0xfc, 0x17, 0x02, 0x03, 0x00, 0xff, 0xff, 0x02, 0x01, 0x01, 0x02, 0x01, 0x00, 0x02, 0x01, 0x01, + 0x02, 0x03, 0x00, 0xff, 0xff, 0x02, 0x01, 0x02, 0x04, 0x82, 0x01, 0x33, ]; const CONNECT_RESPONSE_PREFIX_BUFFER_LEN: usize = 43; const CONNECT_RESPONSE_PREFIX_BUFFER: [u8; CONNECT_RESPONSE_PREFIX_BUFFER_LEN] = [ - 0x7f, 0x66, 0x82, 0x01, 0x46, 0x0a, 0x01, 0x00, 0x02, 0x01, 0x00, 0x30, 0x1a, 0x02, 0x01, 0x22, - 0x02, 0x01, 0x03, 0x02, 0x01, 0x00, 0x02, 0x01, 0x01, 0x02, 0x01, 0x00, 0x02, 0x01, 0x01, 0x02, - 0x03, 0x00, 0xff, 0xf8, 0x02, 0x01, 0x02, 0x04, 0x82, 0x01, 0x20, + 0x7f, 0x66, 0x82, 0x01, 0x46, 0x0a, 0x01, 0x00, 0x02, 0x01, 0x00, 0x30, 0x1a, 0x02, 0x01, 0x22, 0x02, 0x01, 0x03, + 0x02, 0x01, 0x00, 0x02, 0x01, 0x01, 0x02, 0x01, 0x00, 0x02, 0x01, 0x01, 0x02, 0x03, 0x00, 0xff, 0xf8, 0x02, 0x01, + 0x02, 0x04, 0x82, 0x01, 0x20, ]; lazy_static! { diff --git a/ironrdp/src/mcs/test.rs b/ironrdp/src/mcs/test.rs index 9392dffd..4b2a089c 100644 --- a/ironrdp/src/mcs/test.rs +++ b/ironrdp/src/mcs/test.rs @@ -10,20 +10,17 @@ const ATTACH_USER_REQUEST_PDU_BUFFER_LEN: usize = 1; const ATTACH_USER_REQUEST_PDU_BUFFER: [u8; ATTACH_USER_REQUEST_PDU_BUFFER_LEN] = [0x28]; const ATTACH_USER_CONFIRM_PDU_BUFFER_LEN: usize = 4; -const ATTACH_USER_CONFIRM_PDU_BUFFER: [u8; ATTACH_USER_CONFIRM_PDU_BUFFER_LEN] = - [0x2e, 0x00, 0x00, 0x06]; +const ATTACH_USER_CONFIRM_PDU_BUFFER: [u8; ATTACH_USER_CONFIRM_PDU_BUFFER_LEN] = [0x2e, 0x00, 0x00, 0x06]; const CHANNEL_JOIN_REQUEST_PDU_BUFFER_LEN: usize = 5; -const CHANNEL_JOIN_REQUEST_PDU_BUFFER: [u8; CHANNEL_JOIN_REQUEST_PDU_BUFFER_LEN] = - [0x38, 0x00, 0x06, 0x03, 0xef]; +const CHANNEL_JOIN_REQUEST_PDU_BUFFER: [u8; CHANNEL_JOIN_REQUEST_PDU_BUFFER_LEN] = [0x38, 0x00, 0x06, 0x03, 0xef]; const CHANNEL_JOIN_CONFIRM_PDU_BUFFER_LEN: usize = 8; const CHANNEL_JOIN_CONFIRM_PDU_BUFFER: [u8; CHANNEL_JOIN_CONFIRM_PDU_BUFFER_LEN] = [0x3e, 0x00, 0x00, 0x06, 0x03, 0xef, 0x03, 0xef]; const DISCONNECT_PROVIDER_ULTIMATUM_PDU_BUFFER_LEN: usize = 2; -const DISCONNECT_PROVIDER_ULTIMATUM_PDU_BUFFER: [u8; DISCONNECT_PROVIDER_ULTIMATUM_PDU_BUFFER_LEN] = - [0x21, 0x80]; +const DISCONNECT_PROVIDER_ULTIMATUM_PDU_BUFFER: [u8; DISCONNECT_PROVIDER_ULTIMATUM_PDU_BUFFER_LEN] = [0x21, 0x80]; const SEND_DATA_REQUEST_PDU_BUFFER_PREFIX_LEN: usize = 8; const SEND_DATA_REQUEST_PDU_BUFFER_PREFIX: [u8; SEND_DATA_REQUEST_PDU_BUFFER_PREFIX_LEN] = @@ -82,9 +79,7 @@ lazy_static! { #[test] fn from_buffer_returns_error_with_invalid_domain_mcs_pdu() { - let buf = vec![ - 0x48, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01, 0x03, 0xEB, 0x70, 0x14, - ]; + let buf = vec![0x48, 0x00, 0x00, 0x00, 0x70, 0x00, 0x01, 0x03, 0xEB, 0x70, 0x14]; match McsPdu::from_buffer(&mut buf.as_slice()) { Err(McsError::InvalidDomainMcsPdu) => (), @@ -124,10 +119,7 @@ fn buffer_length_is_correct_for_erect_domain_request() { fn from_buffer_correct_parses_attach_user_request() { let buf = ATTACH_USER_REQUEST_PDU_BUFFER; - assert_eq!( - ATTACH_USER_REQUEST_PDU, - McsPdu::from_buffer(buf.as_ref()).unwrap() - ); + assert_eq!(ATTACH_USER_REQUEST_PDU, McsPdu::from_buffer(buf.as_ref()).unwrap()); } #[test] @@ -155,10 +147,7 @@ fn buffer_length_is_correct_for_attach_user_request() { fn from_buffer_correct_parses_attach_user_confirm() { let buf = ATTACH_USER_CONFIRM_PDU_BUFFER; - assert_eq!( - ATTACH_USER_CONFIRM_PDU, - McsPdu::from_buffer(buf.as_ref()).unwrap() - ); + assert_eq!(ATTACH_USER_CONFIRM_PDU, McsPdu::from_buffer(buf.as_ref()).unwrap()); } #[test] @@ -186,10 +175,7 @@ fn buffer_length_is_correct_for_attach_user_confirm() { fn from_buffer_correct_parses_channel_join_request() { let buf = CHANNEL_JOIN_REQUEST_PDU_BUFFER; - assert_eq!( - CHANNEL_JOIN_REQUEST_PDU, - McsPdu::from_buffer(buf.as_ref()).unwrap() - ); + assert_eq!(CHANNEL_JOIN_REQUEST_PDU, McsPdu::from_buffer(buf.as_ref()).unwrap()); } #[test] @@ -217,10 +203,7 @@ fn buffer_length_is_correct_for_channel_join_request() { fn from_buffer_correct_parses_channel_join_confirm() { let buf = CHANNEL_JOIN_CONFIRM_PDU_BUFFER; - assert_eq!( - CHANNEL_JOIN_CONFIRM_PDU, - McsPdu::from_buffer(buf.as_ref()).unwrap() - ); + assert_eq!(CHANNEL_JOIN_CONFIRM_PDU, McsPdu::from_buffer(buf.as_ref()).unwrap()); } #[test] diff --git a/ironrdp/src/nego.rs b/ironrdp/src/nego.rs index aab4a423..dae51d59 100644 --- a/ironrdp/src/nego.rs +++ b/ironrdp/src/nego.rs @@ -1,7 +1,8 @@ #[cfg(test)] mod tests; -use std::io::{self, prelude::*}; +use std::io::prelude::*; +use std::io::{self}; use bitflags::bitflags; use byteorder::{LittleEndian, ReadBytesExt, WriteBytesExt}; @@ -9,11 +10,8 @@ use failure::Fail; use num_derive::{FromPrimitive, ToPrimitive}; use num_traits::{FromPrimitive, ToPrimitive}; -use crate::{ - impl_from_error, - x224::{TpktHeader, X224TPDUType, TPDU_REQUEST_LENGTH, TPKT_HEADER_LENGTH}, - PduParsing, -}; +use crate::x224::{TpktHeader, X224TPDUType, TPDU_REQUEST_LENGTH, TPKT_HEADER_LENGTH}; +use crate::{impl_from_error, PduParsing}; const COOKIE_PREFIX: &str = "Cookie: mstshash="; const ROUTING_TOKEN_PREFIX: &str = "Cookie: msts="; @@ -203,9 +201,7 @@ impl PduParsing for Request { match &self.nego_data { Some(NegoData::Cookie(s)) => writeln!(&mut stream, "{}{}\r", COOKIE_PREFIX, s)?, - Some(NegoData::RoutingToken(s)) => { - writeln!(&mut stream, "{}{}\r", ROUTING_TOKEN_PREFIX, s)? - } + Some(NegoData::RoutingToken(s)) => writeln!(&mut stream, "{}{}\r", ROUTING_TOKEN_PREFIX, s)?, None => (), } @@ -223,9 +219,7 @@ impl PduParsing for Request { TPDU_REQUEST_LENGTH + match &self.nego_data { Some(NegoData::Cookie(s)) => s.len() + COOKIE_PREFIX.len() + CR_LF_SEQ_LENGTH, - Some(NegoData::RoutingToken(s)) => { - s.len() + ROUTING_TOKEN_PREFIX.len() + CR_LF_SEQ_LENGTH - } + Some(NegoData::RoutingToken(s)) => s.len() + ROUTING_TOKEN_PREFIX.len() + CR_LF_SEQ_LENGTH, None => 0, } + if self.protocol.bits() > SecurityProtocol::RDP.bits() { @@ -278,8 +272,7 @@ impl PduParsing for Response { match neg_resp { Message::Response => { - let protocol = - SecurityProtocol::from_bits_truncate(stream.read_u32::()?); + let protocol = SecurityProtocol::from_bits_truncate(stream.read_u32::()?); Ok(Self { response: Some(ResponseData::Response { flags, protocol }), @@ -288,13 +281,12 @@ impl PduParsing for Response { }) } Message::Failure => { - let error = - FailureCode::from_u32(stream.read_u32::()?).ok_or_else(|| { - NegotiationError::IOError(io::Error::new( - io::ErrorKind::InvalidData, - "invalid negotiation failure code", - )) - })?; + let error = FailureCode::from_u32(stream.read_u32::()?).ok_or_else(|| { + NegotiationError::IOError(io::Error::new( + io::ErrorKind::InvalidData, + "invalid negotiation failure code", + )) + })?; Err(NegotiationError::ResponseFailure(error)) } @@ -350,10 +342,7 @@ fn read_nego_data(stream: &[u8]) -> Option<(NegoData, usize)> { } } -fn read_string_with_cr_lf( - mut stream: impl io::BufRead, - start: &str, -) -> io::Result<(String, usize)> { +fn read_string_with_cr_lf(mut stream: impl io::BufRead, start: &str) -> io::Result<(String, usize)> { let mut read_start = String::new(); stream .by_ref() @@ -392,10 +381,7 @@ fn read_string_with_cr_lf( } } -fn read_and_check_class( - mut stream: impl io::Read, - required_class: u8, -) -> Result<(), NegotiationError> { +fn read_and_check_class(mut stream: impl io::Read, required_class: u8) -> Result<(), NegotiationError> { let class = stream.read_u8()?; if class != required_class { diff --git a/ironrdp/src/nego/tests.rs b/ironrdp/src/nego/tests.rs index 564ef4ef..591b9a4d 100644 --- a/ironrdp/src/nego/tests.rs +++ b/ironrdp/src/nego/tests.rs @@ -14,10 +14,7 @@ fn rdp_negotiation_data_is_written_to_request_if_nla_security() { request.to_buffer(&mut buffer).unwrap(); - assert_eq!( - buffer[buffer.len() - usize::from(RDP_NEG_DATA_LENGTH)..], - expected - ); + assert_eq!(buffer[buffer.len() - usize::from(RDP_NEG_DATA_LENGTH)..], expected); } #[test] @@ -177,8 +174,7 @@ fn negotiation_failure_in_response_results_in_error() { ]; match Response::from_buffer(buffer.as_ref()) { - Err(NegotiationError::ResponseFailure(e)) - if e == FailureCode::SSLWithUserAuthRequiredByServer => {} + Err(NegotiationError::ResponseFailure(e)) if e == FailureCode::SSLWithUserAuthRequiredByServer => {} Err(e) => panic!("wrong error type: {}", e), _ => panic!("error expected"), } @@ -187,8 +183,8 @@ fn negotiation_failure_in_response_results_in_error() { #[test] fn cookie_in_request_is_parsed_correctly() { let request = [ - 0x43, 0x6F, 0x6F, 0x6B, 0x69, 0x65, 0x3A, 0x20, 0x6D, 0x73, 0x74, 0x73, 0x68, 0x61, 0x73, - 0x68, 0x3D, 0x55, 0x73, 0x65, 0x72, 0x0D, 0x0A, 0xFF, 0xFF, + 0x43, 0x6F, 0x6F, 0x6B, 0x69, 0x65, 0x3A, 0x20, 0x6D, 0x73, 0x74, 0x73, 0x68, 0x61, 0x73, 0x68, 0x3D, 0x55, + 0x73, 0x65, 0x72, 0x0D, 0x0A, 0xFF, 0xFF, ]; let (nego_data, _read_len) = read_nego_data(request.as_ref()).unwrap(); @@ -202,9 +198,9 @@ fn cookie_in_request_is_parsed_correctly() { #[test] fn routing_token_in_request_is_parsed_correctly() { let request = [ - 0x43, 0x6F, 0x6F, 0x6B, 0x69, 0x65, 0x3A, 0x20, 0x6D, 0x73, 0x74, 0x73, 0x3D, 0x33, 0x36, - 0x34, 0x30, 0x32, 0x30, 0x35, 0x32, 0x32, 0x38, 0x2E, 0x31, 0x35, 0x36, 0x32, 0x39, 0x2E, - 0x30, 0x30, 0x30, 0x30, 0x0D, 0x0A, 0xFF, 0xFF, + 0x43, 0x6F, 0x6F, 0x6B, 0x69, 0x65, 0x3A, 0x20, 0x6D, 0x73, 0x74, 0x73, 0x3D, 0x33, 0x36, 0x34, 0x30, 0x32, + 0x30, 0x35, 0x32, 0x32, 0x38, 0x2E, 0x31, 0x35, 0x36, 0x32, 0x39, 0x2E, 0x30, 0x30, 0x30, 0x30, 0x0D, 0x0A, + 0xFF, 0xFF, ]; let (nego_data, _read_len) = read_nego_data(request.as_ref()).unwrap(); @@ -218,8 +214,8 @@ fn routing_token_in_request_is_parsed_correctly() { #[test] fn read_string_with_cr_lf_on_non_value_results_in_error() { let request = [ - 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x20, 0x63, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x0F, 0x42, 0x73, - 0x65, 0x72, 0x0D, 0x0A, 0xFF, 0xFF, + 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x20, 0x63, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x0F, 0x42, 0x73, 0x65, 0x72, 0x0D, + 0x0A, 0xFF, 0xFF, ]; match read_string_with_cr_lf(&mut request.as_ref(), COOKIE_PREFIX) { @@ -232,8 +228,8 @@ fn read_string_with_cr_lf_on_non_value_results_in_error() { #[test] fn read_string_with_cr_lf_on_unterminated_message_results_in_error() { let request = [ - 0x43, 0x6F, 0x6F, 0x6B, 0x69, 0x65, 0x3A, 0x20, 0x6D, 0x73, 0x74, 0x73, 0x68, 0x61, 0x73, - 0x68, 0x3D, 0x55, 0x73, 0x65, 0x72, + 0x43, 0x6F, 0x6F, 0x6B, 0x69, 0x65, 0x3A, 0x20, 0x6D, 0x73, 0x74, 0x73, 0x68, 0x61, 0x73, 0x68, 0x3D, 0x55, + 0x73, 0x65, 0x72, ]; match read_string_with_cr_lf(&mut request.as_ref(), COOKIE_PREFIX) { @@ -246,8 +242,7 @@ fn read_string_with_cr_lf_on_unterminated_message_results_in_error() { #[test] fn read_string_with_cr_lf_on_unterminated_with_cr_message() { let request = [ - 0x43, 0x6F, 0x6F, 0x6B, 0x69, 0x65, 0x3A, 0x20, 0x6D, 0x73, 0x74, 0x73, 0x68, 0x61, 0x73, - 0x68, 0x3D, 0x0a, + 0x43, 0x6F, 0x6F, 0x6B, 0x69, 0x65, 0x3A, 0x20, 0x6D, 0x73, 0x74, 0x73, 0x68, 0x61, 0x73, 0x68, 0x3D, 0x0a, ]; match read_string_with_cr_lf(&mut request.as_ref(), COOKIE_PREFIX) { @@ -259,8 +254,8 @@ fn read_string_with_cr_lf_on_unterminated_with_cr_message() { #[test] fn negotiation_request_with_negotiation_data_is_parsed_correctly() { - let expected_flags = RequestFlags::RESTRICTED_ADMIN_MODE_REQUIRED - | RequestFlags::REDIRECTED_AUTHENTICATION_MODE_REQUIRED; + let expected_flags = + RequestFlags::RESTRICTED_ADMIN_MODE_REQUIRED | RequestFlags::REDIRECTED_AUTHENTICATION_MODE_REQUIRED; #[rustfmt::skip] let buffer = [ @@ -295,8 +290,8 @@ fn negotiation_request_with_negotiation_data_is_parsed_correctly() { #[test] fn negotiation_request_without_variable_fields_is_parsed_correctly() { - let expected_flags = RequestFlags::RESTRICTED_ADMIN_MODE_REQUIRED - | RequestFlags::REDIRECTED_AUTHENTICATION_MODE_REQUIRED; + let expected_flags = + RequestFlags::RESTRICTED_ADMIN_MODE_REQUIRED | RequestFlags::REDIRECTED_AUTHENTICATION_MODE_REQUIRED; #[rustfmt::skip] let buffer = [ @@ -625,8 +620,7 @@ fn read_and_check_tpdu_header_reads_correct_data_correctly() { 0x00, // class ]; - crate::x224::read_and_check_tpdu_header(buffer.as_ref(), X224TPDUType::ConnectionConfirm) - .unwrap(); + crate::x224::read_and_check_tpdu_header(buffer.as_ref(), X224TPDUType::ConnectionConfirm).unwrap(); } #[test] @@ -657,8 +651,8 @@ fn invalid_class_is_handeled_correctly() { #[test] fn parse_negotiation_request_correctly_handles_invalid_slice_length() { let request = [ - 0x43, 0x6F, 0x6F, 0x6B, 0x69, 0x65, 0x3A, 0x20, 0x6D, 0x73, 0x74, 0x73, 0x68, 0x61, 0x73, - 0x68, 0x3D, 0x0a, // failing cookie + 0x43, 0x6F, 0x6F, 0x6B, 0x69, 0x65, 0x3A, 0x20, 0x6D, 0x73, 0x74, 0x73, 0x68, 0x61, 0x73, 0x68, 0x3D, + 0x0a, // failing cookie ]; match Request::from_buffer(request.as_ref()) { diff --git a/ironrdp/src/per.rs b/ironrdp/src/per.rs index a0f41b99..481f54ff 100644 --- a/ironrdp/src/per.rs +++ b/ironrdp/src/per.rs @@ -162,10 +162,7 @@ pub fn read_enum(mut stream: impl io::Read, count: u8) -> io::Result { if u16::from(enumerated) + 1 > u16::from(count) { Err(io::Error::new( io::ErrorKind::InvalidData, - format!( - "Enumerated value ({}) does not fall within expected range", - enumerated - ), + format!("Enumerated value ({}) does not fall within expected range", enumerated), )) } else { Ok(enumerated) @@ -199,10 +196,7 @@ pub fn read_object_id(mut stream: impl io::Read) -> io::Result<[u8; OBJECT_ID_LE Ok(read_object_ids) } -pub fn write_object_id( - mut stream: impl io::Write, - object_ids: [u8; OBJECT_ID_LEN], -) -> io::Result { +pub fn write_object_id(mut stream: impl io::Write, object_ids: [u8; OBJECT_ID_LEN]) -> io::Result { let size = write_length(&mut stream, OBJECT_ID_LEN as u16 - 1)?; let first_two_tuples = object_ids[0] * 40 + object_ids[1]; @@ -224,11 +218,7 @@ pub fn read_octet_string(mut stream: impl io::Read, min: usize) -> io::Result io::Result { +pub fn write_octet_string(mut stream: impl io::Write, octet_string: &[u8], min: usize) -> io::Result { let length = if octet_string.len() >= min { octet_string.len() - min } else { @@ -252,16 +242,8 @@ pub fn read_numeric_string(mut stream: impl io::Read, min: u16) -> io::Result<() Ok(()) } -pub fn write_numeric_string( - mut stream: impl io::Write, - num_str: &[u8], - min: usize, -) -> io::Result { - let length = if num_str.len() >= min { - num_str.len() - min - } else { - min - }; +pub fn write_numeric_string(mut stream: impl io::Write, num_str: &[u8], min: usize) -> io::Result { + let length = if num_str.len() >= min { num_str.len() - min } else { min }; let mut size = write_length(&mut stream, length as u16)?; diff --git a/ironrdp/src/per/test.rs b/ironrdp/src/per/test.rs index e53302ae..9c90a52a 100644 --- a/ironrdp/src/per/test.rs +++ b/ironrdp/src/per/test.rs @@ -220,10 +220,7 @@ fn write_numeric_string_is_correct() { #[test] fn read_octet_string_returns_ok() { let buf = [0x00, 0x44, 0x75, 0x63, 0x61]; - assert_eq!( - b"Duca".as_ref(), - read_octet_string(buf.as_ref(), 4).unwrap().as_slice() - ); + assert_eq!(b"Duca".as_ref(), read_octet_string(buf.as_ref(), 4).unwrap().as_slice()); } #[test] diff --git a/ironrdp/src/preconnection.rs b/ironrdp/src/preconnection.rs index 20e01f2d..98bed42f 100644 --- a/ironrdp/src/preconnection.rs +++ b/ironrdp/src/preconnection.rs @@ -5,11 +5,8 @@ use failure::Fail; use num_derive::{FromPrimitive, ToPrimitive}; use num_traits::{FromPrimitive, ToPrimitive}; -use crate::{ - impl_from_error, - utils::{self, SplitTo}, - PduBufferParsing, -}; +use crate::utils::{self, SplitTo}; +use crate::{impl_from_error, PduBufferParsing}; const PRECONNECTION_PDU_V1_SIZE: usize = 16; @@ -41,8 +38,7 @@ impl PduBufferParsing<'_> for PreconnectionPdu { buffer.read_u32::()?; // flags let version = buffer.read_u32::()?; - let version = - Version::from_u32(version).ok_or(PreconnectionPduError::UnexpectedVersion(version))?; + let version = Version::from_u32(version).ok_or(PreconnectionPduError::UnexpectedVersion(version))?; let id = buffer.read_u32::()?; @@ -74,11 +70,7 @@ impl PduBufferParsing<'_> for PreconnectionPdu { } }; - Ok(Self { - id, - cch_pcb, - payload, - }) + Ok(Self { id, cch_pcb, payload }) } fn to_buffer_consume(&self, buffer: &mut &mut [u8]) -> Result<(), Self::Error> { @@ -91,11 +83,7 @@ impl PduBufferParsing<'_> for PreconnectionPdu { if let Some(ref payload) = self.payload { buffer.write_u16::(payload.len() as u16 + 1)?; // + null terminator - utils::write_string_with_null_terminator( - buffer, - payload.as_str(), - utils::CharacterSet::Unicode, - )?; + utils::write_string_with_null_terminator(buffer, payload.as_str(), utils::CharacterSet::Unicode)?; } Ok(()) @@ -143,11 +131,7 @@ pub enum PreconnectionPduError { UnexpectedVersion(u32), } -impl_from_error!( - io::Error, - PreconnectionPduError, - PreconnectionPduError::IoError -); +impl_from_error!(io::Error, PreconnectionPduError, PreconnectionPduError::IoError); #[cfg(test)] mod tests { @@ -208,18 +192,12 @@ mod tests { #[test] fn from_buffer_for_preconnection_pdu_returns_error_on_empty_size() { - assert!( - PreconnectionPdu::from_buffer(PRECONNECTION_PDU_V1_EMPTY_SIZE_BUFFER.as_ref()).is_err() - ); + assert!(PreconnectionPdu::from_buffer(PRECONNECTION_PDU_V1_EMPTY_SIZE_BUFFER.as_ref()).is_err()); } #[test] - fn from_buffer_for_preconnection_pdu_returns_error_on_data_length_greater_then_available_data() - { - assert!(PreconnectionPdu::from_buffer( - PRECONNECTION_PDU_V1_LARGE_DATA_LENGTH_BUFFER.as_ref() - ) - .is_err()); + fn from_buffer_for_preconnection_pdu_returns_error_on_data_length_greater_then_available_data() { + assert!(PreconnectionPdu::from_buffer(PRECONNECTION_PDU_V1_LARGE_DATA_LENGTH_BUFFER.as_ref()).is_err()); } #[test] @@ -243,19 +221,12 @@ mod tests { #[test] fn buffer_length_is_correct_for_preconnection_pdu_v1() { - assert_eq!( - PRECONNECTION_PDU_V1_BUFFER.len(), - PRECONNECTION_PDU_V1.buffer_length() - ); + assert_eq!(PRECONNECTION_PDU_V1_BUFFER.len(), PRECONNECTION_PDU_V1.buffer_length()); } #[test] - fn from_buffer_for_preconnection_pdu_v2_returns_error_on_payload_size_greater_then_available_data( - ) { - assert!(PreconnectionPdu::from_buffer( - PRECONNECTION_PDU_V2_LARGE_PAYLOAD_SIZE_BUFFER.as_ref() - ) - .is_err()); + fn from_buffer_for_preconnection_pdu_v2_returns_error_on_payload_size_greater_then_available_data() { + assert!(PreconnectionPdu::from_buffer(PRECONNECTION_PDU_V2_LARGE_PAYLOAD_SIZE_BUFFER.as_ref()).is_err()); } #[test] @@ -279,9 +250,6 @@ mod tests { #[test] fn buffer_length_is_correct_for_preconnection_pdu_v2() { - assert_eq!( - PRECONNECTION_PDU_V2_BUFFER.len(), - PRECONNECTION_PDU_V2.buffer_length() - ); + assert_eq!(PRECONNECTION_PDU_V2_BUFFER.len(), PRECONNECTION_PDU_V2.buffer_length()); } } diff --git a/ironrdp/src/rdp.rs b/ironrdp/src/rdp.rs index 5e11aaa5..141764ff 100644 --- a/ironrdp/src/rdp.rs +++ b/ironrdp/src/rdp.rs @@ -11,39 +11,32 @@ mod finalization_messages; mod headers; mod server_error_info; -pub use self::{ - capability_sets::{ - CapabilitySet, CapabilitySetsError, ClientConfirmActive, DemandActive, ServerDemandActive, - VirtualChannel, SERVER_CHANNEL_ID, - }, - client_info::{ - AddressFamily, ClientInfo, ClientInfoFlags, CompressionType, Credentials, DayOfWeek, - DayOfWeekOccurrence, ExtendedClientInfo, ExtendedClientOptionalInfo, Month, - PerformanceFlags, SystemTime, TimezoneInfo, - }, - finalization_messages::{ - ControlAction, ControlPdu, FontPdu, MonitorLayoutPdu, SequenceFlags, SynchronizePdu, - }, - headers::{ - BasicSecurityHeader, BasicSecurityHeaderFlags, CompressionFlags, ShareControlHeader, - ShareControlPdu, ShareControlPduType, ShareDataHeader, ShareDataPdu, ShareDataPduType, - StreamPriority, BASIC_SECURITY_HEADER_SIZE, - }, - server_error_info::{ - ErrorInfo, ProtocolIndependentCode, ProtocolIndependentConnectionBrokerCode, - ProtocolIndependentLicensingCode, RdpSpecificCode, ServerSetErrorInfoError, - ServerSetErrorInfoPdu, - }, -}; - use std::io; use failure::Fail; -use self::{ - client_info::ClientInfoError, finalization_messages::FinalizationMessagesError, - server_license::ServerLicenseError, +pub use self::capability_sets::{ + CapabilitySet, CapabilitySetsError, ClientConfirmActive, DemandActive, ServerDemandActive, VirtualChannel, + SERVER_CHANNEL_ID, }; +use self::client_info::ClientInfoError; +pub use self::client_info::{ + AddressFamily, ClientInfo, ClientInfoFlags, CompressionType, Credentials, DayOfWeek, DayOfWeekOccurrence, + ExtendedClientInfo, ExtendedClientOptionalInfo, Month, PerformanceFlags, SystemTime, TimezoneInfo, +}; +use self::finalization_messages::FinalizationMessagesError; +pub use self::finalization_messages::{ + ControlAction, ControlPdu, FontPdu, MonitorLayoutPdu, SequenceFlags, SynchronizePdu, +}; +pub use self::headers::{ + BasicSecurityHeader, BasicSecurityHeaderFlags, CompressionFlags, ShareControlHeader, ShareControlPdu, + ShareControlPduType, ShareDataHeader, ShareDataPdu, ShareDataPduType, StreamPriority, BASIC_SECURITY_HEADER_SIZE, +}; +pub use self::server_error_info::{ + ErrorInfo, ProtocolIndependentCode, ProtocolIndependentConnectionBrokerCode, ProtocolIndependentLicensingCode, + RdpSpecificCode, ServerSetErrorInfoError, ServerSetErrorInfoPdu, +}; +use self::server_license::ServerLicenseError; use crate::{impl_from_error, PduParsing}; #[derive(Debug, Clone, PartialEq)] @@ -57,10 +50,7 @@ impl PduParsing for ClientInfoPdu { fn from_buffer(mut stream: impl io::Read) -> Result { let security_header = BasicSecurityHeader::from_buffer(&mut stream)?; - if security_header - .flags - .contains(BasicSecurityHeaderFlags::INFO_PKT) - { + if security_header.flags.contains(BasicSecurityHeaderFlags::INFO_PKT) { let client_info = ClientInfo::from_buffer(&mut stream)?; Ok(Self { @@ -120,27 +110,12 @@ impl_from_error!(io::Error, RdpError, RdpError::IOError); impl_from_error!(ClientInfoError, RdpError, RdpError::ClientInfoError); impl_from_error!(ServerLicenseError, RdpError, RdpError::ServerLicenseError); impl_from_error!(CapabilitySetsError, RdpError, RdpError::CapabilitySetsError); -impl_from_error!( - FinalizationMessagesError, - RdpError, - RdpError::FinalizationMessagesError -); -impl_from_error!( - session_info::SessionError, - RdpError, - RdpError::SaveSessionInfoError -); -impl_from_error!( - ServerSetErrorInfoError, - RdpError, - RdpError::ServerSetErrorInfoError -); +impl_from_error!(FinalizationMessagesError, RdpError, RdpError::FinalizationMessagesError); +impl_from_error!(session_info::SessionError, RdpError, RdpError::SaveSessionInfoError); +impl_from_error!(ServerSetErrorInfoError, RdpError, RdpError::ServerSetErrorInfoError); impl From for io::Error { fn from(e: RdpError) -> io::Error { - io::Error::new( - io::ErrorKind::Other, - format!("RDP Connection Sequence error: {}", e), - ) + io::Error::new(io::ErrorKind::Other, format!("RDP Connection Sequence error: {}", e)) } } diff --git a/ironrdp/src/rdp/capability_sets.rs b/ironrdp/src/rdp/capability_sets.rs index 730f4680..ec3f9680 100644 --- a/ironrdp/src/rdp/capability_sets.rs +++ b/ironrdp/src/rdp/capability_sets.rs @@ -20,35 +20,32 @@ mod virtual_channel; use std::io; -pub use self::{ - bitmap::{Bitmap, BitmapDrawingFlags}, - bitmap_cache::{ - BitmapCache, BitmapCacheRev2, CacheEntry, CacheFlags, CellInfo, BITMAP_CACHE_ENTRIES_NUM, - }, - bitmap_codecs::{ - BitmapCodecs, CaptureFlags, Codec, CodecProperty, EntropyBits, Guid, NsCodec, - RemoteFxContainer, RfxCaps, RfxCapset, RfxClientCapsContainer, RfxICap, RfxICapFlags, - }, - brush::{Brush, SupportLevel}, - frame_acknowledge::FrameAcknowledge, - general::{General, GeneralExtraFlags, MajorPlatformType, MinorPlatformType}, - glyph_cache::{CacheDefinition, GlyphCache, GlyphSupportLevel, GLYPH_CACHE_NUM}, - input::{Input, InputFlags}, - large_pointer::{LargePointer, LargePointerSupportFlags}, - multifragment_update::MultifragmentUpdate, - offscreen_bitmap_cache::OffscreenBitmapCache, - order::{Order, OrderFlags, OrderSupportExFlags, OrderSupportIndex}, - pointer::Pointer, - sound::{Sound, SoundFlags}, - surface_commands::{CmdFlags, SurfaceCommands}, - virtual_channel::{VirtualChannel, VirtualChannelFlags}, -}; - use byteorder::{LittleEndian, ReadBytesExt, WriteBytesExt}; use failure::Fail; use num_derive::{FromPrimitive, ToPrimitive}; use num_traits::{FromPrimitive, ToPrimitive}; +pub use self::bitmap::{Bitmap, BitmapDrawingFlags}; +pub use self::bitmap_cache::{ + BitmapCache, BitmapCacheRev2, CacheEntry, CacheFlags, CellInfo, BITMAP_CACHE_ENTRIES_NUM, +}; +pub use self::bitmap_codecs::{ + BitmapCodecs, CaptureFlags, Codec, CodecProperty, EntropyBits, Guid, NsCodec, RemoteFxContainer, RfxCaps, + RfxCapset, RfxClientCapsContainer, RfxICap, RfxICapFlags, +}; +pub use self::brush::{Brush, SupportLevel}; +pub use self::frame_acknowledge::FrameAcknowledge; +pub use self::general::{General, GeneralExtraFlags, MajorPlatformType, MinorPlatformType}; +pub use self::glyph_cache::{CacheDefinition, GlyphCache, GlyphSupportLevel, GLYPH_CACHE_NUM}; +pub use self::input::{Input, InputFlags}; +pub use self::large_pointer::{LargePointer, LargePointerSupportFlags}; +pub use self::multifragment_update::MultifragmentUpdate; +pub use self::offscreen_bitmap_cache::OffscreenBitmapCache; +pub use self::order::{Order, OrderFlags, OrderSupportExFlags, OrderSupportIndex}; +pub use self::pointer::Pointer; +pub use self::sound::{Sound, SoundFlags}; +pub use self::surface_commands::{CmdFlags, SurfaceCommands}; +pub use self::virtual_channel::{VirtualChannel, VirtualChannelFlags}; use crate::{impl_from_error, PduParsing}; pub const SERVER_CHANNEL_ID: u16 = 0x03ea; @@ -167,9 +164,7 @@ impl PduParsing for DemandActive { + NUMBER_CAPABILITIES_FIELD_SIZE + PADDING_SIZE; - stream.write_u16::( - (self.source_descriptor.len() + NULL_TERMINATOR.as_bytes().len()) as u16, - )?; + stream.write_u16::((self.source_descriptor.len() + NULL_TERMINATOR.as_bytes().len()) as u16)?; stream.write_u16::(combined_length as u16)?; stream.write_all(self.source_descriptor.as_ref())?; stream.write_all(NULL_TERMINATOR.as_bytes())?; @@ -239,8 +234,8 @@ impl PduParsing for CapabilitySet { type Error = CapabilitySetsError; fn from_buffer(mut stream: impl io::Read) -> Result { - let capability_set_type = CapabilitySetType::from_u16(stream.read_u16::()?) - .ok_or(CapabilitySetsError::InvalidType)?; + let capability_set_type = + CapabilitySetType::from_u16(stream.read_u16::()?).ok_or(CapabilitySetsError::InvalidType)?; let length = stream.read_u16::()? as usize; @@ -248,8 +243,7 @@ impl PduParsing for CapabilitySet { return Err(CapabilitySetsError::InvalidLength); } - let buffer_length = - length - CAPABILITY_SET_TYPE_FIELD_SIZE - CAPABILITY_SET_LENGTH_FIELD_SIZE; + let buffer_length = length - CAPABILITY_SET_TYPE_FIELD_SIZE - CAPABILITY_SET_LENGTH_FIELD_SIZE; let mut capability_set_buffer = vec![0; buffer_length]; stream.read_exact(capability_set_buffer.as_mut())?; @@ -263,12 +257,12 @@ impl PduParsing for CapabilitySet { CapabilitySetType::Order => Ok(CapabilitySet::Order(Order::from_buffer( &mut capability_set_buffer.as_slice(), )?)), - CapabilitySetType::BitmapCache => Ok(CapabilitySet::BitmapCache( - BitmapCache::from_buffer(&mut capability_set_buffer.as_slice())?, - )), - CapabilitySetType::BitmapCacheRev2 => Ok(CapabilitySet::BitmapCacheRev2( - BitmapCacheRev2::from_buffer(&mut capability_set_buffer.as_slice())?, - )), + CapabilitySetType::BitmapCache => Ok(CapabilitySet::BitmapCache(BitmapCache::from_buffer( + &mut capability_set_buffer.as_slice(), + )?)), + CapabilitySetType::BitmapCacheRev2 => Ok(CapabilitySet::BitmapCacheRev2(BitmapCacheRev2::from_buffer( + &mut capability_set_buffer.as_slice(), + )?)), CapabilitySetType::Pointer => Ok(CapabilitySet::Pointer(Pointer::from_buffer( &mut capability_set_buffer.as_slice(), )?)), @@ -281,50 +275,44 @@ impl PduParsing for CapabilitySet { CapabilitySetType::Brush => Ok(CapabilitySet::Brush(Brush::from_buffer( &mut capability_set_buffer.as_slice(), )?)), - CapabilitySetType::GlyphCache => Ok(CapabilitySet::GlyphCache( - GlyphCache::from_buffer(&mut capability_set_buffer.as_slice())?, - )), + CapabilitySetType::GlyphCache => Ok(CapabilitySet::GlyphCache(GlyphCache::from_buffer( + &mut capability_set_buffer.as_slice(), + )?)), CapabilitySetType::OffscreenBitmapCache => Ok(CapabilitySet::OffscreenBitmapCache( OffscreenBitmapCache::from_buffer(&mut capability_set_buffer.as_slice())?, )), - CapabilitySetType::VirtualChannel => Ok(CapabilitySet::VirtualChannel( - VirtualChannel::from_buffer(&mut capability_set_buffer.as_slice())?, - )), - CapabilitySetType::SurfaceCommands => Ok(CapabilitySet::SurfaceCommands( - SurfaceCommands::from_buffer(&mut capability_set_buffer.as_slice())?, - )), - CapabilitySetType::BitmapCodecs => Ok(CapabilitySet::BitmapCodecs( - BitmapCodecs::from_buffer(&mut capability_set_buffer.as_slice())?, - )), + CapabilitySetType::VirtualChannel => Ok(CapabilitySet::VirtualChannel(VirtualChannel::from_buffer( + &mut capability_set_buffer.as_slice(), + )?)), + CapabilitySetType::SurfaceCommands => Ok(CapabilitySet::SurfaceCommands(SurfaceCommands::from_buffer( + &mut capability_set_buffer.as_slice(), + )?)), + CapabilitySetType::BitmapCodecs => Ok(CapabilitySet::BitmapCodecs(BitmapCodecs::from_buffer( + &mut capability_set_buffer.as_slice(), + )?)), CapabilitySetType::Control => Ok(CapabilitySet::Control(capability_set_buffer)), - CapabilitySetType::WindowActivation => { - Ok(CapabilitySet::WindowActivation(capability_set_buffer)) - } + CapabilitySetType::WindowActivation => Ok(CapabilitySet::WindowActivation(capability_set_buffer)), CapabilitySetType::Share => Ok(CapabilitySet::Share(capability_set_buffer)), CapabilitySetType::Font => Ok(CapabilitySet::Font(capability_set_buffer)), CapabilitySetType::BitmapCacheHostSupport => { Ok(CapabilitySet::BitmapCacheHostSupport(capability_set_buffer)) } - CapabilitySetType::DesktopComposition => { - Ok(CapabilitySet::DesktopComposition(capability_set_buffer)) - } + CapabilitySetType::DesktopComposition => Ok(CapabilitySet::DesktopComposition(capability_set_buffer)), CapabilitySetType::MultiFragmentUpdate => Ok(CapabilitySet::MultiFragmentUpdate( MultifragmentUpdate::from_buffer(&mut capability_set_buffer.as_slice())?, )), - CapabilitySetType::LargePointer => Ok(CapabilitySet::LargePointer( - LargePointer::from_buffer(&mut capability_set_buffer.as_slice())?, - )), + CapabilitySetType::LargePointer => Ok(CapabilitySet::LargePointer(LargePointer::from_buffer( + &mut capability_set_buffer.as_slice(), + )?)), CapabilitySetType::ColorCache => Ok(CapabilitySet::ColorCache(capability_set_buffer)), - CapabilitySetType::DrawNineGridCache => { - Ok(CapabilitySet::DrawNineGridCache(capability_set_buffer)) - } + CapabilitySetType::DrawNineGridCache => Ok(CapabilitySet::DrawNineGridCache(capability_set_buffer)), CapabilitySetType::DrawGdiPlus => Ok(CapabilitySet::DrawGdiPlus(capability_set_buffer)), CapabilitySetType::Rail => Ok(CapabilitySet::Rail(capability_set_buffer)), CapabilitySetType::WindowList => Ok(CapabilitySet::WindowList(capability_set_buffer)), - CapabilitySetType::FrameAcknowledge => Ok(CapabilitySet::FrameAcknowledge( - FrameAcknowledge::from_buffer(&mut capability_set_buffer.as_slice())?, - )), + CapabilitySetType::FrameAcknowledge => Ok(CapabilitySet::FrameAcknowledge(FrameAcknowledge::from_buffer( + &mut capability_set_buffer.as_slice(), + )?)), } } @@ -333,190 +321,134 @@ impl PduParsing for CapabilitySet { CapabilitySet::General(capset) => { stream.write_u16::(CapabilitySetType::General.to_u16().unwrap())?; stream.write_u16::( - (capset.buffer_length() - + CAPABILITY_SET_TYPE_FIELD_SIZE - + CAPABILITY_SET_LENGTH_FIELD_SIZE) as u16, + (capset.buffer_length() + CAPABILITY_SET_TYPE_FIELD_SIZE + CAPABILITY_SET_LENGTH_FIELD_SIZE) as u16, )?; capset.to_buffer(&mut stream)?; } CapabilitySet::Bitmap(capset) => { stream.write_u16::(CapabilitySetType::Bitmap.to_u16().unwrap())?; stream.write_u16::( - (capset.buffer_length() - + CAPABILITY_SET_TYPE_FIELD_SIZE - + CAPABILITY_SET_LENGTH_FIELD_SIZE) as u16, + (capset.buffer_length() + CAPABILITY_SET_TYPE_FIELD_SIZE + CAPABILITY_SET_LENGTH_FIELD_SIZE) as u16, )?; capset.to_buffer(&mut stream)?; } CapabilitySet::Order(capset) => { stream.write_u16::(CapabilitySetType::Order.to_u16().unwrap())?; stream.write_u16::( - (capset.buffer_length() - + CAPABILITY_SET_TYPE_FIELD_SIZE - + CAPABILITY_SET_LENGTH_FIELD_SIZE) as u16, + (capset.buffer_length() + CAPABILITY_SET_TYPE_FIELD_SIZE + CAPABILITY_SET_LENGTH_FIELD_SIZE) as u16, )?; capset.to_buffer(&mut stream)?; } CapabilitySet::BitmapCache(capset) => { - stream - .write_u16::(CapabilitySetType::BitmapCache.to_u16().unwrap())?; + stream.write_u16::(CapabilitySetType::BitmapCache.to_u16().unwrap())?; stream.write_u16::( - (capset.buffer_length() - + CAPABILITY_SET_TYPE_FIELD_SIZE - + CAPABILITY_SET_LENGTH_FIELD_SIZE) as u16, + (capset.buffer_length() + CAPABILITY_SET_TYPE_FIELD_SIZE + CAPABILITY_SET_LENGTH_FIELD_SIZE) as u16, )?; capset.to_buffer(&mut stream)?; } CapabilitySet::BitmapCacheRev2(capset) => { + stream.write_u16::(CapabilitySetType::BitmapCacheRev2.to_u16().unwrap())?; stream.write_u16::( - CapabilitySetType::BitmapCacheRev2.to_u16().unwrap(), - )?; - stream.write_u16::( - (capset.buffer_length() - + CAPABILITY_SET_TYPE_FIELD_SIZE - + CAPABILITY_SET_LENGTH_FIELD_SIZE) as u16, + (capset.buffer_length() + CAPABILITY_SET_TYPE_FIELD_SIZE + CAPABILITY_SET_LENGTH_FIELD_SIZE) as u16, )?; capset.to_buffer(&mut stream)?; } CapabilitySet::Pointer(capset) => { stream.write_u16::(CapabilitySetType::Pointer.to_u16().unwrap())?; stream.write_u16::( - (capset.buffer_length() - + CAPABILITY_SET_TYPE_FIELD_SIZE - + CAPABILITY_SET_LENGTH_FIELD_SIZE) as u16, + (capset.buffer_length() + CAPABILITY_SET_TYPE_FIELD_SIZE + CAPABILITY_SET_LENGTH_FIELD_SIZE) as u16, )?; capset.to_buffer(&mut stream)?; } CapabilitySet::Sound(capset) => { stream.write_u16::(CapabilitySetType::Sound.to_u16().unwrap())?; stream.write_u16::( - (capset.buffer_length() - + CAPABILITY_SET_TYPE_FIELD_SIZE - + CAPABILITY_SET_LENGTH_FIELD_SIZE) as u16, + (capset.buffer_length() + CAPABILITY_SET_TYPE_FIELD_SIZE + CAPABILITY_SET_LENGTH_FIELD_SIZE) as u16, )?; capset.to_buffer(&mut stream)?; } CapabilitySet::Input(capset) => { stream.write_u16::(CapabilitySetType::Input.to_u16().unwrap())?; stream.write_u16::( - (capset.buffer_length() - + CAPABILITY_SET_TYPE_FIELD_SIZE - + CAPABILITY_SET_LENGTH_FIELD_SIZE) as u16, + (capset.buffer_length() + CAPABILITY_SET_TYPE_FIELD_SIZE + CAPABILITY_SET_LENGTH_FIELD_SIZE) as u16, )?; capset.to_buffer(&mut stream)?; } CapabilitySet::Brush(capset) => { stream.write_u16::(CapabilitySetType::Brush.to_u16().unwrap())?; stream.write_u16::( - (capset.buffer_length() - + CAPABILITY_SET_TYPE_FIELD_SIZE - + CAPABILITY_SET_LENGTH_FIELD_SIZE) as u16, + (capset.buffer_length() + CAPABILITY_SET_TYPE_FIELD_SIZE + CAPABILITY_SET_LENGTH_FIELD_SIZE) as u16, )?; capset.to_buffer(&mut stream)?; } CapabilitySet::GlyphCache(capset) => { - stream - .write_u16::(CapabilitySetType::GlyphCache.to_u16().unwrap())?; + stream.write_u16::(CapabilitySetType::GlyphCache.to_u16().unwrap())?; stream.write_u16::( - (capset.buffer_length() - + CAPABILITY_SET_TYPE_FIELD_SIZE - + CAPABILITY_SET_LENGTH_FIELD_SIZE) as u16, + (capset.buffer_length() + CAPABILITY_SET_TYPE_FIELD_SIZE + CAPABILITY_SET_LENGTH_FIELD_SIZE) as u16, )?; capset.to_buffer(&mut stream)?; } CapabilitySet::OffscreenBitmapCache(capset) => { + stream.write_u16::(CapabilitySetType::OffscreenBitmapCache.to_u16().unwrap())?; stream.write_u16::( - CapabilitySetType::OffscreenBitmapCache.to_u16().unwrap(), - )?; - stream.write_u16::( - (capset.buffer_length() - + CAPABILITY_SET_TYPE_FIELD_SIZE - + CAPABILITY_SET_LENGTH_FIELD_SIZE) as u16, + (capset.buffer_length() + CAPABILITY_SET_TYPE_FIELD_SIZE + CAPABILITY_SET_LENGTH_FIELD_SIZE) as u16, )?; capset.to_buffer(&mut stream)?; } CapabilitySet::VirtualChannel(capset) => { + stream.write_u16::(CapabilitySetType::VirtualChannel.to_u16().unwrap())?; stream.write_u16::( - CapabilitySetType::VirtualChannel.to_u16().unwrap(), - )?; - stream.write_u16::( - (capset.buffer_length() - + CAPABILITY_SET_TYPE_FIELD_SIZE - + CAPABILITY_SET_LENGTH_FIELD_SIZE) as u16, + (capset.buffer_length() + CAPABILITY_SET_TYPE_FIELD_SIZE + CAPABILITY_SET_LENGTH_FIELD_SIZE) as u16, )?; capset.to_buffer(&mut stream)?; } CapabilitySet::SurfaceCommands(capset) => { + stream.write_u16::(CapabilitySetType::SurfaceCommands.to_u16().unwrap())?; stream.write_u16::( - CapabilitySetType::SurfaceCommands.to_u16().unwrap(), - )?; - stream.write_u16::( - (capset.buffer_length() - + CAPABILITY_SET_TYPE_FIELD_SIZE - + CAPABILITY_SET_LENGTH_FIELD_SIZE) as u16, + (capset.buffer_length() + CAPABILITY_SET_TYPE_FIELD_SIZE + CAPABILITY_SET_LENGTH_FIELD_SIZE) as u16, )?; capset.to_buffer(&mut stream)?; } CapabilitySet::BitmapCodecs(capset) => { - stream - .write_u16::(CapabilitySetType::BitmapCodecs.to_u16().unwrap())?; + stream.write_u16::(CapabilitySetType::BitmapCodecs.to_u16().unwrap())?; stream.write_u16::( - (capset.buffer_length() - + CAPABILITY_SET_TYPE_FIELD_SIZE - + CAPABILITY_SET_LENGTH_FIELD_SIZE) as u16, + (capset.buffer_length() + CAPABILITY_SET_TYPE_FIELD_SIZE + CAPABILITY_SET_LENGTH_FIELD_SIZE) as u16, )?; capset.to_buffer(&mut stream)?; } CapabilitySet::MultiFragmentUpdate(capset) => { + stream.write_u16::(CapabilitySetType::MultiFragmentUpdate.to_u16().unwrap())?; stream.write_u16::( - CapabilitySetType::MultiFragmentUpdate.to_u16().unwrap(), - )?; - stream.write_u16::( - (capset.buffer_length() - + CAPABILITY_SET_TYPE_FIELD_SIZE - + CAPABILITY_SET_LENGTH_FIELD_SIZE) as u16, + (capset.buffer_length() + CAPABILITY_SET_TYPE_FIELD_SIZE + CAPABILITY_SET_LENGTH_FIELD_SIZE) as u16, )?; capset.to_buffer(&mut stream)?; } CapabilitySet::LargePointer(capset) => { - stream - .write_u16::(CapabilitySetType::LargePointer.to_u16().unwrap())?; + stream.write_u16::(CapabilitySetType::LargePointer.to_u16().unwrap())?; stream.write_u16::( - (capset.buffer_length() - + CAPABILITY_SET_TYPE_FIELD_SIZE - + CAPABILITY_SET_LENGTH_FIELD_SIZE) as u16, + (capset.buffer_length() + CAPABILITY_SET_TYPE_FIELD_SIZE + CAPABILITY_SET_LENGTH_FIELD_SIZE) as u16, )?; capset.to_buffer(&mut stream)?; } CapabilitySet::FrameAcknowledge(capset) => { + stream.write_u16::(CapabilitySetType::FrameAcknowledge.to_u16().unwrap())?; stream.write_u16::( - CapabilitySetType::FrameAcknowledge.to_u16().unwrap(), - )?; - stream.write_u16::( - (capset.buffer_length() - + CAPABILITY_SET_TYPE_FIELD_SIZE - + CAPABILITY_SET_LENGTH_FIELD_SIZE) as u16, + (capset.buffer_length() + CAPABILITY_SET_TYPE_FIELD_SIZE + CAPABILITY_SET_LENGTH_FIELD_SIZE) as u16, )?; capset.to_buffer(&mut stream)?; } _ => { let (capability_set_type, capability_set_buffer) = match self { CapabilitySet::Control(buffer) => (CapabilitySetType::Control, buffer), - CapabilitySet::WindowActivation(buffer) => { - (CapabilitySetType::WindowActivation, buffer) - } + CapabilitySet::WindowActivation(buffer) => (CapabilitySetType::WindowActivation, buffer), CapabilitySet::Share(buffer) => (CapabilitySetType::Share, buffer), CapabilitySet::Font(buffer) => (CapabilitySetType::Font, buffer), CapabilitySet::BitmapCacheHostSupport(buffer) => { (CapabilitySetType::BitmapCacheHostSupport, buffer) } - CapabilitySet::DesktopComposition(buffer) => { - (CapabilitySetType::DesktopComposition, buffer) - } + CapabilitySet::DesktopComposition(buffer) => (CapabilitySetType::DesktopComposition, buffer), CapabilitySet::ColorCache(buffer) => (CapabilitySetType::ColorCache, buffer), - CapabilitySet::DrawNineGridCache(buffer) => { - (CapabilitySetType::DrawNineGridCache, buffer) - } + CapabilitySet::DrawNineGridCache(buffer) => (CapabilitySetType::DrawNineGridCache, buffer), CapabilitySet::DrawGdiPlus(buffer) => (CapabilitySetType::DrawGdiPlus, buffer), CapabilitySet::Rail(buffer) => (CapabilitySetType::Rail, buffer), CapabilitySet::WindowList(buffer) => (CapabilitySetType::WindowList, buffer), @@ -525,9 +457,8 @@ impl PduParsing for CapabilitySet { stream.write_u16::(capability_set_type.to_u16().unwrap())?; stream.write_u16::( - (capability_set_buffer.len() - + CAPABILITY_SET_TYPE_FIELD_SIZE - + CAPABILITY_SET_LENGTH_FIELD_SIZE) as u16, + (capability_set_buffer.len() + CAPABILITY_SET_TYPE_FIELD_SIZE + CAPABILITY_SET_LENGTH_FIELD_SIZE) + as u16, )?; stream.write_all(capability_set_buffer)?; } diff --git a/ironrdp/src/rdp/capability_sets/bitmap.rs b/ironrdp/src/rdp/capability_sets/bitmap.rs index 0c6e2eb4..b2017348 100644 --- a/ironrdp/src/rdp/capability_sets/bitmap.rs +++ b/ironrdp/src/rdp/capability_sets/bitmap.rs @@ -6,7 +6,8 @@ use std::io; use bitflags::bitflags; use byteorder::{LittleEndian, ReadBytesExt, WriteBytesExt}; -use crate::{rdp::CapabilitySetsError, PduParsing}; +use crate::rdp::CapabilitySetsError; +use crate::PduParsing; const BITMAP_LENGTH: usize = 24; diff --git a/ironrdp/src/rdp/capability_sets/bitmap_cache.rs b/ironrdp/src/rdp/capability_sets/bitmap_cache.rs index 881090da..c13647d9 100644 --- a/ironrdp/src/rdp/capability_sets/bitmap_cache.rs +++ b/ironrdp/src/rdp/capability_sets/bitmap_cache.rs @@ -6,7 +6,8 @@ use std::io; use bitflags::bitflags; use byteorder::{LittleEndian, ReadBytesExt, WriteBytesExt}; -use crate::{rdp::CapabilitySetsError, PduParsing}; +use crate::rdp::CapabilitySetsError; +use crate::PduParsing; pub const BITMAP_CACHE_ENTRIES_NUM: usize = 3; @@ -74,10 +75,7 @@ impl PduParsing for CacheEntry { let entries = buffer.read_u16::()?; let max_cell_size = buffer.read_u16::()?; - Ok(CacheEntry { - entries, - max_cell_size, - }) + Ok(CacheEntry { entries, max_cell_size }) } fn to_buffer(&self, mut buffer: impl io::Write) -> Result<(), Self::Error> { diff --git a/ironrdp/src/rdp/capability_sets/bitmap_cache/test.rs b/ironrdp/src/rdp/capability_sets/bitmap_cache/test.rs index 387f551d..993d81da 100644 --- a/ironrdp/src/rdp/capability_sets/bitmap_cache/test.rs +++ b/ironrdp/src/rdp/capability_sets/bitmap_cache/test.rs @@ -52,8 +52,7 @@ lazy_static! { ], }; pub static ref BITMAP_CACHE_REV2: BitmapCacheRev2 = BitmapCacheRev2 { - cache_flags: CacheFlags::PERSISTENT_KEYS_EXPECTED_FLAG - | CacheFlags::ALLOW_CACHE_WAITING_LIST_FLAG, + cache_flags: CacheFlags::PERSISTENT_KEYS_EXPECTED_FLAG | CacheFlags::ALLOW_CACHE_WAITING_LIST_FLAG, num_cell_caches: 3, cache_cell_info: [ CellInfo { @@ -112,10 +111,7 @@ fn buffer_length_is_correct_for_bitmap_cache_capset() { fn from_buffer_correctly_parses_bitmap_cache_rev2_capset() { let buffer = BITMAP_CACHE_REV2_BUFFER.as_ref(); - assert_eq!( - *BITMAP_CACHE_REV2, - BitmapCacheRev2::from_buffer(buffer).unwrap() - ); + assert_eq!(*BITMAP_CACHE_REV2, BitmapCacheRev2::from_buffer(buffer).unwrap()); } #[test] @@ -128,18 +124,12 @@ fn to_buffer_correctly_serializes_bitmap_cache_rev2_capset() { #[test] fn buffer_length_is_correct_for_bitmap_cache_rev2_capset() { - assert_eq!( - BITMAP_CACHE_REV2_BUFFER.len(), - BITMAP_CACHE_REV2.buffer_length() - ); + assert_eq!(BITMAP_CACHE_REV2_BUFFER.len(), BITMAP_CACHE_REV2.buffer_length()); } #[test] fn from_buffer_correctly_parses_cell_info() { - assert_eq!( - *CELL_INFO, - CellInfo::from_buffer(CELL_INFO_BUFFER.as_ref()).unwrap() - ); + assert_eq!(*CELL_INFO, CellInfo::from_buffer(CELL_INFO_BUFFER.as_ref()).unwrap()); } #[test] diff --git a/ironrdp/src/rdp/capability_sets/bitmap_codecs.rs b/ironrdp/src/rdp/capability_sets/bitmap_codecs.rs index 72dbc8c4..c92b0951 100644 --- a/ironrdp/src/rdp/capability_sets/bitmap_codecs.rs +++ b/ironrdp/src/rdp/capability_sets/bitmap_codecs.rs @@ -8,7 +8,8 @@ use byteorder::{LittleEndian, ReadBytesExt, WriteBytesExt}; use num_derive::{FromPrimitive, ToPrimitive}; use num_traits::{FromPrimitive, ToPrimitive}; -use crate::{rdp::CapabilitySetsError, PduParsing}; +use crate::rdp::CapabilitySetsError; +use crate::PduParsing; const RFX_ICAP_VERSION: u16 = 0x0100; const RFX_ICAP_TILE_SIZE: u16 = 0x40; @@ -138,9 +139,7 @@ impl PduParsing for Codec { buffer.read_exact(&mut property_buffer)?; match guid { - GUID_NSCODEC => { - CodecProperty::NsCodec(NsCodec::from_buffer(&mut property_buffer.as_slice())?) - } + GUID_NSCODEC => CodecProperty::NsCodec(NsCodec::from_buffer(&mut property_buffer.as_slice())?), GUID_REMOTEFX | GUID_IMAGE_REMOTEFX => { let property = if property_buffer[0] == 0 { RemoteFxContainer::ServerContainer(codec_properties_len) @@ -417,9 +416,7 @@ impl PduParsing for RfxCapset { fn to_buffer(&self, mut buffer: impl io::Write) -> Result<(), Self::Error> { buffer.write_u16::(RFX_CAPSET_BLOCK_TYPE)?; - buffer.write_u32::( - (RFX_CAPSET_STATIC_DATA_LENGTH + self.0.len() * RFX_ICAP_LENGTH) as u32, - )?; + buffer.write_u32::((RFX_CAPSET_STATIC_DATA_LENGTH + self.0.len() * RFX_ICAP_LENGTH) as u32)?; buffer.write_u8(1)?; // codec id buffer.write_u16::(RFX_CAPSET_TYPE)?; buffer.write_u16::(self.0.len() as u16)?; @@ -469,13 +466,10 @@ impl PduParsing for RfxICap { return Err(CapabilitySetsError::InvalidRfxICapTransformBits); } - let entropy_bits = EntropyBits::from_u8(buffer.read_u8()?) - .ok_or(CapabilitySetsError::InvalidRfxICapEntropyBits)?; + let entropy_bits = + EntropyBits::from_u8(buffer.read_u8()?).ok_or(CapabilitySetsError::InvalidRfxICapEntropyBits)?; - Ok(RfxICap { - flags, - entropy_bits, - }) + Ok(RfxICap { flags, entropy_bits }) } fn to_buffer(&self, mut buffer: impl io::Write) -> Result<(), Self::Error> { diff --git a/ironrdp/src/rdp/capability_sets/bitmap_codecs/test.rs b/ironrdp/src/rdp/capability_sets/bitmap_codecs/test.rs index bcf42f31..7f744424 100644 --- a/ironrdp/src/rdp/capability_sets/bitmap_codecs/test.rs +++ b/ironrdp/src/rdp/capability_sets/bitmap_codecs/test.rs @@ -94,8 +94,7 @@ const NSCODEC_BUFFER: [u8; 3] = [ ]; const CODEC_BUFFER: [u8; 68] = [ - 0x12, 0x2f, 0x77, 0x76, 0x72, 0xbd, 0x63, 0x44, 0xAF, 0xB3, 0xB7, 0x3C, 0x9C, 0x6F, 0x78, - 0x86, // guid + 0x12, 0x2f, 0x77, 0x76, 0x72, 0xbd, 0x63, 0x44, 0xAF, 0xB3, 0xB7, 0x3C, 0x9C, 0x6F, 0x78, 0x86, // guid 0x03, // codec id 0x31, 0x00, // codec properties len 0x31, 0x00, 0x00, 0x00, // length @@ -284,10 +283,7 @@ fn buffer_length_is_correct_for_guid() { #[test] fn from_buffer_correctly_parses_rfx_icap() { - assert_eq!( - *RFX_ICAP, - RfxICap::from_buffer(RFX_ICAP_BUFFER.as_ref()).unwrap() - ); + assert_eq!(*RFX_ICAP, RfxICap::from_buffer(RFX_ICAP_BUFFER.as_ref()).unwrap()); } #[test] @@ -306,10 +302,7 @@ fn buffer_length_is_correct_for_rfx_icap() { #[test] fn from_buffer_correctly_parses_rfx_capset() { - assert_eq!( - *RFX_CAPSET, - RfxCapset::from_buffer(RFX_CAPSET_BUFFER.as_ref()).unwrap() - ); + assert_eq!(*RFX_CAPSET, RfxCapset::from_buffer(RFX_CAPSET_BUFFER.as_ref()).unwrap()); } #[test] @@ -328,10 +321,7 @@ fn buffer_length_is_correct_for_rfx_capset() { #[test] fn from_buffer_correctly_parses_rfx_caps() { - assert_eq!( - *RFX_CAPS, - RfxCaps::from_buffer(RFX_CAPS_BUFFER.as_ref()).unwrap() - ); + assert_eq!(*RFX_CAPS, RfxCaps::from_buffer(RFX_CAPS_BUFFER.as_ref()).unwrap()); } #[test] @@ -375,10 +365,7 @@ fn buffer_length_is_correct_for_rfx_client_caps_container() { #[test] fn from_buffer_correctly_parses_nscodec() { - assert_eq!( - *NSCODEC, - NsCodec::from_buffer(NSCODEC_BUFFER.as_ref()).unwrap() - ); + assert_eq!(*NSCODEC, NsCodec::from_buffer(NSCODEC_BUFFER.as_ref()).unwrap()); } #[test] @@ -461,8 +448,7 @@ fn buffer_length_is_correct_for_bitmap_codec() { #[test] fn codec_with_invalid_property_length_handles_correctly() { let codec_buffer: [u8; 68] = [ - 0x12, 0x2f, 0x77, 0x76, 0x72, 0xbd, 0x63, 0x44, 0xAF, 0xB3, 0xB7, 0x3C, 0x9C, 0x6F, 0x78, - 0x86, // guid + 0x12, 0x2f, 0x77, 0x76, 0x72, 0xbd, 0x63, 0x44, 0xAF, 0xB3, 0xB7, 0x3C, 0x9C, 0x6F, 0x78, 0x86, // guid 0x03, // codec id 0x00, 0x00, // codec properties len 0x31, 0x00, 0x00, 0x00, // length @@ -501,8 +487,8 @@ fn codec_with_invalid_property_length_handles_correctly() { #[test] fn codec_with_empty_property_length_and_ignore_guid_handles_correctly() { let codec_buffer: [u8; 19] = [ - 0xa6, 0x51, 0x43, 0x9c, 0x35, 0x35, 0xae, 0x42, 0x91, 0x0c, 0xcd, 0xfc, 0xe5, 0x76, 0x0b, - 0x58, 0x00, // codec id + 0xa6, 0x51, 0x43, 0x9c, 0x35, 0x35, 0xae, 0x42, 0x91, 0x0c, 0xcd, 0xfc, 0xe5, 0x76, 0x0b, 0x58, + 0x00, // codec id 0x00, 0x00, // codec properties len ]; @@ -517,8 +503,8 @@ fn codec_with_empty_property_length_and_ignore_guid_handles_correctly() { #[test] fn codec_with_property_length_and_ignore_guid_handled_correctly() { let codec_buffer = vec![ - 0xa6u8, 0x51, 0x43, 0x9c, 0x35, 0x35, 0xae, 0x42, 0x91, 0x0c, 0xcd, 0xfc, 0xe5, 0x76, 0x0b, - 0x58, 0x00, // codec id + 0xa6u8, 0x51, 0x43, 0x9c, 0x35, 0x35, 0xae, 0x42, 0x91, 0x0c, 0xcd, 0xfc, 0xe5, 0x76, 0x0b, 0x58, + 0x00, // codec id 0x0f, 0x00, // codec properties len 0xa6, 0x51, 0x43, 0x9c, 0x35, 0x35, 0xae, 0x42, 0x91, 0x0c, 0xcd, 0xfc, 0xe5, 0x76, 0x0b, ]; @@ -537,8 +523,7 @@ fn codec_with_property_length_and_ignore_guid_handled_correctly() { #[test] fn ns_codec_with_too_high_color_loss_level_handled_correctly() { let codec_buffer = vec![ - 0xb9, 0x1b, 0x8d, 0xca, 0x0f, 0x00, 0x4f, 0x15, 0x58, 0x9F, 0xAE, 0x2D, 0x1A, 0x87, 0xE2, - 0xd6, // guid + 0xb9, 0x1b, 0x8d, 0xca, 0x0f, 0x00, 0x4f, 0x15, 0x58, 0x9F, 0xAE, 0x2D, 0x1A, 0x87, 0xE2, 0xd6, // guid 0x00, // codec id 0x03, 0x00, // codec properties len 0x01, // allow dynamic fidelity @@ -555,17 +540,13 @@ fn ns_codec_with_too_high_color_loss_level_handled_correctly() { }), }; - assert_eq!( - codec, - Codec::from_buffer(&mut codec_buffer.as_slice()).unwrap() - ); + assert_eq!(codec, Codec::from_buffer(&mut codec_buffer.as_slice()).unwrap()); } #[test] fn ns_codec_with_too_low_color_loss_level_handled_correctly() { let codec_buffer = vec![ - 0xb9, 0x1b, 0x8d, 0xca, 0x0f, 0x00, 0x4f, 0x15, 0x58, 0x9F, 0xAE, 0x2D, 0x1A, 0x87, 0xE2, - 0xd6, // guid + 0xb9, 0x1b, 0x8d, 0xca, 0x0f, 0x00, 0x4f, 0x15, 0x58, 0x9F, 0xAE, 0x2D, 0x1A, 0x87, 0xE2, 0xd6, // guid 0x00, // codec id 0x03, 0x00, // codec properties len 0x01, // allow dynamic fidelity @@ -582,8 +563,5 @@ fn ns_codec_with_too_low_color_loss_level_handled_correctly() { }), }; - assert_eq!( - codec, - Codec::from_buffer(&mut codec_buffer.as_slice()).unwrap() - ); + assert_eq!(codec, Codec::from_buffer(&mut codec_buffer.as_slice()).unwrap()); } diff --git a/ironrdp/src/rdp/capability_sets/brush.rs b/ironrdp/src/rdp/capability_sets/brush.rs index b688899c..97077769 100644 --- a/ironrdp/src/rdp/capability_sets/brush.rs +++ b/ironrdp/src/rdp/capability_sets/brush.rs @@ -7,7 +7,8 @@ use byteorder::{LittleEndian, ReadBytesExt, WriteBytesExt}; use num_derive::{FromPrimitive, ToPrimitive}; use num_traits::{FromPrimitive, ToPrimitive}; -use crate::{rdp::CapabilitySetsError, PduParsing}; +use crate::rdp::CapabilitySetsError; +use crate::PduParsing; const BRUSH_LENGTH: usize = 4; diff --git a/ironrdp/src/rdp/capability_sets/frame_acknowledge.rs b/ironrdp/src/rdp/capability_sets/frame_acknowledge.rs index 29d887fc..8e435f8e 100644 --- a/ironrdp/src/rdp/capability_sets/frame_acknowledge.rs +++ b/ironrdp/src/rdp/capability_sets/frame_acknowledge.rs @@ -2,7 +2,8 @@ use std::io; use byteorder::{LittleEndian, ReadBytesExt, WriteBytesExt}; -use crate::{rdp::CapabilitySetsError, PduParsing}; +use crate::rdp::CapabilitySetsError; +use crate::PduParsing; #[derive(Debug, Clone, PartialEq)] pub struct FrameAcknowledge { diff --git a/ironrdp/src/rdp/capability_sets/general.rs b/ironrdp/src/rdp/capability_sets/general.rs index 74adf18c..ca734368 100644 --- a/ironrdp/src/rdp/capability_sets/general.rs +++ b/ironrdp/src/rdp/capability_sets/general.rs @@ -8,7 +8,8 @@ use byteorder::{LittleEndian, ReadBytesExt, WriteBytesExt}; use num_derive::{FromPrimitive, ToPrimitive}; use num_traits::{FromPrimitive, ToPrimitive}; -use crate::{rdp::CapabilitySetsError, PduParsing}; +use crate::rdp::CapabilitySetsError; +use crate::PduParsing; const GENERAL_LENGTH: usize = 20; const PROTOCOL_VER: u16 = 0x0200; diff --git a/ironrdp/src/rdp/capability_sets/glyph_cache.rs b/ironrdp/src/rdp/capability_sets/glyph_cache.rs index aee96f59..94a8d9ae 100644 --- a/ironrdp/src/rdp/capability_sets/glyph_cache.rs +++ b/ironrdp/src/rdp/capability_sets/glyph_cache.rs @@ -7,7 +7,8 @@ use byteorder::{LittleEndian, ReadBytesExt, WriteBytesExt}; use num_derive::{FromPrimitive, ToPrimitive}; use num_traits::{FromPrimitive, ToPrimitive}; -use crate::{rdp::CapabilitySetsError, PduParsing}; +use crate::rdp::CapabilitySetsError; +use crate::PduParsing; pub const GLYPH_CACHE_NUM: usize = 10; @@ -35,10 +36,7 @@ impl PduParsing for CacheDefinition { let entries = buffer.read_u16::()?; let max_cell_size = buffer.read_u16::()?; - Ok(CacheDefinition { - entries, - max_cell_size, - }) + Ok(CacheDefinition { entries, max_cell_size }) } fn to_buffer(&self, mut buffer: impl io::Write) -> Result<(), Self::Error> { diff --git a/ironrdp/src/rdp/capability_sets/glyph_cache/test.rs b/ironrdp/src/rdp/capability_sets/glyph_cache/test.rs index c3aebdf0..95f6ef40 100644 --- a/ironrdp/src/rdp/capability_sets/glyph_cache/test.rs +++ b/ironrdp/src/rdp/capability_sets/glyph_cache/test.rs @@ -3,9 +3,9 @@ use lazy_static::lazy_static; use super::*; const GLYPH_CACHE_BUFFER: [u8; 48] = [ - 0xfe, 0x00, 0x04, 0x00, 0xfe, 0x00, 0x04, 0x00, 0xfe, 0x00, 0x08, 0x00, 0xfe, 0x00, 0x08, 0x00, - 0xfe, 0x00, 0x10, 0x00, 0xfe, 0x00, 0x20, 0x00, 0xfe, 0x00, 0x40, 0x00, 0xfe, 0x00, 0x80, 0x00, - 0xfe, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00, 0x08, // GlyphCache + 0xfe, 0x00, 0x04, 0x00, 0xfe, 0x00, 0x04, 0x00, 0xfe, 0x00, 0x08, 0x00, 0xfe, 0x00, 0x08, 0x00, 0xfe, 0x00, 0x10, + 0x00, 0xfe, 0x00, 0x20, 0x00, 0xfe, 0x00, 0x40, 0x00, 0xfe, 0x00, 0x80, 0x00, 0xfe, 0x00, 0x00, 0x01, 0x40, 0x00, + 0x00, 0x08, // GlyphCache 0x00, 0x01, 0x00, 0x01, // FragCache 0x03, 0x00, // GlyphSupportLevel 0x00, 0x00, // pad2octets @@ -110,8 +110,5 @@ fn to_buffer_correctly_serializes_cache_definition() { #[test] fn buffer_length_is_correct_for_cache_definition() { - assert_eq!( - CACHE_DEFINITION_BUFFER.len(), - CACHE_DEFINITION.buffer_length() - ); + assert_eq!(CACHE_DEFINITION_BUFFER.len(), CACHE_DEFINITION.buffer_length()); } diff --git a/ironrdp/src/rdp/capability_sets/input.rs b/ironrdp/src/rdp/capability_sets/input.rs index ed8dc6e8..7249ca5c 100644 --- a/ironrdp/src/rdp/capability_sets/input.rs +++ b/ironrdp/src/rdp/capability_sets/input.rs @@ -7,11 +7,9 @@ use bitflags::bitflags; use byteorder::{LittleEndian, ReadBytesExt, WriteBytesExt}; use num_traits::{FromPrimitive, ToPrimitive}; -use crate::{ - gcc::{KeyboardType, IME_FILE_NAME_SIZE}, - rdp::CapabilitySetsError, - utils, PduParsing, -}; +use crate::gcc::{KeyboardType, IME_FILE_NAME_SIZE}; +use crate::rdp::CapabilitySetsError; +use crate::{utils, PduParsing}; const INPUT_LENGTH: usize = 84; @@ -82,8 +80,7 @@ impl PduParsing for Input { buffer.write_u32::(self.keyboard_subtype)?; buffer.write_u32::(self.keyboard_function_key)?; - let mut keyboard_ime_file_name_buffer = - utils::string_to_utf16(self.keyboard_ime_filename.as_ref()); + let mut keyboard_ime_file_name_buffer = utils::string_to_utf16(self.keyboard_ime_filename.as_ref()); keyboard_ime_file_name_buffer.resize(IME_FILE_NAME_SIZE - 2, 0); buffer.write_all(keyboard_ime_file_name_buffer.as_ref())?; buffer.write_u16::(0)?; // ime file name null terminator diff --git a/ironrdp/src/rdp/capability_sets/input/test.rs b/ironrdp/src/rdp/capability_sets/input/test.rs index 9722fba0..ea3eea72 100644 --- a/ironrdp/src/rdp/capability_sets/input/test.rs +++ b/ironrdp/src/rdp/capability_sets/input/test.rs @@ -9,11 +9,10 @@ const INPUT_BUFFER: [u8; 84] = [ 0x04, 0x00, 0x00, 0x00, // keyboardType 0x00, 0x00, 0x00, 0x00, // keyboardSubType 0x0c, 0x00, 0x00, 0x00, // keyboardFunctionKey - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, // imeFileName + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // imeFileName ]; lazy_static! { diff --git a/ironrdp/src/rdp/capability_sets/large_pointer.rs b/ironrdp/src/rdp/capability_sets/large_pointer.rs index 7cf9a4ca..a4ba8a4b 100644 --- a/ironrdp/src/rdp/capability_sets/large_pointer.rs +++ b/ironrdp/src/rdp/capability_sets/large_pointer.rs @@ -3,7 +3,8 @@ use std::io; use bitflags::bitflags; use byteorder::{LittleEndian, ReadBytesExt, WriteBytesExt}; -use crate::{rdp::CapabilitySetsError, PduParsing}; +use crate::rdp::CapabilitySetsError; +use crate::PduParsing; #[derive(Debug, PartialEq, Clone)] pub struct LargePointer { @@ -14,8 +15,7 @@ impl PduParsing for LargePointer { type Error = CapabilitySetsError; fn from_buffer(mut buffer: impl io::Read) -> Result { - let flags = - LargePointerSupportFlags::from_bits_truncate(buffer.read_u16::()?); + let flags = LargePointerSupportFlags::from_bits_truncate(buffer.read_u16::()?); Ok(Self { flags }) } @@ -66,9 +66,6 @@ mod test { #[test] fn buffer_length_is_correct_for_large_pointer() { - assert_eq!( - LARGE_POINTER_PDU_BUFFER.len(), - LARGE_POINTER_PDU.buffer_length() - ); + assert_eq!(LARGE_POINTER_PDU_BUFFER.len(), LARGE_POINTER_PDU.buffer_length()); } } diff --git a/ironrdp/src/rdp/capability_sets/multifragment_update.rs b/ironrdp/src/rdp/capability_sets/multifragment_update.rs index 79860b98..11b8da93 100644 --- a/ironrdp/src/rdp/capability_sets/multifragment_update.rs +++ b/ironrdp/src/rdp/capability_sets/multifragment_update.rs @@ -2,7 +2,8 @@ use std::io; use byteorder::{LittleEndian, ReadBytesExt, WriteBytesExt}; -use crate::{rdp::CapabilitySetsError, PduParsing}; +use crate::rdp::CapabilitySetsError; +use crate::PduParsing; #[derive(Debug, PartialEq, Clone)] pub struct MultifragmentUpdate { diff --git a/ironrdp/src/rdp/capability_sets/offscreen_bitmap_cache.rs b/ironrdp/src/rdp/capability_sets/offscreen_bitmap_cache.rs index b37f4cb5..728cee12 100644 --- a/ironrdp/src/rdp/capability_sets/offscreen_bitmap_cache.rs +++ b/ironrdp/src/rdp/capability_sets/offscreen_bitmap_cache.rs @@ -5,7 +5,8 @@ use std::io; use byteorder::{LittleEndian, ReadBytesExt, WriteBytesExt}; -use crate::{rdp::CapabilitySetsError, PduParsing}; +use crate::rdp::CapabilitySetsError; +use crate::PduParsing; const OFFSCREEN_BITMAP_CACHE_LENGTH: usize = 8; diff --git a/ironrdp/src/rdp/capability_sets/order.rs b/ironrdp/src/rdp/capability_sets/order.rs index 319ad040..fd0e6557 100644 --- a/ironrdp/src/rdp/capability_sets/order.rs +++ b/ironrdp/src/rdp/capability_sets/order.rs @@ -6,7 +6,8 @@ use std::io; use bitflags::bitflags; use byteorder::{LittleEndian, ReadBytesExt, WriteBytesExt}; -use crate::{rdp::CapabilitySetsError, PduParsing}; +use crate::rdp::CapabilitySetsError; +use crate::PduParsing; const ORDER_LENGTH: usize = 84; const ORD_LEVEL_1_ORDERS: u16 = 1; @@ -108,8 +109,7 @@ impl PduParsing for Order { let _text_flags = buffer.read_u16::()?; - let order_support_ex_flags = - OrderSupportExFlags::from_bits_truncate(buffer.read_u16::()?); + let order_support_ex_flags = OrderSupportExFlags::from_bits_truncate(buffer.read_u16::()?); let _padding = buffer.read_u32::()?; let desktop_save_size = buffer.read_u32::()?; diff --git a/ironrdp/src/rdp/capability_sets/order/test.rs b/ironrdp/src/rdp/capability_sets/order/test.rs index 6f576a1e..ae4e9765 100644 --- a/ironrdp/src/rdp/capability_sets/order/test.rs +++ b/ironrdp/src/rdp/capability_sets/order/test.rs @@ -3,17 +3,16 @@ use lazy_static::lazy_static; use super::*; const ORDER_BUFFER: [u8; 84] = [ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, // pad4octetsA + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, // pad4octetsA 0x01, 0x00, // desktopSaveXGranularity 0x14, 0x00, // desktopSaveYGranularity 0x00, 0x00, // pad2octetsA 0x01, 0x00, // maximumOrderLevel 0x00, 0x00, // numberFonts 0x22, 0x00, // orderFlags - 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, - 0x00, // orderSupport + 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, // orderSupport 0x00, 0x00, // textFlags 0x02, 0x00, // orderSupportExFlags 0x00, 0x00, 0x00, 0x00, // pad4octetsB diff --git a/ironrdp/src/rdp/capability_sets/pointer.rs b/ironrdp/src/rdp/capability_sets/pointer.rs index cedd42a8..cea28ca6 100644 --- a/ironrdp/src/rdp/capability_sets/pointer.rs +++ b/ironrdp/src/rdp/capability_sets/pointer.rs @@ -5,7 +5,8 @@ use std::io; use byteorder::{LittleEndian, ReadBytesExt, WriteBytesExt}; -use crate::{rdp::CapabilitySetsError, PduParsing}; +use crate::rdp::CapabilitySetsError; +use crate::PduParsing; const POINTER_LENGTH: usize = 6; diff --git a/ironrdp/src/rdp/capability_sets/sound.rs b/ironrdp/src/rdp/capability_sets/sound.rs index e1347fd7..885d0482 100644 --- a/ironrdp/src/rdp/capability_sets/sound.rs +++ b/ironrdp/src/rdp/capability_sets/sound.rs @@ -6,7 +6,8 @@ use std::io; use bitflags::bitflags; use byteorder::{LittleEndian, ReadBytesExt, WriteBytesExt}; -use crate::{rdp::CapabilitySetsError, PduParsing}; +use crate::rdp::CapabilitySetsError; +use crate::PduParsing; const SOUND_LENGTH: usize = 4; diff --git a/ironrdp/src/rdp/capability_sets/surface_commands.rs b/ironrdp/src/rdp/capability_sets/surface_commands.rs index 98227c8f..a5d658df 100644 --- a/ironrdp/src/rdp/capability_sets/surface_commands.rs +++ b/ironrdp/src/rdp/capability_sets/surface_commands.rs @@ -6,7 +6,8 @@ use std::io; use bitflags::bitflags; use byteorder::{LittleEndian, ReadBytesExt, WriteBytesExt}; -use crate::{rdp::CapabilitySetsError, PduParsing}; +use crate::rdp::CapabilitySetsError; +use crate::PduParsing; const SURFACE_COMMANDS_LENGTH: usize = 8; diff --git a/ironrdp/src/rdp/capability_sets/surface_commands/test.rs b/ironrdp/src/rdp/capability_sets/surface_commands/test.rs index 86267dce..d5e84159 100644 --- a/ironrdp/src/rdp/capability_sets/surface_commands/test.rs +++ b/ironrdp/src/rdp/capability_sets/surface_commands/test.rs @@ -32,8 +32,5 @@ fn to_buffer_correctly_serializes_surface_commands_capset() { #[test] fn buffer_length_is_correct_for_surface_commands_capset() { - assert_eq!( - SURFACE_COMMANDS_BUFFER.len(), - SURFACE_COMMANDS.buffer_length() - ); + assert_eq!(SURFACE_COMMANDS_BUFFER.len(), SURFACE_COMMANDS.buffer_length()); } diff --git a/ironrdp/src/rdp/capability_sets/test.rs b/ironrdp/src/rdp/capability_sets/test.rs index 9cf96a41..80201e33 100644 --- a/ironrdp/src/rdp/capability_sets/test.rs +++ b/ironrdp/src/rdp/capability_sets/test.rs @@ -9,35 +9,30 @@ pub const SERVER_DEMAND_ACTIVE_BUFFER: [u8; 357] = [ 0x0d, 0x00, // capabilities count 0x00, 0x00, // padding 0x09, 0x00, 0x08, 0x00, 0xea, 0x03, 0xdc, 0xe2, // Share capability set, - 0x01, 0x00, 0x18, 0x00, 0x01, 0x00, 0x03, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x1d, 0x04, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, // General capability set - 0x14, 0x00, 0x0c, 0x00, 0x02, 0x00, 0x00, 0x00, 0x40, 0x06, 0x00, - 0x00, // VirtualChannel capability set - 0x16, 0x00, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0xf6, 0x13, 0xf3, 0x01, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x9c, 0xf6, 0x13, 0xf3, 0x61, 0xa6, 0x82, 0x80, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x91, 0xbf, // DrawGdiPlus capability set + 0x01, 0x00, 0x18, 0x00, 0x01, 0x00, 0x03, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x1d, 0x04, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x01, // General capability set + 0x14, 0x00, 0x0c, 0x00, 0x02, 0x00, 0x00, 0x00, 0x40, 0x06, 0x00, 0x00, // VirtualChannel capability set + 0x16, 0x00, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0xf6, 0x13, 0xf3, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x18, 0x00, 0x00, 0x00, 0x9c, 0xf6, 0x13, 0xf3, 0x61, 0xa6, 0x82, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, + 0x91, 0xbf, // DrawGdiPlus capability set 0x0e, 0x00, 0x08, 0x00, 0x00, 0x01, 0x00, 0x00, // Font capability set - 0x02, 0x00, 0x1c, 0x00, 0x18, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, - 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, - 0x00, // Bitmap capability set - 0x03, 0x00, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x14, 0x00, 0x00, 0x00, 0x01, 0x00, - 0x00, 0x00, 0x22, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, - 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x42, 0x0f, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Order capability set + 0x02, 0x00, 0x1c, 0x00, 0x18, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x00, 0x01, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // Bitmap capability set + 0x03, 0x00, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x14, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x22, 0x00, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x40, 0x42, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Order capability set 0x0a, 0x00, 0x08, 0x00, 0x06, 0x00, 0x00, 0x00, // ColorCache capability set 0x12, 0x00, 0x08, 0x00, 0x01, 0x00, 0x00, 0x00, // BitmapCache capability set 0x08, 0x00, 0x0a, 0x00, 0x01, 0x00, 0x19, 0x00, 0x19, 0x00, // Pointer capability set - 0x0d, 0x00, 0x58, 0x00, 0x35, 0x00, 0x00, 0x00, 0xa1, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x0c, 0xf6, 0x13, 0xf3, 0x93, 0x5a, 0x37, 0xf3, 0x00, 0x90, 0x30, 0xe1, 0x34, 0x1c, 0x38, 0xf3, - 0x40, 0xf6, 0x13, 0xf3, 0x04, 0x00, 0x00, 0x00, 0x4c, 0x54, 0xdc, 0xe2, 0x08, 0x50, 0xdc, 0xe2, - 0x01, 0x00, 0x00, 0x00, 0x08, 0x50, 0xdc, 0xe2, 0x00, 0x00, 0x00, 0x00, 0x38, 0xf6, 0x13, 0xf3, - 0x2e, 0x05, 0x38, 0xf3, 0x08, 0x50, 0xdc, 0xe2, 0x2c, 0xf6, 0x13, 0xf3, 0x00, 0x00, 0x00, 0x00, - 0x08, 0x00, 0x0a, 0x00, 0x01, 0x00, 0x00, 0x00, // Input capability set + 0x0d, 0x00, 0x58, 0x00, 0x35, 0x00, 0x00, 0x00, 0xa1, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0xf6, 0x13, + 0xf3, 0x93, 0x5a, 0x37, 0xf3, 0x00, 0x90, 0x30, 0xe1, 0x34, 0x1c, 0x38, 0xf3, 0x40, 0xf6, 0x13, 0xf3, 0x04, 0x00, + 0x00, 0x00, 0x4c, 0x54, 0xdc, 0xe2, 0x08, 0x50, 0xdc, 0xe2, 0x01, 0x00, 0x00, 0x00, 0x08, 0x50, 0xdc, 0xe2, 0x00, + 0x00, 0x00, 0x00, 0x38, 0xf6, 0x13, 0xf3, 0x2e, 0x05, 0x38, 0xf3, 0x08, 0x50, 0xdc, 0xe2, 0x2c, 0xf6, 0x13, 0xf3, + 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x0a, 0x00, 0x01, 0x00, 0x00, 0x00, // Input capability set 0x17, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, // Rail capability set - 0x18, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, // WindowList capability set + 0x18, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // WindowList capability set 0x00, 0x00, 0x00, 0x00, // session id ]; pub const CLIENT_DEMAND_ACTIVE_WITH_INCOMPLETE_CAPABILITY_SET_BUFFER: [u8; 501] = [ @@ -47,41 +42,36 @@ pub const CLIENT_DEMAND_ACTIVE_WITH_INCOMPLETE_CAPABILITY_SET_BUFFER: [u8; 501] 0x4d, 0x53, 0x54, 0x53, 0x43, 0x0, // source descriptor 0x14, 0x0, // capability sets count 0x0, 0x0, // padding - 0x1, 0x0, 0x18, 0x0, 0x1, 0x0, 0x3, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x1d, 0x4, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, // general capability set - 0x2, 0x0, 0x1c, 0x0, 0x20, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x20, 0x3, 0x58, 0x2, 0x0, 0x0, - 0x1, 0x0, 0x1, 0x0, 0x0, 0xa, 0x1, 0x0, 0x0, 0x0, // bitmap - 0x3, 0x0, 0x58, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x14, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x2a, 0x0, 0x1, - 0x1, 0x1, 0x1, 0x1, 0x0, 0x0, 0x1, 0x1, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x1, 0x1, 0x1, 0x1, - 0x1, 0x1, 0x1, 0x0, 0x1, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x84, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe4, 0x4, 0x0, 0x0, // order - 0x4, 0x0, 0x28, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x78, 0x0, 0x0, 0x4, 0x78, 0x0, 0x0, 0x10, 0x51, - 0x1, 0x0, 0x40, // bitmap cache + 0x1, 0x0, 0x18, 0x0, 0x1, 0x0, 0x3, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x1d, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, // general capability set + 0x2, 0x0, 0x1c, 0x0, 0x20, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x20, 0x3, 0x58, 0x2, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, + 0x0, 0xa, 0x1, 0x0, 0x0, 0x0, // bitmap + 0x3, 0x0, 0x58, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x1, 0x0, 0x14, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x2a, 0x0, 0x1, 0x1, 0x1, 0x1, 0x1, 0x0, 0x0, 0x1, 0x1, + 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x0, 0x1, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x84, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe4, 0x4, 0x0, 0x0, // order + 0x4, 0x0, 0x28, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x78, 0x0, 0x0, 0x4, 0x78, 0x0, 0x0, 0x10, 0x51, 0x1, 0x0, 0x40, // bitmap cache 0xa, 0x0, 0x8, 0x0, 0x6, 0x0, 0x0, 0x0, // color cache 0x7, 0x0, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, // window activation 0x5, 0x0, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x2, 0x0, // control 0x8, 0x0, 0xa, 0x0, 0x1, 0x0, 0x14, 0x0, 0x15, 0x0, // pointer 0x9, 0x0, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, // share - 0xd, 0x0, 0x58, 0x0, 0x91, 0x0, 0x0, 0x0, 0x9, 0x4, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, // input + 0xd, 0x0, 0x58, 0x0, 0x91, 0x0, 0x0, 0x0, 0x9, 0x4, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, // input 0xc, 0x0, 0x8, 0x0, 0x1, 0x0, 0x0, 0x0, // sound 0xe, 0x0, 0x8, 0x0, 0x1, 0x0, 0x0, 0x0, // font - 0x10, 0x0, 0x34, 0x0, 0xfe, 0x0, 0x4, 0x0, 0xfe, 0x0, 0x4, 0x0, 0xfe, 0x0, 0x8, 0x0, 0xfe, 0x0, - 0x8, 0x0, 0xfe, 0x0, 0x10, 0x0, 0xfe, 0x0, 0x20, 0x0, 0xfe, 0x0, 0x40, 0x0, 0xfe, 0x0, 0x80, - 0x0, 0xfe, 0x0, 0x0, 0x1, 0x40, 0x0, 0x0, 0x8, 0x0, 0x1, 0x0, 0x1, 0x3, 0x0, 0x0, - 0x0, // glyph cache + 0x10, 0x0, 0x34, 0x0, 0xfe, 0x0, 0x4, 0x0, 0xfe, 0x0, 0x4, 0x0, 0xfe, 0x0, 0x8, 0x0, 0xfe, 0x0, 0x8, 0x0, 0xfe, + 0x0, 0x10, 0x0, 0xfe, 0x0, 0x20, 0x0, 0xfe, 0x0, 0x40, 0x0, 0xfe, 0x0, 0x80, 0x0, 0xfe, 0x0, 0x0, 0x1, 0x40, 0x0, + 0x0, 0x8, 0x0, 0x1, 0x0, 0x1, 0x3, 0x0, 0x0, 0x0, // glyph cache 0xf, 0x0, 0x8, 0x0, 0x1, 0x0, 0x0, 0x0, // brush 0x11, 0x0, 0xc, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1e, 0x64, 0x0, // offscreen bitmap cache 0x14, 0x0, 0x8, 0x0, 0x1, 0x0, 0x0, 0x0, // virtual channel 0x15, 0x0, 0xc, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x1, // draw nine grid cache - 0x16, 0x0, 0x28, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, // draw GDI plus + 0x16, 0x0, 0x28, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, // draw GDI plus 0x1a, 0x0, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, // multi fragment update 0x18, 0x0, 0xb, 0x0, 0x1, 0x0, 0x0, 0x0, 0x3, 0xc, 0x0, // window list ]; @@ -92,165 +82,144 @@ pub const CLIENT_DEMAND_ACTIVE_BUFFER: [u8; 486] = [ 0x4d, 0x53, 0x54, 0x53, 0x43, 0x00, // source descriptor 0x12, 0x00, // capabilities count 0x00, 0x00, // padding - 0x01, 0x00, 0x18, 0x00, 0x01, 0x00, 0x03, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x1d, 0x04, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // general capability set - 0x02, 0x00, 0x1c, 0x00, 0x18, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, - 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, - 0x00, // bitmap capability set - 0x03, 0x00, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x14, 0x00, 0x00, 0x00, 0x01, 0x00, - 0x00, 0x00, 0x2a, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, - 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x03, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // order capability set - 0x13, 0x00, 0x28, 0x00, 0x03, 0x00, 0x00, 0x03, 0x78, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, - 0xfb, 0x09, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // bitmap cache rev 2 capability set + 0x01, 0x00, 0x18, 0x00, 0x01, 0x00, 0x03, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x1d, 0x04, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, // general capability set + 0x02, 0x00, 0x1c, 0x00, 0x18, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x00, 0x01, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // bitmap capability set + 0x03, 0x00, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x14, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x84, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // order capability set + 0x13, 0x00, 0x28, 0x00, 0x03, 0x00, 0x00, 0x03, 0x78, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0xfb, 0x09, 0x00, + 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, // bitmap cache rev 2 capability set 0x0a, 0x00, 0x08, 0x00, 0x06, 0x00, 0x00, 0x00, // color cache - 0x07, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, // window activation capability set - 0x05, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, - 0x00, // control capability set + 0x07, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // window activation capability set + 0x05, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, // control capability set 0x08, 0x00, 0x0a, 0x00, 0x01, 0x00, 0x14, 0x00, 0x15, 0x00, // pointer capability set 0x09, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, // share capability set - 0x0d, 0x00, 0x58, 0x00, 0x15, 0x00, 0x00, 0x00, 0x09, 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // input capability set + 0x0d, 0x00, 0x58, 0x00, 0x15, 0x00, 0x00, 0x00, 0x09, 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // input capability set 0x0c, 0x00, 0x08, 0x00, 0x01, 0x00, 0x00, 0x00, // sound capability set 0x0e, 0x00, 0x08, 0x00, 0x01, 0x00, 0x00, 0x00, // font capability set - 0x10, 0x00, 0x34, 0x00, 0xfe, 0x00, 0x04, 0x00, 0xfe, 0x00, 0x04, 0x00, 0xfe, 0x00, 0x08, 0x00, - 0xfe, 0x00, 0x08, 0x00, 0xfe, 0x00, 0x10, 0x00, 0xfe, 0x00, 0x20, 0x00, 0xfe, 0x00, 0x40, 0x00, - 0xfe, 0x00, 0x80, 0x00, 0xfe, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00, 0x08, 0x00, 0x01, 0x00, 0x01, - 0x03, 0x00, 0x00, 0x00, // glyph cache capability set + 0x10, 0x00, 0x34, 0x00, 0xfe, 0x00, 0x04, 0x00, 0xfe, 0x00, 0x04, 0x00, 0xfe, 0x00, 0x08, 0x00, 0xfe, 0x00, 0x08, + 0x00, 0xfe, 0x00, 0x10, 0x00, 0xfe, 0x00, 0x20, 0x00, 0xfe, 0x00, 0x40, 0x00, 0xfe, 0x00, 0x80, 0x00, 0xfe, 0x00, + 0x00, 0x01, 0x40, 0x00, 0x00, 0x08, 0x00, 0x01, 0x00, 0x01, 0x03, 0x00, 0x00, + 0x00, // glyph cache capability set 0x0f, 0x00, 0x08, 0x00, 0x01, 0x00, 0x00, 0x00, // brush capability set 0x11, 0x00, 0x0c, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x64, 0x00, // offscreen bitmap cache capability set - 0x14, 0x00, 0x0c, 0x00, 0x01, 0x00, 0x00, 0x00, 0x40, 0x06, 0x00, - 0x00, // virtual channel capability set - 0x15, 0x00, 0x0c, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, - 0x01, // draw nine grid cache capability set - 0x16, 0x00, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // draw gdi plus capability set + 0x14, 0x00, 0x0c, 0x00, 0x01, 0x00, 0x00, 0x00, 0x40, 0x06, 0x00, 0x00, // virtual channel capability set + 0x15, 0x00, 0x0c, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x01, // draw nine grid cache capability set + 0x16, 0x00, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, // draw gdi plus capability set ]; const SERVER_SHARE_CAPABILITY_SET: [u8; 4] = [0xea, 0x03, 0xdc, 0xe2]; const SERVER_GENERAL_CAPABILITY_SET: [u8; 20] = [ - 0x01, 0x00, 0x03, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x1d, 0x04, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x01, 0x01, + 0x01, 0x00, 0x03, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x1d, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x01, ]; -const SERVER_VIRTUAL_CHANNEL_CAPABILITY_SET: [u8; 8] = - [0x02, 0x00, 0x00, 0x00, 0x40, 0x06, 0x00, 0x00]; +const SERVER_VIRTUAL_CHANNEL_CAPABILITY_SET: [u8; 8] = [0x02, 0x00, 0x00, 0x00, 0x40, 0x06, 0x00, 0x00]; const SERVER_DRAW_GDI_PLUS_CAPABILITY_SET: [u8; 36] = [ - 0x00, 0x00, 0x00, 0x00, 0x70, 0xf6, 0x13, 0xf3, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x18, 0x00, 0x00, 0x00, 0x9c, 0xf6, 0x13, 0xf3, 0x61, 0xa6, 0x82, 0x80, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x50, 0x91, 0xbf, + 0x00, 0x00, 0x00, 0x00, 0x70, 0xf6, 0x13, 0xf3, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, + 0x00, 0x9c, 0xf6, 0x13, 0xf3, 0x61, 0xa6, 0x82, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x91, 0xbf, ]; const SERVER_FONT_CAPABILITY_SET: [u8; 4] = [0x00, 0x01, 0x00, 0x00]; const SERVER_BITMAP_CAPABILITY_SET: [u8; 24] = [ - 0x18, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x00, 0x01, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, ]; const SERVER_ORDER_CAPABILITY_SET: [u8; 84] = [ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x14, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x22, 0x00, - 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x42, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x14, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x22, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, + 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, + 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x42, 0x0f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ]; const SERVER_COLOR_CACHE_CAPABILITY_SET: [u8; 4] = [0x06, 0x00, 0x00, 0x00]; const SERVER_BITMAP_CACHE_HOST_SUPPORT_CAPABILITY_SET: [u8; 4] = [0x01, 0x00, 0x00, 0x00]; const SERVER_POINTER_CAPABILITY_SET: [u8; 6] = [0x01, 0x00, 0x19, 0x00, 0x19, 0x00]; const SERVER_INPUT_CAPABILITY_SET: [u8; 84] = [ - 0x35, 0x00, 0x00, 0x00, 0xa1, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0xf6, 0x13, 0xf3, - 0x93, 0x5a, 0x37, 0xf3, 0x00, 0x90, 0x30, 0xe1, 0x34, 0x1c, 0x38, 0xf3, 0x40, 0xf6, 0x13, 0xf3, - 0x04, 0x00, 0x00, 0x00, 0x4c, 0x54, 0xdc, 0xe2, 0x08, 0x50, 0xdc, 0xe2, 0x01, 0x00, 0x00, 0x00, - 0x08, 0x50, 0xdc, 0xe2, 0x00, 0x00, 0x00, 0x00, 0x38, 0xf6, 0x13, 0xf3, 0x2e, 0x05, 0x38, 0xf3, - 0x08, 0x50, 0xdc, 0xe2, 0x2c, 0xf6, 0x13, 0xf3, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x0a, 0x00, - 0x01, 0x00, 0x00, 0x00, + 0x35, 0x00, 0x00, 0x00, 0xa1, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0xf6, 0x13, 0xf3, 0x93, 0x5a, 0x37, + 0xf3, 0x00, 0x90, 0x30, 0xe1, 0x34, 0x1c, 0x38, 0xf3, 0x40, 0xf6, 0x13, 0xf3, 0x04, 0x00, 0x00, 0x00, 0x4c, 0x54, + 0xdc, 0xe2, 0x08, 0x50, 0xdc, 0xe2, 0x01, 0x00, 0x00, 0x00, 0x08, 0x50, 0xdc, 0xe2, 0x00, 0x00, 0x00, 0x00, 0x38, + 0xf6, 0x13, 0xf3, 0x2e, 0x05, 0x38, 0xf3, 0x08, 0x50, 0xdc, 0xe2, 0x2c, 0xf6, 0x13, 0xf3, 0x00, 0x00, 0x00, 0x00, + 0x08, 0x00, 0x0a, 0x00, 0x01, 0x00, 0x00, 0x00, ]; const SERVER_RAIL_CAPABILITY_SET: [u8; 4] = [0x00, 0x00, 0x00, 0x00]; const SERVER_WINDOW_LIST_CAPABILITY_SET: [u8; 7] = [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]; const CLIENT_GENERAL_CAPABILITY_SET: [u8; 20] = [ - 0x01, 0x00, 0x03, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x1d, 0x04, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x03, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x1d, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, ]; const CLIENT_BITMAP_CAPABILITY_SET: [u8; 24] = [ - 0x18, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x00, 0x01, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, ]; const CLIENT_BITMAP_CAPABILITY_SET_32_BIT: [u8; 24] = [ - 0x20, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x20, 0x3, 0x58, 0x2, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, - 0x0, 0xa, 0x1, 0x0, 0x0, 0x0, + 0x20, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x20, 0x3, 0x58, 0x2, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0xa, 0x1, 0x0, + 0x0, 0x0, ]; const CLIENT_ORDER_CAPABILITY_SET: [u8; 84] = [ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x14, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2a, 0x00, - 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x14, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, + 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, + 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ]; const CLIENT_ORDER_CAPABILITY_SET_ANSI_CODE_PAGE: [u8; 84] = [ - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x1, 0x0, 0x14, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x2a, 0x0, 0x1, 0x1, 0x1, 0x1, 0x1, - 0x0, 0x0, 0x1, 0x1, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x0, - 0x1, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x84, 0x3, - 0x0, 0x0, 0x0, 0x0, 0x0, 0xe4, 0x4, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x14, + 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x2a, 0x0, 0x1, 0x1, 0x1, 0x1, 0x1, 0x0, 0x0, 0x1, 0x1, 0x1, 0x0, 0x1, 0x0, 0x0, + 0x0, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x0, 0x1, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x84, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe4, 0x4, 0x0, 0x0, ]; const CLIENT_BITMAP_CACHE_REV_2_CAPABILITY_SET: [u8; 36] = [ - 0x03, 0x00, 0x00, 0x03, 0x78, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0xfb, 0x09, 0x00, 0x80, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x03, 0x78, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0xfb, 0x09, 0x00, 0x80, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ]; const CLIENT_BITMAP_CACHE_REV_1_CAPABILITY_SET: [u8; 36] = [ - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x78, 0x0, 0x0, 0x4, 0x78, 0x0, 0x0, 0x10, 0x51, 0x1, 0x0, 0x40, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x78, 0x0, 0x0, 0x4, 0x78, 0x0, 0x0, 0x10, 0x51, 0x1, 0x0, 0x40, ]; const CLIENT_COLOR_CACHE_CAPABILITY_SET: [u8; 4] = [0x06, 0x00, 0x00, 0x00]; -const CLIENT_WINDOW_ACTIVATION_CAPABILITY_SET: [u8; 8] = - [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]; +const CLIENT_WINDOW_ACTIVATION_CAPABILITY_SET: [u8; 8] = [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]; const CLIENT_CONTROL_CAPABILITY_SET: [u8; 8] = [0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00]; const CLIENT_POINTER_CAPABILITY_SET: [u8; 6] = [0x01, 0x00, 0x14, 0x00, 0x15, 0x00]; const CLIENT_SHARE_CAPABILITY_SET: [u8; 4] = [0x00, 0x00, 0x00, 0x00]; const CLIENT_INPUT_CAPABILITY_SET: [u8; 84] = [ - 0x15, 0x00, 0x00, 0x00, 0x09, 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x09, 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ]; const CLIENT_INPUT_CAPABILITY_SET_UNICODE: [u8; 84] = [ - 0x91, 0x0, 0x20, 0x0, 0x9, 0x4, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x91, 0x0, 0x20, 0x0, 0x9, 0x4, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ]; const CLIENT_SOUND_CAPABILITY_SET: [u8; 4] = [0x01, 0x00, 0x00, 0x00]; const CLIENT_FONT_CAPABILITY_SET: [u8; 4] = [0x01, 0x00, 0x00, 0x00]; const CLIENT_GLYPH_CACHE_CAPABILITY_SET: [u8; 48] = [ - 0xfe, 0x00, 0x04, 0x00, 0xfe, 0x00, 0x04, 0x00, 0xfe, 0x00, 0x08, 0x00, 0xfe, 0x00, 0x08, 0x00, - 0xfe, 0x00, 0x10, 0x00, 0xfe, 0x00, 0x20, 0x00, 0xfe, 0x00, 0x40, 0x00, 0xfe, 0x00, 0x80, 0x00, - 0xfe, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00, 0x08, 0x00, 0x01, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, + 0xfe, 0x00, 0x04, 0x00, 0xfe, 0x00, 0x04, 0x00, 0xfe, 0x00, 0x08, 0x00, 0xfe, 0x00, 0x08, 0x00, 0xfe, 0x00, 0x10, + 0x00, 0xfe, 0x00, 0x20, 0x00, 0xfe, 0x00, 0x40, 0x00, 0xfe, 0x00, 0x80, 0x00, 0xfe, 0x00, 0x00, 0x01, 0x40, 0x00, + 0x00, 0x08, 0x00, 0x01, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, ]; const CLIENT_BRUSH_CAPABILITY_SET: [u8; 4] = [0x01, 0x00, 0x00, 0x00]; -const CLIENT_OFFSCREEN_BITMAP_CAPABILITY_SET: [u8; 8] = - [0x01, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x64, 0x00]; +const CLIENT_OFFSCREEN_BITMAP_CAPABILITY_SET: [u8; 8] = [0x01, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x64, 0x00]; const CLIENT_VIRTUAL_CHANNEL_CAPABILITY_SET_INCOMPLETE: [u8; 4] = [0x1, 0x0, 0x0, 0x0]; -const CLIENT_VIRTUAL_CHANNEL_CAPABILITY_SET: [u8; 8] = - [0x01, 0x00, 0x00, 0x00, 0x40, 0x06, 0x00, 0x00]; -const CLIENT_DRAW_NINE_GRID_CACHE_CAPABILITY_SET: [u8; 8] = - [0x02, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x01]; +const CLIENT_VIRTUAL_CHANNEL_CAPABILITY_SET: [u8; 8] = [0x01, 0x00, 0x00, 0x00, 0x40, 0x06, 0x00, 0x00]; +const CLIENT_DRAW_NINE_GRID_CACHE_CAPABILITY_SET: [u8; 8] = [0x02, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x01]; const CLIENT_DRAW_GDI_PLUS_CAPABILITY_SET: [u8; 36] = [ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ]; const CLIENT_MULTI_FRAGMENT_UPDATE_CAPABILITY_SET: [u8; 4] = [0x0, 0x0, 0x0, 0x0]; const CLIENT_WINDOW_LIST_CAPABILITY_SET: [u8; 7] = [0x1, 0x0, 0x0, 0x0, 0x3, 0xc, 0x0]; @@ -261,156 +230,87 @@ lazy_static! { source_descriptor: String::from("RDP"), capability_sets: vec![ CapabilitySet::Share(SERVER_SHARE_CAPABILITY_SET.to_vec()), - CapabilitySet::General( - General::from_buffer(SERVER_GENERAL_CAPABILITY_SET.as_ref()).unwrap() - ), + CapabilitySet::General(General::from_buffer(SERVER_GENERAL_CAPABILITY_SET.as_ref()).unwrap()), CapabilitySet::VirtualChannel( - VirtualChannel::from_buffer(SERVER_VIRTUAL_CHANNEL_CAPABILITY_SET.as_ref()) - .unwrap() + VirtualChannel::from_buffer(SERVER_VIRTUAL_CHANNEL_CAPABILITY_SET.as_ref()).unwrap() ), CapabilitySet::DrawGdiPlus(SERVER_DRAW_GDI_PLUS_CAPABILITY_SET.to_vec()), CapabilitySet::Font(SERVER_FONT_CAPABILITY_SET.to_vec()), - CapabilitySet::Bitmap( - Bitmap::from_buffer(SERVER_BITMAP_CAPABILITY_SET.as_ref()).unwrap() - ), - CapabilitySet::Order( - Order::from_buffer(SERVER_ORDER_CAPABILITY_SET.as_ref()).unwrap() - ), + CapabilitySet::Bitmap(Bitmap::from_buffer(SERVER_BITMAP_CAPABILITY_SET.as_ref()).unwrap()), + CapabilitySet::Order(Order::from_buffer(SERVER_ORDER_CAPABILITY_SET.as_ref()).unwrap()), CapabilitySet::ColorCache(SERVER_COLOR_CACHE_CAPABILITY_SET.to_vec()), - CapabilitySet::BitmapCacheHostSupport( - SERVER_BITMAP_CACHE_HOST_SUPPORT_CAPABILITY_SET.to_vec() - ), - CapabilitySet::Pointer( - Pointer::from_buffer(SERVER_POINTER_CAPABILITY_SET.as_ref()).unwrap() - ), - CapabilitySet::Input( - Input::from_buffer(SERVER_INPUT_CAPABILITY_SET.as_ref()).unwrap() - ), + CapabilitySet::BitmapCacheHostSupport(SERVER_BITMAP_CACHE_HOST_SUPPORT_CAPABILITY_SET.to_vec()), + CapabilitySet::Pointer(Pointer::from_buffer(SERVER_POINTER_CAPABILITY_SET.as_ref()).unwrap()), + CapabilitySet::Input(Input::from_buffer(SERVER_INPUT_CAPABILITY_SET.as_ref()).unwrap()), CapabilitySet::Rail(SERVER_RAIL_CAPABILITY_SET.to_vec()), CapabilitySet::WindowList(SERVER_WINDOW_LIST_CAPABILITY_SET.to_vec()), ], } }; - pub static ref CLIENT_DEMAND_ACTIVE_WITH_INCOMPLETE_CAPABILITY_SET: ClientConfirmActive = - ClientConfirmActive { - originator_id: SERVER_CHANNEL_ID, - pdu: DemandActive { - source_descriptor: String::from("MSTSC"), - capability_sets: vec![ - CapabilitySet::General( - General::from_buffer(CLIENT_GENERAL_CAPABILITY_SET.as_ref()).unwrap() - ), - CapabilitySet::Bitmap( - Bitmap::from_buffer(CLIENT_BITMAP_CAPABILITY_SET_32_BIT.as_ref()).unwrap() - ), - CapabilitySet::Order( - Order::from_buffer(CLIENT_ORDER_CAPABILITY_SET_ANSI_CODE_PAGE.as_ref()) - .unwrap() - ), - CapabilitySet::BitmapCache( - BitmapCache::from_buffer(CLIENT_BITMAP_CACHE_REV_1_CAPABILITY_SET.as_ref()) - .unwrap() - ), - CapabilitySet::ColorCache(CLIENT_COLOR_CACHE_CAPABILITY_SET.to_vec()), - CapabilitySet::WindowActivation( - CLIENT_WINDOW_ACTIVATION_CAPABILITY_SET.to_vec() - ), - CapabilitySet::Control(CLIENT_CONTROL_CAPABILITY_SET.to_vec()), - CapabilitySet::Pointer( - Pointer::from_buffer(CLIENT_POINTER_CAPABILITY_SET.as_ref()).unwrap() - ), - CapabilitySet::Share(CLIENT_SHARE_CAPABILITY_SET.to_vec()), - CapabilitySet::Input( - Input::from_buffer(CLIENT_INPUT_CAPABILITY_SET_UNICODE.as_ref()).unwrap() - ), - CapabilitySet::Sound( - Sound::from_buffer(CLIENT_SOUND_CAPABILITY_SET.as_ref()).unwrap() - ), - CapabilitySet::Font(CLIENT_FONT_CAPABILITY_SET.to_vec()), - CapabilitySet::GlyphCache( - GlyphCache::from_buffer(CLIENT_GLYPH_CACHE_CAPABILITY_SET.as_ref()) - .unwrap() - ), - CapabilitySet::Brush( - Brush::from_buffer(CLIENT_BRUSH_CAPABILITY_SET.as_ref()).unwrap() - ), - CapabilitySet::OffscreenBitmapCache( - OffscreenBitmapCache::from_buffer( - CLIENT_OFFSCREEN_BITMAP_CAPABILITY_SET.as_ref() - ) - .unwrap() - ), - CapabilitySet::VirtualChannel( - VirtualChannel::from_buffer( - CLIENT_VIRTUAL_CHANNEL_CAPABILITY_SET_INCOMPLETE.as_ref() - ) - .unwrap() - ), - CapabilitySet::DrawNineGridCache( - CLIENT_DRAW_NINE_GRID_CACHE_CAPABILITY_SET.to_vec() - ), - CapabilitySet::DrawGdiPlus(CLIENT_DRAW_GDI_PLUS_CAPABILITY_SET.to_vec()), - CapabilitySet::MultiFragmentUpdate( - MultifragmentUpdate::from_buffer( - CLIENT_MULTI_FRAGMENT_UPDATE_CAPABILITY_SET.as_ref() - ) - .unwrap() - ), - CapabilitySet::WindowList(CLIENT_WINDOW_LIST_CAPABILITY_SET.to_vec()), - ], - } - }; + pub static ref CLIENT_DEMAND_ACTIVE_WITH_INCOMPLETE_CAPABILITY_SET: ClientConfirmActive = ClientConfirmActive { + originator_id: SERVER_CHANNEL_ID, + pdu: DemandActive { + source_descriptor: String::from("MSTSC"), + capability_sets: vec![ + CapabilitySet::General(General::from_buffer(CLIENT_GENERAL_CAPABILITY_SET.as_ref()).unwrap()), + CapabilitySet::Bitmap(Bitmap::from_buffer(CLIENT_BITMAP_CAPABILITY_SET_32_BIT.as_ref()).unwrap()), + CapabilitySet::Order(Order::from_buffer(CLIENT_ORDER_CAPABILITY_SET_ANSI_CODE_PAGE.as_ref()).unwrap()), + CapabilitySet::BitmapCache( + BitmapCache::from_buffer(CLIENT_BITMAP_CACHE_REV_1_CAPABILITY_SET.as_ref()).unwrap() + ), + CapabilitySet::ColorCache(CLIENT_COLOR_CACHE_CAPABILITY_SET.to_vec()), + CapabilitySet::WindowActivation(CLIENT_WINDOW_ACTIVATION_CAPABILITY_SET.to_vec()), + CapabilitySet::Control(CLIENT_CONTROL_CAPABILITY_SET.to_vec()), + CapabilitySet::Pointer(Pointer::from_buffer(CLIENT_POINTER_CAPABILITY_SET.as_ref()).unwrap()), + CapabilitySet::Share(CLIENT_SHARE_CAPABILITY_SET.to_vec()), + CapabilitySet::Input(Input::from_buffer(CLIENT_INPUT_CAPABILITY_SET_UNICODE.as_ref()).unwrap()), + CapabilitySet::Sound(Sound::from_buffer(CLIENT_SOUND_CAPABILITY_SET.as_ref()).unwrap()), + CapabilitySet::Font(CLIENT_FONT_CAPABILITY_SET.to_vec()), + CapabilitySet::GlyphCache(GlyphCache::from_buffer(CLIENT_GLYPH_CACHE_CAPABILITY_SET.as_ref()).unwrap()), + CapabilitySet::Brush(Brush::from_buffer(CLIENT_BRUSH_CAPABILITY_SET.as_ref()).unwrap()), + CapabilitySet::OffscreenBitmapCache( + OffscreenBitmapCache::from_buffer(CLIENT_OFFSCREEN_BITMAP_CAPABILITY_SET.as_ref()).unwrap() + ), + CapabilitySet::VirtualChannel( + VirtualChannel::from_buffer(CLIENT_VIRTUAL_CHANNEL_CAPABILITY_SET_INCOMPLETE.as_ref()).unwrap() + ), + CapabilitySet::DrawNineGridCache(CLIENT_DRAW_NINE_GRID_CACHE_CAPABILITY_SET.to_vec()), + CapabilitySet::DrawGdiPlus(CLIENT_DRAW_GDI_PLUS_CAPABILITY_SET.to_vec()), + CapabilitySet::MultiFragmentUpdate( + MultifragmentUpdate::from_buffer(CLIENT_MULTI_FRAGMENT_UPDATE_CAPABILITY_SET.as_ref()).unwrap() + ), + CapabilitySet::WindowList(CLIENT_WINDOW_LIST_CAPABILITY_SET.to_vec()), + ], + } + }; pub static ref CLIENT_DEMAND_ACTIVE: ClientConfirmActive = ClientConfirmActive { originator_id: SERVER_CHANNEL_ID, pdu: DemandActive { source_descriptor: String::from("MSTSC"), capability_sets: vec![ - CapabilitySet::General( - General::from_buffer(CLIENT_GENERAL_CAPABILITY_SET.as_ref()).unwrap() - ), - CapabilitySet::Bitmap( - Bitmap::from_buffer(CLIENT_BITMAP_CAPABILITY_SET.as_ref()).unwrap() - ), - CapabilitySet::Order( - Order::from_buffer(CLIENT_ORDER_CAPABILITY_SET.as_ref()).unwrap() - ), + CapabilitySet::General(General::from_buffer(CLIENT_GENERAL_CAPABILITY_SET.as_ref()).unwrap()), + CapabilitySet::Bitmap(Bitmap::from_buffer(CLIENT_BITMAP_CAPABILITY_SET.as_ref()).unwrap()), + CapabilitySet::Order(Order::from_buffer(CLIENT_ORDER_CAPABILITY_SET.as_ref()).unwrap()), CapabilitySet::BitmapCacheRev2( - BitmapCacheRev2::from_buffer(CLIENT_BITMAP_CACHE_REV_2_CAPABILITY_SET.as_ref()) - .unwrap() + BitmapCacheRev2::from_buffer(CLIENT_BITMAP_CACHE_REV_2_CAPABILITY_SET.as_ref()).unwrap() ), CapabilitySet::ColorCache(CLIENT_COLOR_CACHE_CAPABILITY_SET.to_vec()), CapabilitySet::WindowActivation(CLIENT_WINDOW_ACTIVATION_CAPABILITY_SET.to_vec()), CapabilitySet::Control(CLIENT_CONTROL_CAPABILITY_SET.to_vec()), - CapabilitySet::Pointer( - Pointer::from_buffer(CLIENT_POINTER_CAPABILITY_SET.as_ref()).unwrap() - ), + CapabilitySet::Pointer(Pointer::from_buffer(CLIENT_POINTER_CAPABILITY_SET.as_ref()).unwrap()), CapabilitySet::Share(CLIENT_SHARE_CAPABILITY_SET.to_vec()), - CapabilitySet::Input( - Input::from_buffer(CLIENT_INPUT_CAPABILITY_SET.as_ref()).unwrap() - ), - CapabilitySet::Sound( - Sound::from_buffer(CLIENT_SOUND_CAPABILITY_SET.as_ref()).unwrap() - ), + CapabilitySet::Input(Input::from_buffer(CLIENT_INPUT_CAPABILITY_SET.as_ref()).unwrap()), + CapabilitySet::Sound(Sound::from_buffer(CLIENT_SOUND_CAPABILITY_SET.as_ref()).unwrap()), CapabilitySet::Font(CLIENT_FONT_CAPABILITY_SET.to_vec()), - CapabilitySet::GlyphCache( - GlyphCache::from_buffer(CLIENT_GLYPH_CACHE_CAPABILITY_SET.as_ref()).unwrap() - ), - CapabilitySet::Brush( - Brush::from_buffer(CLIENT_BRUSH_CAPABILITY_SET.as_ref()).unwrap() - ), + CapabilitySet::GlyphCache(GlyphCache::from_buffer(CLIENT_GLYPH_CACHE_CAPABILITY_SET.as_ref()).unwrap()), + CapabilitySet::Brush(Brush::from_buffer(CLIENT_BRUSH_CAPABILITY_SET.as_ref()).unwrap()), CapabilitySet::OffscreenBitmapCache( - OffscreenBitmapCache::from_buffer( - CLIENT_OFFSCREEN_BITMAP_CAPABILITY_SET.as_ref() - ) - .unwrap() + OffscreenBitmapCache::from_buffer(CLIENT_OFFSCREEN_BITMAP_CAPABILITY_SET.as_ref()).unwrap() ), CapabilitySet::VirtualChannel( - VirtualChannel::from_buffer(CLIENT_VIRTUAL_CHANNEL_CAPABILITY_SET.as_ref()) - .unwrap() - ), - CapabilitySet::DrawNineGridCache( - CLIENT_DRAW_NINE_GRID_CACHE_CAPABILITY_SET.to_vec() + VirtualChannel::from_buffer(CLIENT_VIRTUAL_CHANNEL_CAPABILITY_SET.as_ref()).unwrap() ), + CapabilitySet::DrawNineGridCache(CLIENT_DRAW_NINE_GRID_CACHE_CAPABILITY_SET.to_vec()), CapabilitySet::DrawGdiPlus(CLIENT_DRAW_GDI_PLUS_CAPABILITY_SET.to_vec()), ], } @@ -421,10 +321,7 @@ lazy_static! { fn from_buffer_correctly_parses_server_demand_active() { let buffer = SERVER_DEMAND_ACTIVE_BUFFER.as_ref(); - assert_eq!( - *SERVER_DEMAND_ACTIVE, - ServerDemandActive::from_buffer(buffer).unwrap() - ); + assert_eq!(*SERVER_DEMAND_ACTIVE, ServerDemandActive::from_buffer(buffer).unwrap()); } #[test] @@ -441,10 +338,7 @@ fn from_buffer_correctly_parses_client_demand_active_with_incomplete_capability_ fn from_buffer_correctly_parses_client_demand_active() { let buffer = CLIENT_DEMAND_ACTIVE_BUFFER.as_ref(); - assert_eq!( - *CLIENT_DEMAND_ACTIVE, - ClientConfirmActive::from_buffer(buffer).unwrap() - ); + assert_eq!(*CLIENT_DEMAND_ACTIVE, ClientConfirmActive::from_buffer(buffer).unwrap()); } #[test] diff --git a/ironrdp/src/rdp/capability_sets/virtual_channel.rs b/ironrdp/src/rdp/capability_sets/virtual_channel.rs index e631c86d..a08b85b6 100644 --- a/ironrdp/src/rdp/capability_sets/virtual_channel.rs +++ b/ironrdp/src/rdp/capability_sets/virtual_channel.rs @@ -6,7 +6,8 @@ use std::io; use bitflags::bitflags; use byteorder::{LittleEndian, ReadBytesExt, WriteBytesExt}; -use crate::{rdp::CapabilitySetsError, try_read_optional, try_write_optional, PduParsing}; +use crate::rdp::CapabilitySetsError; +use crate::{try_read_optional, try_write_optional, PduParsing}; const FLAGS_FIELD_SIZE: usize = 4; const CHUNK_SIZE_FIELD_SIZE: usize = 4; diff --git a/ironrdp/src/rdp/capability_sets/virtual_channel/test.rs b/ironrdp/src/rdp/capability_sets/virtual_channel/test.rs index 2e82a276..b897ab3c 100644 --- a/ironrdp/src/rdp/capability_sets/virtual_channel/test.rs +++ b/ironrdp/src/rdp/capability_sets/virtual_channel/test.rs @@ -66,8 +66,5 @@ fn buffer_length_is_correct_for_virtual_channel_incomplete_capset() { #[test] fn buffer_length_is_correct_for_virtual_channel_capset() { - assert_eq!( - VIRTUAL_CHANNEL_BUFFER.len(), - VIRTUAL_CHANNEL.buffer_length() - ); + assert_eq!(VIRTUAL_CHANNEL_BUFFER.len(), VIRTUAL_CHANNEL.buffer_length()); } diff --git a/ironrdp/src/rdp/client_info.rs b/ironrdp/src/rdp/client_info.rs index 0d5a835a..a6332172 100644 --- a/ironrdp/src/rdp/client_info.rs +++ b/ironrdp/src/rdp/client_info.rs @@ -9,9 +9,8 @@ use failure::Fail; use num_derive::{FromPrimitive, ToPrimitive}; use num_traits::{FromPrimitive, ToPrimitive}; -use crate::{ - impl_from_error, try_read_optional, try_write_optional, utils, utils::CharacterSet, PduParsing, -}; +use crate::utils::CharacterSet; +use crate::{impl_from_error, try_read_optional, try_write_optional, utils, PduParsing}; const RECONNECT_COOKIE_LEN: usize = 28; const TIMEZONE_INFO_NAME_LEN: usize = 64; @@ -52,13 +51,11 @@ impl PduParsing for ClientInfo { let code_page = stream.read_u32::()?; let flags_with_compression_type = stream.read_u32::()?; - let flags = - ClientInfoFlags::from_bits(flags_with_compression_type & !COMPRESSION_TYPE_MASK) + let flags = ClientInfoFlags::from_bits(flags_with_compression_type & !COMPRESSION_TYPE_MASK) + .ok_or(ClientInfoError::InvalidClientInfoFlags)?; + let compression_type = + CompressionType::from_u8(((flags_with_compression_type & COMPRESSION_TYPE_MASK) >> 9) as u8) .ok_or(ClientInfoError::InvalidClientInfoFlags)?; - let compression_type = CompressionType::from_u8( - ((flags_with_compression_type & COMPRESSION_TYPE_MASK) >> 9) as u8, - ) - .ok_or(ClientInfoError::InvalidClientInfoFlags)?; let character_set = if flags.contains(ClientInfoFlags::UNICODE) { CharacterSet::Unicode } else { @@ -76,19 +73,14 @@ impl PduParsing for ClientInfo { let username = utils::read_string(&mut stream, user_name_size, character_set, true)?; let password = utils::read_string(&mut stream, password_size, character_set, true)?; - let domain = if domain.is_empty() { - None - } else { - Some(domain) - }; + let domain = if domain.is_empty() { None } else { Some(domain) }; let credentials = Credentials { username, password, domain, }; - let alternate_shell = - utils::read_string(&mut stream, alternate_shell_size, character_set, true)?; + let alternate_shell = utils::read_string(&mut stream, alternate_shell_size, character_set, true)?; let work_dir = utils::read_string(&mut stream, work_dir_size, character_set, true)?; let extra_info = ExtendedClientInfo::from_buffer(&mut stream, character_set)?; @@ -113,45 +105,21 @@ impl PduParsing for ClientInfo { stream.write_u32::(self.code_page)?; - let flags_with_compression_type = - self.flags.bits() | (self.compression_type.to_u32().unwrap() << 9); + let flags_with_compression_type = self.flags.bits() | (self.compression_type.to_u32().unwrap() << 9); stream.write_u32::(flags_with_compression_type)?; let domain = self.credentials.domain.clone().unwrap_or_default(); stream.write_u16::(string_len(domain.as_str(), character_set))?; - stream.write_u16::(string_len( - self.credentials.username.as_str(), - character_set, - ))?; - stream.write_u16::(string_len( - self.credentials.password.as_str(), - character_set, - ))?; - stream - .write_u16::(string_len(self.alternate_shell.as_str(), character_set))?; + stream.write_u16::(string_len(self.credentials.username.as_str(), character_set))?; + stream.write_u16::(string_len(self.credentials.password.as_str(), character_set))?; + stream.write_u16::(string_len(self.alternate_shell.as_str(), character_set))?; stream.write_u16::(string_len(self.work_dir.as_str(), character_set))?; utils::write_string_with_null_terminator(&mut stream, domain.as_str(), character_set)?; - utils::write_string_with_null_terminator( - &mut stream, - self.credentials.username.as_str(), - character_set, - )?; - utils::write_string_with_null_terminator( - &mut stream, - self.credentials.password.as_str(), - character_set, - )?; - utils::write_string_with_null_terminator( - &mut stream, - self.alternate_shell.as_str(), - character_set, - )?; - utils::write_string_with_null_terminator( - &mut stream, - self.work_dir.as_str(), - character_set, - )?; + utils::write_string_with_null_terminator(&mut stream, self.credentials.username.as_str(), character_set)?; + utils::write_string_with_null_terminator(&mut stream, self.credentials.password.as_str(), character_set)?; + utils::write_string_with_null_terminator(&mut stream, self.alternate_shell.as_str(), character_set)?; + utils::write_string_with_null_terminator(&mut stream, self.work_dir.as_str(), character_set)?; self.extra_info.to_buffer(&mut stream, character_set)?; @@ -199,12 +167,9 @@ pub struct ExtendedClientInfo { } impl ExtendedClientInfo { - fn from_buffer( - mut stream: impl io::Read, - character_set: CharacterSet, - ) -> Result { - let address_family = AddressFamily::from_u16(stream.read_u16::()?) - .ok_or(ClientInfoError::InvalidAddressFamily)?; + fn from_buffer(mut stream: impl io::Read, character_set: CharacterSet) -> Result { + let address_family = + AddressFamily::from_u16(stream.read_u16::()?).ok_or(ClientInfoError::InvalidAddressFamily)?; // This size includes the length of the mandatory null terminator. let address_size = stream.read_u16::()? as usize; @@ -224,22 +189,14 @@ impl ExtendedClientInfo { }) } - fn to_buffer( - &self, - mut stream: impl io::Write, - character_set: CharacterSet, - ) -> Result<(), ClientInfoError> { + fn to_buffer(&self, mut stream: impl io::Write, character_set: CharacterSet) -> Result<(), ClientInfoError> { stream.write_u16::(self.address_family.to_u16().unwrap())?; // + size of null terminator, which will write in the write_string function stream.write_u16::( string_len(self.address.as_str(), character_set) + character_set.to_u16().unwrap(), )?; - utils::write_string_with_null_terminator( - &mut stream, - self.address.as_str(), - character_set, - )?; + utils::write_string_with_null_terminator(&mut stream, self.address.as_str(), character_set)?; stream.write_u16::( string_len(self.dir.as_str(), character_set) + character_set.to_u16().unwrap(), @@ -285,20 +242,13 @@ impl PduParsing for ExtendedClientOptionalInfo { } Err(e) => return Err(e), }; - optional_data.session_id = Some(try_read_optional!( - stream.read_u32::(), - optional_data - )); + optional_data.session_id = Some(try_read_optional!(stream.read_u32::(), optional_data)); optional_data.performance_flags = Some( - PerformanceFlags::from_bits(try_read_optional!( - stream.read_u32::(), - optional_data - )) - .ok_or(ClientInfoError::InvalidPerformanceFlags)?, + PerformanceFlags::from_bits(try_read_optional!(stream.read_u32::(), optional_data)) + .ok_or(ClientInfoError::InvalidPerformanceFlags)?, ); - let reconnect_cookie_size = - try_read_optional!(stream.read_u16::(), optional_data); + let reconnect_cookie_size = try_read_optional!(stream.read_u16::(), optional_data); if reconnect_cookie_size != RECONNECT_COOKIE_LEN as u16 && reconnect_cookie_size != 0 { return Err(ClientInfoError::InvalidReconnectCookie); } @@ -317,10 +267,8 @@ impl PduParsing for ExtendedClientOptionalInfo { } fn to_buffer(&self, mut stream: impl io::Write) -> Result<(), Self::Error> { - try_write_optional!(self.timezone, |value: &TimezoneInfo| value - .to_buffer(&mut stream)); - try_write_optional!(self.session_id, |value: &u32| stream - .write_u32::(*value)); + try_write_optional!(self.timezone, |value: &TimezoneInfo| value.to_buffer(&mut stream)); + try_write_optional!(self.session_id, |value: &u32| stream.write_u32::(*value)); try_write_optional!(self.performance_flags, |value: &PerformanceFlags| { stream.write_u32::(value.bits()) }); @@ -369,21 +317,11 @@ impl PduParsing for TimezoneInfo { fn from_buffer(mut stream: impl io::Read) -> Result { let bias = stream.read_u32::()?; - let standard_name = utils::read_string( - &mut stream, - TIMEZONE_INFO_NAME_LEN, - CharacterSet::Unicode, - false, - )?; + let standard_name = utils::read_string(&mut stream, TIMEZONE_INFO_NAME_LEN, CharacterSet::Unicode, false)?; let standard_date = Option::::from_buffer(&mut stream)?; let standard_bias = stream.read_u32::()?; - let daylight_name = utils::read_string( - &mut stream, - TIMEZONE_INFO_NAME_LEN, - CharacterSet::Unicode, - false, - )?; + let daylight_name = utils::read_string(&mut stream, TIMEZONE_INFO_NAME_LEN, CharacterSet::Unicode, false)?; let daylight_date = Option::::from_buffer(&mut stream)?; let daylight_bias = stream.read_u32::()?; @@ -622,11 +560,7 @@ pub enum ClientInfoError { } impl_from_error!(io::Error, ClientInfoError, ClientInfoError::IOError); -impl_from_error!( - std::string::FromUtf8Error, - ClientInfoError, - ClientInfoError::Utf8Error -); +impl_from_error!(std::string::FromUtf8Error, ClientInfoError, ClientInfoError::Utf8Error); fn string_len(value: &str, character_set: CharacterSet) -> u16 { value.len() as u16 * character_set.to_u16().unwrap() diff --git a/ironrdp/src/rdp/client_info/test.rs b/ironrdp/src/rdp/client_info/test.rs index 783435a3..61b7ca16 100644 --- a/ironrdp/src/rdp/client_info/test.rs +++ b/ironrdp/src/rdp/client_info/test.rs @@ -14,37 +14,33 @@ pub const CLIENT_INFO_BUFFER_UNICODE: [u8; CLIENT_INFO_BUFFER_UNICODE_LEN] = [ 0x00, 0x00, // alternate shell size 0x00, 0x00, // work dir size 0x4e, 0x00, 0x54, 0x00, 0x44, 0x00, 0x45, 0x00, 0x56, 0x00, 0x00, 0x00, // domain - 0x65, 0x00, 0x6c, 0x00, 0x74, 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x73, 0x00, 0x00, - 0x00, // user name + 0x65, 0x00, 0x6c, 0x00, 0x74, 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x73, 0x00, 0x00, 0x00, // user name 0x00, 0x00, // password 0x00, 0x00, // alternate shell 0x00, 0x00, // work dir 0x02, 0x00, // client address family 0x1e, 0x00, // client address size - 0x31, 0x00, 0x35, 0x00, 0x37, 0x00, 0x2e, 0x00, 0x35, 0x00, 0x39, 0x00, 0x2e, 0x00, 0x32, 0x00, - 0x34, 0x00, 0x32, 0x00, 0x2e, 0x00, 0x31, 0x00, 0x35, 0x00, 0x36, 0x00, 0x00, - 0x00, // client address + 0x31, 0x00, 0x35, 0x00, 0x37, 0x00, 0x2e, 0x00, 0x35, 0x00, 0x39, 0x00, 0x2e, 0x00, 0x32, 0x00, 0x34, 0x00, 0x32, + 0x00, 0x2e, 0x00, 0x31, 0x00, 0x35, 0x00, 0x36, 0x00, 0x00, 0x00, // client address 0x84, 0x00, // client dir size - 0x43, 0x00, 0x3a, 0x00, 0x5c, 0x00, 0x64, 0x00, 0x65, 0x00, 0x70, 0x00, 0x6f, 0x00, 0x74, 0x00, - 0x73, 0x00, 0x5c, 0x00, 0x77, 0x00, 0x32, 0x00, 0x6b, 0x00, 0x33, 0x00, 0x5f, 0x00, 0x31, 0x00, - 0x5c, 0x00, 0x74, 0x00, 0x65, 0x00, 0x72, 0x00, 0x6d, 0x00, 0x73, 0x00, 0x72, 0x00, 0x76, 0x00, - 0x5c, 0x00, 0x6e, 0x00, 0x65, 0x00, 0x77, 0x00, 0x63, 0x00, 0x6c, 0x00, 0x69, 0x00, 0x65, 0x00, - 0x6e, 0x00, 0x74, 0x00, 0x5c, 0x00, 0x6c, 0x00, 0x69, 0x00, 0x62, 0x00, 0x5c, 0x00, 0x77, 0x00, - 0x69, 0x00, 0x6e, 0x00, 0x33, 0x00, 0x32, 0x00, 0x5c, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x6a, 0x00, - 0x5c, 0x00, 0x69, 0x00, 0x33, 0x00, 0x38, 0x00, 0x36, 0x00, 0x5c, 0x00, 0x6d, 0x00, 0x73, 0x00, - 0x74, 0x00, 0x73, 0x00, 0x63, 0x00, 0x61, 0x00, 0x78, 0x00, 0x2e, 0x00, 0x64, 0x00, 0x6c, 0x00, - 0x6c, 0x00, 0x00, 0x00, // client dir - 0xe0, 0x01, 0x00, 0x00, 0x50, 0x00, 0x61, 0x00, 0x63, 0x00, 0x69, 0x00, 0x66, 0x00, 0x69, 0x00, - 0x63, 0x00, 0x20, 0x00, 0x53, 0x00, 0x74, 0x00, 0x61, 0x00, 0x6e, 0x00, 0x64, 0x00, 0x61, 0x00, - 0x72, 0x00, 0x64, 0x00, 0x20, 0x00, 0x54, 0x00, 0x69, 0x00, 0x6d, 0x00, 0x65, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x00, 0x61, 0x00, 0x63, 0x00, 0x69, 0x00, - 0x66, 0x00, 0x69, 0x00, 0x63, 0x00, 0x20, 0x00, 0x44, 0x00, 0x61, 0x00, 0x79, 0x00, 0x6c, 0x00, - 0x69, 0x00, 0x67, 0x00, 0x68, 0x00, 0x74, 0x00, 0x20, 0x00, 0x54, 0x00, 0x69, 0x00, 0x6d, 0x00, - 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc4, 0xff, 0xff, 0xff, // TimezoneInfo + 0x43, 0x00, 0x3a, 0x00, 0x5c, 0x00, 0x64, 0x00, 0x65, 0x00, 0x70, 0x00, 0x6f, 0x00, 0x74, 0x00, 0x73, 0x00, 0x5c, + 0x00, 0x77, 0x00, 0x32, 0x00, 0x6b, 0x00, 0x33, 0x00, 0x5f, 0x00, 0x31, 0x00, 0x5c, 0x00, 0x74, 0x00, 0x65, 0x00, + 0x72, 0x00, 0x6d, 0x00, 0x73, 0x00, 0x72, 0x00, 0x76, 0x00, 0x5c, 0x00, 0x6e, 0x00, 0x65, 0x00, 0x77, 0x00, 0x63, + 0x00, 0x6c, 0x00, 0x69, 0x00, 0x65, 0x00, 0x6e, 0x00, 0x74, 0x00, 0x5c, 0x00, 0x6c, 0x00, 0x69, 0x00, 0x62, 0x00, + 0x5c, 0x00, 0x77, 0x00, 0x69, 0x00, 0x6e, 0x00, 0x33, 0x00, 0x32, 0x00, 0x5c, 0x00, 0x6f, 0x00, 0x62, 0x00, 0x6a, + 0x00, 0x5c, 0x00, 0x69, 0x00, 0x33, 0x00, 0x38, 0x00, 0x36, 0x00, 0x5c, 0x00, 0x6d, 0x00, 0x73, 0x00, 0x74, 0x00, + 0x73, 0x00, 0x63, 0x00, 0x61, 0x00, 0x78, 0x00, 0x2e, 0x00, 0x64, 0x00, 0x6c, 0x00, 0x6c, 0x00, 0x00, + 0x00, // client dir + 0xe0, 0x01, 0x00, 0x00, 0x50, 0x00, 0x61, 0x00, 0x63, 0x00, 0x69, 0x00, 0x66, 0x00, 0x69, 0x00, 0x63, 0x00, 0x20, + 0x00, 0x53, 0x00, 0x74, 0x00, 0x61, 0x00, 0x6e, 0x00, 0x64, 0x00, 0x61, 0x00, 0x72, 0x00, 0x64, 0x00, 0x20, 0x00, + 0x54, 0x00, 0x69, 0x00, 0x6d, 0x00, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x05, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x00, 0x61, 0x00, 0x63, 0x00, 0x69, + 0x00, 0x66, 0x00, 0x69, 0x00, 0x63, 0x00, 0x20, 0x00, 0x44, 0x00, 0x61, 0x00, 0x79, 0x00, 0x6c, 0x00, 0x69, 0x00, + 0x67, 0x00, 0x68, 0x00, 0x74, 0x00, 0x20, 0x00, 0x54, 0x00, 0x69, 0x00, 0x6d, 0x00, 0x65, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc4, 0xff, 0xff, + 0xff, // TimezoneInfo 0x00, 0x00, 0x00, 0x00, // session id 0x01, 0x00, 0x00, 0x00, // performance flags ]; @@ -65,25 +61,22 @@ const CLIENT_INFO_BUFFER_ANSI: [u8; CLIENT_INFO_BUFFER_ANSI_LEN] = [ 0x00, // work dir 0x02, 0x00, // client address family 0x0f, 0x00, // client address size - 0x31, 0x35, 0x37, 0x2e, 0x35, 0x39, 0x2e, 0x32, 0x34, 0x32, 0x2e, 0x31, 0x35, 0x36, - 0x00, // client address + 0x31, 0x35, 0x37, 0x2e, 0x35, 0x39, 0x2e, 0x32, 0x34, 0x32, 0x2e, 0x31, 0x35, 0x36, 0x00, // client address 0x42, 0x00, // client dir size - 0x43, 0x3a, 0x5c, 0x64, 0x65, 0x70, 0x6f, 0x74, 0x73, 0x5c, 0x77, 0x32, 0x6b, 0x33, 0x5f, 0x31, - 0x5c, 0x74, 0x65, 0x72, 0x6d, 0x73, 0x72, 0x76, 0x5c, 0x6e, 0x65, 0x77, 0x63, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x5c, 0x6c, 0x69, 0x62, 0x5c, 0x77, 0x69, 0x6e, 0x33, 0x32, 0x5c, 0x6f, 0x62, 0x6a, - 0x5c, 0x69, 0x33, 0x38, 0x36, 0x5c, 0x6d, 0x73, 0x74, 0x73, 0x63, 0x61, 0x78, 0x2e, 0x64, 0x6c, - 0x6c, 0x00, // client dir - 0xe0, 0x01, 0x00, 0x00, 0x50, 0x00, 0x61, 0x00, 0x63, 0x00, 0x69, 0x00, 0x66, 0x00, 0x69, 0x00, - 0x63, 0x00, 0x20, 0x00, 0x53, 0x00, 0x74, 0x00, 0x61, 0x00, 0x6e, 0x00, 0x64, 0x00, 0x61, 0x00, - 0x72, 0x00, 0x64, 0x00, 0x20, 0x00, 0x54, 0x00, 0x69, 0x00, 0x6d, 0x00, 0x65, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x00, 0x61, 0x00, 0x63, 0x00, 0x69, 0x00, - 0x66, 0x00, 0x69, 0x00, 0x63, 0x00, 0x20, 0x00, 0x44, 0x00, 0x61, 0x00, 0x79, 0x00, 0x6c, 0x00, - 0x69, 0x00, 0x67, 0x00, 0x68, 0x00, 0x74, 0x00, 0x20, 0x00, 0x54, 0x00, 0x69, 0x00, 0x6d, 0x00, - 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc4, 0xff, 0xff, 0xff, // TimezoneInfo + 0x43, 0x3a, 0x5c, 0x64, 0x65, 0x70, 0x6f, 0x74, 0x73, 0x5c, 0x77, 0x32, 0x6b, 0x33, 0x5f, 0x31, 0x5c, 0x74, 0x65, + 0x72, 0x6d, 0x73, 0x72, 0x76, 0x5c, 0x6e, 0x65, 0x77, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5c, 0x6c, 0x69, 0x62, + 0x5c, 0x77, 0x69, 0x6e, 0x33, 0x32, 0x5c, 0x6f, 0x62, 0x6a, 0x5c, 0x69, 0x33, 0x38, 0x36, 0x5c, 0x6d, 0x73, 0x74, + 0x73, 0x63, 0x61, 0x78, 0x2e, 0x64, 0x6c, 0x6c, 0x00, // client dir + 0xe0, 0x01, 0x00, 0x00, 0x50, 0x00, 0x61, 0x00, 0x63, 0x00, 0x69, 0x00, 0x66, 0x00, 0x69, 0x00, 0x63, 0x00, 0x20, + 0x00, 0x53, 0x00, 0x74, 0x00, 0x61, 0x00, 0x6e, 0x00, 0x64, 0x00, 0x61, 0x00, 0x72, 0x00, 0x64, 0x00, 0x20, 0x00, + 0x54, 0x00, 0x69, 0x00, 0x6d, 0x00, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x05, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x00, 0x61, 0x00, 0x63, 0x00, 0x69, + 0x00, 0x66, 0x00, 0x69, 0x00, 0x63, 0x00, 0x20, 0x00, 0x44, 0x00, 0x61, 0x00, 0x79, 0x00, 0x6c, 0x00, 0x69, 0x00, + 0x67, 0x00, 0x68, 0x00, 0x74, 0x00, 0x20, 0x00, 0x54, 0x00, 0x69, 0x00, 0x6d, 0x00, 0x65, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc4, 0xff, 0xff, + 0xff, // TimezoneInfo 0x00, 0x00, 0x00, 0x00, // session id 0x01, 0x00, 0x00, 0x00, // performance flags ]; @@ -109,9 +102,7 @@ lazy_static! { extra_info: ExtendedClientInfo { address_family: AddressFamily::INet, address: String::from("157.59.242.156"), - dir: String::from( - "C:\\depots\\w2k3_1\\termsrv\\newclient\\lib\\win32\\obj\\i386\\mstscax.dll" - ), + dir: String::from("C:\\depots\\w2k3_1\\termsrv\\newclient\\lib\\win32\\obj\\i386\\mstscax.dll"), optional_data: ExtendedClientOptionalInfo { timezone: Some(TimezoneInfo { bias: 0x01e0, @@ -184,8 +175,7 @@ fn from_buffer_correct_parses_client_info_pdu_unicode() { fn from_buffer_correct_parses_client_info_pdu_unicode_without_optional_fields() { assert_eq!( CLIENT_INFO_UNICODE_WITHOUT_OPTIONAL_FIELDS.clone(), - ClientInfo::from_buffer(CLIENT_INFO_BUFFER_UNICODE_WITHOUT_OPTIONAL_FIELDS.as_slice()) - .unwrap() + ClientInfo::from_buffer(CLIENT_INFO_BUFFER_UNICODE_WITHOUT_OPTIONAL_FIELDS.as_slice()).unwrap() ); } diff --git a/ironrdp/src/rdp/finalization_messages.rs b/ironrdp/src/rdp/finalization_messages.rs index 4af0e4ec..ca636d2e 100644 --- a/ironrdp/src/rdp/finalization_messages.rs +++ b/ironrdp/src/rdp/finalization_messages.rs @@ -132,9 +132,7 @@ impl PduParsing for MonitorLayoutPdu { fn from_buffer(mut stream: impl io::Read) -> Result { let monitor_count = stream.read_u32::()?; if monitor_count > MAX_MONITOR_COUNT { - return Err(FinalizationMessagesError::InvalidMonitorCount( - monitor_count, - )); + return Err(FinalizationMessagesError::InvalidMonitorCount(monitor_count)); } let mut monitors = Vec::with_capacity(monitor_count as usize); @@ -196,11 +194,7 @@ pub enum FinalizationMessagesError { InvalidMonitorCount(u32), } -impl_from_error!( - io::Error, - FinalizationMessagesError, - FinalizationMessagesError::IOError -); +impl_from_error!(io::Error, FinalizationMessagesError, FinalizationMessagesError::IOError); impl_from_error!( gcc::MonitorDataError, FinalizationMessagesError, diff --git a/ironrdp/src/rdp/headers.rs b/ironrdp/src/rdp/headers.rs index acdddb47..9b6f0f2a 100644 --- a/ironrdp/src/rdp/headers.rs +++ b/ironrdp/src/rdp/headers.rs @@ -9,11 +9,10 @@ use super::{ client_info, ClientConfirmActive, ControlPdu, MonitorLayoutPdu, RdpError, ServerDemandActive, ServerSetErrorInfoPdu, SynchronizePdu, }; -use crate::{ - codecs::rfx::FrameAcknowledgePdu, - rdp::{finalization_messages::FontPdu, session_info::SaveSessionInfoPdu}, - PduParsing, -}; +use crate::codecs::rfx::FrameAcknowledgePdu; +use crate::rdp::finalization_messages::FontPdu; +use crate::rdp::session_info::SaveSessionInfoPdu; +use crate::PduParsing; pub const BASIC_SECURITY_HEADER_SIZE: usize = 4; const SHARE_CONTROL_HEADER_MASK: u16 = 0xf; @@ -74,11 +73,8 @@ impl PduParsing for ShareControlHeader { let pdu_source = stream.read_u16::()?; let share_id = stream.read_u32::()?; - let pdu_type = - ShareControlPduType::from_u16(pdu_type_with_version & SHARE_CONTROL_HEADER_MASK) - .ok_or_else(|| { - RdpError::InvalidShareControlHeader(String::from("Invalid pdu type")) - })?; + let pdu_type = ShareControlPduType::from_u16(pdu_type_with_version & SHARE_CONTROL_HEADER_MASK) + .ok_or_else(|| RdpError::InvalidShareControlHeader(String::from("Invalid pdu type")))?; let pdu_version = pdu_type_with_version & !SHARE_CONTROL_HEADER_MASK; if pdu_version != PROTOCOL_VERSION { return Err(RdpError::InvalidShareControlHeader(format!( @@ -96,12 +92,10 @@ impl PduParsing for ShareControlHeader { }) } fn to_buffer(&self, mut stream: impl io::Write) -> Result<(), Self::Error> { - let pdu_type_with_version = - PROTOCOL_VERSION | self.share_control_pdu.share_header_type().to_u16().unwrap(); + let pdu_type_with_version = PROTOCOL_VERSION | self.share_control_pdu.share_header_type().to_u16().unwrap(); - stream.write_u16::( - (self.share_control_pdu.buffer_length() + SHARE_CONTROL_HEADER_SIZE) as u16, - )?; + stream + .write_u16::((self.share_control_pdu.buffer_length() + SHARE_CONTROL_HEADER_SIZE) as u16)?; stream.write_u16::(pdu_type_with_version)?; stream.write_u16::(self.pdu_source)?; stream.write_u32::(self.share_id)?; @@ -131,10 +125,7 @@ impl ShareControlPdu { } impl ShareControlPdu { - pub fn from_type( - mut stream: impl io::Read, - share_type: ShareControlPduType, - ) -> Result { + pub fn from_type(mut stream: impl io::Read, share_type: ShareControlPduType) -> Result { match share_type { ShareControlPduType::DemandActivePdu => Ok(ShareControlPdu::ServerDemandActive( ServerDemandActive::from_buffer(&mut stream)?, @@ -142,20 +133,14 @@ impl ShareControlPdu { ShareControlPduType::ConfirmActivePdu => Ok(ShareControlPdu::ClientConfirmActive( ClientConfirmActive::from_buffer(&mut stream)?, )), - ShareControlPduType::DataPdu => Ok(ShareControlPdu::Data( - ShareDataHeader::from_buffer(&mut stream)?, - )), + ShareControlPduType::DataPdu => Ok(ShareControlPdu::Data(ShareDataHeader::from_buffer(&mut stream)?)), _ => Err(RdpError::UnexpectedShareControlPdu(share_type)), } } pub fn to_buffer(&self, mut stream: impl io::Write) -> Result<(), RdpError> { match self { - ShareControlPdu::ServerDemandActive(pdu) => { - pdu.to_buffer(&mut stream).map_err(RdpError::from) - } - ShareControlPdu::ClientConfirmActive(pdu) => { - pdu.to_buffer(&mut stream).map_err(RdpError::from) - } + ShareControlPdu::ServerDemandActive(pdu) => pdu.to_buffer(&mut stream).map_err(RdpError::from), + ShareControlPdu::ClientConfirmActive(pdu) => pdu.to_buffer(&mut stream).map_err(RdpError::from), ShareControlPdu::Data(share_data_header) => share_data_header.to_buffer(&mut stream), } } @@ -188,23 +173,18 @@ impl PduParsing for ShareDataHeader { fn from_buffer(mut stream: impl io::Read) -> Result { let _padding = stream.read_u8()?; - let stream_priority = StreamPriority::from_u8(stream.read_u8()?).ok_or_else(|| { - RdpError::InvalidShareDataHeader(String::from("Invalid stream priority")) - })?; + let stream_priority = StreamPriority::from_u8(stream.read_u8()?) + .ok_or_else(|| RdpError::InvalidShareDataHeader(String::from("Invalid stream priority")))?; let _uncompressed_length = stream.read_u16::()?; let pdu_type = ShareDataPduType::from_u8(stream.read_u8()?) .ok_or_else(|| RdpError::InvalidShareDataHeader(String::from("Invalid pdu type")))?; let compression_flags_with_type = stream.read_u8()?; - let compression_flags = CompressionFlags::from_bits_truncate( - compression_flags_with_type & SHARE_DATA_HEADER_MASK, - ); - let compression_type = client_info::CompressionType::from_u8( - compression_flags_with_type & !SHARE_DATA_HEADER_MASK, - ) - .ok_or_else(|| { - RdpError::InvalidShareDataHeader(String::from("Invalid compression type")) - })?; + let compression_flags = + CompressionFlags::from_bits_truncate(compression_flags_with_type & SHARE_DATA_HEADER_MASK); + let compression_type = + client_info::CompressionType::from_u8(compression_flags_with_type & !SHARE_DATA_HEADER_MASK) + .ok_or_else(|| RdpError::InvalidShareDataHeader(String::from("Invalid compression type")))?; let _compressed_length = stream.read_u16::()?; let share_data_pdu = ShareDataPdu::from_type(&mut stream, pdu_type)?; @@ -219,8 +199,7 @@ impl PduParsing for ShareDataHeader { fn to_buffer(&self, mut stream: impl io::Write) -> Result<(), Self::Error> { if self.compression_flags.is_empty() { - let compression_flags_with_type = - self.compression_flags.bits() | self.compression_type.to_u8().unwrap(); + let compression_flags_with_type = self.compression_flags.bits() | self.compression_type.to_u8().unwrap(); stream.write_u8(0)?; // padding stream.write_u8(self.stream_priority.to_u8().unwrap())?; @@ -281,29 +260,18 @@ impl ShareDataPdu { } impl ShareDataPdu { - pub fn from_type( - mut stream: impl io::Read, - share_type: ShareDataPduType, - ) -> Result { + pub fn from_type(mut stream: impl io::Read, share_type: ShareDataPduType) -> Result { match share_type { - ShareDataPduType::Synchronize => Ok(ShareDataPdu::Synchronize( - SynchronizePdu::from_buffer(&mut stream)?, - )), - ShareDataPduType::Control => { - Ok(ShareDataPdu::Control(ControlPdu::from_buffer(&mut stream)?)) + ShareDataPduType::Synchronize => Ok(ShareDataPdu::Synchronize(SynchronizePdu::from_buffer(&mut stream)?)), + ShareDataPduType::Control => Ok(ShareDataPdu::Control(ControlPdu::from_buffer(&mut stream)?)), + ShareDataPduType::FontList => Ok(ShareDataPdu::FontList(FontPdu::from_buffer(&mut stream)?)), + ShareDataPduType::FontMap => Ok(ShareDataPdu::FontMap(FontPdu::from_buffer(&mut stream)?)), + ShareDataPduType::MonitorLayoutPdu => { + Ok(ShareDataPdu::MonitorLayout(MonitorLayoutPdu::from_buffer(&mut stream)?)) } - ShareDataPduType::FontList => { - Ok(ShareDataPdu::FontList(FontPdu::from_buffer(&mut stream)?)) - } - ShareDataPduType::FontMap => { - Ok(ShareDataPdu::FontMap(FontPdu::from_buffer(&mut stream)?)) - } - ShareDataPduType::MonitorLayoutPdu => Ok(ShareDataPdu::MonitorLayout( - MonitorLayoutPdu::from_buffer(&mut stream)?, - )), - ShareDataPduType::SaveSessionInfo => Ok(ShareDataPdu::SaveSessionInfo( - SaveSessionInfoPdu::from_buffer(&mut stream)?, - )), + ShareDataPduType::SaveSessionInfo => Ok(ShareDataPdu::SaveSessionInfo(SaveSessionInfoPdu::from_buffer( + &mut stream, + )?)), ShareDataPduType::FrameAcknowledgePdu => Ok(ShareDataPdu::FrameAcknowledge( FrameAcknowledgePdu::from_buffer(&mut stream)?, )), @@ -337,15 +305,9 @@ impl ShareDataPdu { pdu.to_buffer(&mut stream).map_err(RdpError::from) } ShareDataPdu::MonitorLayout(pdu) => pdu.to_buffer(&mut stream).map_err(RdpError::from), - ShareDataPdu::SaveSessionInfo(pdu) => { - pdu.to_buffer(&mut stream).map_err(RdpError::from) - } - ShareDataPdu::FrameAcknowledge(pdu) => { - pdu.to_buffer(&mut stream).map_err(RdpError::from) - } - ShareDataPdu::ServerSetErrorInfo(pdu) => { - pdu.to_buffer(&mut stream).map_err(RdpError::from) - } + ShareDataPdu::SaveSessionInfo(pdu) => pdu.to_buffer(&mut stream).map_err(RdpError::from), + ShareDataPdu::FrameAcknowledge(pdu) => pdu.to_buffer(&mut stream).map_err(RdpError::from), + ShareDataPdu::ServerSetErrorInfo(pdu) => pdu.to_buffer(&mut stream).map_err(RdpError::from), } } pub fn buffer_length(&self) -> usize { diff --git a/ironrdp/src/rdp/server_error_info.rs b/ironrdp/src/rdp/server_error_info.rs index 6642c1f0..74346a6e 100644 --- a/ironrdp/src/rdp/server_error_info.rs +++ b/ironrdp/src/rdp/server_error_info.rs @@ -15,8 +15,8 @@ impl PduParsing for ServerSetErrorInfoPdu { fn from_buffer(mut buffer: impl io::Read) -> Result { let error_info = buffer.read_u32::()?; - let error_info = ErrorInfo::from_u32(error_info) - .ok_or(ServerSetErrorInfoError::UnexpectedInfoCode(error_info))?; + let error_info = + ErrorInfo::from_u32(error_info).ok_or(ServerSetErrorInfoError::UnexpectedInfoCode(error_info))?; Ok(Self(error_info)) } @@ -49,10 +49,9 @@ impl ErrorInfo { Self::ProtocolIndependentLicensingCode(c) => { format!("[Protocol independent licensing error] {}", c.description()) } - Self::ProtocolIndependentConnectionBrokerCode(c) => format!( - "[Protocol independent connection broker error] {}", - c.description() - ), + Self::ProtocolIndependentConnectionBrokerCode(c) => { + format!("[Protocol independent connection broker error] {}", c.description()) + } Self::RdpSpecificCode(c) => format!("[RDP specific code]: {}", c.description()), } } @@ -169,35 +168,19 @@ pub enum ProtocolIndependentLicensingCode { impl ProtocolIndependentLicensingCode { pub fn description(&self) -> &str { match self { - Self::Internal => { - "An internal error has occurred in the Terminal Services licensing component" - } - Self::NoLicenseServer => { - "A Remote Desktop License Server could not be found to provide a license" - } - Self::NoLicense => { - "There are no Client Access Licenses available for the target remote computer" - } - Self::BadClientMsg => { - "The remote computer received an invalid licensing message from the client" - } - Self::HwidDoesntMatchLicense => { - "The Client Access License stored by the client has been modified" - } - Self::BadClientLicense => { - "The Client Access License stored by the client is in an invalid format" - } - Self::CantFinishProtocol => { - "Network problems have caused the licensing protocol to be terminated" - } + Self::Internal => "An internal error has occurred in the Terminal Services licensing component", + Self::NoLicenseServer => "A Remote Desktop License Server could not be found to provide a license", + Self::NoLicense => "There are no Client Access Licenses available for the target remote computer", + Self::BadClientMsg => "The remote computer received an invalid licensing message from the client", + Self::HwidDoesntMatchLicense => "The Client Access License stored by the client has been modified", + Self::BadClientLicense => "The Client Access License stored by the client is in an invalid format", + Self::CantFinishProtocol => "Network problems have caused the licensing protocol to be terminated", Self::ClientEndedProtocol => "The client prematurely ended the licensing protocol", Self::BadClientEncryption => "A licensing message was incorrectly encrypted", Self::CantUpgradeLicense => { "The Client Access License stored by the client could not be upgraded or renewed" } - Self::NoRemoteConnections => { - "The remote computer is not licensed to accept remote connections" - } + Self::NoRemoteConnections => "The remote computer is not licensed to accept remote connections", } } } @@ -410,11 +393,7 @@ pub enum ServerSetErrorInfoError { UnexpectedInfoCode(u32), } -impl_from_error!( - io::Error, - ServerSetErrorInfoError, - ServerSetErrorInfoError::IoError -); +impl_from_error!(io::Error, ServerSetErrorInfoError, ServerSetErrorInfoError::IoError); #[cfg(test)] mod tests { @@ -439,9 +418,7 @@ mod tests { let expected = SERVER_SET_ERROR_INFO_BUFFER.as_ref(); let mut buffer = vec![0; expected.len()]; - SERVER_SET_ERROR_INFO - .to_buffer(&mut buffer.as_mut_slice()) - .unwrap(); + SERVER_SET_ERROR_INFO.to_buffer(&mut buffer.as_mut_slice()).unwrap(); assert_eq!(expected, buffer.as_slice()); } diff --git a/ironrdp/src/rdp/server_license.rs b/ironrdp/src/rdp/server_license.rs index 7ed68232..0a8f0bc4 100644 --- a/ironrdp/src/rdp/server_license.rs +++ b/ironrdp/src/rdp/server_license.rs @@ -18,16 +18,12 @@ use num_derive::{FromPrimitive, ToPrimitive}; use num_traits::{FromPrimitive, ToPrimitive}; use ring::digest; -pub use self::{ - client_new_license_request::{ClientNewLicenseRequest, PLATFORM_ID}, - client_platform_challenge_response::ClientPlatformChallengeResponse, - licensing_error_message::{LicenseErrorCode, LicensingErrorMessage, LicensingStateTransition}, - server_license_request::{ - InitialMessageType, InitialServerLicenseMessage, ServerLicenseRequest, - }, - server_platform_challenge::ServerPlatformChallenge, - server_upgrade_license::ServerUpgradeLicense, -}; +pub use self::client_new_license_request::{ClientNewLicenseRequest, PLATFORM_ID}; +pub use self::client_platform_challenge_response::ClientPlatformChallengeResponse; +pub use self::licensing_error_message::{LicenseErrorCode, LicensingErrorMessage, LicensingStateTransition}; +pub use self::server_license_request::{InitialMessageType, InitialServerLicenseMessage, ServerLicenseRequest}; +pub use self::server_platform_challenge::ServerPlatformChallenge; +pub use self::server_upgrade_license::ServerUpgradeLicense; use crate::rdp::{BasicSecurityHeader, BasicSecurityHeaderFlags, BASIC_SECURITY_HEADER_SIZE}; use crate::{impl_from_error, PduParsing}; @@ -74,31 +70,23 @@ impl PduParsing for LicenseHeader { )) })?; - if !security_header - .flags - .contains(BasicSecurityHeaderFlags::LICENSE_PKT) - { + if !security_header.flags.contains(BasicSecurityHeaderFlags::LICENSE_PKT) { return Err(ServerLicenseError::InvalidSecurityFlags); } - let preamble_message_type = PreambleType::from_u8(stream.read_u8()?) - .ok_or(ServerLicenseError::InvalidLicenseType)?; + let preamble_message_type = + PreambleType::from_u8(stream.read_u8()?).ok_or(ServerLicenseError::InvalidLicenseType)?; let flags_with_version = stream.read_u8()?; let preamble_message_size = stream.read_u16::()?; let preamble_flags = PreambleFlags::from_bits(flags_with_version & !PROTOCOL_VERSION_MASK) - .ok_or_else(|| { - ServerLicenseError::InvalidPreamble(String::from("Got invalid flags field")) - })?; + .ok_or_else(|| ServerLicenseError::InvalidPreamble(String::from("Got invalid flags field")))?; - let preamble_version = - PreambleVersion::from_u8((flags_with_version & PROTOCOL_VERSION_MASK) as u8) - .ok_or_else(|| { - ServerLicenseError::InvalidPreamble(String::from( - "Got invalid version in the flags field", - )) - })?; + let preamble_version = PreambleVersion::from_u8((flags_with_version & PROTOCOL_VERSION_MASK) as u8) + .ok_or_else(|| { + ServerLicenseError::InvalidPreamble(String::from("Got invalid version in the flags field")) + })?; Ok(Self { security_header, @@ -117,8 +105,7 @@ impl PduParsing for LicenseHeader { )) })?; - let flags_with_version = - self.preamble_flags.bits() | self.preamble_version.to_u8().unwrap(); + let flags_with_version = self.preamble_flags.bits() | self.preamble_version.to_u8().unwrap(); stream.write_u8(self.preamble_message_type.to_u8().unwrap())?; stream.write_u8(flags_with_version)?; @@ -197,9 +184,7 @@ pub enum ServerLicenseError { RsaKeyEncryptionError, #[fail(display = "Invalid License Request key exchange algorithm value")] InvalidKeyExchangeValue, - #[fail( - display = "MAC checksum generated over decrypted data does not match the server's checksum" - )] + #[fail(display = "MAC checksum generated over decrypted data does not match the server's checksum")] InvalidMacData, #[fail(display = "Invalid platform challenge response data version")] InvalidChallengeResponseDataVersion, @@ -235,15 +220,9 @@ pub enum ServerLicenseError { UnexpectedValidClientError(LicensingErrorMessage), #[fail(display = "Invalid Key Exchange List field")] InvalidKeyExchangeAlgorithm, - #[fail( - display = "Received invalid company name length (Product Information): {}", - _0 - )] + #[fail(display = "Received invalid company name length (Product Information): {}", _0)] InvalidCompanyNameLength(u32), - #[fail( - display = "Received invalid product ID length (Product Information): {}", - _0 - )] + #[fail(display = "Received invalid product ID length (Product Information): {}", _0)] InvalidProductIdLength(u32), #[fail(display = "Received invalid scope count field: {}", _0)] InvalidScopeCount(u32), @@ -279,9 +258,7 @@ impl BlobHeader { Ok(Self { blob_type, length }) } - pub fn read_any_blob_from_buffer( - mut stream: impl io::Read, - ) -> Result { + pub fn read_any_blob_from_buffer(mut stream: impl io::Read) -> Result { let _blob_type = stream.read_u16::()?; let length = stream.read_u16::()? as usize; @@ -312,14 +289,9 @@ fn compute_mac_data(mac_salt_key: &[u8], data: &[u8]) -> Vec { let sha_result = digest::digest( &digest::SHA1_FOR_LEGACY_USE_ONLY, - [ - mac_salt_key, - pad_one.as_ref(), - data_len_buffer.as_ref(), - data, - ] - .concat() - .as_slice(), + [mac_salt_key, pad_one.as_ref(), data_len_buffer.as_ref(), data] + .concat() + .as_slice(), ); let pad_two: [u8; 48] = [0x5c; 48]; @@ -347,9 +319,7 @@ fn read_license_header( if license_error.error_code == LicenseErrorCode::StatusValidClient && license_error.state_transition == LicensingStateTransition::NoTransition { - return Err(ServerLicenseError::UnexpectedValidClientError( - license_error, - )); + return Err(ServerLicenseError::UnexpectedValidClientError(license_error)); } else { return Err(ServerLicenseError::UnexpectedServerError(license_error)); } diff --git a/ironrdp/src/rdp/server_license/client_new_license_request.rs b/ironrdp/src/rdp/server_license/client_new_license_request.rs index 136f6e6d..fd15e6ec 100644 --- a/ironrdp/src/rdp/server_license/client_new_license_request.rs +++ b/ironrdp/src/rdp/server_license/client_new_license_request.rs @@ -3,20 +3,19 @@ pub mod test; use std::io; -use crate::utils::rsa::encrypt_with_public_key; use bitflags::bitflags; use byteorder::{LittleEndian, ReadBytesExt, WriteBytesExt}; use md5::Digest; - use ring::digest; use super::{ - BasicSecurityHeader, BasicSecurityHeaderFlags, BlobHeader, BlobType, LicenseEncryptionData, - LicenseHeader, PreambleFlags, PreambleType, PreambleVersion, ServerLicenseError, - ServerLicenseRequest, KEY_EXCHANGE_ALGORITHM_RSA, PREAMBLE_SIZE, RANDOM_NUMBER_SIZE, - UTF8_NULL_TERMINATOR_SIZE, + BasicSecurityHeader, BasicSecurityHeaderFlags, BlobHeader, BlobType, LicenseEncryptionData, LicenseHeader, + PreambleFlags, PreambleType, PreambleVersion, ServerLicenseError, ServerLicenseRequest, KEY_EXCHANGE_ALGORITHM_RSA, + PREAMBLE_SIZE, RANDOM_NUMBER_SIZE, UTF8_NULL_TERMINATOR_SIZE, }; -use crate::{utils, utils::CharacterSet, PduParsing}; +use crate::utils::rsa::encrypt_with_public_key; +use crate::utils::CharacterSet; +use crate::{utils, PduParsing}; const LICENSE_REQUEST_STATIC_FIELDS_SIZE: usize = 20; @@ -142,28 +141,15 @@ impl PduParsing for ClientNewLicenseRequest { let mut client_random = vec![0u8; RANDOM_NUMBER_SIZE]; stream.read_exact(&mut client_random)?; - let premaster_secret_blob_header = - BlobHeader::read_from_buffer(BlobType::Random, &mut stream)?; + let premaster_secret_blob_header = BlobHeader::read_from_buffer(BlobType::Random, &mut stream)?; let mut encrypted_premaster_secret = vec![0u8; premaster_secret_blob_header.length]; stream.read_exact(&mut encrypted_premaster_secret)?; - let username_blob_header = - BlobHeader::read_from_buffer(BlobType::ClientUserName, &mut stream)?; - let client_username = utils::read_string( - &mut stream, - username_blob_header.length, - CharacterSet::Ansi, - false, - )?; + let username_blob_header = BlobHeader::read_from_buffer(BlobType::ClientUserName, &mut stream)?; + let client_username = utils::read_string(&mut stream, username_blob_header.length, CharacterSet::Ansi, false)?; - let machine_name_blob = - BlobHeader::read_from_buffer(BlobType::ClientMachineNameBlob, &mut stream)?; - let client_machine_name = utils::read_string( - &mut stream, - machine_name_blob.length, - CharacterSet::Ansi, - false, - )?; + let machine_name_blob = BlobHeader::read_from_buffer(BlobType::ClientMachineNameBlob, &mut stream)?; + let client_machine_name = utils::read_string(&mut stream, machine_name_blob.length, CharacterSet::Ansi, false)?; Ok(Self { license_header, @@ -181,8 +167,7 @@ impl PduParsing for ClientNewLicenseRequest { stream.write_u32::(PLATFORM_ID)?; stream.write_all(&self.client_random)?; - BlobHeader::new(BlobType::Random, self.encrypted_premaster_secret.len()) - .write_to_buffer(&mut stream)?; + BlobHeader::new(BlobType::Random, self.encrypted_premaster_secret.len()).write_to_buffer(&mut stream)?; stream.write_all(&self.encrypted_premaster_secret)?; BlobHeader::new( @@ -190,22 +175,14 @@ impl PduParsing for ClientNewLicenseRequest { self.client_username.len() + UTF8_NULL_TERMINATOR_SIZE, ) .write_to_buffer(&mut stream)?; - utils::write_string_with_null_terminator( - &mut stream, - &self.client_username, - CharacterSet::Ansi, - )?; + utils::write_string_with_null_terminator(&mut stream, &self.client_username, CharacterSet::Ansi)?; BlobHeader::new( BlobType::ClientMachineNameBlob, self.client_machine_name.len() + UTF8_NULL_TERMINATOR_SIZE, ) .write_to_buffer(&mut stream)?; - utils::write_string_with_null_terminator( - &mut stream, - &self.client_machine_name, - CharacterSet::Ansi, - )?; + utils::write_string_with_null_terminator(&mut stream, &self.client_machine_name, CharacterSet::Ansi)?; Ok(()) } @@ -235,11 +212,7 @@ fn salted_hash(salt: &[u8], salt_first: &[u8], salt_second: &[u8], input: &[u8]) } // According to https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-rdpele/88061224-4a2f-4a28-a52e-e896b75ed2d3 -fn compute_master_secret( - premaster_secret: &[u8], - client_random: &[u8], - server_random: &[u8], -) -> Vec { +fn compute_master_secret(premaster_secret: &[u8], client_random: &[u8], server_random: &[u8]) -> Vec { [ salted_hash(premaster_secret, client_random, server_random, b"A"), salted_hash(premaster_secret, client_random, server_random, b"BB"), @@ -249,11 +222,7 @@ fn compute_master_secret( } // According to https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-rdpele/88061224-4a2f-4a28-a52e-e896b75ed2d3 -fn compute_session_key_blob( - master_secret: &[u8], - client_random: &[u8], - server_random: &[u8], -) -> Vec { +fn compute_session_key_blob(master_secret: &[u8], client_random: &[u8], server_random: &[u8]) -> Vec { [ salted_hash(master_secret, server_random, client_random, b"A"), salted_hash(master_secret, server_random, client_random, b"BB"), diff --git a/ironrdp/src/rdp/server_license/client_new_license_request/test.rs b/ironrdp/src/rdp/server_license/client_new_license_request/test.rs index 0c6ca76d..870392d6 100644 --- a/ironrdp/src/rdp/server_license/client_new_license_request/test.rs +++ b/ironrdp/src/rdp/server_license/client_new_license_request/test.rs @@ -1,14 +1,10 @@ -use super::*; -use crate::rdp::server_license::{ - server_license_request::{ - cert::{CertificateType, X509CertificateChain}, - ProductInfo, Scope, ServerCertificate, - }, - PREAMBLE_SIZE, -}; - use lazy_static::lazy_static; +use super::*; +use crate::rdp::server_license::server_license_request::cert::{CertificateType, X509CertificateChain}; +use crate::rdp::server_license::server_license_request::{ProductInfo, Scope, ServerCertificate}; +use crate::rdp::server_license::PREAMBLE_SIZE; + const LICENSE_HEADER_BUFFER_NO_SIZE: [u8; 6] = [ 0x80, 0x00, // flags 0x00, 0x00, // flagsHi @@ -16,27 +12,26 @@ const LICENSE_HEADER_BUFFER_NO_SIZE: [u8; 6] = [ ]; const CLIENT_RANDOM_BUFFER: [u8; 32] = [ - 0x4b, 0x5b, 0x7b, 0x43, 0x63, 0x8a, 0x8, 0xfe, 0xd1, 0x7a, 0xba, 0xf5, 0x91, 0x85, 0x77, 0xfe, - 0x39, 0x36, 0xf6, 0xd7, 0x78, 0xec, 0x6a, 0xcc, 0x89, 0x4a, 0x90, 0x41, 0x2c, 0xac, 0x5a, 0x49, + 0x4b, 0x5b, 0x7b, 0x43, 0x63, 0x8a, 0x8, 0xfe, 0xd1, 0x7a, 0xba, 0xf5, 0x91, 0x85, 0x77, 0xfe, 0x39, 0x36, 0xf6, + 0xd7, 0x78, 0xec, 0x6a, 0xcc, 0x89, 0x4a, 0x90, 0x41, 0x2c, 0xac, 0x5a, 0x49, ]; const SERVER_RANDOM_BUFFER: [u8; 32] = [ - 0x5c, 0x81, 0xf0, 0x11, 0xeb, 0xcf, 0xd1, 0xe, 0xb4, 0x1f, 0xb3, 0xba, 0x93, 0xa2, 0xd7, 0x39, - 0x9, 0xaa, 0x99, 0xe9, 0x10, 0xd4, 0xd7, 0x95, 0xdd, 0xad, 0x91, 0x69, 0x5, 0x26, 0x6b, 0x6a, + 0x5c, 0x81, 0xf0, 0x11, 0xeb, 0xcf, 0xd1, 0xe, 0xb4, 0x1f, 0xb3, 0xba, 0x93, 0xa2, 0xd7, 0x39, 0x9, 0xaa, 0x99, + 0xe9, 0x10, 0xd4, 0xd7, 0x95, 0xdd, 0xad, 0x91, 0x69, 0x5, 0x26, 0x6b, 0x6a, ]; const ENCRYPTED_PREMASTER_SECRET: [u8; 72] = [ - 0xb0, 0x95, 0xf7, 0xcb, 0x81, 0x34, 0x45, 0x85, 0x65, 0x83, 0xb2, 0xcf, 0x5b, 0xdf, 0xfe, 0x40, - 0x6f, 0xd8, 0x14, 0x14, 0x18, 0xb, 0x2b, 0x6d, 0xaa, 0xd0, 0x38, 0xa, 0xaf, 0x74, 0xe9, 0x51, - 0x55, 0x2b, 0xdb, 0xfd, 0x3b, 0xd3, 0xfb, 0x2f, 0x34, 0x92, 0xdd, 0xc8, 0xaf, 0x48, 0xf3, 0x91, - 0x61, 0x8a, 0x5b, 0xbd, 0x81, 0x87, 0xec, 0xb8, 0xcc, 0xb, 0xb, 0xc9, 0xd, 0x1c, 0xe7, 0x17, 0, - 0, 0, 0, 0, 0, 0, 0, + 0xb0, 0x95, 0xf7, 0xcb, 0x81, 0x34, 0x45, 0x85, 0x65, 0x83, 0xb2, 0xcf, 0x5b, 0xdf, 0xfe, 0x40, 0x6f, 0xd8, 0x14, + 0x14, 0x18, 0xb, 0x2b, 0x6d, 0xaa, 0xd0, 0x38, 0xa, 0xaf, 0x74, 0xe9, 0x51, 0x55, 0x2b, 0xdb, 0xfd, 0x3b, 0xd3, + 0xfb, 0x2f, 0x34, 0x92, 0xdd, 0xc8, 0xaf, 0x48, 0xf3, 0x91, 0x61, 0x8a, 0x5b, 0xbd, 0x81, 0x87, 0xec, 0xb8, 0xcc, + 0xb, 0xb, 0xc9, 0xd, 0x1c, 0xe7, 0x17, 0, 0, 0, 0, 0, 0, 0, 0, ]; const PREMASTER_SECRET_BUFFER: [u8; 48] = [ - 0x14, 0x28, 0xda, 0xfb, 0xb9, 0xea, 0x38, 0xab, 0x5e, 0xa2, 0xf9, 0x4, 0xf7, 0x89, 0x9c, 0x98, - 0x3d, 0x50, 0x45, 0x77, 0xbf, 0x17, 0x81, 0x1c, 0x37, 0x87, 0xc2, 0x48, 0x13, 0xe8, 0xc9, 0x20, - 0x4d, 0xdf, 0xf3, 0x27, 0xbd, 0xb6, 0x98, 0x7e, 0x64, 0xda, 0xfe, 0x1d, 0x31, 0x2f, 0x62, 0xca, + 0x14, 0x28, 0xda, 0xfb, 0xb9, 0xea, 0x38, 0xab, 0x5e, 0xa2, 0xf9, 0x4, 0xf7, 0x89, 0x9c, 0x98, 0x3d, 0x50, 0x45, + 0x77, 0xbf, 0x17, 0x81, 0x1c, 0x37, 0x87, 0xc2, 0x48, 0x13, 0xe8, 0xc9, 0x20, 0x4d, 0xdf, 0xf3, 0x27, 0xbd, 0xb6, + 0x98, 0x7e, 0x64, 0xda, 0xfe, 0x1d, 0x31, 0x2f, 0x62, 0xca, ]; const SALTED_HASH_BUFFER: [u8; 16] = [ @@ -44,15 +39,15 @@ const SALTED_HASH_BUFFER: [u8; 16] = [ ]; const MASTER_SECRET_BUFFER: [u8; 48] = [ - 0xfe, 0xdc, 0x51, 0x9a, 0xdb, 0x3a, 0xc9, 0x61, 0x4, 0x7, 0x24, 0x94, 0x5d, 0xc, 0x43, 0xa7, - 0x70, 0xe3, 0xf3, 0x0, 0x50, 0xd7, 0xa8, 0x72, 0x3e, 0xab, 0x7e, 0x1b, 0xe4, 0x64, 0xe5, 0xc5, - 0x74, 0xae, 0xed, 0x10, 0x72, 0x96, 0x2a, 0x4c, 0x65, 0x9, 0x4f, 0x60, 0x12, 0xa9, 0x12, 0xa1, + 0xfe, 0xdc, 0x51, 0x9a, 0xdb, 0x3a, 0xc9, 0x61, 0x4, 0x7, 0x24, 0x94, 0x5d, 0xc, 0x43, 0xa7, 0x70, 0xe3, 0xf3, 0x0, + 0x50, 0xd7, 0xa8, 0x72, 0x3e, 0xab, 0x7e, 0x1b, 0xe4, 0x64, 0xe5, 0xc5, 0x74, 0xae, 0xed, 0x10, 0x72, 0x96, 0x2a, + 0x4c, 0x65, 0x9, 0x4f, 0x60, 0x12, 0xa9, 0x12, 0xa1, ]; const SESSION_KEY_BLOB: [u8; 48] = [ - 0xf7, 0x3, 0x75, 0xb9, 0x5f, 0xda, 0xd0, 0xbe, 0xb4, 0x2a, 0xf5, 0xc1, 0x3d, 0x98, 0x85, 0x7a, - 0xd6, 0xc5, 0x39, 0x4c, 0xe3, 0xcb, 0x76, 0x61, 0xaa, 0x4a, 0xb6, 0x15, 0x7e, 0x89, 0x21, 0x3d, - 0xdf, 0x5b, 0x25, 0x32, 0xee, 0x5, 0x6, 0xd, 0x5b, 0xaa, 0x63, 0x14, 0xaf, 0xa5, 0x46, 0xf, + 0xf7, 0x3, 0x75, 0xb9, 0x5f, 0xda, 0xd0, 0xbe, 0xb4, 0x2a, 0xf5, 0xc1, 0x3d, 0x98, 0x85, 0x7a, 0xd6, 0xc5, 0x39, + 0x4c, 0xe3, 0xcb, 0x76, 0x61, 0xaa, 0x4a, 0xb6, 0x15, 0x7e, 0x89, 0x21, 0x3d, 0xdf, 0x5b, 0x25, 0x32, 0xee, 0x5, + 0x6, 0xd, 0x5b, 0xaa, 0x63, 0x14, 0xaf, 0xa5, 0x46, 0xf, ]; const LICENSE_KEY_BUFFER: [u8; 16] = [ @@ -276,32 +271,26 @@ fn from_buffer_correctly_parses_client_new_license_request() { #[test] fn to_buffer_correctly_serializes_client_new_license_request() { let mut serialized_request = Vec::new(); - CLIENT_NEW_LICENSE_REQUEST - .to_buffer(&mut serialized_request) - .unwrap(); + CLIENT_NEW_LICENSE_REQUEST.to_buffer(&mut serialized_request).unwrap(); assert_eq!(REQUEST_BUFFER.as_slice(), serialized_request.as_slice()); } #[test] fn buffer_length_is_correct_for_client_new_license_request() { - assert_eq!( - REQUEST_BUFFER.len(), - CLIENT_NEW_LICENSE_REQUEST.buffer_length() - ); + assert_eq!(REQUEST_BUFFER.len(), CLIENT_NEW_LICENSE_REQUEST.buffer_length()); } #[test] fn client_new_license_request_creates_correctly() { - let (client_new_license_request, encryption_data) = - ClientNewLicenseRequest::from_server_license_request( - &SERVER_LICENSE_REQUEST, - CLIENT_RANDOM_BUFFER.as_ref(), - PREMASTER_SECRET_BUFFER.as_ref(), - CLIENT_USERNAME, - CLIENT_MACHINE_NAME, - ) - .unwrap(); + let (client_new_license_request, encryption_data) = ClientNewLicenseRequest::from_server_license_request( + &SERVER_LICENSE_REQUEST, + CLIENT_RANDOM_BUFFER.as_ref(), + PREMASTER_SECRET_BUFFER.as_ref(), + CLIENT_USERNAME, + CLIENT_MACHINE_NAME, + ) + .unwrap(); assert_eq!(encryption_data.license_key, LICENSE_KEY_BUFFER.as_ref()); assert_eq!(client_new_license_request, *CLIENT_NEW_LICENSE_REQUEST); diff --git a/ironrdp/src/rdp/server_license/client_platform_challenge_response.rs b/ironrdp/src/rdp/server_license/client_platform_challenge_response.rs index 7deb6be2..116de939 100644 --- a/ironrdp/src/rdp/server_license/client_platform_challenge_response.rs +++ b/ironrdp/src/rdp/server_license/client_platform_challenge_response.rs @@ -1,7 +1,8 @@ #[cfg(test)] mod test; -use std::{io, io::Write}; +use std::io; +use std::io::Write; use byteorder::{LittleEndian, ReadBytesExt, WriteBytesExt}; use md5::Digest; @@ -9,12 +10,12 @@ use num_derive::{FromPrimitive, ToPrimitive}; use num_traits::{FromPrimitive, ToPrimitive}; use super::{ - BasicSecurityHeader, BasicSecurityHeaderFlags, BlobHeader, BlobType, LicenseEncryptionData, - LicenseHeader, PreambleFlags, PreambleType, PreambleVersion, ServerLicenseError, - ServerPlatformChallenge, BLOB_LENGTH_SIZE, BLOB_TYPE_SIZE, MAC_SIZE, PLATFORM_ID, - PREAMBLE_SIZE, + BasicSecurityHeader, BasicSecurityHeaderFlags, BlobHeader, BlobType, LicenseEncryptionData, LicenseHeader, + PreambleFlags, PreambleType, PreambleVersion, ServerLicenseError, ServerPlatformChallenge, BLOB_LENGTH_SIZE, + BLOB_TYPE_SIZE, MAC_SIZE, PLATFORM_ID, PREAMBLE_SIZE, }; -use crate::{utils::rc4::Rc4, PduParsing}; +use crate::utils::rc4::Rc4; +use crate::PduParsing; const RESPONSE_DATA_VERSION: u16 = 0x100; const RESPONSE_DATA_STATIC_FIELDS_SIZE: usize = 8; @@ -36,13 +37,10 @@ impl ClientPlatformChallengeResponse { encryption_data: &LicenseEncryptionData, ) -> Result { let mut rc4 = Rc4::new(&encryption_data.license_key); - let decrypted_challenge = - rc4.process(platform_challenge.encrypted_platform_challenge.as_slice()); + let decrypted_challenge = rc4.process(platform_challenge.encrypted_platform_challenge.as_slice()); - let decrypted_challenge_mac = super::compute_mac_data( - encryption_data.mac_salt_key.as_slice(), - decrypted_challenge.as_slice(), - ); + let decrypted_challenge_mac = + super::compute_mac_data(encryption_data.mac_salt_key.as_slice(), decrypted_challenge.as_slice()); if decrypted_challenge_mac != platform_challenge.mac_data { return Err(ServerLicenseError::InvalidMacData); @@ -51,8 +49,7 @@ impl ClientPlatformChallengeResponse { let mut challenge_response_data = vec![0u8; RESPONSE_DATA_STATIC_FIELDS_SIZE]; challenge_response_data.write_u16::(RESPONSE_DATA_VERSION)?; challenge_response_data.write_u16::(ClientType::Other.to_u16().unwrap())?; - challenge_response_data - .write_u16::(LicenseDetailLevel::Detail.to_u16().unwrap())?; + challenge_response_data.write_u16::(LicenseDetailLevel::Detail.to_u16().unwrap())?; challenge_response_data.write_u16::(decrypted_challenge.len() as u16)?; challenge_response_data.write_all(&decrypted_challenge)?; @@ -111,14 +108,12 @@ impl PduParsing for ClientPlatformChallengeResponse { ))); } - let encrypted_challenge_blob = - BlobHeader::read_from_buffer(BlobType::EncryptedData, &mut stream)?; + let encrypted_challenge_blob = BlobHeader::read_from_buffer(BlobType::EncryptedData, &mut stream)?; let mut encrypted_challenge_response_data = vec![0u8; encrypted_challenge_blob.length]; stream.read_exact(&mut encrypted_challenge_response_data)?; - let encrypted_hwid_blob = - BlobHeader::read_from_buffer(BlobType::EncryptedData, &mut stream)?; + let encrypted_hwid_blob = BlobHeader::read_from_buffer(BlobType::EncryptedData, &mut stream)?; let mut encrypted_hwid = vec![0u8; encrypted_hwid_blob.length]; stream.read_exact(&mut encrypted_hwid)?; @@ -136,15 +131,11 @@ impl PduParsing for ClientPlatformChallengeResponse { fn to_buffer(&self, mut stream: impl io::Write) -> Result<(), Self::Error> { self.license_header.to_buffer(&mut stream)?; - BlobHeader::new( - BlobType::EncryptedData, - self.encrypted_challenge_response_data.len(), - ) - .write_to_buffer(&mut stream)?; + BlobHeader::new(BlobType::EncryptedData, self.encrypted_challenge_response_data.len()) + .write_to_buffer(&mut stream)?; stream.write_all(&self.encrypted_challenge_response_data)?; - BlobHeader::new(BlobType::EncryptedData, self.encrypted_hwid.len()) - .write_to_buffer(&mut stream)?; + BlobHeader::new(BlobType::EncryptedData, self.encrypted_hwid.len()).write_to_buffer(&mut stream)?; stream.write_all(&self.encrypted_hwid)?; stream.write_all(&self.mac_data)?; diff --git a/ironrdp/src/rdp/server_license/client_platform_challenge_response/test.rs b/ironrdp/src/rdp/server_license/client_platform_challenge_response/test.rs index bb226687..f52c63d8 100644 --- a/ironrdp/src/rdp/server_license/client_platform_challenge_response/test.rs +++ b/ironrdp/src/rdp/server_license/client_platform_challenge_response/test.rs @@ -1,11 +1,11 @@ +use lazy_static::lazy_static; + use super::*; use crate::rdp::server_license::{ - BasicSecurityHeader, BasicSecurityHeaderFlags, LicenseHeader, PreambleFlags, PreambleType, - PreambleVersion, BASIC_SECURITY_HEADER_SIZE, PREAMBLE_SIZE, + BasicSecurityHeader, BasicSecurityHeaderFlags, LicenseHeader, PreambleFlags, PreambleType, PreambleVersion, + BASIC_SECURITY_HEADER_SIZE, PREAMBLE_SIZE, }; -use lazy_static::lazy_static; - const PLATFORM_CHALLENGE_RESPONSE_DATA_BUFFER: [u8; 18] = [ 0x00, 0x01, // version 0x00, 0x01, // client type @@ -28,14 +28,13 @@ const CLIENT_PLATFORM_CHALLENGE_RESPONSE_BUFFER: [u8; 70] = [ 0x15, 0x03, 0x42, 0x00, // preamble 0x09, 0x00, // blob type, ignored 0x12, 0x00, // blob len - 0xfa, 0xb4, 0xe8, 0x24, 0xcf, 0x56, 0xb2, 0x4e, 0x80, 0x02, 0xbd, 0xb6, 0x61, 0xfc, 0xdf, 0xe9, - 0x6c, 0x44, // encrypted platform challenge response + 0xfa, 0xb4, 0xe8, 0x24, 0xcf, 0x56, 0xb2, 0x4e, 0x80, 0x02, 0xbd, 0xb6, 0x61, 0xfc, 0xdf, 0xe9, 0x6c, + 0x44, // encrypted platform challenge response 0x09, 0x00, // blob type, ignored 0x14, 0x00, // blob len - 0xf8, 0xb5, 0xe8, 0x25, 0x3d, 0x0f, 0x3f, 0x70, 0x1d, 0xda, 0x60, 0x19, 0x16, 0xfe, 0x73, 0x1a, - 0x45, 0x7e, 0x02, 0x71, // encrypted hwid - 0x38, 0x23, 0x62, 0x5d, 0x10, 0x8b, 0x93, 0xc3, 0xf1, 0xe4, 0x67, 0x1f, 0x4a, 0xb6, 0x00, - 0x0a, // mac data + 0xf8, 0xb5, 0xe8, 0x25, 0x3d, 0x0f, 0x3f, 0x70, 0x1d, 0xda, 0x60, 0x19, 0x16, 0xfe, 0x73, 0x1a, 0x45, 0x7e, 0x02, + 0x71, // encrypted hwid + 0x38, 0x23, 0x62, 0x5d, 0x10, 0x8b, 0x93, 0xc3, 0xf1, 0xe4, 0x67, 0x1f, 0x4a, 0xb6, 0x00, 0x0a, // mac data ]; const CHALLENGE_BUFFER: [u8; 10] = [ @@ -53,11 +52,10 @@ lazy_static! { license_detail_level: LicenseDetailLevel::Detail, challenge: Vec::from(CHALLENGE_BUFFER.as_ref()), }; - pub static ref CLIENT_HARDWARE_IDENTIFICATION: ClientHardwareIdentification = - ClientHardwareIdentification { - platform_id: HARDWARE_ID, - data: Vec::from(DATA_BUFFER.as_ref()), - }; + pub static ref CLIENT_HARDWARE_IDENTIFICATION: ClientHardwareIdentification = ClientHardwareIdentification { + platform_id: HARDWARE_ID, + data: Vec::from(DATA_BUFFER.as_ref()), + }; pub static ref CLIENT_PLATFORM_CHALLENGE_RESPONSE: ClientPlatformChallengeResponse = ClientPlatformChallengeResponse { license_header: LicenseHeader { @@ -67,16 +65,13 @@ lazy_static! { preamble_message_type: PreambleType::PlatformChallengeResponse, preamble_flags: PreambleFlags::empty(), preamble_version: PreambleVersion::V3, - preamble_message_size: (CLIENT_PLATFORM_CHALLENGE_RESPONSE_BUFFER.len() - - BASIC_SECURITY_HEADER_SIZE) as u16, + preamble_message_size: (CLIENT_PLATFORM_CHALLENGE_RESPONSE_BUFFER.len() - BASIC_SECURITY_HEADER_SIZE) + as u16, }, - encrypted_challenge_response_data: Vec::from( - &CLIENT_PLATFORM_CHALLENGE_RESPONSE_BUFFER[12..30] - ), + encrypted_challenge_response_data: Vec::from(&CLIENT_PLATFORM_CHALLENGE_RESPONSE_BUFFER[12..30]), encrypted_hwid: Vec::from(&CLIENT_PLATFORM_CHALLENGE_RESPONSE_BUFFER[34..54]), mac_data: Vec::from( - &CLIENT_PLATFORM_CHALLENGE_RESPONSE_BUFFER - [CLIENT_PLATFORM_CHALLENGE_RESPONSE_BUFFER.len() - 16..] + &CLIENT_PLATFORM_CHALLENGE_RESPONSE_BUFFER[CLIENT_PLATFORM_CHALLENGE_RESPONSE_BUFFER.len() - 16..] ), }; } @@ -85,10 +80,7 @@ lazy_static! { fn from_buffer_correctly_parses_platform_challenge_response_data() { assert_eq!( *RESPONSE, - PlatformChallengeResponseData::from_buffer( - PLATFORM_CHALLENGE_RESPONSE_DATA_BUFFER.as_ref() - ) - .unwrap() + PlatformChallengeResponseData::from_buffer(PLATFORM_CHALLENGE_RESPONSE_DATA_BUFFER.as_ref()).unwrap() ); } @@ -105,18 +97,14 @@ fn to_buffer_correctly_serializes_platform_challenge_response_data() { #[test] fn buffer_length_is_correct_for_platform_challenge_response_data() { - assert_eq!( - PLATFORM_CHALLENGE_RESPONSE_DATA_BUFFER.len(), - RESPONSE.buffer_length() - ); + assert_eq!(PLATFORM_CHALLENGE_RESPONSE_DATA_BUFFER.len(), RESPONSE.buffer_length()); } #[test] fn from_buffer_correctly_parses_client_hardware_identification() { assert_eq!( *CLIENT_HARDWARE_IDENTIFICATION, - ClientHardwareIdentification::from_buffer(CLIENT_HARDWARE_IDENTIFICATION_BUFFER.as_ref()) - .unwrap() + ClientHardwareIdentification::from_buffer(CLIENT_HARDWARE_IDENTIFICATION_BUFFER.as_ref()).unwrap() ); } @@ -145,10 +133,7 @@ fn buffer_length_is_correct_for_client_hardware_identification() { fn from_buffer_correctly_parses_client_platform_challenge_response() { assert_eq!( *CLIENT_PLATFORM_CHALLENGE_RESPONSE, - ClientPlatformChallengeResponse::from_buffer( - CLIENT_PLATFORM_CHALLENGE_RESPONSE_BUFFER.as_ref() - ) - .unwrap() + ClientPlatformChallengeResponse::from_buffer(CLIENT_PLATFORM_CHALLENGE_RESPONSE_BUFFER.as_ref()).unwrap() ); } @@ -175,12 +160,10 @@ fn buffer_length_is_correct_for_client_platform_challege_response() { #[test] fn challenge_response_creates_from_server_challenge_and_encryption_data_correctly() { - let encrypted_platform_challenge = - vec![0x26, 0x38, 0x88, 0x77, 0xcb, 0xe8, 0xbf, 0xce, 0x2c, 0x51]; + let encrypted_platform_challenge = vec![0x26, 0x38, 0x88, 0x77, 0xcb, 0xe8, 0xbf, 0xce, 0x2c, 0x51]; let mac_data = vec![ - 0x51, 0x4a, 0x27, 0x2c, 0x74, 0x18, 0xec, 0x88, 0x95, 0xdd, 0xac, 0x10, 0x3e, 0x3f, 0xa, - 0x72, + 0x51, 0x4a, 0x27, 0x2c, 0x74, 0x18, 0xec, 0x88, 0x95, 0xdd, 0xac, 0x10, 0x3e, 0x3f, 0xa, 0x72, ]; let server_challenge = ServerPlatformChallenge { @@ -191,9 +174,7 @@ fn challenge_response_creates_from_server_challenge_and_encryption_data_correctl preamble_message_type: PreambleType::PlatformChallenge, preamble_flags: PreambleFlags::empty(), preamble_version: PreambleVersion::V3, - preamble_message_size: (encrypted_platform_challenge.len() - + mac_data.len() - + PREAMBLE_SIZE) as u16, + preamble_message_size: (encrypted_platform_challenge.len() + mac_data.len() + PREAMBLE_SIZE) as u16, }, encrypted_platform_challenge, mac_data, @@ -202,12 +183,10 @@ fn challenge_response_creates_from_server_challenge_and_encryption_data_correctl let encryption_data = LicenseEncryptionData { premaster_secret: Vec::new(), // premaster secret is not involved in this unit test mac_salt_key: vec![ - 0x1, 0x5b, 0x9e, 0x5f, 0x6, 0x97, 0x71, 0x58, 0xc3, 0xb8, 0x8b, 0x8c, 0x6e, 0x77, 0x21, - 0x37, + 0x1, 0x5b, 0x9e, 0x5f, 0x6, 0x97, 0x71, 0x58, 0xc3, 0xb8, 0x8b, 0x8c, 0x6e, 0x77, 0x21, 0x37, ], license_key: vec![ - 0xe1, 0x78, 0xe4, 0xa0, 0x2a, 0xc5, 0xca, 0xb8, 0xa2, 0xd1, 0x53, 0xb8, 0x7, 0x23, - 0xf3, 0xd2, + 0xe1, 0x78, 0xe4, 0xa0, 0x2a, 0xc5, 0xca, 0xb8, 0xa2, 0xd1, 0x53, 0xb8, 0x7, 0x23, 0xf3, 0xd2, ], }; @@ -223,8 +202,8 @@ fn challenge_response_creates_from_server_challenge_and_encryption_data_correctl let encrypted_hwid = rc4.process(&hardware_id); let response_data: [u8; 26] = [ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0xff, 0x03, 0x00, 0x0a, - 0x00, 0x54, 0x00, 0x45, 0x00, 0x53, 0x00, 0x54, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0xff, 0x03, 0x00, 0x0a, 0x00, 0x54, 0x00, + 0x45, 0x00, 0x53, 0x00, 0x54, 0x00, 0x00, 0x00, ]; let mut rc4 = Rc4::new(&encryption_data.license_key); @@ -232,9 +211,7 @@ fn challenge_response_creates_from_server_challenge_and_encryption_data_correctl let mac_data = crate::rdp::server_license::compute_mac_data( encryption_data.mac_salt_key.as_slice(), - [response_data.as_ref(), hardware_id.as_slice()] - .concat() - .as_slice(), + [response_data.as_ref(), hardware_id.as_slice()].concat().as_slice(), ); let correct_challenge_response = ClientPlatformChallengeResponse { diff --git a/ironrdp/src/rdp/server_license/licensing_error_message.rs b/ironrdp/src/rdp/server_license/licensing_error_message.rs index d259d84d..7f628d54 100644 --- a/ironrdp/src/rdp/server_license/licensing_error_message.rs +++ b/ironrdp/src/rdp/server_license/licensing_error_message.rs @@ -8,7 +8,6 @@ use num_derive::{FromPrimitive, ToPrimitive}; use num_traits::{FromPrimitive, ToPrimitive}; use super::{BlobHeader, BlobType, ServerLicenseError, BLOB_LENGTH_SIZE, BLOB_TYPE_SIZE}; - use crate::PduParsing; const ERROR_CODE_SIZE: usize = 4; @@ -27,9 +26,8 @@ impl PduParsing for LicensingErrorMessage { fn from_buffer(mut stream: impl io::Read) -> Result { let error_code = LicenseErrorCode::from_u32(stream.read_u32::()?) .ok_or(ServerLicenseError::InvalidErrorCode)?; - let state_transition = - LicensingStateTransition::from_u32(stream.read_u32::()?) - .ok_or(ServerLicenseError::InvalidStateTransition)?; + let state_transition = LicensingStateTransition::from_u32(stream.read_u32::()?) + .ok_or(ServerLicenseError::InvalidStateTransition)?; let error_info_blob = BlobHeader::read_from_buffer(BlobType::Error, &mut stream)?; let error_info = vec![0u8; error_info_blob.length]; @@ -52,11 +50,7 @@ impl PduParsing for LicensingErrorMessage { } fn buffer_length(&self) -> usize { - ERROR_CODE_SIZE - + STATE_TRANSITION_SIZE - + self.error_info.len() - + BLOB_LENGTH_SIZE - + BLOB_TYPE_SIZE + ERROR_CODE_SIZE + STATE_TRANSITION_SIZE + self.error_info.len() + BLOB_LENGTH_SIZE + BLOB_TYPE_SIZE } } diff --git a/ironrdp/src/rdp/server_license/licensing_error_message/test.rs b/ironrdp/src/rdp/server_license/licensing_error_message/test.rs index e7d91063..f551f49f 100644 --- a/ironrdp/src/rdp/server_license/licensing_error_message/test.rs +++ b/ironrdp/src/rdp/server_license/licensing_error_message/test.rs @@ -32,8 +32,5 @@ fn to_buffer_correctly_serializes_licensing_error_message() { #[test] fn buffer_length_is_correct_for_licensing_error_message() { - assert_eq!( - LICENSE_MESSAGE_BUFFER.len(), - LICENSING_ERROR_MESSAGE.buffer_length() - ); + assert_eq!(LICENSE_MESSAGE_BUFFER.len(), LICENSING_ERROR_MESSAGE.buffer_length()); } diff --git a/ironrdp/src/rdp/server_license/server_license_request.rs b/ironrdp/src/rdp/server_license/server_license_request.rs index c5eaaaff..a4881ebc 100644 --- a/ironrdp/src/rdp/server_license/server_license_request.rs +++ b/ironrdp/src/rdp/server_license/server_license_request.rs @@ -5,16 +5,14 @@ pub mod test; use std::io; use byteorder::{LittleEndian, ReadBytesExt, WriteBytesExt}; +use cert::{CertificateType, ProprietaryCertificate, X509CertificateChain}; use x509_parser::parse_x509_certificate; -use cert::{CertificateType, ProprietaryCertificate, X509CertificateChain}; - use super::{ - BasicSecurityHeader, BasicSecurityHeaderFlags, BlobHeader, BlobType, LicenseErrorCode, - LicenseHeader, LicensingErrorMessage, LicensingStateTransition, PreambleFlags, PreambleType, - PreambleVersion, ServerLicenseError, BLOB_LENGTH_SIZE, BLOB_TYPE_SIZE, - KEY_EXCHANGE_ALGORITHM_RSA, PREAMBLE_SIZE, RANDOM_NUMBER_SIZE, UTF16_NULL_TERMINATOR_SIZE, - UTF8_NULL_TERMINATOR_SIZE, + BasicSecurityHeader, BasicSecurityHeaderFlags, BlobHeader, BlobType, LicenseErrorCode, LicenseHeader, + LicensingErrorMessage, LicensingStateTransition, PreambleFlags, PreambleType, PreambleVersion, ServerLicenseError, + BLOB_LENGTH_SIZE, BLOB_TYPE_SIZE, KEY_EXCHANGE_ALGORITHM_RSA, PREAMBLE_SIZE, RANDOM_NUMBER_SIZE, + UTF16_NULL_TERMINATOR_SIZE, UTF8_NULL_TERMINATOR_SIZE, }; use crate::{utils, PduParsing}; @@ -58,8 +56,7 @@ impl InitialServerLicenseMessage { preamble_message_type: PreambleType::ErrorAlert, preamble_flags: PreambleFlags::empty(), preamble_version: PreambleVersion::V3, - preamble_message_size: (PREAMBLE_SIZE + valid_client_message.buffer_length()) - as u16, + preamble_message_size: (PREAMBLE_SIZE + valid_client_message.buffer_length()) as u16, }, message_type: InitialMessageType::StatusValidClient(valid_client_message), } @@ -127,9 +124,7 @@ impl PduParsing for InitialServerLicenseMessage { fn buffer_length(&self) -> usize { self.license_header.buffer_length() + match &self.message_type { - InitialMessageType::LicenseRequest(license_request) => { - license_request.buffer_length() - } + InitialMessageType::LicenseRequest(license_request) => license_request.buffer_length(), InitialMessageType::StatusValidClient(valid_client) => valid_client.buffer_length(), } } @@ -145,10 +140,7 @@ pub struct ServerLicenseRequest { impl ServerLicenseRequest { pub fn get_public_key(&self) -> Result>, ServerLicenseError> { - self.server_certificate - .as_ref() - .map(|c| c.get_public_key()) - .transpose() + self.server_certificate.as_ref().map(|c| c.get_public_key()).transpose() } } @@ -161,8 +153,7 @@ impl PduParsing for ServerLicenseRequest { let product_info = ProductInfo::from_buffer(&mut stream)?; - let _key_exchange_algorithm_blob = - BlobHeader::read_from_buffer(BlobType::KeyExchangeAlgorithm, &mut stream)?; + let _key_exchange_algorithm_blob = BlobHeader::read_from_buffer(BlobType::KeyExchangeAlgorithm, &mut stream)?; let key_exchange_algorithm = stream.read_u32::()?; if key_exchange_algorithm != RSA_EXCHANGE_ALGORITHM { @@ -201,15 +192,10 @@ impl PduParsing for ServerLicenseRequest { stream.write_all(&self.server_random)?; self.product_info.to_buffer(&mut stream)?; - BlobHeader::new(BlobType::KeyExchangeAlgorithm, KEY_EXCHANGE_FIELD_SIZE) - .write_to_buffer(&mut stream)?; + BlobHeader::new(BlobType::KeyExchangeAlgorithm, KEY_EXCHANGE_FIELD_SIZE).write_to_buffer(&mut stream)?; stream.write_u32::(KEY_EXCHANGE_ALGORITHM_RSA)?; - let cert_size = self - .server_certificate - .as_ref() - .map(|v| v.buffer_length()) - .unwrap_or(0); + let cert_size = self.server_certificate.as_ref().map(|v| v.buffer_length()).unwrap_or(0); BlobHeader::new(BlobType::Certificate, cert_size).write_to_buffer(&mut stream)?; if let Some(cert) = &self.server_certificate { @@ -283,19 +269,15 @@ impl ServerCertificate { pub fn get_public_key(&self) -> Result, ServerLicenseError> { match &self.certificate { CertificateType::Proprietary(certificate) => { - let mut public_key_buffer = - Vec::with_capacity(certificate.public_key.buffer_length()); + let mut public_key_buffer = Vec::with_capacity(certificate.public_key.buffer_length()); certificate.public_key.to_buffer(&mut public_key_buffer)?; Ok(public_key_buffer) } CertificateType::X509(certificate) => { if let Ok((_, tbs)) = parse_x509_certificate( - certificate.certificate_array[certificate.certificate_array.len() - 1] - .as_slice(), + certificate.certificate_array[certificate.certificate_array.len() - 1].as_slice(), ) { - Ok(Vec::from( - tbs.tbs_certificate.subject_pki.subject_public_key.data, - )) + Ok(Vec::from(tbs.tbs_certificate.subject_pki.subject_public_key.data)) } else { Err(ServerLicenseError::InvalidX509Certificate) } @@ -370,9 +352,7 @@ impl PduParsing for ProductInfo { let company_name_len = stream.read_u32::()?; if !(2..=MAX_COMPANY_NAME_LEN).contains(&company_name_len) { - return Err(ServerLicenseError::InvalidCompanyNameLength( - company_name_len, - )); + return Err(ServerLicenseError::InvalidCompanyNameLength(company_name_len)); } let mut company_name = vec![0u8; company_name_len as usize]; diff --git a/ironrdp/src/rdp/server_license/server_license_request/cert.rs b/ironrdp/src/rdp/server_license/server_license_request/cert.rs index 92386d75..d37dafa5 100644 --- a/ironrdp/src/rdp/server_license/server_license_request/cert.rs +++ b/ironrdp/src/rdp/server_license/server_license_request/cert.rs @@ -42,9 +42,7 @@ impl PduParsing for X509CertificateChain { .map(|_| { let certificate_len = stream.read_u32::()?; if certificate_len > MAX_CERTIFICATE_LEN { - return Err(ServerLicenseError::InvalidCertificateLength( - certificate_len, - )); + return Err(ServerLicenseError::InvalidCertificateLength(certificate_len)); } let mut certificate = vec![0u8; certificate_len as usize]; @@ -113,32 +111,24 @@ impl PduParsing for ProprietaryCertificate { let mut signature = vec![0u8; sig_blob_header.length]; stream.read_exact(&mut signature)?; - Ok(Self { - public_key, - signature, - }) + Ok(Self { public_key, signature }) } fn to_buffer(&self, mut stream: impl io::Write) -> Result<(), Self::Error> { stream.write_u32::(SIGNATURE_ALGORITHM_RSA as u32)?; stream.write_u32::(KEY_EXCHANGE_ALGORITHM_RSA as u32)?; - BlobHeader::new(BlobType::RsaKey, self.public_key.buffer_length()) - .write_to_buffer(&mut stream)?; + BlobHeader::new(BlobType::RsaKey, self.public_key.buffer_length()).write_to_buffer(&mut stream)?; self.public_key.to_buffer(&mut stream)?; - BlobHeader::new(BlobType::RsaSignature, self.signature.len()) - .write_to_buffer(&mut stream)?; + BlobHeader::new(BlobType::RsaSignature, self.signature.len()).write_to_buffer(&mut stream)?; stream.write_all(&self.signature)?; Ok(()) } fn buffer_length(&self) -> usize { - PROP_CERT_BLOBS_HEADERS_SIZE - + PROP_CERT_NO_BLOBS_SIZE - + self.public_key.buffer_length() - + self.signature.len() + PROP_CERT_BLOBS_HEADERS_SIZE + PROP_CERT_NO_BLOBS_SIZE + self.public_key.buffer_length() + self.signature.len() } } diff --git a/ironrdp/src/rdp/server_license/server_license_request/test.rs b/ironrdp/src/rdp/server_license/server_license_request/test.rs index 60679427..b18aa357 100644 --- a/ironrdp/src/rdp/server_license/server_license_request/test.rs +++ b/ironrdp/src/rdp/server_license/server_license_request/test.rs @@ -1,22 +1,19 @@ use lazy_static::lazy_static; -use super::cert::{ - RsaPublicKey, PROP_CERT_BLOBS_HEADERS_SIZE, PROP_CERT_NO_BLOBS_SIZE, - RSA_KEY_SIZE_WITHOUT_MODULUS, -}; +use super::cert::{RsaPublicKey, PROP_CERT_BLOBS_HEADERS_SIZE, PROP_CERT_NO_BLOBS_SIZE, RSA_KEY_SIZE_WITHOUT_MODULUS}; use super::*; const SERVER_RANDOM_BUFFER: [u8; 32] = [ - 0x84, 0xef, 0xae, 0x20, 0xb1, 0xd5, 0x9e, 0x36, 0x49, 0x1a, 0xe8, 0x2e, 0x0a, 0x99, 0x89, 0xac, - 0x49, 0xa6, 0x47, 0x4f, 0x33, 0x9b, 0x5a, 0xb9, 0x95, 0x03, 0xa6, 0xc6, 0xc2, 0x3c, 0x3f, 0x61, + 0x84, 0xef, 0xae, 0x20, 0xb1, 0xd5, 0x9e, 0x36, 0x49, 0x1a, 0xe8, 0x2e, 0x0a, 0x99, 0x89, 0xac, 0x49, 0xa6, 0x47, + 0x4f, 0x33, 0x9b, 0x5a, 0xb9, 0x95, 0x03, 0xa6, 0xc6, 0xc2, 0x3c, 0x3f, 0x61, ]; const PRODUCT_INFO_BUFFER: [u8; 64] = [ 0x00, 0x00, 0x06, 0x00, // version 0x2c, 0x00, 0x00, 0x00, // company name len - 0x4d, 0x00, 0x69, 0x00, 0x63, 0x00, 0x72, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x6f, 0x00, 0x66, 0x00, - 0x74, 0x00, 0x20, 0x00, 0x43, 0x00, 0x6f, 0x00, 0x72, 0x00, 0x70, 0x00, 0x6f, 0x00, 0x72, 0x00, - 0x61, 0x00, 0x74, 0x00, 0x69, 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x00, 0x00, // company name + 0x4d, 0x00, 0x69, 0x00, 0x63, 0x00, 0x72, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x6f, 0x00, 0x66, 0x00, 0x74, 0x00, 0x20, + 0x00, 0x43, 0x00, 0x6f, 0x00, 0x72, 0x00, 0x70, 0x00, 0x6f, 0x00, 0x72, 0x00, 0x61, 0x00, 0x74, 0x00, 0x69, 0x00, + 0x6f, 0x00, 0x6e, 0x00, 0x00, 0x00, // company name 0x08, 0x00, 0x00, 0x00, // product id len 0x41, 0x00, 0x30, 0x00, 0x32, 0x00, 0x00, 0x00, // product id ]; @@ -39,150 +36,129 @@ const CERT_HEADER_BUFFER: [u8; 8] = [ ]; const CERT_1_BUFFER: [u8; 757] = [ - 0x30, 0x82, 0x02, 0xf1, 0x30, 0x82, 0x01, 0xdd, 0xa0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x08, 0x01, - 0x9e, 0x24, 0xa2, 0xf2, 0xae, 0x90, 0x80, 0x30, 0x09, 0x06, 0x05, 0x2b, 0x0e, 0x03, 0x02, 0x1d, - 0x05, 0x00, 0x30, 0x32, 0x31, 0x30, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x03, 0x1e, 0x0c, 0x00, - 0x52, 0x00, 0x4f, 0x00, 0x44, 0x00, 0x45, 0x00, 0x4e, 0x00, 0x54, 0x30, 0x19, 0x06, 0x03, 0x55, - 0x04, 0x07, 0x1e, 0x12, 0x00, 0x57, 0x00, 0x4f, 0x00, 0x52, 0x00, 0x4b, 0x00, 0x47, 0x00, 0x52, - 0x00, 0x4f, 0x00, 0x55, 0x00, 0x50, 0x30, 0x1e, 0x17, 0x0d, 0x37, 0x30, 0x30, 0x35, 0x32, 0x37, - 0x30, 0x31, 0x31, 0x31, 0x30, 0x33, 0x5a, 0x17, 0x0d, 0x34, 0x39, 0x30, 0x35, 0x32, 0x37, 0x30, - 0x31, 0x31, 0x31, 0x30, 0x33, 0x5a, 0x30, 0x32, 0x31, 0x30, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, - 0x03, 0x1e, 0x0c, 0x00, 0x52, 0x00, 0x4f, 0x00, 0x44, 0x00, 0x45, 0x00, 0x4e, 0x00, 0x54, 0x30, - 0x19, 0x06, 0x03, 0x55, 0x04, 0x07, 0x1e, 0x12, 0x00, 0x57, 0x00, 0x4f, 0x00, 0x52, 0x00, 0x4b, - 0x00, 0x47, 0x00, 0x52, 0x00, 0x4f, 0x00, 0x55, 0x00, 0x50, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, - 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, - 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0x88, 0xad, 0x7c, 0x8f, 0x8b, - 0x82, 0x76, 0x5a, 0xbd, 0x8f, 0x6f, 0x62, 0x18, 0xe1, 0xd9, 0xaa, 0x41, 0xfd, 0xed, 0x68, 0x01, - 0xc6, 0x34, 0x35, 0xb0, 0x29, 0x04, 0xca, 0x4a, 0x4a, 0x1c, 0x7e, 0x80, 0x14, 0xf7, 0x8e, 0x77, - 0xb8, 0x25, 0xff, 0x16, 0x47, 0x6f, 0xbd, 0xe2, 0x34, 0x3d, 0x2e, 0x02, 0xb9, 0x53, 0xe4, 0x33, - 0x75, 0xad, 0x73, 0x28, 0x80, 0xa0, 0x4d, 0xfc, 0x6c, 0xc0, 0x22, 0x53, 0x1b, 0x2c, 0xf8, 0xf5, - 0x01, 0x60, 0x19, 0x7e, 0x79, 0x19, 0x39, 0x8d, 0xb5, 0xce, 0x39, 0x58, 0xdd, 0x55, 0x24, 0x3b, - 0x55, 0x7b, 0x43, 0xc1, 0x7f, 0x14, 0x2f, 0xb0, 0x64, 0x3a, 0x54, 0x95, 0x2b, 0x88, 0x49, 0x0c, - 0x61, 0x2d, 0xac, 0xf8, 0x45, 0xf5, 0xda, 0x88, 0x18, 0x5f, 0xae, 0x42, 0xf8, 0x75, 0xc7, 0x26, - 0x6d, 0xb5, 0xbb, 0x39, 0x6f, 0xcc, 0x55, 0x1b, 0x32, 0x11, 0x38, 0x8d, 0xe4, 0xe9, 0x44, 0x84, - 0x11, 0x36, 0xa2, 0x61, 0x76, 0xaa, 0x4c, 0xb4, 0xe3, 0x55, 0x0f, 0xe4, 0x77, 0x8e, 0xde, 0xe3, - 0xa9, 0xea, 0xb7, 0x41, 0x94, 0x00, 0x58, 0xaa, 0xc9, 0x34, 0xa2, 0x98, 0xc6, 0x01, 0x1a, 0x76, - 0x14, 0x01, 0xa8, 0xdc, 0x30, 0x7c, 0x77, 0x5a, 0x20, 0x71, 0x5a, 0xa2, 0x3f, 0xaf, 0x13, 0x7e, - 0xe8, 0xfd, 0x84, 0xa2, 0x5b, 0xcf, 0x25, 0xe9, 0xc7, 0x8f, 0xa8, 0xf2, 0x8b, 0x84, 0xc7, 0x04, - 0x5e, 0x53, 0x73, 0x4e, 0x0e, 0x89, 0xa3, 0x3c, 0xe7, 0x68, 0x5c, 0x24, 0xb7, 0x80, 0x53, 0x3c, - 0x54, 0xc8, 0xc1, 0x53, 0xaa, 0x71, 0x71, 0x3d, 0x36, 0x15, 0xd6, 0x6a, 0x9d, 0x7d, 0xde, 0xae, - 0xf9, 0xe6, 0xaf, 0x57, 0xae, 0xb9, 0x01, 0x96, 0x5d, 0xe0, 0x4d, 0xcd, 0xed, 0xc8, 0xd7, 0xf3, - 0x01, 0x03, 0x38, 0x10, 0xbe, 0x7c, 0x42, 0x67, 0x01, 0xa7, 0x23, 0x02, 0x03, 0x01, 0x00, 0x01, - 0xa3, 0x13, 0x30, 0x11, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x04, 0x08, 0x30, 0x06, 0x01, - 0x01, 0xff, 0x02, 0x01, 0x00, 0x30, 0x09, 0x06, 0x05, 0x2b, 0x0e, 0x03, 0x02, 0x1d, 0x05, 0x00, - 0x03, 0x82, 0x01, 0x01, 0x00, 0x81, 0xdd, 0xd2, 0xd3, 0x33, 0xd4, 0xa3, 0xb6, 0x8e, 0x6e, 0x7d, - 0x9f, 0xfd, 0x73, 0x9f, 0x31, 0x0b, 0xdd, 0x42, 0x82, 0x3f, 0x7e, 0x21, 0xdf, 0x28, 0xcc, 0x59, - 0xca, 0x6a, 0xc0, 0xa9, 0x3d, 0x30, 0x7d, 0xe1, 0x91, 0xdb, 0x77, 0x6b, 0x8b, 0x10, 0xe6, 0xfd, - 0xbc, 0x3c, 0xa3, 0x58, 0x48, 0xc2, 0x36, 0xdd, 0xa0, 0x0b, 0xf5, 0x8e, 0x13, 0xda, 0x7b, 0x04, - 0x08, 0x44, 0xb4, 0xf2, 0xa8, 0x0d, 0x1e, 0x0b, 0x1d, 0x1a, 0x3f, 0xf9, 0x9b, 0x4b, 0x5a, 0x54, - 0xc5, 0xb3, 0xb4, 0x03, 0x93, 0x75, 0xb3, 0x72, 0x5c, 0x3d, 0xcf, 0x63, 0x0f, 0x15, 0xe1, 0x64, - 0x58, 0xde, 0x52, 0x8d, 0x97, 0x79, 0x0e, 0xa4, 0x34, 0xd5, 0x66, 0x05, 0x58, 0xb8, 0x6e, 0x79, - 0xb2, 0x09, 0x86, 0xd5, 0xf0, 0xed, 0xc4, 0x6b, 0x4c, 0xab, 0x02, 0xb8, 0x16, 0x5f, 0x3b, 0xed, - 0x88, 0x5f, 0xd1, 0xde, 0x44, 0xe3, 0x73, 0x47, 0x21, 0xf7, 0x03, 0xce, 0xe1, 0x6d, 0x10, 0x0f, - 0x95, 0xcf, 0x7c, 0xa2, 0x7a, 0xa6, 0xbf, 0x20, 0xdb, 0xe1, 0x93, 0x04, 0xc8, 0x5e, 0x6a, 0xbe, - 0xc8, 0x01, 0x5d, 0x27, 0xb2, 0x03, 0x0f, 0x66, 0x75, 0xe7, 0xcb, 0xea, 0x8d, 0x4e, 0x98, 0x9d, - 0x22, 0xed, 0x28, 0x40, 0xd2, 0x7d, 0xa4, 0x4b, 0xef, 0xcc, 0xbf, 0x01, 0x2a, 0x6d, 0x3a, 0x3e, - 0xbe, 0x47, 0x38, 0xf8, 0xea, 0xa4, 0xc6, 0x30, 0x1d, 0x5e, 0x25, 0xcf, 0xfb, 0xe8, 0x3d, 0x42, - 0xdd, 0x29, 0xe8, 0x99, 0x89, 0x9e, 0xbf, 0x39, 0xee, 0x77, 0x09, 0xd9, 0x3e, 0x8b, 0x52, 0x36, - 0xb6, 0xbb, 0x8b, 0xbd, 0x0d, 0xb2, 0x52, 0xaa, 0x2c, 0xcf, 0x38, 0x4e, 0x4d, 0xcf, 0x1d, 0x6d, - 0x5d, 0x25, 0x17, 0xac, 0x2c, 0xf6, 0xf0, 0x65, 0x5a, 0xc9, 0xfe, 0x31, 0x53, 0xb4, 0xf0, 0x0c, - 0x94, 0x4e, 0x0d, 0x54, 0x8e, + 0x30, 0x82, 0x02, 0xf1, 0x30, 0x82, 0x01, 0xdd, 0xa0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x08, 0x01, 0x9e, 0x24, 0xa2, + 0xf2, 0xae, 0x90, 0x80, 0x30, 0x09, 0x06, 0x05, 0x2b, 0x0e, 0x03, 0x02, 0x1d, 0x05, 0x00, 0x30, 0x32, 0x31, 0x30, + 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x03, 0x1e, 0x0c, 0x00, 0x52, 0x00, 0x4f, 0x00, 0x44, 0x00, 0x45, 0x00, 0x4e, + 0x00, 0x54, 0x30, 0x19, 0x06, 0x03, 0x55, 0x04, 0x07, 0x1e, 0x12, 0x00, 0x57, 0x00, 0x4f, 0x00, 0x52, 0x00, 0x4b, + 0x00, 0x47, 0x00, 0x52, 0x00, 0x4f, 0x00, 0x55, 0x00, 0x50, 0x30, 0x1e, 0x17, 0x0d, 0x37, 0x30, 0x30, 0x35, 0x32, + 0x37, 0x30, 0x31, 0x31, 0x31, 0x30, 0x33, 0x5a, 0x17, 0x0d, 0x34, 0x39, 0x30, 0x35, 0x32, 0x37, 0x30, 0x31, 0x31, + 0x31, 0x30, 0x33, 0x5a, 0x30, 0x32, 0x31, 0x30, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x03, 0x1e, 0x0c, 0x00, 0x52, + 0x00, 0x4f, 0x00, 0x44, 0x00, 0x45, 0x00, 0x4e, 0x00, 0x54, 0x30, 0x19, 0x06, 0x03, 0x55, 0x04, 0x07, 0x1e, 0x12, + 0x00, 0x57, 0x00, 0x4f, 0x00, 0x52, 0x00, 0x4b, 0x00, 0x47, 0x00, 0x52, 0x00, 0x4f, 0x00, 0x55, 0x00, 0x50, 0x30, + 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, + 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0x88, 0xad, 0x7c, 0x8f, 0x8b, 0x82, + 0x76, 0x5a, 0xbd, 0x8f, 0x6f, 0x62, 0x18, 0xe1, 0xd9, 0xaa, 0x41, 0xfd, 0xed, 0x68, 0x01, 0xc6, 0x34, 0x35, 0xb0, + 0x29, 0x04, 0xca, 0x4a, 0x4a, 0x1c, 0x7e, 0x80, 0x14, 0xf7, 0x8e, 0x77, 0xb8, 0x25, 0xff, 0x16, 0x47, 0x6f, 0xbd, + 0xe2, 0x34, 0x3d, 0x2e, 0x02, 0xb9, 0x53, 0xe4, 0x33, 0x75, 0xad, 0x73, 0x28, 0x80, 0xa0, 0x4d, 0xfc, 0x6c, 0xc0, + 0x22, 0x53, 0x1b, 0x2c, 0xf8, 0xf5, 0x01, 0x60, 0x19, 0x7e, 0x79, 0x19, 0x39, 0x8d, 0xb5, 0xce, 0x39, 0x58, 0xdd, + 0x55, 0x24, 0x3b, 0x55, 0x7b, 0x43, 0xc1, 0x7f, 0x14, 0x2f, 0xb0, 0x64, 0x3a, 0x54, 0x95, 0x2b, 0x88, 0x49, 0x0c, + 0x61, 0x2d, 0xac, 0xf8, 0x45, 0xf5, 0xda, 0x88, 0x18, 0x5f, 0xae, 0x42, 0xf8, 0x75, 0xc7, 0x26, 0x6d, 0xb5, 0xbb, + 0x39, 0x6f, 0xcc, 0x55, 0x1b, 0x32, 0x11, 0x38, 0x8d, 0xe4, 0xe9, 0x44, 0x84, 0x11, 0x36, 0xa2, 0x61, 0x76, 0xaa, + 0x4c, 0xb4, 0xe3, 0x55, 0x0f, 0xe4, 0x77, 0x8e, 0xde, 0xe3, 0xa9, 0xea, 0xb7, 0x41, 0x94, 0x00, 0x58, 0xaa, 0xc9, + 0x34, 0xa2, 0x98, 0xc6, 0x01, 0x1a, 0x76, 0x14, 0x01, 0xa8, 0xdc, 0x30, 0x7c, 0x77, 0x5a, 0x20, 0x71, 0x5a, 0xa2, + 0x3f, 0xaf, 0x13, 0x7e, 0xe8, 0xfd, 0x84, 0xa2, 0x5b, 0xcf, 0x25, 0xe9, 0xc7, 0x8f, 0xa8, 0xf2, 0x8b, 0x84, 0xc7, + 0x04, 0x5e, 0x53, 0x73, 0x4e, 0x0e, 0x89, 0xa3, 0x3c, 0xe7, 0x68, 0x5c, 0x24, 0xb7, 0x80, 0x53, 0x3c, 0x54, 0xc8, + 0xc1, 0x53, 0xaa, 0x71, 0x71, 0x3d, 0x36, 0x15, 0xd6, 0x6a, 0x9d, 0x7d, 0xde, 0xae, 0xf9, 0xe6, 0xaf, 0x57, 0xae, + 0xb9, 0x01, 0x96, 0x5d, 0xe0, 0x4d, 0xcd, 0xed, 0xc8, 0xd7, 0xf3, 0x01, 0x03, 0x38, 0x10, 0xbe, 0x7c, 0x42, 0x67, + 0x01, 0xa7, 0x23, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x13, 0x30, 0x11, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x1d, 0x13, + 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x00, 0x30, 0x09, 0x06, 0x05, 0x2b, 0x0e, 0x03, 0x02, 0x1d, + 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x81, 0xdd, 0xd2, 0xd3, 0x33, 0xd4, 0xa3, 0xb6, 0x8e, 0x6e, 0x7d, 0x9f, + 0xfd, 0x73, 0x9f, 0x31, 0x0b, 0xdd, 0x42, 0x82, 0x3f, 0x7e, 0x21, 0xdf, 0x28, 0xcc, 0x59, 0xca, 0x6a, 0xc0, 0xa9, + 0x3d, 0x30, 0x7d, 0xe1, 0x91, 0xdb, 0x77, 0x6b, 0x8b, 0x10, 0xe6, 0xfd, 0xbc, 0x3c, 0xa3, 0x58, 0x48, 0xc2, 0x36, + 0xdd, 0xa0, 0x0b, 0xf5, 0x8e, 0x13, 0xda, 0x7b, 0x04, 0x08, 0x44, 0xb4, 0xf2, 0xa8, 0x0d, 0x1e, 0x0b, 0x1d, 0x1a, + 0x3f, 0xf9, 0x9b, 0x4b, 0x5a, 0x54, 0xc5, 0xb3, 0xb4, 0x03, 0x93, 0x75, 0xb3, 0x72, 0x5c, 0x3d, 0xcf, 0x63, 0x0f, + 0x15, 0xe1, 0x64, 0x58, 0xde, 0x52, 0x8d, 0x97, 0x79, 0x0e, 0xa4, 0x34, 0xd5, 0x66, 0x05, 0x58, 0xb8, 0x6e, 0x79, + 0xb2, 0x09, 0x86, 0xd5, 0xf0, 0xed, 0xc4, 0x6b, 0x4c, 0xab, 0x02, 0xb8, 0x16, 0x5f, 0x3b, 0xed, 0x88, 0x5f, 0xd1, + 0xde, 0x44, 0xe3, 0x73, 0x47, 0x21, 0xf7, 0x03, 0xce, 0xe1, 0x6d, 0x10, 0x0f, 0x95, 0xcf, 0x7c, 0xa2, 0x7a, 0xa6, + 0xbf, 0x20, 0xdb, 0xe1, 0x93, 0x04, 0xc8, 0x5e, 0x6a, 0xbe, 0xc8, 0x01, 0x5d, 0x27, 0xb2, 0x03, 0x0f, 0x66, 0x75, + 0xe7, 0xcb, 0xea, 0x8d, 0x4e, 0x98, 0x9d, 0x22, 0xed, 0x28, 0x40, 0xd2, 0x7d, 0xa4, 0x4b, 0xef, 0xcc, 0xbf, 0x01, + 0x2a, 0x6d, 0x3a, 0x3e, 0xbe, 0x47, 0x38, 0xf8, 0xea, 0xa4, 0xc6, 0x30, 0x1d, 0x5e, 0x25, 0xcf, 0xfb, 0xe8, 0x3d, + 0x42, 0xdd, 0x29, 0xe8, 0x99, 0x89, 0x9e, 0xbf, 0x39, 0xee, 0x77, 0x09, 0xd9, 0x3e, 0x8b, 0x52, 0x36, 0xb6, 0xbb, + 0x8b, 0xbd, 0x0d, 0xb2, 0x52, 0xaa, 0x2c, 0xcf, 0x38, 0x4e, 0x4d, 0xcf, 0x1d, 0x6d, 0x5d, 0x25, 0x17, 0xac, 0x2c, + 0xf6, 0xf0, 0x65, 0x5a, 0xc9, 0xfe, 0x31, 0x53, 0xb4, 0xf0, 0x0c, 0x94, 0x4e, 0x0d, 0x54, 0x8e, ]; const CERT_2_BUFFER: [u8; 1277] = [ - 0x30, 0x82, 0x04, 0xf9, 0x30, 0x82, 0x03, 0xe5, 0xa0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x05, 0x01, - 0x00, 0x00, 0x00, 0x02, 0x30, 0x09, 0x06, 0x05, 0x2b, 0x0e, 0x03, 0x02, 0x1d, 0x05, 0x00, 0x30, - 0x32, 0x31, 0x30, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x03, 0x1e, 0x0c, 0x00, 0x52, 0x00, 0x4f, - 0x00, 0x44, 0x00, 0x45, 0x00, 0x4e, 0x00, 0x54, 0x30, 0x19, 0x06, 0x03, 0x55, 0x04, 0x07, 0x1e, - 0x12, 0x00, 0x57, 0x00, 0x4f, 0x00, 0x52, 0x00, 0x4b, 0x00, 0x47, 0x00, 0x52, 0x00, 0x4f, 0x00, - 0x55, 0x00, 0x50, 0x30, 0x1e, 0x17, 0x0d, 0x30, 0x37, 0x30, 0x35, 0x32, 0x36, 0x31, 0x32, 0x34, - 0x35, 0x35, 0x33, 0x5a, 0x17, 0x0d, 0x33, 0x38, 0x30, 0x31, 0x31, 0x39, 0x30, 0x33, 0x31, 0x34, - 0x30, 0x37, 0x5a, 0x30, 0x81, 0x92, 0x31, 0x81, 0x8f, 0x30, 0x23, 0x06, 0x03, 0x55, 0x04, 0x03, - 0x1e, 0x1c, 0x00, 0x6e, 0x00, 0x63, 0x00, 0x61, 0x00, 0x6c, 0x00, 0x72, 0x00, 0x70, 0x00, 0x63, - 0x00, 0x3a, 0x00, 0x52, 0x00, 0x4f, 0x00, 0x44, 0x00, 0x45, 0x00, 0x4e, 0x00, 0x54, 0x30, 0x23, - 0x06, 0x03, 0x55, 0x04, 0x07, 0x1e, 0x1c, 0x00, 0x6e, 0x00, 0x63, 0x00, 0x61, 0x00, 0x6c, 0x00, - 0x72, 0x00, 0x70, 0x00, 0x63, 0x00, 0x3a, 0x00, 0x52, 0x00, 0x4f, 0x00, 0x44, 0x00, 0x45, 0x00, - 0x4e, 0x00, 0x54, 0x30, 0x43, 0x06, 0x03, 0x55, 0x04, 0x05, 0x1e, 0x3c, 0x00, 0x31, 0x00, 0x42, - 0x00, 0x63, 0x00, 0x4b, 0x00, 0x65, 0x00, 0x62, 0x00, 0x68, 0x00, 0x70, 0x00, 0x58, 0x00, 0x5a, - 0x00, 0x74, 0x00, 0x4c, 0x00, 0x71, 0x00, 0x4f, 0x00, 0x37, 0x00, 0x53, 0x00, 0x51, 0x00, 0x6e, - 0x00, 0x42, 0x00, 0x70, 0x00, 0x52, 0x00, 0x66, 0x00, 0x75, 0x00, 0x64, 0x00, 0x64, 0x00, 0x64, - 0x00, 0x59, 0x00, 0x3d, 0x00, 0x0d, 0x00, 0x0a, 0x30, 0x82, 0x01, 0x1e, 0x30, 0x09, 0x06, 0x05, - 0x2b, 0x0e, 0x03, 0x02, 0x0f, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, - 0x02, 0x82, 0x01, 0x01, 0x00, 0xc8, 0x90, 0x6b, 0xf0, 0xc6, 0x58, 0x81, 0xa6, 0x89, 0x1c, 0x0e, - 0xf2, 0xf6, 0xd9, 0x82, 0x12, 0x71, 0xa5, 0x6e, 0x51, 0xdb, 0xe0, 0x32, 0x66, 0xaa, 0x91, 0x77, - 0x0e, 0x88, 0xab, 0x44, 0xb7, 0xd3, 0x97, 0xda, 0x78, 0x8f, 0x0e, 0x44, 0x26, 0x46, 0x7f, 0x16, - 0xd4, 0xc6, 0x63, 0xeb, 0xca, 0x55, 0xe5, 0x4e, 0x8b, 0x2d, 0xa6, 0x6d, 0x83, 0x95, 0xa7, 0xa8, - 0x6a, 0xfa, 0xd0, 0xbe, 0x26, 0x80, 0xae, 0xab, 0x0a, 0x64, 0x90, 0x32, 0x8c, 0xdf, 0x5c, 0xf8, - 0xf9, 0xd0, 0x7e, 0xd1, 0x6b, 0x3a, 0x29, 0x7e, 0x7d, 0xbd, 0x02, 0xa3, 0x86, 0x6c, 0xfd, 0xa5, - 0x35, 0x71, 0xda, 0x21, 0xb4, 0xee, 0xa4, 0x97, 0xf3, 0xa8, 0xb2, 0x12, 0xdb, 0xa4, 0x27, 0x57, - 0x36, 0xc9, 0x08, 0x22, 0x5c, 0x54, 0xf7, 0x99, 0x7b, 0xa3, 0x2f, 0xb8, 0x5c, 0xd5, 0x16, 0xb8, - 0x19, 0x27, 0x6b, 0x71, 0x97, 0x14, 0x5b, 0xe8, 0x1f, 0x23, 0xe8, 0x5c, 0xb8, 0x1b, 0x73, 0x4b, - 0x6e, 0x7a, 0x03, 0x13, 0xff, 0x97, 0xe9, 0x62, 0xb9, 0x4a, 0xa0, 0x51, 0x23, 0xc3, 0x6c, 0x32, - 0x3e, 0x02, 0xf2, 0x63, 0x97, 0x23, 0x1c, 0xc5, 0x78, 0xd8, 0xfc, 0xb7, 0x07, 0x4b, 0xb0, 0x56, - 0x0f, 0x74, 0xdf, 0xc5, 0x56, 0x28, 0xe4, 0x96, 0xfd, 0x20, 0x8e, 0x65, 0x5a, 0xe6, 0x45, 0xed, - 0xc1, 0x05, 0x3e, 0xab, 0x58, 0x55, 0x40, 0xaf, 0xe2, 0x47, 0xa0, 0x4c, 0x49, 0xa3, 0x8d, 0x39, - 0xe3, 0x66, 0x5f, 0x93, 0x33, 0x6d, 0xf8, 0x5f, 0xc5, 0x54, 0xe5, 0xfb, 0x57, 0x3a, 0xde, 0x45, - 0x12, 0xb5, 0xc7, 0x05, 0x4b, 0x88, 0x1f, 0xb4, 0x35, 0x0f, 0x7c, 0xc0, 0x75, 0x17, 0xc6, 0x67, - 0xdd, 0x48, 0x80, 0xcb, 0x0a, 0xbe, 0x9d, 0xf6, 0x93, 0x60, 0x65, 0x34, 0xeb, 0x97, 0xaf, 0x65, - 0x6d, 0xdf, 0xbf, 0x6f, 0x5b, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0xbf, 0x30, 0x82, - 0x01, 0xbb, 0x30, 0x14, 0x06, 0x09, 0x2b, 0x06, 0x01, 0x04, 0x01, 0x82, 0x37, 0x12, 0x04, 0x01, - 0x01, 0xff, 0x04, 0x04, 0x01, 0x00, 0x05, 0x00, 0x30, 0x3c, 0x06, 0x09, 0x2b, 0x06, 0x01, 0x04, - 0x01, 0x82, 0x37, 0x12, 0x02, 0x01, 0x01, 0xff, 0x04, 0x2c, 0x4d, 0x00, 0x69, 0x00, 0x63, 0x00, - 0x72, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x6f, 0x00, 0x66, 0x00, 0x74, 0x00, 0x20, 0x00, 0x43, 0x00, - 0x6f, 0x00, 0x72, 0x00, 0x70, 0x00, 0x6f, 0x00, 0x72, 0x00, 0x61, 0x00, 0x74, 0x00, 0x69, 0x00, - 0x6f, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x30, 0x81, 0xcd, 0x06, 0x09, 0x2b, 0x06, 0x01, 0x04, 0x01, - 0x82, 0x37, 0x12, 0x05, 0x01, 0x01, 0xff, 0x04, 0x81, 0xbc, 0x00, 0x30, 0x00, 0x00, 0x01, 0x00, - 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x09, 0x04, 0x00, 0x00, 0x1c, 0x00, 0x4a, 0x00, 0x66, 0x00, - 0x4a, 0x00, 0xb0, 0x00, 0x01, 0x00, 0x33, 0x00, 0x64, 0x00, 0x32, 0x00, 0x36, 0x00, 0x37, 0x00, - 0x39, 0x00, 0x35, 0x00, 0x34, 0x00, 0x2d, 0x00, 0x65, 0x00, 0x65, 0x00, 0x62, 0x00, 0x37, 0x00, - 0x2d, 0x00, 0x31, 0x00, 0x31, 0x00, 0x64, 0x00, 0x31, 0x00, 0x2d, 0x00, 0x62, 0x00, 0x39, 0x00, - 0x34, 0x00, 0x65, 0x00, 0x2d, 0x00, 0x30, 0x00, 0x30, 0x00, 0x63, 0x00, 0x30, 0x00, 0x34, 0x00, - 0x66, 0x00, 0x61, 0x00, 0x33, 0x00, 0x30, 0x00, 0x38, 0x00, 0x30, 0x00, 0x64, 0x00, 0x00, 0x00, - 0x33, 0x00, 0x64, 0x00, 0x32, 0x00, 0x36, 0x00, 0x37, 0x00, 0x39, 0x00, 0x35, 0x00, 0x34, 0x00, - 0x2d, 0x00, 0x65, 0x00, 0x65, 0x00, 0x62, 0x00, 0x37, 0x00, 0x2d, 0x00, 0x31, 0x00, 0x31, 0x00, - 0x64, 0x00, 0x31, 0x00, 0x2d, 0x00, 0x62, 0x00, 0x39, 0x00, 0x34, 0x00, 0x65, 0x00, 0x2d, 0x00, - 0x30, 0x00, 0x30, 0x00, 0x63, 0x00, 0x30, 0x00, 0x34, 0x00, 0x66, 0x00, 0x61, 0x00, 0x33, 0x00, - 0x30, 0x00, 0x38, 0x00, 0x30, 0x00, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x80, - 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x6e, 0x06, 0x09, 0x2b, 0x06, 0x01, 0x04, 0x01, 0x82, - 0x37, 0x12, 0x06, 0x01, 0x01, 0xff, 0x04, 0x5e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, - 0x3e, 0x00, 0x52, 0x00, 0x4f, 0x00, 0x44, 0x00, 0x45, 0x00, 0x4e, 0x00, 0x54, 0x00, 0x00, 0x00, - 0x37, 0x00, 0x38, 0x00, 0x34, 0x00, 0x34, 0x00, 0x30, 0x00, 0x2d, 0x00, 0x30, 0x00, 0x30, 0x00, - 0x36, 0x00, 0x2d, 0x00, 0x35, 0x00, 0x38, 0x00, 0x36, 0x00, 0x37, 0x00, 0x30, 0x00, 0x34, 0x00, - 0x35, 0x00, 0x2d, 0x00, 0x37, 0x00, 0x30, 0x00, 0x33, 0x00, 0x34, 0x00, 0x37, 0x00, 0x00, 0x00, - 0x57, 0x00, 0x4f, 0x00, 0x52, 0x00, 0x4b, 0x00, 0x47, 0x00, 0x52, 0x00, 0x4f, 0x00, 0x55, 0x00, - 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x25, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x01, 0x01, 0xff, - 0x04, 0x1b, 0x30, 0x19, 0xa1, 0x10, 0xa4, 0x0e, 0x52, 0x00, 0x4f, 0x00, 0x44, 0x00, 0x45, 0x00, - 0x4e, 0x00, 0x54, 0x00, 0x00, 0x00, 0x82, 0x05, 0x01, 0x00, 0x00, 0x00, 0x02, 0x30, 0x09, 0x06, - 0x05, 0x2b, 0x0e, 0x03, 0x02, 0x1d, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x2e, 0xeb, 0xc7, - 0x0d, 0xb8, 0x1d, 0x47, 0x11, 0x9d, 0x09, 0x88, 0x9b, 0x51, 0xdc, 0x45, 0xdd, 0x56, 0x51, 0xe2, - 0xd1, 0x23, 0x11, 0x39, 0x9b, 0x2d, 0xda, 0xc7, 0xfe, 0x7a, 0xd7, 0x84, 0xe3, 0x3d, 0x54, 0x77, - 0x97, 0x4d, 0x19, 0x92, 0x30, 0x64, 0xa0, 0x47, 0xc6, 0x2f, 0x6d, 0x93, 0xd2, 0x64, 0x7c, 0x76, - 0xc8, 0x26, 0x45, 0xad, 0x5a, 0x44, 0x54, 0xea, 0xf6, 0x4b, 0x28, 0x77, 0x1f, 0x77, 0xea, 0xec, - 0x74, 0x02, 0x38, 0x68, 0x9e, 0x79, 0x14, 0x72, 0x83, 0x34, 0x74, 0x62, 0xd2, 0xc1, 0x0c, 0xa4, - 0x0b, 0xf2, 0xa9, 0xb0, 0x38, 0xbb, 0x7c, 0xd0, 0xae, 0xbe, 0xbf, 0x74, 0x47, 0x16, 0xa0, 0xa2, - 0xd3, 0xfc, 0x1d, 0xb9, 0xba, 0x26, 0x10, 0x06, 0xef, 0xba, 0x1d, 0x43, 0x01, 0x4e, 0x4e, 0x6f, - 0x56, 0xca, 0xe0, 0xee, 0xd0, 0xf9, 0x4e, 0xa6, 0x62, 0x63, 0xff, 0xda, 0x0b, 0xc9, 0x15, 0x61, - 0x6c, 0xed, 0x6b, 0x0b, 0xc4, 0x58, 0x53, 0x86, 0x0f, 0x8c, 0x0c, 0x1a, 0x2e, 0xdf, 0xc1, 0xf2, - 0x43, 0x48, 0xd4, 0xaf, 0x0a, 0x78, 0x36, 0xb2, 0x51, 0x32, 0x28, 0x6c, 0xc2, 0x75, 0x79, 0x3f, - 0x6e, 0x99, 0x66, 0x88, 0x3e, 0x34, 0xd3, 0x7f, 0x6d, 0x9d, 0x07, 0xe4, 0x6b, 0xeb, 0x84, 0xe2, - 0x0a, 0xbb, 0xca, 0x7d, 0x3a, 0x40, 0x71, 0xb0, 0xbe, 0x47, 0x9f, 0x12, 0x58, 0x31, 0x61, 0x2b, - 0x9b, 0x4a, 0x9a, 0x49, 0x8f, 0xe5, 0xb4, 0x0c, 0xf5, 0x04, 0x4d, 0x3c, 0xce, 0xbc, 0xd2, 0x79, - 0x15, 0xd9, 0x28, 0xf4, 0x23, 0x56, 0x77, 0x9f, 0x38, 0x64, 0x3e, 0x03, 0x88, 0x92, 0x04, 0x26, - 0x76, 0xb9, 0xb5, 0xdf, 0x19, 0xd0, 0x78, 0x4b, 0x7a, 0x60, 0x40, 0x23, 0x91, 0xf1, 0x15, 0x22, - 0x2b, 0xb4, 0xe7, 0x02, 0x54, 0xa9, 0x16, 0x21, 0x5b, 0x60, 0x96, 0xa9, 0x5c, + 0x30, 0x82, 0x04, 0xf9, 0x30, 0x82, 0x03, 0xe5, 0xa0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x05, 0x01, 0x00, 0x00, 0x00, + 0x02, 0x30, 0x09, 0x06, 0x05, 0x2b, 0x0e, 0x03, 0x02, 0x1d, 0x05, 0x00, 0x30, 0x32, 0x31, 0x30, 0x30, 0x13, 0x06, + 0x03, 0x55, 0x04, 0x03, 0x1e, 0x0c, 0x00, 0x52, 0x00, 0x4f, 0x00, 0x44, 0x00, 0x45, 0x00, 0x4e, 0x00, 0x54, 0x30, + 0x19, 0x06, 0x03, 0x55, 0x04, 0x07, 0x1e, 0x12, 0x00, 0x57, 0x00, 0x4f, 0x00, 0x52, 0x00, 0x4b, 0x00, 0x47, 0x00, + 0x52, 0x00, 0x4f, 0x00, 0x55, 0x00, 0x50, 0x30, 0x1e, 0x17, 0x0d, 0x30, 0x37, 0x30, 0x35, 0x32, 0x36, 0x31, 0x32, + 0x34, 0x35, 0x35, 0x33, 0x5a, 0x17, 0x0d, 0x33, 0x38, 0x30, 0x31, 0x31, 0x39, 0x30, 0x33, 0x31, 0x34, 0x30, 0x37, + 0x5a, 0x30, 0x81, 0x92, 0x31, 0x81, 0x8f, 0x30, 0x23, 0x06, 0x03, 0x55, 0x04, 0x03, 0x1e, 0x1c, 0x00, 0x6e, 0x00, + 0x63, 0x00, 0x61, 0x00, 0x6c, 0x00, 0x72, 0x00, 0x70, 0x00, 0x63, 0x00, 0x3a, 0x00, 0x52, 0x00, 0x4f, 0x00, 0x44, + 0x00, 0x45, 0x00, 0x4e, 0x00, 0x54, 0x30, 0x23, 0x06, 0x03, 0x55, 0x04, 0x07, 0x1e, 0x1c, 0x00, 0x6e, 0x00, 0x63, + 0x00, 0x61, 0x00, 0x6c, 0x00, 0x72, 0x00, 0x70, 0x00, 0x63, 0x00, 0x3a, 0x00, 0x52, 0x00, 0x4f, 0x00, 0x44, 0x00, + 0x45, 0x00, 0x4e, 0x00, 0x54, 0x30, 0x43, 0x06, 0x03, 0x55, 0x04, 0x05, 0x1e, 0x3c, 0x00, 0x31, 0x00, 0x42, 0x00, + 0x63, 0x00, 0x4b, 0x00, 0x65, 0x00, 0x62, 0x00, 0x68, 0x00, 0x70, 0x00, 0x58, 0x00, 0x5a, 0x00, 0x74, 0x00, 0x4c, + 0x00, 0x71, 0x00, 0x4f, 0x00, 0x37, 0x00, 0x53, 0x00, 0x51, 0x00, 0x6e, 0x00, 0x42, 0x00, 0x70, 0x00, 0x52, 0x00, + 0x66, 0x00, 0x75, 0x00, 0x64, 0x00, 0x64, 0x00, 0x64, 0x00, 0x59, 0x00, 0x3d, 0x00, 0x0d, 0x00, 0x0a, 0x30, 0x82, + 0x01, 0x1e, 0x30, 0x09, 0x06, 0x05, 0x2b, 0x0e, 0x03, 0x02, 0x0f, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, + 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xc8, 0x90, 0x6b, 0xf0, 0xc6, 0x58, 0x81, 0xa6, 0x89, 0x1c, 0x0e, + 0xf2, 0xf6, 0xd9, 0x82, 0x12, 0x71, 0xa5, 0x6e, 0x51, 0xdb, 0xe0, 0x32, 0x66, 0xaa, 0x91, 0x77, 0x0e, 0x88, 0xab, + 0x44, 0xb7, 0xd3, 0x97, 0xda, 0x78, 0x8f, 0x0e, 0x44, 0x26, 0x46, 0x7f, 0x16, 0xd4, 0xc6, 0x63, 0xeb, 0xca, 0x55, + 0xe5, 0x4e, 0x8b, 0x2d, 0xa6, 0x6d, 0x83, 0x95, 0xa7, 0xa8, 0x6a, 0xfa, 0xd0, 0xbe, 0x26, 0x80, 0xae, 0xab, 0x0a, + 0x64, 0x90, 0x32, 0x8c, 0xdf, 0x5c, 0xf8, 0xf9, 0xd0, 0x7e, 0xd1, 0x6b, 0x3a, 0x29, 0x7e, 0x7d, 0xbd, 0x02, 0xa3, + 0x86, 0x6c, 0xfd, 0xa5, 0x35, 0x71, 0xda, 0x21, 0xb4, 0xee, 0xa4, 0x97, 0xf3, 0xa8, 0xb2, 0x12, 0xdb, 0xa4, 0x27, + 0x57, 0x36, 0xc9, 0x08, 0x22, 0x5c, 0x54, 0xf7, 0x99, 0x7b, 0xa3, 0x2f, 0xb8, 0x5c, 0xd5, 0x16, 0xb8, 0x19, 0x27, + 0x6b, 0x71, 0x97, 0x14, 0x5b, 0xe8, 0x1f, 0x23, 0xe8, 0x5c, 0xb8, 0x1b, 0x73, 0x4b, 0x6e, 0x7a, 0x03, 0x13, 0xff, + 0x97, 0xe9, 0x62, 0xb9, 0x4a, 0xa0, 0x51, 0x23, 0xc3, 0x6c, 0x32, 0x3e, 0x02, 0xf2, 0x63, 0x97, 0x23, 0x1c, 0xc5, + 0x78, 0xd8, 0xfc, 0xb7, 0x07, 0x4b, 0xb0, 0x56, 0x0f, 0x74, 0xdf, 0xc5, 0x56, 0x28, 0xe4, 0x96, 0xfd, 0x20, 0x8e, + 0x65, 0x5a, 0xe6, 0x45, 0xed, 0xc1, 0x05, 0x3e, 0xab, 0x58, 0x55, 0x40, 0xaf, 0xe2, 0x47, 0xa0, 0x4c, 0x49, 0xa3, + 0x8d, 0x39, 0xe3, 0x66, 0x5f, 0x93, 0x33, 0x6d, 0xf8, 0x5f, 0xc5, 0x54, 0xe5, 0xfb, 0x57, 0x3a, 0xde, 0x45, 0x12, + 0xb5, 0xc7, 0x05, 0x4b, 0x88, 0x1f, 0xb4, 0x35, 0x0f, 0x7c, 0xc0, 0x75, 0x17, 0xc6, 0x67, 0xdd, 0x48, 0x80, 0xcb, + 0x0a, 0xbe, 0x9d, 0xf6, 0x93, 0x60, 0x65, 0x34, 0xeb, 0x97, 0xaf, 0x65, 0x6d, 0xdf, 0xbf, 0x6f, 0x5b, 0x02, 0x03, + 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0xbf, 0x30, 0x82, 0x01, 0xbb, 0x30, 0x14, 0x06, 0x09, 0x2b, 0x06, 0x01, 0x04, + 0x01, 0x82, 0x37, 0x12, 0x04, 0x01, 0x01, 0xff, 0x04, 0x04, 0x01, 0x00, 0x05, 0x00, 0x30, 0x3c, 0x06, 0x09, 0x2b, + 0x06, 0x01, 0x04, 0x01, 0x82, 0x37, 0x12, 0x02, 0x01, 0x01, 0xff, 0x04, 0x2c, 0x4d, 0x00, 0x69, 0x00, 0x63, 0x00, + 0x72, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x6f, 0x00, 0x66, 0x00, 0x74, 0x00, 0x20, 0x00, 0x43, 0x00, 0x6f, 0x00, 0x72, + 0x00, 0x70, 0x00, 0x6f, 0x00, 0x72, 0x00, 0x61, 0x00, 0x74, 0x00, 0x69, 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x00, 0x00, + 0x30, 0x81, 0xcd, 0x06, 0x09, 0x2b, 0x06, 0x01, 0x04, 0x01, 0x82, 0x37, 0x12, 0x05, 0x01, 0x01, 0xff, 0x04, 0x81, + 0xbc, 0x00, 0x30, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x09, 0x04, 0x00, 0x00, 0x1c, 0x00, + 0x4a, 0x00, 0x66, 0x00, 0x4a, 0x00, 0xb0, 0x00, 0x01, 0x00, 0x33, 0x00, 0x64, 0x00, 0x32, 0x00, 0x36, 0x00, 0x37, + 0x00, 0x39, 0x00, 0x35, 0x00, 0x34, 0x00, 0x2d, 0x00, 0x65, 0x00, 0x65, 0x00, 0x62, 0x00, 0x37, 0x00, 0x2d, 0x00, + 0x31, 0x00, 0x31, 0x00, 0x64, 0x00, 0x31, 0x00, 0x2d, 0x00, 0x62, 0x00, 0x39, 0x00, 0x34, 0x00, 0x65, 0x00, 0x2d, + 0x00, 0x30, 0x00, 0x30, 0x00, 0x63, 0x00, 0x30, 0x00, 0x34, 0x00, 0x66, 0x00, 0x61, 0x00, 0x33, 0x00, 0x30, 0x00, + 0x38, 0x00, 0x30, 0x00, 0x64, 0x00, 0x00, 0x00, 0x33, 0x00, 0x64, 0x00, 0x32, 0x00, 0x36, 0x00, 0x37, 0x00, 0x39, + 0x00, 0x35, 0x00, 0x34, 0x00, 0x2d, 0x00, 0x65, 0x00, 0x65, 0x00, 0x62, 0x00, 0x37, 0x00, 0x2d, 0x00, 0x31, 0x00, + 0x31, 0x00, 0x64, 0x00, 0x31, 0x00, 0x2d, 0x00, 0x62, 0x00, 0x39, 0x00, 0x34, 0x00, 0x65, 0x00, 0x2d, 0x00, 0x30, + 0x00, 0x30, 0x00, 0x63, 0x00, 0x30, 0x00, 0x34, 0x00, 0x66, 0x00, 0x61, 0x00, 0x33, 0x00, 0x30, 0x00, 0x38, 0x00, + 0x30, 0x00, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x80, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, + 0x6e, 0x06, 0x09, 0x2b, 0x06, 0x01, 0x04, 0x01, 0x82, 0x37, 0x12, 0x06, 0x01, 0x01, 0xff, 0x04, 0x5e, 0x00, 0x30, + 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x3e, 0x00, 0x52, 0x00, 0x4f, 0x00, 0x44, 0x00, 0x45, 0x00, 0x4e, 0x00, 0x54, + 0x00, 0x00, 0x00, 0x37, 0x00, 0x38, 0x00, 0x34, 0x00, 0x34, 0x00, 0x30, 0x00, 0x2d, 0x00, 0x30, 0x00, 0x30, 0x00, + 0x36, 0x00, 0x2d, 0x00, 0x35, 0x00, 0x38, 0x00, 0x36, 0x00, 0x37, 0x00, 0x30, 0x00, 0x34, 0x00, 0x35, 0x00, 0x2d, + 0x00, 0x37, 0x00, 0x30, 0x00, 0x33, 0x00, 0x34, 0x00, 0x37, 0x00, 0x00, 0x00, 0x57, 0x00, 0x4f, 0x00, 0x52, 0x00, + 0x4b, 0x00, 0x47, 0x00, 0x52, 0x00, 0x4f, 0x00, 0x55, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x25, 0x06, + 0x03, 0x55, 0x1d, 0x23, 0x01, 0x01, 0xff, 0x04, 0x1b, 0x30, 0x19, 0xa1, 0x10, 0xa4, 0x0e, 0x52, 0x00, 0x4f, 0x00, + 0x44, 0x00, 0x45, 0x00, 0x4e, 0x00, 0x54, 0x00, 0x00, 0x00, 0x82, 0x05, 0x01, 0x00, 0x00, 0x00, 0x02, 0x30, 0x09, + 0x06, 0x05, 0x2b, 0x0e, 0x03, 0x02, 0x1d, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x2e, 0xeb, 0xc7, 0x0d, 0xb8, + 0x1d, 0x47, 0x11, 0x9d, 0x09, 0x88, 0x9b, 0x51, 0xdc, 0x45, 0xdd, 0x56, 0x51, 0xe2, 0xd1, 0x23, 0x11, 0x39, 0x9b, + 0x2d, 0xda, 0xc7, 0xfe, 0x7a, 0xd7, 0x84, 0xe3, 0x3d, 0x54, 0x77, 0x97, 0x4d, 0x19, 0x92, 0x30, 0x64, 0xa0, 0x47, + 0xc6, 0x2f, 0x6d, 0x93, 0xd2, 0x64, 0x7c, 0x76, 0xc8, 0x26, 0x45, 0xad, 0x5a, 0x44, 0x54, 0xea, 0xf6, 0x4b, 0x28, + 0x77, 0x1f, 0x77, 0xea, 0xec, 0x74, 0x02, 0x38, 0x68, 0x9e, 0x79, 0x14, 0x72, 0x83, 0x34, 0x74, 0x62, 0xd2, 0xc1, + 0x0c, 0xa4, 0x0b, 0xf2, 0xa9, 0xb0, 0x38, 0xbb, 0x7c, 0xd0, 0xae, 0xbe, 0xbf, 0x74, 0x47, 0x16, 0xa0, 0xa2, 0xd3, + 0xfc, 0x1d, 0xb9, 0xba, 0x26, 0x10, 0x06, 0xef, 0xba, 0x1d, 0x43, 0x01, 0x4e, 0x4e, 0x6f, 0x56, 0xca, 0xe0, 0xee, + 0xd0, 0xf9, 0x4e, 0xa6, 0x62, 0x63, 0xff, 0xda, 0x0b, 0xc9, 0x15, 0x61, 0x6c, 0xed, 0x6b, 0x0b, 0xc4, 0x58, 0x53, + 0x86, 0x0f, 0x8c, 0x0c, 0x1a, 0x2e, 0xdf, 0xc1, 0xf2, 0x43, 0x48, 0xd4, 0xaf, 0x0a, 0x78, 0x36, 0xb2, 0x51, 0x32, + 0x28, 0x6c, 0xc2, 0x75, 0x79, 0x3f, 0x6e, 0x99, 0x66, 0x88, 0x3e, 0x34, 0xd3, 0x7f, 0x6d, 0x9d, 0x07, 0xe4, 0x6b, + 0xeb, 0x84, 0xe2, 0x0a, 0xbb, 0xca, 0x7d, 0x3a, 0x40, 0x71, 0xb0, 0xbe, 0x47, 0x9f, 0x12, 0x58, 0x31, 0x61, 0x2b, + 0x9b, 0x4a, 0x9a, 0x49, 0x8f, 0xe5, 0xb4, 0x0c, 0xf5, 0x04, 0x4d, 0x3c, 0xce, 0xbc, 0xd2, 0x79, 0x15, 0xd9, 0x28, + 0xf4, 0x23, 0x56, 0x77, 0x9f, 0x38, 0x64, 0x3e, 0x03, 0x88, 0x92, 0x04, 0x26, 0x76, 0xb9, 0xb5, 0xdf, 0x19, 0xd0, + 0x78, 0x4b, 0x7a, 0x60, 0x40, 0x23, 0x91, 0xf1, 0x15, 0x22, 0x2b, 0xb4, 0xe7, 0x02, 0x54, 0xa9, 0x16, 0x21, 0x5b, + 0x60, 0x96, 0xa9, 0x5c, ]; const CERT_2_LEN_BUFFER: [u8; 4] = [0xfd, 0x04, 0x00, 0x00]; const PADDING_BUFFER: [u8; 16] = [ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, // padding + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // padding ]; const SCOPE_BUFFER_WITH_COUNT: [u8; 22] = [ 0x01, 0x00, 0x00, 0x00, // scope count - 0x0e, 0x00, 0x0e, 0x00, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x2e, 0x63, 0x6f, - 0x6d, 0x00, // scope list + 0x0e, 0x00, 0x0e, 0x00, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, + 0x00, // scope list ]; const MAGIC: [u8; 4] = [0x52, 0x53, 0x41, 0x31]; @@ -192,11 +168,10 @@ const DATALEN: [u8; 4] = [0x3f, 0x00, 0x00, 0x00]; const PUB_EXP: [u8; 4] = [0x01, 0x00, 0x01, 0x00]; const MODULUS: [u8; 72] = [ - 0xcb, 0x81, 0xfe, 0xba, 0x6d, 0x61, 0xc3, 0x55, 0x05, 0xd5, 0x5f, 0x2e, 0x87, 0xf8, 0x71, 0x94, - 0xd6, 0xf1, 0xa5, 0xcb, 0xf1, 0x5f, 0x0c, 0x3d, 0xf8, 0x70, 0x02, 0x96, 0xc4, 0xfb, 0x9b, 0xc8, - 0x3c, 0x2d, 0x55, 0xae, 0xe8, 0xff, 0x32, 0x75, 0xea, 0x68, 0x79, 0xe5, 0xa2, 0x01, 0xfd, 0x31, - 0xa0, 0xb1, 0x1f, 0x55, 0xa6, 0x1f, 0xc1, 0xf6, 0xd1, 0x83, 0x88, 0x63, 0x26, 0x56, 0x12, 0xbc, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xcb, 0x81, 0xfe, 0xba, 0x6d, 0x61, 0xc3, 0x55, 0x05, 0xd5, 0x5f, 0x2e, 0x87, 0xf8, 0x71, 0x94, 0xd6, 0xf1, 0xa5, + 0xcb, 0xf1, 0x5f, 0x0c, 0x3d, 0xf8, 0x70, 0x02, 0x96, 0xc4, 0xfb, 0x9b, 0xc8, 0x3c, 0x2d, 0x55, 0xae, 0xe8, 0xff, + 0x32, 0x75, 0xea, 0x68, 0x79, 0xe5, 0xa2, 0x01, 0xfd, 0x31, 0xa0, 0xb1, 0x1f, 0x55, 0xa6, 0x1f, 0xc1, 0xf6, 0xd1, + 0x83, 0x88, 0x63, 0x26, 0x56, 0x12, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ]; const CERT_HEADER_WITH_PARTIAL_RSA: [u8; 32] = [ @@ -204,16 +179,15 @@ const CERT_HEADER_WITH_PARTIAL_RSA: [u8; 32] = [ 0x01, 0x00, 0x00, 0x00, // dwkeyal 0x06, 0x00, // blob type 0x5c, 0x00, // len - 0x52, 0x53, 0x41, 0x31, 0x48, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x01, 0x00, // rsa without modulus + 0x52, 0x53, 0x41, 0x31, 0x48, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, + 0x00, // rsa without modulus ]; const SIGNATURE: [u8; 72] = [ - 0xe9, 0xe1, 0xd6, 0x28, 0x46, 0x8b, 0x4e, 0xf5, 0x0a, 0xdf, 0xfd, 0xee, 0x21, 0x99, 0xac, 0xb4, - 0xe1, 0x8f, 0x5f, 0x81, 0x57, 0x82, 0xef, 0x9d, 0x96, 0x52, 0x63, 0x27, 0x18, 0x29, 0xdb, 0xb3, - 0x4a, 0xfd, 0x9a, 0xda, 0x42, 0xad, 0xb5, 0x69, 0x21, 0x89, 0x0e, 0x1d, 0xc0, 0x4c, 0x1a, 0xa8, - 0xaa, 0x71, 0x3e, 0x0f, 0x54, 0xb9, 0x9a, 0xe4, 0x99, 0x68, 0x3f, 0x6c, 0xd6, 0x76, 0x84, 0x61, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xe9, 0xe1, 0xd6, 0x28, 0x46, 0x8b, 0x4e, 0xf5, 0x0a, 0xdf, 0xfd, 0xee, 0x21, 0x99, 0xac, 0xb4, 0xe1, 0x8f, 0x5f, + 0x81, 0x57, 0x82, 0xef, 0x9d, 0x96, 0x52, 0x63, 0x27, 0x18, 0x29, 0xdb, 0xb3, 0x4a, 0xfd, 0x9a, 0xda, 0x42, 0xad, + 0xb5, 0x69, 0x21, 0x89, 0x0e, 0x1d, 0xc0, 0x4c, 0x1a, 0xa8, 0xaa, 0x71, 0x3e, 0x0f, 0x54, 0xb9, 0x9a, 0xe4, 0x99, + 0x68, 0x3f, 0x6c, 0xd6, 0x76, 0x84, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ]; const SIGNATURE_BLOB_HEADER: [u8; 4] = [ @@ -226,8 +200,8 @@ const SERVER_CERTIFICATE_HEADER_BUFFER: [u8; 4] = [ ]; const SCOPE_BUFFER: [u8; 18] = [ - 0x0e, 0x00, 0x0e, 0x00, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x2e, 0x63, 0x6f, - 0x6d, 0x00, // scope array + 0x0e, 0x00, 0x0e, 0x00, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, + 0x00, // scope array ]; lazy_static! { @@ -257,10 +231,7 @@ lazy_static! { server_certificate: Some(ServerCertificate { issued_permanently: true, certificate: CertificateType::X509(X509CertificateChain { - certificate_array: vec![ - Vec::from(CERT_1_BUFFER.as_ref()), - Vec::from(CERT_2_BUFFER.as_ref()), - ], + certificate_array: vec![Vec::from(CERT_1_BUFFER.as_ref()), Vec::from(CERT_2_BUFFER.as_ref()),], }), }), scope_list: vec![Scope(String::from("microsoft.com"))], @@ -268,18 +239,12 @@ lazy_static! { pub static ref X509_CERTIFICATE: ServerCertificate = ServerCertificate { issued_permanently: true, certificate: CertificateType::X509(X509CertificateChain { - certificate_array: vec![ - Vec::from(CERT_1_BUFFER.as_ref()), - Vec::from(CERT_2_BUFFER.as_ref()), - ], + certificate_array: vec![Vec::from(CERT_1_BUFFER.as_ref()), Vec::from(CERT_2_BUFFER.as_ref()),], }), }; pub static ref SCOPE: Scope = Scope(String::from("microsoft.com")); static ref CERT_CHAIN: X509CertificateChain = X509CertificateChain { - certificate_array: vec![ - Vec::from(CERT_1_BUFFER.as_ref()), - Vec::from(CERT_2_BUFFER.as_ref()), - ], + certificate_array: vec![Vec::from(CERT_1_BUFFER.as_ref()), Vec::from(CERT_2_BUFFER.as_ref()),], }; } @@ -364,10 +329,7 @@ fn to_buffer_correctly_serializes_server_license_request() { server_certificate: Some(ServerCertificate { issued_permanently: true, certificate: CertificateType::X509(X509CertificateChain { - certificate_array: vec![ - Vec::from(CERT_1_BUFFER.as_ref()), - Vec::from(CERT_2_BUFFER.as_ref()), - ], + certificate_array: vec![Vec::from(CERT_1_BUFFER.as_ref()), Vec::from(CERT_2_BUFFER.as_ref())], }), }), scope_list: vec![Scope(String::from("microsoft.com"))], @@ -410,10 +372,7 @@ fn from_buffer_correctly_parses_rsa_public_key() { ] .concat(); - assert_eq!( - *PUBLIC_KEY, - RsaPublicKey::from_buffer(&mut buffer.as_slice()).unwrap() - ); + assert_eq!(*PUBLIC_KEY, RsaPublicKey::from_buffer(&mut buffer.as_slice()).unwrap()); } #[test] @@ -436,10 +395,7 @@ fn to_buffer_correctly_serializes_rsa_public_key() { #[test] fn buffer_length_is_correct_for_rsa_public_key() { - assert_eq!( - PUBLIC_KEY.buffer_length(), - RSA_KEY_SIZE_WITHOUT_MODULUS + MODULUS.len() - ); + assert_eq!(PUBLIC_KEY.buffer_length(), RSA_KEY_SIZE_WITHOUT_MODULUS + MODULUS.len()); } #[test] @@ -469,9 +425,7 @@ fn to_buffer_correctly_serializes_proprietary_certificate() { .concat(); let mut serialized_certificate = Vec::new(); - PROPRIETARY_CERTIFICATE - .to_buffer(&mut serialized_certificate) - .unwrap(); + PROPRIETARY_CERTIFICATE.to_buffer(&mut serialized_certificate).unwrap(); assert_eq!(serialized_certificate, certificate_buffer); } @@ -485,10 +439,7 @@ fn buffer_length_is_correct_for_proprietary_certificate() { assert_eq!( certificate.buffer_length(), - PUBLIC_KEY.buffer_length() - + SIGNATURE.len() - + PROP_CERT_NO_BLOBS_SIZE - + PROP_CERT_BLOBS_HEADERS_SIZE + PUBLIC_KEY.buffer_length() + SIGNATURE.len() + PROP_CERT_NO_BLOBS_SIZE + PROP_CERT_BLOBS_HEADERS_SIZE ); } @@ -529,23 +480,20 @@ fn buffer_length_is_correct_for_product_information() { #[test] fn get_public_key_correctly_gets_key_from_server_certificate() { let public_key: [u8; 270] = [ - 0x30, 0x82, 0x1, 0xa, 0x2, 0x82, 0x1, 0x1, 0x0, 0xc8, 0x90, 0x6b, 0xf0, 0xc6, 0x58, 0x81, - 0xa6, 0x89, 0x1c, 0xe, 0xf2, 0xf6, 0xd9, 0x82, 0x12, 0x71, 0xa5, 0x6e, 0x51, 0xdb, 0xe0, - 0x32, 0x66, 0xaa, 0x91, 0x77, 0xe, 0x88, 0xab, 0x44, 0xb7, 0xd3, 0x97, 0xda, 0x78, 0x8f, - 0xe, 0x44, 0x26, 0x46, 0x7f, 0x16, 0xd4, 0xc6, 0x63, 0xeb, 0xca, 0x55, 0xe5, 0x4e, 0x8b, - 0x2d, 0xa6, 0x6d, 0x83, 0x95, 0xa7, 0xa8, 0x6a, 0xfa, 0xd0, 0xbe, 0x26, 0x80, 0xae, 0xab, - 0xa, 0x64, 0x90, 0x32, 0x8c, 0xdf, 0x5c, 0xf8, 0xf9, 0xd0, 0x7e, 0xd1, 0x6b, 0x3a, 0x29, - 0x7e, 0x7d, 0xbd, 0x2, 0xa3, 0x86, 0x6c, 0xfd, 0xa5, 0x35, 0x71, 0xda, 0x21, 0xb4, 0xee, - 0xa4, 0x97, 0xf3, 0xa8, 0xb2, 0x12, 0xdb, 0xa4, 0x27, 0x57, 0x36, 0xc9, 0x8, 0x22, 0x5c, - 0x54, 0xf7, 0x99, 0x7b, 0xa3, 0x2f, 0xb8, 0x5c, 0xd5, 0x16, 0xb8, 0x19, 0x27, 0x6b, 0x71, - 0x97, 0x14, 0x5b, 0xe8, 0x1f, 0x23, 0xe8, 0x5c, 0xb8, 0x1b, 0x73, 0x4b, 0x6e, 0x7a, 0x3, - 0x13, 0xff, 0x97, 0xe9, 0x62, 0xb9, 0x4a, 0xa0, 0x51, 0x23, 0xc3, 0x6c, 0x32, 0x3e, 0x2, - 0xf2, 0x63, 0x97, 0x23, 0x1c, 0xc5, 0x78, 0xd8, 0xfc, 0xb7, 0x7, 0x4b, 0xb0, 0x56, 0xf, - 0x74, 0xdf, 0xc5, 0x56, 0x28, 0xe4, 0x96, 0xfd, 0x20, 0x8e, 0x65, 0x5a, 0xe6, 0x45, 0xed, - 0xc1, 0x5, 0x3e, 0xab, 0x58, 0x55, 0x40, 0xaf, 0xe2, 0x47, 0xa0, 0x4c, 0x49, 0xa3, 0x8d, - 0x39, 0xe3, 0x66, 0x5f, 0x93, 0x33, 0x6d, 0xf8, 0x5f, 0xc5, 0x54, 0xe5, 0xfb, 0x57, 0x3a, - 0xde, 0x45, 0x12, 0xb5, 0xc7, 0x5, 0x4b, 0x88, 0x1f, 0xb4, 0x35, 0xf, 0x7c, 0xc0, 0x75, - 0x17, 0xc6, 0x67, 0xdd, 0x48, 0x80, 0xcb, 0xa, 0xbe, 0x9d, 0xf6, 0x93, 0x60, 0x65, 0x34, + 0x30, 0x82, 0x1, 0xa, 0x2, 0x82, 0x1, 0x1, 0x0, 0xc8, 0x90, 0x6b, 0xf0, 0xc6, 0x58, 0x81, 0xa6, 0x89, 0x1c, + 0xe, 0xf2, 0xf6, 0xd9, 0x82, 0x12, 0x71, 0xa5, 0x6e, 0x51, 0xdb, 0xe0, 0x32, 0x66, 0xaa, 0x91, 0x77, 0xe, 0x88, + 0xab, 0x44, 0xb7, 0xd3, 0x97, 0xda, 0x78, 0x8f, 0xe, 0x44, 0x26, 0x46, 0x7f, 0x16, 0xd4, 0xc6, 0x63, 0xeb, + 0xca, 0x55, 0xe5, 0x4e, 0x8b, 0x2d, 0xa6, 0x6d, 0x83, 0x95, 0xa7, 0xa8, 0x6a, 0xfa, 0xd0, 0xbe, 0x26, 0x80, + 0xae, 0xab, 0xa, 0x64, 0x90, 0x32, 0x8c, 0xdf, 0x5c, 0xf8, 0xf9, 0xd0, 0x7e, 0xd1, 0x6b, 0x3a, 0x29, 0x7e, + 0x7d, 0xbd, 0x2, 0xa3, 0x86, 0x6c, 0xfd, 0xa5, 0x35, 0x71, 0xda, 0x21, 0xb4, 0xee, 0xa4, 0x97, 0xf3, 0xa8, + 0xb2, 0x12, 0xdb, 0xa4, 0x27, 0x57, 0x36, 0xc9, 0x8, 0x22, 0x5c, 0x54, 0xf7, 0x99, 0x7b, 0xa3, 0x2f, 0xb8, + 0x5c, 0xd5, 0x16, 0xb8, 0x19, 0x27, 0x6b, 0x71, 0x97, 0x14, 0x5b, 0xe8, 0x1f, 0x23, 0xe8, 0x5c, 0xb8, 0x1b, + 0x73, 0x4b, 0x6e, 0x7a, 0x3, 0x13, 0xff, 0x97, 0xe9, 0x62, 0xb9, 0x4a, 0xa0, 0x51, 0x23, 0xc3, 0x6c, 0x32, + 0x3e, 0x2, 0xf2, 0x63, 0x97, 0x23, 0x1c, 0xc5, 0x78, 0xd8, 0xfc, 0xb7, 0x7, 0x4b, 0xb0, 0x56, 0xf, 0x74, 0xdf, + 0xc5, 0x56, 0x28, 0xe4, 0x96, 0xfd, 0x20, 0x8e, 0x65, 0x5a, 0xe6, 0x45, 0xed, 0xc1, 0x5, 0x3e, 0xab, 0x58, + 0x55, 0x40, 0xaf, 0xe2, 0x47, 0xa0, 0x4c, 0x49, 0xa3, 0x8d, 0x39, 0xe3, 0x66, 0x5f, 0x93, 0x33, 0x6d, 0xf8, + 0x5f, 0xc5, 0x54, 0xe5, 0xfb, 0x57, 0x3a, 0xde, 0x45, 0x12, 0xb5, 0xc7, 0x5, 0x4b, 0x88, 0x1f, 0xb4, 0x35, 0xf, + 0x7c, 0xc0, 0x75, 0x17, 0xc6, 0x67, 0xdd, 0x48, 0x80, 0xcb, 0xa, 0xbe, 0x9d, 0xf6, 0x93, 0x60, 0x65, 0x34, 0xeb, 0x97, 0xaf, 0x65, 0x6d, 0xdf, 0xbf, 0x6f, 0x5b, 0x2, 0x3, 0x1, 0x0, 0x1, ]; @@ -586,9 +534,7 @@ fn to_buffer_correctly_serializes_server_certificate() { .concat(); let mut serialized_certificate = Vec::new(); - X509_CERTIFICATE - .to_buffer(&mut serialized_certificate) - .unwrap(); + X509_CERTIFICATE.to_buffer(&mut serialized_certificate).unwrap(); assert_eq!(serialized_certificate, certificate_buffer); } @@ -610,10 +556,7 @@ fn buffer_length_is_correct_for_server_certificate() { #[test] fn from_buffer_correctly_parses_scope() { - assert_eq!( - *SCOPE, - Scope::from_buffer(&mut SCOPE_BUFFER.as_ref()).unwrap() - ); + assert_eq!(*SCOPE, Scope::from_buffer(&mut SCOPE_BUFFER.as_ref()).unwrap()); } #[test] diff --git a/ironrdp/src/rdp/server_license/server_platform_challenge.rs b/ironrdp/src/rdp/server_license/server_platform_challenge.rs index b2f4bd2e..7872907b 100644 --- a/ironrdp/src/rdp/server_license/server_platform_challenge.rs +++ b/ironrdp/src/rdp/server_license/server_platform_challenge.rs @@ -6,8 +6,8 @@ use std::io; use byteorder::{LittleEndian, ReadBytesExt, WriteBytesExt}; use super::{ - read_license_header, BlobHeader, BlobType, LicenseHeader, PreambleType, ServerLicenseError, - BLOB_LENGTH_SIZE, BLOB_TYPE_SIZE, MAC_SIZE, + read_license_header, BlobHeader, BlobType, LicenseHeader, PreambleType, ServerLicenseError, BLOB_LENGTH_SIZE, + BLOB_TYPE_SIZE, MAC_SIZE, }; use crate::PduParsing; @@ -48,8 +48,7 @@ impl PduParsing for ServerPlatformChallenge { stream.write_u32::(0)?; // connect_flags, ignored - BlobHeader::new(BlobType::Any, self.encrypted_platform_challenge.len()) - .write_to_buffer(&mut stream)?; + BlobHeader::new(BlobType::Any, self.encrypted_platform_challenge.len()).write_to_buffer(&mut stream)?; stream.write_all(&self.encrypted_platform_challenge)?; stream.write_all(&self.mac_data)?; diff --git a/ironrdp/src/rdp/server_license/server_platform_challenge/test.rs b/ironrdp/src/rdp/server_license/server_platform_challenge/test.rs index a8473128..7b3628c9 100644 --- a/ironrdp/src/rdp/server_license/server_platform_challenge/test.rs +++ b/ironrdp/src/rdp/server_license/server_platform_challenge/test.rs @@ -1,11 +1,10 @@ +use lazy_static::lazy_static; + use super::*; use crate::rdp::server_license::{ - BasicSecurityHeader, BasicSecurityHeaderFlags, PreambleFlags, PreambleVersion, - BASIC_SECURITY_HEADER_SIZE, + BasicSecurityHeader, BasicSecurityHeaderFlags, PreambleFlags, PreambleVersion, BASIC_SECURITY_HEADER_SIZE, }; -use lazy_static::lazy_static; - const PLATFORM_CHALLENGE_BUFFER: [u8; 42] = [ 0x80, 0x00, // flags 0x00, 0x00, // flagsHi @@ -14,8 +13,7 @@ const PLATFORM_CHALLENGE_BUFFER: [u8; 42] = [ 0x00, 0x00, // ignored 0x0a, 0x00, // blob len 0x46, 0x37, 0x85, 0x54, 0x8e, 0xc5, 0x91, 0x34, 0x97, 0x5d, // challenge - 0x38, 0x23, 0x62, 0x5d, 0x10, 0x8b, 0x93, 0xc3, 0xf1, 0xe4, 0x67, 0x1f, 0x4a, 0xb6, 0x00, - 0x0a, // mac data + 0x38, 0x23, 0x62, 0x5d, 0x10, 0x8b, 0x93, 0xc3, 0xf1, 0xe4, 0x67, 0x1f, 0x4a, 0xb6, 0x00, 0x0a, // mac data ]; const CHALLENGE_BUFFER: [u8; 10] = [ @@ -23,8 +21,7 @@ const CHALLENGE_BUFFER: [u8; 10] = [ ]; const MAC_DATA_BUFFER: [u8; MAC_SIZE] = [ - 0x38, 0x23, 0x62, 0x5d, 0x10, 0x8b, 0x93, 0xc3, 0xf1, 0xe4, 0x67, 0x1f, 0x4a, 0xb6, 0x00, - 0x0a, // mac data + 0x38, 0x23, 0x62, 0x5d, 0x10, 0x8b, 0x93, 0xc3, 0xf1, 0xe4, 0x67, 0x1f, 0x4a, 0xb6, 0x00, 0x0a, // mac data ]; lazy_static! { @@ -36,8 +33,7 @@ lazy_static! { preamble_message_type: PreambleType::PlatformChallenge, preamble_flags: PreambleFlags::empty(), preamble_version: PreambleVersion::V3, - preamble_message_size: (PLATFORM_CHALLENGE_BUFFER.len() - BASIC_SECURITY_HEADER_SIZE) - as u16, + preamble_message_size: (PLATFORM_CHALLENGE_BUFFER.len() - BASIC_SECURITY_HEADER_SIZE) as u16, }, encrypted_platform_challenge: Vec::from(CHALLENGE_BUFFER.as_ref()), mac_data: Vec::from(MAC_DATA_BUFFER.as_ref()), @@ -67,8 +63,5 @@ fn to_buffer_correctly_serializes_server_platform_challenge() { #[test] fn buffer_length_is_correct_for_server_platform_challenge() { - assert_eq!( - PLATFORM_CHALLENGE_BUFFER.len(), - PLATFORM_CHALLENGE.buffer_length() - ); + assert_eq!(PLATFORM_CHALLENGE_BUFFER.len(), PLATFORM_CHALLENGE.buffer_length()); } diff --git a/ironrdp/src/rdp/server_license/server_upgrade_license.rs b/ironrdp/src/rdp/server_license/server_upgrade_license.rs index 659a3470..bbe314fa 100644 --- a/ironrdp/src/rdp/server_license/server_upgrade_license.rs +++ b/ironrdp/src/rdp/server_license/server_upgrade_license.rs @@ -6,15 +6,12 @@ use std::io; use byteorder::{LittleEndian, ReadBytesExt, WriteBytesExt}; use super::{ - read_license_header, BlobHeader, BlobType, LicenseEncryptionData, LicenseHeader, PreambleType, - ServerLicenseError, BLOB_LENGTH_SIZE, BLOB_TYPE_SIZE, MAC_SIZE, UTF16_NULL_TERMINATOR_SIZE, - UTF8_NULL_TERMINATOR_SIZE, -}; -use crate::{ - utils, - utils::{rc4::Rc4, CharacterSet}, - PduParsing, + read_license_header, BlobHeader, BlobType, LicenseEncryptionData, LicenseHeader, PreambleType, ServerLicenseError, + BLOB_LENGTH_SIZE, BLOB_TYPE_SIZE, MAC_SIZE, UTF16_NULL_TERMINATOR_SIZE, UTF8_NULL_TERMINATOR_SIZE, }; +use crate::utils::rc4::Rc4; +use crate::utils::CharacterSet; +use crate::{utils, PduParsing}; const NEW_LICENSE_INFO_STATIC_FIELDS_SIZE: usize = 20; @@ -26,16 +23,11 @@ pub struct ServerUpgradeLicense { } impl ServerUpgradeLicense { - pub fn verify_server_license( - &self, - encryption_data: &LicenseEncryptionData, - ) -> Result<(), ServerLicenseError> { + pub fn verify_server_license(&self, encryption_data: &LicenseEncryptionData) -> Result<(), ServerLicenseError> { let mut rc4 = Rc4::new(encryption_data.license_key.as_slice()); let decrypted_license_info = rc4.process(self.encrypted_license_info.as_slice()); - let mac_data = super::compute_mac_data( - encryption_data.mac_salt_key.as_slice(), - decrypted_license_info.as_ref(), - ); + let mac_data = + super::compute_mac_data(encryption_data.mac_salt_key.as_slice(), decrypted_license_info.as_ref()); if mac_data != self.mac_data { return Err(ServerLicenseError::InvalidMacData); @@ -62,8 +54,7 @@ impl PduParsing for ServerUpgradeLicense { ))); } - let encrypted_license_info_blob = - BlobHeader::read_from_buffer(BlobType::EncryptedData, &mut stream)?; + let encrypted_license_info_blob = BlobHeader::read_from_buffer(BlobType::EncryptedData, &mut stream)?; let mut encrypted_license_info = vec![0u8; encrypted_license_info_blob.length as usize]; stream.read_exact(&mut encrypted_license_info)?; @@ -81,8 +72,7 @@ impl PduParsing for ServerUpgradeLicense { fn to_buffer(&self, mut stream: impl io::Write) -> Result<(), Self::Error> { self.license_header.to_buffer(&mut stream)?; - BlobHeader::new(BlobType::EncryptedData, self.encrypted_license_info.len()) - .write_to_buffer(&mut stream)?; + BlobHeader::new(BlobType::EncryptedData, self.encrypted_license_info.len()).write_to_buffer(&mut stream)?; stream.write_all(&self.encrypted_license_info)?; stream.write_all(&self.mac_data)?; @@ -157,23 +147,11 @@ impl PduParsing for NewLicenseInformation { stream.write_u32::((self.scope.len() + UTF8_NULL_TERMINATOR_SIZE) as u32)?; utils::write_string_with_null_terminator(&mut stream, &self.scope, CharacterSet::Ansi)?; - stream.write_u32::( - (self.company_name.len() * 2 + UTF16_NULL_TERMINATOR_SIZE) as u32, - )?; - utils::write_string_with_null_terminator( - &mut stream, - &self.company_name, - CharacterSet::Unicode, - )?; + stream.write_u32::((self.company_name.len() * 2 + UTF16_NULL_TERMINATOR_SIZE) as u32)?; + utils::write_string_with_null_terminator(&mut stream, &self.company_name, CharacterSet::Unicode)?; - stream.write_u32::( - (self.product_id.len() * 2 + UTF16_NULL_TERMINATOR_SIZE) as u32, - )?; - utils::write_string_with_null_terminator( - &mut stream, - &self.product_id, - CharacterSet::Unicode, - )?; + stream.write_u32::((self.product_id.len() * 2 + UTF16_NULL_TERMINATOR_SIZE) as u32)?; + utils::write_string_with_null_terminator(&mut stream, &self.product_id, CharacterSet::Unicode)?; stream.write_u32::(self.license_info.len() as u32)?; stream.write_all(self.license_info.as_slice())?; diff --git a/ironrdp/src/rdp/server_license/server_upgrade_license/test.rs b/ironrdp/src/rdp/server_license/server_upgrade_license/test.rs index eb22e38c..0a6aa56d 100644 --- a/ironrdp/src/rdp/server_license/server_upgrade_license/test.rs +++ b/ironrdp/src/rdp/server_license/server_upgrade_license/test.rs @@ -1,147 +1,126 @@ +use lazy_static::lazy_static; + use super::*; use crate::rdp::server_license::{ - BasicSecurityHeader, BasicSecurityHeaderFlags, PreambleFlags, PreambleVersion, - BASIC_SECURITY_HEADER_SIZE, PREAMBLE_SIZE, + BasicSecurityHeader, BasicSecurityHeaderFlags, PreambleFlags, PreambleVersion, BASIC_SECURITY_HEADER_SIZE, + PREAMBLE_SIZE, }; -use lazy_static::lazy_static; - const SERVER_UPGRADE_LICENSE_BUFFER: [u8; 2059] = [ 0x80, 0x00, // flags 0x00, 0x00, // flagsHi 0x03, 0x03, 0x07, 0x08, // preamble 0x09, 0x00, // blob type 0xef, 0x07, // blob len - 0xdb, 0xa3, 0x13, 0x30, 0x79, 0xa3, 0xcd, 0x9e, 0x48, 0xf4, 0x8f, 0x06, 0x37, 0x1b, 0x45, 0xdd, - 0x60, 0xa9, 0x2e, 0x29, 0x26, 0xbf, 0xc1, 0x96, 0x5e, 0x07, 0x93, 0x9d, 0xf2, 0x2d, 0x3e, 0xa3, - 0x3a, 0xff, 0xd5, 0x6d, 0xf5, 0x85, 0x30, 0x28, 0xe1, 0x46, 0xfd, 0x56, 0xd1, 0x20, 0x41, 0x33, - 0x94, 0x88, 0x0c, 0x27, 0x23, 0xa0, 0x61, 0x38, 0x60, 0xdb, 0x86, 0xd6, 0xce, 0x2c, 0xcd, 0x40, - 0x39, 0x55, 0x23, 0x39, 0x12, 0xb9, 0xfd, 0xc2, 0x8d, 0x58, 0x0a, 0x37, 0x33, 0x42, 0x5c, 0x61, - 0xd7, 0xc8, 0xa0, 0x11, 0x66, 0xe2, 0x45, 0xba, 0x41, 0x39, 0xea, 0x85, 0x2a, 0x6e, 0x7a, 0xb3, - 0xe7, 0x27, 0x75, 0xfc, 0x4d, 0xc0, 0xfb, 0x0d, 0xe8, 0x67, 0x90, 0xb3, 0x3a, 0x40, 0xf0, 0x15, - 0x8a, 0x15, 0x8e, 0x2c, 0x99, 0x0f, 0x1c, 0xbd, 0xd2, 0x08, 0x66, 0x51, 0x9e, 0x6a, 0xe6, 0x2c, - 0xf7, 0x1f, 0xd0, 0xc0, 0x8e, 0x89, 0x76, 0x64, 0x18, 0x58, 0xa1, 0x94, 0xbd, 0xce, 0xb1, 0x2d, - 0x96, 0xab, 0x53, 0xcf, 0xf8, 0xbf, 0xd0, 0xc9, 0xc0, 0x2e, 0xe6, 0xa4, 0x0b, 0x50, 0x31, 0x4a, - 0x4e, 0xd8, 0x47, 0x4b, 0xaf, 0xb8, 0x21, 0x78, 0xbf, 0x09, 0xac, 0x7f, 0x2d, 0x2d, 0x88, 0xf6, - 0xd8, 0xc7, 0x45, 0x33, 0x9f, 0xac, 0x69, 0xf5, 0x88, 0x9d, 0x5c, 0x6e, 0xc9, 0xd0, 0xca, 0x8c, - 0xbc, 0xa9, 0xd6, 0x07, 0x36, 0xed, 0x40, 0x95, 0x8a, 0xc1, 0x3f, 0x04, 0x41, 0xb3, 0xc9, 0xb3, - 0x18, 0x9d, 0x33, 0x1b, 0x04, 0x55, 0xcd, 0x41, 0xdf, 0x19, 0xe1, 0xcd, 0xa0, 0xa4, 0x35, 0x6e, - 0xb7, 0x0a, 0xf3, 0xec, 0x48, 0x10, 0x4f, 0x28, 0xc6, 0x35, 0xf3, 0x9b, 0xa2, 0xd5, 0xf7, 0x58, - 0x03, 0x4d, 0x9a, 0x16, 0x34, 0xfb, 0x96, 0x0c, 0xd5, 0x3a, 0xae, 0x52, 0x1b, 0x2f, 0x1f, 0x1f, - 0x31, 0xb2, 0xd9, 0x14, 0x3b, 0x73, 0x0f, 0xe3, 0x04, 0xe0, 0xa5, 0x52, 0x89, 0x68, 0xba, 0x0f, - 0x99, 0x9d, 0x24, 0xa6, 0xf3, 0xe8, 0x9f, 0xcc, 0xd2, 0x44, 0x9f, 0x08, 0x8b, 0x0a, 0x24, 0x89, - 0xf7, 0xc9, 0x07, 0x0d, 0x25, 0x07, 0xed, 0x3e, 0x75, 0x21, 0x19, 0x65, 0xdc, 0x98, 0x41, 0x9d, - 0x05, 0x12, 0x18, 0x88, 0x86, 0x16, 0x43, 0x49, 0x29, 0xf2, 0xe8, 0x26, 0x16, 0x1e, 0xce, 0xcd, - 0x32, 0xe7, 0x36, 0x74, 0x51, 0x27, 0xfd, 0xa2, 0xa9, 0x62, 0x57, 0x60, 0x28, 0xe4, 0x64, 0x02, - 0x06, 0x6b, 0xff, 0x01, 0xab, 0xc5, 0x1c, 0x25, 0x98, 0x07, 0xe1, 0x40, 0xad, 0x19, 0xb7, 0x68, - 0x66, 0x12, 0x4e, 0x80, 0xbc, 0x83, 0xd2, 0xde, 0xcb, 0x7e, 0xc2, 0x32, 0xc7, 0xb8, 0x4d, 0xd6, - 0x7d, 0xdd, 0x63, 0xa9, 0x95, 0x45, 0xc1, 0x90, 0xc7, 0x99, 0x3c, 0x0a, 0x24, 0x62, 0xfc, 0x24, - 0x15, 0xdb, 0xd3, 0xd2, 0x9b, 0x5d, 0x78, 0x04, 0x78, 0xd5, 0x40, 0x1d, 0xe3, 0x4e, 0xe8, 0x30, - 0x9f, 0x56, 0x91, 0x71, 0x00, 0x86, 0x2c, 0x6a, 0xb2, 0x78, 0xec, 0x70, 0xd9, 0x71, 0xe6, 0xaa, - 0xb1, 0xad, 0x18, 0xf9, 0xa6, 0x84, 0xb7, 0x4b, 0x5f, 0x32, 0xb8, 0xe3, 0xc7, 0x84, 0xef, 0x37, - 0xfe, 0xae, 0x99, 0xb5, 0xf2, 0x34, 0x84, 0x82, 0x4a, 0xb3, 0xd0, 0x7c, 0x5e, 0x25, 0x71, 0x89, - 0x8b, 0x7d, 0x6f, 0x5f, 0x96, 0x7a, 0x1d, 0x84, 0x96, 0x56, 0x34, 0x30, 0xce, 0x09, 0xd5, 0x00, - 0xa8, 0xac, 0x15, 0x72, 0x21, 0xc4, 0x71, 0x57, 0xe5, 0x2a, 0x3d, 0xdf, 0x82, 0xb8, 0xb8, 0x63, - 0xdc, 0x3f, 0x2e, 0x99, 0x6c, 0xc3, 0xe3, 0xfd, 0x92, 0xe0, 0x26, 0xe1, 0x27, 0xb8, 0x04, 0x71, - 0xb0, 0xa8, 0xd1, 0xdf, 0x7e, 0x24, 0x23, 0xb9, 0x82, 0x01, 0x77, 0xdc, 0x8f, 0x77, 0x54, 0xe6, - 0x93, 0xc8, 0x6c, 0x66, 0x87, 0xb7, 0xaa, 0x9d, 0x66, 0xd4, 0xc6, 0x2f, 0x5e, 0x9e, 0xe1, 0xcf, - 0xdb, 0xb2, 0x74, 0x0e, 0xea, 0xa5, 0xe0, 0xf7, 0x00, 0xf1, 0x76, 0xf7, 0x45, 0x2c, 0xf8, 0xa9, - 0x3b, 0xd9, 0x81, 0x59, 0x52, 0x0f, 0xfe, 0xd9, 0x28, 0x02, 0x59, 0x82, 0x39, 0x51, 0x6e, 0xb9, - 0xac, 0xf9, 0x6a, 0x48, 0x73, 0x6f, 0x2c, 0x4d, 0x7b, 0xc0, 0xbf, 0xbe, 0x69, 0xae, 0x0e, 0xdc, - 0x8b, 0xe6, 0xd8, 0x9f, 0x66, 0x30, 0x1e, 0x45, 0x1d, 0x85, 0x23, 0xeb, 0xa8, 0x02, 0xb5, 0xba, - 0xc2, 0xfd, 0xa1, 0xff, 0xc5, 0x55, 0x2b, 0xa0, 0xf7, 0x5b, 0x24, 0xee, 0x81, 0xd8, 0xe1, 0xb8, - 0x02, 0x06, 0x85, 0x6e, 0x41, 0x5a, 0xb8, 0x07, 0xff, 0x65, 0xdb, 0xb4, 0x59, 0x89, 0x71, 0x95, - 0xd5, 0x0c, 0x2a, 0x67, 0x4d, 0x57, 0xfd, 0x4a, 0xe8, 0x07, 0x02, 0x42, 0x20, 0xd9, 0xf1, 0xc6, - 0xd5, 0x4c, 0x53, 0xb0, 0x32, 0x68, 0xc0, 0xdc, 0xd7, 0x5d, 0x8f, 0xec, 0x24, 0x29, 0x00, 0x4f, - 0x46, 0x8d, 0xd2, 0x99, 0xb2, 0xf4, 0x06, 0x99, 0x9a, 0xa6, 0x31, 0xf1, 0x49, 0x16, 0xfe, 0x94, - 0xbb, 0x8e, 0x15, 0x55, 0x06, 0x93, 0x16, 0xa3, 0x2d, 0x10, 0xb7, 0xb1, 0xcf, 0x61, 0x78, 0xaf, - 0x93, 0x66, 0x5a, 0x75, 0x5e, 0x97, 0xc0, 0x97, 0x4c, 0xba, 0xa9, 0x50, 0xac, 0x1b, 0xd6, 0x92, - 0x2a, 0xac, 0x0a, 0x21, 0x12, 0x9e, 0x4a, 0xf0, 0x40, 0x39, 0x4b, 0xe5, 0x78, 0x88, 0x86, 0x17, - 0xb9, 0xeb, 0xa0, 0x33, 0x8a, 0x9a, 0xfc, 0x7c, 0x91, 0x16, 0xd7, 0x52, 0xec, 0x05, 0x7e, 0x4e, - 0x90, 0x78, 0x5e, 0x45, 0x4a, 0xdd, 0xf6, 0xf4, 0x2e, 0x68, 0xf7, 0x8e, 0xfc, 0x60, 0x95, 0xaa, - 0x6a, 0x07, 0x9c, 0xea, 0xce, 0xc1, 0xd9, 0x55, 0x3a, 0x78, 0x54, 0x9a, 0x2a, 0x5f, 0x47, 0x87, - 0x18, 0x4a, 0x8c, 0x6c, 0x34, 0xf5, 0xb8, 0xe2, 0x84, 0x36, 0xef, 0x0d, 0x2e, 0x9d, 0x42, 0xd9, - 0xff, 0x56, 0xe2, 0x87, 0x0b, 0x2f, 0x4d, 0x0e, 0xc0, 0x60, 0x35, 0x06, 0x9f, 0x61, 0x9e, 0x4e, - 0x7b, 0x49, 0x41, 0xb4, 0xfa, 0x04, 0x10, 0xbd, 0xf6, 0xad, 0x02, 0xd9, 0x7c, 0xba, 0x06, 0x68, - 0xbb, 0xa7, 0xa6, 0x8a, 0xab, 0xab, 0xb1, 0x2d, 0x69, 0x2a, 0xf1, 0xc6, 0x7b, 0x1b, 0x71, 0xb9, - 0xd0, 0x91, 0x82, 0x6f, 0xa8, 0x3c, 0xe1, 0xa3, 0x23, 0x3d, 0x4e, 0x48, 0x74, 0xe5, 0xc9, 0xc5, - 0x95, 0x31, 0xad, 0xe7, 0xa9, 0xdb, 0x35, 0xcd, 0x02, 0x08, 0x2c, 0x29, 0x5f, 0xf9, 0x17, 0x86, - 0x69, 0x8f, 0x13, 0xd1, 0xca, 0x83, 0xfc, 0xac, 0x55, 0xcf, 0x5a, 0xe6, 0x45, 0xaf, 0xe5, 0xbb, - 0xe7, 0xb5, 0x53, 0x4e, 0xf0, 0x63, 0xfc, 0x9a, 0x49, 0xf6, 0x45, 0x93, 0xc6, 0xbf, 0xd5, 0xb3, - 0x25, 0xe2, 0x93, 0xb0, 0xa6, 0xa7, 0x14, 0x80, 0x6d, 0xb2, 0x03, 0x15, 0x6a, 0xad, 0xe8, 0x25, - 0xf1, 0x80, 0xd4, 0xba, 0x9a, 0x88, 0xbc, 0x56, 0x14, 0x7a, 0x4d, 0xad, 0xc3, 0x24, 0x3f, 0x4d, - 0x35, 0x8b, 0xf6, 0x59, 0x5b, 0xfd, 0xc9, 0x32, 0x1d, 0xf5, 0xa5, 0x53, 0xb5, 0xfb, 0xba, 0x83, - 0x29, 0x0b, 0x9c, 0x62, 0x9b, 0x56, 0x4b, 0x44, 0xbc, 0xcc, 0x19, 0x59, 0x7c, 0x0b, 0x74, 0xd9, - 0x04, 0x28, 0xb3, 0x67, 0xab, 0x82, 0x36, 0x39, 0x55, 0x5f, 0x7c, 0xed, 0x84, 0xc1, 0x16, 0xd3, - 0x9e, 0x9c, 0x90, 0x9d, 0x55, 0xbc, 0x3e, 0xb9, 0x63, 0x12, 0xf2, 0x26, 0x6d, 0xd7, 0xcc, 0x4f, - 0x01, 0xa2, 0x0b, 0xd9, 0x66, 0x60, 0xad, 0xed, 0x2e, 0xbd, 0xbe, 0x28, 0x5f, 0x4a, 0x33, 0xc8, - 0xe8, 0xd4, 0xa6, 0x23, 0x8a, 0xfd, 0x66, 0xf5, 0x28, 0x90, 0x81, 0x27, 0xa9, 0x44, 0x93, 0x68, - 0x57, 0x44, 0x5e, 0xba, 0x90, 0x12, 0x03, 0x15, 0x2f, 0x69, 0x80, 0x55, 0xe8, 0x32, 0x63, 0x88, - 0x30, 0x85, 0x50, 0x9b, 0xb6, 0xbc, 0xbb, 0xc6, 0xfe, 0xa2, 0xe7, 0x32, 0x9d, 0x3d, 0x7d, 0xe2, - 0x31, 0x93, 0xa6, 0x4e, 0xa0, 0xdc, 0x11, 0x44, 0xd2, 0x93, 0x32, 0x94, 0x1e, 0xc6, 0x4c, 0x28, - 0xde, 0xa2, 0xa6, 0x0d, 0x14, 0x02, 0x74, 0x8a, 0x84, 0x2a, 0x03, 0x67, 0x35, 0x1d, 0x66, 0x3e, - 0xe9, 0x68, 0x4a, 0xb2, 0x92, 0x1a, 0x69, 0x48, 0xbd, 0x23, 0xfd, 0x70, 0x5a, 0xfd, 0xfe, 0x74, - 0x39, 0xc5, 0xfa, 0x11, 0xac, 0x04, 0xc9, 0x94, 0xfc, 0x12, 0x2e, 0x06, 0x04, 0x61, 0x8e, 0x32, - 0xf4, 0xf8, 0x3b, 0xd1, 0xd8, 0x09, 0xb3, 0xe4, 0xac, 0x0f, 0x3e, 0x92, 0xf7, 0x75, 0x0b, 0x32, - 0x9b, 0xd4, 0x8a, 0x13, 0x99, 0x6a, 0x26, 0x77, 0x9f, 0x34, 0x08, 0xa8, 0xeb, 0xb3, 0x3e, 0x2a, - 0x5b, 0x4a, 0x44, 0xf9, 0x21, 0x89, 0x2a, 0x09, 0x9c, 0xc7, 0x0d, 0x2a, 0xd8, 0xd6, 0x27, 0x30, - 0x25, 0x39, 0x84, 0x14, 0x11, 0x47, 0xff, 0x60, 0xe4, 0x7c, 0xc3, 0x41, 0xfd, 0xd5, 0x34, 0xdd, - 0xb1, 0x1c, 0xf2, 0xeb, 0xb1, 0x67, 0x04, 0xfa, 0xfd, 0x65, 0x5b, 0x20, 0x6e, 0x28, 0x75, 0xa9, - 0x74, 0x8e, 0xc4, 0x2f, 0xf7, 0xb2, 0xf5, 0x9f, 0x13, 0x44, 0xff, 0xb0, 0xf0, 0x68, 0xb0, 0x69, - 0x15, 0xa6, 0x16, 0xa8, 0xac, 0xc3, 0x06, 0x14, 0x8e, 0x51, 0x99, 0xa9, 0x4c, 0x19, 0xd1, 0x25, - 0x34, 0xb5, 0x79, 0xc2, 0xa7, 0xbf, 0xd8, 0x3d, 0x2d, 0x4c, 0x33, 0xac, 0x1b, 0x6c, 0xaf, 0x10, - 0x42, 0x41, 0x14, 0x02, 0xe6, 0x87, 0x2b, 0xe9, 0xec, 0xc6, 0xb1, 0xeb, 0x97, 0xd4, 0x35, 0x49, - 0x97, 0xfc, 0xe2, 0x73, 0xf9, 0x98, 0x46, 0x7c, 0xf6, 0x17, 0x2d, 0xb5, 0x43, 0x07, 0x8b, 0x19, - 0x95, 0x9b, 0x65, 0xd3, 0x05, 0x7e, 0xb0, 0x68, 0x0d, 0x6e, 0x4b, 0x60, 0xad, 0x5c, 0x47, 0x6e, - 0x37, 0xfd, 0x3f, 0x60, 0x43, 0xda, 0xb2, 0x34, 0x00, 0xd6, 0x9c, 0x6d, 0x46, 0x7f, 0x41, 0xe2, - 0xc1, 0x1a, 0xd0, 0x53, 0x72, 0x81, 0x0b, 0x3f, 0x77, 0xe1, 0xbc, 0xcc, 0x09, 0x0f, 0xa1, 0x1d, - 0x73, 0x8c, 0xac, 0xa4, 0x48, 0x90, 0x80, 0xa8, 0x50, 0x63, 0x6a, 0xb7, 0x76, 0x91, 0x91, 0x2f, - 0x1a, 0x5e, 0x83, 0x80, 0xe6, 0xae, 0x66, 0x77, 0x44, 0xe0, 0x0f, 0x14, 0x70, 0xc9, 0xd3, 0x91, - 0xe8, 0xd2, 0xc4, 0x89, 0xa8, 0x45, 0xc0, 0x3d, 0xbd, 0x09, 0x58, 0xe0, 0xcd, 0xe6, 0x5c, 0x9e, - 0x02, 0x94, 0xd2, 0xbe, 0xdf, 0x94, 0x35, 0xf7, 0x67, 0x96, 0x75, 0x88, 0x08, 0x59, 0xd9, 0x19, - 0x21, 0xda, 0xd0, 0xa2, 0x74, 0x2d, 0x22, 0x87, 0x37, 0x27, 0x6e, 0x58, 0xdc, 0x8e, 0x9f, 0x50, - 0xd5, 0x62, 0xf3, 0x4a, 0xa4, 0xb2, 0xfb, 0xf9, 0x3e, 0xd5, 0xda, 0x57, 0x56, 0x5c, 0xcb, 0x0e, - 0xd1, 0x62, 0x4f, 0xea, 0x42, 0x4a, 0x62, 0xb2, 0x4e, 0x1c, 0xd1, 0xcc, 0x24, 0x1b, 0xdc, 0xac, - 0xd4, 0xb0, 0x2f, 0x5d, 0x62, 0x87, 0x56, 0x3d, 0xe4, 0x03, 0xae, 0x4a, 0x7e, 0x7d, 0x05, 0xfe, - 0x85, 0x33, 0xda, 0x5f, 0x36, 0xcb, 0x56, 0xa1, 0x14, 0x80, 0x63, 0x26, 0x75, 0x3a, 0xc2, 0x1f, - 0x9c, 0xdd, 0x8a, 0xd6, 0xf8, 0xa9, 0x1a, 0xf6, 0xc2, 0x57, 0xe0, 0x7b, 0x80, 0x55, 0xd5, 0x12, - 0xf1, 0xb4, 0xe7, 0x1d, 0x95, 0x68, 0x02, 0xf1, 0x19, 0xff, 0x74, 0x72, 0x32, 0xdb, 0x6c, 0xc9, - 0xa0, 0x2d, 0x69, 0xfc, 0xc0, 0xe8, 0x27, 0x11, 0xb8, 0xe0, 0xf5, 0x83, 0x60, 0x3f, 0xb4, 0x94, - 0xe5, 0x9d, 0xb8, 0xfd, 0xc5, 0x9e, 0x50, 0x76, 0x92, 0xc7, 0x33, 0x6b, 0xe0, 0x7e, 0x9b, 0x2c, - 0x3b, 0x27, 0xd8, 0xa6, 0xda, 0xb3, 0xa1, 0x45, 0xef, 0x3b, 0x3d, 0x76, 0x1d, 0x5a, 0x43, 0xa4, - 0xe1, 0x82, 0x5f, 0x7d, 0x0b, 0x10, 0x28, 0x1c, 0xb9, 0x8f, 0x2b, 0xcd, 0xf9, 0xc5, 0x93, 0xe3, - 0x65, 0xa5, 0x5b, 0x50, 0xa9, 0x07, 0x16, 0xb3, 0x45, 0x4a, 0x69, 0xfc, 0x58, 0x12, 0x7b, 0x58, - 0x34, 0x9f, 0x6f, 0x5e, 0x7a, 0xc2, 0x9f, 0x7b, 0xcf, 0x62, 0x62, 0x6c, 0x1e, 0x7d, 0xd9, 0x72, - 0xca, 0x98, 0x1e, 0xd4, 0xe5, 0xc7, 0x98, 0x27, 0xe3, 0x9f, 0xc5, 0x3c, 0x90, 0x9e, 0x26, 0xed, - 0x7e, 0x38, 0x2b, 0xcf, 0xc4, 0x99, 0xf5, 0xb4, 0x78, 0x48, 0x7c, 0x08, 0x99, 0xbc, 0x80, 0x47, - 0xb1, 0xc5, 0x58, 0x60, 0x17, 0x84, 0x11, 0xf8, 0x70, 0xa1, 0x26, 0x95, 0x94, 0x77, 0xf4, 0x8d, - 0x1d, 0x47, 0x96, 0xdf, 0x95, 0x1d, 0x97, 0x37, 0x5a, 0x12, 0xfb, 0x3f, 0xcd, 0xa0, 0xfb, 0xac, - 0x61, 0x62, 0x1f, 0xee, 0xdc, 0x6d, 0x2c, 0x45, 0x5f, 0xc0, 0x80, 0x7d, 0x99, 0x62, 0x38, 0xf7, - 0x6d, 0x88, 0xd5, 0xe2, 0x24, 0x9d, 0xed, 0xa7, 0xd5, 0xe7, 0x1c, 0x8a, 0x75, 0x9b, 0x67, 0x0c, - 0x64, 0xfe, 0xe7, 0xe2, 0xe9, 0xa0, 0x94, 0x60, 0x26, 0x46, 0xd8, 0xc9, 0x59, 0x43, 0x17, 0x85, - 0x07, 0x32, 0x8b, 0x0c, 0x5a, 0x1e, 0x35, 0x48, 0x46, 0xe5, 0x44, 0x5b, 0xc7, 0x07, 0xcd, 0x30, - 0x97, 0x80, 0xfa, 0xf9, 0xeb, 0x0d, 0xaf, 0xaf, 0x3e, 0xbe, 0x27, 0x43, 0x8e, 0x4a, 0xf2, 0x60, - 0xeb, 0x2b, 0x4d, 0x11, 0x9a, 0xe1, 0xd7, 0x59, 0x78, 0x29, 0x26, 0x3e, 0x9b, 0xda, 0x61, 0x15, - 0xab, 0xe8, 0x6f, 0x81, 0x73, 0xac, 0x9f, 0x43, 0xc6, 0xb1, 0x81, 0x73, 0x36, 0x4a, 0x1e, 0x57, - 0x2b, 0xd9, 0x7a, 0x06, 0x4f, 0xb6, 0x37, 0x11, 0xe6, 0xc6, 0x90, 0x41, 0xa4, 0xa6, 0xb7, 0x3a, - 0x7e, 0xc9, 0xce, 0x50, 0x2f, 0x8c, 0x07, 0xdb, 0x9a, 0x19, 0x38, 0x51, 0x35, 0x50, 0xf3, 0x09, - 0x33, 0x20, 0x62, 0x36, 0xa8, 0x6c, 0x8e, 0xf2, 0x56, 0x8c, 0x82, 0xd3, 0xfa, 0x16, 0xb5, 0x3d, - 0x74, 0x28, 0xdc, 0x2a, 0xe5, 0xae, 0xab, 0x77, 0xe5, 0x22, 0x3d, 0x69, 0x92, 0xb8, 0x56, 0xc5, - 0x06, 0x6b, 0x8b, 0xda, 0x46, 0x18, 0xaf, 0x93, 0xa2, 0x0c, 0xb5, 0xd3, 0xd6, 0x94, 0x4a, 0x29, - 0xfd, 0x4b, 0x48, 0x48, 0xa1, 0x73, 0xbc, 0xde, 0xcb, 0x3a, 0x35, 0x27, 0xd5, 0x40, 0x3a, 0x1d, - 0x5b, 0xe3, 0x62, 0xa5, 0x22, 0xa2, 0x7b, 0xb5, 0x6a, 0xf0, 0x5e, 0x0a, 0x96, 0x5c, 0xe8, 0x3b, - 0x41, 0x58, 0xa1, 0xd5, 0x11, 0x2c, 0x36, 0x9e, 0xe5, 0x2b, 0xc9, 0xfb, 0x1b, 0x37, 0xd0, 0x8e, - 0xcf, 0xc2, 0x01, 0x6f, 0xb6, 0x21, 0x96, 0x9c, 0x14, 0x2f, 0x76, 0x19, 0xb0, 0x6a, 0x9d, 0xef, - 0x69, 0xfd, 0xd0, 0x03, 0xd9, 0xeb, 0xb7, 0x86, 0x76, 0x20, 0xd3, 0x20, 0x6a, 0xd8, 0xcb, 0xc8, - 0x9e, 0xb7, 0x82, 0x28, 0xb2, 0x25, 0xa7, 0xa2, 0x6b, 0xfd, 0x60, 0xb0, 0x11, 0x09, 0x53, 0x5f, - 0x79, 0x6b, 0x72, 0xd7, 0x1b, 0x21, 0x73, 0xf7, 0x21, 0xd5, 0x5c, 0xc4, 0xe5, 0x52, 0x82, 0x73, - 0x1f, 0x9c, 0x95, 0xe1, 0x21, 0xbf, 0x12, 0x67, 0xc9, 0x41, 0xe5, 0x64, 0xc4, 0xd4, 0xf9, 0xa2, - 0x9b, 0x29, 0xdf, 0xe5, 0xa4, 0xf3, 0xb4, 0x69, 0x6d, 0x2c, 0xb0, 0x42, 0xe3, 0xe6, 0x25, 0xa7, - 0x8f, 0xf5, 0x12, 0x99, 0x8c, 0xbf, 0xbb, 0xd8, 0xa8, 0x23, 0xdb, 0x8e, 0xec, 0x37, 0xb0, 0x8e, - 0x4f, 0xed, 0x67, 0xaa, 0x3e, 0xf6, 0x24, 0x56, 0x96, 0xe3, 0xd4, 0xbc, 0x25, 0x0b, + 0xdb, 0xa3, 0x13, 0x30, 0x79, 0xa3, 0xcd, 0x9e, 0x48, 0xf4, 0x8f, 0x06, 0x37, 0x1b, 0x45, 0xdd, 0x60, 0xa9, 0x2e, + 0x29, 0x26, 0xbf, 0xc1, 0x96, 0x5e, 0x07, 0x93, 0x9d, 0xf2, 0x2d, 0x3e, 0xa3, 0x3a, 0xff, 0xd5, 0x6d, 0xf5, 0x85, + 0x30, 0x28, 0xe1, 0x46, 0xfd, 0x56, 0xd1, 0x20, 0x41, 0x33, 0x94, 0x88, 0x0c, 0x27, 0x23, 0xa0, 0x61, 0x38, 0x60, + 0xdb, 0x86, 0xd6, 0xce, 0x2c, 0xcd, 0x40, 0x39, 0x55, 0x23, 0x39, 0x12, 0xb9, 0xfd, 0xc2, 0x8d, 0x58, 0x0a, 0x37, + 0x33, 0x42, 0x5c, 0x61, 0xd7, 0xc8, 0xa0, 0x11, 0x66, 0xe2, 0x45, 0xba, 0x41, 0x39, 0xea, 0x85, 0x2a, 0x6e, 0x7a, + 0xb3, 0xe7, 0x27, 0x75, 0xfc, 0x4d, 0xc0, 0xfb, 0x0d, 0xe8, 0x67, 0x90, 0xb3, 0x3a, 0x40, 0xf0, 0x15, 0x8a, 0x15, + 0x8e, 0x2c, 0x99, 0x0f, 0x1c, 0xbd, 0xd2, 0x08, 0x66, 0x51, 0x9e, 0x6a, 0xe6, 0x2c, 0xf7, 0x1f, 0xd0, 0xc0, 0x8e, + 0x89, 0x76, 0x64, 0x18, 0x58, 0xa1, 0x94, 0xbd, 0xce, 0xb1, 0x2d, 0x96, 0xab, 0x53, 0xcf, 0xf8, 0xbf, 0xd0, 0xc9, + 0xc0, 0x2e, 0xe6, 0xa4, 0x0b, 0x50, 0x31, 0x4a, 0x4e, 0xd8, 0x47, 0x4b, 0xaf, 0xb8, 0x21, 0x78, 0xbf, 0x09, 0xac, + 0x7f, 0x2d, 0x2d, 0x88, 0xf6, 0xd8, 0xc7, 0x45, 0x33, 0x9f, 0xac, 0x69, 0xf5, 0x88, 0x9d, 0x5c, 0x6e, 0xc9, 0xd0, + 0xca, 0x8c, 0xbc, 0xa9, 0xd6, 0x07, 0x36, 0xed, 0x40, 0x95, 0x8a, 0xc1, 0x3f, 0x04, 0x41, 0xb3, 0xc9, 0xb3, 0x18, + 0x9d, 0x33, 0x1b, 0x04, 0x55, 0xcd, 0x41, 0xdf, 0x19, 0xe1, 0xcd, 0xa0, 0xa4, 0x35, 0x6e, 0xb7, 0x0a, 0xf3, 0xec, + 0x48, 0x10, 0x4f, 0x28, 0xc6, 0x35, 0xf3, 0x9b, 0xa2, 0xd5, 0xf7, 0x58, 0x03, 0x4d, 0x9a, 0x16, 0x34, 0xfb, 0x96, + 0x0c, 0xd5, 0x3a, 0xae, 0x52, 0x1b, 0x2f, 0x1f, 0x1f, 0x31, 0xb2, 0xd9, 0x14, 0x3b, 0x73, 0x0f, 0xe3, 0x04, 0xe0, + 0xa5, 0x52, 0x89, 0x68, 0xba, 0x0f, 0x99, 0x9d, 0x24, 0xa6, 0xf3, 0xe8, 0x9f, 0xcc, 0xd2, 0x44, 0x9f, 0x08, 0x8b, + 0x0a, 0x24, 0x89, 0xf7, 0xc9, 0x07, 0x0d, 0x25, 0x07, 0xed, 0x3e, 0x75, 0x21, 0x19, 0x65, 0xdc, 0x98, 0x41, 0x9d, + 0x05, 0x12, 0x18, 0x88, 0x86, 0x16, 0x43, 0x49, 0x29, 0xf2, 0xe8, 0x26, 0x16, 0x1e, 0xce, 0xcd, 0x32, 0xe7, 0x36, + 0x74, 0x51, 0x27, 0xfd, 0xa2, 0xa9, 0x62, 0x57, 0x60, 0x28, 0xe4, 0x64, 0x02, 0x06, 0x6b, 0xff, 0x01, 0xab, 0xc5, + 0x1c, 0x25, 0x98, 0x07, 0xe1, 0x40, 0xad, 0x19, 0xb7, 0x68, 0x66, 0x12, 0x4e, 0x80, 0xbc, 0x83, 0xd2, 0xde, 0xcb, + 0x7e, 0xc2, 0x32, 0xc7, 0xb8, 0x4d, 0xd6, 0x7d, 0xdd, 0x63, 0xa9, 0x95, 0x45, 0xc1, 0x90, 0xc7, 0x99, 0x3c, 0x0a, + 0x24, 0x62, 0xfc, 0x24, 0x15, 0xdb, 0xd3, 0xd2, 0x9b, 0x5d, 0x78, 0x04, 0x78, 0xd5, 0x40, 0x1d, 0xe3, 0x4e, 0xe8, + 0x30, 0x9f, 0x56, 0x91, 0x71, 0x00, 0x86, 0x2c, 0x6a, 0xb2, 0x78, 0xec, 0x70, 0xd9, 0x71, 0xe6, 0xaa, 0xb1, 0xad, + 0x18, 0xf9, 0xa6, 0x84, 0xb7, 0x4b, 0x5f, 0x32, 0xb8, 0xe3, 0xc7, 0x84, 0xef, 0x37, 0xfe, 0xae, 0x99, 0xb5, 0xf2, + 0x34, 0x84, 0x82, 0x4a, 0xb3, 0xd0, 0x7c, 0x5e, 0x25, 0x71, 0x89, 0x8b, 0x7d, 0x6f, 0x5f, 0x96, 0x7a, 0x1d, 0x84, + 0x96, 0x56, 0x34, 0x30, 0xce, 0x09, 0xd5, 0x00, 0xa8, 0xac, 0x15, 0x72, 0x21, 0xc4, 0x71, 0x57, 0xe5, 0x2a, 0x3d, + 0xdf, 0x82, 0xb8, 0xb8, 0x63, 0xdc, 0x3f, 0x2e, 0x99, 0x6c, 0xc3, 0xe3, 0xfd, 0x92, 0xe0, 0x26, 0xe1, 0x27, 0xb8, + 0x04, 0x71, 0xb0, 0xa8, 0xd1, 0xdf, 0x7e, 0x24, 0x23, 0xb9, 0x82, 0x01, 0x77, 0xdc, 0x8f, 0x77, 0x54, 0xe6, 0x93, + 0xc8, 0x6c, 0x66, 0x87, 0xb7, 0xaa, 0x9d, 0x66, 0xd4, 0xc6, 0x2f, 0x5e, 0x9e, 0xe1, 0xcf, 0xdb, 0xb2, 0x74, 0x0e, + 0xea, 0xa5, 0xe0, 0xf7, 0x00, 0xf1, 0x76, 0xf7, 0x45, 0x2c, 0xf8, 0xa9, 0x3b, 0xd9, 0x81, 0x59, 0x52, 0x0f, 0xfe, + 0xd9, 0x28, 0x02, 0x59, 0x82, 0x39, 0x51, 0x6e, 0xb9, 0xac, 0xf9, 0x6a, 0x48, 0x73, 0x6f, 0x2c, 0x4d, 0x7b, 0xc0, + 0xbf, 0xbe, 0x69, 0xae, 0x0e, 0xdc, 0x8b, 0xe6, 0xd8, 0x9f, 0x66, 0x30, 0x1e, 0x45, 0x1d, 0x85, 0x23, 0xeb, 0xa8, + 0x02, 0xb5, 0xba, 0xc2, 0xfd, 0xa1, 0xff, 0xc5, 0x55, 0x2b, 0xa0, 0xf7, 0x5b, 0x24, 0xee, 0x81, 0xd8, 0xe1, 0xb8, + 0x02, 0x06, 0x85, 0x6e, 0x41, 0x5a, 0xb8, 0x07, 0xff, 0x65, 0xdb, 0xb4, 0x59, 0x89, 0x71, 0x95, 0xd5, 0x0c, 0x2a, + 0x67, 0x4d, 0x57, 0xfd, 0x4a, 0xe8, 0x07, 0x02, 0x42, 0x20, 0xd9, 0xf1, 0xc6, 0xd5, 0x4c, 0x53, 0xb0, 0x32, 0x68, + 0xc0, 0xdc, 0xd7, 0x5d, 0x8f, 0xec, 0x24, 0x29, 0x00, 0x4f, 0x46, 0x8d, 0xd2, 0x99, 0xb2, 0xf4, 0x06, 0x99, 0x9a, + 0xa6, 0x31, 0xf1, 0x49, 0x16, 0xfe, 0x94, 0xbb, 0x8e, 0x15, 0x55, 0x06, 0x93, 0x16, 0xa3, 0x2d, 0x10, 0xb7, 0xb1, + 0xcf, 0x61, 0x78, 0xaf, 0x93, 0x66, 0x5a, 0x75, 0x5e, 0x97, 0xc0, 0x97, 0x4c, 0xba, 0xa9, 0x50, 0xac, 0x1b, 0xd6, + 0x92, 0x2a, 0xac, 0x0a, 0x21, 0x12, 0x9e, 0x4a, 0xf0, 0x40, 0x39, 0x4b, 0xe5, 0x78, 0x88, 0x86, 0x17, 0xb9, 0xeb, + 0xa0, 0x33, 0x8a, 0x9a, 0xfc, 0x7c, 0x91, 0x16, 0xd7, 0x52, 0xec, 0x05, 0x7e, 0x4e, 0x90, 0x78, 0x5e, 0x45, 0x4a, + 0xdd, 0xf6, 0xf4, 0x2e, 0x68, 0xf7, 0x8e, 0xfc, 0x60, 0x95, 0xaa, 0x6a, 0x07, 0x9c, 0xea, 0xce, 0xc1, 0xd9, 0x55, + 0x3a, 0x78, 0x54, 0x9a, 0x2a, 0x5f, 0x47, 0x87, 0x18, 0x4a, 0x8c, 0x6c, 0x34, 0xf5, 0xb8, 0xe2, 0x84, 0x36, 0xef, + 0x0d, 0x2e, 0x9d, 0x42, 0xd9, 0xff, 0x56, 0xe2, 0x87, 0x0b, 0x2f, 0x4d, 0x0e, 0xc0, 0x60, 0x35, 0x06, 0x9f, 0x61, + 0x9e, 0x4e, 0x7b, 0x49, 0x41, 0xb4, 0xfa, 0x04, 0x10, 0xbd, 0xf6, 0xad, 0x02, 0xd9, 0x7c, 0xba, 0x06, 0x68, 0xbb, + 0xa7, 0xa6, 0x8a, 0xab, 0xab, 0xb1, 0x2d, 0x69, 0x2a, 0xf1, 0xc6, 0x7b, 0x1b, 0x71, 0xb9, 0xd0, 0x91, 0x82, 0x6f, + 0xa8, 0x3c, 0xe1, 0xa3, 0x23, 0x3d, 0x4e, 0x48, 0x74, 0xe5, 0xc9, 0xc5, 0x95, 0x31, 0xad, 0xe7, 0xa9, 0xdb, 0x35, + 0xcd, 0x02, 0x08, 0x2c, 0x29, 0x5f, 0xf9, 0x17, 0x86, 0x69, 0x8f, 0x13, 0xd1, 0xca, 0x83, 0xfc, 0xac, 0x55, 0xcf, + 0x5a, 0xe6, 0x45, 0xaf, 0xe5, 0xbb, 0xe7, 0xb5, 0x53, 0x4e, 0xf0, 0x63, 0xfc, 0x9a, 0x49, 0xf6, 0x45, 0x93, 0xc6, + 0xbf, 0xd5, 0xb3, 0x25, 0xe2, 0x93, 0xb0, 0xa6, 0xa7, 0x14, 0x80, 0x6d, 0xb2, 0x03, 0x15, 0x6a, 0xad, 0xe8, 0x25, + 0xf1, 0x80, 0xd4, 0xba, 0x9a, 0x88, 0xbc, 0x56, 0x14, 0x7a, 0x4d, 0xad, 0xc3, 0x24, 0x3f, 0x4d, 0x35, 0x8b, 0xf6, + 0x59, 0x5b, 0xfd, 0xc9, 0x32, 0x1d, 0xf5, 0xa5, 0x53, 0xb5, 0xfb, 0xba, 0x83, 0x29, 0x0b, 0x9c, 0x62, 0x9b, 0x56, + 0x4b, 0x44, 0xbc, 0xcc, 0x19, 0x59, 0x7c, 0x0b, 0x74, 0xd9, 0x04, 0x28, 0xb3, 0x67, 0xab, 0x82, 0x36, 0x39, 0x55, + 0x5f, 0x7c, 0xed, 0x84, 0xc1, 0x16, 0xd3, 0x9e, 0x9c, 0x90, 0x9d, 0x55, 0xbc, 0x3e, 0xb9, 0x63, 0x12, 0xf2, 0x26, + 0x6d, 0xd7, 0xcc, 0x4f, 0x01, 0xa2, 0x0b, 0xd9, 0x66, 0x60, 0xad, 0xed, 0x2e, 0xbd, 0xbe, 0x28, 0x5f, 0x4a, 0x33, + 0xc8, 0xe8, 0xd4, 0xa6, 0x23, 0x8a, 0xfd, 0x66, 0xf5, 0x28, 0x90, 0x81, 0x27, 0xa9, 0x44, 0x93, 0x68, 0x57, 0x44, + 0x5e, 0xba, 0x90, 0x12, 0x03, 0x15, 0x2f, 0x69, 0x80, 0x55, 0xe8, 0x32, 0x63, 0x88, 0x30, 0x85, 0x50, 0x9b, 0xb6, + 0xbc, 0xbb, 0xc6, 0xfe, 0xa2, 0xe7, 0x32, 0x9d, 0x3d, 0x7d, 0xe2, 0x31, 0x93, 0xa6, 0x4e, 0xa0, 0xdc, 0x11, 0x44, + 0xd2, 0x93, 0x32, 0x94, 0x1e, 0xc6, 0x4c, 0x28, 0xde, 0xa2, 0xa6, 0x0d, 0x14, 0x02, 0x74, 0x8a, 0x84, 0x2a, 0x03, + 0x67, 0x35, 0x1d, 0x66, 0x3e, 0xe9, 0x68, 0x4a, 0xb2, 0x92, 0x1a, 0x69, 0x48, 0xbd, 0x23, 0xfd, 0x70, 0x5a, 0xfd, + 0xfe, 0x74, 0x39, 0xc5, 0xfa, 0x11, 0xac, 0x04, 0xc9, 0x94, 0xfc, 0x12, 0x2e, 0x06, 0x04, 0x61, 0x8e, 0x32, 0xf4, + 0xf8, 0x3b, 0xd1, 0xd8, 0x09, 0xb3, 0xe4, 0xac, 0x0f, 0x3e, 0x92, 0xf7, 0x75, 0x0b, 0x32, 0x9b, 0xd4, 0x8a, 0x13, + 0x99, 0x6a, 0x26, 0x77, 0x9f, 0x34, 0x08, 0xa8, 0xeb, 0xb3, 0x3e, 0x2a, 0x5b, 0x4a, 0x44, 0xf9, 0x21, 0x89, 0x2a, + 0x09, 0x9c, 0xc7, 0x0d, 0x2a, 0xd8, 0xd6, 0x27, 0x30, 0x25, 0x39, 0x84, 0x14, 0x11, 0x47, 0xff, 0x60, 0xe4, 0x7c, + 0xc3, 0x41, 0xfd, 0xd5, 0x34, 0xdd, 0xb1, 0x1c, 0xf2, 0xeb, 0xb1, 0x67, 0x04, 0xfa, 0xfd, 0x65, 0x5b, 0x20, 0x6e, + 0x28, 0x75, 0xa9, 0x74, 0x8e, 0xc4, 0x2f, 0xf7, 0xb2, 0xf5, 0x9f, 0x13, 0x44, 0xff, 0xb0, 0xf0, 0x68, 0xb0, 0x69, + 0x15, 0xa6, 0x16, 0xa8, 0xac, 0xc3, 0x06, 0x14, 0x8e, 0x51, 0x99, 0xa9, 0x4c, 0x19, 0xd1, 0x25, 0x34, 0xb5, 0x79, + 0xc2, 0xa7, 0xbf, 0xd8, 0x3d, 0x2d, 0x4c, 0x33, 0xac, 0x1b, 0x6c, 0xaf, 0x10, 0x42, 0x41, 0x14, 0x02, 0xe6, 0x87, + 0x2b, 0xe9, 0xec, 0xc6, 0xb1, 0xeb, 0x97, 0xd4, 0x35, 0x49, 0x97, 0xfc, 0xe2, 0x73, 0xf9, 0x98, 0x46, 0x7c, 0xf6, + 0x17, 0x2d, 0xb5, 0x43, 0x07, 0x8b, 0x19, 0x95, 0x9b, 0x65, 0xd3, 0x05, 0x7e, 0xb0, 0x68, 0x0d, 0x6e, 0x4b, 0x60, + 0xad, 0x5c, 0x47, 0x6e, 0x37, 0xfd, 0x3f, 0x60, 0x43, 0xda, 0xb2, 0x34, 0x00, 0xd6, 0x9c, 0x6d, 0x46, 0x7f, 0x41, + 0xe2, 0xc1, 0x1a, 0xd0, 0x53, 0x72, 0x81, 0x0b, 0x3f, 0x77, 0xe1, 0xbc, 0xcc, 0x09, 0x0f, 0xa1, 0x1d, 0x73, 0x8c, + 0xac, 0xa4, 0x48, 0x90, 0x80, 0xa8, 0x50, 0x63, 0x6a, 0xb7, 0x76, 0x91, 0x91, 0x2f, 0x1a, 0x5e, 0x83, 0x80, 0xe6, + 0xae, 0x66, 0x77, 0x44, 0xe0, 0x0f, 0x14, 0x70, 0xc9, 0xd3, 0x91, 0xe8, 0xd2, 0xc4, 0x89, 0xa8, 0x45, 0xc0, 0x3d, + 0xbd, 0x09, 0x58, 0xe0, 0xcd, 0xe6, 0x5c, 0x9e, 0x02, 0x94, 0xd2, 0xbe, 0xdf, 0x94, 0x35, 0xf7, 0x67, 0x96, 0x75, + 0x88, 0x08, 0x59, 0xd9, 0x19, 0x21, 0xda, 0xd0, 0xa2, 0x74, 0x2d, 0x22, 0x87, 0x37, 0x27, 0x6e, 0x58, 0xdc, 0x8e, + 0x9f, 0x50, 0xd5, 0x62, 0xf3, 0x4a, 0xa4, 0xb2, 0xfb, 0xf9, 0x3e, 0xd5, 0xda, 0x57, 0x56, 0x5c, 0xcb, 0x0e, 0xd1, + 0x62, 0x4f, 0xea, 0x42, 0x4a, 0x62, 0xb2, 0x4e, 0x1c, 0xd1, 0xcc, 0x24, 0x1b, 0xdc, 0xac, 0xd4, 0xb0, 0x2f, 0x5d, + 0x62, 0x87, 0x56, 0x3d, 0xe4, 0x03, 0xae, 0x4a, 0x7e, 0x7d, 0x05, 0xfe, 0x85, 0x33, 0xda, 0x5f, 0x36, 0xcb, 0x56, + 0xa1, 0x14, 0x80, 0x63, 0x26, 0x75, 0x3a, 0xc2, 0x1f, 0x9c, 0xdd, 0x8a, 0xd6, 0xf8, 0xa9, 0x1a, 0xf6, 0xc2, 0x57, + 0xe0, 0x7b, 0x80, 0x55, 0xd5, 0x12, 0xf1, 0xb4, 0xe7, 0x1d, 0x95, 0x68, 0x02, 0xf1, 0x19, 0xff, 0x74, 0x72, 0x32, + 0xdb, 0x6c, 0xc9, 0xa0, 0x2d, 0x69, 0xfc, 0xc0, 0xe8, 0x27, 0x11, 0xb8, 0xe0, 0xf5, 0x83, 0x60, 0x3f, 0xb4, 0x94, + 0xe5, 0x9d, 0xb8, 0xfd, 0xc5, 0x9e, 0x50, 0x76, 0x92, 0xc7, 0x33, 0x6b, 0xe0, 0x7e, 0x9b, 0x2c, 0x3b, 0x27, 0xd8, + 0xa6, 0xda, 0xb3, 0xa1, 0x45, 0xef, 0x3b, 0x3d, 0x76, 0x1d, 0x5a, 0x43, 0xa4, 0xe1, 0x82, 0x5f, 0x7d, 0x0b, 0x10, + 0x28, 0x1c, 0xb9, 0x8f, 0x2b, 0xcd, 0xf9, 0xc5, 0x93, 0xe3, 0x65, 0xa5, 0x5b, 0x50, 0xa9, 0x07, 0x16, 0xb3, 0x45, + 0x4a, 0x69, 0xfc, 0x58, 0x12, 0x7b, 0x58, 0x34, 0x9f, 0x6f, 0x5e, 0x7a, 0xc2, 0x9f, 0x7b, 0xcf, 0x62, 0x62, 0x6c, + 0x1e, 0x7d, 0xd9, 0x72, 0xca, 0x98, 0x1e, 0xd4, 0xe5, 0xc7, 0x98, 0x27, 0xe3, 0x9f, 0xc5, 0x3c, 0x90, 0x9e, 0x26, + 0xed, 0x7e, 0x38, 0x2b, 0xcf, 0xc4, 0x99, 0xf5, 0xb4, 0x78, 0x48, 0x7c, 0x08, 0x99, 0xbc, 0x80, 0x47, 0xb1, 0xc5, + 0x58, 0x60, 0x17, 0x84, 0x11, 0xf8, 0x70, 0xa1, 0x26, 0x95, 0x94, 0x77, 0xf4, 0x8d, 0x1d, 0x47, 0x96, 0xdf, 0x95, + 0x1d, 0x97, 0x37, 0x5a, 0x12, 0xfb, 0x3f, 0xcd, 0xa0, 0xfb, 0xac, 0x61, 0x62, 0x1f, 0xee, 0xdc, 0x6d, 0x2c, 0x45, + 0x5f, 0xc0, 0x80, 0x7d, 0x99, 0x62, 0x38, 0xf7, 0x6d, 0x88, 0xd5, 0xe2, 0x24, 0x9d, 0xed, 0xa7, 0xd5, 0xe7, 0x1c, + 0x8a, 0x75, 0x9b, 0x67, 0x0c, 0x64, 0xfe, 0xe7, 0xe2, 0xe9, 0xa0, 0x94, 0x60, 0x26, 0x46, 0xd8, 0xc9, 0x59, 0x43, + 0x17, 0x85, 0x07, 0x32, 0x8b, 0x0c, 0x5a, 0x1e, 0x35, 0x48, 0x46, 0xe5, 0x44, 0x5b, 0xc7, 0x07, 0xcd, 0x30, 0x97, + 0x80, 0xfa, 0xf9, 0xeb, 0x0d, 0xaf, 0xaf, 0x3e, 0xbe, 0x27, 0x43, 0x8e, 0x4a, 0xf2, 0x60, 0xeb, 0x2b, 0x4d, 0x11, + 0x9a, 0xe1, 0xd7, 0x59, 0x78, 0x29, 0x26, 0x3e, 0x9b, 0xda, 0x61, 0x15, 0xab, 0xe8, 0x6f, 0x81, 0x73, 0xac, 0x9f, + 0x43, 0xc6, 0xb1, 0x81, 0x73, 0x36, 0x4a, 0x1e, 0x57, 0x2b, 0xd9, 0x7a, 0x06, 0x4f, 0xb6, 0x37, 0x11, 0xe6, 0xc6, + 0x90, 0x41, 0xa4, 0xa6, 0xb7, 0x3a, 0x7e, 0xc9, 0xce, 0x50, 0x2f, 0x8c, 0x07, 0xdb, 0x9a, 0x19, 0x38, 0x51, 0x35, + 0x50, 0xf3, 0x09, 0x33, 0x20, 0x62, 0x36, 0xa8, 0x6c, 0x8e, 0xf2, 0x56, 0x8c, 0x82, 0xd3, 0xfa, 0x16, 0xb5, 0x3d, + 0x74, 0x28, 0xdc, 0x2a, 0xe5, 0xae, 0xab, 0x77, 0xe5, 0x22, 0x3d, 0x69, 0x92, 0xb8, 0x56, 0xc5, 0x06, 0x6b, 0x8b, + 0xda, 0x46, 0x18, 0xaf, 0x93, 0xa2, 0x0c, 0xb5, 0xd3, 0xd6, 0x94, 0x4a, 0x29, 0xfd, 0x4b, 0x48, 0x48, 0xa1, 0x73, + 0xbc, 0xde, 0xcb, 0x3a, 0x35, 0x27, 0xd5, 0x40, 0x3a, 0x1d, 0x5b, 0xe3, 0x62, 0xa5, 0x22, 0xa2, 0x7b, 0xb5, 0x6a, + 0xf0, 0x5e, 0x0a, 0x96, 0x5c, 0xe8, 0x3b, 0x41, 0x58, 0xa1, 0xd5, 0x11, 0x2c, 0x36, 0x9e, 0xe5, 0x2b, 0xc9, 0xfb, + 0x1b, 0x37, 0xd0, 0x8e, 0xcf, 0xc2, 0x01, 0x6f, 0xb6, 0x21, 0x96, 0x9c, 0x14, 0x2f, 0x76, 0x19, 0xb0, 0x6a, 0x9d, + 0xef, 0x69, 0xfd, 0xd0, 0x03, 0xd9, 0xeb, 0xb7, 0x86, 0x76, 0x20, 0xd3, 0x20, 0x6a, 0xd8, 0xcb, 0xc8, 0x9e, 0xb7, + 0x82, 0x28, 0xb2, 0x25, 0xa7, 0xa2, 0x6b, 0xfd, 0x60, 0xb0, 0x11, 0x09, 0x53, 0x5f, 0x79, 0x6b, 0x72, 0xd7, 0x1b, + 0x21, 0x73, 0xf7, 0x21, 0xd5, 0x5c, 0xc4, 0xe5, 0x52, 0x82, 0x73, 0x1f, 0x9c, 0x95, 0xe1, 0x21, 0xbf, 0x12, 0x67, + 0xc9, 0x41, 0xe5, 0x64, 0xc4, 0xd4, 0xf9, 0xa2, 0x9b, 0x29, 0xdf, 0xe5, 0xa4, 0xf3, 0xb4, 0x69, 0x6d, 0x2c, 0xb0, + 0x42, 0xe3, 0xe6, 0x25, 0xa7, 0x8f, 0xf5, 0x12, 0x99, 0x8c, 0xbf, 0xbb, 0xd8, 0xa8, 0x23, 0xdb, 0x8e, 0xec, 0x37, + 0xb0, 0x8e, 0x4f, 0xed, 0x67, 0xaa, 0x3e, 0xf6, 0x24, 0x56, 0x96, 0xe3, 0xd4, 0xbc, 0x25, 0x0b, 0x56, // encrypted new license info - 0xed, 0xe8, 0xbf, 0xd6, 0x13, 0xa0, 0xf5, 0x80, 0x4a, 0xe5, 0xff, 0x85, 0x16, 0xfa, 0xcb, - 0x1f, // mac data + 0xed, 0xe8, 0xbf, 0xd6, 0x13, 0xa0, 0xf5, 0x80, 0x4a, 0xe5, 0xff, 0x85, 0x16, 0xfa, 0xcb, 0x1f, // mac data ]; const MAC_DATA: [u8; 16] = [ @@ -151,137 +130,117 @@ const MAC_DATA: [u8; 16] = [ const NEW_LICENSE_INFORMATION_BUFFER: [u8; 2031] = [ 0x00, 0x00, 0x06, 0x00, // version 0x0e, 0x00, 0x00, 0x00, // scope length - 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, - 0x00, // scope + 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x00, // scope 0x2c, 0x00, 0x00, 0x00, // company name length 26 - 0x4d, 0x00, 0x69, 0x00, 0x63, 0x00, 0x72, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x6f, 0x00, 0x66, 0x00, - 0x74, 0x00, 0x20, 0x00, 0x43, 0x00, 0x6f, 0x00, 0x72, 0x00, 0x70, 0x00, 0x6f, 0x00, 0x72, 0x00, - 0x61, 0x00, 0x74, 0x00, 0x69, 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x00, 0x00, // company name 44 + 0x4d, 0x00, 0x69, 0x00, 0x63, 0x00, 0x72, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x6f, 0x00, 0x66, 0x00, 0x74, 0x00, 0x20, + 0x00, 0x43, 0x00, 0x6f, 0x00, 0x72, 0x00, 0x70, 0x00, 0x6f, 0x00, 0x72, 0x00, 0x61, 0x00, 0x74, 0x00, 0x69, 0x00, + 0x6f, 0x00, 0x6e, 0x00, 0x00, 0x00, // company name 44 0x08, 0x00, 0x00, 0x00, // product id length 0x41, 0x00, 0x30, 0x00, 0x32, 0x00, 0x00, 0x00, // product id 0x99, 0x07, 0x00, 0x00, // license info length - 0x30, 0x82, 0x07, 0x95, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x07, 0x02, 0xa0, - 0x82, 0x07, 0x86, 0x30, 0x82, 0x07, 0x82, 0x02, 0x01, 0x01, 0x31, 0x00, 0x30, 0x0b, 0x06, 0x09, - 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x07, 0x01, 0xa0, 0x82, 0x07, 0x6a, 0x30, 0x82, 0x02, - 0xf1, 0x30, 0x82, 0x01, 0xdd, 0xa0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x08, 0x01, 0x9e, 0x27, 0x4d, - 0x68, 0xac, 0xed, 0x20, 0x30, 0x09, 0x06, 0x05, 0x2b, 0x0e, 0x03, 0x02, 0x1d, 0x05, 0x00, 0x30, - 0x32, 0x31, 0x30, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x03, 0x1e, 0x0c, 0x00, 0x52, 0x00, 0x4f, - 0x00, 0x44, 0x00, 0x45, 0x00, 0x4e, 0x00, 0x54, 0x30, 0x19, 0x06, 0x03, 0x55, 0x04, 0x07, 0x1e, - 0x12, 0x00, 0x57, 0x00, 0x4f, 0x00, 0x52, 0x00, 0x4b, 0x00, 0x47, 0x00, 0x52, 0x00, 0x4f, 0x00, - 0x55, 0x00, 0x50, 0x30, 0x1e, 0x17, 0x0d, 0x37, 0x30, 0x30, 0x35, 0x33, 0x30, 0x31, 0x30, 0x33, - 0x36, 0x31, 0x38, 0x5a, 0x17, 0x0d, 0x34, 0x39, 0x30, 0x35, 0x33, 0x30, 0x31, 0x30, 0x33, 0x36, - 0x31, 0x38, 0x5a, 0x30, 0x32, 0x31, 0x30, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x03, 0x1e, 0x0c, - 0x00, 0x52, 0x00, 0x4f, 0x00, 0x44, 0x00, 0x45, 0x00, 0x4e, 0x00, 0x54, 0x30, 0x19, 0x06, 0x03, - 0x55, 0x04, 0x07, 0x1e, 0x12, 0x00, 0x57, 0x00, 0x4f, 0x00, 0x52, 0x00, 0x4b, 0x00, 0x47, 0x00, - 0x52, 0x00, 0x4f, 0x00, 0x55, 0x00, 0x50, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, - 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, - 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0x88, 0xad, 0x7c, 0x8f, 0x8b, 0x82, 0x76, 0x5a, - 0xbd, 0x8f, 0x6f, 0x62, 0x18, 0xe1, 0xd9, 0xaa, 0x41, 0xfd, 0xed, 0x68, 0x01, 0xc6, 0x34, 0x35, - 0xb0, 0x29, 0x04, 0xca, 0x4a, 0x4a, 0x1c, 0x7e, 0x80, 0x14, 0xf7, 0x8e, 0x77, 0xb8, 0x25, 0xff, - 0x16, 0x47, 0x6f, 0xbd, 0xe2, 0x34, 0x3d, 0x2e, 0x02, 0xb9, 0x53, 0xe4, 0x33, 0x75, 0xad, 0x73, - 0x28, 0x80, 0xa0, 0x4d, 0xfc, 0x6c, 0xc0, 0x22, 0x53, 0x1b, 0x2c, 0xf8, 0xf5, 0x01, 0x60, 0x19, - 0x7e, 0x79, 0x19, 0x39, 0x8d, 0xb5, 0xce, 0x39, 0x58, 0xdd, 0x55, 0x24, 0x3b, 0x55, 0x7b, 0x43, - 0xc1, 0x7f, 0x14, 0x2f, 0xb0, 0x64, 0x3a, 0x54, 0x95, 0x2b, 0x88, 0x49, 0x0c, 0x61, 0x2d, 0xac, - 0xf8, 0x45, 0xf5, 0xda, 0x88, 0x18, 0x5f, 0xae, 0x42, 0xf8, 0x75, 0xc7, 0x26, 0x6d, 0xb5, 0xbb, - 0x39, 0x6f, 0xcc, 0x55, 0x1b, 0x32, 0x11, 0x38, 0x8d, 0xe4, 0xe9, 0x44, 0x84, 0x11, 0x36, 0xa2, - 0x61, 0x76, 0xaa, 0x4c, 0xb4, 0xe3, 0x55, 0x0f, 0xe4, 0x77, 0x8e, 0xde, 0xe3, 0xa9, 0xea, 0xb7, - 0x41, 0x94, 0x00, 0x58, 0xaa, 0xc9, 0x34, 0xa2, 0x98, 0xc6, 0x01, 0x1a, 0x76, 0x14, 0x01, 0xa8, - 0xdc, 0x30, 0x7c, 0x77, 0x5a, 0x20, 0x71, 0x5a, 0xa2, 0x3f, 0xaf, 0x13, 0x7e, 0xe8, 0xfd, 0x84, - 0xa2, 0x5b, 0xcf, 0x25, 0xe9, 0xc7, 0x8f, 0xa8, 0xf2, 0x8b, 0x84, 0xc7, 0x04, 0x5e, 0x53, 0x73, - 0x4e, 0x0e, 0x89, 0xa3, 0x3c, 0xe7, 0x68, 0x5c, 0x24, 0xb7, 0x80, 0x53, 0x3c, 0x54, 0xc8, 0xc1, - 0x53, 0xaa, 0x71, 0x71, 0x3d, 0x36, 0x15, 0xd6, 0x6a, 0x9d, 0x7d, 0xde, 0xae, 0xf9, 0xe6, 0xaf, - 0x57, 0xae, 0xb9, 0x01, 0x96, 0x5d, 0xe0, 0x4d, 0xcd, 0xed, 0xc8, 0xd7, 0xf3, 0x01, 0x03, 0x38, - 0x10, 0xbe, 0x7c, 0x42, 0x67, 0x01, 0xa7, 0x23, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x13, 0x30, - 0x11, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, - 0x01, 0x00, 0x30, 0x09, 0x06, 0x05, 0x2b, 0x0e, 0x03, 0x02, 0x1d, 0x05, 0x00, 0x03, 0x82, 0x01, - 0x01, 0x00, 0x70, 0xdb, 0x21, 0x2b, 0x84, 0x9a, 0x7a, 0xc3, 0xb1, 0x68, 0xfa, 0xc0, 0x00, 0x8b, - 0x71, 0xab, 0x43, 0x9f, 0xb6, 0x7b, 0xb7, 0x1f, 0x20, 0x83, 0xac, 0x0a, 0xb5, 0x0e, 0xad, 0xb6, - 0x36, 0xef, 0x65, 0x17, 0x99, 0x86, 0x8a, 0x3d, 0xba, 0x0c, 0x53, 0x2e, 0xa3, 0x75, 0xa0, 0xf3, - 0x11, 0x3d, 0xe7, 0x65, 0x4b, 0xae, 0x3c, 0x42, 0x70, 0x11, 0xdc, 0xca, 0x83, 0xc0, 0xbe, 0x3e, - 0x97, 0x71, 0x84, 0x69, 0xd6, 0xa8, 0x27, 0x33, 0x9b, 0x3e, 0x17, 0x3c, 0xa0, 0x4c, 0x64, 0xca, - 0x20, 0x37, 0xa4, 0x11, 0xa9, 0x28, 0x8f, 0xb7, 0x18, 0x96, 0x69, 0x15, 0x0d, 0x74, 0x04, 0x75, - 0x2a, 0x00, 0xc7, 0xa6, 0x6a, 0xbe, 0xac, 0xb3, 0xf2, 0xfb, 0x06, 0x1b, 0x6c, 0x11, 0xbd, 0x96, - 0xe2, 0x34, 0x74, 0x5d, 0xf5, 0x98, 0x8f, 0x3a, 0x8d, 0x69, 0x08, 0x6f, 0x53, 0x12, 0x4e, 0x39, - 0x80, 0x90, 0xce, 0x8b, 0x5e, 0x88, 0x23, 0x2d, 0xfd, 0x55, 0xfd, 0x58, 0x3d, 0x39, 0x27, 0xb3, - 0x7c, 0x57, 0xfe, 0x3b, 0xab, 0x62, 0x26, 0x60, 0xe2, 0xd0, 0xc8, 0xf4, 0x02, 0x23, 0x16, 0xc3, - 0x52, 0x5d, 0x9f, 0x05, 0x49, 0xa2, 0x71, 0x2d, 0x6d, 0x5b, 0x90, 0xdd, 0xbf, 0xe5, 0xa9, 0x2e, - 0xf1, 0x85, 0x8a, 0x8a, 0xb8, 0xa9, 0x6b, 0x13, 0xcc, 0x8d, 0x4c, 0x22, 0x41, 0xad, 0x32, 0x1e, - 0x3b, 0x4b, 0x89, 0x37, 0x66, 0xdf, 0x1e, 0xa5, 0x4a, 0x03, 0x52, 0x1c, 0xd9, 0x19, 0x79, 0x22, - 0xd4, 0xa7, 0x3b, 0x47, 0x93, 0xa9, 0x0c, 0x03, 0x6a, 0xd8, 0x5f, 0xfc, 0xc0, 0x75, 0x33, 0xe5, - 0x26, 0xda, 0xf7, 0x4a, 0x77, 0xd8, 0xf1, 0x30, 0x80, 0x39, 0x38, 0x1e, 0x86, 0x1d, 0x97, 0x00, - 0x9c, 0x0e, 0xba, 0x00, 0x54, 0x8a, 0xc0, 0x12, 0x32, 0x6f, 0x3d, 0xc4, 0x15, 0xf9, 0x50, 0xf8, - 0xce, 0x95, 0x30, 0x82, 0x04, 0x71, 0x30, 0x82, 0x03, 0x5d, 0xa0, 0x03, 0x02, 0x01, 0x02, 0x02, - 0x05, 0x03, 0x00, 0x00, 0x00, 0x0f, 0x30, 0x09, 0x06, 0x05, 0x2b, 0x0e, 0x03, 0x02, 0x1d, 0x05, - 0x00, 0x30, 0x32, 0x31, 0x30, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x03, 0x1e, 0x0c, 0x00, 0x52, - 0x00, 0x4f, 0x00, 0x44, 0x00, 0x45, 0x00, 0x4e, 0x00, 0x54, 0x30, 0x19, 0x06, 0x03, 0x55, 0x04, - 0x07, 0x1e, 0x12, 0x00, 0x57, 0x00, 0x4f, 0x00, 0x52, 0x00, 0x4b, 0x00, 0x47, 0x00, 0x52, 0x00, - 0x4f, 0x00, 0x55, 0x00, 0x50, 0x30, 0x1e, 0x17, 0x0d, 0x30, 0x37, 0x30, 0x36, 0x32, 0x30, 0x31, - 0x34, 0x35, 0x31, 0x33, 0x35, 0x5a, 0x17, 0x0d, 0x30, 0x37, 0x30, 0x39, 0x31, 0x38, 0x31, 0x34, - 0x35, 0x31, 0x33, 0x35, 0x5a, 0x30, 0x7f, 0x31, 0x7d, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x03, - 0x1e, 0x0c, 0x00, 0x52, 0x00, 0x4f, 0x00, 0x44, 0x00, 0x45, 0x00, 0x4e, 0x00, 0x54, 0x30, 0x21, - 0x06, 0x03, 0x55, 0x04, 0x07, 0x1e, 0x1a, 0x00, 0x41, 0x00, 0x64, 0x00, 0x6d, 0x00, 0x69, 0x00, - 0x6e, 0x00, 0x69, 0x00, 0x73, 0x00, 0x74, 0x00, 0x72, 0x00, 0x61, 0x00, 0x74, 0x00, 0x6f, 0x00, - 0x72, 0x30, 0x43, 0x06, 0x03, 0x55, 0x04, 0x05, 0x1e, 0x3c, 0x00, 0x31, 0x00, 0x42, 0x00, 0x63, - 0x00, 0x4b, 0x00, 0x65, 0x00, 0x64, 0x00, 0x79, 0x00, 0x32, 0x00, 0x6b, 0x00, 0x72, 0x00, 0x4f, - 0x00, 0x34, 0x00, 0x2f, 0x00, 0x4d, 0x00, 0x43, 0x00, 0x44, 0x00, 0x4c, 0x00, 0x49, 0x00, 0x31, - 0x00, 0x41, 0x00, 0x48, 0x00, 0x5a, 0x00, 0x63, 0x00, 0x50, 0x00, 0x69, 0x00, 0x61, 0x00, 0x73, - 0x00, 0x3d, 0x00, 0x0d, 0x00, 0x0a, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, - 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, - 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0x88, 0xad, 0x7c, 0x8f, 0x8b, 0x82, 0x76, 0x5a, 0xbd, - 0x8f, 0x6f, 0x62, 0x18, 0xe1, 0xd9, 0xaa, 0x41, 0xfd, 0xed, 0x68, 0x01, 0xc6, 0x34, 0x35, 0xb0, - 0x29, 0x04, 0xca, 0x4a, 0x4a, 0x1c, 0x7e, 0x80, 0x14, 0xf7, 0x8e, 0x77, 0xb8, 0x25, 0xff, 0x16, - 0x47, 0x6f, 0xbd, 0xe2, 0x34, 0x3d, 0x2e, 0x02, 0xb9, 0x53, 0xe4, 0x33, 0x75, 0xad, 0x73, 0x28, - 0x80, 0xa0, 0x4d, 0xfc, 0x6c, 0xc0, 0x22, 0x53, 0x1b, 0x2c, 0xf8, 0xf5, 0x01, 0x60, 0x19, 0x7e, - 0x79, 0x19, 0x39, 0x8d, 0xb5, 0xce, 0x39, 0x58, 0xdd, 0x55, 0x24, 0x3b, 0x55, 0x7b, 0x43, 0xc1, - 0x7f, 0x14, 0x2f, 0xb0, 0x64, 0x3a, 0x54, 0x95, 0x2b, 0x88, 0x49, 0x0c, 0x61, 0x2d, 0xac, 0xf8, - 0x45, 0xf5, 0xda, 0x88, 0x18, 0x5f, 0xae, 0x42, 0xf8, 0x75, 0xc7, 0x26, 0x6d, 0xb5, 0xbb, 0x39, - 0x6f, 0xcc, 0x55, 0x1b, 0x32, 0x11, 0x38, 0x8d, 0xe4, 0xe9, 0x44, 0x84, 0x11, 0x36, 0xa2, 0x61, - 0x76, 0xaa, 0x4c, 0xb4, 0xe3, 0x55, 0x0f, 0xe4, 0x77, 0x8e, 0xde, 0xe3, 0xa9, 0xea, 0xb7, 0x41, - 0x94, 0x00, 0x58, 0xaa, 0xc9, 0x34, 0xa2, 0x98, 0xc6, 0x01, 0x1a, 0x76, 0x14, 0x01, 0xa8, 0xdc, - 0x30, 0x7c, 0x77, 0x5a, 0x20, 0x71, 0x5a, 0xa2, 0x3f, 0xaf, 0x13, 0x7e, 0xe8, 0xfd, 0x84, 0xa2, - 0x5b, 0xcf, 0x25, 0xe9, 0xc7, 0x8f, 0xa8, 0xf2, 0x8b, 0x84, 0xc7, 0x04, 0x5e, 0x53, 0x73, 0x4e, - 0x0e, 0x89, 0xa3, 0x3c, 0xe7, 0x68, 0x5c, 0x24, 0xb7, 0x80, 0x53, 0x3c, 0x54, 0xc8, 0xc1, 0x53, - 0xaa, 0x71, 0x71, 0x3d, 0x36, 0x15, 0xd6, 0x6a, 0x9d, 0x7d, 0xde, 0xae, 0xf9, 0xe6, 0xaf, 0x57, - 0xae, 0xb9, 0x01, 0x96, 0x5d, 0xe0, 0x4d, 0xcd, 0xed, 0xc8, 0xd7, 0xf3, 0x01, 0x03, 0x38, 0x10, - 0xbe, 0x7c, 0x42, 0x67, 0x01, 0xa7, 0x23, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x47, - 0x30, 0x82, 0x01, 0x43, 0x30, 0x14, 0x06, 0x09, 0x2b, 0x06, 0x01, 0x04, 0x01, 0x82, 0x37, 0x12, - 0x04, 0x01, 0x01, 0xff, 0x04, 0x04, 0x01, 0x00, 0x05, 0x00, 0x30, 0x3c, 0x06, 0x09, 0x2b, 0x06, - 0x01, 0x04, 0x01, 0x82, 0x37, 0x12, 0x02, 0x01, 0x01, 0xff, 0x04, 0x2c, 0x4d, 0x00, 0x69, 0x00, - 0x63, 0x00, 0x72, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x6f, 0x00, 0x66, 0x00, 0x74, 0x00, 0x20, 0x00, - 0x43, 0x00, 0x6f, 0x00, 0x72, 0x00, 0x70, 0x00, 0x6f, 0x00, 0x72, 0x00, 0x61, 0x00, 0x74, 0x00, - 0x69, 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x30, 0x56, 0x06, 0x09, 0x2b, 0x06, 0x01, 0x04, - 0x01, 0x82, 0x37, 0x12, 0x05, 0x01, 0x01, 0xff, 0x04, 0x46, 0x00, 0x30, 0x00, 0x00, 0x01, 0x00, - 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x1c, 0x00, 0x08, 0x00, 0x24, 0x00, - 0x16, 0x00, 0x3a, 0x00, 0x01, 0x00, 0x41, 0x00, 0x30, 0x00, 0x32, 0x00, 0x00, 0x00, 0x41, 0x00, - 0x30, 0x00, 0x32, 0x00, 0x2d, 0x00, 0x36, 0x00, 0x2e, 0x00, 0x30, 0x00, 0x30, 0x00, 0x2d, 0x00, - 0x53, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x80, 0x64, 0x80, 0x00, 0x00, 0x00, 0x00, - 0x30, 0x6e, 0x06, 0x09, 0x2b, 0x06, 0x01, 0x04, 0x01, 0x82, 0x37, 0x12, 0x06, 0x01, 0x01, 0xff, - 0x04, 0x5e, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x3e, 0x00, 0x52, 0x00, 0x4f, 0x00, - 0x44, 0x00, 0x45, 0x00, 0x4e, 0x00, 0x54, 0x00, 0x00, 0x00, 0x37, 0x00, 0x38, 0x00, 0x34, 0x00, - 0x34, 0x00, 0x30, 0x00, 0x2d, 0x00, 0x30, 0x00, 0x30, 0x00, 0x36, 0x00, 0x2d, 0x00, 0x35, 0x00, - 0x38, 0x00, 0x36, 0x00, 0x37, 0x00, 0x30, 0x00, 0x34, 0x00, 0x35, 0x00, 0x2d, 0x00, 0x37, 0x00, - 0x30, 0x00, 0x33, 0x00, 0x34, 0x00, 0x37, 0x00, 0x00, 0x00, 0x57, 0x00, 0x4f, 0x00, 0x52, 0x00, - 0x4b, 0x00, 0x47, 0x00, 0x52, 0x00, 0x4f, 0x00, 0x55, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x30, 0x25, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x01, 0x01, 0xff, 0x04, 0x1b, 0x30, 0x19, 0xa1, 0x10, - 0xa4, 0x0e, 0x52, 0x00, 0x4f, 0x00, 0x44, 0x00, 0x45, 0x00, 0x4e, 0x00, 0x54, 0x00, 0x00, 0x00, - 0x82, 0x05, 0x03, 0x00, 0x00, 0x00, 0x0f, 0x30, 0x09, 0x06, 0x05, 0x2b, 0x0e, 0x03, 0x02, 0x1d, - 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x13, 0x1b, 0xdc, 0x89, 0xd2, 0xfc, 0x54, 0x0c, 0xee, - 0x82, 0x45, 0x68, 0x6a, 0x72, 0xc3, 0x3e, 0x17, 0x73, 0x96, 0x53, 0x44, 0x39, 0x50, 0x0e, 0x0b, - 0x9f, 0x95, 0xd6, 0x2c, 0x6b, 0x53, 0x14, 0x9c, 0xe5, 0x55, 0xed, 0x65, 0xdf, 0x2a, 0xeb, 0x5c, - 0x64, 0x85, 0x70, 0x1f, 0xbc, 0x96, 0xcf, 0xa3, 0x76, 0xb1, 0x72, 0x3b, 0xe1, 0xf6, 0xad, 0xad, - 0xad, 0x2a, 0x14, 0xaf, 0xba, 0xd0, 0xd6, 0xd5, 0x6d, 0x55, 0xec, 0x1e, 0xc3, 0x4b, 0xba, 0x06, - 0x9c, 0x59, 0x78, 0x93, 0x64, 0x87, 0x4b, 0x03, 0xf9, 0xee, 0x4c, 0xdd, 0x36, 0x5b, 0xbd, 0xd4, - 0xe5, 0x4c, 0x4e, 0xda, 0x7b, 0xc1, 0xae, 0x23, 0x28, 0x9e, 0x77, 0x6f, 0x0f, 0xe6, 0x94, 0xfe, - 0x05, 0x22, 0x00, 0xab, 0x63, 0x5b, 0xe1, 0x82, 0x45, 0xa6, 0xec, 0x1f, 0x6f, 0x2c, 0x7b, 0x56, - 0xde, 0x78, 0x25, 0x7d, 0x10, 0x60, 0x0e, 0x53, 0x42, 0x4b, 0x6c, 0x7a, 0x6b, 0x5d, 0xc9, 0xd5, - 0xa6, 0xae, 0xc8, 0xc8, 0x52, 0x29, 0xd6, 0x42, 0x56, 0x02, 0xec, 0xf9, 0x23, 0xa8, 0x8c, 0x8d, - 0x89, 0xc9, 0x7c, 0x84, 0x07, 0xfc, 0x33, 0xe1, 0x1e, 0xea, 0xe2, 0x8f, 0x2b, 0xbe, 0x8f, 0xa9, - 0xd3, 0xd1, 0xe1, 0x5e, 0x0b, 0xdc, 0xb6, 0x43, 0x6e, 0x33, 0x0a, 0xf4, 0x2e, 0x9d, 0x0c, 0xc9, - 0x58, 0x54, 0x34, 0xaa, 0xe1, 0xd2, 0xa2, 0xe4, 0x90, 0x02, 0x23, 0x26, 0xa0, 0x92, 0x26, 0x26, - 0x0a, 0x83, 0xb4, 0x4d, 0xd9, 0x4b, 0xef, 0xeb, 0x9d, 0xa9, 0x24, 0x3f, 0x92, 0x8b, 0xdb, 0x04, - 0x7b, 0x9d, 0x64, 0x91, 0xa4, 0x4b, 0xd2, 0x6e, 0x51, 0x05, 0x08, 0xc9, 0x91, 0xaf, 0x31, 0x26, - 0x55, 0x21, 0xb1, 0xea, 0xce, 0xa3, 0xa4, 0x0d, 0x5e, 0x4c, 0x46, 0xdb, 0x16, 0x2d, 0x98, 0xdc, - 0x60, 0x19, 0xb8, 0x1b, 0xb9, 0xcd, 0xfb, 0x31, 0x00, // license info + 0x30, 0x82, 0x07, 0x95, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x07, 0x02, 0xa0, 0x82, 0x07, 0x86, + 0x30, 0x82, 0x07, 0x82, 0x02, 0x01, 0x01, 0x31, 0x00, 0x30, 0x0b, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, + 0x01, 0x07, 0x01, 0xa0, 0x82, 0x07, 0x6a, 0x30, 0x82, 0x02, 0xf1, 0x30, 0x82, 0x01, 0xdd, 0xa0, 0x03, 0x02, 0x01, + 0x02, 0x02, 0x08, 0x01, 0x9e, 0x27, 0x4d, 0x68, 0xac, 0xed, 0x20, 0x30, 0x09, 0x06, 0x05, 0x2b, 0x0e, 0x03, 0x02, + 0x1d, 0x05, 0x00, 0x30, 0x32, 0x31, 0x30, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x03, 0x1e, 0x0c, 0x00, 0x52, 0x00, + 0x4f, 0x00, 0x44, 0x00, 0x45, 0x00, 0x4e, 0x00, 0x54, 0x30, 0x19, 0x06, 0x03, 0x55, 0x04, 0x07, 0x1e, 0x12, 0x00, + 0x57, 0x00, 0x4f, 0x00, 0x52, 0x00, 0x4b, 0x00, 0x47, 0x00, 0x52, 0x00, 0x4f, 0x00, 0x55, 0x00, 0x50, 0x30, 0x1e, + 0x17, 0x0d, 0x37, 0x30, 0x30, 0x35, 0x33, 0x30, 0x31, 0x30, 0x33, 0x36, 0x31, 0x38, 0x5a, 0x17, 0x0d, 0x34, 0x39, + 0x30, 0x35, 0x33, 0x30, 0x31, 0x30, 0x33, 0x36, 0x31, 0x38, 0x5a, 0x30, 0x32, 0x31, 0x30, 0x30, 0x13, 0x06, 0x03, + 0x55, 0x04, 0x03, 0x1e, 0x0c, 0x00, 0x52, 0x00, 0x4f, 0x00, 0x44, 0x00, 0x45, 0x00, 0x4e, 0x00, 0x54, 0x30, 0x19, + 0x06, 0x03, 0x55, 0x04, 0x07, 0x1e, 0x12, 0x00, 0x57, 0x00, 0x4f, 0x00, 0x52, 0x00, 0x4b, 0x00, 0x47, 0x00, 0x52, + 0x00, 0x4f, 0x00, 0x55, 0x00, 0x50, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, + 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, + 0x00, 0x88, 0xad, 0x7c, 0x8f, 0x8b, 0x82, 0x76, 0x5a, 0xbd, 0x8f, 0x6f, 0x62, 0x18, 0xe1, 0xd9, 0xaa, 0x41, 0xfd, + 0xed, 0x68, 0x01, 0xc6, 0x34, 0x35, 0xb0, 0x29, 0x04, 0xca, 0x4a, 0x4a, 0x1c, 0x7e, 0x80, 0x14, 0xf7, 0x8e, 0x77, + 0xb8, 0x25, 0xff, 0x16, 0x47, 0x6f, 0xbd, 0xe2, 0x34, 0x3d, 0x2e, 0x02, 0xb9, 0x53, 0xe4, 0x33, 0x75, 0xad, 0x73, + 0x28, 0x80, 0xa0, 0x4d, 0xfc, 0x6c, 0xc0, 0x22, 0x53, 0x1b, 0x2c, 0xf8, 0xf5, 0x01, 0x60, 0x19, 0x7e, 0x79, 0x19, + 0x39, 0x8d, 0xb5, 0xce, 0x39, 0x58, 0xdd, 0x55, 0x24, 0x3b, 0x55, 0x7b, 0x43, 0xc1, 0x7f, 0x14, 0x2f, 0xb0, 0x64, + 0x3a, 0x54, 0x95, 0x2b, 0x88, 0x49, 0x0c, 0x61, 0x2d, 0xac, 0xf8, 0x45, 0xf5, 0xda, 0x88, 0x18, 0x5f, 0xae, 0x42, + 0xf8, 0x75, 0xc7, 0x26, 0x6d, 0xb5, 0xbb, 0x39, 0x6f, 0xcc, 0x55, 0x1b, 0x32, 0x11, 0x38, 0x8d, 0xe4, 0xe9, 0x44, + 0x84, 0x11, 0x36, 0xa2, 0x61, 0x76, 0xaa, 0x4c, 0xb4, 0xe3, 0x55, 0x0f, 0xe4, 0x77, 0x8e, 0xde, 0xe3, 0xa9, 0xea, + 0xb7, 0x41, 0x94, 0x00, 0x58, 0xaa, 0xc9, 0x34, 0xa2, 0x98, 0xc6, 0x01, 0x1a, 0x76, 0x14, 0x01, 0xa8, 0xdc, 0x30, + 0x7c, 0x77, 0x5a, 0x20, 0x71, 0x5a, 0xa2, 0x3f, 0xaf, 0x13, 0x7e, 0xe8, 0xfd, 0x84, 0xa2, 0x5b, 0xcf, 0x25, 0xe9, + 0xc7, 0x8f, 0xa8, 0xf2, 0x8b, 0x84, 0xc7, 0x04, 0x5e, 0x53, 0x73, 0x4e, 0x0e, 0x89, 0xa3, 0x3c, 0xe7, 0x68, 0x5c, + 0x24, 0xb7, 0x80, 0x53, 0x3c, 0x54, 0xc8, 0xc1, 0x53, 0xaa, 0x71, 0x71, 0x3d, 0x36, 0x15, 0xd6, 0x6a, 0x9d, 0x7d, + 0xde, 0xae, 0xf9, 0xe6, 0xaf, 0x57, 0xae, 0xb9, 0x01, 0x96, 0x5d, 0xe0, 0x4d, 0xcd, 0xed, 0xc8, 0xd7, 0xf3, 0x01, + 0x03, 0x38, 0x10, 0xbe, 0x7c, 0x42, 0x67, 0x01, 0xa7, 0x23, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x13, 0x30, 0x11, + 0x30, 0x0f, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x00, 0x30, 0x09, + 0x06, 0x05, 0x2b, 0x0e, 0x03, 0x02, 0x1d, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x70, 0xdb, 0x21, 0x2b, 0x84, + 0x9a, 0x7a, 0xc3, 0xb1, 0x68, 0xfa, 0xc0, 0x00, 0x8b, 0x71, 0xab, 0x43, 0x9f, 0xb6, 0x7b, 0xb7, 0x1f, 0x20, 0x83, + 0xac, 0x0a, 0xb5, 0x0e, 0xad, 0xb6, 0x36, 0xef, 0x65, 0x17, 0x99, 0x86, 0x8a, 0x3d, 0xba, 0x0c, 0x53, 0x2e, 0xa3, + 0x75, 0xa0, 0xf3, 0x11, 0x3d, 0xe7, 0x65, 0x4b, 0xae, 0x3c, 0x42, 0x70, 0x11, 0xdc, 0xca, 0x83, 0xc0, 0xbe, 0x3e, + 0x97, 0x71, 0x84, 0x69, 0xd6, 0xa8, 0x27, 0x33, 0x9b, 0x3e, 0x17, 0x3c, 0xa0, 0x4c, 0x64, 0xca, 0x20, 0x37, 0xa4, + 0x11, 0xa9, 0x28, 0x8f, 0xb7, 0x18, 0x96, 0x69, 0x15, 0x0d, 0x74, 0x04, 0x75, 0x2a, 0x00, 0xc7, 0xa6, 0x6a, 0xbe, + 0xac, 0xb3, 0xf2, 0xfb, 0x06, 0x1b, 0x6c, 0x11, 0xbd, 0x96, 0xe2, 0x34, 0x74, 0x5d, 0xf5, 0x98, 0x8f, 0x3a, 0x8d, + 0x69, 0x08, 0x6f, 0x53, 0x12, 0x4e, 0x39, 0x80, 0x90, 0xce, 0x8b, 0x5e, 0x88, 0x23, 0x2d, 0xfd, 0x55, 0xfd, 0x58, + 0x3d, 0x39, 0x27, 0xb3, 0x7c, 0x57, 0xfe, 0x3b, 0xab, 0x62, 0x26, 0x60, 0xe2, 0xd0, 0xc8, 0xf4, 0x02, 0x23, 0x16, + 0xc3, 0x52, 0x5d, 0x9f, 0x05, 0x49, 0xa2, 0x71, 0x2d, 0x6d, 0x5b, 0x90, 0xdd, 0xbf, 0xe5, 0xa9, 0x2e, 0xf1, 0x85, + 0x8a, 0x8a, 0xb8, 0xa9, 0x6b, 0x13, 0xcc, 0x8d, 0x4c, 0x22, 0x41, 0xad, 0x32, 0x1e, 0x3b, 0x4b, 0x89, 0x37, 0x66, + 0xdf, 0x1e, 0xa5, 0x4a, 0x03, 0x52, 0x1c, 0xd9, 0x19, 0x79, 0x22, 0xd4, 0xa7, 0x3b, 0x47, 0x93, 0xa9, 0x0c, 0x03, + 0x6a, 0xd8, 0x5f, 0xfc, 0xc0, 0x75, 0x33, 0xe5, 0x26, 0xda, 0xf7, 0x4a, 0x77, 0xd8, 0xf1, 0x30, 0x80, 0x39, 0x38, + 0x1e, 0x86, 0x1d, 0x97, 0x00, 0x9c, 0x0e, 0xba, 0x00, 0x54, 0x8a, 0xc0, 0x12, 0x32, 0x6f, 0x3d, 0xc4, 0x15, 0xf9, + 0x50, 0xf8, 0xce, 0x95, 0x30, 0x82, 0x04, 0x71, 0x30, 0x82, 0x03, 0x5d, 0xa0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x05, + 0x03, 0x00, 0x00, 0x00, 0x0f, 0x30, 0x09, 0x06, 0x05, 0x2b, 0x0e, 0x03, 0x02, 0x1d, 0x05, 0x00, 0x30, 0x32, 0x31, + 0x30, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x03, 0x1e, 0x0c, 0x00, 0x52, 0x00, 0x4f, 0x00, 0x44, 0x00, 0x45, 0x00, + 0x4e, 0x00, 0x54, 0x30, 0x19, 0x06, 0x03, 0x55, 0x04, 0x07, 0x1e, 0x12, 0x00, 0x57, 0x00, 0x4f, 0x00, 0x52, 0x00, + 0x4b, 0x00, 0x47, 0x00, 0x52, 0x00, 0x4f, 0x00, 0x55, 0x00, 0x50, 0x30, 0x1e, 0x17, 0x0d, 0x30, 0x37, 0x30, 0x36, + 0x32, 0x30, 0x31, 0x34, 0x35, 0x31, 0x33, 0x35, 0x5a, 0x17, 0x0d, 0x30, 0x37, 0x30, 0x39, 0x31, 0x38, 0x31, 0x34, + 0x35, 0x31, 0x33, 0x35, 0x5a, 0x30, 0x7f, 0x31, 0x7d, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x03, 0x1e, 0x0c, 0x00, + 0x52, 0x00, 0x4f, 0x00, 0x44, 0x00, 0x45, 0x00, 0x4e, 0x00, 0x54, 0x30, 0x21, 0x06, 0x03, 0x55, 0x04, 0x07, 0x1e, + 0x1a, 0x00, 0x41, 0x00, 0x64, 0x00, 0x6d, 0x00, 0x69, 0x00, 0x6e, 0x00, 0x69, 0x00, 0x73, 0x00, 0x74, 0x00, 0x72, + 0x00, 0x61, 0x00, 0x74, 0x00, 0x6f, 0x00, 0x72, 0x30, 0x43, 0x06, 0x03, 0x55, 0x04, 0x05, 0x1e, 0x3c, 0x00, 0x31, + 0x00, 0x42, 0x00, 0x63, 0x00, 0x4b, 0x00, 0x65, 0x00, 0x64, 0x00, 0x79, 0x00, 0x32, 0x00, 0x6b, 0x00, 0x72, 0x00, + 0x4f, 0x00, 0x34, 0x00, 0x2f, 0x00, 0x4d, 0x00, 0x43, 0x00, 0x44, 0x00, 0x4c, 0x00, 0x49, 0x00, 0x31, 0x00, 0x41, + 0x00, 0x48, 0x00, 0x5a, 0x00, 0x63, 0x00, 0x50, 0x00, 0x69, 0x00, 0x61, 0x00, 0x73, 0x00, 0x3d, 0x00, 0x0d, 0x00, + 0x0a, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, + 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0x88, 0xad, 0x7c, 0x8f, + 0x8b, 0x82, 0x76, 0x5a, 0xbd, 0x8f, 0x6f, 0x62, 0x18, 0xe1, 0xd9, 0xaa, 0x41, 0xfd, 0xed, 0x68, 0x01, 0xc6, 0x34, + 0x35, 0xb0, 0x29, 0x04, 0xca, 0x4a, 0x4a, 0x1c, 0x7e, 0x80, 0x14, 0xf7, 0x8e, 0x77, 0xb8, 0x25, 0xff, 0x16, 0x47, + 0x6f, 0xbd, 0xe2, 0x34, 0x3d, 0x2e, 0x02, 0xb9, 0x53, 0xe4, 0x33, 0x75, 0xad, 0x73, 0x28, 0x80, 0xa0, 0x4d, 0xfc, + 0x6c, 0xc0, 0x22, 0x53, 0x1b, 0x2c, 0xf8, 0xf5, 0x01, 0x60, 0x19, 0x7e, 0x79, 0x19, 0x39, 0x8d, 0xb5, 0xce, 0x39, + 0x58, 0xdd, 0x55, 0x24, 0x3b, 0x55, 0x7b, 0x43, 0xc1, 0x7f, 0x14, 0x2f, 0xb0, 0x64, 0x3a, 0x54, 0x95, 0x2b, 0x88, + 0x49, 0x0c, 0x61, 0x2d, 0xac, 0xf8, 0x45, 0xf5, 0xda, 0x88, 0x18, 0x5f, 0xae, 0x42, 0xf8, 0x75, 0xc7, 0x26, 0x6d, + 0xb5, 0xbb, 0x39, 0x6f, 0xcc, 0x55, 0x1b, 0x32, 0x11, 0x38, 0x8d, 0xe4, 0xe9, 0x44, 0x84, 0x11, 0x36, 0xa2, 0x61, + 0x76, 0xaa, 0x4c, 0xb4, 0xe3, 0x55, 0x0f, 0xe4, 0x77, 0x8e, 0xde, 0xe3, 0xa9, 0xea, 0xb7, 0x41, 0x94, 0x00, 0x58, + 0xaa, 0xc9, 0x34, 0xa2, 0x98, 0xc6, 0x01, 0x1a, 0x76, 0x14, 0x01, 0xa8, 0xdc, 0x30, 0x7c, 0x77, 0x5a, 0x20, 0x71, + 0x5a, 0xa2, 0x3f, 0xaf, 0x13, 0x7e, 0xe8, 0xfd, 0x84, 0xa2, 0x5b, 0xcf, 0x25, 0xe9, 0xc7, 0x8f, 0xa8, 0xf2, 0x8b, + 0x84, 0xc7, 0x04, 0x5e, 0x53, 0x73, 0x4e, 0x0e, 0x89, 0xa3, 0x3c, 0xe7, 0x68, 0x5c, 0x24, 0xb7, 0x80, 0x53, 0x3c, + 0x54, 0xc8, 0xc1, 0x53, 0xaa, 0x71, 0x71, 0x3d, 0x36, 0x15, 0xd6, 0x6a, 0x9d, 0x7d, 0xde, 0xae, 0xf9, 0xe6, 0xaf, + 0x57, 0xae, 0xb9, 0x01, 0x96, 0x5d, 0xe0, 0x4d, 0xcd, 0xed, 0xc8, 0xd7, 0xf3, 0x01, 0x03, 0x38, 0x10, 0xbe, 0x7c, + 0x42, 0x67, 0x01, 0xa7, 0x23, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x47, 0x30, 0x82, 0x01, 0x43, 0x30, + 0x14, 0x06, 0x09, 0x2b, 0x06, 0x01, 0x04, 0x01, 0x82, 0x37, 0x12, 0x04, 0x01, 0x01, 0xff, 0x04, 0x04, 0x01, 0x00, + 0x05, 0x00, 0x30, 0x3c, 0x06, 0x09, 0x2b, 0x06, 0x01, 0x04, 0x01, 0x82, 0x37, 0x12, 0x02, 0x01, 0x01, 0xff, 0x04, + 0x2c, 0x4d, 0x00, 0x69, 0x00, 0x63, 0x00, 0x72, 0x00, 0x6f, 0x00, 0x73, 0x00, 0x6f, 0x00, 0x66, 0x00, 0x74, 0x00, + 0x20, 0x00, 0x43, 0x00, 0x6f, 0x00, 0x72, 0x00, 0x70, 0x00, 0x6f, 0x00, 0x72, 0x00, 0x61, 0x00, 0x74, 0x00, 0x69, + 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x30, 0x56, 0x06, 0x09, 0x2b, 0x06, 0x01, 0x04, 0x01, 0x82, 0x37, 0x12, + 0x05, 0x01, 0x01, 0xff, 0x04, 0x46, 0x00, 0x30, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x1c, 0x00, 0x08, 0x00, 0x24, 0x00, 0x16, 0x00, 0x3a, 0x00, 0x01, 0x00, 0x41, 0x00, 0x30, 0x00, + 0x32, 0x00, 0x00, 0x00, 0x41, 0x00, 0x30, 0x00, 0x32, 0x00, 0x2d, 0x00, 0x36, 0x00, 0x2e, 0x00, 0x30, 0x00, 0x30, + 0x00, 0x2d, 0x00, 0x53, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x80, 0x64, 0x80, 0x00, 0x00, 0x00, 0x00, + 0x30, 0x6e, 0x06, 0x09, 0x2b, 0x06, 0x01, 0x04, 0x01, 0x82, 0x37, 0x12, 0x06, 0x01, 0x01, 0xff, 0x04, 0x5e, 0x00, + 0x30, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x3e, 0x00, 0x52, 0x00, 0x4f, 0x00, 0x44, 0x00, 0x45, 0x00, 0x4e, 0x00, + 0x54, 0x00, 0x00, 0x00, 0x37, 0x00, 0x38, 0x00, 0x34, 0x00, 0x34, 0x00, 0x30, 0x00, 0x2d, 0x00, 0x30, 0x00, 0x30, + 0x00, 0x36, 0x00, 0x2d, 0x00, 0x35, 0x00, 0x38, 0x00, 0x36, 0x00, 0x37, 0x00, 0x30, 0x00, 0x34, 0x00, 0x35, 0x00, + 0x2d, 0x00, 0x37, 0x00, 0x30, 0x00, 0x33, 0x00, 0x34, 0x00, 0x37, 0x00, 0x00, 0x00, 0x57, 0x00, 0x4f, 0x00, 0x52, + 0x00, 0x4b, 0x00, 0x47, 0x00, 0x52, 0x00, 0x4f, 0x00, 0x55, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x25, + 0x06, 0x03, 0x55, 0x1d, 0x23, 0x01, 0x01, 0xff, 0x04, 0x1b, 0x30, 0x19, 0xa1, 0x10, 0xa4, 0x0e, 0x52, 0x00, 0x4f, + 0x00, 0x44, 0x00, 0x45, 0x00, 0x4e, 0x00, 0x54, 0x00, 0x00, 0x00, 0x82, 0x05, 0x03, 0x00, 0x00, 0x00, 0x0f, 0x30, + 0x09, 0x06, 0x05, 0x2b, 0x0e, 0x03, 0x02, 0x1d, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x13, 0x1b, 0xdc, 0x89, + 0xd2, 0xfc, 0x54, 0x0c, 0xee, 0x82, 0x45, 0x68, 0x6a, 0x72, 0xc3, 0x3e, 0x17, 0x73, 0x96, 0x53, 0x44, 0x39, 0x50, + 0x0e, 0x0b, 0x9f, 0x95, 0xd6, 0x2c, 0x6b, 0x53, 0x14, 0x9c, 0xe5, 0x55, 0xed, 0x65, 0xdf, 0x2a, 0xeb, 0x5c, 0x64, + 0x85, 0x70, 0x1f, 0xbc, 0x96, 0xcf, 0xa3, 0x76, 0xb1, 0x72, 0x3b, 0xe1, 0xf6, 0xad, 0xad, 0xad, 0x2a, 0x14, 0xaf, + 0xba, 0xd0, 0xd6, 0xd5, 0x6d, 0x55, 0xec, 0x1e, 0xc3, 0x4b, 0xba, 0x06, 0x9c, 0x59, 0x78, 0x93, 0x64, 0x87, 0x4b, + 0x03, 0xf9, 0xee, 0x4c, 0xdd, 0x36, 0x5b, 0xbd, 0xd4, 0xe5, 0x4c, 0x4e, 0xda, 0x7b, 0xc1, 0xae, 0x23, 0x28, 0x9e, + 0x77, 0x6f, 0x0f, 0xe6, 0x94, 0xfe, 0x05, 0x22, 0x00, 0xab, 0x63, 0x5b, 0xe1, 0x82, 0x45, 0xa6, 0xec, 0x1f, 0x6f, + 0x2c, 0x7b, 0x56, 0xde, 0x78, 0x25, 0x7d, 0x10, 0x60, 0x0e, 0x53, 0x42, 0x4b, 0x6c, 0x7a, 0x6b, 0x5d, 0xc9, 0xd5, + 0xa6, 0xae, 0xc8, 0xc8, 0x52, 0x29, 0xd6, 0x42, 0x56, 0x02, 0xec, 0xf9, 0x23, 0xa8, 0x8c, 0x8d, 0x89, 0xc9, 0x7c, + 0x84, 0x07, 0xfc, 0x33, 0xe1, 0x1e, 0xea, 0xe2, 0x8f, 0x2b, 0xbe, 0x8f, 0xa9, 0xd3, 0xd1, 0xe1, 0x5e, 0x0b, 0xdc, + 0xb6, 0x43, 0x6e, 0x33, 0x0a, 0xf4, 0x2e, 0x9d, 0x0c, 0xc9, 0x58, 0x54, 0x34, 0xaa, 0xe1, 0xd2, 0xa2, 0xe4, 0x90, + 0x02, 0x23, 0x26, 0xa0, 0x92, 0x26, 0x26, 0x0a, 0x83, 0xb4, 0x4d, 0xd9, 0x4b, 0xef, 0xeb, 0x9d, 0xa9, 0x24, 0x3f, + 0x92, 0x8b, 0xdb, 0x04, 0x7b, 0x9d, 0x64, 0x91, 0xa4, 0x4b, 0xd2, 0x6e, 0x51, 0x05, 0x08, 0xc9, 0x91, 0xaf, 0x31, + 0x26, 0x55, 0x21, 0xb1, 0xea, 0xce, 0xa3, 0xa4, 0x0d, 0x5e, 0x4c, 0x46, 0xdb, 0x16, 0x2d, 0x98, 0xdc, 0x60, 0x19, + 0xb8, 0x1b, 0xb9, 0xcd, 0xfb, 0x31, 0x00, // license info ]; lazy_static! { @@ -290,9 +249,7 @@ lazy_static! { scope: "microsoft.com".to_string(), company_name: "Microsoft Corporation".to_string(), product_id: "A02".to_string(), - license_info: Vec::from( - &NEW_LICENSE_INFORMATION_BUFFER[NEW_LICENSE_INFORMATION_BUFFER.len() - 0x0799..] - ), + license_info: Vec::from(&NEW_LICENSE_INFORMATION_BUFFER[NEW_LICENSE_INFORMATION_BUFFER.len() - 0x0799..]), }; pub static ref SERVER_UPGRADE_LICENSE: ServerUpgradeLicense = ServerUpgradeLicense { license_header: LicenseHeader { @@ -302,8 +259,7 @@ lazy_static! { preamble_message_type: PreambleType::NewLicense, preamble_flags: PreambleFlags::empty(), preamble_version: PreambleVersion::V3, - preamble_message_size: (SERVER_UPGRADE_LICENSE_BUFFER.len() - - BASIC_SECURITY_HEADER_SIZE) as u16, + preamble_message_size: (SERVER_UPGRADE_LICENSE_BUFFER.len() - BASIC_SECURITY_HEADER_SIZE) as u16, }, encrypted_license_info: Vec::from( &SERVER_UPGRADE_LICENSE_BUFFER[12..SERVER_UPGRADE_LICENSE_BUFFER.len() - MAC_SIZE] @@ -373,358 +329,295 @@ fn buffer_length_is_correct_for_server_upgrade_license() { #[test] fn upgrade_license_verifies_correctly() { let encrypted_license_info = vec![ - 0xa5, 0x62, 0xcc, 0xe8, 0x5f, 0x22, 0x79, 0x2b, 0xf3, 0xe7, 0x3c, 0x3, 0xde, 0xfe, 0x54, - 0x8c, 0xe1, 0xa4, 0xc2, 0x61, 0x81, 0x8b, 0x48, 0x38, 0x7d, 0x6, 0x4, 0x28, 0xbe, 0x53, - 0xc5, 0x30, 0x38, 0x3b, 0x1e, 0xed, 0x48, 0xc6, 0x2c, 0x88, 0x4, 0xbb, 0x58, 0xd7, 0x10, - 0xa8, 0x8e, 0xff, 0x89, 0x4a, 0xc0, 0x3a, 0x6, 0x82, 0xc4, 0xfe, 0x73, 0x2f, 0x39, 0xe7, - 0xb7, 0xba, 0xb7, 0xa8, 0xfb, 0xb6, 0x68, 0x8, 0x90, 0xc6, 0x2d, 0x99, 0xbb, 0x85, 0x17, - 0x48, 0xcd, 0x2d, 0xe1, 0xf7, 0x80, 0x26, 0x78, 0x6d, 0xce, 0x62, 0xed, 0x2, 0x7c, 0x8f, - 0x35, 0xde, 0x1c, 0xb6, 0xa, 0x95, 0xab, 0x38, 0xd9, 0x51, 0x8c, 0x49, 0x35, 0xce, 0xa6, - 0xd4, 0x1e, 0x3a, 0xe7, 0xd9, 0x7e, 0xd4, 0x2a, 0xf9, 0xfa, 0xb2, 0x8, 0xd2, 0xdf, 0xa9, - 0x51, 0x2d, 0x6e, 0x8c, 0x99, 0xd2, 0xb6, 0x7c, 0x30, 0xac, 0xa, 0x8, 0x2f, 0x29, 0xaa, - 0x15, 0xfe, 0x8e, 0x3f, 0x99, 0xd, 0x9a, 0xfb, 0x74, 0x68, 0xa9, 0x72, 0x1, 0xd, 0x5, 0x59, - 0x60, 0x8, 0xc3, 0x5b, 0x72, 0xe3, 0x47, 0x71, 0xbe, 0xa7, 0xa4, 0x79, 0x89, 0xde, 0xe2, - 0xd7, 0x5f, 0x97, 0x8e, 0x18, 0x2a, 0xd0, 0x92, 0x30, 0x51, 0xfa, 0xa7, 0xa9, 0x62, 0x7a, - 0x32, 0x8e, 0xf, 0xc5, 0x98, 0xd8, 0x24, 0x39, 0x5a, 0xca, 0xcf, 0x1d, 0x52, 0x62, 0x16, - 0x5b, 0xfe, 0x45, 0xfc, 0x56, 0xf0, 0x20, 0xb1, 0xb4, 0x16, 0x19, 0x1e, 0x19, 0xba, 0x5b, - 0xe, 0x73, 0x78, 0xd1, 0x5, 0xe5, 0xa7, 0xbc, 0x6, 0xca, 0x3b, 0x3b, 0x16, 0x48, 0xa4, - 0x52, 0x58, 0x20, 0x8, 0x91, 0x31, 0x17, 0x68, 0xd1, 0x2a, 0x88, 0x5b, 0xd2, 0xc1, 0xd3, - 0xd0, 0x88, 0xc5, 0x2c, 0xfa, 0xdc, 0x39, 0xf7, 0xeb, 0x72, 0x6d, 0x6b, 0x77, 0xd7, 0x57, - 0x6f, 0x62, 0x40, 0x12, 0xc0, 0xff, 0xb2, 0xaa, 0xbf, 0x35, 0x11, 0x30, 0xc7, 0xf4, 0x78, - 0xf8, 0x70, 0x40, 0xf0, 0xb6, 0x20, 0xab, 0xb, 0x94, 0x52, 0xd5, 0x53, 0x74, 0x3b, 0x4b, - 0xfb, 0x53, 0x83, 0xf1, 0x7f, 0x46, 0xef, 0x37, 0xe0, 0x44, 0xba, 0xc, 0x5a, 0x65, 0x7d, - 0x37, 0x1f, 0x66, 0xe, 0x6f, 0x75, 0x1a, 0x2d, 0xe9, 0xd6, 0x3f, 0x5, 0x74, 0xa9, 0x7, 0x5, - 0xc4, 0x4f, 0x6a, 0x8d, 0x5a, 0xad, 0x95, 0xf5, 0xf2, 0x2a, 0xd9, 0x32, 0x4c, 0x4d, 0x44, - 0x6a, 0xb4, 0x1e, 0xb7, 0x29, 0x2, 0xf4, 0x2f, 0x23, 0x52, 0x8a, 0xe6, 0xb0, 0x94, 0x29, - 0x7c, 0xf8, 0x9e, 0x99, 0xbe, 0x63, 0x32, 0xa9, 0x2c, 0xdf, 0xb7, 0x64, 0xe5, 0xc5, 0xa7, - 0x24, 0x75, 0xb1, 0x43, 0x6f, 0x7, 0xf3, 0x7e, 0x15, 0x9a, 0x8f, 0x5e, 0xc0, 0x15, 0x8f, - 0xcc, 0xfa, 0x3c, 0x9e, 0x66, 0xa, 0x84, 0xe4, 0x70, 0xb2, 0x20, 0x89, 0x4e, 0x1e, 0x29, - 0xbf, 0x74, 0x7f, 0xd1, 0x48, 0x64, 0x1d, 0xec, 0x3, 0xe9, 0x85, 0x76, 0xab, 0xcf, 0x93, - 0xfa, 0x6f, 0x4a, 0xf5, 0xa4, 0xc5, 0xf5, 0xc3, 0x6f, 0xd5, 0xae, 0x58, 0xa9, 0x94, 0x77, - 0x64, 0x75, 0x45, 0x12, 0x7d, 0x7a, 0x6d, 0x83, 0x2b, 0x23, 0xf9, 0x3e, 0x5e, 0x49, 0x57, - 0xbe, 0x4f, 0x64, 0x59, 0xcc, 0xae, 0x8f, 0xea, 0x7b, 0xa6, 0xe3, 0x6b, 0x8e, 0xab, 0xa, - 0xdf, 0x59, 0x8b, 0x5, 0x9b, 0x93, 0x32, 0xe8, 0x2e, 0x6b, 0xcc, 0xcb, 0x2e, 0xb8, 0x26, - 0x26, 0x1b, 0x42, 0x8c, 0xf3, 0xe2, 0xaf, 0xf9, 0xb3, 0xfe, 0x49, 0xf6, 0x8b, 0x9b, 0xea, - 0x64, 0xc2, 0x85, 0xca, 0x59, 0x5a, 0xfe, 0xe5, 0xc5, 0xd4, 0x7a, 0x0, 0x87, 0x4a, 0xb5, - 0xe8, 0xb4, 0xbb, 0x6a, 0x84, 0x87, 0x7e, 0x82, 0x44, 0x13, 0xcf, 0xf, 0xeb, 0xff, 0xd7, - 0xf0, 0xab, 0x56, 0x79, 0xa1, 0x33, 0xe, 0xf0, 0xa, 0x4b, 0x1, 0x81, 0x8c, 0xfe, 0x76, - 0xb2, 0xd1, 0x57, 0x3d, 0x26, 0x94, 0x36, 0x19, 0x74, 0x48, 0x48, 0xcd, 0xc3, 0xfc, 0xc0, - 0xe5, 0xb6, 0x2b, 0xef, 0xb2, 0x6a, 0x44, 0x64, 0x54, 0x42, 0x6e, 0x10, 0xf0, 0xfe, 0x6, - 0xbe, 0x1, 0x73, 0xde, 0x16, 0x2e, 0x4b, 0xa9, 0x5b, 0xe0, 0xa9, 0x1a, 0xda, 0xb9, 0xb3, - 0x7e, 0xaf, 0x63, 0x1, 0x6, 0x9a, 0x8, 0xce, 0x7e, 0x3a, 0x3f, 0x33, 0xb9, 0x41, 0x38, - 0xaf, 0x43, 0xa, 0x79, 0xe3, 0xf, 0x7c, 0x9a, 0x6c, 0xbd, 0x2c, 0xc3, 0xa2, 0xba, 0x50, - 0x98, 0xaa, 0x77, 0xc4, 0x2, 0x97, 0xc7, 0x60, 0xc4, 0x4d, 0x14, 0xf9, 0xa0, 0xe0, 0x96, - 0xa6, 0x27, 0x83, 0xbd, 0x96, 0x1b, 0xf6, 0xcf, 0x9f, 0xba, 0xe8, 0xac, 0x38, 0x4d, 0xf9, - 0xe0, 0x49, 0x75, 0xd1, 0xf8, 0x5a, 0xff, 0x43, 0x87, 0x5, 0x45, 0x18, 0x90, 0x8f, 0x53, - 0xf8, 0x8e, 0xf7, 0x3b, 0x2b, 0xfe, 0x2f, 0xcf, 0x5d, 0x73, 0x59, 0xd8, 0x8f, 0xc7, 0x3a, - 0x4f, 0xa7, 0x78, 0xfa, 0xc4, 0x68, 0xd, 0x95, 0xc7, 0x82, 0x6b, 0xa2, 0xb7, 0x1f, 0xdc, - 0xb8, 0xc9, 0x5d, 0x83, 0x27, 0x24, 0x84, 0x2f, 0xf4, 0x5f, 0xb, 0xa7, 0x3d, 0x0, 0x35, - 0xbb, 0x5c, 0xbb, 0xbf, 0x5e, 0x7c, 0xb4, 0xf4, 0x43, 0x13, 0x2b, 0x17, 0x6e, 0xef, 0xbf, - 0x19, 0x57, 0xa4, 0x29, 0xbc, 0xdf, 0xd9, 0x89, 0x7b, 0x2d, 0x54, 0x46, 0xd6, 0x44, 0x90, - 0x37, 0xea, 0xeb, 0x74, 0xb6, 0x9f, 0xe5, 0x4e, 0x57, 0x63, 0x43, 0xe5, 0xd7, 0xf, 0x72, - 0x65, 0x8c, 0x91, 0xe, 0xd4, 0xdd, 0x67, 0xce, 0x6a, 0xb5, 0xe2, 0x60, 0x38, 0x5a, 0xe8, - 0x3b, 0x55, 0xd3, 0x9a, 0x12, 0xdb, 0x57, 0x3, 0xb3, 0x64, 0xd9, 0x96, 0x9b, 0x7, 0xfd, - 0x25, 0x41, 0x8c, 0xbc, 0x20, 0x91, 0x11, 0x1, 0x5f, 0xfe, 0x44, 0x1e, 0x68, 0xc, 0x40, - 0xa4, 0xc3, 0xc2, 0xb7, 0x4d, 0x5c, 0xa1, 0x36, 0x6e, 0x52, 0xda, 0xed, 0x71, 0xc5, 0xce, - 0x27, 0x1e, 0xdc, 0xfd, 0xb8, 0xda, 0x70, 0xba, 0x7a, 0x33, 0x66, 0x91, 0x62, 0x46, 0xd1, - 0xae, 0x12, 0xc8, 0x90, 0xe4, 0xb4, 0x21, 0x2f, 0xa5, 0xb8, 0x6, 0x71, 0x26, 0x49, 0x37, - 0xe5, 0xc7, 0xd6, 0xa1, 0x4f, 0xb0, 0xe9, 0xdb, 0xce, 0xee, 0x6e, 0xc1, 0xb, 0x11, 0x5f, - 0x6f, 0x72, 0x23, 0xb5, 0xb6, 0x81, 0x4d, 0x7f, 0xe3, 0xe5, 0x41, 0xf4, 0x29, 0x55, 0x89, - 0xfd, 0x62, 0x5d, 0x11, 0xaa, 0xd, 0x94, 0x58, 0xe0, 0x9f, 0xd9, 0xb7, 0xc7, 0x47, 0x4e, - 0x70, 0xe6, 0x84, 0xb1, 0x5d, 0x3a, 0xd1, 0xed, 0x5, 0x61, 0x79, 0xe2, 0xe7, 0x5, 0x53, - 0x94, 0xe2, 0x44, 0x49, 0xc, 0xc4, 0x36, 0x85, 0x22, 0xb9, 0x7b, 0xa5, 0xb, 0x59, 0xeb, - 0xb8, 0x5d, 0x38, 0x4d, 0x6d, 0xe, 0x6b, 0x8a, 0x5f, 0x9f, 0x3b, 0x93, 0x5f, 0x26, 0xc3, - 0x33, 0x17, 0x21, 0x15, 0x3c, 0x92, 0xf3, 0x53, 0x48, 0x1c, 0x2c, 0x46, 0x48, 0xee, 0x9e, - 0xf1, 0x9d, 0x12, 0x0, 0xd2, 0x7c, 0x7b, 0xd1, 0xd5, 0x7c, 0xdc, 0x63, 0x2e, 0x22, 0x1e, - 0x16, 0x8a, 0x31, 0x3, 0xee, 0x24, 0x11, 0x53, 0x15, 0xef, 0x15, 0xf1, 0xcd, 0xc, 0x33, - 0x51, 0x20, 0xab, 0xab, 0xa3, 0x6d, 0xdb, 0x89, 0x12, 0xfe, 0xeb, 0x59, 0x75, 0x84, 0x28, - 0xf9, 0x62, 0x86, 0xfb, 0xd9, 0xca, 0xc6, 0x28, 0x88, 0x1b, 0x41, 0xfe, 0xf5, 0xe4, 0x6c, - 0x15, 0x1a, 0xa1, 0xe1, 0xe3, 0x9, 0xb0, 0x71, 0x16, 0xc2, 0xee, 0xb4, 0x54, 0x48, 0x9d, - 0x37, 0xa1, 0x33, 0x86, 0xdd, 0x3f, 0x6e, 0x9b, 0x3f, 0x99, 0xce, 0x11, 0x5c, 0xea, 0xc9, - 0xec, 0xaa, 0x17, 0xd6, 0x4d, 0x5c, 0x77, 0x99, 0x5, 0x23, 0xd4, 0x1d, 0xa1, 0xc1, 0x8c, - 0xec, 0x64, 0x90, 0xd5, 0xb3, 0xb8, 0x73, 0x88, 0x0, 0xe6, 0x41, 0x88, 0x2b, 0x77, 0x9, - 0x3, 0xa0, 0xe4, 0xa4, 0x93, 0xe7, 0xbe, 0xd7, 0xe9, 0x6c, 0x0, 0x15, 0xa6, 0xde, 0x38, - 0xda, 0x2b, 0x6d, 0xfb, 0xde, 0x0, 0x96, 0x75, 0x8e, 0x8c, 0xef, 0x94, 0xc4, 0x64, 0xcd, - 0xfc, 0xb7, 0xf8, 0x6, 0x5c, 0xcc, 0x41, 0xf6, 0xce, 0x2c, 0xf3, 0xba, 0x44, 0x9e, 0x9f, - 0xa8, 0xe6, 0xb3, 0x5a, 0xdb, 0x38, 0x5e, 0x53, 0x45, 0x4, 0xb2, 0x3e, 0xe7, 0xea, 0xc5, - 0x1b, 0x40, 0xaf, 0xd0, 0xb7, 0xd3, 0x6c, 0x9e, 0x30, 0xa1, 0x72, 0xc, 0xde, 0x66, 0x3b, - 0x9c, 0x75, 0xb7, 0x67, 0x48, 0x17, 0x8c, 0x97, 0xbc, 0xd2, 0x9, 0xc6, 0x94, 0xc9, 0x3f, - 0xbf, 0xd6, 0x1d, 0x5f, 0x63, 0x18, 0xf1, 0x95, 0x6c, 0x49, 0x37, 0x85, 0xb0, 0x3f, 0xa4, - 0x7a, 0x36, 0xa8, 0xeb, 0xe1, 0xce, 0x88, 0xcc, 0x37, 0x45, 0xa9, 0xda, 0x91, 0x96, 0xfa, - 0xc4, 0xda, 0x2e, 0xcc, 0x49, 0xe1, 0x98, 0xf1, 0x93, 0x28, 0x37, 0xa0, 0xf4, 0x5f, 0xda, - 0x50, 0xfc, 0x63, 0xef, 0x74, 0x29, 0xc0, 0x31, 0xfb, 0x6a, 0x9a, 0x19, 0x4f, 0x44, 0x54, - 0xcf, 0x8c, 0x77, 0xda, 0xf3, 0xaa, 0xe7, 0x1f, 0x5, 0xa1, 0x11, 0xf1, 0x1b, 0xa6, 0x77, - 0xbb, 0xc6, 0xa8, 0x59, 0x2c, 0x9d, 0xea, 0x98, 0x1a, 0x7c, 0x65, 0x79, 0x88, 0xdb, 0x30, - 0xa2, 0xe8, 0xa, 0xe1, 0x21, 0x82, 0x2f, 0x68, 0xb0, 0xe4, 0xce, 0xe7, 0x46, 0x82, 0x8d, - 0xb5, 0xea, 0xad, 0x26, 0xb6, 0xf4, 0xd6, 0xdd, 0x6b, 0xd3, 0x30, 0x84, 0x2e, 0xd8, 0x72, - 0x1, 0xec, 0x68, 0x49, 0x4f, 0xa2, 0x3f, 0xe1, 0xee, 0x38, 0x59, 0x69, 0x2f, 0xb, 0x92, - 0x14, 0xb9, 0xc5, 0x3b, 0xae, 0x0, 0xf5, 0x23, 0xd5, 0x3c, 0x1b, 0x9f, 0xef, 0xe1, 0x4c, - 0x40, 0xfd, 0x8, 0xba, 0x81, 0xbc, 0x3c, 0x6d, 0x59, 0x92, 0x4a, 0x5c, 0xa8, 0xc5, 0xfd, - 0x7b, 0x71, 0xa5, 0x13, 0xfb, 0xdd, 0x15, 0x99, 0x21, 0x42, 0x54, 0x66, 0x78, 0xc5, 0x75, - 0xac, 0xfb, 0xca, 0x71, 0x91, 0xae, 0x63, 0xf1, 0x67, 0x29, 0xc, 0x4b, 0xaf, 0x78, 0xad, - 0xd9, 0xc1, 0x9, 0xa7, 0x28, 0x14, 0x78, 0x50, 0xe3, 0x45, 0xfa, 0xb7, 0x41, 0x9f, 0x96, - 0xd4, 0x51, 0x56, 0xf7, 0xee, 0xdf, 0xf8, 0xa5, 0x36, 0x85, 0xa0, 0x72, 0xc9, 0x64, 0xb0, - 0x23, 0x1d, 0xd6, 0x62, 0x7, 0xf3, 0xf1, 0xfb, 0x41, 0x17, 0x32, 0xef, 0x56, 0x6d, 0x83, - 0xc4, 0x1f, 0x70, 0x8b, 0x73, 0x33, 0x62, 0xba, 0x47, 0x1, 0x24, 0x89, 0xed, 0xc, 0xc0, - 0x18, 0x9, 0x40, 0x93, 0xda, 0x5e, 0x39, 0x2f, 0xd4, 0x3f, 0x9d, 0xb3, 0xa4, 0xd, 0xd1, - 0x3b, 0xc4, 0xf4, 0xf7, 0x23, 0xa5, 0xb, 0x9a, 0x93, 0xae, 0xc9, 0x3, 0xf, 0x9b, 0xbb, - 0xb0, 0xc2, 0xb0, 0x41, 0x6e, 0xaf, 0xf2, 0xb9, 0xad, 0x9a, 0x71, 0xc1, 0x87, 0xf0, 0x0, - 0x53, 0xac, 0xad, 0x24, 0x4c, 0x6f, 0x14, 0xd2, 0xd1, 0x85, 0x56, 0xb2, 0x7c, 0xf9, 0xa2, - 0x92, 0x81, 0x43, 0x8e, 0xc8, 0xa4, 0x58, 0x79, 0x4a, 0xde, 0x8f, 0xac, 0xa1, 0xcb, 0xf2, - 0x9c, 0x38, 0x9c, 0xd6, 0xb2, 0x1a, 0xfa, 0x1c, 0xb5, 0x19, 0xe2, 0x13, 0x36, 0x41, 0x9e, - 0xc3, 0x73, 0xe9, 0x20, 0xf, 0xe3, 0xfd, 0xc, 0xa2, 0xd1, 0x77, 0xf8, 0xae, 0xb6, 0x11, - 0xd1, 0x55, 0x5b, 0xae, 0xd9, 0xb5, 0x2a, 0xd3, 0x96, 0x86, 0x77, 0xf7, 0xe2, 0x2, 0xa6, - 0xc2, 0x10, 0x37, 0x2f, 0x10, 0xff, 0xee, 0xc9, 0x29, 0xd1, 0xf4, 0x89, 0x4b, 0x89, 0x0, - 0xee, 0xb5, 0x9f, 0xd1, 0xad, 0x7b, 0x92, 0x17, 0x87, 0x85, 0x21, 0x59, 0xc7, 0xc3, 0xbf, - 0x86, 0xf6, 0xff, 0xd8, 0x8a, 0x47, 0xb9, 0x61, 0xa1, 0x52, 0xed, 0xf, 0x34, 0x17, 0xe2, - 0xcb, 0x92, 0x0, 0x16, 0x2a, 0x1f, 0x4a, 0x60, 0x54, 0xd7, 0x1d, 0x7a, 0x97, 0x4c, 0x91, - 0x41, 0x8f, 0x80, 0x68, 0xbd, 0xa5, 0x57, 0x26, 0xe4, 0xf7, 0x8a, 0xe0, 0x57, 0x76, 0x58, - 0xe, 0x14, 0xfc, 0xab, 0xae, 0x60, 0xa8, 0xb2, 0x62, 0xd0, 0x9, 0x4b, 0xbc, 0x8, 0x20, - 0x1f, 0x58, 0x9, 0x52, 0x8, 0xd4, 0xf5, 0xdb, 0x87, 0x1e, 0x1c, 0xaf, 0x47, 0xe, 0x8b, - 0x19, 0x3f, 0xf3, 0x7, 0x38, 0x5a, 0x5c, 0x29, 0x66, 0x54, 0x77, 0x22, 0x4f, 0xb6, 0x5d, - 0xc6, 0xc9, 0x35, 0x44, 0xe9, 0xeb, 0x33, 0x8a, 0x12, 0x77, 0xc2, 0x1e, 0x83, 0xca, 0xfa, - 0x1a, 0x2f, 0xef, 0x13, 0x6f, 0x70, 0xa6, 0x1f, 0x2e, 0x61, 0x83, 0xf4, 0x10, 0xb8, 0x1, - 0xa4, 0xb7, 0x9, 0xaa, 0x32, 0x36, 0x77, 0x39, 0x62, 0xfa, 0x7b, 0x19, 0x6b, 0x97, 0xe0, - 0xd2, 0x1, 0xfd, 0x33, 0x60, 0x8, 0xe0, 0x4, 0xdf, 0xa7, 0x86, 0xd1, 0x8d, 0xc4, 0xf6, - 0x9c, 0xed, 0x77, 0x68, 0x9d, 0xee, 0xd0, 0x67, 0xc7, 0xce, 0xd7, 0xf2, 0x2b, 0x2f, 0xe2, - 0x82, 0x80, 0x89, 0x4b, 0x4c, 0x35, 0xd8, 0xf3, 0xca, 0x8a, 0xd5, 0x37, 0xe, 0xf4, 0xac, - 0x2f, 0xd7, 0xc2, 0x34, 0x39, 0x81, 0xce, 0x95, 0x65, 0x11, 0x2, 0xfa, 0xa0, 0x20, 0x96, - 0xd2, 0x7b, 0x42, 0x6b, 0xc8, 0x91, 0x9d, 0xe8, 0xc7, 0x62, 0xc7, 0x32, 0x6b, 0x66, 0x59, - 0xe1, 0xca, 0xf7, 0x42, 0x4a, 0x6c, 0xca, 0x72, 0xe, 0x82, 0x3, 0x93, 0xd6, 0xdf, 0xa5, - 0xd3, 0xf6, 0xa6, 0x62, 0xec, 0x85, 0x12, 0x7a, 0xde, 0x1, 0xd5, 0x13, 0x47, 0x23, 0x3e, - 0xda, 0xcb, 0x3, 0x72, 0xde, 0x5e, 0x70, 0x10, 0x52, 0x7e, 0x62, 0x84, 0x1e, 0x66, 0x37, - 0x3a, 0x48, 0x5d, 0x96, 0x2b, 0x8f, 0x1, 0x16, 0xb, 0x0, 0xff, 0x1d, 0xf7, 0xe8, 0xa2, - 0xc7, 0xa1, 0xc9, 0x39, 0x8b, 0x75, 0x59, 0x8d, 0x33, 0x5e, 0x54, 0xae, 0xa8, 0x2b, 0x63, - 0x89, 0x5e, 0x7a, 0x3e, 0x35, 0x5c, 0x39, 0x9c, 0xfc, 0xa8, 0x1b, 0x33, 0x4b, 0xfe, 0xf3, - 0xa7, 0x2, 0xe5, 0xc3, 0x6b, 0x17, 0xc1, 0xb5, 0xdb, 0x26, 0x51, 0xff, 0x58, 0x4a, 0x3, - 0x52, 0x1e, 0xde, 0x8, 0x96, 0x3a, 0x7d, 0x14, 0x63, 0x80, 0xca, 0x5, 0x7f, 0x24, 0x73, - 0x65, 0xb7, 0x70, 0x5a, 0x4f, 0xea, 0x6f, 0x8d, 0xa6, 0xf0, 0x6f, 0x60, 0xdb, 0x34, 0x77, - 0xef, 0xa0, 0x21, 0x17, 0xa2, 0x95, 0x4a, 0x73, 0xad, 0x68, 0xc1, 0xf3, 0xad, 0x67, 0x68, - 0x30, 0xa0, 0xda, 0x98, 0xfb, 0x15, 0xd7, 0x28, 0x9b, 0xb3, 0xf0, 0x34, 0x92, 0xb5, 0x3, - 0x12, 0x0, 0xcb, 0x54, 0x98, 0xf2, 0x75, 0x1d, 0x7a, 0x38, 0x5d, 0x3, 0xb1, 0xa9, 0x70, - 0xc7, 0x5a, 0x1d, 0x25, 0x73, 0xfc, 0xfb, 0x13, 0x6d, 0x5b, 0xe9, 0xb4, 0x5, 0xd2, 0xd, - 0x1a, 0xd2, 0x38, 0x1c, 0x75, 0x19, 0xa, 0x9b, 0x16, 0x9, 0xfb, 0x1a, 0xb2, 0xe2, 0xe, - 0x85, 0x6e, 0x32, 0x9, 0x1b, 0xb5, 0xc3, 0x3b, 0x78, 0x41, 0xf0, 0x92, 0xeb, 0xcd, 0x9, - 0xde, 0x61, 0x30, 0x1f, 0xe2, 0x24, 0x80, 0x50, 0xa5, 0xe, 0x9, 0x18, 0xe, 0xe5, 0x70, - 0x1f, 0xde, 0x6c, 0x51, 0x3e, 0xdd, 0x9e, 0xad, 0xc5, 0x79, 0xd3, 0x2e, 0x9, 0x7, 0xa7, - 0x52, 0xb7, 0x2c, 0x7f, 0xdb, 0x66, 0xf8, 0xa2, 0xea, 0x47, 0xfe, 0xe2, 0x75, 0x77, 0xb3, - 0xa9, 0x69, 0x98, 0xa3, 0x1a, 0xd9, 0xec, 0x5e, 0xf6, 0x2b, 0x58, 0x8c, 0xd0, 0x58, 0x3f, - 0x74, 0x7e, 0x6f, 0xe2, 0xe3, 0x6f, 0xa8, 0xc8, 0x1a, 0xf7, 0x7f, 0xbb, 0x7, 0xca, 0x3, - 0xfa, 0xab, 0xd8, 0x28, 0x15, 0x90, 0x89, 0x89, 0xf, 0xc4, 0xe2, 0xf8, 0xa6, 0xb7, 0x92, - 0x59, 0x24, 0x53, 0x15, 0x25, 0xd5, 0xf2, 0xb, 0xc2, 0xf0, 0x81, 0x16, 0x39, 0xcb, 0x7b, - 0xae, 0x1e, 0xc1, 0x5d, 0x16, 0xb8, 0x6d, 0x30, 0xdc, 0xf0, 0x17, 0x99, 0x8d, 0xd0, 0xab, - 0x2a, 0xc8, 0x24, 0x3a, 0xd7, 0xe4, 0x16, 0x50, 0xb7, 0x36, 0x6, 0x99, 0x90, 0x91, 0x84, - 0xad, 0xf1, 0xb, 0xc2, 0xec, 0x15, 0x3a, 0x6e, 0xe8, 0x6, 0x5e, 0xcf, 0x1a, 0x82, 0x15, - 0xd8, 0x83, 0x60, 0x4c, 0xe8, 0x2d, 0x68, 0x7b, 0x6, 0x87, 0xd0, 0xe2, 0xec, 0x1f, 0x56, - 0xb1, 0xc7, 0xa8, 0xad, 0x7e, 0xf2, 0x25, 0x59, 0xbb, 0x2c, 0xc0, 0x2e, 0x56, 0x68, 0x2c, - 0xa0, 0xd8, 0x27, 0xd5, 0x9d, 0xb1, 0x9c, 0x3, 0xa3, 0xa7, 0xb8, 0xde, 0x5d, 0x62, 0xe, - 0x8b, 0xb6, 0x7a, 0xf2, 0x8, 0x8, 0x51, 0xe8, 0xe3, 0xa4, 0x13, 0x20, 0xcf, 0xa7, 0xbf, - 0x3c, 0x62, 0xbc, 0xad, 0x16, 0xba, 0x84, 0xb8, 0xab, 0xac, 0x15, 0x8e, 0x29, 0x33, 0x12, - 0xd0, 0x83, 0x21, 0x5f, 0x87, 0x5a, 0x2f, 0x74, 0xd4, 0x91, 0xf8, 0x3f, 0x6d, 0xa9, 0xa5, - 0x62, 0xaa, 0x47, 0x62, 0x58, 0xf1, 0x16, 0x36, 0x81, 0x38, 0xc2, 0x21, 0xba, 0x23, 0x1, - 0x27, 0x1f, 0xad, 0x7f, 0x4a, 0x3e, 0xca, 0x9d, 0x9e, 0x4e, 0xea, 0xeb, 0xa4, 0xd7, 0xd, - 0xf3, 0xa0, 0x12, 0x64, 0xdc, 0xf4, 0x4e, 0xa7, 0x45, 0x55, 0x97, 0xef, 0x75, 0x78, 0x91, - 0x6e, 0x66, 0x72, 0xe4, 0x84, 0xe5, 0xc4, 0x72, 0xc4, 0xc0, 0x3, 0x83, 0xd4, 0x31, 0xc4, - 0x49, 0x43, 0xe1, 0x79, 0x7a, 0x70, 0xe2, 0x40, 0xa1, 0x51, 0x56, 0xae, 0x11, 0xfb, 0x7b, - 0x89, 0x8a, 0xdd, 0x55, 0xa4, 0x18, 0xb6, 0xee, 0x6, 0xd7, 0x8a, 0xc1, 0x89, 0xbf, 0x2d, - 0xd7, 0xbf, 0x18, 0x14, 0xb0, 0xec, 0xed, 0xe1, 0x20, 0x18, 0xb6, 0x21, 0x6b, 0x3c, 0xe0, - 0x9f, 0x92, 0xed, 0xb4, 0x40, 0xd9, 0x77, 0x32, 0x50, 0x85, 0x25, 0x39, 0x2c, 0x37, 0x31, - 0x4c, 0x9e, 0xbf, 0xe4, 0xfc, 0x47, 0xe7, 0xc4, 0xaf, 0x4d, 0x7e, 0x9d, 0x80, 0x34, 0x60, - 0xc5, 0xca, 0x74, 0xef, 0x38, 0x4, 0x71, 0xf3, 0x1b, 0x99, 0x3f, 0xb5, 0xa8, 0x10, 0xf, - 0xef, 0x84, 0x1, 0xe1, 0x9, 0x46, 0xe7, 0xe2, 0x56, 0x19, 0x7d, 0x6a, 0x9f, 0x21, 0x7a, - 0xd1, 0x82, 0x59, 0x7c, 0x9a, 0x13, 0xe2, 0x7f, 0x1e, 0x71, 0xcb, 0xf5, 0xf6, 0x47, 0x8, - 0x30, 0xa3, 0x3e, 0x1f, 0x2e, 0x26, 0x80, 0xe6, 0x1a, 0x62, 0x24, 0x1f, 0x18, 0x11, 0xf, - 0xcf, 0xa7, 0x76, 0x57, 0x3f, 0x7, 0xba, 0xbc, 0x26, 0xdc, 0x49, 0x38, 0x53, 0x71, 0xdc, - 0x5b, 0xc3, 0x9f, 0x17, 0x44, 0xe9, 0x58, 0xde, 0x97, 0xbf, 0x5a, 0xf, 0x69, 0x57, 0xb7, - 0x3b, 0xda, 0x9c, 0x6c, 0x3a, 0x9c, 0x47, 0x2d, 0xd9, 0xc3, 0x3a, 0xbf, 0x4c, 0x10, 0x75, - 0x33, 0x3b, 0x83, 0x28, 0x70, 0xc7, 0xd7, 0x6e, 0x2f, 0xeb, 0xd3, 0xe5, 0x39, 0x20, 0x8f, - 0x6f, 0x9f, 0xad, 0x19, 0xe3, 0x3f, 0x40, 0xb0, 0x14, 0xef, 0x9c, 0xfd, 0x91, 0xf3, 0xf7, - 0x7f, 0x94, 0x47, 0xbb, 0x22, 0xc7, 0x68, 0xc9, 0xf1, 0x4b, 0x4b, 0x46, 0x2c, 0xa2, 0x6f, - 0xd3, 0xc0, 0x48, 0xef, 0xde, 0xde, 0xc4, 0x55, 0x8f, 0xfd, 0xff, 0x12, 0xd0, 0x38, 0xc0, - 0x4, 0xe9, 0x1b, 0x73, 0x5, 0xe0, 0x10, 0x53, 0xd7, 0x4b, 0x84, 0x80, 0xab, 0xea, 0xf5, - 0xd9, 0xb4, 0x6f, 0xbf, 0xea, 0x25, 0x90, 0xcf, 0x4f, 0x15, 0xc4, 0xd3, 0xa3, 0x83, 0x59, - 0xf, 0x38, 0x66, 0xfa, 0xb8, 0xec, 0xde, 0xdc, 0x31, 0x47, 0xbf, 0x8b, 0xfe, 0x27, 0x28, - 0x70, 0x79, 0xf6, 0x44, 0x7f, 0xcb, 0xf7, 0xab, 0x55, 0x56, 0x9b, 0xd4, 0x9a, 0xbf, 0xa3, - 0xa9, 0xbd, 0xc2, 0xb8, 0x1c, 0x85, 0x3c, 0x13, 0x5e, 0xd7, 0x97, 0xec, 0xf9, 0x94, 0x5f, - 0xf8, 0xa0, 0xb9, 0x4d, 0x2, 0x8e, 0x9f, 0x64, 0xbe, 0x69, 0xb0, 0x94, 0x92, 0xbd, 0xd8, - 0xfa, 0xc9, 0x7, 0x29, 0x7a, 0x0, 0x2f, 0xe8, 0x9f, 0x33, 0xb4, 0xcb, 0x3f, 0xd7, 0x6c, - 0x65, 0xf8, 0x15, 0xa7, 0xa7, 0x5, 0x4a, 0xb7, 0x6c, 0x28, 0x5c, 0xf3, 0x3, 0xb1, 0x80, - 0x93, 0x86, 0xf9, 0xdf, 0x4b, 0x56, 0x96, 0x36, 0xfd, 0x36, 0xc9, 0xe4, 0xa2, 0x24, 0x34, - 0x40, 0x54, 0x35, 0xbe, 0x26, 0x94, 0xd0, 0xd4, 0xd4, 0x55, 0xb4, 0x47, 0xf8, 0xe4, 0x7c, - 0xe5, 0x37, 0xdf, 0x11, 0xba, 0xea, 0xd, 0x92, 0xed, 0x92, 0x93, 0x7c, 0xa0, 0xad, 0x89, - 0xd4, 0x82, 0xc5, 0x74, 0xfc, 0x56, 0x69, 0x24, 0xf8, 0xe6, 0xfa, 0xc2, 0xd9, 0x7, 0x47, - 0xb8, 0x4e, 0x9e, 0x23, 0x13, 0x16, 0xe0, 0xa1, 0xcd, 0x2f, 0x69, 0x62, 0x4c, 0xc0, 0x72, - 0x22, 0x86, 0x2f, 0x3a, 0x1c, 0xb4, 0x73, 0x56, 0x88, 0xe6, 0x82, 0xfd, 0x2f, 0x2f, 0xc0, - 0x30, 0x7f, 0x72, 0x23, 0xa7, 0x94, 0xc2, 0x6e, 0xf4, 0x2, 0xf6, 0xa3, 0xe0, 0x5d, 0xc, - 0x4c, 0xf7, 0x4e, 0x60, 0x12, 0x2, 0xca, 0x40, 0xc7, 0x1a, 0x4e, 0x3c, 0x7c, 0xce, 0xd8, - 0x1b, 0xba, 0x5, 0x89, 0xf, 0xec, 0xfe, 0x4, 0x96, 0xd, 0x99, 0x2b, 0xb6, 0xbd, 0x6e, 0xa5, - 0x6d, 0x28, 0xd4, 0xc0, 0x19, 0xe3, 0x91, 0x49, 0xe1, 0xa7, 0x84, 0xc8, 0xe7, 0x77, 0x56, - 0x57, 0x94, 0xa2, 0x2e, 0x49, 0xf7, 0x8b, 0x1c, 0x8f, 0x85, 0x75, 0x8f, 0x69, 0x97, 0x6b, - 0xc2, 0x4d, 0xd9, 0x88, 0x23, 0xdc, 0x50, 0xb3, 0xa, 0xbb, 0x19, 0xbc, 0xe0, 0x21, 0x76, - 0xde, 0xe9, 0x46, 0x5d, 0x32, 0x6b, 0x8d, 0x4b, 0x99, 0xd4, 0x85, 0xc, 0x77, 0x29, 0x1f, - 0x6b, 0x8f, 0xf2, 0x2, 0x89, 0xef, 0x63, 0xab, 0xc, 0xe1, 0xd6, 0x72, 0xe3, 0xdf, 0x88, - 0xd0, 0x2c, 0xdf, 0xae, 0xd6, 0xf9, 0x29, 0x7, 0x94, 0x93, 0x10, 0x66, 0x57, 0x78, 0x6b, - 0x8e, 0x84, 0x11, 0x6d, 0x2b, 0xe5, 0x8a, 0xa5, 0x65, 0x98, 0xfc, 0x92, 0x47, 0x1d, 0xfd, - 0x4b, 0x41, 0xdc, 0x87, 0x42, 0xf8, 0xbc, 0x9e, 0xc1, 0xfa, 0x91, 0x81, 0x11, 0xcc, 0x92, - 0x2f, 0xdb, 0xd8, 0xf8, 0x2e, 0x56, 0x6f, 0xbe, 0xf8, 0x6c, 0xf8, 0x5f, 0x2d, 0x61, 0xb4, - 0x4c, 0x7c, 0x6c, 0x11, 0x46, 0x4a, 0x63, 0x51, 0x55, 0x5a, 0xf5, 0xfa, 0x26, 0xc7, 0x45, - 0x3, 0x64, 0x84, 0xcb, 0x69, 0x36, 0x9b, 0x5, 0x1f, 0x1c, 0x10, 0x68, 0xbc, 0x12, 0x70, - 0xde, 0x83, 0xdf, 0x94, 0x9b, 0x94, 0x6f, 0xae, 0xdb, 0xe8, 0xef, 0xd7, 0x6c, 0x23, 0xd0, - 0x6f, 0x8c, 0xc5, 0x6b, 0x37, 0xad, 0x72, 0x16, 0x69, 0x77, 0x95, 0xb4, 0x6d, 0x6e, 0x1, - 0x9f, 0xf0, 0xbd, 0xd5, 0x1f, 0x5b, 0x7a, 0xc5, 0xe3, 0x2d, 0xf7, 0x3e, 0xd1, 0xce, 0xbe, - 0x89, 0x34, 0xfa, 0x3d, 0x93, 0x6c, 0x90, 0x53, 0x3d, 0xfd, 0x7, 0xc4, 0xb3, 0xb, 0x9a, - 0x22, 0xba, 0xaa, 0x50, 0x20, 0xaa, 0x4f, 0x72, 0xb6, 0xf9, 0xed, 0xc0, 0x89, 0xef, 0xab, - 0x66, 0x5a, 0x47, 0x3, 0x6f, 0xc7, 0xb4, 0x10, 0x0, 0x89, 0x7, 0x4f, 0xa, 0xbe, 0x64, 0xfb, - 0x5b, 0x33, 0x28, 0xbe, 0x5a, 0xe6, 0x9c, 0x1b, 0x94, 0x5f, 0x1, 0x88, 0x6, 0xbc, 0xbf, - 0x81, 0x98, 0x97, 0x54, 0xe7, 0x52, 0xa0, 0xa, 0x37, 0xf, 0xf0, 0x3f, 0xba, 0x7, 0xc1, - 0xbc, 0xbe, 0x36, 0x31, 0x94, 0x5d, 0x7a, 0x8c, 0x2d, 0xbe, 0xc, 0x2c, 0xb2, 0x71, 0xa2, - 0x73, 0xb4, 0xfc, 0xd2, 0xc4, 0x24, 0x5, 0x64, 0xd1, 0x15, 0xf6, 0x61, 0x7c, 0x60, 0x90, - 0x49, 0x8c, 0x69, 0x68, 0xa3, 0x73, 0xf9, 0x1, 0x7, 0xfa, 0x4f, 0x2a, 0xd0, 0x52, 0x84, - 0x7c, 0x5c, 0x47, 0x78, 0x3c, 0xac, 0xc4, 0x5c, 0x18, 0x32, 0x6c, 0x5e, 0xbb, 0xdb, 0xbd, - 0x3c, 0x84, 0xc9, 0x9f, 0x65, 0xab, 0x3f, 0xa, 0x53, 0x2c, 0xa1, 0x50, 0x4a, 0x45, 0x62, - 0x46, 0xaa, 0xb4, 0xe8, 0x49, 0x11, 0x33, 0xa1, 0x32, 0x30, 0x2d, 0xf0, 0xb2, 0x2f, 0x60, - 0x68, 0x4a, 0x3b, 0x27, 0xd3, 0xb, 0xfa, 0x53, 0xc8, 0xdb, 0x99, 0xea, 0x8c, 0x67, 0x57, - 0x25, 0x26, 0xe, 0xc5, 0x98, 0xd0, 0xaf, 0xff, 0xac, 0x83, 0x85, 0x8f, 0x21, 0x4b, 0x91, - 0xdd, 0x79, 0x40, 0x9e, 0x36, 0x1f, 0x28, 0x62, 0xc9, 0xd3, 0x32, 0xe8, 0xc0, 0x62, 0x1b, - 0x5b, 0xd5, 0x16, 0xf9, 0x2f, 0xa5, 0x46, 0x73, 0xb3, 0x0, 0xc9, 0xbf, 0x3c, 0x31, 0x60, - 0x3a, 0xbf, 0xc3, 0xdd, 0xc9, 0xb0, 0x8b, 0x7c, 0x2, 0x39, 0x88, 0x37, 0x15, 0xfb, 0x81, - 0x59, 0x80, 0xb2, 0xd9, 0x62, 0xf, 0xac, 0x85, 0x82, 0x8a, 0x49, 0x4, 0xea, 0x4a, 0x1d, - 0xb2, 0x29, 0x81, 0xba, 0xd7, 0xe4, 0x1a, 0x7f, 0x5d, 0x95, 0xf8, 0xcc, 0x70, 0x33, 0x79, - 0x91, 0x85, 0xf0, 0xc, 0xbb, 0x62, 0x3a, 0xcb, 0x1a, 0x6, 0x59, 0x88, 0x73, 0xb7, 0x54, - 0xf6, 0x2a, 0xdb, 0xb4, 0xd3, 0x6a, 0xe2, 0x72, 0x33, 0xf5, 0x55, 0xa9, 0x9c, 0xb8, 0xb6, - 0xf2, 0x69, 0x65, 0xde, 0xc5, 0xf9, 0x9a, 0x25, 0xe6, 0x9b, 0x38, 0x74, 0xe0, 0x17, 0x47, - 0x96, 0x84, 0xce, 0x6c, 0x35, 0xb7, 0xfd, 0x90, 0x8e, 0xaf, 0x48, 0x41, 0x17, 0xd8, 0xd8, - 0xe0, 0x45, 0x1, 0x1b, 0xea, 0x75, 0x5b, 0x4, 0xfb, 0xf2, 0x8d, 0x47, 0xfd, 0x4f, 0xf1, - 0xd0, 0xd1, 0x33, 0xab, 0xce, 0x57, 0xd1, 0x3f, 0xde, 0xc, 0xf1, 0xbe, 0x2b, 0x81, 0xe2, - 0x45, 0x4a, 0x2f, 0x25, 0x16, 0xf7, 0x9f, 0x8, 0x98, 0x7f, 0x4a, 0x31, 0xd7, 0x66, 0xf9, - 0xa0, 0x5c, 0x4e, 0xee, 0x4f, 0x3f, 0xbc, 0x4a, 0x4a, 0xcd, 0x2c, 0x28, 0x25, 0xbc, 0xe1, - 0x47, 0x8d, 0xd2, 0x92, 0x5, 0xa, 0x67, 0xb2, 0x49, 0x4f, 0x47, 0xe8, 0xe5, 0x63, 0x92, - 0xe0, 0xd2, 0x35, 0xed, 0xd9, 0xb6, 0x7b, 0x37, 0x7f, 0x20, 0xc4, 0xe4, 0xc4, 0x20, 0xbb, - 0xd, 0x88, 0x29, 0xbe, 0x68, 0x87, 0xf, 0xfe, 0xb, 0xff, 0x2, 0x6b, 0xca, 0x47, 0x40, 0x80, - 0x15, 0xc7, 0xcc, 0x7f, 0x31, 0x20, 0x62, 0x59, 0x51, 0xe5, 0x35, 0x57, 0x27, 0x6b, 0x34, - 0x3e, 0x1c, 0xa1, 0x32, 0x3b, 0x8b, 0xeb, 0x6a, 0xa6, 0x4a, 0xe8, 0x7d, 0xaa, 0x98, 0x4c, - 0x6e, 0x97, 0x1c, 0x5b, 0x15, 0xef, 0x57, 0xd7, 0x4f, 0x8a, 0x5f, 0xde, 0x49, 0xc, 0x80, - 0xa5, 0xcb, 0x19, 0x85, 0xe5, 0xbe, 0x16, 0x32, 0x6b, 0xd1, 0xf2, 0xe0, 0xff, 0x58, 0x31, - 0xe5, 0x55, 0x72, 0xbf, 0xa5, 0x2e, 0x7f, 0x9, 0x2c, 0x77, 0xc4, 0xec, 0x75, 0xcd, 0x11, - 0x31, 0x78, 0x39, 0xed, 0x79, 0x7d, 0x3, 0x70, 0xac, 0xa3, 0x2a, 0x8f, 0xe7, 0x7b, 0x2, - 0xa0, 0x1b, 0x1c, 0xf9, 0x36, 0x36, 0x91, 0x31, 0x71, 0x80, 0x3a, 0x2e, 0x6d, 0x2d, 0x73, - 0xf1, 0x8c, 0xfe, 0x6, 0x2c, 0x1c, 0x69, 0x8f, 0xae, 0x46, 0x5a, 0xdc, 0xfa, 0x3b, 0x3d, - 0x2a, 0x50, 0xd1, 0x3f, 0xd0, 0xa5, 0xfb, 0x21, 0xfe, 0xc8, 0x60, 0x6f, 0x71, 0xb8, 0xa9, - 0xbf, 0xe5, 0x35, 0x80, 0x3b, 0xde, 0xb4, 0xdf, 0xca, 0xa0, 0x1e, 0xbc, 0x9b, 0xcb, 0xc2, - 0x9e, 0x83, 0x44, 0xf9, 0x9f, 0x92, 0x57, 0x22, 0x2f, 0x19, 0xa3, 0x73, 0x85, 0x62, 0x86, - 0x2d, 0xce, 0xf6, 0x3d, 0xb3, 0x8e, 0xeb, 0xaa, 0x9e, 0xe6, 0x1f, 0xf5, 0x51, 0x3e, 0xf3, - 0xb8, 0xd9, 0x44, 0x55, 0x1e, 0xbe, 0x89, 0x2f, 0x6a, 0xb5, 0xfb, 0x83, 0xc7, 0x55, 0x5c, - 0xaa, 0xa0, 0x1c, 0x15, 0x3e, 0xd4, 0x2e, 0x2e, 0x36, 0x69, 0x2f, 0x8e, 0xcb, 0xc7, 0xea, - 0x3d, 0x79, 0x2e, 0xf0, 0x2e, 0xa6, 0xd8, 0x39, 0x3b, 0xa4, 0x99, 0xae, 0xc, 0x8f, 0x3e, - 0x77, 0x2a, 0xf3, 0x93, 0x8d, 0xdc, 0x79, 0xbe, 0x79, 0x1c, 0xe6, 0xf9, 0xc4, 0x78, 0x38, - 0xce, 0x93, 0x96, 0xf7, 0x3a, 0xa5, 0x54, 0x70, 0xe6, 0x6f, 0x8a, 0x61, 0x3e, 0xdf, 0xd9, - 0x72, 0x2f, 0x2e, 0x3d, 0xeb, 0xb6, 0x29, 0xc6, 0x87, 0xb2, 0xf9, 0x72, 0x2, 0x56, 0x67, - 0x74, 0xec, 0xe7, 0xa2, 0xd2, 0xc2, 0x9f, 0xa, 0x9e, 0x22, 0xd2, 0xf5, 0xf7, 0x74, 0x24, - 0x4f, 0xfc, 0x8f, 0xdf, 0xab, 0xe0, 0x34, 0x80, 0xa0, 0x82, 0xab, 0x44, 0x19, 0x28, 0x75, - 0x74, 0xe5, 0x1b, 0x75, 0xff, 0xfc, 0x94, 0x4d, 0x80, 0xea, 0x94, 0x85, 0xd6, 0xf5, 0x8b, - 0x39, 0x51, 0x7c, 0x12, 0x3f, 0x6a, 0xf0, 0xa1, 0xed, 0xfd, 0x52, 0x2d, 0x90, 0xa8, 0x4b, - 0x2b, 0xe1, 0x3b, 0x37, 0xc4, 0xe8, 0x98, 0xfb, 0x1c, 0x5f, 0xdc, 0x5d, 0x2f, 0xde, 0xae, - 0xd0, 0xa, 0x5c, 0x3a, 0x1f, 0xce, 0x37, 0x7f, 0x9d, 0x84, 0xb9, 0xc7, 0xe2, 0xfc, 0xf7, - 0x73, 0xee, 0x79, 0xbf, 0x6a, 0x62, 0x6a, 0x8c, 0x0, 0x54, 0x3e, 0xca, 0x66, 0x7e, 0xf0, - 0xf9, 0x5c, 0xd3, 0xc9, 0xd, 0xd8, 0x85, 0x3e, 0xa7, 0x19, 0x91, 0xf5, 0x90, 0x51, 0xbb, - 0xfb, 0x63, 0xec, 0x25, 0x12, 0x14, 0x3, 0xce, 0xde, 0x7, 0xf7, 0x59, 0x8f, 0x73, 0xb4, - 0xe2, 0xf1, 0x32, 0x35, 0x21, 0x2f, 0x0, 0x61, 0x69, 0x5e, 0x2f, 0x12, 0x4f, 0x85, 0xbc, - 0xb3, 0x14, 0x85, 0x1f, 0x54, 0x6d, 0xa7, 0xfe, 0x47, 0xe8, 0xc4, 0xb2, 0x3f, 0xf4, 0x15, - 0xf8, 0xc6, 0xdd, 0x24, 0x14, 0x81, 0xa8, 0xe, 0xb1, 0x9b, 0x59, 0x60, 0x86, 0x64, 0x92, - 0xc2, 0x5c, 0xc2, 0x2d, 0x92, 0xcc, 0x9e, 0xbb, 0xa8, 0xed, 0xe5, 0x2b, 0xd1, 0x40, 0xdf, - 0xdd, 0x57, 0x8d, 0x96, 0x3, 0x34, 0x6e, 0xbf, 0xaf, 0xfd, 0x0, 0xfd, 0x4f, 0x0, 0x4, 0x35, - 0xb8, 0x2b, 0x3b, 0xec, 0x33, 0x48, 0x94, 0xd0, 0x3c, 0x16, 0x98, 0x9, 0xd1, 0xbc, 0x0, - 0x36, 0xb3, 0x9d, 0x60, 0x7f, 0xab, 0x29, 0xe4, 0xca, 0xc0, 0x30, 0xd7, 0x45, 0x7d, 0xd7, - 0xb7, 0xf2, 0xc5, 0x6e, 0x7c, 0x9a, 0x5d, 0xe8, 0xfc, 0x2c, 0x27, 0x7b, 0xdb, 0x30, 0xb9, - 0xc3, 0x51, 0x6c, 0xc7, 0x35, 0x0, 0xeb, 0x8c, 0x27, 0xf9, 0x70, 0xe4, 0x54, 0xee, 0xb0, - 0xe6, 0xbe, 0xb8, 0x94, 0x14, 0x6f, 0xf5, 0xa6, 0x28, 0xa2, 0xc3, 0x7e, 0x3c, 0x93, 0x5a, - 0xdd, 0x79, 0x44, 0x7f, 0x9c, 0xf8, 0xde, 0x6c, 0xfa, 0xda, 0xa9, 0xe5, 0x42, 0x99, 0x4e, - 0x60, 0x21, 0x9e, 0x12, 0x4a, 0x94, 0xb5, 0x9b, 0xa6, 0x0, 0x57, 0x23, 0x7b, 0xcf, 0x38, - 0xe8, 0xe3, 0xcb, 0x1d, 0xf8, 0x13, 0x9f, 0x2f, 0x35, 0x91, 0xb4, 0xd8, 0xac, 0xe8, 0xe7, - 0xb2, 0x87, 0x3f, 0xac, 0xd, 0xcc, 0x6f, 0xbd, 0xfb, 0x5f, 0xd6, 0x68, 0x37, 0x61, 0xe8, - 0x71, 0xbe, 0xc6, 0xc0, 0xae, 0x52, 0xf5, 0x1d, 0xc1, 0x1, 0xc8, 0xfa, 0x89, 0xf, 0x3b, - 0x90, 0x57, 0xa5, 0x99, 0xec, 0xa, 0xb8, 0xab, 0x6d, 0x12, 0x9a, 0x8b, 0xe8, 0xcc, 0xe0, - 0x30, 0x9f, 0x42, 0x35, 0x7, 0xa0, 0x4a, 0x71, 0xab, 0x6d, 0x82, 0x98, 0x9b, 0x7f, 0xb3, - 0xc7, 0x6b, 0x25, 0x6f, 0xe5, 0x86, 0xa8, 0xdb, 0xb2, 0x7f, 0x37, 0xb1, 0xd3, 0x46, 0xe9, - 0xe6, 0x92, 0xbe, 0x69, 0x90, 0xbf, 0xc5, 0xf0, 0xb4, 0xe1, 0x22, 0xe4, 0xc5, 0x7d, 0x1a, - 0x28, 0x50, 0x5b, 0x36, 0x3d, 0x86, 0x80, 0x92, 0x22, 0xed, 0xc6, 0x5d, 0x2a, 0x3f, 0xad, - 0x75, 0xb1, 0x3a, 0x5e, 0xae, 0xed, 0x4f, 0xa5, 0xaa, 0x48, 0x85, 0x5f, 0xb8, 0x21, 0xa, - 0x55, 0x5d, 0x2f, 0x2c, 0x17, 0xf7, 0xac, 0x38, 0xa3, 0x95, 0x62, 0x86, 0xc2, 0xa3, 0x6a, - 0x44, 0xdc, 0xb3, 0x43, 0x44, 0xc3, 0x3b, 0xc8, 0xc2, 0x5d, 0xe8, 0x12, 0x35, 0xae, 0xfd, - 0x26, 0x75, 0x87, 0x6, 0x7, 0xe0, 0x81, 0xe7, 0x4b, 0x2f, 0x54, 0xd6, 0x4a, 0x1c, 0xb9, - 0x2f, 0xfb, 0xad, 0x6d, 0x32, 0x94, 0x68, 0x65, 0x6, 0xa9, 0x9f, 0xf4, 0xe9, 0x8e, 0xaf, - 0x6, 0xb0, 0x41, 0x11, 0xbb, 0x98, 0xec, 0x76, 0x40, 0x7a, 0xd, 0xa7, 0x7, 0x77, 0x1b, - 0xa0, 0x7, 0x8b, 0x84, 0x9e, 0xeb, 0xda, 0x80, 0xcf, 0xc, 0x48, 0xa9, 0x7f, 0x27, 0xcd, - 0xa5, 0x1a, 0x92, 0xfc, 0xde, 0x99, 0xe2, 0x97, 0x83, 0x80, 0x65, 0xbf, 0xb1, 0xba, 0xed, - 0xdb, 0x3a, 0xe0, 0xee, 0xc2, 0x2, 0x8, 0x21, 0x60, 0xfe, 0x91, 0x7a, 0xcd, 0x92, 0xd3, - 0x12, 0x13, 0x19, 0x82, 0x90, 0xd2, 0xb4, 0x9a, 0xd7, 0x32, 0xd0, 0xf2, 0x85, 0x99, 0xa4, - 0x0, 0xcb, 0x4f, 0x8a, 0xf8, 0x86, 0x50, 0x11, 0x23, 0x53, 0xe9, 0x6a, 0xe, 0x2a, 0x19, - 0x7c, 0xe8, 0x80, 0x17, 0x9e, 0xc9, 0xf4, 0x19, 0x28, 0xb6, 0x32, 0x24, 0x61, 0xac, 0xe5, - 0xaa, 0x11, 0x53, 0x1b, 0x34, 0x1f, 0x24, 0x85, 0x14, 0x86, 0xb1, 0x9e, 0x2e, 0x4d, 0x82, - 0x12, 0x69, 0x6a, 0xbb, 0xb3, 0x8f, 0xf3, 0xc2, 0x40, 0x7c, 0xbd, 0xad, 0x31, 0xdd, 0x6, - 0xf5, 0x16, 0x3c, 0xb, 0x43, 0x31, 0x1, 0x39, 0xfd, 0xa, 0xfe, 0x5d, 0x5d, 0x59, 0x1a, - 0xf1, 0x3a, 0xc5, 0xc5, 0xeb, 0x30, 0x57, 0xa4, 0xdc, 0xf4, 0xfa, 0xa3, 0xf, 0x71, 0xb6, - 0x52, 0xb8, 0x73, 0x5, 0x8a, 0xcf, 0xdb, 0x9b, 0xdb, 0x65, 0xdb, 0x64, 0xbd, 0x27, 0x45, - 0xde, 0xe6, 0x50, 0x0, 0xa, 0x1e, 0x4d, 0xce, 0x98, 0xe0, 0x2e, 0x2e, 0xe0, 0xd9, 0x44, - 0xbf, 0x86, 0x60, 0xb1, 0x33, 0xb3, 0x33, 0xaa, 0x8e, 0x5, 0x96, 0x10, 0xca, 0x4b, 0x2c, - 0x56, 0xdf, 0x42, 0x59, 0xdc, 0x93, 0xc1, 0x79, 0xed, 0x0, 0x54, 0x44, 0x40, 0xf7, 0x86, - 0xaa, 0x8e, 0xbb, 0x5c, 0x1a, 0x6, 0x28, 0xea, 0x11, 0xab, 0xba, 0x6a, 0x36, 0x1c, 0x30, - 0x6c, 0x66, 0x11, 0xce, 0xf4, 0xd, 0xab, 0xed, 0xa0, 0x50, 0xeb, 0x13, 0xe1, 0x22, 0x1a, - 0x75, 0x68, 0x29, 0x62, 0x10, 0xae, 0x68, 0x80, 0xf6, 0xa7, 0xd4, 0x9d, 0xcd, 0x2c, 0x22, - 0x6c, 0xab, 0x44, 0x4d, 0x53, 0xad, 0x1c, 0x2, 0x5d, 0x3, 0xbb, 0x9b, 0x41, 0x97, 0x43, - 0x46, 0x24, 0x34, 0xdf, 0x7a, 0xaf, 0x27, 0xbd, 0xac, 0x4f, 0x31, 0xed, 0xeb, 0x6d, 0x9f, - 0x46, 0x2d, 0x78, 0xc7, 0xad, 0x60, 0xea, 0x21, 0x52, 0x1f, 0x66, 0x4, 0xd4, 0xe2, 0x0, - 0x3, 0xda, 0xee, 0x4a, 0xa, 0xc7, 0x5b, 0x70, 0x12, 0x9f, 0xb7, 0xa2, 0x6a, 0x7d, 0xca, - 0x28, 0x3a, 0xc6, 0x5e, 0x57, 0x2, 0xb1, 0x88, 0x29, 0x72, 0xa4, 0x82, 0x9a, 0x59, 0xb6, - 0xc0, 0x63, 0xbb, 0x88, 0xc5, 0x15, 0x3f, 0x33, 0xf5, 0x24, 0x54, 0xbc, 0x16, 0x7c, 0xc6, - 0xda, 0xd8, 0xfa, 0xb9, 0xe5, 0xca, 0x1e, 0x49, 0xdc, 0x2a, 0x25, 0x42, 0xe, 0x58, 0xa1, - 0x60, 0x1, 0x91, 0x1d, 0x8a, 0xaf, 0x91, 0x60, 0x9, 0x17, 0xed, 0xc8, 0x28, 0xcf, 0x88, - 0xb0, 0xb0, 0x40, 0xca, 0x6d, 0xe1, 0x9, 0xe, 0x19, 0x4a, 0xc2, 0x48, 0xba, 0x5a, 0x22, - 0xfe, 0x4b, 0xe2, 0x38, 0xe6, 0xe0, 0x44, 0x33, 0x8b, 0xcd, 0xc, 0x25, 0x2b, 0x89, 0x68, - 0x64, 0x61, 0x55, 0x3a, 0x55, 0xb2, 0x7c, 0xbc, 0xe6, 0x93, 0x62, 0x5c, 0xc1, 0x76, 0x1c, - 0x5c, 0x1e, 0x59, 0x3f, 0xcb, 0x39, 0x53, 0x19, 0xf3, 0x7e, 0xaf, 0xc3, 0xab, 0x74, 0x78, - 0x73, 0x73, 0x4d, 0x2f, 0xe6, 0x9f, 0x3c, 0xb1, 0xc8, 0x77, 0xbe, 0x16, 0xd2, 0xe5, 0x8, - 0xe1, 0x71, 0xce, 0xb4, 0x2, 0xd7, 0x69, 0x1, 0x3e, 0x49, 0x31, 0x27, 0x5, 0xad, 0x92, - 0xdf, 0x10, 0x90, 0xc5, 0x54, 0x76, 0xc4, 0x4f, 0x8f, 0x14, 0x8d, 0xff, 0x88, 0xd0, 0x50, - 0x20, 0x8d, 0x70, 0x8a, 0xcb, 0x43, 0xab, 0x31, 0x30, 0xec, 0x7b, 0x93, 0x71, 0xfc, 0xc3, - 0x68, 0x4a, 0x72, 0x3e, 0xe7, 0x84, 0xce, 0x91, 0x68, 0xf, 0xfa, 0xb9, 0xce, 0x4f, 0x7a, - 0xde, 0x18, 0x12, 0x90, 0xf5, 0xf2, 0xce, 0xc5, 0xc5, 0xd6, 0x64, 0x5b, 0xa1, 0x66, 0xe0, - 0x3a, 0xff, 0xd, 0x49, 0xb1, 0x5d, 0x2c, 0x6e, 0x3e, 0x5b, 0x86, 0x2e, 0xd7, 0xae, 0xd5, - 0xc1, 0xcc, 0xc7, 0x3b, 0x44, 0x1f, 0x72, 0x67, 0x84, 0x6, 0xbb, 0x5c, 0x13, 0xff, 0x20, - 0xd8, 0x21, 0x22, 0xd6, 0x9c, 0x2b, 0xa6, 0x47, 0x85, 0xbd, 0xcf, 0xc6, 0xc3, 0x4d, 0x5d, - 0xee, 0x7d, 0x63, 0x4f, 0xe4, 0xab, 0x37, 0xfc, 0x95, 0x84, 0xbd, 0xc8, 0x14, 0x24, 0x30, - 0x43, 0x29, 0xc6, 0x8d, 0xd5, 0xa7, 0x84, 0xf6, 0x4a, 0x74, 0x54, 0x7e, 0x4b, 0x4d, 0xba, - 0xbc, 0x2c, 0xa8, 0xe0, 0x3b, 0xbd, 0xd4, 0x8d, 0x32, 0xf8, 0x92, 0x91, 0x3f, 0x42, 0xdb, - 0xbe, 0xac, 0x66, 0x8d, 0x78, 0x3f, 0xca, 0xe9, 0x45, 0x78, 0xd7, 0x2f, 0xec, 0xfa, 0xb6, - 0x7c, 0x92, 0xed, 0xb, 0xff, 0xa0, 0xb7, 0xd4, 0xfb, 0xe8, 0x6e, 0x63, 0x52, 0x54, 0xa9, - 0x64, 0x8e, 0x61, 0xd6, 0x1a, 0x7f, 0x97, 0x53, 0x41, 0xb2, 0xa0, 0xf2, 0x4c, 0xff, 0x54, - 0xd7, 0x9c, 0x90, 0xcf, 0x3, 0xa3, 0xc6, 0x59, 0xb2, 0xb2, 0xe0, 0xb2, 0xe2, 0xd6, 0x54, - 0xd8, 0xad, 0x71, 0xf4, 0xae, 0xc7, 0x7a, 0xfd, 0x30, 0xb0, 0x6c, 0xa2, 0x4b, 0xc4, 0x2e, - 0x59, 0xab, 0xcd, 0xb4, 0xf4, 0xe7, 0xde, 0xad, 0x14, 0x1b, 0x64, 0x42, 0x4b, 0x5d, 0xf3, - 0xba, 0xf3, 0x7a, 0xb9, 0xb7, 0xd1, 0xcb, 0x42, 0xec, 0x23, 0x8a, 0xbb, 0x44, 0x79, 0x58, - 0x9e, 0x79, 0x38, 0x20, 0x8, 0x0, 0x8e, 0xa7, 0xbf, 0xbd, 0x75, 0x69, 0xd5, 0x4a, 0x83, - 0x62, 0x70, 0x9b, 0xb3, 0xf2, 0x28, 0xdb, 0xf, 0x8d, 0xad, 0xf3, 0xb9, 0xa9, 0x2d, 0x16, - 0x42, 0x1b, 0x55, 0x1b, 0x66, 0xfa, 0x14, 0xa8, 0x29, 0x49, 0x23, 0xb2, 0xfd, 0x68, 0x9, - 0x69, 0x7d, 0x74, 0xc6, 0x4f, 0xc8, 0x29, 0xc5, 0x8a, 0x9a, 0xde, 0x7, 0xd3, 0x78, 0xf4, - 0xe6, 0x5b, 0x8e, 0x34, 0xc4, 0xf, 0x9, 0x0, 0x68, 0xce, 0x2d, 0x81, 0x27, 0x24, 0x2f, - 0xcd, 0x70, 0x5c, 0x86, 0x9c, 0x2d, 0x10, 0xee, 0xd4, 0x9a, 0x1a, 0xdf, 0x2c, 0xc8, 0x65, - 0x8a, 0xd4, 0xd7, 0x6d, 0x10, 0x16, 0x9f, 0xeb, 0xc7, 0x64, 0x61, 0xb4, 0xbd, 0x51, 0x7b, - 0x88, 0xc5, 0x50, 0x95, 0xc7, 0xa4, 0x7e, 0xa9, 0x74, 0x44, 0x9e, 0xd5, 0x56, 0x95, 0x4, - 0xd8, 0xb0, 0xb2, 0x5c, 0x4f, 0x5, 0x82, 0x2b, 0xfc, 0x1e, 0x53, 0x9d, 0xe2, 0x10, 0xaa, - 0x32, 0x51, 0x91, 0x1d, 0xeb, 0x47, 0x4, 0x6, 0x70, 0xd6, 0x61, 0xb6, 0xc8, 0xe3, 0xd, - 0x52, 0x84, 0xdb, 0x9c, 0x55, 0x6f, 0x46, 0x6c, 0x50, 0xb6, 0x62, 0x42, 0x31, 0xfa, 0x63, - 0x9d, 0x97, 0xa7, 0x9c, 0x31, 0xb1, 0x43, 0x54, 0x4f, 0x5f, 0x7e, 0x6a, 0x34, 0x91, 0x38, - 0x68, 0x9b, 0x6b, 0x5e, 0xc1, 0x48, 0x5, 0x9d, 0x1b, 0x7e, 0x95, 0x63, 0x64, 0x9f, 0x3c, - 0x4c, 0x71, 0x5c, 0x9b, 0x87, 0xce, 0x31, 0x5c, 0xc7, 0xa7, 0x24, 0x16, 0xdb, 0x83, 0xdb, - 0x54, 0xea, 0x6a, 0xb8, 0xe, 0xd6, 0xba, 0x10, 0xeb, 0xe3, 0x7c, 0xa0, 0xcc, 0x91, 0xe8, - 0x6, 0x69, 0x66, 0x60, 0xef, 0x55, 0x4a, 0x3e, 0xf9, 0xe6, 0xb4, 0x5b, 0x48, 0xb6, 0xf4, - 0xeb, 0x8, 0xe6, 0xc3, 0xb5, 0x22, 0xf8, 0x18, 0x1b, 0xc0, 0xb6, 0xdb, 0x87, 0x8b, 0x13, - 0x3c, 0x21, + 0xa5, 0x62, 0xcc, 0xe8, 0x5f, 0x22, 0x79, 0x2b, 0xf3, 0xe7, 0x3c, 0x3, 0xde, 0xfe, 0x54, 0x8c, 0xe1, 0xa4, + 0xc2, 0x61, 0x81, 0x8b, 0x48, 0x38, 0x7d, 0x6, 0x4, 0x28, 0xbe, 0x53, 0xc5, 0x30, 0x38, 0x3b, 0x1e, 0xed, 0x48, + 0xc6, 0x2c, 0x88, 0x4, 0xbb, 0x58, 0xd7, 0x10, 0xa8, 0x8e, 0xff, 0x89, 0x4a, 0xc0, 0x3a, 0x6, 0x82, 0xc4, 0xfe, + 0x73, 0x2f, 0x39, 0xe7, 0xb7, 0xba, 0xb7, 0xa8, 0xfb, 0xb6, 0x68, 0x8, 0x90, 0xc6, 0x2d, 0x99, 0xbb, 0x85, + 0x17, 0x48, 0xcd, 0x2d, 0xe1, 0xf7, 0x80, 0x26, 0x78, 0x6d, 0xce, 0x62, 0xed, 0x2, 0x7c, 0x8f, 0x35, 0xde, + 0x1c, 0xb6, 0xa, 0x95, 0xab, 0x38, 0xd9, 0x51, 0x8c, 0x49, 0x35, 0xce, 0xa6, 0xd4, 0x1e, 0x3a, 0xe7, 0xd9, + 0x7e, 0xd4, 0x2a, 0xf9, 0xfa, 0xb2, 0x8, 0xd2, 0xdf, 0xa9, 0x51, 0x2d, 0x6e, 0x8c, 0x99, 0xd2, 0xb6, 0x7c, + 0x30, 0xac, 0xa, 0x8, 0x2f, 0x29, 0xaa, 0x15, 0xfe, 0x8e, 0x3f, 0x99, 0xd, 0x9a, 0xfb, 0x74, 0x68, 0xa9, 0x72, + 0x1, 0xd, 0x5, 0x59, 0x60, 0x8, 0xc3, 0x5b, 0x72, 0xe3, 0x47, 0x71, 0xbe, 0xa7, 0xa4, 0x79, 0x89, 0xde, 0xe2, + 0xd7, 0x5f, 0x97, 0x8e, 0x18, 0x2a, 0xd0, 0x92, 0x30, 0x51, 0xfa, 0xa7, 0xa9, 0x62, 0x7a, 0x32, 0x8e, 0xf, + 0xc5, 0x98, 0xd8, 0x24, 0x39, 0x5a, 0xca, 0xcf, 0x1d, 0x52, 0x62, 0x16, 0x5b, 0xfe, 0x45, 0xfc, 0x56, 0xf0, + 0x20, 0xb1, 0xb4, 0x16, 0x19, 0x1e, 0x19, 0xba, 0x5b, 0xe, 0x73, 0x78, 0xd1, 0x5, 0xe5, 0xa7, 0xbc, 0x6, 0xca, + 0x3b, 0x3b, 0x16, 0x48, 0xa4, 0x52, 0x58, 0x20, 0x8, 0x91, 0x31, 0x17, 0x68, 0xd1, 0x2a, 0x88, 0x5b, 0xd2, + 0xc1, 0xd3, 0xd0, 0x88, 0xc5, 0x2c, 0xfa, 0xdc, 0x39, 0xf7, 0xeb, 0x72, 0x6d, 0x6b, 0x77, 0xd7, 0x57, 0x6f, + 0x62, 0x40, 0x12, 0xc0, 0xff, 0xb2, 0xaa, 0xbf, 0x35, 0x11, 0x30, 0xc7, 0xf4, 0x78, 0xf8, 0x70, 0x40, 0xf0, + 0xb6, 0x20, 0xab, 0xb, 0x94, 0x52, 0xd5, 0x53, 0x74, 0x3b, 0x4b, 0xfb, 0x53, 0x83, 0xf1, 0x7f, 0x46, 0xef, + 0x37, 0xe0, 0x44, 0xba, 0xc, 0x5a, 0x65, 0x7d, 0x37, 0x1f, 0x66, 0xe, 0x6f, 0x75, 0x1a, 0x2d, 0xe9, 0xd6, 0x3f, + 0x5, 0x74, 0xa9, 0x7, 0x5, 0xc4, 0x4f, 0x6a, 0x8d, 0x5a, 0xad, 0x95, 0xf5, 0xf2, 0x2a, 0xd9, 0x32, 0x4c, 0x4d, + 0x44, 0x6a, 0xb4, 0x1e, 0xb7, 0x29, 0x2, 0xf4, 0x2f, 0x23, 0x52, 0x8a, 0xe6, 0xb0, 0x94, 0x29, 0x7c, 0xf8, + 0x9e, 0x99, 0xbe, 0x63, 0x32, 0xa9, 0x2c, 0xdf, 0xb7, 0x64, 0xe5, 0xc5, 0xa7, 0x24, 0x75, 0xb1, 0x43, 0x6f, + 0x7, 0xf3, 0x7e, 0x15, 0x9a, 0x8f, 0x5e, 0xc0, 0x15, 0x8f, 0xcc, 0xfa, 0x3c, 0x9e, 0x66, 0xa, 0x84, 0xe4, 0x70, + 0xb2, 0x20, 0x89, 0x4e, 0x1e, 0x29, 0xbf, 0x74, 0x7f, 0xd1, 0x48, 0x64, 0x1d, 0xec, 0x3, 0xe9, 0x85, 0x76, + 0xab, 0xcf, 0x93, 0xfa, 0x6f, 0x4a, 0xf5, 0xa4, 0xc5, 0xf5, 0xc3, 0x6f, 0xd5, 0xae, 0x58, 0xa9, 0x94, 0x77, + 0x64, 0x75, 0x45, 0x12, 0x7d, 0x7a, 0x6d, 0x83, 0x2b, 0x23, 0xf9, 0x3e, 0x5e, 0x49, 0x57, 0xbe, 0x4f, 0x64, + 0x59, 0xcc, 0xae, 0x8f, 0xea, 0x7b, 0xa6, 0xe3, 0x6b, 0x8e, 0xab, 0xa, 0xdf, 0x59, 0x8b, 0x5, 0x9b, 0x93, 0x32, + 0xe8, 0x2e, 0x6b, 0xcc, 0xcb, 0x2e, 0xb8, 0x26, 0x26, 0x1b, 0x42, 0x8c, 0xf3, 0xe2, 0xaf, 0xf9, 0xb3, 0xfe, + 0x49, 0xf6, 0x8b, 0x9b, 0xea, 0x64, 0xc2, 0x85, 0xca, 0x59, 0x5a, 0xfe, 0xe5, 0xc5, 0xd4, 0x7a, 0x0, 0x87, + 0x4a, 0xb5, 0xe8, 0xb4, 0xbb, 0x6a, 0x84, 0x87, 0x7e, 0x82, 0x44, 0x13, 0xcf, 0xf, 0xeb, 0xff, 0xd7, 0xf0, + 0xab, 0x56, 0x79, 0xa1, 0x33, 0xe, 0xf0, 0xa, 0x4b, 0x1, 0x81, 0x8c, 0xfe, 0x76, 0xb2, 0xd1, 0x57, 0x3d, 0x26, + 0x94, 0x36, 0x19, 0x74, 0x48, 0x48, 0xcd, 0xc3, 0xfc, 0xc0, 0xe5, 0xb6, 0x2b, 0xef, 0xb2, 0x6a, 0x44, 0x64, + 0x54, 0x42, 0x6e, 0x10, 0xf0, 0xfe, 0x6, 0xbe, 0x1, 0x73, 0xde, 0x16, 0x2e, 0x4b, 0xa9, 0x5b, 0xe0, 0xa9, 0x1a, + 0xda, 0xb9, 0xb3, 0x7e, 0xaf, 0x63, 0x1, 0x6, 0x9a, 0x8, 0xce, 0x7e, 0x3a, 0x3f, 0x33, 0xb9, 0x41, 0x38, 0xaf, + 0x43, 0xa, 0x79, 0xe3, 0xf, 0x7c, 0x9a, 0x6c, 0xbd, 0x2c, 0xc3, 0xa2, 0xba, 0x50, 0x98, 0xaa, 0x77, 0xc4, 0x2, + 0x97, 0xc7, 0x60, 0xc4, 0x4d, 0x14, 0xf9, 0xa0, 0xe0, 0x96, 0xa6, 0x27, 0x83, 0xbd, 0x96, 0x1b, 0xf6, 0xcf, + 0x9f, 0xba, 0xe8, 0xac, 0x38, 0x4d, 0xf9, 0xe0, 0x49, 0x75, 0xd1, 0xf8, 0x5a, 0xff, 0x43, 0x87, 0x5, 0x45, + 0x18, 0x90, 0x8f, 0x53, 0xf8, 0x8e, 0xf7, 0x3b, 0x2b, 0xfe, 0x2f, 0xcf, 0x5d, 0x73, 0x59, 0xd8, 0x8f, 0xc7, + 0x3a, 0x4f, 0xa7, 0x78, 0xfa, 0xc4, 0x68, 0xd, 0x95, 0xc7, 0x82, 0x6b, 0xa2, 0xb7, 0x1f, 0xdc, 0xb8, 0xc9, + 0x5d, 0x83, 0x27, 0x24, 0x84, 0x2f, 0xf4, 0x5f, 0xb, 0xa7, 0x3d, 0x0, 0x35, 0xbb, 0x5c, 0xbb, 0xbf, 0x5e, 0x7c, + 0xb4, 0xf4, 0x43, 0x13, 0x2b, 0x17, 0x6e, 0xef, 0xbf, 0x19, 0x57, 0xa4, 0x29, 0xbc, 0xdf, 0xd9, 0x89, 0x7b, + 0x2d, 0x54, 0x46, 0xd6, 0x44, 0x90, 0x37, 0xea, 0xeb, 0x74, 0xb6, 0x9f, 0xe5, 0x4e, 0x57, 0x63, 0x43, 0xe5, + 0xd7, 0xf, 0x72, 0x65, 0x8c, 0x91, 0xe, 0xd4, 0xdd, 0x67, 0xce, 0x6a, 0xb5, 0xe2, 0x60, 0x38, 0x5a, 0xe8, 0x3b, + 0x55, 0xd3, 0x9a, 0x12, 0xdb, 0x57, 0x3, 0xb3, 0x64, 0xd9, 0x96, 0x9b, 0x7, 0xfd, 0x25, 0x41, 0x8c, 0xbc, 0x20, + 0x91, 0x11, 0x1, 0x5f, 0xfe, 0x44, 0x1e, 0x68, 0xc, 0x40, 0xa4, 0xc3, 0xc2, 0xb7, 0x4d, 0x5c, 0xa1, 0x36, 0x6e, + 0x52, 0xda, 0xed, 0x71, 0xc5, 0xce, 0x27, 0x1e, 0xdc, 0xfd, 0xb8, 0xda, 0x70, 0xba, 0x7a, 0x33, 0x66, 0x91, + 0x62, 0x46, 0xd1, 0xae, 0x12, 0xc8, 0x90, 0xe4, 0xb4, 0x21, 0x2f, 0xa5, 0xb8, 0x6, 0x71, 0x26, 0x49, 0x37, + 0xe5, 0xc7, 0xd6, 0xa1, 0x4f, 0xb0, 0xe9, 0xdb, 0xce, 0xee, 0x6e, 0xc1, 0xb, 0x11, 0x5f, 0x6f, 0x72, 0x23, + 0xb5, 0xb6, 0x81, 0x4d, 0x7f, 0xe3, 0xe5, 0x41, 0xf4, 0x29, 0x55, 0x89, 0xfd, 0x62, 0x5d, 0x11, 0xaa, 0xd, + 0x94, 0x58, 0xe0, 0x9f, 0xd9, 0xb7, 0xc7, 0x47, 0x4e, 0x70, 0xe6, 0x84, 0xb1, 0x5d, 0x3a, 0xd1, 0xed, 0x5, + 0x61, 0x79, 0xe2, 0xe7, 0x5, 0x53, 0x94, 0xe2, 0x44, 0x49, 0xc, 0xc4, 0x36, 0x85, 0x22, 0xb9, 0x7b, 0xa5, 0xb, + 0x59, 0xeb, 0xb8, 0x5d, 0x38, 0x4d, 0x6d, 0xe, 0x6b, 0x8a, 0x5f, 0x9f, 0x3b, 0x93, 0x5f, 0x26, 0xc3, 0x33, + 0x17, 0x21, 0x15, 0x3c, 0x92, 0xf3, 0x53, 0x48, 0x1c, 0x2c, 0x46, 0x48, 0xee, 0x9e, 0xf1, 0x9d, 0x12, 0x0, + 0xd2, 0x7c, 0x7b, 0xd1, 0xd5, 0x7c, 0xdc, 0x63, 0x2e, 0x22, 0x1e, 0x16, 0x8a, 0x31, 0x3, 0xee, 0x24, 0x11, + 0x53, 0x15, 0xef, 0x15, 0xf1, 0xcd, 0xc, 0x33, 0x51, 0x20, 0xab, 0xab, 0xa3, 0x6d, 0xdb, 0x89, 0x12, 0xfe, + 0xeb, 0x59, 0x75, 0x84, 0x28, 0xf9, 0x62, 0x86, 0xfb, 0xd9, 0xca, 0xc6, 0x28, 0x88, 0x1b, 0x41, 0xfe, 0xf5, + 0xe4, 0x6c, 0x15, 0x1a, 0xa1, 0xe1, 0xe3, 0x9, 0xb0, 0x71, 0x16, 0xc2, 0xee, 0xb4, 0x54, 0x48, 0x9d, 0x37, + 0xa1, 0x33, 0x86, 0xdd, 0x3f, 0x6e, 0x9b, 0x3f, 0x99, 0xce, 0x11, 0x5c, 0xea, 0xc9, 0xec, 0xaa, 0x17, 0xd6, + 0x4d, 0x5c, 0x77, 0x99, 0x5, 0x23, 0xd4, 0x1d, 0xa1, 0xc1, 0x8c, 0xec, 0x64, 0x90, 0xd5, 0xb3, 0xb8, 0x73, + 0x88, 0x0, 0xe6, 0x41, 0x88, 0x2b, 0x77, 0x9, 0x3, 0xa0, 0xe4, 0xa4, 0x93, 0xe7, 0xbe, 0xd7, 0xe9, 0x6c, 0x0, + 0x15, 0xa6, 0xde, 0x38, 0xda, 0x2b, 0x6d, 0xfb, 0xde, 0x0, 0x96, 0x75, 0x8e, 0x8c, 0xef, 0x94, 0xc4, 0x64, + 0xcd, 0xfc, 0xb7, 0xf8, 0x6, 0x5c, 0xcc, 0x41, 0xf6, 0xce, 0x2c, 0xf3, 0xba, 0x44, 0x9e, 0x9f, 0xa8, 0xe6, + 0xb3, 0x5a, 0xdb, 0x38, 0x5e, 0x53, 0x45, 0x4, 0xb2, 0x3e, 0xe7, 0xea, 0xc5, 0x1b, 0x40, 0xaf, 0xd0, 0xb7, + 0xd3, 0x6c, 0x9e, 0x30, 0xa1, 0x72, 0xc, 0xde, 0x66, 0x3b, 0x9c, 0x75, 0xb7, 0x67, 0x48, 0x17, 0x8c, 0x97, + 0xbc, 0xd2, 0x9, 0xc6, 0x94, 0xc9, 0x3f, 0xbf, 0xd6, 0x1d, 0x5f, 0x63, 0x18, 0xf1, 0x95, 0x6c, 0x49, 0x37, + 0x85, 0xb0, 0x3f, 0xa4, 0x7a, 0x36, 0xa8, 0xeb, 0xe1, 0xce, 0x88, 0xcc, 0x37, 0x45, 0xa9, 0xda, 0x91, 0x96, + 0xfa, 0xc4, 0xda, 0x2e, 0xcc, 0x49, 0xe1, 0x98, 0xf1, 0x93, 0x28, 0x37, 0xa0, 0xf4, 0x5f, 0xda, 0x50, 0xfc, + 0x63, 0xef, 0x74, 0x29, 0xc0, 0x31, 0xfb, 0x6a, 0x9a, 0x19, 0x4f, 0x44, 0x54, 0xcf, 0x8c, 0x77, 0xda, 0xf3, + 0xaa, 0xe7, 0x1f, 0x5, 0xa1, 0x11, 0xf1, 0x1b, 0xa6, 0x77, 0xbb, 0xc6, 0xa8, 0x59, 0x2c, 0x9d, 0xea, 0x98, + 0x1a, 0x7c, 0x65, 0x79, 0x88, 0xdb, 0x30, 0xa2, 0xe8, 0xa, 0xe1, 0x21, 0x82, 0x2f, 0x68, 0xb0, 0xe4, 0xce, + 0xe7, 0x46, 0x82, 0x8d, 0xb5, 0xea, 0xad, 0x26, 0xb6, 0xf4, 0xd6, 0xdd, 0x6b, 0xd3, 0x30, 0x84, 0x2e, 0xd8, + 0x72, 0x1, 0xec, 0x68, 0x49, 0x4f, 0xa2, 0x3f, 0xe1, 0xee, 0x38, 0x59, 0x69, 0x2f, 0xb, 0x92, 0x14, 0xb9, 0xc5, + 0x3b, 0xae, 0x0, 0xf5, 0x23, 0xd5, 0x3c, 0x1b, 0x9f, 0xef, 0xe1, 0x4c, 0x40, 0xfd, 0x8, 0xba, 0x81, 0xbc, 0x3c, + 0x6d, 0x59, 0x92, 0x4a, 0x5c, 0xa8, 0xc5, 0xfd, 0x7b, 0x71, 0xa5, 0x13, 0xfb, 0xdd, 0x15, 0x99, 0x21, 0x42, + 0x54, 0x66, 0x78, 0xc5, 0x75, 0xac, 0xfb, 0xca, 0x71, 0x91, 0xae, 0x63, 0xf1, 0x67, 0x29, 0xc, 0x4b, 0xaf, + 0x78, 0xad, 0xd9, 0xc1, 0x9, 0xa7, 0x28, 0x14, 0x78, 0x50, 0xe3, 0x45, 0xfa, 0xb7, 0x41, 0x9f, 0x96, 0xd4, + 0x51, 0x56, 0xf7, 0xee, 0xdf, 0xf8, 0xa5, 0x36, 0x85, 0xa0, 0x72, 0xc9, 0x64, 0xb0, 0x23, 0x1d, 0xd6, 0x62, + 0x7, 0xf3, 0xf1, 0xfb, 0x41, 0x17, 0x32, 0xef, 0x56, 0x6d, 0x83, 0xc4, 0x1f, 0x70, 0x8b, 0x73, 0x33, 0x62, + 0xba, 0x47, 0x1, 0x24, 0x89, 0xed, 0xc, 0xc0, 0x18, 0x9, 0x40, 0x93, 0xda, 0x5e, 0x39, 0x2f, 0xd4, 0x3f, 0x9d, + 0xb3, 0xa4, 0xd, 0xd1, 0x3b, 0xc4, 0xf4, 0xf7, 0x23, 0xa5, 0xb, 0x9a, 0x93, 0xae, 0xc9, 0x3, 0xf, 0x9b, 0xbb, + 0xb0, 0xc2, 0xb0, 0x41, 0x6e, 0xaf, 0xf2, 0xb9, 0xad, 0x9a, 0x71, 0xc1, 0x87, 0xf0, 0x0, 0x53, 0xac, 0xad, + 0x24, 0x4c, 0x6f, 0x14, 0xd2, 0xd1, 0x85, 0x56, 0xb2, 0x7c, 0xf9, 0xa2, 0x92, 0x81, 0x43, 0x8e, 0xc8, 0xa4, + 0x58, 0x79, 0x4a, 0xde, 0x8f, 0xac, 0xa1, 0xcb, 0xf2, 0x9c, 0x38, 0x9c, 0xd6, 0xb2, 0x1a, 0xfa, 0x1c, 0xb5, + 0x19, 0xe2, 0x13, 0x36, 0x41, 0x9e, 0xc3, 0x73, 0xe9, 0x20, 0xf, 0xe3, 0xfd, 0xc, 0xa2, 0xd1, 0x77, 0xf8, 0xae, + 0xb6, 0x11, 0xd1, 0x55, 0x5b, 0xae, 0xd9, 0xb5, 0x2a, 0xd3, 0x96, 0x86, 0x77, 0xf7, 0xe2, 0x2, 0xa6, 0xc2, + 0x10, 0x37, 0x2f, 0x10, 0xff, 0xee, 0xc9, 0x29, 0xd1, 0xf4, 0x89, 0x4b, 0x89, 0x0, 0xee, 0xb5, 0x9f, 0xd1, + 0xad, 0x7b, 0x92, 0x17, 0x87, 0x85, 0x21, 0x59, 0xc7, 0xc3, 0xbf, 0x86, 0xf6, 0xff, 0xd8, 0x8a, 0x47, 0xb9, + 0x61, 0xa1, 0x52, 0xed, 0xf, 0x34, 0x17, 0xe2, 0xcb, 0x92, 0x0, 0x16, 0x2a, 0x1f, 0x4a, 0x60, 0x54, 0xd7, 0x1d, + 0x7a, 0x97, 0x4c, 0x91, 0x41, 0x8f, 0x80, 0x68, 0xbd, 0xa5, 0x57, 0x26, 0xe4, 0xf7, 0x8a, 0xe0, 0x57, 0x76, + 0x58, 0xe, 0x14, 0xfc, 0xab, 0xae, 0x60, 0xa8, 0xb2, 0x62, 0xd0, 0x9, 0x4b, 0xbc, 0x8, 0x20, 0x1f, 0x58, 0x9, + 0x52, 0x8, 0xd4, 0xf5, 0xdb, 0x87, 0x1e, 0x1c, 0xaf, 0x47, 0xe, 0x8b, 0x19, 0x3f, 0xf3, 0x7, 0x38, 0x5a, 0x5c, + 0x29, 0x66, 0x54, 0x77, 0x22, 0x4f, 0xb6, 0x5d, 0xc6, 0xc9, 0x35, 0x44, 0xe9, 0xeb, 0x33, 0x8a, 0x12, 0x77, + 0xc2, 0x1e, 0x83, 0xca, 0xfa, 0x1a, 0x2f, 0xef, 0x13, 0x6f, 0x70, 0xa6, 0x1f, 0x2e, 0x61, 0x83, 0xf4, 0x10, + 0xb8, 0x1, 0xa4, 0xb7, 0x9, 0xaa, 0x32, 0x36, 0x77, 0x39, 0x62, 0xfa, 0x7b, 0x19, 0x6b, 0x97, 0xe0, 0xd2, 0x1, + 0xfd, 0x33, 0x60, 0x8, 0xe0, 0x4, 0xdf, 0xa7, 0x86, 0xd1, 0x8d, 0xc4, 0xf6, 0x9c, 0xed, 0x77, 0x68, 0x9d, 0xee, + 0xd0, 0x67, 0xc7, 0xce, 0xd7, 0xf2, 0x2b, 0x2f, 0xe2, 0x82, 0x80, 0x89, 0x4b, 0x4c, 0x35, 0xd8, 0xf3, 0xca, + 0x8a, 0xd5, 0x37, 0xe, 0xf4, 0xac, 0x2f, 0xd7, 0xc2, 0x34, 0x39, 0x81, 0xce, 0x95, 0x65, 0x11, 0x2, 0xfa, 0xa0, + 0x20, 0x96, 0xd2, 0x7b, 0x42, 0x6b, 0xc8, 0x91, 0x9d, 0xe8, 0xc7, 0x62, 0xc7, 0x32, 0x6b, 0x66, 0x59, 0xe1, + 0xca, 0xf7, 0x42, 0x4a, 0x6c, 0xca, 0x72, 0xe, 0x82, 0x3, 0x93, 0xd6, 0xdf, 0xa5, 0xd3, 0xf6, 0xa6, 0x62, 0xec, + 0x85, 0x12, 0x7a, 0xde, 0x1, 0xd5, 0x13, 0x47, 0x23, 0x3e, 0xda, 0xcb, 0x3, 0x72, 0xde, 0x5e, 0x70, 0x10, 0x52, + 0x7e, 0x62, 0x84, 0x1e, 0x66, 0x37, 0x3a, 0x48, 0x5d, 0x96, 0x2b, 0x8f, 0x1, 0x16, 0xb, 0x0, 0xff, 0x1d, 0xf7, + 0xe8, 0xa2, 0xc7, 0xa1, 0xc9, 0x39, 0x8b, 0x75, 0x59, 0x8d, 0x33, 0x5e, 0x54, 0xae, 0xa8, 0x2b, 0x63, 0x89, + 0x5e, 0x7a, 0x3e, 0x35, 0x5c, 0x39, 0x9c, 0xfc, 0xa8, 0x1b, 0x33, 0x4b, 0xfe, 0xf3, 0xa7, 0x2, 0xe5, 0xc3, + 0x6b, 0x17, 0xc1, 0xb5, 0xdb, 0x26, 0x51, 0xff, 0x58, 0x4a, 0x3, 0x52, 0x1e, 0xde, 0x8, 0x96, 0x3a, 0x7d, 0x14, + 0x63, 0x80, 0xca, 0x5, 0x7f, 0x24, 0x73, 0x65, 0xb7, 0x70, 0x5a, 0x4f, 0xea, 0x6f, 0x8d, 0xa6, 0xf0, 0x6f, + 0x60, 0xdb, 0x34, 0x77, 0xef, 0xa0, 0x21, 0x17, 0xa2, 0x95, 0x4a, 0x73, 0xad, 0x68, 0xc1, 0xf3, 0xad, 0x67, + 0x68, 0x30, 0xa0, 0xda, 0x98, 0xfb, 0x15, 0xd7, 0x28, 0x9b, 0xb3, 0xf0, 0x34, 0x92, 0xb5, 0x3, 0x12, 0x0, 0xcb, + 0x54, 0x98, 0xf2, 0x75, 0x1d, 0x7a, 0x38, 0x5d, 0x3, 0xb1, 0xa9, 0x70, 0xc7, 0x5a, 0x1d, 0x25, 0x73, 0xfc, + 0xfb, 0x13, 0x6d, 0x5b, 0xe9, 0xb4, 0x5, 0xd2, 0xd, 0x1a, 0xd2, 0x38, 0x1c, 0x75, 0x19, 0xa, 0x9b, 0x16, 0x9, + 0xfb, 0x1a, 0xb2, 0xe2, 0xe, 0x85, 0x6e, 0x32, 0x9, 0x1b, 0xb5, 0xc3, 0x3b, 0x78, 0x41, 0xf0, 0x92, 0xeb, 0xcd, + 0x9, 0xde, 0x61, 0x30, 0x1f, 0xe2, 0x24, 0x80, 0x50, 0xa5, 0xe, 0x9, 0x18, 0xe, 0xe5, 0x70, 0x1f, 0xde, 0x6c, + 0x51, 0x3e, 0xdd, 0x9e, 0xad, 0xc5, 0x79, 0xd3, 0x2e, 0x9, 0x7, 0xa7, 0x52, 0xb7, 0x2c, 0x7f, 0xdb, 0x66, 0xf8, + 0xa2, 0xea, 0x47, 0xfe, 0xe2, 0x75, 0x77, 0xb3, 0xa9, 0x69, 0x98, 0xa3, 0x1a, 0xd9, 0xec, 0x5e, 0xf6, 0x2b, + 0x58, 0x8c, 0xd0, 0x58, 0x3f, 0x74, 0x7e, 0x6f, 0xe2, 0xe3, 0x6f, 0xa8, 0xc8, 0x1a, 0xf7, 0x7f, 0xbb, 0x7, + 0xca, 0x3, 0xfa, 0xab, 0xd8, 0x28, 0x15, 0x90, 0x89, 0x89, 0xf, 0xc4, 0xe2, 0xf8, 0xa6, 0xb7, 0x92, 0x59, 0x24, + 0x53, 0x15, 0x25, 0xd5, 0xf2, 0xb, 0xc2, 0xf0, 0x81, 0x16, 0x39, 0xcb, 0x7b, 0xae, 0x1e, 0xc1, 0x5d, 0x16, + 0xb8, 0x6d, 0x30, 0xdc, 0xf0, 0x17, 0x99, 0x8d, 0xd0, 0xab, 0x2a, 0xc8, 0x24, 0x3a, 0xd7, 0xe4, 0x16, 0x50, + 0xb7, 0x36, 0x6, 0x99, 0x90, 0x91, 0x84, 0xad, 0xf1, 0xb, 0xc2, 0xec, 0x15, 0x3a, 0x6e, 0xe8, 0x6, 0x5e, 0xcf, + 0x1a, 0x82, 0x15, 0xd8, 0x83, 0x60, 0x4c, 0xe8, 0x2d, 0x68, 0x7b, 0x6, 0x87, 0xd0, 0xe2, 0xec, 0x1f, 0x56, + 0xb1, 0xc7, 0xa8, 0xad, 0x7e, 0xf2, 0x25, 0x59, 0xbb, 0x2c, 0xc0, 0x2e, 0x56, 0x68, 0x2c, 0xa0, 0xd8, 0x27, + 0xd5, 0x9d, 0xb1, 0x9c, 0x3, 0xa3, 0xa7, 0xb8, 0xde, 0x5d, 0x62, 0xe, 0x8b, 0xb6, 0x7a, 0xf2, 0x8, 0x8, 0x51, + 0xe8, 0xe3, 0xa4, 0x13, 0x20, 0xcf, 0xa7, 0xbf, 0x3c, 0x62, 0xbc, 0xad, 0x16, 0xba, 0x84, 0xb8, 0xab, 0xac, + 0x15, 0x8e, 0x29, 0x33, 0x12, 0xd0, 0x83, 0x21, 0x5f, 0x87, 0x5a, 0x2f, 0x74, 0xd4, 0x91, 0xf8, 0x3f, 0x6d, + 0xa9, 0xa5, 0x62, 0xaa, 0x47, 0x62, 0x58, 0xf1, 0x16, 0x36, 0x81, 0x38, 0xc2, 0x21, 0xba, 0x23, 0x1, 0x27, + 0x1f, 0xad, 0x7f, 0x4a, 0x3e, 0xca, 0x9d, 0x9e, 0x4e, 0xea, 0xeb, 0xa4, 0xd7, 0xd, 0xf3, 0xa0, 0x12, 0x64, + 0xdc, 0xf4, 0x4e, 0xa7, 0x45, 0x55, 0x97, 0xef, 0x75, 0x78, 0x91, 0x6e, 0x66, 0x72, 0xe4, 0x84, 0xe5, 0xc4, + 0x72, 0xc4, 0xc0, 0x3, 0x83, 0xd4, 0x31, 0xc4, 0x49, 0x43, 0xe1, 0x79, 0x7a, 0x70, 0xe2, 0x40, 0xa1, 0x51, + 0x56, 0xae, 0x11, 0xfb, 0x7b, 0x89, 0x8a, 0xdd, 0x55, 0xa4, 0x18, 0xb6, 0xee, 0x6, 0xd7, 0x8a, 0xc1, 0x89, + 0xbf, 0x2d, 0xd7, 0xbf, 0x18, 0x14, 0xb0, 0xec, 0xed, 0xe1, 0x20, 0x18, 0xb6, 0x21, 0x6b, 0x3c, 0xe0, 0x9f, + 0x92, 0xed, 0xb4, 0x40, 0xd9, 0x77, 0x32, 0x50, 0x85, 0x25, 0x39, 0x2c, 0x37, 0x31, 0x4c, 0x9e, 0xbf, 0xe4, + 0xfc, 0x47, 0xe7, 0xc4, 0xaf, 0x4d, 0x7e, 0x9d, 0x80, 0x34, 0x60, 0xc5, 0xca, 0x74, 0xef, 0x38, 0x4, 0x71, + 0xf3, 0x1b, 0x99, 0x3f, 0xb5, 0xa8, 0x10, 0xf, 0xef, 0x84, 0x1, 0xe1, 0x9, 0x46, 0xe7, 0xe2, 0x56, 0x19, 0x7d, + 0x6a, 0x9f, 0x21, 0x7a, 0xd1, 0x82, 0x59, 0x7c, 0x9a, 0x13, 0xe2, 0x7f, 0x1e, 0x71, 0xcb, 0xf5, 0xf6, 0x47, + 0x8, 0x30, 0xa3, 0x3e, 0x1f, 0x2e, 0x26, 0x80, 0xe6, 0x1a, 0x62, 0x24, 0x1f, 0x18, 0x11, 0xf, 0xcf, 0xa7, 0x76, + 0x57, 0x3f, 0x7, 0xba, 0xbc, 0x26, 0xdc, 0x49, 0x38, 0x53, 0x71, 0xdc, 0x5b, 0xc3, 0x9f, 0x17, 0x44, 0xe9, + 0x58, 0xde, 0x97, 0xbf, 0x5a, 0xf, 0x69, 0x57, 0xb7, 0x3b, 0xda, 0x9c, 0x6c, 0x3a, 0x9c, 0x47, 0x2d, 0xd9, + 0xc3, 0x3a, 0xbf, 0x4c, 0x10, 0x75, 0x33, 0x3b, 0x83, 0x28, 0x70, 0xc7, 0xd7, 0x6e, 0x2f, 0xeb, 0xd3, 0xe5, + 0x39, 0x20, 0x8f, 0x6f, 0x9f, 0xad, 0x19, 0xe3, 0x3f, 0x40, 0xb0, 0x14, 0xef, 0x9c, 0xfd, 0x91, 0xf3, 0xf7, + 0x7f, 0x94, 0x47, 0xbb, 0x22, 0xc7, 0x68, 0xc9, 0xf1, 0x4b, 0x4b, 0x46, 0x2c, 0xa2, 0x6f, 0xd3, 0xc0, 0x48, + 0xef, 0xde, 0xde, 0xc4, 0x55, 0x8f, 0xfd, 0xff, 0x12, 0xd0, 0x38, 0xc0, 0x4, 0xe9, 0x1b, 0x73, 0x5, 0xe0, 0x10, + 0x53, 0xd7, 0x4b, 0x84, 0x80, 0xab, 0xea, 0xf5, 0xd9, 0xb4, 0x6f, 0xbf, 0xea, 0x25, 0x90, 0xcf, 0x4f, 0x15, + 0xc4, 0xd3, 0xa3, 0x83, 0x59, 0xf, 0x38, 0x66, 0xfa, 0xb8, 0xec, 0xde, 0xdc, 0x31, 0x47, 0xbf, 0x8b, 0xfe, + 0x27, 0x28, 0x70, 0x79, 0xf6, 0x44, 0x7f, 0xcb, 0xf7, 0xab, 0x55, 0x56, 0x9b, 0xd4, 0x9a, 0xbf, 0xa3, 0xa9, + 0xbd, 0xc2, 0xb8, 0x1c, 0x85, 0x3c, 0x13, 0x5e, 0xd7, 0x97, 0xec, 0xf9, 0x94, 0x5f, 0xf8, 0xa0, 0xb9, 0x4d, + 0x2, 0x8e, 0x9f, 0x64, 0xbe, 0x69, 0xb0, 0x94, 0x92, 0xbd, 0xd8, 0xfa, 0xc9, 0x7, 0x29, 0x7a, 0x0, 0x2f, 0xe8, + 0x9f, 0x33, 0xb4, 0xcb, 0x3f, 0xd7, 0x6c, 0x65, 0xf8, 0x15, 0xa7, 0xa7, 0x5, 0x4a, 0xb7, 0x6c, 0x28, 0x5c, + 0xf3, 0x3, 0xb1, 0x80, 0x93, 0x86, 0xf9, 0xdf, 0x4b, 0x56, 0x96, 0x36, 0xfd, 0x36, 0xc9, 0xe4, 0xa2, 0x24, + 0x34, 0x40, 0x54, 0x35, 0xbe, 0x26, 0x94, 0xd0, 0xd4, 0xd4, 0x55, 0xb4, 0x47, 0xf8, 0xe4, 0x7c, 0xe5, 0x37, + 0xdf, 0x11, 0xba, 0xea, 0xd, 0x92, 0xed, 0x92, 0x93, 0x7c, 0xa0, 0xad, 0x89, 0xd4, 0x82, 0xc5, 0x74, 0xfc, + 0x56, 0x69, 0x24, 0xf8, 0xe6, 0xfa, 0xc2, 0xd9, 0x7, 0x47, 0xb8, 0x4e, 0x9e, 0x23, 0x13, 0x16, 0xe0, 0xa1, + 0xcd, 0x2f, 0x69, 0x62, 0x4c, 0xc0, 0x72, 0x22, 0x86, 0x2f, 0x3a, 0x1c, 0xb4, 0x73, 0x56, 0x88, 0xe6, 0x82, + 0xfd, 0x2f, 0x2f, 0xc0, 0x30, 0x7f, 0x72, 0x23, 0xa7, 0x94, 0xc2, 0x6e, 0xf4, 0x2, 0xf6, 0xa3, 0xe0, 0x5d, 0xc, + 0x4c, 0xf7, 0x4e, 0x60, 0x12, 0x2, 0xca, 0x40, 0xc7, 0x1a, 0x4e, 0x3c, 0x7c, 0xce, 0xd8, 0x1b, 0xba, 0x5, 0x89, + 0xf, 0xec, 0xfe, 0x4, 0x96, 0xd, 0x99, 0x2b, 0xb6, 0xbd, 0x6e, 0xa5, 0x6d, 0x28, 0xd4, 0xc0, 0x19, 0xe3, 0x91, + 0x49, 0xe1, 0xa7, 0x84, 0xc8, 0xe7, 0x77, 0x56, 0x57, 0x94, 0xa2, 0x2e, 0x49, 0xf7, 0x8b, 0x1c, 0x8f, 0x85, + 0x75, 0x8f, 0x69, 0x97, 0x6b, 0xc2, 0x4d, 0xd9, 0x88, 0x23, 0xdc, 0x50, 0xb3, 0xa, 0xbb, 0x19, 0xbc, 0xe0, + 0x21, 0x76, 0xde, 0xe9, 0x46, 0x5d, 0x32, 0x6b, 0x8d, 0x4b, 0x99, 0xd4, 0x85, 0xc, 0x77, 0x29, 0x1f, 0x6b, + 0x8f, 0xf2, 0x2, 0x89, 0xef, 0x63, 0xab, 0xc, 0xe1, 0xd6, 0x72, 0xe3, 0xdf, 0x88, 0xd0, 0x2c, 0xdf, 0xae, 0xd6, + 0xf9, 0x29, 0x7, 0x94, 0x93, 0x10, 0x66, 0x57, 0x78, 0x6b, 0x8e, 0x84, 0x11, 0x6d, 0x2b, 0xe5, 0x8a, 0xa5, + 0x65, 0x98, 0xfc, 0x92, 0x47, 0x1d, 0xfd, 0x4b, 0x41, 0xdc, 0x87, 0x42, 0xf8, 0xbc, 0x9e, 0xc1, 0xfa, 0x91, + 0x81, 0x11, 0xcc, 0x92, 0x2f, 0xdb, 0xd8, 0xf8, 0x2e, 0x56, 0x6f, 0xbe, 0xf8, 0x6c, 0xf8, 0x5f, 0x2d, 0x61, + 0xb4, 0x4c, 0x7c, 0x6c, 0x11, 0x46, 0x4a, 0x63, 0x51, 0x55, 0x5a, 0xf5, 0xfa, 0x26, 0xc7, 0x45, 0x3, 0x64, + 0x84, 0xcb, 0x69, 0x36, 0x9b, 0x5, 0x1f, 0x1c, 0x10, 0x68, 0xbc, 0x12, 0x70, 0xde, 0x83, 0xdf, 0x94, 0x9b, + 0x94, 0x6f, 0xae, 0xdb, 0xe8, 0xef, 0xd7, 0x6c, 0x23, 0xd0, 0x6f, 0x8c, 0xc5, 0x6b, 0x37, 0xad, 0x72, 0x16, + 0x69, 0x77, 0x95, 0xb4, 0x6d, 0x6e, 0x1, 0x9f, 0xf0, 0xbd, 0xd5, 0x1f, 0x5b, 0x7a, 0xc5, 0xe3, 0x2d, 0xf7, + 0x3e, 0xd1, 0xce, 0xbe, 0x89, 0x34, 0xfa, 0x3d, 0x93, 0x6c, 0x90, 0x53, 0x3d, 0xfd, 0x7, 0xc4, 0xb3, 0xb, 0x9a, + 0x22, 0xba, 0xaa, 0x50, 0x20, 0xaa, 0x4f, 0x72, 0xb6, 0xf9, 0xed, 0xc0, 0x89, 0xef, 0xab, 0x66, 0x5a, 0x47, + 0x3, 0x6f, 0xc7, 0xb4, 0x10, 0x0, 0x89, 0x7, 0x4f, 0xa, 0xbe, 0x64, 0xfb, 0x5b, 0x33, 0x28, 0xbe, 0x5a, 0xe6, + 0x9c, 0x1b, 0x94, 0x5f, 0x1, 0x88, 0x6, 0xbc, 0xbf, 0x81, 0x98, 0x97, 0x54, 0xe7, 0x52, 0xa0, 0xa, 0x37, 0xf, + 0xf0, 0x3f, 0xba, 0x7, 0xc1, 0xbc, 0xbe, 0x36, 0x31, 0x94, 0x5d, 0x7a, 0x8c, 0x2d, 0xbe, 0xc, 0x2c, 0xb2, 0x71, + 0xa2, 0x73, 0xb4, 0xfc, 0xd2, 0xc4, 0x24, 0x5, 0x64, 0xd1, 0x15, 0xf6, 0x61, 0x7c, 0x60, 0x90, 0x49, 0x8c, + 0x69, 0x68, 0xa3, 0x73, 0xf9, 0x1, 0x7, 0xfa, 0x4f, 0x2a, 0xd0, 0x52, 0x84, 0x7c, 0x5c, 0x47, 0x78, 0x3c, 0xac, + 0xc4, 0x5c, 0x18, 0x32, 0x6c, 0x5e, 0xbb, 0xdb, 0xbd, 0x3c, 0x84, 0xc9, 0x9f, 0x65, 0xab, 0x3f, 0xa, 0x53, + 0x2c, 0xa1, 0x50, 0x4a, 0x45, 0x62, 0x46, 0xaa, 0xb4, 0xe8, 0x49, 0x11, 0x33, 0xa1, 0x32, 0x30, 0x2d, 0xf0, + 0xb2, 0x2f, 0x60, 0x68, 0x4a, 0x3b, 0x27, 0xd3, 0xb, 0xfa, 0x53, 0xc8, 0xdb, 0x99, 0xea, 0x8c, 0x67, 0x57, + 0x25, 0x26, 0xe, 0xc5, 0x98, 0xd0, 0xaf, 0xff, 0xac, 0x83, 0x85, 0x8f, 0x21, 0x4b, 0x91, 0xdd, 0x79, 0x40, + 0x9e, 0x36, 0x1f, 0x28, 0x62, 0xc9, 0xd3, 0x32, 0xe8, 0xc0, 0x62, 0x1b, 0x5b, 0xd5, 0x16, 0xf9, 0x2f, 0xa5, + 0x46, 0x73, 0xb3, 0x0, 0xc9, 0xbf, 0x3c, 0x31, 0x60, 0x3a, 0xbf, 0xc3, 0xdd, 0xc9, 0xb0, 0x8b, 0x7c, 0x2, 0x39, + 0x88, 0x37, 0x15, 0xfb, 0x81, 0x59, 0x80, 0xb2, 0xd9, 0x62, 0xf, 0xac, 0x85, 0x82, 0x8a, 0x49, 0x4, 0xea, 0x4a, + 0x1d, 0xb2, 0x29, 0x81, 0xba, 0xd7, 0xe4, 0x1a, 0x7f, 0x5d, 0x95, 0xf8, 0xcc, 0x70, 0x33, 0x79, 0x91, 0x85, + 0xf0, 0xc, 0xbb, 0x62, 0x3a, 0xcb, 0x1a, 0x6, 0x59, 0x88, 0x73, 0xb7, 0x54, 0xf6, 0x2a, 0xdb, 0xb4, 0xd3, 0x6a, + 0xe2, 0x72, 0x33, 0xf5, 0x55, 0xa9, 0x9c, 0xb8, 0xb6, 0xf2, 0x69, 0x65, 0xde, 0xc5, 0xf9, 0x9a, 0x25, 0xe6, + 0x9b, 0x38, 0x74, 0xe0, 0x17, 0x47, 0x96, 0x84, 0xce, 0x6c, 0x35, 0xb7, 0xfd, 0x90, 0x8e, 0xaf, 0x48, 0x41, + 0x17, 0xd8, 0xd8, 0xe0, 0x45, 0x1, 0x1b, 0xea, 0x75, 0x5b, 0x4, 0xfb, 0xf2, 0x8d, 0x47, 0xfd, 0x4f, 0xf1, 0xd0, + 0xd1, 0x33, 0xab, 0xce, 0x57, 0xd1, 0x3f, 0xde, 0xc, 0xf1, 0xbe, 0x2b, 0x81, 0xe2, 0x45, 0x4a, 0x2f, 0x25, + 0x16, 0xf7, 0x9f, 0x8, 0x98, 0x7f, 0x4a, 0x31, 0xd7, 0x66, 0xf9, 0xa0, 0x5c, 0x4e, 0xee, 0x4f, 0x3f, 0xbc, + 0x4a, 0x4a, 0xcd, 0x2c, 0x28, 0x25, 0xbc, 0xe1, 0x47, 0x8d, 0xd2, 0x92, 0x5, 0xa, 0x67, 0xb2, 0x49, 0x4f, 0x47, + 0xe8, 0xe5, 0x63, 0x92, 0xe0, 0xd2, 0x35, 0xed, 0xd9, 0xb6, 0x7b, 0x37, 0x7f, 0x20, 0xc4, 0xe4, 0xc4, 0x20, + 0xbb, 0xd, 0x88, 0x29, 0xbe, 0x68, 0x87, 0xf, 0xfe, 0xb, 0xff, 0x2, 0x6b, 0xca, 0x47, 0x40, 0x80, 0x15, 0xc7, + 0xcc, 0x7f, 0x31, 0x20, 0x62, 0x59, 0x51, 0xe5, 0x35, 0x57, 0x27, 0x6b, 0x34, 0x3e, 0x1c, 0xa1, 0x32, 0x3b, + 0x8b, 0xeb, 0x6a, 0xa6, 0x4a, 0xe8, 0x7d, 0xaa, 0x98, 0x4c, 0x6e, 0x97, 0x1c, 0x5b, 0x15, 0xef, 0x57, 0xd7, + 0x4f, 0x8a, 0x5f, 0xde, 0x49, 0xc, 0x80, 0xa5, 0xcb, 0x19, 0x85, 0xe5, 0xbe, 0x16, 0x32, 0x6b, 0xd1, 0xf2, + 0xe0, 0xff, 0x58, 0x31, 0xe5, 0x55, 0x72, 0xbf, 0xa5, 0x2e, 0x7f, 0x9, 0x2c, 0x77, 0xc4, 0xec, 0x75, 0xcd, + 0x11, 0x31, 0x78, 0x39, 0xed, 0x79, 0x7d, 0x3, 0x70, 0xac, 0xa3, 0x2a, 0x8f, 0xe7, 0x7b, 0x2, 0xa0, 0x1b, 0x1c, + 0xf9, 0x36, 0x36, 0x91, 0x31, 0x71, 0x80, 0x3a, 0x2e, 0x6d, 0x2d, 0x73, 0xf1, 0x8c, 0xfe, 0x6, 0x2c, 0x1c, + 0x69, 0x8f, 0xae, 0x46, 0x5a, 0xdc, 0xfa, 0x3b, 0x3d, 0x2a, 0x50, 0xd1, 0x3f, 0xd0, 0xa5, 0xfb, 0x21, 0xfe, + 0xc8, 0x60, 0x6f, 0x71, 0xb8, 0xa9, 0xbf, 0xe5, 0x35, 0x80, 0x3b, 0xde, 0xb4, 0xdf, 0xca, 0xa0, 0x1e, 0xbc, + 0x9b, 0xcb, 0xc2, 0x9e, 0x83, 0x44, 0xf9, 0x9f, 0x92, 0x57, 0x22, 0x2f, 0x19, 0xa3, 0x73, 0x85, 0x62, 0x86, + 0x2d, 0xce, 0xf6, 0x3d, 0xb3, 0x8e, 0xeb, 0xaa, 0x9e, 0xe6, 0x1f, 0xf5, 0x51, 0x3e, 0xf3, 0xb8, 0xd9, 0x44, + 0x55, 0x1e, 0xbe, 0x89, 0x2f, 0x6a, 0xb5, 0xfb, 0x83, 0xc7, 0x55, 0x5c, 0xaa, 0xa0, 0x1c, 0x15, 0x3e, 0xd4, + 0x2e, 0x2e, 0x36, 0x69, 0x2f, 0x8e, 0xcb, 0xc7, 0xea, 0x3d, 0x79, 0x2e, 0xf0, 0x2e, 0xa6, 0xd8, 0x39, 0x3b, + 0xa4, 0x99, 0xae, 0xc, 0x8f, 0x3e, 0x77, 0x2a, 0xf3, 0x93, 0x8d, 0xdc, 0x79, 0xbe, 0x79, 0x1c, 0xe6, 0xf9, + 0xc4, 0x78, 0x38, 0xce, 0x93, 0x96, 0xf7, 0x3a, 0xa5, 0x54, 0x70, 0xe6, 0x6f, 0x8a, 0x61, 0x3e, 0xdf, 0xd9, + 0x72, 0x2f, 0x2e, 0x3d, 0xeb, 0xb6, 0x29, 0xc6, 0x87, 0xb2, 0xf9, 0x72, 0x2, 0x56, 0x67, 0x74, 0xec, 0xe7, + 0xa2, 0xd2, 0xc2, 0x9f, 0xa, 0x9e, 0x22, 0xd2, 0xf5, 0xf7, 0x74, 0x24, 0x4f, 0xfc, 0x8f, 0xdf, 0xab, 0xe0, + 0x34, 0x80, 0xa0, 0x82, 0xab, 0x44, 0x19, 0x28, 0x75, 0x74, 0xe5, 0x1b, 0x75, 0xff, 0xfc, 0x94, 0x4d, 0x80, + 0xea, 0x94, 0x85, 0xd6, 0xf5, 0x8b, 0x39, 0x51, 0x7c, 0x12, 0x3f, 0x6a, 0xf0, 0xa1, 0xed, 0xfd, 0x52, 0x2d, + 0x90, 0xa8, 0x4b, 0x2b, 0xe1, 0x3b, 0x37, 0xc4, 0xe8, 0x98, 0xfb, 0x1c, 0x5f, 0xdc, 0x5d, 0x2f, 0xde, 0xae, + 0xd0, 0xa, 0x5c, 0x3a, 0x1f, 0xce, 0x37, 0x7f, 0x9d, 0x84, 0xb9, 0xc7, 0xe2, 0xfc, 0xf7, 0x73, 0xee, 0x79, + 0xbf, 0x6a, 0x62, 0x6a, 0x8c, 0x0, 0x54, 0x3e, 0xca, 0x66, 0x7e, 0xf0, 0xf9, 0x5c, 0xd3, 0xc9, 0xd, 0xd8, 0x85, + 0x3e, 0xa7, 0x19, 0x91, 0xf5, 0x90, 0x51, 0xbb, 0xfb, 0x63, 0xec, 0x25, 0x12, 0x14, 0x3, 0xce, 0xde, 0x7, 0xf7, + 0x59, 0x8f, 0x73, 0xb4, 0xe2, 0xf1, 0x32, 0x35, 0x21, 0x2f, 0x0, 0x61, 0x69, 0x5e, 0x2f, 0x12, 0x4f, 0x85, + 0xbc, 0xb3, 0x14, 0x85, 0x1f, 0x54, 0x6d, 0xa7, 0xfe, 0x47, 0xe8, 0xc4, 0xb2, 0x3f, 0xf4, 0x15, 0xf8, 0xc6, + 0xdd, 0x24, 0x14, 0x81, 0xa8, 0xe, 0xb1, 0x9b, 0x59, 0x60, 0x86, 0x64, 0x92, 0xc2, 0x5c, 0xc2, 0x2d, 0x92, + 0xcc, 0x9e, 0xbb, 0xa8, 0xed, 0xe5, 0x2b, 0xd1, 0x40, 0xdf, 0xdd, 0x57, 0x8d, 0x96, 0x3, 0x34, 0x6e, 0xbf, + 0xaf, 0xfd, 0x0, 0xfd, 0x4f, 0x0, 0x4, 0x35, 0xb8, 0x2b, 0x3b, 0xec, 0x33, 0x48, 0x94, 0xd0, 0x3c, 0x16, 0x98, + 0x9, 0xd1, 0xbc, 0x0, 0x36, 0xb3, 0x9d, 0x60, 0x7f, 0xab, 0x29, 0xe4, 0xca, 0xc0, 0x30, 0xd7, 0x45, 0x7d, 0xd7, + 0xb7, 0xf2, 0xc5, 0x6e, 0x7c, 0x9a, 0x5d, 0xe8, 0xfc, 0x2c, 0x27, 0x7b, 0xdb, 0x30, 0xb9, 0xc3, 0x51, 0x6c, + 0xc7, 0x35, 0x0, 0xeb, 0x8c, 0x27, 0xf9, 0x70, 0xe4, 0x54, 0xee, 0xb0, 0xe6, 0xbe, 0xb8, 0x94, 0x14, 0x6f, + 0xf5, 0xa6, 0x28, 0xa2, 0xc3, 0x7e, 0x3c, 0x93, 0x5a, 0xdd, 0x79, 0x44, 0x7f, 0x9c, 0xf8, 0xde, 0x6c, 0xfa, + 0xda, 0xa9, 0xe5, 0x42, 0x99, 0x4e, 0x60, 0x21, 0x9e, 0x12, 0x4a, 0x94, 0xb5, 0x9b, 0xa6, 0x0, 0x57, 0x23, + 0x7b, 0xcf, 0x38, 0xe8, 0xe3, 0xcb, 0x1d, 0xf8, 0x13, 0x9f, 0x2f, 0x35, 0x91, 0xb4, 0xd8, 0xac, 0xe8, 0xe7, + 0xb2, 0x87, 0x3f, 0xac, 0xd, 0xcc, 0x6f, 0xbd, 0xfb, 0x5f, 0xd6, 0x68, 0x37, 0x61, 0xe8, 0x71, 0xbe, 0xc6, + 0xc0, 0xae, 0x52, 0xf5, 0x1d, 0xc1, 0x1, 0xc8, 0xfa, 0x89, 0xf, 0x3b, 0x90, 0x57, 0xa5, 0x99, 0xec, 0xa, 0xb8, + 0xab, 0x6d, 0x12, 0x9a, 0x8b, 0xe8, 0xcc, 0xe0, 0x30, 0x9f, 0x42, 0x35, 0x7, 0xa0, 0x4a, 0x71, 0xab, 0x6d, + 0x82, 0x98, 0x9b, 0x7f, 0xb3, 0xc7, 0x6b, 0x25, 0x6f, 0xe5, 0x86, 0xa8, 0xdb, 0xb2, 0x7f, 0x37, 0xb1, 0xd3, + 0x46, 0xe9, 0xe6, 0x92, 0xbe, 0x69, 0x90, 0xbf, 0xc5, 0xf0, 0xb4, 0xe1, 0x22, 0xe4, 0xc5, 0x7d, 0x1a, 0x28, + 0x50, 0x5b, 0x36, 0x3d, 0x86, 0x80, 0x92, 0x22, 0xed, 0xc6, 0x5d, 0x2a, 0x3f, 0xad, 0x75, 0xb1, 0x3a, 0x5e, + 0xae, 0xed, 0x4f, 0xa5, 0xaa, 0x48, 0x85, 0x5f, 0xb8, 0x21, 0xa, 0x55, 0x5d, 0x2f, 0x2c, 0x17, 0xf7, 0xac, + 0x38, 0xa3, 0x95, 0x62, 0x86, 0xc2, 0xa3, 0x6a, 0x44, 0xdc, 0xb3, 0x43, 0x44, 0xc3, 0x3b, 0xc8, 0xc2, 0x5d, + 0xe8, 0x12, 0x35, 0xae, 0xfd, 0x26, 0x75, 0x87, 0x6, 0x7, 0xe0, 0x81, 0xe7, 0x4b, 0x2f, 0x54, 0xd6, 0x4a, 0x1c, + 0xb9, 0x2f, 0xfb, 0xad, 0x6d, 0x32, 0x94, 0x68, 0x65, 0x6, 0xa9, 0x9f, 0xf4, 0xe9, 0x8e, 0xaf, 0x6, 0xb0, 0x41, + 0x11, 0xbb, 0x98, 0xec, 0x76, 0x40, 0x7a, 0xd, 0xa7, 0x7, 0x77, 0x1b, 0xa0, 0x7, 0x8b, 0x84, 0x9e, 0xeb, 0xda, + 0x80, 0xcf, 0xc, 0x48, 0xa9, 0x7f, 0x27, 0xcd, 0xa5, 0x1a, 0x92, 0xfc, 0xde, 0x99, 0xe2, 0x97, 0x83, 0x80, + 0x65, 0xbf, 0xb1, 0xba, 0xed, 0xdb, 0x3a, 0xe0, 0xee, 0xc2, 0x2, 0x8, 0x21, 0x60, 0xfe, 0x91, 0x7a, 0xcd, 0x92, + 0xd3, 0x12, 0x13, 0x19, 0x82, 0x90, 0xd2, 0xb4, 0x9a, 0xd7, 0x32, 0xd0, 0xf2, 0x85, 0x99, 0xa4, 0x0, 0xcb, + 0x4f, 0x8a, 0xf8, 0x86, 0x50, 0x11, 0x23, 0x53, 0xe9, 0x6a, 0xe, 0x2a, 0x19, 0x7c, 0xe8, 0x80, 0x17, 0x9e, + 0xc9, 0xf4, 0x19, 0x28, 0xb6, 0x32, 0x24, 0x61, 0xac, 0xe5, 0xaa, 0x11, 0x53, 0x1b, 0x34, 0x1f, 0x24, 0x85, + 0x14, 0x86, 0xb1, 0x9e, 0x2e, 0x4d, 0x82, 0x12, 0x69, 0x6a, 0xbb, 0xb3, 0x8f, 0xf3, 0xc2, 0x40, 0x7c, 0xbd, + 0xad, 0x31, 0xdd, 0x6, 0xf5, 0x16, 0x3c, 0xb, 0x43, 0x31, 0x1, 0x39, 0xfd, 0xa, 0xfe, 0x5d, 0x5d, 0x59, 0x1a, + 0xf1, 0x3a, 0xc5, 0xc5, 0xeb, 0x30, 0x57, 0xa4, 0xdc, 0xf4, 0xfa, 0xa3, 0xf, 0x71, 0xb6, 0x52, 0xb8, 0x73, 0x5, + 0x8a, 0xcf, 0xdb, 0x9b, 0xdb, 0x65, 0xdb, 0x64, 0xbd, 0x27, 0x45, 0xde, 0xe6, 0x50, 0x0, 0xa, 0x1e, 0x4d, 0xce, + 0x98, 0xe0, 0x2e, 0x2e, 0xe0, 0xd9, 0x44, 0xbf, 0x86, 0x60, 0xb1, 0x33, 0xb3, 0x33, 0xaa, 0x8e, 0x5, 0x96, + 0x10, 0xca, 0x4b, 0x2c, 0x56, 0xdf, 0x42, 0x59, 0xdc, 0x93, 0xc1, 0x79, 0xed, 0x0, 0x54, 0x44, 0x40, 0xf7, + 0x86, 0xaa, 0x8e, 0xbb, 0x5c, 0x1a, 0x6, 0x28, 0xea, 0x11, 0xab, 0xba, 0x6a, 0x36, 0x1c, 0x30, 0x6c, 0x66, + 0x11, 0xce, 0xf4, 0xd, 0xab, 0xed, 0xa0, 0x50, 0xeb, 0x13, 0xe1, 0x22, 0x1a, 0x75, 0x68, 0x29, 0x62, 0x10, + 0xae, 0x68, 0x80, 0xf6, 0xa7, 0xd4, 0x9d, 0xcd, 0x2c, 0x22, 0x6c, 0xab, 0x44, 0x4d, 0x53, 0xad, 0x1c, 0x2, + 0x5d, 0x3, 0xbb, 0x9b, 0x41, 0x97, 0x43, 0x46, 0x24, 0x34, 0xdf, 0x7a, 0xaf, 0x27, 0xbd, 0xac, 0x4f, 0x31, + 0xed, 0xeb, 0x6d, 0x9f, 0x46, 0x2d, 0x78, 0xc7, 0xad, 0x60, 0xea, 0x21, 0x52, 0x1f, 0x66, 0x4, 0xd4, 0xe2, 0x0, + 0x3, 0xda, 0xee, 0x4a, 0xa, 0xc7, 0x5b, 0x70, 0x12, 0x9f, 0xb7, 0xa2, 0x6a, 0x7d, 0xca, 0x28, 0x3a, 0xc6, 0x5e, + 0x57, 0x2, 0xb1, 0x88, 0x29, 0x72, 0xa4, 0x82, 0x9a, 0x59, 0xb6, 0xc0, 0x63, 0xbb, 0x88, 0xc5, 0x15, 0x3f, + 0x33, 0xf5, 0x24, 0x54, 0xbc, 0x16, 0x7c, 0xc6, 0xda, 0xd8, 0xfa, 0xb9, 0xe5, 0xca, 0x1e, 0x49, 0xdc, 0x2a, + 0x25, 0x42, 0xe, 0x58, 0xa1, 0x60, 0x1, 0x91, 0x1d, 0x8a, 0xaf, 0x91, 0x60, 0x9, 0x17, 0xed, 0xc8, 0x28, 0xcf, + 0x88, 0xb0, 0xb0, 0x40, 0xca, 0x6d, 0xe1, 0x9, 0xe, 0x19, 0x4a, 0xc2, 0x48, 0xba, 0x5a, 0x22, 0xfe, 0x4b, 0xe2, + 0x38, 0xe6, 0xe0, 0x44, 0x33, 0x8b, 0xcd, 0xc, 0x25, 0x2b, 0x89, 0x68, 0x64, 0x61, 0x55, 0x3a, 0x55, 0xb2, + 0x7c, 0xbc, 0xe6, 0x93, 0x62, 0x5c, 0xc1, 0x76, 0x1c, 0x5c, 0x1e, 0x59, 0x3f, 0xcb, 0x39, 0x53, 0x19, 0xf3, + 0x7e, 0xaf, 0xc3, 0xab, 0x74, 0x78, 0x73, 0x73, 0x4d, 0x2f, 0xe6, 0x9f, 0x3c, 0xb1, 0xc8, 0x77, 0xbe, 0x16, + 0xd2, 0xe5, 0x8, 0xe1, 0x71, 0xce, 0xb4, 0x2, 0xd7, 0x69, 0x1, 0x3e, 0x49, 0x31, 0x27, 0x5, 0xad, 0x92, 0xdf, + 0x10, 0x90, 0xc5, 0x54, 0x76, 0xc4, 0x4f, 0x8f, 0x14, 0x8d, 0xff, 0x88, 0xd0, 0x50, 0x20, 0x8d, 0x70, 0x8a, + 0xcb, 0x43, 0xab, 0x31, 0x30, 0xec, 0x7b, 0x93, 0x71, 0xfc, 0xc3, 0x68, 0x4a, 0x72, 0x3e, 0xe7, 0x84, 0xce, + 0x91, 0x68, 0xf, 0xfa, 0xb9, 0xce, 0x4f, 0x7a, 0xde, 0x18, 0x12, 0x90, 0xf5, 0xf2, 0xce, 0xc5, 0xc5, 0xd6, + 0x64, 0x5b, 0xa1, 0x66, 0xe0, 0x3a, 0xff, 0xd, 0x49, 0xb1, 0x5d, 0x2c, 0x6e, 0x3e, 0x5b, 0x86, 0x2e, 0xd7, + 0xae, 0xd5, 0xc1, 0xcc, 0xc7, 0x3b, 0x44, 0x1f, 0x72, 0x67, 0x84, 0x6, 0xbb, 0x5c, 0x13, 0xff, 0x20, 0xd8, + 0x21, 0x22, 0xd6, 0x9c, 0x2b, 0xa6, 0x47, 0x85, 0xbd, 0xcf, 0xc6, 0xc3, 0x4d, 0x5d, 0xee, 0x7d, 0x63, 0x4f, + 0xe4, 0xab, 0x37, 0xfc, 0x95, 0x84, 0xbd, 0xc8, 0x14, 0x24, 0x30, 0x43, 0x29, 0xc6, 0x8d, 0xd5, 0xa7, 0x84, + 0xf6, 0x4a, 0x74, 0x54, 0x7e, 0x4b, 0x4d, 0xba, 0xbc, 0x2c, 0xa8, 0xe0, 0x3b, 0xbd, 0xd4, 0x8d, 0x32, 0xf8, + 0x92, 0x91, 0x3f, 0x42, 0xdb, 0xbe, 0xac, 0x66, 0x8d, 0x78, 0x3f, 0xca, 0xe9, 0x45, 0x78, 0xd7, 0x2f, 0xec, + 0xfa, 0xb6, 0x7c, 0x92, 0xed, 0xb, 0xff, 0xa0, 0xb7, 0xd4, 0xfb, 0xe8, 0x6e, 0x63, 0x52, 0x54, 0xa9, 0x64, + 0x8e, 0x61, 0xd6, 0x1a, 0x7f, 0x97, 0x53, 0x41, 0xb2, 0xa0, 0xf2, 0x4c, 0xff, 0x54, 0xd7, 0x9c, 0x90, 0xcf, + 0x3, 0xa3, 0xc6, 0x59, 0xb2, 0xb2, 0xe0, 0xb2, 0xe2, 0xd6, 0x54, 0xd8, 0xad, 0x71, 0xf4, 0xae, 0xc7, 0x7a, + 0xfd, 0x30, 0xb0, 0x6c, 0xa2, 0x4b, 0xc4, 0x2e, 0x59, 0xab, 0xcd, 0xb4, 0xf4, 0xe7, 0xde, 0xad, 0x14, 0x1b, + 0x64, 0x42, 0x4b, 0x5d, 0xf3, 0xba, 0xf3, 0x7a, 0xb9, 0xb7, 0xd1, 0xcb, 0x42, 0xec, 0x23, 0x8a, 0xbb, 0x44, + 0x79, 0x58, 0x9e, 0x79, 0x38, 0x20, 0x8, 0x0, 0x8e, 0xa7, 0xbf, 0xbd, 0x75, 0x69, 0xd5, 0x4a, 0x83, 0x62, 0x70, + 0x9b, 0xb3, 0xf2, 0x28, 0xdb, 0xf, 0x8d, 0xad, 0xf3, 0xb9, 0xa9, 0x2d, 0x16, 0x42, 0x1b, 0x55, 0x1b, 0x66, + 0xfa, 0x14, 0xa8, 0x29, 0x49, 0x23, 0xb2, 0xfd, 0x68, 0x9, 0x69, 0x7d, 0x74, 0xc6, 0x4f, 0xc8, 0x29, 0xc5, + 0x8a, 0x9a, 0xde, 0x7, 0xd3, 0x78, 0xf4, 0xe6, 0x5b, 0x8e, 0x34, 0xc4, 0xf, 0x9, 0x0, 0x68, 0xce, 0x2d, 0x81, + 0x27, 0x24, 0x2f, 0xcd, 0x70, 0x5c, 0x86, 0x9c, 0x2d, 0x10, 0xee, 0xd4, 0x9a, 0x1a, 0xdf, 0x2c, 0xc8, 0x65, + 0x8a, 0xd4, 0xd7, 0x6d, 0x10, 0x16, 0x9f, 0xeb, 0xc7, 0x64, 0x61, 0xb4, 0xbd, 0x51, 0x7b, 0x88, 0xc5, 0x50, + 0x95, 0xc7, 0xa4, 0x7e, 0xa9, 0x74, 0x44, 0x9e, 0xd5, 0x56, 0x95, 0x4, 0xd8, 0xb0, 0xb2, 0x5c, 0x4f, 0x5, 0x82, + 0x2b, 0xfc, 0x1e, 0x53, 0x9d, 0xe2, 0x10, 0xaa, 0x32, 0x51, 0x91, 0x1d, 0xeb, 0x47, 0x4, 0x6, 0x70, 0xd6, 0x61, + 0xb6, 0xc8, 0xe3, 0xd, 0x52, 0x84, 0xdb, 0x9c, 0x55, 0x6f, 0x46, 0x6c, 0x50, 0xb6, 0x62, 0x42, 0x31, 0xfa, + 0x63, 0x9d, 0x97, 0xa7, 0x9c, 0x31, 0xb1, 0x43, 0x54, 0x4f, 0x5f, 0x7e, 0x6a, 0x34, 0x91, 0x38, 0x68, 0x9b, + 0x6b, 0x5e, 0xc1, 0x48, 0x5, 0x9d, 0x1b, 0x7e, 0x95, 0x63, 0x64, 0x9f, 0x3c, 0x4c, 0x71, 0x5c, 0x9b, 0x87, + 0xce, 0x31, 0x5c, 0xc7, 0xa7, 0x24, 0x16, 0xdb, 0x83, 0xdb, 0x54, 0xea, 0x6a, 0xb8, 0xe, 0xd6, 0xba, 0x10, + 0xeb, 0xe3, 0x7c, 0xa0, 0xcc, 0x91, 0xe8, 0x6, 0x69, 0x66, 0x60, 0xef, 0x55, 0x4a, 0x3e, 0xf9, 0xe6, 0xb4, + 0x5b, 0x48, 0xb6, 0xf4, 0xeb, 0x8, 0xe6, 0xc3, 0xb5, 0x22, 0xf8, 0x18, 0x1b, 0xc0, 0xb6, 0xdb, 0x87, 0x8b, + 0x13, 0x3c, 0x21, ]; let mac_data = vec![ - 0xe8, 0x38, 0x46, 0xb7, 0xa8, 0xf9, 0x5c, 0x66, 0xe3, 0x8e, 0x10, 0x8f, 0xb6, 0x4, 0x80, - 0xc7, + 0xe8, 0x38, 0x46, 0xb7, 0xa8, 0xf9, 0x5c, 0x66, 0xe3, 0x8e, 0x10, 0x8f, 0xb6, 0x4, 0x80, 0xc7, ]; let upgrade_license = ServerUpgradeLicense { @@ -748,16 +641,12 @@ fn upgrade_license_verifies_correctly() { let encryption_info = LicenseEncryptionData { premaster_secret: Vec::new(), // this field is not involved in this unit test mac_salt_key: vec![ - 0xd5, 0x2c, 0x7c, 0xd2, 0x71, 0x15, 0x2c, 0x41, 0xbb, 0xd8, 0x36, 0xdb, 0x19, 0x3e, - 0xc0, 0xf3, + 0xd5, 0x2c, 0x7c, 0xd2, 0x71, 0x15, 0x2c, 0x41, 0xbb, 0xd8, 0x36, 0xdb, 0x19, 0x3e, 0xc0, 0xf3, ], license_key: vec![ - 0x88, 0x7d, 0x33, 0xa6, 0x13, 0xd, 0x76, 0xbf, 0x76, 0x2a, 0xf, 0x57, 0x71, 0x1d, 0x40, - 0xa3, + 0x88, 0x7d, 0x33, 0xa6, 0x13, 0xd, 0x76, 0xbf, 0x76, 0x2a, 0xf, 0x57, 0x71, 0x1d, 0x40, 0xa3, ], }; - upgrade_license - .verify_server_license(&encryption_info) - .unwrap(); + upgrade_license.verify_server_license(&encryption_info).unwrap(); } diff --git a/ironrdp/src/rdp/server_license/test.rs b/ironrdp/src/rdp/server_license/test.rs index 2160bf3f..c704a779 100644 --- a/ironrdp/src/rdp/server_license/test.rs +++ b/ironrdp/src/rdp/server_license/test.rs @@ -11,11 +11,10 @@ const LICENSE_HEADER_BUFFER: [u8; 8] = [ const BLOB_BUFFER: [u8; 76] = [ 0x08, 0x00, // sig blob type 0x48, 0x00, // sig blob len - 0xe9, 0xe1, 0xd6, 0x28, 0x46, 0x8b, 0x4e, 0xf5, 0x0a, 0xdf, 0xfd, 0xee, 0x21, 0x99, 0xac, 0xb4, - 0xe1, 0x8f, 0x5f, 0x81, 0x57, 0x82, 0xef, 0x9d, 0x96, 0x52, 0x63, 0x27, 0x18, 0x29, 0xdb, 0xb3, - 0x4a, 0xfd, 0x9a, 0xda, 0x42, 0xad, 0xb5, 0x69, 0x21, 0x89, 0x0e, 0x1d, 0xc0, 0x4c, 0x1a, 0xa8, - 0xaa, 0x71, 0x3e, 0x0f, 0x54, 0xb9, 0x9a, 0xe4, 0x99, 0x68, 0x3f, 0x6c, 0xd6, 0x76, 0x84, 0x61, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // blob data + 0xe9, 0xe1, 0xd6, 0x28, 0x46, 0x8b, 0x4e, 0xf5, 0x0a, 0xdf, 0xfd, 0xee, 0x21, 0x99, 0xac, 0xb4, 0xe1, 0x8f, 0x5f, + 0x81, 0x57, 0x82, 0xef, 0x9d, 0x96, 0x52, 0x63, 0x27, 0x18, 0x29, 0xdb, 0xb3, 0x4a, 0xfd, 0x9a, 0xda, 0x42, 0xad, + 0xb5, 0x69, 0x21, 0x89, 0x0e, 0x1d, 0xc0, 0x4c, 0x1a, 0xa8, 0xaa, 0x71, 0x3e, 0x0f, 0x54, 0xb9, 0x9a, 0xe4, 0x99, + 0x68, 0x3f, 0x6c, 0xd6, 0x76, 0x84, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // blob data ]; const PLATFORM_CHALLENGE_BUFFER: [u8; 42] = [ @@ -26,8 +25,7 @@ const PLATFORM_CHALLENGE_BUFFER: [u8; 42] = [ 0x00, 0x00, // ignored 0x0a, 0x00, // blob len 0x46, 0x37, 0x85, 0x54, 0x8e, 0xc5, 0x91, 0x34, 0x97, 0x5d, // challenge - 0x38, 0x23, 0x62, 0x5d, 0x10, 0x8b, 0x93, 0xc3, 0xf1, 0xe4, 0x67, 0x1f, 0x4a, 0xb6, 0x00, - 0x0a, // mac data + 0x38, 0x23, 0x62, 0x5d, 0x10, 0x8b, 0x93, 0xc3, 0xf1, 0xe4, 0x67, 0x1f, 0x4a, 0xb6, 0x00, 0x0a, // mac data ]; pub const STATUS_VALID_CLIENT_BUFFER: [u8; 20] = [ @@ -58,11 +56,7 @@ lazy_static! { fn read_blob_header_handles_wrong_type_correctly() { match BlobHeader::read_from_buffer(BlobType::Certificate, &mut BLOB_BUFFER.as_ref()) { Err(ServerLicenseError::InvalidBlobType) => (), - Err(err) => panic!( - "expected {}, found {}", - ServerLicenseError::InvalidBlobType, - err - ), + Err(err) => panic!("expected {}, found {}", ServerLicenseError::InvalidBlobType, err), Ok(_) => panic!("expected error, found Ok"), } } @@ -72,28 +66,23 @@ fn read_blob_header_handles_invalid_type_correctly() { let invalid_blob_buffer: [u8; 76] = [ 0x99, 0x00, // sig blob type 0x48, 0x00, // sig blob len - 0xe9, 0xe1, 0xd6, 0x28, 0x46, 0x8b, 0x4e, 0xf5, 0x0a, 0xdf, 0xfd, 0xee, 0x21, 0x99, 0xac, - 0xb4, 0xe1, 0x8f, 0x5f, 0x81, 0x57, 0x82, 0xef, 0x9d, 0x96, 0x52, 0x63, 0x27, 0x18, 0x29, - 0xdb, 0xb3, 0x4a, 0xfd, 0x9a, 0xda, 0x42, 0xad, 0xb5, 0x69, 0x21, 0x89, 0x0e, 0x1d, 0xc0, - 0x4c, 0x1a, 0xa8, 0xaa, 0x71, 0x3e, 0x0f, 0x54, 0xb9, 0x9a, 0xe4, 0x99, 0x68, 0x3f, 0x6c, - 0xd6, 0x76, 0x84, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // blob data + 0xe9, 0xe1, 0xd6, 0x28, 0x46, 0x8b, 0x4e, 0xf5, 0x0a, 0xdf, 0xfd, 0xee, 0x21, 0x99, 0xac, 0xb4, 0xe1, 0x8f, + 0x5f, 0x81, 0x57, 0x82, 0xef, 0x9d, 0x96, 0x52, 0x63, 0x27, 0x18, 0x29, 0xdb, 0xb3, 0x4a, 0xfd, 0x9a, 0xda, + 0x42, 0xad, 0xb5, 0x69, 0x21, 0x89, 0x0e, 0x1d, 0xc0, 0x4c, 0x1a, 0xa8, 0xaa, 0x71, 0x3e, 0x0f, 0x54, 0xb9, + 0x9a, 0xe4, 0x99, 0x68, 0x3f, 0x6c, 0xd6, 0x76, 0x84, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, // blob data ]; match BlobHeader::read_from_buffer(BlobType::Certificate, invalid_blob_buffer.as_ref()) { Err(ServerLicenseError::InvalidBlobType) => (), - Err(err) => panic!( - "expected error {}, found {}", - ServerLicenseError::InvalidBlobType, - err - ), + Err(err) => panic!("expected error {}, found {}", ServerLicenseError::InvalidBlobType, err), Ok(_) => panic!("expected error, found Ok"), } } #[test] fn read_blob_header_reads_blob_correctly() { - let blob = - BlobHeader::read_from_buffer(BlobType::RsaSignature, &mut BLOB_BUFFER.as_ref()).unwrap(); + let blob = BlobHeader::read_from_buffer(BlobType::RsaSignature, &mut BLOB_BUFFER.as_ref()).unwrap(); assert_eq!(blob.length, BLOB_BUFFER.len() - 4); } @@ -117,12 +106,10 @@ fn mac_data_computes_correctly() { ]; let server_mac_data: [u8; 16] = [ - 0x58, 0xaf, 0x1f, 0x30, 0xd6, 0x4e, 0xe8, 0x6, 0xfc, 0xf9, 0xe6, 0x68, 0x21, 0x64, 0x25, - 0x3d, + 0x58, 0xaf, 0x1f, 0x30, 0xd6, 0x4e, 0xe8, 0x6, 0xfc, 0xf9, 0xe6, 0x68, 0x21, 0x64, 0x25, 0x3d, ]; - let decrypted_server_challenge: [u8; 10] = - [0x54, 0x0, 0x45, 0x0, 0x53, 0x0, 0x54, 0x0, 0x0, 0x0]; + let decrypted_server_challenge: [u8; 10] = [0x54, 0x0, 0x45, 0x0, 0x53, 0x0, 0x54, 0x0, 0x0, 0x0]; assert_eq!( compute_mac_data(mac_salt_key.as_ref(), decrypted_server_challenge.as_ref()), diff --git a/ironrdp/src/rdp/session_info.rs b/ironrdp/src/rdp/session_info.rs index 4e1362e7..63949594 100644 --- a/ironrdp/src/rdp/session_info.rs +++ b/ironrdp/src/rdp/session_info.rs @@ -4,14 +4,6 @@ mod tests; mod logon_extended; mod logon_info; -pub use self::{ - logon_extended::{ - LogonErrorNotificationData, LogonErrorNotificationType, LogonErrorsInfo, LogonExFlags, - LogonInfoExtended, ServerAutoReconnect, - }, - logon_info::{LogonInfo, LogonInfoVersion1, LogonInfoVersion2}, -}; - use std::io; use byteorder::{LittleEndian, ReadBytesExt, WriteBytesExt}; @@ -19,6 +11,11 @@ use failure::Fail; use num_derive::{FromPrimitive, ToPrimitive}; use num_traits::{FromPrimitive, ToPrimitive}; +pub use self::logon_extended::{ + LogonErrorNotificationData, LogonErrorNotificationType, LogonErrorsInfo, LogonExFlags, LogonInfoExtended, + ServerAutoReconnect, +}; +pub use self::logon_info::{LogonInfo, LogonInfoVersion1, LogonInfoVersion2}; use crate::{impl_from_error, PduParsing}; const INFO_TYPE_FIELD_SIZE: usize = 4; @@ -35,29 +32,22 @@ impl PduParsing for SaveSessionInfoPdu { type Error = SessionError; fn from_buffer(mut stream: impl io::Read) -> Result { - let info_type = InfoType::from_u32(stream.read_u32::()?) - .ok_or(SessionError::InvalidSaveSessionInfoType)?; + let info_type = + InfoType::from_u32(stream.read_u32::()?).ok_or(SessionError::InvalidSaveSessionInfoType)?; let info_data = match info_type { InfoType::Logon => InfoData::LogonInfoV1(LogonInfoVersion1::from_buffer(&mut stream)?), - InfoType::LogonLong => { - InfoData::LogonInfoV2(LogonInfoVersion2::from_buffer(&mut stream)?) - } + InfoType::LogonLong => InfoData::LogonInfoV2(LogonInfoVersion2::from_buffer(&mut stream)?), InfoType::PlainNotify => { let mut padding_buffer = [0; PLAIN_NOTIFY_PADDING_SIZE]; stream.read_exact(&mut padding_buffer)?; InfoData::PlainNotify } - InfoType::LogonExtended => { - InfoData::LogonExtended(LogonInfoExtended::from_buffer(&mut stream)?) - } + InfoType::LogonExtended => InfoData::LogonExtended(LogonInfoExtended::from_buffer(&mut stream)?), }; - Ok(Self { - info_type, - info_data, - }) + Ok(Self { info_type, info_data }) } fn to_buffer(&self, mut stream: impl io::Write) -> Result<(), Self::Error> { diff --git a/ironrdp/src/rdp/session_info/logon_extended.rs b/ironrdp/src/rdp/session_info/logon_extended.rs index 87144ce3..4540929b 100644 --- a/ironrdp/src/rdp/session_info/logon_extended.rs +++ b/ironrdp/src/rdp/session_info/logon_extended.rs @@ -28,17 +28,9 @@ pub struct LogonInfoExtended { impl LogonInfoExtended { fn get_internal_size(&self) -> usize { - let reconnect_size = self - .auto_reconnect - .as_ref() - .map(|r| r.buffer_length()) - .unwrap_or(0); + let reconnect_size = self.auto_reconnect.as_ref().map(|r| r.buffer_length()).unwrap_or(0); - let errors_size = self - .errors_info - .as_ref() - .map(|r| r.buffer_length()) - .unwrap_or(0); + let errors_size = self.errors_info.as_ref().map(|r| r.buffer_length()).unwrap_or(0); LOGON_EX_LENGTH_FIELD_SIZE + LOGON_EX_FLAGS_FIELD_SIZE + reconnect_size + errors_size } @@ -49,8 +41,7 @@ impl PduParsing for LogonInfoExtended { fn from_buffer(mut stream: impl io::Read) -> Result { let _self_length = stream.read_u16::()?; - let present_fields_flags = - LogonExFlags::from_bits_truncate(stream.read_u32::()?); + let present_fields_flags = LogonExFlags::from_bits_truncate(stream.read_u32::()?); let auto_reconnect = if present_fields_flags.contains(LogonExFlags::AUTO_RECONNECT_COOKIE) { Some(ServerAutoReconnect::from_buffer(&mut stream)?) @@ -120,10 +111,7 @@ impl PduParsing for ServerAutoReconnect { let mut random_bits = [0; AUTO_RECONNECT_RANDOM_BITS_SIZE]; stream.read_exact(&mut random_bits)?; - Ok(Self { - logon_id, - random_bits, - }) + Ok(Self { logon_id, random_bits }) } fn to_buffer(&self, mut stream: impl io::Write) -> Result<(), Self::Error> { @@ -157,10 +145,7 @@ impl PduParsing for LogonErrorsInfo { let error_data = LogonErrorNotificationData::from_u32(stream.read_u32::()?) .ok_or(SessionError::InvalidLogonErrorData)?; - Ok(Self { - error_type, - error_data, - }) + Ok(Self { error_type, error_data }) } fn to_buffer(&self, mut stream: impl io::Write) -> Result<(), Self::Error> { diff --git a/ironrdp/src/rdp/session_info/logon_info.rs b/ironrdp/src/rdp/session_info/logon_info.rs index 42a07858..4afe79cf 100644 --- a/ironrdp/src/rdp/session_info/logon_info.rs +++ b/ironrdp/src/rdp/session_info/logon_info.rs @@ -14,8 +14,7 @@ const ID_SESSION_SIZE: usize = 4; const SAVE_SESSION_PDU_VERSION_ONE: u16 = 0x0001; const LOGON_INFO_V2_SIZE: usize = 18; const LOGON_INFO_V2_PADDING_SIZE: usize = 558; -const LOGON_INFO_V2_PADDING_BUFFER: [u8; LOGON_INFO_V2_PADDING_SIZE] = - [0; LOGON_INFO_V2_PADDING_SIZE]; +const LOGON_INFO_V2_PADDING_BUFFER: [u8; LOGON_INFO_V2_PADDING_SIZE] = [0; LOGON_INFO_V2_PADDING_SIZE]; const DOMAIN_NAME_SIZE_V2: usize = 52; const USER_NAME_SIZE_V2: usize = 512; @@ -33,24 +32,14 @@ impl PduParsing for LogonInfoVersion1 { return Err(SessionError::InvalidDomainNameSize); } - let domain_name = utils::read_string( - &mut stream, - DOMAIN_NAME_SIZE_V1, - utils::CharacterSet::Unicode, - false, - )?; + let domain_name = utils::read_string(&mut stream, DOMAIN_NAME_SIZE_V1, utils::CharacterSet::Unicode, false)?; let user_name_size = stream.read_u32::()?; if user_name_size > USER_NAME_SIZE_V1 as u32 { return Err(SessionError::InvalidUserNameSize); } - let user_name = utils::read_string( - &mut stream, - USER_NAME_SIZE_V1, - utils::CharacterSet::Unicode, - false, - )?; + let user_name = utils::read_string(&mut stream, USER_NAME_SIZE_V1, utils::CharacterSet::Unicode, false)?; let session_id = stream.read_u32::()?; diff --git a/ironrdp/src/rdp/session_info/tests.rs b/ironrdp/src/rdp/session_info/tests.rs index b80ffef4..7c4e69e3 100644 --- a/ironrdp/src/rdp/session_info/tests.rs +++ b/ironrdp/src/rdp/session_info/tests.rs @@ -3,200 +3,174 @@ use lazy_static::lazy_static; use super::*; const LOGON_INFO_V1_BUFFER: [u8; 576] = [ - 0x0c, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x54, 0x00, 0x44, 0x00, 0x45, 0x00, 0x56, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x65, 0x00, 0x6c, 0x00, - 0x74, 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x54, 0x00, 0x44, 0x00, 0x45, 0x00, 0x56, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, + 0x00, 0x00, 0x00, 0x65, 0x00, 0x6c, 0x00, 0x74, 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, ]; const LOGON_INFO_V2_BUFFER: [u8; 602] = [ - 0x01, 0x00, 0x12, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0e, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x4e, 0x00, 0x54, 0x00, 0x44, 0x00, 0x45, 0x00, 0x56, 0x00, 0x00, 0x00, 0x65, 0x00, 0x6c, 0x00, - 0x74, 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x73, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x12, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x54, 0x00, 0x44, 0x00, 0x45, 0x00, 0x56, 0x00, 0x00, 0x00, 0x65, + 0x00, 0x6c, 0x00, 0x74, 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x73, 0x00, 0x00, 0x00, ]; const SESSION_PLAIN_NOTIFY_BUFFER: [u8; 580] = [ - 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ]; const LOGON_EXTENDED_BUFFER: [u8; 620] = [ - 0x32, 0x00, 0x03, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x01, 0x00, - 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xa8, 0x02, 0xe7, 0x25, 0xe2, 0x4c, 0x82, 0xb7, 0x52, 0xa5, - 0x53, 0x50, 0x34, 0x98, 0xa1, 0xa8, 0x08, 0x00, 0x00, 0x00, 0xfa, 0xff, 0xff, 0xff, 0x02, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x32, 0x00, 0x03, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, + 0x00, 0x00, 0x00, 0xa8, 0x02, 0xe7, 0x25, 0xe2, 0x4c, 0x82, 0xb7, 0x52, 0xa5, 0x53, 0x50, 0x34, 0x98, 0xa1, 0xa8, + 0x08, 0x00, 0x00, 0x00, 0xfa, 0xff, 0xff, 0xff, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ]; const INVALID_SESSION_INFO_TYPE_BUFFER: [u8; 4] = [0x04, 0x00, 0x00, 0x00]; const LOGON_INFO_V1_WITH_INVALID_DOMAIN_SIZE_BUFFER: [u8; 4] = [0x35, 0x00, 0x00, 0x00]; const LOGON_INFO_V1_WITH_INVALID_USER_NAME_SIZE_BUFFER: [u8; 60] = [ - 0x0c, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x54, 0x00, 0x44, 0x00, 0x45, 0x00, 0x56, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x54, 0x00, 0x44, 0x00, 0x45, 0x00, 0x56, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x02, 0x00, 0x00, ]; const LOGON_INFO_V2_WITH_INVALID_LOGON_VERSION_BUFFER: [u8; 2] = [0x00, 0x00]; -const LOGON_INFO_V2_WITH_INVALID_LOGON_INFO_V2_SIZE_BUFFER: [u8; 6] = - [0x01, 0x00, 0x13, 0x00, 0x00, 0x00]; +const LOGON_INFO_V2_WITH_INVALID_LOGON_INFO_V2_SIZE_BUFFER: [u8; 6] = [0x01, 0x00, 0x13, 0x00, 0x00, 0x00]; const LOGON_EXTENDED_WITH_INVALID_RECONNECT_PACKET_SIZE_BUFFER: [u8; 14] = [ 0x26, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, ]; const LOGON_EXTENDED_WITH_INVALID_RECONNECT_VERSION_BUFFER: [u8; 18] = [ - 0x26, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x02, 0x00, - 0x00, 0x00, + 0x26, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, ]; const LOGON_EXTENDED_WITH_INVALID_LOGON_ERROR_TYPE_BUFFER: [u8; 46] = [ - 0x32, 0x00, 0x03, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x01, 0x00, - 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xa8, 0x02, 0xe7, 0x25, 0xe2, 0x4c, 0x82, 0xb7, 0x52, 0xa5, - 0x53, 0x50, 0x34, 0x98, 0xa1, 0xa8, 0x08, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, + 0x32, 0x00, 0x03, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, + 0x00, 0x00, 0x00, 0xa8, 0x02, 0xe7, 0x25, 0xe2, 0x4c, 0x82, 0xb7, 0x52, 0xa5, 0x53, 0x50, 0x34, 0x98, 0xa1, 0xa8, + 0x08, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, ]; const LOGON_EXTENDED_WITH_INVALID_LOGON_ERROR_DATA_BUFFER: [u8; 50] = [ - 0x32, 0x00, 0x03, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x01, 0x00, - 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xa8, 0x02, 0xe7, 0x25, 0xe2, 0x4c, 0x82, 0xb7, 0x52, 0xa5, - 0x53, 0x50, 0x34, 0x98, 0xa1, 0xa8, 0x08, 0x00, 0x00, 0x00, 0xfa, 0xff, 0xff, 0xff, 0x04, 0x00, - 0x00, 0x00, + 0x32, 0x00, 0x03, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, + 0x00, 0x00, 0x00, 0xa8, 0x02, 0xe7, 0x25, 0xe2, 0x4c, 0x82, 0xb7, 0x52, 0xa5, 0x53, 0x50, 0x34, 0x98, 0xa1, 0xa8, + 0x08, 0x00, 0x00, 0x00, 0xfa, 0xff, 0xff, 0xff, 0x04, 0x00, 0x00, 0x00, ]; const DOMAIN_NAME: &str = "NTDEV"; @@ -223,8 +197,7 @@ lazy_static! { auto_reconnect: Some(ServerAutoReconnect { logon_id: SESSION_ID, random_bits: [ - 0xa8, 0x02, 0xe7, 0x25, 0xe2, 0x4c, 0x82, 0xb7, 0x52, 0xa5, 0x53, 0x50, 0x34, 0x98, - 0xa1, 0xa8 + 0xa8, 0x02, 0xe7, 0x25, 0xe2, 0x4c, 0x82, 0xb7, 0x52, 0xa5, 0x53, 0x50, 0x34, 0x98, 0xa1, 0xa8 ], }), errors_info: Some(LogonErrorsInfo { @@ -371,8 +344,7 @@ fn from_buffer_parsing_with_invalid_domain_size_fails() { #[test] fn from_buffer_parsing_with_invalid_user_name_size_fails() { - match LogonInfoVersion1::from_buffer(LOGON_INFO_V1_WITH_INVALID_USER_NAME_SIZE_BUFFER.as_ref()) - { + match LogonInfoVersion1::from_buffer(LOGON_INFO_V1_WITH_INVALID_USER_NAME_SIZE_BUFFER.as_ref()) { Err(SessionError::InvalidUserNameSize) => (), res => panic!("Expected InvalidUserNameSize error, got: {:?}", res), }; @@ -388,9 +360,7 @@ fn from_buffer_parsing_with_invalid_logon_version_fails() { #[test] fn from_buffer_parsing_with_invalid_logon_infov2_size_fails() { - match LogonInfoVersion2::from_buffer( - LOGON_INFO_V2_WITH_INVALID_LOGON_INFO_V2_SIZE_BUFFER.as_ref(), - ) { + match LogonInfoVersion2::from_buffer(LOGON_INFO_V2_WITH_INVALID_LOGON_INFO_V2_SIZE_BUFFER.as_ref()) { Err(SessionError::InvalidLogonVersion2Size) => (), res => panic!("Expected InvalidLogonVersion2Size error, got: {:?}", res), }; @@ -398,22 +368,15 @@ fn from_buffer_parsing_with_invalid_logon_infov2_size_fails() { #[test] fn from_buffer_parsing_with_invalid_reconnect_packet_size_fails() { - match LogonInfoExtended::from_buffer( - LOGON_EXTENDED_WITH_INVALID_RECONNECT_PACKET_SIZE_BUFFER.as_ref(), - ) { + match LogonInfoExtended::from_buffer(LOGON_EXTENDED_WITH_INVALID_RECONNECT_PACKET_SIZE_BUFFER.as_ref()) { Err(SessionError::InvalidAutoReconnectPacketSize) => (), - res => panic!( - "Expected InvalidAutoReconnectPacketSize error, got: {:?}", - res - ), + res => panic!("Expected InvalidAutoReconnectPacketSize error, got: {:?}", res), }; } #[test] fn from_buffer_parsing_with_invalid_reconnect_version_fails() { - match LogonInfoExtended::from_buffer( - LOGON_EXTENDED_WITH_INVALID_RECONNECT_VERSION_BUFFER.as_ref(), - ) { + match LogonInfoExtended::from_buffer(LOGON_EXTENDED_WITH_INVALID_RECONNECT_VERSION_BUFFER.as_ref()) { Err(SessionError::InvalidAutoReconnectVersion) => (), res => panic!("Expected InvalidAutoReconnectVersion error, got: {:?}", res), }; @@ -421,9 +384,7 @@ fn from_buffer_parsing_with_invalid_reconnect_version_fails() { #[test] fn from_buffer_parsing_with_invalid_logon_error_type_fails() { - match LogonInfoExtended::from_buffer( - LOGON_EXTENDED_WITH_INVALID_LOGON_ERROR_TYPE_BUFFER.as_ref(), - ) { + match LogonInfoExtended::from_buffer(LOGON_EXTENDED_WITH_INVALID_LOGON_ERROR_TYPE_BUFFER.as_ref()) { Err(SessionError::InvalidLogonErrorType) => (), res => panic!("Expected InvalidLogonErrorType error, got: {:?}", res), }; @@ -431,9 +392,7 @@ fn from_buffer_parsing_with_invalid_logon_error_type_fails() { #[test] fn from_buffer_parsing_with_invalid_logon_error_data_fails() { - match LogonInfoExtended::from_buffer( - LOGON_EXTENDED_WITH_INVALID_LOGON_ERROR_DATA_BUFFER.as_ref(), - ) { + match LogonInfoExtended::from_buffer(LOGON_EXTENDED_WITH_INVALID_LOGON_ERROR_DATA_BUFFER.as_ref()) { Err(SessionError::InvalidLogonErrorData) => (), res => panic!("Expected InvalidLogonErrorData error, got: {:?}", res), }; diff --git a/ironrdp/src/rdp/test.rs b/ironrdp/src/rdp/test.rs index dae2a6e9..7d42d26b 100644 --- a/ironrdp/src/rdp/test.rs +++ b/ironrdp/src/rdp/test.rs @@ -1,16 +1,14 @@ use lazy_static::lazy_static; -use super::{finalization_messages::*, headers::*, server_license::*, *}; -use crate::{ - gcc::{self, monitor_data}, - rdp::{ - capability_sets::test::{ - CLIENT_DEMAND_ACTIVE, CLIENT_DEMAND_ACTIVE_BUFFER, SERVER_DEMAND_ACTIVE, - SERVER_DEMAND_ACTIVE_BUFFER, - }, - client_info::test::{CLIENT_INFO_BUFFER_UNICODE, CLIENT_INFO_UNICODE}, - }, +use super::finalization_messages::*; +use super::headers::*; +use super::server_license::*; +use super::*; +use crate::gcc::{self, monitor_data}; +use crate::rdp::capability_sets::test::{ + CLIENT_DEMAND_ACTIVE, CLIENT_DEMAND_ACTIVE_BUFFER, SERVER_DEMAND_ACTIVE, SERVER_DEMAND_ACTIVE_BUFFER, }; +use crate::rdp::client_info::test::{CLIENT_INFO_BUFFER_UNICODE, CLIENT_INFO_UNICODE}; const CLIENT_INFO_PDU_SECURITY_HEADER_BUFFER: [u8; 4] = [ 0x40, 0x00, // flags @@ -153,8 +151,7 @@ lazy_static! { preamble_message_type: PreambleType::ErrorAlert, preamble_flags: PreambleFlags::empty(), preamble_version: PreambleVersion::V3, - preamble_message_size: (SERVER_LICENSE_BUFFER.len() - BASIC_SECURITY_HEADER_SIZE) - as u16 + preamble_message_size: (SERVER_LICENSE_BUFFER.len() - BASIC_SECURITY_HEADER_SIZE) as u16 }, message_type: InitialMessageType::StatusValidClient(LicensingErrorMessage { error_code: LicenseErrorCode::StatusValidClient, @@ -176,9 +173,7 @@ lazy_static! { }; pub static ref CLIENT_SYNCHRONIZE: ShareControlHeader = ShareControlHeader { share_control_pdu: ShareControlPdu::Data(ShareDataHeader { - share_data_pdu: ShareDataPdu::Synchronize(SynchronizePdu { - target_user_id: 0x03ea - }), + share_data_pdu: ShareDataPdu::Synchronize(SynchronizePdu { target_user_id: 0x03ea }), stream_priority: StreamPriority::Low, compression_flags: CompressionFlags::empty(), compression_type: client_info::CompressionType::K8, @@ -267,9 +262,7 @@ lazy_static! { pub static ref MONITOR_LAYOUT_PDU: ShareControlHeader = ShareControlHeader { share_control_pdu: ShareControlPdu::Data(ShareDataHeader { share_data_pdu: ShareDataPdu::MonitorLayout(MonitorLayoutPdu { - monitors: gcc::monitor_data::test::MONITOR_DATA_WITH_MONITORS - .monitors - .clone(), + monitors: gcc::monitor_data::test::MONITOR_DATA_WITH_MONITORS.monitors.clone(), }), stream_priority: StreamPriority::Low, compression_flags: CompressionFlags::empty(), @@ -361,10 +354,7 @@ fn from_buffer_correctly_parses_rdp_pdu_client_synchronize() { fn from_buffer_correctly_parses_rdp_pdu_client_control_cooperate() { let buf = CONTROL_COOPERATE_BUFFER.as_ref(); - assert_eq!( - CONTROL_COOPERATE.clone(), - ShareControlHeader::from_buffer(buf).unwrap() - ); + assert_eq!(CONTROL_COOPERATE.clone(), ShareControlHeader::from_buffer(buf).unwrap()); } #[test] @@ -391,20 +381,14 @@ fn from_buffer_correctly_parses_rdp_pdu_server_control_granted_control() { fn from_buffer_correctly_parses_rdp_pdu_client_font_list() { let buf = CLIENT_FONT_LIST_BUFFER.as_ref(); - assert_eq!( - CLIENT_FONT_LIST.clone(), - ShareControlHeader::from_buffer(buf).unwrap() - ); + assert_eq!(CLIENT_FONT_LIST.clone(), ShareControlHeader::from_buffer(buf).unwrap()); } #[test] fn from_buffer_correctly_parses_rdp_pdu_server_font_map() { let buf = SERVER_FONT_MAP_BUFFER.as_ref(); - assert_eq!( - SERVER_FONT_MAP.clone(), - ShareControlHeader::from_buffer(buf).unwrap() - ); + assert_eq!(SERVER_FONT_MAP.clone(), ShareControlHeader::from_buffer(buf).unwrap()); } #[test] diff --git a/ironrdp/src/rdp/vc.rs b/ironrdp/src/rdp/vc.rs index 645df13e..f8476ef9 100644 --- a/ironrdp/src/rdp/vc.rs +++ b/ironrdp/src/rdp/vc.rs @@ -29,10 +29,7 @@ impl PduParsing for ChannelPduHeader { let total_length = stream.read_u32::()?; let flags = ChannelControlFlags::from_bits_truncate(stream.read_u32::()?); - Ok(Self { - total_length, - flags, - }) + Ok(Self { total_length, flags }) } fn to_buffer(&self, mut stream: impl io::Write) -> Result<(), Self::Error> { @@ -90,17 +87,10 @@ pub enum ChannelError { } impl_from_error!(io::Error, ChannelError, ChannelError::IOError); -impl_from_error!( - std::string::FromUtf8Error, - ChannelError, - ChannelError::FromUtf8Error -); +impl_from_error!(std::string::FromUtf8Error, ChannelError, ChannelError::FromUtf8Error); impl From for io::Error { fn from(e: ChannelError) -> io::Error { - io::Error::new( - io::ErrorKind::Other, - format!("Virtual channel error: {}", e), - ) + io::Error::new(io::ErrorKind::Other, format!("Virtual channel error: {}", e)) } } diff --git a/ironrdp/src/rdp/vc/dvc.rs b/ironrdp/src/rdp/vc/dvc.rs index 61650d68..fec477a1 100644 --- a/ironrdp/src/rdp/vc/dvc.rs +++ b/ironrdp/src/rdp/vc/dvc.rs @@ -9,24 +9,19 @@ mod create; mod data; mod data_first; -pub use self::{ - capabilities::{CapabilitiesRequestPdu, CapabilitiesResponsePdu, CapsVersion}, - close::ClosePdu, - create::{ - CreateRequestPdu, CreateResponsePdu, DVC_CREATION_STATUS_NO_LISTENER, - DVC_CREATION_STATUS_OK, - }, - data::DataPdu, - data_first::DataFirstPdu, -}; - -use std::{collections::HashMap, io, mem}; +use std::collections::HashMap; +use std::{io, mem}; use bit_field::BitField; use byteorder::{LittleEndian, ReadBytesExt, WriteBytesExt}; use num_derive::{FromPrimitive, ToPrimitive}; use num_traits::{FromPrimitive, ToPrimitive}; +pub use self::capabilities::{CapabilitiesRequestPdu, CapabilitiesResponsePdu, CapsVersion}; +pub use self::close::ClosePdu; +pub use self::create::{CreateRequestPdu, CreateResponsePdu, DVC_CREATION_STATUS_NO_LISTENER, DVC_CREATION_STATUS_OK}; +pub use self::data::DataPdu; +pub use self::data_first::DataFirstPdu; use super::ChannelError; use crate::PduParsing; @@ -57,28 +52,25 @@ pub enum ServerPdu { } impl ServerPdu { - pub fn from_buffer( - mut stream: impl io::Read, - mut dvc_data_size: usize, - ) -> Result { + pub fn from_buffer(mut stream: impl io::Read, mut dvc_data_size: usize) -> Result { let dvc_header = Header::from_buffer(&mut stream)?; - let channel_id_type = FieldType::from_u8(dvc_header.channel_id_type) - .ok_or(ChannelError::InvalidDVChannelIdLength)?; + let channel_id_type = + FieldType::from_u8(dvc_header.channel_id_type).ok_or(ChannelError::InvalidDVChannelIdLength)?; dvc_data_size -= HEADER_SIZE; match dvc_header.pdu_type { - PduType::Capabilities => Ok(ServerPdu::CapabilitiesRequest( - CapabilitiesRequestPdu::from_buffer(&mut stream)?, - )), + PduType::Capabilities => Ok(ServerPdu::CapabilitiesRequest(CapabilitiesRequestPdu::from_buffer( + &mut stream, + )?)), PduType::Create => Ok(ServerPdu::CreateRequest(CreateRequestPdu::from_buffer( &mut stream, channel_id_type, dvc_data_size, )?)), PduType::DataFirst => { - let data_length_type = FieldType::from_u8(dvc_header.pdu_dependent) - .ok_or(ChannelError::InvalidDvcDataLength)?; + let data_length_type = + FieldType::from_u8(dvc_header.pdu_dependent).ok_or(ChannelError::InvalidDvcDataLength)?; Ok(ServerPdu::DataFirst(DataFirstPdu::from_buffer( &mut stream, @@ -142,27 +134,24 @@ pub enum ClientPdu { } impl ClientPdu { - pub fn from_buffer( - mut stream: impl io::Read, - mut dvc_data_size: usize, - ) -> Result { + pub fn from_buffer(mut stream: impl io::Read, mut dvc_data_size: usize) -> Result { let dvc_header = Header::from_buffer(&mut stream)?; - let channel_id_type = FieldType::from_u8(dvc_header.channel_id_type) - .ok_or(ChannelError::InvalidDVChannelIdLength)?; + let channel_id_type = + FieldType::from_u8(dvc_header.channel_id_type).ok_or(ChannelError::InvalidDVChannelIdLength)?; dvc_data_size -= HEADER_SIZE; match dvc_header.pdu_type { - PduType::Capabilities => Ok(ClientPdu::CapabilitiesResponse( - CapabilitiesResponsePdu::from_buffer(&mut stream)?, - )), + PduType::Capabilities => Ok(ClientPdu::CapabilitiesResponse(CapabilitiesResponsePdu::from_buffer( + &mut stream, + )?)), PduType::Create => Ok(ClientPdu::CreateResponse(CreateResponsePdu::from_buffer( &mut stream, channel_id_type, )?)), PduType::DataFirst => { - let data_length_type = FieldType::from_u8(dvc_header.pdu_dependent) - .ok_or(ChannelError::InvalidDvcDataLength)?; + let data_length_type = + FieldType::from_u8(dvc_header.pdu_dependent).ok_or(ChannelError::InvalidDvcDataLength)?; Ok(ClientPdu::DataFirst(DataFirstPdu::from_buffer( &mut stream, @@ -225,10 +214,7 @@ pub enum FieldType { } impl FieldType { - pub fn read_buffer_according_to_type( - self, - mut stream: impl io::Read, - ) -> Result { + pub fn read_buffer_according_to_type(self, mut stream: impl io::Read) -> Result { let value = match self { FieldType::U8 => u32::from(stream.read_u8()?), FieldType::U16 => u32::from(stream.read_u16::()?), @@ -238,11 +224,7 @@ impl FieldType { Ok(value) } - pub fn to_buffer_according_to_type( - self, - mut stream: impl io::Write, - value: u32, - ) -> Result<(), io::Error> { + pub fn to_buffer_according_to_type(self, mut stream: impl io::Write, value: u32) -> Result<(), io::Error> { match self { FieldType::U8 => stream.write_u8(value as u8)?, FieldType::U16 => stream.write_u16::(value as u16)?, @@ -275,8 +257,7 @@ impl PduParsing for Header { let dvc_header = stream.read_u8()?; let channel_id_type = dvc_header.get_bits(0..2); let pdu_dependent = dvc_header.get_bits(2..4); - let pdu_type = - PduType::from_u8(dvc_header.get_bits(4..8)).ok_or(ChannelError::InvalidDvcPduType)?; + let pdu_type = PduType::from_u8(dvc_header.get_bits(4..8)).ok_or(ChannelError::InvalidDvcPduType)?; Ok(Self { channel_id_type, diff --git a/ironrdp/src/rdp/vc/dvc/capabilities.rs b/ironrdp/src/rdp/vc/dvc/capabilities.rs index 2408c43c..d76787a8 100644 --- a/ironrdp/src/rdp/vc/dvc/capabilities.rs +++ b/ironrdp/src/rdp/vc/dvc/capabilities.rs @@ -8,7 +8,8 @@ use num_derive::{FromPrimitive, ToPrimitive}; use num_traits::{FromPrimitive, ToPrimitive}; use super::{Header, PduType, HEADER_SIZE, UNUSED_U8}; -use crate::{rdp::vc::ChannelError, PduParsing}; +use crate::rdp::vc::ChannelError; +use crate::PduParsing; const DVC_CAPABILITIES_PAD_SIZE: usize = 1; const DVC_CAPABILITIES_VERSION_SIZE: usize = 2; @@ -67,9 +68,7 @@ impl PduParsing for CapabilitiesRequestPdu { stream.write_u8(UNUSED_U8)?; match self { - CapabilitiesRequestPdu::V1 => { - stream.write_u16::(CapsVersion::V1.to_u16().unwrap())? - } + CapabilitiesRequestPdu::V1 => stream.write_u16::(CapsVersion::V1.to_u16().unwrap())?, CapabilitiesRequestPdu::V2 { charges } => { stream.write_u16::(CapsVersion::V2.to_u16().unwrap())?; for charge in charges.iter() { diff --git a/ironrdp/src/rdp/vc/dvc/capabilities/tests.rs b/ironrdp/src/rdp/vc/dvc/capabilities/tests.rs index 87b1acb4..d1394fe8 100644 --- a/ironrdp/src/rdp/vc/dvc/capabilities/tests.rs +++ b/ironrdp/src/rdp/vc/dvc/capabilities/tests.rs @@ -3,17 +3,14 @@ use lazy_static::lazy_static; use super::*; const DVC_CAPABILITIES_REQUEST_V1_SIZE: usize = 4; -const DVC_CAPABILITIES_REQUEST_V1_BUFFER: [u8; DVC_CAPABILITIES_REQUEST_V1_SIZE] = - [0x50, 0x00, 0x01, 0x00]; +const DVC_CAPABILITIES_REQUEST_V1_BUFFER: [u8; DVC_CAPABILITIES_REQUEST_V1_SIZE] = [0x50, 0x00, 0x01, 0x00]; const DVC_CAPABILITIES_REQUEST_V2_SIZE: usize = 12; -const DVC_CAPABILITIES_REQUEST_V2_BUFFER: [u8; DVC_CAPABILITIES_REQUEST_V2_SIZE] = [ - 0x50, 0x00, 0x02, 0x00, 0x33, 0x33, 0x11, 0x11, 0x3d, 0x0a, 0xa7, 0x04, -]; +const DVC_CAPABILITIES_REQUEST_V2_BUFFER: [u8; DVC_CAPABILITIES_REQUEST_V2_SIZE] = + [0x50, 0x00, 0x02, 0x00, 0x33, 0x33, 0x11, 0x11, 0x3d, 0x0a, 0xa7, 0x04]; const DVC_CAPABILITIES_RESPONSE_SIZE: usize = 4; -const DVC_CAPABILITIES_RESPONSE_BUFFER: [u8; DVC_CAPABILITIES_RESPONSE_SIZE] = - [0x50, 0x00, 0x01, 0x00]; +const DVC_CAPABILITIES_RESPONSE_BUFFER: [u8; DVC_CAPABILITIES_RESPONSE_SIZE] = [0x50, 0x00, 0x01, 0x00]; lazy_static! { static ref DVC_CAPABILITIES_REQUEST_V1: CapabilitiesRequestPdu = CapabilitiesRequestPdu::V1; @@ -30,10 +27,7 @@ fn from_buffer_parsing_for_dvc_caps_request_pdu_with_invalid_caps_version_fails( let buffer_with_invalid_caps_version = vec![0x00, 0x01, 0x01]; match CapabilitiesRequestPdu::from_buffer(buffer_with_invalid_caps_version.as_slice()) { Err(ChannelError::InvalidDvcCapabilitiesVersion) => (), - res => panic!( - "Expected InvalidDvcCapabilitiesVersion error, got: {:?}", - res - ), + res => panic!("Expected InvalidDvcCapabilitiesVersion error, got: {:?}", res), }; } @@ -50,14 +44,9 @@ fn to_buffer_correct_serializes_dvc_capabilities_request_pdu_v1() { let dvc_capabilities_request_pdu_v1 = DVC_CAPABILITIES_REQUEST_V1.clone(); let mut buffer = Vec::new(); - dvc_capabilities_request_pdu_v1 - .to_buffer(&mut buffer) - .unwrap(); + dvc_capabilities_request_pdu_v1.to_buffer(&mut buffer).unwrap(); - assert_eq!( - DVC_CAPABILITIES_REQUEST_V1_BUFFER.as_ref(), - buffer.as_slice() - ); + assert_eq!(DVC_CAPABILITIES_REQUEST_V1_BUFFER.as_ref(), buffer.as_slice()); } #[test] @@ -83,14 +72,9 @@ fn to_buffer_correct_serializes_dvc_capabilities_request_pdu_v2() { let dvc_capabilities_request_pdu_v2 = DVC_CAPABILITIES_REQUEST_V2.clone(); let mut buffer = Vec::new(); - dvc_capabilities_request_pdu_v2 - .to_buffer(&mut buffer) - .unwrap(); + dvc_capabilities_request_pdu_v2.to_buffer(&mut buffer).unwrap(); - assert_eq!( - DVC_CAPABILITIES_REQUEST_V2_BUFFER.as_ref(), - buffer.as_slice() - ); + assert_eq!(DVC_CAPABILITIES_REQUEST_V2_BUFFER.as_ref(), buffer.as_slice()); } #[test] @@ -108,10 +92,7 @@ fn from_buffer_parsing_for_dvc_caps_response_pdu_with_invalid_caps_version_fails let buffer_with_invalid_caps_version = vec![0x00, 0x01, 0x01]; match CapabilitiesResponsePdu::from_buffer(buffer_with_invalid_caps_version.as_slice()) { Err(ChannelError::InvalidDvcCapabilitiesVersion) => (), - res => panic!( - "Expected InvalidDvcCapabilitiesVersion error, got: {:?}", - res - ), + res => panic!("Expected InvalidDvcCapabilitiesVersion error, got: {:?}", res), }; } diff --git a/ironrdp/src/rdp/vc/dvc/close.rs b/ironrdp/src/rdp/vc/dvc/close.rs index f693e3ce..4932babc 100644 --- a/ironrdp/src/rdp/vc/dvc/close.rs +++ b/ironrdp/src/rdp/vc/dvc/close.rs @@ -4,7 +4,8 @@ mod tests; use std::io; use super::{FieldType, Header, PduType, HEADER_SIZE, UNUSED_U8}; -use crate::{rdp::vc::ChannelError, PduParsing}; +use crate::rdp::vc::ChannelError; +use crate::PduParsing; #[derive(Debug, Clone, PartialEq)] pub struct ClosePdu { @@ -13,10 +14,7 @@ pub struct ClosePdu { } impl ClosePdu { - pub fn from_buffer( - mut stream: impl io::Read, - channel_id_type: FieldType, - ) -> Result { + pub fn from_buffer(mut stream: impl io::Read, channel_id_type: FieldType) -> Result { let channel_id = channel_id_type.read_buffer_according_to_type(&mut stream)?; Ok(Self { diff --git a/ironrdp/src/rdp/vc/dvc/create.rs b/ironrdp/src/rdp/vc/dvc/create.rs index 2bfe43ce..707eb866 100644 --- a/ironrdp/src/rdp/vc/dvc/create.rs +++ b/ironrdp/src/rdp/vc/dvc/create.rs @@ -6,7 +6,8 @@ use std::io; use byteorder::{LittleEndian, ReadBytesExt, WriteBytesExt}; use super::{FieldType, Header, PduType, HEADER_SIZE, UNUSED_U8}; -use crate::{rdp::vc::ChannelError, utils, PduParsing}; +use crate::rdp::vc::ChannelError; +use crate::{utils, PduParsing}; pub const DVC_CREATION_STATUS_OK: u32 = 0x0000_0000; pub const DVC_CREATION_STATUS_NO_LISTENER: u32 = 0xC000_0001; @@ -29,8 +30,7 @@ impl CreateRequestPdu { let channel_id = channel_id_type.read_buffer_according_to_type(&mut stream)?; data_size -= channel_id_type.get_type_size(); - let channel_name = - utils::read_string(&mut stream, data_size, utils::CharacterSet::Ansi, false)?; + let channel_name = utils::read_string(&mut stream, data_size, utils::CharacterSet::Ansi, false)?; Ok(Self { channel_id_type, @@ -67,10 +67,7 @@ pub struct CreateResponsePdu { } impl CreateResponsePdu { - pub fn from_buffer( - mut stream: impl io::Read, - channel_id_type: FieldType, - ) -> Result { + pub fn from_buffer(mut stream: impl io::Read, channel_id_type: FieldType) -> Result { let channel_id = channel_id_type.read_buffer_according_to_type(&mut stream)?; let creation_status = stream.read_u32::()?; diff --git a/ironrdp/src/rdp/vc/dvc/create/tests.rs b/ironrdp/src/rdp/vc/dvc/create/tests.rs index 66275c95..39e18b2c 100644 --- a/ironrdp/src/rdp/vc/dvc/create/tests.rs +++ b/ironrdp/src/rdp/vc/dvc/create/tests.rs @@ -9,8 +9,7 @@ const DVC_CREATE_REQUEST_BUFFER: [u8; DVC_CREATE_REQUEST_BUFFER_SIZE] = [0x10, 0x03, 0x74, 0x65, 0x73, 0x74, 0x64, 0x76, 0x63, 0x00]; const DVC_CREATE_RESPONSE_BUFFER_SIZE: usize = 6; -const DVC_CREATE_RESPONSE_BUFFER: [u8; DVC_CREATE_RESPONSE_BUFFER_SIZE] = - [0x10, 0x03, 0x00, 0x00, 0x00, 0x00]; +const DVC_CREATE_RESPONSE_BUFFER: [u8; DVC_CREATE_RESPONSE_BUFFER_SIZE] = [0x10, 0x03, 0x00, 0x00, 0x00, 0x00]; const DVC_TEST_HEADER_SIZE: usize = 0x01; diff --git a/ironrdp/src/rdp/vc/dvc/data.rs b/ironrdp/src/rdp/vc/dvc/data.rs index ddbabde9..9eb92fcf 100644 --- a/ironrdp/src/rdp/vc/dvc/data.rs +++ b/ironrdp/src/rdp/vc/dvc/data.rs @@ -4,7 +4,8 @@ mod tests; use std::io; use super::{FieldType, Header, PduType, HEADER_SIZE, PDU_WITH_DATA_MAX_SIZE, UNUSED_U8}; -use crate::{rdp::vc::ChannelError, PduParsing}; +use crate::rdp::vc::ChannelError; +use crate::PduParsing; #[derive(Debug, Clone, PartialEq)] pub struct DataPdu { @@ -22,8 +23,7 @@ impl DataPdu { let channel_id = channel_id_type.read_buffer_according_to_type(&mut stream)?; data_size -= channel_id_type.get_type_size(); - let expected_max_data_size = - PDU_WITH_DATA_MAX_SIZE - (HEADER_SIZE + channel_id_type.get_type_size()); + let expected_max_data_size = PDU_WITH_DATA_MAX_SIZE - (HEADER_SIZE + channel_id_type.get_type_size()); if data_size > expected_max_data_size { Err(ChannelError::InvalidDvcMessageSize) diff --git a/ironrdp/src/rdp/vc/dvc/data/tests.rs b/ironrdp/src/rdp/vc/dvc/data/tests.rs index b75271be..d4181b4f 100644 --- a/ironrdp/src/rdp/vc/dvc/data/tests.rs +++ b/ironrdp/src/rdp/vc/dvc/data/tests.rs @@ -8,8 +8,7 @@ const DVC_FULL_DATA_BUFFER_SIZE: usize = 14; const DVC_DATA_PREFIX: [u8; 2] = [0x30, 0x03]; const DVC_DATA_BUFFER: [u8; 12] = [0x71; 12]; -const DVC_INVALID_DATA_MESSAGE_BUFFER: [u8; PDU_WITH_DATA_MAX_SIZE] = - [0x77; PDU_WITH_DATA_MAX_SIZE]; +const DVC_INVALID_DATA_MESSAGE_BUFFER: [u8; PDU_WITH_DATA_MAX_SIZE] = [0x77; PDU_WITH_DATA_MAX_SIZE]; const DVC_TEST_HEADER_SIZE: usize = 0x01; diff --git a/ironrdp/src/rdp/vc/dvc/data_first.rs b/ironrdp/src/rdp/vc/dvc/data_first.rs index e9555975..a8f54737 100644 --- a/ironrdp/src/rdp/vc/dvc/data_first.rs +++ b/ironrdp/src/rdp/vc/dvc/data_first.rs @@ -4,7 +4,8 @@ mod tests; use std::io; use super::{FieldType, Header, PduType, HEADER_SIZE, PDU_WITH_DATA_MAX_SIZE}; -use crate::{rdp::vc::ChannelError, PduParsing}; +use crate::rdp::vc::ChannelError; +use crate::PduParsing; #[derive(Debug, Clone, PartialEq)] pub struct DataFirstPdu { @@ -34,9 +35,7 @@ impl DataFirstPdu { } let expected_max_data_size = PDU_WITH_DATA_MAX_SIZE - - (HEADER_SIZE - + channel_id_type.get_type_size() - + total_data_size_type.get_type_size()); + - (HEADER_SIZE + channel_id_type.get_type_size() + total_data_size_type.get_type_size()); if data_size > expected_max_data_size { Err(ChannelError::InvalidDvcMessageSize) @@ -67,8 +66,6 @@ impl DataFirstPdu { } pub fn buffer_length(&self) -> usize { - HEADER_SIZE - + self.channel_id_type.get_type_size() - + self.total_data_size_type.get_type_size() + HEADER_SIZE + self.channel_id_type.get_type_size() + self.total_data_size_type.get_type_size() } } diff --git a/ironrdp/src/rdp/vc/dvc/data_first/tests.rs b/ironrdp/src/rdp/vc/dvc/data_first/tests.rs index d874c27e..c346e06d 100644 --- a/ironrdp/src/rdp/vc/dvc/data_first/tests.rs +++ b/ironrdp/src/rdp/vc/dvc/data_first/tests.rs @@ -8,122 +8,101 @@ const DVC_TEST_DATA_LENGTH: u32 = 0x0000_0C7B; const DVC_FULL_DATA_FIRST_BUFFER_SIZE: usize = 16; const DVC_DATA_FIRST_PREFIX: [u8; 4] = [0x24, 0x03, 0x7b, 0x0c]; -const DVC_DATA_FIRST_BUFFER: [u8; 12] = [ - 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, -]; +const DVC_DATA_FIRST_BUFFER: [u8; 12] = [0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71]; const DVC_DATA_FIRST_WITH_INVALID_TOTAL_MESSAGE_SIZE_BUFFER_SIZE: usize = 0x06; const DVC_DATA_FIRST_WITH_INVALID_TOTAL_MESSAGE_SIZE_BUFFER: [u8; - DVC_DATA_FIRST_WITH_INVALID_TOTAL_MESSAGE_SIZE_BUFFER_SIZE] = - [0x03, 0x03, 0x71, 0x71, 0x71, 0x71]; + DVC_DATA_FIRST_WITH_INVALID_TOTAL_MESSAGE_SIZE_BUFFER_SIZE] = [0x03, 0x03, 0x71, 0x71, 0x71, 0x71]; -const DVC_INVALID_DATA_MESSAGE_BUFFER: [u8; PDU_WITH_DATA_MAX_SIZE] = - [0x77; PDU_WITH_DATA_MAX_SIZE]; +const DVC_INVALID_DATA_MESSAGE_BUFFER: [u8; PDU_WITH_DATA_MAX_SIZE] = [0x77; PDU_WITH_DATA_MAX_SIZE]; -const DATA_FIRST_WHERE_TOTAL_LENGTH_EQUALS_TO_BUFFER_LENGTH_PREFIX: [u8; 4] = - [0x24, 0x7, 0x39, 0x6]; +const DATA_FIRST_WHERE_TOTAL_LENGTH_EQUALS_TO_BUFFER_LENGTH_PREFIX: [u8; 4] = [0x24, 0x7, 0x39, 0x6]; const DATA_FIRST_WHERE_TOTAL_LENGTH_EQUALS_TO_BUFFER_LENGTH_BUFFER: [u8; 1593] = [ - 0xe0, 0x24, 0xa9, 0xba, 0xe0, 0x68, 0xa9, 0xba, 0x8a, 0x73, 0x41, 0x25, 0x12, 0x12, 0x1c, 0x28, - 0x3b, 0xa6, 0x34, 0x8, 0x8, 0x7a, 0x38, 0x34, 0x2c, 0xe8, 0xf8, 0xd0, 0xef, 0x18, 0xc2, 0xc, - 0x27, 0x1f, 0xb1, 0x83, 0x3c, 0x58, 0x8a, 0x67, 0x1, 0x58, 0x9d, 0x50, 0x8b, 0x8c, 0x60, 0x31, - 0x53, 0x55, 0x54, 0xd8, 0x51, 0x32, 0x23, 0x54, 0xd9, 0xd1, 0x65, 0x54, 0xd6, 0xe0, 0xb6, 0x4b, - 0x8b, 0xd1, 0x1a, 0x32, 0x6d, 0x10, 0xed, 0x21, 0x48, 0x8d, 0x1d, 0xa2, 0x6a, 0x90, 0x14, 0x88, - 0x30, 0x18, 0x8a, 0x11, 0x1a, 0x37, 0xc6, 0xa7, 0x32, 0x8b, 0xea, 0x32, 0x44, 0x78, 0xc9, 0x4e, - 0xdb, 0x47, 0x11, 0x53, 0xc6, 0x16, 0xc9, 0x72, 0x55, 0x11, 0x4e, 0x12, 0x55, 0x31, 0xd4, 0x4b, - 0x16, 0x71, 0x7e, 0x32, 0x13, 0x5, 0xb2, 0x5c, 0x9c, 0xa4, 0xab, 0x78, 0xc9, 0x20, 0x88, 0xfb, - 0x18, 0xa6, 0xb, 0x44, 0xac, 0x6, 0x23, 0x4b, 0x2d, 0x12, 0xa3, 0x1a, 0x8b, 0xea, 0x2c, 0x44, - 0x69, 0x12, 0xa8, 0xca, 0xa2, 0xc4, 0x64, 0x98, 0x99, 0x11, 0xd4, 0x5e, 0x8a, 0x51, 0x92, 0x23, - 0xa8, 0xbd, 0x34, 0x44, 0xc8, 0x65, 0x44, 0xd7, 0x30, 0x76, 0x11, 0xea, 0x5a, 0xf7, 0x8b, 0xf1, - 0x90, 0xaa, 0x90, 0x14, 0x52, 0x93, 0x4, 0x4c, 0x8b, 0x18, 0xc, 0x55, 0x2b, 0xd1, 0x5a, 0x4e, - 0xea, 0xa9, 0x82, 0x8b, 0xe0, 0xb2, 0x4a, 0x8e, 0x91, 0x62, 0x46, 0xf1, 0x8a, 0x77, 0x90, 0xd4, - 0x89, 0xa2, 0x34, 0x53, 0x15, 0x4f, 0xa4, 0xcf, 0x53, 0x2e, 0x93, 0x18, 0xa2, 0x35, 0x54, 0x51, - 0x11, 0xa4, 0x91, 0x16, 0x26, 0xd8, 0x44, 0xc9, 0x21, 0xde, 0x2f, 0xc6, 0x3b, 0x44, 0x69, 0xd, - 0x44, 0xd0, 0x59, 0x99, 0xde, 0x4b, 0x33, 0x44, 0x44, 0x9a, 0xa2, 0xe5, 0x55, 0xc0, 0x5b, 0x26, - 0x55, 0x57, 0x92, 0x0, 0x96, 0xe5, 0x55, 0xb6, 0xa2, 0x6a, 0x8b, 0xea, 0x3b, 0x45, 0xf5, 0x13, - 0x44, 0x88, 0x4c, 0x85, 0x22, 0xc4, 0x46, 0x8e, 0xd1, 0x1a, 0x6d, 0x21, 0x68, 0x97, 0x21, 0x88, - 0xde, 0xa2, 0x94, 0x74, 0x95, 0xcc, 0x62, 0x9d, 0xdb, 0x2d, 0x66, 0x92, 0xc9, 0x5a, 0xa5, 0x90, - 0xa4, 0x46, 0x91, 0xb4, 0x85, 0x22, 0x94, 0x4d, 0x13, 0x37, 0xb, 0x84, 0xd9, 0x2a, 0x9a, 0xaf, - 0x32, 0x3a, 0xa8, 0xdd, 0x11, 0xa4, 0x87, 0x78, 0xbe, 0x91, 0xa8, 0x53, 0xcc, 0x95, 0x22, 0xca, - 0x89, 0xb1, 0x8c, 0x92, 0x38, 0x91, 0x34, 0x8f, 0xa6, 0x88, 0x4c, 0x71, 0x31, 0x8a, 0x50, 0x51, - 0x1a, 0x34, 0x48, 0x4e, 0x31, 0x4e, 0x2b, 0x15, 0x62, 0x96, 0x2c, 0xc6, 0x29, 0xe2, 0x46, 0x21, - 0xf, 0x32, 0x32, 0xc0, 0x62, 0x49, 0x12, 0x6a, 0x88, 0xea, 0x2c, 0x46, 0x88, 0x9a, 0xa4, 0xcd, - 0x14, 0xa3, 0x84, 0x64, 0x91, 0xee, 0x28, 0xcb, 0x79, 0x4, 0x50, 0x44, 0x17, 0x9, 0xb1, 0x42, - 0x23, 0x47, 0xbb, 0xc5, 0xf5, 0x31, 0x2, 0x23, 0x45, 0x95, 0x13, 0x63, 0x27, 0xe8, 0xb3, 0x18, - 0xa6, 0xa4, 0x11, 0x31, 0xf6, 0x12, 0xc4, 0x8d, 0x2a, 0x26, 0xde, 0x63, 0x8e, 0x59, 0xd, 0xe5, - 0x97, 0x49, 0x98, 0x99, 0x2e, 0x9d, 0x12, 0x2b, 0xcb, 0x22, 0x9, 0x51, 0xde, 0x2f, 0x4b, 0xa6, - 0x11, 0xea, 0x7e, 0xe4, 0x8c, 0x26, 0x1a, 0x49, 0xb2, 0x23, 0xa8, 0xb1, 0x19, 0x24, 0x19, 0x11, - 0xd4, 0x58, 0x8e, 0x2a, 0x43, 0x51, 0xda, 0x23, 0x46, 0x48, 0xee, 0xa2, 0x66, 0x3, 0x11, 0x2a, - 0x23, 0xeb, 0x90, 0xcd, 0x24, 0x1f, 0x1a, 0x16, 0x48, 0xb3, 0x19, 0x2a, 0xf2, 0x67, 0xeb, 0x48, - 0xaf, 0x14, 0x9f, 0xa4, 0xab, 0xd2, 0x6c, 0x35, 0x9a, 0x53, 0x7c, 0x24, 0xb7, 0x79, 0x8f, 0x91, - 0x96, 0xf2, 0x8, 0x9e, 0xc2, 0x65, 0x11, 0x58, 0xe8, 0x4c, 0xc9, 0x15, 0x8d, 0xc4, 0x47, 0x32, - 0x18, 0x88, 0xea, 0x35, 0x82, 0xd5, 0xab, 0xa, 0xe2, 0x46, 0xf7, 0x8b, 0xf7, 0x90, 0x75, 0x8, - 0xe9, 0x8a, 0x11, 0x1d, 0x48, 0xf2, 0x4c, 0xd3, 0x6d, 0xd4, 0x65, 0x51, 0x7a, 0x52, 0x14, 0x22, - 0xd2, 0x37, 0xbc, 0x5f, 0xa4, 0x7c, 0x90, 0x74, 0x95, 0xb, 0x64, 0xc9, 0x21, 0x44, 0x69, 0x1b, - 0x8a, 0x13, 0x4a, 0x1, 0x28, 0x9a, 0x64, 0xc1, 0x1a, 0xc4, 0xc0, 0x6a, 0x28, 0x68, 0x98, 0x5b, - 0x26, 0x4c, 0x46, 0x92, 0x1d, 0x22, 0xc3, 0x61, 0xaa, 0xd2, 0x92, 0x44, 0x85, 0x22, 0x65, 0x3c, - 0xe8, 0xb2, 0xa9, 0x2a, 0x39, 0xa, 0x4a, 0x49, 0x3c, 0xba, 0x95, 0xe9, 0x92, 0xc6, 0x98, 0xd5, - 0x81, 0x8f, 0x95, 0x41, 0x94, 0x79, 0x93, 0x14, 0x8c, 0x71, 0x58, 0x27, 0xc9, 0x87, 0x73, 0xf1, - 0x66, 0x3c, 0x7d, 0xd3, 0xe6, 0xac, 0xa, 0xb7, 0x63, 0x18, 0x91, 0x8a, 0xc1, 0x48, 0xdc, 0xc9, - 0x4c, 0x1e, 0xc, 0xec, 0x82, 0xd6, 0x97, 0x57, 0x90, 0xfb, 0x89, 0x88, 0xdf, 0x70, 0xb0, 0xce, - 0xae, 0x54, 0x1e, 0x4b, 0x7a, 0x7d, 0x88, 0x8c, 0xd, 0x24, 0x63, 0x43, 0x7f, 0xc4, 0xee, 0xa3, - 0x51, 0xb7, 0x27, 0xb9, 0x73, 0x4f, 0x91, 0xe3, 0xec, 0x79, 0xa9, 0xf9, 0xca, 0x89, 0x28, 0x2d, - 0x44, 0xe0, 0xf3, 0xd1, 0x77, 0x4b, 0xab, 0xc8, 0xb5, 0xc4, 0x74, 0xf, 0xf0, 0xff, 0x3b, 0x8d, - 0xd2, 0xe, 0x22, 0xf6, 0x8c, 0xc, 0xfd, 0xd3, 0x12, 0x31, 0xa9, 0x57, 0xf0, 0x50, 0xd6, 0x45, - 0x30, 0xcb, 0x45, 0x82, 0xfe, 0x9f, 0x63, 0xc3, 0x3, 0x32, 0xa1, 0xa1, 0x83, 0xf, 0xb5, 0x42, - 0x85, 0x36, 0xf5, 0x4f, 0x18, 0x34, 0xf9, 0x1e, 0x3e, 0xc7, 0x9a, 0xb9, 0xd9, 0xe5, 0x51, 0x7a, - 0x8c, 0xac, 0x5b, 0x39, 0x98, 0x6e, 0x14, 0x87, 0x1c, 0x67, 0xc7, 0xa3, 0xed, 0xde, 0x48, 0xd9, - 0x47, 0xd0, 0xc5, 0x70, 0xa4, 0x38, 0xe3, 0x60, 0x1a, 0x17, 0x1e, 0x45, 0x1e, 0xdc, 0x6c, 0x23, - 0x1d, 0xc2, 0x90, 0xe3, 0x8d, 0x8c, 0x13, 0x8, 0xa5, 0x86, 0x9, 0x70, 0xca, 0x68, 0xc9, 0x70, - 0xa4, 0x38, 0xe3, 0x45, 0xa9, 0x5e, 0xce, 0x11, 0x23, 0xa5, 0x88, 0xed, 0x32, 0xd5, 0x83, 0xd3, - 0x58, 0x31, 0x30, 0x46, 0x8e, 0xc6, 0xc3, 0x88, 0xf4, 0xd2, 0x28, 0x7e, 0xfd, 0xff, 0xd2, 0xea, - 0xf1, 0xf5, 0x71, 0x1d, 0xde, 0x65, 0xb6, 0xf2, 0xa0, 0x98, 0xd2, 0x3c, 0x19, 0xf4, 0xba, 0xbc, - 0x7d, 0x5c, 0x4b, 0x54, 0xab, 0x8d, 0xc0, 0xcc, 0xf0, 0xac, 0x5d, 0x9a, 0x26, 0xae, 0x7c, 0x99, - 0xd9, 0xf6, 0x70, 0x4c, 0xfe, 0xba, 0x7b, 0x70, 0x5f, 0x7f, 0x1a, 0xd7, 0x26, 0x99, 0xb3, 0x13, - 0x67, 0x54, 0xe7, 0x99, 0x22, 0x13, 0xae, 0x24, 0x63, 0x61, 0x52, 0xb5, 0x22, 0x1a, 0xa6, 0xac, - 0x7c, 0x90, 0x4, 0x8c, 0x68, 0xe5, 0x41, 0x36, 0x95, 0xa9, 0xc7, 0x8a, 0x7d, 0xea, 0x6b, 0xd2, - 0xea, 0xf2, 0x81, 0x71, 0x1f, 0x46, 0x4a, 0xe6, 0xb2, 0xa0, 0x64, 0x6d, 0x1a, 0x1b, 0x26, 0xcc, - 0x4a, 0x82, 0x6b, 0x44, 0x9a, 0x64, 0x61, 0x69, 0xa6, 0xd, 0x2e, 0x72, 0xab, 0x2d, 0x4a, 0x6d, - 0x9b, 0x31, 0x2a, 0x8, 0xf3, 0x56, 0xc0, 0x7d, 0x9, 0xfc, 0xb5, 0x15, 0x8c, 0x97, 0xe6, 0xed, - 0x2e, 0xaf, 0x1f, 0x57, 0x10, 0xb7, 0x5, 0x80, 0x82, 0x23, 0x89, 0xbb, 0xd9, 0xbf, 0x49, 0xf8, - 0x95, 0x82, 0x74, 0xb6, 0x68, 0x25, 0xf, 0xb1, 0xd1, 0xe3, 0x27, 0x32, 0x6d, 0x4a, 0x70, 0xd3, - 0xee, 0x25, 0x41, 0x88, 0xf3, 0x47, 0x8b, 0x8d, 0x9f, 0xe0, 0x1a, 0x47, 0x39, 0x6, 0xce, 0x37, - 0xa, 0x56, 0xce, 0x34, 0x31, 0x71, 0x7e, 0xab, 0x37, 0x3a, 0xc2, 0x5b, 0xce, 0x5a, 0x5d, 0x5e, - 0x40, 0x6e, 0x23, 0xf8, 0xd7, 0xb3, 0xd5, 0xe6, 0xe0, 0x5e, 0xfa, 0x39, 0xcd, 0xd0, 0x95, 0x25, - 0x4b, 0xdd, 0x31, 0x26, 0x41, 0x94, 0xcb, 0xd, 0x3a, 0xd8, 0x12, 0x93, 0xda, 0x7, 0x4a, 0xa, - 0x91, 0x41, 0xc0, 0xc0, 0xa9, 0xaa, 0x28, 0x2a, 0x60, 0x6c, 0xb, 0x1e, 0x51, 0xe4, 0xc7, 0xaa, - 0x35, 0x24, 0x75, 0xd2, 0xea, 0xf1, 0xe7, 0x71, 0x15, 0xdc, 0x4f, 0x12, 0x92, 0xad, 0xf1, 0xbc, - 0xd0, 0x76, 0xd2, 0xea, 0xf1, 0x5b, 0x71, 0x23, 0x93, 0xaa, 0xd5, 0xf1, 0xb1, 0xaa, 0x11, 0x1a, - 0x9d, 0xf4, 0xba, 0xbc, 0x48, 0xdc, 0x46, 0xf6, 0xc8, 0xa7, 0xe3, 0xdc, 0x88, 0xaf, 0x21, 0x9e, - 0x25, 0xb2, 0x33, 0xf2, 0xa9, 0xe2, 0x96, 0xcc, 0x9c, 0x2c, 0xd3, 0xca, 0xf4, 0x2e, 0xe6, 0x17, - 0x25, 0xcf, 0x32, 0xd9, 0x19, 0xa1, 0xc0, 0xac, 0x2f, 0x25, 0xb3, 0x5, 0xab, 0x87, 0xd1, 0x84, - 0x4f, 0x91, 0x46, 0x4f, 0x5a, 0x5d, 0x5d, 0xf8, 0xae, 0x24, 0x12, 0x4c, 0x58, 0xfa, 0x7d, 0xa9, - 0x53, 0x8c, 0xe3, 0xdc, 0x8c, 0x3e, 0x48, 0xc2, 0xe1, 0x4b, 0xb9, 0xa6, 0xb, 0x61, 0x27, 0x39, - 0x10, 0xea, 0x93, 0x5c, 0x9f, 0x28, 0x54, 0x2c, 0xa4, 0xa2, 0x23, 0xcd, 0x3, 0xed, 0x4, 0x78, - 0x55, 0x60, 0xce, 0x35, 0x11, 0xcf, 0xb3, 0x9e, 0x46, 0x68, 0x64, 0x25, 0x43, 0x31, 0x11, 0x5c, - 0xe3, 0xfc, 0x1c, 0x36, 0xa2, 0x99, 0x87, 0xe9, 0xcf, 0x23, 0x34, 0x32, 0x11, 0xe6, 0x65, 0x17, - 0x9b, 0x99, 0x17, 0xe1, 0xe4, 0x5e, 0x24, 0x9f, 0xf4, 0xba, 0xbb, 0xca, 0xdc, 0x4c, 0xb7, 0xa1, - 0x11, 0x4, 0xd6, 0x9, 0x6c, 0xdc, 0xfb, 0xa5, 0xd5, 0xde, 0x8e, 0xe2, 0x15, 0xf0, 0x56, 0x95, - 0x9c, 0x6, 0xb3, 0xa1, 0x69, 0x3, 0x32, 0xe2, 0x73, 0xe6, 0x26, 0xcc, 0xd0, 0x88, 0x74, 0x2e, - 0x6, 0x5, 0x2c, 0x42, 0xfb, 0x45, 0x5, 0x31, 0x24, 0x4d, 0xd0, 0xfb, 0x37, 0x46, 0x6c, 0x47, - 0xb9, 0xf, 0xcb, 0x35, 0x8d, 0xc1, 0x88, 0x83, 0xd2, 0xed, 0xd5, 0x94, 0xf1, 0x11, 0xdf, 0x2c, - 0xb6, 0x29, 0x39, 0xc6, 0x64, 0x2a, 0xa1, 0x24, 0x61, 0x89, 0x18, 0x7c, 0x91, 0x8c, 0xd3, 0x66, - 0xc5, 0x8a, 0xa9, 0xc4, 0xd, 0x3c, 0x33, 0x50, 0xba, 0x5d, 0xba, 0xad, 0x5e, 0x2d, 0xcf, 0x75, - 0x32, 0x90, 0xee, 0xa8, 0xf4, 0xc5, 0x43, 0x50, 0xa8, 0x62, 0x87, 0xd2, 0x46, 0x34, 0x43, 0xf4, - 0x68, 0x88, 0x59, 0x3f, 0xa2, 0xd0, 0x7a, 0x1e, 0x69, 0x45, 0x56, 0x3d, 0x33, 0x12, 0x70, 0x4c, - 0x8d, 0x2c, 0x42, 0x1a, 0x94, 0xd4, 0xb7, 0x62, 0x18, 0x11, 0x1a, 0x5d, 0x5d, 0xe8, 0xee, 0x23, - 0x29, 0xc9, 0x8c, 0x65, 0x60, 0x7b, 0x7b, 0x8c, 0x11, 0x3a, 0x5d, 0xba, 0xcc, 0xde, 0x27, 0x99, - 0x58, 0x8a, 0x8c, 0x69, 0x91, 0xa, 0x2f, 0xb4, 0x55, 0xe, 0x4, 0xc1, 0xd, 0x25, 0x43, 0x42, - 0xb2, 0x81, 0x5e, 0x56, 0x5f, 0x16, 0xc6, 0x28, 0xb4, 0x5e, 0x97, 0x6e, 0xb3, 0x37, 0x89, 0x98, - 0xe3, 0x13, 0xbb, 0xc9, 0x49, 0x87, 0xe1, 0x6d, 0x19, 0xa5, 0xdb, 0xac, 0xcd, 0xe2, 0x32, 0xb3, - 0x99, 0x2b, 0xf3, 0x60, 0xd1, 0x20, 0x7e, 0x46, 0xcc, 0x4, 0xc6, 0x2c, 0xc0, 0x12, 0x26, 0x8, - 0xc8, 0xad, 0xfa, 0xf6, 0x3f, 0x10, 0x45, 0xca, 0xe0, 0x9a, 0x3b, 0x4b, 0xb7, 0x57, 0x33, 0xc4, - 0x90, 0x72, 0xab, 0x5a, 0xcc, 0xf, 0x26, 0x42, 0xea, 0x3e, 0x87, 0x2, 0xab, 0xbc, 0x9f, 0x99, - 0x23, 0x19, 0x76, 0xa, 0x8c, 0xc4, 0x8b, 0xc7, 0xf3, 0x95, 0xd2, 0x90, 0xd2, 0xed, 0xd5, 0xcc, - 0xf1, 0x31, 0x1d, 0xa7, 0xa4, 0xba, 0xdd, 0x88, 0x2d, 0x6b, 0xa4, 0x74, 0xbb, 0x75, 0x73, 0x3c, - 0x4c, 0x44, 0x42, 0xd, 0x74, 0x61, 0x39, 0x79, 0x76, 0xa4, 0xa7, 0x3c, 0x4c, 0x80, 0xc4, 0xc8, - 0x1a, 0x27, 0x1c, 0xe4, 0xde, 0x8, 0xb2, 0xba, 0x30, 0xa5, 0x74, 0x36, 0x76, 0xa6, 0x53, 0x9f, - 0x33, 0x56, 0x98, 0x88, 0x92, 0x2a, 0xd1, 0x90, 0x1, + 0xe0, 0x24, 0xa9, 0xba, 0xe0, 0x68, 0xa9, 0xba, 0x8a, 0x73, 0x41, 0x25, 0x12, 0x12, 0x1c, 0x28, 0x3b, 0xa6, 0x34, + 0x8, 0x8, 0x7a, 0x38, 0x34, 0x2c, 0xe8, 0xf8, 0xd0, 0xef, 0x18, 0xc2, 0xc, 0x27, 0x1f, 0xb1, 0x83, 0x3c, 0x58, + 0x8a, 0x67, 0x1, 0x58, 0x9d, 0x50, 0x8b, 0x8c, 0x60, 0x31, 0x53, 0x55, 0x54, 0xd8, 0x51, 0x32, 0x23, 0x54, 0xd9, + 0xd1, 0x65, 0x54, 0xd6, 0xe0, 0xb6, 0x4b, 0x8b, 0xd1, 0x1a, 0x32, 0x6d, 0x10, 0xed, 0x21, 0x48, 0x8d, 0x1d, 0xa2, + 0x6a, 0x90, 0x14, 0x88, 0x30, 0x18, 0x8a, 0x11, 0x1a, 0x37, 0xc6, 0xa7, 0x32, 0x8b, 0xea, 0x32, 0x44, 0x78, 0xc9, + 0x4e, 0xdb, 0x47, 0x11, 0x53, 0xc6, 0x16, 0xc9, 0x72, 0x55, 0x11, 0x4e, 0x12, 0x55, 0x31, 0xd4, 0x4b, 0x16, 0x71, + 0x7e, 0x32, 0x13, 0x5, 0xb2, 0x5c, 0x9c, 0xa4, 0xab, 0x78, 0xc9, 0x20, 0x88, 0xfb, 0x18, 0xa6, 0xb, 0x44, 0xac, + 0x6, 0x23, 0x4b, 0x2d, 0x12, 0xa3, 0x1a, 0x8b, 0xea, 0x2c, 0x44, 0x69, 0x12, 0xa8, 0xca, 0xa2, 0xc4, 0x64, 0x98, + 0x99, 0x11, 0xd4, 0x5e, 0x8a, 0x51, 0x92, 0x23, 0xa8, 0xbd, 0x34, 0x44, 0xc8, 0x65, 0x44, 0xd7, 0x30, 0x76, 0x11, + 0xea, 0x5a, 0xf7, 0x8b, 0xf1, 0x90, 0xaa, 0x90, 0x14, 0x52, 0x93, 0x4, 0x4c, 0x8b, 0x18, 0xc, 0x55, 0x2b, 0xd1, + 0x5a, 0x4e, 0xea, 0xa9, 0x82, 0x8b, 0xe0, 0xb2, 0x4a, 0x8e, 0x91, 0x62, 0x46, 0xf1, 0x8a, 0x77, 0x90, 0xd4, 0x89, + 0xa2, 0x34, 0x53, 0x15, 0x4f, 0xa4, 0xcf, 0x53, 0x2e, 0x93, 0x18, 0xa2, 0x35, 0x54, 0x51, 0x11, 0xa4, 0x91, 0x16, + 0x26, 0xd8, 0x44, 0xc9, 0x21, 0xde, 0x2f, 0xc6, 0x3b, 0x44, 0x69, 0xd, 0x44, 0xd0, 0x59, 0x99, 0xde, 0x4b, 0x33, + 0x44, 0x44, 0x9a, 0xa2, 0xe5, 0x55, 0xc0, 0x5b, 0x26, 0x55, 0x57, 0x92, 0x0, 0x96, 0xe5, 0x55, 0xb6, 0xa2, 0x6a, + 0x8b, 0xea, 0x3b, 0x45, 0xf5, 0x13, 0x44, 0x88, 0x4c, 0x85, 0x22, 0xc4, 0x46, 0x8e, 0xd1, 0x1a, 0x6d, 0x21, 0x68, + 0x97, 0x21, 0x88, 0xde, 0xa2, 0x94, 0x74, 0x95, 0xcc, 0x62, 0x9d, 0xdb, 0x2d, 0x66, 0x92, 0xc9, 0x5a, 0xa5, 0x90, + 0xa4, 0x46, 0x91, 0xb4, 0x85, 0x22, 0x94, 0x4d, 0x13, 0x37, 0xb, 0x84, 0xd9, 0x2a, 0x9a, 0xaf, 0x32, 0x3a, 0xa8, + 0xdd, 0x11, 0xa4, 0x87, 0x78, 0xbe, 0x91, 0xa8, 0x53, 0xcc, 0x95, 0x22, 0xca, 0x89, 0xb1, 0x8c, 0x92, 0x38, 0x91, + 0x34, 0x8f, 0xa6, 0x88, 0x4c, 0x71, 0x31, 0x8a, 0x50, 0x51, 0x1a, 0x34, 0x48, 0x4e, 0x31, 0x4e, 0x2b, 0x15, 0x62, + 0x96, 0x2c, 0xc6, 0x29, 0xe2, 0x46, 0x21, 0xf, 0x32, 0x32, 0xc0, 0x62, 0x49, 0x12, 0x6a, 0x88, 0xea, 0x2c, 0x46, + 0x88, 0x9a, 0xa4, 0xcd, 0x14, 0xa3, 0x84, 0x64, 0x91, 0xee, 0x28, 0xcb, 0x79, 0x4, 0x50, 0x44, 0x17, 0x9, 0xb1, + 0x42, 0x23, 0x47, 0xbb, 0xc5, 0xf5, 0x31, 0x2, 0x23, 0x45, 0x95, 0x13, 0x63, 0x27, 0xe8, 0xb3, 0x18, 0xa6, 0xa4, + 0x11, 0x31, 0xf6, 0x12, 0xc4, 0x8d, 0x2a, 0x26, 0xde, 0x63, 0x8e, 0x59, 0xd, 0xe5, 0x97, 0x49, 0x98, 0x99, 0x2e, + 0x9d, 0x12, 0x2b, 0xcb, 0x22, 0x9, 0x51, 0xde, 0x2f, 0x4b, 0xa6, 0x11, 0xea, 0x7e, 0xe4, 0x8c, 0x26, 0x1a, 0x49, + 0xb2, 0x23, 0xa8, 0xb1, 0x19, 0x24, 0x19, 0x11, 0xd4, 0x58, 0x8e, 0x2a, 0x43, 0x51, 0xda, 0x23, 0x46, 0x48, 0xee, + 0xa2, 0x66, 0x3, 0x11, 0x2a, 0x23, 0xeb, 0x90, 0xcd, 0x24, 0x1f, 0x1a, 0x16, 0x48, 0xb3, 0x19, 0x2a, 0xf2, 0x67, + 0xeb, 0x48, 0xaf, 0x14, 0x9f, 0xa4, 0xab, 0xd2, 0x6c, 0x35, 0x9a, 0x53, 0x7c, 0x24, 0xb7, 0x79, 0x8f, 0x91, 0x96, + 0xf2, 0x8, 0x9e, 0xc2, 0x65, 0x11, 0x58, 0xe8, 0x4c, 0xc9, 0x15, 0x8d, 0xc4, 0x47, 0x32, 0x18, 0x88, 0xea, 0x35, + 0x82, 0xd5, 0xab, 0xa, 0xe2, 0x46, 0xf7, 0x8b, 0xf7, 0x90, 0x75, 0x8, 0xe9, 0x8a, 0x11, 0x1d, 0x48, 0xf2, 0x4c, + 0xd3, 0x6d, 0xd4, 0x65, 0x51, 0x7a, 0x52, 0x14, 0x22, 0xd2, 0x37, 0xbc, 0x5f, 0xa4, 0x7c, 0x90, 0x74, 0x95, 0xb, + 0x64, 0xc9, 0x21, 0x44, 0x69, 0x1b, 0x8a, 0x13, 0x4a, 0x1, 0x28, 0x9a, 0x64, 0xc1, 0x1a, 0xc4, 0xc0, 0x6a, 0x28, + 0x68, 0x98, 0x5b, 0x26, 0x4c, 0x46, 0x92, 0x1d, 0x22, 0xc3, 0x61, 0xaa, 0xd2, 0x92, 0x44, 0x85, 0x22, 0x65, 0x3c, + 0xe8, 0xb2, 0xa9, 0x2a, 0x39, 0xa, 0x4a, 0x49, 0x3c, 0xba, 0x95, 0xe9, 0x92, 0xc6, 0x98, 0xd5, 0x81, 0x8f, 0x95, + 0x41, 0x94, 0x79, 0x93, 0x14, 0x8c, 0x71, 0x58, 0x27, 0xc9, 0x87, 0x73, 0xf1, 0x66, 0x3c, 0x7d, 0xd3, 0xe6, 0xac, + 0xa, 0xb7, 0x63, 0x18, 0x91, 0x8a, 0xc1, 0x48, 0xdc, 0xc9, 0x4c, 0x1e, 0xc, 0xec, 0x82, 0xd6, 0x97, 0x57, 0x90, + 0xfb, 0x89, 0x88, 0xdf, 0x70, 0xb0, 0xce, 0xae, 0x54, 0x1e, 0x4b, 0x7a, 0x7d, 0x88, 0x8c, 0xd, 0x24, 0x63, 0x43, + 0x7f, 0xc4, 0xee, 0xa3, 0x51, 0xb7, 0x27, 0xb9, 0x73, 0x4f, 0x91, 0xe3, 0xec, 0x79, 0xa9, 0xf9, 0xca, 0x89, 0x28, + 0x2d, 0x44, 0xe0, 0xf3, 0xd1, 0x77, 0x4b, 0xab, 0xc8, 0xb5, 0xc4, 0x74, 0xf, 0xf0, 0xff, 0x3b, 0x8d, 0xd2, 0xe, + 0x22, 0xf6, 0x8c, 0xc, 0xfd, 0xd3, 0x12, 0x31, 0xa9, 0x57, 0xf0, 0x50, 0xd6, 0x45, 0x30, 0xcb, 0x45, 0x82, 0xfe, + 0x9f, 0x63, 0xc3, 0x3, 0x32, 0xa1, 0xa1, 0x83, 0xf, 0xb5, 0x42, 0x85, 0x36, 0xf5, 0x4f, 0x18, 0x34, 0xf9, 0x1e, + 0x3e, 0xc7, 0x9a, 0xb9, 0xd9, 0xe5, 0x51, 0x7a, 0x8c, 0xac, 0x5b, 0x39, 0x98, 0x6e, 0x14, 0x87, 0x1c, 0x67, 0xc7, + 0xa3, 0xed, 0xde, 0x48, 0xd9, 0x47, 0xd0, 0xc5, 0x70, 0xa4, 0x38, 0xe3, 0x60, 0x1a, 0x17, 0x1e, 0x45, 0x1e, 0xdc, + 0x6c, 0x23, 0x1d, 0xc2, 0x90, 0xe3, 0x8d, 0x8c, 0x13, 0x8, 0xa5, 0x86, 0x9, 0x70, 0xca, 0x68, 0xc9, 0x70, 0xa4, + 0x38, 0xe3, 0x45, 0xa9, 0x5e, 0xce, 0x11, 0x23, 0xa5, 0x88, 0xed, 0x32, 0xd5, 0x83, 0xd3, 0x58, 0x31, 0x30, 0x46, + 0x8e, 0xc6, 0xc3, 0x88, 0xf4, 0xd2, 0x28, 0x7e, 0xfd, 0xff, 0xd2, 0xea, 0xf1, 0xf5, 0x71, 0x1d, 0xde, 0x65, 0xb6, + 0xf2, 0xa0, 0x98, 0xd2, 0x3c, 0x19, 0xf4, 0xba, 0xbc, 0x7d, 0x5c, 0x4b, 0x54, 0xab, 0x8d, 0xc0, 0xcc, 0xf0, 0xac, + 0x5d, 0x9a, 0x26, 0xae, 0x7c, 0x99, 0xd9, 0xf6, 0x70, 0x4c, 0xfe, 0xba, 0x7b, 0x70, 0x5f, 0x7f, 0x1a, 0xd7, 0x26, + 0x99, 0xb3, 0x13, 0x67, 0x54, 0xe7, 0x99, 0x22, 0x13, 0xae, 0x24, 0x63, 0x61, 0x52, 0xb5, 0x22, 0x1a, 0xa6, 0xac, + 0x7c, 0x90, 0x4, 0x8c, 0x68, 0xe5, 0x41, 0x36, 0x95, 0xa9, 0xc7, 0x8a, 0x7d, 0xea, 0x6b, 0xd2, 0xea, 0xf2, 0x81, + 0x71, 0x1f, 0x46, 0x4a, 0xe6, 0xb2, 0xa0, 0x64, 0x6d, 0x1a, 0x1b, 0x26, 0xcc, 0x4a, 0x82, 0x6b, 0x44, 0x9a, 0x64, + 0x61, 0x69, 0xa6, 0xd, 0x2e, 0x72, 0xab, 0x2d, 0x4a, 0x6d, 0x9b, 0x31, 0x2a, 0x8, 0xf3, 0x56, 0xc0, 0x7d, 0x9, + 0xfc, 0xb5, 0x15, 0x8c, 0x97, 0xe6, 0xed, 0x2e, 0xaf, 0x1f, 0x57, 0x10, 0xb7, 0x5, 0x80, 0x82, 0x23, 0x89, 0xbb, + 0xd9, 0xbf, 0x49, 0xf8, 0x95, 0x82, 0x74, 0xb6, 0x68, 0x25, 0xf, 0xb1, 0xd1, 0xe3, 0x27, 0x32, 0x6d, 0x4a, 0x70, + 0xd3, 0xee, 0x25, 0x41, 0x88, 0xf3, 0x47, 0x8b, 0x8d, 0x9f, 0xe0, 0x1a, 0x47, 0x39, 0x6, 0xce, 0x37, 0xa, 0x56, + 0xce, 0x34, 0x31, 0x71, 0x7e, 0xab, 0x37, 0x3a, 0xc2, 0x5b, 0xce, 0x5a, 0x5d, 0x5e, 0x40, 0x6e, 0x23, 0xf8, 0xd7, + 0xb3, 0xd5, 0xe6, 0xe0, 0x5e, 0xfa, 0x39, 0xcd, 0xd0, 0x95, 0x25, 0x4b, 0xdd, 0x31, 0x26, 0x41, 0x94, 0xcb, 0xd, + 0x3a, 0xd8, 0x12, 0x93, 0xda, 0x7, 0x4a, 0xa, 0x91, 0x41, 0xc0, 0xc0, 0xa9, 0xaa, 0x28, 0x2a, 0x60, 0x6c, 0xb, + 0x1e, 0x51, 0xe4, 0xc7, 0xaa, 0x35, 0x24, 0x75, 0xd2, 0xea, 0xf1, 0xe7, 0x71, 0x15, 0xdc, 0x4f, 0x12, 0x92, 0xad, + 0xf1, 0xbc, 0xd0, 0x76, 0xd2, 0xea, 0xf1, 0x5b, 0x71, 0x23, 0x93, 0xaa, 0xd5, 0xf1, 0xb1, 0xaa, 0x11, 0x1a, 0x9d, + 0xf4, 0xba, 0xbc, 0x48, 0xdc, 0x46, 0xf6, 0xc8, 0xa7, 0xe3, 0xdc, 0x88, 0xaf, 0x21, 0x9e, 0x25, 0xb2, 0x33, 0xf2, + 0xa9, 0xe2, 0x96, 0xcc, 0x9c, 0x2c, 0xd3, 0xca, 0xf4, 0x2e, 0xe6, 0x17, 0x25, 0xcf, 0x32, 0xd9, 0x19, 0xa1, 0xc0, + 0xac, 0x2f, 0x25, 0xb3, 0x5, 0xab, 0x87, 0xd1, 0x84, 0x4f, 0x91, 0x46, 0x4f, 0x5a, 0x5d, 0x5d, 0xf8, 0xae, 0x24, + 0x12, 0x4c, 0x58, 0xfa, 0x7d, 0xa9, 0x53, 0x8c, 0xe3, 0xdc, 0x8c, 0x3e, 0x48, 0xc2, 0xe1, 0x4b, 0xb9, 0xa6, 0xb, + 0x61, 0x27, 0x39, 0x10, 0xea, 0x93, 0x5c, 0x9f, 0x28, 0x54, 0x2c, 0xa4, 0xa2, 0x23, 0xcd, 0x3, 0xed, 0x4, 0x78, + 0x55, 0x60, 0xce, 0x35, 0x11, 0xcf, 0xb3, 0x9e, 0x46, 0x68, 0x64, 0x25, 0x43, 0x31, 0x11, 0x5c, 0xe3, 0xfc, 0x1c, + 0x36, 0xa2, 0x99, 0x87, 0xe9, 0xcf, 0x23, 0x34, 0x32, 0x11, 0xe6, 0x65, 0x17, 0x9b, 0x99, 0x17, 0xe1, 0xe4, 0x5e, + 0x24, 0x9f, 0xf4, 0xba, 0xbb, 0xca, 0xdc, 0x4c, 0xb7, 0xa1, 0x11, 0x4, 0xd6, 0x9, 0x6c, 0xdc, 0xfb, 0xa5, 0xd5, + 0xde, 0x8e, 0xe2, 0x15, 0xf0, 0x56, 0x95, 0x9c, 0x6, 0xb3, 0xa1, 0x69, 0x3, 0x32, 0xe2, 0x73, 0xe6, 0x26, 0xcc, + 0xd0, 0x88, 0x74, 0x2e, 0x6, 0x5, 0x2c, 0x42, 0xfb, 0x45, 0x5, 0x31, 0x24, 0x4d, 0xd0, 0xfb, 0x37, 0x46, 0x6c, + 0x47, 0xb9, 0xf, 0xcb, 0x35, 0x8d, 0xc1, 0x88, 0x83, 0xd2, 0xed, 0xd5, 0x94, 0xf1, 0x11, 0xdf, 0x2c, 0xb6, 0x29, + 0x39, 0xc6, 0x64, 0x2a, 0xa1, 0x24, 0x61, 0x89, 0x18, 0x7c, 0x91, 0x8c, 0xd3, 0x66, 0xc5, 0x8a, 0xa9, 0xc4, 0xd, + 0x3c, 0x33, 0x50, 0xba, 0x5d, 0xba, 0xad, 0x5e, 0x2d, 0xcf, 0x75, 0x32, 0x90, 0xee, 0xa8, 0xf4, 0xc5, 0x43, 0x50, + 0xa8, 0x62, 0x87, 0xd2, 0x46, 0x34, 0x43, 0xf4, 0x68, 0x88, 0x59, 0x3f, 0xa2, 0xd0, 0x7a, 0x1e, 0x69, 0x45, 0x56, + 0x3d, 0x33, 0x12, 0x70, 0x4c, 0x8d, 0x2c, 0x42, 0x1a, 0x94, 0xd4, 0xb7, 0x62, 0x18, 0x11, 0x1a, 0x5d, 0x5d, 0xe8, + 0xee, 0x23, 0x29, 0xc9, 0x8c, 0x65, 0x60, 0x7b, 0x7b, 0x8c, 0x11, 0x3a, 0x5d, 0xba, 0xcc, 0xde, 0x27, 0x99, 0x58, + 0x8a, 0x8c, 0x69, 0x91, 0xa, 0x2f, 0xb4, 0x55, 0xe, 0x4, 0xc1, 0xd, 0x25, 0x43, 0x42, 0xb2, 0x81, 0x5e, 0x56, 0x5f, + 0x16, 0xc6, 0x28, 0xb4, 0x5e, 0x97, 0x6e, 0xb3, 0x37, 0x89, 0x98, 0xe3, 0x13, 0xbb, 0xc9, 0x49, 0x87, 0xe1, 0x6d, + 0x19, 0xa5, 0xdb, 0xac, 0xcd, 0xe2, 0x32, 0xb3, 0x99, 0x2b, 0xf3, 0x60, 0xd1, 0x20, 0x7e, 0x46, 0xcc, 0x4, 0xc6, + 0x2c, 0xc0, 0x12, 0x26, 0x8, 0xc8, 0xad, 0xfa, 0xf6, 0x3f, 0x10, 0x45, 0xca, 0xe0, 0x9a, 0x3b, 0x4b, 0xb7, 0x57, + 0x33, 0xc4, 0x90, 0x72, 0xab, 0x5a, 0xcc, 0xf, 0x26, 0x42, 0xea, 0x3e, 0x87, 0x2, 0xab, 0xbc, 0x9f, 0x99, 0x23, + 0x19, 0x76, 0xa, 0x8c, 0xc4, 0x8b, 0xc7, 0xf3, 0x95, 0xd2, 0x90, 0xd2, 0xed, 0xd5, 0xcc, 0xf1, 0x31, 0x1d, 0xa7, + 0xa4, 0xba, 0xdd, 0x88, 0x2d, 0x6b, 0xa4, 0x74, 0xbb, 0x75, 0x73, 0x3c, 0x4c, 0x44, 0x42, 0xd, 0x74, 0x61, 0x39, + 0x79, 0x76, 0xa4, 0xa7, 0x3c, 0x4c, 0x80, 0xc4, 0xc8, 0x1a, 0x27, 0x1c, 0xe4, 0xde, 0x8, 0xb2, 0xba, 0x30, 0xa5, + 0x74, 0x36, 0x76, 0xa6, 0x53, 0x9f, 0x33, 0x56, 0x98, 0x88, 0x92, 0x2a, 0xd1, 0x90, 0x1, ]; const DVC_TEST_HEADER_SIZE: usize = 0x01; @@ -148,14 +127,13 @@ lazy_static! { total_data_size: DVC_TEST_DATA_LENGTH, data_size: DVC_DATA_FIRST_BUFFER.len() }; - static ref DATA_FIRST_WHERE_TOTAL_LENGTH_EQUALS_TO_BUFFER_LENGTH: ClientPdu = - ClientPdu::DataFirst(DataFirstPdu { - channel_id_type: FieldType::U8, - channel_id: 0x7, - total_data_size_type: FieldType::U16, - total_data_size: 0x639, - data_size: DATA_FIRST_WHERE_TOTAL_LENGTH_EQUALS_TO_BUFFER_LENGTH_BUFFER.len(), - }); + static ref DATA_FIRST_WHERE_TOTAL_LENGTH_EQUALS_TO_BUFFER_LENGTH: ClientPdu = ClientPdu::DataFirst(DataFirstPdu { + channel_id_type: FieldType::U8, + channel_id: 0x7, + total_data_size_type: FieldType::U16, + total_data_size: 0x639, + data_size: DATA_FIRST_WHERE_TOTAL_LENGTH_EQUALS_TO_BUFFER_LENGTH_BUFFER.len(), + }); } #[test] @@ -219,8 +197,7 @@ fn buffer_length_is_correct_for_dvc_data_first_pdu() { } #[test] -fn from_buffer_correct_parses_dvc_server_pdu_with_data_first_where_total_length_equals_to_buffer_length( -) { +fn from_buffer_correct_parses_dvc_server_pdu_with_data_first_where_total_length_equals_to_buffer_length() { assert_eq!( *DATA_FIRST_WHERE_TOTAL_LENGTH_EQUALS_TO_BUFFER_LENGTH, ClientPdu::from_buffer( @@ -232,8 +209,7 @@ fn from_buffer_correct_parses_dvc_server_pdu_with_data_first_where_total_length_ } #[test] -fn to_buffer_correct_serializes_dvc_server_pdu_with_data_first_where_total_length_equals_to_buffer_length( -) { +fn to_buffer_correct_serializes_dvc_server_pdu_with_data_first_where_total_length_equals_to_buffer_length() { let data_first = &*DATA_FIRST_WHERE_TOTAL_LENGTH_EQUALS_TO_BUFFER_LENGTH; let mut buffer = Vec::new(); @@ -246,8 +222,7 @@ fn to_buffer_correct_serializes_dvc_server_pdu_with_data_first_where_total_lengt } #[test] -fn buffer_length_is_correct_for_dvc_server_pdu_with_data_first_where_total_length_equals_to_buffer_length( -) { +fn buffer_length_is_correct_for_dvc_server_pdu_with_data_first_where_total_length_equals_to_buffer_length() { let data_first = &*DATA_FIRST_WHERE_TOTAL_LENGTH_EQUALS_TO_BUFFER_LENGTH; let expected_buf_len = DATA_FIRST_WHERE_TOTAL_LENGTH_EQUALS_TO_BUFFER_LENGTH_PREFIX.len(); diff --git a/ironrdp/src/rdp/vc/dvc/gfx.rs b/ironrdp/src/rdp/vc/dvc/gfx.rs index 484037ec..7da974b3 100644 --- a/ironrdp/src/rdp/vc/dvc/gfx.rs +++ b/ironrdp/src/rdp/vc/dvc/gfx.rs @@ -4,25 +4,22 @@ mod graphics_messages; #[cfg(test)] mod test; -pub use graphics_messages::{ - CacheImportReplyPdu, CacheToSurfacePdu, CapabilitiesAdvertisePdu, CapabilitiesConfirmPdu, - CapabilitiesV103Flags, CapabilitiesV104Flags, CapabilitiesV10Flags, CapabilitiesV81Flags, - CapabilitiesV8Flags, CapabilitySet, Codec1Type, Codec2Type, CreateSurfacePdu, - DeleteEncodingContextPdu, DeleteSurfacePdu, EndFramePdu, EvictCacheEntryPdu, - FrameAcknowledgePdu, MapSurfaceToOutputPdu, PixelFormat, QueueDepth, ResetGraphicsPdu, - SolidFillPdu, StartFramePdu, SurfaceToCachePdu, SurfaceToSurfacePdu, WireToSurface1Pdu, - WireToSurface2Pdu, -}; - use std::io; use byteorder::{LittleEndian, ReadBytesExt, WriteBytesExt}; use failure::Fail; +use graphics_messages::RESET_GRAPHICS_PDU_SIZE; +pub use graphics_messages::{ + CacheImportReplyPdu, CacheToSurfacePdu, CapabilitiesAdvertisePdu, CapabilitiesConfirmPdu, CapabilitiesV103Flags, + CapabilitiesV104Flags, CapabilitiesV10Flags, CapabilitiesV81Flags, CapabilitiesV8Flags, CapabilitySet, Codec1Type, + Codec2Type, CreateSurfacePdu, DeleteEncodingContextPdu, DeleteSurfacePdu, EndFramePdu, EvictCacheEntryPdu, + FrameAcknowledgePdu, MapSurfaceToOutputPdu, PixelFormat, QueueDepth, ResetGraphicsPdu, SolidFillPdu, StartFramePdu, + SurfaceToCachePdu, SurfaceToSurfacePdu, WireToSurface1Pdu, WireToSurface2Pdu, +}; use num_derive::{FromPrimitive, ToPrimitive}; use num_traits::{FromPrimitive, ToPrimitive}; use crate::{impl_from_error, PduParsing}; -use graphics_messages::RESET_GRAPHICS_PDU_SIZE; const RDP_GFX_HEADER_SIZE: usize = 8; @@ -50,8 +47,8 @@ impl PduParsing for ServerPdu { type Error = GraphicsPipelineError; fn from_buffer(mut stream: impl io::Read) -> Result { - let pdu_type = ServerPduType::from_u16(stream.read_u16::()?) - .ok_or(GraphicsPipelineError::InvalidCmdId)?; + let pdu_type = + ServerPduType::from_u16(stream.read_u16::()?).ok_or(GraphicsPipelineError::InvalidCmdId)?; let _flags = stream.read_u16::()?; let pdu_length = stream.read_u32::()? as usize; @@ -85,12 +82,10 @@ impl PduParsing for ServerPdu { } _ => { let pdu = match pdu_type { - ServerPduType::DeleteEncodingContext => ServerPdu::DeleteEncodingContext( - DeleteEncodingContextPdu::from_buffer(&mut stream)?, - ), - ServerPduType::SolidFill => { - ServerPdu::SolidFill(SolidFillPdu::from_buffer(&mut stream)?) + ServerPduType::DeleteEncodingContext => { + ServerPdu::DeleteEncodingContext(DeleteEncodingContextPdu::from_buffer(&mut stream)?) } + ServerPduType::SolidFill => ServerPdu::SolidFill(SolidFillPdu::from_buffer(&mut stream)?), ServerPduType::SurfaceToSurface => { ServerPdu::SurfaceToSurface(SurfaceToSurfacePdu::from_buffer(&mut stream)?) } @@ -109,21 +104,17 @@ impl PduParsing for ServerPdu { ServerPduType::DeleteSurface => { ServerPdu::DeleteSurface(DeleteSurfacePdu::from_buffer(&mut stream)?) } - ServerPduType::StartFrame => { - ServerPdu::StartFrame(StartFramePdu::from_buffer(&mut stream)?) - } - ServerPduType::EndFrame => { - ServerPdu::EndFrame(EndFramePdu::from_buffer(&mut stream)?) - } + ServerPduType::StartFrame => ServerPdu::StartFrame(StartFramePdu::from_buffer(&mut stream)?), + ServerPduType::EndFrame => ServerPdu::EndFrame(EndFramePdu::from_buffer(&mut stream)?), ServerPduType::ResetGraphics => { ServerPdu::ResetGraphics(ResetGraphicsPdu::from_buffer(&mut stream)?) } - ServerPduType::MapSurfaceToOutput => ServerPdu::MapSurfaceToOutput( - MapSurfaceToOutputPdu::from_buffer(&mut stream)?, - ), - ServerPduType::CapabilitiesConfirm => ServerPdu::CapabilitiesConfirm( - CapabilitiesConfirmPdu::from_buffer(&mut stream)?, - ), + ServerPduType::MapSurfaceToOutput => { + ServerPdu::MapSurfaceToOutput(MapSurfaceToOutputPdu::from_buffer(&mut stream)?) + } + ServerPduType::CapabilitiesConfirm => { + ServerPdu::CapabilitiesConfirm(CapabilitiesConfirmPdu::from_buffer(&mut stream)?) + } ServerPduType::CacheImportReply => { ServerPdu::CacheImportReply(CacheImportReplyPdu::from_buffer(&mut stream)?) } @@ -158,54 +149,22 @@ impl PduParsing for ServerPdu { stream.write_u32::(buffer_length as u32)?; match self { - ServerPdu::WireToSurface1(pdu) => pdu - .to_buffer(&mut stream) - .map_err(GraphicsPipelineError::from), - ServerPdu::WireToSurface2(pdu) => pdu - .to_buffer(&mut stream) - .map_err(GraphicsPipelineError::from), - ServerPdu::DeleteEncodingContext(pdu) => pdu - .to_buffer(&mut stream) - .map_err(GraphicsPipelineError::from), - ServerPdu::SolidFill(pdu) => pdu - .to_buffer(&mut stream) - .map_err(GraphicsPipelineError::from), - ServerPdu::SurfaceToSurface(pdu) => pdu - .to_buffer(&mut stream) - .map_err(GraphicsPipelineError::from), - ServerPdu::SurfaceToCache(pdu) => pdu - .to_buffer(&mut stream) - .map_err(GraphicsPipelineError::from), - ServerPdu::CacheToSurface(pdu) => pdu - .to_buffer(&mut stream) - .map_err(GraphicsPipelineError::from), - ServerPdu::CreateSurface(pdu) => pdu - .to_buffer(&mut stream) - .map_err(GraphicsPipelineError::from), - ServerPdu::DeleteSurface(pdu) => pdu - .to_buffer(&mut stream) - .map_err(GraphicsPipelineError::from), - ServerPdu::ResetGraphics(pdu) => pdu - .to_buffer(&mut stream) - .map_err(GraphicsPipelineError::from), - ServerPdu::MapSurfaceToOutput(pdu) => pdu - .to_buffer(&mut stream) - .map_err(GraphicsPipelineError::from), - ServerPdu::StartFrame(pdu) => pdu - .to_buffer(&mut stream) - .map_err(GraphicsPipelineError::from), - ServerPdu::EndFrame(pdu) => pdu - .to_buffer(&mut stream) - .map_err(GraphicsPipelineError::from), - ServerPdu::EvictCacheEntry(pdu) => pdu - .to_buffer(&mut stream) - .map_err(GraphicsPipelineError::from), - ServerPdu::CapabilitiesConfirm(pdu) => pdu - .to_buffer(&mut stream) - .map_err(GraphicsPipelineError::from), - ServerPdu::CacheImportReply(pdu) => pdu - .to_buffer(&mut stream) - .map_err(GraphicsPipelineError::from), + ServerPdu::WireToSurface1(pdu) => pdu.to_buffer(&mut stream).map_err(GraphicsPipelineError::from), + ServerPdu::WireToSurface2(pdu) => pdu.to_buffer(&mut stream).map_err(GraphicsPipelineError::from), + ServerPdu::DeleteEncodingContext(pdu) => pdu.to_buffer(&mut stream).map_err(GraphicsPipelineError::from), + ServerPdu::SolidFill(pdu) => pdu.to_buffer(&mut stream).map_err(GraphicsPipelineError::from), + ServerPdu::SurfaceToSurface(pdu) => pdu.to_buffer(&mut stream).map_err(GraphicsPipelineError::from), + ServerPdu::SurfaceToCache(pdu) => pdu.to_buffer(&mut stream).map_err(GraphicsPipelineError::from), + ServerPdu::CacheToSurface(pdu) => pdu.to_buffer(&mut stream).map_err(GraphicsPipelineError::from), + ServerPdu::CreateSurface(pdu) => pdu.to_buffer(&mut stream).map_err(GraphicsPipelineError::from), + ServerPdu::DeleteSurface(pdu) => pdu.to_buffer(&mut stream).map_err(GraphicsPipelineError::from), + ServerPdu::ResetGraphics(pdu) => pdu.to_buffer(&mut stream).map_err(GraphicsPipelineError::from), + ServerPdu::MapSurfaceToOutput(pdu) => pdu.to_buffer(&mut stream).map_err(GraphicsPipelineError::from), + ServerPdu::StartFrame(pdu) => pdu.to_buffer(&mut stream).map_err(GraphicsPipelineError::from), + ServerPdu::EndFrame(pdu) => pdu.to_buffer(&mut stream).map_err(GraphicsPipelineError::from), + ServerPdu::EvictCacheEntry(pdu) => pdu.to_buffer(&mut stream).map_err(GraphicsPipelineError::from), + ServerPdu::CapabilitiesConfirm(pdu) => pdu.to_buffer(&mut stream).map_err(GraphicsPipelineError::from), + ServerPdu::CacheImportReply(pdu) => pdu.to_buffer(&mut stream).map_err(GraphicsPipelineError::from), } } @@ -242,8 +201,8 @@ impl PduParsing for ClientPdu { type Error = GraphicsPipelineError; fn from_buffer(mut stream: impl io::Read) -> Result { - let pdu_type = ClientPduType::from_u16(stream.read_u16::()?) - .ok_or(GraphicsPipelineError::InvalidCmdId)?; + let pdu_type = + ClientPduType::from_u16(stream.read_u16::()?).ok_or(GraphicsPipelineError::InvalidCmdId)?; let _flags = stream.read_u16::()?; let pdu_length = stream.read_u32::()? as usize; @@ -251,9 +210,9 @@ impl PduParsing for ClientPdu { ClientPduType::FrameAcknowledge => { ClientPdu::FrameAcknowledge(FrameAcknowledgePdu::from_buffer(&mut stream)?) } - ClientPduType::CapabilitiesAdvertise => ClientPdu::CapabilitiesAdvertise( - CapabilitiesAdvertisePdu::from_buffer(&mut stream)?, - ), + ClientPduType::CapabilitiesAdvertise => { + ClientPdu::CapabilitiesAdvertise(CapabilitiesAdvertisePdu::from_buffer(&mut stream)?) + } _ => return Err(GraphicsPipelineError::UnexpectedClientPduType(pdu_type)), }; @@ -273,12 +232,8 @@ impl PduParsing for ClientPdu { stream.write_u32::(self.buffer_length() as u32)?; match self { - ClientPdu::FrameAcknowledge(pdu) => pdu - .to_buffer(&mut stream) - .map_err(GraphicsPipelineError::from), - ClientPdu::CapabilitiesAdvertise(pdu) => pdu - .to_buffer(&mut stream) - .map_err(GraphicsPipelineError::from), + ClientPdu::FrameAcknowledge(pdu) => pdu.to_buffer(&mut stream).map_err(GraphicsPipelineError::from), + ClientPdu::CapabilitiesAdvertise(pdu) => pdu.to_buffer(&mut stream).map_err(GraphicsPipelineError::from), } } @@ -371,18 +326,11 @@ pub enum GraphicsPipelineError { expected, actual )] InvalidResetGraphicsPduSize { expected: usize, actual: usize }, - #[fail( - display = "Invalid PDU length: expected ({}) != actual ({})", - expected, actual - )] + #[fail(display = "Invalid PDU length: expected ({}) != actual ({})", expected, actual)] InvalidPduLength { expected: usize, actual: usize }, } -impl_from_error!( - io::Error, - GraphicsPipelineError, - GraphicsPipelineError::IOError -); +impl_from_error!(io::Error, GraphicsPipelineError, GraphicsPipelineError::IOError); impl_from_error!( graphics_messages::GraphicsMessagesError, diff --git a/ironrdp/src/rdp/vc/dvc/gfx/graphics_messages.rs b/ironrdp/src/rdp/vc/dvc/gfx/graphics_messages.rs index 9b0dc15d..e956090f 100644 --- a/ironrdp/src/rdp/vc/dvc/gfx/graphics_messages.rs +++ b/ironrdp/src/rdp/vc/dvc/gfx/graphics_messages.rs @@ -3,25 +3,25 @@ mod server; #[cfg(test)] pub mod test; -pub use client::{CacheImportReplyPdu, CapabilitiesAdvertisePdu, FrameAcknowledgePdu, QueueDepth}; -pub use server::{ - CacheToSurfacePdu, CapabilitiesConfirmPdu, Codec1Type, Codec2Type, CreateSurfacePdu, - DeleteEncodingContextPdu, DeleteSurfacePdu, EndFramePdu, EvictCacheEntryPdu, - MapSurfaceToOutputPdu, PixelFormat, ResetGraphicsPdu, SolidFillPdu, StartFramePdu, - SurfaceToCachePdu, SurfaceToSurfacePdu, Timestamp, WireToSurface1Pdu, WireToSurface2Pdu, - RESET_GRAPHICS_PDU_SIZE, -}; - use std::io; use bitflags::bitflags; use byteorder::{LittleEndian, ReadBytesExt, WriteBytesExt}; +pub use client::{CacheImportReplyPdu, CapabilitiesAdvertisePdu, FrameAcknowledgePdu, QueueDepth}; use failure::Fail; use num_derive::{FromPrimitive, ToPrimitive}; use num_traits::{FromPrimitive, ToPrimitive}; +pub use server::{ + CacheToSurfacePdu, CapabilitiesConfirmPdu, Codec1Type, Codec2Type, CreateSurfacePdu, DeleteEncodingContextPdu, + DeleteSurfacePdu, EndFramePdu, EvictCacheEntryPdu, MapSurfaceToOutputPdu, PixelFormat, ResetGraphicsPdu, + SolidFillPdu, StartFramePdu, SurfaceToCachePdu, SurfaceToSurfacePdu, Timestamp, WireToSurface1Pdu, + WireToSurface2Pdu, RESET_GRAPHICS_PDU_SIZE, +}; use super::RDP_GFX_HEADER_SIZE; -use crate::{gcc::MonitorDataError, impl_from_error, utils::Rectangle, PduParsing}; +use crate::gcc::MonitorDataError; +use crate::utils::Rectangle; +use crate::{impl_from_error, PduParsing}; const CAPABILITY_SET_HEADER_SIZE: usize = 8; @@ -71,19 +71,13 @@ impl PduParsing for CapabilitySet { match version { CapabilityVersion::V8 => Ok(CapabilitySet::V8 { - flags: CapabilitiesV8Flags::from_bits_truncate( - data.as_slice().read_u32::()?, - ), + flags: CapabilitiesV8Flags::from_bits_truncate(data.as_slice().read_u32::()?), }), CapabilityVersion::V8_1 => Ok(CapabilitySet::V8_1 { - flags: CapabilitiesV81Flags::from_bits_truncate( - data.as_slice().read_u32::()?, - ), + flags: CapabilitiesV81Flags::from_bits_truncate(data.as_slice().read_u32::()?), }), CapabilityVersion::V10 => Ok(CapabilitySet::V10 { - flags: CapabilitiesV10Flags::from_bits_truncate( - data.as_slice().read_u32::()?, - ), + flags: CapabilitiesV10Flags::from_bits_truncate(data.as_slice().read_u32::()?), }), CapabilityVersion::V10_1 => { data.as_slice().read_u128::()?; @@ -91,29 +85,19 @@ impl PduParsing for CapabilitySet { Ok(CapabilitySet::V10_1) } CapabilityVersion::V10_2 => Ok(CapabilitySet::V10_2 { - flags: CapabilitiesV10Flags::from_bits_truncate( - data.as_slice().read_u32::()?, - ), + flags: CapabilitiesV10Flags::from_bits_truncate(data.as_slice().read_u32::()?), }), CapabilityVersion::V10_3 => Ok(CapabilitySet::V10_3 { - flags: CapabilitiesV103Flags::from_bits_truncate( - data.as_slice().read_u32::()?, - ), + flags: CapabilitiesV103Flags::from_bits_truncate(data.as_slice().read_u32::()?), }), CapabilityVersion::V10_4 => Ok(CapabilitySet::V10_4 { - flags: CapabilitiesV104Flags::from_bits_truncate( - data.as_slice().read_u32::()?, - ), + flags: CapabilitiesV104Flags::from_bits_truncate(data.as_slice().read_u32::()?), }), CapabilityVersion::V10_5 => Ok(CapabilitySet::V10_5 { - flags: CapabilitiesV104Flags::from_bits_truncate( - data.as_slice().read_u32::()?, - ), + flags: CapabilitiesV104Flags::from_bits_truncate(data.as_slice().read_u32::()?), }), CapabilityVersion::V10_6 => Ok(CapabilitySet::V10_6 { - flags: CapabilitiesV104Flags::from_bits_truncate( - data.as_slice().read_u32::()?, - ), + flags: CapabilitiesV104Flags::from_bits_truncate(data.as_slice().read_u32::()?), }), CapabilityVersion::Unknown => Ok(CapabilitySet::Unknown(data)), } @@ -121,9 +105,7 @@ impl PduParsing for CapabilitySet { fn to_buffer(&self, mut stream: impl io::Write) -> Result<(), GraphicsMessagesError> { stream.write_u32::(self.version().to_u32().unwrap())?; - stream.write_u32::( - (self.buffer_length() - CAPABILITY_SET_HEADER_SIZE) as u32, - )?; + stream.write_u32::((self.buffer_length() - CAPABILITY_SET_HEADER_SIZE) as u32)?; match self { CapabilitySet::V8 { flags } => stream.write_u32::(flags.bits())?, @@ -283,30 +265,17 @@ pub enum GraphicsMessagesError { InvalidFixelFormat, #[fail(display = "Monitor error: {}", _0)] MonitorError(#[fail(cause)] MonitorDataError), - #[fail( - display = "Invalid ResetGraphics PDU width: {} > MAX ({})", - actual, max - )] + #[fail(display = "Invalid ResetGraphics PDU width: {} > MAX ({})", actual, max)] InvalidResetGraphicsPduWidth { actual: u32, max: u32 }, - #[fail( - display = "Invalid ResetGraphics PDU height: {} > MAX ({})", - actual, max - )] + #[fail(display = "Invalid ResetGraphics PDU height: {} > MAX ({})", actual, max)] InvalidResetGraphicsPduHeight { actual: u32, max: u32 }, - #[fail( - display = "Invalid ResetGraphics PDU monitors count: {} > MAX ({})", - actual, max - )] + #[fail(display = "Invalid ResetGraphics PDU monitors count: {} > MAX ({})", actual, max)] InvalidResetGraphicsPduMonitorsCount { actual: u32, max: u32 }, #[fail(display = "Invalid capabilities version")] InvalidCapabilitiesVersion, } -impl_from_error!( - io::Error, - GraphicsMessagesError, - GraphicsMessagesError::IOError -); +impl_from_error!(io::Error, GraphicsMessagesError, GraphicsMessagesError::IOError); impl_from_error!( MonitorDataError, diff --git a/ironrdp/src/rdp/vc/dvc/gfx/graphics_messages/server.rs b/ironrdp/src/rdp/vc/dvc/gfx/graphics_messages/server.rs index 014760b9..8ca198e6 100644 --- a/ironrdp/src/rdp/vc/dvc/gfx/graphics_messages/server.rs +++ b/ironrdp/src/rdp/vc/dvc/gfx/graphics_messages/server.rs @@ -6,10 +6,8 @@ use num_derive::{FromPrimitive, ToPrimitive}; use num_traits::{FromPrimitive, ToPrimitive}; use super::{CapabilitySet, Color, GraphicsMessagesError, Point, Rectangle, RDP_GFX_HEADER_SIZE}; -use crate::{ - gcc::{Monitor, MonitorDataError}, - PduParsing, -}; +use crate::gcc::{Monitor, MonitorDataError}; +use crate::PduParsing; pub const RESET_GRAPHICS_PDU_SIZE: usize = 340; @@ -30,10 +28,9 @@ impl PduParsing for WireToSurface1Pdu { fn from_buffer(mut stream: impl io::Read) -> Result { let surface_id = stream.read_u16::()?; - let codec_id = Codec1Type::from_u16(stream.read_u16::()?) - .ok_or(GraphicsMessagesError::InvalidCodec1Id)?; - let pixel_format = PixelFormat::from_u8(stream.read_u8()?) - .ok_or(GraphicsMessagesError::InvalidFixelFormat)?; + let codec_id = + Codec1Type::from_u16(stream.read_u16::()?).ok_or(GraphicsMessagesError::InvalidCodec1Id)?; + let pixel_format = PixelFormat::from_u8(stream.read_u8()?).ok_or(GraphicsMessagesError::InvalidFixelFormat)?; let destination_rectangle = Rectangle::from_buffer(&mut stream)?; let bitmap_data_length = stream.read_u32::()? as usize; @@ -75,11 +72,10 @@ impl PduParsing for WireToSurface2Pdu { fn from_buffer(mut stream: impl io::Read) -> Result { let surface_id = stream.read_u16::()?; - let codec_id = Codec2Type::from_u16(stream.read_u16::()?) - .ok_or(GraphicsMessagesError::InvalidCodec2Id)?; + let codec_id = + Codec2Type::from_u16(stream.read_u16::()?).ok_or(GraphicsMessagesError::InvalidCodec2Id)?; let codec_context_id = stream.read_u32::()?; - let pixel_format = PixelFormat::from_u8(stream.read_u8()?) - .ok_or(GraphicsMessagesError::InvalidFixelFormat)?; + let pixel_format = PixelFormat::from_u8(stream.read_u8()?).ok_or(GraphicsMessagesError::InvalidFixelFormat)?; let bitmap_data_length = stream.read_u32::()? as usize; Ok(Self { @@ -175,11 +171,7 @@ impl PduParsing for SolidFillPdu { } fn buffer_length(&self) -> usize { - 8 + self - .rectangles - .iter() - .map(|r| r.buffer_length()) - .sum::() + 8 + self.rectangles.iter().map(|r| r.buffer_length()).sum::() } } @@ -227,11 +219,7 @@ impl PduParsing for SurfaceToSurfacePdu { fn buffer_length(&self) -> usize { 6 + self.source_rectangle.buffer_length() - + self - .destination_points - .iter() - .map(|r| r.buffer_length()) - .sum::() + + self.destination_points.iter().map(|r| r.buffer_length()).sum::() } } @@ -312,11 +300,7 @@ impl PduParsing for CacheToSurfacePdu { } fn buffer_length(&self) -> usize { - 6 + self - .destination_points - .iter() - .map(|p| p.buffer_length()) - .sum::() + 6 + self.destination_points.iter().map(|p| p.buffer_length()).sum::() } } @@ -335,8 +319,7 @@ impl PduParsing for CreateSurfacePdu { let surface_id = stream.read_u16::()?; let width = stream.read_u16::()?; let height = stream.read_u16::()?; - let pixel_format = PixelFormat::from_u8(stream.read_u8()?) - .ok_or(GraphicsMessagesError::InvalidFixelFormat)?; + let pixel_format = PixelFormat::from_u8(stream.read_u8()?).ok_or(GraphicsMessagesError::InvalidFixelFormat)?; Ok(Self { surface_id, @@ -397,11 +380,7 @@ impl ResetGraphicsPdu { RESET_GRAPHICS_PDU_SIZE - RDP_GFX_HEADER_SIZE - 12 - - self - .monitors - .iter() - .map(|m| m.buffer_length()) - .sum::() + - self.monitors.iter().map(|m| m.buffer_length()).sum::() } } @@ -427,12 +406,10 @@ impl PduParsing for ResetGraphicsPdu { let monitor_count = stream.read_u32::()?; if monitor_count > MONITOR_COUNT_MAX { - return Err( - GraphicsMessagesError::InvalidResetGraphicsPduMonitorsCount { - actual: monitor_count, - max: MAX_RESET_GRAPHICS_WIDTH_HEIGHT, - }, - ); + return Err(GraphicsMessagesError::InvalidResetGraphicsPduMonitorsCount { + actual: monitor_count, + max: MAX_RESET_GRAPHICS_WIDTH_HEIGHT, + }); } let monitors = (0..monitor_count) @@ -546,10 +523,7 @@ impl PduParsing for StartFramePdu { let timestamp = Timestamp::from_buffer(&mut stream)?; let frame_id = stream.read_u32::()?; - Ok(Self { - timestamp, - frame_id, - }) + Ok(Self { timestamp, frame_id }) } fn to_buffer(&self, mut stream: impl io::Write) -> Result<(), Self::Error> { diff --git a/ironrdp/src/rdp/vc/dvc/gfx/graphics_messages/test.rs b/ironrdp/src/rdp/vc/dvc/gfx/graphics_messages/test.rs index 9c2275d7..0a47b332 100644 --- a/ironrdp/src/rdp/vc/dvc/gfx/graphics_messages/test.rs +++ b/ironrdp/src/rdp/vc/dvc/gfx/graphics_messages/test.rs @@ -4,62 +4,54 @@ use super::*; use crate::gcc::{Monitor, MonitorFlags}; pub const WIRE_TO_SURFACE_1_BUFFER: [u8; 218] = [ - 0x00, 0x00, 0x08, 0x00, 0x20, 0xa5, 0x03, 0xde, 0x02, 0xab, 0x03, 0xe7, 0x02, 0xc9, 0x00, 0x00, - 0x00, 0x01, 0x0e, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x3f, 0x27, - 0x19, 0x82, 0x72, 0x69, 0x40, 0x28, 0x1a, 0x3f, 0x27, 0x19, 0x40, 0x28, 0x1a, 0x41, 0x29, 0x1b, - 0x4f, 0x39, 0x2c, 0xa0, 0x94, 0x8d, 0xc0, 0xb8, 0xb3, 0x00, 0x09, 0xd8, 0xd3, 0xd0, 0x97, 0x8a, - 0x82, 0x40, 0x28, 0x1a, 0x41, 0x29, 0x1b, 0x3f, 0x27, 0x19, 0x4f, 0x39, 0x2c, 0xdf, 0xdb, 0xd9, - 0xd8, 0xd3, 0xd0, 0xff, 0xff, 0xff, 0x00, 0x09, 0xff, 0xff, 0xff, 0x3f, 0x27, 0x19, 0x41, 0x29, - 0x1b, 0x40, 0x28, 0x1a, 0x40, 0x28, 0x1a, 0xe5, 0xe1, 0xe0, 0x81, 0x71, 0x68, 0x40, 0x28, 0x1a, - 0xff, 0xff, 0xff, 0x00, 0x09, 0xff, 0xff, 0xff, 0x60, 0x4b, 0x40, 0x4f, 0x39, 0x2c, 0x60, 0x4b, - 0x40, 0xd8, 0xd3, 0xd0, 0xc0, 0xb8, 0xb3, 0x43, 0x2b, 0x1d, 0x3f, 0x27, 0x19, 0xff, 0xff, 0xff, - 0x00, 0x09, 0xc0, 0xb8, 0xb3, 0xef, 0xed, 0xeb, 0xdf, 0xdb, 0xd9, 0xea, 0xe7, 0xe6, 0xc0, 0xb8, - 0xb3, 0x41, 0x29, 0x1b, 0x41, 0x29, 0x1b, 0x42, 0x2a, 0x1c, 0xff, 0xff, 0xff, 0x00, 0x09, 0x41, - 0x29, 0x1b, 0x81, 0x71, 0x68, 0x80, 0x71, 0x67, 0x5f, 0x4b, 0x3f, 0x40, 0x28, 0x1a, 0x42, 0x2a, - 0x1c, 0x40, 0x28, 0x1a, 0x3f, 0x27, 0x19, 0xc0, 0xb8, 0xb3, + 0x00, 0x00, 0x08, 0x00, 0x20, 0xa5, 0x03, 0xde, 0x02, 0xab, 0x03, 0xe7, 0x02, 0xc9, 0x00, 0x00, 0x00, 0x01, 0x0e, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, + 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x3f, 0x27, 0x19, 0x82, 0x72, 0x69, 0x40, 0x28, 0x1a, 0x3f, 0x27, + 0x19, 0x40, 0x28, 0x1a, 0x41, 0x29, 0x1b, 0x4f, 0x39, 0x2c, 0xa0, 0x94, 0x8d, 0xc0, 0xb8, 0xb3, 0x00, 0x09, 0xd8, + 0xd3, 0xd0, 0x97, 0x8a, 0x82, 0x40, 0x28, 0x1a, 0x41, 0x29, 0x1b, 0x3f, 0x27, 0x19, 0x4f, 0x39, 0x2c, 0xdf, 0xdb, + 0xd9, 0xd8, 0xd3, 0xd0, 0xff, 0xff, 0xff, 0x00, 0x09, 0xff, 0xff, 0xff, 0x3f, 0x27, 0x19, 0x41, 0x29, 0x1b, 0x40, + 0x28, 0x1a, 0x40, 0x28, 0x1a, 0xe5, 0xe1, 0xe0, 0x81, 0x71, 0x68, 0x40, 0x28, 0x1a, 0xff, 0xff, 0xff, 0x00, 0x09, + 0xff, 0xff, 0xff, 0x60, 0x4b, 0x40, 0x4f, 0x39, 0x2c, 0x60, 0x4b, 0x40, 0xd8, 0xd3, 0xd0, 0xc0, 0xb8, 0xb3, 0x43, + 0x2b, 0x1d, 0x3f, 0x27, 0x19, 0xff, 0xff, 0xff, 0x00, 0x09, 0xc0, 0xb8, 0xb3, 0xef, 0xed, 0xeb, 0xdf, 0xdb, 0xd9, + 0xea, 0xe7, 0xe6, 0xc0, 0xb8, 0xb3, 0x41, 0x29, 0x1b, 0x41, 0x29, 0x1b, 0x42, 0x2a, 0x1c, 0xff, 0xff, 0xff, 0x00, + 0x09, 0x41, 0x29, 0x1b, 0x81, 0x71, 0x68, 0x80, 0x71, 0x67, 0x5f, 0x4b, 0x3f, 0x40, 0x28, 0x1a, 0x42, 0x2a, 0x1c, + 0x40, 0x28, 0x1a, 0x3f, 0x27, 0x19, 0xc0, 0xb8, 0xb3, ]; pub const WIRE_TO_SURFACE_2_BUFFER: [u8; 629] = [ - 0x00, 0x00, 0x09, 0x00, 0x04, 0x00, 0x00, 0x00, 0x20, 0x68, 0x02, 0x00, 0x00, 0xc1, 0xcc, 0x0c, - 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0xc4, 0xcc, 0x56, 0x02, 0x00, 0x00, 0x40, - 0x01, 0x00, 0x01, 0x00, 0x01, 0x02, 0x00, 0x37, 0x02, 0x00, 0x00, 0x63, 0x02, 0x51, 0x01, 0x45, - 0x00, 0x29, 0x00, 0x66, 0x76, 0x88, 0x99, 0xa9, 0xc6, 0xcc, 0x53, 0x01, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x09, 0x00, 0x05, 0x00, 0x01, 0xff, 0x9a, 0x00, 0x4a, 0x00, 0x58, 0x00, 0x00, 0x00, 0x00, - 0x09, 0x91, 0x02, 0xc6, 0xd9, 0x08, 0x8c, 0x99, 0x11, 0xb3, 0xc9, 0x0f, 0x88, 0x8d, 0x99, 0x1b, - 0x32, 0x36, 0x64, 0x6c, 0xc8, 0xd9, 0x91, 0xb3, 0x23, 0x66, 0x46, 0xcc, 0x8d, 0x99, 0x1b, 0x32, - 0x36, 0x64, 0x6c, 0xc8, 0xd9, 0x91, 0xb3, 0x23, 0x66, 0x46, 0xc0, 0x0b, 0x3a, 0x05, 0x02, 0x82, - 0x85, 0x14, 0x52, 0xaa, 0xaf, 0xa0, 0x00, 0x06, 0x4e, 0x0d, 0x4e, 0x87, 0xe8, 0xfa, 0x38, 0x81, - 0x5c, 0x42, 0xf1, 0x11, 0x44, 0x8f, 0x8f, 0xc5, 0xe2, 0xf0, 0x32, 0x20, 0x66, 0x8a, 0x55, 0x55, - 0x00, 0x03, 0x19, 0x29, 0x00, 0x05, 0xee, 0x85, 0x49, 0xe8, 0xaa, 0x77, 0xf5, 0x97, 0x8b, 0xda, - 0x20, 0x80, 0x52, 0x8a, 0x27, 0x0f, 0x77, 0x70, 0x01, 0x4b, 0x54, 0x53, 0x4e, 0x00, 0x78, 0x64, - 0x8a, 0x16, 0x27, 0xe8, 0x5f, 0xbf, 0xff, 0xff, 0x00, 0x05, 0x1e, 0x50, 0xf7, 0xfe, 0x80, 0x02, - 0x87, 0x64, 0x1c, 0xf6, 0x00, 0x0a, 0x3b, 0x43, 0x9f, 0xe8, 0x00, 0x29, 0xe4, 0x86, 0xff, 0x80, - 0x00, 0xa3, 0x68, 0x6f, 0xf0, 0x00, 0x32, 0x23, 0x00, 0x00, 0x09, 0xa1, 0x78, 0xf8, 0x5c, 0x2e, - 0x1e, 0x1e, 0x0b, 0x0f, 0x05, 0x87, 0x82, 0xc3, 0xc1, 0x61, 0xe0, 0xb0, 0x01, 0x5e, 0x01, 0xf3, - 0x53, 0x01, 0x0f, 0x23, 0xc0, 0x93, 0x90, 0x4a, 0x06, 0x80, 0x49, 0x4f, 0x42, 0x91, 0x16, 0x1a, - 0x40, 0x14, 0x41, 0x0a, 0x00, 0xa9, 0x24, 0x40, 0x4f, 0x78, 0x9a, 0x28, 0x35, 0x49, 0xef, 0x83, - 0xc4, 0xfb, 0xf8, 0x0f, 0x13, 0xdf, 0x03, 0xda, 0xff, 0xf5, 0x80, 0x74, 0x27, 0xb4, 0x0e, 0x5f, - 0xea, 0x0c, 0x90, 0x00, 0x0a, 0xc1, 0x78, 0xf8, 0x5c, 0x2e, 0x1e, 0x1e, 0x0b, 0x0f, 0x05, 0x87, - 0x82, 0xc3, 0xc1, 0x61, 0xe0, 0xb0, 0xf0, 0x58, 0x3d, 0x00, 0x61, 0x90, 0x04, 0x02, 0x02, 0x04, - 0x08, 0x21, 0x90, 0xd8, 0x00, 0x00, 0x3f, 0x62, 0x0a, 0x3a, 0x04, 0x11, 0x08, 0xd0, 0x89, 0x15, - 0xd4, 0x8c, 0x4b, 0x4f, 0x09, 0xa5, 0x2a, 0x10, 0x8d, 0x80, 0x1a, 0xd1, 0xa5, 0x60, 0x0c, 0xe8, - 0x11, 0x41, 0x1b, 0x2b, 0xe1, 0x1f, 0xfe, 0x43, 0xff, 0x81, 0x8f, 0x84, 0x3d, 0x08, 0x1f, 0xf8, - 0x87, 0xa0, 0x9a, 0x85, 0xf0, 0x27, 0x42, 0x7f, 0x01, 0xe6, 0x80, 0xc6, 0xcc, 0xe4, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x05, 0x00, 0x01, 0xff, 0x82, 0x00, 0x1d, 0x00, 0x2e, 0x00, - 0x00, 0x00, 0x00, 0x0a, 0xe8, 0x1c, 0xc8, 0x87, 0xe8, 0x0d, 0x01, 0xa0, 0x68, 0x34, 0x34, 0x34, - 0x69, 0xad, 0x6e, 0xeb, 0x6d, 0xb6, 0x80, 0x00, 0x0c, 0x64, 0x1b, 0x0d, 0x0f, 0xa3, 0xe8, 0xfa, - 0x7d, 0x7d, 0xfb, 0xf3, 0xe7, 0xc5, 0xc0, 0xa4, 0x81, 0x02, 0x48, 0x44, 0x6c, 0x09, 0xad, 0xd7, - 0x55, 0x70, 0x00, 0x18, 0x48, 0x08, 0x10, 0x41, 0x04, 0x20, 0x00, 0x15, 0xfd, 0x00, 0x9b, 0xd0, - 0x2d, 0xe8, 0x38, 0x9d, 0x02, 0xf4, 0x0b, 0xc7, 0x05, 0x34, 0x69, 0xbf, 0x78, 0x80, 0xb2, 0xed, - 0xd4, 0x00, 0x61, 0xd0, 0xe8, 0xb2, 0xcb, 0x00, 0x01, 0x01, 0xc2, 0x0b, 0x42, 0xa2, 0xff, 0xe2, - 0x17, 0xff, 0xec, 0x01, 0xfe, 0x48, 0x04, 0xff, 0x14, 0x10, 0xfe, 0x40, 0x09, 0x7f, 0x12, 0x00, - 0xe6, 0x20, 0x0f, 0xd4, 0x80, 0x7e, 0xc0, 0x39, 0xfa, 0x90, 0x0f, 0xb0, 0x0e, 0x3d, 0x48, 0x46, - 0x88, 0x0b, 0xa4, 0x00, 0x00, 0x00, 0x1d, 0x66, 0x40, 0x34, 0x02, 0x87, 0xa0, 0x25, 0x9a, 0x01, - 0x21, 0x0a, 0x48, 0x91, 0x49, 0x44, 0x28, 0x88, 0x43, 0xbc, 0x84, 0x2c, 0x42, 0x38, 0x56, 0x0b, - 0x00, 0x00, 0x00, 0x1b, 0xfc, 0x40, 0xe4, 0x1c, 0x87, 0x21, 0xca, 0x95, 0x04, 0x08, 0x10, 0x42, - 0x18, 0xc0, 0x09, 0x68, 0xa5, 0x54, 0x00, 0x61, 0x40, 0xe6, 0x97, 0xcd, 0xee, 0xcf, 0xb8, 0x3f, - 0xf1, 0x23, 0xa8, 0x7f, 0x86, 0x1a, 0x8f, 0xf0, 0x2c, 0x49, 0x88, 0xbe, 0x16, 0xc5, 0xe0, 0xc2, - 0xcc, 0x06, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x09, 0x00, 0x04, 0x00, 0x00, 0x00, 0x20, 0x68, 0x02, 0x00, 0x00, 0xc1, 0xcc, 0x0c, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0xc4, 0xcc, 0x56, 0x02, 0x00, 0x00, 0x40, 0x01, 0x00, 0x01, 0x00, 0x01, 0x02, + 0x00, 0x37, 0x02, 0x00, 0x00, 0x63, 0x02, 0x51, 0x01, 0x45, 0x00, 0x29, 0x00, 0x66, 0x76, 0x88, 0x99, 0xa9, 0xc6, + 0xcc, 0x53, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x05, 0x00, 0x01, 0xff, 0x9a, 0x00, 0x4a, 0x00, 0x58, + 0x00, 0x00, 0x00, 0x00, 0x09, 0x91, 0x02, 0xc6, 0xd9, 0x08, 0x8c, 0x99, 0x11, 0xb3, 0xc9, 0x0f, 0x88, 0x8d, 0x99, + 0x1b, 0x32, 0x36, 0x64, 0x6c, 0xc8, 0xd9, 0x91, 0xb3, 0x23, 0x66, 0x46, 0xcc, 0x8d, 0x99, 0x1b, 0x32, 0x36, 0x64, + 0x6c, 0xc8, 0xd9, 0x91, 0xb3, 0x23, 0x66, 0x46, 0xc0, 0x0b, 0x3a, 0x05, 0x02, 0x82, 0x85, 0x14, 0x52, 0xaa, 0xaf, + 0xa0, 0x00, 0x06, 0x4e, 0x0d, 0x4e, 0x87, 0xe8, 0xfa, 0x38, 0x81, 0x5c, 0x42, 0xf1, 0x11, 0x44, 0x8f, 0x8f, 0xc5, + 0xe2, 0xf0, 0x32, 0x20, 0x66, 0x8a, 0x55, 0x55, 0x00, 0x03, 0x19, 0x29, 0x00, 0x05, 0xee, 0x85, 0x49, 0xe8, 0xaa, + 0x77, 0xf5, 0x97, 0x8b, 0xda, 0x20, 0x80, 0x52, 0x8a, 0x27, 0x0f, 0x77, 0x70, 0x01, 0x4b, 0x54, 0x53, 0x4e, 0x00, + 0x78, 0x64, 0x8a, 0x16, 0x27, 0xe8, 0x5f, 0xbf, 0xff, 0xff, 0x00, 0x05, 0x1e, 0x50, 0xf7, 0xfe, 0x80, 0x02, 0x87, + 0x64, 0x1c, 0xf6, 0x00, 0x0a, 0x3b, 0x43, 0x9f, 0xe8, 0x00, 0x29, 0xe4, 0x86, 0xff, 0x80, 0x00, 0xa3, 0x68, 0x6f, + 0xf0, 0x00, 0x32, 0x23, 0x00, 0x00, 0x09, 0xa1, 0x78, 0xf8, 0x5c, 0x2e, 0x1e, 0x1e, 0x0b, 0x0f, 0x05, 0x87, 0x82, + 0xc3, 0xc1, 0x61, 0xe0, 0xb0, 0x01, 0x5e, 0x01, 0xf3, 0x53, 0x01, 0x0f, 0x23, 0xc0, 0x93, 0x90, 0x4a, 0x06, 0x80, + 0x49, 0x4f, 0x42, 0x91, 0x16, 0x1a, 0x40, 0x14, 0x41, 0x0a, 0x00, 0xa9, 0x24, 0x40, 0x4f, 0x78, 0x9a, 0x28, 0x35, + 0x49, 0xef, 0x83, 0xc4, 0xfb, 0xf8, 0x0f, 0x13, 0xdf, 0x03, 0xda, 0xff, 0xf5, 0x80, 0x74, 0x27, 0xb4, 0x0e, 0x5f, + 0xea, 0x0c, 0x90, 0x00, 0x0a, 0xc1, 0x78, 0xf8, 0x5c, 0x2e, 0x1e, 0x1e, 0x0b, 0x0f, 0x05, 0x87, 0x82, 0xc3, 0xc1, + 0x61, 0xe0, 0xb0, 0xf0, 0x58, 0x3d, 0x00, 0x61, 0x90, 0x04, 0x02, 0x02, 0x04, 0x08, 0x21, 0x90, 0xd8, 0x00, 0x00, + 0x3f, 0x62, 0x0a, 0x3a, 0x04, 0x11, 0x08, 0xd0, 0x89, 0x15, 0xd4, 0x8c, 0x4b, 0x4f, 0x09, 0xa5, 0x2a, 0x10, 0x8d, + 0x80, 0x1a, 0xd1, 0xa5, 0x60, 0x0c, 0xe8, 0x11, 0x41, 0x1b, 0x2b, 0xe1, 0x1f, 0xfe, 0x43, 0xff, 0x81, 0x8f, 0x84, + 0x3d, 0x08, 0x1f, 0xf8, 0x87, 0xa0, 0x9a, 0x85, 0xf0, 0x27, 0x42, 0x7f, 0x01, 0xe6, 0x80, 0xc6, 0xcc, 0xe4, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x05, 0x00, 0x01, 0xff, 0x82, 0x00, 0x1d, 0x00, 0x2e, 0x00, 0x00, 0x00, + 0x00, 0x0a, 0xe8, 0x1c, 0xc8, 0x87, 0xe8, 0x0d, 0x01, 0xa0, 0x68, 0x34, 0x34, 0x34, 0x69, 0xad, 0x6e, 0xeb, 0x6d, + 0xb6, 0x80, 0x00, 0x0c, 0x64, 0x1b, 0x0d, 0x0f, 0xa3, 0xe8, 0xfa, 0x7d, 0x7d, 0xfb, 0xf3, 0xe7, 0xc5, 0xc0, 0xa4, + 0x81, 0x02, 0x48, 0x44, 0x6c, 0x09, 0xad, 0xd7, 0x55, 0x70, 0x00, 0x18, 0x48, 0x08, 0x10, 0x41, 0x04, 0x20, 0x00, + 0x15, 0xfd, 0x00, 0x9b, 0xd0, 0x2d, 0xe8, 0x38, 0x9d, 0x02, 0xf4, 0x0b, 0xc7, 0x05, 0x34, 0x69, 0xbf, 0x78, 0x80, + 0xb2, 0xed, 0xd4, 0x00, 0x61, 0xd0, 0xe8, 0xb2, 0xcb, 0x00, 0x01, 0x01, 0xc2, 0x0b, 0x42, 0xa2, 0xff, 0xe2, 0x17, + 0xff, 0xec, 0x01, 0xfe, 0x48, 0x04, 0xff, 0x14, 0x10, 0xfe, 0x40, 0x09, 0x7f, 0x12, 0x00, 0xe6, 0x20, 0x0f, 0xd4, + 0x80, 0x7e, 0xc0, 0x39, 0xfa, 0x90, 0x0f, 0xb0, 0x0e, 0x3d, 0x48, 0x46, 0x88, 0x0b, 0xa4, 0x00, 0x00, 0x00, 0x1d, + 0x66, 0x40, 0x34, 0x02, 0x87, 0xa0, 0x25, 0x9a, 0x01, 0x21, 0x0a, 0x48, 0x91, 0x49, 0x44, 0x28, 0x88, 0x43, 0xbc, + 0x84, 0x2c, 0x42, 0x38, 0x56, 0x0b, 0x00, 0x00, 0x00, 0x1b, 0xfc, 0x40, 0xe4, 0x1c, 0x87, 0x21, 0xca, 0x95, 0x04, + 0x08, 0x10, 0x42, 0x18, 0xc0, 0x09, 0x68, 0xa5, 0x54, 0x00, 0x61, 0x40, 0xe6, 0x97, 0xcd, 0xee, 0xcf, 0xb8, 0x3f, + 0xf1, 0x23, 0xa8, 0x7f, 0x86, 0x1a, 0x8f, 0xf0, 0x2c, 0x49, 0x88, 0xbe, 0x16, 0xc5, 0xe0, 0xc2, 0xcc, 0x06, 0x00, + 0x00, 0x00, ]; pub const DELETE_ENCODING_CONTEXT_BUFFER: [u8; 6] = [0x00, 0x00, 0x01, 0x00, 0x00, 0x00]; @@ -69,49 +61,43 @@ pub const SOLID_FILL_BUFFER: [u8; 16] = [ ]; pub const SURFACE_TO_SURFACE_BUFFER: [u8; 18] = [ - 0x00, 0x00, 0x00, 0x00, 0xc8, 0x00, 0x3c, 0x00, 0xa4, 0x02, 0x94, 0x00, 0x01, 0x00, 0x80, 0x00, - 0x3c, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc8, 0x00, 0x3c, 0x00, 0xa4, 0x02, 0x94, 0x00, 0x01, 0x00, 0x80, 0x00, 0x3c, 0x00, ]; pub const SURFACE_TO_CACHE_BUFFER: [u8; 20] = [ - 0x00, 0x00, 0xb7, 0x7f, 0xa3, 0xa6, 0xda, 0x86, 0x3d, 0x11, 0x0e, 0x00, 0x80, 0x02, 0x00, 0x00, - 0xc0, 0x02, 0x40, 0x00, + 0x00, 0x00, 0xb7, 0x7f, 0xa3, 0xa6, 0xda, 0x86, 0x3d, 0x11, 0x0e, 0x00, 0x80, 0x02, 0x00, 0x00, 0xc0, 0x02, 0x40, + 0x00, ]; -pub const CACHE_TO_SURFACE_BUFFER: [u8; 10] = - [0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x03, 0x40, 0x01]; +pub const CACHE_TO_SURFACE_BUFFER: [u8; 10] = [0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x03, 0x40, 0x01]; pub const CREATE_SURFACE_BUFFER: [u8; 7] = [0x00, 0x00, 0x00, 0x04, 0x00, 0x03, 0x21]; pub const DELETE_SURFACE_BUFFER: [u8; 2] = [0x00, 0x00]; pub const RESET_GRAPHICS_BUFFER: [u8; 332] = [ - 0x00, 0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xff, 0x03, 0x00, 0x00, 0xff, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xff, 0x03, 0x00, 0x00, 0xff, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ]; -pub const MAP_SURFACE_TO_OUTPUT_BUFFER: [u8; 12] = [ - 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2, 0x00, 0x00, 0x00, -]; +pub const MAP_SURFACE_TO_OUTPUT_BUFFER: [u8; 12] = + [0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2, 0x00, 0x00, 0x00]; pub const EVICT_CACHE_ENTRY_BUFFER: [u8; 2] = [0x00, 0x00]; @@ -119,132 +105,109 @@ pub const START_FRAME_BUFFER: [u8; 8] = [0xf7, 0xe8, 0x9b, 0x5, 0x05, 0x00, 0x00 pub const END_FRAME_BUFFER: [u8; 4] = [0x01, 0x00, 0x00, 0x00]; -pub const CAPABILITIES_CONFIRM_BUFFER: [u8; 12] = [ - 0x02, 0x05, 0x0a, 0x00, 0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, -]; +pub const CAPABILITIES_CONFIRM_BUFFER: [u8; 12] = + [0x02, 0x05, 0x0a, 0x00, 0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00]; pub const CAPABILITIES_ADVERTISE_BUFFER: [u8; 122] = [ - 0x9, 0x0, 0x4, 0x0, 0x8, 0x0, 0x4, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x5, 0x1, 0x8, 0x0, 0x4, - 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x2, 0x0, 0xa, 0x0, 0x4, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, - 0x0, 0x1, 0xa, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0xa, 0x0, 0x4, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x1, 0x3, - 0xa, 0x0, 0x4, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0, 0x4, 0xa, 0x0, 0x4, 0x0, 0x0, 0x0, - 0x20, 0x0, 0x0, 0x0, 0x2, 0x5, 0xa, 0x0, 0x4, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x1, 0x6, + 0x9, 0x0, 0x4, 0x0, 0x8, 0x0, 0x4, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x5, 0x1, 0x8, 0x0, 0x4, 0x0, 0x0, 0x0, 0x1, + 0x0, 0x0, 0x0, 0x2, 0x0, 0xa, 0x0, 0x4, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0, 0x1, 0xa, 0x0, 0x10, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0xa, 0x0, 0x4, 0x0, + 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x1, 0x3, 0xa, 0x0, 0x4, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0, 0x4, 0xa, 0x0, + 0x4, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x2, 0x5, 0xa, 0x0, 0x4, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x1, 0x6, 0xa, 0x0, 0x4, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, ]; -pub const FRAME_ACKNOWLEDGE_BUFFER: [u8; 12] = - [0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0]; +pub const FRAME_ACKNOWLEDGE_BUFFER: [u8; 12] = [0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0]; pub const CACHE_IMPORT_REPLY_BUFFER: [u8; 1840] = [ - 0x97, 0x3, 0x2, 0x0, 0x3, 0x0, 0x4, 0x0, 0x5, 0x0, 0x6, 0x0, 0x7, 0x0, 0x8, 0x0, 0x9, 0x0, 0xa, - 0x0, 0xb, 0x0, 0xc, 0x0, 0xd, 0x0, 0xe, 0x0, 0xf, 0x0, 0x10, 0x0, 0x11, 0x0, 0x12, 0x0, 0x13, - 0x0, 0x14, 0x0, 0x15, 0x0, 0x16, 0x0, 0x17, 0x0, 0x18, 0x0, 0x19, 0x0, 0x1a, 0x0, 0x1b, 0x0, - 0x1c, 0x0, 0x1d, 0x0, 0x1e, 0x0, 0x1f, 0x0, 0x20, 0x0, 0x21, 0x0, 0x22, 0x0, 0x23, 0x0, 0x24, - 0x0, 0x25, 0x0, 0x26, 0x0, 0x27, 0x0, 0x28, 0x0, 0x29, 0x0, 0x2a, 0x0, 0x2b, 0x0, 0x2c, 0x0, - 0x2d, 0x0, 0x2e, 0x0, 0x2f, 0x0, 0x30, 0x0, 0x31, 0x0, 0x32, 0x0, 0x33, 0x0, 0x34, 0x0, 0x35, - 0x0, 0x36, 0x0, 0x37, 0x0, 0x38, 0x0, 0x39, 0x0, 0x3a, 0x0, 0x3b, 0x0, 0x3c, 0x0, 0x3d, 0x0, - 0x3e, 0x0, 0x3f, 0x0, 0x40, 0x0, 0x41, 0x0, 0x42, 0x0, 0x43, 0x0, 0x44, 0x0, 0x45, 0x0, 0x46, - 0x0, 0x47, 0x0, 0x48, 0x0, 0x49, 0x0, 0x4a, 0x0, 0x4b, 0x0, 0x4c, 0x0, 0x4d, 0x0, 0x4e, 0x0, - 0x4f, 0x0, 0x50, 0x0, 0x51, 0x0, 0x52, 0x0, 0x53, 0x0, 0x54, 0x0, 0x55, 0x0, 0x56, 0x0, 0x57, - 0x0, 0x58, 0x0, 0x59, 0x0, 0x5a, 0x0, 0x5b, 0x0, 0x5c, 0x0, 0x5d, 0x0, 0x5e, 0x0, 0x5f, 0x0, - 0x60, 0x0, 0x61, 0x0, 0x62, 0x0, 0x63, 0x0, 0x64, 0x0, 0x65, 0x0, 0x66, 0x0, 0x67, 0x0, 0x68, - 0x0, 0x69, 0x0, 0x6a, 0x0, 0x6b, 0x0, 0x6c, 0x0, 0x6d, 0x0, 0x6e, 0x0, 0x6f, 0x0, 0x70, 0x0, - 0x71, 0x0, 0x72, 0x0, 0x73, 0x0, 0x74, 0x0, 0x75, 0x0, 0x76, 0x0, 0x77, 0x0, 0x78, 0x0, 0x79, - 0x0, 0x7a, 0x0, 0x7b, 0x0, 0x7c, 0x0, 0x7d, 0x0, 0x7e, 0x0, 0x7f, 0x0, 0x80, 0x0, 0x81, 0x0, - 0x82, 0x0, 0x83, 0x0, 0x84, 0x0, 0x85, 0x0, 0x86, 0x0, 0x87, 0x0, 0x88, 0x0, 0x89, 0x0, 0x8a, - 0x0, 0x8b, 0x0, 0x8c, 0x0, 0x8d, 0x0, 0x8e, 0x0, 0x8f, 0x0, 0x90, 0x0, 0x91, 0x0, 0x92, 0x0, - 0x93, 0x0, 0x94, 0x0, 0x95, 0x0, 0x96, 0x0, 0x97, 0x0, 0x98, 0x0, 0x99, 0x0, 0x9a, 0x0, 0x9b, - 0x0, 0x9c, 0x0, 0x9d, 0x0, 0x9e, 0x0, 0x9f, 0x0, 0xa0, 0x0, 0xa1, 0x0, 0xa2, 0x0, 0xa3, 0x0, - 0xa4, 0x0, 0xa5, 0x0, 0xa6, 0x0, 0xa7, 0x0, 0xa8, 0x0, 0xa9, 0x0, 0xaa, 0x0, 0xab, 0x0, 0xac, - 0x0, 0xad, 0x0, 0xae, 0x0, 0xaf, 0x0, 0xb0, 0x0, 0xb1, 0x0, 0xb2, 0x0, 0xb3, 0x0, 0xb4, 0x0, - 0xb5, 0x0, 0xb6, 0x0, 0xb7, 0x0, 0xb8, 0x0, 0xb9, 0x0, 0xba, 0x0, 0xbb, 0x0, 0xbc, 0x0, 0xbd, - 0x0, 0xbe, 0x0, 0xbf, 0x0, 0xc0, 0x0, 0xc1, 0x0, 0xc2, 0x0, 0xc3, 0x0, 0xc4, 0x0, 0xc5, 0x0, - 0xc6, 0x0, 0xc7, 0x0, 0xc8, 0x0, 0xc9, 0x0, 0xca, 0x0, 0xcb, 0x0, 0xcc, 0x0, 0xcd, 0x0, 0xce, - 0x0, 0xcf, 0x0, 0xd0, 0x0, 0xd1, 0x0, 0xd2, 0x0, 0xd3, 0x0, 0xd4, 0x0, 0xd5, 0x0, 0xd6, 0x0, - 0xd7, 0x0, 0xd8, 0x0, 0xd9, 0x0, 0xda, 0x0, 0xdb, 0x0, 0xdc, 0x0, 0xdd, 0x0, 0xde, 0x0, 0xdf, - 0x0, 0xe0, 0x0, 0xe1, 0x0, 0xe2, 0x0, 0xe3, 0x0, 0xe4, 0x0, 0xe5, 0x0, 0xe6, 0x0, 0xe7, 0x0, - 0xe8, 0x0, 0xe9, 0x0, 0xea, 0x0, 0xeb, 0x0, 0xec, 0x0, 0xed, 0x0, 0xee, 0x0, 0xef, 0x0, 0xf0, - 0x0, 0xf1, 0x0, 0xf2, 0x0, 0xf3, 0x0, 0xf4, 0x0, 0xf5, 0x0, 0xf6, 0x0, 0xf7, 0x0, 0xf8, 0x0, - 0xf9, 0x0, 0xfa, 0x0, 0xfb, 0x0, 0xfc, 0x0, 0xfd, 0x0, 0xfe, 0x0, 0xff, 0x0, 0x0, 0x1, 0x1, - 0x1, 0x2, 0x1, 0x3, 0x1, 0x4, 0x1, 0x5, 0x1, 0x6, 0x1, 0x7, 0x1, 0x8, 0x1, 0x9, 0x1, 0xa, 0x1, - 0xb, 0x1, 0xc, 0x1, 0xd, 0x1, 0xe, 0x1, 0xf, 0x1, 0x10, 0x1, 0x11, 0x1, 0x12, 0x1, 0x13, 0x1, - 0x14, 0x1, 0x15, 0x1, 0x16, 0x1, 0x17, 0x1, 0x18, 0x1, 0x19, 0x1, 0x1a, 0x1, 0x1b, 0x1, 0x1c, - 0x1, 0x1d, 0x1, 0x1e, 0x1, 0x1f, 0x1, 0x20, 0x1, 0x21, 0x1, 0x22, 0x1, 0x23, 0x1, 0x24, 0x1, - 0x25, 0x1, 0x26, 0x1, 0x27, 0x1, 0x28, 0x1, 0x29, 0x1, 0x2a, 0x1, 0x2b, 0x1, 0x2c, 0x1, 0x2d, - 0x1, 0x2e, 0x1, 0x2f, 0x1, 0x30, 0x1, 0x31, 0x1, 0x32, 0x1, 0x33, 0x1, 0x34, 0x1, 0x35, 0x1, - 0x36, 0x1, 0x37, 0x1, 0x38, 0x1, 0x39, 0x1, 0x3a, 0x1, 0x3b, 0x1, 0x3c, 0x1, 0x3d, 0x1, 0x3e, - 0x1, 0x3f, 0x1, 0x40, 0x1, 0x41, 0x1, 0x42, 0x1, 0x43, 0x1, 0x44, 0x1, 0x45, 0x1, 0x46, 0x1, - 0x47, 0x1, 0x48, 0x1, 0x49, 0x1, 0x4a, 0x1, 0x4b, 0x1, 0x4c, 0x1, 0x4d, 0x1, 0x4e, 0x1, 0x4f, - 0x1, 0x50, 0x1, 0x51, 0x1, 0x52, 0x1, 0x53, 0x1, 0x54, 0x1, 0x55, 0x1, 0x56, 0x1, 0x57, 0x1, - 0x58, 0x1, 0x59, 0x1, 0x5a, 0x1, 0x5b, 0x1, 0x5c, 0x1, 0x5d, 0x1, 0x5e, 0x1, 0x5f, 0x1, 0x60, - 0x1, 0x61, 0x1, 0x62, 0x1, 0x63, 0x1, 0x64, 0x1, 0x65, 0x1, 0x66, 0x1, 0x67, 0x1, 0x68, 0x1, - 0x69, 0x1, 0x6a, 0x1, 0x6b, 0x1, 0x6c, 0x1, 0x6d, 0x1, 0x6e, 0x1, 0x6f, 0x1, 0x70, 0x1, 0x71, - 0x1, 0x72, 0x1, 0x73, 0x1, 0x74, 0x1, 0x75, 0x1, 0x76, 0x1, 0x77, 0x1, 0x78, 0x1, 0x79, 0x1, - 0x7a, 0x1, 0x7b, 0x1, 0x7c, 0x1, 0x7d, 0x1, 0x7e, 0x1, 0x7f, 0x1, 0x80, 0x1, 0x81, 0x1, 0x82, - 0x1, 0x83, 0x1, 0x84, 0x1, 0x85, 0x1, 0x86, 0x1, 0x87, 0x1, 0x88, 0x1, 0x89, 0x1, 0x8a, 0x1, - 0x8b, 0x1, 0x8c, 0x1, 0x8d, 0x1, 0x8e, 0x1, 0x8f, 0x1, 0x90, 0x1, 0x91, 0x1, 0x92, 0x1, 0x93, - 0x1, 0x94, 0x1, 0x95, 0x1, 0x96, 0x1, 0x97, 0x1, 0x98, 0x1, 0x99, 0x1, 0x9a, 0x1, 0x9b, 0x1, - 0x9c, 0x1, 0x9d, 0x1, 0x9e, 0x1, 0x9f, 0x1, 0xa0, 0x1, 0xa1, 0x1, 0xa2, 0x1, 0xa3, 0x1, 0xa4, - 0x1, 0xa5, 0x1, 0xa6, 0x1, 0xa7, 0x1, 0xa8, 0x1, 0xa9, 0x1, 0xaa, 0x1, 0xab, 0x1, 0xac, 0x1, - 0xad, 0x1, 0xae, 0x1, 0xaf, 0x1, 0xb0, 0x1, 0xb1, 0x1, 0xb2, 0x1, 0xb3, 0x1, 0xb4, 0x1, 0xb5, - 0x1, 0xb6, 0x1, 0xb7, 0x1, 0xb8, 0x1, 0xb9, 0x1, 0xba, 0x1, 0xbb, 0x1, 0xbc, 0x1, 0xbd, 0x1, - 0xbe, 0x1, 0xbf, 0x1, 0xc0, 0x1, 0xc1, 0x1, 0xc2, 0x1, 0xc3, 0x1, 0xc4, 0x1, 0xc5, 0x1, 0xc6, - 0x1, 0xc7, 0x1, 0xc8, 0x1, 0xc9, 0x1, 0xca, 0x1, 0xcb, 0x1, 0xcc, 0x1, 0xcd, 0x1, 0xce, 0x1, - 0xcf, 0x1, 0xd0, 0x1, 0xd1, 0x1, 0xd2, 0x1, 0xd3, 0x1, 0xd4, 0x1, 0xd5, 0x1, 0xd6, 0x1, 0xd7, - 0x1, 0xd8, 0x1, 0xd9, 0x1, 0xda, 0x1, 0xdb, 0x1, 0xdc, 0x1, 0xdd, 0x1, 0xde, 0x1, 0xdf, 0x1, - 0xe0, 0x1, 0xe1, 0x1, 0xe2, 0x1, 0xe3, 0x1, 0xe4, 0x1, 0xe5, 0x1, 0xe6, 0x1, 0xe7, 0x1, 0xe8, - 0x1, 0xe9, 0x1, 0xea, 0x1, 0xeb, 0x1, 0xec, 0x1, 0xed, 0x1, 0xee, 0x1, 0xef, 0x1, 0xf0, 0x1, - 0xf1, 0x1, 0xf2, 0x1, 0xf3, 0x1, 0xf4, 0x1, 0xf5, 0x1, 0xf6, 0x1, 0xf7, 0x1, 0xf8, 0x1, 0xf9, - 0x1, 0xfa, 0x1, 0xfb, 0x1, 0xfc, 0x1, 0xfd, 0x1, 0xfe, 0x1, 0xff, 0x1, 0x0, 0x2, 0x1, 0x2, 0x2, - 0x2, 0x3, 0x2, 0x4, 0x2, 0x5, 0x2, 0x6, 0x2, 0x7, 0x2, 0x8, 0x2, 0x9, 0x2, 0xa, 0x2, 0xb, 0x2, - 0xc, 0x2, 0xd, 0x2, 0xe, 0x2, 0xf, 0x2, 0x10, 0x2, 0x11, 0x2, 0x12, 0x2, 0x13, 0x2, 0x14, 0x2, - 0x15, 0x2, 0x16, 0x2, 0x17, 0x2, 0x18, 0x2, 0x19, 0x2, 0x1a, 0x2, 0x1b, 0x2, 0x1c, 0x2, 0x1d, - 0x2, 0x1e, 0x2, 0x1f, 0x2, 0x20, 0x2, 0x21, 0x2, 0x22, 0x2, 0x23, 0x2, 0x24, 0x2, 0x25, 0x2, - 0x26, 0x2, 0x27, 0x2, 0x28, 0x2, 0x29, 0x2, 0x2a, 0x2, 0x2b, 0x2, 0x2c, 0x2, 0x2d, 0x2, 0x2e, - 0x2, 0x2f, 0x2, 0x30, 0x2, 0x31, 0x2, 0x32, 0x2, 0x33, 0x2, 0x34, 0x2, 0x35, 0x2, 0x36, 0x2, - 0x37, 0x2, 0x38, 0x2, 0x39, 0x2, 0x3a, 0x2, 0x3b, 0x2, 0x3c, 0x2, 0x3d, 0x2, 0x3e, 0x2, 0x3f, - 0x2, 0x40, 0x2, 0x41, 0x2, 0x42, 0x2, 0x43, 0x2, 0x44, 0x2, 0x45, 0x2, 0x46, 0x2, 0x47, 0x2, - 0x48, 0x2, 0x49, 0x2, 0x4a, 0x2, 0x4b, 0x2, 0x4c, 0x2, 0x4d, 0x2, 0x4e, 0x2, 0x4f, 0x2, 0x50, - 0x2, 0x51, 0x2, 0x52, 0x2, 0x53, 0x2, 0x54, 0x2, 0x55, 0x2, 0x56, 0x2, 0x57, 0x2, 0x58, 0x2, - 0x59, 0x2, 0x5a, 0x2, 0x5b, 0x2, 0x5c, 0x2, 0x5d, 0x2, 0x5e, 0x2, 0x5f, 0x2, 0x60, 0x2, 0x61, - 0x2, 0x62, 0x2, 0x63, 0x2, 0x64, 0x2, 0x65, 0x2, 0x66, 0x2, 0x67, 0x2, 0x68, 0x2, 0x69, 0x2, - 0x6a, 0x2, 0x6b, 0x2, 0x6c, 0x2, 0x6d, 0x2, 0x6e, 0x2, 0x6f, 0x2, 0x70, 0x2, 0x71, 0x2, 0x72, - 0x2, 0x73, 0x2, 0x74, 0x2, 0x75, 0x2, 0x76, 0x2, 0x77, 0x2, 0x78, 0x2, 0x79, 0x2, 0x7a, 0x2, - 0x7b, 0x2, 0x7c, 0x2, 0x7d, 0x2, 0x7e, 0x2, 0x7f, 0x2, 0x80, 0x2, 0x81, 0x2, 0x82, 0x2, 0x83, - 0x2, 0x84, 0x2, 0x85, 0x2, 0x86, 0x2, 0x87, 0x2, 0x88, 0x2, 0x89, 0x2, 0x8a, 0x2, 0x8b, 0x2, - 0x8c, 0x2, 0x8d, 0x2, 0x8e, 0x2, 0x8f, 0x2, 0x90, 0x2, 0x91, 0x2, 0x92, 0x2, 0x93, 0x2, 0x94, - 0x2, 0x95, 0x2, 0x96, 0x2, 0x97, 0x2, 0x98, 0x2, 0x99, 0x2, 0x9a, 0x2, 0x9b, 0x2, 0x9c, 0x2, - 0x9d, 0x2, 0x9e, 0x2, 0x9f, 0x2, 0xa0, 0x2, 0xa1, 0x2, 0xa2, 0x2, 0xa3, 0x2, 0xa4, 0x2, 0xa5, - 0x2, 0xa6, 0x2, 0xa7, 0x2, 0xa8, 0x2, 0xa9, 0x2, 0xaa, 0x2, 0xab, 0x2, 0xac, 0x2, 0xad, 0x2, - 0xae, 0x2, 0xaf, 0x2, 0xb0, 0x2, 0xb1, 0x2, 0xb2, 0x2, 0xb3, 0x2, 0xb4, 0x2, 0xb5, 0x2, 0xb6, - 0x2, 0xb7, 0x2, 0xb8, 0x2, 0xb9, 0x2, 0xba, 0x2, 0xbb, 0x2, 0xbc, 0x2, 0xbd, 0x2, 0xbe, 0x2, - 0xbf, 0x2, 0xc0, 0x2, 0xc1, 0x2, 0xc2, 0x2, 0xc3, 0x2, 0xc4, 0x2, 0xc5, 0x2, 0xc6, 0x2, 0xc7, - 0x2, 0xc8, 0x2, 0xc9, 0x2, 0xca, 0x2, 0xcb, 0x2, 0xcc, 0x2, 0xcd, 0x2, 0xce, 0x2, 0xcf, 0x2, - 0xd0, 0x2, 0xd1, 0x2, 0xd2, 0x2, 0xd3, 0x2, 0xd4, 0x2, 0xd5, 0x2, 0xd6, 0x2, 0xd7, 0x2, 0xd8, - 0x2, 0xd9, 0x2, 0xda, 0x2, 0xdb, 0x2, 0xdc, 0x2, 0xdd, 0x2, 0xde, 0x2, 0xdf, 0x2, 0xe0, 0x2, - 0xe1, 0x2, 0xe2, 0x2, 0xe3, 0x2, 0xe4, 0x2, 0xe5, 0x2, 0xe6, 0x2, 0xe7, 0x2, 0xe8, 0x2, 0xe9, - 0x2, 0xea, 0x2, 0xeb, 0x2, 0xec, 0x2, 0xed, 0x2, 0xee, 0x2, 0xef, 0x2, 0xf0, 0x2, 0xf1, 0x2, - 0xf2, 0x2, 0xf3, 0x2, 0xf4, 0x2, 0xf5, 0x2, 0xf6, 0x2, 0xf7, 0x2, 0xf8, 0x2, 0xf9, 0x2, 0xfa, - 0x2, 0xfb, 0x2, 0xfc, 0x2, 0xfd, 0x2, 0xfe, 0x2, 0xff, 0x2, 0x0, 0x3, 0x1, 0x3, 0x2, 0x3, 0x3, - 0x3, 0x4, 0x3, 0x5, 0x3, 0x6, 0x3, 0x7, 0x3, 0x8, 0x3, 0x9, 0x3, 0xa, 0x3, 0xb, 0x3, 0xc, 0x3, - 0xd, 0x3, 0xe, 0x3, 0xf, 0x3, 0x10, 0x3, 0x11, 0x3, 0x12, 0x3, 0x13, 0x3, 0x14, 0x3, 0x15, 0x3, - 0x16, 0x3, 0x17, 0x3, 0x18, 0x3, 0x19, 0x3, 0x1a, 0x3, 0x1b, 0x3, 0x1c, 0x3, 0x1d, 0x3, 0x1e, - 0x3, 0x1f, 0x3, 0x20, 0x3, 0x21, 0x3, 0x22, 0x3, 0x23, 0x3, 0x24, 0x3, 0x25, 0x3, 0x26, 0x3, - 0x27, 0x3, 0x28, 0x3, 0x29, 0x3, 0x2a, 0x3, 0x2b, 0x3, 0x2c, 0x3, 0x2d, 0x3, 0x2e, 0x3, 0x2f, - 0x3, 0x30, 0x3, 0x31, 0x3, 0x32, 0x3, 0x33, 0x3, 0x34, 0x3, 0x35, 0x3, 0x36, 0x3, 0x37, 0x3, - 0x38, 0x3, 0x39, 0x3, 0x3a, 0x3, 0x3b, 0x3, 0x3c, 0x3, 0x3d, 0x3, 0x3e, 0x3, 0x3f, 0x3, 0x40, - 0x3, 0x41, 0x3, 0x42, 0x3, 0x43, 0x3, 0x44, 0x3, 0x45, 0x3, 0x46, 0x3, 0x47, 0x3, 0x48, 0x3, - 0x49, 0x3, 0x4a, 0x3, 0x4b, 0x3, 0x4c, 0x3, 0x4d, 0x3, 0x4e, 0x3, 0x4f, 0x3, 0x50, 0x3, 0x51, - 0x3, 0x52, 0x3, 0x53, 0x3, 0x54, 0x3, 0x55, 0x3, 0x56, 0x3, 0x57, 0x3, 0x58, 0x3, 0x59, 0x3, - 0x5a, 0x3, 0x5b, 0x3, 0x5c, 0x3, 0x5d, 0x3, 0x5e, 0x3, 0x5f, 0x3, 0x60, 0x3, 0x61, 0x3, 0x62, - 0x3, 0x63, 0x3, 0x64, 0x3, 0x65, 0x3, 0x66, 0x3, 0x67, 0x3, 0x68, 0x3, 0x69, 0x3, 0x6a, 0x3, - 0x6b, 0x3, 0x6c, 0x3, 0x6d, 0x3, 0x6e, 0x3, 0x6f, 0x3, 0x70, 0x3, 0x71, 0x3, 0x72, 0x3, 0x73, - 0x3, 0x74, 0x3, 0x75, 0x3, 0x76, 0x3, 0x77, 0x3, 0x78, 0x3, 0x79, 0x3, 0x7a, 0x3, 0x7b, 0x3, - 0x7c, 0x3, 0x7d, 0x3, 0x7e, 0x3, 0x7f, 0x3, 0x80, 0x3, 0x81, 0x3, 0x82, 0x3, 0x83, 0x3, 0x84, - 0x3, 0x85, 0x3, 0x86, 0x3, 0x87, 0x3, 0x88, 0x3, 0x89, 0x3, 0x8a, 0x3, 0x8b, 0x3, 0x8c, 0x3, - 0x8d, 0x3, 0x8e, 0x3, 0x8f, 0x3, 0x90, 0x3, 0x91, 0x3, 0x92, 0x3, 0x93, 0x3, 0x94, 0x3, 0x95, - 0x3, 0x96, 0x3, 0x97, 0x3, 0x98, 0x3, + 0x97, 0x3, 0x2, 0x0, 0x3, 0x0, 0x4, 0x0, 0x5, 0x0, 0x6, 0x0, 0x7, 0x0, 0x8, 0x0, 0x9, 0x0, 0xa, 0x0, 0xb, 0x0, 0xc, + 0x0, 0xd, 0x0, 0xe, 0x0, 0xf, 0x0, 0x10, 0x0, 0x11, 0x0, 0x12, 0x0, 0x13, 0x0, 0x14, 0x0, 0x15, 0x0, 0x16, 0x0, + 0x17, 0x0, 0x18, 0x0, 0x19, 0x0, 0x1a, 0x0, 0x1b, 0x0, 0x1c, 0x0, 0x1d, 0x0, 0x1e, 0x0, 0x1f, 0x0, 0x20, 0x0, 0x21, + 0x0, 0x22, 0x0, 0x23, 0x0, 0x24, 0x0, 0x25, 0x0, 0x26, 0x0, 0x27, 0x0, 0x28, 0x0, 0x29, 0x0, 0x2a, 0x0, 0x2b, 0x0, + 0x2c, 0x0, 0x2d, 0x0, 0x2e, 0x0, 0x2f, 0x0, 0x30, 0x0, 0x31, 0x0, 0x32, 0x0, 0x33, 0x0, 0x34, 0x0, 0x35, 0x0, 0x36, + 0x0, 0x37, 0x0, 0x38, 0x0, 0x39, 0x0, 0x3a, 0x0, 0x3b, 0x0, 0x3c, 0x0, 0x3d, 0x0, 0x3e, 0x0, 0x3f, 0x0, 0x40, 0x0, + 0x41, 0x0, 0x42, 0x0, 0x43, 0x0, 0x44, 0x0, 0x45, 0x0, 0x46, 0x0, 0x47, 0x0, 0x48, 0x0, 0x49, 0x0, 0x4a, 0x0, 0x4b, + 0x0, 0x4c, 0x0, 0x4d, 0x0, 0x4e, 0x0, 0x4f, 0x0, 0x50, 0x0, 0x51, 0x0, 0x52, 0x0, 0x53, 0x0, 0x54, 0x0, 0x55, 0x0, + 0x56, 0x0, 0x57, 0x0, 0x58, 0x0, 0x59, 0x0, 0x5a, 0x0, 0x5b, 0x0, 0x5c, 0x0, 0x5d, 0x0, 0x5e, 0x0, 0x5f, 0x0, 0x60, + 0x0, 0x61, 0x0, 0x62, 0x0, 0x63, 0x0, 0x64, 0x0, 0x65, 0x0, 0x66, 0x0, 0x67, 0x0, 0x68, 0x0, 0x69, 0x0, 0x6a, 0x0, + 0x6b, 0x0, 0x6c, 0x0, 0x6d, 0x0, 0x6e, 0x0, 0x6f, 0x0, 0x70, 0x0, 0x71, 0x0, 0x72, 0x0, 0x73, 0x0, 0x74, 0x0, 0x75, + 0x0, 0x76, 0x0, 0x77, 0x0, 0x78, 0x0, 0x79, 0x0, 0x7a, 0x0, 0x7b, 0x0, 0x7c, 0x0, 0x7d, 0x0, 0x7e, 0x0, 0x7f, 0x0, + 0x80, 0x0, 0x81, 0x0, 0x82, 0x0, 0x83, 0x0, 0x84, 0x0, 0x85, 0x0, 0x86, 0x0, 0x87, 0x0, 0x88, 0x0, 0x89, 0x0, 0x8a, + 0x0, 0x8b, 0x0, 0x8c, 0x0, 0x8d, 0x0, 0x8e, 0x0, 0x8f, 0x0, 0x90, 0x0, 0x91, 0x0, 0x92, 0x0, 0x93, 0x0, 0x94, 0x0, + 0x95, 0x0, 0x96, 0x0, 0x97, 0x0, 0x98, 0x0, 0x99, 0x0, 0x9a, 0x0, 0x9b, 0x0, 0x9c, 0x0, 0x9d, 0x0, 0x9e, 0x0, 0x9f, + 0x0, 0xa0, 0x0, 0xa1, 0x0, 0xa2, 0x0, 0xa3, 0x0, 0xa4, 0x0, 0xa5, 0x0, 0xa6, 0x0, 0xa7, 0x0, 0xa8, 0x0, 0xa9, 0x0, + 0xaa, 0x0, 0xab, 0x0, 0xac, 0x0, 0xad, 0x0, 0xae, 0x0, 0xaf, 0x0, 0xb0, 0x0, 0xb1, 0x0, 0xb2, 0x0, 0xb3, 0x0, 0xb4, + 0x0, 0xb5, 0x0, 0xb6, 0x0, 0xb7, 0x0, 0xb8, 0x0, 0xb9, 0x0, 0xba, 0x0, 0xbb, 0x0, 0xbc, 0x0, 0xbd, 0x0, 0xbe, 0x0, + 0xbf, 0x0, 0xc0, 0x0, 0xc1, 0x0, 0xc2, 0x0, 0xc3, 0x0, 0xc4, 0x0, 0xc5, 0x0, 0xc6, 0x0, 0xc7, 0x0, 0xc8, 0x0, 0xc9, + 0x0, 0xca, 0x0, 0xcb, 0x0, 0xcc, 0x0, 0xcd, 0x0, 0xce, 0x0, 0xcf, 0x0, 0xd0, 0x0, 0xd1, 0x0, 0xd2, 0x0, 0xd3, 0x0, + 0xd4, 0x0, 0xd5, 0x0, 0xd6, 0x0, 0xd7, 0x0, 0xd8, 0x0, 0xd9, 0x0, 0xda, 0x0, 0xdb, 0x0, 0xdc, 0x0, 0xdd, 0x0, 0xde, + 0x0, 0xdf, 0x0, 0xe0, 0x0, 0xe1, 0x0, 0xe2, 0x0, 0xe3, 0x0, 0xe4, 0x0, 0xe5, 0x0, 0xe6, 0x0, 0xe7, 0x0, 0xe8, 0x0, + 0xe9, 0x0, 0xea, 0x0, 0xeb, 0x0, 0xec, 0x0, 0xed, 0x0, 0xee, 0x0, 0xef, 0x0, 0xf0, 0x0, 0xf1, 0x0, 0xf2, 0x0, 0xf3, + 0x0, 0xf4, 0x0, 0xf5, 0x0, 0xf6, 0x0, 0xf7, 0x0, 0xf8, 0x0, 0xf9, 0x0, 0xfa, 0x0, 0xfb, 0x0, 0xfc, 0x0, 0xfd, 0x0, + 0xfe, 0x0, 0xff, 0x0, 0x0, 0x1, 0x1, 0x1, 0x2, 0x1, 0x3, 0x1, 0x4, 0x1, 0x5, 0x1, 0x6, 0x1, 0x7, 0x1, 0x8, 0x1, + 0x9, 0x1, 0xa, 0x1, 0xb, 0x1, 0xc, 0x1, 0xd, 0x1, 0xe, 0x1, 0xf, 0x1, 0x10, 0x1, 0x11, 0x1, 0x12, 0x1, 0x13, 0x1, + 0x14, 0x1, 0x15, 0x1, 0x16, 0x1, 0x17, 0x1, 0x18, 0x1, 0x19, 0x1, 0x1a, 0x1, 0x1b, 0x1, 0x1c, 0x1, 0x1d, 0x1, 0x1e, + 0x1, 0x1f, 0x1, 0x20, 0x1, 0x21, 0x1, 0x22, 0x1, 0x23, 0x1, 0x24, 0x1, 0x25, 0x1, 0x26, 0x1, 0x27, 0x1, 0x28, 0x1, + 0x29, 0x1, 0x2a, 0x1, 0x2b, 0x1, 0x2c, 0x1, 0x2d, 0x1, 0x2e, 0x1, 0x2f, 0x1, 0x30, 0x1, 0x31, 0x1, 0x32, 0x1, 0x33, + 0x1, 0x34, 0x1, 0x35, 0x1, 0x36, 0x1, 0x37, 0x1, 0x38, 0x1, 0x39, 0x1, 0x3a, 0x1, 0x3b, 0x1, 0x3c, 0x1, 0x3d, 0x1, + 0x3e, 0x1, 0x3f, 0x1, 0x40, 0x1, 0x41, 0x1, 0x42, 0x1, 0x43, 0x1, 0x44, 0x1, 0x45, 0x1, 0x46, 0x1, 0x47, 0x1, 0x48, + 0x1, 0x49, 0x1, 0x4a, 0x1, 0x4b, 0x1, 0x4c, 0x1, 0x4d, 0x1, 0x4e, 0x1, 0x4f, 0x1, 0x50, 0x1, 0x51, 0x1, 0x52, 0x1, + 0x53, 0x1, 0x54, 0x1, 0x55, 0x1, 0x56, 0x1, 0x57, 0x1, 0x58, 0x1, 0x59, 0x1, 0x5a, 0x1, 0x5b, 0x1, 0x5c, 0x1, 0x5d, + 0x1, 0x5e, 0x1, 0x5f, 0x1, 0x60, 0x1, 0x61, 0x1, 0x62, 0x1, 0x63, 0x1, 0x64, 0x1, 0x65, 0x1, 0x66, 0x1, 0x67, 0x1, + 0x68, 0x1, 0x69, 0x1, 0x6a, 0x1, 0x6b, 0x1, 0x6c, 0x1, 0x6d, 0x1, 0x6e, 0x1, 0x6f, 0x1, 0x70, 0x1, 0x71, 0x1, 0x72, + 0x1, 0x73, 0x1, 0x74, 0x1, 0x75, 0x1, 0x76, 0x1, 0x77, 0x1, 0x78, 0x1, 0x79, 0x1, 0x7a, 0x1, 0x7b, 0x1, 0x7c, 0x1, + 0x7d, 0x1, 0x7e, 0x1, 0x7f, 0x1, 0x80, 0x1, 0x81, 0x1, 0x82, 0x1, 0x83, 0x1, 0x84, 0x1, 0x85, 0x1, 0x86, 0x1, 0x87, + 0x1, 0x88, 0x1, 0x89, 0x1, 0x8a, 0x1, 0x8b, 0x1, 0x8c, 0x1, 0x8d, 0x1, 0x8e, 0x1, 0x8f, 0x1, 0x90, 0x1, 0x91, 0x1, + 0x92, 0x1, 0x93, 0x1, 0x94, 0x1, 0x95, 0x1, 0x96, 0x1, 0x97, 0x1, 0x98, 0x1, 0x99, 0x1, 0x9a, 0x1, 0x9b, 0x1, 0x9c, + 0x1, 0x9d, 0x1, 0x9e, 0x1, 0x9f, 0x1, 0xa0, 0x1, 0xa1, 0x1, 0xa2, 0x1, 0xa3, 0x1, 0xa4, 0x1, 0xa5, 0x1, 0xa6, 0x1, + 0xa7, 0x1, 0xa8, 0x1, 0xa9, 0x1, 0xaa, 0x1, 0xab, 0x1, 0xac, 0x1, 0xad, 0x1, 0xae, 0x1, 0xaf, 0x1, 0xb0, 0x1, 0xb1, + 0x1, 0xb2, 0x1, 0xb3, 0x1, 0xb4, 0x1, 0xb5, 0x1, 0xb6, 0x1, 0xb7, 0x1, 0xb8, 0x1, 0xb9, 0x1, 0xba, 0x1, 0xbb, 0x1, + 0xbc, 0x1, 0xbd, 0x1, 0xbe, 0x1, 0xbf, 0x1, 0xc0, 0x1, 0xc1, 0x1, 0xc2, 0x1, 0xc3, 0x1, 0xc4, 0x1, 0xc5, 0x1, 0xc6, + 0x1, 0xc7, 0x1, 0xc8, 0x1, 0xc9, 0x1, 0xca, 0x1, 0xcb, 0x1, 0xcc, 0x1, 0xcd, 0x1, 0xce, 0x1, 0xcf, 0x1, 0xd0, 0x1, + 0xd1, 0x1, 0xd2, 0x1, 0xd3, 0x1, 0xd4, 0x1, 0xd5, 0x1, 0xd6, 0x1, 0xd7, 0x1, 0xd8, 0x1, 0xd9, 0x1, 0xda, 0x1, 0xdb, + 0x1, 0xdc, 0x1, 0xdd, 0x1, 0xde, 0x1, 0xdf, 0x1, 0xe0, 0x1, 0xe1, 0x1, 0xe2, 0x1, 0xe3, 0x1, 0xe4, 0x1, 0xe5, 0x1, + 0xe6, 0x1, 0xe7, 0x1, 0xe8, 0x1, 0xe9, 0x1, 0xea, 0x1, 0xeb, 0x1, 0xec, 0x1, 0xed, 0x1, 0xee, 0x1, 0xef, 0x1, 0xf0, + 0x1, 0xf1, 0x1, 0xf2, 0x1, 0xf3, 0x1, 0xf4, 0x1, 0xf5, 0x1, 0xf6, 0x1, 0xf7, 0x1, 0xf8, 0x1, 0xf9, 0x1, 0xfa, 0x1, + 0xfb, 0x1, 0xfc, 0x1, 0xfd, 0x1, 0xfe, 0x1, 0xff, 0x1, 0x0, 0x2, 0x1, 0x2, 0x2, 0x2, 0x3, 0x2, 0x4, 0x2, 0x5, 0x2, + 0x6, 0x2, 0x7, 0x2, 0x8, 0x2, 0x9, 0x2, 0xa, 0x2, 0xb, 0x2, 0xc, 0x2, 0xd, 0x2, 0xe, 0x2, 0xf, 0x2, 0x10, 0x2, + 0x11, 0x2, 0x12, 0x2, 0x13, 0x2, 0x14, 0x2, 0x15, 0x2, 0x16, 0x2, 0x17, 0x2, 0x18, 0x2, 0x19, 0x2, 0x1a, 0x2, 0x1b, + 0x2, 0x1c, 0x2, 0x1d, 0x2, 0x1e, 0x2, 0x1f, 0x2, 0x20, 0x2, 0x21, 0x2, 0x22, 0x2, 0x23, 0x2, 0x24, 0x2, 0x25, 0x2, + 0x26, 0x2, 0x27, 0x2, 0x28, 0x2, 0x29, 0x2, 0x2a, 0x2, 0x2b, 0x2, 0x2c, 0x2, 0x2d, 0x2, 0x2e, 0x2, 0x2f, 0x2, 0x30, + 0x2, 0x31, 0x2, 0x32, 0x2, 0x33, 0x2, 0x34, 0x2, 0x35, 0x2, 0x36, 0x2, 0x37, 0x2, 0x38, 0x2, 0x39, 0x2, 0x3a, 0x2, + 0x3b, 0x2, 0x3c, 0x2, 0x3d, 0x2, 0x3e, 0x2, 0x3f, 0x2, 0x40, 0x2, 0x41, 0x2, 0x42, 0x2, 0x43, 0x2, 0x44, 0x2, 0x45, + 0x2, 0x46, 0x2, 0x47, 0x2, 0x48, 0x2, 0x49, 0x2, 0x4a, 0x2, 0x4b, 0x2, 0x4c, 0x2, 0x4d, 0x2, 0x4e, 0x2, 0x4f, 0x2, + 0x50, 0x2, 0x51, 0x2, 0x52, 0x2, 0x53, 0x2, 0x54, 0x2, 0x55, 0x2, 0x56, 0x2, 0x57, 0x2, 0x58, 0x2, 0x59, 0x2, 0x5a, + 0x2, 0x5b, 0x2, 0x5c, 0x2, 0x5d, 0x2, 0x5e, 0x2, 0x5f, 0x2, 0x60, 0x2, 0x61, 0x2, 0x62, 0x2, 0x63, 0x2, 0x64, 0x2, + 0x65, 0x2, 0x66, 0x2, 0x67, 0x2, 0x68, 0x2, 0x69, 0x2, 0x6a, 0x2, 0x6b, 0x2, 0x6c, 0x2, 0x6d, 0x2, 0x6e, 0x2, 0x6f, + 0x2, 0x70, 0x2, 0x71, 0x2, 0x72, 0x2, 0x73, 0x2, 0x74, 0x2, 0x75, 0x2, 0x76, 0x2, 0x77, 0x2, 0x78, 0x2, 0x79, 0x2, + 0x7a, 0x2, 0x7b, 0x2, 0x7c, 0x2, 0x7d, 0x2, 0x7e, 0x2, 0x7f, 0x2, 0x80, 0x2, 0x81, 0x2, 0x82, 0x2, 0x83, 0x2, 0x84, + 0x2, 0x85, 0x2, 0x86, 0x2, 0x87, 0x2, 0x88, 0x2, 0x89, 0x2, 0x8a, 0x2, 0x8b, 0x2, 0x8c, 0x2, 0x8d, 0x2, 0x8e, 0x2, + 0x8f, 0x2, 0x90, 0x2, 0x91, 0x2, 0x92, 0x2, 0x93, 0x2, 0x94, 0x2, 0x95, 0x2, 0x96, 0x2, 0x97, 0x2, 0x98, 0x2, 0x99, + 0x2, 0x9a, 0x2, 0x9b, 0x2, 0x9c, 0x2, 0x9d, 0x2, 0x9e, 0x2, 0x9f, 0x2, 0xa0, 0x2, 0xa1, 0x2, 0xa2, 0x2, 0xa3, 0x2, + 0xa4, 0x2, 0xa5, 0x2, 0xa6, 0x2, 0xa7, 0x2, 0xa8, 0x2, 0xa9, 0x2, 0xaa, 0x2, 0xab, 0x2, 0xac, 0x2, 0xad, 0x2, 0xae, + 0x2, 0xaf, 0x2, 0xb0, 0x2, 0xb1, 0x2, 0xb2, 0x2, 0xb3, 0x2, 0xb4, 0x2, 0xb5, 0x2, 0xb6, 0x2, 0xb7, 0x2, 0xb8, 0x2, + 0xb9, 0x2, 0xba, 0x2, 0xbb, 0x2, 0xbc, 0x2, 0xbd, 0x2, 0xbe, 0x2, 0xbf, 0x2, 0xc0, 0x2, 0xc1, 0x2, 0xc2, 0x2, 0xc3, + 0x2, 0xc4, 0x2, 0xc5, 0x2, 0xc6, 0x2, 0xc7, 0x2, 0xc8, 0x2, 0xc9, 0x2, 0xca, 0x2, 0xcb, 0x2, 0xcc, 0x2, 0xcd, 0x2, + 0xce, 0x2, 0xcf, 0x2, 0xd0, 0x2, 0xd1, 0x2, 0xd2, 0x2, 0xd3, 0x2, 0xd4, 0x2, 0xd5, 0x2, 0xd6, 0x2, 0xd7, 0x2, 0xd8, + 0x2, 0xd9, 0x2, 0xda, 0x2, 0xdb, 0x2, 0xdc, 0x2, 0xdd, 0x2, 0xde, 0x2, 0xdf, 0x2, 0xe0, 0x2, 0xe1, 0x2, 0xe2, 0x2, + 0xe3, 0x2, 0xe4, 0x2, 0xe5, 0x2, 0xe6, 0x2, 0xe7, 0x2, 0xe8, 0x2, 0xe9, 0x2, 0xea, 0x2, 0xeb, 0x2, 0xec, 0x2, 0xed, + 0x2, 0xee, 0x2, 0xef, 0x2, 0xf0, 0x2, 0xf1, 0x2, 0xf2, 0x2, 0xf3, 0x2, 0xf4, 0x2, 0xf5, 0x2, 0xf6, 0x2, 0xf7, 0x2, + 0xf8, 0x2, 0xf9, 0x2, 0xfa, 0x2, 0xfb, 0x2, 0xfc, 0x2, 0xfd, 0x2, 0xfe, 0x2, 0xff, 0x2, 0x0, 0x3, 0x1, 0x3, 0x2, + 0x3, 0x3, 0x3, 0x4, 0x3, 0x5, 0x3, 0x6, 0x3, 0x7, 0x3, 0x8, 0x3, 0x9, 0x3, 0xa, 0x3, 0xb, 0x3, 0xc, 0x3, 0xd, 0x3, + 0xe, 0x3, 0xf, 0x3, 0x10, 0x3, 0x11, 0x3, 0x12, 0x3, 0x13, 0x3, 0x14, 0x3, 0x15, 0x3, 0x16, 0x3, 0x17, 0x3, 0x18, + 0x3, 0x19, 0x3, 0x1a, 0x3, 0x1b, 0x3, 0x1c, 0x3, 0x1d, 0x3, 0x1e, 0x3, 0x1f, 0x3, 0x20, 0x3, 0x21, 0x3, 0x22, 0x3, + 0x23, 0x3, 0x24, 0x3, 0x25, 0x3, 0x26, 0x3, 0x27, 0x3, 0x28, 0x3, 0x29, 0x3, 0x2a, 0x3, 0x2b, 0x3, 0x2c, 0x3, 0x2d, + 0x3, 0x2e, 0x3, 0x2f, 0x3, 0x30, 0x3, 0x31, 0x3, 0x32, 0x3, 0x33, 0x3, 0x34, 0x3, 0x35, 0x3, 0x36, 0x3, 0x37, 0x3, + 0x38, 0x3, 0x39, 0x3, 0x3a, 0x3, 0x3b, 0x3, 0x3c, 0x3, 0x3d, 0x3, 0x3e, 0x3, 0x3f, 0x3, 0x40, 0x3, 0x41, 0x3, 0x42, + 0x3, 0x43, 0x3, 0x44, 0x3, 0x45, 0x3, 0x46, 0x3, 0x47, 0x3, 0x48, 0x3, 0x49, 0x3, 0x4a, 0x3, 0x4b, 0x3, 0x4c, 0x3, + 0x4d, 0x3, 0x4e, 0x3, 0x4f, 0x3, 0x50, 0x3, 0x51, 0x3, 0x52, 0x3, 0x53, 0x3, 0x54, 0x3, 0x55, 0x3, 0x56, 0x3, 0x57, + 0x3, 0x58, 0x3, 0x59, 0x3, 0x5a, 0x3, 0x5b, 0x3, 0x5c, 0x3, 0x5d, 0x3, 0x5e, 0x3, 0x5f, 0x3, 0x60, 0x3, 0x61, 0x3, + 0x62, 0x3, 0x63, 0x3, 0x64, 0x3, 0x65, 0x3, 0x66, 0x3, 0x67, 0x3, 0x68, 0x3, 0x69, 0x3, 0x6a, 0x3, 0x6b, 0x3, 0x6c, + 0x3, 0x6d, 0x3, 0x6e, 0x3, 0x6f, 0x3, 0x70, 0x3, 0x71, 0x3, 0x72, 0x3, 0x73, 0x3, 0x74, 0x3, 0x75, 0x3, 0x76, 0x3, + 0x77, 0x3, 0x78, 0x3, 0x79, 0x3, 0x7a, 0x3, 0x7b, 0x3, 0x7c, 0x3, 0x7d, 0x3, 0x7e, 0x3, 0x7f, 0x3, 0x80, 0x3, 0x81, + 0x3, 0x82, 0x3, 0x83, 0x3, 0x84, 0x3, 0x85, 0x3, 0x86, 0x3, 0x87, 0x3, 0x88, 0x3, 0x89, 0x3, 0x8a, 0x3, 0x8b, 0x3, + 0x8c, 0x3, 0x8d, 0x3, 0x8e, 0x3, 0x8f, 0x3, 0x90, 0x3, 0x91, 0x3, 0x92, 0x3, 0x93, 0x3, 0x94, 0x3, 0x95, 0x3, 0x96, + 0x3, 0x97, 0x3, 0x98, 0x3, ]; lazy_static! { @@ -260,8 +223,7 @@ lazy_static! { }, bitmap_data_length: 201, }; - pub static ref WIRE_TO_SURFACE_1_BITMAP_DATA: Vec = - (&WIRE_TO_SURFACE_1_BUFFER[17..]).to_vec(); + pub static ref WIRE_TO_SURFACE_1_BITMAP_DATA: Vec = (&WIRE_TO_SURFACE_1_BUFFER[17..]).to_vec(); pub static ref WIRE_TO_SURFACE_2: WireToSurface2Pdu = WireToSurface2Pdu { surface_id: 0, codec_id: Codec2Type::RemoteFxProgressive, @@ -269,8 +231,7 @@ lazy_static! { pixel_format: PixelFormat::XRgb, bitmap_data_length: 616, }; - pub static ref WIRE_TO_SURFACE_2_BITMAP_DATA: Vec = - (&WIRE_TO_SURFACE_2_BUFFER[13..]).to_vec(); + pub static ref WIRE_TO_SURFACE_2_BITMAP_DATA: Vec = (&WIRE_TO_SURFACE_2_BUFFER[13..]).to_vec(); pub static ref DELETE_ENCODING_CONTEXT: DeleteEncodingContextPdu = DeleteEncodingContextPdu { surface_id: 0, codec_context_id: 1, @@ -351,38 +312,36 @@ lazy_static! { frame_id: 5 }; pub static ref END_FRAME: EndFramePdu = EndFramePdu { frame_id: 1 }; - pub static ref CAPABILITIES_CONFIRM: CapabilitiesConfirmPdu = - CapabilitiesConfirmPdu(CapabilitySet::V10_5 { - flags: CapabilitiesV104Flags::AVC_DISABLED, - }); - pub static ref CAPABILITIES_ADVERTISE: CapabilitiesAdvertisePdu = - CapabilitiesAdvertisePdu(vec![ - CapabilitySet::V8 { - flags: CapabilitiesV8Flags::THIN_CLIENT - }, - CapabilitySet::V8_1 { - flags: CapabilitiesV81Flags::THIN_CLIENT - }, - CapabilitySet::V10 { - flags: CapabilitiesV10Flags::AVC_DISABLED - }, - CapabilitySet::V10_1, - CapabilitySet::V10_2 { - flags: CapabilitiesV10Flags::AVC_DISABLED - }, - CapabilitySet::V10_3 { - flags: CapabilitiesV103Flags::AVC_DISABLED - }, - CapabilitySet::V10_4 { - flags: CapabilitiesV104Flags::AVC_DISABLED - }, - CapabilitySet::V10_5 { - flags: CapabilitiesV104Flags::AVC_DISABLED - }, - CapabilitySet::V10_6 { - flags: CapabilitiesV104Flags::AVC_DISABLED - } - ]); + pub static ref CAPABILITIES_CONFIRM: CapabilitiesConfirmPdu = CapabilitiesConfirmPdu(CapabilitySet::V10_5 { + flags: CapabilitiesV104Flags::AVC_DISABLED, + }); + pub static ref CAPABILITIES_ADVERTISE: CapabilitiesAdvertisePdu = CapabilitiesAdvertisePdu(vec![ + CapabilitySet::V8 { + flags: CapabilitiesV8Flags::THIN_CLIENT + }, + CapabilitySet::V8_1 { + flags: CapabilitiesV81Flags::THIN_CLIENT + }, + CapabilitySet::V10 { + flags: CapabilitiesV10Flags::AVC_DISABLED + }, + CapabilitySet::V10_1, + CapabilitySet::V10_2 { + flags: CapabilitiesV10Flags::AVC_DISABLED + }, + CapabilitySet::V10_3 { + flags: CapabilitiesV103Flags::AVC_DISABLED + }, + CapabilitySet::V10_4 { + flags: CapabilitiesV104Flags::AVC_DISABLED + }, + CapabilitySet::V10_5 { + flags: CapabilitiesV104Flags::AVC_DISABLED + }, + CapabilitySet::V10_6 { + flags: CapabilitiesV104Flags::AVC_DISABLED + } + ]); pub static ref FRAME_ACKNOWLEDGE: FrameAcknowledgePdu = FrameAcknowledgePdu { queue_depth: QueueDepth::Unavailable, frame_id: 1, @@ -390,80 +349,65 @@ lazy_static! { }; pub static ref CACHE_IMPORT_REPLY: CacheImportReplyPdu = CacheImportReplyPdu { cache_slots: vec![ - 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf, 0x10, 0x11, 0x12, - 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, - 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, - 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, - 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, - 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, - 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, - 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, - 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x80, 0x81, 0x82, - 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, - 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, - 0x9f, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, - 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0xba, - 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, - 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, - 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, - 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 0xf0, 0xf1, 0xf2, - 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, 0x100, - 0x101, 0x102, 0x103, 0x104, 0x105, 0x106, 0x107, 0x108, 0x109, 0x10a, 0x10b, 0x10c, - 0x10d, 0x10e, 0x10f, 0x110, 0x111, 0x112, 0x113, 0x114, 0x115, 0x116, 0x117, 0x118, - 0x119, 0x11a, 0x11b, 0x11c, 0x11d, 0x11e, 0x11f, 0x120, 0x121, 0x122, 0x123, 0x124, - 0x125, 0x126, 0x127, 0x128, 0x129, 0x12a, 0x12b, 0x12c, 0x12d, 0x12e, 0x12f, 0x130, - 0x131, 0x132, 0x133, 0x134, 0x135, 0x136, 0x137, 0x138, 0x139, 0x13a, 0x13b, 0x13c, - 0x13d, 0x13e, 0x13f, 0x140, 0x141, 0x142, 0x143, 0x144, 0x145, 0x146, 0x147, 0x148, - 0x149, 0x14a, 0x14b, 0x14c, 0x14d, 0x14e, 0x14f, 0x150, 0x151, 0x152, 0x153, 0x154, - 0x155, 0x156, 0x157, 0x158, 0x159, 0x15a, 0x15b, 0x15c, 0x15d, 0x15e, 0x15f, 0x160, - 0x161, 0x162, 0x163, 0x164, 0x165, 0x166, 0x167, 0x168, 0x169, 0x16a, 0x16b, 0x16c, - 0x16d, 0x16e, 0x16f, 0x170, 0x171, 0x172, 0x173, 0x174, 0x175, 0x176, 0x177, 0x178, - 0x179, 0x17a, 0x17b, 0x17c, 0x17d, 0x17e, 0x17f, 0x180, 0x181, 0x182, 0x183, 0x184, - 0x185, 0x186, 0x187, 0x188, 0x189, 0x18a, 0x18b, 0x18c, 0x18d, 0x18e, 0x18f, 0x190, - 0x191, 0x192, 0x193, 0x194, 0x195, 0x196, 0x197, 0x198, 0x199, 0x19a, 0x19b, 0x19c, - 0x19d, 0x19e, 0x19f, 0x1a0, 0x1a1, 0x1a2, 0x1a3, 0x1a4, 0x1a5, 0x1a6, 0x1a7, 0x1a8, - 0x1a9, 0x1aa, 0x1ab, 0x1ac, 0x1ad, 0x1ae, 0x1af, 0x1b0, 0x1b1, 0x1b2, 0x1b3, 0x1b4, - 0x1b5, 0x1b6, 0x1b7, 0x1b8, 0x1b9, 0x1ba, 0x1bb, 0x1bc, 0x1bd, 0x1be, 0x1bf, 0x1c0, - 0x1c1, 0x1c2, 0x1c3, 0x1c4, 0x1c5, 0x1c6, 0x1c7, 0x1c8, 0x1c9, 0x1ca, 0x1cb, 0x1cc, - 0x1cd, 0x1ce, 0x1cf, 0x1d0, 0x1d1, 0x1d2, 0x1d3, 0x1d4, 0x1d5, 0x1d6, 0x1d7, 0x1d8, - 0x1d9, 0x1da, 0x1db, 0x1dc, 0x1dd, 0x1de, 0x1df, 0x1e0, 0x1e1, 0x1e2, 0x1e3, 0x1e4, - 0x1e5, 0x1e6, 0x1e7, 0x1e8, 0x1e9, 0x1ea, 0x1eb, 0x1ec, 0x1ed, 0x1ee, 0x1ef, 0x1f0, - 0x1f1, 0x1f2, 0x1f3, 0x1f4, 0x1f5, 0x1f6, 0x1f7, 0x1f8, 0x1f9, 0x1fa, 0x1fb, 0x1fc, - 0x1fd, 0x1fe, 0x1ff, 0x200, 0x201, 0x202, 0x203, 0x204, 0x205, 0x206, 0x207, 0x208, - 0x209, 0x20a, 0x20b, 0x20c, 0x20d, 0x20e, 0x20f, 0x210, 0x211, 0x212, 0x213, 0x214, - 0x215, 0x216, 0x217, 0x218, 0x219, 0x21a, 0x21b, 0x21c, 0x21d, 0x21e, 0x21f, 0x220, - 0x221, 0x222, 0x223, 0x224, 0x225, 0x226, 0x227, 0x228, 0x229, 0x22a, 0x22b, 0x22c, - 0x22d, 0x22e, 0x22f, 0x230, 0x231, 0x232, 0x233, 0x234, 0x235, 0x236, 0x237, 0x238, - 0x239, 0x23a, 0x23b, 0x23c, 0x23d, 0x23e, 0x23f, 0x240, 0x241, 0x242, 0x243, 0x244, - 0x245, 0x246, 0x247, 0x248, 0x249, 0x24a, 0x24b, 0x24c, 0x24d, 0x24e, 0x24f, 0x250, - 0x251, 0x252, 0x253, 0x254, 0x255, 0x256, 0x257, 0x258, 0x259, 0x25a, 0x25b, 0x25c, - 0x25d, 0x25e, 0x25f, 0x260, 0x261, 0x262, 0x263, 0x264, 0x265, 0x266, 0x267, 0x268, - 0x269, 0x26a, 0x26b, 0x26c, 0x26d, 0x26e, 0x26f, 0x270, 0x271, 0x272, 0x273, 0x274, - 0x275, 0x276, 0x277, 0x278, 0x279, 0x27a, 0x27b, 0x27c, 0x27d, 0x27e, 0x27f, 0x280, - 0x281, 0x282, 0x283, 0x284, 0x285, 0x286, 0x287, 0x288, 0x289, 0x28a, 0x28b, 0x28c, - 0x28d, 0x28e, 0x28f, 0x290, 0x291, 0x292, 0x293, 0x294, 0x295, 0x296, 0x297, 0x298, - 0x299, 0x29a, 0x29b, 0x29c, 0x29d, 0x29e, 0x29f, 0x2a0, 0x2a1, 0x2a2, 0x2a3, 0x2a4, - 0x2a5, 0x2a6, 0x2a7, 0x2a8, 0x2a9, 0x2aa, 0x2ab, 0x2ac, 0x2ad, 0x2ae, 0x2af, 0x2b0, - 0x2b1, 0x2b2, 0x2b3, 0x2b4, 0x2b5, 0x2b6, 0x2b7, 0x2b8, 0x2b9, 0x2ba, 0x2bb, 0x2bc, - 0x2bd, 0x2be, 0x2bf, 0x2c0, 0x2c1, 0x2c2, 0x2c3, 0x2c4, 0x2c5, 0x2c6, 0x2c7, 0x2c8, - 0x2c9, 0x2ca, 0x2cb, 0x2cc, 0x2cd, 0x2ce, 0x2cf, 0x2d0, 0x2d1, 0x2d2, 0x2d3, 0x2d4, - 0x2d5, 0x2d6, 0x2d7, 0x2d8, 0x2d9, 0x2da, 0x2db, 0x2dc, 0x2dd, 0x2de, 0x2df, 0x2e0, - 0x2e1, 0x2e2, 0x2e3, 0x2e4, 0x2e5, 0x2e6, 0x2e7, 0x2e8, 0x2e9, 0x2ea, 0x2eb, 0x2ec, - 0x2ed, 0x2ee, 0x2ef, 0x2f0, 0x2f1, 0x2f2, 0x2f3, 0x2f4, 0x2f5, 0x2f6, 0x2f7, 0x2f8, - 0x2f9, 0x2fa, 0x2fb, 0x2fc, 0x2fd, 0x2fe, 0x2ff, 0x300, 0x301, 0x302, 0x303, 0x304, - 0x305, 0x306, 0x307, 0x308, 0x309, 0x30a, 0x30b, 0x30c, 0x30d, 0x30e, 0x30f, 0x310, - 0x311, 0x312, 0x313, 0x314, 0x315, 0x316, 0x317, 0x318, 0x319, 0x31a, 0x31b, 0x31c, - 0x31d, 0x31e, 0x31f, 0x320, 0x321, 0x322, 0x323, 0x324, 0x325, 0x326, 0x327, 0x328, - 0x329, 0x32a, 0x32b, 0x32c, 0x32d, 0x32e, 0x32f, 0x330, 0x331, 0x332, 0x333, 0x334, - 0x335, 0x336, 0x337, 0x338, 0x339, 0x33a, 0x33b, 0x33c, 0x33d, 0x33e, 0x33f, 0x340, - 0x341, 0x342, 0x343, 0x344, 0x345, 0x346, 0x347, 0x348, 0x349, 0x34a, 0x34b, 0x34c, - 0x34d, 0x34e, 0x34f, 0x350, 0x351, 0x352, 0x353, 0x354, 0x355, 0x356, 0x357, 0x358, - 0x359, 0x35a, 0x35b, 0x35c, 0x35d, 0x35e, 0x35f, 0x360, 0x361, 0x362, 0x363, 0x364, - 0x365, 0x366, 0x367, 0x368, 0x369, 0x36a, 0x36b, 0x36c, 0x36d, 0x36e, 0x36f, 0x370, - 0x371, 0x372, 0x373, 0x374, 0x375, 0x376, 0x377, 0x378, 0x379, 0x37a, 0x37b, 0x37c, - 0x37d, 0x37e, 0x37f, 0x380, 0x381, 0x382, 0x383, 0x384, 0x385, 0x386, 0x387, 0x388, - 0x389, 0x38a, 0x38b, 0x38c, 0x38d, 0x38e, 0x38f, 0x390, 0x391, 0x392, 0x393, 0x394, - 0x395, 0x396, 0x397, 0x398 + 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, + 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, + 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, + 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, + 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, + 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x80, 0x81, + 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, + 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, + 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, + 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, + 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, + 0xdc, 0xdd, 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, + 0xee, 0xef, 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, + 0x100, 0x101, 0x102, 0x103, 0x104, 0x105, 0x106, 0x107, 0x108, 0x109, 0x10a, 0x10b, 0x10c, 0x10d, 0x10e, + 0x10f, 0x110, 0x111, 0x112, 0x113, 0x114, 0x115, 0x116, 0x117, 0x118, 0x119, 0x11a, 0x11b, 0x11c, 0x11d, + 0x11e, 0x11f, 0x120, 0x121, 0x122, 0x123, 0x124, 0x125, 0x126, 0x127, 0x128, 0x129, 0x12a, 0x12b, 0x12c, + 0x12d, 0x12e, 0x12f, 0x130, 0x131, 0x132, 0x133, 0x134, 0x135, 0x136, 0x137, 0x138, 0x139, 0x13a, 0x13b, + 0x13c, 0x13d, 0x13e, 0x13f, 0x140, 0x141, 0x142, 0x143, 0x144, 0x145, 0x146, 0x147, 0x148, 0x149, 0x14a, + 0x14b, 0x14c, 0x14d, 0x14e, 0x14f, 0x150, 0x151, 0x152, 0x153, 0x154, 0x155, 0x156, 0x157, 0x158, 0x159, + 0x15a, 0x15b, 0x15c, 0x15d, 0x15e, 0x15f, 0x160, 0x161, 0x162, 0x163, 0x164, 0x165, 0x166, 0x167, 0x168, + 0x169, 0x16a, 0x16b, 0x16c, 0x16d, 0x16e, 0x16f, 0x170, 0x171, 0x172, 0x173, 0x174, 0x175, 0x176, 0x177, + 0x178, 0x179, 0x17a, 0x17b, 0x17c, 0x17d, 0x17e, 0x17f, 0x180, 0x181, 0x182, 0x183, 0x184, 0x185, 0x186, + 0x187, 0x188, 0x189, 0x18a, 0x18b, 0x18c, 0x18d, 0x18e, 0x18f, 0x190, 0x191, 0x192, 0x193, 0x194, 0x195, + 0x196, 0x197, 0x198, 0x199, 0x19a, 0x19b, 0x19c, 0x19d, 0x19e, 0x19f, 0x1a0, 0x1a1, 0x1a2, 0x1a3, 0x1a4, + 0x1a5, 0x1a6, 0x1a7, 0x1a8, 0x1a9, 0x1aa, 0x1ab, 0x1ac, 0x1ad, 0x1ae, 0x1af, 0x1b0, 0x1b1, 0x1b2, 0x1b3, + 0x1b4, 0x1b5, 0x1b6, 0x1b7, 0x1b8, 0x1b9, 0x1ba, 0x1bb, 0x1bc, 0x1bd, 0x1be, 0x1bf, 0x1c0, 0x1c1, 0x1c2, + 0x1c3, 0x1c4, 0x1c5, 0x1c6, 0x1c7, 0x1c8, 0x1c9, 0x1ca, 0x1cb, 0x1cc, 0x1cd, 0x1ce, 0x1cf, 0x1d0, 0x1d1, + 0x1d2, 0x1d3, 0x1d4, 0x1d5, 0x1d6, 0x1d7, 0x1d8, 0x1d9, 0x1da, 0x1db, 0x1dc, 0x1dd, 0x1de, 0x1df, 0x1e0, + 0x1e1, 0x1e2, 0x1e3, 0x1e4, 0x1e5, 0x1e6, 0x1e7, 0x1e8, 0x1e9, 0x1ea, 0x1eb, 0x1ec, 0x1ed, 0x1ee, 0x1ef, + 0x1f0, 0x1f1, 0x1f2, 0x1f3, 0x1f4, 0x1f5, 0x1f6, 0x1f7, 0x1f8, 0x1f9, 0x1fa, 0x1fb, 0x1fc, 0x1fd, 0x1fe, + 0x1ff, 0x200, 0x201, 0x202, 0x203, 0x204, 0x205, 0x206, 0x207, 0x208, 0x209, 0x20a, 0x20b, 0x20c, 0x20d, + 0x20e, 0x20f, 0x210, 0x211, 0x212, 0x213, 0x214, 0x215, 0x216, 0x217, 0x218, 0x219, 0x21a, 0x21b, 0x21c, + 0x21d, 0x21e, 0x21f, 0x220, 0x221, 0x222, 0x223, 0x224, 0x225, 0x226, 0x227, 0x228, 0x229, 0x22a, 0x22b, + 0x22c, 0x22d, 0x22e, 0x22f, 0x230, 0x231, 0x232, 0x233, 0x234, 0x235, 0x236, 0x237, 0x238, 0x239, 0x23a, + 0x23b, 0x23c, 0x23d, 0x23e, 0x23f, 0x240, 0x241, 0x242, 0x243, 0x244, 0x245, 0x246, 0x247, 0x248, 0x249, + 0x24a, 0x24b, 0x24c, 0x24d, 0x24e, 0x24f, 0x250, 0x251, 0x252, 0x253, 0x254, 0x255, 0x256, 0x257, 0x258, + 0x259, 0x25a, 0x25b, 0x25c, 0x25d, 0x25e, 0x25f, 0x260, 0x261, 0x262, 0x263, 0x264, 0x265, 0x266, 0x267, + 0x268, 0x269, 0x26a, 0x26b, 0x26c, 0x26d, 0x26e, 0x26f, 0x270, 0x271, 0x272, 0x273, 0x274, 0x275, 0x276, + 0x277, 0x278, 0x279, 0x27a, 0x27b, 0x27c, 0x27d, 0x27e, 0x27f, 0x280, 0x281, 0x282, 0x283, 0x284, 0x285, + 0x286, 0x287, 0x288, 0x289, 0x28a, 0x28b, 0x28c, 0x28d, 0x28e, 0x28f, 0x290, 0x291, 0x292, 0x293, 0x294, + 0x295, 0x296, 0x297, 0x298, 0x299, 0x29a, 0x29b, 0x29c, 0x29d, 0x29e, 0x29f, 0x2a0, 0x2a1, 0x2a2, 0x2a3, + 0x2a4, 0x2a5, 0x2a6, 0x2a7, 0x2a8, 0x2a9, 0x2aa, 0x2ab, 0x2ac, 0x2ad, 0x2ae, 0x2af, 0x2b0, 0x2b1, 0x2b2, + 0x2b3, 0x2b4, 0x2b5, 0x2b6, 0x2b7, 0x2b8, 0x2b9, 0x2ba, 0x2bb, 0x2bc, 0x2bd, 0x2be, 0x2bf, 0x2c0, 0x2c1, + 0x2c2, 0x2c3, 0x2c4, 0x2c5, 0x2c6, 0x2c7, 0x2c8, 0x2c9, 0x2ca, 0x2cb, 0x2cc, 0x2cd, 0x2ce, 0x2cf, 0x2d0, + 0x2d1, 0x2d2, 0x2d3, 0x2d4, 0x2d5, 0x2d6, 0x2d7, 0x2d8, 0x2d9, 0x2da, 0x2db, 0x2dc, 0x2dd, 0x2de, 0x2df, + 0x2e0, 0x2e1, 0x2e2, 0x2e3, 0x2e4, 0x2e5, 0x2e6, 0x2e7, 0x2e8, 0x2e9, 0x2ea, 0x2eb, 0x2ec, 0x2ed, 0x2ee, + 0x2ef, 0x2f0, 0x2f1, 0x2f2, 0x2f3, 0x2f4, 0x2f5, 0x2f6, 0x2f7, 0x2f8, 0x2f9, 0x2fa, 0x2fb, 0x2fc, 0x2fd, + 0x2fe, 0x2ff, 0x300, 0x301, 0x302, 0x303, 0x304, 0x305, 0x306, 0x307, 0x308, 0x309, 0x30a, 0x30b, 0x30c, + 0x30d, 0x30e, 0x30f, 0x310, 0x311, 0x312, 0x313, 0x314, 0x315, 0x316, 0x317, 0x318, 0x319, 0x31a, 0x31b, + 0x31c, 0x31d, 0x31e, 0x31f, 0x320, 0x321, 0x322, 0x323, 0x324, 0x325, 0x326, 0x327, 0x328, 0x329, 0x32a, + 0x32b, 0x32c, 0x32d, 0x32e, 0x32f, 0x330, 0x331, 0x332, 0x333, 0x334, 0x335, 0x336, 0x337, 0x338, 0x339, + 0x33a, 0x33b, 0x33c, 0x33d, 0x33e, 0x33f, 0x340, 0x341, 0x342, 0x343, 0x344, 0x345, 0x346, 0x347, 0x348, + 0x349, 0x34a, 0x34b, 0x34c, 0x34d, 0x34e, 0x34f, 0x350, 0x351, 0x352, 0x353, 0x354, 0x355, 0x356, 0x357, + 0x358, 0x359, 0x35a, 0x35b, 0x35c, 0x35d, 0x35e, 0x35f, 0x360, 0x361, 0x362, 0x363, 0x364, 0x365, 0x366, + 0x367, 0x368, 0x369, 0x36a, 0x36b, 0x36c, 0x36d, 0x36e, 0x36f, 0x370, 0x371, 0x372, 0x373, 0x374, 0x375, + 0x376, 0x377, 0x378, 0x379, 0x37a, 0x37b, 0x37c, 0x37d, 0x37e, 0x37f, 0x380, 0x381, 0x382, 0x383, 0x384, + 0x385, 0x386, 0x387, 0x388, 0x389, 0x38a, 0x38b, 0x38c, 0x38d, 0x38e, 0x38f, 0x390, 0x391, 0x392, 0x393, + 0x394, 0x395, 0x396, 0x397, 0x398 ] }; } @@ -472,10 +416,7 @@ lazy_static! { fn from_buffer_correctly_parses_wire_to_surface_1_pdu() { let mut buffer = WIRE_TO_SURFACE_1_BUFFER.as_ref(); - assert_eq!( - *WIRE_TO_SURFACE_1, - WireToSurface1Pdu::from_buffer(&mut buffer).unwrap() - ); + assert_eq!(*WIRE_TO_SURFACE_1, WireToSurface1Pdu::from_buffer(&mut buffer).unwrap()); assert_eq!(WIRE_TO_SURFACE_1_BITMAP_DATA.as_slice(), buffer); } @@ -500,10 +441,7 @@ fn buffer_length_is_correct_for_wire_to_surface_1_pdu() { fn from_buffer_correctly_parses_wire_to_surface_2_pdu() { let mut buffer = WIRE_TO_SURFACE_2_BUFFER.as_ref(); - assert_eq!( - *WIRE_TO_SURFACE_2, - WireToSurface2Pdu::from_buffer(&mut buffer).unwrap() - ); + assert_eq!(*WIRE_TO_SURFACE_2, WireToSurface2Pdu::from_buffer(&mut buffer).unwrap()); assert_eq!(WIRE_TO_SURFACE_2_BITMAP_DATA.as_slice(), buffer); } @@ -593,20 +531,14 @@ fn to_buffer_correctly_serializes_surface_to_surface_pdu() { #[test] fn buffer_length_is_correct_for_surface_to_surface_pdu() { - assert_eq!( - SURFACE_TO_SURFACE_BUFFER.len(), - SURFACE_TO_SURFACE.buffer_length() - ); + assert_eq!(SURFACE_TO_SURFACE_BUFFER.len(), SURFACE_TO_SURFACE.buffer_length()); } #[test] fn from_buffer_correctly_parses_surface_to_cache_pdu() { let mut buffer = SURFACE_TO_CACHE_BUFFER.as_ref(); - assert_eq!( - *SURFACE_TO_CACHE, - SurfaceToCachePdu::from_buffer(&mut buffer).unwrap() - ); + assert_eq!(*SURFACE_TO_CACHE, SurfaceToCachePdu::from_buffer(&mut buffer).unwrap()); assert!(buffer.is_empty()); } @@ -620,20 +552,14 @@ fn to_buffer_correctly_serializes_surface_to_cache_pdu() { #[test] fn buffer_length_is_correct_for_surface_to_cache_pdu() { - assert_eq!( - SURFACE_TO_CACHE_BUFFER.len(), - SURFACE_TO_CACHE.buffer_length() - ); + assert_eq!(SURFACE_TO_CACHE_BUFFER.len(), SURFACE_TO_CACHE.buffer_length()); } #[test] fn from_buffer_correctly_parses_cache_to_surface_pdu() { let mut buffer = CACHE_TO_SURFACE_BUFFER.as_ref(); - assert_eq!( - *CACHE_TO_SURFACE, - CacheToSurfacePdu::from_buffer(&mut buffer).unwrap() - ); + assert_eq!(*CACHE_TO_SURFACE, CacheToSurfacePdu::from_buffer(&mut buffer).unwrap()); assert!(buffer.is_empty()); } @@ -647,20 +573,14 @@ fn to_buffer_correctly_serializes_cache_to_surface_pdu() { #[test] fn buffer_length_is_correct_for_cache_to_surface_pdu() { - assert_eq!( - CACHE_TO_SURFACE_BUFFER.len(), - CACHE_TO_SURFACE.buffer_length() - ); + assert_eq!(CACHE_TO_SURFACE_BUFFER.len(), CACHE_TO_SURFACE.buffer_length()); } #[test] fn from_buffer_correctly_parses_create_surface_pdu() { let mut buffer = CREATE_SURFACE_BUFFER.as_ref(); - assert_eq!( - *CREATE_SURFACE, - CreateSurfacePdu::from_buffer(&mut buffer).unwrap() - ); + assert_eq!(*CREATE_SURFACE, CreateSurfacePdu::from_buffer(&mut buffer).unwrap()); assert!(buffer.is_empty()); } @@ -681,10 +601,7 @@ fn buffer_length_is_correct_for_create_surface_pdu() { fn from_buffer_correctly_parses_delete_surface_pdu() { let mut buffer = DELETE_SURFACE_BUFFER.as_ref(); - assert_eq!( - *DELETE_SURFACE, - DeleteSurfacePdu::from_buffer(&mut buffer).unwrap() - ); + assert_eq!(*DELETE_SURFACE, DeleteSurfacePdu::from_buffer(&mut buffer).unwrap()); assert!(buffer.is_empty()); } @@ -705,10 +622,7 @@ fn buffer_length_is_correct_for_delete_surface_pdu() { fn from_buffer_correctly_parses_reset_graphics() { let mut buffer = RESET_GRAPHICS_BUFFER.as_ref(); - assert_eq!( - *RESET_GRAPHICS, - ResetGraphicsPdu::from_buffer(&mut buffer).unwrap() - ); + assert_eq!(*RESET_GRAPHICS, ResetGraphicsPdu::from_buffer(&mut buffer).unwrap()); assert!(buffer.is_empty()); } @@ -773,20 +687,14 @@ fn to_buffer_correctly_serializes_evict_cache_entry_pdu() { #[test] fn buffer_length_is_correct_for_evict_cache_entry_pdu() { - assert_eq!( - EVICT_CACHE_ENTRY_BUFFER.len(), - EVICT_CACHE_ENTRY.buffer_length() - ); + assert_eq!(EVICT_CACHE_ENTRY_BUFFER.len(), EVICT_CACHE_ENTRY.buffer_length()); } #[test] fn from_buffer_correctly_parses_start_frame_pdu() { let mut buffer = START_FRAME_BUFFER.as_ref(); - assert_eq!( - *START_FRAME, - StartFramePdu::from_buffer(&mut buffer).unwrap() - ); + assert_eq!(*START_FRAME, StartFramePdu::from_buffer(&mut buffer).unwrap()); assert!(buffer.is_empty()); } @@ -845,10 +753,7 @@ fn to_buffer_correctly_serializes_capabilities_confirm_pdu() { #[test] fn buffer_length_is_correct_for_capabilities_confirm_pdu() { - assert_eq!( - CAPABILITIES_CONFIRM_BUFFER.len(), - CAPABILITIES_CONFIRM.buffer_length() - ); + assert_eq!(CAPABILITIES_CONFIRM_BUFFER.len(), CAPABILITIES_CONFIRM.buffer_length()); } #[test] @@ -899,10 +804,7 @@ fn to_buffer_correctly_serializes_frame_acknowledge_pdu() { #[test] fn buffer_length_is_correct_for_frame_acknowledge_pdu() { - assert_eq!( - FRAME_ACKNOWLEDGE_BUFFER.len(), - FRAME_ACKNOWLEDGE.buffer_length() - ); + assert_eq!(FRAME_ACKNOWLEDGE_BUFFER.len(), FRAME_ACKNOWLEDGE.buffer_length()); } #[test] @@ -926,8 +828,5 @@ fn to_buffer_correctly_serializes_cache_import_reply() { #[test] fn buffer_length_is_correct_for_cache_import_reply() { - assert_eq!( - CACHE_IMPORT_REPLY_BUFFER.len(), - CACHE_IMPORT_REPLY.buffer_length() - ); + assert_eq!(CACHE_IMPORT_REPLY_BUFFER.len(), CACHE_IMPORT_REPLY.buffer_length()); } diff --git a/ironrdp/src/rdp/vc/dvc/gfx/test.rs b/ironrdp/src/rdp/vc/dvc/gfx/test.rs index b734f921..a1922623 100644 --- a/ironrdp/src/rdp/vc/dvc/gfx/test.rs +++ b/ironrdp/src/rdp/vc/dvc/gfx/test.rs @@ -1,35 +1,21 @@ use lazy_static::lazy_static; -use super::{ - graphics_messages::test::{ - FRAME_ACKNOWLEDGE, FRAME_ACKNOWLEDGE_BUFFER, WIRE_TO_SURFACE_1, - WIRE_TO_SURFACE_1_BITMAP_DATA, WIRE_TO_SURFACE_1_BUFFER, - }, - *, +use super::graphics_messages::test::{ + FRAME_ACKNOWLEDGE, FRAME_ACKNOWLEDGE_BUFFER, WIRE_TO_SURFACE_1, WIRE_TO_SURFACE_1_BITMAP_DATA, + WIRE_TO_SURFACE_1_BUFFER, }; +use super::*; const WIRE_TO_SURFACE_1_HEADER_BUFFER: [u8; 8] = [0x01, 0x00, 0x00, 0x00, 0xe2, 0x00, 0x00, 0x00]; const FRAME_ACKNOWLEDGE_HEADER_BUFFER: [u8; 8] = [0x0d, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00]; lazy_static! { - static ref HEADER_WITH_WIRE_TO_SURFACE_1_BUFFER: Vec = { - [ - &WIRE_TO_SURFACE_1_HEADER_BUFFER[..], - &WIRE_TO_SURFACE_1_BUFFER[..], - ] - .concat() - }; - static ref HEADER_WITH_FRAME_ACKNOWLEDGE_BUFFER: Vec = { - [ - &FRAME_ACKNOWLEDGE_HEADER_BUFFER[..], - &FRAME_ACKNOWLEDGE_BUFFER[..], - ] - .concat() - }; - static ref HEADER_WITH_WIRE_TO_SURFACE_1: ServerPdu = - ServerPdu::WireToSurface1(WIRE_TO_SURFACE_1.clone()); - static ref HEADER_WITH_FRAME_ACKNOWLEDGE: ClientPdu = - ClientPdu::FrameAcknowledge(FRAME_ACKNOWLEDGE.clone()); + static ref HEADER_WITH_WIRE_TO_SURFACE_1_BUFFER: Vec = + { [&WIRE_TO_SURFACE_1_HEADER_BUFFER[..], &WIRE_TO_SURFACE_1_BUFFER[..],].concat() }; + static ref HEADER_WITH_FRAME_ACKNOWLEDGE_BUFFER: Vec = + { [&FRAME_ACKNOWLEDGE_HEADER_BUFFER[..], &FRAME_ACKNOWLEDGE_BUFFER[..],].concat() }; + static ref HEADER_WITH_WIRE_TO_SURFACE_1: ServerPdu = ServerPdu::WireToSurface1(WIRE_TO_SURFACE_1.clone()); + static ref HEADER_WITH_FRAME_ACKNOWLEDGE: ClientPdu = ClientPdu::FrameAcknowledge(FRAME_ACKNOWLEDGE.clone()); } #[test] @@ -46,9 +32,7 @@ fn from_buffer_correctly_parses_server_pdu() { #[test] fn to_buffer_correctly_serializes_server_pdu() { let mut buffer = Vec::with_capacity(HEADER_WITH_WIRE_TO_SURFACE_1_BUFFER.len()); - HEADER_WITH_WIRE_TO_SURFACE_1 - .to_buffer(&mut buffer) - .unwrap(); + HEADER_WITH_WIRE_TO_SURFACE_1.to_buffer(&mut buffer).unwrap(); buffer.extend_from_slice(WIRE_TO_SURFACE_1_BITMAP_DATA.as_slice()); assert_eq!(buffer, HEADER_WITH_WIRE_TO_SURFACE_1_BUFFER.as_slice()); @@ -66,18 +50,13 @@ fn buffer_length_is_correct_for_server_pdu() { fn from_buffer_correctly_parses_client_pdu() { let buffer = HEADER_WITH_FRAME_ACKNOWLEDGE_BUFFER.as_slice(); - assert_eq!( - *HEADER_WITH_FRAME_ACKNOWLEDGE, - ClientPdu::from_buffer(buffer).unwrap() - ); + assert_eq!(*HEADER_WITH_FRAME_ACKNOWLEDGE, ClientPdu::from_buffer(buffer).unwrap()); } #[test] fn to_buffer_correctly_serializes_client_pdu() { let mut buffer = Vec::with_capacity(1024); - HEADER_WITH_FRAME_ACKNOWLEDGE - .to_buffer(&mut buffer) - .unwrap(); + HEADER_WITH_FRAME_ACKNOWLEDGE.to_buffer(&mut buffer).unwrap(); assert_eq!(buffer, HEADER_WITH_FRAME_ACKNOWLEDGE_BUFFER.as_slice()); } diff --git a/ironrdp/src/rdp/vc/dvc/gfx/zgfx.rs b/ironrdp/src/rdp/vc/dvc/gfx/zgfx.rs index a1f49377..2f76f482 100644 --- a/ironrdp/src/rdp/vc/dvc/gfx/zgfx.rs +++ b/ironrdp/src/rdp/vc/dvc/gfx/zgfx.rs @@ -11,12 +11,13 @@ use bitvec::field::BitField as _; use bitvec::order::Msb0; use bitvec::slice::BitSlice; use byteorder::WriteBytesExt; +use circular_buffer::FixedCircularBuffer; +use control_messages::{BulkEncodedData, CompressionFlags, SegmentedDataPdu}; use failure::Fail; use lazy_static::lazy_static; -use crate::{impl_from_error, utils::Bits}; -use circular_buffer::FixedCircularBuffer; -use control_messages::{BulkEncodedData, CompressionFlags, SegmentedDataPdu}; +use crate::impl_from_error; +use crate::utils::Bits; const HISTORY_SIZE: usize = 2_500_000; @@ -31,11 +32,7 @@ impl Decompressor { } } - pub fn decompress( - &mut self, - input: &[u8], - output: &mut Vec, - ) -> Result { + pub fn decompress(&mut self, input: &[u8], output: &mut Vec) -> Result { let segmented_data = SegmentedDataPdu::from_buffer(input)?; match segmented_data { @@ -62,16 +59,9 @@ impl Decompressor { } } - fn handle_segment( - &mut self, - segment: &BulkEncodedData<'_>, - output: &mut Vec, - ) -> Result { + fn handle_segment(&mut self, segment: &BulkEncodedData<'_>, output: &mut Vec) -> Result { if !segment.data.is_empty() { - if segment - .compression_flags - .contains(CompressionFlags::COMPRESSED) - { + if segment.compression_flags.contains(CompressionFlags::COMPRESSED) { self.decompress_segment(segment.data, output) } else { self.history.write_all(segment.data)?; @@ -84,11 +74,7 @@ impl Decompressor { } } - fn decompress_segment( - &mut self, - encoded_data: &[u8], - output: &mut Vec, - ) -> Result { + fn decompress_segment(&mut self, encoded_data: &[u8], output: &mut Vec) -> Result { let mut bits = BitSlice::from_slice(encoded_data); // The value of the last byte indicates the number of unused bits in the final byte @@ -124,13 +110,8 @@ impl Decompressor { distance_value_size, distance_base, } => { - let written = handle_match( - &mut bits, - distance_value_size, - distance_base, - &mut self.history, - output, - )?; + let written = + handle_match(&mut bits, distance_value_size, distance_base, &mut self.history, output)?; bytes_written += written; } } @@ -249,153 +230,103 @@ lazy_static! { }, Token { prefix: bits![static u8, Msb0; 1, 1, 0, 0, 0], - ty: TokenType::Literal { - literal_value: 0x00 - }, + ty: TokenType::Literal { literal_value: 0x00 }, }, Token { prefix: bits![static u8, Msb0; 1, 1, 0, 0, 1], - ty: TokenType::Literal { - literal_value: 0x01 - }, + ty: TokenType::Literal { literal_value: 0x01 }, }, Token { prefix: bits![static u8, Msb0; 1, 1, 0, 1, 0, 0], - ty: TokenType::Literal { - literal_value: 0x02 - }, + ty: TokenType::Literal { literal_value: 0x02 }, }, Token { prefix: bits![static u8, Msb0; 1, 1, 0, 1, 0, 1], - ty: TokenType::Literal { - literal_value: 0x03 - }, + ty: TokenType::Literal { literal_value: 0x03 }, }, Token { prefix: bits![static u8, Msb0; 1, 1, 0, 1, 1, 0], - ty: TokenType::Literal { - literal_value: 0x0ff - }, + ty: TokenType::Literal { literal_value: 0x0ff }, }, Token { prefix: bits![static u8, Msb0; 1, 1, 0, 1, 1, 1, 0], - ty: TokenType::Literal { - literal_value: 0x04 - }, + ty: TokenType::Literal { literal_value: 0x04 }, }, Token { prefix: bits![static u8, Msb0; 1, 1, 0, 1, 1, 1, 1], - ty: TokenType::Literal { - literal_value: 0x05 - }, + ty: TokenType::Literal { literal_value: 0x05 }, }, Token { prefix: bits![static u8, Msb0; 1, 1, 1, 0, 0, 0, 0], - ty: TokenType::Literal { - literal_value: 0x06 - }, + ty: TokenType::Literal { literal_value: 0x06 }, }, Token { prefix: bits![static u8, Msb0; 1, 1, 1, 0, 0, 0, 1], - ty: TokenType::Literal { - literal_value: 0x07 - }, + ty: TokenType::Literal { literal_value: 0x07 }, }, Token { prefix: bits![static u8, Msb0; 1, 1, 1, 0, 0, 1, 0], - ty: TokenType::Literal { - literal_value: 0x08 - }, + ty: TokenType::Literal { literal_value: 0x08 }, }, Token { prefix: bits![static u8, Msb0; 1, 1, 1, 0, 0, 1, 1], - ty: TokenType::Literal { - literal_value: 0x09 - }, + ty: TokenType::Literal { literal_value: 0x09 }, }, Token { prefix: bits![static u8, Msb0; 1, 1, 1, 0, 1, 0, 0], - ty: TokenType::Literal { - literal_value: 0x0a - }, + ty: TokenType::Literal { literal_value: 0x0a }, }, Token { prefix: bits![static u8, Msb0; 1, 1, 1, 0, 1, 0, 1], - ty: TokenType::Literal { - literal_value: 0x0b - }, + ty: TokenType::Literal { literal_value: 0x0b }, }, Token { prefix: bits![static u8, Msb0; 1, 1, 1, 0, 1, 1, 0], - ty: TokenType::Literal { - literal_value: 0x3a - }, + ty: TokenType::Literal { literal_value: 0x3a }, }, Token { prefix: bits![static u8, Msb0; 1, 1, 1, 0, 1, 1, 1], - ty: TokenType::Literal { - literal_value: 0x3b - }, + ty: TokenType::Literal { literal_value: 0x3b }, }, Token { prefix: bits![static u8, Msb0; 1, 1, 1, 1, 0, 0, 0], - ty: TokenType::Literal { - literal_value: 0x3c - }, + ty: TokenType::Literal { literal_value: 0x3c }, }, Token { prefix: bits![static u8, Msb0; 1, 1, 1, 1, 0, 0, 1], - ty: TokenType::Literal { - literal_value: 0x3d - }, + ty: TokenType::Literal { literal_value: 0x3d }, }, Token { prefix: bits![static u8, Msb0; 1, 1, 1, 1, 0, 1, 0], - ty: TokenType::Literal { - literal_value: 0x3e - }, + ty: TokenType::Literal { literal_value: 0x3e }, }, Token { prefix: bits![static u8, Msb0; 1, 1, 1, 1, 0, 1, 1], - ty: TokenType::Literal { - literal_value: 0x3f - }, + ty: TokenType::Literal { literal_value: 0x3f }, }, Token { prefix: bits![static u8, Msb0; 1, 1, 1, 1, 1, 0, 0], - ty: TokenType::Literal { - literal_value: 0x40 - }, + ty: TokenType::Literal { literal_value: 0x40 }, }, Token { prefix: bits![static u8, Msb0; 1, 1, 1, 1, 1, 0, 1], - ty: TokenType::Literal { - literal_value: 0x80 - }, + ty: TokenType::Literal { literal_value: 0x80 }, }, Token { prefix: bits![static u8, Msb0; 1, 1, 1, 1, 1, 1, 0, 0], - ty: TokenType::Literal { - literal_value: 0x0c - }, + ty: TokenType::Literal { literal_value: 0x0c }, }, Token { prefix: bits![static u8, Msb0; 1, 1, 1, 1, 1, 1, 0, 1], - ty: TokenType::Literal { - literal_value: 0x38 - }, + ty: TokenType::Literal { literal_value: 0x38 }, }, Token { prefix: bits![static u8, Msb0; 1, 1, 1, 1, 1, 1, 1, 0], - ty: TokenType::Literal { - literal_value: 0x39 - }, + ty: TokenType::Literal { literal_value: 0x39 }, }, Token { prefix: bits![static u8, Msb0; 1, 1, 1, 1, 1, 1, 1, 1], - ty: TokenType::Literal { - literal_value: 0x66 - }, + ty: TokenType::Literal { literal_value: 0x66 }, }, Token { prefix: bits![static u8, Msb0; 1, 0, 0, 0, 1], diff --git a/ironrdp/src/rdp/vc/dvc/gfx/zgfx/circular_buffer.rs b/ironrdp/src/rdp/vc/dvc/gfx/zgfx/circular_buffer.rs index 1be5dda4..a55e3bd4 100644 --- a/ironrdp/src/rdp/vc/dvc/gfx/zgfx/circular_buffer.rs +++ b/ironrdp/src/rdp/vc/dvc/gfx/zgfx/circular_buffer.rs @@ -1,4 +1,5 @@ -use std::{cmp::min, io}; +use std::cmp::min; +use std::io; pub struct FixedCircularBuffer { buffer: Vec, @@ -13,12 +14,7 @@ impl FixedCircularBuffer { } } - pub fn read_with_offset( - &self, - offset: usize, - length: usize, - mut output: impl io::Write, - ) -> io::Result<()> { + pub fn read_with_offset(&self, offset: usize, length: usize, mut output: impl io::Write) -> io::Result<()> { let position = (self.buffer.len() + self.position - offset) % self.buffer.len(); // will take the offset if the destination length is greater then the offset, @@ -142,8 +138,7 @@ mod tests { } #[test] - fn fixed_circular_buffer_correctly_writes_buffer_bigger_then_internal_buffer_size_with_position_at_end( - ) { + fn fixed_circular_buffer_correctly_writes_buffer_bigger_then_internal_buffer_size_with_position_at_end() { let size = 8; let mut circular_buffer = FixedCircularBuffer::new(size); circular_buffer.position = 6; @@ -208,8 +203,7 @@ mod tests { } #[test] - fn fixed_circular_buffer_correctly_reads_buffer_with_repeating_multiple_bytes_from_end_to_start( - ) { + fn fixed_circular_buffer_correctly_reads_buffer_with_repeating_multiple_bytes_from_end_to_start() { let circular_buffer = FixedCircularBuffer { buffer: vec![11, 12, 3, 4, 5, 6, 7, 8, 9, 10], position: 2, diff --git a/ironrdp/src/rdp/vc/dvc/gfx/zgfx/control_messages.rs b/ironrdp/src/rdp/vc/dvc/gfx/zgfx/control_messages.rs index a1053816..8b08b8ff 100644 --- a/ironrdp/src/rdp/vc/dvc/gfx/zgfx/control_messages.rs +++ b/ironrdp/src/rdp/vc/dvc/gfx/zgfx/control_messages.rs @@ -17,13 +17,11 @@ pub enum SegmentedDataPdu<'a> { impl<'a> SegmentedDataPdu<'a> { pub fn from_buffer(mut buffer: &'a [u8]) -> Result { - let descriptor = SegmentedDescriptor::from_u8(buffer.read_u8()?) - .ok_or(ZgfxError::InvalidSegmentedDescriptor)?; + let descriptor = + SegmentedDescriptor::from_u8(buffer.read_u8()?).ok_or(ZgfxError::InvalidSegmentedDescriptor)?; match descriptor { - SegmentedDescriptor::Single => Ok(SegmentedDataPdu::Single( - BulkEncodedData::from_buffer(buffer)?, - )), + SegmentedDescriptor::Single => Ok(SegmentedDataPdu::Single(BulkEncodedData::from_buffer(buffer)?)), SegmentedDescriptor::Multipart => { let segment_count = buffer.read_u16::()? as usize; let uncompressed_size = buffer.read_u32::()? as usize; @@ -57,8 +55,7 @@ impl<'a> BulkEncodedData<'a> { let compression_type_and_flags = buffer.read_u8()?; let _compression_type = CompressionType::from_u8(compression_type_and_flags.get_bits(..4)) .ok_or(ZgfxError::InvalidCompressionType)?; - let compression_flags = - CompressionFlags::from_bits_truncate(compression_type_and_flags.get_bits(4..)); + let compression_flags = CompressionFlags::from_bits_truncate(compression_type_and_flags.get_bits(4..)); Ok(Self { compression_flags, @@ -93,8 +90,7 @@ mod test { const SINGLE_SEGMENTED_DATA_PDU_BUFFER: [u8; 17] = [ 0xe0, // descriptor 0x24, // flags and compression type - 0x09, 0xe3, 0x18, 0x0a, 0x44, 0x8d, 0x37, 0xf4, 0xc6, 0xe8, 0xa0, 0x20, 0xc6, 0x30, - 0x01, // data + 0x09, 0xe3, 0x18, 0x0a, 0x44, 0x8d, 0x37, 0xf4, 0xc6, 0xe8, 0xa0, 0x20, 0xc6, 0x30, 0x01, // data ]; const MULTIPART_SEGMENTED_DATA_PDU_BUFFER: [u8; 66] = [ @@ -107,8 +103,7 @@ mod test { 0x20, // the first segment: data 0x0E, 0x00, 0x00, 0x00, // size of the second segment 0x04, // the second segment: flags and compression type - 0x66, 0x6F, 0x78, 0x20, 0x6A, 0x75, 0x6D, 0x70, 0x73, 0x20, 0x6F, 0x76, - 0x65, // the second segment: data + 0x66, 0x6F, 0x78, 0x20, 0x6A, 0x75, 0x6D, 0x70, 0x73, 0x20, 0x6F, 0x76, 0x65, // the second segment: data 0x10, 0x00, 0x00, 0x00, // size of the third segment 0x24, // the third segment: flags and compression type 0x39, 0x08, 0x0E, 0x91, 0xF8, 0xD8, 0x61, 0x3D, 0x1E, 0x44, 0x06, 0x43, 0x79, 0x9C, @@ -116,29 +111,27 @@ mod test { ]; lazy_static! { - static ref SINGLE_SEGMENTED_DATA_PDU: SegmentedDataPdu<'static> = - SegmentedDataPdu::Single(BulkEncodedData { - compression_flags: CompressionFlags::COMPRESSED, - data: &SINGLE_SEGMENTED_DATA_PDU_BUFFER[2..], - }); - static ref MULTIPART_SEGMENTED_DATA_PDU: SegmentedDataPdu<'static> = - SegmentedDataPdu::Multipart { - uncompressed_size: 0x2B, - segments: vec![ - BulkEncodedData { - compression_flags: CompressionFlags::empty(), - data: &MULTIPART_SEGMENTED_DATA_PDU_BUFFER[12..12 + 16] - }, - BulkEncodedData { - compression_flags: CompressionFlags::empty(), - data: &MULTIPART_SEGMENTED_DATA_PDU_BUFFER[33..33 + 13] - }, - BulkEncodedData { - compression_flags: CompressionFlags::COMPRESSED, - data: &MULTIPART_SEGMENTED_DATA_PDU_BUFFER[51..] - }, - ], - }; + static ref SINGLE_SEGMENTED_DATA_PDU: SegmentedDataPdu<'static> = SegmentedDataPdu::Single(BulkEncodedData { + compression_flags: CompressionFlags::COMPRESSED, + data: &SINGLE_SEGMENTED_DATA_PDU_BUFFER[2..], + }); + static ref MULTIPART_SEGMENTED_DATA_PDU: SegmentedDataPdu<'static> = SegmentedDataPdu::Multipart { + uncompressed_size: 0x2B, + segments: vec![ + BulkEncodedData { + compression_flags: CompressionFlags::empty(), + data: &MULTIPART_SEGMENTED_DATA_PDU_BUFFER[12..12 + 16] + }, + BulkEncodedData { + compression_flags: CompressionFlags::empty(), + data: &MULTIPART_SEGMENTED_DATA_PDU_BUFFER[33..33 + 13] + }, + BulkEncodedData { + compression_flags: CompressionFlags::COMPRESSED, + data: &MULTIPART_SEGMENTED_DATA_PDU_BUFFER[51..] + }, + ], + }; } #[test] diff --git a/ironrdp/src/rdp/vc/dvc/gfx/zgfx/tests.rs b/ironrdp/src/rdp/vc/dvc/gfx/zgfx/tests.rs index f28c0db9..0ea1cf7c 100644 --- a/ironrdp/src/rdp/vc/dvc/gfx/zgfx/tests.rs +++ b/ironrdp/src/rdp/vc/dvc/gfx/zgfx/tests.rs @@ -46,11 +46,7 @@ fn zgfx_decopresses_multiple_single_pdus() { for (i, (encode, decode)) in pairs.enumerate() { let bytes_written = zgfx.decompress(encode.as_ref(), &mut decompressed).unwrap(); assert_eq!(decode.len(), bytes_written); - assert_eq!( - decompressed, *decode, - "Failed to decompress encoded PDU #{}", - i - ); + assert_eq!(decompressed, *decode, "Failed to decompress encoded PDU #{}", i); decompressed.clear(); } } @@ -62,8 +58,7 @@ fn zgfx_decopresses_only_one_literal() { let mut zgfx = Decompressor::new(); let mut decompressed = Vec::with_capacity(expected.len()); - zgfx.decompress_segment(buffer.as_ref(), &mut decompressed) - .unwrap(); + zgfx.decompress_segment(buffer.as_ref(), &mut decompressed).unwrap(); assert_eq!(decompressed, expected); } @@ -74,8 +69,7 @@ fn zgfx_decopresses_one_literal_with_null_prefix() { let mut zgfx = Decompressor::new(); let mut decompressed = Vec::with_capacity(expected.len()); - zgfx.decompress_segment(buffer.as_ref(), &mut decompressed) - .unwrap(); + zgfx.decompress_segment(buffer.as_ref(), &mut decompressed).unwrap(); assert_eq!(decompressed, expected); } @@ -86,8 +80,7 @@ fn zgfx_decopresses_only_multiple_literals() { let mut zgfx = Decompressor::new(); let mut decompressed = Vec::with_capacity(expected.len()); - zgfx.decompress_segment(buffer.as_ref(), &mut decompressed) - .unwrap(); + zgfx.decompress_segment(buffer.as_ref(), &mut decompressed).unwrap(); assert_eq!(decompressed, expected); } @@ -98,8 +91,7 @@ fn zgfx_decopresses_one_literal_with_one_match_distance_1() { let mut zgfx = Decompressor::new(); let mut decompressed = Vec::with_capacity(expected.len()); - zgfx.decompress_segment(buffer.as_ref(), &mut decompressed) - .unwrap(); + zgfx.decompress_segment(buffer.as_ref(), &mut decompressed).unwrap(); assert_eq!(decompressed, expected); } @@ -119,8 +111,7 @@ fn zgfx_decopresses_three_literals_with_one_match_distance_3_length_57() { let mut zgfx = Decompressor::new(); let mut decompressed = Vec::with_capacity(expected.len()); - zgfx.decompress_segment(buffer.as_ref(), &mut decompressed) - .unwrap(); + zgfx.decompress_segment(buffer.as_ref(), &mut decompressed).unwrap(); assert_eq!(decompressed, expected); } @@ -133,8 +124,7 @@ fn zgfx_decopresses_one_match_with_match_unencoded_bytes() { let mut zgfx = Decompressor::new(); let mut decompressed = Vec::with_capacity(expected.len()); - zgfx.decompress_segment(buffer.as_ref(), &mut decompressed) - .unwrap(); + zgfx.decompress_segment(buffer.as_ref(), &mut decompressed).unwrap(); assert_eq!(decompressed, expected); } @@ -150,12 +140,10 @@ fn zgfx_decopresses_multiple_literals_with_match_in_center_with_not_compressed() 0x20, // "The quick brown " 0x0E, 0x00, 0x00, 0x00, // second segment is the next 14 bytes: 0x04, // type 4, not PACKET_COMPRESSED - 0x66, 0x6F, 0x78, 0x20, 0x6A, 0x75, 0x6D, 0x70, 0x73, 0x20, 0x6F, 0x76, - 0x65, // "fox jumps ove" + 0x66, 0x6F, 0x78, 0x20, 0x6A, 0x75, 0x6D, 0x70, 0x73, 0x20, 0x6F, 0x76, 0x65, // "fox jumps ove" 0x10, 0x00, 0x00, 0x00, // third segment is the next 16 bytes 0x24, // type 4 + PACKET_COMPRESSED - 0x39, 0x08, 0x0E, 0x91, 0xF8, 0xD8, 0x61, 0x3D, 0x1E, 0x44, 0x06, 0x43, 0x79, - 0x9C, // encoded: + 0x39, 0x08, 0x0E, 0x91, 0xF8, 0xD8, 0x61, 0x3D, 0x1E, 0x44, 0x06, 0x43, 0x79, 0x9C, // encoded: // 0 01110010 = literal 0x72 = "r" // 0 00100000 = literal 0x20 = " " // 0 01110100 = literal 0x74 = "t" @@ -178,22 +166,18 @@ fn zgfx_decopresses_multiple_literals_with_match_in_center_with_not_compressed() let mut decompressed = Vec::with_capacity(expected.len()); let bytes_written = zgfx.decompress(buffer.as_ref(), &mut decompressed).unwrap(); assert_eq!(expected.len(), bytes_written); - assert_eq!( - decompressed, expected, - "\n{:x?} != \n{:x?}", - decompressed, expected - ); + assert_eq!(decompressed, expected, "\n{:x?} != \n{:x?}", decompressed, expected); } #[test] fn zgfx_decopresses_single_match_unencoded_block() { let buffer = [ - 0xe0, 0x04, 0x13, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x01, 0x06, 0x0a, 0x00, 0x04, - 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0xe0, 0x04, 0x13, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x01, 0x06, 0x0a, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, ]; let expected = vec![ - 0x13, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x01, 0x06, 0x0a, 0x00, 0x04, 0x00, 0x00, - 0x00, 0x20, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x01, 0x06, 0x0a, 0x00, 0x04, 0x00, 0x00, 0x00, 0x20, 0x00, + 0x00, 0x00, ]; let mut zgfx = Decompressor::new(); @@ -205,19 +189,11 @@ fn zgfx_decopresses_single_match_unencoded_block() { #[test] fn zgfx_decopresses_unencoded_block_without_padding() { - let buffer = [ - 0b1110_0101, - 0b0001_0000, - 0b0000_0000, - 0b00000001, - 0b1111_0000, - 0x0, - ]; + let buffer = [0b1110_0101, 0b0001_0000, 0b0000_0000, 0b00000001, 0b1111_0000, 0x0]; let expected = vec![0x08, 0xf0]; let mut zgfx = Decompressor::new(); let mut decompressed = Vec::with_capacity(expected.len()); - zgfx.decompress_segment(buffer.as_ref(), &mut decompressed) - .unwrap(); + zgfx.decompress_segment(buffer.as_ref(), &mut decompressed).unwrap(); assert_eq!(decompressed, expected); } diff --git a/ironrdp/src/rdp/vc/dvc/tests.rs b/ironrdp/src/rdp/vc/dvc/tests.rs index 70a362ed..faf03db0 100644 --- a/ironrdp/src/rdp/vc/dvc/tests.rs +++ b/ironrdp/src/rdp/vc/dvc/tests.rs @@ -55,10 +55,7 @@ fn buffer_length_is_correct_for_dvc_header() { #[test] fn from_buffer_parsing_for_client_dvc_pdu_with_invalid_id_length_type_fails() { - match ClientPdu::from_buffer( - DVC_HEADER_WITH_INVALID_ID_LENGTH_TYPE_BUFFER.as_ref(), - HEADER_SIZE, - ) { + match ClientPdu::from_buffer(DVC_HEADER_WITH_INVALID_ID_LENGTH_TYPE_BUFFER.as_ref(), HEADER_SIZE) { Err(ChannelError::InvalidDVChannelIdLength) => (), res => panic!("Expected InvalidDVChannelIdLength error, got: {:?}", res), }; @@ -66,10 +63,7 @@ fn from_buffer_parsing_for_client_dvc_pdu_with_invalid_id_length_type_fails() { #[test] fn from_buffer_parsing_for_server_dvc_pdu_with_invalid_id_length_type_fails() { - match ServerPdu::from_buffer( - DVC_HEADER_WITH_INVALID_ID_LENGTH_TYPE_BUFFER.as_ref(), - HEADER_SIZE, - ) { + match ServerPdu::from_buffer(DVC_HEADER_WITH_INVALID_ID_LENGTH_TYPE_BUFFER.as_ref(), HEADER_SIZE) { Err(ChannelError::InvalidDVChannelIdLength) => (), res => panic!("Expected InvalidDVChannelIdLength error, got: {:?}", res), }; diff --git a/ironrdp/src/rdp/vc/tests.rs b/ironrdp/src/rdp/vc/tests.rs index 88b2967d..8db82e7a 100644 --- a/ironrdp/src/rdp/vc/tests.rs +++ b/ironrdp/src/rdp/vc/tests.rs @@ -3,8 +3,7 @@ use lazy_static::lazy_static; use super::*; const CHANNEL_CHUNK_LENGTH_DEFAULT: u32 = 1600; -const CHANNEL_PDU_HEADER_BUFFER: [u8; CHANNEL_PDU_HEADER_SIZE] = - [0x40, 0x06, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00]; +const CHANNEL_PDU_HEADER_BUFFER: [u8; CHANNEL_PDU_HEADER_SIZE] = [0x40, 0x06, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00]; lazy_static! { static ref CHANNEL_PDU_HEADER: ChannelPduHeader = ChannelPduHeader { diff --git a/ironrdp/src/utils.rs b/ironrdp/src/utils.rs index 8b53ffc1..f13d0688 100644 --- a/ironrdp/src/utils.rs +++ b/ironrdp/src/utils.rs @@ -1,10 +1,8 @@ pub mod rc4; pub mod rsa; -use std::{ - cmp::{max, min}, - io, ops, -}; +use std::cmp::{max, min}; +use std::{io, ops}; use bitvec::prelude::{BitSlice, Msb0}; use byteorder::{LittleEndian, ReadBytesExt, WriteBytesExt}; @@ -87,12 +85,8 @@ pub fn read_string( let result = match character_set { CharacterSet::Unicode => bytes_to_utf16_string(buffer.as_slice()), - CharacterSet::Ansi => String::from_utf8(buffer).map_err(|e| { - io::Error::new( - io::ErrorKind::InvalidData, - format!("the string is not utf8: {}", e), - ) - })?, + CharacterSet::Ansi => String::from_utf8(buffer) + .map_err(|e| io::Error::new(io::ErrorKind::InvalidData, format!("the string is not utf8: {}", e)))?, }; Ok(result.trim_end_matches('\0').into()) diff --git a/ironrdp/src/utils/rc4.rs b/ironrdp/src/utils/rc4.rs index 4afde063..70848f07 100644 --- a/ironrdp/src/utils/rc4.rs +++ b/ironrdp/src/utils/rc4.rs @@ -78,10 +78,7 @@ mod test { let key = "key".to_string(); let message = "message".to_string(); let expected = [0x66, 0x09, 0x47, 0x9E, 0x45, 0xE8, 0x1E]; - assert_eq!( - Rc4::new(key.as_bytes()).process(message.as_bytes())[..], - expected - ); + assert_eq!(Rc4::new(key.as_bytes()).process(message.as_bytes())[..], expected); } #[test] @@ -89,10 +86,7 @@ mod test { let key = "0".to_string(); let message = "message".to_string(); let expected = [0xE5, 0x1A, 0xD5, 0xF3, 0xA2, 0x1C, 0xB1]; - assert_eq!( - Rc4::new(key.as_bytes()).process(message.as_bytes())[..], - expected - ); + assert_eq!(Rc4::new(key.as_bytes()).process(message.as_bytes())[..], expected); } #[test] @@ -100,10 +94,7 @@ mod test { let key = "0".to_string(); let message = "0".to_string(); let expected = [0xb8]; - assert_eq!( - Rc4::new(key.as_bytes()).process(message.as_bytes())[..], - expected - ); + assert_eq!(Rc4::new(key.as_bytes()).process(message.as_bytes())[..], expected); } #[test] @@ -111,10 +102,7 @@ mod test { let key = "0".to_string(); let message = "a".to_string(); let expected = [0xe9]; - assert_eq!( - Rc4::new(key.as_bytes()).process(message.as_bytes())[..], - expected - ); + assert_eq!(Rc4::new(key.as_bytes()).process(message.as_bytes())[..], expected); } #[test] @@ -122,62 +110,43 @@ mod test { let key = "key".to_string(); let message = "".to_string(); let expected = []; - assert_eq!( - Rc4::new(key.as_bytes()).process(message.as_bytes())[..], - expected - ); + assert_eq!(Rc4::new(key.as_bytes()).process(message.as_bytes())[..], expected); } #[test] fn long_key() { - let key = "oigjwr984 874Y8 7W68 8&$y*%&78 4 8724JIOGROGN I4UI928 98FRUWNKRJB GRGg ergeowp" - .to_string(); + let key = "oigjwr984 874Y8 7W68 8&$y*%&78 4 8724JIOGROGN I4UI928 98FRUWNKRJB GRGg ergeowp".to_string(); let message = "message".to_string(); let expected = [0xBE, 0x74, 0xEB, 0x88, 0x64, 0x8E, 0x6A]; - assert_eq!( - Rc4::new(key.as_bytes()).process(message.as_bytes())[..], - expected - ); + assert_eq!(Rc4::new(key.as_bytes()).process(message.as_bytes())[..], expected); } #[test] fn long_message() { let key = "key".to_string(); - let message = - "oigjwr984 874Y8 7W68 8&$y*%&78 4 8724JIOGROGN I4UI928 98FRUWNKRJB GRGg ergeowp" - .to_string(); + let message = "oigjwr984 874Y8 7W68 8&$y*%&78 4 8724JIOGROGN I4UI928 98FRUWNKRJB GRGg ergeowp".to_string(); let expected = [ - 0x64, 0x05, 0x53, 0x87, 0x53, 0xFD, 0x42, 0x72, 0x7C, 0x6B, 0x30, 0x4C, 0x22, 0x04, - 0x2A, 0xDD, 0xB8, 0x23, 0xDB, 0x5E, 0x8B, 0xD9, 0xC5, 0xDB, 0x4F, 0xD9, 0x8D, 0x9B, - 0x0E, 0xD4, 0x5B, 0xAA, 0x34, 0x1D, 0x8E, 0xB9, 0x9B, 0xBB, 0xF0, 0xF5, 0x7C, 0x90, - 0xAD, 0xFE, 0x64, 0x33, 0x06, 0xCA, 0xCE, 0x68, 0x71, 0x1E, 0x5E, 0xE1, 0x29, 0xBD, - 0xCB, 0x29, 0x6A, 0x6D, 0xD4, 0xC9, 0x99, 0x59, 0xE9, 0x3B, 0xCC, 0x97, 0xEE, 0x32, - 0xB5, 0x98, 0x57, 0x1C, 0x13, 0x6D, 0x35, 0x0C, 0xDE, + 0x64, 0x05, 0x53, 0x87, 0x53, 0xFD, 0x42, 0x72, 0x7C, 0x6B, 0x30, 0x4C, 0x22, 0x04, 0x2A, 0xDD, 0xB8, 0x23, + 0xDB, 0x5E, 0x8B, 0xD9, 0xC5, 0xDB, 0x4F, 0xD9, 0x8D, 0x9B, 0x0E, 0xD4, 0x5B, 0xAA, 0x34, 0x1D, 0x8E, 0xB9, + 0x9B, 0xBB, 0xF0, 0xF5, 0x7C, 0x90, 0xAD, 0xFE, 0x64, 0x33, 0x06, 0xCA, 0xCE, 0x68, 0x71, 0x1E, 0x5E, 0xE1, + 0x29, 0xBD, 0xCB, 0x29, 0x6A, 0x6D, 0xD4, 0xC9, 0x99, 0x59, 0xE9, 0x3B, 0xCC, 0x97, 0xEE, 0x32, 0xB5, 0x98, + 0x57, 0x1C, 0x13, 0x6D, 0x35, 0x0C, 0xDE, ]; - assert_eq!( - Rc4::new(key.as_bytes()).process(message.as_bytes())[..], - expected[..] - ); + assert_eq!(Rc4::new(key.as_bytes()).process(message.as_bytes())[..], expected[..]); } #[test] fn long_key_message() { let key = "iogjerwo ghoreh trojtrj trjrohjigjw9iehgfwe 315 989&*$*%&* &*^*& q 4unkregeor 847847786 ^&**^*" .to_string(); - let message = - "oigjwr984 874Y8 7W68 8&$y*%&78 4 8724JIOGROGN I4UI928 98FRUWNKRJB GRGg ergeowp" - .to_string(); + let message = "oigjwr984 874Y8 7W68 8&$y*%&78 4 8724JIOGROGN I4UI928 98FRUWNKRJB GRGg ergeowp".to_string(); let expected = [ - 0x6B, 0x92, 0x32, 0x1B, 0xAD, 0x5A, 0x3A, 0x62, 0xE4, 0xC9, 0xD4, 0x2A, 0xAF, 0x34, - 0xF1, 0xA3, 0xA0, 0x23, 0x5B, 0x8D, 0x12, 0x7B, 0x4C, 0xE6, 0x23, 0xE6, 0x13, 0x81, - 0xF0, 0xDA, 0xE0, 0x02, 0x65, 0x71, 0x2B, 0x1D, 0x39, 0x17, 0x2A, 0x7E, 0x60, 0x68, - 0x26, 0x2B, 0xF0, 0x46, 0x03, 0xA0, 0x40, 0xC4, 0xBA, 0x78, 0xF9, 0x82, 0x35, 0x42, - 0xE2, 0x8A, 0x69, 0xEE, 0xE0, 0x29, 0x31, 0x66, 0xBE, 0xAF, 0x9E, 0x81, 0xD8, 0x58, - 0xCC, 0xA6, 0x4D, 0xBD, 0xEE, 0x31, 0x32, 0x2A, 0x2F, + 0x6B, 0x92, 0x32, 0x1B, 0xAD, 0x5A, 0x3A, 0x62, 0xE4, 0xC9, 0xD4, 0x2A, 0xAF, 0x34, 0xF1, 0xA3, 0xA0, 0x23, + 0x5B, 0x8D, 0x12, 0x7B, 0x4C, 0xE6, 0x23, 0xE6, 0x13, 0x81, 0xF0, 0xDA, 0xE0, 0x02, 0x65, 0x71, 0x2B, 0x1D, + 0x39, 0x17, 0x2A, 0x7E, 0x60, 0x68, 0x26, 0x2B, 0xF0, 0x46, 0x03, 0xA0, 0x40, 0xC4, 0xBA, 0x78, 0xF9, 0x82, + 0x35, 0x42, 0xE2, 0x8A, 0x69, 0xEE, 0xE0, 0x29, 0x31, 0x66, 0xBE, 0xAF, 0x9E, 0x81, 0xD8, 0x58, 0xCC, 0xA6, + 0x4D, 0xBD, 0xEE, 0x31, 0x32, 0x2A, 0x2F, ]; - assert_eq!( - Rc4::new(key.as_bytes()).process(message.as_bytes())[..], - expected[..] - ); + assert_eq!(Rc4::new(key.as_bytes()).process(message.as_bytes())[..], expected[..]); } } diff --git a/ironrdp/src/utils/rsa.rs b/ironrdp/src/utils/rsa.rs index 77ace89f..971d5b81 100644 --- a/ironrdp/src/utils/rsa.rs +++ b/ironrdp/src/utils/rsa.rs @@ -14,10 +14,7 @@ pub fn encrypt_with_public_key(message: &[u8], public_key_der: &[u8]) -> io::Res let der_object_sequence = der_object.as_sequence().map_err(|err| { io::Error::new( io::ErrorKind::InvalidData, - format!( - "Unable to extract a sequence from the der object. Error: {:?}", - err - ), + format!("Unable to extract a sequence from the der object. Error: {:?}", err), ) })?; @@ -31,20 +28,14 @@ pub fn encrypt_with_public_key(message: &[u8], public_key_der: &[u8]) -> io::Res let n = der_object_sequence[0].as_slice().map_err(|err| { io::Error::new( io::ErrorKind::InvalidData, - format!( - "Unable to extract a slice from public key modulus sequence: {:?}", - err - ), + format!("Unable to extract a slice from public key modulus sequence: {:?}", err), ) })?; let e = der_object_sequence[1].as_slice().map_err(|err| { io::Error::new( io::ErrorKind::InvalidData, - format!( - "Unable to extract a slice from public key exponent sequence: {:?}", - err - ), + format!("Unable to extract a slice from public key exponent sequence: {:?}", err), ) })?; diff --git a/ironrdp/src/x224.rs b/ironrdp/src/x224.rs index 8c7b65da..be3bd579 100644 --- a/ironrdp/src/x224.rs +++ b/ironrdp/src/x224.rs @@ -7,7 +7,8 @@ use byteorder::{BigEndian, ReadBytesExt, WriteBytesExt}; use num_derive::{FromPrimitive, ToPrimitive}; use num_traits::{FromPrimitive, ToPrimitive}; -use crate::{nego::NegotiationError, PduParsing}; +use crate::nego::NegotiationError; +use crate::PduParsing; pub const TPKT_HEADER_LENGTH: usize = 4; pub const TPDU_DATA_HEADER_LENGTH: usize = 3; @@ -41,10 +42,7 @@ impl TpktHeader { } } impl TpktHeader { - pub fn from_buffer_with_version( - mut stream: impl io::Read, - version: u8, - ) -> Result { + pub fn from_buffer_with_version(mut stream: impl io::Read, version: u8) -> Result { if version != TPKT_VERSION { return Err(NegotiationError::TpktVersionError); } @@ -88,19 +86,13 @@ impl Data { Self { data_length } } - pub fn from_buffer_with_version( - mut stream: impl io::Read, - version: u8, - ) -> Result { + pub fn from_buffer_with_version(mut stream: impl io::Read, version: u8) -> Result { let tpkt = TpktHeader::from_buffer_with_version(&mut stream, version)?; Self::from_buffer_with_tpkt_header(&mut stream, tpkt) } - fn from_buffer_with_tpkt_header( - mut stream: impl io::Read, - tpkt: TpktHeader, - ) -> Result { + fn from_buffer_with_tpkt_header(mut stream: impl io::Read, tpkt: TpktHeader) -> Result { read_and_check_tpdu_header(&mut stream, X224TPDUType::Data)?; let _eof = stream.read_u8()?; @@ -141,12 +133,8 @@ pub fn read_and_check_tpdu_header( ) -> Result<(), NegotiationError> { let _tpdu_length = usize::from(stream.read_u8()?); - let code = X224TPDUType::from_u8(stream.read_u8()?).ok_or_else(|| { - NegotiationError::IOError(io::Error::new( - io::ErrorKind::InvalidData, - "invalid tpdu code", - )) - })?; + let code = X224TPDUType::from_u8(stream.read_u8()?) + .ok_or_else(|| NegotiationError::IOError(io::Error::new(io::ErrorKind::InvalidData, "invalid tpdu code")))?; if code != required_code { return Err(NegotiationError::IOError(io::Error::new( diff --git a/ironrdp/src/x224/tests.rs b/ironrdp/src/x224/tests.rs index 6c28c250..97a11801 100644 --- a/ironrdp/src/x224/tests.rs +++ b/ironrdp/src/x224/tests.rs @@ -26,10 +26,7 @@ fn tpkt_header_is_read_correctly() { let correct_tpkt_header = TpktHeader::new(0x542); - assert_eq!( - correct_tpkt_header, - TpktHeader::from_buffer(stream.as_ref()).unwrap() - ); + assert_eq!(correct_tpkt_header, TpktHeader::from_buffer(stream.as_ref()).unwrap()); } #[test] diff --git a/ironrdp_client/src/active_session.rs b/ironrdp_client/src/active_session.rs index b7ba8ee3..6349f203 100644 --- a/ironrdp_client/src/active_session.rs +++ b/ironrdp_client/src/active_session.rs @@ -2,23 +2,18 @@ mod codecs; mod fast_path; mod x224; -use std::{ - io, - sync::{Arc, Mutex}, - thread, - time::Duration, -}; +use std::sync::{Arc, Mutex}; +use std::time::Duration; +use std::{io, thread}; -use ironrdp::{ - codecs::rfx::image_processing::PixelFormat, fast_path::FastPathError, PduParsing, RdpPdu, -}; +use ironrdp::codecs::rfx::image_processing::PixelFormat; +use ironrdp::fast_path::FastPathError; +use ironrdp::{PduParsing, RdpPdu}; use log::warn; -use crate::{ - connection_sequence::ConnectionSequenceResult, - transport::{Decoder, RdpTransport}, - utils, InputConfig, RdpError, -}; +use crate::connection_sequence::ConnectionSequenceResult; +use crate::transport::{Decoder, RdpTransport}; +use crate::{utils, InputConfig, RdpError}; const DESTINATION_PIXEL_FORMAT: PixelFormat = PixelFormat::RgbA32; diff --git a/ironrdp_client/src/active_session/codecs/rfx.rs b/ironrdp_client/src/active_session/codecs/rfx.rs index d4db662b..73169cb2 100644 --- a/ironrdp_client/src/active_session/codecs/rfx.rs +++ b/ironrdp_client/src/active_session/codecs/rfx.rs @@ -1,27 +1,22 @@ #[cfg(test)] mod tests; -use std::{ - cmp::min, - sync::{Arc, Mutex}, -}; +use std::cmp::min; +use std::sync::{Arc, Mutex}; -use ironrdp::{ - codecs::rfx::{ - self, color_conversion, - color_conversion::YCbCrBuffer, - dwt, - image_processing::{ImageRegion, ImageRegionMut, PixelFormat}, - quantization, - rectangles_processing::Region, - rlgr, subband_reconstruction, EntropyAlgorithm, Headers, Quant, RfxRectangle, Tile, - }, - PduBufferParsing, Rectangle, +use ironrdp::codecs::rfx::color_conversion::YCbCrBuffer; +use ironrdp::codecs::rfx::image_processing::{ImageRegion, ImageRegionMut, PixelFormat}; +use ironrdp::codecs::rfx::rectangles_processing::Region; +use ironrdp::codecs::rfx::{ + self, color_conversion, dwt, quantization, rlgr, subband_reconstruction, EntropyAlgorithm, Headers, Quant, + RfxRectangle, Tile, }; +use ironrdp::{PduBufferParsing, Rectangle}; use lazy_static::lazy_static; use log::debug; -use crate::{active_session::DecodedImage, RdpError}; +use crate::active_session::DecodedImage; +use crate::RdpError; const TILE_SIZE: u16 = 64; const SOURCE_PIXEL_FORMAT: PixelFormat = PixelFormat::BgrX32; @@ -134,16 +129,12 @@ impl DecodingContext { debug!("Channels: {:?}", self.channels); debug!("Region: {:?}", region); - let clipping_rectangles = - clipping_rectangles(region.rectangles.as_slice(), destination, width, height); + let clipping_rectangles = clipping_rectangles(region.rectangles.as_slice(), destination, width, height); debug!("Clipping rectangles: {:?}", clipping_rectangles); let clipping_rectangles_ref = &clipping_rectangles; - for (update_rectangle, tile_data) in - tiles_to_rectangles(tile_set.tiles.as_slice(), destination).zip(map_tiles_data( - tile_set.tiles.as_slice(), - tile_set.quants.as_slice(), - )) + for (update_rectangle, tile_data) in tiles_to_rectangles(tile_set.tiles.as_slice(), destination) + .zip(map_tiles_data(tile_set.tiles.as_slice(), tile_set.quants.as_slice())) { decode_tile( &tile_data, @@ -205,10 +196,7 @@ fn process_decoded_tile( data: output.get_mut(), }; debug!("Source image region: {:?}", source_image_region.region); - debug!( - "Destination image region: {:?}", - destination_image_region.region - ); + debug!("Destination image region: {:?}", destination_image_region.region); source_image_region.copy_to(&mut destination_image_region)?; } @@ -240,19 +228,8 @@ fn decode_tile( ycbcr_temp: &mut [Vec], temp: &mut [i16], ) -> Result<(), RdpError> { - for ((quant, data), ycbcr_buffer) in tile - .quants - .iter() - .zip(tile.data.iter()) - .zip(ycbcr_temp.iter_mut()) - { - decode_component( - quant, - entropy_algorithm, - data, - ycbcr_buffer.as_mut_slice(), - temp, - )?; + for ((quant, data), ycbcr_buffer) in tile.quants.iter().zip(tile.data.iter()).zip(ycbcr_temp.iter_mut()) { + decode_component(quant, entropy_algorithm, data, ycbcr_buffer.as_mut_slice(), temp)?; } let ycbcr_buffer = YCbCrBuffer { @@ -281,12 +258,7 @@ fn decode_component( Ok(()) } -fn clipping_rectangles( - rectangles: &[RfxRectangle], - destination: &Rectangle, - width: u16, - height: u16, -) -> Region { +fn clipping_rectangles(rectangles: &[RfxRectangle], destination: &Rectangle, width: u16, height: u16) -> Region { let mut clipping_rectangles = Region::new(); rectangles @@ -302,10 +274,7 @@ fn clipping_rectangles( clipping_rectangles } -fn tiles_to_rectangles<'a>( - tiles: &'a [Tile<'_>], - destination: &'a Rectangle, -) -> impl Iterator + 'a { +fn tiles_to_rectangles<'a>(tiles: &'a [Tile<'_>], destination: &'a Rectangle) -> impl Iterator + 'a { tiles.iter().map(move |t| Rectangle { left: destination.left + t.x * TILE_SIZE, top: destination.top + t.y * TILE_SIZE, diff --git a/ironrdp_client/src/active_session/codecs/rfx/tests.rs b/ironrdp_client/src/active_session/codecs/rfx/tests.rs index 2f65a35f..19baa756 100644 --- a/ironrdp_client/src/active_session/codecs/rfx/tests.rs +++ b/ironrdp_client/src/active_session/codecs/rfx/tests.rs @@ -24,1230 +24,1037 @@ fn decode_decodes_valid_sequence_of_messages() { let mut handler = DecodingContext::new(PixelFormat::BgrX32); - handler - .decode(&destination, &mut data, image.clone()) - .unwrap(); + handler.decode(&destination, &mut data, image.clone()).unwrap(); assert_eq!(expected, image.lock().unwrap().data.as_slice()); } const ENCODED_MESSAGES: [u8; 2970] = [ /* HEADERS as in 4.2.2 */ - 0xc0, 0xcc, 0x0c, 0x00, 0x00, 0x00, 0xca, 0xac, 0xcc, 0xca, 0x00, 0x01, 0xc3, 0xcc, 0x0d, 0x00, - 0x00, 0x00, 0x01, 0xff, 0x00, 0x40, 0x00, 0x28, 0xa8, 0xc1, 0xcc, 0x0a, 0x00, 0x00, 0x00, 0x01, - 0x01, 0x00, 0x01, 0xc2, 0xcc, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x40, 0x00, 0x40, 0x00, - /* FRAME_BEGIN as in 4.2.3 */ + 0xc0, 0xcc, 0x0c, 0x00, 0x00, 0x00, 0xca, 0xac, 0xcc, 0xca, 0x00, 0x01, 0xc3, 0xcc, 0x0d, 0x00, 0x00, 0x00, 0x01, + 0xff, 0x00, 0x40, 0x00, 0x28, 0xa8, 0xc1, 0xcc, 0x0a, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0xc2, 0xcc, 0x0c, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x40, 0x00, 0x40, 0x00, /* FRAME_BEGIN as in 4.2.3 */ 0xc4, 0xcc, 0x0e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, /* REGION as in 4.2.3 */ - 0xc6, 0xcc, 0x17, 0x00, 0x00, 0x00, 0x01, 0x00, 0xcd, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, - 0x00, 0x40, 0x00, 0xc1, 0xca, 0x01, 0x00, /* TILESET as in 4.2.4.1 */ - 0xc7, 0xcc, 0x3e, 0x0b, 0x00, 0x00, 0x01, 0x00, 0xc2, 0xca, 0x00, 0x00, 0x51, 0x50, 0x01, 0x40, - 0x01, 0x00, 0x23, 0x0b, 0x00, 0x00, 0x66, 0x66, 0x77, 0x88, 0x98, 0xc3, 0xca, 0x23, 0x0b, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xae, 0x03, 0xcf, 0x03, 0x93, 0x03, 0xc0, 0x01, - 0x01, 0x15, 0x48, 0x99, 0xc7, 0x41, 0xa1, 0x12, 0x68, 0x11, 0xdc, 0x22, 0x29, 0x74, 0xef, 0xfd, - 0x20, 0x92, 0xe0, 0x4e, 0xa8, 0x69, 0x3b, 0xfd, 0x41, 0x83, 0xbf, 0x28, 0x53, 0x0c, 0x1f, 0xe2, - 0x54, 0x0c, 0x77, 0x7c, 0xa3, 0x05, 0x7c, 0x30, 0xd0, 0x9c, 0xe8, 0x09, 0x39, 0x1a, 0x5d, 0xff, - 0xe2, 0x01, 0x22, 0x13, 0x80, 0x90, 0x87, 0xd2, 0x9f, 0xfd, 0xfd, 0x50, 0x09, 0x0d, 0x24, 0xa0, - 0x8f, 0xab, 0xfe, 0x3c, 0x04, 0x84, 0xc6, 0x9c, 0xde, 0xf8, 0x80, 0xc3, 0x22, 0x50, 0xaf, 0x4c, - 0x2a, 0x7f, 0xfe, 0xe0, 0x5c, 0xa9, 0x52, 0x8a, 0x06, 0x7d, 0x3d, 0x09, 0x03, 0x65, 0xa3, 0xaf, - 0xd2, 0x61, 0x1f, 0x72, 0x04, 0x50, 0x8d, 0x3e, 0x16, 0x4a, 0x3f, 0xff, 0xfd, 0x41, 0x42, 0x87, - 0x24, 0x37, 0x06, 0x17, 0x2e, 0x56, 0x05, 0x9c, 0x1c, 0xb3, 0x84, 0x6a, 0xff, 0xfb, 0x43, 0x8b, - 0xa3, 0x7a, 0x32, 0x43, 0x28, 0xe1, 0x1f, 0x50, 0x54, 0xfc, 0xca, 0xa5, 0xdf, 0xff, 0x08, 0x04, - 0x48, 0x15, 0x61, 0xd9, 0x76, 0x43, 0xf8, 0x2a, 0x07, 0xe9, 0x65, 0xf7, 0xc6, 0x89, 0x2d, 0x40, - 0xa1, 0xc3, 0x35, 0x8d, 0xf5, 0xed, 0xf5, 0x91, 0xae, 0x2f, 0xcc, 0x01, 0xce, 0x03, 0x48, 0xc0, - 0x8d, 0x63, 0xf4, 0xfd, 0x50, 0x20, 0x2d, 0x0c, 0x9b, 0xb0, 0x8d, 0x13, 0xc0, 0x8a, 0x09, 0x52, - 0x1b, 0x02, 0x6e, 0x42, 0x3b, 0xd0, 0x13, 0x4e, 0x84, 0x01, 0x26, 0x88, 0x6a, 0x04, 0x84, 0x34, - 0x2a, 0xa5, 0x00, 0xba, 0x54, 0x48, 0x58, 0xea, 0x54, 0x02, 0xb4, 0x1d, 0xa7, 0xfa, 0x47, 0x82, - 0xec, 0x7a, 0x77, 0xfd, 0x00, 0x92, 0x66, 0x62, 0x04, 0xa6, 0x9b, 0xff, 0xf6, 0x80, 0xc0, 0x69, - 0x01, 0xc2, 0x3e, 0x90, 0x14, 0x20, 0x2f, 0xfc, 0x40, 0x96, 0x59, 0x58, 0x0c, 0xb1, 0x13, 0x68, - 0x20, 0x2e, 0xb5, 0xf5, 0xdf, 0xff, 0xf8, 0xfc, 0x56, 0x88, 0x60, 0x24, 0x53, 0xb5, 0x41, 0x46, - 0x5f, 0xf8, 0xf1, 0x7e, 0xde, 0x4a, 0x08, 0x97, 0xe0, 0x55, 0x03, 0x8f, 0xe5, 0x75, 0x61, 0x03, - 0xf2, 0xe1, 0x90, 0x01, 0xa2, 0x8e, 0x88, 0x04, 0x98, 0x05, 0x93, 0x6b, 0xff, 0xea, 0xc0, 0x60, - 0xa1, 0x88, 0x04, 0x49, 0xbf, 0xf7, 0xff, 0x8c, 0xb4, 0x59, 0x90, 0x80, 0x30, 0x64, 0x53, 0xff, - 0xf5, 0xc4, 0x48, 0xda, 0xda, 0xcb, 0x80, 0x38, 0x61, 0x57, 0xb2, 0xaf, 0x00, 0xe8, 0x7b, 0x46, - 0xe6, 0xd8, 0x02, 0x03, 0x8a, 0x06, 0x18, 0x14, 0x32, 0x83, 0xd0, 0x8a, 0xee, 0xbc, 0x81, 0xb4, - 0x28, 0xc4, 0x7f, 0xf9, 0xa1, 0x69, 0x00, 0x91, 0xc5, 0x51, 0xff, 0xfe, 0x3f, 0xe9, 0xf1, 0x70, - 0x30, 0x24, 0x10, 0xa7, 0xcb, 0x1f, 0x8a, 0x24, 0x93, 0xed, 0x83, 0x00, 0x36, 0x20, 0xd1, 0x50, - 0xe7, 0xd8, 0xad, 0x58, 0x20, 0x09, 0x22, 0x80, 0xd0, 0xca, 0x5d, 0x1a, 0xd7, 0xf1, 0x60, 0x75, - 0x2a, 0xf2, 0xd7, 0xf8, 0xc0, 0x32, 0x45, 0x86, 0x00, 0x43, 0x01, 0xfe, 0x80, 0xf7, 0x42, 0x81, - 0x74, 0x84, 0x4c, 0xa1, 0x60, 0x4c, 0xcb, 0x14, 0x58, 0x01, 0x4d, 0x18, 0xa1, 0xaa, 0x47, 0x0e, - 0x11, 0x1a, 0x40, 0x7d, 0x41, 0x02, 0xe3, 0x30, 0xcd, 0x33, 0x81, 0x34, 0x06, 0x46, 0x83, 0xa2, - 0x47, 0x1c, 0x04, 0xaa, 0x20, 0x12, 0xa2, 0x8b, 0x81, 0xc4, 0x9c, 0xa0, 0x2e, 0x06, 0x32, 0xf8, - 0x86, 0x85, 0x01, 0xe8, 0x70, 0xf9, 0x46, 0x09, 0x6a, 0xbf, 0xe0, 0xf5, 0xa4, 0xc8, 0x78, 0xe7, - 0xd2, 0x97, 0x0b, 0xbc, 0x3c, 0x97, 0xff, 0xd5, 0x40, 0x94, 0xb2, 0xc1, 0x18, 0x18, 0x11, 0x1f, - 0x43, 0xc1, 0x18, 0xc3, 0x83, 0x7f, 0x9a, 0x31, 0xc4, 0x8e, 0x70, 0x56, 0xda, 0xf6, 0x17, 0xde, - 0xd1, 0x02, 0x0d, 0x42, 0x21, 0x13, 0xdc, 0x3a, 0x3c, 0x40, 0x9e, 0xf4, 0x01, 0x43, 0xea, 0x0c, - 0x46, 0x73, 0xa2, 0x7b, 0x0c, 0x80, 0xff, 0xe4, 0xad, 0x2e, 0x09, 0xb4, 0x63, 0xb0, 0x8c, 0x54, - 0x59, 0xfa, 0xac, 0x76, 0x36, 0x10, 0x05, 0xf0, 0x98, 0x88, 0x83, 0x42, 0x00, 0x20, 0x71, 0xcc, - 0xc1, 0xa9, 0x97, 0x3e, 0x5a, 0x0d, 0x04, 0x50, 0x92, 0x23, 0x20, 0x0d, 0x0a, 0x1c, 0x57, 0xd7, - 0xff, 0x10, 0xf2, 0x03, 0x0f, 0x58, 0x1b, 0xa5, 0x11, 0xf8, 0xf1, 0xb4, 0x12, 0xdb, 0x1a, 0x48, - 0x56, 0x1f, 0xe3, 0xc7, 0x50, 0xe9, 0x16, 0xb4, 0xbc, 0xb0, 0x40, 0x93, 0xea, 0xb5, 0x5b, 0x2f, - 0xfc, 0x50, 0x0a, 0x6f, 0xcc, 0x25, 0xe0, 0x06, 0xab, 0x5f, 0x24, 0xfe, 0x8b, 0xcb, 0x42, 0x43, - 0x7e, 0x69, 0x02, 0x25, 0xc7, 0x38, 0x00, 0x6e, 0xe5, 0x80, 0xa8, 0xa4, 0x30, 0x44, 0x15, 0x8f, - 0xe9, 0x0c, 0xd3, 0xa6, 0xc2, 0x14, 0x34, 0x4a, 0xfe, 0x03, 0x7f, 0x06, 0xa5, 0x91, 0x02, 0x54, - 0xf1, 0xa1, 0xa1, 0x53, 0xbf, 0x11, 0xf2, 0x8f, 0x83, 0x67, 0x80, 0x09, 0x08, 0x12, 0x3f, 0xfd, - 0x44, 0x91, 0xc2, 0x83, 0x30, 0x50, 0x07, 0x02, 0x82, 0x4d, 0x31, 0x34, 0x06, 0x41, 0x79, 0x6f, - 0xf0, 0xcc, 0x03, 0x79, 0x00, 0x2c, 0x05, 0x24, 0xec, 0x8d, 0x29, 0x15, 0xaf, 0x44, 0xc8, 0xeb, - 0x4f, 0xe1, 0xfd, 0xf1, 0x41, 0x48, 0x81, 0x08, 0xaf, 0xfe, 0x51, 0x48, 0xce, 0xe7, 0xf9, 0xb6, - 0x0a, 0x30, 0x83, 0x11, 0xf0, 0x0c, 0x3b, 0xd2, 0xa6, 0x24, 0x24, 0xef, 0x25, 0xfa, 0x5a, 0x3e, - 0x92, 0x3e, 0x79, 0x0e, 0x35, 0x61, 0xc8, 0xaa, 0x1c, 0x2e, 0x9a, 0x27, 0x7f, 0xff, 0xf0, 0x7d, - 0x30, 0x5b, 0xbc, 0x91, 0xff, 0xfe, 0x43, 0x24, 0x28, 0x66, 0xa7, 0x70, 0x99, 0x28, 0x6e, 0x2b, - 0x18, 0x2b, 0xd4, 0xa1, 0x77, 0x3b, 0x96, 0x9f, 0xf7, 0xeb, 0xbe, 0x1f, 0x04, 0x34, 0x75, 0x84, - 0x31, 0x42, 0x4c, 0x65, 0xaa, 0x09, 0x50, 0xa0, 0xc4, 0x51, 0x31, 0xd3, 0x26, 0x3a, 0x1b, 0xf4, - 0x6e, 0x4a, 0x4e, 0x17, 0x25, 0x84, 0x78, 0x7d, 0x2c, 0x3f, 0x46, 0x18, 0xca, 0x5f, 0xf9, 0xe5, - 0x38, 0x2f, 0xd8, 0x71, 0x94, 0x94, 0xe2, 0xcc, 0xa3, 0x15, 0xb0, 0xda, 0xa9, 0xcb, 0x58, 0xe4, - 0x18, 0x77, 0x93, 0x8a, 0x51, 0xc6, 0x23, 0xc4, 0x4e, 0x6d, 0xd9, 0x14, 0x1e, 0x9b, 0x8d, 0xbc, - 0xcb, 0x9d, 0xc4, 0x18, 0x05, 0xf5, 0xa9, 0x29, 0xf8, 0x6d, 0x29, 0x38, 0xc7, 0x44, 0xe5, 0x3a, - 0xcd, 0xba, 0x61, 0x98, 0x4a, 0x57, 0x02, 0x96, 0x42, 0x02, 0xd9, 0x37, 0x11, 0xde, 0x2d, 0xd4, - 0x3f, 0xfe, 0x61, 0xe7, 0x33, 0xd7, 0x89, 0x4a, 0xdd, 0xb0, 0x34, 0x47, 0xf4, 0xdc, 0xad, 0xaa, - 0xc9, 0x9d, 0x7e, 0x6d, 0x4b, 0xcc, 0xdc, 0x17, 0x89, 0x57, 0xfd, 0xbb, 0x37, 0x75, 0x47, 0x5a, - 0xec, 0x2c, 0x6e, 0x3c, 0x15, 0x92, 0x54, 0x64, 0x2c, 0xab, 0x9e, 0xab, 0x2b, 0xdd, 0x3c, 0x66, - 0xa0, 0x8f, 0x47, 0x5e, 0x93, 0x1a, 0x37, 0x16, 0xf4, 0x89, 0x23, 0x00, 0x00, 0xb0, 0x33, 0x56, - 0xfa, 0x14, 0x1e, 0xff, 0x48, 0x7a, 0x7e, 0x0f, 0x10, 0x1f, 0xf4, 0x91, 0xc8, 0x10, 0x56, 0x84, - 0xff, 0x08, 0xec, 0xb4, 0xac, 0x0e, 0x0f, 0xff, 0xad, 0xc5, 0xe0, 0x1a, 0x2f, 0x82, 0x04, 0x9f, - 0x91, 0xc2, 0x0e, 0xfe, 0x48, 0x36, 0x79, 0x01, 0x42, 0x14, 0xff, 0xfe, 0x30, 0xf0, 0x08, 0x18, - 0xf1, 0x81, 0x45, 0x9a, 0x60, 0xc1, 0x79, 0xf0, 0x14, 0x12, 0x10, 0xce, 0xea, 0x31, 0x5a, 0xff, - 0xfc, 0x20, 0x13, 0x82, 0x2f, 0xc9, 0x02, 0x1f, 0x81, 0xcb, 0x00, 0xe1, 0x10, 0xd2, 0xb4, 0xbe, - 0x87, 0xff, 0xb0, 0x1e, 0x27, 0x81, 0xb7, 0x04, 0x06, 0x3c, 0xc2, 0x04, 0xf6, 0x06, 0x0e, 0x28, - 0xbc, 0x40, 0xbf, 0x12, 0x1e, 0x86, 0xd4, 0x6a, 0x7f, 0x18, 0x1b, 0x96, 0x85, 0x4c, 0x16, 0x80, - 0xdf, 0x2c, 0xa5, 0x8d, 0x86, 0xa3, 0x4a, 0x8a, 0xb4, 0x1b, 0xa1, 0x38, 0xa9, 0xd5, 0xff, 0xff, - 0xea, 0x06, 0x20, 0xd2, 0x95, 0x1e, 0xf4, 0x2f, 0xb2, 0x12, 0x0e, 0x61, 0x78, 0x4a, 0x17, 0x52, - 0x5d, 0xe4, 0x25, 0x1f, 0xfe, 0xc0, 0xb3, 0x1f, 0xff, 0xff, 0xec, 0x02, 0x82, 0x80, 0x90, 0x41, - 0x88, 0xde, 0x48, 0x2c, 0x42, 0x52, 0x0b, 0x2f, 0x43, 0x7e, 0x50, 0x78, 0xf2, 0x67, 0x78, 0x41, - 0x34, 0x3d, 0xc8, 0x0f, 0x67, 0xa1, 0xeb, 0x21, 0xfe, 0xc0, 0x1f, 0x22, 0x60, 0x41, 0x6c, 0x00, - 0x92, 0x4b, 0x60, 0x10, 0xd0, 0x0d, 0x01, 0x35, 0x05, 0x0e, 0x87, 0xa2, 0xa0, 0x5d, 0x1f, 0xa3, - 0xaf, 0x7f, 0xf1, 0xbe, 0x8f, 0xcd, 0xa5, 0x00, 0x1c, 0x10, 0x40, 0x15, 0x76, 0x81, 0x05, 0xef, - 0xee, 0x00, 0x60, 0x84, 0x00, 0x99, 0x40, 0x4a, 0x82, 0x17, 0xe9, 0xfc, 0xc4, 0x7f, 0xff, 0xfd, - 0x04, 0x80, 0x06, 0x06, 0xdc, 0xaf, 0xa7, 0x7e, 0x94, 0x75, 0x74, 0x01, 0x00, 0xe0, 0x91, 0x00, - 0x85, 0x7f, 0x8e, 0xd6, 0x0b, 0x20, 0x21, 0x30, 0xca, 0x62, 0x8e, 0x07, 0x04, 0xe9, 0x45, 0x40, - 0x5f, 0x47, 0x4a, 0x30, 0x15, 0x41, 0xcb, 0xdf, 0xff, 0xfc, 0xbf, 0xc3, 0xb4, 0x46, 0x6a, 0x01, - 0x40, 0xd0, 0xa7, 0x34, 0x18, 0x24, 0x1c, 0x2a, 0x45, 0xfe, 0xa8, 0x05, 0x08, 0x61, 0xfd, 0xa8, - 0x80, 0x71, 0x01, 0x25, 0x9c, 0xc1, 0x47, 0x17, 0x37, 0x02, 0x7a, 0x15, 0xff, 0xf3, 0x01, 0x45, - 0x7f, 0xd6, 0x80, 0x60, 0x83, 0x67, 0xf8, 0x9d, 0x2f, 0xf4, 0xdd, 0x8c, 0x30, 0x01, 0x51, 0x42, - 0xbc, 0x43, 0x7a, 0x6b, 0x9f, 0x84, 0x1e, 0x00, 0x48, 0xc1, 0xe0, 0xb7, 0xe0, 0x7e, 0x99, 0xf2, - 0x4a, 0xe9, 0x40, 0x02, 0x81, 0xc3, 0x00, 0x24, 0x3a, 0xc5, 0x52, 0x0f, 0x91, 0xc8, 0x68, 0x25, - 0x40, 0x99, 0xa4, 0x25, 0x1a, 0x04, 0xd0, 0xa2, 0x91, 0xdd, 0xeb, 0x93, 0x00, 0x21, 0x49, 0x24, - 0x8b, 0x40, 0x75, 0x38, 0x14, 0xa1, 0xfd, 0x3f, 0x88, 0x25, 0xbf, 0x32, 0x00, 0xe3, 0x19, 0xfc, - 0xb9, 0xf8, 0x6f, 0x81, 0xc0, 0x01, 0xb3, 0x93, 0x20, 0x09, 0x08, 0x25, 0x84, 0xe1, 0x34, 0xd4, - 0x1b, 0x48, 0x88, 0x11, 0xa0, 0x15, 0x59, 0xd7, 0x07, 0x81, 0x81, 0x3b, 0xa1, 0x40, 0x2e, 0x2f, - 0x48, 0x70, 0x09, 0xc4, 0x76, 0x49, 0x0f, 0x2e, 0x50, 0x2e, 0x46, 0x19, 0xa4, 0x16, 0xa2, 0x1b, - 0x84, 0xa2, 0x89, 0x58, 0xfc, 0x4f, 0x3f, 0x40, 0x90, 0x4c, 0xa3, 0x01, 0x32, 0x09, 0x02, 0x80, - 0x9c, 0x91, 0x13, 0x2c, 0xba, 0xde, 0x5d, 0x99, 0xf2, 0xff, 0xff, 0x3d, 0x5a, 0x1f, 0xa9, 0x02, - 0x90, 0x8f, 0xf3, 0x08, 0xbd, 0x01, 0xf8, 0xd0, 0x2a, 0x95, 0x41, 0x0c, 0x40, 0x0a, 0x20, 0xc4, - 0xd4, 0xcc, 0x6b, 0x0f, 0xf0, 0x80, 0xb1, 0x5d, 0x28, 0x3d, 0x08, 0xc2, 0xf8, 0x31, 0x02, 0x49, - 0x88, 0x14, 0x28, 0xed, 0xe8, 0x86, 0x3b, 0x00, 0x9f, 0x95, 0x06, 0x37, 0x15, 0xa4, 0x59, 0xc8, - 0x80, 0xb6, 0x10, 0xf0, 0xe5, 0xb8, 0x18, 0x00, 0x56, 0x1c, 0xff, 0x95, 0x21, 0x0e, 0x7f, 0x2b, - 0xc5, 0x08, 0x59, 0x10, 0xe1, 0x46, 0x31, 0x8d, 0xec, 0xe0, 0xa1, 0x99, 0xbb, 0x21, 0xff, 0xfe, - 0x30, 0x10, 0xd0, 0x05, 0xe3, 0x08, 0x50, 0xfc, 0xf3, 0x0e, 0x00, 0x8d, 0x68, 0x8e, 0x07, 0xa6, - 0x80, 0x34, 0x42, 0xed, 0x1f, 0x88, 0x00, 0xf0, 0x8a, 0x21, 0xae, 0xf7, 0xfb, 0x80, 0x28, 0x86, - 0x0f, 0xff, 0xff, 0x82, 0xea, 0x47, 0x95, 0x91, 0xe0, 0x04, 0x01, 0x44, 0x0c, 0x29, 0xff, 0x0e, - 0x33, 0xe8, 0xc0, 0x54, 0x04, 0x23, 0xfc, 0x81, 0x5b, 0xf0, 0x3c, 0x07, 0x10, 0x70, 0x30, 0xd8, - 0x21, 0x6f, 0xef, 0xde, 0x46, 0x09, 0x43, 0xfa, 0x5f, 0xff, 0x0d, 0x72, 0x30, 0xdd, 0x00, 0xdb, - 0xe4, 0x48, 0x24, 0x97, 0x08, 0x46, 0xb1, 0x49, 0xc4, 0x4d, 0x80, 0x12, 0x60, 0xff, 0xa4, 0xa6, - 0xff, 0xf6, 0x8c, 0x00, 0x40, 0x05, 0x02, 0xb4, 0x0f, 0xf0, 0x3e, 0xfc, 0x84, 0x38, 0x81, 0x94, - 0x8b, 0xfe, 0x49, 0xef, 0xc0, 0x10, 0x49, 0x88, 0x28, 0xa2, 0x1c, 0x2a, 0x8b, 0x64, 0xd4, 0x86, - 0xd7, 0xff, 0xff, 0xff, 0xeb, 0x91, 0x6b, 0x11, 0x10, 0x00, 0x69, 0x4c, 0xbf, 0xb4, 0x1c, 0xd8, - 0x00, 0x07, 0x16, 0x80, 0x60, 0x0a, 0x1c, 0x82, 0x42, 0x27, 0x82, 0x43, 0xc9, 0x0a, 0x64, 0x20, - 0x5a, 0x5f, 0x4e, 0xbf, 0x8c, 0x38, 0x82, 0x36, 0x02, 0x07, 0x72, 0x79, 0x07, 0x23, 0xb4, 0xbb, - 0x57, 0x5f, 0xe8, 0x04, 0xdd, 0x39, 0xe9, 0x07, 0x95, 0xbe, 0x04, 0x2b, 0xdd, 0x8e, 0x22, 0xdc, - 0x14, 0x2c, 0x61, 0xa3, 0xa9, 0xcd, 0x4f, 0x82, 0x5d, 0xa0, 0x44, 0xdf, 0xf4, 0x96, 0xff, 0xf5, - 0x2b, 0xff, 0xfe, 0x01, 0x19, 0xd2, 0xa2, 0x9e, 0x43, 0xa5, 0x7f, 0xf0, 0x4c, 0x4c, 0x2b, 0x3c, - 0x33, 0xe2, 0x55, 0xff, 0x04, 0x06, 0x29, 0x2c, 0x0d, 0x22, 0x5d, 0x7c, 0x93, 0xba, 0x18, 0xaf, - 0xf9, 0x32, 0xa6, 0xc3, 0x99, 0x46, 0x79, 0xe3, 0x06, 0xa6, 0x38, 0x8b, 0x92, 0x22, 0x4b, 0xdb, - 0x1b, 0x36, 0x20, 0xb0, 0x6c, 0x20, 0xce, 0x37, 0x42, 0xe1, 0x66, 0xd4, 0x49, 0x34, 0x42, 0x8b, - 0xfa, 0x9c, 0x12, 0x99, 0xdc, 0x06, 0x87, 0xfa, 0x46, 0xf8, 0x2f, 0x04, 0xa9, 0xd8, 0x82, 0x07, - 0xa6, 0x30, 0x0f, 0xc0, 0xdf, 0x35, 0xe8, 0x90, 0xf0, 0xff, 0xff, 0xa8, 0xe0, 0xd7, 0x02, 0x60, - 0x1a, 0xc3, 0x20, 0x28, 0xa2, 0x31, 0x29, 0x3c, 0xeb, 0x04, 0xa5, 0xdd, 0x48, 0x0e, 0x82, 0xa4, - 0xb6, 0x56, 0x22, 0x06, 0x57, 0xe0, 0xda, 0x10, 0x27, 0x31, 0x0e, 0x11, 0x77, 0xfe, 0x02, 0x60, - 0x16, 0x48, 0x81, 0x8c, 0x0d, 0x05, 0x17, 0x7f, 0xcb, 0xbb, 0x7e, 0x25, 0x2a, 0x41, 0xfd, 0x8a, - 0x7f, 0xc9, 0x36, 0x7c, 0xe0, 0x98, 0x7e, 0x92, 0xef, 0x7e, 0x06, 0x03, 0x13, 0x3e, 0x20, 0x3a, - 0xbf, 0x4c, 0xc3, 0x0f, 0x2e, 0x80, 0x74, 0xbf, 0x39, 0x3c, 0xf0, 0xa6, 0xb2, 0xe9, 0x3f, 0x41, - 0x55, 0x1f, 0x2c, 0xf5, 0xd2, 0x7e, 0x8c, 0xae, 0x4e, 0xaa, 0x61, 0x3c, 0xbc, 0x3f, 0xc4, 0xc7, - 0x36, 0xdc, 0x23, 0xc8, 0xb8, 0x52, 0xe2, 0x8a, 0x80, 0x18, 0x00, 0x00, 0xb2, 0x46, 0xa2, 0x56, - 0x0d, 0x12, 0x94, 0xaa, 0xbd, 0x01, 0x07, 0xff, 0xfa, 0x34, 0x0c, 0x5f, 0xf8, 0x0c, 0x12, 0x50, - 0xaf, 0xd6, 0xd1, 0x89, 0x40, 0xa4, 0xff, 0xe0, 0xce, 0xc4, 0x49, 0x25, 0x9d, 0xc1, 0xff, 0x7e, - 0x60, 0x24, 0x5d, 0xcc, 0x10, 0xc0, 0xbe, 0x5a, 0x12, 0xd3, 0xc3, 0xfe, 0x2d, 0x40, 0x7c, 0x28, - 0x9e, 0x71, 0x01, 0xd2, 0x6e, 0x86, 0x0b, 0xc8, 0xf2, 0x9b, 0x45, 0x08, 0x4c, 0x04, 0x52, 0x7e, - 0xf2, 0x7e, 0xd9, 0xcc, 0x0b, 0x1c, 0x20, 0x80, 0xae, 0xaf, 0xfe, 0xb0, 0x6d, 0x23, 0xf2, 0x41, - 0xe3, 0x2e, 0x20, 0x11, 0x4b, 0x74, 0x89, 0xdd, 0xff, 0xa8, 0x38, 0xa3, 0x95, 0x82, 0x15, 0xf0, - 0xd0, 0xd5, 0xf1, 0x92, 0x8e, 0xee, 0xc0, 0x26, 0x81, 0xe9, 0x47, 0xff, 0xee, 0x0d, 0x20, 0x34, - 0x31, 0x3a, 0xef, 0x40, 0xb2, 0x29, 0x47, 0x19, 0x7f, 0x04, 0x27, 0xf1, 0x90, 0x85, 0x09, 0x86, - 0x7d, 0x42, 0xe2, 0x54, 0x5d, 0x5f, 0xe8, 0x0e, 0xd0, 0x2c, 0xaa, 0x16, 0xbf, 0x04, 0xa7, 0xf8, - 0xa2, 0x46, 0x0b, 0x08, 0x7a, 0x79, 0xe9, 0x28, 0x62, 0x7c, 0x33, 0xf4, 0x0b, 0x14, 0x82, 0xfa, - 0x61, 0xeb, 0xc1, 0xff, 0x4c, 0xa4, 0x11, 0x7f, 0x03, 0x68, 0x44, 0xc1, 0x1f, 0x81, 0x3a, 0x6c, - 0x77, 0x95, 0x02, 0x2b, 0x53, 0x80, 0xe5, 0x10, 0x1e, 0x90, 0xe8, 0xfd, 0x1f, 0xa6, 0x40, 0x0b, - 0x13, 0xff, 0x4e, 0x4d, 0x7f, 0x52, 0xe8, 0xaf, 0x9a, 0xc1, 0x80, 0x0f, 0x0a, 0x14, 0x02, 0x3c, - 0xc0, 0x09, 0x13, 0xe7, 0xdc, 0xc0, 0x1a, 0x28, 0xa0, 0xe4, 0x83, 0x8e, 0x03, 0x88, 0xd5, 0xaf, - 0x1a, 0xbd, 0x91, 0x00, 0xb7, 0x4e, 0xba, 0xdf, 0xf8, 0xdb, 0xcc, 0x02, 0x43, 0xc4, 0x14, 0x2a, - 0x3f, 0xc8, 0x0d, 0x09, 0x1c, 0x44, 0xf4, 0x01, 0x3c, 0xca, 0x28, 0x56, 0x80, 0xa6, 0x85, 0x00, - 0xea, 0x3e, 0x8f, 0xeb, 0x9f, 0xfc, 0x6e, 0x07, 0xc4, 0xe0, 0x30, 0x78, 0xa0, 0x1e, 0x6f, 0x54, - 0x78, 0x51, 0xff, 0x56, 0x4a, 0x01, 0x47, 0x02, 0x4c, 0x21, 0x3b, 0xfb, 0x90, 0x0a, 0xcc, 0x1d, - 0xd2, 0x47, 0xff, 0xfc, 0x70, 0x18, 0x22, 0xc0, 0xb9, 0x2f, 0xe9, 0x7f, 0x91, 0xd3, 0x66, 0x2f, - 0x80, 0x2c, 0x24, 0xa7, 0xfa, 0x84, 0x51, 0xab, 0x6b, 0x72, 0x00, 0xab, 0x33, 0x04, 0xcf, 0x43, - 0xff, 0x17, 0x51, 0x84, 0x0c, 0x01, 0x50, 0x10, 0x8f, 0x90, 0x34, 0x41, 0x44, 0x84, 0x8e, 0x08, - 0x19, 0x04, 0x48, 0x50, 0x84, 0x38, 0x3d, 0x02, 0x52, 0xf9, 0x7c, 0xd2, 0xd0, 0x1f, 0x13, 0x42, - 0xa0, 0x21, 0x41, 0xc4, 0x02, 0x02, 0x3d, 0x09, 0xc8, 0xfd, 0x60, 0x7d, 0x35, 0x4f, 0x7f, 0xff, - 0xf9, 0x97, 0x6a, 0xd8, 0x00, 0xc3, 0x83, 0x00, 0x09, 0x50, 0x4b, 0x90, 0x8a, 0xc7, 0x94, 0x4d, - 0x47, 0xc1, 0x62, 0x32, 0x28, 0x24, 0x09, 0x52, 0x2e, 0x2e, 0x1c, 0x96, 0x44, 0xa0, 0x09, 0xc8, - 0xce, 0x64, 0xa9, 0x1c, 0x19, 0x0e, 0x52, 0x3e, 0x3e, 0x19, 0x93, 0xa0, 0x36, 0x26, 0x22, 0x08, - 0x9a, 0x00, 0xdd, 0x66, 0x3a, 0x93, 0xd5, 0x89, 0xd1, 0x40, 0x06, 0xd4, 0xa8, 0x22, 0x73, 0x7b, - 0x3d, 0x3f, 0xe3, 0x04, 0x94, 0xff, 0xff, 0xff, 0xff, 0x0c, 0x56, 0x77, 0xac, 0xe0, 0xc4, 0x06, - 0x1f, 0xb8, 0xa5, 0x80, 0xfd, 0x68, 0x1c, 0x32, 0x16, 0x03, 0xde, 0x71, 0x2a, 0x3d, 0x14, 0x19, - 0xbe, 0xc2, 0x88, 0xd9, 0x24, 0x92, 0x5f, 0xc5, 0x90, 0x0a, 0x85, 0xc2, 0x3f, 0x87, 0x03, 0xa8, - 0x26, 0x17, 0xc4, 0x06, 0x86, 0x12, 0x87, 0x76, 0x0a, 0x48, 0x16, 0xed, 0x96, 0x93, 0xec, 0x1b, - 0x30, 0x73, 0xe8, 0x1a, 0x3f, 0xff, 0x4d, 0xce, 0x40, 0xf3, 0x0c, 0x51, 0x4b, 0x84, 0x9e, 0x67, - 0x2b, 0x15, 0x40, 0x1a, 0xa0, 0xfc, 0x10, 0x0f, 0xd8, 0x81, 0x35, 0x87, 0xff, 0x98, 0x0f, 0x40, - 0x00, 0xba, 0xc0, 0x71, 0xe2, 0x00, 0x18, 0x28, 0xb3, 0x82, 0xcc, 0x80, 0x6a, 0xa0, 0x43, 0xff, - 0x2d, 0xd6, 0x04, 0x8a, 0x68, 0xff, 0xff, 0xff, 0xfc, 0x1a, 0xf3, 0x1a, 0x2a, 0x06, 0xc0, 0x01, - 0x40, 0x0c, 0x30, 0xc1, 0xd0, 0xd7, 0x4f, 0xcb, 0x74, 0x1f, 0x07, 0xd3, 0xb4, 0x0d, 0x88, 0x98, - 0xea, 0xda, 0x9f, 0xce, 0x2b, 0x3c, 0x55, 0xb3, 0x40, 0x14, 0xff, 0xff, 0xff, 0xea, 0xdb, 0x9b, - 0x92, 0xd8, 0x68, 0x08, 0x0b, 0x41, 0x09, 0x26, 0x40, 0x8c, 0xf1, 0xb0, 0x9a, 0x98, 0xc0, 0x80, - 0x8b, 0xf0, 0x3d, 0xe7, 0xec, 0x19, 0x68, 0x21, 0x03, 0x29, 0x7f, 0xe1, 0x6d, 0x4c, 0x0f, 0x01, - 0xd1, 0x51, 0x01, 0x1a, 0x50, 0x2a, 0x59, 0x27, 0x80, 0xc1, 0x6e, 0x33, 0xf1, 0x80, 0xe1, 0x49, - 0x08, 0xe9, 0x17, 0xff, 0xff, 0xff, 0x80, 0x5a, 0x10, 0x10, 0x36, 0x5e, 0xca, 0xf8, 0x3a, 0x00, - 0x1e, 0xb0, 0x06, 0x84, 0x01, 0xf3, 0x07, 0x1b, 0x4a, 0xc0, 0x1e, 0x21, 0x43, 0x8e, 0xa5, 0x55, - 0x77, 0xc7, 0x65, 0x7c, 0xc2, 0xdf, 0x5e, 0x0c, 0x42, 0x20, 0xd2, 0x48, 0x61, 0xc8, 0x1c, 0x65, - 0xf8, 0xfe, 0x4c, 0x88, 0x71, 0x1f, 0x82, 0x50, 0x81, 0xa3, 0x54, 0x09, 0x13, 0x28, 0x52, 0xf5, - 0xe0, 0x82, 0xc3, 0x06, 0x7f, 0xfa, 0x2c, 0xcf, 0xf8, 0xf4, 0x7f, 0xff, 0xfd, 0x01, 0x49, 0xa4, - 0xb8, 0xde, 0x62, 0x84, 0xfe, 0xed, 0x65, 0x1f, 0x3c, 0x3c, 0xb2, 0x50, 0x76, 0x30, 0x5b, 0x03, - 0xc0, 0x08, 0xa6, 0x64, 0x90, 0xc8, 0xcd, 0x14, 0x6e, 0x69, 0x46, 0x7a, 0xc6, 0x1c, 0x87, 0xd7, - 0x48, 0x7b, 0x49, 0x05, 0x2d, 0x5e, 0x7f, 0xcb, 0x67, 0xf0, 0xd9, 0x0d, 0x1e, 0x9e, 0x53, 0xb7, - 0x64, 0xa5, 0xa5, 0x10, 0x39, 0x06, 0x11, 0x3f, 0xb1, 0xa9, 0xa6, 0xe8, 0x4d, 0x47, 0x77, 0xda, - 0x43, 0x76, 0x89, 0x45, 0x09, 0x70, 0xc2, 0x38, 0x0f, 0x09, 0x6f, 0xe7, 0x2d, 0x82, 0x35, 0x07, - 0xfe, 0x64, 0x18, 0x2e, 0xb8, 0x04, 0x42, 0x54, 0x80, 0x43, 0x12, 0x6c, 0x9a, 0x55, 0xc9, 0x0a, - 0xa0, 0x79, 0x47, 0x52, 0x65, 0x2a, 0xff, 0x50, 0x11, 0xc9, 0x4e, 0xfe, 0x5b, 0x30, 0xa4, 0xe8, - 0x30, 0x63, 0xff, 0x21, 0x12, 0x1b, 0xdc, 0x1c, 0x01, 0x41, 0x51, 0x1f, 0xff, 0xfa, 0xc3, 0xe3, - 0x55, 0xf1, 0x66, 0xe2, 0xd5, 0x78, 0x5e, 0xfa, 0x4d, 0xf2, 0x61, 0x01, 0x26, 0x15, 0xa9, 0xf9, - 0xd9, 0x32, 0x41, 0x90, 0x36, 0x4e, 0xae, 0xe3, 0x0b, 0x16, 0x56, 0x8c, 0x6e, 0x42, 0x5d, 0xd8, - 0x1e, 0xfe, 0x1d, 0x40, 0x3a, 0x50, 0x9f, 0x09, 0x14, 0xeb, 0x6e, 0x48, 0x7a, 0x91, 0x88, 0x7b, - 0x7d, 0x8f, 0x72, 0x42, 0x39, 0xb0, 0x1c, 0x65, 0x18, 0x23, 0x8b, 0x60, 0x30, 0x00, - /* FRAME_END as in 4.2.3 */ + 0xc6, 0xcc, 0x17, 0x00, 0x00, 0x00, 0x01, 0x00, 0xcd, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, + 0xc1, 0xca, 0x01, 0x00, /* TILESET as in 4.2.4.1 */ + 0xc7, 0xcc, 0x3e, 0x0b, 0x00, 0x00, 0x01, 0x00, 0xc2, 0xca, 0x00, 0x00, 0x51, 0x50, 0x01, 0x40, 0x01, 0x00, 0x23, + 0x0b, 0x00, 0x00, 0x66, 0x66, 0x77, 0x88, 0x98, 0xc3, 0xca, 0x23, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xae, 0x03, 0xcf, 0x03, 0x93, 0x03, 0xc0, 0x01, 0x01, 0x15, 0x48, 0x99, 0xc7, 0x41, 0xa1, 0x12, 0x68, + 0x11, 0xdc, 0x22, 0x29, 0x74, 0xef, 0xfd, 0x20, 0x92, 0xe0, 0x4e, 0xa8, 0x69, 0x3b, 0xfd, 0x41, 0x83, 0xbf, 0x28, + 0x53, 0x0c, 0x1f, 0xe2, 0x54, 0x0c, 0x77, 0x7c, 0xa3, 0x05, 0x7c, 0x30, 0xd0, 0x9c, 0xe8, 0x09, 0x39, 0x1a, 0x5d, + 0xff, 0xe2, 0x01, 0x22, 0x13, 0x80, 0x90, 0x87, 0xd2, 0x9f, 0xfd, 0xfd, 0x50, 0x09, 0x0d, 0x24, 0xa0, 0x8f, 0xab, + 0xfe, 0x3c, 0x04, 0x84, 0xc6, 0x9c, 0xde, 0xf8, 0x80, 0xc3, 0x22, 0x50, 0xaf, 0x4c, 0x2a, 0x7f, 0xfe, 0xe0, 0x5c, + 0xa9, 0x52, 0x8a, 0x06, 0x7d, 0x3d, 0x09, 0x03, 0x65, 0xa3, 0xaf, 0xd2, 0x61, 0x1f, 0x72, 0x04, 0x50, 0x8d, 0x3e, + 0x16, 0x4a, 0x3f, 0xff, 0xfd, 0x41, 0x42, 0x87, 0x24, 0x37, 0x06, 0x17, 0x2e, 0x56, 0x05, 0x9c, 0x1c, 0xb3, 0x84, + 0x6a, 0xff, 0xfb, 0x43, 0x8b, 0xa3, 0x7a, 0x32, 0x43, 0x28, 0xe1, 0x1f, 0x50, 0x54, 0xfc, 0xca, 0xa5, 0xdf, 0xff, + 0x08, 0x04, 0x48, 0x15, 0x61, 0xd9, 0x76, 0x43, 0xf8, 0x2a, 0x07, 0xe9, 0x65, 0xf7, 0xc6, 0x89, 0x2d, 0x40, 0xa1, + 0xc3, 0x35, 0x8d, 0xf5, 0xed, 0xf5, 0x91, 0xae, 0x2f, 0xcc, 0x01, 0xce, 0x03, 0x48, 0xc0, 0x8d, 0x63, 0xf4, 0xfd, + 0x50, 0x20, 0x2d, 0x0c, 0x9b, 0xb0, 0x8d, 0x13, 0xc0, 0x8a, 0x09, 0x52, 0x1b, 0x02, 0x6e, 0x42, 0x3b, 0xd0, 0x13, + 0x4e, 0x84, 0x01, 0x26, 0x88, 0x6a, 0x04, 0x84, 0x34, 0x2a, 0xa5, 0x00, 0xba, 0x54, 0x48, 0x58, 0xea, 0x54, 0x02, + 0xb4, 0x1d, 0xa7, 0xfa, 0x47, 0x82, 0xec, 0x7a, 0x77, 0xfd, 0x00, 0x92, 0x66, 0x62, 0x04, 0xa6, 0x9b, 0xff, 0xf6, + 0x80, 0xc0, 0x69, 0x01, 0xc2, 0x3e, 0x90, 0x14, 0x20, 0x2f, 0xfc, 0x40, 0x96, 0x59, 0x58, 0x0c, 0xb1, 0x13, 0x68, + 0x20, 0x2e, 0xb5, 0xf5, 0xdf, 0xff, 0xf8, 0xfc, 0x56, 0x88, 0x60, 0x24, 0x53, 0xb5, 0x41, 0x46, 0x5f, 0xf8, 0xf1, + 0x7e, 0xde, 0x4a, 0x08, 0x97, 0xe0, 0x55, 0x03, 0x8f, 0xe5, 0x75, 0x61, 0x03, 0xf2, 0xe1, 0x90, 0x01, 0xa2, 0x8e, + 0x88, 0x04, 0x98, 0x05, 0x93, 0x6b, 0xff, 0xea, 0xc0, 0x60, 0xa1, 0x88, 0x04, 0x49, 0xbf, 0xf7, 0xff, 0x8c, 0xb4, + 0x59, 0x90, 0x80, 0x30, 0x64, 0x53, 0xff, 0xf5, 0xc4, 0x48, 0xda, 0xda, 0xcb, 0x80, 0x38, 0x61, 0x57, 0xb2, 0xaf, + 0x00, 0xe8, 0x7b, 0x46, 0xe6, 0xd8, 0x02, 0x03, 0x8a, 0x06, 0x18, 0x14, 0x32, 0x83, 0xd0, 0x8a, 0xee, 0xbc, 0x81, + 0xb4, 0x28, 0xc4, 0x7f, 0xf9, 0xa1, 0x69, 0x00, 0x91, 0xc5, 0x51, 0xff, 0xfe, 0x3f, 0xe9, 0xf1, 0x70, 0x30, 0x24, + 0x10, 0xa7, 0xcb, 0x1f, 0x8a, 0x24, 0x93, 0xed, 0x83, 0x00, 0x36, 0x20, 0xd1, 0x50, 0xe7, 0xd8, 0xad, 0x58, 0x20, + 0x09, 0x22, 0x80, 0xd0, 0xca, 0x5d, 0x1a, 0xd7, 0xf1, 0x60, 0x75, 0x2a, 0xf2, 0xd7, 0xf8, 0xc0, 0x32, 0x45, 0x86, + 0x00, 0x43, 0x01, 0xfe, 0x80, 0xf7, 0x42, 0x81, 0x74, 0x84, 0x4c, 0xa1, 0x60, 0x4c, 0xcb, 0x14, 0x58, 0x01, 0x4d, + 0x18, 0xa1, 0xaa, 0x47, 0x0e, 0x11, 0x1a, 0x40, 0x7d, 0x41, 0x02, 0xe3, 0x30, 0xcd, 0x33, 0x81, 0x34, 0x06, 0x46, + 0x83, 0xa2, 0x47, 0x1c, 0x04, 0xaa, 0x20, 0x12, 0xa2, 0x8b, 0x81, 0xc4, 0x9c, 0xa0, 0x2e, 0x06, 0x32, 0xf8, 0x86, + 0x85, 0x01, 0xe8, 0x70, 0xf9, 0x46, 0x09, 0x6a, 0xbf, 0xe0, 0xf5, 0xa4, 0xc8, 0x78, 0xe7, 0xd2, 0x97, 0x0b, 0xbc, + 0x3c, 0x97, 0xff, 0xd5, 0x40, 0x94, 0xb2, 0xc1, 0x18, 0x18, 0x11, 0x1f, 0x43, 0xc1, 0x18, 0xc3, 0x83, 0x7f, 0x9a, + 0x31, 0xc4, 0x8e, 0x70, 0x56, 0xda, 0xf6, 0x17, 0xde, 0xd1, 0x02, 0x0d, 0x42, 0x21, 0x13, 0xdc, 0x3a, 0x3c, 0x40, + 0x9e, 0xf4, 0x01, 0x43, 0xea, 0x0c, 0x46, 0x73, 0xa2, 0x7b, 0x0c, 0x80, 0xff, 0xe4, 0xad, 0x2e, 0x09, 0xb4, 0x63, + 0xb0, 0x8c, 0x54, 0x59, 0xfa, 0xac, 0x76, 0x36, 0x10, 0x05, 0xf0, 0x98, 0x88, 0x83, 0x42, 0x00, 0x20, 0x71, 0xcc, + 0xc1, 0xa9, 0x97, 0x3e, 0x5a, 0x0d, 0x04, 0x50, 0x92, 0x23, 0x20, 0x0d, 0x0a, 0x1c, 0x57, 0xd7, 0xff, 0x10, 0xf2, + 0x03, 0x0f, 0x58, 0x1b, 0xa5, 0x11, 0xf8, 0xf1, 0xb4, 0x12, 0xdb, 0x1a, 0x48, 0x56, 0x1f, 0xe3, 0xc7, 0x50, 0xe9, + 0x16, 0xb4, 0xbc, 0xb0, 0x40, 0x93, 0xea, 0xb5, 0x5b, 0x2f, 0xfc, 0x50, 0x0a, 0x6f, 0xcc, 0x25, 0xe0, 0x06, 0xab, + 0x5f, 0x24, 0xfe, 0x8b, 0xcb, 0x42, 0x43, 0x7e, 0x69, 0x02, 0x25, 0xc7, 0x38, 0x00, 0x6e, 0xe5, 0x80, 0xa8, 0xa4, + 0x30, 0x44, 0x15, 0x8f, 0xe9, 0x0c, 0xd3, 0xa6, 0xc2, 0x14, 0x34, 0x4a, 0xfe, 0x03, 0x7f, 0x06, 0xa5, 0x91, 0x02, + 0x54, 0xf1, 0xa1, 0xa1, 0x53, 0xbf, 0x11, 0xf2, 0x8f, 0x83, 0x67, 0x80, 0x09, 0x08, 0x12, 0x3f, 0xfd, 0x44, 0x91, + 0xc2, 0x83, 0x30, 0x50, 0x07, 0x02, 0x82, 0x4d, 0x31, 0x34, 0x06, 0x41, 0x79, 0x6f, 0xf0, 0xcc, 0x03, 0x79, 0x00, + 0x2c, 0x05, 0x24, 0xec, 0x8d, 0x29, 0x15, 0xaf, 0x44, 0xc8, 0xeb, 0x4f, 0xe1, 0xfd, 0xf1, 0x41, 0x48, 0x81, 0x08, + 0xaf, 0xfe, 0x51, 0x48, 0xce, 0xe7, 0xf9, 0xb6, 0x0a, 0x30, 0x83, 0x11, 0xf0, 0x0c, 0x3b, 0xd2, 0xa6, 0x24, 0x24, + 0xef, 0x25, 0xfa, 0x5a, 0x3e, 0x92, 0x3e, 0x79, 0x0e, 0x35, 0x61, 0xc8, 0xaa, 0x1c, 0x2e, 0x9a, 0x27, 0x7f, 0xff, + 0xf0, 0x7d, 0x30, 0x5b, 0xbc, 0x91, 0xff, 0xfe, 0x43, 0x24, 0x28, 0x66, 0xa7, 0x70, 0x99, 0x28, 0x6e, 0x2b, 0x18, + 0x2b, 0xd4, 0xa1, 0x77, 0x3b, 0x96, 0x9f, 0xf7, 0xeb, 0xbe, 0x1f, 0x04, 0x34, 0x75, 0x84, 0x31, 0x42, 0x4c, 0x65, + 0xaa, 0x09, 0x50, 0xa0, 0xc4, 0x51, 0x31, 0xd3, 0x26, 0x3a, 0x1b, 0xf4, 0x6e, 0x4a, 0x4e, 0x17, 0x25, 0x84, 0x78, + 0x7d, 0x2c, 0x3f, 0x46, 0x18, 0xca, 0x5f, 0xf9, 0xe5, 0x38, 0x2f, 0xd8, 0x71, 0x94, 0x94, 0xe2, 0xcc, 0xa3, 0x15, + 0xb0, 0xda, 0xa9, 0xcb, 0x58, 0xe4, 0x18, 0x77, 0x93, 0x8a, 0x51, 0xc6, 0x23, 0xc4, 0x4e, 0x6d, 0xd9, 0x14, 0x1e, + 0x9b, 0x8d, 0xbc, 0xcb, 0x9d, 0xc4, 0x18, 0x05, 0xf5, 0xa9, 0x29, 0xf8, 0x6d, 0x29, 0x38, 0xc7, 0x44, 0xe5, 0x3a, + 0xcd, 0xba, 0x61, 0x98, 0x4a, 0x57, 0x02, 0x96, 0x42, 0x02, 0xd9, 0x37, 0x11, 0xde, 0x2d, 0xd4, 0x3f, 0xfe, 0x61, + 0xe7, 0x33, 0xd7, 0x89, 0x4a, 0xdd, 0xb0, 0x34, 0x47, 0xf4, 0xdc, 0xad, 0xaa, 0xc9, 0x9d, 0x7e, 0x6d, 0x4b, 0xcc, + 0xdc, 0x17, 0x89, 0x57, 0xfd, 0xbb, 0x37, 0x75, 0x47, 0x5a, 0xec, 0x2c, 0x6e, 0x3c, 0x15, 0x92, 0x54, 0x64, 0x2c, + 0xab, 0x9e, 0xab, 0x2b, 0xdd, 0x3c, 0x66, 0xa0, 0x8f, 0x47, 0x5e, 0x93, 0x1a, 0x37, 0x16, 0xf4, 0x89, 0x23, 0x00, + 0x00, 0xb0, 0x33, 0x56, 0xfa, 0x14, 0x1e, 0xff, 0x48, 0x7a, 0x7e, 0x0f, 0x10, 0x1f, 0xf4, 0x91, 0xc8, 0x10, 0x56, + 0x84, 0xff, 0x08, 0xec, 0xb4, 0xac, 0x0e, 0x0f, 0xff, 0xad, 0xc5, 0xe0, 0x1a, 0x2f, 0x82, 0x04, 0x9f, 0x91, 0xc2, + 0x0e, 0xfe, 0x48, 0x36, 0x79, 0x01, 0x42, 0x14, 0xff, 0xfe, 0x30, 0xf0, 0x08, 0x18, 0xf1, 0x81, 0x45, 0x9a, 0x60, + 0xc1, 0x79, 0xf0, 0x14, 0x12, 0x10, 0xce, 0xea, 0x31, 0x5a, 0xff, 0xfc, 0x20, 0x13, 0x82, 0x2f, 0xc9, 0x02, 0x1f, + 0x81, 0xcb, 0x00, 0xe1, 0x10, 0xd2, 0xb4, 0xbe, 0x87, 0xff, 0xb0, 0x1e, 0x27, 0x81, 0xb7, 0x04, 0x06, 0x3c, 0xc2, + 0x04, 0xf6, 0x06, 0x0e, 0x28, 0xbc, 0x40, 0xbf, 0x12, 0x1e, 0x86, 0xd4, 0x6a, 0x7f, 0x18, 0x1b, 0x96, 0x85, 0x4c, + 0x16, 0x80, 0xdf, 0x2c, 0xa5, 0x8d, 0x86, 0xa3, 0x4a, 0x8a, 0xb4, 0x1b, 0xa1, 0x38, 0xa9, 0xd5, 0xff, 0xff, 0xea, + 0x06, 0x20, 0xd2, 0x95, 0x1e, 0xf4, 0x2f, 0xb2, 0x12, 0x0e, 0x61, 0x78, 0x4a, 0x17, 0x52, 0x5d, 0xe4, 0x25, 0x1f, + 0xfe, 0xc0, 0xb3, 0x1f, 0xff, 0xff, 0xec, 0x02, 0x82, 0x80, 0x90, 0x41, 0x88, 0xde, 0x48, 0x2c, 0x42, 0x52, 0x0b, + 0x2f, 0x43, 0x7e, 0x50, 0x78, 0xf2, 0x67, 0x78, 0x41, 0x34, 0x3d, 0xc8, 0x0f, 0x67, 0xa1, 0xeb, 0x21, 0xfe, 0xc0, + 0x1f, 0x22, 0x60, 0x41, 0x6c, 0x00, 0x92, 0x4b, 0x60, 0x10, 0xd0, 0x0d, 0x01, 0x35, 0x05, 0x0e, 0x87, 0xa2, 0xa0, + 0x5d, 0x1f, 0xa3, 0xaf, 0x7f, 0xf1, 0xbe, 0x8f, 0xcd, 0xa5, 0x00, 0x1c, 0x10, 0x40, 0x15, 0x76, 0x81, 0x05, 0xef, + 0xee, 0x00, 0x60, 0x84, 0x00, 0x99, 0x40, 0x4a, 0x82, 0x17, 0xe9, 0xfc, 0xc4, 0x7f, 0xff, 0xfd, 0x04, 0x80, 0x06, + 0x06, 0xdc, 0xaf, 0xa7, 0x7e, 0x94, 0x75, 0x74, 0x01, 0x00, 0xe0, 0x91, 0x00, 0x85, 0x7f, 0x8e, 0xd6, 0x0b, 0x20, + 0x21, 0x30, 0xca, 0x62, 0x8e, 0x07, 0x04, 0xe9, 0x45, 0x40, 0x5f, 0x47, 0x4a, 0x30, 0x15, 0x41, 0xcb, 0xdf, 0xff, + 0xfc, 0xbf, 0xc3, 0xb4, 0x46, 0x6a, 0x01, 0x40, 0xd0, 0xa7, 0x34, 0x18, 0x24, 0x1c, 0x2a, 0x45, 0xfe, 0xa8, 0x05, + 0x08, 0x61, 0xfd, 0xa8, 0x80, 0x71, 0x01, 0x25, 0x9c, 0xc1, 0x47, 0x17, 0x37, 0x02, 0x7a, 0x15, 0xff, 0xf3, 0x01, + 0x45, 0x7f, 0xd6, 0x80, 0x60, 0x83, 0x67, 0xf8, 0x9d, 0x2f, 0xf4, 0xdd, 0x8c, 0x30, 0x01, 0x51, 0x42, 0xbc, 0x43, + 0x7a, 0x6b, 0x9f, 0x84, 0x1e, 0x00, 0x48, 0xc1, 0xe0, 0xb7, 0xe0, 0x7e, 0x99, 0xf2, 0x4a, 0xe9, 0x40, 0x02, 0x81, + 0xc3, 0x00, 0x24, 0x3a, 0xc5, 0x52, 0x0f, 0x91, 0xc8, 0x68, 0x25, 0x40, 0x99, 0xa4, 0x25, 0x1a, 0x04, 0xd0, 0xa2, + 0x91, 0xdd, 0xeb, 0x93, 0x00, 0x21, 0x49, 0x24, 0x8b, 0x40, 0x75, 0x38, 0x14, 0xa1, 0xfd, 0x3f, 0x88, 0x25, 0xbf, + 0x32, 0x00, 0xe3, 0x19, 0xfc, 0xb9, 0xf8, 0x6f, 0x81, 0xc0, 0x01, 0xb3, 0x93, 0x20, 0x09, 0x08, 0x25, 0x84, 0xe1, + 0x34, 0xd4, 0x1b, 0x48, 0x88, 0x11, 0xa0, 0x15, 0x59, 0xd7, 0x07, 0x81, 0x81, 0x3b, 0xa1, 0x40, 0x2e, 0x2f, 0x48, + 0x70, 0x09, 0xc4, 0x76, 0x49, 0x0f, 0x2e, 0x50, 0x2e, 0x46, 0x19, 0xa4, 0x16, 0xa2, 0x1b, 0x84, 0xa2, 0x89, 0x58, + 0xfc, 0x4f, 0x3f, 0x40, 0x90, 0x4c, 0xa3, 0x01, 0x32, 0x09, 0x02, 0x80, 0x9c, 0x91, 0x13, 0x2c, 0xba, 0xde, 0x5d, + 0x99, 0xf2, 0xff, 0xff, 0x3d, 0x5a, 0x1f, 0xa9, 0x02, 0x90, 0x8f, 0xf3, 0x08, 0xbd, 0x01, 0xf8, 0xd0, 0x2a, 0x95, + 0x41, 0x0c, 0x40, 0x0a, 0x20, 0xc4, 0xd4, 0xcc, 0x6b, 0x0f, 0xf0, 0x80, 0xb1, 0x5d, 0x28, 0x3d, 0x08, 0xc2, 0xf8, + 0x31, 0x02, 0x49, 0x88, 0x14, 0x28, 0xed, 0xe8, 0x86, 0x3b, 0x00, 0x9f, 0x95, 0x06, 0x37, 0x15, 0xa4, 0x59, 0xc8, + 0x80, 0xb6, 0x10, 0xf0, 0xe5, 0xb8, 0x18, 0x00, 0x56, 0x1c, 0xff, 0x95, 0x21, 0x0e, 0x7f, 0x2b, 0xc5, 0x08, 0x59, + 0x10, 0xe1, 0x46, 0x31, 0x8d, 0xec, 0xe0, 0xa1, 0x99, 0xbb, 0x21, 0xff, 0xfe, 0x30, 0x10, 0xd0, 0x05, 0xe3, 0x08, + 0x50, 0xfc, 0xf3, 0x0e, 0x00, 0x8d, 0x68, 0x8e, 0x07, 0xa6, 0x80, 0x34, 0x42, 0xed, 0x1f, 0x88, 0x00, 0xf0, 0x8a, + 0x21, 0xae, 0xf7, 0xfb, 0x80, 0x28, 0x86, 0x0f, 0xff, 0xff, 0x82, 0xea, 0x47, 0x95, 0x91, 0xe0, 0x04, 0x01, 0x44, + 0x0c, 0x29, 0xff, 0x0e, 0x33, 0xe8, 0xc0, 0x54, 0x04, 0x23, 0xfc, 0x81, 0x5b, 0xf0, 0x3c, 0x07, 0x10, 0x70, 0x30, + 0xd8, 0x21, 0x6f, 0xef, 0xde, 0x46, 0x09, 0x43, 0xfa, 0x5f, 0xff, 0x0d, 0x72, 0x30, 0xdd, 0x00, 0xdb, 0xe4, 0x48, + 0x24, 0x97, 0x08, 0x46, 0xb1, 0x49, 0xc4, 0x4d, 0x80, 0x12, 0x60, 0xff, 0xa4, 0xa6, 0xff, 0xf6, 0x8c, 0x00, 0x40, + 0x05, 0x02, 0xb4, 0x0f, 0xf0, 0x3e, 0xfc, 0x84, 0x38, 0x81, 0x94, 0x8b, 0xfe, 0x49, 0xef, 0xc0, 0x10, 0x49, 0x88, + 0x28, 0xa2, 0x1c, 0x2a, 0x8b, 0x64, 0xd4, 0x86, 0xd7, 0xff, 0xff, 0xff, 0xeb, 0x91, 0x6b, 0x11, 0x10, 0x00, 0x69, + 0x4c, 0xbf, 0xb4, 0x1c, 0xd8, 0x00, 0x07, 0x16, 0x80, 0x60, 0x0a, 0x1c, 0x82, 0x42, 0x27, 0x82, 0x43, 0xc9, 0x0a, + 0x64, 0x20, 0x5a, 0x5f, 0x4e, 0xbf, 0x8c, 0x38, 0x82, 0x36, 0x02, 0x07, 0x72, 0x79, 0x07, 0x23, 0xb4, 0xbb, 0x57, + 0x5f, 0xe8, 0x04, 0xdd, 0x39, 0xe9, 0x07, 0x95, 0xbe, 0x04, 0x2b, 0xdd, 0x8e, 0x22, 0xdc, 0x14, 0x2c, 0x61, 0xa3, + 0xa9, 0xcd, 0x4f, 0x82, 0x5d, 0xa0, 0x44, 0xdf, 0xf4, 0x96, 0xff, 0xf5, 0x2b, 0xff, 0xfe, 0x01, 0x19, 0xd2, 0xa2, + 0x9e, 0x43, 0xa5, 0x7f, 0xf0, 0x4c, 0x4c, 0x2b, 0x3c, 0x33, 0xe2, 0x55, 0xff, 0x04, 0x06, 0x29, 0x2c, 0x0d, 0x22, + 0x5d, 0x7c, 0x93, 0xba, 0x18, 0xaf, 0xf9, 0x32, 0xa6, 0xc3, 0x99, 0x46, 0x79, 0xe3, 0x06, 0xa6, 0x38, 0x8b, 0x92, + 0x22, 0x4b, 0xdb, 0x1b, 0x36, 0x20, 0xb0, 0x6c, 0x20, 0xce, 0x37, 0x42, 0xe1, 0x66, 0xd4, 0x49, 0x34, 0x42, 0x8b, + 0xfa, 0x9c, 0x12, 0x99, 0xdc, 0x06, 0x87, 0xfa, 0x46, 0xf8, 0x2f, 0x04, 0xa9, 0xd8, 0x82, 0x07, 0xa6, 0x30, 0x0f, + 0xc0, 0xdf, 0x35, 0xe8, 0x90, 0xf0, 0xff, 0xff, 0xa8, 0xe0, 0xd7, 0x02, 0x60, 0x1a, 0xc3, 0x20, 0x28, 0xa2, 0x31, + 0x29, 0x3c, 0xeb, 0x04, 0xa5, 0xdd, 0x48, 0x0e, 0x82, 0xa4, 0xb6, 0x56, 0x22, 0x06, 0x57, 0xe0, 0xda, 0x10, 0x27, + 0x31, 0x0e, 0x11, 0x77, 0xfe, 0x02, 0x60, 0x16, 0x48, 0x81, 0x8c, 0x0d, 0x05, 0x17, 0x7f, 0xcb, 0xbb, 0x7e, 0x25, + 0x2a, 0x41, 0xfd, 0x8a, 0x7f, 0xc9, 0x36, 0x7c, 0xe0, 0x98, 0x7e, 0x92, 0xef, 0x7e, 0x06, 0x03, 0x13, 0x3e, 0x20, + 0x3a, 0xbf, 0x4c, 0xc3, 0x0f, 0x2e, 0x80, 0x74, 0xbf, 0x39, 0x3c, 0xf0, 0xa6, 0xb2, 0xe9, 0x3f, 0x41, 0x55, 0x1f, + 0x2c, 0xf5, 0xd2, 0x7e, 0x8c, 0xae, 0x4e, 0xaa, 0x61, 0x3c, 0xbc, 0x3f, 0xc4, 0xc7, 0x36, 0xdc, 0x23, 0xc8, 0xb8, + 0x52, 0xe2, 0x8a, 0x80, 0x18, 0x00, 0x00, 0xb2, 0x46, 0xa2, 0x56, 0x0d, 0x12, 0x94, 0xaa, 0xbd, 0x01, 0x07, 0xff, + 0xfa, 0x34, 0x0c, 0x5f, 0xf8, 0x0c, 0x12, 0x50, 0xaf, 0xd6, 0xd1, 0x89, 0x40, 0xa4, 0xff, 0xe0, 0xce, 0xc4, 0x49, + 0x25, 0x9d, 0xc1, 0xff, 0x7e, 0x60, 0x24, 0x5d, 0xcc, 0x10, 0xc0, 0xbe, 0x5a, 0x12, 0xd3, 0xc3, 0xfe, 0x2d, 0x40, + 0x7c, 0x28, 0x9e, 0x71, 0x01, 0xd2, 0x6e, 0x86, 0x0b, 0xc8, 0xf2, 0x9b, 0x45, 0x08, 0x4c, 0x04, 0x52, 0x7e, 0xf2, + 0x7e, 0xd9, 0xcc, 0x0b, 0x1c, 0x20, 0x80, 0xae, 0xaf, 0xfe, 0xb0, 0x6d, 0x23, 0xf2, 0x41, 0xe3, 0x2e, 0x20, 0x11, + 0x4b, 0x74, 0x89, 0xdd, 0xff, 0xa8, 0x38, 0xa3, 0x95, 0x82, 0x15, 0xf0, 0xd0, 0xd5, 0xf1, 0x92, 0x8e, 0xee, 0xc0, + 0x26, 0x81, 0xe9, 0x47, 0xff, 0xee, 0x0d, 0x20, 0x34, 0x31, 0x3a, 0xef, 0x40, 0xb2, 0x29, 0x47, 0x19, 0x7f, 0x04, + 0x27, 0xf1, 0x90, 0x85, 0x09, 0x86, 0x7d, 0x42, 0xe2, 0x54, 0x5d, 0x5f, 0xe8, 0x0e, 0xd0, 0x2c, 0xaa, 0x16, 0xbf, + 0x04, 0xa7, 0xf8, 0xa2, 0x46, 0x0b, 0x08, 0x7a, 0x79, 0xe9, 0x28, 0x62, 0x7c, 0x33, 0xf4, 0x0b, 0x14, 0x82, 0xfa, + 0x61, 0xeb, 0xc1, 0xff, 0x4c, 0xa4, 0x11, 0x7f, 0x03, 0x68, 0x44, 0xc1, 0x1f, 0x81, 0x3a, 0x6c, 0x77, 0x95, 0x02, + 0x2b, 0x53, 0x80, 0xe5, 0x10, 0x1e, 0x90, 0xe8, 0xfd, 0x1f, 0xa6, 0x40, 0x0b, 0x13, 0xff, 0x4e, 0x4d, 0x7f, 0x52, + 0xe8, 0xaf, 0x9a, 0xc1, 0x80, 0x0f, 0x0a, 0x14, 0x02, 0x3c, 0xc0, 0x09, 0x13, 0xe7, 0xdc, 0xc0, 0x1a, 0x28, 0xa0, + 0xe4, 0x83, 0x8e, 0x03, 0x88, 0xd5, 0xaf, 0x1a, 0xbd, 0x91, 0x00, 0xb7, 0x4e, 0xba, 0xdf, 0xf8, 0xdb, 0xcc, 0x02, + 0x43, 0xc4, 0x14, 0x2a, 0x3f, 0xc8, 0x0d, 0x09, 0x1c, 0x44, 0xf4, 0x01, 0x3c, 0xca, 0x28, 0x56, 0x80, 0xa6, 0x85, + 0x00, 0xea, 0x3e, 0x8f, 0xeb, 0x9f, 0xfc, 0x6e, 0x07, 0xc4, 0xe0, 0x30, 0x78, 0xa0, 0x1e, 0x6f, 0x54, 0x78, 0x51, + 0xff, 0x56, 0x4a, 0x01, 0x47, 0x02, 0x4c, 0x21, 0x3b, 0xfb, 0x90, 0x0a, 0xcc, 0x1d, 0xd2, 0x47, 0xff, 0xfc, 0x70, + 0x18, 0x22, 0xc0, 0xb9, 0x2f, 0xe9, 0x7f, 0x91, 0xd3, 0x66, 0x2f, 0x80, 0x2c, 0x24, 0xa7, 0xfa, 0x84, 0x51, 0xab, + 0x6b, 0x72, 0x00, 0xab, 0x33, 0x04, 0xcf, 0x43, 0xff, 0x17, 0x51, 0x84, 0x0c, 0x01, 0x50, 0x10, 0x8f, 0x90, 0x34, + 0x41, 0x44, 0x84, 0x8e, 0x08, 0x19, 0x04, 0x48, 0x50, 0x84, 0x38, 0x3d, 0x02, 0x52, 0xf9, 0x7c, 0xd2, 0xd0, 0x1f, + 0x13, 0x42, 0xa0, 0x21, 0x41, 0xc4, 0x02, 0x02, 0x3d, 0x09, 0xc8, 0xfd, 0x60, 0x7d, 0x35, 0x4f, 0x7f, 0xff, 0xf9, + 0x97, 0x6a, 0xd8, 0x00, 0xc3, 0x83, 0x00, 0x09, 0x50, 0x4b, 0x90, 0x8a, 0xc7, 0x94, 0x4d, 0x47, 0xc1, 0x62, 0x32, + 0x28, 0x24, 0x09, 0x52, 0x2e, 0x2e, 0x1c, 0x96, 0x44, 0xa0, 0x09, 0xc8, 0xce, 0x64, 0xa9, 0x1c, 0x19, 0x0e, 0x52, + 0x3e, 0x3e, 0x19, 0x93, 0xa0, 0x36, 0x26, 0x22, 0x08, 0x9a, 0x00, 0xdd, 0x66, 0x3a, 0x93, 0xd5, 0x89, 0xd1, 0x40, + 0x06, 0xd4, 0xa8, 0x22, 0x73, 0x7b, 0x3d, 0x3f, 0xe3, 0x04, 0x94, 0xff, 0xff, 0xff, 0xff, 0x0c, 0x56, 0x77, 0xac, + 0xe0, 0xc4, 0x06, 0x1f, 0xb8, 0xa5, 0x80, 0xfd, 0x68, 0x1c, 0x32, 0x16, 0x03, 0xde, 0x71, 0x2a, 0x3d, 0x14, 0x19, + 0xbe, 0xc2, 0x88, 0xd9, 0x24, 0x92, 0x5f, 0xc5, 0x90, 0x0a, 0x85, 0xc2, 0x3f, 0x87, 0x03, 0xa8, 0x26, 0x17, 0xc4, + 0x06, 0x86, 0x12, 0x87, 0x76, 0x0a, 0x48, 0x16, 0xed, 0x96, 0x93, 0xec, 0x1b, 0x30, 0x73, 0xe8, 0x1a, 0x3f, 0xff, + 0x4d, 0xce, 0x40, 0xf3, 0x0c, 0x51, 0x4b, 0x84, 0x9e, 0x67, 0x2b, 0x15, 0x40, 0x1a, 0xa0, 0xfc, 0x10, 0x0f, 0xd8, + 0x81, 0x35, 0x87, 0xff, 0x98, 0x0f, 0x40, 0x00, 0xba, 0xc0, 0x71, 0xe2, 0x00, 0x18, 0x28, 0xb3, 0x82, 0xcc, 0x80, + 0x6a, 0xa0, 0x43, 0xff, 0x2d, 0xd6, 0x04, 0x8a, 0x68, 0xff, 0xff, 0xff, 0xfc, 0x1a, 0xf3, 0x1a, 0x2a, 0x06, 0xc0, + 0x01, 0x40, 0x0c, 0x30, 0xc1, 0xd0, 0xd7, 0x4f, 0xcb, 0x74, 0x1f, 0x07, 0xd3, 0xb4, 0x0d, 0x88, 0x98, 0xea, 0xda, + 0x9f, 0xce, 0x2b, 0x3c, 0x55, 0xb3, 0x40, 0x14, 0xff, 0xff, 0xff, 0xea, 0xdb, 0x9b, 0x92, 0xd8, 0x68, 0x08, 0x0b, + 0x41, 0x09, 0x26, 0x40, 0x8c, 0xf1, 0xb0, 0x9a, 0x98, 0xc0, 0x80, 0x8b, 0xf0, 0x3d, 0xe7, 0xec, 0x19, 0x68, 0x21, + 0x03, 0x29, 0x7f, 0xe1, 0x6d, 0x4c, 0x0f, 0x01, 0xd1, 0x51, 0x01, 0x1a, 0x50, 0x2a, 0x59, 0x27, 0x80, 0xc1, 0x6e, + 0x33, 0xf1, 0x80, 0xe1, 0x49, 0x08, 0xe9, 0x17, 0xff, 0xff, 0xff, 0x80, 0x5a, 0x10, 0x10, 0x36, 0x5e, 0xca, 0xf8, + 0x3a, 0x00, 0x1e, 0xb0, 0x06, 0x84, 0x01, 0xf3, 0x07, 0x1b, 0x4a, 0xc0, 0x1e, 0x21, 0x43, 0x8e, 0xa5, 0x55, 0x77, + 0xc7, 0x65, 0x7c, 0xc2, 0xdf, 0x5e, 0x0c, 0x42, 0x20, 0xd2, 0x48, 0x61, 0xc8, 0x1c, 0x65, 0xf8, 0xfe, 0x4c, 0x88, + 0x71, 0x1f, 0x82, 0x50, 0x81, 0xa3, 0x54, 0x09, 0x13, 0x28, 0x52, 0xf5, 0xe0, 0x82, 0xc3, 0x06, 0x7f, 0xfa, 0x2c, + 0xcf, 0xf8, 0xf4, 0x7f, 0xff, 0xfd, 0x01, 0x49, 0xa4, 0xb8, 0xde, 0x62, 0x84, 0xfe, 0xed, 0x65, 0x1f, 0x3c, 0x3c, + 0xb2, 0x50, 0x76, 0x30, 0x5b, 0x03, 0xc0, 0x08, 0xa6, 0x64, 0x90, 0xc8, 0xcd, 0x14, 0x6e, 0x69, 0x46, 0x7a, 0xc6, + 0x1c, 0x87, 0xd7, 0x48, 0x7b, 0x49, 0x05, 0x2d, 0x5e, 0x7f, 0xcb, 0x67, 0xf0, 0xd9, 0x0d, 0x1e, 0x9e, 0x53, 0xb7, + 0x64, 0xa5, 0xa5, 0x10, 0x39, 0x06, 0x11, 0x3f, 0xb1, 0xa9, 0xa6, 0xe8, 0x4d, 0x47, 0x77, 0xda, 0x43, 0x76, 0x89, + 0x45, 0x09, 0x70, 0xc2, 0x38, 0x0f, 0x09, 0x6f, 0xe7, 0x2d, 0x82, 0x35, 0x07, 0xfe, 0x64, 0x18, 0x2e, 0xb8, 0x04, + 0x42, 0x54, 0x80, 0x43, 0x12, 0x6c, 0x9a, 0x55, 0xc9, 0x0a, 0xa0, 0x79, 0x47, 0x52, 0x65, 0x2a, 0xff, 0x50, 0x11, + 0xc9, 0x4e, 0xfe, 0x5b, 0x30, 0xa4, 0xe8, 0x30, 0x63, 0xff, 0x21, 0x12, 0x1b, 0xdc, 0x1c, 0x01, 0x41, 0x51, 0x1f, + 0xff, 0xfa, 0xc3, 0xe3, 0x55, 0xf1, 0x66, 0xe2, 0xd5, 0x78, 0x5e, 0xfa, 0x4d, 0xf2, 0x61, 0x01, 0x26, 0x15, 0xa9, + 0xf9, 0xd9, 0x32, 0x41, 0x90, 0x36, 0x4e, 0xae, 0xe3, 0x0b, 0x16, 0x56, 0x8c, 0x6e, 0x42, 0x5d, 0xd8, 0x1e, 0xfe, + 0x1d, 0x40, 0x3a, 0x50, 0x9f, 0x09, 0x14, 0xeb, 0x6e, 0x48, 0x7a, 0x91, 0x88, 0x7b, 0x7d, 0x8f, 0x72, 0x42, 0x39, + 0xb0, 0x1c, 0x65, 0x18, 0x23, 0x8b, 0x60, 0x30, 0x00, /* FRAME_END as in 4.2.3 */ 0xc5, 0xcc, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, ]; const DECODED_IMAGE: [u8; IMAGE_WIDTH * IMAGE_HEIGHT * FORMAT_SIZE] = [ - 0xDE, 0x9B, 0x22, 0xFF, 0xE0, 0x9D, 0x23, 0xFF, 0xE1, 0x9E, 0x25, 0xFF, 0xE8, 0xA5, 0x2B, 0xFF, - 0xDF, 0x9B, 0x22, 0xFF, 0xDF, 0x9C, 0x22, 0xFF, 0xE0, 0x9C, 0x22, 0xFF, 0xDF, 0x9C, 0x22, 0xFF, - 0xDF, 0x9B, 0x21, 0xFF, 0xDF, 0x9B, 0x22, 0xFF, 0xDF, 0x9B, 0x23, 0xFF, 0xDF, 0x9B, 0x23, 0xFF, - 0xDF, 0x9C, 0x24, 0xFF, 0xE2, 0x9B, 0x21, 0xFF, 0xE5, 0x9B, 0x1D, 0xFF, 0xE1, 0x9A, 0x1F, 0xFF, - 0xDD, 0x98, 0x21, 0xFF, 0xDE, 0x99, 0x21, 0xFF, 0xDE, 0x99, 0x20, 0xFF, 0xDF, 0x9A, 0x1F, 0xFF, - 0xE0, 0x9A, 0x1F, 0xFF, 0xE0, 0x99, 0x1E, 0xFF, 0xDF, 0x99, 0x1D, 0xFF, 0xDF, 0x98, 0x1C, 0xFF, - 0xDF, 0x97, 0x1B, 0xFF, 0xDC, 0x95, 0x1E, 0xFF, 0xD8, 0x93, 0x21, 0xFF, 0xDC, 0x93, 0x1F, 0xFF, - 0xE0, 0x93, 0x1C, 0xFF, 0xDC, 0x94, 0x1A, 0xFF, 0xD8, 0x95, 0x18, 0xFF, 0xDB, 0x91, 0x1C, 0xFF, - 0xDE, 0x8E, 0x1F, 0xFF, 0xDE, 0x90, 0x1A, 0xFF, 0xDE, 0x93, 0x16, 0xFF, 0xDF, 0x92, 0x17, 0xFF, - 0xDF, 0x91, 0x18, 0xFF, 0xDF, 0x90, 0x17, 0xFF, 0xDE, 0x8F, 0x17, 0xFF, 0xDE, 0x8E, 0x16, 0xFF, - 0xDE, 0x8C, 0x15, 0xFF, 0xDD, 0x8C, 0x14, 0xFF, 0xDB, 0x8C, 0x13, 0xFF, 0xDA, 0x8C, 0x12, 0xFF, - 0xD9, 0x8C, 0x11, 0xFF, 0xD9, 0x8B, 0x11, 0xFF, 0xD9, 0x89, 0x11, 0xFF, 0xDA, 0x88, 0x11, 0xFF, - 0xDA, 0x87, 0x12, 0xFF, 0xDA, 0x86, 0x11, 0xFF, 0xDA, 0x86, 0x10, 0xFF, 0xD9, 0x85, 0x10, 0xFF, - 0xD9, 0x84, 0x0F, 0xFF, 0xD9, 0x83, 0x0E, 0xFF, 0xD8, 0x83, 0x0E, 0xFF, 0xD8, 0x82, 0x0D, 0xFF, - 0xD8, 0x81, 0x0C, 0xFF, 0xD7, 0x80, 0x0C, 0xFF, 0xD7, 0x7F, 0x0D, 0xFF, 0xD6, 0x7F, 0x0D, 0xFF, - 0xD6, 0x7E, 0x0D, 0xFF, 0xD6, 0x7E, 0x0D, 0xFF, 0xD6, 0x7E, 0x0D, 0xFF, 0xD6, 0x7E, 0x0D, 0xFF, - 0xE0, 0x9F, 0x24, 0xFF, 0xE1, 0xA0, 0x27, 0xFF, 0xE2, 0xA2, 0x29, 0xFF, 0xE5, 0xA4, 0x2A, 0xFF, - 0xE0, 0x9E, 0x24, 0xFF, 0xE1, 0x9E, 0x24, 0xFF, 0xE1, 0x9E, 0x24, 0xFF, 0xE1, 0x9E, 0x23, 0xFF, - 0xE1, 0x9D, 0x23, 0xFF, 0xE1, 0x9D, 0x23, 0xFF, 0xE1, 0x9D, 0x24, 0xFF, 0xE1, 0x9D, 0x24, 0xFF, - 0xE1, 0x9D, 0x25, 0xFF, 0xE1, 0x9D, 0x23, 0xFF, 0xE2, 0x9C, 0x22, 0xFF, 0xE0, 0x9C, 0x22, 0xFF, - 0xDF, 0x9B, 0x22, 0xFF, 0xE0, 0x9B, 0x21, 0xFF, 0xE1, 0x9B, 0x20, 0xFF, 0xE1, 0x9B, 0x20, 0xFF, - 0xE1, 0x9B, 0x1F, 0xFF, 0xDF, 0x9A, 0x20, 0xFF, 0xDE, 0x99, 0x20, 0xFF, 0xDE, 0x98, 0x1E, 0xFF, - 0xDF, 0x97, 0x1D, 0xFF, 0xDF, 0x97, 0x1D, 0xFF, 0xDF, 0x96, 0x1E, 0xFF, 0xDF, 0x95, 0x1D, 0xFF, - 0xDE, 0x94, 0x1C, 0xFF, 0xDF, 0x94, 0x1C, 0xFF, 0xE0, 0x93, 0x1B, 0xFF, 0xE0, 0x93, 0x1C, 0xFF, - 0xE0, 0x92, 0x1D, 0xFF, 0xDE, 0x93, 0x1B, 0xFF, 0xDC, 0x94, 0x19, 0xFF, 0xDE, 0x93, 0x19, 0xFF, - 0xE0, 0x92, 0x19, 0xFF, 0xDF, 0x91, 0x19, 0xFF, 0xDF, 0x90, 0x18, 0xFF, 0xDF, 0x8F, 0x17, 0xFF, - 0xDF, 0x8E, 0x17, 0xFF, 0xDE, 0x8E, 0x16, 0xFF, 0xDD, 0x8D, 0x15, 0xFF, 0xDC, 0x8D, 0x13, 0xFF, - 0xDB, 0x8D, 0x12, 0xFF, 0xDB, 0x8C, 0x12, 0xFF, 0xDB, 0x8B, 0x12, 0xFF, 0xDB, 0x89, 0x12, 0xFF, - 0xDB, 0x88, 0x12, 0xFF, 0xDB, 0x87, 0x11, 0xFF, 0xDB, 0x87, 0x11, 0xFF, 0xDB, 0x86, 0x10, 0xFF, - 0xDB, 0x85, 0x0F, 0xFF, 0xDA, 0x84, 0x0E, 0xFF, 0xD9, 0x83, 0x0D, 0xFF, 0xD9, 0x83, 0x0D, 0xFF, - 0xD9, 0x83, 0x0D, 0xFF, 0xD8, 0x82, 0x0D, 0xFF, 0xD8, 0x81, 0x0D, 0xFF, 0xD7, 0x80, 0x0D, 0xFF, - 0xD7, 0x7F, 0x0D, 0xFF, 0xD7, 0x7F, 0x0D, 0xFF, 0xD7, 0x7F, 0x0D, 0xFF, 0xD7, 0x7F, 0x0D, 0xFF, - 0xE2, 0xA2, 0x27, 0xFF, 0xE3, 0xA4, 0x2A, 0xFF, 0xE3, 0xA5, 0x2D, 0xFF, 0xE3, 0xA3, 0x29, 0xFF, - 0xE2, 0xA1, 0x26, 0xFF, 0xE2, 0xA1, 0x25, 0xFF, 0xE2, 0xA1, 0x25, 0xFF, 0xE2, 0xA0, 0x25, 0xFF, - 0xE2, 0xA0, 0x24, 0xFF, 0xE2, 0x9F, 0x25, 0xFF, 0xE3, 0x9F, 0x25, 0xFF, 0xE3, 0x9E, 0x25, 0xFF, - 0xE3, 0x9E, 0x26, 0xFF, 0xE1, 0x9E, 0x26, 0xFF, 0xDE, 0x9D, 0x27, 0xFF, 0xDF, 0x9D, 0x24, 0xFF, - 0xE1, 0x9E, 0x22, 0xFF, 0xE2, 0x9D, 0x21, 0xFF, 0xE3, 0x9D, 0x20, 0xFF, 0xE3, 0x9D, 0x20, 0xFF, - 0xE3, 0x9C, 0x20, 0xFF, 0xDF, 0x9B, 0x22, 0xFF, 0xDC, 0x99, 0x24, 0xFF, 0xDE, 0x98, 0x21, 0xFF, - 0xE0, 0x98, 0x1F, 0xFF, 0xE3, 0x99, 0x1D, 0xFF, 0xE7, 0x9A, 0x1B, 0xFF, 0xE1, 0x98, 0x1B, 0xFF, - 0xDC, 0x96, 0x1C, 0xFF, 0xE2, 0x94, 0x1D, 0xFF, 0xE9, 0x92, 0x1F, 0xFF, 0xE5, 0x94, 0x1D, 0xFF, - 0xE2, 0x96, 0x1A, 0xFF, 0xDE, 0x95, 0x1B, 0xFF, 0xDA, 0x95, 0x1D, 0xFF, 0xDD, 0x94, 0x1C, 0xFF, - 0xE0, 0x93, 0x1A, 0xFF, 0xE0, 0x92, 0x1A, 0xFF, 0xE0, 0x91, 0x19, 0xFF, 0xDF, 0x91, 0x19, 0xFF, - 0xDF, 0x90, 0x18, 0xFF, 0xDE, 0x8F, 0x17, 0xFF, 0xDE, 0x8F, 0x16, 0xFF, 0xDD, 0x8E, 0x15, 0xFF, - 0xDD, 0x8E, 0x14, 0xFF, 0xDC, 0x8D, 0x14, 0xFF, 0xDC, 0x8C, 0x13, 0xFF, 0xDC, 0x8B, 0x12, 0xFF, - 0xDB, 0x8A, 0x12, 0xFF, 0xDC, 0x89, 0x11, 0xFF, 0xDC, 0x88, 0x11, 0xFF, 0xDC, 0x87, 0x10, 0xFF, - 0xDC, 0x86, 0x10, 0xFF, 0xDB, 0x84, 0x0E, 0xFF, 0xD9, 0x83, 0x0D, 0xFF, 0xD9, 0x83, 0x0E, 0xFF, - 0xDA, 0x84, 0x0E, 0xFF, 0xD9, 0x83, 0x0E, 0xFF, 0xD9, 0x82, 0x0E, 0xFF, 0xD8, 0x80, 0x0D, 0xFF, - 0xD8, 0x7F, 0x0D, 0xFF, 0xD8, 0x7F, 0x0D, 0xFF, 0xD8, 0x7F, 0x0D, 0xFF, 0xD8, 0x7F, 0x0D, 0xFF, - 0xE4, 0xA6, 0x29, 0xFF, 0xE3, 0xA7, 0x2D, 0xFF, 0xE3, 0xA8, 0x30, 0xFF, 0xE3, 0xA6, 0x2C, 0xFF, - 0xE3, 0xA3, 0x27, 0xFF, 0xE3, 0xA3, 0x27, 0xFF, 0xE3, 0xA3, 0x26, 0xFF, 0xE4, 0xA2, 0x26, 0xFF, - 0xE4, 0xA2, 0x26, 0xFF, 0xE4, 0xA1, 0x26, 0xFF, 0xE4, 0xA1, 0x26, 0xFF, 0xE5, 0xA0, 0x26, 0xFF, - 0xE5, 0x9F, 0x26, 0xFF, 0xE4, 0xA0, 0x25, 0xFF, 0xE4, 0xA0, 0x24, 0xFF, 0xE3, 0x9F, 0x24, 0xFF, - 0xE3, 0x9E, 0x24, 0xFF, 0xE4, 0x9E, 0x23, 0xFF, 0xE6, 0x9F, 0x21, 0xFF, 0xE5, 0x9F, 0x21, 0xFF, - 0xE3, 0x9E, 0x22, 0xFF, 0xE5, 0xA4, 0x13, 0xFF, 0xE7, 0x9F, 0x1A, 0xFF, 0xE7, 0x9F, 0x15, 0xFF, - 0xE7, 0xA0, 0x10, 0xFF, 0xEF, 0x9F, 0x11, 0xFF, 0xF7, 0x9E, 0x12, 0xFF, 0xEC, 0x99, 0x1A, 0xFF, - 0xE1, 0x9A, 0x17, 0xFF, 0xE3, 0x9C, 0x14, 0xFF, 0xE5, 0x98, 0x1C, 0xFF, 0xE6, 0x97, 0x1C, 0xFF, - 0xE6, 0x96, 0x1B, 0xFF, 0xDB, 0x98, 0x1B, 0xFF, 0xDF, 0x96, 0x1C, 0xFF, 0xE0, 0x95, 0x1C, 0xFF, - 0xE1, 0x94, 0x1B, 0xFF, 0xE1, 0x93, 0x1B, 0xFF, 0xE0, 0x93, 0x1A, 0xFF, 0xE0, 0x92, 0x1A, 0xFF, - 0xE0, 0x92, 0x19, 0xFF, 0xDF, 0x91, 0x18, 0xFF, 0xDF, 0x90, 0x18, 0xFF, 0xDF, 0x8F, 0x17, 0xFF, - 0xDF, 0x8F, 0x16, 0xFF, 0xDE, 0x8E, 0x15, 0xFF, 0xDD, 0x8D, 0x14, 0xFF, 0xDD, 0x8C, 0x13, 0xFF, - 0xDC, 0x8B, 0x12, 0xFF, 0xDC, 0x8A, 0x12, 0xFF, 0xDD, 0x89, 0x11, 0xFF, 0xDD, 0x87, 0x11, 0xFF, - 0xDE, 0x86, 0x10, 0xFF, 0xDC, 0x85, 0x0F, 0xFF, 0xD9, 0x83, 0x0D, 0xFF, 0xDA, 0x84, 0x0E, 0xFF, - 0xDB, 0x85, 0x0F, 0xFF, 0xDA, 0x84, 0x0F, 0xFF, 0xDA, 0x83, 0x0E, 0xFF, 0xDA, 0x81, 0x0E, 0xFF, - 0xD9, 0x80, 0x0D, 0xFF, 0xD9, 0x80, 0x0D, 0xFF, 0xD9, 0x80, 0x0D, 0xFF, 0xD9, 0x80, 0x0D, 0xFF, - 0xE7, 0xAA, 0x2C, 0xFF, 0xE4, 0xAA, 0x30, 0xFF, 0xE2, 0xAA, 0x33, 0xFF, 0xE3, 0xA8, 0x2E, 0xFF, - 0xE4, 0xA5, 0x28, 0xFF, 0xE5, 0xA5, 0x28, 0xFF, 0xE5, 0xA5, 0x28, 0xFF, 0xE5, 0xA4, 0x28, 0xFF, - 0xE5, 0xA4, 0x27, 0xFF, 0xE6, 0xA3, 0x27, 0xFF, 0xE6, 0xA2, 0x27, 0xFF, 0xE7, 0xA1, 0x27, 0xFF, - 0xE7, 0xA1, 0x27, 0xFF, 0xE8, 0xA2, 0x25, 0xFF, 0xE9, 0xA3, 0x22, 0xFF, 0xE7, 0xA0, 0x24, 0xFF, - 0xE6, 0x9E, 0x27, 0xFF, 0xE7, 0x9F, 0x25, 0xFF, 0xE8, 0xA0, 0x22, 0xFF, 0xF4, 0xA3, 0x18, 0xFF, - 0xFF, 0xA7, 0x0D, 0xFF, 0xDD, 0xA5, 0x1A, 0xFF, 0xBA, 0x8D, 0x54, 0xFF, 0x9C, 0x83, 0x6E, 0xFF, - 0x7D, 0x79, 0x88, 0xFF, 0x7B, 0x79, 0x8C, 0xFF, 0x79, 0x79, 0x91, 0xFF, 0x94, 0x7A, 0x7E, 0xFF, - 0xAF, 0x87, 0x55, 0xFF, 0xD6, 0x9B, 0x21, 0xFF, 0xFD, 0xA3, 0x04, 0xFF, 0xF4, 0x9D, 0x0F, 0xFF, - 0xEB, 0x96, 0x1B, 0xFF, 0xD9, 0x9A, 0x1B, 0xFF, 0xE4, 0x98, 0x1B, 0xFF, 0xE3, 0x96, 0x1C, 0xFF, - 0xE2, 0x95, 0x1C, 0xFF, 0xE2, 0x94, 0x1C, 0xFF, 0xE1, 0x94, 0x1B, 0xFF, 0xE1, 0x94, 0x1B, 0xFF, - 0xE0, 0x93, 0x1B, 0xFF, 0xE0, 0x92, 0x1A, 0xFF, 0xE0, 0x91, 0x19, 0xFF, 0xE1, 0x90, 0x18, 0xFF, - 0xE1, 0x8F, 0x18, 0xFF, 0xE0, 0x8F, 0x16, 0xFF, 0xDF, 0x8E, 0x15, 0xFF, 0xDE, 0x8D, 0x14, 0xFF, - 0xDC, 0x8C, 0x12, 0xFF, 0xDD, 0x8B, 0x12, 0xFF, 0xDE, 0x8A, 0x12, 0xFF, 0xDF, 0x88, 0x11, 0xFF, - 0xE0, 0x87, 0x11, 0xFF, 0xDD, 0x85, 0x0F, 0xFF, 0xDA, 0x83, 0x0D, 0xFF, 0xDB, 0x85, 0x0E, 0xFF, - 0xDC, 0x87, 0x10, 0xFF, 0xDC, 0x85, 0x0F, 0xFF, 0xDB, 0x84, 0x0F, 0xFF, 0xDB, 0x82, 0x0E, 0xFF, - 0xDA, 0x81, 0x0D, 0xFF, 0xDA, 0x81, 0x0D, 0xFF, 0xDA, 0x81, 0x0D, 0xFF, 0xDA, 0x81, 0x0D, 0xFF, - 0xE4, 0xAA, 0x30, 0xFF, 0xE8, 0xAF, 0x35, 0xFF, 0xE3, 0xAB, 0x33, 0xFF, 0xE5, 0xA9, 0x2F, 0xFF, - 0xE6, 0xA8, 0x2A, 0xFF, 0xE8, 0xAD, 0x35, 0xFF, 0xE7, 0xA6, 0x25, 0xFF, 0xE7, 0xA7, 0x28, 0xFF, - 0xE7, 0xA8, 0x2B, 0xFF, 0xE5, 0xA6, 0x2D, 0xFF, 0xE4, 0xA4, 0x2E, 0xFF, 0xE6, 0xA4, 0x2B, 0xFF, - 0xE8, 0xA4, 0x29, 0xFF, 0xE5, 0xA4, 0x2A, 0xFF, 0xE1, 0xA5, 0x2C, 0xFF, 0xEF, 0xA9, 0x10, 0xFF, - 0xF6, 0xAD, 0x12, 0xFF, 0xF8, 0xA2, 0x22, 0xFF, 0xA5, 0x91, 0x60, 0xFF, 0x5C, 0x75, 0xA5, 0xFF, - 0x14, 0x59, 0xEB, 0xFF, 0x0C, 0x48, 0xFF, 0xFF, 0x03, 0x55, 0xFA, 0xFF, 0x0F, 0x59, 0xFF, 0xFF, - 0x1A, 0x5D, 0xFF, 0xFF, 0x16, 0x60, 0xFF, 0xFF, 0x11, 0x64, 0xF9, 0xFF, 0x0F, 0x54, 0xFF, 0xFF, - 0x0C, 0x4A, 0xFF, 0xFF, 0x17, 0x49, 0xFA, 0xFF, 0x23, 0x47, 0xF5, 0xFF, 0x7E, 0x72, 0x8D, 0xFF, - 0xD9, 0x9D, 0x26, 0xFF, 0xFF, 0xA1, 0x05, 0xFF, 0xE1, 0x96, 0x1D, 0xFF, 0xE9, 0x98, 0x17, 0xFF, - 0xE3, 0x97, 0x1C, 0xFF, 0xE3, 0x97, 0x1A, 0xFF, 0xE4, 0x97, 0x18, 0xFF, 0xE3, 0x96, 0x19, 0xFF, - 0xE2, 0x94, 0x1B, 0xFF, 0xE1, 0x93, 0x1A, 0xFF, 0xE0, 0x93, 0x19, 0xFF, 0xE1, 0x92, 0x18, 0xFF, - 0xE1, 0x91, 0x17, 0xFF, 0xE0, 0x90, 0x16, 0xFF, 0xDF, 0x8F, 0x15, 0xFF, 0xDE, 0x8E, 0x14, 0xFF, - 0xDD, 0x8D, 0x13, 0xFF, 0xDE, 0x8D, 0x13, 0xFF, 0xDF, 0x8C, 0x13, 0xFF, 0xDF, 0x8A, 0x12, 0xFF, - 0xE0, 0x89, 0x10, 0xFF, 0xDD, 0x87, 0x0F, 0xFF, 0xDB, 0x84, 0x0E, 0xFF, 0xDF, 0x8A, 0x13, 0xFF, - 0xDB, 0x87, 0x0F, 0xFF, 0xDC, 0x86, 0x0F, 0xFF, 0xDC, 0x85, 0x0F, 0xFF, 0xDB, 0x84, 0x0E, 0xFF, - 0xDB, 0x82, 0x0D, 0xFF, 0xDB, 0x82, 0x0D, 0xFF, 0xDB, 0x82, 0x0D, 0xFF, 0xDB, 0x82, 0x0D, 0xFF, - 0xE2, 0xAB, 0x33, 0xFF, 0xEB, 0xB3, 0x3B, 0xFF, 0xE5, 0xAC, 0x33, 0xFF, 0xE6, 0xAB, 0x30, 0xFF, - 0xE7, 0xAA, 0x2D, 0xFF, 0xEA, 0xB6, 0x43, 0xFF, 0xEA, 0xA7, 0x23, 0xFF, 0xE9, 0xA9, 0x29, 0xFF, - 0xE9, 0xAB, 0x2F, 0xFF, 0xE5, 0xA9, 0x32, 0xFF, 0xE2, 0xA7, 0x35, 0xFF, 0xE6, 0xA7, 0x30, 0xFF, - 0xEA, 0xA8, 0x2A, 0xFF, 0xF0, 0xAA, 0x25, 0xFF, 0xF6, 0xAD, 0x1F, 0xFF, 0xA7, 0x8A, 0x4D, 0xFF, - 0x4C, 0x66, 0xB7, 0xFF, 0x0F, 0x54, 0xFF, 0xFF, 0x0C, 0x64, 0xF7, 0xFF, 0x13, 0x63, 0xF8, 0xFF, - 0x1A, 0x61, 0xF9, 0xFF, 0x1E, 0x67, 0xEF, 0xFF, 0x22, 0x61, 0xFC, 0xFF, 0x25, 0x68, 0xFA, 0xFF, - 0x28, 0x6F, 0xF9, 0xFF, 0x22, 0x70, 0xF5, 0xFF, 0x1B, 0x72, 0xF2, 0xFF, 0x1F, 0x6B, 0xF2, 0xFF, - 0x24, 0x64, 0xF1, 0xFF, 0x21, 0x55, 0xFF, 0xFF, 0x1E, 0x53, 0xFF, 0xFF, 0x16, 0x4B, 0xFF, 0xFF, - 0x0E, 0x43, 0xFF, 0xFF, 0x5A, 0x61, 0xB1, 0xFF, 0xDF, 0x95, 0x1E, 0xFF, 0xF0, 0x9A, 0x12, 0xFF, - 0xE5, 0x9A, 0x1B, 0xFF, 0xE5, 0x9A, 0x18, 0xFF, 0xE6, 0x9A, 0x14, 0xFF, 0xE5, 0x98, 0x17, 0xFF, - 0xE4, 0x95, 0x1B, 0xFF, 0xE2, 0x95, 0x1A, 0xFF, 0xE0, 0x94, 0x19, 0xFF, 0xE1, 0x93, 0x18, 0xFF, - 0xE2, 0x92, 0x17, 0xFF, 0xE1, 0x91, 0x16, 0xFF, 0xE0, 0x90, 0x16, 0xFF, 0xDF, 0x8F, 0x15, 0xFF, - 0xDE, 0x8F, 0x14, 0xFF, 0xDF, 0x8E, 0x14, 0xFF, 0xE1, 0x8E, 0x14, 0xFF, 0xE0, 0x8C, 0x12, 0xFF, - 0xE0, 0x8A, 0x10, 0xFF, 0xDE, 0x88, 0x10, 0xFF, 0xDC, 0x86, 0x10, 0xFF, 0xE3, 0x8E, 0x17, 0xFF, - 0xDB, 0x87, 0x0D, 0xFF, 0xDB, 0x86, 0x0E, 0xFF, 0xDC, 0x86, 0x0F, 0xFF, 0xDC, 0x85, 0x0E, 0xFF, - 0xDB, 0x83, 0x0E, 0xFF, 0xDB, 0x83, 0x0E, 0xFF, 0xDB, 0x83, 0x0E, 0xFF, 0xDB, 0x83, 0x0E, 0xFF, - 0xEA, 0xB0, 0x36, 0xFF, 0xEF, 0xB3, 0x36, 0xFF, 0xED, 0xAE, 0x2E, 0xFF, 0xEC, 0xAD, 0x2C, 0xFF, - 0xEB, 0xAD, 0x2A, 0xFF, 0xEF, 0xB3, 0x40, 0xFF, 0xE9, 0xAA, 0x28, 0xFF, 0xE7, 0xAB, 0x2B, 0xFF, - 0xE6, 0xAB, 0x2F, 0xFF, 0xE6, 0xAA, 0x30, 0xFF, 0xE5, 0xAA, 0x31, 0xFF, 0xE6, 0xA9, 0x2E, 0xFF, - 0xE7, 0xA9, 0x2B, 0xFF, 0xEB, 0xA7, 0x24, 0xFF, 0x5F, 0x6A, 0x93, 0xFF, 0x05, 0x3D, 0xFF, 0xFF, - 0x17, 0x56, 0xF9, 0xFF, 0x12, 0x72, 0xE2, 0xFF, 0x29, 0x72, 0xF8, 0xFF, 0x27, 0x74, 0xF7, 0xFF, - 0x25, 0x76, 0xF6, 0xFF, 0x28, 0x76, 0xF1, 0xFF, 0x2A, 0x70, 0xF8, 0xFF, 0x2D, 0x77, 0xF8, 0xFF, - 0x30, 0x7D, 0xF9, 0xFF, 0x2D, 0x7F, 0xF7, 0xFF, 0x2A, 0x81, 0xF5, 0xFF, 0x2B, 0x7B, 0xF5, 0xFF, - 0x2C, 0x75, 0xF5, 0xFF, 0x2B, 0x6A, 0xFD, 0xFF, 0x2A, 0x64, 0xFA, 0xFF, 0x2C, 0x5D, 0xF5, 0xFF, - 0x2E, 0x57, 0xF0, 0xFF, 0x10, 0x48, 0xFF, 0xFF, 0x0E, 0x45, 0xFF, 0xFF, 0x7F, 0x76, 0x80, 0xFF, - 0xF0, 0xA7, 0x02, 0xFF, 0xEA, 0x95, 0x24, 0xFF, 0xE3, 0x9A, 0x19, 0xFF, 0xE4, 0x98, 0x1B, 0xFF, - 0xE4, 0x95, 0x1D, 0xFF, 0xE2, 0x95, 0x1B, 0xFF, 0xDF, 0x96, 0x19, 0xFF, 0xE1, 0x94, 0x18, 0xFF, - 0xE2, 0x93, 0x17, 0xFF, 0xE2, 0x92, 0x16, 0xFF, 0xE1, 0x92, 0x16, 0xFF, 0xE0, 0x91, 0x15, 0xFF, - 0xDF, 0x90, 0x15, 0xFF, 0xE0, 0x90, 0x15, 0xFF, 0xE2, 0x91, 0x15, 0xFF, 0xE1, 0x8E, 0x12, 0xFF, - 0xDF, 0x8C, 0x0F, 0xFF, 0xDF, 0x8B, 0x12, 0xFF, 0xDF, 0x8A, 0x14, 0xFF, 0xE2, 0x8D, 0x15, 0xFF, - 0xDC, 0x89, 0x0E, 0xFF, 0xDC, 0x88, 0x0E, 0xFF, 0xDD, 0x87, 0x0F, 0xFF, 0xDC, 0x86, 0x0E, 0xFF, - 0xDC, 0x85, 0x0E, 0xFF, 0xDC, 0x85, 0x0E, 0xFF, 0xDC, 0x85, 0x0E, 0xFF, 0xDC, 0x85, 0x0E, 0xFF, - 0xE6, 0xC0, 0x5F, 0xFF, 0xE8, 0xBE, 0x57, 0xFF, 0xE9, 0xBB, 0x4F, 0xFF, 0xE6, 0xBA, 0x4E, 0xFF, - 0xE3, 0xB9, 0x4D, 0xFF, 0xED, 0xB6, 0x50, 0xFF, 0xE7, 0xAE, 0x2D, 0xFF, 0xE6, 0xAC, 0x2E, 0xFF, - 0xE4, 0xAB, 0x2E, 0xFF, 0xE6, 0xAC, 0x2E, 0xFF, 0xE8, 0xAD, 0x2E, 0xFF, 0xE7, 0xAB, 0x2D, 0xFF, - 0xE5, 0xAA, 0x2C, 0xFF, 0xFF, 0xB2, 0x15, 0xFF, 0x10, 0x42, 0xEB, 0xFF, 0x16, 0x4F, 0xF1, 0xFF, - 0x1C, 0x5C, 0xF7, 0xFF, 0x23, 0x71, 0xF8, 0xFF, 0x29, 0x85, 0xF9, 0xFF, 0x2D, 0x88, 0xF6, 0xFF, - 0x30, 0x8B, 0xF3, 0xFF, 0x31, 0x85, 0xF4, 0xFF, 0x33, 0x7F, 0xF4, 0xFF, 0x35, 0x85, 0xF6, 0xFF, - 0x37, 0x8B, 0xF9, 0xFF, 0x38, 0x8D, 0xF8, 0xFF, 0x3A, 0x90, 0xF7, 0xFF, 0x37, 0x8B, 0xF8, 0xFF, - 0x35, 0x86, 0xF8, 0xFF, 0x35, 0x7E, 0xF7, 0xFF, 0x35, 0x75, 0xF6, 0xFF, 0x33, 0x6D, 0xF7, 0xFF, - 0x31, 0x64, 0xF7, 0xFF, 0x31, 0x5E, 0xF8, 0xFF, 0x30, 0x57, 0xF8, 0xFF, 0x25, 0x51, 0xFF, 0xFF, - 0x36, 0x51, 0xF5, 0xFF, 0xFD, 0xA4, 0x03, 0xFF, 0xE1, 0x9A, 0x1E, 0xFF, 0xE3, 0x98, 0x1E, 0xFF, - 0xE5, 0x96, 0x1E, 0xFF, 0xE2, 0x96, 0x1C, 0xFF, 0xDF, 0x97, 0x19, 0xFF, 0xE1, 0x96, 0x18, 0xFF, - 0xE3, 0x95, 0x17, 0xFF, 0xE2, 0x94, 0x16, 0xFF, 0xE1, 0x93, 0x16, 0xFF, 0xE0, 0x92, 0x16, 0xFF, - 0xE0, 0x91, 0x15, 0xFF, 0xE2, 0x92, 0x16, 0xFF, 0xE4, 0x93, 0x16, 0xFF, 0xE1, 0x90, 0x12, 0xFF, - 0xDF, 0x8E, 0x0F, 0xFF, 0xE1, 0x8D, 0x14, 0xFF, 0xE3, 0x8D, 0x18, 0xFF, 0xE0, 0x8C, 0x13, 0xFF, - 0xDE, 0x8B, 0x0F, 0xFF, 0xDD, 0x89, 0x0F, 0xFF, 0xDD, 0x88, 0x0E, 0xFF, 0xDD, 0x87, 0x0E, 0xFF, - 0xDC, 0x86, 0x0E, 0xFF, 0xDC, 0x86, 0x0E, 0xFF, 0xDC, 0x86, 0x0E, 0xFF, 0xDC, 0x86, 0x0E, 0xFF, - 0xED, 0xB6, 0x3C, 0xFF, 0xEE, 0xB3, 0x35, 0xFF, 0xEF, 0xB1, 0x2F, 0xFF, 0xED, 0xB1, 0x2F, 0xFF, - 0xEC, 0xB0, 0x2F, 0xFF, 0xEE, 0xB0, 0x38, 0xFF, 0xE9, 0xAE, 0x2D, 0xFF, 0xE7, 0xAD, 0x2F, 0xFF, - 0xE6, 0xAD, 0x30, 0xFF, 0xE8, 0xAE, 0x2F, 0xFF, 0xEA, 0xB0, 0x2D, 0xFF, 0xEC, 0xAD, 0x30, 0xFF, - 0xEE, 0xAF, 0x28, 0xFF, 0xC8, 0xA9, 0x2F, 0xFF, 0x04, 0x3D, 0xFF, 0xFF, 0x19, 0x50, 0xFA, 0xFF, - 0x21, 0x5F, 0xF8, 0xFF, 0x28, 0x73, 0xF7, 0xFF, 0x2F, 0x87, 0xF7, 0xFF, 0x37, 0x95, 0xFA, 0xFF, - 0x37, 0x9B, 0xF5, 0xFF, 0x3A, 0x96, 0xF5, 0xFF, 0x3D, 0x92, 0xF5, 0xFF, 0x3F, 0x94, 0xF7, 0xFF, - 0x41, 0x96, 0xF9, 0xFF, 0x43, 0x99, 0xF9, 0xFF, 0x46, 0x9D, 0xF9, 0xFF, 0x44, 0x98, 0xF8, 0xFF, - 0x43, 0x94, 0xF7, 0xFF, 0x42, 0x8D, 0xF8, 0xFF, 0x41, 0x86, 0xF9, 0xFF, 0x3F, 0x7D, 0xF9, 0xFF, - 0x3C, 0x73, 0xF9, 0xFF, 0x38, 0x70, 0xF7, 0xFF, 0x35, 0x6C, 0xF4, 0xFF, 0x21, 0x60, 0xFF, 0xFF, - 0x62, 0x6C, 0xBE, 0xFF, 0xEF, 0x9D, 0x12, 0xFF, 0xE8, 0x9A, 0x21, 0xFF, 0xED, 0x99, 0x1C, 0xFF, - 0xE3, 0x9B, 0x17, 0xFF, 0xF0, 0x98, 0x13, 0xFF, 0xE0, 0x94, 0x1B, 0xFF, 0xE1, 0x96, 0x1A, 0xFF, - 0xE3, 0x97, 0x19, 0xFF, 0xE4, 0x96, 0x18, 0xFF, 0xE5, 0x95, 0x17, 0xFF, 0xE3, 0x94, 0x18, 0xFF, - 0xE2, 0x93, 0x19, 0xFF, 0xE0, 0x91, 0x16, 0xFF, 0xDE, 0x90, 0x14, 0xFF, 0xE1, 0x91, 0x15, 0xFF, - 0xE5, 0x92, 0x16, 0xFF, 0xE3, 0x90, 0x14, 0xFF, 0xE2, 0x8D, 0x11, 0xFF, 0xE2, 0x8D, 0x10, 0xFF, - 0xE3, 0x8D, 0x0F, 0xFF, 0xDE, 0x8A, 0x10, 0xFF, 0xD8, 0x88, 0x11, 0xFF, 0xE1, 0x87, 0x0E, 0xFF, - 0xDC, 0x89, 0x0B, 0xFF, 0xE0, 0x85, 0x10, 0xFF, 0xE4, 0x87, 0x09, 0xFF, 0xE4, 0x87, 0x09, 0xFF, - 0xE8, 0xB5, 0x3F, 0xFF, 0xE9, 0xB3, 0x3B, 0xFF, 0xEA, 0xB2, 0x36, 0xFF, 0xE9, 0xB1, 0x37, 0xFF, - 0xE8, 0xB1, 0x37, 0xFF, 0xE9, 0xAF, 0x32, 0xFF, 0xEA, 0xAE, 0x2D, 0xFF, 0xE9, 0xAE, 0x30, 0xFF, - 0xE8, 0xAF, 0x32, 0xFF, 0xEA, 0xB1, 0x30, 0xFF, 0xEC, 0xB4, 0x2D, 0xFF, 0xF1, 0xAE, 0x34, 0xFF, - 0xF6, 0xB4, 0x24, 0xFF, 0x86, 0x7E, 0x8D, 0xFF, 0x00, 0x4E, 0xF6, 0xFF, 0x1D, 0x5C, 0xEC, 0xFF, - 0x25, 0x63, 0xF9, 0xFF, 0x2D, 0x76, 0xF7, 0xFF, 0x35, 0x89, 0xF4, 0xFF, 0x41, 0xA2, 0xFD, 0xFF, - 0x3E, 0xAB, 0xF6, 0xFF, 0x43, 0xA8, 0xF6, 0xFF, 0x47, 0xA4, 0xF7, 0xFF, 0x4A, 0xA3, 0xF8, 0xFF, - 0x4C, 0xA1, 0xFA, 0xFF, 0x4E, 0xA5, 0xFA, 0xFF, 0x51, 0xAA, 0xFB, 0xFF, 0x52, 0xA6, 0xF9, 0xFF, - 0x52, 0xA2, 0xF7, 0xFF, 0x4F, 0x9C, 0xFA, 0xFF, 0x4D, 0x97, 0xFD, 0xFF, 0x4A, 0x8D, 0xFC, 0xFF, - 0x47, 0x83, 0xFB, 0xFF, 0x40, 0x82, 0xF6, 0xFF, 0x39, 0x82, 0xF1, 0xFF, 0x2B, 0x72, 0xF4, 0xFF, - 0xAB, 0x8C, 0x71, 0xFF, 0xF0, 0x99, 0x16, 0xFF, 0xEF, 0x99, 0x25, 0xFF, 0xE8, 0x97, 0x25, 0xFF, - 0xC5, 0x9A, 0x26, 0xFF, 0xF0, 0x96, 0x16, 0xFF, 0xE2, 0x91, 0x1C, 0xFF, 0xE2, 0x96, 0x1B, 0xFF, - 0xE2, 0x9A, 0x1B, 0xFF, 0xE5, 0x99, 0x19, 0xFF, 0xE8, 0x98, 0x18, 0xFF, 0xE6, 0x96, 0x1A, 0xFF, - 0xE4, 0x95, 0x1C, 0xFF, 0xDF, 0x91, 0x17, 0xFF, 0xD9, 0x8D, 0x13, 0xFF, 0xE2, 0x92, 0x18, 0xFF, - 0xEA, 0x97, 0x1E, 0xFF, 0xE5, 0x92, 0x14, 0xFF, 0xE1, 0x8D, 0x0B, 0xFF, 0xE5, 0x8E, 0x0D, 0xFF, - 0xE9, 0x8F, 0x10, 0xFF, 0xDE, 0x8B, 0x12, 0xFF, 0xD4, 0x88, 0x14, 0xFF, 0xE6, 0x87, 0x0E, 0xFF, - 0xDC, 0x8C, 0x08, 0xFF, 0xE4, 0x84, 0x11, 0xFF, 0xEC, 0x88, 0x03, 0xFF, 0xEC, 0x88, 0x03, 0xFF, - 0xEA, 0xB6, 0x3D, 0xFF, 0xEA, 0xB5, 0x3A, 0xFF, 0xEB, 0xB4, 0x38, 0xFF, 0xEB, 0xB3, 0x37, 0xFF, - 0xEA, 0xB3, 0x37, 0xFF, 0xEB, 0xB2, 0x34, 0xFF, 0xEB, 0xB1, 0x32, 0xFF, 0xEB, 0xB1, 0x33, 0xFF, - 0xEA, 0xB0, 0x34, 0xFF, 0xE9, 0xB3, 0x32, 0xFF, 0xE8, 0xB5, 0x2F, 0xFF, 0xF0, 0xB0, 0x34, 0xFF, - 0xF8, 0xB6, 0x22, 0xFF, 0x44, 0x60, 0xC5, 0xFF, 0x0B, 0x53, 0xF9, 0xFF, 0x21, 0x63, 0xF2, 0xFF, - 0x29, 0x6F, 0xF6, 0xFF, 0x2F, 0x7D, 0xF6, 0xFF, 0x35, 0x8A, 0xF7, 0xFF, 0x41, 0xA1, 0xFA, 0xFF, - 0x45, 0xAF, 0xF6, 0xFF, 0x4F, 0xB4, 0xFA, 0xFF, 0x50, 0xB0, 0xF6, 0xFF, 0x53, 0xAE, 0xF8, 0xFF, - 0x56, 0xAC, 0xFA, 0xFF, 0x59, 0xB2, 0xFC, 0xFF, 0x5D, 0xB7, 0xFD, 0xFF, 0x5F, 0xB3, 0xFA, 0xFF, - 0x61, 0xAF, 0xF6, 0xFF, 0x5D, 0xAC, 0xF9, 0xFF, 0x59, 0xA9, 0xFD, 0xFF, 0x55, 0x9F, 0xFB, 0xFF, - 0x50, 0x94, 0xF8, 0xFF, 0x4A, 0x91, 0xF7, 0xFF, 0x44, 0x8D, 0xF5, 0xFF, 0x22, 0x7D, 0xFF, 0xFF, - 0xEF, 0xA5, 0x1A, 0xFF, 0xF3, 0x9E, 0x12, 0xFF, 0xF1, 0x96, 0x28, 0xFF, 0xB0, 0x9F, 0x22, 0xFF, - 0x00, 0x96, 0x6C, 0xFF, 0x82, 0x9B, 0x3B, 0xFF, 0xF8, 0x9D, 0x16, 0xFF, 0xF4, 0x9B, 0x15, 0xFF, - 0xE2, 0x9C, 0x14, 0xFF, 0xE4, 0x99, 0x15, 0xFF, 0xE6, 0x96, 0x17, 0xFF, 0xE5, 0x95, 0x18, 0xFF, - 0xE4, 0x93, 0x1A, 0xFF, 0xE2, 0x93, 0x18, 0xFF, 0xE0, 0x92, 0x16, 0xFF, 0xE6, 0x98, 0x1C, 0xFF, - 0xE4, 0x95, 0x19, 0xFF, 0xE4, 0x92, 0x16, 0xFF, 0xE5, 0x8F, 0x12, 0xFF, 0xEB, 0x8C, 0x12, 0xFF, - 0xE3, 0x8B, 0x12, 0xFF, 0xE3, 0x87, 0x00, 0xFF, 0xF4, 0x7B, 0x00, 0xFF, 0xD3, 0x86, 0x1A, 0xFF, - 0xF0, 0x8C, 0x0C, 0xFF, 0xE2, 0x8E, 0x00, 0xFF, 0xEA, 0x84, 0x0D, 0xFF, 0xF1, 0x86, 0x07, 0xFF, - 0xEC, 0xB7, 0x3B, 0xFF, 0xEC, 0xB6, 0x3A, 0xFF, 0xEC, 0xB6, 0x39, 0xFF, 0xEC, 0xB5, 0x38, 0xFF, - 0xED, 0xB5, 0x37, 0xFF, 0xEC, 0xB4, 0x37, 0xFF, 0xEC, 0xB4, 0x37, 0xFF, 0xEC, 0xB3, 0x36, 0xFF, - 0xEC, 0xB2, 0x36, 0xFF, 0xE8, 0xB4, 0x33, 0xFF, 0xE4, 0xB5, 0x31, 0xFF, 0xEF, 0xB1, 0x34, 0xFF, - 0xF9, 0xB8, 0x21, 0xFF, 0x02, 0x41, 0xFD, 0xFF, 0x1E, 0x58, 0xFC, 0xFF, 0x25, 0x6A, 0xF8, 0xFF, - 0x2C, 0x7C, 0xF3, 0xFF, 0x31, 0x84, 0xF6, 0xFF, 0x35, 0x8B, 0xF9, 0xFF, 0x41, 0xA0, 0xF7, 0xFF, - 0x4C, 0xB4, 0xF6, 0xFF, 0x5B, 0xC0, 0xFE, 0xFF, 0x59, 0xBC, 0xF6, 0xFF, 0x5D, 0xBA, 0xF8, 0xFF, - 0x60, 0xB7, 0xFA, 0xFF, 0x64, 0xBE, 0xFD, 0xFF, 0x69, 0xC4, 0xFF, 0xFF, 0x6C, 0xC0, 0xFA, 0xFF, - 0x6F, 0xBD, 0xF5, 0xFF, 0x6A, 0xBC, 0xF9, 0xFF, 0x65, 0xBB, 0xFD, 0xFF, 0x60, 0xB1, 0xFA, 0xFF, - 0x5A, 0xA6, 0xF6, 0xFF, 0x54, 0x9F, 0xF8, 0xFF, 0x4F, 0x98, 0xFA, 0xFF, 0x6E, 0x94, 0xDF, 0xFF, - 0xFB, 0xA6, 0x07, 0xFF, 0xDA, 0x9C, 0x24, 0xFF, 0xF2, 0x9F, 0x14, 0xFF, 0x71, 0xA1, 0x4A, 0xFF, - 0x0D, 0xA9, 0x68, 0xFF, 0x06, 0xA3, 0x61, 0xFF, 0x1B, 0x98, 0x5A, 0xFF, 0x9B, 0x96, 0x33, 0xFF, - 0xFE, 0x99, 0x0D, 0xFF, 0xF1, 0x96, 0x11, 0xFF, 0xE4, 0x94, 0x16, 0xFF, 0xE4, 0x93, 0x17, 0xFF, - 0xE4, 0x91, 0x18, 0xFF, 0xE5, 0x94, 0x19, 0xFF, 0xE6, 0x98, 0x1A, 0xFF, 0xEA, 0x9D, 0x1F, 0xFF, - 0xDE, 0x93, 0x15, 0xFF, 0xE3, 0x92, 0x17, 0xFF, 0xE8, 0x91, 0x1A, 0xFF, 0xEB, 0x94, 0x1F, 0xFF, - 0xD1, 0x9D, 0x25, 0xFF, 0x72, 0xF7, 0xD0, 0xFF, 0x95, 0xF2, 0xC1, 0xFF, 0xF0, 0x83, 0x00, 0xFF, - 0xA0, 0x81, 0x17, 0xFF, 0x2E, 0x7E, 0x3B, 0xFF, 0xCB, 0x87, 0x16, 0xFF, 0xDA, 0x8A, 0x0B, 0xFF, - 0xEC, 0xB8, 0x3D, 0xFF, 0xED, 0xB8, 0x3C, 0xFF, 0xED, 0xB7, 0x3B, 0xFF, 0xED, 0xB7, 0x3A, 0xFF, - 0xED, 0xB6, 0x39, 0xFF, 0xED, 0xB6, 0x39, 0xFF, 0xED, 0xB6, 0x39, 0xFF, 0xED, 0xB6, 0x39, 0xFF, - 0xED, 0xB6, 0x39, 0xFF, 0xEC, 0xB4, 0x37, 0xFF, 0xEB, 0xB2, 0x34, 0xFF, 0xF2, 0xAB, 0x34, 0xFF, - 0xB3, 0x95, 0x6D, 0xFF, 0x00, 0x46, 0xFF, 0xFF, 0x20, 0x64, 0xF7, 0xFF, 0x28, 0x73, 0xF6, 0xFF, - 0x30, 0x81, 0xF5, 0xFF, 0x37, 0x8B, 0xF6, 0xFF, 0x3D, 0x94, 0xF8, 0xFF, 0x48, 0xA6, 0xF8, 0xFF, - 0x53, 0xB7, 0xF7, 0xFF, 0x60, 0xC2, 0xFB, 0xFF, 0x65, 0xC4, 0xF7, 0xFF, 0x69, 0xC3, 0xF9, 0xFF, - 0x6D, 0xC2, 0xFA, 0xFF, 0x72, 0xC6, 0xFA, 0xFF, 0x77, 0xCB, 0xFA, 0xFF, 0x7A, 0xCB, 0xFB, 0xFF, - 0x7D, 0xCB, 0xFC, 0xFF, 0x7A, 0xC8, 0xFA, 0xFF, 0x77, 0xC5, 0xF8, 0xFF, 0x72, 0xBC, 0xF9, 0xFF, - 0x6C, 0xB4, 0xFA, 0xFF, 0x68, 0xB0, 0xF6, 0xFF, 0x56, 0xAA, 0xFD, 0xFF, 0xA5, 0xA0, 0x93, 0xFF, - 0xF3, 0xA1, 0x13, 0xFF, 0xEF, 0x9C, 0x21, 0xFF, 0xFF, 0x9D, 0x19, 0xFF, 0x23, 0xC1, 0x71, 0xFF, - 0x25, 0xB7, 0x79, 0xFF, 0x1D, 0xB2, 0x71, 0xFF, 0x23, 0xAA, 0x6A, 0xFF, 0x25, 0xA0, 0x66, 0xFF, - 0x18, 0x9A, 0x63, 0xFF, 0x72, 0x9C, 0x41, 0xFF, 0xCB, 0x9F, 0x1E, 0xFF, 0xFF, 0x93, 0x18, 0xFF, - 0xF1, 0x98, 0x13, 0xFF, 0xF4, 0x9C, 0x18, 0xFF, 0xF7, 0xA0, 0x1D, 0xFF, 0xFF, 0x9C, 0x1B, 0xFF, - 0xF6, 0x93, 0x10, 0xFF, 0xF1, 0x93, 0x11, 0xFF, 0xEC, 0x93, 0x13, 0xFF, 0xFF, 0x83, 0x00, 0xFF, - 0xA0, 0xCB, 0x72, 0xFF, 0x81, 0xF9, 0xCB, 0xFF, 0xAC, 0xFF, 0xD0, 0xFF, 0x45, 0xA0, 0x78, 0xFF, - 0x00, 0x77, 0x33, 0xFF, 0x02, 0x7C, 0x3A, 0xFF, 0xE2, 0x8C, 0x0D, 0xFF, 0xDB, 0x8E, 0x0D, 0xFF, - 0xED, 0xBA, 0x3E, 0xFF, 0xED, 0xB9, 0x3D, 0xFF, 0xED, 0xB9, 0x3C, 0xFF, 0xED, 0xB8, 0x3B, 0xFF, - 0xED, 0xB8, 0x3A, 0xFF, 0xED, 0xB8, 0x3B, 0xFF, 0xED, 0xB8, 0x3B, 0xFF, 0xEE, 0xB8, 0x3C, 0xFF, - 0xEE, 0xB9, 0x3C, 0xFF, 0xF0, 0xB4, 0x3A, 0xFF, 0xF2, 0xAE, 0x37, 0xFF, 0xFE, 0xB3, 0x32, 0xFF, - 0x7C, 0x8E, 0xB3, 0xFF, 0x06, 0x58, 0xFF, 0xFF, 0x22, 0x71, 0xF3, 0xFF, 0x2B, 0x7C, 0xF4, 0xFF, - 0x34, 0x86, 0xF6, 0xFF, 0x3D, 0x92, 0xF7, 0xFF, 0x45, 0x9D, 0xF8, 0xFF, 0x4F, 0xAC, 0xF8, 0xFF, - 0x5A, 0xBB, 0xF8, 0xFF, 0x65, 0xC4, 0xF9, 0xFF, 0x70, 0xCC, 0xF9, 0xFF, 0x75, 0xCC, 0xFA, 0xFF, - 0x7A, 0xCC, 0xFA, 0xFF, 0x80, 0xCF, 0xF7, 0xFF, 0x85, 0xD2, 0xF4, 0xFF, 0x89, 0xD5, 0xFB, 0xFF, - 0x8C, 0xD9, 0xFF, 0xFF, 0x8B, 0xD3, 0xFA, 0xFF, 0x89, 0xCE, 0xF2, 0xFF, 0x84, 0xC8, 0xF8, 0xFF, - 0x7F, 0xC1, 0xFE, 0xFF, 0x7C, 0xC1, 0xF4, 0xFF, 0x5E, 0xBC, 0xFF, 0xFF, 0xDB, 0xAB, 0x47, 0xFF, - 0xEA, 0x9C, 0x1E, 0xFF, 0xE8, 0xA2, 0x1D, 0xFF, 0xE5, 0xA7, 0x1D, 0xFF, 0x1B, 0xD3, 0x98, 0xFF, - 0x21, 0xCB, 0x8A, 0xFF, 0x26, 0xC3, 0x82, 0xFF, 0x2C, 0xBB, 0x7A, 0xFF, 0x28, 0xB4, 0x75, 0xFF, - 0x25, 0xAD, 0x70, 0xFF, 0x16, 0xAB, 0x6D, 0xFF, 0x08, 0xA9, 0x6A, 0xFF, 0x11, 0xA9, 0x5E, 0xFF, - 0x53, 0x9E, 0x51, 0xFF, 0x6D, 0x9B, 0x47, 0xFF, 0x87, 0x97, 0x3E, 0xFF, 0x91, 0x95, 0x3B, 0xFF, - 0x80, 0x98, 0x38, 0xFF, 0x63, 0x96, 0x44, 0xFF, 0x45, 0x94, 0x4F, 0xFF, 0x3C, 0xB4, 0x82, 0xFF, - 0x1B, 0x84, 0x4F, 0xFF, 0x87, 0xE0, 0xAF, 0xFF, 0x82, 0xCC, 0x9E, 0xFF, 0x11, 0x7F, 0x35, 0xFF, - 0x1B, 0x82, 0x42, 0xFF, 0x3B, 0x84, 0x32, 0xFF, 0xF9, 0x92, 0x04, 0xFF, 0xDC, 0x92, 0x0F, 0xFF, - 0xEE, 0xBC, 0x40, 0xFF, 0xED, 0xBB, 0x3F, 0xFF, 0xED, 0xBA, 0x3E, 0xFF, 0xED, 0xBA, 0x3D, 0xFF, - 0xEC, 0xB9, 0x3C, 0xFF, 0xEC, 0xB9, 0x3C, 0xFF, 0xEC, 0xB8, 0x3C, 0xFF, 0xEC, 0xB8, 0x3C, 0xFF, - 0xEB, 0xB8, 0x3C, 0xFF, 0xF0, 0xB3, 0x3F, 0xFF, 0xF4, 0xAF, 0x42, 0xFF, 0xE8, 0xBA, 0x0D, 0xFF, - 0x96, 0xB8, 0xFF, 0xFF, 0x4C, 0x81, 0xF6, 0xFF, 0x22, 0x75, 0xF5, 0xFF, 0x2D, 0x80, 0xF6, 0xFF, - 0x38, 0x8B, 0xF7, 0xFF, 0x42, 0x99, 0xF7, 0xFF, 0x4D, 0xA6, 0xF7, 0xFF, 0x56, 0xB2, 0xF8, 0xFF, - 0x5F, 0xBD, 0xF9, 0xFF, 0x6D, 0xC8, 0xF9, 0xFF, 0x7A, 0xD4, 0xFA, 0xFF, 0x81, 0xD5, 0xFA, 0xFF, - 0x88, 0xD7, 0xF9, 0xFF, 0x8D, 0xD8, 0xFA, 0xFF, 0x92, 0xDA, 0xFB, 0xFF, 0xA1, 0xE4, 0xF9, 0xFF, - 0x91, 0xD6, 0xFE, 0xFF, 0x9F, 0xDE, 0xFA, 0xFF, 0x97, 0xDB, 0xF8, 0xFF, 0x93, 0xD5, 0xF9, 0xFF, - 0x8F, 0xCF, 0xFB, 0xFF, 0x85, 0xD1, 0xFF, 0xFF, 0x78, 0xC6, 0xFF, 0xFF, 0xFC, 0x9A, 0x00, 0xFF, - 0xF1, 0xA8, 0x26, 0xFF, 0xF8, 0xA4, 0x1F, 0xFF, 0xA5, 0xBD, 0x53, 0xFF, 0x30, 0xDA, 0xA4, 0xFF, - 0x37, 0xD5, 0x9D, 0xFF, 0x3A, 0xD0, 0x97, 0xFF, 0x3D, 0xCA, 0x90, 0xFF, 0x39, 0xC5, 0x8A, 0xFF, - 0x35, 0xBF, 0x84, 0xFF, 0x30, 0xBD, 0x7C, 0xFF, 0x2C, 0xBC, 0x74, 0xFF, 0x1B, 0xB8, 0x75, 0xFF, - 0x27, 0xAF, 0x77, 0xFF, 0x25, 0xAB, 0x72, 0xFF, 0x23, 0xA7, 0x6D, 0xFF, 0x28, 0xA3, 0x6A, 0xFF, - 0x1E, 0xA2, 0x68, 0xFF, 0x19, 0x95, 0x57, 0xFF, 0x45, 0xB7, 0x77, 0xFF, 0x81, 0xF0, 0xBA, 0xFF, - 0x4C, 0xAC, 0x72, 0xFF, 0x14, 0x7B, 0x41, 0xFF, 0x1D, 0x8A, 0x4F, 0xFF, 0x1C, 0x86, 0x42, 0xFF, - 0x14, 0x86, 0x49, 0xFF, 0x8B, 0x86, 0x16, 0xFF, 0xF5, 0x90, 0x0A, 0xFF, 0xE7, 0x8D, 0x15, 0xFF, - 0xEF, 0xBE, 0x41, 0xFF, 0xEE, 0xBD, 0x40, 0xFF, 0xED, 0xBC, 0x3F, 0xFF, 0xED, 0xBB, 0x3E, 0xFF, - 0xEC, 0xBA, 0x3D, 0xFF, 0xEB, 0xBA, 0x3D, 0xFF, 0xEA, 0xB9, 0x3C, 0xFF, 0xE9, 0xB8, 0x3C, 0xFF, - 0xE8, 0xB7, 0x3B, 0xFF, 0xF0, 0xB9, 0x39, 0xFF, 0xF7, 0xBA, 0x37, 0xFF, 0xDC, 0xB5, 0x50, 0xFF, - 0x44, 0x96, 0xFF, 0xFF, 0x9C, 0xC4, 0xFE, 0xFF, 0x23, 0x79, 0xF7, 0xFF, 0x30, 0x85, 0xF8, 0xFF, - 0x3C, 0x91, 0xF8, 0xFF, 0x48, 0xA0, 0xF8, 0xFF, 0x55, 0xAF, 0xF7, 0xFF, 0x5D, 0xB7, 0xF8, 0xFF, - 0x65, 0xBF, 0xF9, 0xFF, 0x75, 0xCD, 0xFA, 0xFF, 0x85, 0xDB, 0xFB, 0xFF, 0x8D, 0xDE, 0xFA, 0xFF, - 0x95, 0xE1, 0xF9, 0xFF, 0x9A, 0xE1, 0xFD, 0xFF, 0xA0, 0xE2, 0xFF, 0xFF, 0xA3, 0xE8, 0xFA, 0xFF, - 0x6B, 0xBD, 0xFF, 0xFF, 0x9E, 0xDE, 0xFC, 0xFF, 0xA6, 0xE8, 0xFF, 0xFF, 0xA3, 0xE3, 0xFB, 0xFF, - 0xA0, 0xDE, 0xF7, 0xFF, 0x99, 0xD7, 0xFD, 0xFF, 0xAB, 0xBD, 0xB5, 0xFF, 0xF0, 0x9F, 0x11, 0xFF, - 0xE8, 0xA3, 0x1D, 0xFF, 0xFF, 0x9E, 0x19, 0xFF, 0x65, 0xD4, 0x89, 0xFF, 0x45, 0xE1, 0xB0, 0xFF, - 0x4D, 0xDF, 0xB0, 0xFF, 0x4D, 0xDC, 0xAB, 0xFF, 0x4D, 0xD8, 0xA7, 0xFF, 0x49, 0xD5, 0xA0, 0xFF, - 0x44, 0xD2, 0x99, 0xFF, 0x3C, 0xCD, 0x97, 0xFF, 0x34, 0xC9, 0x94, 0xFF, 0x34, 0xC4, 0x8D, 0xFF, - 0x33, 0xC0, 0x86, 0xFF, 0x32, 0xBC, 0x7A, 0xFF, 0x31, 0xB7, 0x6E, 0xFF, 0x2F, 0xB2, 0x6D, 0xFF, - 0x2E, 0xAE, 0x6B, 0xFF, 0x3F, 0xB9, 0x7D, 0xFF, 0x30, 0xA5, 0x6F, 0xFF, 0x4E, 0xB5, 0x7B, 0xFF, - 0x20, 0x9A, 0x56, 0xFF, 0x2A, 0x9F, 0x5B, 0xFF, 0x24, 0x93, 0x50, 0xFF, 0x65, 0xB9, 0x80, 0xFF, - 0x1C, 0x99, 0x5F, 0xFF, 0xE2, 0x8F, 0x03, 0xFF, 0xF2, 0x8E, 0x10, 0xFF, 0xF2, 0x88, 0x1B, 0xFF, - 0xEF, 0xBF, 0x43, 0xFF, 0xEE, 0xBE, 0x42, 0xFF, 0xEE, 0xBD, 0x41, 0xFF, 0xEE, 0xBD, 0x40, 0xFF, - 0xED, 0xBC, 0x3F, 0xFF, 0xEC, 0xBB, 0x3F, 0xFF, 0xEB, 0xB9, 0x3F, 0xFF, 0xEC, 0xB9, 0x3D, 0xFF, - 0xEE, 0xB8, 0x3C, 0xFF, 0xEB, 0xB8, 0x37, 0xFF, 0xF6, 0xBC, 0x26, 0xFF, 0x8F, 0x9B, 0x94, 0xFF, - 0x37, 0x96, 0xFB, 0xFF, 0x7C, 0xBB, 0xF9, 0xFF, 0x85, 0xB5, 0xF8, 0xFF, 0x49, 0x99, 0xF6, 0xFF, - 0x42, 0x9B, 0xF5, 0xFF, 0x4E, 0xA6, 0xF6, 0xFF, 0x59, 0xB2, 0xF7, 0xFF, 0x65, 0xBC, 0xF8, 0xFF, - 0x72, 0xC6, 0xF9, 0xFF, 0x7F, 0xD3, 0xF9, 0xFF, 0x8D, 0xE0, 0xFA, 0xFF, 0x97, 0xE5, 0xF9, 0xFF, - 0xA1, 0xEB, 0xF8, 0xFF, 0xA6, 0xEA, 0xFE, 0xFF, 0xAA, 0xEA, 0xFF, 0xFF, 0xA8, 0xEE, 0xFC, 0xFF, - 0x62, 0xBA, 0xF9, 0xFF, 0x98, 0xDC, 0xFA, 0xFF, 0xB9, 0xF3, 0xFE, 0xFF, 0xB2, 0xEC, 0xFB, 0xFF, - 0xAB, 0xE5, 0xF7, 0xFF, 0xA2, 0xE4, 0xFE, 0xFF, 0xD1, 0xB0, 0x64, 0xFF, 0xF0, 0x9F, 0x19, 0xFF, - 0xE8, 0x9E, 0x26, 0xFF, 0xF2, 0x98, 0x03, 0xFF, 0x50, 0xEF, 0xE3, 0xFF, 0x57, 0xEE, 0xD5, 0xFF, - 0x64, 0xE3, 0xBF, 0xFF, 0x64, 0xE1, 0xBC, 0xFF, 0x64, 0xDF, 0xB9, 0xFF, 0x5D, 0xDD, 0xB4, 0xFF, - 0x56, 0xDB, 0xB0, 0xFF, 0x4E, 0xD7, 0xA9, 0xFF, 0x46, 0xD3, 0xA2, 0xFF, 0x42, 0xD0, 0x9B, 0xFF, - 0x3F, 0xCD, 0x93, 0xFF, 0x3D, 0xC9, 0x8B, 0xFF, 0x3C, 0xC5, 0x84, 0xFF, 0x39, 0xC1, 0x80, 0xFF, - 0x36, 0xBC, 0x7D, 0xFF, 0x45, 0xC7, 0x8A, 0xFF, 0x44, 0xC1, 0x88, 0xFF, 0x2B, 0xA0, 0x62, 0xFF, - 0x2B, 0xA9, 0x64, 0xFF, 0x2D, 0xA3, 0x5E, 0xFF, 0x26, 0x95, 0x4F, 0xFF, 0x98, 0xCE, 0xA4, 0xFF, - 0xDC, 0xEA, 0xD8, 0xFF, 0xFF, 0xDC, 0xB9, 0xFF, 0xF3, 0x9D, 0x38, 0xFF, 0xD3, 0x8F, 0x00, 0xFF, - 0xEF, 0xC1, 0x45, 0xFF, 0xEF, 0xC0, 0x44, 0xFF, 0xEF, 0xBF, 0x43, 0xFF, 0xEF, 0xBE, 0x41, 0xFF, - 0xEF, 0xBD, 0x40, 0xFF, 0xED, 0xBC, 0x41, 0xFF, 0xEB, 0xBA, 0x42, 0xFF, 0xEF, 0xBA, 0x3F, 0xFF, - 0xF3, 0xB9, 0x3C, 0xFF, 0xE6, 0xB8, 0x34, 0xFF, 0xF6, 0xBD, 0x16, 0xFF, 0x4F, 0x7F, 0xD8, 0xFF, - 0x46, 0x90, 0xF7, 0xFF, 0x54, 0xA5, 0xF7, 0xFF, 0xBA, 0xDA, 0xFF, 0xFF, 0x4D, 0xA1, 0xF8, 0xFF, - 0x49, 0xA5, 0xF3, 0xFF, 0x53, 0xAD, 0xF4, 0xFF, 0x5D, 0xB5, 0xF6, 0xFF, 0x6E, 0xC0, 0xF8, 0xFF, - 0x7F, 0xCC, 0xFA, 0xFF, 0x8A, 0xD8, 0xF9, 0xFF, 0x95, 0xE4, 0xF8, 0xFF, 0xA1, 0xEC, 0xF8, 0xFF, - 0xAE, 0xF4, 0xF7, 0xFF, 0xB2, 0xF3, 0xFE, 0xFF, 0xB5, 0xF1, 0xFF, 0xFF, 0xAD, 0xF4, 0xFE, 0xFF, - 0x59, 0xB6, 0xF3, 0xFF, 0x92, 0xDA, 0xF8, 0xFF, 0xCC, 0xFF, 0xFE, 0xFF, 0xC1, 0xF6, 0xFA, 0xFF, - 0xB6, 0xED, 0xF7, 0xFF, 0xAB, 0xF1, 0xFF, 0xFF, 0xF7, 0xA4, 0x13, 0xFF, 0xEF, 0xA4, 0x15, 0xFF, - 0xE8, 0xA5, 0x18, 0xFF, 0xCD, 0xB4, 0x56, 0xFF, 0x71, 0xF2, 0xF0, 0xFF, 0x84, 0xEF, 0xD4, 0xFF, - 0x7B, 0xE6, 0xCF, 0xFF, 0x7B, 0xE6, 0xCD, 0xFF, 0x7C, 0xE6, 0xCB, 0xFF, 0x71, 0xE5, 0xC9, 0xFF, - 0x67, 0xE5, 0xC6, 0xFF, 0x5F, 0xE1, 0xBC, 0xFF, 0x57, 0xDD, 0xB1, 0xFF, 0x51, 0xDB, 0xA8, 0xFF, - 0x4B, 0xDA, 0xA0, 0xFF, 0x48, 0xD7, 0x9C, 0xFF, 0x46, 0xD4, 0x99, 0xFF, 0x42, 0xCF, 0x94, 0xFF, - 0x3E, 0xCA, 0x8F, 0xFF, 0x3B, 0xC4, 0x88, 0xFF, 0x39, 0xBE, 0x81, 0xFF, 0x30, 0xB3, 0x72, 0xFF, - 0x27, 0xA8, 0x62, 0xFF, 0x27, 0xA0, 0x58, 0xFF, 0x27, 0x97, 0x4E, 0xFF, 0x79, 0xC4, 0x9F, 0xFF, - 0xF7, 0xFB, 0xFF, 0xFF, 0xF4, 0xD2, 0x7F, 0xFF, 0xE1, 0x8E, 0x03, 0xFF, 0xE1, 0x89, 0x0E, 0xFF, - 0xEF, 0xC3, 0x47, 0xFF, 0xEF, 0xC2, 0x46, 0xFF, 0xEF, 0xC0, 0x44, 0xFF, 0xEF, 0xBF, 0x43, 0xFF, - 0xF0, 0xBE, 0x41, 0xFF, 0xEE, 0xBD, 0x42, 0xFF, 0xEC, 0xBC, 0x43, 0xFF, 0xEF, 0xBC, 0x40, 0xFF, - 0xF1, 0xBB, 0x3E, 0xFF, 0xFD, 0xC0, 0x2F, 0xFF, 0xFB, 0xBD, 0x35, 0xFF, 0x00, 0x4B, 0xF5, 0xFF, - 0x52, 0x8A, 0xFF, 0xFF, 0x5D, 0xA5, 0xFA, 0xFF, 0x8D, 0xC4, 0xFC, 0xFF, 0x85, 0xC1, 0xFB, 0xFF, - 0x50, 0xAD, 0xF5, 0xFF, 0x5E, 0xB6, 0xF7, 0xFF, 0x6B, 0xBE, 0xF9, 0xFF, 0x78, 0xC9, 0xFA, 0xFF, - 0x85, 0xD4, 0xFB, 0xFF, 0x97, 0xDE, 0xFE, 0xFF, 0xAA, 0xE8, 0xFF, 0xFF, 0xAD, 0xEE, 0xFD, 0xFF, - 0xB1, 0xF4, 0xF9, 0xFF, 0xB9, 0xF5, 0xFC, 0xFF, 0xC2, 0xF6, 0xFE, 0xFF, 0xB2, 0xF0, 0xFB, 0xFF, - 0x6E, 0xCB, 0xF6, 0xFF, 0x91, 0xDE, 0xFB, 0xFF, 0xCA, 0xFC, 0xFC, 0xFF, 0xD0, 0xFB, 0xFF, 0xFF, - 0xC8, 0xFC, 0xFF, 0xFF, 0xC7, 0xE3, 0xCA, 0xFF, 0xF2, 0xA1, 0x15, 0xFF, 0xEE, 0xA3, 0x1D, 0xFF, - 0xF1, 0xA1, 0x11, 0xFF, 0xB9, 0xD4, 0x9E, 0xFF, 0x8B, 0xF1, 0xEA, 0xFF, 0x95, 0xEF, 0xDC, 0xFF, - 0x90, 0xEB, 0xD9, 0xFF, 0x92, 0xEB, 0xD9, 0xFF, 0x94, 0xEC, 0xD8, 0xFF, 0x8B, 0xEB, 0xD6, 0xFF, - 0x82, 0xEA, 0xD3, 0xFF, 0x78, 0xE6, 0xC9, 0xFF, 0x6F, 0xE3, 0xBF, 0xFF, 0x68, 0xE2, 0xB8, 0xFF, - 0x61, 0xE2, 0xB1, 0xFF, 0x5D, 0xE0, 0xAE, 0xFF, 0x5A, 0xDE, 0xAC, 0xFF, 0x51, 0xD9, 0xA2, 0xFF, - 0x48, 0xD3, 0x98, 0xFF, 0x41, 0xCB, 0x8E, 0xFF, 0x39, 0xC3, 0x83, 0xFF, 0x32, 0xB7, 0x74, 0xFF, - 0x2C, 0xAC, 0x66, 0xFF, 0x29, 0xA2, 0x5D, 0xFF, 0x26, 0x99, 0x54, 0xFF, 0x21, 0x93, 0x4A, 0xFF, - 0xB9, 0x99, 0x23, 0xFF, 0xFE, 0x93, 0x15, 0xFF, 0xD8, 0x92, 0x09, 0xFF, 0xD8, 0x8F, 0x0F, 0xFF, - 0xEF, 0xC4, 0x49, 0xFF, 0xEF, 0xC3, 0x47, 0xFF, 0xF0, 0xC2, 0x46, 0xFF, 0xF0, 0xC1, 0x44, 0xFF, - 0xF1, 0xC0, 0x42, 0xFF, 0xEF, 0xBF, 0x43, 0xFF, 0xED, 0xBE, 0x43, 0xFF, 0xEE, 0xBE, 0x42, 0xFF, - 0xF0, 0xBD, 0x41, 0xFF, 0xF0, 0xBA, 0x37, 0xFF, 0xB7, 0xA1, 0x71, 0xFF, 0x1D, 0x5D, 0xFE, 0xFF, - 0x31, 0x79, 0xF8, 0xFF, 0x51, 0xA1, 0xF5, 0xFF, 0x60, 0xAD, 0xF8, 0xFF, 0xBC, 0xE0, 0xFE, 0xFF, - 0x57, 0xB6, 0xF7, 0xFF, 0x68, 0xBF, 0xF9, 0xFF, 0x79, 0xC8, 0xFC, 0xFF, 0x82, 0xD2, 0xFC, 0xFF, - 0x8B, 0xDB, 0xFC, 0xFF, 0x8F, 0xDE, 0xFB, 0xFF, 0x92, 0xE0, 0xFB, 0xFF, 0xA3, 0xEA, 0xFA, 0xFF, - 0xB4, 0xF4, 0xFA, 0xFF, 0xC1, 0xF8, 0xF9, 0xFF, 0xCE, 0xFB, 0xF8, 0xFF, 0xB6, 0xEB, 0xF9, 0xFF, - 0x83, 0xE1, 0xFA, 0xFF, 0x8F, 0xE2, 0xFD, 0xFF, 0xC7, 0xF9, 0xFB, 0xFF, 0xD7, 0xF8, 0xFC, 0xFF, - 0xCA, 0xFC, 0xFE, 0xFF, 0xDC, 0xCD, 0x8B, 0xFF, 0xED, 0x9F, 0x18, 0xFF, 0xED, 0xA3, 0x24, 0xFF, - 0xFA, 0x9D, 0x0A, 0xFF, 0xA5, 0xF5, 0xE7, 0xFF, 0xA5, 0xF1, 0xE4, 0xFF, 0xA5, 0xF0, 0xE4, 0xFF, - 0xA6, 0xEF, 0xE3, 0xFF, 0xA9, 0xF0, 0xE4, 0xFF, 0xAD, 0xF2, 0xE6, 0xFF, 0xA5, 0xF0, 0xE3, 0xFF, - 0x9E, 0xEF, 0xE0, 0xFF, 0x92, 0xEC, 0xD6, 0xFF, 0x87, 0xE9, 0xCD, 0xFF, 0x7F, 0xE9, 0xC7, 0xFF, - 0x78, 0xEA, 0xC2, 0xFF, 0x72, 0xEA, 0xC1, 0xFF, 0x6D, 0xE9, 0xC0, 0xFF, 0x60, 0xE3, 0xB1, 0xFF, - 0x53, 0xDD, 0xA2, 0xFF, 0x46, 0xD2, 0x94, 0xFF, 0x3A, 0xC8, 0x86, 0xFF, 0x35, 0xBC, 0x77, 0xFF, - 0x30, 0xB0, 0x69, 0xFF, 0x2B, 0xA5, 0x62, 0xFF, 0x26, 0x9B, 0x5B, 0xFF, 0x09, 0x91, 0x57, 0xFF, - 0xFB, 0x94, 0x09, 0xFF, 0xE5, 0x95, 0x0C, 0xFF, 0xEB, 0x91, 0x0F, 0xFF, 0xEB, 0x91, 0x0F, 0xFF, - 0xEF, 0xC5, 0x4A, 0xFF, 0xF0, 0xC4, 0x48, 0xFF, 0xF0, 0xC3, 0x47, 0xFF, 0xF1, 0xC2, 0x45, 0xFF, - 0xF1, 0xC1, 0x43, 0xFF, 0xF1, 0xC1, 0x41, 0xFF, 0xF1, 0xC1, 0x3F, 0xFF, 0xF0, 0xBE, 0x3F, 0xFF, - 0xEF, 0xBC, 0x3F, 0xFF, 0xFD, 0xC2, 0x32, 0xFF, 0x6E, 0x7F, 0xBD, 0xFF, 0x26, 0x65, 0xFE, 0xFF, - 0x34, 0x7B, 0xF5, 0xFF, 0x4C, 0x9A, 0xF5, 0xFF, 0x5C, 0xAB, 0xF8, 0xFF, 0x9F, 0xD0, 0xFA, 0xFF, - 0x83, 0xC6, 0xF7, 0xFF, 0x6A, 0xC1, 0xFD, 0xFF, 0x7E, 0xD1, 0xFD, 0xFF, 0x87, 0xDB, 0xFB, 0xFF, - 0x8F, 0xE5, 0xF9, 0xFF, 0x9A, 0xEC, 0xF8, 0xFF, 0xA5, 0xF4, 0xF7, 0xFF, 0x99, 0xEA, 0xFB, 0xFF, - 0x8E, 0xDF, 0xFF, 0xFF, 0x9F, 0xE2, 0xFB, 0xFF, 0xB1, 0xE6, 0xF7, 0xFF, 0xCC, 0xED, 0xFB, 0xFF, - 0xCA, 0xFA, 0xFF, 0xFF, 0xC6, 0xF2, 0xFF, 0xFF, 0xC2, 0xF0, 0xFC, 0xFF, 0xD2, 0xF5, 0xFE, 0xFF, - 0xD3, 0xFC, 0xFF, 0xFF, 0xE6, 0xB5, 0x4B, 0xFF, 0xED, 0xA4, 0x20, 0xFF, 0xED, 0xA2, 0x1B, 0xFF, - 0xE2, 0xAA, 0x3D, 0xFF, 0xAB, 0xF6, 0xEE, 0xFF, 0xB1, 0xF1, 0xE5, 0xFF, 0xB4, 0xF2, 0xE7, 0xFF, - 0xB8, 0xF3, 0xE9, 0xFF, 0xBA, 0xF3, 0xE9, 0xFF, 0xBC, 0xF4, 0xEA, 0xFF, 0xB5, 0xF3, 0xE8, 0xFF, - 0xAF, 0xF2, 0xE5, 0xFF, 0xA8, 0xF0, 0xE0, 0xFF, 0xA1, 0xED, 0xDA, 0xFF, 0x99, 0xEF, 0xD5, 0xFF, - 0x91, 0xF0, 0xD0, 0xFF, 0x82, 0xED, 0xC8, 0xFF, 0x72, 0xEA, 0xC0, 0xFF, 0x61, 0xE3, 0xB0, 0xFF, - 0x50, 0xDC, 0xA0, 0xFF, 0x47, 0xD3, 0x94, 0xFF, 0x3E, 0xCA, 0x88, 0xFF, 0x38, 0xBF, 0x7B, 0xFF, - 0x32, 0xB4, 0x6E, 0xFF, 0x2E, 0xA8, 0x65, 0xFF, 0x1B, 0xA0, 0x5D, 0xFF, 0x48, 0x94, 0x3C, 0xFF, - 0xF6, 0x93, 0x0A, 0xFF, 0xEC, 0x94, 0x0D, 0xFF, 0xF0, 0x92, 0x10, 0xFF, 0xF0, 0x92, 0x10, 0xFF, - 0xF0, 0xC5, 0x4B, 0xFF, 0xF0, 0xC4, 0x49, 0xFF, 0xF1, 0xC4, 0x48, 0xFF, 0xF1, 0xC3, 0x46, 0xFF, - 0xF2, 0xC2, 0x44, 0xFF, 0xF4, 0xC3, 0x3F, 0xFF, 0xF6, 0xC4, 0x3A, 0xFF, 0xF3, 0xBF, 0x3C, 0xFF, - 0xEF, 0xBA, 0x3D, 0xFF, 0xFF, 0xCA, 0x2C, 0xFF, 0x24, 0x5D, 0xFF, 0xFF, 0x2E, 0x6D, 0xFE, 0xFF, - 0x38, 0x7D, 0xF2, 0xFF, 0x48, 0x93, 0xF5, 0xFF, 0x57, 0xA9, 0xF7, 0xFF, 0x82, 0xC0, 0xF7, 0xFF, - 0xAE, 0xD7, 0xF7, 0xFF, 0x6C, 0xC2, 0xFF, 0xFF, 0x84, 0xDA, 0xFE, 0xFF, 0x8B, 0xE4, 0xFA, 0xFF, - 0x93, 0xEE, 0xF6, 0xFF, 0x9D, 0xED, 0xF8, 0xFF, 0xA7, 0xEC, 0xF9, 0xFF, 0xB3, 0xF1, 0xF8, 0xFF, - 0xC0, 0xF6, 0xF7, 0xFF, 0xC8, 0xF6, 0xFB, 0xFF, 0xD0, 0xF6, 0xFF, 0xFF, 0xD3, 0xF2, 0xFE, 0xFF, - 0xB9, 0xF3, 0xFB, 0xFF, 0xE7, 0xFD, 0xFF, 0xFF, 0xE9, 0xFD, 0xF6, 0xFF, 0xE2, 0xFC, 0xFC, 0xFF, - 0xDC, 0xFC, 0xFF, 0xFF, 0xF1, 0x9D, 0x0B, 0xFF, 0xEC, 0xAA, 0x29, 0xFF, 0xF5, 0xAA, 0x1B, 0xFF, - 0xD9, 0xC7, 0x7F, 0xFF, 0xBA, 0xFE, 0xFD, 0xFF, 0xBD, 0xF2, 0xE7, 0xFF, 0xC3, 0xF4, 0xEB, 0xFF, - 0xCA, 0xF6, 0xEE, 0xFF, 0xCA, 0xF6, 0xEF, 0xFF, 0xCB, 0xF7, 0xEF, 0xFF, 0xC5, 0xF6, 0xED, 0xFF, - 0xBF, 0xF5, 0xEB, 0xFF, 0xBE, 0xF3, 0xE9, 0xFF, 0xBC, 0xF2, 0xE8, 0xFF, 0xB3, 0xF4, 0xE3, 0xFF, - 0xAB, 0xF6, 0xDF, 0xFF, 0x91, 0xF1, 0xD0, 0xFF, 0x77, 0xEC, 0xC1, 0xFF, 0x62, 0xE3, 0xAF, 0xFF, - 0x4E, 0xDB, 0x9E, 0xFF, 0x47, 0xD3, 0x94, 0xFF, 0x41, 0xCC, 0x8A, 0xFF, 0x3B, 0xC2, 0x7F, 0xFF, - 0x35, 0xB8, 0x73, 0xFF, 0x30, 0xAC, 0x69, 0xFF, 0x10, 0xA5, 0x60, 0xFF, 0x86, 0x96, 0x22, 0xFF, - 0xF0, 0x91, 0x0A, 0xFF, 0xF2, 0x92, 0x0E, 0xFF, 0xF4, 0x94, 0x11, 0xFF, 0xF4, 0x94, 0x11, 0xFF, - 0xF1, 0xC5, 0x4C, 0xFF, 0xF1, 0xC5, 0x4A, 0xFF, 0xF1, 0xC4, 0x49, 0xFF, 0xF2, 0xC4, 0x47, 0xFF, - 0xF2, 0xC3, 0x45, 0xFF, 0xF1, 0xC3, 0x43, 0xFF, 0xF0, 0xC4, 0x40, 0xFF, 0xF3, 0xBF, 0x42, 0xFF, - 0xF5, 0xC0, 0x39, 0xFF, 0xCA, 0xAC, 0x5E, 0xFF, 0x1E, 0x58, 0xFA, 0xFF, 0x30, 0x6E, 0xF3, 0xFF, - 0x35, 0x80, 0xF7, 0xFF, 0x3E, 0x92, 0xFB, 0xFF, 0x5D, 0xAF, 0xFB, 0xFF, 0x72, 0xC2, 0xFF, 0xFF, - 0xBA, 0xE1, 0xFD, 0xFF, 0x74, 0xCD, 0xFF, 0xFF, 0x71, 0xD3, 0xFF, 0xFF, 0x83, 0xE5, 0xFF, 0xFF, - 0x95, 0xF7, 0xFF, 0xFF, 0xA1, 0xF4, 0xFE, 0xFF, 0xAD, 0xF0, 0xFD, 0xFF, 0xC1, 0xF8, 0xFF, 0xFF, - 0xCD, 0xF7, 0xFB, 0xFF, 0xD1, 0xF8, 0xFE, 0xFF, 0xD6, 0xF9, 0xFF, 0xFF, 0xE0, 0xF6, 0xFE, 0xFF, - 0xDD, 0xF5, 0xFB, 0xFF, 0xED, 0xFB, 0xFF, 0xFF, 0xE8, 0xFB, 0xFB, 0xFF, 0xDF, 0xFC, 0xFF, 0xFF, - 0xE8, 0xE0, 0xB2, 0xFF, 0xEF, 0xA3, 0x18, 0xFF, 0xEC, 0xAA, 0x25, 0xFF, 0xF5, 0xA8, 0x15, 0xFF, - 0xD8, 0xE3, 0xC2, 0xFF, 0xC5, 0xF9, 0xF9, 0xFF, 0xCA, 0xF5, 0xEE, 0xFF, 0xCE, 0xF6, 0xEF, 0xFF, - 0xD2, 0xF7, 0xF0, 0xFF, 0xD1, 0xF8, 0xF1, 0xFF, 0xD0, 0xF9, 0xF1, 0xFF, 0xCD, 0xF9, 0xF1, 0xFF, - 0xC9, 0xF9, 0xF1, 0xFF, 0xC9, 0xFB, 0xF2, 0xFF, 0xCA, 0xFC, 0xF4, 0xFF, 0xB6, 0xF8, 0xE6, 0xFF, - 0xA2, 0xF3, 0xD9, 0xFF, 0x89, 0xEF, 0xCA, 0xFF, 0x71, 0xEB, 0xBC, 0xFF, 0x61, 0xE6, 0xB0, 0xFF, - 0x50, 0xE1, 0xA4, 0xFF, 0x48, 0xD9, 0x99, 0xFF, 0x40, 0xD2, 0x8F, 0xFF, 0x3A, 0xC7, 0x83, 0xFF, - 0x34, 0xBC, 0x77, 0xFF, 0x1C, 0xB2, 0x6A, 0xFF, 0x04, 0xA9, 0x5D, 0xFF, 0xEA, 0x8D, 0x13, 0xFF, - 0xEF, 0x93, 0x11, 0xFF, 0xEF, 0x92, 0x0F, 0xFF, 0xF0, 0x92, 0x0E, 0xFF, 0xF0, 0x92, 0x0E, 0xFF, - 0xF2, 0xC6, 0x4D, 0xFF, 0xF2, 0xC5, 0x4B, 0xFF, 0xF2, 0xC5, 0x4A, 0xFF, 0xF2, 0xC5, 0x48, 0xFF, - 0xF2, 0xC4, 0x46, 0xFF, 0xEE, 0xC4, 0x46, 0xFF, 0xEA, 0xC4, 0x46, 0xFF, 0xF2, 0xBF, 0x48, 0xFF, - 0xFB, 0xC6, 0x34, 0xFF, 0x91, 0x95, 0x98, 0xFF, 0x27, 0x64, 0xFC, 0xFF, 0x3B, 0x76, 0xF1, 0xFF, - 0x32, 0x83, 0xFC, 0xFF, 0x34, 0x91, 0xFF, 0xFF, 0x63, 0xB4, 0xFF, 0xFF, 0x5A, 0xBD, 0xFF, 0xFF, - 0xB5, 0xDC, 0xF3, 0xFF, 0x97, 0xD0, 0xCB, 0xFF, 0xA4, 0xCE, 0xB4, 0xFF, 0xB0, 0xD2, 0xAF, 0xFF, - 0xBC, 0xD6, 0xAB, 0xFF, 0xBE, 0xE1, 0xC2, 0xFF, 0xC0, 0xEB, 0xDA, 0xFF, 0xC7, 0xFC, 0xF5, 0xFF, - 0xBD, 0xFE, 0xFF, 0xFF, 0xCC, 0xFD, 0xFF, 0xFF, 0xDB, 0xFC, 0xFF, 0xFF, 0xE0, 0xFC, 0xFE, 0xFF, - 0xE4, 0xFC, 0xFB, 0xFF, 0xE6, 0xFB, 0xFD, 0xFF, 0xE7, 0xFA, 0xFF, 0xFF, 0xDD, 0xFB, 0xFF, 0xFF, - 0xF4, 0xC4, 0x61, 0xFF, 0xEE, 0xAA, 0x26, 0xFF, 0xEB, 0xAA, 0x22, 0xFF, 0xF6, 0xA7, 0x10, 0xFF, - 0xD6, 0xFF, 0xFF, 0xFF, 0xCF, 0xF4, 0xF5, 0xFF, 0xD8, 0xF9, 0xF5, 0xFF, 0xD9, 0xF9, 0xF4, 0xFF, - 0xD9, 0xF8, 0xF2, 0xFF, 0xD8, 0xF9, 0xF3, 0xFF, 0xD6, 0xFB, 0xF4, 0xFF, 0xD5, 0xFC, 0xF5, 0xFF, - 0xD3, 0xFD, 0xF6, 0xFF, 0xCD, 0xFA, 0xF3, 0xFF, 0xC7, 0xF6, 0xEF, 0xFF, 0xB0, 0xF3, 0xE1, 0xFF, - 0x98, 0xF0, 0xD3, 0xFF, 0x82, 0xED, 0xC5, 0xFF, 0x6B, 0xEB, 0xB7, 0xFF, 0x5F, 0xE9, 0xB0, 0xFF, - 0x53, 0xE7, 0xAA, 0xFF, 0x49, 0xDF, 0x9F, 0xFF, 0x3E, 0xD7, 0x93, 0xFF, 0x39, 0xCB, 0x87, 0xFF, - 0x34, 0xBF, 0x7B, 0xFF, 0x25, 0xB4, 0x6B, 0xFF, 0x32, 0xA2, 0x5B, 0xFF, 0xF9, 0x94, 0x04, 0xFF, - 0xED, 0x94, 0x17, 0xFF, 0xEC, 0x92, 0x11, 0xFF, 0xEB, 0x91, 0x0B, 0xFF, 0xEB, 0x91, 0x0B, 0xFF, - 0xF2, 0xC7, 0x4E, 0xFF, 0xF3, 0xC7, 0x4D, 0xFF, 0xF3, 0xC7, 0x4C, 0xFF, 0xF3, 0xC7, 0x4A, 0xFF, - 0xF4, 0xC7, 0x49, 0xFF, 0xF1, 0xC4, 0x47, 0xFF, 0xEE, 0xC1, 0x45, 0xFF, 0xF7, 0xC2, 0x42, 0xFF, - 0xFF, 0xC8, 0x33, 0xFF, 0x46, 0x67, 0xDE, 0xFF, 0x2A, 0x63, 0xFF, 0xFF, 0x1B, 0x6F, 0xFF, 0xFF, - 0x52, 0x8B, 0xE0, 0xFF, 0x84, 0xA0, 0xA3, 0xFF, 0xCC, 0xC1, 0x62, 0xFF, 0xFF, 0xC0, 0x26, 0xFF, - 0xFF, 0xB7, 0x29, 0xFF, 0xF1, 0xB5, 0x24, 0xFF, 0xF9, 0xB7, 0x27, 0xFF, 0xF6, 0xB5, 0x25, 0xFF, - 0xF2, 0xB2, 0x23, 0xFF, 0xFA, 0xB5, 0x24, 0xFF, 0xFF, 0xB7, 0x24, 0xFF, 0xDE, 0x9D, 0x17, 0xFF, - 0xF4, 0xBA, 0x42, 0xFF, 0xE7, 0xDA, 0x9E, 0xFF, 0xDC, 0xF9, 0xF9, 0xFF, 0xE6, 0xFB, 0xF3, 0xFF, - 0xE9, 0xFF, 0xFF, 0xFF, 0xE6, 0xFF, 0xFD, 0xFF, 0xE2, 0xFB, 0xFA, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xEF, 0xA7, 0x1D, 0xFF, 0xF0, 0xA7, 0x1C, 0xFF, 0xF1, 0xA7, 0x1A, 0xFF, 0xF0, 0xC4, 0x5A, 0xFF, - 0xE7, 0xFF, 0xFF, 0xFF, 0xE1, 0xF9, 0xFA, 0xFF, 0xE2, 0xFB, 0xFA, 0xFF, 0xDF, 0xFB, 0xF8, 0xFF, - 0xDC, 0xFA, 0xF5, 0xFF, 0xDB, 0xFB, 0xF5, 0xFF, 0xD9, 0xFB, 0xF5, 0xFF, 0xD6, 0xFC, 0xF5, 0xFF, - 0xD3, 0xFD, 0xF5, 0xFF, 0xC8, 0xF8, 0xF0, 0xFF, 0xBD, 0xF4, 0xEA, 0xFF, 0xA8, 0xF1, 0xDF, 0xFF, - 0x93, 0xEF, 0xD4, 0xFF, 0x7A, 0xF3, 0xC6, 0xFF, 0x61, 0xF8, 0xB9, 0xFF, 0x57, 0xEF, 0xB0, 0xFF, - 0x4D, 0xE6, 0xA6, 0xFF, 0x48, 0xE2, 0xA3, 0xFF, 0x3A, 0xD6, 0x98, 0xFF, 0x37, 0xCD, 0x89, 0xFF, - 0x35, 0xC3, 0x7B, 0xFF, 0x20, 0xB7, 0x6F, 0xFF, 0x84, 0x9C, 0x3A, 0xFF, 0xF4, 0x93, 0x0C, 0xFF, - 0xEC, 0x94, 0x13, 0xFF, 0xE9, 0x93, 0x11, 0xFF, 0xE6, 0x92, 0x0F, 0xFF, 0xE6, 0x92, 0x0F, 0xFF, - 0xF3, 0xC9, 0x50, 0xFF, 0xF4, 0xC9, 0x4F, 0xFF, 0xF4, 0xC9, 0x4E, 0xFF, 0xF5, 0xCA, 0x4D, 0xFF, - 0xF5, 0xCA, 0x4B, 0xFF, 0xF4, 0xC5, 0x48, 0xFF, 0xF3, 0xBF, 0x44, 0xFF, 0xEE, 0xC1, 0x47, 0xFF, - 0xEA, 0xC4, 0x4A, 0xFF, 0x1F, 0x52, 0xFF, 0xFF, 0x92, 0x9A, 0xA6, 0xFF, 0xE6, 0xB6, 0x51, 0xFF, - 0xFF, 0xC7, 0x28, 0xFF, 0xF8, 0xC4, 0x2C, 0xFF, 0xF0, 0xC0, 0x30, 0xFF, 0xEF, 0xBA, 0x3F, 0xFF, - 0xEF, 0xBF, 0x37, 0xFF, 0xEF, 0xB9, 0x38, 0xFF, 0xF0, 0xB2, 0x3A, 0xFF, 0xF3, 0xB5, 0x38, 0xFF, - 0xF6, 0xB7, 0x35, 0xFF, 0xEF, 0xB9, 0x32, 0xFF, 0xE8, 0xBB, 0x2F, 0xFF, 0xEA, 0xB8, 0x2F, 0xFF, - 0xED, 0xB4, 0x2F, 0xFF, 0xF3, 0xAC, 0x1F, 0xFF, 0xF9, 0xA3, 0x10, 0xFF, 0xF2, 0xC9, 0x6F, 0xFF, - 0xDF, 0xF9, 0xF5, 0xFF, 0xDE, 0xFB, 0xF5, 0xFF, 0xDD, 0xFD, 0xF5, 0xFF, 0xE3, 0xEA, 0xD7, 0xFF, - 0xEE, 0xA5, 0x10, 0xFF, 0xF4, 0xB2, 0x2D, 0xFF, 0xF7, 0xA5, 0x13, 0xFF, 0xEB, 0xE1, 0xA5, 0xFF, - 0xF8, 0xFF, 0xFF, 0xFF, 0xF2, 0xFE, 0xFF, 0xFF, 0xEC, 0xFD, 0xFF, 0xFF, 0xE6, 0xFC, 0xFC, 0xFF, - 0xDF, 0xFC, 0xF7, 0xFF, 0xDE, 0xFC, 0xF7, 0xFF, 0xDC, 0xFC, 0xF6, 0xFF, 0xD7, 0xFC, 0xF5, 0xFF, - 0xD3, 0xFC, 0xF4, 0xFF, 0xC3, 0xF7, 0xED, 0xFF, 0xB4, 0xF1, 0xE5, 0xFF, 0xB7, 0xF5, 0xE4, 0xFF, - 0xBB, 0xF9, 0xE4, 0xFF, 0xD2, 0xFE, 0xEB, 0xFF, 0xE9, 0xFF, 0xF2, 0xFF, 0xDB, 0xFE, 0xED, 0xFF, - 0xCD, 0xF9, 0xE8, 0xFF, 0x89, 0xEF, 0xCA, 0xFF, 0x35, 0xD6, 0x9C, 0xFF, 0x2D, 0xC6, 0x83, 0xFF, - 0x25, 0xB7, 0x6B, 0xFF, 0x14, 0xB3, 0x6C, 0xFF, 0xD6, 0x95, 0x1A, 0xFF, 0xEE, 0x91, 0x15, 0xFF, - 0xEB, 0x93, 0x0F, 0xFF, 0xE6, 0x93, 0x10, 0xFF, 0xE0, 0x93, 0x12, 0xFF, 0xE0, 0x93, 0x12, 0xFF, - 0xF4, 0xCA, 0x52, 0xFF, 0xF4, 0xCA, 0x50, 0xFF, 0xF3, 0xCA, 0x4E, 0xFF, 0xF3, 0xC9, 0x4C, 0xFF, - 0xF3, 0xC9, 0x4A, 0xFF, 0xF4, 0xC8, 0x48, 0xFF, 0xF6, 0xC6, 0x46, 0xFF, 0xEC, 0xBF, 0x3F, 0xFF, - 0xEB, 0xBF, 0x41, 0xFF, 0xF8, 0xD4, 0x40, 0xFF, 0xFC, 0xC9, 0x33, 0xFF, 0xFF, 0xC9, 0x2F, 0xFF, - 0xEC, 0xC2, 0x42, 0xFF, 0xF4, 0xC3, 0x40, 0xFF, 0xFC, 0xC3, 0x3E, 0xFF, 0xF3, 0xBB, 0x34, 0xFF, - 0xF2, 0xBB, 0x33, 0xFF, 0xF6, 0xBD, 0x49, 0xFF, 0xF8, 0xB7, 0x38, 0xFF, 0xF5, 0xB7, 0x36, 0xFF, - 0xF2, 0xB7, 0x34, 0xFF, 0xF3, 0xB5, 0x2E, 0xFF, 0xF5, 0xB3, 0x27, 0xFF, 0xF7, 0xBA, 0x2F, 0xFF, - 0xF2, 0xBA, 0x2F, 0xFF, 0xF1, 0xB5, 0x30, 0xFF, 0xF0, 0xB0, 0x31, 0xFF, 0xF6, 0xAC, 0x1E, 0xFF, - 0xED, 0xAA, 0x0C, 0xFF, 0xEC, 0xD2, 0x7E, 0xFF, 0xE6, 0xFF, 0xFF, 0xFF, 0xD2, 0xD9, 0x80, 0xFF, - 0xF8, 0xA9, 0x2E, 0xFF, 0xEB, 0xAF, 0x1C, 0xFF, 0xE5, 0xAA, 0x02, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, - 0xFE, 0xFF, 0xFF, 0xFF, 0xF9, 0xFE, 0xFF, 0xFF, 0xF4, 0xFD, 0xFF, 0xFF, 0xEB, 0xFD, 0xFD, 0xFF, - 0xE2, 0xFE, 0xFA, 0xFF, 0xE1, 0xFD, 0xF9, 0xFF, 0xE0, 0xFC, 0xF7, 0xFF, 0xD7, 0xFC, 0xF5, 0xFF, - 0xCF, 0xFD, 0xF3, 0xFF, 0xE2, 0xFB, 0xF4, 0xFF, 0xE7, 0xFD, 0xF6, 0xFF, 0xE8, 0xFD, 0xF3, 0xFF, - 0xE9, 0xFD, 0xF0, 0xFF, 0xD3, 0xFD, 0xEB, 0xFF, 0xBD, 0xFC, 0xE5, 0xFF, 0xBA, 0xF7, 0xDF, 0xFF, - 0xB6, 0xF2, 0xDA, 0xFF, 0xD2, 0xFB, 0xE9, 0xFF, 0xE6, 0xFC, 0xF1, 0xFF, 0x8D, 0xDE, 0xB6, 0xFF, - 0x3C, 0xC7, 0x84, 0xFF, 0x47, 0xB7, 0x99, 0xFF, 0xF8, 0xA1, 0x13, 0xFF, 0xF2, 0x94, 0x04, 0xFF, - 0xEE, 0x94, 0x10, 0xFF, 0xEC, 0x94, 0x10, 0xFF, 0xE9, 0x95, 0x10, 0xFF, 0xE9, 0x95, 0x10, 0xFF, - 0xF5, 0xCC, 0x53, 0xFF, 0xF3, 0xCB, 0x50, 0xFF, 0xF2, 0xCA, 0x4E, 0xFF, 0xF1, 0xC9, 0x4B, 0xFF, - 0xF0, 0xC7, 0x48, 0xFF, 0xF4, 0xCB, 0x48, 0xFF, 0xF9, 0xCE, 0x47, 0xFF, 0xF2, 0xC4, 0x40, 0xFF, - 0xFC, 0xCA, 0x48, 0xFF, 0xF0, 0xC2, 0x3F, 0xFF, 0xF5, 0xC9, 0x46, 0xFF, 0xF4, 0xC7, 0x46, 0xFF, - 0xF3, 0xC4, 0x45, 0xFF, 0xED, 0xB4, 0x38, 0xFF, 0xE8, 0xA5, 0x2C, 0xFF, 0xE1, 0xB0, 0x2E, 0xFF, - 0xEA, 0xC0, 0x56, 0xFF, 0xE9, 0xC8, 0x6C, 0xFF, 0xE4, 0xC1, 0x36, 0xFF, 0xEB, 0xC9, 0x50, 0xFF, - 0xF1, 0xD1, 0x6A, 0xFF, 0xF5, 0xD0, 0x73, 0xFF, 0xF9, 0xCF, 0x7D, 0xFF, 0xF8, 0xC7, 0x56, 0xFF, - 0xE7, 0xAF, 0x1F, 0xFF, 0xED, 0xB1, 0x25, 0xFF, 0xF4, 0xB2, 0x2B, 0xFF, 0xF9, 0xB5, 0x3E, 0xFF, - 0xEE, 0xB3, 0x2A, 0xFF, 0xF5, 0xAF, 0x1B, 0xFF, 0xF0, 0xB5, 0x32, 0xFF, 0xF9, 0xB1, 0x3F, 0xFF, - 0xF2, 0xA9, 0x26, 0xFF, 0xEA, 0xAE, 0x1F, 0xFF, 0xF3, 0xB8, 0x3F, 0xFF, 0xF3, 0xFF, 0xFB, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFB, 0xFD, 0xFE, 0xFF, 0xF0, 0xFE, 0xFE, 0xFF, - 0xE5, 0xFF, 0xFD, 0xFF, 0xE4, 0xFE, 0xFB, 0xFF, 0xE3, 0xFC, 0xF8, 0xFF, 0xD7, 0xFD, 0xF5, 0xFF, - 0xCB, 0xFD, 0xF2, 0xFF, 0xEB, 0xFB, 0xF4, 0xFF, 0xEE, 0xFE, 0xF6, 0xFF, 0xDE, 0xFD, 0xF1, 0xFF, - 0xCE, 0xFB, 0xED, 0xFF, 0xB0, 0xF9, 0xE2, 0xFF, 0x91, 0xF6, 0xD8, 0xFF, 0x8A, 0xF3, 0xD2, 0xFF, - 0x83, 0xF1, 0xCC, 0xFF, 0x96, 0xEE, 0xCE, 0xFF, 0xA9, 0xEA, 0xD0, 0xFF, 0xC0, 0xEA, 0xDA, 0xFF, - 0xE8, 0xFA, 0xF4, 0xFF, 0x78, 0xC6, 0x7E, 0xFF, 0xFF, 0xC0, 0x59, 0xFF, 0xEA, 0xA0, 0x19, 0xFF, - 0xF2, 0x95, 0x10, 0xFF, 0xF2, 0x96, 0x0F, 0xFF, 0xF2, 0x96, 0x0D, 0xFF, 0xF2, 0x96, 0x0D, 0xFF, - 0xF4, 0xCD, 0x54, 0xFF, 0xF4, 0xCB, 0x51, 0xFF, 0xF3, 0xCA, 0x4F, 0xFF, 0xF2, 0xC9, 0x4C, 0xFF, - 0xF2, 0xC8, 0x4A, 0xFF, 0xF1, 0xC6, 0x48, 0xFF, 0xF1, 0xC4, 0x47, 0xFF, 0xF3, 0xD2, 0x48, 0xFF, - 0xF3, 0xC7, 0x46, 0xFF, 0xFB, 0xC5, 0x4C, 0xFF, 0xDC, 0x9A, 0x2B, 0xFF, 0xCD, 0x83, 0x17, 0xFF, - 0xBE, 0x6B, 0x03, 0xFF, 0xC5, 0x7F, 0x00, 0xFF, 0xD4, 0x96, 0x0E, 0xFF, 0xDB, 0xAC, 0x2E, 0xFF, - 0xEA, 0xC5, 0x60, 0xFF, 0xEF, 0xCC, 0x75, 0xFF, 0xEA, 0xCA, 0x51, 0xFF, 0xEF, 0xD2, 0x69, 0xFF, - 0xF5, 0xDA, 0x81, 0xFF, 0xF7, 0xE4, 0x99, 0xFF, 0xF9, 0xEE, 0xB2, 0xFF, 0xFF, 0xFA, 0xCE, 0xFF, - 0xFF, 0xFE, 0xE2, 0xFF, 0xFF, 0xE1, 0x99, 0xFF, 0xF7, 0xBC, 0x48, 0xFF, 0xDC, 0xB4, 0x10, 0xFF, - 0xF0, 0xAD, 0x31, 0xFF, 0xFB, 0xAC, 0x27, 0xFF, 0xF3, 0xB2, 0x30, 0xFF, 0xF5, 0xB1, 0x34, 0xFF, - 0xF0, 0xAD, 0x24, 0xFF, 0xF6, 0xAC, 0x26, 0xFF, 0xFC, 0xD1, 0x97, 0xFF, 0xF7, 0xFD, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFE, 0xFF, 0xFB, 0xFF, 0xFE, 0xFF, 0xF3, 0xFF, 0xFE, 0xFF, 0xED, 0xFF, 0xFD, 0xFF, - 0xE7, 0xFD, 0xFC, 0xFF, 0xE3, 0xFE, 0xFB, 0xFF, 0xDF, 0xFE, 0xF9, 0xFF, 0xE7, 0xFD, 0xF8, 0xFF, - 0xEF, 0xFC, 0xF7, 0xFF, 0xEB, 0xFB, 0xF3, 0xFF, 0xD8, 0xFD, 0xEF, 0xFF, 0xC2, 0xFA, 0xE8, 0xFF, - 0xAB, 0xF8, 0xE2, 0xFF, 0x9B, 0xF4, 0xD8, 0xFF, 0x8A, 0xEF, 0xCE, 0xFF, 0x76, 0xEA, 0xC1, 0xFF, - 0x61, 0xE5, 0xB4, 0xFF, 0x5A, 0xDD, 0xAB, 0xFF, 0x61, 0xD2, 0xA2, 0xFF, 0x8D, 0xE9, 0xC1, 0xFF, - 0xB8, 0xE7, 0xDA, 0xFF, 0xFF, 0xD4, 0x96, 0xFF, 0xFA, 0xD0, 0x8E, 0xFF, 0xED, 0xAD, 0x41, 0xFF, - 0xF1, 0x95, 0x10, 0xFF, 0xF1, 0x95, 0x0F, 0xFF, 0xF1, 0x96, 0x0E, 0xFF, 0xF1, 0x96, 0x0E, 0xFF, - 0xF4, 0xCD, 0x54, 0xFF, 0xF4, 0xCC, 0x52, 0xFF, 0xF4, 0xCB, 0x50, 0xFF, 0xF3, 0xC9, 0x4E, 0xFF, - 0xF3, 0xC8, 0x4B, 0xFF, 0xF6, 0xC9, 0x51, 0xFF, 0xFA, 0xCA, 0x56, 0xFF, 0xEA, 0xC0, 0x44, 0xFF, - 0xC6, 0x74, 0x19, 0xFF, 0xAD, 0x58, 0x00, 0xFF, 0xB3, 0x5B, 0x01, 0xFF, 0xC0, 0x6F, 0x06, 0xFF, - 0xCC, 0x84, 0x0B, 0xFF, 0xCE, 0x93, 0x00, 0xFF, 0xDF, 0xA7, 0x11, 0xFF, 0xE5, 0xB9, 0x3E, 0xFF, - 0xEB, 0xCA, 0x6A, 0xFF, 0xF5, 0xD1, 0x7E, 0xFF, 0xF0, 0xD3, 0x6B, 0xFF, 0xF4, 0xDB, 0x81, 0xFF, - 0xF8, 0xE3, 0x97, 0xFF, 0xF7, 0xEB, 0xA4, 0xFF, 0xF5, 0xF4, 0xB1, 0xFF, 0xF9, 0xF7, 0xC7, 0xFF, - 0xFC, 0xFA, 0xDC, 0xFF, 0xFF, 0xFF, 0xF2, 0xFF, 0xF5, 0xFF, 0xF8, 0xFF, 0xFD, 0xEB, 0xBB, 0xFF, - 0xF2, 0xB4, 0x22, 0xFF, 0xFF, 0xAF, 0x28, 0xFF, 0xF6, 0xB0, 0x2F, 0xFF, 0xF2, 0xB0, 0x29, 0xFF, - 0xEE, 0xB1, 0x22, 0xFF, 0xF9, 0xA7, 0x19, 0xFF, 0xF4, 0xE6, 0xC9, 0xFF, 0xF4, 0xF7, 0xF7, 0xFF, - 0xFF, 0xFF, 0xFE, 0xFF, 0xF6, 0xFF, 0xFE, 0xFF, 0xEC, 0xFF, 0xFD, 0xFF, 0xEA, 0xFF, 0xFC, 0xFF, - 0xE8, 0xFA, 0xFA, 0xFF, 0xE2, 0xFD, 0xFB, 0xFF, 0xDC, 0xFF, 0xFB, 0xFF, 0xE9, 0xFF, 0xFB, 0xFF, - 0xF6, 0xFF, 0xFB, 0xFF, 0xDC, 0xFD, 0xF1, 0xFF, 0xC3, 0xFB, 0xE7, 0xFF, 0xB4, 0xF5, 0xDF, 0xFF, - 0xA5, 0xF0, 0xD8, 0xFF, 0x94, 0xEC, 0xCE, 0xFF, 0x83, 0xE8, 0xC4, 0xFF, 0x77, 0xE5, 0xB7, 0xFF, - 0x6B, 0xE3, 0xAB, 0xFF, 0x52, 0xDE, 0xA0, 0xFF, 0x55, 0xD4, 0x94, 0xFF, 0x40, 0xBD, 0x7F, 0xFF, - 0x98, 0xE4, 0xD1, 0xFF, 0xF4, 0xA1, 0x2B, 0xFF, 0xF6, 0xA1, 0x2F, 0xFF, 0xF3, 0x9B, 0x1F, 0xFF, - 0xF0, 0x95, 0x0F, 0xFF, 0xF0, 0x95, 0x0F, 0xFF, 0xF0, 0x95, 0x0F, 0xFF, 0xF0, 0x95, 0x0F, 0xFF, - 0xF4, 0xCE, 0x55, 0xFF, 0xF4, 0xCC, 0x53, 0xFF, 0xF4, 0xCB, 0x51, 0xFF, 0xF5, 0xCA, 0x4F, 0xFF, - 0xF6, 0xC9, 0x4E, 0xFF, 0xF4, 0xC9, 0x4D, 0xFF, 0xFA, 0xD0, 0x53, 0xFF, 0xCD, 0x86, 0x2A, 0xFF, - 0xB0, 0x52, 0x06, 0xFF, 0xB8, 0x5F, 0x04, 0xFF, 0xC8, 0x73, 0x0A, 0xFF, 0xCE, 0x82, 0x08, 0xFF, - 0xD3, 0x91, 0x06, 0xFF, 0xD5, 0xA0, 0x01, 0xFF, 0xE6, 0xB4, 0x24, 0xFF, 0xEA, 0xC4, 0x4C, 0xFF, - 0xED, 0xD3, 0x74, 0xFF, 0xF4, 0xD9, 0x83, 0xFF, 0xF3, 0xDC, 0x7E, 0xFF, 0xF6, 0xE4, 0x93, 0xFF, - 0xF8, 0xEC, 0xA8, 0xFF, 0xF9, 0xF2, 0xB5, 0xFF, 0xF9, 0xF8, 0xC3, 0xFF, 0xFA, 0xFA, 0xD3, 0xFF, - 0xFB, 0xFB, 0xE2, 0xFF, 0xFB, 0xFE, 0xED, 0xFF, 0xF3, 0xF9, 0xEF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFD, 0xFF, 0xFF, 0xEE, 0xDC, 0x7E, 0xFF, 0xFD, 0xAD, 0x26, 0xFF, 0xF7, 0xAF, 0x29, 0xFF, - 0xF1, 0xB1, 0x2D, 0xFF, 0xDF, 0xB1, 0x34, 0xFF, 0xF6, 0xA6, 0x09, 0xFF, 0xF4, 0xD3, 0x8C, 0xFF, - 0xF8, 0xFB, 0xFC, 0xFF, 0xF6, 0xFF, 0xFF, 0xFF, 0xEB, 0xFF, 0xFD, 0xFF, 0xE5, 0xFE, 0xFC, 0xFF, - 0xE0, 0xFB, 0xFB, 0xFF, 0xDE, 0xFC, 0xF9, 0xFF, 0xDC, 0xFC, 0xF7, 0xFF, 0xEF, 0xFF, 0xFC, 0xFF, - 0xEB, 0xFC, 0xF8, 0xFF, 0xD0, 0xF5, 0xE8, 0xFF, 0xBC, 0xF5, 0xDF, 0xFF, 0xAC, 0xF1, 0xD8, 0xFF, - 0x9D, 0xED, 0xD2, 0xFF, 0x7D, 0xE8, 0xC4, 0xFF, 0x6C, 0xE1, 0xB7, 0xFF, 0x5E, 0xDC, 0xAB, 0xFF, - 0x4F, 0xD7, 0x9E, 0xFF, 0x5E, 0xC9, 0x98, 0xFF, 0x35, 0xC6, 0x92, 0xFF, 0x42, 0xC9, 0x8B, 0xFF, - 0x4D, 0xB2, 0x80, 0xFF, 0xF1, 0x9B, 0x00, 0xFF, 0xF8, 0x93, 0x17, 0xFF, 0xF4, 0x95, 0x15, 0xFF, - 0xF1, 0x97, 0x12, 0xFF, 0xF0, 0x96, 0x11, 0xFF, 0xEF, 0x95, 0x10, 0xFF, 0xEF, 0x95, 0x10, 0xFF, - 0xF4, 0xCE, 0x55, 0xFF, 0xF4, 0xCD, 0x54, 0xFF, 0xF5, 0xCC, 0x52, 0xFF, 0xF6, 0xCB, 0x51, 0xFF, - 0xF8, 0xCB, 0x50, 0xFF, 0xF1, 0xC8, 0x49, 0xFF, 0xF9, 0xD5, 0x51, 0xFF, 0xC0, 0x62, 0x15, 0xFF, - 0xBB, 0x5C, 0x00, 0xFF, 0xCC, 0x74, 0x07, 0xFF, 0xCD, 0x7C, 0x02, 0xFF, 0xD4, 0x8D, 0x02, 0xFF, - 0xDB, 0x9E, 0x01, 0xFF, 0xDC, 0xAD, 0x08, 0xFF, 0xED, 0xC1, 0x36, 0xFF, 0xEE, 0xCF, 0x5A, 0xFF, - 0xF0, 0xDC, 0x7D, 0xFF, 0xF3, 0xE1, 0x87, 0xFF, 0xF7, 0xE6, 0x91, 0xFF, 0xF8, 0xED, 0xA5, 0xFF, - 0xF8, 0xF5, 0xB8, 0xFF, 0xFB, 0xF9, 0xC6, 0xFF, 0xFD, 0xFD, 0xD4, 0xFF, 0xFB, 0xFC, 0xDF, 0xFF, - 0xFA, 0xFC, 0xE9, 0xFF, 0xFD, 0xFE, 0xF0, 0xFF, 0xFF, 0xFF, 0xF7, 0xFF, 0xFE, 0xFF, 0xFA, 0xFF, - 0xFB, 0xFE, 0xFC, 0xFF, 0xFF, 0xFA, 0xFD, 0xFF, 0xE7, 0xAF, 0x1D, 0xFF, 0xEE, 0xB0, 0x2A, 0xFF, - 0xF5, 0xB1, 0x37, 0xFF, 0xF6, 0xB8, 0x24, 0xFF, 0xF7, 0xB4, 0x28, 0xFF, 0xF4, 0xAF, 0x21, 0xFF, - 0xF2, 0xAA, 0x1A, 0xFF, 0xF5, 0xD7, 0x9E, 0xFF, 0xE9, 0xFF, 0xFC, 0xFF, 0xE0, 0xFE, 0xFC, 0xFF, - 0xD7, 0xFD, 0xFC, 0xFF, 0xDA, 0xFA, 0xF8, 0xFF, 0xDD, 0xF7, 0xF3, 0xFF, 0xF4, 0xFD, 0xFD, 0xFF, - 0xE0, 0xF9, 0xF6, 0xFF, 0xC3, 0xEC, 0xDF, 0xFF, 0xB5, 0xEF, 0xD7, 0xFF, 0xA5, 0xEC, 0xD2, 0xFF, - 0x95, 0xE9, 0xCC, 0xFF, 0x67, 0xE5, 0xBB, 0xFF, 0x55, 0xDB, 0xAB, 0xFF, 0x44, 0xD3, 0x9E, 0xFF, - 0x32, 0xCB, 0x91, 0xFF, 0x24, 0xC8, 0x85, 0xFF, 0x6A, 0xB4, 0x79, 0xFF, 0xAF, 0x9D, 0x3A, 0xFF, - 0xFF, 0x97, 0x0B, 0xFF, 0xF9, 0x93, 0x18, 0xFF, 0xED, 0x9B, 0x0F, 0xFF, 0xF0, 0x9A, 0x12, 0xFF, - 0xF3, 0x98, 0x15, 0xFF, 0xF1, 0x96, 0x13, 0xFF, 0xEF, 0x94, 0x11, 0xFF, 0xEF, 0x94, 0x11, 0xFF, - 0xF4, 0xCF, 0x58, 0xFF, 0xF4, 0xCE, 0x55, 0xFF, 0xF4, 0xCD, 0x53, 0xFF, 0xF6, 0xCC, 0x52, 0xFF, - 0xF8, 0xCB, 0x52, 0xFF, 0xFA, 0xD5, 0x52, 0xFF, 0xFB, 0xC7, 0x4E, 0xFF, 0xAD, 0x4C, 0x00, 0xFF, - 0xCA, 0x6F, 0x09, 0xFF, 0xD3, 0x7F, 0x0B, 0xFF, 0xD4, 0x88, 0x05, 0xFF, 0xDB, 0x97, 0x04, 0xFF, - 0xE1, 0xA7, 0x04, 0xFF, 0xE5, 0xB6, 0x18, 0xFF, 0xF1, 0xC7, 0x3F, 0xFF, 0xF3, 0xD3, 0x62, 0xFF, - 0xF4, 0xDF, 0x86, 0xFF, 0xF7, 0xE4, 0x91, 0xFF, 0xF9, 0xE9, 0x9B, 0xFF, 0xF9, 0xF0, 0xAD, 0xFF, - 0xF9, 0xF7, 0xBF, 0xFF, 0xFB, 0xFA, 0xCB, 0xFF, 0xFD, 0xFC, 0xD7, 0xFF, 0xFC, 0xFD, 0xDE, 0xFF, - 0xFB, 0xFD, 0xE5, 0xFF, 0xFE, 0xFF, 0xEF, 0xFF, 0xFF, 0xFF, 0xF9, 0xFF, 0xFA, 0xFE, 0xF2, 0xFF, - 0xFC, 0xFE, 0xFE, 0xFF, 0xFB, 0xE9, 0xC6, 0xFF, 0xEC, 0xAF, 0x1D, 0xFF, 0xF6, 0xB4, 0x30, 0xFF, - 0xF8, 0xB6, 0x2F, 0xFF, 0xF6, 0xA7, 0x19, 0xFF, 0xF0, 0xB0, 0x26, 0xFF, 0xF2, 0xAD, 0x22, 0xFF, - 0xF5, 0xAB, 0x1D, 0xFF, 0xF9, 0xA9, 0x26, 0xFF, 0xF6, 0xA6, 0x1C, 0xFF, 0xE9, 0xCD, 0x7D, 0xFF, - 0xDC, 0xF4, 0xDF, 0xFF, 0xAF, 0xFE, 0xEA, 0xFF, 0xED, 0xFD, 0xFD, 0xFF, 0xEF, 0xFF, 0xFF, 0xFF, - 0xD3, 0xF8, 0xFB, 0xFF, 0xB4, 0xEE, 0xEC, 0xFF, 0xAB, 0xE9, 0xE6, 0xFF, 0x89, 0xE6, 0xD8, 0xFF, - 0x67, 0xE2, 0xCB, 0xFF, 0x52, 0xE1, 0xB8, 0xFF, 0x4C, 0xDD, 0xA6, 0xFF, 0x7E, 0xC5, 0x74, 0xFF, - 0xB0, 0xAD, 0x42, 0xFF, 0xF3, 0x9B, 0x22, 0xFF, 0xFF, 0x9C, 0x09, 0xFF, 0xF5, 0x98, 0x09, 0xFF, - 0xEE, 0x9C, 0x10, 0xFF, 0xED, 0x99, 0x17, 0xFF, 0xED, 0x9D, 0x14, 0xFF, 0xEF, 0x9B, 0x14, 0xFF, - 0xF2, 0x99, 0x15, 0xFF, 0xF0, 0x97, 0x13, 0xFF, 0xEE, 0x95, 0x11, 0xFF, 0xEE, 0x95, 0x11, 0xFF, - 0xF5, 0xD0, 0x5A, 0xFF, 0xF4, 0xCF, 0x57, 0xFF, 0xF3, 0xCE, 0x54, 0xFF, 0xF5, 0xCC, 0x53, 0xFF, - 0xF7, 0xCB, 0x53, 0xFF, 0xF4, 0xD3, 0x4C, 0xFF, 0xDD, 0x9A, 0x2C, 0xFF, 0xC1, 0x5D, 0x03, 0xFF, - 0xC8, 0x72, 0x05, 0xFF, 0xD2, 0x83, 0x06, 0xFF, 0xDC, 0x93, 0x07, 0xFF, 0xE1, 0xA2, 0x07, 0xFF, - 0xE7, 0xB0, 0x08, 0xFF, 0xEE, 0xBF, 0x27, 0xFF, 0xF6, 0xCD, 0x47, 0xFF, 0xF7, 0xD8, 0x6B, 0xFF, - 0xF9, 0xE2, 0x8E, 0xFF, 0xFA, 0xE7, 0x9A, 0xFF, 0xFB, 0xEC, 0xA6, 0xFF, 0xFA, 0xF3, 0xB6, 0xFF, - 0xFA, 0xF9, 0xC7, 0xFF, 0xFB, 0xFB, 0xD0, 0xFF, 0xFD, 0xFC, 0xD9, 0xFF, 0xFC, 0xFD, 0xDD, 0xFF, - 0xFC, 0xFE, 0xE2, 0xFF, 0xFE, 0xFF, 0xEE, 0xFF, 0xFF, 0xFF, 0xFB, 0xFF, 0xF7, 0xFD, 0xEA, 0xFF, - 0xFE, 0xFE, 0xFF, 0xFF, 0xF7, 0xD7, 0x8F, 0xFF, 0xF1, 0xAF, 0x1E, 0xFF, 0xF6, 0xB0, 0x2E, 0xFF, - 0xEB, 0xAB, 0x17, 0xFF, 0xFD, 0xF7, 0xDF, 0xFF, 0xE9, 0xAC, 0x24, 0xFF, 0xF0, 0xAC, 0x22, 0xFF, - 0xF8, 0xAC, 0x21, 0xFF, 0xF6, 0xAE, 0x26, 0xFF, 0xF5, 0xB0, 0x2B, 0xFF, 0xF4, 0xA9, 0x19, 0xFF, - 0xF3, 0xA2, 0x08, 0xFF, 0xF9, 0xA7, 0x22, 0xFF, 0xF2, 0xC1, 0x4C, 0xFF, 0xEE, 0xCD, 0x6D, 0xFF, - 0xDB, 0xC9, 0x7D, 0xFF, 0xC2, 0xCA, 0x7F, 0xFF, 0xC6, 0xC5, 0x81, 0xFF, 0xCB, 0xBC, 0x60, 0xFF, - 0xCF, 0xB3, 0x40, 0xFF, 0xE9, 0xA7, 0x24, 0xFF, 0xFF, 0x9B, 0x07, 0xFF, 0xFF, 0x9D, 0x10, 0xFF, - 0xFF, 0x9F, 0x1A, 0xFF, 0xE9, 0x98, 0x0F, 0xFF, 0xF9, 0x9C, 0x14, 0xFF, 0xF7, 0x9C, 0x14, 0xFF, - 0xF4, 0x9B, 0x14, 0xFF, 0xF1, 0x9D, 0x17, 0xFF, 0xED, 0x9E, 0x19, 0xFF, 0xEF, 0x9C, 0x16, 0xFF, - 0xF1, 0x99, 0x14, 0xFF, 0xEF, 0x97, 0x12, 0xFF, 0xED, 0x95, 0x10, 0xFF, 0xED, 0x95, 0x10, 0xFF, - 0xF6, 0xD1, 0x5C, 0xFF, 0xF4, 0xD0, 0x58, 0xFF, 0xF3, 0xCF, 0x55, 0xFF, 0xF5, 0xCD, 0x54, 0xFF, - 0xF7, 0xCC, 0x53, 0xFF, 0xF6, 0xD5, 0x51, 0xFF, 0xCE, 0x7B, 0x16, 0xFF, 0xC6, 0x67, 0x03, 0xFF, - 0xCF, 0x7B, 0x06, 0xFF, 0xD7, 0x8B, 0x05, 0xFF, 0xDF, 0x9B, 0x05, 0xFF, 0xE4, 0xA8, 0x07, 0xFF, - 0xEA, 0xB6, 0x09, 0xFF, 0xF1, 0xC3, 0x2A, 0xFF, 0xF7, 0xD1, 0x4C, 0xFF, 0xF8, 0xDB, 0x6C, 0xFF, - 0xFA, 0xE4, 0x8D, 0xFF, 0xFA, 0xEA, 0x9C, 0xFF, 0xFB, 0xEF, 0xAB, 0xFF, 0xFA, 0xF5, 0xBC, 0xFF, - 0xFA, 0xFA, 0xCD, 0xFF, 0xFB, 0xFB, 0xD4, 0xFF, 0xFD, 0xFC, 0xDB, 0xFF, 0xFC, 0xFD, 0xDC, 0xFF, - 0xFC, 0xFE, 0xDD, 0xFF, 0xFC, 0xFE, 0xE3, 0xFF, 0xFD, 0xFE, 0xEA, 0xFF, 0xFD, 0xFF, 0xFE, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xDE, 0xC0, 0x27, 0xFF, 0xF5, 0xB4, 0x26, 0xFF, 0xF8, 0xB0, 0x1E, 0xFF, - 0xFF, 0xC6, 0x4D, 0xFF, 0xEF, 0xF8, 0xFF, 0xFF, 0xFA, 0xFF, 0xFE, 0xFF, 0xF6, 0xD8, 0x8B, 0xFF, - 0xF3, 0xA7, 0x18, 0xFF, 0xF4, 0xA9, 0x1D, 0xFF, 0xF5, 0xAC, 0x22, 0xFF, 0xF2, 0xAB, 0x22, 0xFF, - 0xF0, 0xAB, 0x22, 0xFF, 0xF2, 0xA3, 0x1A, 0xFF, 0xEE, 0xA6, 0x1A, 0xFF, 0xF4, 0xA8, 0x17, 0xFF, - 0xF3, 0xA2, 0x0D, 0xFF, 0xF2, 0xA4, 0x10, 0xFF, 0xFF, 0xA3, 0x14, 0xFF, 0xFC, 0xA3, 0x15, 0xFF, - 0xF9, 0xA2, 0x16, 0xFF, 0xF2, 0xA2, 0x17, 0xFF, 0xEC, 0xA1, 0x18, 0xFF, 0xFD, 0x99, 0x0D, 0xFF, - 0xED, 0x9A, 0x16, 0xFF, 0xFF, 0xA0, 0x00, 0xFF, 0xE8, 0x9C, 0x2B, 0xFF, 0xAF, 0xB5, 0x60, 0xFF, - 0xF7, 0x99, 0x10, 0xFF, 0xF2, 0x9B, 0x14, 0xFF, 0xED, 0x9D, 0x18, 0xFF, 0xEE, 0x9B, 0x16, 0xFF, - 0xEF, 0x99, 0x13, 0xFF, 0xED, 0x97, 0x11, 0xFF, 0xEB, 0x95, 0x0F, 0xFF, 0xEB, 0x95, 0x0F, 0xFF, - 0xF7, 0xD2, 0x5E, 0xFF, 0xF4, 0xD1, 0x5A, 0xFF, 0xF2, 0xD0, 0x56, 0xFF, 0xF5, 0xCE, 0x54, 0xFF, - 0xF7, 0xCC, 0x53, 0xFF, 0xF7, 0xD7, 0x56, 0xFF, 0xC0, 0x5B, 0x00, 0xFF, 0xCB, 0x70, 0x03, 0xFF, - 0xD6, 0x84, 0x06, 0xFF, 0xDC, 0x94, 0x05, 0xFF, 0xE2, 0xA3, 0x03, 0xFF, 0xE8, 0xAF, 0x07, 0xFF, - 0xEE, 0xBB, 0x0B, 0xFF, 0xF3, 0xC8, 0x2D, 0xFF, 0xF8, 0xD5, 0x50, 0xFF, 0xF9, 0xDE, 0x6E, 0xFF, - 0xFA, 0xE6, 0x8C, 0xFF, 0xFB, 0xEC, 0x9F, 0xFF, 0xFB, 0xF2, 0xB1, 0xFF, 0xFA, 0xF7, 0xC2, 0xFF, - 0xF9, 0xFB, 0xD3, 0xFF, 0xFB, 0xFC, 0xD8, 0xFF, 0xFD, 0xFC, 0xDD, 0xFF, 0xFC, 0xFD, 0xDB, 0xFF, - 0xFC, 0xFE, 0xD8, 0xFF, 0xFB, 0xFD, 0xD8, 0xFF, 0xFA, 0xFC, 0xD9, 0xFF, 0xFA, 0xFA, 0xE4, 0xFF, - 0xF6, 0xE9, 0xA3, 0xFF, 0xFB, 0xAC, 0x2A, 0xFF, 0xFA, 0xB9, 0x2E, 0xFF, 0xED, 0xAD, 0x1A, 0xFF, - 0xF7, 0xDA, 0x99, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xFD, 0xFE, 0xFF, 0xFC, 0xFE, 0xFE, 0xFF, - 0xFD, 0xFF, 0xFF, 0xFF, 0xF9, 0xD4, 0x8C, 0xFF, 0xF5, 0xA8, 0x19, 0xFF, 0xF7, 0xA9, 0x17, 0xFF, - 0xF8, 0xA9, 0x16, 0xFF, 0xF3, 0xA7, 0x1A, 0xFF, 0xED, 0xA5, 0x1E, 0xFF, 0xF1, 0xA7, 0x1F, 0xFF, - 0xF6, 0xA9, 0x20, 0xFF, 0xF6, 0xA7, 0x1D, 0xFF, 0xF6, 0xA5, 0x1A, 0xFF, 0xF8, 0xA3, 0x16, 0xFF, - 0xFA, 0xA1, 0x12, 0xFF, 0xFC, 0x9D, 0x0A, 0xFF, 0xFE, 0x98, 0x03, 0xFF, 0xF9, 0xA1, 0x25, 0xFF, - 0xB0, 0xC0, 0x6F, 0xFF, 0x5D, 0xC9, 0xCF, 0xFF, 0x27, 0xE5, 0xFF, 0xFF, 0xB3, 0xB4, 0x73, 0xFF, - 0xF9, 0x97, 0x0B, 0xFF, 0xF3, 0x9A, 0x11, 0xFF, 0xED, 0x9D, 0x17, 0xFF, 0xEE, 0x9B, 0x15, 0xFF, - 0xEE, 0x9A, 0x13, 0xFF, 0xEC, 0x98, 0x11, 0xFF, 0xEA, 0x96, 0x0F, 0xFF, 0xEA, 0x96, 0x0F, 0xFF, - 0xF6, 0xD1, 0x5D, 0xFF, 0xF5, 0xD1, 0x5A, 0xFF, 0xF4, 0xD2, 0x58, 0xFF, 0xF3, 0xCE, 0x53, 0xFF, - 0xFA, 0xD1, 0x56, 0xFF, 0xE6, 0xB1, 0x3F, 0xFF, 0xC6, 0x64, 0x01, 0xFF, 0xCE, 0x75, 0x02, 0xFF, - 0xD7, 0x87, 0x04, 0xFF, 0xDD, 0x95, 0x02, 0xFF, 0xE4, 0xA4, 0x00, 0xFF, 0xEA, 0xB0, 0x03, 0xFF, - 0xF1, 0xBD, 0x06, 0xFF, 0xF2, 0xC8, 0x1B, 0xFF, 0xFB, 0xD5, 0x42, 0xFF, 0xFB, 0xDD, 0x63, 0xFF, - 0xFB, 0xE5, 0x84, 0xFF, 0xFC, 0xEB, 0x98, 0xFF, 0xFC, 0xF1, 0xAB, 0xFF, 0xFF, 0xF8, 0xBD, 0xFF, - 0xFF, 0xFF, 0xCF, 0xFF, 0xFF, 0xFC, 0xCF, 0xFF, 0xFB, 0xF9, 0xCF, 0xFF, 0xFD, 0xFE, 0xD2, 0xFF, - 0xFF, 0xFF, 0xD4, 0xFF, 0xFF, 0xF9, 0xC6, 0xFF, 0xFF, 0xEE, 0xB7, 0xFF, 0xD9, 0xD7, 0x59, 0xFF, - 0xE9, 0xB9, 0x40, 0xFF, 0xFF, 0xB9, 0x2E, 0xFF, 0xEF, 0xB1, 0x2B, 0xFF, 0xEB, 0xAF, 0x27, 0xFF, - 0xF1, 0xEF, 0xDD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFE, 0xFF, 0xFD, 0xFE, 0xFF, 0xFF, - 0xF9, 0xFD, 0xFF, 0xFF, 0xF9, 0xFF, 0xFF, 0xFF, 0xF9, 0xFF, 0xFF, 0xFF, 0xF0, 0xE8, 0xC1, 0xFF, - 0xE6, 0xCD, 0x83, 0xFF, 0xE8, 0xBB, 0x52, 0xFF, 0xEB, 0xA9, 0x21, 0xFF, 0xFF, 0xA1, 0x13, 0xFF, - 0xF7, 0x9F, 0x06, 0xFF, 0xF8, 0x9F, 0x0F, 0xFF, 0xEA, 0xA3, 0x18, 0xFF, 0xE0, 0xB1, 0x43, 0xFF, - 0xC9, 0xC2, 0x6D, 0xFF, 0x99, 0xD6, 0xAF, 0xFF, 0x6A, 0xEB, 0xF1, 0xFF, 0x31, 0xEE, 0xEB, 0xFF, - 0x47, 0xE6, 0xF8, 0xFF, 0x3A, 0xE1, 0xFF, 0xFF, 0x41, 0xE1, 0xFC, 0xFF, 0xF4, 0x98, 0x00, 0xFF, - 0xFC, 0xA1, 0x19, 0xFF, 0xF6, 0x9E, 0x15, 0xFF, 0xF1, 0x9A, 0x11, 0xFF, 0xF0, 0x9A, 0x13, 0xFF, - 0xF0, 0x99, 0x14, 0xFF, 0xEE, 0x97, 0x12, 0xFF, 0xEC, 0x95, 0x10, 0xFF, 0xEC, 0x95, 0x10, 0xFF, - 0xF5, 0xCF, 0x5C, 0xFF, 0xF6, 0xD1, 0x5A, 0xFF, 0xF6, 0xD4, 0x59, 0xFF, 0xF2, 0xCD, 0x51, 0xFF, - 0xFE, 0xD6, 0x59, 0xFF, 0xD5, 0x8B, 0x29, 0xFF, 0xCB, 0x6C, 0x02, 0xFF, 0xD1, 0x7A, 0x01, 0xFF, - 0xD8, 0x89, 0x01, 0xFF, 0xDE, 0x97, 0x00, 0xFF, 0xE5, 0xA5, 0x00, 0xFF, 0xEC, 0xB2, 0x00, 0xFF, - 0xF3, 0xBE, 0x02, 0xFF, 0xF1, 0xC7, 0x08, 0xFF, 0xFE, 0xD5, 0x35, 0xFF, 0xFD, 0xDD, 0x58, 0xFF, - 0xFB, 0xE4, 0x7C, 0xFF, 0xFC, 0xEA, 0x91, 0xFF, 0xFE, 0xEF, 0xA6, 0xFF, 0xFE, 0xF2, 0xB0, 0xFF, - 0xFE, 0xF5, 0xBA, 0xFF, 0xFC, 0xF5, 0xBD, 0xFF, 0xF9, 0xF5, 0xC0, 0xFF, 0xF6, 0xF7, 0xC0, 0xFF, - 0xF4, 0xF9, 0xC1, 0xFF, 0xFC, 0xFC, 0xC6, 0xFF, 0xFF, 0xFF, 0xCC, 0xFF, 0xF7, 0xF8, 0xC1, 0xFF, - 0xF3, 0xCC, 0x59, 0xFF, 0xF2, 0xB0, 0x38, 0xFF, 0xF5, 0xBA, 0x37, 0xFF, 0xF7, 0xB4, 0x29, 0xFF, - 0xF8, 0xFB, 0xFC, 0xFF, 0xFF, 0xFD, 0xFC, 0xFF, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, - 0xF6, 0xFC, 0xFF, 0xFF, 0xF2, 0xFE, 0xFC, 0xFF, 0xEE, 0xFF, 0xF6, 0xFF, 0xE9, 0xFF, 0xFC, 0xFF, - 0xE4, 0xFF, 0xFF, 0xFF, 0xD7, 0xFF, 0xFF, 0xFF, 0xCA, 0xFF, 0xFF, 0xFF, 0xF1, 0xFB, 0xFF, 0xFF, - 0xDF, 0xFF, 0xFF, 0xFF, 0xC1, 0xFD, 0xFC, 0xFF, 0x88, 0xFF, 0xF6, 0xFF, 0x91, 0xFD, 0xFB, 0xFF, - 0x7F, 0xFF, 0xFF, 0xFF, 0x6C, 0xFC, 0xFC, 0xFF, 0x59, 0xF6, 0xF9, 0xFF, 0x58, 0xEF, 0xF8, 0xFF, - 0x57, 0xE9, 0xF7, 0xFF, 0x59, 0xE3, 0xF6, 0xFF, 0x67, 0xD2, 0xD0, 0xFF, 0xFF, 0x98, 0x08, 0xFF, - 0xEF, 0x9A, 0x17, 0xFF, 0xF1, 0x99, 0x12, 0xFF, 0xF4, 0x98, 0x0C, 0xFF, 0xF3, 0x99, 0x10, 0xFF, - 0xF1, 0x99, 0x15, 0xFF, 0xEF, 0x97, 0x13, 0xFF, 0xED, 0x95, 0x11, 0xFF, 0xED, 0x95, 0x11, 0xFF, - 0xF9, 0xD1, 0x5E, 0xFF, 0xF7, 0xD3, 0x5B, 0xFF, 0xF6, 0xD4, 0x59, 0xFF, 0xF8, 0xD3, 0x57, 0xFF, - 0xFF, 0xDA, 0x5E, 0xFF, 0xCD, 0x70, 0x19, 0xFF, 0xCC, 0x6D, 0x02, 0xFF, 0xD2, 0x7B, 0x03, 0xFF, - 0xD9, 0x88, 0x04, 0xFF, 0xDF, 0x96, 0x04, 0xFF, 0xE6, 0xA5, 0x04, 0xFF, 0xE6, 0xAD, 0x01, 0xFF, - 0xE7, 0xB4, 0x00, 0xFF, 0xEA, 0xBE, 0x06, 0xFF, 0xF5, 0xCA, 0x23, 0xFF, 0xF8, 0xD7, 0x4B, 0xFF, - 0xFB, 0xE3, 0x74, 0xFF, 0xFC, 0xE8, 0x89, 0xFF, 0xFE, 0xEC, 0x9E, 0xFF, 0xFE, 0xED, 0xA5, 0xFF, - 0xFE, 0xEE, 0xAB, 0xFF, 0xFB, 0xEF, 0xAD, 0xFF, 0xF9, 0xEF, 0xB0, 0xFF, 0xF8, 0xF2, 0xB3, 0xFF, - 0xF8, 0xF5, 0xB6, 0xFF, 0xFC, 0xF8, 0xB5, 0xFF, 0xFF, 0xFB, 0xB5, 0xFF, 0xFF, 0xF3, 0xD9, 0xFF, - 0xF1, 0xB9, 0x1A, 0xFF, 0xF3, 0xB3, 0x28, 0xFF, 0xF6, 0xB3, 0x2A, 0xFF, 0xF3, 0xCE, 0x73, 0xFF, - 0xF5, 0xFD, 0xFD, 0xFF, 0xF9, 0xFE, 0xFD, 0xFF, 0xFE, 0xFF, 0xFD, 0xFF, 0xF8, 0xFE, 0xFF, 0xFF, - 0xF3, 0xFD, 0xFF, 0xFF, 0xEE, 0xFE, 0xFD, 0xFF, 0xE9, 0xFE, 0xFA, 0xFF, 0xE3, 0xFF, 0xFC, 0xFF, - 0xDE, 0xFF, 0xFF, 0xFF, 0xD0, 0xFF, 0xFF, 0xFF, 0xC2, 0xFF, 0xFF, 0xFF, 0xD6, 0xFA, 0xFC, 0xFF, - 0xF3, 0xFC, 0xFF, 0xFF, 0xBF, 0xFF, 0xFE, 0xFF, 0xC4, 0xFA, 0xFC, 0xFF, 0x84, 0xFF, 0xFC, 0xFF, - 0x8A, 0xFA, 0xFB, 0xFF, 0x79, 0xF6, 0xFA, 0xFF, 0x68, 0xF2, 0xF9, 0xFF, 0x5E, 0xED, 0xF6, 0xFF, - 0x53, 0xE8, 0xF4, 0xFF, 0x48, 0xE8, 0xF7, 0xFF, 0xA8, 0xBC, 0x87, 0xFF, 0xFB, 0x9A, 0x10, 0xFF, - 0xF1, 0x9B, 0x17, 0xFF, 0xF1, 0x9A, 0x14, 0xFF, 0xF1, 0x9A, 0x10, 0xFF, 0xF2, 0x99, 0x13, 0xFF, - 0xF3, 0x98, 0x16, 0xFF, 0xF1, 0x96, 0x14, 0xFF, 0xEF, 0x94, 0x12, 0xFF, 0xEF, 0x94, 0x12, 0xFF, - 0xFC, 0xD4, 0x61, 0xFF, 0xF9, 0xD4, 0x5D, 0xFF, 0xF6, 0xD4, 0x58, 0xFF, 0xF5, 0xD1, 0x55, 0xFF, - 0xF5, 0xCE, 0x53, 0xFF, 0xBD, 0x4D, 0x01, 0xFF, 0xCD, 0x6E, 0x02, 0xFF, 0xD3, 0x7B, 0x04, 0xFF, - 0xDA, 0x87, 0x06, 0xFF, 0xE0, 0x96, 0x09, 0xFF, 0xE6, 0xA5, 0x0C, 0xFF, 0xE9, 0xB0, 0x0A, 0xFF, - 0xEB, 0xBA, 0x09, 0xFF, 0xF3, 0xC5, 0x15, 0xFF, 0xFB, 0xD0, 0x21, 0xFF, 0xFB, 0xD9, 0x46, 0xFF, - 0xFB, 0xE3, 0x6B, 0xFF, 0xFC, 0xE6, 0x81, 0xFF, 0xFD, 0xE9, 0x97, 0xFF, 0xFD, 0xE8, 0x99, 0xFF, - 0xFD, 0xE8, 0x9B, 0xFF, 0xFB, 0xE8, 0x9D, 0xFF, 0xF8, 0xE9, 0x9F, 0xFF, 0xFA, 0xEE, 0xA5, 0xFF, - 0xFC, 0xF2, 0xAB, 0xFF, 0xFB, 0xEF, 0xB0, 0xFF, 0xFB, 0xEB, 0xB4, 0xFF, 0xF8, 0xDD, 0x89, 0xFF, - 0xF3, 0xB4, 0x27, 0xFF, 0xF7, 0xBD, 0x3E, 0xFF, 0xF7, 0xAC, 0x1E, 0xFF, 0xF0, 0xE8, 0xBC, 0xFF, - 0xF2, 0xFF, 0xFE, 0xFF, 0xF3, 0xFF, 0xFD, 0xFF, 0xF4, 0xFE, 0xFD, 0xFF, 0xF2, 0xFE, 0xFD, 0xFF, - 0xEF, 0xFE, 0xFE, 0xFF, 0xE9, 0xFE, 0xFE, 0xFF, 0xE3, 0xFE, 0xFE, 0xFF, 0xDD, 0xFD, 0xFD, 0xFF, - 0xD7, 0xFD, 0xFD, 0xFF, 0xC8, 0xFE, 0xFC, 0xFF, 0xB9, 0xFF, 0xFB, 0xFF, 0x9F, 0xFE, 0xF5, 0xFF, - 0xCE, 0xFF, 0xFF, 0xFF, 0xF5, 0xF9, 0xFF, 0xFF, 0xC8, 0xFF, 0xFF, 0xFF, 0xBD, 0xF7, 0xFC, 0xFF, - 0x7A, 0xF8, 0xF8, 0xFF, 0x6B, 0xF5, 0xF8, 0xFF, 0x5C, 0xF3, 0xF9, 0xFF, 0x55, 0xED, 0xF5, 0xFF, - 0x4F, 0xE8, 0xF1, 0xFF, 0x37, 0xEE, 0xF8, 0xFF, 0xE9, 0xA6, 0x3E, 0xFF, 0xF5, 0x9C, 0x17, 0xFF, - 0xF4, 0x9D, 0x17, 0xFF, 0xF1, 0x9C, 0x15, 0xFF, 0xEE, 0x9B, 0x14, 0xFF, 0xF1, 0x99, 0x15, 0xFF, - 0xF4, 0x97, 0x17, 0xFF, 0xF2, 0x95, 0x15, 0xFF, 0xF0, 0x93, 0x13, 0xFF, 0xF0, 0x93, 0x13, 0xFF, - 0xFB, 0xD6, 0x66, 0xFF, 0xF4, 0xD1, 0x5E, 0xFF, 0xF6, 0xD3, 0x5F, 0xFF, 0xF9, 0xD7, 0x59, 0xFF, - 0xDA, 0x9D, 0x39, 0xFF, 0xBE, 0x58, 0x08, 0xFF, 0xCD, 0x6C, 0x08, 0xFF, 0xD2, 0x79, 0x0C, 0xFF, - 0xD7, 0x87, 0x0F, 0xFF, 0xDF, 0x96, 0x11, 0xFF, 0xE7, 0xA5, 0x13, 0xFF, 0xEA, 0xB0, 0x13, 0xFF, - 0xF5, 0xC2, 0x1B, 0xFF, 0xF3, 0xC8, 0x0F, 0xFF, 0xF9, 0xD0, 0x16, 0xFF, 0xF4, 0xD2, 0x27, 0xFF, - 0xF7, 0xD6, 0x4B, 0xFF, 0xF8, 0xDA, 0x60, 0xFF, 0xF9, 0xDE, 0x76, 0xFF, 0xF9, 0xDF, 0x7F, 0xFF, - 0xFA, 0xE0, 0x87, 0xFF, 0xFB, 0xE4, 0x8C, 0xFF, 0xFB, 0xE7, 0x91, 0xFF, 0xFC, 0xEA, 0x95, 0xFF, - 0xFC, 0xED, 0x9A, 0xFF, 0xFB, 0xEA, 0x9E, 0xFF, 0xFA, 0xE7, 0xA3, 0xFF, 0xFA, 0xCC, 0x5E, 0xFF, - 0xF5, 0xB6, 0x2C, 0xFF, 0xF9, 0xB8, 0x24, 0xFF, 0xF5, 0xB1, 0x14, 0xFF, 0xFF, 0xFB, 0xFF, 0xFF, - 0xEC, 0xFF, 0xFD, 0xFF, 0xED, 0xFF, 0xFF, 0xFF, 0xED, 0xFF, 0xFF, 0xFF, 0xEC, 0xFE, 0xFF, 0xFF, - 0xEA, 0xFD, 0xFD, 0xFF, 0xE3, 0xFD, 0xFD, 0xFF, 0xDC, 0xFD, 0xFD, 0xFF, 0xD5, 0xFD, 0xFD, 0xFF, - 0xCE, 0xFD, 0xFD, 0xFF, 0xC1, 0xFC, 0xFC, 0xFF, 0xB4, 0xFB, 0xFB, 0xFF, 0x8D, 0xFA, 0xF5, 0xFF, - 0x89, 0xFC, 0xF8, 0xFF, 0xCB, 0xFA, 0xF8, 0xFF, 0xF1, 0xFE, 0xF7, 0xFF, 0xBD, 0xFF, 0xF9, 0xFF, - 0xC2, 0xF9, 0xFA, 0xFF, 0xAC, 0xF8, 0xFB, 0xFF, 0x96, 0xF7, 0xFC, 0xFF, 0x91, 0xF4, 0xF9, 0xFF, - 0x8C, 0xF0, 0xF7, 0xFF, 0xA8, 0xE4, 0xFF, 0xFF, 0xF6, 0x95, 0x00, 0xFF, 0xF6, 0x99, 0x07, 0xFF, - 0xF7, 0x9D, 0x15, 0xFF, 0xF3, 0x9D, 0x15, 0xFF, 0xF0, 0x9C, 0x15, 0xFF, 0xF2, 0x9A, 0x15, 0xFF, - 0xF4, 0x98, 0x15, 0xFF, 0xF2, 0x97, 0x14, 0xFF, 0xF1, 0x95, 0x12, 0xFF, 0xF1, 0x95, 0x12, 0xFF, - 0xFA, 0xD9, 0x6A, 0xFF, 0xF0, 0xCE, 0x60, 0xFF, 0xF6, 0xD2, 0x66, 0xFF, 0xFD, 0xDD, 0x5C, 0xFF, - 0xC0, 0x6C, 0x1E, 0xFF, 0xBE, 0x63, 0x0E, 0xFF, 0xCD, 0x69, 0x0E, 0xFF, 0xD0, 0x78, 0x13, 0xFF, - 0xD4, 0x87, 0x18, 0xFF, 0xDE, 0x96, 0x19, 0xFF, 0xE9, 0xA6, 0x1A, 0xFF, 0xE3, 0xA8, 0x13, 0xFF, - 0xEE, 0xBA, 0x1D, 0xFF, 0xEA, 0xBD, 0x0C, 0xFF, 0xF6, 0xC5, 0x22, 0xFF, 0xEC, 0xC5, 0x13, 0xFF, - 0xF2, 0xCA, 0x2A, 0xFF, 0xF3, 0xCF, 0x40, 0xFF, 0xF4, 0xD3, 0x56, 0xFF, 0xF5, 0xD6, 0x65, 0xFF, - 0xF7, 0xD9, 0x74, 0xFF, 0xFA, 0xDF, 0x7B, 0xFF, 0xFE, 0xE4, 0x82, 0xFF, 0xFD, 0xE6, 0x86, 0xFF, - 0xFD, 0xE7, 0x89, 0xFF, 0xFB, 0xE4, 0x8D, 0xFF, 0xF9, 0xE2, 0x92, 0xFF, 0xFC, 0xBB, 0x33, 0xFF, - 0xF6, 0xB9, 0x31, 0xFF, 0xFD, 0xBA, 0x31, 0xFF, 0xF7, 0xC4, 0x57, 0xFF, 0xDE, 0xFF, 0xF3, 0xFF, - 0xE6, 0xFF, 0xFD, 0xFF, 0xE6, 0xFF, 0xFF, 0xFF, 0xE6, 0xFF, 0xFF, 0xFF, 0xE6, 0xFE, 0xFF, 0xFF, - 0xE5, 0xFC, 0xFD, 0xFF, 0xDD, 0xFC, 0xFD, 0xFF, 0xD5, 0xFC, 0xFD, 0xFF, 0xCD, 0xFD, 0xFD, 0xFF, - 0xC5, 0xFD, 0xFD, 0xFF, 0xBA, 0xFA, 0xFC, 0xFF, 0xAF, 0xF7, 0xFB, 0xFF, 0x9E, 0xF9, 0xFE, 0xFF, - 0x8D, 0xFB, 0xFF, 0xFF, 0x77, 0xFE, 0xFA, 0xFF, 0x7D, 0xFB, 0xF4, 0xFF, 0xD2, 0xF7, 0xF8, 0xFF, - 0xEE, 0xFF, 0xFD, 0xFF, 0xDF, 0xFD, 0xFE, 0xFF, 0xD0, 0xFB, 0xFE, 0xFF, 0xCD, 0xFA, 0xFD, 0xFF, - 0xC9, 0xF9, 0xFC, 0xFF, 0xCD, 0xD2, 0xA6, 0xFF, 0xEA, 0x98, 0x02, 0xFF, 0xEC, 0xA0, 0x1E, 0xFF, - 0xF9, 0x9E, 0x13, 0xFF, 0xF6, 0x9E, 0x15, 0xFF, 0xF2, 0x9D, 0x16, 0xFF, 0xF2, 0x9B, 0x15, 0xFF, - 0xF3, 0x99, 0x14, 0xFF, 0xF2, 0x98, 0x13, 0xFF, 0xF1, 0x97, 0x12, 0xFF, 0xF1, 0x97, 0x12, 0xFF, - 0xF3, 0xD4, 0x55, 0xFF, 0xF0, 0xD1, 0x5B, 0xFF, 0xF6, 0xD6, 0x69, 0xFF, 0xFF, 0xE2, 0x6D, 0xFF, - 0xA7, 0x4F, 0x0B, 0xFF, 0xBE, 0x60, 0x11, 0xFF, 0xCD, 0x6A, 0x0F, 0xFF, 0xD5, 0x83, 0x1F, 0xFF, - 0xDC, 0x89, 0x1E, 0xFF, 0xDD, 0x8B, 0x0F, 0xFF, 0xE0, 0x9B, 0x1A, 0xFF, 0xF3, 0xB0, 0x22, 0xFF, - 0xE0, 0xAA, 0x1D, 0xFF, 0xDF, 0xAE, 0x13, 0xFF, 0xEE, 0xBC, 0x25, 0xFF, 0xE6, 0xB9, 0x14, 0xFF, - 0xEF, 0xC1, 0x1F, 0xFF, 0xEF, 0xC7, 0x25, 0xFF, 0xEE, 0xCD, 0x2B, 0xFF, 0xF0, 0xCD, 0x3C, 0xFF, - 0xF3, 0xCE, 0x4E, 0xFF, 0xF8, 0xD6, 0x5B, 0xFF, 0xFE, 0xDE, 0x68, 0xFF, 0xFC, 0xDD, 0x6D, 0xFF, - 0xFA, 0xDC, 0x73, 0xFF, 0xF5, 0xDD, 0x75, 0xFF, 0xF6, 0xD3, 0x70, 0xFF, 0xFB, 0xBA, 0x30, 0xFF, - 0xF5, 0xB8, 0x33, 0xFF, 0xFE, 0xB5, 0x24, 0xFF, 0xE4, 0xDE, 0xA3, 0xFF, 0xDC, 0xFF, 0xF9, 0xFF, - 0xDC, 0xFD, 0xFD, 0xFF, 0xDC, 0xFE, 0xFE, 0xFF, 0xDB, 0xFF, 0xFF, 0xFF, 0xDA, 0xFE, 0xFE, 0xFF, - 0xD9, 0xFD, 0xFC, 0xFF, 0xD2, 0xFD, 0xFC, 0xFF, 0xCA, 0xFD, 0xFC, 0xFF, 0xC3, 0xFD, 0xFD, 0xFF, - 0xBB, 0xFD, 0xFD, 0xFF, 0xAF, 0xFB, 0xFC, 0xFF, 0xA2, 0xFA, 0xFC, 0xFF, 0x92, 0xFA, 0xFD, 0xFF, - 0x83, 0xFB, 0xFE, 0xFF, 0x6A, 0xFD, 0xFB, 0xFF, 0x60, 0xFC, 0xF8, 0xFF, 0x5D, 0xF8, 0xFA, 0xFF, - 0x4C, 0xF7, 0xFC, 0xFF, 0x76, 0xF4, 0xFD, 0xFF, 0xA0, 0xF2, 0xFE, 0xFF, 0x87, 0xEC, 0xF5, 0xFF, - 0x5F, 0xE3, 0xF7, 0xFF, 0xB4, 0xBB, 0x50, 0xFF, 0xFE, 0x99, 0x0C, 0xFF, 0xF7, 0x9E, 0x1A, 0xFF, - 0xF6, 0x9D, 0x15, 0xFF, 0xF4, 0x9D, 0x15, 0xFF, 0xF2, 0x9C, 0x15, 0xFF, 0xF2, 0x9B, 0x14, 0xFF, - 0xF1, 0x99, 0x12, 0xFF, 0xF1, 0x99, 0x12, 0xFF, 0xF1, 0x99, 0x12, 0xFF, 0xF1, 0x99, 0x12, 0xFF, - 0xFD, 0xD3, 0x66, 0xFF, 0xF9, 0xD6, 0x69, 0xFF, 0xF5, 0xD9, 0x6B, 0xFF, 0xDC, 0xB6, 0x4E, 0xFF, - 0xAE, 0x52, 0x18, 0xFF, 0xC6, 0x66, 0x1C, 0xFF, 0xBD, 0x5A, 0x00, 0xFF, 0xCA, 0x7D, 0x1A, 0xFF, - 0xD4, 0x7B, 0x15, 0xFF, 0xDC, 0x81, 0x04, 0xFF, 0xE7, 0xA0, 0x2A, 0xFF, 0xD3, 0x88, 0x00, 0xFF, - 0xE2, 0xAB, 0x2D, 0xFF, 0xDC, 0xA7, 0x23, 0xFF, 0xE6, 0xB3, 0x29, 0xFF, 0xE0, 0xAD, 0x16, 0xFF, - 0xEB, 0xB7, 0x14, 0xFF, 0xEA, 0xB9, 0x15, 0xFF, 0xE9, 0xBA, 0x16, 0xFF, 0xEC, 0xBE, 0x1F, 0xFF, - 0xEE, 0xC2, 0x28, 0xFF, 0xF6, 0xCD, 0x3B, 0xFF, 0xFE, 0xD8, 0x4E, 0xFF, 0xFB, 0xD5, 0x55, 0xFF, - 0xF7, 0xD1, 0x5D, 0xFF, 0xEF, 0xD6, 0x5D, 0xFF, 0xF3, 0xC4, 0x4E, 0xFF, 0xFA, 0xB9, 0x2E, 0xFF, - 0xF4, 0xB8, 0x35, 0xFF, 0xFF, 0xB1, 0x17, 0xFF, 0xD1, 0xF7, 0xF0, 0xFF, 0xDA, 0xFF, 0xFE, 0xFF, - 0xD2, 0xFC, 0xFC, 0xFF, 0xD1, 0xFD, 0xFD, 0xFF, 0xD0, 0xFE, 0xFD, 0xFF, 0xCF, 0xFD, 0xFC, 0xFF, - 0xCD, 0xFD, 0xFB, 0xFF, 0xC6, 0xFD, 0xFC, 0xFF, 0xBF, 0xFD, 0xFC, 0xFF, 0xB9, 0xFD, 0xFD, 0xFF, - 0xB2, 0xFC, 0xFD, 0xFF, 0xA3, 0xFC, 0xFD, 0xFF, 0x95, 0xFC, 0xFD, 0xFF, 0x87, 0xFC, 0xFC, 0xFF, - 0x78, 0xFB, 0xFC, 0xFF, 0x6C, 0xFA, 0xFD, 0xFF, 0x5F, 0xF8, 0xFD, 0xFF, 0x45, 0xF6, 0xF9, 0xFF, - 0x47, 0xEF, 0xF5, 0xFF, 0x37, 0xE9, 0xF2, 0xFF, 0x28, 0xE4, 0xEE, 0xFF, 0x24, 0xE3, 0xED, 0xFF, - 0x05, 0xDD, 0xFF, 0xFF, 0xFF, 0x99, 0x03, 0xFF, 0xF5, 0xA0, 0x16, 0xFF, 0xF4, 0x9E, 0x16, 0xFF, - 0xF3, 0x9C, 0x16, 0xFF, 0xF2, 0x9C, 0x15, 0xFF, 0xF2, 0x9B, 0x14, 0xFF, 0xF1, 0x9A, 0x12, 0xFF, - 0xEF, 0x99, 0x10, 0xFF, 0xF0, 0x9A, 0x11, 0xFF, 0xF1, 0x9B, 0x12, 0xFF, 0xF1, 0x9B, 0x12, 0xFF, - 0xFB, 0xD5, 0x65, 0xFF, 0xFC, 0xD4, 0x70, 0xFF, 0xFF, 0xE2, 0x77, 0xFF, 0xC7, 0x86, 0x3B, 0xFF, - 0xBA, 0x5F, 0x23, 0xFF, 0xBA, 0x6A, 0x1E, 0xFF, 0xD0, 0x7A, 0x21, 0xFF, 0xD7, 0x87, 0x27, 0xFF, - 0xD6, 0x8C, 0x24, 0xFF, 0xD3, 0x8D, 0x1D, 0xFF, 0xD0, 0x88, 0x21, 0xFF, 0xEA, 0xA0, 0x2B, 0xFF, - 0xD5, 0x95, 0x21, 0xFF, 0xEE, 0xA9, 0x30, 0xFF, 0xDA, 0xA0, 0x20, 0xFF, 0xDD, 0xA1, 0x16, 0xFF, - 0xDF, 0xA1, 0x0D, 0xFF, 0xE2, 0xAB, 0x19, 0xFF, 0xEB, 0xB1, 0x12, 0xFF, 0xED, 0xB8, 0x0F, 0xFF, - 0xEE, 0xBF, 0x0C, 0xFF, 0xEF, 0xC1, 0x1C, 0xFF, 0xF0, 0xC3, 0x2C, 0xFF, 0xF1, 0xC4, 0x36, 0xFF, - 0xF3, 0xC5, 0x40, 0xFF, 0xF1, 0xC9, 0x46, 0xFF, 0xF6, 0xC2, 0x45, 0xFF, 0xF9, 0xBA, 0x31, 0xFF, - 0xF6, 0xB7, 0x30, 0xFF, 0xF4, 0xC1, 0x4B, 0xFF, 0xC0, 0xFA, 0xF5, 0xFF, 0xC6, 0xFF, 0xFD, 0xFF, - 0xC4, 0xFC, 0xFC, 0xFF, 0xC4, 0xFC, 0xFD, 0xFF, 0xC3, 0xFD, 0xFD, 0xFF, 0xC2, 0xFD, 0xFC, 0xFF, - 0xC1, 0xFC, 0xFB, 0xFF, 0xB5, 0xF8, 0xF8, 0xFF, 0xB2, 0xFD, 0xFC, 0xFF, 0xAA, 0xFC, 0xFC, 0xFF, - 0xA3, 0xFC, 0xFC, 0xFF, 0x95, 0xFB, 0xFC, 0xFF, 0x88, 0xFB, 0xFB, 0xFF, 0x7A, 0xFB, 0xFB, 0xFF, - 0x6D, 0xFA, 0xFB, 0xFF, 0x61, 0xF8, 0xFB, 0xFF, 0x56, 0xF6, 0xFC, 0xFF, 0x44, 0xF2, 0xF8, 0xFF, - 0x40, 0xEA, 0xF4, 0xFF, 0x31, 0xE5, 0xEF, 0xFF, 0x23, 0xDF, 0xEA, 0xFF, 0x1C, 0xE0, 0xFA, 0xFF, - 0x44, 0xD1, 0xC5, 0xFF, 0xFE, 0xA1, 0x0A, 0xFF, 0xF9, 0x9F, 0x15, 0xFF, 0xF5, 0x9F, 0x17, 0xFF, - 0xF2, 0x9F, 0x18, 0xFF, 0xF2, 0x9E, 0x16, 0xFF, 0xF2, 0x9D, 0x15, 0xFF, 0xF5, 0x9F, 0x16, 0xFF, - 0xF8, 0xA0, 0x18, 0xFF, 0xF5, 0x9D, 0x15, 0xFF, 0xF2, 0x9A, 0x12, 0xFF, 0xF2, 0x9A, 0x12, 0xFF, - 0xF9, 0xD7, 0x64, 0xFF, 0xF6, 0xD1, 0x64, 0xFF, 0xFF, 0xE6, 0x5D, 0xFF, 0x9A, 0x43, 0x03, 0xFF, - 0xA5, 0x4B, 0x0D, 0xFF, 0xCC, 0x7B, 0x30, 0xFF, 0xC0, 0x54, 0x04, 0xFF, 0xC9, 0x53, 0x00, 0xFF, - 0xC5, 0x67, 0x03, 0xFF, 0xC9, 0x87, 0x25, 0xFF, 0xCA, 0x80, 0x28, 0xFF, 0xD0, 0x88, 0x27, 0xFF, - 0xD7, 0x90, 0x26, 0xFF, 0xC9, 0x74, 0x06, 0xFF, 0xCF, 0x8D, 0x17, 0xFF, 0xE1, 0x9C, 0x1E, 0xFF, - 0xE3, 0x9B, 0x16, 0xFF, 0xDA, 0x9E, 0x1E, 0xFF, 0xDD, 0x97, 0x00, 0xFF, 0xE6, 0xA4, 0x03, 0xFF, - 0xEE, 0xB1, 0x07, 0xFF, 0xE8, 0xB0, 0x08, 0xFF, 0xE2, 0xAE, 0x09, 0xFF, 0xE8, 0xB4, 0x16, 0xFF, - 0xEF, 0xB9, 0x23, 0xFF, 0xF4, 0xBD, 0x30, 0xFF, 0xF9, 0xC1, 0x3C, 0xFF, 0xF9, 0xBB, 0x34, 0xFF, - 0xF9, 0xB6, 0x2C, 0xFF, 0xE8, 0xD2, 0x80, 0xFF, 0xAE, 0xFD, 0xFA, 0xFF, 0xB2, 0xFC, 0xFB, 0xFF, - 0xB6, 0xFB, 0xFC, 0xFF, 0xB6, 0xFC, 0xFC, 0xFF, 0xB6, 0xFC, 0xFD, 0xFF, 0xB5, 0xFC, 0xFC, 0xFF, - 0xB4, 0xFC, 0xFB, 0xFF, 0xA4, 0xF4, 0xF3, 0xFF, 0xA5, 0xFC, 0xFC, 0xFF, 0x9C, 0xFC, 0xFC, 0xFF, - 0x93, 0xFB, 0xFC, 0xFF, 0x87, 0xFB, 0xFB, 0xFF, 0x7A, 0xFA, 0xFA, 0xFF, 0x6D, 0xFA, 0xFA, 0xFF, - 0x61, 0xF9, 0xF9, 0xFF, 0x57, 0xF7, 0xFA, 0xFF, 0x4E, 0xF4, 0xFA, 0xFF, 0x44, 0xED, 0xF6, 0xFF, - 0x3A, 0xE6, 0xF3, 0xFF, 0x2C, 0xE1, 0xED, 0xFF, 0x1E, 0xDB, 0xE7, 0xFF, 0x19, 0xD1, 0xFF, 0xFF, - 0x8F, 0xB0, 0x77, 0xFF, 0xFD, 0xA0, 0x09, 0xFF, 0xFD, 0x9D, 0x14, 0xFF, 0xF7, 0x9F, 0x17, 0xFF, - 0xF2, 0xA2, 0x1A, 0xFF, 0xF2, 0xA0, 0x18, 0xFF, 0xF2, 0x9E, 0x16, 0xFF, 0xF1, 0x9B, 0x13, 0xFF, - 0xF0, 0x98, 0x10, 0xFF, 0xF1, 0x99, 0x11, 0xFF, 0xF2, 0x9A, 0x12, 0xFF, 0xF2, 0x9A, 0x12, 0xFF, - 0xF7, 0xD4, 0x5F, 0xFF, 0xFC, 0xDC, 0x67, 0xFF, 0xF0, 0xC1, 0x4F, 0xFF, 0x8A, 0x2B, 0x00, 0xFF, - 0xBF, 0x6A, 0x2D, 0xFF, 0xAC, 0x47, 0x05, 0xFF, 0xB9, 0x43, 0x00, 0xFF, 0xC4, 0x85, 0x35, 0xFF, - 0xBB, 0x4D, 0x06, 0xFF, 0xC3, 0x61, 0x13, 0xFF, 0xCA, 0x70, 0x2C, 0xFF, 0xB3, 0x5A, 0x0F, 0xFF, - 0xCC, 0x74, 0x21, 0xFF, 0xC2, 0x69, 0x11, 0xFF, 0xC2, 0x78, 0x18, 0xFF, 0xD0, 0x80, 0x1C, 0xFF, - 0xD6, 0x7F, 0x18, 0xFF, 0xD3, 0x86, 0x1A, 0xFF, 0xDD, 0x8F, 0x10, 0xFF, 0xDA, 0x8C, 0x02, 0xFF, - 0xE6, 0x99, 0x04, 0xFF, 0xE1, 0x9B, 0x04, 0xFF, 0xDC, 0x9D, 0x04, 0xFF, 0xE1, 0xA6, 0x05, 0xFF, - 0xDD, 0xA6, 0x00, 0xFF, 0xEE, 0xB6, 0x1F, 0xFF, 0xF6, 0xBD, 0x39, 0xFF, 0xF6, 0xBB, 0x38, 0xFF, - 0xFC, 0xB5, 0x24, 0xFF, 0xB8, 0xE8, 0xBF, 0xFF, 0xA2, 0xFE, 0xFA, 0xFF, 0xA5, 0xFC, 0xFB, 0xFF, - 0xA8, 0xFA, 0xFB, 0xFF, 0xA7, 0xFB, 0xFC, 0xFF, 0xA6, 0xFC, 0xFC, 0xFF, 0xA2, 0xFB, 0xFA, 0xFF, - 0x9F, 0xFA, 0xF8, 0xFF, 0x94, 0xF7, 0xF5, 0xFF, 0x92, 0xFB, 0xFA, 0xFF, 0x8B, 0xFB, 0xFA, 0xFF, - 0x84, 0xFB, 0xFB, 0xFF, 0x78, 0xFA, 0xFA, 0xFF, 0x6D, 0xF9, 0xF9, 0xFF, 0x61, 0xF9, 0xF9, 0xFF, - 0x55, 0xF8, 0xF8, 0xFF, 0x4B, 0xF6, 0xF8, 0xFF, 0x41, 0xF3, 0xF9, 0xFF, 0x39, 0xEC, 0xF5, 0xFF, - 0x30, 0xE4, 0xF1, 0xFF, 0x28, 0xDD, 0xEE, 0xFF, 0x1F, 0xD6, 0xEB, 0xFF, 0x00, 0xD9, 0xEE, 0xFF, - 0xE4, 0xA6, 0x32, 0xFF, 0xFF, 0xA4, 0x18, 0xFF, 0xF3, 0xA4, 0x28, 0xFF, 0xF4, 0xA2, 0x20, 0xFF, - 0xF4, 0xA0, 0x18, 0xFF, 0xF4, 0x9E, 0x16, 0xFF, 0xF3, 0x9D, 0x15, 0xFF, 0xF2, 0x9B, 0x13, 0xFF, - 0xF2, 0x99, 0x11, 0xFF, 0xF2, 0x99, 0x11, 0xFF, 0xF3, 0x9A, 0x12, 0xFF, 0xF3, 0x9A, 0x12, 0xFF, - 0xF5, 0xD1, 0x5B, 0xFF, 0xFA, 0xDF, 0x62, 0xFF, 0xCC, 0x8C, 0x30, 0xFF, 0x91, 0x2C, 0x05, 0xFF, - 0x9A, 0x49, 0x0E, 0xFF, 0x9E, 0x36, 0x00, 0xFF, 0x96, 0x38, 0x00, 0xFF, 0xB6, 0x5E, 0x14, 0xFF, - 0xD9, 0xAA, 0x53, 0xFF, 0xE2, 0xA6, 0x30, 0xFF, 0xEE, 0xBB, 0x44, 0xFF, 0xFF, 0xDD, 0x6D, 0xFF, - 0xF9, 0xDE, 0x76, 0xFF, 0xF9, 0xD9, 0x6C, 0xFF, 0xF8, 0xD4, 0x63, 0xFF, 0xF3, 0xC4, 0x54, 0xFF, - 0xED, 0xB4, 0x44, 0xFF, 0xD5, 0x8E, 0x23, 0xFF, 0xCE, 0x77, 0x11, 0xFF, 0xC6, 0x6C, 0x00, 0xFF, - 0xDE, 0x81, 0x02, 0xFF, 0xDA, 0x87, 0x00, 0xFF, 0xD6, 0x8D, 0x00, 0xFF, 0xE1, 0x9B, 0x06, 0xFF, - 0xDC, 0x98, 0x00, 0xFF, 0xF0, 0xB1, 0x22, 0xFF, 0xF4, 0xB9, 0x35, 0xFF, 0xF3, 0xBC, 0x3C, 0xFF, - 0xFF, 0xB4, 0x1B, 0xFF, 0x89, 0xFD, 0xFE, 0xFF, 0x95, 0xFF, 0xFA, 0xFF, 0x97, 0xFC, 0xFA, 0xFF, - 0x99, 0xF8, 0xFB, 0xFF, 0x97, 0xFB, 0xFB, 0xFF, 0x95, 0xFD, 0xFC, 0xFF, 0x8F, 0xFB, 0xF9, 0xFF, - 0x89, 0xF9, 0xF6, 0xFF, 0x84, 0xF9, 0xF7, 0xFF, 0x7F, 0xF9, 0xF8, 0xFF, 0x7A, 0xFA, 0xF9, 0xFF, - 0x75, 0xFA, 0xFA, 0xFF, 0x6A, 0xF9, 0xF9, 0xFF, 0x5F, 0xF9, 0xF8, 0xFF, 0x54, 0xF8, 0xF7, 0xFF, - 0x49, 0xF7, 0xF6, 0xFF, 0x3F, 0xF5, 0xF7, 0xFF, 0x35, 0xF2, 0xF7, 0xFF, 0x2E, 0xEB, 0xF3, 0xFF, - 0x27, 0xE3, 0xF0, 0xFF, 0x24, 0xDA, 0xF0, 0xFF, 0x21, 0xD1, 0xF0, 0xFF, 0x23, 0xC9, 0xE8, 0xFF, - 0xFF, 0x9B, 0x03, 0xFF, 0xF6, 0xA3, 0x20, 0xFF, 0xF6, 0xA1, 0x16, 0xFF, 0xF7, 0x9F, 0x16, 0xFF, - 0xF7, 0x9D, 0x16, 0xFF, 0xF6, 0x9C, 0x15, 0xFF, 0xF5, 0x9B, 0x14, 0xFF, 0xF4, 0x9A, 0x13, 0xFF, - 0xF3, 0x99, 0x12, 0xFF, 0xF3, 0x99, 0x12, 0xFF, 0xF3, 0x99, 0x12, 0xFF, 0xF3, 0x99, 0x12, 0xFF, - 0xFE, 0xE2, 0x5A, 0xFF, 0xFF, 0xD7, 0x64, 0xFF, 0x97, 0x46, 0x0C, 0xFF, 0x82, 0x25, 0x00, 0xFF, - 0xB7, 0x6A, 0x1D, 0xFF, 0xDE, 0xA2, 0x39, 0xFF, 0xFF, 0xE5, 0x5E, 0xFF, 0xFD, 0xD8, 0x51, 0xFF, - 0xF5, 0xD6, 0x4C, 0xFF, 0xF4, 0xCC, 0x48, 0xFF, 0xF6, 0xCF, 0x5E, 0xFF, 0xFE, 0xD9, 0x67, 0xFF, - 0xF7, 0xD3, 0x61, 0xFF, 0xF8, 0xD1, 0x5A, 0xFF, 0xFE, 0xCB, 0x41, 0xFF, 0xFE, 0xCE, 0x53, 0xFF, - 0xF5, 0xCF, 0x51, 0xFF, 0xF6, 0xCA, 0x49, 0xFF, 0xFF, 0xCD, 0x49, 0xFF, 0xFF, 0xB9, 0x3F, 0xFF, - 0xDA, 0x7E, 0x0E, 0xFF, 0xC2, 0x69, 0x00, 0xFF, 0xDA, 0x84, 0x05, 0xFF, 0xD5, 0x84, 0x01, 0xFF, - 0xD8, 0x8C, 0x05, 0xFF, 0xF8, 0xBE, 0x37, 0xFF, 0xF6, 0xBE, 0x3A, 0xFF, 0xFF, 0xBD, 0x34, 0xFF, - 0xE1, 0xC6, 0x61, 0xFF, 0x79, 0xF3, 0xFB, 0xFF, 0x82, 0xFA, 0xF7, 0xFF, 0x83, 0xF9, 0xF9, 0xFF, - 0x83, 0xF7, 0xFA, 0xFF, 0x7F, 0xF7, 0xF8, 0xFF, 0x7B, 0xF6, 0xF6, 0xFF, 0x79, 0xF8, 0xF7, 0xFF, - 0x77, 0xFA, 0xF8, 0xFF, 0x71, 0xF9, 0xF7, 0xFF, 0x6C, 0xF8, 0xF7, 0xFF, 0x6B, 0xFC, 0xFB, 0xFF, - 0x63, 0xF8, 0xF8, 0xFF, 0x5A, 0xF7, 0xF8, 0xFF, 0x52, 0xF7, 0xF7, 0xFF, 0x48, 0xF5, 0xF7, 0xFF, - 0x3F, 0xF4, 0xF6, 0xFF, 0x37, 0xF2, 0xF5, 0xFF, 0x2F, 0xEF, 0xF4, 0xFF, 0x27, 0xE6, 0xF1, 0xFF, - 0x20, 0xDD, 0xEE, 0xFF, 0x1F, 0xD6, 0xEA, 0xFF, 0x10, 0xCC, 0xF1, 0xFF, 0x6C, 0xB9, 0x9D, 0xFF, - 0xFE, 0x9F, 0x0B, 0xFF, 0xF8, 0xA3, 0x1A, 0xFF, 0xF9, 0xA2, 0x16, 0xFF, 0xF8, 0xA0, 0x16, 0xFF, - 0xF7, 0x9E, 0x16, 0xFF, 0xF7, 0x9D, 0x15, 0xFF, 0xF6, 0x9B, 0x14, 0xFF, 0xF5, 0x9A, 0x14, 0xFF, - 0xF4, 0x99, 0x13, 0xFF, 0xF4, 0x99, 0x13, 0xFF, 0xF4, 0x99, 0x13, 0xFF, 0xF4, 0x99, 0x13, 0xFF, - 0xF8, 0xD8, 0x60, 0xFF, 0xF7, 0xD8, 0x5A, 0xFF, 0xD7, 0xAD, 0x4B, 0xFF, 0xFF, 0xDD, 0x68, 0xFF, - 0xF7, 0xDC, 0x55, 0xFF, 0xFC, 0xD6, 0x55, 0xFF, 0xFF, 0xCF, 0x54, 0xFF, 0xFF, 0xD5, 0x5C, 0xFF, - 0xF1, 0xCA, 0x53, 0xFF, 0xF5, 0xCA, 0x4A, 0xFF, 0xF9, 0xC9, 0x42, 0xFF, 0xF7, 0xC9, 0x47, 0xFF, - 0xF5, 0xC8, 0x4B, 0xFF, 0xF0, 0xCF, 0x5C, 0xFF, 0xF8, 0xCC, 0x46, 0xFF, 0xFF, 0xCA, 0x55, 0xFF, - 0xF9, 0xC3, 0x3E, 0xFF, 0xFB, 0xC2, 0x43, 0xFF, 0xFC, 0xC1, 0x48, 0xFF, 0xF3, 0xBE, 0x3E, 0xFF, - 0xFA, 0xCB, 0x43, 0xFF, 0xFC, 0xB3, 0x37, 0xFF, 0xDD, 0x7B, 0x0B, 0xFF, 0xC8, 0x6D, 0x00, 0xFF, - 0xD4, 0x7F, 0x0D, 0xFF, 0xFF, 0xCC, 0x4D, 0xFF, 0xF9, 0xC2, 0x3E, 0xFF, 0xFF, 0xC1, 0x2D, 0xFF, - 0xA7, 0xDE, 0xA7, 0xFF, 0x5B, 0xEB, 0xF7, 0xFF, 0x6F, 0xF5, 0xF4, 0xFF, 0x6E, 0xF5, 0xF7, 0xFF, - 0x6D, 0xF6, 0xF9, 0xFF, 0x67, 0xF3, 0xF5, 0xFF, 0x60, 0xF0, 0xF1, 0xFF, 0x62, 0xF6, 0xF5, 0xFF, - 0x65, 0xFC, 0xFA, 0xFF, 0x5E, 0xF9, 0xF8, 0xFF, 0x58, 0xF6, 0xF5, 0xFF, 0x5D, 0xFE, 0xFE, 0xFF, - 0x52, 0xF6, 0xF6, 0xFF, 0x4B, 0xF5, 0xF6, 0xFF, 0x44, 0xF5, 0xF7, 0xFF, 0x3D, 0xF3, 0xF6, 0xFF, - 0x35, 0xF1, 0xF5, 0xFF, 0x2F, 0xEE, 0xF3, 0xFF, 0x28, 0xEB, 0xF0, 0xFF, 0x20, 0xE1, 0xEE, 0xFF, - 0x18, 0xD8, 0xEC, 0xFF, 0x1A, 0xD2, 0xE4, 0xFF, 0x00, 0xC6, 0xF3, 0xFF, 0xB4, 0xA8, 0x51, 0xFF, - 0xFA, 0xA3, 0x13, 0xFF, 0xFB, 0xA3, 0x15, 0xFF, 0xFB, 0xA3, 0x17, 0xFF, 0xFA, 0xA0, 0x16, 0xFF, - 0xF8, 0x9E, 0x16, 0xFF, 0xF7, 0x9D, 0x15, 0xFF, 0xF7, 0x9C, 0x15, 0xFF, 0xF6, 0x9A, 0x14, 0xFF, - 0xF6, 0x99, 0x14, 0xFF, 0xF6, 0x99, 0x14, 0xFF, 0xF6, 0x99, 0x14, 0xFF, 0xF6, 0x99, 0x14, 0xFF, - 0xF1, 0xCE, 0x58, 0xFF, 0xFD, 0xDC, 0x59, 0xFF, 0xF8, 0xD5, 0x55, 0xFF, 0xFF, 0xDD, 0x5D, 0xFF, - 0xF3, 0xCE, 0x4D, 0xFF, 0xF3, 0xCB, 0x4C, 0xFF, 0xF3, 0xC8, 0x4C, 0xFF, 0xFB, 0xD1, 0x56, 0xFF, - 0xFC, 0xD3, 0x58, 0xFF, 0xFB, 0xCE, 0x4F, 0xFF, 0xFA, 0xC9, 0x47, 0xFF, 0xF9, 0xC8, 0x48, 0xFF, - 0xF8, 0xC7, 0x49, 0xFF, 0xF5, 0xCA, 0x50, 0xFF, 0xF9, 0xC9, 0x44, 0xFF, 0xFD, 0xC8, 0x4B, 0xFF, - 0xF9, 0xC5, 0x3E, 0xFF, 0xFA, 0xC3, 0x40, 0xFF, 0xFA, 0xC2, 0x43, 0xFF, 0xF3, 0xBD, 0x3A, 0xFF, - 0xF3, 0xBF, 0x3A, 0xFF, 0xFC, 0xC7, 0x3E, 0xFF, 0xFC, 0xC6, 0x3A, 0xFF, 0xE2, 0xA1, 0x24, 0xFF, - 0xD9, 0x8C, 0x1F, 0xFF, 0xF6, 0xB9, 0x36, 0xFF, 0xFA, 0xBB, 0x26, 0xFF, 0xF3, 0xBA, 0x29, 0xFF, - 0x56, 0xD7, 0xCD, 0xFF, 0x5A, 0xFA, 0xF9, 0xFF, 0x48, 0xDA, 0xD9, 0xFF, 0x58, 0xEC, 0xED, 0xFF, - 0x5F, 0xF5, 0xF9, 0xFF, 0x4D, 0xEF, 0xF1, 0xFF, 0x3A, 0xE9, 0xE9, 0xFF, 0x45, 0xEE, 0xED, 0xFF, - 0x50, 0xF4, 0xF2, 0xFF, 0x4E, 0xF3, 0xF9, 0xFF, 0x44, 0xF0, 0xED, 0xFF, 0x4B, 0xF8, 0xFE, 0xFF, - 0x41, 0xF5, 0xF4, 0xFF, 0x3C, 0xF4, 0xF5, 0xFF, 0x37, 0xF2, 0xF6, 0xFF, 0x31, 0xF0, 0xF5, 0xFF, - 0x2A, 0xEF, 0xF4, 0xFF, 0x26, 0xEA, 0xF2, 0xFF, 0x22, 0xE6, 0xF0, 0xFF, 0x1C, 0xDB, 0xEE, 0xFF, - 0x17, 0xD0, 0xEC, 0xFF, 0x08, 0xCC, 0xF0, 0xFF, 0x08, 0xC4, 0xF5, 0xFF, 0xFF, 0xAD, 0x0E, 0xFF, - 0xF9, 0xA1, 0x16, 0xFF, 0xF8, 0xA1, 0x17, 0xFF, 0xF8, 0xA1, 0x18, 0xFF, 0xF8, 0xA0, 0x17, 0xFF, - 0xF8, 0x9E, 0x16, 0xFF, 0xF8, 0x9D, 0x16, 0xFF, 0xF8, 0x9C, 0x15, 0xFF, 0xF7, 0x9A, 0x15, 0xFF, - 0xF7, 0x99, 0x14, 0xFF, 0xF7, 0x99, 0x14, 0xFF, 0xF7, 0x99, 0x14, 0xFF, 0xF7, 0x99, 0x14, 0xFF, - 0xFB, 0xD5, 0x60, 0xFF, 0xFA, 0xD3, 0x5A, 0xFF, 0xFA, 0xD1, 0x55, 0xFF, 0xFC, 0xD0, 0x55, 0xFF, - 0xFE, 0xCF, 0x54, 0xFF, 0xFA, 0xD0, 0x54, 0xFF, 0xF6, 0xD1, 0x53, 0xFF, 0xF6, 0xCE, 0x50, 0xFF, - 0xF7, 0xCB, 0x4E, 0xFF, 0xF9, 0xCA, 0x4C, 0xFF, 0xFA, 0xCA, 0x4B, 0xFF, 0xFB, 0xC8, 0x49, 0xFF, - 0xFB, 0xC6, 0x47, 0xFF, 0xFB, 0xC6, 0x45, 0xFF, 0xFA, 0xC6, 0x43, 0xFF, 0xF9, 0xC6, 0x41, 0xFF, - 0xF8, 0xC6, 0x3F, 0xFF, 0xF8, 0xC4, 0x3E, 0xFF, 0xF9, 0xC3, 0x3E, 0xFF, 0xFB, 0xC3, 0x3F, 0xFF, - 0xFD, 0xC3, 0x40, 0xFF, 0xF2, 0xBA, 0x38, 0xFF, 0xF7, 0xC0, 0x3F, 0xFF, 0xFA, 0xC2, 0x3D, 0xFF, - 0xFD, 0xC5, 0x3A, 0xFF, 0xF6, 0xC1, 0x37, 0xFF, 0xEF, 0xBD, 0x34, 0xFF, 0xEF, 0xBB, 0x2D, 0xFF, - 0x21, 0xD6, 0xDD, 0xFF, 0x37, 0xDC, 0xBF, 0xFF, 0x41, 0xE0, 0xDD, 0xFF, 0x49, 0xEA, 0xEB, 0xFF, - 0x41, 0xE3, 0xEA, 0xFF, 0x41, 0xE8, 0xED, 0xFF, 0x41, 0xED, 0xF1, 0xFF, 0x3F, 0xEC, 0xED, 0xFF, - 0x3C, 0xEB, 0xEA, 0xFF, 0x3E, 0xEE, 0xFA, 0xFF, 0x31, 0xEB, 0xE5, 0xFF, 0x39, 0xF2, 0xFE, 0xFF, - 0x31, 0xF4, 0xF1, 0xFF, 0x2D, 0xF2, 0xF3, 0xFF, 0x29, 0xF0, 0xF5, 0xFF, 0x25, 0xEE, 0xF4, 0xFF, - 0x20, 0xEC, 0xF4, 0xFF, 0x1E, 0xE6, 0xF1, 0xFF, 0x1C, 0xE1, 0xEF, 0xFF, 0x19, 0xD5, 0xED, 0xFF, - 0x16, 0xC9, 0xEB, 0xFF, 0x0B, 0xC3, 0xDE, 0xFF, 0x39, 0xBE, 0xBA, 0xFF, 0xF8, 0x98, 0x07, 0xFF, - 0xF8, 0x9F, 0x19, 0xFF, 0xF6, 0x9F, 0x19, 0xFF, 0xF5, 0x9F, 0x19, 0xFF, 0xF7, 0x9F, 0x18, 0xFF, - 0xF9, 0x9F, 0x16, 0xFF, 0xF9, 0x9D, 0x16, 0xFF, 0xF9, 0x9C, 0x16, 0xFF, 0xF9, 0x9A, 0x16, 0xFF, - 0xF8, 0x99, 0x15, 0xFF, 0xF8, 0x99, 0x15, 0xFF, 0xF8, 0x99, 0x15, 0xFF, 0xF8, 0x99, 0x15, 0xFF, - 0xF8, 0xD4, 0x5C, 0xFF, 0xF8, 0xD4, 0x58, 0xFF, 0xF8, 0xD3, 0x54, 0xFF, 0xF9, 0xD1, 0x56, 0xFF, - 0xFA, 0xD0, 0x57, 0xFF, 0xF8, 0xD0, 0x55, 0xFF, 0xF5, 0xD0, 0x53, 0xFF, 0xF7, 0xCE, 0x50, 0xFF, - 0xF9, 0xCC, 0x4D, 0xFF, 0xF9, 0xCB, 0x4C, 0xFF, 0xFA, 0xCA, 0x4A, 0xFF, 0xFB, 0xC8, 0x48, 0xFF, - 0xFB, 0xC7, 0x46, 0xFF, 0xFA, 0xC6, 0x44, 0xFF, 0xFA, 0xC6, 0x43, 0xFF, 0xF9, 0xC6, 0x41, 0xFF, - 0xF9, 0xC6, 0x3F, 0xFF, 0xF9, 0xC4, 0x3E, 0xFF, 0xF9, 0xC3, 0x3D, 0xFF, 0xFA, 0xC2, 0x3E, 0xFF, - 0xFB, 0xC1, 0x3E, 0xFF, 0xF5, 0xBD, 0x3A, 0xFF, 0xF7, 0xC1, 0x3D, 0xFF, 0xF8, 0xC0, 0x3A, 0xFF, - 0xF9, 0xC0, 0x37, 0xFF, 0xFF, 0xBD, 0x36, 0xFF, 0xFF, 0xBB, 0x35, 0xFF, 0x84, 0xBA, 0x66, 0xFF, - 0x18, 0xD2, 0xAF, 0xFF, 0x19, 0xD2, 0xB3, 0xFF, 0x39, 0xDA, 0xD2, 0xFF, 0x3D, 0xDC, 0xE1, 0xFF, - 0x31, 0xD4, 0xD5, 0xFF, 0x37, 0xDF, 0xE1, 0xFF, 0x3E, 0xE9, 0xEC, 0xFF, 0x35, 0xE6, 0xE1, 0xFF, - 0x35, 0xE5, 0xE9, 0xFF, 0x34, 0xE5, 0xF0, 0xFF, 0x2A, 0xE3, 0xE4, 0xFF, 0x2D, 0xE5, 0xF5, 0xFF, - 0x28, 0xEB, 0xE8, 0xFF, 0x2A, 0xEE, 0xF0, 0xFF, 0x24, 0xE8, 0xEF, 0xFF, 0x20, 0xE4, 0xEC, 0xFF, - 0x1C, 0xDF, 0xE9, 0xFF, 0x1C, 0xDB, 0xEB, 0xFF, 0x1B, 0xD7, 0xED, 0xFF, 0x18, 0xCE, 0xE9, 0xFF, - 0x15, 0xC5, 0xE5, 0xFF, 0x03, 0xBF, 0xE7, 0xFF, 0x92, 0xB1, 0x6C, 0xFF, 0xFB, 0x9C, 0x10, 0xFF, - 0xF7, 0xA0, 0x17, 0xFF, 0xF5, 0xA0, 0x19, 0xFF, 0xF3, 0xA0, 0x1B, 0xFF, 0xF6, 0x9F, 0x19, 0xFF, - 0xF9, 0x9F, 0x16, 0xFF, 0xF8, 0x9E, 0x16, 0xFF, 0xF8, 0x9C, 0x15, 0xFF, 0xF8, 0x9B, 0x15, 0xFF, - 0xF8, 0x99, 0x15, 0xFF, 0xF7, 0x99, 0x14, 0xFF, 0xF7, 0x98, 0x14, 0xFF, 0xF7, 0x98, 0x14, 0xFF, - 0xF6, 0xD3, 0x57, 0xFF, 0xF6, 0xD4, 0x55, 0xFF, 0xF6, 0xD5, 0x53, 0xFF, 0xF7, 0xD2, 0x57, 0xFF, - 0xF7, 0xD0, 0x5B, 0xFF, 0xF6, 0xD0, 0x57, 0xFF, 0xF5, 0xCF, 0x54, 0xFF, 0xF7, 0xCE, 0x50, 0xFF, - 0xFA, 0xCC, 0x4C, 0xFF, 0xFA, 0xCB, 0x4B, 0xFF, 0xFA, 0xCA, 0x49, 0xFF, 0xFA, 0xC8, 0x47, 0xFF, - 0xFB, 0xC7, 0x46, 0xFF, 0xFA, 0xC7, 0x44, 0xFF, 0xFA, 0xC6, 0x43, 0xFF, 0xF9, 0xC6, 0x41, 0xFF, - 0xF9, 0xC5, 0x3F, 0xFF, 0xF9, 0xC4, 0x3E, 0xFF, 0xF9, 0xC2, 0x3D, 0xFF, 0xF9, 0xC1, 0x3C, 0xFF, - 0xF9, 0xC0, 0x3B, 0xFF, 0xF8, 0xC1, 0x3C, 0xFF, 0xF7, 0xC2, 0x3C, 0xFF, 0xF6, 0xBE, 0x38, 0xFF, - 0xF5, 0xBB, 0x34, 0xFF, 0xFD, 0xBC, 0x35, 0xFF, 0xFF, 0xBE, 0x36, 0xFF, 0xFB, 0xBB, 0x45, 0xFF, - 0x2B, 0xC9, 0x82, 0xFF, 0x01, 0xBE, 0xA0, 0xFF, 0x20, 0xC4, 0xB8, 0xFF, 0x31, 0xCF, 0xD8, 0xFF, - 0x31, 0xD5, 0xD1, 0xFF, 0x2E, 0xD5, 0xD4, 0xFF, 0x2A, 0xD4, 0xD7, 0xFF, 0x24, 0xD7, 0xCC, 0xFF, - 0x2E, 0xDE, 0xE8, 0xFF, 0x29, 0xDD, 0xE6, 0xFF, 0x24, 0xDC, 0xE4, 0xFF, 0x22, 0xD9, 0xED, 0xFF, - 0x20, 0xE1, 0xDF, 0xFF, 0x27, 0xE9, 0xEC, 0xFF, 0x1E, 0xE0, 0xEA, 0xFF, 0x1B, 0xD9, 0xE3, 0xFF, - 0x19, 0xD3, 0xDD, 0xFF, 0x1A, 0xD0, 0xE4, 0xFF, 0x1B, 0xCD, 0xEB, 0xFF, 0x17, 0xC7, 0xE4, 0xFF, - 0x14, 0xC2, 0xDE, 0xFF, 0x00, 0xBC, 0xEF, 0xFF, 0xEB, 0xA4, 0x1D, 0xFF, 0xFF, 0xA0, 0x19, 0xFF, - 0xF6, 0xA2, 0x15, 0xFF, 0xF3, 0xA2, 0x19, 0xFF, 0xF0, 0xA1, 0x1D, 0xFF, 0xF4, 0xA0, 0x19, 0xFF, - 0xF8, 0x9F, 0x16, 0xFF, 0xF8, 0x9E, 0x15, 0xFF, 0xF8, 0x9D, 0x15, 0xFF, 0xF7, 0x9B, 0x14, 0xFF, - 0xF7, 0x9A, 0x14, 0xFF, 0xF6, 0x99, 0x13, 0xFF, 0xF5, 0x98, 0x12, 0xFF, 0xF5, 0x98, 0x12, 0xFF, - 0xF8, 0xD5, 0x5E, 0xFF, 0xFC, 0xD5, 0x63, 0xFF, 0xFF, 0xD6, 0x68, 0xFF, 0xFB, 0xD2, 0x5E, 0xFF, - 0xF8, 0xCF, 0x55, 0xFF, 0xF7, 0xCF, 0x53, 0xFF, 0xF7, 0xCE, 0x50, 0xFF, 0xF9, 0xCD, 0x4D, 0xFF, - 0xFA, 0xCC, 0x4B, 0xFF, 0xFA, 0xCB, 0x49, 0xFF, 0xFA, 0xCA, 0x48, 0xFF, 0xFA, 0xC9, 0x47, 0xFF, - 0xFA, 0xC8, 0x45, 0xFF, 0xFA, 0xC7, 0x44, 0xFF, 0xF9, 0xC6, 0x42, 0xFF, 0xF9, 0xC5, 0x41, 0xFF, - 0xF9, 0xC5, 0x40, 0xFF, 0xF9, 0xC4, 0x3F, 0xFF, 0xF9, 0xC2, 0x3D, 0xFF, 0xF9, 0xC1, 0x3C, 0xFF, - 0xF8, 0xC0, 0x3B, 0xFF, 0xF8, 0xC0, 0x3B, 0xFF, 0xF8, 0xC1, 0x3A, 0xFF, 0xF7, 0xBF, 0x38, 0xFF, - 0xF6, 0xBD, 0x35, 0xFF, 0xFA, 0xBD, 0x34, 0xFF, 0xFE, 0xBD, 0x33, 0xFF, 0xF5, 0xC3, 0x22, 0xFF, - 0xFB, 0xBA, 0x26, 0xFF, 0xB1, 0xB0, 0x53, 0xFF, 0x06, 0xC5, 0x9A, 0xFF, 0x22, 0xD2, 0xC0, 0xFF, - 0x36, 0xDD, 0xD3, 0xFF, 0x12, 0xBA, 0xB3, 0xFF, 0x1E, 0xC7, 0xC3, 0xFF, 0x21, 0xCE, 0xC4, 0xFF, - 0x2C, 0xD8, 0xD8, 0xFF, 0x2F, 0xDA, 0xDE, 0xFF, 0x2A, 0xD5, 0xDC, 0xFF, 0x20, 0xD4, 0xE7, 0xFF, - 0x1C, 0xD5, 0xD4, 0xFF, 0x28, 0xE4, 0xE8, 0xFF, 0x24, 0xE3, 0xEB, 0xFF, 0x1F, 0xCD, 0xD1, 0xFF, - 0x1C, 0xC5, 0xD2, 0xFF, 0x01, 0xC2, 0xDC, 0xFF, 0x11, 0xC3, 0xCF, 0xFF, 0x09, 0xC1, 0xE2, 0xFF, - 0x00, 0xBE, 0xE3, 0xFF, 0x6E, 0xBE, 0x83, 0xFF, 0xF6, 0x9F, 0x0C, 0xFF, 0xFD, 0x9F, 0x11, 0xFF, - 0xF6, 0xA1, 0x17, 0xFF, 0xF4, 0xA1, 0x19, 0xFF, 0xF3, 0xA1, 0x1A, 0xFF, 0xF5, 0xA0, 0x18, 0xFF, - 0xF8, 0x9F, 0x15, 0xFF, 0xF7, 0x9E, 0x15, 0xFF, 0xF7, 0x9D, 0x14, 0xFF, 0xF7, 0x9C, 0x14, 0xFF, - 0xF7, 0x9B, 0x13, 0xFF, 0xF5, 0x99, 0x11, 0xFF, 0xF4, 0x98, 0x10, 0xFF, 0xF4, 0x98, 0x10, 0xFF, - 0xFB, 0xD6, 0x64, 0xFF, 0xF9, 0xD4, 0x5D, 0xFF, 0xF8, 0xD2, 0x55, 0xFF, 0xF8, 0xD0, 0x53, 0xFF, - 0xF8, 0xCE, 0x50, 0xFF, 0xF9, 0xCE, 0x4E, 0xFF, 0xFA, 0xCD, 0x4D, 0xFF, 0xFA, 0xCC, 0x4B, 0xFF, - 0xFB, 0xCC, 0x49, 0xFF, 0xFA, 0xCB, 0x48, 0xFF, 0xFA, 0xCA, 0x47, 0xFF, 0xFA, 0xC9, 0x46, 0xFF, - 0xFA, 0xC8, 0x45, 0xFF, 0xFA, 0xC7, 0x43, 0xFF, 0xF9, 0xC6, 0x42, 0xFF, 0xF9, 0xC5, 0x41, 0xFF, - 0xF9, 0xC4, 0x40, 0xFF, 0xF9, 0xC3, 0x3F, 0xFF, 0xF9, 0xC2, 0x3D, 0xFF, 0xF9, 0xC1, 0x3C, 0xFF, - 0xF8, 0xC0, 0x3B, 0xFF, 0xF8, 0xC0, 0x3A, 0xFF, 0xF8, 0xBF, 0x39, 0xFF, 0xF8, 0xBF, 0x38, 0xFF, - 0xF8, 0xBF, 0x36, 0xFF, 0xF7, 0xBD, 0x34, 0xFF, 0xF7, 0xBC, 0x31, 0xFF, 0xF8, 0xBB, 0x33, 0xFF, - 0xF9, 0xBA, 0x35, 0xFF, 0xFF, 0xBC, 0x2C, 0xFF, 0xDE, 0xC2, 0x60, 0xFF, 0x84, 0xCB, 0x93, 0xFF, - 0x2A, 0xD4, 0xC5, 0xFF, 0x2E, 0xD7, 0xCA, 0xFF, 0x12, 0xBA, 0xB0, 0xFF, 0x16, 0xBE, 0xB4, 0xFF, - 0x1A, 0xC2, 0xB8, 0xFF, 0x25, 0xC8, 0xC6, 0xFF, 0x20, 0xBE, 0xC4, 0xFF, 0x16, 0xC8, 0xDA, 0xFF, - 0x18, 0xC8, 0xC9, 0xFF, 0x21, 0xD7, 0xDB, 0xFF, 0x1A, 0xD6, 0xDD, 0xFF, 0x0D, 0xBC, 0xB7, 0xFF, - 0x03, 0xBD, 0xC7, 0xFF, 0x00, 0xBF, 0xD0, 0xFF, 0x50, 0xC9, 0xAC, 0xFF, 0xB0, 0xB8, 0x6B, 0xFF, - 0xFF, 0xA3, 0x04, 0xFF, 0xFA, 0xA3, 0x12, 0xFF, 0xF4, 0xA4, 0x21, 0xFF, 0xF5, 0xA2, 0x1D, 0xFF, - 0xF5, 0xA1, 0x19, 0xFF, 0xF6, 0xA0, 0x18, 0xFF, 0xF6, 0xA0, 0x17, 0xFF, 0xF7, 0x9F, 0x16, 0xFF, - 0xF7, 0x9F, 0x15, 0xFF, 0xF7, 0x9E, 0x14, 0xFF, 0xF7, 0x9D, 0x14, 0xFF, 0xF6, 0x9C, 0x13, 0xFF, - 0xF6, 0x9B, 0x12, 0xFF, 0xF4, 0x99, 0x10, 0xFF, 0xF2, 0x97, 0x0E, 0xFF, 0xF2, 0x97, 0x0E, 0xFF, - 0xF8, 0xD4, 0x5C, 0xFF, 0xF8, 0xD3, 0x57, 0xFF, 0xF8, 0xD1, 0x53, 0xFF, 0xF8, 0xD0, 0x51, 0xFF, - 0xF9, 0xCE, 0x4F, 0xFF, 0xF9, 0xCE, 0x4D, 0xFF, 0xF9, 0xCD, 0x4B, 0xFF, 0xFA, 0xCC, 0x4A, 0xFF, - 0xFA, 0xCB, 0x48, 0xFF, 0xFA, 0xCA, 0x47, 0xFF, 0xFA, 0xCA, 0x46, 0xFF, 0xF9, 0xC9, 0x45, 0xFF, - 0xF9, 0xC8, 0x44, 0xFF, 0xF9, 0xC7, 0x43, 0xFF, 0xF9, 0xC6, 0x42, 0xFF, 0xF9, 0xC5, 0x41, 0xFF, - 0xF9, 0xC4, 0x40, 0xFF, 0xF9, 0xC3, 0x3E, 0xFF, 0xF9, 0xC2, 0x3D, 0xFF, 0xF9, 0xC1, 0x3C, 0xFF, - 0xF9, 0xC0, 0x3A, 0xFF, 0xF8, 0xBF, 0x39, 0xFF, 0xF8, 0xBF, 0x38, 0xFF, 0xF8, 0xBF, 0x37, 0xFF, - 0xF8, 0xBE, 0x36, 0xFF, 0xF5, 0xBD, 0x35, 0xFF, 0xF3, 0xBB, 0x34, 0xFF, 0xF7, 0xB9, 0x34, 0xFF, - 0xFA, 0xB7, 0x34, 0xFF, 0xFF, 0xB5, 0x22, 0xFF, 0xFE, 0xB4, 0x2E, 0xFF, 0xE6, 0xB9, 0x4D, 0xFF, - 0xCD, 0xBF, 0x6B, 0xFF, 0xC5, 0xB1, 0x27, 0xFF, 0x7C, 0xBB, 0x6C, 0xFF, 0x48, 0xBD, 0x89, 0xFF, - 0x15, 0xBE, 0xA6, 0xFF, 0x08, 0xBF, 0xB9, 0xFF, 0x00, 0xBF, 0xCB, 0xFF, 0x3D, 0xC4, 0xDA, 0xFF, - 0x20, 0xCA, 0xBA, 0xFF, 0x3E, 0xC6, 0xAD, 0xFF, 0x53, 0xBB, 0x99, 0xFF, 0x8A, 0xAC, 0x59, 0xFF, - 0xC3, 0xAA, 0x35, 0xFF, 0xFF, 0xB3, 0x03, 0xFF, 0xFF, 0xA6, 0x15, 0xFF, 0xFF, 0xA4, 0x20, 0xFF, - 0xFA, 0xA0, 0x19, 0xFF, 0xF9, 0xA2, 0x1B, 0xFF, 0xF8, 0xA4, 0x1C, 0xFF, 0xF7, 0xA2, 0x1B, 0xFF, - 0xF6, 0xA1, 0x19, 0xFF, 0xF6, 0xA0, 0x18, 0xFF, 0xF7, 0xA0, 0x17, 0xFF, 0xF7, 0x9F, 0x16, 0xFF, - 0xF7, 0x9F, 0x15, 0xFF, 0xF7, 0x9E, 0x14, 0xFF, 0xF6, 0x9D, 0x14, 0xFF, 0xF6, 0x9C, 0x13, 0xFF, - 0xF6, 0x9B, 0x12, 0xFF, 0xF4, 0x9A, 0x10, 0xFF, 0xF3, 0x98, 0x0F, 0xFF, 0xF3, 0x98, 0x0F, 0xFF, - 0xF6, 0xD2, 0x53, 0xFF, 0xF7, 0xD1, 0x52, 0xFF, 0xF8, 0xD0, 0x51, 0xFF, 0xF8, 0xCF, 0x4F, 0xFF, - 0xF9, 0xCE, 0x4E, 0xFF, 0xF9, 0xCE, 0x4C, 0xFF, 0xF9, 0xCD, 0x4A, 0xFF, 0xF9, 0xCC, 0x48, 0xFF, - 0xF9, 0xCB, 0x46, 0xFF, 0xF9, 0xCA, 0x46, 0xFF, 0xF9, 0xC9, 0x45, 0xFF, 0xF9, 0xC8, 0x44, 0xFF, - 0xF9, 0xC8, 0x43, 0xFF, 0xF9, 0xC7, 0x42, 0xFF, 0xF9, 0xC6, 0x41, 0xFF, 0xF9, 0xC5, 0x41, 0xFF, - 0xF9, 0xC4, 0x40, 0xFF, 0xF9, 0xC3, 0x3E, 0xFF, 0xF9, 0xC2, 0x3D, 0xFF, 0xF9, 0xC1, 0x3B, 0xFF, - 0xF9, 0xC0, 0x3A, 0xFF, 0xF9, 0xBF, 0x38, 0xFF, 0xF8, 0xBF, 0x37, 0xFF, 0xF8, 0xBE, 0x36, 0xFF, - 0xF8, 0xBE, 0x35, 0xFF, 0xF4, 0xBC, 0x36, 0xFF, 0xEF, 0xBA, 0x37, 0xFF, 0xF5, 0xB7, 0x35, 0xFF, - 0xFC, 0xB5, 0x34, 0xFF, 0xF8, 0xB5, 0x2B, 0xFF, 0xF5, 0xB6, 0x22, 0xFF, 0xFA, 0xB5, 0x25, 0xFF, - 0xFF, 0xB3, 0x28, 0xFF, 0xFF, 0xB5, 0x28, 0xFF, 0xFF, 0xB7, 0x28, 0xFF, 0xFF, 0xB4, 0x1E, 0xFF, - 0xFE, 0xB2, 0x14, 0xFF, 0xF6, 0xAD, 0x20, 0xFF, 0xFE, 0xB9, 0x3C, 0xFF, 0xF0, 0xCB, 0x5A, 0xFF, - 0xFA, 0xBE, 0x41, 0xFF, 0xFC, 0xB5, 0x29, 0xFF, 0xFE, 0xAD, 0x11, 0xFF, 0xFC, 0xAC, 0x17, 0xFF, - 0xFA, 0xAB, 0x1D, 0xFF, 0xFD, 0xA9, 0x1D, 0xFF, 0xFF, 0xA7, 0x1D, 0xFF, 0xFA, 0xA7, 0x1B, 0xFF, - 0xF4, 0xA8, 0x18, 0xFF, 0xF8, 0xA6, 0x18, 0xFF, 0xFC, 0xA4, 0x17, 0xFF, 0xFA, 0xA2, 0x19, 0xFF, - 0xF7, 0xA1, 0x1A, 0xFF, 0xF7, 0xA0, 0x19, 0xFF, 0xF7, 0xA0, 0x17, 0xFF, 0xF7, 0x9F, 0x16, 0xFF, - 0xF7, 0x9F, 0x15, 0xFF, 0xF7, 0x9E, 0x14, 0xFF, 0xF6, 0x9D, 0x13, 0xFF, 0xF6, 0x9C, 0x13, 0xFF, - 0xF5, 0x9B, 0x12, 0xFF, 0xF4, 0x9A, 0x11, 0xFF, 0xF3, 0x99, 0x10, 0xFF, 0xF3, 0x99, 0x10, 0xFF, - 0xF7, 0xD1, 0x54, 0xFF, 0xF8, 0xD0, 0x52, 0xFF, 0xF8, 0xD0, 0x51, 0xFF, 0xF9, 0xCF, 0x4F, 0xFF, - 0xF9, 0xCF, 0x4E, 0xFF, 0xF9, 0xCE, 0x4B, 0xFF, 0xF9, 0xCD, 0x49, 0xFF, 0xF9, 0xCC, 0x47, 0xFF, - 0xF8, 0xCA, 0x45, 0xFF, 0xF8, 0xCA, 0x44, 0xFF, 0xF8, 0xC9, 0x44, 0xFF, 0xF9, 0xC8, 0x43, 0xFF, - 0xF9, 0xC7, 0x42, 0xFF, 0xF9, 0xC7, 0x42, 0xFF, 0xF9, 0xC6, 0x41, 0xFF, 0xF9, 0xC5, 0x40, 0xFF, - 0xF9, 0xC4, 0x40, 0xFF, 0xF9, 0xC3, 0x3E, 0xFF, 0xF9, 0xC2, 0x3C, 0xFF, 0xF9, 0xC1, 0x3B, 0xFF, - 0xF9, 0xC0, 0x39, 0xFF, 0xF9, 0xBF, 0x38, 0xFF, 0xF8, 0xBE, 0x36, 0xFF, 0xF8, 0xBE, 0x35, 0xFF, - 0xF8, 0xBD, 0x34, 0xFF, 0xF6, 0xBC, 0x34, 0xFF, 0xF4, 0xBA, 0x35, 0xFF, 0xF8, 0xB8, 0x34, 0xFF, - 0xFB, 0xB6, 0x33, 0xFF, 0xF9, 0xB6, 0x2D, 0xFF, 0xF6, 0xB6, 0x28, 0xFF, 0xF8, 0xB5, 0x29, 0xFF, - 0xFA, 0xB4, 0x29, 0xFF, 0xFB, 0xB4, 0x29, 0xFF, 0xFC, 0xB5, 0x29, 0xFF, 0xF5, 0xB2, 0x29, 0xFF, - 0xEF, 0xAF, 0x29, 0xFF, 0xF5, 0xA9, 0x1A, 0xFF, 0xD9, 0xCE, 0x9A, 0xFF, 0xE8, 0xCF, 0x6C, 0xFF, - 0xE3, 0xC6, 0x73, 0xFF, 0xDD, 0xC9, 0x7F, 0xFF, 0xFB, 0xAD, 0x18, 0xFF, 0xF9, 0xAC, 0x1B, 0xFF, - 0xF7, 0xAB, 0x1F, 0xFF, 0xF9, 0xA9, 0x1E, 0xFF, 0xFB, 0xA7, 0x1D, 0xFF, 0xF8, 0xA7, 0x1C, 0xFF, - 0xF6, 0xA6, 0x1A, 0xFF, 0xF8, 0xA5, 0x19, 0xFF, 0xFA, 0xA3, 0x19, 0xFF, 0xF9, 0xA2, 0x1A, 0xFF, - 0xF8, 0xA1, 0x1A, 0xFF, 0xF8, 0xA1, 0x19, 0xFF, 0xF8, 0xA0, 0x18, 0xFF, 0xF7, 0x9F, 0x16, 0xFF, - 0xF7, 0x9F, 0x15, 0xFF, 0xF7, 0x9E, 0x14, 0xFF, 0xF6, 0x9D, 0x13, 0xFF, 0xF6, 0x9C, 0x12, 0xFF, - 0xF5, 0x9B, 0x11, 0xFF, 0xF5, 0x9A, 0x11, 0xFF, 0xF4, 0x9A, 0x10, 0xFF, 0xF4, 0x9A, 0x10, 0xFF, - 0xF9, 0xD0, 0x54, 0xFF, 0xF9, 0xCF, 0x52, 0xFF, 0xF9, 0xCF, 0x51, 0xFF, 0xFA, 0xCF, 0x4F, 0xFF, - 0xFA, 0xCF, 0x4D, 0xFF, 0xF9, 0xCE, 0x4A, 0xFF, 0xF9, 0xCC, 0x48, 0xFF, 0xF8, 0xCB, 0x46, 0xFF, - 0xF8, 0xCA, 0x43, 0xFF, 0xF8, 0xC9, 0x43, 0xFF, 0xF8, 0xC9, 0x43, 0xFF, 0xF8, 0xC8, 0x42, 0xFF, - 0xF8, 0xC7, 0x42, 0xFF, 0xF8, 0xC7, 0x41, 0xFF, 0xF9, 0xC6, 0x41, 0xFF, 0xF9, 0xC5, 0x40, 0xFF, - 0xF9, 0xC4, 0x40, 0xFF, 0xF9, 0xC3, 0x3E, 0xFF, 0xF9, 0xC2, 0x3C, 0xFF, 0xF9, 0xC1, 0x3A, 0xFF, - 0xF9, 0xBF, 0x38, 0xFF, 0xF9, 0xBF, 0x37, 0xFF, 0xF9, 0xBE, 0x36, 0xFF, 0xF8, 0xBE, 0x34, 0xFF, - 0xF8, 0xBD, 0x33, 0xFF, 0xF9, 0xBC, 0x33, 0xFF, 0xF9, 0xBA, 0x32, 0xFF, 0xFA, 0xB9, 0x32, 0xFF, - 0xFB, 0xB7, 0x31, 0xFF, 0xF9, 0xB6, 0x30, 0xFF, 0xF8, 0xB6, 0x2E, 0xFF, 0xF6, 0xB5, 0x2C, 0xFF, - 0xF4, 0xB4, 0x2A, 0xFF, 0xF5, 0xB3, 0x2A, 0xFF, 0xF6, 0xB2, 0x2A, 0xFF, 0xF9, 0xB2, 0x29, 0xFF, - 0xFB, 0xB2, 0x28, 0xFF, 0xF6, 0xB2, 0x30, 0xFF, 0xFD, 0xA8, 0x11, 0xFF, 0xE1, 0xD3, 0x7E, 0xFF, - 0xE6, 0xBB, 0x58, 0xFF, 0xFB, 0xAA, 0x15, 0xFF, 0xF7, 0xAD, 0x1F, 0xFF, 0xF6, 0xAB, 0x1F, 0xFF, - 0xF5, 0xAA, 0x20, 0xFF, 0xF6, 0xA9, 0x1F, 0xFF, 0xF6, 0xA7, 0x1E, 0xFF, 0xF7, 0xA6, 0x1D, 0xFF, - 0xF8, 0xA5, 0x1B, 0xFF, 0xF8, 0xA4, 0x1B, 0xFF, 0xF8, 0xA3, 0x1B, 0xFF, 0xF8, 0xA2, 0x1B, 0xFF, - 0xF9, 0xA1, 0x1A, 0xFF, 0xF8, 0xA1, 0x19, 0xFF, 0xF8, 0xA0, 0x18, 0xFF, 0xF8, 0x9F, 0x16, 0xFF, - 0xF7, 0x9F, 0x15, 0xFF, 0xF7, 0x9E, 0x14, 0xFF, 0xF6, 0x9D, 0x13, 0xFF, 0xF6, 0x9C, 0x12, 0xFF, - 0xF5, 0x9A, 0x11, 0xFF, 0xF5, 0x9A, 0x11, 0xFF, 0xF5, 0x9A, 0x11, 0xFF, 0xF5, 0x9A, 0x11, 0xFF, - 0xF9, 0xD0, 0x54, 0xFF, 0xF9, 0xCF, 0x52, 0xFF, 0xF9, 0xCF, 0x51, 0xFF, 0xFA, 0xCF, 0x4F, 0xFF, - 0xFA, 0xCF, 0x4D, 0xFF, 0xF9, 0xCE, 0x4A, 0xFF, 0xF9, 0xCC, 0x48, 0xFF, 0xF8, 0xCB, 0x46, 0xFF, - 0xF8, 0xCA, 0x43, 0xFF, 0xF8, 0xC9, 0x43, 0xFF, 0xF8, 0xC9, 0x43, 0xFF, 0xF8, 0xC8, 0x42, 0xFF, - 0xF8, 0xC7, 0x42, 0xFF, 0xF8, 0xC7, 0x41, 0xFF, 0xF9, 0xC6, 0x41, 0xFF, 0xF9, 0xC5, 0x40, 0xFF, - 0xF9, 0xC4, 0x40, 0xFF, 0xF9, 0xC3, 0x3E, 0xFF, 0xF9, 0xC2, 0x3C, 0xFF, 0xF9, 0xC1, 0x3A, 0xFF, - 0xF9, 0xBF, 0x38, 0xFF, 0xF9, 0xBF, 0x37, 0xFF, 0xF9, 0xBE, 0x36, 0xFF, 0xF8, 0xBE, 0x34, 0xFF, - 0xF8, 0xBD, 0x33, 0xFF, 0xF9, 0xBC, 0x33, 0xFF, 0xF9, 0xBA, 0x32, 0xFF, 0xFA, 0xB9, 0x32, 0xFF, - 0xFB, 0xB7, 0x31, 0xFF, 0xF9, 0xB6, 0x30, 0xFF, 0xF8, 0xB6, 0x2E, 0xFF, 0xF6, 0xB5, 0x2C, 0xFF, - 0xF4, 0xB4, 0x2A, 0xFF, 0xF5, 0xB3, 0x2A, 0xFF, 0xF6, 0xB2, 0x2A, 0xFF, 0xF8, 0xB2, 0x2A, 0xFF, - 0xFA, 0xB1, 0x29, 0xFF, 0xF4, 0xB5, 0x2D, 0xFF, 0xF5, 0xB4, 0x1D, 0xFF, 0xFF, 0x9B, 0x23, 0xFF, - 0xF2, 0xB5, 0x1F, 0xFF, 0xFB, 0xAB, 0x0B, 0xFF, 0xF6, 0xAC, 0x1E, 0xFF, 0xF6, 0xAB, 0x1F, 0xFF, - 0xF5, 0xAA, 0x20, 0xFF, 0xF6, 0xA9, 0x1F, 0xFF, 0xF6, 0xA7, 0x1E, 0xFF, 0xF7, 0xA6, 0x1D, 0xFF, - 0xF8, 0xA5, 0x1B, 0xFF, 0xF8, 0xA4, 0x1B, 0xFF, 0xF8, 0xA3, 0x1B, 0xFF, 0xF8, 0xA2, 0x1B, 0xFF, - 0xF9, 0xA1, 0x1A, 0xFF, 0xF8, 0xA1, 0x19, 0xFF, 0xF8, 0xA0, 0x18, 0xFF, 0xF8, 0x9F, 0x16, 0xFF, - 0xF7, 0x9F, 0x15, 0xFF, 0xF7, 0x9E, 0x14, 0xFF, 0xF6, 0x9D, 0x13, 0xFF, 0xF6, 0x9C, 0x12, 0xFF, - 0xF5, 0x9A, 0x11, 0xFF, 0xF5, 0x9A, 0x11, 0xFF, 0xF5, 0x9A, 0x11, 0xFF, 0xF5, 0x9A, 0x11, 0xFF, - 0xF9, 0xD0, 0x54, 0xFF, 0xF9, 0xCF, 0x52, 0xFF, 0xF9, 0xCF, 0x51, 0xFF, 0xFA, 0xCF, 0x4F, 0xFF, - 0xFA, 0xCF, 0x4D, 0xFF, 0xF9, 0xCE, 0x4A, 0xFF, 0xF9, 0xCC, 0x48, 0xFF, 0xF8, 0xCB, 0x46, 0xFF, - 0xF8, 0xCA, 0x43, 0xFF, 0xF8, 0xC9, 0x43, 0xFF, 0xF8, 0xC9, 0x43, 0xFF, 0xF8, 0xC8, 0x42, 0xFF, - 0xF8, 0xC7, 0x42, 0xFF, 0xF8, 0xC7, 0x41, 0xFF, 0xF9, 0xC6, 0x41, 0xFF, 0xF9, 0xC5, 0x40, 0xFF, - 0xF9, 0xC4, 0x40, 0xFF, 0xF9, 0xC3, 0x3E, 0xFF, 0xF9, 0xC2, 0x3C, 0xFF, 0xF9, 0xC1, 0x3A, 0xFF, - 0xF9, 0xBF, 0x38, 0xFF, 0xF9, 0xBF, 0x37, 0xFF, 0xF9, 0xBE, 0x36, 0xFF, 0xF8, 0xBE, 0x34, 0xFF, - 0xF8, 0xBD, 0x33, 0xFF, 0xF9, 0xBC, 0x33, 0xFF, 0xF9, 0xBA, 0x32, 0xFF, 0xFA, 0xB9, 0x32, 0xFF, - 0xFB, 0xB7, 0x31, 0xFF, 0xF9, 0xB6, 0x30, 0xFF, 0xF8, 0xB6, 0x2E, 0xFF, 0xF6, 0xB5, 0x2C, 0xFF, - 0xF4, 0xB4, 0x2A, 0xFF, 0xF5, 0xB3, 0x2A, 0xFF, 0xF6, 0xB2, 0x2A, 0xFF, 0xF7, 0xB2, 0x2A, 0xFF, - 0xF8, 0xB1, 0x2A, 0xFF, 0xF9, 0xAE, 0x21, 0xFF, 0xFA, 0xAC, 0x18, 0xFF, 0xF6, 0xAD, 0x1E, 0xFF, - 0xF3, 0xAE, 0x23, 0xFF, 0xF4, 0xAC, 0x20, 0xFF, 0xF5, 0xAB, 0x1D, 0xFF, 0xF5, 0xAA, 0x1E, 0xFF, - 0xF5, 0xAA, 0x20, 0xFF, 0xF6, 0xA9, 0x1F, 0xFF, 0xF6, 0xA7, 0x1E, 0xFF, 0xF7, 0xA6, 0x1D, 0xFF, - 0xF8, 0xA5, 0x1B, 0xFF, 0xF8, 0xA4, 0x1B, 0xFF, 0xF8, 0xA3, 0x1B, 0xFF, 0xF8, 0xA2, 0x1B, 0xFF, - 0xF9, 0xA1, 0x1A, 0xFF, 0xF8, 0xA1, 0x19, 0xFF, 0xF8, 0xA0, 0x18, 0xFF, 0xF8, 0x9F, 0x16, 0xFF, - 0xF7, 0x9F, 0x15, 0xFF, 0xF7, 0x9E, 0x14, 0xFF, 0xF6, 0x9D, 0x13, 0xFF, 0xF6, 0x9C, 0x12, 0xFF, - 0xF5, 0x9A, 0x11, 0xFF, 0xF5, 0x9A, 0x11, 0xFF, 0xF5, 0x9A, 0x11, 0xFF, 0xF5, 0x9A, 0x11, 0xFF, - 0xF9, 0xD0, 0x54, 0xFF, 0xF9, 0xCF, 0x52, 0xFF, 0xF9, 0xCF, 0x51, 0xFF, 0xFA, 0xCF, 0x4F, 0xFF, - 0xFA, 0xCF, 0x4D, 0xFF, 0xF9, 0xCE, 0x4A, 0xFF, 0xF9, 0xCC, 0x48, 0xFF, 0xF8, 0xCB, 0x46, 0xFF, - 0xF8, 0xCA, 0x43, 0xFF, 0xF8, 0xC9, 0x43, 0xFF, 0xF8, 0xC9, 0x43, 0xFF, 0xF8, 0xC8, 0x42, 0xFF, - 0xF8, 0xC7, 0x42, 0xFF, 0xF8, 0xC7, 0x41, 0xFF, 0xF9, 0xC6, 0x41, 0xFF, 0xF9, 0xC5, 0x40, 0xFF, - 0xF9, 0xC4, 0x40, 0xFF, 0xF9, 0xC3, 0x3E, 0xFF, 0xF9, 0xC2, 0x3C, 0xFF, 0xF9, 0xC1, 0x3A, 0xFF, - 0xF9, 0xBF, 0x38, 0xFF, 0xF9, 0xBF, 0x37, 0xFF, 0xF9, 0xBE, 0x36, 0xFF, 0xF8, 0xBE, 0x34, 0xFF, - 0xF8, 0xBD, 0x33, 0xFF, 0xF9, 0xBC, 0x33, 0xFF, 0xF9, 0xBA, 0x32, 0xFF, 0xFA, 0xB9, 0x32, 0xFF, - 0xFB, 0xB7, 0x31, 0xFF, 0xF9, 0xB6, 0x30, 0xFF, 0xF8, 0xB6, 0x2E, 0xFF, 0xF6, 0xB5, 0x2C, 0xFF, - 0xF4, 0xB4, 0x2A, 0xFF, 0xF5, 0xB3, 0x2A, 0xFF, 0xF6, 0xB2, 0x2A, 0xFF, 0xF7, 0xB2, 0x2A, 0xFF, - 0xF8, 0xB1, 0x2A, 0xFF, 0xF9, 0xAE, 0x21, 0xFF, 0xFA, 0xAC, 0x18, 0xFF, 0xF6, 0xAD, 0x1E, 0xFF, - 0xF3, 0xAE, 0x23, 0xFF, 0xF4, 0xAC, 0x20, 0xFF, 0xF5, 0xAB, 0x1D, 0xFF, 0xF5, 0xAA, 0x1E, 0xFF, - 0xF5, 0xAA, 0x20, 0xFF, 0xF6, 0xA9, 0x1F, 0xFF, 0xF6, 0xA7, 0x1E, 0xFF, 0xF7, 0xA6, 0x1D, 0xFF, - 0xF8, 0xA5, 0x1B, 0xFF, 0xF8, 0xA4, 0x1B, 0xFF, 0xF8, 0xA3, 0x1B, 0xFF, 0xF8, 0xA2, 0x1B, 0xFF, - 0xF9, 0xA1, 0x1A, 0xFF, 0xF8, 0xA1, 0x19, 0xFF, 0xF8, 0xA0, 0x18, 0xFF, 0xF8, 0x9F, 0x16, 0xFF, - 0xF7, 0x9F, 0x15, 0xFF, 0xF7, 0x9E, 0x14, 0xFF, 0xF6, 0x9D, 0x13, 0xFF, 0xF6, 0x9C, 0x12, 0xFF, - 0xF5, 0x9A, 0x11, 0xFF, 0xF5, 0x9A, 0x11, 0xFF, 0xF5, 0x9A, 0x11, 0xFF, 0xF5, 0x9A, 0x11, 0xFF, + 0xDE, 0x9B, 0x22, 0xFF, 0xE0, 0x9D, 0x23, 0xFF, 0xE1, 0x9E, 0x25, 0xFF, 0xE8, 0xA5, 0x2B, 0xFF, 0xDF, 0x9B, 0x22, + 0xFF, 0xDF, 0x9C, 0x22, 0xFF, 0xE0, 0x9C, 0x22, 0xFF, 0xDF, 0x9C, 0x22, 0xFF, 0xDF, 0x9B, 0x21, 0xFF, 0xDF, 0x9B, + 0x22, 0xFF, 0xDF, 0x9B, 0x23, 0xFF, 0xDF, 0x9B, 0x23, 0xFF, 0xDF, 0x9C, 0x24, 0xFF, 0xE2, 0x9B, 0x21, 0xFF, 0xE5, + 0x9B, 0x1D, 0xFF, 0xE1, 0x9A, 0x1F, 0xFF, 0xDD, 0x98, 0x21, 0xFF, 0xDE, 0x99, 0x21, 0xFF, 0xDE, 0x99, 0x20, 0xFF, + 0xDF, 0x9A, 0x1F, 0xFF, 0xE0, 0x9A, 0x1F, 0xFF, 0xE0, 0x99, 0x1E, 0xFF, 0xDF, 0x99, 0x1D, 0xFF, 0xDF, 0x98, 0x1C, + 0xFF, 0xDF, 0x97, 0x1B, 0xFF, 0xDC, 0x95, 0x1E, 0xFF, 0xD8, 0x93, 0x21, 0xFF, 0xDC, 0x93, 0x1F, 0xFF, 0xE0, 0x93, + 0x1C, 0xFF, 0xDC, 0x94, 0x1A, 0xFF, 0xD8, 0x95, 0x18, 0xFF, 0xDB, 0x91, 0x1C, 0xFF, 0xDE, 0x8E, 0x1F, 0xFF, 0xDE, + 0x90, 0x1A, 0xFF, 0xDE, 0x93, 0x16, 0xFF, 0xDF, 0x92, 0x17, 0xFF, 0xDF, 0x91, 0x18, 0xFF, 0xDF, 0x90, 0x17, 0xFF, + 0xDE, 0x8F, 0x17, 0xFF, 0xDE, 0x8E, 0x16, 0xFF, 0xDE, 0x8C, 0x15, 0xFF, 0xDD, 0x8C, 0x14, 0xFF, 0xDB, 0x8C, 0x13, + 0xFF, 0xDA, 0x8C, 0x12, 0xFF, 0xD9, 0x8C, 0x11, 0xFF, 0xD9, 0x8B, 0x11, 0xFF, 0xD9, 0x89, 0x11, 0xFF, 0xDA, 0x88, + 0x11, 0xFF, 0xDA, 0x87, 0x12, 0xFF, 0xDA, 0x86, 0x11, 0xFF, 0xDA, 0x86, 0x10, 0xFF, 0xD9, 0x85, 0x10, 0xFF, 0xD9, + 0x84, 0x0F, 0xFF, 0xD9, 0x83, 0x0E, 0xFF, 0xD8, 0x83, 0x0E, 0xFF, 0xD8, 0x82, 0x0D, 0xFF, 0xD8, 0x81, 0x0C, 0xFF, + 0xD7, 0x80, 0x0C, 0xFF, 0xD7, 0x7F, 0x0D, 0xFF, 0xD6, 0x7F, 0x0D, 0xFF, 0xD6, 0x7E, 0x0D, 0xFF, 0xD6, 0x7E, 0x0D, + 0xFF, 0xD6, 0x7E, 0x0D, 0xFF, 0xD6, 0x7E, 0x0D, 0xFF, 0xE0, 0x9F, 0x24, 0xFF, 0xE1, 0xA0, 0x27, 0xFF, 0xE2, 0xA2, + 0x29, 0xFF, 0xE5, 0xA4, 0x2A, 0xFF, 0xE0, 0x9E, 0x24, 0xFF, 0xE1, 0x9E, 0x24, 0xFF, 0xE1, 0x9E, 0x24, 0xFF, 0xE1, + 0x9E, 0x23, 0xFF, 0xE1, 0x9D, 0x23, 0xFF, 0xE1, 0x9D, 0x23, 0xFF, 0xE1, 0x9D, 0x24, 0xFF, 0xE1, 0x9D, 0x24, 0xFF, + 0xE1, 0x9D, 0x25, 0xFF, 0xE1, 0x9D, 0x23, 0xFF, 0xE2, 0x9C, 0x22, 0xFF, 0xE0, 0x9C, 0x22, 0xFF, 0xDF, 0x9B, 0x22, + 0xFF, 0xE0, 0x9B, 0x21, 0xFF, 0xE1, 0x9B, 0x20, 0xFF, 0xE1, 0x9B, 0x20, 0xFF, 0xE1, 0x9B, 0x1F, 0xFF, 0xDF, 0x9A, + 0x20, 0xFF, 0xDE, 0x99, 0x20, 0xFF, 0xDE, 0x98, 0x1E, 0xFF, 0xDF, 0x97, 0x1D, 0xFF, 0xDF, 0x97, 0x1D, 0xFF, 0xDF, + 0x96, 0x1E, 0xFF, 0xDF, 0x95, 0x1D, 0xFF, 0xDE, 0x94, 0x1C, 0xFF, 0xDF, 0x94, 0x1C, 0xFF, 0xE0, 0x93, 0x1B, 0xFF, + 0xE0, 0x93, 0x1C, 0xFF, 0xE0, 0x92, 0x1D, 0xFF, 0xDE, 0x93, 0x1B, 0xFF, 0xDC, 0x94, 0x19, 0xFF, 0xDE, 0x93, 0x19, + 0xFF, 0xE0, 0x92, 0x19, 0xFF, 0xDF, 0x91, 0x19, 0xFF, 0xDF, 0x90, 0x18, 0xFF, 0xDF, 0x8F, 0x17, 0xFF, 0xDF, 0x8E, + 0x17, 0xFF, 0xDE, 0x8E, 0x16, 0xFF, 0xDD, 0x8D, 0x15, 0xFF, 0xDC, 0x8D, 0x13, 0xFF, 0xDB, 0x8D, 0x12, 0xFF, 0xDB, + 0x8C, 0x12, 0xFF, 0xDB, 0x8B, 0x12, 0xFF, 0xDB, 0x89, 0x12, 0xFF, 0xDB, 0x88, 0x12, 0xFF, 0xDB, 0x87, 0x11, 0xFF, + 0xDB, 0x87, 0x11, 0xFF, 0xDB, 0x86, 0x10, 0xFF, 0xDB, 0x85, 0x0F, 0xFF, 0xDA, 0x84, 0x0E, 0xFF, 0xD9, 0x83, 0x0D, + 0xFF, 0xD9, 0x83, 0x0D, 0xFF, 0xD9, 0x83, 0x0D, 0xFF, 0xD8, 0x82, 0x0D, 0xFF, 0xD8, 0x81, 0x0D, 0xFF, 0xD7, 0x80, + 0x0D, 0xFF, 0xD7, 0x7F, 0x0D, 0xFF, 0xD7, 0x7F, 0x0D, 0xFF, 0xD7, 0x7F, 0x0D, 0xFF, 0xD7, 0x7F, 0x0D, 0xFF, 0xE2, + 0xA2, 0x27, 0xFF, 0xE3, 0xA4, 0x2A, 0xFF, 0xE3, 0xA5, 0x2D, 0xFF, 0xE3, 0xA3, 0x29, 0xFF, 0xE2, 0xA1, 0x26, 0xFF, + 0xE2, 0xA1, 0x25, 0xFF, 0xE2, 0xA1, 0x25, 0xFF, 0xE2, 0xA0, 0x25, 0xFF, 0xE2, 0xA0, 0x24, 0xFF, 0xE2, 0x9F, 0x25, + 0xFF, 0xE3, 0x9F, 0x25, 0xFF, 0xE3, 0x9E, 0x25, 0xFF, 0xE3, 0x9E, 0x26, 0xFF, 0xE1, 0x9E, 0x26, 0xFF, 0xDE, 0x9D, + 0x27, 0xFF, 0xDF, 0x9D, 0x24, 0xFF, 0xE1, 0x9E, 0x22, 0xFF, 0xE2, 0x9D, 0x21, 0xFF, 0xE3, 0x9D, 0x20, 0xFF, 0xE3, + 0x9D, 0x20, 0xFF, 0xE3, 0x9C, 0x20, 0xFF, 0xDF, 0x9B, 0x22, 0xFF, 0xDC, 0x99, 0x24, 0xFF, 0xDE, 0x98, 0x21, 0xFF, + 0xE0, 0x98, 0x1F, 0xFF, 0xE3, 0x99, 0x1D, 0xFF, 0xE7, 0x9A, 0x1B, 0xFF, 0xE1, 0x98, 0x1B, 0xFF, 0xDC, 0x96, 0x1C, + 0xFF, 0xE2, 0x94, 0x1D, 0xFF, 0xE9, 0x92, 0x1F, 0xFF, 0xE5, 0x94, 0x1D, 0xFF, 0xE2, 0x96, 0x1A, 0xFF, 0xDE, 0x95, + 0x1B, 0xFF, 0xDA, 0x95, 0x1D, 0xFF, 0xDD, 0x94, 0x1C, 0xFF, 0xE0, 0x93, 0x1A, 0xFF, 0xE0, 0x92, 0x1A, 0xFF, 0xE0, + 0x91, 0x19, 0xFF, 0xDF, 0x91, 0x19, 0xFF, 0xDF, 0x90, 0x18, 0xFF, 0xDE, 0x8F, 0x17, 0xFF, 0xDE, 0x8F, 0x16, 0xFF, + 0xDD, 0x8E, 0x15, 0xFF, 0xDD, 0x8E, 0x14, 0xFF, 0xDC, 0x8D, 0x14, 0xFF, 0xDC, 0x8C, 0x13, 0xFF, 0xDC, 0x8B, 0x12, + 0xFF, 0xDB, 0x8A, 0x12, 0xFF, 0xDC, 0x89, 0x11, 0xFF, 0xDC, 0x88, 0x11, 0xFF, 0xDC, 0x87, 0x10, 0xFF, 0xDC, 0x86, + 0x10, 0xFF, 0xDB, 0x84, 0x0E, 0xFF, 0xD9, 0x83, 0x0D, 0xFF, 0xD9, 0x83, 0x0E, 0xFF, 0xDA, 0x84, 0x0E, 0xFF, 0xD9, + 0x83, 0x0E, 0xFF, 0xD9, 0x82, 0x0E, 0xFF, 0xD8, 0x80, 0x0D, 0xFF, 0xD8, 0x7F, 0x0D, 0xFF, 0xD8, 0x7F, 0x0D, 0xFF, + 0xD8, 0x7F, 0x0D, 0xFF, 0xD8, 0x7F, 0x0D, 0xFF, 0xE4, 0xA6, 0x29, 0xFF, 0xE3, 0xA7, 0x2D, 0xFF, 0xE3, 0xA8, 0x30, + 0xFF, 0xE3, 0xA6, 0x2C, 0xFF, 0xE3, 0xA3, 0x27, 0xFF, 0xE3, 0xA3, 0x27, 0xFF, 0xE3, 0xA3, 0x26, 0xFF, 0xE4, 0xA2, + 0x26, 0xFF, 0xE4, 0xA2, 0x26, 0xFF, 0xE4, 0xA1, 0x26, 0xFF, 0xE4, 0xA1, 0x26, 0xFF, 0xE5, 0xA0, 0x26, 0xFF, 0xE5, + 0x9F, 0x26, 0xFF, 0xE4, 0xA0, 0x25, 0xFF, 0xE4, 0xA0, 0x24, 0xFF, 0xE3, 0x9F, 0x24, 0xFF, 0xE3, 0x9E, 0x24, 0xFF, + 0xE4, 0x9E, 0x23, 0xFF, 0xE6, 0x9F, 0x21, 0xFF, 0xE5, 0x9F, 0x21, 0xFF, 0xE3, 0x9E, 0x22, 0xFF, 0xE5, 0xA4, 0x13, + 0xFF, 0xE7, 0x9F, 0x1A, 0xFF, 0xE7, 0x9F, 0x15, 0xFF, 0xE7, 0xA0, 0x10, 0xFF, 0xEF, 0x9F, 0x11, 0xFF, 0xF7, 0x9E, + 0x12, 0xFF, 0xEC, 0x99, 0x1A, 0xFF, 0xE1, 0x9A, 0x17, 0xFF, 0xE3, 0x9C, 0x14, 0xFF, 0xE5, 0x98, 0x1C, 0xFF, 0xE6, + 0x97, 0x1C, 0xFF, 0xE6, 0x96, 0x1B, 0xFF, 0xDB, 0x98, 0x1B, 0xFF, 0xDF, 0x96, 0x1C, 0xFF, 0xE0, 0x95, 0x1C, 0xFF, + 0xE1, 0x94, 0x1B, 0xFF, 0xE1, 0x93, 0x1B, 0xFF, 0xE0, 0x93, 0x1A, 0xFF, 0xE0, 0x92, 0x1A, 0xFF, 0xE0, 0x92, 0x19, + 0xFF, 0xDF, 0x91, 0x18, 0xFF, 0xDF, 0x90, 0x18, 0xFF, 0xDF, 0x8F, 0x17, 0xFF, 0xDF, 0x8F, 0x16, 0xFF, 0xDE, 0x8E, + 0x15, 0xFF, 0xDD, 0x8D, 0x14, 0xFF, 0xDD, 0x8C, 0x13, 0xFF, 0xDC, 0x8B, 0x12, 0xFF, 0xDC, 0x8A, 0x12, 0xFF, 0xDD, + 0x89, 0x11, 0xFF, 0xDD, 0x87, 0x11, 0xFF, 0xDE, 0x86, 0x10, 0xFF, 0xDC, 0x85, 0x0F, 0xFF, 0xD9, 0x83, 0x0D, 0xFF, + 0xDA, 0x84, 0x0E, 0xFF, 0xDB, 0x85, 0x0F, 0xFF, 0xDA, 0x84, 0x0F, 0xFF, 0xDA, 0x83, 0x0E, 0xFF, 0xDA, 0x81, 0x0E, + 0xFF, 0xD9, 0x80, 0x0D, 0xFF, 0xD9, 0x80, 0x0D, 0xFF, 0xD9, 0x80, 0x0D, 0xFF, 0xD9, 0x80, 0x0D, 0xFF, 0xE7, 0xAA, + 0x2C, 0xFF, 0xE4, 0xAA, 0x30, 0xFF, 0xE2, 0xAA, 0x33, 0xFF, 0xE3, 0xA8, 0x2E, 0xFF, 0xE4, 0xA5, 0x28, 0xFF, 0xE5, + 0xA5, 0x28, 0xFF, 0xE5, 0xA5, 0x28, 0xFF, 0xE5, 0xA4, 0x28, 0xFF, 0xE5, 0xA4, 0x27, 0xFF, 0xE6, 0xA3, 0x27, 0xFF, + 0xE6, 0xA2, 0x27, 0xFF, 0xE7, 0xA1, 0x27, 0xFF, 0xE7, 0xA1, 0x27, 0xFF, 0xE8, 0xA2, 0x25, 0xFF, 0xE9, 0xA3, 0x22, + 0xFF, 0xE7, 0xA0, 0x24, 0xFF, 0xE6, 0x9E, 0x27, 0xFF, 0xE7, 0x9F, 0x25, 0xFF, 0xE8, 0xA0, 0x22, 0xFF, 0xF4, 0xA3, + 0x18, 0xFF, 0xFF, 0xA7, 0x0D, 0xFF, 0xDD, 0xA5, 0x1A, 0xFF, 0xBA, 0x8D, 0x54, 0xFF, 0x9C, 0x83, 0x6E, 0xFF, 0x7D, + 0x79, 0x88, 0xFF, 0x7B, 0x79, 0x8C, 0xFF, 0x79, 0x79, 0x91, 0xFF, 0x94, 0x7A, 0x7E, 0xFF, 0xAF, 0x87, 0x55, 0xFF, + 0xD6, 0x9B, 0x21, 0xFF, 0xFD, 0xA3, 0x04, 0xFF, 0xF4, 0x9D, 0x0F, 0xFF, 0xEB, 0x96, 0x1B, 0xFF, 0xD9, 0x9A, 0x1B, + 0xFF, 0xE4, 0x98, 0x1B, 0xFF, 0xE3, 0x96, 0x1C, 0xFF, 0xE2, 0x95, 0x1C, 0xFF, 0xE2, 0x94, 0x1C, 0xFF, 0xE1, 0x94, + 0x1B, 0xFF, 0xE1, 0x94, 0x1B, 0xFF, 0xE0, 0x93, 0x1B, 0xFF, 0xE0, 0x92, 0x1A, 0xFF, 0xE0, 0x91, 0x19, 0xFF, 0xE1, + 0x90, 0x18, 0xFF, 0xE1, 0x8F, 0x18, 0xFF, 0xE0, 0x8F, 0x16, 0xFF, 0xDF, 0x8E, 0x15, 0xFF, 0xDE, 0x8D, 0x14, 0xFF, + 0xDC, 0x8C, 0x12, 0xFF, 0xDD, 0x8B, 0x12, 0xFF, 0xDE, 0x8A, 0x12, 0xFF, 0xDF, 0x88, 0x11, 0xFF, 0xE0, 0x87, 0x11, + 0xFF, 0xDD, 0x85, 0x0F, 0xFF, 0xDA, 0x83, 0x0D, 0xFF, 0xDB, 0x85, 0x0E, 0xFF, 0xDC, 0x87, 0x10, 0xFF, 0xDC, 0x85, + 0x0F, 0xFF, 0xDB, 0x84, 0x0F, 0xFF, 0xDB, 0x82, 0x0E, 0xFF, 0xDA, 0x81, 0x0D, 0xFF, 0xDA, 0x81, 0x0D, 0xFF, 0xDA, + 0x81, 0x0D, 0xFF, 0xDA, 0x81, 0x0D, 0xFF, 0xE4, 0xAA, 0x30, 0xFF, 0xE8, 0xAF, 0x35, 0xFF, 0xE3, 0xAB, 0x33, 0xFF, + 0xE5, 0xA9, 0x2F, 0xFF, 0xE6, 0xA8, 0x2A, 0xFF, 0xE8, 0xAD, 0x35, 0xFF, 0xE7, 0xA6, 0x25, 0xFF, 0xE7, 0xA7, 0x28, + 0xFF, 0xE7, 0xA8, 0x2B, 0xFF, 0xE5, 0xA6, 0x2D, 0xFF, 0xE4, 0xA4, 0x2E, 0xFF, 0xE6, 0xA4, 0x2B, 0xFF, 0xE8, 0xA4, + 0x29, 0xFF, 0xE5, 0xA4, 0x2A, 0xFF, 0xE1, 0xA5, 0x2C, 0xFF, 0xEF, 0xA9, 0x10, 0xFF, 0xF6, 0xAD, 0x12, 0xFF, 0xF8, + 0xA2, 0x22, 0xFF, 0xA5, 0x91, 0x60, 0xFF, 0x5C, 0x75, 0xA5, 0xFF, 0x14, 0x59, 0xEB, 0xFF, 0x0C, 0x48, 0xFF, 0xFF, + 0x03, 0x55, 0xFA, 0xFF, 0x0F, 0x59, 0xFF, 0xFF, 0x1A, 0x5D, 0xFF, 0xFF, 0x16, 0x60, 0xFF, 0xFF, 0x11, 0x64, 0xF9, + 0xFF, 0x0F, 0x54, 0xFF, 0xFF, 0x0C, 0x4A, 0xFF, 0xFF, 0x17, 0x49, 0xFA, 0xFF, 0x23, 0x47, 0xF5, 0xFF, 0x7E, 0x72, + 0x8D, 0xFF, 0xD9, 0x9D, 0x26, 0xFF, 0xFF, 0xA1, 0x05, 0xFF, 0xE1, 0x96, 0x1D, 0xFF, 0xE9, 0x98, 0x17, 0xFF, 0xE3, + 0x97, 0x1C, 0xFF, 0xE3, 0x97, 0x1A, 0xFF, 0xE4, 0x97, 0x18, 0xFF, 0xE3, 0x96, 0x19, 0xFF, 0xE2, 0x94, 0x1B, 0xFF, + 0xE1, 0x93, 0x1A, 0xFF, 0xE0, 0x93, 0x19, 0xFF, 0xE1, 0x92, 0x18, 0xFF, 0xE1, 0x91, 0x17, 0xFF, 0xE0, 0x90, 0x16, + 0xFF, 0xDF, 0x8F, 0x15, 0xFF, 0xDE, 0x8E, 0x14, 0xFF, 0xDD, 0x8D, 0x13, 0xFF, 0xDE, 0x8D, 0x13, 0xFF, 0xDF, 0x8C, + 0x13, 0xFF, 0xDF, 0x8A, 0x12, 0xFF, 0xE0, 0x89, 0x10, 0xFF, 0xDD, 0x87, 0x0F, 0xFF, 0xDB, 0x84, 0x0E, 0xFF, 0xDF, + 0x8A, 0x13, 0xFF, 0xDB, 0x87, 0x0F, 0xFF, 0xDC, 0x86, 0x0F, 0xFF, 0xDC, 0x85, 0x0F, 0xFF, 0xDB, 0x84, 0x0E, 0xFF, + 0xDB, 0x82, 0x0D, 0xFF, 0xDB, 0x82, 0x0D, 0xFF, 0xDB, 0x82, 0x0D, 0xFF, 0xDB, 0x82, 0x0D, 0xFF, 0xE2, 0xAB, 0x33, + 0xFF, 0xEB, 0xB3, 0x3B, 0xFF, 0xE5, 0xAC, 0x33, 0xFF, 0xE6, 0xAB, 0x30, 0xFF, 0xE7, 0xAA, 0x2D, 0xFF, 0xEA, 0xB6, + 0x43, 0xFF, 0xEA, 0xA7, 0x23, 0xFF, 0xE9, 0xA9, 0x29, 0xFF, 0xE9, 0xAB, 0x2F, 0xFF, 0xE5, 0xA9, 0x32, 0xFF, 0xE2, + 0xA7, 0x35, 0xFF, 0xE6, 0xA7, 0x30, 0xFF, 0xEA, 0xA8, 0x2A, 0xFF, 0xF0, 0xAA, 0x25, 0xFF, 0xF6, 0xAD, 0x1F, 0xFF, + 0xA7, 0x8A, 0x4D, 0xFF, 0x4C, 0x66, 0xB7, 0xFF, 0x0F, 0x54, 0xFF, 0xFF, 0x0C, 0x64, 0xF7, 0xFF, 0x13, 0x63, 0xF8, + 0xFF, 0x1A, 0x61, 0xF9, 0xFF, 0x1E, 0x67, 0xEF, 0xFF, 0x22, 0x61, 0xFC, 0xFF, 0x25, 0x68, 0xFA, 0xFF, 0x28, 0x6F, + 0xF9, 0xFF, 0x22, 0x70, 0xF5, 0xFF, 0x1B, 0x72, 0xF2, 0xFF, 0x1F, 0x6B, 0xF2, 0xFF, 0x24, 0x64, 0xF1, 0xFF, 0x21, + 0x55, 0xFF, 0xFF, 0x1E, 0x53, 0xFF, 0xFF, 0x16, 0x4B, 0xFF, 0xFF, 0x0E, 0x43, 0xFF, 0xFF, 0x5A, 0x61, 0xB1, 0xFF, + 0xDF, 0x95, 0x1E, 0xFF, 0xF0, 0x9A, 0x12, 0xFF, 0xE5, 0x9A, 0x1B, 0xFF, 0xE5, 0x9A, 0x18, 0xFF, 0xE6, 0x9A, 0x14, + 0xFF, 0xE5, 0x98, 0x17, 0xFF, 0xE4, 0x95, 0x1B, 0xFF, 0xE2, 0x95, 0x1A, 0xFF, 0xE0, 0x94, 0x19, 0xFF, 0xE1, 0x93, + 0x18, 0xFF, 0xE2, 0x92, 0x17, 0xFF, 0xE1, 0x91, 0x16, 0xFF, 0xE0, 0x90, 0x16, 0xFF, 0xDF, 0x8F, 0x15, 0xFF, 0xDE, + 0x8F, 0x14, 0xFF, 0xDF, 0x8E, 0x14, 0xFF, 0xE1, 0x8E, 0x14, 0xFF, 0xE0, 0x8C, 0x12, 0xFF, 0xE0, 0x8A, 0x10, 0xFF, + 0xDE, 0x88, 0x10, 0xFF, 0xDC, 0x86, 0x10, 0xFF, 0xE3, 0x8E, 0x17, 0xFF, 0xDB, 0x87, 0x0D, 0xFF, 0xDB, 0x86, 0x0E, + 0xFF, 0xDC, 0x86, 0x0F, 0xFF, 0xDC, 0x85, 0x0E, 0xFF, 0xDB, 0x83, 0x0E, 0xFF, 0xDB, 0x83, 0x0E, 0xFF, 0xDB, 0x83, + 0x0E, 0xFF, 0xDB, 0x83, 0x0E, 0xFF, 0xEA, 0xB0, 0x36, 0xFF, 0xEF, 0xB3, 0x36, 0xFF, 0xED, 0xAE, 0x2E, 0xFF, 0xEC, + 0xAD, 0x2C, 0xFF, 0xEB, 0xAD, 0x2A, 0xFF, 0xEF, 0xB3, 0x40, 0xFF, 0xE9, 0xAA, 0x28, 0xFF, 0xE7, 0xAB, 0x2B, 0xFF, + 0xE6, 0xAB, 0x2F, 0xFF, 0xE6, 0xAA, 0x30, 0xFF, 0xE5, 0xAA, 0x31, 0xFF, 0xE6, 0xA9, 0x2E, 0xFF, 0xE7, 0xA9, 0x2B, + 0xFF, 0xEB, 0xA7, 0x24, 0xFF, 0x5F, 0x6A, 0x93, 0xFF, 0x05, 0x3D, 0xFF, 0xFF, 0x17, 0x56, 0xF9, 0xFF, 0x12, 0x72, + 0xE2, 0xFF, 0x29, 0x72, 0xF8, 0xFF, 0x27, 0x74, 0xF7, 0xFF, 0x25, 0x76, 0xF6, 0xFF, 0x28, 0x76, 0xF1, 0xFF, 0x2A, + 0x70, 0xF8, 0xFF, 0x2D, 0x77, 0xF8, 0xFF, 0x30, 0x7D, 0xF9, 0xFF, 0x2D, 0x7F, 0xF7, 0xFF, 0x2A, 0x81, 0xF5, 0xFF, + 0x2B, 0x7B, 0xF5, 0xFF, 0x2C, 0x75, 0xF5, 0xFF, 0x2B, 0x6A, 0xFD, 0xFF, 0x2A, 0x64, 0xFA, 0xFF, 0x2C, 0x5D, 0xF5, + 0xFF, 0x2E, 0x57, 0xF0, 0xFF, 0x10, 0x48, 0xFF, 0xFF, 0x0E, 0x45, 0xFF, 0xFF, 0x7F, 0x76, 0x80, 0xFF, 0xF0, 0xA7, + 0x02, 0xFF, 0xEA, 0x95, 0x24, 0xFF, 0xE3, 0x9A, 0x19, 0xFF, 0xE4, 0x98, 0x1B, 0xFF, 0xE4, 0x95, 0x1D, 0xFF, 0xE2, + 0x95, 0x1B, 0xFF, 0xDF, 0x96, 0x19, 0xFF, 0xE1, 0x94, 0x18, 0xFF, 0xE2, 0x93, 0x17, 0xFF, 0xE2, 0x92, 0x16, 0xFF, + 0xE1, 0x92, 0x16, 0xFF, 0xE0, 0x91, 0x15, 0xFF, 0xDF, 0x90, 0x15, 0xFF, 0xE0, 0x90, 0x15, 0xFF, 0xE2, 0x91, 0x15, + 0xFF, 0xE1, 0x8E, 0x12, 0xFF, 0xDF, 0x8C, 0x0F, 0xFF, 0xDF, 0x8B, 0x12, 0xFF, 0xDF, 0x8A, 0x14, 0xFF, 0xE2, 0x8D, + 0x15, 0xFF, 0xDC, 0x89, 0x0E, 0xFF, 0xDC, 0x88, 0x0E, 0xFF, 0xDD, 0x87, 0x0F, 0xFF, 0xDC, 0x86, 0x0E, 0xFF, 0xDC, + 0x85, 0x0E, 0xFF, 0xDC, 0x85, 0x0E, 0xFF, 0xDC, 0x85, 0x0E, 0xFF, 0xDC, 0x85, 0x0E, 0xFF, 0xE6, 0xC0, 0x5F, 0xFF, + 0xE8, 0xBE, 0x57, 0xFF, 0xE9, 0xBB, 0x4F, 0xFF, 0xE6, 0xBA, 0x4E, 0xFF, 0xE3, 0xB9, 0x4D, 0xFF, 0xED, 0xB6, 0x50, + 0xFF, 0xE7, 0xAE, 0x2D, 0xFF, 0xE6, 0xAC, 0x2E, 0xFF, 0xE4, 0xAB, 0x2E, 0xFF, 0xE6, 0xAC, 0x2E, 0xFF, 0xE8, 0xAD, + 0x2E, 0xFF, 0xE7, 0xAB, 0x2D, 0xFF, 0xE5, 0xAA, 0x2C, 0xFF, 0xFF, 0xB2, 0x15, 0xFF, 0x10, 0x42, 0xEB, 0xFF, 0x16, + 0x4F, 0xF1, 0xFF, 0x1C, 0x5C, 0xF7, 0xFF, 0x23, 0x71, 0xF8, 0xFF, 0x29, 0x85, 0xF9, 0xFF, 0x2D, 0x88, 0xF6, 0xFF, + 0x30, 0x8B, 0xF3, 0xFF, 0x31, 0x85, 0xF4, 0xFF, 0x33, 0x7F, 0xF4, 0xFF, 0x35, 0x85, 0xF6, 0xFF, 0x37, 0x8B, 0xF9, + 0xFF, 0x38, 0x8D, 0xF8, 0xFF, 0x3A, 0x90, 0xF7, 0xFF, 0x37, 0x8B, 0xF8, 0xFF, 0x35, 0x86, 0xF8, 0xFF, 0x35, 0x7E, + 0xF7, 0xFF, 0x35, 0x75, 0xF6, 0xFF, 0x33, 0x6D, 0xF7, 0xFF, 0x31, 0x64, 0xF7, 0xFF, 0x31, 0x5E, 0xF8, 0xFF, 0x30, + 0x57, 0xF8, 0xFF, 0x25, 0x51, 0xFF, 0xFF, 0x36, 0x51, 0xF5, 0xFF, 0xFD, 0xA4, 0x03, 0xFF, 0xE1, 0x9A, 0x1E, 0xFF, + 0xE3, 0x98, 0x1E, 0xFF, 0xE5, 0x96, 0x1E, 0xFF, 0xE2, 0x96, 0x1C, 0xFF, 0xDF, 0x97, 0x19, 0xFF, 0xE1, 0x96, 0x18, + 0xFF, 0xE3, 0x95, 0x17, 0xFF, 0xE2, 0x94, 0x16, 0xFF, 0xE1, 0x93, 0x16, 0xFF, 0xE0, 0x92, 0x16, 0xFF, 0xE0, 0x91, + 0x15, 0xFF, 0xE2, 0x92, 0x16, 0xFF, 0xE4, 0x93, 0x16, 0xFF, 0xE1, 0x90, 0x12, 0xFF, 0xDF, 0x8E, 0x0F, 0xFF, 0xE1, + 0x8D, 0x14, 0xFF, 0xE3, 0x8D, 0x18, 0xFF, 0xE0, 0x8C, 0x13, 0xFF, 0xDE, 0x8B, 0x0F, 0xFF, 0xDD, 0x89, 0x0F, 0xFF, + 0xDD, 0x88, 0x0E, 0xFF, 0xDD, 0x87, 0x0E, 0xFF, 0xDC, 0x86, 0x0E, 0xFF, 0xDC, 0x86, 0x0E, 0xFF, 0xDC, 0x86, 0x0E, + 0xFF, 0xDC, 0x86, 0x0E, 0xFF, 0xED, 0xB6, 0x3C, 0xFF, 0xEE, 0xB3, 0x35, 0xFF, 0xEF, 0xB1, 0x2F, 0xFF, 0xED, 0xB1, + 0x2F, 0xFF, 0xEC, 0xB0, 0x2F, 0xFF, 0xEE, 0xB0, 0x38, 0xFF, 0xE9, 0xAE, 0x2D, 0xFF, 0xE7, 0xAD, 0x2F, 0xFF, 0xE6, + 0xAD, 0x30, 0xFF, 0xE8, 0xAE, 0x2F, 0xFF, 0xEA, 0xB0, 0x2D, 0xFF, 0xEC, 0xAD, 0x30, 0xFF, 0xEE, 0xAF, 0x28, 0xFF, + 0xC8, 0xA9, 0x2F, 0xFF, 0x04, 0x3D, 0xFF, 0xFF, 0x19, 0x50, 0xFA, 0xFF, 0x21, 0x5F, 0xF8, 0xFF, 0x28, 0x73, 0xF7, + 0xFF, 0x2F, 0x87, 0xF7, 0xFF, 0x37, 0x95, 0xFA, 0xFF, 0x37, 0x9B, 0xF5, 0xFF, 0x3A, 0x96, 0xF5, 0xFF, 0x3D, 0x92, + 0xF5, 0xFF, 0x3F, 0x94, 0xF7, 0xFF, 0x41, 0x96, 0xF9, 0xFF, 0x43, 0x99, 0xF9, 0xFF, 0x46, 0x9D, 0xF9, 0xFF, 0x44, + 0x98, 0xF8, 0xFF, 0x43, 0x94, 0xF7, 0xFF, 0x42, 0x8D, 0xF8, 0xFF, 0x41, 0x86, 0xF9, 0xFF, 0x3F, 0x7D, 0xF9, 0xFF, + 0x3C, 0x73, 0xF9, 0xFF, 0x38, 0x70, 0xF7, 0xFF, 0x35, 0x6C, 0xF4, 0xFF, 0x21, 0x60, 0xFF, 0xFF, 0x62, 0x6C, 0xBE, + 0xFF, 0xEF, 0x9D, 0x12, 0xFF, 0xE8, 0x9A, 0x21, 0xFF, 0xED, 0x99, 0x1C, 0xFF, 0xE3, 0x9B, 0x17, 0xFF, 0xF0, 0x98, + 0x13, 0xFF, 0xE0, 0x94, 0x1B, 0xFF, 0xE1, 0x96, 0x1A, 0xFF, 0xE3, 0x97, 0x19, 0xFF, 0xE4, 0x96, 0x18, 0xFF, 0xE5, + 0x95, 0x17, 0xFF, 0xE3, 0x94, 0x18, 0xFF, 0xE2, 0x93, 0x19, 0xFF, 0xE0, 0x91, 0x16, 0xFF, 0xDE, 0x90, 0x14, 0xFF, + 0xE1, 0x91, 0x15, 0xFF, 0xE5, 0x92, 0x16, 0xFF, 0xE3, 0x90, 0x14, 0xFF, 0xE2, 0x8D, 0x11, 0xFF, 0xE2, 0x8D, 0x10, + 0xFF, 0xE3, 0x8D, 0x0F, 0xFF, 0xDE, 0x8A, 0x10, 0xFF, 0xD8, 0x88, 0x11, 0xFF, 0xE1, 0x87, 0x0E, 0xFF, 0xDC, 0x89, + 0x0B, 0xFF, 0xE0, 0x85, 0x10, 0xFF, 0xE4, 0x87, 0x09, 0xFF, 0xE4, 0x87, 0x09, 0xFF, 0xE8, 0xB5, 0x3F, 0xFF, 0xE9, + 0xB3, 0x3B, 0xFF, 0xEA, 0xB2, 0x36, 0xFF, 0xE9, 0xB1, 0x37, 0xFF, 0xE8, 0xB1, 0x37, 0xFF, 0xE9, 0xAF, 0x32, 0xFF, + 0xEA, 0xAE, 0x2D, 0xFF, 0xE9, 0xAE, 0x30, 0xFF, 0xE8, 0xAF, 0x32, 0xFF, 0xEA, 0xB1, 0x30, 0xFF, 0xEC, 0xB4, 0x2D, + 0xFF, 0xF1, 0xAE, 0x34, 0xFF, 0xF6, 0xB4, 0x24, 0xFF, 0x86, 0x7E, 0x8D, 0xFF, 0x00, 0x4E, 0xF6, 0xFF, 0x1D, 0x5C, + 0xEC, 0xFF, 0x25, 0x63, 0xF9, 0xFF, 0x2D, 0x76, 0xF7, 0xFF, 0x35, 0x89, 0xF4, 0xFF, 0x41, 0xA2, 0xFD, 0xFF, 0x3E, + 0xAB, 0xF6, 0xFF, 0x43, 0xA8, 0xF6, 0xFF, 0x47, 0xA4, 0xF7, 0xFF, 0x4A, 0xA3, 0xF8, 0xFF, 0x4C, 0xA1, 0xFA, 0xFF, + 0x4E, 0xA5, 0xFA, 0xFF, 0x51, 0xAA, 0xFB, 0xFF, 0x52, 0xA6, 0xF9, 0xFF, 0x52, 0xA2, 0xF7, 0xFF, 0x4F, 0x9C, 0xFA, + 0xFF, 0x4D, 0x97, 0xFD, 0xFF, 0x4A, 0x8D, 0xFC, 0xFF, 0x47, 0x83, 0xFB, 0xFF, 0x40, 0x82, 0xF6, 0xFF, 0x39, 0x82, + 0xF1, 0xFF, 0x2B, 0x72, 0xF4, 0xFF, 0xAB, 0x8C, 0x71, 0xFF, 0xF0, 0x99, 0x16, 0xFF, 0xEF, 0x99, 0x25, 0xFF, 0xE8, + 0x97, 0x25, 0xFF, 0xC5, 0x9A, 0x26, 0xFF, 0xF0, 0x96, 0x16, 0xFF, 0xE2, 0x91, 0x1C, 0xFF, 0xE2, 0x96, 0x1B, 0xFF, + 0xE2, 0x9A, 0x1B, 0xFF, 0xE5, 0x99, 0x19, 0xFF, 0xE8, 0x98, 0x18, 0xFF, 0xE6, 0x96, 0x1A, 0xFF, 0xE4, 0x95, 0x1C, + 0xFF, 0xDF, 0x91, 0x17, 0xFF, 0xD9, 0x8D, 0x13, 0xFF, 0xE2, 0x92, 0x18, 0xFF, 0xEA, 0x97, 0x1E, 0xFF, 0xE5, 0x92, + 0x14, 0xFF, 0xE1, 0x8D, 0x0B, 0xFF, 0xE5, 0x8E, 0x0D, 0xFF, 0xE9, 0x8F, 0x10, 0xFF, 0xDE, 0x8B, 0x12, 0xFF, 0xD4, + 0x88, 0x14, 0xFF, 0xE6, 0x87, 0x0E, 0xFF, 0xDC, 0x8C, 0x08, 0xFF, 0xE4, 0x84, 0x11, 0xFF, 0xEC, 0x88, 0x03, 0xFF, + 0xEC, 0x88, 0x03, 0xFF, 0xEA, 0xB6, 0x3D, 0xFF, 0xEA, 0xB5, 0x3A, 0xFF, 0xEB, 0xB4, 0x38, 0xFF, 0xEB, 0xB3, 0x37, + 0xFF, 0xEA, 0xB3, 0x37, 0xFF, 0xEB, 0xB2, 0x34, 0xFF, 0xEB, 0xB1, 0x32, 0xFF, 0xEB, 0xB1, 0x33, 0xFF, 0xEA, 0xB0, + 0x34, 0xFF, 0xE9, 0xB3, 0x32, 0xFF, 0xE8, 0xB5, 0x2F, 0xFF, 0xF0, 0xB0, 0x34, 0xFF, 0xF8, 0xB6, 0x22, 0xFF, 0x44, + 0x60, 0xC5, 0xFF, 0x0B, 0x53, 0xF9, 0xFF, 0x21, 0x63, 0xF2, 0xFF, 0x29, 0x6F, 0xF6, 0xFF, 0x2F, 0x7D, 0xF6, 0xFF, + 0x35, 0x8A, 0xF7, 0xFF, 0x41, 0xA1, 0xFA, 0xFF, 0x45, 0xAF, 0xF6, 0xFF, 0x4F, 0xB4, 0xFA, 0xFF, 0x50, 0xB0, 0xF6, + 0xFF, 0x53, 0xAE, 0xF8, 0xFF, 0x56, 0xAC, 0xFA, 0xFF, 0x59, 0xB2, 0xFC, 0xFF, 0x5D, 0xB7, 0xFD, 0xFF, 0x5F, 0xB3, + 0xFA, 0xFF, 0x61, 0xAF, 0xF6, 0xFF, 0x5D, 0xAC, 0xF9, 0xFF, 0x59, 0xA9, 0xFD, 0xFF, 0x55, 0x9F, 0xFB, 0xFF, 0x50, + 0x94, 0xF8, 0xFF, 0x4A, 0x91, 0xF7, 0xFF, 0x44, 0x8D, 0xF5, 0xFF, 0x22, 0x7D, 0xFF, 0xFF, 0xEF, 0xA5, 0x1A, 0xFF, + 0xF3, 0x9E, 0x12, 0xFF, 0xF1, 0x96, 0x28, 0xFF, 0xB0, 0x9F, 0x22, 0xFF, 0x00, 0x96, 0x6C, 0xFF, 0x82, 0x9B, 0x3B, + 0xFF, 0xF8, 0x9D, 0x16, 0xFF, 0xF4, 0x9B, 0x15, 0xFF, 0xE2, 0x9C, 0x14, 0xFF, 0xE4, 0x99, 0x15, 0xFF, 0xE6, 0x96, + 0x17, 0xFF, 0xE5, 0x95, 0x18, 0xFF, 0xE4, 0x93, 0x1A, 0xFF, 0xE2, 0x93, 0x18, 0xFF, 0xE0, 0x92, 0x16, 0xFF, 0xE6, + 0x98, 0x1C, 0xFF, 0xE4, 0x95, 0x19, 0xFF, 0xE4, 0x92, 0x16, 0xFF, 0xE5, 0x8F, 0x12, 0xFF, 0xEB, 0x8C, 0x12, 0xFF, + 0xE3, 0x8B, 0x12, 0xFF, 0xE3, 0x87, 0x00, 0xFF, 0xF4, 0x7B, 0x00, 0xFF, 0xD3, 0x86, 0x1A, 0xFF, 0xF0, 0x8C, 0x0C, + 0xFF, 0xE2, 0x8E, 0x00, 0xFF, 0xEA, 0x84, 0x0D, 0xFF, 0xF1, 0x86, 0x07, 0xFF, 0xEC, 0xB7, 0x3B, 0xFF, 0xEC, 0xB6, + 0x3A, 0xFF, 0xEC, 0xB6, 0x39, 0xFF, 0xEC, 0xB5, 0x38, 0xFF, 0xED, 0xB5, 0x37, 0xFF, 0xEC, 0xB4, 0x37, 0xFF, 0xEC, + 0xB4, 0x37, 0xFF, 0xEC, 0xB3, 0x36, 0xFF, 0xEC, 0xB2, 0x36, 0xFF, 0xE8, 0xB4, 0x33, 0xFF, 0xE4, 0xB5, 0x31, 0xFF, + 0xEF, 0xB1, 0x34, 0xFF, 0xF9, 0xB8, 0x21, 0xFF, 0x02, 0x41, 0xFD, 0xFF, 0x1E, 0x58, 0xFC, 0xFF, 0x25, 0x6A, 0xF8, + 0xFF, 0x2C, 0x7C, 0xF3, 0xFF, 0x31, 0x84, 0xF6, 0xFF, 0x35, 0x8B, 0xF9, 0xFF, 0x41, 0xA0, 0xF7, 0xFF, 0x4C, 0xB4, + 0xF6, 0xFF, 0x5B, 0xC0, 0xFE, 0xFF, 0x59, 0xBC, 0xF6, 0xFF, 0x5D, 0xBA, 0xF8, 0xFF, 0x60, 0xB7, 0xFA, 0xFF, 0x64, + 0xBE, 0xFD, 0xFF, 0x69, 0xC4, 0xFF, 0xFF, 0x6C, 0xC0, 0xFA, 0xFF, 0x6F, 0xBD, 0xF5, 0xFF, 0x6A, 0xBC, 0xF9, 0xFF, + 0x65, 0xBB, 0xFD, 0xFF, 0x60, 0xB1, 0xFA, 0xFF, 0x5A, 0xA6, 0xF6, 0xFF, 0x54, 0x9F, 0xF8, 0xFF, 0x4F, 0x98, 0xFA, + 0xFF, 0x6E, 0x94, 0xDF, 0xFF, 0xFB, 0xA6, 0x07, 0xFF, 0xDA, 0x9C, 0x24, 0xFF, 0xF2, 0x9F, 0x14, 0xFF, 0x71, 0xA1, + 0x4A, 0xFF, 0x0D, 0xA9, 0x68, 0xFF, 0x06, 0xA3, 0x61, 0xFF, 0x1B, 0x98, 0x5A, 0xFF, 0x9B, 0x96, 0x33, 0xFF, 0xFE, + 0x99, 0x0D, 0xFF, 0xF1, 0x96, 0x11, 0xFF, 0xE4, 0x94, 0x16, 0xFF, 0xE4, 0x93, 0x17, 0xFF, 0xE4, 0x91, 0x18, 0xFF, + 0xE5, 0x94, 0x19, 0xFF, 0xE6, 0x98, 0x1A, 0xFF, 0xEA, 0x9D, 0x1F, 0xFF, 0xDE, 0x93, 0x15, 0xFF, 0xE3, 0x92, 0x17, + 0xFF, 0xE8, 0x91, 0x1A, 0xFF, 0xEB, 0x94, 0x1F, 0xFF, 0xD1, 0x9D, 0x25, 0xFF, 0x72, 0xF7, 0xD0, 0xFF, 0x95, 0xF2, + 0xC1, 0xFF, 0xF0, 0x83, 0x00, 0xFF, 0xA0, 0x81, 0x17, 0xFF, 0x2E, 0x7E, 0x3B, 0xFF, 0xCB, 0x87, 0x16, 0xFF, 0xDA, + 0x8A, 0x0B, 0xFF, 0xEC, 0xB8, 0x3D, 0xFF, 0xED, 0xB8, 0x3C, 0xFF, 0xED, 0xB7, 0x3B, 0xFF, 0xED, 0xB7, 0x3A, 0xFF, + 0xED, 0xB6, 0x39, 0xFF, 0xED, 0xB6, 0x39, 0xFF, 0xED, 0xB6, 0x39, 0xFF, 0xED, 0xB6, 0x39, 0xFF, 0xED, 0xB6, 0x39, + 0xFF, 0xEC, 0xB4, 0x37, 0xFF, 0xEB, 0xB2, 0x34, 0xFF, 0xF2, 0xAB, 0x34, 0xFF, 0xB3, 0x95, 0x6D, 0xFF, 0x00, 0x46, + 0xFF, 0xFF, 0x20, 0x64, 0xF7, 0xFF, 0x28, 0x73, 0xF6, 0xFF, 0x30, 0x81, 0xF5, 0xFF, 0x37, 0x8B, 0xF6, 0xFF, 0x3D, + 0x94, 0xF8, 0xFF, 0x48, 0xA6, 0xF8, 0xFF, 0x53, 0xB7, 0xF7, 0xFF, 0x60, 0xC2, 0xFB, 0xFF, 0x65, 0xC4, 0xF7, 0xFF, + 0x69, 0xC3, 0xF9, 0xFF, 0x6D, 0xC2, 0xFA, 0xFF, 0x72, 0xC6, 0xFA, 0xFF, 0x77, 0xCB, 0xFA, 0xFF, 0x7A, 0xCB, 0xFB, + 0xFF, 0x7D, 0xCB, 0xFC, 0xFF, 0x7A, 0xC8, 0xFA, 0xFF, 0x77, 0xC5, 0xF8, 0xFF, 0x72, 0xBC, 0xF9, 0xFF, 0x6C, 0xB4, + 0xFA, 0xFF, 0x68, 0xB0, 0xF6, 0xFF, 0x56, 0xAA, 0xFD, 0xFF, 0xA5, 0xA0, 0x93, 0xFF, 0xF3, 0xA1, 0x13, 0xFF, 0xEF, + 0x9C, 0x21, 0xFF, 0xFF, 0x9D, 0x19, 0xFF, 0x23, 0xC1, 0x71, 0xFF, 0x25, 0xB7, 0x79, 0xFF, 0x1D, 0xB2, 0x71, 0xFF, + 0x23, 0xAA, 0x6A, 0xFF, 0x25, 0xA0, 0x66, 0xFF, 0x18, 0x9A, 0x63, 0xFF, 0x72, 0x9C, 0x41, 0xFF, 0xCB, 0x9F, 0x1E, + 0xFF, 0xFF, 0x93, 0x18, 0xFF, 0xF1, 0x98, 0x13, 0xFF, 0xF4, 0x9C, 0x18, 0xFF, 0xF7, 0xA0, 0x1D, 0xFF, 0xFF, 0x9C, + 0x1B, 0xFF, 0xF6, 0x93, 0x10, 0xFF, 0xF1, 0x93, 0x11, 0xFF, 0xEC, 0x93, 0x13, 0xFF, 0xFF, 0x83, 0x00, 0xFF, 0xA0, + 0xCB, 0x72, 0xFF, 0x81, 0xF9, 0xCB, 0xFF, 0xAC, 0xFF, 0xD0, 0xFF, 0x45, 0xA0, 0x78, 0xFF, 0x00, 0x77, 0x33, 0xFF, + 0x02, 0x7C, 0x3A, 0xFF, 0xE2, 0x8C, 0x0D, 0xFF, 0xDB, 0x8E, 0x0D, 0xFF, 0xED, 0xBA, 0x3E, 0xFF, 0xED, 0xB9, 0x3D, + 0xFF, 0xED, 0xB9, 0x3C, 0xFF, 0xED, 0xB8, 0x3B, 0xFF, 0xED, 0xB8, 0x3A, 0xFF, 0xED, 0xB8, 0x3B, 0xFF, 0xED, 0xB8, + 0x3B, 0xFF, 0xEE, 0xB8, 0x3C, 0xFF, 0xEE, 0xB9, 0x3C, 0xFF, 0xF0, 0xB4, 0x3A, 0xFF, 0xF2, 0xAE, 0x37, 0xFF, 0xFE, + 0xB3, 0x32, 0xFF, 0x7C, 0x8E, 0xB3, 0xFF, 0x06, 0x58, 0xFF, 0xFF, 0x22, 0x71, 0xF3, 0xFF, 0x2B, 0x7C, 0xF4, 0xFF, + 0x34, 0x86, 0xF6, 0xFF, 0x3D, 0x92, 0xF7, 0xFF, 0x45, 0x9D, 0xF8, 0xFF, 0x4F, 0xAC, 0xF8, 0xFF, 0x5A, 0xBB, 0xF8, + 0xFF, 0x65, 0xC4, 0xF9, 0xFF, 0x70, 0xCC, 0xF9, 0xFF, 0x75, 0xCC, 0xFA, 0xFF, 0x7A, 0xCC, 0xFA, 0xFF, 0x80, 0xCF, + 0xF7, 0xFF, 0x85, 0xD2, 0xF4, 0xFF, 0x89, 0xD5, 0xFB, 0xFF, 0x8C, 0xD9, 0xFF, 0xFF, 0x8B, 0xD3, 0xFA, 0xFF, 0x89, + 0xCE, 0xF2, 0xFF, 0x84, 0xC8, 0xF8, 0xFF, 0x7F, 0xC1, 0xFE, 0xFF, 0x7C, 0xC1, 0xF4, 0xFF, 0x5E, 0xBC, 0xFF, 0xFF, + 0xDB, 0xAB, 0x47, 0xFF, 0xEA, 0x9C, 0x1E, 0xFF, 0xE8, 0xA2, 0x1D, 0xFF, 0xE5, 0xA7, 0x1D, 0xFF, 0x1B, 0xD3, 0x98, + 0xFF, 0x21, 0xCB, 0x8A, 0xFF, 0x26, 0xC3, 0x82, 0xFF, 0x2C, 0xBB, 0x7A, 0xFF, 0x28, 0xB4, 0x75, 0xFF, 0x25, 0xAD, + 0x70, 0xFF, 0x16, 0xAB, 0x6D, 0xFF, 0x08, 0xA9, 0x6A, 0xFF, 0x11, 0xA9, 0x5E, 0xFF, 0x53, 0x9E, 0x51, 0xFF, 0x6D, + 0x9B, 0x47, 0xFF, 0x87, 0x97, 0x3E, 0xFF, 0x91, 0x95, 0x3B, 0xFF, 0x80, 0x98, 0x38, 0xFF, 0x63, 0x96, 0x44, 0xFF, + 0x45, 0x94, 0x4F, 0xFF, 0x3C, 0xB4, 0x82, 0xFF, 0x1B, 0x84, 0x4F, 0xFF, 0x87, 0xE0, 0xAF, 0xFF, 0x82, 0xCC, 0x9E, + 0xFF, 0x11, 0x7F, 0x35, 0xFF, 0x1B, 0x82, 0x42, 0xFF, 0x3B, 0x84, 0x32, 0xFF, 0xF9, 0x92, 0x04, 0xFF, 0xDC, 0x92, + 0x0F, 0xFF, 0xEE, 0xBC, 0x40, 0xFF, 0xED, 0xBB, 0x3F, 0xFF, 0xED, 0xBA, 0x3E, 0xFF, 0xED, 0xBA, 0x3D, 0xFF, 0xEC, + 0xB9, 0x3C, 0xFF, 0xEC, 0xB9, 0x3C, 0xFF, 0xEC, 0xB8, 0x3C, 0xFF, 0xEC, 0xB8, 0x3C, 0xFF, 0xEB, 0xB8, 0x3C, 0xFF, + 0xF0, 0xB3, 0x3F, 0xFF, 0xF4, 0xAF, 0x42, 0xFF, 0xE8, 0xBA, 0x0D, 0xFF, 0x96, 0xB8, 0xFF, 0xFF, 0x4C, 0x81, 0xF6, + 0xFF, 0x22, 0x75, 0xF5, 0xFF, 0x2D, 0x80, 0xF6, 0xFF, 0x38, 0x8B, 0xF7, 0xFF, 0x42, 0x99, 0xF7, 0xFF, 0x4D, 0xA6, + 0xF7, 0xFF, 0x56, 0xB2, 0xF8, 0xFF, 0x5F, 0xBD, 0xF9, 0xFF, 0x6D, 0xC8, 0xF9, 0xFF, 0x7A, 0xD4, 0xFA, 0xFF, 0x81, + 0xD5, 0xFA, 0xFF, 0x88, 0xD7, 0xF9, 0xFF, 0x8D, 0xD8, 0xFA, 0xFF, 0x92, 0xDA, 0xFB, 0xFF, 0xA1, 0xE4, 0xF9, 0xFF, + 0x91, 0xD6, 0xFE, 0xFF, 0x9F, 0xDE, 0xFA, 0xFF, 0x97, 0xDB, 0xF8, 0xFF, 0x93, 0xD5, 0xF9, 0xFF, 0x8F, 0xCF, 0xFB, + 0xFF, 0x85, 0xD1, 0xFF, 0xFF, 0x78, 0xC6, 0xFF, 0xFF, 0xFC, 0x9A, 0x00, 0xFF, 0xF1, 0xA8, 0x26, 0xFF, 0xF8, 0xA4, + 0x1F, 0xFF, 0xA5, 0xBD, 0x53, 0xFF, 0x30, 0xDA, 0xA4, 0xFF, 0x37, 0xD5, 0x9D, 0xFF, 0x3A, 0xD0, 0x97, 0xFF, 0x3D, + 0xCA, 0x90, 0xFF, 0x39, 0xC5, 0x8A, 0xFF, 0x35, 0xBF, 0x84, 0xFF, 0x30, 0xBD, 0x7C, 0xFF, 0x2C, 0xBC, 0x74, 0xFF, + 0x1B, 0xB8, 0x75, 0xFF, 0x27, 0xAF, 0x77, 0xFF, 0x25, 0xAB, 0x72, 0xFF, 0x23, 0xA7, 0x6D, 0xFF, 0x28, 0xA3, 0x6A, + 0xFF, 0x1E, 0xA2, 0x68, 0xFF, 0x19, 0x95, 0x57, 0xFF, 0x45, 0xB7, 0x77, 0xFF, 0x81, 0xF0, 0xBA, 0xFF, 0x4C, 0xAC, + 0x72, 0xFF, 0x14, 0x7B, 0x41, 0xFF, 0x1D, 0x8A, 0x4F, 0xFF, 0x1C, 0x86, 0x42, 0xFF, 0x14, 0x86, 0x49, 0xFF, 0x8B, + 0x86, 0x16, 0xFF, 0xF5, 0x90, 0x0A, 0xFF, 0xE7, 0x8D, 0x15, 0xFF, 0xEF, 0xBE, 0x41, 0xFF, 0xEE, 0xBD, 0x40, 0xFF, + 0xED, 0xBC, 0x3F, 0xFF, 0xED, 0xBB, 0x3E, 0xFF, 0xEC, 0xBA, 0x3D, 0xFF, 0xEB, 0xBA, 0x3D, 0xFF, 0xEA, 0xB9, 0x3C, + 0xFF, 0xE9, 0xB8, 0x3C, 0xFF, 0xE8, 0xB7, 0x3B, 0xFF, 0xF0, 0xB9, 0x39, 0xFF, 0xF7, 0xBA, 0x37, 0xFF, 0xDC, 0xB5, + 0x50, 0xFF, 0x44, 0x96, 0xFF, 0xFF, 0x9C, 0xC4, 0xFE, 0xFF, 0x23, 0x79, 0xF7, 0xFF, 0x30, 0x85, 0xF8, 0xFF, 0x3C, + 0x91, 0xF8, 0xFF, 0x48, 0xA0, 0xF8, 0xFF, 0x55, 0xAF, 0xF7, 0xFF, 0x5D, 0xB7, 0xF8, 0xFF, 0x65, 0xBF, 0xF9, 0xFF, + 0x75, 0xCD, 0xFA, 0xFF, 0x85, 0xDB, 0xFB, 0xFF, 0x8D, 0xDE, 0xFA, 0xFF, 0x95, 0xE1, 0xF9, 0xFF, 0x9A, 0xE1, 0xFD, + 0xFF, 0xA0, 0xE2, 0xFF, 0xFF, 0xA3, 0xE8, 0xFA, 0xFF, 0x6B, 0xBD, 0xFF, 0xFF, 0x9E, 0xDE, 0xFC, 0xFF, 0xA6, 0xE8, + 0xFF, 0xFF, 0xA3, 0xE3, 0xFB, 0xFF, 0xA0, 0xDE, 0xF7, 0xFF, 0x99, 0xD7, 0xFD, 0xFF, 0xAB, 0xBD, 0xB5, 0xFF, 0xF0, + 0x9F, 0x11, 0xFF, 0xE8, 0xA3, 0x1D, 0xFF, 0xFF, 0x9E, 0x19, 0xFF, 0x65, 0xD4, 0x89, 0xFF, 0x45, 0xE1, 0xB0, 0xFF, + 0x4D, 0xDF, 0xB0, 0xFF, 0x4D, 0xDC, 0xAB, 0xFF, 0x4D, 0xD8, 0xA7, 0xFF, 0x49, 0xD5, 0xA0, 0xFF, 0x44, 0xD2, 0x99, + 0xFF, 0x3C, 0xCD, 0x97, 0xFF, 0x34, 0xC9, 0x94, 0xFF, 0x34, 0xC4, 0x8D, 0xFF, 0x33, 0xC0, 0x86, 0xFF, 0x32, 0xBC, + 0x7A, 0xFF, 0x31, 0xB7, 0x6E, 0xFF, 0x2F, 0xB2, 0x6D, 0xFF, 0x2E, 0xAE, 0x6B, 0xFF, 0x3F, 0xB9, 0x7D, 0xFF, 0x30, + 0xA5, 0x6F, 0xFF, 0x4E, 0xB5, 0x7B, 0xFF, 0x20, 0x9A, 0x56, 0xFF, 0x2A, 0x9F, 0x5B, 0xFF, 0x24, 0x93, 0x50, 0xFF, + 0x65, 0xB9, 0x80, 0xFF, 0x1C, 0x99, 0x5F, 0xFF, 0xE2, 0x8F, 0x03, 0xFF, 0xF2, 0x8E, 0x10, 0xFF, 0xF2, 0x88, 0x1B, + 0xFF, 0xEF, 0xBF, 0x43, 0xFF, 0xEE, 0xBE, 0x42, 0xFF, 0xEE, 0xBD, 0x41, 0xFF, 0xEE, 0xBD, 0x40, 0xFF, 0xED, 0xBC, + 0x3F, 0xFF, 0xEC, 0xBB, 0x3F, 0xFF, 0xEB, 0xB9, 0x3F, 0xFF, 0xEC, 0xB9, 0x3D, 0xFF, 0xEE, 0xB8, 0x3C, 0xFF, 0xEB, + 0xB8, 0x37, 0xFF, 0xF6, 0xBC, 0x26, 0xFF, 0x8F, 0x9B, 0x94, 0xFF, 0x37, 0x96, 0xFB, 0xFF, 0x7C, 0xBB, 0xF9, 0xFF, + 0x85, 0xB5, 0xF8, 0xFF, 0x49, 0x99, 0xF6, 0xFF, 0x42, 0x9B, 0xF5, 0xFF, 0x4E, 0xA6, 0xF6, 0xFF, 0x59, 0xB2, 0xF7, + 0xFF, 0x65, 0xBC, 0xF8, 0xFF, 0x72, 0xC6, 0xF9, 0xFF, 0x7F, 0xD3, 0xF9, 0xFF, 0x8D, 0xE0, 0xFA, 0xFF, 0x97, 0xE5, + 0xF9, 0xFF, 0xA1, 0xEB, 0xF8, 0xFF, 0xA6, 0xEA, 0xFE, 0xFF, 0xAA, 0xEA, 0xFF, 0xFF, 0xA8, 0xEE, 0xFC, 0xFF, 0x62, + 0xBA, 0xF9, 0xFF, 0x98, 0xDC, 0xFA, 0xFF, 0xB9, 0xF3, 0xFE, 0xFF, 0xB2, 0xEC, 0xFB, 0xFF, 0xAB, 0xE5, 0xF7, 0xFF, + 0xA2, 0xE4, 0xFE, 0xFF, 0xD1, 0xB0, 0x64, 0xFF, 0xF0, 0x9F, 0x19, 0xFF, 0xE8, 0x9E, 0x26, 0xFF, 0xF2, 0x98, 0x03, + 0xFF, 0x50, 0xEF, 0xE3, 0xFF, 0x57, 0xEE, 0xD5, 0xFF, 0x64, 0xE3, 0xBF, 0xFF, 0x64, 0xE1, 0xBC, 0xFF, 0x64, 0xDF, + 0xB9, 0xFF, 0x5D, 0xDD, 0xB4, 0xFF, 0x56, 0xDB, 0xB0, 0xFF, 0x4E, 0xD7, 0xA9, 0xFF, 0x46, 0xD3, 0xA2, 0xFF, 0x42, + 0xD0, 0x9B, 0xFF, 0x3F, 0xCD, 0x93, 0xFF, 0x3D, 0xC9, 0x8B, 0xFF, 0x3C, 0xC5, 0x84, 0xFF, 0x39, 0xC1, 0x80, 0xFF, + 0x36, 0xBC, 0x7D, 0xFF, 0x45, 0xC7, 0x8A, 0xFF, 0x44, 0xC1, 0x88, 0xFF, 0x2B, 0xA0, 0x62, 0xFF, 0x2B, 0xA9, 0x64, + 0xFF, 0x2D, 0xA3, 0x5E, 0xFF, 0x26, 0x95, 0x4F, 0xFF, 0x98, 0xCE, 0xA4, 0xFF, 0xDC, 0xEA, 0xD8, 0xFF, 0xFF, 0xDC, + 0xB9, 0xFF, 0xF3, 0x9D, 0x38, 0xFF, 0xD3, 0x8F, 0x00, 0xFF, 0xEF, 0xC1, 0x45, 0xFF, 0xEF, 0xC0, 0x44, 0xFF, 0xEF, + 0xBF, 0x43, 0xFF, 0xEF, 0xBE, 0x41, 0xFF, 0xEF, 0xBD, 0x40, 0xFF, 0xED, 0xBC, 0x41, 0xFF, 0xEB, 0xBA, 0x42, 0xFF, + 0xEF, 0xBA, 0x3F, 0xFF, 0xF3, 0xB9, 0x3C, 0xFF, 0xE6, 0xB8, 0x34, 0xFF, 0xF6, 0xBD, 0x16, 0xFF, 0x4F, 0x7F, 0xD8, + 0xFF, 0x46, 0x90, 0xF7, 0xFF, 0x54, 0xA5, 0xF7, 0xFF, 0xBA, 0xDA, 0xFF, 0xFF, 0x4D, 0xA1, 0xF8, 0xFF, 0x49, 0xA5, + 0xF3, 0xFF, 0x53, 0xAD, 0xF4, 0xFF, 0x5D, 0xB5, 0xF6, 0xFF, 0x6E, 0xC0, 0xF8, 0xFF, 0x7F, 0xCC, 0xFA, 0xFF, 0x8A, + 0xD8, 0xF9, 0xFF, 0x95, 0xE4, 0xF8, 0xFF, 0xA1, 0xEC, 0xF8, 0xFF, 0xAE, 0xF4, 0xF7, 0xFF, 0xB2, 0xF3, 0xFE, 0xFF, + 0xB5, 0xF1, 0xFF, 0xFF, 0xAD, 0xF4, 0xFE, 0xFF, 0x59, 0xB6, 0xF3, 0xFF, 0x92, 0xDA, 0xF8, 0xFF, 0xCC, 0xFF, 0xFE, + 0xFF, 0xC1, 0xF6, 0xFA, 0xFF, 0xB6, 0xED, 0xF7, 0xFF, 0xAB, 0xF1, 0xFF, 0xFF, 0xF7, 0xA4, 0x13, 0xFF, 0xEF, 0xA4, + 0x15, 0xFF, 0xE8, 0xA5, 0x18, 0xFF, 0xCD, 0xB4, 0x56, 0xFF, 0x71, 0xF2, 0xF0, 0xFF, 0x84, 0xEF, 0xD4, 0xFF, 0x7B, + 0xE6, 0xCF, 0xFF, 0x7B, 0xE6, 0xCD, 0xFF, 0x7C, 0xE6, 0xCB, 0xFF, 0x71, 0xE5, 0xC9, 0xFF, 0x67, 0xE5, 0xC6, 0xFF, + 0x5F, 0xE1, 0xBC, 0xFF, 0x57, 0xDD, 0xB1, 0xFF, 0x51, 0xDB, 0xA8, 0xFF, 0x4B, 0xDA, 0xA0, 0xFF, 0x48, 0xD7, 0x9C, + 0xFF, 0x46, 0xD4, 0x99, 0xFF, 0x42, 0xCF, 0x94, 0xFF, 0x3E, 0xCA, 0x8F, 0xFF, 0x3B, 0xC4, 0x88, 0xFF, 0x39, 0xBE, + 0x81, 0xFF, 0x30, 0xB3, 0x72, 0xFF, 0x27, 0xA8, 0x62, 0xFF, 0x27, 0xA0, 0x58, 0xFF, 0x27, 0x97, 0x4E, 0xFF, 0x79, + 0xC4, 0x9F, 0xFF, 0xF7, 0xFB, 0xFF, 0xFF, 0xF4, 0xD2, 0x7F, 0xFF, 0xE1, 0x8E, 0x03, 0xFF, 0xE1, 0x89, 0x0E, 0xFF, + 0xEF, 0xC3, 0x47, 0xFF, 0xEF, 0xC2, 0x46, 0xFF, 0xEF, 0xC0, 0x44, 0xFF, 0xEF, 0xBF, 0x43, 0xFF, 0xF0, 0xBE, 0x41, + 0xFF, 0xEE, 0xBD, 0x42, 0xFF, 0xEC, 0xBC, 0x43, 0xFF, 0xEF, 0xBC, 0x40, 0xFF, 0xF1, 0xBB, 0x3E, 0xFF, 0xFD, 0xC0, + 0x2F, 0xFF, 0xFB, 0xBD, 0x35, 0xFF, 0x00, 0x4B, 0xF5, 0xFF, 0x52, 0x8A, 0xFF, 0xFF, 0x5D, 0xA5, 0xFA, 0xFF, 0x8D, + 0xC4, 0xFC, 0xFF, 0x85, 0xC1, 0xFB, 0xFF, 0x50, 0xAD, 0xF5, 0xFF, 0x5E, 0xB6, 0xF7, 0xFF, 0x6B, 0xBE, 0xF9, 0xFF, + 0x78, 0xC9, 0xFA, 0xFF, 0x85, 0xD4, 0xFB, 0xFF, 0x97, 0xDE, 0xFE, 0xFF, 0xAA, 0xE8, 0xFF, 0xFF, 0xAD, 0xEE, 0xFD, + 0xFF, 0xB1, 0xF4, 0xF9, 0xFF, 0xB9, 0xF5, 0xFC, 0xFF, 0xC2, 0xF6, 0xFE, 0xFF, 0xB2, 0xF0, 0xFB, 0xFF, 0x6E, 0xCB, + 0xF6, 0xFF, 0x91, 0xDE, 0xFB, 0xFF, 0xCA, 0xFC, 0xFC, 0xFF, 0xD0, 0xFB, 0xFF, 0xFF, 0xC8, 0xFC, 0xFF, 0xFF, 0xC7, + 0xE3, 0xCA, 0xFF, 0xF2, 0xA1, 0x15, 0xFF, 0xEE, 0xA3, 0x1D, 0xFF, 0xF1, 0xA1, 0x11, 0xFF, 0xB9, 0xD4, 0x9E, 0xFF, + 0x8B, 0xF1, 0xEA, 0xFF, 0x95, 0xEF, 0xDC, 0xFF, 0x90, 0xEB, 0xD9, 0xFF, 0x92, 0xEB, 0xD9, 0xFF, 0x94, 0xEC, 0xD8, + 0xFF, 0x8B, 0xEB, 0xD6, 0xFF, 0x82, 0xEA, 0xD3, 0xFF, 0x78, 0xE6, 0xC9, 0xFF, 0x6F, 0xE3, 0xBF, 0xFF, 0x68, 0xE2, + 0xB8, 0xFF, 0x61, 0xE2, 0xB1, 0xFF, 0x5D, 0xE0, 0xAE, 0xFF, 0x5A, 0xDE, 0xAC, 0xFF, 0x51, 0xD9, 0xA2, 0xFF, 0x48, + 0xD3, 0x98, 0xFF, 0x41, 0xCB, 0x8E, 0xFF, 0x39, 0xC3, 0x83, 0xFF, 0x32, 0xB7, 0x74, 0xFF, 0x2C, 0xAC, 0x66, 0xFF, + 0x29, 0xA2, 0x5D, 0xFF, 0x26, 0x99, 0x54, 0xFF, 0x21, 0x93, 0x4A, 0xFF, 0xB9, 0x99, 0x23, 0xFF, 0xFE, 0x93, 0x15, + 0xFF, 0xD8, 0x92, 0x09, 0xFF, 0xD8, 0x8F, 0x0F, 0xFF, 0xEF, 0xC4, 0x49, 0xFF, 0xEF, 0xC3, 0x47, 0xFF, 0xF0, 0xC2, + 0x46, 0xFF, 0xF0, 0xC1, 0x44, 0xFF, 0xF1, 0xC0, 0x42, 0xFF, 0xEF, 0xBF, 0x43, 0xFF, 0xED, 0xBE, 0x43, 0xFF, 0xEE, + 0xBE, 0x42, 0xFF, 0xF0, 0xBD, 0x41, 0xFF, 0xF0, 0xBA, 0x37, 0xFF, 0xB7, 0xA1, 0x71, 0xFF, 0x1D, 0x5D, 0xFE, 0xFF, + 0x31, 0x79, 0xF8, 0xFF, 0x51, 0xA1, 0xF5, 0xFF, 0x60, 0xAD, 0xF8, 0xFF, 0xBC, 0xE0, 0xFE, 0xFF, 0x57, 0xB6, 0xF7, + 0xFF, 0x68, 0xBF, 0xF9, 0xFF, 0x79, 0xC8, 0xFC, 0xFF, 0x82, 0xD2, 0xFC, 0xFF, 0x8B, 0xDB, 0xFC, 0xFF, 0x8F, 0xDE, + 0xFB, 0xFF, 0x92, 0xE0, 0xFB, 0xFF, 0xA3, 0xEA, 0xFA, 0xFF, 0xB4, 0xF4, 0xFA, 0xFF, 0xC1, 0xF8, 0xF9, 0xFF, 0xCE, + 0xFB, 0xF8, 0xFF, 0xB6, 0xEB, 0xF9, 0xFF, 0x83, 0xE1, 0xFA, 0xFF, 0x8F, 0xE2, 0xFD, 0xFF, 0xC7, 0xF9, 0xFB, 0xFF, + 0xD7, 0xF8, 0xFC, 0xFF, 0xCA, 0xFC, 0xFE, 0xFF, 0xDC, 0xCD, 0x8B, 0xFF, 0xED, 0x9F, 0x18, 0xFF, 0xED, 0xA3, 0x24, + 0xFF, 0xFA, 0x9D, 0x0A, 0xFF, 0xA5, 0xF5, 0xE7, 0xFF, 0xA5, 0xF1, 0xE4, 0xFF, 0xA5, 0xF0, 0xE4, 0xFF, 0xA6, 0xEF, + 0xE3, 0xFF, 0xA9, 0xF0, 0xE4, 0xFF, 0xAD, 0xF2, 0xE6, 0xFF, 0xA5, 0xF0, 0xE3, 0xFF, 0x9E, 0xEF, 0xE0, 0xFF, 0x92, + 0xEC, 0xD6, 0xFF, 0x87, 0xE9, 0xCD, 0xFF, 0x7F, 0xE9, 0xC7, 0xFF, 0x78, 0xEA, 0xC2, 0xFF, 0x72, 0xEA, 0xC1, 0xFF, + 0x6D, 0xE9, 0xC0, 0xFF, 0x60, 0xE3, 0xB1, 0xFF, 0x53, 0xDD, 0xA2, 0xFF, 0x46, 0xD2, 0x94, 0xFF, 0x3A, 0xC8, 0x86, + 0xFF, 0x35, 0xBC, 0x77, 0xFF, 0x30, 0xB0, 0x69, 0xFF, 0x2B, 0xA5, 0x62, 0xFF, 0x26, 0x9B, 0x5B, 0xFF, 0x09, 0x91, + 0x57, 0xFF, 0xFB, 0x94, 0x09, 0xFF, 0xE5, 0x95, 0x0C, 0xFF, 0xEB, 0x91, 0x0F, 0xFF, 0xEB, 0x91, 0x0F, 0xFF, 0xEF, + 0xC5, 0x4A, 0xFF, 0xF0, 0xC4, 0x48, 0xFF, 0xF0, 0xC3, 0x47, 0xFF, 0xF1, 0xC2, 0x45, 0xFF, 0xF1, 0xC1, 0x43, 0xFF, + 0xF1, 0xC1, 0x41, 0xFF, 0xF1, 0xC1, 0x3F, 0xFF, 0xF0, 0xBE, 0x3F, 0xFF, 0xEF, 0xBC, 0x3F, 0xFF, 0xFD, 0xC2, 0x32, + 0xFF, 0x6E, 0x7F, 0xBD, 0xFF, 0x26, 0x65, 0xFE, 0xFF, 0x34, 0x7B, 0xF5, 0xFF, 0x4C, 0x9A, 0xF5, 0xFF, 0x5C, 0xAB, + 0xF8, 0xFF, 0x9F, 0xD0, 0xFA, 0xFF, 0x83, 0xC6, 0xF7, 0xFF, 0x6A, 0xC1, 0xFD, 0xFF, 0x7E, 0xD1, 0xFD, 0xFF, 0x87, + 0xDB, 0xFB, 0xFF, 0x8F, 0xE5, 0xF9, 0xFF, 0x9A, 0xEC, 0xF8, 0xFF, 0xA5, 0xF4, 0xF7, 0xFF, 0x99, 0xEA, 0xFB, 0xFF, + 0x8E, 0xDF, 0xFF, 0xFF, 0x9F, 0xE2, 0xFB, 0xFF, 0xB1, 0xE6, 0xF7, 0xFF, 0xCC, 0xED, 0xFB, 0xFF, 0xCA, 0xFA, 0xFF, + 0xFF, 0xC6, 0xF2, 0xFF, 0xFF, 0xC2, 0xF0, 0xFC, 0xFF, 0xD2, 0xF5, 0xFE, 0xFF, 0xD3, 0xFC, 0xFF, 0xFF, 0xE6, 0xB5, + 0x4B, 0xFF, 0xED, 0xA4, 0x20, 0xFF, 0xED, 0xA2, 0x1B, 0xFF, 0xE2, 0xAA, 0x3D, 0xFF, 0xAB, 0xF6, 0xEE, 0xFF, 0xB1, + 0xF1, 0xE5, 0xFF, 0xB4, 0xF2, 0xE7, 0xFF, 0xB8, 0xF3, 0xE9, 0xFF, 0xBA, 0xF3, 0xE9, 0xFF, 0xBC, 0xF4, 0xEA, 0xFF, + 0xB5, 0xF3, 0xE8, 0xFF, 0xAF, 0xF2, 0xE5, 0xFF, 0xA8, 0xF0, 0xE0, 0xFF, 0xA1, 0xED, 0xDA, 0xFF, 0x99, 0xEF, 0xD5, + 0xFF, 0x91, 0xF0, 0xD0, 0xFF, 0x82, 0xED, 0xC8, 0xFF, 0x72, 0xEA, 0xC0, 0xFF, 0x61, 0xE3, 0xB0, 0xFF, 0x50, 0xDC, + 0xA0, 0xFF, 0x47, 0xD3, 0x94, 0xFF, 0x3E, 0xCA, 0x88, 0xFF, 0x38, 0xBF, 0x7B, 0xFF, 0x32, 0xB4, 0x6E, 0xFF, 0x2E, + 0xA8, 0x65, 0xFF, 0x1B, 0xA0, 0x5D, 0xFF, 0x48, 0x94, 0x3C, 0xFF, 0xF6, 0x93, 0x0A, 0xFF, 0xEC, 0x94, 0x0D, 0xFF, + 0xF0, 0x92, 0x10, 0xFF, 0xF0, 0x92, 0x10, 0xFF, 0xF0, 0xC5, 0x4B, 0xFF, 0xF0, 0xC4, 0x49, 0xFF, 0xF1, 0xC4, 0x48, + 0xFF, 0xF1, 0xC3, 0x46, 0xFF, 0xF2, 0xC2, 0x44, 0xFF, 0xF4, 0xC3, 0x3F, 0xFF, 0xF6, 0xC4, 0x3A, 0xFF, 0xF3, 0xBF, + 0x3C, 0xFF, 0xEF, 0xBA, 0x3D, 0xFF, 0xFF, 0xCA, 0x2C, 0xFF, 0x24, 0x5D, 0xFF, 0xFF, 0x2E, 0x6D, 0xFE, 0xFF, 0x38, + 0x7D, 0xF2, 0xFF, 0x48, 0x93, 0xF5, 0xFF, 0x57, 0xA9, 0xF7, 0xFF, 0x82, 0xC0, 0xF7, 0xFF, 0xAE, 0xD7, 0xF7, 0xFF, + 0x6C, 0xC2, 0xFF, 0xFF, 0x84, 0xDA, 0xFE, 0xFF, 0x8B, 0xE4, 0xFA, 0xFF, 0x93, 0xEE, 0xF6, 0xFF, 0x9D, 0xED, 0xF8, + 0xFF, 0xA7, 0xEC, 0xF9, 0xFF, 0xB3, 0xF1, 0xF8, 0xFF, 0xC0, 0xF6, 0xF7, 0xFF, 0xC8, 0xF6, 0xFB, 0xFF, 0xD0, 0xF6, + 0xFF, 0xFF, 0xD3, 0xF2, 0xFE, 0xFF, 0xB9, 0xF3, 0xFB, 0xFF, 0xE7, 0xFD, 0xFF, 0xFF, 0xE9, 0xFD, 0xF6, 0xFF, 0xE2, + 0xFC, 0xFC, 0xFF, 0xDC, 0xFC, 0xFF, 0xFF, 0xF1, 0x9D, 0x0B, 0xFF, 0xEC, 0xAA, 0x29, 0xFF, 0xF5, 0xAA, 0x1B, 0xFF, + 0xD9, 0xC7, 0x7F, 0xFF, 0xBA, 0xFE, 0xFD, 0xFF, 0xBD, 0xF2, 0xE7, 0xFF, 0xC3, 0xF4, 0xEB, 0xFF, 0xCA, 0xF6, 0xEE, + 0xFF, 0xCA, 0xF6, 0xEF, 0xFF, 0xCB, 0xF7, 0xEF, 0xFF, 0xC5, 0xF6, 0xED, 0xFF, 0xBF, 0xF5, 0xEB, 0xFF, 0xBE, 0xF3, + 0xE9, 0xFF, 0xBC, 0xF2, 0xE8, 0xFF, 0xB3, 0xF4, 0xE3, 0xFF, 0xAB, 0xF6, 0xDF, 0xFF, 0x91, 0xF1, 0xD0, 0xFF, 0x77, + 0xEC, 0xC1, 0xFF, 0x62, 0xE3, 0xAF, 0xFF, 0x4E, 0xDB, 0x9E, 0xFF, 0x47, 0xD3, 0x94, 0xFF, 0x41, 0xCC, 0x8A, 0xFF, + 0x3B, 0xC2, 0x7F, 0xFF, 0x35, 0xB8, 0x73, 0xFF, 0x30, 0xAC, 0x69, 0xFF, 0x10, 0xA5, 0x60, 0xFF, 0x86, 0x96, 0x22, + 0xFF, 0xF0, 0x91, 0x0A, 0xFF, 0xF2, 0x92, 0x0E, 0xFF, 0xF4, 0x94, 0x11, 0xFF, 0xF4, 0x94, 0x11, 0xFF, 0xF1, 0xC5, + 0x4C, 0xFF, 0xF1, 0xC5, 0x4A, 0xFF, 0xF1, 0xC4, 0x49, 0xFF, 0xF2, 0xC4, 0x47, 0xFF, 0xF2, 0xC3, 0x45, 0xFF, 0xF1, + 0xC3, 0x43, 0xFF, 0xF0, 0xC4, 0x40, 0xFF, 0xF3, 0xBF, 0x42, 0xFF, 0xF5, 0xC0, 0x39, 0xFF, 0xCA, 0xAC, 0x5E, 0xFF, + 0x1E, 0x58, 0xFA, 0xFF, 0x30, 0x6E, 0xF3, 0xFF, 0x35, 0x80, 0xF7, 0xFF, 0x3E, 0x92, 0xFB, 0xFF, 0x5D, 0xAF, 0xFB, + 0xFF, 0x72, 0xC2, 0xFF, 0xFF, 0xBA, 0xE1, 0xFD, 0xFF, 0x74, 0xCD, 0xFF, 0xFF, 0x71, 0xD3, 0xFF, 0xFF, 0x83, 0xE5, + 0xFF, 0xFF, 0x95, 0xF7, 0xFF, 0xFF, 0xA1, 0xF4, 0xFE, 0xFF, 0xAD, 0xF0, 0xFD, 0xFF, 0xC1, 0xF8, 0xFF, 0xFF, 0xCD, + 0xF7, 0xFB, 0xFF, 0xD1, 0xF8, 0xFE, 0xFF, 0xD6, 0xF9, 0xFF, 0xFF, 0xE0, 0xF6, 0xFE, 0xFF, 0xDD, 0xF5, 0xFB, 0xFF, + 0xED, 0xFB, 0xFF, 0xFF, 0xE8, 0xFB, 0xFB, 0xFF, 0xDF, 0xFC, 0xFF, 0xFF, 0xE8, 0xE0, 0xB2, 0xFF, 0xEF, 0xA3, 0x18, + 0xFF, 0xEC, 0xAA, 0x25, 0xFF, 0xF5, 0xA8, 0x15, 0xFF, 0xD8, 0xE3, 0xC2, 0xFF, 0xC5, 0xF9, 0xF9, 0xFF, 0xCA, 0xF5, + 0xEE, 0xFF, 0xCE, 0xF6, 0xEF, 0xFF, 0xD2, 0xF7, 0xF0, 0xFF, 0xD1, 0xF8, 0xF1, 0xFF, 0xD0, 0xF9, 0xF1, 0xFF, 0xCD, + 0xF9, 0xF1, 0xFF, 0xC9, 0xF9, 0xF1, 0xFF, 0xC9, 0xFB, 0xF2, 0xFF, 0xCA, 0xFC, 0xF4, 0xFF, 0xB6, 0xF8, 0xE6, 0xFF, + 0xA2, 0xF3, 0xD9, 0xFF, 0x89, 0xEF, 0xCA, 0xFF, 0x71, 0xEB, 0xBC, 0xFF, 0x61, 0xE6, 0xB0, 0xFF, 0x50, 0xE1, 0xA4, + 0xFF, 0x48, 0xD9, 0x99, 0xFF, 0x40, 0xD2, 0x8F, 0xFF, 0x3A, 0xC7, 0x83, 0xFF, 0x34, 0xBC, 0x77, 0xFF, 0x1C, 0xB2, + 0x6A, 0xFF, 0x04, 0xA9, 0x5D, 0xFF, 0xEA, 0x8D, 0x13, 0xFF, 0xEF, 0x93, 0x11, 0xFF, 0xEF, 0x92, 0x0F, 0xFF, 0xF0, + 0x92, 0x0E, 0xFF, 0xF0, 0x92, 0x0E, 0xFF, 0xF2, 0xC6, 0x4D, 0xFF, 0xF2, 0xC5, 0x4B, 0xFF, 0xF2, 0xC5, 0x4A, 0xFF, + 0xF2, 0xC5, 0x48, 0xFF, 0xF2, 0xC4, 0x46, 0xFF, 0xEE, 0xC4, 0x46, 0xFF, 0xEA, 0xC4, 0x46, 0xFF, 0xF2, 0xBF, 0x48, + 0xFF, 0xFB, 0xC6, 0x34, 0xFF, 0x91, 0x95, 0x98, 0xFF, 0x27, 0x64, 0xFC, 0xFF, 0x3B, 0x76, 0xF1, 0xFF, 0x32, 0x83, + 0xFC, 0xFF, 0x34, 0x91, 0xFF, 0xFF, 0x63, 0xB4, 0xFF, 0xFF, 0x5A, 0xBD, 0xFF, 0xFF, 0xB5, 0xDC, 0xF3, 0xFF, 0x97, + 0xD0, 0xCB, 0xFF, 0xA4, 0xCE, 0xB4, 0xFF, 0xB0, 0xD2, 0xAF, 0xFF, 0xBC, 0xD6, 0xAB, 0xFF, 0xBE, 0xE1, 0xC2, 0xFF, + 0xC0, 0xEB, 0xDA, 0xFF, 0xC7, 0xFC, 0xF5, 0xFF, 0xBD, 0xFE, 0xFF, 0xFF, 0xCC, 0xFD, 0xFF, 0xFF, 0xDB, 0xFC, 0xFF, + 0xFF, 0xE0, 0xFC, 0xFE, 0xFF, 0xE4, 0xFC, 0xFB, 0xFF, 0xE6, 0xFB, 0xFD, 0xFF, 0xE7, 0xFA, 0xFF, 0xFF, 0xDD, 0xFB, + 0xFF, 0xFF, 0xF4, 0xC4, 0x61, 0xFF, 0xEE, 0xAA, 0x26, 0xFF, 0xEB, 0xAA, 0x22, 0xFF, 0xF6, 0xA7, 0x10, 0xFF, 0xD6, + 0xFF, 0xFF, 0xFF, 0xCF, 0xF4, 0xF5, 0xFF, 0xD8, 0xF9, 0xF5, 0xFF, 0xD9, 0xF9, 0xF4, 0xFF, 0xD9, 0xF8, 0xF2, 0xFF, + 0xD8, 0xF9, 0xF3, 0xFF, 0xD6, 0xFB, 0xF4, 0xFF, 0xD5, 0xFC, 0xF5, 0xFF, 0xD3, 0xFD, 0xF6, 0xFF, 0xCD, 0xFA, 0xF3, + 0xFF, 0xC7, 0xF6, 0xEF, 0xFF, 0xB0, 0xF3, 0xE1, 0xFF, 0x98, 0xF0, 0xD3, 0xFF, 0x82, 0xED, 0xC5, 0xFF, 0x6B, 0xEB, + 0xB7, 0xFF, 0x5F, 0xE9, 0xB0, 0xFF, 0x53, 0xE7, 0xAA, 0xFF, 0x49, 0xDF, 0x9F, 0xFF, 0x3E, 0xD7, 0x93, 0xFF, 0x39, + 0xCB, 0x87, 0xFF, 0x34, 0xBF, 0x7B, 0xFF, 0x25, 0xB4, 0x6B, 0xFF, 0x32, 0xA2, 0x5B, 0xFF, 0xF9, 0x94, 0x04, 0xFF, + 0xED, 0x94, 0x17, 0xFF, 0xEC, 0x92, 0x11, 0xFF, 0xEB, 0x91, 0x0B, 0xFF, 0xEB, 0x91, 0x0B, 0xFF, 0xF2, 0xC7, 0x4E, + 0xFF, 0xF3, 0xC7, 0x4D, 0xFF, 0xF3, 0xC7, 0x4C, 0xFF, 0xF3, 0xC7, 0x4A, 0xFF, 0xF4, 0xC7, 0x49, 0xFF, 0xF1, 0xC4, + 0x47, 0xFF, 0xEE, 0xC1, 0x45, 0xFF, 0xF7, 0xC2, 0x42, 0xFF, 0xFF, 0xC8, 0x33, 0xFF, 0x46, 0x67, 0xDE, 0xFF, 0x2A, + 0x63, 0xFF, 0xFF, 0x1B, 0x6F, 0xFF, 0xFF, 0x52, 0x8B, 0xE0, 0xFF, 0x84, 0xA0, 0xA3, 0xFF, 0xCC, 0xC1, 0x62, 0xFF, + 0xFF, 0xC0, 0x26, 0xFF, 0xFF, 0xB7, 0x29, 0xFF, 0xF1, 0xB5, 0x24, 0xFF, 0xF9, 0xB7, 0x27, 0xFF, 0xF6, 0xB5, 0x25, + 0xFF, 0xF2, 0xB2, 0x23, 0xFF, 0xFA, 0xB5, 0x24, 0xFF, 0xFF, 0xB7, 0x24, 0xFF, 0xDE, 0x9D, 0x17, 0xFF, 0xF4, 0xBA, + 0x42, 0xFF, 0xE7, 0xDA, 0x9E, 0xFF, 0xDC, 0xF9, 0xF9, 0xFF, 0xE6, 0xFB, 0xF3, 0xFF, 0xE9, 0xFF, 0xFF, 0xFF, 0xE6, + 0xFF, 0xFD, 0xFF, 0xE2, 0xFB, 0xFA, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0xA7, 0x1D, 0xFF, 0xF0, 0xA7, 0x1C, 0xFF, + 0xF1, 0xA7, 0x1A, 0xFF, 0xF0, 0xC4, 0x5A, 0xFF, 0xE7, 0xFF, 0xFF, 0xFF, 0xE1, 0xF9, 0xFA, 0xFF, 0xE2, 0xFB, 0xFA, + 0xFF, 0xDF, 0xFB, 0xF8, 0xFF, 0xDC, 0xFA, 0xF5, 0xFF, 0xDB, 0xFB, 0xF5, 0xFF, 0xD9, 0xFB, 0xF5, 0xFF, 0xD6, 0xFC, + 0xF5, 0xFF, 0xD3, 0xFD, 0xF5, 0xFF, 0xC8, 0xF8, 0xF0, 0xFF, 0xBD, 0xF4, 0xEA, 0xFF, 0xA8, 0xF1, 0xDF, 0xFF, 0x93, + 0xEF, 0xD4, 0xFF, 0x7A, 0xF3, 0xC6, 0xFF, 0x61, 0xF8, 0xB9, 0xFF, 0x57, 0xEF, 0xB0, 0xFF, 0x4D, 0xE6, 0xA6, 0xFF, + 0x48, 0xE2, 0xA3, 0xFF, 0x3A, 0xD6, 0x98, 0xFF, 0x37, 0xCD, 0x89, 0xFF, 0x35, 0xC3, 0x7B, 0xFF, 0x20, 0xB7, 0x6F, + 0xFF, 0x84, 0x9C, 0x3A, 0xFF, 0xF4, 0x93, 0x0C, 0xFF, 0xEC, 0x94, 0x13, 0xFF, 0xE9, 0x93, 0x11, 0xFF, 0xE6, 0x92, + 0x0F, 0xFF, 0xE6, 0x92, 0x0F, 0xFF, 0xF3, 0xC9, 0x50, 0xFF, 0xF4, 0xC9, 0x4F, 0xFF, 0xF4, 0xC9, 0x4E, 0xFF, 0xF5, + 0xCA, 0x4D, 0xFF, 0xF5, 0xCA, 0x4B, 0xFF, 0xF4, 0xC5, 0x48, 0xFF, 0xF3, 0xBF, 0x44, 0xFF, 0xEE, 0xC1, 0x47, 0xFF, + 0xEA, 0xC4, 0x4A, 0xFF, 0x1F, 0x52, 0xFF, 0xFF, 0x92, 0x9A, 0xA6, 0xFF, 0xE6, 0xB6, 0x51, 0xFF, 0xFF, 0xC7, 0x28, + 0xFF, 0xF8, 0xC4, 0x2C, 0xFF, 0xF0, 0xC0, 0x30, 0xFF, 0xEF, 0xBA, 0x3F, 0xFF, 0xEF, 0xBF, 0x37, 0xFF, 0xEF, 0xB9, + 0x38, 0xFF, 0xF0, 0xB2, 0x3A, 0xFF, 0xF3, 0xB5, 0x38, 0xFF, 0xF6, 0xB7, 0x35, 0xFF, 0xEF, 0xB9, 0x32, 0xFF, 0xE8, + 0xBB, 0x2F, 0xFF, 0xEA, 0xB8, 0x2F, 0xFF, 0xED, 0xB4, 0x2F, 0xFF, 0xF3, 0xAC, 0x1F, 0xFF, 0xF9, 0xA3, 0x10, 0xFF, + 0xF2, 0xC9, 0x6F, 0xFF, 0xDF, 0xF9, 0xF5, 0xFF, 0xDE, 0xFB, 0xF5, 0xFF, 0xDD, 0xFD, 0xF5, 0xFF, 0xE3, 0xEA, 0xD7, + 0xFF, 0xEE, 0xA5, 0x10, 0xFF, 0xF4, 0xB2, 0x2D, 0xFF, 0xF7, 0xA5, 0x13, 0xFF, 0xEB, 0xE1, 0xA5, 0xFF, 0xF8, 0xFF, + 0xFF, 0xFF, 0xF2, 0xFE, 0xFF, 0xFF, 0xEC, 0xFD, 0xFF, 0xFF, 0xE6, 0xFC, 0xFC, 0xFF, 0xDF, 0xFC, 0xF7, 0xFF, 0xDE, + 0xFC, 0xF7, 0xFF, 0xDC, 0xFC, 0xF6, 0xFF, 0xD7, 0xFC, 0xF5, 0xFF, 0xD3, 0xFC, 0xF4, 0xFF, 0xC3, 0xF7, 0xED, 0xFF, + 0xB4, 0xF1, 0xE5, 0xFF, 0xB7, 0xF5, 0xE4, 0xFF, 0xBB, 0xF9, 0xE4, 0xFF, 0xD2, 0xFE, 0xEB, 0xFF, 0xE9, 0xFF, 0xF2, + 0xFF, 0xDB, 0xFE, 0xED, 0xFF, 0xCD, 0xF9, 0xE8, 0xFF, 0x89, 0xEF, 0xCA, 0xFF, 0x35, 0xD6, 0x9C, 0xFF, 0x2D, 0xC6, + 0x83, 0xFF, 0x25, 0xB7, 0x6B, 0xFF, 0x14, 0xB3, 0x6C, 0xFF, 0xD6, 0x95, 0x1A, 0xFF, 0xEE, 0x91, 0x15, 0xFF, 0xEB, + 0x93, 0x0F, 0xFF, 0xE6, 0x93, 0x10, 0xFF, 0xE0, 0x93, 0x12, 0xFF, 0xE0, 0x93, 0x12, 0xFF, 0xF4, 0xCA, 0x52, 0xFF, + 0xF4, 0xCA, 0x50, 0xFF, 0xF3, 0xCA, 0x4E, 0xFF, 0xF3, 0xC9, 0x4C, 0xFF, 0xF3, 0xC9, 0x4A, 0xFF, 0xF4, 0xC8, 0x48, + 0xFF, 0xF6, 0xC6, 0x46, 0xFF, 0xEC, 0xBF, 0x3F, 0xFF, 0xEB, 0xBF, 0x41, 0xFF, 0xF8, 0xD4, 0x40, 0xFF, 0xFC, 0xC9, + 0x33, 0xFF, 0xFF, 0xC9, 0x2F, 0xFF, 0xEC, 0xC2, 0x42, 0xFF, 0xF4, 0xC3, 0x40, 0xFF, 0xFC, 0xC3, 0x3E, 0xFF, 0xF3, + 0xBB, 0x34, 0xFF, 0xF2, 0xBB, 0x33, 0xFF, 0xF6, 0xBD, 0x49, 0xFF, 0xF8, 0xB7, 0x38, 0xFF, 0xF5, 0xB7, 0x36, 0xFF, + 0xF2, 0xB7, 0x34, 0xFF, 0xF3, 0xB5, 0x2E, 0xFF, 0xF5, 0xB3, 0x27, 0xFF, 0xF7, 0xBA, 0x2F, 0xFF, 0xF2, 0xBA, 0x2F, + 0xFF, 0xF1, 0xB5, 0x30, 0xFF, 0xF0, 0xB0, 0x31, 0xFF, 0xF6, 0xAC, 0x1E, 0xFF, 0xED, 0xAA, 0x0C, 0xFF, 0xEC, 0xD2, + 0x7E, 0xFF, 0xE6, 0xFF, 0xFF, 0xFF, 0xD2, 0xD9, 0x80, 0xFF, 0xF8, 0xA9, 0x2E, 0xFF, 0xEB, 0xAF, 0x1C, 0xFF, 0xE5, + 0xAA, 0x02, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xF9, 0xFE, 0xFF, 0xFF, 0xF4, 0xFD, 0xFF, 0xFF, + 0xEB, 0xFD, 0xFD, 0xFF, 0xE2, 0xFE, 0xFA, 0xFF, 0xE1, 0xFD, 0xF9, 0xFF, 0xE0, 0xFC, 0xF7, 0xFF, 0xD7, 0xFC, 0xF5, + 0xFF, 0xCF, 0xFD, 0xF3, 0xFF, 0xE2, 0xFB, 0xF4, 0xFF, 0xE7, 0xFD, 0xF6, 0xFF, 0xE8, 0xFD, 0xF3, 0xFF, 0xE9, 0xFD, + 0xF0, 0xFF, 0xD3, 0xFD, 0xEB, 0xFF, 0xBD, 0xFC, 0xE5, 0xFF, 0xBA, 0xF7, 0xDF, 0xFF, 0xB6, 0xF2, 0xDA, 0xFF, 0xD2, + 0xFB, 0xE9, 0xFF, 0xE6, 0xFC, 0xF1, 0xFF, 0x8D, 0xDE, 0xB6, 0xFF, 0x3C, 0xC7, 0x84, 0xFF, 0x47, 0xB7, 0x99, 0xFF, + 0xF8, 0xA1, 0x13, 0xFF, 0xF2, 0x94, 0x04, 0xFF, 0xEE, 0x94, 0x10, 0xFF, 0xEC, 0x94, 0x10, 0xFF, 0xE9, 0x95, 0x10, + 0xFF, 0xE9, 0x95, 0x10, 0xFF, 0xF5, 0xCC, 0x53, 0xFF, 0xF3, 0xCB, 0x50, 0xFF, 0xF2, 0xCA, 0x4E, 0xFF, 0xF1, 0xC9, + 0x4B, 0xFF, 0xF0, 0xC7, 0x48, 0xFF, 0xF4, 0xCB, 0x48, 0xFF, 0xF9, 0xCE, 0x47, 0xFF, 0xF2, 0xC4, 0x40, 0xFF, 0xFC, + 0xCA, 0x48, 0xFF, 0xF0, 0xC2, 0x3F, 0xFF, 0xF5, 0xC9, 0x46, 0xFF, 0xF4, 0xC7, 0x46, 0xFF, 0xF3, 0xC4, 0x45, 0xFF, + 0xED, 0xB4, 0x38, 0xFF, 0xE8, 0xA5, 0x2C, 0xFF, 0xE1, 0xB0, 0x2E, 0xFF, 0xEA, 0xC0, 0x56, 0xFF, 0xE9, 0xC8, 0x6C, + 0xFF, 0xE4, 0xC1, 0x36, 0xFF, 0xEB, 0xC9, 0x50, 0xFF, 0xF1, 0xD1, 0x6A, 0xFF, 0xF5, 0xD0, 0x73, 0xFF, 0xF9, 0xCF, + 0x7D, 0xFF, 0xF8, 0xC7, 0x56, 0xFF, 0xE7, 0xAF, 0x1F, 0xFF, 0xED, 0xB1, 0x25, 0xFF, 0xF4, 0xB2, 0x2B, 0xFF, 0xF9, + 0xB5, 0x3E, 0xFF, 0xEE, 0xB3, 0x2A, 0xFF, 0xF5, 0xAF, 0x1B, 0xFF, 0xF0, 0xB5, 0x32, 0xFF, 0xF9, 0xB1, 0x3F, 0xFF, + 0xF2, 0xA9, 0x26, 0xFF, 0xEA, 0xAE, 0x1F, 0xFF, 0xF3, 0xB8, 0x3F, 0xFF, 0xF3, 0xFF, 0xFB, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFB, 0xFD, 0xFE, 0xFF, 0xF0, 0xFE, 0xFE, 0xFF, 0xE5, 0xFF, 0xFD, 0xFF, 0xE4, 0xFE, + 0xFB, 0xFF, 0xE3, 0xFC, 0xF8, 0xFF, 0xD7, 0xFD, 0xF5, 0xFF, 0xCB, 0xFD, 0xF2, 0xFF, 0xEB, 0xFB, 0xF4, 0xFF, 0xEE, + 0xFE, 0xF6, 0xFF, 0xDE, 0xFD, 0xF1, 0xFF, 0xCE, 0xFB, 0xED, 0xFF, 0xB0, 0xF9, 0xE2, 0xFF, 0x91, 0xF6, 0xD8, 0xFF, + 0x8A, 0xF3, 0xD2, 0xFF, 0x83, 0xF1, 0xCC, 0xFF, 0x96, 0xEE, 0xCE, 0xFF, 0xA9, 0xEA, 0xD0, 0xFF, 0xC0, 0xEA, 0xDA, + 0xFF, 0xE8, 0xFA, 0xF4, 0xFF, 0x78, 0xC6, 0x7E, 0xFF, 0xFF, 0xC0, 0x59, 0xFF, 0xEA, 0xA0, 0x19, 0xFF, 0xF2, 0x95, + 0x10, 0xFF, 0xF2, 0x96, 0x0F, 0xFF, 0xF2, 0x96, 0x0D, 0xFF, 0xF2, 0x96, 0x0D, 0xFF, 0xF4, 0xCD, 0x54, 0xFF, 0xF4, + 0xCB, 0x51, 0xFF, 0xF3, 0xCA, 0x4F, 0xFF, 0xF2, 0xC9, 0x4C, 0xFF, 0xF2, 0xC8, 0x4A, 0xFF, 0xF1, 0xC6, 0x48, 0xFF, + 0xF1, 0xC4, 0x47, 0xFF, 0xF3, 0xD2, 0x48, 0xFF, 0xF3, 0xC7, 0x46, 0xFF, 0xFB, 0xC5, 0x4C, 0xFF, 0xDC, 0x9A, 0x2B, + 0xFF, 0xCD, 0x83, 0x17, 0xFF, 0xBE, 0x6B, 0x03, 0xFF, 0xC5, 0x7F, 0x00, 0xFF, 0xD4, 0x96, 0x0E, 0xFF, 0xDB, 0xAC, + 0x2E, 0xFF, 0xEA, 0xC5, 0x60, 0xFF, 0xEF, 0xCC, 0x75, 0xFF, 0xEA, 0xCA, 0x51, 0xFF, 0xEF, 0xD2, 0x69, 0xFF, 0xF5, + 0xDA, 0x81, 0xFF, 0xF7, 0xE4, 0x99, 0xFF, 0xF9, 0xEE, 0xB2, 0xFF, 0xFF, 0xFA, 0xCE, 0xFF, 0xFF, 0xFE, 0xE2, 0xFF, + 0xFF, 0xE1, 0x99, 0xFF, 0xF7, 0xBC, 0x48, 0xFF, 0xDC, 0xB4, 0x10, 0xFF, 0xF0, 0xAD, 0x31, 0xFF, 0xFB, 0xAC, 0x27, + 0xFF, 0xF3, 0xB2, 0x30, 0xFF, 0xF5, 0xB1, 0x34, 0xFF, 0xF0, 0xAD, 0x24, 0xFF, 0xF6, 0xAC, 0x26, 0xFF, 0xFC, 0xD1, + 0x97, 0xFF, 0xF7, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFB, 0xFF, 0xFE, 0xFF, 0xF3, 0xFF, 0xFE, 0xFF, 0xED, + 0xFF, 0xFD, 0xFF, 0xE7, 0xFD, 0xFC, 0xFF, 0xE3, 0xFE, 0xFB, 0xFF, 0xDF, 0xFE, 0xF9, 0xFF, 0xE7, 0xFD, 0xF8, 0xFF, + 0xEF, 0xFC, 0xF7, 0xFF, 0xEB, 0xFB, 0xF3, 0xFF, 0xD8, 0xFD, 0xEF, 0xFF, 0xC2, 0xFA, 0xE8, 0xFF, 0xAB, 0xF8, 0xE2, + 0xFF, 0x9B, 0xF4, 0xD8, 0xFF, 0x8A, 0xEF, 0xCE, 0xFF, 0x76, 0xEA, 0xC1, 0xFF, 0x61, 0xE5, 0xB4, 0xFF, 0x5A, 0xDD, + 0xAB, 0xFF, 0x61, 0xD2, 0xA2, 0xFF, 0x8D, 0xE9, 0xC1, 0xFF, 0xB8, 0xE7, 0xDA, 0xFF, 0xFF, 0xD4, 0x96, 0xFF, 0xFA, + 0xD0, 0x8E, 0xFF, 0xED, 0xAD, 0x41, 0xFF, 0xF1, 0x95, 0x10, 0xFF, 0xF1, 0x95, 0x0F, 0xFF, 0xF1, 0x96, 0x0E, 0xFF, + 0xF1, 0x96, 0x0E, 0xFF, 0xF4, 0xCD, 0x54, 0xFF, 0xF4, 0xCC, 0x52, 0xFF, 0xF4, 0xCB, 0x50, 0xFF, 0xF3, 0xC9, 0x4E, + 0xFF, 0xF3, 0xC8, 0x4B, 0xFF, 0xF6, 0xC9, 0x51, 0xFF, 0xFA, 0xCA, 0x56, 0xFF, 0xEA, 0xC0, 0x44, 0xFF, 0xC6, 0x74, + 0x19, 0xFF, 0xAD, 0x58, 0x00, 0xFF, 0xB3, 0x5B, 0x01, 0xFF, 0xC0, 0x6F, 0x06, 0xFF, 0xCC, 0x84, 0x0B, 0xFF, 0xCE, + 0x93, 0x00, 0xFF, 0xDF, 0xA7, 0x11, 0xFF, 0xE5, 0xB9, 0x3E, 0xFF, 0xEB, 0xCA, 0x6A, 0xFF, 0xF5, 0xD1, 0x7E, 0xFF, + 0xF0, 0xD3, 0x6B, 0xFF, 0xF4, 0xDB, 0x81, 0xFF, 0xF8, 0xE3, 0x97, 0xFF, 0xF7, 0xEB, 0xA4, 0xFF, 0xF5, 0xF4, 0xB1, + 0xFF, 0xF9, 0xF7, 0xC7, 0xFF, 0xFC, 0xFA, 0xDC, 0xFF, 0xFF, 0xFF, 0xF2, 0xFF, 0xF5, 0xFF, 0xF8, 0xFF, 0xFD, 0xEB, + 0xBB, 0xFF, 0xF2, 0xB4, 0x22, 0xFF, 0xFF, 0xAF, 0x28, 0xFF, 0xF6, 0xB0, 0x2F, 0xFF, 0xF2, 0xB0, 0x29, 0xFF, 0xEE, + 0xB1, 0x22, 0xFF, 0xF9, 0xA7, 0x19, 0xFF, 0xF4, 0xE6, 0xC9, 0xFF, 0xF4, 0xF7, 0xF7, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, + 0xF6, 0xFF, 0xFE, 0xFF, 0xEC, 0xFF, 0xFD, 0xFF, 0xEA, 0xFF, 0xFC, 0xFF, 0xE8, 0xFA, 0xFA, 0xFF, 0xE2, 0xFD, 0xFB, + 0xFF, 0xDC, 0xFF, 0xFB, 0xFF, 0xE9, 0xFF, 0xFB, 0xFF, 0xF6, 0xFF, 0xFB, 0xFF, 0xDC, 0xFD, 0xF1, 0xFF, 0xC3, 0xFB, + 0xE7, 0xFF, 0xB4, 0xF5, 0xDF, 0xFF, 0xA5, 0xF0, 0xD8, 0xFF, 0x94, 0xEC, 0xCE, 0xFF, 0x83, 0xE8, 0xC4, 0xFF, 0x77, + 0xE5, 0xB7, 0xFF, 0x6B, 0xE3, 0xAB, 0xFF, 0x52, 0xDE, 0xA0, 0xFF, 0x55, 0xD4, 0x94, 0xFF, 0x40, 0xBD, 0x7F, 0xFF, + 0x98, 0xE4, 0xD1, 0xFF, 0xF4, 0xA1, 0x2B, 0xFF, 0xF6, 0xA1, 0x2F, 0xFF, 0xF3, 0x9B, 0x1F, 0xFF, 0xF0, 0x95, 0x0F, + 0xFF, 0xF0, 0x95, 0x0F, 0xFF, 0xF0, 0x95, 0x0F, 0xFF, 0xF0, 0x95, 0x0F, 0xFF, 0xF4, 0xCE, 0x55, 0xFF, 0xF4, 0xCC, + 0x53, 0xFF, 0xF4, 0xCB, 0x51, 0xFF, 0xF5, 0xCA, 0x4F, 0xFF, 0xF6, 0xC9, 0x4E, 0xFF, 0xF4, 0xC9, 0x4D, 0xFF, 0xFA, + 0xD0, 0x53, 0xFF, 0xCD, 0x86, 0x2A, 0xFF, 0xB0, 0x52, 0x06, 0xFF, 0xB8, 0x5F, 0x04, 0xFF, 0xC8, 0x73, 0x0A, 0xFF, + 0xCE, 0x82, 0x08, 0xFF, 0xD3, 0x91, 0x06, 0xFF, 0xD5, 0xA0, 0x01, 0xFF, 0xE6, 0xB4, 0x24, 0xFF, 0xEA, 0xC4, 0x4C, + 0xFF, 0xED, 0xD3, 0x74, 0xFF, 0xF4, 0xD9, 0x83, 0xFF, 0xF3, 0xDC, 0x7E, 0xFF, 0xF6, 0xE4, 0x93, 0xFF, 0xF8, 0xEC, + 0xA8, 0xFF, 0xF9, 0xF2, 0xB5, 0xFF, 0xF9, 0xF8, 0xC3, 0xFF, 0xFA, 0xFA, 0xD3, 0xFF, 0xFB, 0xFB, 0xE2, 0xFF, 0xFB, + 0xFE, 0xED, 0xFF, 0xF3, 0xF9, 0xEF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0xEE, 0xDC, 0x7E, 0xFF, + 0xFD, 0xAD, 0x26, 0xFF, 0xF7, 0xAF, 0x29, 0xFF, 0xF1, 0xB1, 0x2D, 0xFF, 0xDF, 0xB1, 0x34, 0xFF, 0xF6, 0xA6, 0x09, + 0xFF, 0xF4, 0xD3, 0x8C, 0xFF, 0xF8, 0xFB, 0xFC, 0xFF, 0xF6, 0xFF, 0xFF, 0xFF, 0xEB, 0xFF, 0xFD, 0xFF, 0xE5, 0xFE, + 0xFC, 0xFF, 0xE0, 0xFB, 0xFB, 0xFF, 0xDE, 0xFC, 0xF9, 0xFF, 0xDC, 0xFC, 0xF7, 0xFF, 0xEF, 0xFF, 0xFC, 0xFF, 0xEB, + 0xFC, 0xF8, 0xFF, 0xD0, 0xF5, 0xE8, 0xFF, 0xBC, 0xF5, 0xDF, 0xFF, 0xAC, 0xF1, 0xD8, 0xFF, 0x9D, 0xED, 0xD2, 0xFF, + 0x7D, 0xE8, 0xC4, 0xFF, 0x6C, 0xE1, 0xB7, 0xFF, 0x5E, 0xDC, 0xAB, 0xFF, 0x4F, 0xD7, 0x9E, 0xFF, 0x5E, 0xC9, 0x98, + 0xFF, 0x35, 0xC6, 0x92, 0xFF, 0x42, 0xC9, 0x8B, 0xFF, 0x4D, 0xB2, 0x80, 0xFF, 0xF1, 0x9B, 0x00, 0xFF, 0xF8, 0x93, + 0x17, 0xFF, 0xF4, 0x95, 0x15, 0xFF, 0xF1, 0x97, 0x12, 0xFF, 0xF0, 0x96, 0x11, 0xFF, 0xEF, 0x95, 0x10, 0xFF, 0xEF, + 0x95, 0x10, 0xFF, 0xF4, 0xCE, 0x55, 0xFF, 0xF4, 0xCD, 0x54, 0xFF, 0xF5, 0xCC, 0x52, 0xFF, 0xF6, 0xCB, 0x51, 0xFF, + 0xF8, 0xCB, 0x50, 0xFF, 0xF1, 0xC8, 0x49, 0xFF, 0xF9, 0xD5, 0x51, 0xFF, 0xC0, 0x62, 0x15, 0xFF, 0xBB, 0x5C, 0x00, + 0xFF, 0xCC, 0x74, 0x07, 0xFF, 0xCD, 0x7C, 0x02, 0xFF, 0xD4, 0x8D, 0x02, 0xFF, 0xDB, 0x9E, 0x01, 0xFF, 0xDC, 0xAD, + 0x08, 0xFF, 0xED, 0xC1, 0x36, 0xFF, 0xEE, 0xCF, 0x5A, 0xFF, 0xF0, 0xDC, 0x7D, 0xFF, 0xF3, 0xE1, 0x87, 0xFF, 0xF7, + 0xE6, 0x91, 0xFF, 0xF8, 0xED, 0xA5, 0xFF, 0xF8, 0xF5, 0xB8, 0xFF, 0xFB, 0xF9, 0xC6, 0xFF, 0xFD, 0xFD, 0xD4, 0xFF, + 0xFB, 0xFC, 0xDF, 0xFF, 0xFA, 0xFC, 0xE9, 0xFF, 0xFD, 0xFE, 0xF0, 0xFF, 0xFF, 0xFF, 0xF7, 0xFF, 0xFE, 0xFF, 0xFA, + 0xFF, 0xFB, 0xFE, 0xFC, 0xFF, 0xFF, 0xFA, 0xFD, 0xFF, 0xE7, 0xAF, 0x1D, 0xFF, 0xEE, 0xB0, 0x2A, 0xFF, 0xF5, 0xB1, + 0x37, 0xFF, 0xF6, 0xB8, 0x24, 0xFF, 0xF7, 0xB4, 0x28, 0xFF, 0xF4, 0xAF, 0x21, 0xFF, 0xF2, 0xAA, 0x1A, 0xFF, 0xF5, + 0xD7, 0x9E, 0xFF, 0xE9, 0xFF, 0xFC, 0xFF, 0xE0, 0xFE, 0xFC, 0xFF, 0xD7, 0xFD, 0xFC, 0xFF, 0xDA, 0xFA, 0xF8, 0xFF, + 0xDD, 0xF7, 0xF3, 0xFF, 0xF4, 0xFD, 0xFD, 0xFF, 0xE0, 0xF9, 0xF6, 0xFF, 0xC3, 0xEC, 0xDF, 0xFF, 0xB5, 0xEF, 0xD7, + 0xFF, 0xA5, 0xEC, 0xD2, 0xFF, 0x95, 0xE9, 0xCC, 0xFF, 0x67, 0xE5, 0xBB, 0xFF, 0x55, 0xDB, 0xAB, 0xFF, 0x44, 0xD3, + 0x9E, 0xFF, 0x32, 0xCB, 0x91, 0xFF, 0x24, 0xC8, 0x85, 0xFF, 0x6A, 0xB4, 0x79, 0xFF, 0xAF, 0x9D, 0x3A, 0xFF, 0xFF, + 0x97, 0x0B, 0xFF, 0xF9, 0x93, 0x18, 0xFF, 0xED, 0x9B, 0x0F, 0xFF, 0xF0, 0x9A, 0x12, 0xFF, 0xF3, 0x98, 0x15, 0xFF, + 0xF1, 0x96, 0x13, 0xFF, 0xEF, 0x94, 0x11, 0xFF, 0xEF, 0x94, 0x11, 0xFF, 0xF4, 0xCF, 0x58, 0xFF, 0xF4, 0xCE, 0x55, + 0xFF, 0xF4, 0xCD, 0x53, 0xFF, 0xF6, 0xCC, 0x52, 0xFF, 0xF8, 0xCB, 0x52, 0xFF, 0xFA, 0xD5, 0x52, 0xFF, 0xFB, 0xC7, + 0x4E, 0xFF, 0xAD, 0x4C, 0x00, 0xFF, 0xCA, 0x6F, 0x09, 0xFF, 0xD3, 0x7F, 0x0B, 0xFF, 0xD4, 0x88, 0x05, 0xFF, 0xDB, + 0x97, 0x04, 0xFF, 0xE1, 0xA7, 0x04, 0xFF, 0xE5, 0xB6, 0x18, 0xFF, 0xF1, 0xC7, 0x3F, 0xFF, 0xF3, 0xD3, 0x62, 0xFF, + 0xF4, 0xDF, 0x86, 0xFF, 0xF7, 0xE4, 0x91, 0xFF, 0xF9, 0xE9, 0x9B, 0xFF, 0xF9, 0xF0, 0xAD, 0xFF, 0xF9, 0xF7, 0xBF, + 0xFF, 0xFB, 0xFA, 0xCB, 0xFF, 0xFD, 0xFC, 0xD7, 0xFF, 0xFC, 0xFD, 0xDE, 0xFF, 0xFB, 0xFD, 0xE5, 0xFF, 0xFE, 0xFF, + 0xEF, 0xFF, 0xFF, 0xFF, 0xF9, 0xFF, 0xFA, 0xFE, 0xF2, 0xFF, 0xFC, 0xFE, 0xFE, 0xFF, 0xFB, 0xE9, 0xC6, 0xFF, 0xEC, + 0xAF, 0x1D, 0xFF, 0xF6, 0xB4, 0x30, 0xFF, 0xF8, 0xB6, 0x2F, 0xFF, 0xF6, 0xA7, 0x19, 0xFF, 0xF0, 0xB0, 0x26, 0xFF, + 0xF2, 0xAD, 0x22, 0xFF, 0xF5, 0xAB, 0x1D, 0xFF, 0xF9, 0xA9, 0x26, 0xFF, 0xF6, 0xA6, 0x1C, 0xFF, 0xE9, 0xCD, 0x7D, + 0xFF, 0xDC, 0xF4, 0xDF, 0xFF, 0xAF, 0xFE, 0xEA, 0xFF, 0xED, 0xFD, 0xFD, 0xFF, 0xEF, 0xFF, 0xFF, 0xFF, 0xD3, 0xF8, + 0xFB, 0xFF, 0xB4, 0xEE, 0xEC, 0xFF, 0xAB, 0xE9, 0xE6, 0xFF, 0x89, 0xE6, 0xD8, 0xFF, 0x67, 0xE2, 0xCB, 0xFF, 0x52, + 0xE1, 0xB8, 0xFF, 0x4C, 0xDD, 0xA6, 0xFF, 0x7E, 0xC5, 0x74, 0xFF, 0xB0, 0xAD, 0x42, 0xFF, 0xF3, 0x9B, 0x22, 0xFF, + 0xFF, 0x9C, 0x09, 0xFF, 0xF5, 0x98, 0x09, 0xFF, 0xEE, 0x9C, 0x10, 0xFF, 0xED, 0x99, 0x17, 0xFF, 0xED, 0x9D, 0x14, + 0xFF, 0xEF, 0x9B, 0x14, 0xFF, 0xF2, 0x99, 0x15, 0xFF, 0xF0, 0x97, 0x13, 0xFF, 0xEE, 0x95, 0x11, 0xFF, 0xEE, 0x95, + 0x11, 0xFF, 0xF5, 0xD0, 0x5A, 0xFF, 0xF4, 0xCF, 0x57, 0xFF, 0xF3, 0xCE, 0x54, 0xFF, 0xF5, 0xCC, 0x53, 0xFF, 0xF7, + 0xCB, 0x53, 0xFF, 0xF4, 0xD3, 0x4C, 0xFF, 0xDD, 0x9A, 0x2C, 0xFF, 0xC1, 0x5D, 0x03, 0xFF, 0xC8, 0x72, 0x05, 0xFF, + 0xD2, 0x83, 0x06, 0xFF, 0xDC, 0x93, 0x07, 0xFF, 0xE1, 0xA2, 0x07, 0xFF, 0xE7, 0xB0, 0x08, 0xFF, 0xEE, 0xBF, 0x27, + 0xFF, 0xF6, 0xCD, 0x47, 0xFF, 0xF7, 0xD8, 0x6B, 0xFF, 0xF9, 0xE2, 0x8E, 0xFF, 0xFA, 0xE7, 0x9A, 0xFF, 0xFB, 0xEC, + 0xA6, 0xFF, 0xFA, 0xF3, 0xB6, 0xFF, 0xFA, 0xF9, 0xC7, 0xFF, 0xFB, 0xFB, 0xD0, 0xFF, 0xFD, 0xFC, 0xD9, 0xFF, 0xFC, + 0xFD, 0xDD, 0xFF, 0xFC, 0xFE, 0xE2, 0xFF, 0xFE, 0xFF, 0xEE, 0xFF, 0xFF, 0xFF, 0xFB, 0xFF, 0xF7, 0xFD, 0xEA, 0xFF, + 0xFE, 0xFE, 0xFF, 0xFF, 0xF7, 0xD7, 0x8F, 0xFF, 0xF1, 0xAF, 0x1E, 0xFF, 0xF6, 0xB0, 0x2E, 0xFF, 0xEB, 0xAB, 0x17, + 0xFF, 0xFD, 0xF7, 0xDF, 0xFF, 0xE9, 0xAC, 0x24, 0xFF, 0xF0, 0xAC, 0x22, 0xFF, 0xF8, 0xAC, 0x21, 0xFF, 0xF6, 0xAE, + 0x26, 0xFF, 0xF5, 0xB0, 0x2B, 0xFF, 0xF4, 0xA9, 0x19, 0xFF, 0xF3, 0xA2, 0x08, 0xFF, 0xF9, 0xA7, 0x22, 0xFF, 0xF2, + 0xC1, 0x4C, 0xFF, 0xEE, 0xCD, 0x6D, 0xFF, 0xDB, 0xC9, 0x7D, 0xFF, 0xC2, 0xCA, 0x7F, 0xFF, 0xC6, 0xC5, 0x81, 0xFF, + 0xCB, 0xBC, 0x60, 0xFF, 0xCF, 0xB3, 0x40, 0xFF, 0xE9, 0xA7, 0x24, 0xFF, 0xFF, 0x9B, 0x07, 0xFF, 0xFF, 0x9D, 0x10, + 0xFF, 0xFF, 0x9F, 0x1A, 0xFF, 0xE9, 0x98, 0x0F, 0xFF, 0xF9, 0x9C, 0x14, 0xFF, 0xF7, 0x9C, 0x14, 0xFF, 0xF4, 0x9B, + 0x14, 0xFF, 0xF1, 0x9D, 0x17, 0xFF, 0xED, 0x9E, 0x19, 0xFF, 0xEF, 0x9C, 0x16, 0xFF, 0xF1, 0x99, 0x14, 0xFF, 0xEF, + 0x97, 0x12, 0xFF, 0xED, 0x95, 0x10, 0xFF, 0xED, 0x95, 0x10, 0xFF, 0xF6, 0xD1, 0x5C, 0xFF, 0xF4, 0xD0, 0x58, 0xFF, + 0xF3, 0xCF, 0x55, 0xFF, 0xF5, 0xCD, 0x54, 0xFF, 0xF7, 0xCC, 0x53, 0xFF, 0xF6, 0xD5, 0x51, 0xFF, 0xCE, 0x7B, 0x16, + 0xFF, 0xC6, 0x67, 0x03, 0xFF, 0xCF, 0x7B, 0x06, 0xFF, 0xD7, 0x8B, 0x05, 0xFF, 0xDF, 0x9B, 0x05, 0xFF, 0xE4, 0xA8, + 0x07, 0xFF, 0xEA, 0xB6, 0x09, 0xFF, 0xF1, 0xC3, 0x2A, 0xFF, 0xF7, 0xD1, 0x4C, 0xFF, 0xF8, 0xDB, 0x6C, 0xFF, 0xFA, + 0xE4, 0x8D, 0xFF, 0xFA, 0xEA, 0x9C, 0xFF, 0xFB, 0xEF, 0xAB, 0xFF, 0xFA, 0xF5, 0xBC, 0xFF, 0xFA, 0xFA, 0xCD, 0xFF, + 0xFB, 0xFB, 0xD4, 0xFF, 0xFD, 0xFC, 0xDB, 0xFF, 0xFC, 0xFD, 0xDC, 0xFF, 0xFC, 0xFE, 0xDD, 0xFF, 0xFC, 0xFE, 0xE3, + 0xFF, 0xFD, 0xFE, 0xEA, 0xFF, 0xFD, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDE, 0xC0, 0x27, 0xFF, 0xF5, 0xB4, + 0x26, 0xFF, 0xF8, 0xB0, 0x1E, 0xFF, 0xFF, 0xC6, 0x4D, 0xFF, 0xEF, 0xF8, 0xFF, 0xFF, 0xFA, 0xFF, 0xFE, 0xFF, 0xF6, + 0xD8, 0x8B, 0xFF, 0xF3, 0xA7, 0x18, 0xFF, 0xF4, 0xA9, 0x1D, 0xFF, 0xF5, 0xAC, 0x22, 0xFF, 0xF2, 0xAB, 0x22, 0xFF, + 0xF0, 0xAB, 0x22, 0xFF, 0xF2, 0xA3, 0x1A, 0xFF, 0xEE, 0xA6, 0x1A, 0xFF, 0xF4, 0xA8, 0x17, 0xFF, 0xF3, 0xA2, 0x0D, + 0xFF, 0xF2, 0xA4, 0x10, 0xFF, 0xFF, 0xA3, 0x14, 0xFF, 0xFC, 0xA3, 0x15, 0xFF, 0xF9, 0xA2, 0x16, 0xFF, 0xF2, 0xA2, + 0x17, 0xFF, 0xEC, 0xA1, 0x18, 0xFF, 0xFD, 0x99, 0x0D, 0xFF, 0xED, 0x9A, 0x16, 0xFF, 0xFF, 0xA0, 0x00, 0xFF, 0xE8, + 0x9C, 0x2B, 0xFF, 0xAF, 0xB5, 0x60, 0xFF, 0xF7, 0x99, 0x10, 0xFF, 0xF2, 0x9B, 0x14, 0xFF, 0xED, 0x9D, 0x18, 0xFF, + 0xEE, 0x9B, 0x16, 0xFF, 0xEF, 0x99, 0x13, 0xFF, 0xED, 0x97, 0x11, 0xFF, 0xEB, 0x95, 0x0F, 0xFF, 0xEB, 0x95, 0x0F, + 0xFF, 0xF7, 0xD2, 0x5E, 0xFF, 0xF4, 0xD1, 0x5A, 0xFF, 0xF2, 0xD0, 0x56, 0xFF, 0xF5, 0xCE, 0x54, 0xFF, 0xF7, 0xCC, + 0x53, 0xFF, 0xF7, 0xD7, 0x56, 0xFF, 0xC0, 0x5B, 0x00, 0xFF, 0xCB, 0x70, 0x03, 0xFF, 0xD6, 0x84, 0x06, 0xFF, 0xDC, + 0x94, 0x05, 0xFF, 0xE2, 0xA3, 0x03, 0xFF, 0xE8, 0xAF, 0x07, 0xFF, 0xEE, 0xBB, 0x0B, 0xFF, 0xF3, 0xC8, 0x2D, 0xFF, + 0xF8, 0xD5, 0x50, 0xFF, 0xF9, 0xDE, 0x6E, 0xFF, 0xFA, 0xE6, 0x8C, 0xFF, 0xFB, 0xEC, 0x9F, 0xFF, 0xFB, 0xF2, 0xB1, + 0xFF, 0xFA, 0xF7, 0xC2, 0xFF, 0xF9, 0xFB, 0xD3, 0xFF, 0xFB, 0xFC, 0xD8, 0xFF, 0xFD, 0xFC, 0xDD, 0xFF, 0xFC, 0xFD, + 0xDB, 0xFF, 0xFC, 0xFE, 0xD8, 0xFF, 0xFB, 0xFD, 0xD8, 0xFF, 0xFA, 0xFC, 0xD9, 0xFF, 0xFA, 0xFA, 0xE4, 0xFF, 0xF6, + 0xE9, 0xA3, 0xFF, 0xFB, 0xAC, 0x2A, 0xFF, 0xFA, 0xB9, 0x2E, 0xFF, 0xED, 0xAD, 0x1A, 0xFF, 0xF7, 0xDA, 0x99, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xFD, 0xFE, 0xFF, 0xFC, 0xFE, 0xFE, 0xFF, 0xFD, 0xFF, 0xFF, 0xFF, 0xF9, 0xD4, 0x8C, + 0xFF, 0xF5, 0xA8, 0x19, 0xFF, 0xF7, 0xA9, 0x17, 0xFF, 0xF8, 0xA9, 0x16, 0xFF, 0xF3, 0xA7, 0x1A, 0xFF, 0xED, 0xA5, + 0x1E, 0xFF, 0xF1, 0xA7, 0x1F, 0xFF, 0xF6, 0xA9, 0x20, 0xFF, 0xF6, 0xA7, 0x1D, 0xFF, 0xF6, 0xA5, 0x1A, 0xFF, 0xF8, + 0xA3, 0x16, 0xFF, 0xFA, 0xA1, 0x12, 0xFF, 0xFC, 0x9D, 0x0A, 0xFF, 0xFE, 0x98, 0x03, 0xFF, 0xF9, 0xA1, 0x25, 0xFF, + 0xB0, 0xC0, 0x6F, 0xFF, 0x5D, 0xC9, 0xCF, 0xFF, 0x27, 0xE5, 0xFF, 0xFF, 0xB3, 0xB4, 0x73, 0xFF, 0xF9, 0x97, 0x0B, + 0xFF, 0xF3, 0x9A, 0x11, 0xFF, 0xED, 0x9D, 0x17, 0xFF, 0xEE, 0x9B, 0x15, 0xFF, 0xEE, 0x9A, 0x13, 0xFF, 0xEC, 0x98, + 0x11, 0xFF, 0xEA, 0x96, 0x0F, 0xFF, 0xEA, 0x96, 0x0F, 0xFF, 0xF6, 0xD1, 0x5D, 0xFF, 0xF5, 0xD1, 0x5A, 0xFF, 0xF4, + 0xD2, 0x58, 0xFF, 0xF3, 0xCE, 0x53, 0xFF, 0xFA, 0xD1, 0x56, 0xFF, 0xE6, 0xB1, 0x3F, 0xFF, 0xC6, 0x64, 0x01, 0xFF, + 0xCE, 0x75, 0x02, 0xFF, 0xD7, 0x87, 0x04, 0xFF, 0xDD, 0x95, 0x02, 0xFF, 0xE4, 0xA4, 0x00, 0xFF, 0xEA, 0xB0, 0x03, + 0xFF, 0xF1, 0xBD, 0x06, 0xFF, 0xF2, 0xC8, 0x1B, 0xFF, 0xFB, 0xD5, 0x42, 0xFF, 0xFB, 0xDD, 0x63, 0xFF, 0xFB, 0xE5, + 0x84, 0xFF, 0xFC, 0xEB, 0x98, 0xFF, 0xFC, 0xF1, 0xAB, 0xFF, 0xFF, 0xF8, 0xBD, 0xFF, 0xFF, 0xFF, 0xCF, 0xFF, 0xFF, + 0xFC, 0xCF, 0xFF, 0xFB, 0xF9, 0xCF, 0xFF, 0xFD, 0xFE, 0xD2, 0xFF, 0xFF, 0xFF, 0xD4, 0xFF, 0xFF, 0xF9, 0xC6, 0xFF, + 0xFF, 0xEE, 0xB7, 0xFF, 0xD9, 0xD7, 0x59, 0xFF, 0xE9, 0xB9, 0x40, 0xFF, 0xFF, 0xB9, 0x2E, 0xFF, 0xEF, 0xB1, 0x2B, + 0xFF, 0xEB, 0xAF, 0x27, 0xFF, 0xF1, 0xEF, 0xDD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFE, 0xFF, 0xFD, 0xFE, + 0xFF, 0xFF, 0xF9, 0xFD, 0xFF, 0xFF, 0xF9, 0xFF, 0xFF, 0xFF, 0xF9, 0xFF, 0xFF, 0xFF, 0xF0, 0xE8, 0xC1, 0xFF, 0xE6, + 0xCD, 0x83, 0xFF, 0xE8, 0xBB, 0x52, 0xFF, 0xEB, 0xA9, 0x21, 0xFF, 0xFF, 0xA1, 0x13, 0xFF, 0xF7, 0x9F, 0x06, 0xFF, + 0xF8, 0x9F, 0x0F, 0xFF, 0xEA, 0xA3, 0x18, 0xFF, 0xE0, 0xB1, 0x43, 0xFF, 0xC9, 0xC2, 0x6D, 0xFF, 0x99, 0xD6, 0xAF, + 0xFF, 0x6A, 0xEB, 0xF1, 0xFF, 0x31, 0xEE, 0xEB, 0xFF, 0x47, 0xE6, 0xF8, 0xFF, 0x3A, 0xE1, 0xFF, 0xFF, 0x41, 0xE1, + 0xFC, 0xFF, 0xF4, 0x98, 0x00, 0xFF, 0xFC, 0xA1, 0x19, 0xFF, 0xF6, 0x9E, 0x15, 0xFF, 0xF1, 0x9A, 0x11, 0xFF, 0xF0, + 0x9A, 0x13, 0xFF, 0xF0, 0x99, 0x14, 0xFF, 0xEE, 0x97, 0x12, 0xFF, 0xEC, 0x95, 0x10, 0xFF, 0xEC, 0x95, 0x10, 0xFF, + 0xF5, 0xCF, 0x5C, 0xFF, 0xF6, 0xD1, 0x5A, 0xFF, 0xF6, 0xD4, 0x59, 0xFF, 0xF2, 0xCD, 0x51, 0xFF, 0xFE, 0xD6, 0x59, + 0xFF, 0xD5, 0x8B, 0x29, 0xFF, 0xCB, 0x6C, 0x02, 0xFF, 0xD1, 0x7A, 0x01, 0xFF, 0xD8, 0x89, 0x01, 0xFF, 0xDE, 0x97, + 0x00, 0xFF, 0xE5, 0xA5, 0x00, 0xFF, 0xEC, 0xB2, 0x00, 0xFF, 0xF3, 0xBE, 0x02, 0xFF, 0xF1, 0xC7, 0x08, 0xFF, 0xFE, + 0xD5, 0x35, 0xFF, 0xFD, 0xDD, 0x58, 0xFF, 0xFB, 0xE4, 0x7C, 0xFF, 0xFC, 0xEA, 0x91, 0xFF, 0xFE, 0xEF, 0xA6, 0xFF, + 0xFE, 0xF2, 0xB0, 0xFF, 0xFE, 0xF5, 0xBA, 0xFF, 0xFC, 0xF5, 0xBD, 0xFF, 0xF9, 0xF5, 0xC0, 0xFF, 0xF6, 0xF7, 0xC0, + 0xFF, 0xF4, 0xF9, 0xC1, 0xFF, 0xFC, 0xFC, 0xC6, 0xFF, 0xFF, 0xFF, 0xCC, 0xFF, 0xF7, 0xF8, 0xC1, 0xFF, 0xF3, 0xCC, + 0x59, 0xFF, 0xF2, 0xB0, 0x38, 0xFF, 0xF5, 0xBA, 0x37, 0xFF, 0xF7, 0xB4, 0x29, 0xFF, 0xF8, 0xFB, 0xFC, 0xFF, 0xFF, + 0xFD, 0xFC, 0xFF, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xF6, 0xFC, 0xFF, 0xFF, 0xF2, 0xFE, 0xFC, 0xFF, + 0xEE, 0xFF, 0xF6, 0xFF, 0xE9, 0xFF, 0xFC, 0xFF, 0xE4, 0xFF, 0xFF, 0xFF, 0xD7, 0xFF, 0xFF, 0xFF, 0xCA, 0xFF, 0xFF, + 0xFF, 0xF1, 0xFB, 0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0xFF, 0xC1, 0xFD, 0xFC, 0xFF, 0x88, 0xFF, 0xF6, 0xFF, 0x91, 0xFD, + 0xFB, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0x6C, 0xFC, 0xFC, 0xFF, 0x59, 0xF6, 0xF9, 0xFF, 0x58, 0xEF, 0xF8, 0xFF, 0x57, + 0xE9, 0xF7, 0xFF, 0x59, 0xE3, 0xF6, 0xFF, 0x67, 0xD2, 0xD0, 0xFF, 0xFF, 0x98, 0x08, 0xFF, 0xEF, 0x9A, 0x17, 0xFF, + 0xF1, 0x99, 0x12, 0xFF, 0xF4, 0x98, 0x0C, 0xFF, 0xF3, 0x99, 0x10, 0xFF, 0xF1, 0x99, 0x15, 0xFF, 0xEF, 0x97, 0x13, + 0xFF, 0xED, 0x95, 0x11, 0xFF, 0xED, 0x95, 0x11, 0xFF, 0xF9, 0xD1, 0x5E, 0xFF, 0xF7, 0xD3, 0x5B, 0xFF, 0xF6, 0xD4, + 0x59, 0xFF, 0xF8, 0xD3, 0x57, 0xFF, 0xFF, 0xDA, 0x5E, 0xFF, 0xCD, 0x70, 0x19, 0xFF, 0xCC, 0x6D, 0x02, 0xFF, 0xD2, + 0x7B, 0x03, 0xFF, 0xD9, 0x88, 0x04, 0xFF, 0xDF, 0x96, 0x04, 0xFF, 0xE6, 0xA5, 0x04, 0xFF, 0xE6, 0xAD, 0x01, 0xFF, + 0xE7, 0xB4, 0x00, 0xFF, 0xEA, 0xBE, 0x06, 0xFF, 0xF5, 0xCA, 0x23, 0xFF, 0xF8, 0xD7, 0x4B, 0xFF, 0xFB, 0xE3, 0x74, + 0xFF, 0xFC, 0xE8, 0x89, 0xFF, 0xFE, 0xEC, 0x9E, 0xFF, 0xFE, 0xED, 0xA5, 0xFF, 0xFE, 0xEE, 0xAB, 0xFF, 0xFB, 0xEF, + 0xAD, 0xFF, 0xF9, 0xEF, 0xB0, 0xFF, 0xF8, 0xF2, 0xB3, 0xFF, 0xF8, 0xF5, 0xB6, 0xFF, 0xFC, 0xF8, 0xB5, 0xFF, 0xFF, + 0xFB, 0xB5, 0xFF, 0xFF, 0xF3, 0xD9, 0xFF, 0xF1, 0xB9, 0x1A, 0xFF, 0xF3, 0xB3, 0x28, 0xFF, 0xF6, 0xB3, 0x2A, 0xFF, + 0xF3, 0xCE, 0x73, 0xFF, 0xF5, 0xFD, 0xFD, 0xFF, 0xF9, 0xFE, 0xFD, 0xFF, 0xFE, 0xFF, 0xFD, 0xFF, 0xF8, 0xFE, 0xFF, + 0xFF, 0xF3, 0xFD, 0xFF, 0xFF, 0xEE, 0xFE, 0xFD, 0xFF, 0xE9, 0xFE, 0xFA, 0xFF, 0xE3, 0xFF, 0xFC, 0xFF, 0xDE, 0xFF, + 0xFF, 0xFF, 0xD0, 0xFF, 0xFF, 0xFF, 0xC2, 0xFF, 0xFF, 0xFF, 0xD6, 0xFA, 0xFC, 0xFF, 0xF3, 0xFC, 0xFF, 0xFF, 0xBF, + 0xFF, 0xFE, 0xFF, 0xC4, 0xFA, 0xFC, 0xFF, 0x84, 0xFF, 0xFC, 0xFF, 0x8A, 0xFA, 0xFB, 0xFF, 0x79, 0xF6, 0xFA, 0xFF, + 0x68, 0xF2, 0xF9, 0xFF, 0x5E, 0xED, 0xF6, 0xFF, 0x53, 0xE8, 0xF4, 0xFF, 0x48, 0xE8, 0xF7, 0xFF, 0xA8, 0xBC, 0x87, + 0xFF, 0xFB, 0x9A, 0x10, 0xFF, 0xF1, 0x9B, 0x17, 0xFF, 0xF1, 0x9A, 0x14, 0xFF, 0xF1, 0x9A, 0x10, 0xFF, 0xF2, 0x99, + 0x13, 0xFF, 0xF3, 0x98, 0x16, 0xFF, 0xF1, 0x96, 0x14, 0xFF, 0xEF, 0x94, 0x12, 0xFF, 0xEF, 0x94, 0x12, 0xFF, 0xFC, + 0xD4, 0x61, 0xFF, 0xF9, 0xD4, 0x5D, 0xFF, 0xF6, 0xD4, 0x58, 0xFF, 0xF5, 0xD1, 0x55, 0xFF, 0xF5, 0xCE, 0x53, 0xFF, + 0xBD, 0x4D, 0x01, 0xFF, 0xCD, 0x6E, 0x02, 0xFF, 0xD3, 0x7B, 0x04, 0xFF, 0xDA, 0x87, 0x06, 0xFF, 0xE0, 0x96, 0x09, + 0xFF, 0xE6, 0xA5, 0x0C, 0xFF, 0xE9, 0xB0, 0x0A, 0xFF, 0xEB, 0xBA, 0x09, 0xFF, 0xF3, 0xC5, 0x15, 0xFF, 0xFB, 0xD0, + 0x21, 0xFF, 0xFB, 0xD9, 0x46, 0xFF, 0xFB, 0xE3, 0x6B, 0xFF, 0xFC, 0xE6, 0x81, 0xFF, 0xFD, 0xE9, 0x97, 0xFF, 0xFD, + 0xE8, 0x99, 0xFF, 0xFD, 0xE8, 0x9B, 0xFF, 0xFB, 0xE8, 0x9D, 0xFF, 0xF8, 0xE9, 0x9F, 0xFF, 0xFA, 0xEE, 0xA5, 0xFF, + 0xFC, 0xF2, 0xAB, 0xFF, 0xFB, 0xEF, 0xB0, 0xFF, 0xFB, 0xEB, 0xB4, 0xFF, 0xF8, 0xDD, 0x89, 0xFF, 0xF3, 0xB4, 0x27, + 0xFF, 0xF7, 0xBD, 0x3E, 0xFF, 0xF7, 0xAC, 0x1E, 0xFF, 0xF0, 0xE8, 0xBC, 0xFF, 0xF2, 0xFF, 0xFE, 0xFF, 0xF3, 0xFF, + 0xFD, 0xFF, 0xF4, 0xFE, 0xFD, 0xFF, 0xF2, 0xFE, 0xFD, 0xFF, 0xEF, 0xFE, 0xFE, 0xFF, 0xE9, 0xFE, 0xFE, 0xFF, 0xE3, + 0xFE, 0xFE, 0xFF, 0xDD, 0xFD, 0xFD, 0xFF, 0xD7, 0xFD, 0xFD, 0xFF, 0xC8, 0xFE, 0xFC, 0xFF, 0xB9, 0xFF, 0xFB, 0xFF, + 0x9F, 0xFE, 0xF5, 0xFF, 0xCE, 0xFF, 0xFF, 0xFF, 0xF5, 0xF9, 0xFF, 0xFF, 0xC8, 0xFF, 0xFF, 0xFF, 0xBD, 0xF7, 0xFC, + 0xFF, 0x7A, 0xF8, 0xF8, 0xFF, 0x6B, 0xF5, 0xF8, 0xFF, 0x5C, 0xF3, 0xF9, 0xFF, 0x55, 0xED, 0xF5, 0xFF, 0x4F, 0xE8, + 0xF1, 0xFF, 0x37, 0xEE, 0xF8, 0xFF, 0xE9, 0xA6, 0x3E, 0xFF, 0xF5, 0x9C, 0x17, 0xFF, 0xF4, 0x9D, 0x17, 0xFF, 0xF1, + 0x9C, 0x15, 0xFF, 0xEE, 0x9B, 0x14, 0xFF, 0xF1, 0x99, 0x15, 0xFF, 0xF4, 0x97, 0x17, 0xFF, 0xF2, 0x95, 0x15, 0xFF, + 0xF0, 0x93, 0x13, 0xFF, 0xF0, 0x93, 0x13, 0xFF, 0xFB, 0xD6, 0x66, 0xFF, 0xF4, 0xD1, 0x5E, 0xFF, 0xF6, 0xD3, 0x5F, + 0xFF, 0xF9, 0xD7, 0x59, 0xFF, 0xDA, 0x9D, 0x39, 0xFF, 0xBE, 0x58, 0x08, 0xFF, 0xCD, 0x6C, 0x08, 0xFF, 0xD2, 0x79, + 0x0C, 0xFF, 0xD7, 0x87, 0x0F, 0xFF, 0xDF, 0x96, 0x11, 0xFF, 0xE7, 0xA5, 0x13, 0xFF, 0xEA, 0xB0, 0x13, 0xFF, 0xF5, + 0xC2, 0x1B, 0xFF, 0xF3, 0xC8, 0x0F, 0xFF, 0xF9, 0xD0, 0x16, 0xFF, 0xF4, 0xD2, 0x27, 0xFF, 0xF7, 0xD6, 0x4B, 0xFF, + 0xF8, 0xDA, 0x60, 0xFF, 0xF9, 0xDE, 0x76, 0xFF, 0xF9, 0xDF, 0x7F, 0xFF, 0xFA, 0xE0, 0x87, 0xFF, 0xFB, 0xE4, 0x8C, + 0xFF, 0xFB, 0xE7, 0x91, 0xFF, 0xFC, 0xEA, 0x95, 0xFF, 0xFC, 0xED, 0x9A, 0xFF, 0xFB, 0xEA, 0x9E, 0xFF, 0xFA, 0xE7, + 0xA3, 0xFF, 0xFA, 0xCC, 0x5E, 0xFF, 0xF5, 0xB6, 0x2C, 0xFF, 0xF9, 0xB8, 0x24, 0xFF, 0xF5, 0xB1, 0x14, 0xFF, 0xFF, + 0xFB, 0xFF, 0xFF, 0xEC, 0xFF, 0xFD, 0xFF, 0xED, 0xFF, 0xFF, 0xFF, 0xED, 0xFF, 0xFF, 0xFF, 0xEC, 0xFE, 0xFF, 0xFF, + 0xEA, 0xFD, 0xFD, 0xFF, 0xE3, 0xFD, 0xFD, 0xFF, 0xDC, 0xFD, 0xFD, 0xFF, 0xD5, 0xFD, 0xFD, 0xFF, 0xCE, 0xFD, 0xFD, + 0xFF, 0xC1, 0xFC, 0xFC, 0xFF, 0xB4, 0xFB, 0xFB, 0xFF, 0x8D, 0xFA, 0xF5, 0xFF, 0x89, 0xFC, 0xF8, 0xFF, 0xCB, 0xFA, + 0xF8, 0xFF, 0xF1, 0xFE, 0xF7, 0xFF, 0xBD, 0xFF, 0xF9, 0xFF, 0xC2, 0xF9, 0xFA, 0xFF, 0xAC, 0xF8, 0xFB, 0xFF, 0x96, + 0xF7, 0xFC, 0xFF, 0x91, 0xF4, 0xF9, 0xFF, 0x8C, 0xF0, 0xF7, 0xFF, 0xA8, 0xE4, 0xFF, 0xFF, 0xF6, 0x95, 0x00, 0xFF, + 0xF6, 0x99, 0x07, 0xFF, 0xF7, 0x9D, 0x15, 0xFF, 0xF3, 0x9D, 0x15, 0xFF, 0xF0, 0x9C, 0x15, 0xFF, 0xF2, 0x9A, 0x15, + 0xFF, 0xF4, 0x98, 0x15, 0xFF, 0xF2, 0x97, 0x14, 0xFF, 0xF1, 0x95, 0x12, 0xFF, 0xF1, 0x95, 0x12, 0xFF, 0xFA, 0xD9, + 0x6A, 0xFF, 0xF0, 0xCE, 0x60, 0xFF, 0xF6, 0xD2, 0x66, 0xFF, 0xFD, 0xDD, 0x5C, 0xFF, 0xC0, 0x6C, 0x1E, 0xFF, 0xBE, + 0x63, 0x0E, 0xFF, 0xCD, 0x69, 0x0E, 0xFF, 0xD0, 0x78, 0x13, 0xFF, 0xD4, 0x87, 0x18, 0xFF, 0xDE, 0x96, 0x19, 0xFF, + 0xE9, 0xA6, 0x1A, 0xFF, 0xE3, 0xA8, 0x13, 0xFF, 0xEE, 0xBA, 0x1D, 0xFF, 0xEA, 0xBD, 0x0C, 0xFF, 0xF6, 0xC5, 0x22, + 0xFF, 0xEC, 0xC5, 0x13, 0xFF, 0xF2, 0xCA, 0x2A, 0xFF, 0xF3, 0xCF, 0x40, 0xFF, 0xF4, 0xD3, 0x56, 0xFF, 0xF5, 0xD6, + 0x65, 0xFF, 0xF7, 0xD9, 0x74, 0xFF, 0xFA, 0xDF, 0x7B, 0xFF, 0xFE, 0xE4, 0x82, 0xFF, 0xFD, 0xE6, 0x86, 0xFF, 0xFD, + 0xE7, 0x89, 0xFF, 0xFB, 0xE4, 0x8D, 0xFF, 0xF9, 0xE2, 0x92, 0xFF, 0xFC, 0xBB, 0x33, 0xFF, 0xF6, 0xB9, 0x31, 0xFF, + 0xFD, 0xBA, 0x31, 0xFF, 0xF7, 0xC4, 0x57, 0xFF, 0xDE, 0xFF, 0xF3, 0xFF, 0xE6, 0xFF, 0xFD, 0xFF, 0xE6, 0xFF, 0xFF, + 0xFF, 0xE6, 0xFF, 0xFF, 0xFF, 0xE6, 0xFE, 0xFF, 0xFF, 0xE5, 0xFC, 0xFD, 0xFF, 0xDD, 0xFC, 0xFD, 0xFF, 0xD5, 0xFC, + 0xFD, 0xFF, 0xCD, 0xFD, 0xFD, 0xFF, 0xC5, 0xFD, 0xFD, 0xFF, 0xBA, 0xFA, 0xFC, 0xFF, 0xAF, 0xF7, 0xFB, 0xFF, 0x9E, + 0xF9, 0xFE, 0xFF, 0x8D, 0xFB, 0xFF, 0xFF, 0x77, 0xFE, 0xFA, 0xFF, 0x7D, 0xFB, 0xF4, 0xFF, 0xD2, 0xF7, 0xF8, 0xFF, + 0xEE, 0xFF, 0xFD, 0xFF, 0xDF, 0xFD, 0xFE, 0xFF, 0xD0, 0xFB, 0xFE, 0xFF, 0xCD, 0xFA, 0xFD, 0xFF, 0xC9, 0xF9, 0xFC, + 0xFF, 0xCD, 0xD2, 0xA6, 0xFF, 0xEA, 0x98, 0x02, 0xFF, 0xEC, 0xA0, 0x1E, 0xFF, 0xF9, 0x9E, 0x13, 0xFF, 0xF6, 0x9E, + 0x15, 0xFF, 0xF2, 0x9D, 0x16, 0xFF, 0xF2, 0x9B, 0x15, 0xFF, 0xF3, 0x99, 0x14, 0xFF, 0xF2, 0x98, 0x13, 0xFF, 0xF1, + 0x97, 0x12, 0xFF, 0xF1, 0x97, 0x12, 0xFF, 0xF3, 0xD4, 0x55, 0xFF, 0xF0, 0xD1, 0x5B, 0xFF, 0xF6, 0xD6, 0x69, 0xFF, + 0xFF, 0xE2, 0x6D, 0xFF, 0xA7, 0x4F, 0x0B, 0xFF, 0xBE, 0x60, 0x11, 0xFF, 0xCD, 0x6A, 0x0F, 0xFF, 0xD5, 0x83, 0x1F, + 0xFF, 0xDC, 0x89, 0x1E, 0xFF, 0xDD, 0x8B, 0x0F, 0xFF, 0xE0, 0x9B, 0x1A, 0xFF, 0xF3, 0xB0, 0x22, 0xFF, 0xE0, 0xAA, + 0x1D, 0xFF, 0xDF, 0xAE, 0x13, 0xFF, 0xEE, 0xBC, 0x25, 0xFF, 0xE6, 0xB9, 0x14, 0xFF, 0xEF, 0xC1, 0x1F, 0xFF, 0xEF, + 0xC7, 0x25, 0xFF, 0xEE, 0xCD, 0x2B, 0xFF, 0xF0, 0xCD, 0x3C, 0xFF, 0xF3, 0xCE, 0x4E, 0xFF, 0xF8, 0xD6, 0x5B, 0xFF, + 0xFE, 0xDE, 0x68, 0xFF, 0xFC, 0xDD, 0x6D, 0xFF, 0xFA, 0xDC, 0x73, 0xFF, 0xF5, 0xDD, 0x75, 0xFF, 0xF6, 0xD3, 0x70, + 0xFF, 0xFB, 0xBA, 0x30, 0xFF, 0xF5, 0xB8, 0x33, 0xFF, 0xFE, 0xB5, 0x24, 0xFF, 0xE4, 0xDE, 0xA3, 0xFF, 0xDC, 0xFF, + 0xF9, 0xFF, 0xDC, 0xFD, 0xFD, 0xFF, 0xDC, 0xFE, 0xFE, 0xFF, 0xDB, 0xFF, 0xFF, 0xFF, 0xDA, 0xFE, 0xFE, 0xFF, 0xD9, + 0xFD, 0xFC, 0xFF, 0xD2, 0xFD, 0xFC, 0xFF, 0xCA, 0xFD, 0xFC, 0xFF, 0xC3, 0xFD, 0xFD, 0xFF, 0xBB, 0xFD, 0xFD, 0xFF, + 0xAF, 0xFB, 0xFC, 0xFF, 0xA2, 0xFA, 0xFC, 0xFF, 0x92, 0xFA, 0xFD, 0xFF, 0x83, 0xFB, 0xFE, 0xFF, 0x6A, 0xFD, 0xFB, + 0xFF, 0x60, 0xFC, 0xF8, 0xFF, 0x5D, 0xF8, 0xFA, 0xFF, 0x4C, 0xF7, 0xFC, 0xFF, 0x76, 0xF4, 0xFD, 0xFF, 0xA0, 0xF2, + 0xFE, 0xFF, 0x87, 0xEC, 0xF5, 0xFF, 0x5F, 0xE3, 0xF7, 0xFF, 0xB4, 0xBB, 0x50, 0xFF, 0xFE, 0x99, 0x0C, 0xFF, 0xF7, + 0x9E, 0x1A, 0xFF, 0xF6, 0x9D, 0x15, 0xFF, 0xF4, 0x9D, 0x15, 0xFF, 0xF2, 0x9C, 0x15, 0xFF, 0xF2, 0x9B, 0x14, 0xFF, + 0xF1, 0x99, 0x12, 0xFF, 0xF1, 0x99, 0x12, 0xFF, 0xF1, 0x99, 0x12, 0xFF, 0xF1, 0x99, 0x12, 0xFF, 0xFD, 0xD3, 0x66, + 0xFF, 0xF9, 0xD6, 0x69, 0xFF, 0xF5, 0xD9, 0x6B, 0xFF, 0xDC, 0xB6, 0x4E, 0xFF, 0xAE, 0x52, 0x18, 0xFF, 0xC6, 0x66, + 0x1C, 0xFF, 0xBD, 0x5A, 0x00, 0xFF, 0xCA, 0x7D, 0x1A, 0xFF, 0xD4, 0x7B, 0x15, 0xFF, 0xDC, 0x81, 0x04, 0xFF, 0xE7, + 0xA0, 0x2A, 0xFF, 0xD3, 0x88, 0x00, 0xFF, 0xE2, 0xAB, 0x2D, 0xFF, 0xDC, 0xA7, 0x23, 0xFF, 0xE6, 0xB3, 0x29, 0xFF, + 0xE0, 0xAD, 0x16, 0xFF, 0xEB, 0xB7, 0x14, 0xFF, 0xEA, 0xB9, 0x15, 0xFF, 0xE9, 0xBA, 0x16, 0xFF, 0xEC, 0xBE, 0x1F, + 0xFF, 0xEE, 0xC2, 0x28, 0xFF, 0xF6, 0xCD, 0x3B, 0xFF, 0xFE, 0xD8, 0x4E, 0xFF, 0xFB, 0xD5, 0x55, 0xFF, 0xF7, 0xD1, + 0x5D, 0xFF, 0xEF, 0xD6, 0x5D, 0xFF, 0xF3, 0xC4, 0x4E, 0xFF, 0xFA, 0xB9, 0x2E, 0xFF, 0xF4, 0xB8, 0x35, 0xFF, 0xFF, + 0xB1, 0x17, 0xFF, 0xD1, 0xF7, 0xF0, 0xFF, 0xDA, 0xFF, 0xFE, 0xFF, 0xD2, 0xFC, 0xFC, 0xFF, 0xD1, 0xFD, 0xFD, 0xFF, + 0xD0, 0xFE, 0xFD, 0xFF, 0xCF, 0xFD, 0xFC, 0xFF, 0xCD, 0xFD, 0xFB, 0xFF, 0xC6, 0xFD, 0xFC, 0xFF, 0xBF, 0xFD, 0xFC, + 0xFF, 0xB9, 0xFD, 0xFD, 0xFF, 0xB2, 0xFC, 0xFD, 0xFF, 0xA3, 0xFC, 0xFD, 0xFF, 0x95, 0xFC, 0xFD, 0xFF, 0x87, 0xFC, + 0xFC, 0xFF, 0x78, 0xFB, 0xFC, 0xFF, 0x6C, 0xFA, 0xFD, 0xFF, 0x5F, 0xF8, 0xFD, 0xFF, 0x45, 0xF6, 0xF9, 0xFF, 0x47, + 0xEF, 0xF5, 0xFF, 0x37, 0xE9, 0xF2, 0xFF, 0x28, 0xE4, 0xEE, 0xFF, 0x24, 0xE3, 0xED, 0xFF, 0x05, 0xDD, 0xFF, 0xFF, + 0xFF, 0x99, 0x03, 0xFF, 0xF5, 0xA0, 0x16, 0xFF, 0xF4, 0x9E, 0x16, 0xFF, 0xF3, 0x9C, 0x16, 0xFF, 0xF2, 0x9C, 0x15, + 0xFF, 0xF2, 0x9B, 0x14, 0xFF, 0xF1, 0x9A, 0x12, 0xFF, 0xEF, 0x99, 0x10, 0xFF, 0xF0, 0x9A, 0x11, 0xFF, 0xF1, 0x9B, + 0x12, 0xFF, 0xF1, 0x9B, 0x12, 0xFF, 0xFB, 0xD5, 0x65, 0xFF, 0xFC, 0xD4, 0x70, 0xFF, 0xFF, 0xE2, 0x77, 0xFF, 0xC7, + 0x86, 0x3B, 0xFF, 0xBA, 0x5F, 0x23, 0xFF, 0xBA, 0x6A, 0x1E, 0xFF, 0xD0, 0x7A, 0x21, 0xFF, 0xD7, 0x87, 0x27, 0xFF, + 0xD6, 0x8C, 0x24, 0xFF, 0xD3, 0x8D, 0x1D, 0xFF, 0xD0, 0x88, 0x21, 0xFF, 0xEA, 0xA0, 0x2B, 0xFF, 0xD5, 0x95, 0x21, + 0xFF, 0xEE, 0xA9, 0x30, 0xFF, 0xDA, 0xA0, 0x20, 0xFF, 0xDD, 0xA1, 0x16, 0xFF, 0xDF, 0xA1, 0x0D, 0xFF, 0xE2, 0xAB, + 0x19, 0xFF, 0xEB, 0xB1, 0x12, 0xFF, 0xED, 0xB8, 0x0F, 0xFF, 0xEE, 0xBF, 0x0C, 0xFF, 0xEF, 0xC1, 0x1C, 0xFF, 0xF0, + 0xC3, 0x2C, 0xFF, 0xF1, 0xC4, 0x36, 0xFF, 0xF3, 0xC5, 0x40, 0xFF, 0xF1, 0xC9, 0x46, 0xFF, 0xF6, 0xC2, 0x45, 0xFF, + 0xF9, 0xBA, 0x31, 0xFF, 0xF6, 0xB7, 0x30, 0xFF, 0xF4, 0xC1, 0x4B, 0xFF, 0xC0, 0xFA, 0xF5, 0xFF, 0xC6, 0xFF, 0xFD, + 0xFF, 0xC4, 0xFC, 0xFC, 0xFF, 0xC4, 0xFC, 0xFD, 0xFF, 0xC3, 0xFD, 0xFD, 0xFF, 0xC2, 0xFD, 0xFC, 0xFF, 0xC1, 0xFC, + 0xFB, 0xFF, 0xB5, 0xF8, 0xF8, 0xFF, 0xB2, 0xFD, 0xFC, 0xFF, 0xAA, 0xFC, 0xFC, 0xFF, 0xA3, 0xFC, 0xFC, 0xFF, 0x95, + 0xFB, 0xFC, 0xFF, 0x88, 0xFB, 0xFB, 0xFF, 0x7A, 0xFB, 0xFB, 0xFF, 0x6D, 0xFA, 0xFB, 0xFF, 0x61, 0xF8, 0xFB, 0xFF, + 0x56, 0xF6, 0xFC, 0xFF, 0x44, 0xF2, 0xF8, 0xFF, 0x40, 0xEA, 0xF4, 0xFF, 0x31, 0xE5, 0xEF, 0xFF, 0x23, 0xDF, 0xEA, + 0xFF, 0x1C, 0xE0, 0xFA, 0xFF, 0x44, 0xD1, 0xC5, 0xFF, 0xFE, 0xA1, 0x0A, 0xFF, 0xF9, 0x9F, 0x15, 0xFF, 0xF5, 0x9F, + 0x17, 0xFF, 0xF2, 0x9F, 0x18, 0xFF, 0xF2, 0x9E, 0x16, 0xFF, 0xF2, 0x9D, 0x15, 0xFF, 0xF5, 0x9F, 0x16, 0xFF, 0xF8, + 0xA0, 0x18, 0xFF, 0xF5, 0x9D, 0x15, 0xFF, 0xF2, 0x9A, 0x12, 0xFF, 0xF2, 0x9A, 0x12, 0xFF, 0xF9, 0xD7, 0x64, 0xFF, + 0xF6, 0xD1, 0x64, 0xFF, 0xFF, 0xE6, 0x5D, 0xFF, 0x9A, 0x43, 0x03, 0xFF, 0xA5, 0x4B, 0x0D, 0xFF, 0xCC, 0x7B, 0x30, + 0xFF, 0xC0, 0x54, 0x04, 0xFF, 0xC9, 0x53, 0x00, 0xFF, 0xC5, 0x67, 0x03, 0xFF, 0xC9, 0x87, 0x25, 0xFF, 0xCA, 0x80, + 0x28, 0xFF, 0xD0, 0x88, 0x27, 0xFF, 0xD7, 0x90, 0x26, 0xFF, 0xC9, 0x74, 0x06, 0xFF, 0xCF, 0x8D, 0x17, 0xFF, 0xE1, + 0x9C, 0x1E, 0xFF, 0xE3, 0x9B, 0x16, 0xFF, 0xDA, 0x9E, 0x1E, 0xFF, 0xDD, 0x97, 0x00, 0xFF, 0xE6, 0xA4, 0x03, 0xFF, + 0xEE, 0xB1, 0x07, 0xFF, 0xE8, 0xB0, 0x08, 0xFF, 0xE2, 0xAE, 0x09, 0xFF, 0xE8, 0xB4, 0x16, 0xFF, 0xEF, 0xB9, 0x23, + 0xFF, 0xF4, 0xBD, 0x30, 0xFF, 0xF9, 0xC1, 0x3C, 0xFF, 0xF9, 0xBB, 0x34, 0xFF, 0xF9, 0xB6, 0x2C, 0xFF, 0xE8, 0xD2, + 0x80, 0xFF, 0xAE, 0xFD, 0xFA, 0xFF, 0xB2, 0xFC, 0xFB, 0xFF, 0xB6, 0xFB, 0xFC, 0xFF, 0xB6, 0xFC, 0xFC, 0xFF, 0xB6, + 0xFC, 0xFD, 0xFF, 0xB5, 0xFC, 0xFC, 0xFF, 0xB4, 0xFC, 0xFB, 0xFF, 0xA4, 0xF4, 0xF3, 0xFF, 0xA5, 0xFC, 0xFC, 0xFF, + 0x9C, 0xFC, 0xFC, 0xFF, 0x93, 0xFB, 0xFC, 0xFF, 0x87, 0xFB, 0xFB, 0xFF, 0x7A, 0xFA, 0xFA, 0xFF, 0x6D, 0xFA, 0xFA, + 0xFF, 0x61, 0xF9, 0xF9, 0xFF, 0x57, 0xF7, 0xFA, 0xFF, 0x4E, 0xF4, 0xFA, 0xFF, 0x44, 0xED, 0xF6, 0xFF, 0x3A, 0xE6, + 0xF3, 0xFF, 0x2C, 0xE1, 0xED, 0xFF, 0x1E, 0xDB, 0xE7, 0xFF, 0x19, 0xD1, 0xFF, 0xFF, 0x8F, 0xB0, 0x77, 0xFF, 0xFD, + 0xA0, 0x09, 0xFF, 0xFD, 0x9D, 0x14, 0xFF, 0xF7, 0x9F, 0x17, 0xFF, 0xF2, 0xA2, 0x1A, 0xFF, 0xF2, 0xA0, 0x18, 0xFF, + 0xF2, 0x9E, 0x16, 0xFF, 0xF1, 0x9B, 0x13, 0xFF, 0xF0, 0x98, 0x10, 0xFF, 0xF1, 0x99, 0x11, 0xFF, 0xF2, 0x9A, 0x12, + 0xFF, 0xF2, 0x9A, 0x12, 0xFF, 0xF7, 0xD4, 0x5F, 0xFF, 0xFC, 0xDC, 0x67, 0xFF, 0xF0, 0xC1, 0x4F, 0xFF, 0x8A, 0x2B, + 0x00, 0xFF, 0xBF, 0x6A, 0x2D, 0xFF, 0xAC, 0x47, 0x05, 0xFF, 0xB9, 0x43, 0x00, 0xFF, 0xC4, 0x85, 0x35, 0xFF, 0xBB, + 0x4D, 0x06, 0xFF, 0xC3, 0x61, 0x13, 0xFF, 0xCA, 0x70, 0x2C, 0xFF, 0xB3, 0x5A, 0x0F, 0xFF, 0xCC, 0x74, 0x21, 0xFF, + 0xC2, 0x69, 0x11, 0xFF, 0xC2, 0x78, 0x18, 0xFF, 0xD0, 0x80, 0x1C, 0xFF, 0xD6, 0x7F, 0x18, 0xFF, 0xD3, 0x86, 0x1A, + 0xFF, 0xDD, 0x8F, 0x10, 0xFF, 0xDA, 0x8C, 0x02, 0xFF, 0xE6, 0x99, 0x04, 0xFF, 0xE1, 0x9B, 0x04, 0xFF, 0xDC, 0x9D, + 0x04, 0xFF, 0xE1, 0xA6, 0x05, 0xFF, 0xDD, 0xA6, 0x00, 0xFF, 0xEE, 0xB6, 0x1F, 0xFF, 0xF6, 0xBD, 0x39, 0xFF, 0xF6, + 0xBB, 0x38, 0xFF, 0xFC, 0xB5, 0x24, 0xFF, 0xB8, 0xE8, 0xBF, 0xFF, 0xA2, 0xFE, 0xFA, 0xFF, 0xA5, 0xFC, 0xFB, 0xFF, + 0xA8, 0xFA, 0xFB, 0xFF, 0xA7, 0xFB, 0xFC, 0xFF, 0xA6, 0xFC, 0xFC, 0xFF, 0xA2, 0xFB, 0xFA, 0xFF, 0x9F, 0xFA, 0xF8, + 0xFF, 0x94, 0xF7, 0xF5, 0xFF, 0x92, 0xFB, 0xFA, 0xFF, 0x8B, 0xFB, 0xFA, 0xFF, 0x84, 0xFB, 0xFB, 0xFF, 0x78, 0xFA, + 0xFA, 0xFF, 0x6D, 0xF9, 0xF9, 0xFF, 0x61, 0xF9, 0xF9, 0xFF, 0x55, 0xF8, 0xF8, 0xFF, 0x4B, 0xF6, 0xF8, 0xFF, 0x41, + 0xF3, 0xF9, 0xFF, 0x39, 0xEC, 0xF5, 0xFF, 0x30, 0xE4, 0xF1, 0xFF, 0x28, 0xDD, 0xEE, 0xFF, 0x1F, 0xD6, 0xEB, 0xFF, + 0x00, 0xD9, 0xEE, 0xFF, 0xE4, 0xA6, 0x32, 0xFF, 0xFF, 0xA4, 0x18, 0xFF, 0xF3, 0xA4, 0x28, 0xFF, 0xF4, 0xA2, 0x20, + 0xFF, 0xF4, 0xA0, 0x18, 0xFF, 0xF4, 0x9E, 0x16, 0xFF, 0xF3, 0x9D, 0x15, 0xFF, 0xF2, 0x9B, 0x13, 0xFF, 0xF2, 0x99, + 0x11, 0xFF, 0xF2, 0x99, 0x11, 0xFF, 0xF3, 0x9A, 0x12, 0xFF, 0xF3, 0x9A, 0x12, 0xFF, 0xF5, 0xD1, 0x5B, 0xFF, 0xFA, + 0xDF, 0x62, 0xFF, 0xCC, 0x8C, 0x30, 0xFF, 0x91, 0x2C, 0x05, 0xFF, 0x9A, 0x49, 0x0E, 0xFF, 0x9E, 0x36, 0x00, 0xFF, + 0x96, 0x38, 0x00, 0xFF, 0xB6, 0x5E, 0x14, 0xFF, 0xD9, 0xAA, 0x53, 0xFF, 0xE2, 0xA6, 0x30, 0xFF, 0xEE, 0xBB, 0x44, + 0xFF, 0xFF, 0xDD, 0x6D, 0xFF, 0xF9, 0xDE, 0x76, 0xFF, 0xF9, 0xD9, 0x6C, 0xFF, 0xF8, 0xD4, 0x63, 0xFF, 0xF3, 0xC4, + 0x54, 0xFF, 0xED, 0xB4, 0x44, 0xFF, 0xD5, 0x8E, 0x23, 0xFF, 0xCE, 0x77, 0x11, 0xFF, 0xC6, 0x6C, 0x00, 0xFF, 0xDE, + 0x81, 0x02, 0xFF, 0xDA, 0x87, 0x00, 0xFF, 0xD6, 0x8D, 0x00, 0xFF, 0xE1, 0x9B, 0x06, 0xFF, 0xDC, 0x98, 0x00, 0xFF, + 0xF0, 0xB1, 0x22, 0xFF, 0xF4, 0xB9, 0x35, 0xFF, 0xF3, 0xBC, 0x3C, 0xFF, 0xFF, 0xB4, 0x1B, 0xFF, 0x89, 0xFD, 0xFE, + 0xFF, 0x95, 0xFF, 0xFA, 0xFF, 0x97, 0xFC, 0xFA, 0xFF, 0x99, 0xF8, 0xFB, 0xFF, 0x97, 0xFB, 0xFB, 0xFF, 0x95, 0xFD, + 0xFC, 0xFF, 0x8F, 0xFB, 0xF9, 0xFF, 0x89, 0xF9, 0xF6, 0xFF, 0x84, 0xF9, 0xF7, 0xFF, 0x7F, 0xF9, 0xF8, 0xFF, 0x7A, + 0xFA, 0xF9, 0xFF, 0x75, 0xFA, 0xFA, 0xFF, 0x6A, 0xF9, 0xF9, 0xFF, 0x5F, 0xF9, 0xF8, 0xFF, 0x54, 0xF8, 0xF7, 0xFF, + 0x49, 0xF7, 0xF6, 0xFF, 0x3F, 0xF5, 0xF7, 0xFF, 0x35, 0xF2, 0xF7, 0xFF, 0x2E, 0xEB, 0xF3, 0xFF, 0x27, 0xE3, 0xF0, + 0xFF, 0x24, 0xDA, 0xF0, 0xFF, 0x21, 0xD1, 0xF0, 0xFF, 0x23, 0xC9, 0xE8, 0xFF, 0xFF, 0x9B, 0x03, 0xFF, 0xF6, 0xA3, + 0x20, 0xFF, 0xF6, 0xA1, 0x16, 0xFF, 0xF7, 0x9F, 0x16, 0xFF, 0xF7, 0x9D, 0x16, 0xFF, 0xF6, 0x9C, 0x15, 0xFF, 0xF5, + 0x9B, 0x14, 0xFF, 0xF4, 0x9A, 0x13, 0xFF, 0xF3, 0x99, 0x12, 0xFF, 0xF3, 0x99, 0x12, 0xFF, 0xF3, 0x99, 0x12, 0xFF, + 0xF3, 0x99, 0x12, 0xFF, 0xFE, 0xE2, 0x5A, 0xFF, 0xFF, 0xD7, 0x64, 0xFF, 0x97, 0x46, 0x0C, 0xFF, 0x82, 0x25, 0x00, + 0xFF, 0xB7, 0x6A, 0x1D, 0xFF, 0xDE, 0xA2, 0x39, 0xFF, 0xFF, 0xE5, 0x5E, 0xFF, 0xFD, 0xD8, 0x51, 0xFF, 0xF5, 0xD6, + 0x4C, 0xFF, 0xF4, 0xCC, 0x48, 0xFF, 0xF6, 0xCF, 0x5E, 0xFF, 0xFE, 0xD9, 0x67, 0xFF, 0xF7, 0xD3, 0x61, 0xFF, 0xF8, + 0xD1, 0x5A, 0xFF, 0xFE, 0xCB, 0x41, 0xFF, 0xFE, 0xCE, 0x53, 0xFF, 0xF5, 0xCF, 0x51, 0xFF, 0xF6, 0xCA, 0x49, 0xFF, + 0xFF, 0xCD, 0x49, 0xFF, 0xFF, 0xB9, 0x3F, 0xFF, 0xDA, 0x7E, 0x0E, 0xFF, 0xC2, 0x69, 0x00, 0xFF, 0xDA, 0x84, 0x05, + 0xFF, 0xD5, 0x84, 0x01, 0xFF, 0xD8, 0x8C, 0x05, 0xFF, 0xF8, 0xBE, 0x37, 0xFF, 0xF6, 0xBE, 0x3A, 0xFF, 0xFF, 0xBD, + 0x34, 0xFF, 0xE1, 0xC6, 0x61, 0xFF, 0x79, 0xF3, 0xFB, 0xFF, 0x82, 0xFA, 0xF7, 0xFF, 0x83, 0xF9, 0xF9, 0xFF, 0x83, + 0xF7, 0xFA, 0xFF, 0x7F, 0xF7, 0xF8, 0xFF, 0x7B, 0xF6, 0xF6, 0xFF, 0x79, 0xF8, 0xF7, 0xFF, 0x77, 0xFA, 0xF8, 0xFF, + 0x71, 0xF9, 0xF7, 0xFF, 0x6C, 0xF8, 0xF7, 0xFF, 0x6B, 0xFC, 0xFB, 0xFF, 0x63, 0xF8, 0xF8, 0xFF, 0x5A, 0xF7, 0xF8, + 0xFF, 0x52, 0xF7, 0xF7, 0xFF, 0x48, 0xF5, 0xF7, 0xFF, 0x3F, 0xF4, 0xF6, 0xFF, 0x37, 0xF2, 0xF5, 0xFF, 0x2F, 0xEF, + 0xF4, 0xFF, 0x27, 0xE6, 0xF1, 0xFF, 0x20, 0xDD, 0xEE, 0xFF, 0x1F, 0xD6, 0xEA, 0xFF, 0x10, 0xCC, 0xF1, 0xFF, 0x6C, + 0xB9, 0x9D, 0xFF, 0xFE, 0x9F, 0x0B, 0xFF, 0xF8, 0xA3, 0x1A, 0xFF, 0xF9, 0xA2, 0x16, 0xFF, 0xF8, 0xA0, 0x16, 0xFF, + 0xF7, 0x9E, 0x16, 0xFF, 0xF7, 0x9D, 0x15, 0xFF, 0xF6, 0x9B, 0x14, 0xFF, 0xF5, 0x9A, 0x14, 0xFF, 0xF4, 0x99, 0x13, + 0xFF, 0xF4, 0x99, 0x13, 0xFF, 0xF4, 0x99, 0x13, 0xFF, 0xF4, 0x99, 0x13, 0xFF, 0xF8, 0xD8, 0x60, 0xFF, 0xF7, 0xD8, + 0x5A, 0xFF, 0xD7, 0xAD, 0x4B, 0xFF, 0xFF, 0xDD, 0x68, 0xFF, 0xF7, 0xDC, 0x55, 0xFF, 0xFC, 0xD6, 0x55, 0xFF, 0xFF, + 0xCF, 0x54, 0xFF, 0xFF, 0xD5, 0x5C, 0xFF, 0xF1, 0xCA, 0x53, 0xFF, 0xF5, 0xCA, 0x4A, 0xFF, 0xF9, 0xC9, 0x42, 0xFF, + 0xF7, 0xC9, 0x47, 0xFF, 0xF5, 0xC8, 0x4B, 0xFF, 0xF0, 0xCF, 0x5C, 0xFF, 0xF8, 0xCC, 0x46, 0xFF, 0xFF, 0xCA, 0x55, + 0xFF, 0xF9, 0xC3, 0x3E, 0xFF, 0xFB, 0xC2, 0x43, 0xFF, 0xFC, 0xC1, 0x48, 0xFF, 0xF3, 0xBE, 0x3E, 0xFF, 0xFA, 0xCB, + 0x43, 0xFF, 0xFC, 0xB3, 0x37, 0xFF, 0xDD, 0x7B, 0x0B, 0xFF, 0xC8, 0x6D, 0x00, 0xFF, 0xD4, 0x7F, 0x0D, 0xFF, 0xFF, + 0xCC, 0x4D, 0xFF, 0xF9, 0xC2, 0x3E, 0xFF, 0xFF, 0xC1, 0x2D, 0xFF, 0xA7, 0xDE, 0xA7, 0xFF, 0x5B, 0xEB, 0xF7, 0xFF, + 0x6F, 0xF5, 0xF4, 0xFF, 0x6E, 0xF5, 0xF7, 0xFF, 0x6D, 0xF6, 0xF9, 0xFF, 0x67, 0xF3, 0xF5, 0xFF, 0x60, 0xF0, 0xF1, + 0xFF, 0x62, 0xF6, 0xF5, 0xFF, 0x65, 0xFC, 0xFA, 0xFF, 0x5E, 0xF9, 0xF8, 0xFF, 0x58, 0xF6, 0xF5, 0xFF, 0x5D, 0xFE, + 0xFE, 0xFF, 0x52, 0xF6, 0xF6, 0xFF, 0x4B, 0xF5, 0xF6, 0xFF, 0x44, 0xF5, 0xF7, 0xFF, 0x3D, 0xF3, 0xF6, 0xFF, 0x35, + 0xF1, 0xF5, 0xFF, 0x2F, 0xEE, 0xF3, 0xFF, 0x28, 0xEB, 0xF0, 0xFF, 0x20, 0xE1, 0xEE, 0xFF, 0x18, 0xD8, 0xEC, 0xFF, + 0x1A, 0xD2, 0xE4, 0xFF, 0x00, 0xC6, 0xF3, 0xFF, 0xB4, 0xA8, 0x51, 0xFF, 0xFA, 0xA3, 0x13, 0xFF, 0xFB, 0xA3, 0x15, + 0xFF, 0xFB, 0xA3, 0x17, 0xFF, 0xFA, 0xA0, 0x16, 0xFF, 0xF8, 0x9E, 0x16, 0xFF, 0xF7, 0x9D, 0x15, 0xFF, 0xF7, 0x9C, + 0x15, 0xFF, 0xF6, 0x9A, 0x14, 0xFF, 0xF6, 0x99, 0x14, 0xFF, 0xF6, 0x99, 0x14, 0xFF, 0xF6, 0x99, 0x14, 0xFF, 0xF6, + 0x99, 0x14, 0xFF, 0xF1, 0xCE, 0x58, 0xFF, 0xFD, 0xDC, 0x59, 0xFF, 0xF8, 0xD5, 0x55, 0xFF, 0xFF, 0xDD, 0x5D, 0xFF, + 0xF3, 0xCE, 0x4D, 0xFF, 0xF3, 0xCB, 0x4C, 0xFF, 0xF3, 0xC8, 0x4C, 0xFF, 0xFB, 0xD1, 0x56, 0xFF, 0xFC, 0xD3, 0x58, + 0xFF, 0xFB, 0xCE, 0x4F, 0xFF, 0xFA, 0xC9, 0x47, 0xFF, 0xF9, 0xC8, 0x48, 0xFF, 0xF8, 0xC7, 0x49, 0xFF, 0xF5, 0xCA, + 0x50, 0xFF, 0xF9, 0xC9, 0x44, 0xFF, 0xFD, 0xC8, 0x4B, 0xFF, 0xF9, 0xC5, 0x3E, 0xFF, 0xFA, 0xC3, 0x40, 0xFF, 0xFA, + 0xC2, 0x43, 0xFF, 0xF3, 0xBD, 0x3A, 0xFF, 0xF3, 0xBF, 0x3A, 0xFF, 0xFC, 0xC7, 0x3E, 0xFF, 0xFC, 0xC6, 0x3A, 0xFF, + 0xE2, 0xA1, 0x24, 0xFF, 0xD9, 0x8C, 0x1F, 0xFF, 0xF6, 0xB9, 0x36, 0xFF, 0xFA, 0xBB, 0x26, 0xFF, 0xF3, 0xBA, 0x29, + 0xFF, 0x56, 0xD7, 0xCD, 0xFF, 0x5A, 0xFA, 0xF9, 0xFF, 0x48, 0xDA, 0xD9, 0xFF, 0x58, 0xEC, 0xED, 0xFF, 0x5F, 0xF5, + 0xF9, 0xFF, 0x4D, 0xEF, 0xF1, 0xFF, 0x3A, 0xE9, 0xE9, 0xFF, 0x45, 0xEE, 0xED, 0xFF, 0x50, 0xF4, 0xF2, 0xFF, 0x4E, + 0xF3, 0xF9, 0xFF, 0x44, 0xF0, 0xED, 0xFF, 0x4B, 0xF8, 0xFE, 0xFF, 0x41, 0xF5, 0xF4, 0xFF, 0x3C, 0xF4, 0xF5, 0xFF, + 0x37, 0xF2, 0xF6, 0xFF, 0x31, 0xF0, 0xF5, 0xFF, 0x2A, 0xEF, 0xF4, 0xFF, 0x26, 0xEA, 0xF2, 0xFF, 0x22, 0xE6, 0xF0, + 0xFF, 0x1C, 0xDB, 0xEE, 0xFF, 0x17, 0xD0, 0xEC, 0xFF, 0x08, 0xCC, 0xF0, 0xFF, 0x08, 0xC4, 0xF5, 0xFF, 0xFF, 0xAD, + 0x0E, 0xFF, 0xF9, 0xA1, 0x16, 0xFF, 0xF8, 0xA1, 0x17, 0xFF, 0xF8, 0xA1, 0x18, 0xFF, 0xF8, 0xA0, 0x17, 0xFF, 0xF8, + 0x9E, 0x16, 0xFF, 0xF8, 0x9D, 0x16, 0xFF, 0xF8, 0x9C, 0x15, 0xFF, 0xF7, 0x9A, 0x15, 0xFF, 0xF7, 0x99, 0x14, 0xFF, + 0xF7, 0x99, 0x14, 0xFF, 0xF7, 0x99, 0x14, 0xFF, 0xF7, 0x99, 0x14, 0xFF, 0xFB, 0xD5, 0x60, 0xFF, 0xFA, 0xD3, 0x5A, + 0xFF, 0xFA, 0xD1, 0x55, 0xFF, 0xFC, 0xD0, 0x55, 0xFF, 0xFE, 0xCF, 0x54, 0xFF, 0xFA, 0xD0, 0x54, 0xFF, 0xF6, 0xD1, + 0x53, 0xFF, 0xF6, 0xCE, 0x50, 0xFF, 0xF7, 0xCB, 0x4E, 0xFF, 0xF9, 0xCA, 0x4C, 0xFF, 0xFA, 0xCA, 0x4B, 0xFF, 0xFB, + 0xC8, 0x49, 0xFF, 0xFB, 0xC6, 0x47, 0xFF, 0xFB, 0xC6, 0x45, 0xFF, 0xFA, 0xC6, 0x43, 0xFF, 0xF9, 0xC6, 0x41, 0xFF, + 0xF8, 0xC6, 0x3F, 0xFF, 0xF8, 0xC4, 0x3E, 0xFF, 0xF9, 0xC3, 0x3E, 0xFF, 0xFB, 0xC3, 0x3F, 0xFF, 0xFD, 0xC3, 0x40, + 0xFF, 0xF2, 0xBA, 0x38, 0xFF, 0xF7, 0xC0, 0x3F, 0xFF, 0xFA, 0xC2, 0x3D, 0xFF, 0xFD, 0xC5, 0x3A, 0xFF, 0xF6, 0xC1, + 0x37, 0xFF, 0xEF, 0xBD, 0x34, 0xFF, 0xEF, 0xBB, 0x2D, 0xFF, 0x21, 0xD6, 0xDD, 0xFF, 0x37, 0xDC, 0xBF, 0xFF, 0x41, + 0xE0, 0xDD, 0xFF, 0x49, 0xEA, 0xEB, 0xFF, 0x41, 0xE3, 0xEA, 0xFF, 0x41, 0xE8, 0xED, 0xFF, 0x41, 0xED, 0xF1, 0xFF, + 0x3F, 0xEC, 0xED, 0xFF, 0x3C, 0xEB, 0xEA, 0xFF, 0x3E, 0xEE, 0xFA, 0xFF, 0x31, 0xEB, 0xE5, 0xFF, 0x39, 0xF2, 0xFE, + 0xFF, 0x31, 0xF4, 0xF1, 0xFF, 0x2D, 0xF2, 0xF3, 0xFF, 0x29, 0xF0, 0xF5, 0xFF, 0x25, 0xEE, 0xF4, 0xFF, 0x20, 0xEC, + 0xF4, 0xFF, 0x1E, 0xE6, 0xF1, 0xFF, 0x1C, 0xE1, 0xEF, 0xFF, 0x19, 0xD5, 0xED, 0xFF, 0x16, 0xC9, 0xEB, 0xFF, 0x0B, + 0xC3, 0xDE, 0xFF, 0x39, 0xBE, 0xBA, 0xFF, 0xF8, 0x98, 0x07, 0xFF, 0xF8, 0x9F, 0x19, 0xFF, 0xF6, 0x9F, 0x19, 0xFF, + 0xF5, 0x9F, 0x19, 0xFF, 0xF7, 0x9F, 0x18, 0xFF, 0xF9, 0x9F, 0x16, 0xFF, 0xF9, 0x9D, 0x16, 0xFF, 0xF9, 0x9C, 0x16, + 0xFF, 0xF9, 0x9A, 0x16, 0xFF, 0xF8, 0x99, 0x15, 0xFF, 0xF8, 0x99, 0x15, 0xFF, 0xF8, 0x99, 0x15, 0xFF, 0xF8, 0x99, + 0x15, 0xFF, 0xF8, 0xD4, 0x5C, 0xFF, 0xF8, 0xD4, 0x58, 0xFF, 0xF8, 0xD3, 0x54, 0xFF, 0xF9, 0xD1, 0x56, 0xFF, 0xFA, + 0xD0, 0x57, 0xFF, 0xF8, 0xD0, 0x55, 0xFF, 0xF5, 0xD0, 0x53, 0xFF, 0xF7, 0xCE, 0x50, 0xFF, 0xF9, 0xCC, 0x4D, 0xFF, + 0xF9, 0xCB, 0x4C, 0xFF, 0xFA, 0xCA, 0x4A, 0xFF, 0xFB, 0xC8, 0x48, 0xFF, 0xFB, 0xC7, 0x46, 0xFF, 0xFA, 0xC6, 0x44, + 0xFF, 0xFA, 0xC6, 0x43, 0xFF, 0xF9, 0xC6, 0x41, 0xFF, 0xF9, 0xC6, 0x3F, 0xFF, 0xF9, 0xC4, 0x3E, 0xFF, 0xF9, 0xC3, + 0x3D, 0xFF, 0xFA, 0xC2, 0x3E, 0xFF, 0xFB, 0xC1, 0x3E, 0xFF, 0xF5, 0xBD, 0x3A, 0xFF, 0xF7, 0xC1, 0x3D, 0xFF, 0xF8, + 0xC0, 0x3A, 0xFF, 0xF9, 0xC0, 0x37, 0xFF, 0xFF, 0xBD, 0x36, 0xFF, 0xFF, 0xBB, 0x35, 0xFF, 0x84, 0xBA, 0x66, 0xFF, + 0x18, 0xD2, 0xAF, 0xFF, 0x19, 0xD2, 0xB3, 0xFF, 0x39, 0xDA, 0xD2, 0xFF, 0x3D, 0xDC, 0xE1, 0xFF, 0x31, 0xD4, 0xD5, + 0xFF, 0x37, 0xDF, 0xE1, 0xFF, 0x3E, 0xE9, 0xEC, 0xFF, 0x35, 0xE6, 0xE1, 0xFF, 0x35, 0xE5, 0xE9, 0xFF, 0x34, 0xE5, + 0xF0, 0xFF, 0x2A, 0xE3, 0xE4, 0xFF, 0x2D, 0xE5, 0xF5, 0xFF, 0x28, 0xEB, 0xE8, 0xFF, 0x2A, 0xEE, 0xF0, 0xFF, 0x24, + 0xE8, 0xEF, 0xFF, 0x20, 0xE4, 0xEC, 0xFF, 0x1C, 0xDF, 0xE9, 0xFF, 0x1C, 0xDB, 0xEB, 0xFF, 0x1B, 0xD7, 0xED, 0xFF, + 0x18, 0xCE, 0xE9, 0xFF, 0x15, 0xC5, 0xE5, 0xFF, 0x03, 0xBF, 0xE7, 0xFF, 0x92, 0xB1, 0x6C, 0xFF, 0xFB, 0x9C, 0x10, + 0xFF, 0xF7, 0xA0, 0x17, 0xFF, 0xF5, 0xA0, 0x19, 0xFF, 0xF3, 0xA0, 0x1B, 0xFF, 0xF6, 0x9F, 0x19, 0xFF, 0xF9, 0x9F, + 0x16, 0xFF, 0xF8, 0x9E, 0x16, 0xFF, 0xF8, 0x9C, 0x15, 0xFF, 0xF8, 0x9B, 0x15, 0xFF, 0xF8, 0x99, 0x15, 0xFF, 0xF7, + 0x99, 0x14, 0xFF, 0xF7, 0x98, 0x14, 0xFF, 0xF7, 0x98, 0x14, 0xFF, 0xF6, 0xD3, 0x57, 0xFF, 0xF6, 0xD4, 0x55, 0xFF, + 0xF6, 0xD5, 0x53, 0xFF, 0xF7, 0xD2, 0x57, 0xFF, 0xF7, 0xD0, 0x5B, 0xFF, 0xF6, 0xD0, 0x57, 0xFF, 0xF5, 0xCF, 0x54, + 0xFF, 0xF7, 0xCE, 0x50, 0xFF, 0xFA, 0xCC, 0x4C, 0xFF, 0xFA, 0xCB, 0x4B, 0xFF, 0xFA, 0xCA, 0x49, 0xFF, 0xFA, 0xC8, + 0x47, 0xFF, 0xFB, 0xC7, 0x46, 0xFF, 0xFA, 0xC7, 0x44, 0xFF, 0xFA, 0xC6, 0x43, 0xFF, 0xF9, 0xC6, 0x41, 0xFF, 0xF9, + 0xC5, 0x3F, 0xFF, 0xF9, 0xC4, 0x3E, 0xFF, 0xF9, 0xC2, 0x3D, 0xFF, 0xF9, 0xC1, 0x3C, 0xFF, 0xF9, 0xC0, 0x3B, 0xFF, + 0xF8, 0xC1, 0x3C, 0xFF, 0xF7, 0xC2, 0x3C, 0xFF, 0xF6, 0xBE, 0x38, 0xFF, 0xF5, 0xBB, 0x34, 0xFF, 0xFD, 0xBC, 0x35, + 0xFF, 0xFF, 0xBE, 0x36, 0xFF, 0xFB, 0xBB, 0x45, 0xFF, 0x2B, 0xC9, 0x82, 0xFF, 0x01, 0xBE, 0xA0, 0xFF, 0x20, 0xC4, + 0xB8, 0xFF, 0x31, 0xCF, 0xD8, 0xFF, 0x31, 0xD5, 0xD1, 0xFF, 0x2E, 0xD5, 0xD4, 0xFF, 0x2A, 0xD4, 0xD7, 0xFF, 0x24, + 0xD7, 0xCC, 0xFF, 0x2E, 0xDE, 0xE8, 0xFF, 0x29, 0xDD, 0xE6, 0xFF, 0x24, 0xDC, 0xE4, 0xFF, 0x22, 0xD9, 0xED, 0xFF, + 0x20, 0xE1, 0xDF, 0xFF, 0x27, 0xE9, 0xEC, 0xFF, 0x1E, 0xE0, 0xEA, 0xFF, 0x1B, 0xD9, 0xE3, 0xFF, 0x19, 0xD3, 0xDD, + 0xFF, 0x1A, 0xD0, 0xE4, 0xFF, 0x1B, 0xCD, 0xEB, 0xFF, 0x17, 0xC7, 0xE4, 0xFF, 0x14, 0xC2, 0xDE, 0xFF, 0x00, 0xBC, + 0xEF, 0xFF, 0xEB, 0xA4, 0x1D, 0xFF, 0xFF, 0xA0, 0x19, 0xFF, 0xF6, 0xA2, 0x15, 0xFF, 0xF3, 0xA2, 0x19, 0xFF, 0xF0, + 0xA1, 0x1D, 0xFF, 0xF4, 0xA0, 0x19, 0xFF, 0xF8, 0x9F, 0x16, 0xFF, 0xF8, 0x9E, 0x15, 0xFF, 0xF8, 0x9D, 0x15, 0xFF, + 0xF7, 0x9B, 0x14, 0xFF, 0xF7, 0x9A, 0x14, 0xFF, 0xF6, 0x99, 0x13, 0xFF, 0xF5, 0x98, 0x12, 0xFF, 0xF5, 0x98, 0x12, + 0xFF, 0xF8, 0xD5, 0x5E, 0xFF, 0xFC, 0xD5, 0x63, 0xFF, 0xFF, 0xD6, 0x68, 0xFF, 0xFB, 0xD2, 0x5E, 0xFF, 0xF8, 0xCF, + 0x55, 0xFF, 0xF7, 0xCF, 0x53, 0xFF, 0xF7, 0xCE, 0x50, 0xFF, 0xF9, 0xCD, 0x4D, 0xFF, 0xFA, 0xCC, 0x4B, 0xFF, 0xFA, + 0xCB, 0x49, 0xFF, 0xFA, 0xCA, 0x48, 0xFF, 0xFA, 0xC9, 0x47, 0xFF, 0xFA, 0xC8, 0x45, 0xFF, 0xFA, 0xC7, 0x44, 0xFF, + 0xF9, 0xC6, 0x42, 0xFF, 0xF9, 0xC5, 0x41, 0xFF, 0xF9, 0xC5, 0x40, 0xFF, 0xF9, 0xC4, 0x3F, 0xFF, 0xF9, 0xC2, 0x3D, + 0xFF, 0xF9, 0xC1, 0x3C, 0xFF, 0xF8, 0xC0, 0x3B, 0xFF, 0xF8, 0xC0, 0x3B, 0xFF, 0xF8, 0xC1, 0x3A, 0xFF, 0xF7, 0xBF, + 0x38, 0xFF, 0xF6, 0xBD, 0x35, 0xFF, 0xFA, 0xBD, 0x34, 0xFF, 0xFE, 0xBD, 0x33, 0xFF, 0xF5, 0xC3, 0x22, 0xFF, 0xFB, + 0xBA, 0x26, 0xFF, 0xB1, 0xB0, 0x53, 0xFF, 0x06, 0xC5, 0x9A, 0xFF, 0x22, 0xD2, 0xC0, 0xFF, 0x36, 0xDD, 0xD3, 0xFF, + 0x12, 0xBA, 0xB3, 0xFF, 0x1E, 0xC7, 0xC3, 0xFF, 0x21, 0xCE, 0xC4, 0xFF, 0x2C, 0xD8, 0xD8, 0xFF, 0x2F, 0xDA, 0xDE, + 0xFF, 0x2A, 0xD5, 0xDC, 0xFF, 0x20, 0xD4, 0xE7, 0xFF, 0x1C, 0xD5, 0xD4, 0xFF, 0x28, 0xE4, 0xE8, 0xFF, 0x24, 0xE3, + 0xEB, 0xFF, 0x1F, 0xCD, 0xD1, 0xFF, 0x1C, 0xC5, 0xD2, 0xFF, 0x01, 0xC2, 0xDC, 0xFF, 0x11, 0xC3, 0xCF, 0xFF, 0x09, + 0xC1, 0xE2, 0xFF, 0x00, 0xBE, 0xE3, 0xFF, 0x6E, 0xBE, 0x83, 0xFF, 0xF6, 0x9F, 0x0C, 0xFF, 0xFD, 0x9F, 0x11, 0xFF, + 0xF6, 0xA1, 0x17, 0xFF, 0xF4, 0xA1, 0x19, 0xFF, 0xF3, 0xA1, 0x1A, 0xFF, 0xF5, 0xA0, 0x18, 0xFF, 0xF8, 0x9F, 0x15, + 0xFF, 0xF7, 0x9E, 0x15, 0xFF, 0xF7, 0x9D, 0x14, 0xFF, 0xF7, 0x9C, 0x14, 0xFF, 0xF7, 0x9B, 0x13, 0xFF, 0xF5, 0x99, + 0x11, 0xFF, 0xF4, 0x98, 0x10, 0xFF, 0xF4, 0x98, 0x10, 0xFF, 0xFB, 0xD6, 0x64, 0xFF, 0xF9, 0xD4, 0x5D, 0xFF, 0xF8, + 0xD2, 0x55, 0xFF, 0xF8, 0xD0, 0x53, 0xFF, 0xF8, 0xCE, 0x50, 0xFF, 0xF9, 0xCE, 0x4E, 0xFF, 0xFA, 0xCD, 0x4D, 0xFF, + 0xFA, 0xCC, 0x4B, 0xFF, 0xFB, 0xCC, 0x49, 0xFF, 0xFA, 0xCB, 0x48, 0xFF, 0xFA, 0xCA, 0x47, 0xFF, 0xFA, 0xC9, 0x46, + 0xFF, 0xFA, 0xC8, 0x45, 0xFF, 0xFA, 0xC7, 0x43, 0xFF, 0xF9, 0xC6, 0x42, 0xFF, 0xF9, 0xC5, 0x41, 0xFF, 0xF9, 0xC4, + 0x40, 0xFF, 0xF9, 0xC3, 0x3F, 0xFF, 0xF9, 0xC2, 0x3D, 0xFF, 0xF9, 0xC1, 0x3C, 0xFF, 0xF8, 0xC0, 0x3B, 0xFF, 0xF8, + 0xC0, 0x3A, 0xFF, 0xF8, 0xBF, 0x39, 0xFF, 0xF8, 0xBF, 0x38, 0xFF, 0xF8, 0xBF, 0x36, 0xFF, 0xF7, 0xBD, 0x34, 0xFF, + 0xF7, 0xBC, 0x31, 0xFF, 0xF8, 0xBB, 0x33, 0xFF, 0xF9, 0xBA, 0x35, 0xFF, 0xFF, 0xBC, 0x2C, 0xFF, 0xDE, 0xC2, 0x60, + 0xFF, 0x84, 0xCB, 0x93, 0xFF, 0x2A, 0xD4, 0xC5, 0xFF, 0x2E, 0xD7, 0xCA, 0xFF, 0x12, 0xBA, 0xB0, 0xFF, 0x16, 0xBE, + 0xB4, 0xFF, 0x1A, 0xC2, 0xB8, 0xFF, 0x25, 0xC8, 0xC6, 0xFF, 0x20, 0xBE, 0xC4, 0xFF, 0x16, 0xC8, 0xDA, 0xFF, 0x18, + 0xC8, 0xC9, 0xFF, 0x21, 0xD7, 0xDB, 0xFF, 0x1A, 0xD6, 0xDD, 0xFF, 0x0D, 0xBC, 0xB7, 0xFF, 0x03, 0xBD, 0xC7, 0xFF, + 0x00, 0xBF, 0xD0, 0xFF, 0x50, 0xC9, 0xAC, 0xFF, 0xB0, 0xB8, 0x6B, 0xFF, 0xFF, 0xA3, 0x04, 0xFF, 0xFA, 0xA3, 0x12, + 0xFF, 0xF4, 0xA4, 0x21, 0xFF, 0xF5, 0xA2, 0x1D, 0xFF, 0xF5, 0xA1, 0x19, 0xFF, 0xF6, 0xA0, 0x18, 0xFF, 0xF6, 0xA0, + 0x17, 0xFF, 0xF7, 0x9F, 0x16, 0xFF, 0xF7, 0x9F, 0x15, 0xFF, 0xF7, 0x9E, 0x14, 0xFF, 0xF7, 0x9D, 0x14, 0xFF, 0xF6, + 0x9C, 0x13, 0xFF, 0xF6, 0x9B, 0x12, 0xFF, 0xF4, 0x99, 0x10, 0xFF, 0xF2, 0x97, 0x0E, 0xFF, 0xF2, 0x97, 0x0E, 0xFF, + 0xF8, 0xD4, 0x5C, 0xFF, 0xF8, 0xD3, 0x57, 0xFF, 0xF8, 0xD1, 0x53, 0xFF, 0xF8, 0xD0, 0x51, 0xFF, 0xF9, 0xCE, 0x4F, + 0xFF, 0xF9, 0xCE, 0x4D, 0xFF, 0xF9, 0xCD, 0x4B, 0xFF, 0xFA, 0xCC, 0x4A, 0xFF, 0xFA, 0xCB, 0x48, 0xFF, 0xFA, 0xCA, + 0x47, 0xFF, 0xFA, 0xCA, 0x46, 0xFF, 0xF9, 0xC9, 0x45, 0xFF, 0xF9, 0xC8, 0x44, 0xFF, 0xF9, 0xC7, 0x43, 0xFF, 0xF9, + 0xC6, 0x42, 0xFF, 0xF9, 0xC5, 0x41, 0xFF, 0xF9, 0xC4, 0x40, 0xFF, 0xF9, 0xC3, 0x3E, 0xFF, 0xF9, 0xC2, 0x3D, 0xFF, + 0xF9, 0xC1, 0x3C, 0xFF, 0xF9, 0xC0, 0x3A, 0xFF, 0xF8, 0xBF, 0x39, 0xFF, 0xF8, 0xBF, 0x38, 0xFF, 0xF8, 0xBF, 0x37, + 0xFF, 0xF8, 0xBE, 0x36, 0xFF, 0xF5, 0xBD, 0x35, 0xFF, 0xF3, 0xBB, 0x34, 0xFF, 0xF7, 0xB9, 0x34, 0xFF, 0xFA, 0xB7, + 0x34, 0xFF, 0xFF, 0xB5, 0x22, 0xFF, 0xFE, 0xB4, 0x2E, 0xFF, 0xE6, 0xB9, 0x4D, 0xFF, 0xCD, 0xBF, 0x6B, 0xFF, 0xC5, + 0xB1, 0x27, 0xFF, 0x7C, 0xBB, 0x6C, 0xFF, 0x48, 0xBD, 0x89, 0xFF, 0x15, 0xBE, 0xA6, 0xFF, 0x08, 0xBF, 0xB9, 0xFF, + 0x00, 0xBF, 0xCB, 0xFF, 0x3D, 0xC4, 0xDA, 0xFF, 0x20, 0xCA, 0xBA, 0xFF, 0x3E, 0xC6, 0xAD, 0xFF, 0x53, 0xBB, 0x99, + 0xFF, 0x8A, 0xAC, 0x59, 0xFF, 0xC3, 0xAA, 0x35, 0xFF, 0xFF, 0xB3, 0x03, 0xFF, 0xFF, 0xA6, 0x15, 0xFF, 0xFF, 0xA4, + 0x20, 0xFF, 0xFA, 0xA0, 0x19, 0xFF, 0xF9, 0xA2, 0x1B, 0xFF, 0xF8, 0xA4, 0x1C, 0xFF, 0xF7, 0xA2, 0x1B, 0xFF, 0xF6, + 0xA1, 0x19, 0xFF, 0xF6, 0xA0, 0x18, 0xFF, 0xF7, 0xA0, 0x17, 0xFF, 0xF7, 0x9F, 0x16, 0xFF, 0xF7, 0x9F, 0x15, 0xFF, + 0xF7, 0x9E, 0x14, 0xFF, 0xF6, 0x9D, 0x14, 0xFF, 0xF6, 0x9C, 0x13, 0xFF, 0xF6, 0x9B, 0x12, 0xFF, 0xF4, 0x9A, 0x10, + 0xFF, 0xF3, 0x98, 0x0F, 0xFF, 0xF3, 0x98, 0x0F, 0xFF, 0xF6, 0xD2, 0x53, 0xFF, 0xF7, 0xD1, 0x52, 0xFF, 0xF8, 0xD0, + 0x51, 0xFF, 0xF8, 0xCF, 0x4F, 0xFF, 0xF9, 0xCE, 0x4E, 0xFF, 0xF9, 0xCE, 0x4C, 0xFF, 0xF9, 0xCD, 0x4A, 0xFF, 0xF9, + 0xCC, 0x48, 0xFF, 0xF9, 0xCB, 0x46, 0xFF, 0xF9, 0xCA, 0x46, 0xFF, 0xF9, 0xC9, 0x45, 0xFF, 0xF9, 0xC8, 0x44, 0xFF, + 0xF9, 0xC8, 0x43, 0xFF, 0xF9, 0xC7, 0x42, 0xFF, 0xF9, 0xC6, 0x41, 0xFF, 0xF9, 0xC5, 0x41, 0xFF, 0xF9, 0xC4, 0x40, + 0xFF, 0xF9, 0xC3, 0x3E, 0xFF, 0xF9, 0xC2, 0x3D, 0xFF, 0xF9, 0xC1, 0x3B, 0xFF, 0xF9, 0xC0, 0x3A, 0xFF, 0xF9, 0xBF, + 0x38, 0xFF, 0xF8, 0xBF, 0x37, 0xFF, 0xF8, 0xBE, 0x36, 0xFF, 0xF8, 0xBE, 0x35, 0xFF, 0xF4, 0xBC, 0x36, 0xFF, 0xEF, + 0xBA, 0x37, 0xFF, 0xF5, 0xB7, 0x35, 0xFF, 0xFC, 0xB5, 0x34, 0xFF, 0xF8, 0xB5, 0x2B, 0xFF, 0xF5, 0xB6, 0x22, 0xFF, + 0xFA, 0xB5, 0x25, 0xFF, 0xFF, 0xB3, 0x28, 0xFF, 0xFF, 0xB5, 0x28, 0xFF, 0xFF, 0xB7, 0x28, 0xFF, 0xFF, 0xB4, 0x1E, + 0xFF, 0xFE, 0xB2, 0x14, 0xFF, 0xF6, 0xAD, 0x20, 0xFF, 0xFE, 0xB9, 0x3C, 0xFF, 0xF0, 0xCB, 0x5A, 0xFF, 0xFA, 0xBE, + 0x41, 0xFF, 0xFC, 0xB5, 0x29, 0xFF, 0xFE, 0xAD, 0x11, 0xFF, 0xFC, 0xAC, 0x17, 0xFF, 0xFA, 0xAB, 0x1D, 0xFF, 0xFD, + 0xA9, 0x1D, 0xFF, 0xFF, 0xA7, 0x1D, 0xFF, 0xFA, 0xA7, 0x1B, 0xFF, 0xF4, 0xA8, 0x18, 0xFF, 0xF8, 0xA6, 0x18, 0xFF, + 0xFC, 0xA4, 0x17, 0xFF, 0xFA, 0xA2, 0x19, 0xFF, 0xF7, 0xA1, 0x1A, 0xFF, 0xF7, 0xA0, 0x19, 0xFF, 0xF7, 0xA0, 0x17, + 0xFF, 0xF7, 0x9F, 0x16, 0xFF, 0xF7, 0x9F, 0x15, 0xFF, 0xF7, 0x9E, 0x14, 0xFF, 0xF6, 0x9D, 0x13, 0xFF, 0xF6, 0x9C, + 0x13, 0xFF, 0xF5, 0x9B, 0x12, 0xFF, 0xF4, 0x9A, 0x11, 0xFF, 0xF3, 0x99, 0x10, 0xFF, 0xF3, 0x99, 0x10, 0xFF, 0xF7, + 0xD1, 0x54, 0xFF, 0xF8, 0xD0, 0x52, 0xFF, 0xF8, 0xD0, 0x51, 0xFF, 0xF9, 0xCF, 0x4F, 0xFF, 0xF9, 0xCF, 0x4E, 0xFF, + 0xF9, 0xCE, 0x4B, 0xFF, 0xF9, 0xCD, 0x49, 0xFF, 0xF9, 0xCC, 0x47, 0xFF, 0xF8, 0xCA, 0x45, 0xFF, 0xF8, 0xCA, 0x44, + 0xFF, 0xF8, 0xC9, 0x44, 0xFF, 0xF9, 0xC8, 0x43, 0xFF, 0xF9, 0xC7, 0x42, 0xFF, 0xF9, 0xC7, 0x42, 0xFF, 0xF9, 0xC6, + 0x41, 0xFF, 0xF9, 0xC5, 0x40, 0xFF, 0xF9, 0xC4, 0x40, 0xFF, 0xF9, 0xC3, 0x3E, 0xFF, 0xF9, 0xC2, 0x3C, 0xFF, 0xF9, + 0xC1, 0x3B, 0xFF, 0xF9, 0xC0, 0x39, 0xFF, 0xF9, 0xBF, 0x38, 0xFF, 0xF8, 0xBE, 0x36, 0xFF, 0xF8, 0xBE, 0x35, 0xFF, + 0xF8, 0xBD, 0x34, 0xFF, 0xF6, 0xBC, 0x34, 0xFF, 0xF4, 0xBA, 0x35, 0xFF, 0xF8, 0xB8, 0x34, 0xFF, 0xFB, 0xB6, 0x33, + 0xFF, 0xF9, 0xB6, 0x2D, 0xFF, 0xF6, 0xB6, 0x28, 0xFF, 0xF8, 0xB5, 0x29, 0xFF, 0xFA, 0xB4, 0x29, 0xFF, 0xFB, 0xB4, + 0x29, 0xFF, 0xFC, 0xB5, 0x29, 0xFF, 0xF5, 0xB2, 0x29, 0xFF, 0xEF, 0xAF, 0x29, 0xFF, 0xF5, 0xA9, 0x1A, 0xFF, 0xD9, + 0xCE, 0x9A, 0xFF, 0xE8, 0xCF, 0x6C, 0xFF, 0xE3, 0xC6, 0x73, 0xFF, 0xDD, 0xC9, 0x7F, 0xFF, 0xFB, 0xAD, 0x18, 0xFF, + 0xF9, 0xAC, 0x1B, 0xFF, 0xF7, 0xAB, 0x1F, 0xFF, 0xF9, 0xA9, 0x1E, 0xFF, 0xFB, 0xA7, 0x1D, 0xFF, 0xF8, 0xA7, 0x1C, + 0xFF, 0xF6, 0xA6, 0x1A, 0xFF, 0xF8, 0xA5, 0x19, 0xFF, 0xFA, 0xA3, 0x19, 0xFF, 0xF9, 0xA2, 0x1A, 0xFF, 0xF8, 0xA1, + 0x1A, 0xFF, 0xF8, 0xA1, 0x19, 0xFF, 0xF8, 0xA0, 0x18, 0xFF, 0xF7, 0x9F, 0x16, 0xFF, 0xF7, 0x9F, 0x15, 0xFF, 0xF7, + 0x9E, 0x14, 0xFF, 0xF6, 0x9D, 0x13, 0xFF, 0xF6, 0x9C, 0x12, 0xFF, 0xF5, 0x9B, 0x11, 0xFF, 0xF5, 0x9A, 0x11, 0xFF, + 0xF4, 0x9A, 0x10, 0xFF, 0xF4, 0x9A, 0x10, 0xFF, 0xF9, 0xD0, 0x54, 0xFF, 0xF9, 0xCF, 0x52, 0xFF, 0xF9, 0xCF, 0x51, + 0xFF, 0xFA, 0xCF, 0x4F, 0xFF, 0xFA, 0xCF, 0x4D, 0xFF, 0xF9, 0xCE, 0x4A, 0xFF, 0xF9, 0xCC, 0x48, 0xFF, 0xF8, 0xCB, + 0x46, 0xFF, 0xF8, 0xCA, 0x43, 0xFF, 0xF8, 0xC9, 0x43, 0xFF, 0xF8, 0xC9, 0x43, 0xFF, 0xF8, 0xC8, 0x42, 0xFF, 0xF8, + 0xC7, 0x42, 0xFF, 0xF8, 0xC7, 0x41, 0xFF, 0xF9, 0xC6, 0x41, 0xFF, 0xF9, 0xC5, 0x40, 0xFF, 0xF9, 0xC4, 0x40, 0xFF, + 0xF9, 0xC3, 0x3E, 0xFF, 0xF9, 0xC2, 0x3C, 0xFF, 0xF9, 0xC1, 0x3A, 0xFF, 0xF9, 0xBF, 0x38, 0xFF, 0xF9, 0xBF, 0x37, + 0xFF, 0xF9, 0xBE, 0x36, 0xFF, 0xF8, 0xBE, 0x34, 0xFF, 0xF8, 0xBD, 0x33, 0xFF, 0xF9, 0xBC, 0x33, 0xFF, 0xF9, 0xBA, + 0x32, 0xFF, 0xFA, 0xB9, 0x32, 0xFF, 0xFB, 0xB7, 0x31, 0xFF, 0xF9, 0xB6, 0x30, 0xFF, 0xF8, 0xB6, 0x2E, 0xFF, 0xF6, + 0xB5, 0x2C, 0xFF, 0xF4, 0xB4, 0x2A, 0xFF, 0xF5, 0xB3, 0x2A, 0xFF, 0xF6, 0xB2, 0x2A, 0xFF, 0xF9, 0xB2, 0x29, 0xFF, + 0xFB, 0xB2, 0x28, 0xFF, 0xF6, 0xB2, 0x30, 0xFF, 0xFD, 0xA8, 0x11, 0xFF, 0xE1, 0xD3, 0x7E, 0xFF, 0xE6, 0xBB, 0x58, + 0xFF, 0xFB, 0xAA, 0x15, 0xFF, 0xF7, 0xAD, 0x1F, 0xFF, 0xF6, 0xAB, 0x1F, 0xFF, 0xF5, 0xAA, 0x20, 0xFF, 0xF6, 0xA9, + 0x1F, 0xFF, 0xF6, 0xA7, 0x1E, 0xFF, 0xF7, 0xA6, 0x1D, 0xFF, 0xF8, 0xA5, 0x1B, 0xFF, 0xF8, 0xA4, 0x1B, 0xFF, 0xF8, + 0xA3, 0x1B, 0xFF, 0xF8, 0xA2, 0x1B, 0xFF, 0xF9, 0xA1, 0x1A, 0xFF, 0xF8, 0xA1, 0x19, 0xFF, 0xF8, 0xA0, 0x18, 0xFF, + 0xF8, 0x9F, 0x16, 0xFF, 0xF7, 0x9F, 0x15, 0xFF, 0xF7, 0x9E, 0x14, 0xFF, 0xF6, 0x9D, 0x13, 0xFF, 0xF6, 0x9C, 0x12, + 0xFF, 0xF5, 0x9A, 0x11, 0xFF, 0xF5, 0x9A, 0x11, 0xFF, 0xF5, 0x9A, 0x11, 0xFF, 0xF5, 0x9A, 0x11, 0xFF, 0xF9, 0xD0, + 0x54, 0xFF, 0xF9, 0xCF, 0x52, 0xFF, 0xF9, 0xCF, 0x51, 0xFF, 0xFA, 0xCF, 0x4F, 0xFF, 0xFA, 0xCF, 0x4D, 0xFF, 0xF9, + 0xCE, 0x4A, 0xFF, 0xF9, 0xCC, 0x48, 0xFF, 0xF8, 0xCB, 0x46, 0xFF, 0xF8, 0xCA, 0x43, 0xFF, 0xF8, 0xC9, 0x43, 0xFF, + 0xF8, 0xC9, 0x43, 0xFF, 0xF8, 0xC8, 0x42, 0xFF, 0xF8, 0xC7, 0x42, 0xFF, 0xF8, 0xC7, 0x41, 0xFF, 0xF9, 0xC6, 0x41, + 0xFF, 0xF9, 0xC5, 0x40, 0xFF, 0xF9, 0xC4, 0x40, 0xFF, 0xF9, 0xC3, 0x3E, 0xFF, 0xF9, 0xC2, 0x3C, 0xFF, 0xF9, 0xC1, + 0x3A, 0xFF, 0xF9, 0xBF, 0x38, 0xFF, 0xF9, 0xBF, 0x37, 0xFF, 0xF9, 0xBE, 0x36, 0xFF, 0xF8, 0xBE, 0x34, 0xFF, 0xF8, + 0xBD, 0x33, 0xFF, 0xF9, 0xBC, 0x33, 0xFF, 0xF9, 0xBA, 0x32, 0xFF, 0xFA, 0xB9, 0x32, 0xFF, 0xFB, 0xB7, 0x31, 0xFF, + 0xF9, 0xB6, 0x30, 0xFF, 0xF8, 0xB6, 0x2E, 0xFF, 0xF6, 0xB5, 0x2C, 0xFF, 0xF4, 0xB4, 0x2A, 0xFF, 0xF5, 0xB3, 0x2A, + 0xFF, 0xF6, 0xB2, 0x2A, 0xFF, 0xF8, 0xB2, 0x2A, 0xFF, 0xFA, 0xB1, 0x29, 0xFF, 0xF4, 0xB5, 0x2D, 0xFF, 0xF5, 0xB4, + 0x1D, 0xFF, 0xFF, 0x9B, 0x23, 0xFF, 0xF2, 0xB5, 0x1F, 0xFF, 0xFB, 0xAB, 0x0B, 0xFF, 0xF6, 0xAC, 0x1E, 0xFF, 0xF6, + 0xAB, 0x1F, 0xFF, 0xF5, 0xAA, 0x20, 0xFF, 0xF6, 0xA9, 0x1F, 0xFF, 0xF6, 0xA7, 0x1E, 0xFF, 0xF7, 0xA6, 0x1D, 0xFF, + 0xF8, 0xA5, 0x1B, 0xFF, 0xF8, 0xA4, 0x1B, 0xFF, 0xF8, 0xA3, 0x1B, 0xFF, 0xF8, 0xA2, 0x1B, 0xFF, 0xF9, 0xA1, 0x1A, + 0xFF, 0xF8, 0xA1, 0x19, 0xFF, 0xF8, 0xA0, 0x18, 0xFF, 0xF8, 0x9F, 0x16, 0xFF, 0xF7, 0x9F, 0x15, 0xFF, 0xF7, 0x9E, + 0x14, 0xFF, 0xF6, 0x9D, 0x13, 0xFF, 0xF6, 0x9C, 0x12, 0xFF, 0xF5, 0x9A, 0x11, 0xFF, 0xF5, 0x9A, 0x11, 0xFF, 0xF5, + 0x9A, 0x11, 0xFF, 0xF5, 0x9A, 0x11, 0xFF, 0xF9, 0xD0, 0x54, 0xFF, 0xF9, 0xCF, 0x52, 0xFF, 0xF9, 0xCF, 0x51, 0xFF, + 0xFA, 0xCF, 0x4F, 0xFF, 0xFA, 0xCF, 0x4D, 0xFF, 0xF9, 0xCE, 0x4A, 0xFF, 0xF9, 0xCC, 0x48, 0xFF, 0xF8, 0xCB, 0x46, + 0xFF, 0xF8, 0xCA, 0x43, 0xFF, 0xF8, 0xC9, 0x43, 0xFF, 0xF8, 0xC9, 0x43, 0xFF, 0xF8, 0xC8, 0x42, 0xFF, 0xF8, 0xC7, + 0x42, 0xFF, 0xF8, 0xC7, 0x41, 0xFF, 0xF9, 0xC6, 0x41, 0xFF, 0xF9, 0xC5, 0x40, 0xFF, 0xF9, 0xC4, 0x40, 0xFF, 0xF9, + 0xC3, 0x3E, 0xFF, 0xF9, 0xC2, 0x3C, 0xFF, 0xF9, 0xC1, 0x3A, 0xFF, 0xF9, 0xBF, 0x38, 0xFF, 0xF9, 0xBF, 0x37, 0xFF, + 0xF9, 0xBE, 0x36, 0xFF, 0xF8, 0xBE, 0x34, 0xFF, 0xF8, 0xBD, 0x33, 0xFF, 0xF9, 0xBC, 0x33, 0xFF, 0xF9, 0xBA, 0x32, + 0xFF, 0xFA, 0xB9, 0x32, 0xFF, 0xFB, 0xB7, 0x31, 0xFF, 0xF9, 0xB6, 0x30, 0xFF, 0xF8, 0xB6, 0x2E, 0xFF, 0xF6, 0xB5, + 0x2C, 0xFF, 0xF4, 0xB4, 0x2A, 0xFF, 0xF5, 0xB3, 0x2A, 0xFF, 0xF6, 0xB2, 0x2A, 0xFF, 0xF7, 0xB2, 0x2A, 0xFF, 0xF8, + 0xB1, 0x2A, 0xFF, 0xF9, 0xAE, 0x21, 0xFF, 0xFA, 0xAC, 0x18, 0xFF, 0xF6, 0xAD, 0x1E, 0xFF, 0xF3, 0xAE, 0x23, 0xFF, + 0xF4, 0xAC, 0x20, 0xFF, 0xF5, 0xAB, 0x1D, 0xFF, 0xF5, 0xAA, 0x1E, 0xFF, 0xF5, 0xAA, 0x20, 0xFF, 0xF6, 0xA9, 0x1F, + 0xFF, 0xF6, 0xA7, 0x1E, 0xFF, 0xF7, 0xA6, 0x1D, 0xFF, 0xF8, 0xA5, 0x1B, 0xFF, 0xF8, 0xA4, 0x1B, 0xFF, 0xF8, 0xA3, + 0x1B, 0xFF, 0xF8, 0xA2, 0x1B, 0xFF, 0xF9, 0xA1, 0x1A, 0xFF, 0xF8, 0xA1, 0x19, 0xFF, 0xF8, 0xA0, 0x18, 0xFF, 0xF8, + 0x9F, 0x16, 0xFF, 0xF7, 0x9F, 0x15, 0xFF, 0xF7, 0x9E, 0x14, 0xFF, 0xF6, 0x9D, 0x13, 0xFF, 0xF6, 0x9C, 0x12, 0xFF, + 0xF5, 0x9A, 0x11, 0xFF, 0xF5, 0x9A, 0x11, 0xFF, 0xF5, 0x9A, 0x11, 0xFF, 0xF5, 0x9A, 0x11, 0xFF, 0xF9, 0xD0, 0x54, + 0xFF, 0xF9, 0xCF, 0x52, 0xFF, 0xF9, 0xCF, 0x51, 0xFF, 0xFA, 0xCF, 0x4F, 0xFF, 0xFA, 0xCF, 0x4D, 0xFF, 0xF9, 0xCE, + 0x4A, 0xFF, 0xF9, 0xCC, 0x48, 0xFF, 0xF8, 0xCB, 0x46, 0xFF, 0xF8, 0xCA, 0x43, 0xFF, 0xF8, 0xC9, 0x43, 0xFF, 0xF8, + 0xC9, 0x43, 0xFF, 0xF8, 0xC8, 0x42, 0xFF, 0xF8, 0xC7, 0x42, 0xFF, 0xF8, 0xC7, 0x41, 0xFF, 0xF9, 0xC6, 0x41, 0xFF, + 0xF9, 0xC5, 0x40, 0xFF, 0xF9, 0xC4, 0x40, 0xFF, 0xF9, 0xC3, 0x3E, 0xFF, 0xF9, 0xC2, 0x3C, 0xFF, 0xF9, 0xC1, 0x3A, + 0xFF, 0xF9, 0xBF, 0x38, 0xFF, 0xF9, 0xBF, 0x37, 0xFF, 0xF9, 0xBE, 0x36, 0xFF, 0xF8, 0xBE, 0x34, 0xFF, 0xF8, 0xBD, + 0x33, 0xFF, 0xF9, 0xBC, 0x33, 0xFF, 0xF9, 0xBA, 0x32, 0xFF, 0xFA, 0xB9, 0x32, 0xFF, 0xFB, 0xB7, 0x31, 0xFF, 0xF9, + 0xB6, 0x30, 0xFF, 0xF8, 0xB6, 0x2E, 0xFF, 0xF6, 0xB5, 0x2C, 0xFF, 0xF4, 0xB4, 0x2A, 0xFF, 0xF5, 0xB3, 0x2A, 0xFF, + 0xF6, 0xB2, 0x2A, 0xFF, 0xF7, 0xB2, 0x2A, 0xFF, 0xF8, 0xB1, 0x2A, 0xFF, 0xF9, 0xAE, 0x21, 0xFF, 0xFA, 0xAC, 0x18, + 0xFF, 0xF6, 0xAD, 0x1E, 0xFF, 0xF3, 0xAE, 0x23, 0xFF, 0xF4, 0xAC, 0x20, 0xFF, 0xF5, 0xAB, 0x1D, 0xFF, 0xF5, 0xAA, + 0x1E, 0xFF, 0xF5, 0xAA, 0x20, 0xFF, 0xF6, 0xA9, 0x1F, 0xFF, 0xF6, 0xA7, 0x1E, 0xFF, 0xF7, 0xA6, 0x1D, 0xFF, 0xF8, + 0xA5, 0x1B, 0xFF, 0xF8, 0xA4, 0x1B, 0xFF, 0xF8, 0xA3, 0x1B, 0xFF, 0xF8, 0xA2, 0x1B, 0xFF, 0xF9, 0xA1, 0x1A, 0xFF, + 0xF8, 0xA1, 0x19, 0xFF, 0xF8, 0xA0, 0x18, 0xFF, 0xF8, 0x9F, 0x16, 0xFF, 0xF7, 0x9F, 0x15, 0xFF, 0xF7, 0x9E, 0x14, + 0xFF, 0xF6, 0x9D, 0x13, 0xFF, 0xF6, 0x9C, 0x12, 0xFF, 0xF5, 0x9A, 0x11, 0xFF, 0xF5, 0x9A, 0x11, 0xFF, 0xF5, 0x9A, + 0x11, 0xFF, 0xF5, 0x9A, 0x11, 0xFF, ]; diff --git a/ironrdp_client/src/active_session/fast_path.rs b/ironrdp_client/src/active_session/fast_path.rs index c15a73d3..85ee1eb9 100644 --- a/ironrdp_client/src/active_session/fast_path.rs +++ b/ironrdp_client/src/active_session/fast_path.rs @@ -1,31 +1,21 @@ -use std::{ - io, - sync::{Arc, Mutex}, -}; +use std::io; +use std::sync::{Arc, Mutex}; +use ironrdp::codecs::rfx::FrameAcknowledgePdu; +use ironrdp::fast_path::{FastPathError, FastPathHeader, FastPathUpdate, FastPathUpdatePdu, Fragmentation, UpdateCode}; +use ironrdp::surface_commands::{FrameAction, FrameMarkerPdu, SurfaceCommand}; +use ironrdp::{PduBufferParsing, ShareDataPdu}; use log::{debug, info, warn}; use num_traits::FromPrimitive; -use ironrdp::{ - codecs::rfx::FrameAcknowledgePdu, - fast_path::{ - FastPathError, FastPathHeader, FastPathUpdate, FastPathUpdatePdu, Fragmentation, UpdateCode, - }, - PduBufferParsing, - ShareDataPdu, surface_commands::{FrameAction, SurfaceCommand}, +use super::codecs::rfx; +use super::{DecodedImage, DESTINATION_PIXEL_FORMAT}; +use crate::transport::{ + DataTransport, Encoder, McsTransport, SendDataContextTransport, ShareControlHeaderTransport, + ShareDataHeaderTransport, }; -use ironrdp::surface_commands::FrameMarkerPdu; - -use crate::{ - RdpError, - transport::{ - DataTransport, Encoder, McsTransport, SendDataContextTransport, - ShareControlHeaderTransport, ShareDataHeaderTransport, - }, - utils::CodecId, -}; - -use super::{codecs::rfx, DecodedImage, DESTINATION_PIXEL_FORMAT}; +use crate::utils::CodecId; +use crate::RdpError; pub struct Processor { complete_data: CompleteData, @@ -47,10 +37,7 @@ impl Processor { let update_pdu = FastPathUpdatePdu::from_buffer(input_buffer)?; let update_pdu_length = update_pdu.buffer_length(); - debug!( - "Fast-Path Update fragmentation: {:?}", - update_pdu.fragmentation - ); + debug!("Fast-Path Update fragmentation: {:?}", update_pdu.fragmentation); let processed_complete_data = self .complete_data @@ -63,10 +50,7 @@ impl Processor { match update { Ok(FastPathUpdate::SurfaceCommands(surface_commands)) => { - info!( - "Received Surface Commands: {} pieces", - surface_commands.len() - ); + info!("Received Surface Commands: {} pieces", surface_commands.len()); self.process_surface_commands(&mut stream, surface_commands)?; } @@ -102,20 +86,16 @@ impl Processor { match command { SurfaceCommand::SetSurfaceBits(bits) | SurfaceCommand::StreamSurfaceBits(bits) => { info!("Surface bits"); - let codec_id = CodecId::from_u8(bits.extended_bitmap_data.codec_id).ok_or( - RdpError::UnexpectedCodecId(bits.extended_bitmap_data.codec_id), - )?; + let codec_id = CodecId::from_u8(bits.extended_bitmap_data.codec_id) + .ok_or(RdpError::UnexpectedCodecId(bits.extended_bitmap_data.codec_id))?; match codec_id { CodecId::RemoteFx => { let destination = bits.destination; let mut data = bits.extended_bitmap_data.data; while !data.is_empty() { - self.rfx_handler.decode( - &destination, - &mut data, - self.decoded_image.clone(), - )?; + self.rfx_handler + .decode(&destination, &mut data, self.decoded_image.clone())?; } } } @@ -159,9 +139,7 @@ struct CompleteData { impl CompleteData { fn new() -> Self { - Self { - fragmented_data: None, - } + Self { fragmented_data: None } } fn process_data(&mut self, data: &[u8], fragmentation: Fragmentation) -> Option> { @@ -205,10 +183,7 @@ impl CompleteData { warn!("Got unexpected Next fragmentation PDU without prior First fragmentation PDU"); self.fragmented_data = None; } else { - self.fragmented_data - .as_mut() - .unwrap() - .extend_from_slice(data); + self.fragmented_data.as_mut().unwrap().extend_from_slice(data); } } } @@ -232,11 +207,7 @@ impl Frame { } } - fn process_marker( - &mut self, - marker: &FrameMarkerPdu, - mut output: impl io::Write, - ) -> Result<(), RdpError> { + fn process_marker(&mut self, marker: &FrameMarkerPdu, mut output: impl io::Write) -> Result<(), RdpError> { match marker.frame_action { FrameAction::Begin => Ok(()), FrameAction::End => self.transport.encode( diff --git a/ironrdp_client/src/active_session/x224.rs b/ironrdp_client/src/active_session/x224.rs index 4069b173..b1d399ee 100644 --- a/ironrdp_client/src/active_session/x224.rs +++ b/ironrdp_client/src/active_session/x224.rs @@ -1,23 +1,18 @@ mod gfx; -use std::{cmp, collections::HashMap, io}; +use std::collections::HashMap; +use std::{cmp, io}; -use ironrdp::{ - rdp::{ - vc::{self, dvc}, - ErrorInfo, ProtocolIndependentCode, ServerSetErrorInfoPdu, - }, - Data, ShareDataPdu, -}; +use ironrdp::rdp::vc::{self, dvc}; +use ironrdp::rdp::{ErrorInfo, ProtocolIndependentCode, ServerSetErrorInfoPdu}; +use ironrdp::{Data, ShareDataPdu}; use log::{debug, error}; -use crate::{ - transport::{ - Decoder, DynamicVirtualChannelTransport, Encoder, SendDataContextTransport, - ShareControlHeaderTransport, ShareDataHeaderTransport, StaticVirtualChannelTransport, - }, - RdpError, +use crate::transport::{ + Decoder, DynamicVirtualChannelTransport, Encoder, SendDataContextTransport, ShareControlHeaderTransport, + ShareDataHeaderTransport, StaticVirtualChannelTransport, }; +use crate::RdpError; const RDP8_GRAPHICS_PIPELINE_NAME: &str = "Microsoft::Windows::RDS::Graphics"; @@ -36,25 +31,14 @@ impl<'a> Processor<'a> { } } - pub fn process( - &mut self, - mut stream: impl io::BufRead + io::Write, - data: Data, - ) -> Result<(), RdpError> { + pub fn process(&mut self, mut stream: impl io::BufRead + io::Write, data: Data) -> Result<(), RdpError> { let mut transport = SendDataContextTransport::default(); - transport - .mcs_transport - .0 - .set_decoded_context(data.data_length); + transport.mcs_transport.0.set_decoded_context(data.data_length); let channel_ids = transport.decode(&mut stream)?; transport.set_decoded_context(channel_ids); - match self - .static_channels - .get(&channel_ids.channel_id) - .map(String::as_str) - { + match self.static_channels.get(&channel_ids.channel_id).map(String::as_str) { Some(vc::DRDYNVC_CHANNEL_NAME) => { let transport = DynamicVirtualChannelTransport::new( StaticVirtualChannelTransport::new(transport), @@ -85,10 +69,9 @@ impl<'a> Processor<'a> { match transport.decode(&mut stream)? { dvc::ServerPdu::CapabilitiesRequest(caps_request) => { debug!("Got DVC Capabilities Request PDU: {:?}", caps_request); - let caps_response = - dvc::ClientPdu::CapabilitiesResponse(dvc::CapabilitiesResponsePdu { - version: dvc::CapsVersion::V1, - }); + let caps_response = dvc::ClientPdu::CapabilitiesResponse(dvc::CapabilitiesResponsePdu { + version: dvc::CapsVersion::V1, + }); debug!("Send DVC Capabilities Response PDU: {:?}", caps_response); transport.encode( @@ -99,9 +82,7 @@ impl<'a> Processor<'a> { dvc::ServerPdu::CreateRequest(create_request) => { debug!("Got DVC Create Request PDU: {:?}", create_request); - let creation_status = if let Some(dyncamic_channel) = - create_dvc(create_request.channel_name.as_str()) - { + let creation_status = if let Some(dyncamic_channel) = create_dvc(create_request.channel_name.as_str()) { self.dynamic_channels .insert(create_request.channel_id, dyncamic_channel); @@ -159,10 +140,7 @@ impl<'a> Processor<'a> { }); transport.encode( - DynamicVirtualChannelTransport::prepare_data_to_encode( - client_data, - Some(dvc_data), - )?, + DynamicVirtualChannelTransport::prepare_data_to_encode(client_data, Some(dvc_data))?, &mut stream, )?; } @@ -186,10 +164,7 @@ impl<'a> Processor<'a> { }); transport.encode( - DynamicVirtualChannelTransport::prepare_data_to_encode( - client_data, - Some(dvc_data), - )?, + DynamicVirtualChannelTransport::prepare_data_to_encode(client_data, Some(dvc_data))?, &mut stream, )?; } @@ -212,16 +187,14 @@ fn process_global_channel_pdu( Ok(()) } - ShareDataPdu::ServerSetErrorInfo(ServerSetErrorInfoPdu( - ErrorInfo::ProtocolIndependentCode(ProtocolIndependentCode::None), - )) => { + ShareDataPdu::ServerSetErrorInfo(ServerSetErrorInfoPdu(ErrorInfo::ProtocolIndependentCode( + ProtocolIndependentCode::None, + ))) => { debug!("Received None server error"); Ok(()) } - ShareDataPdu::ServerSetErrorInfo(ServerSetErrorInfoPdu(e)) => { - Err(RdpError::ServerError(e.description())) - } + ShareDataPdu::ServerSetErrorInfo(ServerSetErrorInfoPdu(e)) => Err(RdpError::ServerError(e.description())), _ => Err(RdpError::UnexpectedPdu(format!( "Expected Session Save Info PDU, got: {:?}", share_data_pdu.as_short_name() @@ -260,10 +233,7 @@ fn negotiate_dvc( } trait DynamicChannelDataHandler { - fn process_complete_data( - &mut self, - complete_data: Vec, - ) -> Result>, RdpError>; + fn process_complete_data(&mut self, complete_data: Vec) -> Result>, RdpError>; } pub struct DynamicChannel { @@ -279,11 +249,7 @@ impl DynamicChannel { } } - fn process_data_first_pdu( - &mut self, - total_data_size: usize, - data: Vec, - ) -> Result>, RdpError> { + fn process_data_first_pdu(&mut self, total_data_size: usize, data: Vec) -> Result>, RdpError> { if let Some(complete_data) = self.data.process_data_first_pdu(total_data_size, data) { self.handler.process_complete_data(complete_data) } else { @@ -352,9 +318,7 @@ impl CompleteData { Some(self.data.drain(..).collect()) } cmp::Ordering::Greater => { - error!( - "Actual DVC message size is grater than expected total DVC message size" - ); + error!("Actual DVC message size is grater than expected total DVC message size"); self.total_size = 0; self.data.clear(); diff --git a/ironrdp_client/src/active_session/x224/gfx.rs b/ironrdp_client/src/active_session/x224/gfx.rs index 8396b97b..5bd17e50 100644 --- a/ironrdp_client/src/active_session/x224/gfx.rs +++ b/ironrdp_client/src/active_session/x224/gfx.rs @@ -1,10 +1,8 @@ -use ironrdp::{ - dvc::gfx::{ - zgfx, CapabilitiesAdvertisePdu, CapabilitiesV8Flags, CapabilitySet, ClientPdu, - FrameAcknowledgePdu, QueueDepth, ServerPdu, - }, - PduParsing, +use ironrdp::dvc::gfx::{ + zgfx, CapabilitiesAdvertisePdu, CapabilitiesV8Flags, CapabilitySet, ClientPdu, FrameAcknowledgePdu, QueueDepth, + ServerPdu, }; +use ironrdp::PduParsing; use log::debug; use super::DynamicChannelDataHandler; @@ -27,10 +25,7 @@ impl Handler { } impl DynamicChannelDataHandler for Handler { - fn process_complete_data( - &mut self, - complete_data: Vec, - ) -> Result>, RdpError> { + fn process_complete_data(&mut self, complete_data: Vec) -> Result>, RdpError> { self.decompressed_buffer.clear(); self.decompressor .decompress(complete_data.as_slice(), &mut self.decompressed_buffer)?; @@ -57,12 +52,10 @@ impl DynamicChannelDataHandler for Handler { } pub fn create_capabilities_advertise() -> Result, RdpError> { - let capabilities_advertise = - ClientPdu::CapabilitiesAdvertise(CapabilitiesAdvertisePdu(vec![CapabilitySet::V8 { - flags: CapabilitiesV8Flags::empty(), - }])); - let mut capabilities_advertise_buffer = - Vec::with_capacity(capabilities_advertise.buffer_length()); + let capabilities_advertise = ClientPdu::CapabilitiesAdvertise(CapabilitiesAdvertisePdu(vec![CapabilitySet::V8 { + flags: CapabilitiesV8Flags::empty(), + }])); + let mut capabilities_advertise_buffer = Vec::with_capacity(capabilities_advertise.buffer_length()); capabilities_advertise.to_buffer(&mut capabilities_advertise_buffer)?; Ok(capabilities_advertise_buffer) diff --git a/ironrdp_client/src/config.rs b/ironrdp_client/src/config.rs index db4bb131..2459ee85 100644 --- a/ironrdp_client/src/config.rs +++ b/ironrdp_client/src/config.rs @@ -2,9 +2,8 @@ use std::net::SocketAddr; use clap::{crate_name, crate_version, App, Arg}; use ironrdp::nego::SecurityProtocol; -use sspi::AuthIdentity; - use ironrdp_client::InputConfig; +use sspi::AuthIdentity; const DEFAULT_WIDTH: u16 = 1920; const DEFAULT_HEIGHT: u16 = 1080; @@ -44,9 +43,7 @@ impl Config { .index(1) .validator(|u| match u.parse::() { Ok(_) => Ok(()), - Err(_) => Err(String::from( - "The address does not match the format: :", - )), + Err(_) => Err(String::from("The address does not match the format: :")), }), ) .args(&input_args()); diff --git a/ironrdp_client/src/connection_sequence.rs b/ironrdp_client/src/connection_sequence.rs index 69b1c89c..6cd47201 100644 --- a/ironrdp_client/src/connection_sequence.rs +++ b/ironrdp_client/src/connection_sequence.rs @@ -1,33 +1,25 @@ mod user_info; -use std::{ - collections::HashMap, - io::{self}, - iter, - net::SocketAddr, -}; +use std::collections::HashMap; +use std::io::{self}; +use std::iter; +use std::net::SocketAddr; use bufstream::BufStream; use bytes::BytesMut; -use ironrdp::{ - nego, rdp, - rdp::{ - capability_sets::CapabilitySet, - server_license::{ - ClientNewLicenseRequest, ClientPlatformChallengeResponse, InitialMessageType, - InitialServerLicenseMessage, ServerPlatformChallenge, ServerUpgradeLicense, - PREMASTER_SECRET_SIZE, RANDOM_NUMBER_SIZE, - }, - ErrorInfo, ServerSetErrorInfoPdu, SERVER_CHANNEL_ID, - }, - PduParsing, +use ironrdp::rdp::capability_sets::CapabilitySet; +use ironrdp::rdp::server_license::{ + ClientNewLicenseRequest, ClientPlatformChallengeResponse, InitialMessageType, InitialServerLicenseMessage, + ServerPlatformChallenge, ServerUpgradeLicense, PREMASTER_SECRET_SIZE, RANDOM_NUMBER_SIZE, }; +use ironrdp::rdp::{ErrorInfo, ProtocolIndependentCode, ServerSetErrorInfoPdu, SERVER_CHANNEL_ID}; +use ironrdp::{nego, rdp, PduParsing}; use log::{debug, info, trace, warn}; use ring::rand::SecureRandom; use sspi::internal::credssp; -use crate::{transport::*, InputConfig, RdpError, BUF_STREAM_SIZE}; -use ironrdp::rdp::ProtocolIndependentCode; +use crate::transport::*; +use crate::{InputConfig, RdpError, BUF_STREAM_SIZE}; pub type StaticChannels = HashMap; @@ -83,20 +75,16 @@ where process_cred_ssp(&mut stream, config.credentials.clone(), server_public_key)?; if selected_protocol.contains(nego::SecurityProtocol::HYBRID_EX) { - if let credssp::EarlyUserAuthResult::AccessDenied = - EarlyUserAuthResult::read(&mut stream)? - { + if let credssp::EarlyUserAuthResult::AccessDenied = EarlyUserAuthResult::read(&mut stream)? { return Err(RdpError::AccessDenied); } } } - let static_channels = - process_mcs_connect(&mut stream, &mut transport, config, selected_protocol)?; + let static_channels = process_mcs_connect(&mut stream, &mut transport, config, selected_protocol)?; let mut transport = McsTransport::new(transport); - let joined_static_channels = - process_mcs(&mut stream, &mut transport, static_channels, config)?; + let joined_static_channels = process_mcs(&mut stream, &mut transport, static_channels, config)?; debug!("Joined static active_session: {:?}", joined_static_channels); let global_channel_id = *joined_static_channels @@ -119,8 +107,7 @@ where Ok(_) => (), } - let mut transport = - ShareControlHeaderTransport::new(transport, initiator_id, global_channel_id); + let mut transport = ShareControlHeaderTransport::new(transport, initiator_id, global_channel_id); let desktop_sizes = process_capability_sets(&mut stream, &mut transport, config)?; let mut transport = ShareDataHeaderTransport::new(transport); @@ -144,12 +131,9 @@ pub fn process_cred_ssp( ) -> Result<(), RdpError> { let mut transport = TsRequestTransport::default(); - let mut cred_ssp_client = credssp::CredSspClient::new( - server_public_key, - credentials, - credssp::CredSspMode::WithCredentials, - ) - .map_err(RdpError::CredSspError)?; + let mut cred_ssp_client = + credssp::CredSspClient::new(server_public_key, credentials, credssp::CredSspMode::WithCredentials) + .map_err(RdpError::CredSspError)?; let mut next_ts_request = credssp::TsRequest::default(); loop { @@ -181,10 +165,8 @@ pub fn process_mcs_connect( config: &InputConfig, selected_protocol: nego::SecurityProtocol, ) -> Result { - let connect_initial = ironrdp::ConnectInitial::with_gcc_blocks(user_info::create_gcc_blocks( - config, - selected_protocol, - )?); + let connect_initial = + ironrdp::ConnectInitial::with_gcc_blocks(user_info::create_gcc_blocks(config, selected_protocol)?); debug!("Send MCS Connect Initial PDU: {:?}", connect_initial); let mut connect_initial_buf = BytesMut::with_capacity(connect_initial.buffer_length()); connect_initial_buf.resize(connect_initial.buffer_length(), 0x00); @@ -196,16 +178,11 @@ pub fn process_mcs_connect( data.resize(data_length, 0x00); stream.read_exact(&mut data)?; - let connect_response = - ironrdp::ConnectResponse::from_buffer(data.as_ref()).map_err(RdpError::McsConnectError)?; + let connect_response = ironrdp::ConnectResponse::from_buffer(data.as_ref()).map_err(RdpError::McsConnectError)?; debug!("Got MCS Connect Response PDU: {:?}", connect_response); let gcc_blocks = connect_response.conference_create_response.gcc_blocks; - if connect_initial - .conference_create_request - .gcc_blocks - .security - == ironrdp::gcc::ClientSecurityData::no_security() + if connect_initial.conference_create_request.gcc_blocks.security == ironrdp::gcc::ClientSecurityData::no_security() && gcc_blocks.security != ironrdp::gcc::ServerSecurityData::no_security() { return Err(RdpError::InvalidResponse(String::from( @@ -228,10 +205,7 @@ pub fn process_mcs_connect( .into_iter() .map(|channel| channel.name) .zip(static_channel_ids.into_iter()) - .chain(iter::once(( - config.global_channel_name.clone(), - global_channel_id, - ))) + .chain(iter::once((config.global_channel_name.clone(), global_channel_id))) .collect::(); Ok(static_channels) @@ -248,16 +222,10 @@ pub fn process_mcs( sub_interval: 0, }; - debug!( - "Send MCS Erect Domain Request PDU: {:?}", - erect_domain_request - ); + debug!("Send MCS Erect Domain Request PDU: {:?}", erect_domain_request); transport.encode( - McsTransport::prepare_data_to_encode( - ironrdp::McsPdu::ErectDomainRequest(erect_domain_request), - None, - )?, + McsTransport::prepare_data_to_encode(ironrdp::McsPdu::ErectDomainRequest(erect_domain_request), None)?, &mut stream, )?; @@ -271,10 +239,7 @@ pub fn process_mcs( let initiator_id = if let ironrdp::McsPdu::AttachUserConfirm(attach_user_confirm) = mcs_pdu { debug!("Got MCS Attach User Confirm PDU: {:?}", attach_user_confirm); - static_channels.insert( - config.user_channel_name.clone(), - attach_user_confirm.initiator_id, - ); + static_channels.insert(config.user_channel_name.clone(), attach_user_confirm.initiator_id); attach_user_confirm.initiator_id } else { @@ -289,24 +254,15 @@ pub fn process_mcs( initiator_id, channel_id: *id, }; - debug!( - "Send MCS Channel Join Request PDU: {:?}", - channel_join_request - ); + debug!("Send MCS Channel Join Request PDU: {:?}", channel_join_request); transport.encode( - McsTransport::prepare_data_to_encode( - ironrdp::McsPdu::ChannelJoinRequest(channel_join_request), - None, - )?, + McsTransport::prepare_data_to_encode(ironrdp::McsPdu::ChannelJoinRequest(channel_join_request), None)?, &mut stream, )?; let mcs_pdu = transport.decode(&mut stream)?; if let ironrdp::McsPdu::ChannelJoinConfirm(channel_join_confirm) = mcs_pdu { - debug!( - "Got MCS Channel Join Confirm PDU: {:?}", - channel_join_confirm - ); + debug!("Got MCS Channel Join Confirm PDU: {:?}", channel_join_confirm); if channel_join_confirm.initiator_id != initiator_id || channel_join_confirm.channel_id != channel_join_confirm.requested_channel_id @@ -364,20 +320,12 @@ pub fn process_server_license_exchange( let mut client_random = vec![0u8; RANDOM_NUMBER_SIZE]; let rand = ring::rand::SystemRandom::new(); - rand.fill(&mut client_random).map_err(|err| { - RdpError::IOError(io::Error::new( - io::ErrorKind::InvalidData, - format!("{}", err), - )) - })?; + rand.fill(&mut client_random) + .map_err(|err| RdpError::IOError(io::Error::new(io::ErrorKind::InvalidData, format!("{}", err))))?; let mut premaster_secret = vec![0u8; PREMASTER_SECRET_SIZE]; - rand.fill(&mut premaster_secret).map_err(|err| { - RdpError::IOError(io::Error::new( - io::ErrorKind::InvalidData, - format!("{}", err), - )) - })?; + rand.fill(&mut premaster_secret) + .map_err(|err| RdpError::IOError(io::Error::new(io::ErrorKind::InvalidData, format!("{}", err))))?; ClientNewLicenseRequest::from_server_license_request( &license_request, @@ -408,14 +356,12 @@ pub fn process_server_license_exchange( trace!("{:?}", encryption_data); let mut new_pdu_buffer = Vec::with_capacity(new_license_request.buffer_length()); - new_license_request - .to_buffer(&mut new_pdu_buffer) - .map_err(|err| { - RdpError::IOError(io::Error::new( - io::ErrorKind::InvalidData, - format!("Unable to write to buffer: {}", err), - )) - })?; + new_license_request.to_buffer(&mut new_pdu_buffer).map_err(|err| { + RdpError::IOError(io::Error::new( + io::ErrorKind::InvalidData, + format!("Unable to write to buffer: {}", err), + )) + })?; transport.encode(new_pdu_buffer, &mut stream)?; let channel_ids = transport.decode(&mut stream)?; @@ -435,10 +381,7 @@ pub fn process_server_license_exchange( .map_err(|err| { RdpError::ServerLicenseError(rdp::RdpError::IOError(io::Error::new( io::ErrorKind::InvalidData, - format!( - "Unable to generate Client Platform Challenge Response {}", - err - ), + format!("Unable to generate Client Platform Challenge Response {}", err), ))) })?; @@ -446,14 +389,12 @@ pub fn process_server_license_exchange( trace!("{:?}", challenge_response); let mut new_pdu_buffer = Vec::with_capacity(challenge_response.buffer_length()); - challenge_response - .to_buffer(&mut new_pdu_buffer) - .map_err(|err| { - RdpError::IOError(io::Error::new( - io::ErrorKind::InvalidData, - format!("Unable to write to buffer: {}", err), - )) - })?; + challenge_response.to_buffer(&mut new_pdu_buffer).map_err(|err| { + RdpError::IOError(io::Error::new( + io::ErrorKind::InvalidData, + format!("Unable to write to buffer: {}", err), + )) + })?; transport.encode(new_pdu_buffer, &mut stream)?; let channel_ids = transport.decode(&mut stream)?; @@ -465,14 +406,12 @@ pub fn process_server_license_exchange( debug!("Received Server Upgrade License PDU"); trace!("{:?}", upgrade_license); - upgrade_license - .verify_server_license(&encryption_data) - .map_err(|err| { - RdpError::ServerLicenseError(rdp::RdpError::IOError(io::Error::new( - io::ErrorKind::InvalidData, - format!("License verification failed: {:?}", err), - ))) - })?; + upgrade_license.verify_server_license(&encryption_data).map_err(|err| { + RdpError::ServerLicenseError(rdp::RdpError::IOError(io::Error::new( + io::ErrorKind::InvalidData, + format!("License verification failed: {:?}", err), + ))) + })?; debug!("Successfully verified the license"); @@ -485,22 +424,17 @@ pub fn process_capability_sets( config: &InputConfig, ) -> Result { let share_control_pdu = transport.decode(&mut stream)?; - let capability_sets = - if let ironrdp::ShareControlPdu::ServerDemandActive(server_demand_active) = - share_control_pdu - { - debug!( - "Got Server Demand Active PDU: {:?}", - server_demand_active.pdu - ); + let capability_sets = if let ironrdp::ShareControlPdu::ServerDemandActive(server_demand_active) = share_control_pdu + { + debug!("Got Server Demand Active PDU: {:?}", server_demand_active.pdu); - server_demand_active.pdu.capability_sets - } else { - return Err(RdpError::UnexpectedPdu(format!( - "Expected Server Demand Active PDU, got: {:?}", - share_control_pdu.as_short_name() - ))); - }; + server_demand_active.pdu.capability_sets + } else { + return Err(RdpError::UnexpectedPdu(format!( + "Expected Server Demand Active PDU, got: {:?}", + share_control_pdu.as_short_name() + ))); + }; let desktop_sizes = capability_sets .iter() .find(|c| matches!(c, CapabilitySet::Bitmap(_))) @@ -516,13 +450,11 @@ pub fn process_capability_sets( height: config.height, }); - let client_confirm_active = ironrdp::ShareControlPdu::ClientConfirmActive( - user_info::create_client_confirm_active(config, capability_sets)?, - ); - debug!( - "Send Client Confirm Active PDU: {:?}", - client_confirm_active - ); + let client_confirm_active = ironrdp::ShareControlPdu::ClientConfirmActive(user_info::create_client_confirm_active( + config, + capability_sets, + )?); + debug!("Send Client Confirm Active PDU: {:?}", client_confirm_active); transport.encode(client_confirm_active, &mut stream)?; Ok(desktop_sizes) @@ -533,9 +465,7 @@ pub fn process_finalization( transport: &mut ShareDataHeaderTransport, initiator_id: u16, ) -> Result<(), RdpError> { - use ironrdp::rdp::{ - ControlAction, ControlPdu, FontPdu, SequenceFlags, ShareDataPdu, SynchronizePdu, - }; + use ironrdp::rdp::{ControlAction, ControlPdu, FontPdu, SequenceFlags, ShareDataPdu, SynchronizePdu}; #[derive(Copy, Clone, PartialEq, Debug)] enum FinalizationOrder { @@ -577,9 +507,7 @@ pub fn process_finalization( debug!("Got Finalization PDU: {:?}", share_data_pdu); finalization_order = match (finalization_order, share_data_pdu) { - (FinalizationOrder::Synchronize, ShareDataPdu::Synchronize(_)) => { - FinalizationOrder::ControlCooperate - } + (FinalizationOrder::Synchronize, ShareDataPdu::Synchronize(_)) => FinalizationOrder::ControlCooperate, ( FinalizationOrder::ControlCooperate, ShareDataPdu::Control(ControlPdu { @@ -595,15 +523,13 @@ pub fn process_finalization( grant_id, control_id, }), - ) if grant_id == initiator_id && control_id == u32::from(SERVER_CHANNEL_ID) => { - FinalizationOrder::Font - } + ) if grant_id == initiator_id && control_id == u32::from(SERVER_CHANNEL_ID) => FinalizationOrder::Font, (FinalizationOrder::Font, ShareDataPdu::FontMap(_)) => FinalizationOrder::Finished, ( order, - ShareDataPdu::ServerSetErrorInfo(ServerSetErrorInfoPdu( - ErrorInfo::ProtocolIndependentCode(ProtocolIndependentCode::None), - )), + ShareDataPdu::ServerSetErrorInfo(ServerSetErrorInfoPdu(ErrorInfo::ProtocolIndependentCode( + ProtocolIndependentCode::None, + ))), ) => order, (_, ShareDataPdu::ServerSetErrorInfo(ServerSetErrorInfoPdu(e))) => { return Err(RdpError::ServerError(e.description())); diff --git a/ironrdp_client/src/connection_sequence/user_info.rs b/ironrdp_client/src/connection_sequence/user_info.rs index 86cbbb9e..5045a881 100644 --- a/ironrdp_client/src/connection_sequence/user_info.rs +++ b/ironrdp_client/src/connection_sequence/user_info.rs @@ -1,33 +1,28 @@ use std::{env, net}; -use ironrdp::{ - gcc::{ - ClientCoreData, ClientCoreOptionalData, ClientEarlyCapabilityFlags, ClientGccBlocks, - ClientNetworkData, ClientSecurityData, ColorDepth, ConnectionType, HighColorDepth, - RdpVersion, SecureAccessSequence, SupportedColorDepths, - }, - nego::SecurityProtocol, - rdp::{ - capability_sets::{ - Bitmap, BitmapCache, BitmapCodecs, BitmapDrawingFlags, Brush, CacheDefinition, - CacheEntry, CaptureFlags, CmdFlags, Codec, CodecProperty, EntropyBits, - FrameAcknowledge, General, GeneralExtraFlags, GlyphCache, GlyphSupportLevel, Input, - InputFlags, LargePointer, LargePointerSupportFlags, MajorPlatformType, - MinorPlatformType, MultifragmentUpdate, OffscreenBitmapCache, Order, OrderFlags, - OrderSupportExFlags, Pointer, RemoteFxContainer, RfxCaps, RfxCapset, - RfxClientCapsContainer, RfxICap, RfxICapFlags, Sound, SoundFlags, SupportLevel, - SurfaceCommands, VirtualChannel, VirtualChannelFlags, BITMAP_CACHE_ENTRIES_NUM, - GLYPH_CACHE_NUM, - }, - AddressFamily, BasicSecurityHeader, BasicSecurityHeaderFlags, ClientInfo, ClientInfoFlags, - ClientInfoPdu, CompressionType, Credentials, ExtendedClientInfo, - ExtendedClientOptionalInfo, SERVER_CHANNEL_ID, - }, - CapabilitySet, ClientConfirmActive, +use ironrdp::gcc::{ + ClientCoreData, ClientCoreOptionalData, ClientEarlyCapabilityFlags, ClientGccBlocks, ClientNetworkData, + ClientSecurityData, ColorDepth, ConnectionType, HighColorDepth, RdpVersion, SecureAccessSequence, + SupportedColorDepths, }; +use ironrdp::nego::SecurityProtocol; +use ironrdp::rdp::capability_sets::{ + Bitmap, BitmapCache, BitmapCodecs, BitmapDrawingFlags, Brush, CacheDefinition, CacheEntry, CaptureFlags, CmdFlags, + Codec, CodecProperty, EntropyBits, FrameAcknowledge, General, GeneralExtraFlags, GlyphCache, GlyphSupportLevel, + Input, InputFlags, LargePointer, LargePointerSupportFlags, MajorPlatformType, MinorPlatformType, + MultifragmentUpdate, OffscreenBitmapCache, Order, OrderFlags, OrderSupportExFlags, Pointer, RemoteFxContainer, + RfxCaps, RfxCapset, RfxClientCapsContainer, RfxICap, RfxICapFlags, Sound, SoundFlags, SupportLevel, + SurfaceCommands, VirtualChannel, VirtualChannelFlags, BITMAP_CACHE_ENTRIES_NUM, GLYPH_CACHE_NUM, +}; +use ironrdp::rdp::{ + AddressFamily, BasicSecurityHeader, BasicSecurityHeaderFlags, ClientInfo, ClientInfoFlags, ClientInfoPdu, + CompressionType, Credentials, ExtendedClientInfo, ExtendedClientOptionalInfo, SERVER_CHANNEL_ID, +}; +use ironrdp::{CapabilitySet, ClientConfirmActive}; use num_traits::ToPrimitive; -use crate::{utils::CodecId, InputConfig, RdpError}; +use crate::utils::CodecId; +use crate::{InputConfig, RdpError}; const SOURCE_DESCRIPTOR: &str = "IRONRDP"; @@ -47,10 +42,7 @@ pub fn create_gcc_blocks( }) } -pub fn create_client_info_pdu( - config: &InputConfig, - routing_addr: &net::SocketAddr, -) -> Result { +pub fn create_client_info_pdu(config: &InputConfig, routing_addr: &net::SocketAddr) -> Result { let security_header = BasicSecurityHeader { flags: BasicSecurityHeaderFlags::INFO_PKT, }; @@ -73,12 +65,7 @@ pub fn create_client_info_pdu( }, address: routing_addr.ip().to_string(), dir: env::current_dir() - .map_err(|e| { - RdpError::UserInfoError(format!( - "Failed to get current directory path: {:?}", - e - )) - })? + .map_err(|e| RdpError::UserInfoError(format!("Failed to get current directory path: {:?}", e)))? .to_string_lossy() .to_string(), optional_data: ExtendedClientOptionalInfo::default(), @@ -95,8 +82,7 @@ pub fn create_client_confirm_active( config: &InputConfig, mut server_capability_sets: Vec, ) -> Result { - server_capability_sets - .retain(|capability_set| matches!(capability_set, CapabilitySet::MultiFragmentUpdate(_))); + server_capability_sets.retain(|capability_set| matches!(capability_set, CapabilitySet::MultiFragmentUpdate(_))); server_capability_sets.extend_from_slice(&[ create_general_capability_set(), create_bitmap_capability_set(config), @@ -133,10 +119,7 @@ pub fn create_client_confirm_active( }) } -fn create_core_data( - config: &InputConfig, - selected_protocol: SecurityProtocol, -) -> Result { +fn create_core_data(config: &InputConfig, selected_protocol: SecurityProtocol) -> Result { Ok(ClientCoreData { version: RdpVersion::V5Plus, desktop_width: config.width, @@ -187,9 +170,7 @@ fn create_security_data() -> ClientSecurityData { } fn create_network_data() -> ClientNetworkData { - ClientNetworkData { - channels: Vec::new(), - } + ClientNetworkData { channels: Vec::new() } } fn create_general_capability_set() -> CapabilitySet { @@ -203,8 +184,7 @@ fn create_general_capability_set() -> CapabilitySet { _ => MajorPlatformType::Unspecified, }, minor_platform_type: MinorPlatformType::Unspecified, - extra_flags: GeneralExtraFlags::FASTPATH_OUTPUT_SUPPORTED - | GeneralExtraFlags::NO_BITMAP_COMPRESSION_HDR, + extra_flags: GeneralExtraFlags::FASTPATH_OUTPUT_SUPPORTED | GeneralExtraFlags::NO_BITMAP_COMPRESSION_HDR, refresh_rect_support: false, suppress_output_support: false, }) @@ -298,9 +278,7 @@ fn create_sound_capability_set() -> CapabilitySet { } fn create_multi_fragment_update_capability_set() -> CapabilitySet { - CapabilitySet::MultiFragmentUpdate(MultifragmentUpdate { - max_request_size: 1024, - }) + CapabilitySet::MultiFragmentUpdate(MultifragmentUpdate { max_request_size: 1024 }) } fn create_large_pointer_capability_set() -> CapabilitySet { @@ -318,15 +296,13 @@ fn create_surface_commands_capability_set() -> CapabilitySet { fn create_bitmap_codes_capability_set() -> CapabilitySet { CapabilitySet::BitmapCodecs(BitmapCodecs(vec![Codec { id: CodecId::RemoteFx.to_u8().unwrap(), - property: CodecProperty::RemoteFx(RemoteFxContainer::ClientContainer( - RfxClientCapsContainer { - capture_flags: CaptureFlags::empty(), - caps_data: RfxCaps(RfxCapset(vec![RfxICap { - flags: RfxICapFlags::empty(), - entropy_bits: EntropyBits::Rlgr3, - }])), - }, - )), + property: CodecProperty::RemoteFx(RemoteFxContainer::ClientContainer(RfxClientCapsContainer { + capture_flags: CaptureFlags::empty(), + caps_data: RfxCaps(RfxCapset(vec![RfxICap { + flags: RfxICapFlags::empty(), + entropy_bits: EntropyBits::Rlgr3, + }])), + })), }])) } diff --git a/ironrdp_client/src/errors.rs b/ironrdp_client/src/errors.rs index 7365cb05..4d7841b4 100644 --- a/ironrdp_client/src/errors.rs +++ b/ironrdp_client/src/errors.rs @@ -1,7 +1,9 @@ use std::io; use failure::Fail; -use ironrdp::{codecs, dvc::gfx, fast_path::FastPathError, nego, rdp, McsError}; +use ironrdp::dvc::gfx; +use ironrdp::fast_path::FastPathError; +use ironrdp::{codecs, nego, rdp, McsError}; #[derive(Debug, Fail)] pub enum RdpError { @@ -89,8 +91,9 @@ impl From for RdpError { impl From for RdpError { fn from(e: rustls::TLSError) -> Self { match e { - rustls::TLSError::InappropriateHandshakeMessage { .. } - | rustls::TLSError::HandshakeNotComplete => RdpError::TlsHandshakeError(e), + rustls::TLSError::InappropriateHandshakeMessage { .. } | rustls::TLSError::HandshakeNotComplete => { + RdpError::TlsHandshakeError(e) + } _ => RdpError::TlsConnectorError(e), } } diff --git a/ironrdp_client/src/lib.rs b/ironrdp_client/src/lib.rs index efc0ab1e..cd8d5bfd 100644 --- a/ironrdp_client/src/lib.rs +++ b/ironrdp_client/src/lib.rs @@ -5,14 +5,12 @@ pub mod transport; mod errors; mod utils; -pub use self::{ - active_session::process_active_stage, - connection_sequence::{process_connection_sequence, ConnectionSequenceResult, UpgradedStream}, - errors::RdpError, -}; - use ironrdp::{gcc, nego}; +pub use self::active_session::process_active_stage; +pub use self::connection_sequence::{process_connection_sequence, ConnectionSequenceResult, UpgradedStream}; +pub use self::errors::RdpError; + const BUF_STREAM_SIZE: usize = 32 * 1024; pub struct InputConfig { diff --git a/ironrdp_client/src/main.rs b/ironrdp_client/src/main.rs index 3b82eebe..48cc5c72 100644 --- a/ironrdp_client/src/main.rs +++ b/ironrdp_client/src/main.rs @@ -1,16 +1,14 @@ mod config; -use std::{ - io::{self, Write}, - net::TcpStream, - sync::Arc, -}; +use std::io::{self, Write}; +use std::net::TcpStream; +use std::sync::Arc; +use ironrdp_client::{process_active_stage, process_connection_sequence, RdpError, UpgradedStream}; use log::error; use rustls::Session; use self::config::Config; -use ironrdp_client::{process_active_stage, process_connection_sequence, RdpError, UpgradedStream}; mod danger { pub struct NoCertificateVerification {} @@ -79,21 +77,15 @@ fn run(config: Config) -> Result<(), RdpError> { let addr = socket_addr_to_string(config.routing_addr); let mut stream = TcpStream::connect(addr.as_str()).map_err(RdpError::ConnectionError)?; - let (connection_sequence_result, mut stream) = process_connection_sequence( - &mut stream, - &config.routing_addr, - &config.input, - establish_tls, - )?; + let (connection_sequence_result, mut stream) = + process_connection_sequence(&mut stream, &config.routing_addr, &config.input, establish_tls)?; process_active_stage(&mut stream, config.input, connection_sequence_result)?; Ok(()) } -fn establish_tls( - stream: impl io::Read + io::Write, -) -> Result, RdpError> { +fn establish_tls(stream: impl io::Read + io::Write) -> Result, RdpError> { let mut client_config = rustls::ClientConfig::default(); client_config @@ -109,9 +101,7 @@ fn establish_tls( let cert = tls_stream .sess .get_peer_certificates() - .ok_or(RdpError::TlsConnectorError( - rustls::TLSError::NoCertificatesPresented, - ))?; + .ok_or(RdpError::TlsConnectorError(rustls::TLSError::NoCertificatesPresented))?; let server_public_key = get_tls_peer_pubkey(cert[0].as_ref().to_vec())?; Ok(UpgradedStream { diff --git a/ironrdp_client/src/transport.rs b/ironrdp_client/src/transport.rs index 33eeef03..50478e0b 100644 --- a/ironrdp_client/src/transport.rs +++ b/ironrdp_client/src/transport.rs @@ -1,21 +1,15 @@ mod channels; mod connection; -use ironrdp::rdp::SERVER_CHANNEL_ID; - -pub use self::{ - channels::{ - ChannelIdentificators, DynamicVirtualChannelTransport, StaticVirtualChannelTransport, - }, - connection::{connect, EarlyUserAuthResult, TsRequestTransport}, -}; - use std::io; use bytes::BytesMut; +use ironrdp::rdp::SERVER_CHANNEL_ID; use ironrdp::{PduParsing, RdpPdu}; use log::warn; +pub use self::channels::{ChannelIdentificators, DynamicVirtualChannelTransport, StaticVirtualChannelTransport}; +pub use self::connection::{connect, EarlyUserAuthResult, TsRequestTransport}; use crate::RdpError; pub trait Encoder { @@ -95,15 +89,10 @@ impl McsTransport { Self(transport) } - pub fn prepare_data_to_encode( - mcs_pdu: ironrdp::McsPdu, - extra_data: Option>, - ) -> Result { + pub fn prepare_data_to_encode(mcs_pdu: ironrdp::McsPdu, extra_data: Option>) -> Result { let mut mcs_pdu_buff = BytesMut::with_capacity(mcs_pdu.buffer_length()); mcs_pdu_buff.resize(mcs_pdu.buffer_length(), 0x00); - mcs_pdu - .to_buffer(mcs_pdu_buff.as_mut()) - .map_err(RdpError::McsError)?; + mcs_pdu.to_buffer(mcs_pdu_buff.as_mut()).map_err(RdpError::McsError)?; if let Some(data) = extra_data { mcs_pdu_buff.extend_from_slice(&data); @@ -117,11 +106,7 @@ impl Encoder for McsTransport { type Item = BytesMut; type Error = RdpError; - fn encode( - &mut self, - mcs_pdu_buff: Self::Item, - mut stream: impl io::Write, - ) -> Result<(), RdpError> { + fn encode(&mut self, mcs_pdu_buff: Self::Item, mut stream: impl io::Write) -> Result<(), RdpError> { self.0.encode(mcs_pdu_buff, &mut stream) } } @@ -184,11 +169,7 @@ impl Encoder for SendDataContextTransport { type Item = Vec; type Error = RdpError; - fn encode( - &mut self, - send_data_context_pdu: Self::Item, - mut stream: impl io::Write, - ) -> Result<(), RdpError> { + fn encode(&mut self, send_data_context_pdu: Self::Item, mut stream: impl io::Write) -> Result<(), RdpError> { let send_data_context = ironrdp::mcs::SendDataContext { channel_id: self.channel_ids.channel_id, initiator_id: self.channel_ids.initiator_id, @@ -215,12 +196,10 @@ impl Decoder for SendDataContextTransport { let mcs_pdu = self.mcs_transport.decode(&mut stream)?; match mcs_pdu { - ironrdp::McsPdu::SendDataIndication(send_data_context) => { - Ok(ChannelIdentificators { - initiator_id: send_data_context.initiator_id, - channel_id: send_data_context.channel_id, - }) - } + ironrdp::McsPdu::SendDataIndication(send_data_context) => Ok(ChannelIdentificators { + initiator_id: send_data_context.initiator_id, + channel_id: send_data_context.channel_id, + }), ironrdp::McsPdu::DisconnectProviderUltimatum(disconnect_reason) => { Err(RdpError::UnexpectedDisconnection(format!( "Server disconnection reason - {:?}", @@ -246,11 +225,7 @@ pub struct ShareControlHeaderTransport { } impl ShareControlHeaderTransport { - pub fn new( - send_data_context_transport: SendDataContextTransport, - pdu_source: u16, - global_channel_id: u16, - ) -> Self { + pub fn new(send_data_context_transport: SendDataContextTransport, pdu_source: u16, global_channel_id: u16) -> Self { Self { global_channel_id, send_data_context_transport, @@ -264,11 +239,7 @@ impl Encoder for ShareControlHeaderTransport { type Item = ironrdp::ShareControlPdu; type Error = RdpError; - fn encode( - &mut self, - share_control_pdu: Self::Item, - mut stream: impl io::Write, - ) -> Result<(), RdpError> { + fn encode(&mut self, share_control_pdu: Self::Item, mut stream: impl io::Write) -> Result<(), RdpError> { let share_control_header = ironrdp::ShareControlHeader { share_control_pdu, pdu_source: self.pdu_source, @@ -297,8 +268,8 @@ impl Decoder for ShareControlHeaderTransport { ))); } - let share_control_header = ironrdp::ShareControlHeader::from_buffer(&mut stream) - .map_err(RdpError::ShareControlHeaderError)?; + let share_control_header = + ironrdp::ShareControlHeader::from_buffer(&mut stream).map_err(RdpError::ShareControlHeaderError)?; self.share_id = share_control_header.share_id; if share_control_header.pdu_source != SERVER_CHANNEL_ID { @@ -324,11 +295,7 @@ impl Encoder for ShareDataHeaderTransport { type Item = ironrdp::ShareDataPdu; type Error = RdpError; - fn encode( - &mut self, - share_data_pdu: Self::Item, - mut stream: impl io::Write, - ) -> Result<(), RdpError> { + fn encode(&mut self, share_data_pdu: Self::Item, mut stream: impl io::Write) -> Result<(), RdpError> { let share_data_header = ironrdp::ShareDataHeader { share_data_pdu, stream_priority: ironrdp::rdp::StreamPriority::Medium, @@ -336,10 +303,8 @@ impl Encoder for ShareDataHeaderTransport { compression_type: ironrdp::rdp::CompressionType::K8, // ignored if CompressionFlags::empty() }; - self.0.encode( - ironrdp::ShareControlPdu::Data(share_data_header), - &mut stream, - ) + self.0 + .encode(ironrdp::ShareControlPdu::Data(share_data_header), &mut stream) } } @@ -383,11 +348,7 @@ impl Encoder for RdpTransport { type Item = (RdpPdu, BytesMut); type Error = RdpError; - fn encode( - &mut self, - (item, data): Self::Item, - mut stream: impl io::Write, - ) -> Result<(), Self::Error> { + fn encode(&mut self, (item, data): Self::Item, mut stream: impl io::Write) -> Result<(), Self::Error> { match item { RdpPdu::X224(data) => { data.to_buffer(&mut stream)?; diff --git a/ironrdp_client/src/transport/channels.rs b/ironrdp_client/src/transport/channels.rs index 24a5e628..6ed0b51b 100644 --- a/ironrdp_client/src/transport/channels.rs +++ b/ironrdp_client/src/transport/channels.rs @@ -1,6 +1,7 @@ use std::io; -use ironrdp::{rdp::vc, PduParsing}; +use ironrdp::rdp::vc; +use ironrdp::PduParsing; use super::{Decoder, Encoder, SendDataContextTransport}; use crate::RdpError; @@ -33,18 +34,13 @@ impl Encoder for StaticVirtualChannelTransport { type Item = Vec; type Error = RdpError; - fn encode( - &mut self, - mut channel_data_buffer: Self::Item, - mut stream: impl io::Write, - ) -> Result<(), RdpError> { + fn encode(&mut self, mut channel_data_buffer: Self::Item, mut stream: impl io::Write) -> Result<(), RdpError> { let channel_header = vc::ChannelPduHeader { total_length: channel_data_buffer.len() as u32, flags: vc::ChannelControlFlags::FLAG_FIRST | vc::ChannelControlFlags::FLAG_LAST, }; - let mut channel_buffer = - Vec::with_capacity(channel_header.buffer_length() + channel_data_buffer.len()); + let mut channel_buffer = Vec::with_capacity(channel_header.buffer_length() + channel_data_buffer.len()); channel_header.to_buffer(&mut channel_buffer)?; channel_buffer.append(&mut channel_data_buffer); @@ -73,10 +69,7 @@ pub struct DynamicVirtualChannelTransport { impl DynamicVirtualChannelTransport { pub fn new(transport: StaticVirtualChannelTransport, drdynvc_id: u16) -> Self { - Self { - transport, - drdynvc_id, - } + Self { transport, drdynvc_id } } pub fn prepare_data_to_encode( @@ -98,11 +91,7 @@ impl Encoder for DynamicVirtualChannelTransport { type Item = Vec; type Error = RdpError; - fn encode( - &mut self, - client_pdu_buff: Self::Item, - mut stream: impl io::Write, - ) -> Result<(), RdpError> { + fn encode(&mut self, client_pdu_buff: Self::Item, mut stream: impl io::Write) -> Result<(), RdpError> { self.transport.encode(client_pdu_buff, &mut stream) } } diff --git a/ironrdp_client/src/transport/connection.rs b/ironrdp_client/src/transport/connection.rs index 99583a7b..37a2ddc7 100644 --- a/ironrdp_client/src/transport/connection.rs +++ b/ironrdp_client/src/transport/connection.rs @@ -17,11 +17,7 @@ impl Encoder for TsRequestTransport { type Item = credssp::TsRequest; type Error = RdpError; - fn encode( - &mut self, - ts_request: Self::Item, - mut stream: impl io::Write, - ) -> Result<(), RdpError> { + fn encode(&mut self, ts_request: Self::Item, mut stream: impl io::Write) -> Result<(), RdpError> { let mut buf = BytesMut::with_capacity(ts_request.buffer_len() as usize); buf.resize(ts_request.buffer_len() as usize, 0x00); @@ -49,8 +45,7 @@ impl Decoder for TsRequestTransport { buf.resize(ts_request_buffer_length, 0x00); stream.read_exact(&mut buf[MAX_TS_REQUEST_LENGTH_BUFFER_SIZE..])?; - let ts_request = - credssp::TsRequest::from_buffer(buf.as_ref()).map_err(RdpError::TsRequestError)?; + let ts_request = credssp::TsRequest::from_buffer(buf.as_ref()).map_err(RdpError::TsRequestError)?; Ok(ts_request) } @@ -63,8 +58,8 @@ impl EarlyUserAuthResult { let mut buf = BytesMut::with_capacity(credssp::EARLY_USER_AUTH_RESULT_PDU_SIZE); buf.resize(credssp::EARLY_USER_AUTH_RESULT_PDU_SIZE, 0x00); stream.read_exact(&mut buf)?; - let early_user_auth_result = credssp::EarlyUserAuthResult::from_buffer(buf.as_ref()) - .map_err(RdpError::EarlyUserAuthResultError)?; + let early_user_auth_result = + credssp::EarlyUserAuthResult::from_buffer(buf.as_ref()).map_err(RdpError::EarlyUserAuthResultError)?; Ok(early_user_auth_result) } @@ -99,10 +94,7 @@ fn process_negotiation( protocol, src_ref, }; - debug!( - "Send X.224 Connection Request PDU: {:?}", - connection_request - ); + debug!("Send X.224 Connection Request PDU: {:?}", connection_request); connection_request.to_buffer(&mut stream)?; stream.flush()?; diff --git a/ironrdp_client/src/utils.rs b/ironrdp_client/src/utils.rs index ca05766f..577b8bfb 100644 --- a/ironrdp_client/src/utils.rs +++ b/ironrdp_client/src/utils.rs @@ -1,4 +1,5 @@ -use std::{collections::HashMap, hash::Hash}; +use std::collections::HashMap; +use std::hash::Hash; use num_derive::{FromPrimitive, ToPrimitive}; diff --git a/rustfmt.toml b/rustfmt.toml new file mode 100644 index 00000000..2d87bb09 --- /dev/null +++ b/rustfmt.toml @@ -0,0 +1,4 @@ +max_width = 120 +reorder_imports = true +imports_granularity = "Module" +group_imports = "StdExternalCrate"