From b09895661b14fb77bf8cbc875f8896e3fd005ec6 Mon Sep 17 00:00:00 2001 From: wengjun1 Date: Fri, 20 Jul 2018 14:35:21 +0800 Subject: [PATCH] Ocean: DLKM: Bringup ili9881h touch driver Bringup ili9881h touch driver for ocean Change-Id: I4371a5db7ce5a95baeb67dc6f23346fbd05695cc Signed-off-by: wengjun1 Reviewed-on: https://gerrit.mot.com/1213203 SME-Granted: SME Approvals Granted SLTApproved: Slta Waiver Tested-by: Jira Key Reviewed-by: Huosheng Liao Submit-Approved: Jira Key --- .../input/touchscreen/ilitek_mmi/Android.mk | 8 + drivers/input/touchscreen/ilitek_mmi/Kbuild | 20 + drivers/input/touchscreen/ilitek_mmi/Makefile | 10 + drivers/input/touchscreen/ilitek_mmi/common.h | 259 + .../ilitek_mmi/core/FW_TDDI_9881H.ili | 7170 +++++++++++++++++ .../touchscreen/ilitek_mmi/core/config.c | 1104 +++ .../touchscreen/ilitek_mmi/core/config.h | 134 + .../ilitek_mmi/core/finger_report.c | 822 ++ .../ilitek_mmi/core/finger_report.h | 67 + .../touchscreen/ilitek_mmi/core/firmware.c | 1635 ++++ .../touchscreen/ilitek_mmi/core/firmware.h | 64 + .../input/touchscreen/ilitek_mmi/core/flash.c | 187 + .../input/touchscreen/ilitek_mmi/core/flash.h | 45 + .../touchscreen/ilitek_mmi/core/gesture.c | 289 + .../touchscreen/ilitek_mmi/core/gesture.h | 88 + .../input/touchscreen/ilitek_mmi/core/i2c.c | 278 + .../input/touchscreen/ilitek_mmi/core/i2c.h | 45 + .../touchscreen/ilitek_mmi/core/ilitek_fw.h | 3 + .../touchscreen/ilitek_mmi/core/mp_test.c | 2446 ++++++ .../touchscreen/ilitek_mmi/core/mp_test.h | 172 + .../touchscreen/ilitek_mmi/core/parser.c | 500 ++ .../touchscreen/ilitek_mmi/core/parser.h | 40 + .../touchscreen/ilitek_mmi/core/protocol.c | 414 + .../touchscreen/ilitek_mmi/core/protocol.h | 189 + .../input/touchscreen/ilitek_mmi/core/spi.c | 412 + .../input/touchscreen/ilitek_mmi/core/spi.h | 42 + .../input/touchscreen/ilitek_mmi/platform.c | 1120 +++ .../input/touchscreen/ilitek_mmi/platform.h | 128 + .../input/touchscreen/ilitek_mmi/userspace.c | 1928 +++++ 29 files changed, 19619 insertions(+) create mode 100644 drivers/input/touchscreen/ilitek_mmi/Android.mk create mode 100644 drivers/input/touchscreen/ilitek_mmi/Kbuild create mode 100644 drivers/input/touchscreen/ilitek_mmi/Makefile create mode 100644 drivers/input/touchscreen/ilitek_mmi/common.h create mode 100644 drivers/input/touchscreen/ilitek_mmi/core/FW_TDDI_9881H.ili create mode 100644 drivers/input/touchscreen/ilitek_mmi/core/config.c create mode 100644 drivers/input/touchscreen/ilitek_mmi/core/config.h create mode 100644 drivers/input/touchscreen/ilitek_mmi/core/finger_report.c create mode 100644 drivers/input/touchscreen/ilitek_mmi/core/finger_report.h create mode 100644 drivers/input/touchscreen/ilitek_mmi/core/firmware.c create mode 100644 drivers/input/touchscreen/ilitek_mmi/core/firmware.h create mode 100644 drivers/input/touchscreen/ilitek_mmi/core/flash.c create mode 100644 drivers/input/touchscreen/ilitek_mmi/core/flash.h create mode 100644 drivers/input/touchscreen/ilitek_mmi/core/gesture.c create mode 100644 drivers/input/touchscreen/ilitek_mmi/core/gesture.h create mode 100644 drivers/input/touchscreen/ilitek_mmi/core/i2c.c create mode 100644 drivers/input/touchscreen/ilitek_mmi/core/i2c.h create mode 100644 drivers/input/touchscreen/ilitek_mmi/core/ilitek_fw.h create mode 100644 drivers/input/touchscreen/ilitek_mmi/core/mp_test.c create mode 100644 drivers/input/touchscreen/ilitek_mmi/core/mp_test.h create mode 100644 drivers/input/touchscreen/ilitek_mmi/core/parser.c create mode 100644 drivers/input/touchscreen/ilitek_mmi/core/parser.h create mode 100644 drivers/input/touchscreen/ilitek_mmi/core/protocol.c create mode 100644 drivers/input/touchscreen/ilitek_mmi/core/protocol.h create mode 100644 drivers/input/touchscreen/ilitek_mmi/core/spi.c create mode 100644 drivers/input/touchscreen/ilitek_mmi/core/spi.h create mode 100644 drivers/input/touchscreen/ilitek_mmi/platform.c create mode 100644 drivers/input/touchscreen/ilitek_mmi/platform.h create mode 100644 drivers/input/touchscreen/ilitek_mmi/userspace.c diff --git a/drivers/input/touchscreen/ilitek_mmi/Android.mk b/drivers/input/touchscreen/ilitek_mmi/Android.mk new file mode 100644 index 000000000000..c7f78ffc759c --- /dev/null +++ b/drivers/input/touchscreen/ilitek_mmi/Android.mk @@ -0,0 +1,8 @@ +DLKM_DIR := motorola/kernel/modules +LOCAL_PATH := $(call my-dir) + +include $(CLEAR_VARS) +LOCAL_MODULE := ilitek_mmi.ko +LOCAL_MODULE_TAGS := optional +LOCAL_MODULE_PATH := $(KERNEL_MODULES_OUT) +include $(DLKM_DIR)/AndroidKernelModule.mk diff --git a/drivers/input/touchscreen/ilitek_mmi/Kbuild b/drivers/input/touchscreen/ilitek_mmi/Kbuild new file mode 100644 index 000000000000..d20949dbf8a8 --- /dev/null +++ b/drivers/input/touchscreen/ilitek_mmi/Kbuild @@ -0,0 +1,20 @@ +# add -Wall to try to catch everything we can. +EXTRA_CFLAGS += -Wall +EXTRA_CFLAGS += -I$(TOP)/motorola/kernel/modules/include \ + -I$(TOP)/motorola/kernel/modules/drivers/input/touchscreen/ilitek_mmi + +ifeq ($(filter m y, $(CONFIG_TOUCHSCREEN_ILITEK_CHIPSET)),) + obj-m += ilitek_mmi.o +endif + +ilitek_mmi-objs += platform.o userspace.o +ilitek_mmi-objs += core/config.o \ + core/finger_report.o \ + core/firmware.o \ + core/flash.o \ + core/i2c.o \ + core/spi.o \ + core/mp_test.o \ + core/protocol.o \ + core/parser.o \ + core/gesture.o diff --git a/drivers/input/touchscreen/ilitek_mmi/Makefile b/drivers/input/touchscreen/ilitek_mmi/Makefile new file mode 100644 index 000000000000..4191dea22679 --- /dev/null +++ b/drivers/input/touchscreen/ilitek_mmi/Makefile @@ -0,0 +1,10 @@ +KERNEL_SRC ?= /lib/modules/$(shell uname -r)/build + +all: + $(MAKE) -C $(KERNEL_SRC) M=$(shell pwd) modules $(KBUILD_OPTIONS) + +modules_install: + $(MAKE) INSTALL_MOD_STRIP=1 -C $(KERNEL_SRC) M=$(shell pwd) modules_install + +clean: + $(MAKE) -C $(KERNEL_SRC) M=$(PWD) clean diff --git a/drivers/input/touchscreen/ilitek_mmi/common.h b/drivers/input/touchscreen/ilitek_mmi/common.h new file mode 100644 index 000000000000..1195701fa92b --- /dev/null +++ b/drivers/input/touchscreen/ilitek_mmi/common.h @@ -0,0 +1,259 @@ +/* + * ILITEK Touch IC driver + * + * Copyright (C) 2011 ILI Technology Corporation. + * + * Author: Dicky Chiang + * Based on TDD v7.0 implemented by Mstar & ILITEK + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ + +#ifndef __COMMON_H +#define __COMMON_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#include +#include + +#ifdef CONFIG_OF +#include +#include +#include +#include +#include +#endif + +#ifdef CONFIG_FB +#include +#include +#else +#include +#endif + +/* + * Relative Driver with Touch IC + */ + +/* An Touch IC currently supported by driver */ +#define CHIP_TYPE_ILI7807 0x7807 +#define CHIP_TYPE_ILI9881 0x9881 + +#define CHIP_ID_ERR (-100) + +/* A interface currently supported by driver */ +#define I2C_INTERFACE 1 +#define SPI_INTERFACE 2 +#define INTERFACE I2C_INTERFACE + +/* Driver version */ +#define DRIVER_VERSION "1.0.3.5" + +/* Driver core type */ +#define CORE_TYPE_B 0x00 +#define CORE_TYPE_E 0x03 + +/* Protocol version */ +#define PROTOCOL_MAJOR 0x5 +#define PROTOCOL_MID 0x4 +#define PROTOCOL_MINOR 0x0 + +/* Debug messages */ +#ifdef BIT +#undef BIT +#endif +#define BIT(x) (1 << (x)) + +enum { + DEBUG_NONE = 0, + DEBUG_IRQ = BIT(0), + DEBUG_FINGER_REPORT = BIT(1), + DEBUG_FIRMWARE = BIT(2), + DEBUG_CONFIG = BIT(3), + DEBUG_I2C = BIT(4), + DEBUG_BATTERY = BIT(5), + DEBUG_MP_TEST = BIT(6), + DEBUG_IOCTL = BIT(7), + DEBUG_NETLINK = BIT(8), + DEBUG_PARSER = BIT(9), + DEBUG_GESTURE = BIT(10), + DEBUG_ALL = ~0, +}; + +#define ipio_info(fmt, arg...) \ + pr_info("ILITEK: (%s, %d): " fmt, __func__, __LINE__, ##arg) + +#define ipio_err(fmt, arg...) \ + pr_err("ILITEK: (%s, %d): " fmt, __func__, __LINE__, ##arg) + +#define ipio_debug(level, fmt, arg...) \ + do { \ + if (level & ipio_debug_level) \ + pr_info("ILITEK: (%s, %d): " fmt, __func__, \ + __LINE__, ##arg); \ + } while (0) + +/* Distributed to all core functions */ +extern uint32_t ipio_debug_level; +extern uint32_t ipio_chip_list[2]; + +/* Macros */ +#define CHECK_EQUAL(X, Y) ((X == Y) ? 0 : -1) +#define ERR_ALLOC_MEM(X) ((IS_ERR(X) || X == NULL) ? 1 : 0) +#define MIN(a, b) (((a) < (b)) ? (a) : (b)) +#define MAX(a, b) (((a) > (b)) ? (a) : (b)) +#define USEC 1 +#define MSEC (USEC * 1000) + +/* The size of firmware upgrade */ +#define MAX_HEX_FILE_SIZE (160*1024) +#define MAX_FLASH_FIRMWARE_SIZE (256*1024) +#define MAX_IRAM_FIRMWARE_SIZE (60*1024) +#define ILI_FILE_HEADER 64 +#define MAX_AP_FIRMWARE_SIZE (64*1024) +#define MAX_DLM_FIRMWARE_SIZE (8*1024) +#define MAX_MP_FIRMWARE_SIZE (64*1024) +#define MAX_GESTURE_FIRMWARE_SIZE (8*1024) +#define DLM_START_ADDRESS 0x20610 +#define DLM_HEX_ADDRESS 0x10000 +#define MP_HEX_ADDRESS 0x13000 +#define SPI_UPGRADE_LEN 2048 +#define UPDATE_RETRY_COUNT 3 + +/* ILI7807 Series */ +enum ili7881_types { + ILI7807_TYPE_F_AA = 0x0000, + ILI7807_TYPE_F_AB = 0x0001, + ILI7807_TYPE_H = 0x1100 +}; + +#define ILI7807_SLAVE_ADDR 0x41 +#define ILI7807_ICE_MODE_ADDR 0x181062 +#define ILI7807_PID_ADDR 0x4009C +#define ILI7808_WDT_ADDR 0x5100C + +/* ILI9881 Series */ +enum ili9881_types { + ILI9881_TYPE_F = 0x0F, + ILI9881_TYPE_H = 0x11 +}; +/*Error code*/ +#define SUCCESS 0 +#define ERROR (-1) +#define UPDATE_FAIL (-1) +#define CHECK_RECOVER -2 + +#define ILI9881_SLAVE_ADDR 0x41 +#define ILI9881_ICE_MODE_ADDR 0x181062 +#define ILI9881_PID_ADDR 0x4009C +#define ILI9881_WDT_ADDR 0x5100C + +/* + * Other settings + */ +#define CSV_PATH "/sdcard" +#define INI_NAME_PATH "/sdcard/mp.ini" +#define UPDATE_FW_PATH "/mnt/sdcard/ILITEK_FW" +#define ILITEK_FW_FILENAME "ILITEK_FW.bin" +#define POWER_STATUS_PATH "/sys/class/power_supply/battery/status" +#define CHECK_BATTERY_TIME 2000 +#define VDD_VOLTAGE 1800000 +#define VDD_I2C_VOLTAGE 1800000 + + +/* It's only for spi interface used to download data to iram */ +#if (INTERFACE == SPI_INTERFACE) +#define HOST_DOWNLOAD +#endif + +/* Linux multiple touch protocol, either B type or A type. */ +//#define MT_B_TYPE + +/* Enable the support of regulator power. */ +/* #define REGULATOR_POWER_ON */ + +/* Either an interrupt event handled by kthread or work queue. */ +#define USE_KTHREAD + +/* Enable DMA with I2C. */ +/* #define I2C_DMA */ + +/* Split the length written to or read from IC via I2C. */ +/* #define I2C_SEGMENT */ + +/* Be able to upgrade fw at boot stage */ +/* #define BOOT_FW_UPGRADE */ + +/* Check battery's status in order to avoid some effects from charge. */ +/* #define BATTERY_CHECK */ + +/*suspend TP power off*/ +#define SUSPEND_TP_POWER_OFF + +static inline void ipio_kfree(void **mem) +{ + if (*mem != NULL) { + kfree(*mem); + *mem = NULL; + } +} + +extern int katoi(char *string); +extern int str2hex(char *str); + +#endif /* __COMMON_H */ diff --git a/drivers/input/touchscreen/ilitek_mmi/core/FW_TDDI_9881H.ili b/drivers/input/touchscreen/ilitek_mmi/core/FW_TDDI_9881H.ili new file mode 100644 index 000000000000..0292a0eb9688 --- /dev/null +++ b/drivers/input/touchscreen/ilitek_mmi/core/FW_TDDI_9881H.ili @@ -0,0 +1,7170 @@ +0x00,0x00,0x00,0x01,0xBF,0xFF,0x95,0xE9,0x29,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x00,0x01,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x01,0xC0,0x00, +0x00,0x03,0x00,0x00,0x00,0x00,0xFF,0xFF,0x01,0x00,0x00,0x01,0x1F,0xFF,0x01,0x30,0x00,0x01,0xBF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x48,0x00,0x74,0xFE,0x48,0x00,0x73,0x3E,0x48,0x00,0x73,0x5C,0x48,0x00,0x73,0x7A, +0x48,0x00,0x73,0x98,0x48,0x00,0x73,0xB6,0x48,0x00,0x73,0xD4,0x48,0x00,0x73,0xF2, +0x48,0x00,0x74,0x10,0x48,0x00,0x74,0x66,0x48,0x00,0x74,0x68,0x48,0x00,0x74,0x6A, +0x48,0x00,0x74,0x6C,0x48,0x00,0x74,0x6E,0x48,0x00,0x74,0x70,0x48,0x00,0x74,0x72, +0x48,0x00,0x74,0x74,0x48,0x00,0x74,0x76,0x48,0x00,0x74,0x78,0x48,0x00,0x74,0x7A, +0x48,0x00,0x74,0x7C,0x48,0x00,0x74,0x7E,0x48,0x00,0x74,0x80,0x48,0x00,0x74,0x82, +0x48,0x00,0x74,0x84,0x48,0x00,0x74,0x86,0x48,0x00,0x74,0x88,0x48,0x00,0x74,0x8A, +0x48,0x00,0x74,0x8C,0x48,0x00,0x74,0x8E,0x48,0x00,0x74,0x90,0x48,0x00,0x74,0x92, +0x48,0x00,0x74,0x94,0x48,0x00,0x74,0x96,0x48,0x00,0x74,0x98,0x48,0x00,0x74,0x9A, +0x48,0x00,0x74,0x9C,0x48,0x00,0x74,0x9F,0x48,0x00,0x74,0xA2,0x48,0x00,0x74,0xA5, +0x48,0x00,0x74,0xA8,0xDA,0xEA,0x00,0x00,0xDC,0xEA,0x00,0x00,0xF0,0xEA,0x00,0x00, +0x02,0xEB,0x00,0x00,0x10,0xEB,0x00,0x00,0x28,0xEB,0x00,0x00,0x36,0xEB,0x00,0x00, +0x6E,0xEB,0x00,0x00,0x76,0xEB,0x00,0x00,0x8C,0xEB,0x00,0x00,0xB0,0xEB,0x00,0x00, +0xFA,0xEB,0x00,0x00,0xFC,0xEB,0x00,0x00,0x04,0xEC,0x00,0x00,0x0C,0xEC,0x00,0x00, +0x14,0xEC,0x00,0x00,0x4E,0xEC,0x00,0x00,0xCE,0xEC,0x00,0x00,0x62,0xED,0x00,0x00, +0x78,0xED,0x00,0x00,0xA0,0xEE,0x00,0x00,0xB8,0xEF,0x00,0x00,0x24,0xF0,0x00,0x00, +0x26,0xF0,0x00,0x00,0x28,0xF0,0x00,0x00,0x2A,0xF0,0x00,0x00,0x2C,0xF0,0x00,0x00, +0x2E,0xF0,0x00,0x00,0x30,0xF0,0x00,0x00,0x32,0xF0,0x00,0x00,0x34,0xF0,0x00,0x00, +0x36,0xF0,0x00,0x00,0xE6,0x28,0xE8,0x4C,0x96,0x06,0x46,0x20,0x00,0x81,0x44,0xF0, +0x01,0x3C,0x38,0x17,0x84,0x00,0x40,0xF0,0xBC,0x00,0xDD,0x0F,0x08,0x16,0x24,0x32, +0x40,0x4E,0x5C,0x6A,0x40,0x00,0x40,0x08,0x04,0x31,0x00,0x29,0x44,0x1E,0xFF,0xFF, +0xD5,0x33,0x40,0x00,0x44,0x08,0x04,0x31,0x00,0x29,0x44,0x1D,0xFF,0xFF,0xD5,0x2C, +0x40,0x00,0x48,0x08,0x04,0x31,0x00,0x29,0x44,0x1B,0xFF,0xFF,0xD5,0x25,0x40,0x00, +0x4C,0x08,0x04,0x31,0x00,0x29,0x46,0x1F,0xFF,0x7F,0xD5,0x1C,0x40,0x00,0x50,0x08, +0x04,0x31,0x00,0x29,0x46,0x1F,0xFE,0xFF,0xD5,0x15,0x40,0x00,0x54,0x08,0x04,0x31, +0x00,0x29,0x46,0x1F,0xFD,0xFF,0xD5,0x0E,0x40,0x00,0x58,0x08,0x04,0x31,0x00,0x29, +0x46,0x1F,0xFB,0xFF,0xD5,0x07,0x40,0x00,0x5C,0x08,0x04,0x31,0x00,0x29,0x46,0x1F, +0xF7,0xFF,0x50,0x10,0x8F,0xFF,0xFE,0x5E,0xFE,0x0F,0x14,0x01,0x00,0x29,0xDD,0x9E, +0x44,0x24,0x80,0x90,0x96,0x06,0xB4,0x62,0x40,0x10,0x20,0x08,0x44,0x0F,0xFE,0xFF, +0xFE,0x1E,0xFE,0x0F,0xB6,0x02,0xDD,0x9E,0x46,0x10,0x00,0x82,0xA0,0x0A,0x58,0x00, +0x00,0x01,0xA8,0x0A,0xDD,0x9E,0x46,0x20,0x00,0x82,0x96,0x06,0xA0,0xD5,0x40,0x10, +0x40,0x08,0x44,0x0E,0xFF,0xFF,0xFE,0x1E,0xFE,0x0F,0xA8,0x15,0xDD,0x9E,0x46,0x00, +0x00,0x82,0xA0,0x05,0x92,0x10,0x96,0x06,0xDD,0x9E,0xFC,0x40,0x46,0x60,0x00,0x81, +0x96,0x2F,0x40,0x90,0x20,0x08,0x04,0x03,0x00,0x2A,0x44,0x7F,0xC0,0xFF,0xFE,0x3E, +0x40,0x00,0x24,0x04,0x14,0x03,0x00,0x2A,0x96,0x6F,0x40,0x90,0xC0,0x08,0x46,0x0F, +0xFC,0x0F,0x04,0x13,0x00,0x2A,0x50,0x00,0x0F,0xFF,0xFE,0x46,0x40,0x10,0xA4,0x04, +0x14,0x13,0x00,0x2A,0x96,0xAF,0x04,0x93,0x00,0x2A,0x40,0x11,0x60,0x08,0x46,0x2C, +0x0F,0xFF,0x50,0x21,0x0F,0xFF,0x40,0x24,0x88,0x02,0xFE,0x8F,0x14,0x23,0x00,0x2A, +0x04,0x13,0x00,0x2B,0x96,0xEF,0x92,0x26,0x94,0x4E,0xFE,0x5F,0x14,0x13,0x00,0x2B, +0x97,0x2F,0x40,0x12,0x20,0x08,0x04,0x43,0x00,0x2B,0x97,0x6F,0xFF,0x3E,0xFF,0x0F, +0x14,0x43,0x00,0x2B,0x04,0x13,0x00,0x2B,0x40,0x52,0xC0,0x08,0xFE,0x0E,0xFE,0x2F, +0x14,0x03,0x00,0x2B,0x49,0x00,0x04,0x82,0x00,0x0F,0x80,0x20,0x54,0x10,0x00,0x3F, +0x04,0x03,0x03,0x98,0x92,0x06,0x94,0x06,0xFE,0x0F,0x14,0x03,0x03,0x98,0x00,0x0F, +0x80,0x24,0x04,0x23,0x03,0x99,0x96,0x2F,0x94,0x46,0x44,0x0F,0xF0,0x3F,0xFE,0x16, +0xFE,0x0F,0x14,0x03,0x03,0x99,0x49,0x00,0x04,0x62,0xFC,0xC0,0x46,0x30,0x00,0x82, +0x44,0x41,0x00,0x00,0xB4,0xA3,0x54,0x10,0x87,0xFF,0xFF,0x2F,0xB6,0x83,0xB4,0x83, +0x94,0x92,0x92,0x8B,0x40,0x42,0x2C,0x08,0xFF,0x0F,0xB6,0x83,0x88,0x40,0x4C,0x01, +0x00,0x05,0xA0,0x59,0xAA,0x41,0xD5,0xFC,0xB4,0x23,0x44,0x0E,0xFF,0xFF,0xFE,0x0E, +0xB6,0x03,0xDD,0x9E,0x46,0x30,0x00,0x82,0x44,0x41,0x00,0x00,0xB4,0xA3,0x54,0x10, +0x87,0xFF,0xFF,0x2F,0xB6,0x83,0xB4,0x83,0x94,0x92,0x92,0x8B,0x40,0x42,0x2C,0x08, +0xFF,0x0F,0xB6,0x83,0x88,0x40,0x80,0x23,0x4C,0x01,0x00,0x05,0xA3,0x01,0xA9,0x09, +0xD5,0xFC,0xB4,0x23,0x44,0x0E,0xFF,0xFF,0xFE,0x0E,0xB6,0x03,0xDD,0x9E,0xFC,0x00, +0x46,0x50,0x00,0x80,0x46,0x3F,0xFF,0x00,0x9D,0x99,0x9D,0x2E,0x94,0xA9,0x88,0x40, +0x38,0x11,0x18,0x00,0x38,0x21,0x0C,0x00,0x94,0x4C,0xFE,0x57,0x96,0x48,0x18,0x12, +0x80,0x01,0xDC,0xF5,0xFC,0x80,0xFC,0x00,0x46,0x10,0x00,0x80,0x46,0x2F,0xFE,0xFF, +0x50,0x50,0x80,0x08,0x50,0x61,0x0F,0xF1,0x50,0x41,0x0F,0xF0,0x50,0x30,0x80,0x0E, +0x94,0xA9,0x88,0x40,0x38,0x11,0x18,0x00,0x38,0x21,0x10,0x00,0x94,0x4C,0xFE,0x57, +0x96,0x48,0x18,0x12,0x80,0x01,0xDB,0xF5,0xFC,0x80,0x46,0x20,0x00,0x80,0x84,0x7E, +0x50,0x51,0x01,0xC4,0xB4,0x85,0x96,0x06,0xFE,0xE6,0xFE,0x1F,0xB6,0x05,0x96,0x57, +0xB4,0x65,0x40,0x00,0xA0,0x08,0x44,0x1F,0xF8,0xFF,0xFE,0x5E,0xFE,0x47,0xB6,0x25, +0xDD,0x9E,0x46,0x20,0x00,0x81,0x40,0x00,0x40,0x08,0x04,0x11,0x00,0x11,0x96,0x49, +0xFE,0x0F,0x14,0x01,0x00,0x11,0xDD,0x9E,0x46,0x20,0x00,0x81,0x40,0x00,0x40,0x08, +0x04,0x11,0x00,0x10,0x96,0x49,0xFE,0x0F,0x14,0x01,0x00,0x10,0xDD,0x9E,0x46,0x20, +0x00,0x81,0x04,0x11,0x00,0x10,0x92,0x30,0x40,0x10,0xC0,0x08,0xFE,0x0F,0x14,0x01, +0x00,0x10,0xDD,0x9E,0x46,0x20,0x00,0x81,0x04,0x11,0x00,0x11,0x92,0x30,0x40,0x10, +0xC0,0x08,0xFE,0x0F,0x14,0x01,0x00,0x11,0xDD,0x9E,0x46,0x20,0x00,0x81,0x84,0x30, +0x04,0x31,0x00,0x12,0x96,0x1F,0xFE,0x5E,0xFE,0x0F,0x14,0x01,0x00,0x12,0xDD,0x9E, +0x46,0x20,0x00,0x80,0x84,0x30,0x04,0x31,0x00,0x70,0x96,0x1F,0xFE,0x5E,0xFE,0x0F, +0x14,0x01,0x00,0x70,0xDD,0x9E,0x46,0x20,0x00,0x81,0x84,0x3E,0x04,0x31,0x00,0x13, +0x96,0x06,0xFE,0x5E,0xFE,0x0F,0x14,0x01,0x00,0x13,0xDD,0x9E,0x46,0x20,0x00,0x81, +0x96,0x06,0x04,0x31,0x00,0x12,0x40,0x10,0x20,0x08,0x44,0x0F,0xFE,0xFF,0xFE,0x1E, +0xFE,0x0F,0x14,0x01,0x00,0x12,0xDD,0x9E,0x46,0x20,0x00,0x81,0x96,0x0F,0x40,0x10, +0x48,0x08,0x04,0x31,0x00,0x12,0x46,0x0F,0xFF,0x3F,0x50,0x00,0x0F,0xFF,0xFE,0x1E, +0xFE,0x0F,0x14,0x01,0x00,0x12,0xDD,0x9E,0x46,0x00,0x00,0x81,0x04,0x00,0x00,0x12, +0x92,0x12,0x96,0x0F,0xDD,0x9E,0x44,0x14,0x80,0x10,0xB4,0x01,0x92,0x0D,0x96,0x06, +0xC0,0x05,0x44,0x04,0x80,0x11,0xFA,0x50,0xAE,0x80,0xB4,0x01,0x92,0x0E,0x96,0x06, +0xC0,0x06,0x44,0x04,0x80,0x11,0x44,0x10,0x00,0x40,0xAE,0x40,0x44,0x14,0x80,0x10, +0xB4,0x01,0x92,0x0F,0x96,0x06,0xC0,0x06,0x44,0x04,0x80,0x11,0x44,0x2F,0xFF,0x80, +0xAE,0x80,0xB4,0x01,0x92,0x09,0x96,0x06,0xC0,0x05,0x44,0x04,0x80,0x11,0x84,0x22, +0xAE,0x40,0x44,0x14,0x80,0x10,0xB4,0x01,0x92,0x0C,0x96,0x06,0xC0,0x05,0x44,0x04, +0x80,0x11,0xFA,0x40,0xAE,0x80,0xB4,0x01,0x92,0x17,0x96,0x06,0xC0,0x06,0x44,0x04, +0x80,0x12,0x44,0x1F,0xFF,0x80,0xAE,0x40,0xDD,0x9E,0x00,0x00,0x46,0x10,0x00,0x81, +0x04,0x30,0x80,0x39,0xC0,0x0B,0x5A,0x00,0x01,0x0D,0x5A,0x00,0x02,0x0E,0x84,0x40, +0x5A,0x08,0x03,0x0D,0x46,0x23,0xF3,0xC0,0xD5,0x09,0x46,0x23,0x00,0x00,0xD5,0x06, +0x46,0x23,0x51,0x40,0xD5,0x03,0x46,0x23,0xA2,0x80,0x46,0x1C,0x0C,0x3F,0x50,0x10, +0x8F,0xFF,0x40,0x01,0x84,0x02,0x46,0x10,0x00,0x81,0xFE,0x17,0x14,0x00,0x80,0x39, +0xDD,0x9E,0x46,0x20,0x00,0x81,0x96,0x0F,0x40,0x10,0x58,0x08,0x04,0x31,0x00,0x39, +0x46,0x0F,0xF3,0xFF,0x50,0x00,0x0F,0xFF,0xFE,0x1E,0xFE,0x0F,0x14,0x01,0x00,0x39, +0xDD,0x9E,0x46,0x10,0x00,0x81,0x04,0x30,0x80,0x39,0xC0,0x11,0x5A,0x00,0x01,0x09, +0x5A,0x00,0x02,0x0A,0x5A,0x08,0x03,0x0B,0x44,0x03,0xFF,0xC0,0xD5,0x08,0x44,0x01, +0x55,0x40,0xD5,0x05,0x44,0x02,0xAA,0x80,0xD5,0x02,0x84,0x00,0x44,0x23,0xFF,0xC0, +0x44,0x1C,0x00,0x3F,0xFE,0x5E,0xFE,0x16,0xFE,0x0F,0x46,0x10,0x00,0x81,0x14,0x00, +0x80,0x39,0xDD,0x9E,0x46,0x20,0x00,0x81,0x96,0x0F,0x04,0x31,0x00,0x39,0x40,0x10, +0x28,0x08,0x44,0x0F,0xF3,0xFF,0xFE,0x1E,0xFE,0x0F,0x14,0x01,0x00,0x39,0xDD,0x9E, +0x46,0x20,0x00,0x81,0x46,0x31,0x55,0x10,0x50,0x31,0x84,0x40,0x50,0x51,0x00,0xE4, +0xB4,0x25,0xA8,0xE9,0xA1,0x2A,0x84,0x78,0xFE,0xE6,0xE6,0x05,0xA8,0xEA,0xE8,0x3A, +0x44,0xF0,0x06,0x10,0x38,0x07,0x80,0x00,0x40,0xF0,0x3C,0x00,0x4A,0x00,0x3C,0x00, +0x06,0x1C,0x28,0x3E,0x54,0x00,0x46,0x03,0xA3,0x2A,0x92,0x26,0x50,0x00,0x03,0x00, +0x94,0x4E,0x14,0x01,0x00,0x38,0x58,0x10,0x80,0x3A,0xD5,0x22,0x84,0x00,0x92,0x26, +0x14,0x01,0x00,0x38,0x94,0x4E,0xD5,0x1C,0x46,0x05,0x55,0x55,0x92,0x26,0x50,0x00, +0x05,0x55,0x94,0x4E,0x14,0x01,0x00,0x38,0x58,0x10,0x80,0x15,0xD5,0x11,0x46,0x0A, +0xAA,0xAA,0x92,0x26,0x50,0x00,0x0A,0xAA,0x94,0x4E,0x14,0x01,0x00,0x38,0x58,0x10, +0x80,0x2A,0xD5,0x06,0x84,0x1F,0x14,0x01,0x00,0x38,0x58,0x10,0x80,0x3F,0x14,0x11, +0x00,0x39,0xDD,0x9E,0xDD,0x9E,0x44,0x24,0x50,0x00,0x96,0x06,0xB4,0x62,0x94,0x42, +0x84,0x1B,0xFE,0x1E,0xFE,0x0F,0xB6,0x02,0xDD,0x9E,0x44,0x04,0x50,0x28,0xB4,0x00, +0x92,0x04,0x96,0x06,0xDD,0x9E,0x92,0x00,0x46,0x20,0x00,0x83,0x84,0x3C,0x04,0x31, +0x00,0x10,0x96,0x0F,0xFE,0x5E,0xFE,0x0F,0x14,0x01,0x00,0x10,0xDD,0x9E,0x46,0x20, +0x00,0x83,0x96,0x06,0x04,0x31,0x00,0x10,0x40,0x10,0x20,0x08,0x44,0x0F,0xFE,0xFF, +0xFE,0x1E,0xFE,0x0F,0x14,0x01,0x00,0x10,0xDD,0x9E,0xFC,0x40,0x46,0x20,0x00,0x83, +0x44,0x5F,0xFE,0xFF,0x83,0x82,0xBB,0x18,0x46,0x40,0x0F,0x03,0xFE,0xEE,0xBB,0x98, +0xBB,0x18,0x50,0x42,0x0C,0x0F,0x92,0x68,0x40,0x31,0xA0,0x08,0x58,0x31,0x80,0x46, +0xBB,0x98,0xBF,0x39,0xBE,0x3A,0x04,0x91,0x00,0x3B,0xFF,0xE6,0xFF,0xA6,0x40,0x44, +0x90,0x02,0x04,0x90,0x80,0x02,0xBB,0x3C,0xB5,0x41,0x89,0x24,0xA1,0x0B,0x96,0xDF, +0x88,0xEA,0x04,0xA0,0x80,0x01,0x98,0x5C,0xBB,0x18,0x88,0xCA,0x58,0x31,0x81,0x00, +0xBB,0x98,0xBB,0x18,0x92,0x68,0x40,0x31,0xA0,0x08,0x58,0x31,0x80,0x46,0xBB,0x98, +0xBF,0xB9,0xBE,0xBA,0x14,0x91,0x00,0x3B,0x96,0xC9,0xB9,0x3C,0x92,0x30,0x40,0x10, +0xC0,0x08,0xFE,0x5F,0xB9,0xBC,0xB4,0x20,0xB9,0xB9,0xA0,0x41,0xB9,0xBA,0xA0,0x42, +0xB9,0xBB,0xA4,0x46,0xB8,0x3C,0x92,0x10,0x40,0x00,0x40,0x08,0xFE,0x0F,0xB8,0xBC, +0xB8,0x18,0xFF,0x46,0xBD,0x98,0xFC,0xC0,0xFC,0x20,0x46,0x20,0x00,0x83,0x44,0x3F, +0xFE,0xFF,0x83,0x82,0xBC,0x18,0x94,0x4A,0xFE,0xE6,0xBB,0x98,0xBB,0x18,0x50,0x51, +0x00,0xE4,0x92,0x68,0x40,0x31,0xA0,0x08,0x58,0x31,0x80,0x48,0xBB,0x98,0xBB,0x18, +0x50,0x61,0x00,0xE8,0x58,0x31,0x81,0x00,0xBB,0x98,0x50,0x71,0x00,0xEC,0x88,0x20, +0x50,0x21,0x00,0xF0,0x46,0x30,0x00,0x83,0x4C,0x00,0x80,0x12,0xA2,0xC1,0xB6,0x65, +0x83,0x80,0xBB,0x3F,0x02,0x40,0x01,0x7E,0xB6,0x66,0xBB,0x7F,0xB6,0x67,0xB4,0x62, +0x92,0x70,0x40,0x31,0xC0,0x08,0xFE,0xE7,0xB6,0x62,0xD5,0xED,0x83,0x83,0xB9,0x18, +0x44,0x0F,0xFE,0xFF,0xFE,0x0E,0xB8,0x98,0xFC,0xA0,0xFC,0x20,0x46,0x10,0x00,0x83, +0x44,0x2F,0xFE,0xFF,0x83,0x81,0xBB,0x18,0x46,0x40,0xF0,0x3C,0xFE,0x9E,0xBA,0x98, +0xBA,0x18,0x50,0x32,0x00,0xF0,0x92,0x48,0x40,0x21,0x20,0x08,0x58,0x21,0x00,0x46, +0xBA,0x98,0xBE,0x39,0xB4,0x80,0xBD,0x3A,0xFF,0x9E,0x88,0xC4,0xA1,0x01,0xBF,0x3B, +0xFF,0x5E,0x88,0xA4,0xA1,0x02,0xBA,0x3C,0xFE,0xFE,0x88,0x83,0xA0,0xC3,0x54,0x21, +0x00,0xF0,0xBE,0xB9,0x98,0x13,0xBD,0xBA,0xBC,0xBB,0x96,0x81,0xB8,0x3C,0x92,0x10, +0x40,0x00,0x40,0x08,0xFE,0x17,0xB8,0xBC,0xFC,0xA0,0x44,0x14,0x80,0x90,0x84,0x5E, +0xB4,0x61,0x96,0x06,0xFE,0x9E,0xFE,0x87,0xB6,0x41,0xB4,0x81,0x44,0x2F,0xFF,0xEF, +0x94,0xC4,0xFE,0xA6,0xFE,0x9F,0xB6,0x41,0xB4,0x61,0x44,0x2F,0xFB,0xFF,0xFE,0x9E, +0x40,0x00,0x28,0x08,0xFE,0x17,0xB6,0x01,0x46,0x10,0x00,0x80,0x84,0x18,0x50,0x30, +0x82,0x6C,0xB4,0x43,0xFE,0x16,0x58,0x00,0x00,0x06,0xB6,0x03,0xB4,0x43,0x44,0x0F, +0xF0,0xFF,0xFE,0x16,0x58,0x00,0x08,0x00,0xB6,0x03,0xDD,0x9E,0x52,0x00,0x00,0x01, +0x46,0x20,0x00,0x80,0x96,0x06,0xC9,0x08,0x40,0x10,0x20,0x08,0x04,0x31,0x00,0x79, +0x44,0x0F,0xFE,0xFF,0xD5,0x07,0x40,0x10,0x40,0x08,0x04,0x31,0x00,0x79,0x44,0x0E, +0xFF,0xFF,0xFE,0x1E,0xFE,0x0F,0x14,0x01,0x00,0x79,0xDD,0x9E,0x46,0x10,0x00,0x82, +0x5A,0x08,0x01,0x0B,0x50,0x30,0x80,0x20,0xB4,0x03,0x58,0x00,0x00,0x02,0xB6,0x03, +0xB4,0x43,0x84,0x1E,0xD5,0x04,0x04,0x20,0x80,0x08,0x84,0x1D,0xFE,0x16,0x14,0x00, +0x80,0x08,0xDD,0x9E,0x46,0x30,0x00,0x83,0x54,0x10,0x00,0x01,0x50,0x51,0x83,0xB8, +0xB4,0x85,0x40,0x20,0xA0,0x08,0x44,0x1F,0xFE,0xFF,0xFE,0x66,0xFE,0x57,0xB6,0x25, +0xB4,0x25,0xE6,0x01,0x44,0x0F,0xFD,0xFF,0x40,0xF7,0xA4,0x08,0xFE,0x0E,0x40,0x00, +0x3C,0x04,0xB6,0x05,0xDD,0x9E,0x46,0x30,0x00,0x83,0x54,0x10,0x00,0x01,0x50,0x51, +0x83,0xB8,0xB4,0x85,0x40,0x20,0xA8,0x08,0x44,0x1F,0xFB,0xFF,0xFE,0x66,0xFE,0x57, +0xB6,0x25,0xB4,0x25,0xE6,0x01,0x44,0x0F,0xF7,0xFF,0x40,0xF7,0xAC,0x08,0xFE,0x0E, +0x40,0x00,0x3C,0x04,0xB6,0x05,0xDD,0x9E,0x44,0x27,0x20,0x68,0x96,0x01,0xB4,0x22, +0x92,0x30,0x40,0x10,0xC0,0x08,0xFE,0x47,0xB6,0x22,0x44,0x27,0x20,0x70,0xB4,0x22, +0x92,0x30,0x40,0x10,0xC0,0x08,0xFE,0x47,0xB6,0x22,0x44,0x27,0x20,0x78,0xB4,0x22, +0x92,0x30,0x40,0x10,0xC0,0x08,0xFE,0x47,0xB6,0x22,0x44,0x27,0x20,0x80,0xB4,0x22, +0x92,0x30,0x40,0x10,0xC0,0x08,0xFE,0x47,0xB6,0x22,0x44,0x27,0x20,0x88,0xB4,0x22, +0x92,0x30,0x40,0x10,0xC0,0x08,0xFE,0x47,0xB6,0x22,0x44,0x27,0x20,0x90,0xB4,0x22, +0x92,0x30,0x40,0x10,0xC0,0x08,0xFE,0x0F,0xB6,0x02,0xDD,0x9E,0xC8,0x0A,0x44,0x17, +0x20,0x00,0x46,0x0F,0xEF,0xFF,0xB4,0x41,0x50,0x00,0x0F,0xFF,0xFE,0x16,0xD5,0x09, +0x5A,0x08,0x01,0x09,0x44,0x17,0x20,0x00,0x46,0x00,0x10,0x00,0xB4,0x41,0xFE,0x17, +0xB6,0x01,0xDD,0x9E,0x44,0x27,0x20,0x00,0x84,0x3E,0xB4,0x62,0x96,0x06,0xFE,0x5E, +0xFE,0x0F,0xB6,0x02,0xDD,0x9E,0x44,0x27,0x20,0x04,0x84,0x3E,0xB4,0x62,0x96,0x06, +0xFE,0x5E,0xFE,0x0F,0xB6,0x02,0xDD,0x9E,0x44,0x27,0x20,0x00,0x96,0x06,0xB4,0x62, +0x40,0x10,0x40,0x08,0x44,0x0E,0xFF,0xFF,0xFE,0x1E,0xFE,0x0F,0xB6,0x02,0xDD,0x9E, +0xC9,0x06,0x44,0x27,0x10,0x00,0xB4,0x22,0xFE,0x0F,0xD5,0x08,0x5A,0x18,0x01,0x08, +0x44,0x27,0x10,0x00,0xFE,0x03,0xB4,0x22,0xFE,0x0E,0xB6,0x02,0xDD,0x9E,0x5A,0x18, +0x01,0x07,0x44,0x27,0x10,0x04,0xB4,0x22,0xFE,0x0F,0xD5,0x07,0xC9,0x07,0x44,0x27, +0x10,0x04,0xFE,0x03,0xB4,0x22,0xFE,0x0E,0xB6,0x02,0xDD,0x9E,0x5A,0x18,0x01,0x07, +0x44,0x27,0x10,0x08,0xB4,0x22,0xFE,0x0F,0xD5,0x07,0xC9,0x07,0x44,0x27,0x10,0x08, +0xFE,0x03,0xB4,0x22,0xFE,0x0E,0xB6,0x02,0xDD,0x9E,0x44,0x16,0x00,0x00,0x5A,0x08, +0x01,0x06,0xB4,0x01,0x58,0x00,0x00,0x01,0xD5,0x04,0xB4,0x41,0x84,0x1E,0xFE,0x16, +0xB6,0x01,0xDD,0x9E,0x44,0x16,0x00,0x00,0xB4,0x41,0x5A,0x08,0x01,0x06,0x44,0x01, +0x00,0x00,0xFE,0x17,0xD5,0x04,0x44,0x0E,0xFF,0xFF,0xFE,0x16,0xB6,0x01,0xDD,0x9E, +0x44,0x06,0x00,0x00,0xB4,0x00,0x92,0x1C,0x96,0x06,0xDD,0x9E,0x44,0x16,0x00,0x30, +0x5A,0x08,0x01,0x06,0xB4,0x01,0x58,0x00,0x01,0x00,0xD5,0x05,0xB4,0x41,0x44,0x0F, +0xFE,0xFF,0xFE,0x16,0xB6,0x01,0xDD,0x9E,0x44,0x36,0x38,0x14,0x40,0x00,0x20,0x08, +0x40,0x20,0x20,0x09,0xB4,0x03,0x96,0x6F,0x92,0x18,0x40,0x00,0x60,0x08,0xFE,0x17, +0x44,0x26,0x38,0x08,0xB6,0x03,0xB4,0x62,0x40,0x00,0xE0,0x08,0x46,0x1C,0x0F,0xFF, +0x50,0x10,0x8F,0xFF,0xFE,0x5E,0xFE,0x47,0xB6,0x22,0x44,0x16,0x38,0x04,0x44,0x01, +0x00,0x00,0xB4,0x41,0xFE,0x17,0xB6,0x01,0x44,0x14,0x80,0x0C,0xB4,0x01,0x92,0x03, +0x96,0x06,0xC0,0xFD,0x44,0x04,0x80,0x0C,0x84,0x28,0xAE,0x40,0xDD,0x9E,0x44,0x36, +0x34,0x14,0x40,0x00,0x20,0x08,0x40,0x20,0x20,0x09,0xB4,0x03,0x96,0x6F,0x92,0x18, +0x40,0x00,0x60,0x08,0xFE,0x17,0x44,0x26,0x34,0x08,0xB6,0x03,0xB4,0x62,0x40,0x00, +0xE0,0x08,0x46,0x1C,0x0F,0xFF,0x50,0x10,0x8F,0xFF,0xFE,0x5E,0xFE,0x47,0xB6,0x22, +0x44,0x16,0x34,0x04,0x44,0x01,0x00,0x00,0xB4,0x41,0xFE,0x17,0xB6,0x01,0x44,0x14, +0x80,0x0C,0xB4,0x01,0x92,0x13,0x96,0x06,0xC0,0xFD,0x44,0x04,0x80,0x0E,0x84,0x28, +0xAE,0x40,0xDD,0x9E,0xFC,0x01,0xB6,0x3F,0x80,0x22,0xF3,0x81,0x49,0xFF,0xFF,0xA6, +0xB4,0x1F,0xF1,0x01,0x49,0xFF,0xFF,0xCD,0xFC,0x81,0x44,0x16,0x3C,0x04,0xB4,0x01, +0x58,0x00,0x00,0x01,0xB6,0x01,0xDD,0x9E,0x44,0x26,0x38,0x04,0xB4,0x22,0x44,0x06, +0x38,0x04,0x92,0x28,0x96,0x46,0xC9,0xFB,0xB4,0x40,0x84,0x3E,0xFE,0x56,0xB6,0x20, +0x80,0x20,0xB4,0x01,0x92,0x08,0x96,0x06,0xC8,0xFD,0x44,0x26,0x34,0x04,0xB4,0x22, +0x44,0x06,0x34,0x04,0x92,0x28,0x96,0x46,0xC9,0xFB,0xB4,0x40,0x84,0x3E,0xFE,0x56, +0xB6,0x20,0x80,0x20,0xB4,0x01,0x92,0x08,0x96,0x06,0xC8,0xFD,0xDD,0x9E,0xFC,0x00, +0x46,0x60,0x00,0x83,0x83,0x86,0xB8,0x27,0x58,0x00,0x00,0x01,0xB8,0xA7,0xB8,0x27, +0x58,0x00,0x01,0x00,0xB8,0xA7,0x84,0x01,0x49,0x00,0x08,0xA4,0xB9,0x27,0x84,0x1E, +0xFE,0x0E,0xB8,0xA7,0xB9,0x27,0x44,0x0F,0xFE,0xFF,0xFE,0x0E,0xB8,0xA7,0xFC,0x80, +0xFC,0x40,0x46,0x60,0x00,0x83,0x84,0xFE,0x83,0x86,0x04,0x93,0x00,0x14,0x96,0x06, +0x40,0x74,0x9C,0x02,0xFE,0x3F,0xB8,0x94,0x96,0x5F,0xBF,0x14,0x40,0x00,0xE0,0x08, +0x46,0x1F,0x0F,0xFF,0x50,0x10,0x8F,0xFF,0xFE,0x7E,0xFE,0x47,0xB9,0x94,0x97,0x2F, +0xB9,0x14,0x40,0x02,0x44,0x08,0x46,0x4F,0xF8,0x1F,0x50,0x42,0x0F,0xFF,0xFF,0x0E, +0xFF,0x07,0xBC,0x94,0x97,0x6F,0x40,0x02,0xAC,0x08,0xBD,0x14,0x44,0x1E,0x07,0xFF, +0xFF,0x4E,0xFF,0x47,0xBD,0x94,0xB8,0x15,0x54,0x21,0x03,0xFF,0x92,0x0A,0x40,0x00, +0x28,0x08,0xFE,0x17,0xB8,0x95,0x96,0xF7,0x40,0x01,0xC0,0x08,0xB9,0x15,0x46,0x3F, +0xF8,0x0F,0x50,0x31,0x8F,0xFF,0xFE,0xCE,0xFE,0xC7,0xBB,0x95,0xFC,0xC0,0x46,0x00, +0x00,0x83,0x04,0x00,0x00,0x16,0x96,0x01,0xDD,0x9E,0xFC,0x00,0x46,0x40,0x00,0x83, +0x84,0x61,0x83,0x84,0xBE,0x13,0x84,0xBE,0xFE,0x1E,0xFF,0x76,0xFE,0x2F,0xB8,0x93, +0xFE,0x5E,0x40,0x30,0xA0,0x08,0xB9,0x60,0x44,0x0F,0xFE,0xFF,0xFE,0x46,0xFE,0x5F, +0xB9,0xE0,0x96,0xA7,0x40,0x01,0x20,0x08,0xBA,0x13,0x44,0x1F,0xE0,0xFF,0xFE,0x8E, +0xFE,0x87,0xBA,0x93,0xFC,0x80,0x46,0x30,0x00,0x83,0x96,0x8F,0x50,0x41,0x81,0x84, +0xB6,0x04,0xA8,0x61,0xA0,0x62,0x84,0x1C,0xFE,0x0E,0xFE,0x87,0xA8,0xA2,0xDD,0x9E, +0x46,0x20,0x00,0x83,0x96,0x27,0x04,0x11,0x00,0x60,0x92,0x25,0x94,0x4D,0xFE,0x47, +0x14,0x11,0x00,0x60,0xDD,0x9E,0x46,0x20,0x00,0x83,0x84,0x3E,0x04,0x31,0x00,0x12, +0x96,0x06,0xFE,0x5E,0xFE,0x0F,0x14,0x01,0x00,0x12,0xDD,0x9E,0xB4,0x40,0x46,0x10, +0x00,0x80,0x14,0x20,0x80,0x48,0xA0,0x01,0x14,0x00,0x80,0x4A,0xDD,0x9E,0xFC,0x40, +0x46,0x20,0x00,0x83,0x50,0x61,0x00,0xE4,0x83,0x82,0xBB,0x18,0x50,0x71,0x00,0xE8, +0x58,0x31,0x81,0x00,0xBB,0x98,0xBB,0x18,0x50,0x91,0x00,0xEC,0x92,0x68,0x40,0x31, +0xA0,0x08,0x58,0x31,0x80,0x88,0xBB,0x98,0x8C,0x02,0x84,0xA0,0x50,0x21,0x00,0xF0, +0x46,0x30,0x00,0x83,0xD1,0x22,0x22,0x30,0x00,0x00,0x22,0x40,0x7F,0xFF,0x40,0x31, +0xC0,0x08,0x88,0x64,0xB6,0x66,0x22,0x30,0x00,0x02,0x22,0x40,0x00,0x01,0x40,0x31, +0xC0,0x08,0x88,0x64,0xB6,0x67,0x22,0x30,0x00,0x04,0x22,0x40,0x00,0x03,0x40,0x31, +0xC0,0x08,0x88,0x64,0xB6,0x69,0xB4,0x62,0x8C,0xA1,0x92,0x70,0x40,0x31,0xC0,0x08, +0xB6,0x62,0x97,0x68,0x8C,0x0C,0xD5,0xDD,0x83,0x83,0xB9,0x18,0x44,0x0F,0xFE,0xFF, +0xFE,0x0E,0xB8,0x98,0xFC,0xC0,0x46,0x20,0x00,0x83,0x96,0x0F,0x04,0x31,0x00,0x12, +0x40,0x10,0x40,0x08,0x44,0x0C,0xFF,0xFF,0xFE,0x1E,0xFE,0x0F,0x14,0x01,0x00,0x12, +0xDD,0x9E,0xFC,0x00,0x84,0x40,0x44,0x64,0x00,0xC0,0x38,0x30,0x88,0x00,0x38,0x40, +0x09,0x01,0x99,0x56,0x40,0x31,0xB0,0x08,0x95,0x69,0xFE,0xE7,0x96,0xD9,0x8C,0x41, +0xAC,0xE8,0x5A,0x28,0x14,0xF4,0xFC,0x80,0x46,0x20,0x00,0x83,0x96,0x06,0x04,0x31, +0x00,0x26,0x94,0x41,0x84,0x1D,0xFE,0x1E,0xFE,0x0F,0x14,0x01,0x00,0x26,0xDD,0x9E, +0x46,0x20,0x00,0x81,0x96,0x06,0xA0,0xD5,0x40,0x10,0x20,0x08,0x44,0x0F,0xFE,0xFF, +0xFE,0x1E,0xFE,0x0F,0xA8,0x15,0xDD,0x9E,0xC9,0x08,0x46,0x20,0x00,0x91,0x84,0x3E, +0xB4,0x62,0x96,0x06,0xFE,0x5E,0xD5,0x0A,0x5A,0x18,0x01,0x0B,0x46,0x20,0x00,0x91, +0x96,0x06,0xB4,0x62,0x94,0x41,0x84,0x1D,0xFE,0x1E,0xFE,0x0F,0xB6,0x02,0xDD,0x9E, +0xFC,0x00,0x44,0x00,0x00,0xC8,0x49,0x00,0x07,0x75,0x44,0x14,0x50,0x0C,0x46,0x60, +0x00,0x81,0xB4,0x01,0x58,0x00,0x00,0x04,0xB6,0x01,0xFA,0x18,0x49,0x00,0x07,0x73, +0x83,0x86,0xB8,0x1C,0x58,0x00,0x01,0x00,0xB8,0x9C,0x84,0x01,0x49,0x00,0x07,0x6B, +0xB9,0x1C,0x44,0x01,0x00,0x00,0xFE,0x0F,0xB8,0x9C,0x44,0x00,0x01,0xF4,0x49,0x00, +0x07,0x59,0xB9,0x1C,0x46,0x00,0x10,0x00,0xFE,0x0F,0xB8,0x9C,0x44,0x00,0x01,0xF4, +0x49,0x00,0x07,0x50,0xFC,0x80,0x00,0x00,0x46,0x10,0x00,0x80,0x50,0x50,0x80,0x80, +0x50,0x10,0x80,0xB0,0xA2,0x81,0xAA,0xA9,0xD9,0xFE,0xDD,0x9E,0x46,0x10,0x00,0x80, +0x50,0x50,0x80,0xB0,0x50,0x10,0x80,0xC4,0xA2,0x81,0xAA,0xA9,0xD9,0xFE,0xDD,0x9E, +0xB4,0x40,0x46,0x10,0x00,0x80,0x14,0x20,0x80,0x47,0xA0,0x01,0x14,0x00,0x80,0x49, +0xDD,0x9E,0x46,0x10,0x00,0x80,0x50,0x50,0x81,0x40,0x50,0x30,0x81,0x4C,0xA6,0x41, +0xA6,0x80,0x94,0x4C,0xFE,0x57,0x96,0x48,0xAE,0x68,0x00,0x10,0x00,0x0D,0x00,0x20, +0x00,0x0C,0x94,0x4C,0xFE,0x57,0x96,0x48,0x10,0x12,0x80,0x0C,0x8C,0xA1,0x8C,0x02, +0xDB,0xEF,0xDD,0x9E,0x46,0x10,0x00,0x80,0x50,0x50,0x80,0x40,0x50,0x30,0x80,0x46, +0xA6,0x41,0xA6,0x80,0x94,0x4C,0xFE,0x57,0x96,0x48,0xAE,0x68,0x00,0x10,0x00,0x0D, +0x00,0x20,0x00,0x0C,0x94,0x4C,0xFE,0x57,0x96,0x48,0x10,0x12,0x80,0x0C,0x8C,0xA1, +0x8C,0x02,0xDB,0xEF,0xDD,0x9E,0xA6,0x81,0x80,0xA0,0x94,0x94,0x08,0x12,0x80,0x05, +0xFE,0x8F,0x46,0x10,0x00,0x80,0x96,0x90,0x10,0x20,0x80,0x48,0xA6,0xA9,0xA6,0xC5, +0x94,0x94,0xFE,0x9F,0x96,0x90,0x10,0x20,0x80,0x54,0xA6,0x83,0xA6,0xC2,0x94,0x94, +0xFE,0x9F,0x96,0x90,0x10,0x20,0x80,0x49,0xA6,0xAB,0xA6,0xEA,0x94,0x94,0xFE,0x9F, +0x96,0x90,0x10,0x20,0x80,0x55,0xA6,0x84,0x84,0x0F,0xFE,0x86,0x40,0x31,0x40,0x08, +0x46,0x4F,0xFF,0x0F,0x04,0x20,0x80,0x12,0x50,0x42,0x0F,0xFF,0xFE,0xA6,0xFE,0x9F, +0x14,0x20,0x80,0x12,0xA6,0xAC,0xFE,0x16,0x40,0x20,0x40,0x08,0x04,0x00,0x80,0x15, +0xFE,0x26,0xFE,0x17,0x14,0x00,0x80,0x15,0xDD,0x9E,0x46,0x10,0x00,0x80,0x50,0x50, +0x80,0x58,0x50,0x30,0x80,0x5E,0xA6,0x41,0xA6,0x80,0x94,0x4C,0xFE,0x57,0x96,0x48, +0xAE,0x68,0x00,0x10,0x00,0x0D,0x00,0x20,0x00,0x0C,0x94,0x4C,0xFE,0x57,0x96,0x48, +0x10,0x12,0x80,0x0C,0x8C,0xA1,0x8C,0x02,0xDB,0xEF,0xDD,0x9E,0xA6,0x81,0x80,0xA0, +0x94,0x94,0x08,0x12,0x80,0x05,0xFE,0x8F,0x46,0x10,0x00,0x80,0x96,0x90,0x10,0x20, +0x80,0x60,0xA6,0xA9,0xA6,0xC5,0x94,0x94,0xFE,0x9F,0x96,0x90,0x10,0x20,0x80,0x6C, +0xA6,0x83,0xA6,0xC2,0x94,0x94,0xFE,0x9F,0x96,0x90,0x10,0x20,0x80,0x61,0xA6,0xAB, +0xA6,0xEA,0x94,0x94,0xFE,0x9F,0x96,0x90,0x10,0x20,0x80,0x6D,0xA6,0x84,0x84,0x0F, +0xFE,0x86,0x40,0x31,0x40,0x08,0x46,0x4F,0xFF,0x0F,0x04,0x20,0x80,0x18,0x50,0x42, +0x0F,0xFF,0xFE,0xA6,0xFE,0x9F,0x14,0x20,0x80,0x18,0xA6,0xAC,0xFE,0x16,0x40,0x20, +0x40,0x08,0x04,0x00,0x80,0x1B,0xFE,0x26,0xFE,0x17,0x14,0x00,0x80,0x1B,0xDD,0x9E, +0xE6,0x06,0xE8,0x57,0xFC,0x20,0x46,0x70,0x00,0x81,0x44,0xF0,0x10,0x78,0x38,0x07, +0x80,0x00,0x40,0xF0,0x3C,0x00,0xDD,0x0F,0x06,0x16,0x34,0x44,0x62,0x76,0x04,0x03, +0x80,0x20,0x54,0x10,0x87,0xFF,0x92,0x0B,0x40,0x00,0x2C,0x08,0xD5,0x0C,0x54,0x10, +0x87,0xFF,0x40,0x00,0xC0,0x08,0x04,0x23,0x80,0x20,0x46,0x1F,0x80,0x0F,0x50,0x10, +0x8F,0xFF,0xFE,0x56,0xFE,0x47,0x14,0x13,0x80,0x20,0xFC,0xA0,0x04,0x03,0x80,0x21, +0x54,0x10,0x87,0xFF,0x92,0x0B,0x40,0x00,0x2C,0x08,0xD5,0x0C,0x54,0x10,0x87,0xFF, +0x40,0x00,0xC0,0x08,0x04,0x23,0x80,0x21,0x46,0x1F,0x80,0x0F,0x50,0x10,0x8F,0xFF, +0xFE,0x56,0xFE,0x47,0x14,0x13,0x80,0x21,0xFC,0xA0,0x83,0x87,0xB8,0x22,0x54,0x10, +0x87,0xFF,0x92,0x0B,0x40,0x00,0x2C,0x08,0xFE,0x47,0xB9,0xA2,0xFC,0xA0,0x80,0xC1, +0x49,0xFF,0xFD,0x54,0x54,0x13,0x03,0xFF,0x95,0x8E,0x04,0x13,0x83,0x98,0x44,0x0F, +0x00,0x3F,0xFE,0x46,0xFE,0x77,0x14,0x13,0x83,0x98,0x49,0xFF,0xFD,0x40,0xFC,0xA0, +0xDD,0x9E,0x46,0x20,0x00,0x83,0x96,0x06,0x40,0x10,0x60,0x08,0x04,0x31,0x00,0xC0, +0x46,0x0F,0xEF,0xFF,0x50,0x00,0x0F,0xFF,0xFE,0x1E,0xFE,0x0F,0x14,0x01,0x00,0xC0, +0xDD,0x9E,0x46,0x20,0x00,0x83,0x96,0x06,0x40,0x10,0x64,0x08,0x04,0x31,0x00,0xC0, +0x46,0x0F,0xDF,0xFF,0x50,0x00,0x0F,0xFF,0xFE,0x1E,0xFE,0x0F,0x14,0x01,0x00,0xC0, +0xDD,0x9E,0x46,0x20,0x00,0x83,0x96,0x0F,0x04,0x31,0x00,0x0F,0x40,0x10,0x20,0x08, +0x44,0x0F,0xFC,0xFF,0xFE,0x1E,0xFE,0x0F,0x14,0x01,0x00,0x0F,0xDD,0x9E,0x46,0x20, +0x00,0x83,0x84,0x3E,0x04,0x31,0x00,0x0F,0x96,0x06,0xFE,0x5E,0xFE,0x0F,0x14,0x01, +0x00,0x0F,0xDD,0x9E,0x46,0x20,0x00,0x83,0x96,0x06,0x04,0x31,0x00,0x0F,0x40,0x10, +0x28,0x08,0x44,0x0F,0xFB,0xFF,0xFE,0x1E,0xFE,0x0F,0x14,0x01,0x00,0x0F,0xDD,0x9E, +0x46,0x10,0x00,0x83,0x44,0x01,0x00,0x00,0x04,0x20,0x80,0x0E,0xFE,0x17,0x14,0x00, +0x80,0x0E,0xDD,0x9E,0x46,0x20,0x00,0x83,0x46,0x3F,0x7F,0xFF,0x50,0x51,0x00,0x38, +0xB4,0x85,0x50,0x31,0x8F,0xFF,0xFE,0xE6,0xB6,0x65,0xB4,0x85,0x46,0x3E,0xFF,0xFF, +0x50,0x31,0x8F,0xFF,0xFE,0xE6,0xB6,0x65,0x5A,0x08,0x01,0x04,0x84,0x1F,0xD5,0x02, +0x84,0x00,0x14,0x01,0x00,0x0B,0x14,0x01,0x00,0x0C,0x04,0x01,0x00,0x33,0x5A,0x18, +0x01,0x0B,0x58,0x00,0x0F,0xFF,0x14,0x01,0x00,0x33,0x04,0x01,0x00,0x34,0x58,0x00, +0x0F,0xFF,0xD5,0x0B,0x92,0x0C,0x40,0x00,0x30,0x08,0x14,0x01,0x00,0x33,0x04,0x01, +0x00,0x34,0x92,0x0C,0x40,0x00,0x30,0x08,0x14,0x01,0x00,0x34,0xDD,0x9E,0x46,0x10, +0x00,0x83,0x96,0x06,0x50,0x50,0x80,0x38,0xB4,0x85,0x44,0x2F,0xFE,0xFF,0x40,0x30, +0x20,0x08,0xFE,0xA6,0xFE,0x9F,0xB6,0x45,0xB4,0x65,0x44,0x2F,0xFD,0xFF,0x40,0x00, +0x24,0x08,0xFE,0x9E,0xFE,0x17,0xB6,0x05,0xDD,0x9E,0x46,0x20,0x00,0x81,0x50,0x51, +0x00,0x90,0x50,0x31,0x00,0x9A,0x08,0x20,0x00,0x01,0x88,0x41,0x96,0x90,0x18,0x22, +0x80,0x01,0xDB,0xFA,0xDD,0x9E,0xE6,0x25,0xE8,0x33,0x96,0x1F,0x46,0x20,0x00,0x81, +0x44,0xF0,0x12,0x80,0x38,0x17,0x84,0x00,0x40,0xF0,0xBC,0x00,0x4A,0x00,0x3C,0x00, +0x06,0x0E,0x1A,0x28,0x36,0x00,0x04,0x31,0x00,0x23,0x84,0x30,0xD5,0x1D,0x94,0x04, +0x04,0x31,0x00,0x23,0x44,0x1F,0xFF,0x0F,0xD5,0x17,0x40,0x00,0x20,0x08,0x04,0x31, +0x00,0x23,0x44,0x1F,0xF0,0xFF,0xD5,0x10,0x40,0x00,0x30,0x08,0x04,0x31,0x00,0x23, +0x44,0x1F,0x0F,0xFF,0xD5,0x09,0x46,0x1F,0xFF,0x0F,0x40,0x00,0x40,0x08,0x04,0x31, +0x00,0x23,0x50,0x10,0x8F,0xFF,0xFE,0x5E,0xFE,0x0F,0x14,0x01,0x00,0x23,0xDD,0x9E, +0x46,0x00,0x00,0x81,0x84,0x20,0x04,0x00,0x00,0x12,0x92,0x12,0x96,0x0F,0x40,0x00, +0x80,0x06,0xDD,0x9E,0x46,0x20,0x00,0x81,0x54,0x00,0x03,0xFF,0x40,0x10,0x40,0x08, +0x04,0x31,0x00,0x49,0x46,0x0F,0xC0,0x0F,0x50,0x00,0x0F,0xFF,0xFE,0x1E,0xFE,0x0F, +0x14,0x01,0x00,0x49,0xDD,0x9E,0xE6,0x06,0xE8,0x52,0xFC,0x20,0x46,0x70,0x00,0x81, +0x54,0x60,0x83,0xFF,0x44,0xF0,0x13,0x24,0x38,0x07,0x80,0x00,0x40,0xF0,0x3C,0x00, +0x4A,0x00,0x3C,0x00,0x06,0x2E,0x46,0x56,0x66,0x16,0x83,0x87,0xB9,0x30,0x92,0x2A, +0x40,0x10,0xA8,0x08,0xFF,0x8F,0xBE,0xB0,0xFC,0xA0,0x83,0x87,0xB8,0x31,0x46,0x2F, +0xC0,0x0F,0x50,0x21,0x0F,0xFF,0x40,0x63,0x40,0x08,0xFE,0x16,0xFE,0x37,0xB8,0xB1, +0xFC,0xA0,0x83,0x87,0xB8,0x30,0x46,0x2F,0xC0,0x0F,0x50,0x21,0x0F,0xFF,0x40,0x63, +0x40,0x08,0xFE,0x16,0xFE,0x37,0xB8,0xB0,0xFC,0xA0,0x83,0x87,0xB9,0x31,0x92,0x2A, +0x40,0x10,0xA8,0x08,0xFF,0x8F,0xBE,0xB1,0xFC,0xA0,0x83,0x87,0xB9,0x32,0x92,0x2A, +0x40,0x10,0xA8,0x08,0xFF,0x8F,0xBE,0xB2,0xFC,0xA0,0x49,0xFF,0xFC,0x07,0x40,0x13, +0x40,0x08,0x04,0x03,0x83,0x98,0x46,0x6F,0xC0,0x0F,0x50,0x63,0x0F,0xFF,0xFF,0x86, +0xFF,0x8F,0x14,0x63,0x83,0x98,0x49,0xFF,0xFB,0xF2,0xFC,0xA0,0xDD,0x9E,0x54,0x20, +0x80,0x03,0xE6,0x08,0x54,0x10,0x80,0x0C,0x90,0x22,0x4E,0xF2,0x00,0x93,0x96,0x4F, +0x46,0x30,0x00,0x81,0x96,0x8F,0x44,0xF0,0x13,0xD4,0x38,0x07,0x80,0x00,0x40,0xF0, +0x3C,0x00,0xDD,0x0F,0x08,0x24,0x40,0x5E,0x7C,0x9C,0xBC,0xE8,0x50,0x51,0x80,0x9C, +0xB4,0x85,0x84,0x1C,0xFE,0x26,0xFE,0x47,0xB6,0x25,0xB4,0x25,0x44,0x0C,0xFF,0xFF, +0x40,0x21,0x40,0x08,0xFE,0x0E,0xD5,0x72,0x50,0x51,0x80,0x9C,0xB4,0x85,0x84,0x13, +0xFE,0x26,0x94,0x4A,0xFE,0x47,0xB6,0x25,0x40,0x21,0x48,0x08,0xB4,0x05,0x46,0x1F, +0xFF,0x3F,0xD5,0x4E,0x50,0x51,0x80,0x9C,0xB4,0x85,0x44,0x0F,0xFF,0xCF,0xFE,0x26, +0x94,0x4C,0xFE,0x47,0xB6,0x25,0x40,0x21,0x50,0x08,0xB4,0x05,0x46,0x1F,0xFC,0xFF, +0xD5,0x3F,0x50,0x51,0x80,0x9C,0xB4,0x85,0x44,0x0F,0xFF,0x3F,0xFE,0x26,0x94,0x4E, +0xFE,0x47,0xB6,0x25,0x40,0x21,0x58,0x08,0xB4,0x05,0x46,0x1F,0xF3,0xFF,0xD5,0x30, +0x50,0x51,0x80,0x9C,0xB4,0x85,0x44,0x0F,0xFC,0xFF,0xFE,0x26,0x40,0x10,0xA0,0x08, +0xFE,0x47,0xB6,0x25,0x40,0x21,0x60,0x08,0xB4,0x05,0x46,0x1F,0xCF,0xFF,0xD5,0x20, +0x50,0x51,0x80,0x9C,0xB4,0x85,0x44,0x0F,0xF3,0xFF,0xFE,0x26,0x40,0x10,0xA8,0x08, +0xFE,0x47,0xB6,0x25,0x40,0x21,0x68,0x08,0xB4,0x05,0x46,0x1F,0x3F,0xFF,0xD5,0x10, +0x50,0x51,0x80,0x9C,0xB4,0x85,0x44,0x0F,0xCF,0xFF,0xFE,0x26,0x40,0x10,0xB0,0x08, +0xFE,0x47,0xB6,0x25,0x40,0x21,0x70,0x08,0xB4,0x05,0x46,0x1C,0xFF,0xFF,0x50,0x10, +0x8F,0xFF,0xFE,0x0E,0xFE,0x17,0x14,0x01,0x80,0x27,0xDD,0x9E,0x50,0x51,0x80,0x9C, +0xB4,0x85,0x44,0x0F,0x3F,0xFF,0xFE,0x26,0x40,0x10,0xB8,0x08,0xFE,0x47,0xB6,0x25, +0xB4,0x05,0x40,0x21,0x78,0x08,0x94,0x02,0x92,0x02,0xFE,0x87,0x14,0x21,0x80,0x27, +0xDD,0x9E,0xDD,0x9E,0xFC,0x40,0x80,0xE0,0x44,0x04,0x34,0x38,0x5A,0x78,0x01,0x2B, +0x80,0xC1,0xB4,0x20,0x44,0x9F,0xE0,0xFF,0x58,0x10,0x80,0x02,0xB6,0x20,0x80,0x27, +0x49,0xFF,0xFB,0x0F,0x44,0x04,0x34,0x50,0x97,0xA7,0xB4,0x20,0x40,0x63,0x20,0x08, +0x40,0x10,0xA4,0x02,0xFE,0x77,0xB6,0x20,0x80,0x27,0x49,0xFF,0xFB,0x02,0x44,0x04, +0x38,0x3C,0xB4,0x20,0x58,0x10,0x80,0x02,0xB6,0x20,0x80,0x27,0x49,0xFF,0xFA,0xCE, +0x44,0x04,0x38,0x58,0xB4,0x20,0x40,0x10,0xA4,0x02,0xFF,0x8F,0xB6,0xC0,0x80,0x27, +0xD5,0x0E,0xB4,0x20,0x84,0xDD,0xFE,0x76,0xB6,0x20,0x84,0x21,0x49,0xFF,0xFA,0xE9, +0x44,0x04,0x38,0x3C,0xB4,0x20,0xFF,0x8E,0xB6,0xC0,0x84,0x21,0x49,0xFF,0xFA,0xB6, +0xFC,0xC0,0x92,0x00,0xC8,0x04,0x44,0x07,0x20,0x0C,0xD5,0x03,0x44,0x07,0x20,0x10, +0xB4,0x00,0x40,0x00,0x30,0x08,0x92,0x0C,0xDD,0x9E,0xFC,0x00,0x80,0xC1,0x49,0xFF, +0xFF,0xF3,0x84,0x40,0x80,0x22,0xE2,0x46,0xE8,0x05,0x38,0x10,0x0A,0x0A,0x8C,0x41, +0xD5,0xFB,0xFC,0x80,0x44,0x27,0x20,0x1C,0x54,0x00,0x0F,0xFF,0xB4,0x22,0x92,0x2C, +0x40,0x10,0xB0,0x08,0xFE,0x47,0xB6,0x22,0xDD,0x9E,0x44,0x27,0x20,0x34,0x54,0x00, +0x0F,0xFF,0xB4,0x22,0x92,0x2C,0x40,0x10,0xB0,0x08,0xFE,0x47,0xB6,0x22,0xDD,0x9E, +0x44,0x27,0x20,0x38,0x54,0x00,0x0F,0xFF,0xB4,0x22,0x92,0x2C,0x40,0x10,0xB0,0x08, +0xFE,0x47,0xB6,0x22,0xDD,0x9E,0x44,0x27,0x20,0x54,0x84,0x30,0xB4,0x62,0x96,0x1F, +0xFE,0x5E,0xFE,0x0F,0xB6,0x02,0xDD,0x9E,0x44,0x27,0x20,0x54,0x96,0x1F,0xB4,0x62, +0x40,0x10,0x20,0x08,0x44,0x0F,0xF0,0xFF,0xFE,0x1E,0xFE,0x0F,0xB6,0x02,0xDD,0x9E, +0x44,0x27,0x20,0x58,0x96,0x1F,0x40,0x10,0x40,0x08,0xB4,0x62,0x46,0x0F,0xFF,0x0F, +0x50,0x00,0x0F,0xFF,0xFE,0x1E,0xFE,0x0F,0xB6,0x02,0xDD,0x9E,0x44,0x04,0x00,0x9C, +0xA6,0x00,0xDD,0x9E,0x46,0x10,0x00,0x81,0x04,0x00,0x80,0x6E,0x58,0x00,0x00,0x01, +0x14,0x00,0x80,0x6E,0xDD,0x9E,0xFC,0x00,0x44,0x04,0x2C,0x1C,0x84,0x41,0xB4,0x20, +0x80,0x62,0x58,0x10,0x81,0x00,0xB6,0x20,0xB4,0x20,0x58,0x10,0x80,0x80,0xB6,0x20, +0x44,0x04,0x28,0x1C,0x44,0x14,0x24,0x1C,0x49,0xFF,0xFA,0x8E,0xFC,0x80,0x46,0x20, +0x00,0x80,0x84,0x30,0x50,0x41,0x01,0xD0,0xB4,0x64,0x96,0x1F,0xFE,0x5E,0xFE,0x47, +0xB6,0x24,0xB4,0x64,0x44,0x1F,0xFF,0x0F,0x94,0x04,0xFE,0x5E,0xFE,0x0F,0xB6,0x04, +0xDD,0x9E,0x00,0x00,0x44,0x24,0x80,0x88,0x84,0x3E,0xB4,0x62,0x96,0x06,0xFE,0x5E, +0xFE,0x47,0xB6,0x22,0xB4,0x62,0x84,0x3D,0x94,0x01,0xFE,0x5E,0xFE,0x0F,0xB6,0x02, +0xDD,0x9E,0xFC,0x00,0x44,0x64,0x00,0x18,0x84,0x21,0xAE,0x70,0xA6,0x32,0x44,0x20, +0x98,0x81,0x58,0x00,0x00,0x01,0xAE,0x32,0xA6,0x32,0x58,0x00,0x00,0x02,0xAE,0x32, +0xA6,0x32,0x58,0x00,0x00,0x04,0xAE,0x32,0xA6,0x33,0x58,0x00,0x00,0x02,0xAE,0x33, +0xA6,0x33,0x58,0x00,0x00,0x04,0xAE,0x33,0xA6,0x33,0x58,0x00,0x00,0x08,0xAE,0x33, +0xA6,0x33,0x58,0x00,0x00,0x10,0xAE,0x33,0x44,0x04,0x00,0x10,0xB6,0x40,0xAE,0x71, +0xA6,0x32,0x58,0x00,0x00,0x10,0xAE,0x32,0xA6,0x32,0x58,0x00,0x00,0x20,0xAE,0x32, +0xA6,0x72,0x44,0x0F,0xFF,0x80,0xFE,0x0F,0xAE,0x32,0xA6,0x33,0x54,0x00,0x00,0xFE, +0xAE,0x33,0xA6,0x33,0x58,0x00,0x00,0x20,0xAE,0x33,0xA6,0x33,0x58,0x00,0x00,0x40, +0xAE,0x33,0x49,0x00,0x64,0xF0,0xE6,0x03,0x44,0x14,0x50,0x10,0xA6,0x32,0xE9,0x10, +0x54,0x00,0x00,0xFB,0xAE,0x32,0xB4,0x01,0x92,0x08,0x40,0x00,0x20,0x08,0xB6,0x01, +0x44,0x14,0x70,0x00,0x44,0x0E,0xFF,0xFF,0xB4,0x41,0xFE,0x16,0xD5,0x11,0x58,0x00, +0x00,0x04,0xAE,0x32,0xB4,0x01,0x92,0x08,0x40,0x00,0x20,0x08,0x58,0x00,0x00,0x98, +0xB6,0x01,0x44,0x14,0x70,0x00,0x44,0x01,0x00,0x00,0xB4,0x41,0xFE,0x17,0xB6,0x01, +0xFC,0x80,0x44,0x37,0x20,0x44,0x46,0x0F,0xC0,0x0F,0xB4,0x23,0x50,0x00,0x0F,0xFF, +0xFE,0x46,0x46,0x20,0x24,0x00,0xFE,0x57,0xB6,0x23,0x44,0x37,0x20,0x48,0x44,0x23, +0x00,0x00,0xB4,0x23,0xFE,0x46,0xFE,0x57,0x44,0x27,0x20,0x4C,0xB6,0x23,0xB4,0x22, +0x46,0x30,0x0C,0x00,0x92,0x2C,0x40,0x10,0xB0,0x08,0x58,0x10,0x82,0x52,0xB6,0x22, +0xB4,0x22,0xFE,0x46,0xFE,0x5F,0xB6,0x22,0x44,0x27,0x20,0x50,0x46,0x30,0x00,0x90, +0xB4,0x22,0x92,0x2C,0x40,0x10,0xB0,0x08,0x58,0x10,0x82,0x40,0xB6,0x22,0xB4,0x22, +0xFE,0x0E,0xB6,0x02,0x44,0x27,0x20,0x04,0x46,0x0F,0xFF,0x0F,0xB4,0x22,0x50,0x00, +0x0F,0xFF,0xFE,0x46,0xFE,0x5F,0xB6,0x22,0xB4,0x62,0x46,0x1F,0xF0,0xFF,0x50,0x10, +0x8F,0xFF,0xFE,0x5E,0x46,0x30,0x03,0x00,0xFE,0x5F,0xB6,0x22,0x46,0x20,0x00,0x80, +0x44,0x1F,0xF0,0xFF,0x50,0x41,0x01,0xC0,0xB4,0x64,0xFE,0x5E,0x58,0x10,0x88,0x00, +0xB6,0x24,0xB4,0x24,0xFE,0x0E,0x44,0x12,0x00,0x00,0xFE,0x0F,0xB6,0x04,0xDD,0x9E, +0x46,0x20,0x00,0x91,0x40,0x00,0x40,0x08,0xA0,0x56,0x96,0x49,0xFE,0x0F,0xA8,0x16, +0xDD,0x9E,0xE6,0x04,0xE8,0x28,0x46,0x10,0x00,0x91,0x44,0xF0,0x18,0x48,0x38,0x07, +0x80,0x00,0x40,0xF0,0x3C,0x00,0xDD,0x0F,0x04,0x12,0x20,0x2E,0xA0,0x0A,0x92,0x10, +0x40,0x00,0x40,0x08,0x58,0x00,0x00,0x0A,0xD5,0x15,0xA0,0x0A,0x92,0x10,0x40,0x00, +0x40,0x08,0x58,0x00,0x00,0x46,0xD5,0x0E,0xA0,0x0A,0x92,0x10,0x40,0x00,0x40,0x08, +0x58,0x00,0x00,0x96,0xD5,0x07,0xA0,0x0A,0x92,0x10,0x40,0x00,0x40,0x08,0x58,0x00, +0x01,0xF4,0xA8,0x0A,0xDD,0x9E,0x46,0x2F,0xFC,0x0F,0x46,0x10,0x00,0x91,0x50,0x21, +0x0F,0xFF,0x5A,0x08,0x01,0x08,0x04,0x00,0x80,0x0E,0xFE,0x86,0x44,0x02,0x00,0x00, +0xD5,0x06,0x04,0x00,0x80,0x0E,0xFE,0x86,0x44,0x01,0x00,0x00,0xFE,0x87,0x14,0x20, +0x80,0x0E,0xA0,0x09,0x92,0x06,0x94,0x06,0x58,0x00,0x00,0x01,0xA8,0x09,0xDD,0x9E, +0xFC,0x00,0x46,0x60,0x00,0x91,0x84,0x01,0xA8,0x31,0x44,0x00,0x01,0xF4,0xA8,0x32, +0x83,0x86,0xB9,0x0A,0x46,0x0F,0xC0,0x0F,0x50,0x00,0x0C,0x00,0xFE,0x46,0x58,0x10, +0x80,0x01,0xB9,0x8A,0xB9,0x0B,0xFE,0x0E,0x58,0x00,0x02,0x40,0xB8,0x8B,0xB9,0x0C, +0x44,0x0F,0xC0,0xC0,0xFE,0x0E,0x58,0x00,0x20,0x01,0xB8,0x8C,0xB9,0x0D,0x46,0x0E, +0x0E,0x0E,0x50,0x00,0x00,0xE0,0xFE,0x0E,0x46,0x10,0x60,0x11,0x50,0x10,0x82,0x01, +0xFE,0x0F,0xB8,0x8D,0xB9,0x0E,0x46,0x0F,0xFC,0x0C,0x50,0x00,0x00,0xF3,0xFE,0x0E, +0x44,0x11,0x01,0x0C,0xFE,0x0F,0xB8,0x8E,0x49,0xFF,0xFE,0x7A,0xE6,0x03,0xA0,0x36, +0x92,0x10,0x40,0x00,0x40,0x08,0xE9,0x1F,0x58,0x00,0x00,0x64,0xA8,0x36,0x83,0x86, +0xB8,0x08,0x92,0x10,0x40,0x00,0x40,0x08,0x58,0x00,0x00,0x64,0xB8,0x88,0xA0,0x35, +0x92,0x10,0x40,0x00,0x40,0x08,0x58,0x00,0x00,0x64,0xA8,0x35,0xA0,0x37,0x92,0x10, +0x40,0x00,0x40,0x08,0x58,0x00,0x00,0x64,0xA8,0x37,0xA0,0x76,0x46,0x00,0x06,0x40, +0x96,0x49,0xD5,0x1E,0x58,0x00,0x46,0x00,0xA8,0x36,0x83,0x86,0xB8,0x08,0x92,0x10, +0x40,0x00,0x40,0x08,0x58,0x00,0x46,0x00,0xB8,0x88,0xA0,0x35,0x92,0x10,0x40,0x00, +0x40,0x08,0x58,0x00,0x46,0x00,0xA8,0x35,0xA0,0x37,0x92,0x10,0x40,0x00,0x40,0x08, +0x58,0x00,0x46,0x00,0xA8,0x37,0xA0,0x76,0x46,0x04,0x60,0x00,0x96,0x49,0xFE,0x47, +0xA8,0x76,0x83,0x86,0xB9,0x08,0x96,0x49,0xFE,0x47,0xB9,0x88,0xA0,0x75,0x96,0x49, +0xFE,0x47,0xA8,0x75,0xA0,0x77,0x96,0x49,0xFE,0x0F,0xA8,0x37,0x46,0x00,0x00,0x91, +0x83,0x80,0xB9,0x12,0x58,0x10,0xBF,0x3F,0xB9,0x92,0xBA,0x13,0x44,0x1E,0xE0,0x80, +0xFE,0x56,0x44,0x21,0x00,0x48,0xFE,0x57,0xB9,0x93,0xFC,0x80,0x46,0x00,0x00,0x91, +0x50,0x30,0x00,0x44,0xB4,0x23,0x58,0x10,0x80,0x01,0xB6,0x23,0xB4,0x43,0x84,0x3E, +0xFE,0x56,0xB6,0x23,0xDD,0x9E,0x92,0x00,0x44,0x17,0x30,0x10,0xB4,0x01,0x96,0x06, +0xC0,0xFE,0x44,0x17,0x30,0x10,0xB4,0x01,0x92,0x03,0x96,0x06,0x5A,0x00,0x01,0xFD, +0xDD,0x9E,0x84,0xA0,0xD0,0x05,0x40,0x00,0x00,0x09,0x8C,0xA1,0xD5,0xFC,0xDD,0x9E, +0x44,0x27,0x30,0x10,0xB4,0x22,0x92,0x21,0x96,0x46,0x5A,0x10,0x01,0xFD,0x44,0x17, +0x30,0x00,0xB6,0x01,0xDD,0x9E,0xFC,0x00,0x44,0x04,0x70,0x18,0x84,0x3B,0xB4,0x40, +0xFE,0x56,0xB6,0x20,0x40,0x00,0x00,0x09,0x40,0x00,0x00,0x09,0xB4,0x20,0x46,0x61, +0xFF,0xF9,0x58,0x10,0x80,0x02,0xB6,0x20,0x44,0x04,0x80,0x0A,0x84,0x24,0xAE,0x40, +0x44,0x04,0x80,0x88,0x44,0x14,0x00,0x00,0xB4,0x40,0xFE,0x57,0xB6,0x20,0xB4,0x40, +0x44,0x12,0x00,0x00,0xFE,0x57,0xB6,0x20,0x44,0x17,0x30,0x08,0xB4,0x01,0x92,0x05, +0x94,0x05,0x58,0x00,0x00,0x01,0xB6,0x01,0x50,0x03,0x05,0x27,0x49,0xFF,0xFF,0xCA, +0x50,0x03,0x04,0x87,0x46,0x61,0xFF,0xFF,0x49,0xFF,0xFF,0xC4,0x50,0x03,0x03,0xCC, +0x49,0xFF,0xFF,0xC0,0x80,0x06,0x49,0xFF,0xFF,0xBD,0x50,0x03,0x0F,0x06,0x49,0xFF, +0xFF,0xB9,0x49,0xFF,0xFF,0xA3,0x46,0x01,0xF0,0x40,0x50,0x00,0x01,0x50,0x49,0xFF, +0xFF,0xB1,0x49,0xFF,0xFF,0x9B,0x46,0x01,0xF0,0x90,0x50,0x00,0x01,0x08,0x49,0xFF, +0xFF,0xA9,0x49,0xFF,0xFF,0x93,0xFC,0x80,0xC9,0x08,0x44,0x24,0x00,0x0C,0x96,0x06, +0xA6,0x50,0x54,0x10,0x80,0xFE,0xD5,0x0A,0x5A,0x18,0x01,0x0B,0x44,0x24,0x00,0x0C, +0x96,0x06,0xA6,0x50,0x94,0x01,0x54,0x10,0x80,0xFD,0xFE,0x0F,0xAE,0x10,0xDD,0x9E, +0xC9,0x04,0x44,0x15,0x00,0x00,0xD5,0x05,0x5A,0x18,0x01,0x05,0x44,0x15,0x00,0x10, +0xAE,0x0A,0xDD,0x9E,0xC9,0x0A,0x44,0x24,0x80,0x80,0x96,0x06,0x40,0x10,0x60,0x08, +0xB4,0x62,0x46,0x0F,0xEF,0xFF,0xD5,0x0B,0x5A,0x18,0x01,0x0F,0x44,0x24,0x80,0x80, +0x96,0x06,0x40,0x10,0x64,0x08,0xB4,0x62,0x46,0x0F,0xDF,0xFF,0x50,0x00,0x0F,0xFF, +0xFE,0x1E,0xFE,0x0F,0xB6,0x02,0xDD,0x9E,0xC9,0x04,0x44,0x15,0x00,0x04,0xD5,0x05, +0x5A,0x18,0x01,0x05,0x44,0x15,0x00,0x14,0xAC,0x08,0xDD,0x9E,0xC8,0x08,0x44,0x14, +0x80,0x03,0x84,0x01,0xAE,0x08,0x44,0x15,0x00,0x08,0xD5,0x09,0x5A,0x08,0x01,0x09, +0x44,0x14,0x80,0x03,0x84,0x42,0xAE,0x88,0x44,0x15,0x00,0x18,0xAE,0x09,0xDD,0x9E, +0xC8,0x08,0x44,0x04,0x80,0x03,0x84,0x21,0xAE,0x40,0x44,0x15,0x00,0x08,0xD5,0x09, +0x5A,0x08,0x01,0x0C,0x44,0x04,0x80,0x03,0x84,0x22,0xAE,0x40,0x44,0x15,0x00,0x18, +0xA6,0x08,0x58,0x00,0x00,0x02,0xAE,0x08,0xDD,0x9E,0xC9,0x04,0x44,0x15,0x00,0x00, +0xD5,0x05,0x5A,0x18,0x01,0x05,0x44,0x15,0x00,0x10,0xAE,0x08,0xDD,0x9E,0x84,0x21, +0xC0,0x04,0x5A,0x08,0x01,0x06,0x84,0x22,0x44,0x04,0x80,0x03,0xAE,0x40,0xDD,0x9E, +0x44,0x04,0x80,0x00,0xA6,0x03,0x92,0x01,0x96,0x06,0xC0,0x05,0x44,0x04,0x80,0x03, +0x84,0x22,0xAE,0x40,0xDD,0x9E,0x46,0x20,0x00,0x81,0x84,0x3E,0xA0,0xD5,0x96,0x06, +0xFE,0x5E,0xFE,0x0F,0xA8,0x15,0xDD,0x9E,0x46,0x00,0x00,0x81,0xA0,0x05,0x96,0x06, +0xDD,0x9E,0x44,0x24,0x50,0x14,0x84,0x3E,0xB4,0x62,0x96,0x06,0xFE,0x5E,0xFE,0x0F, +0xB6,0x02,0xDD,0x9E,0x44,0x25,0x10,0x04,0xB4,0x22,0x92,0x30,0x40,0x10,0xC0,0x08, +0xFE,0x0F,0xB6,0x02,0xDD,0x9E,0x44,0x15,0x10,0x0C,0xB4,0x01,0x58,0x00,0x01,0x00, +0xB6,0x01,0xDD,0x9E,0x44,0x15,0x10,0x0C,0xB4,0x01,0x92,0x08,0x40,0x00,0x20,0x08, +0x58,0x00,0x00,0x01,0xB6,0x01,0x44,0x15,0x10,0x18,0xB4,0x01,0x96,0x00,0x5A,0x00, +0x5A,0xFE,0xDD,0x9E,0xFC,0x00,0x44,0x00,0x01,0x2C,0x49,0x00,0x00,0x6B,0x44,0x05, +0x10,0x0C,0x44,0x1F,0xFF,0x81,0xAE,0x40,0x44,0x1F,0xFF,0x98,0xAE,0x40,0x44,0x15, +0x10,0x18,0xB4,0x01,0x96,0x00,0x5A,0x00,0xA5,0xFE,0x44,0x15,0x10,0x0C,0xB4,0x01, +0x92,0x08,0x40,0x00,0x20,0x08,0xB6,0x01,0xFC,0x80,0xC0,0x04,0x5A,0x00,0x01,0x1F, +0xDD,0x9E,0x44,0x14,0x80,0x82,0x44,0x22,0x00,0x00,0xAE,0x08,0x44,0x14,0x80,0x00, +0x44,0x04,0x80,0x80,0xB6,0x41,0xB4,0x60,0xFE,0x9F,0xB6,0x40,0x44,0x24,0x00,0x00, +0xB6,0x41,0xB4,0x60,0xFE,0x9F,0xB6,0x40,0x46,0x20,0x01,0x00,0xB6,0x41,0xB4,0x60, +0xFE,0x9F,0xB6,0x40,0x46,0x20,0x00,0x80,0xD5,0x23,0x44,0x04,0x80,0x82,0x84,0x20, +0xAE,0x40,0x44,0x14,0x80,0x00,0x44,0x04,0x80,0x80,0x44,0x21,0x00,0x00,0xB6,0x41, +0xB4,0x60,0xFE,0x9F,0xB6,0x40,0x44,0x22,0x00,0x00,0xB6,0x41,0xB4,0x60,0xFE,0x9F, +0xB6,0x40,0x44,0x24,0x00,0x00,0xB6,0x41,0xB4,0x60,0xFE,0x9F,0xB6,0x40,0x46,0x20, +0x00,0x80,0xB6,0x41,0xB4,0x60,0xFE,0x9F,0xB6,0x40,0x46,0x20,0x01,0x00,0xB6,0x41, +0xB4,0x60,0xFE,0x9F,0xB6,0x40,0x46,0x20,0x02,0x00,0xB6,0x41,0xB4,0x60,0xFE,0x9F, +0xB6,0x40,0x46,0x20,0x04,0x00,0xB6,0x41,0xB4,0x20,0xFE,0x8F,0xB6,0x40,0xDD,0x9E, +0x84,0x2E,0xFE,0x0C,0x8E,0x01,0x5A,0x07,0xFF,0x05,0x40,0x00,0x00,0x09,0xD5,0xFB, +0xDD,0x9E,0x44,0x10,0x36,0xB0,0xFE,0x0C,0x8E,0x01,0x5A,0x07,0xFF,0x05,0x40,0x00, +0x00,0x09,0xD5,0xFB,0xDD,0x9E,0xFF,0xFF,0xFC,0x20,0x44,0x62,0x40,0x0C,0x44,0x72, +0x10,0x80,0x80,0x06,0x49,0x00,0x27,0xDF,0xFD,0x03,0x49,0x00,0x27,0xF8,0xFD,0x03, +0x50,0x23,0xFF,0xE8,0x50,0x33,0xFF,0xF4,0x00,0x43,0x7F,0xF8,0x49,0x00,0x29,0x47, +0xFC,0xA0,0xFC,0x00,0x84,0x20,0x44,0x20,0x08,0xC4,0x44,0x02,0x40,0x0C,0x49,0x00, +0x69,0x7F,0x49,0x00,0x2F,0xDB,0xFC,0x80,0xFC,0x00,0x49,0x00,0x59,0x1C,0x50,0x30, +0x04,0x80,0x3C,0x44,0x0A,0xB1,0x84,0x20,0x2A,0x20,0x00,0x01,0xE0,0x82,0xE8,0x05, +0x84,0x00,0x3E,0x07,0xED,0x20,0xD5,0x22,0x5E,0xF1,0x7F,0x38,0xE8,0x0B,0x8C,0x21, +0x5E,0xF1,0x7E,0x70,0x96,0x49,0xE8,0x06,0xE6,0x27,0x80,0x41,0xE8,0x02,0x84,0x47, +0x96,0x51,0x4C,0x01,0xFF,0xEB,0xE6,0x27,0xE9,0x08,0x84,0x01,0x3E,0x07,0xED,0x21, +0x2E,0x07,0xED,0x20,0x8C,0x01,0xD5,0x04,0x84,0x00,0x3E,0x07,0xED,0x21,0x3E,0x07, +0xED,0x20,0x2E,0x07,0xED,0x20,0xE6,0x02,0xE8,0x03,0x84,0x00,0xD5,0x07,0x49,0x00, +0x4A,0xB8,0xC8,0xFC,0x3E,0x07,0xED,0x20,0x84,0x01,0xFC,0x80,0xFC,0x00,0x49,0x00, +0x4A,0xB0,0xC8,0x04,0x49,0xFF,0xFF,0xC2,0xFC,0x80,0x84,0x00,0xFC,0x80,0xFC,0x40, +0x00,0x7F,0x80,0x24,0x02,0x8F,0x80,0x10,0xB4,0xC0,0x5A,0x70,0x01,0x07,0xA5,0x0C, +0xA4,0xCA,0x02,0x80,0x80,0x05,0xA5,0x4B,0xE0,0xC4,0xE8,0x2A,0xE0,0x66,0x81,0x46, +0x40,0x92,0x0C,0x01,0x40,0xA1,0xBC,0x1A,0x80,0xA9,0x4E,0x94,0x00,0x04,0x52,0x54, +0x80,0x00,0x40,0x21,0xA8,0x01,0x4E,0x24,0x00,0x03,0xFE,0x92,0x22,0x70,0x80,0x00, +0x40,0x35,0x0C,0x01,0x9A,0x67,0xFE,0xCC,0x40,0x31,0xA4,0x76,0x88,0x67,0xE0,0x67, +0xE9,0x05,0xE0,0x83,0x40,0x41,0xBC,0x1A,0x80,0xE4,0x9A,0x6A,0xFF,0x94,0x42,0x23, +0x84,0x24,0x40,0x63,0x14,0xD6,0x40,0x21,0x14,0x56,0x88,0xC2,0xD5,0x31,0x40,0x91, +0x20,0x01,0xE1,0x26,0xE8,0x30,0x9A,0xD5,0xE0,0xC3,0x80,0x86,0x40,0x74,0x14,0x01, +0x40,0x41,0xBC,0x1A,0x4E,0x74,0x00,0x03,0xFF,0xFA,0x8A,0x64,0x4E,0x34,0x00,0x04, +0x9A,0xEA,0x88,0x64,0x22,0xA0,0x80,0x01,0x9A,0x54,0x8A,0x25,0x40,0x44,0x28,0x01, +0xFE,0x64,0x8A,0xA8,0x40,0x50,0x94,0xB6,0x8A,0xAA,0x88,0xA2,0xE0,0xA9,0xE9,0x06, +0x8A,0x4A,0xE0,0x45,0x40,0x22,0xBC,0x1A,0x81,0x22,0x9A,0x7B,0x42,0x43,0x0C,0x24, +0x42,0x34,0x84,0x24,0x40,0x42,0x1C,0x96,0x40,0x31,0x9C,0x76,0x99,0xA3,0xB6,0xC0, +0x84,0x01,0xFC,0xC0,0x84,0x00,0xFC,0xC0,0x3C,0x03,0xF6,0x92,0x96,0x06,0x4E,0x02, +0x00,0xC4,0xFC,0x45,0x84,0xE0,0x44,0x92,0x40,0x0C,0x80,0xC7,0xF7,0x83,0xF7,0x84, +0x83,0x87,0x00,0x04,0x80,0xAD,0x9E,0x41,0xE6,0x22,0xE9,0x05,0x5A,0x00,0x04,0x04, +0x48,0x00,0x00,0xAB,0xB0,0x49,0x80,0x09,0x84,0x40,0x49,0x00,0x00,0xDE,0x44,0x00, +0x00,0xCC,0x44,0x12,0x40,0xCC,0x42,0x13,0x80,0x73,0xA0,0x09,0x40,0x10,0x30,0x09, +0x54,0x10,0x80,0x2F,0xE6,0x22,0xE8,0x24,0x40,0x00,0x20,0x08,0x90,0x1A,0xC8,0x20, +0x3C,0x17,0xF6,0x02,0x84,0x0D,0x84,0xCA,0xFE,0x44,0x40,0x10,0x98,0x36,0x41,0xC0, +0x80,0x13,0x3C,0x17,0xF6,0x04,0x85,0x01,0xFE,0x44,0x40,0x10,0x98,0x36,0x96,0x49, +0xF1,0x83,0x3C,0x17,0xF6,0x03,0xFE,0x44,0x40,0x10,0x98,0x36,0x96,0x49,0xF1,0x84, +0x3C,0x17,0xF6,0x05,0xFE,0x0C,0x40,0x60,0x18,0xD6,0x97,0xB1,0xD5,0x02,0x85,0x00, +0xF0,0x09,0x44,0x12,0x10,0x68,0x80,0x7C,0x22,0x00,0x00,0x04,0xF4,0x03,0xF0,0x87, +0xB6,0xDF,0x3C,0xA3,0x66,0x3C,0x14,0x8F,0x80,0x01,0x80,0x4A,0xB0,0x07,0xF5,0x04, +0x49,0xFF,0xFF,0x37,0xF0,0x85,0xF1,0x07,0x3C,0x07,0xF6,0x00,0xF2,0x09,0xE0,0x20, +0xE9,0x09,0x3C,0x07,0xF6,0x01,0x40,0x05,0x00,0x01,0xE0,0x20,0x40,0x00,0xBC,0x1B, +0x96,0x03,0xAC,0x14,0x5A,0x88,0x01,0x1F,0x3C,0x17,0xF6,0x08,0x84,0x0B,0x84,0xCA, +0xFE,0x44,0x40,0x10,0x98,0x36,0x41,0xC0,0x80,0x13,0x3C,0x17,0xF6,0x0A,0xFE,0x44, +0x40,0x10,0x98,0x36,0x96,0x49,0xF1,0x83,0x3C,0x17,0xF6,0x09,0xFE,0x44,0x40,0x10, +0x98,0x36,0x96,0x49,0xF1,0x84,0x3C,0x17,0xF6,0x0B,0xFE,0x0C,0x40,0x60,0x18,0xD6, +0x97,0xB1,0x22,0x01,0x00,0x05,0x44,0x12,0x10,0x74,0xF0,0x88,0x14,0x8F,0x80,0x01, +0x3C,0xA3,0x66,0x3D,0xB6,0xDF,0x80,0x4A,0xB0,0x08,0x80,0x7C,0xF4,0x03,0xF5,0x04, +0x49,0xFF,0xFE,0xF7,0x81,0x00,0xF2,0x08,0x3C,0x07,0xF6,0x06,0xF1,0x09,0xE0,0x40, +0xE9,0x09,0x3C,0x07,0xF6,0x07,0x40,0x05,0x00,0x01,0xE0,0x40,0x40,0x01,0x3C,0x1B, +0x96,0x03,0xAC,0x0D,0x80,0x09,0x49,0x00,0x00,0x34,0xF0,0x05,0xC8,0x03,0x4E,0x82, +0x00,0x0C,0x44,0x00,0x00,0xCC,0x44,0x12,0x40,0xD4,0x42,0x13,0x80,0x73,0xB4,0x01, +0x58,0x00,0x00,0x20,0xB6,0x01,0x8C,0xE1,0x50,0x94,0x80,0xCC,0x5A,0x70,0x0B,0x04, +0x48,0xFF,0xFF,0x49,0xFC,0xC5,0xDD,0x9E,0x04,0x30,0x00,0x32,0x96,0xD7,0xE4,0x65, +0xE8,0x15,0xFC,0x00,0xFA,0x4C,0x80,0xC0,0x42,0x01,0x88,0x73,0x49,0x00,0x67,0xD2, +0x04,0x23,0x00,0x32,0x84,0x18,0x9C,0x51,0x96,0x57,0xE6,0x25,0xFE,0x16,0xE8,0x02, +0xFE,0x0F,0x14,0x03,0x00,0x32,0x84,0x01,0xFC,0x80,0x84,0x00,0xDD,0x9E,0x04,0x20, +0x00,0x32,0x96,0x97,0xE4,0x45,0xE8,0x0E,0xFC,0x00,0x9E,0xD1,0x96,0xD8,0x5A,0x38, +0xFF,0x03,0x9C,0xD4,0xFA,0x4C,0x42,0x01,0x88,0x73,0x49,0x00,0x67,0xB3,0x84,0x01, +0xFC,0x80,0x84,0x00,0xDD,0x9E,0xE6,0x45,0xE8,0x13,0x04,0x30,0x00,0x32,0x96,0xD7, +0x9A,0x9A,0x96,0x90,0x9E,0xD1,0x96,0xD8,0x97,0x1A,0x4E,0x44,0x00,0x04,0x8C,0x44, +0x96,0xD0,0xFA,0x4C,0x42,0x01,0x88,0x73,0xB6,0x01,0x84,0x01,0xDD,0x9E,0x84,0x00, +0xDD,0x9E,0xFC,0x40,0xFB,0x44,0x80,0xE0,0x44,0x80,0x00,0x64,0x52,0x05,0x00,0x14, +0x96,0x00,0x84,0xC0,0x5C,0x90,0x00,0x14,0x49,0x00,0x5F,0xE5,0xE6,0x03,0xE9,0x06, +0x38,0x03,0x99,0x01,0x94,0x01,0x38,0x03,0x99,0x09,0x4E,0x92,0x00,0x0B,0x38,0x03, +0x99,0x11,0x42,0x15,0x00,0x24,0x40,0x10,0xA0,0x36,0x88,0x01,0x38,0x03,0x99,0x09, +0x8C,0xC1,0x5A,0x68,0x12,0xEB,0x8F,0x41,0x50,0x73,0x80,0x24,0x5A,0xAF,0xF4,0xE0, +0xFC,0xC0,0xFC,0x40,0xFF,0x92,0x81,0x40,0x80,0xE1,0x80,0x01,0x81,0x22,0x84,0x20, +0x44,0x20,0x00,0x40,0x49,0x00,0x67,0x8C,0x97,0xB3,0x84,0x80,0x84,0x49,0xFA,0x22, +0x83,0x8A,0x42,0x82,0x08,0x24,0x43,0xC2,0x04,0x73,0x84,0x00,0x38,0x3E,0x01,0x11, +0x97,0x40,0xE0,0x69,0xE9,0x06,0x96,0x2A,0x4E,0x05,0x00,0x20,0xFA,0x61,0xD5,0x12, +0xE0,0xC3,0xE8,0xFA,0x8C,0x01,0x5A,0x08,0x12,0xF3,0xD5,0x17,0x40,0xF1,0xA0,0x00, +0x39,0xC5,0x3D,0x11,0x40,0xFE,0x24,0x07,0xE8,0x08,0xE0,0xDC,0xE8,0x06,0x8E,0x61, +0x96,0xD8,0xE0,0x60,0xE8,0xF4,0xD5,0x03,0x96,0xDA,0xD5,0x02,0x84,0x7F,0x98,0x3C, +0x8C,0x61,0x38,0x53,0x90,0x08,0xAE,0xC1,0x8C,0x82,0x5A,0x48,0x40,0xD3,0xFC,0xC0, +0xFC,0x42,0x84,0xA0,0x80,0xE5,0x81,0x25,0xA7,0x89,0x55,0xC2,0x80,0xFF,0xF6,0x82, +0xFA,0xC2,0xFF,0xAC,0xF6,0x83,0x2E,0x67,0xED,0x2E,0xA7,0x08,0x2F,0xE7,0xED,0x2F, +0xF6,0x81,0x2E,0x87,0xED,0x2D,0x2E,0xA7,0xED,0x2C,0xF6,0x02,0xE2,0x86,0xE8,0x13, +0xF6,0x03,0x88,0xC4,0x38,0x60,0x19,0x11,0xE1,0x26,0xE8,0x05,0x15,0xCF,0x80,0x01, +0x83,0xC4,0x81,0x26,0xE0,0xC7,0xE8,0x04,0x81,0x5C,0x81,0x04,0x80,0xE6,0x8C,0x81, +0x97,0x20,0xD5,0xEC,0x00,0x4F,0x80,0x04,0x8C,0xA1,0x3F,0xE7,0xED,0x2F,0x3E,0x47, +0xED,0x2E,0x3E,0x87,0xED,0x2D,0x3E,0xA7,0xED,0x2C,0x8C,0x22,0x5A,0x58,0x20,0xCE, +0x12,0x91,0x00,0x00,0xAD,0xD8,0xFC,0xC2,0xFC,0x41,0x80,0xC1,0x85,0x00,0xFA,0x2F, +0x80,0xE0,0x81,0x22,0x80,0x02,0x44,0x20,0x02,0x40,0xF3,0x81,0x81,0x44,0x3C,0x8F, +0xFB,0x4A,0x49,0x00,0x67,0x0D,0x80,0x26,0x80,0x68,0x80,0x48,0x80,0x08,0x84,0x80, +0xA7,0x88,0xE2,0x86,0xE8,0x19,0x99,0x63,0x3C,0x6D,0xFB,0x4A,0x38,0x53,0x95,0x11, +0x8C,0x81,0x88,0xA6,0x3C,0x5F,0xFB,0x4A,0x97,0x20,0xD5,0xF3,0x41,0xE3,0x0C,0x00, +0x38,0x43,0xF9,0x11,0x88,0xA4,0x3C,0x5F,0xFB,0x4A,0xF5,0x01,0x89,0x04,0xE0,0xA4, +0xE9,0x09,0x8C,0xC1,0x97,0xB0,0xA7,0x09,0x3C,0x5D,0xFB,0x4A,0xE2,0xC4,0xE9,0xEF, +0xD5,0x0F,0x8C,0x41,0xE1,0x44,0x96,0x93,0xE8,0x04,0x44,0x40,0x00,0xDF,0xD5,0x03, +0x44,0x40,0x00,0x5F,0x8C,0x01,0x38,0x44,0xF8,0x08,0x96,0x01,0xD5,0xEB,0xE6,0x92, +0xE8,0x08,0x99,0xA3,0x8C,0x81,0x38,0x63,0x99,0x11,0x97,0x20,0x88,0xA6,0xD5,0xF8, +0x8C,0x72,0x3C,0x5F,0xFB,0x4A,0x8C,0x22,0x5A,0x3A,0x40,0xC3,0x3C,0x8F,0xFB,0xB9, +0x3C,0x2B,0xF7,0x74,0xFC,0xC1,0xFC,0x48,0xFA,0x94,0x50,0x50,0x00,0x24,0x84,0x20, +0x80,0x61,0x44,0x60,0x7F,0xFF,0x42,0x20,0x90,0x24,0x38,0x20,0x08,0x11,0x38,0x2F, +0x85,0x09,0xE0,0x46,0x40,0x61,0x3C,0x1B,0x8C,0x21,0xE0,0x62,0x40,0x31,0x3C,0x1B, +0x5A,0x18,0x20,0xF3,0x3C,0x14,0x0A,0xD3,0xE0,0x23,0xE9,0x05,0x8C,0x02,0x4C,0x02, +0xFF,0xE8,0xFC,0xC8,0x84,0x60,0x80,0x43,0x80,0xE3,0x38,0x9F,0x8D,0x11,0x40,0xA4, +0x98,0x01,0xE1,0x41,0xE8,0x04,0x8C,0x41,0x88,0xE9,0x96,0x90,0x8C,0x61,0x5A,0x38, +0x20,0xF6,0xCA,0x02,0x84,0x41,0x40,0x11,0x04,0x09,0x88,0x27,0x40,0x10,0x88,0x36, +0x5E,0xF0,0x80,0xC9,0xE9,0x04,0x44,0x10,0x00,0xC8,0xD5,0x04,0x4E,0x14,0x00,0x03, +0x84,0x20,0x40,0x60,0x84,0x0A,0x97,0xB1,0x84,0x60,0x3C,0x74,0x0A,0xD3,0x38,0x2F, +0x8D,0x11,0x88,0xE1,0xE0,0xE2,0x42,0x71,0x90,0x24,0xE8,0x03,0x8A,0x46,0xD5,0x02, +0x8A,0x41,0x8C,0x61,0x38,0x20,0x1C,0x09,0x5A,0x38,0x20,0xF1,0xD5,0xC8,0xFC,0x4C, +0x80,0xC0,0x3C,0x00,0x0A,0xB8,0xB0,0x53,0xF0,0x8D,0x3C,0x00,0x0A,0xB9,0x44,0x72, +0x3D,0x44,0xF0,0x8E,0x3C,0x00,0x0A,0xBA,0xF0,0x8F,0x3C,0x00,0x0A,0xBB,0xF0,0x90, +0x44,0x00,0xF0,0xF0,0x3A,0x20,0x14,0x04,0x3A,0x20,0x94,0x24,0xA4,0x00,0xAC,0x08, +0x49,0x00,0x55,0xF9,0xF0,0x8A,0x84,0x20,0x44,0x02,0x3D,0x44,0x44,0x20,0x02,0x40, +0x49,0x00,0x66,0x4E,0x84,0x00,0x3C,0x0B,0xF6,0x56,0x44,0x00,0x7F,0xFF,0x3C,0x0B, +0xF6,0x52,0x84,0x20,0xF0,0x0A,0x95,0x09,0x88,0x80,0x99,0x4F,0x84,0x00,0x3C,0x33, +0xF6,0x56,0x38,0x22,0x01,0x11,0x40,0xF1,0x80,0x11,0xE0,0x4F,0x40,0x31,0x3C,0x1A, +0x3C,0x3B,0xF6,0x56,0x3C,0x33,0xF6,0x52,0x40,0x91,0x80,0x11,0xE1,0x22,0x40,0x31, +0x3C,0x1A,0x5E,0xF1,0x00,0xFB,0x3C,0x3B,0xF6,0x52,0xE9,0x07,0x38,0x22,0x80,0x00, +0x58,0x21,0x00,0x40,0x38,0x22,0x80,0x08,0x8C,0x01,0x5A,0x08,0x12,0xE2,0x8C,0x32, +0x5A,0x1A,0x40,0xDA,0x85,0x20,0x44,0x82,0x11,0x97,0x44,0xA2,0x3D,0x44,0xFA,0x02, +0x42,0xA4,0x80,0x73,0x84,0xE0,0x38,0x05,0x1C,0x00,0x96,0x36,0xC0,0x3C,0x84,0x08, +0xF0,0x82,0x50,0x0F,0x80,0x4A,0xF0,0x84,0x84,0x01,0x84,0x60,0xF0,0x85,0x44,0x02, +0x11,0x96,0xF0,0x87,0xB6,0x7F,0xF3,0x81,0xF3,0x83,0x14,0x8F,0x80,0x06,0xF3,0x88, +0xF3,0x89,0x96,0x3B,0x40,0x14,0x80,0x11,0x44,0x20,0x00,0x40,0x44,0x42,0x3D,0x44, +0xF5,0x0A,0x49,0x00,0x2A,0xA2,0xA6,0x30,0x8C,0x01,0x96,0x00,0xE6,0x03,0xAE,0x30, +0xE8,0x12,0x44,0x12,0x11,0x68,0x8E,0x01,0x2E,0x27,0xED,0x2F,0x38,0x20,0x81,0x08, +0xA6,0x30,0x8E,0x01,0x94,0x01,0x88,0x01,0x2E,0x17,0xED,0x2E,0xAE,0x41,0xA6,0x30, +0x3C,0x0B,0xF6,0xA0,0x02,0x0F,0x80,0x25,0x5C,0xF0,0x00,0x29,0xE9,0x04,0x84,0x01, +0x3E,0x07,0xED,0x38,0x8C,0xE1,0x5A,0x78,0x12,0xC0,0x8D,0x21,0x5A,0x98,0x20,0xB7, +0x3C,0xF7,0xF6,0x56,0x5E,0xF7,0x80,0xC8,0xE8,0x04,0x84,0x00,0x3E,0x07,0xED,0x38, +0x2E,0x07,0xED,0x38,0x5A,0x08,0x01,0x04,0x48,0x00,0x00,0x8C,0xA6,0x30,0xE6,0x03, +0x4E,0xF2,0x00,0x88,0x4E,0x02,0x00,0x87,0x22,0x1F,0x80,0x1A,0x3C,0x03,0xF6,0xA0, +0xF1,0x8D,0xF2,0x0D,0x22,0x1F,0x80,0x1C,0xF0,0x91,0x8A,0x22,0x3C,0x0D,0xFB,0x3C, +0x23,0xEF,0x80,0x1E,0x80,0xE1,0x22,0x1F,0x80,0x20,0xF0,0x8B,0x3C,0x0D,0xFB,0x3B, +0x8A,0x3E,0xF0,0x8C,0x3C,0x8D,0xFB,0x39,0x3C,0x9D,0xFB,0x3E,0x84,0x00,0xF1,0x90, +0xF1,0x11,0xE2,0x01,0xE8,0x5A,0x44,0x12,0x11,0x68,0x44,0x22,0x11,0x68,0x38,0x10, +0x81,0x10,0xF1,0x8E,0x94,0x41,0x88,0x22,0x84,0x40,0x20,0x10,0x80,0x01,0x80,0x62, +0xF1,0x8F,0x81,0x42,0x80,0x22,0xB1,0x13,0x38,0x52,0x08,0x10,0xF4,0x0E,0x88,0xA4, +0xB1,0x13,0x88,0x82,0x40,0xF2,0x80,0x13,0x5C,0xF7,0x80,0x12,0x20,0x42,0x00,0x01, +0xE8,0x25,0xF6,0x0F,0x88,0x86,0x40,0xF2,0x00,0x13,0x5C,0xF7,0x80,0x20,0xE8,0x1E, +0x81,0xE5,0xFA,0xC2,0x42,0xF2,0x18,0x73,0xF6,0x0A,0x38,0xF3,0x3D,0x11,0xF6,0x0D, +0x42,0x63,0x94,0x73,0x80,0xA6,0xFA,0xC1,0x40,0x52,0x98,0xB6,0x97,0x6B,0xF6,0x10, +0x42,0x17,0x94,0x73,0x80,0xBE,0x42,0x53,0x10,0x73,0x80,0x85,0xFA,0xAF,0x40,0x42, +0x14,0x96,0x97,0x23,0x88,0x6F,0x42,0xA7,0x90,0x73,0x8C,0x42,0x5A,0x28,0x12,0xCD, +0x40,0x21,0x84,0x0A,0x88,0x22,0xC8,0x07,0x89,0x42,0x40,0x80,0x8D,0x16,0x40,0x95, +0x0D,0x36,0xD5,0x08,0x40,0x10,0x8C,0x36,0x89,0x42,0xF1,0x8B,0x40,0x15,0x0C,0x36, +0xF1,0x8C,0x8C,0x01,0x96,0x00,0xD5,0xA5,0xF0,0x0B,0x3C,0x0F,0xFB,0x3C,0xF0,0x0C, +0x3C,0x0F,0xFB,0x3B,0x3C,0x8F,0xFB,0x39,0x3C,0x9F,0xFB,0x3E,0x84,0x01,0xD5,0x02, +0x84,0x02,0xFC,0xCC,0xFC,0x00,0x3C,0x17,0xF6,0x5A,0x5E,0xF0,0x81,0xCA,0xE9,0x0B, +0x3C,0x03,0x66,0x3C,0x50,0xF0,0x7F,0x57,0xE0,0x2F,0xE8,0x05,0x2E,0x07,0xED,0x3E, +0x5A,0x08,0x01,0x06,0x84,0x00,0x3E,0x07,0xED,0x3E,0xD5,0x40,0x2E,0x07,0xED,0x42, +0xC0,0x04,0x5A,0x00,0x01,0x15,0xD5,0x3C,0x3C,0x27,0xEF,0x33,0x3C,0x17,0xEF,0x32, +0x88,0x22,0x90,0x21,0x3C,0x1F,0xFB,0x4C,0x3C,0x27,0xEF,0x35,0x3C,0x17,0xEF,0x34, +0x88,0x22,0x90,0x21,0x3C,0x1F,0xFB,0x4D,0x84,0x21,0xD5,0x21,0x3C,0x13,0xF6,0xA0, +0xE6,0x22,0xE9,0x03,0x84,0x00,0xD5,0x22,0x3C,0x17,0xEF,0x32,0x3C,0x37,0xEF,0x33, +0x3C,0x27,0xEF,0x35,0x88,0x61,0x3C,0x17,0xEF,0x34,0x3C,0x4D,0xFB,0x4C,0x88,0x41, +0x3C,0x1D,0xFB,0x4D,0x90,0x41,0x90,0x61,0x8A,0x22,0x8A,0x83,0xFE,0x4C,0x42,0x12, +0x10,0x73,0x44,0x44,0x20,0x3F,0xE0,0x81,0xE9,0x05,0x84,0x20,0x3E,0x17,0xED,0x42, +0xD5,0x08,0x3C,0x3F,0xFB,0x4C,0x3C,0x2F,0xFB,0x4D,0x3E,0x07,0xED,0x42,0x84,0x00, +0xFC,0x80,0xFC,0x00,0x84,0xC0,0x49,0x00,0x02,0xBE,0x84,0x03,0x84,0x20,0x3E,0x67, +0xED,0x43,0x49,0x00,0x5F,0x8B,0x84,0x04,0x84,0x20,0x49,0x00,0x5F,0x87,0x84,0x08, +0x84,0x20,0x49,0x00,0x5F,0x83,0x84,0x09,0x84,0x20,0x49,0x00,0x5F,0x7F,0x84,0x0A, +0x84,0x20,0x49,0x00,0x5F,0x7B,0x3E,0x67,0xED,0x42,0xFC,0x80,0xFC,0x00,0x49,0x00, +0x54,0x62,0x50,0x30,0x04,0x80,0x84,0x20,0x84,0x40,0x38,0x40,0x09,0x11,0x8C,0x41, +0x88,0x24,0x5A,0x28,0x12,0xFC,0x50,0x00,0x00,0x24,0x4C,0x01,0xFF,0xF7,0x44,0xF0, +0x02,0x40,0x40,0x10,0xBC,0x36,0x3C,0xF7,0xF6,0x56,0x8A,0x2F,0x50,0xF0,0x80,0x4F, +0x5C,0xF7,0x80,0x9F,0xE8,0x09,0x3C,0x0D,0xFB,0x37,0x58,0x00,0x00,0x40,0x3C,0x0F, +0xFB,0x37,0x84,0x01,0xFC,0x80,0x84,0x00,0xFC,0x80,0x00,0x00,0xFC,0x22,0x2E,0x67, +0xED,0x43,0x80,0xE0,0x84,0x00,0x10,0x0F,0x80,0x0F,0xCE,0x0C,0x84,0x04,0x49,0x00, +0x5F,0x60,0x5A,0x08,0x01,0x08,0x84,0x04,0x80,0x26,0x49,0x00,0x5F,0x3F,0x3E,0x67, +0xED,0x42,0x50,0x0F,0x80,0x0F,0x49,0xFF,0xFE,0x14,0x80,0xC0,0x2E,0x07,0xED,0x43, +0xE6,0x05,0x4E,0xF2,0x00,0xC8,0x44,0xF0,0x27,0xB4,0x38,0x07,0x80,0x00,0x40,0xF0, +0x3C,0x00,0xDD,0x0F,0x06,0x94,0xE0,0xC6,0xD8,0x00,0x49,0x00,0x02,0x5C,0x5A,0x68, +0x01,0x37,0x49,0x00,0x02,0xCC,0x44,0x70,0x03,0xE8,0x44,0x30,0x07,0xFF,0x44,0x20, +0x37,0xC1,0x80,0x83,0x80,0xA6,0x44,0x02,0x00,0x08,0x44,0x10,0x1A,0x69,0xB6,0xFF, +0x49,0x00,0x02,0xC5,0x84,0x08,0x44,0x10,0x0B,0xB8,0x49,0x00,0x5F,0x01,0x84,0x09, +0x80,0x27,0x49,0x00,0x5E,0xFD,0x84,0x0A,0x44,0x10,0x13,0x88,0x49,0x00,0x5E,0xF8, +0x84,0x08,0x80,0x26,0x49,0x00,0x5F,0x02,0x84,0x09,0x80,0x26,0x49,0x00,0x5E,0xFE, +0x84,0x0A,0x80,0x26,0x49,0x00,0x5E,0xFA,0x3C,0x07,0xF6,0x72,0x3C,0x17,0xF6,0x7C, +0x49,0x00,0x02,0xC6,0x3E,0x67,0xED,0x43,0x48,0x00,0x00,0x85,0x5A,0x60,0x02,0x04, +0x48,0x00,0x00,0x81,0x84,0x0A,0x44,0x10,0x13,0x88,0x49,0x00,0x5E,0xD9,0x84,0x0A, +0x84,0x21,0x49,0x00,0x5E,0xE3,0xD5,0x0F,0x84,0x0A,0x49,0x00,0x5E,0xFA,0x5A,0x08, +0x01,0x04,0x84,0x04,0xD5,0x09,0xCE,0x05,0x84,0x02,0x3E,0x07,0xED,0x43,0xD5,0x6B, +0x5A,0x68,0x02,0x06,0x84,0x03,0x3E,0x07,0xED,0x43,0xD5,0x64,0x3C,0x07,0xF6,0x72, +0x3C,0x17,0xF6,0x7C,0x49,0x00,0x02,0x9C,0xD5,0x5D,0x84,0x0A,0x49,0x00,0x5E,0xE1, +0x5A,0x00,0x01,0xE9,0xCE,0x57,0x49,0xFF,0xFF,0x2E,0xD5,0x54,0x49,0xFF,0xFF,0x48, +0xC0,0xFA,0xD5,0xFA,0x49,0x00,0x02,0x78,0xC0,0x27,0x84,0x09,0x49,0x00,0x5E,0xD1, +0x80,0xC0,0xC0,0x03,0x84,0xC0,0xD5,0x33,0x49,0xFF,0xFE,0xC6,0x5A,0x08,0x01,0x05, +0xAF,0xB8,0x80,0xC0,0xD5,0x2C,0x84,0x04,0x44,0x10,0x00,0x96,0x49,0x00,0x5E,0x98, +0x84,0x04,0x84,0x21,0x49,0x00,0x5E,0xA2,0x84,0x09,0x80,0x26,0x49,0x00,0x5E,0x9E, +0x84,0x08,0x80,0x26,0x49,0x00,0x5E,0x9A,0x84,0x0A,0x80,0x26,0x49,0x00,0x5E,0x96, +0x3E,0x67,0xED,0x43,0xD5,0x28,0x84,0x08,0x49,0x00,0x5E,0xAB,0xC8,0xDC,0x80,0x07, +0x49,0x00,0x03,0xF9,0x8E,0x01,0x5C,0x60,0x00,0x01,0x2E,0x07,0xED,0x3B,0xC0,0x07, +0x80,0x07,0x49,0x00,0x01,0x9D,0xC0,0xCF,0x84,0x0E,0xAE,0x38,0x80,0x07,0x49,0x00, +0x08,0x43,0x44,0x12,0x3A,0x6C,0xFA,0x58,0x44,0x02,0x3A,0x10,0x49,0x00,0x01,0xEC, +0x3E,0x07,0xEC,0x9B,0x49,0x00,0x02,0x15,0x3E,0x07,0xEC,0x99,0x49,0xFF,0xFE,0xDB, +0xD5,0x02,0x84,0xC0,0x80,0x06,0xFC,0xA2,0xFC,0x00,0x84,0x40,0x44,0x52,0x11,0xB4, +0x44,0x40,0x00,0x40,0x2E,0x37,0xED,0x6C,0xE2,0x43,0xE8,0x0D,0x38,0x32,0x88,0x00, +0x88,0x61,0x50,0x31,0x80,0x40,0x40,0x31,0x90,0xD6,0x38,0x60,0x08,0x08,0x8C,0x41, +0x96,0x90,0xD5,0xF1,0xFC,0x80,0x2E,0x17,0xED,0x6C,0x44,0x22,0x11,0xB4,0x38,0x01, +0x04,0x08,0x9C,0x09,0x96,0x00,0x5C,0xF0,0x00,0x27,0x3E,0x07,0xED,0x6C,0xE8,0x0E, +0x44,0x12,0x12,0xD4,0x3C,0x23,0xF6,0x5A,0x38,0x20,0x81,0x09,0x44,0x12,0x12,0x84, +0x3C,0x23,0xF6,0x67,0x38,0x20,0x81,0x09,0xDD,0x9E,0x44,0x00,0x7F,0xFF,0x3C,0x0B, +0xF7,0x5D,0x3C,0x0B,0xF7,0x35,0xDD,0x9E,0xFC,0x00,0x44,0x50,0xF1,0x08,0x84,0x60, +0x96,0x98,0x0A,0x62,0x80,0x01,0x5A,0x20,0x10,0x07,0xE2,0x26,0xA5,0x28,0xE9,0x19, +0x81,0xE4,0xD5,0x04,0xE2,0x26,0xE9,0x1B,0x85,0xFF,0xE2,0x2F,0xE8,0x12,0x5A,0x08, +0x01,0x06,0x52,0x01,0x80,0x40,0x96,0x2F,0xFC,0x80,0x5A,0x08,0x02,0x05,0x50,0x01, +0x00,0x20,0xD5,0x05,0x5A,0x08,0x03,0x0A,0x52,0x01,0x00,0x20,0x96,0x00,0xFC,0x80, +0x8C,0x61,0x5A,0x38,0x11,0xDF,0xD5,0x03,0x80,0x02,0xFC,0x80,0x44,0x00,0x00,0xFF, +0xFC,0x80,0x3C,0x57,0xEF,0x35,0x3C,0x27,0xEF,0x34,0xD2,0x08,0x44,0x10,0x07,0xD0, +0xFE,0x44,0x9A,0x2A,0x40,0x00,0x80,0x16,0xDD,0x9E,0x84,0x00,0xDD,0x9E,0xC9,0x0D, +0x3C,0x57,0xEF,0x33,0x3C,0x37,0xEF,0x32,0xD3,0x0E,0x44,0x20,0x07,0xD0,0xFE,0x84, +0x9A,0x2B,0x40,0x01,0x00,0x16,0xDD,0x9E,0x5A,0x18,0x01,0x08,0xFC,0x00,0x49,0xFF, +0xFF,0xE2,0xFC,0x80,0x80,0x01,0xDD,0x9E,0x84,0x00,0xDD,0x9E,0x94,0x4E,0xE6,0x69, +0x88,0x41,0x84,0x20,0xE8,0x0C,0xCB,0x04,0x44,0x10,0x00,0x64,0xD5,0x08,0x8C,0x61, +0x44,0x10,0xF1,0x04,0x90,0x61,0x88,0x61,0x00,0x11,0xFF,0xFF,0x38,0x10,0x09,0x09, +0xDD,0x9E,0xFC,0x40,0xEE,0xB0,0xF1,0x83,0x94,0x41,0xE0,0x22,0xF0,0x82,0xE9,0x07, +0x40,0x10,0x88,0x36,0xC1,0x05,0x8C,0x21,0x96,0x48,0xD5,0x02,0x84,0x21,0x42,0xF1, +0x04,0x24,0x5E,0xF7,0x80,0x41,0xE9,0x03,0x8E,0x21,0x96,0x48,0x42,0x00,0x88,0x24, +0x96,0x00,0xF0,0x81,0xF0,0x02,0x52,0x90,0x00,0x02,0xF0,0x01,0x88,0x09,0x54,0x90, +0x00,0xFF,0x84,0x00,0x80,0xA0,0xD2,0x11,0xB1,0x84,0x84,0x80,0x99,0xF0,0x97,0xA0, +0xE2,0xC1,0xE8,0x07,0x38,0x61,0x94,0x00,0x38,0x63,0x90,0x08,0x8C,0x81,0xD5,0xF8, +0x8C,0xA1,0x97,0x68,0x88,0x01,0xD5,0xF0,0x84,0xC0,0xF0,0x02,0x4C,0x60,0x00,0x79, +0xB0,0x14,0x83,0x80,0x80,0xE0,0x85,0x00,0x54,0xA4,0x00,0xFF,0xE3,0x49,0xE8,0x62, +0xF0,0x03,0xCE,0x11,0xA6,0xC0,0xB0,0x04,0x50,0x31,0x80,0x40,0x38,0x00,0x20,0x00, +0x8A,0x60,0x44,0x00,0x00,0x40,0x40,0x01,0x80,0x76,0x96,0xD8,0x5C,0xF1,0x80,0x21, +0xE8,0x15,0xD5,0x18,0x38,0x30,0x18,0x00,0xB0,0x44,0x40,0x04,0x18,0x00,0x88,0x01, +0x50,0x31,0x80,0x40,0x00,0x00,0x7F,0xFF,0x8A,0x60,0x44,0x00,0x00,0x40,0x40,0x01, +0x80,0x76,0x96,0xD8,0x5C,0xF1,0x80,0x21,0xE9,0x12,0x52,0x31,0x80,0x40,0x96,0xD8, +0xCE,0x0E,0xB0,0x14,0x84,0x20,0x80,0x4A,0x49,0xFF,0xFF,0x82,0x4E,0xA2,0x00,0x30, +0xA4,0x78,0x02,0x03,0xFF,0xFF,0x88,0x01,0xAC,0x38,0xD5,0x29,0xB0,0x14,0x5A,0x68, +0x01,0x0D,0x80,0x26,0x80,0x4A,0x49,0xFF,0xFF,0x73,0x4E,0xA2,0x00,0x21,0x02,0x03, +0x80,0x3F,0x02,0x13,0xFF,0xFF,0xD5,0x12,0x84,0x21,0x80,0x4A,0x49,0xFF,0xFF,0x68, +0x4E,0xA3,0x00,0x0A,0x02,0x1F,0x80,0x68,0x02,0x0F,0x80,0x28,0x88,0x01,0x12,0x0F, +0x80,0x68,0xD5,0x0D,0x02,0x03,0x80,0x3F,0xA4,0x78,0xE2,0x20,0x40,0x10,0x3C,0x1B, +0x02,0x03,0x80,0x40,0x81,0xE1,0x88,0x0F,0x12,0x03,0x80,0x40,0x8D,0x01,0x8C,0xE2, +0xD5,0x9C,0x84,0xA0,0xC6,0x0A,0x4C,0x54,0x80,0x09,0x02,0x0E,0x00,0x40,0x8C,0xA1, +0x1A,0x0E,0x00,0x01,0x97,0x68,0xD5,0xF8,0x8C,0xC1,0x97,0xB0,0xD5,0x87,0x5A,0x68, +0x01,0x04,0x8F,0x21,0xD5,0x03,0x50,0x94,0x80,0x3F,0xB0,0x14,0xF1,0x01,0x38,0x00, +0x25,0x01,0x40,0x00,0x04,0x16,0x96,0x00,0xED,0x50,0xFC,0xC0,0xFC,0x00,0x4E,0x17, +0x00,0x0E,0x4E,0x05,0x00,0x07,0x44,0x20,0x03,0xE8,0xFE,0x84,0x84,0x01,0xD5,0x0D, +0x44,0x2F,0xFC,0x18,0xFE,0x84,0x84,0x04,0xD5,0x08,0xC1,0x11,0x4E,0x05,0x00,0x0B, +0x44,0x2F,0xFC,0x18,0xFE,0x84,0x84,0x02,0x40,0x11,0x04,0x36,0x49,0xFF,0xFE,0xC6, +0xFC,0x80,0x44,0x20,0x03,0xE8,0xFE,0x84,0x84,0x03,0xD5,0xF7,0xC0,0x07,0x4E,0x06, +0x00,0x04,0xFA,0x00,0xFC,0x80,0x44,0x00,0x00,0x30,0xFC,0x80,0x80,0x20,0x2E,0x07, +0xED,0x3A,0xC8,0x0E,0x2E,0x27,0xED,0x39,0xCA,0x0C,0x2E,0x07,0xED,0x3D,0xC0,0x09, +0x2E,0x07,0xED,0x3C,0xC0,0x06,0xA6,0x08,0x5C,0x00,0x00,0x03,0xDD,0x9E,0x84,0x00, +0xDD,0x9E,0x84,0x00,0x3E,0x07,0xED,0x3B,0x3E,0x07,0xED,0x3A,0x3E,0x07,0xED,0x39, +0xDD,0x9E,0xFC,0x00,0x84,0x00,0x3E,0x07,0xEC,0x9B,0x3E,0x07,0xEC,0x99,0x84,0x00, +0xFA,0xD8,0x3C,0x0B,0xF6,0x5B,0x3C,0x0B,0xF6,0x61,0x3C,0x0B,0xF6,0x62,0x3C,0x0B, +0xF6,0x5C,0x3C,0x0B,0xF6,0x58,0x3C,0x0B,0xF6,0x68,0x3C,0x0B,0xF6,0x5E,0x3C,0x0B, +0xF6,0x60,0x3C,0x0B,0xF6,0x5D,0x3C,0x0B,0xF6,0x65,0x3C,0x0B,0xF6,0x5F,0x3C,0x0B, +0xF6,0x66,0x3C,0x0B,0xF6,0x63,0x3C,0x0B,0xF6,0x59,0x84,0x1F,0x80,0x46,0x3E,0x07, +0xEC,0x9A,0x84,0x20,0x44,0x02,0x3A,0x10,0x49,0x00,0x61,0xEA,0x80,0x46,0x84,0x20, +0x84,0xC4,0x44,0x02,0x3A,0x6C,0x49,0x00,0x61,0xE3,0x80,0x46,0x84,0x20,0x44,0x02, +0x11,0x6C,0x49,0x00,0x61,0xDD,0x84,0x20,0x80,0x46,0x44,0x02,0x11,0x74,0x49,0x00, +0x61,0xD7,0xFC,0x80,0xFC,0x40,0x5C,0xF1,0x00,0x29,0xE8,0x03,0x80,0xA2,0xD5,0x02, +0xFA,0xB8,0x84,0x60,0x44,0x92,0x12,0x34,0x44,0xA2,0x11,0xE4,0x80,0xC3,0xE0,0x65, +0xE8,0x12,0x95,0x19,0x40,0x72,0x24,0x00,0x88,0x8A,0x22,0x83,0x80,0x00,0x38,0x80, +0x0D,0x09,0x22,0x82,0x00,0x00,0x38,0x80,0x8D,0x09,0x8C,0x61,0xAD,0xB8,0xAD,0xA0, +0x96,0xD8,0xD5,0xEE,0x2E,0x17,0xED,0x70,0x5C,0xF0,0x80,0x29,0x80,0x01,0xE9,0x02, +0xFA,0x18,0x96,0x40,0xE2,0x41,0x40,0x01,0x3C,0x1B,0x96,0x00,0xFC,0xC0,0x84,0x20, +0x2E,0x07,0xED,0x71,0x3E,0x17,0xED,0x71,0xDD,0x9E,0x84,0x00,0x3C,0x0B,0xF7,0x5E, +0x3C,0x0B,0xF6,0xBD,0x3E,0x07,0xEC,0x98,0xDD,0x9E,0x3C,0x0F,0xFB,0x45,0x44,0x02, +0x3A,0x60,0xAC,0x40,0x44,0x10,0x03,0xE8,0xAC,0x81,0xAC,0xC3,0xAD,0x04,0xAF,0x44, +0xAC,0x45,0xDD,0x9E,0x3C,0xF7,0xEF,0x32,0x3C,0x07,0xEF,0x33,0x8A,0x0F,0x5E,0xF0, +0x03,0x20,0xE8,0x0B,0x3C,0x07,0xEF,0x35,0x3C,0x17,0xEF,0x34,0x8A,0x01,0x5E,0xF0, +0x03,0x20,0x54,0x07,0x80,0xFF,0xDD,0x9E,0x84,0x00,0xDD,0x9E,0xFC,0x41,0x3C,0x23, +0xF6,0xA0,0x84,0x61,0x3E,0x37,0xED,0x72,0x5A,0x28,0x02,0x6C,0x3C,0x4D,0xFB,0x3D, +0x3C,0x5D,0xFB,0x3B,0x3C,0x7D,0xFB,0x3A,0x3C,0x6D,0xFB,0x3C,0x3C,0x23,0xF7,0x5E, +0x3E,0x37,0xED,0x3B,0x9A,0xCC,0x9B,0x2C,0x40,0x90,0x1C,0x01,0xFE,0xDC,0x9B,0xF7, +0xFF,0x24,0x8C,0x41,0x42,0x34,0xA4,0x73,0x42,0x43,0x9C,0x73,0x96,0x91,0xE0,0x83, +0x3C,0x2B,0xF7,0x5E,0xE8,0x07,0x3C,0x0F,0xFB,0x3C,0x3C,0x1F,0xFB,0x3B,0x96,0x33, +0x96,0x6B,0x3C,0x4D,0xFB,0x3C,0x3C,0x3D,0xFB,0x3B,0x5A,0x28,0x01,0x1D,0x3C,0x23, +0xF6,0xBD,0x8E,0x41,0x4E,0x24,0x00,0x03,0xFE,0x92,0xE4,0x46,0xE9,0x04,0x84,0x41, +0x3E,0x27,0xED,0x39,0x9A,0x84,0x3C,0x2F,0xFB,0x3F,0x9A,0x8B,0x3C,0x2F,0xFB,0x38, +0x84,0x41,0x3E,0x27,0xED,0x3D,0x3E,0x27,0xED,0x3C,0x3C,0x4B,0xF6,0x5E,0x3C,0x3B, +0xF6,0x60,0xD5,0x23,0x3C,0x6D,0xFB,0x3F,0x9B,0x44,0x8A,0xA6,0x44,0x20,0x03,0xE8, +0x4E,0x54,0x00,0x04,0x9B,0x60,0x88,0xA6,0xE0,0x45,0xE8,0x04,0x84,0x40,0x3E,0x27, +0xED,0x3D,0x3C,0x6D,0xFB,0x38,0x9B,0x4B,0x8A,0xA6,0x44,0x20,0x03,0xE8,0x4E,0x54, +0x00,0x04,0x9B,0x59,0x88,0xA6,0xE0,0x45,0xE8,0x04,0x84,0x40,0x3E,0x27,0xED,0x3C, +0x3C,0x4B,0xF6,0x5D,0x3C,0x3B,0xF6,0x65,0x84,0x40,0x3C,0x2B,0xF6,0xA4,0xD5,0x19, +0x2E,0x37,0xED,0x3B,0x5A,0x38,0x01,0x13,0x5A,0x28,0x01,0x11,0x3C,0x03,0xF6,0xA4, +0x8C,0x01,0x96,0x01,0xE6,0x06,0x3C,0x0B,0xF6,0xA4,0xE9,0x03,0x3E,0x27,0xED,0x3A, +0x84,0x00,0x3C,0x0B,0xF7,0x5E,0x48,0x00,0x01,0x15,0x84,0x40,0x3C,0x2B,0xF7,0x5E, +0x52,0x30,0x1A,0x69,0x3C,0x0F,0xFB,0x3A,0x3C,0x03,0xF6,0xBD,0x52,0x20,0xB7,0xC1, +0x8C,0x01,0x96,0xDB,0x96,0x93,0x96,0x01,0x3C,0x1F,0xFB,0x3D,0x3C,0x3B,0xF6,0x5A, +0x3C,0x2B,0xF6,0x67,0x3C,0x0B,0xF6,0xBD,0x5A,0x08,0x01,0x46,0x84,0x20,0x3C,0x3B, +0xEF,0x32,0x3C,0x3B,0xEF,0x33,0x3C,0x2B,0xEF,0x34,0x3C,0x2B,0xEF,0x35,0x3C,0x3B, +0xEF,0x36,0x3C,0x2B,0xEF,0x37,0x3C,0x1F,0xF7,0x9D,0x3C,0x1F,0xF7,0x9E,0x3E,0x17, +0xED,0x6C,0x3E,0x17,0xED,0x73,0x3E,0x17,0xEC,0x98,0x3C,0x3B,0xF6,0x64,0x3C,0x2B, +0xF6,0x57,0x3C,0x3B,0xF6,0xBC,0x3C,0x2B,0xF6,0xBB,0x44,0x72,0x12,0x34,0x80,0x01, +0x44,0x62,0x11,0xE4,0x44,0x52,0x12,0xD4,0x44,0x42,0x12,0x84,0x38,0x03,0x85,0x09, +0x38,0x03,0x05,0x09,0x38,0x02,0x85,0x09,0x38,0x02,0x05,0x09,0x8C,0x21,0x5A,0x18, +0x28,0xF7,0x84,0x01,0x3C,0x3B,0xF6,0xE6,0x3C,0x2B,0xF6,0xBE,0x3C,0x3B,0xF6,0x62, +0x3C,0x2B,0xF6,0x5C,0x3C,0x3B,0xF7,0x36,0x3C,0x2B,0xF7,0x0E,0x3E,0x07,0xED,0x70, +0x48,0x00,0x00,0xB8,0x2E,0x77,0xED,0x6C,0x3C,0x3B,0xF6,0x58,0xE6,0xFE,0x3C,0x2B, +0xF6,0x68,0x4E,0xF2,0x00,0xA3,0x3C,0xA7,0xF6,0x57,0x3C,0x97,0xF6,0x64,0x40,0x01, +0x28,0x01,0x40,0x11,0xA4,0x01,0x42,0xF0,0x00,0x24,0x42,0xF0,0x84,0x73,0x44,0x41, +0xDE,0x84,0xE0,0x8F,0x4E,0xF2,0x00,0x9E,0x2E,0x47,0xED,0x70,0x5C,0xF2,0x00,0x27, +0xE8,0x0A,0x44,0x52,0x12,0x34,0x38,0x32,0x91,0x09,0x44,0x52,0x11,0xE4,0x38,0x22, +0x91,0x09,0xD5,0x07,0x44,0x50,0x7F,0xFF,0x3C,0x5B,0xF7,0x0D,0x3C,0x5B,0xF6,0xE5, +0x3C,0xF7,0xEF,0x32,0x8C,0x81,0x97,0xA0,0xE0,0x6F,0x3E,0x67,0xED,0x70,0xE8,0x03, +0x3C,0x3B,0xEF,0x32,0x3C,0x47,0xEF,0x33,0xE0,0x83,0xE8,0x03,0x3C,0x3B,0xEF,0x33, +0x3C,0xF7,0xEF,0x34,0xE0,0x4F,0xE8,0x03,0x3C,0x2B,0xEF,0x34,0x3C,0x37,0xEF,0x35, +0xE0,0x62,0xE8,0x03,0x3C,0x2B,0xEF,0x35,0x80,0x41,0x4E,0x14,0x00,0x03,0xFE,0x8A, +0x3C,0x3D,0xF7,0x9D,0x88,0x43,0x3C,0x2F,0xF7,0x9D,0x80,0x40,0x4E,0x04,0x00,0x03, +0xFE,0x82,0x3C,0x3D,0xF7,0x9E,0x88,0x43,0x3C,0x2F,0xF7,0x9E,0x49,0xFF,0xFD,0xE0, +0x81,0x00,0x3E,0x07,0xED,0x75,0x5A,0x60,0x02,0x3E,0xE6,0xC3,0xE9,0x3D,0x2E,0x67, +0xED,0x74,0x44,0xF0,0x00,0x40,0x50,0x63,0x00,0x40,0x8A,0xC0,0x40,0xF3,0x3C,0xD6, +0x96,0xF0,0xE6,0x64,0xE9,0x12,0x96,0x30,0x5E,0xF0,0x00,0x3D,0xE8,0x0E,0x3C,0x27, +0xF6,0xBB,0x3C,0x07,0xF6,0xBC,0x8A,0x4A,0x8A,0x09,0xFE,0x94,0x42,0x20,0x00,0x73, +0x44,0x01,0xDE,0x84,0xE0,0x02,0xE9,0x02,0xCF,0x1F,0x3C,0x07,0xF6,0xBB,0x3C,0x17, +0xF6,0xBC,0x40,0x05,0x00,0x01,0x40,0x14,0x84,0x01,0xF3,0x81,0x49,0xFF,0xFD,0xB0, +0x49,0xFF,0xFC,0x6B,0xF3,0x01,0xE6,0x68,0xE9,0x05,0x97,0xB0,0x5E,0xF3,0x00,0x39, +0xE9,0x1A,0x3C,0x03,0xF6,0x64,0x3C,0x0B,0xF6,0xBC,0x3C,0x03,0xF6,0x57,0x3C,0x0B, +0xF6,0xBB,0x3E,0x87,0xED,0x74,0x3C,0x03,0xF6,0x5A,0x3C,0x0B,0xF6,0x64,0x3C,0x03, +0xF6,0x67,0x3C,0x0B,0xF6,0x57,0xD5,0x0D,0x5A,0x78,0x1E,0x0C,0x84,0x01,0x3E,0x07, +0xEC,0x98,0xD5,0x07,0x2E,0x07,0xED,0x73,0x8C,0x01,0x3E,0x07,0xED,0x73,0xD5,0xE2, +0xFC,0xC1,0xFC,0x4F,0x51,0xCF,0x80,0x98,0x2E,0x27,0xED,0x6C,0x14,0x0E,0x7F,0xDB, +0x3C,0x17,0xF6,0x64,0x3C,0x07,0xF6,0x57,0xE6,0x5F,0x3C,0x1B,0xEF,0x38,0x3C,0x0B, +0xEF,0x39,0xE8,0x0B,0x3C,0x37,0xF6,0xBB,0x3C,0x27,0xF6,0xBC,0x8A,0x03,0x8A,0x22, +0x49,0xFF,0xFD,0x6E,0x49,0xFF,0xFC,0x29,0x3C,0x0D,0xF7,0x9D,0x3C,0x6D,0xF7,0x9E, +0x84,0x20,0x3C,0x0F,0xF7,0x9F,0x3C,0x6F,0xF7,0xA0,0x49,0xFF,0xFC,0x7A,0x3C,0x0F, +0xF7,0x9D,0x80,0x06,0x49,0xFF,0xFC,0x67,0x3C,0x0F,0xF7,0x9E,0x3C,0xF7,0xEF,0x32, +0x3C,0x07,0xEF,0x33,0x3C,0x14,0x0B,0x01,0x8A,0x0F,0xE0,0x01,0xE8,0x08,0x3C,0xF7, +0xEF,0x34,0x3C,0x07,0xEF,0x35,0x8A,0x0F,0xE0,0x01,0xE9,0x09,0x2E,0x07,0xEC,0x98, +0x5A,0x00,0x01,0x06,0x2E,0x07,0xED,0x6C,0xE6,0x02,0xE8,0x0C,0x84,0x00,0x3E,0x07, +0xEC,0x98,0x84,0x00,0x14,0x0E,0x7F,0xEF,0x84,0x00,0x14,0x0E,0x7F,0xE4,0x48,0x00, +0x03,0xC0,0x3C,0x0D,0xFB,0x45,0x15,0xFE,0x7F,0xDC,0x85,0x40,0xB4,0x00,0xA4,0x00, +0x8C,0x07,0x92,0x03,0x94,0x03,0x41,0xFF,0x80,0x01,0x15,0xFE,0x7F,0xE3,0x41,0xFF, +0x80,0x01,0x84,0x00,0x14,0x0E,0x7F,0xEF,0x84,0x00,0x14,0x0E,0x7F,0xE4,0x84,0x00, +0x15,0xFE,0x7F,0xEA,0x14,0x0E,0x7F,0xE1,0x3C,0x0D,0xFB,0x45,0xB4,0x20,0xA4,0x48, +0xE3,0x41,0x4E,0xF2,0x03,0x98,0x84,0x2C,0x42,0x15,0x04,0x24,0x14,0x1E,0x7F,0xED, +0xA0,0x41,0x04,0x0E,0x7F,0xED,0x50,0x2E,0x7F,0x80,0x88,0x20,0x00,0x80,0x80,0x05, +0x50,0x04,0x7F,0xFF,0x96,0x00,0x14,0x0E,0x7F,0xE0,0xB4,0x02,0xE6,0x04,0xE8,0x1D, +0xA6,0x8C,0x2E,0x07,0xED,0x6C,0xB4,0x61,0xC2,0x06,0x44,0x12,0x11,0xB4,0x49,0xFF, +0xFC,0x3A,0x80,0x40,0x04,0x0E,0x7F,0xE3,0x38,0x20,0x28,0x08,0x3C,0x0D,0xFB,0x45, +0x2E,0x27,0xED,0x6C,0xA0,0x41,0x04,0x0E,0x7F,0xED,0x88,0x20,0xA6,0x0C,0xB4,0x21, +0xC2,0x6D,0x44,0x32,0x11,0xB4,0xD5,0x67,0x5A,0x88,0x0A,0x2D,0x84,0xE0,0x81,0x27, +0x80,0xC7,0x50,0x0E,0x7F,0xC0,0x96,0x72,0x49,0xFF,0xFB,0x80,0x3C,0x1D,0xFB,0x45, +0x04,0x2E,0x7F,0xED,0x2E,0x07,0xED,0x6C,0xA0,0x49,0x88,0x22,0xA6,0x8C,0xB4,0x61, +0xC2,0x0A,0x50,0x1E,0x7F,0xC0,0x49,0xFF,0xFC,0x0E,0xE3,0x20,0x40,0x90,0x3C,0x1B, +0x40,0x73,0x3C,0x1B,0x8C,0xC4,0x97,0xB0,0x5A,0x68,0x40,0xE5,0x04,0x0E,0x7F,0xE3, +0x5C,0xF4,0x80,0x58,0x38,0x90,0x28,0x08,0xE9,0x46,0x50,0x0E,0x7F,0xC0,0x96,0x7A, +0xD5,0x2B,0x85,0x20,0x80,0xE9,0x84,0xDB,0x50,0x0E,0x7F,0xC0,0x80,0x26,0x49,0xFF, +0xFB,0x55,0x3C,0x1D,0xFB,0x45,0x04,0x2E,0x7F,0xED,0x2E,0x07,0xED,0x6C,0xA0,0x49, +0x88,0x22,0xA6,0x8C,0xB4,0x61,0xC2,0x0A,0x50,0x1E,0x7F,0xC0,0x49,0xFF,0xFB,0xE3, +0xE2,0xE0,0x40,0x70,0x3C,0x1B,0x40,0x93,0x3C,0x1B,0x8C,0xC1,0x97,0xB2,0x5A,0x68, +0x06,0xE5,0x04,0x0E,0x7F,0xE3,0x5C,0xF3,0x80,0x58,0x38,0x70,0x28,0x08,0xE9,0x1B, +0x50,0x0E,0x7F,0xC0,0x80,0x29,0x49,0xFF,0xFB,0x31,0x3C,0x0D,0xFB,0x45,0x2E,0x27, +0xED,0x6C,0xA0,0x41,0x04,0x0E,0x7F,0xED,0x88,0x20,0xA6,0x0C,0xB4,0x21,0xC2,0x06, +0x50,0x3E,0x7F,0xC0,0x49,0xFF,0xFB,0xBF,0x80,0x40,0x04,0x0E,0x7F,0xEA,0x38,0x20, +0x28,0x08,0xD5,0x06,0x04,0x1E,0x7F,0xEA,0x84,0x00,0x38,0x00,0xA8,0x08,0x04,0x0E, +0x7F,0xE3,0x38,0x00,0x28,0x00,0x5C,0xF0,0x00,0x57,0x14,0x0E,0x7F,0xDF,0x4E,0xF3, +0x02,0xE4,0x04,0x0E,0x7F,0xEA,0x38,0x00,0x28,0x00,0x5C,0xF0,0x00,0x52,0x14,0x0E, +0x7F,0xDE,0x4E,0xF3,0x02,0xDA,0x3C,0x07,0xEF,0x36,0x3C,0x97,0xEF,0x37,0x14,0x0E, +0x7F,0xE9,0x3C,0x07,0xEF,0x38,0x3C,0x67,0xEF,0x39,0x14,0x0E,0x7F,0xEC,0x3C,0x07, +0xEF,0x33,0x14,0x0E,0x7F,0xE8,0x3C,0x07,0xEF,0x32,0x14,0x0E,0x7F,0xDD,0x3C,0x07, +0xEF,0x35,0x14,0x0E,0x7F,0xEB,0x3C,0x07,0xEF,0x34,0x14,0x0E,0x7F,0xEE,0x5A,0x88, +0x07,0x0D,0x40,0x03,0x24,0x01,0x4E,0x04,0x00,0x03,0xFE,0x02,0x49,0xFF,0xFB,0x43, +0x5E,0xF0,0x00,0xC8,0x48,0x00,0x00,0x8E,0x04,0x1E,0x7F,0xEC,0x04,0x0E,0x7F,0xE9, +0x8A,0x01,0x50,0x1E,0x7F,0x88,0x14,0x0E,0x7F,0xE2,0xB4,0x01,0x50,0x1E,0x7F,0x94, +0x14,0x0E,0x7F,0xE5,0x4E,0x04,0x00,0x06,0x04,0x0E,0x7F,0xE2,0xFE,0x02,0xB6,0x01, +0x40,0x74,0x98,0x01,0x4E,0x74,0x00,0x03,0xFF,0xFA,0x04,0x1E,0x7F,0xDD,0x04,0x0E, +0x7F,0xE8,0x8A,0x01,0x14,0x0E,0x7F,0xE7,0x04,0x1E,0x7F,0xEE,0x04,0x0E,0x7F,0xEB, +0x8A,0x01,0x14,0x0E,0x7F,0xE6,0x5A,0x88,0x08,0x69,0x04,0x0E,0x7F,0xEB,0x8A,0x09, +0x49,0xFF,0xFB,0x11,0x5E,0xF0,0x06,0x73,0xE9,0x17,0x04,0x1E,0x7F,0xEC,0x04,0x0E, +0x7F,0xE8,0x8A,0x01,0x84,0x20,0x49,0xFF,0xFB,0x14,0x5E,0xF0,0x00,0xC9,0xE9,0x0C, +0x2E,0x07,0xED,0x6C,0x44,0x12,0x11,0xB4,0x88,0x01,0x00,0x00,0x7F,0xFF,0x5C,0xF0, +0x00,0x30,0x4E,0xF2,0x02,0x6A,0x50,0x3E,0x7F,0x94,0xB4,0x23,0x44,0x00,0x00,0x64, +0xFE,0x4C,0x42,0x13,0x9C,0x73,0xFE,0x44,0xA0,0x1A,0xA0,0x99,0xFE,0x04,0x42,0x01, +0x08,0x73,0x95,0xC3,0xE2,0x27,0xE8,0x0A,0x04,0x0E,0x7F,0xEE,0x9A,0x30,0x49,0xFF, +0xFA,0xE2,0x5E,0xF0,0x00,0xC8,0x4E,0xF3,0x02,0x50,0x04,0x1E,0x7F,0xE9,0x04,0x0E, +0x7F,0xE8,0x8A,0x01,0x84,0x20,0x49,0xFF,0xFA,0xE4,0x5E,0xF0,0x02,0x58,0x4E,0xF3, +0x02,0x44,0x2E,0x07,0xED,0x4C,0x8E,0x08,0xE6,0x08,0x4E,0xF2,0x01,0xEF,0x04,0x0E, +0x7F,0xEB,0x9A,0x30,0x4E,0x04,0x00,0x03,0xFE,0x02,0x49,0xFF,0xFA,0xC4,0x5E,0xF0, +0x03,0xE8,0x4E,0xF2,0x01,0xE3,0x04,0x0E,0x7F,0xEC,0x04,0x1E,0x7F,0xE8,0x8A,0x01, +0x4E,0x04,0x00,0x03,0xFE,0x02,0x84,0x20,0x49,0xFF,0xFA,0xC3,0x5E,0xF0,0x01,0xF4, +0x4E,0xF3,0x02,0x23,0x48,0x00,0x01,0xD2,0x5A,0x80,0x0A,0x04,0x48,0x00,0x00,0xDB, +0x04,0x0E,0x7F,0xEC,0x04,0x1E,0x7F,0xE9,0x9A,0xC1,0x80,0x03,0x4E,0x34,0x00,0x03, +0xFE,0x1A,0x84,0x20,0x14,0x3E,0x7F,0xDA,0x49,0xFF,0xFA,0xAB,0x5E,0xF0,0x05,0x79, +0x14,0x0E,0x7F,0xE0,0x04,0x3E,0x7F,0xDA,0xE8,0x0F,0x40,0x03,0x24,0x01,0x4E,0x04, +0x00,0x03,0xFE,0x02,0x14,0x3E,0x7F,0xDA,0x49,0xFF,0xFA,0x8D,0x5E,0xF0,0x05,0x79, +0x04,0x3E,0x7F,0xDA,0xE9,0x2B,0x04,0x0E,0x7F,0xEB,0x04,0x1E,0x7F,0xEE,0x84,0x4A, +0x88,0x20,0x84,0x02,0x40,0x10,0x80,0x36,0x96,0x09,0x04,0x1E,0x7F,0xE6,0xFE,0x8C, +0xFA,0x2E,0x40,0x21,0x04,0x56,0x96,0x51,0x9A,0x81,0xE0,0x49,0xE8,0x04,0x99,0x01, +0xE1,0x24,0xE9,0x06,0xE0,0x46,0xE8,0x12,0x88,0x20,0xE0,0xC1,0xE8,0x0F,0x04,0x0E, +0x7F,0xE9,0x04,0x1E,0x7F,0xEC,0xE0,0x01,0xE8,0x09,0x80,0x03,0x84,0x20,0x49,0xFF, +0xFA,0x70,0x5E,0xF0,0x01,0x91,0x4E,0xF2,0x01,0xD0,0x50,0x2E,0x7F,0x94,0xB4,0x02, +0x44,0x10,0x00,0x64,0xFE,0x04,0x42,0x03,0x9C,0x73,0xFE,0x0C,0xB6,0x02,0xA0,0x12, +0xA0,0x51,0xFE,0x04,0x42,0x00,0x84,0x73,0xB4,0x22,0x80,0xE0,0x94,0x03,0xE2,0x01, +0xE8,0x1A,0x04,0x0E,0x7F,0xEE,0x9A,0x30,0x49,0xFF,0xFA,0x45,0x5E,0xF0,0x00,0xC8, +0xE8,0x12,0x2E,0x07,0xED,0x4D,0x8E,0x10,0xE6,0x1F,0xE9,0x0D,0x04,0x1E,0x7F,0xDD, +0x04,0x0E,0x7F,0xEC,0x8A,0x01,0x84,0x20,0x49,0xFF,0xFA,0x43,0x5E,0xF0,0x01,0x5F, +0x4E,0xF2,0x01,0xA3,0x2E,0x07,0xED,0x4C,0x50,0xF0,0x7F,0xF8,0x5C,0xF7,0x80,0x31, +0x14,0x0E,0x7F,0xEC,0xE9,0x19,0x04,0x0E,0x7F,0xEB,0x8A,0x09,0x49,0xFF,0xFA,0x23, +0x5E,0xF0,0x06,0x40,0xE8,0x11,0x04,0x0E,0x7F,0xEE,0x40,0x04,0x80,0x01,0x49,0xFF, +0xFA,0x1A,0x5E,0xF0,0x06,0x40,0xE8,0x08,0x84,0x06,0x04,0x1E,0x7F,0xE5,0xFE,0x3C, +0xE2,0x01,0x4E,0xF3,0x01,0x82,0x84,0x0C,0xFF,0xC4,0x04,0x0E,0x7F,0xE5,0xE2,0xE0, +0xE8,0x15,0x2E,0x07,0xED,0x4D,0xE6,0x10,0xE8,0x11,0x04,0x0E,0x7F,0xE2,0x84,0x20, +0x49,0xFF,0xFA,0x0F,0x5E,0xF0,0x00,0x65,0xE9,0x09,0x40,0x03,0x24,0x01,0x49,0xFF, +0xF9,0xFA,0x5E,0xF0,0x00,0x65,0x4E,0xF2,0x01,0x68,0x04,0x0E,0x7F,0xEC,0x50,0x00, +0x7F,0xDB,0xE6,0x12,0xE8,0x12,0x2E,0x07,0xED,0x6C,0x44,0x12,0x11,0xB4,0x88,0x01, +0x00,0x00,0x7F,0xFF,0x50,0x00,0x7F,0xDB,0xE6,0x12,0xE8,0x07,0x04,0x0E,0x7F,0xE0, +0x5E,0xF0,0x03,0xE9,0x4E,0xF2,0x01,0x51,0x04,0x1E,0x7F,0xE9,0x04,0x0E,0x7F,0xE8, +0x8A,0x01,0x84,0x20,0x49,0xFF,0xF9,0xE5,0x44,0x10,0x05,0xDC,0xE0,0x20,0x48,0x00, +0x00,0xF6,0x50,0x04,0x7F,0xFD,0xE6,0x02,0xE8,0x21,0x3C,0x10,0x0A,0xFD,0x44,0x00, +0x01,0x2C,0xFE,0x0C,0x3C,0x10,0x0A,0xFC,0x40,0x00,0x04,0x16,0x04,0x1E,0x7F,0xE6, +0xE0,0x01,0x4E,0xF3,0x01,0x32,0x3C,0x0D,0xF6,0xE7,0x3C,0x10,0x0A,0xFF,0x44,0xF0, +0x00,0x64,0xA6,0x00,0xFE,0x0C,0x40,0xF0,0x3D,0xF6,0x3C,0x0D,0xF7,0x9F,0xE0,0x0F, +0x4E,0xF3,0x01,0x23,0x3C,0x0D,0xF7,0x9D,0xD5,0x5D,0x04,0x0E,0x7F,0xE0,0xE6,0x02, +0xE8,0x5C,0x2E,0x17,0xED,0x6C,0x2E,0x07,0xED,0x4C,0x5A,0x10,0x01,0x10,0x2E,0x37, +0xED,0x4D,0x9A,0x83,0x4E,0x24,0x00,0x03,0xFE,0x92,0x88,0x03,0x5E,0xF1,0x00,0x20, +0x90,0x01,0xE9,0x03,0x50,0x00,0x00,0x20,0x96,0x2F,0x84,0x60,0x50,0x00,0x00,0x40, +0x44,0x52,0x11,0xB4,0x44,0x40,0x00,0x40,0x96,0x98,0xE2,0x41,0xE8,0x12,0x38,0x22, +0x8C,0x00,0x9A,0x82,0x40,0x61,0x10,0x56,0x96,0x90,0x5C,0xF1,0x00,0x21,0xE9,0x04, +0x52,0x21,0x00,0x40,0x96,0x90,0xE6,0x45,0x8C,0x61,0xE9,0xEF,0x48,0x00,0x00,0xED, +0x04,0x1E,0x7F,0xE7,0x4E,0x14,0x00,0x03,0xFE,0x4A,0x04,0x7E,0x7F,0xE6,0x4E,0x74, +0x00,0x03,0xFF,0xFA,0x40,0x03,0x88,0x0A,0x50,0x00,0x01,0x2C,0xE0,0x01,0x4E,0xF3, +0x00,0xDC,0x3C,0x0D,0xF6,0xE6,0x44,0xF0,0x00,0x64,0xA6,0x40,0x3C,0x00,0x0B,0x00, +0xFE,0x0C,0x3C,0x10,0x0A,0xFD,0x40,0x00,0x3C,0x17,0xFE,0x0C,0x3C,0x10,0x0A,0xFC, +0x40,0xF0,0x05,0xF6,0x3C,0x0D,0xF7,0xA0,0xE0,0x0F,0x4E,0xF3,0x00,0xC6,0x3C,0x0D, +0xF7,0x9E,0x5E,0xF0,0x08,0x35,0xD5,0x68,0x5A,0x88,0x09,0x22,0x2E,0x0F,0xED,0x73, +0xE4,0x04,0x4E,0xF2,0x00,0xBA,0x04,0x0E,0x7F,0xEC,0x04,0x1E,0x7F,0xE9,0x8A,0x01, +0x5E,0xF0,0x00,0x64,0x4E,0xF3,0x00,0xB1,0x2E,0x07,0xED,0x6C,0xE6,0x06,0xE9,0x5D, +0x2E,0x17,0xED,0x4D,0x8E,0x30,0xE6,0x3F,0xE8,0x58,0x44,0x12,0x11,0xB4,0x88,0x01, +0x00,0x00,0x7F,0xFE,0x8E,0x10,0xE6,0x1F,0x48,0xFF,0xFE,0x7C,0x5A,0x88,0x05,0x10, +0x04,0x0E,0x7F,0xEE,0x9A,0x30,0x49,0xFF,0xF9,0x26,0x5E,0xF0,0x05,0x15,0xE9,0x45, +0x2E,0x07,0xED,0x4C,0x8E,0x08,0xE6,0x0F,0x48,0xFF,0xFE,0x6C,0x5A,0x88,0x06,0x3E, +0x04,0x0E,0x7F,0xEB,0x8A,0x09,0x49,0xFF,0xF9,0x16,0x5E,0xF0,0x04,0xE3,0xE9,0x0F, +0x04,0x0E,0x7F,0xEE,0x9A,0x30,0x49,0xFF,0xF9,0x0E,0x5E,0xF0,0x01,0xF4,0xE8,0x07, +0x2E,0x07,0xED,0x4C,0x50,0x00,0x7F,0xD8,0xE6,0x0F,0xE9,0x76,0x04,0x0E,0x7F,0xEB, +0x8A,0x06,0x49,0xFF,0xF9,0x00,0x5E,0xF0,0x03,0xE9,0xE9,0x1F,0x04,0x0E,0x7F,0xEE, +0x40,0x04,0x80,0x01,0x49,0xFF,0xF8,0xF7,0x5E,0xF0,0x07,0x08,0xE8,0x16,0x2E,0x07, +0xED,0x6C,0x44,0x12,0x11,0xB4,0x88,0x01,0x00,0x10,0x7F,0xFF,0xE6,0x28,0xE8,0x06, +0x00,0x00,0x7F,0xFE,0xE6,0x08,0xE8,0x58,0xD5,0x08,0xE6,0x37,0xE9,0x55,0x00,0x00, +0x7F,0xFE,0xE6,0x17,0x48,0xFF,0xFE,0x2E,0x85,0xE0,0x3C,0x1D,0xFB,0x45,0x04,0x0E, +0x7F,0xED,0xA1,0x89,0x88,0xC0,0xA6,0x76,0x5A,0x18,0x01,0x34,0x3C,0x3D,0xF7,0x9D, +0xC3,0x30,0x3C,0x4D,0xF7,0x9E,0xC4,0x2D,0xA7,0xF7,0x44,0x13,0x34,0x50,0xFF,0xCC, +0x00,0x53,0x00,0x09,0x00,0x13,0x00,0x08,0x00,0x63,0x00,0x0A,0x44,0x20,0x07,0xD0, +0xFE,0x54,0xFE,0xB4,0x5A,0x88,0x0A,0x0B,0x5A,0xF8,0x01,0x09,0x84,0x09,0xFE,0x44, +0xFE,0x84,0x40,0x10,0xA0,0x37,0x40,0x21,0x20,0x57,0x44,0x60,0x07,0xD0,0x42,0xF1, +0x98,0x24,0xE2,0xEF,0xE9,0x21,0xFA,0x04,0xFE,0xC4,0xE2,0x61,0xE9,0x1D,0x44,0x13, +0x34,0x50,0xFF,0xA4,0xFF,0x4C,0xE2,0xA6,0xE9,0x17,0xFE,0x24,0xE2,0x02,0xE9,0x14, +0x50,0x2E,0x7F,0x78,0xB4,0x22,0xA0,0x11,0x88,0x01,0xA0,0x53,0x90,0x01,0xE0,0x20, +0xE8,0x0B,0x96,0x00,0x50,0x1E,0x7F,0x84,0x14,0x0E,0x7F,0xE1,0xB4,0x01,0x14,0xAE, +0x7F,0xE4,0x14,0x0E,0x7F,0xEF,0x50,0x05,0x00,0x01,0x54,0xA0,0x00,0xFF,0x48,0xFF, +0xFC,0x65,0x00,0x0E,0x7F,0xBC,0x05,0xFE,0x7F,0xDC,0x3E,0x07,0xED,0x71,0x49,0xFF, +0xFA,0x2E,0x04,0x2E,0x7F,0xE4,0x84,0x2C,0x44,0x02,0x00,0x14,0x42,0x01,0x04,0x73, +0xB4,0xA0,0x44,0x02,0x02,0x70,0xD8,0x03,0x84,0x01,0xD5,0x07,0x44,0x02,0x02,0x60, +0xD8,0x03,0x84,0x00,0xD5,0x02,0x84,0x02,0x3E,0x07,0xEC,0x9A,0x04,0x0E,0x7F,0xEF, +0xC8,0x03,0x84,0x02,0xD5,0x11,0x3C,0x0D,0xFB,0x45,0x04,0x2E,0x7F,0xE4,0x84,0x2C, +0xA0,0x01,0x42,0x01,0x04,0x73,0x04,0x1E,0x7F,0xDB,0xA6,0x05,0xAE,0x08,0x8E,0x07, +0xE6,0x02,0x84,0x01,0xE9,0xEF,0x51,0xFE,0x7F,0xE0,0xFC,0xC0,0xFC,0x21,0x44,0x50, +0xF0,0xE0,0x80,0xE2,0x80,0xC3,0xA4,0xA8,0xA4,0xE9,0x22,0x10,0x80,0x00,0x22,0x00, +0x00,0x00,0x9A,0x59,0x9A,0x10,0xB6,0x1F,0xF1,0x81,0xA5,0x2C,0x3A,0x0F,0x84,0x00, +0xA5,0x6D,0x49,0x00,0x25,0x22,0x3A,0x0F,0x84,0x20,0xB4,0x1F,0xAC,0x38,0xF0,0x01, +0xAC,0x30,0xFC,0xA1,0xFC,0x40,0x3C,0x13,0xEF,0x32,0x81,0x20,0x3C,0x03,0xEF,0x33, +0x44,0x72,0x12,0x34,0x8A,0x01,0x3C,0x0B,0xF6,0x5B,0x3C,0x13,0xEF,0x34,0x3C,0x03, +0xEF,0x35,0x44,0x62,0x11,0xE4,0x8A,0x01,0x3C,0x0B,0xF6,0x61,0x44,0x12,0x11,0x2A, +0x44,0x02,0x11,0x1E,0xFD,0x10,0x49,0xFF,0xFF,0xCB,0x80,0x07,0x80,0x26,0x44,0x22, +0x11,0x2C,0x44,0x32,0x11,0x20,0x49,0xFF,0xFF,0xC3,0x2E,0x27,0xED,0x70,0x44,0x32, +0x11,0x38,0x8E,0x41,0x94,0x51,0x98,0x39,0x44,0x22,0x11,0x18,0x88,0x26,0x49,0xFF, +0xFF,0xB7,0x00,0x04,0x80,0x00,0x5A,0x08,0x0E,0x28,0x3C,0x13,0xF6,0x5E,0x3C,0x03, +0x66,0x3C,0x3C,0x23,0xF6,0x60,0x9A,0x41,0x3C,0x1B,0xF6,0x5E,0x3C,0x13,0x66,0x3D, +0x9A,0x8A,0x3C,0x2B,0xF6,0x60,0x3C,0x23,0xF6,0x5D,0x8A,0x02,0x3C,0x0B,0xF6,0x5D, +0x3C,0x03,0xF6,0x65,0x8A,0x20,0x3C,0x1B,0xF6,0x65,0x44,0x02,0x11,0x24,0x44,0x12, +0x11,0x28,0xFD,0x10,0x49,0xFF,0xFF,0x94,0x44,0x02,0x11,0x22,0x44,0x12,0x11,0x32, +0xFD,0x10,0x49,0xFF,0xFF,0x8D,0x85,0x40,0x45,0xC2,0x3A,0x10,0x44,0x82,0x3A,0x6C, +0x40,0x05,0x70,0x00,0x40,0x15,0x20,0x00,0xFD,0x10,0x8D,0x42,0x49,0xFF,0xFF,0x80, +0x5A,0xA8,0x50,0xF8,0x00,0x04,0x80,0x00,0x9E,0x45,0x54,0x90,0x80,0xFF,0xE7,0x22, +0xE9,0x07,0x5A,0x00,0x09,0x06,0x50,0x10,0x7F,0xF5,0xE6,0x23,0xE8,0x75,0x3C,0x27, +0xF6,0xBF,0x3C,0x17,0xF6,0xBE,0x3C,0x33,0xEF,0x34,0xE0,0x41,0x3C,0x23,0xEF,0x35, +0xE8,0x03,0x9A,0x9A,0xD5,0x02,0x8A,0x43,0x3C,0x47,0xF6,0xE7,0x3C,0x37,0xF6,0xE6, +0x96,0x93,0xE0,0x83,0x3C,0x53,0xEF,0x32,0x3C,0x43,0xEF,0x33,0xE8,0x03,0x8A,0xA4, +0xD5,0x02,0x9B,0x65,0xE7,0x22,0x97,0x6B,0x2E,0x47,0xED,0x70,0xE8,0x2B,0x8E,0x81, +0x96,0xD9,0x38,0x03,0x91,0x01,0x84,0xA4,0x8A,0x03,0x96,0x03,0x40,0x50,0x14,0xB6, +0x97,0x69,0x99,0xEB,0x3C,0x7B,0xF6,0x82,0x84,0xE2,0x40,0x00,0x1C,0x16,0x88,0x03, +0x3C,0x0B,0xF6,0x83,0x84,0x03,0x42,0x32,0x80,0x73,0x38,0x03,0x11,0x11,0x88,0x41, +0x88,0x20,0x96,0x93,0x90,0x21,0x3C,0x3B,0xF6,0x84,0x3C,0x2B,0xF6,0x86,0x3C,0x1B, +0xF6,0x87,0x3C,0x2B,0xF6,0x88,0x84,0xC0,0x44,0x92,0x11,0x6C,0x44,0x72,0x11,0x74, +0xD5,0x21,0x54,0x00,0x00,0xFD,0x5A,0x08,0x09,0x10,0x8E,0x81,0x88,0x41,0x38,0x03, +0x91,0x11,0x84,0x82,0x8A,0x03,0x40,0x00,0x10,0x16,0x88,0x60,0x3C,0x3B,0xF6,0x82, +0x3C,0x2B,0xF6,0x86,0xD5,0x2C,0x8E,0x81,0x84,0x02,0x38,0x23,0x11,0x11,0x88,0x65, +0x8A,0x41,0x40,0x21,0x00,0x56,0x88,0x22,0x3C,0x3B,0xF6,0x82,0x3C,0x1B,0xF6,0x86, +0xD5,0x1E,0x40,0x03,0x24,0x00,0x98,0x77,0xFD,0x10,0x8C,0xC2,0x49,0xFF,0xFF,0x00, +0x5A,0x68,0x06,0xF9,0xFC,0xC0,0x5A,0x08,0x0A,0x1A,0x44,0x02,0x02,0xCC,0x9C,0x46, +0x44,0x22,0x11,0x26,0x44,0x32,0x11,0x34,0x49,0xFF,0xFE,0xF2,0x44,0x02,0x02,0xCE, +0x9C,0x42,0x44,0x22,0x11,0x2E,0x44,0x32,0x11,0x1A,0xD5,0x06,0x44,0x02,0x11,0x6C, +0x44,0x12,0x11,0x74,0xFD,0x10,0x49,0xFF,0xFE,0xE3,0xFC,0xC0,0x46,0x27,0xFF,0xFF, +0x84,0x20,0x44,0x52,0x3B,0xC4,0x50,0x21,0x0F,0xFF,0x44,0x32,0x3B,0x98,0x38,0x22, +0x86,0x0A,0x38,0x21,0x86,0x0A,0x8C,0x21,0x44,0x42,0x3B,0xC4,0x5A,0x18,0x0B,0xF9, +0xFC,0x40,0x2E,0x37,0xDE,0x84,0x84,0xA0,0x40,0x91,0x88,0x08,0x81,0x44,0xD3,0x14, +0x40,0x70,0x24,0x00,0x80,0x40,0x4C,0x23,0x80,0x0B,0x38,0x62,0x16,0x02,0xA2,0x51, +0xE0,0xC1,0x40,0x13,0x3C,0x1B,0x38,0x15,0x16,0x0A,0xD5,0xF6,0x8C,0xA1,0x97,0x68, +0x50,0x00,0x00,0x2C,0xD5,0xED,0xFC,0xC0,0x2E,0x27,0xDE,0x84,0x46,0x18,0x00,0x00, +0x84,0x00,0x44,0x42,0x3B,0x6C,0x44,0x52,0x3B,0x40,0xE0,0x02,0xE8,0x0B,0x38,0x32, +0x02,0x02,0xCB,0x06,0x38,0x32,0x82,0x02,0xE0,0x23,0x40,0x11,0xBC,0x1B,0x8C,0x01, +0xD5,0xF5,0x84,0x00,0x44,0x52,0x3B,0x14,0x44,0x42,0x3B,0xC4,0xE0,0x02,0xE8,0x0B, +0x38,0x32,0x82,0x02,0xC3,0x06,0x38,0x32,0x02,0x02,0x8A,0x61,0x38,0x32,0x02,0x0A, +0x8C,0x01,0xD5,0xF5,0x84,0x00,0x44,0x52,0x3B,0x6C,0x44,0x42,0x3B,0x98,0xE0,0x02, +0xE8,0x0B,0x38,0x32,0x82,0x02,0xC3,0x06,0x38,0x32,0x02,0x02,0x88,0x61,0x38,0x32, +0x02,0x0A,0x8C,0x01,0xD5,0xF5,0x84,0x00,0x44,0x52,0x3B,0x6C,0x44,0x42,0x3B,0x40, +0xE0,0x02,0xE8,0x0B,0x38,0x32,0x82,0x02,0xCB,0x06,0x38,0x32,0x02,0x02,0x8A,0x61, +0x38,0x32,0x02,0x0A,0x8C,0x01,0xD5,0xF5,0xDD,0x9E,0xFC,0x40,0x44,0x32,0x3B,0x14, +0x84,0x81,0x38,0x41,0x82,0x0A,0x44,0x32,0x3B,0xF0,0x2E,0x57,0xDE,0x84,0x38,0x11, +0x82,0x0A,0xFA,0x3C,0x42,0x20,0x04,0x73,0x44,0x62,0x3B,0xC4,0x84,0x20,0x44,0x72, +0x3B,0x98,0x44,0x42,0x3B,0x40,0x44,0x92,0x3A,0xBC,0x96,0xC8,0xE2,0x65,0xE8,0x13, +0x38,0xA3,0x02,0x02,0x38,0x33,0x86,0x02,0x88,0x6A,0x38,0xA1,0x06,0x02,0x8A,0x6A, +0x38,0xA2,0x06,0x02,0xE1,0x43,0xE8,0x05,0x38,0x32,0x06,0x0A,0x38,0x04,0x86,0x0A, +0x8C,0x21,0xD5,0xEC,0xFC,0xC0,0xFC,0x48,0x44,0xA2,0x3C,0x1C,0xB6,0x1F,0x2E,0x97, +0xDE,0x84,0x2E,0x57,0xEC,0x9C,0x4C,0x54,0x80,0xE0,0x84,0x20,0xFA,0x5C,0x44,0x02, +0x3B,0x14,0x49,0x00,0x59,0xCD,0x84,0x20,0xFA,0x5C,0x44,0x02,0x3B,0x6C,0x49,0x00, +0x59,0xC7,0x44,0x02,0x3B,0xF0,0x84,0x3F,0xFA,0x5C,0x49,0x00,0x59,0xC1,0x84,0xE0, +0xE0,0xE9,0xE8,0x15,0x38,0x05,0x1E,0x02,0x5A,0x0F,0xFF,0x10,0x44,0x02,0x3B,0xF0, +0x84,0x3E,0x38,0x10,0x1E,0x0A,0x44,0x02,0x3B,0x14,0x84,0x21,0xF7,0x85,0x38,0x10, +0x1E,0x0A,0x80,0xC9,0x80,0x47,0xD5,0x06,0x8C,0xE1,0xD5,0xEB,0x84,0x20,0x80,0xC9, +0x80,0x41,0xFA,0x1C,0xB4,0x7F,0x42,0x31,0x00,0x73,0x84,0xA0,0x45,0xE2,0x3B,0x40, +0x44,0x42,0x3B,0xC4,0x44,0x82,0x3B,0x98,0x44,0xF2,0x3A,0xBC,0x4C,0x54,0x80,0x10, +0x39,0xC2,0x0A,0x02,0x38,0x04,0x16,0x02,0x88,0x1C,0x39,0xC1,0x96,0x02,0x38,0x27, +0x96,0x0A,0x8A,0x1C,0x38,0x0F,0x16,0x0A,0x8C,0xA1,0xD5,0xF1,0x85,0x20,0x44,0x82, +0x3B,0x6C,0xE1,0x21,0xE8,0x39,0xB0,0x05,0x05,0xCF,0x80,0x00,0x38,0x70,0x26,0x02, +0xFA,0x1C,0x43,0xC3,0x80,0x73,0x84,0xC0,0x44,0x42,0x3B,0xC4,0x44,0x52,0x3B,0x98, +0x2E,0x07,0xDE,0x84,0xE0,0xC0,0x4E,0xF2,0x00,0x7D,0x38,0x22,0x1E,0x02,0x38,0x02, +0x9A,0x02,0x94,0xF2,0x88,0x02,0x38,0x2E,0x1A,0x02,0x4C,0x20,0x40,0x1C,0x38,0x04, +0x1A,0x02,0xC8,0x18,0x44,0x02,0x3A,0xE8,0xF5,0x83,0x38,0x00,0x0C,0x02,0xF4,0x82, +0x5A,0x07,0xFF,0x13,0x84,0x41,0x38,0x24,0x0C,0x0A,0x88,0x41,0xF2,0x81,0xB0,0x85, +0x38,0x01,0x06,0x0A,0x80,0x27,0xB4,0x5F,0x49,0xFF,0xFF,0x49,0xF1,0x01,0xF5,0x03, +0xF4,0x02,0x8C,0xC1,0xD5,0xD6,0x2E,0x07,0xDE,0x84,0xE0,0xC0,0xE9,0x37,0x49,0xFF, +0xFE,0xF5,0x84,0x20,0x80,0xC1,0x45,0xC2,0x3B,0x40,0x2E,0x07,0xDE,0x84,0xE0,0xC0, +0xE8,0x2A,0x38,0x04,0x1A,0x02,0x94,0xB2,0xC8,0x24,0x38,0x0E,0x1A,0x02,0xC8,0x21, +0x44,0x02,0x3A,0xE8,0x38,0x00,0x08,0x02,0x5A,0x0F,0xFF,0x07,0x44,0x02,0x3A,0xBC, +0x38,0x70,0x1A,0x02,0xD5,0x1B,0x84,0x61,0x38,0x34,0x08,0x0A,0x44,0x32,0x3B,0x14, +0x38,0x31,0x82,0x02,0xCB,0x0E,0xB0,0xC5,0x50,0x90,0x80,0x01,0x38,0x01,0x86,0x0A, +0x44,0x12,0x3A,0xBC,0x38,0x10,0x88,0x02,0xB4,0x5F,0x49,0xFF,0xFF,0x10,0x80,0x29, +0x8C,0xC1,0xD5,0xD4,0x85,0x20,0x48,0xFF,0xFF,0x8E,0x2E,0x07,0xDE,0x84,0xE0,0xC0, +0xE8,0x1B,0x2E,0x07,0xEC,0x9C,0x44,0x12,0x3B,0xF0,0x8C,0x01,0x3E,0x07,0xEC,0x9C, +0x44,0x02,0x3A,0xE8,0x5A,0x7F,0xFE,0x04,0x48,0xFF,0xFF,0x2B,0x38,0x25,0x1E,0x02, +0x38,0x70,0x1A,0x0A,0x38,0x65,0x1E,0x0A,0x38,0x70,0x9E,0x02,0x80,0xC2,0xD5,0xF3, +0x8D,0x21,0x48,0xFF,0xFF,0x70,0xFC,0xC8,0xFC,0x01,0xF0,0x81,0x84,0x00,0x80,0xC1, +0x3E,0x07,0xEC,0x9C,0x84,0x3F,0xFA,0x5C,0x44,0x02,0x3C,0x1C,0x49,0x00,0x58,0xE8, +0x84,0x3F,0xFA,0x5C,0x44,0x02,0x3A,0xE8,0x49,0x00,0x58,0xE2,0xF0,0x01,0x3E,0x67, +0xDE,0x84,0x49,0xFF,0xFE,0x5D,0xF0,0x01,0x49,0xFF,0xFE,0xFF,0xFC,0x81,0x00,0x00, +0x3A,0x6F,0xAA,0xBC,0xEF,0xEC,0x9E,0x11,0xF0,0x81,0x83,0x81,0x84,0x80,0x85,0x40, +0x4E,0x07,0x00,0x36,0xF0,0x01,0x84,0xC0,0x40,0x80,0x10,0x01,0x4E,0x86,0x00,0x08, +0xD5,0x27,0x8C,0xC1,0x97,0xB0,0xE0,0xC8,0x4E,0xF2,0x00,0x23,0x40,0x93,0x08,0x08, +0x50,0x34,0x80,0x04,0x38,0x0E,0x1A,0x11,0x38,0x1E,0x0C,0x11,0x89,0x3C,0xE0,0x01, +0x40,0x7E,0x0C,0x00,0xE8,0xEF,0x84,0x44,0x80,0x29,0xB0,0x03,0x49,0x00,0x58,0x8A, +0x8C,0xC1,0x80,0x27,0x84,0x44,0x80,0x09,0x49,0x00,0x58,0x84,0x97,0xB0,0x80,0x07, +0xB0,0x43,0x84,0x44,0x49,0x00,0x58,0x7E,0x40,0x03,0x20,0x07,0xC8,0xE0,0x8D,0x41, +0xF0,0x01,0x54,0xA5,0x00,0xFF,0xE1,0x40,0x80,0x8A,0xE9,0xCD,0xEC,0x14,0x3A,0x6F, +0xAA,0x84,0xDD,0x9E,0xC3,0x66,0x3A,0x6F,0xAA,0xBC,0x8E,0x61,0xA7,0x83,0x00,0x90, +0x00,0x02,0x96,0xD8,0x94,0xD9,0x2E,0x76,0xCC,0x7E,0x8C,0x63,0x9D,0x51,0xEF,0xFC, +0x2E,0x06,0xCC,0x7F,0x88,0x43,0xFB,0x4F,0x87,0x80,0x85,0x00,0x00,0x32,0xFF,0xFF, +0x20,0xF2,0x80,0x00,0x88,0x66,0x96,0xDA,0x4E,0x35,0x00,0x24,0x41,0xE1,0x9C,0x07, +0x4F,0xE2,0x00,0x20,0x40,0xF4,0xBC,0x00,0x40,0xF7,0x80,0x10,0x4E,0xF5,0x00,0x1A, +0x41,0xE7,0x80,0x07,0x4F,0xE2,0x00,0x16,0x83,0xC1,0x43,0xE3,0xBC,0x73,0x38,0x3F, +0x0C,0x00,0x54,0xF1,0x80,0x20,0xE8,0x0D,0x54,0xF1,0x80,0x3F,0x5A,0xF0,0x3F,0x24, +0x54,0xF1,0x80,0x1F,0x5A,0xF0,0x1F,0x06,0x4E,0x83,0x00,0x18,0x81,0x43,0x85,0x01, +0x8C,0xA2,0xDA,0xD5,0xE7,0x02,0xE9,0x1E,0xA6,0x60,0x44,0x00,0x00,0x3F,0xE6,0x39, +0xE8,0x08,0x94,0x8A,0x88,0x44,0x8C,0x21,0xAF,0x95,0x10,0x91,0x00,0x04,0xAE,0x60, +0xEC,0x04,0x3A,0x6F,0xAA,0x84,0xDD,0x9E,0x4C,0x35,0x3F,0xEC,0x8D,0x01,0x54,0x84, +0x00,0xFF,0xD5,0xE9,0x51,0xCE,0x00,0x01,0x8C,0xA2,0x55,0xCE,0x00,0xFF,0xDA,0xB7, +0xD5,0xE2,0x80,0x0A,0x4E,0x83,0xFF,0xEE,0xFA,0x0F,0x4F,0xC2,0xFF,0xEB,0xD5,0xDD, +0xFA,0x0F,0xDD,0x9E,0x3A,0x6F,0xAA,0xBC,0xEF,0xD4,0x44,0x00,0xF1,0x2C,0x80,0xC2, +0xF2,0x81,0x81,0x43,0xF4,0x84,0xF5,0x82,0x3A,0x20,0x14,0x00,0x22,0x0F,0x80,0x24, +0xF0,0x85,0x00,0x0F,0x80,0x4C,0xF0,0x83,0xB0,0x06,0x3A,0x20,0x14,0x20,0x4E,0xA2, +0x00,0x23,0x81,0x21,0x2E,0x86,0xCC,0x7E,0xA6,0x72,0xA6,0x33,0x80,0x69,0x42,0x30, +0xA0,0x73,0x38,0x01,0x80,0x00,0x80,0x26,0x96,0x2E,0x8C,0x27,0x84,0xC0,0xC8,0x0E, +0x48,0x00,0x00,0x20,0x00,0x20,0x7F,0xFF,0x80,0x69,0xA6,0x00,0x42,0x31,0x20,0x73, +0x38,0x01,0x80,0x00,0x8C,0x24,0x96,0x2E,0xC0,0x14,0x8C,0xC1,0x97,0xB0,0x80,0x01, +0x4C,0x65,0x7F,0xF2,0xF0,0x04,0xEC,0x2C,0x3A,0x6F,0xAA,0x84,0xDD,0x9E,0xA6,0xBA, +0xA6,0x7B,0x80,0x69,0x42,0x31,0x20,0x73,0x38,0x01,0x84,0x08,0x8C,0xC1,0x97,0xB0, +0xE2,0xCA,0xE8,0xF1,0xF0,0x01,0x41,0xC3,0x08,0x08,0x40,0x70,0x70,0x00,0x80,0x07, +0x80,0x29,0xB0,0x86,0xF3,0x03,0xF4,0x02,0x49,0xFF,0xFF,0x46,0x5A,0x08,0x1F,0xE9, +0xF0,0x04,0xE6,0x0B,0xE8,0xEC,0xF0,0x01,0xF3,0x05,0xF2,0x04,0x38,0x00,0x70,0x11, +0x58,0x11,0x00,0x20,0xE0,0x60,0x8C,0x41,0xE8,0xE2,0xA6,0xFA,0xA6,0x3B,0x80,0x89, +0x42,0x41,0xA0,0x73,0x96,0x90,0xF2,0x84,0x38,0x12,0x00,0x08,0xD5,0xD8,0x92,0x00, +0x3A,0x6F,0xAA,0xBC,0x51,0xFF,0xFB,0x64,0xF0,0x8D,0x84,0x00,0xF1,0x8B,0xF2,0x9D, +0x10,0x0F,0x80,0x9D,0x84,0x20,0x44,0x20,0x01,0xB8,0x50,0x0F,0x82,0xE0,0xF3,0x98, +0x49,0x00,0x57,0xAE,0x84,0x20,0x44,0x20,0x00,0x66,0x44,0x02,0x3C,0x48,0x49,0x00, +0x57,0xA7,0x84,0x20,0x84,0x4B,0x44,0x02,0x13,0x28,0x49,0x00,0x57,0xA1,0x84,0x00, +0x84,0x3F,0x3C,0x0F,0xFB,0x46,0x3E,0x07,0xEC,0x9E,0x3E,0x17,0xEC,0x9D,0x3C,0x0B, +0xF6,0x69,0x3C,0x0B,0xF8,0x69,0x44,0x12,0x3F,0xC4,0xF0,0x0D,0x44,0x22,0x3D,0x44, +0xF3,0x0B,0xF4,0x18,0x49,0xFF,0xF0,0x72,0xF0,0x92,0x3C,0x07,0xF8,0x5F,0x5E,0xF0, +0x01,0x2C,0xE9,0x05,0x90,0x01,0xF0,0x99,0x48,0x00,0x00,0x05,0x44,0x00,0x00,0x96, +0xF0,0x99,0xF0,0x12,0x4E,0x02,0x01,0x9B,0x84,0x00,0xF0,0x8B,0xF0,0x9A,0x84,0x08, +0xF0,0x8E,0x84,0x00,0xF0,0x8F,0xF0,0x8C,0xF0,0x0B,0xF2,0x0B,0x94,0x41,0x44,0x02, +0x3F,0xC4,0xF3,0x0B,0x38,0x20,0x09,0x00,0x88,0x01,0xF2,0x91,0xF0,0xA2,0xFA,0x42, +0xF0,0x0C,0xFE,0x9C,0xF2,0xA4,0xF0,0x90,0xF0,0x22,0xF1,0x11,0xA6,0x01,0xE2,0x20, +0x4E,0xF2,0x01,0x71,0xF1,0x11,0x44,0x02,0x3D,0x44,0x88,0x01,0xF1,0x24,0x38,0x00, +0x04,0x00,0x96,0x36,0x4E,0x02,0x01,0x5F,0x50,0x0F,0x80,0x9D,0xF0,0x81,0xF0,0x0E, +0x84,0xC0,0xF0,0x82,0x84,0x01,0xF0,0x83,0x50,0x0F,0x80,0x9E,0xF0,0x84,0x50,0x7F, +0x81,0xF0,0xB0,0x28,0xF0,0x89,0x22,0x1F,0x80,0x16,0xB6,0xFF,0xF6,0x85,0xF6,0x86, +0xF6,0x87,0xF6,0x88,0xF0,0x11,0x44,0x20,0x00,0x40,0xF3,0x0F,0x44,0x42,0x3D,0x44, +0x04,0x5F,0x80,0x0D,0x49,0x00,0x1B,0xE1,0x2E,0x17,0xEC,0x9E,0x8C,0x21,0x3E,0x17, +0xEC,0x9E,0xF1,0x1D,0xE0,0x01,0x4E,0xF3,0x01,0x36,0xF0,0x0D,0x50,0x13,0x80,0x00, +0x00,0x2F,0x80,0x9D,0x49,0xFF,0xFE,0x4E,0x02,0x0F,0x80,0x4F,0x5C,0xF0,0x00,0x29, +0x4E,0xF2,0x00,0x0A,0x00,0x0F,0x80,0x9D,0x9E,0x42,0xE6,0x2D,0x4E,0xF3,0x00,0x2F, +0x48,0x00,0x03,0x55,0x00,0x1F,0x80,0x9D,0x80,0x06,0x96,0xB0,0xE2,0x41,0xE8,0x0B, +0x38,0xF3,0x9A,0x11,0xF2,0x19,0xE0,0x4F,0xE8,0x03,0x8C,0x01,0x96,0x01,0x8C,0xC1, +0x48,0xFF,0xFF,0xF5,0x3C,0x13,0xF8,0x69,0xE2,0x20,0xE8,0xE5,0x5C,0xF0,0x00,0x3D, +0x3C,0x0B,0xF8,0x69,0x80,0x20,0xE9,0x03,0x44,0x10,0x00,0x3C,0x96,0x49,0x84,0x00, +0x50,0x2F,0x81,0x78,0x50,0x3F,0x81,0xF0,0xE2,0x01,0xE8,0xD5,0x38,0x41,0x82,0x01, +0x38,0x41,0x01,0x09,0x8C,0x01,0x96,0x00,0xD5,0xF8,0xE6,0x06,0x80,0x20,0xE9,0x03, +0x44,0x10,0x00,0x05,0x55,0xE0,0x80,0xFF,0x50,0x0F,0x7F,0xFF,0x84,0x20,0x80,0x61, +0x80,0x41,0xF0,0x93,0xF0,0x13,0xE0,0x40,0x4E,0xF2,0x03,0x19,0x9C,0x11,0x96,0x00, +0xF0,0x8E,0x94,0x92,0x50,0x0F,0x81,0xF0,0x88,0x40,0xF6,0x0E,0xE2,0xDE,0xE8,0x4D, +0x50,0x0F,0x81,0xF0,0x95,0x32,0x88,0x80,0xA7,0xD3,0xA6,0x23,0x00,0x91,0x00,0x02, +0x9A,0x38,0x96,0x02,0xA7,0x62,0x81,0x00,0x4E,0x04,0x00,0x04,0x52,0x80,0x00,0x00, +0x5A,0x88,0x01,0x39,0x40,0x54,0x94,0x01,0x97,0x6A,0x81,0x05,0x4E,0x54,0x00,0x04, +0x52,0x82,0x80,0x00,0x5A,0x88,0x01,0x2F,0xA5,0x20,0x02,0x81,0x00,0x00,0x40,0xF2, +0x00,0x11,0x40,0xA4,0x00,0x11,0xE1,0x4F,0x40,0x44,0x3C,0x1A,0x97,0x23,0xC4,0x1B, +0x9A,0x38,0xFA,0x22,0x42,0x04,0x84,0x73,0xF1,0x0D,0x40,0x54,0x94,0x01,0x38,0x30, +0x81,0x11,0x44,0x00,0x00,0x64,0xFE,0xC4,0xFA,0x02,0x42,0x72,0x80,0x73,0x38,0x10, +0x9D,0x11,0x44,0x00,0x00,0x64,0xFE,0x44,0x40,0x31,0x90,0x76,0x40,0x10,0x90,0x36, +0x96,0xDB,0x96,0x4B,0xE0,0x61,0x80,0x03,0x40,0x00,0xBC,0x1B,0x5E,0xF0,0x00,0x3C, +0xE9,0x06,0x8C,0xC1,0x97,0xB0,0xD5,0xB3,0xF2,0x0E,0xD5,0xA5,0x00,0x0F,0x81,0xF2, +0xE6,0x02,0x4E,0xF3,0x02,0xBC,0x84,0x04,0xF0,0x8E,0xF6,0x0C,0x44,0x70,0x00,0x00, +0x50,0x9F,0x81,0xF0,0x00,0x0F,0x80,0x9D,0xE2,0xE0,0xE8,0x07,0x38,0xF4,0x9E,0x11, +0xF0,0x18,0xE0,0x0F,0x4E,0xF3,0x00,0xED,0xF0,0x1D,0x80,0x86,0xB6,0x1F,0xF0,0x0E, +0x00,0x3F,0x80,0x9D,0xF0,0x81,0x44,0x12,0x3D,0x44,0x50,0x2F,0x81,0xF0,0x44,0x52, +0x3C,0x48,0xF0,0x0D,0x49,0xFF,0xFE,0x30,0xF0,0x8C,0x00,0x0F,0x80,0x9D,0xB1,0xEF, +0xF0,0xA1,0x44,0x00,0xF1,0x3C,0x84,0xC0,0x3A,0x20,0x14,0x00,0x3A,0x23,0x94,0x20, +0x84,0x21,0x84,0x4B,0xB0,0x2C,0xF6,0xA9,0xF6,0xAA,0xF6,0xAB,0x49,0x00,0x56,0x48, +0x80,0x26,0xFA,0x5C,0xB0,0x3D,0x49,0x00,0x56,0x43,0x80,0x26,0x44,0x20,0x00,0x2C, +0x50,0x0F,0x81,0x20,0x49,0x00,0x56,0x3C,0x50,0x9F,0x80,0xCC,0x80,0x26,0xFA,0x5C, +0x50,0x0F,0x81,0x4C,0x49,0x00,0x56,0x34,0x80,0x09,0x80,0x26,0x44,0x20,0x00,0x28, +0x49,0x00,0x56,0x2E,0x50,0xAF,0x81,0xF0,0x2E,0x06,0xCC,0x7E,0xF6,0x94,0xF0,0x93, +0x14,0x9F,0x80,0x25,0x2E,0x06,0xCC,0x7F,0xF7,0xA0,0xF0,0xA3,0xF5,0x14,0xF1,0x21, +0x4C,0x50,0xC0,0xD4,0x04,0xAF,0x80,0x36,0x00,0x9F,0x80,0xEA,0x00,0x7F,0x80,0xE9, +0x00,0x3F,0x80,0xCF,0x00,0x4F,0x80,0xCE,0x00,0x6F,0x80,0xCD,0x00,0x5F,0x80,0xCC, +0xF0,0x10,0x50,0x8F,0x81,0x4C,0xF1,0x0C,0xE2,0x01,0x4E,0xF3,0x01,0xD7,0xF0,0x10, +0x10,0x6F,0x80,0xCD,0xE2,0x01,0x10,0x5F,0x80,0xCC,0x10,0x4F,0x80,0xCE,0x10,0x3F, +0x80,0xCF,0x14,0xAF,0x80,0x36,0x10,0x9F,0x80,0xEA,0x10,0x7F,0x80,0xE9,0x4E,0xF3, +0x02,0x09,0xF0,0x11,0x8C,0x01,0x96,0x00,0xF0,0x91,0xF0,0x0C,0xF0,0x90,0x48,0xFF, +0xFE,0x8D,0xF0,0x1A,0x5A,0x00,0x01,0x0D,0xF0,0x0B,0x8C,0x01,0x14,0x0F,0x80,0x0B, +0x5A,0x00,0x20,0x04,0x48,0xFF,0xFE,0x72,0xD5,0x03,0xF0,0x12,0xF0,0x8C,0xF1,0x12, +0x50,0x0F,0x81,0x78,0x49,0x00,0x08,0xDE,0x3C,0x0F,0xFB,0x46,0x04,0x0F,0x80,0x12, +0x49,0x00,0x08,0x8A,0x3C,0x1D,0xFB,0x46,0x84,0x4B,0xFE,0x0F,0x3C,0x0F,0xFB,0x46, +0x44,0x10,0x00,0xFF,0x44,0x02,0x3C,0xB0,0x84,0xE0,0x49,0x00,0x55,0xC9,0x80,0xC7, +0x50,0x0F,0x82,0xE0,0xFB,0x38,0x45,0xE2,0x13,0x48,0xF2,0x0C,0x96,0x78,0xE2,0x22, +0xE8,0x38,0x00,0x10,0x00,0x1E,0xC1,0x30,0x44,0x12,0x13,0x28,0x38,0xF0,0x9C,0x00, +0xE9,0x2B,0x42,0xA3,0x24,0x24,0x40,0x1F,0x28,0x00,0x8C,0x2C,0x81,0x01,0x80,0x20, +0x89,0x5E,0x3A,0x20,0x94,0x04,0x3A,0x24,0x14,0x24,0x3A,0x20,0x94,0x04,0x3A,0x24, +0x14,0x24,0x3A,0x20,0x8C,0x00,0x3A,0x24,0x0C,0x20,0x9C,0x71,0x50,0x25,0x00,0x20, +0x80,0x7E,0x42,0x30,0xA4,0x73,0xAF,0xD5,0x84,0x81,0x44,0x22,0x3C,0xB0,0xAF,0x1C, +0x10,0xF5,0x00,0x20,0x84,0x7F,0xE4,0xCA,0x38,0x61,0x1C,0x08,0x10,0x35,0x00,0x2B, +0x84,0xCA,0xE8,0x02,0x97,0x88,0x8C,0xE1,0x50,0x00,0x00,0x28,0x48,0xFF,0xFF,0xC7, +0x3E,0x67,0xEE,0xE0,0x51,0xFF,0x84,0x9C,0x3A,0x6F,0xAA,0x84,0xDD,0x9E,0x94,0x7A, +0x88,0x29,0xFA,0x42,0xA6,0x0B,0xA6,0x4A,0x80,0x60,0x42,0x30,0x88,0x73,0x80,0x43, +0x44,0x32,0x3D,0x44,0x38,0x21,0x88,0x10,0x4E,0x24,0x00,0x20,0x50,0x2F,0x80,0x9D, +0xF2,0x81,0xF2,0x0E,0x58,0x33,0x00,0x20,0xF2,0x82,0x50,0x4F,0x80,0x9E,0x84,0x40, +0x8C,0xC1,0xF2,0x83,0xF4,0x84,0xF2,0x85,0xF2,0x86,0xF2,0x87,0xF2,0x88,0xF2,0x89, +0xB7,0x3F,0x44,0x20,0x00,0x80,0x96,0xD8,0x44,0x42,0x3D,0x44,0xF5,0x0D,0x97,0xB0, +0x49,0x00,0x1A,0x03,0xE6,0xCB,0xE8,0x05,0x8C,0xE1,0x97,0xF8,0x48,0xFF,0xFE,0xDC, +0x84,0x01,0xF0,0x9A,0x48,0xFF,0xFE,0xE2,0x00,0x75,0x00,0x03,0xF1,0x13,0x00,0x25, +0x00,0x02,0x80,0x07,0x42,0x01,0x04,0x73,0xF0,0x9B,0xF1,0x1B,0x44,0x02,0x3D,0x44, +0x38,0x10,0x04,0x00,0x54,0x00,0x80,0x20,0x4E,0x02,0x01,0x01,0x5A,0x18,0x3F,0x04, +0x48,0x00,0x00,0xBC,0x96,0x67,0xE6,0x2B,0x4E,0xF2,0x00,0xF9,0x94,0x0A,0x50,0x9F, +0x80,0xF4,0x40,0x34,0x80,0x00,0x50,0x5F,0x81,0x20,0x50,0x4F,0x81,0x4C,0xF3,0x95, +0x98,0xE8,0x88,0x04,0xF3,0x96,0xF0,0x97,0x50,0x3F,0x82,0xE0,0xFA,0x18,0x42,0x30, +0x80,0x73,0x80,0x03,0x50,0x3F,0x80,0xB0,0x38,0x31,0x84,0x00,0x5A,0x30,0x01,0x04, +0x48,0x00,0x00,0x87,0x84,0x60,0x14,0x9F,0x80,0x1E,0x80,0xC3,0x81,0x25,0xF4,0x9F, +0xF4,0x20,0x04,0x8F,0x80,0x20,0x38,0x52,0x0D,0x00,0x95,0x19,0x88,0xA7,0x97,0x68, +0x88,0x88,0x41,0xE2,0x80,0x10,0x20,0x42,0x00,0x01,0x4F,0xE5,0x00,0x4C,0x04,0x8F, +0x80,0x13,0x40,0xFF,0x20,0x07,0xE8,0x46,0x88,0x82,0x97,0x20,0xF4,0x9C,0x20,0x8F, +0x80,0x70,0x4E,0x85,0x00,0x40,0xF4,0x23,0xE1,0x04,0xE8,0x3C,0xF4,0x13,0x8C,0xC1, +0x43,0xE4,0x10,0x73,0xF4,0x0D,0x04,0x80,0x00,0x04,0x97,0xB0,0x38,0xF2,0x79,0x11, +0x44,0x42,0x3D,0x44,0x89,0x0F,0x14,0x80,0x00,0x04,0x38,0x82,0x78,0x00,0x5A,0x88, +0x1F,0x2A,0x4E,0xF7,0x00,0x07,0x04,0x80,0x00,0x03,0x89,0x0F,0x14,0x80,0x00,0x03, +0x50,0xF7,0xFF,0xFB,0x4E,0xF7,0x00,0x1F,0xF4,0x1E,0x38,0x82,0x06,0x02,0x89,0x0F, +0x38,0x82,0x06,0x0A,0x44,0x42,0x3D,0x20,0x38,0x82,0x15,0x01,0x38,0x54,0x86,0x02, +0x42,0x57,0xA0,0x73,0x38,0x54,0x86,0x0A,0xF5,0x1C,0x44,0x42,0x3F,0x84,0x38,0x52, +0x15,0x01,0xF4,0x1F,0x38,0x42,0x06,0x02,0x42,0x47,0x94,0x73,0xF5,0x1F,0x38,0x42, +0x86,0x0A,0x8C,0x61,0xF5,0x0E,0x97,0x18,0xE2,0x85,0xE9,0xA3,0x22,0x35,0x00,0x00, +0xA1,0x04,0xFF,0x9C,0x9B,0x74,0x44,0x30,0x03,0xE8,0xFE,0xEC,0x40,0x61,0x98,0xD6, +0xAE,0x82,0xAE,0x83,0x10,0x20,0x00,0x1C,0xF3,0x1B,0xF2,0x0D,0x12,0x60,0x00,0x12, +0xAF,0xC0,0xAF,0xC1,0x10,0x70,0x00,0x1B,0x38,0x21,0x0D,0x11,0xB0,0xEC,0x88,0x82, +0xA9,0x04,0x84,0x80,0x12,0x20,0x00,0x0B,0x38,0x41,0x84,0x08,0xD5,0x25,0xA6,0x43, +0xE2,0x22,0xE8,0x03,0xAE,0x83,0xD5,0x05,0xA6,0x42,0xE2,0x41,0xE8,0x02,0xAE,0x82, +0x00,0x15,0x00,0x03,0xA6,0x81,0xE2,0x41,0xE8,0x03,0xAE,0x41,0xD5,0x0D,0xA6,0x80, +0xE2,0x22,0xE8,0x0A,0xAE,0x40,0xD5,0x08,0xB0,0x6B,0xF1,0x97,0xB0,0x6A,0xF1,0x96, +0xB0,0x69,0xF0,0x25,0xF1,0x95,0xF2,0x13,0x00,0x15,0x00,0x02,0x42,0x70,0x88,0x73, +0xF2,0x0D,0x38,0x21,0x1D,0x11,0xA0,0x43,0x88,0x22,0xA8,0x43,0xF1,0x18,0xE0,0x22, +0xE8,0x06,0x00,0x10,0x00,0x1D,0x8C,0x21,0x10,0x10,0x00,0x1D,0x8E,0x45,0x4E,0x27, +0x00,0x26,0xF1,0x15,0xF3,0x15,0xB4,0x21,0x88,0x22,0xB6,0x23,0x00,0x15,0x00,0x03, +0x44,0x32,0x3D,0x20,0x38,0x31,0x85,0x01,0xF1,0x16,0xB4,0x21,0x42,0x11,0x0C,0x73, +0xF3,0x16,0xB6,0x23,0x00,0x15,0x00,0x02,0x44,0x32,0x3F,0x84,0x38,0x31,0x85,0x01, +0xF1,0x17,0xB4,0x21,0x42,0x11,0x0C,0x73,0xF2,0x17,0xB6,0x22,0x00,0x10,0x00,0x1E, +0x5A,0x10,0xFF,0x05,0x8C,0x21,0x10,0x10,0x00,0x1E,0xF6,0x14,0x8D,0x44,0x8C,0xC1, +0x96,0x30,0xF0,0x94,0x48,0xFF,0xFE,0x14,0xB0,0x7D,0x38,0xF0,0x82,0x02,0x4E,0xF7, +0x00,0x19,0x50,0x2F,0x81,0x20,0xFA,0x38,0x51,0xEF,0x82,0xE0,0x38,0x21,0x02,0x02, +0x43,0xE0,0x04,0x73,0x40,0x17,0x84,0x0A,0x88,0x41,0x40,0x21,0x3C,0x56,0x14,0x2F, +0x00,0x01,0x38,0x24,0x02,0x02,0x88,0x22,0x40,0x10,0xBC,0x36,0x14,0x1F,0x00,0x02, +0xFA,0x58,0x50,0x1F,0x82,0xE0,0x42,0x10,0x08,0x73,0xA0,0x8B,0x01,0xE0,0x80,0x03, +0x89,0x42,0x00,0x20,0x80,0x1E,0xE2,0x7E,0x88,0x49,0x54,0x91,0x00,0xFF,0x00,0x20, +0x80,0x1D,0x88,0xE2,0x97,0xF8,0xE9,0x06,0xA6,0x8A,0x83,0xC3,0xE2,0x44,0x40,0x41, +0x3C,0x1B,0xA6,0x89,0xE2,0xC2,0xE9,0x06,0xA6,0x48,0x80,0x46,0xE2,0x25,0x40,0x50, +0xBC,0x1B,0x8C,0x01,0x96,0x00,0x80,0x7E,0x50,0x61,0x00,0x00,0x48,0xFF,0xFD,0xE5, +0x00,0x0F,0x80,0x9D,0x3C,0x13,0xF6,0x69,0xE2,0x20,0xE8,0x07,0x3C,0x0B,0xF6,0x69, +0x00,0x0F,0x80,0x3C,0x3E,0x07,0xEC,0x9D,0xFA,0x38,0xF2,0x10,0x50,0x0F,0x82,0xE0, +0x42,0x01,0x04,0x73,0x00,0x2F,0x80,0x3C,0x10,0x20,0x00,0x22,0xF0,0x10,0xF2,0x0C, +0x8C,0x01,0x97,0x40,0xF5,0x90,0xDA,0xF2,0xF0,0x0F,0xE6,0x0B,0x4E,0xF2,0xFD,0xF1, +0x8C,0x01,0x96,0x00,0x14,0x0F,0x80,0x0F,0x5A,0x08,0x0B,0x04,0x48,0xFF,0xFD,0xE9, +0xE6,0x4B,0x4E,0xF3,0xFD,0xD0,0x48,0xFF,0xFD,0xE4,0x84,0x08,0xF0,0x8E,0x48,0xFF, +0xFD,0x46,0x92,0x00,0x3B,0xFF,0xFC,0xBC,0xEF,0xFC,0xFA,0x40,0x5A,0x08,0x04,0x0A, +0x44,0x12,0x10,0x30,0x44,0x02,0x39,0xC8,0x49,0x00,0x53,0x8C,0x48,0x00,0x00,0x08, +0x44,0x02,0x39,0xC8,0x44,0x12,0x10,0x20,0x49,0x00,0x53,0x84,0xEC,0x04,0x3B,0xFF, +0xFC,0x84,0xDD,0x9E,0x3A,0x6F,0xA8,0xBC,0x3C,0x6D,0xFB,0x37,0xEF,0xF8,0x54,0x63, +0x04,0x00,0xF0,0x81,0xC6,0x06,0x3C,0x6D,0xFB,0x37,0x97,0x9E,0xC6,0x02,0x84,0xC2, +0x3C,0x74,0x0A,0xB0,0x3C,0xA4,0x0A,0xB1,0x3C,0x94,0x0A,0xB2,0x49,0x00,0x44,0xCA, +0x3C,0x37,0xF8,0x5F,0x84,0x44,0x40,0x21,0x88,0x56,0x5A,0x08,0x01,0x15,0x5E,0xF1, +0x01,0xC2,0xE8,0x03,0x44,0x20,0x01,0xC2,0xFA,0x9D,0x44,0xF0,0x00,0x64,0xFE,0xE4, +0x40,0x31,0xBC,0x76,0x5E,0xF1,0x82,0x58,0x96,0x93,0xE8,0x2B,0x44,0x30,0x02,0x58, +0x48,0x00,0x00,0x28,0x5A,0x68,0x02,0x18,0x5E,0xF1,0x00,0xFA,0xE8,0x03,0x44,0x20, +0x00,0xFA,0xFA,0x38,0x44,0xF0,0x00,0x64,0xFE,0xCC,0x40,0x31,0xBC,0x76,0x5E,0xF1, +0x81,0x2C,0x96,0x93,0xE8,0x03,0x44,0x30,0x01,0x2C,0x96,0xDB,0x44,0x70,0x00,0x64, +0x48,0x00,0x00,0x11,0x44,0x40,0x00,0x46,0x42,0x01,0x90,0x24,0x44,0x30,0x00,0x64, +0xE0,0x4A,0x40,0x30,0x0C,0x76,0x40,0x25,0x3C,0x1B,0xE0,0x69,0x40,0x34,0xBC,0x1B, +0x96,0xDB,0xF0,0x01,0xEC,0x08,0x80,0x27,0x3A,0x6F,0xA8,0x84,0x48,0xFF,0xFB,0x8A, +0xFC,0x40,0xEE,0x98,0x44,0x62,0x40,0x0C,0x87,0x80,0x80,0xE6,0x81,0x3C,0x44,0x82, +0x15,0x0C,0x84,0x02,0x10,0x03,0x80,0xAE,0x02,0x03,0x80,0x54,0x54,0xAE,0x00,0xFF, +0xC0,0x38,0x00,0x03,0x80,0xAD,0x5A,0x08,0x02,0x2A,0xB0,0x41,0x84,0x40,0x80,0x07, +0x49,0xFF,0xEB,0x5B,0xF0,0x01,0x40,0x14,0x94,0x08,0xB0,0x82,0x88,0x22,0x22,0x20, +0x00,0x04,0x22,0x33,0x80,0x46,0xA8,0x89,0x22,0x20,0x00,0x05,0xA8,0x8A,0x50,0x20, +0x80,0x08,0xA8,0xD1,0x80,0x41,0x22,0x33,0x80,0x47,0x18,0xA1,0x00,0x10,0xA8,0xCC, +0x04,0x33,0x80,0x29,0xB4,0x00,0xA8,0xD1,0x04,0x23,0x80,0x28,0xA8,0x0F,0x50,0x04, +0x80,0x01,0xA8,0x8E,0x54,0x90,0x00,0xFF,0xD5,0x0C,0x5A,0x00,0x04,0xD8,0x5A,0x08, +0x03,0x09,0x80,0x0A,0x49,0x00,0x19,0x58,0x38,0x14,0x70,0x00,0xE2,0x20,0xE8,0xCE, +0x51,0xCE,0x00,0x01,0x50,0x73,0x80,0xCC,0x5B,0xC8,0x0B,0xBD,0x2E,0x07,0xEE,0xE0, +0xC0,0x41,0x80,0x49,0x44,0x02,0x13,0x48,0xB0,0x42,0x84,0xE0,0x49,0x00,0x0D,0x19, +0x81,0x27,0x02,0x03,0x00,0x54,0xC0,0x28,0x00,0x03,0x00,0xAD,0x5A,0x08,0x01,0x25, +0xB0,0x41,0x84,0x40,0x80,0x06,0x49,0xFF,0xEB,0x10,0xF1,0x01,0x94,0x3D,0xB0,0x82, +0x88,0x02,0x22,0x20,0x80,0x04,0x22,0x33,0x00,0x46,0xA8,0x81,0x22,0x20,0x80,0x05, +0x8C,0xE1,0xA8,0x82,0x50,0x20,0x00,0x08,0xA8,0xD1,0x80,0x40,0x22,0x33,0x00,0x47, +0x18,0x91,0x00,0x10,0xA8,0xC4,0x83,0x86,0xBB,0x29,0xB4,0x21,0xA8,0xD1,0xBA,0x28, +0xA8,0x47,0xA8,0x86,0x97,0xF8,0x50,0x04,0x80,0x01,0x54,0x90,0x00,0xFF,0x50,0x63, +0x00,0xCC,0x5A,0x98,0x0B,0xD0,0x44,0x02,0x13,0x48,0xB0,0x42,0x80,0x47,0x49,0x00, +0x0C,0xE0,0xED,0x68,0xFC,0xC0,0xFC,0x46,0xE6,0x2C,0x81,0x01,0x4E,0xF2,0x00,0xA2, +0x81,0x20,0x80,0xE2,0x5A,0x28,0x01,0x6A,0xFA,0xB8,0x42,0x20,0x14,0x24,0x44,0x42, +0x13,0x48,0x98,0x22,0x51,0xC0,0x00,0x20,0xA0,0xC6,0x10,0x10,0x00,0x2B,0xF3,0x85, +0x00,0x30,0x00,0x2A,0x50,0x10,0x00,0x10,0x10,0x3F,0x80,0x28,0x50,0xA0,0x00,0x18, +0x22,0x30,0x00,0x08,0x44,0x60,0x00,0xCC,0x02,0x00,0x00,0x11,0x22,0x10,0x80,0x02, +0x42,0x64,0x18,0x24,0x12,0x3F,0x80,0x0E,0x12,0x3F,0x80,0x0C,0x12,0x0F,0x80,0x15, +0x44,0x32,0x40,0x04,0x50,0x03,0x00,0x08,0x12,0x1F,0x80,0x0F,0x12,0x1F,0x80,0x0D, +0x88,0x03,0xB0,0x45,0xF5,0x83,0xF2,0x82,0xF4,0x81,0xB6,0x7F,0x49,0xFF,0xEA,0x76, +0xB4,0x7F,0x00,0x0E,0x00,0x07,0x50,0x11,0x80,0xC8,0x88,0x26,0x54,0xF0,0x00,0x0F, +0x41,0xE7,0xB0,0x08,0x02,0xF0,0x80,0x02,0x92,0x04,0x54,0xF7,0x8F,0xFF,0x40,0xF7, +0xF8,0x04,0x12,0xF0,0x80,0x02,0x00,0xFE,0x00,0x08,0x96,0x0F,0x40,0xF7,0x88,0x08, +0x40,0x00,0x3C,0x04,0xAE,0x0E,0x98,0x1E,0x50,0x00,0x00,0xC0,0x02,0x15,0x00,0x05, +0xF4,0x01,0xAC,0x41,0x00,0x1E,0x00,0x04,0xF5,0x03,0xAE,0x44,0x80,0x44,0x50,0x14, +0x80,0x01,0x42,0x20,0x94,0x73,0xA6,0x56,0xF2,0x02,0xAE,0x45,0x88,0x44,0x88,0xC3, +0xA0,0x13,0x14,0x03,0x00,0x27,0xD5,0x12,0x5A,0x28,0x02,0x34,0x44,0x00,0x00,0xCC, +0x44,0x62,0x40,0x0C,0x42,0x60,0x80,0x73,0x80,0x06,0xB0,0x44,0x84,0x40,0x49,0xFF, +0xEA,0x64,0x80,0x06,0xF1,0x04,0x49,0xFF,0xEA,0x31,0x44,0x32,0x40,0x04,0x44,0x00, +0x00,0xCC,0x80,0x23,0x42,0x14,0x00,0x73,0x02,0x00,0x80,0x58,0xC8,0x0C,0xFA,0x58, +0x44,0x02,0x13,0x48,0x42,0x04,0x88,0x73,0xA0,0x84,0xA0,0x05,0x12,0x20,0x80,0x64, +0x12,0x00,0x80,0x65,0x44,0x00,0x00,0xCC,0x42,0x34,0x00,0x73,0x02,0x51,0x80,0x58, +0x44,0x10,0xFF,0xFF,0x10,0x71,0x80,0xB6,0xD1,0x04,0x8C,0xA1,0x12,0x51,0x80,0x58, +0xFC,0xC6,0xFC,0x01,0x49,0x00,0x41,0xAF,0xF0,0x81,0x49,0xFF,0xEA,0x4C,0xF0,0x01, +0x44,0x12,0x3F,0xC4,0x3C,0x24,0x0A,0xD3,0x49,0xFF,0xEA,0x6D,0xF0,0x01,0x44,0x12, +0x3F,0xC4,0x44,0x22,0x15,0x26,0x44,0x32,0x15,0x24,0x49,0xFF,0xEA,0xA3,0x3C,0x13, +0xF6,0x93,0x3C,0xF7,0xF8,0x5F,0x3C,0x24,0x0A,0xD3,0x84,0x1E,0xFE,0x0E,0xE0,0x4F, +0x3C,0x0B,0xF6,0x93,0xE8,0x05,0x58,0x00,0x00,0x01,0x3C,0x0B,0xF6,0x93,0xFC,0x81, +0xFC,0x40,0x84,0x20,0x84,0x48,0x44,0x02,0x13,0x40,0x49,0x00,0x51,0xE1,0x84,0x00, +0x3C,0x0B,0xF6,0x93,0x84,0x01,0x49,0x00,0x17,0xEE,0x84,0x03,0x49,0x00,0x17,0xFE, +0x84,0x20,0x44,0x20,0x08,0xCC,0x44,0x02,0x40,0x04,0x49,0x00,0x51,0xD1,0x49,0x00, +0x18,0x2D,0x49,0x00,0x33,0xAD,0x5A,0x00,0x01,0x05,0x44,0x00,0x00,0x5A,0xD5,0x03, +0x44,0x00,0x00,0x7D,0x3C,0x08,0x0A,0xD3,0x84,0x00,0x3E,0x07,0xEE,0xD4,0x84,0x01, +0x49,0xFF,0xFE,0x02,0x44,0x00,0x00,0xBB,0x3C,0x08,0x0A,0xB8,0x44,0x00,0x19,0xAE, +0x3C,0x08,0x0A,0xB9,0x44,0x00,0x00,0xE1,0x3C,0x08,0x0A,0xBA,0x44,0x00,0x36,0xE0, +0x3C,0x08,0x0A,0xBB,0x49,0x00,0x04,0x44,0x84,0x01,0x49,0x00,0x04,0x4C,0x84,0x04, +0x3E,0x00,0x15,0x80,0x84,0x05,0x3E,0x00,0x15,0x82,0x44,0x00,0x00,0x40,0x3E,0x00, +0x15,0x81,0x84,0x0A,0x3E,0x00,0x15,0x83,0x3C,0x70,0x0A,0xB8,0x84,0x01,0x3E,0x00, +0x15,0x84,0x3C,0x50,0x0A,0xBA,0x3C,0x04,0x0A,0xB9,0x97,0x3B,0x84,0x60,0x2E,0x96, +0xCC,0x7E,0x40,0xA0,0x10,0x01,0x96,0x6B,0x3C,0x64,0x0A,0xBB,0x80,0x43,0x44,0x82, +0x3D,0x20,0x8A,0x80,0x45,0xE0,0x00,0x11,0x96,0x10,0xE2,0x09,0x88,0x6A,0xE8,0x09, +0x98,0x23,0x40,0x00,0x78,0x16,0x88,0x07,0x38,0x04,0x09,0x09,0x8C,0x41,0xD5,0xF5, +0x84,0x60,0x9B,0xF1,0x2E,0x46,0xCC,0x7F,0x8A,0x26,0x80,0x43,0x44,0x92,0x3F,0x84, +0xFA,0xCF,0x96,0x10,0xE2,0x04,0x88,0x67,0xE8,0x09,0x98,0x0B,0x40,0x00,0x18,0x16, +0x88,0x05,0x38,0x04,0x89,0x09,0x8C,0x41,0xD5,0xF5,0x3C,0x1D,0xFB,0x37,0x84,0x01, +0x3C,0x0B,0xF6,0x92,0x44,0x0F,0xFF,0x7F,0xFE,0x0E,0x3C,0x0F,0xFB,0x37,0x3C,0x0D, +0xFB,0x37,0x58,0x00,0x00,0x04,0x3C,0x0F,0xFB,0x37,0x84,0x00,0x3C,0x0B,0xF6,0x91, +0xFC,0xC0,0x84,0x00,0x3E,0x07,0xEE,0xD4,0xDD,0x9E,0xFC,0x00,0x2E,0x07,0xDE,0x85, +0x96,0x16,0xC0,0x03,0x84,0x04,0xD5,0x02,0x84,0x01,0x49,0xFF,0xFD,0x85,0xFC,0x80, +0xFC,0x00,0x84,0x01,0x49,0x00,0x03,0xDF,0xFC,0x80,0x84,0x00,0x3E,0x07,0xDE,0x85, +0x3C,0x0D,0xFB,0x37,0x96,0x1E,0xC0,0x04,0x84,0x04,0x3E,0x07,0xDE,0x85,0x2E,0x07, +0xDE,0x85,0xC8,0x04,0x84,0x01,0x3E,0x07,0xDE,0x85,0xDD,0x9E,0xFC,0x00,0x2E,0x07, +0xDE,0x85,0x5A,0x08,0x04,0x05,0x3C,0x03,0xF5,0xE5,0xD5,0x03,0x3C,0x03,0xF5,0xDD, +0x3C,0x08,0x0A,0xB1,0x49,0xFF,0xFF,0xE3,0x2E,0x07,0xDE,0x85,0x2E,0x57,0xEE,0xD4, +0xD0,0x07,0x3E,0x07,0xEE,0xD4,0x49,0xFF,0xFF,0xCA,0x49,0xFF,0xFF,0xD3,0xFC,0x80, +0xFC,0x00,0x49,0x00,0x40,0xB6,0x84,0x20,0x44,0x32,0x20,0xE8,0x38,0x21,0x85,0x11, +0x40,0x21,0x20,0x08,0x38,0x20,0x06,0x0A,0x8C,0x21,0x5A,0x1A,0x40,0xF9,0xFC,0x80, +0xFC,0x43,0x84,0x00,0x3C,0x13,0xF6,0x93,0x3E,0x07,0xEE,0xE0,0x44,0x0F,0xFF,0xBF, +0xFE,0x0E,0x3C,0x0B,0xF6,0x93,0x49,0x00,0x32,0x76,0x5A,0x00,0x01,0x06,0x3C,0x0C, +0x05,0x45,0x5A,0x08,0x01,0x0A,0x3C,0x03,0xF6,0x91,0x58,0x00,0x00,0x01,0x3C,0x0B, +0xF6,0x91,0x49,0x00,0x32,0x6B,0x3C,0x23,0xF6,0x91,0x54,0x01,0x00,0x01,0xC0,0x06, +0x3C,0x13,0xF7,0x68,0x8C,0x21,0x3C,0x1B,0xF7,0x68,0x3C,0x03,0xF7,0x68,0xE6,0x03, +0xE9,0x08,0x84,0x1E,0xFE,0x16,0x3C,0x0B,0xF6,0x91,0x84,0x00,0x3C,0x0B,0xF7,0x68, +0x3C,0xF7,0xF8,0x5F,0x5E,0xF7,0x80,0x5A,0xE8,0x0B,0x3C,0x03,0xF8,0x5E,0x50,0x00, +0x00,0x59,0x96,0x01,0x5C,0xF0,0x00,0xB3,0xE8,0x03,0x49,0x00,0x32,0x35,0x49,0x00, +0x40,0x62,0x80,0xC0,0x49,0xFF,0xE9,0xF9,0x49,0xFF,0xFF,0x92,0x80,0x06,0x49,0xFF, +0xFD,0x13,0x3C,0x0D,0xFB,0x46,0x5A,0x08,0x01,0x0C,0x49,0x00,0x32,0x22,0xC8,0x08, +0x49,0x00,0x32,0x26,0xC8,0x05,0x49,0xFF,0xE7,0x26,0x48,0x00,0x02,0x95,0x49,0xFF, +0xFD,0x61,0x44,0x02,0x13,0x54,0x2E,0x17,0xEE,0xE0,0x49,0x00,0x0D,0xF1,0x44,0x02, +0x3C,0x48,0xB6,0x1F,0x44,0x02,0x3D,0x44,0xF0,0x81,0x3C,0x10,0x0A,0xB3,0x3C,0x00, +0x0A,0xB1,0x3C,0x20,0x0A,0xB5,0x3C,0x30,0x0A,0xB7,0x3C,0x90,0x0A,0xB0,0x3C,0x70, +0x0A,0xB2,0x3C,0x50,0x0A,0xB4,0x3C,0x40,0x0A,0xB6,0x40,0x00,0x40,0x08,0x40,0x10, +0xC0,0x08,0x40,0x21,0x40,0x08,0x40,0x31,0xC0,0x08,0x40,0x00,0x24,0x04,0xFE,0x7F, +0xFE,0xAF,0xFE,0xE7,0xF6,0x82,0x44,0x42,0x40,0x0C,0x44,0x52,0x13,0x48,0x49,0x00, +0x05,0x0F,0x44,0x72,0x40,0x04,0x80,0x06,0x44,0x12,0x13,0x54,0x2E,0x27,0xEE,0xE0, +0x3C,0x34,0x0A,0xB0,0x49,0x00,0x0E,0x2E,0x81,0x27,0x84,0xC0,0x02,0x04,0x80,0x58, +0xC0,0x08,0x00,0x04,0x80,0xCF,0x80,0x26,0x00,0x24,0x80,0xB6,0x49,0xFF,0xFD,0xAD, +0x8C,0xC1,0x97,0xB0,0x50,0x94,0x80,0xCC,0x5A,0x68,0x0B,0xF2,0x84,0xC0,0x44,0x92, +0x13,0x48,0x44,0x82,0x40,0xD4,0x2E,0x07,0xEE,0xE0,0xE2,0xC0,0xE8,0x18,0xFA,0x18, +0x80,0x29,0x42,0x13,0x00,0x73,0x00,0x10,0x80,0x2B,0x50,0xA3,0x00,0x01,0x5A,0x18, +0xFF,0x23,0x80,0x29,0x42,0x15,0x00,0x73,0xA6,0x8C,0x5A,0x28,0x01,0x1D,0xF2,0x84, +0x49,0x00,0x16,0xA0,0xE6,0x0B,0x80,0x20,0xF2,0x04,0xE9,0x09,0x49,0x00,0x09,0x5E, +0x3C,0x0D,0xFB,0x37,0x96,0x1E,0xC0,0x12,0x84,0x04,0xD5,0x11,0x44,0x00,0x00,0xCC, +0x80,0x68,0x42,0x30,0x80,0x73,0xB4,0x03,0x58,0x00,0x00,0x08,0xB6,0x03,0x80,0x06, +0x49,0xFF,0xFD,0x73,0x54,0x65,0x00,0xFF,0xD5,0xCF,0x84,0x03,0x49,0x00,0x16,0x46, +0x3C,0x0C,0x05,0x45,0xC8,0x08,0x85,0x20,0x44,0x72,0x40,0x0C,0x80,0xC9,0x44,0xA2, +0x15,0x0C,0xD5,0x2A,0x84,0xC0,0x00,0x03,0x80,0xB6,0x5A,0x08,0x01,0x0E,0x00,0x03, +0x80,0xB5,0xC8,0x0A,0x22,0xF3,0x80,0x61,0x5E,0xF7,0x80,0xC9,0xE9,0x05,0x80,0x06, +0x84,0x22,0x49,0x00,0x16,0x39,0x8C,0xC1,0x97,0xB0,0x50,0x73,0x80,0xCC,0x5A,0x68, +0x0B,0xEC,0xD5,0xE2,0x00,0x23,0x80,0xAE,0x5A,0x20,0x01,0x28,0x00,0x03,0x80,0xAD, +0x5A,0x08,0x02,0x04,0x48,0x00,0x00,0xC5,0x8D,0x21,0x50,0x73,0x80,0xCC,0x5A,0x98, +0x0B,0x04,0x48,0x00,0x00,0xC9,0x54,0x04,0x80,0xFF,0xF0,0x84,0x00,0x03,0x80,0xAD, +0xE6,0x05,0xE8,0xED,0x44,0xF0,0x50,0xE4,0x38,0x07,0x82,0x02,0x40,0xF0,0x3C,0x00, +0x4A,0x00,0x3C,0x00,0xC0,0xFF,0xFF,0xFF,0x40,0x00,0x00,0x00,0x96,0x00,0x00,0x00, +0xDA,0x00,0x00,0x00,0x16,0x01,0x00,0x00,0x80,0x22,0xF0,0x04,0xF2,0x85,0x49,0x00, +0x16,0x0C,0xF0,0x04,0x49,0x00,0x16,0x20,0x81,0x00,0xF0,0x04,0x49,0x00,0x15,0xE9, +0x8C,0xC1,0xE2,0x08,0x97,0xB0,0xF2,0x05,0xF0,0x04,0xE9,0x5D,0x80,0x22,0x49,0x00, +0x15,0xF3,0xD5,0xC5,0x00,0x13,0x80,0xAE,0x5A,0x18,0x02,0x0B,0xF0,0x04,0x84,0x20, +0x49,0x00,0x15,0xF3,0xF0,0x04,0x84,0x21,0x49,0x00,0x15,0xEF,0xD5,0x6E,0x5A,0x18, +0x01,0xB7,0xF0,0x04,0x49,0x00,0x15,0xE9,0xF0,0x04,0x49,0x00,0x15,0xFD,0x81,0x00, +0xF0,0x04,0x49,0x00,0x15,0xC6,0x8C,0xC1,0xE2,0x08,0x97,0xB0,0xE8,0xA8,0x2E,0x00, +0x1B,0x9C,0xE6,0x03,0xE8,0x37,0x02,0x03,0x80,0x54,0xE6,0x08,0xE8,0x33,0x22,0xF3, +0x80,0x5D,0x5E,0xF7,0x82,0x27,0xE9,0x2E,0xD5,0x29,0xF0,0x04,0x84,0x20,0x49,0x00, +0x15,0xCC,0x00,0x03,0x80,0xAE,0x5A,0x08,0x02,0x14,0x84,0x21,0xF0,0x04,0x49,0x00, +0x15,0xC4,0xF0,0x04,0x49,0x00,0x15,0xD8,0x81,0x00,0xF0,0x04,0x49,0x00,0x15,0xAF, +0xE2,0x08,0xF0,0x04,0xE9,0x3B,0x84,0x23,0x49,0x00,0x15,0xAE,0xD5,0x45,0x8C,0xC1, +0xF0,0x04,0x84,0x20,0x97,0xB0,0x49,0x00,0x15,0xB0,0x48,0xFF,0xFF,0x79,0x00,0x03, +0x80,0xAE,0x5A,0x08,0x01,0x0B,0x8C,0xC1,0x97,0xB0,0xF0,0x04,0x84,0x20,0x49,0x00, +0x15,0xA4,0xF0,0x04,0x84,0x22,0xD5,0xA4,0x5A,0x00,0x02,0x04,0x48,0xFF,0xFF,0x68, +0x84,0x21,0xF0,0x04,0x49,0x00,0x15,0x99,0xF0,0x04,0x49,0x00,0x15,0xAD,0x81,0x00, +0xF0,0x04,0x49,0x00,0x15,0x84,0xE2,0x08,0xD5,0x0F,0x00,0x03,0x80,0xAE,0x5A,0x08, +0x02,0x18,0x84,0x21,0xF0,0x04,0x49,0x00,0x15,0x88,0xF0,0x04,0x49,0x00,0x15,0x9C, +0x38,0x15,0x24,0x00,0xE2,0x20,0xE8,0x10,0xF0,0x04,0x49,0x00,0x15,0xB8,0x80,0x07, +0x84,0x20,0x44,0x20,0x00,0xCC,0x49,0x00,0x4F,0x3B,0x48,0xFF,0xFF,0x41,0xF0,0x04, +0x84,0x20,0x49,0x00,0x15,0x72,0x8C,0xC1,0x97,0xB0,0x48,0xFF,0xFF,0x39,0x02,0x53, +0x80,0x55,0x44,0x00,0xFF,0xFF,0x4C,0x50,0x3F,0x39,0x8C,0xA1,0x12,0x53,0x80,0x55, +0x48,0xFF,0xFF,0x34,0x3C,0x13,0xF6,0x93,0x84,0x1D,0xFE,0x0E,0xC6,0x03,0x58,0x00, +0x00,0x02,0x3C,0x0B,0xF6,0x93,0x2E,0x00,0x1B,0x9F,0x3E,0x00,0x1B,0xA0,0x2E,0x00, +0x1B,0x9E,0x3E,0x00,0x1B,0x9F,0x2E,0x00,0x1B,0x9D,0x3E,0x00,0x1B,0x9E,0x2E,0x00, +0x1B,0x9C,0x3E,0x00,0x1B,0x9D,0x84,0x00,0x3C,0x0E,0x05,0x45,0x3C,0x03,0xF6,0x93, +0x3E,0x60,0x1B,0x9C,0x54,0x10,0x00,0x02,0xC1,0x03,0x84,0x02,0xD5,0x23,0x2E,0x17, +0xEE,0xD8,0xE6,0x24,0xE8,0x2F,0x44,0xF0,0x52,0xB4,0x38,0x17,0x84,0x00,0x40,0xF0, +0xBC,0x00,0xDD,0x0F,0x04,0x14,0x34,0x28,0x96,0x06,0xC0,0x24,0x84,0x01,0x3E,0x07, +0xEE,0xD8,0x2E,0x07,0xEE,0xDC,0xD5,0x07,0x96,0x06,0xC0,0x0B,0x2E,0x07,0xEE,0xDC, +0x5A,0x00,0xFF,0x19,0x8C,0x01,0x3E,0x07,0xEE,0xDC,0xD5,0x14,0x96,0x06,0xC8,0x0B, +0x84,0x00,0x3E,0x07,0xEE,0xD8,0xD5,0x0E,0x84,0x03,0x3E,0x07,0xEE,0xD8,0x2E,0x07, +0xEE,0xDD,0xD5,0x05,0x2E,0x07,0xEE,0xDD,0x5A,0x00,0xFF,0x05,0x8C,0x01,0x3E,0x07, +0xEE,0xDD,0x2E,0x07,0xEE,0xD8,0x5A,0x08,0x01,0x06,0x84,0x00,0x3E,0x07,0xEE,0xDD, +0xD5,0x06,0x84,0x20,0x3E,0x17,0xEE,0xDC,0x5A,0x08,0x03,0xF9,0x49,0xFF,0xE5,0xF6, +0x49,0xFF,0xE5,0x24,0x2E,0x07,0xEE,0xD8,0x5A,0x00,0x01,0x19,0xC0,0x07,0x5A,0x08, +0x03,0x1B,0x2E,0x07,0xEE,0xDD,0xE6,0x04,0xD5,0x15,0x49,0x00,0x30,0x91,0x5A,0x00, +0x01,0x06,0x49,0x00,0x30,0x1E,0x5A,0x08,0x01,0x05,0x84,0x00,0x84,0x21,0xD5,0x03, +0x84,0x00,0x80,0x20,0x49,0x00,0x25,0x2B,0xD5,0x06,0x2E,0x07,0xEE,0xDC,0x5C,0xF0, +0x00,0xC9,0xE8,0xF4,0x49,0x00,0x3F,0xC6,0x5A,0x08,0x01,0x04,0x84,0x00,0xD5,0x17, +0x2E,0x07,0xEE,0xCF,0xE6,0x05,0x4E,0xF2,0x00,0x7F,0x44,0xF0,0x53,0x88,0x38,0x07, +0x80,0x00,0x40,0xF0,0x3C,0x00,0xDD,0x0F,0x06,0x1A,0x52,0x6E,0xCC,0x00,0x3C,0x03, +0xF6,0x93,0x96,0x06,0xC8,0x70,0x3C,0x0B,0xF7,0x69,0x84,0x01,0x3E,0x07,0xEE,0xCF, +0xD5,0x6A,0x3C,0x03,0xF6,0x93,0x96,0x06,0xC8,0xE2,0x3C,0x03,0xF7,0x69,0x44,0x10, +0xFF,0xFB,0xE0,0x20,0xE9,0x04,0x8C,0x01,0x96,0x01,0xD5,0x03,0x44,0x00,0xFF,0xFD, +0x5C,0xF0,0x00,0xC9,0x3C,0x0B,0xF7,0x69,0xE9,0x56,0x2E,0x07,0xF9,0x14,0xC0,0x53, +0x84,0x00,0x3E,0x07,0xEE,0xCE,0x84,0x02,0xD5,0xE2,0x3C,0x03,0xF6,0x93,0x96,0x06, +0xC8,0xC6,0x2E,0x07,0xEE,0xCE,0x8C,0x01,0x96,0x00,0xE6,0x03,0x3E,0x07,0xEE,0xCE, +0x84,0x03,0xE8,0xD5,0xD5,0x40,0x44,0x02,0x20,0xE8,0x49,0x00,0x25,0x65,0x49,0x00, +0x3E,0x20,0x84,0x00,0x49,0x00,0x40,0xB7,0x84,0x00,0x49,0x00,0x2A,0x8A,0x84,0x00, +0x49,0x00,0x3D,0xFB,0x84,0x00,0x49,0x00,0x3D,0x43,0x49,0x00,0x3F,0x75,0xF0,0x84, +0x49,0x00,0x3F,0x75,0xF0,0x85,0xF1,0x04,0x84,0x00,0xF2,0x05,0x49,0x00,0x3F,0xEB, +0x46,0x00,0x42,0x10,0x50,0x00,0x08,0x20,0x80,0x20,0x84,0x40,0x49,0xFF,0xDC,0x4D, +0x84,0x01,0x49,0x00,0x40,0x98,0x84,0x04,0x3E,0x07,0xEE,0xCF,0x84,0x00,0x3E,0x07, +0xEE,0xCE,0xD5,0x11,0x3C,0x13,0xF6,0x93,0x96,0x46,0xC9,0x89,0x2E,0x07,0xEE,0xCE, +0x8C,0x01,0x96,0x00,0xE6,0x03,0x3E,0x07,0xEE,0xCE,0xE9,0x05,0x3E,0x17,0xEE,0xCF, +0x49,0xFF,0xFD,0x08,0xFC,0xC3,0x92,0x00,0x84,0xA0,0x80,0x25,0x44,0x22,0x40,0x04, +0x44,0x00,0x08,0xC4,0x98,0xEA,0x00,0x31,0x80,0xB5,0xE6,0x62,0xE9,0x03,0x8C,0x21, +0x96,0x48,0x50,0x52,0x80,0xCC,0xD8,0xF7,0xC1,0x09,0x84,0x01,0x3E,0x07,0xEE,0xCD, +0x84,0x00,0x3E,0x07,0xEE,0xCC,0x84,0x01,0xDD,0x9E,0x2E,0x07,0xEE,0xCD,0x5A,0x08, +0x01,0x10,0x2E,0x27,0xEE,0xCC,0x8C,0x41,0x96,0x90,0xE6,0x43,0xE8,0x04,0x3E,0x27, +0xEE,0xCC,0xDD,0x9E,0x3E,0x17,0xEE,0xCC,0x3E,0x17,0xEE,0xCD,0xDD,0x9E,0x2E,0x07, +0xF1,0x6C,0x3E,0x17,0xEE,0xCD,0x5A,0x08,0x01,0x03,0xDD,0x9E,0x80,0x01,0xDD,0x9E, +0x4E,0x05,0x00,0x22,0xE4,0x02,0xE9,0x20,0x40,0x50,0x08,0x0A,0x84,0x22,0xCD,0x05, +0x8E,0x22,0x96,0x4A,0x84,0x40,0xD5,0x07,0xD0,0xFC,0x8C,0x22,0x96,0x4A,0x40,0x50, +0x04,0x0E,0xD5,0xF6,0x4E,0x15,0x00,0x0E,0x94,0x91,0x9C,0xD1,0x40,0x50,0x04,0x0E, +0x42,0xF1,0x8C,0x24,0xE0,0xAF,0x8E,0x22,0x40,0x21,0xBC,0x1A,0x96,0x4A,0xD5,0xF3, +0x80,0x02,0xDD,0x9E,0x84,0x00,0xDD,0x9E,0xFC,0x00,0x49,0xFF,0xFF,0xDB,0xFC,0x80, +0x9A,0xCB,0x8A,0x02,0xFE,0xDC,0x42,0x30,0x00,0x73,0x44,0x00,0x00,0x64,0x40,0x01, +0x80,0x16,0xDD,0x9E,0xFE,0x5C,0x42,0x10,0x08,0x73,0x80,0x01,0xDD,0x9E,0xB4,0x20, +0x84,0x61,0x4E,0x14,0x00,0x03,0x84,0x7F,0x4E,0x14,0x00,0x03,0xFE,0x4A,0x84,0x40, +0x40,0x40,0x88,0x0E,0xC4,0x04,0x8C,0x41,0x96,0x90,0xD5,0xFB,0x52,0x21,0x00,0x1F, +0x96,0x90,0x40,0x10,0x88,0x0C,0xFE,0x5C,0xB6,0x20,0x80,0x02,0xDD,0x9E,0x84,0x60, +0x80,0x43,0xE2,0x61,0xE8,0x07,0x38,0x40,0x0D,0x11,0x8C,0x61,0x88,0x44,0x96,0xD8, +0xD5,0xF9,0x4E,0x26,0x00,0x03,0x84,0x41,0x40,0x21,0x04,0x56,0x84,0x80,0x96,0x93, +0x80,0x64,0xE2,0x81,0xE8,0x09,0x38,0x50,0x11,0x11,0x8C,0x81,0x8A,0xA2,0x42,0x32, +0x94,0x73,0x97,0x20,0xD5,0xF7,0xFC,0x00,0x80,0x03,0x4E,0x36,0x00,0x03,0x84,0x01, +0x40,0x00,0x04,0x16,0x49,0xFF,0xFF,0xB2,0x96,0x03,0xFC,0x80,0x84,0x00,0x84,0x20, +0x3E,0x07,0xF0,0xD0,0x3C,0x1F,0xFC,0x33,0x3E,0x17,0xEE,0xD9,0x3E,0x07,0xF0,0xCB, +0xDD,0x9E,0xFC,0x00,0x5A,0x08,0x04,0x07,0x44,0x02,0x39,0xE0,0x44,0x12,0x10,0x58, +0xD5,0x05,0x44,0x02,0x39,0xE0,0x44,0x12,0x10,0x50,0x84,0x48,0x49,0x00,0x4D,0x2A, +0xFC,0x80,0x00,0x00,0xFC,0x00,0x2E,0x17,0xF0,0xC9,0xE6,0x24,0xE8,0x43,0x44,0xF0, +0x56,0x1C,0x38,0x17,0x84,0x00,0x40,0xF0,0xBC,0x00,0xDD,0x0F,0x04,0x3A,0x50,0x70, +0x3C,0xF7,0xF8,0x5F,0x5E,0xF7,0x80,0x46,0xE8,0x35,0x5C,0xF0,0x00,0x97,0xE9,0x03, +0x84,0x01,0xD5,0x2E,0xC0,0x2F,0x3C,0x0D,0xFB,0x4A,0xFA,0x22,0x40,0x00,0x04,0x16, +0x44,0x10,0x00,0x64,0xFE,0x0C,0xFA,0x30,0x40,0x00,0x04,0x16,0x96,0x03,0x5E,0xF0, +0x01,0xF5,0xE8,0xEF,0xD5,0x1F,0x3C,0x17,0xF8,0x5F,0x3C,0xF4,0x0A,0xD3,0xE0,0x2F, +0xE8,0x19,0x84,0x02,0x3E,0x07,0xF0,0xC9,0x84,0x00,0xD5,0x0C,0x3C,0x17,0xF8,0x5F, +0x3C,0xF4,0x0A,0xD3,0xE0,0x2F,0xE8,0xDD,0x2E,0x07,0xF0,0xC8,0xE6,0x05,0xE8,0x05, +0x8C,0x01,0x3E,0x07,0xF0,0xC8,0xD5,0x06,0x84,0x03,0xD5,0x02,0x84,0x00,0x3E,0x07, +0xF0,0xC9,0x2E,0x07,0xF0,0xC9,0x84,0x20,0x40,0x00,0x80,0x06,0xFC,0x80,0x92,0x00, +0xFC,0x01,0x80,0xC1,0x84,0x20,0x3E,0x17,0xF0,0xCA,0x44,0x10,0x00,0xFF,0x3C,0x1B, +0xF6,0x6A,0x2E,0x10,0x15,0x7C,0x85,0xE3,0x40,0x10,0xBC,0x37,0xE2,0x26,0xF0,0x81, +0xE8,0x31,0x3C,0x13,0xF8,0x69,0xE6,0x2B,0xE8,0x03,0x84,0x00,0xD5,0x27,0x5C,0xF0, +0x80,0x29,0xE9,0x06,0xFA,0x2E,0x49,0xFF,0xFF,0x54,0x3C,0x0B,0xF6,0x6A,0x3C,0x03, +0xF8,0x69,0x2E,0x10,0x15,0x7C,0xE2,0x01,0xE9,0xF1,0x92,0x01,0x5C,0xF0,0x00,0x33, +0x80,0x20,0xE9,0x03,0x44,0x10,0x00,0x32,0xF0,0x01,0x54,0x10,0xFF,0xFF,0x49,0xFF, +0xFF,0x40,0x5E,0xF0,0x00,0x5F,0xE9,0x07,0x3C,0xF7,0xF8,0x62,0x84,0x21,0x5E,0xF7, +0x80,0x5F,0xE8,0x02,0x84,0x22,0x3E,0x17,0xF0,0xCA,0x3C,0x0B,0xF8,0x62,0x84,0x01, +0xD5,0x02,0x84,0x00,0x3C,0x1D,0xFC,0x33,0xC9,0x0A,0x5A,0x08,0x01,0x13,0x3C,0x13, +0xF8,0x69,0x2E,0x20,0x15,0x7C,0xE2,0x41,0xE8,0x0C,0xD5,0x09,0x5A,0x00,0x01,0x0A, +0x3C,0xF7,0xF8,0x5F,0x5E,0xF7,0x80,0x96,0xE8,0x04,0x84,0x00,0x3C,0x0F,0xFC,0x33, +0x2E,0x17,0xEE,0xD9,0x3C,0x0D,0xFC,0x33,0xE6,0x24,0xE8,0x40,0x44,0xF0,0x57,0x6C, +0x38,0x17,0x84,0x00,0x40,0xF0,0xBC,0x00,0x4A,0x00,0x3C,0x00,0x04,0x28,0x42,0x68, +0x5A,0x08,0x01,0x0E,0x2E,0x27,0xF0,0xC6,0x84,0x20,0x3E,0x17,0xF0,0xC6,0x5A,0x20, +0xFF,0x2E,0x3E,0x07,0xEE,0xD9,0x3E,0x07,0xF0,0xCB,0xD5,0x28,0x84,0x00,0x3E,0x07, +0xF0,0xC6,0xD5,0x24,0x2E,0x17,0xF0,0xCB,0x2E,0x20,0x15,0x80,0xE2,0x22,0xE8,0x05, +0x8C,0x21,0x3E,0x17,0xF0,0xCB,0xD5,0x1A,0x84,0x22,0xC0,0x0E,0xD5,0x17,0xC8,0x11, +0x2E,0x27,0xF0,0xD0,0x2E,0x10,0x15,0x82,0x8C,0x41,0x96,0x90,0xE2,0x22,0x3E,0x27, +0xF0,0xD0,0xE8,0x0C,0x84,0x23,0x3E,0x17,0xEE,0xD9,0x3E,0x07,0xF0,0xD0,0xD5,0x06, +0x84,0x01,0xD5,0x02,0x84,0x00,0x3E,0x07,0xEE,0xD9,0x2E,0x17,0xF0,0xCA,0x2E,0x07, +0xF0,0xC7,0x5A,0x18,0x01,0x04,0x8C,0x04,0xD5,0x0D,0x5A,0x18,0x02,0x09,0x3C,0x13, +0xF8,0x69,0x5C,0xF0,0x80,0x38,0xE9,0x03,0x8E,0x01,0xD5,0x04,0xE6,0xC4,0xE9,0xFD, +0x8C,0x01,0x3E,0x07,0xF0,0xC7,0x2E,0x07,0xF0,0xC7,0x80,0x20,0x96,0x02,0x5E,0xF0, +0x00,0x3D,0xE9,0x04,0x44,0x10,0x00,0x3C,0xD5,0x05,0x96,0x0A,0x4E,0x04,0x00,0x03, +0x84,0x20,0x96,0x8A,0x5E,0xF1,0x00,0x29,0x3E,0x17,0xF0,0xC7,0xE9,0x05,0x49,0xFF, +0xFE,0xCF,0x84,0x00,0xD5,0x09,0x2E,0x07,0xEE,0xD9,0xC0,0x06,0xC2,0x04,0x8E,0x21, +0x3E,0x17,0xF0,0xC7,0x84,0x01,0xFC,0x81,0xA7,0x08,0xA6,0xC0,0xE2,0x64,0x40,0x32, +0x3C,0x1A,0xAE,0xD0,0xA7,0x01,0xA6,0xC9,0xE2,0x83,0x40,0x32,0x3C,0x1A,0xAE,0xD1, +0xA7,0x0A,0xA6,0xC2,0xA6,0x4B,0xA6,0x03,0xE2,0x64,0x40,0x32,0x3C,0x1A,0xE2,0x01, +0x40,0x10,0x3C,0x1A,0xAE,0xD2,0xAE,0x53,0xDD,0x9E,0xFC,0x48,0x50,0xAF,0x80,0x14, +0x80,0xE1,0x81,0x00,0x84,0x20,0x81,0x22,0x80,0x0A,0xFA,0x5C,0x83,0x85,0xF3,0x83, +0x80,0xC4,0x49,0x00,0x4C,0x05,0xA6,0x7B,0x2F,0xE6,0xCC,0x7E,0xA6,0x3A,0x80,0x41, +0x42,0x20,0x78,0x73,0x38,0x54,0x09,0x01,0x8A,0xBC,0x97,0x6B,0x4E,0x52,0x00,0x8F, +0x44,0x22,0x3D,0x20,0x80,0x89,0x38,0x11,0x05,0x01,0x44,0x30,0x00,0xFF,0xF1,0x82, +0x44,0x12,0x3F,0x84,0x45,0xC0,0xFF,0xFF,0x38,0x80,0x81,0x01,0x84,0x00,0xF0,0x81, +0x80,0x0A,0x40,0x22,0x24,0x01,0xF1,0x03,0x96,0x90,0xE2,0x41,0xE8,0x2D,0x08,0x32, +0x00,0x01,0x81,0x46,0xFA,0x38,0x42,0xA1,0x84,0x73,0x00,0xF5,0x00,0x20,0x5A,0xF8, +0x01,0xF2,0x38,0x20,0x0E,0x02,0xCA,0xEE,0x04,0x25,0x00,0x01,0x04,0xA5,0x00,0x02, +0xF1,0x02,0x40,0xA4,0x28,0x01,0x9A,0x8A,0x42,0xA5,0x28,0x24,0x42,0xA1,0x08,0x73, +0x40,0x25,0x0C,0x09,0xC2,0x08,0x40,0xFE,0x08,0x06,0x81,0x42,0xE8,0x05,0x44,0xA0, +0xFF,0xFF,0xD5,0x02,0x81,0x4F,0xF1,0x01,0x40,0xAE,0x29,0x57,0x88,0x2A,0x38,0xA0, +0x0E,0x0A,0xF1,0x81,0xD5,0xCF,0x84,0x40,0x9C,0x34,0x80,0x82,0xB0,0x45,0x54,0x91, +0x00,0xFF,0x38,0xF0,0x8A,0x02,0xE8,0x28,0xF1,0x01,0x42,0x37,0x94,0x24,0x04,0xA0, +0x00,0x02,0x40,0xF1,0x85,0xF7,0xB4,0x60,0xF1,0x02,0x42,0x35,0x0C,0x24,0x41,0xC5, +0x3C,0x00,0x42,0x37,0x84,0x73,0x40,0x31,0xF0,0x77,0xB6,0x60,0xA0,0xC1,0xB0,0x45, +0x42,0x35,0x0C,0x24,0x42,0x37,0xA0,0x73,0x40,0x31,0xF0,0x77,0xA8,0xC1,0x38,0x30, +0x8A,0x02,0xF1,0x01,0xFE,0xEC,0x40,0x31,0x84,0x77,0x89,0x43,0x8C,0x81,0x97,0x20, +0x14,0xA0,0x00,0x02,0x80,0x69,0x8C,0x41,0x50,0x00,0x00,0x28,0x5A,0x28,0x0B,0xD0, +0x5A,0x48,0x01,0x15,0xFA,0x18,0x42,0x61,0x80,0x73,0x00,0x03,0x00,0x1E,0xF2,0x18, +0x8C,0x01,0x10,0x03,0x00,0x1E,0xA6,0x3B,0xA6,0x7A,0x88,0x02,0x42,0x00,0xF8,0x73, +0x00,0x13,0x00,0x19,0x58,0x10,0x80,0x20,0xAE,0x40,0xFC,0xC8,0xFC,0x40,0x51,0xFF, +0xFD,0x48,0xB1,0xD2,0xF4,0x89,0x3A,0x03,0x8C,0x20,0x02,0x0F,0x80,0x28,0x44,0x10, +0xF1,0x4C,0xF0,0x84,0xB0,0x1D,0x83,0x85,0x3A,0x20,0x94,0x00,0x3A,0x20,0x14,0x20, +0x44,0x10,0x00,0xFF,0x84,0x4B,0xB0,0x1A,0x02,0x6F,0x80,0x29,0x49,0x00,0x4B,0x50, +0xB0,0x36,0x84,0x20,0x44,0x20,0x01,0xE0,0x49,0x00,0x4B,0x4A,0x00,0x03,0x80,0x0C, +0xF0,0x83,0xF0,0x04,0xE2,0xC0,0x40,0x60,0x3C,0x1B,0x3C,0x03,0xF6,0x93,0xF6,0x87, +0x96,0x36,0xC0,0x0B,0xF1,0x03,0x00,0x0F,0x80,0x0C,0x5C,0xF0,0x80,0x55,0xE8,0x03, +0x44,0x00,0x00,0x55,0x96,0x00,0xF0,0x83,0x04,0x2F,0x80,0xB6,0x2E,0x36,0xCC,0x7E, +0x51,0xEF,0x80,0x60,0x2E,0x06,0xCC,0x7F,0xF0,0x88,0xA6,0x10,0x94,0x02,0x88,0x02, +0xF0,0x8B,0x84,0x00,0xF0,0x82,0xF0,0x0B,0x4C,0x20,0x00,0xAE,0x84,0x80,0xA7,0x55, +0x00,0x91,0x00,0x04,0x80,0x04,0xB1,0xDD,0x44,0xAF,0xFF,0xDF,0x38,0x12,0x1C,0x00, +0x99,0xBC,0x88,0x25,0x96,0x48,0xE2,0x23,0x20,0x63,0x00,0x01,0xE8,0x25,0x88,0xC9, +0x04,0x8F,0x80,0x08,0x97,0xB0,0xE2,0xC8,0xE8,0x1F,0x04,0x8F,0x80,0xB7,0x88,0x28, +0x42,0x13,0x0C,0x73,0xA7,0x88,0x40,0x13,0x28,0x02,0x5A,0x10,0x1F,0x16,0x97,0xA7, +0x84,0x20,0x54,0x80,0x80,0xFF,0x4C,0x80,0x40,0x07,0x38,0x6F,0x00,0x08,0x8C,0x01, +0x96,0x00,0xD5,0x0A,0x38,0x8F,0x04,0x00,0x4C,0x83,0x00,0x07,0x8C,0x21,0x54,0xF0, +0x80,0xFF,0xE2,0x0F,0xE8,0xEF,0x8C,0x82,0x5A,0x48,0x10,0xD2,0x42,0x54,0x8C,0x73, +0x04,0x1F,0x80,0xB8,0x95,0x69,0x88,0x25,0xF1,0x8A,0x84,0xC0,0x4C,0x60,0x00,0x69, +0x9D,0xF1,0x96,0x78,0xF1,0x85,0x80,0xA1,0xD0,0x61,0x38,0x1F,0x18,0x00,0x44,0x42, +0x3C,0xB0,0x44,0x72,0x3C,0xB0,0x38,0xF2,0x04,0x00,0x38,0x4F,0x14,0x00,0x38,0x83, +0x90,0x00,0x5A,0xF0,0xFF,0x51,0x5A,0x80,0xFF,0x4F,0xF7,0x0A,0x81,0x3C,0x22,0xA3, +0x80,0x00,0x44,0x70,0x00,0x64,0x42,0xA5,0x1C,0x24,0xFA,0xF8,0x42,0x97,0x9C,0x73, +0x50,0x94,0x80,0x20,0x00,0xF4,0x80,0x07,0x00,0x94,0x80,0x08,0x04,0x7F,0x80,0xB8, +0x42,0xF4,0x8C,0x73,0x38,0x93,0xBD,0x11,0x40,0x75,0x24,0xF7,0xF7,0x86,0xFB,0x38, +0x80,0xFC,0x42,0x74,0x24,0x73,0x50,0x83,0x80,0x20,0x00,0xF4,0x00,0x07,0x00,0x84, +0x00,0x08,0x04,0x7F,0x80,0xB8,0x42,0xF4,0x0C,0x73,0x38,0x83,0xBD,0x11,0xF7,0x06, +0x40,0xA5,0x21,0x57,0xE3,0x47,0xE8,0x04,0x00,0x9F,0x80,0x18,0xD5,0x03,0x54,0x95, +0x00,0xFF,0xF7,0x02,0xE6,0xF4,0xE8,0x17,0x04,0xAF,0x80,0x02,0x85,0x03,0xB1,0xE7, +0x42,0x75,0x20,0x73,0xE2,0x24,0x81,0x04,0x40,0x80,0xBC,0x1B,0xE2,0x81,0x40,0x12, +0x3C,0x1A,0xAE,0x79,0xF1,0x02,0x10,0x83,0x80,0x00,0x8C,0x21,0x96,0x48,0x10,0x93, +0x80,0x02,0xF1,0x82,0x8C,0xA1,0x97,0x68,0xD5,0xA0,0xF6,0x05,0xD5,0x98,0x8C,0x44, +0x48,0xFF,0xFF,0x53,0x3C,0x03,0xF6,0x69,0xE6,0x1A,0x84,0x00,0xE9,0x16,0x80,0x3C, +0x84,0x00,0x08,0x20,0x80,0x2E,0x2E,0x37,0xEC,0x9D,0x80,0xA0,0xD2,0x0B,0xA7,0x08, +0x4C,0x41,0xC0,0x04,0x8C,0x01,0x96,0x00,0x8C,0xA1,0x97,0x68,0x50,0x10,0x80,0x28, +0xD5,0xF6,0x84,0x21,0x40,0x00,0x80,0x06,0xF0,0x85,0x46,0x00,0x08,0x95,0x84,0xC0, +0x50,0x00,0x04,0x3F,0x81,0x26,0xF0,0x8B,0x00,0x0E,0x00,0x00,0xE3,0x20,0x4E,0xF2, +0x01,0x0F,0xB0,0x1A,0xFB,0x58,0x38,0x90,0x24,0x08,0x50,0x04,0x80,0x01,0x96,0x00, +0xF0,0x88,0x80,0xE0,0x42,0x04,0xA8,0x24,0xF0,0x8A,0x88,0x1C,0xF0,0x86,0x00,0x0E, +0x00,0x00,0xE2,0xE0,0x4E,0xF2,0x00,0xF8,0xF0,0x06,0x00,0x10,0x00,0x2B,0x5A,0x10, +0xFF,0x27,0x80,0x1C,0x42,0x03,0xA8,0x73,0x00,0x30,0x00,0x2B,0x44,0x02,0x40,0x04, +0x5A,0x30,0xFF,0x14,0x44,0x20,0x00,0xCC,0x80,0x80,0x42,0x40,0x88,0x73,0x00,0x42, +0x00,0xB5,0x5A,0x48,0x02,0x0B,0x80,0x80,0x42,0x41,0x88,0x73,0x00,0x22,0x00,0xB5, +0x5A,0x28,0x02,0x04,0x48,0x00,0x00,0xD4,0x44,0x20,0x00,0xCC,0x42,0x00,0x88,0x73, +0x00,0x00,0x00,0xB4,0x5A,0x08,0x01,0x04,0x48,0x00,0x00,0xCA,0x80,0x1C,0x42,0x03, +0xA8,0x73,0x00,0x00,0x00,0x2B,0x5A,0x00,0xFF,0x0E,0x44,0x30,0x00,0xCC,0x44,0x22, +0x40,0x04,0x42,0x20,0x0C,0x73,0x00,0x21,0x00,0xB4,0x5A,0x28,0x01,0x04,0x48,0x00, +0x00,0xB7,0xE6,0xD4,0x4E,0xF2,0x00,0xB4,0xF2,0x06,0x80,0x7C,0x42,0x33,0xA8,0x73, +0xA0,0x94,0xA0,0xDC,0xFA,0x98,0x9A,0xD3,0x4E,0x34,0x00,0x03,0xFE,0xDA,0x80,0x5C, +0x80,0xBC,0x42,0x24,0x90,0x73,0x42,0x53,0x90,0x73,0xA0,0x95,0xA1,0x2D,0x8A,0x44, +0x4E,0x24,0x00,0x03,0xFE,0x92,0xFE,0x94,0x42,0x21,0x8C,0x73,0xF3,0x0B,0xE0,0x62, +0xE8,0x17,0xF3,0x05,0x5A,0x30,0x01,0x04,0x48,0x00,0x00,0x92,0x50,0x34,0x80,0x01, +0x80,0x9C,0x42,0x41,0xA8,0x73,0x2E,0x57,0xEC,0x9D,0xA6,0xE6,0x4C,0x51,0xC0,0x88, +0x9C,0xF9,0x80,0x9C,0x42,0x41,0xA8,0x73,0xA6,0xE6,0x4C,0x32,0xC0,0x81,0xF5,0x0A, +0xFA,0x68,0xB1,0x36,0x42,0x43,0x0C,0x73,0x88,0xBC,0x8C,0xAC,0xB6,0xA4,0x80,0xBC, +0x42,0x53,0xA8,0x73,0x8C,0xAC,0x50,0x32,0x00,0x10,0xA9,0x61,0xA8,0xA2,0x10,0x92, +0x00,0x10,0xF4,0x06,0xAF,0xD9,0xB0,0xA7,0x84,0xA0,0x51,0xE2,0x00,0x20,0xF4,0x02, +0xD4,0x19,0x20,0x8F,0x00,0x05,0xA7,0x10,0x4C,0x82,0x40,0x11,0x80,0x9C,0x42,0x43, +0xA8,0x73,0x20,0x82,0x00,0x25,0xA7,0x11,0x4C,0x82,0x40,0x09,0xA7,0x1B,0x00,0x81, +0x00,0x02,0xE3,0x04,0x40,0x44,0x3C,0x1A,0xAF,0x1B,0x8C,0xA1,0x97,0x68,0x8C,0x43, +0xD5,0xE7,0xFA,0x48,0x5A,0x10,0xFF,0x1F,0x5A,0x00,0xFF,0x19,0x44,0x32,0x40,0x04, +0x44,0x50,0x00,0xCC,0x80,0x83,0x42,0x40,0x94,0x73,0x42,0x30,0x14,0x73,0x00,0x82, +0x00,0xB5,0x00,0x51,0x80,0xB5,0xE2,0xA8,0xE9,0x09,0xE3,0x05,0xE9,0x0D,0x02,0x42, +0x00,0x58,0x02,0x31,0x80,0x58,0xE2,0x83,0xE9,0x07,0xB0,0x36,0x42,0x03,0x08,0x73, +0xD5,0x0D,0x5A,0x00,0xFF,0x08,0xB0,0x76,0x42,0x13,0x08,0x73,0x10,0x00,0x80,0x12, +0xD5,0x07,0xB0,0x36,0x42,0x03,0x08,0x73,0x84,0x3F,0x10,0x10,0x00,0x12,0xFA,0x08, +0xB0,0x76,0x42,0x13,0x00,0x73,0x50,0x30,0x80,0x10,0xA6,0x1A,0x81,0x01,0xF3,0x8C, +0x5A,0x00,0xFF,0x14,0x44,0x10,0x00,0xCC,0xF2,0x09,0x42,0x20,0x04,0x73,0x80,0x02, +0xB0,0x57,0x84,0x40,0x49,0xFF,0xE1,0x81,0xF0,0x17,0xF3,0x0C,0xB4,0x20,0x14,0x14, +0x00,0x03,0x00,0x00,0x00,0x14,0xAE,0x1C,0x8C,0xC1,0x97,0xB0,0x8C,0xE1,0x97,0xF8, +0x48,0xFF,0xFF,0x07,0x04,0x9F,0x80,0x08,0x48,0xFF,0xFE,0xF0,0xB0,0x36,0xF0,0x82, +0x85,0x20,0x4C,0x93,0x00,0x37,0x50,0x14,0x80,0x01,0x54,0x90,0x80,0xFF,0x81,0x49, +0x4C,0xA3,0x00,0x2E,0xFA,0x48,0xB0,0x76,0x42,0x15,0x08,0x73,0xA0,0xC2,0xA0,0x8A, +0xE0,0x43,0xE8,0x20,0xB1,0xE1,0x83,0xC0,0x81,0xE7,0x3A,0x2F,0x14,0x04,0x3A,0x27, +0x94,0x24,0x3A,0x2F,0x0C,0x00,0x81,0x01,0x3A,0x27,0x8C,0x20,0x80,0xE0,0x3A,0x24, +0x14,0x04,0x3A,0x23,0x94,0x24,0x3A,0x24,0x0C,0x00,0x3A,0x2F,0x0C,0x20,0xB0,0xA1, +0x80,0xE2,0x3A,0x23,0x94,0x04,0x3A,0x20,0x94,0x24,0x3A,0x27,0x8C,0x00,0x3A,0x24, +0x0C,0x20,0x50,0x15,0x00,0x01,0x54,0xA0,0x80,0xFF,0xD5,0xD3,0x8C,0x18,0xD5,0xCA, +0xF0,0x04,0x44,0x82,0x40,0x04,0xFE,0x04,0xF0,0x84,0xF0,0x07,0xF1,0x04,0xFE,0x04, +0xF0,0x86,0x44,0x00,0x00,0x64,0xFE,0x0C,0xF0,0x8D,0xB0,0x76,0xFA,0x08,0x42,0x14, +0x80,0x73,0xF1,0x8C,0xF5,0x02,0xF1,0x0C,0xD1,0x45,0xF0,0x02,0xB0,0x5A,0x00,0x00, +0x00,0x11,0x38,0x50,0x80,0x00,0xF0,0x02,0x00,0x00,0x00,0x10,0x38,0x20,0x80,0x00, +0xD2,0x35,0xF0,0x02,0x00,0x00,0x00,0x12,0x5A,0x00,0xFF,0x25,0x44,0x10,0x00,0xCC, +0xF3,0x09,0x42,0x30,0x04,0x73,0xF0,0x02,0x50,0x11,0x80,0x94,0x00,0x31,0x80,0x94, +0xB4,0x00,0xA7,0x01,0xE2,0x83,0xE9,0x16,0xA7,0x09,0xA7,0x80,0xE2,0x86,0xE9,0x12, +0xA7,0x8A,0xA7,0xC3,0xE2,0xE6,0xE9,0x0E,0xA7,0xCB,0xA6,0x42,0xE2,0xE1,0xE9,0x0A, +0xF1,0x02,0xA0,0x49,0x00,0x90,0x80,0x01,0xE3,0x23,0xE9,0x04,0xA6,0xC8,0xE2,0x83, +0xE8,0x6B,0xF0,0x05,0x5A,0x00,0x01,0x04,0x48,0x00,0x01,0xD9,0xF0,0x02,0x00,0x00, +0x00,0x13,0x5C,0xF0,0x00,0x47,0x4E,0xF2,0x00,0xB6,0xF0,0x02,0x8C,0x18,0xF0,0x82, +0xD5,0xBA,0x84,0xC0,0x44,0x72,0x3C,0xB0,0x04,0x0F,0x80,0xB6,0xA6,0x00,0xE2,0xC0, +0x4E,0xF2,0x01,0xC9,0x04,0x0F,0x80,0xB6,0x94,0x72,0x88,0x01,0xB1,0x5D,0xA6,0x85, +0xA6,0x04,0xF2,0x82,0xF0,0x83,0x84,0x40,0x2E,0x96,0xCC,0x7E,0x80,0x62,0x2E,0x06, +0xCC,0x7F,0x45,0xEF,0xFF,0xDF,0xF0,0x84,0x50,0x8F,0x80,0x60,0x50,0xAF,0x80,0x68, +0xF4,0x02,0x38,0x01,0x14,0x00,0x88,0x04,0x96,0x00,0x99,0x2A,0xE2,0x09,0x20,0x42, +0x00,0x01,0xE8,0x1E,0x04,0xFF,0x80,0x03,0x88,0x8F,0x04,0xFF,0x80,0x04,0x97,0x20, +0xE2,0x8F,0xE8,0x16,0x04,0xFF,0x80,0xB7,0x88,0x0F,0x42,0x02,0x24,0x73,0xA6,0x00, +0x40,0x40,0x78,0x02,0x5A,0x40,0x1F,0x0D,0x96,0x27,0x38,0x03,0x80,0x00,0x5A,0x00, +0xFF,0x08,0x38,0x05,0x00,0x00,0x38,0x04,0x0C,0x08,0x8C,0x61,0x96,0xD8,0x8C,0x42, +0x5A,0x28,0x10,0xD8,0x50,0x5F,0x82,0xD8,0xB4,0x05,0xB0,0x98,0x88,0x20,0xA0,0x29, +0x8C,0x22,0xB6,0x1F,0x50,0x4E,0x00,0x0C,0xA0,0x2A,0x84,0xAA,0x8C,0xC1,0x49,0xFF, +0xFC,0x46,0x97,0xB0,0xD5,0xAA,0xA6,0xCB,0xE2,0x66,0xE9,0x94,0xA6,0xCA,0xE2,0xE3, +0xE9,0x91,0x00,0x40,0x00,0x22,0x00,0x30,0x80,0x22,0x4C,0x41,0xFF,0x8C,0xA1,0x03, +0xA0,0xCB,0x44,0x70,0x00,0x7D,0x88,0x64,0xF4,0x02,0xA1,0xA3,0x44,0x40,0x00,0x64, +0xFF,0xF4,0x40,0xF3,0x91,0xF6,0xE0,0x6F,0xE8,0x08,0x44,0x70,0x00,0x4B,0xFF,0xBC, +0x40,0x43,0x10,0x96,0xE0,0x83,0xE9,0x13,0x00,0x30,0x00,0x1E,0x00,0x00,0x80,0x1E, +0x44,0xF0,0x00,0x64,0x98,0x58,0xF0,0x02,0x00,0x30,0x00,0x14,0x44,0x00,0x00,0x96, +0xFE,0x1C,0x40,0x00,0x3C,0x16,0xE0,0x01,0x4E,0xF3,0xFF,0x65,0xF3,0x06,0x84,0x21, +0x3C,0x03,0xF6,0x93,0xF4,0x02,0x96,0x36,0xA1,0x22,0xC0,0x06,0xF0,0x0D,0xE0,0x80, +0x4E,0xF2,0xFF,0x65,0xD5,0x0F,0x44,0x00,0x00,0x64,0xFE,0x1C,0xE0,0x80,0x5A,0x18, +0x01,0x09,0xE8,0x08,0xF0,0x02,0x00,0x1F,0x80,0x55,0x00,0x00,0x00,0x13,0xE2,0x20, +0xE9,0x13,0xF0,0x02,0xF1,0x03,0x00,0x00,0x00,0x13,0xE2,0x20,0xE9,0x0D,0x48,0xFF, +0xFF,0x4E,0xFA,0x38,0x80,0x1C,0x42,0x01,0x04,0x73,0x00,0x30,0x00,0x2B,0x5A,0x30, +0xFF,0x04,0x48,0x00,0x00,0xF9,0xE2,0xA2,0x80,0xC2,0x40,0x62,0xBC,0x1B,0xE2,0x45, +0x40,0x22,0xBC,0x1B,0xFA,0x18,0x80,0x3C,0x42,0x11,0x00,0x73,0x50,0x10,0x80,0x20, +0x00,0x30,0x80,0x0B,0x81,0x42,0x5A,0x38,0xFF,0x04,0x48,0x00,0x00,0xE1,0x80,0x5C, +0x42,0x23,0x00,0x73,0x50,0x21,0x00,0x20,0x00,0x51,0x00,0x0B,0x80,0x86,0x5A,0x50, +0xFF,0x32,0x44,0x00,0x00,0xCC,0x80,0xE8,0x42,0x71,0x80,0x73,0x50,0x33,0x80,0xB0, +0x00,0x91,0x80,0x05,0xFE,0x2C,0x88,0x08,0x5A,0x98,0x01,0x19,0x50,0x50,0x00,0xB0, +0x00,0x92,0x80,0x05,0x5A,0x98,0x01,0x0B,0x02,0x00,0x00,0x58,0x02,0x73,0x80,0x58, +0xE2,0xE0,0x84,0x02,0xE9,0x04,0xAE,0x2E,0xD5,0x12,0x84,0x02,0xAE,0x1E,0x84,0x1F, +0x80,0xCA,0x10,0x00,0x80,0x0B,0x81,0x44,0xD5,0x0D,0x50,0x00,0x00,0xB0,0xA6,0x45, +0x5A,0x10,0x01,0x04,0x48,0xFF,0xFE,0xFB,0x84,0x22,0xAE,0x46,0x84,0x1F,0x10,0x01, +0x00,0x0B,0xFA,0x38,0x9C,0x31,0x80,0x5C,0x42,0x20,0x04,0x73,0x80,0x02,0x84,0x40, +0xAE,0x84,0x42,0x03,0x04,0x24,0x40,0x4E,0x00,0x00,0x50,0x92,0x00,0x20,0xF0,0x87, +0x00,0x04,0x80,0x07,0xF0,0x8E,0x00,0x04,0x80,0x08,0xF0,0x8F,0x42,0x05,0x04,0x24, +0xF0,0x88,0x88,0x1C,0x50,0x70,0x00,0x20,0xA6,0x7F,0x50,0x20,0x00,0x08,0xF1,0x90, +0x00,0x13,0x80,0x08,0x04,0xF0,0x00,0x06,0xF1,0x91,0x50,0x12,0x00,0x10,0xA0,0xD2, +0x05,0xE0,0x80,0x02,0xF2,0x8B,0xA0,0xA4,0x42,0x37,0x8C,0x24,0x42,0x3F,0x08,0x73, +0xF2,0x0B,0xF1,0x8A,0x40,0x1F,0x3C,0x00,0x40,0x31,0x84,0x76,0xA8,0xD2,0xF2,0x0A, +0x50,0x50,0x00,0x10,0xA0,0xD1,0xA0,0xA9,0x42,0x27,0x88,0x24,0x42,0x2F,0x0C,0x73, +0x40,0x21,0x04,0x56,0xA8,0xA9,0x00,0x33,0x80,0x0A,0x00,0x24,0x80,0x0A,0xA8,0x46, +0x88,0x43,0x10,0x23,0x80,0x0A,0x00,0x33,0x80,0x09,0x00,0x24,0x80,0x09,0x88,0x43, +0x10,0x23,0x80,0x09,0x02,0x32,0x00,0x11,0x02,0x20,0x00,0x11,0x97,0x5B,0x97,0x13, +0xE0,0xA4,0x40,0x21,0xBC,0x1A,0x12,0x20,0x00,0x11,0xF0,0x08,0x40,0x1E,0x00,0x00, +0xF0,0x07,0x8C,0x2C,0x88,0x1C,0x8C,0x0C,0x80,0x41,0x49,0xFF,0xFB,0x17,0x00,0x04, +0x80,0x0B,0x5A,0x00,0xFF,0x05,0x10,0x03,0x80,0x0B,0xD5,0x05,0x00,0x03,0x80,0x0B, +0x10,0x04,0x80,0x0B,0xF2,0x0F,0x2E,0x06,0xCC,0x7E,0xF1,0x0E,0xF3,0x11,0x42,0x11, +0x00,0x73,0xF2,0x10,0x42,0x21,0x80,0x73,0x80,0x02,0x04,0x2F,0x80,0xB8,0x38,0xF1, +0x05,0x11,0x38,0x01,0x01,0x11,0xE0,0x0F,0xE8,0x12,0xFA,0x18,0x80,0x3C,0x42,0x13, +0x00,0x73,0x50,0x10,0x80,0x20,0x80,0x7C,0x42,0x35,0x00,0x73,0xA6,0x8F,0x50,0x01, +0x80,0x20,0x00,0x10,0x80,0x08,0xAE,0x87,0x10,0x10,0x00,0x08,0x00,0x2E,0x00,0x00, +0xB0,0x1A,0xB0,0x5A,0x9A,0x41,0x96,0x48,0xE2,0x22,0x4E,0xF2,0xFE,0x58,0x08,0x10, +0x00,0x01,0x4C,0x60,0xFF,0xF8,0x10,0xA0,0x7F,0xFF,0xD5,0xF4,0x81,0x46,0x80,0xC2, +0x48,0xFF,0xFF,0x59,0x44,0x00,0x00,0xCC,0x80,0x88,0x42,0x41,0x80,0x73,0x02,0x32, +0x00,0x59,0x4E,0x32,0xFF,0x02,0x80,0x7C,0x42,0x32,0x84,0x73,0x00,0x11,0x80,0x2B, +0x5A,0x18,0xFF,0x04,0x48,0xFF,0xFE,0xF9,0x80,0x68,0x42,0x30,0x80,0x73,0x02,0x01, +0x80,0x59,0x4E,0x02,0xFE,0xF2,0x48,0xFF,0xFE,0x32,0xF3,0x04,0x84,0x20,0x48,0xFF, +0xFE,0xC1,0x51,0xFF,0x82,0xB8,0xFC,0xC0,0xFC,0x45,0x3C,0x03,0xF6,0x91,0x87,0x81, +0x96,0x06,0xC0,0x03,0x45,0xC0,0x00,0x14,0x46,0xA0,0x02,0x25,0x50,0x75,0x05,0x10, +0x42,0x7E,0x1C,0x24,0x44,0x00,0x00,0x64,0x46,0x90,0x08,0x95,0x40,0x73,0x80,0xF6, +0x44,0x62,0x40,0x0C,0x85,0x00,0x50,0x94,0x84,0x40,0x02,0x03,0x00,0x54,0x4E,0x02, +0x00,0xE0,0xB0,0x45,0x84,0x40,0x80,0x06,0x49,0xFF,0xDE,0xE7,0xB0,0x46,0x84,0x41, +0x80,0x06,0x49,0xFF,0xDE,0xE2,0xB0,0x47,0x84,0x42,0x80,0x06,0x49,0xFF,0xDE,0xDD, +0xB0,0x48,0x84,0x43,0x80,0x06,0x49,0xFF,0xDE,0xD8,0xB0,0x49,0x80,0x06,0x84,0x44, +0x49,0xFF,0xDE,0xD3,0xF1,0x05,0x23,0xE0,0x80,0x04,0x22,0x00,0x80,0x05,0x13,0xE0, +0x80,0x08,0x12,0x00,0x80,0x09,0x02,0x43,0x00,0x54,0x84,0x24,0xE6,0x85,0xE8,0x03, +0x9E,0x61,0x96,0x49,0xF1,0x81,0x44,0x10,0x00,0xCC,0x42,0xF4,0x04,0x24,0x44,0x12, +0x40,0xD4,0x40,0x50,0xBC,0x00,0x44,0x32,0x40,0xD4,0xB4,0x25,0x40,0x20,0x98,0x09, +0x96,0x86,0xCA,0x18,0x50,0x21,0xFF,0x30,0x40,0xF1,0x3C,0x00,0x22,0x27,0x80,0x64, +0x22,0xF7,0x80,0x65,0x40,0x2F,0x08,0x01,0x8A,0x0F,0xFE,0x04,0x42,0x01,0x08,0x73, +0x46,0x20,0x00,0x9C,0x50,0x21,0x04,0x00,0xE0,0x40,0xE8,0x04,0x58,0x10,0x80,0x40, +0xB6,0x25,0x44,0x10,0x00,0x33,0x84,0x00,0x42,0x14,0x04,0x24,0x80,0x40,0x45,0xE2, +0x40,0x04,0xF1,0x83,0xF1,0x01,0xE2,0x41,0xE8,0x31,0xB0,0x45,0xB1,0x45,0x38,0x10, +0x8A,0x02,0xF1,0x82,0x9C,0x51,0x38,0x52,0x86,0x02,0xF1,0x02,0x22,0xF0,0x80,0x04, +0x22,0x12,0x80,0x04,0x22,0x52,0x80,0x05,0x40,0x17,0x84,0x01,0x04,0xFF,0x80,0x02, +0x22,0xF7,0x80,0x05,0x40,0x57,0x94,0x01,0xE6,0x42,0xE8,0x0F,0x04,0xFF,0x80,0x03, +0x40,0xF7,0x88,0x00,0x50,0xF7,0x80,0x24,0x40,0xF7,0x88,0x08,0x40,0xFF,0x3C,0x00, +0x12,0x17,0x80,0x02,0x12,0x57,0x80,0x03,0xFF,0x6C,0x42,0x50,0x84,0x73,0xE0,0x05, +0x8C,0x41,0x40,0x02,0xBC,0x1B,0x96,0x90,0xD5,0xCE,0xE6,0x82,0xE9,0x1B,0x46,0x10, +0x02,0x25,0x94,0x81,0x50,0x10,0x85,0x0F,0xE0,0x22,0xE8,0x06,0xE1,0x22,0x80,0x29, +0x40,0x11,0x3C,0x1A,0xD5,0x03,0x50,0x15,0x05,0x10,0x42,0x1E,0x04,0x24,0x14,0x13, +0x00,0x29,0x44,0x10,0x00,0xCC,0x42,0x34,0x04,0x73,0xB4,0x23,0x92,0x26,0x96,0x46, +0xC9,0x0F,0x3C,0x03,0xF6,0x91,0x96,0x06,0xC0,0x06,0x14,0x73,0x00,0x29,0x14,0x73, +0x00,0x28,0xD5,0x2E,0x44,0x00,0x57,0xE4,0x14,0x03,0x00,0x29,0xD5,0x27,0x50,0x15, +0x05,0x10,0x46,0x30,0x02,0x25,0x88,0x41,0x50,0x31,0x85,0x0F,0xE0,0x62,0xE8,0x05, +0xE1,0x22,0x80,0x22,0x40,0x14,0xBC,0x1B,0x44,0xF0,0x00,0x64,0x42,0x1E,0x04,0x24, +0x40,0x10,0xBC,0x36,0x14,0x13,0x00,0x29,0x46,0x10,0x02,0x25,0x94,0x02,0x50,0x10, +0x85,0x0F,0xE0,0x20,0xE8,0x05,0xE1,0x20,0x40,0x04,0xBC,0x1B,0xD5,0x03,0x50,0x05, +0x05,0x10,0x44,0xF0,0x00,0x64,0x40,0x00,0x3C,0x16,0x14,0x03,0x00,0x28,0x8D,0x01, +0x50,0x63,0x00,0xCC,0x5A,0x80,0x0B,0x04,0x48,0xFF,0xFF,0x19,0xFC,0xC5,0xFC,0x40, +0x51,0xFF,0xFD,0xF0,0x81,0x00,0xA6,0x00,0xF1,0x83,0x4E,0x02,0x01,0x69,0x4E,0x22, +0x01,0x67,0xE6,0x0C,0x80,0x20,0xE9,0x02,0x84,0x2B,0x96,0x08,0xE6,0x4C,0xF0,0x82, +0x80,0x02,0xE9,0x02,0x84,0x0B,0x96,0x00,0xB6,0x1F,0x46,0x30,0x50,0x00,0x84,0x00, +0xB0,0x8B,0x84,0x20,0x88,0x40,0x38,0x31,0x06,0x0A,0x8C,0x21,0x5A,0x18,0x0B,0xFD, +0x50,0x00,0x00,0x2C,0x5A,0x09,0xE4,0xF6,0x3C,0x03,0xF6,0x91,0x96,0x06,0x56,0x00, +0x00,0x01,0xF0,0x86,0x49,0x00,0x27,0x24,0xC0,0x04,0x3C,0x03,0xF6,0x91,0x96,0x06, +0xF0,0x84,0xB0,0x0B,0xF0,0x81,0xF0,0x03,0xF1,0x03,0x50,0x60,0x00,0x18,0xB4,0x1F, +0x84,0xE0,0x8E,0x01,0x96,0x00,0x94,0x05,0x50,0x00,0x00,0x38,0x88,0x01,0xF0,0x85, +0x50,0xA4,0x00,0x10,0x87,0x80,0x84,0x00,0xF0,0x8A,0x00,0x05,0x00,0x1B,0x5A,0x00, +0xFF,0x04,0x48,0x00,0x00,0xC2,0x50,0x03,0x7F,0xEC,0xB4,0xA0,0xA0,0x82,0xA1,0x01, +0xA0,0xC3,0x04,0x15,0x00,0x01,0x88,0x45,0x88,0x64,0xB4,0x0A,0x49,0xFF,0xF7,0xCA, +0x04,0x15,0x00,0x02,0xA0,0xB1,0xE0,0x22,0x80,0x62,0x40,0x30,0xBC,0x1A,0xE0,0x41, +0x40,0x20,0xBC,0x1A,0xF1,0x04,0x94,0xDD,0x40,0x91,0x89,0x36,0x5A,0x18,0x01,0x33, +0x00,0x14,0x00,0x00,0x5A,0x18,0x01,0x2F,0x00,0x23,0x7F,0xE8,0x44,0x10,0x00,0xCC, +0xFE,0x54,0x44,0x22,0x40,0x04,0x88,0x41,0x00,0x21,0x00,0xB5,0x5A,0x28,0x02,0x23, +0x2E,0x20,0x1B,0x9C,0x5A,0x28,0x01,0x1F,0x44,0x22,0x40,0xCC,0x88,0x22,0x00,0x35, +0x7F,0xFC,0xA0,0x89,0x40,0x11,0x38,0x08,0x90,0x3A,0x96,0x48,0x40,0x21,0x20,0x08, +0xE2,0x23,0x90,0x5A,0xE9,0x0F,0x00,0x35,0x7F,0xFD,0xE2,0x61,0xE9,0x0B,0x00,0x15, +0x7F,0xFE,0x96,0x90,0xE2,0x41,0xE9,0x06,0x00,0x15,0x7F,0xFF,0xE2,0x22,0x4E,0xF2, +0x00,0xCF,0x80,0x80,0x46,0x00,0x50,0x00,0xE0,0x04,0xE8,0x02,0x80,0x80,0xF0,0x06, +0xC0,0x0A,0x5E,0xF4,0x80,0x20,0xE9,0x07,0x5E,0xF4,0x80,0x41,0xE9,0x05,0x44,0x90, +0x00,0x40,0xD5,0x02,0xFB,0x30,0x04,0x03,0x7F,0xFF,0xE0,0x04,0xE8,0x58,0xB4,0x26, +0xE0,0x01,0xE8,0x5A,0xB4,0x6A,0x50,0x73,0x7F,0xEC,0xB4,0x47,0x04,0x55,0x00,0x01, +0x9A,0x9A,0xA0,0x7B,0xA0,0xF9,0xA0,0x3A,0x9A,0xEB,0x42,0x50,0x84,0x24,0x42,0x50, +0x00,0x73,0x42,0x71,0x8C,0x24,0xF4,0x88,0xF5,0x87,0x42,0x71,0x08,0x73,0x49,0xFF, +0xF7,0x63,0xF5,0x07,0xF4,0x08,0x4E,0x04,0x00,0x03,0xFE,0x02,0x44,0x10,0x7F,0xFF, +0xE0,0x20,0xE8,0x08,0xE0,0xA7,0x90,0x01,0xE8,0x03,0x90,0xE2,0xD5,0xFA,0x90,0xA2, +0xD5,0xF8,0xC7,0x22,0xC5,0x20,0xFE,0x04,0xF0,0x8A,0xB0,0x0A,0xF5,0x89,0xF4,0x88, +0x49,0xFF,0xF7,0x4F,0xF0,0x87,0xF0,0x0A,0x40,0x70,0x1C,0xF6,0xB0,0x0A,0xF7,0x8A, +0x49,0xFF,0xF7,0x47,0xF1,0x07,0xF5,0x09,0x88,0x01,0x97,0xC0,0xF0,0x0A,0xF4,0x08, +0x40,0x50,0x14,0xB6,0xE6,0xFF,0xE9,0x05,0x8E,0xE1,0x90,0xA1,0x97,0xF8,0xD5,0xFB, +0xF5,0x8A,0xD5,0x02,0x80,0xE5,0x84,0x01,0x40,0x70,0x1C,0x0C,0x90,0xE7,0xF0,0x0A, +0x95,0xFE,0xE0,0xE0,0xE8,0x09,0xB4,0x06,0xE0,0x04,0xE9,0x06,0x42,0x42,0x24,0x24, +0x40,0x72,0x14,0x0A,0xD5,0x03,0x46,0x70,0x50,0x00,0xF0,0x01,0xF1,0x02,0x50,0xA5, +0x00,0x28,0x38,0x70,0x72,0x0A,0x51,0xCE,0x00,0x01,0x54,0x0E,0x00,0xFF,0xE2,0x01, +0x4E,0xF3,0xFF,0x2B,0xF0,0x01,0x50,0x63,0x00,0x20,0x50,0x00,0x00,0x2C,0xF0,0x81, +0xF0,0x05,0x4C,0x60,0x7F,0x1F,0xB4,0x1F,0xF1,0x02,0xF2,0x02,0xE2,0x01,0xB4,0x3F, +0xB1,0x8B,0x40,0x11,0x3C,0x1B,0x80,0x06,0x49,0xFF,0xEB,0xB8,0x44,0x70,0x00,0xCC, +0x44,0x22,0x3C,0x1C,0x84,0x20,0x84,0x0B,0x46,0x30,0x50,0x00,0xFA,0x98,0x44,0x52, +0x40,0x04,0x85,0x41,0x87,0x9F,0x0C,0x91,0x00,0x01,0x81,0xE9,0x42,0xF0,0x80,0x73, +0x38,0xF3,0x3E,0x02,0x4C,0xF1,0xC0,0x05,0x15,0xC1,0x7F,0xFF,0xD5,0x18,0x4E,0x95, +0x00,0x17,0x05,0xEF,0x80,0x03,0x40,0xF0,0x94,0x08,0x38,0xFF,0x3C,0x00,0x83,0xC8, +0x43,0xE4,0x90,0x73,0x81,0x25,0x42,0x97,0x9C,0x73,0x10,0xFF,0x00,0x2B,0x81,0xE9, +0x10,0xA4,0x80,0xB6,0x04,0x91,0x7F,0xFF,0x10,0x97,0x80,0xCF,0x8C,0x21,0x04,0xFF, +0x80,0x00,0x54,0x90,0x80,0xFF,0xE3,0x2F,0xE9,0xD7,0xD5,0x09,0x40,0x10,0x24,0x36, +0xB4,0x46,0x94,0x4D,0xE0,0x22,0x4E,0xF2,0xFF,0x2E,0xD5,0xA0,0x51,0xFF,0x82,0x10, +0xFC,0xC0,0xFC,0x40,0x84,0x81,0x40,0x42,0x04,0x0C,0xE4,0x02,0x40,0x20,0x04,0x0C, +0x95,0xA1,0x9D,0xE5,0x50,0x92,0x7F,0xFB,0xE9,0x23,0x84,0x60,0x90,0x01,0x8C,0x61, +0x5A,0x08,0x01,0xFE,0x40,0x21,0x0C,0x0E,0x40,0x01,0x84,0x0C,0x85,0x00,0xE0,0x49, +0xE9,0x03,0xE0,0xE2,0xE8,0x16,0x80,0x68,0xE0,0x46,0xE8,0x06,0xFE,0x94,0x40,0x21, +0x04,0x0E,0x8C,0x61,0xD5,0xFA,0x81,0x03,0x81,0x44,0x84,0xA0,0xD3,0x04,0x91,0x41, +0x8C,0xA1,0xD5,0xFD,0xE4,0xAA,0x88,0x0A,0x90,0x41,0xE9,0xEA,0xD5,0x02,0x84,0x00, +0xFC,0xC0,0xFC,0x4B,0xF0,0x85,0x44,0x00,0xF1,0x5C,0xF1,0x82,0xB0,0x4C,0x81,0x42, +0x3A,0x20,0x14,0x04,0x3A,0x20,0x94,0x24,0xA4,0x00,0xAC,0x08,0x4E,0xA3,0x00,0x1C, +0x3C,0x04,0x0A,0xB9,0x3C,0x14,0x0A,0xB8,0x9A,0x41,0x2E,0x06,0xCC,0x7E,0x8E,0x01, +0x96,0x02,0x40,0x00,0x80,0x16,0x96,0x03,0x44,0x62,0x13,0x48,0xF2,0x02,0xF0,0x81, +0x80,0x26,0xFA,0x18,0x42,0x11,0x00,0x73,0xF1,0x83,0x2E,0x06,0xCC,0x7F,0x8E,0x01, +0xF0,0x87,0xD5,0x0E,0x3C,0x04,0x0A,0xBB,0x3C,0x14,0x0A,0xBA,0x9A,0x41,0x2E,0x06, +0xCC,0x7F,0xD5,0xE6,0x00,0x03,0x00,0x2C,0xC8,0x08,0x50,0x63,0x00,0x28,0xF0,0x03, +0x4C,0x60,0x7F,0xFA,0x48,0x00,0x01,0x4B,0x04,0x83,0x00,0x06,0x4E,0x87,0xFF,0xF7, +0x4E,0xA3,0x00,0x09,0x00,0x53,0x00,0x27,0xC5,0xF1,0x2E,0x06,0xCC,0x7E,0x8E,0x01, +0xD5,0x05,0x00,0x53,0x00,0x28,0xC5,0xEA,0xF0,0x07,0xD0,0xE8,0x00,0x93,0x00,0x27, +0x00,0x73,0x00,0x28,0x87,0x82,0x84,0x20,0x84,0x46,0xB0,0x08,0x49,0x00,0x43,0xE0, +0xB0,0xD1,0xFA,0x42,0x80,0x03,0x84,0x20,0xF3,0x86,0x49,0x00,0x43,0xD9,0x84,0x40, +0x2F,0xE6,0xCC,0x7E,0x80,0xA2,0x2E,0x06,0xCC,0x7F,0xF0,0x84,0xB0,0x0C,0x38,0x30, +0x08,0x00,0x88,0x02,0x40,0x11,0xA4,0x00,0x96,0x4A,0x20,0x00,0x00,0x01,0x4E,0x15, +0x00,0x21,0x96,0x00,0x99,0x07,0x97,0x22,0x4E,0x45,0x00,0x1C,0xE0,0x3E,0xE8,0x19, +0x04,0xFF,0x80,0x04,0xE0,0x8F,0xE8,0x15,0x42,0x12,0x78,0x73,0xF4,0x05,0x38,0x12, +0x05,0x11,0x4E,0x15,0x00,0x04,0x88,0xA1,0xD5,0x02,0x84,0x20,0x8C,0x01,0x8C,0x61, +0x96,0xD8,0x96,0x00,0x84,0x83,0x42,0x01,0x90,0x73,0xF3,0x06,0x38,0x11,0x81,0x09, +0x8C,0x42,0x5A,0x28,0x12,0xD5,0xB0,0x91,0x84,0x20,0x84,0x00,0x38,0x41,0x01,0x01, +0xB0,0xC8,0x4E,0xA3,0x00,0x09,0x38,0x31,0x85,0x01,0x88,0x64,0xB1,0x08,0x38,0x32, +0x05,0x09,0xD5,0x07,0x38,0x31,0x81,0x01,0x88,0x64,0xB1,0x08,0x38,0x32,0x01,0x09, +0x8C,0x01,0x5A,0x08,0x03,0xED,0x8C,0x21,0x8C,0x46,0x5A,0x18,0x03,0xE8,0xF0,0x02, +0x5A,0x08,0x01,0x21,0x22,0x0F,0x80,0x11,0x22,0xFF,0x80,0x10,0xE0,0x0F,0xE8,0x08, +0x4E,0xA3,0x00,0x05,0x50,0x04,0xFF,0xFF,0xD5,0x0B,0x8E,0xE1,0xD5,0x0D,0x22,0xFF, +0x80,0x12,0xE0,0x0F,0xE8,0x0A,0x4E,0xA3,0x00,0x07,0x50,0x04,0x80,0x01,0x54,0x90, +0x00,0xFF,0xD5,0x03,0x8C,0xE1,0x97,0xF8,0x5B,0xC0,0x01,0x05,0x87,0x81,0x48,0xFF, +0xFF,0x84,0x44,0x00,0x00,0x64,0x44,0x10,0x00,0x55,0xFE,0x2C,0x42,0x14,0x04,0x24, +0xE0,0x01,0x4E,0xF3,0xFF,0x5C,0xE0,0xA8,0xE8,0x08,0x40,0x80,0x21,0x16,0x51,0xC4, +0x7F,0xAB,0x52,0x84,0x00,0x64,0xD5,0x03,0x85,0x00,0x87,0x81,0x22,0x1F,0x80,0x10, +0x22,0x0F,0x80,0x11,0xE0,0x01,0xE8,0x03,0x12,0x1F,0x80,0x11,0x22,0x0F,0x80,0x12, +0x22,0x2F,0x80,0x11,0xE0,0x40,0xE8,0x03,0x12,0x0F,0x80,0x11,0x88,0x01,0x22,0x2F, +0x80,0x11,0x44,0x10,0x00,0x64,0xFE,0x0C,0x44,0x10,0x00,0x82,0xFE,0x54,0xE0,0x20, +0xE9,0x1B,0x44,0x10,0x00,0x5A,0xFE,0x54,0xE0,0x01,0xE9,0x18,0x84,0x7E,0x94,0x51, +0xFE,0x9C,0x40,0x10,0x04,0x36,0x40,0x00,0x08,0x16,0x50,0x10,0xFF,0xD3,0x50,0x00, +0x00,0x41,0x42,0x30,0x20,0x24,0x42,0xFE,0x04,0x24,0xE0,0x6F,0x40,0x80,0xBC,0x1B, +0x41,0xC0,0x3C,0x1B,0xD5,0x03,0x85,0x01,0x87,0x80,0x84,0x40,0xB0,0xCA,0xB0,0x08, +0x38,0x00,0x09,0x11,0x4E,0x06,0x00,0x06,0xB0,0x48,0x84,0x01,0x38,0x00,0x89,0x09, +0xB0,0x08,0x84,0x28,0x38,0x00,0x09,0x11,0xF3,0x86,0xF2,0x84,0x49,0xFF,0xFE,0xA3, +0xF2,0x04,0xF3,0x06,0x38,0x01,0x89,0x09,0x8C,0x41,0x5A,0x28,0x03,0xEA,0xA4,0x19, +0x22,0x11,0x80,0x02,0x22,0x41,0x80,0x00,0x94,0x01,0x8A,0x01,0x8A,0x04,0x96,0x03, +0x40,0x2E,0x20,0x00,0x5A,0xA8,0x01,0x09,0x44,0x32,0x3C,0xBC,0x38,0x31,0x9D,0x11, +0xF3,0x81,0xC8,0x03,0xD5,0x23,0xC0,0x08,0xF3,0x01,0x8A,0x24,0xFE,0x5C,0x94,0x01, +0x40,0x00,0x80,0x16,0x96,0x03,0x4E,0xA3,0x00,0x1A,0x44,0x12,0x3D,0x20,0x38,0x10, +0xA5,0x11,0x88,0x01,0xA0,0x74,0x42,0x14,0x04,0x24,0x42,0x10,0x70,0x73,0x40,0x20, +0x88,0x56,0x4E,0x25,0x00,0x08,0x3C,0x03,0x66,0x3C,0xE0,0x02,0x40,0x20,0x3C,0x1B, +0xD5,0x02,0x80,0x4A,0xA8,0xB4,0x48,0xFF,0xFE,0xCA,0x44,0x12,0x3F,0x84,0x38,0x10, +0x9D,0x11,0x88,0x01,0xA0,0x75,0x42,0x14,0x04,0x24,0x42,0x10,0x70,0x73,0x40,0x20, +0x88,0x56,0x4E,0x25,0x00,0x08,0x3C,0x03,0x66,0x3D,0xE0,0x02,0x40,0x20,0x3C,0x1B, +0xD5,0x02,0x84,0x40,0xA8,0xB5,0x48,0xFF,0xFE,0xB2,0xFC,0xCB,0xFC,0x41,0x80,0xE0, +0x84,0x48,0x80,0xC1,0x80,0x1F,0x84,0x20,0x49,0x00,0x42,0xAA,0x84,0x60,0x3C,0x9D, +0xFB,0x06,0x2E,0x4F,0xF0,0xDE,0x50,0x03,0x80,0x0C,0x80,0xA3,0x80,0x43,0xD6,0x18, +0x00,0x10,0x00,0x14,0x5A,0x18,0x01,0x10,0xE6,0x42,0xB4,0xE0,0xE8,0x03,0x38,0x7F, +0x8A,0x0A,0x00,0x10,0x00,0x12,0x8C,0x41,0x88,0x61,0xE1,0x27,0x96,0x90,0x96,0xD9, +0xE8,0x02,0x84,0x80,0x8C,0xA1,0x97,0x68,0x50,0x00,0x00,0x28,0xD5,0xE9,0x5A,0x28, +0x02,0x14,0xE6,0x79,0xE8,0x11,0xF1,0x01,0xB4,0x1F,0x80,0xA1,0xE0,0x01,0x40,0x50, +0x3C,0x1A,0xE0,0x20,0x40,0x00,0xBC,0x1B,0x94,0x01,0xE0,0xA0,0xE8,0x05,0x8C,0x81, +0x3E,0x47,0xF0,0xDE,0xD5,0x11,0x8E,0x81,0xE6,0x79,0x3E,0x47,0xF0,0xDE,0xE9,0x0C, +0x3C,0x03,0xF8,0x6E,0xE6,0x19,0xE9,0x08,0x84,0x01,0x3C,0x0F,0xFC,0x36,0x84,0x00, +0x3E,0x07,0xF0,0xDE,0xD5,0x07,0x2E,0x07,0xF0,0xD4,0xC8,0x04,0xCA,0x03,0x3C,0x2F, +0xFC,0x36,0x2E,0x17,0xF0,0xDE,0x3E,0x27,0xF0,0xD4,0x80,0x01,0x96,0x4A,0xE4,0x2D, +0x3C,0x3B,0xF8,0x6E,0xE9,0x03,0x84,0x0C,0xD5,0x05,0x96,0x42,0x4E,0x14,0x00,0x03, +0x84,0x00,0x96,0x42,0xE4,0x23,0x3E,0x07,0xF0,0xDE,0xE9,0x0A,0x3C,0x0D,0xFC,0x36, +0xC8,0x07,0x3C,0x03,0xF6,0x93,0x58,0x00,0x00,0x40,0x3C,0x0B,0xF6,0x93,0xFC,0xC1, +0xFC,0x01,0x44,0x62,0x13,0x48,0x84,0x40,0xA6,0x70,0xF0,0x81,0x49,0xFF,0xFE,0x03, +0xF0,0x01,0xA6,0x70,0x84,0x41,0x49,0xFF,0xFD,0xFE,0xFC,0x81,0xFC,0x00,0xB4,0x40, +0x80,0xA2,0x4E,0x24,0x00,0x03,0xFF,0x52,0x84,0xC0,0x50,0x43,0x00,0x0F,0x40,0x12, +0x90,0x0E,0xC1,0x03,0x8C,0xC1,0xD5,0xFA,0xA0,0x41,0x80,0x61,0x4E,0x14,0x00,0x03, +0xFE,0xCA,0x40,0x31,0x90,0x0E,0xCB,0xF7,0x40,0x21,0x18,0x0E,0x40,0x10,0x98,0x0E, +0xB6,0x40,0xA8,0x41,0x42,0x00,0x84,0x24,0x42,0x01,0x08,0x73,0x49,0xFF,0xF4,0x56, +0x40,0x00,0x18,0x0C,0xFC,0x80,0xFC,0x41,0x80,0xC0,0x81,0x23,0x22,0x00,0x80,0x08, +0x22,0x31,0x00,0x08,0x8A,0x03,0xB6,0x1F,0x22,0x00,0x80,0x09,0x22,0x11,0x00,0x09, +0x8A,0x01,0xF0,0x81,0x80,0x1F,0x49,0xFF,0xFF,0xCB,0x80,0xE0,0x80,0x06,0x49,0xFF, +0xFF,0xC7,0x94,0x79,0xE0,0x20,0xE8,0x3C,0x84,0xA0,0x80,0x25,0x80,0x45,0xFA,0x71, +0x4C,0x54,0x80,0x09,0x40,0x13,0x94,0x1A,0xFE,0x5C,0x90,0x25,0x88,0x41,0xE0,0x02, +0xE8,0x04,0xFA,0x30,0x84,0x40,0xD5,0x04,0x8C,0xA1,0x97,0x68,0xD5,0xF2,0x50,0x30, +0xFF,0xE0,0x96,0xD8,0xE2,0x69,0xE8,0x04,0x88,0x41,0x8C,0x21,0xD5,0xF9,0xE2,0xA9, +0xE9,0x0C,0xB4,0x26,0xA0,0x31,0x94,0x4D,0x94,0x05,0x40,0x10,0x88,0x36,0x40,0x00, +0x08,0x16,0xB6,0x26,0xA8,0x31,0xD5,0x12,0x5A,0x50,0x01,0x13,0xB4,0x26,0xFA,0x51, +0xFE,0x7C,0x40,0x10,0x80,0x36,0xFE,0x54,0x90,0x25,0xB6,0x26,0xA0,0x71,0xFF,0xCC, +0x40,0x03,0x80,0x16,0xFE,0x84,0x90,0x45,0xA8,0xB1,0x84,0x01,0xFC,0xC1,0x84,0x00, +0xFC,0xC1,0xFC,0x21,0x80,0xC0,0x50,0x70,0x08,0xC4,0x00,0x03,0x00,0xAD,0xC0,0x11, +0xB0,0x41,0x84,0x40,0x80,0x06,0x49,0xFF,0xD9,0xD8,0xF0,0x01,0x22,0x20,0x00,0x04, +0x22,0x10,0x00,0x05,0xAC,0x86,0xAC,0x47,0x12,0x20,0x00,0x08,0x12,0x10,0x00,0x09, +0x50,0x63,0x00,0xCC,0x4C,0x63,0xFF,0xEB,0xFC,0xA1,0xFC,0x46,0xFA,0x44,0x80,0xC0, +0x00,0xA0,0x80,0x0C,0x00,0x80,0x80,0x0D,0xB0,0x02,0x84,0x20,0xB1,0xC7,0x49,0x00, +0x41,0x8F,0x80,0x07,0x84,0x20,0xFA,0x44,0x49,0x00,0x41,0x8A,0x51,0xC3,0x08,0xC4, +0x00,0x03,0x00,0xAD,0x5A,0x08,0x02,0x6A,0x85,0x24,0x80,0x06,0xB0,0x41,0x80,0x49, +0x49,0xFF,0xD9,0xAB,0x4E,0xA2,0x00,0x0D,0x5A,0xA8,0x01,0x15,0xF0,0x01,0xB0,0x82, +0x22,0x10,0x00,0x06,0x38,0x11,0x26,0x0A,0x22,0x00,0x00,0x07,0xD5,0x09,0xF0,0x01, +0xB0,0x82,0x22,0x10,0x00,0x04,0x38,0x11,0x26,0x0A,0x22,0x00,0x00,0x05,0x38,0x03, +0xA6,0x0A,0x4E,0x92,0x00,0x07,0x50,0x04,0xFF,0xFF,0x54,0x90,0x00,0xFF,0xD5,0xDE, +0xF1,0x01,0x5A,0x80,0x01,0x05,0x5A,0x80,0x02,0x08,0xD5,0x39,0x02,0x03,0x00,0x55, +0xE6,0x02,0xE8,0x13,0xD5,0x34,0x02,0x03,0x00,0x55,0x5A,0x08,0x02,0x19,0x02,0x03, +0x00,0x54,0xE6,0x02,0xE9,0x2C,0x04,0x03,0x00,0x32,0x54,0x00,0x01,0x00,0xC0,0x05, +0xF0,0x03,0xAC,0x0E,0xA0,0x39,0xD5,0x22,0xF2,0x02,0xF0,0x03,0x88,0x02,0x90,0x01, +0xAC,0x0E,0xB4,0x47,0xA0,0x39,0x88,0x02,0x90,0x01,0xD5,0x18,0xE6,0x03,0xE9,0x17, +0x02,0x03,0x00,0x54,0xE6,0x03,0xE9,0x13,0xF2,0x02,0xF0,0x04,0x88,0x02,0x40,0x20, +0x08,0x0A,0xF0,0x03,0x90,0x01,0x88,0x02,0xAC,0x0E,0xB4,0x47,0xA0,0x3A,0x88,0x02, +0x40,0x20,0x08,0x0A,0xA0,0x39,0x90,0x01,0x88,0x02,0xAC,0x0F,0xA4,0x0E,0x12,0x00, +0x80,0x08,0xA4,0x0F,0x12,0x00,0x80,0x09,0x50,0x63,0x00,0xCC,0x4C,0x6E,0x7F,0x92, +0xFC,0xC6,0xFC,0x40,0xB4,0xE0,0xA1,0x42,0xA1,0x09,0xB4,0xC1,0x04,0x90,0x00,0x01, +0xA0,0x0A,0x42,0x33,0x90,0x24,0x42,0x12,0x90,0x24,0x42,0x10,0x24,0x75,0x42,0x33, +0x24,0x75,0xFE,0x3C,0x42,0x03,0x14,0x75,0xCB,0x05,0xC9,0x0C,0x5C,0x00,0x00,0x01, +0xFC,0xC0,0x40,0x00,0x0C,0x16,0x40,0x10,0x8C,0x36,0xA8,0x11,0xB6,0x22,0x84,0x02, +0xFC,0xC0,0x80,0x03,0xFC,0xC0,0x88,0x41,0xA1,0x01,0x40,0x31,0x04,0x0A,0x80,0xA3, +0x42,0x50,0x90,0x73,0x40,0x42,0x88,0x96,0xB4,0xA0,0xA9,0x01,0x42,0x30,0x94,0x73, +0x40,0x31,0x88,0x76,0xB6,0x60,0xDD,0x9E,0xFC,0x43,0xB1,0xC2,0xB5,0x00,0x3A,0x23, +0x94,0x20,0x00,0x4F,0x80,0x38,0x04,0x90,0x00,0x01,0x4E,0x42,0x00,0x8E,0x4E,0x85, +0x00,0x03,0x80,0x43,0x4E,0x95,0x00,0x04,0xA1,0xFB,0xD5,0x02,0xA1,0xFA,0x5A,0x48, +0x03,0x26,0x80,0x28,0x4E,0x84,0x00,0x04,0x52,0x14,0x00,0x00,0xE0,0x41,0xE9,0x04, +0x84,0x20,0xB6,0x20,0xD5,0x08,0x84,0x21,0x4E,0x84,0x00,0x03,0x84,0x3F,0x42,0x81, +0x04,0x75,0xB7,0x00,0x80,0x29,0x4E,0x94,0x00,0x04,0x52,0x14,0x80,0x00,0xE0,0xE1, +0xE9,0x04,0x84,0x20,0xA8,0x41,0xFC,0xC3,0x84,0x21,0x4E,0x94,0x00,0x03,0x84,0x3F, +0x42,0x93,0x84,0x75,0x14,0x90,0x00,0x01,0xFC,0xC3,0x81,0x40,0x5A,0x40,0x02,0x04, +0x80,0xC1,0xD5,0x38,0x42,0x53,0xA0,0x24,0x42,0x41,0x24,0x24,0x84,0xC0,0xFE,0xEA, +0x52,0xF2,0x00,0x00,0x51,0xC3,0x00,0x0F,0x80,0x25,0x4E,0x54,0x00,0x03,0x80,0x23, +0x40,0x10,0xF0,0x0E,0xC1,0x04,0x8C,0xC1,0x97,0xB0,0xD5,0xF5,0x80,0x04,0x4E,0x44, +0x00,0x03,0x80,0x0F,0x40,0x00,0x70,0x0E,0xC8,0xF7,0x40,0x42,0x18,0x0E,0x40,0x52, +0x98,0x0E,0x42,0x02,0x10,0x24,0x42,0x02,0x94,0x73,0xF2,0x81,0x49,0xFF,0xF2,0xC6, +0x40,0x60,0x18,0x0C,0xF2,0x01,0xC6,0x30,0x42,0x04,0xA4,0x24,0x42,0x04,0x20,0x73, +0xFF,0xD4,0x49,0xFF,0xF2,0xBB,0xFE,0x3C,0x40,0x60,0x18,0xD6,0x4E,0x64,0x00,0x03, +0xFF,0xB2,0x80,0x0A,0x49,0xFF,0xFE,0x3C,0x84,0x65,0x42,0x13,0x0C,0x24,0xE0,0x20, +0xE9,0x1B,0xE0,0xC0,0xE9,0x06,0x84,0x00,0xB6,0x0A,0x14,0x05,0x00,0x01,0xFC,0xC3, +0x42,0x24,0x18,0x24,0x42,0x64,0x98,0x24,0x40,0x21,0x00,0x56,0xB4,0x8A,0x40,0x63, +0x00,0xD6,0x80,0x2A,0xA0,0x09,0x9A,0xA2,0x9B,0x86,0xFE,0x9C,0xFE,0xF4,0x90,0x42, +0x90,0x62,0xB6,0x4A,0xA8,0xC9,0xFC,0xC3,0x84,0x4A,0xFE,0x54,0xE0,0x20,0xE8,0x04, +0x8E,0x0A,0x96,0x01,0xDD,0x9E,0x96,0x09,0xDD,0x9E,0xFC,0x56,0xF2,0x86,0x44,0x20, +0xF1,0x70,0x81,0x21,0xB0,0x68,0xF3,0x87,0xF4,0x8F,0x3A,0x21,0x14,0x00,0x3A,0x20, +0x94,0x20,0xF4,0x06,0x84,0x60,0x22,0x42,0x00,0x00,0x3C,0x23,0x66,0x3C,0xF4,0x8B, +0xF4,0x06,0x80,0xC0,0xA5,0x21,0x3C,0x13,0x66,0x3D,0x9B,0x14,0x97,0x23,0xF4,0x8C, +0xF4,0x07,0x44,0x00,0x00,0x64,0xF0,0x83,0x22,0x42,0x00,0x00,0xF0,0x8A,0xF4,0x8D, +0xF4,0x07,0xF0,0x89,0xF3,0x9F,0xA5,0x21,0xF3,0xA0,0x9B,0x0C,0x97,0x23,0xF4,0x8E, +0x40,0x41,0x04,0x09,0xF4,0x93,0x40,0x40,0x84,0x09,0xF4,0x94,0xF3,0x82,0xF0,0x88, +0x80,0x02,0x92,0x03,0xF0,0x95,0x80,0x01,0x92,0x03,0xF3,0x90,0xF2,0x84,0xF1,0x85, +0xF0,0x92,0x00,0x0F,0x80,0x08,0xF0,0x91,0x00,0x03,0x00,0xAD,0x4E,0x02,0x04,0x76, +0xB0,0x5A,0x84,0x40,0x80,0x06,0x49,0xFF,0xD8,0x28,0xB0,0x5B,0x84,0x41,0x80,0x06, +0x49,0xFF,0xD8,0x23,0xB0,0x5C,0x84,0x42,0x80,0x06,0x49,0xFF,0xD8,0x1E,0xB0,0x5D, +0x84,0x43,0x80,0x06,0x49,0xFF,0xD8,0x19,0x80,0x06,0xB0,0x5E,0x84,0x44,0x49,0xFF, +0xD8,0x14,0x02,0x03,0x00,0x55,0xE6,0x02,0x4E,0xF2,0x00,0xE4,0x02,0x03,0x00,0x54, +0x5A,0x00,0x02,0x04,0x48,0x00,0x00,0xDE,0x44,0x20,0xF1,0x80,0xB0,0x23,0x3A,0x21, +0x0C,0x00,0x3A,0x20,0x0C,0x20,0xF4,0x1A,0x3C,0x73,0x66,0x3C,0x22,0x52,0x00,0x06, +0x3C,0xA3,0x66,0x3D,0xF0,0x06,0xF1,0x1B,0x22,0x00,0x00,0x00,0x4C,0x02,0x80,0xCA, +0xF0,0x06,0x22,0x00,0x00,0x01,0x9A,0x38,0x4C,0x50,0x00,0xC4,0xF0,0x07,0x22,0x52, +0x00,0x07,0x22,0x00,0x00,0x00,0x4C,0x02,0x80,0xBD,0xF0,0x07,0x22,0x00,0x00,0x01, +0x40,0x05,0x00,0x01,0x4C,0x50,0x00,0xB6,0x22,0x02,0x00,0x04,0x40,0x33,0x88,0x09, +0x9A,0xB8,0x22,0x42,0x00,0x05,0x4E,0x24,0x00,0x03,0xFE,0x92,0x96,0x93,0xE0,0x62, +0xE8,0x10,0x40,0x25,0x10,0x01,0x40,0x55,0x08,0x09,0x4E,0x24,0x00,0x03,0xFE,0x92, +0x96,0x93,0xE0,0xA2,0xE8,0x06,0xE0,0x60,0xE8,0x04,0xE0,0xA4,0x4E,0xF3,0x00,0x9A, +0x22,0x50,0x80,0x04,0x22,0x30,0x80,0x05,0x9A,0x85,0x8A,0x83,0x84,0x03,0xFF,0x04, +0x84,0x02,0x40,0x82,0x01,0x16,0xF2,0xA1,0x14,0x8F,0x80,0x22,0xCA,0x03,0x4E,0x82, +0x00,0x89,0xB0,0x21,0xF3,0x99,0xF2,0x98,0xF5,0x97,0xF1,0x96,0x49,0xFF,0xFD,0x50, +0x5E,0xF0,0x00,0x32,0x4E,0xF3,0x00,0x7E,0xF5,0x17,0xF2,0x18,0xF3,0x19,0x9A,0x2A, +0x40,0x81,0xA0,0x01,0xF1,0x16,0x4E,0x07,0x00,0x08,0xE0,0x07,0xE8,0x05,0x4E,0x87, +0x00,0x04,0xE1,0x0A,0xE9,0x6E,0x22,0x50,0x80,0x06,0xF4,0x21,0x22,0x10,0x80,0x07, +0xF2,0x22,0xFE,0x64,0xFE,0x92,0x42,0x11,0x14,0x73,0xF2,0xA5,0xF4,0xA6,0xF1,0xA7, +0x4E,0x06,0x00,0x06,0xB0,0x25,0x44,0x12,0x03,0x28,0xD5,0x07,0xE0,0x07,0x84,0x00, +0xE9,0x07,0xB0,0x25,0x44,0x12,0x03,0x1C,0xB0,0xA3,0x49,0xFF,0xFE,0x3C,0xF1,0x23, +0x4E,0x15,0x00,0x09,0xE0,0xE1,0xE9,0x06,0xF2,0x24,0x4E,0x25,0x00,0x04,0xE1,0x42, +0xE8,0x46,0x4E,0x86,0x00,0x06,0xB0,0x25,0x44,0x12,0x03,0x10,0xD5,0x06,0xE1,0x0A, +0xE9,0x07,0xB0,0x25,0x44,0x12,0x03,0x04,0xB0,0xA3,0x49,0xFF,0xFE,0x24,0x5A,0x08, +0x02,0x39,0xF1,0x23,0x4E,0x15,0x00,0x06,0xE0,0xE1,0x40,0x70,0xBC,0x1A,0xD5,0x02, +0x84,0xE0,0xF0,0x24,0x3C,0x7F,0xF7,0xA5,0x4E,0x05,0x00,0x06,0xE0,0x0A,0x40,0xA0, +0x3C,0x1B,0xD5,0x02,0x85,0x40,0x3C,0xAF,0xF7,0xA6,0x84,0x01,0x12,0x03,0x00,0x55, +0x50,0x73,0x00,0xC8,0xB4,0x07,0x84,0x22,0x58,0x00,0x01,0x00,0xB6,0x07,0xF0,0x11, +0x49,0x00,0x05,0x4A,0xF0,0x11,0x84,0x20,0x49,0x00,0x05,0x4F,0xF0,0x1A,0x3C,0x17, +0xEF,0x4C,0x3C,0x27,0xEF,0x4A,0x12,0x10,0x00,0x09,0x12,0x20,0x00,0x08,0xAC,0x86, +0xAC,0x47,0xB4,0x27,0x84,0x17,0xFE,0x0E,0x48,0x00,0x03,0x65,0x5A,0x00,0x02,0xCE, +0x02,0x73,0x00,0x55,0x5A,0x78,0x01,0x32,0x04,0x03,0x00,0x32,0x96,0x1E,0x4E,0x02, +0x03,0x43,0xF0,0x0F,0x5A,0x00,0x01,0x04,0x48,0x00,0x03,0x3E,0xF1,0x1A,0x3C,0x2D, +0xF7,0xA4,0x3C,0x3D,0xF7,0xA3,0x22,0x00,0x80,0x07,0x22,0x40,0x80,0x06,0x8A,0x02, +0x8A,0x83,0xFE,0x04,0x42,0x02,0x10,0x73,0x5E,0xF0,0x27,0x10,0x4E,0xF2,0x03,0x2C, +0x5E,0xF0,0x19,0x00,0xE8,0x04,0x12,0x30,0x80,0x08,0xD5,0x0B,0x22,0x00,0x80,0x08, +0x88,0x03,0x90,0x01,0x12,0x00,0x80,0x08,0x22,0x00,0x80,0x09,0x88,0x40,0x90,0x41, +0x12,0x20,0x80,0x09,0x48,0x00,0x03,0x34,0xE6,0xE2,0x4E,0xF3,0x03,0x2E,0x00,0x03, +0x00,0x97,0x5A,0x00,0x1F,0x0F,0x00,0x03,0x00,0x96,0xC0,0x0B,0x00,0x03,0x00,0x94, +0xC0,0x08,0x00,0x03,0x00,0x95,0x5A,0x00,0x11,0x05,0x84,0x01,0x10,0x03,0x00,0xAF, +0x04,0x03,0x00,0x31,0x40,0x00,0x50,0x08,0x92,0x1C,0x8C,0x0F,0x40,0x00,0x70,0x08, +0x90,0x1C,0x80,0x20,0x4E,0x04,0x00,0x03,0x84,0x20,0x96,0x5F,0x40,0x00,0xA0,0x08, +0x02,0x13,0x00,0x62,0x44,0x2F,0xF0,0xFF,0xFE,0x56,0xFE,0x47,0x12,0x13,0x00,0x62, +0x04,0xAF,0x80,0x1A,0xB4,0x29,0xB4,0x0A,0xE0,0x20,0xE8,0x08,0x02,0x03,0x00,0x62, +0xFE,0x86,0x58,0x21,0x08,0x00,0x12,0x23,0x00,0x62,0x04,0x13,0x00,0x31,0x04,0x03, +0x00,0x32,0x54,0x10,0x8F,0x00,0xC9,0x05,0x44,0x1F,0xFF,0xEF,0xFE,0x0E,0xD5,0x03, +0x58,0x00,0x00,0x10,0x14,0x03,0x00,0x32,0x04,0x03,0x00,0x32,0x54,0x10,0x00,0x08, +0xC1,0x10,0x00,0x13,0x00,0xAD,0x5A,0x18,0x02,0x0D,0x54,0x10,0x00,0x20,0x02,0x03, +0x00,0x5C,0xC1,0x04,0x00,0x14,0x80,0x09,0xD5,0x71,0x00,0x14,0x80,0x08,0xD5,0x6E, +0x5C,0xF3,0x80,0x33,0xE9,0x2E,0x96,0x26,0xC0,0x2C,0xF0,0x0F,0x5A,0x08,0x01,0x2A, +0x3C,0x0D,0xFC,0x38,0x84,0x27,0xFE,0x0C,0xB4,0x2A,0x90,0x03,0xE0,0x20,0xE9,0x05, +0x00,0x03,0x00,0xAD,0x5A,0x08,0x03,0x1E,0xF2,0x1C,0xF0,0x1B,0x22,0xF1,0x00,0x09, +0x22,0x30,0x00,0x08,0x22,0x00,0x00,0x09,0x22,0x11,0x00,0x08,0x8A,0x0F,0x9A,0x59, +0xFE,0x04,0x42,0x00,0x84,0x73,0x44,0x10,0x9C,0x3F,0xE0,0x20,0xE9,0x0A,0x02,0x14, +0x80,0x02,0x84,0x0A,0xFE,0x0C,0x12,0x03,0x00,0x5C,0x84,0x01,0xF0,0x90,0xD5,0x42, +0x00,0x03,0x00,0xAD,0x5A,0x08,0x03,0x21,0x02,0x03,0x00,0x5C,0x00,0x14,0x80,0x0B, +0x49,0xFF,0xFD,0xEC,0xE6,0xE6,0x12,0x03,0x00,0x5C,0xE8,0x34,0x22,0x13,0x00,0x60, +0x22,0x05,0x00,0x04,0x8A,0x01,0xF0,0x9F,0x22,0x13,0x00,0x61,0x22,0x05,0x00,0x05, +0x8A,0x01,0xF0,0xA0,0xB0,0x1F,0x49,0xFF,0xFB,0xF3,0x5E,0xF0,0x03,0xE8,0xE8,0x22, +0x44,0x00,0x03,0xE8,0xD5,0x1D,0xF0,0x1B,0xF1,0x0B,0x22,0x50,0x00,0x08,0xD1,0x09, +0xF1,0x0C,0xD1,0x07,0x22,0x50,0x00,0x09,0xF0,0x0D,0xD0,0x03,0xF0,0x0E,0xD8,0x0A, +0x00,0x14,0x80,0x0A,0x84,0x03,0xFE,0x44,0x90,0x21,0x02,0x03,0x00,0x5C,0x96,0x48, +0xD5,0x05,0x02,0x03,0x00,0x5C,0x00,0x14,0x80,0x0A,0x49,0xFF,0xFD,0xB7,0x12,0x03, +0x00,0x5C,0xF0,0x10,0x02,0xA3,0x00,0x5C,0xC8,0x5B,0x00,0x03,0x00,0xAD,0x5A,0x00, +0x03,0x58,0xF3,0x1B,0xF0,0x0C,0xF1,0x0B,0x22,0x21,0x80,0x08,0xF4,0x0D,0x8A,0x02, +0x9A,0x51,0xE0,0x20,0x40,0x10,0x3C,0x1A,0x22,0x31,0x80,0x09,0xF0,0x0E,0x9B,0x1C, +0x8A,0x03,0xE0,0x80,0x40,0x02,0x3C,0x1B,0x50,0x41,0x76,0x70,0x97,0x21,0x5C,0xF2, +0x07,0x4A,0x14,0xAF,0x80,0x09,0x96,0x4B,0x96,0x03,0xE8,0x0A,0x80,0x8A,0x95,0x22, +0x50,0x42,0x01,0xEF,0xE0,0x83,0xE9,0x04,0x50,0x01,0xFE,0x11,0x96,0x03,0x40,0x45, +0x08,0x08,0xE0,0x24,0xE8,0x0F,0xF5,0x13,0x90,0x22,0xE0,0x45,0x96,0x4B,0xE8,0x05, +0xF1,0x88,0x14,0xAF,0x80,0x03,0xD5,0x04,0xF1,0x83,0x14,0xAF,0x80,0x08,0x84,0xE2, +0xD5,0x06,0x14,0xAF,0x80,0x03,0x14,0xAF,0x80,0x08,0x84,0xE1,0xE0,0x04,0xE8,0x0D, +0xF1,0x14,0x90,0x02,0xE0,0x61,0xE8,0x04,0x96,0x03,0xF0,0x8A,0xD5,0x04,0x14,0xAF, +0x80,0x0A,0xF0,0x89,0x84,0xE2,0xD5,0x03,0x14,0xAF,0x80,0x0A,0xF0,0x0A,0xC0,0x0A, +0xF0,0x09,0xC0,0x08,0xF0,0x08,0xC0,0x06,0xF0,0x03,0xC8,0x05,0xD5,0x03,0x84,0xE1, +0xD5,0x02,0x84,0xE3,0x04,0x03,0x00,0x32,0x54,0x10,0x00,0x80,0xF0,0x1B,0xC9,0x0E, +0xF2,0x1A,0x22,0x30,0x00,0x08,0x22,0x00,0x00,0x09,0x22,0x11,0x00,0x06,0x8A,0x23, +0xF1,0x9F,0x22,0x11,0x00,0x07,0x9A,0x08,0xD5,0x0C,0x22,0x20,0x00,0x08,0x04,0x13, +0x00,0x26,0x8A,0x22,0xF1,0x9F,0x22,0x10,0x00,0x09,0x04,0x03,0x00,0x27,0x8A,0x01, +0xF0,0xA0,0x00,0x03,0x00,0xAD,0x5A,0x08,0x02,0x09,0x04,0x13,0x00,0x32,0x44,0x0F, +0xFF,0x7F,0xFE,0x0E,0x14,0x03,0x00,0x32,0x04,0x03,0x00,0x32,0x96,0x3E,0x4E,0x03, +0x01,0x32,0x44,0x20,0xF1,0x80,0xB0,0x23,0x00,0x53,0x00,0xAE,0x3A,0x21,0x0C,0x00, +0x04,0x8F,0x80,0x1B,0xF1,0x1E,0x02,0x43,0x00,0x54,0x3A,0x20,0x0C,0x20,0x5A,0x58, +0x01,0x04,0x48,0x00,0x00,0xD9,0xE6,0x85,0x4E,0xF3,0x00,0xD6,0xF0,0x06,0x23,0xE4, +0x00,0x08,0x22,0x50,0x00,0x00,0x4C,0x5F,0x00,0xCF,0x22,0x00,0x00,0x01,0xF2,0x04, +0x9A,0x10,0x4D,0xE0,0x00,0xC9,0xF0,0x07,0x22,0x24,0x00,0x09,0x22,0x50,0x00,0x00, +0x4C,0x51,0x00,0xC2,0x22,0x00,0x00,0x01,0xF3,0x05,0x9A,0x18,0x4C,0x20,0x00,0xBC, +0x02,0x0F,0x80,0x2A,0x22,0x44,0x00,0x04,0xF0,0x91,0xF0,0x04,0x22,0x34,0x00,0x05, +0x8A,0x04,0x4E,0x04,0x00,0x03,0xFE,0x02,0xF5,0x11,0x96,0x03,0xE0,0xA0,0xE8,0x10, +0xF0,0x05,0x8A,0x03,0x4E,0x04,0x00,0x03,0xFE,0x02,0xF5,0x12,0x96,0x03,0xE0,0xA0, +0xE8,0x07,0xF0,0x11,0xE0,0x04,0xE8,0x04,0xE0,0xA3,0x4E,0xF3,0x00,0x9D,0xF0,0x1F, +0xC8,0x04,0xF0,0x20,0x4E,0x02,0x00,0x98,0x22,0x00,0x80,0x04,0x5A,0x0F,0xFF,0x04, +0x48,0x00,0x00,0x92,0x22,0x50,0x80,0x05,0x5A,0x5F,0xFF,0x04,0x48,0x00,0x00,0x8C, +0x22,0xF0,0x80,0x09,0x22,0x10,0x80,0x08,0x4D,0xE0,0xC0,0x04,0x4C,0x27,0x80,0x84, +0x9A,0x60,0x9A,0x9D,0x84,0x05,0xFE,0x44,0x85,0xE4,0xFE,0x14,0x40,0x10,0xBC,0x36, +0x40,0x20,0x3C,0x56,0xF1,0xA1,0xF2,0xA2,0xC9,0x02,0xC2,0x75,0xB0,0x21,0xF2,0x98, +0xF1,0x97,0xF3,0x96,0xF4,0x91,0x49,0xFF,0xFA,0xC3,0x5E,0xF0,0x00,0x32,0xE9,0x6B, +0xF4,0x11,0xF1,0x17,0xF3,0x16,0xF2,0x18,0x88,0x24,0x88,0x62,0x4E,0x17,0x00,0x0A, +0xF0,0x04,0xE0,0x20,0xE8,0x06,0x4E,0x37,0x00,0x05,0xF0,0x05,0xE0,0x60,0xE9,0x5B, +0xF4,0x1F,0x22,0x04,0x00,0x09,0xF2,0x20,0x22,0x54,0x00,0x08,0xFE,0x92,0xFE,0x24, +0x42,0x01,0x14,0x73,0xF2,0xA5,0xF4,0xA6,0xF0,0xA7,0x4E,0x16,0x00,0x07,0xF3,0x91, +0xB0,0x25,0x44,0x12,0x03,0x28,0xD5,0x09,0xF0,0x04,0xE0,0x20,0x84,0x00,0xE9,0x09, +0xF3,0x91,0xB0,0x25,0x44,0x12,0x03,0x1C,0xB0,0xA3,0x49,0xFF,0xFB,0xAC,0xF3,0x11, +0xF1,0x23,0x4E,0x15,0x00,0x0B,0xF2,0x04,0xE0,0x41,0xE9,0x07,0xF2,0x24,0x4E,0x25, +0x00,0x05,0xF4,0x05,0xE0,0x82,0xE8,0x2D,0x4E,0x36,0x00,0x06,0xB0,0x25,0x44,0x12, +0x03,0x10,0xD5,0x07,0xF1,0x05,0xE0,0x61,0xE9,0x07,0xB0,0x25,0x44,0x12,0x03,0x04, +0xB0,0xA3,0x49,0xFF,0xFB,0x90,0x5A,0x08,0x02,0x1F,0xF1,0x23,0x4E,0x15,0x00,0x07, +0xF0,0x04,0xE0,0x01,0x40,0x10,0x3C,0x1B,0xD5,0x02,0x84,0x20,0xF0,0x24,0x4E,0x05, +0x00,0x07,0xF2,0x05,0xE0,0x02,0x40,0x01,0x3C,0x1A,0xD5,0x02,0x84,0x00,0x22,0x24, +0x00,0x08,0x22,0xF4,0x00,0x09,0x8A,0x22,0x8A,0x0F,0xF1,0x9F,0xF0,0xA0,0xD5,0x4A, +0x5A,0x00,0x02,0xE8,0xF0,0x08,0xB0,0xA8,0xF0,0xA8,0xF0,0x03,0xB6,0xFF,0xF0,0xA9, +0xF0,0x0A,0xF6,0x81,0xF0,0xAA,0xF0,0x09,0x80,0x2A,0xF0,0xAB,0x3A,0x21,0x14,0x00, +0xB0,0x1F,0x49,0xFF,0xFB,0x93,0x00,0x03,0x00,0xAE,0x5A,0x08,0x01,0x0C,0x5A,0x70, +0x03,0x0A,0xB0,0x1F,0x00,0x14,0x80,0x06,0x00,0x24,0x80,0x07,0x49,0xFF,0xFB,0x75, +0xD5,0x60,0x00,0x03,0x00,0xAD,0x5A,0x08,0x03,0x5D,0x04,0x03,0x00,0x32,0x44,0x50, +0xF0,0x00,0xFF,0x46,0x44,0x00,0x10,0x00,0xD8,0x0E,0xF1,0x1B,0xF0,0x1F,0x22,0x20, +0x80,0x08,0x22,0x10,0x80,0x09,0x88,0x02,0x14,0x03,0x00,0x26,0xF0,0x20,0x88,0x01, +0x14,0x03,0x00,0x27,0xF3,0x02,0x44,0x72,0x15,0x0C,0xB0,0x1F,0xF1,0x1B,0xF2,0x1C, +0x38,0x33,0x8C,0x00,0x49,0xFF,0xFA,0x39,0xC8,0x3C,0xF0,0x02,0x38,0x03,0x80,0x00, +0xD5,0x27,0x04,0x03,0x00,0x32,0x54,0x10,0x00,0x80,0xC9,0x12,0xF2,0x1B,0xF1,0x1F, +0x58,0x00,0x00,0x80,0x22,0x31,0x00,0x08,0x22,0x21,0x00,0x09,0x88,0x23,0x14,0x13, +0x00,0x26,0xF1,0x20,0x14,0x03,0x00,0x32,0x88,0x22,0x14,0x13,0x00,0x27,0xF3,0x02, +0x44,0x02,0x15,0x0C,0xF1,0x1B,0x38,0x30,0x0C,0x00,0x00,0x03,0x00,0xAD,0xF2,0x1C, +0x5A,0x00,0x03,0x14,0xF1,0x02,0x44,0x02,0x15,0x0C,0x38,0x00,0x04,0x00,0x8C,0x01, +0x96,0x1F,0x04,0x23,0x00,0x32,0x40,0x10,0x30,0x08,0x44,0x0F,0x0F,0xFF,0xFE,0x16, +0xFE,0x0F,0x14,0x03,0x00,0x32,0xD5,0x05,0xB0,0x1F,0x49,0xFF,0xF9,0xFE,0xC0,0xEB, +0xF3,0x1F,0xF1,0x1A,0xF0,0x1B,0xCB,0x03,0xF2,0x20,0xC2,0x0B,0x02,0x20,0x00,0x08, +0x02,0x00,0x00,0x09,0x88,0x43,0x12,0x20,0x80,0x08,0xF2,0x20,0x88,0x02,0xD5,0x07, +0x22,0x20,0x00,0x08,0x22,0x00,0x00,0x09,0x12,0x20,0x80,0x08,0x12,0x00,0x80,0x09, +0x04,0x03,0x00,0x32,0x96,0x1E,0xC0,0x19,0xF0,0x1F,0xC8,0x03,0xF0,0x20,0xC0,0x0C, +0x04,0x13,0x00,0x32,0x84,0x17,0xFE,0x0E,0x14,0x03,0x00,0x32,0x44,0x0F,0xFF,0x9C, +0x3C,0x0F,0xF7,0xA3,0xD5,0x08,0xF0,0x1A,0x22,0x10,0x00,0x08,0x3C,0x1F,0xF7,0xA3, +0x22,0x00,0x00,0x09,0x3C,0x0F,0xF7,0xA4,0xF0,0x1A,0xF2,0x0B,0x22,0x10,0x00,0x08, +0xE0,0x22,0xE9,0x07,0xF2,0x0C,0xE0,0x22,0x40,0x20,0xBC,0x1B,0x80,0x22,0xD5,0x02, +0xF1,0x0B,0x12,0x10,0x00,0x08,0xF2,0x0D,0x22,0x10,0x00,0x09,0xE0,0x22,0xE9,0x07, +0xF2,0x0E,0xE0,0x22,0x40,0x20,0xBC,0x1B,0x80,0x22,0xD5,0x02,0xF1,0x0D,0x12,0x10, +0x00,0x09,0xD5,0x1A,0x00,0x03,0x00,0xAD,0x5A,0x08,0x03,0x17,0x00,0x03,0x00,0xAE, +0x5A,0x00,0x01,0x13,0xF1,0x02,0x44,0x02,0x15,0x0C,0x04,0x23,0x00,0x32,0x38,0x00, +0x04,0x00,0x8C,0x01,0x96,0x1F,0x40,0x10,0x30,0x08,0x44,0x0F,0x0F,0xFF,0xFE,0x16, +0xFE,0x0F,0x14,0x03,0x00,0x32,0xF0,0x0F,0x5A,0x08,0x01,0x0D,0x02,0x03,0x00,0x54, +0xE6,0x02,0xE9,0x08,0xF0,0x1A,0xB4,0x20,0x3C,0x0D,0xFC,0x38,0x88,0x01,0x90,0x01, +0xD5,0x02,0x84,0x00,0x3C,0x0F,0xFC,0x38,0xF0,0x02,0x50,0x63,0x00,0xCC,0x8C,0x01, +0xF0,0x82,0x5A,0x00,0x0B,0x04,0x48,0xFF,0xFB,0x7E,0xFC,0xD6,0xA7,0x60,0x5C,0xF2, +0x80,0x3C,0xE8,0x0F,0x95,0x6A,0x88,0xA3,0xAE,0x2B,0xA6,0x20,0x94,0x02,0x88,0x03, +0xAE,0x42,0xA6,0x20,0x38,0x21,0x82,0x09,0xA6,0x20,0x8C,0x01,0xAE,0x20,0xDD,0x9E, +0xFC,0x40,0x84,0xC0,0x44,0x70,0x7F,0xFF,0x80,0x86,0x38,0x91,0x9A,0x11,0x54,0xA3, +0x00,0xFF,0xE0,0xE9,0x8C,0xC1,0x40,0x74,0xBC,0x1A,0x54,0x93,0x00,0xFF,0x40,0x45, +0x3C,0x1A,0xE3,0x25,0xE9,0xF3,0xE0,0xE2,0xE8,0x06,0x95,0x22,0x88,0x64,0xAE,0x1B, +0xAE,0x5A,0xAC,0x98,0xFC,0xC0,0xFC,0x5A,0x81,0x22,0x00,0x2F,0x80,0xF8,0x12,0x1F, +0x80,0x19,0xF2,0x89,0x00,0x2F,0x80,0xFC,0xF1,0x40,0xF2,0x85,0x00,0x2F,0x81,0x04, +0x12,0x0F,0x80,0x18,0xF2,0x87,0x84,0x00,0x2E,0x26,0xCC,0x7E,0xAC,0x08,0xF2,0x81, +0xF1,0x05,0x2E,0x26,0xCC,0x7F,0xF3,0x86,0xB6,0x9F,0xF5,0x83,0xF2,0x88,0x5A,0x18, +0x01,0x04,0xF1,0x3D,0xAE,0x08,0x85,0x01,0x87,0x80,0x4E,0x82,0x01,0x42,0x50,0x04, +0x7F,0xFF,0xB0,0x4C,0xB0,0x8C,0x38,0x60,0x82,0x11,0x94,0x42,0x88,0x22,0x54,0x80, +0x00,0xFF,0x22,0x70,0x80,0x01,0xF0,0x01,0xFE,0x3C,0xF0,0x82,0xF1,0x02,0xB4,0x1F, +0x88,0x01,0x38,0x00,0x18,0x00,0x40,0x50,0x24,0x02,0x4C,0x54,0xFF,0xE8,0x40,0x14, +0xA4,0x05,0x81,0x46,0xF1,0x8A,0x40,0x50,0x24,0x02,0x4C,0x54,0x80,0x11,0x50,0x25, +0x7F,0xFF,0x96,0x10,0xF0,0x84,0x8E,0xC1,0xB4,0x1F,0xF1,0x02,0x97,0xB3,0x88,0x06, +0x38,0x00,0x04,0x00,0x40,0x14,0xA4,0x05,0xF1,0x8A,0xD5,0x73,0xF1,0x01,0xE1,0x41, +0xE8,0xEF,0xF1,0x0A,0xFE,0x0E,0xF1,0x02,0x54,0x00,0x00,0xE0,0x40,0x55,0x04,0x00, +0xF1,0x06,0xFE,0x0F,0xB4,0x3F,0x38,0x00,0x94,0x08,0xF0,0x40,0xF1,0x40,0xA4,0x00, +0x8C,0x01,0xAC,0x08,0xF0,0x05,0x5A,0x08,0x01,0x14,0xF0,0x03,0x80,0x27,0xF3,0x3C, +0x38,0x00,0x15,0x11,0xF4,0x3D,0xF0,0x84,0xF2,0x04,0x80,0x0A,0xF5,0x8B,0x49,0xFF, +0xFF,0x5F,0xF0,0x04,0xF5,0x0B,0xE0,0x1C,0x40,0x0E,0x3C,0x1B,0x83,0x80,0xF0,0x07, +0x5A,0x08,0x01,0x0E,0xF0,0x03,0x38,0x00,0x15,0x11,0x40,0xFE,0x00,0x07,0xE8,0x07, +0xF1,0x42,0x83,0x80,0x10,0xA0,0x80,0x00,0xF1,0x43,0xAF,0xC8,0x50,0x05,0x00,0x01, +0x40,0xA0,0x00,0x11,0xB4,0x1F,0xF1,0x02,0x88,0x0A,0x38,0x00,0x04,0x00,0xD5,0xAC, +0x4E,0x65,0x00,0x34,0xF1,0x0A,0xFE,0x0E,0xF1,0x02,0x54,0x00,0x00,0xE0,0x40,0xA3, +0x04,0x00,0xF1,0x06,0xFE,0x0F,0xB4,0x3F,0x38,0x00,0xA8,0x08,0xF0,0x40,0xF1,0x40, +0xA4,0x00,0x8C,0x01,0xAC,0x08,0xF0,0x05,0x5A,0x08,0x01,0x12,0xF0,0x03,0x80,0x27, +0xF3,0x3C,0x38,0x50,0x29,0x11,0xF4,0x3D,0x80,0x45,0x80,0x06,0xF5,0x8B,0x49,0xFF, +0xFF,0x1F,0xF5,0x0B,0xE0,0xBC,0x40,0x5E,0x3C,0x1B,0x83,0x85,0xF0,0x07,0x5A,0x00, +0x01,0x15,0x8E,0xC1,0xB4,0x1F,0x97,0xB3,0xF1,0x02,0x88,0x06,0x38,0x00,0x04,0x00, +0x40,0x50,0x24,0x02,0x4C,0x54,0xBF,0xCE,0xF0,0x09,0x8C,0xC1,0x97,0xB0,0x5A,0x00, +0x08,0x11,0x84,0x40,0x80,0x02,0xD5,0x15,0xF0,0x03,0x38,0x00,0x29,0x11,0x40,0xFE, +0x00,0x07,0xE8,0xE8,0xF1,0x42,0x83,0x80,0xAF,0x88,0xF1,0x43,0xAF,0xC8,0xD5,0xE2, +0xF0,0x01,0x9E,0x81,0xF0,0x04,0x40,0x20,0x08,0x07,0x84,0x00,0x40,0x00,0x18,0x06, +0xF1,0x08,0x8E,0x21,0xE0,0xE1,0xE8,0x40,0x97,0xF9,0x8A,0xC0,0x9C,0xF9,0xF0,0x01, +0x96,0xDB,0x42,0x51,0x80,0x24,0xF0,0x04,0x80,0x26,0x40,0xA0,0x08,0x00,0xB4,0x1F, +0x41,0xE0,0x14,0x00,0xE1,0x41,0xE9,0x2C,0x80,0x01,0x84,0x80,0xB4,0x3F,0x88,0x20, +0x38,0x10,0x94,0x00,0x40,0x14,0x84,0x02,0x4C,0x14,0x80,0x11,0x80,0x20,0xC4,0x19, +0xB1,0x0C,0x8E,0x01,0x38,0x02,0x22,0x09,0x40,0x04,0x08,0x08,0x88,0x04,0xAC,0xC1, +0x50,0x04,0x00,0x01,0x54,0x80,0x00,0xFF,0xD5,0x0C,0xF1,0x01,0xE0,0x01,0xE8,0xEF, +0x8C,0x01,0x96,0x03,0x84,0x81,0xD5,0xE3,0xE1,0x41,0xE9,0xDD,0x8C,0x21,0x96,0x4B, +0x38,0x0F,0x04,0x00,0x40,0x04,0x80,0x02,0x4C,0x04,0xFF,0xF8,0xD5,0xD4,0xE4,0x62, +0xE8,0x07,0x48,0xFF,0xFE,0xFC,0xE4,0xE2,0x4E,0xF3,0xFE,0xF9,0x8A,0xC0,0xF0,0x01, +0x8E,0xE1,0x97,0xFB,0x42,0x33,0x80,0x24,0xF0,0x04,0x88,0x02,0x80,0x40,0xB4,0x1F, +0x99,0x03,0xE0,0x46,0x4E,0xF3,0xFE,0xEB,0x80,0x06,0x84,0x20,0xB4,0xBF,0x88,0xA0, +0x38,0x52,0x8C,0x00,0x40,0x54,0x94,0x02,0x4C,0x54,0x80,0x11,0x80,0xC0,0xC1,0x19, +0xB0,0x4C,0x8E,0x01,0x38,0x00,0xA2,0x09,0x40,0x04,0x08,0x08,0x88,0x01,0xAD,0xC1, +0x50,0x04,0x00,0x01,0x54,0x80,0x00,0xFF,0xD5,0x0C,0xF5,0x01,0xE0,0x05,0xE8,0xEF, +0x8C,0x01,0x96,0x03,0x84,0x21,0xD5,0xE3,0xE0,0x46,0xE9,0xDC,0x8C,0xC1,0x97,0xB3, +0x38,0x52,0x18,0x00,0x40,0x54,0x94,0x02,0x4C,0x54,0xFF,0xF8,0xD5,0xD3,0x80,0x1C, +0xFC,0xDA,0x84,0x20,0x44,0x22,0x15,0x18,0x9D,0x02,0xE6,0x22,0x80,0x60,0x40,0x32, +0x3C,0x1A,0x38,0x31,0x04,0x08,0x8C,0x21,0x5A,0x18,0x0B,0xF9,0xDD,0x9E,0x44,0x12, +0x15,0x18,0x38,0x00,0x80,0x00,0xDD,0x9E,0x84,0x20,0x44,0x22,0x15,0x0C,0x38,0x01, +0x04,0x08,0x8C,0x21,0x5A,0x18,0x0B,0xFD,0xDD,0x9E,0x44,0x12,0x15,0x0C,0x38,0x00, +0x80,0x00,0xDD,0x9E,0x44,0x30,0x00,0xCC,0x44,0x22,0x40,0x04,0x42,0x20,0x0C,0x73, +0x10,0x11,0x00,0xB5,0xDD,0x9E,0x44,0x22,0x40,0xD4,0x44,0x30,0x00,0xCC,0x42,0x20, +0x0C,0x73,0x44,0x0F,0x0F,0xFF,0xC1,0x0B,0xB4,0x62,0x40,0x11,0xB0,0x09,0x8C,0x21, +0x96,0x5F,0x40,0x10,0xB0,0x08,0xFE,0x1E,0xFE,0x0F,0xD5,0x03,0xB4,0x22,0xFE,0x0E, +0xB6,0x02,0xDD,0x9E,0x44,0x20,0x00,0xCC,0x44,0x12,0x40,0xD4,0x42,0x10,0x08,0x73, +0xB4,0x01,0x92,0x0C,0x96,0x1F,0xDD,0x9E,0x84,0x00,0x3C,0x0B,0xF8,0x72,0xDD,0x9E, +0x3C,0x23,0xF8,0x72,0x84,0x20,0x40,0x31,0x04,0x0E,0x96,0xC6,0x96,0x08,0xC3,0x07, +0x8C,0x21,0x5A,0x18,0x0B,0xFA,0x44,0x00,0x00,0xFF,0xDD,0x9E,0x84,0x61,0x40,0x11, +0x84,0x0C,0xFE,0x8F,0x3C,0x2B,0xF8,0x72,0xDD,0x9E,0x84,0x21,0x40,0x00,0x80,0x0C, +0x3C,0x13,0xF8,0x72,0xFE,0x03,0xFE,0x0E,0x3C,0x0B,0xF8,0x72,0xDD,0x9E,0xFC,0x00, +0x49,0x00,0x2A,0xAC,0xC8,0x05,0x84,0x01,0x3E,0x07,0xDE,0xCC,0xFC,0x80,0x84,0x02, +0x3E,0x07,0xDE,0xCC,0x49,0x00,0x15,0x36,0xFC,0x80,0xFC,0x00,0x49,0x00,0x14,0xD3, +0x84,0x01,0x49,0x00,0x0C,0xD6,0x49,0x00,0x0C,0xC3,0xFC,0x80,0xFC,0x07,0x84,0x00, +0x3E,0x07,0xF0,0xEE,0x3C,0x03,0xF6,0x93,0x96,0x0E,0x96,0x01,0xC0,0x02,0x84,0x01, +0x3E,0x07,0xF0,0xE6,0x84,0x06,0x49,0x00,0x34,0x2C,0x5A,0x08,0x01,0x08,0x84,0x06, +0x84,0x20,0x49,0x00,0x34,0x0B,0x49,0x00,0x1A,0xCE,0x2E,0x07,0xDE,0xCC,0x8E,0x01, +0xE6,0x05,0x4E,0xF2,0x01,0x08,0x44,0xF0,0x7E,0x14,0x38,0x07,0x81,0x01,0x40,0xF0, +0x3C,0x00,0xDD,0x0F,0x0A,0x00,0xD8,0x00,0xFE,0x01,0x36,0x01,0x86,0x01,0x49,0x00, +0x17,0xFB,0x5A,0x08,0x01,0x18,0x84,0x01,0x49,0x00,0x2A,0x77,0x84,0x06,0x49,0x00, +0x13,0xC0,0x84,0x00,0x49,0x00,0x2B,0x9F,0x84,0x01,0x49,0x00,0x2A,0x62,0x84,0x01, +0x49,0x00,0x28,0xE3,0x49,0x00,0x1B,0x0C,0xC8,0x0A,0x84,0x01,0x49,0x00,0x28,0x28, +0xD5,0x06,0x49,0x00,0x14,0x9A,0x5A,0x08,0x01,0x2D,0xD5,0xE6,0x84,0x01,0x49,0x00, +0x14,0x86,0x84,0x01,0x49,0x00,0x15,0x5D,0x49,0x00,0x14,0x96,0x49,0x00,0x2A,0x4C, +0xB6,0x1F,0x49,0x00,0x2A,0x4C,0xF0,0x81,0xB4,0x3F,0x84,0x01,0xF2,0x01,0x49,0x00, +0x2A,0xC2,0x2E,0x67,0xDE,0xCC,0x49,0x00,0x14,0x6E,0x8E,0xC3,0xE6,0xC2,0xE8,0x06, +0x49,0x00,0x14,0xC8,0x84,0x00,0x3C,0x0B,0xF8,0x75,0x84,0x02,0x3E,0x07,0xDE,0xCC, +0x84,0x00,0x3C,0x0B,0xF8,0x74,0x84,0x01,0x49,0x00,0x2B,0x65,0x48,0x00,0x00,0xB3, +0x49,0x00,0x2A,0x30,0x5A,0x00,0x01,0x04,0x48,0x00,0x00,0xAD,0x2E,0x07,0xF0,0xE6, +0x5A,0x08,0x01,0x06,0x3C,0x03,0xF8,0x74,0x8C,0x01,0xD5,0x02,0x84,0x00,0x3C,0x0B, +0xF8,0x74,0x3C,0x03,0xF8,0x74,0xE6,0x0A,0x4E,0xF3,0x00,0x9D,0x84,0x00,0x49,0x00, +0x2A,0x1C,0x84,0x00,0x3C,0x0B,0xF8,0x74,0x48,0x00,0x00,0x95,0x49,0x00,0x17,0x94, +0x5A,0x08,0x01,0x0C,0x84,0x00,0x3C,0x0B,0xF8,0x75,0x84,0x01,0x49,0x00,0x14,0xFE, +0x84,0x04,0x3E,0x07,0xDE,0xCC,0xD5,0x48,0x49,0x00,0x14,0x3F,0x5A,0x00,0x01,0xF4, +0x2E,0x07,0xF0,0xE6,0x5A,0x08,0x01,0x0D,0x3C,0x03,0xF8,0x75,0x5C,0xF0,0x00,0x64, +0xE8,0x04,0x8C,0x01,0x96,0x01,0xD5,0x05,0x44,0x00,0x00,0x64,0xD5,0x02,0x84,0x00, +0x3C,0x0B,0xF8,0x75,0x3C,0x03,0xF8,0x75,0x5C,0xF0,0x00,0x64,0xE9,0x6B,0x49,0x00, +0x14,0x37,0x49,0x00,0x14,0x10,0x84,0x05,0xD5,0x63,0x84,0x01,0x49,0x00,0x18,0xDB, +0x80,0xC0,0x5A,0x08,0x01,0x22,0x49,0x00,0x1A,0x22,0x49,0x00,0x1A,0x0E,0x49,0x00, +0x09,0xCC,0x49,0x00,0x14,0x22,0x84,0x00,0x49,0x00,0x27,0xB0,0x80,0x06,0x49,0x00, +0x14,0xD8,0x2E,0x67,0xDE,0xCC,0x49,0x00,0x13,0xF6,0x8E,0xC3,0xE6,0xC2,0xE8,0x06, +0x49,0x00,0x14,0x50,0x84,0x00,0x3C,0x0B,0xF8,0x75,0x84,0x02,0x3E,0x07,0xDE,0xCC, +0x3E,0x07,0xF0,0xEE,0xD5,0x3F,0x84,0x01,0xD5,0xFC,0x49,0x00,0x18,0x90,0x5A,0x08, +0x01,0x29,0x84,0x00,0x49,0x00,0x29,0xAD,0x84,0x00,0x49,0x00,0x28,0x2E,0x49,0x00, +0x1A,0x57,0xC8,0x03,0x49,0x00,0x27,0x74,0x84,0x00,0x49,0x00,0x13,0xD8,0x84,0x00, +0x49,0x00,0x14,0xAF,0x49,0x00,0x13,0xE8,0x49,0x00,0x29,0x9E,0xB6,0x1F,0x49,0x00, +0x29,0x9E,0xF0,0x81,0xB4,0x3F,0x84,0x00,0xF2,0x01,0x49,0x00,0x2A,0x14,0x49,0x00, +0x13,0xC2,0x84,0x00,0x3C,0x0B,0xF8,0x76,0x3C,0x0B,0xF8,0x74,0x84,0x01,0xD5,0x10, +0x49,0x00,0x14,0x0B,0x2E,0x67,0xDE,0xCC,0x49,0x00,0x13,0xB5,0x8E,0xC3,0xE6,0xC2, +0xE8,0x06,0x49,0x00,0x14,0x0F,0x84,0x00,0x3C,0x0B,0xF8,0x75,0x84,0x02,0x3E,0x07, +0xDE,0xCC,0x2E,0x07,0xDE,0xCC,0x8E,0x03,0xE6,0x02,0x3C,0x0D,0xF7,0xE5,0xE8,0x0B, +0xF0,0x82,0xF0,0x83,0xF0,0x84,0xF0,0x85,0xF0,0x86,0xF0,0x87,0xF0,0x88,0xF0,0x89, +0xF0,0x8A,0xD5,0x1C,0x44,0x12,0x00,0x01,0xF1,0x82,0x44,0x11,0x00,0x02,0xF1,0x83, +0x44,0x10,0x80,0x04,0xF1,0x84,0x44,0x10,0x40,0x08,0xF1,0x85,0x44,0x10,0x20,0x10, +0xF1,0x86,0x44,0x10,0x10,0x20,0xF1,0x87,0x44,0x10,0x08,0x40,0xF1,0x88,0x44,0x10, +0x04,0x80,0xF1,0x89,0x44,0x10,0x03,0x00,0xF1,0x8A,0xF0,0x8B,0xF0,0x8C,0xF0,0x8D, +0xB0,0x02,0x49,0xFF,0xC7,0x1B,0x2E,0x07,0xF0,0xEE,0xFC,0x87,0xDD,0x9E,0xFC,0x21, +0xFA,0x04,0x10,0x0F,0x80,0x07,0x50,0x0F,0x80,0x07,0x49,0xFF,0xD3,0x71,0x80,0xC0, +0x5A,0x08,0x01,0x27,0x84,0x00,0x49,0x00,0x1F,0x03,0x00,0x0F,0x80,0x07,0x49,0x00, +0x01,0xF3,0x84,0x03,0x44,0x10,0x01,0xF4,0x49,0x00,0x32,0xA2,0x84,0x03,0x80,0x26, +0x49,0x00,0x32,0xAC,0x49,0x00,0x1E,0xF0,0x80,0xC0,0xC8,0x0E,0x84,0x03,0x49,0x00, +0x32,0xC0,0x80,0xE0,0x5A,0x08,0x01,0xF8,0x84,0x03,0x80,0x26,0x49,0x00,0x32,0x9E, +0x80,0x07,0x49,0x00,0x1E,0xE5,0x84,0x03,0x84,0x20,0x49,0x00,0x32,0x97,0xFC,0xA1, +0xFC,0x00,0x3C,0x63,0xF6,0x93,0x97,0x86,0xCE,0x0A,0x49,0x00,0x19,0xB9,0x80,0x20, +0x80,0x06,0x5A,0x10,0x01,0x03,0x80,0x26,0x49,0x00,0x0E,0x59,0xFC,0x80,0x44,0x24, +0x10,0x14,0xA6,0x10,0x44,0x14,0x10,0x14,0x96,0x06,0xC0,0xFC,0xA6,0x08,0x54,0x00, +0x00,0xFE,0xAE,0x08,0xDD,0x9E,0xFC,0x20,0x80,0xC1,0x44,0x14,0x10,0x14,0x80,0xE0, +0xA6,0x08,0x54,0x00,0x00,0xFE,0xAE,0x08,0x84,0x00,0x49,0x00,0x08,0xA6,0x49,0x00, +0x08,0x70,0x40,0x00,0x00,0x09,0x88,0xE6,0x4C,0x63,0x80,0x07,0x08,0x03,0x00,0x01, +0x49,0x00,0x08,0x75,0xD5,0xFA,0x84,0x01,0x49,0x00,0x08,0x97,0xFC,0xA0,0xFC,0x01, +0x84,0x06,0x10,0x0F,0x80,0x04,0xB0,0x41,0x84,0x01,0x49,0xFF,0xFF,0xDE,0xFC,0x81, +0xFC,0x00,0x44,0x14,0x10,0x14,0xA6,0x08,0x54,0x00,0x00,0xFE,0xAE,0x08,0x84,0x00, +0x49,0x00,0x08,0x83,0x49,0x00,0x08,0x4D,0x40,0x00,0x00,0x09,0x84,0x05,0x49,0x00, +0x08,0x56,0x44,0x00,0x00,0xFF,0x49,0x00,0x08,0x52,0x44,0x04,0x10,0x10,0xA7,0x80, +0x84,0x01,0x97,0xB0,0x49,0x00,0x08,0x71,0x80,0x06,0xFC,0x80,0xFC,0x40,0x44,0x14, +0x10,0x14,0x80,0xC0,0xA6,0x08,0x54,0x00,0x00,0xFE,0xAE,0x08,0x44,0x04,0x10,0x00, +0x84,0x20,0xAE,0x40,0x44,0x04,0x10,0x04,0x44,0x10,0x00,0x55,0xAE,0x40,0x44,0x1F, +0xFF,0xAA,0xAE,0x41,0x44,0x10,0x00,0x66,0xAE,0x42,0x40,0x00,0x00,0x09,0x44,0x74, +0x10,0x08,0x44,0x00,0x00,0x9F,0xB6,0x07,0x49,0xFF,0xFF,0x93,0x50,0x93,0x00,0x03, +0x44,0x80,0x00,0xFF,0x44,0xA4,0x10,0x10,0xB7,0x07,0x49,0xFF,0xFF,0x8A,0x00,0x05, +0x00,0x00,0x18,0x03,0x00,0x01,0x4C,0x64,0xFF,0xF9,0x44,0x04,0x10,0x00,0x84,0x21, +0xAE,0x40,0xFC,0xC0,0xFC,0x00,0x80,0xC0,0x49,0xFF,0xFF,0xA3,0x84,0x00,0x49,0x00, +0x08,0x34,0x49,0x00,0x07,0xFE,0xFA,0x10,0x49,0x00,0x08,0x09,0x5C,0xF3,0x00,0x40, +0x80,0x26,0xE9,0x03,0x44,0x10,0x00,0x3F,0x96,0x08,0x40,0x00,0x30,0x08,0x49,0x00, +0x08,0x0C,0x84,0x01,0x49,0x00,0x08,0x21,0x40,0x00,0x00,0x09,0x40,0x00,0x00,0x09, +0x40,0x00,0x00,0x09,0x49,0xFF,0xFF,0x8E,0x96,0x06,0xC0,0x05,0x84,0x0A,0x49,0xFF, +0xCD,0x79,0xD5,0xF9,0xFC,0x80,0xFC,0x43,0x83,0x80,0x84,0x00,0xF0,0x85,0xB0,0x05, +0x81,0x01,0x81,0x42,0x49,0xFF,0xFF,0x9C,0xF0,0x05,0x44,0x5E,0xFF,0xFF,0xFF,0x46, +0x46,0x00,0x03,0x02,0x50,0x00,0x05,0xC2,0xD0,0x04,0x44,0x90,0x01,0x00,0xD5,0x02, +0xFB,0x30,0x84,0xC0,0x44,0x74,0x10,0x08,0x49,0xFF,0xFF,0x63,0x44,0x04,0x10,0x00, +0x84,0x20,0xAE,0x40,0x44,0x04,0x10,0x04,0x44,0x10,0x00,0x55,0xAE,0x40,0x44,0x1F, +0xFF,0xAA,0xAE,0x41,0x44,0x10,0x00,0x66,0xAE,0x42,0x40,0x03,0x20,0x00,0x40,0x20, +0x40,0x09,0x40,0x10,0x20,0x09,0x84,0x62,0x96,0x00,0x96,0x48,0x96,0x97,0xF0,0x81, +0xF1,0x82,0xF2,0x83,0xB6,0x67,0x49,0xFF,0xFF,0x1C,0xF2,0x03,0xB6,0x47,0x49,0xFF, +0xFF,0x18,0xF1,0x02,0xB6,0x27,0x49,0xFF,0xFF,0x14,0xF0,0x01,0xB6,0x07,0x49,0xFF, +0xFF,0x10,0x40,0x00,0x00,0x09,0x38,0x0E,0x18,0x00,0x8C,0xC1,0xB6,0x07,0x97,0xB1, +0x49,0xFF,0xFF,0x07,0x40,0x03,0x20,0x00,0x40,0x00,0x24,0x37,0xC1,0x03,0x4C,0x65, +0x7F,0xF4,0x44,0x04,0x10,0x00,0x84,0x21,0xAE,0x40,0x40,0x00,0x00,0x09,0x40,0x00, +0x00,0x09,0x49,0xFF,0xFF,0x27,0x96,0x06,0xC0,0x05,0x84,0x02,0x49,0xFF,0xCD,0x12, +0xD5,0xF9,0x4C,0x65,0x7F,0xB3,0xFC,0xC3,0x40,0x00,0x60,0x08,0x46,0x20,0x4C,0x11, +0xFE,0x0D,0x50,0x21,0x0D,0xB7,0x84,0x28,0x94,0xC1,0x4E,0x04,0x00,0x05,0x40,0x01, +0x88,0x03,0xD5,0x02,0x80,0x03,0x8E,0x21,0x96,0x48,0xC9,0xF7,0xDD,0x9E,0xFC,0x41, +0x84,0x1F,0xF0,0x81,0x84,0xC0,0x44,0x92,0x10,0x00,0x44,0x70,0x0F,0xFC,0x5C,0xF3, +0x01,0x00,0xE8,0x04,0x38,0x04,0x98,0x00,0xD5,0x03,0x44,0x00,0x00,0xFF,0xF1,0x01, +0x49,0xFF,0xFF,0xDC,0x8C,0xC1,0xF0,0x81,0x4C,0x63,0xFF,0xF3,0xF0,0x01,0xFC,0xC1, +0x2E,0x07,0xDE,0xCD,0x5A,0x00,0x01,0x14,0xFC,0x00,0x2E,0x07,0xDE,0xCD,0x5A,0x08, +0x02,0x05,0x84,0x03,0x3E,0x07,0xDE,0xCD,0x2E,0x07,0xDE,0xCD,0x5A,0x08,0x04,0x05, +0x84,0x01,0x3E,0x07,0xDE,0xCD,0x49,0xFF,0xE5,0x2E,0xFC,0x80,0xDD,0x9E,0xFC,0x00, +0x49,0x00,0x1C,0xE5,0x80,0xC0,0xC8,0x06,0x49,0xFF,0xE8,0x60,0x40,0x03,0x00,0x06, +0xFC,0x80,0x84,0x01,0xFC,0x80,0xFC,0x42,0x3A,0x0F,0x84,0x20,0x80,0xE0,0x2E,0x07, +0xEB,0xA9,0x80,0xC1,0xC0,0x02,0x9B,0xD7,0x2E,0x07,0xEB,0xAA,0xC0,0x02,0x9B,0x9E, +0x2E,0x07,0xEB,0xAB,0xC0,0x0B,0x40,0x93,0x00,0x13,0x96,0x11,0x96,0x61,0x80,0xC7, +0x80,0x85,0x80,0x43,0x80,0xE9,0x80,0xA1,0x80,0x60,0x42,0x03,0x90,0x24,0x42,0x13, +0x14,0x24,0x40,0x00,0x08,0x17,0x40,0x10,0x8C,0x37,0xFC,0xC2,0xFC,0x42,0x44,0x62, +0x15,0x58,0x44,0x92,0x40,0x0C,0x84,0xEA,0x3C,0xA3,0x66,0x3C,0x84,0x00,0x10,0x03, +0x00,0x08,0x00,0x04,0x80,0xAD,0x8E,0x02,0xE6,0x02,0xE8,0x26,0xB0,0x41,0x84,0x40, +0x80,0x09,0x49,0xFF,0xCE,0x62,0xF0,0x01,0x22,0x20,0x00,0x08,0xAC,0xB2,0x22,0x10, +0x00,0x09,0xB4,0x00,0xF2,0x82,0xB6,0x06,0x84,0x01,0x10,0x03,0x00,0x08,0xB0,0x02, +0xF1,0x83,0xAC,0x73,0x80,0x4A,0x3A,0x00,0x04,0x00,0x3C,0x33,0x66,0x3D,0x3C,0x43, +0x66,0x40,0x3C,0x53,0x66,0x41,0x49,0xFF,0xFF,0xB0,0xF0,0x82,0xF0,0x02,0xF1,0x83, +0xAC,0x32,0xF0,0x03,0xAC,0x33,0x8E,0xE1,0x97,0xF9,0x8C,0xCC,0x50,0x94,0x80,0xCC, +0xCF,0xCE,0xFC,0xC2,0xFC,0x00,0x2E,0x17,0xF2,0xE6,0xC1,0x08,0x49,0x00,0x22,0x14, +0x49,0x00,0x22,0x1C,0x49,0x00,0x1C,0x50,0xD5,0x07,0x49,0x00,0x22,0x0D,0x49,0x00, +0x22,0x2D,0x49,0x00,0x1C,0x4E,0x49,0x00,0x1C,0x52,0xFC,0x80,0xFC,0x00,0x84,0x00, +0x49,0x00,0x1C,0x6B,0x84,0x00,0x44,0x12,0x15,0x58,0x49,0x00,0x1C,0x87,0x84,0x00, +0x84,0x27,0x49,0x00,0x1C,0xE5,0xFC,0x80,0xFC,0x00,0xC0,0x0B,0x5A,0x08,0x01,0x05, +0x49,0x00,0x25,0x89,0xD5,0x06,0x84,0xC0,0x5A,0x08,0x02,0x05,0x49,0x00,0x25,0x86, +0x80,0xC0,0x84,0x02,0x49,0x00,0x1C,0x51,0x84,0x02,0x44,0x12,0x15,0x58,0x49,0x00, +0x1C,0x6D,0xC6,0x04,0x80,0x06,0x49,0x00,0x1C,0xA6,0x49,0x00,0x25,0x83,0x49,0x00, +0x1C,0xB4,0x84,0x02,0x84,0x27,0x49,0x00,0x1C,0xC3,0xFC,0x80,0xFC,0x01,0xF0,0x81, +0x49,0x00,0x1C,0x35,0x80,0xC0,0xC8,0x05,0xF0,0x01,0x49,0xFF,0xFF,0xC9,0xD5,0x08, +0x5A,0x00,0x01,0x0C,0x49,0x00,0x1C,0x2E,0xF1,0x01,0x49,0xFF,0xFF,0xCF,0x80,0x06, +0x49,0x00,0x1B,0xF9,0x49,0x00,0x1C,0x0B,0xFC,0x81,0xFC,0x00,0x49,0x00,0x17,0x90, +0x5A,0x08,0x01,0x06,0x84,0x00,0x44,0x10,0x13,0x88,0xD5,0x04,0x84,0x00,0x44,0x10, +0x75,0x30,0x49,0x00,0x30,0x4D,0x84,0x00,0x84,0x21,0x49,0x00,0x30,0x57,0x84,0x00, +0x49,0x00,0x17,0x84,0xFC,0x80,0xFC,0x00,0x49,0x00,0x2B,0xA5,0x49,0x00,0x2B,0xBC, +0x49,0x00,0x2F,0xC8,0x49,0x00,0x30,0x07,0x49,0x00,0x2C,0xCC,0x49,0x00,0x2C,0xE1, +0x49,0x00,0x2D,0x14,0x49,0x00,0x10,0x18,0x49,0x00,0x2D,0xE2,0x49,0x00,0x25,0xCB, +0x49,0x00,0x1B,0x8F,0x84,0x00,0x3E,0x07,0xDE,0xCF,0xFC,0x80,0x2E,0x07,0xF1,0x72, +0xDD,0x9E,0xFC,0x00,0x49,0x00,0x12,0x4E,0x49,0xFF,0xFC,0x12,0x3E,0x07,0xF1,0x71, +0x49,0xFF,0xFD,0x66,0x49,0xFF,0xFC,0x03,0xFC,0x80,0xFC,0x00,0x84,0x00,0x3E,0x07, +0xF1,0x6F,0x49,0x00,0x17,0x4D,0xC8,0x0A,0x49,0xFF,0xE4,0x6C,0x2E,0x07,0xEE,0xE0, +0xC0,0x0E,0x84,0x01,0x3E,0x07,0xF1,0x6F,0xFC,0x80,0x49,0xFF,0xFD,0x52,0x49,0xFF, +0xFD,0x81,0x3C,0xF7,0xF8,0x5F,0x5E,0xF7,0x81,0x5E,0xE8,0xF4,0xFC,0x80,0xFC,0x00, +0x49,0xFF,0xFE,0xDF,0x80,0xC0,0x5A,0x08,0x01,0x06,0x49,0xFF,0xFF,0x09,0x3E,0x67, +0xF1,0x70,0xFC,0x80,0x2E,0x07,0xF1,0x71,0x5A,0x08,0x01,0x06,0x84,0x22,0x3E,0x17, +0xF1,0x76,0xDD,0x9E,0x5A,0x08,0x02,0x07,0x84,0x01,0x3E,0x07,0xF1,0x76,0x84,0x01, +0xDD,0x9E,0x84,0x00,0xDD,0x9E,0xFC,0x00,0x49,0x00,0x17,0x1A,0xC8,0x03,0x49,0x00, +0x17,0x44,0x49,0x00,0x10,0x04,0x49,0x00,0x0D,0x32,0x49,0x00,0x27,0x06,0x49,0x00, +0x26,0x5D,0x49,0x00,0x10,0x94,0x49,0x00,0x24,0xFC,0x49,0x00,0x2A,0xDE,0x49,0x00, +0x26,0x55,0x49,0x00,0x11,0x66,0x49,0x00,0x17,0x03,0xC8,0x03,0x49,0x00,0x27,0xFB, +0x49,0xFF,0xFB,0x9F,0x49,0x00,0x29,0xF0,0x49,0xFF,0xE3,0x34,0x49,0xFF,0xFF,0x67, +0x49,0x00,0x04,0x6C,0x49,0x00,0x16,0xF4,0x80,0xC0,0x5A,0x08,0x01,0x0A,0x44,0x00, +0x02,0x58,0x80,0x26,0x49,0xFF,0xCA,0x6A,0x80,0x06,0x49,0xFF,0xCA,0x71,0x84,0x01, +0x3E,0x07,0xF1,0x76,0xFC,0x80,0xFC,0x00,0x84,0x00,0x49,0x00,0x27,0x6C,0x84,0x00, +0x49,0x00,0x04,0x55,0x49,0x00,0x24,0xC3,0x49,0x00,0x20,0xF5,0xFC,0x80,0xFC,0x00, +0x49,0x00,0x25,0xD8,0x49,0x00,0x25,0xD7,0xC0,0x08,0x49,0x00,0x24,0xB8,0x49,0x00, +0x24,0x81,0x84,0x02,0x3E,0x07,0xF1,0x76,0xFC,0x80,0xFC,0x01,0x2E,0x07,0xF1,0x73, +0x5A,0x00,0x01,0x2F,0xC0,0x05,0x5A,0x00,0x02,0x38,0x48,0x00,0x00,0x90,0x49,0x00, +0x24,0xB0,0x84,0x00,0x49,0x00,0x27,0x47,0x49,0x00,0x16,0xBA,0x80,0xC0,0xC8,0x1C, +0x49,0x00,0x26,0x04,0xC0,0x15,0x80,0x06,0x49,0x00,0x11,0x13,0x80,0x06,0x49,0x00, +0x24,0x84,0x80,0x06,0x49,0x00,0x23,0xCC,0x49,0x00,0x25,0xFE,0xB6,0x1F,0x49,0x00, +0x25,0xFE,0xF0,0x81,0xB4,0x3F,0x80,0x06,0xF2,0x01,0x49,0x00,0x26,0x74,0x84,0x02, +0x84,0x20,0x49,0x00,0x11,0xF3,0x84,0x01,0x49,0x00,0x27,0x25,0xD5,0x64,0x49,0x00, +0x25,0x99,0x49,0x00,0x25,0x98,0xC0,0x62,0x49,0x00,0x24,0x79,0x84,0x00,0x49,0x00, +0x0C,0x14,0x84,0x02,0xD5,0x59,0x49,0x00,0x25,0xAF,0xC0,0x58,0x2E,0x07,0xF1,0x77, +0xC8,0x0C,0x44,0x14,0x50,0x28,0xB4,0x01,0x92,0x03,0x96,0x06,0x5A,0x00,0x01,0x06, +0xB4,0x01,0x92,0x01,0x96,0x06,0xC8,0x05,0x2E,0x07,0xF1,0x72,0x5A,0x00,0x02,0x47, +0x3C,0x0D,0xFE,0x44,0x5A,0x00,0x01,0x43,0x49,0x00,0x24,0x59,0x84,0x01,0x49,0x00, +0x0B,0xF4,0x5A,0x08,0x01,0x37,0x49,0x00,0x16,0x6B,0xC8,0x2B,0x44,0x02,0x20,0xE8, +0x49,0x00,0x0B,0x9A,0x49,0xFF,0xE3,0x76,0x49,0x00,0x25,0xB0,0x80,0xC0,0xC8,0x1D, +0x49,0x00,0x10,0xBF,0x80,0x06,0x49,0x00,0x24,0x30,0x80,0x06,0x49,0x00,0x23,0x78, +0x49,0x00,0x25,0xAA,0xB6,0x1F,0x49,0x00,0x25,0xAA,0xF0,0x81,0xB4,0x3F,0x80,0x06, +0xF2,0x01,0x49,0x00,0x26,0x20,0x46,0x00,0x42,0x10,0x50,0x00,0x08,0x20,0x80,0x20, +0x80,0x46,0x49,0xFF,0xC2,0x82,0xD5,0x05,0x49,0x00,0x25,0x90,0x49,0x00,0x12,0x0C, +0x49,0x00,0x12,0x59,0x84,0x00,0x49,0x00,0x23,0x71,0x84,0x01,0x3E,0x07,0xF1,0x76, +0x49,0x00,0x24,0x31,0x84,0x01,0x3E,0x07,0xF1,0x73,0xFC,0x81,0xFC,0x00,0x84,0x01, +0x84,0x20,0x49,0x00,0x2F,0x03,0x84,0x01,0x49,0x00,0x1B,0x4A,0x84,0x00,0x3E,0x07, +0xF1,0x70,0xFC,0x80,0xFC,0x01,0x2E,0x17,0xF1,0x6A,0x5A,0x10,0x01,0x1E,0xC1,0x04, +0x5A,0x10,0x02,0x42,0xD5,0x7A,0x3C,0x07,0xF6,0x56,0xE4,0x1F,0xE8,0x0E,0x3C,0xF7, +0xF6,0x52,0x5E,0xF7,0xFF,0xE2,0xE9,0x09,0x3C,0xF7,0xF6,0x6C,0x3C,0x07,0xF6,0x6B, +0x8A,0x0F,0xE4,0x1F,0x84,0x02,0xE9,0x02,0x84,0x01,0x3E,0x07,0xF1,0x6A,0x84,0x00, +0x3E,0x07,0xF1,0x69,0xD5,0x62,0x3C,0x17,0xF6,0x56,0xE4,0x3F,0xE8,0x0D,0x3C,0xF7, +0xF6,0x52,0x5E,0xF7,0xFF,0xE2,0xE9,0x08,0x3C,0xF7,0xF6,0x6C,0x3C,0x07,0xF6,0x6B, +0x8A,0x0F,0xE4,0x1F,0xE9,0x13,0x2E,0x07,0xF1,0x69,0x8C,0x01,0x96,0x00,0xE6,0x03, +0x3E,0x07,0xF1,0x69,0xE8,0x04,0x5E,0xF0,0x80,0x65,0xE9,0x47,0x84,0x00,0x3E,0x07, +0xF1,0x6A,0x49,0x00,0x0A,0x4D,0x84,0x04,0xD5,0x3E,0x84,0x00,0x3E,0x07,0xF1,0x69, +0x84,0x02,0xD5,0x19,0x3C,0x07,0xF6,0x56,0xE4,0x1F,0xE8,0x0E,0x3C,0xF7,0xF6,0x52, +0x5E,0xF7,0xFF,0xE2,0xE9,0x0C,0x3C,0xF7,0xF6,0x6C,0x3C,0x07,0xF6,0x6B,0x8A,0x0F, +0xE4,0x1F,0xE8,0x05,0xD5,0x0B,0x5E,0xF0,0x00,0x65,0xE8,0xE1,0x84,0x00,0x3E,0x07, +0xF1,0x69,0x84,0x01,0x3E,0x07,0xF1,0x6A,0xD5,0x20,0x2E,0x07,0xF1,0x69,0x8C,0x01, +0x96,0x00,0xE6,0x03,0x3E,0x07,0xF1,0x69,0xE9,0x18,0x84,0x00,0xF1,0x81,0x3E,0x07, +0xF1,0x6A,0x49,0xFF,0xFF,0x85,0x49,0x00,0x0A,0x1B,0x49,0x00,0x2C,0x04,0xE6,0x03, +0xF1,0x01,0xE9,0x04,0x44,0x00,0x00,0x5A,0xD5,0x03,0x44,0x00,0x45,0xF6,0x49,0x00, +0x2C,0x2A,0x84,0x01,0x3E,0x07,0xF1,0x74,0xFC,0x81,0xFC,0x20,0x49,0x00,0x1A,0x2F, +0x5A,0x08,0x02,0x07,0x49,0xFF,0xFE,0x0B,0x84,0x00,0x3E,0x07,0xF1,0x74,0x2E,0x07, +0xF1,0x74,0xC8,0x3A,0x2E,0x17,0xF1,0x6F,0x5A,0x18,0x01,0x04,0x49,0x00,0x2E,0x5D, +0x84,0x00,0x49,0x00,0x2E,0x7E,0x5A,0x00,0x01,0x04,0x84,0xE0,0xD5,0x2E,0x49,0x00, +0x1A,0x16,0x5A,0x00,0x02,0xFC,0x49,0x00,0x15,0x83,0x5A,0x00,0x01,0x04,0x48,0x00, +0x00,0xDC,0x2E,0x07,0xF1,0x6B,0x8C,0x01,0x3E,0x07,0xF1,0x6B,0x49,0x00,0x15,0x78, +0x80,0xC0,0xC8,0x0E,0x84,0x01,0x80,0x26,0x49,0x00,0x2E,0x48,0x80,0x06,0x44,0x10, +0x75,0x30,0x49,0x00,0x2E,0x35,0x80,0x06,0x84,0x21,0x49,0x00,0x2E,0x3F,0x2E,0x07, +0xF1,0x6B,0x4E,0x02,0x00,0xD0,0x49,0xFF,0xFF,0x33,0x84,0x01,0x3E,0x07,0xF1,0x74, +0x84,0x00,0x3E,0x07,0xF1,0x6B,0x84,0xE1,0x2E,0x07,0xF1,0x74,0x5A,0x08,0x03,0x04, +0x49,0xFF,0xFF,0x32,0x2E,0x67,0xF1,0x74,0x5A,0x68,0x01,0x0C,0x80,0x06,0x49,0x00, +0x15,0x55,0x49,0x00,0x29,0x17,0x84,0x02,0x3E,0x07,0xF1,0x74,0x3E,0x67,0xF1,0x6D, +0x2E,0x07,0xF1,0x74,0x5A,0x00,0x02,0x04,0x48,0x00,0x00,0x95,0x2E,0x07,0xF1,0x6D, +0x5A,0x08,0x01,0x29,0x49,0x00,0x09,0xA0,0x84,0x00,0x3E,0x07,0xF1,0x6D,0x49,0x00, +0x2B,0xC2,0x44,0x00,0x00,0x64,0x49,0x00,0x2B,0xC9,0x49,0x00,0x2B,0x84,0xE6,0x03, +0xE9,0x04,0x44,0x00,0x00,0x64,0xD5,0x03,0x44,0x00,0x46,0x00,0x49,0x00,0x2B,0xBE, +0x49,0x00,0x2B,0xEA,0x5A,0x08,0x01,0x0A,0x49,0x00,0x15,0x22,0xC8,0x03,0x84,0x04, +0xD5,0x02,0x84,0x03,0x3E,0x07,0xF1,0x74,0x49,0x00,0x09,0x82,0x3E,0x07,0xDE,0xCE, +0xD5,0x69,0x2E,0x07,0xF1,0x6F,0x5A,0x08,0x01,0x06,0x84,0x04,0x3E,0x07,0xF1,0x74, +0xD5,0x61,0x2E,0x07,0xF1,0x68,0x5A,0x08,0x01,0x0D,0x84,0x00,0x3E,0x07,0xF1,0x68, +0x49,0x00,0x15,0x06,0x5A,0x08,0x01,0x06,0x49,0x00,0x09,0x78,0x3E,0x07,0xDE,0xCE, +0x2E,0x07,0xDE,0xCE,0x49,0x00,0x09,0x99,0x5A,0x08,0x01,0x4D,0x2E,0x67,0xF2,0xE5, +0x97,0xB0,0x5A,0x68,0x01,0x37,0x49,0x00,0x14,0xF3,0xC8,0x33,0x49,0x00,0x25,0x7B, +0x49,0xFF,0xBE,0x05,0xC8,0x2E,0x84,0x0B,0xFA,0x2E,0x49,0x00,0x2D,0xB1,0x84,0x0B, +0x80,0x26,0x49,0x00,0x2D,0xBB,0x80,0x06,0x49,0xFF,0xBD,0xEF,0x49,0xFF,0xBD,0xF7, +0x5A,0x00,0x01,0x0C,0x84,0x0B,0x49,0x00,0x2D,0xCC,0x5A,0x08,0x01,0xF9,0x84,0x00, +0x3E,0x07,0xF2,0xE5,0x3E,0x07,0xF2,0xE4,0x84,0x0B,0x84,0x20,0x49,0x00,0x2D,0xA6, +0x2E,0x67,0xF2,0xE5,0x97,0xB0,0x5A,0x68,0x01,0x0D,0x80,0x06,0x49,0x00,0x21,0xFE, +0x84,0x00,0x49,0xFF,0xBC,0xC5,0x80,0x06,0x49,0x00,0x22,0x04,0x3E,0x67,0xF2,0xE4, +0x49,0x00,0x09,0x22,0x49,0x00,0x2B,0x80,0x5A,0x08,0x01,0x0A,0x49,0x00,0x14,0xB8, +0xC8,0x03,0x84,0x04,0xD5,0x02,0x84,0x03,0x3E,0x07,0xF1,0x74,0x84,0x01,0x3E,0x07, +0xF1,0x68,0x2E,0x07,0xF1,0x74,0x5A,0x08,0x04,0x1E,0x49,0xFF,0xFD,0x18,0x84,0x00, +0x3E,0x07,0xF1,0x74,0xD5,0x17,0x49,0x00,0x14,0x34,0x4E,0x03,0xFF,0x18,0x49,0x00, +0x23,0xED,0x4E,0x03,0xFF,0x14,0x49,0x00,0x14,0x9B,0x4E,0x02,0xFF,0x1C,0x48,0xFF, +0xFF,0x0E,0x49,0x00,0x14,0x95,0x5A,0x00,0x01,0x04,0x48,0xFF,0xFF,0x36,0x48,0xFF, +0xFF,0x2C,0x80,0x07,0xFC,0xA0,0xFC,0x00,0x49,0x00,0x23,0xAE,0xC0,0x62,0x2E,0x07, +0xF1,0x77,0xC8,0x0C,0x44,0x14,0x50,0x28,0xB4,0x01,0x92,0x03,0x96,0x06,0x5A,0x00, +0x01,0x06,0xB4,0x01,0x92,0x01,0x96,0x06,0xC8,0x05,0x2E,0x07,0xF1,0x72,0x5A,0x00, +0x02,0x51,0x3C,0x0D,0xFE,0x44,0x5A,0x00,0x01,0x4D,0x49,0xFF,0xFC,0x03,0x2E,0x07, +0xDE,0xCD,0x5A,0x08,0x03,0x05,0x49,0x00,0x22,0x66,0xD5,0x40,0x49,0x00,0x22,0x4F, +0x49,0xFF,0xE0,0x79,0x49,0xFF,0xFD,0x07,0x49,0x00,0x22,0x5D,0x49,0xFF,0xFD,0x34, +0x5A,0x08,0x01,0x08,0x84,0x00,0x49,0x00,0x14,0x61,0x49,0xFF,0xCD,0x9C,0xD5,0x31, +0x49,0xFF,0xC9,0x36,0x2E,0x17,0xDE,0xCF,0x5A,0x00,0x01,0x08,0x5A,0x10,0x01,0x08, +0x3C,0x0D,0xFB,0x37,0x96,0x36,0xC0,0x1B,0x84,0x0A,0xC1,0x02,0x84,0x05,0x3E,0x07, +0xEC,0xA0,0x84,0x06,0xC1,0x02,0x84,0x05,0x3C,0x1D,0xFB,0x37,0x3E,0x07,0xEC,0x9F, +0x44,0x0F,0xFF,0xBF,0xFE,0x0E,0x3C,0x0F,0xFB,0x37,0x84,0x23,0x84,0x00,0x3E,0x07, +0xDE,0xCF,0x3E,0x17,0xF1,0x76,0x3E,0x07,0xF1,0x73,0xD5,0x0B,0x49,0xFF,0xFC,0xDF, +0x49,0xFF,0xFE,0x8D,0xC8,0x03,0x49,0xFF,0xFC,0xF4,0x84,0x01,0x3E,0x07,0xF1,0x76, +0xFC,0x80,0x00,0x00,0xFC,0x40,0x49,0x00,0x18,0xB2,0x80,0xC0,0x49,0x00,0x19,0x3C, +0x5A,0x08,0x01,0x05,0x84,0x20,0x49,0x00,0x2C,0xF1,0x84,0x01,0x49,0x00,0x2D,0x09, +0x80,0xE0,0x5A,0x08,0x01,0x08,0x84,0x20,0x49,0x00,0x2C,0xE8,0x80,0x07,0x49,0x00, +0x19,0x2F,0x2E,0x07,0xF1,0x70,0x5A,0x08,0x01,0x31,0x49,0x00,0x19,0x25,0x80,0xE0, +0x5A,0x08,0x01,0x2C,0x85,0x20,0x84,0x00,0x3E,0x97,0xF1,0x70,0x49,0x00,0x19,0x20, +0x84,0x00,0x3E,0x97,0xF1,0x6C,0x49,0xFF,0xFC,0x53,0x80,0x07,0x84,0x28,0x5A,0x68, +0x02,0x04,0x44,0x10,0x01,0x90,0x49,0x00,0x2C,0xBB,0x84,0x01,0x80,0x20,0x49,0x00, +0x2C,0xC5,0x5A,0x68,0x02,0x1C,0x49,0x00,0x19,0x07,0x80,0xE0,0xC8,0x17,0x84,0x01, +0x49,0x00,0x2C,0xD7,0x81,0x20,0x5A,0x08,0x01,0xF8,0x80,0x27,0x49,0x00,0x2C,0xB6, +0x80,0x09,0x49,0x00,0x18,0xFD,0xD5,0x0A,0x2E,0x77,0xF1,0x70,0x5A,0x78,0x01,0x07, +0x49,0x00,0x18,0xF2,0xC8,0x03,0x3E,0x77,0xF1,0x6C,0x2E,0x07,0xF1,0x76,0xC0,0x11, +0x5A,0x68,0x01,0x06,0x84,0x04,0x3E,0x07,0xF1,0x76,0xD5,0x0B,0x5A,0x08,0x04,0x0A, +0x84,0x01,0x3E,0x07,0xF1,0x76,0x84,0x01,0x49,0x00,0x24,0x4D,0x49,0x00,0x21,0xB1, +0x2E,0x07,0xF1,0x76,0xE6,0x05,0xE8,0x1A,0x44,0xF0,0x8C,0xF8,0x38,0x07,0x80,0x00, +0x40,0xF0,0x3C,0x00,0x4A,0x00,0x3C,0x00,0x06,0x12,0x18,0x1E,0x0C,0x00,0x49,0xFF, +0xFC,0x94,0xD5,0x0C,0x49,0xFF,0xFC,0xC9,0xD5,0x09,0x49,0xFF,0xFC,0xD2,0xD5,0x06, +0x49,0xFF,0xFF,0x1B,0xD5,0x03,0x49,0xFF,0xFC,0xDA,0xFC,0xC0,0xFC,0x40,0x46,0x61, +0xFF,0xFF,0x46,0x71,0xF1,0x10,0x50,0x63,0x0F,0x00,0x50,0x73,0x81,0x00,0x46,0xA1, +0xF2,0x90,0x85,0x20,0x49,0x00,0x2C,0x3D,0x2E,0x07,0xF1,0x84,0xC0,0x06,0x84,0x02, +0x49,0x00,0x2C,0x5B,0x3E,0x97,0xF1,0x84,0x84,0x02,0x49,0x00,0x2C,0x7A,0x5A,0x08, +0x01,0x04,0x49,0x00,0x15,0x96,0x2E,0x07,0xF1,0x72,0xE6,0x05,0xE8,0xEC,0x44,0xF0, +0x8D,0x6C,0x38,0x07,0x81,0x01,0x40,0xF0,0x3C,0x00,0xDD,0x0F,0x3C,0x01,0x0A,0x00, +0x50,0x00,0xD8,0x00,0x50,0x01,0x84,0x01,0x85,0x20,0x3E,0x07,0xF1,0x75,0x44,0x10, +0x01,0xF4,0x84,0x02,0x3E,0x97,0xF1,0x84,0x49,0x00,0x2C,0x32,0x84,0x02,0x84,0x21, +0x49,0x00,0x2C,0x3C,0x3E,0x97,0xF1,0x76,0x3E,0x97,0xF1,0x74,0x3E,0x97,0xF1,0x6E, +0x49,0x00,0x13,0x5E,0x5A,0x08,0x01,0x0A,0x49,0x00,0x13,0x5D,0x5A,0x08,0x02,0x04, +0x84,0x03,0xD5,0x7C,0x84,0x04,0xD5,0x7A,0x84,0x02,0xD5,0x78,0x85,0x20,0x49,0x00, +0x12,0xF9,0x49,0x00,0x13,0x09,0x3E,0x97,0xF1,0x77,0x49,0x00,0x12,0xFC,0x5A,0x08, +0x01,0x24,0x3E,0x07,0xF1,0x6E,0x84,0x00,0x49,0x00,0x23,0xCD,0x49,0xFF,0xC6,0x35, +0x80,0x06,0x49,0xFF,0xC6,0x27,0x46,0x01,0xF2,0x80,0x50,0x00,0x01,0x00,0x49,0xFF, +0xC6,0x21,0xFA,0x04,0x49,0xFF,0xC7,0xAF,0x46,0x01,0xF1,0x00,0x50,0x00,0x01,0x00, +0x49,0xFF,0xC6,0x18,0x44,0x00,0x00,0x32,0x49,0xFF,0xC7,0xA5,0x84,0x00,0x3E,0x97, +0xF1,0x75,0x49,0x00,0x28,0xC1,0x49,0x00,0x12,0xEF,0x2E,0x97,0xF1,0x6E,0x5A,0x08, +0x01,0x0D,0x84,0x00,0x3C,0x0F,0xFE,0x44,0x5A,0x98,0x01,0x08,0x49,0x00,0x13,0xAE, +0x3E,0x97,0xF1,0x72,0x48,0xFF,0xFF,0x7F,0x4E,0x93,0xFF,0x7D,0x49,0xFF,0xFE,0xEC, +0x48,0xFF,0xFF,0x79,0x49,0x00,0x12,0xBF,0x49,0x00,0x12,0xD6,0x49,0x00,0x12,0xC4, +0x5A,0x08,0x01,0x1F,0x3E,0x07,0xF1,0x6E,0x84,0x00,0x49,0x00,0x23,0x8C,0x49,0xFF, +0xC5,0xF4,0x80,0x06,0x49,0xFF,0xC5,0xE6,0x80,0x07,0x49,0xFF,0xC5,0xE3,0x44,0x00, +0x00,0x96,0x49,0xFF,0xC7,0x70,0x50,0x05,0x01,0x00,0x49,0xFF,0xC5,0xDB,0xFA,0x04, +0x49,0xFF,0xC7,0x69,0x49,0x00,0x13,0x2F,0x84,0x00,0x3E,0x07,0xF1,0x75,0x49,0x00, +0x12,0x91,0x5A,0x08,0x01,0x10,0x84,0x20,0x3E,0x17,0xF2,0xE6,0x49,0x00,0x28,0x7C, +0x2E,0x07,0xF1,0x6E,0x5A,0x08,0x01,0x07,0x84,0x01,0x3E,0x07,0xF1,0x72,0x48,0xFF, +0xFF,0x42,0x2E,0x07,0xF1,0x6E,0x4E,0x03,0xFF,0x3E,0xD5,0xC1,0x49,0x00,0x12,0x8C, +0x5A,0x08,0x01,0x1F,0x3E,0x07,0xF1,0x6E,0x84,0x00,0x49,0x00,0x23,0x54,0x49,0xFF, +0xC5,0xBC,0x80,0x06,0x49,0xFF,0xC5,0xAE,0x80,0x07,0x49,0xFF,0xC5,0xAB,0x44,0x00, +0x00,0x96,0x49,0xFF,0xC7,0x38,0x50,0x05,0x01,0x00,0x49,0xFF,0xC5,0xA3,0xFA,0x04, +0x49,0xFF,0xC7,0x31,0x49,0x00,0x12,0xF7,0x84,0x00,0x3E,0x07,0xF1,0x75,0x49,0x00, +0x12,0x59,0x5A,0x08,0x01,0x08,0x49,0x00,0x28,0x47,0x2E,0x07,0xF1,0x6E,0x5A,0x00, +0x01,0xCD,0x2E,0x07,0xF1,0x6E,0x4E,0x03,0xFF,0x0E,0x44,0x10,0x00,0xEB,0x49,0x00, +0x2B,0x4C,0x49,0x00,0x12,0x84,0x84,0x0A,0x49,0xFF,0xC7,0x15,0x84,0x01,0x44,0x10, +0x00,0xEB,0x49,0x00,0x2B,0x42,0x48,0xFF,0xFE,0xFE,0x92,0x00,0x2E,0x07,0xF1,0x75, +0xDD,0x9E,0x3E,0x07,0xF1,0x75,0xDD,0x9E,0xDD,0x9E,0x46,0x10,0x00,0x81,0xC8,0x06, +0x04,0x00,0x80,0x33,0x58,0x00,0x02,0x00,0xD5,0x06,0x04,0x20,0x80,0x33,0x44,0x0F, +0xFD,0xFF,0xFE,0x16,0x14,0x00,0x80,0x33,0xDD,0x9E,0x44,0x24,0x2C,0x14,0x84,0x30, +0xB4,0x62,0x96,0x1F,0xFE,0x5E,0xFE,0x0F,0xB6,0x02,0xDD,0x9E,0x44,0x24,0x2C,0x14, +0x96,0x1F,0xB4,0x62,0x40,0x10,0x20,0x08,0x44,0x0F,0xF0,0xFF,0xFE,0x1E,0xFE,0x0F, +0xB6,0x02,0xDD,0x9E,0xDD,0x9E,0x46,0x20,0x00,0x81,0x96,0x0F,0x04,0x31,0x00,0x12, +0x40,0x10,0x40,0x08,0x44,0x0C,0xFF,0xFF,0xFE,0x1E,0xFE,0x0F,0x14,0x01,0x00,0x12, +0xDD,0x9E,0xFC,0x00,0x44,0x24,0x80,0x10,0x84,0x01,0xB4,0x22,0x96,0x46,0xC1,0x0B, +0xAE,0x10,0x3E,0x07,0xF1,0x87,0x3E,0x07,0xF1,0x84,0x3C,0x0D,0xFC,0x5F,0x8C,0x01, +0x3C,0x0F,0xFC,0x5F,0x44,0x04,0x80,0x10,0xB4,0x00,0x92,0x0A,0x96,0x06,0xC0,0x16, +0x44,0x04,0x80,0x11,0x84,0x24,0xAE,0x40,0x46,0x00,0x00,0x81,0x04,0x00,0x00,0x1E, +0x92,0x04,0x96,0x0F,0x3E,0x07,0xF9,0x14,0x49,0x00,0x01,0x78,0x44,0x07,0x20,0x00, +0xB4,0x00,0x92,0x08,0x96,0x06,0x49,0x00,0x01,0x56,0x44,0x14,0x80,0x10,0x84,0x41, +0xB4,0x01,0x92,0x08,0x96,0x06,0xC0,0x06,0x44,0x04,0x80,0x11,0xAE,0x80,0x3E,0x27, +0xF1,0x85,0xB4,0x01,0x92,0x07,0x96,0x06,0xC0,0x06,0x44,0x04,0x80,0x10,0x44,0x1F, +0xFF,0x80,0xAE,0x40,0x44,0x04,0x80,0x10,0xB4,0x20,0x92,0x25,0x96,0x46,0xC1,0x03, +0xFA,0x30,0xAE,0x40,0xB4,0x00,0x92,0x06,0x96,0x06,0xC0,0x06,0x44,0x04,0x80,0x10, +0x44,0x10,0x00,0x40,0xAE,0x40,0x44,0x14,0x80,0x10,0xB4,0x01,0x92,0x18,0x96,0x06, +0xC0,0x05,0x44,0x04,0x80,0x13,0x84,0x41,0xAE,0x80,0xB4,0x01,0x92,0x15,0x96,0x06, +0xC0,0x05,0x44,0x04,0x80,0x12,0xFA,0x30,0xAE,0x40,0xFC,0x80,0xFC,0x00,0x44,0x24, +0x80,0x10,0x84,0x21,0xB4,0x02,0x92,0x04,0x96,0x06,0xC0,0x14,0xFA,0x00,0xAE,0x10, +0x3E,0x17,0xF1,0x86,0x3E,0x17,0xF1,0x84,0x3C,0x0D,0xFC,0x60,0x8C,0x01,0x3C,0x0F, +0xFC,0x60,0x46,0x00,0x00,0x81,0x04,0x00,0x00,0xF0,0x92,0x03,0x96,0x06,0x49,0x00, +0x01,0x02,0x44,0x14,0x80,0x10,0xB4,0x01,0x92,0x0B,0x96,0x06,0xC0,0x05,0x44,0x04, +0x80,0x11,0x84,0x48,0xAE,0x80,0xB4,0x01,0x92,0x03,0x96,0x06,0xC0,0x05,0x44,0x04, +0x80,0x10,0x84,0x28,0xAE,0x40,0x44,0x04,0x80,0x10,0xB4,0x20,0x92,0x22,0x96,0x46, +0xC1,0x03,0x84,0x24,0xAE,0x40,0xB4,0x00,0x92,0x01,0x96,0x06,0xC0,0x0E,0x44,0x04, +0x80,0x90,0xB4,0x00,0x92,0x01,0x96,0x06,0x5A,0x08,0x01,0x08,0x44,0x14,0x80,0x10, +0x84,0x42,0xAE,0x88,0x3E,0x07,0xF1,0x77,0x44,0x14,0x80,0x10,0xB4,0x01,0x92,0x19, +0x96,0x06,0xC0,0x05,0x44,0x04,0x80,0x13,0x84,0x42,0xAE,0x80,0xB4,0x01,0x92,0x16, +0x96,0x06,0xC0,0x06,0x44,0x04,0x80,0x12,0x44,0x10,0x00,0x40,0xAE,0x40,0xFC,0x80, +0xFC,0x00,0x80,0xC0,0x49,0xFF,0xBD,0x32,0x46,0x20,0x00,0x81,0x97,0x86,0x94,0x32, +0x04,0x61,0x03,0x93,0x84,0x3B,0xFF,0x8E,0xFF,0x87,0x14,0x61,0x03,0x93,0x49,0xFF, +0xBD,0x1E,0xFC,0x80,0x44,0x24,0x50,0x1C,0x40,0x00,0x40,0x08,0xB4,0x22,0x96,0x49, +0xFE,0x0F,0xB6,0x02,0xDD,0x9E,0x44,0x24,0x50,0x1C,0x44,0x1F,0x00,0xFF,0xB4,0x62, +0x40,0x00,0x20,0x08,0xFE,0x5E,0xFE,0x0F,0xB6,0x02,0xDD,0x9E,0x3E,0x07,0xF1,0x88, +0xDD,0x9E,0x44,0x07,0x21,0x00,0x46,0x10,0x20,0x00,0xB4,0x40,0xFE,0x57,0xB6,0x20, +0x80,0x20,0xB4,0x01,0x92,0x19,0x96,0x06,0xC8,0xFD,0xDD,0x9E,0x44,0x27,0x21,0x1C, +0x96,0x1F,0x40,0x10,0x60,0x08,0xB4,0x62,0x46,0x0F,0x0F,0xFF,0x50,0x00,0x0F,0xFF, +0xFE,0x1E,0xFE,0x0F,0xB6,0x02,0xDD,0x9E,0x44,0x24,0x80,0x84,0x96,0x06,0xB4,0x62, +0x40,0x10,0x40,0x08,0x44,0x0E,0xFF,0xFF,0xFE,0x1E,0xFE,0x0F,0xB6,0x02,0xDD,0x9E, +0x44,0x04,0x80,0x04,0xA6,0x02,0x92,0x01,0x96,0x06,0xC0,0x08,0x44,0x04,0x80,0x06, +0x84,0x22,0xAE,0x40,0x84,0x01,0x3E,0x07,0xF1,0x89,0x44,0x04,0x80,0x04,0x84,0x21, +0xA6,0x02,0x96,0x06,0xC0,0x06,0x44,0x04,0x80,0x06,0xAE,0x40,0x3E,0x17,0xF1,0x88, +0xDD,0x9E,0x44,0x04,0x80,0x04,0xA6,0x03,0x92,0x01,0x96,0x06,0xDD,0x9E,0x44,0x04, +0x10,0x04,0x44,0x10,0x00,0x55,0xAE,0x40,0x44,0x1F,0xFF,0xAA,0xAE,0x41,0x44,0x10, +0x00,0x66,0xAE,0x42,0x40,0x00,0x00,0x09,0xDD,0x9E,0x44,0x14,0x10,0x08,0xB6,0x01, +0x44,0x14,0x80,0x04,0xA6,0x0B,0x92,0x01,0x96,0x06,0xC0,0xFD,0x44,0x04,0x80,0x07, +0x84,0x22,0xAE,0x40,0xDD,0x9E,0xFC,0x00,0x80,0xC0,0x92,0x10,0x96,0x00,0x49,0xFF, +0xFF,0xEE,0x40,0x03,0x20,0x09,0x96,0x00,0x49,0xFF,0xFF,0xE9,0x96,0x30,0x49,0xFF, +0xFF,0xE6,0xFC,0x80,0x44,0x24,0x10,0x00,0x96,0x06,0xA6,0x53,0x54,0x10,0x80,0xFE, +0xFE,0x0F,0xAE,0x13,0xDD,0x9E,0x44,0x14,0x10,0x00,0xAE,0x08,0xDD,0x9E,0x44,0x04, +0x10,0x12,0x84,0x20,0xAE,0x40,0xDD,0x9E,0x44,0x14,0x10,0x0C,0xB6,0x01,0xDD,0x9E, +0x44,0x24,0x10,0x14,0x96,0x06,0xA6,0x53,0x54,0x10,0x80,0xFE,0xFE,0x0F,0xAE,0x13, +0xDD,0x9E,0x44,0x14,0x10,0x10,0xAE,0x0B,0xDD,0x9E,0x44,0x14,0x10,0x10,0xAE,0x08, +0xDD,0x9E,0x3E,0x07,0xDE,0xD0,0xDD,0x9E,0x2E,0x07,0xDE,0xD0,0xDD,0x9E,0x44,0x37, +0x20,0x00,0x54,0x10,0x00,0x01,0xB4,0x83,0x40,0x20,0xA0,0x08,0x44,0x1F,0xFE,0xFF, +0xFE,0x66,0xFE,0x57,0xB6,0x23,0x3E,0x07,0xDE,0xD0,0xDD,0x9E,0x44,0x07,0x20,0x00, +0xB4,0x00,0x92,0x18,0x96,0x06,0xDD,0x9E,0x84,0x01,0x3E,0x07,0xDE,0xD1,0xDD,0x9E, +0x2E,0x07,0xDE,0xD1,0xDD,0x9E,0x84,0x00,0x3E,0x07,0xDE,0xD1,0xDD,0x9E,0x3C,0x0D, +0xFC,0x67,0xC0,0x0B,0xA4,0x80,0x3C,0x13,0xF8,0xCA,0x8E,0x21,0xE0,0x41,0xE8,0x05, +0xA4,0x40,0x8C,0x21,0x96,0x49,0xAC,0x40,0xA4,0x80,0x3C,0x13,0xF8,0xCC,0xE2,0x41, +0xE9,0x05,0x84,0x01,0x3E,0x07,0xDE,0xD2,0xD5,0x0B,0x3C,0x1D,0xFC,0x69,0xC1,0x08, +0xA4,0x00,0x88,0x01,0x44,0x16,0x00,0x34,0xA6,0x00,0x96,0x00,0xB6,0x01,0x44,0x06, +0x00,0x00,0xB4,0x00,0x92,0x08,0x96,0x06,0x5A,0x08,0x01,0x0B,0x44,0x06,0x00,0x30, +0xB4,0x20,0x58,0x10,0x80,0x01,0xB6,0x20,0xB4,0x20,0x96,0x46,0xC9,0xFE,0xDD,0x9E, +0xFC,0x40,0x49,0xFF,0xC1,0x5D,0xE6,0x03,0xE8,0x0F,0x3C,0x0D,0xFC,0x67,0x84,0x20, +0xAC,0x40,0x3C,0x1D,0xFC,0x69,0xC1,0x08,0xA4,0x00,0x88,0x01,0x44,0x16,0x00,0x34, +0xA6,0x00,0x96,0x00,0xB6,0x01,0x85,0x40,0x44,0x74,0x80,0x00,0x44,0x94,0x80,0x80, +0xA7,0xBA,0xB4,0x09,0x92,0xC3,0x92,0x13,0x96,0x06,0xFF,0x86,0xC6,0x1A,0x44,0x04, +0x80,0x02,0x84,0x28,0xAE,0x40,0x49,0xFF,0xC1,0x3B,0xE6,0x03,0xE8,0x4D,0x44,0x06, +0x00,0x00,0xB4,0x00,0x92,0x08,0x96,0x06,0x5A,0x08,0x01,0x47,0x44,0x06,0x00,0x30, +0xB4,0x20,0x58,0x10,0x80,0x01,0xB6,0x20,0xB4,0x20,0x96,0x46,0xC9,0xFE,0xD5,0x3C, +0xA6,0x3A,0x40,0x10,0x10,0x09,0xB4,0x09,0x92,0x14,0x96,0x06,0xFE,0x0E,0xC0,0x1F, +0x49,0xFF,0xC1,0x1E,0xE6,0x03,0x44,0x04,0x80,0x02,0xFA,0x20,0xAE,0x40,0xE8,0x04, +0x49,0xFF,0xFF,0x87,0xD5,0x13,0x3C,0x0D,0xFC,0x67,0xC0,0x0B,0xA4,0x80,0x3C,0x13, +0xF8,0xCA,0x8E,0x21,0xE0,0x41,0xE8,0x05,0xA4,0x40,0x8C,0x21,0x96,0x49,0xAC,0x40, +0xA4,0x40,0x3C,0x03,0xF8,0xCC,0xE2,0x20,0xE8,0x17,0x85,0x40,0xA6,0x3A,0x40,0x10, +0x18,0x09,0xB4,0x09,0x92,0x16,0x96,0x06,0xFE,0x0E,0xC0,0x07,0x44,0x04,0x80,0x02, +0x44,0x10,0x00,0x40,0xAE,0x40,0xD5,0x08,0x84,0x01,0x8D,0x41,0x49,0xFF,0xC4,0x82, +0x5C,0xF5,0x27,0x11,0xE9,0xA6,0xFC,0xC0,0x44,0x16,0x00,0x34,0xB6,0x01,0xDD,0x9E, +0x3C,0x0F,0xFC,0x6A,0x02,0x0F,0x80,0x00,0x3C,0x4B,0xF8,0xCC,0x3C,0x1F,0xFC,0x69, +0x3C,0x5B,0xF8,0xCB,0x3C,0x2F,0xFC,0x68,0x3C,0x3F,0xFC,0x67,0x3C,0x0B,0xF8,0xCA, +0xDD,0x9E,0x3C,0x0B,0xF8,0xCC,0xDD,0x9E,0x3E,0x07,0xDE,0xD2,0xDD,0x9E,0x2E,0x07, +0xDE,0xD2,0xDD,0x9E,0x3C,0x0F,0xFC,0x64,0xDD,0x9E,0x3C,0x0F,0xFC,0x63,0xDD,0x9E, +0xFC,0x20,0x44,0x14,0x80,0x00,0x44,0x04,0x80,0x80,0xA6,0x8A,0xB4,0x00,0x92,0x10, +0x96,0x06,0xFE,0x16,0xC0,0x05,0x44,0x04,0x80,0x02,0x84,0x41,0xAE,0x80,0xA6,0x0A, +0x40,0x10,0x04,0x09,0x44,0x04,0x80,0x80,0xB4,0x00,0x92,0x11,0x96,0x06,0xFE,0x0E, +0xC0,0x05,0x44,0x04,0x80,0x02,0x84,0x22,0xAE,0x40,0x44,0x04,0x80,0x00,0xA6,0x02, +0x40,0x10,0x08,0x09,0x44,0x04,0x80,0x80,0xB4,0x00,0x92,0x12,0x96,0x06,0xFE,0x0E, +0x4E,0x02,0x00,0xB0,0x44,0x04,0x80,0x02,0x84,0x24,0xAE,0x40,0x3C,0x0D,0xFC,0x68, +0x3C,0x2D,0xFC,0x6A,0x84,0x20,0xAC,0x40,0xC2,0x06,0x44,0x16,0x00,0x28,0xB4,0x21, +0x96,0x48,0xAE,0x50,0xC0,0x0B,0xA4,0x80,0x3C,0x13,0xF8,0xCB,0x8E,0x21,0xE0,0x41, +0xE8,0x05,0xA4,0x40,0x8C,0x21,0x96,0x49,0xAC,0x40,0x49,0xFF,0xC0,0x81,0xE6,0x03, +0xE9,0x05,0x84,0xC0,0x44,0x76,0x00,0x30,0xD5,0x19,0x44,0x06,0x00,0x00,0xB4,0x00, +0x92,0x08,0x96,0x06,0x5A,0x08,0x01,0xF7,0x44,0x06,0x00,0x30,0xB4,0x20,0x58,0x10, +0x80,0x01,0xB6,0x20,0xB4,0x20,0x96,0x46,0xC9,0xFE,0xD5,0xEC,0x84,0x01,0x8C,0xC1, +0x49,0xFF,0xC3,0xF8,0x5C,0xF3,0x08,0x01,0xE8,0x6E,0x44,0x34,0x80,0x00,0x44,0x24, +0x80,0x80,0xA6,0x1A,0x40,0x10,0x0C,0x09,0xB4,0x02,0x92,0x13,0x96,0x06,0xFE,0x0E, +0xC0,0x1A,0x44,0x04,0x80,0x02,0x84,0x28,0xAE,0x40,0x49,0xFF,0xC0,0x51,0xE6,0x03, +0xE8,0x5A,0x44,0x06,0x00,0x00,0xB4,0x00,0x92,0x08,0x96,0x06,0x5A,0x08,0x01,0x54, +0x44,0x06,0x00,0x30,0xB4,0x20,0x58,0x10,0x80,0x01,0xB6,0x20,0xB4,0x20,0x96,0x46, +0xC9,0xFE,0xD5,0x49,0xA6,0x1A,0x40,0x10,0x10,0x09,0xB4,0x02,0x92,0x14,0x96,0x06, +0xFE,0x0E,0xC0,0x31,0x44,0x04,0x80,0x02,0xFA,0x20,0xAE,0x40,0x3C,0x2D,0xFC,0x6A, +0x3C,0x0D,0xFC,0x68,0xC2,0x08,0xA4,0x40,0x88,0x22,0x44,0x26,0x00,0x38,0xB4,0x42, +0x96,0x90,0xAE,0x88,0xC0,0x0B,0xA4,0x80,0x3C,0x13,0xF8,0xCB,0x8E,0x21,0xE0,0x41, +0xE8,0x05,0xA4,0x40,0x8C,0x21,0x96,0x49,0xAC,0x40,0x49,0xFF,0xC0,0x19,0xE6,0x03, +0xE9,0x03,0x84,0xC0,0xD5,0x10,0x44,0x06,0x00,0x00,0xB4,0x00,0x92,0x08,0x96,0x06, +0x5A,0x08,0x01,0xF9,0xB4,0x07,0x58,0x00,0x00,0x01,0xB6,0x07,0xB4,0x07,0x96,0x06, +0xC8,0xFE,0xD5,0xF0,0x44,0x04,0x80,0x00,0xA6,0x02,0x40,0x10,0x14,0x09,0x44,0x04, +0x80,0x80,0xB4,0x00,0x92,0x15,0x96,0x06,0xFE,0x0E,0xC0,0x91,0x44,0x04,0x80,0x02, +0xFA,0x30,0xAE,0x40,0x3C,0x0D,0xFC,0x64,0xC0,0x04,0x3C,0x0D,0xFC,0x64,0xDD,0x20, +0x44,0x04,0x80,0x00,0xA6,0x02,0x40,0x10,0x0C,0x09,0x44,0x04,0x80,0x80,0xB4,0x00, +0x92,0x13,0x96,0x06,0xFE,0x0E,0xC8,0x0E,0x44,0x04,0x80,0x00,0xA6,0x02,0x40,0x10, +0x10,0x09,0x44,0x04,0x80,0x80,0xB4,0x00,0x92,0x14,0x96,0x06,0xFE,0x0E,0xC0,0x3B, +0xD5,0x1A,0x44,0x04,0x80,0x02,0x84,0x28,0xAE,0x40,0x49,0xFF,0xBF,0xD1,0xE6,0x03, +0xE8,0xEC,0x44,0x06,0x00,0x00,0xB4,0x00,0x92,0x08,0x96,0x06,0x5A,0x08,0x01,0xE6, +0x44,0x06,0x00,0x30,0xB4,0x20,0x58,0x10,0x80,0x01,0xB6,0x20,0xB4,0x20,0x96,0x46, +0xC9,0xFE,0xD5,0xDB,0x44,0x04,0x80,0x02,0xFA,0x20,0xAE,0x40,0x49,0xFF,0xBF,0xB8, +0xE6,0x03,0xE8,0x04,0x49,0xFF,0xFE,0x25,0xD5,0x16,0x3C,0x0D,0xFC,0x67,0xC0,0x0B, +0xA4,0x80,0x3C,0x13,0xF8,0xCA,0x8E,0x21,0xE0,0x41,0xE8,0x05,0xA4,0x40,0x8C,0x21, +0x96,0x49,0xAC,0x40,0xA4,0x40,0x3C,0x03,0xF8,0xCC,0xE2,0x20,0xE9,0x04,0x84,0x01, +0x3E,0x07,0xDE,0xD2,0x44,0x14,0x80,0x00,0xA6,0x0A,0x40,0x20,0x14,0x09,0x44,0x04, +0x80,0x80,0xB4,0x00,0x92,0x15,0x96,0x06,0xFE,0x16,0xC0,0x05,0x44,0x04,0x80,0x02, +0xFA,0x50,0xAE,0x80,0xA6,0x0A,0x40,0x10,0x18,0x09,0x44,0x04,0x80,0x80,0xB4,0x00, +0x92,0x16,0x96,0x06,0xFE,0x0E,0xC0,0x06,0x44,0x04,0x80,0x02,0x44,0x10,0x00,0x40, +0xAE,0x40,0xFC,0xA0,0x46,0x20,0x00,0x83,0x96,0x06,0x04,0x31,0x00,0x14,0x94,0x41, +0x84,0x1D,0xFE,0x1E,0xFE,0x0F,0x14,0x01,0x00,0x14,0xDD,0x9E,0x46,0x00,0x00,0x83, +0x04,0x00,0x00,0x16,0x92,0x10,0x54,0x00,0x03,0xFF,0xDD,0x9E,0xFC,0x00,0x46,0x60, +0x00,0x83,0x44,0x01,0x00,0x00,0xA0,0x71,0xFE,0x0F,0xA8,0x31,0x84,0x01,0x49,0xFF, +0xC2,0xF1,0xA0,0x71,0x44,0x0E,0xFF,0xFF,0xFE,0x0E,0xA8,0x31,0xFC,0x80,0x46,0x20, +0x00,0x80,0x84,0x3E,0x04,0x31,0x00,0x77,0x96,0x06,0xFE,0x5E,0xFE,0x0F,0x14,0x01, +0x00,0x77,0xDD,0x9E,0x46,0x20,0x00,0x80,0x96,0x06,0x40,0x10,0x60,0x08,0x04,0x31, +0x00,0x77,0x46,0x0F,0xEF,0xFF,0x50,0x00,0x0F,0xFF,0xFE,0x1E,0xFE,0x0F,0x14,0x01, +0x00,0x77,0xDD,0x9E,0x40,0x21,0x40,0x08,0x40,0x10,0xA0,0x08,0x88,0x22,0x88,0x20, +0x46,0x00,0x00,0x80,0x14,0x10,0x00,0x78,0xDD,0x9E,0xFC,0x41,0xF5,0x81,0x81,0x00, +0x81,0x22,0x80,0xE3,0x80,0xC4,0x46,0x50,0x00,0x80,0xC0,0x03,0x5A,0x08,0x01,0x18, +0x83,0x85,0xBA,0x77,0x46,0x1F,0xEF,0xFF,0x50,0x10,0x8F,0xFF,0xFE,0x56,0xB9,0xF7, +0x84,0x23,0x49,0xFF,0xB5,0xDC,0x38,0x14,0x99,0x01,0x84,0x02,0x49,0xFF,0xBC,0x3A, +0x38,0x03,0x98,0x00,0x84,0x22,0x49,0xFF,0xBD,0x38,0xFC,0xC1,0x81,0x41,0x83,0x85, +0xB9,0x77,0x46,0x00,0x10,0x00,0xFE,0x0F,0xB8,0xF7,0x84,0x23,0x84,0x01,0x49,0xFF, +0xB5,0xC6,0x50,0x25,0x7F,0xFF,0x80,0x06,0xF1,0x01,0x96,0x90,0x49,0xFF,0xFF,0xC4, +0xFC,0xC1,0x46,0x20,0x00,0x80,0x96,0x06,0x04,0x31,0x00,0x75,0x40,0x10,0x28,0x08, +0x44,0x0F,0xFB,0xFF,0xFE,0x1E,0xFE,0x0F,0x14,0x01,0x00,0x75,0xDD,0x9E,0x46,0x20, +0x00,0x91,0x96,0x06,0x04,0x31,0x00,0x14,0x94,0x41,0x84,0x1D,0xFE,0x1E,0xFE,0x0F, +0x14,0x01,0x00,0x14,0xDD,0x9E,0xDD,0x9E,0xDD,0x9E,0xDD,0x9E,0xC8,0x04,0x44,0x07, +0x20,0x14,0xD5,0x03,0x44,0x07,0x20,0x18,0xB4,0x00,0x40,0x00,0x30,0x08,0x92,0x0C, +0xDD,0x9E,0xFC,0x00,0x80,0xC1,0x49,0xFF,0xBE,0x77,0x84,0x40,0x50,0x00,0x09,0x48, +0x80,0x22,0xE2,0x46,0xE8,0x04,0xAA,0x41,0x8C,0x41,0xD5,0xFC,0xFC,0x80,0xFC,0x00, +0x44,0x04,0x00,0x9C,0xA6,0x00,0xE6,0x03,0xE9,0x24,0x44,0x64,0x0C,0x40,0x84,0x41, +0xA6,0x32,0x80,0x62,0x58,0x00,0x00,0x08,0xAE,0x32,0x44,0x14,0x04,0x40,0x44,0x04, +0x08,0x40,0x49,0xFF,0xB9,0x61,0xA6,0x32,0x84,0x41,0x54,0x00,0x00,0xF7,0xAE,0x32, +0x44,0x14,0x04,0x40,0x44,0x04,0x08,0x40,0x80,0x62,0x49,0xFF,0xB9,0x55,0x44,0x07, +0x20,0xC0,0x46,0x10,0x20,0x00,0xB4,0x40,0xFE,0x57,0xB6,0x20,0x80,0x20,0xD5,0x3C, +0x49,0x00,0x0D,0xBE,0xC8,0xDB,0x44,0x64,0x50,0x28,0xB4,0x06,0x92,0x10,0x96,0x06, +0x5A,0x00,0x01,0x05,0x44,0x64,0x50,0x28,0xD5,0x25,0x2E,0x07,0xF1,0x77,0xC8,0x0E, +0xB4,0x06,0x92,0x03,0x96,0x06,0xC8,0x0A,0xB4,0x06,0x92,0x01,0x96,0x06,0xC0,0x06, +0x3C,0x0D,0xFE,0x44,0x5A,0x08,0x01,0xEB,0xD5,0xEE,0x49,0xFF,0xF6,0x41,0x5A,0x08, +0x02,0xF9,0xD5,0xE9,0x2E,0x07,0xF1,0x77,0xC8,0x12,0xB4,0x06,0x92,0x03,0x96,0x06, +0xC8,0x0E,0xB4,0x06,0x92,0x01,0x96,0x06,0xC0,0x0A,0x3C,0x0D,0xFE,0x44,0x5A,0x00, +0x01,0xAE,0xB4,0x06,0x92,0x10,0x96,0x06,0xC0,0xEE,0xD5,0xA8,0x49,0xFF,0xF6,0x28, +0x5A,0x08,0x02,0xF5,0xD5,0xA3,0xB4,0x01,0x92,0x19,0x96,0x06,0xC8,0xFD,0x84,0x01, +0x49,0xFF,0xFC,0xA9,0xFC,0x80,0x44,0x04,0x00,0x50,0x44,0x1F,0x98,0x81,0xAC,0x40, +0x84,0x21,0xAC,0x41,0xDD,0x9E,0xFC,0x00,0x80,0xC0,0x44,0x04,0x80,0x90,0x54,0x13, +0x00,0x01,0xB4,0x80,0x84,0x5D,0x94,0xC9,0xFE,0xA6,0xFE,0x9F,0xB6,0x40,0x46,0x00, +0x00,0x81,0x84,0x5E,0x83,0x80,0xBB,0x15,0xFE,0x9E,0xFE,0x57,0xB9,0x95,0x84,0x00, +0x3E,0x07,0xF1,0x77,0x44,0x04,0x80,0x10,0x84,0x22,0xAE,0x40,0x49,0x00,0x23,0xAB, +0xE6,0x03,0xE9,0x2A,0x44,0x14,0x00,0x18,0xA6,0x0A,0x5A,0x68,0x01,0x13,0x54,0x00, +0x00,0xFB,0xAE,0x0A,0x44,0x14,0x50,0x10,0xB4,0x01,0x92,0x08,0x40,0x00,0x20,0x08, +0xB6,0x01,0x44,0x14,0x70,0x00,0x44,0x0E,0xFF,0xFF,0xB4,0x41,0xFE,0x16,0xD5,0x13, +0x58,0x00,0x00,0x04,0xAE,0x0A,0x44,0x14,0x50,0x10,0xB4,0x01,0x92,0x08,0x40,0x00, +0x20,0x08,0x58,0x00,0x00,0x98,0xB6,0x01,0x44,0x14,0x70,0x00,0x44,0x01,0x00,0x00, +0xB4,0x41,0xFE,0x17,0xB6,0x01,0xFC,0x80,0x46,0x00,0x00,0x91,0xA0,0x02,0x96,0x01, +0xDD,0x9E,0xDD,0x9E,0x46,0x30,0x00,0x91,0x58,0x20,0x00,0x01,0x14,0x21,0x80,0x11, +0x44,0x20,0xFF,0xFE,0xFE,0x16,0x14,0x01,0x80,0x11,0x46,0x00,0x20,0x00,0xFE,0x47, +0x44,0x07,0x20,0xC0,0xB6,0x20,0xDD,0x9E,0xFC,0x00,0x46,0x01,0xFF,0xF9,0x50,0x00, +0x05,0x27,0x46,0x61,0xFF,0xFF,0x49,0xFF,0xBF,0xF5,0x49,0xFF,0xBF,0xDF,0x50,0x03, +0x03,0xCC,0x49,0xFF,0xBF,0xEF,0x49,0xFF,0xBF,0xD9,0x80,0x06,0x44,0x67,0x30,0x04, +0x49,0xFF,0xBF,0xE8,0x49,0xFF,0xBF,0xD2,0x44,0x00,0x03,0xE8,0x49,0xFF,0xBF,0xDB, +0xB4,0x26,0x84,0x1E,0xFE,0x0E,0xB6,0x06,0x44,0x00,0x03,0xE8,0x49,0xFF,0xBF,0xD3, +0xB4,0x06,0x58,0x00,0x00,0x01,0xB6,0x06,0x44,0x00,0x03,0xE8,0x49,0xFF,0xBF,0xCB, +0x44,0x04,0x80,0x0A,0x84,0x24,0xAE,0x40,0x84,0x22,0xAE,0x40,0x84,0x21,0xAE,0x40, +0xFC,0x80,0xFC,0x00,0x44,0x27,0x30,0x10,0xB4,0x22,0x92,0x21,0x96,0x46,0x5A,0x10, +0x01,0xFD,0x84,0x20,0x3E,0x17,0xF1,0xB1,0x44,0x17,0x30,0x00,0x46,0x60,0x01,0x00, +0xB6,0x01,0x2E,0x07,0xF1,0xB1,0xC0,0x08,0x2E,0x07,0xF1,0xAE,0xC0,0x0E,0x84,0x00, +0x3E,0x07,0xF1,0xAE,0xD5,0x0A,0x2E,0x07,0xF1,0xAE,0xC8,0xF7,0x84,0x01,0x8E,0xC1, +0x49,0xFF,0xBF,0xA1,0xCE,0xEF,0xD5,0xF1,0x84,0x00,0x3E,0x07,0xF1,0xB1,0x44,0x07, +0x30,0x14,0xB4,0x00,0x92,0x10,0x96,0x00,0xFC,0x80,0xFC,0x20,0x46,0x01,0xFF,0xFF, +0x50,0x00,0x0F,0x05,0x49,0xFF,0xBF,0x96,0x46,0x02,0xF0,0xC0,0x50,0x00,0x01,0x00, +0x49,0xFF,0xFF,0xC9,0x80,0xC0,0x46,0x02,0xF0,0xD0,0x50,0x00,0x01,0x00,0x49,0xFF, +0xFF,0xC2,0x97,0xC0,0x46,0x01,0xFC,0x00,0x97,0xB0,0x50,0x00,0x01,0x00,0x88,0x06, +0x49,0xFF,0xBF,0x80,0x46,0x01,0xFC,0x10,0x50,0x00,0x01,0x00,0x88,0x07,0x49,0xFF, +0xBF,0x79,0x46,0x01,0xFC,0x20,0x50,0x00,0x01,0x00,0x88,0x06,0x49,0xFF,0xBF,0x72, +0x46,0x01,0xFC,0x30,0x50,0x00,0x01,0x00,0x88,0x07,0x49,0xFF,0xBF,0x6B,0x46,0x01, +0xFC,0x40,0x50,0x00,0x01,0x00,0x88,0x06,0x49,0xFF,0xBF,0x64,0x46,0x01,0xFC,0x50, +0x50,0x00,0x01,0x00,0x88,0x07,0x49,0xFF,0xBF,0x5D,0x46,0x01,0xFC,0x60,0x50,0x00, +0x01,0x00,0x88,0x06,0x49,0xFF,0xBF,0x56,0x46,0x01,0xFC,0x70,0x50,0x00,0x01,0x00, +0x88,0x07,0x49,0xFF,0xBF,0x4F,0xFC,0xA0,0x44,0x04,0x80,0x0A,0x84,0x24,0xAE,0x40, +0x44,0x17,0x21,0x04,0x46,0x38,0x00,0x00,0xB4,0x01,0x92,0x14,0x40,0x00,0x50,0x08, +0xB6,0x01,0x44,0x07,0x21,0x08,0xB4,0x20,0x92,0x28,0x40,0x10,0xA0,0x08,0xB6,0x20, +0xB4,0x40,0x46,0x1F,0xCF,0xFF,0x50,0x10,0x8F,0xFF,0xFE,0x8E,0xB6,0x40,0xB4,0x40, +0xFE,0x9F,0xB6,0x40,0x44,0x27,0x21,0x10,0xB4,0x02,0x94,0x01,0x92,0x01,0xB6,0x02, +0x44,0x27,0x21,0x14,0xB4,0x02,0x92,0x14,0x40,0x00,0x50,0x08,0xB6,0x02,0x44,0x07, +0x21,0x18,0xB4,0x40,0x92,0x48,0x40,0x21,0x20,0x08,0xB6,0x40,0xB4,0x40,0xFE,0x56, +0xB6,0x20,0xB4,0x20,0xFE,0x5F,0xB6,0x20,0x44,0x17,0x21,0x1C,0xB4,0x01,0x92,0x11, +0x40,0x00,0x44,0x08,0xB6,0x01,0xB4,0x41,0x46,0x0F,0x0F,0xFF,0x50,0x00,0x0F,0xFF, +0xFE,0x16,0xB6,0x01,0x44,0x17,0x21,0x00,0x46,0x0F,0xFF,0x0F,0xB4,0x41,0x50,0x00, +0x0F,0xFF,0xFE,0x16,0xB6,0x01,0x44,0x04,0x80,0x07,0x84,0x22,0xAE,0x40,0x44,0x04, +0x10,0x00,0x44,0x24,0x10,0x10,0xAE,0x42,0x84,0x21,0xAE,0x40,0x84,0x20,0xAE,0x53, +0xA6,0x43,0x54,0x10,0x80,0xFE,0xAE,0x43,0x44,0x04,0x10,0x0C,0x84,0x20,0xB6,0x20, +0x84,0x1F,0xAE,0x10,0xDD,0x9E,0x3C,0x0F,0xFC,0x6D,0xDD,0x9E,0xC8,0x04,0x44,0x05, +0x00,0x04,0xD5,0x03,0x44,0x05,0x00,0x14,0xA4,0x00,0x96,0x01,0xDD,0x9E,0x44,0x04, +0x80,0x00,0xA6,0x03,0x96,0x06,0xC0,0x0D,0x44,0x04,0x80,0x03,0x84,0x21,0xAE,0x40, +0x3C,0x0D,0xFC,0x6D,0xC0,0x06,0xFC,0x00,0x3C,0x0D,0xFC,0x6D,0xDD,0x20,0xFC,0x80, +0xDD,0x9E,0x46,0x20,0x00,0x81,0x84,0x3E,0x04,0x31,0x00,0x14,0x96,0x06,0xFE,0x5E, +0xFE,0x0F,0x14,0x01,0x00,0x14,0xDD,0x9E,0x44,0x14,0x70,0x08,0x5A,0x08,0x01,0x09, +0xB4,0x01,0x92,0x10,0x40,0x00,0x40,0x08,0x58,0x00,0x78,0x23,0xD5,0x05,0xB4,0x01, +0x92,0x10,0x40,0x00,0x40,0x08,0xB6,0x01,0xDD,0x9E,0x44,0x14,0x00,0x0C,0xAE,0x09, +0xDD,0x9E,0x44,0x25,0x10,0x00,0x96,0x17,0xB4,0x62,0x40,0x10,0x20,0x08,0x44,0x0F, +0xF8,0xFF,0xFE,0x1E,0xFE,0x0F,0xB6,0x02,0xDD,0x9E,0x44,0x24,0x80,0x84,0x96,0x06, +0xB4,0x62,0x40,0x10,0x20,0x08,0x44,0x0F,0xFE,0xFF,0xFE,0x1E,0xFE,0x0F,0xB6,0x02, +0xDD,0x9E,0x44,0x25,0x10,0x00,0x84,0x3E,0xB4,0x62,0x96,0x06,0xFE,0x5E,0xFE,0x0F, +0xB6,0x02,0xDD,0x9E,0x84,0x00,0x3E,0x07,0xF1,0xBA,0xDD,0x9E,0xFC,0x00,0x49,0x00, +0x0B,0x97,0x5A,0x00,0x01,0x03,0x84,0x03,0x3E,0x07,0xDE,0xD3,0x2E,0x07,0xDE,0xD3, +0x49,0xFF,0xBD,0x79,0x84,0x04,0xFC,0x80,0xFC,0x00,0x3C,0xF7,0xF6,0x56,0x2E,0x07, +0xDE,0xD3,0x5E,0xF7,0x80,0xC8,0xE8,0x0C,0x3C,0xF7,0xF6,0x52,0x5E,0xF7,0xFF,0x39, +0xE9,0x07,0xE4,0x02,0xE8,0x03,0x8C,0x01,0xD5,0x06,0x84,0x03,0xD5,0x07,0xE4,0x02, +0xE9,0x04,0x8E,0x01,0x96,0x00,0xD5,0x02,0x84,0x01,0x3E,0x07,0xDE,0xD3,0x2E,0x07, +0xDE,0xD3,0x49,0xFF,0xBD,0x58,0x2E,0x07,0xDE,0xD3,0x5A,0x08,0x03,0x04,0x84,0x02, +0xFC,0x80,0x84,0x04,0xFC,0x80,0x2E,0x17,0xF1,0xBA,0x8C,0x21,0x96,0x48,0xE2,0x20, +0x3E,0x17,0xF1,0xBA,0x56,0x07,0x80,0x01,0xDD,0x9E,0xFC,0x42,0x81,0x40,0xC1,0x05, +0x84,0xE8,0x5A,0x18,0x01,0x07,0xD5,0x03,0x44,0x70,0x00,0x64,0x84,0xC1,0xD5,0x03, +0x84,0xE1,0x84,0xC0,0x49,0x00,0x1A,0xA0,0x81,0x20,0x4E,0xA3,0x00,0x20,0x49,0x00, +0x0B,0x47,0xC8,0x0C,0x49,0x00,0x1A,0x8E,0xC8,0x06,0x2E,0x17,0xF9,0x14,0xC1,0x07, +0x84,0x01,0xD5,0x05,0x49,0x00,0x19,0x05,0xD5,0x04,0x80,0x09,0x49,0xFF,0xBB,0xBC, +0xF0,0x81,0x49,0x00,0x18,0xFB,0xF0,0x82,0xF1,0x01,0x44,0x00,0x02,0x40,0xF2,0x02, +0x80,0x66,0x80,0x87,0x49,0x00,0x03,0xA8,0xFC,0xC2,0x5A,0xA8,0x01,0x1E,0x49,0x00, +0x18,0xF3,0xF0,0x82,0x4E,0x93,0x00,0x05,0x49,0x00,0x1A,0xF2,0xD5,0x03,0x49,0x00, +0x1A,0xEC,0xF0,0x81,0x80,0x09,0x49,0xFF,0xFD,0x1B,0xF0,0x83,0x44,0x10,0x00,0x42, +0xF0,0x02,0xF2,0x01,0xF3,0x03,0xFD,0x23,0x49,0x00,0x03,0xA1,0xF0,0x01,0x44,0x10, +0x00,0x42,0x49,0xFF,0xB7,0x76,0xFC,0xC2,0xFC,0x20,0x51,0xFF,0xFB,0x80,0x44,0x10, +0x00,0xC0,0x84,0x40,0x80,0xE0,0x50,0x0F,0x81,0x80,0x49,0x00,0x03,0x01,0x80,0x1F, +0x44,0x10,0x00,0xC0,0x49,0x00,0x03,0x0B,0x84,0xC0,0x49,0x00,0x21,0x4C,0xE6,0x03, +0x50,0x0F,0x81,0x80,0xE8,0x10,0x38,0x00,0x1A,0x02,0x90,0x08,0x96,0x43,0x38,0x0F, +0x99,0x11,0x50,0x00,0x7F,0xC0,0x94,0x05,0x9A,0x08,0x40,0x00,0x20,0x08,0x38,0x03, +0x9A,0x0A,0xD5,0x0C,0x38,0x10,0x1A,0x02,0x38,0x0F,0x99,0x11,0x90,0x28,0x96,0x4B, +0x8A,0x20,0x40,0x10,0xA0,0x08,0x38,0x13,0x9A,0x0A,0x8C,0xC1,0x5A,0x68,0xC0,0xDF, +0x80,0x07,0x80,0x26,0x84,0x40,0x44,0x30,0x02,0x52,0x49,0x00,0x03,0x39,0x51,0xFF, +0x84,0x80,0xFC,0xA0,0xFC,0x21,0x80,0xC0,0x49,0x00,0x18,0xBB,0x84,0x00,0x49,0x00, +0x1B,0x52,0x84,0x01,0x49,0x00,0x18,0x99,0x84,0x01,0x49,0x00,0x17,0xE1,0x84,0x01, +0x49,0x00,0x05,0x1F,0x49,0x00,0x1A,0x10,0xB6,0x1F,0x49,0x00,0x1A,0x10,0xF0,0x81, +0xF2,0x01,0x84,0x01,0xB4,0x3F,0x49,0x00,0x1A,0x86,0x84,0x02,0x84,0x21,0x49,0x00, +0x06,0x05,0x84,0x01,0x49,0x00,0x1B,0x37,0x44,0x74,0x50,0x28,0x2E,0x07,0xF1,0x86, +0xC8,0x16,0x2E,0x07,0xF1,0x77,0xC8,0x0F,0xB4,0x27,0x92,0x23,0x96,0x46,0x5A,0x10, +0x01,0x0B,0xB4,0x27,0x92,0x21,0x96,0x46,0xC1,0x06,0x3C,0x0D,0xFE,0x44,0x5A,0x08, +0x01,0xEF,0xD5,0x05,0x49,0xFF,0xF3,0x34,0x5A,0x08,0x02,0xF9,0x49,0xFF,0xF9,0xDD, +0x84,0x00,0x3E,0x07,0xF1,0x86,0x49,0x00,0x18,0x72,0x49,0xFF,0xF9,0xB7,0x49,0xFF, +0xFC,0x87,0x50,0x13,0x04,0x80,0x80,0xA6,0x9A,0xAE,0x38,0x21,0x00,0x11,0x1A,0x22, +0x80,0x01,0xD9,0xFB,0xFC,0xA1,0xFC,0x21,0x80,0xC0,0x2E,0x0F,0xF1,0xB9,0xC8,0x29, +0x2E,0x1F,0xF1,0xB8,0xC9,0x26,0xCE,0x52,0x49,0xFF,0xF9,0xA0,0x49,0xFF,0xFC,0x70, +0x80,0xE0,0x49,0x00,0x19,0xC1,0xF0,0x81,0x49,0x00,0x0A,0x6A,0xC8,0x0C,0x49,0x00, +0x19,0xB1,0xC8,0x06,0x2E,0x17,0xF9,0x14,0xC1,0x07,0x84,0x01,0xD5,0x05,0x49,0x00, +0x18,0x28,0xD5,0x04,0xF0,0x01,0x49,0xFF,0xBA,0xDF,0x84,0x20,0x38,0x23,0x85,0x11, +0x40,0x21,0x20,0x08,0x38,0x20,0x06,0x0A,0x8C,0x21,0x5A,0x1A,0x40,0xF9,0xD5,0x2E, +0x2E,0x17,0xEC,0xA0,0xE0,0x20,0xE9,0x2A,0x2E,0xFF,0xF1,0xB8,0x2E,0x17,0xEC,0x9F, +0xE0,0x2F,0xE9,0x24,0xCE,0x23,0x49,0x00,0x18,0x06,0xF0,0x81,0x49,0x00,0x20,0x93, +0xE6,0x03,0xE9,0x04,0xF0,0x01,0x49,0xFF,0xC0,0x9E,0x3C,0x14,0x0A,0xD3,0xF5,0x01, +0x84,0x03,0xFE,0x44,0x50,0x22,0x84,0x80,0xD5,0x33,0x8C,0x01,0x5A,0x00,0x12,0x2E, +0x38,0xF2,0x81,0x11,0xE0,0x2F,0xE8,0xFA,0x84,0x00,0x3E,0x07,0xF1,0xB8,0x49,0x00, +0x17,0xD9,0x84,0x00,0x84,0x21,0x49,0xFF,0xFE,0xCA,0x2E,0x1F,0xF1,0xB9,0x2E,0x07, +0xEC,0xA0,0xE0,0x01,0xE9,0x07,0x2E,0x0F,0xF1,0xB8,0x2E,0x27,0xEC,0x9F,0xE0,0x40, +0xE8,0x0A,0x5A,0x68,0x01,0x11,0x84,0x00,0x3E,0x07,0xF1,0xB9,0x3E,0x07,0xF1,0xB8, +0x80,0x06,0xD5,0x10,0x5A,0x68,0x01,0x08,0x8C,0x21,0x8C,0x01,0x3E,0x17,0xF1,0xB9, +0x3E,0x07,0xF1,0xB8,0x84,0x00,0xD5,0x06,0x50,0x52,0x80,0x24,0xD2,0xD9,0x84,0x00, +0xD5,0xD0,0xFC,0xA1,0x4E,0x05,0x00,0x19,0x8E,0x01,0x40,0x10,0x04,0x0A,0xFE,0x0F, +0x40,0x10,0x08,0x0A,0xFE,0x0F,0x40,0x10,0x10,0x0A,0xFE,0x0F,0x40,0x10,0x20,0x0A, +0xFE,0x0F,0x40,0x10,0x40,0x0A,0xFE,0x47,0x8C,0x21,0x84,0x00,0x90,0x21,0xC1,0x03, +0x8C,0x01,0xD5,0xFD,0xDD,0x9E,0x84,0x00,0xDD,0x9E,0xFC,0x4D,0x44,0x00,0xF1,0x88, +0x50,0xFF,0x80,0x18,0x80,0xC0,0x80,0x2F,0x3A,0x23,0x14,0x04,0x3A,0x20,0x94,0x24, +0x81,0x46,0x83,0x81,0x3A,0x25,0x14,0x04,0x44,0x90,0xF1,0xB0,0x3A,0x2E,0x14,0x24, +0x80,0x89,0x3A,0x25,0x0C,0x00,0x80,0xBF,0x3A,0x2E,0x0C,0x20,0x3A,0x22,0x0C,0x04, +0x3A,0x22,0x8C,0x24,0x45,0xE2,0x16,0x30,0xA5,0xE0,0x3A,0x27,0x94,0x04,0x81,0xFE, +0x81,0x1F,0x3A,0x27,0x94,0x24,0x3A,0x20,0x94,0x04,0x80,0x2F,0x3A,0x20,0x94,0x24, +0x3A,0x2E,0x0C,0x00,0x3A,0x20,0x8C,0x20,0x44,0x12,0x16,0x24,0x3A,0x24,0x0C,0x04, +0x3A,0x20,0x8C,0x24,0xAD,0xC8,0xB0,0x50,0x3A,0x20,0x14,0x04,0x80,0x01,0x3A,0x20, +0x14,0x24,0x81,0x00,0x3A,0x23,0x14,0x04,0x3A,0x24,0x14,0x24,0xB1,0x83,0x3A,0x25, +0x0C,0x00,0x80,0x86,0x3A,0x24,0x0C,0x20,0x3A,0x24,0x8C,0x04,0x44,0x92,0x03,0x48, +0x3A,0x22,0x0C,0x24,0x3A,0x20,0x94,0x04,0x80,0x29,0x3A,0x20,0x94,0x24,0x3A,0x20, +0x14,0x04,0x80,0x01,0x3A,0x20,0x14,0x24,0x3A,0x24,0x0C,0x00,0x3A,0x20,0x0C,0x20, +0x44,0x02,0x03,0x3C,0x3A,0x23,0x0C,0x04,0x3A,0x20,0x0C,0x24,0xAD,0xC0,0xFC,0xCD, +0xFC,0x48,0x83,0x81,0x50,0xAF,0x80,0x14,0x44,0x10,0xF1,0xBC,0x80,0xC0,0x80,0x0A, +0x81,0x22,0x3A,0x20,0x8C,0x04,0x3A,0x20,0x0C,0x24,0xA4,0x48,0xFA,0x40,0xAC,0x40, +0x50,0x8F,0x80,0x30,0x84,0x20,0xB0,0x08,0x49,0x00,0x27,0x8A,0x80,0x08,0x84,0x20, +0xFA,0x40,0x49,0x00,0x27,0x85,0x5A,0x98,0x01,0x03,0x87,0x80,0xC6,0x04,0x44,0x12, +0x16,0xD4,0xD5,0x03,0x44,0x12,0x16,0xE0,0x58,0x04,0x80,0x01,0x8C,0x01,0x84,0xE0, +0xB6,0x1F,0x8D,0x21,0x84,0x83,0x84,0x61,0x38,0x05,0x1C,0x00,0xF3,0x83,0xF4,0x82, +0x38,0x60,0x80,0x00,0xB4,0x1F,0x8C,0xC1,0xFF,0x84,0x97,0xB1,0x40,0x63,0x24,0xD6, +0x80,0x06,0xF1,0x81,0x49,0xFF,0xFF,0x48,0xF4,0x02,0x97,0x78,0x40,0x52,0x90,0xB7, +0xF3,0x03,0x38,0x24,0x16,0x02,0x8C,0x08,0x41,0xE1,0x28,0x08,0x40,0x20,0x70,0x01, +0x40,0x01,0x80,0x0C,0x40,0x60,0x18,0xD7,0xB0,0x08,0x94,0x94,0x38,0x00,0x16,0x02, +0x88,0x5E,0x40,0x00,0x28,0x08,0x88,0xC0,0xB0,0x08,0x8C,0xE1,0x38,0x24,0x16,0x0A, +0x38,0x60,0x16,0x0A,0xF1,0x01,0x5A,0x78,0x0A,0xD1,0x80,0x28,0x49,0xFF,0xB2,0x57, +0xFC,0xC8,0x80,0x80,0x84,0x40,0x9A,0xE0,0x96,0xD8,0xE2,0x61,0xE8,0x08,0x08,0x32, +0x00,0x01,0xE2,0x62,0x40,0x31,0x3C,0x1B,0x80,0x43,0xD5,0xF6,0x9C,0x11,0x96,0x00, +0xDD,0x9E,0xFC,0x40,0x51,0xFF,0xFB,0xE0,0x44,0x20,0x04,0x00,0x81,0x40,0x81,0x21, +0xB0,0x08,0x84,0x20,0x49,0x00,0x27,0x24,0xB1,0x81,0x44,0x10,0xF1,0xBC,0x80,0x06, +0x3A,0x20,0x8C,0x04,0x3A,0x20,0x0C,0x24,0xA4,0x48,0xB1,0xC4,0xAC,0x40,0xFA,0x40, +0x80,0x07,0x84,0x20,0x49,0x00,0x27,0x14,0x4E,0xA3,0x00,0x3E,0x84,0x2A,0x44,0x02, +0x16,0xE0,0x49,0xFF,0xFF,0xD0,0x80,0x20,0x80,0x4A,0x84,0xA3,0x44,0xA2,0x16,0x30, +0x45,0xE2,0x16,0x24,0x96,0x10,0x40,0x00,0x14,0x17,0x40,0x30,0x20,0x08,0xB1,0x08, +0x41,0xC2,0x0C,0x00,0x84,0x60,0x54,0x81,0x80,0xFF,0xE3,0x01,0xE8,0x12,0x38,0x83, +0x08,0x00,0x38,0x85,0x22,0x02,0x38,0x84,0x0D,0x01,0x54,0xF4,0x03,0xFF,0x38,0x8E, +0x0E,0x02,0x40,0x84,0x28,0x08,0x89,0x0F,0x38,0x8E,0x0E,0x0A,0x8C,0x61,0xD5,0xEC, +0x38,0x33,0x08,0x00,0x8C,0x41,0x38,0x3F,0x0C,0x00,0x8A,0x69,0x54,0x81,0x83,0xFF, +0x38,0x33,0x82,0x02,0x40,0x31,0xA8,0x08,0x88,0x68,0x38,0x33,0x82,0x0A,0x5A,0x28, +0x0A,0xD3,0xD5,0x3C,0x84,0x2A,0x44,0x02,0x16,0xD4,0x49,0xFF,0xFF,0x94,0x80,0x20, +0x84,0x40,0x84,0xA3,0x44,0xA2,0x03,0x48,0x45,0xE2,0x03,0x3C,0x97,0x10,0x40,0x42, +0x14,0x97,0x40,0x32,0x20,0x08,0xB0,0x08,0x41,0xC0,0x0C,0x00,0x84,0x60,0x54,0x81, +0x80,0xFF,0xE3,0x01,0xE8,0x12,0x38,0x83,0x08,0x00,0x38,0x85,0x22,0x02,0x38,0x84, +0x0D,0x01,0x54,0xF4,0x03,0xFF,0x38,0x8E,0x0E,0x02,0x40,0x84,0x28,0x08,0x89,0x0F, +0x38,0x8E,0x0E,0x0A,0x8C,0x61,0xD5,0xEC,0x38,0x33,0x08,0x00,0x8C,0x41,0x38,0x3F, +0x0C,0x00,0x8A,0x69,0x54,0x81,0x83,0xFF,0x38,0x33,0x92,0x02,0x40,0x31,0xA8,0x08, +0x88,0x68,0x38,0x33,0x92,0x0A,0x5A,0x28,0x0A,0xD3,0xB0,0x08,0x49,0xFF,0xB1,0xFE, +0x80,0x07,0x49,0xFF,0xB2,0x34,0x51,0xFF,0x84,0x20,0xFC,0xC0,0xFC,0x00,0x49,0x00, +0x16,0x32,0x50,0x30,0x04,0x80,0x50,0x50,0x00,0x22,0x50,0x20,0x00,0x10,0x80,0x20, +0x22,0x40,0x80,0x00,0x22,0x62,0x80,0x00,0x1A,0x60,0x80,0x01,0x1A,0x42,0xFF,0xFF, +0xDA,0xF8,0x50,0x00,0x00,0x24,0x4C,0x01,0xFF,0xF0,0xFC,0x80,0xFC,0x40,0x51,0xFF, +0xFD,0xB8,0xF2,0x81,0x81,0x20,0x44,0x20,0x02,0x40,0x81,0x41,0xB0,0x02,0x44,0x10, +0xF1,0xD4,0x80,0xE3,0x80,0xC4,0x49,0x00,0x26,0x45,0xF0,0x01,0x49,0xFF,0xFA,0x48, +0x81,0x00,0x49,0x00,0x08,0x45,0xC8,0x0C,0x49,0x00,0x17,0x8C,0xC8,0x06,0x2E,0x17, +0xF9,0x14,0xC1,0x07,0x84,0x01,0xD5,0x05,0x49,0x00,0x16,0x03,0xD5,0x04,0x84,0x00, +0x49,0xFF,0xB8,0xBA,0x40,0x34,0x1C,0x00,0x95,0x32,0x84,0x40,0xFB,0x02,0x84,0xC0, +0x99,0x56,0x97,0x69,0x4E,0x92,0x00,0x13,0xB0,0x42,0x81,0xE6,0x38,0x10,0x94,0x00, +0x42,0xF0,0xA0,0x73,0x40,0x17,0x88,0x08,0x88,0x24,0x38,0x70,0x04,0x02,0x38,0x11, +0xBD,0x01,0x90,0xE8,0x8A,0xE1,0x38,0x74,0x95,0x09,0x4E,0xA2,0x00,0x06,0x38,0x11, +0x95,0x11,0x38,0x15,0x15,0x09,0x8C,0xC1,0x5A,0x68,0x12,0xE4,0x8C,0x52,0x96,0x91, +0x5A,0x2A,0x40,0xDF,0x49,0xFF,0xFF,0x9C,0x51,0xFF,0x82,0x48,0xFC,0xC0,0xFC,0x00, +0x80,0x43,0x84,0x60,0x80,0x83,0x49,0xFF,0xFF,0xAB,0xFC,0x80,0xFC,0x20,0xFD,0x30, +0x80,0x02,0x49,0xFF,0xB8,0x81,0x95,0xFA,0x80,0xA6,0x88,0xE6,0x50,0x00,0x09,0x48, +0xD7,0x04,0xA2,0x41,0xAA,0x69,0xD5,0xFD,0xFC,0xA0,0xFC,0x20,0xFD,0x30,0x84,0x00, +0x49,0xFF,0xF9,0xEE,0x95,0xF9,0x80,0xA6,0x88,0xE6,0x50,0x00,0x04,0xA4,0xD7,0x06, +0x2A,0x10,0x00,0x01,0x1A,0x12,0x80,0x01,0xD5,0xFB,0xFC,0xA0,0xFC,0x20,0x80,0xE0, +0x80,0x02,0x80,0xC1,0x49,0xFF,0xB8,0x60,0x84,0x40,0x96,0x51,0xE2,0x26,0xE8,0x07, +0x38,0x10,0x0A,0x02,0x38,0x13,0x8A,0x0A,0x8C,0x41,0xD5,0xF8,0xFC,0xA0,0xFC,0x40, +0x80,0xC0,0x80,0x02,0x81,0x23,0x80,0xE1,0x49,0xFF,0xF9,0xCA,0x81,0x40,0x84,0x6C, +0x5A,0x98,0x02,0x07,0x49,0x00,0x17,0x12,0x84,0x63,0xC0,0x02,0x80,0x69,0x80,0x0A, +0x40,0x91,0x84,0x08,0x84,0x20,0x40,0xA1,0x80,0x13,0x96,0x89,0xE2,0x47,0xE8,0x1E, +0x84,0xA0,0x80,0x85,0x40,0x82,0x80,0x13,0xE3,0x0A,0xE8,0x06,0x38,0x80,0x15,0x11, +0x8C,0xA1,0x88,0x88,0xD5,0xF8,0x5C,0xF1,0x00,0x40,0x40,0x42,0x0C,0x96,0xE8,0x09, +0x54,0x51,0x00,0x01,0x95,0x6D,0x92,0x41,0x88,0x45,0x38,0x43,0x09,0x09,0xD5,0x03, +0x38,0x43,0x05,0x09,0x8C,0x21,0x88,0x09,0xD5,0xE1,0xFC,0xC0,0xFC,0x40,0x81,0x20, +0x95,0x9A,0x80,0x02,0x80,0xE1,0x97,0xB1,0x49,0xFF,0xB8,0x16,0x88,0xC0,0x84,0x40, +0x96,0x51,0xE2,0x27,0xE8,0x07,0x38,0x04,0x8A,0x02,0x38,0x03,0x0A,0x0A,0x8C,0x41, +0xD5,0xF8,0xFC,0xC0,0xFC,0x00,0x94,0x02,0x88,0x01,0x4C,0x10,0x00,0x0F,0xB4,0xC1, +0x2A,0x51,0x00,0x01,0x40,0x52,0xA0,0x08,0x8A,0xA6,0xFF,0xA4,0x42,0x61,0x94,0x73, +0x40,0x63,0x10,0xD6,0xAB,0x89,0xD5,0xF2,0xFC,0x80,0xFC,0x40,0x84,0xE0,0x97,0xB9, +0xE2,0xC1,0xE8,0x12,0x38,0x91,0x9E,0x02,0xB4,0xC0,0x40,0x94,0xA0,0x08,0x8B,0x26, +0xFF,0xAC,0x42,0x62,0x24,0x73,0x40,0x63,0x14,0xD6,0xAB,0x81,0x90,0xC8,0x38,0x61, +0x1D,0x09,0x8C,0xE1,0xD5,0xED,0xFC,0xC0,0x2E,0x07,0xF2,0xE3,0xDD,0x9E,0x3E,0x07, +0xF2,0xE3,0xDD,0x9E,0xFC,0x01,0x84,0x1F,0xB6,0x1F,0xF0,0x81,0x80,0x1F,0x49,0xFF, +0xB3,0xAF,0x84,0x01,0x49,0xFF,0xB3,0xA1,0x84,0x01,0x49,0xFF,0xB4,0x17,0x84,0x22, +0x84,0x01,0x80,0x61,0x80,0xA0,0x44,0x40,0x00,0x3F,0x84,0x44,0x49,0xFF,0xB3,0x1A, +0x84,0x01,0x49,0xFF,0xF8,0xA1,0x84,0x01,0x80,0x20,0x80,0x40,0x49,0xFF,0xB3,0x57, +0x84,0x0A,0x49,0xFF,0xB3,0x7F,0x46,0x00,0x42,0x10,0x50,0x00,0x08,0x20,0x80,0x20, +0x84,0x40,0x49,0xFF,0xB3,0x6A,0x49,0xFF,0xB5,0xCD,0x84,0x01,0x49,0xFF,0xB5,0xBC, +0x84,0x00,0x49,0xFF,0xF9,0x08,0x44,0x04,0x55,0x08,0x44,0x1F,0xFF,0x7F,0xB4,0x40, +0xFE,0x56,0xB6,0x20,0xB4,0x20,0x58,0x10,0x80,0x10,0xB6,0x20,0x84,0x21,0x49,0xFF, +0xB2,0x78,0x84,0x00,0x3E,0x07,0xF2,0xE3,0xFC,0x81,0xFC,0x54,0x44,0x00,0xF4,0x14, +0x50,0xFF,0x80,0x10,0x80,0x20,0x80,0x8F,0x3A,0x20,0x8C,0x04,0x50,0x8F,0x80,0x1C, +0x3A,0x22,0x0C,0x24,0x3A,0x20,0x0C,0x04,0x80,0x08,0xA4,0x48,0xB1,0x8A,0x3A,0x20, +0x0C,0x24,0x44,0x00,0xF4,0x20,0xB6,0x3F,0x80,0x26,0x3A,0x20,0x14,0x04,0x3A,0x20, +0x94,0x24,0xB4,0x00,0xB0,0x54,0xF0,0x83,0x44,0x00,0xF4,0x34,0x80,0xE1,0x3A,0x20, +0x14,0x04,0x3A,0x23,0x94,0x24,0xF7,0x81,0x83,0xC7,0x3A,0x20,0x14,0x04,0x3A,0x2F, +0x14,0x24,0x3A,0x20,0x0C,0x00,0x50,0xAF,0x80,0x3C,0x44,0x00,0xF4,0x5C,0x80,0xEA, +0x3A,0x2F,0x0C,0x20,0x3A,0x20,0x14,0x04,0x3A,0x23,0x94,0x24,0xB4,0x00,0x50,0x9F, +0x80,0x78,0xF0,0x82,0x44,0x00,0xF4,0x70,0x80,0xE9,0x3A,0x20,0x14,0x04,0x3A,0x23, +0x94,0x24,0x83,0x87,0x3A,0x20,0x14,0x04,0x3A,0x2E,0x14,0x24,0x3A,0x20,0x0C,0x00, +0x3A,0x2E,0x0C,0x20,0x44,0x02,0x16,0x84,0x3A,0x25,0x14,0x04,0x3A,0x20,0x14,0x24, +0x80,0x40,0xF0,0x02,0xB6,0x02,0x44,0x02,0x16,0x5C,0x3A,0x24,0x94,0x04,0x3A,0x20, +0x14,0x24,0x3A,0x23,0x94,0x04,0x81,0x20,0x3A,0x20,0x14,0x24,0x3A,0x2E,0x0C,0x00, +0x3A,0x20,0x0C,0x20,0x44,0x02,0x16,0xE0,0x3A,0x27,0x8C,0x04,0x3A,0x20,0x0C,0x24, +0x80,0x40,0x02,0x0F,0x80,0x00,0xAC,0x10,0x44,0x02,0x16,0xD4,0x3A,0x24,0x0C,0x04, +0x3A,0x20,0x0C,0x24,0x80,0x40,0x02,0x0F,0x80,0x00,0xAC,0x10,0x44,0x02,0x16,0xC0, +0x3A,0x23,0x14,0x04,0x3A,0x20,0x14,0x24,0x80,0x40,0xF0,0x03,0xB6,0x02,0x44,0x02, +0x16,0x98,0x3A,0x20,0x94,0x04,0x3A,0x20,0x14,0x24,0x80,0x20,0xF0,0x01,0x3A,0x20, +0x14,0x04,0x80,0x01,0x3A,0x20,0x14,0x24,0x3A,0x2F,0x0C,0x00,0x3A,0x20,0x0C,0x20, +0xFC,0xD4,0xFC,0x00,0x49,0xFF,0xB2,0x3D,0xFC,0x80,0xFC,0x00,0xC8,0x06,0x44,0x02, +0x16,0x98,0x44,0x12,0x16,0xC0,0xD5,0x05,0x44,0x02,0x16,0x5C,0x44,0x12,0x16,0x84, +0x49,0xFF,0xB3,0x29,0xFC,0x80,0xFC,0x00,0x49,0xFF,0xB2,0x83,0x49,0xFF,0xF7,0xD8, +0x84,0x00,0xFC,0x80,0xFC,0x00,0x84,0x20,0x44,0x20,0x00,0x50,0x44,0x02,0x16,0xF0, +0x49,0x00,0x24,0x7E,0xFC,0x80,0x2E,0x07,0xF2,0xDC,0xDD,0x9E,0xFC,0x00,0x2E,0x07, +0xF2,0xE3,0xE6,0x06,0xE9,0x0F,0x84,0x04,0x84,0x84,0x3E,0x07,0xF2,0x85,0x84,0x00, +0x80,0x20,0x44,0x22,0x16,0x98,0x44,0x32,0x16,0xC0,0x80,0xA4,0x49,0xFF,0xF7,0xF7, +0xFC,0x80,0x84,0x01,0x3E,0x07,0xF2,0x85,0x84,0x00,0x49,0xFF,0xF7,0xD5,0x84,0x00, +0x84,0x23,0x49,0xFF,0xAD,0xDC,0x46,0x10,0x00,0x81,0x83,0x81,0xB8,0x21,0x92,0x0B, +0x40,0x00,0x2C,0x08,0x58,0x00,0x01,0x30,0xB8,0xA1,0xBA,0x23,0x44,0x0F,0xF0,0xFF, +0xFE,0x16,0xB8,0xA3,0xFC,0x80,0xFC,0x00,0x2E,0x47,0xF2,0xE3,0x84,0x00,0x80,0x20, +0x44,0x22,0x16,0x5C,0x44,0x32,0x16,0x84,0x80,0xA4,0x49,0xFF,0xF7,0xD0,0xFC,0x80, +0x84,0x00,0x3E,0x07,0xF2,0x85,0x3E,0x07,0xF2,0x84,0xDD,0x9E,0xFC,0x00,0x80,0x41, +0xC9,0x05,0x5A,0x08,0x01,0x13,0x80,0x01,0xD5,0x05,0x84,0x20,0x5A,0x08,0x01,0x09, +0x84,0x02,0x94,0x01,0x96,0x40,0xCA,0x04,0x44,0x02,0x16,0xE0,0xD5,0x03,0x44,0x02, +0x16,0xD4,0x49,0xFF,0xB4,0xFC,0xFC,0x80,0xD5,0xF8,0xFC,0x00,0xC9,0x0C,0x84,0x00, +0x49,0xFF,0xB4,0x79,0x84,0x00,0x80,0x20,0x49,0xFF,0xB4,0xA6,0x84,0x00,0x49,0xFF, +0xB4,0xD8,0xFC,0x80,0x80,0xC0,0x5A,0x08,0x01,0xF4,0x84,0x02,0x49,0xFF,0xB4,0x6B, +0x80,0x06,0x84,0x20,0x49,0xFF,0xB4,0x98,0x80,0x06,0xD5,0xF2,0xFC,0x01,0xB6,0x1F, +0xF1,0x81,0x49,0xFF,0xFF,0xE4,0xB4,0x1F,0xF1,0x01,0x49,0xFF,0xFF,0xC9,0xFC,0x81, +0xFC,0x23,0x80,0xE0,0xC8,0x04,0x84,0xA4,0x84,0x23,0xD5,0x03,0x84,0xA6,0x84,0x22, +0x84,0x40,0x8E,0xA1,0x84,0x02,0x80,0x62,0x80,0x82,0x97,0x68,0x49,0xFF,0xF7,0x7F, +0x44,0x10,0xF4,0x98,0x80,0x1F,0x3A,0x20,0x94,0x04,0x3A,0x20,0x14,0x24,0x3A,0x20, +0x8C,0x00,0x3A,0x20,0x0C,0x20,0x80,0x1F,0x49,0xFF,0xB3,0x1E,0x84,0x00,0x49,0xFF, +0xB6,0x66,0x84,0x0C,0x80,0xDF,0x49,0xFF,0xB6,0x8D,0x5A,0x78,0x01,0x06,0x80,0x07, +0x80,0x27,0x49,0xFF,0xFF,0xCD,0xFC,0xA3,0xFC,0x00,0x84,0x46,0xC8,0x02,0x84,0x44, +0x84,0x20,0x3E,0x17,0xF2,0xDD,0x50,0x11,0x00,0x13,0x40,0x10,0x88,0x36,0x3E,0x17, +0xF2,0xDE,0x49,0xFF,0xFF,0xC7,0x84,0x02,0x49,0x00,0x12,0xD8,0xFC,0x80,0xFC,0x49, +0x80,0xE0,0x44,0x02,0x00,0x01,0xF0,0x86,0x44,0x01,0x00,0x02,0xF0,0x87,0x44,0x00, +0x80,0x04,0xF0,0x88,0x44,0x00,0x40,0x08,0xF0,0x89,0x44,0x00,0x20,0x10,0xF0,0x8A, +0x44,0x00,0x10,0x20,0xF0,0x8B,0x44,0x00,0x08,0x40,0xF0,0x8C,0x44,0x00,0x04,0x80, +0xF0,0x8D,0x44,0x00,0x03,0x00,0xF0,0x8E,0x3C,0x0D,0xF7,0xE5,0xF0,0x8F,0xF0,0x90, +0xF0,0x91,0xC7,0x08,0x44,0x92,0x16,0x84,0x44,0xA2,0x16,0x5C,0x85,0x02,0x87,0x85, +0xD5,0x07,0x85,0x03,0x44,0x92,0x16,0xC0,0x44,0xA2,0x16,0x98,0x83,0x88,0xB0,0x06, +0x49,0xFF,0xB2,0x94,0x80,0xDF,0xCF,0x11,0x44,0x00,0xF4,0xB0,0x80,0x3F,0x3A,0x20, +0x14,0x04,0x3A,0x20,0x94,0x24,0x3A,0x20,0x0C,0x00,0x3A,0x20,0x8C,0x20,0x80,0x1F, +0x49,0xFF,0xB2,0xBA,0x80,0x07,0xD5,0x10,0x44,0x00,0xF4,0xC8,0x80,0x3F,0x3A,0x20, +0x14,0x04,0x3A,0x20,0x94,0x24,0x3A,0x20,0x0C,0x00,0x3A,0x20,0x8C,0x20,0x80,0x1F, +0x49,0xFF,0xB2,0xAA,0x84,0x01,0x49,0x00,0x13,0x50,0x2E,0x47,0xF2,0xE3,0x84,0x00, +0x80,0x4A,0x80,0x69,0x80,0xA4,0x80,0x20,0x49,0xFF,0xF6,0xF1,0x2E,0x17,0xF2,0xE3, +0x84,0x00,0x38,0x15,0x05,0x01,0x49,0xFF,0xB3,0x3D,0x2E,0x17,0xF2,0xE3,0x84,0x03, +0x38,0x15,0x05,0x01,0x49,0xFF,0xB3,0x36,0x2E,0x07,0xF2,0xE3,0x84,0x20,0x38,0x04, +0x80,0x00,0x49,0xFF,0xB4,0x32,0x2E,0x07,0xF2,0xE3,0x84,0x23,0x38,0x04,0x80,0x00, +0x49,0xFF,0xB4,0x2B,0x44,0x00,0x02,0x40,0x49,0xFF,0xB5,0xC9,0x80,0x08,0x49,0xFF, +0xB5,0xF1,0x5A,0x78,0x01,0x0A,0x2E,0x07,0xF2,0xE3,0x40,0xFE,0x00,0x06,0xE9,0x04, +0x80,0x07,0x80,0x27,0xD5,0x03,0x84,0x00,0x80,0x27,0x49,0xFF,0xFF,0x29,0xFC,0xC9, +0xFC,0x00,0x2E,0x07,0xED,0x2E,0x2E,0x37,0xED,0x2F,0xE6,0x04,0xE8,0x03,0x84,0x01, +0xD5,0x06,0xE6,0x1C,0xE9,0x03,0xFA,0x0A,0xD5,0x02,0x8E,0x02,0x3E,0x07,0xF2,0xD8, +0x84,0x09,0x40,0x11,0x80,0x17,0x9E,0x5B,0xE6,0x2C,0x96,0x00,0xE9,0x0E,0xE6,0x02, +0xE9,0x1B,0xE6,0x07,0xE8,0x1D,0x5A,0x00,0x02,0x07,0x9E,0x42,0x96,0x48,0x5A,0x00, +0x06,0x1B,0xD5,0x0F,0x84,0x21,0xD5,0x0D,0xC0,0x19,0x5A,0x00,0x08,0x1C,0x5A,0x00, +0x01,0x08,0x9E,0x42,0x96,0x48,0x84,0x88,0x5A,0x00,0x07,0x19,0xD5,0x02,0x84,0x20, +0x9C,0x82,0x97,0x10,0xD5,0x14,0x84,0x83,0x84,0x02,0x84,0x21,0xD5,0x10,0x84,0x87, +0x84,0x06,0xD5,0x0C,0x84,0x87,0x84,0x24,0xD5,0x0A,0x84,0x82,0x84,0x01,0x84,0x20, +0xD5,0x06,0x80,0x80,0x84,0x26,0x84,0x07,0xD5,0x02,0x84,0x25,0x84,0x41,0x40,0x01, +0x00,0x0C,0x40,0x11,0x04,0x0C,0xFE,0x0F,0x40,0x21,0x10,0x0C,0xE6,0x69,0xFE,0x17, +0xE8,0x04,0x58,0x00,0x0E,0x00,0xD5,0x05,0x40,0x00,0x24,0x08,0x58,0x00,0x01,0xC0, +0x2E,0x17,0xF2,0xD8,0x3C,0x0F,0xF7,0xE5,0xFA,0x0F,0x40,0x00,0x04,0x0C,0x80,0x20, +0x84,0x40,0x49,0xFF,0xB0,0xEA,0xFC,0x80,0xFC,0x49,0xC1,0x07,0x44,0x92,0x16,0x5C, +0x85,0x42,0x44,0x72,0x16,0x84,0xD5,0x06,0x44,0x92,0x16,0x98,0x85,0x43,0x44,0x72, +0x16,0xC0,0x5A,0x08,0x03,0x32,0xB1,0x86,0x44,0x10,0xF4,0xE0,0x80,0x06,0x3A,0x20, +0x94,0x04,0x3A,0x20,0x14,0x24,0x3A,0x20,0x94,0x04,0x3A,0x20,0x14,0x24,0x3A,0x20, +0x94,0x00,0x44,0x10,0xF4,0x98,0x3A,0x20,0x14,0x20,0x80,0x1F,0x3A,0x20,0x94,0x04, +0x3A,0x20,0x14,0x24,0x3A,0x20,0x8C,0x00,0x3A,0x20,0x0C,0x20,0x2E,0x47,0xF2,0xE3, +0x84,0x20,0x80,0x49,0x80,0x67,0x80,0xA4,0x84,0x01,0x49,0xFF,0xF6,0x28,0x80,0x06, +0x49,0xFF,0xB1,0x9C,0x80,0x1F,0x49,0xFF,0xB1,0xCF,0x84,0x00,0x49,0xFF,0xB5,0x17, +0x81,0x5F,0x84,0x0C,0xD5,0x35,0x5A,0x08,0x02,0x36,0xB1,0x86,0x44,0x10,0xF5,0x10, +0x81,0x06,0x3A,0x20,0x94,0x04,0x3A,0x24,0x14,0x24,0x3A,0x20,0x94,0x04,0x3A,0x24, +0x14,0x24,0x3A,0x20,0x94,0x00,0x44,0x10,0xF4,0xB0,0x81,0xFF,0x3A,0x24,0x14,0x20, +0x3A,0x20,0x94,0x04,0x3A,0x27,0x94,0x24,0x3A,0x20,0x8C,0x00,0x3A,0x27,0x8C,0x20, +0x49,0x00,0x12,0x53,0x2E,0x47,0xF2,0xE3,0x84,0x00,0x80,0x20,0x80,0x49,0x80,0x67, +0x80,0xA4,0x49,0xFF,0xF5,0xF4,0x80,0x06,0x49,0xFF,0xB1,0x68,0x80,0x1F,0x49,0xFF, +0xB1,0x9B,0x44,0x00,0x02,0x40,0x49,0xFF,0xB4,0xE2,0x81,0x1F,0x80,0x0A,0x49,0xFF, +0xB5,0x09,0xFC,0xC9,0xFC,0x49,0x44,0x10,0xF5,0x10,0xB1,0x86,0x80,0xE0,0x80,0x06, +0x3A,0x20,0x94,0x04,0x3A,0x20,0x14,0x24,0x3A,0x20,0x94,0x04,0x3A,0x20,0x14,0x24, +0x3A,0x20,0x94,0x00,0x3A,0x20,0x14,0x20,0xC7,0x07,0x44,0x82,0x16,0x5C,0x85,0x22, +0x44,0xA2,0x16,0x84,0xD5,0x06,0x44,0x82,0x16,0x98,0x85,0x23,0x44,0xA2,0x16,0xC0, +0x84,0x00,0x49,0x00,0x12,0x1A,0x2E,0x47,0xF2,0xE3,0x84,0x00,0x80,0x20,0x80,0x48, +0x80,0x6A,0x80,0xA4,0x49,0xFF,0xF5,0xBB,0x80,0x06,0x49,0xFF,0xB1,0x2F,0x44,0x00, +0x02,0x40,0x49,0xFF,0xB4,0xAC,0x80,0x09,0x49,0xFF,0xB4,0xD4,0x46,0x00,0x42,0x10, +0x50,0x00,0x08,0x20,0x80,0x20,0x84,0x40,0x49,0xFF,0xB0,0x37,0x80,0x1F,0xCF,0x04, +0x44,0x10,0xF4,0xB0,0xD5,0x03,0x44,0x10,0xF4,0xC8,0x80,0xC0,0x3A,0x20,0x94,0x04, +0x3A,0x23,0x14,0x24,0x3A,0x20,0x8C,0x00,0x3A,0x23,0x0C,0x20,0x49,0xFF,0xB1,0x44, +0xFC,0xC9,0xDD,0x9E,0xFC,0x45,0x80,0xC0,0x83,0x81,0x81,0x22,0xF3,0x85,0xF4,0x86, +0x49,0xFF,0xF3,0x0C,0xF0,0x81,0xCE,0x08,0x44,0x80,0x02,0x40,0x84,0xE1,0x84,0xC2, +0x4F,0xC3,0x00,0x11,0xD5,0x07,0x5A,0x68,0x02,0x08,0x4F,0xC3,0x00,0x0A,0x81,0x1C, +0x84,0xE4,0x84,0xC3,0xD5,0x07,0x85,0x00,0x80,0xE8,0x80,0xC8,0xD5,0x03,0x85,0x00, +0x84,0xE6,0x49,0x00,0x13,0x19,0xC8,0x04,0x49,0x00,0x13,0x92,0xD5,0x03,0x49,0x00, +0x13,0x8C,0x81,0x40,0xF0,0x01,0x49,0xFF,0xF5,0xBB,0xFF,0xF4,0x40,0x14,0x04,0x08, +0x88,0x01,0x94,0x79,0xF0,0x82,0x41,0xE0,0x84,0x09,0x2E,0x07,0xF2,0xD8,0x94,0x7A, +0xF1,0x83,0x96,0x71,0xF1,0x81,0x9C,0x44,0x84,0xE0,0xF1,0x88,0x42,0x14,0x98,0x24, +0x96,0xC1,0x80,0xA7,0xF1,0x89,0xF1,0x01,0xE2,0xA1,0xE8,0x33,0x85,0x00,0x40,0x14, +0x18,0x08,0x88,0x2A,0xF1,0x84,0x80,0x85,0xF1,0x09,0x42,0x44,0x78,0x73,0x88,0x81, +0xF1,0x02,0x95,0x21,0x88,0x24,0x80,0x43,0xF1,0x87,0xF1,0x08,0xE0,0x22,0xE9,0x1A, +0xF4,0x03,0xF1,0x07,0x42,0x11,0x10,0x73,0x22,0x40,0x80,0x00,0xF1,0x04,0x38,0x10, +0x89,0x11,0x40,0xF2,0x04,0x01,0x4E,0xF4,0x00,0x05,0x8A,0x24,0x96,0x49,0xD5,0x03, +0x40,0x17,0x80,0x13,0xE2,0x27,0x40,0x13,0xBC,0x1B,0x8C,0x41,0x80,0xE1,0x96,0x91, +0xD5,0xE5,0x5A,0x80,0x01,0x04,0x85,0x01,0xD5,0xD3,0x8C,0xA1,0x97,0x69,0xD5,0xCC, +0x50,0x80,0x00,0x04,0xE6,0x22,0x84,0x80,0x42,0x64,0x98,0x24,0x14,0xFF,0x80,0x04, +0xE1,0x03,0xE9,0x3C,0xF0,0x03,0x04,0xAF,0x80,0x02,0x42,0xA1,0x80,0x73,0x84,0xA0, +0x42,0x02,0xF8,0x24,0x88,0x06,0x4F,0xC3,0x00,0x03,0x8C,0x01,0x38,0x15,0x01,0x01, +0xF0,0x04,0xC8,0x1D,0x80,0x06,0x42,0x02,0xF8,0x73,0x9C,0x81,0x81,0x21,0x38,0x25, +0x09,0x01,0xE2,0x22,0x40,0x91,0x3C,0x1B,0xE2,0x41,0x40,0x11,0x3C,0x1B,0x80,0x41, +0xF1,0x01,0x5A,0x10,0x02,0x0F,0x8C,0x02,0x80,0x29,0x38,0x05,0x01,0x01,0xE3,0x20, +0x40,0x10,0x3C,0x1B,0xE2,0x02,0x40,0x20,0x3C,0x1B,0xD5,0x04,0x80,0x41,0xD5,0x02, +0x80,0x29,0x8A,0x22,0xE0,0x24,0x40,0x12,0x3C,0x1B,0x97,0x09,0x5A,0x50,0x01,0x04, +0x84,0xA1,0xD5,0xCF,0x8C,0x61,0x96,0xD9,0xD5,0xC4,0xF0,0x06,0xAD,0xC0,0xF0,0x05, +0xAD,0x00,0xFC,0xC5,0xFC,0x02,0x84,0x00,0x12,0x0F,0x80,0x07,0x49,0x00,0x12,0x6E, +0x84,0xC5,0xC8,0x02,0x84,0xC3,0x49,0x00,0x12,0x69,0xF0,0x81,0x84,0x00,0xF1,0x01, +0x80,0x40,0x44,0x32,0x16,0xEE,0x50,0x4F,0x80,0x0E,0x49,0xFF,0xFF,0x2D,0x3C,0x5D, +0xF7,0xE6,0x44,0x10,0xFF,0xFF,0x3C,0x03,0xF9,0x43,0xD9,0x04,0x3C,0x0F,0xF7,0xE6, +0xD5,0x05,0x88,0xA0,0x92,0xA1,0x3C,0x5F,0xF7,0xE6,0x49,0x00,0x12,0x4F,0x49,0x00, +0x12,0x4D,0x5A,0x08,0x01,0x0E,0x2E,0x07,0xF2,0xE3,0xE2,0xC0,0xE9,0x09,0x02,0x0F, +0x80,0x07,0xE6,0x0A,0x4E,0xF2,0x00,0x9D,0x84,0x00,0x12,0x0F,0x80,0x07,0x49,0x00, +0x10,0xC1,0x80,0xC0,0x2E,0x07,0xF2,0xE3,0xAC,0x30,0x49,0x00,0x12,0x37,0x2E,0x17, +0xF2,0xE3,0xC8,0x04,0x44,0x02,0x16,0x98,0xD5,0x03,0x44,0x02,0x16,0x5C,0x38,0x00, +0x05,0x11,0x46,0x20,0x00,0x81,0xAC,0x31,0x02,0x0F,0x80,0x07,0x3C,0x1D,0xF7,0xE6, +0xAC,0x32,0x3C,0x03,0xF9,0x43,0xAC,0x77,0xAC,0x33,0x2E,0x07,0xF2,0xDB,0x44,0x42, +0x16,0xF0,0x50,0x00,0x00,0x64,0xAC,0x34,0x2E,0x07,0xF2,0xDA,0x50,0x00,0x00,0xC8, +0xAC,0x35,0x2E,0x07,0xF2,0xD9,0x50,0x00,0x01,0x2C,0xAC,0x36,0x04,0x01,0x00,0x20, +0x54,0x00,0x07,0xFF,0x12,0x03,0x00,0x08,0x04,0x01,0x00,0x23,0x50,0x23,0x00,0x16, +0x96,0x1F,0x12,0x03,0x00,0x09,0x44,0x0F,0xFF,0x9C,0x12,0x03,0x00,0x0A,0x84,0x00, +0x38,0x32,0x02,0x02,0x8C,0x01,0x1A,0x31,0x00,0x01,0x5A,0x08,0x14,0xFB,0x3C,0x03, +0xF8,0x5F,0x3C,0x23,0xF9,0x43,0x12,0x03,0x00,0x21,0x3C,0x03,0xF8,0x5E,0x5C,0xF1, +0x04,0xB1,0x12,0x03,0x00,0x22,0x44,0x00,0x03,0x78,0x12,0x03,0x00,0x23,0x2E,0x07, +0xF2,0xDD,0x12,0x03,0x00,0x24,0x2E,0x07,0xDE,0xCC,0x12,0x03,0x00,0x25,0x2E,0x07, +0xF2,0x85,0x12,0x03,0x00,0x26,0x84,0x00,0x12,0x03,0x00,0x27,0x12,0x03,0x00,0x28, +0x12,0x03,0x00,0x29,0x12,0x03,0x00,0x2A,0xE9,0x04,0x2E,0x07,0xF1,0xF1,0x8C,0x01, +0x3E,0x07,0xF1,0xF1,0x2E,0x07,0xF1,0xF1,0xE6,0x03,0xE9,0x06,0x84,0x00,0x3E,0x07, +0xF1,0xF1,0x3E,0x07,0xF2,0xDA,0x2E,0x07,0xF2,0xDA,0xC8,0x0D,0x5C,0xF0,0x81,0x91, +0xE8,0x06,0x02,0x0F,0x80,0x07,0x5C,0xF0,0x04,0xB1,0xE9,0x05,0x2E,0x07,0xF1,0xF0, +0x8C,0x01,0xD5,0x02,0x84,0x00,0x3E,0x07,0xF1,0xF0,0x2E,0x07,0xF1,0xF0,0xE6,0x02, +0x84,0x00,0xE9,0x09,0x84,0x00,0x3E,0x07,0xF1,0xF0,0x84,0x01,0xD5,0x04,0x8E,0x0A, +0x48,0xFF,0xFF,0x65,0xFC,0x82,0xFC,0x01,0x84,0x00,0x12,0x0F,0x80,0x03,0x84,0x00, +0x84,0x21,0x80,0x40,0x44,0x32,0x16,0xEE,0x50,0x4F,0x80,0x06,0x49,0xFF,0xFE,0x64, +0x49,0x00,0x10,0x18,0x2E,0x17,0xF2,0xE3,0x44,0x22,0x16,0x98,0xAC,0x40,0x38,0x11, +0x05,0x01,0xAC,0x41,0x02,0x1F,0x80,0x03,0xAC,0x42,0x3C,0x13,0xF9,0x43,0xAC,0x43, +0x2E,0x17,0xF2,0xDB,0x50,0x10,0x80,0x64,0xAC,0x44,0x2E,0x17,0xF2,0xDA,0x50,0x10, +0x80,0xC8,0xAC,0x45,0x2E,0x17,0xF2,0xD9,0x50,0x10,0x81,0x2C,0xAC,0x46,0x3C,0x13, +0xF6,0x93,0x96,0x46,0xC9,0x04,0x44,0x10,0x01,0x90,0xD5,0x03,0x44,0x10,0x01,0x91, +0x46,0x20,0x00,0x81,0xAC,0x47,0x83,0x82,0xB9,0x20,0x44,0x42,0x16,0xF0,0x54,0x10, +0x87,0xFF,0x12,0x10,0x00,0x08,0xB9,0x23,0x50,0x20,0x00,0x16,0x96,0x5F,0x12,0x10, +0x00,0x09,0x44,0x1F,0xFF,0x9C,0x12,0x10,0x00,0x0A,0x84,0x20,0x38,0x32,0x06,0x02, +0x8C,0x21,0x1A,0x31,0x00,0x01,0x5A,0x18,0x14,0xFB,0x3C,0x13,0xF8,0x5F,0x3C,0x23, +0xF9,0x43,0x12,0x10,0x00,0x21,0x3C,0x13,0xF8,0x5E,0x44,0x30,0x03,0xE7,0x12,0x10, +0x00,0x22,0x44,0x10,0x03,0x78,0x12,0x10,0x00,0x23,0x2E,0x17,0xF2,0xDD,0x5C,0xF1, +0x01,0x5F,0x12,0x10,0x00,0x24,0x2E,0x17,0xDE,0xCC,0x12,0x30,0x00,0x27,0x12,0x10, +0x00,0x25,0x2E,0x17,0xF2,0x85,0x12,0x20,0x00,0x29,0x12,0x10,0x00,0x26,0x02,0x1F, +0x80,0x03,0x12,0x30,0x00,0x2A,0x12,0x10,0x00,0x28,0xE8,0x06,0x44,0x00,0x04,0xB0, +0x40,0x00,0x04,0x06,0xFC,0x81,0x84,0x01,0xFC,0x81,0xFC,0x00,0x49,0xFF,0xFF,0x7D, +0xC8,0x07,0x2E,0x07,0xF2,0x84,0x8C,0x01,0x3E,0x07,0xF2,0x84,0xD5,0x0D,0x2E,0x07, +0xF2,0x85,0x84,0x20,0x8C,0x01,0x96,0x00,0xE6,0x14,0x40,0x00,0xBC,0x1A,0x3E,0x17, +0xF2,0x84,0x3E,0x07,0xF2,0x85,0x2E,0x07,0xF2,0x84,0xE6,0x0B,0x84,0x00,0xE9,0x09, +0x84,0x00,0x3E,0x07,0xF2,0x84,0x2E,0x07,0xF2,0x85,0x3E,0x07,0xF2,0xE3,0x84,0x01, +0xFC,0x80,0xFC,0x44,0x81,0x00,0x84,0x00,0x12,0x0F,0x80,0x0F,0x4E,0x83,0x00,0x0D, +0x44,0x02,0x16,0xC0,0x85,0x43,0xF0,0x84,0x44,0x02,0x16,0x98,0xF0,0x82,0x14,0xAF, +0x80,0x03,0x84,0xC4,0xD5,0x0B,0x44,0x02,0x16,0x84,0xF0,0x84,0x44,0x02,0x16,0x5C, +0xF0,0x82,0x84,0x02,0x85,0x45,0xF0,0x83,0x84,0xC6,0x46,0x97,0xFF,0xFF,0x84,0x00, +0x80,0xA6,0x50,0x94,0x8F,0xFF,0xF0,0x81,0x2E,0x07,0xF2,0xDD,0xF7,0x01,0x42,0x73, +0x00,0x73,0x97,0xF8,0xE6,0xF4,0xE8,0x39,0x84,0x02,0x80,0x28,0xF2,0x01,0x44,0x32, +0x16,0xEE,0x50,0x4F,0x80,0x1E,0xF5,0x85,0x49,0xFF,0xFD,0x96,0xF5,0x05,0x5A,0x88, +0x01,0x0D,0xE3,0x47,0xE9,0x0A,0x02,0x0F,0x80,0x0F,0xE6,0x0A,0xE8,0x03,0x84,0x00, +0xD5,0x02,0x8E,0x0A,0x12,0x0F,0x80,0x0F,0x44,0x02,0x16,0xF0,0x38,0x10,0x1E,0x02, +0x3C,0x03,0xF9,0x43,0xC1,0x08,0x94,0x02,0x84,0x46,0x42,0x00,0x88,0x73,0x84,0x2A, +0x40,0x00,0x04,0x16,0x44,0x12,0x16,0xF0,0x38,0x00,0x9E,0x0A,0x44,0x02,0x16,0xF0, +0x38,0x00,0x1E,0x02,0xE0,0x09,0xE8,0x09,0x02,0x1F,0x80,0x0F,0x5C,0xF0,0x84,0xB0, +0x40,0x90,0x3C,0x1B,0x40,0x53,0xBC,0x1B,0xF0,0x01,0x8C,0x01,0x96,0x00,0xF0,0x81, +0x4C,0x03,0x7F,0xBC,0x44,0x00,0xFF,0xFF,0x3C,0x0F,0xF7,0xE6,0x5A,0x88,0x01,0x1F, +0xE3,0x47,0xE9,0x1C,0x84,0x00,0x80,0x20,0x44,0x42,0x16,0xF0,0x38,0x22,0x06,0x02, +0x8C,0x21,0xE0,0x40,0x96,0x48,0x40,0x20,0x3C,0x1B,0xE3,0x41,0x44,0x32,0x16,0xF0, +0x96,0x11,0xE8,0xF5,0x84,0x20,0x38,0x01,0x86,0x0A,0x8C,0x21,0x96,0x88,0xE3,0x42, +0xE8,0xFB,0xE3,0x45,0xE9,0x03,0x81,0x20,0x84,0xA0,0x2E,0x07,0xF2,0xDD,0xC0,0x05, +0x3C,0x13,0xF9,0x70,0xE1,0x21,0xE8,0x05,0x3E,0x57,0xF2,0xE2,0x3C,0x9B,0xF9,0x70, +0x3C,0x13,0xF9,0x70,0x5C,0xF0,0x80,0xFA,0xE8,0x0A,0x2E,0x07,0xF2,0xE2,0x3E,0x07, +0xF2,0xE3,0x84,0x00,0x3E,0x07,0xF2,0xDC,0x48,0x00,0x00,0x7F,0x8C,0x01,0x3E,0x07, +0xF2,0xDD,0x49,0x00,0x0E,0xD7,0x2E,0x17,0xF2,0xE3,0xF2,0x02,0xAC,0x40,0x38,0x11, +0x05,0x01,0xAC,0x41,0x02,0x1F,0x80,0x0F,0xAC,0x42,0x3C,0x13,0xF9,0x43,0xAC,0x43, +0x2E,0x17,0xF2,0xDB,0x50,0x10,0x80,0x64,0xAC,0x44,0x2E,0x17,0xF2,0xDA,0x50,0x10, +0x80,0xC8,0xAC,0x45,0x2E,0x17,0xF2,0xD9,0x50,0x10,0x81,0x2C,0xAC,0x46,0x3C,0x13, +0xF6,0x93,0x96,0x46,0xC9,0x04,0x44,0x10,0x01,0x90,0xD5,0x03,0x44,0x10,0x01,0x91, +0x46,0x20,0x00,0x81,0xAC,0x47,0x04,0x11,0x00,0x20,0x44,0x42,0x16,0xF0,0x54,0x10, +0x87,0xFF,0x12,0x10,0x00,0x08,0x04,0x11,0x00,0x23,0x50,0x20,0x00,0x16,0x96,0x5F, +0x12,0x10,0x00,0x09,0x44,0x1F,0xFF,0x9C,0x12,0x10,0x00,0x0A,0x84,0x20,0x38,0x32, +0x06,0x02,0x8C,0x21,0x1A,0x31,0x00,0x01,0x5A,0x18,0x14,0xFB,0x3C,0x23,0xF8,0x5F, +0x2E,0x47,0xF2,0xDD,0x12,0x20,0x00,0x21,0x3C,0x23,0xF8,0x5E,0x12,0x40,0x00,0x24, +0x12,0x20,0x00,0x22,0x44,0x20,0x03,0x78,0x12,0x20,0x00,0x23,0x2E,0x27,0xDE,0xCC, +0x12,0x20,0x00,0x25,0x2E,0x27,0xF2,0x85,0x12,0x20,0x00,0x26,0x2E,0x07,0xF2,0xDE, +0xE2,0x80,0xE9,0x1C,0x2E,0x07,0xF2,0xE2,0x3E,0x07,0xF2,0xE3,0x3C,0x03,0xF9,0x70, +0x5C,0xF0,0x00,0x96,0x84,0x01,0xE9,0x02,0x84,0x02,0x3E,0x07,0xF2,0xDC,0x84,0x01, +0x3E,0x07,0xF2,0xDA,0x84,0x21,0x84,0x06,0x49,0x00,0x19,0x68,0x84,0x06,0x44,0x10, +0x00,0x64,0x49,0x00,0x19,0x55,0x84,0x01,0xD5,0x16,0xFF,0x34,0x97,0x20,0x88,0xC4, +0xE4,0xD5,0x40,0x60,0xBC,0x1A,0x9F,0x71,0x84,0x02,0xF1,0x03,0xF2,0x02,0xF3,0x04, +0x97,0x68,0x49,0xFF,0xF2,0x2C,0x84,0x00,0x5A,0x88,0x01,0x06,0x80,0x28,0x49,0xFF, +0xFA,0x8F,0x84,0x00,0xFC,0xC4,0x84,0x01,0x3E,0x07,0xF2,0xDB,0xDD,0x9E,0x2E,0x07, +0xF2,0xDB,0xDD,0x9E,0x84,0x00,0x3E,0x07,0xF2,0xDB,0xDD,0x9E,0x2E,0x07,0xF2,0xDA, +0xDD,0x9E,0x84,0x00,0x3E,0x07,0xF2,0xDA,0xDD,0x9E,0x84,0x01,0x3E,0x07,0xF2,0xD9, +0xDD,0x9E,0x2E,0x07,0xF2,0xD9,0xDD,0x9E,0x84,0x00,0x3E,0x07,0xF2,0xD9,0xDD,0x9E, +0x2E,0x07,0xF2,0xED,0x96,0x00,0xC0,0x05,0x84,0x00,0x3E,0x07,0xF2,0xED,0x84,0x01, +0xDD,0x9E,0x2E,0x07,0xF2,0xEC,0x96,0x00,0xC0,0x05,0x84,0x00,0x3E,0x07,0xF2,0xEC, +0x84,0x01,0xDD,0x9E,0x2E,0x17,0xF2,0xEB,0x96,0x48,0xC1,0x05,0x84,0x00,0x3E,0x07, +0xF2,0xEB,0xD5,0x07,0x2E,0x07,0xF2,0xE7,0x96,0x00,0xC0,0x04,0x3E,0x17,0xF2,0xE7, +0x84,0x01,0xDD,0x9E,0x2E,0x07,0xF2,0xEA,0x96,0x00,0xC0,0x05,0x84,0x00,0x3E,0x07, +0xF2,0xEA,0xD5,0x10,0x2E,0x17,0xF2,0xE9,0x96,0x48,0xC1,0x05,0x3E,0x07,0xF2,0xE9, +0x84,0x01,0xD5,0x08,0x2E,0x07,0xF2,0xE8,0x96,0x00,0xC0,0x07,0x3E,0x17,0xF2,0xE8, +0x84,0x02,0x3E,0x07,0xF2,0xEF,0x84,0x01,0xDD,0x9E,0xFC,0x00,0x49,0xFF,0xAB,0x3A, +0x5A,0x00,0x01,0xFE,0x44,0x16,0x20,0x10,0xB4,0x01,0x92,0x01,0x96,0x06,0x5A,0x00, +0x01,0xFD,0x49,0x00,0x16,0xA7,0x80,0xC0,0xC8,0x09,0x84,0x01,0x49,0xFF,0xF1,0xF9, +0x64,0x00,0x00,0x20,0x80,0x06,0x49,0xFF,0xF1,0xF4,0xFC,0x80,0x2E,0x07,0xF2,0xF0, +0xDD,0x9E,0x2E,0x07,0xF2,0xEF,0xDD,0x9E,0x3E,0x07,0xF2,0xEE,0xDD,0x9E,0xFC,0x00, +0x2E,0x07,0xF2,0xF0,0xC8,0x15,0x2E,0x07,0xF2,0xE4,0x44,0x65,0x09,0x10,0x5A,0x08, +0x01,0x08,0x49,0xFF,0xF2,0xC3,0xFE,0x34,0x44,0x61,0x2C,0x00,0xD5,0x06,0x49,0xFF, +0xF2,0xBD,0xFE,0x34,0x44,0x62,0x58,0x00,0x40,0x00,0x18,0x16,0xD5,0x09,0x84,0x01, +0x49,0xFF,0xF3,0xE6,0x80,0xC0,0x49,0xFF,0xF2,0xB1,0xFE,0x34,0x90,0x07,0x50,0x00, +0x00,0xEB,0x96,0x01,0xFC,0x80,0x2E,0x07,0xF1,0x78,0xC0,0xFE,0xFC,0x00,0x49,0xFF, +0xAC,0xC9,0xFC,0x80,0xFC,0x01,0xF0,0x81,0x84,0x01,0x49,0xFF,0xED,0x65,0xF0,0x01, +0x49,0xFF,0xF1,0xC3,0xF0,0x01,0x49,0xFF,0xF1,0xC1,0xF0,0x01,0x49,0xFF,0xF1,0xBF, +0xFC,0x81,0xFC,0x00,0x84,0x00,0x49,0xFF,0xF3,0xDE,0x84,0x00,0x49,0xFF,0xB3,0x85, +0x84,0x00,0x49,0xFF,0xF3,0xE3,0x2E,0x07,0xF2,0xEF,0xE6,0x02,0xE8,0x08,0x84,0x01, +0x84,0x20,0x49,0xFF,0xB3,0x11,0x84,0x01,0x49,0xFF,0xFF,0xDE,0x84,0x00,0x84,0x21, +0x49,0xFF,0xB3,0x0A,0x84,0x01,0x80,0x20,0x49,0xFF,0xB3,0x51,0x84,0x00,0x49,0x00, +0x0C,0xEF,0x84,0x00,0x49,0x00,0x0C,0xD2,0x46,0x00,0x00,0x81,0x83,0x80,0xB9,0x1A, +0x92,0x25,0x94,0x4D,0x58,0x10,0x80,0x10,0xB9,0x9A,0xBA,0x1A,0x44,0x1F,0xE0,0xFF, +0xFE,0x56,0x58,0x10,0x88,0x00,0xB9,0x9A,0xBA,0x1A,0x46,0x1F,0xFE,0x0F,0x50,0x10, +0x8F,0xFF,0xFE,0x56,0x44,0x25,0x00,0x00,0xFE,0x57,0xB9,0x9A,0xBA,0x1A,0x46,0x1E, +0x0F,0xFF,0x50,0x10,0x8F,0xFF,0xFE,0x56,0x46,0x20,0x10,0x00,0xFE,0x57,0xB9,0x9A, +0xB9,0x19,0x44,0x21,0xF4,0xCE,0x92,0x31,0x40,0x10,0xC4,0x08,0xFE,0x57,0xB9,0x99, +0x84,0x00,0x3E,0x07,0xF2,0xF0,0xFC,0x80,0xFC,0x20,0x84,0x01,0x49,0x00,0x0C,0xB8, +0x84,0x00,0x49,0x00,0x0C,0x9B,0x2E,0x67,0xF2,0xEF,0xCE,0x6A,0x80,0x06,0x49,0xFF, +0xF3,0x8D,0x80,0x06,0x49,0xFF,0xFF,0x90,0x80,0x06,0x80,0x26,0x49,0xFF,0xB2,0xBC, +0x44,0x04,0x20,0x18,0x46,0x1F,0xF7,0xFF,0xB4,0x40,0x50,0x10,0x8F,0xFF,0xFE,0x56, +0xB6,0x20,0xB4,0x40,0x46,0x10,0x10,0x00,0xFE,0x57,0xB6,0x20,0xB4,0x40,0x46,0x1F, +0x7F,0xFF,0x50,0x10,0x8F,0xFF,0xFE,0x56,0xB6,0x20,0xB4,0x40,0x46,0x1B,0xFF,0xFF, +0x50,0x10,0x8F,0xFF,0xFE,0x56,0x84,0x41,0xB6,0x20,0x80,0x62,0x80,0x20,0x49,0xFF, +0xAA,0xC3,0x44,0x04,0x20,0x20,0x84,0x3B,0xB4,0x40,0xFE,0x56,0xB6,0x20,0xB4,0x20, +0x84,0x41,0x58,0x10,0x80,0x08,0xB6,0x20,0xB4,0x20,0x80,0x62,0x58,0x10,0x80,0x40, +0xB6,0x20,0x80,0x20,0x49,0xFF,0xAA,0xB0,0x44,0x04,0x20,0x1C,0x44,0x1B,0xFF,0xFF, +0xB4,0x40,0xFE,0x56,0xB6,0x20,0xB4,0x40,0x46,0x10,0x00,0x80,0xFE,0x57,0xB6,0x20, +0xB4,0x40,0x46,0x10,0x04,0x00,0xFE,0x57,0x84,0x41,0xB6,0x20,0x80,0x62,0x80,0x20, +0x49,0xFF,0xAA,0x9A,0x44,0x14,0x50,0x0C,0x84,0x1E,0xB4,0x41,0xFE,0x16,0xB6,0x01, +0x84,0x0F,0x49,0xFF,0xB3,0x80,0x44,0x24,0x70,0x04,0x44,0x10,0x89,0x12,0xB4,0x02, +0x92,0x10,0x40,0x00,0x40,0x08,0xFE,0x0F,0xB6,0x02,0x48,0x00,0x00,0xE8,0x5A,0x60, +0x01,0x04,0x48,0x00,0x00,0xA3,0x84,0x00,0x49,0xFF,0xFF,0x26,0x84,0x00,0x80,0x20, +0x49,0xFF,0xB2,0x52,0x44,0x14,0x70,0x00,0x44,0x01,0x00,0x00,0xB4,0x41,0x44,0x74, +0x20,0x1C,0xFE,0x17,0xB6,0x01,0xB4,0x27,0x44,0x0F,0xFF,0xEF,0xFE,0x0E,0xB6,0x07, +0x80,0x27,0x80,0x07,0x80,0x46,0x80,0x66,0x49,0xFF,0xAA,0x66,0x44,0x04,0x20,0x18, +0x46,0x1F,0xF7,0xFF,0xB4,0x40,0x50,0x10,0x8F,0xFF,0xFE,0x56,0xB6,0x20,0xB4,0x40, +0x46,0x10,0x10,0x00,0xFE,0x57,0xB6,0x20,0xB4,0x40,0x46,0x1F,0x7F,0xFF,0x50,0x10, +0x8F,0xFF,0xFE,0x56,0xB6,0x20,0xB4,0x40,0x46,0x1B,0xFF,0xFF,0x50,0x10,0x8F,0xFF, +0xFE,0x56,0xB6,0x20,0x80,0x46,0x80,0x20,0x80,0x66,0x49,0xFF,0xAA,0x45,0x44,0x04, +0x20,0x20,0x84,0x3B,0xB4,0x40,0x80,0x66,0xFE,0x56,0xB6,0x20,0xB4,0x20,0x80,0x46, +0x58,0x10,0x80,0x08,0xB6,0x20,0xB4,0x20,0x58,0x10,0x80,0x40,0xB6,0x20,0x80,0x20, +0x49,0xFF,0xAA,0x32,0xB4,0x27,0x44,0x0B,0xFF,0xFF,0xFE,0x0E,0xB6,0x07,0xB4,0x27, +0x46,0x00,0x00,0x80,0xFE,0x0F,0xB6,0x07,0xB4,0x27,0x46,0x00,0x04,0x00,0xFE,0x0F, +0xB6,0x07,0x80,0x27,0x80,0x07,0x80,0x46,0x80,0x66,0x49,0xFF,0xAA,0x1D,0x44,0x14, +0x50,0x0C,0x84,0x1E,0xB4,0x41,0xFE,0x16,0xB6,0x01,0x84,0x0F,0x49,0xFF,0xB3,0x03, +0x44,0x04,0x70,0x18,0xB4,0x20,0x58,0x10,0x80,0x02,0xB6,0x20,0xB4,0x20,0x58,0x10, +0x80,0x04,0xB6,0x20,0x44,0x14,0x70,0x08,0xB4,0x01,0x92,0x10,0x40,0x00,0x40,0x08, +0x58,0x00,0x78,0x23,0xB6,0x01,0x44,0x14,0x70,0x04,0xB4,0x01,0x92,0x10,0x40,0x00, +0x40,0x08,0xB6,0x01,0x44,0x14,0x50,0x10,0xB4,0x01,0x92,0x08,0x40,0x00,0x20,0x08, +0x58,0x00,0x00,0x98,0xB6,0x01,0xB4,0x41,0x44,0x0F,0x00,0xFF,0xFE,0x16,0x44,0x20, +0x98,0x00,0xFE,0x17,0xB6,0x01,0x44,0x04,0x00,0x10,0x44,0x10,0x98,0x81,0xB6,0x20, +0x44,0x04,0x00,0x1C,0xAF,0x80,0xD5,0x54,0x46,0x00,0x00,0x81,0x83,0x80,0xB9,0x1A, +0x92,0x25,0x94,0x4D,0x58,0x10,0x80,0x03,0xB9,0x9A,0xBA,0x1A,0x44,0x1F,0xE0,0xFF, +0xFE,0x56,0x58,0x10,0x82,0x00,0xB9,0x9A,0xBA,0x1A,0x46,0x1F,0xFE,0x0F,0x50,0x10, +0x8F,0xFF,0xFE,0x56,0x44,0x21,0x00,0x00,0xFE,0x57,0xB9,0x9A,0xBA,0x1A,0x46,0x1E, +0x0F,0xFF,0x50,0x10,0x8F,0xFF,0xFE,0x56,0xB9,0x9A,0xB9,0x19,0x92,0x31,0x40,0x10, +0xC4,0x08,0x58,0x10,0xED,0x60,0xB9,0x99,0x84,0x21,0x84,0x00,0x49,0xFF,0xB1,0xD7, +0x84,0x01,0x49,0xFF,0xB1,0xDE,0x84,0x01,0x80,0x20,0x49,0xFF,0xB1,0x85,0x84,0x01, +0x49,0xFF,0xB1,0xB8,0x84,0x01,0x49,0xFF,0xB1,0xE8,0x44,0x00,0x00,0xD2,0x84,0x21, +0x49,0xFF,0xB1,0x94,0x84,0x01,0x49,0xFF,0xB1,0x9B,0x49,0xFF,0xF0,0xFF,0x46,0x01, +0xFF,0xFF,0x50,0x00,0x0F,0x00,0x49,0xFF,0xB0,0xF5,0x49,0xFF,0xB0,0xDF,0x46,0x01, +0xF0,0x00,0x50,0x00,0x01,0x00,0x49,0xFF,0xB0,0xED,0x49,0xFF,0xB0,0xD7,0x84,0x00, +0x49,0xFF,0xEC,0x7A,0x84,0x00,0x49,0xFF,0xEC,0x80,0x84,0x01,0x3E,0x07,0xF2,0xF0, +0x2E,0x07,0xF2,0xEF,0x5A,0x08,0x02,0x04,0x49,0xFF,0xB7,0x35,0xFC,0xA0,0xFC,0x00, +0x49,0xFF,0xF0,0x73,0xFC,0x80,0xDD,0x9E,0x84,0x40,0x44,0x42,0x17,0x68,0x96,0xD1, +0xE2,0x61,0xE8,0x07,0x38,0x30,0x08,0x00,0x38,0x32,0x08,0x08,0x8C,0x41,0xD5,0xF8, +0xDD,0x9E,0xFC,0x40,0x22,0xFF,0x80,0x14,0x22,0x8F,0x80,0x16,0x22,0xAF,0x80,0x18, +0x00,0x9F,0x80,0x34,0x00,0x7F,0x80,0x38,0x00,0x6F,0x80,0x3C,0x4E,0x03,0x00,0x99, +0x45,0xC7,0x20,0xC0,0x46,0x0F,0xFF,0x0F,0x05,0xEE,0x00,0x00,0x96,0x5F,0x50,0x00, +0x0F,0xFF,0x40,0x10,0xC0,0x08,0x40,0x0F,0x00,0x02,0xFE,0x0F,0xB6,0x1C,0xC4,0x0C, +0x44,0x07,0x20,0xC4,0x40,0x21,0x30,0x08,0xB4,0x20,0x92,0x4C,0x92,0x34,0x40,0x10, +0xD0,0x08,0xFE,0x8F,0xB6,0x40,0xC5,0x0C,0x44,0x07,0x20,0xCC,0x40,0x31,0xB0,0x08, +0xB4,0x20,0x92,0x6C,0x92,0x34,0x40,0x10,0xD0,0x08,0xFE,0xCF,0xB6,0x60,0x44,0x27, +0x20,0xD4,0xF0,0x08,0xB4,0x22,0x40,0x00,0x30,0x08,0x92,0x34,0x40,0x10,0xD0,0x08, +0x92,0x0C,0x44,0x37,0x20,0xC8,0xFE,0x0F,0xB6,0x02,0xB4,0x03,0x54,0x17,0x80,0xFF, +0x92,0x08,0x40,0x00,0x20,0x08,0x44,0x27,0x20,0xD0,0xFE,0x0F,0xB6,0x03,0xB4,0x02, +0x54,0x14,0x00,0xFF,0x92,0x08,0x40,0x00,0x20,0x08,0xFE,0x0F,0x44,0x17,0x20,0xD8, +0xB6,0x02,0xB4,0x01,0x54,0xA5,0x00,0xFF,0x92,0x08,0x40,0x00,0x20,0x08,0x40,0x00, +0x28,0x04,0xB6,0x01,0x54,0x04,0x80,0x03,0x40,0xA0,0x60,0x08,0xB5,0x23,0x46,0x0F, +0xCF,0xFF,0x50,0x00,0x0F,0xFF,0x40,0x94,0x80,0x02,0x40,0x94,0xA8,0x04,0xB7,0x23, +0x97,0xCF,0x40,0x93,0xE0,0x08,0xB4,0xE2,0x97,0x8F,0xFF,0xC6,0x40,0x73,0xA4,0x04, +0xB6,0xE2,0xB4,0xE1,0x40,0x63,0x60,0x08,0xFE,0x3E,0xFE,0x37,0xB6,0x01,0xF0,0x10, +0x44,0x77,0x20,0xDC,0x40,0x00,0x3C,0x08,0x40,0x60,0x3C,0x09,0xB4,0x07,0x40,0x42, +0x7C,0x08,0x92,0x11,0x40,0x00,0x44,0x08,0xFE,0x37,0xB6,0x07,0xB4,0x03,0x40,0x52, +0xFC,0x08,0x94,0x01,0x92,0x01,0xFE,0x27,0xB6,0x03,0xB4,0x02,0x94,0x01,0x92,0x01, +0xFE,0x2F,0xB6,0x02,0xF0,0x09,0x40,0x20,0x7C,0x08,0xB4,0x01,0x94,0x01,0x92,0x01, +0xFE,0x17,0xB6,0x01,0x84,0x20,0x44,0x07,0x20,0xE0,0x48,0x00,0x00,0x9D,0x5A,0x00, +0x01,0x04,0x48,0x00,0x00,0x9A,0x45,0xC7,0x21,0x00,0x46,0x0F,0xFF,0x0F,0x05,0xEE, +0x00,0x00,0x96,0x5F,0x50,0x00,0x0F,0xFF,0x40,0x10,0xC0,0x08,0x40,0x0F,0x00,0x02, +0xFE,0x0F,0xB6,0x1C,0xC4,0x0C,0x44,0x07,0x21,0x04,0x40,0x21,0x30,0x08,0xB4,0x20, +0x92,0x4C,0x92,0x34,0x40,0x10,0xD0,0x08,0xFE,0x8F,0xB6,0x40,0xC5,0x0C,0x44,0x07, +0x21,0x0C,0x40,0x31,0xB0,0x08,0xB4,0x20,0x92,0x6C,0x92,0x34,0x40,0x10,0xD0,0x08, +0xFE,0xCF,0xB6,0x60,0x44,0x27,0x21,0x14,0xF0,0x08,0xB4,0x22,0x40,0x00,0x30,0x08, +0x92,0x34,0x40,0x10,0xD0,0x08,0x92,0x0C,0xFE,0x0F,0xB6,0x02,0x44,0x27,0x21,0x08, +0x54,0x17,0x80,0xFF,0xB4,0x02,0x54,0x35,0x00,0xFF,0x92,0x08,0x40,0x00,0x20,0x08, +0xFE,0x0F,0x44,0x17,0x21,0x10,0xB6,0x02,0x54,0x04,0x00,0xFF,0xB5,0x01,0x97,0xCF, +0x93,0x08,0x40,0x84,0x20,0x08,0x40,0x84,0x00,0x04,0x44,0x07,0x21,0x18,0xB7,0x01, +0xB5,0x40,0x97,0x8F,0x93,0x48,0x40,0xA5,0x20,0x08,0x40,0xA5,0x0C,0x04,0xB7,0x40, +0x54,0x34,0x80,0x03,0x46,0xAF,0xCF,0xFF,0xB5,0x22,0x50,0xA5,0x0F,0xFF,0x40,0x31, +0xE0,0x08,0x40,0x94,0xA8,0x02,0x40,0x94,0x8C,0x04,0xB7,0x22,0x40,0x33,0xE0,0x08, +0xB4,0xE1,0x40,0x42,0x7C,0x08,0x40,0x73,0xA8,0x02,0xFF,0xDF,0xB6,0xE1,0x40,0x33, +0x60,0x08,0xB4,0xC0,0x44,0x77,0x21,0x1C,0x40,0x63,0x28,0x02,0xFF,0x9F,0xF3,0x10, +0xB6,0xC0,0x40,0x31,0xBC,0x08,0x40,0x61,0xBC,0x09,0xB4,0x67,0x40,0x52,0xFC,0x08, +0x92,0x71,0x40,0x31,0xC4,0x08,0xFE,0xF7,0xB6,0x67,0xB4,0x62,0x94,0xD9,0x92,0x61, +0xFF,0x1F,0xB6,0x82,0xB4,0x41,0x94,0x91,0x92,0x41,0xFF,0x57,0xB6,0xA1,0xF1,0x09, +0x40,0x20,0xFC,0x08,0xB4,0x20,0x94,0x49,0x92,0x21,0xFE,0x57,0xB6,0x20,0x84,0x20, +0x44,0x07,0x21,0x20,0xB6,0x20,0xFC,0xC0,0xFC,0x00,0x84,0x00,0x49,0xFF,0xB0,0xB7, +0x49,0x00,0x12,0xE9,0xE6,0x03,0xE8,0x09,0x44,0x16,0x00,0x00,0xB4,0x01,0x58,0x00, +0x01,0x00,0xB6,0x01,0x48,0x00,0x00,0x84,0x44,0x14,0x80,0x04,0x44,0x01,0x00,0x00, +0xB6,0x01,0x44,0x14,0x80,0x84,0xB4,0x41,0xFE,0x17,0xB6,0x01,0x44,0x16,0x00,0x30, +0xB4,0x01,0x58,0x00,0x01,0x00,0xB6,0x01,0x44,0x07,0x21,0x00,0x46,0x10,0x20,0x00, +0xB4,0x40,0xFE,0x57,0xB6,0x20,0xB4,0x40,0x44,0x37,0x21,0x00,0x92,0x59,0x96,0x86, +0xCA,0xFB,0xB4,0x23,0x46,0x0F,0xFF,0x0F,0x50,0x00,0x0F,0xFF,0xFE,0x0E,0x44,0x16, +0x00,0x00,0xFE,0x0F,0xB6,0x03,0x44,0x37,0x21,0x04,0x44,0x02,0x17,0x69,0x40,0x00, +0x30,0x08,0x40,0x10,0x30,0x09,0xB4,0x03,0x44,0x47,0x21,0x10,0x92,0x14,0x40,0x00, +0x50,0x08,0xFE,0x0F,0xB6,0x03,0x44,0x37,0x21,0x14,0x44,0x16,0x00,0x34,0xB4,0x03, +0x46,0x68,0x00,0x00,0x92,0x14,0x40,0x00,0x50,0x08,0xFE,0x0F,0xB6,0x03,0x44,0x37, +0x21,0x08,0x44,0x17,0x21,0x18,0xB4,0x03,0x92,0x08,0x40,0x00,0x20,0x08,0x58,0x00, +0x00,0x01,0xB6,0x03,0xB4,0x04,0x92,0x08,0x40,0x00,0x20,0x08,0xB6,0x04,0xB4,0x01, +0x92,0x08,0x40,0x00,0x20,0x08,0xB6,0x01,0xB4,0xA3,0x46,0x0F,0xCF,0xFF,0x50,0x00, +0x0F,0xFF,0xFF,0x46,0xB6,0xA3,0xB4,0xA4,0xFF,0x46,0xB6,0xA4,0xB4,0xA1,0xFE,0x2E, +0x44,0x57,0x21,0x1C,0xB6,0x01,0xB4,0x05,0x92,0x11,0x40,0x00,0x44,0x08,0x58,0x00, +0x05,0x77,0xB6,0x05,0xB4,0x03,0xFE,0x37,0xB6,0x03,0xB4,0x04,0x94,0x01,0x92,0x01, +0xB6,0x04,0xB4,0x01,0xFF,0x87,0x44,0x07,0x21,0x20,0xB6,0xC1,0xB6,0x40,0xB4,0x25, +0x46,0x0F,0x0F,0xFF,0x50,0x00,0x0F,0xFF,0xFE,0x0E,0xB6,0x05,0x44,0x00,0x00,0x79, +0x3E,0x07,0xF3,0x01,0x44,0x0F,0xFF,0x84,0x3E,0x07,0xF3,0x02,0x84,0x19,0x3E,0x07, +0xF3,0x03,0xFC,0x80,0x84,0x20,0x84,0x40,0x3C,0x1B,0xF9,0x7D,0x44,0x42,0x17,0x68, +0x80,0x22,0x96,0xD1,0xE2,0x60,0xE8,0x06,0x38,0x32,0x08,0x00,0x8C,0x41,0x88,0x23, +0xD5,0xF9,0xFC,0x00,0x44,0x22,0x17,0x68,0xFE,0x4A,0x96,0x48,0x38,0x11,0x00,0x08, +0x8C,0x01,0x96,0x01,0x49,0xFF,0xEB,0xEF,0x2E,0x07,0xF3,0x00,0x49,0xFF,0xEB,0xD6, +0x49,0x00,0x12,0x31,0xE6,0x03,0xE9,0x03,0x49,0xFF,0xEA,0x6D,0xFC,0x80,0xFC,0x01, +0x84,0x00,0x3E,0x07,0xF9,0x09,0x84,0x01,0x3E,0x07,0xDF,0x9C,0x84,0x20,0x44,0x00, +0x01,0x00,0x49,0xFF,0xA6,0xA7,0x44,0x00,0x01,0x00,0x84,0x20,0x49,0xFF,0xA6,0xB1, +0x44,0x00,0x01,0x00,0x84,0x20,0x49,0xFF,0xA6,0xBB,0x44,0x40,0x05,0x78,0xB6,0x9F, +0x44,0x12,0x17,0x68,0x44,0x22,0x17,0x64,0x44,0x32,0x17,0x62,0x44,0x50,0x00,0x90, +0x44,0x02,0x1C,0xE0,0x49,0xFF,0xEB,0xAE,0x44,0x00,0xBF,0x06,0x49,0xFF,0xEB,0xC4, +0x44,0x00,0xB8,0x86,0x49,0xFF,0xEB,0xC3,0x84,0x00,0x49,0xFF,0xA6,0xBD,0x84,0x00, +0x3C,0x0B,0xF9,0x7E,0x44,0x00,0x05,0x77,0x49,0xFF,0xFF,0xA6,0x49,0xFF,0xFF,0x06, +0xFC,0x81,0xFC,0x00,0xC8,0x03,0xFA,0x1A,0xD5,0x03,0x44,0x00,0x05,0x1B,0x49,0xFF, +0xFF,0x9B,0xFC,0x80,0xFC,0x00,0x84,0x07,0x49,0xFF,0xFF,0x96,0xFC,0x80,0xFC,0x00, +0x44,0x00,0x00,0xA9,0x49,0xFF,0xFF,0x90,0xFC,0x80,0xFC,0x00,0x44,0x00,0x01,0x00, +0x84,0x21,0x49,0xFF,0xA6,0x7D,0x84,0x00,0x3C,0x0F,0xFC,0xBD,0x3C,0x0D,0xFC,0xBD, +0x5C,0xF0,0x00,0x64,0xE8,0x05,0x3C,0x0D,0xFC,0xBD,0x8C,0x01,0xD5,0xF6,0x44,0x00, +0x01,0x00,0x84,0x20,0x49,0xFF,0xA6,0x6C,0xFC,0x80,0x2E,0x07,0xF9,0x09,0xDD,0x9E, +0x2E,0x07,0xDF,0x9C,0xDD,0x9E,0xFC,0x00,0x44,0x10,0x00,0xFF,0x80,0xC0,0x44,0x20, +0x05,0x78,0x44,0x02,0x17,0x68,0x49,0x00,0x19,0x83,0xCE,0x06,0x44,0x00,0x00,0x5A, +0x3E,0x07,0xF3,0x00,0xFC,0x80,0x44,0x0F,0xFF,0xA7,0x3E,0x07,0xF3,0x00,0x84,0x05, +0x3E,0x07,0xF3,0x01,0xFA,0x0C,0x3E,0x07,0xF3,0x02,0xFA,0x10,0x3E,0x07,0xF3,0x03, +0x84,0x1F,0x3E,0x07,0xF3,0x04,0xFC,0x80,0xFC,0x40,0x84,0x85,0x8C,0x24,0x84,0xA1, +0x44,0x32,0x17,0x68,0x84,0xD0,0xA6,0x8C,0x04,0x90,0xFF,0xFF,0x5A,0x28,0x01,0x2D, +0x22,0x70,0x80,0x01,0x22,0x20,0x80,0x00,0x90,0xE8,0x90,0x44,0x97,0xDF,0xFE,0xB6, +0xFE,0xBF,0x96,0x90,0xC8,0x17,0x38,0x21,0x94,0x08,0x9C,0xA9,0xA7,0xC8,0x38,0x71, +0x88,0x08,0x9C,0xAA,0xA7,0xCA,0x38,0x71,0x88,0x08,0x40,0x24,0x94,0x0A,0x5E,0xF1, +0x01,0x00,0x9D,0xEB,0xE9,0x03,0x44,0x20,0x00,0xFF,0x96,0x90,0x38,0x21,0x9C,0x08, +0xD5,0x0B,0x38,0x21,0x90,0x08,0x9C,0xA1,0xA7,0xC8,0x38,0x71,0x88,0x08,0x9C,0xA2, +0xA7,0xCA,0x38,0x71,0x88,0x08,0x8C,0x83,0x8C,0x2C,0x8C,0xA4,0x5A,0x48,0x23,0xCD, +0xFC,0xC0,0xFA,0xB3,0x44,0x22,0x17,0x68,0x44,0x30,0x04,0xA3,0x80,0x80,0x0A,0x10, +0x00,0x01,0x92,0x28,0x38,0x11,0x14,0x08,0x9C,0x69,0xA7,0x20,0x8C,0xA2,0x38,0x41, +0x04,0x08,0xDB,0xF5,0xDD,0x9E,0x44,0x50,0x04,0xA3,0x44,0x22,0x17,0x68,0x44,0x30, +0x05,0x07,0x80,0x80,0x0A,0x10,0x00,0x01,0x92,0x28,0x38,0x11,0x14,0x08,0x9C,0x69, +0xA7,0x20,0x8C,0xA2,0x38,0x41,0x04,0x08,0xDB,0xF5,0xDD,0x9E,0xC8,0x03,0x3E,0x17, +0xF3,0x29,0xDD,0x9E,0xFC,0x00,0x49,0xFF,0xEA,0xF4,0xFC,0x80,0xFC,0x00,0x49,0xFF, +0xEA,0xED,0xFC,0x80,0xFC,0x00,0x49,0x00,0x08,0xA1,0x2E,0x57,0xF9,0x08,0xCD,0x18, +0x84,0x32,0x3E,0x17,0xF3,0x00,0x44,0x22,0x17,0x68,0x44,0x30,0x04,0x80,0x80,0x80, +0x2A,0x10,0x00,0x01,0x9D,0xA9,0x90,0x28,0x96,0x48,0x38,0x11,0x18,0x08,0x8C,0xA2, +0xA6,0x60,0x38,0x11,0x14,0x08,0xDB,0xF4,0x44,0x00,0x04,0x81,0xD5,0x12,0x5A,0x58, +0x01,0x13,0x84,0x12,0x3E,0x07,0xF3,0x00,0x44,0x12,0x17,0x68,0x80,0x05,0x84,0x40, +0x9C,0xC1,0x38,0x20,0x80,0x08,0x8C,0x02,0x38,0x20,0x8C,0x08,0x5A,0x08,0x65,0xFA, +0x49,0xFF,0xFE,0xB2,0xFC,0x80,0xFC,0x41,0x3C,0x23,0xF9,0x7E,0x2E,0x17,0xF8,0x78, +0x96,0x91,0x96,0x48,0x44,0x32,0x1C,0xE0,0x5A,0x18,0x35,0x04,0x48,0x00,0x01,0x00, +0x5A,0x18,0x30,0x04,0x48,0x00,0x03,0xF7,0x5A,0x18,0x33,0x04,0x48,0x00,0x03,0xF3, +0x5A,0x18,0x31,0x04,0x48,0x00,0x03,0xF3,0x5A,0x18,0x34,0x04,0x48,0x00,0x03,0xEF, +0x5A,0x18,0x32,0x04,0x48,0x00,0x03,0xEF,0x84,0x00,0x5A,0x20,0x03,0x04,0x48,0x00, +0x00,0xEC,0x5A,0x18,0x53,0x0F,0x2E,0x07,0xF8,0x79,0x2E,0x17,0xF8,0x7A,0x40,0x00, +0x20,0x08,0xFE,0x0F,0x5A,0x08,0x48,0x04,0x48,0x00,0x01,0xBC,0x48,0x00,0x03,0xDF, +0x5A,0x10,0x01,0x04,0x48,0x00,0x03,0xDB,0x2E,0x07,0xF8,0x79,0x5A,0x08,0x01,0x0E, +0x2E,0x17,0xF8,0x7A,0x84,0x00,0x5A,0x18,0x01,0x05,0x3C,0x0F,0xFE,0x44,0x84,0x06, +0x2E,0x17,0xF8,0x7A,0x48,0x00,0x01,0x40,0x2E,0x07,0xF8,0x79,0x5A,0x08,0x02,0x14, +0x2E,0x07,0xF8,0x7A,0x5A,0x08,0x03,0x04,0x48,0x00,0x02,0x1A,0x2E,0x07,0xF8,0x7A, +0x4E,0x02,0x02,0x0F,0x2E,0x07,0xF8,0x7A,0x5A,0x00,0x01,0x04,0x48,0x00,0x03,0xB7, +0x48,0x00,0x02,0x00,0x2E,0x07,0xF8,0x79,0x5A,0x08,0x03,0x0E,0x2E,0x07,0xF8,0x7A, +0x4E,0x02,0x03,0xAD,0x2E,0x07,0xF8,0x7A,0x5A,0x00,0x01,0x04,0x48,0x00,0x00,0x7F, +0x48,0x00,0x03,0xA5,0x2E,0x07,0xF8,0x79,0x5A,0x08,0x04,0x12,0x2E,0x07,0xF8,0x7A, +0x4E,0x02,0x03,0x9D,0x2E,0x07,0xF8,0x7A,0x5A,0x08,0x01,0x04,0x48,0x00,0x03,0x97, +0x2E,0x07,0xF8,0x7A,0x5A,0x08,0x10,0x6B,0x48,0x00,0x03,0x91,0x2E,0x07,0xF8,0x79, +0x5A,0x08,0x05,0x04,0x48,0x00,0x03,0x8B,0x2E,0x07,0xF8,0x79,0x5A,0x08,0x06,0x12, +0x2E,0x07,0xF8,0x7A,0x96,0x00,0x5A,0x08,0x01,0x04,0x3C,0x0F,0xFC,0x30,0x2E,0x07, +0xF8,0x7A,0x96,0x00,0x4E,0x03,0x03,0x7B,0x3C,0x0F,0xFC,0x30,0x48,0x00,0x03,0x77, +0x2E,0x07,0xF8,0x79,0x5A,0x08,0x07,0x12,0x2E,0x07,0xF8,0x7A,0x96,0x00,0x5A,0x08, +0x01,0x04,0x3C,0x0F,0xF7,0xA2,0x2E,0x07,0xF8,0x7A,0x96,0x00,0x4E,0x03,0x03,0x67, +0x3C,0x0F,0xF7,0xA2,0x48,0x00,0x03,0x63,0x2E,0x07,0xF8,0x79,0x5A,0x08,0x08,0x07, +0x2E,0x07,0xF8,0x7A,0x4E,0x02,0x03,0x5B,0xD5,0x31,0x2E,0x07,0xF8,0x79,0x5A,0x08, +0x09,0x04,0x48,0x00,0x03,0x54,0x2E,0x07,0xF8,0x79,0x5A,0x08,0x0A,0x14,0x2E,0x07, +0xF8,0x7A,0x4E,0x02,0x01,0xAC,0x2E,0x07,0xF8,0x7A,0x5A,0x08,0x01,0x04,0x48,0x00, +0x01,0xAC,0x2E,0x07,0xF8,0x7A,0x5A,0x00,0x02,0x04,0x48,0x00,0x03,0x40,0x48,0x00, +0x01,0xAD,0x2E,0x07,0xF8,0x79,0x5A,0x08,0x0B,0x04,0x48,0x00,0x03,0x38,0x2E,0x07, +0xF8,0x79,0x5A,0x00,0x0C,0x0A,0x2E,0x07,0xF8,0x79,0x5A,0x00,0x0F,0x06,0x2E,0x07, +0xF8,0x79,0x5A,0x08,0x10,0x08,0x2E,0x07,0xF8,0x7A,0x2E,0x07,0xF8,0x7A,0x48,0x00, +0x03,0x26,0x2E,0x07,0xF8,0x79,0x5A,0x00,0x11,0x04,0x48,0x00,0x03,0x20,0x2E,0x07, +0xF8,0x7A,0xC8,0x07,0x3C,0x0D,0xFB,0x37,0x58,0x00,0x00,0x08,0x3C,0x0F,0xFB,0x37, +0x2E,0x07,0xF8,0x7A,0x5A,0x00,0x01,0x04,0x48,0x00,0x03,0x11,0x3C,0x1D,0xFB,0x37, +0x84,0x17,0xFE,0x0E,0x3C,0x0F,0xFB,0x37,0x48,0x00,0x03,0x09,0x80,0x01,0x5A,0x28, +0x03,0x04,0x48,0x00,0x01,0x28,0x5A,0x28,0x01,0x28,0x5A,0x18,0x01,0x04,0x48,0x00, +0x00,0xF4,0x5A,0x18,0x03,0x04,0x48,0x00,0x01,0x20,0x5A,0x18,0x20,0x04,0x48,0x00, +0x01,0x81,0x5A,0x18,0x28,0x04,0x48,0x00,0x01,0xDE,0x5A,0x18,0x21,0x04,0x48,0x00, +0x01,0xA0,0x5A,0x18,0x22,0x04,0x48,0x00,0x01,0xB8,0x5A,0x18,0x23,0x04,0x48,0x00, +0x01,0xC5,0x5A,0x18,0xF3,0x04,0x48,0x00,0x01,0xFD,0x5A,0x10,0xFE,0x04,0x48,0x00, +0x00,0xB7,0x48,0x00,0x02,0xB5,0x5A,0x20,0x02,0x04,0x48,0x00,0x00,0xB1,0x5A,0x18, +0x02,0x14,0x2E,0x17,0xF8,0x79,0x5A,0x18,0x03,0x04,0x48,0x00,0x01,0x29,0x2E,0x17, +0xF8,0x79,0x4E,0x12,0x01,0x1E,0x2E,0x17,0xF8,0x79,0x5A,0x10,0x01,0x04,0x48,0x00, +0x00,0x9F,0x48,0x00,0x01,0x0F,0x5A,0x18,0xF0,0x1D,0x2E,0x17,0xF8,0x79,0x4E,0x12, +0x00,0xF0,0x2E,0x17,0xF8,0x79,0x5A,0x18,0x01,0x04,0x48,0x00,0x01,0x2E,0x2E,0x17, +0xF8,0x79,0x5A,0x18,0x02,0x04,0x48,0x00,0x00,0xE8,0x2E,0x17,0xF8,0x79,0x5A,0x10, +0xFA,0x04,0x48,0x00,0x00,0x85,0x84,0x21,0x3E,0x17,0xF2,0xF8,0x48,0x00,0x00,0x80, +0x5A,0x18,0xFA,0x0E,0x2E,0x17,0xF8,0x79,0x5A,0x18,0x03,0x04,0x48,0x00,0x01,0x1F, +0x2E,0x17,0xF8,0x79,0x5A,0x18,0x08,0x74,0x48,0x00,0x01,0x1D,0x5A,0x18,0x01,0x14, +0x2E,0x17,0xF8,0x79,0x5A,0x18,0x01,0x06,0x84,0x00,0x3C,0x0F,0xFE,0x44,0x84,0x06, +0x2E,0x17,0xF8,0x79,0xC9,0x64,0x84,0x01,0x3C,0x0F,0xFE,0x44,0x49,0xFF,0xAC,0xFB, +0x48,0x00,0x00,0xC9,0x5A,0x18,0x0A,0x12,0x2E,0x17,0xF8,0x79,0x4E,0x12,0x00,0xDF, +0x2E,0x17,0xF8,0x79,0x5A,0x18,0x01,0x04,0x48,0x00,0x00,0xDF,0x2E,0x17,0xF8,0x79, +0x5A,0x18,0x02,0x4E,0x48,0x00,0x00,0xE2,0x5A,0x18,0x06,0x10,0x2E,0x17,0xF8,0x79, +0x96,0x48,0x5A,0x18,0x01,0x04,0x3C,0x1F,0xFC,0x30,0x2E,0x17,0xF8,0x79,0x96,0x48, +0xC9,0x3E,0x3C,0x1F,0xFC,0x30,0xD5,0x3B,0x5A,0x18,0x07,0x0F,0x2E,0x17,0xF8,0x79, +0x5A,0x18,0x01,0x04,0x3C,0x1F,0xF7,0xA2,0x2E,0x17,0xF8,0x79,0x96,0x48,0xC9,0x2F, +0x3C,0x1F,0xF7,0xA2,0xD5,0x2C,0x5A,0x10,0x0D,0x2B,0x5A,0x18,0x60,0x0E,0x2E,0x17, +0xF8,0x79,0x5A,0x18,0x02,0x04,0x48,0x00,0x02,0x4A,0x2E,0x17,0xF8,0x79,0x5A,0x18, +0x01,0x1F,0x48,0x00,0x02,0x44,0x5A,0x18,0xF6,0x08,0x2E,0x17,0xF8,0x79,0x5A,0x18, +0xF2,0x17,0x48,0x00,0x01,0x6A,0x5A,0x18,0x61,0x13,0x2E,0x17,0xF8,0x79,0x96,0x48, +0xC1,0x08,0x2E,0x17,0xF8,0x79,0x96,0x48,0x5A,0x10,0x01,0x04,0x48,0x00,0x02,0x2F, +0x44,0x00,0x01,0x00,0x49,0xFF,0xA3,0xBC,0x48,0x00,0x02,0x29,0x5A,0x08,0x01,0x1B, +0x44,0x0F,0xFF,0xA7,0x3E,0x07,0xF3,0x00,0x84,0x05,0x3E,0x07,0xF3,0x01,0xFA,0x0C, +0x3E,0x07,0xF3,0x02,0xFA,0x22,0xFA,0x10,0x3E,0x07,0xF3,0x03,0x3E,0x07,0xF3,0x04, +0x3E,0x17,0xF3,0x05,0x3E,0x07,0xF3,0x06,0x3E,0x17,0xF3,0x07,0x84,0x08,0x48,0x00, +0x01,0xFD,0x5A,0x08,0x02,0x30,0x2E,0x07,0xF9,0x09,0x44,0x1F,0xFF,0x81,0x3E,0x17, +0xF3,0x00,0x3E,0x07,0xF3,0x01,0xC8,0x0D,0x44,0x10,0x00,0x5A,0x3E,0x17,0xF3,0x02, +0x3E,0x07,0xF3,0x03,0xFA,0x1B,0x3E,0x07,0xF3,0x04,0x84,0x05,0x48,0x00,0x01,0xE6, +0x44,0x0F,0xFF,0xA7,0x3E,0x07,0xF3,0x02,0x84,0x05,0x3E,0x07,0xF3,0x03,0xFA,0x0C, +0x3E,0x07,0xF3,0x04,0xFA,0x22,0xFA,0x10,0x3E,0x07,0xF3,0x05,0x3E,0x17,0xF3,0x06, +0x3E,0x07,0xF3,0x07,0x3E,0x17,0xF3,0x08,0x3E,0x07,0xF3,0x09,0x84,0x0A,0x48,0x00, +0x01,0xCD,0x5A,0x08,0x05,0x0C,0x84,0x20,0x84,0x01,0x3E,0x07,0xF3,0x00,0x3E,0x17, +0xF3,0x01,0x3E,0x17,0xF3,0x02,0x48,0x00,0x00,0xAA,0x5A,0x08,0x03,0x04,0x84,0x00, +0xD5,0x04,0x5A,0x08,0x04,0x07,0x84,0x02,0x3E,0x07,0xF9,0x09,0x48,0x00,0x01,0xC7, +0x5A,0x08,0x06,0x07,0x84,0x01,0x3E,0x07,0xF2,0xED,0x48,0x00,0x01,0xC0,0x5A,0x08, +0x07,0x07,0x84,0x01,0x3E,0x07,0xF2,0xEC,0x48,0x00,0x01,0xB9,0x5A,0x08,0x08,0x07, +0x84,0x01,0x3E,0x07,0xF2,0xEB,0x48,0x00,0x01,0xB2,0x5A,0x08,0x09,0x07,0x84,0x01, +0x3E,0x07,0xF2,0xEA,0x48,0x00,0x01,0xAB,0x5A,0x08,0x0A,0x07,0x84,0x01,0x3E,0x07, +0xF2,0xE9,0x48,0x00,0x01,0xA4,0x5A,0x08,0x0B,0x06,0x84,0x01,0x3E,0x07,0xF2,0xE7, +0xD5,0x0F,0x5A,0x08,0x0C,0x09,0x84,0x01,0x3E,0x07,0xF2,0xE8,0x3E,0x07,0xF2,0xE6, +0x48,0x00,0x01,0x95,0x5A,0x08,0x0D,0x07,0x84,0x01,0x3E,0x07,0xF2,0xE8,0x84,0x00, +0xD5,0xF6,0x5A,0x08,0x14,0x0A,0x84,0x01,0x3E,0x07,0xF9,0x09,0x84,0x01,0x49,0xFF, +0xE5,0x92,0x48,0x00,0x01,0x84,0x5A,0x08,0x29,0x04,0x84,0x01,0xD5,0x04,0x5A,0x08, +0x2A,0x07,0x84,0x02,0x3E,0x07,0xDF,0x9C,0x48,0x00,0x01,0x79,0x5A,0x08,0x22,0x27, +0x84,0x00,0xFA,0x30,0x84,0x7F,0x84,0x47,0x3E,0x17,0xF3,0x00,0x3E,0x07,0xF3,0x01, +0x3E,0x07,0xF3,0x02,0x3E,0x37,0xF3,0x03,0x3E,0x27,0xF3,0x04,0x3E,0x37,0xF3,0x05, +0x3E,0x27,0xF3,0x06,0x84,0x6A,0xFA,0x42,0x3E,0x27,0xF3,0x07,0x3E,0x17,0xF3,0x08, +0x3E,0x37,0xF3,0x09,0x3E,0x07,0xF3,0x0A,0x3E,0x27,0xF3,0x0B,0x3E,0x17,0xF3,0x0C, +0x3E,0x07,0xF3,0x0D,0x84,0x0E,0x48,0x00,0x01,0x41,0x5A,0x08,0x23,0x1C,0xFA,0x11, +0x3E,0x07,0xF3,0x00,0x44,0x20,0x00,0x69,0x84,0x00,0x84,0x26,0x3E,0x07,0xF3,0x01, +0x3E,0x27,0xF3,0x02,0x3E,0x17,0xF3,0x03,0x3E,0x07,0xF3,0x04,0x3E,0x07,0xF3,0x05, +0x3E,0x27,0xF3,0x06,0x3E,0x17,0xF3,0x07,0x3E,0x07,0xF3,0x08,0x84,0x09,0x48,0x00, +0x01,0x25,0x5A,0x08,0x24,0x11,0xFA,0x12,0x3E,0x07,0xF3,0x00,0x84,0x05,0x3E,0x07, +0xF3,0x01,0x84,0x04,0x3E,0x07,0xF3,0x02,0x84,0x00,0x3E,0x07,0xF3,0x03,0x84,0x04, +0x48,0x00,0x01,0x14,0x5A,0x08,0x25,0x0D,0xFA,0x13,0x3E,0x07,0xF3,0x00,0x84,0x01, +0x3E,0x07,0xF3,0x01,0x84,0x00,0x3E,0x07,0xF3,0x02,0x84,0x05,0xD5,0xEF,0x5A,0x08, +0x26,0x2F,0xFA,0x18,0x3E,0x07,0xF3,0x00,0x84,0x46,0x84,0x00,0x84,0x2C,0x84,0x62, +0x3E,0x37,0xF3,0x01,0x3E,0x07,0xF3,0x02,0x3E,0x27,0xF3,0x03,0x3E,0x17,0xF3,0x04, +0x3E,0x37,0xF3,0x05,0x3E,0x07,0xF3,0x06,0x3E,0x27,0xF3,0x07,0x3E,0x17,0xF3,0x08, +0x84,0x44,0x84,0x21,0x3E,0x17,0xF3,0x09,0x3E,0x07,0xF3,0x0A,0x3E,0x27,0xF3,0x0B, +0x3E,0x07,0xF3,0x0C,0x3E,0x17,0xF3,0x0D,0x84,0x23,0x3E,0x07,0xF3,0x0E,0x3E,0x17, +0xF3,0x0F,0x3E,0x07,0xF3,0x10,0xFA,0x01,0x48,0x00,0x00,0xD8,0x5A,0x08,0x27,0x13, +0x49,0xFF,0xE4,0xEE,0x5A,0x08,0x01,0x05,0x44,0x00,0x00,0x40,0xD5,0x06,0x49,0xFF, +0xE4,0xE7,0xC8,0x05,0x44,0x00,0x00,0x41,0x3E,0x07,0xF3,0x00,0x84,0x01,0x48,0x00, +0x00,0xC5,0x5A,0x08,0x2D,0x06,0x49,0xFF,0xFC,0x8F,0x48,0x00,0x00,0xD0,0x5A,0x08, +0x32,0x35,0x2E,0x67,0xF8,0x79,0x2E,0x57,0xF8,0x7B,0x2E,0x07,0xF8,0x7A,0x40,0x52, +0xA0,0x08,0x2E,0x47,0xF8,0x7D,0x2E,0x27,0xF8,0x7C,0xFF,0x47,0x84,0x26,0x97,0xB0, +0x97,0x20,0x96,0x90,0x84,0x00,0x99,0xE9,0xE0,0xE1,0xE9,0x08,0x8C,0x21,0x38,0x91, +0x84,0x00,0x96,0x49,0x88,0x09,0x96,0x00,0xD5,0xF8,0x4E,0x03,0x00,0xB0,0x5A,0x60, +0x02,0x04,0x48,0x00,0x00,0xAC,0x40,0x42,0x20,0x08,0xFE,0xA7,0x44,0x12,0x10,0x00, +0x88,0x41,0x96,0x41,0xE2,0x25,0x4E,0xF2,0x00,0xA2,0x9C,0x47,0x38,0x11,0x84,0x00, +0x38,0x11,0x00,0x08,0x8C,0x01,0xD5,0xF6,0x5A,0x08,0x33,0x28,0x2E,0x07,0xF8,0x7A, +0x2E,0x17,0xF8,0x79,0x40,0x00,0x20,0x08,0x2E,0x27,0xF8,0x7C,0xFE,0x0F,0x2E,0x17, +0xF8,0x7B,0x40,0x21,0x20,0x08,0xFE,0x8F,0x2E,0x17,0xF8,0x78,0x44,0x32,0x10,0x00, +0x96,0x48,0x3E,0x17,0xF3,0x00,0x88,0x43,0x84,0x20,0x44,0x42,0x17,0x68,0x96,0xC9, +0xE2,0x60,0xE8,0x08,0x9C,0xC9,0x38,0x11,0x04,0x00,0x38,0x12,0x0C,0x08,0x80,0x23, +0xD5,0xF7,0x8C,0x01,0x96,0x01,0xD5,0x61,0x5A,0x08,0x34,0x2C,0x2E,0x07,0xF8,0x79, +0x5A,0x08,0x5A,0x6D,0x2E,0x07,0xF8,0x7A,0x5A,0x08,0xA5,0x69,0xFA,0x00,0x49,0xFF, +0xDD,0xD3,0x44,0x11,0x00,0x00,0x44,0x20,0x01,0x00,0x44,0x02,0x10,0x00,0x49,0xFF, +0xDD,0xF4,0x49,0xFF,0xDE,0x6E,0x40,0x10,0x60,0x09,0x10,0x1F,0x80,0x04,0x40,0x10, +0x40,0x09,0x10,0x1F,0x80,0x05,0x40,0x10,0x20,0x09,0x10,0x1F,0x80,0x06,0x10,0x0F, +0x80,0x07,0x44,0x11,0x0F,0xFC,0xB0,0x01,0x84,0x44,0x49,0xFF,0xDD,0xDE,0xD5,0x46, +0x5A,0x08,0x35,0x1C,0x2E,0x17,0xF8,0x79,0x5A,0x18,0x01,0x0F,0x2E,0x07,0xF8,0x7A, +0x96,0x00,0x5A,0x00,0x01,0x06,0x5A,0x08,0x02,0x3A,0x84,0x04,0xD5,0x02,0x84,0x02, +0x3E,0x07,0xDE,0xCD,0xD5,0x33,0x3E,0x07,0xF3,0x00,0x2E,0x07,0xDE,0xCD,0x96,0x00, +0x3E,0x07,0xF3,0x01,0x84,0x02,0xD5,0x19,0x5A,0x08,0x28,0x29,0x84,0x1E,0x3E,0x07, +0xF3,0x00,0x84,0x01,0x3E,0x07,0xF3,0x01,0x84,0x02,0x3E,0x07,0xF3,0x02,0x84,0x03, +0x3E,0x07,0xF3,0x03,0x84,0x04,0x3E,0x07,0xF3,0x04,0x84,0x05,0x3E,0x07,0xF3,0x05, +0x84,0x06,0x3E,0x07,0xF3,0x06,0x84,0x07,0x49,0xFF,0xFA,0xAE,0x49,0xFF,0xE6,0x2A, +0xD5,0x0D,0x44,0x00,0x00,0x32,0x48,0xFF,0xFD,0x04,0x44,0x00,0x00,0x33,0x48,0xFF, +0xFD,0x00,0x44,0x00,0x00,0x34,0x48,0xFF,0xFC,0xFC,0xFC,0xC1,0xFC,0x00,0x44,0x04, +0x10,0x04,0x44,0x10,0x00,0x55,0xAE,0x40,0x44,0x1F,0xFF,0xAA,0xAE,0x41,0x44,0x10, +0x00,0x66,0xAE,0x42,0x84,0x01,0x49,0xFF,0xA9,0x6E,0xFC,0x80,0x44,0x14,0x10,0x08, +0xB6,0x01,0x44,0x14,0x80,0x04,0xA6,0x0B,0x92,0x01,0x96,0x06,0xC0,0xFD,0x44,0x04, +0x80,0x07,0x84,0x22,0xAE,0x40,0xDD,0x9E,0xFC,0x40,0x44,0x37,0x20,0xC0,0x46,0x10, +0x20,0x00,0xB4,0x43,0x44,0x47,0x20,0xC4,0xFE,0x57,0xB6,0x23,0xB4,0x24,0x44,0x24, +0x10,0x10,0x92,0x34,0x40,0x10,0xD0,0x08,0xFE,0x57,0xB6,0x24,0x44,0x17,0x20,0xC8, +0x40,0x00,0x30,0x08,0xB4,0x41,0x84,0xC1,0x92,0x48,0x40,0x21,0x20,0x08,0xB6,0x41, +0xB4,0x81,0x46,0x2F,0xCF,0xFF,0x50,0x21,0x0F,0xFF,0xFF,0x16,0xB6,0x81,0xB4,0xA1, +0x46,0x48,0x00,0x00,0xFF,0x67,0xB6,0xA1,0x44,0x57,0x20,0xD0,0x44,0x70,0xA0,0x00, +0xB4,0x25,0x44,0x94,0x10,0x00,0x94,0x49,0x92,0x21,0xB6,0x25,0x44,0x57,0x20,0xD4, +0x40,0x10,0x30,0x09,0xB4,0x05,0x92,0x14,0x40,0x00,0x50,0x08,0xFE,0x0F,0xB6,0x05, +0x44,0x07,0x20,0xD8,0xB4,0x20,0x92,0x28,0x40,0x10,0xA0,0x08,0xFE,0x77,0xB6,0x20, +0xB4,0x20,0xFE,0x8E,0xB6,0x40,0xB4,0x20,0x44,0x27,0x20,0xDC,0xFF,0x0F,0xB6,0x80, +0xB4,0x22,0x46,0x0F,0x0F,0xFF,0x92,0x31,0x40,0x10,0xC4,0x08,0xFE,0x7F,0xB6,0x22, +0xB4,0x22,0x50,0x00,0x0F,0xFF,0xFE,0x0E,0x44,0x14,0x80,0x84,0xB6,0x02,0xB4,0x41, +0x44,0x0D,0xFF,0xFF,0xFE,0x16,0xB6,0x01,0xB4,0x23,0x46,0x0F,0xFF,0x0F,0x50,0x00, +0x0F,0xFF,0xFE,0x0E,0x44,0x11,0x00,0x00,0xFE,0x0F,0xB6,0x03,0x84,0x00,0x10,0x64, +0x80,0x02,0x10,0x04,0x80,0x00,0x49,0xFF,0xFF,0x73,0x84,0x0B,0x49,0xFF,0xFF,0x80, +0x80,0x06,0x49,0xFF,0xFF,0x7D,0x44,0x00,0x00,0x30,0x49,0xFF,0xFF,0x79,0x84,0x00, +0x49,0xFF,0xFF,0x76,0x00,0x04,0x80,0x03,0x54,0x00,0x00,0xFE,0x10,0x04,0x80,0x03, +0x84,0x00,0x49,0xFF,0xFF,0x6D,0x44,0x04,0x10,0x0C,0x44,0x14,0x80,0x07,0xB6,0xE0, +0x84,0x02,0xAE,0x08,0x44,0x14,0x80,0x06,0xAE,0x08,0x44,0x04,0x10,0x13,0xAF,0x80, +0xFC,0xC0,0xFC,0x00,0x49,0xFF,0xE3,0x54,0x5A,0x08,0x01,0x0D,0x84,0x00,0x49,0xFF, +0xFF,0x65,0x49,0xFF,0xA9,0xE1,0x84,0x00,0x49,0x00,0x06,0x65,0x84,0x00,0x49,0xFF, +0xE3,0x4A,0xFC,0x80,0xE6,0x0F,0xE8,0x06,0x44,0x10,0xF5,0x40,0x38,0x00,0x80,0x00, +0xDD,0x9E,0x44,0x00,0x00,0xFF,0xDD,0x9E,0xFC,0x01,0x44,0x1F,0xFF,0xAA,0x10,0x1F, +0x80,0x00,0x10,0x0F,0x80,0x01,0x84,0x28,0x84,0x00,0x10,0x0F,0x80,0x02,0x10,0x1F, +0x80,0x03,0x10,0x0F,0x80,0x04,0x10,0x0F,0x80,0x05,0x10,0x0F,0x80,0x06,0x84,0x27, +0x80,0x1F,0x49,0xFF,0xF7,0xCB,0xFC,0x81,0xFC,0x36,0x3C,0x37,0xF6,0x62,0x10,0x0F, +0x80,0x05,0x84,0x00,0x3C,0x27,0xF6,0x5C,0x10,0x0F,0x80,0x06,0x40,0x01,0xA0,0x0A, +0x44,0x1F,0xFF,0xAA,0x96,0x01,0x10,0x1F,0x80,0x04,0x10,0x1F,0x80,0x07,0x94,0x44, +0x40,0x01,0x20,0x0A,0x10,0x3F,0x80,0x09,0x96,0x1F,0x3C,0x37,0xF6,0x58,0xFE,0x0F, +0x10,0x0F,0x80,0x08,0x10,0x2F,0x80,0x0A,0x40,0x01,0xA0,0x0A,0x3C,0x27,0xF6,0x68, +0x96,0x01,0x94,0x44,0x40,0x01,0x20,0x0A,0x10,0x3F,0x80,0x0C,0x96,0x1F,0x3C,0x37, +0xF6,0x5E,0xFE,0x0F,0x10,0x0F,0x80,0x0B,0x10,0x2F,0x80,0x0D,0x40,0x01,0xA0,0x0A, +0x3C,0x27,0xF6,0x60,0x96,0x01,0x94,0x44,0x40,0x01,0x20,0x0A,0x10,0x3F,0x80,0x0F, +0x96,0x1F,0x3C,0x37,0xF6,0x5D,0xFE,0x0F,0x10,0x0F,0x80,0x0E,0x10,0x2F,0x80,0x10, +0x40,0x01,0xA0,0x0A,0x3C,0x27,0xF6,0x65,0x96,0x01,0x94,0x44,0x40,0x01,0x20,0x0A, +0x10,0x3F,0x80,0x12,0x96,0x1F,0x3C,0x37,0xF6,0x82,0xFE,0x0F,0x10,0x0F,0x80,0x11, +0x10,0x2F,0x80,0x13,0x40,0x01,0xA0,0x0A,0x3C,0x27,0xF6,0x86,0x96,0x01,0x94,0x44, +0x40,0x01,0x20,0x0A,0x10,0x3F,0x80,0x15,0x96,0x1F,0x3C,0x37,0xF6,0x83,0xFE,0x0F, +0x10,0x0F,0x80,0x14,0x10,0x2F,0x80,0x16,0x40,0x01,0xA0,0x0A,0x3C,0x27,0xF6,0x87, +0x96,0x01,0x94,0x44,0x40,0x01,0x20,0x0A,0x96,0x1F,0xFE,0x0F,0x10,0x0F,0x80,0x17, +0x10,0x3F,0x80,0x18,0x10,0x2F,0x80,0x19,0x3C,0x37,0xF6,0x84,0x3C,0x27,0xF6,0x88, +0x40,0x01,0xA0,0x0A,0x96,0x01,0x94,0x44,0x40,0x01,0x20,0x0A,0x96,0x1F,0x10,0x3F, +0x80,0x1B,0x3C,0x37,0xF6,0x85,0xFE,0x0F,0x10,0x0F,0x80,0x1A,0x10,0x2F,0x80,0x1C, +0x40,0x01,0xA0,0x0A,0x3C,0x27,0xF6,0x89,0x96,0x01,0x94,0x44,0x40,0x01,0x20,0x0A, +0x96,0x1F,0x10,0x3F,0x80,0x1E,0x3C,0x37,0xF6,0x5F,0xFE,0x0F,0x10,0x0F,0x80,0x1D, +0x10,0x2F,0x80,0x1F,0x40,0x01,0xA0,0x0A,0x3C,0x27,0xF6,0x66,0x96,0x01,0x94,0x44, +0x40,0x01,0x20,0x0A,0x96,0x1F,0x10,0x3F,0x80,0x21,0x3C,0x37,0xF6,0x63,0xFE,0x0F, +0x10,0x0F,0x80,0x20,0x10,0x2F,0x80,0x22,0x40,0x01,0xA0,0x0A,0x3C,0x27,0xF6,0x59, +0x96,0x01,0x94,0x44,0x40,0x01,0x20,0x0A,0x96,0x1F,0xFE,0x0F,0x10,0x0F,0x80,0x23, +0x2E,0x07,0xEC,0x9A,0x10,0x3F,0x80,0x24,0x10,0x0F,0x80,0x26,0x2E,0x07,0xEC,0x9B, +0x3C,0x37,0xF6,0x5B,0x10,0x0F,0x80,0x27,0x2E,0x07,0xEC,0x99,0x10,0x2F,0x80,0x25, +0x10,0x0F,0x80,0x28,0x3C,0x27,0xF6,0x61,0x40,0x01,0xA0,0x0A,0x96,0x01,0x94,0x44, +0x40,0x01,0x20,0x0A,0x96,0x1F,0xFE,0x0F,0x10,0x0F,0x80,0x29,0x10,0x3F,0x80,0x2A, +0x10,0x2F,0x80,0x2B,0xB0,0x41,0x84,0x00,0x44,0x72,0x3A,0x10,0x44,0x62,0x3A,0x6C, +0x38,0x53,0x81,0x11,0x38,0x43,0x01,0x11,0x40,0x22,0xA0,0x0A,0x96,0x91,0x94,0xD4, +0x40,0x22,0x20,0x0A,0x96,0x9F,0xFE,0x9F,0x8C,0x01,0x10,0x20,0x80,0x28,0x10,0x50, +0x80,0x29,0x10,0x40,0x80,0x2A,0x8C,0x23,0x5A,0x08,0x28,0xEC,0x84,0x00,0x10,0x0F, +0x80,0xA4,0x10,0x0F,0x80,0xA5,0x10,0x0F,0x80,0xA6,0x10,0x0F,0x80,0xA7,0x10,0x0F, +0x80,0xA8,0x10,0x0F,0x80,0xA9,0x10,0x0F,0x80,0xAA,0x10,0x0F,0x80,0xAB,0x10,0x0F, +0x80,0xAC,0x44,0x10,0x00,0xA9,0xB0,0x01,0x49,0xFF,0xF6,0xB8,0xFC,0xB6,0xFC,0x00, +0x44,0x00,0x00,0x64,0x49,0xFF,0x9C,0x4F,0x44,0x00,0x0D,0xE9,0x49,0xFF,0x9C,0x56, +0x44,0x00,0x09,0xE9,0x49,0xFF,0x9C,0x5D,0x44,0x00,0x01,0x90,0x49,0xFF,0x9C,0x64, +0xFC,0x80,0xFC,0x40,0x51,0xFF,0xFA,0xE0,0x84,0x20,0xFA,0x50,0xB0,0x10,0x49,0x00, +0x12,0xA7,0xB1,0x98,0x44,0x00,0xF5,0x50,0x80,0x26,0x3A,0x20,0x14,0x04,0x3A,0x20, +0x94,0x24,0x3A,0x20,0x14,0x00,0xB1,0xE0,0x44,0x00,0xF5,0x70,0x3A,0x20,0x94,0x20, +0x80,0x27,0x3A,0x20,0x14,0x04,0x3A,0x20,0x94,0x24,0x3A,0x20,0x14,0x00,0x3A,0x20, +0x94,0x20,0x44,0x10,0xF5,0x90,0xB0,0x0C,0x3A,0x20,0x94,0x00,0x44,0x10,0xF5,0xA0, +0x3A,0x20,0x14,0x20,0xB0,0x07,0x3A,0x20,0x8C,0x00,0x3A,0x20,0x0C,0x20,0x44,0x00, +0xF5,0xA8,0x50,0x8F,0x80,0x24,0x3A,0x20,0x10,0x00,0x3A,0x24,0x10,0x20,0x85,0x40, +0x39,0xC4,0x28,0x00,0x40,0x0E,0x00,0x13,0xC0,0x13,0x5A,0x00,0x03,0x12,0xB0,0x10, +0x38,0x00,0x72,0x02,0xC8,0x0D,0x38,0x03,0x72,0x02,0x40,0x90,0x04,0x08,0x49,0xFF, +0xE3,0x75,0x49,0xFF,0xE6,0x45,0xB0,0x50,0x88,0x09,0x38,0x00,0xF2,0x0A,0x8D,0x41, +0x5A,0xA8,0x0C,0xE8,0x84,0xC0,0xB0,0x10,0x38,0x00,0x1A,0x02,0xF0,0x81,0xC8,0x07, +0x8C,0xC1,0x5A,0x68,0x08,0xFA,0x51,0xFF,0x85,0x20,0xFC,0xC0,0xB0,0x07,0x87,0x80, +0x38,0xA3,0x00,0x00,0x40,0x95,0x04,0x08,0x40,0x04,0x80,0x13,0xF0,0x82,0x94,0x01, +0xF0,0x83,0x40,0xFE,0x24,0x07,0xE8,0xED,0x4F,0xC3,0x00,0x13,0x38,0x83,0x9A,0x01, +0x49,0xFF,0x9A,0xEF,0x44,0x20,0x01,0x20,0x80,0x28,0x42,0x10,0x08,0x73,0xB0,0x0C, +0x96,0x49,0x38,0x20,0x19,0x01,0xB0,0x28,0x92,0x42,0x49,0xFF,0x9B,0x49,0x4D,0xC5, +0x40,0x14,0x38,0x83,0x9A,0x01,0x49,0xFF,0x9A,0xDC,0x44,0x20,0x01,0x20,0x50,0x14, +0x02,0x40,0x42,0x10,0x08,0x73,0xB0,0x0C,0x96,0x49,0x38,0x20,0x19,0x01,0xB0,0x28, +0x92,0x42,0x49,0xFF,0x9B,0x35,0x40,0x14,0xF0,0x01,0x8E,0x21,0x94,0x4C,0x40,0x0E, +0x00,0x13,0x97,0x49,0x40,0x1E,0x28,0x06,0x94,0xC4,0x84,0x40,0xF1,0x84,0x50,0x8F, +0x80,0xA0,0xF4,0x04,0x40,0x11,0x04,0x09,0xC4,0x03,0x88,0x23,0xD5,0x03,0x88,0x25, +0x96,0x49,0x38,0x44,0x06,0x02,0x54,0xF2,0x00,0x1F,0x5A,0xF0,0x1F,0x1A,0x40,0xF2, +0x18,0x09,0x54,0xF7,0x80,0x1F,0x5A,0xF0,0x1F,0x14,0x04,0xFF,0x80,0x01,0x39,0xE7, +0x81,0x01,0x50,0xFF,0x5D,0xEB,0x5C,0xF7,0x82,0x13,0xE9,0x06,0x50,0xFF,0x64,0x27, +0x5C,0xF7,0x82,0x13,0xE8,0x05,0x50,0x42,0x00,0x41,0x38,0x44,0x06,0x0A,0x38,0x44, +0x06,0x02,0x40,0xF2,0x48,0x09,0x54,0xF7,0x80,0x1F,0x5A,0xF0,0x1F,0x21,0x40,0xF2, +0x30,0x09,0x54,0xF7,0x80,0x1F,0x5A,0xF0,0x1F,0x1B,0x04,0xFF,0x80,0x02,0x05,0xEF, +0x80,0x01,0x40,0xF0,0x3C,0x00,0x40,0xF7,0x80,0x13,0x39,0xEF,0x3D,0x01,0x50,0xFF, +0x5D,0xEB,0x5C,0xF7,0x82,0x13,0xE9,0x06,0x50,0xFF,0x64,0x27,0x5C,0xF7,0x82,0x13, +0xE8,0x06,0x44,0xF4,0x10,0x00,0x88,0x8F,0x38,0x44,0x06,0x0A,0xF1,0x03,0x8C,0x42, +0x88,0x01,0x96,0x90,0x96,0x01,0x5A,0x28,0x20,0xAE,0x50,0x5E,0x00,0x01,0x4C,0x55, +0x40,0x16,0x38,0x13,0x9A,0x01,0xF5,0x85,0xF1,0x84,0x49,0xFF,0x9A,0x62,0x44,0x20, +0x01,0x20,0xF1,0x04,0x42,0x10,0x08,0x73,0xB0,0x0C,0x96,0x49,0x38,0x20,0x19,0x01, +0x80,0x08,0x92,0x42,0x49,0xFF,0x9A,0xD8,0xF5,0x05,0x4C,0x54,0xC0,0x16,0x38,0x13, +0x9A,0x01,0xF1,0x84,0x49,0xFF,0x9A,0x4D,0xF1,0x04,0x44,0x20,0x01,0x20,0x50,0x10, +0x82,0x40,0x42,0x10,0x08,0x73,0xB0,0x0C,0x96,0x49,0x38,0x20,0x19,0x01,0x80,0x08, +0x92,0x42,0x49,0xFF,0x9A,0xC1,0x50,0x5E,0x00,0x01,0x55,0xC2,0x80,0xFF,0x48,0xFF, +0xFF,0x42,0xFC,0x49,0x44,0x10,0xF5,0xB4,0xB1,0x86,0x80,0x06,0x3A,0x20,0x94,0x04, +0x3A,0x20,0x14,0x24,0x3A,0x20,0x8C,0x00,0x3A,0x20,0x0C,0x20,0x84,0x20,0xB0,0x0C, +0xFA,0x48,0x49,0x00,0x11,0x75,0x84,0x21,0x10,0x1F,0x80,0x31,0x10,0x1F,0x80,0x3D, +0x84,0x02,0x44,0x10,0xF5,0xCC,0x10,0x0F,0x80,0x32,0x10,0x0F,0x80,0x3E,0x80,0x01, +0x80,0x9F,0x3A,0x20,0x0C,0x04,0x3A,0x22,0x0C,0x24,0xB1,0xC3,0x3A,0x20,0x8C,0x04, +0xA4,0x00,0x80,0x27,0xAC,0x20,0x3A,0x20,0x8C,0x24,0xAC,0x08,0x80,0x06,0x49,0xFF, +0xA0,0x93,0xB0,0x0C,0x49,0xFF,0xA0,0xE3,0x80,0x1F,0x49,0xFF,0xA0,0xA6,0x80,0x07, +0x81,0x3F,0x49,0xFF,0xA0,0xF5,0xFC,0xC9,0xFC,0x26,0x44,0x10,0xF5,0xD8,0x80,0xDF, +0x3A,0x20,0x94,0x04,0x3A,0x23,0x14,0x24,0x3A,0x20,0x94,0x04,0x3A,0x23,0x14,0x24, +0x3A,0x20,0x94,0x00,0x80,0x1F,0x80,0xE6,0x3A,0x23,0x14,0x20,0x49,0xFF,0xA0,0x3E, +0xFC,0xA6,0xFC,0x2C,0x44,0x10,0xF6,0x08,0xB1,0x8C,0x80,0x06,0x3A,0x20,0x94,0x04, +0x3A,0x20,0x14,0x24,0x3A,0x20,0x94,0x04,0x3A,0x20,0x14,0x24,0x3A,0x20,0x94,0x00, +0x3A,0x20,0x14,0x20,0x84,0x20,0xB0,0x06,0xFA,0x48,0x49,0x00,0x11,0x21,0xB1,0xC1, +0x44,0x10,0xF6,0x38,0x80,0x07,0x3A,0x20,0x94,0x04,0x3A,0x20,0x14,0x24,0xB4,0x21, +0xB6,0x20,0x80,0x06,0x49,0xFF,0xA0,0x1A,0xB0,0x06,0x49,0xFF,0xA0,0x34,0x80,0x07, +0x49,0xFF,0xA0,0x1E,0xFC,0xAC,0xFC,0x01,0x44,0x10,0xF6,0x4C,0x80,0x1F,0x3A,0x20, +0x8C,0x00,0x3A,0x2F,0x8C,0x20,0x49,0xFF,0xA0,0x1D,0xFC,0x81,0xFC,0x00,0xC8,0x04, +0x49,0xFF,0xFE,0x3F,0xFC,0x80,0x44,0x00,0x00,0x64,0x49,0xFF,0x9A,0x8C,0x44,0x00, +0x13,0xA6,0x49,0xFF,0x9A,0x93,0x44,0x00,0x0F,0xA6,0x49,0xFF,0x9A,0x9A,0x44,0x00, +0x01,0x90,0x49,0xFF,0x9A,0xA1,0xFC,0x80,0xFC,0x00,0xE6,0x06,0xE8,0x06,0x44,0x10, +0xF6,0xEC,0x38,0x00,0x80,0x00,0xD5,0x02,0x84,0x00,0x49,0xFF,0x9A,0xAB,0xFC,0x80, +0xFC,0x00,0xE6,0x06,0xE8,0x06,0x44,0x10,0xF6,0xE4,0x38,0x00,0x80,0x00,0xD5,0x02, +0x84,0x00,0x8C,0x01,0x96,0x00,0x49,0xFF,0x9A,0x92,0xFC,0x80,0xFC,0x00,0x5A,0x00, +0x01,0x0E,0xC0,0x04,0x5A,0x00,0x02,0x1C,0xFC,0x80,0x84,0x00,0x49,0xFF,0xA6,0x83, +0x2E,0x07,0xF9,0x18,0x49,0xFF,0xFF,0xC4,0xD5,0x2A,0x49,0xFF,0xA6,0x7C,0x44,0x00, +0x00,0x64,0x49,0xFF,0x9A,0x50,0x44,0x00,0x17,0x8E,0x49,0xFF,0x9A,0x57,0x44,0x00, +0x17,0x8E,0x49,0xFF,0x9A,0x5E,0x44,0x00,0x01,0x90,0xD5,0x17,0x84,0x01,0x49,0xFF, +0xA6,0x6A,0x44,0x00,0x03,0xE8,0x49,0xFF,0x9A,0x3E,0x44,0x00,0x27,0x10,0x49,0xFF, +0x9A,0x50,0x46,0x20,0x00,0x81,0x46,0x12,0x71,0x00,0x83,0x82,0xB8,0x10,0x96,0x01, +0xFE,0x0F,0xB8,0x90,0x44,0x00,0x27,0x10,0x49,0xFF,0x9A,0x4E,0x84,0x00,0x49,0xFF, +0xFF,0xB9,0xFC,0x80,0xE6,0x04,0xE8,0x24,0xFC,0x00,0x44,0xF0,0xCF,0x88,0x38,0x07, +0x80,0x00,0x40,0xF0,0x3C,0x00,0xDD,0x0F,0x04,0x14,0x1E,0x22,0x84,0x00,0x49,0xFF, +0x9D,0x35,0x84,0x01,0x49,0xFF,0x9D,0x20,0x84,0x01,0xD5,0x0F,0x84,0x00,0x49,0xFF, +0x9D,0x2D,0x84,0x01,0xD5,0x07,0x84,0x01,0xD5,0x02,0x84,0x00,0x49,0xFF,0x9D,0x26, +0x84,0x00,0x49,0xFF,0x9D,0x11,0x84,0x00,0x49,0xFF,0x9D,0x17,0xFC,0x80,0xDD,0x9E, +0xFC,0x00,0x49,0xFF,0xE1,0x7B,0x80,0x60,0x3E,0x00,0x15,0x10,0x44,0x12,0x30,0x78, +0x44,0x02,0x34,0xF8,0x44,0x20,0x02,0x40,0x2E,0x47,0xF9,0x17,0x49,0xFF,0xEA,0x39, +0xFC,0x80,0x44,0x02,0x34,0xF8,0xDD,0x9E,0x44,0x02,0x30,0x78,0xDD,0x9E,0x44,0x02, +0x26,0x70,0xDD,0x9E,0x44,0x02,0x25,0x68,0xDD,0x9E,0x44,0x02,0x1D,0xE8,0xDD,0x9E, +0x44,0x02,0x1D,0x84,0xDD,0x9E,0xFC,0x00,0xC8,0x05,0x49,0xFF,0x9A,0x37,0x84,0xC3, +0xD5,0x05,0x84,0x01,0x49,0xFF,0x9A,0x32,0x84,0xC2,0x84,0x01,0x49,0xFF,0x9A,0x20, +0x9E,0x32,0x96,0x00,0x49,0xFF,0xDF,0xB9,0xFC,0x80,0xFC,0x00,0x84,0x00,0x80,0x20, +0x49,0xFF,0x9C,0x2E,0x84,0x00,0x84,0x21,0x49,0xFF,0x9C,0x2A,0xFC,0x80,0xFC,0x00, +0x84,0x01,0x84,0x20,0x49,0xFF,0x9C,0x24,0x84,0x01,0x80,0x20,0x49,0xFF,0x9C,0x20, +0xFC,0x80,0xFC,0x00,0x49,0xFF,0xE1,0x32,0x52,0x10,0x00,0x01,0x96,0x48,0x84,0x01, +0x49,0xFF,0x9C,0x16,0xFC,0x80,0xFC,0x49,0x80,0x20,0x44,0x00,0xF6,0x54,0x50,0xAF, +0x80,0x0C,0x3A,0x20,0x10,0x00,0x44,0x00,0xF6,0x60,0x3A,0x2F,0x90,0x20,0x3A,0x20, +0x10,0x00,0x3A,0x25,0x10,0x20,0x44,0x20,0xF6,0x6C,0xB0,0x06,0x3A,0x21,0x10,0x00, +0x3A,0x20,0x10,0x20,0x44,0x20,0xF6,0x78,0x50,0x9F,0x80,0x24,0x3A,0x21,0x10,0x00, +0x3A,0x24,0x90,0x20,0x44,0x20,0xF5,0xA8,0xB1,0xCC,0x3A,0x21,0x10,0x00,0x3A,0x23, +0x90,0x20,0x44,0x20,0xF6,0x84,0xB1,0x8F,0x3A,0x21,0x10,0x00,0x80,0xBF,0x3A,0x23, +0x10,0x20,0xC9,0x03,0x80,0x05,0xD5,0x12,0x5A,0x18,0x01,0x04,0x80,0x0A,0xD5,0x0E, +0x5A,0x10,0x02,0x0D,0x5A,0x18,0x03,0x04,0x80,0x09,0xD5,0x08,0x5A,0x18,0x04,0x04, +0x80,0x07,0xD5,0x04,0x5A,0x18,0x05,0x06,0x80,0x06,0x49,0xFF,0x99,0x2A,0xFC,0xC9, +0x5A,0x10,0x06,0xEA,0xFC,0xC9,0xFC,0x03,0x84,0x20,0x84,0x4C,0x80,0xC0,0x80,0x1F, +0x49,0x00,0x0F,0xCE,0x44,0x10,0xF6,0x90,0xB0,0x03,0x3A,0x20,0x90,0x00,0x3A,0x20, +0x10,0x20,0xCE,0x03,0x80,0x1F,0xD5,0x03,0x5A,0x68,0x01,0x04,0x49,0xFF,0x99,0x25, +0xFC,0x83,0xFC,0x00,0x84,0x00,0x49,0xFF,0xFF,0xA0,0x84,0x00,0x49,0xFF,0xFF,0xE5, +0x84,0x00,0x49,0xFF,0x9C,0x0B,0x84,0x00,0x49,0xFF,0x9C,0x3A,0x49,0xFF,0xFE,0x2B, +0x49,0xFF,0xFE,0x79,0x49,0xFF,0xFE,0xA1,0x84,0x00,0x49,0xFF,0xA2,0x25,0x44,0x00, +0x02,0x40,0x49,0xFF,0xA2,0x37,0x44,0x00,0x02,0x40,0x49,0xFF,0xA2,0x28,0x84,0x09, +0x49,0xFF,0xA2,0x3B,0x84,0x03,0x49,0xFF,0xA2,0x41,0x44,0x62,0x16,0x98,0x44,0x10, +0x00,0xF0,0x84,0x00,0x49,0xFF,0xA0,0xC9,0x49,0xFF,0xEA,0x18,0x38,0x13,0x01,0x01, +0x84,0x00,0x49,0xFF,0x9F,0x6F,0x44,0x10,0x00,0xF0,0x84,0x02,0x49,0xFF,0xA0,0xBD, +0x49,0xFF,0xEA,0x0C,0x38,0x13,0x01,0x01,0x84,0x02,0x49,0xFF,0x9F,0x63,0x44,0x10, +0x00,0xF0,0x84,0x05,0x49,0xFF,0xA0,0xB1,0x49,0xFF,0xEA,0x00,0x38,0x13,0x01,0x01, +0x46,0x60,0x00,0x81,0x84,0x03,0x49,0xFF,0x9F,0x55,0x49,0xFF,0x9C,0xEF,0x04,0x03, +0x03,0x91,0x92,0x0A,0x40,0x00,0x28,0x08,0x58,0x00,0x01,0xC0,0x14,0x03,0x03,0x91, +0x49,0xFF,0x9C,0xDD,0x04,0x03,0x00,0x2C,0x46,0x1F,0xFC,0x0F,0x92,0x06,0x94,0x06, +0x58,0x00,0x00,0x2D,0x14,0x03,0x00,0x2C,0x04,0x03,0x00,0x2C,0x50,0x10,0x8F,0xFF, +0x46,0x20,0x02,0xD0,0xFE,0x0E,0xFE,0x17,0x14,0x03,0x00,0x2C,0x04,0x03,0x00,0x2D, +0x92,0x06,0x94,0x06,0x58,0x00,0x00,0x0A,0x14,0x03,0x00,0x2D,0x04,0x03,0x00,0x2D, +0xFE,0x46,0x46,0x00,0x00,0xA0,0xFE,0x47,0x14,0x13,0x00,0x2D,0x04,0x13,0x00,0x2D, +0x46,0x0C,0x0F,0xFF,0x50,0x00,0x0F,0xFF,0xFE,0x0E,0x46,0x10,0xA0,0x00,0xFE,0x0F, +0x14,0x03,0x00,0x2D,0x04,0x03,0x00,0x2F,0x92,0x06,0x94,0x06,0x58,0x00,0x00,0x04, +0x14,0x03,0x00,0x2F,0x44,0x00,0x02,0x80,0x49,0xFF,0xA0,0x4E,0x84,0x00,0x49,0xFF, +0xFE,0xDC,0x49,0xFF,0xFC,0x66,0x49,0xFF,0xA0,0x3D,0x3E,0x07,0xF9,0x18,0xFC,0x80, +0xDD,0x9E,0xFC,0x00,0x49,0xFF,0xE0,0x46,0x80,0xC0,0xC8,0x18,0x2E,0x07,0xF1,0x77, +0xC8,0x11,0x44,0x04,0x50,0x28,0xB4,0x20,0x92,0x23,0x96,0x46,0x5A,0x10,0x01,0x0B, +0xB4,0x20,0x92,0x21,0x96,0x46,0xC1,0x06,0x3C,0x0D,0xFE,0x44,0x5A,0x08,0x01,0x0A, +0xD5,0x05,0x49,0xFF,0xD9,0x85,0x5A,0x08,0x02,0xF9,0x49,0xFF,0xE0,0x2E,0x84,0xC1, +0x80,0x06,0xFC,0x80,0x2E,0x07,0xF1,0x86,0xC8,0x1F,0xFC,0x00,0x2E,0x07,0xF1,0x77, +0xC8,0x12,0x44,0x14,0x50,0x28,0xB4,0x01,0x92,0x03,0x96,0x06,0x5A,0x00,0x01,0x0C, +0xB4,0x01,0x92,0x01,0x96,0x06,0xC0,0x07,0x3C,0x0D,0xFE,0x44,0x5A,0x00,0x01,0x08, +0x84,0x00,0xFC,0x80,0x49,0xFF,0xD9,0x64,0x5A,0x08,0x02,0xF8,0x84,0x00,0x3E,0x07, +0xF1,0x86,0x84,0x01,0xFC,0x80,0x84,0x00,0x3E,0x07,0xF1,0x86,0x84,0x01,0xDD,0x9E, +0xFC,0x00,0x49,0xFF,0x9F,0xEF,0xFC,0x80,0x2E,0x07,0xF9,0x18,0xDD,0x9E,0x3E,0x07, +0xF9,0x18,0xDD,0x9E,0x2E,0x07,0xF9,0x17,0xDD,0x9E,0x2E,0x07,0xF9,0x16,0xDD,0x9E, +0x2E,0x07,0xF9,0x15,0xDD,0x9E,0x3E,0x07,0xF9,0x15,0xDD,0x9E,0xFC,0x00,0x80,0xC0, +0x49,0xFF,0xA0,0xE1,0x80,0x06,0x49,0xFF,0x97,0x60,0x84,0x00,0x84,0x2C,0x5A,0x68, +0x01,0x1F,0x49,0xFF,0xA0,0x3E,0x84,0x02,0x84,0x2C,0x49,0xFF,0xA0,0x3A,0x84,0x03, +0x84,0x2A,0x49,0xFF,0xA0,0x36,0x84,0x05,0x84,0x2C,0x49,0xFF,0xA0,0x32,0x84,0x07, +0x84,0x2C,0x49,0xFF,0xA0,0x2E,0x84,0x00,0x80,0x20,0x49,0xFF,0x96,0xE5,0x84,0x00, +0x84,0x22,0x49,0xFF,0x96,0xE1,0x44,0x02,0x2F,0x70,0xD5,0x41,0x49,0xFF,0xA0,0x21, +0x84,0x01,0x84,0x2C,0x49,0xFF,0xA0,0x1D,0x84,0x02,0x84,0x2C,0x49,0xFF,0xA0,0x19, +0x84,0x03,0x84,0x2A,0x49,0xFF,0xA0,0x15,0x84,0x04,0x84,0x2C,0x49,0xFF,0xA0,0x11, +0x84,0x05,0x84,0x2C,0x49,0xFF,0xA0,0x0D,0x84,0x06,0x84,0x2C,0x49,0xFF,0xA0,0x09, +0x84,0x07,0x84,0x2C,0x49,0xFF,0xA0,0x05,0x84,0x01,0x84,0x20,0x49,0xFF,0x96,0xBC, +0x84,0x01,0x80,0x20,0x49,0xFF,0x96,0xB8,0x84,0x01,0x84,0x22,0x49,0xFF,0x96,0xB4, +0x84,0x00,0x84,0x23,0x49,0xFF,0x96,0xB0,0x84,0x01,0x84,0x24,0x49,0xFF,0x96,0xAC, +0x84,0x01,0x84,0x25,0x49,0xFF,0x96,0xA8,0x84,0x01,0x84,0x26,0x49,0xFF,0x96,0xA4, +0x84,0x01,0x84,0x27,0x49,0xFF,0x96,0xA0,0x44,0x02,0x2F,0xF4,0x44,0x10,0x00,0x42, +0x49,0xFF,0x9C,0x9F,0xFC,0x80,0x44,0x02,0x2F,0x70,0xDD,0x9E,0x44,0x02,0x2F,0xF4, +0xDD,0x9E,0xFC,0x21,0x84,0xC2,0xF0,0x81,0x80,0xE2,0x80,0x01,0x5A,0x10,0x01,0x03, +0x84,0xC1,0x49,0xFF,0xFF,0x85,0xCF,0x0C,0x84,0x03,0x49,0xFF,0x99,0x3F,0x84,0x03, +0x49,0xFF,0x9C,0xCB,0xF0,0x01,0x80,0x26,0x49,0xFF,0xE7,0x0D,0xFC,0xA1,0x84,0x02, +0x49,0xFF,0x99,0x34,0x84,0x02,0x49,0xFF,0x9C,0xC0,0xF0,0x01,0x80,0x26,0x84,0x40, +0x49,0xFF,0xE6,0x90,0xFC,0xA1,0xFC,0x00,0x84,0x00,0x49,0xFF,0xFD,0x3F,0x84,0x00, +0x84,0x20,0x3E,0x07,0xF9,0x17,0x3E,0x07,0xF9,0x16,0x80,0x41,0x2E,0x07,0xF9,0x18, +0x49,0xFF,0xFF,0xD1,0xFC,0x80,0xFC,0x20,0x44,0x14,0x80,0x90,0x44,0x0F,0xFF,0xEF, +0xB4,0x41,0x46,0x70,0x00,0x81,0xFE,0x16,0xB6,0x01,0x44,0x04,0x80,0x10,0xFA,0x20, +0xAE,0x40,0xFA,0xC2,0x50,0x73,0x83,0xD4,0xB4,0x07,0x92,0x0B,0x96,0x27,0xC0,0x07, +0x8E,0xC1,0xC6,0x05,0x84,0x01,0x49,0xFF,0xA4,0x5E,0xD5,0xF7,0x44,0x04,0x80,0x10, +0xFA,0x20,0xAE,0x40,0x44,0x14,0x80,0x90,0xB4,0x01,0x58,0x00,0x00,0x10,0xB6,0x01, +0xFC,0xA0,0xFC,0x20,0x49,0xFF,0xEF,0xD4,0xC8,0x47,0x2E,0x07,0xF2,0xE4,0x5A,0x00, +0x01,0x44,0x44,0x64,0x80,0x10,0x44,0x00,0x00,0x40,0xAE,0x30,0x44,0x74,0x50,0x28, +0xB4,0x06,0x92,0x06,0x96,0x06,0x5A,0x00,0x01,0x07,0x44,0x74,0x80,0x10,0x44,0x64, +0x50,0x28,0xD5,0x25,0x2E,0x07,0xF1,0x77,0xC8,0x0E,0xB4,0x07,0x92,0x03,0x96,0x06, +0xC8,0x0A,0xB4,0x07,0x92,0x01,0x96,0x06,0xC0,0x06,0x3C,0x0D,0xFE,0x44,0x5A,0x08, +0x01,0xE9,0xD5,0xEC,0x49,0xFF,0xD8,0x4C,0x5A,0x08,0x02,0xF9,0xD5,0xE7,0x2E,0x07, +0xF1,0x77,0xC8,0x15,0xB4,0x06,0x92,0x03,0x96,0x06,0xC8,0x11,0xB4,0x06,0x92,0x01, +0x96,0x06,0xC0,0x0D,0x3C,0x0D,0xFE,0x44,0x5A,0x00,0x01,0x06,0xB4,0x07,0x92,0x06, +0x96,0x06,0xC0,0xEE,0x84,0x01,0x49,0xFF,0xA4,0x05,0xFC,0xA0,0x49,0xFF,0xD8,0x30, +0x5A,0x08,0x02,0xF2,0xD5,0xF8,0x49,0xFF,0xEF,0x8B,0x5A,0x08,0x01,0x09,0x44,0x14, +0x50,0x28,0xB4,0x01,0x92,0x01,0x96,0x06,0x5A,0x00,0x01,0xFD,0xFC,0xA0,0xFC,0x01, +0x5A,0x08,0x01,0x06,0xF0,0x81,0x49,0xFF,0xFF,0xA6,0xF0,0x01,0x49,0xFF,0x97,0x6D, +0xFC,0x81,0xFC,0x20,0x84,0xE0,0x80,0xC0,0x84,0x00,0x49,0xFF,0x97,0x66,0x49,0xFF, +0xFF,0x74,0x49,0xFF,0xE1,0x86,0x3E,0x77,0xF1,0x87,0x49,0xFF,0xDE,0xB6,0x3E,0x77, +0xF1,0x86,0x5A,0x68,0x01,0x05,0x80,0x06,0x49,0xFF,0xFF,0xE3,0xFC,0xA0,0xFC,0x00, +0x3C,0x6D,0xFE,0x43,0xC6,0x0A,0x84,0x01,0x49,0xFF,0xFF,0xE5,0x49,0xFF,0xFD,0x49, +0x84,0x00,0x3C,0x0F,0xFE,0x43,0xFC,0x80,0x49,0xFF,0xEF,0x52,0x5A,0x00,0x01,0xF5, +0x3E,0x67,0xF1,0x87,0x49,0xFF,0xDE,0x99,0x3E,0x67,0xF1,0x86,0x49,0xFF,0xFD,0x39, +0xFC,0x80,0xFC,0x00,0x49,0xFF,0xFD,0x2B,0x46,0x00,0x00,0x81,0x04,0x00,0x00,0xF5, +0x92,0x0B,0x96,0x27,0xC8,0x04,0x49,0xFF,0xEF,0x3B,0xC0,0x05,0x84,0x00,0x49,0xFF, +0xFF,0xC2,0x84,0x01,0x3C,0x0F,0xFE,0x43,0xFC,0x80,0xFC,0x00,0x49,0xFF,0xFF,0xD1, +0x44,0x64,0x50,0x28,0x2E,0x07,0xF1,0x86,0xC0,0x0F,0x84,0xC0,0x3E,0x67,0xF1,0x87, +0x49,0xFF,0xDE,0x73,0x3E,0x67,0xF1,0x86,0x49,0xFF,0xFD,0x09,0x49,0xFF,0xFA,0x93, +0x49,0xFF,0xFF,0xD9,0xFC,0x80,0x2E,0x07,0xF1,0x77,0xC8,0x0F,0xB4,0x06,0x92,0x03, +0x96,0x06,0x5A,0x00,0x01,0x0B,0xB4,0x06,0x92,0x01,0x96,0x06,0xC0,0x06,0x3C,0x0D, +0xFE,0x44,0x5A,0x08,0x01,0xE1,0xD5,0xE2,0x49,0xFF,0xD7,0xAA,0x5A,0x08,0x02,0xF9, +0xD5,0xDD,0xFC,0x49,0x2E,0x67,0xF9,0x18,0x84,0x00,0x49,0xFF,0xFE,0x61,0x84,0x02, +0x49,0xFF,0x98,0x1C,0x80,0x06,0x84,0x20,0x84,0x41,0x49,0xFF,0xE5,0x7B,0x84,0x04, +0x49,0xFF,0xFC,0xFB,0xB1,0x86,0x44,0x10,0xF6,0x9C,0x80,0x06,0x3A,0x20,0x94,0x04, +0x3A,0x20,0x14,0x24,0x3A,0x20,0x94,0x04,0x3A,0x20,0x14,0x24,0x3A,0x20,0x94,0x00, +0x3A,0x20,0x14,0x20,0x44,0x00,0xF6,0xCC,0x80,0x3F,0x3A,0x20,0x14,0x04,0x3A,0x20, +0x94,0x24,0x3A,0x20,0x0C,0x00,0x3A,0x20,0x8C,0x20,0x80,0x1F,0x49,0xFF,0x9C,0x34, +0x80,0x06,0x49,0xFF,0x9B,0xFB,0x84,0x00,0x3E,0x07,0xF1,0x85,0x80,0xFF,0x49,0xFF, +0xFF,0x70,0x44,0x94,0x50,0x28,0x49,0xFF,0x95,0x89,0x2E,0x07,0xF1,0x85,0xC0,0x2C, +0x84,0x00,0x3E,0x07,0xF1,0x85,0x49,0xFF,0xFF,0x7E,0x49,0xFF,0xFF,0x90,0x84,0x00, +0x49,0xFF,0xFC,0xC3,0x44,0x10,0xF6,0x08,0x80,0x06,0x3A,0x20,0x94,0x04,0x3A,0x20, +0x14,0x24,0x3A,0x20,0x94,0x04,0x3A,0x20,0x14,0x24,0x3A,0x20,0x94,0x00,0x3A,0x20, +0x14,0x20,0x44,0x00,0xF5,0xB4,0x80,0x27,0x3A,0x20,0x14,0x04,0x3A,0x20,0x94,0x24, +0x3A,0x20,0x0C,0x00,0x3A,0x20,0x8C,0x20,0x80,0x07,0x49,0xFF,0x9B,0xFD,0x80,0x06, +0x49,0xFF,0x9B,0xC4,0xFC,0xC9,0x2E,0x07,0xF1,0x77,0xC8,0x0F,0xB4,0x09,0x92,0x03, +0x96,0x06,0x5A,0x00,0x01,0x0B,0xB4,0x09,0x92,0x01,0x96,0x06,0xC0,0x06,0x3C,0x0D, +0xFE,0x44,0x5A,0x08,0x01,0xC4,0xD5,0xC5,0x49,0xFF,0xD7,0x2A,0x5A,0x08,0x02,0xF9, +0xD5,0xC0,0xFC,0x41,0x49,0xFF,0xE7,0x2A,0xF0,0x81,0x49,0xFF,0xEE,0x81,0x80,0xC0, +0xC8,0x47,0x84,0x01,0x49,0xFF,0xFC,0x51,0x84,0x01,0x49,0xFF,0xFB,0x99,0x84,0x06, +0x49,0xFF,0xE7,0x1F,0x84,0x01,0x49,0xFF,0xE8,0xD4,0x2E,0x27,0xF9,0x16,0x2E,0x17, +0xF9,0x17,0x84,0x01,0x49,0xFF,0xFE,0x3F,0x84,0x01,0x49,0xFF,0xE7,0xF0,0x84,0x21, +0x84,0x02,0x49,0xFF,0xE9,0xBB,0x80,0x06,0x49,0xFF,0x99,0x0A,0x44,0x10,0x02,0x40, +0x80,0x06,0x49,0xFF,0x9E,0xEC,0x84,0x02,0x49,0xFF,0xFB,0xE6,0x80,0x06,0x49,0xFF, +0x9A,0xAC,0x84,0x01,0x49,0xFF,0xFE,0xDF,0x44,0x64,0x50,0x28,0x2E,0x07,0xF1,0x86, +0xC8,0x47,0x2E,0x07,0xF1,0x77,0xC8,0x0F,0xB4,0x06,0x92,0x03,0x96,0x06,0x5A,0x00, +0x01,0x0B,0xB4,0x06,0x92,0x01,0x96,0x06,0xC0,0x06,0x3C,0x0D,0xFE,0x44,0x5A,0x08, +0x01,0xEF,0xD5,0x36,0x49,0xFF,0xD6,0xDC,0x5A,0x08,0x02,0xF9,0xD5,0x31,0x84,0xC2, +0x44,0x74,0x50,0x28,0x84,0x00,0x49,0xFF,0x9E,0xB7,0xF0,0x81,0x84,0x00,0x49,0xFF, +0x98,0xD7,0x84,0x00,0x44,0x10,0x02,0x40,0x49,0xFF,0x9E,0xB9,0x84,0x02,0x49,0xFF, +0xFB,0xB3,0x49,0xFF,0xFE,0xC6,0x2E,0x07,0xF1,0x86,0x4E,0x03,0x00,0xFD,0x2E,0x07, +0xF1,0x77,0xC8,0x10,0xB4,0x07,0x92,0x03,0x96,0x06,0x5A,0x00,0x01,0x0C,0xB4,0x07, +0x92,0x01,0x96,0x06,0xC0,0x07,0x3C,0x0D,0xFE,0x44,0x5A,0x08,0x01,0xEE,0x48,0x00, +0x00,0xEB,0x49,0xFF,0xD6,0xAD,0x5A,0x08,0x02,0xF8,0x48,0x00,0x00,0xE5,0x44,0x10, +0x02,0x40,0x84,0x40,0x44,0x02,0x26,0x70,0x49,0xFF,0xE6,0x22,0x49,0xFF,0xFE,0xBB, +0x84,0x00,0x49,0xFF,0xFB,0xD2,0x49,0xFF,0xF9,0x5C,0xF0,0x01,0x49,0xFF,0xE6,0xA1, +0x84,0x00,0x49,0xFF,0xE8,0x56,0x2E,0x27,0xF9,0x16,0x2E,0x17,0xF9,0x17,0x84,0x00, +0x49,0xFF,0xFD,0xC1,0x84,0x00,0x49,0xFF,0xE7,0x72,0x84,0x20,0x84,0x02,0x49,0xFF, +0xE9,0x3D,0x84,0x00,0x49,0xFF,0x98,0x8C,0x84,0x00,0x44,0x10,0x02,0x40,0x49,0xFF, +0x9E,0x6E,0x49,0xFF,0xFE,0x7E,0x49,0xFF,0xDD,0x28,0x84,0x00,0x3E,0x07,0xF1,0x86, +0x44,0x64,0x50,0x28,0x49,0xFF,0xDD,0x1E,0xC8,0x16,0x2E,0x07,0xF1,0x77,0xC8,0x0F, +0xB4,0x06,0x92,0x03,0x96,0x06,0x5A,0x00,0x01,0x0B,0xB4,0x06,0x92,0x01,0x96,0x06, +0xC0,0x06,0x3C,0x0D,0xFE,0x44,0x5A,0x08,0x01,0xEF,0xD5,0x05,0x49,0xFF,0xD6,0x60, +0x5A,0x08,0x02,0xF9,0x44,0x64,0x50,0x28,0x2E,0x07,0xF1,0x86,0xC8,0x16,0x2E,0x07, +0xF1,0x77,0xC8,0x0F,0xB4,0x06,0x92,0x03,0x96,0x06,0x5A,0x00,0x01,0x0B,0xB4,0x06, +0x92,0x01,0x96,0x06,0xC0,0x06,0x3C,0x0D,0xFE,0x44,0x5A,0x08,0x01,0xEF,0xD5,0x05, +0x49,0xFF,0xD6,0x46,0x5A,0x08,0x02,0xF9,0x44,0x64,0x50,0x28,0x2E,0x07,0xF9,0x14, +0xC8,0x10,0x49,0xFF,0xFE,0x58,0x84,0x01,0x49,0xFF,0x98,0x42,0x84,0x01,0x44,0x10, +0x02,0x40,0x49,0xFF,0x9E,0x24,0x44,0x64,0x50,0x28,0x49,0xFF,0xFE,0x32,0xD5,0x26, +0x2E,0x07,0xF1,0x77,0xC8,0x0E,0xB4,0x06,0x92,0x03,0x96,0x06,0xC8,0x0A,0xB4,0x06, +0x92,0x01,0x96,0x06,0xC0,0x06,0x3C,0x0D,0xFE,0x44,0x5A,0x08,0x01,0xE1,0xD5,0xE2, +0x49,0xFF,0xD6,0x1E,0x5A,0x08,0x02,0xF9,0xD5,0xDD,0x2E,0x07,0xF1,0x77,0xC8,0x12, +0xB4,0x06,0x92,0x03,0x96,0x06,0x5A,0x00,0x01,0x0E,0xB4,0x06,0x92,0x01,0x96,0x06, +0xC0,0x09,0x3C,0x0D,0xFE,0x44,0x5A,0x00,0x01,0x0A,0x49,0xFF,0xDC,0xB3,0xC0,0xEE, +0xD5,0x05,0x49,0xFF,0xD6,0x05,0x5A,0x08,0x02,0xF6,0x44,0x64,0x50,0x28,0x2E,0x07, +0xF1,0x86,0xC8,0x16,0x2E,0x07,0xF1,0x77,0xC8,0x0F,0xB4,0x06,0x92,0x03,0x96,0x06, +0x5A,0x00,0x01,0x0B,0xB4,0x06,0x92,0x01,0x96,0x06,0xC0,0x06,0x3C,0x0D,0xFE,0x44, +0x5A,0x08,0x01,0xEF,0xD5,0x05,0x49,0xFF,0xD5,0xEB,0x5A,0x08,0x02,0xF9,0x44,0x64, +0x50,0x28,0x2E,0x07,0xF9,0x14,0xC0,0x0A,0x49,0xFF,0xFD,0xFD,0x84,0x01,0x49,0xFF, +0xFA,0xCB,0x84,0x01,0x49,0xFF,0x99,0x91,0xD5,0x2D,0x2E,0x07,0xF1,0x77,0xC8,0x0E, +0xB4,0x06,0x92,0x03,0x96,0x06,0xC8,0x0A,0xB4,0x06,0x92,0x01,0x96,0x06,0xC0,0x06, +0x3C,0x0D,0xFE,0x44,0x5A,0x08,0x01,0xE7,0xD5,0xE8,0x49,0xFF,0xD5,0xC9,0x5A,0x08, +0x02,0xF9,0xD5,0xE3,0x85,0x20,0x3E,0x97,0xF1,0x87,0x49,0xFF,0xDC,0x6E,0x3E,0x97, +0xF1,0x86,0x49,0xFF,0xFD,0xD8,0xF0,0x01,0x44,0x10,0x02,0x40,0x84,0x40,0x49,0xFF, +0xE5,0x37,0x84,0x01,0x49,0xFF,0xFA,0xA0,0x5A,0x60,0x01,0x05,0x84,0xC1,0x48,0xFF, +0xFE,0xDB,0xFC,0xC1,0xFC,0x00,0x2E,0x07,0xF9,0x18,0x49,0xFF,0xE7,0x6A,0x84,0x00, +0x49,0xFF,0xFA,0x3C,0x84,0x20,0x2E,0x27,0xF9,0x16,0x2E,0x07,0xF9,0x18,0x49,0xFF, +0xFC,0xD2,0x84,0x00,0x49,0xFF,0xFE,0x77,0x2E,0x17,0xF9,0x17,0x2E,0x27,0xF9,0x16, +0x2E,0x07,0xF9,0x18,0x49,0xFF,0xFC,0xC7,0x2E,0x07,0xF9,0x18,0x49,0xFF,0xE7,0x51, +0x2E,0x07,0xF9,0x18,0x49,0xFF,0xE8,0xB8,0x49,0xFF,0xEC,0xEA,0xC8,0x09,0x2E,0x07, +0xF9,0x18,0x49,0xFF,0xFA,0x05,0x2E,0x07,0xF9,0x18,0x49,0xFF,0xFA,0xB6,0x84,0x01, +0x49,0xFF,0xFA,0x6A,0x49,0xFF,0xE6,0x5F,0x49,0xFF,0xFD,0x7B,0xFC,0x80,0xFC,0x21, +0x84,0x00,0x49,0xFF,0xFD,0x60,0x49,0xFF,0xDC,0x13,0xF0,0x81,0x84,0x00,0x49,0xFF, +0x97,0x77,0x49,0xFF,0xEC,0xCD,0xC8,0x31,0x49,0xFF,0x95,0xE1,0xC8,0x2E,0x84,0x01, +0x3E,0x07,0xF2,0xE5,0xFA,0x2E,0x84,0x0B,0x49,0x00,0x05,0x8A,0x84,0x0B,0x84,0x21, +0x49,0x00,0x05,0x94,0x84,0x01,0x49,0xFF,0x95,0xC8,0x49,0xFF,0x95,0xD0,0x5A,0x00, +0x01,0x0C,0x84,0x0B,0x49,0x00,0x05,0xA5,0x5A,0x08,0x01,0xF9,0x84,0x00,0x3E,0x07, +0xF2,0xE5,0x3E,0x07,0xF2,0xE4,0x84,0x0B,0x84,0x20,0x49,0x00,0x05,0x7F,0x2E,0x67, +0xF2,0xE5,0x97,0xB0,0x5A,0x68,0x01,0x0A,0x84,0x00,0x49,0xFF,0x94,0xA1,0x80,0x06, +0x49,0xFF,0xF9,0xE0,0x3E,0x67,0xF2,0xE4,0x44,0x10,0x00,0xC0,0x84,0x00,0x49,0xFF, +0xDE,0xA2,0x84,0x05,0x49,0xFF,0xF9,0xCA,0x84,0x05,0x49,0xFF,0xF9,0xD3,0x84,0x05, +0x49,0xFF,0xFA,0x93,0x49,0xFF,0xF9,0x62,0x84,0x02,0x49,0xFF,0xFA,0x15,0x84,0x01, +0x49,0xFF,0xFD,0x11,0x84,0xCA,0x49,0xFF,0xFA,0x74,0x44,0x74,0x50,0x28,0x84,0x00, +0x3E,0x07,0xF1,0x87,0x2E,0x07,0xF1,0x87,0xC8,0x15,0x2E,0x07,0xF1,0x77,0xC8,0x0E, +0xB4,0x07,0x92,0x03,0x96,0x06,0xC8,0x0A,0xB4,0x07,0x92,0x01,0x96,0x06,0xC0,0x06, +0x3C,0x0D,0xFE,0x44,0x5A,0x08,0x01,0xF0,0xD5,0x05,0x49,0xFF,0xD5,0x09,0x5A,0x08, +0x02,0xF9,0x84,0x00,0x3E,0x07,0xF1,0x86,0x2E,0x07,0xF1,0x86,0xC8,0x15,0x2E,0x07, +0xF1,0x77,0xC8,0x0E,0xB4,0x07,0x92,0x03,0x96,0x06,0xC8,0x0A,0xB4,0x07,0x92,0x01, +0x96,0x06,0xC0,0x06,0x3C,0x0D,0xFE,0x44,0x5A,0x08,0x01,0xF0,0xD5,0x05,0x49,0xFF, +0xD4,0xEF,0x5A,0x08,0x02,0xF9,0x8E,0xC1,0x97,0xB0,0xCE,0xCA,0x80,0x06,0x49,0xFF, +0xFC,0xD2,0x49,0xFF,0xF9,0x30,0x80,0x06,0x49,0xFF,0xFA,0x47,0x80,0x06,0x49,0xFF, +0xF9,0x81,0x84,0x03,0x49,0xFF,0xF9,0xC8,0xF0,0x01,0x49,0xFF,0x96,0xE1,0xFC,0xA1, +0xFC,0x00,0x49,0xFF,0xFF,0x5E,0x44,0x02,0x1D,0xE8,0x44,0x10,0x00,0xC0,0x84,0x40, +0x49,0xFF,0xE4,0x2E,0xFC,0x80,0xFC,0x00,0x2E,0x07,0xF9,0x18,0x49,0xFF,0xE6,0x89, +0x2E,0x17,0xF9,0x18,0x84,0x03,0x49,0xFF,0xE7,0x79,0x84,0x03,0x49,0xFF,0xF9,0x56, +0x2E,0x07,0xF9,0x18,0x84,0x20,0x2E,0x27,0xF9,0x16,0x49,0xFF,0xFB,0xEC,0x49,0xFF, +0xEC,0x17,0xC8,0x04,0x84,0x01,0x49,0xFF,0xFC,0x9E,0x84,0x01,0x49,0xFF,0xF9,0x9C, +0x44,0x64,0x50,0x28,0x49,0xFF,0xFC,0xAD,0x2E,0x07,0xF1,0x86,0xC0,0x1D,0x84,0xC0, +0x3E,0x67,0xF1,0x87,0x49,0xFF,0xDB,0x51,0x3E,0x67,0xF1,0x86,0x49,0xFF,0xFC,0xBB, +0x44,0x10,0x00,0x42,0x84,0x40,0x84,0x63,0x44,0x02,0x2F,0xF4,0x49,0xFF,0xE4,0x29, +0x84,0x00,0x49,0xFF,0xF9,0x2B,0x2E,0x07,0xF9,0x18,0x49,0xFF,0xE7,0xBD,0x84,0x01, +0x49,0xFF,0xF9,0x7A,0xFC,0x80,0x2E,0x07,0xF1,0x77,0xC8,0x0F,0xB4,0x06,0x92,0x03, +0x96,0x06,0x5A,0x00,0x01,0x0B,0xB4,0x06,0x92,0x01,0x96,0x06,0xC0,0x06,0x3C,0x0D, +0xFE,0x44,0x5A,0x08,0x01,0xD3,0xD5,0xD4,0x49,0xFF,0xD4,0x7A,0x5A,0x08,0x02,0xF9, +0xD5,0xCF,0xFC,0x00,0x49,0xFF,0x9C,0xB4,0xE6,0x03,0xE8,0x14,0x44,0x14,0x30,0x08, +0x84,0x1E,0xB4,0x41,0x44,0x64,0x30,0x0C,0xFE,0x16,0xB6,0x01,0xB4,0x06,0x58,0x00, +0x00,0x01,0xB6,0x06,0x84,0x01,0x49,0xFF,0xA0,0x3E,0xB4,0x06,0x58,0x00,0x00,0x02, +0xB6,0x06,0xFC,0x80,0xFC,0x00,0x44,0x64,0x55,0x08,0x44,0x0F,0xFF,0xBF,0xB4,0x26, +0xFE,0x0E,0xB6,0x06,0x84,0x21,0x80,0x06,0x49,0xFF,0x97,0x13,0x44,0x04,0x58,0x88, +0x84,0x37,0xB4,0x40,0xFE,0x56,0xB6,0x20,0x84,0x21,0x49,0xFF,0x96,0xDF,0xB4,0x26, +0x44,0x0F,0xFF,0x7F,0xFE,0x0E,0xB6,0x06,0xB4,0x26,0x44,0x0F,0xFF,0xEF,0xFE,0x0E, +0xB6,0x06,0x84,0x21,0x80,0x06,0x49,0xFF,0x96,0xFC,0x44,0x04,0x80,0x88,0x46,0x10, +0x10,0x00,0xB4,0x40,0xFE,0x57,0xB6,0x20,0xB4,0x40,0x46,0x10,0x20,0x00,0xFE,0x57, +0xB6,0x20,0x49,0xFF,0x9C,0x6D,0xE6,0x03,0xE8,0x1F,0x44,0x14,0x2C,0x0C,0x46,0x00, +0x01,0x00,0xB4,0x41,0xFE,0x17,0x84,0x41,0xB6,0x01,0x80,0x62,0x44,0x04,0x28,0x0C, +0x44,0x14,0x24,0x0C,0x49,0xFF,0x97,0x08,0x44,0x14,0x2C,0x18,0x46,0x00,0x04,0x00, +0xB4,0x41,0xFE,0x17,0x84,0x41,0xB6,0x01,0x80,0x62,0x44,0x04,0x28,0x18,0x44,0x14, +0x24,0x18,0x49,0xFF,0x96,0xF9,0x46,0x60,0x00,0x81,0x49,0xFF,0x97,0x07,0x04,0x13, +0x03,0xA0,0x84,0x10,0xFE,0x0E,0x14,0x03,0x03,0xA0,0x04,0x13,0x03,0x9F,0x46,0x0F, +0x0F,0xFF,0x50,0x00,0x0F,0xFF,0xFE,0x46,0x46,0x20,0x40,0x00,0xFE,0x57,0x14,0x13, +0x03,0x9F,0x04,0x13,0x03,0x9F,0x46,0x27,0x00,0x00,0x94,0x4C,0x92,0x24,0xFE,0x57, +0x14,0x13,0x03,0x9F,0x04,0x13,0x03,0x9E,0xFE,0x0E,0x46,0x10,0x70,0x00,0xFE,0x0F, +0x14,0x03,0x03,0x9E,0x49,0xFF,0x96,0xDB,0x46,0x00,0x03,0x33,0x50,0x00,0x03,0x33, +0x44,0x14,0x50,0x0C,0x14,0x03,0x00,0x34,0x14,0x03,0x00,0x36,0xB4,0x01,0x58,0x00, +0x00,0x01,0xB6,0x01,0x44,0x04,0x00,0x90,0x44,0x10,0x00,0x64,0xAC,0x40,0x44,0x14, +0x30,0x34,0x46,0x00,0x04,0x00,0xB4,0x41,0xFE,0x17,0xB6,0x01,0x44,0x07,0x10,0x18, +0x84,0x20,0xAE,0x41,0x44,0x16,0x20,0x04,0x46,0x00,0x10,0x00,0xB4,0x41,0xFE,0x17, +0xB6,0x01,0x44,0x14,0x2C,0x18,0x46,0x0B,0xFF,0xFF,0xB4,0x41,0x50,0x00,0x0F,0xFF, +0xFE,0x16,0xB6,0x01,0x44,0x14,0x2C,0x1C,0x44,0x0F,0xFF,0xEF,0xB4,0x41,0xFE,0x16, +0x84,0x41,0xB6,0x01,0x80,0x62,0x44,0x04,0x28,0x18,0x44,0x14,0x24,0x18,0x49,0xFF, +0x96,0x93,0x84,0x41,0x44,0x04,0x28,0x1C,0x44,0x14,0x24,0x1C,0x80,0x62,0x49,0xFF, +0x96,0x8B,0x49,0xFF,0x9B,0xDD,0xE6,0x03,0xE8,0x10,0x44,0x14,0x2C,0x04,0x46,0x00, +0x00,0x80,0xB4,0x41,0xFE,0x17,0x84,0x41,0xB6,0x01,0x80,0x62,0x44,0x04,0x28,0x04, +0x44,0x14,0x24,0x04,0x49,0xFF,0x96,0x78,0x49,0xFF,0x9B,0xCA,0xE6,0x03,0xE9,0x40, +0x84,0x08,0x49,0xFF,0xD8,0x6C,0x84,0x00,0x49,0xFF,0xD8,0x72,0x84,0x41,0x80,0x62, +0x44,0x04,0x28,0x14,0x44,0x14,0x24,0x14,0x49,0xFF,0x96,0x66,0x44,0x14,0x2C,0x0C, +0x46,0x0F,0xFE,0xFF,0xB4,0x41,0x50,0x00,0x0F,0xFF,0xFE,0x16,0x84,0x41,0xB6,0x01, +0x80,0x62,0x44,0x04,0x28,0x0C,0x44,0x14,0x24,0x0C,0x49,0xFF,0x96,0x55,0x44,0x04, +0x2C,0x04,0x46,0x10,0x08,0x00,0xB4,0x40,0xFE,0x57,0xB6,0x20,0xB4,0x40,0x46,0x1F, +0xFB,0xFF,0x50,0x10,0x8F,0xFF,0xFE,0x56,0xB6,0x20,0xB4,0x40,0x46,0x10,0x00,0x80, +0xFE,0x57,0xB6,0x20,0xB4,0x40,0x44,0x14,0x00,0x00,0xFE,0x57,0x84,0x41,0xB6,0x20, +0x80,0x62,0x44,0x04,0x28,0x04,0x44,0x14,0x24,0x04,0x49,0xFF,0x96,0x35,0xFC,0x80, +0xFC,0x00,0x84,0x01,0x49,0xFF,0x93,0x04,0x84,0x03,0x49,0xFF,0x93,0x24,0x84,0x00, +0x49,0xFF,0x93,0xAA,0x84,0x00,0x49,0xFF,0x93,0x2E,0x84,0x03,0x49,0xFF,0x93,0x4C, +0x84,0x00,0x49,0xFF,0x93,0x57,0x84,0x01,0x49,0xFF,0xD8,0xFC,0xFC,0x80,0xFC,0x00, +0x84,0x00,0x44,0x10,0x00,0xF0,0x49,0xFF,0x99,0xE0,0x84,0x02,0x44,0x10,0x00,0xF0, +0x49,0xFF,0x99,0xDB,0x84,0x01,0x44,0x10,0x00,0xF0,0x49,0xFF,0x99,0xD6,0x84,0x03, +0x44,0x10,0x00,0xF0,0x49,0xFF,0x99,0xD1,0x84,0x04,0x44,0x10,0x00,0xF0,0x49,0xFF, +0x99,0xCC,0x44,0x10,0x00,0xF0,0x84,0x05,0x49,0xFF,0x99,0xC7,0x84,0x01,0x49,0xFF, +0xD7,0xE6,0x84,0x03,0x84,0x2A,0x49,0xFF,0x9A,0x14,0x84,0x00,0x84,0x23,0x49,0xFF, +0x90,0xCB,0xFC,0x80,0xFC,0x01,0xF0,0x81,0x49,0xFF,0x9B,0x42,0xE6,0x03,0xE9,0x04, +0xF0,0x01,0x49,0xFF,0xDC,0xEA,0xFC,0x81,0xFC,0x00,0x84,0x01,0x49,0xFF,0x95,0x5F, +0x84,0x01,0x49,0xFF,0x91,0x07,0x84,0x01,0x49,0xFF,0x94,0x41,0x84,0x01,0x49,0xFF, +0xFF,0xEB,0x84,0x00,0x49,0xFF,0xF7,0x9C,0x84,0x00,0x49,0xFF,0xF7,0x7F,0x84,0x01, +0x49,0xFF,0x93,0x6F,0x84,0x01,0x49,0xFF,0x98,0x9E,0x84,0x01,0x49,0xFF,0x98,0xAB, +0x84,0x01,0x49,0xFF,0x93,0x66,0x84,0x01,0x49,0xFF,0x98,0xC3,0x84,0x00,0x80,0x20, +0x49,0xFF,0xE4,0x35,0x84,0x01,0x49,0xFF,0x94,0x63,0x84,0x01,0x49,0xFF,0x94,0x74, +0x84,0x01,0x49,0xFF,0x94,0x8A,0x49,0xFF,0x9B,0x0B,0xE6,0x03,0xE8,0x05,0x84,0x01, +0x84,0x2F,0x49,0xFF,0x9A,0x69,0x49,0xFF,0x9B,0x03,0xE6,0x03,0xE9,0x03,0x49,0xFF, +0x9B,0x03,0x49,0xFF,0x9A,0xFD,0xE6,0x03,0xE8,0x03,0x49,0xFF,0x9B,0x06,0x84,0x04, +0x49,0xFF,0x9B,0x17,0xFC,0x80,0xC2,0x65,0xFC,0x45,0x80,0xC0,0x84,0xE1,0x81,0x22, +0x81,0x41,0x49,0xFF,0xD8,0xA0,0xB6,0xDF,0x84,0xC0,0x80,0x27,0x44,0x24,0x10,0x10, +0x80,0x66,0x80,0x87,0x80,0xA6,0x80,0x07,0xF7,0x81,0xF6,0x82,0xF6,0x83,0xF7,0x84, +0xF6,0x85,0xF6,0x86,0xF6,0x87,0x14,0x9F,0x80,0x08,0x49,0xFF,0xEC,0x1C,0x80,0x06, +0x49,0xFF,0xD8,0x96,0x80,0x07,0x49,0xFF,0xD8,0xA1,0x80,0x06,0x49,0xFF,0xD8,0x80, +0x80,0x06,0x49,0xFF,0xD8,0xFA,0x49,0xFF,0xD8,0xC4,0x44,0x00,0x00,0x3B,0x49,0xFF, +0xD8,0xCE,0x80,0x0A,0x49,0xFF,0xD8,0xD9,0x80,0x07,0x49,0xFF,0xD8,0xE5,0x80,0x06, +0x49,0xFF,0xD8,0xC5,0x49,0xFF,0xD8,0xED,0x80,0x09,0x49,0xFF,0xD8,0xEF,0x80,0x06, +0x49,0xFF,0xD8,0xF0,0x80,0x07,0x49,0xFF,0xD8,0xED,0x40,0x00,0x00,0x09,0x44,0x04, +0x80,0x07,0x84,0x22,0xAE,0x40,0x80,0x07,0x49,0xFF,0xD8,0xED,0x44,0x00,0x00,0xFF, +0x49,0xFF,0xD8,0xED,0x44,0x64,0x80,0x04,0xA6,0x32,0x96,0x06,0xC0,0xFE,0x49,0xFF, +0xD8,0x92,0xC0,0xFB,0x44,0x04,0x80,0x07,0x84,0x22,0xAE,0x40,0x84,0x00,0x49,0xFF, +0xD8,0x47,0x84,0x01,0x49,0xFF,0xD8,0xC1,0x84,0x00,0x49,0xFF,0xD8,0xB5,0xFC,0xC5, +0xDD,0x9E,0xFC,0x00,0x49,0xFF,0x9A,0x8C,0xFC,0x80,0xFC,0x00,0x44,0x37,0x20,0x64, +0x84,0x30,0xB4,0x03,0xFE,0x0E,0x58,0x00,0x00,0x05,0xB6,0x03,0xB4,0x43,0x44,0x0F, +0xF0,0xFF,0xFE,0x86,0x58,0x21,0x05,0x00,0xB6,0x43,0x44,0x27,0x20,0x6C,0xB4,0x62, +0xFE,0x5E,0x58,0x10,0x80,0x05,0xB6,0x22,0xB4,0x22,0xFE,0x0E,0x58,0x00,0x05,0x00, +0xB6,0x02,0x44,0x00,0x00,0x3F,0x49,0xFF,0x94,0x01,0xFC,0x80,0xFC,0x00,0x49,0xFF, +0x9A,0xAA,0x49,0xFF,0x9B,0x10,0x49,0xFF,0x9B,0xB5,0x84,0x01,0x49,0xFF,0x9A,0x94, +0xFC,0x80,0xFC,0x01,0xF1,0x81,0x49,0xFF,0x9B,0x5D,0xF0,0x01,0x49,0xFF,0xDC,0x53, +0xFC,0x81,0xFC,0x00,0x49,0xFF,0xE9,0x74,0x5A,0x08,0x01,0x04,0x84,0x00,0xD5,0x02, +0x84,0x03,0x49,0xFF,0x9B,0x58,0xFC,0x80,0xFC,0x00,0x49,0xFF,0x9B,0x4B,0xFC,0x80, +0x44,0x04,0x40,0x0C,0xB4,0x00,0x92,0x01,0x96,0x06,0x5A,0x00,0x01,0x09,0x44,0x07, +0x10,0x14,0xB4,0x00,0x92,0x0E,0x56,0x00,0x00,0x01,0x96,0x06,0xDD,0x9E,0xFC,0x00, +0xC0,0x04,0x49,0xFF,0xFF,0xAC,0xFC,0x80,0x44,0x17,0x20,0x64,0x84,0x70,0xB4,0x41, +0xFE,0x9E,0xB6,0x41,0xB4,0x81,0x44,0x2F,0xF0,0xFF,0xFF,0x16,0xB6,0x81,0x44,0x17, +0x20,0x6C,0xB4,0x81,0xFE,0xE6,0xB6,0x61,0xB4,0x61,0xFE,0x9E,0xB6,0x41,0x49,0xFF, +0x93,0xB5,0xFC,0x80,0xFC,0x42,0x49,0xFF,0x91,0x59,0xB6,0x1F,0x49,0xFF,0xD8,0x78, +0xF0,0x81,0x84,0x00,0x49,0xFF,0xF9,0xBF,0x84,0x00,0x49,0xFF,0x93,0xD9,0x84,0x00, +0x49,0xFF,0xD8,0x5F,0x84,0x00,0x49,0xFF,0x93,0xE7,0x84,0x01,0x49,0xFF,0x93,0xED, +0x49,0xFF,0xFF,0x79,0xE6,0x03,0xE8,0x03,0x49,0xFF,0xFF,0x79,0x84,0x05,0x49,0xFF, +0xF6,0x61,0x84,0x05,0x49,0xFF,0xF6,0x52,0x84,0x05,0x49,0xFF,0xF7,0x1E,0x49,0xFF, +0xF5,0xED,0x84,0x01,0x49,0xFF,0xF9,0x9F,0x84,0xC2,0x49,0xFF,0xF7,0x02,0x44,0x74, +0x50,0x28,0x84,0x00,0x3E,0x07,0xF1,0x87,0x2E,0x07,0xF1,0x87,0xC8,0x15,0x2E,0x07, +0xF1,0x77,0xC8,0x0E,0xB4,0x07,0x92,0x03,0x96,0x06,0xC8,0x0A,0xB4,0x07,0x92,0x01, +0x96,0x06,0xC0,0x06,0x3C,0x0D,0xFE,0x44,0x5A,0x08,0x01,0xF0,0xD5,0x05,0x49,0xFF, +0xD1,0x97,0x5A,0x08,0x02,0xF9,0x84,0x00,0x3E,0x07,0xF1,0x86,0x2E,0x07,0xF1,0x86, +0xC8,0x15,0x2E,0x07,0xF1,0x77,0xC8,0x0E,0xB4,0x07,0x92,0x03,0x96,0x06,0xC8,0x0A, +0xB4,0x07,0x92,0x01,0x96,0x06,0xC0,0x06,0x3C,0x0D,0xFE,0x44,0x5A,0x08,0x01,0xF0, +0xD5,0x05,0x49,0xFF,0xD1,0x7D,0x5A,0x08,0x02,0xF9,0x84,0x00,0x3E,0x07,0xF1,0x86, +0x5A,0x60,0x01,0x04,0x84,0xC1,0xD5,0xC6,0x49,0xFF,0xF6,0xB9,0x84,0x00,0x49,0xFF, +0xF9,0x5A,0x49,0xFF,0xFF,0x20,0xE6,0x03,0xE9,0x04,0x84,0x00,0x49,0xFF,0x90,0xD6, +0x84,0x00,0x49,0xFF,0x92,0xB4,0x84,0x00,0x80,0x20,0x49,0xFF,0x9C,0x25,0x49,0xFF, +0x9C,0x95,0xF0,0x82,0x84,0x00,0x49,0xFF,0x9C,0x88,0x84,0x00,0x49,0xFF,0x9A,0xCD, +0x2E,0x07,0xF1,0x77,0xC8,0x10,0x44,0x14,0x50,0x28,0xB4,0x01,0x92,0x03,0x96,0x06, +0xC8,0x0A,0xB4,0x01,0x92,0x01,0x96,0x06,0xC0,0x06,0x3C,0x0D,0xFE,0x44,0x5A,0x08, +0x01,0x0B,0xD5,0x05,0x49,0xFF,0xD1,0x44,0x5A,0x08,0x02,0xF9,0x84,0xC0,0x80,0xE6, +0x81,0x26,0xD5,0x26,0x49,0xFF,0xFE,0xEF,0xE6,0x03,0xE8,0x0D,0x46,0x00,0x00,0x91, +0x04,0x70,0x00,0x11,0x44,0x07,0x20,0xC0,0xB4,0xC0,0x80,0x07,0x80,0x26,0x49,0xFF, +0xDB,0x6B,0xD5,0x05,0x84,0xC0,0x49,0xFF,0x9B,0x53,0x80,0xE6,0x49,0xFF,0xE8,0x88, +0x81,0x20,0x5A,0x08,0x01,0x0A,0x44,0x00,0x02,0x58,0x80,0x29,0x49,0xFF,0x9B,0xFE, +0x80,0x09,0x49,0xFF,0x9C,0x05,0x84,0x01,0x49,0xFF,0x95,0x54,0x85,0x21,0x84,0x00, +0x49,0xFF,0xF5,0xAC,0x84,0x00,0x49,0xFF,0xF6,0x78,0x49,0xFF,0xF5,0x5C,0x49,0xFF, +0xF6,0x60,0x84,0x01,0x49,0xFF,0xF8,0xED,0x49,0xFF,0xE8,0x73,0xF0,0x83,0xF1,0x03, +0x84,0x01,0x49,0x00,0x01,0x12,0x5A,0x98,0x01,0x0B,0x49,0xFF,0x93,0x83,0x5A,0x00, +0x01,0xFE,0x64,0x00,0x00,0x20,0x84,0x01,0x3E,0x07,0xF1,0x84,0x84,0x00,0x49,0xFF, +0xF8,0xD8,0x49,0xFF,0xF6,0x3C,0x2E,0x07,0xF1,0xAD,0xC8,0x05,0x84,0x00,0x49,0xFF, +0xF8,0xDA,0xD5,0x05,0x49,0xFF,0xE8,0x4C,0x5A,0x00,0x01,0xFA,0x49,0xFF,0xFE,0x9B, +0xE6,0x03,0xE8,0x06,0x80,0x07,0x80,0x26,0x49,0xFF,0xDB,0x1E,0xD5,0x06,0x84,0x00, +0x49,0xFF,0x95,0x18,0x49,0xFF,0x9B,0x04,0x44,0x10,0x00,0xEB,0x84,0x01,0x49,0x00, +0x00,0xE4,0xB4,0x1F,0x49,0xFF,0x90,0x42,0xF0,0x02,0x49,0xFF,0x9B,0xFE,0x49,0xFF, +0xFE,0x82,0xE6,0x03,0xE8,0x04,0x84,0x00,0x49,0xFF,0xFE,0xD3,0x84,0x00,0x49,0xFF, +0x92,0xEC,0x84,0x20,0x84,0x01,0x49,0xFF,0x9B,0x87,0x84,0x00,0x49,0xFF,0xF6,0x25, +0x84,0x00,0x49,0xFF,0xF5,0x5F,0x84,0x01,0x49,0xFF,0x92,0x09,0x84,0x01,0x49,0xFF, +0x92,0xD3,0x2E,0x67,0xF1,0xAD,0x97,0xB0,0xC6,0x07,0x84,0x00,0x84,0xC1,0x3E,0x07, +0xF1,0xAD,0x3C,0x6E,0x05,0x45,0x2E,0x07,0xF1,0xAC,0xC0,0x08,0x84,0x00,0x3E,0x07, +0xF1,0xAC,0x49,0xFF,0xF5,0xD4,0x49,0xFF,0xDC,0xF9,0x49,0xFF,0xE1,0x84,0x2E,0x07, +0xF2,0xE5,0x5A,0x08,0x01,0x11,0x49,0xFF,0xE7,0xFB,0xC8,0x0D,0x49,0xFF,0x91,0x05, +0x49,0xFF,0x91,0x0D,0x80,0xE0,0xC8,0xFD,0x84,0x01,0x49,0xFF,0x8F,0xF1,0x80,0x07, +0x49,0xFF,0xF5,0x30,0x84,0x00,0x3E,0x07,0xF2,0xE4,0x84,0x00,0x49,0xFF,0xF5,0x1E, +0xF0,0x01,0x49,0xFF,0x92,0x8D,0x84,0x01,0x49,0xFF,0xF8,0x63,0x49,0xFF,0xF5,0xD1, +0xCE,0x05,0x84,0x01,0x49,0xFF,0xF8,0x67,0xD5,0x05,0x49,0xFF,0xE7,0xD9,0x5A,0x00, +0x01,0xFA,0x49,0xFF,0xE7,0xD5,0x5A,0x08,0x01,0x23,0x44,0x74,0x50,0x28,0x2E,0x07, +0xF1,0x86,0xC8,0x16,0x2E,0x07,0xF1,0x77,0xC8,0x0F,0xB4,0x07,0x92,0x03,0x96,0x06, +0x5A,0x00,0x01,0x0B,0xB4,0x07,0x92,0x01,0x96,0x06,0xC0,0x06,0x3C,0x0D,0xFE,0x44, +0x5A,0x08,0x01,0xEF,0xD5,0x05,0x49,0xFF,0xD0,0x5B,0x5A,0x08,0x02,0xF9,0x49,0xFF, +0xD7,0x04,0x84,0x00,0x3E,0x07,0xF1,0x86,0x3E,0x07,0xF1,0x87,0x80,0x06,0xFC,0xC2, +0xFC,0x00,0x44,0x00,0xE6,0x72,0x49,0xFF,0xDB,0xB0,0x84,0x01,0x84,0x20,0x49,0xFF, +0x9A,0xED,0x84,0x01,0x80,0x20,0x49,0xFF,0x9A,0xE9,0x84,0x00,0x80,0x20,0x49,0xFF, +0x9A,0xF9,0x84,0x20,0xFA,0x0E,0x49,0xFF,0x9B,0x19,0x84,0x00,0x49,0xFF,0x9B,0x20, +0x84,0x00,0x80,0x20,0x49,0xFF,0x9B,0x43,0x84,0x00,0x80,0x20,0x49,0xFF,0x94,0x76, +0x84,0x00,0x49,0xFF,0x9B,0x46,0x84,0x20,0x84,0x01,0x49,0xFF,0x9A,0xED,0x84,0x00, +0x49,0xFF,0x9B,0x20,0x84,0x00,0x84,0x21,0x49,0xFF,0x9A,0xDC,0x84,0x21,0x44,0x00, +0x00,0xD2,0x49,0xFF,0x9A,0xFB,0x84,0x01,0x49,0xFF,0x9B,0x02,0x84,0x00,0x84,0x21, +0x49,0xFF,0x9B,0x25,0x84,0x01,0x80,0x20,0x49,0xFF,0x94,0x58,0x49,0x00,0x00,0x34, +0xFC,0x80,0xFC,0x00,0x84,0x01,0x49,0xFF,0xDB,0xAA,0x84,0x07,0x49,0xFF,0xDB,0xAB, +0x84,0x00,0x49,0xFF,0xDB,0xB4,0x84,0x00,0x49,0xFF,0xDB,0xBD,0x44,0x00,0xFF,0x14, +0x49,0xFF,0x9B,0x42,0x49,0xFF,0x9B,0x50,0x49,0xFF,0x9B,0x47,0xFC,0x80,0xFC,0x00, +0x49,0xFF,0x9B,0x43,0xFC,0x80,0xFC,0x00,0x5A,0x08,0x01,0x0B,0xFE,0x0B,0x96,0x01, +0x49,0xFF,0x9B,0x32,0x49,0xFF,0x9B,0x40,0x49,0xFF,0x9B,0x37,0xFC,0x80,0x49,0xFF, +0x9B,0x4B,0xFC,0x80,0x3C,0x00,0x0A,0xAE,0x3C,0x10,0x0A,0xAE,0x96,0x01,0x4C,0x00, +0xFF,0xFB,0xDD,0x9E,0x84,0x00,0x3C,0x08,0x0A,0x8C,0xDD,0x9E,0x44,0x22,0x39,0x84, +0x38,0x11,0x01,0x09,0xDD,0x9E,0xFC,0x00,0x80,0xC0,0x49,0xFF,0xFF,0xED,0x44,0x12, +0x39,0xA4,0x38,0x00,0x99,0x09,0xFC,0x80,0x80,0x60,0x5A,0x18,0x01,0x10,0xFC,0x20, +0x80,0xC1,0x80,0xE0,0x49,0xFF,0xFF,0xF1,0x3C,0x20,0x0A,0x8C,0x40,0x13,0x1C,0x0C, +0xFE,0x57,0x96,0x49,0x3C,0x18,0x0A,0x8C,0xFC,0xA0,0x84,0x41,0x3C,0x00,0x0A,0x8C, +0x40,0x11,0x0C,0x0C,0xFE,0x4B,0xFE,0x46,0x3C,0x18,0x0A,0x8C,0xDD,0x9E,0x3C,0x10, +0x0A,0x8C,0x40,0x10,0x80,0x0E,0x96,0x46,0xC9,0x03,0x80,0x01,0xDD,0x9E,0xFC,0x00, +0x80,0xC0,0x49,0xFF,0xFF,0xC1,0x44,0x12,0x39,0xA4,0x44,0x22,0x39,0x84,0x38,0x10, +0x99,0x01,0x38,0x21,0x19,0x01,0x8A,0x01,0x96,0x01,0xE2,0x02,0x56,0x07,0x80,0x01, +0xFC,0x80,0x3C,0x00,0x0A,0xAE,0x8C,0x01,0x96,0x01,0x3C,0x08,0x0A,0xAE,0xDD,0x9E, +0x3A,0x1F,0xA4,0x3C,0x3A,0xFF,0xBF,0xBC,0x64,0x62,0xA4,0x02,0x9D,0xB4,0x64,0x72, +0x04,0x02,0x3A,0x6F,0x9C,0x3C,0x64,0x62,0x00,0x02,0x9F,0xB2,0x64,0x62,0x00,0x03, +0x64,0x00,0x00,0x08,0x49,0x00,0x02,0x13,0x3A,0x6F,0x9C,0x04,0x64,0x62,0xA4,0x03, +0x64,0x72,0x04,0x03,0x3A,0xFF,0xBF,0x84,0x3A,0x1F,0xA4,0x04,0x64,0x00,0x00,0x04, +0x3A,0x1F,0xA4,0x3C,0x3A,0xFF,0xBF,0xBC,0x64,0x62,0xA4,0x02,0x9D,0xB4,0x64,0x72, +0x04,0x02,0x3A,0x6F,0x9C,0x3C,0x64,0x62,0x00,0x02,0x9F,0xB2,0x64,0x62,0x00,0x03, +0x64,0x00,0x00,0x08,0x49,0x00,0x01,0xF4,0x3A,0x6F,0x9C,0x04,0x64,0x62,0xA4,0x03, +0x64,0x72,0x04,0x03,0x3A,0xFF,0xBF,0x84,0x3A,0x1F,0xA4,0x04,0x64,0x00,0x00,0x04, +0x3A,0x1F,0xA4,0x3C,0x3A,0xFF,0xBF,0xBC,0x64,0x62,0xA4,0x02,0x9D,0xB4,0x64,0x72, +0x04,0x02,0x3A,0x6F,0x9C,0x3C,0x64,0x62,0x00,0x02,0x9F,0xB2,0x64,0x62,0x00,0x03, +0x64,0x00,0x00,0x08,0x49,0x00,0x01,0xD5,0x3A,0x6F,0x9C,0x04,0x64,0x62,0xA4,0x03, +0x64,0x72,0x04,0x03,0x3A,0xFF,0xBF,0x84,0x3A,0x1F,0xA4,0x04,0x64,0x00,0x00,0x04, +0x3A,0x1F,0xA4,0x3C,0x3A,0xFF,0xBF,0xBC,0x64,0x62,0xA4,0x02,0x9D,0xB4,0x64,0x72, +0x04,0x02,0x3A,0x6F,0x9C,0x3C,0x64,0x62,0x00,0x02,0x9F,0xB2,0x64,0x62,0x00,0x03, +0x64,0x00,0x00,0x08,0x49,0x00,0x01,0xB6,0x3A,0x6F,0x9C,0x04,0x64,0x62,0xA4,0x03, +0x64,0x72,0x04,0x03,0x3A,0xFF,0xBF,0x84,0x3A,0x1F,0xA4,0x04,0x64,0x00,0x00,0x04, +0x3A,0x1F,0xA4,0x3C,0x3A,0xFF,0xBF,0xBC,0x64,0x62,0xA4,0x02,0x9D,0xB4,0x64,0x72, +0x04,0x02,0x3A,0x6F,0x9C,0x3C,0x64,0x62,0x00,0x02,0x9F,0xB2,0x64,0x62,0x00,0x03, +0x64,0x00,0x00,0x08,0x49,0x00,0x01,0x97,0x3A,0x6F,0x9C,0x04,0x64,0x62,0xA4,0x03, +0x64,0x72,0x04,0x03,0x3A,0xFF,0xBF,0x84,0x3A,0x1F,0xA4,0x04,0x64,0x00,0x00,0x04, +0x3A,0x1F,0xA4,0x3C,0x3A,0xFF,0xBF,0xBC,0x64,0x62,0xA4,0x02,0x9D,0xB4,0x64,0x72, +0x04,0x02,0x3A,0x6F,0x9C,0x3C,0x64,0x62,0x00,0x02,0x9F,0xB2,0x64,0x62,0x00,0x03, +0x64,0x00,0x00,0x08,0x49,0x00,0x01,0x78,0x3A,0x6F,0x9C,0x04,0x64,0x62,0xA4,0x03, +0x64,0x72,0x04,0x03,0x3A,0xFF,0xBF,0x84,0x3A,0x1F,0xA4,0x04,0x64,0x00,0x00,0x04, +0x3A,0x1F,0xA4,0x3C,0x3A,0xFF,0xBF,0xBC,0x64,0x62,0xA4,0x02,0x9D,0xB4,0x64,0x72, +0x04,0x02,0x3A,0x6F,0x9C,0x3C,0x64,0x62,0x00,0x02,0x9F,0xB2,0x64,0x62,0x00,0x03, +0x64,0x00,0x00,0x08,0x49,0x00,0x01,0x59,0x3A,0x6F,0x9C,0x04,0x64,0x62,0xA4,0x03, +0x64,0x72,0x04,0x03,0x3A,0xFF,0xBF,0x84,0x3A,0x1F,0xA4,0x04,0x64,0x00,0x00,0x04, +0x3A,0x1F,0xA4,0x3C,0x3A,0xFF,0xBF,0xBC,0x64,0x62,0xA4,0x02,0x9D,0xB4,0x64,0x72, +0x04,0x02,0x3A,0x6F,0x9C,0x3C,0x64,0x62,0x00,0x02,0x9F,0xB2,0x64,0x62,0x00,0x03, +0x64,0x00,0x00,0x08,0x49,0x00,0x01,0x3A,0x3A,0x6F,0x9C,0x04,0x64,0x62,0xA4,0x03, +0x64,0x72,0x04,0x03,0x3A,0xFF,0xBF,0x84,0x3A,0x1F,0xA4,0x04,0x64,0x00,0x00,0x04, +0x3A,0x1F,0x94,0x3C,0x3A,0xFF,0xBF,0xBC,0x64,0x12,0xA4,0x02,0x64,0x22,0x04,0x02, +0x3A,0x1F,0x88,0x3C,0x64,0x12,0x00,0x02,0x9E,0x4A,0x64,0x12,0x00,0x03,0x44,0x10, +0x00,0xA4,0x38,0x10,0x82,0x02,0xDD,0x21,0x3A,0x0F,0x84,0x04,0x64,0x02,0x00,0x43, +0x64,0x00,0x00,0x08,0x64,0x02,0xA4,0x03,0x64,0x12,0x04,0x03,0x3A,0xFF,0xBF,0x84, +0x3A,0x1F,0x94,0x04,0x3A,0x0F,0x80,0x04,0x64,0x00,0x00,0x04,0x3A,0x1F,0x94,0x3C, +0x3A,0xFF,0xBF,0xBC,0x44,0x10,0x00,0xA4,0x38,0x10,0x82,0x02,0xDD,0x21,0x3A,0xFF, +0xBF,0x84,0x3A,0x1F,0x94,0x04,0x3A,0x0F,0x80,0x04,0x64,0x00,0x00,0x04,0xD5,0x00, +0x3A,0x0F,0x80,0x3C,0x84,0x00,0xD5,0xEB,0x3A,0x0F,0x80,0x3C,0x84,0x01,0xD5,0xE7, +0x3A,0x0F,0x80,0x3C,0x84,0x02,0xD5,0xE3,0x3A,0x0F,0x80,0x3C,0x84,0x03,0xD5,0xDF, +0x3A,0x0F,0x80,0x3C,0x84,0x04,0xD5,0xDB,0x3A,0x0F,0x80,0x3C,0x84,0x05,0xD5,0xD7, +0x3A,0x0F,0x80,0x3C,0x84,0x06,0xD5,0xD3,0x3A,0x0F,0x80,0x3C,0x84,0x07,0xD5,0xCF, +0x3A,0x0F,0x80,0x3C,0x84,0x08,0xD5,0xCB,0x3A,0x0F,0x80,0x3C,0x84,0x09,0xD5,0xC7, +0x3A,0x0F,0x80,0x3C,0x84,0x0A,0xD5,0xC3,0x3A,0x0F,0x80,0x3C,0x84,0x0B,0xD5,0xBF, +0x3A,0x0F,0x80,0x3C,0x84,0x0C,0xD5,0xBB,0x3A,0x0F,0x80,0x3C,0x84,0x0D,0xD5,0xB7, +0x3A,0x0F,0x80,0x3C,0x84,0x0E,0xD5,0xB3,0x3A,0x0F,0x80,0x3C,0x84,0x0F,0xD5,0xAF, +0x3A,0x0F,0x80,0x3C,0xFA,0x00,0xD5,0xAB,0x3A,0x0F,0x80,0x3C,0xFA,0x01,0xD5,0xA7, +0x3A,0x0F,0x80,0x3C,0xFA,0x02,0xD5,0xA3,0x3A,0x0F,0x80,0x3C,0xFA,0x03,0xD5,0x9F, +0x3A,0x0F,0x80,0x3C,0xFA,0x04,0xD5,0x9B,0x3A,0x0F,0x80,0x3C,0xFA,0x05,0xD5,0x97, +0x3A,0x0F,0x80,0x3C,0xFA,0x06,0xD5,0x93,0x3A,0x0F,0x80,0x3C,0xFA,0x07,0xD5,0x8F, +0x3A,0x0F,0x80,0x3C,0xFA,0x08,0xD5,0x8B,0x3A,0x0F,0x80,0x3C,0xFA,0x09,0xD5,0x87, +0x3A,0x0F,0x80,0x3C,0xFA,0x0A,0xD5,0x83,0x3A,0x0F,0x80,0x3C,0xFA,0x0B,0x48,0xFF, +0xFF,0x7F,0x3A,0x0F,0x80,0x3C,0xFA,0x0C,0x48,0xFF,0xFF,0x7A,0x3A,0x0F,0x80,0x3C, +0xFA,0x0D,0x48,0xFF,0xFF,0x75,0x3A,0x0F,0x80,0x3C,0xFA,0x0E,0x48,0xFF,0xFF,0x70, +0x3A,0x0F,0x80,0x3C,0x44,0x00,0x00,0x1F,0x48,0xFF,0xFF,0x6A,0x84,0x01,0x64,0x04, +0xC0,0x02,0x44,0x02,0x00,0x01,0x64,0x04,0xE0,0x03,0x45,0xD2,0x24,0x68,0x3F,0xC8, +0x00,0x00,0x45,0xF2,0x5F,0xF8,0x84,0x00,0x42,0x0E,0x00,0x21,0x49,0x00,0x00,0x42, +0x49,0x00,0x03,0x0C,0xD5,0x00,0x92,0x00,0xFC,0x00,0x44,0x32,0x11,0x00,0x44,0x22, +0x10,0x00,0x9A,0x9A,0x44,0x02,0x10,0x00,0x44,0x11,0x20,0x00,0x49,0xFF,0xFA,0xFD, +0x49,0xFF,0xD8,0xAC,0x44,0x32,0x04,0x08,0x44,0x22,0x00,0x00,0x9A,0x9A,0x44,0x02, +0x00,0x00,0x44,0x11,0x00,0x00,0x49,0xFF,0xFA,0xF0,0x49,0xFF,0xD8,0x9F,0x44,0x02, +0x11,0x00,0x44,0x22,0x48,0xD0,0x84,0x20,0x8A,0x40,0x49,0x00,0x03,0x19,0xFC,0x80, +0x84,0x00,0x64,0x05,0xE4,0x03,0x84,0x1F,0x64,0x03,0x04,0x03,0x64,0x03,0x24,0x03, +0x64,0x12,0x24,0x02,0x44,0x0F,0x0F,0xFF,0xFE,0x0E,0x64,0x02,0x24,0x03,0x64,0x12, +0x00,0x02,0x84,0x18,0xFE,0x0E,0x64,0x02,0x00,0x03,0x64,0x00,0x00,0x08,0xDD,0x9E, +0xFC,0x00,0x49,0xFF,0xFF,0xE7,0x64,0x00,0x80,0x02,0x92,0x1E,0xC0,0x06,0x64,0x00, +0x84,0x02,0x96,0x2E,0xC0,0x02,0xD5,0x00,0x49,0xFF,0xFF,0xB8,0x64,0x12,0x00,0x43, +0x64,0x00,0x00,0x08,0x64,0x00,0x00,0x08,0xFC,0x80,0xDD,0x9E,0xDD,0x9E,0xDD,0x9E, +0xDD,0x9E,0xDD,0x9E,0xDD,0x9E,0xDD,0x9E,0xDD,0x9E,0xDD,0x9E,0x44,0x04,0x80,0x04, +0xA6,0x01,0x96,0x06,0xC0,0x05,0x44,0x04,0x80,0x05,0x84,0x21,0xAE,0x40,0xDD,0x9E, +0x44,0x04,0x80,0x01,0xA6,0x00,0xC8,0x05,0xFC,0x00,0x49,0xFF,0xD4,0xCB,0xFC,0x80, +0xDD,0x9E,0xFC,0x00,0x44,0x04,0x80,0x00,0xA6,0x03,0x49,0xFF,0xD8,0xBA,0xFC,0x80, +0x44,0x14,0x80,0x04,0x44,0x04,0x80,0x84,0xA6,0x88,0xB4,0x00,0x96,0x06,0xFE,0x16, +0xC0,0x03,0x84,0x01,0xAE,0x08,0xDD,0x9E,0xFC,0x00,0x44,0x04,0x80,0x00,0xA6,0x03, +0x49,0xFF,0x98,0x58,0xFC,0x80,0x44,0x14,0x80,0x14,0xA6,0x08,0x96,0x06,0xC0,0x09, +0x84,0x01,0xAE,0x08,0x44,0x14,0x80,0x94,0xB4,0x01,0x58,0x00,0x00,0x01,0xB6,0x01, +0x44,0x14,0x80,0x14,0xA6,0x08,0x92,0x01,0x96,0x06,0xC0,0x09,0x84,0x02,0xAE,0x08, +0x44,0x14,0x80,0x94,0xB4,0x01,0x58,0x00,0x00,0x02,0xB6,0x01,0xDD,0x9E,0xFC,0x00, +0x49,0xFF,0xD3,0x30,0xFC,0x80,0x44,0x04,0x80,0x04,0xA6,0x02,0x92,0x02,0x96,0x06, +0xC0,0x05,0x44,0x04,0x80,0x06,0x84,0x24,0xAE,0x40,0xDD,0x9E,0x44,0x14,0x80,0x04, +0xA6,0x0B,0x92,0x01,0x96,0x06,0xC0,0x05,0x44,0x04,0x80,0x07,0x84,0x42,0xAE,0x80, +0xA6,0x0B,0x96,0x06,0xC0,0x05,0x44,0x04,0x80,0x07,0x84,0x21,0xAE,0x40,0xDD,0x9E, +0x44,0x04,0x80,0x08,0xB4,0x20,0x92,0x24,0x96,0x46,0xC1,0x03,0xFA,0x20,0xAE,0x40, +0xB4,0x00,0x84,0x21,0x96,0x06,0xC0,0x06,0x44,0x04,0x80,0x08,0xAE,0x40,0x3E,0x17, +0xF1,0xAD,0x44,0x04,0x80,0x08,0xB4,0x20,0x92,0x21,0x96,0x46,0xC1,0x06,0x84,0x22, +0xAE,0x40,0x84,0x21,0x3E,0x17,0xF1,0xAC,0xB4,0x00,0x92,0x02,0x96,0x06,0xC0,0x05, +0x44,0x04,0x80,0x08,0x84,0x24,0xAE,0x40,0xDD,0x9E,0xDD,0x9E,0xFC,0x00,0x49,0xFF, +0xD1,0xDA,0xFC,0x80,0xFC,0x00,0x49,0xFF,0xD2,0x3B,0xFC,0x80,0xFC,0x00,0x49,0xFF, +0x8C,0x4C,0xFC,0x80,0x44,0x14,0x80,0x08,0xB4,0x01,0x92,0x08,0x96,0x06,0xC0,0x05, +0x44,0x04,0x80,0x09,0x84,0x41,0xAE,0x80,0xB4,0x01,0x92,0x09,0x96,0x06,0xC0,0x0F, +0x44,0x04,0x80,0x09,0x84,0x22,0xAE,0x40,0x84,0x01,0x3E,0x07,0xF1,0xB0,0x44,0x04, +0x50,0x28,0xB4,0x00,0x92,0x06,0x96,0x1F,0x3E,0x07,0xF1,0xAF,0xDD,0x9E,0x44,0x04, +0x80,0x08,0xB4,0x00,0x92,0x12,0x96,0x06,0xC0,0x15,0x44,0x14,0x80,0x88,0xB4,0x01, +0x92,0x12,0x96,0x06,0xC0,0x0F,0xB4,0x41,0x44,0x0B,0xFF,0xFF,0xFE,0x16,0xB6,0x01, +0x44,0x04,0x80,0x0A,0x84,0x22,0xAE,0x40,0x84,0x21,0x3E,0x17,0xF1,0xB3,0x84,0x24, +0xAE,0x40,0x44,0x04,0x80,0x08,0x84,0x21,0xB4,0x00,0x92,0x10,0x96,0x06,0xC0,0x0C, +0x44,0x04,0x80,0x88,0xB4,0x00,0x92,0x10,0x96,0x06,0xC0,0x06,0x44,0x04,0x80,0x0A, +0x3E,0x17,0xF1,0xB2,0xAE,0x40,0x44,0x04,0x80,0x08,0xB4,0x00,0x92,0x11,0x96,0x06, +0xC0,0x0E,0x44,0x04,0x80,0x88,0xB4,0x00,0x92,0x11,0x96,0x06,0xC0,0x08,0x84,0x01, +0x3E,0x07,0xF1,0xB1,0x44,0x04,0x80,0x0A,0x84,0x22,0xAE,0x40,0xDD,0x9E,0x44,0x14, +0x80,0x08,0x84,0x41,0xB4,0x01,0x92,0x18,0x96,0x06,0xC0,0x06,0x44,0x04,0x80,0x0B, +0xAE,0x80,0x3E,0x27,0xF1,0x78,0xB4,0x01,0x92,0x19,0x96,0x06,0xC0,0x1D,0x44,0x04, +0x80,0x0B,0x84,0x22,0xAE,0x40,0x84,0x00,0x3E,0x07,0xF1,0x78,0x46,0x00,0x00,0x81, +0x44,0x1F,0xFE,0xFF,0x50,0x30,0x00,0x70,0xB4,0x43,0xFE,0x56,0xB6,0x23,0xB4,0x43, +0x44,0x1E,0xFF,0xFF,0xFE,0x56,0xB6,0x23,0xB4,0x43,0x46,0x1F,0xEF,0xFF,0x50,0x10, +0x8F,0xFF,0xFE,0x56,0xB6,0x23,0x44,0x04,0x80,0x08,0xB4,0x00,0x92,0x1A,0x96,0x06, +0xC0,0x0E,0x44,0x14,0x70,0x08,0xB4,0x01,0x92,0x10,0x40,0x00,0x40,0x08,0x58,0x00, +0x78,0x23,0xB6,0x01,0x44,0x04,0x80,0x0B,0x84,0x24,0xAE,0x40,0x44,0x04,0x80,0x08, +0xB4,0x00,0x92,0x1B,0x96,0x06,0xC0,0x05,0x44,0x04,0x80,0x0B,0x84,0x28,0xAE,0x40, +0xDD,0x9E,0x44,0x04,0x80,0x04,0xA6,0x02,0x92,0x03,0x96,0x06,0xC0,0x05,0x44,0x04, +0x80,0x06,0x84,0x28,0xAE,0x40,0xDD,0x9E,0x44,0x14,0x80,0x0C,0xB4,0x01,0x92,0x10, +0x96,0x06,0xC0,0x05,0x44,0x04,0x80,0x0E,0x84,0x41,0xAE,0x80,0xB4,0x01,0x92,0x11, +0x96,0x06,0xC0,0x05,0x44,0x04,0x80,0x0E,0x84,0x22,0xAE,0x40,0x44,0x14,0x80,0x0C, +0xB4,0x01,0x92,0x12,0x96,0x06,0xC0,0x05,0x44,0x04,0x80,0x0E,0x84,0x44,0xAE,0x80, +0xB4,0x01,0x92,0x13,0x96,0x06,0xC0,0x05,0x44,0x04,0x80,0x0E,0x84,0x28,0xAE,0x40, +0x44,0x14,0x80,0x0C,0xB4,0x01,0x92,0x14,0x96,0x06,0xC0,0x05,0x44,0x04,0x80,0x0E, +0xFA,0x40,0xAE,0x80,0xB4,0x01,0x92,0x15,0x96,0x06,0xC0,0x05,0x44,0x04,0x80,0x0E, +0xFA,0x30,0xAE,0x40,0x44,0x14,0x80,0x0C,0xB4,0x01,0x92,0x16,0x96,0x06,0xC0,0x06, +0x44,0x04,0x80,0x0E,0x44,0x20,0x00,0x40,0xAE,0x80,0xB4,0x01,0x92,0x17,0x96,0x06, +0xC0,0x06,0x44,0x04,0x80,0x0E,0x44,0x1F,0xFF,0x80,0xAE,0x40,0x44,0x14,0x80,0x0C, +0xB4,0x01,0x92,0x18,0x96,0x06,0xC0,0x05,0x44,0x04,0x80,0x0F,0x84,0x41,0xAE,0x80, +0xB4,0x01,0x92,0x19,0x96,0x06,0xC0,0x05,0x44,0x04,0x80,0x0F,0x84,0x22,0xAE,0x40, +0x44,0x14,0x80,0x0C,0xB4,0x01,0x92,0x1A,0x96,0x06,0xC0,0x05,0x44,0x04,0x80,0x0F, +0x84,0x44,0xAE,0x80,0xB4,0x01,0x92,0x1B,0x96,0x06,0xC0,0x05,0x44,0x04,0x80,0x0F, +0x84,0x28,0xAE,0x40,0x44,0x14,0x80,0x0C,0xB4,0x01,0x92,0x1C,0x96,0x06,0xC0,0x05, +0x44,0x04,0x80,0x0F,0xFA,0x40,0xAE,0x80,0xB4,0x01,0x92,0x1D,0x96,0x06,0xC0,0x05, +0x44,0x04,0x80,0x0F,0xFA,0x30,0xAE,0x40,0x44,0x14,0x80,0x0C,0xB4,0x01,0x92,0x1E, +0x96,0x06,0xC0,0x06,0x44,0x04,0x80,0x0F,0x44,0x20,0x00,0x40,0xAE,0x80,0xB4,0x01, +0x4E,0x04,0x00,0x07,0x44,0x04,0x80,0x0F,0x44,0x1F,0xFF,0x80,0xAE,0x40,0xDD,0x9E, +0x44,0x04,0x80,0x0C,0xB4,0x20,0x96,0x46,0xC1,0x03,0x84,0x21,0xAE,0x40,0xB4,0x00, +0x92,0x01,0x96,0x06,0xC0,0x05,0x44,0x04,0x80,0x0C,0x84,0x22,0xAE,0x40,0x44,0x04, +0x80,0x0C,0xB4,0x20,0x92,0x22,0x96,0x46,0xC1,0x03,0x84,0x24,0xAE,0x40,0xB4,0x00, +0x92,0x03,0x96,0x06,0xC0,0x05,0x44,0x04,0x80,0x0C,0x84,0x28,0xAE,0x40,0x44,0x04, +0x80,0x0C,0xB4,0x20,0x92,0x24,0x96,0x46,0xC1,0x03,0xFA,0x20,0xAE,0x40,0xB4,0x00, +0x92,0x05,0x96,0x06,0xC0,0x05,0x44,0x04,0x80,0x0C,0xFA,0x30,0xAE,0x40,0x44,0x04, +0x80,0x0C,0xB4,0x20,0x92,0x26,0x96,0x46,0xC1,0x04,0x44,0x10,0x00,0x40,0xAE,0x40, +0xB4,0x00,0x92,0x07,0x96,0x06,0xC0,0x06,0x44,0x04,0x80,0x0C,0x44,0x1F,0xFF,0x80, +0xAE,0x40,0x44,0x14,0x80,0x0C,0xB4,0x01,0x92,0x08,0x96,0x06,0xC0,0x05,0x44,0x04, +0x80,0x0D,0x84,0x41,0xAE,0x80,0xB4,0x01,0x92,0x09,0x96,0x06,0xC0,0x05,0x44,0x04, +0x80,0x0D,0x84,0x22,0xAE,0x40,0x44,0x14,0x80,0x0C,0xB4,0x01,0x92,0x0A,0x96,0x06, +0xC0,0x05,0x44,0x04,0x80,0x0D,0x84,0x44,0xAE,0x80,0xB4,0x01,0x92,0x0B,0x96,0x06, +0xC0,0x05,0x44,0x04,0x80,0x0F,0x84,0x28,0xAE,0x40,0x44,0x14,0x80,0x0C,0xB4,0x01, +0x92,0x0C,0x96,0x06,0xC0,0x05,0x44,0x04,0x80,0x0D,0xFA,0x40,0xAE,0x80,0xB4,0x01, +0x92,0x0D,0x96,0x06,0xC0,0x05,0x44,0x04,0x80,0x0D,0xFA,0x30,0xAE,0x40,0x44,0x14, +0x80,0x0C,0xB4,0x01,0x92,0x0E,0x96,0x06,0xC0,0x06,0x44,0x04,0x80,0x0D,0x44,0x20, +0x00,0x40,0xAE,0x80,0xB4,0x01,0x92,0x0F,0x96,0x06,0xC0,0x06,0x44,0x04,0x80,0x0D, +0x44,0x1F,0xFF,0x80,0xAE,0x40,0xDD,0x9E,0x44,0x04,0x80,0x00,0x44,0x14,0x80,0x80, +0xA6,0x80,0xB4,0x21,0x96,0x46,0xFE,0x56,0xC1,0x03,0x84,0x21,0xAE,0x40,0xA6,0x00, +0x40,0x10,0x04,0x09,0x44,0x04,0x80,0x80,0xB4,0x00,0x92,0x01,0x96,0x06,0xFE,0x0E, +0xC0,0x05,0x44,0x04,0x80,0x00,0x84,0x22,0xAE,0x40,0x44,0x14,0x80,0x00,0xA6,0x08, +0x40,0x20,0x08,0x09,0x44,0x04,0x80,0x80,0xB4,0x00,0x92,0x02,0x96,0x06,0xFE,0x16, +0xC0,0x03,0x84,0x04,0xAE,0x08,0xA6,0x08,0x40,0x10,0x0C,0x09,0x44,0x04,0x80,0x80, +0xB4,0x00,0x92,0x03,0x96,0x06,0xFE,0x0E,0xC0,0x05,0x44,0x04,0x80,0x00,0x84,0x28, +0xAE,0x40,0xDD,0x9E,0xDD,0x9E,0xDD,0x9E,0xDD,0x9E,0xDD,0x9E,0xDD,0x9E,0xDD,0x9E, +0xDD,0x9E,0xDD,0x9E,0xDD,0x9E,0xDD,0x9E,0xFC,0x00,0x49,0xFF,0x95,0x06,0x49,0xFF, +0xD5,0x5E,0x49,0xFF,0xCA,0x92,0x49,0xFF,0xCE,0x6B,0x84,0x00,0xFC,0x80,0x00,0x00, +0x80,0x60,0x54,0xF1,0x00,0x03,0xE9,0x1B,0xE6,0x44,0xE9,0x19,0x54,0x41,0x80,0x03, +0x54,0x50,0x80,0x03,0xDC,0x14,0xC5,0x0A,0x52,0x52,0x80,0x04,0x9A,0x95,0x99,0x69, +0x08,0x40,0x80,0x01,0x18,0x41,0x80,0x01,0xD9,0xFC,0x40,0x51,0x08,0x09,0xC5,0x07, +0x95,0x6A,0x99,0x69,0x96,0x8F,0xA3,0x09,0xAB,0x19,0xD9,0xFE,0xC2,0x07,0x99,0x4A, +0x08,0x40,0x80,0x01,0x18,0x41,0x80,0x01,0xD9,0xFC,0xDD,0x9E,0x80,0x60,0xE6,0x44, +0xE9,0x1A,0x54,0x51,0x80,0x03,0xC5,0x08,0x52,0x52,0x80,0x04,0x9A,0x95,0x99,0x6B, +0x18,0x11,0x80,0x01,0xDB,0xFE,0x40,0x51,0x08,0x09,0x96,0x8F,0xC5,0x0C,0x95,0x6A, +0x99,0x5D,0x96,0x48,0x40,0x40,0xA0,0x08,0xFE,0x67,0x40,0x40,0xC0,0x08,0xFE,0x67, +0xAA,0x59,0xDB,0xFF,0x99,0x5A,0xD3,0x04,0x18,0x11,0x80,0x01,0xD5,0xFD,0xDD,0x9E, +0x69,0x1A,0xC1,0x37,0x01,0x00,0x12,0x20,0xFF,0x07,0xFF,0x07,0x05,0x0A,0x0B,0x00, +0x00,0xFF,0xFF,0x00,0x01,0x00,0x00,0x01,0x01,0x01,0xFF,0x01,0x01,0xFF,0xFF,0xFF, +0x00,0x00,0x00,0x00,0x5C,0x54,0x47,0x37,0x00,0x00,0x31,0x00,0x94,0x00,0xFA,0x00, +0x66,0x01,0xD9,0x01,0x57,0x02,0xE6,0x02,0x8A,0x03,0x4F,0x04,0x44,0x05,0x84,0x06, +0x42,0x08,0xEB,0x0A,0x98,0x0F,0x55,0x1A,0xF3,0x07,0xFF,0xFF,0x00,0xFF,0xFF,0x00, +0x01,0x00,0x00,0x01,0x01,0x01,0xFF,0x01,0x01,0xFF,0xFF,0xFF,0x00,0xFF,0xFF,0x00, +0x01,0x00,0x00,0x01,0xFF,0xFF,0x01,0xFF,0xFF,0x01,0x01,0x01,0x00,0xFF,0xFF,0x00, +0x01,0x00,0x00,0x01,0xFF,0xFF,0x01,0xFF,0xFF,0x01,0x01,0x01,0xFF,0xFF,0x00,0xFF, +0x01,0xFF,0xFF,0x00,0x00,0x00,0x01,0x00,0xFF,0x01,0x00,0x01,0x01,0x01,0x00,0x00, +0x64,0x00,0x00,0x00,0x64,0x00,0x00,0x00,0x64,0x00,0x00,0x00,0x64,0x00,0x00,0x00, +0x9C,0xFF,0xFF,0xFF,0x9C,0xFF,0xFF,0xFF,0xF8,0x03,0x02,0x00,0xF0,0x03,0x02,0x00, +0xE8,0x03,0x02,0x00,0xDC,0x03,0x02,0x00,0xD0,0x03,0x02,0x00,0xC0,0x03,0x02,0x00, +0xB0,0x03,0x02,0x00,0x9C,0x03,0x02,0x00,0x88,0x03,0x02,0x00,0x70,0x03,0x02,0x00, +0x0A,0x0A,0x0B,0x0B,0x0B,0x0C,0x0C,0x0C,0x0C,0x0C,0x00,0x00,0x01,0x05,0x00,0x07, +0x02,0x06,0x04,0x08,0x03,0x09,0x00,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x06,0x06, +0x06,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x1F,0x1F, +0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x1E, +0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x03,0x03,0x03,0x03,0x03,0x03, +0x03,0x03,0x03,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x04,0x04,0x04,0x04, +0x04,0x04,0x04,0x04,0x04,0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,0x05,0x05, +0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A, +0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x19,0x19,0x19,0x19,0x19,0x19,0x19, +0x19,0x19,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x18,0x18,0x18,0x18,0x18, +0x18,0x18,0x18,0x18,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x17,0x17,0x17, +0x17,0x17,0x17,0x17,0x17,0x17,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x16, +0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A, +0x0A,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B, +0x0B,0x0B,0x0B,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x0C,0x0C,0x0C,0x0C, +0x0C,0x0C,0x0C,0x0C,0x0C,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x0D, +0x0D,0x0D,0x0D,0x0D,0x0D,0x0D,0x0D,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, +0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x11,0x11,0x11,0x11,0x11,0x11,0x11, +0x11,0x11,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x10,0x10,0x10,0x10,0x10, +0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x0F,0x0F,0x0F, +0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0E, +0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, +0x12,0x0D,0x0D,0x0D,0x0D,0x0D,0x0D,0x0D,0x0D,0x0D,0x13,0x13,0x13,0x13,0x13,0x13, +0x13,0x13,0x13,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x14,0x14,0x14,0x14, +0x14,0x14,0x14,0x14,0x14,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x15,0x15, +0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A, +0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x09,0x09,0x09,0x09,0x09,0x09,0x09, +0x09,0x09,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x08,0x08,0x08,0x08,0x08, +0x08,0x08,0x08,0x08,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x07,0x07,0x07, +0x07,0x07,0x07,0x07,0x07,0x07,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x06, +0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A, +0x1A,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x1B,0x1B,0x1B,0x1B,0x1B,0x1B, +0x1B,0x1B,0x1B,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x1C,0x1C,0x1C,0x1C, +0x1C,0x1C,0x1C,0x1C,0x1C,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x1D,0x1D, +0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x06,0x06,0x06,0x06,0x00,0x00, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x30,0x01,0x30,0x01,0x30,0x01,0x30,0x01,0x88,0x01,0x32,0x01, +0x56,0x01,0x68,0x01,0x42,0x01,0x7A,0x01,0x8C,0x01,0x30,0x01,0x44,0x01,0x32,0x01, +0x56,0x01,0x86,0x01,0x30,0x01,0x54,0x01,0x68,0x01,0x42,0x01,0x00,0x00,0x00,0x00, +0x00,0x00,0x04,0x02,0x03,0x02,0x01,0x02,0x01,0x01,0x01,0x04,0x02,0x01,0x04,0x04, +0x30,0x01,0x30,0x01,0x30,0x01,0x30,0x01,0x30,0x01,0x30,0x01,0x30,0x01,0x93,0x01, +0x5C,0x01,0xDE,0x01,0x2D,0x02,0xB1,0x01,0x05,0x02,0xED,0x01,0x41,0x02,0x30,0x01, +0xBF,0x01,0x11,0x02,0x37,0x01,0x3C,0x01,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07, +0x08,0x09,0x0A,0x0B,0x0B,0x0A,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00, +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x00,0x01,0x02,0x00,0x01,0x02,0x03, +0x04,0x05,0x06,0x07,0x08,0x02,0x01,0x00,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07, +0x08,0x00,0x00,0x01,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x00,0x01,0x00, +0x38,0x70,0x00,0x00,0x38,0x70,0x00,0x00,0x38,0x70,0x00,0x00,0x38,0x70,0x00,0x00, +0x38,0x70,0x00,0x00,0x38,0x70,0x00,0x00,0x38,0x70,0x00,0x00,0x38,0x70,0x00,0x00, +0x38,0x70,0x00,0x00,0x38,0x70,0x00,0x00,0x38,0x70,0x00,0x00,0x38,0x70,0x00,0x00, +0x01,0x00,0x02,0x00,0x02,0x00,0x01,0x00,0x04,0x80,0x00,0x00,0x08,0x40,0x00,0x00, +0x10,0x20,0x00,0x00,0x20,0x10,0x00,0x00,0x40,0x08,0x00,0x00,0x80,0x04,0x00,0x00, +0x00,0x03,0x00,0x00,0x38,0x70,0x00,0x00,0x38,0x70,0x00,0x00,0x38,0x70,0x00,0x00, +0x58,0x60,0x61,0x62,0x63,0x64,0x65,0xFF,0xFF,0x68,0x69,0x6C,0x6D,0x6E,0x6F,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x52,0x02,0x00,0x00,0x52,0x02,0x00,0x00,0x92,0x02,0x00,0x00,0xD2,0x02,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x90,0x00,0x00,0x00,0x90,0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0xF0,0x00,0x00,0x00, +0x00,0x00,0x40,0x02,0x40,0x02,0x00,0x00,0xC0,0x00,0xC0,0x00,0x40,0x00,0x40,0x00, +0x00,0x09,0x09,0x00,0x03,0x03,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x04,0x04,0x04,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x00,0x01,0x02, +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x02,0x01,0x00,0x00,0x01,0x02,0x03, +0x04,0x00,0x01,0x02,0x03,0x04,0x00,0x00,0x07,0x80,0x03,0x00,0x38,0x70,0x00,0x00, +0xC0,0x0F,0x00,0x00,0x08,0x40,0x00,0x00,0x10,0x20,0x00,0x00,0x20,0x10,0x00,0x00, +0x40,0x08,0x00,0x00,0x80,0x04,0x00,0x00,0x00,0x03,0x00,0x00,0x07,0x80,0x03,0x00, +0x38,0x70,0x00,0x00,0xC0,0x0F,0x00,0x00,0x01,0x00,0x02,0x00,0x02,0x00,0x01,0x00, +0x04,0x80,0x00,0x00,0x08,0x40,0x00,0x00,0x10,0x20,0x00,0x00,0x20,0x10,0x00,0x00, +0x40,0x08,0x00,0x00,0x80,0x04,0x00,0x00,0x00,0x03,0x00,0x00,0x38,0x70,0x00,0x00, +0x38,0x70,0x00,0x00,0x38,0x70,0x00,0x00,0x07,0x80,0x03,0x00,0x38,0x70,0x00,0x00, +0xC0,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x03,0x03,0x03, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x03,0x03,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03, +0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x00, +0x02,0x00,0x01,0x00,0x04,0x80,0x00,0x00,0x08,0x40,0x00,0x00,0x10,0x20,0x00,0x00, +0x20,0x10,0x00,0x00,0x40,0x08,0x00,0x00,0x80,0x04,0x00,0x00,0x00,0x03,0x00,0x00, +0x07,0x80,0x03,0x00,0x38,0x70,0x00,0x00,0xC0,0x0F,0x00,0x00,0x00,0x01,0x02,0x03, +0x04,0x05,0x06,0x07,0x08,0x00,0x01,0x02,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07, +0x08,0x00,0x01,0x02,0x0B,0x02,0x0B,0x0B,0x0B,0x02,0x00,0x00,0x0B,0x02,0x0B,0x0B, +0x0B,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x24,0x01,0x00,0x00,0x66,0x1D,0x00,0x00, +0x00,0x69,0x06,0x00,0x02,0x00,0x06,0x0C,0x02,0x00,0x06,0x0C,0x01,0x00,0x04,0x00, +0x01,0x00,0x03,0x00,0x01,0x00,0x05,0x00,0x05,0x04,0x00,0x00,0xD0,0xDA,0xF7,0x84, +0x10,0x00,0x02,0x00,0x11,0x00,0x02,0x00,0x12,0x00,0x02,0x00,0x14,0x00,0x02,0x00, +0x32,0x32,0x20,0x00,0xC8,0x02,0x02,0x00,0x02,0x01,0x00,0x14,0x14,0x14,0x14,0x00, +0xC4,0x02,0x02,0x00,0x02,0x02,0x00,0x14,0x14,0x14,0x14,0x00,0xC0,0x02,0x02,0x00, +0x02,0x03,0x00,0x14,0x14,0x14,0x14,0x00,0xAC,0x11,0x02,0x00,0x02,0x04,0x00,0x14, +0x14,0x14,0x14,0x00,0xB4,0x02,0x02,0x00,0x0B,0x05,0x01,0x37,0x14,0x64,0x2C,0x00, +0xA4,0x02,0x02,0x00,0x0D,0x06,0x01,0x37,0x14,0x5A,0x2C,0x00,0x98,0x02,0x02,0x00, +0x0B,0x07,0x01,0x28,0x14,0x28,0x14,0x00,0x88,0x02,0x02,0x00,0x0E,0x08,0x01,0x3C, +0x1E,0x37,0x19,0x00,0x80,0x02,0x02,0x00,0x06,0x09,0x01,0x1E,0x14,0x30,0x1E,0x00, +0x70,0x02,0x02,0x00,0x0E,0x0A,0x01,0x3C,0x1C,0x3C,0x22,0x00,0x60,0x02,0x02,0x00, +0x0D,0x0A,0x01,0x3C,0x1C,0x3C,0x22,0x00,0x58,0x02,0x02,0x00,0x07,0x05,0x01,0x37, +0x14,0x78,0x2C,0x00,0x4C,0x02,0x02,0x00,0x0B,0x05,0x01,0x37,0x14,0x78,0x2C,0x00, +0x44,0x02,0x02,0x00,0x08,0x06,0x01,0x37,0x14,0x5A,0x2C,0x00,0x38,0x02,0x02,0x00, +0x0C,0x08,0x01,0x3C,0x1E,0x37,0x19,0x00,0x30,0x02,0x02,0x00,0x06,0x07,0x01,0x28, +0x14,0x28,0x14,0x00,0x28,0x02,0x02,0x00,0x07,0x07,0x01,0x28,0x14,0x28,0x14,0x00, +0x20,0x02,0x02,0x00,0x06,0x09,0x01,0x1E,0x14,0x30,0x1E,0x00,0x14,0x02,0x02,0x00, +0x09,0x09,0x01,0x1E,0x14,0x30,0x1E,0x00,0x08,0x02,0x02,0x00,0x0A,0x06,0x01,0x37, +0x14,0x5A,0x2C,0x00,0x00,0x02,0x02,0x00,0x08,0x06,0x01,0x37,0x14,0x5A,0x2C,0x00, +0xF8,0x01,0x02,0x00,0x05,0x0B,0x01,0x1E,0x14,0x30,0x1E,0x00,0xF0,0x01,0x02,0x00, +0x06,0x0B,0x01,0x1E,0x14,0x30,0x1E,0x00,0xE8,0x01,0x02,0x00,0x06,0x0C,0x01,0x30, +0x1E,0x1E,0x14,0x00,0xE4,0x01,0x02,0x00,0x04,0x0C,0x01,0x30,0x1E,0x1E,0x14,0x00, +0xDC,0x01,0x02,0x00,0x06,0x0D,0x01,0x30,0x1E,0x1E,0x14,0x00,0xD8,0x01,0x02,0x00, +0x04,0x0D,0x01,0x30,0x1E,0x1E,0x14,0x00,0xCC,0x01,0x02,0x00,0x0B,0x05,0x01,0x37, +0x14,0x78,0x2C,0x00,0xC0,0x01,0x02,0x00,0x0C,0x0A,0x01,0x3C,0x1C,0x3C,0x22,0x00, +0xB0,0x01,0x02,0x00,0x0E,0x0A,0x01,0x3C,0x1C,0x3C,0x22,0x00,0xA4,0x01,0x02,0x00, +0x0B,0x0A,0x01,0x3C,0x1C,0x3C,0x22,0x00,0x94,0x01,0x02,0x00,0x10,0x0A,0x01,0x3C, +0x1C,0x3C,0x22,0x00,0x12,0x10,0x0B,0x07,0x02,0x3C,0x36,0x30,0x2A,0x24,0x20,0x19, +0x15,0x10,0x0E,0x09,0x02,0x08,0x10,0x12,0x17,0x1C,0x20,0x23,0x29,0x30,0x33,0x00, +0x1D,0x15,0x10,0x07,0x00,0x3A,0x36,0x32,0x2B,0x25,0x1C,0x17,0x10,0x07,0x00,0x00, +0x26,0x1C,0x22,0x12,0x25,0x30,0x21,0x2A,0x2D,0x32,0x2C,0x30,0x34,0x2D,0x32,0x10, +0x08,0x36,0x30,0x34,0x08,0x0E,0x0C,0x00,0x1F,0x1D,0x08,0x04,0x17,0x17,0x17,0x07, +0x07,0x07,0x00,0x00,0x0A,0x07,0x12,0x1D,0x07,0x07,0x07,0x17,0x17,0x17,0x00,0x00, +0x2F,0x30,0x37,0x03,0x0C,0x0F,0x00,0x00,0x33,0x34,0x0E,0x07,0x07,0x00,0x00,0x00, +0x35,0x02,0x09,0x10,0x35,0x10,0x0A,0x34,0x30,0x34,0x38,0x0C,0x10,0x34,0x30,0x0E, +0x30,0x0A,0x00,0x00,0x3D,0x02,0x10,0x09,0x3D,0x34,0x30,0x0B,0x04,0x00,0x00,0x00, +0x10,0x0E,0x07,0x3C,0x33,0x30,0x00,0x00,0x21,0x1D,0x19,0x14,0x0E,0x04,0x01,0x00, +0x1D,0x18,0x12,0x0A,0x04,0x01,0x00,0x00,0x00,0x3C,0x38,0x34,0x2E,0x23,0x1D,0x16, +0x10,0x0B,0x05,0x01,0x0E,0x0D,0x36,0x32,0x09,0x0D,0x37,0x33,0x10,0x10,0x32,0x3E, +0x0D,0x10,0x33,0x38,0x01,0x0D,0x10,0x00,0x30,0x33,0x08,0x10,0x35,0x34,0x10,0x00, +0x25,0x1F,0x19,0x10,0x0B,0x07,0x03,0x3F,0x39,0x33,0x30,0x2C,0x22,0x00,0x00,0x00, +0x01,0x05,0x0B,0x0E,0x13,0x1A,0x1F,0x25,0x29,0x2E,0x34,0x36,0x3B,0x00,0x00,0x00, +0x0D,0x0D,0x0D,0x0D,0x35,0x35,0x00,0x00,0x00,0x3C,0x36,0x2A,0x23,0x1E,0x1A,0x15, +0x10,0x0B,0x08,0x03,0x3C,0x39,0x00,0x00,0x28,0x22,0x1E,0x19,0x13,0x10,0x0B,0x07, +0x02,0x3D,0x39,0x00,0x10,0x0E,0x0A,0x05,0x00,0x39,0x33,0x30,0x10,0x0B,0x04,0x35, +0x30,0x00,0x00,0x00,0x30,0x34,0x00,0x0D,0x10,0x32,0x34,0x3A,0x07,0x0D,0x10,0x00, +0x1F,0x1F,0x00,0x00,0x0F,0x0F,0x00,0x00,0x2F,0x2F,0x00,0x00,0xFF,0xFF,0x00,0x00, +0xFF,0xFF,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0B,0x01,0x00,0x00, +0x01,0x00,0x00,0x00,0xF1,0xD8,0xFF,0xFF,0xF1,0xD8,0xFF,0xFF,0xF1,0xD8,0xFF,0xFF, +0xF1,0xD8,0xFF,0xFF,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xC1,0x37,0x00,0x00, +0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x69,0x1A,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x01,0x01,0x04,0x01,0x01,0x01,0x01,0x01,0x0A,0x0A,0x0B,0x0B, +0x0B,0x0C,0x0C,0x0C,0x0C,0x0C,0x00,0x00,0xF8,0x03,0x02,0x00,0xF0,0x03,0x02,0x00, +0xE8,0x03,0x02,0x00,0xDC,0x03,0x02,0x00,0xD0,0x03,0x02,0x00,0xC0,0x03,0x02,0x00, +0xB0,0x03,0x02,0x00,0x9C,0x03,0x02,0x00,0x88,0x03,0x02,0x00,0x70,0x03,0x02,0x00, +0x61,0x00,0x4D,0x00,0x68,0x00,0x84,0x00,0xA2,0x00,0xBF,0x00,0xDA,0x00,0xF2,0x00, +0x06,0x01,0x13,0x01,0x1A,0x01,0x00,0x00,0x65,0x00,0x58,0x00,0x79,0x00,0x9D,0x00, +0xC1,0x00,0xE3,0x00,0x02,0x01,0x1C,0x01,0x2E,0x01,0x37,0x01,0x6A,0x00,0x67,0x00, +0x91,0x00,0xBE,0x00,0xEA,0x00,0x13,0x01,0x35,0x01,0x4E,0x01,0x5B,0x01,0x00,0x00, +0x72,0x00,0x7C,0x00,0xB2,0x00,0xEB,0x00,0x23,0x01,0x52,0x01,0x75,0x01,0x87,0x01, +0x7C,0x00,0x99,0x00,0xE2,0x00,0x2E,0x01,0x72,0x01,0xA5,0x01,0xC1,0x01,0x00,0x00, +0x45,0x00,0x63,0x00,0x96,0x00,0xC8,0x00,0xF0,0x00,0x07,0x01,0x51,0x00,0x88,0x00, +0xD3,0x00,0x15,0x01,0x3C,0x01,0x00,0x00,0x67,0x00,0xCC,0x00,0x40,0x01,0x8A,0x01, +0x4C,0x00,0xB0,0x00,0x02,0x01,0x00,0x00,0x99,0x00,0x66,0x01,0x38,0x70,0x00,0x00, +0xFF,0xFF,0x00,0x00,0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD0,0xCC,0x50,0x4B, +0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x64,0x00,0xC8,0x00,0x2C,0x01,0xC8,0x00,0x6E,0x00,0x96,0x00,0x3C,0x1E,0x21,0x5A, +0xC8,0x00,0x5E,0x01,0x58,0x02,0x96,0x00,0x6E,0x00,0xDC,0x00,0x5A,0x0F,0x21,0x5A, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x3C,0x50,0x10,0x32,0x32,0x37,0x3C, +0x2D,0x00,0xCE,0xFF,0x26,0x35,0x0A,0x00,0xFA,0x00,0x10,0xFF,0x3C,0x14,0x0A,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xEB,0x00,0x10,0x01, +0xA7,0x01,0xEA,0x01,0x00,0x00,0x00,0x00,0x11,0x01,0x11,0x01,0xEB,0x01,0xEB,0x01, +0x58,0x1B,0x00,0x00,0xC8,0x00,0x01,0x02,0x19,0x10,0x0F,0x19,0x01,0x01,0x03,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x5B,0x00,0x26,0x02,0x20,0x03,0x64,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x28,0x00,0x26,0x02,0x20,0x03,0x58,0x02,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x0F,0x0F,0x3C,0x46,0x1D,0x01,0x1E,0x05,0x02,0x32,0x0F,0x3C,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0x48,0x00,0x3C,0x1E,0x48,0x00,0x3A,0x5E,0x48,0x00,0x3A,0x7C,0x48,0x00,0x3A,0x9A, +0x48,0x00,0x3A,0xB8,0x48,0x00,0x3A,0xD6,0x48,0x00,0x3A,0xF4,0x48,0x00,0x3B,0x12, +0x48,0x00,0x3B,0x30,0x48,0x00,0x3B,0x86,0x48,0x00,0x3B,0x88,0x48,0x00,0x3B,0x8A, +0x48,0x00,0x3B,0x8C,0x48,0x00,0x3B,0x8E,0x48,0x00,0x3B,0x90,0x48,0x00,0x3B,0x92, +0x48,0x00,0x3B,0x94,0x48,0x00,0x3B,0x96,0x48,0x00,0x3B,0x98,0x48,0x00,0x3B,0x9A, +0x48,0x00,0x3B,0x9C,0x48,0x00,0x3B,0x9E,0x48,0x00,0x3B,0xA0,0x48,0x00,0x3B,0xA2, +0x48,0x00,0x3B,0xA4,0x48,0x00,0x3B,0xA6,0x48,0x00,0x3B,0xA8,0x48,0x00,0x3B,0xAA, +0x48,0x00,0x3B,0xAC,0x48,0x00,0x3B,0xAE,0x48,0x00,0x3B,0xB0,0x48,0x00,0x3B,0xB2, +0x48,0x00,0x3B,0xB4,0x48,0x00,0x3B,0xB6,0x48,0x00,0x3B,0xB8,0x48,0x00,0x3B,0xBA, +0x48,0x00,0x3B,0xBC,0x48,0x00,0x3B,0xBF,0x48,0x00,0x3B,0xC2,0x48,0x00,0x3B,0xC5, +0x48,0x00,0x3B,0xC8,0xF8,0x78,0x00,0x00,0xFA,0x78,0x00,0x00,0x0E,0x79,0x00,0x00, +0x20,0x79,0x00,0x00,0x2E,0x79,0x00,0x00,0x46,0x79,0x00,0x00,0x54,0x79,0x00,0x00, +0x8C,0x79,0x00,0x00,0x94,0x79,0x00,0x00,0xAA,0x79,0x00,0x00,0xCE,0x79,0x00,0x00, +0x18,0x7A,0x00,0x00,0x1A,0x7A,0x00,0x00,0x22,0x7A,0x00,0x00,0x2A,0x7A,0x00,0x00, +0x32,0x7A,0x00,0x00,0x6C,0x7A,0x00,0x00,0xEC,0x7A,0x00,0x00,0x80,0x7B,0x00,0x00, +0x96,0x7B,0x00,0x00,0xBE,0x7C,0x00,0x00,0xD6,0x7D,0x00,0x00,0x42,0x7E,0x00,0x00, +0x44,0x7E,0x00,0x00,0x46,0x7E,0x00,0x00,0x48,0x7E,0x00,0x00,0x4A,0x7E,0x00,0x00, +0x4C,0x7E,0x00,0x00,0x4E,0x7E,0x00,0x00,0x50,0x7E,0x00,0x00,0x52,0x7E,0x00,0x00, +0x54,0x7E,0x00,0x00,0xE6,0x28,0xE8,0x4C,0x96,0x06,0x46,0x20,0x00,0x81,0x44,0xF0, +0x01,0x3C,0x38,0x17,0x84,0x00,0x40,0xF0,0xBC,0x00,0xDD,0x0F,0x08,0x16,0x24,0x32, +0x40,0x4E,0x5C,0x6A,0x40,0x00,0x40,0x08,0x04,0x31,0x00,0x29,0x44,0x1E,0xFF,0xFF, +0xD5,0x33,0x40,0x00,0x44,0x08,0x04,0x31,0x00,0x29,0x44,0x1D,0xFF,0xFF,0xD5,0x2C, +0x40,0x00,0x48,0x08,0x04,0x31,0x00,0x29,0x44,0x1B,0xFF,0xFF,0xD5,0x25,0x40,0x00, +0x4C,0x08,0x04,0x31,0x00,0x29,0x46,0x1F,0xFF,0x7F,0xD5,0x1C,0x40,0x00,0x50,0x08, +0x04,0x31,0x00,0x29,0x46,0x1F,0xFE,0xFF,0xD5,0x15,0x40,0x00,0x54,0x08,0x04,0x31, +0x00,0x29,0x46,0x1F,0xFD,0xFF,0xD5,0x0E,0x40,0x00,0x58,0x08,0x04,0x31,0x00,0x29, +0x46,0x1F,0xFB,0xFF,0xD5,0x07,0x40,0x00,0x5C,0x08,0x04,0x31,0x00,0x29,0x46,0x1F, +0xF7,0xFF,0x50,0x10,0x8F,0xFF,0xFE,0x5E,0xFE,0x0F,0x14,0x01,0x00,0x29,0xDD,0x9E, +0x44,0x24,0x80,0x90,0x96,0x06,0xB4,0x62,0x40,0x10,0x20,0x08,0x44,0x0F,0xFE,0xFF, +0xFE,0x1E,0xFE,0x0F,0xB6,0x02,0xDD,0x9E,0x46,0x10,0x00,0x82,0xA0,0x0A,0x58,0x00, +0x00,0x01,0xA8,0x0A,0xDD,0x9E,0x46,0x20,0x00,0x82,0x96,0x06,0xA0,0xD5,0x40,0x10, +0x40,0x08,0x44,0x0E,0xFF,0xFF,0xFE,0x1E,0xFE,0x0F,0xA8,0x15,0xDD,0x9E,0x46,0x00, +0x00,0x82,0xA0,0x05,0x92,0x10,0x96,0x06,0xDD,0x9E,0xFC,0x40,0x46,0x60,0x00,0x81, +0x96,0x2F,0x40,0x90,0x20,0x08,0x04,0x03,0x00,0x2A,0x44,0x7F,0xC0,0xFF,0xFE,0x3E, +0x40,0x00,0x24,0x04,0x14,0x03,0x00,0x2A,0x96,0x6F,0x40,0x90,0xC0,0x08,0x46,0x0F, +0xFC,0x0F,0x04,0x13,0x00,0x2A,0x50,0x00,0x0F,0xFF,0xFE,0x46,0x40,0x10,0xA4,0x04, +0x14,0x13,0x00,0x2A,0x96,0xAF,0x04,0x93,0x00,0x2A,0x40,0x11,0x60,0x08,0x46,0x2C, +0x0F,0xFF,0x50,0x21,0x0F,0xFF,0x40,0x24,0x88,0x02,0xFE,0x8F,0x14,0x23,0x00,0x2A, +0x04,0x13,0x00,0x2B,0x96,0xEF,0x92,0x26,0x94,0x4E,0xFE,0x5F,0x14,0x13,0x00,0x2B, +0x97,0x2F,0x40,0x12,0x20,0x08,0x04,0x43,0x00,0x2B,0x97,0x6F,0xFF,0x3E,0xFF,0x0F, +0x14,0x43,0x00,0x2B,0x04,0x13,0x00,0x2B,0x40,0x52,0xC0,0x08,0xFE,0x0E,0xFE,0x2F, +0x14,0x03,0x00,0x2B,0x49,0x00,0x04,0x82,0x00,0x0F,0x80,0x20,0x54,0x10,0x00,0x3F, +0x04,0x03,0x03,0x98,0x92,0x06,0x94,0x06,0xFE,0x0F,0x14,0x03,0x03,0x98,0x00,0x0F, +0x80,0x24,0x04,0x23,0x03,0x99,0x96,0x2F,0x94,0x46,0x44,0x0F,0xF0,0x3F,0xFE,0x16, +0xFE,0x0F,0x14,0x03,0x03,0x99,0x49,0x00,0x04,0x62,0xFC,0xC0,0x46,0x30,0x00,0x82, +0x44,0x41,0x00,0x00,0xB4,0xA3,0x54,0x10,0x87,0xFF,0xFF,0x2F,0xB6,0x83,0xB4,0x83, +0x94,0x92,0x92,0x8B,0x40,0x42,0x2C,0x08,0xFF,0x0F,0xB6,0x83,0x88,0x40,0x4C,0x01, +0x00,0x05,0xA0,0x59,0xAA,0x41,0xD5,0xFC,0xB4,0x23,0x44,0x0E,0xFF,0xFF,0xFE,0x0E, +0xB6,0x03,0xDD,0x9E,0x46,0x30,0x00,0x82,0x44,0x41,0x00,0x00,0xB4,0xA3,0x54,0x10, +0x87,0xFF,0xFF,0x2F,0xB6,0x83,0xB4,0x83,0x94,0x92,0x92,0x8B,0x40,0x42,0x2C,0x08, +0xFF,0x0F,0xB6,0x83,0x88,0x40,0x80,0x23,0x4C,0x01,0x00,0x05,0xA3,0x01,0xA9,0x09, +0xD5,0xFC,0xB4,0x23,0x44,0x0E,0xFF,0xFF,0xFE,0x0E,0xB6,0x03,0xDD,0x9E,0xFC,0x00, +0x46,0x50,0x00,0x80,0x46,0x3F,0xFF,0x00,0x9D,0x99,0x9D,0x2E,0x94,0xA9,0x88,0x40, +0x38,0x11,0x18,0x00,0x38,0x21,0x0C,0x00,0x94,0x4C,0xFE,0x57,0x96,0x48,0x18,0x12, +0x80,0x01,0xDC,0xF5,0xFC,0x80,0xFC,0x00,0x46,0x10,0x00,0x80,0x46,0x2F,0xFE,0xFF, +0x50,0x50,0x80,0x08,0x50,0x61,0x0F,0xF1,0x50,0x41,0x0F,0xF0,0x50,0x30,0x80,0x0E, +0x94,0xA9,0x88,0x40,0x38,0x11,0x18,0x00,0x38,0x21,0x10,0x00,0x94,0x4C,0xFE,0x57, +0x96,0x48,0x18,0x12,0x80,0x01,0xDB,0xF5,0xFC,0x80,0x46,0x20,0x00,0x80,0x84,0x7E, +0x50,0x51,0x01,0xC4,0xB4,0x85,0x96,0x06,0xFE,0xE6,0xFE,0x1F,0xB6,0x05,0x96,0x57, +0xB4,0x65,0x40,0x00,0xA0,0x08,0x44,0x1F,0xF8,0xFF,0xFE,0x5E,0xFE,0x47,0xB6,0x25, +0xDD,0x9E,0x46,0x20,0x00,0x81,0x40,0x00,0x40,0x08,0x04,0x11,0x00,0x11,0x96,0x49, +0xFE,0x0F,0x14,0x01,0x00,0x11,0xDD,0x9E,0x46,0x20,0x00,0x81,0x40,0x00,0x40,0x08, +0x04,0x11,0x00,0x10,0x96,0x49,0xFE,0x0F,0x14,0x01,0x00,0x10,0xDD,0x9E,0x46,0x20, +0x00,0x81,0x04,0x11,0x00,0x10,0x92,0x30,0x40,0x10,0xC0,0x08,0xFE,0x0F,0x14,0x01, +0x00,0x10,0xDD,0x9E,0x46,0x20,0x00,0x81,0x04,0x11,0x00,0x11,0x92,0x30,0x40,0x10, +0xC0,0x08,0xFE,0x0F,0x14,0x01,0x00,0x11,0xDD,0x9E,0x46,0x20,0x00,0x81,0x84,0x30, +0x04,0x31,0x00,0x12,0x96,0x1F,0xFE,0x5E,0xFE,0x0F,0x14,0x01,0x00,0x12,0xDD,0x9E, +0x46,0x20,0x00,0x80,0x84,0x30,0x04,0x31,0x00,0x70,0x96,0x1F,0xFE,0x5E,0xFE,0x0F, +0x14,0x01,0x00,0x70,0xDD,0x9E,0x46,0x20,0x00,0x81,0x84,0x3E,0x04,0x31,0x00,0x13, +0x96,0x06,0xFE,0x5E,0xFE,0x0F,0x14,0x01,0x00,0x13,0xDD,0x9E,0x46,0x20,0x00,0x81, +0x96,0x06,0x04,0x31,0x00,0x12,0x40,0x10,0x20,0x08,0x44,0x0F,0xFE,0xFF,0xFE,0x1E, +0xFE,0x0F,0x14,0x01,0x00,0x12,0xDD,0x9E,0x46,0x20,0x00,0x81,0x96,0x0F,0x40,0x10, +0x48,0x08,0x04,0x31,0x00,0x12,0x46,0x0F,0xFF,0x3F,0x50,0x00,0x0F,0xFF,0xFE,0x1E, +0xFE,0x0F,0x14,0x01,0x00,0x12,0xDD,0x9E,0x46,0x00,0x00,0x81,0x04,0x00,0x00,0x12, +0x92,0x12,0x96,0x0F,0xDD,0x9E,0x44,0x14,0x80,0x10,0xB4,0x01,0x92,0x0D,0x96,0x06, +0xC0,0x05,0x44,0x04,0x80,0x11,0xFA,0x50,0xAE,0x80,0xB4,0x01,0x92,0x0E,0x96,0x06, +0xC0,0x06,0x44,0x04,0x80,0x11,0x44,0x10,0x00,0x40,0xAE,0x40,0x44,0x14,0x80,0x10, +0xB4,0x01,0x92,0x0F,0x96,0x06,0xC0,0x06,0x44,0x04,0x80,0x11,0x44,0x2F,0xFF,0x80, +0xAE,0x80,0xB4,0x01,0x92,0x09,0x96,0x06,0xC0,0x05,0x44,0x04,0x80,0x11,0x84,0x22, +0xAE,0x40,0x44,0x14,0x80,0x10,0xB4,0x01,0x92,0x0C,0x96,0x06,0xC0,0x05,0x44,0x04, +0x80,0x11,0xFA,0x40,0xAE,0x80,0xB4,0x01,0x92,0x17,0x96,0x06,0xC0,0x06,0x44,0x04, +0x80,0x12,0x44,0x1F,0xFF,0x80,0xAE,0x40,0xDD,0x9E,0x00,0x00,0x46,0x10,0x00,0x81, +0x04,0x30,0x80,0x39,0xC0,0x0B,0x5A,0x00,0x01,0x0D,0x5A,0x00,0x02,0x0E,0x84,0x40, +0x5A,0x08,0x03,0x0D,0x46,0x23,0xF3,0xC0,0xD5,0x09,0x46,0x23,0x00,0x00,0xD5,0x06, +0x46,0x23,0x51,0x40,0xD5,0x03,0x46,0x23,0xA2,0x80,0x46,0x1C,0x0C,0x3F,0x50,0x10, +0x8F,0xFF,0x40,0x01,0x84,0x02,0x46,0x10,0x00,0x81,0xFE,0x17,0x14,0x00,0x80,0x39, +0xDD,0x9E,0x46,0x20,0x00,0x81,0x96,0x0F,0x40,0x10,0x58,0x08,0x04,0x31,0x00,0x39, +0x46,0x0F,0xF3,0xFF,0x50,0x00,0x0F,0xFF,0xFE,0x1E,0xFE,0x0F,0x14,0x01,0x00,0x39, +0xDD,0x9E,0x46,0x10,0x00,0x81,0x04,0x30,0x80,0x39,0xC0,0x11,0x5A,0x00,0x01,0x09, +0x5A,0x00,0x02,0x0A,0x5A,0x08,0x03,0x0B,0x44,0x03,0xFF,0xC0,0xD5,0x08,0x44,0x01, +0x55,0x40,0xD5,0x05,0x44,0x02,0xAA,0x80,0xD5,0x02,0x84,0x00,0x44,0x23,0xFF,0xC0, +0x44,0x1C,0x00,0x3F,0xFE,0x5E,0xFE,0x16,0xFE,0x0F,0x46,0x10,0x00,0x81,0x14,0x00, +0x80,0x39,0xDD,0x9E,0x46,0x20,0x00,0x81,0x96,0x0F,0x04,0x31,0x00,0x39,0x40,0x10, +0x28,0x08,0x44,0x0F,0xF3,0xFF,0xFE,0x1E,0xFE,0x0F,0x14,0x01,0x00,0x39,0xDD,0x9E, +0x46,0x20,0x00,0x81,0x46,0x31,0x55,0x10,0x50,0x31,0x84,0x40,0x50,0x51,0x00,0xE4, +0xB4,0x25,0xA8,0xE9,0xA1,0x2A,0x84,0x78,0xFE,0xE6,0xE6,0x05,0xA8,0xEA,0xE8,0x3A, +0x44,0xF0,0x06,0x10,0x38,0x07,0x80,0x00,0x40,0xF0,0x3C,0x00,0x4A,0x00,0x3C,0x00, +0x06,0x1C,0x28,0x3E,0x54,0x00,0x46,0x03,0xA3,0x2A,0x92,0x26,0x50,0x00,0x03,0x00, +0x94,0x4E,0x14,0x01,0x00,0x38,0x58,0x10,0x80,0x3A,0xD5,0x22,0x84,0x00,0x92,0x26, +0x14,0x01,0x00,0x38,0x94,0x4E,0xD5,0x1C,0x46,0x05,0x55,0x55,0x92,0x26,0x50,0x00, +0x05,0x55,0x94,0x4E,0x14,0x01,0x00,0x38,0x58,0x10,0x80,0x15,0xD5,0x11,0x46,0x0A, +0xAA,0xAA,0x92,0x26,0x50,0x00,0x0A,0xAA,0x94,0x4E,0x14,0x01,0x00,0x38,0x58,0x10, +0x80,0x2A,0xD5,0x06,0x84,0x1F,0x14,0x01,0x00,0x38,0x58,0x10,0x80,0x3F,0x14,0x11, +0x00,0x39,0xDD,0x9E,0xDD,0x9E,0x44,0x24,0x50,0x00,0x96,0x06,0xB4,0x62,0x94,0x42, +0x84,0x1B,0xFE,0x1E,0xFE,0x0F,0xB6,0x02,0xDD,0x9E,0x44,0x04,0x50,0x28,0xB4,0x00, +0x92,0x04,0x96,0x06,0xDD,0x9E,0x92,0x00,0x46,0x20,0x00,0x83,0x84,0x3C,0x04,0x31, +0x00,0x10,0x96,0x0F,0xFE,0x5E,0xFE,0x0F,0x14,0x01,0x00,0x10,0xDD,0x9E,0x46,0x20, +0x00,0x83,0x96,0x06,0x04,0x31,0x00,0x10,0x40,0x10,0x20,0x08,0x44,0x0F,0xFE,0xFF, +0xFE,0x1E,0xFE,0x0F,0x14,0x01,0x00,0x10,0xDD,0x9E,0xFC,0x40,0x46,0x20,0x00,0x83, +0x44,0x5F,0xFE,0xFF,0x83,0x82,0xBB,0x18,0x46,0x40,0x0F,0x03,0xFE,0xEE,0xBB,0x98, +0xBB,0x18,0x50,0x42,0x0C,0x0F,0x92,0x68,0x40,0x31,0xA0,0x08,0x58,0x31,0x80,0x46, +0xBB,0x98,0xBF,0x39,0xBE,0x3A,0x04,0x91,0x00,0x3B,0xFF,0xE6,0xFF,0xA6,0x40,0x44, +0x90,0x02,0x04,0x90,0x80,0x02,0xBB,0x3C,0xB5,0x41,0x89,0x24,0xA1,0x0B,0x96,0xDF, +0x88,0xEA,0x04,0xA0,0x80,0x01,0x98,0x5C,0xBB,0x18,0x88,0xCA,0x58,0x31,0x81,0x00, +0xBB,0x98,0xBB,0x18,0x92,0x68,0x40,0x31,0xA0,0x08,0x58,0x31,0x80,0x46,0xBB,0x98, +0xBF,0xB9,0xBE,0xBA,0x14,0x91,0x00,0x3B,0x96,0xC9,0xB9,0x3C,0x92,0x30,0x40,0x10, +0xC0,0x08,0xFE,0x5F,0xB9,0xBC,0xB4,0x20,0xB9,0xB9,0xA0,0x41,0xB9,0xBA,0xA0,0x42, +0xB9,0xBB,0xA4,0x46,0xB8,0x3C,0x92,0x10,0x40,0x00,0x40,0x08,0xFE,0x0F,0xB8,0xBC, +0xB8,0x18,0xFF,0x46,0xBD,0x98,0xFC,0xC0,0xFC,0x20,0x46,0x20,0x00,0x83,0x44,0x3F, +0xFE,0xFF,0x83,0x82,0xBC,0x18,0x94,0x4A,0xFE,0xE6,0xBB,0x98,0xBB,0x18,0x50,0x51, +0x00,0xE4,0x92,0x68,0x40,0x31,0xA0,0x08,0x58,0x31,0x80,0x48,0xBB,0x98,0xBB,0x18, +0x50,0x61,0x00,0xE8,0x58,0x31,0x81,0x00,0xBB,0x98,0x50,0x71,0x00,0xEC,0x88,0x20, +0x50,0x21,0x00,0xF0,0x46,0x30,0x00,0x83,0x4C,0x00,0x80,0x12,0xA2,0xC1,0xB6,0x65, +0x83,0x80,0xBB,0x3F,0x02,0x40,0x01,0x7E,0xB6,0x66,0xBB,0x7F,0xB6,0x67,0xB4,0x62, +0x92,0x70,0x40,0x31,0xC0,0x08,0xFE,0xE7,0xB6,0x62,0xD5,0xED,0x83,0x83,0xB9,0x18, +0x44,0x0F,0xFE,0xFF,0xFE,0x0E,0xB8,0x98,0xFC,0xA0,0xFC,0x20,0x46,0x10,0x00,0x83, +0x44,0x2F,0xFE,0xFF,0x83,0x81,0xBB,0x18,0x46,0x40,0xF0,0x3C,0xFE,0x9E,0xBA,0x98, +0xBA,0x18,0x50,0x32,0x00,0xF0,0x92,0x48,0x40,0x21,0x20,0x08,0x58,0x21,0x00,0x46, +0xBA,0x98,0xBE,0x39,0xB4,0x80,0xBD,0x3A,0xFF,0x9E,0x88,0xC4,0xA1,0x01,0xBF,0x3B, +0xFF,0x5E,0x88,0xA4,0xA1,0x02,0xBA,0x3C,0xFE,0xFE,0x88,0x83,0xA0,0xC3,0x54,0x21, +0x00,0xF0,0xBE,0xB9,0x98,0x13,0xBD,0xBA,0xBC,0xBB,0x96,0x81,0xB8,0x3C,0x92,0x10, +0x40,0x00,0x40,0x08,0xFE,0x17,0xB8,0xBC,0xFC,0xA0,0x44,0x14,0x80,0x90,0x84,0x5E, +0xB4,0x61,0x96,0x06,0xFE,0x9E,0xFE,0x87,0xB6,0x41,0xB4,0x81,0x44,0x2F,0xFF,0xEF, +0x94,0xC4,0xFE,0xA6,0xFE,0x9F,0xB6,0x41,0xB4,0x61,0x44,0x2F,0xFB,0xFF,0xFE,0x9E, +0x40,0x00,0x28,0x08,0xFE,0x17,0xB6,0x01,0x46,0x10,0x00,0x80,0x84,0x18,0x50,0x30, +0x82,0x6C,0xB4,0x43,0xFE,0x16,0x58,0x00,0x00,0x06,0xB6,0x03,0xB4,0x43,0x44,0x0F, +0xF0,0xFF,0xFE,0x16,0x58,0x00,0x08,0x00,0xB6,0x03,0xDD,0x9E,0x52,0x00,0x00,0x01, +0x46,0x20,0x00,0x80,0x96,0x06,0xC9,0x08,0x40,0x10,0x20,0x08,0x04,0x31,0x00,0x79, +0x44,0x0F,0xFE,0xFF,0xD5,0x07,0x40,0x10,0x40,0x08,0x04,0x31,0x00,0x79,0x44,0x0E, +0xFF,0xFF,0xFE,0x1E,0xFE,0x0F,0x14,0x01,0x00,0x79,0xDD,0x9E,0x46,0x10,0x00,0x82, +0x5A,0x08,0x01,0x0B,0x50,0x30,0x80,0x20,0xB4,0x03,0x58,0x00,0x00,0x02,0xB6,0x03, +0xB4,0x43,0x84,0x1E,0xD5,0x04,0x04,0x20,0x80,0x08,0x84,0x1D,0xFE,0x16,0x14,0x00, +0x80,0x08,0xDD,0x9E,0x46,0x30,0x00,0x83,0x54,0x10,0x00,0x01,0x50,0x51,0x83,0xB8, +0xB4,0x85,0x40,0x20,0xA0,0x08,0x44,0x1F,0xFE,0xFF,0xFE,0x66,0xFE,0x57,0xB6,0x25, +0xB4,0x25,0xE6,0x01,0x44,0x0F,0xFD,0xFF,0x40,0xF7,0xA4,0x08,0xFE,0x0E,0x40,0x00, +0x3C,0x04,0xB6,0x05,0xDD,0x9E,0x46,0x30,0x00,0x83,0x54,0x10,0x00,0x01,0x50,0x51, +0x83,0xB8,0xB4,0x85,0x40,0x20,0xA8,0x08,0x44,0x1F,0xFB,0xFF,0xFE,0x66,0xFE,0x57, +0xB6,0x25,0xB4,0x25,0xE6,0x01,0x44,0x0F,0xF7,0xFF,0x40,0xF7,0xAC,0x08,0xFE,0x0E, +0x40,0x00,0x3C,0x04,0xB6,0x05,0xDD,0x9E,0x44,0x27,0x20,0x68,0x96,0x01,0xB4,0x22, +0x92,0x30,0x40,0x10,0xC0,0x08,0xFE,0x47,0xB6,0x22,0x44,0x27,0x20,0x70,0xB4,0x22, +0x92,0x30,0x40,0x10,0xC0,0x08,0xFE,0x47,0xB6,0x22,0x44,0x27,0x20,0x78,0xB4,0x22, +0x92,0x30,0x40,0x10,0xC0,0x08,0xFE,0x47,0xB6,0x22,0x44,0x27,0x20,0x80,0xB4,0x22, +0x92,0x30,0x40,0x10,0xC0,0x08,0xFE,0x47,0xB6,0x22,0x44,0x27,0x20,0x88,0xB4,0x22, +0x92,0x30,0x40,0x10,0xC0,0x08,0xFE,0x47,0xB6,0x22,0x44,0x27,0x20,0x90,0xB4,0x22, +0x92,0x30,0x40,0x10,0xC0,0x08,0xFE,0x0F,0xB6,0x02,0xDD,0x9E,0xC8,0x0A,0x44,0x17, +0x20,0x00,0x46,0x0F,0xEF,0xFF,0xB4,0x41,0x50,0x00,0x0F,0xFF,0xFE,0x16,0xD5,0x09, +0x5A,0x08,0x01,0x09,0x44,0x17,0x20,0x00,0x46,0x00,0x10,0x00,0xB4,0x41,0xFE,0x17, +0xB6,0x01,0xDD,0x9E,0x44,0x27,0x20,0x00,0x84,0x3E,0xB4,0x62,0x96,0x06,0xFE,0x5E, +0xFE,0x0F,0xB6,0x02,0xDD,0x9E,0x44,0x27,0x20,0x04,0x84,0x3E,0xB4,0x62,0x96,0x06, +0xFE,0x5E,0xFE,0x0F,0xB6,0x02,0xDD,0x9E,0x44,0x27,0x20,0x00,0x96,0x06,0xB4,0x62, +0x40,0x10,0x40,0x08,0x44,0x0E,0xFF,0xFF,0xFE,0x1E,0xFE,0x0F,0xB6,0x02,0xDD,0x9E, +0xC9,0x06,0x44,0x27,0x10,0x00,0xB4,0x22,0xFE,0x0F,0xD5,0x08,0x5A,0x18,0x01,0x08, +0x44,0x27,0x10,0x00,0xFE,0x03,0xB4,0x22,0xFE,0x0E,0xB6,0x02,0xDD,0x9E,0x5A,0x18, +0x01,0x07,0x44,0x27,0x10,0x04,0xB4,0x22,0xFE,0x0F,0xD5,0x07,0xC9,0x07,0x44,0x27, +0x10,0x04,0xFE,0x03,0xB4,0x22,0xFE,0x0E,0xB6,0x02,0xDD,0x9E,0x5A,0x18,0x01,0x07, +0x44,0x27,0x10,0x08,0xB4,0x22,0xFE,0x0F,0xD5,0x07,0xC9,0x07,0x44,0x27,0x10,0x08, +0xFE,0x03,0xB4,0x22,0xFE,0x0E,0xB6,0x02,0xDD,0x9E,0x44,0x16,0x00,0x00,0x5A,0x08, +0x01,0x06,0xB4,0x01,0x58,0x00,0x00,0x01,0xD5,0x04,0xB4,0x41,0x84,0x1E,0xFE,0x16, +0xB6,0x01,0xDD,0x9E,0x44,0x16,0x00,0x00,0xB4,0x41,0x5A,0x08,0x01,0x06,0x44,0x01, +0x00,0x00,0xFE,0x17,0xD5,0x04,0x44,0x0E,0xFF,0xFF,0xFE,0x16,0xB6,0x01,0xDD,0x9E, +0x44,0x06,0x00,0x00,0xB4,0x00,0x92,0x1C,0x96,0x06,0xDD,0x9E,0x44,0x16,0x00,0x30, +0x5A,0x08,0x01,0x06,0xB4,0x01,0x58,0x00,0x01,0x00,0xD5,0x05,0xB4,0x41,0x44,0x0F, +0xFE,0xFF,0xFE,0x16,0xB6,0x01,0xDD,0x9E,0x44,0x36,0x38,0x14,0x40,0x00,0x20,0x08, +0x40,0x20,0x20,0x09,0xB4,0x03,0x96,0x6F,0x92,0x18,0x40,0x00,0x60,0x08,0xFE,0x17, +0x44,0x26,0x38,0x08,0xB6,0x03,0xB4,0x62,0x40,0x00,0xE0,0x08,0x46,0x1C,0x0F,0xFF, +0x50,0x10,0x8F,0xFF,0xFE,0x5E,0xFE,0x47,0xB6,0x22,0x44,0x16,0x38,0x04,0x44,0x01, +0x00,0x00,0xB4,0x41,0xFE,0x17,0xB6,0x01,0x44,0x14,0x80,0x0C,0xB4,0x01,0x92,0x03, +0x96,0x06,0xC0,0xFD,0x44,0x04,0x80,0x0C,0x84,0x28,0xAE,0x40,0xDD,0x9E,0x44,0x36, +0x34,0x14,0x40,0x00,0x20,0x08,0x40,0x20,0x20,0x09,0xB4,0x03,0x96,0x6F,0x92,0x18, +0x40,0x00,0x60,0x08,0xFE,0x17,0x44,0x26,0x34,0x08,0xB6,0x03,0xB4,0x62,0x40,0x00, +0xE0,0x08,0x46,0x1C,0x0F,0xFF,0x50,0x10,0x8F,0xFF,0xFE,0x5E,0xFE,0x47,0xB6,0x22, +0x44,0x16,0x34,0x04,0x44,0x01,0x00,0x00,0xB4,0x41,0xFE,0x17,0xB6,0x01,0x44,0x14, +0x80,0x0C,0xB4,0x01,0x92,0x13,0x96,0x06,0xC0,0xFD,0x44,0x04,0x80,0x0E,0x84,0x28, +0xAE,0x40,0xDD,0x9E,0xFC,0x01,0xB6,0x3F,0x80,0x22,0xF3,0x81,0x49,0xFF,0xFF,0xA6, +0xB4,0x1F,0xF1,0x01,0x49,0xFF,0xFF,0xCD,0xFC,0x81,0x44,0x16,0x3C,0x04,0xB4,0x01, +0x58,0x00,0x00,0x01,0xB6,0x01,0xDD,0x9E,0x44,0x26,0x38,0x04,0xB4,0x22,0x44,0x06, +0x38,0x04,0x92,0x28,0x96,0x46,0xC9,0xFB,0xB4,0x40,0x84,0x3E,0xFE,0x56,0xB6,0x20, +0x80,0x20,0xB4,0x01,0x92,0x08,0x96,0x06,0xC8,0xFD,0x44,0x26,0x34,0x04,0xB4,0x22, +0x44,0x06,0x34,0x04,0x92,0x28,0x96,0x46,0xC9,0xFB,0xB4,0x40,0x84,0x3E,0xFE,0x56, +0xB6,0x20,0x80,0x20,0xB4,0x01,0x92,0x08,0x96,0x06,0xC8,0xFD,0xDD,0x9E,0xFC,0x00, +0x46,0x60,0x00,0x83,0x83,0x86,0xB8,0x27,0x58,0x00,0x00,0x01,0xB8,0xA7,0xB8,0x27, +0x58,0x00,0x01,0x00,0xB8,0xA7,0x84,0x01,0x49,0x00,0x08,0xA4,0xB9,0x27,0x84,0x1E, +0xFE,0x0E,0xB8,0xA7,0xB9,0x27,0x44,0x0F,0xFE,0xFF,0xFE,0x0E,0xB8,0xA7,0xFC,0x80, +0xFC,0x40,0x46,0x60,0x00,0x83,0x84,0xFE,0x83,0x86,0x04,0x93,0x00,0x14,0x96,0x06, +0x40,0x74,0x9C,0x02,0xFE,0x3F,0xB8,0x94,0x96,0x5F,0xBF,0x14,0x40,0x00,0xE0,0x08, +0x46,0x1F,0x0F,0xFF,0x50,0x10,0x8F,0xFF,0xFE,0x7E,0xFE,0x47,0xB9,0x94,0x97,0x2F, +0xB9,0x14,0x40,0x02,0x44,0x08,0x46,0x4F,0xF8,0x1F,0x50,0x42,0x0F,0xFF,0xFF,0x0E, +0xFF,0x07,0xBC,0x94,0x97,0x6F,0x40,0x02,0xAC,0x08,0xBD,0x14,0x44,0x1E,0x07,0xFF, +0xFF,0x4E,0xFF,0x47,0xBD,0x94,0xB8,0x15,0x54,0x21,0x03,0xFF,0x92,0x0A,0x40,0x00, +0x28,0x08,0xFE,0x17,0xB8,0x95,0x96,0xF7,0x40,0x01,0xC0,0x08,0xB9,0x15,0x46,0x3F, +0xF8,0x0F,0x50,0x31,0x8F,0xFF,0xFE,0xCE,0xFE,0xC7,0xBB,0x95,0xFC,0xC0,0x46,0x00, +0x00,0x83,0x04,0x00,0x00,0x16,0x96,0x01,0xDD,0x9E,0xFC,0x00,0x46,0x40,0x00,0x83, +0x84,0x61,0x83,0x84,0xBE,0x13,0x84,0xBE,0xFE,0x1E,0xFF,0x76,0xFE,0x2F,0xB8,0x93, +0xFE,0x5E,0x40,0x30,0xA0,0x08,0xB9,0x60,0x44,0x0F,0xFE,0xFF,0xFE,0x46,0xFE,0x5F, +0xB9,0xE0,0x96,0xA7,0x40,0x01,0x20,0x08,0xBA,0x13,0x44,0x1F,0xE0,0xFF,0xFE,0x8E, +0xFE,0x87,0xBA,0x93,0xFC,0x80,0x46,0x30,0x00,0x83,0x96,0x8F,0x50,0x41,0x81,0x84, +0xB6,0x04,0xA8,0x61,0xA0,0x62,0x84,0x1C,0xFE,0x0E,0xFE,0x87,0xA8,0xA2,0xDD,0x9E, +0x46,0x20,0x00,0x83,0x96,0x27,0x04,0x11,0x00,0x60,0x92,0x25,0x94,0x4D,0xFE,0x47, +0x14,0x11,0x00,0x60,0xDD,0x9E,0x46,0x20,0x00,0x83,0x84,0x3E,0x04,0x31,0x00,0x12, +0x96,0x06,0xFE,0x5E,0xFE,0x0F,0x14,0x01,0x00,0x12,0xDD,0x9E,0xB4,0x40,0x46,0x10, +0x00,0x80,0x14,0x20,0x80,0x48,0xA0,0x01,0x14,0x00,0x80,0x4A,0xDD,0x9E,0xFC,0x40, +0x46,0x20,0x00,0x83,0x50,0x61,0x00,0xE4,0x83,0x82,0xBB,0x18,0x50,0x71,0x00,0xE8, +0x58,0x31,0x81,0x00,0xBB,0x98,0xBB,0x18,0x50,0x91,0x00,0xEC,0x92,0x68,0x40,0x31, +0xA0,0x08,0x58,0x31,0x80,0x88,0xBB,0x98,0x8C,0x02,0x84,0xA0,0x50,0x21,0x00,0xF0, +0x46,0x30,0x00,0x83,0xD1,0x22,0x22,0x30,0x00,0x00,0x22,0x40,0x7F,0xFF,0x40,0x31, +0xC0,0x08,0x88,0x64,0xB6,0x66,0x22,0x30,0x00,0x02,0x22,0x40,0x00,0x01,0x40,0x31, +0xC0,0x08,0x88,0x64,0xB6,0x67,0x22,0x30,0x00,0x04,0x22,0x40,0x00,0x03,0x40,0x31, +0xC0,0x08,0x88,0x64,0xB6,0x69,0xB4,0x62,0x8C,0xA1,0x92,0x70,0x40,0x31,0xC0,0x08, +0xB6,0x62,0x97,0x68,0x8C,0x0C,0xD5,0xDD,0x83,0x83,0xB9,0x18,0x44,0x0F,0xFE,0xFF, +0xFE,0x0E,0xB8,0x98,0xFC,0xC0,0x46,0x20,0x00,0x83,0x96,0x0F,0x04,0x31,0x00,0x12, +0x40,0x10,0x40,0x08,0x44,0x0C,0xFF,0xFF,0xFE,0x1E,0xFE,0x0F,0x14,0x01,0x00,0x12, +0xDD,0x9E,0xFC,0x00,0x84,0x40,0x44,0x64,0x00,0xC0,0x38,0x30,0x88,0x00,0x38,0x40, +0x09,0x01,0x99,0x56,0x40,0x31,0xB0,0x08,0x95,0x69,0xFE,0xE7,0x96,0xD9,0x8C,0x41, +0xAC,0xE8,0x5A,0x28,0x14,0xF4,0xFC,0x80,0x46,0x20,0x00,0x83,0x96,0x06,0x04,0x31, +0x00,0x26,0x94,0x41,0x84,0x1D,0xFE,0x1E,0xFE,0x0F,0x14,0x01,0x00,0x26,0xDD,0x9E, +0x46,0x20,0x00,0x81,0x96,0x06,0xA0,0xD5,0x40,0x10,0x20,0x08,0x44,0x0F,0xFE,0xFF, +0xFE,0x1E,0xFE,0x0F,0xA8,0x15,0xDD,0x9E,0xC9,0x08,0x46,0x20,0x00,0x91,0x84,0x3E, +0xB4,0x62,0x96,0x06,0xFE,0x5E,0xD5,0x0A,0x5A,0x18,0x01,0x0B,0x46,0x20,0x00,0x91, +0x96,0x06,0xB4,0x62,0x94,0x41,0x84,0x1D,0xFE,0x1E,0xFE,0x0F,0xB6,0x02,0xDD,0x9E, +0xFC,0x00,0x44,0x00,0x00,0xC8,0x49,0x00,0x07,0x75,0x44,0x14,0x50,0x0C,0x46,0x60, +0x00,0x81,0xB4,0x01,0x58,0x00,0x00,0x04,0xB6,0x01,0xFA,0x18,0x49,0x00,0x07,0x73, +0x83,0x86,0xB8,0x1C,0x58,0x00,0x01,0x00,0xB8,0x9C,0x84,0x01,0x49,0x00,0x07,0x6B, +0xB9,0x1C,0x44,0x01,0x00,0x00,0xFE,0x0F,0xB8,0x9C,0x44,0x00,0x01,0xF4,0x49,0x00, +0x07,0x59,0xB9,0x1C,0x46,0x00,0x10,0x00,0xFE,0x0F,0xB8,0x9C,0x44,0x00,0x01,0xF4, +0x49,0x00,0x07,0x50,0xFC,0x80,0x00,0x00,0x46,0x10,0x00,0x80,0x50,0x50,0x80,0x80, +0x50,0x10,0x80,0xB0,0xA2,0x81,0xAA,0xA9,0xD9,0xFE,0xDD,0x9E,0x46,0x10,0x00,0x80, +0x50,0x50,0x80,0xB0,0x50,0x10,0x80,0xC4,0xA2,0x81,0xAA,0xA9,0xD9,0xFE,0xDD,0x9E, +0xB4,0x40,0x46,0x10,0x00,0x80,0x14,0x20,0x80,0x47,0xA0,0x01,0x14,0x00,0x80,0x49, +0xDD,0x9E,0x46,0x10,0x00,0x80,0x50,0x50,0x81,0x40,0x50,0x30,0x81,0x4C,0xA6,0x41, +0xA6,0x80,0x94,0x4C,0xFE,0x57,0x96,0x48,0xAE,0x68,0x00,0x10,0x00,0x0D,0x00,0x20, +0x00,0x0C,0x94,0x4C,0xFE,0x57,0x96,0x48,0x10,0x12,0x80,0x0C,0x8C,0xA1,0x8C,0x02, +0xDB,0xEF,0xDD,0x9E,0x46,0x10,0x00,0x80,0x50,0x50,0x80,0x40,0x50,0x30,0x80,0x46, +0xA6,0x41,0xA6,0x80,0x94,0x4C,0xFE,0x57,0x96,0x48,0xAE,0x68,0x00,0x10,0x00,0x0D, +0x00,0x20,0x00,0x0C,0x94,0x4C,0xFE,0x57,0x96,0x48,0x10,0x12,0x80,0x0C,0x8C,0xA1, +0x8C,0x02,0xDB,0xEF,0xDD,0x9E,0xA6,0x81,0x80,0xA0,0x94,0x94,0x08,0x12,0x80,0x05, +0xFE,0x8F,0x46,0x10,0x00,0x80,0x96,0x90,0x10,0x20,0x80,0x48,0xA6,0xA9,0xA6,0xC5, +0x94,0x94,0xFE,0x9F,0x96,0x90,0x10,0x20,0x80,0x54,0xA6,0x83,0xA6,0xC2,0x94,0x94, +0xFE,0x9F,0x96,0x90,0x10,0x20,0x80,0x49,0xA6,0xAB,0xA6,0xEA,0x94,0x94,0xFE,0x9F, +0x96,0x90,0x10,0x20,0x80,0x55,0xA6,0x84,0x84,0x0F,0xFE,0x86,0x40,0x31,0x40,0x08, +0x46,0x4F,0xFF,0x0F,0x04,0x20,0x80,0x12,0x50,0x42,0x0F,0xFF,0xFE,0xA6,0xFE,0x9F, +0x14,0x20,0x80,0x12,0xA6,0xAC,0xFE,0x16,0x40,0x20,0x40,0x08,0x04,0x00,0x80,0x15, +0xFE,0x26,0xFE,0x17,0x14,0x00,0x80,0x15,0xDD,0x9E,0x46,0x10,0x00,0x80,0x50,0x50, +0x80,0x58,0x50,0x30,0x80,0x5E,0xA6,0x41,0xA6,0x80,0x94,0x4C,0xFE,0x57,0x96,0x48, +0xAE,0x68,0x00,0x10,0x00,0x0D,0x00,0x20,0x00,0x0C,0x94,0x4C,0xFE,0x57,0x96,0x48, +0x10,0x12,0x80,0x0C,0x8C,0xA1,0x8C,0x02,0xDB,0xEF,0xDD,0x9E,0xA6,0x81,0x80,0xA0, +0x94,0x94,0x08,0x12,0x80,0x05,0xFE,0x8F,0x46,0x10,0x00,0x80,0x96,0x90,0x10,0x20, +0x80,0x60,0xA6,0xA9,0xA6,0xC5,0x94,0x94,0xFE,0x9F,0x96,0x90,0x10,0x20,0x80,0x6C, +0xA6,0x83,0xA6,0xC2,0x94,0x94,0xFE,0x9F,0x96,0x90,0x10,0x20,0x80,0x61,0xA6,0xAB, +0xA6,0xEA,0x94,0x94,0xFE,0x9F,0x96,0x90,0x10,0x20,0x80,0x6D,0xA6,0x84,0x84,0x0F, +0xFE,0x86,0x40,0x31,0x40,0x08,0x46,0x4F,0xFF,0x0F,0x04,0x20,0x80,0x18,0x50,0x42, +0x0F,0xFF,0xFE,0xA6,0xFE,0x9F,0x14,0x20,0x80,0x18,0xA6,0xAC,0xFE,0x16,0x40,0x20, +0x40,0x08,0x04,0x00,0x80,0x1B,0xFE,0x26,0xFE,0x17,0x14,0x00,0x80,0x1B,0xDD,0x9E, +0xE6,0x06,0xE8,0x57,0xFC,0x20,0x46,0x70,0x00,0x81,0x44,0xF0,0x10,0x78,0x38,0x07, +0x80,0x00,0x40,0xF0,0x3C,0x00,0xDD,0x0F,0x06,0x16,0x34,0x44,0x62,0x76,0x04,0x03, +0x80,0x20,0x54,0x10,0x87,0xFF,0x92,0x0B,0x40,0x00,0x2C,0x08,0xD5,0x0C,0x54,0x10, +0x87,0xFF,0x40,0x00,0xC0,0x08,0x04,0x23,0x80,0x20,0x46,0x1F,0x80,0x0F,0x50,0x10, +0x8F,0xFF,0xFE,0x56,0xFE,0x47,0x14,0x13,0x80,0x20,0xFC,0xA0,0x04,0x03,0x80,0x21, +0x54,0x10,0x87,0xFF,0x92,0x0B,0x40,0x00,0x2C,0x08,0xD5,0x0C,0x54,0x10,0x87,0xFF, +0x40,0x00,0xC0,0x08,0x04,0x23,0x80,0x21,0x46,0x1F,0x80,0x0F,0x50,0x10,0x8F,0xFF, +0xFE,0x56,0xFE,0x47,0x14,0x13,0x80,0x21,0xFC,0xA0,0x83,0x87,0xB8,0x22,0x54,0x10, +0x87,0xFF,0x92,0x0B,0x40,0x00,0x2C,0x08,0xFE,0x47,0xB9,0xA2,0xFC,0xA0,0x80,0xC1, +0x49,0xFF,0xFD,0x54,0x54,0x13,0x03,0xFF,0x95,0x8E,0x04,0x13,0x83,0x98,0x44,0x0F, +0x00,0x3F,0xFE,0x46,0xFE,0x77,0x14,0x13,0x83,0x98,0x49,0xFF,0xFD,0x40,0xFC,0xA0, +0xDD,0x9E,0x46,0x20,0x00,0x83,0x96,0x06,0x40,0x10,0x60,0x08,0x04,0x31,0x00,0xC0, +0x46,0x0F,0xEF,0xFF,0x50,0x00,0x0F,0xFF,0xFE,0x1E,0xFE,0x0F,0x14,0x01,0x00,0xC0, +0xDD,0x9E,0x46,0x20,0x00,0x83,0x96,0x06,0x40,0x10,0x64,0x08,0x04,0x31,0x00,0xC0, +0x46,0x0F,0xDF,0xFF,0x50,0x00,0x0F,0xFF,0xFE,0x1E,0xFE,0x0F,0x14,0x01,0x00,0xC0, +0xDD,0x9E,0x46,0x20,0x00,0x83,0x96,0x0F,0x04,0x31,0x00,0x0F,0x40,0x10,0x20,0x08, +0x44,0x0F,0xFC,0xFF,0xFE,0x1E,0xFE,0x0F,0x14,0x01,0x00,0x0F,0xDD,0x9E,0x46,0x20, +0x00,0x83,0x84,0x3E,0x04,0x31,0x00,0x0F,0x96,0x06,0xFE,0x5E,0xFE,0x0F,0x14,0x01, +0x00,0x0F,0xDD,0x9E,0x46,0x20,0x00,0x83,0x96,0x06,0x04,0x31,0x00,0x0F,0x40,0x10, +0x28,0x08,0x44,0x0F,0xFB,0xFF,0xFE,0x1E,0xFE,0x0F,0x14,0x01,0x00,0x0F,0xDD,0x9E, +0x46,0x10,0x00,0x83,0x44,0x01,0x00,0x00,0x04,0x20,0x80,0x0E,0xFE,0x17,0x14,0x00, +0x80,0x0E,0xDD,0x9E,0x46,0x20,0x00,0x83,0x46,0x3F,0x7F,0xFF,0x50,0x51,0x00,0x38, +0xB4,0x85,0x50,0x31,0x8F,0xFF,0xFE,0xE6,0xB6,0x65,0xB4,0x85,0x46,0x3E,0xFF,0xFF, +0x50,0x31,0x8F,0xFF,0xFE,0xE6,0xB6,0x65,0x5A,0x08,0x01,0x04,0x84,0x1F,0xD5,0x02, +0x84,0x00,0x14,0x01,0x00,0x0B,0x14,0x01,0x00,0x0C,0x04,0x01,0x00,0x33,0x5A,0x18, +0x01,0x0B,0x58,0x00,0x0F,0xFF,0x14,0x01,0x00,0x33,0x04,0x01,0x00,0x34,0x58,0x00, +0x0F,0xFF,0xD5,0x0B,0x92,0x0C,0x40,0x00,0x30,0x08,0x14,0x01,0x00,0x33,0x04,0x01, +0x00,0x34,0x92,0x0C,0x40,0x00,0x30,0x08,0x14,0x01,0x00,0x34,0xDD,0x9E,0x46,0x10, +0x00,0x83,0x96,0x06,0x50,0x50,0x80,0x38,0xB4,0x85,0x44,0x2F,0xFE,0xFF,0x40,0x30, +0x20,0x08,0xFE,0xA6,0xFE,0x9F,0xB6,0x45,0xB4,0x65,0x44,0x2F,0xFD,0xFF,0x40,0x00, +0x24,0x08,0xFE,0x9E,0xFE,0x17,0xB6,0x05,0xDD,0x9E,0x46,0x20,0x00,0x81,0x50,0x51, +0x00,0x90,0x50,0x31,0x00,0x9A,0x08,0x20,0x00,0x01,0x88,0x41,0x96,0x90,0x18,0x22, +0x80,0x01,0xDB,0xFA,0xDD,0x9E,0xE6,0x25,0xE8,0x33,0x96,0x1F,0x46,0x20,0x00,0x81, +0x44,0xF0,0x12,0x80,0x38,0x17,0x84,0x00,0x40,0xF0,0xBC,0x00,0x4A,0x00,0x3C,0x00, +0x06,0x0E,0x1A,0x28,0x36,0x00,0x04,0x31,0x00,0x23,0x84,0x30,0xD5,0x1D,0x94,0x04, +0x04,0x31,0x00,0x23,0x44,0x1F,0xFF,0x0F,0xD5,0x17,0x40,0x00,0x20,0x08,0x04,0x31, +0x00,0x23,0x44,0x1F,0xF0,0xFF,0xD5,0x10,0x40,0x00,0x30,0x08,0x04,0x31,0x00,0x23, +0x44,0x1F,0x0F,0xFF,0xD5,0x09,0x46,0x1F,0xFF,0x0F,0x40,0x00,0x40,0x08,0x04,0x31, +0x00,0x23,0x50,0x10,0x8F,0xFF,0xFE,0x5E,0xFE,0x0F,0x14,0x01,0x00,0x23,0xDD,0x9E, +0x46,0x00,0x00,0x81,0x84,0x20,0x04,0x00,0x00,0x12,0x92,0x12,0x96,0x0F,0x40,0x00, +0x80,0x06,0xDD,0x9E,0x46,0x20,0x00,0x81,0x54,0x00,0x03,0xFF,0x40,0x10,0x40,0x08, +0x04,0x31,0x00,0x49,0x46,0x0F,0xC0,0x0F,0x50,0x00,0x0F,0xFF,0xFE,0x1E,0xFE,0x0F, +0x14,0x01,0x00,0x49,0xDD,0x9E,0xE6,0x06,0xE8,0x52,0xFC,0x20,0x46,0x70,0x00,0x81, +0x54,0x60,0x83,0xFF,0x44,0xF0,0x13,0x24,0x38,0x07,0x80,0x00,0x40,0xF0,0x3C,0x00, +0x4A,0x00,0x3C,0x00,0x06,0x2E,0x46,0x56,0x66,0x16,0x83,0x87,0xB9,0x30,0x92,0x2A, +0x40,0x10,0xA8,0x08,0xFF,0x8F,0xBE,0xB0,0xFC,0xA0,0x83,0x87,0xB8,0x31,0x46,0x2F, +0xC0,0x0F,0x50,0x21,0x0F,0xFF,0x40,0x63,0x40,0x08,0xFE,0x16,0xFE,0x37,0xB8,0xB1, +0xFC,0xA0,0x83,0x87,0xB8,0x30,0x46,0x2F,0xC0,0x0F,0x50,0x21,0x0F,0xFF,0x40,0x63, +0x40,0x08,0xFE,0x16,0xFE,0x37,0xB8,0xB0,0xFC,0xA0,0x83,0x87,0xB9,0x31,0x92,0x2A, +0x40,0x10,0xA8,0x08,0xFF,0x8F,0xBE,0xB1,0xFC,0xA0,0x83,0x87,0xB9,0x32,0x92,0x2A, +0x40,0x10,0xA8,0x08,0xFF,0x8F,0xBE,0xB2,0xFC,0xA0,0x49,0xFF,0xFC,0x07,0x40,0x13, +0x40,0x08,0x04,0x03,0x83,0x98,0x46,0x6F,0xC0,0x0F,0x50,0x63,0x0F,0xFF,0xFF,0x86, +0xFF,0x8F,0x14,0x63,0x83,0x98,0x49,0xFF,0xFB,0xF2,0xFC,0xA0,0xDD,0x9E,0x54,0x20, +0x80,0x03,0xE6,0x08,0x54,0x10,0x80,0x0C,0x90,0x22,0x4E,0xF2,0x00,0x93,0x96,0x4F, +0x46,0x30,0x00,0x81,0x96,0x8F,0x44,0xF0,0x13,0xD4,0x38,0x07,0x80,0x00,0x40,0xF0, +0x3C,0x00,0xDD,0x0F,0x08,0x24,0x40,0x5E,0x7C,0x9C,0xBC,0xE8,0x50,0x51,0x80,0x9C, +0xB4,0x85,0x84,0x1C,0xFE,0x26,0xFE,0x47,0xB6,0x25,0xB4,0x25,0x44,0x0C,0xFF,0xFF, +0x40,0x21,0x40,0x08,0xFE,0x0E,0xD5,0x72,0x50,0x51,0x80,0x9C,0xB4,0x85,0x84,0x13, +0xFE,0x26,0x94,0x4A,0xFE,0x47,0xB6,0x25,0x40,0x21,0x48,0x08,0xB4,0x05,0x46,0x1F, +0xFF,0x3F,0xD5,0x4E,0x50,0x51,0x80,0x9C,0xB4,0x85,0x44,0x0F,0xFF,0xCF,0xFE,0x26, +0x94,0x4C,0xFE,0x47,0xB6,0x25,0x40,0x21,0x50,0x08,0xB4,0x05,0x46,0x1F,0xFC,0xFF, +0xD5,0x3F,0x50,0x51,0x80,0x9C,0xB4,0x85,0x44,0x0F,0xFF,0x3F,0xFE,0x26,0x94,0x4E, +0xFE,0x47,0xB6,0x25,0x40,0x21,0x58,0x08,0xB4,0x05,0x46,0x1F,0xF3,0xFF,0xD5,0x30, +0x50,0x51,0x80,0x9C,0xB4,0x85,0x44,0x0F,0xFC,0xFF,0xFE,0x26,0x40,0x10,0xA0,0x08, +0xFE,0x47,0xB6,0x25,0x40,0x21,0x60,0x08,0xB4,0x05,0x46,0x1F,0xCF,0xFF,0xD5,0x20, +0x50,0x51,0x80,0x9C,0xB4,0x85,0x44,0x0F,0xF3,0xFF,0xFE,0x26,0x40,0x10,0xA8,0x08, +0xFE,0x47,0xB6,0x25,0x40,0x21,0x68,0x08,0xB4,0x05,0x46,0x1F,0x3F,0xFF,0xD5,0x10, +0x50,0x51,0x80,0x9C,0xB4,0x85,0x44,0x0F,0xCF,0xFF,0xFE,0x26,0x40,0x10,0xB0,0x08, +0xFE,0x47,0xB6,0x25,0x40,0x21,0x70,0x08,0xB4,0x05,0x46,0x1C,0xFF,0xFF,0x50,0x10, +0x8F,0xFF,0xFE,0x0E,0xFE,0x17,0x14,0x01,0x80,0x27,0xDD,0x9E,0x50,0x51,0x80,0x9C, +0xB4,0x85,0x44,0x0F,0x3F,0xFF,0xFE,0x26,0x40,0x10,0xB8,0x08,0xFE,0x47,0xB6,0x25, +0xB4,0x05,0x40,0x21,0x78,0x08,0x94,0x02,0x92,0x02,0xFE,0x87,0x14,0x21,0x80,0x27, +0xDD,0x9E,0xDD,0x9E,0xFC,0x40,0x80,0xE0,0x44,0x04,0x34,0x38,0x5A,0x78,0x01,0x2B, +0x80,0xC1,0xB4,0x20,0x44,0x9F,0xE0,0xFF,0x58,0x10,0x80,0x02,0xB6,0x20,0x80,0x27, +0x49,0xFF,0xFB,0x0F,0x44,0x04,0x34,0x50,0x97,0xA7,0xB4,0x20,0x40,0x63,0x20,0x08, +0x40,0x10,0xA4,0x02,0xFE,0x77,0xB6,0x20,0x80,0x27,0x49,0xFF,0xFB,0x02,0x44,0x04, +0x38,0x3C,0xB4,0x20,0x58,0x10,0x80,0x02,0xB6,0x20,0x80,0x27,0x49,0xFF,0xFA,0xCE, +0x44,0x04,0x38,0x58,0xB4,0x20,0x40,0x10,0xA4,0x02,0xFF,0x8F,0xB6,0xC0,0x80,0x27, +0xD5,0x0E,0xB4,0x20,0x84,0xDD,0xFE,0x76,0xB6,0x20,0x84,0x21,0x49,0xFF,0xFA,0xE9, +0x44,0x04,0x38,0x3C,0xB4,0x20,0xFF,0x8E,0xB6,0xC0,0x84,0x21,0x49,0xFF,0xFA,0xB6, +0xFC,0xC0,0x92,0x00,0xC8,0x04,0x44,0x07,0x20,0x0C,0xD5,0x03,0x44,0x07,0x20,0x10, +0xB4,0x00,0x40,0x00,0x30,0x08,0x92,0x0C,0xDD,0x9E,0xFC,0x00,0x80,0xC1,0x49,0xFF, +0xFF,0xF3,0x84,0x40,0x80,0x22,0xE2,0x46,0xE8,0x05,0x38,0x10,0x0A,0x0A,0x8C,0x41, +0xD5,0xFB,0xFC,0x80,0x44,0x27,0x20,0x1C,0x54,0x00,0x0F,0xFF,0xB4,0x22,0x92,0x2C, +0x40,0x10,0xB0,0x08,0xFE,0x47,0xB6,0x22,0xDD,0x9E,0x44,0x27,0x20,0x34,0x54,0x00, +0x0F,0xFF,0xB4,0x22,0x92,0x2C,0x40,0x10,0xB0,0x08,0xFE,0x47,0xB6,0x22,0xDD,0x9E, +0x44,0x27,0x20,0x38,0x54,0x00,0x0F,0xFF,0xB4,0x22,0x92,0x2C,0x40,0x10,0xB0,0x08, +0xFE,0x47,0xB6,0x22,0xDD,0x9E,0x44,0x27,0x20,0x54,0x84,0x30,0xB4,0x62,0x96,0x1F, +0xFE,0x5E,0xFE,0x0F,0xB6,0x02,0xDD,0x9E,0x44,0x27,0x20,0x54,0x96,0x1F,0xB4,0x62, +0x40,0x10,0x20,0x08,0x44,0x0F,0xF0,0xFF,0xFE,0x1E,0xFE,0x0F,0xB6,0x02,0xDD,0x9E, +0x44,0x27,0x20,0x58,0x96,0x1F,0x40,0x10,0x40,0x08,0xB4,0x62,0x46,0x0F,0xFF,0x0F, +0x50,0x00,0x0F,0xFF,0xFE,0x1E,0xFE,0x0F,0xB6,0x02,0xDD,0x9E,0x44,0x04,0x00,0x9C, +0xA6,0x00,0xDD,0x9E,0x46,0x10,0x00,0x81,0x04,0x00,0x80,0x6E,0x58,0x00,0x00,0x01, +0x14,0x00,0x80,0x6E,0xDD,0x9E,0xFC,0x00,0x44,0x04,0x2C,0x1C,0x84,0x41,0xB4,0x20, +0x80,0x62,0x58,0x10,0x81,0x00,0xB6,0x20,0xB4,0x20,0x58,0x10,0x80,0x80,0xB6,0x20, +0x44,0x04,0x28,0x1C,0x44,0x14,0x24,0x1C,0x49,0xFF,0xFA,0x8E,0xFC,0x80,0x46,0x20, +0x00,0x80,0x84,0x30,0x50,0x41,0x01,0xD0,0xB4,0x64,0x96,0x1F,0xFE,0x5E,0xFE,0x47, +0xB6,0x24,0xB4,0x64,0x44,0x1F,0xFF,0x0F,0x94,0x04,0xFE,0x5E,0xFE,0x0F,0xB6,0x04, +0xDD,0x9E,0x00,0x00,0x44,0x24,0x80,0x88,0x84,0x3E,0xB4,0x62,0x96,0x06,0xFE,0x5E, +0xFE,0x47,0xB6,0x22,0xB4,0x62,0x84,0x3D,0x94,0x01,0xFE,0x5E,0xFE,0x0F,0xB6,0x02, +0xDD,0x9E,0xFC,0x00,0x44,0x64,0x00,0x18,0x84,0x21,0xAE,0x70,0xA6,0x32,0x44,0x20, +0x98,0x81,0x58,0x00,0x00,0x01,0xAE,0x32,0xA6,0x32,0x58,0x00,0x00,0x02,0xAE,0x32, +0xA6,0x32,0x58,0x00,0x00,0x04,0xAE,0x32,0xA6,0x33,0x58,0x00,0x00,0x02,0xAE,0x33, +0xA6,0x33,0x58,0x00,0x00,0x04,0xAE,0x33,0xA6,0x33,0x58,0x00,0x00,0x08,0xAE,0x33, +0xA6,0x33,0x58,0x00,0x00,0x10,0xAE,0x33,0x44,0x04,0x00,0x10,0xB6,0x40,0xAE,0x71, +0xA6,0x32,0x58,0x00,0x00,0x10,0xAE,0x32,0xA6,0x32,0x58,0x00,0x00,0x20,0xAE,0x32, +0xA6,0x72,0x44,0x0F,0xFF,0x80,0xFE,0x0F,0xAE,0x32,0xA6,0x33,0x54,0x00,0x00,0xFE, +0xAE,0x33,0xA6,0x33,0x58,0x00,0x00,0x20,0xAE,0x33,0xA6,0x33,0x58,0x00,0x00,0x40, +0xAE,0x33,0x49,0x00,0x2E,0x12,0xE6,0x03,0x44,0x14,0x50,0x10,0xA6,0x32,0xE9,0x10, +0x54,0x00,0x00,0xFB,0xAE,0x32,0xB4,0x01,0x92,0x08,0x40,0x00,0x20,0x08,0xB6,0x01, +0x44,0x14,0x70,0x00,0x44,0x0E,0xFF,0xFF,0xB4,0x41,0xFE,0x16,0xD5,0x11,0x58,0x00, +0x00,0x04,0xAE,0x32,0xB4,0x01,0x92,0x08,0x40,0x00,0x20,0x08,0x58,0x00,0x00,0x98, +0xB6,0x01,0x44,0x14,0x70,0x00,0x44,0x01,0x00,0x00,0xB4,0x41,0xFE,0x17,0xB6,0x01, +0xFC,0x80,0x44,0x37,0x20,0x44,0x46,0x0F,0xC0,0x0F,0xB4,0x23,0x50,0x00,0x0F,0xFF, +0xFE,0x46,0x46,0x20,0x24,0x00,0xFE,0x57,0xB6,0x23,0x44,0x37,0x20,0x48,0x44,0x23, +0x00,0x00,0xB4,0x23,0xFE,0x46,0xFE,0x57,0x44,0x27,0x20,0x4C,0xB6,0x23,0xB4,0x22, +0x46,0x30,0x0C,0x00,0x92,0x2C,0x40,0x10,0xB0,0x08,0x58,0x10,0x82,0x52,0xB6,0x22, +0xB4,0x22,0xFE,0x46,0xFE,0x5F,0xB6,0x22,0x44,0x27,0x20,0x50,0x46,0x30,0x00,0x90, +0xB4,0x22,0x92,0x2C,0x40,0x10,0xB0,0x08,0x58,0x10,0x82,0x40,0xB6,0x22,0xB4,0x22, +0xFE,0x0E,0xB6,0x02,0x44,0x27,0x20,0x04,0x46,0x0F,0xFF,0x0F,0xB4,0x22,0x50,0x00, +0x0F,0xFF,0xFE,0x46,0xFE,0x5F,0xB6,0x22,0xB4,0x62,0x46,0x1F,0xF0,0xFF,0x50,0x10, +0x8F,0xFF,0xFE,0x5E,0x46,0x30,0x03,0x00,0xFE,0x5F,0xB6,0x22,0x46,0x20,0x00,0x80, +0x44,0x1F,0xF0,0xFF,0x50,0x41,0x01,0xC0,0xB4,0x64,0xFE,0x5E,0x58,0x10,0x88,0x00, +0xB6,0x24,0xB4,0x24,0xFE,0x0E,0x44,0x12,0x00,0x00,0xFE,0x0F,0xB6,0x04,0xDD,0x9E, +0x46,0x20,0x00,0x91,0x40,0x00,0x40,0x08,0xA0,0x56,0x96,0x49,0xFE,0x0F,0xA8,0x16, +0xDD,0x9E,0xE6,0x04,0xE8,0x28,0x46,0x10,0x00,0x91,0x44,0xF0,0x18,0x48,0x38,0x07, +0x80,0x00,0x40,0xF0,0x3C,0x00,0xDD,0x0F,0x04,0x12,0x20,0x2E,0xA0,0x0A,0x92,0x10, +0x40,0x00,0x40,0x08,0x58,0x00,0x00,0x0A,0xD5,0x15,0xA0,0x0A,0x92,0x10,0x40,0x00, +0x40,0x08,0x58,0x00,0x00,0x46,0xD5,0x0E,0xA0,0x0A,0x92,0x10,0x40,0x00,0x40,0x08, +0x58,0x00,0x00,0x96,0xD5,0x07,0xA0,0x0A,0x92,0x10,0x40,0x00,0x40,0x08,0x58,0x00, +0x01,0xF4,0xA8,0x0A,0xDD,0x9E,0x46,0x2F,0xFC,0x0F,0x46,0x10,0x00,0x91,0x50,0x21, +0x0F,0xFF,0x5A,0x08,0x01,0x08,0x04,0x00,0x80,0x0E,0xFE,0x86,0x44,0x02,0x00,0x00, +0xD5,0x06,0x04,0x00,0x80,0x0E,0xFE,0x86,0x44,0x01,0x00,0x00,0xFE,0x87,0x14,0x20, +0x80,0x0E,0xA0,0x09,0x92,0x06,0x94,0x06,0x58,0x00,0x00,0x01,0xA8,0x09,0xDD,0x9E, +0xFC,0x00,0x46,0x60,0x00,0x91,0x84,0x01,0xA8,0x31,0x44,0x00,0x01,0xF4,0xA8,0x32, +0x83,0x86,0xB9,0x0A,0x46,0x0F,0xC0,0x0F,0x50,0x00,0x0C,0x00,0xFE,0x46,0x58,0x10, +0x80,0x01,0xB9,0x8A,0xB9,0x0B,0xFE,0x0E,0x58,0x00,0x02,0x40,0xB8,0x8B,0xB9,0x0C, +0x44,0x0F,0xC0,0xC0,0xFE,0x0E,0x58,0x00,0x20,0x01,0xB8,0x8C,0xB9,0x0D,0x46,0x0E, +0x0E,0x0E,0x50,0x00,0x00,0xE0,0xFE,0x0E,0x46,0x10,0x60,0x11,0x50,0x10,0x82,0x01, +0xFE,0x0F,0xB8,0x8D,0xB9,0x0E,0x46,0x0F,0xFC,0x0C,0x50,0x00,0x00,0xF3,0xFE,0x0E, +0x44,0x11,0x01,0x0C,0xFE,0x0F,0xB8,0x8E,0x49,0xFF,0xFE,0x7A,0xE6,0x03,0xA0,0x36, +0x92,0x10,0x40,0x00,0x40,0x08,0xE9,0x1F,0x58,0x00,0x00,0x64,0xA8,0x36,0x83,0x86, +0xB8,0x08,0x92,0x10,0x40,0x00,0x40,0x08,0x58,0x00,0x00,0x64,0xB8,0x88,0xA0,0x35, +0x92,0x10,0x40,0x00,0x40,0x08,0x58,0x00,0x00,0x64,0xA8,0x35,0xA0,0x37,0x92,0x10, +0x40,0x00,0x40,0x08,0x58,0x00,0x00,0x64,0xA8,0x37,0xA0,0x76,0x46,0x00,0x06,0x40, +0x96,0x49,0xD5,0x1E,0x58,0x00,0x46,0x00,0xA8,0x36,0x83,0x86,0xB8,0x08,0x92,0x10, +0x40,0x00,0x40,0x08,0x58,0x00,0x46,0x00,0xB8,0x88,0xA0,0x35,0x92,0x10,0x40,0x00, +0x40,0x08,0x58,0x00,0x46,0x00,0xA8,0x35,0xA0,0x37,0x92,0x10,0x40,0x00,0x40,0x08, +0x58,0x00,0x46,0x00,0xA8,0x37,0xA0,0x76,0x46,0x04,0x60,0x00,0x96,0x49,0xFE,0x47, +0xA8,0x76,0x83,0x86,0xB9,0x08,0x96,0x49,0xFE,0x47,0xB9,0x88,0xA0,0x75,0x96,0x49, +0xFE,0x47,0xA8,0x75,0xA0,0x77,0x96,0x49,0xFE,0x0F,0xA8,0x37,0x46,0x00,0x00,0x91, +0x83,0x80,0xB9,0x12,0x58,0x10,0xBF,0x3F,0xB9,0x92,0xBA,0x13,0x44,0x1E,0xE0,0x80, +0xFE,0x56,0x44,0x21,0x00,0x48,0xFE,0x57,0xB9,0x93,0xFC,0x80,0x46,0x00,0x00,0x91, +0x50,0x30,0x00,0x44,0xB4,0x23,0x58,0x10,0x80,0x01,0xB6,0x23,0xB4,0x43,0x84,0x3E, +0xFE,0x56,0xB6,0x23,0xDD,0x9E,0x92,0x00,0x44,0x17,0x30,0x10,0xB4,0x01,0x96,0x06, +0xC0,0xFE,0x44,0x17,0x30,0x10,0xB4,0x01,0x92,0x03,0x96,0x06,0x5A,0x00,0x01,0xFD, +0xDD,0x9E,0x84,0xA0,0xD0,0x05,0x40,0x00,0x00,0x09,0x8C,0xA1,0xD5,0xFC,0xDD,0x9E, +0x44,0x27,0x30,0x10,0xB4,0x22,0x92,0x21,0x96,0x46,0x5A,0x10,0x01,0xFD,0x44,0x17, +0x30,0x00,0xB6,0x01,0xDD,0x9E,0xFC,0x00,0x44,0x04,0x70,0x18,0x84,0x3B,0xB4,0x40, +0xFE,0x56,0xB6,0x20,0x40,0x00,0x00,0x09,0x40,0x00,0x00,0x09,0xB4,0x20,0x46,0x61, +0xFF,0xF9,0x58,0x10,0x80,0x02,0xB6,0x20,0x44,0x04,0x80,0x0A,0x84,0x24,0xAE,0x40, +0x44,0x04,0x80,0x88,0x44,0x14,0x00,0x00,0xB4,0x40,0xFE,0x57,0xB6,0x20,0xB4,0x40, +0x44,0x1D,0xFF,0xFF,0xFE,0x56,0xB6,0x20,0x44,0x17,0x30,0x08,0xB4,0x01,0x92,0x05, +0x94,0x05,0x58,0x00,0x00,0x01,0xB6,0x01,0x50,0x03,0x05,0x27,0x49,0xFF,0xFF,0xCA, +0x50,0x03,0x04,0x87,0x46,0x61,0xFF,0xFF,0x49,0xFF,0xFF,0xC4,0x50,0x03,0x03,0xCC, +0x49,0xFF,0xFF,0xC0,0x80,0x06,0x49,0xFF,0xFF,0xBD,0x50,0x03,0x0F,0x06,0x49,0xFF, +0xFF,0xB9,0x49,0xFF,0xFF,0xA3,0x46,0x01,0xF0,0x40,0x50,0x00,0x01,0x50,0x49,0xFF, +0xFF,0xB1,0x49,0xFF,0xFF,0x9B,0x46,0x01,0xF0,0x90,0x50,0x00,0x01,0x08,0x49,0xFF, +0xFF,0xA9,0x49,0xFF,0xFF,0x93,0xFC,0x80,0xC9,0x08,0x44,0x24,0x00,0x0C,0x96,0x06, +0xA6,0x50,0x54,0x10,0x80,0xFE,0xD5,0x0A,0x5A,0x18,0x01,0x0B,0x44,0x24,0x00,0x0C, +0x96,0x06,0xA6,0x50,0x94,0x01,0x54,0x10,0x80,0xFD,0xFE,0x0F,0xAE,0x10,0xDD,0x9E, +0xC9,0x04,0x44,0x15,0x00,0x00,0xD5,0x05,0x5A,0x18,0x01,0x05,0x44,0x15,0x00,0x10, +0xAE,0x0A,0xDD,0x9E,0xC9,0x0A,0x44,0x24,0x80,0x80,0x96,0x06,0x40,0x10,0x60,0x08, +0xB4,0x62,0x46,0x0F,0xEF,0xFF,0xD5,0x0B,0x5A,0x18,0x01,0x0F,0x44,0x24,0x80,0x80, +0x96,0x06,0x40,0x10,0x64,0x08,0xB4,0x62,0x46,0x0F,0xDF,0xFF,0x50,0x00,0x0F,0xFF, +0xFE,0x1E,0xFE,0x0F,0xB6,0x02,0xDD,0x9E,0xC9,0x04,0x44,0x15,0x00,0x04,0xD5,0x05, +0x5A,0x18,0x01,0x05,0x44,0x15,0x00,0x14,0xAC,0x08,0xDD,0x9E,0xC8,0x08,0x44,0x14, +0x80,0x03,0x84,0x01,0xAE,0x08,0x44,0x15,0x00,0x08,0xD5,0x09,0x5A,0x08,0x01,0x09, +0x44,0x14,0x80,0x03,0x84,0x42,0xAE,0x88,0x44,0x15,0x00,0x18,0xAE,0x09,0xDD,0x9E, +0xC8,0x08,0x44,0x04,0x80,0x03,0x84,0x21,0xAE,0x40,0x44,0x15,0x00,0x08,0xD5,0x09, +0x5A,0x08,0x01,0x0C,0x44,0x04,0x80,0x03,0x84,0x22,0xAE,0x40,0x44,0x15,0x00,0x18, +0xA6,0x08,0x58,0x00,0x00,0x02,0xAE,0x08,0xDD,0x9E,0xC9,0x04,0x44,0x15,0x00,0x00, +0xD5,0x05,0x5A,0x18,0x01,0x05,0x44,0x15,0x00,0x10,0xAE,0x08,0xDD,0x9E,0x84,0x21, +0xC0,0x04,0x5A,0x08,0x01,0x06,0x84,0x22,0x44,0x04,0x80,0x03,0xAE,0x40,0xDD,0x9E, +0x44,0x04,0x80,0x00,0xA6,0x03,0x92,0x01,0x96,0x06,0xC0,0x05,0x44,0x04,0x80,0x03, +0x84,0x22,0xAE,0x40,0xDD,0x9E,0x46,0x20,0x00,0x81,0x84,0x3E,0xA0,0xD5,0x96,0x06, +0xFE,0x5E,0xFE,0x0F,0xA8,0x15,0xDD,0x9E,0x46,0x00,0x00,0x81,0xA0,0x05,0x96,0x06, +0xDD,0x9E,0x44,0x24,0x50,0x14,0x84,0x3E,0xB4,0x62,0x96,0x06,0xFE,0x5E,0xFE,0x0F, +0xB6,0x02,0xDD,0x9E,0x44,0x25,0x10,0x04,0xB4,0x22,0x92,0x30,0x40,0x10,0xC0,0x08, +0xFE,0x0F,0xB6,0x02,0xDD,0x9E,0x44,0x15,0x10,0x0C,0xB4,0x01,0x58,0x00,0x01,0x00, +0xB6,0x01,0xDD,0x9E,0x44,0x15,0x10,0x0C,0xB4,0x01,0x92,0x08,0x40,0x00,0x20,0x08, +0x58,0x00,0x00,0x01,0xB6,0x01,0x44,0x15,0x10,0x18,0xB4,0x01,0x96,0x00,0x5A,0x00, +0x5A,0xFE,0xDD,0x9E,0xFC,0x00,0x44,0x00,0x01,0x2C,0x49,0x00,0x00,0x6B,0x44,0x05, +0x10,0x0C,0x44,0x1F,0xFF,0x81,0xAE,0x40,0x44,0x1F,0xFF,0x98,0xAE,0x40,0x44,0x15, +0x10,0x18,0xB4,0x01,0x96,0x00,0x5A,0x00,0xA5,0xFE,0x44,0x15,0x10,0x0C,0xB4,0x01, +0x92,0x08,0x40,0x00,0x20,0x08,0xB6,0x01,0xFC,0x80,0xC0,0x04,0x5A,0x00,0x01,0x1F, +0xDD,0x9E,0x44,0x14,0x80,0x82,0x44,0x22,0x00,0x00,0xAE,0x08,0x44,0x14,0x80,0x00, +0x44,0x04,0x80,0x80,0xB6,0x41,0xB4,0x60,0xFE,0x9F,0xB6,0x40,0x44,0x24,0x00,0x00, +0xB6,0x41,0xB4,0x60,0xFE,0x9F,0xB6,0x40,0x46,0x20,0x01,0x00,0xB6,0x41,0xB4,0x60, +0xFE,0x9F,0xB6,0x40,0x46,0x20,0x00,0x80,0xD5,0x23,0x44,0x04,0x80,0x82,0x84,0x20, +0xAE,0x40,0x44,0x14,0x80,0x00,0x44,0x04,0x80,0x80,0x44,0x21,0x00,0x00,0xB6,0x41, +0xB4,0x60,0xFE,0x9F,0xB6,0x40,0x44,0x22,0x00,0x00,0xB6,0x41,0xB4,0x60,0xFE,0x9F, +0xB6,0x40,0x44,0x24,0x00,0x00,0xB6,0x41,0xB4,0x60,0xFE,0x9F,0xB6,0x40,0x46,0x20, +0x00,0x80,0xB6,0x41,0xB4,0x60,0xFE,0x9F,0xB6,0x40,0x46,0x20,0x01,0x00,0xB6,0x41, +0xB4,0x60,0xFE,0x9F,0xB6,0x40,0x46,0x20,0x02,0x00,0xB6,0x41,0xB4,0x60,0xFE,0x9F, +0xB6,0x40,0x46,0x20,0x04,0x00,0xB6,0x41,0xB4,0x20,0xFE,0x8F,0xB6,0x40,0xDD,0x9E, +0x84,0x2E,0xFE,0x0C,0x8E,0x01,0x5A,0x07,0xFF,0x05,0x40,0x00,0x00,0x09,0xD5,0xFB, +0xDD,0x9E,0x44,0x10,0x36,0xB0,0xFE,0x0C,0x8E,0x01,0x5A,0x07,0xFF,0x05,0x40,0x00, +0x00,0x09,0xD5,0xFB,0xDD,0x9E,0xFF,0xFF,0xFC,0x00,0x49,0x00,0x18,0x39,0xC8,0x05, +0x84,0x01,0x3E,0x07,0xEF,0x94,0xFC,0x80,0x84,0x02,0x3E,0x07,0xEF,0x94,0x49,0x00, +0x0B,0x25,0xFC,0x80,0xFC,0x00,0x84,0x00,0x49,0x00,0x0F,0x0D,0x84,0x00,0x44,0x12, +0x00,0xDC,0x49,0x00,0x0F,0x29,0x84,0x00,0x84,0x27,0x49,0x00,0x0F,0x87,0xFC,0x80, +0xFC,0x00,0xC0,0x0B,0x5A,0x08,0x01,0x05,0x49,0x00,0x16,0xE7,0xD5,0x06,0x84,0xC0, +0x5A,0x08,0x02,0x05,0x49,0x00,0x16,0xE4,0x80,0xC0,0x84,0x02,0x49,0x00,0x0E,0xF3, +0x84,0x02,0x44,0x12,0x00,0xDC,0x49,0x00,0x0F,0x0F,0xC6,0x04,0x80,0x06,0x49,0x00, +0x0F,0x48,0x49,0x00,0x16,0xDB,0x49,0x00,0x0F,0x56,0x84,0x02,0x84,0x27,0x49,0x00, +0x0F,0x65,0xFC,0x80,0xFC,0x01,0xF0,0x81,0x49,0x00,0x0E,0xD7,0x80,0xC0,0xC8,0x05, +0xF0,0x01,0x49,0xFF,0xFF,0xC9,0xD5,0x08,0x5A,0x00,0x01,0x0C,0x49,0x00,0x0E,0xD0, +0xF1,0x01,0x49,0xFF,0xFF,0xCF,0x80,0x06,0x49,0x00,0x0E,0xA6,0x49,0x00,0x0E,0xAD, +0xFC,0x81,0xFC,0x00,0x49,0x00,0x0C,0x89,0x5A,0x08,0x01,0x06,0x84,0x00,0x44,0x10, +0x13,0x88,0xD5,0x04,0x84,0x00,0x44,0x10,0x75,0x30,0x49,0x00,0x2B,0x01,0x84,0x00, +0x84,0x21,0x49,0x00,0x2B,0x0B,0x84,0x00,0x49,0x00,0x0C,0x80,0xFC,0x80,0xFC,0x00, +0x64,0x12,0x00,0x43,0x64,0x00,0x00,0x08,0x64,0x00,0x00,0x08,0x49,0x00,0x28,0xBB, +0x49,0x00,0x28,0xD2,0x49,0x00,0x2A,0x8C,0x84,0x00,0x44,0x10,0x00,0xEB,0x49,0x00, +0x2A,0xCC,0x49,0x00,0x29,0xDF,0x49,0x00,0x29,0xF4,0x49,0x00,0x2A,0x27,0x49,0x00, +0x17,0x14,0x49,0x00,0x0E,0x37,0x84,0x00,0x3E,0x07,0xEF,0x95,0xFC,0x80,0x2E,0x07, +0xF0,0xE7,0xDD,0x9E,0xFC,0x00,0x49,0x00,0x09,0xF5,0x49,0x00,0x07,0x8E,0x49,0x00, +0x18,0x3F,0x49,0x00,0x17,0xA5,0x49,0x00,0x0A,0x8B,0x49,0x00,0x16,0x96,0x49,0x00, +0x19,0x15,0x84,0x00,0x49,0xFF,0xF3,0x3C,0x49,0x00,0x17,0x9A,0x49,0x00,0x0A,0xCE, +0x49,0x00,0x1A,0x56,0x44,0x02,0x1E,0x64,0x84,0x20,0x44,0x20,0x00,0x90,0x49,0xFF, +0xF2,0x07,0x44,0x10,0x02,0x40,0x44,0x20,0x00,0x90,0x44,0x02,0x1C,0x24,0x49,0xFF, +0xF1,0xFF,0x49,0x00,0x29,0xA7,0x49,0x00,0x17,0x83,0x49,0x00,0x0A,0xB7,0x49,0x00, +0x0C,0x24,0xC8,0x03,0x49,0x00,0x1A,0x3C,0x49,0xFF,0xFF,0x40,0x49,0x00,0x1A,0xA6, +0x49,0xFF,0xFF,0x91,0x49,0x00,0x00,0xB5,0x49,0x00,0x0C,0x17,0x80,0xC0,0x5A,0x08, +0x01,0x0A,0x44,0x00,0x02,0x58,0x80,0x26,0x49,0xFF,0xFE,0x28,0x80,0x06,0x49,0xFF, +0xFE,0x2F,0x84,0x04,0x3E,0x07,0xF0,0xEA,0xFC,0x80,0xFC,0x00,0x84,0x00,0x49,0x00, +0x18,0x8D,0x84,0x00,0x49,0x00,0x00,0x9E,0x49,0x00,0x16,0x45,0x49,0x00,0x13,0x84, +0xFC,0x80,0xFC,0x40,0x49,0x00,0x0E,0x31,0x80,0xE0,0x49,0x00,0x0E,0xBB,0x5A,0x08, +0x01,0x05,0x84,0x20,0x49,0x00,0x2A,0x82,0x84,0x01,0x49,0x00,0x2A,0x9A,0x80,0xC0, +0x5A,0x08,0x01,0x08,0x84,0x20,0x49,0x00,0x2A,0x79,0x80,0x06,0x49,0x00,0x0E,0xAE, +0x2E,0x07,0xF0,0xE6,0x5A,0x08,0x01,0x31,0x49,0x00,0x0E,0xA4,0x80,0xC0,0x5A,0x08, +0x01,0x2C,0x85,0x20,0x84,0x00,0x3E,0x97,0xF0,0xE6,0x49,0x00,0x0E,0x9F,0x84,0x00, +0x3E,0x97,0xF0,0xE4,0x49,0xFF,0xFF,0x30,0x80,0x06,0x84,0x28,0x5A,0x78,0x02,0x04, +0x44,0x10,0x01,0x90,0x49,0x00,0x2A,0x4C,0x84,0x01,0x80,0x20,0x49,0x00,0x2A,0x56, +0x5A,0x78,0x02,0x1C,0x49,0x00,0x0E,0x86,0x80,0xC0,0xC8,0x17,0x84,0x01,0x49,0x00, +0x2A,0x68,0x80,0xE0,0x5A,0x08,0x01,0xF8,0x80,0x26,0x49,0x00,0x2A,0x47,0x80,0x07, +0x49,0x00,0x0E,0x7C,0xD5,0x0A,0x2E,0x67,0xF0,0xE6,0x5A,0x68,0x01,0x07,0x49,0x00, +0x0E,0x71,0xC8,0x03,0x3E,0x67,0xF0,0xE4,0x2E,0x07,0xF0,0xEA,0xC0,0x04,0x5A,0x00, +0x04,0x06,0xFC,0xC0,0x49,0xFF,0xFF,0x50,0xFC,0xC0,0x49,0xFF,0xFF,0x98,0xFC,0xC0, +0xFC,0x20,0x84,0xC0,0x84,0xE2,0x49,0x00,0x29,0xFC,0x2E,0x07,0xF0,0xE7,0x5A,0x00, +0x01,0x08,0xC0,0x04,0x5A,0x00,0x02,0x1E,0xD5,0xF7,0x84,0x01,0xD5,0x12,0x3E,0x07, +0xF0,0xE9,0x3E,0x67,0xF0,0xEA,0x3E,0x67,0xF0,0xE8,0x3E,0x67,0xF0,0xE5,0x49,0x00, +0x0B,0x84,0x5A,0x08,0x01,0x0C,0x49,0x00,0x0B,0x86,0x5A,0x08,0x02,0x06,0x84,0x03, +0x3E,0x07,0xF0,0xE7,0xD5,0xE1,0x84,0x04,0xD5,0xFC,0x3E,0x77,0xF0,0xE7,0xD5,0xDC, +0x49,0x00,0x0B,0x5A,0x49,0x00,0x0B,0x61,0x2E,0x07,0xF0,0xE5,0x3E,0x67,0xF0,0xEB, +0xC8,0xD3,0x49,0xFF,0xFF,0x70,0xD5,0xD0,0x3E,0x07,0xF0,0xE9,0xDD,0x9E,0xDD,0x9E, +0x46,0x10,0x00,0x81,0xC8,0x06,0x04,0x00,0x80,0x33,0x58,0x00,0x02,0x00,0xD5,0x06, +0x04,0x20,0x80,0x33,0x44,0x0F,0xFD,0xFF,0xFE,0x16,0x14,0x00,0x80,0x33,0xDD,0x9E, +0x44,0x24,0x2C,0x14,0x84,0x30,0xB4,0x62,0x96,0x1F,0xFE,0x5E,0xFE,0x0F,0xB6,0x02, +0xDD,0x9E,0x44,0x24,0x2C,0x14,0x96,0x1F,0xB4,0x62,0x40,0x10,0x20,0x08,0x44,0x0F, +0xF0,0xFF,0xFE,0x1E,0xFE,0x0F,0xB6,0x02,0xDD,0x9E,0xFC,0x20,0x80,0xC0,0x49,0x00, +0x03,0x9B,0x49,0x00,0x03,0x7F,0x44,0x14,0x24,0x04,0x44,0x5F,0xFF,0xEF,0xB4,0x01, +0x84,0x41,0xFE,0x2E,0xB6,0x01,0xB4,0x01,0x40,0x33,0x08,0x02,0x44,0x4F,0xFF,0xDF, +0x94,0xDD,0xFE,0x26,0xFE,0x1F,0xB6,0x01,0x44,0x04,0x28,0x04,0xB4,0xC0,0xFF,0xAE, +0xB6,0xC0,0xB4,0xC0,0xFF,0xA6,0xFF,0x9F,0xB6,0xC0,0x44,0x64,0x2C,0x04,0xB4,0xE6, +0xFF,0x7E,0xB6,0xA6,0xB4,0xA6,0xFF,0x2E,0xFE,0xE7,0xB6,0x66,0x80,0x62,0x49,0xFF, +0xF5,0x3B,0x49,0x00,0x03,0x64,0x49,0x00,0x03,0x7C,0xFC,0xA0,0x46,0x20,0x00,0x81, +0x96,0x0F,0x04,0x31,0x00,0x12,0x40,0x10,0x40,0x08,0x44,0x0C,0xFF,0xFF,0xFE,0x1E, +0xFE,0x0F,0x14,0x01,0x00,0x12,0xDD,0x9E,0xFC,0x00,0x44,0x24,0x80,0x10,0x84,0x01, +0xB4,0x22,0x96,0x46,0xC1,0x0B,0xAE,0x10,0x3E,0x07,0xF0,0xFB,0x3E,0x07,0xF0,0xF8, +0x3C,0x0D,0xFC,0x3C,0x8C,0x01,0x3C,0x0F,0xFC,0x3C,0x44,0x04,0x80,0x10,0xB4,0x00, +0x92,0x0A,0x96,0x06,0xC0,0x16,0x44,0x04,0x80,0x11,0x84,0x24,0xAE,0x40,0x46,0x00, +0x00,0x81,0x04,0x00,0x00,0x1E,0x92,0x04,0x96,0x0F,0x3E,0x07,0xF8,0x40,0x49,0x00, +0x01,0x03,0x44,0x07,0x20,0x00,0xB4,0x00,0x92,0x08,0x96,0x06,0x49,0x00,0x00,0xE7, +0x44,0x14,0x80,0x10,0x84,0x41,0xB4,0x01,0x92,0x08,0x96,0x06,0xC0,0x06,0x44,0x04, +0x80,0x11,0xAE,0x80,0x3E,0x27,0xF0,0xF9,0xB4,0x01,0x92,0x07,0x96,0x06,0xC0,0x06, +0x44,0x04,0x80,0x10,0x44,0x1F,0xFF,0x80,0xAE,0x40,0x44,0x04,0x80,0x10,0xB4,0x20, +0x92,0x25,0x96,0x46,0xC1,0x03,0xFA,0x30,0xAE,0x40,0xB4,0x00,0x92,0x06,0x96,0x06, +0xC0,0x06,0x44,0x04,0x80,0x10,0x44,0x10,0x00,0x40,0xAE,0x40,0x44,0x14,0x80,0x10, +0xB4,0x01,0x92,0x18,0x96,0x06,0xC0,0x05,0x44,0x04,0x80,0x13,0x84,0x41,0xAE,0x80, +0xB4,0x01,0x92,0x15,0x96,0x06,0xC0,0x05,0x44,0x04,0x80,0x12,0xFA,0x30,0xAE,0x40, +0xFC,0x80,0xFC,0x00,0x44,0x24,0x80,0x10,0x84,0x21,0xB4,0x02,0x92,0x04,0x96,0x06, +0xC0,0x14,0xFA,0x00,0xAE,0x10,0x3E,0x17,0xF0,0xFA,0x3E,0x17,0xF0,0xF8,0x3C,0x0D, +0xFC,0x3D,0x8C,0x01,0x3C,0x0F,0xFC,0x3D,0x46,0x00,0x00,0x81,0x04,0x00,0x00,0xF0, +0x92,0x03,0x96,0x06,0x49,0x00,0x00,0x93,0x44,0x14,0x80,0x10,0xB4,0x01,0x92,0x0B, +0x96,0x06,0xC0,0x05,0x44,0x04,0x80,0x11,0x84,0x48,0xAE,0x80,0xB4,0x01,0x92,0x03, +0x96,0x06,0xC0,0x05,0x44,0x04,0x80,0x10,0x84,0x28,0xAE,0x40,0x44,0x04,0x80,0x10, +0xB4,0x20,0x92,0x22,0x96,0x46,0xC1,0x03,0x84,0x24,0xAE,0x40,0xB4,0x00,0x92,0x01, +0x96,0x06,0xC0,0x0E,0x44,0x04,0x80,0x90,0xB4,0x00,0x92,0x01,0x96,0x06,0x5A,0x08, +0x01,0x08,0x44,0x14,0x80,0x10,0x84,0x42,0xAE,0x88,0x3E,0x07,0xF0,0xEB,0x44,0x14, +0x80,0x10,0xB4,0x01,0x92,0x19,0x96,0x06,0xC0,0x05,0x44,0x04,0x80,0x13,0x84,0x42, +0xAE,0x80,0xB4,0x01,0x92,0x16,0x96,0x06,0xC0,0x06,0x44,0x04,0x80,0x12,0x44,0x10, +0x00,0x40,0xAE,0x40,0xFC,0x80,0xFC,0x00,0x80,0xC0,0x49,0xFF,0xF4,0x77,0x46,0x20, +0x00,0x81,0x97,0x86,0x94,0x32,0x04,0x61,0x03,0x93,0x84,0x3B,0xFF,0x8E,0xFF,0x87, +0x14,0x61,0x03,0x93,0x49,0xFF,0xF4,0x63,0xFC,0x80,0x44,0x04,0x50,0x28,0xB4,0x00, +0x92,0x01,0x96,0x06,0xDD,0x9E,0x44,0x24,0x50,0x1C,0x40,0x00,0x40,0x08,0xB4,0x22, +0x96,0x49,0xFE,0x0F,0xB6,0x02,0xDD,0x9E,0x44,0x24,0x50,0x1C,0x44,0x1F,0x00,0xFF, +0xB4,0x62,0x40,0x00,0x20,0x08,0xFE,0x5E,0xFE,0x0F,0xB6,0x02,0xDD,0x9E,0x44,0x07, +0x21,0x00,0x46,0x10,0x20,0x00,0xB4,0x40,0xFE,0x57,0xB6,0x20,0x80,0x20,0xB4,0x01, +0x92,0x19,0x96,0x06,0xC8,0xFD,0xDD,0x9E,0x44,0x04,0x80,0x04,0xA6,0x02,0x92,0x01, +0x96,0x06,0xC0,0x08,0x44,0x04,0x80,0x06,0x84,0x22,0xAE,0x40,0x84,0x01,0x3E,0x07, +0xF0,0xFD,0x44,0x04,0x80,0x04,0x84,0x21,0xA6,0x02,0x96,0x06,0xC0,0x06,0x44,0x04, +0x80,0x06,0xAE,0x40,0x3E,0x17,0xF0,0xFC,0xDD,0x9E,0x3E,0x07,0xEF,0x96,0xDD,0x9E, +0x2E,0x07,0xEF,0x96,0xDD,0x9E,0x44,0x37,0x20,0x00,0x54,0x10,0x00,0x01,0xB4,0x83, +0x40,0x20,0xA0,0x08,0x44,0x1F,0xFE,0xFF,0xFE,0x66,0xFE,0x57,0xB6,0x23,0x3E,0x07, +0xEF,0x96,0xDD,0x9E,0x84,0x01,0x3E,0x07,0xEF,0x97,0xDD,0x9E,0x2E,0x07,0xEF,0x97, +0xDD,0x9E,0x84,0x00,0x3E,0x07,0xEF,0x97,0xDD,0x9E,0x3C,0x0D,0xFC,0x44,0xC0,0x0B, +0xA4,0x80,0x3C,0x13,0xF8,0x84,0x8E,0x21,0xE0,0x41,0xE8,0x05,0xA4,0x40,0x8C,0x21, +0x96,0x49,0xAC,0x40,0xA4,0x80,0x3C,0x13,0xF8,0x86,0xE2,0x41,0xE9,0x05,0x84,0x01, +0x3E,0x07,0xEF,0x98,0xD5,0x0B,0x3C,0x1D,0xFC,0x46,0xC1,0x08,0xA4,0x00,0x88,0x01, +0x44,0x16,0x00,0x34,0xA6,0x00,0x96,0x00,0xB6,0x01,0x44,0x06,0x00,0x00,0xB4,0x00, +0x92,0x08,0x96,0x06,0x5A,0x08,0x01,0x0B,0x44,0x06,0x00,0x30,0xB4,0x20,0x58,0x10, +0x80,0x01,0xB6,0x20,0xB4,0x20,0x96,0x46,0xC9,0xFE,0xDD,0x9E,0xFC,0x40,0x49,0xFF, +0xF9,0x17,0xE6,0x03,0xE8,0x0F,0x3C,0x0D,0xFC,0x44,0x84,0x20,0xAC,0x40,0x3C,0x1D, +0xFC,0x46,0xC1,0x08,0xA4,0x00,0x88,0x01,0x44,0x16,0x00,0x34,0xA6,0x00,0x96,0x00, +0xB6,0x01,0x85,0x40,0x44,0x74,0x80,0x00,0x44,0x94,0x80,0x80,0xA7,0xBA,0xB4,0x09, +0x92,0xC3,0x92,0x13,0x96,0x06,0xFF,0x86,0xC6,0x1A,0x44,0x04,0x80,0x02,0x84,0x28, +0xAE,0x40,0x49,0xFF,0xF8,0xF5,0xE6,0x03,0xE8,0x4D,0x44,0x06,0x00,0x00,0xB4,0x00, +0x92,0x08,0x96,0x06,0x5A,0x08,0x01,0x47,0x44,0x06,0x00,0x30,0xB4,0x20,0x58,0x10, +0x80,0x01,0xB6,0x20,0xB4,0x20,0x96,0x46,0xC9,0xFE,0xD5,0x3C,0xA6,0x3A,0x40,0x10, +0x10,0x09,0xB4,0x09,0x92,0x14,0x96,0x06,0xFE,0x0E,0xC0,0x1F,0x49,0xFF,0xF8,0xD8, +0xE6,0x03,0x44,0x04,0x80,0x02,0xFA,0x20,0xAE,0x40,0xE8,0x04,0x49,0xFF,0xFF,0x87, +0xD5,0x13,0x3C,0x0D,0xFC,0x44,0xC0,0x0B,0xA4,0x80,0x3C,0x13,0xF8,0x84,0x8E,0x21, +0xE0,0x41,0xE8,0x05,0xA4,0x40,0x8C,0x21,0x96,0x49,0xAC,0x40,0xA4,0x40,0x3C,0x03, +0xF8,0x86,0xE2,0x20,0xE8,0x17,0x85,0x40,0xA6,0x3A,0x40,0x10,0x18,0x09,0xB4,0x09, +0x92,0x16,0x96,0x06,0xFE,0x0E,0xC0,0x07,0x44,0x04,0x80,0x02,0x44,0x10,0x00,0x40, +0xAE,0x40,0xD5,0x08,0x84,0x01,0x8D,0x41,0x49,0xFF,0xFC,0x3C,0x5C,0xF5,0x27,0x11, +0xE9,0xA6,0xFC,0xC0,0x44,0x16,0x00,0x34,0xB6,0x01,0xDD,0x9E,0x3C,0x0F,0xFC,0x47, +0x02,0x0F,0x80,0x00,0x3C,0x4B,0xF8,0x86,0x3C,0x1F,0xFC,0x46,0x3C,0x5B,0xF8,0x85, +0x3C,0x2F,0xFC,0x45,0x3C,0x3F,0xFC,0x44,0x3C,0x0B,0xF8,0x84,0xDD,0x9E,0x3C,0x0B, +0xF8,0x86,0xDD,0x9E,0x3E,0x07,0xEF,0x98,0xDD,0x9E,0x2E,0x07,0xEF,0x98,0xDD,0x9E, +0x3C,0x0F,0xFC,0x41,0xDD,0x9E,0x3C,0x0F,0xFC,0x40,0xDD,0x9E,0xFC,0x20,0x44,0x14, +0x80,0x00,0x44,0x04,0x80,0x80,0xA6,0x8A,0xB4,0x00,0x92,0x10,0x96,0x06,0xFE,0x16, +0xC0,0x05,0x44,0x04,0x80,0x02,0x84,0x41,0xAE,0x80,0xA6,0x0A,0x40,0x10,0x04,0x09, +0x44,0x04,0x80,0x80,0xB4,0x00,0x92,0x11,0x96,0x06,0xFE,0x0E,0xC0,0x05,0x44,0x04, +0x80,0x02,0x84,0x22,0xAE,0x40,0x44,0x04,0x80,0x00,0xA6,0x02,0x40,0x10,0x08,0x09, +0x44,0x04,0x80,0x80,0xB4,0x00,0x92,0x12,0x96,0x06,0xFE,0x0E,0x4E,0x02,0x00,0xB0, +0x44,0x04,0x80,0x02,0x84,0x24,0xAE,0x40,0x3C,0x0D,0xFC,0x45,0x3C,0x2D,0xFC,0x47, +0x84,0x20,0xAC,0x40,0xC2,0x06,0x44,0x16,0x00,0x28,0xB4,0x21,0x96,0x48,0xAE,0x50, +0xC0,0x0B,0xA4,0x80,0x3C,0x13,0xF8,0x85,0x8E,0x21,0xE0,0x41,0xE8,0x05,0xA4,0x40, +0x8C,0x21,0x96,0x49,0xAC,0x40,0x49,0xFF,0xF8,0x3B,0xE6,0x03,0xE9,0x05,0x84,0xC0, +0x44,0x76,0x00,0x30,0xD5,0x19,0x44,0x06,0x00,0x00,0xB4,0x00,0x92,0x08,0x96,0x06, +0x5A,0x08,0x01,0xF7,0x44,0x06,0x00,0x30,0xB4,0x20,0x58,0x10,0x80,0x01,0xB6,0x20, +0xB4,0x20,0x96,0x46,0xC9,0xFE,0xD5,0xEC,0x84,0x01,0x8C,0xC1,0x49,0xFF,0xFB,0xB2, +0x5C,0xF3,0x08,0x01,0xE8,0x6E,0x44,0x34,0x80,0x00,0x44,0x24,0x80,0x80,0xA6,0x1A, +0x40,0x10,0x0C,0x09,0xB4,0x02,0x92,0x13,0x96,0x06,0xFE,0x0E,0xC0,0x1A,0x44,0x04, +0x80,0x02,0x84,0x28,0xAE,0x40,0x49,0xFF,0xF8,0x0B,0xE6,0x03,0xE8,0x5A,0x44,0x06, +0x00,0x00,0xB4,0x00,0x92,0x08,0x96,0x06,0x5A,0x08,0x01,0x54,0x44,0x06,0x00,0x30, +0xB4,0x20,0x58,0x10,0x80,0x01,0xB6,0x20,0xB4,0x20,0x96,0x46,0xC9,0xFE,0xD5,0x49, +0xA6,0x1A,0x40,0x10,0x10,0x09,0xB4,0x02,0x92,0x14,0x96,0x06,0xFE,0x0E,0xC0,0x31, +0x44,0x04,0x80,0x02,0xFA,0x20,0xAE,0x40,0x3C,0x2D,0xFC,0x47,0x3C,0x0D,0xFC,0x45, +0xC2,0x08,0xA4,0x40,0x88,0x22,0x44,0x26,0x00,0x38,0xB4,0x42,0x96,0x90,0xAE,0x88, +0xC0,0x0B,0xA4,0x80,0x3C,0x13,0xF8,0x85,0x8E,0x21,0xE0,0x41,0xE8,0x05,0xA4,0x40, +0x8C,0x21,0x96,0x49,0xAC,0x40,0x49,0xFF,0xF7,0xD3,0xE6,0x03,0xE9,0x03,0x84,0xC0, +0xD5,0x10,0x44,0x06,0x00,0x00,0xB4,0x00,0x92,0x08,0x96,0x06,0x5A,0x08,0x01,0xF9, +0xB4,0x07,0x58,0x00,0x00,0x01,0xB6,0x07,0xB4,0x07,0x96,0x06,0xC8,0xFE,0xD5,0xF0, +0x44,0x04,0x80,0x00,0xA6,0x02,0x40,0x10,0x14,0x09,0x44,0x04,0x80,0x80,0xB4,0x00, +0x92,0x15,0x96,0x06,0xFE,0x0E,0xC0,0x91,0x44,0x04,0x80,0x02,0xFA,0x30,0xAE,0x40, +0x3C,0x0D,0xFC,0x41,0xC0,0x04,0x3C,0x0D,0xFC,0x41,0xDD,0x20,0x44,0x04,0x80,0x00, +0xA6,0x02,0x40,0x10,0x0C,0x09,0x44,0x04,0x80,0x80,0xB4,0x00,0x92,0x13,0x96,0x06, +0xFE,0x0E,0xC8,0x0E,0x44,0x04,0x80,0x00,0xA6,0x02,0x40,0x10,0x10,0x09,0x44,0x04, +0x80,0x80,0xB4,0x00,0x92,0x14,0x96,0x06,0xFE,0x0E,0xC0,0x3B,0xD5,0x1A,0x44,0x04, +0x80,0x02,0x84,0x28,0xAE,0x40,0x49,0xFF,0xF7,0x8B,0xE6,0x03,0xE8,0xEC,0x44,0x06, +0x00,0x00,0xB4,0x00,0x92,0x08,0x96,0x06,0x5A,0x08,0x01,0xE6,0x44,0x06,0x00,0x30, +0xB4,0x20,0x58,0x10,0x80,0x01,0xB6,0x20,0xB4,0x20,0x96,0x46,0xC9,0xFE,0xD5,0xDB, +0x44,0x04,0x80,0x02,0xFA,0x20,0xAE,0x40,0x49,0xFF,0xF7,0x72,0xE6,0x03,0xE8,0x04, +0x49,0xFF,0xFE,0x25,0xD5,0x16,0x3C,0x0D,0xFC,0x44,0xC0,0x0B,0xA4,0x80,0x3C,0x13, +0xF8,0x84,0x8E,0x21,0xE0,0x41,0xE8,0x05,0xA4,0x40,0x8C,0x21,0x96,0x49,0xAC,0x40, +0xA4,0x40,0x3C,0x03,0xF8,0x86,0xE2,0x20,0xE9,0x04,0x84,0x01,0x3E,0x07,0xEF,0x98, +0x44,0x14,0x80,0x00,0xA6,0x0A,0x40,0x20,0x14,0x09,0x44,0x04,0x80,0x80,0xB4,0x00, +0x92,0x15,0x96,0x06,0xFE,0x16,0xC0,0x05,0x44,0x04,0x80,0x02,0xFA,0x50,0xAE,0x80, +0xA6,0x0A,0x40,0x10,0x18,0x09,0x44,0x04,0x80,0x80,0xB4,0x00,0x92,0x16,0x96,0x06, +0xFE,0x0E,0xC0,0x06,0x44,0x04,0x80,0x02,0x44,0x10,0x00,0x40,0xAE,0x40,0xFC,0xA0, +0x44,0x16,0x38,0x20,0xB4,0x01,0x58,0x00,0x01,0x00,0xB6,0x01,0x44,0x16,0x34,0x20, +0xB4,0x01,0x58,0x00,0x01,0x00,0xB6,0x01,0xDD,0x9E,0x44,0x26,0x38,0x20,0x44,0x0F, +0xFE,0xFF,0xB4,0x22,0xFE,0x46,0xB6,0x22,0x44,0x16,0x34,0x20,0xB4,0x41,0xFE,0x16, +0xB6,0x01,0xDD,0x9E,0x44,0x16,0x38,0x20,0xB4,0x01,0x58,0x00,0x00,0x01,0xB6,0x01, +0x44,0x16,0x34,0x20,0xB4,0x01,0x58,0x00,0x00,0x01,0xB6,0x01,0xDD,0x9E,0x44,0x26, +0x38,0x20,0x84,0x1E,0xB4,0x22,0xFE,0x46,0xB6,0x22,0x44,0x16,0x34,0x20,0xB4,0x41, +0xFE,0x16,0xB6,0x01,0xDD,0x9E,0x46,0x20,0x00,0x83,0x96,0x06,0x04,0x31,0x00,0x14, +0x94,0x41,0x84,0x1D,0xFE,0x1E,0xFE,0x0F,0x14,0x01,0x00,0x14,0xDD,0x9E,0x46,0x20, +0x00,0x83,0x96,0x06,0x04,0x31,0x00,0x14,0x94,0x43,0x84,0x17,0xFE,0x1E,0xFE,0x0F, +0x14,0x01,0x00,0x14,0xDD,0x9E,0x40,0x21,0x40,0x08,0x40,0x10,0xA0,0x08,0x88,0x22, +0x88,0x20,0x46,0x00,0x00,0x80,0x14,0x10,0x00,0x78,0xDD,0x9E,0xFC,0x41,0xF5,0x81, +0x81,0x00,0x81,0x22,0x80,0xE3,0x80,0xC4,0x46,0x50,0x00,0x80,0xC0,0x03,0x5A,0x08, +0x01,0x18,0x83,0x85,0xBA,0x77,0x46,0x1F,0xEF,0xFF,0x50,0x10,0x8F,0xFF,0xFE,0x56, +0xB9,0xF7,0x84,0x23,0x49,0xFF,0xED,0x8B,0x38,0x14,0x99,0x01,0x84,0x02,0x49,0xFF, +0xF3,0xE9,0x38,0x03,0x98,0x00,0x84,0x22,0x49,0xFF,0xF4,0xE7,0xFC,0xC1,0x81,0x41, +0x83,0x85,0xB9,0x77,0x46,0x00,0x10,0x00,0xFE,0x0F,0xB8,0xF7,0x84,0x23,0x84,0x01, +0x49,0xFF,0xED,0x75,0x50,0x25,0x7F,0xFF,0x80,0x06,0xF1,0x01,0x96,0x90,0x49,0xFF, +0xFF,0xC4,0xFC,0xC1,0xE6,0x04,0xE8,0x2E,0x96,0x5F,0x46,0x20,0x00,0x81,0x44,0xF0, +0x28,0xDC,0x38,0x07,0x80,0x00,0x40,0xF0,0x3C,0x00,0xDD,0x0F,0x04,0x12,0x20,0x34, +0x40,0x10,0xC0,0x08,0x04,0x31,0x00,0x32,0x46,0x0F,0xFF,0x0F,0xD5,0x0E,0x40,0x10, +0xD0,0x08,0x04,0x31,0x00,0x32,0x46,0x0F,0xF0,0xFF,0xD5,0x07,0x40,0x10,0xE0,0x08, +0x04,0x31,0x00,0x32,0x46,0x0F,0x0F,0xFF,0x50,0x00,0x0F,0xFF,0xFE,0x1E,0xD5,0x07, +0x04,0x01,0x00,0x32,0x40,0x10,0xF0,0x08,0x94,0x04,0x92,0x04,0xFE,0x47,0x14,0x11, +0x00,0x32,0xDD,0x9E,0xE6,0x08,0xE8,0x43,0x96,0x4F,0x46,0x20,0x00,0x81,0x44,0xF0, +0x29,0x3C,0x38,0x07,0x80,0x00,0x40,0xF0,0x3C,0x00,0xDD,0x0F,0x08,0x10,0x1A,0x26, +0x32,0x40,0x4E,0x5C,0x04,0x31,0x00,0x28,0x84,0x1C,0xD5,0x2D,0x94,0x4A,0x04,0x31, +0x00,0x28,0x84,0x13,0xD5,0x28,0x94,0x4C,0x04,0x31,0x00,0x28,0x44,0x0F,0xFF,0xCF, +0xD5,0x22,0x94,0x4E,0x04,0x31,0x00,0x28,0x44,0x0F,0xFF,0x3F,0xD5,0x1C,0x40,0x10, +0xA0,0x08,0x04,0x31,0x00,0x28,0x44,0x0F,0xFC,0xFF,0xD5,0x15,0x40,0x10,0xA8,0x08, +0x04,0x31,0x00,0x28,0x44,0x0F,0xF3,0xFF,0xD5,0x0E,0x40,0x10,0xB0,0x08,0x04,0x31, +0x00,0x28,0x44,0x0F,0xCF,0xFF,0xD5,0x07,0x40,0x10,0xB8,0x08,0x04,0x31,0x00,0x28, +0x44,0x0F,0x3F,0xFF,0xFE,0x1E,0xFE,0x47,0x14,0x11,0x00,0x28,0xDD,0x9E,0x92,0x00, +0xC8,0x04,0x44,0x07,0x20,0x14,0xD5,0x03,0x44,0x07,0x20,0x18,0xB4,0x00,0x40,0x00, +0x30,0x08,0x92,0x0C,0xDD,0x9E,0xFC,0x00,0x44,0x04,0x00,0x9C,0xA6,0x00,0xE6,0x03, +0xE9,0x24,0x44,0x64,0x0C,0x40,0x84,0x41,0xA6,0x32,0x80,0x62,0x58,0x00,0x00,0x08, +0xAE,0x32,0x44,0x14,0x04,0x40,0x44,0x04,0x08,0x40,0x49,0xFF,0xF0,0xC5,0xA6,0x32, +0x84,0x41,0x54,0x00,0x00,0xF7,0xAE,0x32,0x44,0x14,0x04,0x40,0x44,0x04,0x08,0x40, +0x80,0x62,0x49,0xFF,0xF0,0xB9,0x44,0x07,0x20,0xC0,0x46,0x10,0x20,0x00,0xB4,0x40, +0xFE,0x57,0xB6,0x20,0x80,0x20,0xD5,0x3C,0x49,0x00,0x06,0x87,0xC8,0xDB,0x44,0x64, +0x50,0x28,0xB4,0x06,0x92,0x10,0x96,0x06,0x5A,0x00,0x01,0x05,0x44,0x64,0x50,0x28, +0xD5,0x25,0x2E,0x07,0xF0,0xEB,0xC8,0x0E,0xB4,0x06,0x92,0x03,0x96,0x06,0xC8,0x0A, +0xB4,0x06,0x92,0x01,0x96,0x06,0xC0,0x06,0x3C,0x0D,0xFE,0x0F,0x5A,0x08,0x01,0xEB, +0xD5,0xEE,0x49,0xFF,0xFA,0x16,0x5A,0x08,0x02,0xF9,0xD5,0xE9,0x2E,0x07,0xF0,0xEB, +0xC8,0x12,0xB4,0x06,0x92,0x03,0x96,0x06,0xC8,0x0E,0xB4,0x06,0x92,0x01,0x96,0x06, +0xC0,0x0A,0x3C,0x0D,0xFE,0x0F,0x5A,0x00,0x01,0xAE,0xB4,0x06,0x92,0x10,0x96,0x06, +0xC0,0xEE,0xD5,0xA8,0x49,0xFF,0xF9,0xFD,0x5A,0x08,0x02,0xF5,0xD5,0xA3,0xB4,0x01, +0x92,0x19,0x96,0x06,0xC8,0xFD,0x84,0x01,0x49,0xFF,0xFC,0x59,0xFC,0x80,0xFC,0x00, +0x80,0xC0,0x44,0x04,0x80,0x90,0x54,0x13,0x00,0x01,0xB4,0x80,0x84,0x5D,0x94,0xC9, +0xFE,0xA6,0xFE,0x9F,0xB6,0x40,0x46,0x00,0x00,0x81,0x84,0x5E,0x83,0x80,0xBB,0x15, +0xFE,0x9E,0xFE,0x57,0xB9,0x95,0x84,0x00,0x3E,0x07,0xF0,0xEB,0x44,0x04,0x80,0x10, +0x84,0x22,0xAE,0x40,0x49,0x00,0x24,0x39,0xE6,0x03,0xE9,0x2A,0x44,0x14,0x00,0x18, +0xA6,0x0A,0x5A,0x68,0x01,0x13,0x54,0x00,0x00,0xFB,0xAE,0x0A,0x44,0x14,0x50,0x10, +0xB4,0x01,0x92,0x08,0x40,0x00,0x20,0x08,0xB6,0x01,0x44,0x14,0x70,0x00,0x44,0x0E, +0xFF,0xFF,0xB4,0x41,0xFE,0x16,0xD5,0x13,0x58,0x00,0x00,0x04,0xAE,0x0A,0x44,0x14, +0x50,0x10,0xB4,0x01,0x92,0x08,0x40,0x00,0x20,0x08,0x58,0x00,0x00,0x98,0xB6,0x01, +0x44,0x14,0x70,0x00,0x44,0x01,0x00,0x00,0xB4,0x41,0xFE,0x17,0xB6,0x01,0xFC,0x80, +0xFC,0x00,0x46,0x01,0xFF,0xF9,0x50,0x00,0x05,0x27,0x46,0x61,0xFF,0xFF,0x49,0xFF, +0xF7,0x79,0x49,0xFF,0xF7,0x63,0x50,0x03,0x03,0xCC,0x49,0xFF,0xF7,0x73,0x49,0xFF, +0xF7,0x5D,0x80,0x06,0x44,0x67,0x30,0x04,0x49,0xFF,0xF7,0x6C,0x49,0xFF,0xF7,0x56, +0x44,0x00,0x03,0xE8,0x49,0xFF,0xF7,0x5F,0xB4,0x26,0x84,0x1E,0xFE,0x0E,0xB6,0x06, +0x44,0x00,0x03,0xE8,0x49,0xFF,0xF7,0x57,0xB4,0x06,0x58,0x00,0x00,0x01,0xB6,0x06, +0x44,0x00,0x03,0xE8,0x49,0xFF,0xF7,0x4F,0x44,0x04,0x80,0x0A,0x84,0x24,0xAE,0x40, +0x84,0x22,0xAE,0x40,0x84,0x21,0xAE,0x40,0xFC,0x80,0xFC,0x40,0x80,0xE1,0x44,0x17, +0x30,0x10,0xB4,0x41,0x92,0x41,0x96,0x86,0x5A,0x20,0x01,0xFD,0x44,0x17,0x30,0x00, +0x46,0x60,0x01,0x00,0xB6,0x01,0x84,0x00,0x3E,0x07,0xF1,0x25,0x44,0x04,0x80,0x0A, +0x84,0x22,0xAE,0x40,0x44,0x94,0x80,0x08,0xB4,0x09,0x92,0x11,0x96,0x06,0xC8,0x06, +0x84,0x01,0x8E,0xC1,0x49,0xFF,0xF7,0x27,0xCE,0xF8,0x44,0x04,0x80,0x0A,0x84,0x22, +0xAE,0x40,0x84,0x00,0x3E,0x07,0xF1,0x25,0x44,0x00,0x11,0x11,0x4C,0x70,0x40,0x0A, +0x44,0x07,0x30,0x14,0xB4,0x00,0x92,0x10,0x96,0x00,0x3C,0x0F,0xFC,0x85,0xD5,0x0C, +0x44,0x00,0x22,0x22,0x4C,0x70,0x40,0x09,0x44,0x07,0x30,0x14,0xB4,0x00,0x92,0x10, +0x96,0x00,0x3C,0x0F,0xFC,0x84,0xFC,0xC0,0xFC,0x00,0x44,0x27,0x30,0x10,0xB4,0x22, +0x92,0x21,0x96,0x46,0x5A,0x10,0x01,0xFD,0x84,0x20,0x3E,0x17,0xF1,0x25,0x44,0x17, +0x30,0x00,0x46,0x60,0x01,0x00,0xB6,0x01,0x2E,0x07,0xF1,0x25,0xC0,0x08,0x2E,0x07, +0xF1,0x22,0xC0,0x0E,0x84,0x00,0x3E,0x07,0xF1,0x22,0xD5,0x0A,0x2E,0x07,0xF1,0x22, +0xC8,0xF7,0x84,0x01,0x8E,0xC1,0x49,0xFF,0xF6,0xE6,0xCE,0xEF,0xD5,0xF1,0x84,0x00, +0x3E,0x07,0xF1,0x25,0x44,0x07,0x30,0x14,0xB4,0x00,0x92,0x10,0x96,0x00,0xFC,0x80, +0xFC,0x20,0x46,0x01,0xFF,0xFF,0x50,0x00,0x0F,0x05,0x49,0xFF,0xF6,0xDB,0x46,0x02, +0xF0,0xC0,0x50,0x00,0x01,0x00,0x49,0xFF,0xFF,0xC9,0x80,0xC0,0x46,0x02,0xF0,0xD0, +0x50,0x00,0x01,0x00,0x49,0xFF,0xFF,0xC2,0x97,0xC0,0x46,0x01,0xFC,0x00,0x97,0xB0, +0x50,0x00,0x01,0x00,0x88,0x06,0x49,0xFF,0xF6,0xC5,0x46,0x01,0xFC,0x10,0x50,0x00, +0x01,0x00,0x88,0x07,0x49,0xFF,0xF6,0xBE,0x46,0x01,0xFC,0x20,0x50,0x00,0x01,0x00, +0x88,0x06,0x49,0xFF,0xF6,0xB7,0x46,0x01,0xFC,0x30,0x50,0x00,0x01,0x00,0x88,0x07, +0x49,0xFF,0xF6,0xB0,0x46,0x01,0xFC,0x40,0x50,0x00,0x01,0x00,0x88,0x06,0x49,0xFF, +0xF6,0xA9,0x46,0x01,0xFC,0x50,0x50,0x00,0x01,0x00,0x88,0x07,0x49,0xFF,0xF6,0xA2, +0x46,0x01,0xFC,0x60,0x50,0x00,0x01,0x00,0x88,0x06,0x49,0xFF,0xF6,0x9B,0x46,0x01, +0xFC,0x70,0x50,0x00,0x01,0x00,0x88,0x07,0x49,0xFF,0xF6,0x94,0xFC,0xA0,0x3C,0x0F, +0xFC,0x4A,0xDD,0x9E,0x44,0x04,0x80,0x00,0xA6,0x03,0x96,0x06,0xC0,0x0D,0x44,0x04, +0x80,0x03,0x84,0x21,0xAE,0x40,0x3C,0x0D,0xFC,0x4A,0xC0,0x06,0xFC,0x00,0x3C,0x0D, +0xFC,0x4A,0xDD,0x20,0xFC,0x80,0xDD,0x9E,0x46,0x20,0x00,0x81,0x84,0x3E,0x04,0x31, +0x00,0x14,0x96,0x06,0xFE,0x5E,0xFE,0x0F,0x14,0x01,0x00,0x14,0xDD,0x9E,0x44,0x14, +0x70,0x08,0x5A,0x08,0x01,0x09,0xB4,0x01,0x92,0x10,0x40,0x00,0x40,0x08,0x58,0x00, +0x78,0x23,0xD5,0x05,0xB4,0x01,0x92,0x10,0x40,0x00,0x40,0x08,0xB6,0x01,0xDD,0x9E, +0x4E,0x05,0x00,0x19,0x8E,0x01,0x40,0x10,0x04,0x0A,0xFE,0x0F,0x40,0x10,0x08,0x0A, +0xFE,0x0F,0x40,0x10,0x10,0x0A,0xFE,0x0F,0x40,0x10,0x20,0x0A,0xFE,0x0F,0x40,0x10, +0x40,0x0A,0xFE,0x47,0x8C,0x21,0x84,0x00,0x90,0x21,0xC1,0x03,0x8C,0x01,0xD5,0xFD, +0xDD,0x9E,0x84,0x00,0xDD,0x9E,0xFC,0x4D,0x44,0x00,0x7F,0x10,0x50,0xFF,0x80,0x18, +0x80,0xC0,0x80,0x2F,0x3A,0x23,0x14,0x04,0x3A,0x20,0x94,0x24,0x81,0x46,0x83,0x81, +0x3A,0x25,0x14,0x04,0x44,0x90,0x7F,0x38,0x3A,0x2E,0x14,0x24,0x80,0x89,0x3A,0x25, +0x0C,0x00,0x80,0xBF,0x3A,0x2E,0x0C,0x20,0x3A,0x22,0x0C,0x04,0x3A,0x22,0x8C,0x24, +0x45,0xE2,0x01,0xA8,0xA5,0xE0,0x3A,0x27,0x94,0x04,0x81,0xFE,0x81,0x1F,0x3A,0x27, +0x94,0x24,0x3A,0x20,0x94,0x04,0x80,0x2F,0x3A,0x20,0x94,0x24,0x3A,0x2E,0x0C,0x00, +0x3A,0x20,0x8C,0x20,0x44,0x12,0x01,0x9C,0x3A,0x24,0x0C,0x04,0x3A,0x20,0x8C,0x24, +0xAD,0xC8,0xB0,0x50,0x3A,0x20,0x14,0x04,0x80,0x01,0x3A,0x20,0x14,0x24,0x81,0x00, +0x3A,0x23,0x14,0x04,0x3A,0x24,0x14,0x24,0xB1,0x83,0x3A,0x25,0x0C,0x00,0x80,0x86, +0x3A,0x24,0x0C,0x20,0x3A,0x24,0x8C,0x04,0x44,0x92,0x00,0x18,0x3A,0x22,0x0C,0x24, +0x3A,0x20,0x94,0x04,0x80,0x29,0x3A,0x20,0x94,0x24,0x3A,0x20,0x14,0x04,0x80,0x01, +0x3A,0x20,0x14,0x24,0x3A,0x24,0x0C,0x00,0x3A,0x20,0x0C,0x20,0x44,0x02,0x00,0x0C, +0x3A,0x23,0x0C,0x04,0x3A,0x20,0x0C,0x24,0xAD,0xC0,0xFC,0xCD,0xFC,0x48,0x83,0x81, +0x50,0xAF,0x80,0x14,0x44,0x10,0x7F,0x44,0x80,0xC0,0x80,0x0A,0x81,0x22,0x3A,0x20, +0x8C,0x04,0x3A,0x20,0x0C,0x24,0xA4,0x48,0xFA,0x40,0xAC,0x40,0x50,0x8F,0x80,0x30, +0x84,0x20,0xB0,0x08,0x49,0x00,0x28,0x12,0x80,0x08,0x84,0x20,0xFA,0x40,0x49,0x00, +0x28,0x0D,0x5A,0x98,0x01,0x03,0x87,0x80,0xC6,0x04,0x44,0x12,0x02,0x48,0xD5,0x03, +0x44,0x12,0x02,0x54,0x58,0x04,0x80,0x01,0x8C,0x01,0x84,0xE0,0xB6,0x1F,0x8D,0x21, +0x84,0x83,0x84,0x61,0x38,0x05,0x1C,0x00,0xF3,0x83,0xF4,0x82,0x38,0x60,0x80,0x00, +0xB4,0x1F,0x8C,0xC1,0xFF,0x84,0x97,0xB1,0x40,0x63,0x24,0xD6,0x80,0x06,0xF1,0x81, +0x49,0xFF,0xFF,0x48,0xF4,0x02,0x97,0x78,0x40,0x52,0x90,0xB7,0xF3,0x03,0x38,0x24, +0x16,0x02,0x8C,0x08,0x41,0xE1,0x28,0x08,0x40,0x20,0x70,0x01,0x40,0x01,0x80,0x0C, +0x40,0x60,0x18,0xD7,0xB0,0x08,0x94,0x94,0x38,0x00,0x16,0x02,0x88,0x5E,0x40,0x00, +0x28,0x08,0x88,0xC0,0xB0,0x08,0x8C,0xE1,0x38,0x24,0x16,0x0A,0x38,0x60,0x16,0x0A, +0xF1,0x01,0x5A,0x78,0x0A,0xD1,0x80,0x28,0x49,0xFF,0xEB,0xD1,0xFC,0xC8,0x80,0x80, +0x84,0x40,0x9A,0xE0,0x96,0xD8,0xE2,0x61,0xE8,0x08,0x08,0x32,0x00,0x01,0xE2,0x62, +0x40,0x31,0x3C,0x1B,0x80,0x43,0xD5,0xF6,0x9C,0x11,0x96,0x00,0xDD,0x9E,0xFC,0x40, +0x51,0xFF,0xFB,0xE0,0x44,0x20,0x04,0x00,0x81,0x40,0x81,0x21,0xB0,0x08,0x84,0x20, +0x49,0x00,0x27,0xAC,0xB1,0x81,0x44,0x10,0x7F,0x44,0x80,0x06,0x3A,0x20,0x8C,0x04, +0x3A,0x20,0x0C,0x24,0xA4,0x48,0xB1,0xC4,0xAC,0x40,0xFA,0x40,0x84,0x20,0x80,0x07, +0x49,0x00,0x27,0x9C,0x84,0x2A,0x4E,0xA3,0x00,0x3D,0x44,0x02,0x02,0x54,0x49,0xFF, +0xFF,0xD0,0x80,0x20,0x80,0x4A,0x84,0xA3,0x44,0xA2,0x01,0xA8,0x45,0xE2,0x01,0x9C, +0x96,0x10,0x40,0x00,0x14,0x17,0x40,0x30,0x20,0x08,0xB1,0x08,0x41,0xC2,0x0C,0x00, +0x84,0x60,0x54,0x81,0x80,0xFF,0xE3,0x01,0xE8,0x12,0x38,0x83,0x08,0x00,0x38,0x85, +0x22,0x02,0x38,0x84,0x0D,0x01,0x54,0xF4,0x03,0xFF,0x38,0x8E,0x0E,0x02,0x40,0x84, +0x28,0x08,0x89,0x0F,0x38,0x8E,0x0E,0x0A,0x8C,0x61,0xD5,0xEC,0x38,0x33,0x08,0x00, +0x8C,0x41,0x38,0x3F,0x0C,0x00,0x8A,0x69,0x54,0x81,0x83,0xFF,0x38,0x33,0x82,0x02, +0x40,0x31,0xA8,0x08,0x88,0x68,0x38,0x33,0x82,0x0A,0x5A,0x28,0x0A,0xD3,0xD5,0x3B, +0x44,0x02,0x02,0x48,0x49,0xFF,0xFF,0x95,0x80,0x20,0x84,0x40,0x84,0xA3,0x44,0xA2, +0x00,0x18,0x45,0xE2,0x00,0x0C,0x97,0x10,0x40,0x42,0x14,0x97,0x40,0x32,0x20,0x08, +0xB0,0x08,0x41,0xC0,0x0C,0x00,0x84,0x60,0x54,0x81,0x80,0xFF,0xE3,0x01,0xE8,0x12, +0x38,0x83,0x08,0x00,0x38,0x85,0x22,0x02,0x38,0x84,0x0D,0x01,0x54,0xF4,0x03,0xFF, +0x38,0x8E,0x0E,0x02,0x40,0x84,0x28,0x08,0x89,0x0F,0x38,0x8E,0x0E,0x0A,0x8C,0x61, +0xD5,0xEC,0x38,0x33,0x08,0x00,0x8C,0x41,0x38,0x3F,0x0C,0x00,0x8A,0x69,0x54,0x81, +0x83,0xFF,0x38,0x33,0x92,0x02,0x40,0x31,0xA8,0x08,0x88,0x68,0x38,0x33,0x92,0x0A, +0x5A,0x28,0x0A,0xD3,0xB0,0x08,0x49,0xFF,0xEB,0x79,0x80,0x07,0x49,0xFF,0xEB,0xAF, +0x51,0xFF,0x84,0x20,0xFC,0xC0,0xFC,0x20,0x49,0x00,0x0D,0x77,0x80,0xC0,0x49,0x00, +0x0D,0x77,0x80,0xA6,0x50,0x43,0x04,0x80,0x50,0x32,0x80,0x22,0x50,0x20,0x00,0x22, +0x84,0x20,0x38,0x62,0x85,0x11,0x22,0x71,0x80,0x00,0x38,0x72,0x85,0x09,0x1A,0x61, +0xFF,0xFF,0x38,0x60,0x05,0x11,0x22,0x71,0x00,0x00,0x38,0x70,0x05,0x09,0x8C,0x21, +0x1A,0x61,0x7F,0xFF,0x5A,0x18,0x09,0xEF,0x50,0x52,0x80,0x24,0x50,0x00,0x00,0x24, +0xDC,0xE4,0xFC,0xA0,0xFC,0x40,0x51,0xFF,0xFD,0xB8,0xF2,0x81,0x81,0x20,0x44,0x20, +0x02,0x40,0x81,0x41,0xB0,0x02,0x44,0x10,0x7F,0x5C,0x80,0xE3,0x80,0xC4,0x49,0x00, +0x26,0xBF,0xF0,0x01,0x49,0xFF,0xFC,0x5E,0x81,0x00,0x49,0x00,0x03,0x16,0xC8,0x0C, +0x49,0x00,0x0E,0x6A,0xC8,0x06,0x2E,0x17,0xF8,0x40,0xC1,0x07,0x84,0x01,0xD5,0x05, +0x49,0x00,0x0D,0x39,0xD5,0x04,0x84,0x00,0x49,0xFF,0xF2,0x26,0x40,0x34,0x1C,0x00, +0x95,0x32,0x84,0xA0,0xFB,0x02,0x84,0x40,0x99,0xAA,0x97,0xB1,0x4E,0x92,0x00,0x13, +0xB0,0x42,0x81,0xE2,0x38,0x10,0x98,0x00,0x42,0xF0,0xA0,0x73,0x40,0x17,0x88,0x08, +0x88,0x24,0x38,0x70,0x04,0x02,0x38,0x11,0xBD,0x01,0x90,0xE8,0x8A,0xE1,0x38,0x74, +0x99,0x09,0x4E,0xA2,0x00,0x0C,0xB0,0x42,0x80,0xE2,0x38,0x10,0x98,0x00,0x42,0x70, +0xA0,0x73,0x38,0x11,0x9D,0x11,0x38,0x15,0x19,0x09,0x8C,0x41,0x5A,0x28,0x12,0xDE, +0x8C,0xB2,0x97,0x69,0x5A,0x5A,0x40,0xD9,0x49,0xFF,0xFF,0x87,0x51,0xFF,0x82,0x48, +0xFC,0xC0,0xFC,0x00,0x80,0x43,0x84,0x60,0x80,0x83,0x49,0xFF,0xFF,0xA5,0xFC,0x80, +0xFC,0x20,0x80,0xE0,0x80,0x02,0x80,0xC1,0x49,0xFF,0xFC,0x0C,0x84,0x40,0x96,0x51, +0xE2,0x26,0xE8,0x07,0x38,0x10,0x09,0x11,0x38,0x13,0x89,0x09,0x8C,0x41,0xD5,0xF8, +0xFC,0xA0,0xFC,0x20,0xFD,0x30,0x84,0x00,0x49,0xFF,0xFB,0xFC,0x95,0xF9,0x80,0xA6, +0x88,0xE6,0x50,0x00,0x04,0xA4,0xD7,0x06,0x2A,0x10,0x00,0x01,0x1A,0x12,0x80,0x01, +0xD5,0xFB,0xFC,0xA0,0xFC,0x20,0x80,0xE0,0x80,0x02,0x80,0xC1,0x49,0xFF,0xF1,0xC4, +0x84,0x40,0x96,0x51,0xE2,0x26,0xE8,0x07,0x38,0x10,0x0A,0x02,0x38,0x13,0x8A,0x0A, +0x8C,0x41,0xD5,0xF8,0xFC,0xA0,0xFC,0x40,0x80,0xC0,0x80,0x02,0x81,0x23,0x80,0xE1, +0x49,0xFF,0xFB,0xD8,0x81,0x40,0x84,0x6C,0x5A,0x98,0x02,0x07,0x49,0x00,0x0D,0xE8, +0x84,0x63,0xC0,0x02,0x80,0x69,0x80,0x0A,0x40,0x91,0x84,0x08,0x84,0x20,0x40,0xA1, +0x80,0x13,0x96,0x89,0xE2,0x47,0xE8,0x1E,0x84,0xA0,0x80,0x85,0x40,0x82,0x80,0x13, +0xE3,0x0A,0xE8,0x06,0x38,0x80,0x15,0x11,0x8C,0xA1,0x88,0x88,0xD5,0xF8,0x5C,0xF1, +0x00,0x40,0x40,0x42,0x0C,0x96,0xE8,0x09,0x54,0x51,0x00,0x01,0x95,0x6D,0x92,0x41, +0x88,0x45,0x38,0x43,0x09,0x09,0xD5,0x03,0x38,0x43,0x05,0x09,0x8C,0x21,0x88,0x09, +0xD5,0xE1,0xFC,0xC0,0x2E,0x07,0xF1,0xF2,0xDD,0x9E,0x3E,0x07,0xF1,0xF2,0xDD,0x9E, +0xFC,0x52,0x44,0x00,0x81,0x9C,0x80,0x20,0x80,0x9F,0x3A,0x20,0x8C,0x04,0x3A,0x22, +0x0C,0x24,0x50,0x9F,0x80,0x0C,0xA4,0x48,0x3A,0x20,0x0C,0x04,0x80,0x09,0xAC,0x60, +0x3A,0x20,0x0C,0x24,0xB1,0xC6,0xAC,0x40,0x44,0x00,0x81,0xA8,0x80,0x27,0x3A,0x20, +0x14,0x04,0x3A,0x20,0x94,0x24,0xB4,0x00,0xB1,0x90,0xB6,0x01,0x44,0x00,0x81,0xBC, +0x80,0x26,0x3A,0x20,0x14,0x04,0x3A,0x20,0x94,0x24,0x3A,0x20,0x14,0x04,0x3A,0x20, +0x94,0x24,0x3A,0x20,0x0C,0x00,0x3A,0x20,0x8C,0x20,0x49,0x00,0x20,0x3E,0xE6,0x03, +0x81,0x5F,0xE9,0x07,0x2E,0x07,0xF1,0xF2,0x44,0x10,0x01,0x30,0x38,0x13,0x01,0x09, +0x50,0x8F,0x80,0x2C,0x44,0x00,0x81,0xE4,0x80,0x28,0x3A,0x20,0x14,0x04,0x3A,0x20, +0x94,0x24,0x04,0xF0,0x00,0x00,0x44,0x00,0x81,0xF8,0x14,0xF0,0x80,0x00,0xB0,0x5A, +0x83,0x81,0x3A,0x20,0x14,0x04,0x3A,0x2E,0x14,0x24,0x83,0xDC,0x3A,0x20,0x14,0x04, +0x3A,0x2F,0x14,0x24,0x3A,0x20,0x0C,0x00,0x3A,0x2F,0x0C,0x20,0x44,0x02,0x01,0xF8, +0x3A,0x24,0x14,0x04,0x3A,0x20,0x14,0x24,0x44,0x82,0x01,0xD0,0x14,0xF0,0x00,0x00, +0x80,0x08,0x3A,0x20,0x94,0x04,0x3A,0x20,0x14,0x24,0x3A,0x2E,0x14,0x04,0x3A,0x20, +0x14,0x24,0x3A,0x2F,0x0C,0x00,0x3A,0x20,0x0C,0x20,0x44,0x02,0x02,0x54,0x3A,0x25, +0x0C,0x04,0x3A,0x20,0x0C,0x24,0x80,0x20,0x02,0x05,0x00,0x00,0xAC,0x08,0x44,0x02, +0x02,0x48,0x3A,0x24,0x8C,0x04,0x3A,0x20,0x0C,0x24,0x80,0x20,0x02,0x04,0x80,0x00, +0xAC,0x08,0x44,0x02,0x02,0x34,0x3A,0x23,0x94,0x04,0x3A,0x20,0x14,0x24,0x80,0x20, +0xB4,0x07,0xB6,0x01,0x44,0x12,0x02,0x0C,0x80,0x01,0x3A,0x23,0x14,0x04,0x3A,0x20, +0x14,0x24,0x3A,0x23,0x14,0x04,0x3A,0x20,0x14,0x24,0x3A,0x23,0x0C,0x00,0x3A,0x20, +0x0C,0x20,0xFC,0xD2,0xFC,0x00,0x49,0xFF,0xEC,0x1C,0xFC,0x80,0xFC,0x00,0xC8,0x06, +0x44,0x02,0x02,0x0C,0x44,0x12,0x02,0x34,0xD5,0x05,0x44,0x02,0x01,0xD0,0x44,0x12, +0x01,0xF8,0x49,0xFF,0xED,0x08,0xFC,0x80,0x84,0x00,0x3E,0x07,0xF1,0xF1,0x3E,0x07, +0xF1,0xF0,0xDD,0x9E,0xFC,0x00,0x80,0x41,0xC9,0x05,0x5A,0x08,0x01,0x13,0x80,0x01, +0xD5,0x05,0x84,0x20,0x5A,0x08,0x01,0x09,0x84,0x02,0x94,0x01,0x96,0x40,0xCA,0x04, +0x44,0x02,0x02,0x54,0xD5,0x03,0x44,0x02,0x02,0x48,0x49,0xFF,0xEF,0x28,0xFC,0x80, +0xD5,0xF8,0xFC,0x00,0xC9,0x0C,0x84,0x00,0x49,0xFF,0xEE,0xA5,0x84,0x00,0x80,0x20, +0x49,0xFF,0xEE,0xD2,0x84,0x00,0x49,0xFF,0xEF,0x04,0xFC,0x80,0x80,0xC0,0x5A,0x08, +0x01,0xF4,0x84,0x02,0x49,0xFF,0xEE,0x97,0x80,0x06,0x84,0x20,0x49,0xFF,0xEE,0xC4, +0x80,0x06,0xD5,0xF2,0xFC,0x01,0xB6,0x1F,0xF1,0x81,0x49,0xFF,0xFF,0xE4,0xB4,0x1F, +0xF1,0x01,0x49,0xFF,0xFF,0xC9,0xFC,0x81,0xFC,0x49,0x80,0xE0,0x44,0x02,0x00,0x01, +0xF0,0x86,0x44,0x01,0x00,0x02,0xF0,0x87,0x44,0x00,0x80,0x04,0xF0,0x88,0x44,0x00, +0x40,0x08,0xF0,0x89,0x44,0x00,0x20,0x10,0xF0,0x8A,0x44,0x00,0x10,0x20,0xF0,0x8B, +0x44,0x00,0x08,0x40,0xF0,0x8C,0x44,0x00,0x04,0x80,0xF0,0x8D,0x44,0x00,0x03,0x00, +0xF0,0x8E,0x3C,0x0D,0xFC,0x17,0xF0,0x8F,0xF0,0x90,0xF0,0x91,0xC7,0x08,0x44,0x92, +0x01,0xF8,0x44,0xA2,0x01,0xD0,0x85,0x02,0x87,0x85,0xD5,0x07,0x85,0x03,0x44,0x92, +0x02,0x34,0x44,0xA2,0x02,0x0C,0x83,0x88,0xB0,0x06,0x49,0xFF,0xEC,0xFF,0x80,0xDF, +0xCF,0x11,0x44,0x00,0x82,0x38,0x80,0x3F,0x3A,0x20,0x14,0x04,0x3A,0x20,0x94,0x24, +0x3A,0x20,0x0C,0x00,0x3A,0x20,0x8C,0x20,0x80,0x1F,0x49,0xFF,0xED,0x25,0x80,0x07, +0xD5,0x10,0x44,0x00,0x82,0x50,0x80,0x3F,0x3A,0x20,0x14,0x04,0x3A,0x20,0x94,0x24, +0x3A,0x20,0x0C,0x00,0x3A,0x20,0x8C,0x20,0x80,0x1F,0x49,0xFF,0xED,0x15,0x84,0x01, +0x49,0x00,0x0B,0x75,0x2E,0x47,0xF1,0xF2,0x84,0x00,0x80,0x4A,0x80,0x69,0x80,0xA4, +0x80,0x20,0x49,0xFF,0xF9,0xAD,0x2E,0x17,0xF1,0xF2,0x84,0x00,0x38,0x15,0x05,0x01, +0x49,0xFF,0xED,0xA8,0x2E,0x17,0xF1,0xF2,0x84,0x03,0x38,0x15,0x05,0x01,0x49,0xFF, +0xED,0xA1,0x2E,0x07,0xF1,0xF2,0x84,0x20,0x38,0x04,0x80,0x00,0x49,0xFF,0xEE,0x9D, +0x2E,0x07,0xF1,0xF2,0x84,0x23,0x38,0x04,0x80,0x00,0x49,0xFF,0xEE,0x96,0x44,0x00, +0x02,0x40,0x49,0xFF,0xF0,0x34,0x80,0x08,0x49,0xFF,0xF0,0x5C,0x5A,0x78,0x01,0x0A, +0x2E,0x07,0xF1,0xF2,0x40,0xFE,0x00,0x06,0xE9,0x04,0x80,0x07,0x80,0x27,0xD5,0x03, +0x84,0x00,0x80,0x27,0x49,0xFF,0xFF,0x68,0xFC,0xC9,0xFC,0x49,0xC1,0x07,0x44,0x92, +0x01,0xD0,0x85,0x42,0x44,0x72,0x01,0xF8,0xD5,0x06,0x44,0x92,0x02,0x0C,0x85,0x43, +0x44,0x72,0x02,0x34,0x5A,0x08,0x03,0x32,0xB1,0x86,0x44,0x10,0x82,0x68,0x80,0x06, +0x3A,0x20,0x94,0x04,0x3A,0x20,0x14,0x24,0x3A,0x20,0x94,0x04,0x3A,0x20,0x14,0x24, +0x3A,0x20,0x94,0x00,0x44,0x10,0x82,0x20,0x3A,0x20,0x14,0x20,0x80,0x1F,0x3A,0x20, +0x94,0x04,0x3A,0x20,0x14,0x24,0x3A,0x20,0x8C,0x00,0x3A,0x20,0x0C,0x20,0x2E,0x47, +0xF1,0xF2,0x84,0x20,0x80,0x49,0x80,0x67,0x80,0xA4,0x84,0x01,0x49,0xFF,0xF9,0x48, +0x80,0x06,0x49,0xFF,0xEC,0x6B,0x80,0x1F,0x49,0xFF,0xEC,0x9E,0x84,0x00,0x49,0xFF, +0xEF,0xE6,0x81,0x5F,0x84,0x0C,0xD5,0x35,0x5A,0x08,0x02,0x36,0xB1,0x86,0x44,0x10, +0x82,0x98,0x81,0x06,0x3A,0x20,0x94,0x04,0x3A,0x24,0x14,0x24,0x3A,0x20,0x94,0x04, +0x3A,0x24,0x14,0x24,0x3A,0x20,0x94,0x00,0x44,0x10,0x82,0x38,0x81,0xFF,0x3A,0x24, +0x14,0x20,0x3A,0x20,0x94,0x04,0x3A,0x27,0x94,0x24,0x3A,0x20,0x8C,0x00,0x3A,0x27, +0x8C,0x20,0x49,0x00,0x0A,0xDC,0x2E,0x47,0xF1,0xF2,0x84,0x00,0x80,0x20,0x80,0x49, +0x80,0x67,0x80,0xA4,0x49,0xFF,0xF9,0x14,0x80,0x06,0x49,0xFF,0xEC,0x37,0x80,0x1F, +0x49,0xFF,0xEC,0x6A,0x44,0x00,0x02,0x40,0x49,0xFF,0xEF,0xB1,0x81,0x1F,0x80,0x0A, +0x49,0xFF,0xEF,0xD8,0xFC,0xC9,0xFC,0x49,0x44,0x10,0x82,0x98,0xB1,0x86,0x80,0xE0, +0x80,0x06,0x3A,0x20,0x94,0x04,0x3A,0x20,0x14,0x24,0x3A,0x20,0x94,0x04,0x3A,0x20, +0x14,0x24,0x3A,0x20,0x94,0x00,0x3A,0x20,0x14,0x20,0xC7,0x07,0x44,0x82,0x01,0xD0, +0x85,0x22,0x44,0xA2,0x01,0xF8,0xD5,0x06,0x44,0x82,0x02,0x0C,0x85,0x23,0x44,0xA2, +0x02,0x34,0x84,0x00,0x49,0x00,0x0A,0xA3,0x2E,0x47,0xF1,0xF2,0x84,0x00,0x80,0x20, +0x80,0x48,0x80,0x6A,0x80,0xA4,0x49,0xFF,0xF8,0xDB,0x80,0x06,0x49,0xFF,0xEB,0xFE, +0x44,0x00,0x02,0x40,0x49,0xFF,0xEF,0x7B,0x80,0x09,0x49,0xFF,0xEF,0xA3,0x46,0x00, +0x42,0x10,0x50,0x00,0x08,0x20,0x80,0x20,0x84,0x40,0x49,0xFF,0xEB,0x06,0x80,0x1F, +0xCF,0x04,0x44,0x10,0x82,0x38,0xD5,0x03,0x44,0x10,0x82,0x50,0x80,0xC0,0x3A,0x20, +0x94,0x04,0x3A,0x23,0x14,0x24,0x3A,0x20,0x8C,0x00,0x3A,0x23,0x0C,0x20,0x49,0xFF, +0xEC,0x13,0xFC,0xC9,0x2E,0x07,0xF1,0xFC,0x96,0x00,0xC0,0x05,0x84,0x00,0x3E,0x07, +0xF1,0xFC,0x84,0x01,0xDD,0x9E,0x2E,0x17,0xF1,0xFA,0x96,0x48,0xC1,0x05,0x84,0x00, +0x3E,0x07,0xF1,0xFA,0xD5,0x07,0x2E,0x07,0xF1,0xF6,0x96,0x00,0xC0,0x04,0x3E,0x17, +0xF1,0xF6,0x84,0x01,0xDD,0x9E,0x2E,0x07,0xF1,0xFF,0xDD,0x9E,0x3E,0x07,0xF1,0xFF, +0xDD,0x9E,0x2E,0x07,0xF1,0xFE,0xDD,0x9E,0x3E,0x07,0xF1,0xFD,0xDD,0x9E,0xDD,0x9E, +0xFC,0x20,0x49,0xFF,0xF5,0xC4,0x2E,0x17,0xF2,0x0C,0x5A,0x18,0x01,0x7D,0x5A,0x08, +0x01,0x06,0x3C,0x0D,0xFC,0x82,0x4E,0x02,0x01,0x01,0x49,0xFF,0xF1,0x76,0x46,0x01, +0xFF,0xFF,0x50,0x00,0x0F,0x00,0x49,0xFF,0xF1,0x65,0x46,0x01,0xF1,0x10,0x50,0x00, +0x01,0x00,0x49,0xFF,0xF1,0x5F,0x44,0x00,0x00,0x96,0x49,0xFF,0xF2,0xEC,0x46,0x01, +0xF2,0x90,0x50,0x00,0x01,0x00,0x49,0xFF,0xF1,0x55,0xFA,0x04,0x49,0xFF,0xF2,0xE3, +0x49,0xFF,0xEB,0x60,0x84,0x00,0x49,0xFF,0xFA,0xD1,0x84,0x00,0x49,0xFF,0xF2,0x2D, +0x84,0x00,0x49,0xFF,0xFA,0xD6,0x84,0x00,0x84,0x21,0x49,0xFF,0xF1,0xBD,0x84,0x01, +0x80,0x20,0x49,0xFF,0xF2,0x04,0x84,0x00,0x49,0x00,0x09,0x6C,0x84,0x00,0x49,0x00, +0x09,0x4F,0x84,0x00,0x49,0xFF,0xFF,0xB4,0x46,0x00,0x00,0x81,0x44,0x60,0x08,0x01, +0x83,0x80,0xB9,0x1A,0x44,0x74,0x50,0x28,0x92,0x25,0x94,0x4D,0x58,0x10,0x80,0x10, +0xB9,0x9A,0xBA,0x1A,0x44,0x1F,0xE0,0xFF,0xFE,0x56,0x58,0x10,0x88,0x00,0xB9,0x9A, +0xBA,0x1A,0x46,0x1F,0xFE,0x0F,0x50,0x10,0x8F,0xFF,0xFE,0x56,0x44,0x25,0x00,0x00, +0xFE,0x57,0xB9,0x9A,0xBA,0x1A,0x46,0x1E,0x0F,0xFF,0x50,0x10,0x8F,0xFF,0xFE,0x56, +0x46,0x20,0x10,0x00,0xFE,0x57,0xB9,0x9A,0xB9,0x19,0x44,0x21,0xF4,0xCE,0x92,0x31, +0x40,0x10,0xC4,0x08,0xFE,0x57,0xB9,0x99,0xB4,0x07,0x92,0x01,0x96,0x06,0x5A,0x08, +0x01,0x04,0x48,0x00,0x00,0x93,0x8E,0xC1,0x84,0x01,0x97,0xB1,0x49,0xFF,0xF2,0x82, +0xCE,0xF4,0xFC,0xA0,0x5A,0x10,0x02,0x04,0x48,0x00,0x00,0x88,0xC8,0x05,0x3C,0x0D, +0xFC,0x82,0x4E,0x02,0x00,0x83,0x46,0x61,0xFF,0xFF,0x50,0x63,0x0F,0x00,0x49,0xFF, +0xF0,0xF4,0x80,0x06,0x49,0xFF,0xF0,0xE6,0x46,0x01,0xF2,0x80,0x50,0x00,0x01,0x00, +0x49,0xFF,0xF0,0xE0,0xFA,0x04,0x49,0xFF,0xF2,0x6E,0x46,0x01,0xF1,0x00,0x50,0x00, +0x01,0x00,0x49,0xFF,0xF0,0xD7,0x44,0x00,0x00,0x32,0x49,0xFF,0xF2,0x64,0x84,0x01, +0x49,0x00,0x09,0x00,0x84,0x00,0x49,0x00,0x08,0xE3,0x46,0x10,0x00,0x81,0x44,0x0F, +0xE0,0xFF,0x83,0x81,0xBA,0x1A,0x44,0x74,0x50,0x28,0x92,0x45,0x94,0x95,0x58,0x21, +0x00,0x03,0xBA,0x9A,0xBA,0x1A,0xFE,0x16,0x58,0x00,0x02,0x00,0xB8,0x9A,0xBA,0x1A, +0x46,0x0F,0xFE,0x0F,0x50,0x00,0x0F,0xFF,0xFE,0x16,0x44,0x21,0x00,0x00,0xFE,0x17, +0xB8,0x9A,0xBA,0x1A,0x46,0x0E,0x0F,0xFF,0x50,0x00,0x0F,0xFF,0xFE,0x16,0xB8,0x9A, +0xBA,0x19,0x84,0x00,0x92,0x51,0x40,0x21,0x44,0x08,0x58,0x21,0x6D,0x60,0xBA,0x99, +0x84,0x21,0x49,0xFF,0xF1,0x64,0x84,0x01,0x49,0xFF,0xF1,0x6B,0x84,0x01,0x80,0x20, +0x49,0xFF,0xF1,0x12,0x84,0x01,0x49,0xFF,0xF1,0x45,0x84,0x01,0x49,0xFF,0xF1,0x75, +0x49,0xFF,0xF9,0x10,0x80,0x06,0x49,0xFF,0xF0,0x8D,0x49,0xFF,0xF0,0x77,0x46,0x01, +0xF0,0x00,0x50,0x00,0x01,0x00,0x49,0xFF,0xF0,0x85,0x49,0xFF,0xF0,0x6F,0x84,0x00, +0x49,0xFF,0xF4,0xD3,0x84,0x00,0x49,0xFF,0xF4,0xD9,0x84,0x01,0x49,0xFF,0xFE,0xF8, +0x44,0x60,0x08,0x01,0xB4,0x07,0x92,0x01,0x96,0x06,0xC0,0x07,0x8E,0xC1,0x84,0x01, +0x97,0xB1,0x49,0xFF,0xF1,0xF7,0xCE,0xF7,0xFC,0xA0,0xFC,0x00,0x84,0x00,0x49,0xFF, +0xF1,0x9E,0x49,0x00,0x1C,0xF2,0xE6,0x03,0xE8,0x09,0x44,0x16,0x00,0x00,0xB4,0x01, +0x58,0x00,0x01,0x00,0xB6,0x01,0x48,0x00,0x00,0x84,0x44,0x14,0x80,0x04,0x44,0x01, +0x00,0x00,0xB6,0x01,0x44,0x14,0x80,0x84,0xB4,0x41,0xFE,0x17,0xB6,0x01,0x44,0x16, +0x00,0x30,0xB4,0x01,0x58,0x00,0x01,0x00,0xB6,0x01,0x44,0x07,0x21,0x00,0x46,0x10, +0x20,0x00,0xB4,0x40,0xFE,0x57,0xB6,0x20,0xB4,0x40,0x44,0x37,0x21,0x00,0x92,0x59, +0x96,0x86,0xCA,0xFB,0xB4,0x23,0x46,0x0F,0xFF,0x0F,0x50,0x00,0x0F,0xFF,0xFE,0x0E, +0x44,0x16,0x00,0x00,0xFE,0x0F,0xB6,0x03,0x44,0x37,0x21,0x04,0x44,0x02,0x02,0xA1, +0x40,0x00,0x30,0x08,0x40,0x10,0x30,0x09,0xB4,0x03,0x44,0x47,0x21,0x10,0x92,0x14, +0x40,0x00,0x50,0x08,0xFE,0x0F,0xB6,0x03,0x44,0x37,0x21,0x14,0x44,0x16,0x00,0x34, +0xB4,0x03,0x46,0x68,0x00,0x00,0x92,0x14,0x40,0x00,0x50,0x08,0xFE,0x0F,0xB6,0x03, +0x44,0x37,0x21,0x08,0x44,0x17,0x21,0x18,0xB4,0x03,0x92,0x08,0x40,0x00,0x20,0x08, +0x58,0x00,0x00,0x01,0xB6,0x03,0xB4,0x04,0x92,0x08,0x40,0x00,0x20,0x08,0xB6,0x04, +0xB4,0x01,0x92,0x08,0x40,0x00,0x20,0x08,0xB6,0x01,0xB4,0xA3,0x46,0x0F,0xCF,0xFF, +0x50,0x00,0x0F,0xFF,0xFF,0x46,0xB6,0xA3,0xB4,0xA4,0xFF,0x46,0xB6,0xA4,0xB4,0xA1, +0xFE,0x2E,0x44,0x57,0x21,0x1C,0xB6,0x01,0xB4,0x05,0x92,0x11,0x40,0x00,0x44,0x08, +0x58,0x00,0x05,0x77,0xB6,0x05,0xB4,0x03,0xFE,0x37,0xB6,0x03,0xB4,0x04,0x94,0x01, +0x92,0x01,0xB6,0x04,0xB4,0x01,0xFF,0x87,0x44,0x07,0x21,0x20,0xB6,0xC1,0xB6,0x40, +0xB4,0x25,0x46,0x0F,0x0F,0xFF,0x50,0x00,0x0F,0xFF,0xFE,0x0E,0xB6,0x05,0x44,0x00, +0x00,0x79,0x3E,0x07,0xF2,0x31,0x44,0x0F,0xFF,0x84,0x3E,0x07,0xF2,0x32,0x84,0x19, +0x3E,0x07,0xF2,0x33,0xFC,0x80,0x84,0x20,0x84,0x40,0x3C,0x1B,0xF9,0x16,0x44,0x42, +0x02,0xA0,0x80,0x22,0x96,0xD1,0xE2,0x60,0xE8,0x06,0x38,0x32,0x08,0x00,0x8C,0x41, +0x88,0x23,0xD5,0xF9,0xFC,0x00,0x44,0x22,0x02,0xA0,0xFE,0x4A,0x96,0x48,0x38,0x11, +0x00,0x08,0x8C,0x01,0x96,0x01,0x49,0xFF,0xF5,0x1C,0x2E,0x07,0xF2,0x30,0x49,0xFF, +0xF5,0x03,0x49,0x00,0x1C,0x3A,0xE6,0x03,0xE9,0x03,0x49,0xFF,0xF4,0x12,0xFC,0x80, +0xFC,0x01,0x84,0x00,0x3E,0x07,0xF8,0x3A,0x84,0x01,0x3E,0x07,0xF0,0x61,0x84,0x20, +0x44,0x00,0x01,0x00,0x49,0xFF,0xE7,0x8E,0x44,0x00,0x01,0x00,0x84,0x20,0x49,0xFF, +0xE7,0x98,0x44,0x00,0x01,0x00,0x84,0x20,0x49,0xFF,0xE7,0xA2,0x44,0x40,0x05,0x78, +0xB6,0x9F,0x44,0x12,0x02,0xA0,0x44,0x22,0x02,0x9E,0x44,0x32,0x02,0x9C,0x44,0x50, +0x00,0x90,0x44,0x02,0x08,0x18,0x49,0xFF,0xF4,0xDB,0x44,0x00,0x3D,0x38,0x49,0xFF, +0xF4,0xF1,0x44,0x00,0x37,0x3E,0x49,0xFF,0xF4,0xF0,0x84,0x00,0x49,0xFF,0xE7,0xA4, +0x84,0x00,0x3C,0x0B,0xF9,0x17,0x44,0x00,0x05,0x77,0x49,0xFF,0xFF,0xA6,0x49,0xFF, +0xFF,0x06,0xFC,0x81,0xFC,0x00,0xC8,0x03,0xFA,0x1A,0xD5,0x03,0x44,0x00,0x05,0x1B, +0x49,0xFF,0xFF,0x9B,0xFC,0x80,0xFC,0x00,0x44,0x00,0x01,0x00,0x84,0x21,0x49,0xFF, +0xE7,0x6F,0x84,0x00,0x3C,0x0F,0xFC,0x80,0x3C,0x0D,0xFC,0x80,0x5C,0xF0,0x00,0x64, +0xE8,0x05,0x3C,0x0D,0xFC,0x80,0x8C,0x01,0xD5,0xF6,0x44,0x00,0x01,0x00,0x84,0x20, +0x49,0xFF,0xE7,0x5E,0xFC,0x80,0x2E,0x07,0xF8,0x3A,0xDD,0x9E,0x2E,0x07,0xF0,0x61, +0xDD,0x9E,0xFC,0x00,0x44,0x10,0x00,0xFF,0x80,0xC0,0x44,0x20,0x05,0x78,0x44,0x02, +0x02,0xA0,0x49,0x00,0x21,0x83,0xCE,0x06,0x44,0x00,0x00,0x5A,0x3E,0x07,0xF2,0x30, +0xFC,0x80,0x44,0x0F,0xFF,0xA7,0x3E,0x07,0xF2,0x30,0x84,0x05,0x3E,0x07,0xF2,0x31, +0xFA,0x0C,0x3E,0x07,0xF2,0x32,0xFA,0x10,0x3E,0x07,0xF2,0x33,0x84,0x1F,0x3E,0x07, +0xF2,0x34,0xFC,0x80,0xFC,0x40,0x84,0x85,0x8C,0x24,0x84,0xA1,0x44,0x32,0x02,0xA0, +0x84,0xD0,0xA6,0x8C,0x04,0x90,0xFF,0xFF,0x5A,0x28,0x01,0x2D,0x22,0x70,0x80,0x01, +0x22,0x20,0x80,0x00,0x90,0xE8,0x90,0x44,0x97,0xDF,0xFE,0xB6,0xFE,0xBF,0x96,0x90, +0xC8,0x17,0x38,0x21,0x94,0x08,0x9C,0xA9,0xA7,0xC8,0x38,0x71,0x88,0x08,0x9C,0xAA, +0xA7,0xCA,0x38,0x71,0x88,0x08,0x40,0x24,0x94,0x0A,0x5E,0xF1,0x01,0x00,0x9D,0xEB, +0xE9,0x03,0x44,0x20,0x00,0xFF,0x96,0x90,0x38,0x21,0x9C,0x08,0xD5,0x0B,0x38,0x21, +0x90,0x08,0x9C,0xA1,0xA7,0xC8,0x38,0x71,0x88,0x08,0x9C,0xA2,0xA7,0xCA,0x38,0x71, +0x88,0x08,0x8C,0x83,0x8C,0x2C,0x8C,0xA4,0x5A,0x48,0x23,0xCD,0xFC,0xC0,0xFA,0xB3, +0x44,0x22,0x02,0xA0,0x44,0x30,0x04,0xA3,0x80,0x80,0x0A,0x10,0x00,0x01,0x92,0x28, +0x38,0x11,0x14,0x08,0x9C,0x69,0xA7,0x20,0x8C,0xA2,0x38,0x41,0x04,0x08,0xDB,0xF5, +0xDD,0x9E,0x44,0x50,0x04,0xA3,0x44,0x22,0x02,0xA0,0x44,0x30,0x05,0x07,0x80,0x80, +0x0A,0x10,0x00,0x01,0x92,0x28,0x38,0x11,0x14,0x08,0x9C,0x69,0xA7,0x20,0x8C,0xA2, +0x38,0x41,0x04,0x08,0xDB,0xF5,0xDD,0x9E,0xC8,0x03,0x3E,0x17,0xF2,0x59,0xDD,0x9E, +0xFC,0x00,0x49,0xFF,0xF4,0x2C,0xFC,0x80,0xFC,0x00,0x49,0xFF,0xF4,0x25,0xFC,0x80, +0xFC,0x00,0x49,0x00,0x07,0x5D,0x2E,0x57,0xF8,0x38,0xCD,0x18,0x84,0x32,0x3E,0x17, +0xF2,0x30,0x44,0x22,0x02,0xA0,0x44,0x30,0x04,0x80,0x80,0x80,0x2A,0x10,0x00,0x01, +0x9D,0xA9,0x90,0x28,0x96,0x48,0x38,0x11,0x18,0x08,0x8C,0xA2,0xA6,0x60,0x38,0x11, +0x14,0x08,0xDB,0xF4,0x44,0x00,0x04,0x81,0xD5,0x12,0x5A,0x58,0x01,0x13,0x84,0x12, +0x3E,0x07,0xF2,0x30,0x44,0x12,0x02,0xA0,0x80,0x05,0x84,0x40,0x9C,0xC1,0x38,0x20, +0x80,0x08,0x8C,0x02,0x38,0x20,0x8C,0x08,0x5A,0x08,0x65,0xFA,0x49,0xFF,0xFE,0xBD, +0xFC,0x80,0xFC,0x00,0x2E,0x07,0xF0,0x60,0x3E,0x07,0xF2,0x30,0x84,0x01,0x49,0xFF, +0xFE,0xB4,0x49,0xFF,0xF3,0x5D,0xFC,0x80,0xFC,0x00,0x3C,0x23,0xF9,0x17,0x2E,0x17, +0xF7,0xA8,0x84,0x00,0x96,0x91,0x3C,0x0F,0xFC,0x8A,0x96,0x48,0x44,0x32,0x08,0x18, +0x5A,0x20,0x03,0x04,0x48,0x00,0x00,0xDB,0x5A,0x18,0x53,0x0F,0x2E,0x07,0xF7,0xA9, +0x2E,0x17,0xF7,0xAA,0x40,0x00,0x20,0x08,0xFE,0x0F,0x5A,0x08,0x48,0x04,0x48,0x00, +0x01,0xF8,0x48,0x00,0x04,0x60,0x5A,0x10,0x01,0x04,0x48,0x00,0x04,0x5C,0x2E,0x17, +0xF7,0xA9,0x5A,0x18,0x01,0x0D,0x2E,0x17,0xF7,0xAA,0x5A,0x18,0x01,0x05,0x3C,0x0F, +0xFE,0x0F,0x84,0x06,0x2E,0x17,0xF7,0xAA,0x48,0x00,0x01,0x2D,0x2E,0x07,0xF7,0xA9, +0x5A,0x08,0x02,0x10,0x2E,0x07,0xF7,0xAA,0x5A,0x08,0x03,0x04,0x48,0x00,0x02,0x57, +0x2E,0x07,0xF7,0xAA,0x4E,0x02,0x02,0x4C,0x2E,0x07,0xF7,0xAA,0x48,0x00,0x00,0xDD, +0x2E,0x07,0xF7,0xA9,0x5A,0x08,0x03,0x0C,0x2E,0x07,0xF7,0xAA,0x4E,0x02,0x04,0x33, +0x2E,0x07,0xF7,0xAA,0x5A,0x08,0x01,0x7A,0x48,0x00,0x04,0x2D,0x2E,0x07,0xF7,0xA9, +0x5A,0x08,0x04,0x12,0x2E,0x07,0xF7,0xAA,0x4E,0x02,0x04,0x25,0x2E,0x07,0xF7,0xAA, +0x5A,0x08,0x01,0x04,0x48,0x00,0x04,0x1F,0x2E,0x07,0xF7,0xAA,0x5A,0x08,0x10,0x66, +0x48,0x00,0x04,0x19,0x2E,0x07,0xF7,0xA9,0x5A,0x08,0x05,0x04,0x48,0x00,0x04,0x13, +0x2E,0x07,0xF7,0xA9,0x5A,0x08,0x06,0x11,0x2E,0x07,0xF7,0xAA,0x5A,0x08,0x01,0x04, +0x3C,0x0F,0xFC,0x1A,0x2E,0x07,0xF7,0xAA,0x4E,0x03,0x04,0x05,0x84,0x00,0x3C,0x0F, +0xFC,0x1A,0x48,0x00,0x04,0x00,0x2E,0x07,0xF7,0xA9,0x5A,0x08,0x07,0x12,0x2E,0x07, +0xF7,0xAA,0x96,0x00,0x5A,0x08,0x01,0x04,0x3C,0x0F,0xFB,0xE4,0x2E,0x07,0xF7,0xAA, +0x4E,0x03,0x03,0xF1,0x84,0x00,0x3C,0x0F,0xFB,0xE4,0x48,0x00,0x03,0xEC,0x2E,0x07, +0xF7,0xA9,0x5A,0x08,0x08,0x07,0x2E,0x07,0xF7,0xAA,0x4E,0x02,0x03,0xE4,0xD5,0x2D, +0x2E,0x07,0xF7,0xA9,0x5A,0x08,0x09,0x04,0x48,0x00,0x03,0xDD,0x2E,0x07,0xF7,0xA9, +0x5A,0x08,0x0A,0x10,0x2E,0x07,0xF7,0xAA,0x4E,0x02,0x01,0xF0,0x2E,0x07,0xF7,0xAA, +0x5A,0x08,0x01,0x04,0x48,0x00,0x01,0xF0,0x2E,0x07,0xF7,0xAA,0x48,0x00,0x00,0xC2, +0x2E,0x07,0xF7,0xA9,0x5A,0x08,0x0B,0x04,0x48,0x00,0x03,0xC5,0x2E,0x07,0xF7,0xA9, +0x5A,0x00,0x0C,0x0A,0x2E,0x07,0xF7,0xA9,0x5A,0x00,0x0F,0x06,0x2E,0x07,0xF7,0xA9, +0x5A,0x08,0x10,0x08,0x2E,0x07,0xF7,0xAA,0x2E,0x07,0xF7,0xAA,0x48,0x00,0x03,0xB3, +0x2E,0x07,0xF7,0xA9,0x5A,0x00,0x11,0x04,0x48,0x00,0x03,0xAD,0x2E,0x07,0xF7,0xAA, +0xC8,0x07,0x3C,0x0D,0xFC,0x19,0x58,0x00,0x00,0x08,0x3C,0x0F,0xFC,0x19,0x2E,0x07, +0xF7,0xAA,0x5A,0x00,0x01,0x04,0x48,0x00,0x03,0x9E,0x3C,0x1D,0xFC,0x19,0x84,0x17, +0xFE,0x0E,0x3C,0x0F,0xFC,0x19,0x48,0x00,0x03,0x96,0x5A,0x28,0x01,0x24,0x5A,0x18, +0x01,0x04,0x48,0x00,0x01,0x41,0x5A,0x18,0x03,0x04,0x48,0x00,0x01,0x6D,0x5A,0x18, +0x20,0x04,0x48,0x00,0x02,0xC4,0x5A,0x18,0x28,0x04,0x48,0x00,0x03,0x1F,0x5A,0x18, +0x21,0x04,0x48,0x00,0x02,0xE3,0x5A,0x18,0x22,0x04,0x48,0x00,0x02,0xFA,0x5A,0x18, +0x23,0x04,0x48,0x00,0x03,0x06,0x5A,0x10,0xF3,0x04,0x48,0x00,0x03,0x74,0x48,0x00, +0x03,0x3B,0x5A,0x20,0x02,0x04,0x48,0x00,0x00,0xB3,0x5A,0x18,0x02,0x14,0x2E,0x07, +0xF7,0xA9,0x5A,0x08,0x03,0x04,0x48,0x00,0x01,0x7A,0x2E,0x07,0xF7,0xA9,0x4E,0x02, +0x01,0x6F,0x2E,0x07,0xF7,0xA9,0x5A,0x00,0x01,0x04,0x48,0x00,0x03,0x5C,0x48,0x00, +0x01,0x60,0x5A,0x18,0xF0,0x1D,0x2E,0x07,0xF7,0xA9,0x4E,0x02,0x01,0x41,0x2E,0x07, +0xF7,0xA9,0x5A,0x08,0x01,0x04,0x48,0x00,0x01,0x7F,0x2E,0x07,0xF7,0xA9,0x5A,0x08, +0x02,0x04,0x48,0x00,0x01,0x39,0x2E,0x07,0xF7,0xA9,0x5A,0x00,0xFA,0x04,0x48,0x00, +0x03,0x42,0x84,0x01,0x3E,0x07,0xF2,0x04,0x48,0x00,0x03,0x3D,0x5A,0x18,0xFA,0x10, +0x2E,0x07,0xF7,0xA9,0x5A,0x08,0x03,0x04,0x48,0x00,0x01,0x70,0x2E,0x07,0xF7,0xA9, +0x5A,0x00,0x08,0x04,0x48,0x00,0x03,0x2F,0x48,0x00,0x01,0x6C,0x5A,0x18,0x01,0x14, +0x2E,0x17,0xF7,0xA9,0x5A,0x18,0x01,0x05,0x3C,0x0F,0xFE,0x0F,0x84,0x06,0x2E,0x17, +0xF7,0xA9,0x4E,0x13,0x00,0xB4,0x84,0x01,0x3C,0x0F,0xFE,0x0F,0x49,0xFF,0xEE,0x0B, +0x48,0x00,0x01,0x18,0x5A,0x18,0x0A,0x14,0x2E,0x07,0xF7,0xA9,0x4E,0x02,0x01,0x2E, +0x2E,0x07,0xF7,0xA9,0x5A,0x08,0x01,0x04,0x48,0x00,0x01,0x2E,0x2E,0x07,0xF7,0xA9, +0x5A,0x00,0x02,0x04,0x48,0x00,0x03,0x07,0x48,0x00,0x01,0x2F,0x5A,0x18,0x06,0x0C, +0x2E,0x07,0xF7,0xA9,0x5A,0x08,0x01,0x04,0x3C,0x0F,0xFC,0x1A,0x2E,0x07,0xF7,0xA9, +0x48,0xFF,0xFE,0xF4,0x5A,0x18,0x07,0x0D,0x2E,0x07,0xF7,0xA9,0x96,0x00,0x5A,0x08, +0x01,0x04,0x3C,0x0F,0xFB,0xE4,0x2E,0x07,0xF7,0xA9,0x48,0xFF,0xFE,0xFB,0x5A,0x18, +0x0D,0x04,0x48,0x00,0x02,0xE8,0x5A,0x18,0x60,0x0C,0x2E,0x07,0xF7,0xA9,0x5A,0x08, +0x02,0x04,0x48,0x00,0x02,0xE0,0x2E,0x07,0xF7,0xA9,0x48,0x00,0x02,0xDC,0x5A,0x18, +0xF6,0x0A,0x2E,0x07,0xF7,0xA9,0x5A,0x00,0xF2,0x04,0x48,0x00,0x02,0xD4,0x48,0x00, +0x02,0xA0,0x5A,0x10,0x61,0x04,0x48,0x00,0x02,0xCE,0x2E,0x17,0xF7,0xA9,0x96,0x48, +0xC1,0x08,0x2E,0x17,0xF7,0xA9,0x96,0x48,0x5A,0x10,0x01,0x04,0x48,0x00,0x02,0xC3, +0x44,0x00,0x01,0x00,0x49,0xFF,0xE4,0xCC,0x48,0x00,0x02,0xBD,0x5A,0x20,0x10,0x04, +0x48,0x00,0x02,0xB9,0x5A,0x10,0xF1,0x04,0x48,0x00,0x02,0xA3,0x84,0x21,0x3C,0x1F, +0xFC,0x8A,0x44,0x12,0x02,0x88,0x38,0x21,0x80,0x00,0x38,0x20,0x80,0x08,0x8C,0x01, +0x5A,0x08,0x10,0xFB,0x2E,0x07,0xF7,0xA9,0x2E,0x57,0xF7,0xAA,0x96,0x00,0x96,0x68, +0x40,0x50,0x20,0x08,0x5A,0x00,0x10,0x06,0x5A,0x00,0x1D,0x04,0xFF,0x4F,0xD5,0x02, +0x97,0x69,0x44,0x00,0x08,0x00,0x4C,0x50,0x00,0xF7,0x5C,0xF2,0x88,0x01,0xE8,0x0F, +0x44,0x00,0x04,0x00,0x4C,0x50,0x00,0xDD,0x44,0x00,0x05,0x00,0x4C,0x50,0x00,0xE4, +0x5A,0x51,0x00,0x04,0x48,0x00,0x02,0x87,0x48,0x00,0x00,0xCB,0x44,0x00,0x30,0x00, +0x4C,0x50,0x01,0x04,0x5C,0xF2,0xB0,0x01,0xE8,0x07,0x44,0x00,0x1D,0x00,0x4C,0x50, +0x00,0xE3,0x48,0x00,0x02,0x78,0x44,0x00,0x32,0x00,0x4C,0x50,0x00,0xE5,0x44,0x00, +0x33,0x00,0x4C,0x50,0x00,0xE9,0x48,0x00,0x02,0x6E,0x5A,0x08,0x01,0x1B,0x44,0x0F, +0xFF,0xA7,0x3E,0x07,0xF2,0x30,0x84,0x05,0x3E,0x07,0xF2,0x31,0xFA,0x0C,0x3E,0x07, +0xF2,0x32,0xFA,0x22,0xFA,0x10,0x3E,0x07,0xF2,0x33,0x3E,0x07,0xF2,0x34,0x3E,0x17, +0xF2,0x35,0x3E,0x07,0xF2,0x36,0x3E,0x17,0xF2,0x37,0x84,0x08,0x48,0x00,0x02,0x3C, +0x5A,0x08,0x02,0x30,0x2E,0x07,0xF8,0x3A,0x44,0x1F,0xFF,0x81,0x3E,0x17,0xF2,0x30, +0x3E,0x07,0xF2,0x31,0xC8,0x0D,0x44,0x10,0x00,0x5A,0x3E,0x17,0xF2,0x32,0x3E,0x07, +0xF2,0x33,0xFA,0x1B,0x3E,0x07,0xF2,0x34,0x84,0x05,0x48,0x00,0x02,0x25,0x44,0x0F, +0xFF,0xA7,0x3E,0x07,0xF2,0x32,0x84,0x05,0x3E,0x07,0xF2,0x33,0xFA,0x0C,0x3E,0x07, +0xF2,0x34,0xFA,0x22,0xFA,0x10,0x3E,0x07,0xF2,0x35,0x3E,0x17,0xF2,0x36,0x3E,0x07, +0xF2,0x37,0x3E,0x17,0xF2,0x38,0x3E,0x07,0xF2,0x39,0x84,0x0A,0x48,0x00,0x02,0x0C, +0x5A,0x08,0x05,0x0C,0x84,0x20,0x84,0x01,0x3E,0x07,0xF2,0x30,0x3E,0x17,0xF2,0x31, +0x3E,0x17,0xF2,0x32,0x48,0x00,0x01,0x9F,0x5A,0x08,0x03,0x04,0x84,0x00,0xD5,0x04, +0x5A,0x08,0x04,0x07,0x84,0x02,0x3E,0x07,0xF8,0x3A,0x48,0x00,0x02,0x0C,0x5A,0x08, +0x06,0x07,0x84,0x01,0x3E,0x07,0xF1,0xFC,0x48,0x00,0x02,0x05,0x5A,0x08,0x07,0x07, +0x84,0x01,0x3E,0x07,0xF1,0xFB,0x48,0x00,0x01,0xFE,0x5A,0x08,0x08,0x07,0x84,0x01, +0x3E,0x07,0xF1,0xFA,0x48,0x00,0x01,0xF7,0x5A,0x08,0x09,0x07,0x84,0x01,0x3E,0x07, +0xF1,0xF9,0x48,0x00,0x01,0xF0,0x5A,0x08,0x0A,0x07,0x84,0x01,0x3E,0x07,0xF1,0xF8, +0x48,0x00,0x01,0xE9,0x5A,0x08,0x0B,0x06,0x84,0x01,0x3E,0x07,0xF1,0xF6,0xD5,0x0F, +0x5A,0x08,0x0C,0x09,0x84,0x01,0x3E,0x07,0xF1,0xF7,0x3E,0x07,0xF1,0xF5,0x48,0x00, +0x01,0xDA,0x5A,0x08,0x0D,0x07,0x84,0x01,0x3E,0x07,0xF1,0xF7,0x84,0x00,0xD5,0xF6, +0x5A,0x08,0x14,0x0A,0x84,0x01,0x3E,0x07,0xF8,0x3A,0x84,0x01,0x49,0xFF,0xEE,0xDE, +0x48,0x00,0x01,0xC9,0x5A,0x08,0x29,0x04,0x84,0x01,0xD5,0x04,0x5A,0x08,0x2A,0x07, +0x84,0x02,0x3E,0x07,0xF0,0x61,0x48,0x00,0x01,0xBE,0x5A,0x08,0x15,0x08,0x44,0x00, +0x00,0x50,0x3E,0x07,0xF0,0x60,0x84,0x01,0xD5,0x08,0x5A,0x08,0x18,0x0B,0x44,0x00, +0x00,0x50,0x3E,0x07,0xF0,0x60,0x84,0x04,0x3E,0x07,0xF8,0x39,0x48,0x00,0x01,0xAB, +0x5A,0x08,0x19,0x08,0x44,0x00,0x00,0x50,0x3E,0x07,0xF0,0x60,0x84,0x05,0xD5,0xF5, +0x5A,0x08,0x1D,0x08,0x44,0x00,0x00,0x50,0x3E,0x07,0xF0,0x60,0x84,0x09,0xD5,0xED, +0x5A,0x08,0x2E,0x08,0x44,0x00,0x00,0x50,0x3E,0x07,0xF0,0x60,0x84,0x0F,0xD5,0xE5, +0x5A,0x08,0x2F,0x08,0x44,0x00,0x00,0x50,0x3E,0x07,0xF0,0x60,0xFA,0x00,0xD5,0xDD, +0x5A,0x08,0x31,0x08,0x44,0x00,0x00,0x50,0x3E,0x07,0xF0,0x60,0xFA,0x02,0xD5,0xD5, +0x5A,0x00,0x32,0x04,0x48,0x00,0x00,0xA1,0x84,0x11,0x3E,0x07,0xF2,0x30,0x44,0x00, +0x00,0x30,0x3E,0x07,0xF2,0x31,0x84,0x00,0x3E,0x07,0xF2,0x32,0x2E,0x07,0xF0,0xEC, +0x96,0x00,0xC0,0x30,0x46,0x61,0xFF,0xF9,0x50,0x03,0x05,0x27,0x49,0xFF,0xEB,0x6A, +0x50,0x03,0x04,0x87,0x49,0xFF,0xEB,0x66,0x46,0x01,0xFF,0xFF,0x50,0x00,0x0F,0x0E, +0x49,0xFF,0xEB,0x60,0x46,0x02,0xF4,0x50,0x50,0x00,0x01,0x00,0x44,0x10,0x11,0x11, +0x49,0xFF,0xF4,0x0D,0x46,0x02,0xF4,0x60,0x44,0x10,0x22,0x22,0x50,0x00,0x01,0x00, +0x49,0xFF,0xF4,0x05,0x50,0x03,0x05,0x00,0x49,0xFF,0xEB,0x4C,0x50,0x03,0x04,0x00, +0x49,0xFF,0xEB,0x48,0x2E,0x07,0xF2,0x14,0x3E,0x07,0xF2,0x33,0x2E,0x07,0xF2,0x10, +0xD5,0x04,0x84,0x2A,0x3E,0x17,0xF2,0x33,0x3E,0x07,0xF2,0x34,0x84,0x03,0x3E,0x07, +0xF2,0x35,0x84,0x3F,0x84,0x00,0x84,0x82,0x84,0x50,0x3E,0x47,0xF2,0x36,0x44,0x5F, +0xFF,0x90,0x3E,0x17,0xF2,0x37,0x84,0x6A,0x3E,0x17,0xF2,0x38,0x44,0x60,0x00,0x64, +0x3E,0x07,0xF2,0x39,0x3E,0x27,0xF2,0x3A,0x84,0x41,0x3E,0x37,0xF2,0x3B,0x3E,0x07, +0xF2,0x3C,0x3E,0x67,0xF2,0x3D,0x3E,0x27,0xF2,0x3E,0x3E,0x57,0xF2,0x3F,0x3E,0x07, +0xF2,0x40,0x3E,0x67,0xF2,0x41,0x3E,0x27,0xF2,0x42,0x3E,0x57,0xF2,0x43,0x44,0x5F, +0xFF,0xC0,0x3E,0x27,0xF2,0x44,0x3E,0x57,0xF2,0x45,0x3E,0x47,0xF2,0x46,0x44,0x4F, +0xFF,0x80,0x3E,0x47,0xF2,0x47,0x84,0x8F,0x3E,0x07,0xF2,0x48,0x3E,0x07,0xF2,0x49, +0x3E,0x07,0xF2,0x4A,0x3E,0x27,0xF2,0x4B,0x3E,0x47,0xF2,0x4C,0x84,0x84,0x3E,0x47, +0xF2,0x4D,0xFA,0x9D,0x3E,0x47,0xF2,0x4E,0x3E,0x37,0xF2,0x4F,0x3E,0x27,0xF2,0x50, +0x84,0x4C,0x3E,0x27,0xF2,0x51,0x84,0x46,0x3E,0x27,0xF2,0x52,0x3E,0x07,0xF2,0x53, +0x3E,0x17,0xF2,0x54,0xFA,0x18,0x3E,0x17,0xF2,0x55,0x3E,0x17,0xF2,0x56,0x3E,0x17, +0xF2,0x57,0x48,0x00,0x00,0xC9,0x5A,0x08,0x33,0x12,0x84,0x0F,0x3E,0x07,0xF2,0x30, +0x84,0x01,0x3E,0x07,0xF2,0x31,0x44,0x04,0x50,0x28,0xB4,0x00,0x92,0x01,0x96,0x06, +0x3E,0x07,0xF2,0x32,0x84,0x03,0x48,0x00,0x00,0xB7,0x5A,0x08,0x34,0x06,0x49,0xFF, +0xF9,0x51,0x48,0x00,0x00,0xC8,0x5A,0x08,0x22,0x27,0x84,0x00,0xFA,0x30,0x84,0x7F, +0x84,0x47,0x3E,0x17,0xF2,0x30,0x3E,0x07,0xF2,0x31,0x3E,0x07,0xF2,0x32,0x3E,0x37, +0xF2,0x33,0x3E,0x27,0xF2,0x34,0x3E,0x37,0xF2,0x35,0x3E,0x27,0xF2,0x36,0x84,0x6A, +0xFA,0x42,0x3E,0x27,0xF2,0x37,0x3E,0x17,0xF2,0x38,0x3E,0x37,0xF2,0x39,0x3E,0x07, +0xF2,0x3A,0x3E,0x27,0xF2,0x3B,0x3E,0x17,0xF2,0x3C,0x3E,0x07,0xF2,0x3D,0x84,0x0E, +0x48,0x00,0x00,0x8A,0x5A,0x08,0x23,0x1B,0xFA,0x11,0x3E,0x07,0xF2,0x30,0x44,0x20, +0x00,0x69,0x84,0x00,0x84,0x26,0x3E,0x07,0xF2,0x31,0x3E,0x27,0xF2,0x32,0x3E,0x17, +0xF2,0x33,0x3E,0x07,0xF2,0x34,0x3E,0x07,0xF2,0x35,0x3E,0x27,0xF2,0x36,0x3E,0x17, +0xF2,0x37,0x3E,0x07,0xF2,0x38,0x84,0x09,0xD5,0x6E,0x5A,0x08,0x24,0x10,0xFA,0x12, +0x3E,0x07,0xF2,0x30,0x84,0x05,0x3E,0x07,0xF2,0x31,0x84,0x04,0x3E,0x07,0xF2,0x32, +0x84,0x00,0x3E,0x07,0xF2,0x33,0x84,0x04,0xD5,0x5E,0x5A,0x08,0x25,0x0D,0xFA,0x13, +0x3E,0x07,0xF2,0x30,0x84,0x01,0x3E,0x07,0xF2,0x31,0x84,0x00,0x3E,0x07,0xF2,0x32, +0x84,0x05,0xD5,0xF0,0x5A,0x08,0x26,0x2E,0xFA,0x18,0x3E,0x07,0xF2,0x30,0x84,0x46, +0x84,0x00,0x84,0x2C,0x84,0x62,0x3E,0x37,0xF2,0x31,0x3E,0x07,0xF2,0x32,0x3E,0x27, +0xF2,0x33,0x3E,0x17,0xF2,0x34,0x3E,0x37,0xF2,0x35,0x3E,0x07,0xF2,0x36,0x3E,0x27, +0xF2,0x37,0x3E,0x17,0xF2,0x38,0x84,0x44,0x84,0x21,0x3E,0x17,0xF2,0x39,0x3E,0x07, +0xF2,0x3A,0x3E,0x27,0xF2,0x3B,0x3E,0x07,0xF2,0x3C,0x3E,0x17,0xF2,0x3D,0x84,0x23, +0x3E,0x07,0xF2,0x3E,0x3E,0x17,0xF2,0x3F,0x3E,0x07,0xF2,0x40,0xFA,0x01,0xD5,0x23, +0x5A,0x08,0x27,0x05,0x49,0xFF,0xFB,0xAF,0xD5,0x35,0x5A,0x08,0x2D,0x05,0x49,0xFF, +0xFB,0x79,0xD5,0x30,0x5A,0x08,0x28,0x2F,0x84,0x1E,0x3E,0x07,0xF2,0x30,0x84,0x01, +0x3E,0x07,0xF2,0x31,0x84,0x02,0x3E,0x07,0xF2,0x32,0x84,0x03,0x3E,0x07,0xF2,0x33, +0x84,0x04,0x3E,0x07,0xF2,0x34,0x84,0x05,0x3E,0x07,0xF2,0x35,0x84,0x06,0x3E,0x07, +0xF2,0x36,0x84,0x07,0x49,0xFF,0xFA,0x49,0x49,0xFF,0xEE,0xF2,0xD5,0x13,0x5A,0x18, +0x0F,0x12,0x2E,0x07,0xF7,0xA9,0x5A,0x08,0x01,0x04,0x48,0xFF,0xFF,0x30,0x2E,0x07, +0xF7,0xA9,0x5A,0x08,0x02,0x08,0x2E,0x07,0xF7,0xAB,0x3E,0x07,0xF2,0x0C,0x48,0xFF, +0xFF,0x38,0xFC,0x80,0xFC,0x00,0x2E,0x07,0xF0,0x60,0x5A,0x08,0x52,0x06,0x44,0x00, +0x00,0x51,0x3E,0x07,0xF0,0x60,0x2E,0x07,0xF8,0x39,0x5A,0x08,0x01,0x08,0x84,0xC0, +0x3E,0x67,0xF8,0x38,0x49,0x00,0x09,0x75,0xD5,0x2A,0x5A,0x08,0x04,0x08,0x84,0xC0, +0x3E,0x67,0xF8,0x38,0x49,0x00,0x0B,0x8E,0xD5,0x22,0x5A,0x08,0x05,0x08,0x84,0xC0, +0x3E,0x67,0xF8,0x38,0x49,0x00,0x0F,0x68,0xD5,0x1A,0x5A,0x00,0x09,0xFA,0x5A,0x08, +0x0F,0x0E,0x2E,0x07,0xF7,0xAA,0x84,0xC0,0x2E,0x17,0xF7,0xAB,0x2E,0x27,0xF7,0xAC, +0x3E,0x67,0xF8,0x38,0x49,0x00,0x10,0xDD,0xD5,0x0A,0x54,0x00,0x00,0xFD,0x5A,0x08, +0x10,0x09,0x84,0xC0,0x3E,0x67,0xF8,0x38,0x49,0x00,0x12,0x22,0x3E,0x67,0xF8,0x39, +0xFC,0x80,0xFC,0x00,0x44,0x00,0x00,0x64,0x49,0xFF,0xDE,0x85,0x44,0x00,0x0D,0xE9, +0x49,0xFF,0xDE,0x8C,0x44,0x00,0x09,0xE9,0x49,0xFF,0xDE,0x93,0x44,0x00,0x01,0x90, +0x49,0xFF,0xDE,0x9A,0xFC,0x80,0xFC,0x40,0x51,0xFF,0xFA,0xE0,0x84,0x20,0xFA,0x50, +0xB0,0x10,0x49,0x00,0x1B,0xEB,0xB1,0x98,0x44,0x00,0x82,0xC8,0x80,0x26,0x3A,0x20, +0x14,0x04,0x3A,0x20,0x94,0x24,0x3A,0x20,0x14,0x00,0xB1,0xE0,0x44,0x00,0x82,0xE8, +0x3A,0x20,0x94,0x20,0x80,0x27,0x3A,0x20,0x14,0x04,0x3A,0x20,0x94,0x24,0x3A,0x20, +0x14,0x00,0x3A,0x20,0x94,0x20,0x44,0x10,0x83,0x08,0xB0,0x0C,0x3A,0x20,0x94,0x00, +0x44,0x10,0x83,0x18,0x3A,0x20,0x14,0x20,0xB0,0x07,0x3A,0x20,0x8C,0x00,0x3A,0x20, +0x0C,0x20,0x44,0x00,0x83,0x20,0x50,0x8F,0x80,0x24,0x3A,0x20,0x10,0x00,0x3A,0x24, +0x10,0x20,0x85,0x40,0x39,0xC4,0x28,0x00,0x40,0x0E,0x00,0x13,0xC0,0x13,0x5A,0x00, +0x03,0x12,0xB0,0x10,0x38,0x00,0x72,0x02,0xC8,0x0D,0x38,0x03,0x72,0x02,0x40,0x90, +0x04,0x08,0x49,0xFF,0xED,0xF7,0x49,0xFF,0xF1,0x25,0xB0,0x50,0x88,0x09,0x38,0x00, +0xF2,0x0A,0x8D,0x41,0x5A,0xA8,0x0C,0xE8,0x84,0xC0,0xB0,0x10,0x38,0x00,0x1A,0x02, +0xF0,0x81,0xC8,0x07,0x8C,0xC1,0x5A,0x68,0x08,0xFA,0x51,0xFF,0x85,0x20,0xFC,0xC0, +0xB0,0x07,0x87,0x80,0x38,0xA3,0x00,0x00,0x40,0x95,0x04,0x08,0x40,0x04,0x80,0x13, +0xF0,0x82,0x94,0x01,0xF0,0x83,0x40,0xFE,0x24,0x07,0xE8,0xED,0x4F,0xC3,0x00,0x13, +0x38,0x83,0x9A,0x01,0x49,0xFF,0xDD,0x25,0x44,0x20,0x01,0x20,0x80,0x28,0x42,0x10, +0x08,0x73,0xB0,0x0C,0x96,0x49,0x38,0x20,0x19,0x01,0xB0,0x28,0x92,0x42,0x49,0xFF, +0xDD,0x7F,0x4D,0xC5,0x40,0x14,0x38,0x83,0x9A,0x01,0x49,0xFF,0xDD,0x12,0x44,0x20, +0x01,0x20,0x50,0x14,0x02,0x40,0x42,0x10,0x08,0x73,0xB0,0x0C,0x96,0x49,0x38,0x20, +0x19,0x01,0xB0,0x28,0x92,0x42,0x49,0xFF,0xDD,0x6B,0x40,0x14,0xF0,0x01,0x8E,0x21, +0x94,0x4C,0x40,0x0E,0x00,0x13,0x97,0x49,0x40,0x1E,0x28,0x06,0x94,0xC4,0x84,0x40, +0xF1,0x84,0x50,0x8F,0x80,0xA0,0xF4,0x04,0x40,0x11,0x04,0x09,0xC4,0x03,0x88,0x23, +0xD5,0x03,0x88,0x25,0x96,0x49,0x38,0x44,0x06,0x02,0x54,0xF2,0x00,0x1F,0x5A,0xF0, +0x1F,0x1A,0x40,0xF2,0x18,0x09,0x54,0xF7,0x80,0x1F,0x5A,0xF0,0x1F,0x14,0x04,0xFF, +0x80,0x01,0x39,0xE7,0x81,0x01,0x50,0xFF,0x5D,0xEB,0x5C,0xF7,0x82,0x13,0xE9,0x06, +0x50,0xFF,0x64,0x27,0x5C,0xF7,0x82,0x13,0xE8,0x05,0x50,0x42,0x00,0x41,0x38,0x44, +0x06,0x0A,0x38,0x44,0x06,0x02,0x40,0xF2,0x48,0x09,0x54,0xF7,0x80,0x1F,0x5A,0xF0, +0x1F,0x21,0x40,0xF2,0x30,0x09,0x54,0xF7,0x80,0x1F,0x5A,0xF0,0x1F,0x1B,0x04,0xFF, +0x80,0x02,0x05,0xEF,0x80,0x01,0x40,0xF0,0x3C,0x00,0x40,0xF7,0x80,0x13,0x39,0xEF, +0x3D,0x01,0x50,0xFF,0x5D,0xEB,0x5C,0xF7,0x82,0x13,0xE9,0x06,0x50,0xFF,0x64,0x27, +0x5C,0xF7,0x82,0x13,0xE8,0x06,0x44,0xF4,0x10,0x00,0x88,0x8F,0x38,0x44,0x06,0x0A, +0xF1,0x03,0x8C,0x42,0x88,0x01,0x96,0x90,0x96,0x01,0x5A,0x28,0x20,0xAE,0x50,0x5E, +0x00,0x01,0x4C,0x55,0x40,0x16,0x38,0x13,0x9A,0x01,0xF5,0x85,0xF1,0x84,0x49,0xFF, +0xDC,0x98,0x44,0x20,0x01,0x20,0xF1,0x04,0x42,0x10,0x08,0x73,0xB0,0x0C,0x96,0x49, +0x38,0x20,0x19,0x01,0x80,0x08,0x92,0x42,0x49,0xFF,0xDD,0x0E,0xF5,0x05,0x4C,0x54, +0xC0,0x16,0x38,0x13,0x9A,0x01,0xF1,0x84,0x49,0xFF,0xDC,0x83,0xF1,0x04,0x44,0x20, +0x01,0x20,0x50,0x10,0x82,0x40,0x42,0x10,0x08,0x73,0xB0,0x0C,0x96,0x49,0x38,0x20, +0x19,0x01,0x80,0x08,0x92,0x42,0x49,0xFF,0xDC,0xF7,0x50,0x5E,0x00,0x01,0x55,0xC2, +0x80,0xFF,0x48,0xFF,0xFF,0x42,0xFC,0x49,0x44,0x10,0x83,0x2C,0xB1,0x86,0x80,0x06, +0x3A,0x20,0x94,0x04,0x3A,0x20,0x14,0x24,0x3A,0x20,0x8C,0x00,0x3A,0x20,0x0C,0x20, +0x84,0x20,0xB0,0x0C,0xFA,0x48,0x49,0x00,0x1A,0xB9,0x84,0x21,0x10,0x1F,0x80,0x31, +0x10,0x1F,0x80,0x3D,0x84,0x02,0x44,0x10,0x83,0x44,0x10,0x0F,0x80,0x32,0x10,0x0F, +0x80,0x3E,0x80,0x01,0x80,0x9F,0x3A,0x20,0x0C,0x04,0x3A,0x22,0x0C,0x24,0xB1,0xC3, +0x3A,0x20,0x8C,0x04,0xA4,0x00,0x80,0x27,0xAC,0x20,0x3A,0x20,0x8C,0x24,0xAC,0x08, +0x80,0x06,0x49,0xFF,0xE2,0xC9,0xB0,0x0C,0x49,0xFF,0xE3,0x19,0x80,0x1F,0x49,0xFF, +0xE2,0xDC,0x80,0x07,0x81,0x3F,0x49,0xFF,0xE3,0x2B,0xFC,0xC9,0xFC,0x26,0x44,0x10, +0x83,0x50,0x80,0xDF,0x3A,0x20,0x94,0x04,0x3A,0x23,0x14,0x24,0x3A,0x20,0x94,0x04, +0x3A,0x23,0x14,0x24,0x3A,0x20,0x94,0x00,0x80,0x1F,0x80,0xE6,0x3A,0x23,0x14,0x20, +0x49,0xFF,0xE2,0x74,0xFC,0xA6,0xFC,0x2C,0x44,0x10,0x83,0x80,0xB1,0x8C,0x80,0x06, +0x3A,0x20,0x94,0x04,0x3A,0x20,0x14,0x24,0x3A,0x20,0x94,0x04,0x3A,0x20,0x14,0x24, +0x3A,0x20,0x94,0x00,0x3A,0x20,0x14,0x20,0x84,0x20,0xB0,0x06,0xFA,0x48,0x49,0x00, +0x1A,0x65,0xB1,0xC1,0x44,0x10,0x83,0xB0,0x80,0x07,0x3A,0x20,0x94,0x04,0x3A,0x20, +0x14,0x24,0xB4,0x21,0xB6,0x20,0x80,0x06,0x49,0xFF,0xE2,0x50,0xB0,0x06,0x49,0xFF, +0xE2,0x6A,0x80,0x07,0x49,0xFF,0xE2,0x54,0xFC,0xAC,0xFC,0x01,0x44,0x10,0x83,0xC4, +0x80,0x1F,0x3A,0x20,0x8C,0x00,0x3A,0x2F,0x8C,0x20,0x49,0xFF,0xE2,0x53,0xFC,0x81, +0xFC,0x00,0xC8,0x04,0x49,0xFF,0xFE,0x3F,0xFC,0x80,0x44,0x00,0x00,0x64,0x49,0xFF, +0xDC,0xC2,0x44,0x00,0x13,0xA6,0x49,0xFF,0xDC,0xC9,0x44,0x00,0x0F,0xA6,0x49,0xFF, +0xDC,0xD0,0x44,0x00,0x01,0x90,0x49,0xFF,0xDC,0xD7,0xFC,0x80,0xFC,0x00,0xE6,0x06, +0xE8,0x06,0x44,0x10,0x84,0x64,0x38,0x00,0x80,0x00,0xD5,0x02,0x84,0x00,0x49,0xFF, +0xDC,0xE1,0xFC,0x80,0xFC,0x00,0xE6,0x06,0xE8,0x06,0x44,0x10,0x84,0x5C,0x38,0x00, +0x80,0x00,0xD5,0x02,0x84,0x00,0x8C,0x01,0x96,0x00,0x49,0xFF,0xDC,0xC8,0xFC,0x80, +0xFC,0x00,0x5A,0x00,0x01,0x0E,0xC0,0x04,0x5A,0x00,0x02,0x1C,0xFC,0x80,0x84,0x00, +0x49,0xFF,0xE8,0xB9,0x2E,0x07,0xF8,0x43,0x49,0xFF,0xFF,0xC4,0xD5,0x2A,0x49,0xFF, +0xE8,0xB2,0x44,0x00,0x00,0x64,0x49,0xFF,0xDC,0x86,0x44,0x00,0x17,0x8E,0x49,0xFF, +0xDC,0x8D,0x44,0x00,0x17,0x8E,0x49,0xFF,0xDC,0x94,0x44,0x00,0x01,0x90,0xD5,0x17, +0x84,0x01,0x49,0xFF,0xE8,0xA0,0x44,0x00,0x03,0xE8,0x49,0xFF,0xDC,0x74,0x44,0x00, +0x27,0x10,0x49,0xFF,0xDC,0x86,0x46,0x20,0x00,0x81,0x46,0x12,0x71,0x00,0x83,0x82, +0xB8,0x10,0x96,0x01,0xFE,0x0F,0xB8,0x90,0x44,0x00,0x27,0x10,0x49,0xFF,0xDC,0x84, +0x84,0x00,0x49,0xFF,0xFF,0xB9,0xFC,0x80,0xE6,0x04,0xE8,0x24,0xFC,0x00,0x44,0xF0, +0x4B,0x1C,0x38,0x07,0x80,0x00,0x40,0xF0,0x3C,0x00,0xDD,0x0F,0x04,0x14,0x1E,0x22, +0x84,0x00,0x49,0xFF,0xDF,0x6B,0x84,0x01,0x49,0xFF,0xDF,0x56,0x84,0x01,0xD5,0x0F, +0x84,0x00,0x49,0xFF,0xDF,0x63,0x84,0x01,0xD5,0x07,0x84,0x01,0xD5,0x02,0x84,0x00, +0x49,0xFF,0xDF,0x5C,0x84,0x00,0x49,0xFF,0xDF,0x47,0x84,0x00,0x49,0xFF,0xDF,0x4D, +0xFC,0x80,0xDD,0x9E,0xFC,0x00,0x49,0xFF,0xEB,0xFD,0x80,0x60,0x3E,0x00,0x0B,0xB0, +0x44,0x12,0x13,0x20,0x44,0x02,0x17,0xA0,0x44,0x20,0x02,0x40,0x2E,0x47,0xF8,0x42, +0x49,0xFF,0xF3,0x09,0xFC,0x80,0x44,0x02,0x17,0xA0,0xDD,0x9E,0x44,0x02,0x13,0x20, +0xDD,0x9E,0x44,0x02,0x09,0x18,0xDD,0x9E,0x44,0x02,0x08,0xB4,0xDD,0x9E,0xFC,0x00, +0xC8,0x05,0x49,0xFF,0xDC,0x73,0x84,0xC3,0xD5,0x05,0x84,0x01,0x49,0xFF,0xDC,0x6E, +0x84,0xC2,0x84,0x01,0x49,0xFF,0xDC,0x5C,0x9E,0x32,0x96,0x00,0x49,0xFF,0xEA,0xB0, +0xFC,0x80,0xFC,0x00,0x84,0x00,0x80,0x20,0x49,0xFF,0xDE,0x6A,0x84,0x00,0x84,0x21, +0x49,0xFF,0xDE,0x66,0xFC,0x80,0xFC,0x00,0x84,0x01,0x84,0x20,0x49,0xFF,0xDE,0x60, +0x84,0x01,0x80,0x20,0x49,0xFF,0xDE,0x5C,0xFC,0x80,0xFC,0x49,0x80,0x20,0x44,0x00, +0x83,0xCC,0x50,0xAF,0x80,0x0C,0x3A,0x20,0x10,0x00,0x44,0x00,0x83,0xD8,0x3A,0x2F, +0x90,0x20,0x3A,0x20,0x10,0x00,0x3A,0x25,0x10,0x20,0x44,0x20,0x83,0xE4,0xB0,0x06, +0x3A,0x21,0x10,0x00,0x3A,0x20,0x10,0x20,0x44,0x20,0x83,0xF0,0x50,0x9F,0x80,0x24, +0x3A,0x21,0x10,0x00,0x3A,0x24,0x90,0x20,0x44,0x20,0x83,0x20,0xB1,0xCC,0x3A,0x21, +0x10,0x00,0x3A,0x23,0x90,0x20,0x44,0x20,0x83,0xFC,0xB1,0x8F,0x3A,0x21,0x10,0x00, +0x80,0xBF,0x3A,0x23,0x10,0x20,0xC9,0x03,0x80,0x05,0xD5,0x12,0x5A,0x18,0x01,0x04, +0x80,0x0A,0xD5,0x0E,0x5A,0x10,0x02,0x0D,0x5A,0x18,0x03,0x04,0x80,0x09,0xD5,0x08, +0x5A,0x18,0x04,0x04,0x80,0x07,0xD5,0x04,0x5A,0x18,0x05,0x06,0x80,0x06,0x49,0xFF, +0xDB,0x70,0xFC,0xC9,0x5A,0x10,0x06,0xEA,0xFC,0xC9,0xFC,0x03,0x84,0x20,0x84,0x4C, +0x80,0xC0,0x80,0x1F,0x49,0x00,0x19,0x22,0x44,0x10,0x84,0x08,0xB0,0x03,0x3A,0x20, +0x90,0x00,0x3A,0x20,0x10,0x20,0xCE,0x03,0x80,0x1F,0xD5,0x03,0x5A,0x68,0x01,0x04, +0x49,0xFF,0xDB,0x6B,0xFC,0x83,0xFC,0x00,0x84,0x00,0x49,0xFF,0xFF,0xA0,0x84,0x00, +0x49,0xFF,0xFF,0xE5,0x84,0x00,0x49,0xFF,0xDE,0x51,0x84,0x00,0x49,0xFF,0xDE,0x80, +0x49,0xFF,0xFE,0x3B,0x49,0xFF,0xFE,0x89,0x49,0xFF,0xFE,0xB1,0x84,0x00,0x49,0xFF, +0xE4,0x6B,0x44,0x00,0x02,0x40,0x49,0xFF,0xE4,0x7D,0x44,0x00,0x02,0x40,0x49,0xFF, +0xE4,0x6E,0x84,0x09,0x49,0xFF,0xE4,0x81,0x84,0x03,0x49,0xFF,0xE4,0x87,0x44,0x62, +0x02,0x0C,0x44,0x10,0x00,0xF0,0x84,0x00,0x49,0xFF,0xE3,0x0F,0x49,0xFF,0xF2,0xBC, +0x38,0x13,0x01,0x01,0x84,0x00,0x49,0xFF,0xE1,0xB5,0x44,0x10,0x00,0xF0,0x84,0x02, +0x49,0xFF,0xE3,0x03,0x49,0xFF,0xF2,0xB0,0x38,0x13,0x01,0x01,0x84,0x02,0x49,0xFF, +0xE1,0xA9,0x44,0x10,0x00,0xF0,0x84,0x05,0x49,0xFF,0xE2,0xF7,0x49,0xFF,0xF2,0xA4, +0x38,0x13,0x01,0x01,0x46,0x60,0x00,0x81,0x84,0x03,0x49,0xFF,0xE1,0x9B,0x49,0xFF, +0xDF,0x35,0x04,0x03,0x03,0x91,0x92,0x0A,0x40,0x00,0x28,0x08,0x58,0x00,0x01,0xC0, +0x14,0x03,0x03,0x91,0x49,0xFF,0xDF,0x23,0x04,0x03,0x00,0x2C,0x46,0x1F,0xFC,0x0F, +0x92,0x06,0x94,0x06,0x58,0x00,0x00,0x2D,0x14,0x03,0x00,0x2C,0x04,0x03,0x00,0x2C, +0x50,0x10,0x8F,0xFF,0x46,0x20,0x02,0xD0,0xFE,0x0E,0xFE,0x17,0x14,0x03,0x00,0x2C, +0x04,0x03,0x00,0x2D,0x92,0x06,0x94,0x06,0x58,0x00,0x00,0x0A,0x14,0x03,0x00,0x2D, +0x04,0x03,0x00,0x2D,0xFE,0x46,0x46,0x00,0x00,0xA0,0xFE,0x47,0x14,0x13,0x00,0x2D, +0x04,0x13,0x00,0x2D,0x46,0x0C,0x0F,0xFF,0x50,0x00,0x0F,0xFF,0xFE,0x0E,0x46,0x10, +0xA0,0x00,0xFE,0x0F,0x14,0x03,0x00,0x2D,0x04,0x03,0x00,0x2F,0x92,0x06,0x94,0x06, +0x58,0x00,0x00,0x04,0x14,0x03,0x00,0x2F,0x44,0x00,0x02,0x80,0x49,0xFF,0xE2,0x94, +0x84,0x00,0x49,0xFF,0xFE,0xE6,0x49,0xFF,0xFC,0x76,0x49,0xFF,0xE2,0x83,0x3E,0x07, +0xF8,0x43,0xFC,0x80,0xFC,0x00,0x49,0xFF,0xE2,0x7D,0xFC,0x80,0x2E,0x07,0xF8,0x43, +0xDD,0x9E,0x2E,0x07,0xF8,0x42,0xDD,0x9E,0x2E,0x07,0xF8,0x41,0xDD,0x9E,0xFC,0x00, +0x80,0xC0,0x49,0xFF,0xE3,0x78,0x80,0x06,0x49,0xFF,0xD9,0xF7,0x84,0x00,0x84,0x2C, +0x5A,0x68,0x01,0x1F,0x49,0xFF,0xE2,0xD5,0x84,0x02,0x84,0x2C,0x49,0xFF,0xE2,0xD1, +0x84,0x03,0x84,0x2A,0x49,0xFF,0xE2,0xCD,0x84,0x05,0x84,0x2C,0x49,0xFF,0xE2,0xC9, +0x84,0x07,0x84,0x2C,0x49,0xFF,0xE2,0xC5,0x84,0x00,0x80,0x20,0x49,0xFF,0xD9,0x7C, +0x84,0x00,0x84,0x22,0x49,0xFF,0xD9,0x78,0x44,0x02,0x12,0x18,0xD5,0x41,0x49,0xFF, +0xE2,0xB8,0x84,0x01,0x84,0x2C,0x49,0xFF,0xE2,0xB4,0x84,0x02,0x84,0x2C,0x49,0xFF, +0xE2,0xB0,0x84,0x03,0x84,0x2A,0x49,0xFF,0xE2,0xAC,0x84,0x04,0x84,0x2C,0x49,0xFF, +0xE2,0xA8,0x84,0x05,0x84,0x2C,0x49,0xFF,0xE2,0xA4,0x84,0x06,0x84,0x2C,0x49,0xFF, +0xE2,0xA0,0x84,0x07,0x84,0x2C,0x49,0xFF,0xE2,0x9C,0x84,0x01,0x84,0x20,0x49,0xFF, +0xD9,0x53,0x84,0x01,0x80,0x20,0x49,0xFF,0xD9,0x4F,0x84,0x01,0x84,0x22,0x49,0xFF, +0xD9,0x4B,0x84,0x00,0x84,0x23,0x49,0xFF,0xD9,0x47,0x84,0x01,0x84,0x24,0x49,0xFF, +0xD9,0x43,0x84,0x01,0x84,0x25,0x49,0xFF,0xD9,0x3F,0x84,0x01,0x84,0x26,0x49,0xFF, +0xD9,0x3B,0x84,0x01,0x84,0x27,0x49,0xFF,0xD9,0x37,0x44,0x02,0x12,0x9C,0x44,0x10, +0x00,0x42,0x49,0xFF,0xDF,0x36,0xFC,0x80,0xFC,0x21,0x84,0xC2,0xF0,0x81,0x80,0xE2, +0x80,0x01,0x5A,0x10,0x01,0x03,0x84,0xC1,0x49,0xFF,0xFF,0x8B,0xCF,0x0C,0x84,0x03, +0x49,0xFF,0xDB,0xDC,0x84,0x03,0x49,0xFF,0xDF,0x68,0xF0,0x01,0x80,0x26,0x49,0xFF, +0xF0,0x30,0xFC,0xA1,0x84,0x02,0x49,0xFF,0xDB,0xD1,0x84,0x02,0x49,0xFF,0xDF,0x5D, +0xF0,0x01,0x80,0x26,0x84,0x40,0x49,0xFF,0xEF,0xB3,0xFC,0xA1,0xFC,0x00,0x84,0x00, +0x49,0xFF,0xFD,0xA6,0x84,0x00,0x84,0x20,0x3E,0x07,0xF8,0x42,0x3E,0x07,0xF8,0x41, +0x80,0x41,0x2E,0x07,0xF8,0x43,0x49,0xFF,0xFF,0xD1,0xFC,0x80,0xFC,0x20,0x44,0x14, +0x80,0x90,0x44,0x0F,0xFF,0xEF,0xB4,0x41,0x46,0x70,0x00,0x81,0xFE,0x16,0xB6,0x01, +0x44,0x04,0x80,0x10,0xFA,0x20,0xAE,0x40,0xFA,0xC2,0x50,0x73,0x83,0xD4,0xB4,0x07, +0x92,0x0B,0x96,0x27,0xC0,0x07,0x8E,0xC1,0xC6,0x05,0x84,0x01,0x49,0xFF,0xE6,0xFB, +0xD5,0xF7,0x44,0x04,0x80,0x10,0xFA,0x20,0xAE,0x40,0x44,0x14,0x80,0x90,0xB4,0x01, +0x58,0x00,0x00,0x10,0xB6,0x01,0xFC,0xA0,0xFC,0x20,0x49,0xFF,0xF3,0xD6,0xC8,0x47, +0x2E,0x07,0xF1,0xF3,0x5A,0x00,0x01,0x44,0x44,0x64,0x80,0x10,0x44,0x00,0x00,0x40, +0xAE,0x30,0x44,0x74,0x50,0x28,0xB4,0x06,0x92,0x06,0x96,0x06,0x5A,0x00,0x01,0x07, +0x44,0x74,0x80,0x10,0x44,0x64,0x50,0x28,0xD5,0x25,0x2E,0x07,0xF0,0xEB,0xC8,0x0E, +0xB4,0x07,0x92,0x03,0x96,0x06,0xC8,0x0A,0xB4,0x07,0x92,0x01,0x96,0x06,0xC0,0x06, +0x3C,0x0D,0xFE,0x0F,0x5A,0x08,0x01,0xE9,0xD5,0xEC,0x49,0xFF,0xE7,0x5A,0x5A,0x08, +0x02,0xF9,0xD5,0xE7,0x2E,0x07,0xF0,0xEB,0xC8,0x15,0xB4,0x06,0x92,0x03,0x96,0x06, +0xC8,0x11,0xB4,0x06,0x92,0x01,0x96,0x06,0xC0,0x0D,0x3C,0x0D,0xFE,0x0F,0x5A,0x00, +0x01,0x06,0xB4,0x07,0x92,0x06,0x96,0x06,0xC0,0xEE,0x84,0x01,0x49,0xFF,0xE6,0xA2, +0xFC,0xA0,0x49,0xFF,0xE7,0x3E,0x5A,0x08,0x02,0xF2,0xD5,0xF8,0x49,0xFF,0xF3,0x8D, +0x5A,0x08,0x01,0x09,0x44,0x14,0x50,0x28,0xB4,0x01,0x92,0x01,0x96,0x06,0x5A,0x00, +0x01,0xFD,0xFC,0xA0,0xFC,0x01,0x5A,0x08,0x01,0x06,0xF0,0x81,0x49,0xFF,0xFF,0xA6, +0xF0,0x01,0x49,0xFF,0xDA,0x0A,0xFC,0x81,0xFC,0x20,0x84,0xE0,0x80,0xC0,0x84,0x00, +0x49,0xFF,0xDA,0x03,0x49,0xFF,0xFF,0x74,0x49,0xFF,0xEC,0xBF,0x3E,0x77,0xF0,0xFB, +0x49,0xFF,0xE9,0x99,0x3E,0x77,0xF0,0xFA,0x5A,0x68,0x01,0x05,0x80,0x06,0x49,0xFF, +0xFF,0xE3,0xFC,0xA0,0xFC,0x00,0x84,0x01,0x49,0xFF,0xFF,0xE8,0x2E,0x07,0xF0,0xFA, +0xC8,0x05,0x3C,0x0D,0xFE,0x0F,0x5A,0x08,0x01,0xFB,0x84,0xC0,0x3E,0x67,0xF0,0xFB, +0x49,0xFF,0xE9,0x81,0x3E,0x67,0xF0,0xFA,0x49,0xFF,0xFD,0x95,0x49,0xFF,0xFB,0x25, +0x49,0xFF,0xFD,0x9B,0x84,0x00,0x49,0xFF,0xFF,0xD1,0xFC,0x80,0xFC,0x00,0x84,0x01, +0x49,0xFF,0xFF,0xCC,0x2E,0x07,0xF0,0xFA,0xC8,0x05,0x3C,0x0D,0xFE,0x0F,0x5A,0x08, +0x01,0xFB,0x84,0xC0,0x3E,0x67,0xF0,0xFB,0x49,0xFF,0xE9,0x65,0x84,0x00,0x3E,0x67, +0xF0,0xFA,0x49,0xFF,0xFF,0xBB,0xFC,0x80,0xFC,0x00,0x2E,0x07,0xF8,0x43,0x49,0xFF, +0xF1,0xBD,0x2E,0x17,0xF8,0x43,0x84,0x03,0x49,0xFF,0xF2,0x49,0x84,0x03,0x49,0xFF, +0xFC,0xBF,0x84,0x20,0x2E,0x27,0xF8,0x41,0x2E,0x07,0xF8,0x43,0x49,0xFF,0xFE,0xEE, +0x84,0x01,0x49,0xFF,0xFD,0x0B,0x49,0xFF,0xFF,0xD3,0x44,0x10,0x00,0x42,0x84,0x40, +0x84,0x63,0x44,0x02,0x12,0x9C,0x49,0xFF,0xF0,0x78,0x84,0x00,0x49,0xFF,0xFC,0xA8, +0x2E,0x07,0xF8,0x43,0x49,0xFF,0xF2,0xA1,0x84,0x01,0x49,0xFF,0xFC,0xF7,0xFC,0x80, +0xFC,0x01,0x49,0xFF,0xF0,0xA1,0xF0,0x81,0x49,0xFF,0xF2,0xFF,0x80,0xC0,0xC8,0x34, +0x84,0x01,0x49,0xFF,0xFD,0x2E,0x84,0x01,0x49,0xFF,0xFC,0x7C,0x84,0x06,0x49,0xFF, +0xF0,0x96,0x84,0x01,0x49,0xFF,0xF1,0x82,0x2E,0x27,0xF8,0x41,0x2E,0x17,0xF8,0x42, +0x84,0x01,0x49,0xFF,0xFE,0xBB,0x84,0x01,0x49,0xFF,0xF1,0x2A,0x84,0x21,0x84,0x02, +0x49,0xFF,0xF2,0x05,0x80,0x06,0x49,0xFF,0xDC,0x23,0x44,0x10,0x02,0x40,0x80,0x06, +0x49,0xFF,0xE2,0x05,0x84,0x02,0x49,0xFF,0xFC,0xC9,0x80,0x06,0x49,0xFF,0xDD,0xC5, +0x84,0x01,0x49,0xFF,0xFF,0x5B,0x2E,0x07,0xF0,0xFA,0xC8,0x27,0x3C,0x0D,0xFE,0x0F, +0x5A,0x08,0x01,0xFB,0xD5,0x22,0x84,0xC2,0x84,0x00,0x49,0xFF,0xE1,0xE5,0xF0,0x81, +0x84,0x00,0x49,0xFF,0xDC,0x05,0x44,0x10,0x02,0x40,0x84,0x00,0x49,0xFF,0xE1,0xE7, +0x84,0x02,0x49,0xFF,0xFC,0xAB,0x49,0xFF,0xFF,0x73,0xF0,0x01,0x44,0x10,0x02,0x40, +0x84,0x40,0x49,0xFF,0xF0,0x09,0x84,0x01,0x49,0xFF,0xFC,0xA0,0x5A,0x68,0x01,0x04, +0x48,0x00,0x00,0xC5,0x84,0xC1,0xD5,0xE1,0x44,0x10,0x02,0x40,0x84,0x40,0x44,0x02, +0x09,0x18,0x49,0xFF,0xEF,0xF9,0x84,0x00,0x49,0xFF,0xFF,0x28,0x84,0x00,0x49,0xFF, +0xFC,0xD0,0x49,0xFF,0xFA,0x60,0xF0,0x01,0x49,0xFF,0xF0,0x39,0x84,0x00,0x49,0xFF, +0xF1,0x25,0x2E,0x27,0xF8,0x41,0x2E,0x17,0xF8,0x42,0x84,0x00,0x49,0xFF,0xFE,0x5E, +0x84,0x00,0x49,0xFF,0xF0,0xCD,0x84,0x20,0x84,0x02,0x49,0xFF,0xF1,0xA8,0x84,0x00, +0x49,0xFF,0xDB,0xC6,0x84,0x00,0x44,0x10,0x02,0x40,0x49,0xFF,0xE1,0xA8,0x84,0x01, +0x49,0xFF,0xFF,0x04,0x44,0x64,0x50,0x28,0x2E,0x07,0xF8,0x40,0xC0,0x09,0x49,0xFF, +0xE8,0xA2,0x84,0x00,0x3E,0x07,0xF0,0xFA,0x44,0x64,0x50,0x28,0xD5,0x26,0x2E,0x07, +0xF0,0xEB,0xC8,0x0E,0xB4,0x06,0x92,0x03,0x96,0x06,0xC8,0x0A,0xB4,0x06,0x92,0x01, +0x96,0x06,0xC0,0x06,0x3C,0x0D,0xFE,0x0F,0x5A,0x08,0x01,0xE8,0xD5,0xE9,0x49,0xFF, +0xE6,0x08,0x5A,0x08,0x02,0xF9,0xD5,0xE4,0x2E,0x07,0xF0,0xEB,0xC8,0x12,0xB4,0x06, +0x92,0x03,0x96,0x06,0x5A,0x00,0x01,0x0E,0xB4,0x06,0x92,0x01,0x96,0x06,0xC0,0x09, +0x3C,0x0D,0xFE,0x0F,0x5A,0x00,0x01,0x0A,0x49,0xFF,0xE8,0x72,0xC0,0xEE,0xD5,0x05, +0x49,0xFF,0xE5,0xEF,0x5A,0x08,0x02,0xF6,0x2E,0x07,0xF0,0xFA,0xC8,0x05,0x3C,0x0D, +0xFE,0x0F,0x5A,0x08,0x01,0xFB,0x44,0x64,0x50,0x28,0x2E,0x07,0xF8,0x40,0xC8,0x11, +0x84,0x01,0x49,0xFF,0xDB,0x75,0x84,0x01,0x44,0x10,0x02,0x40,0x49,0xFF,0xE1,0x57, +0x49,0xFF,0xE8,0x59,0x84,0x00,0x3E,0x07,0xF0,0xFA,0x44,0x64,0x50,0x28,0xD5,0x26, +0x2E,0x07,0xF0,0xEB,0xC8,0x0E,0xB4,0x06,0x92,0x03,0x96,0x06,0xC8,0x0A,0xB4,0x06, +0x92,0x01,0x96,0x06,0xC0,0x06,0x3C,0x0D,0xFE,0x0F,0x5A,0x08,0x01,0xE0,0xD5,0xE1, +0x49,0xFF,0xE5,0xBF,0x5A,0x08,0x02,0xF9,0xD5,0xDC,0x2E,0x07,0xF0,0xEB,0xC8,0x12, +0xB4,0x06,0x92,0x03,0x96,0x06,0x5A,0x00,0x01,0x0E,0xB4,0x06,0x92,0x01,0x96,0x06, +0xC0,0x09,0x3C,0x0D,0xFE,0x0F,0x5A,0x00,0x01,0x0A,0x49,0xFF,0xE8,0x29,0xC0,0xEE, +0xD5,0x05,0x49,0xFF,0xE5,0xA6,0x5A,0x08,0x02,0xF6,0x2E,0x07,0xF0,0xFA,0xC8,0x05, +0x3C,0x0D,0xFE,0x0F,0x5A,0x08,0x01,0xFB,0x84,0x00,0x49,0xFF,0xFE,0x77,0x84,0x01, +0x49,0xFF,0xFB,0xDC,0x84,0x01,0x49,0xFF,0xDC,0xD8,0xFC,0x81,0xFC,0x49,0x2E,0x67, +0xF8,0x43,0x84,0x00,0x49,0xFF,0xFD,0x45,0x84,0x02,0x49,0xFF,0xD9,0x97,0x80,0x06, +0x84,0x20,0x84,0x41,0x49,0xFF,0xED,0x7C,0x84,0x04,0x49,0xFF,0xFC,0x30,0xB1,0x86, +0x44,0x10,0x84,0x14,0x80,0x06,0x3A,0x20,0x94,0x04,0x3A,0x20,0x14,0x24,0x3A,0x20, +0x94,0x04,0x3A,0x20,0x14,0x24,0x3A,0x20,0x94,0x00,0x3A,0x20,0x14,0x20,0x44,0x00, +0x84,0x44,0x80,0x3F,0x3A,0x20,0x14,0x04,0x3A,0x20,0x94,0x24,0x3A,0x20,0x0C,0x00, +0x3A,0x20,0x8C,0x20,0x80,0x1F,0x49,0xFF,0xDD,0xAF,0x80,0x06,0x49,0xFF,0xDD,0x76, +0x84,0x00,0x3E,0x07,0xF0,0xF9,0x84,0x01,0x80,0xFF,0x49,0xFF,0xFE,0x37,0x49,0xFF, +0xD7,0x05,0x2E,0x07,0xF0,0xF9,0xC8,0x05,0x3C,0x0D,0xFE,0x0F,0x5A,0x08,0x01,0xFB, +0x84,0x00,0x3E,0x07,0xF0,0xF9,0x84,0x00,0x49,0xFF,0xFE,0x28,0x49,0xFF,0xFE,0x3C, +0x84,0x00,0x49,0xFF,0xFB,0xF4,0x44,0x10,0x83,0x80,0x80,0x06,0x3A,0x20,0x94,0x04, +0x3A,0x20,0x14,0x24,0x3A,0x20,0x94,0x04,0x3A,0x20,0x14,0x24,0x3A,0x20,0x94,0x00, +0x3A,0x20,0x14,0x20,0x44,0x00,0x83,0x2C,0x80,0x27,0x3A,0x20,0x14,0x04,0x3A,0x20, +0x94,0x24,0x3A,0x20,0x0C,0x00,0x3A,0x20,0x8C,0x20,0x80,0x07,0x49,0xFF,0xDD,0x74, +0x80,0x06,0x49,0xFF,0xDD,0x3B,0xFC,0xC9,0xFC,0x00,0x2E,0x07,0xF8,0x43,0x49,0xFF, +0xF0,0x05,0x84,0x00,0x49,0xFF,0xFB,0x0C,0x84,0x20,0x2E,0x27,0xF8,0x41,0x2E,0x07, +0xF8,0x43,0x49,0xFF,0xFD,0x3B,0x84,0x00,0x49,0xFF,0xFE,0x64,0x2E,0x17,0xF8,0x42, +0x2E,0x27,0xF8,0x41,0x2E,0x07,0xF8,0x43,0x49,0xFF,0xFD,0x30,0x2E,0x07,0xF8,0x43, +0x49,0xFF,0xEF,0xEC,0x2E,0x07,0xF8,0x43,0x49,0xFF,0xF0,0xEF,0x49,0xFF,0xF1,0x55, +0xC8,0x09,0x2E,0x07,0xF8,0x43,0x49,0xFF,0xFA,0xD5,0x2E,0x07,0xF8,0x43,0x49,0xFF, +0xFB,0x80,0x84,0x01,0x49,0xFF,0xFB,0x3A,0x49,0xFF,0xEF,0x86,0x49,0xFF,0xFB,0x95, +0x84,0x01,0x49,0xFF,0xFD,0xCB,0xFC,0x80,0xFC,0x00,0x49,0xFF,0xDD,0xDB,0xFC,0x80, +0x46,0x20,0x00,0x82,0x96,0x67,0xA1,0x54,0x44,0x3F,0xFF,0xC1,0x95,0x09,0xFE,0xEE, +0xFE,0xE7,0xA8,0xD4,0xA1,0x54,0x44,0x3F,0xE0,0xFF,0x40,0x40,0xA0,0x08,0xFE,0xEE, +0xFE,0xE7,0xA8,0xD4,0xA0,0xD4,0x46,0x4F,0xFC,0x1F,0x50,0x42,0x0F,0xFF,0x40,0x50, +0xC4,0x08,0xFE,0xE6,0xFE,0xEF,0xA8,0xD4,0xA1,0x14,0x46,0x3E,0x0F,0xFF,0x50,0x31, +0x8F,0xFF,0xFE,0xE6,0x40,0x10,0xE0,0x08,0xFE,0x5F,0xA8,0x54,0xA1,0x14,0x96,0x06, +0x44,0x1F,0xFF,0xBF,0x94,0xC6,0xFE,0x66,0xFE,0x5F,0xA8,0x54,0xA1,0x14,0x44,0x1F, +0xDF,0xFF,0x40,0x30,0x34,0x08,0xFE,0x66,0xFE,0x5F,0xA8,0x54,0xA0,0x54,0x46,0x3F, +0xFB,0xFF,0x50,0x31,0x8F,0xFF,0x40,0x40,0x58,0x08,0xFE,0x5E,0xFE,0x67,0xA8,0x54, +0xA0,0xD4,0x46,0x1D,0xFF,0xFF,0x50,0x10,0x8F,0xFF,0x40,0x00,0x74,0x08,0xFE,0x5E, +0xFE,0x0F,0xA8,0x14,0xDD,0x9E,0xFC,0x00,0x84,0xC0,0x3E,0x67,0xF0,0xFB,0x49,0xFF, +0xE7,0x1A,0x3E,0x67,0xF0,0xFA,0x2E,0x07,0xF0,0xFB,0xC8,0x05,0x3C,0x0D,0xFE,0x0F, +0x5A,0x08,0x01,0xFB,0x84,0x00,0x3E,0x07,0xF0,0xFB,0x44,0x64,0x50,0x28,0x49,0xFF, +0xE7,0x07,0xC8,0x16,0x2E,0x07,0xF0,0xEB,0xC8,0x0F,0xB4,0x06,0x92,0x03,0x96,0x06, +0x5A,0x00,0x01,0x0B,0xB4,0x06,0x92,0x01,0x96,0x06,0xC0,0x06,0x3C,0x0D,0xFE,0x0F, +0x5A,0x08,0x01,0xEF,0xD5,0x05,0x49,0xFF,0xE4,0x74,0x5A,0x08,0x02,0xF9,0x49,0xFF, +0xE6,0xF2,0x2E,0x07,0xF0,0xFA,0xC8,0x05,0x3C,0x0D,0xFE,0x0F,0x5A,0x08,0x01,0xFB, +0x84,0x00,0x3E,0x07,0xF0,0xFA,0xFC,0x80,0xFC,0x00,0x49,0xFF,0xFB,0x06,0x84,0x01, +0x49,0xFF,0xFD,0x3C,0x49,0xFF,0xFF,0xC1,0x49,0xFF,0xFA,0xF5,0x49,0xFF,0xFA,0xC4, +0x84,0x00,0x49,0xFF,0xFD,0x33,0xFC,0x80,0xFC,0x40,0x51,0xFF,0xFD,0xC0,0xFD,0x30, +0x81,0x22,0x44,0x10,0x84,0x6C,0x80,0x1F,0x44,0x20,0x02,0x40,0x49,0x00,0x14,0x40, +0xFB,0x42,0x84,0x20,0x44,0x80,0x20,0x00,0x84,0x40,0x98,0xCA,0x96,0xD9,0x80,0x82, +0x38,0x0F,0x8C,0x00,0x42,0x40,0x28,0x73,0x94,0x21,0x99,0x70,0x88,0x07,0x22,0xF2, +0x80,0x00,0x22,0x40,0x00,0x00,0x40,0x47,0x90,0x01,0x4E,0x44,0x00,0x03,0xFF,0x22, +0x94,0xD9,0x88,0x69,0x22,0xF1,0x80,0x00,0x40,0xF7,0x90,0x07,0xE8,0x02,0xAD,0x18, +0x22,0xF2,0x80,0x00,0x5E,0xF7,0xBF,0xC1,0xE8,0x06,0x22,0xF0,0x00,0x00,0x5E,0xF7, +0xBF,0xC1,0xE9,0x03,0x12,0x81,0x80,0x00,0x8C,0x41,0x5A,0x28,0x12,0xD8,0x8C,0x32, +0x96,0x49,0x5A,0x1A,0x40,0xD3,0x51,0xFF,0x82,0x40,0xFC,0xC0,0xFC,0x00,0x44,0x00, +0x01,0x00,0x84,0x20,0x49,0xFF,0xD9,0xF4,0x84,0x21,0x44,0x00,0x01,0x00,0x49,0xFF, +0xD9,0xEF,0x84,0x08,0x49,0xFF,0xE3,0x6F,0x44,0x00,0x01,0x00,0x84,0x20,0x49,0xFF, +0xD9,0xE7,0xFC,0x80,0xFC,0x40,0x44,0x74,0x2C,0x14,0x84,0xCF,0xB5,0x27,0x40,0x94, +0x98,0x02,0x10,0x90,0x00,0x00,0xB4,0x07,0x92,0x08,0xFE,0x36,0xAE,0x08,0xB4,0x27, +0x84,0x01,0x92,0x2C,0xFE,0x46,0xAE,0x50,0x44,0x14,0x24,0x14,0x44,0x24,0x2C,0x1C, +0xB4,0x21,0xFF,0x8E,0xAF,0x98,0xB4,0x22,0x92,0x32,0xFE,0x46,0xAE,0x60,0xB4,0x22, +0x92,0x33,0xFE,0x46,0xAE,0x68,0xB4,0x22,0x92,0x36,0xFE,0x0E,0xF1,0x08,0xAE,0x08, +0xFC,0xC0,0xFC,0x40,0x3C,0x8D,0xFC,0x8A,0x5A,0x88,0x01,0x64,0x80,0xC5,0x80,0xE4, +0x81,0x43,0x83,0x81,0x5A,0x08,0xFF,0x05,0x5A,0x18,0xFF,0x51,0xFC,0xC0,0x5A,0x08, +0xFE,0x4A,0x5A,0x18,0xFE,0x48,0x44,0x14,0x2C,0x14,0x54,0x41,0x00,0x01,0xB4,0x41, +0x44,0x0F,0xEF,0xFF,0x40,0x42,0x30,0x08,0xFE,0x86,0x40,0x91,0x10,0x04,0x80,0x68, +0x80,0x48,0xB7,0x21,0x44,0x04,0x28,0x14,0x44,0x14,0x24,0x14,0x49,0xFF,0xDA,0x2C, +0x80,0x0A,0x49,0xFF,0xE4,0xAF,0x44,0x04,0x24,0x14,0x80,0x28,0x49,0xFF,0xD9,0xF9, +0x44,0x24,0x2C,0x1C,0x97,0xC6,0x40,0x43,0xC8,0x08,0xB4,0xE2,0x44,0x0B,0xFF,0xFF, +0xFF,0xC6,0xFF,0xE7,0xB6,0xE2,0x97,0x86,0xB4,0x02,0x40,0x53,0x4C,0x08,0x46,0x6F, +0xFF,0x7F,0x50,0x63,0x0F,0xFF,0xFF,0x86,0xFF,0xAF,0xB6,0xC2,0x00,0x0F,0x80,0x20, +0xB4,0x62,0x96,0x06,0x40,0x10,0x58,0x08,0x46,0x0F,0xFB,0xFF,0x50,0x00,0x0F,0xFF, +0xFE,0x1E,0xFE,0x0F,0xB6,0x02,0x44,0x14,0x24,0x1C,0x44,0x04,0x28,0x1C,0x80,0x48, +0xD5,0x0D,0x49,0xFF,0xE4,0x7F,0x5B,0xC0,0xFF,0x05,0x80,0x1C,0x49,0xFF,0xE4,0x83, +0x44,0x04,0x28,0x14,0x44,0x14,0x24,0x14,0x84,0x41,0x80,0x62,0x49,0xFF,0xD9,0xEC, +0xFC,0xC0,0xFC,0x41,0x80,0xE0,0x3C,0x0D,0xFC,0x8A,0x5A,0x08,0x01,0x32,0x81,0x25, +0x81,0x44,0x80,0x02,0x80,0xC1,0xF7,0x81,0x5A,0x30,0xFF,0x05,0x84,0x20,0x49,0xFF, +0xE8,0xB3,0x5A,0xA8,0x0F,0x04,0x5A,0x90,0x01,0x0C,0x46,0x10,0x00,0x81,0x83,0x81, +0xB8,0x33,0x58,0x00,0x02,0x00,0xB8,0xB3,0x84,0x00,0x49,0xFF,0xFB,0x0A,0x00,0x0F, +0x80,0x28,0x5A,0x08,0x0F,0x06,0x00,0x0F,0x80,0x2C,0x5A,0x00,0x0F,0x04,0x49,0x00, +0x0D,0x19,0x44,0x00,0xFF,0xFF,0x4C,0x60,0x00,0x0C,0xF0,0x01,0x80,0x26,0x49,0xFF, +0xDD,0x84,0x50,0x13,0x00,0x42,0xF0,0x01,0x96,0x49,0x49,0xFF,0xFE,0x4F,0xFC,0xC1, +0xFC,0x42,0x3C,0x6D,0xFC,0x8A,0x01,0xCF,0x80,0x30,0x00,0x8F,0x80,0x34,0x00,0xAF, +0x80,0x38,0x5A,0x68,0x01,0x4E,0x80,0xE5,0x81,0x24,0xF2,0x82,0x80,0xC1,0xF0,0x81, +0x5A,0x30,0xFF,0x05,0xFD,0x01,0x49,0xFF,0xE8,0x77,0x5A,0x90,0x0F,0x06,0xF0,0x02, +0x80,0x29,0x49,0xFF,0xDD,0xB6,0x5B,0xC0,0x01,0x06,0x80,0x1C,0x80,0x27,0x49,0xFF, +0xD4,0x6B,0x5A,0x80,0x0F,0x05,0x80,0x08,0x49,0xFF,0xD6,0x62,0x5A,0xA0,0x0F,0x05, +0x80,0x0A,0x49,0xFF,0xD6,0x90,0xF1,0x0F,0x44,0x00,0xFF,0xFF,0x5A,0x10,0x01,0x05, +0x4C,0x60,0x40,0x1A,0xFC,0xC2,0x4C,0x60,0x40,0x17,0x49,0xFF,0xF9,0xA6,0x49,0xFF, +0xFD,0x6F,0x49,0xFF,0xFA,0xAD,0xF0,0x81,0x49,0xFF,0xFA,0xAD,0xF0,0x82,0x49,0xFF, +0xFA,0xAD,0xF0,0x83,0xF1,0x02,0xF0,0x01,0xF2,0x03,0x49,0xFF,0xFB,0x17,0x49,0xFF, +0xF9,0x8A,0xFC,0xC2,0xF0,0x01,0x80,0x26,0x49,0xFF,0xDD,0x2F,0x50,0x13,0x00,0x42, +0xF0,0x01,0x96,0x49,0x49,0xFF,0xFD,0xFA,0xF0,0x0F,0x5A,0x00,0x01,0xE0,0xFC,0xC2, +0xFC,0x02,0x44,0x20,0x86,0xEC,0xB1,0x81,0x80,0x82,0x80,0xA6,0x3A,0x22,0x0C,0x04, +0x3A,0x22,0x8C,0x24,0xA4,0xA0,0x9F,0x01,0xAC,0xA8,0x92,0x48,0xE0,0x44,0x00,0x3F, +0x80,0x04,0xE9,0x05,0xE0,0x60,0x80,0x43,0x40,0x20,0x3C,0x1B,0x84,0x60,0x38,0x53, +0x0C,0x00,0x96,0x18,0x8C,0xA1,0xDA,0x04,0x49,0xFF,0xDC,0xB7,0xFC,0x82,0x8C,0x61, +0x5A,0x38,0x0A,0xF7,0xFC,0x82,0xFC,0x20,0x51,0xFF,0xFD,0xC0,0x44,0x20,0x02,0x40, +0xFD,0x30,0x80,0x1F,0x44,0x10,0x84,0x6C,0x49,0x00,0x12,0xAA,0x88,0xDF,0x84,0x40, +0xFA,0x22,0x42,0x31,0x04,0x24,0x96,0x10,0x38,0x53,0x0C,0x00,0xD7,0x06,0x8C,0x41, +0x5A,0x28,0x20,0xF9,0x44,0x00,0x00,0xFF,0x51,0xFF,0x82,0x40,0xFC,0xA0,0xFC,0x4B, +0x49,0xFF,0xF9,0x1E,0xF0,0x86,0x2E,0x07,0xF2,0x1C,0x3C,0x8D,0xFC,0x8A,0xF0,0x88, +0x2E,0x07,0xF2,0x1D,0x2E,0x77,0xF2,0x1B,0xF0,0x87,0x2E,0x07,0xF2,0x1F,0x2E,0x67, +0xF2,0x1E,0xF0,0x89,0x2E,0x07,0xF2,0x20,0x2E,0xA7,0xF2,0x22,0x54,0x10,0x00,0x0F, +0x92,0x04,0x96,0x06,0xF0,0x8B,0x2E,0x07,0xF2,0x21,0xF1,0x8A,0x54,0x10,0x00,0x0F, +0x92,0x04,0xF0,0x8D,0x84,0x1F,0xF1,0x8C,0x2E,0x97,0xF2,0x23,0x10,0x0F,0x80,0x51, +0x10,0x0F,0x80,0x52,0x10,0x0F,0x80,0x53,0x10,0x0F,0x80,0x54,0x10,0x0F,0x80,0x55, +0x10,0x0F,0x80,0x56,0x10,0x0F,0x80,0x57,0x5A,0x88,0x01,0x5C,0x2E,0x07,0xF2,0x0C, +0x5A,0x00,0x02,0x13,0x54,0x13,0x00,0x06,0x92,0x21,0xC9,0x06,0x80,0x08,0x49,0xFF, +0xF8,0xE8,0x80,0x08,0xD5,0x07,0x5A,0x18,0x01,0x08,0x84,0x00,0x49,0xFF,0xF8,0xE1, +0x84,0x00,0x49,0xFF,0xF8,0x2F,0xF0,0x07,0x5A,0x00,0xFF,0x11,0x46,0x00,0x00,0x81, +0x84,0x20,0x04,0x00,0x00,0x23,0x96,0x1F,0xF0,0x85,0xF0,0x07,0x49,0xFF,0xFF,0x6A, +0xF0,0x07,0x84,0x23,0x49,0xFF,0xFF,0x66,0xD5,0x03,0x84,0x00,0xF0,0x85,0x5A,0xA8, +0xFF,0x04,0x5A,0x90,0xFF,0x12,0x50,0x0F,0x80,0x57,0xB6,0x1F,0x50,0x1F,0x80,0x52, +0x50,0x0F,0x80,0x51,0x50,0x2F,0x80,0x53,0xB0,0xD5,0x50,0x4F,0x80,0x55,0x50,0x5F, +0x80,0x56,0x49,0xFF,0xFE,0x31,0x84,0x41,0xB6,0x5F,0x80,0x0A,0x80,0x29,0x80,0xA2, +0x84,0x65,0x84,0x80,0x49,0xFF,0xFE,0x4F,0xF0,0x0B,0xF2,0x08,0xB6,0x1F,0xF0,0x0C, +0x40,0x13,0xA0,0x08,0xF0,0x81,0xF0,0x0D,0x97,0x86,0xF0,0x82,0x84,0x00,0xFE,0x57, +0xF6,0x83,0x80,0x40,0xF3,0x09,0xF4,0x0A,0x80,0xA0,0x49,0xFF,0xFE,0xDB,0xD5,0x03, +0x84,0x00,0xF0,0x85,0x49,0xFF,0xF8,0xA7,0x84,0x00,0x49,0xFF,0xFA,0xE7,0x85,0x00, +0x46,0x30,0x00,0x82,0x40,0x04,0x10,0x08,0xF0,0x8E,0x54,0x04,0x00,0xFF,0x84,0xA0, +0xF0,0x88,0xB4,0x03,0xF1,0x0E,0x92,0x0B,0x88,0x25,0x40,0x00,0x2C,0x08,0xFE,0x0F, +0xB6,0x03,0xA0,0x19,0xA1,0xD9,0x54,0xA0,0x00,0xFF,0xA0,0x19,0x44,0x13,0xF0,0x00, +0xA1,0x99,0x95,0x29,0xFE,0x0E,0x40,0x90,0x30,0x09,0x97,0x20,0x46,0x00,0x0F,0xC0, +0x80,0x24,0xFF,0x86,0xF0,0x08,0xF3,0x91,0xF5,0x90,0xF4,0x8F,0x49,0xFF,0xFF,0x25, +0xFA,0x22,0x80,0x48,0x42,0x20,0x04,0x73,0x54,0x73,0x8F,0xC0,0x54,0x15,0x00,0x20, +0x80,0x02,0x92,0xE6,0x94,0x8A,0x54,0x15,0x00,0x1F,0x40,0xA1,0x04,0x04,0x54,0x13, +0x80,0x1F,0x97,0xEE,0x95,0xFA,0xFF,0xCF,0xF1,0x06,0xF4,0x0F,0x40,0x73,0xA0,0x08, +0x40,0xA5,0x1C,0x04,0x38,0xA0,0x81,0x09,0x9C,0x61,0x96,0x48,0xF0,0x08,0x49,0xFF, +0xFF,0x04,0xFA,0x22,0x54,0x44,0x80,0x20,0x80,0x48,0x92,0xD2,0x42,0x20,0x04,0x73, +0x95,0x22,0x54,0x14,0x80,0x1F,0x40,0x92,0x04,0x04,0x54,0x13,0x00,0x1F,0x97,0xAE, +0x95,0xB2,0xFF,0x8F,0xF5,0x10,0xF1,0x06,0x40,0x63,0x20,0x08,0x40,0x94,0x98,0x04, +0x8C,0xA1,0x38,0x90,0x89,0x09,0xF3,0x11,0x5A,0x58,0x10,0xA5,0x8D,0x01,0x5A,0x88, +0x09,0x9B,0x44,0x00,0x02,0x40,0xFA,0x41,0xF0,0x88,0x46,0xA0,0x00,0x82,0x84,0x10, +0xFE,0x14,0x50,0x00,0x03,0x50,0xF0,0x8F,0x96,0x10,0xF5,0x08,0x84,0x80,0xF0,0x8E, +0xF5,0x93,0xF2,0x90,0xB4,0x0A,0x54,0x12,0x87,0xFF,0x92,0x0B,0x40,0x00,0x2C,0x08, +0xFE,0x0F,0xB6,0x0A,0xB4,0x0A,0xF1,0x0F,0x92,0x0B,0x88,0x24,0x40,0x00,0x2C,0x08, +0xFE,0x0F,0xB6,0x0A,0x80,0x4A,0xA0,0x11,0xA1,0xD1,0x54,0x80,0x00,0xFF,0xA0,0x11, +0x44,0x13,0xF0,0x00,0xA1,0x91,0x94,0xE1,0xFE,0x0E,0x40,0x90,0x30,0x09,0x96,0xD8, +0x46,0x00,0x0F,0xC0,0x80,0x23,0xFF,0x86,0xF0,0x0E,0xF4,0x92,0xF3,0x91,0x49,0xFF, +0xFE,0xAC,0xF2,0x10,0xFA,0x22,0x80,0x62,0x42,0x30,0x04,0x73,0x54,0x73,0x8F,0xC0, +0x54,0x14,0x00,0x20,0x40,0xF0,0x88,0x08,0x92,0xE6,0x54,0x14,0x00,0x1F,0x40,0x87, +0x84,0x04,0x54,0x13,0x80,0x1F,0x97,0xEE,0x95,0xFA,0xFF,0xCF,0xF1,0x06,0x40,0x73, +0xA0,0x08,0x40,0x84,0x1C,0x04,0x38,0x80,0x8D,0x09,0xF3,0x11,0xF0,0x0E,0x9C,0x59, +0x96,0x48,0x49,0xFF,0xFE,0x8A,0xF2,0x10,0xFA,0x22,0x80,0x62,0x42,0x30,0x04,0x73, +0x80,0x03,0x54,0x34,0x80,0x20,0x92,0xD2,0x54,0x14,0x80,0x1F,0x94,0xDA,0x40,0x91, +0x84,0x04,0x54,0x13,0x00,0x1F,0x97,0xAE,0x95,0xB2,0xFF,0x8F,0xF4,0x12,0xF1,0x06, +0xF5,0x13,0x40,0x63,0x20,0x08,0x40,0x94,0x98,0x04,0x8C,0xA1,0x8C,0x81,0x38,0x90, +0x81,0x09,0x54,0x52,0x87,0xFF,0x5A,0x48,0x10,0x95,0xF0,0x08,0x8E,0x41,0x8C,0x10, +0x54,0x00,0x07,0xFF,0xF0,0x88,0x5A,0x28,0x08,0x84,0x49,0xFF,0xEA,0x1E,0x3C,0x0D, +0xFC,0x8A,0x5A,0x08,0x01,0x2B,0xF0,0x07,0x5A,0x00,0xFF,0x0A,0xF0,0x05,0x84,0x20, +0x49,0xFF,0xDB,0x03,0xF0,0x05,0x84,0x23,0x49,0xFF,0xDA,0xFF,0x00,0x6F,0x80,0x57, +0x00,0x0F,0x80,0x51,0x00,0x1F,0x80,0x52,0x00,0x2F,0x80,0x53,0x00,0x3F,0x80,0x54, +0x00,0x4F,0x80,0x55,0x00,0x5F,0x80,0x56,0xB6,0xDF,0x49,0xFF,0xFD,0x24,0xF0,0x0C, +0x44,0x10,0x00,0xF0,0xB6,0x1F,0xF0,0x0D,0xF3,0x09,0xF0,0x81,0x84,0x00,0x80,0x40, +0xF4,0x0A,0xF5,0x0B,0x49,0xFF,0xFD,0x7F,0x49,0xFF,0xFC,0xDA,0x44,0x00,0x00,0x51, +0x3E,0x07,0xF0,0x60,0xFC,0xCB,0xFC,0x41,0x81,0x00,0x81,0x23,0xF5,0x81,0x80,0xC2, +0x81,0x44,0xB6,0x3F,0x2E,0x76,0x6E,0x96,0x49,0xFF,0xF7,0x57,0x83,0x80,0x46,0x00, +0x00,0x80,0xB4,0x3F,0x14,0x80,0x00,0x47,0x14,0x80,0x00,0x49,0x84,0x01,0x49,0xFF, +0xDB,0x14,0x84,0x04,0xB4,0x3F,0x49,0xFF,0xDB,0x10,0x49,0xFF,0xF7,0x6E,0x49,0xFF, +0xFC,0x2C,0x49,0xFF,0xF7,0x60,0x80,0x1C,0x80,0x29,0x84,0x40,0x49,0xFF,0xEA,0x4A, +0xF5,0x01,0xCD,0x14,0x93,0x21,0x96,0x69,0xE2,0x29,0xE8,0x0F,0x40,0x22,0x9C,0x16, +0xC8,0x04,0xC1,0x03,0x8C,0xC2,0x97,0xB1,0x42,0x03,0x1C,0x73,0x38,0x1E,0x15,0x11, +0x38,0x15,0x01,0x09,0x8C,0xA1,0xD5,0xF0,0xFC,0xC1,0x5A,0x58,0x01,0x0F,0x95,0xB1, +0x89,0x46,0x84,0x00,0x96,0x41,0xE2,0x29,0xE8,0x07,0x38,0x1E,0x01,0x11,0x38,0x15, +0x01,0x09,0x8C,0x01,0xD5,0xF8,0xFC,0xC1,0x5A,0x58,0x02,0x1B,0x94,0xF9,0x84,0x40, +0x96,0x51,0xE2,0x29,0xE8,0x15,0x40,0x41,0x1C,0x16,0xC8,0x04,0xC1,0x03,0x8C,0xC1, +0x97,0xB1,0x40,0x51,0x0C,0x96,0xCC,0x04,0xC1,0x03,0x8C,0xC6,0x97,0xB1,0x42,0x03, +0x1C,0x73,0x38,0x1E,0x09,0x11,0x38,0x15,0x01,0x09,0x8C,0x41,0xD5,0xEA,0xFC,0xC1, +0xFC,0x40,0x51,0xFF,0xF5,0xF0,0x49,0xFF,0xF6,0xFB,0xF0,0x86,0x84,0x20,0x44,0x20, +0x04,0x80,0x50,0x0F,0x81,0x10,0x49,0x00,0x10,0x91,0x44,0x00,0x86,0xEC,0xB0,0x57, +0x3A,0x20,0x0C,0x04,0x3A,0x20,0x8C,0x24,0xA4,0x00,0x50,0x8F,0x80,0x68,0xAC,0x08, +0x00,0x0F,0x80,0x5C,0x84,0x20,0x8C,0x01,0x96,0x00,0xF0,0x88,0x44,0x00,0x86,0xF8, +0xB1,0xEC,0x3A,0x20,0x10,0x00,0x3A,0x24,0x10,0x20,0xB0,0x1D,0x84,0x4C,0x49,0x00, +0x10,0x75,0x2E,0x07,0xF2,0x1B,0x2E,0x97,0xF2,0x1F,0xF0,0x84,0x2E,0x07,0xF2,0x1C, +0x50,0xFF,0x80,0xE0,0xF0,0x87,0x2E,0x07,0xF2,0x1D,0xF0,0x90,0x2E,0x07,0xF2,0x1E, +0xF0,0x91,0x54,0x04,0x80,0x0F,0xF0,0x85,0x2E,0x07,0xF2,0x20,0xF0,0x89,0x2E,0x07, +0xF2,0x21,0xF0,0x8A,0x2E,0x07,0xF2,0x22,0xF0,0x8B,0x2E,0x07,0xF2,0x23,0x54,0x10, +0x00,0x0F,0x92,0x04,0x96,0x06,0xF0,0x8D,0x2E,0x07,0xF2,0x24,0xF1,0x8C,0x54,0x10, +0x00,0x0F,0x92,0x04,0xF0,0x8F,0x84,0x1F,0xF1,0x8E,0x10,0x0F,0x80,0x55,0x10,0x0F, +0x80,0x56,0x10,0x0F,0x80,0x57,0x10,0x0F,0x80,0x58,0x10,0x0F,0x80,0x59,0x10,0x0F, +0x80,0x5A,0x10,0x0F,0x80,0x5B,0x2E,0x66,0x6E,0x97,0x2E,0x06,0x6E,0x96,0x42,0xA3, +0x00,0x24,0xB1,0xA0,0x44,0x00,0x87,0x04,0x80,0x26,0x3A,0x20,0x14,0x04,0x3A,0x20, +0x94,0x24,0x3A,0x20,0x0C,0x00,0x44,0x00,0x87,0x1C,0x3A,0x20,0x8C,0x20,0x80,0x27, +0x3A,0x20,0x14,0x04,0x3A,0x20,0x94,0x24,0x3A,0x20,0x14,0x04,0x3A,0x20,0x94,0x24, +0x3A,0x20,0x14,0x00,0x44,0x00,0x87,0x4C,0x3A,0x20,0x94,0x20,0xB0,0x66,0x3A,0x20, +0x14,0x04,0x3A,0x20,0x94,0x24,0x3A,0x20,0x0C,0x00,0x44,0x00,0x87,0x64,0x3A,0x20, +0x8C,0x20,0x80,0x2F,0x3A,0x20,0x14,0x04,0x3A,0x20,0x94,0x24,0x3A,0x20,0x14,0x04, +0x3A,0x20,0x94,0x24,0x3A,0x20,0x14,0x00,0x3A,0x20,0x94,0x20,0xF0,0x06,0x44,0x20, +0x04,0x80,0x84,0x20,0x49,0x00,0x0F,0xFA,0x80,0x08,0x46,0x80,0x00,0x80,0x49,0xFF, +0xD2,0x38,0xB0,0x1D,0x49,0xFF,0xD2,0x49,0x04,0x14,0x00,0x70,0x84,0x10,0xFE,0x0E, +0x58,0x00,0x00,0x08,0x14,0x04,0x00,0x70,0x80,0x07,0x49,0xFF,0xD7,0xDF,0x80,0x06, +0x49,0xFF,0xD8,0x12,0x84,0x03,0x49,0xFF,0xF6,0x09,0x84,0x00,0x49,0xFF,0xE2,0x2D, +0x44,0x17,0x20,0x1C,0x46,0x60,0x00,0x81,0xB4,0x01,0x92,0x0C,0x40,0x00,0x30,0x08, +0xB6,0x01,0x44,0x17,0x20,0x24,0xB4,0x01,0x92,0x0C,0x40,0x00,0x30,0x08,0xB6,0x01, +0x04,0x13,0x00,0x3A,0x46,0x0F,0xF8,0xFF,0x50,0x00,0x0F,0x8F,0xFE,0x0E,0x46,0x10, +0x05,0x00,0x50,0x10,0x80,0x40,0xFE,0x0F,0x14,0x03,0x00,0x3A,0x04,0x13,0x00,0x3B, +0x84,0x18,0xFE,0x0E,0x58,0x00,0x00,0x04,0x14,0x03,0x00,0x3B,0x84,0x00,0x49,0xFF, +0xD2,0xE7,0x84,0x03,0x49,0xFF,0xD3,0x17,0x04,0x13,0x00,0x38,0x46,0x00,0xCC,0x0C, +0x50,0x00,0x0F,0xF3,0xFE,0x0E,0x46,0x1A,0x22,0xA2,0x8C,0x28,0xFE,0x0F,0x14,0x03, +0x00,0x38,0x84,0x1F,0x14,0x04,0x00,0x47,0x14,0x04,0x00,0x49,0x04,0x03,0x03,0x97, +0x84,0x41,0x58,0x00,0x02,0x00,0x80,0x62,0x50,0x13,0x06,0x5C,0x14,0x03,0x03,0x97, +0x50,0x03,0x0A,0x5C,0x49,0xFF,0xD5,0xF0,0x84,0x01,0x49,0xFF,0xD8,0xBC,0x46,0x10, +0x00,0x83,0x46,0x0F,0x3F,0xFF,0x04,0x20,0x80,0xEE,0x50,0x00,0x0F,0xFF,0xFE,0x16, +0x44,0x24,0x2C,0x14,0x14,0x00,0x80,0xEE,0xB4,0x02,0x44,0x14,0x2C,0x1C,0xF0,0x92, +0xB4,0x01,0xB4,0x62,0xF0,0x93,0x44,0x0F,0xE0,0xF0,0xFE,0x1E,0x58,0x00,0x00,0x01, +0xB6,0x02,0xB4,0x41,0x46,0x0F,0xFB,0x3F,0x50,0x00,0x0F,0xFF,0xFE,0x16,0x46,0x20, +0x00,0xC0,0xFE,0x17,0x84,0x41,0xB6,0x01,0x80,0x62,0x44,0x04,0x28,0x14,0x44,0x14, +0x24,0x14,0x49,0xFF,0xD5,0xC1,0x84,0x41,0x80,0x62,0x44,0x04,0x28,0x1C,0x44,0x14, +0x24,0x1C,0x49,0xFF,0xD5,0xB9,0x84,0x01,0x84,0x20,0x49,0xFF,0xE4,0x8D,0x46,0x20, +0x00,0x82,0x46,0x0C,0x08,0x0C,0xA0,0x54,0x50,0x00,0x00,0x80,0xFE,0x0E,0x44,0x11, +0x00,0x01,0xFE,0x0F,0xA8,0x14,0x3C,0x0D,0xFC,0x8A,0x5A,0x08,0x01,0x1C,0xF0,0x04, +0xF1,0x07,0x40,0x00,0x20,0x08,0x40,0x80,0x04,0x04,0x44,0x10,0xFF,0xFF,0x4C,0x80, +0x80,0x12,0xF0,0x10,0xF5,0x11,0x40,0x00,0x20,0x08,0xFF,0x47,0xF5,0x84,0xD1,0x0A, +0xE2,0xA8,0xE9,0x04,0x14,0x8F,0x80,0x04,0x81,0x05,0x50,0x64,0x00,0x40,0x97,0xB1, +0xD5,0x08,0x44,0x00,0x00,0x40,0x44,0x60,0x00,0xCC,0xF0,0x84,0x44,0x80,0x00,0x8C, +0x84,0x01,0x80,0x28,0x49,0xFF,0xD9,0x49,0x80,0x26,0x84,0x01,0x49,0xFF,0xFA,0x16, +0x84,0x00,0x84,0x21,0x49,0xFF,0xD8,0xF1,0x80,0x26,0x84,0x05,0x46,0x60,0x00,0x81, +0x49,0xFF,0xFA,0x0C,0x84,0x01,0x84,0x24,0x49,0xFF,0xE4,0x16,0x04,0x13,0x03,0x97, +0x46,0x0F,0x81,0xC0,0x50,0x00,0x0F,0xFF,0xFE,0x0E,0x46,0x10,0x08,0x2D,0xFE,0x0F, +0x14,0x03,0x03,0x97,0x04,0x13,0x03,0x95,0x44,0x0F,0xF0,0x3F,0xFE,0x0E,0x58,0x00, +0x00,0x40,0x14,0x03,0x03,0x95,0x04,0x13,0x03,0x99,0x46,0x0F,0xFC,0x0F,0x50,0x00, +0x0F,0xFF,0xFE,0x0E,0x44,0x17,0x00,0x00,0xFE,0x0F,0x84,0x41,0x80,0x62,0x14,0x03, +0x03,0x99,0x50,0x13,0x06,0x5C,0x50,0x03,0x0A,0x5C,0x49,0xFF,0xD5,0x45,0x84,0x41, +0x80,0x62,0x50,0x03,0x0A,0x54,0x50,0x13,0x06,0x54,0x49,0xFF,0xD5,0x3D,0x84,0x41, +0x50,0x03,0x0A,0x64,0x50,0x13,0x06,0x64,0x80,0x62,0x49,0xFF,0xD5,0x35,0x84,0x04, +0x80,0x28,0x49,0xFF,0xD8,0xFA,0x04,0x13,0x00,0x2F,0x44,0x0F,0xC0,0xFF,0xFE,0x46, +0x58,0x10,0x84,0x00,0x14,0x13,0x00,0x2F,0x04,0x13,0x00,0x2D,0xFE,0x46,0x58,0x10, +0x81,0x00,0x14,0x13,0x00,0x2D,0x04,0x13,0x00,0x2C,0xFE,0x0E,0x58,0x00,0x2D,0x00, +0x14,0x03,0x00,0x2C,0x2E,0x07,0xF2,0x0C,0x5A,0x00,0x02,0x11,0x84,0x01,0x49,0xFF, +0xF5,0x20,0x46,0x01,0x3A,0x60,0x50,0x00,0x0F,0xA6,0x14,0x03,0x00,0x10,0x46,0x00, +0x06,0x40,0x50,0x00,0x01,0x90,0x14,0x03,0x00,0x11,0x84,0x00,0x49,0xFF,0xE3,0x55, +0x84,0x01,0x49,0xFF,0xE3,0x5E,0x84,0x01,0x84,0x20,0x84,0x44,0x84,0x62,0x44,0x40, +0x00,0x30,0xFA,0xA0,0x49,0xFF,0xD5,0x46,0x46,0x00,0x00,0x81,0x44,0x1F,0xFE,0xFF, +0x04,0x20,0x00,0x17,0xFE,0x56,0x14,0x10,0x00,0x17,0xA0,0x46,0x58,0x10,0x80,0x01, +0xA8,0x46,0x3C,0x1D,0xFC,0x8A,0x5A,0x18,0x01,0x41,0xF1,0x05,0x5A,0x10,0x0F,0x09, +0x04,0x00,0x00,0x23,0x80,0xC1,0x92,0x04,0x96,0x1F,0xF0,0x87,0xD5,0x04,0x84,0x00, +0xF0,0x87,0x84,0xC9,0xF0,0x09,0x5A,0x08,0xFF,0x05,0xF0,0x0A,0x5A,0x00,0xFF,0x12, +0x50,0x0F,0x80,0x5B,0xB6,0x1F,0x50,0x1F,0x80,0x56,0x50,0x0F,0x80,0x55,0x50,0x2F, +0x80,0x57,0xB0,0xD6,0x50,0x4F,0x80,0x59,0x50,0x5F,0x80,0x5A,0x49,0xFF,0xFA,0x4C, +0x84,0xE1,0xF0,0x09,0xF1,0x0A,0x80,0x47,0x80,0xA7,0xB6,0xFF,0x84,0x65,0x84,0x80, +0x49,0xFF,0xFA,0x69,0xF0,0x0D,0x44,0x10,0xFF,0xFF,0xB6,0x1F,0xF0,0x0E,0x80,0x47, +0xF0,0x81,0xF0,0x0F,0xF3,0x0B,0xF0,0x82,0x84,0x00,0xF0,0x83,0xF4,0x0C,0x80,0x07, +0x80,0xA7,0x49,0xFF,0xFA,0xF7,0xD5,0x04,0x84,0x00,0xF0,0x87,0x84,0xC9,0x84,0x00, +0x49,0xFF,0xF7,0x04,0x46,0x10,0x00,0x80,0x46,0x05,0x55,0x55,0x50,0x00,0x05,0x55, +0x14,0x00,0x80,0x47,0x14,0x00,0x80,0x49,0x49,0xFF,0xD4,0xCB,0x49,0xFF,0xF4,0xBD, +0x84,0x01,0x49,0xFF,0xF6,0xF3,0x3C,0x0D,0xFC,0x8A,0xC0,0x04,0x93,0x24,0x5A,0x98, +0x0F,0x1D,0xF0,0x08,0x85,0x24,0x9B,0xF0,0xE0,0xE9,0xE9,0x21,0x49,0xFF,0xF9,0x6D, +0x49,0xFF,0xF4,0xA1,0x49,0xFF,0xD5,0x0D,0xF0,0x89,0x49,0xFF,0xD4,0xB2,0xF0,0x09, +0xC0,0x16,0x50,0x04,0x80,0x01,0x54,0x90,0x00,0xFF,0x80,0x29,0x84,0x01,0x49,0xFF, +0xE3,0x1B,0x49,0xFF,0xF4,0x9A,0xD5,0xE9,0xF0,0x05,0xE2,0x09,0xE8,0x04,0x8E,0x01, +0x54,0x90,0x00,0xFF,0x84,0x01,0x80,0x29,0x49,0xFF,0xE3,0x0E,0x49,0xFF,0xF4,0x83, +0x84,0x00,0x49,0xFF,0xF6,0xC3,0xF0,0x08,0x9B,0xF0,0xE1,0x27,0xE9,0x07,0x54,0x93, +0x80,0xFF,0x84,0x01,0x80,0x29,0x49,0xFF,0xE2,0xFF,0xE1,0x27,0xE8,0x12,0x84,0x20, +0x8A,0xC9,0xB0,0xD7,0x9C,0x89,0x88,0x23,0x96,0x11,0xA7,0x49,0x8C,0xA1,0xDE,0x06, +0x96,0x00,0x84,0x21,0x49,0xFF,0xD7,0xC1,0xD5,0x04,0x80,0x22,0x5A,0x28,0x09,0xF3, +0x49,0xFF,0xF4,0x61,0x46,0x65,0x55,0x55,0x84,0x01,0x49,0xFF,0xF6,0x9F,0x50,0x63, +0x05,0x55,0x84,0x40,0x80,0x06,0x80,0xA2,0x80,0x28,0x80,0x6A,0x50,0x4F,0x81,0x10, +0x49,0xFF,0xFC,0xD3,0x80,0x06,0x84,0x40,0x46,0x6A,0xAA,0xAA,0x80,0xA2,0x50,0x63, +0x0A,0xAA,0xF1,0x04,0x80,0x6A,0x50,0x4F,0x85,0x90,0x49,0xFF,0xFC,0xC6,0x80,0x06, +0x80,0x28,0x84,0x41,0x80,0x6A,0x50,0x4F,0x81,0x10,0x84,0xA0,0x49,0xFF,0xFC,0xBD, +0x80,0x06,0xF1,0x04,0x84,0x41,0x80,0x6A,0x50,0x4F,0x85,0x90,0x84,0xA0,0x49,0xFF, +0xFC,0xB4,0x40,0x65,0x08,0x09,0x50,0x0F,0x81,0x10,0x50,0x1F,0x85,0x90,0xF2,0x06, +0x49,0xFF,0xF9,0x3C,0x97,0xB1,0x85,0x20,0x44,0x00,0x00,0xFF,0x40,0xA0,0x24,0x0C, +0xFA,0x02,0x42,0x04,0x80,0x24,0x96,0x01,0xF0,0x88,0x50,0x7F,0x81,0x10,0x80,0x0A, +0x80,0x28,0xF2,0x08,0x80,0x66,0x80,0x87,0x84,0xA1,0x49,0xFF,0xFC,0x96,0x8D,0x28, +0x80,0x0A,0xF1,0x04,0xF2,0x08,0x80,0x66,0x50,0x4F,0x85,0x90,0x84,0xA1,0x49,0xFF, +0xFC,0x8C,0x5A,0x98,0x20,0xE3,0x80,0x07,0x50,0x1F,0x85,0x90,0xF2,0x06,0x46,0xA0, +0x30,0x30,0x49,0xFF,0xF9,0x13,0x50,0x05,0x03,0x03,0x85,0x20,0xF0,0x89,0xF7,0x88, +0xF0,0x09,0x40,0x74,0x80,0x13,0x40,0xA0,0x24,0x0C,0x80,0x0A,0x80,0x28,0x80,0x47, +0x80,0x66,0xF4,0x08,0x84,0xA2,0x49,0xFF,0xFC,0x70,0x8D,0x22,0x80,0x0A,0xF1,0x04, +0x80,0x47,0x80,0x66,0x50,0x4F,0x85,0x90,0x84,0xA2,0x49,0xFF,0xFC,0x66,0x5A,0x98, +0x08,0xE9,0xF2,0x06,0xF0,0x08,0x50,0x1F,0x85,0x90,0x49,0xFF,0xF8,0xEF,0x46,0x00, +0x00,0x80,0x84,0x3F,0x46,0x60,0x00,0x81,0x14,0x10,0x00,0x47,0x14,0x10,0x00,0x49, +0x04,0x03,0x00,0x17,0x84,0xFE,0x58,0x00,0x01,0x00,0x14,0x03,0x00,0x17,0xA0,0x36, +0xFE,0x3E,0xA8,0x36,0x84,0x01,0x49,0xFF,0xD6,0x76,0xF1,0x12,0x44,0x04,0x2C,0x14, +0x84,0x41,0xB6,0x20,0xF1,0x13,0x44,0x04,0x2C,0x1C,0x80,0x62,0xB6,0x20,0x44,0x04, +0x28,0x14,0x44,0x14,0x24,0x14,0x49,0xFF,0xD3,0x97,0x84,0x41,0x80,0x62,0x44,0x04, +0x28,0x1C,0x44,0x14,0x24,0x1C,0x49,0xFF,0xD3,0x8F,0x46,0x00,0x00,0x82,0xA0,0x44, +0xFF,0xCE,0xA9,0xC4,0xA0,0x84,0x44,0x1E,0xFF,0xFF,0xFE,0x56,0xA8,0x44,0x84,0x01, +0x49,0xFF,0xF3,0x4C,0xB0,0x38,0x49,0xFF,0xD5,0x19,0xB0,0x26,0x49,0xFF,0xD5,0x4C, +0x84,0x01,0x49,0xFF,0xE1,0xCA,0x84,0x00,0x49,0xFF,0xE1,0xD3,0x84,0x01,0x84,0x22, +0x80,0x61,0x80,0xA0,0x84,0x44,0x44,0x40,0x00,0x3F,0x49,0xFF,0xD3,0xBB,0x84,0x20, +0x84,0x01,0x49,0xFF,0xE2,0x41,0x49,0x00,0x06,0xBD,0x84,0x00,0x49,0xFF,0xF3,0x97, +0x84,0x00,0x49,0xFF,0xF3,0xDC,0x2E,0x07,0xF2,0x0C,0x5A,0x00,0x02,0x11,0x84,0x00, +0x49,0xFF,0xF3,0x67,0x46,0x00,0xDE,0x90,0x50,0x00,0x09,0xE9,0x14,0x03,0x00,0x10, +0x46,0x00,0x06,0x40,0x50,0x00,0x01,0x90,0x14,0x03,0x00,0x11,0x84,0x00,0x49,0xFF, +0xF2,0xBF,0x3C,0x1D,0xFC,0x8A,0x5A,0x18,0x01,0x26,0xF0,0x05,0x5A,0x00,0x0F,0x05, +0xF0,0x07,0x49,0xFF,0xD6,0xBA,0x00,0x6F,0x80,0x5B,0x00,0x0F,0x80,0x55,0x00,0x1F, +0x80,0x56,0x00,0x2F,0x80,0x57,0x00,0x3F,0x80,0x58,0x00,0x4F,0x80,0x59,0x00,0x5F, +0x80,0x5A,0xB6,0xDF,0x49,0xFF,0xF8,0xDF,0xF0,0x0E,0x44,0x10,0x00,0xF0,0xB6,0x1F, +0xF0,0x0F,0xF3,0x0B,0xF0,0x81,0x84,0x01,0x80,0x40,0xF4,0x0C,0xF5,0x0D,0x49,0xFF, +0xF9,0x3A,0x49,0xFF,0xF8,0x95,0x44,0x00,0x00,0x51,0x3E,0x07,0xF0,0x60,0x51,0xFF, +0x8A,0x10,0xFC,0xC0,0xFC,0x48,0x2E,0x07,0xF2,0x1B,0x2E,0x87,0xF2,0x1D,0xF0,0x8C, +0x2E,0x07,0xF2,0x1C,0x2E,0x67,0xF2,0x22,0xF0,0x8D,0x2E,0x07,0xF2,0x1E,0xF0,0x86, +0x54,0x00,0x00,0x06,0x92,0x01,0xF0,0x85,0x2E,0x07,0xF2,0x1F,0xF0,0x87,0x2E,0x07, +0xF2,0x20,0x54,0x10,0x00,0x0F,0x92,0x04,0x96,0x06,0xF0,0x89,0x2E,0x07,0xF2,0x21, +0xF1,0x88,0x54,0x10,0x00,0x0F,0x92,0x04,0xF0,0x8B,0x84,0x1F,0x10,0x0F,0x80,0x39, +0x10,0x0F,0x80,0x3A,0x10,0x0F,0x80,0x3B,0x10,0x0F,0x80,0x3C,0x10,0x0F,0x80,0x3D, +0x10,0x0F,0x80,0x3E,0x10,0x0F,0x80,0x3F,0x2E,0x07,0xF2,0x19,0xF1,0x8A,0x5A,0x08, +0x08,0x08,0x2E,0x07,0xF2,0x23,0x2E,0x97,0xF2,0x24,0xF0,0x84,0xD5,0x0B,0x5A,0x08, +0x05,0x06,0x2E,0x97,0xF2,0x23,0xF6,0x84,0xD5,0x05,0x44,0x90,0x00,0xFF,0x14,0x9F, +0x80,0x04,0x3C,0x7D,0xFC,0x8A,0x5A,0x78,0x01,0x16,0x2E,0x07,0xF2,0x0C,0x5A,0x00, +0x02,0x12,0xF0,0x05,0xC8,0x06,0x80,0x07,0x49,0xFF,0xF2,0xD3,0x80,0x07,0xD5,0x08, +0xF0,0x05,0x5A,0x08,0x01,0x08,0x84,0x00,0x49,0xFF,0xF2,0xCB,0x84,0x00,0x49,0xFF, +0xF2,0x19,0x2E,0x07,0xF2,0x19,0x5A,0x08,0x05,0x26,0x46,0x00,0x00,0x82,0xA0,0x44, +0x58,0x10,0x80,0x01,0xA8,0x44,0xA0,0x84,0x44,0x11,0x00,0x00,0xFE,0x57,0xA8,0x44, +0x84,0x00,0x80,0x20,0x49,0xFF,0xF7,0x46,0x84,0x00,0x80,0x20,0x49,0xFF,0xE1,0x7C, +0x46,0x10,0x00,0x81,0x44,0x0F,0xFD,0xFF,0x04,0x20,0x80,0x33,0xFE,0x16,0x14,0x00, +0x80,0x33,0x84,0x00,0x84,0x21,0x49,0xFF,0xD6,0xB4,0x84,0x00,0x80,0x20,0x49,0xFF, +0xCD,0x6B,0x84,0x00,0x49,0xFF,0xD1,0x34,0x84,0x00,0x49,0xFF,0xD1,0x45,0x3C,0x0D, +0xFC,0x8A,0x84,0xE0,0x5A,0x08,0x01,0x73,0x84,0xE0,0x5A,0x80,0xFF,0x0F,0x46,0x00, +0x00,0x81,0x84,0x20,0x04,0x70,0x00,0x23,0x80,0x08,0x49,0xFF,0xF9,0x23,0x80,0x08, +0x84,0x23,0x97,0xDF,0x49,0xFF,0xF9,0x1E,0xF0,0x04,0x5A,0x08,0xFF,0x04,0x5A,0x90, +0xFF,0x12,0x50,0x0F,0x80,0x3F,0xB6,0x1F,0x50,0x1F,0x80,0x3A,0x50,0x0F,0x80,0x39, +0x50,0x2F,0x80,0x3B,0xB0,0xCF,0x50,0x4F,0x80,0x3D,0x50,0x5F,0x80,0x3E,0x49,0xFF, +0xF7,0xEB,0x85,0x41,0xF0,0x04,0x80,0x29,0x80,0x4A,0x84,0x65,0x84,0x80,0x80,0xAA, +0xB7,0x5F,0x49,0xFF,0xF8,0x08,0xF0,0x0C,0xF2,0x0D,0x40,0x10,0x20,0x08,0xF0,0x09, +0xFE,0x57,0xB6,0x1F,0xF0,0x0A,0xF3,0x07,0xF0,0x81,0xF0,0x0B,0xF4,0x08,0xF0,0x82, +0xF0,0x06,0x40,0x00,0x28,0x02,0xF0,0x83,0x84,0x00,0x80,0x40,0x80,0xA0,0x49,0xFF, +0xF8,0x91,0x2E,0x07,0xF2,0x19,0x5A,0x08,0x08,0x2A,0x96,0x32,0x4E,0x05,0x00,0x04, +0x80,0x0A,0xD5,0x02,0x84,0x00,0x49,0xFF,0xDC,0xD2,0x54,0x13,0x00,0x01,0x46,0x00, +0x00,0x82,0xC9,0x13,0xA0,0x44,0x58,0x10,0x80,0x01,0xA8,0x44,0xA0,0x84,0x44,0x11, +0x00,0x00,0xFE,0x57,0xA8,0x44,0x40,0x03,0x18,0x09,0x54,0x13,0x00,0x3E,0x96,0x06, +0x92,0x21,0x49,0xFF,0xF6,0xBF,0xD5,0x0A,0xA0,0x84,0x84,0x3E,0xFE,0x56,0xA8,0x44, +0xA0,0x84,0x44,0x1E,0xFF,0xFF,0xFE,0x56,0xA8,0x44,0x49,0xFF,0xF7,0x37,0x84,0x01, +0x49,0xFF,0xD0,0xB6,0x84,0x01,0x49,0xFF,0xD0,0xC7,0x2E,0x07,0xF2,0x19,0x5A,0x08, +0x08,0x08,0x84,0x00,0x49,0xFF,0xF4,0x6A,0x49,0xFF,0xF2,0x25,0xD5,0x19,0x5A,0x08, +0x05,0x18,0x46,0x00,0x00,0x82,0x84,0x3E,0xA0,0x84,0xFE,0x56,0xA8,0x44,0xA0,0x84, +0x44,0x1E,0xFF,0xFF,0xFE,0x56,0xA8,0x44,0x46,0x10,0x00,0x81,0x04,0x00,0x80,0x33, +0x58,0x00,0x02,0x00,0x14,0x00,0x80,0x33,0x84,0x00,0x49,0xFF,0xF3,0x2A,0x3C,0x0D, +0xFC,0x8A,0x5A,0x08,0x01,0x4F,0x2E,0x07,0xF2,0x19,0x5A,0x08,0x08,0x16,0x54,0x03, +0x00,0x01,0xC8,0x0C,0x46,0x00,0x00,0x82,0x84,0x3E,0xA0,0x84,0xFE,0x56,0xA8,0x44, +0xA0,0x84,0x44,0x1E,0xFF,0xFF,0xFE,0x56,0xA8,0x44,0x97,0xB2,0x4E,0x65,0x00,0x05, +0x84,0x00,0x49,0xFF,0xDC,0x6C,0x5A,0x80,0xFF,0x0A,0x80,0x07,0x84,0x20,0x49,0xFF, +0xD5,0x44,0x80,0x07,0x84,0x23,0x49,0xFF,0xD5,0x40,0xF0,0x05,0x5A,0x00,0x01,0x0C, +0x2E,0x07,0xF2,0x0C,0x5A,0x00,0x02,0x08,0x84,0x00,0x49,0xFF,0xF1,0xCA,0x84,0x00, +0x49,0xFF,0xF1,0x18,0x00,0x6F,0x80,0x3F,0x00,0x0F,0x80,0x39,0x00,0x1F,0x80,0x3A, +0x00,0x2F,0x80,0x3B,0x00,0x3F,0x80,0x3C,0x00,0x4F,0x80,0x3D,0x00,0x5F,0x80,0x3E, +0xB6,0xDF,0x49,0xFF,0xF7,0x58,0xF0,0x0A,0x44,0x10,0x00,0xF0,0xB6,0x1F,0xF0,0x0B, +0xF3,0x07,0xF0,0x81,0x84,0x00,0x80,0x40,0xF4,0x08,0xF5,0x09,0x49,0xFF,0xF7,0xB3, +0x49,0xFF,0xF7,0x0E,0x44,0x00,0x00,0x51,0x3E,0x07,0xF0,0x60,0xFC,0xC8,0xFC,0x40, +0x51,0xFF,0xF6,0xB8,0x80,0xE0,0x80,0xC1,0x81,0x22,0x84,0x20,0x44,0x20,0x04,0x80, +0xB0,0x12,0x49,0x00,0x0B,0x2B,0x84,0x20,0x44,0x20,0x04,0x80,0x50,0x0F,0x84,0xC8, +0x49,0x00,0x0B,0x24,0x2E,0x07,0xF2,0x1C,0x2E,0x17,0xF2,0x1B,0xF0,0x8D,0x2E,0x07, +0xF2,0x1D,0x2E,0x87,0xF2,0x1E,0xF0,0x8E,0x2E,0x07,0xF2,0x1F,0x2E,0xA7,0xF2,0x23, +0xF0,0x86,0x2E,0x07,0xF2,0x20,0x54,0x20,0x00,0x0F,0x92,0x04,0x96,0x06,0xF0,0x88, +0x2E,0x07,0xF2,0x21,0xF2,0x87,0x54,0x20,0x00,0x0F,0x92,0x04,0xF0,0x8A,0x2E,0x07, +0xF2,0x22,0xF2,0x89,0xF0,0x8B,0x84,0x1F,0x10,0x0F,0x80,0x41,0x10,0x0F,0x80,0x42, +0x10,0x0F,0x80,0x43,0x10,0x0F,0x80,0x44,0x10,0x0F,0x80,0x45,0x10,0x0F,0x80,0x46, +0x10,0x0F,0x80,0x47,0x3C,0x0D,0xFC,0x8A,0x5A,0x00,0x01,0x08,0x40,0x73,0xA0,0x08, +0xFF,0xBF,0x40,0x04,0x80,0x13,0xD5,0x08,0x84,0xCA,0x5A,0x10,0xFF,0x03,0x80,0xC1, +0x2E,0x07,0xF2,0x1A,0x96,0x06,0xF0,0x85,0xF0,0x05,0x5A,0x08,0x01,0x14,0x46,0x00, +0x00,0x82,0xA0,0x44,0x58,0x10,0x80,0x01,0xA8,0x44,0xA0,0x84,0x44,0x11,0x00,0x00, +0xFE,0x57,0xA8,0x44,0x84,0x00,0x80,0x20,0x49,0xFF,0xF5,0xCC,0xF0,0x05,0x49,0xFF, +0xDB,0xC6,0x49,0xFF,0xF1,0x2A,0xF0,0x8F,0x49,0xFF,0xF1,0x2A,0xF0,0x8C,0x84,0x00, +0x49,0xFF,0xCF,0xC6,0x84,0x00,0x49,0xFF,0xCF,0xD7,0x3C,0x0D,0xFC,0x8A,0x84,0xE0, +0x5A,0x08,0x01,0x45,0x84,0xE0,0x5A,0x80,0xFF,0x0F,0x46,0x00,0x00,0x81,0x84,0x20, +0x04,0x70,0x00,0x23,0x80,0x08,0x49,0xFF,0xF7,0xB5,0x80,0x08,0x84,0x23,0x97,0xDF, +0x49,0xFF,0xF7,0xB0,0xF0,0x0B,0x5A,0x08,0xFF,0x04,0x5A,0xA0,0xFF,0x12,0x50,0x0F, +0x80,0x47,0xB6,0x1F,0x50,0x1F,0x80,0x42,0x50,0x0F,0x80,0x41,0x50,0x2F,0x80,0x43, +0xB0,0xD1,0x50,0x4F,0x80,0x45,0x50,0x5F,0x80,0x46,0x49,0xFF,0xF6,0x7D,0x85,0x21, +0xF0,0x0B,0x80,0x2A,0x80,0x49,0x84,0x65,0x84,0x80,0x80,0xA9,0xB7,0x3F,0x49,0xFF, +0xF6,0x9A,0xF0,0x0D,0xF2,0x0E,0x40,0x10,0x20,0x08,0xF0,0x08,0xFE,0x57,0xB6,0x1F, +0xF0,0x09,0x14,0x9F,0x80,0x03,0xF0,0x81,0xF0,0x0A,0xF3,0x06,0xF0,0x82,0x84,0x00, +0x80,0x40,0xF4,0x07,0x80,0xA0,0x49,0xFF,0xF7,0x25,0x49,0xFF,0xF5,0xF7,0x85,0x20, +0x50,0xAF,0x84,0xC8,0x4C,0x93,0x00,0x36,0x49,0xFF,0xF5,0xF0,0xF2,0x0C,0x84,0x00, +0xB0,0xD2,0x9F,0x31,0xF1,0x0F,0x38,0x10,0x81,0x11,0x4E,0x93,0x00,0x11,0x38,0x15, +0x01,0x09,0x38,0x11,0x81,0x09,0x5A,0x68,0x01,0x1F,0xA5,0x50,0x9A,0x69,0x96,0x49, +0x97,0x4B,0xAD,0x50,0x4E,0x54,0x00,0x18,0xFE,0x4A,0xD5,0x14,0x38,0x55,0x01,0x11, +0xE0,0xA1,0xE8,0x03,0x38,0x15,0x01,0x09,0x38,0xF1,0x81,0x11,0xE0,0x2F,0xE8,0x03, +0x38,0x11,0x81,0x09,0x4C,0x92,0x40,0x08,0x38,0x15,0x01,0x01,0x38,0x51,0x81,0x01, +0x8A,0x25,0xAC,0x50,0x8C,0x01,0x8C,0x42,0x5A,0x0A,0x40,0xD6,0x8D,0x21,0xD5,0xCB, +0x46,0x00,0x00,0x82,0x84,0x3E,0xA0,0x84,0xFE,0x56,0xA8,0x44,0xA0,0x84,0x44,0x1E, +0xFF,0xFF,0xFE,0x56,0xA8,0x44,0x84,0x01,0x49,0xFF,0xCF,0x32,0x84,0x01,0x49,0xFF, +0xCF,0x43,0x4E,0x92,0x00,0x09,0xF0,0x05,0x5A,0x08,0x01,0x0D,0x84,0x00,0x49,0xFF, +0xDB,0x1E,0xD5,0x08,0xF5,0x0C,0x50,0x02,0x84,0x80,0x1A,0x92,0x80,0x01,0xD8,0xFE, +0xD5,0xF3,0x3C,0x0D,0xFC,0x8A,0x5A,0x08,0x01,0x2A,0x5A,0x80,0xFF,0x0A,0x80,0x07, +0x84,0x20,0x49,0xFF,0xD3,0xEA,0x80,0x07,0x84,0x23,0x49,0xFF,0xD3,0xE6,0x00,0x6F, +0x80,0x47,0x00,0x0F,0x80,0x41,0x00,0x1F,0x80,0x42,0x00,0x2F,0x80,0x43,0x00,0x3F, +0x80,0x44,0x00,0x4F,0x80,0x45,0x00,0x5F,0x80,0x46,0xB6,0xDF,0x49,0xFF,0xF6,0x0B, +0xF0,0x09,0x44,0x10,0x00,0xF0,0xB6,0x1F,0xF0,0x0A,0xF3,0x06,0xF0,0x81,0x84,0x00, +0x80,0x40,0xF4,0x07,0xF5,0x08,0x49,0xFF,0xF6,0x66,0x49,0xFF,0xF5,0xC1,0x44,0x00, +0x00,0x51,0x3E,0x07,0xF0,0x60,0x51,0xFF,0x89,0x48,0xFC,0xC0,0xFC,0x40,0x51,0xFF, +0xF5,0x40,0x49,0xFF,0xCC,0xD3,0xF0,0x8D,0x84,0x20,0x44,0x20,0x04,0x80,0x50,0x0F, +0x81,0xC0,0x49,0x00,0x09,0xDB,0x44,0x20,0x04,0x80,0x84,0x20,0x50,0x0F,0x86,0x40, +0x49,0x00,0x09,0xD4,0x2E,0x07,0xF2,0x1F,0x2E,0x77,0xF2,0x1E,0xF0,0x87,0x2E,0x07, +0xF2,0x20,0x2E,0xA7,0xF2,0x23,0x54,0x10,0x00,0x0F,0x92,0x04,0x96,0x06,0xF0,0x89, +0x2E,0x07,0xF2,0x21,0xF1,0x88,0x54,0x10,0x00,0x0F,0x92,0x04,0xF0,0x8B,0x2E,0x07, +0xF2,0x22,0xF1,0x8A,0x2E,0x17,0xF2,0x1B,0xF0,0x8C,0x84,0x1F,0xF1,0x85,0x10,0x0F, +0x80,0x39,0x10,0x0F,0x80,0x3A,0x10,0x0F,0x80,0x3B,0x10,0x0F,0x80,0x3C,0x10,0x0F, +0x80,0x3D,0x10,0x0F,0x80,0x3E,0x10,0x0F,0x80,0x3F,0x2E,0x67,0xF2,0x1C,0x2E,0x87, +0xF2,0x1D,0x49,0xFF,0xF0,0x05,0xF0,0x86,0x84,0x01,0x49,0xFF,0xDA,0x73,0x2E,0x07, +0xF2,0x19,0x54,0x93,0x80,0x01,0xF1,0x05,0x5A,0x08,0x32,0x10,0x2E,0x67,0xF2,0x1C, +0x2E,0x07,0xF2,0x1D,0x40,0x63,0x20,0x08,0xFF,0x87,0x2E,0x77,0xF2,0x1E,0x85,0x21, +0x5A,0x10,0xFF,0x16,0x81,0x01,0xD5,0x14,0x5A,0x00,0x33,0x07,0x40,0x63,0x20,0x08, +0x40,0x63,0x20,0x04,0xD5,0x0A,0x2E,0x67,0xF2,0x1B,0x2E,0x07,0xF2,0x1C,0x40,0x63, +0x20,0x08,0xFF,0x87,0x2E,0x77,0xF2,0x1D,0x85,0x00,0xD5,0x02,0x85,0x0A,0x3C,0x0D, +0xFC,0x8A,0x5A,0x08,0x01,0x44,0x5A,0x70,0xFF,0x11,0x46,0x00,0x00,0x81,0x84,0x20, +0x04,0x00,0x00,0x23,0x96,0x1F,0xF0,0x85,0x80,0x07,0x49,0xFF,0xF6,0x6B,0x80,0x07, +0x84,0x23,0x49,0xFF,0xF6,0x67,0xD5,0x03,0x84,0x00,0xF0,0x85,0xF0,0x0C,0x5A,0x08, +0xFF,0x04,0x5A,0xA0,0xFF,0x12,0x50,0x0F,0x80,0x3F,0xB6,0x1F,0x50,0x1F,0x80,0x3A, +0x50,0x0F,0x80,0x39,0x50,0x2F,0x80,0x3B,0xB0,0xCF,0x50,0x4F,0x80,0x3D,0x50,0x5F, +0x80,0x3E,0x49,0xFF,0xF5,0x31,0x84,0x41,0xB6,0x5F,0xF0,0x0C,0x80,0x2A,0x80,0xA2, +0x84,0x65,0x84,0x80,0x49,0xFF,0xF5,0x4F,0xF0,0x09,0x14,0x9F,0x80,0x03,0xB6,0x1F, +0xF0,0x0A,0x80,0x26,0xF0,0x81,0xF0,0x0B,0xF3,0x07,0xF0,0x82,0x84,0x00,0x80,0x40, +0xF4,0x08,0x80,0xA0,0x49,0xFF,0xF5,0xDE,0xD5,0x03,0x84,0x00,0xF0,0x85,0x49,0xFF, +0xCD,0x16,0xC0,0x09,0x49,0x00,0x03,0x71,0xE6,0x03,0xE9,0x30,0x84,0x00,0x49,0xFF, +0xCC,0x05,0xD5,0x2C,0x2E,0x07,0xF2,0x0C,0x5A,0x00,0x02,0xF6,0x84,0x01,0x3E,0x07, +0xF1,0xF4,0xFA,0x2E,0x3E,0x07,0xF1,0xF3,0x84,0x0B,0x49,0x00,0x03,0xD1,0x84,0x0B, +0x84,0x21,0x49,0x00,0x03,0xDB,0x84,0x01,0x49,0xFF,0xCC,0xEF,0x49,0xFF,0xCC,0xF7, +0x5A,0x00,0x01,0x0C,0x84,0x0B,0x49,0x00,0x03,0xEC,0x5A,0x08,0x01,0xF9,0x84,0x00, +0x3E,0x07,0xF1,0xF4,0x3E,0x07,0xF1,0xF3,0x84,0x0B,0x84,0x20,0x49,0x00,0x03,0xC6, +0x2E,0x07,0xF1,0xF4,0x4E,0x02,0x01,0x7C,0xD5,0xCE,0x84,0x00,0x49,0xFF,0xCB,0xC8, +0x84,0x00,0x49,0xFF,0xEF,0x84,0x84,0x00,0x49,0xFF,0xEE,0xC2,0x84,0x01,0x49,0xFF, +0xEE,0xCB,0x49,0xFF,0xEE,0x72,0x49,0xFF,0xEE,0x5B,0x84,0x03,0x49,0xFF,0xEF,0x0E, +0x84,0x00,0x49,0xFF,0xDB,0x32,0x49,0x00,0x03,0x2C,0x84,0x03,0x49,0xFF,0xD5,0x9B, +0x44,0x00,0x7F,0xFF,0x49,0x00,0x03,0x30,0x84,0x00,0x49,0xFF,0xD5,0xBE,0x84,0x00, +0x49,0xFF,0xD4,0xBA,0x84,0x00,0x49,0xFF,0xCE,0x5F,0x84,0x00,0x80,0x20,0x49,0xFF, +0xD7,0x03,0x49,0xFF,0xD7,0x73,0xF0,0x8C,0x84,0x00,0x49,0xFF,0xD7,0x66,0x84,0x01, +0x49,0xFF,0xD0,0x70,0x49,0xFF,0xD6,0x5C,0x49,0xFF,0xCE,0xB4,0x5A,0x00,0x01,0xFE, +0x84,0x01,0x49,0xFF,0xF1,0x7B,0x49,0xFF,0xEF,0x40,0x46,0x10,0x00,0x91,0x04,0x00, +0x80,0x11,0x58,0x00,0x00,0x02,0x14,0x00,0x80,0x11,0x2E,0x07,0xF2,0x19,0x5A,0x08, +0x32,0x23,0xF0,0x06,0x84,0x20,0x44,0x20,0x04,0x80,0x49,0x00,0x08,0xA7,0x85,0x20, +0x44,0x64,0x80,0x08,0x50,0x04,0x00,0x02,0xE3,0x20,0xE8,0x51,0x84,0x01,0x85,0x40, +0x49,0xFF,0xF1,0x52,0x3E,0xA7,0xF0,0xFB,0x49,0xFF,0xDA,0xFD,0x3E,0xA7,0xF0,0xFA, +0x2E,0x07,0xF0,0xFA,0x4E,0x03,0x00,0xC1,0x3C,0x0D,0xFE,0x0F,0x5A,0x08,0x01,0xFA, +0x48,0x00,0x00,0xBB,0x5A,0x08,0x33,0x3C,0x84,0x01,0x44,0xA4,0x80,0x08,0x49,0xFF, +0xF1,0x3B,0x85,0x23,0x80,0xCA,0x85,0x00,0x3E,0x87,0xF0,0xFB,0x49,0xFF,0xDA,0xE3, +0x3E,0x87,0xF0,0xFA,0x2E,0x07,0xF0,0xFA,0xC0,0x4E,0x84,0x00,0x3E,0x07,0xF0,0xFA, +0xB4,0x0A,0x92,0x02,0x96,0x06,0xC0,0xFD,0x84,0x04,0xAE,0x30,0x50,0x04,0xFF,0xFF, +0x40,0x90,0x00,0x13,0x4E,0x93,0xFF,0xE9,0x80,0x09,0xB1,0x90,0x49,0xFF,0xF1,0x1C, +0x80,0x06,0x44,0x10,0x00,0xC0,0x49,0xFF,0xE1,0xDE,0x44,0x20,0x04,0x80,0xF0,0x06, +0x80,0x29,0x49,0x00,0x08,0x5B,0x84,0x46,0xF3,0x06,0x42,0x04,0x88,0x24,0x38,0x13, +0x25,0x11,0x8D,0x21,0x38,0x11,0x80,0x09,0x5A,0x98,0xC0,0xF8,0x46,0x10,0x00,0x91, +0x84,0x1D,0x04,0x20,0x80,0x11,0xFE,0x16,0x14,0x00,0x80,0x11,0x49,0xFF,0xD5,0xE0, +0x84,0x00,0x49,0xFF,0xF1,0x03,0x84,0x00,0x49,0xFF,0xD9,0x14,0x84,0x00,0x49,0xFF, +0xCF,0xE9,0xF0,0x0C,0x49,0xFF,0xD6,0xD9,0x84,0x20,0x84,0x01,0x49,0xFF,0xD6,0x6C, +0x84,0x01,0x49,0xFF,0xCD,0xC1,0x49,0xFF,0xE2,0xA7,0x2E,0x07,0xF1,0xF4,0x5A,0x08, +0x01,0x10,0xD5,0x06,0x3C,0x0D,0xFE,0x0F,0x5A,0x08,0x01,0xAE,0xD5,0xAF,0x49,0xFF, +0xE4,0x5C,0xC8,0x06,0x49,0xFF,0xCC,0x01,0x49,0xFF,0xCC,0x09,0xC8,0xFE,0x84,0x00, +0x3E,0x07,0xF1,0xF4,0x3E,0x07,0xF1,0xF3,0xF0,0x0D,0x49,0xFF,0xCA,0xF7,0x84,0x01, +0x49,0xFF,0xCA,0xE6,0x84,0x00,0x49,0xFF,0xEE,0xA2,0x84,0x00,0x49,0xFF,0xED,0xE0, +0x84,0x00,0x49,0xFF,0xED,0xE9,0x49,0xFF,0xED,0x90,0x84,0x01,0x49,0xFF,0xD3,0xEC, +0x3C,0x0D,0xFC,0x8A,0x5A,0x08,0x01,0x2A,0x5A,0x70,0xFF,0x0A,0xF0,0x05,0x84,0x20, +0x49,0xFF,0xD1,0xD3,0xF0,0x05,0x84,0x23,0x49,0xFF,0xD1,0xCF,0x00,0x6F,0x80,0x3F, +0x00,0x0F,0x80,0x39,0x00,0x1F,0x80,0x3A,0x00,0x2F,0x80,0x3B,0x00,0x3F,0x80,0x3C, +0x00,0x4F,0x80,0x3D,0x00,0x5F,0x80,0x3E,0xB6,0xDF,0x49,0xFF,0xF3,0xF4,0xF0,0x0A, +0x44,0x10,0x00,0xF0,0xB6,0x1F,0xF0,0x0B,0xF3,0x07,0xF0,0x81,0x84,0x00,0x80,0x40, +0xF4,0x08,0xF5,0x09,0x49,0xFF,0xF4,0x4F,0x49,0xFF,0xF3,0xAA,0x44,0x00,0x00,0x51, +0x3E,0x07,0xF0,0x60,0xD5,0x54,0x84,0x00,0x3E,0x07,0xF0,0xFA,0xB4,0x06,0x92,0x02, +0x96,0x06,0xC0,0xFD,0x44,0x14,0x80,0x08,0x84,0x04,0xAE,0x08,0x84,0x00,0x49,0xFF, +0xF0,0x7B,0xE7,0x22,0xE9,0x3E,0x50,0xAF,0x80,0x40,0x80,0x0A,0x44,0x10,0x00,0xC0, +0x49,0xFF,0xE1,0x39,0xF3,0x06,0x84,0x20,0x50,0x0F,0x86,0x40,0x50,0x4F,0x81,0xC0, +0x51,0xE4,0x00,0x01,0x5A,0x98,0x02,0x14,0x38,0x55,0x05,0x11,0x38,0x50,0x05,0x09, +0x38,0x52,0x05,0x09,0x5A,0x88,0x01,0x22,0xA4,0x98,0x8A,0x45,0x96,0x91,0x97,0x53, +0x4E,0x55,0x00,0x04,0xAD,0x58,0xD5,0x19,0xFE,0x92,0xD5,0x16,0x38,0x25,0x05,0x11, +0x38,0x50,0x05,0x11,0xE0,0xA2,0xE8,0x03,0x38,0x20,0x05,0x09,0x38,0xF2,0x05,0x11, +0xE0,0x4F,0xE8,0x03,0x38,0x22,0x05,0x09,0x4C,0x9F,0x40,0x08,0x38,0x20,0x05,0x01, +0x38,0x52,0x05,0x01,0x8A,0x45,0xAC,0x98,0x8C,0x21,0x8C,0x66,0x5A,0x18,0xC0,0xD4, +0x50,0x54,0x80,0x01,0x40,0x92,0x80,0x13,0x48,0xFF,0xFE,0xDE,0x51,0xFF,0x8A,0xC0, +0xFC,0xC0,0xFC,0x00,0x49,0xFF,0xD3,0x2C,0xE6,0x03,0xE8,0x14,0x44,0x14,0x30,0x08, +0x84,0x1E,0xB4,0x41,0x44,0x64,0x30,0x0C,0xFE,0x16,0xB6,0x01,0xB4,0x06,0x58,0x00, +0x00,0x01,0xB6,0x06,0x84,0x01,0x49,0xFF,0xD6,0xB6,0xB4,0x06,0x58,0x00,0x00,0x02, +0xB6,0x06,0xFC,0x80,0xFC,0x00,0x44,0x64,0x55,0x08,0x44,0x0F,0xFF,0xBF,0xB4,0x26, +0xFE,0x0E,0xB6,0x06,0x84,0x21,0x80,0x06,0x49,0xFF,0xCD,0x8B,0x44,0x04,0x58,0x88, +0x84,0x37,0xB4,0x40,0xFE,0x56,0xB6,0x20,0x84,0x21,0x49,0xFF,0xCD,0x57,0xB4,0x26, +0x44,0x0F,0xFF,0x7F,0xFE,0x0E,0xB6,0x06,0xB4,0x26,0x44,0x0F,0xFF,0xEF,0xFE,0x0E, +0xB6,0x06,0x84,0x21,0x80,0x06,0x49,0xFF,0xCD,0x74,0x44,0x04,0x80,0x88,0x46,0x10, +0x10,0x00,0xB4,0x40,0xFE,0x57,0xB6,0x20,0xB4,0x40,0x46,0x10,0x20,0x00,0xFE,0x57, +0xB6,0x20,0x49,0xFF,0xD2,0xE5,0xE6,0x03,0xE8,0x1F,0x44,0x14,0x2C,0x0C,0x46,0x00, +0x01,0x00,0xB4,0x41,0xFE,0x17,0x84,0x41,0xB6,0x01,0x80,0x62,0x44,0x04,0x28,0x0C, +0x44,0x14,0x24,0x0C,0x49,0xFF,0xCD,0x80,0x44,0x14,0x2C,0x18,0x46,0x00,0x04,0x00, +0xB4,0x41,0xFE,0x17,0x84,0x41,0xB6,0x01,0x80,0x62,0x44,0x04,0x28,0x18,0x44,0x14, +0x24,0x18,0x49,0xFF,0xCD,0x71,0x46,0x60,0x00,0x81,0x49,0xFF,0xCD,0x7F,0x04,0x13, +0x03,0xA0,0x84,0x10,0xFE,0x0E,0x14,0x03,0x03,0xA0,0x04,0x13,0x03,0x9F,0x46,0x0F, +0x0F,0xFF,0x50,0x00,0x0F,0xFF,0xFE,0x46,0x46,0x20,0x40,0x00,0xFE,0x57,0x14,0x13, +0x03,0x9F,0x04,0x13,0x03,0x9F,0x46,0x27,0x00,0x00,0x94,0x4C,0x92,0x24,0xFE,0x57, +0x14,0x13,0x03,0x9F,0x04,0x13,0x03,0x9E,0xFE,0x0E,0x46,0x10,0x70,0x00,0xFE,0x0F, +0x14,0x03,0x03,0x9E,0x49,0xFF,0xCD,0x53,0x46,0x00,0x03,0x33,0x50,0x00,0x03,0x33, +0x44,0x14,0x50,0x0C,0x14,0x03,0x00,0x34,0x14,0x03,0x00,0x36,0xB4,0x01,0x58,0x00, +0x00,0x01,0xB6,0x01,0x44,0x04,0x00,0x90,0x44,0x10,0x00,0x64,0xAC,0x40,0x44,0x14, +0x30,0x34,0x46,0x00,0x04,0x00,0xB4,0x41,0xFE,0x17,0xB6,0x01,0x44,0x07,0x10,0x18, +0x84,0x20,0xAE,0x41,0x44,0x16,0x20,0x04,0x46,0x00,0x10,0x00,0xB4,0x41,0xFE,0x17, +0xB6,0x01,0x44,0x14,0x2C,0x18,0x46,0x0B,0xFF,0xFF,0xB4,0x41,0x50,0x00,0x0F,0xFF, +0xFE,0x16,0xB6,0x01,0x44,0x14,0x2C,0x1C,0x44,0x0F,0xFF,0xEF,0xB4,0x41,0xFE,0x16, +0x84,0x41,0xB6,0x01,0x80,0x62,0x44,0x04,0x28,0x18,0x44,0x14,0x24,0x18,0x49,0xFF, +0xCD,0x0B,0x84,0x41,0x44,0x04,0x28,0x1C,0x44,0x14,0x24,0x1C,0x80,0x62,0x49,0xFF, +0xCD,0x03,0x49,0xFF,0xD2,0x55,0xE6,0x03,0xE8,0x10,0x44,0x14,0x2C,0x04,0x46,0x00, +0x00,0x80,0xB4,0x41,0xFE,0x17,0x84,0x41,0xB6,0x01,0x80,0x62,0x44,0x04,0x28,0x04, +0x44,0x14,0x24,0x04,0x49,0xFF,0xCC,0xF0,0x49,0xFF,0xD2,0x42,0xE6,0x03,0xE9,0x40, +0x84,0x08,0x49,0xFF,0xD7,0x6F,0x84,0x00,0x49,0xFF,0xD7,0x75,0x84,0x41,0x80,0x62, +0x44,0x04,0x28,0x14,0x44,0x14,0x24,0x14,0x49,0xFF,0xCC,0xDE,0x44,0x14,0x2C,0x0C, +0x46,0x0F,0xFE,0xFF,0xB4,0x41,0x50,0x00,0x0F,0xFF,0xFE,0x16,0x84,0x41,0xB6,0x01, +0x80,0x62,0x44,0x04,0x28,0x0C,0x44,0x14,0x24,0x0C,0x49,0xFF,0xCC,0xCD,0x44,0x04, +0x2C,0x04,0x46,0x10,0x08,0x00,0xB4,0x40,0xFE,0x57,0xB6,0x20,0xB4,0x40,0x46,0x1F, +0xFB,0xFF,0x50,0x10,0x8F,0xFF,0xFE,0x56,0xB6,0x20,0xB4,0x40,0x46,0x10,0x00,0x80, +0xFE,0x57,0xB6,0x20,0xB4,0x40,0x44,0x14,0x00,0x00,0xFE,0x57,0x84,0x41,0xB6,0x20, +0x80,0x62,0x44,0x04,0x28,0x04,0x44,0x14,0x24,0x04,0x49,0xFF,0xCC,0xAD,0xFC,0x80, +0xFC,0x00,0x84,0x01,0x49,0xFF,0xC9,0x7C,0x84,0x03,0x49,0xFF,0xC9,0x9C,0x84,0x00, +0x49,0xFF,0xCA,0x22,0x84,0x00,0x49,0xFF,0xC9,0xA6,0x84,0x03,0x49,0xFF,0xC9,0xC4, +0x84,0x00,0x49,0xFF,0xC9,0xCF,0x84,0x01,0x49,0xFF,0xD8,0x2F,0xFC,0x80,0xFC,0x00, +0x84,0x00,0x44,0x10,0x00,0xF0,0x49,0xFF,0xD0,0x58,0x84,0x02,0x44,0x10,0x00,0xF0, +0x49,0xFF,0xD0,0x53,0x84,0x01,0x44,0x10,0x00,0xF0,0x49,0xFF,0xD0,0x4E,0x84,0x03, +0x44,0x10,0x00,0xF0,0x49,0xFF,0xD0,0x49,0x84,0x04,0x44,0x10,0x00,0xF0,0x49,0xFF, +0xD0,0x44,0x44,0x10,0x00,0xF0,0x84,0x05,0x49,0xFF,0xD0,0x3F,0x84,0x01,0x49,0xFF, +0xD6,0xE9,0x84,0x03,0x84,0x2A,0x49,0xFF,0xD0,0x8C,0x84,0x00,0x84,0x23,0x49,0xFF, +0xC7,0x43,0xFC,0x80,0xFC,0x01,0xF0,0x81,0x49,0xFF,0xD1,0xBA,0xE6,0x03,0xE9,0x04, +0xF0,0x01,0x49,0xFF,0xDB,0xF6,0xFC,0x81,0xFC,0x00,0x84,0x01,0x49,0xFF,0xCB,0xD7, +0x84,0x01,0x49,0xFF,0xC7,0x7F,0x84,0x01,0x49,0xFF,0xCA,0xB9,0x84,0x01,0x49,0xFF, +0xFF,0xEB,0x84,0x00,0x49,0xFF,0xEB,0xDE,0x84,0x00,0x49,0xFF,0xEB,0xC1,0x84,0x01, +0x49,0xFF,0xC9,0xE7,0x84,0x01,0x49,0xFF,0xCF,0x16,0x84,0x01,0x49,0xFF,0xCF,0x23, +0x84,0x01,0x49,0xFF,0xC9,0xDE,0x84,0x01,0x49,0xFF,0xCF,0x3B,0x84,0x00,0x80,0x20, +0x49,0xFF,0xE0,0x81,0x84,0x01,0x49,0xFF,0xCA,0xDB,0x84,0x01,0x49,0xFF,0xCA,0xEC, +0x84,0x01,0x49,0xFF,0xCB,0x02,0x49,0xFF,0xD1,0x83,0xE6,0x03,0xE8,0x05,0x84,0x01, +0x84,0x2F,0x49,0xFF,0xD0,0xE1,0x49,0xFF,0xD1,0x7B,0xE6,0x03,0xE9,0x03,0x49,0xFF, +0xD1,0x7B,0x49,0xFF,0xD1,0x75,0xE6,0x03,0xE8,0x03,0x49,0xFF,0xD1,0x7E,0x84,0x04, +0x49,0xFF,0xD1,0x8F,0xFC,0x80,0xFC,0x00,0x49,0xFF,0xD1,0x6A,0xFC,0x80,0xFC,0x00, +0x49,0xFF,0xD1,0xA9,0x49,0xFF,0xD2,0x0F,0x49,0xFF,0xD2,0xB4,0x84,0x01,0x49,0xFF, +0xD1,0x93,0xFC,0x80,0xFC,0x00,0x49,0xFF,0xD2,0x5D,0xFC,0x80,0xFC,0x00,0x44,0x00, +0x74,0xB2,0x49,0xFF,0xDC,0xCE,0x84,0x01,0x84,0x20,0x49,0xFF,0xD3,0xB7,0x84,0x01, +0x80,0x20,0x49,0xFF,0xD3,0xB3,0x84,0x00,0x80,0x20,0x49,0xFF,0xD3,0xC3,0x84,0x20, +0xFA,0x0E,0x49,0xFF,0xD3,0xE3,0x84,0x00,0x49,0xFF,0xD3,0xEA,0x84,0x00,0x80,0x20, +0x49,0xFF,0xD4,0x0D,0x84,0x00,0x80,0x20,0x49,0xFF,0xCD,0x40,0x84,0x00,0x49,0xFF, +0xD4,0x10,0x84,0x20,0x84,0x01,0x49,0xFF,0xD3,0xB7,0x84,0x00,0x49,0xFF,0xD3,0xEA, +0x84,0x00,0x84,0x21,0x49,0xFF,0xD3,0xA6,0x84,0x21,0x44,0x00,0x00,0xD2,0x49,0xFF, +0xD3,0xC5,0x84,0x01,0x49,0xFF,0xD3,0xCC,0x84,0x00,0x84,0x21,0x49,0xFF,0xD3,0xEF, +0x84,0x01,0x80,0x20,0x49,0xFF,0xCD,0x22,0x49,0x00,0x00,0x1E,0xFC,0x80,0xFC,0x00, +0x49,0xFF,0xD4,0x23,0xFC,0x80,0xFC,0x00,0x5A,0x08,0x01,0x0B,0xFE,0x0B,0x96,0x01, +0x49,0xFF,0xD4,0x12,0x49,0xFF,0xD4,0x20,0x49,0xFF,0xD4,0x17,0xFC,0x80,0x49,0xFF, +0xD4,0x2B,0xFC,0x80,0x3C,0x00,0x08,0x3C,0x3C,0x10,0x08,0x3C,0x96,0x01,0x4C,0x00, +0xFF,0xFB,0xDD,0x9E,0x84,0x00,0x3C,0x08,0x08,0x1A,0xDD,0x9E,0x44,0x22,0x20,0xA8, +0x38,0x11,0x01,0x09,0xDD,0x9E,0xFC,0x00,0x80,0xC0,0x49,0xFF,0xFF,0xED,0x44,0x12, +0x20,0xC8,0x38,0x00,0x99,0x09,0xFC,0x80,0x80,0x60,0x5A,0x18,0x01,0x10,0xFC,0x20, +0x80,0xC1,0x80,0xE0,0x49,0xFF,0xFF,0xF1,0x3C,0x20,0x08,0x1A,0x40,0x13,0x1C,0x0C, +0xFE,0x57,0x96,0x49,0x3C,0x18,0x08,0x1A,0xFC,0xA0,0x84,0x41,0x3C,0x00,0x08,0x1A, +0x40,0x11,0x0C,0x0C,0xFE,0x4B,0xFE,0x46,0x3C,0x18,0x08,0x1A,0xDD,0x9E,0x3C,0x10, +0x08,0x1A,0x40,0x10,0x80,0x0E,0x96,0x46,0xC9,0x03,0x80,0x01,0xDD,0x9E,0xFC,0x00, +0x80,0xC0,0x49,0xFF,0xFF,0xC1,0x44,0x12,0x20,0xC8,0x44,0x22,0x20,0xA8,0x38,0x10, +0x99,0x01,0x38,0x21,0x19,0x01,0x8A,0x01,0x96,0x01,0xE2,0x02,0x56,0x07,0x80,0x01, +0xFC,0x80,0x3C,0x00,0x08,0x3C,0x8C,0x01,0x96,0x01,0x3C,0x08,0x08,0x3C,0xDD,0x9E, +0x3A,0x1F,0xA4,0x3C,0x3A,0xFF,0xBF,0xBC,0x64,0x62,0xA4,0x02,0x9D,0xB4,0x64,0x72, +0x04,0x02,0x3A,0x6F,0x9C,0x3C,0x64,0x62,0x00,0x02,0x9F,0xB2,0x64,0x62,0x00,0x03, +0x64,0x00,0x00,0x08,0x49,0x00,0x02,0x02,0x3A,0x6F,0x9C,0x04,0x64,0x62,0xA4,0x03, +0x64,0x72,0x04,0x03,0x3A,0xFF,0xBF,0x84,0x3A,0x1F,0xA4,0x04,0x64,0x00,0x00,0x04, +0x3A,0x1F,0xA4,0x3C,0x3A,0xFF,0xBF,0xBC,0x64,0x62,0xA4,0x02,0x9D,0xB4,0x64,0x72, +0x04,0x02,0x3A,0x6F,0x9C,0x3C,0x64,0x62,0x00,0x02,0x9F,0xB2,0x64,0x62,0x00,0x03, +0x64,0x00,0x00,0x08,0x49,0x00,0x01,0xE3,0x3A,0x6F,0x9C,0x04,0x64,0x62,0xA4,0x03, +0x64,0x72,0x04,0x03,0x3A,0xFF,0xBF,0x84,0x3A,0x1F,0xA4,0x04,0x64,0x00,0x00,0x04, +0x3A,0x1F,0xA4,0x3C,0x3A,0xFF,0xBF,0xBC,0x64,0x62,0xA4,0x02,0x9D,0xB4,0x64,0x72, +0x04,0x02,0x3A,0x6F,0x9C,0x3C,0x64,0x62,0x00,0x02,0x9F,0xB2,0x64,0x62,0x00,0x03, +0x64,0x00,0x00,0x08,0x49,0x00,0x01,0xC4,0x3A,0x6F,0x9C,0x04,0x64,0x62,0xA4,0x03, +0x64,0x72,0x04,0x03,0x3A,0xFF,0xBF,0x84,0x3A,0x1F,0xA4,0x04,0x64,0x00,0x00,0x04, +0x3A,0x1F,0xA4,0x3C,0x3A,0xFF,0xBF,0xBC,0x64,0x62,0xA4,0x02,0x9D,0xB4,0x64,0x72, +0x04,0x02,0x3A,0x6F,0x9C,0x3C,0x64,0x62,0x00,0x02,0x9F,0xB2,0x64,0x62,0x00,0x03, +0x64,0x00,0x00,0x08,0x49,0x00,0x01,0xA5,0x3A,0x6F,0x9C,0x04,0x64,0x62,0xA4,0x03, +0x64,0x72,0x04,0x03,0x3A,0xFF,0xBF,0x84,0x3A,0x1F,0xA4,0x04,0x64,0x00,0x00,0x04, +0x3A,0x1F,0xA4,0x3C,0x3A,0xFF,0xBF,0xBC,0x64,0x62,0xA4,0x02,0x9D,0xB4,0x64,0x72, +0x04,0x02,0x3A,0x6F,0x9C,0x3C,0x64,0x62,0x00,0x02,0x9F,0xB2,0x64,0x62,0x00,0x03, +0x64,0x00,0x00,0x08,0x49,0x00,0x01,0x86,0x3A,0x6F,0x9C,0x04,0x64,0x62,0xA4,0x03, +0x64,0x72,0x04,0x03,0x3A,0xFF,0xBF,0x84,0x3A,0x1F,0xA4,0x04,0x64,0x00,0x00,0x04, +0x3A,0x1F,0xA4,0x3C,0x3A,0xFF,0xBF,0xBC,0x64,0x62,0xA4,0x02,0x9D,0xB4,0x64,0x72, +0x04,0x02,0x3A,0x6F,0x9C,0x3C,0x64,0x62,0x00,0x02,0x9F,0xB2,0x64,0x62,0x00,0x03, +0x64,0x00,0x00,0x08,0x49,0x00,0x01,0x67,0x3A,0x6F,0x9C,0x04,0x64,0x62,0xA4,0x03, +0x64,0x72,0x04,0x03,0x3A,0xFF,0xBF,0x84,0x3A,0x1F,0xA4,0x04,0x64,0x00,0x00,0x04, +0x3A,0x1F,0xA4,0x3C,0x3A,0xFF,0xBF,0xBC,0x64,0x62,0xA4,0x02,0x9D,0xB4,0x64,0x72, +0x04,0x02,0x3A,0x6F,0x9C,0x3C,0x64,0x62,0x00,0x02,0x9F,0xB2,0x64,0x62,0x00,0x03, +0x64,0x00,0x00,0x08,0x49,0x00,0x01,0x48,0x3A,0x6F,0x9C,0x04,0x64,0x62,0xA4,0x03, +0x64,0x72,0x04,0x03,0x3A,0xFF,0xBF,0x84,0x3A,0x1F,0xA4,0x04,0x64,0x00,0x00,0x04, +0x3A,0x1F,0xA4,0x3C,0x3A,0xFF,0xBF,0xBC,0x64,0x62,0xA4,0x02,0x9D,0xB4,0x64,0x72, +0x04,0x02,0x3A,0x6F,0x9C,0x3C,0x64,0x62,0x00,0x02,0x9F,0xB2,0x64,0x62,0x00,0x03, +0x64,0x00,0x00,0x08,0x49,0x00,0x01,0x29,0x3A,0x6F,0x9C,0x04,0x64,0x62,0xA4,0x03, +0x64,0x72,0x04,0x03,0x3A,0xFF,0xBF,0x84,0x3A,0x1F,0xA4,0x04,0x64,0x00,0x00,0x04, +0x3A,0x1F,0x94,0x3C,0x3A,0xFF,0xBF,0xBC,0x64,0x12,0xA4,0x02,0x64,0x22,0x04,0x02, +0x3A,0x1F,0x88,0x3C,0x64,0x12,0x00,0x02,0x9E,0x4A,0x64,0x12,0x00,0x03,0x44,0x10, +0x00,0xA4,0x38,0x10,0x82,0x02,0xDD,0x21,0x3A,0x0F,0x84,0x04,0x64,0x02,0x00,0x43, +0x64,0x00,0x00,0x08,0x64,0x02,0xA4,0x03,0x64,0x12,0x04,0x03,0x3A,0xFF,0xBF,0x84, +0x3A,0x1F,0x94,0x04,0x3A,0x0F,0x80,0x04,0x64,0x00,0x00,0x04,0x3A,0x1F,0x94,0x3C, +0x3A,0xFF,0xBF,0xBC,0x44,0x10,0x00,0xA4,0x38,0x10,0x82,0x02,0xDD,0x21,0x3A,0xFF, +0xBF,0x84,0x3A,0x1F,0x94,0x04,0x3A,0x0F,0x80,0x04,0x64,0x00,0x00,0x04,0xD5,0x00, +0x3A,0x0F,0x80,0x3C,0x84,0x00,0xD5,0xEB,0x3A,0x0F,0x80,0x3C,0x84,0x01,0xD5,0xE7, +0x3A,0x0F,0x80,0x3C,0x84,0x02,0xD5,0xE3,0x3A,0x0F,0x80,0x3C,0x84,0x03,0xD5,0xDF, +0x3A,0x0F,0x80,0x3C,0x84,0x04,0xD5,0xDB,0x3A,0x0F,0x80,0x3C,0x84,0x05,0xD5,0xD7, +0x3A,0x0F,0x80,0x3C,0x84,0x06,0xD5,0xD3,0x3A,0x0F,0x80,0x3C,0x84,0x07,0xD5,0xCF, +0x3A,0x0F,0x80,0x3C,0x84,0x08,0xD5,0xCB,0x3A,0x0F,0x80,0x3C,0x84,0x09,0xD5,0xC7, +0x3A,0x0F,0x80,0x3C,0x84,0x0A,0xD5,0xC3,0x3A,0x0F,0x80,0x3C,0x84,0x0B,0xD5,0xBF, +0x3A,0x0F,0x80,0x3C,0x84,0x0C,0xD5,0xBB,0x3A,0x0F,0x80,0x3C,0x84,0x0D,0xD5,0xB7, +0x3A,0x0F,0x80,0x3C,0x84,0x0E,0xD5,0xB3,0x3A,0x0F,0x80,0x3C,0x84,0x0F,0xD5,0xAF, +0x3A,0x0F,0x80,0x3C,0xFA,0x00,0xD5,0xAB,0x3A,0x0F,0x80,0x3C,0xFA,0x01,0xD5,0xA7, +0x3A,0x0F,0x80,0x3C,0xFA,0x02,0xD5,0xA3,0x3A,0x0F,0x80,0x3C,0xFA,0x03,0xD5,0x9F, +0x3A,0x0F,0x80,0x3C,0xFA,0x04,0xD5,0x9B,0x3A,0x0F,0x80,0x3C,0xFA,0x05,0xD5,0x97, +0x3A,0x0F,0x80,0x3C,0xFA,0x06,0xD5,0x93,0x3A,0x0F,0x80,0x3C,0xFA,0x07,0xD5,0x8F, +0x3A,0x0F,0x80,0x3C,0xFA,0x08,0xD5,0x8B,0x3A,0x0F,0x80,0x3C,0xFA,0x09,0xD5,0x87, +0x3A,0x0F,0x80,0x3C,0xFA,0x0A,0xD5,0x83,0x3A,0x0F,0x80,0x3C,0xFA,0x0B,0x48,0xFF, +0xFF,0x7F,0x3A,0x0F,0x80,0x3C,0xFA,0x0C,0x48,0xFF,0xFF,0x7A,0x3A,0x0F,0x80,0x3C, +0xFA,0x0D,0x48,0xFF,0xFF,0x75,0x3A,0x0F,0x80,0x3C,0xFA,0x0E,0x48,0xFF,0xFF,0x70, +0x3A,0x0F,0x80,0x3C,0x44,0x00,0x00,0x1F,0x48,0xFF,0xFF,0x6A,0x84,0x01,0x64,0x04, +0xC0,0x02,0x44,0x02,0x00,0x01,0x64,0x04,0xE0,0x03,0x45,0xD2,0x10,0x70,0x3F,0xC8, +0x00,0x00,0x45,0xF2,0x5F,0xF8,0x84,0x00,0x42,0x0E,0x00,0x21,0x49,0x00,0x00,0x31, +0x49,0x00,0x02,0xFB,0xD5,0x00,0x92,0x00,0xFC,0x00,0x44,0x02,0x00,0x00,0x44,0x22, +0x00,0xD4,0x44,0x10,0x87,0xA0,0x8A,0x40,0x49,0x00,0x02,0xFA,0x44,0x02,0x00,0xD4, +0x44,0x22,0x20,0xEC,0x84,0x20,0x8A,0x40,0x49,0x00,0x03,0x18,0xFC,0x80,0x84,0x00, +0x64,0x05,0xE4,0x03,0x84,0x1F,0x64,0x03,0x04,0x03,0x64,0x03,0x24,0x03,0x64,0x12, +0x24,0x02,0x44,0x0F,0x0F,0xFF,0xFE,0x0E,0x64,0x02,0x24,0x03,0x64,0x12,0x00,0x02, +0x84,0x18,0xFE,0x0E,0x64,0x02,0x00,0x03,0x64,0x00,0x00,0x08,0xDD,0x9E,0xFC,0x00, +0x49,0xFF,0xFF,0xE7,0x64,0x00,0x80,0x02,0x92,0x1E,0xC0,0x06,0x64,0x00,0x84,0x02, +0x96,0x2E,0xC0,0x02,0xD5,0x00,0x49,0xFF,0xFF,0xC9,0x64,0x12,0x00,0x43,0x64,0x00, +0x00,0x08,0x64,0x00,0x00,0x08,0xFC,0x80,0xDD,0x9E,0xDD,0x9E,0xDD,0x9E,0xDD,0x9E, +0xDD,0x9E,0xDD,0x9E,0xDD,0x9E,0xDD,0x9E,0xDD,0x9E,0x44,0x04,0x80,0x04,0xA6,0x01, +0x96,0x06,0xC0,0x05,0x44,0x04,0x80,0x05,0x84,0x21,0xAE,0x40,0xDD,0x9E,0x44,0x04, +0x80,0x01,0xA6,0x00,0xC8,0x05,0xFC,0x00,0x49,0xFF,0xD6,0x02,0xFC,0x80,0xDD,0x9E, +0xFC,0x00,0x44,0x04,0x80,0x00,0xA6,0x03,0x49,0xFF,0xD9,0xF6,0xFC,0x80,0x44,0x14, +0x80,0x04,0x44,0x04,0x80,0x84,0xA6,0x88,0xB4,0x00,0x96,0x06,0xFE,0x16,0xC0,0x03, +0x84,0x01,0xAE,0x08,0xDD,0x9E,0xFC,0x00,0x44,0x04,0x80,0x00,0xA6,0x03,0x49,0xFF, +0xD1,0x49,0xFC,0x80,0x44,0x14,0x80,0x14,0xA6,0x08,0x96,0x06,0xC0,0x09,0x84,0x01, +0xAE,0x08,0x44,0x14,0x80,0x94,0xB4,0x01,0x58,0x00,0x00,0x01,0xB6,0x01,0x44,0x14, +0x80,0x14,0xA6,0x08,0x92,0x01,0x96,0x06,0xC0,0x09,0x84,0x02,0xAE,0x08,0x44,0x14, +0x80,0x94,0xB4,0x01,0x58,0x00,0x00,0x02,0xB6,0x01,0xDD,0x9E,0xFC,0x00,0x49,0xFF, +0xD4,0xC5,0xFC,0x80,0x44,0x04,0x80,0x04,0xA6,0x02,0x92,0x02,0x96,0x06,0xC0,0x05, +0x44,0x04,0x80,0x06,0x84,0x24,0xAE,0x40,0xDD,0x9E,0x44,0x14,0x80,0x04,0xA6,0x0B, +0x92,0x01,0x96,0x06,0xC0,0x05,0x44,0x04,0x80,0x07,0x84,0x42,0xAE,0x80,0xA6,0x0B, +0x96,0x06,0xC0,0x05,0x44,0x04,0x80,0x07,0x84,0x21,0xAE,0x40,0xDD,0x9E,0x44,0x04, +0x80,0x08,0xB4,0x20,0x92,0x24,0x96,0x46,0xC1,0x03,0xFA,0x20,0xAE,0x40,0xB4,0x00, +0x84,0x21,0x96,0x06,0xC0,0x06,0x44,0x04,0x80,0x08,0xAE,0x40,0x3E,0x17,0xF1,0x21, +0x44,0x04,0x80,0x08,0xB4,0x20,0x92,0x21,0x96,0x46,0xC1,0x06,0x84,0x22,0xAE,0x40, +0x84,0x21,0x3E,0x17,0xF1,0x20,0xB4,0x00,0x92,0x02,0x96,0x06,0xC0,0x05,0x44,0x04, +0x80,0x08,0x84,0x24,0xAE,0x40,0xDD,0x9E,0xDD,0x9E,0xFC,0x00,0x49,0xFF,0xD3,0x86, +0xFC,0x80,0xFC,0x00,0x49,0xFF,0xD3,0xE7,0xFC,0x80,0xFC,0x00,0x49,0xFF,0xC5,0x3D, +0xFC,0x80,0x44,0x14,0x80,0x08,0xB4,0x01,0x92,0x08,0x96,0x06,0xC0,0x05,0x44,0x04, +0x80,0x09,0x84,0x41,0xAE,0x80,0xB4,0x01,0x92,0x09,0x96,0x06,0xC0,0x0F,0x44,0x04, +0x80,0x09,0x84,0x22,0xAE,0x40,0x84,0x01,0x3E,0x07,0xF1,0x24,0x44,0x04,0x50,0x28, +0xB4,0x00,0x92,0x06,0x96,0x1F,0x3E,0x07,0xF1,0x23,0xDD,0x9E,0x44,0x04,0x80,0x08, +0xB4,0x00,0x92,0x12,0x96,0x06,0xC0,0x15,0x44,0x14,0x80,0x88,0xB4,0x01,0x92,0x12, +0x96,0x06,0xC0,0x0F,0xB4,0x41,0x44,0x0B,0xFF,0xFF,0xFE,0x16,0xB6,0x01,0x44,0x04, +0x80,0x0A,0x84,0x22,0xAE,0x40,0x84,0x21,0x3E,0x17,0xF1,0x27,0x84,0x24,0xAE,0x40, +0x44,0x04,0x80,0x08,0x84,0x21,0xB4,0x00,0x92,0x10,0x96,0x06,0xC0,0x0C,0x44,0x04, +0x80,0x88,0xB4,0x00,0x92,0x10,0x96,0x06,0xC0,0x06,0x44,0x04,0x80,0x0A,0x3E,0x17, +0xF1,0x26,0xAE,0x40,0x44,0x04,0x80,0x08,0xB4,0x00,0x92,0x11,0x96,0x06,0xC0,0x0E, +0x44,0x04,0x80,0x88,0xB4,0x00,0x92,0x11,0x96,0x06,0xC0,0x08,0x84,0x01,0x3E,0x07, +0xF1,0x25,0x44,0x04,0x80,0x0A,0x84,0x22,0xAE,0x40,0xDD,0x9E,0x44,0x14,0x80,0x08, +0x84,0x41,0xB4,0x01,0x92,0x18,0x96,0x06,0xC0,0x06,0x44,0x04,0x80,0x0B,0xAE,0x80, +0x3E,0x27,0xF0,0xEC,0xB4,0x01,0x92,0x19,0x96,0x06,0xC0,0x1D,0x44,0x04,0x80,0x0B, +0x84,0x22,0xAE,0x40,0x84,0x00,0x3E,0x07,0xF0,0xEC,0x46,0x00,0x00,0x81,0x44,0x1F, +0xFE,0xFF,0x50,0x30,0x00,0x70,0xB4,0x43,0xFE,0x56,0xB6,0x23,0xB4,0x43,0x44,0x1E, +0xFF,0xFF,0xFE,0x56,0xB6,0x23,0xB4,0x43,0x46,0x1F,0xEF,0xFF,0x50,0x10,0x8F,0xFF, +0xFE,0x56,0xB6,0x23,0x44,0x04,0x80,0x08,0xB4,0x00,0x92,0x1A,0x96,0x06,0xC0,0x0E, +0x44,0x14,0x70,0x08,0xB4,0x01,0x92,0x10,0x40,0x00,0x40,0x08,0x58,0x00,0x78,0x23, +0xB6,0x01,0x44,0x04,0x80,0x0B,0x84,0x24,0xAE,0x40,0x44,0x04,0x80,0x08,0xB4,0x00, +0x92,0x1B,0x96,0x06,0xC0,0x05,0x44,0x04,0x80,0x0B,0x84,0x28,0xAE,0x40,0xDD,0x9E, +0x44,0x04,0x80,0x04,0xA6,0x02,0x92,0x03,0x96,0x06,0xC0,0x05,0x44,0x04,0x80,0x06, +0x84,0x28,0xAE,0x40,0xDD,0x9E,0x44,0x14,0x80,0x0C,0xB4,0x01,0x92,0x10,0x96,0x06, +0xC0,0x05,0x44,0x04,0x80,0x0E,0x84,0x41,0xAE,0x80,0xB4,0x01,0x92,0x11,0x96,0x06, +0xC0,0x05,0x44,0x04,0x80,0x0E,0x84,0x22,0xAE,0x40,0x44,0x14,0x80,0x0C,0xB4,0x01, +0x92,0x12,0x96,0x06,0xC0,0x05,0x44,0x04,0x80,0x0E,0x84,0x44,0xAE,0x80,0xB4,0x01, +0x92,0x13,0x96,0x06,0xC0,0x05,0x44,0x04,0x80,0x0E,0x84,0x28,0xAE,0x40,0x44,0x14, +0x80,0x0C,0xB4,0x01,0x92,0x14,0x96,0x06,0xC0,0x05,0x44,0x04,0x80,0x0E,0xFA,0x40, +0xAE,0x80,0xB4,0x01,0x92,0x15,0x96,0x06,0xC0,0x05,0x44,0x04,0x80,0x0E,0xFA,0x30, +0xAE,0x40,0x44,0x14,0x80,0x0C,0xB4,0x01,0x92,0x16,0x96,0x06,0xC0,0x06,0x44,0x04, +0x80,0x0E,0x44,0x20,0x00,0x40,0xAE,0x80,0xB4,0x01,0x92,0x17,0x96,0x06,0xC0,0x06, +0x44,0x04,0x80,0x0E,0x44,0x1F,0xFF,0x80,0xAE,0x40,0x44,0x14,0x80,0x0C,0xB4,0x01, +0x92,0x18,0x96,0x06,0xC0,0x05,0x44,0x04,0x80,0x0F,0x84,0x41,0xAE,0x80,0xB4,0x01, +0x92,0x19,0x96,0x06,0xC0,0x05,0x44,0x04,0x80,0x0F,0x84,0x22,0xAE,0x40,0x44,0x14, +0x80,0x0C,0xB4,0x01,0x92,0x1A,0x96,0x06,0xC0,0x05,0x44,0x04,0x80,0x0F,0x84,0x44, +0xAE,0x80,0xB4,0x01,0x92,0x1B,0x96,0x06,0xC0,0x05,0x44,0x04,0x80,0x0F,0x84,0x28, +0xAE,0x40,0x44,0x14,0x80,0x0C,0xB4,0x01,0x92,0x1C,0x96,0x06,0xC0,0x05,0x44,0x04, +0x80,0x0F,0xFA,0x40,0xAE,0x80,0xB4,0x01,0x92,0x1D,0x96,0x06,0xC0,0x05,0x44,0x04, +0x80,0x0F,0xFA,0x30,0xAE,0x40,0x44,0x14,0x80,0x0C,0xB4,0x01,0x92,0x1E,0x96,0x06, +0xC0,0x06,0x44,0x04,0x80,0x0F,0x44,0x20,0x00,0x40,0xAE,0x80,0xB4,0x01,0x4E,0x04, +0x00,0x07,0x44,0x04,0x80,0x0F,0x44,0x1F,0xFF,0x80,0xAE,0x40,0xDD,0x9E,0x44,0x04, +0x80,0x0C,0xB4,0x20,0x96,0x46,0xC1,0x03,0x84,0x21,0xAE,0x40,0xB4,0x00,0x92,0x01, +0x96,0x06,0xC0,0x05,0x44,0x04,0x80,0x0C,0x84,0x22,0xAE,0x40,0x44,0x04,0x80,0x0C, +0xB4,0x20,0x92,0x22,0x96,0x46,0xC1,0x03,0x84,0x24,0xAE,0x40,0xB4,0x00,0x92,0x03, +0x96,0x06,0xC0,0x05,0x44,0x04,0x80,0x0C,0x84,0x28,0xAE,0x40,0x44,0x04,0x80,0x0C, +0xB4,0x20,0x92,0x24,0x96,0x46,0xC1,0x03,0xFA,0x20,0xAE,0x40,0xB4,0x00,0x92,0x05, +0x96,0x06,0xC0,0x05,0x44,0x04,0x80,0x0C,0xFA,0x30,0xAE,0x40,0x44,0x04,0x80,0x0C, +0xB4,0x20,0x92,0x26,0x96,0x46,0xC1,0x04,0x44,0x10,0x00,0x40,0xAE,0x40,0xB4,0x00, +0x92,0x07,0x96,0x06,0xC0,0x06,0x44,0x04,0x80,0x0C,0x44,0x1F,0xFF,0x80,0xAE,0x40, +0x44,0x14,0x80,0x0C,0xB4,0x01,0x92,0x08,0x96,0x06,0xC0,0x05,0x44,0x04,0x80,0x0D, +0x84,0x41,0xAE,0x80,0xB4,0x01,0x92,0x09,0x96,0x06,0xC0,0x05,0x44,0x04,0x80,0x0D, +0x84,0x22,0xAE,0x40,0x44,0x14,0x80,0x0C,0xB4,0x01,0x92,0x0A,0x96,0x06,0xC0,0x05, +0x44,0x04,0x80,0x0D,0x84,0x44,0xAE,0x80,0xB4,0x01,0x92,0x0B,0x96,0x06,0xC0,0x05, +0x44,0x04,0x80,0x0F,0x84,0x28,0xAE,0x40,0x44,0x14,0x80,0x0C,0xB4,0x01,0x92,0x0C, +0x96,0x06,0xC0,0x05,0x44,0x04,0x80,0x0D,0xFA,0x40,0xAE,0x80,0xB4,0x01,0x92,0x0D, +0x96,0x06,0xC0,0x05,0x44,0x04,0x80,0x0D,0xFA,0x30,0xAE,0x40,0x44,0x14,0x80,0x0C, +0xB4,0x01,0x92,0x0E,0x96,0x06,0xC0,0x06,0x44,0x04,0x80,0x0D,0x44,0x20,0x00,0x40, +0xAE,0x80,0xB4,0x01,0x92,0x0F,0x96,0x06,0xC0,0x06,0x44,0x04,0x80,0x0D,0x44,0x1F, +0xFF,0x80,0xAE,0x40,0xDD,0x9E,0x44,0x04,0x80,0x00,0x44,0x14,0x80,0x80,0xA6,0x80, +0xB4,0x21,0x96,0x46,0xFE,0x56,0xC1,0x03,0x84,0x21,0xAE,0x40,0xA6,0x00,0x40,0x10, +0x04,0x09,0x44,0x04,0x80,0x80,0xB4,0x00,0x92,0x01,0x96,0x06,0xFE,0x0E,0xC0,0x05, +0x44,0x04,0x80,0x00,0x84,0x22,0xAE,0x40,0x44,0x14,0x80,0x00,0xA6,0x08,0x40,0x20, +0x08,0x09,0x44,0x04,0x80,0x80,0xB4,0x00,0x92,0x02,0x96,0x06,0xFE,0x16,0xC0,0x03, +0x84,0x04,0xAE,0x08,0xA6,0x08,0x40,0x10,0x0C,0x09,0x44,0x04,0x80,0x80,0xB4,0x00, +0x92,0x03,0x96,0x06,0xFE,0x0E,0xC0,0x05,0x44,0x04,0x80,0x00,0x84,0x28,0xAE,0x40, +0xDD,0x9E,0xDD,0x9E,0xDD,0x9E,0xDD,0x9E,0xDD,0x9E,0xDD,0x9E,0xDD,0x9E,0xDD,0x9E, +0xDD,0x9E,0xDD,0x9E,0xDD,0x9E,0xFC,0x00,0x49,0xFF,0xCD,0xF7,0x49,0xFF,0xD7,0x0A, +0x49,0xFF,0xCF,0xEF,0x49,0xFF,0xD0,0xC6,0x84,0x00,0xFC,0x80,0x80,0x60,0x54,0xF1, +0x00,0x03,0xE9,0x1B,0xE6,0x44,0xE9,0x19,0x54,0x41,0x80,0x03,0x54,0x50,0x80,0x03, +0xDC,0x14,0xC5,0x0A,0x52,0x52,0x80,0x04,0x9A,0x95,0x99,0x69,0x08,0x40,0x80,0x01, +0x18,0x41,0x80,0x01,0xD9,0xFC,0x40,0x51,0x08,0x09,0xC5,0x07,0x95,0x6A,0x99,0x69, +0x96,0x8F,0xA3,0x09,0xAB,0x19,0xD9,0xFE,0xC2,0x07,0x99,0x4A,0x08,0x40,0x80,0x01, +0x18,0x41,0x80,0x01,0xD9,0xFC,0xDD,0x9E,0x80,0x60,0xE6,0x44,0xE9,0x1A,0x54,0x51, +0x80,0x03,0xC5,0x08,0x52,0x52,0x80,0x04,0x9A,0x95,0x99,0x6B,0x18,0x11,0x80,0x01, +0xDB,0xFE,0x40,0x51,0x08,0x09,0x96,0x8F,0xC5,0x0C,0x95,0x6A,0x99,0x5D,0x96,0x48, +0x40,0x40,0xA0,0x08,0xFE,0x67,0x40,0x40,0xC0,0x08,0xFE,0x67,0xAA,0x59,0xDB,0xFF, +0x99,0x5A,0xD3,0x04,0x18,0x11,0x80,0x01,0xD5,0xFD,0xDD,0x9E,0x00,0x00,0x00,0x00, +0x69,0x1A,0xC1,0x37,0x01,0x00,0x12,0x20,0xFF,0x07,0xFF,0x07,0x05,0x0A,0x0B,0x00, +0xC8,0x00,0x02,0x00,0xC0,0x00,0x02,0x00,0xB8,0x00,0x02,0x00,0xAC,0x00,0x02,0x00, +0xA0,0x00,0x02,0x00,0x90,0x00,0x02,0x00,0x80,0x00,0x02,0x00,0x6C,0x00,0x02,0x00, +0x58,0x00,0x02,0x00,0x40,0x00,0x02,0x00,0x0A,0x0A,0x0B,0x0B,0x0B,0x0C,0x0C,0x0C, +0x0C,0x0C,0x00,0x00,0x01,0x05,0x00,0x07,0x02,0x06,0x04,0x08,0x03,0x09,0x00,0x00, +0x01,0x02,0x03,0x04,0x05,0x06,0x06,0x06,0x06,0x06,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D, +0x1D,0x1D,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x1C,0x1C,0x1C,0x1C,0x1C, +0x1C,0x1C,0x1C,0x1C,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x1B,0x1B,0x1B, +0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x1A, +0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, +0x06,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x07,0x07,0x07,0x07,0x07,0x07, +0x07,0x07,0x07,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x08,0x08,0x08,0x08, +0x08,0x08,0x08,0x08,0x08,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x09,0x09, +0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16, +0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x15,0x15,0x15,0x15,0x15,0x15,0x15, +0x15,0x15,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x14,0x14,0x14,0x14,0x14, +0x14,0x14,0x14,0x14,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x13,0x13,0x13, +0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x0D,0x0D,0x0D,0x0D,0x0D,0x0D,0x0D,0x0D,0x12, +0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E, +0x0E,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F, +0x0F,0x0F,0x0F,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x10,0x10,0x10,0x10,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x11,0x11, +0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E, +0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x0D,0x0D,0x0D,0x0D,0x0D,0x0D,0x0D, +0x0D,0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x0C,0x0C,0x0C,0x0C,0x0C, +0x0C,0x0C,0x0C,0x0C,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x0B,0x0B,0x0B, +0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x0A, +0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16, +0x16,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x17,0x17,0x17,0x17,0x17,0x17, +0x17,0x17,0x17,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x18,0x18,0x18,0x18, +0x18,0x18,0x18,0x18,0x18,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x19,0x19, +0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, +0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x05,0x05,0x05,0x05,0x05,0x05,0x05, +0x05,0x05,0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,0x04,0x04,0x04,0x04,0x04, +0x04,0x04,0x04,0x04,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x03,0x03,0x03, +0x03,0x03,0x03,0x03,0x03,0x03,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E, +0x1E,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F, +0x1F,0x1F,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x03,0x04, +0x05,0x06,0x06,0x06,0x06,0x06,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x30,0x01,0x30,0x01, +0x30,0x01,0x30,0x01,0x88,0x01,0x32,0x01,0x56,0x01,0x68,0x01,0x42,0x01,0x7A,0x01, +0x8C,0x01,0x30,0x01,0x44,0x01,0x32,0x01,0x56,0x01,0x86,0x01,0x30,0x01,0x54,0x01, +0x68,0x01,0x42,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x02,0x03,0x02,0x01,0x02, +0x01,0x01,0x01,0x04,0x02,0x01,0x04,0x04,0x30,0x01,0x30,0x01,0x30,0x01,0x30,0x01, +0x30,0x01,0x30,0x01,0x30,0x01,0x93,0x01,0x5C,0x01,0xDE,0x01,0x2D,0x02,0xB1,0x01, +0x05,0x02,0xED,0x01,0x41,0x02,0x30,0x01,0xBF,0x01,0x11,0x02,0x37,0x01,0x3C,0x01, +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0B,0x0A,0x09,0x08, +0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07, +0x08,0x00,0x01,0x02,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x02,0x01,0x00, +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x00,0x00,0x01,0x00,0x01,0x02,0x03, +0x04,0x05,0x06,0x07,0x08,0x00,0x01,0x00,0x38,0x70,0x00,0x00,0x38,0x70,0x00,0x00, +0x38,0x70,0x00,0x00,0x38,0x70,0x00,0x00,0x38,0x70,0x00,0x00,0x38,0x70,0x00,0x00, +0x38,0x70,0x00,0x00,0x38,0x70,0x00,0x00,0x38,0x70,0x00,0x00,0x38,0x70,0x00,0x00, +0x38,0x70,0x00,0x00,0x38,0x70,0x00,0x00,0x01,0x00,0x02,0x00,0x02,0x00,0x01,0x00, +0x04,0x80,0x00,0x00,0x08,0x40,0x00,0x00,0x10,0x20,0x00,0x00,0x20,0x10,0x00,0x00, +0x40,0x08,0x00,0x00,0x80,0x04,0x00,0x00,0x00,0x03,0x00,0x00,0x38,0x70,0x00,0x00, +0x38,0x70,0x00,0x00,0x38,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x52,0x02,0x00,0x00,0x52,0x02,0x00,0x00, +0x92,0x02,0x00,0x00,0xD2,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x90,0x00,0x00,0x00,0x90,0x00,0x00,0x00, +0xE0,0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x00,0x00,0x40,0x02,0x40,0x02,0x00,0x00, +0xC0,0x00,0xC0,0x00,0x40,0x00,0x40,0x00,0x00,0x09,0x09,0x00,0x03,0x03,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x04,0x04,0x04,0x00,0x01,0x02,0x03, +0x04,0x05,0x06,0x07,0x08,0x00,0x01,0x02,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07, +0x08,0x02,0x01,0x00,0x00,0x01,0x02,0x03,0x04,0x00,0x01,0x02,0x03,0x04,0x00,0x00, +0x07,0x80,0x03,0x00,0x38,0x70,0x00,0x00,0xC0,0x0F,0x00,0x00,0x08,0x40,0x00,0x00, +0x10,0x20,0x00,0x00,0x20,0x10,0x00,0x00,0x40,0x08,0x00,0x00,0x80,0x04,0x00,0x00, +0x00,0x03,0x00,0x00,0x07,0x80,0x03,0x00,0x38,0x70,0x00,0x00,0xC0,0x0F,0x00,0x00, +0x01,0x00,0x02,0x00,0x02,0x00,0x01,0x00,0x04,0x80,0x00,0x00,0x08,0x40,0x00,0x00, +0x10,0x20,0x00,0x00,0x20,0x10,0x00,0x00,0x40,0x08,0x00,0x00,0x80,0x04,0x00,0x00, +0x00,0x03,0x00,0x00,0x38,0x70,0x00,0x00,0x38,0x70,0x00,0x00,0x38,0x70,0x00,0x00, +0x07,0x80,0x03,0x00,0x38,0x70,0x00,0x00,0xC0,0x0F,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x03,0x03,0x03,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x00,0x03,0x03,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00, +0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00, +0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x00,0x02,0x00,0x01,0x00,0x04,0x80,0x00,0x00, +0x08,0x40,0x00,0x00,0x10,0x20,0x00,0x00,0x20,0x10,0x00,0x00,0x40,0x08,0x00,0x00, +0x80,0x04,0x00,0x00,0x00,0x03,0x00,0x00,0x07,0x80,0x03,0x00,0x38,0x70,0x00,0x00, +0xC0,0x0F,0x00,0x00,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x00,0x01,0x02, +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x00,0x01,0x02,0x0B,0x02,0x0B,0x0B, +0x0B,0x02,0x00,0x00,0x0B,0x02,0x0B,0x0B,0x0B,0x02,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D, +0x1D,0x1D,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x1C,0x1C,0x1C,0x1C,0x1C, +0x1C,0x1C,0x1C,0x1C,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x1B,0x1B,0x1B, +0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x1A, +0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, +0x06,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x07,0x07,0x07,0x07,0x07,0x07, +0x07,0x07,0x07,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x08,0x08,0x08,0x08, +0x08,0x08,0x08,0x08,0x08,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x09,0x09, +0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16, +0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x15,0x15,0x15,0x15,0x15,0x15,0x15, +0x15,0x15,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x14,0x14,0x14,0x14,0x14, +0x14,0x14,0x14,0x14,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x13,0x13,0x13, +0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x0D,0x0D,0x0D,0x0D,0x0D,0x0D,0x0D,0x0D,0x12, +0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E, +0x0E,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F, +0x0F,0x0F,0x0F,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x10,0x10,0x10,0x10,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x11,0x11, +0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E, +0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x0D,0x0D,0x0D,0x0D,0x0D,0x0D,0x0D, +0x0D,0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x0C,0x0C,0x0C,0x0C,0x0C, +0x0C,0x0C,0x0C,0x0C,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x0B,0x0B,0x0B, +0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x0A, +0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16, +0x16,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x17,0x17,0x17,0x17,0x17,0x17, +0x17,0x17,0x17,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x18,0x18,0x18,0x18, +0x18,0x18,0x18,0x18,0x18,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x19,0x19, +0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, +0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x05,0x05,0x05,0x05,0x05,0x05,0x05, +0x05,0x05,0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,0x04,0x04,0x04,0x04,0x04, +0x04,0x04,0x04,0x04,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x03,0x03,0x03, +0x03,0x03,0x03,0x03,0x03,0x03,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E, +0x1E,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F, +0x1F,0x1F,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF, +0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x01,0x00,0x00,0x00, +0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x02,0x03,0x04, +0x05,0x06,0x06,0x06,0x06,0x06,0x00,0x00,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x00,0x00,0x00,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00,0x00,0x01,0x02, +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x02,0x01,0x00,0x00,0x01,0x02,0x00, +0x80,0x00,0x01,0x00,0x40,0x80,0x00,0x00,0x20,0x40,0x00,0x00,0x10,0x20,0x00,0x00, +0x08,0x10,0x00,0x00,0x04,0x08,0x00,0x00,0x02,0x04,0x00,0x00,0x01,0x02,0x00,0x00, +0x07,0x80,0x03,0x00,0x38,0x70,0x00,0x00,0xC0,0x0F,0x00,0x00,0x00,0x01,0x02,0x03, +0x04,0x05,0x06,0x07,0x08,0x00,0x01,0x02,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07, +0x08,0x02,0x01,0x00,0x01,0x00,0x02,0x00,0x02,0x00,0x01,0x00,0x04,0x80,0x00,0x00, +0x08,0x40,0x00,0x00,0x10,0x20,0x00,0x00,0x20,0x10,0x00,0x00,0x40,0x08,0x00,0x00, +0x80,0x04,0x00,0x00,0x00,0x03,0x00,0x00,0x07,0x80,0x03,0x00,0x38,0x70,0x00,0x00, +0xC0,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x01,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x0A,0x0A,0x0B,0x0B, +0x0B,0x0C,0x0C,0x0C,0x0C,0x0C,0x00,0x00,0xC8,0x00,0x02,0x00,0xC0,0x00,0x02,0x00, +0xB8,0x00,0x02,0x00,0xAC,0x00,0x02,0x00,0xA0,0x00,0x02,0x00,0x90,0x00,0x02,0x00, +0x80,0x00,0x02,0x00,0x6C,0x00,0x02,0x00,0x58,0x00,0x02,0x00,0x40,0x00,0x02,0x00, +0x61,0x00,0x4D,0x00,0x68,0x00,0x84,0x00,0xA2,0x00,0xBF,0x00,0xDA,0x00,0xF2,0x00, +0x06,0x01,0x13,0x01,0x1A,0x01,0x00,0x00,0x65,0x00,0x58,0x00,0x79,0x00,0x9D,0x00, +0xC1,0x00,0xE3,0x00,0x02,0x01,0x1C,0x01,0x2E,0x01,0x37,0x01,0x6A,0x00,0x67,0x00, +0x91,0x00,0xBE,0x00,0xEA,0x00,0x13,0x01,0x35,0x01,0x4E,0x01,0x5B,0x01,0x00,0x00, +0x72,0x00,0x7C,0x00,0xB2,0x00,0xEB,0x00,0x23,0x01,0x52,0x01,0x75,0x01,0x87,0x01, +0x7C,0x00,0x99,0x00,0xE2,0x00,0x2E,0x01,0x72,0x01,0xA5,0x01,0xC1,0x01,0x00,0x00, +0x45,0x00,0x63,0x00,0x96,0x00,0xC8,0x00,0xF0,0x00,0x07,0x01,0x51,0x00,0x88,0x00, +0xD3,0x00,0x15,0x01,0x3C,0x01,0x00,0x00,0x67,0x00,0xCC,0x00,0x40,0x01,0x8A,0x01, +0x4C,0x00,0xB0,0x00,0x02,0x01,0x00,0x00,0x99,0x00,0x66,0x01,0x38,0x70,0x00,0x00, +0x52,0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, +0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x24,0x01,0x00,0x00,0x66,0x1D,0x00,0x00, +0x00,0x69,0x06,0x00,0x02,0x00,0x06,0x0C,0x02,0x00,0x06,0x0C,0x01,0x00,0x04,0x00, +0x01,0x00,0x03,0x00,0x01,0x00,0x05,0x00,0x05,0x04,0x00,0x00,0xB9,0x07,0x59,0x8F, diff --git a/drivers/input/touchscreen/ilitek_mmi/core/config.c b/drivers/input/touchscreen/ilitek_mmi/core/config.c new file mode 100644 index 000000000000..1c9735e0786e --- /dev/null +++ b/drivers/input/touchscreen/ilitek_mmi/core/config.c @@ -0,0 +1,1104 @@ +/* + * ILITEK Touch IC driver + * + * Copyright (C) 2011 ILI Technology Corporation. + * + * Author: Dicky Chiang + * Based on TDD v7.0 implemented by Mstar & ILITEK + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ + +#include "../common.h" +#include "../platform.h" +#include "config.h" +#include "protocol.h" +#include "i2c.h" +#include "flash.h" +#include "finger_report.h" +#include "gesture.h" +#include "mp_test.h" + +/* the list of support chip */ +uint32_t ipio_chip_list[] = { + CHIP_TYPE_ILI7807, + CHIP_TYPE_ILI9881, +}; + +uint8_t g_read_buf[128] = { 0 }; + +struct core_config_data *core_config; + +static void read_flash_info(uint8_t cmd, int len) +{ + int i; + uint16_t flash_id = 0, flash_mid = 0; + uint8_t buf[4] = { 0 }; + + /* + * This command is used to fix the bug of spi clk for 7807F-AB + * when operating with its flash. + */ + if (core_config->chip_id == CHIP_TYPE_ILI7807 && + core_config->chip_type == ILI7807_TYPE_F_AB) { + core_config_ice_mode_write(0x4100C, 0x01, 1); + mdelay(25); + } + + core_config_ice_mode_write(0x41000, 0x0, 1); /* CS high */ + core_config_ice_mode_write(0x41004, 0x66aa55, 3); /* Key */ + core_config_ice_mode_write(0x41008, cmd, 1); + + for (i = 0 ; i < len ; i++) { + core_config_ice_mode_write(0x041008, 0xFF, 1); + buf[i] = core_config_ice_mode_read(0x41010); + } + + core_config_ice_mode_write(0x041000, 0x1, 1); /* CS high */ + + /* look up flash info and init its struct after obtained flash id. */ + flash_mid = buf[0]; + flash_id = buf[1] << 8 | buf[2]; + core_flash_init(flash_mid, flash_id); +} + +/* + * It checks chip id shifting sepcific bits based on chip's requirement. + * + * @pid_data: 4 bytes, reading from firmware. + * + */ +static uint32_t check_chip_id(uint32_t pid_data) +{ + int i; + uint32_t id = 0; + uint32_t type = 0; + + id = pid_data >> 16; + type = (pid_data & 0x0000FF00) >> 8; + + ipio_info("id = 0x%x, type = 0x%x\n", id, type); + + if (id == CHIP_TYPE_ILI9881) { + for (i = ILI9881_TYPE_F; i <= ILI9881_TYPE_H; i++) { + if (i == type) { + core_config->chip_type = i; + core_config->ic_reset_addr = 0x040050; + return id; + } + } + } + + if (id == CHIP_TYPE_ILI7807) { + for (i = ILI7807_TYPE_F_AA; i <= ILI7807_TYPE_H; i++) { + if (i == type) { + core_config->chip_type = i; + if (i == ILI7807_TYPE_F_AB) + core_config->ic_reset_addr = 0x04004C; + else if (i == ILI7807_TYPE_H) + core_config->ic_reset_addr = 0x040050; + return id; + } + } + } + + return 0; +} + +/* + * Read & Write one byte in ICE Mode. + */ +uint32_t core_config_read_write_onebyte(uint32_t addr) +{ + int res = 0; + uint32_t data = 0; + uint8_t szOutBuf[64] = { 0 }; + + szOutBuf[0] = 0x25; + szOutBuf[1] = (char)((addr & 0x000000FF) >> 0); + szOutBuf[2] = (char)((addr & 0x0000FF00) >> 8); + szOutBuf[3] = (char)((addr & 0x00FF0000) >> 16); + + res = core_write(core_config->slave_i2c_addr, szOutBuf, 4); + if (res < 0) + goto out; + + mdelay(1); + + res = core_read(core_config->slave_i2c_addr, szOutBuf, 1); + if (res < 0) + goto out; + + data = (szOutBuf[0]); + + return data; + +out: + ipio_err("Failed to read/write data in ICE mode, res = %d\n", res); + return res; +} +EXPORT_SYMBOL(core_config_read_write_onebyte); + +uint32_t core_config_ice_mode_read(uint32_t addr) +{ + int res = 0; + uint8_t szOutBuf[64] = { 0 }; + uint32_t data = 0; + + szOutBuf[0] = 0x25; + szOutBuf[1] = (char)((addr & 0x000000FF) >> 0); + szOutBuf[2] = (char)((addr & 0x0000FF00) >> 8); + szOutBuf[3] = (char)((addr & 0x00FF0000) >> 16); + + res = core_write(core_config->slave_i2c_addr, szOutBuf, 4); + if (res < 0) + goto out; + + mdelay(10); + + res = core_read(core_config->slave_i2c_addr, szOutBuf, 4); + if (res < 0) + goto out; + + data = (szOutBuf[0] + szOutBuf[1] * 256 + szOutBuf[2] * 256 * 256 + + szOutBuf[3] * 256 * 256 * 256); + + return data; + +out: + ipio_err("Failed to read data in ICE mode, res = %d\n", res); + return res; +} +EXPORT_SYMBOL(core_config_ice_mode_read); + +/* + * Write commands into firmware in ICE Mode. + * + */ +int core_config_ice_mode_write(uint32_t addr, uint32_t data, uint32_t size) +{ + int res = 0, i; + uint8_t szOutBuf[64] = { 0 }; + + szOutBuf[0] = 0x25; + szOutBuf[1] = (char)((addr & 0x000000FF) >> 0); + szOutBuf[2] = (char)((addr & 0x0000FF00) >> 8); + szOutBuf[3] = (char)((addr & 0x00FF0000) >> 16); + + for (i = 0; i < size; i++) + szOutBuf[i + 4] = (char)(data >> (8 * i)); + + res = core_write(core_config->slave_i2c_addr, szOutBuf, size + 4); + + if (res < 0) + ipio_err("Failed to write data in ICE mode, res = %d\n", res); + + return res; +} +EXPORT_SYMBOL(core_config_ice_mode_write); + +/* + * Doing soft reset on ic. + * + * It resets ic's status, moves code and leave ice mode automatically if in + * that mode. + */ +void core_config_ic_reset(void) +{ +#ifdef HOST_DOWNLOAD + core_config_ice_mode_disable(); +#else + uint32_t key = 0; + + if (core_config->chip_id == CHIP_TYPE_ILI7807) { + if (core_config->chip_type == ILI7807_TYPE_H) + key = 0x00117807; + else + key = 0x00017807; + } + if (core_config->chip_id == CHIP_TYPE_ILI9881) + key = 0x00019881; + + ipio_debug(DEBUG_CONFIG, "key = 0x%x\n", key); + if (key != 0) { + core_config->do_ic_reset = true; + core_config_ice_mode_write(core_config->ic_reset_addr, key, 4); + core_config->do_ic_reset = false; + } + + msleep(300); +#endif +} +EXPORT_SYMBOL(core_config_ic_reset); + +void core_config_sense_ctrl(bool start) +{ + ipio_info("sense start = %d\n", start); + + return core_protocol_func_control(0, start); +} +EXPORT_SYMBOL(core_config_sense_ctrl); + +void core_config_sleep_ctrl(bool out) +{ + ipio_info("Sleep Out = %d\n", out); + + return core_protocol_func_control(1, out); +} +EXPORT_SYMBOL(core_config_sleep_ctrl); + +void core_config_glove_ctrl(bool enable, bool seamless) +{ + int cmd = 0x2; /* default as semaless */ + + if (!seamless) { + if (enable) + cmd = 0x1; + else + cmd = 0x0; + } + + ipio_info("Glove = %d, seamless = %d, cmd = %d\n", + enable, seamless, cmd); + + return core_protocol_func_control(2, cmd); +} +EXPORT_SYMBOL(core_config_glove_ctrl); + +void core_config_stylus_ctrl(bool enable, bool seamless) +{ + int cmd = 0x2; /* default as semaless */ + + if (!seamless) { + if (enable) + cmd = 0x1; + else + cmd = 0x0; + } + + ipio_info("stylus = %d, seamless = %d, cmd = %x\n" + , enable, seamless, cmd); + + return core_protocol_func_control(3, cmd); +} +EXPORT_SYMBOL(core_config_stylus_ctrl); + +void core_config_tp_scan_mode(bool mode) +{ + ipio_info("TP Scan mode = %d\n", mode); + + return core_protocol_func_control(4, mode); +} +EXPORT_SYMBOL(core_config_tp_scan_mode); + +void core_config_lpwg_ctrl(bool enable) +{ + ipio_info("LPWG = %d\n", enable); + + return core_protocol_func_control(5, enable); +} +EXPORT_SYMBOL(core_config_lpwg_ctrl); + +void core_config_gesture_ctrl(uint8_t func) +{ + uint8_t max_byte = 0x0, min_byte = 0x0; + + ipio_info("Gesture function = 0x%x\n", func); + + max_byte = 0x3F; + min_byte = 0x20; + + if (func > max_byte || func < min_byte) { + ipio_err("Gesture ctrl error, 0x%x\n", func); + return; + } + + return core_protocol_func_control(6, func); +} +EXPORT_SYMBOL(core_config_gesture_ctrl); + +void core_config_phone_cover_ctrl(bool enable) +{ + ipio_info("Phone Cover = %d\n", enable); + + return core_protocol_func_control(7, enable); +} +EXPORT_SYMBOL(core_config_phone_cover_ctrl); + +void core_config_finger_sense_ctrl(bool enable) +{ + ipio_info("Finger sense = %d\n", enable); + + return core_protocol_func_control(0, enable); +} +EXPORT_SYMBOL(core_config_finger_sense_ctrl); + +void core_config_proximity_ctrl(bool enable) +{ + ipio_info("Proximity = %d\n", enable); + + return core_protocol_func_control(11, enable); +} +EXPORT_SYMBOL(core_config_proximity_ctrl); + +void core_config_plug_ctrl(bool out) +{ + ipio_info("Plug Out = %d\n", out); + + return core_protocol_func_control(12, out); +} +EXPORT_SYMBOL(core_config_plug_ctrl); + +void core_config_set_phone_cover(uint8_t *pattern) +{ + int i; + + if (pattern == NULL) { + ipio_err("Invaild pattern\n"); + return; + } + + for (i = 0 ; i < 8; i++) + protocol->phone_cover_window[i+1] = pattern[i]; + + ipio_info("window: cmd = 0x%x\n", protocol->phone_cover_window[0]); + ipio_info("window: ul_x_l = 0x%x, ul_x_h = 0x%x\n", + protocol->phone_cover_window[1], + protocol->phone_cover_window[2]); + ipio_info("window: ul_y_l = 0x%x, ul_y_l = 0x%x\n", + protocol->phone_cover_window[3], + protocol->phone_cover_window[4]); + ipio_info("window: br_x_l = 0x%x, br_x_l = 0x%x\n" + , protocol->phone_cover_window[5], + protocol->phone_cover_window[6]); + ipio_info("window: br_y_l = 0x%x, br_y_l = 0x%x\n", + protocol->phone_cover_window[7], + protocol->phone_cover_window[8]); + + core_protocol_func_control(9, 0); +} +EXPORT_SYMBOL(core_config_set_phone_cover); + +/* + * ic_suspend: Get IC to suspend called from system. + * + * The timing when goes to sense stop or houw much times the command need to + * be called is depending on customer's system requirement, which might be + * different due to the DDI design or other conditions. + */ +void core_config_ic_suspend(void) +{ + if (ipd->suspended) { + ipio_info("TP already in suspend status ...\n"); + return; + } + ipio_info("Starting to suspend ...\n"); + + ilitek_platform_disable_irq(); + + if (ipd->isEnablePollCheckPower) + cancel_delayed_work_sync(&ipd->check_power_status_work); + +#ifndef SUSPEND_TP_POWER_OFF + /* sense stop */ + core_config_sense_ctrl(false); + + /* check system busy */ + if (core_config_check_cdc_busy(50, 10) < 0) + ipio_err("Check busy is timout !\n"); + + ipio_info("Enabled Gesture = %d\n", core_config->isEnableGesture); + + if (core_config->isEnableGesture) { + core_fr->actual_fw_mode = P5_0_FIRMWARE_GESTURE_MODE; +#ifdef HOST_DOWNLOAD + if (core_gesture_load_code() < 0) + ipio_err("load gesture code fail\n"); +#endif + ilitek_platform_enable_irq(); + } else { + /* sleep in */ + core_config_sleep_ctrl(false); + } +#endif + ipd->suspended = true; + ipio_info("Suspend done\n"); +} +EXPORT_SYMBOL(core_config_ic_suspend); + +/* + * ic_resume: Get IC to resume called from system. + * + * The timing when goes to sense start or houw much times the command need to + * be called is depending on customer's system requirement, which might be + * different due to the DDI design or other conditions. + */ +void core_config_ic_resume(void) +{ + if (!ipd->suspended) { + ipio_info("TP already in resume statues ...\n"); + return; + } + ipio_info("Starting to resume ...\n"); + +#ifndef SUSPEND_TP_POWER_OFF + + if (core_config->isEnableGesture) { +#ifdef HOST_DOWNLOAD + ilitek_platform_disable_irq(); + if (core_gesture_load_ap_code() < 0) { + ipio_err("load ap code fail\n"); + ilitek_platform_tp_hw_reset(true); + } +#endif + } else { + /*ilitek_platform_tp_hw_reset(true);*/ + /* Soft reset */ + core_config_ice_mode_enable(); + core_config_set_watch_dog(false); + mdelay(10); + core_config_ic_reset(); + } + /* sleep out */ + core_config_sleep_ctrl(true); + + /* check system busy */ + if (core_config_check_cdc_busy(50, 10) < 0) + ipio_err("Check busy is timout !\n"); + + /* sense start for TP */ + core_config_sense_ctrl(true); + + core_fr_mode_control(&protocol->demo_mode); + +#endif + ilitek_platform_enable_irq(); + + if (ipd->isEnablePollCheckPower) + queue_delayed_work(ipd->check_power_status_queue, + &ipd->check_power_status_work, ipd->work_delay); + + ipd->suspended = false; + ipio_info("Resume done\n"); +} +EXPORT_SYMBOL(core_config_ic_resume); + +int core_config_ice_mode_disable(void) +{ + uint32_t res = 0; + uint8_t cmd[4]; + + cmd[0] = 0x1b; + cmd[1] = 0x62; + cmd[2] = 0x10; + cmd[3] = 0x18; + + ipio_info("ICE Mode disabled\n"); + res = core_write(core_config->slave_i2c_addr, cmd, 4); + core_config->icemodeenable = false; + return res; +} +EXPORT_SYMBOL(core_config_ice_mode_disable); + +int core_config_ice_mode_enable(void) +{ + ipio_info("ICE Mode enabled\n"); + core_config->icemodeenable = true; + if (core_config_ice_mode_write(0x181062, 0x0, 0) < 0) + return ERROR; + + return 0; +} +EXPORT_SYMBOL(core_config_ice_mode_enable); + +int core_config_set_watch_dog(bool enable) +{ + int timeout = 10, ret = 0; + uint8_t off_bit = 0x5A, on_bit = 0xA5; + uint8_t value_low = 0x0, value_high = 0x0; + uint32_t wdt_addr = core_config->wdt_addr; + + if (wdt_addr <= 0 || core_config->chip_id <= 0) { + ipio_err("WDT/CHIP ID is invalid\n"); + return -EINVAL; + } + + /* Config register and values by IC */ + if (core_config->chip_id == CHIP_TYPE_ILI7807) { + value_low = 0x07; + value_high = 0x78; + } else if (core_config->chip_id == CHIP_TYPE_ILI9881) { + value_low = 0x81; + value_high = 0x98; + } else { + ipio_err("Unknown CHIP type (0x%x)\n", core_config->chip_id); + return -ENODEV; + } + + if (enable) { + core_config_ice_mode_write(wdt_addr, 1, 1); + } else { + core_config_ice_mode_write(wdt_addr, value_low, 1); + core_config_ice_mode_write(wdt_addr, value_high, 1); + } + + while (timeout > 0) { + ret = core_config_ice_mode_read(0x51018); + ipio_debug(DEBUG_CONFIG, "bit = %x\n", ret); + + if (enable) { + if (CHECK_EQUAL(ret, on_bit) == 0) + break; + } else { + if (CHECK_EQUAL(ret, off_bit) == 0) + break; + } + + timeout--; + mdelay(10); + } + + if (timeout > 0) { + if (enable) { + ipio_info("WDT turn on succeed\n"); + } else { + core_config_ice_mode_write(wdt_addr, 0, 1); + ipio_info("WDT turn off succeed\n"); + } + } else { + ipio_err("WDT turn on/off timeout !\n"); + return -EINVAL; + } + + return 0; +} +EXPORT_SYMBOL(core_config_set_watch_dog); + +int core_config_check_cdc_busy(int conut, int delay) +{ + int timer = conut, res = ERROR; + uint8_t cmd[2] = { 0 }; + uint8_t busy = 0; + + cmd[0] = protocol->cmd_read_ctrl; + cmd[1] = protocol->cmd_cdc_busy; + + while (timer > 0) { + mdelay(delay); + core_write(core_config->slave_i2c_addr, cmd, 2); + core_write(core_config->slave_i2c_addr, &cmd[1], 1); + core_read(core_config->slave_i2c_addr, &busy, 1); + if (core_fr->actual_fw_mode == + P5_0_FIRMWARE_DEMO_MODE && busy == 0x41) { + ipio_info("Check busy is free\n"); + res = 0; + break; + } + if (core_fr->actual_fw_mode == + P5_0_FIRMWARE_TEST_MODE && busy == 0x51) { + ipio_info("Check busy is free\n"); + res = 0; + break; + } + timer--; + } + + if (res < -1) + ipio_info("%d mode Check busy timeout !!\n", + core_fr->actual_fw_mode); + + return res; +} +EXPORT_SYMBOL(core_config_check_cdc_busy); + +int core_config_check_int_status(bool high) +{ + int timer = 1000, res = ERROR; + + /* From FW request, timeout should at least be 5 sec */ + while (timer) { + if (high) { + if (gpio_get_value(ipd->int_gpio)) { + ipio_info("Check busy is free\n"); + res = 0; + break; + } + } else { + if (!gpio_get_value(ipd->int_gpio)) { + ipio_info("Check busy is free\n"); + res = 0; + break; + } + } + + mdelay(5); + timer--; + } + + if (res < -1) + ipio_info("Check busy timeout !!\n"); + + return res; +} +EXPORT_SYMBOL(core_config_check_int_status); + +int core_config_get_project_id(uint8_t *pid_data) +{ + int i = 0, res = 0; + uint32_t pid_addr = 0x1D000, pid_size = 10; + + res = core_config_ice_mode_enable(); + if (res < 0) { + ipio_err("Failed to enter ICE mode, res = %d\n", res); + return ERROR; + } + + /* Disable watch dog */ + core_config_set_watch_dog(false); + + core_config_ice_mode_write(0x041000, 0x0, 1); /* CS low */ + core_config_ice_mode_write(0x041004, 0x66aa55, 3); /* Key */ + + core_config_ice_mode_write(0x041008, 0x06, 1); + core_config_ice_mode_write(0x041000, 0x01, 1); + core_config_ice_mode_write(0x041000, 0x00, 1); + core_config_ice_mode_write(0x041004, 0x66aa55, 3); /* Key */ + core_config_ice_mode_write(0x041008, 0x03, 1); + + core_config_ice_mode_write(0x041008, (pid_addr & 0xFF0000) >> 16, 1); + core_config_ice_mode_write(0x041008, (pid_addr & 0x00FF00) >> 8, 1); + core_config_ice_mode_write(0x041008, (pid_addr & 0x0000FF), 1); + + for (i = 0 ; i < pid_size; i++) { + core_config_ice_mode_write(0x041008, 0xFF, 1); + pid_data[i] = core_config_ice_mode_read(0x41010); + ipio_info("pid_data[%d] = 0x%x\n", i, pid_data[i]); + } + + core_config_ice_mode_write(0x041010, 0x1, 0); /* CS high */ + core_config_ic_reset(); + + return res; +} +EXPORT_SYMBOL(core_config_get_project_id); + +int core_config_get_key_info(void) +{ + int res = 0, i; + uint8_t cmd[2] = { 0 }; + + memset(g_read_buf, 0, sizeof(g_read_buf)); + + cmd[0] = protocol->cmd_read_ctrl; + cmd[1] = protocol->cmd_get_key_info; + + res = core_write(core_config->slave_i2c_addr, cmd, 2); + if (res < 0) { + ipio_err("Failed to write data via I2C, %d\n", res); + goto out; + } + + mdelay(1); + + res = core_write(core_config->slave_i2c_addr, &cmd[1], 1); + if (res < 0) { + ipio_err("Failed to write data via I2C, %d\n", res); + goto out; + } + + mdelay(1); + + res = core_read(core_config->slave_i2c_addr, + &g_read_buf[0], protocol->key_info_len); + if (res < 0) { + ipio_err("Failed to read data via I2C, %d\n", res); + goto out; + } + + if (core_config->tp_info->nKeyCount) { + /* NOTE: Firmware not ready yet */ + core_config->tp_info->nKeyAreaXLength = + (g_read_buf[0] << 8) + g_read_buf[1]; + core_config->tp_info->nKeyAreaYLength = + (g_read_buf[2] << 8) + g_read_buf[3]; + + ipio_info("key: length of X area = %x\n", + core_config->tp_info->nKeyAreaXLength); + ipio_info("key: length of Y area = %x\n", + core_config->tp_info->nKeyAreaYLength); + + for (i = 0 ; i < core_config->tp_info->nKeyCount; i++) { + core_config->tp_info->virtual_key[i].nId = + g_read_buf[i * 5 + 4]; + core_config->tp_info->virtual_key[i].nX = + (g_read_buf[i * 5 + 5] << 8) + g_read_buf[i * 5 + 6]; + core_config->tp_info->virtual_key[i].nY = + (g_read_buf[i * 5 + 7] << 8) + g_read_buf[i * 5 + 8]; + core_config->tp_info->virtual_key[i].nStatus = 0; + + ipio_info("key: id = %d, X = %d, Y = %d\n", + core_config->tp_info->virtual_key[i].nId, + core_config->tp_info->virtual_key[i].nX, + core_config->tp_info->virtual_key[i].nY); + } + } + +out: + return res; +} +EXPORT_SYMBOL(core_config_get_key_info); + +int core_config_get_tp_info(void) +{ + int res = 0; + uint8_t cmd[2] = { 0 }; + + memset(g_read_buf, 0, sizeof(g_read_buf)); + + cmd[0] = protocol->cmd_read_ctrl; + cmd[1] = protocol->cmd_get_tp_info; + + res = core_write(core_config->slave_i2c_addr, cmd, 2); + if (res < 0) { + ipio_err("Failed to write data via I2C, %d\n", res); + goto out; + } + + mdelay(1); + + res = core_write(core_config->slave_i2c_addr, &cmd[1], 1); + if (res < 0) { + ipio_err("Failed to write data via I2C, %d\n", res); + goto out; + } + + mdelay(1); + + res = core_read(core_config->slave_i2c_addr, &g_read_buf[0], + protocol->tp_info_len); + if (res < 0) { + ipio_err("Failed to read data via I2C, %d\n", res); + goto out; + } + + /* in protocol v5, ignore the first btye because of a header. */ + core_config->tp_info->nMinX = g_read_buf[1]; + core_config->tp_info->nMinY = g_read_buf[2]; + core_config->tp_info->nMaxX = (g_read_buf[4] << 8) + g_read_buf[3]; + core_config->tp_info->nMaxY = (g_read_buf[6] << 8) + g_read_buf[5]; + core_config->tp_info->nXChannelNum = g_read_buf[7]; + core_config->tp_info->nYChannelNum = g_read_buf[8]; + core_config->tp_info->self_tx_channel_num = g_read_buf[11]; + core_config->tp_info->self_rx_channel_num = g_read_buf[12]; + core_config->tp_info->side_touch_type = g_read_buf[13]; + core_config->tp_info->nMaxTouchNum = g_read_buf[9]; + core_config->tp_info->nKeyCount = g_read_buf[10]; + + core_config->tp_info->nMaxKeyButtonNum = 5; + + ipio_info("minX = %d, minY = %d, maxX = %d, maxY = %d\n", + core_config->tp_info->nMinX, core_config->tp_info->nMinY, + core_config->tp_info->nMaxX, core_config->tp_info->nMaxY); + ipio_info("xchannel = %d, ychannel = %d, self_tx = %d, self_rx = %d\n", + core_config->tp_info->nXChannelNum, + core_config->tp_info->nYChannelNum, + core_config->tp_info->self_tx_channel_num, + core_config->tp_info->self_rx_channel_num); + ipio_info("side_touch_type = %d, max_touch_num= %d, touch_key_num = %d, max_key_num = %d\n", + core_config->tp_info->side_touch_type, + core_config->tp_info->nMaxTouchNum, + core_config->tp_info->nKeyCount, + core_config->tp_info->nMaxKeyButtonNum); + +out: + return res; +} +EXPORT_SYMBOL(core_config_get_tp_info); + +int core_config_get_protocol_ver(void) +{ + int res = 0, i = 0; + int major, mid, minor; + uint8_t cmd[2] = { 0 }; + + memset(g_read_buf, 0, sizeof(g_read_buf)); + memset(core_config->protocol_ver, 0x0, + sizeof(core_config->protocol_ver)); + + cmd[0] = protocol->cmd_read_ctrl; + cmd[1] = protocol->cmd_get_pro_ver; + + res = core_write(core_config->slave_i2c_addr, cmd, 2); + if (res < 0) { + ipio_err("Failed to write data via I2C, %d\n", res); + goto out; + } + + mdelay(1); + + res = core_write(core_config->slave_i2c_addr, &cmd[1], 1); + if (res < 0) { + ipio_err("Failed to write data via I2C, %d\n", res); + goto out; + } + + mdelay(1); + + res = core_read(core_config->slave_i2c_addr, &g_read_buf[0], + protocol->pro_ver_len); + if (res < 0) { + ipio_err("Failed to read data via I2C, %d\n", res); + goto out; + } + + /* ignore the first btye because of a header. */ + for (; i < protocol->pro_ver_len - 1; i++) + core_config->protocol_ver[i] = g_read_buf[i + 1]; + + ipio_info("Procotol Version = %d.%d.%d\n", + core_config->protocol_ver[0], core_config->protocol_ver[1], + core_config->protocol_ver[2]); + + major = core_config->protocol_ver[0]; + mid = core_config->protocol_ver[1]; + minor = core_config->protocol_ver[2]; + + /* update protocol if they're different with the default ver set by + * driver + */ + if (major != PROTOCOL_MAJOR || mid != PROTOCOL_MID || + minor != PROTOCOL_MINOR) { + res = core_protocol_update_ver(major, mid, minor); + if (res < 0) + ipio_err("Protocol version is invalid\n"); + } + +out: + return res; +} +EXPORT_SYMBOL(core_config_get_protocol_ver); + +int core_config_get_core_ver(void) +{ + int res = 0, i = 0; + uint8_t cmd[2] = { 0 }; + + memset(g_read_buf, 0, sizeof(g_read_buf)); + + cmd[0] = protocol->cmd_read_ctrl; + cmd[1] = protocol->cmd_get_core_ver; + + res = core_write(core_config->slave_i2c_addr, cmd, 2); + if (res < 0) { + ipio_err("Failed to write data via I2C, %d\n", res); + goto out; + } + + mdelay(1); + + res = core_write(core_config->slave_i2c_addr, &cmd[1], 1); + if (res < 0) { + ipio_err("Failed to write data via I2C, %d\n", res); + goto out; + } + + mdelay(1); + + res = core_read(core_config->slave_i2c_addr, &g_read_buf[0], + protocol->core_ver_len); + if (res < 0) { + ipio_err("Failed to read data via I2C, %d\n", res); + goto out; + } + + for (; i < protocol->core_ver_len - 1; i++) + core_config->core_ver[i] = g_read_buf[i + 1]; + + /* in protocol v5, ignore the first btye because of a header. */ + ipio_info("Core Version = %d.%d.%d.%d\n", + core_config->core_ver[1], core_config->core_ver[2], + core_config->core_ver[3], core_config->core_ver[4]); + +out: + return res; +} +EXPORT_SYMBOL(core_config_get_core_ver); + +/* + * Getting the version of firmware used on the current one. + * + */ +int core_config_get_fw_ver(void) +{ + int res = 0, i = 0; + uint8_t cmd[2] = { 0 }; + + memset(g_read_buf, 0, sizeof(g_read_buf)); + + cmd[0] = protocol->cmd_read_ctrl; + cmd[1] = protocol->cmd_get_fw_ver; + + res = core_write(core_config->slave_i2c_addr, cmd, 2); + if (res < 0) { + ipio_err("Failed to write data via I2C, %d\n", res); + goto out; + } + + mdelay(1); + + res = core_write(core_config->slave_i2c_addr, &cmd[1], 1); + if (res < 0) { + ipio_err("Failed to write data via I2C, %d\n", res); + goto out; + } + + mdelay(1); + + res = core_read(core_config->slave_i2c_addr, &g_read_buf[0], + protocol->fw_ver_len); + if (res < 0) { + ipio_err("Failed to read fw version %d\n", res); + goto out; + } + + for (; i < protocol->fw_ver_len ; i++) + core_config->firmware_ver[i] = g_read_buf[i]; + + if (protocol->mid >= 0x3) { + ipio_info("Firmware Version = %d.%d.%d.%d\n", + core_config->firmware_ver[1], core_config->firmware_ver[2], + core_config->firmware_ver[3], core_config->firmware_ver[4]); + } else { + ipio_info("Firmware Version = %d.%d.%d\n", + core_config->firmware_ver[1], + core_config->firmware_ver[2], + core_config->firmware_ver[3]); + } +out: + return res; +} +EXPORT_SYMBOL(core_config_get_fw_ver); + +int core_config_get_chip_id(void) +{ + int res = 0; + static int do_once; + uint32_t RealID = 0, PIDData = 0; + + res = core_config_ice_mode_enable(); + if (res < 0) { + ipio_err("Failed to enter ICE mode, res = %d\n", res); + goto out; + } + + mdelay(20); + + PIDData = core_config_ice_mode_read(core_config->pid_addr); + core_config->chip_pid = PIDData; + core_config->core_type = PIDData & 0xFF; + ipio_info("PID = 0x%x, Core type = 0x%x\n", + core_config->chip_pid, core_config->core_type); + + if (PIDData) { + RealID = check_chip_id(PIDData); + if (RealID != core_config->chip_id) { + ipio_err("CHIP ID ERROR: 0x%x, TP_TOUCH_IC = 0x%x\n", + RealID, ipd->chip_id); + res = -ENODEV; + goto out; + } + } else { + ipio_err("PID DATA error : 0x%x\n", PIDData); + res = -EINVAL; + goto out; + } + + if (do_once == 0) { + /* reading flash id needs to let ic entry to ICE mode */ + read_flash_info(0x9F, 4); + do_once = 1; + } + +out: + core_config_ic_reset(); + mdelay(150); + return res; +} +EXPORT_SYMBOL(core_config_get_chip_id); + +int core_config_init(void) +{ + int i = 0; + + core_config = kzalloc(sizeof(*core_config) * sizeof(uint8_t) * 6, + GFP_KERNEL); + if (ERR_ALLOC_MEM(core_config)) { + ipio_err("Failed to allocate core_config mem, %ld\n", + PTR_ERR(core_config)); + core_config_remove(); + return -ENOMEM; + } + + core_config->tp_info = kzalloc(sizeof(*core_config->tp_info), + GFP_KERNEL); + if (ERR_ALLOC_MEM(core_config->tp_info)) { + ipio_err("Failed to allocate core_config->tp_info mem, %ld\n", + PTR_ERR(core_config->tp_info)); + core_config_remove(); + return -ENOMEM; + } + + for (; i < ARRAY_SIZE(ipio_chip_list); i++) { + if (ipio_chip_list[i] == ipd->chip_id) { + core_config->chip_id = ipio_chip_list[i]; + core_config->chip_type = 0x0000; + core_config->do_ic_reset = false; + core_config->isEnableGesture = false; + + if (core_config->chip_id == CHIP_TYPE_ILI7807) { + core_config->slave_i2c_addr = + ILI7807_SLAVE_ADDR; + core_config->ice_mode_addr = + ILI7807_ICE_MODE_ADDR; + core_config->pid_addr = ILI7807_PID_ADDR; + core_config->wdt_addr = ILI7808_WDT_ADDR; + } else if (core_config->chip_id == CHIP_TYPE_ILI9881) { + core_config->slave_i2c_addr = + ILI9881_SLAVE_ADDR; + core_config->ice_mode_addr = + ILI9881_ICE_MODE_ADDR; + core_config->pid_addr = ILI9881_PID_ADDR; + core_config->wdt_addr = ILI9881_WDT_ADDR; + } + return 0; + } + } + + ipio_err("Can't find this chip in support list\n"); + return 0; +} +EXPORT_SYMBOL(core_config_init); + +void core_config_remove(void) +{ + ipio_info("Remove core-config memebers\n"); + + if (core_config != NULL) { + ipio_kfree((void **)&core_config->tp_info); + ipio_kfree((void **)&core_config); + } +} +EXPORT_SYMBOL(core_config_remove); diff --git a/drivers/input/touchscreen/ilitek_mmi/core/config.h b/drivers/input/touchscreen/ilitek_mmi/core/config.h new file mode 100644 index 000000000000..06c15c044623 --- /dev/null +++ b/drivers/input/touchscreen/ilitek_mmi/core/config.h @@ -0,0 +1,134 @@ +/* + * ILITEK Touch IC driver + * + * Copyright (C) 2011 ILI Technology Corporation. + * + * Author: Dicky Chiang + * Based on TDD v7.0 implemented by Mstar & ILITEK + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ + +#ifndef __CONFIG_H +#define __CONFIG_H + +typedef struct { + int nId; + int nX; + int nY; + int nStatus; + int nFlag; +} VIRTUAL_KEYS; + +typedef struct { + uint16_t nMaxX; + uint16_t nMaxY; + uint16_t nMinX; + uint16_t nMinY; + + uint8_t nMaxTouchNum; + uint8_t nMaxKeyButtonNum; + + uint8_t nXChannelNum; + uint8_t nYChannelNum; + uint8_t nHandleKeyFlag; + uint8_t nKeyCount; + + uint16_t nKeyAreaXLength; + uint16_t nKeyAreaYLength; + + VIRTUAL_KEYS virtual_key[10]; + + /* added for protocol v5 */ + uint8_t self_tx_channel_num; + uint8_t self_rx_channel_num; + uint8_t side_touch_type; + +} TP_INFO; + +struct core_config_data { + uint32_t chip_id; + uint32_t chip_type; + uint32_t chip_pid; + + uint8_t core_type; + + uint32_t slave_i2c_addr; + uint32_t ice_mode_addr; + uint32_t pid_addr; + uint32_t wdt_addr; + uint32_t ic_reset_addr; + + uint8_t protocol_ver[4]; + uint8_t firmware_ver[9]; + uint8_t core_ver[5]; + + bool do_ic_reset; + bool isEnableGesture; + bool icemodeenable; + bool spi_pro_9881h11; + TP_INFO *tp_info; +}; + +extern struct core_config_data *core_config; + +extern int fw_cmd_len; +extern int protocol_cmd_len; +extern int tp_info_len; +extern int key_info_len; +extern int core_cmd_len; + +/* R/W with Touch ICs */ +extern uint32_t core_config_ice_mode_read(uint32_t addr); +extern int core_config_ice_mode_write(uint32_t addr, uint32_t data, uint32_t size); +extern uint32_t core_config_read_write_onebyte(uint32_t addr); +extern int core_config_ice_mode_disable(void); +extern int core_config_ice_mode_enable(void); + +/* Touch IC status */ +extern int core_config_set_watch_dog(bool enable); +extern int core_config_check_cdc_busy(int count, int delay); +extern int core_config_check_int_status(bool high); +extern void core_config_ic_suspend(void); +extern void core_config_ic_resume(void); +extern void core_config_ic_reset(void); + +/* control features of Touch IC */ +extern void core_config_sense_ctrl(bool start); +extern void core_config_sleep_ctrl(bool out); +extern void core_config_glove_ctrl(bool enable, bool seamless); +extern void core_config_stylus_ctrl(bool enable, bool seamless); +extern void core_config_tp_scan_mode(bool mode); +extern void core_config_lpwg_ctrl(bool enable); +extern void core_config_gesture_ctrl(uint8_t func); +extern void core_config_phone_cover_ctrl(bool enable); +extern void core_config_finger_sense_ctrl(bool enable); +extern void core_config_proximity_ctrl(bool enable); +extern void core_config_plug_ctrl(bool out); +extern void core_config_set_phone_cover(uint8_t *pattern); + +/* Touch IC information */ +extern int core_config_get_core_ver(void); +extern int core_config_get_key_info(void); +extern int core_config_get_tp_info(void); +extern int core_config_get_protocol_ver(void); +extern int core_config_get_fw_ver(void); +extern int core_config_get_chip_id(void); + +extern int core_config_init(void); +extern void core_config_remove(void); + +#endif /* __CONFIG_H */ diff --git a/drivers/input/touchscreen/ilitek_mmi/core/finger_report.c b/drivers/input/touchscreen/ilitek_mmi/core/finger_report.c new file mode 100644 index 000000000000..aabf11eba02b --- /dev/null +++ b/drivers/input/touchscreen/ilitek_mmi/core/finger_report.c @@ -0,0 +1,822 @@ +/* + * ILITEK Touch IC driver + * + * Copyright (C) 2011 ILI Technology Corporation. + * + * Author: Dicky Chiang + * Based on TDD v7.0 implemented by Mstar & ILITEK + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ +#include +#include +#include +#include +#include +#include +#include +#include + +#include "../common.h" +#include "../platform.h" +#include "config.h" +#include "i2c.h" +#include "finger_report.h" +#include "gesture.h" +#include "mp_test.h" +#include "protocol.h" + +/* An id with position in each fingers */ +struct mutual_touch_point { + uint16_t id; + uint16_t x; + uint16_t y; + uint16_t pressure; +}; + +/* Keys and code with each fingers */ +struct mutual_touch_info { + uint8_t touch_num; + uint8_t key_code; + struct mutual_touch_point mtp[10]; +}; + +/* Store the packet of finger report */ +struct fr_data_node { + uint8_t *data; + uint16_t len; +}; + +/* record the status of touch being pressed or released currently and previosuly */ +uint8_t g_current_touch[10]; +uint8_t g_previous_touch[10]; + +/* the total length of finger report packet */ +uint16_t g_total_len; + +struct mutual_touch_info g_mutual_data; +struct fr_data_node *g_fr_node = NULL, *g_fr_uart = NULL; +struct core_fr_data *core_fr; + +/** + * Calculate the check sum of each packet reported by firmware + * + * @pMsg: packet come from firmware + * @nLength : the length of its packet + */ +uint8_t core_fr_calc_checksum(uint8_t *pMsg, uint32_t nLength) +{ + int i; + int32_t nCheckSum = 0; + + for (i = 0 ; i < nLength; i++) { + nCheckSum += pMsg[i]; + } + + return (uint8_t) ((-nCheckSum) & 0xFF); +} +EXPORT_SYMBOL(core_fr_calc_checksum); + +/** + * Receive data when fw mode stays at i2cuart mode. + * + * the first is to receive N bytes depending on the mode that firmware stays + * before going in this function, and it would check with i2c buffer if it + * remains the rest of data. + */ +static void i2cuart_recv_packet(void) +{ + int res = 0, need_read_len = 0, one_data_bytes = 0; + int type = g_fr_node->data[3] & 0x0F; + int actual_len = g_fr_node->len - 5; + + ipio_debug(DEBUG_FINGER_REPORT, "pid = %x, data[3] = %x, type = %x, actual_len = %d\n", + g_fr_node->data[0], g_fr_node->data[3], type, actual_len); + + need_read_len = g_fr_node->data[1] * g_fr_node->data[2]; + + if (type == 0 || type == 1 || type == 6) { + one_data_bytes = 1; + } else if (type == 2 || type == 3) { + one_data_bytes = 2; + } else if (type == 4 || type == 5) { + one_data_bytes = 4; + } + + ipio_debug(DEBUG_FINGER_REPORT, "need_read_len = %d one_data_bytes = %d\n", need_read_len, one_data_bytes); + + need_read_len = need_read_len * one_data_bytes + 1; + + if (need_read_len > actual_len) { + g_fr_uart = kmalloc(sizeof(*g_fr_uart), GFP_ATOMIC); + if (ERR_ALLOC_MEM(g_fr_uart)) { + ipio_err("Failed to allocate g_fr_uart memory %ld\n", PTR_ERR(g_fr_uart)); + return; + } + + g_fr_uart->len = need_read_len - actual_len; + g_fr_uart->data = kzalloc(g_fr_uart->len, GFP_ATOMIC); + if (ERR_ALLOC_MEM(g_fr_uart->data)) { + ipio_err("Failed to allocate g_fr_uart memory %ld\n", PTR_ERR(g_fr_uart->data)); + return; + } + + g_total_len += g_fr_uart->len; + res = core_read(core_config->slave_i2c_addr, g_fr_uart->data, g_fr_uart->len); + if (res < 0) + ipio_err("Failed to read finger report packet\n"); + } +} + +/* + * It'd be called when a finger's touching down a screen. It'll notify the event + * to the uplayer from input device. + * + * @x: the axis of X + * @y: the axis of Y + * @pressure: the value of pressue on a screen + * @id: an id represents a finger pressing on a screen + */ +void core_fr_touch_press(int32_t x, int32_t y, uint32_t pressure, int32_t id) +{ + ipio_debug(DEBUG_FINGER_REPORT, "DOWN: id = %d, x = %d, y = %d\n", id, x, y); + + if (ipd->x_flip) + x = ipd->x_max - x; + if (ipd->y_flip) + y = ipd->y_max - y; + ipio_debug(DEBUG_FINGER_REPORT, "Flip:: DOWN: id = %d, x = %d, y = %d\n", id, x, y); + + if (ipd->MT_B_TYPE) { + input_mt_slot(core_fr->input_device, id); + input_mt_report_slot_state(core_fr->input_device, MT_TOOL_FINGER, true); + input_report_abs(core_fr->input_device, ABS_MT_POSITION_X, x); + input_report_abs(core_fr->input_device, ABS_MT_POSITION_Y, y); + if (core_fr->isEnablePressure) + input_report_abs(core_fr->input_device, ABS_MT_PRESSURE, pressure); + } else{ + input_report_key(core_fr->input_device, BTN_TOUCH, 1); + input_report_abs(core_fr->input_device, ABS_MT_TRACKING_ID, id); + input_report_abs(core_fr->input_device, ABS_MT_TOUCH_MAJOR, 1); + input_report_abs(core_fr->input_device, ABS_MT_WIDTH_MAJOR, 1); + input_report_abs(core_fr->input_device, ABS_MT_POSITION_X, x); + input_report_abs(core_fr->input_device, ABS_MT_POSITION_Y, y); + if (core_fr->isEnablePressure) + input_report_abs(core_fr->input_device, ABS_MT_PRESSURE, pressure); + + input_mt_sync(core_fr->input_device); + } +} +EXPORT_SYMBOL(core_fr_touch_press); + +/* + * It'd be called when a finger's touched up from a screen. It'll notify + * the event to the uplayer from input device. + * + * @x: the axis of X + * @y: the axis of Y + * @id: an id represents a finger leaving from a screen. + */ +void core_fr_touch_release(int32_t x, int32_t y, int32_t id) +{ + ipio_debug(DEBUG_FINGER_REPORT, "UP: id = %d, x = %d, y = %d\n", id, x, y); + + if (ipd->MT_B_TYPE) { + input_mt_slot(core_fr->input_device, id); + input_mt_report_slot_state(core_fr->input_device, MT_TOOL_FINGER, false); +} else{ + input_report_key(core_fr->input_device, BTN_TOUCH, 0); + input_mt_sync(core_fr->input_device); + } +} +EXPORT_SYMBOL(core_fr_touch_release); + +static int parse_touch_package_v3_2(void) +{ + ipio_info("Not implemented yet\n"); + return 0; +} + +static int finger_report_ver_3_2(void) +{ + ipio_info("Not implemented yet\n"); + parse_touch_package_v3_2(); + return 0; +} + +/* + * It mainly parses the packet assembled by protocol v5.0 + */ +static int parse_touch_package_v5_0(uint8_t pid) +{ + int i, res = 0; + uint8_t check_sum = 0; + uint32_t nX = 0, nY = 0; + + for (i = 0 ; i < 9; i++) + ipio_debug(DEBUG_FINGER_REPORT, "data[%d] = %x\n", i, g_fr_node->data[i]); + + check_sum = core_fr_calc_checksum(&g_fr_node->data[0], (g_fr_node->len - 1)); + ipio_debug(DEBUG_FINGER_REPORT, "data = %x ; check_sum : %x\n", g_fr_node->data[g_fr_node->len - 1], check_sum); + + if (g_fr_node->data[g_fr_node->len - 1] != check_sum) { + ipio_err("Wrong checksum\n"); + res = ERROR; + goto out; + } + + /* start to parsing the packet of finger report */ + if (pid == protocol->demo_pid) { + ipio_debug(DEBUG_FINGER_REPORT, " **** Parsing DEMO packets : 0x%x ****\n", pid); + + for (i = 0 ; i < ipd->MAX_TOUCH_NUM; i++) { + if ((g_fr_node->data[(4 * i) + 1] == 0xFF) && (g_fr_node->data[(4 * i) + 2] && 0xFF) + && (g_fr_node->data[(4 * i) + 3] == 0xFF)) { + if (ipd->MT_B_TYPE) + g_current_touch[i] = 0; + continue; + } + + nX = (((g_fr_node->data[(4 * i) + 1] & 0xF0) << 4) | (g_fr_node->data[(4 * i) + 2])); + nY = (((g_fr_node->data[(4 * i) + 1] & 0x0F) << 8) | (g_fr_node->data[(4 * i) + 3])); + + if (!core_fr->isSetResolution) { + g_mutual_data.mtp[g_mutual_data.touch_num].x = nX * (ipd->x_max) / (ipd->TPD_WIDTH); + g_mutual_data.mtp[g_mutual_data.touch_num].y = nY * (ipd->y_max) / (ipd->TPD_HEIGHT); + g_mutual_data.mtp[g_mutual_data.touch_num].id = i; + } else { + g_mutual_data.mtp[g_mutual_data.touch_num].x = nX; + g_mutual_data.mtp[g_mutual_data.touch_num].y = nY; + g_mutual_data.mtp[g_mutual_data.touch_num].id = i; + } + + if (core_fr->isEnablePressure) + g_mutual_data.mtp[g_mutual_data.touch_num].pressure = g_fr_node->data[(4 * i) + 4]; + else + g_mutual_data.mtp[g_mutual_data.touch_num].pressure = 1; + + ipio_debug(DEBUG_FINGER_REPORT, "[x,y]=[%d,%d]\n", nX, nY); + ipio_debug(DEBUG_FINGER_REPORT, "point[%d] : (%d,%d) = %d\n", + g_mutual_data.mtp[g_mutual_data.touch_num].id, + g_mutual_data.mtp[g_mutual_data.touch_num].x, + g_mutual_data.mtp[g_mutual_data.touch_num].y, g_mutual_data.mtp[g_mutual_data.touch_num].pressure); + + g_mutual_data.touch_num++; + + if (ipd->MT_B_TYPE) + g_current_touch[i] = 1; + } + } else if (pid == protocol->debug_pid) { + ipio_debug(DEBUG_FINGER_REPORT, " **** Parsing DEBUG packets : 0x%x ****\n", pid); + ipio_debug(DEBUG_FINGER_REPORT, "Length = %d\n", (g_fr_node->data[1] << 8 | g_fr_node->data[2])); + + for (i = 0 ; i < ipd->MAX_TOUCH_NUM; i++) { + if ((g_fr_node->data[(3 * i) + 5] == 0xFF) && (g_fr_node->data[(3 * i) + 6] && 0xFF) + && (g_fr_node->data[(3 * i) + 7] == 0xFF)) { + if (ipd->MT_B_TYPE) + g_current_touch[i] = 0; + continue; + } + + nX = (((g_fr_node->data[(3 * i) + 5] & 0xF0) << 4) | (g_fr_node->data[(3 * i) + 6])); + nY = (((g_fr_node->data[(3 * i) + 5] & 0x0F) << 8) | (g_fr_node->data[(3 * i) + 7])); + + if (!core_fr->isSetResolution) { + g_mutual_data.mtp[g_mutual_data.touch_num].x = nX * (ipd->x_max) / (ipd->TPD_WIDTH); + g_mutual_data.mtp[g_mutual_data.touch_num].y = nY * (ipd->y_max) / (ipd->TPD_HEIGHT); + g_mutual_data.mtp[g_mutual_data.touch_num].id = i; + } else { + g_mutual_data.mtp[g_mutual_data.touch_num].x = nX; + g_mutual_data.mtp[g_mutual_data.touch_num].y = nY; + g_mutual_data.mtp[g_mutual_data.touch_num].id = i; + } + + if (core_fr->isEnablePressure) + g_mutual_data.mtp[g_mutual_data.touch_num].pressure = g_fr_node->data[(4 * i) + 4]; + else + g_mutual_data.mtp[g_mutual_data.touch_num].pressure = 1; + + ipio_debug(DEBUG_FINGER_REPORT, "[x,y]=[%d,%d]\n", nX, nY); + ipio_debug(DEBUG_FINGER_REPORT, "point[%d] : (%d,%d) = %d\n", + g_mutual_data.mtp[g_mutual_data.touch_num].id, + g_mutual_data.mtp[g_mutual_data.touch_num].x, + g_mutual_data.mtp[g_mutual_data.touch_num].y, g_mutual_data.mtp[g_mutual_data.touch_num].pressure); + + g_mutual_data.touch_num++; + + if (ipd->MT_B_TYPE) + g_current_touch[i] = 1; + } + } else { + if (pid != 0) { + /* ignore the pid with 0x0 after enable irq at once */ + ipio_err(" **** Unknown PID : 0x%x ****\n", pid); + res = ERROR; + } + } + +out: + return res; +} + +/* + * The function is called by an interrupt and used to handle packet of finger + * touch from firmware. A differnece in the process of the data is acorrding to the protocol + */ +static int finger_report_ver_5_0(void) +{ + int i, gesture, res = 0; + static int last_touch; + uint8_t pid = 0x0; + + memset(&g_mutual_data, 0x0, sizeof(struct mutual_touch_info)); + +#ifdef I2C_SEGMENT + res = core_i2c_segmental_read(core_config->slave_i2c_addr, g_fr_node->data, g_fr_node->len); +#else + res = core_read(core_config->slave_i2c_addr, g_fr_node->data, g_fr_node->len); +#endif + + if (res < 0) { + ipio_err("Failed to read finger report packet\n"); + if (res == CHECK_RECOVER) { + ipio_err("==================Recover=================\n"); + /*ilitek_platform_tp_hw_reset(true);*/ + /* Soft reset */ + core_config_ice_mode_enable(); + core_config_set_watch_dog(false); + mdelay(10); + core_config_ic_reset(); + } + goto out; + } + + pid = g_fr_node->data[0]; + ipio_debug(DEBUG_FINGER_REPORT, "PID = 0x%x\n", pid); + + if (pid == 0) + goto out; + + + if (pid == protocol->i2cuart_pid) { + ipio_debug(DEBUG_FINGER_REPORT, "I2CUART(0x%x): prepare to receive rest of data\n", pid); + i2cuart_recv_packet(); + goto out; + } + + if (pid == protocol->ges_pid && core_config->isEnableGesture) { + ipio_debug(DEBUG_FINGER_REPORT, "pid = 0x%x, code = %x\n", pid, g_fr_node->data[1]); + gesture = core_gesture_match_key(g_fr_node->data[1]); + if (gesture != -1) { + input_report_key(core_fr->input_device, gesture, 1); + input_sync(core_fr->input_device); + input_report_key(core_fr->input_device, gesture, 0); + input_sync(core_fr->input_device); + } + goto out; + } + + res = parse_touch_package_v5_0(pid); + if (res < 0) { + ipio_err("Failed to parse packet of finger touch\n"); + goto out; + } + + ipio_debug(DEBUG_FINGER_REPORT, "Touch Num = %d, LastTouch = %d\n", g_mutual_data.touch_num, last_touch); + + /* interpret parsed packat and send input events to system */ + if (g_mutual_data.touch_num > 0) { + if (ipd->MT_B_TYPE) { + for (i = 0 ; i < g_mutual_data.touch_num; i++) { + input_report_key(core_fr->input_device, BTN_TOUCH, 1); + core_fr_touch_press(g_mutual_data.mtp[i].x, g_mutual_data.mtp[i].y, g_mutual_data.mtp[i].pressure, g_mutual_data.mtp[i].id); + + input_report_key(core_fr->input_device, BTN_TOOL_FINGER, 1); + } + + for (i = 0 ; i < ipd->MAX_TOUCH_NUM; i++) { + ipio_debug(DEBUG_FINGER_REPORT, "g_previous_touch[%d]=%d, g_current_touch[%d]=%d\n", i, + g_previous_touch[i], i, g_current_touch[i]); + + if (g_current_touch[i] == 0 && g_previous_touch[i] == 1) { + core_fr_touch_release(0, 0, i); + } + + g_previous_touch[i] = g_current_touch[i]; + } + } else{ + for (i = 0 ; i < g_mutual_data.touch_num; i++) { + core_fr_touch_press(g_mutual_data.mtp[i].x, g_mutual_data.mtp[i].y, g_mutual_data.mtp[i].pressure, g_mutual_data.mtp[i].id); + } + } + input_sync(core_fr->input_device); + + last_touch = g_mutual_data.touch_num; + } else { + if (last_touch > 0) { + if (ipd->MT_B_TYPE) { + for (i = 0 ; i < ipd->MAX_TOUCH_NUM; i++) { + ipio_debug(DEBUG_FINGER_REPORT, "g_previous_touch[%d]=%d, g_current_touch[%d]=%d\n", i, + g_previous_touch[i], i, g_current_touch[i]); + + if (g_current_touch[i] == 0 && g_previous_touch[i] == 1) { + core_fr_touch_release(0, 0, i); + } + g_previous_touch[i] = g_current_touch[i]; + } + input_report_key(core_fr->input_device, BTN_TOUCH, 0); + input_report_key(core_fr->input_device, BTN_TOOL_FINGER, 0); + } else{ + core_fr_touch_release(0, 0, 0); + } + + input_sync(core_fr->input_device); + + last_touch = 0; + } + } + +out: + return res; +} + +void core_fr_mode_control(uint8_t *from_user) +{ + int i, mode; + int checksum = 0, codeLength = 8; + uint8_t mp_code[8] = { 0 }; + uint8_t cmd[4] = { 0 }; + + ilitek_platform_disable_irq(); + + if (from_user == NULL) { + ipio_err("Arguments from user space are invaild\n"); + goto out; + } + + ipio_debug(DEBUG_FINGER_REPORT, "mode = %x, b1 = %x, b2 = %x, b3 = %x\n", + from_user[0], from_user[1], from_user[2], from_user[3]); + + mode = from_user[0]; + + if (protocol->major == 0x5) { + if (mode == protocol->i2cuart_mode) { + cmd[0] = protocol->cmd_i2cuart; + cmd[1] = *(from_user + 1); + cmd[2] = *(from_user + 2); + + ipio_info("Switch to I2CUART mode, cmd = %x, b1 = %x, b2 = %x\n", cmd[0], cmd[1], cmd[2]); + + if ((core_write(core_config->slave_i2c_addr, cmd, 3)) < 0) { + ipio_err("Failed to switch I2CUART mode\n"); + goto out; + } + + } else if (mode == protocol->demo_mode || mode == protocol->debug_mode) { + cmd[0] = protocol->cmd_mode_ctrl; + cmd[1] = mode; + + ipio_info("Switch to Demo/Debug mode, cmd = 0x%x, b1 = 0x%x\n", cmd[0], cmd[1]); + + if ((core_write(core_config->slave_i2c_addr, cmd, 2)) < 0) { + ipio_err("Failed to switch Demo/Debug mode\n"); + goto out; + } + + core_fr->actual_fw_mode = mode; + + } else if (mode == protocol->test_mode) { + cmd[0] = protocol->cmd_mode_ctrl; + cmd[1] = mode; + + ipio_info("Switch to Test mode, cmd = 0x%x, b1 = 0x%x\n", cmd[0], cmd[1]); + + if ((core_write(core_config->slave_i2c_addr, cmd, 2)) < 0) { + ipio_err("Failed to switch Test mode\n"); + goto out; + } + + cmd[0] = 0xFE; + + /* Read MP Test information to ensure if fw supports test mode. */ + core_write(core_config->slave_i2c_addr, cmd, 1); + mdelay(10); + core_read(core_config->slave_i2c_addr, mp_code, codeLength); + + for (i = 0 ; i < codeLength - 1; i++) + checksum += mp_code[i]; + + if ((-checksum & 0xFF) != mp_code[codeLength - 1]) { + ipio_info("checksume error (0x%x), FW doesn't support test mode.\n", + (-checksum & 0XFF)); + goto out; + } + + /* FW enter to Test Mode */ + #if (INTERFACE == SPI_INTERFACE) + core_fr->actual_fw_mode = mode; + #endif + if (core_mp_move_code() == 0) + core_fr->actual_fw_mode = mode; + + } else { + ipio_err("Unknown firmware mode: %x\n", mode); + } + } else { + ipio_err("Wrong the major version of protocol, 0x%x\n", protocol->major); + } + +out: + ilitek_platform_enable_irq(); +} +EXPORT_SYMBOL(core_fr_mode_control); + +/** + * Calculate the length with different modes according to the format of protocol 5.0 + * + * We compute the length before receiving its packet. If the length is differnet between + * firmware and the number we calculated, in this case I just print an error to inform users + * and still send up to users. + */ +static uint16_t calc_packet_length(void) +{ + uint16_t xch = 0, ych = 0, stx = 0, srx = 0; + /* FIXME: self_key not defined by firmware yet */ + uint16_t self_key = 2; + uint16_t rlen = 0; + + if (protocol->major == 0x5) { + if (!ERR_ALLOC_MEM(core_config->tp_info)) { + xch = core_config->tp_info->nXChannelNum; + ych = core_config->tp_info->nYChannelNum; + stx = core_config->tp_info->self_tx_channel_num; + srx = core_config->tp_info->self_rx_channel_num; + } + + ipio_debug(DEBUG_FINGER_REPORT, "firmware mode : 0x%x\n", core_fr->actual_fw_mode); + + if (protocol->demo_mode == core_fr->actual_fw_mode) { + rlen = protocol->demo_len; + } else if (protocol->test_mode == core_fr->actual_fw_mode) { + if (ERR_ALLOC_MEM(core_config->tp_info)) { + rlen = protocol->test_len; + } else { + rlen = (2 * xch * ych) + (stx * 2) + (srx * 2) + 2 * self_key + 1; + rlen += 1; + } + } else if (protocol->debug_mode == core_fr->actual_fw_mode) { + if (ERR_ALLOC_MEM(core_config->tp_info)) { + rlen = protocol->debug_len; + } else { + rlen = (2 * xch * ych) + (stx * 2) + (srx * 2) + 2 * self_key + (8 * 2) + 1; + rlen += 35; + } + } else if (protocol->gesture_mode == core_fr->actual_fw_mode) { + if (core_gesture->mode == GESTURE_NORMAL_MODE) + rlen = GESTURE_MORMAL_LENGTH; + else + rlen = GESTURE_INFO_LENGTH; + ipio_debug(DEBUG_FINGER_REPORT, "rlen = %d\n", rlen); + } else { + ipio_err("Unknown firmware mode : %d\n", core_fr->actual_fw_mode); + rlen = 0; + } + } else { + ipio_err("Wrong the major version of protocol, 0x%x\n", protocol->major); + return ERROR; + } + + ipio_debug(DEBUG_FINGER_REPORT, "rlen = %d\n", rlen); + return rlen; +} + +/** + * The table is used to handle calling functions that deal with packets of finger report. + * The callback function might be different of what a protocol is used on a chip. + * + * It's possible to have the different protocol according to customer's requirement on the same + * touch ic with customised firmware, so I don't have to identify which of the ic has been used; instead, + * the version of protocol should match its parsing pattern. + */ +typedef struct { + uint8_t protocol_marjor_ver; + uint8_t protocol_minor_ver; + int (*finger_report)(void); +} fr_hashtable; + +fr_hashtable fr_t[] = { + {0x3, 0x2, finger_report_ver_3_2}, + {0x5, 0x0, finger_report_ver_5_0}, + {0x5, 0x1, finger_report_ver_5_0}, +}; + +/** + * The function is an entry for the work queue registered by ISR activates. + * + * Here will allocate the size of packet depending on what the current protocol + * is used on its firmware. + */ +void core_fr_handler(void) +{ + int i = 0; + uint8_t *tdata = NULL; + + if (core_fr->isEnableFR) { + g_total_len = calc_packet_length(); + if (g_total_len) { + g_fr_node = kmalloc(sizeof(*g_fr_node), GFP_ATOMIC); + if (ERR_ALLOC_MEM(g_fr_node)) { + ipio_err("Failed to allocate g_fr_node memory %ld\n", PTR_ERR(g_fr_node)); + goto out; + } + + g_fr_node->data = kcalloc(g_total_len, sizeof(uint8_t), GFP_ATOMIC); + if (ERR_ALLOC_MEM(g_fr_node->data)) { + ipio_err("Failed to allocate g_fr_node memory %ld\n", PTR_ERR(g_fr_node->data)); + goto out; + } + + g_fr_node->len = g_total_len; + memset(g_fr_node->data, 0xFF, (uint8_t) sizeof(uint8_t) * g_total_len); + + while (i < ARRAY_SIZE(fr_t)) { + if (protocol->major == fr_t[i].protocol_marjor_ver) { + mutex_lock(&ipd->plat_mutex); + fr_t[i].finger_report(); + mutex_unlock(&ipd->plat_mutex); + + /* 2048 is referred to the defination by user */ + if (g_total_len < 2048) { + tdata = kmalloc(g_total_len, GFP_ATOMIC); + if (ERR_ALLOC_MEM(tdata)) { + ipio_err("Failed to allocate g_fr_node memory %ld\n", + PTR_ERR(tdata)); + goto out; + } + + memcpy(tdata, g_fr_node->data, g_fr_node->len); + /* merge uart data if it's at i2cuart mode */ + if (g_fr_uart != NULL) + memcpy(tdata + g_fr_node->len, g_fr_uart->data, g_fr_uart->len); + } else { + ipio_err("total length (%d) is too long than user can handle\n", + g_total_len); + goto out; + } + + if (core_fr->isEnableNetlink) + netlink_reply_msg(tdata, g_total_len); + + if (ipd->debug_node_open) { + mutex_lock(&ipd->ilitek_debug_mutex); + memset(ipd->debug_buf[ipd->debug_data_frame], 0x00, + (uint8_t) sizeof(uint8_t) * 2048); + memcpy(ipd->debug_buf[ipd->debug_data_frame], tdata, g_total_len); + ipd->debug_data_frame++; + if (ipd->debug_data_frame > 1) { + ipio_info("ipd->debug_data_frame = %d\n", ipd->debug_data_frame); + } + if (ipd->debug_data_frame > 1023) { + ipio_err("ipd->debug_data_frame = %d > 1024\n", + ipd->debug_data_frame); + ipd->debug_data_frame = 1023; + } + mutex_unlock(&ipd->ilitek_debug_mutex); + wake_up(&(ipd->inq)); + } + break; + } + i++; + } + + if (i >= ARRAY_SIZE(fr_t)) + ipio_err("Can't find any callback functions to handle INT event\n"); + } else { + ipio_err("Wrong the length of packet\n"); + } + } else { + ipio_err("The figner report was disabled\n"); + return; + } + ilitek_platform_enable_irq(); + +out: + ipio_kfree((void **)&tdata); + + if (g_fr_node != NULL) { + ipio_kfree((void **)&g_fr_node->data); + ipio_kfree((void **)&g_fr_node); + } + + if (g_fr_uart != NULL) { + ipio_kfree((void **)&g_fr_uart->data); + ipio_kfree((void **)&g_fr_uart); + } + + g_total_len = 0; + ipio_debug(DEBUG_IRQ, "handle INT done\n\n"); +} +EXPORT_SYMBOL(core_fr_handler); + +void core_fr_input_set_param(struct input_dev *input_device) +{ + int max_x = 0, max_y = 0, min_x = 0, min_y = 0; + int max_tp = 0; + + core_fr->input_device = input_device; + + /* set the supported event type for input device */ + set_bit(EV_ABS, core_fr->input_device->evbit); + set_bit(EV_SYN, core_fr->input_device->evbit); + set_bit(EV_KEY, core_fr->input_device->evbit); + set_bit(BTN_TOUCH, core_fr->input_device->keybit); + set_bit(BTN_TOOL_FINGER, core_fr->input_device->keybit); + set_bit(INPUT_PROP_DIRECT, core_fr->input_device->propbit); + + if (core_fr->isSetResolution) { + max_x = core_config->tp_info->nMaxX; + max_y = core_config->tp_info->nMaxY; + min_x = core_config->tp_info->nMinX; + min_y = core_config->tp_info->nMinY; + max_tp = core_config->tp_info->nMaxTouchNum; + } else { + max_x = ipd->x_max; + max_y = ipd->y_max; + min_x = ipd->x_min; + min_y = ipd->y_min; + max_tp = ipd->MAX_TOUCH_NUM; + } + + ipio_info("input resolution : max_x = %d, max_y = %d, min_x = %d, min_y = %d\n", max_x, max_y, min_x, min_y); + ipio_info("input touch number: max_tp = %d\n", max_tp); + + input_set_abs_params(core_fr->input_device, ABS_MT_POSITION_X, min_x, max_x - 1, 0, 0); + input_set_abs_params(core_fr->input_device, ABS_MT_POSITION_Y, min_y, max_y - 1, 0, 0); + + input_set_abs_params(core_fr->input_device, ABS_MT_TOUCH_MAJOR, 0, 255, 0, 0); + input_set_abs_params(core_fr->input_device, ABS_MT_WIDTH_MAJOR, 0, 255, 0, 0); + + if (core_fr->isEnablePressure) + input_set_abs_params(core_fr->input_device, ABS_MT_PRESSURE, 0, 255, 0, 0); + + if (ipd->MT_B_TYPE) { + #if KERNEL_VERSION(3, 7, 0) <= LINUX_VERSION_CODE + input_mt_init_slots(core_fr->input_device, max_tp, INPUT_MT_DIRECT); + #else + input_mt_init_slots(core_fr->input_device, max_tp); + #endif /* LINUX_VERSION_CODE */ + } else{ + input_set_abs_params(core_fr->input_device, ABS_MT_TRACKING_ID, 0, max_tp, 0, 0); + } /* MT_B_TYPE */ + + /* Set up virtual key with gesture code */ + core_gesture_set_key(core_fr); +} +EXPORT_SYMBOL(core_fr_input_set_param); + +int core_fr_init(void) +{ + int i = 0; + + core_fr = kzalloc(sizeof(*core_fr), GFP_KERNEL); + if (ERR_ALLOC_MEM(core_fr)) { + ipio_err("Failed to allocate core_fr mem, %ld\n", PTR_ERR(core_fr)); + core_fr_remove(); + return -ENOMEM; + } + + for (i = 0 ; i < ARRAY_SIZE(ipio_chip_list); i++) { + if (ipio_chip_list[i] == ipd->chip_id) { + core_fr->isEnableFR = true; + core_fr->isEnableNetlink = false; + core_fr->isEnablePressure = false; + core_fr->isSetResolution = false; + core_fr->actual_fw_mode = protocol->demo_mode; + return 0; + } + } + + ipio_err("Can't find this chip in support list\n"); + return 0; +} +EXPORT_SYMBOL(core_fr_init); + +void core_fr_remove(void) +{ + ipio_info("Remove core-FingerReport members\n"); + ipio_kfree((void **)&core_fr); +} +EXPORT_SYMBOL(core_fr_remove); diff --git a/drivers/input/touchscreen/ilitek_mmi/core/finger_report.h b/drivers/input/touchscreen/ilitek_mmi/core/finger_report.h new file mode 100644 index 000000000000..d6c7f1414d3a --- /dev/null +++ b/drivers/input/touchscreen/ilitek_mmi/core/finger_report.h @@ -0,0 +1,67 @@ +/* + * ILITEK Touch IC driver + * + * Copyright (C) 2011 ILI Technology Corporation. + * + * Author: Dicky Chiang + * Based on TDD v7.0 implemented by Mstar & ILITEK + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ + +#ifndef __FINGER_REPORT_H +#define __FINGER_REPORT_H + +struct core_fr_data { + struct input_dev *input_device; + + /* the default of finger report is enabled */ + bool isEnableFR; + /* used to send finger report packet to user psace */ + bool isEnableNetlink; + /* allow input dev to report the value of physical touch */ + bool isEnablePressure; + /* get screen resloution from fw if it's true */ + bool isSetResolution; + /* used to change I2C Uart Mode when fw mode is in this mode */ + uint8_t i2cuart_mode; + + /* current firmware mode in driver */ + uint16_t actual_fw_mode; + + /* mutual firmware info */ + uint16_t log_packet_length; + uint8_t log_packet_header; + uint8_t type; + uint8_t Mx; + uint8_t My; + uint8_t Sd; + uint8_t Ss; +}; + +extern struct core_fr_data *core_fr; + +extern uint8_t core_fr_calc_checksum(uint8_t *pMsg, uint32_t nLength); +extern void core_fr_touch_press(int32_t x, int32_t y, uint32_t pressure +, int32_t id); +extern void core_fr_touch_release(int32_t x, int32_t y, int32_t id); +extern void core_fr_mode_control(uint8_t *from_user); +extern void core_fr_handler(void); +extern void core_fr_input_set_param(struct input_dev *input_device); +extern int core_fr_init(void); +extern void core_fr_remove(void); + +#endif /* __FINGER_REPORT_H */ diff --git a/drivers/input/touchscreen/ilitek_mmi/core/firmware.c b/drivers/input/touchscreen/ilitek_mmi/core/firmware.c new file mode 100644 index 000000000000..c551accdb467 --- /dev/null +++ b/drivers/input/touchscreen/ilitek_mmi/core/firmware.c @@ -0,0 +1,1635 @@ +/* + * ILITEK Touch IC driver + * + * Copyright (C) 2011 ILI Technology Corporation. + * + * Author: Dicky Chiang + * Based on TDD v7.0 implemented by Mstar & ILITEK + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "../common.h" +#include "../platform.h" +#include "config.h" +#include "i2c.h" +#include "firmware.h" +#include "flash.h" +#include "protocol.h" +#include "finger_report.h" +#include "gesture.h" +#include "mp_test.h" + +#if defined(BOOT_FW_UPGRADE) || defined(HOST_DOWNLOAD) +#include "ilitek_fw.h" +#endif + +/* + * the size of two arrays is different depending on + * which of methods to upgrade firmware you choose for. + */ +uint8_t *flash_fw; + +#ifdef HOST_DOWNLOAD +uint8_t ap_fw[MAX_AP_FIRMWARE_SIZE] = { 0 }; +uint8_t dlm_fw[MAX_DLM_FIRMWARE_SIZE] = { 0 }; +uint8_t mp_fw[MAX_MP_FIRMWARE_SIZE] = { 0 }; +uint8_t gesture_fw[MAX_GESTURE_FIRMWARE_SIZE] = { 0 }; +#else +uint8_t iram_fw[MAX_IRAM_FIRMWARE_SIZE] = { 0 }; +#endif + +/* the length of array in each sector */ +int g_section_len; +int g_total_sector; + +#ifdef BOOT_FW_UPGRADE +/* The addr of block reserved for customers */ +int g_start_resrv = 0x1C000; +int g_end_resrv = 0x1CFFF; +#endif + +struct flash_sector { + uint32_t ss_addr; + uint32_t se_addr; + uint32_t checksum; + uint32_t crc32; + uint32_t dlength; + bool data_flag; + bool inside_block; +}; + +struct flash_block_info { + uint32_t start_addr; + uint32_t end_addr; + uint32_t hex_crc; + uint32_t block_crc; +}; + +struct flash_sector *g_flash_sector; +struct flash_block_info g_flash_block_info[4]; +struct core_firmware_data *core_firmware; + +static uint32_t HexToDec(char *pHex, int32_t nLength) +{ + uint32_t nRetVal = 0, nTemp = 0, i; + int32_t nShift = (nLength - 1) * 4; + + for (i = 0 ; i < nLength; nShift -= 4, i++) { + if ((pHex[i] >= '0') && (pHex[i] <= '9')) { + nTemp = pHex[i] - '0'; + } else if ((pHex[i] >= 'a') && (pHex[i] <= 'f')) { + nTemp = (pHex[i] - 'a') + 10; + } else if ((pHex[i] >= 'A') && (pHex[i] <= 'F')) { + nTemp = (pHex[i] - 'A') + 10; + } else { + return ERROR; + } + + nRetVal |= (nTemp << nShift); + } + + return nRetVal; +} + +static uint32_t calc_crc32(uint32_t start_addr, uint32_t end_addr, uint8_t *data) +{ + int i, j; + uint32_t CRC_POLY = 0x04C11DB7; + uint32_t ReturnCRC = 0xFFFFFFFF; + uint32_t len = start_addr + end_addr; + + for (i = start_addr; i < len ; i++) { + ReturnCRC ^= (data[i] << 24); + + for (j = 0; j < 8; j++) { + if ((ReturnCRC & 0x80000000) != 0) { + ReturnCRC = ReturnCRC << 1 ^ CRC_POLY; + } else { + ReturnCRC = ReturnCRC << 1; + } + } + } + + return ReturnCRC; +} + +static uint32_t tddi_check_data(uint32_t start_addr, uint32_t end_addr) +{ + int timer = 500; + uint32_t busy = 0; + uint32_t write_len = 0; + uint32_t iram_check = 0; + uint32_t id = core_config->chip_id; + uint32_t type = core_config->chip_type; + + write_len = end_addr; + + ipio_debug(DEBUG_FIRMWARE, "start = 0x%x , write_len = 0x%x, max_count = %x\n", + start_addr, end_addr, core_firmware->max_count); + + if (write_len > core_firmware->max_count) { + ipio_err("The length (%x) written to firmware is greater than max count (%x)\n", + write_len, core_firmware->max_count); + goto out; + } + + core_config_ice_mode_write(0x041000, 0x0, 1); /* CS low */ + core_config_ice_mode_write(0x041004, 0x66aa55, 3); /* Key */ + + core_config_ice_mode_write(0x041008, 0x3b, 1); + core_config_ice_mode_write(0x041008, (start_addr & 0xFF0000) >> 16, 1); + core_config_ice_mode_write(0x041008, (start_addr & 0x00FF00) >> 8, 1); + core_config_ice_mode_write(0x041008, (start_addr & 0x0000FF), 1); + + core_config_ice_mode_write(0x041003, 0x01, 1); /* Enable Dio_Rx_dual */ + core_config_ice_mode_write(0x041008, 0xFF, 1); /* Dummy */ + + /* Set Receive count */ + if (core_firmware->max_count == 0xFFFF) + core_config_ice_mode_write(0x04100C, write_len, 2); + else if (core_firmware->max_count == 0x1FFFF) + core_config_ice_mode_write(0x04100C, write_len, 3); + + if (id == CHIP_TYPE_ILI9881 && type == ILI9881_TYPE_F) { + /* Checksum_En */ + core_config_ice_mode_write(0x041014, 0x10000, 3); + } else if (id == CHIP_TYPE_ILI9881 && type == ILI9881_TYPE_H) { + /* Clear Int Flag */ + core_config_ice_mode_write(0x048007, 0x02, 1); + + /* Checksum_En */ + core_config_ice_mode_write(0x041016, 0x00, 1); + core_config_ice_mode_write(0x041016, 0x01, 1); + } + + /* Start to receive */ + core_config_ice_mode_write(0x041010, 0xFF, 1); + + while (timer > 0) { + + mdelay(1); + + if (id == CHIP_TYPE_ILI9881 && type == ILI9881_TYPE_F) + busy = core_config_read_write_onebyte(0x041014); + else if (id == CHIP_TYPE_ILI9881 && type == ILI9881_TYPE_H) { + busy = core_config_read_write_onebyte(0x048007); + busy = busy >> 1; + } else { + ipio_err("Unknow chip type\n"); + break; + } + + if ((busy & 0x01) == 0x01) + break; + + timer--; + } + + core_config_ice_mode_write(0x041000, 0x1, 1); /* CS high */ + + if (timer >= 0) { + /* Disable dio_Rx_dual */ + core_config_ice_mode_write(0x041003, 0x0, 1); + iram_check = core_firmware->isCRC ? core_config_ice_mode_read(0x4101C) : core_config_ice_mode_read(0x041018); + } else { + ipio_err("TIME OUT\n"); + goto out; + } + + return iram_check; + +out: + ipio_err("Failed to read Checksum/CRC from IC\n"); + return ERROR; + +} + +static void calc_verify_data(uint32_t sa, uint32_t se, uint32_t *check) +{ + uint32_t i = 0; + uint32_t tmp_ck = 0, tmp_crc = 0; + + if (core_firmware->isCRC) { + tmp_crc = calc_crc32(sa, se, flash_fw); + *check = tmp_crc; + } else { + for (i = sa; i < (sa + se); i++) + tmp_ck = tmp_ck + flash_fw[i]; + + *check = tmp_ck; + } +} + +static int do_check(uint32_t start, uint32_t len) +{ + int res = 0; + uint32_t vd = 0, lc = 0; + + calc_verify_data(start, len, &lc); + vd = tddi_check_data(start, len); + res = CHECK_EQUAL(vd, lc); + + ipio_info("%s (%x) : (%x)\n", (res < 0 ? "Invalid !" : "Correct !"), vd, lc); + + return res; +} + +static int verify_flash_data(void) +{ + int i = 0, res = 0, len = 0; + int fps = flashtab->sector; + uint32_t ss = 0x0; + + /* check chip type with its max count */ + if (core_config->chip_id == CHIP_TYPE_ILI7807 && core_config->chip_type == ILI7807_TYPE_H) { + core_firmware->max_count = 0x1FFFF; + core_firmware->isCRC = true; + } + + for (i = 0 ; i < g_section_len + 1; i++) { + if (g_flash_sector[i].data_flag) { + if (ss > g_flash_sector[i].ss_addr || len == 0) + ss = g_flash_sector[i].ss_addr; + + len = len + g_flash_sector[i].dlength; + + /* if larger than max count, then committing data to check */ + if (len >= (core_firmware->max_count - fps)) { + res = do_check(ss, len); + if (res < 0) + goto out; + + ss = g_flash_sector[i].ss_addr; + len = 0; + } + } else { + /* split flash sector and commit the last data to fw */ + if (len != 0) { + res = do_check(ss, len); + if (res < 0) + goto out; + + ss = g_flash_sector[i].ss_addr; + len = 0; + } + } + } + + /* it might be lower than the size of sector if calc the last array. */ + if (len != 0 && res != -1) + res = do_check(ss, core_firmware->end_addr - ss); + +out: + return res; +} + +static int do_program_flash(uint32_t start_addr) +{ + int res = 0; + uint32_t k; + uint8_t buf[512] = { 0 }; + + res = core_flash_write_enable(); + if (res < 0) + goto out; + + core_config_ice_mode_write(0x041000, 0x0, 1); /* CS low */ + core_config_ice_mode_write(0x041004, 0x66aa55, 3); /* Key */ + + core_config_ice_mode_write(0x041008, 0x02, 1); + core_config_ice_mode_write(0x041008, (start_addr & 0xFF0000) >> 16, 1); + core_config_ice_mode_write(0x041008, (start_addr & 0x00FF00) >> 8, 1); + core_config_ice_mode_write(0x041008, (start_addr & 0x0000FF), 1); + + buf[0] = 0x25; + buf[3] = 0x04; + buf[2] = 0x10; + buf[1] = 0x08; + + for (k = 0 ; k < flashtab->program_page; k++) { + if (start_addr + k <= core_firmware->end_addr) + buf[4 + k] = flash_fw[start_addr + k]; + else + buf[4 + k] = 0xFF; + } + + if (core_write(core_config->slave_i2c_addr, buf, flashtab->program_page + 4) < 0) { + ipio_err("Failed to write data at start_addr = 0x%X, k = 0x%X, addr = 0x%x\n", + start_addr, k, start_addr + k); + res = -EIO; + goto out; + } + + core_config_ice_mode_write(0x041000, 0x1, 1); /* CS high */ + + res = core_flash_poll_busy(); + if (res < 0) + goto out; + + core_firmware->update_status = (start_addr * 101) / core_firmware->end_addr; + + /* holding the status until finish this upgrade. */ + if (core_firmware->update_status > 90) + core_firmware->update_status = 90; + + /* Don't use ipio_info to print log because it needs to be kpet in the same line */ + ipio_debug(DEBUG_FIRMWARE, "%cUpgrading firmware ... start_addr = 0x%x, %02d%c", 0x0D, + start_addr, core_firmware->update_status, '%'); + +out: + return res; +} + +static int flash_program_sector(void) +{ + int i, j, res = 0; + + for (i = 0 ; i < g_section_len + 1; i++) { + /* + * If running the boot stage, fw will only be upgrade data with the flag of block, + * otherwise data with the flag itself will be programed. + */ + if (core_firmware->isboot) { + if (!g_flash_sector[i].inside_block) + continue; + } else { + if (!g_flash_sector[i].data_flag) + continue; + } + + /* programming flash by its page size */ + for (j = g_flash_sector[i].ss_addr; j < g_flash_sector[i].se_addr; j += flashtab->program_page) { + if (j > core_firmware->end_addr) + goto out; + + res = do_program_flash(j); + if (res < 0) + goto out; + } + } + +out: + return res; +} + +static int do_erase_flash(uint32_t start_addr) +{ + int res = 0; + uint32_t temp_buf = 0; + + res = core_flash_write_enable(); + if (res < 0) { + ipio_err("Failed to config write enable\n"); + goto out; + } + + core_config_ice_mode_write(0x041000, 0x0, 1); /* CS low */ + core_config_ice_mode_write(0x041004, 0x66aa55, 3); /* Key */ + + core_config_ice_mode_write(0x041008, 0x20, 1); + core_config_ice_mode_write(0x041008, (start_addr & 0xFF0000) >> 16, 1); + core_config_ice_mode_write(0x041008, (start_addr & 0x00FF00) >> 8, 1); + core_config_ice_mode_write(0x041008, (start_addr & 0x0000FF), 1); + + core_config_ice_mode_write(0x041000, 0x1, 1); /* CS high */ + + mdelay(1); + + res = core_flash_poll_busy(); + if (res < 0) + goto out; + + core_config_ice_mode_write(0x041000, 0x0, 1); /* CS low */ + core_config_ice_mode_write(0x041004, 0x66aa55, 3); /* Key */ + + core_config_ice_mode_write(0x041008, 0x3, 1); + core_config_ice_mode_write(0x041008, (start_addr & 0xFF0000) >> 16, 1); + core_config_ice_mode_write(0x041008, (start_addr & 0x00FF00) >> 8, 1); + core_config_ice_mode_write(0x041008, (start_addr & 0x0000FF), 1); + core_config_ice_mode_write(0x041008, 0xFF, 1); + + temp_buf = core_config_read_write_onebyte(0x041010); + if (temp_buf != 0xFF) { + ipio_err("Failed to erase data(0x%x) at 0x%x\n", temp_buf, start_addr); + res = -EINVAL; + goto out; + } + + core_config_ice_mode_write(0x041000, 0x1, 1); /* CS high */ + + ipio_debug(DEBUG_FIRMWARE, "Earsing data at start addr: %x\n", start_addr); + +out: + return res; +} + +static int flash_erase_sector(void) +{ + int i, res = 0; + + for (i = 0 ; i < g_total_sector; i++) { + if (core_firmware->isboot) { + if (!g_flash_sector[i].inside_block) + continue; + } else { + if (!g_flash_sector[i].data_flag && !g_flash_sector[i].inside_block) + continue; + } + + res = do_erase_flash(g_flash_sector[i].ss_addr); + if (res < 0) + goto out; + } + +out: + return res; +} + +#ifndef HOST_DOWNLOAD +static int iram_upgrade(void) +{ + int i, j, res = 0; + uint8_t buf[512]; + int upl = flashtab->program_page; + + /* doing reset for erasing iram data before upgrade it. */ + /*ilitek_platform_tp_hw_reset(true);*/ + /* Soft reset */ + core_config_ice_mode_enable(); + core_config_set_watch_dog(false); + mdelay(10); + core_config_ic_reset(); + + mdelay(1); + + ipio_info("Upgrade firmware written data into IRAM directly\n"); + + res = core_config_ice_mode_enable(); + if (res < 0) { + ipio_err("Failed to enter ICE mode, res = %d\n", res); + return res; + } + + mdelay(20); + + core_config_set_watch_dog(false); + + ipio_debug(DEBUG_FIRMWARE, "nStartAddr = 0x%06X, nEndAddr = 0x%06X, nChecksum = 0x%06X\n", + core_firmware->start_addr, core_firmware->end_addr, core_firmware->checksum); + + /* write hex to the addr of iram */ + ipio_info("Writing data into IRAM ...\n"); + for (i = core_firmware->start_addr; i < core_firmware->end_addr; i += upl) { + if ((i + 256) > core_firmware->end_addr) { + upl = core_firmware->end_addr % upl; + } + + buf[0] = 0x25; + buf[3] = (char)((i & 0x00FF0000) >> 16); + buf[2] = (char)((i & 0x0000FF00) >> 8); + buf[1] = (char)((i & 0x000000FF)); + + for (j = 0 ; j < upl; j++) + buf[4 + j] = iram_fw[i + j]; + + if (core_write(core_config->slave_i2c_addr, buf, upl + 4)) { + ipio_err("Failed to write data via i2c, address = 0x%X, start_addr = 0x%X, end_addr = 0x%X\n", + (int)i, (int)core_firmware->start_addr, (int)core_firmware->end_addr); + res = -EIO; + return res; + } + + core_firmware->update_status = (i * 101) / core_firmware->end_addr; + printk("%cupgrade firmware(ap code), %02d%c", 0x0D, core_firmware->update_status, '%'); + + mdelay(3); + } + + /* ice mode code reset */ + ipio_info("Doing code reset ...\n"); + core_config_ice_mode_write(0x40040, 0xAE, 1); + core_config_ice_mode_write(0x40040, 0x00, 1); + + mdelay(10); + + core_config_set_watch_dog(true); + + core_config_ice_mode_disable(); + + /*TODO: check iram status */ + + return res; +} +#endif + +#ifdef HOST_DOWNLOAD +static int read_download(uint32_t start, uint32_t size, uint8_t *r_buf, uint32_t r_len) +{ + int addr = 0, i = 0; + uint32_t end = start + size; + uint8_t *buf = NULL; + + buf = kmalloc(sizeof(uint8_t) * size + 4, GFP_KERNEL); + if (ERR_ALLOC_MEM(buf)) { + ipio_err("Failed to allocate a buffer to be read, %ld\n", PTR_ERR(buf)); + return -ENOMEM; + } + + memset(buf, 0xFF, (int)sizeof(uint8_t) * size + 4); + + for (addr = start, i = 0 ; addr < end; i += r_len, addr += r_len) { + if ((addr + r_len) > end) { + r_len = end % r_len; + } + + buf[0] = 0x25; + buf[3] = (char)((addr & 0x00FF0000) >> 16); + buf[2] = (char)((addr & 0x0000FF00) >> 8); + buf[1] = (char)((addr & 0x000000FF)); + + if (core_write(core_config->slave_i2c_addr, buf, 4)) { + ipio_err("Failed to write data via SPI in host download\n"); + return -EIO; + } + + if (core_read(core_config->slave_i2c_addr, buf, r_len)) { + ipio_err("Failed to Read data via SPI in host download\n"); + return -EIO; + } + + memcpy(r_buf + i, buf, r_len); + } + + ipio_kfree((void **)&buf); + return 0; +} + +static int write_download(uint32_t start, uint32_t size, uint8_t *w_buf, uint32_t w_len) +{ + int addr = 0, i = 0, update_status = 0, j = 0; + uint32_t end = start + size; + uint8_t *buf = NULL; + + buf = (uint8_t *)kmalloc(sizeof(uint8_t) * size + 4, GFP_KERNEL); + if (ERR_ALLOC_MEM(buf)) { + ipio_err("Failed to allocate a buffer to be read, %ld\n", PTR_ERR(buf)); + return -ENOMEM; + } + + memset(buf, 0xFF, (int)sizeof(uint8_t) * size + 4); + + for (addr = start, i = 0 ; addr < end; addr += w_len, i += w_len) { + if ((addr + w_len) > end) { + w_len = end % w_len; + } + + buf[0] = 0x25; + buf[3] = (char)((addr & 0x00FF0000) >> 16); + buf[2] = (char)((addr & 0x0000FF00) >> 8); + buf[1] = (char)((addr & 0x000000FF)); + + for (j = 0 ; j < w_len ; j++) + buf[4 + j] = w_buf[i + j]; + + if (core_write(core_config->slave_i2c_addr, buf, w_len + 4)) { + ipio_err("Failed to write data via SPI in host download (%x)\n", w_len); + return -EIO; + } + + update_status = (i * 101) / end; + printk("%cupgrade firmware(mp code), %02d%c", 0x0D, update_status, '%'); + } + + ipio_kfree((void **)&buf); + return 0; +} + +static int host_download_dma_check(int block) +{ + int count = 50; + uint8_t ap_block = 0, dlm_block = 1; + uint32_t start_addr = 0, block_size = 0; + uint32_t busy = 0; + + if (block == ap_block) { + start_addr = 0; + block_size = MAX_AP_FIRMWARE_SIZE - 0x4; + } else if (block == dlm_block) { + start_addr = DLM_START_ADDRESS; + block_size = MAX_DLM_FIRMWARE_SIZE; + } + + /* dma1 src1 adress */ + core_config_ice_mode_write(0x072104, start_addr, 4); + /* dma1 src1 format */ + core_config_ice_mode_write(0x072108, 0x80000001, 4); + /* dma1 dest address */ + core_config_ice_mode_write(0x072114, 0x00030000, 4); + /* dma1 dest format */ + core_config_ice_mode_write(0x072118, 0x80000000, 4); + /* Block size*/ + core_config_ice_mode_write(0x07211C, block_size, 4); + /* crc off */ + core_config_ice_mode_write(0x041014, 0x00000000, 4); + /* dma crc */ + core_config_ice_mode_write(0x041048, 0x00000001, 4); + /* crc on */ + core_config_ice_mode_write(0x041014, 0x00010000, 4); + /* Dma1 stop */ + core_config_ice_mode_write(0x072100, 0x00000000, 4); + /* clr int */ + core_config_ice_mode_write(0x048006, 0x1, 1); + /* Dma1 start */ + core_config_ice_mode_write(0x072100, 0x01000000, 4); + + /* Polling BIT0 */ + while (count > 0) { + mdelay(1); + busy = core_config_read_write_onebyte(0x048006); + + if (busy == 1) + break; + + count--; + } + + if (count <= 0) { + ipio_err("BIT0 is busy\n"); + return ERROR; + } + + return core_config_ice_mode_read(0x04101C); +} + +int tddi_host_download(bool mode) +{ + int res = 0, ap_crc, ap_dma, dlm_crc, dlm_dma, method; + uint8_t *buf = NULL, *read_ap_buf = NULL, *read_dlm_buf = NULL, *read_mp_buf = NULL; + uint8_t *read_gesture_buf = NULL, *gesture_ap_buf = NULL; + + res = core_config_ice_mode_enable(); + if (res < 0) { + ipio_err("Failed to enter ICE mode, res = %d\n", res); + return res; + } + + method = core_config_ice_mode_read(core_config->pid_addr); + method = method & 0xff; + ipio_info("method of calculation for crc = %x\n", method); + + /* Allocate buffers for host download */ + read_ap_buf = kcalloc(MAX_AP_FIRMWARE_SIZE, sizeof(uint8_t), GFP_KERNEL); + read_mp_buf = kcalloc(MAX_MP_FIRMWARE_SIZE, sizeof(uint8_t), GFP_KERNEL); + read_dlm_buf = kcalloc(MAX_DLM_FIRMWARE_SIZE, sizeof(uint8_t), GFP_KERNEL); + buf = kcalloc(MAX_AP_FIRMWARE_SIZE + 4, sizeof(uint8_t), GFP_KERNEL); + + if (ERR_ALLOC_MEM(read_ap_buf) || ERR_ALLOC_MEM(read_mp_buf) || + ERR_ALLOC_MEM(read_dlm_buf) || ERR_ALLOC_MEM(buf)) { + ipio_err("Failed to allocate buffers for host download\n"); + return -ENOMEM; + } + + memset(read_ap_buf, 0xFF, MAX_AP_FIRMWARE_SIZE); + memset(read_dlm_buf, 0xFF, MAX_DLM_FIRMWARE_SIZE); + memset(read_mp_buf, 0xFF, MAX_MP_FIRMWARE_SIZE); + memset(buf, 0xFF, MAX_AP_FIRMWARE_SIZE + 4); + + /* Allocate buffers for gesture to load code */ + ipio_info("core_gesture->entry = %d\n", core_gesture->entry); + if (core_gesture->entry) { + read_gesture_buf = kmalloc(core_gesture->ap_length, GFP_KERNEL); + gesture_ap_buf = kmalloc(core_gesture->ap_length, GFP_KERNEL); + + if (ERR_ALLOC_MEM(read_gesture_buf) || ERR_ALLOC_MEM(gesture_ap_buf)) { + ipio_err("Failed to allocate buffers for gesture\n"); + return -ENOMEM; + } + + memset(gesture_ap_buf, 0xFF, core_gesture->ap_length); + memset(read_gesture_buf, 0xFF, core_gesture->ap_length); + } + + if (core_config_set_watch_dog(false) < 0) { + ipio_err("Failed to disable watch dog\n"); + res = -EINVAL; + goto out; + } + + if (core_fr->actual_fw_mode == P5_0_FIRMWARE_TEST_MODE) { + /* write hex to the addr of MP code */ + ipio_info("Writing data into MP code ...\n"); + + if (write_download(0, MAX_MP_FIRMWARE_SIZE, mp_fw, SPI_UPGRADE_LEN) < 0) { + ipio_err("SPI Write MP code data error\n"); + } + + if (read_download(0, MAX_MP_FIRMWARE_SIZE, read_mp_buf, SPI_UPGRADE_LEN)) { + ipio_err("SPI Read MP code data error\n"); + } + + if (memcmp(mp_fw, read_mp_buf, MAX_MP_FIRMWARE_SIZE) == 0) { + ipio_info("Check MP Mode upgrade: PASS\n"); + } else { + ipio_info("Check MP Mode upgrade: FAIL\n"); + res = UPDATE_FAIL; + goto out; + } + } else if (core_gesture->entry) { + if (mode) { + /* write hex to the addr of Gesture code */ + ipio_info("Writing data into Gesture code ...\n"); + if (write_download(core_gesture->ap_start_addr, core_gesture->length, + gesture_fw, core_gesture->length) < 0) { + ipio_err("SPI Write Gesture code data error\n"); + } + + if (read_download(core_gesture->ap_start_addr, core_gesture->length, + read_gesture_buf, core_gesture->length)) { + ipio_err("SPI Read Gesture code data error\n"); + } + + if (memcmp(gesture_fw, read_gesture_buf, core_gesture->length) == 0) { + ipio_info("Check Gesture Mode upgrade: PASS\n"); + } else { + ipio_info("Check Gesture Mode upgrade: FAIL\n"); + res = UPDATE_FAIL; + goto out; + } + } else { + /* write hex to the addr of AP code */ + memcpy(gesture_ap_buf, ap_fw + core_gesture->ap_start_addr, core_gesture->ap_length); + ipio_info("Writing data into AP code ...\n"); + if (write_download(core_gesture->ap_start_addr, core_gesture->ap_length, gesture_ap_buf, core_gesture->ap_length) < 0) { + ipio_err("SPI Write AP code data error\n"); + } + if (read_download(core_gesture->ap_start_addr, core_gesture->ap_length, + read_ap_buf, core_gesture->ap_length)) { + ipio_err("SPI Read AP code data error\n"); + } + + if (memcmp(gesture_ap_buf, read_ap_buf, core_gesture->ap_length) == 0) { + ipio_info("Check AP Mode upgrade: PASS\n"); + } else { + ipio_info("Check AP Mode upgrade: FAIL\n"); + res = UPDATE_FAIL; + goto out; + } + } + } else { + /* write hex to the addr of AP code */ + ipio_info("Writing data into AP code ...\n"); + if (write_download(0, MAX_AP_FIRMWARE_SIZE, ap_fw, SPI_UPGRADE_LEN) < 0) { + ipio_err("SPI Write AP code data error\n"); + } + + /* write hex to the addr of DLM code */ + ipio_info("Writing data into DLM code ...\n"); + if (write_download(DLM_START_ADDRESS, MAX_DLM_FIRMWARE_SIZE, dlm_fw, SPI_UPGRADE_LEN) < 0) { + ipio_err("SPI Write DLM code data error\n"); + } + + /* Check AP/DLM mode Buffer data */ + if (method == CORE_TYPE_E) { + ap_crc = calc_crc32(0, MAX_AP_FIRMWARE_SIZE - 4, ap_fw); + ap_dma = host_download_dma_check(0); + + dlm_crc = calc_crc32(0, MAX_DLM_FIRMWARE_SIZE, dlm_fw); + dlm_dma = host_download_dma_check(1); + + ipio_info("AP CRC %s (%x) : (%x)\n", + (ap_crc != ap_dma ? "Invalid !" : "Correct !"), ap_crc, ap_dma); + + ipio_info("DLM CRC %s (%x) : (%x)\n", + (dlm_crc != dlm_dma ? "Invalid !" : "Correct !"), dlm_crc, dlm_dma); + + if (CHECK_EQUAL(ap_crc, ap_dma) == UPDATE_FAIL || + CHECK_EQUAL(dlm_crc, dlm_dma) == UPDATE_FAIL) { + ipio_info("Check AP/DLM Mode upgrade: FAIL\n"); + res = UPDATE_FAIL; + goto out; + } + } else { + read_download(0, MAX_AP_FIRMWARE_SIZE, read_ap_buf, SPI_UPGRADE_LEN); + read_download(DLM_START_ADDRESS, MAX_DLM_FIRMWARE_SIZE, read_dlm_buf, SPI_UPGRADE_LEN); + + if (memcmp(ap_fw, read_ap_buf, MAX_AP_FIRMWARE_SIZE) != 0 || + memcmp(dlm_fw, read_dlm_buf, MAX_DLM_FIRMWARE_SIZE) != 0) { + ipio_info("Check AP/DLM Mode upgrade: FAIL\n"); + res = UPDATE_FAIL; + goto out; + } else { + ipio_info("Check AP/DLM Mode upgrade: SUCCESS\n"); + } + } + } + +out: + if (!core_gesture->entry) { + /* ice mode code reset */ + ipio_info("Doing code reset ...\n"); + core_config_ice_mode_write(0x40040, 0xAE, 1); + } + + if (core_config_set_watch_dog(true) < 0) { + ipio_err("Failed to enable watch dog\n"); + res = -EINVAL; + } + + core_config_ice_mode_disable(); + if (core_fr->actual_fw_mode == P5_0_FIRMWARE_TEST_MODE) + mdelay(1200); + + ipio_kfree((void **)&buf); + ipio_kfree((void **)&read_ap_buf); + ipio_kfree((void **)&read_dlm_buf); + ipio_kfree((void **)&read_mp_buf); + ipio_kfree((void **)&read_gesture_buf); + ipio_kfree((void **)&gesture_ap_buf); + return res; +} +EXPORT_SYMBOL(tddi_host_download); + +int core_firmware_boot_host_download(void) +{ + int res = 0; + bool power = false; + + ipio_info("BOOT: Starting to upgrade firmware ...\n"); + + core_firmware->isUpgrading = true; + core_firmware->update_status = 0; + + if (ipd->isEnablePollCheckPower) { + ipd->isEnablePollCheckPower = false; + cancel_delayed_work_sync(&ipd->check_power_status_work); + power = true; + } + + memcpy(ap_fw, CTPM_FW + ILI_FILE_HEADER, MAX_AP_FIRMWARE_SIZE); + memcpy(dlm_fw, CTPM_FW + ILI_FILE_HEADER + DLM_HEX_ADDRESS, MAX_DLM_FIRMWARE_SIZE); + + core_gesture->ap_start_addr = (ap_fw[0xFFD3] << 24) + (ap_fw[0xFFD2] << 16) + (ap_fw[0xFFD1] << 8) + ap_fw[0xFFD0]; + core_gesture->ap_length = MAX_GESTURE_FIRMWARE_SIZE; + core_gesture->start_addr = (ap_fw[0xFFDB] << 24) + (ap_fw[0xFFDA] << 16) + (ap_fw[0xFFD9] << 8) + ap_fw[0xFFD8]; + core_gesture->length = MAX_GESTURE_FIRMWARE_SIZE; + core_gesture->area_section = (ap_fw[0xFFCF] << 24) + (ap_fw[0xFFCE] << 16) + (ap_fw[0xFFCD] << 8) + ap_fw[0xFFCC]; + + ipio_info("gesture_start_addr = 0x%x, length = 0x%x\n", core_gesture->start_addr, core_gesture->length); + ipio_info("area = %d, ap_start_addr = 0x%x, ap_length = 0x%x\n", + core_gesture->area_section, core_gesture->ap_start_addr, core_gesture->ap_length); + + memcpy(mp_fw, CTPM_FW + ILI_FILE_HEADER + MP_HEX_ADDRESS, MAX_MP_FIRMWARE_SIZE); + memcpy(gesture_fw, CTPM_FW + ILI_FILE_HEADER + core_gesture->start_addr, core_gesture->length); + + gpio_direction_output(ipd->reset_gpio, 1); + mdelay(ipd->delay_time_high); + gpio_set_value(ipd->reset_gpio, 0); + mdelay(ipd->delay_time_low); + gpio_set_value(ipd->reset_gpio, 1); + mdelay(ipd->edge_delay); + + res = core_firmware->upgrade_func(true); + if (res < 0) { + core_firmware->update_status = res; + ipio_err("Failed to upgrade firmware, res = %d\n", res); + goto out; + } + + core_firmware->update_status = 100; + +out: + if (power) { + ipd->isEnablePollCheckPower = true; + queue_delayed_work(ipd->check_power_status_queue, &ipd->check_power_status_work, ipd->work_delay); + } + core_firmware->isUpgrading = false; + return res; +} +EXPORT_SYMBOL(core_firmware_boot_host_download); +#endif /* HOST_DOWNLOAD */ + +static int tddi_fw_upgrade(bool isIRAM) +{ + int res = 0; + +#ifndef HOST_DOWNLOAD + if (isIRAM) { + res = iram_upgrade(); + return res; + } +#endif + + /*ilitek_platform_tp_hw_reset(true);*/ + /* Soft reset */ + core_config_ice_mode_enable(); + core_config_set_watch_dog(false); + mdelay(10); + core_config_ic_reset(); + + ipio_info("Enter to ICE Mode\n"); + + res = core_config_ice_mode_enable(); + if (res < 0) { + ipio_err("Failed to enable ICE mode\n"); + goto out; + } + + mdelay(5); + + /* + * This command is used to fix the bug of spi clk in 7807F-AB + * while operating with flash. + */ + if (core_config->chip_id == CHIP_TYPE_ILI7807 && core_config->chip_type == ILI7807_TYPE_F_AB) { + res = core_config_ice_mode_write(0x4100C, 0x01, 1); + if (res < 0) + goto out; + } + + mdelay(25); + + if (core_config_set_watch_dog(false) < 0) { + ipio_err("Failed to disable watch dog\n"); + res = -EINVAL; + goto out; + } + + /* Disable flash protection from being written */ + core_flash_enable_protect(false); + + res = flash_erase_sector(); + if (res < 0) { + ipio_err("Failed to erase flash\n"); + goto out; + } + + mdelay(1); + + res = flash_program_sector(); + if (res < 0) { + ipio_err("Failed to program flash\n"); + goto out; + } + + /* We do have to reset chip in order to move new code from flash to iram. */ + ipio_info("Doing Soft Reset ..\n"); + core_config_ic_reset(); + + /* the delay time moving code depends on what the touch IC you're using. */ + mdelay(core_firmware->delay_after_upgrade); + + /* ensure that the chip has been updated */ + ipio_info("Enter to ICE Mode again\n"); + res = core_config_ice_mode_enable(); + if (res < 0) { + ipio_err("Failed to enable ICE mode\n"); + goto out; + } + + mdelay(20); + + /* check the data that we've just written into the iram. */ + res = verify_flash_data(); + if (res == 0) + ipio_info("Data Correct !\n"); + +out: + if (core_config_set_watch_dog(true) < 0) { + ipio_err("Failed to enable watch dog\n"); + res = -EINVAL; + } + + core_config_ice_mode_disable(); + return res; +} + +#ifdef BOOT_FW_UPGRADE +static int convert_hex_array(void) +{ + int i, j, index = 0, crc_byte_len = 4; + int block = 0, blen = 0, bindex = 0; + uint32_t tmp_addr = 0x0; + uint32_t start_addr = 0x0, end_addr = 0; + bool boot_update_flag = false; + + core_firmware->start_addr = 0; + core_firmware->end_addr = 0; + core_firmware->checksum = 0; + core_firmware->crc32 = 0; + core_firmware->hasBlockInfo = false; + + ipio_info("CTPM_FW = %d\n", (int)ARRAY_SIZE(CTPM_FW)); + + if (ARRAY_SIZE(CTPM_FW) <= 0) { + ipio_err("The size of CTPM_FW is invaild (%d)\n", (int)ARRAY_SIZE(CTPM_FW)); + goto out; + } + + /* Get new version from ILI array */ + if (protocol->mid >= 0x3) { + core_firmware->new_fw_ver[0] = CTPM_FW[18]; + core_firmware->new_fw_ver[1] = CTPM_FW[19]; + core_firmware->new_fw_ver[2] = CTPM_FW[20]; + core_firmware->new_fw_ver[3] = CTPM_FW[21]; + } else { + core_firmware->new_fw_ver[0] = CTPM_FW[19]; + core_firmware->new_fw_ver[1] = CTPM_FW[20]; + core_firmware->new_fw_ver[2] = CTPM_FW[21]; + } + /* The process will be executed if the comparison is different with origin ver */ + for (i = 0 ; i < ARRAY_SIZE(core_firmware->old_fw_ver); i++) { + if (core_firmware->old_fw_ver[i] != core_firmware->new_fw_ver[i]) { + ipio_info("FW version is different, preparing to upgrade FW\n"); + break; + } + } + ipio_info("hw fw: %d.%d.%d.%d", core_firmware->old_fw_ver[0], core_firmware->old_fw_ver[1], core_firmware->old_fw_ver[2], core_firmware->old_fw_ver[3]); + ipio_info("hex fw: %d.%d.%d.%d", core_firmware->new_fw_ver[0], core_firmware->new_fw_ver[1], core_firmware->new_fw_ver[2], core_firmware->new_fw_ver[3]); + if (i == ARRAY_SIZE(core_firmware->old_fw_ver)) { + ipio_err("FW version is the same as previous version\n"); + } + + /* Extract block info */ + block = CTPM_FW[33]; + + if (block > 0) { + core_firmware->hasBlockInfo = true; + + /* Initialize block's index and length */ + blen = 6; + bindex = 34; + ilitek_platform_disable_irq(); + + core_config_ice_mode_enable(); + mdelay(30); + + if (core_config_set_watch_dog(false) < 0) { + ipio_err("Failed to disable watch dog\n"); + } + for (i = 0 ; i < block; i++) { + for (j = 0 ; j < blen ; j++) { + if (j < 3) + g_flash_block_info[i].start_addr = + (g_flash_block_info[i].start_addr << 8) | CTPM_FW[bindex + j]; + else + g_flash_block_info[i].end_addr = + (g_flash_block_info[i].end_addr << 8) | CTPM_FW[bindex + j]; + } + start_addr = g_flash_block_info[i].start_addr; + end_addr = g_flash_block_info[i].end_addr; + g_flash_block_info[i].hex_crc = (CTPM_FW[64 + end_addr - 3] << 24) + (CTPM_FW[64 + end_addr - 2] << 16) + + (CTPM_FW[64 + end_addr - 1] << 8) + CTPM_FW[64 + (end_addr)]; + g_flash_block_info[i].block_crc = tddi_check_data(start_addr, end_addr - start_addr - crc_byte_len + 1); + printk("block=%d, start_addr=0x%06x, end_addr=0x%06x, H_CRC=0x%06x, B_CRC=0x%06x\n", i, start_addr, end_addr, g_flash_block_info[i].hex_crc, g_flash_block_info[i].block_crc); + bindex += blen; + if (g_flash_block_info[i].hex_crc != g_flash_block_info[i].block_crc) { + boot_update_flag = true; + break; + } + } + } + core_config_ice_mode_disable(); + if (boot_update_flag == false) { + ipio_info("No need upgrade\n"); + goto out; + } + /* Fill data into buffer */ + for (i = 0 ; i < ARRAY_SIZE(CTPM_FW) - 64; i++) { + flash_fw[i] = CTPM_FW[i + 64]; + index = i / flashtab->sector; + if (!g_flash_sector[index].data_flag) { + g_flash_sector[index].ss_addr = index * flashtab->sector; + g_flash_sector[index].se_addr = (index + 1) * flashtab->sector - 1; + g_flash_sector[index].dlength = + (g_flash_sector[index].se_addr - g_flash_sector[index].ss_addr) + 1; + g_flash_sector[index].data_flag = true; + } + } + + g_section_len = index; + + if (g_flash_sector[g_section_len].se_addr > flashtab->mem_size) { + ipio_err("The size written to flash is larger than it required (%x) (%x)\n", + g_flash_sector[g_section_len].se_addr, flashtab->mem_size); + goto out; + } + + for (i = 0 ; i < g_total_sector; i++) { + /* fill meaing address in an array where is empty */ + if (g_flash_sector[i].ss_addr == 0x0 && g_flash_sector[i].se_addr == 0x0) { + g_flash_sector[i].ss_addr = tmp_addr; + g_flash_sector[i].se_addr = (i + 1) * flashtab->sector - 1; + } + + tmp_addr += flashtab->sector; + + /* set erase flag in the block if the addr of sectors is between them. */ + if (core_firmware->hasBlockInfo) { + for (j = 0 ; j < ARRAY_SIZE(g_flash_block_info); j++) { + if (g_flash_sector[i].ss_addr >= g_flash_block_info[j].start_addr + && g_flash_sector[i].se_addr <= g_flash_block_info[j].end_addr) { + g_flash_sector[i].inside_block = true; + break; + } + } + } + + /* + * protects the reserved address been written and erased. + * This feature only applies on the boot upgrade. The addr is progrmmable in normal case. + */ + if (g_flash_sector[i].ss_addr == g_start_resrv && g_flash_sector[i].se_addr == g_end_resrv) { + g_flash_sector[i].inside_block = false; + } + } + + /* DEBUG: for showing data with address that will write into fw or be erased */ + for (i = 0 ; i < g_total_sector; i++) { + ipio_info + ("g_flash_sector[%d]: ss_addr = 0x%x, se_addr = 0x%x, length = %x, data = %d, inside_block = %d\n", + i, g_flash_sector[i].ss_addr, g_flash_sector[i].se_addr, g_flash_sector[index].dlength, + g_flash_sector[i].data_flag, g_flash_sector[i].inside_block); + } + + core_firmware->start_addr = 0x0; + core_firmware->end_addr = g_flash_sector[g_section_len].se_addr; + ipio_info("start_addr = 0x%06X, end_addr = 0x%06X\n", core_firmware->start_addr, core_firmware->end_addr); + return 0; + +out: + ipio_err("Failed to convert ILI FW array\n"); + return ERROR; +} + +int core_firmware_boot_upgrade(void) +{ + int res = 0; + bool power = false; + + ipio_info("BOOT: Starting to upgrade firmware ...\n"); + + core_firmware->isUpgrading = true; + core_firmware->update_status = 0; + + if (ipd->isEnablePollCheckPower) { + ipd->isEnablePollCheckPower = false; + cancel_delayed_work_sync(&ipd->check_power_status_work); + power = true; + } + + /* store old version before upgrade fw */ + if (protocol->mid >= 0x3) { + core_firmware->old_fw_ver[0] = core_config->firmware_ver[1]; + core_firmware->old_fw_ver[1] = core_config->firmware_ver[2]; + core_firmware->old_fw_ver[2] = core_config->firmware_ver[3]; + core_firmware->old_fw_ver[3] = core_config->firmware_ver[4]; + } else { + core_firmware->old_fw_ver[0] = core_config->firmware_ver[1]; + core_firmware->old_fw_ver[1] = core_config->firmware_ver[2]; + core_firmware->old_fw_ver[2] = core_config->firmware_ver[3]; + } + if (flashtab == NULL) { + ipio_err("Flash table isn't created\n"); + res = -ENOMEM; + goto out; + } + + flash_fw = kcalloc(flashtab->mem_size, sizeof(uint8_t), GFP_KERNEL); + if (ERR_ALLOC_MEM(flash_fw)) { + ipio_err("Failed to allocate flash_fw memory, %ld\n", PTR_ERR(flash_fw)); + res = -ENOMEM; + goto out; + } + + memset(flash_fw, 0xff, (int)sizeof(uint8_t) * flashtab->mem_size); + + g_total_sector = flashtab->mem_size / flashtab->sector; + if (g_total_sector <= 0) { + ipio_err("Flash configure is wrong\n"); + res = ERROR; + goto out; + } + + g_flash_sector = kcalloc(g_total_sector, sizeof(struct flash_sector), GFP_KERNEL); + if (ERR_ALLOC_MEM(g_flash_sector)) { + ipio_err("Failed to allocate g_flash_sector memory, %ld\n", PTR_ERR(g_flash_sector)); + res = -ENOMEM; + goto out; + } + + res = convert_hex_array(); + if (res < 0) { + ipio_err("Failed to covert firmware data, res = %d\n", res); + goto out; + } + /* calling that function defined at init depends on chips. */ + res = core_firmware->upgrade_func(false); + if (res < 0) { + core_firmware->update_status = res; + ipio_err("Failed to upgrade firmware, res = %d\n", res); + goto out; + } + + core_firmware->update_status = 100; + ipio_info("Update firmware information...\n"); + core_config_get_fw_ver(); + core_config_get_protocol_ver(); + core_config_get_core_ver(); + core_config_get_tp_info(); + core_config_get_key_info(); + +out: + if (power) { + ipd->isEnablePollCheckPower = true; + queue_delayed_work(ipd->check_power_status_queue, &ipd->check_power_status_work, ipd->work_delay); + } + + ipio_kfree((void **)&flash_fw); + ipio_kfree((void **)&g_flash_sector); + core_firmware->isUpgrading = false; + return res; +} +#endif /* BOOT_FW_UPGRADE */ + +static int convert_hex_file(uint8_t *pBuf, uint32_t nSize, bool isIRAM) +{ + int index = 0, block = 0; +#ifdef HOST_DOWNLOAD + static int do_once; +#endif + uint32_t i = 0, j = 0, k = 0; + uint32_t nLength = 0, nAddr = 0, nType = 0; + uint32_t nStartAddr = 0x0, nEndAddr = 0x0, nChecksum = 0x0, nExAddr = 0; + uint32_t tmp_addr = 0x0; + + core_firmware->start_addr = 0; + core_firmware->end_addr = 0; + core_firmware->checksum = 0; + core_firmware->crc32 = 0; + core_firmware->hasBlockInfo = false; + memset(g_flash_block_info, 0x0, sizeof(g_flash_block_info)); + +#ifdef HOST_DOWNLOAD + memset(ap_fw, 0xFF, sizeof(ap_fw)); + memset(dlm_fw, 0xFF, sizeof(dlm_fw)); + memset(mp_fw, 0xFF, sizeof(mp_fw)); + memset(gesture_fw, 0xFF, sizeof(gesture_fw)); +#endif + + /* Parsing HEX file */ + for (; i < nSize; ) { + int32_t nOffset; + + nLength = HexToDec(&pBuf[i + 1], 2); + nAddr = HexToDec(&pBuf[i + 3], 4); + nType = HexToDec(&pBuf[i + 7], 2); + + /* calculate checksum */ + for (j = 8; j < (2 + 4 + 2 + (nLength * 2)); j += 2) { + if (nType == 0x00) { + /* for ice mode write method */ + nChecksum = nChecksum + HexToDec(&pBuf[i + 1 + j], 2); + } + } + + if (nType == 0x04) { + nExAddr = HexToDec(&pBuf[i + 9], 4); + } + + if (nType == 0x02) { + nExAddr = HexToDec(&pBuf[i + 9], 4); + nExAddr = nExAddr >> 12; + } + + if (nType == 0xAE) { + core_firmware->hasBlockInfo = true; + /* insert block info extracted from hex */ + if (block < 4) { + g_flash_block_info[block].start_addr = HexToDec(&pBuf[i + 9], 6); + g_flash_block_info[block].end_addr = HexToDec(&pBuf[i + 9 + 6], 6); + ipio_debug(DEBUG_FIRMWARE, "Block[%d]: start_addr = %x, end = %x\n", + block, g_flash_block_info[block].start_addr, g_flash_block_info[block].end_addr); + } + block++; + } + + nAddr = nAddr + (nExAddr << 16); + if (pBuf[i + 1 + j + 2] == 0x0D) { + nOffset = 2; + } else { + nOffset = 1; + } + + if (nType == 0x00) { + if (nAddr > MAX_HEX_FILE_SIZE) { + ipio_err("Invalid hex format\n"); + goto out; + } + + if (nAddr < nStartAddr) { + nStartAddr = nAddr; + } + if ((nAddr + nLength) > nEndAddr) { + nEndAddr = nAddr + nLength; + } + /* fill data */ + for (j = 0, k = 0 ; j < (nLength * 2); j += 2, k++) { + if (isIRAM) { +#ifdef HOST_DOWNLOAD + if (nAddr < 0x10000) { + ap_fw[nAddr + k] = HexToDec(&pBuf[i + 9 + j], 2); + } else if (nAddr >= DLM_HEX_ADDRESS && nAddr < MP_HEX_ADDRESS) { + if (nAddr < DLM_HEX_ADDRESS + MAX_DLM_FIRMWARE_SIZE) + dlm_fw[nAddr - DLM_HEX_ADDRESS + k] = HexToDec(&pBuf[i + 9 + j], 2); + } else if (nAddr >= MP_HEX_ADDRESS) { + mp_fw[nAddr - MP_HEX_ADDRESS + k] = HexToDec(&pBuf[i + 9 + j], 2); + } + if (nAddr > MAX_AP_FIRMWARE_SIZE && do_once == 0) { + do_once = 1; + core_gesture->ap_start_addr = (ap_fw[0xFFD3] << 24) + (ap_fw[0xFFD2] << 16) + (ap_fw[0xFFD1] << 8) + ap_fw[0xFFD0]; + core_gesture->ap_length = MAX_GESTURE_FIRMWARE_SIZE; + core_gesture->start_addr = (ap_fw[0xFFDB] << 24) + (ap_fw[0xFFDA] << 16) + (ap_fw[0xFFD9] << 8) + ap_fw[0xFFD8]; + core_gesture->length = MAX_GESTURE_FIRMWARE_SIZE; + core_gesture->area_section = (ap_fw[0xFFCF] << 24) + (ap_fw[0xFFCE] << 16) + (ap_fw[0xFFCD] << 8) + ap_fw[0xFFCC]; + } + if (nAddr >= core_gesture->start_addr && + (nAddr < core_gesture->start_addr + MAX_GESTURE_FIRMWARE_SIZE)) { + gesture_fw[nAddr - core_gesture->start_addr + k] = HexToDec(&pBuf[i + 9 + j], 2); + } +#else + iram_fw[nAddr + k] = HexToDec(&pBuf[i + 9 + j], 2); +#endif + } else { + flash_fw[nAddr + k] = HexToDec(&pBuf[i + 9 + j], 2); + + if ((nAddr + k) != 0) { + index = ((nAddr + k) / flashtab->sector); + if (!g_flash_sector[index].data_flag) { + g_flash_sector[index].ss_addr = index * flashtab->sector; + g_flash_sector[index].se_addr = + (index + 1) * flashtab->sector - 1; + g_flash_sector[index].dlength = + (g_flash_sector[index].se_addr - + g_flash_sector[index].ss_addr) + 1; + g_flash_sector[index].data_flag = true; + } + } + } + } + } + i += 1 + 2 + 4 + 2 + (nLength * 2) + 2 + nOffset; + } + +#ifdef HOST_DOWNLOAD + return 0; +#endif + + /* Update the length of section */ + g_section_len = index; + + if (g_flash_sector[g_section_len - 1].se_addr > flashtab->mem_size) { + ipio_err("The size written to flash is larger than it required (%x) (%x)\n", + g_flash_sector[g_section_len - 1].se_addr, flashtab->mem_size); + goto out; + } + + for (i = 0 ; i < g_total_sector; i++) { + /* fill meaing address in an array where is empty */ + if (g_flash_sector[i].ss_addr == 0x0 && g_flash_sector[i].se_addr == 0x0) { + g_flash_sector[i].ss_addr = tmp_addr; + g_flash_sector[i].se_addr = (i + 1) * flashtab->sector - 1; + } + + tmp_addr += flashtab->sector; + + /* set erase flag in the block if the addr of sectors is between them. */ + if (core_firmware->hasBlockInfo) { + for (j = 0 ; j < ARRAY_SIZE(g_flash_block_info); j++) { + if (g_flash_sector[i].ss_addr >= g_flash_block_info[j].start_addr + && g_flash_sector[i].se_addr <= g_flash_block_info[j].end_addr) { + g_flash_sector[i].inside_block = true; + break; + } + } + } + } + + /* DEBUG: for showing data with address that will write into fw or be erased */ + for (i = 0 ; i < g_total_sector; i++) { + ipio_debug(DEBUG_FIRMWARE, + "g_flash_sector[%d]: ss_addr = 0x%x, se_addr = 0x%x, length = %x, data = %d, inside_block = %d\n", i, + g_flash_sector[i].ss_addr, g_flash_sector[i].se_addr, g_flash_sector[index].dlength, + g_flash_sector[i].data_flag, g_flash_sector[i].inside_block); + } + + core_firmware->start_addr = nStartAddr; + core_firmware->end_addr = nEndAddr; + ipio_info("nStartAddr = 0x%06X, nEndAddr = 0x%06X\n", nStartAddr, nEndAddr); + return 0; + +out: + ipio_err("Failed to convert HEX data\n"); + return ERROR; +} + +/* + * It would basically be called by ioctl when users want to upgrade firmware. + * + * @pFilePath: pass a path where locates user's firmware file. + * + */ +int core_firmware_upgrade(const char *pFilePath, bool isIRAM) +{ + int res = 0, fsize, i = 0; + uint8_t *hex_buffer = NULL; + bool power = false; + const struct firmware *fw; + + + core_firmware->isUpgrading = true; + core_firmware->update_status = 0; + + if (ipd->isEnablePollCheckPower) { + ipd->isEnablePollCheckPower = false; + cancel_delayed_work_sync(&ipd->check_power_status_work); + power = true; + } + + res = request_firmware(&fw, pFilePath, &ipd->client->dev); + + if (res < 0) { + ipio_err("Failed to open the file Name %s.\n", pFilePath); + /* if not hex file can ili file */ +#ifdef HOST_DOWNLOAD + goto no_hex_file; +#endif + res = -ENOENT; + return res; + } + + fsize = fw->size; + + ipio_info("fsize = %d\n", fsize); + + if (fsize <= 0) { + ipio_err("The size of file is zero\n"); + res = -EINVAL; + goto out; + } + +#ifndef HOST_DOWNLOAD + if (flashtab == NULL) { + ipio_err("Flash table isn't created\n"); + res = -ENOMEM; + goto out; + } + + flash_fw = kcalloc(flashtab->mem_size, sizeof(uint8_t), GFP_KERNEL); + if (ERR_ALLOC_MEM(flash_fw)) { + ipio_err("Failed to allocate flash_fw memory, %ld\n", PTR_ERR(flash_fw)); + res = -ENOMEM; + goto out; + } + + memset(flash_fw, 0xff, sizeof(uint8_t) * flashtab->mem_size); + + g_total_sector = flashtab->mem_size / flashtab->sector; + if (g_total_sector <= 0) { + ipio_err("Flash configure is wrong\n"); + res = ERROR; + goto out; + } + + g_flash_sector = kcalloc(g_total_sector, sizeof(*g_flash_sector), GFP_KERNEL); + if (ERR_ALLOC_MEM(g_flash_sector)) { + ipio_err("Failed to allocate g_flash_sector memory, %ld\n", PTR_ERR(g_flash_sector)); + res = -ENOMEM; + goto out; + } +#endif + + hex_buffer = kcalloc(fsize, sizeof(uint8_t), GFP_KERNEL); + if (ERR_ALLOC_MEM(hex_buffer)) { + ipio_err("Failed to allocate hex_buffer memory, %ld\n", PTR_ERR(hex_buffer)); + res = -ENOMEM; + goto out; + } + + for (i = 0 ; i < fw->size ; i++) + hex_buffer[i] = fw->data[i]; + + res = convert_hex_file(hex_buffer, fsize, isIRAM); + if (res < 0) { + ipio_err("Failed to covert firmware data, res = %d\n", res); + goto out; + } + +#ifdef HOST_DOWNLOAD +no_hex_file: +#endif + /* calling that function defined at init depends on chips. */ + res = core_firmware->upgrade_func(isIRAM); + if (res < 0) { + ipio_err("Failed to upgrade firmware, res = %d\n", res); + goto out; + } + +#ifndef HOST_DOWNLOAD + ipio_info("Update TP/Firmware information...\n"); + core_config_get_fw_ver(); + core_config_get_protocol_ver(); + core_config_get_core_ver(); + core_config_get_tp_info(); + core_config_get_key_info(); +#endif + +out: + if (power) { + ipd->isEnablePollCheckPower = true; + queue_delayed_work(ipd->check_power_status_queue, &ipd->check_power_status_work, ipd->work_delay); + } + core_firmware->isUpgrading = false; + + + release_firmware(fw); + ipio_kfree((void **)&hex_buffer); + ipio_kfree((void **)&flash_fw); + ipio_kfree((void **)&g_flash_sector); + return res; +} + + +int core_firmware_init(void) +{ + int i = 0, j = 0; + + core_firmware = kzalloc(sizeof(*core_firmware), GFP_KERNEL); + if (ERR_ALLOC_MEM(core_firmware)) { + ipio_err("Failed to allocate core_firmware mem, %ld\n", PTR_ERR(core_firmware)); + core_firmware_remove(); + return -ENOMEM; + } + + core_firmware->hasBlockInfo = false; + core_firmware->isboot = false; + + for (; i < ARRAY_SIZE(ipio_chip_list); i++) { + if (ipio_chip_list[i] == ipd->chip_id) { + for (j = 0 ; j < 4; j++) { + core_firmware->old_fw_ver[i] = core_config->firmware_ver[i]; + core_firmware->new_fw_ver[i] = 0x0; + } + + if (ipio_chip_list[i] == CHIP_TYPE_ILI7807) { + core_firmware->max_count = 0xFFFF; + core_firmware->isCRC = false; + core_firmware->upgrade_func = tddi_fw_upgrade; + core_firmware->delay_after_upgrade = 100; + } else if (ipio_chip_list[i] == CHIP_TYPE_ILI9881) { + core_firmware->max_count = 0x1FFFF; + core_firmware->isCRC = true; + #ifdef HOST_DOWNLOAD + core_firmware->upgrade_func = tddi_host_download; + #else + core_firmware->upgrade_func = tddi_fw_upgrade; + #endif + core_firmware->delay_after_upgrade = 200; + } + return 0; + } + } + + ipio_err("Can't find this chip in support list\n"); + return 0; +} + +void core_firmware_remove(void) +{ + ipio_info("Remove core-firmware members\n"); + ipio_kfree((void **)&core_firmware); +} diff --git a/drivers/input/touchscreen/ilitek_mmi/core/firmware.h b/drivers/input/touchscreen/ilitek_mmi/core/firmware.h new file mode 100644 index 000000000000..863c83a3a4a9 --- /dev/null +++ b/drivers/input/touchscreen/ilitek_mmi/core/firmware.h @@ -0,0 +1,64 @@ +/* + * ILITEK Touch IC driver + * + * Copyright (C) 2011 ILI Technology Corporation. + * + * Author: Dicky Chiang + * Based on TDD v7.0 implemented by Mstar & ILITEK + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ + +#ifndef __FIRMWARE_H +#define __FIRMWARE_H + +struct core_firmware_data { +uint8_t new_fw_ver[4]; +uint8_t old_fw_ver[4]; + +uint32_t start_addr; +uint32_t end_addr; +uint32_t checksum; +uint32_t crc32; +uint32_t update_status; +uint32_t max_count; + +int delay_after_upgrade; + +bool isUpgrading; +bool force_upgrad; +bool isCRC; +bool isboot; +bool hasBlockInfo; + +int (*upgrade_func)(bool isIRAM); +}; + +extern struct core_firmware_data *core_firmware; + +#ifdef HOST_DOWNLOAD +extern int core_firmware_boot_host_download(void); +extern int tddi_host_download(bool isIRAM); +#endif +#ifdef BOOT_FW_UPGRADE +extern int core_firmware_boot_upgrade(void); +#endif +/* extern int core_firmware_iram_upgrade(const char* fpath); */ +extern int core_firmware_upgrade(const char *pFilePath, bool isIRAM); +extern int core_firmware_init(void); +extern void core_firmware_remove(void); + +#endif /* __FIRMWARE_H */ diff --git a/drivers/input/touchscreen/ilitek_mmi/core/flash.c b/drivers/input/touchscreen/ilitek_mmi/core/flash.c new file mode 100644 index 000000000000..12316417d9c3 --- /dev/null +++ b/drivers/input/touchscreen/ilitek_mmi/core/flash.c @@ -0,0 +1,187 @@ +/* + * ILITEK Touch IC driver + * + * Copyright (C) 2011 ILI Technology Corporation. + * + * Author: Dicky Chiang + * Based on TDD v7.0 implemented by Mstar & ILITEK + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ + +#include "../common.h" +#include "config.h" +#include "flash.h" + +#define K (1024) +#define M (K * K) + +/* + * The table contains fundamental data used to program our flash, which + * would be different according to the vendors. + */ +struct flash_table ft[] = { + {0xEF, 0x6011, (128 * K), 256, (4 * K), (64 * K)}, /* W25Q10EW */ + {0xEF, 0x6012, (256 * K), 256, (4 * K), (64 * K)}, /* W25Q20EW */ + {0xC8, 0x6012, (256 * K), 256, (4 * K), (64 * K)}, /* GD25LQ20B */ + {0xC8, 0x6013, (512 * K), 256, (4 * K), (64 * K)}, /* GD25LQ40 */ + {0x85, 0x6013, (4 * M), 256, (4 * K), (64 * K)}, + {0xC2, 0x2812, (256 * K), 256, (4 * K), (64 * K)}, + {0x1C, 0x3812, (256 * K), 256, (4 * K), (64 * K)}, +}; + +struct flash_table *flashtab; + +int core_flash_poll_busy(void) +{ + int timer = 500, res = 0; + + core_config_ice_mode_write(0x041000, 0x0, 1); /* CS low */ + core_config_ice_mode_write(0x041004, 0x66aa55, 3); /* Key */ + + core_config_ice_mode_write(0x041008, 0x5, 1); + while (timer > 0) { + core_config_ice_mode_write(0x041008, 0xFF, 1); + + mdelay(1); + + if ((core_config_read_write_onebyte(0x041010) & 0x03) == 0x00) + goto out; + timer--; + } + + ipio_err("Polling busy Time out !\n"); + res = ERROR; +out: + core_config_ice_mode_write(0x041000, 0x1, 1); /* CS high */ + return res; +} +EXPORT_SYMBOL(core_flash_poll_busy); + +int core_flash_write_enable(void) +{ + if (core_config_ice_mode_write(0x041000, 0x0, 1) < 0) + goto out; + if (core_config_ice_mode_write(0x041004, 0x66aa55, 3) < 0) + goto out; + if (core_config_ice_mode_write(0x041008, 0x6, 1) < 0) + goto out; + if (core_config_ice_mode_write(0x041000, 0x1, 1) < 0) + goto out; + + return 0; + +out: + ipio_err("Write enable failed !\n"); + return -EIO; +} +EXPORT_SYMBOL(core_flash_write_enable); + +void core_flash_enable_protect(bool enable) +{ + ipio_info("Set flash protect as (%d)\n", enable); + + if (core_flash_write_enable() < 0) { + ipio_err("Failed to config flash's write enable\n"); + return; + } + + core_config_ice_mode_write(0x041000, 0x0, 1); /* CS low */ + core_config_ice_mode_write(0x041004, 0x66aa55, 3); /* Key */ + + switch (flashtab->mid) { + case 0xEF: + if (flashtab->dev_id == 0x6012 || flashtab->dev_id == 0x6011) { + core_config_ice_mode_write(0x041008, 0x1, 1); + core_config_ice_mode_write(0x041008, 0x00, 1); + + if (enable) + core_config_ice_mode_write(0x041008, 0x7E, 1); + else + core_config_ice_mode_write(0x041008, 0x00, 1); + } + break; + case 0xC8: + if (flashtab->dev_id == 0x6012 || flashtab->dev_id == 0x6013) { + core_config_ice_mode_write(0x041008, 0x1, 1); + core_config_ice_mode_write(0x041008, 0x00, 1); + + if (enable) + core_config_ice_mode_write(0x041008, 0x7A, 1); + else + core_config_ice_mode_write(0x041008, 0x00, 1); + } + break; + default: + ipio_err("Can't find flash id, ignore protection\n"); + break; + } + + core_config_ice_mode_write(0x041000, 0x1, 1); /* CS high */ + mdelay(5); +} +EXPORT_SYMBOL(core_flash_enable_protect); + +void core_flash_init(uint16_t mid, uint16_t did) +{ + int i = 0; + + ipio_info("M_ID = %x, DEV_ID = %x", mid, did); + + flashtab = kzalloc(sizeof(ft), GFP_KERNEL); + if (ERR_ALLOC_MEM(flashtab)) { + ipio_err("Failed to allocate flashtab memory, %ld\n", PTR_ERR(flashtab)); + return; + } + + for (; i < ARRAY_SIZE(ft); i++) { + if (mid == ft[i].mid && did == ft[i].dev_id) { + ipio_info("Find them in flash table\n"); + + flashtab->mid = mid; + flashtab->dev_id = did; + flashtab->mem_size = ft[i].mem_size; + flashtab->program_page = ft[i].program_page; + flashtab->sector = ft[i].sector; + flashtab->block = ft[i].block; + break; + } + } + + if (i >= ARRAY_SIZE(ft)) { + ipio_err("Can't find them in flash table, apply default flash config\n"); + flashtab->mid = mid; + flashtab->dev_id = did; + flashtab->mem_size = (256 * K); + flashtab->program_page = 256; + flashtab->sector = (4 * K); + flashtab->block = (64 * K); + } + + ipio_info("Max Memory size = %d\n", flashtab->mem_size); + ipio_info("Per program page = %d\n", flashtab->program_page); + ipio_info("Sector size = %d\n", flashtab->sector); + ipio_info("Block size = %d\n", flashtab->block); +} +EXPORT_SYMBOL(core_flash_init); + +void core_flash_remove(void) +{ + ipio_info("Remove core-flash memebers\n"); + + ipio_kfree((void **)&flashtab); +} +EXPORT_SYMBOL(core_flash_remove); diff --git a/drivers/input/touchscreen/ilitek_mmi/core/flash.h b/drivers/input/touchscreen/ilitek_mmi/core/flash.h new file mode 100644 index 000000000000..3ff6bdddd4df --- /dev/null +++ b/drivers/input/touchscreen/ilitek_mmi/core/flash.h @@ -0,0 +1,45 @@ +/* + * ILITEK Touch IC driver + * + * Copyright (C) 2011 ILI Technology Corporation. + * + * Author: Dicky Chiang + * Based on TDD v7.0 implemented by Mstar & ILITEK + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ + +#ifndef __FLASH_H +#define __FLASH_H + +struct flash_table { +uint16_t mid; +uint16_t dev_id; +int mem_size; +int program_page; +int sector; +int block; +}; + +extern struct flash_table *flashtab; + +extern int core_flash_poll_busy(void); +extern int core_flash_write_enable(void); +extern void core_flash_enable_protect(bool status); +extern void core_flash_init(uint16_t mid, uint16_t did); +extern void core_flash_remove(void); + +#endif /* __FLASH_H */ diff --git a/drivers/input/touchscreen/ilitek_mmi/core/gesture.c b/drivers/input/touchscreen/ilitek_mmi/core/gesture.c new file mode 100644 index 000000000000..bedd65d6cb74 --- /dev/null +++ b/drivers/input/touchscreen/ilitek_mmi/core/gesture.c @@ -0,0 +1,289 @@ +/* + * ILITEK Touch IC driver + * + * Copyright (C) 2011 ILI Technology Corporation. + * + * Author: Dicky Chiang + * Based on TDD v7.0 implemented by Mstar & ILITEK + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ + +#include "../common.h" +#include "finger_report.h" +#include "firmware.h" +#include "gesture.h" +#include "protocol.h" +#include "config.h" + +struct core_gesture_data *core_gesture; + +#ifdef HOST_DOWNLOAD +int core_gesture_load_code(void) +{ + int i = 0, ret = 0; + uint8_t temp[64] = {0}; + + core_gesture->entry = true; + + /* Already read during parsing hex file */ + ipio_info("gesture_start_addr = 0x%x, length = 0x%x\n", + core_gesture->start_addr, core_gesture->length); + ipio_info("area = %d, ap_start_addr = 0x%x, ap_length = 0x%x\n", + core_gesture->area_section, core_gesture->ap_start_addr, + core_gesture->ap_length); + + /* write load gesture flag */ + ipio_info("write load gesture flag\n"); + temp[0] = 0x01; + temp[1] = 0x0A; + temp[2] = 0x03; + if ((core_write(core_config->slave_i2c_addr, temp, 3)) < 0) + ipio_err("write gesture flag error\n"); + + ipio_info("enter gesture cmd lpwg start\n"); + /* enter gesture cmd lpwg start */ + temp[0] = 0x01; + temp[1] = 0x0A; + temp[2] = core_gesture->mode + 1; + if ((core_write(core_config->slave_i2c_addr, temp, 3)) < 0) + ipio_err("write lpwg start error\n"); + + for (i = 0 ; i < 20 ; i++) { + temp[0] = 0xF6; + temp[1] = 0x0A; + temp[2] = 0x05; + if ((core_write(core_config->slave_i2c_addr, temp, 2)) < 0) + ipio_err("write 0xF6,0xA,0x05 command error\n"); + + mdelay(i * 50); + + temp[0] = 0x01; + temp[1] = 0x0A; + temp[2] = 0x05; + if ((core_write(core_config->slave_i2c_addr, temp, 3)) < 0) + ipio_err("write command error\n"); + + if ((core_read(core_config->slave_i2c_addr, temp, 1)) < 0) + ipio_err("Read command error\n"); + + if (temp[0] == 0x91) { + ipio_info("check fw ready\n"); + break; + } + } + + if (temp[0] != 0x91) + ipio_err("FW is busy, error\n"); + ipio_info("load gesture code\n"); + /* load gesture code */ + if (core_config_ice_mode_enable() < 0) + ipio_err("Failed to enter ICE mode\n"); + + tddi_host_download(true); + + temp[0] = 0x01; + temp[1] = 0x0A; + temp[2] = 0x06; + if ((core_write(core_config->slave_i2c_addr, temp, 3)) < 0) + ipio_err("write command error\n"); + + core_gesture->entry = false; + return ret; +} +EXPORT_SYMBOL(core_gesture_load_code); + +int core_gesture_load_ap_code(void) +{ + int i = 0, ret = 0; + uint8_t temp[64] = {0}; + + core_gesture->entry = true; + + /* Write Load AP Flag */ + temp[0] = 0x01; + temp[1] = 0x01; + temp[2] = 0x00; + if ((core_write(core_config->slave_i2c_addr, temp, 3)) < 0) + ipio_err("write command AP Flag error\n"); + + if ((core_read(core_config->slave_i2c_addr, temp, 20)) < 0) + ipio_err("Read AP Flag error\n"); + + /* Leave Gesture Cmd LPWG Stop */ + temp[0] = 0x01; + temp[1] = 0x0A; + temp[2] = 0x00; + if ((core_write(core_config->slave_i2c_addr, temp, 3)) < 0) + ipio_err("write command LPWG Stop error\n"); + + for (i = 0 ; i < 20 ; i++) { + + mdelay(i * 100 + 100); + + temp[0] = 0x01; + temp[1] = 0x0A; + temp[2] = 0x05; + if ((core_write(core_config->slave_i2c_addr, temp, 3)) < 0) + ipio_err("write command error\n"); + if ((core_read(core_config->slave_i2c_addr, temp, 1)) < 0) + ipio_err("Read command error\n"); + if (temp[0] == 0x91) { + ipio_info("check fw ready\n"); + break; + } + } + + if (i == 3 && temp[0] != 0x01) + ipio_err("FW is busy, error\n"); + + /* load AP code */ + if (core_config_ice_mode_enable() < 0) + ipio_err("Failed to enter ICE mode\n"); + + tddi_host_download(false); + + temp[0] = 0x01; + temp[1] = 0x0A; + temp[2] = 0x06; + if ((core_write(core_config->slave_i2c_addr, temp, 3)) < 0) + ipio_err("write command error\n"); + + core_gesture->entry = false; + return ret; +} +EXPORT_SYMBOL(core_gesture_load_ap_code); +#endif + +int core_gesture_match_key(uint8_t gdata) +{ + int gcode; + + switch (gdata) { + case GESTURE_LEFT: + gcode = KEY_GESTURE_LEFT; + break; + case GESTURE_RIGHT: + gcode = KEY_GESTURE_RIGHT; + break; + case GESTURE_UP: + gcode = KEY_GESTURE_UP; + break; + case GESTURE_DOWN: + gcode = KEY_GESTURE_DOWN; + break; + case GESTURE_DOUBLECLICK: + gcode = KEY_GESTURE_D; + break; + case GESTURE_O: + gcode = KEY_GESTURE_O; + break; + case GESTURE_W: + gcode = KEY_GESTURE_W; + break; + case GESTURE_M: + gcode = KEY_GESTURE_M; + break; + case GESTURE_E: + gcode = KEY_GESTURE_E; + break; + case GESTURE_S: + gcode = KEY_GESTURE_S; + break; + case GESTURE_V: + gcode = KEY_GESTURE_V; + break; + case GESTURE_Z: + gcode = KEY_GESTURE_Z; + break; + case GESTURE_C: + gcode = KEY_GESTURE_C; + break; + default: + gcode = ERROR; + break; + } + + ipio_debug(DEBUG_GESTURE, "gcode = %d\n", gcode); + return gcode; +} +EXPORT_SYMBOL(core_gesture_match_key); + +void core_gesture_set_key(struct core_fr_data *fr_data) +{ + struct input_dev *input_dev = fr_data->input_device; + + if (input_dev != NULL) { + input_set_capability(input_dev, EV_KEY, KEY_POWER); + input_set_capability(input_dev, EV_KEY, KEY_GESTURE_UP); + input_set_capability(input_dev, EV_KEY, KEY_GESTURE_DOWN); + input_set_capability(input_dev, EV_KEY, KEY_GESTURE_LEFT); + input_set_capability(input_dev, EV_KEY, KEY_GESTURE_RIGHT); + input_set_capability(input_dev, EV_KEY, KEY_GESTURE_O); + input_set_capability(input_dev, EV_KEY, KEY_GESTURE_E); + input_set_capability(input_dev, EV_KEY, KEY_GESTURE_M); + input_set_capability(input_dev, EV_KEY, KEY_GESTURE_W); + input_set_capability(input_dev, EV_KEY, KEY_GESTURE_S); + input_set_capability(input_dev, EV_KEY, KEY_GESTURE_V); + input_set_capability(input_dev, EV_KEY, KEY_GESTURE_Z); + input_set_capability(input_dev, EV_KEY, KEY_GESTURE_C); + + __set_bit(KEY_POWER, input_dev->keybit); + __set_bit(KEY_GESTURE_UP, input_dev->keybit); + __set_bit(KEY_GESTURE_DOWN, input_dev->keybit); + __set_bit(KEY_GESTURE_LEFT, input_dev->keybit); + __set_bit(KEY_GESTURE_RIGHT, input_dev->keybit); + __set_bit(KEY_GESTURE_O, input_dev->keybit); + __set_bit(KEY_GESTURE_E, input_dev->keybit); + __set_bit(KEY_GESTURE_M, input_dev->keybit); + __set_bit(KEY_GESTURE_W, input_dev->keybit); + __set_bit(KEY_GESTURE_S, input_dev->keybit); + __set_bit(KEY_GESTURE_V, input_dev->keybit); + __set_bit(KEY_GESTURE_Z, input_dev->keybit); + __set_bit(KEY_GESTURE_C, input_dev->keybit); + return; + } + + ipio_err("GESTURE: input dev is NULL\n"); +} +EXPORT_SYMBOL(core_gesture_set_key); + +int core_gesture_init(void) +{ + if (core_gesture == NULL) { + core_gesture = kzalloc(sizeof(*core_gesture), GFP_KERNEL); + if (ERR_ALLOC_MEM(core_gesture)) { + ipio_err("Failed to allocate core_gesture mem, %ld\n", + PTR_ERR(core_gesture)); + core_gesture_remove(); + return -ENOMEM; + } + + core_gesture->entry = false; + } + + return 0; +} +EXPORT_SYMBOL(core_gesture_init); + +void core_gesture_remove(void) +{ + ipio_info("Remove core-gesture members\n"); + ipio_kfree((void **)&core_gesture); +} +EXPORT_SYMBOL(core_gesture_remove); + + diff --git a/drivers/input/touchscreen/ilitek_mmi/core/gesture.h b/drivers/input/touchscreen/ilitek_mmi/core/gesture.h new file mode 100644 index 000000000000..e3e0928ec99c --- /dev/null +++ b/drivers/input/touchscreen/ilitek_mmi/core/gesture.h @@ -0,0 +1,88 @@ +/* + * ILITEK Touch IC driver + * + * Copyright (C) 2011 ILI Technology Corporation. + * + * Author: Dicky Chiang + * Based on TDD v7.0 implemented by Mstar & ILITEK + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ + +#ifndef __GESTURE_H +#define __GESTURE_H +#define GESTURE_NORMAL_MODE 0 +#define GESTURE_INFO_MPDE 1 +#define GESTURE_INFO_LENGTH 170 +#define GESTURE_MORMAL_LENGTH 8 + +/* The example for the gesture virtual keys */ +#define GESTURE_DOUBLECLICK 0x58 +#define GESTURE_UP 0x60 +#define GESTURE_DOWN 0x61 +#define GESTURE_LEFT 0x62 +#define GESTURE_RIGHT 0x63 +#define GESTURE_M 0x64 +#define GESTURE_W 0x65 +#define GESTURE_C 0x66 +#define GESTURE_E 0x67 +#define GESTURE_V 0x68 +#define GESTURE_O 0x69 +#define GESTURE_S 0x6A +#define GESTURE_Z 0x6B + +/* oppo gesture define */ +#define GESTURE_CODE_V_DOWN 0x6C +#define GESTURE_CODE_V_LEFT 0x6D +#define GESTURE_CODE_V_RIGHT 0x6E +#define GESTURE_CODE_TWO_LINE_2_BOTTOM 0x6F + +#define KEY_GESTURE_D KEY_D +#define KEY_GESTURE_UP KEY_UP +#define KEY_GESTURE_DOWN KEY_DOWN +#define KEY_GESTURE_LEFT KEY_LEFT +#define KEY_GESTURE_RIGHT KEY_RIGHT +#define KEY_GESTURE_O KEY_O +#define KEY_GESTURE_E KEY_E +#define KEY_GESTURE_M KEY_M +#define KEY_GESTURE_W KEY_W +#define KEY_GESTURE_S KEY_S +#define KEY_GESTURE_V KEY_V +#define KEY_GESTURE_C KEY_C +#define KEY_GESTURE_Z KEY_Z + +struct core_gesture_data { + uint32_t start_addr; + uint32_t length; + bool entry; + uint8_t mode; /* normal:0 info:1 */ + uint32_t ap_start_addr; + uint32_t ap_length; + uint32_t area_section; + bool suspend; +}; + +extern struct core_gesture_data *core_gesture; +extern uint8_t ap_fw[MAX_AP_FIRMWARE_SIZE]; +#ifdef HOST_DOWNLOAD +extern int core_gesture_load_code(void); +extern int core_gesture_load_ap_code(void); +#endif +extern int core_gesture_match_key(uint8_t gid); +extern void core_gesture_set_key(struct core_fr_data *fr_data); +extern int core_gesture_init(void); +extern void core_gesture_remove(void); +#endif diff --git a/drivers/input/touchscreen/ilitek_mmi/core/i2c.c b/drivers/input/touchscreen/ilitek_mmi/core/i2c.c new file mode 100644 index 000000000000..8f50fb1e520a --- /dev/null +++ b/drivers/input/touchscreen/ilitek_mmi/core/i2c.c @@ -0,0 +1,278 @@ +/* + * ILITEK Touch IC driver + * + * Copyright (C) 2011 ILI Technology Corporation. + * + * Author: Dicky Chiang + * Based on TDD v7.0 implemented by Mstar & ILITEK + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ + +#include "../common.h" +#include "config.h" +#include "i2c.h" +#include "mp_test.h" +#include "finger_report.h" +#include "protocol.h" +#include "../platform.h" + + +struct core_i2c_data *core_i2c; + +#ifdef I2C_DMA +static unsigned char *ilitek_dma_va; +static dma_addr_t ilitek_dma_pa; + +#define DMA_VA_BUFFER 4096 + +static int dma_alloc(struct core_i2c_data *i2c) +{ + if (i2c->client != NULL) { + i2c->client->dev.coherent_dma_mask = DMA_BIT_MASK(32); + ilitek_dma_va = (u8 *) dma_alloc_coherent(&i2c->client->dev + , DMA_VA_BUFFER, &ilitek_dma_pa, GFP_KERNEL); + if (ERR_ALLOC_MEM(ilitek_dma_va)) { + ipio_err("Allocate DMA I2C Buffer failed\n"); + return -ENOMEM; + } + + memset(ilitek_dma_va, 0, DMA_VA_BUFFER); + i2c->client->ext_flag |= I2C_DMA_FLAG; + return 0; + } + + ipio_err("i2c->client is NULL, return fail\n"); + return -ENODEV; +} + +static void dma_free(void) +{ + if (ilitek_dma_va != NULL) { + dma_free_coherent(&core_i2c->client->dev, DMA_VA_BUFFER + , ilitek_dma_va, ilitek_dma_pa); + + ilitek_dma_va = NULL; + ilitek_dma_pa = 0; + + ipio_info("Succeed to free DMA buffer\n"); + } +} +#endif /* I2C_DMA */ + +int core_i2c_write(uint8_t nSlaveId, uint8_t *pBuf, uint16_t nSize) +{ + int res = 0; + uint8_t check_sum = 0; + uint8_t *txbuf = NULL; + + struct i2c_msg msgs[] = { + { + .addr = nSlaveId, + .flags = 0, /* write flag. */ + .len = nSize, + .buf = pBuf, + }, + }; + +#ifdef I2C_DMA + ipio_debug(DEBUG_I2C, "DMA: size = %d\n", nSize); + if (nSize > 8) { + msgs[0].addr = (core_i2c->client->addr & I2C_MASK_FLAG); + msgs[0].ext_flag = + (core_i2c->client->ext_flag | I2C_ENEXT_FLAG | I2C_DMA_FLAG); + memcpy(ilitek_dma_va, pBuf, nSize); + msgs[0].buf = (uint8_t *) ilitek_dma_pa; + } +#endif /* I2C_DMA */ + + /* + * NOTE: If TP driver is doing MP test and commanding 0xF1 to FW, + * we add a checksum to the last index and plus 1 with size. + */ + if (protocol->major >= 5 && protocol->mid >= 4) { + if (!core_config->icemodeenable && pBuf[0] == 0xF1 && + core_mp->run) { + check_sum = core_fr_calc_checksum(pBuf, nSize); + txbuf = + kcalloc(nSize + 1, sizeof(uint8_t), GFP_KERNEL); + if (ERR_ALLOC_MEM(txbuf)) { + ipio_err("Failed to allocate txbuf mem\n"); + res = -ENOMEM; + goto out; + } + memcpy(txbuf, pBuf, nSize); + txbuf[nSize] = check_sum; + msgs[0].buf = txbuf; + msgs[0].len = nSize + 1; + dump_data(txbuf, 8, nSize + 1, nSize + 1, "summer_i2c_dump"); + } + } + + if (i2c_transfer(core_i2c->client->adapter, msgs, 1) < 0) { + if (core_config->do_ic_reset) { + /* ignore i2c error if doing ic reset */ + res = 0; + } else { + res = -EIO; + ipio_err("I2C Write Error, res = %d\n", res); + goto out; + } + } + +out: + ipio_kfree((void **)&txbuf); + return res; +} +EXPORT_SYMBOL(core_i2c_write); + +int core_i2c_read(uint8_t nSlaveId, uint8_t *pBuf, uint16_t nSize) +{ + int res = 0; + + struct i2c_msg msgs[] = { + { + .addr = nSlaveId, + .flags = I2C_M_RD, /* read flag */ + .len = nSize, + .buf = pBuf, + }, + }; + +#ifdef I2C_DMA + ipio_debug(DEBUG_I2C, "DMA: size = %d\n", nSize); + if (nSize > 8) { + msgs[0].addr = (core_i2c->client->addr & I2C_MASK_FLAG); + msgs[0].ext_flag = + (core_i2c->client->ext_flag | I2C_ENEXT_FLAG | I2C_DMA_FLAG); + msgs[0].buf = (uint8_t *) ilitek_dma_pa; + } else { + msgs[0].buf = pBuf; + } +#endif /* I2C_DMA */ + + if (i2c_transfer(core_i2c->client->adapter, msgs, 1) < 0) { + res = -EIO; + ipio_err("I2C Read Error, res = %d\n", res); + goto out; + } +#ifdef I2C_DMA + if (nSize > 8) + memcpy(pBuf, ilitek_dma_va, nSize); + +#endif /* I2C_DMA */ + +out: + return res; +} +EXPORT_SYMBOL(core_i2c_read); + +int core_i2c_segmental_read(uint8_t nSlaveId, uint8_t *pBuf, uint16_t nSize) +{ + int res = 0; + int offset = 0; + + struct i2c_msg msgs[] = { + { + .addr = nSlaveId, + .flags = I2C_M_RD, + .len = nSize, +/* .buf = pBuf, */ + }, + }; + + while (nSize > 0) { + msgs[0].buf = &pBuf[offset]; + + if (nSize > core_i2c->seg_len) { + msgs[0].len = core_i2c->seg_len; + nSize -= core_i2c->seg_len; + offset += msgs[0].len; + } else { + msgs[0].len = nSize; + nSize = 0; + } + + ipio_debug(DEBUG_I2C, "Length = %d\n", msgs[0].len); + + if (i2c_transfer(core_i2c->client->adapter, msgs, 1) < 0) { + res = -EIO; + ipio_err("I2C Read Error, res = %d\n", res); + goto out; + } + } + +out: + return res; +} +EXPORT_SYMBOL(core_i2c_segmental_read); + +int core_i2c_init(struct i2c_client *client) +{ + int i; + + core_i2c = kmalloc(sizeof(*core_i2c), GFP_KERNEL); + if (ERR_ALLOC_MEM(core_i2c)) { + ipio_err("Failed to alllocate core_i2c mem %ld\n", + PTR_ERR(core_i2c)); + core_i2c_remove(); + return -ENOMEM; + } + + core_i2c->client = client; + core_i2c->seg_len = 256; /* length of segment */ + +#ifdef I2C_DMA + if (dma_alloc(core_i2c->client) < 0) { + ipio_err("Failed to alllocate DMA mem %ld\n", + PTR_ERR(core_i2c)); + return -ENOMEM; + } +#endif /* I2C_DMA */ + + for (i = 0 ; i < ARRAY_SIZE(ipio_chip_list); i++) { + if (ipio_chip_list[i] == ipd->chip_id) { + if (ipio_chip_list[i] == CHIP_TYPE_ILI7807) { + if (core_config->chip_type == ILI7807_TYPE_F_AA + && core_config->chip_type == ILI7807_TYPE_F_AB) + core_i2c->clk = 100000; + else + core_i2c->clk = 400000; + + } else if (ipio_chip_list[i] == CHIP_TYPE_ILI9881) { + core_i2c->clk = 400000; + } + + return 0; + } + } + + ipio_err("Can't find this chip in support list\n"); + return 0; +} +EXPORT_SYMBOL(core_i2c_init); + +void core_i2c_remove(void) +{ + ipio_info("Remove core-i2c members\n"); + +#ifdef I2C_DMA + dma_free(); +#endif /* I2C_DMA */ + + ipio_kfree((void **)&core_i2c); +} +EXPORT_SYMBOL(core_i2c_remove); diff --git a/drivers/input/touchscreen/ilitek_mmi/core/i2c.h b/drivers/input/touchscreen/ilitek_mmi/core/i2c.h new file mode 100644 index 000000000000..f98214b9b1ef --- /dev/null +++ b/drivers/input/touchscreen/ilitek_mmi/core/i2c.h @@ -0,0 +1,45 @@ +/* + * ILITEK Touch IC driver + * + * Copyright (C) 2011 ILI Technology Corporation. + * + * Author: Dicky Chiang + * Based on TDD v7.0 implemented by Mstar & ILITEK + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ + +#ifndef __I2C_H +#define __I2C_H + +struct core_i2c_data { + struct i2c_client *client; + int clk; + int seg_len; +}; + +extern struct core_i2c_data *core_i2c; + +extern int core_i2c_write(uint8_t nSlaveId, uint8_t *pBuf, uint16_t nSize); +extern int core_i2c_read(uint8_t nSlaveId, uint8_t *pBuf, uint16_t nSize); + +extern int core_i2c_segmental_read(uint8_t nSlaveId, uint8_t *pBuf +, uint16_t nSize); + +extern int core_i2c_init(struct i2c_client *client); +extern void core_i2c_remove(void); + +#endif diff --git a/drivers/input/touchscreen/ilitek_mmi/core/ilitek_fw.h b/drivers/input/touchscreen/ilitek_mmi/core/ilitek_fw.h new file mode 100644 index 000000000000..8eff50806aa1 --- /dev/null +++ b/drivers/input/touchscreen/ilitek_mmi/core/ilitek_fw.h @@ -0,0 +1,3 @@ +static unsigned char CTPM_FW[] = { + #include "FW_TDDI_9881H.ili" +}; diff --git a/drivers/input/touchscreen/ilitek_mmi/core/mp_test.c b/drivers/input/touchscreen/ilitek_mmi/core/mp_test.c new file mode 100644 index 000000000000..0b4cf9f7ccc1 --- /dev/null +++ b/drivers/input/touchscreen/ilitek_mmi/core/mp_test.c @@ -0,0 +1,2446 @@ +/* + * ILITEK Touch IC driver + * + * Copyright (C) 2011 ILI Technology Corporation. + * + * Author: Dicky Chiang + * Based on TDD v7.0 implemented by Mstar & ILITEK + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "../common.h" +#include "../platform.h" +#include "i2c.h" +#include "config.h" +#include "mp_test.h" +#include "protocol.h" +#include "parser.h" +#include "finger_report.h" + +#define EXEC_READ 0 +#define EXEC_WRITE 1 + +#define INT_CHECK 0 +#define POLL_CHECK 1 +#define DELAY_CHECK 2 +#define RETRY_COUNT 3 + +#define NORMAL_CSV_PASS_NAME "mp_pass" +#define NORMAL_CSV_FAIL_NAME "mp_fail" +#define OPPO_CSV_PASS_NAME "oppo_mp_pass" +#define OPPO_CSV_FAIL_NAME "oppo_mp_fail" +#define OPPO_CSV_LCM_PASS_NAME "oppo_mp_lcm_pass" +#define OPPO_CSV_LCM_FAIL_NAME "oppo_mp_lcm_fail" + +#define CSV_FILE_SIZE (500 * 1024) + +#define Mathabs(x) ({ \ + long ret; \ + if (sizeof(x) == sizeof(long)) { \ + long __x = (x); \ + ret = (__x < 0) ? -__x : __x; \ + } else { \ + int __x = (x); \ + ret = (__x < 0) ? -__x : __x; \ + } \ + ret; \ + }) + +#define DUMP(level, fmt, arg...) \ + do { \ + if (level & ipio_debug_level) \ + printk(fmt, ##arg); \ + } while (0) + +enum mp_test_catalog { + MUTUAL_TEST = 0, + SELF_TEST = 1, + KEY_TEST = 2, + ST_TEST = 3, + TX_RX_DELTA = 4, + UNTOUCH_P2P = 5, + PIXEL = 6, + OPEN_TEST = 7, + PEAK_TO_PEAK_TEST = 8, + SHORT_TEST = 9, +}; + +enum open_test_node_type { + NO_COMPARE = 0x00, /*Not A Area, No Compare */ + AA_Area = 0x01, /*AA Area, Compare using Charge_AA */ + Border_Area = 0x02, /*Border Area, Compare using Charge_Border */ + Notch = 0x04, /*Notch Area, Compare using Charge_Notch */ + Round_Corner = 0x08,/* Round Corner, No Compare */ + Skip_Micro = 0x10 /* Skip_Micro, No Compare */ +}; + +/* You must declare a new test in this struct before running a new process of mp test */ +struct mp_test_items tItems[] = { + {.name = "mutual_dac", .desp = "Calibration Data(DAC)", .result = "FAIL", .catalog = MUTUAL_TEST}, + {.name = "mutual_bg", .desp = "Baseline Data(BG)", .result = "FAIL", .catalog = MUTUAL_TEST}, + {.name = "mutual_signal", .desp = "Untouch Signal Data(BG-Raw-4096) - Mutual", .result = "FAIL", .catalog = MUTUAL_TEST}, + {.name = "mutual_no_bk", .desp = "Raw Data(No BK)", .result = "FAIL", .catalog = MUTUAL_TEST}, + {.name = "mutual_no_bk_lcm_off", .desp = "Raw Data(No BK) (LCM OFF)", .result = "FAIL", .catalog = MUTUAL_TEST}, + {.name = "mutual_has_bk", .desp = "Raw Data(Have BK)", .result = "FAIL", .catalog = MUTUAL_TEST}, + {.name = "mutual_has_bk_lcm_off", .desp = "Raw Data(Have BK) (LCM OFF)", .result = "FAIL", .catalog = MUTUAL_TEST}, + {.name = "mutual_bk_dac", .desp = "Manual BK Data(Mutual)", .result = "FAIL", .catalog = MUTUAL_TEST}, + + {.name = "self_dac", .desp = "Calibration Data(DAC) - Self", .result = "FAIL", .catalog = SELF_TEST}, + {.name = "self_bg", .desp = "Baselin Data(BG,Self_Tx,Self_Rx)", .result = "FAIL", .catalog = SELF_TEST}, + {.name = "self_signal", .desp = "Untouch Signal Data(BG–Raw-4096) - Self", .result = "FAIL", .catalog = SELF_TEST}, + {.name = "self_no_bk", .desp = "Raw Data(No BK) - Self", .result = "FAIL", .catalog = SELF_TEST}, + {.name = "self_has_bk", .desp = "Raw Data(Have BK) - Self", .result = "FAIL", .catalog = SELF_TEST}, + {.name = "self_bk_dac", .desp = "Manual BK DAC Data(Self_Tx,Self_Rx)", .result = "FAIL", .catalog = SELF_TEST}, + + {.name = "key_dac", .desp = "Calibration Data(DAC/ICON)", .result = "FAIL", .catalog = KEY_TEST}, + {.name = "key_bg", .desp = "Key Baseline Data", .result = "FAIL", .catalog = KEY_TEST}, + {.name = "key_no_bk", .desp = "Key Raw Data", .result = "FAIL", .catalog = KEY_TEST}, + {.name = "key_has_bk", .desp = "Key Raw BK DAC", .result = "FAIL", .catalog = KEY_TEST}, + {.name = "key_open", .desp = "Key Raw Open Test", .result = "FAIL", .catalog = KEY_TEST}, + {.name = "key_short", .desp = "Key Raw Short Test", .result = "FAIL", .catalog = KEY_TEST}, + + {.name = "st_dac", .desp = "ST Calibration Data(DAC)", .result = "FAIL", .catalog = ST_TEST}, + {.name = "st_bg", .desp = "ST Baseline Data(BG)", .result = "FAIL", .catalog = ST_TEST}, + {.name = "st_no_bk", .desp = "ST Raw Data(No BK)", .result = "FAIL", .catalog = ST_TEST}, + {.name = "st_has_bk", .desp = "ST Raw(Have BK)", .result = "FAIL", .catalog = ST_TEST}, + {.name = "st_open", .desp = "ST Open Data", .result = "FAIL", .catalog = ST_TEST}, + + {.name = "tx_short", .desp = "Tx Short Test", .result = "FAIL", .catalog = MUTUAL_TEST}, + {.name = "rx_short", .desp = "Short Test -ILI9881", .result = "FAIL", .catalog = SHORT_TEST}, + {.name = "rx_open", .desp = "RX Open", .result = "FAIL", .catalog = MUTUAL_TEST}, + + {.name = "cm_data", .desp = "Untouch Cm Data", .result = "FAIL", .catalog = MUTUAL_TEST}, + {.name = "cs_data", .desp = "Untouch Cs Data", .result = "FAIL", .catalog = MUTUAL_TEST}, + + {.name = "tx_rx_delta", .desp = "Tx/Rx Delta", .result = "FAIL", .catalog = TX_RX_DELTA}, + + {.name = "p2p", .desp = "Untouch Peak to Peak", .result = "FAIL", .catalog = UNTOUCH_P2P}, + + {.name = "pixel_no_bk", .desp = "Pixel Raw (No BK)", .result = "FAIL", .catalog = PIXEL}, + {.name = "pixel_has_bk", .desp = "Pixel Raw (Have BK)", .result = "FAIL", .catalog = PIXEL}, + + {.name = "open_integration", .desp = "Open Test(integration)", .result = "FAIL", .catalog = OPEN_TEST}, + {.name = "open_integration_sp", .desp = "Open Test(integration)_SP", .result = "FAIL", .catalog = OPEN_TEST}, + {.name = "open_cap", .desp = "Open Test(Cap)", .result = "FAIL", .catalog = OPEN_TEST}, + + {.name = "noise_peak_to_peak_ic", .desp = "Noise Peak to Peak(IC Only)", .result = "FAIL", .catalog = PEAK_TO_PEAK_TEST}, + {.name = "noise_peak_to_peak_panel", .desp = "Noise Peak To Peak(With Panel)", .result = "FAIL", .catalog = PEAK_TO_PEAK_TEST}, + {.name = "noise_peak_to_peak_ic_lcm_off", .desp = "Noise Peak to Peak(IC Only) (LCM OFF)", .result = "FAIL", .catalog = PEAK_TO_PEAK_TEST}, + {.name = "noise_peak_to_peak_panel_lcm_off", .desp = "Noise Peak to Peak(With Panel) (LCM OFF)", .result = "FAIL", .catalog = PEAK_TO_PEAK_TEST}, + + {.name = "doze_raw", .desp = "Doze Raw Data", .result = "FAIL", .catalog = MUTUAL_TEST}, + {.name = "doze_p2p", .desp = "Doze Peak To Peak", .result = "FAIL", .catalog = PEAK_TO_PEAK_TEST}, + {.name = "doze_raw_td_lcm_off", .desp = "Raw Data_TD (LCM OFF)", .result = "FAIL", .catalog = MUTUAL_TEST}, + {.name = "doze_p2p_td_lcm_off", .desp = "Peak To Peak_TD (LCM OFF)", .result = "FAIL", .catalog = PEAK_TO_PEAK_TEST}, +}; + +int32_t *frame_buf; +int32_t *key_buf; +int32_t *frame1_cbk700 = NULL, *frame1_cbk250 = NULL, *frame1_cbk200 = NULL; +struct core_mp_test_data *core_mp; + +void dump_data(void *data, int type, int len, int row_len, const char *name) +{ + int i, row = 31; + uint8_t *p8 = NULL; + int32_t *p32 = NULL; + + if (row_len > 0) + row = row_len; + + if (ipio_debug_level & DEBUG_MP_TEST) { + if (data == NULL) { + ipio_err("The data going to dump is NULL\n"); + return; + } + + printk("\n\n"); + printk("Dump %s data\n", name); + + if (type == 8) + p8 = (uint8_t *) data; + if (type == 32 || type == 10) + p32 = (int32_t *) data; + + for (i = 0 ; i < len ; i++) { + if (type == 8) + printk(" %4x ", p8[i]); + else if (type == 32) + printk(" %4x ", p32[i]); + else if (type == 10) + printk(" %4d ", p32[i]); + if ((i % row) == row-1) + printk("\n"); + } + printk("\n\n"); + } +} +EXPORT_SYMBOL(dump_data); + +static void dump_benchmark_data(int32_t *max_ptr, int32_t *min_ptr) +{ + int i; + + if (ipio_debug_level & DEBUG_MP_TEST) { + ipio_info("benchmark max\n"); + + for (i = 0 ; i < core_mp->frame_len ; i++) { + printk("%d, ", max_ptr[i]); + if (i % core_mp->xch_len == core_mp->xch_len - 1) + printk("\n"); + } + + ipio_info("benchmark min\n"); + + for (i = 0 ; i < core_mp->frame_len ; i++) { + printk("%d, ", min_ptr[i]); + if (i % core_mp->xch_len == core_mp->xch_len - 1) + printk("\n"); + } + } +} + +void dump_node_type_buffer(int32_t *node_ptr, uint8_t *name) +{ + int i; + + if (ipio_debug_level & DEBUG_MP_TEST) { + ipio_info("Node Type buffer: %s\n", name); + for (i = 0 ; i < core_mp->frame_len ; i++) { + printk("%d, ", node_ptr[i]); + if (i % core_mp->xch_len == core_mp->xch_len-1) + printk("\n"); + } + } + +} + +static void mp_compare_cdc_result(int32_t *tmp, int32_t *max_ts, int32_t *min_ts, int *result) +{ + int x, y; + + if (ERR_ALLOC_MEM(tmp)) { + ipio_err("The data of test item is null (%p)\n", tmp); + *result = MP_FAIL; + return; + } + + for (y = 0 ; y < core_mp->ych_len ; y++) { + for (x = 0 ; x < core_mp->xch_len ; x++) { + int shift = y * core_mp->xch_len + x; + if (tmp[shift] > max_ts[shift] || tmp[shift] < min_ts[shift]) { + *result = MP_FAIL; + } + } + } +} + + +static void mp_compare_cdc_show_result(int32_t *tmp, char *csv, int *csv_len, int type, int32_t *max_ts, int32_t *min_ts, const char *desp) +{ + int x, y, tmp_len = *csv_len; + int mp_result = MP_PASS; + + if (ERR_ALLOC_MEM(tmp)) { + ipio_err("The data of test item is null (%p)\n", tmp); + mp_result = MP_FAIL; + goto out; + } + + /* print X raw only */ + for (x = 0 ; x < core_mp->xch_len ; x++) { + if (x == 0) { + DUMP(DEBUG_MP_TEST, "\n %s ", desp); + tmp_len += snprintf(csv + tmp_len, (CSV_FILE_SIZE-tmp_len), "\n %s ,", desp); + } + + DUMP(DEBUG_MP_TEST, " X_%d ,", (x+1)); + tmp_len += snprintf(csv + tmp_len, (CSV_FILE_SIZE-tmp_len), " X_%d ,", (x+1)); + } + + DUMP(DEBUG_MP_TEST, "\n"); + tmp_len += snprintf(csv + tmp_len, (CSV_FILE_SIZE-tmp_len), "\n"); + + for (y = 0 ; y < core_mp->ych_len ; y++) { + DUMP(DEBUG_MP_TEST, " Y_%d ,", (y+1)); + tmp_len += snprintf(csv + tmp_len, (CSV_FILE_SIZE-tmp_len), " Y_%d ,", (y+1)); + + for (x = 0 ; x < core_mp->xch_len ; x++) { + int shift = y * core_mp->xch_len + x; + + if ((tmp[shift] <= max_ts[shift] && tmp[shift] >= min_ts[shift]) || (type != TYPE_JUGE)) { + + if ((tmp[shift] == INT_MAX || tmp[shift] == INT_MIN) && (type == TYPE_BENCHMARK)) { + DUMP(DEBUG_MP_TEST, "%s", "BYPASS,"); + tmp_len += snprintf(csv + tmp_len, (CSV_FILE_SIZE-tmp_len), "BYPASS,"); + } else { + DUMP(DEBUG_MP_TEST, " %7d ", tmp[shift]); + tmp_len += snprintf(csv + tmp_len, (CSV_FILE_SIZE-tmp_len), " %7d, ", tmp[shift]); + } + } else { + if (tmp[shift] > max_ts[shift]) { + DUMP(DEBUG_MP_TEST, " *%7d ", tmp[shift]); + tmp_len += snprintf(csv + tmp_len, (CSV_FILE_SIZE-tmp_len), "*%7d,", tmp[shift]); + } else { + DUMP(DEBUG_MP_TEST, " #%7d ", tmp[shift]); + tmp_len += snprintf(csv + tmp_len, (CSV_FILE_SIZE-tmp_len), "#%7d,", tmp[shift]); + } + mp_result = MP_FAIL; + } + } + + DUMP(DEBUG_MP_TEST, "\n"); + tmp_len += snprintf(csv + tmp_len, (CSV_FILE_SIZE-tmp_len), "\n"); + } + +out: + if (type == TYPE_JUGE) { + if (mp_result == MP_PASS) { + pr_info("\n Result : PASS\n"); + tmp_len += snprintf(csv + tmp_len, (CSV_FILE_SIZE-tmp_len), "Result : PASS\n"); + } else { + pr_info("\n Result : FAIL\n"); + tmp_len += snprintf(csv + tmp_len, (CSV_FILE_SIZE-tmp_len), "Result : FAIL\n"); + } + } + + *csv_len = tmp_len; +} + +static int create_mp_test_frame_buffer(int index, int frame_count) +{ + //this item aready created buffer + if (tItems[index].test_count != 0) + return 0; + + ipio_debug(DEBUG_MP_TEST, "Create MP frame buffers (index = %d), count = %d\n", index, frame_count); + + if (tItems[index].catalog == TX_RX_DELTA) { + core_mp->tx_delta_buf = kcalloc(core_mp->frame_len, sizeof(int32_t), GFP_KERNEL); + core_mp->rx_delta_buf = kcalloc(core_mp->frame_len, sizeof(int32_t), GFP_KERNEL); + + core_mp->tx_max_buf = kcalloc(core_mp->frame_len, sizeof(int32_t), GFP_KERNEL); + core_mp->tx_min_buf = kcalloc(core_mp->frame_len, sizeof(int32_t), GFP_KERNEL); + + core_mp->rx_max_buf = kcalloc(core_mp->frame_len, sizeof(int32_t), GFP_KERNEL); + core_mp->rx_min_buf = kcalloc(core_mp->frame_len, sizeof(int32_t), GFP_KERNEL); + + if (ERR_ALLOC_MEM(core_mp->tx_delta_buf) || ERR_ALLOC_MEM(core_mp->rx_delta_buf)) { + ipio_err("Failed to allocate Tx/Rx Delta buffer\n"); + return -ENOMEM; + } + + if (ERR_ALLOC_MEM(core_mp->tx_max_buf) || ERR_ALLOC_MEM(core_mp->tx_min_buf)) { + ipio_err("Failed to allocate Tx Max/Min buffer\n"); + return -ENOMEM; + } + + if (ERR_ALLOC_MEM(core_mp->rx_max_buf) || ERR_ALLOC_MEM(core_mp->rx_min_buf)) { + ipio_err("Failed to allocate Rx Max/Min buffe\n"); + return -ENOMEM; + } + + } else { + tItems[index].buf = vmalloc(frame_count * core_mp->frame_len * sizeof(int32_t)); + tItems[index].result_buf = kcalloc(core_mp->frame_len, sizeof(int32_t), GFP_KERNEL); + tItems[index].max_buf = kcalloc(core_mp->frame_len, sizeof(int32_t), GFP_KERNEL); + tItems[index].min_buf = kcalloc(core_mp->frame_len, sizeof(int32_t), GFP_KERNEL); + + if (tItems[index].spec_option == BENCHMARK) { + tItems[index].bench_mark_max = kcalloc(core_mp->frame_len, sizeof(int32_t), GFP_KERNEL); + tItems[index].bench_mark_min = kcalloc(core_mp->frame_len, sizeof(int32_t), GFP_KERNEL); + + if (ERR_ALLOC_MEM(tItems[index].bench_mark_max) || ERR_ALLOC_MEM(tItems[index].bench_mark_min)) { + ipio_err("Failed to allocate bench_mark FRAME buffer\n"); + return -ENOMEM; + } + } + if (ERR_ALLOC_MEM(tItems[index].buf) || ERR_ALLOC_MEM(tItems[index].max_buf) || + ERR_ALLOC_MEM(tItems[index].min_buf) || ERR_ALLOC_MEM(tItems[index].result_buf)) { + ipio_err("Failed to allocate FRAME buffer\n"); + return -ENOMEM; + } + } + + return 0; +} + +int core_mp_ctrl_lcm_status(bool on) +{ + int ret = 0, ctrl = 0, delay = 0; + uint8_t lcd[15] = {0}; + uint8_t header = 0x0F; + + memset(&lcd, 0xFF, ARRAY_SIZE(lcd)); + + ctrl = ((on) ? 1 : 2); + delay = ((on) ? 100 : 10); + + lcd[0] = header; + lcd[1] = protocol->mutual_bg; + lcd[2] = 0; + lcd[3] = ctrl; + + dump_data(lcd, 8, ARRAY_SIZE(lcd), 0, "LCM Command"); + + ret = core_write(core_config->slave_i2c_addr, lcd, ARRAY_SIZE(lcd)); + if (ret < 0) { + ipio_err("Failed to write LCM command\n"); + goto out; + } + + mdelay(delay); + +out: + return ret; +} +EXPORT_SYMBOL(core_mp_ctrl_lcm_status); + +static void mp_calc_nodp(bool long_v) +{ + uint8_t at, phase; + uint8_t r2d, rst, rst_back, dac_td, qsh_pw, qsh_td, dn; + uint16_t tshd, tsvd_to_tshd, qsh_tdf, dp2tp, twc, twcm, tp2dp; + uint16_t multi_term_num, tp_tsdh_wait, ddi_width; + uint32_t real_tx_dura, tmp, tmp1; + + ipio_info("DDI Mode = %d\n", long_v); + + tshd = core_mp->nodp.tshd; + tsvd_to_tshd = core_mp->nodp.tsvd_to_tshd; + multi_term_num = core_mp->nodp.multi_term_num_120; + qsh_tdf = core_mp->nodp.qsh_tdf; + at = core_mp->nodp.auto_trim; + tp_tsdh_wait = core_mp->nodp.tp_tshd_wait_120; + ddi_width = core_mp->nodp.ddi_width_120; + dp2tp = core_mp->nodp.dp_to_tp; + twc = core_mp->nodp.tx_wait_const; + twcm = core_mp->nodp.tx_wait_const_multi; + tp2dp = core_mp->nodp.tp_to_dp; + phase = core_mp->nodp.phase_adc; + r2d = core_mp->nodp.r2d_pw; + rst = core_mp->nodp.rst_pw; + rst_back = core_mp->nodp.rst_pw_back; + dac_td = core_mp->nodp.dac_td; + qsh_pw = core_mp->nodp.qsh_pw; + qsh_td = core_mp->nodp.qsh_td; + dn = core_mp->nodp.drop_nodp; + + /* NODP formulation */ + if (!long_v) { + if (core_mp->nodp.is60HZ) { + multi_term_num = core_mp->nodp.multi_term_num_60; + tp_tsdh_wait = core_mp->nodp.tp_tshd_wait_60; + ddi_width = core_mp->nodp.ddi_width_60; + } + + if (multi_term_num == 0) + multi_term_num = 1; + + tmp = ((tshd << 2) - (at << 6) - tp_tsdh_wait - ddi_width * (multi_term_num - 1) - 64 - dp2tp - twc) * 5; + tmp1 = (phase << 5) - ((twcm * 5 + (phase << 5) + (tp2dp * 5 << 6)) * (multi_term_num - 1)); + real_tx_dura = (tmp - tmp1) / (multi_term_num * 5); + + core_mp->nodp.first_tp_width = (dp2tp * 5 + twc * 5 + (phase << 5) + real_tx_dura * 5) / 5; + core_mp->nodp.tp_width = (((tp2dp * 10 + phase) << 6) + real_tx_dura * 10) / 10; + core_mp->nodp.txpw = (qsh_tdf + rst + qsh_pw + qsh_td + 2); + + if (core_mp->nodp.txpw % 2 == 1) + core_mp->nodp.txpw = core_mp->nodp.txpw + 1; + + core_mp->nodp.nodp = real_tx_dura / core_mp->nodp.txpw / 2; + } else { + if (multi_term_num == 0) + multi_term_num = 1; + + real_tx_dura = (((tshd << 2) - (at << 6) - ddi_width * (11) - 64 - dp2tp - twc) * 5 - (phase << 5) - ((twcm * 5 + (phase << 5) + (tp2dp * 5 << 6)) * (11))) / (12 * 5); + + core_mp->nodp.long_tsdh_wait = (tsvd_to_tshd + 10) << 6; + + core_mp->nodp.first_tp_width = (dp2tp * 5 + twc * 5 + (phase << 5) + real_tx_dura * 5) / 5; + core_mp->nodp.tp_width = (((tp2dp * 10 + phase) << 6) + real_tx_dura * 10) / 10; + core_mp->nodp.txpw = (qsh_tdf + rst + qsh_pw + qsh_td + 2); + + if (core_mp->nodp.txpw % 2 == 1) + core_mp->nodp.txpw = core_mp->nodp.txpw + 1; + + core_mp->nodp.nodp = real_tx_dura / core_mp->nodp.txpw / 2; + } + + ipio_info("Read Tx Duration = %d\n", real_tx_dura); + ipio_info("First TP Width = %d\n", core_mp->nodp.first_tp_width); + ipio_info("TP Width = %d\n", core_mp->nodp.tp_width); + ipio_info("TXPW = %d\n", core_mp->nodp.txpw); + ipio_info("NODP = %d\n", core_mp->nodp.nodp); +} + +static int allnode_key_cdc_data(int index) +{ + int i, res = 0, len = 0; + int inDACp = 0, inDACn = 0; + uint8_t cmd[3] = { 0 }; + uint8_t *ori = NULL; + + len = core_mp->key_len * 2; + + ipio_debug(DEBUG_MP_TEST, "Read key's length = %d\n", len); + ipio_debug(DEBUG_MP_TEST, "core_mp->key_len = %d\n", core_mp->key_len); + + if (len <= 0) { + ipio_err("Length is invalid\n"); + res = ERROR; + goto out; + } + + /* CDC init */ + cmd[0] = protocol->cmd_cdc; + cmd[1] = tItems[index].cmd; + cmd[2] = 0; + + res = core_write(core_config->slave_i2c_addr, cmd, 3); + if (res < 0) { + ipio_err("I2C Write Error while initialising cdc\n"); + goto out; + } + + mdelay(1); + + /* Check busy */ + if (core_config_check_cdc_busy(50, 50) < 0) { + ipio_err("Check busy is timout !\n"); + res = ERROR; + goto out; + } + + mdelay(1); + + /* Prepare to get cdc data */ + cmd[0] = protocol->cmd_read_ctrl; + cmd[1] = protocol->cmd_get_cdc; + + res = core_write(core_config->slave_i2c_addr, cmd, 2); + if (res < 0) { + ipio_err("I2C Write Error\n"); + goto out; + } + + mdelay(1); + + res = core_write(core_config->slave_i2c_addr, &cmd[1], 1); + if (res < 0) { + ipio_err("I2C Write Error\n"); + goto out; + } + + /* Allocate a buffer for the original */ + ori = kcalloc(len, sizeof(uint8_t), GFP_KERNEL); + if (ERR_ALLOC_MEM(ori)) { + ipio_err("Failed to allocate ori mem (%ld)\n", PTR_ERR(ori)); + goto out; + } + + mdelay(1); + + /* Get original frame(cdc) data */ + res = core_read(core_config->slave_i2c_addr, ori, len); + if (res < 0) { + ipio_err("I2C Read Error while getting original cdc data\n"); + goto out; + } + + dump_data(ori, 8, len, 0, "Key CDC original"); + + if (key_buf == NULL) { + key_buf = kcalloc(core_mp->key_len, sizeof(int32_t), GFP_KERNEL); + if (ERR_ALLOC_MEM(key_buf)) { + ipio_err("Failed to allocate FrameBuffer mem (%ld)\n", PTR_ERR(key_buf)); + goto out; + } + } else { + memset(key_buf, 0x0, core_mp->key_len); + } + + /* Convert original data to the physical one in each node */ + for (i = 0 ; i < core_mp->frame_len ; i++) { + if (tItems[index].cmd == protocol->key_dac) { + /* DAC - P */ + if (((ori[(2 * i) + 1] & 0x80) >> 7) == 1) { + /* Negative */ + inDACp = 0 - (int)(ori[(2 * i) + 1] & 0x7F); + } else { + inDACp = ori[(2 * i) + 1] & 0x7F; + } + + /* DAC - N */ + if (((ori[(1 + (2 * i)) + 1] & 0x80) >> 7) == 1) { + /* Negative */ + inDACn = 0 - (int)(ori[(1 + (2 * i)) + 1] & 0x7F); + } else { + inDACn = ori[(1 + (2 * i)) + 1] & 0x7F; + } + + key_buf[i] = (inDACp + inDACn) / 2; + } + } + + dump_data(key_buf, 32, core_mp->frame_len, core_mp->xch_len, "Key CDC combined data"); + +out: + ipio_kfree((void **)&ori); + return res; +} + +int core_mp_calc_timing_nodp(void) +{ + int ret = 0; + uint8_t test_type = 0x0; + uint8_t timing_cmd[15] = {0}; + uint8_t get_timing[64] = {0}; + + if (ERR_ALLOC_MEM(core_mp)) { + ipio_err("core_mp is NULL\n"); + return -ENOMEM; + } + + memset(timing_cmd, 0xFF, sizeof(timing_cmd)); + + timing_cmd[0] = protocol->cmd_cdc; + timing_cmd[1] = protocol->get_timing; + timing_cmd[2] = test_type; + + /* + * To calculate NODP, we need to get timing parameters first from fw, + * which returnes 40 bytes data. + */ + dump_data(timing_cmd, 8, sizeof(timing_cmd), 0, "Timing command"); + + ret = core_write(core_config->slave_i2c_addr, timing_cmd, sizeof(timing_cmd)); + if (ret < 0) { + ipio_err("Failed to write timing command\n"); + goto out; + } + + ret = core_read(core_config->slave_i2c_addr, get_timing, sizeof(get_timing)); + if (ret < 0) { + ipio_err("Failed to read timing parameters\n"); + goto out; + } + + dump_data(get_timing, 8, 41, 0, "Timing parameters (41bytes)"); + + /* Combine timing data */ + core_mp->nodp.is60HZ = false; // This will get from ini file by default. + core_mp->nodp.isLongV = get_timing[2]; + core_mp->nodp.tshd = (get_timing[3] << 8) + get_timing[4]; + core_mp->nodp.multi_term_num_120 = get_timing[5]; + core_mp->nodp.multi_term_num_60 = get_timing[6]; + core_mp->nodp.tsvd_to_tshd = (get_timing[7] << 8) + get_timing[8]; + core_mp->nodp.qsh_tdf = (get_timing[9] << 8) + get_timing[10]; + core_mp->nodp.auto_trim = get_timing[11]; + core_mp->nodp.tp_tshd_wait_120 = (get_timing[12] << 8) + get_timing[13]; + core_mp->nodp.ddi_width_120 = (get_timing[14] << 8) + get_timing[15]; + core_mp->nodp.tp_tshd_wait_60 = (get_timing[16] << 8) + get_timing[17]; + core_mp->nodp.ddi_width_60 = (get_timing[18] << 8) + get_timing[19]; + core_mp->nodp.dp_to_tp = (get_timing[20] << 8) + get_timing[21]; + core_mp->nodp.tx_wait_const = (get_timing[22] << 8) + get_timing[23]; + core_mp->nodp.tx_wait_const_multi = (get_timing[24] << 8) + get_timing[25]; + core_mp->nodp.tp_to_dp = (get_timing[26] << 8) + get_timing[27]; + core_mp->nodp.phase_adc = get_timing[28]; + core_mp->nodp.r2d_pw = get_timing[29]; + core_mp->nodp.rst_pw = get_timing[30]; + core_mp->nodp.rst_pw_back = get_timing[31]; + core_mp->nodp.dac_td = get_timing[32]; + core_mp->nodp.qsh_pw = get_timing[33]; + core_mp->nodp.qsh_td = get_timing[34]; + core_mp->nodp.drop_nodp = get_timing[35]; + + ipio_info("60HZ = %d\n", core_mp->nodp.is60HZ); + ipio_info("DDI Mode = %d\n", core_mp->nodp.isLongV); + ipio_info("TSHD = %d\n", core_mp->nodp.tshd); + ipio_info("Multi Term Num (120Hz) = %d\n", core_mp->nodp.multi_term_num_120); + ipio_info("Multi Term Num (60Hz) = %d\n", core_mp->nodp.multi_term_num_60); + ipio_info("TSVD to TSHD = %d\n", core_mp->nodp.tsvd_to_tshd); + ipio_info("QSH TDF = %d\n", core_mp->nodp.qsh_tdf); + ipio_info("AutoTrim Variation = %d\n", core_mp->nodp.auto_trim); + ipio_info("TP TSHD Wait (120Hz) = %d\n", core_mp->nodp.tp_tshd_wait_120); + ipio_info("DDI Width (120Hz) = %d\n", core_mp->nodp.ddi_width_120); + ipio_info("TP TSHD Wait (60Hz) = %d\n", core_mp->nodp.tp_tshd_wait_60); + ipio_info("DDI Width (60Hz) = %d\n", core_mp->nodp.ddi_width_60); + ipio_info("DP to TP = %d\n", core_mp->nodp.dp_to_tp); + ipio_info("TX Wait Const = %d\n", core_mp->nodp.tx_wait_const); + ipio_info("TX Wait Const Multi = %d\n", core_mp->nodp.tx_wait_const_multi); + ipio_info("TP to DP = %d\n", core_mp->nodp.tp_to_dp); + ipio_info("Phase ADC = %d\n", core_mp->nodp.phase_adc); + ipio_info("R2D PW = %d\n", core_mp->nodp.r2d_pw); + ipio_info("RST PW = %d\n", core_mp->nodp.rst_pw); + ipio_info("RST PW Back = %d\n", core_mp->nodp.rst_pw_back); + ipio_info("DAC TD = %d\n", core_mp->nodp.dac_td); + ipio_info("QSH PW = %d\n", core_mp->nodp.qsh_pw); + ipio_info("QSH TD = %d\n", core_mp->nodp.qsh_td); + ipio_info("Drop NODP Num = %d\n", core_mp->nodp.drop_nodp); + + mp_calc_nodp(core_mp->nodp.isLongV); + +out: + return ret; +} +EXPORT_SYMBOL(core_mp_calc_timing_nodp); + +static int mp_cdc_get_pv5_4_command(uint8_t *cmd, int len, int index) +{ + int ret = 0; + char str[128] = {0}; + char tmp[128] = {0}; + char *key = tItems[index].desp; + + if (strncmp(key, "Raw Data_TD (LCM OFF)", strlen(key)) == 0) + key = "Doze Raw Data"; + else if (strncmp(key, "Peak To Peak_TD (LCM OFF)", strlen(key)) == 0) + key = "Doze Peak To Peak"; + else if (strncmp(key, "Raw Data(No BK) (LCM OFF)", strlen(key)) == 0) + key = "Raw Data(No BK)"; + else if (strncmp(key, "Raw Data(Have BK) (LCM OFF)", strlen(key)) == 0) + key = "Raw Data(Have BK)"; + else if (strncmp(key, "Noise Peak to Peak(With Panel) (LCM OFF)", strlen(key)) == 0) + key = "Noise Peak To Peak(With Panel)"; + + ipio_info("%s gets %s command from INI.\n", tItems[index].desp, key); + + ret = core_parser_get_int_data("PV5_4 Command", key, str); + if (ret < 0) { + ipio_err("Failed to parse PV54 command, ret = %d\n", ret); + goto out; + } + + strlcpy(tmp, str, sizeof(tmp)); + core_parser_get_u8_array(tmp, cmd); + +out: + return ret; +} + +static int mp_cdc_init_cmd_common(uint8_t *cmd, int len, int index) +{ + int ret = 0; + + if (protocol->major >= 5 && protocol->mid >= 4) { + ipio_info("Get CDC command with protocol v5.4\n"); + protocol->cdc_len = 15; + return mp_cdc_get_pv5_4_command(cmd, len, index); + } + + cmd[0] = protocol->cmd_cdc; + cmd[1] = tItems[index].cmd; + cmd[2] = 0; + + protocol->cdc_len = 3; + + if (strcmp(tItems[index].name, "open_integration") == 0) + cmd[2] = 0x2; + if (strcmp(tItems[index].name, "open_cap") == 0) + cmd[2] = 0x3; + + if (tItems[index].catalog == PEAK_TO_PEAK_TEST) { + cmd[2] = ((tItems[index].frame_count & 0xff00) >> 8); + cmd[3] = tItems[index].frame_count & 0xff; + cmd[4] = 0; + + protocol->cdc_len = 5; + + if (strcmp(tItems[index].name, "noise_peak_to_peak_cut") == 0) + cmd[4] = 0x1; + + ipio_debug(DEBUG_MP_TEST, "P2P CMD: %d,%d,%d,%d,%d\n", + cmd[0], cmd[1], cmd[2], cmd[3], cmd[4]); + } + + return ret; +} + +static int allnode_mutual_cdc_data(int index) +{ + static int i, res, len; + int inDACp = 0, inDACn = 0; + static uint8_t cmd[15] = {0}; + uint8_t *ori = NULL; + + /* Multipling by 2 is due to the 16 bit in each node */ + len = (core_mp->xch_len * core_mp->ych_len * 2) + 2; + + ipio_debug(DEBUG_MP_TEST, "Read X/Y Channel length = %d\n", len); + ipio_debug(DEBUG_MP_TEST, "core_mp->frame_len = %d\n", core_mp->frame_len); + + if (len <= 2) { + ipio_err("Length is invalid\n"); + res = ERROR; + goto out; + } + + memset(cmd, 0xFF, protocol->cdc_len); + + /* CDC init */ + mp_cdc_init_cmd_common(cmd, protocol->cdc_len, index); + + dump_data(cmd, 8, protocol->cdc_len, 0, "Mutual CDC command"); + + res = core_write(core_config->slave_i2c_addr, cmd, protocol->cdc_len); + if (res < 0) { + ipio_err("I2C Write Error while initialising cdc\n"); + goto out; + } + + /* Check busy */ + ipio_info("Check busy method = %d\n", core_mp->busy_cdc); + if (core_mp->busy_cdc == POLL_CHECK) { + res = core_config_check_cdc_busy(50, 50); + } else if (core_mp->busy_cdc == INT_CHECK) { + res = core_config_check_int_status(true); + } else if (core_mp->busy_cdc == DELAY_CHECK) { + mdelay(600); + } + + if (res < 0) { + ipio_err("Check busy timeout !\n"); + res = ERROR; + goto out; + } + + /* Prepare to get cdc data */ + cmd[0] = protocol->cmd_read_ctrl; + cmd[1] = protocol->cmd_get_cdc; + + res = core_write(core_config->slave_i2c_addr, cmd, 2); + if (res < 0) { + ipio_err("I2C Write Error\n"); + goto out; + } + + mdelay(1); + + res = core_write(core_config->slave_i2c_addr, &cmd[1], 1); + if (res < 0) { + ipio_err("I2C Write Error\n"); + goto out; + } + + mdelay(1); + + /* Allocate a buffer for the original */ + ori = kcalloc(len, sizeof(uint8_t), GFP_KERNEL); + if (ERR_ALLOC_MEM(ori)) { + ipio_err("Failed to allocate ori mem (%ld)\n", PTR_ERR(ori)); + goto out; + } + + /* Get original frame(cdc) data */ + res = core_read(core_config->slave_i2c_addr, ori, len); + if (res < 0) { + ipio_err("I2C Read Error while getting original cdc data\n"); + goto out; + } + + dump_data(ori, 8, len, 0, "Mutual CDC original"); + + if (frame_buf == NULL) { + frame_buf = kcalloc(core_mp->frame_len, sizeof(int32_t), GFP_KERNEL); + if (ERR_ALLOC_MEM(frame_buf)) { + ipio_err("Failed to allocate FrameBuffer mem (%ld)\n", PTR_ERR(frame_buf)); + goto out; + } + } else { + memset(frame_buf, 0x0, core_mp->frame_len); + } + + /* Convert original data to the physical one in each node */ + for (i = 0 ; i < core_mp->frame_len ; i++) { + if (tItems[index].cmd == protocol->mutual_dac) { + /* DAC - P */ + if (((ori[(2 * i) + 1] & 0x80) >> 7) == 1) { + /* Negative */ + inDACp = 0 - (int)(ori[(2 * i) + 1] & 0x7F); + } else { + inDACp = ori[(2 * i) + 1] & 0x7F; + } + + /* DAC - N */ + if (((ori[(1 + (2 * i)) + 1] & 0x80) >> 7) == 1) { + /* Negative */ + inDACn = 0 - (int)(ori[(1 + (2 * i)) + 1] & 0x7F); + } else { + inDACn = ori[(1 + (2 * i)) + 1] & 0x7F; + } + + frame_buf[i] = (inDACp + inDACn) / 2; + } else { + /* H byte + L byte */ + int32_t tmp = (ori[(2 * i) + 1] << 8) + ori[(1 + (2 * i)) + 1]; + + if ((tmp & 0x8000) == 0x8000) + frame_buf[i] = tmp - 65536; + else + frame_buf[i] = tmp; + + if (strncmp(tItems[index].name, "mutual_no_bk", strlen("mutual_no_bk")) == 0 || + strncmp(tItems[index].name, "mutual_no_bk_lcm_off", strlen("mutual_no_bk_lcm_off")) == 0) { + if (core_config->chip_id == CHIP_TYPE_ILI9881) { + if (core_config->chip_type == ILI9881_TYPE_H) + frame_buf[i] -= RAWDATA_NO_BK_DATA_SHIFT_9881H; + if (core_config->chip_type == ILI9881_TYPE_F) + frame_buf[i] -= RAWDATA_NO_BK_DATA_SHIFT_9881F; + } + } + } + } + + dump_data(frame_buf, 32, core_mp->frame_len, core_mp->xch_len, "Mutual CDC combined"); + +out: + ipio_kfree((void **)&ori); + return res; +} + +static void run_pixel_test(int index) +{ + int i, x, y; + int32_t *p_comb = frame_buf; + + for (y = 0 ; y < core_mp->ych_len ; y++) { + for (x = 0 ; x < core_mp->xch_len ; x++) { + int tmp[4] = { 0 }, max = 0; + int shift = y * core_mp->xch_len; + int centre = p_comb[shift + x]; + + /* if its position is in corner, the number of point + we have to minus is around 2 to 3. */ + if (y == 0 && x == 0) { + tmp[0] = Mathabs(centre - p_comb[(shift + 1) + x]); /* down */ + tmp[1] = Mathabs(centre - p_comb[shift + (x + 1)]); /* right */ + } else if (y == (core_mp->ych_len - 1) && x == 0) { + tmp[0] = Mathabs(centre - p_comb[(shift - 1) + x]); /* up */ + tmp[1] = Mathabs(centre - p_comb[shift + (x + 1)]); /* right */ + } else if (y == 0 && x == (core_mp->xch_len - 1)) { + tmp[0] = Mathabs(centre - p_comb[(shift + 1) + x]); /* down */ + tmp[1] = Mathabs(centre - p_comb[shift + (x - 1)]); /* left */ + } else if (y == (core_mp->ych_len - 1) && x == (core_mp->xch_len - 1)) { + tmp[0] = Mathabs(centre - p_comb[(shift - 1) + x]); /* up */ + tmp[1] = Mathabs(centre - p_comb[shift + (x - 1)]); /* left */ + } else if (y == 0 && x != 0) { + tmp[0] = Mathabs(centre - p_comb[(shift + 1) + x]); /* down */ + tmp[1] = Mathabs(centre - p_comb[shift + (x - 1)]); /* left */ + tmp[2] = Mathabs(centre - p_comb[shift + (x + 1)]); /* right */ + } else if (y != 0 && x == 0) { + tmp[0] = Mathabs(centre - p_comb[(shift - 1) + x]); /* up */ + tmp[1] = Mathabs(centre - p_comb[shift + (x + 1)]); /* right */ + tmp[2] = Mathabs(centre - p_comb[(shift + 1) + x]); /* down */ + + } else if (y == (core_mp->ych_len - 1) && x != 0) { + tmp[0] = Mathabs(centre - p_comb[(shift - 1) + x]); /* up */ + tmp[1] = Mathabs(centre - p_comb[shift + (x - 1)]); /* left */ + tmp[2] = Mathabs(centre - p_comb[shift + (x + 1)]); /* right */ + } else if (y != 0 && x == (core_mp->xch_len - 1)) { + tmp[0] = Mathabs(centre - p_comb[(shift - 1) + x]); /* up */ + tmp[1] = Mathabs(centre - p_comb[shift + (x - 1)]); /* left */ + tmp[2] = Mathabs(centre - p_comb[(shift + 1) + x]); /* down */ + } else { + /* middle minus four directions */ + tmp[0] = Mathabs(centre - p_comb[(shift - 1) + x]); /* up */ + tmp[1] = Mathabs(centre - p_comb[(shift + 1) + x]); /* down */ + tmp[2] = Mathabs(centre - p_comb[shift + (x - 1)]); /* left */ + tmp[3] = Mathabs(centre - p_comb[shift + (x + 1)]); /* right */ + } + + max = tmp[0]; + + for (i = 0; i < 4; i++) { + if (tmp[i] > max) + max = tmp[i]; + } + + tItems[index].buf[shift + x] = max; + } + } +} + +static int run_open_test(int index) +{ + int i, x, y, k, res = 0; + int border_x[] = {-1, 0, 1, 1, 1, 0, -1, -1}; + int border_y[] = {-1, -1, -1, 0, 1, 1, 1, 0}; + int32_t *p_comb = frame_buf; + + if (strcmp(tItems[index].name, "open_integration") == 0) { + for (i = 0 ; i < core_mp->frame_len ; i++) + tItems[index].buf[i] = p_comb[i]; + } else if (strcmp(tItems[index].name, "open_cap") == 0) { + /* Each result is getting from a 3 by 3 grid depending on where the centre location is. + So if the centre is at corner, the number of node grabbed from a grid will be different. */ + for (y = 0 ; y < core_mp->ych_len ; y++) { + for (x = 0 ; x < core_mp->xch_len ; x++) { + int sum = 0, avg = 0, count = 0; + int shift = y * core_mp->xch_len; + int centre = p_comb[shift + x]; + + for (k = 0 ; k < 8; k++) { + if (((y + border_y[k] >= 0) && (y + border_y[k] < core_mp->ych_len)) && + ((x + border_x[k] >= 0) && (x + border_x[k] < core_mp->xch_len))) { + count++; + sum += p_comb[(y + border_y[k]) * core_mp->xch_len + (x + border_x[k])]; + } + } + + avg = (sum + centre) / (count + 1); /* plus 1 because of centre */ + tItems[index].buf[shift + x] = (centre * 100) / avg; + } + } + } + return res; +} + +static void run_tx_rx_delta_test(int index) +{ + int x, y; + int32_t *p_comb = frame_buf; + + for (y = 0 ; y < core_mp->ych_len ; y++) { + for (x = 0 ; x < core_mp->xch_len ; x++) { + int shift = y * core_mp->xch_len; + + /* Tx Delta */ + if (y != (core_mp->ych_len - 1)) { + core_mp->tx_delta_buf[shift + x] = Mathabs(p_comb[shift + x] - p_comb[(shift + 1) + x]); + } + + /* Rx Delta */ + if (x != (core_mp->xch_len - 1)) { + core_mp->rx_delta_buf[shift + x] = Mathabs(p_comb[shift + x] - p_comb[shift + (x + 1)]); + } + } + } +} + +static void run_untouch_p2p_test(int index) +{ + int x, y; + int32_t *p_comb = frame_buf; + + for (y = 0 ; y < core_mp->ych_len ; y++) { + for (x = 0 ; x < core_mp->xch_len ; x++) { + int shift = y * core_mp->xch_len; + + if (p_comb[shift + x] > tItems[index].max_buf[shift + x]) { + tItems[index].max_buf[shift + x] = p_comb[shift + x]; + } + + if (p_comb[shift + x] < tItems[index].min_buf[shift + x]) { + tItems[index].min_buf[shift + x] = p_comb[shift + x]; + } + + tItems[index].buf[shift + x] = + tItems[index].max_buf[shift + x] - tItems[index].min_buf[shift + x]; + } + } +} + +static void compare_MaxMin_result(int index, int32_t *data) +{ + int x, y; + + for (y = 0 ; y < core_mp->ych_len ; y++) { + for (x = 0 ; x < core_mp->xch_len ; x++) { + int shift = y * core_mp->xch_len; + + if (tItems[index].catalog == UNTOUCH_P2P) + return; + else if (tItems[index].catalog == TX_RX_DELTA) { + /* Tx max/min comparison */ + if (core_mp->tx_delta_buf[shift + x] < data[shift + x]) { + core_mp->tx_max_buf[shift + x] = data[shift + x]; + } + + if (core_mp->tx_delta_buf[shift + x] > data[shift + x]) { + core_mp->tx_min_buf[shift + x] = data[shift + x]; + } + + /* Rx max/min comparison */ + if (core_mp->rx_delta_buf[shift + x] < data[shift + x]) { + core_mp->rx_max_buf[shift + x] = data[shift + x]; + } + + if (core_mp->rx_delta_buf[shift + x] > data[shift + x]) { + core_mp->rx_min_buf[shift + x] = data[shift + x]; + } + } else { + if (tItems[index].max_buf[shift + x] < data[shift + x]) { + tItems[index].max_buf[shift + x] = data[shift + x]; + } + + if (tItems[index].min_buf[shift + x] > data[shift + x]) { + tItems[index].min_buf[shift + x] = data[shift + x]; + } + } + } + } +} + + +#define ABS(a, b) ((a > b) ? (a - b) : (b - a)) +#define ADDR(x, y) ((y*core_mp->xch_len)+(x)) + +int full_open_rate_compare(int32_t *full_open, int32_t *cbk, int x, int y, int32_t inNodeType, int full_open_rate) +{ + int ret = true; + + if ((inNodeType == NO_COMPARE) || ((inNodeType & Round_Corner) == Round_Corner)) { + return true; + } + + if (full_open[ADDR(x, y)] < (cbk[ADDR(x, y)] * full_open_rate / 100)) + ret = false; + + return ret; +} + + +int compare_charge(int32_t *charge_rate, int x, int y, int32_t *inNodeType, int Charge_AA, int Charge_Border, int Charge_Notch) +{ + int OpenThreadhold, tempY, tempX, ret, k; + int sx[8] = { -1, 0, 1, -1, 1, -1, 0, 1 }; + int sy[8] = { -1, -1, -1, 0, 0, 1, 1, 1 }; + + ret = charge_rate[ADDR(x, y)]; + + /*Setting Threadhold from node type */ + + if (charge_rate[ADDR(x, y)] == 0) + return ret; + else if ((inNodeType[ADDR(x, y)] & AA_Area) == AA_Area) + OpenThreadhold = Charge_AA; + else if ((inNodeType[ADDR(x, y)] & Border_Area) == Border_Area) + OpenThreadhold = Charge_Border; + else if ((inNodeType[ADDR(x, y)] & Notch) == Notch) + OpenThreadhold = Charge_Notch; + else + return ret; + + /*compare carge rate with 3*3 node*/ + /*by pass => 1.no compare 2.corner 3.Skip_Micro 4.full open fail node*/ + for (k = 0 ; k < 8; k++) { + tempX = x + sx[k]; + tempY = y + sy[k]; + + if ((tempX < 0) || (tempX >= core_mp->xch_len) || (tempY < 0) || (tempY >= core_mp->ych_len)) /*out of range */ + continue; + + if ((inNodeType[ADDR(tempX, tempY)] == NO_COMPARE) || ((inNodeType[ADDR(tempX, tempY)] & Round_Corner) == Round_Corner) || + ((inNodeType[ADDR(tempX, tempY)] & Skip_Micro) == Skip_Micro) || charge_rate[ADDR(tempX, tempY)] == 0) + continue; + + if ((charge_rate[ADDR(tempX, tempY)] - charge_rate[ADDR(x, y)]) > OpenThreadhold) + return OpenThreadhold; + } + return ret; +} + +/* This will be merged to allnode_mutual_cdc_data in next version */ +int allnode_open_cdc_data(int mode, int *buf, int *dac) +{ + int i = 0, res = 0, len = 0; + int inDACp = 0, inDACn = 0; + uint8_t cmd[15] = {0}; + uint8_t *ori = NULL; + char str[128] = {0}; + char tmp[128] = {0}; + char *key[] = {"OPEN DAC", "OPEN Raw1", "OPEN Raw2", "OPEN Raw3"}; + + /* Multipling by 2 is due to the 16 bit in each node */ + len = (core_mp->xch_len * core_mp->ych_len * 2) + 2; + + ipio_debug(DEBUG_MP_TEST, "Read X/Y Channel length = %d\n", len); + ipio_debug(DEBUG_MP_TEST, "core_mp->frame_len = %d, mode= %d\n", core_mp->frame_len, mode); + + if (len <= 2) { + ipio_err("Length is invalid\n"); + res = ERROR; + goto out; + } + + /* CDC init. Read command from ini file */ + res = core_parser_get_int_data("PV5_4 Command", key[mode], str); + if (res < 0) { + ipio_err("Failed to parse PV54 command, res = %d\n", res); + goto out; + } + + strlcpy(tmp, str, sizeof(tmp)); + core_parser_get_u8_array(tmp, cmd); + + dump_data(cmd, 8, sizeof(cmd), 0, "Open SP command"); + + res = core_write(core_config->slave_i2c_addr, cmd, protocol->cdc_len); + if (res < 0) { + ipio_err("I2C Write Error while initialising cdc\n"); + goto out; + } + + /* Check busy */ + ipio_info("Check busy method = %d\n", core_mp->busy_cdc); + if (core_mp->busy_cdc == POLL_CHECK) { + res = core_config_check_cdc_busy(50, 50); + } else if (core_mp->busy_cdc == INT_CHECK) { + res = core_config_check_int_status(true); + } else if (core_mp->busy_cdc == DELAY_CHECK) { + mdelay(600); + } + + if (res < 0) { + ipio_err("Check busy timeout !\n"); + res = ERROR; + goto out; + } + + /* Prepare to get cdc data */ + cmd[0] = protocol->cmd_read_ctrl; + cmd[1] = protocol->cmd_get_cdc; + + res = core_write(core_config->slave_i2c_addr, cmd, 2); + if (res < 0) { + ipio_err("I2C Write Error\n"); + goto out; + } + + mdelay(1); + + res = core_write(core_config->slave_i2c_addr, &cmd[1], 1); + if (res < 0) { + ipio_err("I2C Write Error\n"); + goto out; + } + + mdelay(1); + + /* Allocate a buffer for the original */ + ori = kcalloc(len, sizeof(uint8_t), GFP_KERNEL); + if (ERR_ALLOC_MEM(ori)) { + ipio_err("Failed to allocate ori mem (%ld)\n", PTR_ERR(ori)); + goto out; + } + + /* Get original frame(cdc) data */ + res = core_read(core_config->slave_i2c_addr, ori, len); + if (res < 0) { + ipio_err("I2C Read Error while getting original cdc data\n"); + goto out; + } + + dump_data(ori, 8, len, 0, "Open SP CDC original"); + + /* Convert original data to the physical one in each node */ + for (i = 0 ; i < core_mp->frame_len ; i++) { + if (mode == 0) { + /* DAC - P */ + if (((ori[(2 * i) + 1] & 0x80) >> 7) == 1) { + /* Negative */ + inDACp = 0 - (int)(ori[(2 * i) + 1] & 0x7F); + } else { + inDACp = ori[(2 * i) + 1] & 0x7F; + } + + /* DAC - N */ + if (((ori[(1 + (2 * i)) + 1] & 0x80) >> 7) == 1) { + /* Negative */ + inDACn = 0 - (int)(ori[(1 + (2 * i)) + 1] & 0x7F); + } else { + inDACn = ori[(1 + (2 * i)) + 1] & 0x7F; + } + + buf[i] = (inDACp + inDACn) / 2; + } else { + /* H byte + L byte */ + int32_t tmp = (ori[(2 * i) + 1] << 8) + ori[(1 + (2 * i)) + 1]; + if ((tmp & 0x8000) == 0x8000) + buf[i] = tmp - 65536; + else + buf[i] = tmp; + buf[i] = (int)((int)(dac[i] * 2 * 10000 * 161 / 100) - (int)(16384 / 2 - (int)buf[i]) * 20000 * 7 / 16384 * 36 / 10) / 31 / 2; + } + } + dump_data(buf, 10, core_mp->frame_len, core_mp->xch_len, "Open SP CDC combined"); +out: + ipio_kfree((void **)&ori); + + return res; +} + +static int open_test_sp(int index) +{ + struct mp_test_P540_open open[tItems[index].frame_count]; + int i = 0, x = 0, y = 0, res = 0, addr; + int Charge_AA = 0, Charge_Border = 0, Charge_Notch = 0, full_open_rate = 0; + char str[512] = { 0 }; + + ipio_debug(DEBUG_MP_TEST, "index = %d, name = %s, CMD = 0x%x, Frame Count = %d\n", + index, tItems[index].name, tItems[index].cmd, tItems[index].frame_count); + + /* + * We assume that users who are calling the test forget to config frame count + * as 1, so we just help them to set it up. + */ + if (tItems[index].frame_count <= 0) { + ipio_err("Frame count is zero, which is at least set as 1\n"); + tItems[index].frame_count = 1; + } + + if (tItems[index].test_count == 0) { + res = create_mp_test_frame_buffer(index, tItems[index].frame_count); + if (res < 0) + goto out; + frame1_cbk700 = kcalloc(core_mp->frame_len, sizeof(int32_t), GFP_KERNEL); + frame1_cbk250 = kcalloc(core_mp->frame_len, sizeof(int32_t), GFP_KERNEL); + frame1_cbk200 = kcalloc(core_mp->frame_len, sizeof(int32_t), GFP_KERNEL); + + if (ERR_ALLOC_MEM(frame1_cbk700) || ERR_ALLOC_MEM(frame1_cbk250) || ERR_ALLOC_MEM(frame1_cbk200)) { + ipio_err("Failed to allocate cbk buffer\n"); + return -ENOMEM; + } + } + + tItems[index].node_type = kcalloc(core_mp->frame_len, sizeof(int32_t), GFP_KERNEL); + if (ERR_ALLOC_MEM(tItems[index].node_type)) { + ipio_err("Failed to allocate node_type FRAME buffer\n"); + return -ENOMEM; + } + + /* Init Max/Min buffer */ + for (y = 0 ; y < core_mp->ych_len ; y++) { + for (x = 0 ; x < core_mp->xch_len ; x++) { + tItems[index].max_buf[y * core_mp->xch_len + x] = INT_MIN; + tItems[index].min_buf[y * core_mp->xch_len + x] = INT_MAX; + } + } + + if (tItems[index].spec_option == BENCHMARK) { + core_parser_benchmark(tItems[index].bench_mark_max, tItems[index].bench_mark_min, tItems[index].type_option, tItems[index].desp); + if (ipio_debug_level && DEBUG_PARSER > 0) + dump_benchmark_data(tItems[index].bench_mark_max, tItems[index].bench_mark_min); + } + + core_parser_nodetype(tItems[index].node_type, "Node Type"); + if (ipio_debug_level && DEBUG_PARSER > 0) + dump_node_type_buffer(tItems[index].node_type, "node type"); + + res = core_parser_get_int_data(tItems[index].desp, "Charge_AA", str); + if (res || res == 0) + Charge_AA = katoi(str); + + res = core_parser_get_int_data(tItems[index].desp, "Charge_Border", str); + if (res || res == 0) + Charge_Border = katoi(str); + + res = core_parser_get_int_data(tItems[index].desp, "Charge_Notch", str); + if (res || res == 0) + Charge_Notch = katoi(str); + + res = core_parser_get_int_data(tItems[index].desp, "Full Open", str); + if (res || res == 0) + full_open_rate = katoi(str); + + if (res < 0) { + ipio_err("Failed to get parameters from ini file\n"); + goto out; + } + + ipio_debug(DEBUG_MP_TEST, "pen test frame_cont %d, AA %d,Border %d, Notch %d, full_open_rate %d \n", + tItems[index].frame_count, Charge_AA, Charge_Border, Charge_Notch, full_open_rate); + + for (i = 0 ; i < tItems[index].frame_count ; i++) { + open[i].cbk_700 = kcalloc(core_mp->frame_len, sizeof(int32_t), GFP_KERNEL); + open[i].cbk_250 = kcalloc(core_mp->frame_len, sizeof(int32_t), GFP_KERNEL); + open[i].cbk_200 = kcalloc(core_mp->frame_len, sizeof(int32_t), GFP_KERNEL); + open[i].charg_rate = kcalloc(core_mp->frame_len, sizeof(int32_t), GFP_KERNEL); + open[i].full_Open = kcalloc(core_mp->frame_len, sizeof(int32_t), GFP_KERNEL); + open[i].dac = kcalloc(core_mp->frame_len, sizeof(int32_t), GFP_KERNEL); + open[i].cdc = kcalloc(core_mp->frame_len, sizeof(int32_t), GFP_KERNEL); + + if (ERR_ALLOC_MEM(open[i].cbk_700) || ERR_ALLOC_MEM(open[i].cbk_250) || + ERR_ALLOC_MEM(open[i].cbk_200) || ERR_ALLOC_MEM(open[i].charg_rate) || + ERR_ALLOC_MEM(open[i].full_Open) || ERR_ALLOC_MEM(open[i].dac) || + ERR_ALLOC_MEM(open[i].cdc)) { + ipio_err("Failed to allocate open test buffer\n"); + goto out; + } + } + + for (i = 0 ; i < tItems[index].frame_count ; i++) { + + res = allnode_open_cdc_data(0, open[i].dac, open[i].dac); + if (res < 0) { + ipio_err("Failed to get Open SP DAC data, %d\n", res); + goto out; + } + res = allnode_open_cdc_data(1, open[i].cbk_700, open[i].dac); + if (res < 0) { + ipio_err("Failed to get Open SP Raw1 data, %d\n", res); + goto out; + } + res = allnode_open_cdc_data(2, open[i].cbk_250, open[i].dac); + if (res < 0) { + ipio_err("Failed to get Open SP Raw2 data, %d\n", res); + goto out; + } + res = allnode_open_cdc_data(3, open[i].cbk_200, open[i].dac); + if (res < 0) { + ipio_err("Failed to get Open SP Raw3 data, %d\n", res); + goto out; + } + addr = 0; + + /*record fist frame for drbug*/ + if (i == 0) { + memcpy(frame1_cbk700, open[i].cbk_700, core_mp->frame_len * sizeof(int32_t)); + memcpy(frame1_cbk250, open[i].cbk_250, core_mp->frame_len * sizeof(int32_t)); + memcpy(frame1_cbk200, open[i].cbk_200, core_mp->frame_len * sizeof(int32_t)); + } + + dump_data(open[i].cbk_700, 10, core_mp->frame_len, core_mp->xch_len, "cbk 700"); + dump_data(open[i].cbk_250, 10, core_mp->frame_len, core_mp->xch_len, "cbk 250"); + dump_data(open[i].cbk_200, 10, core_mp->frame_len, core_mp->xch_len, "cbk 200"); + for (y = 0 ; y < core_mp->ych_len ; y++) { + for (x = 0 ; x < core_mp->xch_len ; x++) { + open[i].charg_rate[addr] = open[i].cbk_250[addr] * 100 / open[i].cbk_700[addr]; + open[i].full_Open[addr] = open[i].cbk_700[addr] - open[i].cbk_200[addr]; + addr++; + } + } + if (ipio_debug_level & DEBUG_MP_TEST) { + dump_data(open[i].charg_rate, 10, core_mp->frame_len, core_mp->xch_len, "origin charge rate"); + dump_data(open[i].full_Open, 10, core_mp->frame_len, core_mp->xch_len, "origin full open"); + } + + addr = 0; + for (y = 0 ; y < core_mp->ych_len ; y++) { + for (x = 0 ; x < core_mp->xch_len ; x++) { + if (full_open_rate_compare(open[i].full_Open, open[i].cbk_700, x, y, tItems[index].node_type[addr], full_open_rate) == false) { + tItems[index].buf[(i * core_mp->frame_len) + addr] = 0; + open[i].charg_rate[addr] = 0; + } + addr++; + } + } + if (ipio_debug_level & DEBUG_MP_TEST) + dump_data(&tItems[index].buf[(i * core_mp->frame_len)], 10, core_mp->frame_len, core_mp->xch_len, "after full_open_rate_compare"); + + addr = 0; + for (y = 0 ; y < core_mp->ych_len ; y++) { + for (x = 0 ; x < core_mp->xch_len ; x++) { + tItems[index].buf[(i * core_mp->frame_len) + addr] = compare_charge(open[i].charg_rate, x, y, tItems[index].node_type, Charge_AA, Charge_Border, Charge_Notch); + addr++; + } + } + if (ipio_debug_level & DEBUG_MP_TEST) + dump_data(&tItems[index].buf[(i * core_mp->frame_len)], 10, core_mp->frame_len, core_mp->xch_len, "after compare charge rate"); + + compare_MaxMin_result(index, &tItems[index].buf[(i * core_mp->frame_len)]); + } + +out: + ipio_kfree((void **)&tItems[index].node_type); + + for (i = 0 ; i < tItems[index].frame_count; i++) { + ipio_kfree((void **)&open[i].cbk_700); + ipio_kfree((void **)&open[i].cbk_250); + ipio_kfree((void **)&open[i].cbk_200); + ipio_kfree((void **)&open[i].charg_rate); + ipio_kfree((void **)&open[i].full_Open); + ipio_kfree((void **)&open[i].dac); + } + + return res; +} + +int codeToOhm(int32_t Code) +{ + int douTDF1 = 0; + int douTDF2 = 0; + int douTVCH = 24; + int douTVCL = 8; + int douCint = 7; + int douVariation = 64; + int douRinternal = 930; + int32_t temp = 0; + + if (core_mp->nodp.isLongV) { + douTDF1 = 300; + douTDF2 = 100; + } else { + douTDF1 = 219; + douTDF2 = 100; + } + + if (Code == 0) { + ipio_debug(DEBUG_MP_TEST, "0,"); + } else { + temp = ((douTVCH - douTVCL) * douVariation * (douTDF1 - douTDF2) * (1<<12) / (9 * Code * douCint)) * 100; + temp = (temp - douRinternal) / 1000; + } + /* Unit = M Ohm */ + return temp; +} + +static int short_test(int index, int frame_index) +{ + int j = 0, res = 0; + + if (protocol->major >= 5 && protocol->mid >= 4) { + /* Calculate code to ohm and save to tItems[index].buf */ + for (j = 0 ; j < core_mp->frame_len ; j++) + tItems[index].buf[frame_index * core_mp->frame_len + j] = codeToOhm(frame_buf[j]); + } else { + for (j = 0 ; j < core_mp->frame_len ; j++) + tItems[index].buf[frame_index * core_mp->frame_len + j] = frame_buf[j]; + } + + return res; +} + +static int mutual_test(int index) +{ + int i = 0, j = 0, x = 0, y = 0, res = 0, get_frame_cont = 1 ; + + ipio_debug(DEBUG_MP_TEST, "index = %d, name = %s, CMD = 0x%x, Frame Count = %d\n", + index, tItems[index].name, tItems[index].cmd, tItems[index].frame_count); + + /* + * We assume that users who are calling the test forget to config frame count + * as 1, so we just help them to set it up. + */ + if (tItems[index].frame_count <= 0) { + ipio_err("Frame count is zero, which is at least set as 1\n"); + tItems[index].frame_count = 1; + } + + //makesure it's first time + if (tItems[index].test_count == 0) { + res = create_mp_test_frame_buffer(index, tItems[index].frame_count); + if (res < 0) + goto out; + } + + /* Init Max/Min buffer */ + for (y = 0 ; y < core_mp->ych_len ; y++) { + for (x = 0 ; x < core_mp->xch_len ; x++) { + if (tItems[i].catalog == TX_RX_DELTA) { + core_mp->tx_max_buf[y * core_mp->xch_len + x] = INT_MIN; + core_mp->rx_max_buf[y * core_mp->xch_len + x] = INT_MIN; + core_mp->tx_min_buf[y * core_mp->xch_len + x] = INT_MAX; + core_mp->rx_min_buf[y * core_mp->xch_len + x] = INT_MAX; + } else { + tItems[index].max_buf[y * core_mp->xch_len + x] = INT_MIN; + tItems[index].min_buf[y * core_mp->xch_len + x] = INT_MAX; + } + } + } + + if (tItems[index].catalog != PEAK_TO_PEAK_TEST) + get_frame_cont = tItems[index].frame_count; + + if (tItems[index].spec_option == BENCHMARK) { + core_parser_benchmark(tItems[index].bench_mark_max, tItems[index].bench_mark_min, tItems[index].type_option, tItems[index].desp); + if (ipio_debug_level && DEBUG_PARSER > 0) + dump_benchmark_data(tItems[index].bench_mark_max, tItems[index].bench_mark_min); + } + + for (i = 0 ; i < get_frame_cont; i++) { + res = allnode_mutual_cdc_data(index); + if (res < 0) { + ipio_err("Failed to initialise CDC data, %d\n", res); + goto out; + } + switch (tItems[index].catalog) { + case PIXEL: + run_pixel_test(index); + break; + case UNTOUCH_P2P: + run_untouch_p2p_test(index); + break; + case OPEN_TEST: + run_open_test(index); + break; + case TX_RX_DELTA: + run_tx_rx_delta_test(index); + break; + case SHORT_TEST: + short_test(index, i); + break; + default: + for (j = 0 ; j < core_mp->frame_len ; j++) + tItems[index].buf[i * core_mp->frame_len + j] = frame_buf[j]; + break; + } + compare_MaxMin_result(index, &tItems[index].buf[i * core_mp->frame_len]); + } + +out: + return res; +} + +static int key_test(int index) +{ + int i, j = 0, res = 0; + + ipio_debug(DEBUG_MP_TEST, "Item = %s, CMD = 0x%x, Frame Count = %d\n", + tItems[index].name, tItems[index].cmd, tItems[index].frame_count); + + if (tItems[index].frame_count == 0) { + ipio_err("Frame count is zero, which at least sets as 1\n"); + res = -EINVAL; + goto out; + } + + if (tItems[index].test_count == 0) + res = create_mp_test_frame_buffer(index, tItems[index].frame_count); + + if (res < 0) + goto out; + + for (i = 0 ; i < tItems[index].frame_count; i++) { + res = allnode_key_cdc_data(index); + if (res < 0) { + ipio_err("Failed to initialise CDC data, %d\n", res); + goto out; + } + + for (j = 0 ; j < core_mp->key_len ; j++) + tItems[index].buf[j] = key_buf[j]; + } + + compare_MaxMin_result(index, tItems[index].buf); + +out: + return res; +} + +static int self_test(int index) +{ + ipio_err("TDDI has no self to be tested currently\n"); + return ERROR; +} + +static int st_test(int index) +{ + ipio_err("ST Test is not supported by the driver\n"); + return ERROR; +} + +int mp_test_data_sort_average(int32_t *oringin_data, int index, int32_t *avg_result) +{ + int i, j, k, x, y, len = 5; + int32_t u32temp; + int u32up_frame, u32down_frame; + int32_t *u32sum_raw_data; + int32_t *u32data_buff; + + if (tItems[index].frame_count <= 1) + return 0; + + + if (ERR_ALLOC_MEM(oringin_data)) { + ipio_err("Input wrong adress\n"); + return -ENOMEM; + } + + u32data_buff = kcalloc(core_mp->frame_len * tItems[index].frame_count, sizeof(int32_t), GFP_KERNEL); + u32sum_raw_data = kcalloc(core_mp->frame_len, sizeof(int32_t), GFP_KERNEL); + if (ERR_ALLOC_MEM(u32sum_raw_data) || (ERR_ALLOC_MEM(u32data_buff))) { + ipio_err("Failed to allocate u32sum_raw_data FRAME buffer\n"); + return -ENOMEM; + } + + for (i = 0 ; i < core_mp->frame_len * tItems[index].frame_count; i++) { + u32data_buff[i] = oringin_data[i]; + } + + u32up_frame = tItems[index].frame_count * tItems[index].highest_percentage / 100; + u32down_frame = tItems[index].frame_count * tItems[index].lowest_percentage / 100; + ipio_debug(DEBUG_MP_TEST, "Up=%d,Down=%d -%s\n", u32up_frame, u32down_frame, tItems[index].desp); + + if (ipio_debug_level & DEBUG_MP_TEST) { + printk("\n[Show Original frist%d and last%d node data]\n", len, len); + for (i = 0 ; i < core_mp->frame_len ; i++) { + for (j = 0 ; j < tItems[index].frame_count ; j++) { + if ((i < len) || (i >= (core_mp->frame_len-len))) + printk("%d, ", u32data_buff[j * core_mp->frame_len + i]); + } + if ((i < len) || (i >= (core_mp->frame_len-len))) + printk("\n"); + } + } + + for (i = 0 ; i < core_mp->frame_len ; i++) { + for (j = 0 ; j < tItems[index].frame_count-1 ; j++) { + for (k = 0 ; k < (tItems[index].frame_count-1-j) ; k++) { + x = i + k * core_mp->frame_len; + y = i + (k + 1) * core_mp->frame_len; + if (*(u32data_buff+x) > *(u32data_buff+y)) { + u32temp = *(u32data_buff+x); + *(u32data_buff+x) = *(u32data_buff+y); + *(u32data_buff+y) = u32temp; + } + } + } + } + + if (ipio_debug_level & DEBUG_MP_TEST) { + printk("\n[After sorting frist%d and last%d node data]\n", len, len); + for (i = 0 ; i < core_mp->frame_len ; i++) { + for (j = u32down_frame ; j < tItems[index].frame_count - u32up_frame ; j++) { + if ((i < len) || (i >= (core_mp->frame_len-len))) + printk("%d, ", u32data_buff[i + j * core_mp->frame_len]); + } + if ((i < len) || (i >= (core_mp->frame_len-len))) + printk("\n"); + } + } + + for (i = 0 ; i < core_mp->frame_len ; i++) { + u32sum_raw_data[i] = 0; + for (j = u32down_frame ; j < tItems[index].frame_count - u32up_frame ; j++) + u32sum_raw_data[i] += u32data_buff[i + j * core_mp->frame_len]; + + avg_result[i] = u32sum_raw_data[i] / (tItems[index].frame_count - u32down_frame - u32up_frame); + } + + if (ipio_debug_level & DEBUG_MP_TEST) { + printk("\n[Average result frist%d and last%d node data]\n", len, len); + for (i = 0 ; i < core_mp->frame_len ; i++) { + if ((i < len) || (i >= (core_mp->frame_len-len))) + printk("%d, ", avg_result[i]); + } + if ((i < len) || (i >= (core_mp->frame_len-len))) + printk("\n"); + } + + ipio_kfree((void **)&u32data_buff); + ipio_kfree((void **)&u32sum_raw_data); + return 0; +} + + +int core_mp_compare_retry_cdc_result(int i) +{ + int j, test_result = MP_PASS; + int32_t *max_threshold = NULL, *min_threshold = NULL ; + + max_threshold = kcalloc(core_mp->frame_len, sizeof(int32_t), GFP_KERNEL); + min_threshold = kcalloc(core_mp->frame_len, sizeof(int32_t), GFP_KERNEL); + if (ERR_ALLOC_MEM(max_threshold) || ERR_ALLOC_MEM(min_threshold)) { + ipio_err("Failed to allocate threshold FRAME buffer\n"); + test_result = MP_FAIL; + goto fail_open; + } + + /* Show test result as below */ + if (tItems[i].catalog == TX_RX_DELTA) { + + if (ERR_ALLOC_MEM(core_mp->rx_delta_buf) || ERR_ALLOC_MEM(core_mp->tx_delta_buf)) { + ipio_err("This test item (%s) has no data inside its buffer\n", tItems[i].desp); + test_result = MP_FAIL; + goto fail_open; + } + + for (j = 0 ; j < core_mp->frame_len ; j++) { + max_threshold[j] = core_mp->TxDeltaMax; + min_threshold[j] = core_mp->TxDeltaMin; + } + mp_compare_cdc_result(core_mp->tx_max_buf, max_threshold, min_threshold, &test_result); + mp_compare_cdc_result(core_mp->tx_min_buf, max_threshold, min_threshold, &test_result); + for (j = 0 ; j < core_mp->frame_len ; j++) { + max_threshold[j] = core_mp->RxDeltaMax; + min_threshold[j] = core_mp->RxDeltaMin; + } + mp_compare_cdc_result(core_mp->rx_max_buf, max_threshold, min_threshold, &test_result); + mp_compare_cdc_result(core_mp->rx_min_buf, max_threshold, min_threshold, &test_result); + } else { + + if (ERR_ALLOC_MEM(tItems[i].buf) || ERR_ALLOC_MEM(tItems[i].max_buf) || + ERR_ALLOC_MEM(tItems[i].min_buf) || ERR_ALLOC_MEM(tItems[i].result_buf)) { + ipio_err("This test item (%s) has no data inside its buffer\n", tItems[i].desp); + test_result = MP_FAIL; + goto fail_open; + } + + if (tItems[i].spec_option == BENCHMARK) { + for (j = 0 ; j < core_mp->frame_len ; j++) { + max_threshold[j] = tItems[i].bench_mark_max[j]; + min_threshold[j] = tItems[i].bench_mark_min[j]; + } + } else { + for (j = 0 ; j < core_mp->frame_len ; j++) { + max_threshold[j] = tItems[i].max; + min_threshold[j] = tItems[i].min; + } + } + /* general result */ + if (tItems[i].trimmed_mean && tItems[i].catalog != PEAK_TO_PEAK_TEST) { + mp_test_data_sort_average(tItems[i].buf, i, tItems[i].result_buf); + mp_compare_cdc_result(tItems[i].result_buf, max_threshold, min_threshold, &test_result); + } else { + mp_compare_cdc_result(tItems[i].max_buf, max_threshold, min_threshold, &test_result); + mp_compare_cdc_result(tItems[i].min_buf, max_threshold, min_threshold, &test_result); + } + } + +fail_open: + ipio_kfree((void **)&max_threshold); + ipio_kfree((void **)&min_threshold); + + return test_result; +} + +void core_mp_retry(int index) +{ + core_config_ice_mode_enable(); + + if (core_config_set_watch_dog(false) < 0) { + ipio_err("Failed to disable watch dog\n"); + } + + core_config_ic_reset(); + + core_config_ice_mode_disable(); + + /* Switch to Demo mode */ + core_fr_mode_control(&protocol->demo_mode); + ilitek_platform_disable_irq(); + + /* Switch to test mode */ + core_fr_mode_control(&protocol->test_mode); + ilitek_platform_disable_irq(); + + tItems[index].do_test(index); + tItems[index].test_count++; +} + + +void core_mp_show_result(void) +{ + int i, x, y, j, csv_len = 0, pass_item_count = 0, line_count = 0, get_frame_cont = 1; + int32_t *max_threshold = NULL, *min_threshold = NULL; + char *csv = NULL; + char csv_name[128] = { 0 }; + char *ret_pass_name = NULL, *ret_fail_name = NULL; + struct file *f = NULL; + mm_segment_t fs; + loff_t pos; + + csv = vmalloc(CSV_FILE_SIZE); + if (ERR_ALLOC_MEM(csv)) { + ipio_err("Failed to allocate CSV mem\n"); + goto fail_open; + } + + max_threshold = kcalloc(core_mp->frame_len, sizeof(int32_t), GFP_KERNEL); + min_threshold = kcalloc(core_mp->frame_len, sizeof(int32_t), GFP_KERNEL); + if (ERR_ALLOC_MEM(max_threshold) || ERR_ALLOC_MEM(min_threshold)) { + ipio_err("Failed to allocate threshold FRAME buffer\n"); + goto fail_open; + } + /* header must has 19 line*/ + csv_len += snprintf(csv + csv_len, (CSV_FILE_SIZE-csv_len), "==============================================================================\n"); + line_count++; + csv_len += snprintf(csv + csv_len, (CSV_FILE_SIZE-csv_len), "ILITek C-TP Utility V%s %x : Driver Sensor Test\n", DRIVER_VERSION, core_config->chip_pid); + line_count++; + csv_len += snprintf(csv + csv_len, (CSV_FILE_SIZE-csv_len), "Confidentiality Notice:\n"); + line_count++; + csv_len += snprintf(csv + csv_len, (CSV_FILE_SIZE-csv_len), "Any information of this tool is confidential and privileged.\n"); + line_count++; + csv_len += snprintf(csv + csv_len, (CSV_FILE_SIZE-csv_len), "@ ILI TECHNOLOGY CORP. All Rights Reserved.\n"); + line_count++; + csv_len += snprintf(csv + csv_len, (CSV_FILE_SIZE-csv_len), "==============================================================================\n"); + line_count++; + if (protocol->mid >= 0x3) {/*line7*/ + csv_len += snprintf(csv + csv_len, (CSV_FILE_SIZE-csv_len), "Firmware Version ,V%d.%d.%d.%d\n", core_config->firmware_ver[1], core_config->firmware_ver[2], core_config->firmware_ver[3], core_config->firmware_ver[4]); + } else { + csv_len += snprintf(csv + csv_len, (CSV_FILE_SIZE-csv_len), "Firmware Version ,V%d.%d.%d\n", core_config->firmware_ver[1], core_config->firmware_ver[2], core_config->firmware_ver[3]); + } + line_count++; + csv_len += snprintf(csv + csv_len, (CSV_FILE_SIZE-csv_len), "Panel information ,XCH=%d, YCH=%d\n", core_mp->xch_len, core_mp->ych_len); + line_count++; + csv_len += snprintf(csv + csv_len, (CSV_FILE_SIZE-csv_len), "Test Item:\n"); + line_count++; + for (i = 0 ; i < ARRAY_SIZE(tItems); i++) { + if (tItems[i].run == 1) { + csv_len += snprintf(csv + csv_len, (CSV_FILE_SIZE-csv_len), " ---%s\n", tItems[i].desp); + line_count++; + } + } + while (line_count < 19) { + csv_len += snprintf(csv + csv_len, (CSV_FILE_SIZE-csv_len), "\n"); + line_count++; + } + csv_len += snprintf(csv + csv_len, (CSV_FILE_SIZE-csv_len), "==============================================================================\n"); + + for (i = 0 ; i < ARRAY_SIZE(tItems); i++) { + if (tItems[i].run != 1) + continue; + + if (tItems[i].item_result == MP_PASS) { + pr_info("\n\n[%s],OK \n", tItems[i].desp); + csv_len += snprintf(csv + csv_len, (CSV_FILE_SIZE-csv_len), "\n\n[%s],OK\n", tItems[i].desp); + } else { + pr_info("\n\n[%s],NG \n", tItems[i].desp); + csv_len += snprintf(csv + csv_len, (CSV_FILE_SIZE-csv_len), "\n\n[%s],NG\n", tItems[i].desp); + } + + pr_info("Frame count = %d\n", tItems[i].frame_count); + csv_len += snprintf(csv + csv_len, (CSV_FILE_SIZE-csv_len), "Frame count = %d\n", tItems[i].frame_count); + + if (tItems[i].trimmed_mean && tItems[i].catalog != PEAK_TO_PEAK_TEST) { + pr_info("Lowest Percentage = %d\n", tItems[i].lowest_percentage); + csv_len += snprintf(csv + csv_len, (CSV_FILE_SIZE-csv_len), "Lowest Percentage = %d\n", tItems[i].lowest_percentage); + + pr_info("Highest Percentage = %d\n", tItems[i].highest_percentage); + csv_len += snprintf(csv + csv_len, (CSV_FILE_SIZE-csv_len), "Highest Percentage = %d\n", tItems[i].highest_percentage); + } + + /* Show result of benchmark max and min */ + if (tItems[i].spec_option == BENCHMARK) { + for (j = 0 ; j < core_mp->frame_len ; j++) { + max_threshold[j] = tItems[i].bench_mark_max[j]; + min_threshold[j] = tItems[i].bench_mark_min[j]; + } + + mp_compare_cdc_show_result(tItems[i].bench_mark_max, csv, &csv_len, TYPE_BENCHMARK, max_threshold, min_threshold, "Max_Bench"); + mp_compare_cdc_show_result(tItems[i].bench_mark_min, csv, &csv_len, TYPE_BENCHMARK, max_threshold, min_threshold, "Min_Bench"); + } else { + + for (j = 0 ; j < core_mp->frame_len ; j++) { + max_threshold[j] = tItems[i].max; + min_threshold[j] = tItems[i].min; + } + + pr_info("Max = %d\n", tItems[i].max); + csv_len += snprintf(csv + csv_len, (CSV_FILE_SIZE-csv_len), "Max = %d\n", tItems[i].max); + + pr_info("Min = %d\n", tItems[i].min); + csv_len += snprintf(csv + csv_len, (CSV_FILE_SIZE-csv_len), "Min = %d\n", tItems[i].min); + } + if (strcmp(tItems[i].name, "open_integration_sp") == 0) { + mp_compare_cdc_show_result(frame1_cbk700, csv, &csv_len, TYPE_NO_JUGE, max_threshold, min_threshold, "frame1 cbk700"); + mp_compare_cdc_show_result(frame1_cbk250, csv, &csv_len, TYPE_NO_JUGE, max_threshold, min_threshold, "frame1 cbk250"); + mp_compare_cdc_show_result(frame1_cbk200, csv, &csv_len, TYPE_NO_JUGE, max_threshold, min_threshold, "frame1 cbk200"); + ipio_kfree((void **)&frame1_cbk700); + ipio_kfree((void **)&frame1_cbk250); + ipio_kfree((void **)&frame1_cbk200); + } + + if (tItems[i].catalog == TX_RX_DELTA) { + if (ERR_ALLOC_MEM(core_mp->rx_delta_buf) || ERR_ALLOC_MEM(core_mp->tx_delta_buf)) { + ipio_err("This test item (%s) has no data inside its buffer\n", tItems[i].desp); + continue; + } + } else { + if (ERR_ALLOC_MEM(tItems[i].buf) || ERR_ALLOC_MEM(tItems[i].max_buf) || + ERR_ALLOC_MEM(tItems[i].min_buf)) { + ipio_err("This test item (%s) has no data inside its buffer\n", tItems[i].desp); + continue; + } + } + + /* Show test result as below */ + if (tItems[i].catalog == KEY_TEST) { + for (x = 0 ; x < core_mp->key_len ; x++) { + DUMP(DEBUG_MP_TEST, "KEY_%02d ", x); + csv_len += snprintf(csv + csv_len, (CSV_FILE_SIZE-csv_len), "KEY_%02d, ", x); + } + + DUMP(DEBUG_MP_TEST, "\n"); + csv_len += snprintf(csv + csv_len, (CSV_FILE_SIZE-csv_len), "\n"); + + for (y = 0 ; y < core_mp->key_len ; y++) { + DUMP(DEBUG_MP_TEST, " %3d ", tItems[i].buf[y]); + csv_len += snprintf(csv + csv_len, (CSV_FILE_SIZE-csv_len), " %3d, ", tItems[i].buf[y]); + } + + DUMP(DEBUG_MP_TEST, "\n"); + csv_len += snprintf(csv + csv_len, (CSV_FILE_SIZE-csv_len), "\n"); + } else if (tItems[i].catalog == TX_RX_DELTA) { + + for (j = 0 ; j < core_mp->frame_len ; j++) { + max_threshold[j] = core_mp->TxDeltaMax; + min_threshold[j] = core_mp->TxDeltaMin; + } + mp_compare_cdc_show_result(core_mp->tx_max_buf, csv, &csv_len, TYPE_JUGE, max_threshold, min_threshold, "TX Max Hold"); + mp_compare_cdc_show_result(core_mp->tx_min_buf, csv, &csv_len, TYPE_JUGE, max_threshold, min_threshold, "TX Min Hold"); + + for (j = 0 ; j < core_mp->frame_len ; j++) { + max_threshold[j] = core_mp->RxDeltaMax; + min_threshold[j] = core_mp->RxDeltaMin; + } + mp_compare_cdc_show_result(core_mp->rx_max_buf, csv, &csv_len, TYPE_JUGE, max_threshold, min_threshold, "RX Max Hold"); + mp_compare_cdc_show_result(core_mp->rx_min_buf, csv, &csv_len, TYPE_JUGE, max_threshold, min_threshold, "RX Min Hold"); + + } else { + /* general result */ + if (tItems[i].trimmed_mean && tItems[i].catalog != PEAK_TO_PEAK_TEST) { + mp_compare_cdc_show_result(tItems[i].result_buf, csv, &csv_len, TYPE_JUGE, max_threshold, min_threshold, "Mean result"); + } else { + mp_compare_cdc_show_result(tItems[i].max_buf, csv, &csv_len, TYPE_JUGE, max_threshold, min_threshold, "Max Hold"); + mp_compare_cdc_show_result(tItems[i].min_buf, csv, &csv_len, TYPE_JUGE, max_threshold, min_threshold, "Min Hold"); + } + if (tItems[i].catalog != PEAK_TO_PEAK_TEST) + get_frame_cont = tItems[i].frame_count; + /* result of each frame */ + for (j = 0 ; j < get_frame_cont; j++) { + char frame_name[128] = { 0 }; + snprintf(frame_name, sizeof(frame_name), "Frame %d", (j+1)); + mp_compare_cdc_show_result(&tItems[i].buf[(j*core_mp->frame_len)], csv, &csv_len, TYPE_NO_JUGE, max_threshold, min_threshold, frame_name); + } + + } + } + + memset(csv_name, 0, 128 * sizeof(char)); + + csv_len += snprintf(csv + csv_len, (CSV_FILE_SIZE-csv_len), "==============================================================================\n"); + csv_len += snprintf(csv + csv_len, (CSV_FILE_SIZE-csv_len), "Result_Summary \n"); + + for (i = 0 ; i < ARRAY_SIZE(tItems); i++) { + if (tItems[i].run) { + if (tItems[i].item_result == MP_PASS) + csv_len += snprintf(csv + csv_len, (CSV_FILE_SIZE-csv_len), " {%s} ,OK\n", tItems[i].desp); + else + csv_len += snprintf(csv + csv_len, (CSV_FILE_SIZE-csv_len), " {%s} ,NG\n", tItems[i].desp); + } + } + + for (i = 0 ; i < ARRAY_SIZE(tItems); i++) { + if (tItems[i].run) { + if (tItems[i].item_result == MP_FAIL) { + pass_item_count = 0; + break; + } + pass_item_count++; + } + } + + /* define csv file name */ + if (core_mp->oppo_run) { + if (core_mp->oppo_lcm) { + ret_pass_name = OPPO_CSV_LCM_PASS_NAME; + ret_fail_name = OPPO_CSV_LCM_FAIL_NAME; + } else { + ret_pass_name = OPPO_CSV_PASS_NAME; + ret_fail_name = OPPO_CSV_FAIL_NAME; + } + } else { + ret_pass_name = NORMAL_CSV_PASS_NAME; + ret_fail_name = NORMAL_CSV_FAIL_NAME; + } + + if (pass_item_count == 0) { + core_mp->final_result = MP_FAIL; + snprintf(csv_name, sizeof(csv_name), "%s/%s.csv", CSV_PATH, ret_fail_name); + } else { + core_mp->final_result = MP_PASS; + snprintf(csv_name, sizeof(csv_name), "%s/%s.csv", CSV_PATH, ret_pass_name); + } + + ipio_info("Open CSV : %s\n", csv_name); + + if (f == NULL) + f = filp_open(csv_name, O_WRONLY | O_CREAT | O_TRUNC, 644); + + if (ERR_ALLOC_MEM(f)) { + ipio_err("Failed to open CSV file"); + goto fail_open; + } + + ipio_info("Open CSV succeed, its length = %d\n ", csv_len); + + if (csv_len >= CSV_FILE_SIZE) { + ipio_err("The length saved to CSV is too long !\n"); + goto fail_open; + } + + fs = get_fs(); + set_fs(KERNEL_DS); + pos = 0; + vfs_write(f, csv, csv_len, &pos); + set_fs(fs); + filp_close(f, NULL); + + ipio_info("Writing Data into CSV succeed\n"); + +fail_open: + if (csv != NULL) + vfree(csv); + ipio_kfree((void **)&max_threshold); + ipio_kfree((void **)&min_threshold); +} +EXPORT_SYMBOL(core_mp_show_result); + +void core_mp_run_test(char *item, bool ini) +{ + int i = 0, count, test_result = MP_PASS; + char str[512] = { 0 }; + + /* update X/Y channel length if they're changed */ + core_mp->xch_len = core_config->tp_info->nXChannelNum; + core_mp->ych_len = core_config->tp_info->nYChannelNum; + + /* update key's length if they're changed */ + core_mp->key_len = core_config->tp_info->nKeyCount; + + /* compute the total length in one frame */ + core_mp->frame_len = core_mp->xch_len * core_mp->ych_len; + + if (item == NULL || strncmp(item, " ", strlen(item)) == 0 || core_mp->frame_len == 0) { + tItems[i].result = "FAIL"; + core_mp->final_result = MP_FAIL; + ipio_err("Invaild string or length\n"); + return; + } + + ipio_debug(DEBUG_MP_TEST, "item = %s, core type = %d\n", item, core_config->core_type); + + for (i = 0 ; i < core_mp->mp_items; i++) { + if (strncmp(item, tItems[i].desp, strlen(item)) == 0) { + if (ini) { + core_parser_get_int_data(item, "Enable", str); + tItems[i].run = katoi(str); + core_parser_get_int_data(item, "SPEC Option", str); + tItems[i].spec_option = katoi(str); + core_parser_get_int_data(item, "Type Option", str); + tItems[i].type_option = katoi(str); + core_parser_get_int_data(item, "Frame Count", str); + tItems[i].frame_count = katoi(str); + core_parser_get_int_data(item, "Trimmed Mean", str); + tItems[i].trimmed_mean = katoi(str); + core_parser_get_int_data(item, "Lowest Percentage", str); + tItems[i].lowest_percentage = katoi(str); + core_parser_get_int_data(item, "Highest Percentage", str); + tItems[i].highest_percentage = katoi(str); + + /* Get threshold from ini structure in parser */ + if (strcmp(item, "Tx/Rx Delta") == 0) { + core_parser_get_int_data(item, "Tx Max", str); + core_mp->TxDeltaMax = katoi(str); + core_parser_get_int_data(item, "Tx Min", str); + core_mp->TxDeltaMin = katoi(str); + core_parser_get_int_data(item, "Rx Max", str); + core_mp->RxDeltaMax = katoi(str); + core_parser_get_int_data(item, "Rx Min", str); + core_mp->RxDeltaMin = katoi(str); + ipio_debug(DEBUG_MP_TEST, "%s: Tx Max = %d, Tx Min = %d, Rx Max = %d, Rx Min = %d\n", + tItems[i].desp, core_mp->TxDeltaMax, core_mp->TxDeltaMin, + core_mp->RxDeltaMax, core_mp->RxDeltaMin); + } else { + core_parser_get_int_data(item, "Max", str); + tItems[i].max = katoi(str); + core_parser_get_int_data(item, "Min", str); + tItems[i].min = katoi(str); + } + + core_parser_get_int_data(item, "Frame Count", str); + tItems[i].frame_count = katoi(str); + + ipio_debug(DEBUG_MP_TEST, "%s: run = %d, max = %d, min = %d, frame_count = %d\n", tItems[i].desp, + tItems[i].run, tItems[i].max, tItems[i].min, tItems[i].frame_count); + } + + if (tItems[i].run) { + /* LCM off */ + if (strnstr(tItems[i].desp, "LCM", strlen(tItems[i].desp)) != NULL) { + if (!core_mp->oppo_run && !core_mp->oppo_lcm) + core_mp_ctrl_lcm_status(false); + } + + ipio_info("Running Test Item : %s\n", tItems[i].desp); + tItems[i].do_test(i); + tItems[i].test_count++; + test_result = core_mp_compare_retry_cdc_result(i); + + /* To see if this item needs to do retry */ + if (core_mp->retry && (test_result == MP_FAIL)) { + for (count = 0 ; count < RETRY_COUNT; count++) { + ipio_info("retry = %d, item = %s\n", (count+1), tItems[i].desp); + core_mp_retry(i); + test_result = core_mp_compare_retry_cdc_result(i); + if (test_result == MP_PASS) + break; + } + } + tItems[i].item_result = test_result; + /* LCM on */ + if (strnstr(tItems[i].desp, "LCM", strlen(tItems[i].desp)) != NULL) { + if (!core_mp->oppo_run && !core_mp->oppo_lcm) + core_mp_ctrl_lcm_status(true); + } + } + break; + } + } +} +EXPORT_SYMBOL(core_mp_run_test); + +int core_mp_move_code(void) +{ + int ret = 0; + + ipio_info("Prepaing to enter Test Mode\n"); +#ifdef HOST_DOWNLOAD + ilitek_platform_tp_hw_reset(true); +#else + if (core_config_check_cdc_busy(50, 50) < 0) { + ipio_err("%d mode Check busy is timout ! Enter Test Mode failed\n", core_fr->actual_fw_mode); + return ERROR; + } + + if (core_config_ice_mode_enable() < 0) { + ipio_err("Failed to enter ICE mode\n"); + return ERROR; + } + + if (core_config_set_watch_dog(false) < 0) { + ipio_err("Failed to disable watch dog\n"); + } + + /* DMA Trigger */ + core_config_ice_mode_write(0x41010, 0xFF, 1); + + mdelay(30); + + /* CS High */ + core_config_ice_mode_write(0x041000, 0x1, 1); + + mdelay(60); + + core_fr->actual_fw_mode = protocol->test_mode; + /* Code reset */ + core_config_ice_mode_write(0x40040, 0xAE, 1); + + if (core_config_set_watch_dog(true) < 0) { + ipio_err("Failed to enable watch dog\n"); + } + + core_config_ice_mode_disable(); + + if (core_config_check_cdc_busy(300, 50) < 0) { + ipio_err("Check busy is timout ! Enter Test Mode failed\n"); + return ERROR; + } +#endif + ipio_info("FW Test Mode ready\n"); + return ret; +} +EXPORT_SYMBOL(core_mp_move_code); + +void core_mp_test_free(void) +{ + int i; + + ipio_info("Free all allocated mem\n"); + + core_mp->final_result = MP_FAIL; + + for (i = 0 ; i < ARRAY_SIZE(tItems); i++) { + tItems[i].run = false; + tItems[i].max_res = MP_FAIL; + tItems[i].min_res = MP_FAIL; + tItems[i].item_result = MP_PASS; + tItems[i].test_count = 0; + snprintf(tItems[i].result, 16, "%s", "FAIL"); + + if (tItems[i].catalog == TX_RX_DELTA) { + ipio_kfree((void **)&core_mp->rx_delta_buf); + ipio_kfree((void **)&core_mp->tx_delta_buf); + ipio_kfree((void **)&core_mp->tx_max_buf); + ipio_kfree((void **)&core_mp->tx_min_buf); + ipio_kfree((void **)&core_mp->rx_max_buf); + ipio_kfree((void **)&core_mp->rx_min_buf); + } else { + if (tItems[i].spec_option == BENCHMARK) { + ipio_kfree((void **)&tItems[i].bench_mark_max); + ipio_kfree((void **)&tItems[i].bench_mark_min); + } + + ipio_kfree((void **)&tItems[i].result_buf); + ipio_kfree((void **)&tItems[i].max_buf); + ipio_kfree((void **)&tItems[i].min_buf); + vfree(tItems[i].buf); + tItems[i].buf = NULL; + } + } + + ipio_kfree((void **)&frame_buf); + ipio_kfree((void **)&key_buf); + ipio_kfree((void **)&core_mp); +} +EXPORT_SYMBOL(core_mp_test_free); + +static void mp_test_init_item(void) +{ + int i; + + core_mp->mp_items = ARRAY_SIZE(tItems); + + /* assign test functions run on MP flow according to their catalog */ + for (i = 0 ; i < ARRAY_SIZE(tItems); i++) { + + tItems[i].spec_option = 0; + tItems[i].type_option = 0; + tItems[i].run = false; + tItems[i].max = 0; + tItems[i].max_res = MP_FAIL; + tItems[i].item_result = MP_PASS; + tItems[i].min = 0; + tItems[i].min_res = MP_FAIL; + tItems[i].frame_count = 0; + tItems[i].trimmed_mean = 0; + tItems[i].lowest_percentage = 0; + tItems[i].highest_percentage = 0; + tItems[i].result_buf = NULL; + tItems[i].buf = NULL; + tItems[i].max_buf = NULL; + tItems[i].min_buf = NULL; + tItems[i].bench_mark_max = NULL; + tItems[i].bench_mark_min = NULL; + tItems[i].node_type = NULL; + tItems[i].test_count = 0; + + if (tItems[i].catalog == MUTUAL_TEST) { + tItems[i].do_test = mutual_test; + } else if (tItems[i].catalog == TX_RX_DELTA) { + tItems[i].do_test = mutual_test; + } else if (tItems[i].catalog == UNTOUCH_P2P) { + tItems[i].do_test = mutual_test; + } else if (tItems[i].catalog == PIXEL) { + tItems[i].do_test = mutual_test; + } else if (tItems[i].catalog == OPEN_TEST) { + if (strcmp(tItems[i].name, "open_integration_sp") == 0) + tItems[i].do_test = open_test_sp; + else + tItems[i].do_test = mutual_test; + } else if (tItems[i].catalog == KEY_TEST) { + tItems[i].do_test = key_test; + } else if (tItems[i].catalog == SELF_TEST) { + tItems[i].do_test = self_test; + } else if (tItems[i].catalog == ST_TEST) { + tItems[i].do_test = st_test; + } else if (tItems[i].catalog == PEAK_TO_PEAK_TEST) { + tItems[i].do_test = mutual_test; + } else if (tItems[i].catalog == SHORT_TEST) { + tItems[i].do_test = mutual_test; + } + + tItems[i].result = kmalloc(16, GFP_KERNEL); + snprintf(tItems[i].result, 16, "%s", "FAIL"); + } + + /* + * assign protocol command written into firmware via I2C, + * which might be differnet if the version of protocol was changed. + */ + tItems[0].cmd = protocol->mutual_dac; + tItems[1].cmd = protocol->mutual_bg; + tItems[2].cmd = protocol->mutual_signal; + tItems[3].cmd = protocol->mutual_no_bk; + tItems[4].cmd = protocol->mutual_has_bk; + tItems[5].cmd = protocol->mutual_bk_dac; + tItems[6].cmd = protocol->self_dac; + tItems[7].cmd = protocol->self_bg; + tItems[8].cmd = protocol->self_signal; + tItems[9].cmd = protocol->self_no_bk; + tItems[10].cmd = protocol->self_has_bk; + tItems[11].cmd = protocol->self_bk_dac; + tItems[12].cmd = protocol->key_dac; + tItems[13].cmd = protocol->key_bg; + tItems[14].cmd = protocol->key_no_bk; + tItems[15].cmd = protocol->key_has_bk; + tItems[16].cmd = protocol->key_open; + tItems[17].cmd = protocol->key_short; + tItems[18].cmd = protocol->st_dac; + tItems[19].cmd = protocol->st_bg; + tItems[20].cmd = protocol->st_no_bk; + tItems[21].cmd = protocol->st_has_bk; + tItems[22].cmd = protocol->st_open; + tItems[23].cmd = protocol->tx_short; + tItems[24].cmd = protocol->rx_short; + tItems[25].cmd = protocol->rx_open; + tItems[26].cmd = protocol->cm_data; + tItems[27].cmd = protocol->cs_data; + tItems[28].cmd = protocol->tx_rx_delta; + tItems[29].cmd = protocol->mutual_signal; + tItems[30].cmd = protocol->mutual_no_bk; + tItems[31].cmd = protocol->mutual_has_bk; + tItems[32].cmd = protocol->rx_open; + tItems[33].cmd = protocol->rx_open; + tItems[34].cmd = protocol->peak_to_peak; +} + +int core_mp_init(void) +{ + int res = 0; + + if (!ERR_ALLOC_MEM(core_config->tp_info)) { + if (core_mp == NULL) { + core_mp = kzalloc(sizeof(*core_mp), GFP_KERNEL); + if (ERR_ALLOC_MEM(core_mp)) { + ipio_err("Failed to init core_mp, %ld\n", PTR_ERR(core_mp)); + res = -ENOMEM; + goto out; + } + + core_mp->xch_len = core_config->tp_info->nXChannelNum; + core_mp->ych_len = core_config->tp_info->nYChannelNum; + + core_mp->stx_len = core_config->tp_info->self_tx_channel_num; + core_mp->srx_len = core_config->tp_info->self_rx_channel_num; + + core_mp->key_len = core_config->tp_info->nKeyCount; + core_mp->st_len = core_config->tp_info->side_touch_type; + + core_mp->tdf = 240; + core_mp->busy_cdc = INT_CHECK; + + core_mp->run = false; + core_mp->retry = true; + core_mp->oppo_run = false; + core_mp->oppo_lcm = false; + core_mp->final_result = MP_FAIL; + + mp_test_init_item(); + } + } else { + ipio_err("Failed to allocate core_mp mem as did not find TP info\n"); + res = -ENOMEM; + } + +out: + return res; +} +EXPORT_SYMBOL(core_mp_init); diff --git a/drivers/input/touchscreen/ilitek_mmi/core/mp_test.h b/drivers/input/touchscreen/ilitek_mmi/core/mp_test.h new file mode 100644 index 000000000000..e3b51c320da4 --- /dev/null +++ b/drivers/input/touchscreen/ilitek_mmi/core/mp_test.h @@ -0,0 +1,172 @@ +/* + * ILITEK Touch IC driver + * + * Copyright (C) 2011 ILI Technology Corporation. + * + * Author: Dicky Chiang + * Based on TDD v7.0 implemented by Mstar & ILITEK + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ + +#ifndef __MP_TEST_H +#define __MP_TEST_H + +#define MP_PASS 1 +#define MP_FAIL -1 +#define BENCHMARK 1 +#define NODETYPE 1 +#define RAWDATA_NO_BK_DATA_SHIFT_9881H 8192 +#define RAWDATA_NO_BK_DATA_SHIFT_9881F 4096 +#define TYPE_BENCHMARK 0 +#define TYPE_NO_JUGE 1 +#define TYPE_JUGE 2 + +struct mp_test_P540_open { + int32_t *cbk_700; + int32_t *cbk_250; + int32_t *cbk_200; + int32_t *charg_rate; + int32_t *full_Open; + int32_t *dac; + int32_t *cdc; +}; + +struct mp_test_items { + char *name; + /* The description must be the same as ini's section name */ + char *desp; + char *result; + int catalog; + uint8_t cmd; + uint8_t spec_option; + uint8_t type_option; + bool run; + int max; + int max_res; + int item_result; + int test_count; + int min; + int min_res; + int frame_count; + int trimmed_mean; + int lowest_percentage; + int highest_percentage; + int32_t *result_buf; + int32_t *buf; + int32_t *max_buf; + int32_t *min_buf; + int32_t *bench_mark_max; + int32_t *bench_mark_min; + int32_t *node_type; + int (*do_test)(int index); +}; + +struct mp_nodp_calc { + bool is60HZ; + bool isLongV; + + /* Input */ + uint16_t tshd; + uint8_t multi_term_num_120; + uint8_t multi_term_num_60; + uint16_t tsvd_to_tshd; + uint16_t qsh_tdf; + + /* Settings */ + uint8_t auto_trim; + uint16_t tp_tshd_wait_120; + uint16_t ddi_width_120; + uint16_t tp_tshd_wait_60; + uint16_t ddi_width_60; + uint16_t dp_to_tp; + uint16_t tx_wait_const; + uint16_t tx_wait_const_multi; + uint16_t tp_to_dp; + uint8_t phase_adc; + uint8_t r2d_pw; + uint8_t rst_pw; + uint8_t rst_pw_back; + uint8_t dac_td; + uint8_t qsh_pw; + uint8_t qsh_td; + uint8_t drop_nodp; + + /* Output */ + uint32_t first_tp_width; + uint32_t tp_width; + uint32_t txpw; + uint32_t long_tsdh_wait; + uint32_t nodp; +}; + +struct core_mp_test_data { + struct mp_nodp_calc nodp; + /* A flag shows a test run in particular */ + bool run; + bool oppo_run; + bool oppo_lcm; + bool m_signal; + bool m_dac; + bool s_signal; + bool s_dac; + bool key_dac; + bool st_dac; + bool p_no_bk; + bool p_has_bk; + bool open_integ; + bool open_cap; + + int xch_len; + int ych_len; + int stx_len; + int srx_len; + int key_len; + int st_len; + int frame_len; + int mp_items; + int final_result; + + /* Tx/Rx threshold & buffer */ + int TxDeltaMax; + int TxDeltaMin; + int RxDeltaMax; + int RxDeltaMin; + int32_t *tx_delta_buf; + int32_t *rx_delta_buf; + int32_t *tx_max_buf; + int32_t *tx_min_buf; + int32_t *rx_max_buf; + int32_t *rx_min_buf; + + int tdf; + bool retry; + bool busy_cdc; + bool ctrl_lcm; +}; + +extern struct core_mp_test_data *core_mp; +extern struct mp_test_items tItems[]; + +extern void dump_data(void *data, int type, int len, int row_len, const char *name); +extern int core_mp_calc_timing_nodp(void); +extern int core_mp_ctrl_lcm_status(bool on); +extern void core_mp_test_free(void); +extern void core_mp_show_result(void); +extern void core_mp_run_test(char *item, bool ini); +extern int core_mp_move_code(void); +extern int core_mp_init(void); +#endif diff --git a/drivers/input/touchscreen/ilitek_mmi/core/parser.c b/drivers/input/touchscreen/ilitek_mmi/core/parser.c new file mode 100644 index 000000000000..99179979ba7b --- /dev/null +++ b/drivers/input/touchscreen/ilitek_mmi/core/parser.c @@ -0,0 +1,500 @@ +/* + * ILITEK Touch IC driver + * + * Copyright (C) 2011 ILI Technology Corporation. + * + * Author: Dicky Chiang + * Based on TDD v7.0 implemented by Mstar & ILITEK + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ + +#include "../common.h" +#include "parser.h" +#include "config.h" + +#define PARSER_MAX_CFG_BUF (512 * 3) +#define PARSER_MAX_KEY_NUM (600 * 3) +#define PARSER_MAX_KEY_NAME_LEN 100 +#define PARSER_MAX_KEY_VALUE_LEN 2000 + +#define INI_ERR_OUT_OF_LINE -1 + +struct ini_file_data { + char pSectionName[PARSER_MAX_KEY_NAME_LEN]; + char pKeyName[PARSER_MAX_KEY_NAME_LEN]; + char pKeyValue[PARSER_MAX_KEY_VALUE_LEN]; + int iSectionNameLen; + int iKeyNameLen; + int iKeyValueLen; +} ilitek_ini_file_data[PARSER_MAX_KEY_NUM]; + +int g_ini_items; + +static int isspace_t(int x) +{ + if (x == ' ' || x == '\t' || x == '\n' || x == '\f' || x == '\b' || x == '\r') + return ERROR; + else + return SUCCESS; +} + +static char *ini_str_trim_r(char *buf) +{ + int len, i; + char tmp[512] = { 0 }; + + len = strlen(buf)+1; + for (i = 0 ; i < len ; i++) { + if (buf[i] != ' ') + break; + } + if (i < len) + strlcpy(tmp, (buf + i), (len - i)); + + strlcpy(buf, tmp, len); + return buf; +} + +/* Count the number of each line and assign the content to tmp buffer */ +static int get_ini_phy_line(char *data, char *buffer, int maxlen) +{ + int i = 0; + int j = 0; + int iRetNum = -1; + char ch1 = '\0'; + + for (i = 0, j = 0 ; i < maxlen ; j++) { + ch1 = data[j]; + iRetNum = j + 1; + if (ch1 == '\n' || ch1 == '\r') { /* line end */ + ch1 = data[j + 1]; + if (ch1 == '\n' || ch1 == '\r') { + iRetNum++; + } + + break; + } else if (ch1 == 0x00) { + //iRetNum = -1; + break; /* file end */ + } + + buffer[i++] = ch1; + } + + buffer[i] = '\0'; + return iRetNum; +} + +static int get_ini_phy_data(char *data, int fsize) +{ + int i, n = 0, res = 0, banchmark_flag = 0, empty_section, nodetype_flag = 0; + int offset = 0, isEqualSign = 0; + char *ini_buf = NULL, *tmpSectionName = NULL, *temp; + char M_CFG_SSL = '['; + char M_CFG_SSR = ']'; +/* char M_CFG_NIS = ':'; */ + char M_CFG_NTS = '#'; + char M_CFG_EQS = '='; + + if (data == NULL) { + ipio_err("INI data is NULL\n"); + res = -EINVAL; + goto out; + } + + ini_buf = kzalloc((PARSER_MAX_CFG_BUF + 1) * sizeof(char), GFP_KERNEL); + if (ERR_ALLOC_MEM(ini_buf)) { + ipio_err("Failed to allocate ini_buf memory, %ld\n", PTR_ERR(ini_buf)); + res = -ENOMEM; + goto out; + } + + tmpSectionName = kzalloc((PARSER_MAX_CFG_BUF + 1) * sizeof(char), GFP_KERNEL); + if (ERR_ALLOC_MEM(tmpSectionName)) { + ipio_err("Failed to allocate tmpSectionName memory, %ld\n", PTR_ERR(tmpSectionName)); + res = -ENOMEM; + goto out; + } + + temp = strnstr(data, TYPE_MARK, fsize); + if (temp != NULL) { + ipio_debug(DEBUG_PARSER, "Find Type mark, locat = %ld", temp-data); + if (core_config->core_type == CORE_TYPE_B) + offset = temp-data; + else + fsize = temp-data; + } + + while (true) { + banchmark_flag = 0; + empty_section = 0; + nodetype_flag = 0; + if (g_ini_items > PARSER_MAX_KEY_NUM) { + ipio_err("MAX_KEY_NUM: Out of length\n"); + goto out; + } + + if (offset >= fsize) + goto out;/*over size*/ + n = get_ini_phy_line(data + offset, ini_buf, PARSER_MAX_CFG_BUF); + + if (n < 0) { + ipio_err("End of Line\n"); + goto out; + } + + offset += n; + + n = strlen(ini_str_trim_r(ini_buf)); + + if (n == 0 || ini_buf[0] == M_CFG_NTS) + continue; + + /* Get section names */ + if (n > 2 && ((ini_buf[0] == M_CFG_SSL && ini_buf[n - 1] != M_CFG_SSR))) { + ipio_err("Bad Section: %s\n", ini_buf); + res = -EINVAL; + goto out; + } else { + if (ini_buf[0] == M_CFG_SSL) { + ilitek_ini_file_data[g_ini_items].iSectionNameLen = n - 2; + if (ilitek_ini_file_data[g_ini_items].iSectionNameLen > PARSER_MAX_KEY_NAME_LEN) { + ipio_err("MAX_KEY_NAME_LEN: Out Of Length\n"); + res = INI_ERR_OUT_OF_LINE; + goto out; + } + + ini_buf[n - 1] = 0x00; + strlcpy((char *)tmpSectionName, ini_buf + 1, ((PARSER_MAX_CFG_BUF + 1) * sizeof(char))); + banchmark_flag = 0; + nodetype_flag = 0; + ipio_debug(DEBUG_PARSER, "Section Name: %s, Len: %d, offset = %d\n", tmpSectionName, n - 2, offset); + continue; + } + } + + /* copy section's name without square brackets to its real buffer */ + strlcpy(ilitek_ini_file_data[g_ini_items].pSectionName, tmpSectionName, strlen(tmpSectionName)+1); + ilitek_ini_file_data[g_ini_items].iSectionNameLen = strlen(tmpSectionName); + + isEqualSign = 0; + for (i = 0 ; i < n ; i++) { + if (ini_buf[i] == M_CFG_EQS) { + isEqualSign = i; + break; + } + if (ini_buf[i] == M_CFG_SSL || ini_buf[i] == M_CFG_SSR) { + empty_section = 1; + break; + } + } + + if (isEqualSign == 0) { + if (empty_section) + continue; + + if (strnstr(ilitek_ini_file_data[g_ini_items].pSectionName, "Benchmark_Data", strlen(ilitek_ini_file_data[g_ini_items].pSectionName)) > 0) { + banchmark_flag = 1; + isEqualSign = -1; + } else if (strnstr(ilitek_ini_file_data[g_ini_items].pSectionName, "Node Type", strlen(ilitek_ini_file_data[g_ini_items].pSectionName)) > 0) { + nodetype_flag = 1; + isEqualSign = -1; + } else { + continue; + } + } + if (banchmark_flag) { + /* Get Key names */ + ilitek_ini_file_data[g_ini_items].iKeyNameLen = strlen(BENCHMARK_KEY_NAME); + strlcpy(ilitek_ini_file_data[g_ini_items].pKeyName, BENCHMARK_KEY_NAME, strlen(BENCHMARK_KEY_NAME)+1); + ilitek_ini_file_data[g_ini_items].iKeyValueLen = n; + } else if (nodetype_flag) { + /* Get Key names */ + ilitek_ini_file_data[g_ini_items].iKeyNameLen = strlen(NODE_TYPE_KEY_NAME); + strlcpy(ilitek_ini_file_data[g_ini_items].pKeyName, NODE_TYPE_KEY_NAME, strlen(NODE_TYPE_KEY_NAME)+1); + ilitek_ini_file_data[g_ini_items].iKeyValueLen = n; + } else { + /* Get Key names */ + ilitek_ini_file_data[g_ini_items].iKeyNameLen = isEqualSign; + if (ilitek_ini_file_data[g_ini_items].iKeyNameLen > PARSER_MAX_KEY_NAME_LEN) { + /* ret = CFG_ERR_OUT_OF_LEN; */ + ipio_err("MAX_KEY_NAME_LEN: Out Of Length\n"); + res = INI_ERR_OUT_OF_LINE; + goto out; + } + + memcpy(ilitek_ini_file_data[g_ini_items].pKeyName, + ini_buf, ilitek_ini_file_data[g_ini_items].iKeyNameLen); + ilitek_ini_file_data[g_ini_items].iKeyValueLen = n - isEqualSign - 1; + } + + /* Get a value assigned to a key */ + + if (ilitek_ini_file_data[g_ini_items].iKeyValueLen > PARSER_MAX_KEY_VALUE_LEN) { + ipio_err("MAX_KEY_VALUE_LEN: Out Of Length\n"); + res = INI_ERR_OUT_OF_LINE; + goto out; + } + + memcpy(ilitek_ini_file_data[g_ini_items].pKeyValue, + ini_buf + isEqualSign + 1, ilitek_ini_file_data[g_ini_items].iKeyValueLen); + + ipio_debug(DEBUG_PARSER, "%s = %s\n", ilitek_ini_file_data[g_ini_items].pKeyName, + ilitek_ini_file_data[g_ini_items].pKeyValue); + + g_ini_items++; + } + +out: + ipio_kfree((void **)&ini_buf); + ipio_kfree((void **)&tmpSectionName); + return res; +} + +static void init_ilitek_ini_data(void) +{ + int i; + + g_ini_items = 0; + + /* Initialise ini strcture */ + for (i = 0 ; i < PARSER_MAX_KEY_NUM; i++) { + memset(ilitek_ini_file_data[i].pSectionName, 0, PARSER_MAX_KEY_NAME_LEN); + memset(ilitek_ini_file_data[i].pKeyName, 0, PARSER_MAX_KEY_NAME_LEN); + memset(ilitek_ini_file_data[i].pKeyValue, 0, PARSER_MAX_KEY_VALUE_LEN); + ilitek_ini_file_data[i].iSectionNameLen = 0; + ilitek_ini_file_data[i].iKeyNameLen = 0; + ilitek_ini_file_data[i].iKeyValueLen = 0; + } +} + +/* get_ini_key_value - get ini's key and value based on its section from its array + * + * A function is digging into the key and value by its section from the ini array. + * The comparsion is not only a string's name, but its length. + */ +static int get_ini_key_value(char *section, char *key, char *value) +{ + int i = 0; + int ret = ERROR; + int len = 0; + + len = strlen(key); + + for (i = 0 ; i < g_ini_items; i++) { + + if (strcmp(section, ilitek_ini_file_data[i].pSectionName) != 0) + continue; + if (strcmp(key, ilitek_ini_file_data[i].pKeyName) == 0) { + memcpy(value, ilitek_ini_file_data[i].pKeyValue, ilitek_ini_file_data[i].iKeyValueLen); + ret = 0; + break; + } + } + return ret; +} + + + +void core_parser_nodetype(int32_t *type_ptr, char *desp) +{ + + int i = 0, j = 0, index1 = 0, temp, count = 0; + char str[512] = { 0 }, record = ','; + + for (i = 0 ; i < g_ini_items; i++) { + + if ((strnstr(ilitek_ini_file_data[i].pSectionName, desp, strlen(ilitek_ini_file_data[i].pSectionName)) <= 0) || + strcmp(ilitek_ini_file_data[i].pKeyName, NODE_TYPE_KEY_NAME) != 0) { + continue; + } + + record = ','; + for (j = 0, index1 = 0 ; j <= ilitek_ini_file_data[i].iKeyValueLen ; j++) { + + if (ilitek_ini_file_data[i].pKeyValue[j] == ';' || j == ilitek_ini_file_data[i].iKeyValueLen) { + + if (record != '.') { + memset(str, 0, sizeof(str)); + memcpy(str, &ilitek_ini_file_data[i].pKeyValue[index1], (j - index1)); + temp = katoi(str); + type_ptr[count] = temp; + printk("%04d, ", temp); + count++; + } + record = ilitek_ini_file_data[i].pKeyValue[j]; + index1 = j+1; + + } + } + printk("\n"); + + } +} + +void core_parser_benchmark(int32_t *max_ptr, int32_t *min_ptr, int8_t type, char *desp) +{ + int i = 0, j = 0, index1 = 0, temp, count = 0; + char str[512] = { 0 }, record = ','; + int32_t data[4]; + + for (i = 0 ; i < g_ini_items; i++) { + if ((strnstr(ilitek_ini_file_data[i].pSectionName, desp, strlen(ilitek_ini_file_data[i].pSectionName)) <= 0) || + strcmp(ilitek_ini_file_data[i].pKeyName, BENCHMARK_KEY_NAME) != 0) { + continue; + } + + record = ','; + for (j = 0, index1 = 0 ; j <= ilitek_ini_file_data[i].iKeyValueLen ; j++) { + if (ilitek_ini_file_data[i].pKeyValue[j] == ',' || ilitek_ini_file_data[i].pKeyValue[j] == ';' || + ilitek_ini_file_data[i].pKeyValue[j] == '.' || j == ilitek_ini_file_data[i].iKeyValueLen) { + + if (record != '.') { + memset(str, 0, sizeof(str)); + memcpy(str, &ilitek_ini_file_data[i].pKeyValue[index1], (j - index1)); + temp = katoi(str); + data[(count % 4)] = temp; + if ((count % 4) == 3) { + if (data[0] == 1) { + if (type == VALUE) { + max_ptr[count/4] = data[1] + data[2]; + min_ptr[count/4] = data[1] + data[3]; + } else { + max_ptr[count/4] = data[1] + (data[1] * data[2]) / 100; + min_ptr[count/4] = data[1] - (data[1] * data[3]) / 100; + } + } else { + max_ptr[count/4] = INT_MAX; + min_ptr[count/4] = INT_MIN; + } + } + count++; + } + record = ilitek_ini_file_data[i].pKeyValue[j]; + index1 = j + 1; + } + } + } +} +EXPORT_SYMBOL(core_parser_benchmark); + +int core_parser_get_u8_array(char *key, uint8_t *buf) +{ + char *s = key; + char *pToken; + int res, conut = 0; + long s_to_long = 0; + + if (isspace_t((int)(unsigned char)*s) == SUCCESS) { + while ((pToken = strsep(&s, ",")) != NULL) { + res = kstrtol(pToken, 0, &s_to_long); + if (res == 0) + buf[conut] = s_to_long; + else + ipio_info("convert string too long, res = %d\n", res); + conut++; + } + } + + return conut; +} +EXPORT_SYMBOL(core_parser_get_u8_array); + +int core_parser_get_int_data(char *section, char *keyname, char *rv) +{ + int len = 0; + char value[512] = { 0 }; + + if (rv == NULL || section == NULL || keyname == NULL) { + ipio_err("Parameters are invalid\n"); + return -EINVAL; + } + + /* return a white-space string if get nothing */ + if (get_ini_key_value(section, keyname, value) < 0) { + snprintf(rv, sizeof(value), "%s", value); + return 0; + } + + len = snprintf(rv, sizeof(value), "%s", value); + printk("section =%s,keyname =%s,value = %s,rv =%s\n", section, keyname, value, rv);//summer + return len; +} +EXPORT_SYMBOL(core_parser_get_int_data); + + +int core_parser_path(char *path) +{ + int res = 0, fsize = 0; + char *tmp = NULL; + struct file *f = NULL; + struct inode *inode; + mm_segment_t old_fs; + loff_t pos = 0; + + ipio_info("path = %s\n", path); + f = filp_open(path, O_RDONLY, 0); + if (ERR_ALLOC_MEM(f)) { + ipio_err("Failed to open the file at %ld.\n", PTR_ERR(f)); + res = -ENOENT; + return res; + } + +#if KERNEL_VERSION(3, 18, 0) >= LINUX_VERSION_CODE + inode = f->f_dentry->d_inode; +#else + inode = f->f_path.dentry->d_inode; +#endif + + fsize = inode->i_size; + ipio_info("fsize = %d\n", fsize); + if (fsize <= 0) { + ipio_err("The size of file is invaild\n"); + res = -EINVAL; + goto out; + } + + tmp = kmalloc(fsize+1, GFP_KERNEL); + if (ERR_ALLOC_MEM(tmp)) { + ipio_err("Failed to allocate tmp memory, %ld\n", PTR_ERR(tmp)); + res = -ENOMEM; + goto out; + } + + /* ready to map user's memory to obtain data by reading files */ + old_fs = get_fs(); + set_fs(get_ds()); + vfs_read(f, tmp, fsize, &pos); + set_fs(old_fs); + tmp[fsize] = 0x00; + + init_ilitek_ini_data(); + + res = get_ini_phy_data(tmp, fsize); + if (res < 0) { + ipio_err("Failed to get physical ini data, res = %d\n", res); + goto out; + } + + ipio_info("Parsing INI file doen\n"); + +out: + ipio_kfree((void **)&tmp); + filp_close(f, NULL); + return res; +} +EXPORT_SYMBOL(core_parser_path); diff --git a/drivers/input/touchscreen/ilitek_mmi/core/parser.h b/drivers/input/touchscreen/ilitek_mmi/core/parser.h new file mode 100644 index 000000000000..7d85612bd812 --- /dev/null +++ b/drivers/input/touchscreen/ilitek_mmi/core/parser.h @@ -0,0 +1,40 @@ +/* + * ILITEK Touch IC driver + * + * Copyright (C) 2011 ILI Technology Corporation. + * + * Author: Dicky Chiang + * Based on TDD v7.0 implemented by Mstar & ILITEK + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ + +#ifndef __PARSER_H +#define __PARSER_H +#include "config.h" + +#define BENCHMARK_KEY_NAME "Benchmark_Data" +#define NODE_TYPE_KEY_NAME "node_type_Data" +#define TYPE_MARK "[Driver Type Mark]" +#define VALUE 0 + +extern void core_parser_nodetype(int32_t *type_ptr, char *desp); +extern void core_parser_benchmark(int32_t *max_ptr, int32_t *min_ptr, int8_t type, char *desp); +extern int core_parser_get_u8_array(char *key, uint8_t *buf); +extern int core_parser_get_int_data(char *section, char *keyname, char *rv); +extern int core_parser_path(char *path); + +#endif diff --git a/drivers/input/touchscreen/ilitek_mmi/core/protocol.c b/drivers/input/touchscreen/ilitek_mmi/core/protocol.c new file mode 100644 index 000000000000..aab6c631904f --- /dev/null +++ b/drivers/input/touchscreen/ilitek_mmi/core/protocol.c @@ -0,0 +1,414 @@ +/* + * ILITEK Touch IC driver + * + * Copyright (C) 2011 ILI Technology Corporation. + * + * Author: Dicky Chiang + * Based on TDD v7.0 implemented by Mstar & ILITEK + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ +#include "../common.h" +#include "config.h" +#include "i2c.h" +#include "spi.h" +#include "protocol.h" + +#define FUNC_NUM 20 + +struct protocol_sup_list { + uint8_t major; + uint8_t mid; + uint8_t minor; +}; + +struct DataItem { + int key; + char *name; + int len; + uint8_t *cmd; +}; + +struct DataItem *hashArray[FUNC_NUM]; +struct protocol_cmd_list *protocol; + +int core_write(uint8_t nSlaveId, uint8_t *pBuf, uint16_t nSize) +{ +#if (INTERFACE == I2C_INTERFACE) + return core_i2c_write(nSlaveId, pBuf, nSize); +#else + return core_spi_write(pBuf, nSize); +#endif +} +EXPORT_SYMBOL(core_write); + +int core_read(uint8_t nSlaveId, uint8_t *pBuf, uint16_t nSize) +{ +#if (INTERFACE == I2C_INTERFACE) + return core_i2c_read(nSlaveId, pBuf, nSize); +#else + return core_spi_read(pBuf, nSize); +#endif +} +EXPORT_SYMBOL(core_read); + +static int hashCode(int key) +{ + return key % FUNC_NUM; +} + +static struct DataItem *search_func(int key) +{ + int hashIndex = hashCode(key); + + while (hashArray[hashIndex] != NULL) { + if (hashArray[hashIndex]->key == key) + return hashArray[hashIndex]; + + hashIndex++; + hashIndex %= FUNC_NUM; + } + + return NULL; +} + +static void insert_func(int key, int len, uint8_t *cmd, char *name) +{ + int i, hashIndex; + struct DataItem *tmp = NULL; + + tmp = kmalloc(sizeof(struct DataItem), GFP_KERNEL); + if (ERR_ALLOC_MEM(tmp)) { + ipio_err("Failed to allocate memory\n"); + return; + } + + tmp->key = key; + tmp->name = name; + tmp->len = len; + + tmp->cmd = kcalloc(len, sizeof(uint8_t), GFP_KERNEL); + for (i = 0 ; i < len ; i++) + tmp->cmd[i] = cmd[i]; + + hashIndex = hashCode(key); + + while (hashArray[hashIndex] != NULL) { + hashIndex++; + hashIndex %= FUNC_NUM; + } + + hashArray[hashIndex] = tmp; +} + +static void free_func_hash(void) +{ + int i; + + for (i = 0 ; i < FUNC_NUM; i++) + ipio_kfree((void **)&hashArray[i]); +} + +static void create_func_hash(void) +{ + /* if protocol is updated, we free its allocated mem at all before create new ones. */ + free_func_hash(); + + insert_func(0, protocol->func_ctrl_len, protocol->sense_ctrl, "sense_ctrl"); + insert_func(1, protocol->func_ctrl_len, protocol->sleep_ctrl, "sleep_ctrl"); + insert_func(2, protocol->func_ctrl_len, protocol->glove_ctrl, "glove_ctrl"); + insert_func(3, protocol->func_ctrl_len, protocol->stylus_ctrl, "stylus_ctrl"); + insert_func(4, protocol->func_ctrl_len, protocol->tp_scan_mode, "tp_scan_mode"); + insert_func(5, protocol->func_ctrl_len, protocol->lpwg_ctrl, "lpwg_ctrl"); + insert_func(6, protocol->func_ctrl_len, protocol->gesture_ctrl, "gesture_ctrl"); + insert_func(7, protocol->func_ctrl_len, protocol->phone_cover_ctrl, "phone_cover_ctrl"); + insert_func(8, protocol->func_ctrl_len, protocol->finger_sense_ctrl, "finger_sense_ctrl"); + insert_func(9, protocol->window_len, protocol->phone_cover_window, "phone_cover_window"); + insert_func(10, protocol->func_ctrl_len, protocol->finger_sense_ctrl, "finger_sense_ctrl"); + insert_func(11, protocol->func_ctrl_len, protocol->proximity_ctrl, "proximity_ctrl"); + insert_func(12, protocol->func_ctrl_len, protocol->plug_ctrl, "plug_ctrl"); +} + +static void config_protocol_v5_cmd(void) +{ + if (protocol->mid == 0x0) { + protocol->func_ctrl_len = 2; + + protocol->sense_ctrl[0] = 0x1; + protocol->sense_ctrl[1] = 0x0; + + protocol->sleep_ctrl[0] = 0x2; + protocol->sleep_ctrl[1] = 0x0; + + protocol->glove_ctrl[0] = 0x6; + protocol->glove_ctrl[1] = 0x0; + + protocol->stylus_ctrl[0] = 0x7; + protocol->stylus_ctrl[1] = 0x0; + + protocol->tp_scan_mode[0] = 0x8; + protocol->tp_scan_mode[1] = 0x0; + + protocol->lpwg_ctrl[0] = 0xA; + protocol->lpwg_ctrl[1] = 0x0; + + protocol->gesture_ctrl[0] = 0xB; + protocol->gesture_ctrl[1] = 0x3F; + + protocol->phone_cover_ctrl[0] = 0xC; + protocol->phone_cover_ctrl[1] = 0x0; + + protocol->finger_sense_ctrl[0] = 0xF; + protocol->finger_sense_ctrl[1] = 0x0; + + protocol->phone_cover_window[0] = 0xD; + + /* Non support on v5.0 */ + /* protocol->proximity_ctrl[0] = 0x10; */ + /* protocol->proximity_ctrl[1] = 0x0; */ + + /* protocol->plug_ctrl[0] = 0x11; */ + /* protocol->plug_ctrl[1] = 0x0; */ + } else { + protocol->func_ctrl_len = 3; + + protocol->sense_ctrl[0] = 0x1; + protocol->sense_ctrl[1] = 0x1; + protocol->sense_ctrl[2] = 0x0; + + protocol->sleep_ctrl[0] = 0x1; + protocol->sleep_ctrl[1] = 0x2; + protocol->sleep_ctrl[2] = 0x0; + + protocol->glove_ctrl[0] = 0x1; + protocol->glove_ctrl[1] = 0x6; + protocol->glove_ctrl[2] = 0x0; + + protocol->stylus_ctrl[0] = 0x1; + protocol->stylus_ctrl[1] = 0x7; + protocol->stylus_ctrl[2] = 0x0; + + protocol->tp_scan_mode[0] = 0x1; + protocol->tp_scan_mode[1] = 0x8; + protocol->tp_scan_mode[2] = 0x0; + + protocol->lpwg_ctrl[0] = 0x1; + protocol->lpwg_ctrl[1] = 0xA; + protocol->lpwg_ctrl[2] = 0x0; + + protocol->gesture_ctrl[0] = 0x1; + protocol->gesture_ctrl[1] = 0xB; + protocol->gesture_ctrl[2] = 0x3F; + + protocol->phone_cover_ctrl[0] = 0x1; + protocol->phone_cover_ctrl[1] = 0xC; + protocol->phone_cover_ctrl[2] = 0x0; + + protocol->finger_sense_ctrl[0] = 0x1; + protocol->finger_sense_ctrl[1] = 0xF; + protocol->finger_sense_ctrl[2] = 0x0; + + protocol->proximity_ctrl[0] = 0x1; + protocol->proximity_ctrl[1] = 0x10; + protocol->proximity_ctrl[2] = 0x0; + + protocol->plug_ctrl[0] = 0x1; + protocol->plug_ctrl[1] = 0x11; + protocol->plug_ctrl[2] = 0x0; + + protocol->phone_cover_window[0] = 0xE; + } + if (protocol->mid >= 0x3) + protocol->fw_ver_len = 9; + else + protocol->fw_ver_len = 4; + + if (protocol->mid == 0x1) { + protocol->pro_ver_len = 3; + } else { + protocol->pro_ver_len = 4; + } + + protocol->tp_info_len = 14; + protocol->key_info_len = 30; + protocol->core_ver_len = 5; + protocol->window_len = 8; + + /* The commadns about panel information */ + protocol->cmd_read_ctrl = P5_0_READ_DATA_CTRL; + protocol->cmd_get_tp_info = P5_0_GET_TP_INFORMATION; + protocol->cmd_get_key_info = P5_0_GET_KEY_INFORMATION; + protocol->cmd_get_fw_ver = P5_0_GET_FIRMWARE_VERSION; + protocol->cmd_get_pro_ver = P5_0_GET_PROTOCOL_VERSION; + protocol->cmd_get_core_ver = P5_0_GET_CORE_VERSION; + protocol->cmd_mode_ctrl = P5_0_MODE_CONTROL; + protocol->cmd_cdc_busy = P5_0_CDC_BUSY_STATE; + protocol->cmd_i2cuart = P5_0_I2C_UART; + + /* The commands about the packets of finger report from FW */ + protocol->unknown_mode = P5_0_FIRMWARE_UNKNOWN_MODE; + protocol->demo_mode = P5_0_FIRMWARE_DEMO_MODE; + protocol->debug_mode = P5_0_FIRMWARE_DEBUG_MODE; + protocol->test_mode = P5_0_FIRMWARE_TEST_MODE; + protocol->i2cuart_mode = P5_0_FIRMWARE_I2CUART_MODE; + protocol->gesture_mode = P5_0_FIRMWARE_GESTURE_MODE; + + protocol->demo_pid = P5_0_DEMO_PACKET_ID; + protocol->debug_pid = P5_0_DEBUG_PACKET_ID; + protocol->test_pid = P5_0_TEST_PACKET_ID; + protocol->i2cuart_pid = P5_0_I2CUART_PACKET_ID; + protocol->ges_pid = P5_0_GESTURE_PACKET_ID; + + protocol->demo_len = P5_0_DEMO_MODE_PACKET_LENGTH; + protocol->debug_len = P5_0_DEBUG_MODE_PACKET_LENGTH; + protocol->test_len = P5_0_TEST_MODE_PACKET_LENGTH; + + /* The commands about MP test */ + protocol->cmd_cdc = P5_0_SET_CDC_INIT; + protocol->cmd_get_cdc = P5_0_GET_CDC_DATA; + + if (protocol->mid < 4) { + protocol->cdc_len = 3; + } else { + protocol->cdc_len = 15; + } + + protocol->mutual_dac = 0x1; + protocol->mutual_bg = 0x2; + protocol->mutual_signal = 0x3; + protocol->mutual_no_bk = 0x5; + protocol->mutual_has_bk = 0x8; + protocol->mutual_bk_dac = 0x10; + + protocol->self_dac = 0xC; + protocol->self_bg = 0xF; + protocol->self_signal = 0xD; + protocol->self_no_bk = 0xE; + protocol->self_has_bk = 0xB; + protocol->self_bk_dac = 0x11; + + protocol->key_dac = 0x14; + protocol->key_bg = 0x16; + protocol->key_no_bk = 0x7; + protocol->key_has_bk = 0x15; + protocol->key_open = 0x12; + protocol->key_short = 0x13; + + protocol->st_dac = 0x1A; + protocol->st_bg = 0x1C; + protocol->st_no_bk = 0x17; + protocol->st_has_bk = 0x1B; + protocol->st_open = 0x18; + + protocol->tx_short = 0x19; + + protocol->rx_short = 0x4; + protocol->rx_open = 0x6; + + protocol->tx_rx_delta = 0x1E; + + protocol->cm_data = 0x9; + protocol->cs_data = 0xA; + + protocol->trcrq_pin = 0x20; + protocol->resx2_pin = 0x21; + protocol->mutual_integra_time = 0x22; + protocol->self_integra_time = 0x23; + protocol->key_integra_time = 0x24; + protocol->st_integra_time = 0x25; + protocol->peak_to_peak = 0x1D; + + protocol->get_timing = 0x30; + protocol->doze_p2p = 0x32; + protocol->doze_raw = 0x33; +} + +void core_protocol_func_control(int key, int ctrl) +{ + struct DataItem *tmp = search_func(key); + + if (tmp != NULL) { + ipio_info("Found func's name: %s, key = %d\n", tmp->name, key); + + /* last element is used to control this func */ + if (tmp->key != 9) + tmp->cmd[tmp->len - 1] = ctrl; + + core_write(core_config->slave_i2c_addr, tmp->cmd, tmp->len); + return; + } + + ipio_info("Can't find any main functions\n"); +} +EXPORT_SYMBOL(core_protocol_func_control); + +int core_protocol_update_ver(uint8_t major, uint8_t mid, uint8_t minor) +{ + int i = 0; + struct protocol_sup_list pver[] = { + {0x5, 0x0, 0x0}, + {0x5, 0x1, 0x0}, + {0x5, 0x2, 0x0}, + {0x5, 0x3, 0x0}, + {0x5, 0x4, 0x0}, + }; + + for (i = 0 ; i < ARRAY_SIZE(pver); i++) { + if (pver[i].major == major && pver[i].mid == mid && pver[i].minor == minor) { + protocol->major = major; + protocol->mid = mid; + protocol->minor = minor; + ipio_info("protocol: major = %d, mid = %d, minor = %d\n", + protocol->major, protocol->mid, protocol->minor); + + if (protocol->major == 0x5) + config_protocol_v5_cmd(); + + /* We need to recreate function controls because of the commands updated. */ + create_func_hash(); + return 0; + } + } + + ipio_err("Doesn't support this version of protocol\n"); + return ERROR; +} +EXPORT_SYMBOL(core_protocol_update_ver); + +int core_protocol_init(void) +{ + if (protocol == NULL) { + protocol = kzalloc(sizeof(*protocol), GFP_KERNEL); + if (ERR_ALLOC_MEM(protocol)) { + ipio_err("Failed to allocate protocol mem, %ld\n", PTR_ERR(protocol)); + core_protocol_remove(); + return -ENOMEM; + } + } + + /* The default version must only once be set up at this initial time. */ + core_protocol_update_ver(PROTOCOL_MAJOR, PROTOCOL_MID, PROTOCOL_MINOR); + return 0; +} +EXPORT_SYMBOL(core_protocol_init); + +void core_protocol_remove(void) +{ + ipio_info("Remove core-protocol memebers\n"); + ipio_kfree((void **)&protocol); + free_func_hash(); +} +EXPORT_SYMBOL(core_protocol_remove); diff --git a/drivers/input/touchscreen/ilitek_mmi/core/protocol.h b/drivers/input/touchscreen/ilitek_mmi/core/protocol.h new file mode 100644 index 000000000000..9af65d4c95d8 --- /dev/null +++ b/drivers/input/touchscreen/ilitek_mmi/core/protocol.h @@ -0,0 +1,189 @@ +/* + * ILITEK Touch IC driver + * + * Copyright (C) 2011 ILI Technology Corporation. + * + * Author: Dicky Chiang + * Based on TDD v7.0 implemented by Mstar & ILITEK + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ +#ifndef __PROTOCOL_H +#define __PROTOCOL_H + +/* V3.2 */ +#define P3_2_GET_TP_INFORMATION 0x20 +#define P3_2_GET_KEY_INFORMATION 0x22 +#define P3_2_GET_FIRMWARE_VERSION 0x40 +#define P3_2_GET_PROTOCOL_VERSION 0x42 + +/* V5.X */ +#define P5_0_READ_DATA_CTRL 0xF6 +#define P5_0_GET_TP_INFORMATION 0x20 +#define P5_0_GET_KEY_INFORMATION 0x27 +#define P5_0_GET_FIRMWARE_VERSION 0x21 +#define P5_0_GET_PROTOCOL_VERSION 0x22 +#define P5_0_GET_CORE_VERSION 0x23 +#define P5_0_MODE_CONTROL 0xF0 +#define P5_0_SET_CDC_INIT 0xF1 +#define P5_0_GET_CDC_DATA 0xF2 +#define P5_0_CDC_BUSY_STATE 0xF3 +#define P5_0_I2C_UART 0x40 + +#define P5_0_FIRMWARE_UNKNOWN_MODE 0xFF +#define P5_0_FIRMWARE_DEMO_MODE 0x00 +#define P5_0_FIRMWARE_TEST_MODE 0x01 +#define P5_0_FIRMWARE_DEBUG_MODE 0x02 +#define P5_0_FIRMWARE_I2CUART_MODE 0x03 +#define P5_0_FIRMWARE_GESTURE_MODE 0x04 + +#define P5_0_DEMO_PACKET_ID 0x5A +#define P5_0_DEBUG_PACKET_ID 0xA7 +#define P5_0_TEST_PACKET_ID 0xF2 +#define P5_0_GESTURE_PACKET_ID 0xAA +#define P5_0_I2CUART_PACKET_ID 0x7A + +#define P5_0_DEMO_MODE_PACKET_LENGTH 43 +#define P5_0_DEBUG_MODE_PACKET_LENGTH 1280 +#define P5_0_TEST_MODE_PACKET_LENGTH 1180 + +struct protocol_cmd_list { + /* version of protocol */ + uint8_t major; + uint8_t mid; + uint8_t minor; + + /* Length of command */ + int fw_ver_len; + int pro_ver_len; + int tp_info_len; + int key_info_len; + int core_ver_len; + int func_ctrl_len; + int window_len; + int cdc_len; + int cdc_raw_len; + + /* TP information */ + uint8_t cmd_read_ctrl; + uint8_t cmd_get_tp_info; + uint8_t cmd_get_key_info; + uint8_t cmd_get_fw_ver; + uint8_t cmd_get_pro_ver; + uint8_t cmd_get_core_ver; + uint8_t cmd_mode_ctrl; + uint8_t cmd_i2cuart; + uint8_t cmd_cdc_busy; + + /* Function control */ + uint8_t sense_ctrl[3]; + uint8_t sleep_ctrl[3]; + uint8_t glove_ctrl[3]; + uint8_t stylus_ctrl[3]; + uint8_t tp_scan_mode[3]; + uint8_t lpwg_ctrl[3]; + uint8_t gesture_ctrl[3]; + uint8_t phone_cover_ctrl[3]; + uint8_t finger_sense_ctrl[3]; + uint8_t proximity_ctrl[3]; + uint8_t plug_ctrl[3]; + uint8_t phone_cover_window[9]; + + /* firmware mode */ + uint8_t unknown_mode; + uint8_t demo_mode; + uint8_t debug_mode; + uint8_t test_mode; + uint8_t i2cuart_mode; + uint8_t gesture_mode; + + /* Pakcet ID reported by FW */ + uint8_t demo_pid; + uint8_t debug_pid; + uint8_t i2cuart_pid; + uint8_t test_pid; + uint8_t ges_pid; + + /* Length of finger report */ + int demo_len; + int debug_len; + int test_len; + int gesture_len; + + /* MP Test with cdc commands */ + uint8_t cmd_cdc; + uint8_t cmd_get_cdc; + + uint8_t cm_data; + uint8_t cs_data; + + uint8_t rx_short; + uint8_t rx_open; + uint8_t tx_short; + + uint8_t mutual_dac; + uint8_t mutual_bg; + uint8_t mutual_signal; + uint8_t mutual_no_bk; + uint8_t mutual_bk_dac; + uint8_t mutual_has_bk; + uint16_t mutual_has_bk_16; + + uint8_t self_dac; + uint8_t self_bk_dac; + uint8_t self_has_bk; + uint8_t self_no_bk; + uint8_t self_signal; + uint8_t self_bg; + + uint8_t key_dac; + uint8_t key_has_bk; + uint8_t key_bg; + uint8_t key_no_bk; + uint8_t key_open; + uint8_t key_short; + + uint8_t st_no_bk; + uint8_t st_open; + uint8_t st_dac; + uint8_t st_has_bk; + uint8_t st_bg; + + uint8_t tx_rx_delta; + + uint8_t trcrq_pin; + uint8_t resx2_pin; + uint8_t mutual_integra_time; + uint8_t self_integra_time; + uint8_t key_integra_time; + uint8_t st_integra_time; + uint8_t peak_to_peak; + + uint8_t get_timing; + uint8_t doze_p2p; + uint8_t doze_raw; +}; + +extern struct protocol_cmd_list *protocol; + +extern void core_protocol_func_control(int key, int ctrl); +extern int core_protocol_update_ver(uint8_t major, uint8_t mid, uint8_t minor); +extern int core_protocol_init(void); +extern void core_protocol_remove(void); +extern int core_write(uint8_t, uint8_t *, uint16_t); +extern int core_read(uint8_t, uint8_t *, uint16_t); + +#endif diff --git a/drivers/input/touchscreen/ilitek_mmi/core/spi.c b/drivers/input/touchscreen/ilitek_mmi/core/spi.c new file mode 100644 index 000000000000..e811bf623f19 --- /dev/null +++ b/drivers/input/touchscreen/ilitek_mmi/core/spi.c @@ -0,0 +1,412 @@ +/* + * ILITEK Touch IC driver + * + * Copyright (C) 2011 ILI Technology Corporation. + * + * Author: Dicky Chiang + * Based on TDD v7.0 implemented by Mstar & ILITEK + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ + +#include "../common.h" +#include "config.h" +#include "spi.h" +#include "finger_report.h" + +struct core_spi_data *core_spi; + +int core_Rx_check(uint16_t check) +{ + int size = 0, i, count = 100; + uint8_t txbuf[5] = { 0 }, rxbuf[4] = {0}; + uint16_t status = 0; + + txbuf[0] = SPI_WRITE; + txbuf[1] = 0x25; + txbuf[2] = 0x94; + txbuf[3] = 0x0; + txbuf[4] = 0x2; + + for (i = 0 ; i < count; i++) { + + txbuf[0] = SPI_WRITE; + if (spi_write_then_read(core_spi->spi, txbuf, 5, txbuf, 0) < 0) { + size = -EIO; + ipio_err("spi Write Error, res = %d\n", size); + } + + txbuf[0] = SPI_READ; + if (spi_write_then_read(core_spi->spi, txbuf, 1, rxbuf, 4) < 0) { + size = -EIO; + ipio_err("spi Read Error, res = %d\n", size); + } + + status = (rxbuf[2] << 8) + rxbuf[3]; + size = (rxbuf[0] << 8) + rxbuf[1]; + + if (status == check) + return size; + + mdelay(1); + } + + size = -EIO; + ipio_err("Check lock error\n"); + return size; +} + +int core_Tx_unlock_check(void) +{ + int res = 0, i, count = 100; + uint8_t txbuf[5] = { 0 }, rxbuf[4] = {0}; + uint16_t unlock = 0; + + txbuf[0] = SPI_WRITE; + txbuf[1] = 0x25; + txbuf[2] = 0x0; + txbuf[3] = 0x0; + txbuf[4] = 0x2; + + for (i = 0; i < count; i++) { + txbuf[0] = SPI_WRITE; + if (spi_write_then_read(core_spi->spi, txbuf, 5, txbuf, 0) < 0) { + res = -EIO; + ipio_err("spi Write Error, res = %d\n", res); + } + + txbuf[0] = SPI_READ; + if (spi_write_then_read(core_spi->spi, txbuf, 1, rxbuf, 4) < 0) { + res = -EIO; + ipio_err("spi Read Error, res = %d\n", res); + } + + unlock = (rxbuf[2] << 8) + rxbuf[3]; + + if (unlock == 0x9881) + return res; + + mdelay(1); + } + + ipio_err("Check unlock error\n"); + return res; +} + +int core_ice_mode_read_9881H11(uint8_t *data, uint32_t size) +{ + int res = 0; + uint8_t txbuf[64] = { 0 }; + + /* set read address */ + txbuf[0] = SPI_WRITE; + txbuf[1] = 0x25; + txbuf[2] = 0x98; + txbuf[3] = 0x0; + txbuf[4] = 0x2; + if (spi_write_then_read(core_spi->spi, txbuf, 5, txbuf, 0) < 0) { + res = -EIO; + return res; + } + + /* read data */ + txbuf[0] = SPI_READ; + if (spi_write_then_read(core_spi->spi, txbuf, 1, data, size) < 0) { + res = -EIO; + return res; + } + + /* write data unlock */ + txbuf[0] = SPI_WRITE; + txbuf[1] = 0x25; + txbuf[2] = 0x94; + txbuf[3] = 0x0; + txbuf[4] = 0x2; + txbuf[5] = (size & 0xFF00) >> 8; + txbuf[6] = size & 0xFF; + txbuf[7] = (char)0x98; + txbuf[8] = (char)0x81; + if (spi_write_then_read(core_spi->spi, txbuf, 9, txbuf, 0) < 0) { + res = -EIO; + ipio_err("spi Write data unlock error, res = %d\n", res); + } + + return res; +} + +int core_ice_mode_write_9881H11(uint8_t *data, uint32_t size) +{ + int res = 0; + uint8_t check_sum = 0, wsize = 0; + uint8_t *txbuf = NULL; + + txbuf = kcalloc(size + 9, sizeof(uint8_t), GFP_KERNEL); + if (ERR_ALLOC_MEM(txbuf)) { + ipio_err("Failed to allocate txbuf\n"); + res = -ENOMEM; + goto out; + } + + /* Write data */ + txbuf[0] = SPI_WRITE; + txbuf[1] = 0x25; + txbuf[2] = 0x4; + txbuf[3] = 0x0; + txbuf[4] = 0x2; + + /* Calcuate checsum and fill it in the last byte */ + check_sum = core_fr_calc_checksum(data, size); + memcpy(txbuf + 5, data, size); + txbuf[5 + size] = check_sum; + size++; + wsize = size; + if (wsize % 4 != 0) + wsize += 4 - (wsize % 4); + + if (spi_write_then_read(core_spi->spi, txbuf, wsize + 5, txbuf, 0) < 0) { + res = -EIO; + ipio_err("spi Write Error, res = %d\n", res); + goto out; + } + + /* write data lock */ + txbuf[0] = SPI_WRITE; + txbuf[1] = 0x25; + txbuf[2] = 0x0; + txbuf[3] = 0x0; + txbuf[4] = 0x2; + txbuf[5] = (size & 0xFF00) >> 8; + txbuf[6] = size & 0xFF; + txbuf[7] = (char)0x5A; + txbuf[8] = (char)0xA5; + if (spi_write_then_read(core_spi->spi, txbuf, 9, txbuf, 0) < 0) { + res = -EIO; + ipio_err("spi Write data lock Error, res = %d\n", res); + } + +out: + ipio_kfree((void **)&txbuf); + return res; +} + +int core_ice_mode_disable_9881H11(void) +{ + int res = 0; + uint8_t txbuf[5] = {0}; + + txbuf[0] = 0x82; + txbuf[1] = 0x1B; + txbuf[2] = 0x62; + txbuf[3] = 0x10; + txbuf[4] = 0x18; + + if (spi_write_then_read(core_spi->spi, txbuf, 5, txbuf, 0) < 0) { + res = -EIO; + ipio_err("spi_write_then_read Error, res = %d\n", res); + } + + return res; +} + +int core_ice_mode_enable_9881H11(void) +{ + int res = 0; + uint8_t txbuf[5] = {0}, rxbuf[2] = {0}; + + txbuf[0] = 0x82; + txbuf[1] = 0x1F; + txbuf[2] = 0x62; + txbuf[3] = 0x10; + txbuf[4] = 0x18; + + if (spi_write_then_read(core_spi->spi, txbuf, 1, rxbuf, 1) < 0) { + res = -EIO; + ipio_err("spi Write Error, res = %d\n", res); + return res; + } + + /* check recover data */ + if (rxbuf[0] == 0x82) { + ipio_info("rxbuf:0x%x\n", rxbuf[0]); + return CHECK_RECOVER; + } + + if (spi_write_then_read(core_spi->spi, txbuf, 5, rxbuf, 0) < 0) { + res = -EIO; + ipio_err("spi Write Error, res = %d\n", res); + } + + return res; +} + +int core_spi_read_9881H11(uint8_t *pBuf, uint16_t nSize) +{ + int res = 0, size = 0; + + res = core_ice_mode_enable_9881H11(); + if (res < 0) { + goto out; + } + + size = core_Rx_check(0x5AA5); + if (size < 0) { + res = -EIO; + goto out; + } + + if (core_ice_mode_read_9881H11(pBuf, size) < 0) { + res = -EIO; + goto out; + } + + if (core_ice_mode_disable_9881H11() < 0) { + res = -EIO; + goto out; + } + +out: + return res; +} + +int core_spi_write_9881H11(uint8_t *pBuf, uint16_t nSize) +{ + int res = 0; + uint8_t *txbuf = NULL; + + txbuf = kcalloc(nSize + 5, sizeof(uint8_t), GFP_KERNEL); + if (ERR_ALLOC_MEM(txbuf)) { + ipio_err("Failed to allocate txbuf\n"); + return -ENOMEM; + goto out; + } + + res = core_ice_mode_enable_9881H11(); + if (res < 0) + return res; + + if (core_ice_mode_write_9881H11(pBuf, nSize) < 0) { + res = -EIO; + goto out; + } + + if (core_Tx_unlock_check() < 0) { + res = -ETXTBSY; + } + +out: + ipio_kfree((void **)&txbuf); + return res; +} + +int core_spi_write(uint8_t *pBuf, uint16_t nSize) +{ + int res = 0; + uint8_t *txbuf = NULL; + + txbuf = kcalloc(nSize + 1, sizeof(uint8_t), GFP_KERNEL); + if (ERR_ALLOC_MEM(txbuf)) { + ipio_err("Failed to allocate txbuf\n"); + return -ENOMEM; + goto out; + } + + if (core_config->icemodeenable == false) { + res = core_spi_write_9881H11(pBuf, nSize); + core_ice_mode_disable_9881H11(); + ipio_kfree((void **)&txbuf); + return res; + } + + txbuf[0] = SPI_WRITE; + memcpy(txbuf+1, pBuf, nSize); + + if (spi_write_then_read(core_spi->spi, txbuf, nSize+1, txbuf, 0) < 0) { + if (core_config->do_ic_reset) { + /* ignore spi error if doing ic reset */ + res = 0; + } else { + res = -EIO; + ipio_err("spi Write Error, res = %d\n", res); + goto out; + } + } + +out: + ipio_kfree((void **)&txbuf); + return res; +} +EXPORT_SYMBOL(core_spi_write); + +int core_spi_read(uint8_t *pBuf, uint16_t nSize) +{ + int res = 0; + uint8_t txbuf[1] = {0}; + + txbuf[0] = SPI_READ; + + if (core_config->icemodeenable == false) + return core_spi_read_9881H11(pBuf, nSize); + + if (spi_write_then_read(core_spi->spi, txbuf, 1, pBuf, nSize) < 0) { + if (core_config->do_ic_reset) { + /* ignore spi error if doing ic reset */ + res = 0; + } else { + res = -EIO; + ipio_err("spi Read Error, res = %d\n", res); + goto out; + } + } + +out: + return res; +} +EXPORT_SYMBOL(core_spi_read); + +int core_spi_init(struct spi_device *spi) +{ + int ret; + + core_spi = kmalloc(sizeof(*core_spi), GFP_KERNEL); + if (ERR_ALLOC_MEM(core_spi)) { + ipio_err("Failed to alllocate core_i2c mem %ld\n", PTR_ERR(core_spi)); + core_spi_remove(); + return -ENOMEM; + } + + core_spi->spi = spi; + spi->mode = SPI_MODE_0; + spi->bits_per_word = 8; + + ret = spi_setup(spi); + if (ret < 0) { + ipio_err("ERR: fail to setup spi\n"); + return -ENODEV; + } + + ipio_info("name = %s, bus_num = %d,cs = %d, mode = %d, speed = %d\n", spi->modalias, + spi->master->bus_num, spi->chip_select, spi->mode, spi->max_speed_hz); + + return 0; +} +EXPORT_SYMBOL(core_spi_init); + +void core_spi_remove(void) +{ + ipio_info("Remove core-spi members\n"); + ipio_kfree((void **)&core_spi); +} +EXPORT_SYMBOL(core_spi_remove); diff --git a/drivers/input/touchscreen/ilitek_mmi/core/spi.h b/drivers/input/touchscreen/ilitek_mmi/core/spi.h new file mode 100644 index 000000000000..281650223568 --- /dev/null +++ b/drivers/input/touchscreen/ilitek_mmi/core/spi.h @@ -0,0 +1,42 @@ +/* + * ILITEK Touch IC driver + * + * Copyright (C) 2011 ILI Technology Corporation. + * + * Author: Dicky Chiang + * Based on TDD v7.0 implemented by Mstar & ILITEK + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ + +#ifndef __SPI_H +#define __SPI_H + +#define SPI_WRITE 0X82 +#define SPI_READ 0X83 + +struct core_spi_data { + struct spi_device *spi; +}; + +extern struct core_spi_data *core_spi; + +extern int core_spi_write(uint8_t *pBuf, uint16_t nSize); +extern int core_spi_read(uint8_t *pBuf, uint16_t nSize); +extern int core_spi_init(struct spi_device *spi); +extern void core_spi_remove(void); + +#endif diff --git a/drivers/input/touchscreen/ilitek_mmi/platform.c b/drivers/input/touchscreen/ilitek_mmi/platform.c new file mode 100644 index 000000000000..693f0b2ff99c --- /dev/null +++ b/drivers/input/touchscreen/ilitek_mmi/platform.c @@ -0,0 +1,1120 @@ +/* + * ILITEK Touch IC driver + * + * Copyright (C) 2011 ILI Technology Corporation. + * + * Author: Dicky Chiang + * Based on TDD v7.0 implemented by Mstar & ILITEK + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ +#include "common.h" +#include "core/config.h" +#include "core/i2c.h" +#include "core/spi.h" +#include "core/firmware.h" +#include "core/finger_report.h" +#include "core/flash.h" +#include "core/protocol.h" +#include "platform.h" +#include "core/mp_test.h" +#include "core/gesture.h" + +#define DTS_INT_GPIO "ilitek,irq-gpio" +#define DTS_RESET_GPIO "ilitek,reset-gpio" + +#define DTS_OF_NAME "ilitek,tchip" + +#define DEVICE_ID "ILITEK_TDDI" + +#define ILI_COORDS_ARR_SIZE 4 + + +#ifdef USE_KTHREAD +static DECLARE_WAIT_QUEUE_HEAD(waiter); +#endif + +/* Debug level */ +uint32_t ipio_debug_level = DEBUG_NONE; +EXPORT_SYMBOL(ipio_debug_level); + +struct ilitek_platform_data *ipd; + +void ilitek_platform_disable_irq(void) +{ + unsigned long nIrqFlag; + + ipio_debug(DEBUG_IRQ, "IRQ = %d\n", ipd->isEnableIRQ); + + spin_lock_irqsave(&ipd->plat_spinlock, nIrqFlag); + + if (ipd->isEnableIRQ) { + if (ipd->isr_gpio) { + disable_irq_nosync(ipd->isr_gpio); + ipd->isEnableIRQ = false; + ipio_debug(DEBUG_IRQ, "Disable IRQ: %d\n", + ipd->isEnableIRQ); + } else + ipio_err("The number of gpio to irq is incorrect\n"); + } else + ipio_debug(DEBUG_IRQ, "IRQ was already disabled\n"); + + spin_unlock_irqrestore(&ipd->plat_spinlock, nIrqFlag); +} + +EXPORT_SYMBOL(ilitek_platform_disable_irq); + +void ilitek_platform_enable_irq(void) +{ + unsigned long nIrqFlag; + + ipio_debug(DEBUG_IRQ, "IRQ = %d\n", ipd->isEnableIRQ); + + spin_lock_irqsave(&ipd->plat_spinlock, nIrqFlag); + + if (!ipd->isEnableIRQ) { + if (ipd->isr_gpio) { + enable_irq(ipd->isr_gpio); + ipd->isEnableIRQ = true; + ipio_debug(DEBUG_IRQ, "Enable IRQ: %d\n", + ipd->isEnableIRQ); + } else + ipio_err("The number of gpio to irq is incorrect\n"); + } else + ipio_debug(DEBUG_IRQ, "IRQ was already enabled\n"); + + spin_unlock_irqrestore(&ipd->plat_spinlock, nIrqFlag); +} + +EXPORT_SYMBOL(ilitek_platform_enable_irq); + +void ilitek_platform_tp_hw_reset(bool isEnable) +{ + ipio_info("HW Reset: %d\n", isEnable); + + if (!gpio_is_valid(ipd->reset_gpio)) + return ; + ilitek_platform_disable_irq(); + + if (isEnable) { + gpio_direction_output(ipd->reset_gpio, 1); + mdelay(ipd->delay_time_high); + gpio_set_value(ipd->reset_gpio, 0); + mdelay(ipd->delay_time_low); + gpio_set_value(ipd->reset_gpio, 1); + mdelay(ipd->edge_delay); + } else { + gpio_set_value(ipd->reset_gpio, 0); + } + +#ifdef HOST_DOWNLOAD + core_config_ice_mode_enable(); + core_firmware_upgrade(UPDATE_FW_PATH, true); +#endif + mdelay(10); + ilitek_platform_enable_irq(); +} + +EXPORT_SYMBOL(ilitek_platform_tp_hw_reset); + +void ilitek_regulator_power_on(bool status) +{ + int res = 0; + + if (!ipd->REGULATOR_POWER_ON) + return ; + ipio_info("%s\n", status ? "POWER ON" : "POWER OFF"); + + if (status) { + if (ipd->vdd) { + res = regulator_enable(ipd->vdd); + if (res < 0) + ipio_err("regulator_enable vdd fail\n"); + } + if (ipd->vdd_i2c) { + res = regulator_enable(ipd->vdd_i2c); + if (res < 0) + ipio_err("regulator_enable vdd_i2c fail\n"); + } + } else { + if (ipd->vdd) { + res = regulator_disable(ipd->vdd); + if (res < 0) + ipio_err("regulator_enable vdd fail\n"); + } + if (ipd->vdd_i2c) { + res = regulator_disable(ipd->vdd_i2c); + if (res < 0) + ipio_err("regulator_enable vdd_i2c fail\n"); + } + } + core_config->icemodeenable = false; + mdelay(5); +} + +EXPORT_SYMBOL(ilitek_regulator_power_on); + +#ifdef BATTERY_CHECK +static void read_power_status(uint8_t *buf) +{ + struct file *f = NULL; + mm_segment_t old_fs; + ssize_t byte = 0; + + old_fs = get_fs(); + set_fs(get_ds()); + + f = filp_open(POWER_STATUS_PATH, O_RDONLY, 0); + if (ERR_ALLOC_MEM(f)) { + ipio_err("Failed to open %s\n", POWER_STATUS_PATH); + return; + } + + f->f_op->llseek(f, 0, SEEK_SET); + byte = f->f_op->read(f, buf, 20, &f->f_pos); + + ipio_debug(DEBUG_BATTERY, "Read %d bytes\n", (int)byte); + + set_fs(old_fs); + filp_close(f, NULL); +} + +static void ilitek_platform_vpower_notify(struct work_struct *pWork) +{ + uint8_t charge_status[20] = { 0 }; + static int charge_mode; + + ipio_debug(DEBUG_BATTERY, "isEnableCheckPower = %d\n", + ipd->isEnablePollCheckPower); + read_power_status(charge_status); + ipio_debug(DEBUG_BATTERY, "Batter Status: %s\n", charge_status); + + if (strnstr(charge_status, "Charging", strlen(charge_status)) != NULL + || strnstr(charge_status, "Full", strlen(charge_status)) != NULL + || strnstr(charge_status, "Fully charged", strlen(charge_status)) != NULL) { + if (charge_mode != 1) { + ipio_debug(DEBUG_BATTERY, "Charging mode\n"); + core_config_plug_ctrl(false); + charge_mode = 1; + } + } else { + if (charge_mode != 2) { + ipio_debug(DEBUG_BATTERY, "Not charging mode\n"); + core_config_plug_ctrl(true); + charge_mode = 2; + } + } + + if (ipd->isEnablePollCheckPower) + queue_delayed_work(ipd->check_power_status_queue, + &ipd->check_power_status_work, + ipd->work_delay); +} +#endif/*BATTERY_CHECK*/ + +#ifdef CONFIG_FB +static int ilitek_platform_notifier_fb(struct notifier_block *self, + unsigned long event, void *data) +{ + int *blank; + struct fb_event *evdata = data; + + ipio_info("Notifier's event = %ld\n", event); + + /* + * FB_EVENT_BLANK(0x09): A hardware display blank change occurred. + * FB_EARLY_EVENT_BLANK(0x10): A hardware display blank early change + * occurred. + */ + if (evdata && evdata->data && ((event == FB_EARLY_EVENT_BLANK) || (event == FB_EVENT_BLANK))) { + //if (evdata && evdata->data && (event == FB_EVENT_BLANK)) { + blank = evdata->data; + + if ((*blank == FB_BLANK_POWERDOWN) && event == FB_EARLY_EVENT_BLANK) { + ipio_info("TP Suspend\n"); + + if (!core_firmware->isUpgrading) + core_config_ic_suspend(); + } else if ((*blank == FB_BLANK_UNBLANK + || *blank == FB_BLANK_NORMAL) && event == FB_EVENT_BLANK){ + ipio_info("TP Resuem\n"); + + if (!core_firmware->isUpgrading) + core_config_ic_resume(); + } + } + + return NOTIFY_OK; +} +#else /* CONFIG_HAS_EARLYSUSPEND */ +static void ilitek_platform_early_suspend(struct early_suspend *h) +{ + ipio_info("TP Suspend\n"); + + /* TODO: there is doing nothing if an upgrade firmware's processing. */ + + core_fr_touch_release(0, 0, 0); + + input_sync(core_fr->input_device); + + core_fr->isEnableFR = false; + + core_config_ic_suspend(); +} + +static void ilitek_platform_late_resume(struct early_suspend *h) +{ + ipio_info("TP Resuem\n"); + + core_fr->isEnableFR = true; + core_config_ic_resume(); +} + +#endif + +/** + * reg_power_check - register a thread to inquery status at certain time. + */ +static int ilitek_platform_reg_power_check(void) +{ + int res = 0; + +#ifdef BATTERY_CHECK + INIT_DELAYED_WORK(&ipd->check_power_status_work, + ilitek_platform_vpower_notify); + ipd->check_power_status_queue = create_workqueue("ili_power_check"); + ipd->work_delay = msecs_to_jiffies(CHECK_BATTERY_TIME); + if (!ipd->check_power_status_queue) { + ipio_err + ("Failed to create a work thread to check power status\n"); + ipd->vpower_reg_nb = false; + res = ERROR; + } else { + ipio_info + ("Created a work thread to check power status at every %u jiffies\n", (unsigned int)ipd->work_delay); + + if (ipd->isEnablePollCheckPower) { + queue_delayed_work(ipd->check_power_status_queue, + &ipd->check_power_status_work, + ipd->work_delay); + ipd->vpower_reg_nb = true; + } + } +#endif /* BATTERY_CHECK */ + + return res; +} + +/** + * Register a callback function when the event of suspend and resume occurs. + * + * The default used to wake up the cb function comes from notifier block + * mechnaism. If you'd rather liek to use early suspend, + * CONFIG_HAS_EARLYSUSPEND in kernel config must be enabled. + */ +static int ilitek_platform_reg_suspend(void) +{ + int res = 0; + ipio_info("Register suspend/resume callback function\n"); +#ifdef CONFIG_FB + ipd->notifier_fb.notifier_call = ilitek_platform_notifier_fb; + res = fb_register_client(&ipd->notifier_fb); +#else + ipd->early_suspend->suspend = ilitek_platform_early_suspend; + ipd->early_suspend->esume = ilitek_platform_late_resume; + ipd->early_suspend->level = EARLY_SUSPEND_LEVEL_BLANK_SCREEN + 1; + res = register_early_suspend(ipd->early_suspend); +#endif /* CONFIG_FB */ + + return res; +} + +#ifndef USE_KTHREAD +static void ilitek_platform_work_queue(struct work_struct *work) +{ + ipio_debug(DEBUG_IRQ, "work_queue: IRQ = %d\n", ipd->isEnableIRQ); + + core_fr_handler(); + + if (!ipd->isEnableIRQ) + ilitek_platform_enable_irq(); +} +#endif /* USE_KTHREAD */ + +static irqreturn_t ilitek_platform_irq_handler(int irq, void *dev_id) +{ + ipio_debug(DEBUG_IRQ, "IRQ = %d\n", ipd->isEnableIRQ); + + if (ipd->isEnableIRQ) { + ilitek_platform_disable_irq(); +#ifdef USE_KTHREAD + ipd->irq_trigger = true; + ipio_debug(DEBUG_IRQ, "kthread: irq_trigger = %d\n", + ipd->irq_trigger); + wake_up_interruptible(&waiter); +#else + schedule_work(&ipd->report_work_queue); +#endif /* USE_KTHREAD */ + } + + return IRQ_HANDLED; +} + +static int ilitek_platform_input_init(void) +{ + int res = 0; + + ipd->input_device = input_allocate_device(); + + if (ERR_ALLOC_MEM(ipd->input_device)) { + ipio_err("Failed to allocate touch input device\n"); + res = -ENOMEM; + goto fail_alloc; + } +#if (INTERFACE == I2C_INTERFACE) + ipd->input_device->name = ipd->client->name; + ipd->input_device->phys = "I2C"; + ipd->input_device->dev.parent = &ipd->client->dev; + ipd->input_device->id.bustype = BUS_I2C; +#else + ipd->input_device->name = DEVICE_ID; + ipd->input_device->phys = "SPI"; + ipd->input_device->dev.parent = &ipd->spi->dev; + ipd->input_device->id.bustype = BUS_SPI; +#endif + + core_fr_input_set_param(ipd->input_device); + /* register the input device to input sub-system */ + res = input_register_device(ipd->input_device); + if (res < 0) { + ipio_err("Failed to register touch input device, res = %d\n", + res); + goto out; + } + + return res; + +fail_alloc: + input_free_device(core_fr->input_device); + return res; + +out: + input_unregister_device(ipd->input_device); + input_free_device(core_fr->input_device); + return res; +} + +#ifdef USE_KTHREAD +static int kthread_handler(void *arg) +{ + int res = 0; + char *str = (char *)arg; + + if (strcmp(str, "boot_fw") == 0) { + /* FW Upgrade event */ + core_firmware->isboot = true; + + ilitek_platform_disable_irq(); + +#ifdef BOOT_FW_UPGRADE + res = core_firmware_boot_upgrade(); + if (res < 0) + ipio_err("Failed to upgrade FW at boot stage\n"); +#endif + ilitek_platform_enable_irq(); + + ilitek_platform_input_init(); + + core_firmware->isboot = false; + } else if (strcmp(str, "irq") == 0) { + /* IRQ event */ + struct sched_param param = {.sched_priority = 4 }; + + sched_setscheduler(current, SCHED_RR, ¶m); + + while (!kthread_should_stop() && !ipd->free_irq_thread) { + ipio_debug(DEBUG_IRQ, + "kthread: before->irq_trigger = %d\n", + ipd->irq_trigger); + set_current_state(TASK_INTERRUPTIBLE); + wait_event_interruptible(waiter, ipd->irq_trigger); + ipd->irq_trigger = false; + set_current_state(TASK_RUNNING); + ipio_debug(DEBUG_IRQ, + "kthread: after->irq_trigger = %d\n", + ipd->irq_trigger); + core_fr_handler(); + ilitek_platform_enable_irq(); + } + } else { + ipio_err("Unknown EVENT\n"); + } + + return res; +} +#endif + +static int ilitek_platform_isr_register(void) +{ + int res = 0; + +#ifdef USE_KTHREAD + ipd->irq_thread = kthread_run(kthread_handler, "irq", + "ili_irq_thread"); + if (ipd->irq_thread == (struct task_struct *)ERR_PTR) { + ipd->irq_thread = NULL; + ipio_err("Failed to create kthread\n"); + res = -ENOMEM; + goto out; + } + ipd->irq_trigger = false; + ipd->free_irq_thread = false; +#else + INIT_WORK(&ipd->report_work_queue, ilitek_platform_work_queue); +#endif /* USE_KTHREAD */ + + ipd->isr_gpio = gpio_to_irq(ipd->int_gpio); + + ipio_info("ipd->isr_gpio = %d\n", ipd->isr_gpio); + + res = request_threaded_irq(ipd->isr_gpio, + NULL, + ilitek_platform_irq_handler, + IRQF_TRIGGER_FALLING | IRQF_ONESHOT, + "ilitek", NULL); + + if (res != 0) { + ipio_err("Failed to register irq handler, irq = %d, res = %d\n", ipd->isr_gpio, res); + goto out; + } + + ipd->isEnableIRQ = true; + +out: + return res; +} + +static int ilitek_platform_gpio(void) +{ + int res = 0; +#ifdef CONFIG_OF +#if (INTERFACE == I2C_INTERFACE) + struct device_node *dev_node = ipd->client->dev.of_node; +#else + struct device_node *dev_node = ipd->spi->dev.of_node; +#endif + uint32_t flag; + + ipd->int_gpio = + of_get_named_gpio_flags(dev_node, DTS_INT_GPIO, 0, &flag); + ipd->reset_gpio = + of_get_named_gpio_flags(dev_node, DTS_RESET_GPIO, 0, &flag); +#endif /* CONFIG_OF */ + + ipio_info("GPIO INT: %d\n", ipd->int_gpio); + ipio_info("GPIO RESET: %d\n", ipd->reset_gpio); + + if (!gpio_is_valid(ipd->int_gpio)) { + ipio_err("Invalid INT gpio: %d\n", ipd->int_gpio); + return -EBADR; + } + + res = gpio_request(ipd->int_gpio, "ILITEK_TP_IRQ"); + if (res < 0) { + ipio_err("Request IRQ GPIO failed, res = %d\n", res); + goto out; + } + + if (gpio_is_valid(ipd->reset_gpio)) { + res = gpio_request(ipd->reset_gpio, "ILITEK_TP_RESET"); + if (res < 0) { + ipio_err("Request RESET GPIO failed, res = %d\n", res); + return 0; + } + } + gpio_direction_input(ipd->int_gpio); + +out: + return res; +} + +int ilitek_platform_read_tp_info(void) +{ + if (core_config_get_chip_id() < 0) { + ipio_err("Failed to get chip id\n"); + return CHIP_ID_ERR; + } + + if (core_config_get_protocol_ver() < 0) + ipio_err("Failed to get protocol version\n"); + + if (core_config_get_fw_ver() < 0) + ipio_err("Failed to get firmware version\n"); + + if (core_config_get_core_ver() < 0) + ipio_err("Failed to get core version\n"); + + if (core_config_get_tp_info() < 0) + ipio_err("Failed to get TP information\n"); + + if (core_config_get_key_info() < 0) + ipio_err("Failed to get key information\n"); + + return 0; + +} + +EXPORT_SYMBOL(ilitek_platform_read_tp_info); + +/** + * Remove Core APIs memeory being allocated. + */ +static void ilitek_platform_core_remove(void) +{ + ipio_info("Remove all core's compoenets\n"); + ilitek_proc_remove(); + ilitek_sys_remove(); + core_flash_remove(); + core_firmware_remove(); + core_fr_remove(); + core_config_remove(); + core_i2c_remove(); + core_protocol_remove(); + core_gesture_remove(); +} + +/** + * The function is to initialise all necessary structurs in those core APIs, + * they must be called before the i2c dev probes up successfully. + */ +static int ilitek_platform_core_init(void) +{ + ipio_info("Initialise core's components\n"); + + if (core_config_init() < 0 || core_protocol_init() < 0 || + core_firmware_init() < 0 || core_fr_init() < 0 || + core_gesture_init() < 0) { + ipio_err("Failed to initialise core components\n"); + return -EINVAL; + } +#if (INTERFACE == I2C_INTERFACE) + if (core_i2c_init(ipd->client) < 0) +#else + if (core_spi_init(ipd->spi) < 0) +#endif + { + ipio_err("Failed to initialise interface\n"); + return -EINVAL; + } + return 0; +} + +#if (INTERFACE == I2C_INTERFACE) +static int ilitek_platform_remove(struct i2c_client *client) +#else +static int ilitek_platform_remove(struct spi_device *spi) +#endif +{ + ipio_info("Remove platform components\n"); + + if (ipd->isEnableIRQ) + disable_irq_nosync(ipd->isr_gpio); + + if (ipd->isr_gpio != 0 && ipd->int_gpio != 0 && ipd->reset_gpio != 0) { + free_irq(ipd->isr_gpio, (void *)ipd->i2c_id); + gpio_free(ipd->int_gpio); + gpio_free(ipd->reset_gpio); + } +#ifdef CONFIG_FB + fb_unregister_client(&ipd->notifier_fb); +#else + unregister_early_suspend(&ipd->early_suspend); +#endif /* CONFIG_FB */ + +#ifdef USE_KTHREAD + if (ipd->irq_thread != NULL) { + ipd->irq_trigger = true; + ipd->free_irq_thread = true; + wake_up_interruptible(&waiter); + kthread_stop(ipd->irq_thread); + ipd->irq_thread = NULL; + } +#endif /* USE_KTHREAD */ + + if (ipd->input_device != NULL) { + input_unregister_device(ipd->input_device); +// input_free_device(ipd->input_device); + input_free_device(NULL); + } + + if (ipd->vpower_reg_nb) { + cancel_delayed_work_sync(&ipd->check_power_status_work); + destroy_workqueue(ipd->check_power_status_queue); + } + + ilitek_platform_core_remove(); + + ipio_kfree((void **)&ipd); + + return 0; +} + +/*The Ili_parse_dt func would be called when driver probe*/ +static int Ili_parse_dt(struct device *dev, + struct ilitek_platform_data *pdata) +{ + int rc; + struct device_node *np = dev->of_node; + struct property *prop; + + u32 coords[ILI_COORDS_ARR_SIZE]; + u32 temp_val; + int coords_size; + + rc = of_property_read_string(np, "ilitek,tp_ic_type", &pdata->TP_IC_TYPE); + if (rc && (rc != -EINVAL)) { + ipio_err("Unable to read name\n"); + return rc; + } + + ipio_err("pdata->TP_IC_TYPE = %s\n", pdata->TP_IC_TYPE); + + prop = of_find_property(np, "ilitek,display-coords", NULL); + if (!prop) + return -EINVAL; + if (!prop->value) + return -ENODATA; + + coords_size = prop->length / sizeof(u32); + if (coords_size != ILI_COORDS_ARR_SIZE) { + ipio_err("invalid %s\n", pdata->TP_IC_TYPE); + return -EINVAL; + } + + rc = of_property_read_u32_array(np, "ilitek,display-coords", coords, coords_size); + if (rc && (rc != -EINVAL)) { + ipio_err("Unable to read ilitek,display-coords\n"); + return rc; + } + + pdata->x_min = coords[0]; + pdata->y_min = coords[1]; + pdata->x_max = coords[2]; + pdata->y_max = coords[3]; + + ipio_info("x_min = %d,y_min = %d,x_max = %d,y_max = %d,coords_size = %d\n ", + ipd->x_min, ipd->y_min, ipd->x_max, ipd->y_max, coords_size); + + pdata->MT_B_TYPE = of_property_read_bool(np, + "ilitek,mt_b_type"); + if (pdata->MT_B_TYPE) + ipio_info("pdata->MT_B_TYPE ture "); + else + ipio_info("pdata->MT_B_TYPE false "); + + pdata->REGULATOR_POWER_ON = of_property_read_bool(np, + "ilitek,regulator_power_on"); + if (pdata->REGULATOR_POWER_ON) + ipio_info("pdata->REGULATOR_POWER_ON ture "); + else + ipio_info("pdata->REGULATOR_POWER_ON false "); + + pdata->BATTERY_CHECK = of_property_read_bool(np, + "ilitek,battery_check"); + if (pdata->BATTERY_CHECK) + ipio_info("pdata->BATTERY_CHECK ture "); + else + ipio_info("pdata->BATTERY_CHECK false "); + + pdata->ENABLE_BATTERY_CHECK = of_property_read_bool(np, + "ilitek,enable_battery_check"); + if (pdata->ENABLE_BATTERY_CHECK) + ipio_info("pdata->ENABLE_BATTERY_CHECK ture "); + else + ipio_info("pdata->ENABLE_BATTERY_CHECK false "); + + if (of_property_read_bool(np, "ilitek,x_flip")) { + pr_notice("using flipped X axis\n"); + pdata->x_flip = true; + } + + if (of_property_read_bool(np, "ilitek,y_flip")) { + pr_notice("using flipped Y axis\n"); + pdata->y_flip = true; + } + + rc = of_property_read_u32(np, "ilitek,tpd_height", + &temp_val); + if (!rc) + pdata->TPD_HEIGHT = temp_val; + else + return rc; + + rc = of_property_read_u32(np, "ilitek,tpd_width", + &temp_val); + if (!rc) + pdata->TPD_WIDTH = temp_val; + else + return rc; + + rc = of_property_read_u32(np, "ilitek,max_touch_num", + &temp_val); + if (!rc) + pdata->MAX_TOUCH_NUM = temp_val; + else + return rc; + + rc = of_property_read_u32(np, "ilitek,tp_touch_ic", + &temp_val); + if (!rc) + pdata->chip_id = temp_val; + else + return rc; + + return 0; + +} + + +/* + * The probe func would be called after an i2c device was detected by kernel. + * + * It will still return zero even if it couldn't get a touch ic info. + * The reason for why we allow it passing the process is because + * users/developersmight want to have access to ICE mode to upgrade a + * firwmare forcelly. + */ +#if (INTERFACE == I2C_INTERFACE) +static int ilitek_platform_probe(struct i2c_client *client, + const struct i2c_device_id *id) +#else +static int ilitek_platform_probe(struct spi_device *spi) +#endif +{ + int ret; + + const char *vdd_name = "vdd"; + const char *vcc_i2c_name = "vcc_i2c"; + + /* initialise the struct of touch ic memebers. */ + ipd = kzalloc(sizeof(*ipd), GFP_KERNEL); + if (ERR_ALLOC_MEM(ipd)) { + ipio_err("Failed to allocate ipd memory, %ld\n", PTR_ERR(ipd)); + return -ENOMEM; + } +#if (INTERFACE == I2C_INTERFACE) + if (client == NULL) { + ipio_err("i2c client is NULL\n"); + return -ENODEV; + } + + /* Set i2c slave addr if it's not configured */ + ipio_info("I2C Slave address = 0x%x\n", client->addr); + if (client->addr != ILI7807_SLAVE_ADDR + || client->addr != ILI9881_SLAVE_ADDR) { + client->addr = ILI9881_SLAVE_ADDR; + ipio_err + ("I2C Slave addr doesn't be set up, use default : 0x%x\n", + client->addr); + } + ipd->client = client; + ipd->i2c_id = id; +#else + if (spi == NULL) { + ipio_err("spi device is NULL\n"); + return -ENODEV; + } + + ipd->spi = spi; +#endif + /* Get dtsi configured value*/ + ipd->TP_IC_TYPE = kzalloc(128, GFP_KERNEL); + ret = Ili_parse_dt(&client->dev, ipd); + if (ret) { + ipio_err("DT parsing failed\n"); + return ret; + } + + ipd->isEnableIRQ = false; + ipd->isEnablePollCheckPower = false; + ipd->vpower_reg_nb = false; + + ipio_info("Driver Version : %s\n", DRIVER_VERSION); + ipio_info("Driver for Touch IC : %x\n", ipd->chip_id); + ipio_info("Driver interface : %s\n", + (INTERFACE == I2C_INTERFACE) ? "I2C" : "SPI"); + + /* + * Different ICs may require different delay time for the reset. + * They may also depend on what your platform need to. + */ + if (ipd->chip_id == CHIP_TYPE_ILI7807) { + ipd->delay_time_high = 10; + ipd->delay_time_low = 5; + ipd->edge_delay = 200; + } else if (ipd->chip_id == CHIP_TYPE_ILI9881) { + ipd->delay_time_high = 10; + ipd->delay_time_low = 5; +#if (INTERFACE == I2C_INTERFACE) + ipd->edge_delay = 100; +#else + ipd->edge_delay = 1; +#endif + } else { + ipd->delay_time_high = 10; + ipd->delay_time_low = 10; + ipd->edge_delay = 10; + } + + mutex_init(&ipd->plat_mutex); + spin_lock_init(&ipd->plat_spinlock); + + /* Init members for debug */ + mutex_init(&ipd->ilitek_debug_mutex); + mutex_init(&ipd->ilitek_debug_read_mutex); + init_waitqueue_head(&(ipd->inq)); + ipd->debug_data_frame = 0; + ipd->debug_node_open = false; + + if (ipd->REGULATOR_POWER_ON) { + ipd->vdd = regulator_get(&ipd->client->dev, vdd_name); + if (ERR_ALLOC_MEM(ipd->vdd)) { + ipio_err("regulator_get vdd fail\n"); + ipd->vdd = NULL; + return -ENOMEM; + } else { + if (regulator_set_voltage(ipd->vdd, VDD_VOLTAGE, VDD_VOLTAGE) < + 0) + ipio_err("Failed to set vdd %d.\n", VDD_VOLTAGE); + goto reg_vdd_put; + } + + ipd->vdd_i2c = regulator_get(&ipd->client->dev, vcc_i2c_name); + if (ERR_ALLOC_MEM(ipd->vdd_i2c)) { + ipio_err("regulator_get vdd_i2c fail.\n"); + ipd->vdd_i2c = NULL; + goto reg_vdd_set_vtg; + } else { + if (regulator_set_voltage + (ipd->vdd_i2c, VDD_I2C_VOLTAGE, VDD_I2C_VOLTAGE) < 0) + ipio_err("Failed to set vdd_i2c %d\n", + VDD_I2C_VOLTAGE); + goto reg_vcc_put; + } + ilitek_regulator_power_on(true); + } /* REGULATOR_POWER_ON */ + + ret = ilitek_platform_gpio() ; + if (ret < 0) { + ipio_err("Failed to request gpios\n "); + goto gpio_err; + } + + /* + * If kernel failes to allocate memory to the core components, driver + * will be unloaded. + */ + ret = ilitek_platform_core_init() ; + if (ret < 0) { + ipio_err("Failed to allocate cores' mem\n"); + goto core_init_err; + } +#ifdef HOST_DOWNLOAD + core_firmware_boot_host_download(); +#else + /*ilitek_platform_tp_hw_reset(true);*/ + /* Soft reset */ + core_config_ice_mode_enable(); + core_config_set_watch_dog(false); + mdelay(10); + core_config_ic_reset(); +#endif + + /* get our tp ic information */ + ret = ilitek_platform_read_tp_info(); + if (ret == CHIP_ID_ERR) { + core_config->chip_pid = CHIP_ID_ERR; + ipio_err("Failed to raed chip id %d,%d\n", ret, (-ENODEV)); + goto read_tp_info_err; + } + + /* If it defines boot upgrade, input register will be done inside boot + * function. + */ +#ifndef BOOT_FW_UPGRADE + ret = ilitek_platform_input_init() ; + if (ret < 0) { + ipio_err("Failed to init input device in kernel\n"); + goto input_init_err; + } +#endif /* BOOT_FW_UPGRADE */ + + ret = ilitek_platform_isr_register() ; + if (ret < 0) { + ipio_err("Failed to register ISR\n"); + goto isr_register_err; + } + + ret = ilitek_platform_reg_suspend() ; + if (ret < 0) { + ipio_err("Failed to register suspend/resume function\n"); + goto reg_suspend_err; + } + + ret = ilitek_platform_reg_power_check() ; + if (ret < 0) { + ipio_err("Failed to register power check function\n"); + goto reg_power_check_err; + } + /* Create nodes for users */ + ilitek_proc_init(); + + /* Create sys node */ + ret = ilitek_sys_init() ; + if (ret < 0) { + ipio_err("sys class files creation failed\n"); + goto sys_init_err; + } + +#ifdef BOOT_FW_UPGRADE + ipd->update_thread = + kthread_run(kthread_handler, "boot_fw", "ili_fw_boot"); + if (ipd->update_thread == (struct task_struct *)ERR_PTR) { + ipd->update_thread = NULL; + ipio_err("Failed to create fw upgrade thread\n"); + goto sys_init_err; + } +#endif /* BOOT_FW_UPGRADE */ + ipd->suspended = false; + return 0; + +sys_init_err: +reg_power_check_err: +reg_suspend_err: + free_irq(ipd->isr_gpio, (void *)ipd->i2c_id); +isr_register_err: +#ifndef BOOT_FW_UPGRADE +input_init_err: +#endif +read_tp_info_err: + +core_init_err: + if (gpio_is_valid(ipd->int_gpio)) + gpio_free(ipd->int_gpio); + if (gpio_is_valid(ipd->reset_gpio)) + gpio_free(ipd->reset_gpio); +gpio_err: + +reg_vcc_put: + if (ipd->REGULATOR_POWER_ON) + regulator_put(ipd->vdd); +reg_vdd_set_vtg: + if (ipd->REGULATOR_POWER_ON) { + if (regulator_count_voltages(ipd->vdd) > 0) + regulator_set_voltage(ipd->vdd, 0, 3300000); + } +reg_vdd_put: + if (ipd->REGULATOR_POWER_ON) + regulator_put(ipd->vdd); + return ret; +} + +static const struct i2c_device_id tp_device_id[] = { + {DEVICE_ID, 0}, + {}, /* should not omitted */ +}; + +MODULE_DEVICE_TABLE(i2c, tp_device_id); + +/* + * The name in the table must match the definiation + * in a dts file. + * + */ +static struct of_device_id tp_match_table[] = { + {.compatible = DTS_OF_NAME}, + {}, +}; + +#if (INTERFACE == I2C_INTERFACE) +static struct i2c_driver tp_i2c_driver = { + .driver = { + .name = DEVICE_ID, + .owner = THIS_MODULE, + .of_match_table = tp_match_table, + }, + .probe = ilitek_platform_probe, + .remove = ilitek_platform_remove, + .id_table = tp_device_id, +}; +#else +static struct spi_driver tp_spi_driver = { + .driver = { + .name = DEVICE_ID, + .owner = THIS_MODULE, + .of_match_table = tp_match_table, + }, + .probe = ilitek_platform_probe, + .remove = ilitek_platform_remove, +}; +#endif + +static int __init ilitek_platform_init(void) +{ + int res = 0; + + ipio_info("TP driver init\n"); + +#if (INTERFACE == I2C_INTERFACE) + ipio_info("TP driver add i2c interface\n"); + res = i2c_add_driver(&tp_i2c_driver); + ipio_info("Summer %d \n", res); + if (res < 0) { + ipio_err("Failed to add i2c driver\n"); + i2c_del_driver(&tp_i2c_driver); + return -ENODEV; + } +#else + ipio_info("TP driver add spi interface\n"); + res = spi_register_driver(&tp_spi_driver); + if (res < 0) { + ipio_err("Failed to add ilitek driver\n"); + spi_unregister_driver(&tp_spi_driver); + return -ENODEV; + } +#endif + + ipio_info("Succeed to add ilitek driver\n"); + return res; +} + +static void __exit ilitek_platform_exit(void) +{ + ipio_info("I2C driver has been removed\n"); + +#if (INTERFACE == I2C_INTERFACE) + i2c_del_driver(&tp_i2c_driver); +#else + spi_unregister_driver(&tp_spi_driver); +#endif +} + +module_init(ilitek_platform_init); +module_exit(ilitek_platform_exit); +MODULE_AUTHOR("ILITEK"); +MODULE_LICENSE("GPL"); + + diff --git a/drivers/input/touchscreen/ilitek_mmi/platform.h b/drivers/input/touchscreen/ilitek_mmi/platform.h new file mode 100644 index 000000000000..fc8e6da8cb70 --- /dev/null +++ b/drivers/input/touchscreen/ilitek_mmi/platform.h @@ -0,0 +1,128 @@ +/* + * ILITEK Touch IC driver + * + * Copyright (C) 2011 ILI Technology Corporation. + * + * Author: Dicky Chiang + * Based on TDD v7.0 implemented by Mstar & ILITEK + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ + +#ifndef __PLATFORM_H +#define __PLATFORM_H + +struct ilitek_platform_data { + + struct i2c_client *client; + + struct input_dev *input_device; + + const struct i2c_device_id *i2c_id; + + struct regulator *vdd; + struct regulator *vdd_i2c; + + struct mutex plat_mutex; + spinlock_t plat_spinlock; + + uint32_t chip_id; + + int int_gpio; + int reset_gpio; + int isr_gpio; + + int delay_time_high; + int delay_time_low; + int edge_delay; + + bool isEnableIRQ; + bool isEnablePollCheckPower; + +#ifdef USE_KTHREAD + struct task_struct *irq_thread; + bool irq_trigger; + bool free_irq_thread; +#else + struct work_struct report_work_queue; +#endif + +#ifdef CONFIG_FB + struct notifier_block notifier_fb; +#else + struct early_suspend early_suspend; +#endif + +#ifdef BOOT_FW_UPGRADE + struct task_struct *update_thread; +#endif + + /* obtain msg when battery status has changed */ + struct delayed_work check_power_status_work; + struct workqueue_struct *check_power_status_queue; + unsigned long work_delay; + bool vpower_reg_nb; + + /* Sending report data to users for the debug */ + bool debug_node_open; + int debug_data_frame; + wait_queue_head_t inq; + unsigned char debug_buf[1024][2048]; + struct mutex ilitek_debug_mutex; + struct mutex ilitek_debug_read_mutex; + + struct spi_device *spi; + bool suspended; + + const char *TP_IC_TYPE; + bool MT_B_TYPE; + bool REGULATOR_POWER_ON; + bool BATTERY_CHECK; + bool ENABLE_BATTERY_CHECK; + + u32 x_max; + u32 y_max; + u32 x_min; + u32 y_min; + + bool x_flip; + bool y_flip; + + int TPD_WIDTH; + int TPD_HEIGHT; + int MAX_TOUCH_NUM; + +}; + +extern struct ilitek_platform_data *ipd; +extern struct tpd_device *tpd; +/* exported from platform.c */ +extern void ilitek_platform_disable_irq(void); +extern void ilitek_platform_enable_irq(void); +extern int ilitek_platform_read_tp_info(void); +extern void ilitek_platform_tp_hw_reset(bool isEnable); +#ifdef ENABLE_REGULATOR_POWER_ON +extern void ilitek_regulator_power_on(bool status); +#endif + +/* exported from userspsace.c */ +extern void netlink_reply_msg(void *raw, int size); +extern int ilitek_proc_init(void); +extern void ilitek_proc_remove(void); +extern int ilitek_sys_init(void); +extern void ilitek_sys_remove(void); + +#endif /* __PLATFORM_H */ diff --git a/drivers/input/touchscreen/ilitek_mmi/userspace.c b/drivers/input/touchscreen/ilitek_mmi/userspace.c new file mode 100644 index 000000000000..dc93a2ad6ecc --- /dev/null +++ b/drivers/input/touchscreen/ilitek_mmi/userspace.c @@ -0,0 +1,1928 @@ +/* + * ILITEK Touch IC driver + * + * Copyright (C) 2011 ILI Technology Corporation. + * + * Author: Dicky Chiang + * Based on TDD v7.0 implemented by Mstar & ILITEK + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ + +#include "common.h" +#include "platform.h" +#include "core/config.h" +#include "core/firmware.h" +#include "core/finger_report.h" +#include "core/flash.h" +#include "core/i2c.h" +#include "core/protocol.h" +#include "core/mp_test.h" +#include "core/parser.h" +#include "core/gesture.h" + +#define USER_STR_BUFF 128 +#define ILITEK_IOCTL_MAGIC 100 +#define ILITEK_IOCTL_MAXNR 18 + +#define ILITEK_IOCTL_I2C_WRITE_DATA _IOWR(ILITEK_IOCTL_MAGIC, 0, uint8_t*) +#define ILITEK_IOCTL_I2C_SET_WRITE_LENGTH _IOWR(ILITEK_IOCTL_MAGIC, 1, int) +#define ILITEK_IOCTL_I2C_READ_DATA _IOWR(ILITEK_IOCTL_MAGIC, 2, uint8_t*) +#define ILITEK_IOCTL_I2C_SET_READ_LENGTH _IOWR(ILITEK_IOCTL_MAGIC, 3, int) + +#define ILITEK_IOCTL_TP_HW_RESET _IOWR(ILITEK_IOCTL_MAGIC, 4, int) +#define ILITEK_IOCTL_TP_POWER_SWITCH _IOWR(ILITEK_IOCTL_MAGIC, 5, int) +#define ILITEK_IOCTL_TP_REPORT_SWITCH _IOWR(ILITEK_IOCTL_MAGIC, 6, int) +#define ILITEK_IOCTL_TP_IRQ_SWITCH _IOWR(ILITEK_IOCTL_MAGIC, 7, int) + +#define ILITEK_IOCTL_TP_DEBUG_LEVEL _IOWR(ILITEK_IOCTL_MAGIC, 8, int) +#define ILITEK_IOCTL_TP_FUNC_MODE _IOWR(ILITEK_IOCTL_MAGIC, 9, int) + +#define ILITEK_IOCTL_TP_FW_VER _IOWR(ILITEK_IOCTL_MAGIC, 10, uint8_t*) +#define ILITEK_IOCTL_TP_PL_VER _IOWR(ILITEK_IOCTL_MAGIC, 11, uint8_t*) +#define ILITEK_IOCTL_TP_CORE_VER _IOWR(ILITEK_IOCTL_MAGIC, 12, uint8_t*) +#define ILITEK_IOCTL_TP_DRV_VER _IOWR(ILITEK_IOCTL_MAGIC, 13, uint8_t*) +#define ILITEK_IOCTL_TP_CHIP_ID _IOWR(ILITEK_IOCTL_MAGIC, 14, uint32_t*) + +#define ILITEK_IOCTL_TP_NETLINK_CTRL _IOWR(ILITEK_IOCTL_MAGIC, 15, int*) +#define ILITEK_IOCTL_TP_NETLINK_STATUS _IOWR(ILITEK_IOCTL_MAGIC, 16, int*) + +#define ILITEK_IOCTL_TP_MODE_CTRL _IOWR(ILITEK_IOCTL_MAGIC, 17, uint8_t*) +#define ILITEK_IOCTL_TP_MODE_STATUS _IOWR(ILITEK_IOCTL_MAGIC, 18, int*) +#define ILITEK_IOCTL_ICE_MODE_SWITCH _IOWR(ILITEK_IOCTL_MAGIC, 19, int) + +unsigned char g_user_buf[USER_STR_BUFF] = { 0 }; +static struct class *touchscreen_class; +static struct device *touchscreen_class_dev; + +int katoi(char *string) +{ + int result = 0; + unsigned int digit; + int sign; + + if (*string == '-') { + sign = 1; + string += 1; + } else { + sign = 0; + if (*string == '+') { + string += 1; + } + } + + for (;; string += 1) { + digit = *string - '0'; + if (digit > 9) + break; + result = (10 * result) + digit; + } + + if (sign) { + return -result; + } + return result; +} + +EXPORT_SYMBOL(katoi); + +int str2hex(char *str) +{ + int strlen, result, intermed, intermedtop; + char *s = str; + + while (*s != 0x0) { + s++; + } + + strlen = (int)(s - str); + s = str; + if (*s != 0x30) { + return ERROR; + } + + s++; + + if (*s != 0x78 && *s != 0x58) { + return ERROR; + } + s++; + + strlen = strlen - 3; + result = 0; + while (*s != 0x0) { + intermed = *s & 0x0f; + intermedtop = *s & 0xf0; + if (intermedtop == 0x60 || intermedtop == 0x40) { + intermed += 0x09; + } + intermed = intermed << (strlen << 2); + result = result | intermed; + strlen -= 1; + s++; + } + return result; +} + +EXPORT_SYMBOL(str2hex); + +static ssize_t ilitek_proc_debug_switch_read(struct file *pFile, + char __user *buff, size_t nCount, + loff_t *pPos) +{ + int res = 0; + + if (*pPos != 0) + return 0; + + memset(g_user_buf, 0, USER_STR_BUFF * sizeof(unsigned char)); + + ipd->debug_node_open = !ipd->debug_node_open; + + ipio_info(" %s debug_flag message = %x\n", + ipd->debug_node_open ? "Enabled" : "Disabled", + ipd->debug_node_open); + + nCount = + snprintf(g_user_buf, USER_STR_BUFF * sizeof(unsigned char), "ipd->debug_node_open : %s\n", + ipd->debug_node_open ? "Enabled" : "Disabled"); + + *pPos += nCount; + + res = copy_to_user(buff, g_user_buf, nCount); + if (res < 0) { + ipio_err("Failed to copy data to user space"); + } + + return nCount; +} + +static ssize_t ilitek_proc_debug_message_write(struct file *filp, + const char *buff, size_t size, + loff_t *pPos) +{ + int ret = 0; + unsigned char buffer[512] = { 0 }; + + /* check the buffer size whether it exceeds the local buffer size or not */ + if (size > 512) { + ipio_err("buffer exceed 512 bytes\n"); + size = 512; + } + + ret = copy_from_user(buffer, buff, size - 1); + if (ret < 0) { + ipio_err("copy data from user space, failed"); + return ERROR; + } + + if (strcmp(buffer, "dbg_flag") == 0) { + ipd->debug_node_open = !ipd->debug_node_open; + ipio_info(" %s debug_flag message(%X).\n", + ipd->debug_node_open ? "Enabled" : "Disabled", + ipd->debug_node_open); + } + return size; +} + +static ssize_t ilitek_proc_debug_message_read(struct file *filp, + char __user *buff, size_t size, + loff_t *pPos) +{ + unsigned long p = *pPos; + unsigned int count = size; + int i = 0; + int send_data_len = 0; + size_t ret = 0; + int data_count = 0; + int one_data_bytes = 0; + int need_read_data_len = 0; + int type = 0; + unsigned char *tmpbuf = NULL; + unsigned char tmpbufback[128] = { 0 }; + + mutex_lock(&ipd->ilitek_debug_read_mutex); + + while (ipd->debug_data_frame <= 0) { + if (filp->f_flags & O_NONBLOCK) { + return -EAGAIN; + } + wait_event_interruptible(ipd->inq, ipd->debug_data_frame > 0); + } + + mutex_lock(&ipd->ilitek_debug_mutex); + + tmpbuf = vmalloc(4096); /* buf size if even */ + if (ERR_ALLOC_MEM(tmpbuf)) { + ipio_err("buffer vmalloc error\n"); + send_data_len += + snprintf(tmpbufback + send_data_len, + (strlen(tmpbufback)-send_data_len), + "buffer vmalloc error\n"); + ret = copy_to_user(buff, tmpbufback, send_data_len); /*ipd->debug_buf[0] */ + } else { + if (ipd->debug_data_frame > 0) { + if (ipd->debug_buf[0][0] == 0x5A) { + need_read_data_len = 43; + } else if (ipd->debug_buf[0][0] == 0x7A) { + type = ipd->debug_buf[0][3] & 0x0F; + + data_count = + ipd->debug_buf[0][1] * ipd->debug_buf[0][2]; + + if (type == 0 || type == 1 || type == 6) { + one_data_bytes = 1; + } else if (type == 2 || type == 3) { + one_data_bytes = 2; + } else if (type == 4 || type == 5) { + one_data_bytes = 4; + } + need_read_data_len = + data_count * one_data_bytes + 1 + 5; + } + + send_data_len = 0; /* ipd->debug_buf[0][1] - 2; */ + need_read_data_len = 2040; + if (need_read_data_len <= 0) { + ipio_err("parse data err data len = %d\n", + need_read_data_len); + send_data_len += + snprintf(tmpbuf + send_data_len, + (strlen(tmpbuf)-send_data_len), + "parse data err data len = %d\n", + need_read_data_len); + } else { + for (i = 0 ; i < need_read_data_len ; i++) { + send_data_len += + snprintf(tmpbuf + send_data_len, + (strlen(tmpbuf)-send_data_len), + "%02X", ipd->debug_buf[0][i]); + if (send_data_len >= 4096) { + ipio_err + ("send_data_len = %d set 4096 i = %d\n", + send_data_len, i); + send_data_len = 4096; + break; + } + } + } + send_data_len += snprintf(tmpbuf + send_data_len, + (strlen(tmpbuf)-send_data_len), "\n\n"); + + if (p == 5 || size == 4096 || size == 2048) { + ipd->debug_data_frame--; + if (ipd->debug_data_frame < 0) { + ipd->debug_data_frame = 0; + } + + for (i = 1; i <= ipd->debug_data_frame; i++) { + memcpy(ipd->debug_buf[i - 1], + ipd->debug_buf[i], 2048); + } + } + } else { + ipio_err("no data send\n"); + send_data_len += snprintf(tmpbuf + send_data_len, + (strlen(tmpbuf)-send_data_len), "no data send\n"); + } + + /* Preparing to send data to user */ + if (size == 4096) + ret = copy_to_user(buff, tmpbuf, send_data_len); + else + ret = copy_to_user(buff, tmpbuf + p, send_data_len - p); + + if (ret) { + ipio_err("copy_to_user err\n"); + ret = -EFAULT; + } else { + *pPos += count; + ret = count; + ipio_debug(DEBUG_FINGER_REPORT, + "Read %d bytes(s) from %ld\n", count, p); + } + } + /* ipio_err("send_data_len = %d\n", send_data_len); */ + if (send_data_len <= 0 || send_data_len > 4096) { + ipio_err("send_data_len = %d set 2048\n", send_data_len); + send_data_len = 4096; + } + if (tmpbuf != NULL) { + vfree(tmpbuf); + tmpbuf = NULL; + } + + mutex_unlock(&ipd->ilitek_debug_mutex); + mutex_unlock(&ipd->ilitek_debug_read_mutex); + return send_data_len; +} + +/* Created only for oppo */ +static ssize_t ilitek_proc_oppo_mp_lcm_on_read(struct file *filp, + char __user *buff, size_t size, + loff_t *pPos) +{ + int len = 0; + + if (*pPos != 0) + return 0; + + if (core_parser_path(INI_NAME_PATH) < 0) { + ipio_err("Failed to parsing INI file\n"); + goto out; + } + + /* Init MP structure */ + if (core_mp_init() < 0) { + ipio_err("Failed to init mp\n"); + goto out; + } + + /* Switch to test mode */ + core_fr_mode_control(&protocol->test_mode); + + ilitek_platform_disable_irq(); + + core_mp->oppo_run = true; + + /* Do not chang the sequence of test */ + core_mp_run_test("Noise Peak To Peak(With Panel)", true); + core_mp_run_test("Noise Peak to Peak(IC Only)", true); + core_mp_run_test("Short Test -ILI9881", true); + core_mp_run_test("Open Test(integration)_SP", true); + core_mp_run_test("Raw Data(Have BK)", true); + core_mp_run_test("Calibration Data(DAC)", true); + core_mp_run_test("Raw Data(No BK)", true); + core_mp_run_test("Doze Raw Data", true); + core_mp_run_test("Doze Peak To Peak", true); + + core_mp_show_result(); + + core_mp->oppo_run = false; + + core_mp_test_free(); + + /* Switch to demo mode */ + core_fr_mode_control(&protocol->demo_mode); + +#ifdef HOST_DOWNLOAD + ilitek_platform_tp_hw_reset(true); +#endif + + /*ilitek_platform_tp_hw_reset(true);*/ + /* Soft reset */ + core_config_ice_mode_enable(); + core_config_set_watch_dog(false); + mdelay(10); + core_config_ic_reset(); + +out: + *pPos = len; + return len; +} + +/* Created only for oppo */ +static ssize_t ilitek_proc_oppo_mp_lcm_off_read(struct file *filp, + char __user *buff, size_t size, + loff_t *pPos) +{ + int len = 0; + + if (*pPos != 0) + return 0; + + if (core_parser_path(INI_NAME_PATH) < 0) { + ipio_err("Failed to parsing INI file\n"); + goto out; + } + + /* Init MP structure */ + if (core_mp_init() < 0) { + ipio_err("Failed to init mp\n"); + goto out; + } + + ilitek_platform_disable_irq(); + + /* Enter to suspend and move gesture code to iram */ + core_config->isEnableGesture = true; + core_gesture->mode = GESTURE_INFO_MPDE; + + /* sense stop */ + core_config_sense_ctrl(false); + + if (core_config_check_cdc_busy(50, 100) < 0) + ipio_err("Check busy is timout !\n"); + + core_fr->actual_fw_mode = P5_0_FIRMWARE_GESTURE_MODE; + +#ifdef HOST_DOWNLOAD + core_gesture_load_code(); +#endif + + /* Switch to test mode which moves mp code to iram */ + core_fr_mode_control(&protocol->test_mode); + + ilitek_platform_disable_irq(); + + /* Indicates running mp test is called by oppo node */ + core_mp->oppo_run = true; + core_mp->oppo_lcm = true; + + /* Do not chang the sequence of test */ + core_mp_run_test("Raw Data(No BK) (LCM OFF)", true); + core_mp_run_test("Noise Peak to Peak(With Panel) (LCM OFF)", true); + core_mp_run_test("Raw Data_TD (LCM OFF)", true); + core_mp_run_test("Peak To Peak_TD (LCM OFF)", true); + + core_mp_show_result(); + + core_mp->oppo_run = false; + core_mp->oppo_lcm = false; + + core_mp_ctrl_lcm_status(true); + + core_mp_test_free(); + + core_fr_mode_control(&protocol->demo_mode); + + /*ilitek_platform_tp_hw_reset(true);*/ + /* Soft reset */ + core_config_ice_mode_enable(); + core_config_set_watch_dog(false); + mdelay(10); + core_config_ic_reset(); + + ilitek_platform_enable_irq(); + +out: + *pPos = len; + return len; +} + +static ssize_t ilitek_proc_mp_test_read(struct file *filp, char __user *buff, + size_t size, loff_t *pPos) +{ + uint32_t len = 0; + + if (*pPos != 0) + return 0; + + if (core_parser_path(INI_NAME_PATH) < 0) { + ipio_err("Failed to parsing INI file\n"); + goto out; + } + + /* Init MP structure */ + if (core_mp_init() < 0) { + ipio_err("Failed to init mp\n"); + goto out; + } + + /* Switch to Test mode nad move mp code */ + core_fr_mode_control(&protocol->test_mode); + + ilitek_platform_disable_irq(); + + /* Start to run MP test */ + core_mp->run = true; + + /* + * Get timing parameters first. + * Howerver, this can be ignored if read them from ini. + */ + if (protocol->major >= 5 && protocol->mid >= 4) { + if (core_mp_calc_timing_nodp() < 0) { + ipio_err("Can't get timing parameters\n"); + goto out; + } + } + + /* Do not chang the sequence of test */ + core_mp_run_test("Noise Peak To Peak(With Panel)", true); + core_mp_run_test("Noise Peak to Peak(IC Only)", true); + core_mp_run_test("Short Test -ILI9881", true); + core_mp_run_test("Open Test(integration)_SP", true); + core_mp_run_test("Raw Data(Have BK)", true); + /*core_mp_run_test("Raw Data(Have BK) (LCM OFF)", true); */ + core_mp_run_test("Calibration Data(DAC)", true); + core_mp_run_test("Raw Data(No BK)", true); + core_mp_run_test("Raw Data(No BK) (LCM OFF)", true); + core_mp_run_test("Noise Peak to Peak(With Panel) (LCM OFF)", true); + /*core_mp_run_test("Noise Peak to Peak(IC Only) (LCM OFF)", true); */ + core_mp_run_test("Raw Data_TD (LCM OFF)", true); + core_mp_run_test("Peak To Peak_TD (LCM OFF)", true); + core_mp_run_test("Doze Raw Data", true); + core_mp_run_test("Doze Peak To Peak", true); + /*core_mp_run_test("Pin Test ( INT and RST )", true); */ + + core_mp_show_result(); + + core_mp->run = false; + + core_mp_test_free(); + +#ifndef HOST_DOWNLOAD + core_config_ice_mode_enable(); + + if (core_config_set_watch_dog(false) < 0) { + ipio_err("Failed to disable watch dog\n"); + } + + core_config_ic_reset(); +#endif + /* Switch to Demo mode */ + core_fr_mode_control(&protocol->demo_mode); + +#ifdef HOST_DOWNLOAD + ilitek_platform_tp_hw_reset(true); +#endif + + ilitek_platform_enable_irq(); + +out: + *pPos = len; + return len; +} + +static ssize_t ilitek_proc_mp_test_write(struct file *filp, const char *buff, + size_t size, loff_t *pPos) +{ + int i, res = 0, count = 0; + char cmd[64] = { 0 }, str[512] = { + 0}; + char *token = NULL, *cur = NULL; + uint8_t *va = NULL; + + if (buff != NULL) { + res = copy_from_user(cmd, buff, size - 1); + if (res < 0) { + ipio_info("copy data from user space, failed\n"); + return ERROR; + } + } + + ipio_info("size = %d, cmd = %s\n", (int)size, cmd); + + if (size > 64) { + ipio_err("The size of string is too long\n"); + return size; + } + + token = cur = cmd; + + va = kcalloc(64, sizeof(uint8_t), GFP_KERNEL); + + while ((token = strsep(&cur, ",")) != NULL) { + va[count] = katoi(token); + ipio_info("data[%d] = %x\n", count, va[count]); + count++; + } + + ipio_info("cmd = %s\n", cmd); + + /* Init MP structure */ + if (core_mp_init() < 0) { + ipio_err("Failed to init mp\n"); + return size; + } + + /* Switch to Test mode */ + core_fr_mode_control(&protocol->test_mode); + + ilitek_platform_disable_irq(); + + for (i = 0 ; i < core_mp->mp_items; i++) { + if (strcmp(cmd, tItems[i].name) == 0) { + strlcpy(str, tItems[i].desp, strlen(str)); + tItems[i].run = 1; + tItems[i].max = va[1]; + tItems[i].min = va[2]; + tItems[i].frame_count = va[3]; + break; + } + } + + core_mp_run_test(str, false); + + core_mp_show_result(); + + core_mp_test_free(); + +#ifndef HOST_DOWNLOAD + core_config_ice_mode_enable(); + + if (core_config_set_watch_dog(false) < 0) { + ipio_err("Failed to disable watch dog\n"); + } + + core_config_ic_reset(); +#endif + + core_fr_mode_control(&protocol->demo_mode); + +#ifdef HOST_DOWNLOAD + ilitek_platform_tp_hw_reset(true); +#endif + + ilitek_platform_enable_irq(); + + ipio_info("MP Test DONE\n"); + ipio_kfree((void **)&va); + return size; +} + +static ssize_t ilitek_proc_debug_level_read(struct file *filp, + char __user *buff, size_t size, + loff_t *pPos) +{ + int res = 0; + uint32_t len = 0; + + if (*pPos != 0) + return 0; + + memset(g_user_buf, 0, USER_STR_BUFF * sizeof(unsigned char)); + + len = snprintf(g_user_buf, sizeof(g_user_buf), "%d", ipio_debug_level); + + ipio_info("Current DEBUG Level = %d\n", ipio_debug_level); + ipio_info("You can set one of levels for debug as below:\n"); + ipio_info("DEBUG_NONE = %d\n", DEBUG_NONE); + ipio_info("DEBUG_IRQ = %d\n", DEBUG_IRQ); + ipio_info("DEBUG_FINGER_REPORT = %d\n", DEBUG_FINGER_REPORT); + ipio_info("DEBUG_FIRMWARE = %d\n", DEBUG_FIRMWARE); + ipio_info("DEBUG_CONFIG = %d\n", DEBUG_CONFIG); + ipio_info("DEBUG_I2C = %d\n", DEBUG_I2C); + ipio_info("DEBUG_BATTERY = %d\n", DEBUG_BATTERY); + ipio_info("DEBUG_MP_TEST = %d\n", DEBUG_MP_TEST); + ipio_info("DEBUG_IOCTL = %d\n", DEBUG_IOCTL); + ipio_info("DEBUG_NETLINK = %d\n", DEBUG_NETLINK); + ipio_info("DEBUG_ALL = %d\n", DEBUG_ALL); + + res = copy_to_user((uint32_t *) buff, &ipio_debug_level, len); + if (res < 0) { + ipio_err("Failed to copy data to user space\n"); + } + + *pPos = len; + + return len; +} + +static ssize_t ilitek_proc_debug_level_write(struct file *filp, + const char *buff, size_t size, + loff_t *pPos) +{ + int res = 0; + char cmd[10] = { 0 }; + + if (buff != NULL) { + res = copy_from_user(cmd, buff, size - 1); + if (res < 0) { + ipio_info("copy data from user space, failed\n"); + return ERROR; + } + } + + ipio_debug_level = katoi(cmd); + + ipio_info("ipio_debug_level = %d\n", ipio_debug_level); + + return size; +} + +static ssize_t ilitek_proc_gesture_read(struct file *filp, char __user *buff, + size_t size, loff_t *pPos) +{ + int res = 0; + uint32_t len = 0; + + if (*pPos != 0) + return 0; + + memset(g_user_buf, 0, USER_STR_BUFF * sizeof(unsigned char)); + + len = snprintf(g_user_buf, sizeof(g_user_buf), "%d", core_config->isEnableGesture); + + ipio_info("isEnableGesture = %d\n", core_config->isEnableGesture); + + res = + copy_to_user((uint32_t *) buff, &core_config->isEnableGesture, len); + if (res < 0) { + ipio_err("Failed to copy data to user space\n"); + } + + *pPos = len; + + return len; +} + +static ssize_t ilitek_proc_gesture_write(struct file *filp, const char *buff, + size_t size, loff_t *pPos) +{ + int res = 0; + char cmd[10] = { 0 }; + + if (buff != NULL) { + res = copy_from_user(cmd, buff, size - 1); + if (res < 0) { + ipio_info("copy data from user space, failed\n"); + return ERROR; + } + } + + ipio_info("size = %d, cmd = %s\n", (int)size, cmd); + + if (strcmp(cmd, "on") == 0) { + ipio_info("enable gesture mode\n"); + core_config->isEnableGesture = true; + } else if (strcmp(cmd, "off") == 0) { + ipio_info("disable gesture mode\n"); + core_config->isEnableGesture = false; + } else if (strcmp(cmd, "info") == 0) { + ipio_info("gesture info mode\n"); + core_gesture->mode = GESTURE_INFO_MPDE; + } else if (strcmp(cmd, "normal") == 0) { + ipio_info("gesture normal mode\n"); + core_gesture->mode = GESTURE_NORMAL_MODE; + } else + ipio_err("Unknown command\n"); + + return size; +} + +static ssize_t ilitek_proc_check_battery_read(struct file *filp, + char __user *buff, size_t size, + loff_t *pPos) +{ + int res = 0; + uint32_t len = 0; + + if (*pPos != 0) + return 0; + + memset(g_user_buf, 0, USER_STR_BUFF * sizeof(unsigned char)); + + len = snprintf(g_user_buf, sizeof(g_user_buf), "%d", ipd->isEnablePollCheckPower); + + ipio_info("isEnablePollCheckPower = %d\n", ipd->isEnablePollCheckPower); + + res = + copy_to_user((uint32_t *) buff, &ipd->isEnablePollCheckPower, len); + if (res < 0) { + ipio_err("Failed to copy data to user space\n"); + } + + *pPos = len; + + return len; +} + +static ssize_t ilitek_proc_check_battery_write(struct file *filp, + const char *buff, size_t size, + loff_t *pPos) +{ + int res = 0; + char cmd[10] = { 0 }; + + if (buff != NULL) { + res = copy_from_user(cmd, buff, size - 1); + if (res < 0) { + ipio_info("copy data from user space, failed\n"); + return ERROR; + } + } + + ipio_info("size = %d, cmd = %s\n", (int)size, cmd); + +#ifdef ENABLE_BATTERY_CHECK + if (strcmp(cmd, "on") == 0) { + ipio_info("Start the thread of check power status\n"); + queue_delayed_work(ipd->check_power_status_queue, + &ipd->check_power_status_work, + ipd->work_delay); + ipd->isEnablePollCheckPower = true; + } else if (strcmp(cmd, "off") == 0) { + ipio_info("Cancel the thread of check power status\n"); + cancel_delayed_work_sync(&ipd->check_power_status_work); + ipd->isEnablePollCheckPower = false; + } else + ipio_err("Unknown command\n"); +#else + ipio_err("You need to enable its MACRO before operate it.\n"); +#endif + + return size; +} + +static ssize_t ilitek_proc_fw_process_read(struct file *filp, + char __user *buff, size_t size, + loff_t *pPos) +{ + int res = 0; + uint32_t len = 0; + + /* + * If file position is non-zero, we assume the string has been read + * and indicates that there is no more data to be read. + */ + if (*pPos != 0) + return 0; + + memset(g_user_buf, 0, USER_STR_BUFF * sizeof(unsigned char)); + + len = snprintf(g_user_buf, sizeof(g_user_buf), "%02d", core_firmware->update_status); + + ipio_info("update status = %d\n", core_firmware->update_status); + + res = + copy_to_user((uint32_t *) buff, &core_firmware->update_status, len); + if (res < 0) { + ipio_err("Failed to copy data to user space"); + } + + *pPos = len; + + return len; +} + +/* + * To avoid the restriction of selinux, we assigned a fixed path where locates firmware file, + * reading (cat) this node to notify driver running the upgrade process from user space. + */ +static ssize_t ilitek_proc_fw_upgrade_read(struct file *filp, + char __user *buff, size_t size, + loff_t *pPos) +{ + int res = 0; + uint32_t len = 0; + + ipio_info("Preparing to upgarde firmware\n"); + + if (*pPos != 0) + return 0; + + ilitek_platform_disable_irq(); + + if (ipd->isEnablePollCheckPower) + cancel_delayed_work_sync(&ipd->check_power_status_work); +#ifdef HOST_DOWNLOAD + ilitek_platform_tp_hw_reset(true); +#else + res = core_firmware_upgrade(UPDATE_FW_PATH, false); +#endif + ilitek_platform_enable_irq(); + + if (ipd->isEnablePollCheckPower) + queue_delayed_work(ipd->check_power_status_queue, + &ipd->check_power_status_work, + ipd->work_delay); + + if (res < 0) { + core_firmware->update_status = res; + ipio_err("Failed to upgrade firwmare\n"); + } else { + core_firmware->update_status = 100; + ipio_info("Succeed to upgrade firmware\n"); + } + + *pPos = len; + + return len; +} + +static ssize_t ilitek_proc_iram_upgrade_read(struct file *filp, + char __user *buff, size_t size, + loff_t *pPos) +{ + int res = 0; + uint32_t len = 0; + + ipio_info("Preparing to upgarde firmware by IRAM\n"); + + if (*pPos != 0) + return 0; + + ilitek_platform_disable_irq(); + + res = core_firmware_upgrade(UPDATE_FW_PATH, true); + + ilitek_platform_enable_irq(); + + if (res < 0) { + /* return the status to user space even if any error occurs. */ + core_firmware->update_status = res; + ipio_err("Failed to upgrade firwmare by IRAM, res = %d\n", res); + } else { + ipio_info("Succeed to upgrade firmware by IRAM\n"); + } + + *pPos = len; + + return len; +} + +/* for debug */ +static ssize_t ilitek_proc_ioctl_read(struct file *filp, char __user *buff, + size_t size, loff_t *pPos) +{ + int res = 0; + uint32_t len = 0; + uint8_t cmd[2] = { 0 }; + + if (*pPos != 0) + return 0; + + if (size < 4095) { + res = copy_from_user(cmd, buff, size - 1); + if (res < 0) { + ipio_info("copy data from user space, failed\n"); + return ERROR; + } + } + + ipio_info("size = %d, cmd = %d", (int)size, cmd[0]); + + /* test */ + if (cmd[0] == 0x1) { + ipio_info("HW Reset\n"); + ilitek_platform_tp_hw_reset(true); + } else if (cmd[0] == 0x02) { + ipio_info("Disable IRQ\n"); + ilitek_platform_disable_irq(); + } else if (cmd[0] == 0x03) { + ipio_info("Enable IRQ\n"); + ilitek_platform_enable_irq(); + } else if (cmd[0] == 0x04) { + ipio_info("Get Chip id\n"); + core_config_get_chip_id(); + } + + *pPos = len; + + return len; +} + +/* for debug */ +static ssize_t ilitek_proc_ioctl_write(struct file *filp, const char *buff, + size_t size, loff_t *pPos) +{ + int res = 0, count = 0, i; + int w_len = 0, r_len = 0, delay = 0; + char cmd[512] = { 0 }; + char *token = NULL, *cur = NULL; + uint8_t temp[256] = { 0 }; + uint8_t *data = NULL; + + if (buff != NULL) { + res = copy_from_user(cmd, buff, size - 1); + if (res < 0) { + ipio_info("copy data from user space, failed\n"); + return ERROR; + } + } + + ipio_info("size = %d, cmd = %s\n", (int)size, cmd); + + token = cur = cmd; + + data = kmalloc(512 * sizeof(uint8_t), GFP_KERNEL); + memset(data, 0, 512); + + while ((token = strsep(&cur, ",")) != NULL) { + data[count] = str2hex(token); + ipio_info("data[%d] = %x\n", count, data[count]); + count++; + } + + ipio_info("cmd = %s\n", cmd); + + if (strcmp(cmd, "reset") == 0) { + ipio_info("HW Reset\n"); + ilitek_platform_tp_hw_reset(true); + } else if (strcmp(cmd, "disirq") == 0) { + ipio_info("Disable IRQ\n"); + ilitek_platform_disable_irq(); + } else if (strcmp(cmd, "enairq") == 0) { + ipio_info("Enable IRQ\n"); + ilitek_platform_enable_irq(); + } else if (strcmp(cmd, "getchip") == 0) { + ipio_info("Get Chip id\n"); + core_config_get_chip_id(); + } else if (strcmp(cmd, "dispcc") == 0) { + ipio_info("disable phone cover\n"); + core_config_phone_cover_ctrl(false); + } else if (strcmp(cmd, "enapcc") == 0) { + ipio_info("enable phone cover\n"); + core_config_phone_cover_ctrl(true); + } else if (strcmp(cmd, "disfsc") == 0) { + ipio_info("disable finger sense\n"); + core_config_finger_sense_ctrl(false); + } else if (strcmp(cmd, "enafsc") == 0) { + ipio_info("enable finger sense\n"); + core_config_finger_sense_ctrl(true); + } else if (strcmp(cmd, "disprox") == 0) { + ipio_info("disable proximity\n"); + core_config_proximity_ctrl(false); + } else if (strcmp(cmd, "enaprox") == 0) { + ipio_info("enable proximity\n"); + core_config_proximity_ctrl(true); + } else if (strcmp(cmd, "disglove") == 0) { + ipio_info("disable glove function\n"); + core_config_glove_ctrl(false, false); + } else if (strcmp(cmd, "enaglove") == 0) { + ipio_info("enable glove function\n"); + core_config_glove_ctrl(true, false); + } else if (strcmp(cmd, "glovesl") == 0) { + ipio_info("set glove as seamless\n"); + core_config_glove_ctrl(true, true); + } else if (strcmp(cmd, "enastylus") == 0) { + ipio_info("enable stylus\n"); + core_config_stylus_ctrl(true, false); + } else if (strcmp(cmd, "disstylus") == 0) { + ipio_info("disable stylus\n"); + core_config_stylus_ctrl(false, false); + } else if (strcmp(cmd, "stylussl") == 0) { + ipio_info("set stylus as seamless\n"); + core_config_stylus_ctrl(true, true); + } else if (strcmp(cmd, "tpscan_ab") == 0) { + ipio_info("set TP scan as mode AB\n"); + core_config_tp_scan_mode(true); + } else if (strcmp(cmd, "tpscan_b") == 0) { + ipio_info("set TP scan as mode B\n"); + core_config_tp_scan_mode(false); + } else if (strcmp(cmd, "phone_cover") == 0) { + ipio_info("set size of phone conver window\n"); + core_config_set_phone_cover(data); + } else if (strcmp(cmd, "debugmode") == 0) { + ipio_info("debug mode test enter\n"); + temp[0] = protocol->debug_mode; + core_fr_mode_control(temp); + } else if (strcmp(cmd, "baseline") == 0) { + ipio_info("test baseline raw\n"); + temp[0] = protocol->debug_mode; + core_fr_mode_control(temp); + ilitek_platform_disable_irq(); + temp[0] = 0xFA; + temp[1] = 0x08; + core_write(core_config->slave_i2c_addr, temp, 2); + ilitek_platform_enable_irq(); + } else if (strcmp(cmd, "delac_on") == 0) { + ipio_info("test get delac\n"); + temp[0] = protocol->debug_mode; + core_fr_mode_control(temp); + ilitek_platform_disable_irq(); + temp[0] = 0xFA; + temp[1] = 0x03; + core_write(core_config->slave_i2c_addr, temp, 2); + ilitek_platform_enable_irq(); + } else if (strcmp(cmd, "delac_off") == 0) { + ipio_info("test get delac\n"); + temp[0] = protocol->demo_mode; + core_fr_mode_control(temp); + } else if (strcmp(cmd, "test") == 0) { + ipio_info("test test_reset test 1\n"); + gpio_direction_output(ipd->reset_gpio, 1); + mdelay(1); + gpio_set_value(ipd->reset_gpio, 0); + mdelay(1); + gpio_set_value(ipd->reset_gpio, 1); + mdelay(10); + } else if (strcmp(cmd, "gt") == 0) { + ipio_info("test Gesture test\n"); +#ifdef HOST_DOWNLOAD + core_gesture_load_code(); +#endif + } else if (strcmp(cmd, "suspend") == 0) { + ipio_info("test suspend test\n"); + core_config_ic_suspend(); + } else if (strcmp(cmd, "resume") == 0) { + ipio_info("test resume test\n"); + core_config_ic_resume(); + } + + else if (strcmp(cmd, "gt1") == 0) { + ipio_info("test Gesture test 1\n"); + temp[0] = 0x01; + temp[1] = 0x01; + temp[2] = 0x00; + w_len = 3; + core_write(core_config->slave_i2c_addr, temp, w_len); + if (core_config_check_cdc_busy(50, 100) < 0) + ipio_err("Check busy is timout !\n"); + } else if (strcmp(cmd, "gt2") == 0) { + temp[0] = 0x01; + temp[1] = 0x0A; + temp[2] = 0x01; + w_len = 3; + core_write(core_config->slave_i2c_addr, temp, w_len); + ipio_info("test Gesture test\n"); + } else if (strcmp(cmd, "i2c_w") == 0) { + w_len = data[1]; + ipio_info("w_len = %d\n", w_len); + + for (i = 0 ; i < w_len ; i++) { + temp[i] = data[2 + i]; + ipio_info("i2c[%d] = %x\n", i, temp[i]); + } + + core_write(core_config->slave_i2c_addr, temp, w_len); + } else if (strcmp(cmd, "i2c_r") == 0) { + r_len = data[1]; + ipio_info("r_len = %d\n", r_len); + + core_read(core_config->slave_i2c_addr, &temp[0], r_len); + + for (i = 0 ; i < r_len ; i++) + ipio_info("temp[%d] = %x\n", i, temp[i]); + } else if (strcmp(cmd, "i2c_w_r") == 0) { + w_len = data[1]; + r_len = data[2]; + delay = data[3]; + ipio_info("w_len = %d, r_len = %d, delay = %d\n", w_len, r_len, + delay); + + for (i = 0 ; i < w_len ; i++) { + temp[i] = data[4 + i]; + ipio_info("temp[%d] = %x\n", i, temp[i]); + } + + core_write(core_config->slave_i2c_addr, temp, w_len); + + memset(temp, 0, sizeof(temp)); + mdelay(delay); + + core_read(core_config->slave_i2c_addr, &temp[0], r_len); + + for (i = 0 ; i < r_len ; i++) + ipio_info("temp[%d] = %x\n", i, temp[i]); + } else { + ipio_err("Unknown command\n"); + } + + ipio_kfree((void **)&data); + return size; +} + +static long ilitek_proc_ioctl(struct file *filp, unsigned int cmd, + unsigned long arg) +{ + int res = 0, length = 0; + uint8_t szBuf[512] = { 0 }; + static uint16_t i2c_rw_length; + uint32_t id_to_user = 0x0; + char dbg[10] = { 0 }; + + ipio_debug(DEBUG_IOCTL, "cmd = %d\n", _IOC_NR(cmd)); + + if (_IOC_TYPE(cmd) != ILITEK_IOCTL_MAGIC) { + ipio_err("The Magic number doesn't match\n"); + return -ENOTTY; + } + + if (_IOC_NR(cmd) > ILITEK_IOCTL_MAXNR) { + ipio_err("The number of ioctl doesn't match\n"); + return -ENOTTY; + } + + switch (cmd) { + case ILITEK_IOCTL_I2C_WRITE_DATA: + res = copy_from_user(szBuf, (uint8_t *) arg, i2c_rw_length); + if (res < 0) { + ipio_err("Failed to copy data from user space\n"); + } else { + res = + core_write(core_config->slave_i2c_addr, &szBuf[0], + i2c_rw_length); + if (res < 0) { + ipio_err("Failed to write data via i2c\n"); + } + } + break; + + case ILITEK_IOCTL_I2C_READ_DATA: + res = + core_read(core_config->slave_i2c_addr, szBuf, + i2c_rw_length); + if (res < 0) { + ipio_err("Failed to read data via i2c\n"); + } else { + res = + copy_to_user((uint8_t *) arg, szBuf, i2c_rw_length); + if (res < 0) { + ipio_err("Failed to copy data to user space\n"); + } + } + break; + + case ILITEK_IOCTL_I2C_SET_WRITE_LENGTH: + case ILITEK_IOCTL_I2C_SET_READ_LENGTH: + i2c_rw_length = arg; + break; + + case ILITEK_IOCTL_TP_HW_RESET: + ilitek_platform_tp_hw_reset(true); + break; + + case ILITEK_IOCTL_TP_POWER_SWITCH: + ipio_info("Not implemented yet\n"); + break; + + case ILITEK_IOCTL_TP_REPORT_SWITCH: + res = copy_from_user(szBuf, (uint8_t *) arg, 1); + if (res < 0) { + ipio_err("Failed to copy data from user space\n"); + } else { + if (szBuf[0]) { + core_fr->isEnableFR = true; + ipio_debug(DEBUG_IOCTL, + "Function of finger report was enabled\n"); + } else { + core_fr->isEnableFR = false; + ipio_debug(DEBUG_IOCTL, + "Function of finger report was disabled\n"); + } + } + break; + + case ILITEK_IOCTL_TP_IRQ_SWITCH: + res = copy_from_user(szBuf, (uint8_t *) arg, 1); + if (res < 0) { + ipio_err("Failed to copy data from user space\n"); + } else { + if (szBuf[0]) { + ilitek_platform_enable_irq(); + } else { + ilitek_platform_disable_irq(); + } + } + break; + + case ILITEK_IOCTL_TP_DEBUG_LEVEL: + res = copy_from_user(dbg, (uint32_t *) arg, sizeof(uint32_t)); + if (res < 0) { + ipio_err("Failed to copy data from user space\n"); + } else { + ipio_debug_level = katoi(dbg); + ipio_info("ipio_debug_level = %d", ipio_debug_level); + } + break; + + case ILITEK_IOCTL_TP_FUNC_MODE: + res = copy_from_user(szBuf, (uint8_t *) arg, 3); + if (res < 0) { + ipio_err("Failed to copy data from user space\n"); + } else { + core_write(core_config->slave_i2c_addr, &szBuf[0], 3); + } + + break; + + case ILITEK_IOCTL_TP_FW_VER: + res = core_config_get_fw_ver(); + if (res < 0) { + ipio_err("Failed to get firmware version\n"); + } else { + res = + copy_to_user((uint8_t *) arg, + core_config->firmware_ver, + protocol->fw_ver_len); + if (res < 0) { + ipio_err + ("Failed to copy firmware version to user space\n"); + } + } + break; + + case ILITEK_IOCTL_TP_PL_VER: + res = core_config_get_protocol_ver(); + if (res < 0) { + ipio_err("Failed to get protocol version\n"); + } else { + res = + copy_to_user((uint8_t *) arg, + core_config->protocol_ver, + protocol->pro_ver_len); + if (res < 0) { + ipio_err + ("Failed to copy protocol version to user space\n"); + } + } + break; + + case ILITEK_IOCTL_TP_CORE_VER: + res = core_config_get_core_ver(); + if (res < 0) { + ipio_err("Failed to get core version\n"); + } else { + res = + copy_to_user((uint8_t *) arg, core_config->core_ver, + protocol->core_ver_len); + if (res < 0) { + ipio_err + ("Failed to copy core version to user space\n"); + } + } + break; + + case ILITEK_IOCTL_TP_DRV_VER: + length = snprintf(szBuf, sizeof(szBuf), "%s", DRIVER_VERSION); + if (!length) { + ipio_err + ("Failed to convert driver version from definiation\n"); + } else { + res = copy_to_user((uint8_t *) arg, szBuf, length); + if (res < 0) { + ipio_err + ("Failed to copy driver ver to user space\n"); + } + } + break; + + case ILITEK_IOCTL_TP_CHIP_ID: + res = core_config_get_chip_id(); + if (res < 0) { + ipio_err("Failed to get chip id\n"); + } else { + id_to_user = + core_config->chip_id << 16 | core_config->chip_type; + + res = + copy_to_user((uint32_t *) arg, &id_to_user, + sizeof(uint32_t)); + if (res < 0) { + ipio_err + ("Failed to copy chip id to user space\n"); + } + } + break; + + case ILITEK_IOCTL_TP_NETLINK_CTRL: + res = copy_from_user(szBuf, (uint8_t *) arg, 1); + if (res < 0) { + ipio_err("Failed to copy data from user space\n"); + } else { + if (szBuf[0]) { + core_fr->isEnableNetlink = true; + ipio_debug(DEBUG_IOCTL, + "Netlink has been enabled\n"); + } else { + core_fr->isEnableNetlink = false; + ipio_debug(DEBUG_IOCTL, + "Netlink has been disabled\n"); + } + } + break; + + case ILITEK_IOCTL_TP_NETLINK_STATUS: + ipio_debug(DEBUG_IOCTL, "Netlink is enabled : %d\n", + core_fr->isEnableNetlink); + res = + copy_to_user((int *)arg, &core_fr->isEnableNetlink, + sizeof(int)); + if (res < 0) { + ipio_err("Failed to copy chip id to user space\n"); + } + break; + + case ILITEK_IOCTL_TP_MODE_CTRL: + res = copy_from_user(szBuf, (uint8_t *) arg, 4); + if (res < 0) { + ipio_err("Failed to copy data from user space\n"); + } else { + core_fr_mode_control(szBuf); + } + break; + + case ILITEK_IOCTL_TP_MODE_STATUS: + ipio_debug(DEBUG_IOCTL, "Current firmware mode : %d", + core_fr->actual_fw_mode); + res = + copy_to_user((int *)arg, &core_fr->actual_fw_mode, + sizeof(int)); + if (res < 0) { + ipio_err("Failed to copy chip id to user space\n"); + } + break; + + case ILITEK_IOCTL_ICE_MODE_SWITCH: + res = copy_from_user(szBuf, (uint8_t *) arg, 1); + if (res < 0) { + ipio_err("Failed to copy data from user space\n"); + } else { + if (szBuf[0]) { + core_config->icemodeenable = true; + } else { + core_config->icemodeenable = false; + } + } + break; + + default: + res = -ENOTTY; + break; + } + + return res; +} + +struct proc_dir_entry *proc_dir_ilitek; +struct proc_dir_entry *proc_ioctl; +struct proc_dir_entry *proc_fw_process; +struct proc_dir_entry *proc_fw_upgrade; +struct proc_dir_entry *proc_iram_upgrade; +struct proc_dir_entry *proc_gesture; +struct proc_dir_entry *proc_debug_level; +struct proc_dir_entry *proc_mp_test; +struct proc_dir_entry *proc_debug_message; +struct proc_dir_entry *proc_debug_message_switch; + +struct file_operations proc_ioctl_fops = { + .unlocked_ioctl = ilitek_proc_ioctl, + .read = ilitek_proc_ioctl_read, + .write = ilitek_proc_ioctl_write, +}; + +struct file_operations proc_fw_process_fops = { + .read = ilitek_proc_fw_process_read, +}; + +struct file_operations proc_fw_upgrade_fops = { + .read = ilitek_proc_fw_upgrade_read, +}; + +struct file_operations proc_iram_upgrade_fops = { + .read = ilitek_proc_iram_upgrade_read, +}; + +struct file_operations proc_gesture_fops = { + .write = ilitek_proc_gesture_write, + .read = ilitek_proc_gesture_read, +}; + +struct file_operations proc_check_battery_fops = { + .write = ilitek_proc_check_battery_write, + .read = ilitek_proc_check_battery_read, +}; + +struct file_operations proc_debug_level_fops = { + .write = ilitek_proc_debug_level_write, + .read = ilitek_proc_debug_level_read, +}; + +struct file_operations proc_mp_test_fops = { + .write = ilitek_proc_mp_test_write, + .read = ilitek_proc_mp_test_read, +}; + +struct file_operations proc_oppo_mp_lcm_on_fops = { + .read = ilitek_proc_oppo_mp_lcm_on_read, +}; + +struct file_operations proc_oppo_mp_lcm_off_fops = { + .read = ilitek_proc_oppo_mp_lcm_off_read, +}; + +struct file_operations proc_debug_message_fops = { + .write = ilitek_proc_debug_message_write, + .read = ilitek_proc_debug_message_read, +}; + +struct file_operations proc_debug_message_switch_fops = { + .read = ilitek_proc_debug_switch_read, +}; + +/** + * This struct lists all file nodes will be created under /proc filesystem. + * + * Before creating a node that you want, declaring its file_operations structure + * is necessary. After that, puts the structure into proc_table, defines its + * node's name in the same row, and the init function lterates the table and + * creates all nodes under /proc. + * + */ +typedef struct { + char *name; + struct proc_dir_entry *node; + struct file_operations *fops; + bool isCreated; +} proc_node_t; + +proc_node_t proc_table[] = { + {"ioctl", NULL, &proc_ioctl_fops, false}, + {"fw_process", NULL, &proc_fw_process_fops, false}, + {"fw_upgrade", NULL, &proc_fw_upgrade_fops, false}, + {"iram_upgrade", NULL, &proc_iram_upgrade_fops, false}, + {"gesture", NULL, &proc_gesture_fops, false}, + {"check_battery", NULL, &proc_check_battery_fops, false}, + {"debug_level", NULL, &proc_debug_level_fops, false}, + {"mp_test", NULL, &proc_mp_test_fops, false}, + {"oppo_mp_lcm_on", NULL, &proc_oppo_mp_lcm_on_fops, false}, + {"oppo_mp_lcm_off", NULL, &proc_oppo_mp_lcm_off_fops, false}, + {"debug_message", NULL, &proc_debug_message_fops, false}, + {"debug_message_switch", NULL, &proc_debug_message_switch_fops, false}, +}; + +#define NETLINK_USER 21 +struct sock *_gNetLinkSkb; +struct nlmsghdr *_gNetLinkHead; +struct sk_buff *_gSkbOut; +int _gPID; + +void netlink_reply_msg(void *raw, int size) +{ + int res; + int msg_size = size; + uint8_t *data = (uint8_t *) raw; + + ipio_debug(DEBUG_NETLINK, "The size of data being sent to user = %d\n", + msg_size); + ipio_debug(DEBUG_NETLINK, "pid = %d\n", _gPID); + ipio_debug(DEBUG_NETLINK, "Netlink is enable = %d\n", + core_fr->isEnableNetlink); + + if (core_fr->isEnableNetlink) { + _gSkbOut = nlmsg_new(msg_size, 0); + + if (!_gSkbOut) { + ipio_err("Failed to allocate new skb\n"); + return; + } + + _gNetLinkHead = + nlmsg_put(_gSkbOut, 0, 0, NLMSG_DONE, msg_size, 0); + NETLINK_CB(_gSkbOut).dst_group = 0; /* not in mcast group */ + + /* strncpy(NLMSG_DATA(_gNetLinkHead), data, msg_size); */ + memcpy(nlmsg_data(_gNetLinkHead), data, msg_size); + + res = nlmsg_unicast(_gNetLinkSkb, _gSkbOut, _gPID); + if (res < 0) + ipio_err("Failed to send data back to user\n"); + } +} + +EXPORT_SYMBOL(netlink_reply_msg); + +static void netlink_recv_msg(struct sk_buff *skb) +{ + _gPID = 0; + + ipio_debug(DEBUG_NETLINK, "Netlink is enable = %d\n", + core_fr->isEnableNetlink); + + _gNetLinkHead = (struct nlmsghdr *)skb->data; + + ipio_debug(DEBUG_NETLINK, "Received a request from client: %s, %d\n", + (char *)NLMSG_DATA(_gNetLinkHead), + (int)strlen((char *)NLMSG_DATA(_gNetLinkHead))); + + /* pid of sending process */ + _gPID = _gNetLinkHead->nlmsg_pid; + + ipio_debug(DEBUG_NETLINK, "the pid of sending process = %d\n", _gPID); + + /* TODO: may do something if there's not receiving msg from user. */ + if (_gPID != 0) { + ipio_err + ("The channel of Netlink has been established successfully !\n"); + core_fr->isEnableNetlink = true; + } else { + ipio_err + ("Failed to establish the channel between kernel and user space\n"); + core_fr->isEnableNetlink = false; + } +} + +static int netlink_init(void) +{ + int res = 0; + +#if KERNEL_VERSION(3, 4, 0) > LINUX_VERSION_CODE + _gNetLinkSkb = + netlink_kernel_create(&init_net, NETLINK_USER, netlink_recv_msg, + NULL, THIS_MODULE); +#else + struct netlink_kernel_cfg cfg = { + .input = netlink_recv_msg, + }; + + _gNetLinkSkb = netlink_kernel_create(&init_net, NETLINK_USER, &cfg); +#endif + + ipio_info("Initialise Netlink and create its socket\n"); + + if (!_gNetLinkSkb) { + ipio_err("Failed to create nelink socket\n"); + res = -EFAULT; + } + + return res; +} + +int ilitek_proc_init(void) +{ + int i = 0, res = 0; + + proc_dir_ilitek = proc_mkdir("ilitek", NULL); + + for (; i < ARRAY_SIZE(proc_table); i++) { + proc_table[i].node = + proc_create(proc_table[i].name, 0666, proc_dir_ilitek, + proc_table[i].fops); + + if (proc_table[i].node == NULL) { + proc_table[i].isCreated = false; + ipio_err("Failed to create %s under /proc\n", + proc_table[i].name); + res = -ENODEV; + } else { + proc_table[i].isCreated = true; + ipio_info("Succeed to create %s under /proc\n", + proc_table[i].name); + } + } + + netlink_init(); + + return res; +} + +EXPORT_SYMBOL(ilitek_proc_init); + + +void ilitek_proc_remove(void) +{ + int i = 0; + + for (; i < ARRAY_SIZE(proc_table); i++) { + if (proc_table[i].isCreated == true) { + ipio_info("Removed %s under /proc\n", + proc_table[i].name); + remove_proc_entry(proc_table[i].name, proc_dir_ilitek); + } + } + + remove_proc_entry("ilitek", NULL); + netlink_kernel_release(_gNetLinkSkb); +} + +EXPORT_SYMBOL(ilitek_proc_remove); + + +static ssize_t drv_power_on_show(struct device *pDevice, struct device_attribute *pAttr, char *pBuf) +{ + ipio_info("*** %s() ipd->suspended = %d ***\n", __func__, ipd->suspended); + + if (ipd->suspended == true) + return snprintf(pBuf, PAGE_SIZE, "0\n"); + else + return snprintf(pBuf, PAGE_SIZE, "1\n"); +} +static DEVICE_ATTR(poweron, 0444, drv_power_on_show, NULL); + +static ssize_t drv_product_info_show(struct device *pDevice, struct device_attribute *pAttr, char *pBuf) +{ + ipio_info ("*** %s() productinfo = %s ***\n", __func__, ipd->TP_IC_TYPE); + + return scnprintf(pBuf, PAGE_SIZE, "%s\n", ipd->TP_IC_TYPE); +} +static DEVICE_ATTR(productinfo, 0444, drv_product_info_show, NULL); + +static ssize_t drv_force_reflash_store(struct device *pDevice, struct device_attribute *pAttr, const char *pBuf, size_t nSize) +{ + int temp; + ipio_info ("*** %s() ***\n", __func__); + // ipio_info( "pBuf = %s\n", pBuf); + memset(g_user_buf, 0, USER_STR_BUFF * sizeof(unsigned char)); + memcpy(g_user_buf, pBuf, nSize - 1); + + ipio_info ("%s g_user_buf=%s\n", __func__, g_user_buf); + temp = katoi(g_user_buf); + ipio_info ("%s temp=%d\n", __func__, temp); + if (temp == 1) + core_firmware->force_upgrad = true; + else + core_firmware->force_upgrad = false; + + ipio_info("%s core_firmware->force_upgrad =%d\n", __func__, core_firmware->force_upgrad); + return nSize; +} +static DEVICE_ATTR(forcereflash, 0220, NULL, drv_force_reflash_store); + + +static ssize_t drv_flash_prog_show(struct device *pDevice, struct device_attribute *pAttr, char *pBuf) +{ + ipio_info ("*** %s() core_firmware->isUpgrading = %d ***\n", __func__, core_firmware->isUpgrading); + + return scnprintf(pBuf, PAGE_SIZE, "%d\n", core_firmware->isUpgrading); +} +static DEVICE_ATTR(flashprog, 0444, drv_flash_prog_show, NULL); + +static ssize_t do_reflash_store(struct device *pDevice, struct device_attribute *pAttr, const char *pBuf, size_t nSize) +{ + int ret; + char prefix[128] = "ILITEK"; + const char *chip_name = ipd->TP_IC_TYPE; + + //int temp; + ipio_info ("*** %s() ***\n", __func__); + // ipio_info( "pBuf = %s\n", pBuf); + memset(g_user_buf, 0, USER_STR_BUFF * sizeof(unsigned char)); + memcpy(g_user_buf, pBuf, nSize - 1); + ipio_info ("%s g_user_buf=%s\n", __func__, g_user_buf); + + if (ipd->suspended == true) { + ipio_err("%s: In suspend state, try again later\n", __func__); + ret = -EINVAL; + goto exit; + } + + if (core_firmware->isUpgrading == true) { + ipio_err("%s: In FW flashing state, try again later\n", __func__); + ret = -EINVAL; + goto exit; + } + + if (core_firmware->force_upgrad != 1) { + if (strnstr(g_user_buf, prefix, strnlen(g_user_buf, USER_STR_BUFF * sizeof(unsigned char))) <= 0) { + ipio_err("%s: FW does not belong to %s\n", __func__, prefix); + ret = -EINVAL; + goto exit; + } + if (strnstr(g_user_buf, chip_name, strnlen(g_user_buf, USER_STR_BUFF * sizeof(unsigned char))) <= 0) { + ipio_err("%s: FW does not belong to chip %s\n", __func__, chip_name); + ret = -EINVAL; + goto exit; + } + ipio_info("%s: FW belong to %s\n", __func__, prefix); + ipio_err("%s: FW belong to chip %s\n", __func__, chip_name); + } + + ilitek_platform_disable_irq(); + + if (ipd->isEnablePollCheckPower) + cancel_delayed_work_sync(&ipd->check_power_status_work); + + ret = core_firmware_upgrade(g_user_buf, false); + + ilitek_platform_enable_irq(); + + if (ipd->isEnablePollCheckPower) + queue_delayed_work(ipd->check_power_status_queue, + &ipd->check_power_status_work, + ipd->work_delay); + if (ret < 0) { + core_firmware->update_status = ret; + ipio_err("Failed to upgrade firwmare\n"); + } else { + core_firmware->update_status = 100; + ipio_info("Succeed to upgrade firmware\n"); + } + + + core_firmware->isUpgrading = false; +exit: + return nSize; +} + +static DEVICE_ATTR(doreflash, 0220, NULL, do_reflash_store); + +static ssize_t drv_build_id_show(struct device *pDevice, struct device_attribute *pAttr, char *pBuf) +{ + ipio_info ("*** %s() Fw Version = V%d.%d.%d.%d***\n", __func__, core_config->firmware_ver[1], core_config->firmware_ver[2], core_config->firmware_ver[3], core_config->firmware_ver[4]); + + return scnprintf(pBuf, PAGE_SIZE, "%02x-%02x\n", core_config->firmware_ver[2], core_config->firmware_ver[3]); +} +static DEVICE_ATTR(buildid, 0444, drv_build_id_show, NULL); + +static const struct attribute *dev_attrs_list[] = { + &dev_attr_poweron.attr, + &dev_attr_productinfo.attr, + &dev_attr_forcereflash.attr, + &dev_attr_flashprog.attr, + &dev_attr_doreflash.attr, + &dev_attr_buildid.attr, + NULL +}; + +static ssize_t path_show(struct device *pDevice, struct device_attribute *pAttr, char *pBuf) +{ + ssize_t blen; + const char *path; + + path = kobject_get_path(&ipd->client->dev.kobj, GFP_KERNEL); + blen = scnprintf(pBuf, PAGE_SIZE, "%s\n", path ? path : "na"); + kfree(path); + + return blen; +} + +/* Attribute: vendor (RO) */ +static ssize_t vendor_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + ipio_info("*** %s() vendor = %s ***\n", __func__, "ilitek"); + return scnprintf(buf, PAGE_SIZE, "ilitek"); +} + + +static struct device_attribute touchscreen_attributes[] = { + __ATTR_RO(path), + __ATTR_RO(vendor), + __ATTR_NULL +}; + +int ilitek_sys_init(void) +{ + int i; + s32 ret = 0; + dev_t devno; + struct device_attribute *attrs = touchscreen_attributes; + + ret = alloc_chrdev_region(&devno, 0, 1, ipd->TP_IC_TYPE); + if (ret) { + ipio_err ("can't allocate chrdev\n"); + return ret; + } else { + + /* set sysfs for firmware */ + touchscreen_class = class_create(THIS_MODULE, "touchscreen"); + if (IS_ERR(touchscreen_class)) { + ret = PTR_ERR(touchscreen_class); + touchscreen_class = NULL; + ipio_err("Failed to create touchscreen class!\n"); + return ret; + } + + touchscreen_class_dev = device_create(touchscreen_class, NULL, devno, NULL, ipd->TP_IC_TYPE); + pr_info(" touchscreen_class_dev = %p \n", touchscreen_class_dev); + if (IS_ERR(touchscreen_class_dev)) { + ret = PTR_ERR(touchscreen_class_dev); + touchscreen_class_dev = NULL; + ipio_err("Failed to create device(touchscreen_class_dev)!\n"); + return ret; + } + ipio_info("Succeed to create device(touchscreen_class_dev)!\n"); + + for (i = 0; attrs[i].attr.name != NULL; ++i) { + ret = device_create_file(touchscreen_class_dev, &attrs[i]); + if (ret < 0) + goto device_destroy; + } + + ret = sysfs_create_files(&ipd->client->dev.kobj, dev_attrs_list); + if (ret < 0) { + ipio_info("Fail to create dev_attrs_list files)!\n"); + goto device_destroy; + } + + ipio_info("Succeed to sysfs create files)!\n"); + } + + return ret; + +device_destroy: + for (--i; i >= 0; --i) + device_remove_file(touchscreen_class_dev, &attrs[i]); + + touchscreen_class_dev = NULL; + class_unregister(touchscreen_class); + ipio_err("error creating touchscreen class\n"); + + return -ENODEV; +} + +EXPORT_SYMBOL(ilitek_sys_init); + +void ilitek_sys_remove(void) +{ + int i; + struct device_attribute *attrs = touchscreen_attributes; + + sysfs_remove_files(&ipd->client->dev.kobj, dev_attrs_list); + + for (i = 0; attrs[i].attr.name != NULL; ++i) + device_remove_file(touchscreen_class_dev, &attrs[i]); + + + device_unregister(touchscreen_class_dev); + + class_unregister(touchscreen_class); +} + +EXPORT_SYMBOL(ilitek_sys_remove);