diff --git a/core/.changelog.d/2230.added b/core/.changelog.d/2230.added new file mode 100644 index 000000000..7e9b19fa8 --- /dev/null +++ b/core/.changelog.d/2230.added @@ -0,0 +1 @@ +Add model R emulator diff --git a/core/SConscript.boardloader b/core/SConscript.boardloader index a6ea8b691..0f00671e3 100644 --- a/core/SConscript.boardloader +++ b/core/SConscript.boardloader @@ -97,11 +97,11 @@ env.Replace( env.Replace( TREZOR_MODEL=TREZOR_MODEL, ) -if TREZOR_MODEL == 'T': +if TREZOR_MODEL in ('T', 'R'): CPU_ASFLAGS = '-mthumb -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16' CPU_CCFLAGS = '-mthumb -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mtune=cortex-m4 ' CPU_MODEL = 'STM32F427xx' -elif TREZOR_MODEL == '1': +elif TREZOR_MODEL in ('1',): CPU_ASFLAGS = '-mthumb -mcpu=cortex-m3 -mfloat-abi=soft' CPU_CCFLAGS = '-mthumb -mtune=cortex-m3 -mcpu=cortex-m3 -mfloat-abi=soft ' CPU_MODEL = 'STM32F405xx' diff --git a/core/SConscript.bootloader b/core/SConscript.bootloader index ce981550c..d7828d0c5 100644 --- a/core/SConscript.bootloader +++ b/core/SConscript.bootloader @@ -123,11 +123,11 @@ env.Replace( env.Replace( TREZOR_MODEL=TREZOR_MODEL, ) -if TREZOR_MODEL == 'T': +if TREZOR_MODEL in ('T', 'R'): CPU_ASFLAGS = '-mthumb -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16' CPU_CCFLAGS = '-mthumb -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mtune=cortex-m4 ' CPU_MODEL = 'STM32F427xx' -elif TREZOR_MODEL == '1': +elif TREZOR_MODEL in ('1',): CPU_ASFLAGS = '-mthumb -mcpu=cortex-m3 -mfloat-abi=soft' CPU_CCFLAGS = '-mthumb -mtune=cortex-m3 -mcpu=cortex-m3 -mfloat-abi=soft ' CPU_MODEL = 'STM32F405xx' diff --git a/core/SConscript.bootloader_ci b/core/SConscript.bootloader_ci index 27096570b..f2eb9f2cb 100644 --- a/core/SConscript.bootloader_ci +++ b/core/SConscript.bootloader_ci @@ -123,11 +123,11 @@ env.Replace( env.Replace( TREZOR_MODEL=TREZOR_MODEL, ) -if TREZOR_MODEL == 'T': +if TREZOR_MODEL in ('T', 'R'): CPU_ASFLAGS = '-mthumb -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16' CPU_CCFLAGS = '-mthumb -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mtune=cortex-m4 ' CPU_MODEL = 'STM32F427xx' -elif TREZOR_MODEL == '1': +elif TREZOR_MODEL in ('1',): CPU_ASFLAGS = '-mthumb -mcpu=cortex-m3 -mfloat-abi=soft' CPU_CCFLAGS = '-mthumb -mtune=cortex-m3 -mcpu=cortex-m3 -mfloat-abi=soft ' CPU_MODEL = 'STM32F405xx' diff --git a/core/SConscript.firmware b/core/SConscript.firmware index 33225a840..9b665e734 100644 --- a/core/SConscript.firmware +++ b/core/SConscript.firmware @@ -6,7 +6,7 @@ import os BITCOIN_ONLY = ARGUMENTS.get('BITCOIN_ONLY', '0') EVERYTHING = BITCOIN_ONLY != '1' TREZOR_MODEL = ARGUMENTS.get('TREZOR_MODEL', 'T') -UI2 = ARGUMENTS.get('UI2', '0') == '1' or TREZOR_MODEL == '1' +UI2 = ARGUMENTS.get('UI2', '0') == '1' or TREZOR_MODEL in ('1', 'R') FEATURE_FLAGS = { "RDI": True, @@ -151,7 +151,7 @@ if FEATURE_FLAGS["SECP256K1_ZKP"]: SOURCE_MOD += [ 'embed/extmod/modtrezorio/modtrezorio.c', ] -if TREZOR_MODEL == "T": +if TREZOR_MODEL in ("T",): SOURCE_MOD += [ 'embed/extmod/modtrezorio/ff.c', 'embed/extmod/modtrezorio/ffunicode.c', @@ -380,13 +380,13 @@ SOURCE_TREZORHAL = [ 'embed/trezorhal/util.s', 'embed/trezorhal/vectortable.s', ] -if TREZOR_MODEL == 'T': +if TREZOR_MODEL in ('T',): SOURCE_TREZORHAL += [ 'embed/trezorhal/sbu.c', 'embed/trezorhal/sdcard.c', 'embed/trezorhal/touch.c', ] -elif TREZOR_MODEL == '1': +elif TREZOR_MODEL in ('1', 'R'): SOURCE_TREZORHAL += [ 'embed/trezorhal/button.c', ] @@ -433,13 +433,13 @@ env.Replace( env.Replace( TREZOR_MODEL=TREZOR_MODEL, ) -if TREZOR_MODEL == 'T': +if TREZOR_MODEL in ('T', 'R'): CPU_ASFLAGS = '-mthumb -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16' CPU_CCFLAGS = '-mthumb -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mtune=cortex-m4 ' CPU_MODEL = 'STM32F427xx' LD_VARIANT = '' RUST_TARGET = 'thumbv7em-none-eabihf' -elif TREZOR_MODEL == '1': +elif TREZOR_MODEL in ('1',): CPU_ASFLAGS = '-mthumb -mcpu=cortex-m3 -mfloat-abi=soft' CPU_CCFLAGS = '-mthumb -mtune=cortex-m3 -mcpu=cortex-m3 -mfloat-abi=soft ' CPU_MODEL = 'STM32F405xx' @@ -562,7 +562,7 @@ if FROZEN: if EVERYTHING: SOURCE_PY.extend(Glob(SOURCE_PY_DIR + 'trezor/ui/layouts/altcoin.py')) SOURCE_PY.extend(Glob(SOURCE_PY_DIR + 'trezor/ui/layouts/webauthn.py')) - if TREZOR_MODEL == 'T' and UI2: + if TREZOR_MODEL in ('T') and UI2: SOURCE_PY.extend(Glob(SOURCE_PY_DIR + 'trezor/ui/constants/tt.py')) SOURCE_PY.extend(Glob(SOURCE_PY_DIR + 'trezor/ui/layouts/tt_v2/__init__.py')) SOURCE_PY.extend(Glob(SOURCE_PY_DIR + 'trezor/ui/layouts/tt_v2/reset.py')) @@ -570,7 +570,7 @@ if FROZEN: if EVERYTHING: SOURCE_PY.extend(Glob(SOURCE_PY_DIR + 'trezor/ui/layouts/tt_v2/altcoin.py')) SOURCE_PY.extend(Glob(SOURCE_PY_DIR + 'trezor/ui/layouts/tt_v2/webauthn.py')) - elif TREZOR_MODEL == 'T': + elif TREZOR_MODEL in ('T',): SOURCE_PY.extend(Glob(SOURCE_PY_DIR + 'trezor/ui/components/tt/*.py')) SOURCE_PY.extend(Glob(SOURCE_PY_DIR + 'trezor/ui/constants/tt.py')) SOURCE_PY.extend(Glob(SOURCE_PY_DIR + 'trezor/ui/layouts/tt/__init__.py')) @@ -579,10 +579,12 @@ if FROZEN: if EVERYTHING: SOURCE_PY.extend(Glob(SOURCE_PY_DIR + 'trezor/ui/layouts/tt/altcoin.py')) SOURCE_PY.extend(Glob(SOURCE_PY_DIR + 'trezor/ui/layouts/tt/webauthn.py')) - elif TREZOR_MODEL == '1': - SOURCE_PY.extend(Glob(SOURCE_PY_DIR + 'trezor/ui/components/t1/*.py')) + elif TREZOR_MODEL in ('1',): SOURCE_PY.extend(Glob(SOURCE_PY_DIR + 'trezor/ui/constants/t1.py')) SOURCE_PY.extend(Glob(SOURCE_PY_DIR + 'trezor/ui/layouts/t1.py')) + elif TREZOR_MODEL in ('R',): + SOURCE_PY.extend(Glob(SOURCE_PY_DIR + 'trezor/ui/constants/tr.py')) + SOURCE_PY.extend(Glob(SOURCE_PY_DIR + 'trezor/ui/layouts/tr/__init__.py')) else: raise ValueError('Unknown Trezor model') @@ -614,7 +616,7 @@ if FROZEN: SOURCE_PY.extend(Glob(SOURCE_PY_DIR + 'apps/management/*.py', exclude=[ SOURCE_PY_DIR + 'apps/management/sd_protect.py', - ] if TREZOR_MODEL != 'T' else []) + ] if TREZOR_MODEL not in ('T',) else []) ) SOURCE_PY.extend(Glob(SOURCE_PY_DIR + 'apps/management/*/*.py')) SOURCE_PY.extend(Glob(SOURCE_PY_DIR + 'apps/misc/*.py')) @@ -727,8 +729,10 @@ def cargo_build(): profile = '--release' else: profile = '' - if TREZOR_MODEL == "1": + if TREZOR_MODEL in ("1",): features = ["model_t1"] + elif TREZOR_MODEL in ("R",): + features = ["model_tr"] else: features = ["model_tt"] if BITCOIN_ONLY == "1": @@ -796,7 +800,7 @@ program_elf = env.Command( env.Depends(program_elf, rust) -if TREZOR_MODEL == 'T': +if TREZOR_MODEL in ('T', 'R'): action_bin=[ '$OBJCOPY -O binary -j .vendorheader -j .header -j .flash -j .data --pad-to 0x08100000 $SOURCE ${TARGET}.p1', '$OBJCOPY -O binary -j .flash2 $SOURCE ${TARGET}.p2', @@ -804,7 +808,7 @@ if TREZOR_MODEL == 'T': '$HEADERTOOL -h $TARGET ' + ('-D' if ARGUMENTS.get('PRODUCTION', '0') == '0' else ''), '$DD if=$TARGET of=${TARGET}.p1 skip=0 bs=128k count=6', ] -elif TREZOR_MODEL == '1': +elif TREZOR_MODEL in ('1',): action_bin=[ '$OBJCOPY -O binary -j .header -j .flash -j .data $SOURCE $TARGET', '../legacy/bootloader/firmware_sign.py -f $TARGET', diff --git a/core/SConscript.prodtest b/core/SConscript.prodtest index 3b7560285..7039311f0 100644 --- a/core/SConscript.prodtest +++ b/core/SConscript.prodtest @@ -101,11 +101,11 @@ env.Replace( env.Replace( TREZOR_MODEL=TREZOR_MODEL, ) -if TREZOR_MODEL == 'T': +if TREZOR_MODEL in ('T', 'R'): CPU_ASFLAGS = '-mthumb -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16' CPU_CCFLAGS = '-mthumb -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mtune=cortex-m4 ' CPU_MODEL = 'STM32F427xx' -elif TREZOR_MODEL == '1': +elif TREZOR_MODEL in ('1',): CPU_ASFLAGS = '-mthumb -mcpu=cortex-m3 -mfloat-abi=soft' CPU_CCFLAGS = '-mthumb -mtune=cortex-m3 -mcpu=cortex-m3 -mfloat-abi=soft ' CPU_MODEL = 'STM32F405xx' diff --git a/core/SConscript.reflash b/core/SConscript.reflash index 404c34c94..98d44f7d9 100644 --- a/core/SConscript.reflash +++ b/core/SConscript.reflash @@ -95,11 +95,11 @@ env.Replace( env.Replace( TREZOR_MODEL=TREZOR_MODEL, ) -if TREZOR_MODEL == 'T': +if TREZOR_MODEL in ('T', 'R'): CPU_ASFLAGS = '-mthumb -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16' CPU_CCFLAGS = '-mthumb -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mtune=cortex-m4 ' CPU_MODEL = 'STM32F427xx' -elif TREZOR_MODEL == '1': +elif TREZOR_MODEL in ('1',): CPU_ASFLAGS = '-mthumb -mcpu=cortex-m3 -mfloat-abi=soft' CPU_CCFLAGS = '-mthumb -mtune=cortex-m3 -mcpu=cortex-m3 -mfloat-abi=soft ' CPU_MODEL = 'STM32F405xx' diff --git a/core/SConscript.unix b/core/SConscript.unix index dab42df27..eaebdf190 100644 --- a/core/SConscript.unix +++ b/core/SConscript.unix @@ -6,7 +6,7 @@ import os BITCOIN_ONLY = ARGUMENTS.get('BITCOIN_ONLY', '0') EVERYTHING = BITCOIN_ONLY != '1' TREZOR_MODEL = ARGUMENTS.get('TREZOR_MODEL', 'T') -UI2 = ARGUMENTS.get('UI2', '0') == '1' or TREZOR_MODEL == '1' +UI2 = ARGUMENTS.get('UI2', '0') == '1' or TREZOR_MODEL in ('1', 'R') FEATURE_FLAGS = { "SECP256K1_ZKP": True, # required for trezor.crypto.curve.bip340 (BIP340/Taproot) @@ -147,7 +147,7 @@ if FEATURE_FLAGS["SECP256K1_ZKP"]: SOURCE_MOD += [ 'embed/extmod/modtrezorio/modtrezorio.c', ] -if TREZOR_MODEL == "T": +if TREZOR_MODEL in ("T",): SOURCE_MOD += [ 'embed/extmod/modtrezorio/ff.c', 'embed/extmod/modtrezorio/ffunicode.c', @@ -353,7 +353,7 @@ SOURCE_UNIX = [ 'vendor/micropython/ports/unix/input.c', 'vendor/micropython/ports/unix/unix_mphal.c', ] -if TREZOR_MODEL == 'T': +if TREZOR_MODEL in ('T',): SOURCE_UNIX += [ 'embed/unix/sbu.c', 'embed/unix/sdcard.c', @@ -525,7 +525,7 @@ if FROZEN: if EVERYTHING: SOURCE_PY.extend(Glob(SOURCE_PY_DIR + 'trezor/ui/layouts/altcoin.py')) SOURCE_PY.extend(Glob(SOURCE_PY_DIR + 'trezor/ui/layouts/webauthn.py')) - if TREZOR_MODEL == 'T' and UI2: + if TREZOR_MODEL in ('T',) and UI2: SOURCE_PY.extend(Glob(SOURCE_PY_DIR + 'trezor/ui/constants/tt.py')) SOURCE_PY.extend(Glob(SOURCE_PY_DIR + 'trezor/ui/layouts/tt_v2/__init__.py')) SOURCE_PY.extend(Glob(SOURCE_PY_DIR + 'trezor/ui/layouts/tt_v2/reset.py')) @@ -533,7 +533,7 @@ if FROZEN: if EVERYTHING: SOURCE_PY.extend(Glob(SOURCE_PY_DIR + 'trezor/ui/layouts/tt_v2/altcoin.py')) SOURCE_PY.extend(Glob(SOURCE_PY_DIR + 'trezor/ui/layouts/tt_v2/webauthn.py')) - elif TREZOR_MODEL == 'T': + elif TREZOR_MODEL in ('T',): SOURCE_PY.extend(Glob(SOURCE_PY_DIR + 'trezor/ui/components/tt/*.py')) SOURCE_PY.extend(Glob(SOURCE_PY_DIR + 'trezor/ui/constants/tt.py')) SOURCE_PY.extend(Glob(SOURCE_PY_DIR + 'trezor/ui/layouts/tt/__init__.py')) @@ -542,10 +542,12 @@ if FROZEN: if EVERYTHING: SOURCE_PY.extend(Glob(SOURCE_PY_DIR + 'trezor/ui/layouts/tt/altcoin.py')) SOURCE_PY.extend(Glob(SOURCE_PY_DIR + 'trezor/ui/layouts/tt/webauthn.py')) - elif TREZOR_MODEL == '1': - SOURCE_PY.extend(Glob(SOURCE_PY_DIR + 'trezor/ui/components/t1/*.py')) + elif TREZOR_MODEL in ('1',): SOURCE_PY.extend(Glob(SOURCE_PY_DIR + 'trezor/ui/constants/t1.py')) SOURCE_PY.extend(Glob(SOURCE_PY_DIR + 'trezor/ui/layouts/t1.py')) + elif TREZOR_MODEL in ('R',): + SOURCE_PY.extend(Glob(SOURCE_PY_DIR + 'trezor/ui/constants/tr.py')) + SOURCE_PY.extend(Glob(SOURCE_PY_DIR + 'trezor/ui/layouts/tr/__init__.py')) else: raise ValueError('Unknown Trezor model') @@ -577,7 +579,7 @@ if FROZEN: SOURCE_PY.extend(Glob(SOURCE_PY_DIR + 'apps/management/*.py', exclude=[ SOURCE_PY_DIR + 'apps/management/sd_protect.py', - ] if TREZOR_MODEL != 'T' else []) + ] if TREZOR_MODEL not in ('T',) else []) ) SOURCE_PY.extend(Glob(SOURCE_PY_DIR + 'apps/management/*/*.py')) SOURCE_PY.extend(Glob(SOURCE_PY_DIR + 'apps/misc/*.py')) @@ -689,8 +691,10 @@ RUST_LIB = 'trezor_lib' RUST_LIBPATH = f'{RUST_LIBDIR}/lib{RUST_LIB}.a' def cargo_build(): - if TREZOR_MODEL == "1": + if TREZOR_MODEL in ('1',): features = ["model_t1"] + elif TREZOR_MODEL in ('R',): + features = ["model_tr"] else: features = ["model_tt"] if BITCOIN_ONLY == "1": diff --git a/core/embed/extmod/modtrezorconfig/norcow_config.h b/core/embed/extmod/modtrezorconfig/norcow_config.h index 3e802dec7..588b4fc41 100644 --- a/core/embed/extmod/modtrezorconfig/norcow_config.h +++ b/core/embed/extmod/modtrezorconfig/norcow_config.h @@ -25,7 +25,7 @@ #define NORCOW_HEADER_LEN 0 #define NORCOW_SECTOR_COUNT 2 -#if defined TREZOR_MODEL_T +#if defined TREZOR_MODEL_T || defined TREZOR_MODEL_R #define NORCOW_SECTOR_SIZE (64 * 1024) #elif defined TREZOR_MODEL_1 #define NORCOW_SECTOR_SIZE (16 * 1024) diff --git a/core/embed/extmod/modtrezorio/modtrezorio-poll.h b/core/embed/extmod/modtrezorio/modtrezorio-poll.h index 403492201..ac9f9138f 100644 --- a/core/embed/extmod/modtrezorio/modtrezorio-poll.h +++ b/core/embed/extmod/modtrezorio/modtrezorio-poll.h @@ -110,7 +110,7 @@ STATIC mp_obj_t mod_trezorio_poll(mp_obj_t ifaces, mp_obj_t list_ref, return mp_const_true; } } -#elif defined TREZOR_MODEL_1 +#elif defined TREZOR_MODEL_1 || defined TREZOR_MODEL_R else if (iface == BUTTON_IFACE) { const uint32_t evt = button_read(); if (evt & (BTN_EVT_DOWN | BTN_EVT_UP)) { diff --git a/core/embed/extmod/modtrezorio/modtrezorio.c b/core/embed/extmod/modtrezorio/modtrezorio.c index a9933f085..d28dc5d05 100644 --- a/core/embed/extmod/modtrezorio/modtrezorio.c +++ b/core/embed/extmod/modtrezorio/modtrezorio.c @@ -81,7 +81,7 @@ STATIC const mp_rom_map_elem_t mp_module_trezorio_globals_table[] = { {MP_ROM_QSTR(MP_QSTR_TOUCH_START), MP_ROM_INT((TOUCH_START >> 24) & 0xFFU)}, {MP_ROM_QSTR(MP_QSTR_TOUCH_MOVE), MP_ROM_INT((TOUCH_MOVE >> 24) & 0xFFU)}, {MP_ROM_QSTR(MP_QSTR_TOUCH_END), MP_ROM_INT((TOUCH_END >> 24) & 0xFFU)}, -#elif defined TREZOR_MODEL_1 +#elif defined TREZOR_MODEL_1 || defined TREZOR_MODEL_R {MP_ROM_QSTR(MP_QSTR_BUTTON), MP_ROM_INT(BUTTON_IFACE)}, {MP_ROM_QSTR(MP_QSTR_BUTTON_PRESSED), MP_ROM_INT((BTN_EVT_DOWN >> 24) & 0x3U)}, diff --git a/core/embed/extmod/modtrezorui/display-unix.h b/core/embed/extmod/modtrezorui/display-unix.h index dce5682be..81f5cc576 100644 --- a/core/embed/extmod/modtrezorui/display-unix.h +++ b/core/embed/extmod/modtrezorui/display-unix.h @@ -39,7 +39,7 @@ #define TOUCH_OFFSET_Y 110 #endif -#elif defined TREZOR_MODEL_1 +#elif defined TREZOR_MODEL_1 || defined TREZOR_MODEL_R #define WINDOW_WIDTH 200 #define WINDOW_HEIGHT 340 @@ -76,7 +76,7 @@ static struct { #define PIXELDATA_DIRTY() void PIXELDATA(uint16_t c) { -#if defined TREZOR_MODEL_1 +#if defined TREZOR_MODEL_1 || defined TREZOR_MODEL_R // set to white if highest bits of all R, G, B values are set to 1 // bin(10000 100000 10000) = hex(0x8410) // otherwise set to black @@ -181,6 +181,10 @@ void display_init(void) { #include "background_1.h" BACKGROUND = IMG_LoadTexture_RW( RENDERER, SDL_RWFromMem(background_1_jpg, background_1_jpg_len), 0); +#elif defined TREZOR_MODEL_R +#include "background_R.h" + BACKGROUND = IMG_LoadTexture_RW( + RENDERER, SDL_RWFromMem(background_R_jpg, background_R_jpg_len), 0); #endif #endif if (BACKGROUND) { diff --git a/core/embed/extmod/modtrezorui/display.c b/core/embed/extmod/modtrezorui/display.c index 42dcf05d8..c505d87c5 100644 --- a/core/embed/extmod/modtrezorui/display.c +++ b/core/embed/extmod/modtrezorui/display.c @@ -75,7 +75,7 @@ #endif -#elif defined TREZOR_MODEL_1 +#elif defined TREZOR_MODEL_1 || defined TREZOR_MODEL_R #ifdef TREZOR_FONT_NORMAL_ENABLE #include "font_pixeloperator_regular_8.h" @@ -117,7 +117,7 @@ static struct { int x, y; } DISPLAY_OFFSET; #else #if defined TREZOR_MODEL_T #include "display-stm32_T.h" -#elif defined TREZOR_MODEL_1 +#elif defined TREZOR_MODEL_1 || defined TREZOR_MODEL_R #include "display-stm32_1.h" #else #error Unknown Trezor model @@ -917,7 +917,7 @@ int display_orientation(int degrees) { if (degrees != DISPLAY_ORIENTATION) { #if defined TREZOR_MODEL_T if (degrees == 0 || degrees == 90 || degrees == 180 || degrees == 270) { -#elif defined TREZOR_MODEL_1 +#elif defined TREZOR_MODEL_1 || defined TREZOR_MODEL_R if (degrees == 0 || degrees == 180) { #else #error Unknown Trezor model @@ -930,7 +930,7 @@ int display_orientation(int degrees) { } int display_backlight(int val) { -#if defined TREZOR_MODEL_1 +#if defined TREZOR_MODEL_1 || defined TREZOR_MODEL_R val = 255; #endif if (DISPLAY_BACKLIGHT != val && val >= 0 && val <= 255) { diff --git a/core/embed/extmod/modtrezorui/display.h b/core/embed/extmod/modtrezorui/display.h index cdbca62ea..aefff2141 100644 --- a/core/embed/extmod/modtrezorui/display.h +++ b/core/embed/extmod/modtrezorui/display.h @@ -40,6 +40,14 @@ #define DISPLAY_RESY 64 #define TREZOR_FONT_BPP 1 +#elif defined TREZOR_MODEL_R + +#define MAX_DISPLAY_RESX 128 +#define MAX_DISPLAY_RESY 128 +#define DISPLAY_RESX 128 +#define DISPLAY_RESY 128 +#define TREZOR_FONT_BPP 1 + #else #error Unknown Trezor model #endif diff --git a/core/embed/extmod/modtrezorutils/modtrezorutils.c b/core/embed/extmod/modtrezorutils/modtrezorutils.c index 41d203906..41449742c 100644 --- a/core/embed/extmod/modtrezorutils/modtrezorutils.c +++ b/core/embed/extmod/modtrezorutils/modtrezorutils.c @@ -283,6 +283,8 @@ STATIC const mp_rom_map_elem_t mp_module_trezorutils_globals_table[] = { {MP_ROM_QSTR(MP_QSTR_MODEL), MP_ROM_QSTR(MP_QSTR_1)}, #elif defined TREZOR_MODEL_T {MP_ROM_QSTR(MP_QSTR_MODEL), MP_ROM_QSTR(MP_QSTR_T)}, +#elif defined TREZOR_MODEL_R + {MP_ROM_QSTR(MP_QSTR_MODEL), MP_ROM_QSTR(MP_QSTR_R)}, #else #error Unknown Trezor model #endif diff --git a/core/embed/trezorhal/flash.c b/core/embed/trezorhal/flash.c index 8f3192944..886e185d8 100644 --- a/core/embed/trezorhal/flash.c +++ b/core/embed/trezorhal/flash.c @@ -39,7 +39,7 @@ static const uint32_t FLASH_SECTOR_TABLE[FLASH_SECTOR_COUNT + 1] = { [9] = 0x080A0000, // - 0x080BFFFF | 128 KiB [10] = 0x080C0000, // - 0x080DFFFF | 128 KiB [11] = 0x080E0000, // - 0x080FFFFF | 128 KiB -#if defined TREZOR_MODEL_T +#if defined TREZOR_MODEL_T || defined TREZOR_MODEL_R [12] = 0x08100000, // - 0x08103FFF | 16 KiB [13] = 0x08104000, // - 0x08107FFF | 16 KiB [14] = 0x08108000, // - 0x0810BFFF | 16 KiB diff --git a/core/embed/trezorhal/flash.h b/core/embed/trezorhal/flash.h index 77078e749..100b4de9b 100644 --- a/core/embed/trezorhal/flash.h +++ b/core/embed/trezorhal/flash.h @@ -26,7 +26,7 @@ // see docs/memory.md for more information -#if defined TREZOR_MODEL_T +#if defined TREZOR_MODEL_T || defined TREZOR_MODEL_R #define FLASH_SECTOR_COUNT 24 #elif defined TREZOR_MODEL_1 #define FLASH_SECTOR_COUNT 12 @@ -40,7 +40,7 @@ // 3 -#if defined TREZOR_MODEL_T +#if defined TREZOR_MODEL_T || defined TREZOR_MODEL_R #define FLASH_SECTOR_STORAGE_1 4 #define FLASH_SECTOR_STORAGE_2 16 #elif defined TREZOR_MODEL_1 diff --git a/core/embed/unix/background_R.h b/core/embed/unix/background_R.h new file mode 100644 index 000000000..6fcd52e18 --- /dev/null +++ b/core/embed/unix/background_R.h @@ -0,0 +1,1593 @@ +// clang-format off +unsigned char background_R_jpg[] = { + 0xff, 0xd8, 0xff, 0xe0, 0x00, 0x10, 0x4a, 0x46, 0x49, 0x46, 0x00, 0x01, + 0x01, 0x02, 0x00, 0x1c, 0x00, 0x1c, 0x00, 0x00, 0xff, 0xe1, 0x12, 0x90, + 0x45, 0x78, 0x69, 0x66, 0x00, 0x00, 0x49, 0x49, 0x2a, 0x00, 0x08, 0x00, + 0x00, 0x00, 0x07, 0x00, 0x12, 0x01, 0x03, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x1a, 0x01, 0x05, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x62, 0x00, 0x00, 0x00, 0x1b, 0x01, 0x05, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x6a, 0x00, 0x00, 0x00, 0x28, 0x01, 0x03, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x31, 0x01, 0x02, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x72, 0x00, 0x00, 0x00, 0x32, 0x01, 0x02, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x00, 0x00, 0x69, 0x87, 0x04, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x94, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x47, 0x49, 0x4d, 0x50, 0x20, 0x32, 0x2e, 0x31, 0x30, 0x2e, 0x33, 0x30, + 0x00, 0x00, 0x32, 0x30, 0x32, 0x32, 0x3a, 0x30, 0x34, 0x3a, 0x32, 0x33, + 0x20, 0x32, 0x31, 0x3a, 0x31, 0x38, 0x3a, 0x30, 0x39, 0x00, 0x01, 0x00, + 0x01, 0xa0, 0x03, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0xfe, 0x00, 0x04, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, 0x01, 0x01, 0x04, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x02, 0x01, 0x03, 0x00, 0x03, 0x00, + 0x00, 0x00, 0x18, 0x01, 0x00, 0x00, 0x03, 0x01, 0x03, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x15, 0x01, 0x03, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x01, 0x00, 0x00, 0x02, 0x02, 0x04, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x6a, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, + 0x08, 0x00, 0x08, 0x00, 0xff, 0xd8, 0xff, 0xe0, 0x00, 0x10, 0x4a, 0x46, + 0x49, 0x46, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, + 0xff, 0xdb, 0x00, 0x43, 0x00, 0x08, 0x06, 0x06, 0x07, 0x06, 0x05, 0x08, + 0x07, 0x07, 0x07, 0x09, 0x09, 0x08, 0x0a, 0x0c, 0x14, 0x0d, 0x0c, 0x0b, + 0x0b, 0x0c, 0x19, 0x12, 0x13, 0x0f, 0x14, 0x1d, 0x1a, 0x1f, 0x1e, 0x1d, + 0x1a, 0x1c, 0x1c, 0x20, 0x24, 0x2e, 0x27, 0x20, 0x22, 0x2c, 0x23, 0x1c, + 0x1c, 0x28, 0x37, 0x29, 0x2c, 0x30, 0x31, 0x34, 0x34, 0x34, 0x1f, 0x27, + 0x39, 0x3d, 0x38, 0x32, 0x3c, 0x2e, 0x33, 0x34, 0x32, 0xff, 0xdb, 0x00, + 0x43, 0x01, 0x09, 0x09, 0x09, 0x0c, 0x0b, 0x0c, 0x18, 0x0d, 0x0d, 0x18, + 0x32, 0x21, 0x1c, 0x21, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, + 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, + 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, + 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, + 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0xff, 0xc0, 0x00, 0x11, 0x08, 0x01, + 0x00, 0x00, 0x96, 0x03, 0x01, 0x22, 0x00, 0x02, 0x11, 0x01, 0x03, 0x11, + 0x01, 0xff, 0xc4, 0x00, 0x1f, 0x00, 0x00, 0x01, 0x05, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0xff, 0xc4, + 0x00, 0xb5, 0x10, 0x00, 0x02, 0x01, 0x03, 0x03, 0x02, 0x04, 0x03, 0x05, + 0x05, 0x04, 0x04, 0x00, 0x00, 0x01, 0x7d, 0x01, 0x02, 0x03, 0x00, 0x04, + 0x11, 0x05, 0x12, 0x21, 0x31, 0x41, 0x06, 0x13, 0x51, 0x61, 0x07, 0x22, + 0x71, 0x14, 0x32, 0x81, 0x91, 0xa1, 0x08, 0x23, 0x42, 0xb1, 0xc1, 0x15, + 0x52, 0xd1, 0xf0, 0x24, 0x33, 0x62, 0x72, 0x82, 0x09, 0x0a, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x34, 0x35, 0x36, + 0x37, 0x38, 0x39, 0x3a, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, + 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x63, 0x64, 0x65, 0x66, + 0x67, 0x68, 0x69, 0x6a, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, + 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x92, 0x93, 0x94, 0x95, + 0x96, 0x97, 0x98, 0x99, 0x9a, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, + 0xa9, 0xaa, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xc2, + 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xd2, 0xd3, 0xd4, 0xd5, + 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, + 0xe8, 0xe9, 0xea, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, + 0xfa, 0xff, 0xc4, 0x00, 0x1f, 0x01, 0x00, 0x03, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0xff, 0xc4, + 0x00, 0xb5, 0x11, 0x00, 0x02, 0x01, 0x02, 0x04, 0x04, 0x03, 0x04, 0x07, + 0x05, 0x04, 0x04, 0x00, 0x01, 0x02, 0x77, 0x00, 0x01, 0x02, 0x03, 0x11, + 0x04, 0x05, 0x21, 0x31, 0x06, 0x12, 0x41, 0x51, 0x07, 0x61, 0x71, 0x13, + 0x22, 0x32, 0x81, 0x08, 0x14, 0x42, 0x91, 0xa1, 0xb1, 0xc1, 0x09, 0x23, + 0x33, 0x52, 0xf0, 0x15, 0x62, 0x72, 0xd1, 0x0a, 0x16, 0x24, 0x34, 0xe1, + 0x25, 0xf1, 0x17, 0x18, 0x19, 0x1a, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x35, + 0x36, 0x37, 0x38, 0x39, 0x3a, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, + 0x4a, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x63, 0x64, 0x65, + 0x66, 0x67, 0x68, 0x69, 0x6a, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, + 0x7a, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x92, 0x93, + 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, + 0xa7, 0xa8, 0xa9, 0xaa, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, + 0xba, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xd2, 0xd3, + 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, + 0xe7, 0xe8, 0xe9, 0xea, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, + 0xfa, 0xff, 0xda, 0x00, 0x0c, 0x03, 0x01, 0x00, 0x02, 0x11, 0x03, 0x11, + 0x00, 0x3f, 0x00, 0xef, 0x28, 0xa2, 0x8a, 0x00, 0x28, 0xa2, 0xaa, 0xdf, + 0x6a, 0x56, 0x5a, 0x6c, 0x5e, 0x6d, 0xed, 0xdc, 0x36, 0xe9, 0xd8, 0xc8, + 0xe1, 0x73, 0xf4, 0xf5, 0xa0, 0x0b, 0x54, 0x57, 0x29, 0x73, 0xf1, 0x17, + 0xc3, 0x76, 0xe7, 0x02, 0xf5, 0xa5, 0x3f, 0xf4, 0xce, 0x32, 0x6b, 0x22, + 0xe7, 0xe2, 0xde, 0x95, 0x1e, 0x45, 0xbd, 0x8d, 0xd4, 0xa7, 0xb6, 0xe2, + 0xaa, 0x0f, 0xf3, 0xa0, 0x0f, 0x42, 0xa2, 0xbc, 0xa6, 0x6f, 0x8c, 0x12, + 0xf3, 0xe4, 0xe9, 0x11, 0xaf, 0xa6, 0xf9, 0x89, 0xfe, 0x40, 0x55, 0x47, + 0xf8, 0xb9, 0xaa, 0x9f, 0xbb, 0x65, 0x6a, 0xbf, 0xf7, 0xd1, 0xfe, 0xb4, + 0x58, 0x0f, 0x61, 0xa2, 0xbc, 0x59, 0xbe, 0x2c, 0x6b, 0xa4, 0xfc, 0xb0, + 0xda, 0x01, 0xff, 0x00, 0x5c, 0xcf, 0xf8, 0xd3, 0x7f, 0xe1, 0x6b, 0x6b, + 0xf8, 0xfb, 0x96, 0x9f, 0xf7, 0xe8, 0xff, 0x00, 0x8d, 0x3b, 0x01, 0xed, + 0x74, 0x57, 0x8c, 0x27, 0xc5, 0x8d, 0x6d, 0x47, 0xcd, 0x0d, 0xa3, 0x7f, + 0xc0, 0x08, 0xfe, 0xb5, 0x62, 0x3f, 0x8b, 0xba, 0x92, 0x91, 0xe6, 0x58, + 0x5a, 0xb7, 0xd0, 0xb0, 0xa5, 0x60, 0x3d, 0x7e, 0x8a, 0xf2, 0xf8, 0x3e, + 0x30, 0x2e, 0xe0, 0x2e, 0x34, 0x8e, 0x3b, 0x94, 0x9b, 0xfa, 0x15, 0xad, + 0x5b, 0x6f, 0x8a, 0xda, 0x14, 0xdc, 0x4b, 0x15, 0xd4, 0x3e, 0xe5, 0x43, + 0x0f, 0xd0, 0xd1, 0x60, 0x3b, 0xba, 0x2b, 0x9e, 0xb4, 0xf1, 0xc7, 0x87, + 0x2f, 0x08, 0x09, 0xa9, 0xc5, 0x1b, 0x1e, 0x82, 0x5c, 0xa7, 0xf3, 0xad, + 0xf8, 0xe4, 0x49, 0x50, 0x3c, 0x6e, 0xae, 0x87, 0x90, 0xca, 0x72, 0x0f, + 0xe3, 0x40, 0x0e, 0xa2, 0x8a, 0x28, 0x00, 0xa2, 0x8a, 0x28, 0x00, 0xa2, + 0x8a, 0x6c, 0x92, 0x08, 0xa2, 0x79, 0x18, 0xe1, 0x55, 0x4b, 0x1f, 0xc2, + 0x80, 0x38, 0xff, 0x00, 0x1c, 0xf8, 0xd5, 0x7c, 0x39, 0x00, 0xb5, 0xb4, + 0xda, 0xfa, 0x84, 0xab, 0x91, 0x9e, 0x44, 0x63, 0xd4, 0x8f, 0x5f, 0x6a, + 0xf1, 0x5b, 0xdd, 0x42, 0xef, 0x52, 0xb8, 0x33, 0xde, 0x5c, 0x49, 0x34, + 0xad, 0xd5, 0x9d, 0xb3, 0x56, 0x3c, 0x41, 0xa8, 0x49, 0xaa, 0x6b, 0xd7, + 0x77, 0x52, 0xb1, 0x25, 0xe4, 0x38, 0xcf, 0x61, 0xd8, 0x55, 0x15, 0x5e, + 0x29, 0x88, 0x4d, 0xa7, 0xa9, 0xa3, 0x6d, 0x33, 0x12, 0x49, 0x23, 0x05, + 0x3b, 0x42, 0x9c, 0x13, 0x4f, 0x55, 0x74, 0x65, 0x56, 0x39, 0xdd, 0xd0, + 0xd3, 0x00, 0xdb, 0x9a, 0x5f, 0xd2, 0x97, 0xa8, 0xc5, 0x18, 0xcf, 0x03, + 0xf3, 0xa0, 0x04, 0xc5, 0x1b, 0x45, 0x2e, 0x0d, 0x04, 0x50, 0x03, 0x71, + 0xcd, 0x1b, 0x79, 0xa7, 0xe3, 0x83, 0x49, 0x83, 0x9e, 0x28, 0x01, 0xb8, + 0xeb, 0xe9, 0x41, 0x5a, 0x78, 0x5e, 0x3a, 0x73, 0x4b, 0x8e, 0x3f, 0xa5, + 0x00, 0x47, 0xb4, 0x8e, 0x95, 0xb7, 0xe1, 0xff, 0x00, 0x15, 0xea, 0x7e, + 0x1e, 0xba, 0x57, 0xb7, 0x99, 0x9a, 0x0c, 0xfc, 0xf0, 0xb1, 0xca, 0xb0, + 0xfe, 0x9f, 0x5a, 0xc7, 0x2b, 0xdb, 0x34, 0xc6, 0x14, 0x01, 0xf4, 0x96, + 0x87, 0xac, 0xdb, 0x6b, 0xda, 0x54, 0x57, 0xf6, 0xa7, 0xe5, 0x71, 0xf3, + 0x29, 0xea, 0xad, 0xdc, 0x1a, 0xd1, 0xaf, 0x1d, 0xf8, 0x4b, 0xa9, 0xcb, + 0x16, 0xb1, 0x71, 0xa7, 0x16, 0x3e, 0x54, 0xd1, 0xef, 0x00, 0xf6, 0x61, + 0x5e, 0xc5, 0x52, 0x30, 0xa2, 0x8a, 0x28, 0x00, 0xaa, 0x7a, 0xb9, 0xc6, + 0x8d, 0x7c, 0x7f, 0xe9, 0xde, 0x4f, 0xfd, 0x04, 0xd5, 0xca, 0xa5, 0xab, + 0xff, 0x00, 0xc8, 0x1a, 0xfb, 0x3d, 0x3c, 0x87, 0xff, 0x00, 0xd0, 0x4d, + 0x00, 0x7c, 0xd7, 0x73, 0xff, 0x00, 0x1f, 0x93, 0x7f, 0xbe, 0x68, 0x19, + 0x0a, 0xcc, 0xb8, 0xc8, 0x19, 0xe6, 0x8b, 0x9f, 0xf8, 0xfd, 0x9b, 0xfd, + 0xf3, 0x46, 0x71, 0x14, 0x98, 0xfe, 0xe9, 0xaa, 0x11, 0x12, 0xb4, 0xdb, + 0x08, 0x45, 0xe0, 0xb6, 0xee, 0x05, 0x1b, 0xe7, 0x46, 0x47, 0x65, 0x25, + 0x51, 0x83, 0x63, 0x18, 0xa9, 0xf3, 0x88, 0xe3, 0xc7, 0xf7, 0x45, 0x35, + 0xcf, 0xc8, 0xe3, 0x3d, 0x54, 0xd0, 0x02, 0xed, 0x05, 0x32, 0x4e, 0x19, + 0x93, 0x23, 0x1e, 0xb5, 0x58, 0x25, 0xd1, 0x95, 0xe3, 0x0e, 0x32, 0x9c, + 0x93, 0xda, 0xac, 0xf3, 0xe5, 0xc7, 0x9e, 0xbb, 0x07, 0xf2, 0xa1, 0x17, + 0x6d, 0xc4, 0xb2, 0x13, 0xf2, 0xb2, 0xae, 0x3d, 0xfa, 0x50, 0x05, 0x3d, + 0xd3, 0xab, 0xc8, 0xa6, 0x64, 0x1b, 0x0e, 0x0e, 0x4f, 0x5f, 0xa5, 0x4b, + 0x2b, 0xb9, 0xb2, 0x8a, 0x65, 0x38, 0x2c, 0xdb, 0x49, 0xf7, 0xa9, 0x1a, + 0xd9, 0x65, 0x92, 0xe1, 0xd8, 0xe0, 0x96, 0xcc, 0x78, 0x3c, 0x77, 0xff, + 0x00, 0xeb, 0x51, 0x2c, 0x6e, 0xf6, 0x31, 0x46, 0xaa, 0xa0, 0xab, 0x72, + 0xb9, 0xa4, 0x32, 0x28, 0xd2, 0xe2, 0x40, 0xe5, 0x65, 0x53, 0xb7, 0x93, + 0xcf, 0x4a, 0x5b, 0x63, 0x23, 0x5d, 0x94, 0x76, 0xde, 0x8a, 0x09, 0x62, + 0xbd, 0x3a, 0x50, 0x12, 0xe5, 0x63, 0x75, 0x8d, 0x11, 0x03, 0x80, 0x1b, + 0x07, 0xa8, 0xa7, 0xd9, 0xa4, 0xd0, 0xc8, 0x8a, 0xea, 0xab, 0x1e, 0x49, + 0x66, 0x07, 0x93, 0xc7, 0x4a, 0x04, 0x45, 0x1f, 0xda, 0xae, 0x3e, 0x68, + 0xf8, 0x5c, 0xe0, 0x03, 0xde, 0x95, 0xae, 0x7f, 0xd1, 0xb2, 0x18, 0xac, + 0xa1, 0xf0, 0x47, 0xf9, 0xfc, 0x29, 0xc6, 0x2b, 0x88, 0xbf, 0x77, 0x0b, + 0x83, 0x1e, 0x72, 0xa7, 0xb8, 0xcd, 0x0d, 0x68, 0x3e, 0xc8, 0x47, 0x0d, + 0x31, 0x70, 0x49, 0xf6, 0xe6, 0x81, 0x84, 0x05, 0xcd, 0xca, 0xc6, 0xf2, + 0x2b, 0x07, 0xcf, 0x20, 0xf4, 0x35, 0x23, 0x0e, 0x29, 0x56, 0x04, 0x8a, + 0xe9, 0x59, 0x39, 0x8c, 0xa1, 0x1c, 0x9e, 0x54, 0xff, 0x00, 0x9f, 0xe7, + 0x43, 0x72, 0x29, 0x88, 0xea, 0x3e, 0x1b, 0x36, 0xcf, 0x1a, 0xda, 0xe3, + 0xba, 0xb0, 0x3f, 0x95, 0x7b, 0xcd, 0x78, 0x2f, 0xc3, 0x8f, 0xf9, 0x1d, + 0x2d, 0x7d, 0xc3, 0x7f, 0x2a, 0xf7, 0xaa, 0x4c, 0x61, 0x45, 0x14, 0x52, + 0x00, 0xaa, 0x7a, 0xb1, 0xc6, 0x8d, 0x7b, 0xff, 0x00, 0x5c, 0x1f, 0xff, + 0x00, 0x41, 0x35, 0x72, 0xa9, 0xea, 0xdf, 0xf2, 0x07, 0xbd, 0xff, 0x00, + 0xae, 0x0f, 0xfc, 0x8d, 0x00, 0x7c, 0xd5, 0x71, 0xff, 0x00, 0x1f, 0xb3, + 0x7f, 0xbe, 0x69, 0x57, 0x95, 0x20, 0xf4, 0x23, 0x14, 0x97, 0x03, 0xfd, + 0x36, 0x6f, 0xf7, 0xcd, 0x38, 0x0c, 0x0e, 0x4e, 0x3d, 0xea, 0x84, 0x45, + 0xe4, 0xb8, 0xfb, 0x8f, 0x9f, 0x4a, 0x6f, 0x90, 0xed, 0xcc, 0x8f, 0xf8, + 0x54, 0xfc, 0x75, 0x0c, 0x28, 0xda, 0x3d, 0x47, 0xe7, 0x48, 0x04, 0x66, + 0xf9, 0x54, 0x0e, 0xc0, 0x0a, 0x6f, 0x63, 0x4e, 0xc0, 0x20, 0xe0, 0x8f, + 0xce, 0x8d, 0xa3, 0x1c, 0x91, 0xf9, 0xd3, 0x01, 0xa3, 0x83, 0xed, 0x4e, + 0x1c, 0x50, 0x02, 0x8e, 0xe0, 0x7e, 0x34, 0xb8, 0x5f, 0xef, 0x7e, 0xb4, + 0x00, 0x03, 0xcf, 0x3d, 0x29, 0x0f, 0x3d, 0x69, 0xd8, 0x5f, 0x51, 0xf9, + 0xd2, 0x60, 0x0e, 0xe3, 0xf3, 0xa0, 0x03, 0x38, 0xe7, 0x34, 0x67, 0x9a, + 0x51, 0xb7, 0xa6, 0x47, 0xe7, 0x46, 0x3d, 0xc7, 0xe7, 0x40, 0x0d, 0xed, + 0x4d, 0x3c, 0x0e, 0x6a, 0x4c, 0x0c, 0x67, 0x70, 0xfc, 0xe9, 0x8d, 0x8c, + 0x71, 0x40, 0x1d, 0x47, 0xc3, 0x71, 0x9f, 0x1a, 0xda, 0xfd, 0x1b, 0xf9, + 0x1a, 0xf7, 0x9a, 0xf0, 0x7f, 0x86, 0xbc, 0xf8, 0xda, 0xd7, 0xd3, 0x6b, + 0xff, 0x00, 0xe8, 0x26, 0xbd, 0xe2, 0x93, 0x18, 0x51, 0x45, 0x14, 0x80, + 0x2a, 0x96, 0xaf, 0xff, 0x00, 0x20, 0x6b, 0xdf, 0xfa, 0xe0, 0xff, 0x00, + 0xc8, 0xd5, 0xda, 0xa5, 0xab, 0xff, 0x00, 0xc8, 0x1a, 0xf4, 0x7f, 0xd3, + 0x17, 0xfe, 0x54, 0x01, 0xf3, 0x64, 0xb9, 0x37, 0xb2, 0x8e, 0xe5, 0xcd, + 0x67, 0xce, 0xcc, 0x65, 0x60, 0x4f, 0x43, 0x8a, 0xd3, 0xe9, 0xa9, 0x37, + 0xfd, 0x74, 0xfe, 0xb5, 0x9b, 0x75, 0xff, 0x00, 0x1f, 0x32, 0x7f, 0xbd, + 0x4c, 0x44, 0x59, 0x3e, 0xb4, 0x99, 0x34, 0x51, 0x40, 0xc3, 0x27, 0xd6, + 0x8a, 0x28, 0xa0, 0x03, 0x34, 0x51, 0x45, 0x00, 0x14, 0x51, 0x45, 0x00, + 0x14, 0x66, 0x8a, 0x28, 0x01, 0x72, 0x7d, 0x6b, 0x42, 0xd3, 0xf7, 0xd6, + 0xd2, 0xf3, 0xf3, 0xc7, 0x83, 0xf5, 0x15, 0x9d, 0x5a, 0x1a, 0x6f, 0xdd, + 0xb9, 0xff, 0x00, 0xae, 0x7f, 0xd6, 0x80, 0x3a, 0xdf, 0x86, 0xa3, 0xfe, + 0x2b, 0x6b, 0x5f, 0xf7, 0x5f, 0xff, 0x00, 0x41, 0x35, 0xef, 0x15, 0xe1, + 0x1f, 0x0d, 0x47, 0xfc, 0x56, 0xd6, 0xc7, 0xfd, 0x87, 0xfe, 0x46, 0xbd, + 0xde, 0x90, 0x05, 0x14, 0x51, 0x40, 0x05, 0x53, 0xd5, 0xbf, 0xe4, 0x0f, + 0x79, 0xff, 0x00, 0x5c, 0x5b, 0xf9, 0x55, 0xca, 0xa7, 0xab, 0x7f, 0xc8, + 0x1e, 0xf3, 0xfe, 0xb8, 0xb7, 0xf2, 0xa0, 0x0f, 0x9b, 0xc9, 0xc6, 0xa4, + 0xff, 0x00, 0xf5, 0xd3, 0xfa, 0xd6, 0x65, 0xd7, 0xfc, 0x7c, 0xc9, 0xfe, + 0xf5, 0x69, 0x9f, 0xf9, 0x09, 0x37, 0xfd, 0x74, 0x35, 0x99, 0x75, 0xff, + 0x00, 0x1f, 0x52, 0x7f, 0xbd, 0x4c, 0x44, 0x34, 0x51, 0x45, 0x03, 0x0a, + 0x28, 0xa2, 0x80, 0x0a, 0x28, 0xa2, 0x80, 0x0a, 0x28, 0xa2, 0x80, 0x0a, + 0x28, 0xa2, 0x80, 0x0a, 0xd0, 0xd3, 0x3e, 0xed, 0xcf, 0xfb, 0x9f, 0xd6, + 0xb3, 0xeb, 0x43, 0x4c, 0xfb, 0xb7, 0x3f, 0xee, 0x7f, 0x5a, 0x00, 0xeb, + 0xfe, 0x1a, 0x0f, 0xf8, 0xad, 0x20, 0xff, 0x00, 0x71, 0xbf, 0x95, 0x7b, + 0xb5, 0x78, 0x4f, 0xc3, 0x5f, 0xf9, 0x1d, 0x20, 0xff, 0x00, 0x71, 0xbf, + 0x95, 0x7b, 0xb5, 0x20, 0x0a, 0x28, 0xa2, 0x80, 0x0a, 0xa7, 0xab, 0x7f, + 0xc8, 0x22, 0xf3, 0xfe, 0xb8, 0xb7, 0xf2, 0xab, 0x95, 0x4f, 0x56, 0xff, + 0x00, 0x90, 0x45, 0xe7, 0xfd, 0x71, 0x6f, 0xe5, 0x40, 0x1f, 0x37, 0x1f, + 0xf9, 0x08, 0xbf, 0xfd, 0x74, 0xeb, 0x59, 0xb7, 0x5f, 0xf1, 0xf3, 0x27, + 0xfb, 0xc6, 0xb4, 0x8f, 0xfc, 0x84, 0x5f, 0xfe, 0xba, 0x56, 0x65, 0xc7, + 0xfc, 0x7c, 0x49, 0xfe, 0xf1, 0xa6, 0x22, 0x2a, 0x28, 0xa2, 0x81, 0x85, + 0x14, 0x51, 0x40, 0x05, 0x14, 0x51, 0x40, 0x05, 0x14, 0x51, 0x40, 0x05, + 0x14, 0x51, 0x40, 0x05, 0x68, 0x69, 0x9f, 0x76, 0xe4, 0xff, 0x00, 0xd3, + 0x3f, 0xeb, 0x59, 0xf5, 0xa3, 0xa6, 0x72, 0x97, 0x5f, 0xf5, 0xcf, 0xfa, + 0xd0, 0x07, 0x5d, 0xf0, 0xd3, 0xfe, 0x47, 0x48, 0x3f, 0xdc, 0x7f, 0xe5, + 0x5e, 0xed, 0x5e, 0x13, 0xf0, 0xcc, 0x7f, 0xc5, 0x6b, 0x07, 0xfb, 0x8f, + 0xfc, 0xab, 0xdd, 0xa9, 0x00, 0x51, 0x45, 0x14, 0x00, 0x55, 0x2d, 0x5f, + 0xfe, 0x40, 0xf7, 0x9f, 0xf5, 0xc5, 0xbf, 0x95, 0x5d, 0xaa, 0x7a, 0xb7, + 0xfc, 0x82, 0x2f, 0x3f, 0xeb, 0x8b, 0x7f, 0x2a, 0x00, 0xf9, 0xb8, 0xff, + 0x00, 0xc8, 0x49, 0xff, 0x00, 0xeb, 0xa5, 0x66, 0x5c, 0x7f, 0xc7, 0xc4, + 0x9f, 0xef, 0x1a, 0xd3, 0x3f, 0xf2, 0x12, 0x7f, 0xfa, 0xe9, 0x59, 0x97, + 0x3f, 0xf1, 0xf3, 0x27, 0xfb, 0xc6, 0x98, 0x88, 0xa8, 0xa2, 0x8a, 0x06, + 0x14, 0x51, 0x45, 0x00, 0x14, 0x51, 0x45, 0x00, 0x14, 0x51, 0x45, 0x00, + 0x14, 0x51, 0x45, 0x00, 0x15, 0xa3, 0xa6, 0x1f, 0x96, 0xe7, 0xfe, 0xb9, + 0xff, 0x00, 0x5a, 0xce, 0xad, 0x0d, 0x33, 0xee, 0xdc, 0xff, 0x00, 0xb9, + 0xfd, 0x68, 0x03, 0xaf, 0xf8, 0x66, 0x3f, 0xe2, 0xb5, 0x83, 0xfd, 0xc7, + 0xfe, 0x55, 0xee, 0xd5, 0xe1, 0x3f, 0x0c, 0xff, 0x00, 0xe4, 0x75, 0x83, + 0xfd, 0xc7, 0xfe, 0x55, 0xee, 0xd4, 0x80, 0x28, 0xa2, 0x8a, 0x00, 0x2a, + 0x96, 0xaf, 0xff, 0x00, 0x20, 0x7b, 0xcf, 0xfa, 0xe2, 0xdf, 0xca, 0xae, + 0xd5, 0x2d, 0x5f, 0xfe, 0x40, 0xf7, 0x9f, 0xf5, 0xc5, 0xbf, 0x95, 0x00, + 0x7c, 0xde, 0x7f, 0xe4, 0x24, 0xff, 0x00, 0xf5, 0xd3, 0xfa, 0xd6, 0x6d, + 0xd7, 0xfc, 0x7c, 0xc9, 0x8f, 0xef, 0x1a, 0xd3, 0x3c, 0x6a, 0x4f, 0xff, + 0x00, 0x5d, 0x0f, 0xf3, 0xac, 0xbb, 0x9f, 0xf8, 0xf9, 0x97, 0xfd, 0xea, + 0xa1, 0x11, 0x51, 0x45, 0x14, 0x86, 0x14, 0x51, 0x45, 0x00, 0x14, 0x51, + 0x45, 0x00, 0x14, 0x51, 0x45, 0x00, 0x14, 0x51, 0x45, 0x00, 0x15, 0xa1, + 0xa6, 0xfd, 0xcb, 0x9f, 0xf7, 0x3f, 0xad, 0x67, 0xd6, 0x86, 0x99, 0xf7, + 0x2e, 0x7f, 0xeb, 0x9f, 0xf5, 0xa0, 0x0e, 0xbf, 0xe1, 0x9f, 0xfc, 0x8e, + 0xb0, 0x7f, 0xb8, 0xff, 0x00, 0xca, 0xbd, 0xda, 0xbc, 0x27, 0xe1, 0x9f, + 0xfc, 0x8e, 0xb0, 0x7f, 0xd7, 0x37, 0xfe, 0x55, 0xee, 0xd4, 0x30, 0x0a, + 0x28, 0xa2, 0x90, 0x05, 0x52, 0xd5, 0xf9, 0xd1, 0xef, 0x3f, 0xeb, 0x8b, + 0x7f, 0x2a, 0xbb, 0x54, 0xf5, 0x6f, 0xf9, 0x04, 0x5e, 0x7f, 0xd7, 0x16, + 0xfe, 0x54, 0x01, 0xf3, 0x79, 0x1f, 0xf1, 0x32, 0x7f, 0xfa, 0xe8, 0x7f, + 0x9d, 0x65, 0xdd, 0x7f, 0xc7, 0xcc, 0x9f, 0xef, 0x1a, 0xd2, 0x76, 0xdb, + 0xa8, 0xbb, 0x7a, 0x49, 0x9f, 0xd6, 0xab, 0x6a, 0x70, 0x18, 0xee, 0xdd, + 0x94, 0x65, 0x18, 0xe4, 0x1a, 0xa1, 0x14, 0x68, 0xa3, 0x07, 0xd2, 0x8c, + 0x1f, 0x4a, 0x43, 0x0a, 0x28, 0xa2, 0x80, 0x0a, 0x28, 0xc1, 0x1d, 0xa8, + 0xa0, 0x02, 0x8a, 0x28, 0xa0, 0x02, 0x8a, 0x28, 0xa0, 0x02, 0xb4, 0x74, + 0xbf, 0xb9, 0x73, 0xff, 0x00, 0x5c, 0xff, 0x00, 0xad, 0x67, 0x56, 0x8d, + 0x81, 0xf2, 0xad, 0xa7, 0x6f, 0xef, 0x00, 0x05, 0x00, 0x75, 0xdf, 0x0c, + 0xbf, 0xe4, 0x75, 0x80, 0xff, 0x00, 0xd3, 0x37, 0xfe, 0x55, 0xee, 0xd5, + 0xe1, 0x5f, 0x0c, 0x7f, 0xe4, 0x74, 0x87, 0xfe, 0xb9, 0xbf, 0xf2, 0xaf, + 0x75, 0xa4, 0x01, 0x45, 0x14, 0x50, 0x01, 0x54, 0xb5, 0x7f, 0xf9, 0x03, + 0xde, 0x7f, 0xd7, 0x16, 0xfe, 0x55, 0x76, 0xab, 0xdf, 0xc2, 0xd7, 0x1a, + 0x7d, 0xc4, 0x28, 0x40, 0x67, 0x8d, 0x94, 0x67, 0xdc, 0x50, 0x07, 0xcc, + 0xd7, 0x1f, 0xf1, 0xf9, 0x37, 0xfb, 0xe6, 0xa5, 0xde, 0xb2, 0xc6, 0x16, + 0x4e, 0xdd, 0xe9, 0x97, 0xc8, 0x61, 0xd4, 0x67, 0x8d, 0xbe, 0xf0, 0x73, + 0x9a, 0x8c, 0x38, 0x03, 0x24, 0xe0, 0x7b, 0xd5, 0x08, 0x9c, 0xc3, 0x6e, + 0x47, 0x24, 0xd2, 0x79, 0x56, 0xd8, 0x1c, 0x9e, 0x2a, 0xb1, 0xb8, 0x8b, + 0xfb, 0xc2, 0x90, 0xdc, 0x45, 0xfd, 0xf1, 0x40, 0x16, 0x05, 0xbd, 0xa9, + 0xa0, 0x43, 0x6c, 0x0f, 0x53, 0x91, 0x55, 0x85, 0xc4, 0x58, 0xc6, 0xf1, + 0xcd, 0x1e, 0x7c, 0x79, 0xc6, 0xf1, 0x40, 0x16, 0x4c, 0x50, 0x37, 0x5c, + 0xd3, 0x7c, 0x8b, 0x7e, 0xc2, 0xa3, 0x04, 0x74, 0x07, 0xf1, 0xa7, 0x03, + 0x40, 0x0f, 0xf2, 0x6d, 0x88, 0xe8, 0x68, 0xfb, 0x35, 0xbe, 0x29, 0x8c, + 0xe1, 0x57, 0x2d, 0xc0, 0xa8, 0xfe, 0xd3, 0x1f, 0xf7, 0xc5, 0x03, 0x26, + 0xfb, 0x3d, 0xb6, 0x3a, 0x73, 0x4b, 0xf6, 0x7b, 0x6c, 0x0a, 0x83, 0xed, + 0x11, 0xe7, 0x3b, 0xc5, 0x28, 0xb8, 0x88, 0x0f, 0xbc, 0x29, 0x01, 0x2b, + 0x5b, 0xdb, 0x0e, 0xd4, 0x8e, 0x57, 0x68, 0x55, 0x18, 0x51, 0x51, 0xf9, + 0xf1, 0x9f, 0xe3, 0x14, 0xa7, 0x18, 0xc8, 0xa6, 0x23, 0xaf, 0xf8, 0x61, + 0xff, 0x00, 0x23, 0xa4, 0x3f, 0xf5, 0xcd, 0xbf, 0x95, 0x7b, 0xb5, 0x78, + 0x7f, 0xc2, 0xab, 0x77, 0x9b, 0xc5, 0xc6, 0x55, 0xc6, 0xd8, 0x61, 0x66, + 0x6c, 0xfb, 0xf1, 0x5e, 0xe1, 0x52, 0x30, 0xa2, 0x8a, 0x28, 0x00, 0xa3, + 0x19, 0xa2, 0x8a, 0x00, 0xf9, 0xcb, 0xc6, 0x16, 0xa6, 0xd3, 0xc4, 0xf7, + 0x69, 0x8c, 0x66, 0x46, 0xfe, 0x7f, 0xfe, 0xaa, 0xc6, 0xf2, 0xc3, 0x94, + 0xdd, 0xca, 0xe0, 0x9c, 0x57, 0x79, 0xf1, 0x5f, 0x4d, 0x36, 0xfa, 0xea, + 0xdd, 0xaa, 0xfc, 0x93, 0x28, 0x6c, 0xfb, 0xe3, 0x07, 0xf9, 0x7e, 0xb5, + 0xc3, 0xf4, 0x8e, 0x36, 0x3d, 0x08, 0x23, 0xf9, 0x55, 0x08, 0x3c, 0xb8, + 0xc7, 0xf0, 0x2f, 0xe5, 0x49, 0xb6, 0x35, 0x3f, 0x71, 0x48, 0xfa, 0x53, + 0xf2, 0xa4, 0x75, 0xa6, 0xb0, 0x1e, 0xb9, 0xa0, 0x03, 0x11, 0x75, 0xd8, + 0xbf, 0xf7, 0xcd, 0x37, 0x64, 0x64, 0xff, 0x00, 0xab, 0x5f, 0xca, 0x9c, + 0x14, 0x0e, 0xe2, 0x90, 0x85, 0x03, 0xaf, 0x6a, 0x00, 0x95, 0x11, 0x1a, + 0xd2, 0x6d, 0xa3, 0x06, 0x32, 0xa4, 0x7b, 0x03, 0x90, 0x45, 0x42, 0x0d, + 0x4b, 0x6e, 0xea, 0x6d, 0x2e, 0x88, 0x3f, 0xdc, 0x03, 0xf3, 0x35, 0x5f, + 0x38, 0xa0, 0x07, 0xb4, 0x20, 0xb2, 0x16, 0xe5, 0x76, 0x93, 0x8f, 0x7c, + 0xe2, 0x94, 0xa4, 0x7f, 0xdc, 0x5c, 0xfd, 0x29, 0xcc, 0x0a, 0xc6, 0x8c, + 0x71, 0x86, 0x52, 0x01, 0xfc, 0x69, 0x01, 0x52, 0x3a, 0xd0, 0x31, 0x36, + 0xc7, 0x8c, 0xec, 0x5f, 0xca, 0x82, 0x13, 0xfe, 0x79, 0xa7, 0xe4, 0x29, + 0x78, 0x34, 0xbb, 0x7e, 0x94, 0x08, 0x66, 0xd4, 0x27, 0xfd, 0x5a, 0xfe, + 0x54, 0xa4, 0x2f, 0x92, 0xe0, 0x0c, 0x6d, 0x23, 0x1f, 0x43, 0x4e, 0x3b, + 0x42, 0xf5, 0x19, 0xa6, 0x29, 0x0d, 0x04, 0xcc, 0x0f, 0x19, 0x51, 0xfa, + 0x1a, 0x00, 0xf4, 0xdf, 0x83, 0x96, 0x67, 0x7e, 0xa7, 0x7a, 0x47, 0x00, + 0x24, 0x4a, 0x7d, 0xce, 0x49, 0xfe, 0x42, 0xbd, 0x5e, 0xb8, 0xef, 0x86, + 0x56, 0x1f, 0x62, 0xf0, 0x6c, 0x12, 0x15, 0xc3, 0x5c, 0xbb, 0x4a, 0x7d, + 0xc7, 0x41, 0xfa, 0x0a, 0xec, 0x6a, 0x46, 0x14, 0x51, 0x45, 0x00, 0x14, + 0x51, 0x45, 0x00, 0x71, 0x5f, 0x12, 0xb4, 0x73, 0xa8, 0x78, 0x7b, 0xed, + 0x11, 0xae, 0x64, 0xb7, 0x3c, 0xff, 0x00, 0xba, 0x7f, 0xfa, 0xf8, 0xaf, + 0x0f, 0x47, 0x5d, 0x86, 0x29, 0x06, 0x57, 0xb8, 0x3d, 0x8d, 0x7d, 0x41, + 0x75, 0x6f, 0x1d, 0xdd, 0xac, 0xb6, 0xf2, 0x8c, 0xc7, 0x2a, 0x95, 0x61, + 0xec, 0x6b, 0xe6, 0xef, 0x11, 0xe9, 0x72, 0xe8, 0xfa, 0xe5, 0xc5, 0xac, + 0xa3, 0x95, 0x73, 0xcf, 0xaf, 0xbf, 0xf5, 0xfc, 0x69, 0xa1, 0x19, 0xbe, + 0x44, 0x1f, 0xde, 0x90, 0x7e, 0x34, 0x9e, 0x44, 0x23, 0xf8, 0xe5, 0xfc, + 0xe9, 0x7a, 0x8a, 0x53, 0xd2, 0x80, 0x1b, 0xe4, 0x43, 0xff, 0x00, 0x3d, + 0x25, 0xfc, 0xe8, 0xfb, 0x3c, 0x19, 0xfb, 0xd2, 0x1f, 0xf8, 0x15, 0x2e, + 0x33, 0x57, 0x2c, 0x74, 0xd9, 0x6f, 0x92, 0xe2, 0x61, 0xb9, 0x2d, 0xad, + 0x93, 0x7c, 0xd3, 0x79, 0x6c, 0xca, 0x83, 0xb0, 0x38, 0x07, 0x04, 0xe0, + 0xe3, 0x3e, 0x86, 0x80, 0x2b, 0x65, 0x55, 0x02, 0x20, 0xda, 0x83, 0x9c, + 0x56, 0x81, 0xf0, 0xf6, 0xb4, 0xb9, 0xce, 0x8f, 0xa8, 0x0c, 0x0d, 0xc7, + 0x36, 0xcf, 0xc0, 0xf5, 0xe9, 0xd2, 0xb6, 0x0d, 0xc4, 0x16, 0xd1, 0xa4, + 0x96, 0x90, 0x58, 0xe9, 0x76, 0x6d, 0x23, 0x3c, 0x33, 0xdc, 0x41, 0xe7, + 0xdc, 0xca, 0x36, 0xf0, 0xca, 0xad, 0x96, 0x55, 0xc8, 0xe1, 0xb2, 0x06, + 0x7f, 0x1a, 0xd2, 0x97, 0x57, 0xb2, 0x5f, 0x06, 0xc5, 0x2c, 0x7e, 0x2a, + 0xd5, 0xce, 0xac, 0xce, 0x20, 0x95, 0xb7, 0x02, 0x4c, 0x0a, 0x72, 0xa9, + 0xe5, 0x6f, 0xed, 0xc7, 0x39, 0xc7, 0x5e, 0x4f, 0x4a, 0x2e, 0x07, 0x0f, + 0xe6, 0x03, 0x11, 0x89, 0xc6, 0xe8, 0xc9, 0xce, 0x33, 0xd0, 0xd4, 0x3f, + 0x67, 0x83, 0xfb, 0xf2, 0x63, 0xeb, 0x5d, 0x65, 0xc4, 0xd6, 0xd7, 0x16, + 0xd2, 0xc9, 0x77, 0x06, 0x9d, 0x7b, 0x6a, 0x0c, 0xb8, 0xbe, 0xb2, 0x87, + 0xc8, 0x92, 0x16, 0x28, 0x02, 0x97, 0x89, 0x40, 0x25, 0x77, 0x6d, 0x39, + 0x20, 0x8f, 0xbd, 0xea, 0x6b, 0x9e, 0xbe, 0xd3, 0xae, 0x74, 0xf7, 0x4f, + 0x3a, 0x29, 0x44, 0x52, 0x0c, 0xc3, 0x2b, 0x46, 0xca, 0xb2, 0xaf, 0xaa, + 0xe4, 0x72, 0x39, 0x14, 0x01, 0x50, 0x5b, 0xc3, 0x8f, 0xbf, 0x2f, 0xe7, + 0x4a, 0x60, 0x87, 0xfb, 0xf2, 0xfe, 0x74, 0x67, 0xf0, 0xa3, 0xf1, 0xa0, + 0x04, 0xfb, 0x3c, 0x1d, 0xda, 0x53, 0xf5, 0x35, 0x77, 0x4f, 0xb3, 0x6d, + 0x47, 0x50, 0xb5, 0xd3, 0xed, 0xd7, 0x06, 0x69, 0x02, 0x00, 0x3d, 0xcf, + 0x5a, 0xa6, 0x6b, 0xd1, 0xbe, 0x12, 0xe8, 0x5f, 0x6a, 0xd4, 0xa7, 0xd6, + 0x66, 0x4c, 0xc7, 0x6d, 0xfb, 0xb8, 0x72, 0x38, 0xde, 0x47, 0x27, 0xf0, + 0x07, 0xf5, 0xa0, 0x0f, 0x5b, 0xb2, 0xb4, 0x8e, 0xc6, 0xc6, 0x0b, 0x48, + 0x57, 0x6c, 0x70, 0xc6, 0xb1, 0xa8, 0xf6, 0x03, 0x15, 0x3d, 0x14, 0x52, + 0x18, 0x51, 0x45, 0x14, 0x00, 0x51, 0x45, 0x14, 0x00, 0x57, 0x9b, 0xfc, + 0x53, 0xf0, 0xe7, 0xda, 0xec, 0x93, 0x56, 0xb7, 0x4f, 0xde, 0x47, 0x85, + 0x97, 0x1e, 0x9d, 0x8f, 0xf4, 0xfc, 0xab, 0xd2, 0x2a, 0x2b, 0x8b, 0x78, + 0xee, 0xad, 0xa4, 0xb7, 0x99, 0x43, 0x47, 0x22, 0x95, 0x60, 0x7b, 0x83, + 0x40, 0x1f, 0x2d, 0x29, 0xec, 0x7a, 0xd3, 0xf3, 0x9e, 0x86, 0xb6, 0x7c, + 0x5b, 0xa1, 0x4b, 0xa0, 0x6b, 0x93, 0x5b, 0xb0, 0xfd, 0xde, 0xec, 0xa3, + 0x7a, 0x8e, 0xc6, 0xb1, 0x46, 0x08, 0xa6, 0x21, 0x45, 0x75, 0xd6, 0xbe, + 0x15, 0x97, 0x56, 0xd3, 0x92, 0x2b, 0x06, 0xd3, 0xe0, 0x92, 0xd2, 0x08, + 0x6f, 0x6e, 0xbe, 0xd0, 0xef, 0xbe, 0x52, 0xc4, 0x94, 0x00, 0x1e, 0x08, + 0xda, 0xc0, 0xe1, 0x47, 0x7e, 0xa4, 0xf4, 0xe4, 0x48, 0xea, 0x6b, 0xa6, + 0xd7, 0xd0, 0xb6, 0xb7, 0xab, 0x5c, 0xe8, 0x92, 0xcd, 0x1e, 0x99, 0xf6, + 0x74, 0x68, 0x83, 0xe0, 0x33, 0x40, 0xc7, 0x6e, 0x17, 0x68, 0xe1, 0x79, + 0x39, 0x07, 0x07, 0x19, 0xcf, 0x39, 0xa1, 0x81, 0x0e, 0xa2, 0xd2, 0xdc, + 0x78, 0xc1, 0x74, 0xb9, 0x2d, 0x74, 0xbb, 0xbb, 0xab, 0x8b, 0x84, 0xb7, + 0xfb, 0x40, 0x37, 0x0a, 0xa5, 0xcb, 0x04, 0xe8, 0x5c, 0x10, 0x01, 0xe3, + 0xa7, 0x6e, 0x38, 0xa9, 0x96, 0xc7, 0x4c, 0x99, 0xd6, 0x2b, 0x6b, 0xbd, + 0x0a, 0x6b, 0x89, 0x08, 0x58, 0xe2, 0x11, 0x5f, 0x02, 0xec, 0x4e, 0x00, + 0xc9, 0x38, 0x19, 0x3e, 0xb5, 0x81, 0xa7, 0x41, 0x2d, 0xd7, 0x89, 0x34, + 0x6b, 0x68, 0x26, 0x30, 0xcd, 0x2c, 0xf1, 0x24, 0x72, 0x8f, 0xe0, 0x63, + 0x2e, 0x03, 0x7e, 0x07, 0x9a, 0xe8, 0x65, 0x8f, 0x4e, 0x68, 0xd8, 0xe8, + 0xba, 0xac, 0x72, 0x5f, 0xa0, 0x2f, 0x12, 0x4b, 0xa7, 0x88, 0x8b, 0x91, + 0xce, 0x15, 0xb2, 0x46, 0xec, 0x64, 0x8c, 0xf5, 0xc6, 0x3a, 0x91, 0x48, + 0x64, 0x3a, 0x3c, 0xd0, 0x5d, 0x5f, 0x2c, 0x16, 0xd6, 0xc3, 0x4f, 0xd5, + 0x63, 0x9d, 0x2d, 0xcc, 0x51, 0x3b, 0x3c, 0x57, 0x01, 0xdc, 0x23, 0x29, + 0x0e, 0x4e, 0x3a, 0xfa, 0x90, 0x7d, 0x2b, 0x53, 0x5c, 0xf0, 0xbc, 0x5a, + 0x4d, 0xad, 0xd5, 0xa6, 0x6c, 0xa4, 0xdd, 0x09, 0xbf, 0xb0, 0xf2, 0x64, + 0x63, 0x22, 0x45, 0xb8, 0x6f, 0x57, 0xc6, 0x57, 0x85, 0xec, 0x7f, 0x03, + 0xc6, 0x0f, 0x31, 0xa5, 0x14, 0x9b, 0x42, 0xd4, 0xa3, 0x89, 0x19, 0xef, + 0xde, 0x48, 0xde, 0x42, 0xca, 0x58, 0xb4, 0x59, 0xfe, 0x1c, 0x74, 0x3b, + 0x88, 0xce, 0x7a, 0x8e, 0xe3, 0xa1, 0xe9, 0x60, 0xbb, 0xd2, 0xa6, 0xd6, + 0xd6, 0x29, 0xc5, 0xeb, 0xc1, 0x63, 0xa6, 0xcf, 0x15, 0xec, 0xf3, 0x28, + 0x0d, 0x24, 0x85, 0x89, 0x5d, 0xf9, 0xc9, 0x20, 0x33, 0x2a, 0x8e, 0xfc, + 0x0a, 0x02, 0xd6, 0x38, 0xbf, 0xca, 0x93, 0x3d, 0xa9, 0x71, 0xcd, 0x23, + 0x1f, 0xad, 0x31, 0x12, 0x5a, 0xda, 0xcf, 0x7d, 0x79, 0x15, 0xa5, 0xb2, + 0x19, 0x26, 0x95, 0x82, 0x22, 0x8e, 0xe4, 0xd7, 0xd2, 0x3e, 0x1f, 0xd1, + 0xe2, 0xd0, 0x74, 0x3b, 0x5d, 0x3a, 0x20, 0x3f, 0x74, 0x9f, 0x3b, 0x0f, + 0xe2, 0x63, 0xd4, 0xfe, 0x75, 0xe7, 0x3f, 0x09, 0xfc, 0x34, 0x1d, 0xe4, + 0xd7, 0xee, 0x50, 0xe1, 0x73, 0x1d, 0xb0, 0x23, 0xbf, 0x76, 0xfe, 0x9f, + 0x9d, 0x7a, 0xcd, 0x21, 0x85, 0x14, 0x51, 0x40, 0x05, 0x14, 0x51, 0x40, + 0x05, 0x14, 0x51, 0x40, 0x05, 0x14, 0x51, 0x40, 0x1c, 0x67, 0xc4, 0x4f, + 0x0d, 0xae, 0xb3, 0xa2, 0x35, 0xcc, 0x4b, 0x9b, 0x9b, 0x65, 0x27, 0x20, + 0x72, 0x57, 0xbf, 0xe5, 0xd6, 0xbc, 0x23, 0x05, 0x1c, 0xa3, 0x70, 0x41, + 0xc1, 0xaf, 0xaa, 0x88, 0x04, 0x10, 0x46, 0x41, 0xea, 0x2b, 0xc2, 0x3e, + 0x21, 0xf8, 0x52, 0x5d, 0x13, 0x56, 0x6b, 0xb8, 0x23, 0xcd, 0x9c, 0xec, + 0x4a, 0x90, 0x38, 0x53, 0xe9, 0x4c, 0x0e, 0x3e, 0xba, 0x45, 0xbd, 0xba, + 0xbb, 0xb2, 0xb4, 0xd4, 0xf4, 0xeb, 0xa9, 0xed, 0xf5, 0x1d, 0x3e, 0x15, + 0xb7, 0xb9, 0xfb, 0x32, 0x91, 0x24, 0x90, 0x82, 0xaa, 0xa5, 0x71, 0xc1, + 0xc2, 0xe0, 0x7e, 0x04, 0xd7, 0x30, 0xac, 0x2a, 0xde, 0x9d, 0xa9, 0x5d, + 0xe9, 0x37, 0xd1, 0x5e, 0x59, 0x4c, 0xd1, 0x4d, 0x1b, 0x02, 0x0a, 0x9e, + 0x0e, 0x0e, 0x70, 0x7d, 0x47, 0x1c, 0x8e, 0xf4, 0x08, 0xeb, 0x75, 0xaf, + 0x0e, 0x49, 0x15, 0x95, 0xbf, 0x8b, 0x64, 0x7d, 0x4a, 0xee, 0x39, 0x95, + 0x67, 0x86, 0xec, 0xdf, 0x22, 0xc9, 0xb4, 0x30, 0x50, 0xd8, 0x31, 0xe4, + 0x60, 0x94, 0x18, 0xf7, 0xf6, 0x35, 0x85, 0x79, 0xe2, 0x4b, 0xcb, 0x9b, + 0xab, 0x3b, 0x9f, 0xb4, 0xdf, 0xc9, 0x2d, 0xab, 0x97, 0x46, 0xbb, 0xba, + 0xf3, 0x48, 0xce, 0x38, 0x18, 0x55, 0xc0, 0xe3, 0x9f, 0x5a, 0xb7, 0x16, + 0xb1, 0x67, 0x34, 0x68, 0x60, 0xb8, 0x9f, 0x47, 0x9e, 0x38, 0x3c, 0xb4, + 0x48, 0x8b, 0x4b, 0x6c, 0x7e, 0x6f, 0x98, 0x6c, 0x62, 0xc4, 0x6e, 0x5c, + 0x77, 0xc1, 0x61, 0xce, 0x01, 0xc8, 0xd0, 0x2c, 0xe7, 0x49, 0x8e, 0x67, + 0xd5, 0x3c, 0x2b, 0x1c, 0x0e, 0xfb, 0x4b, 0x0d, 0x36, 0x23, 0x72, 0xa9, + 0x8e, 0x18, 0xc6, 0x17, 0xae, 0x78, 0xc0, 0xe9, 0xf4, 0xa4, 0x32, 0x5d, + 0x3f, 0xc3, 0x2d, 0x06, 0x91, 0x27, 0x8a, 0xe1, 0x4b, 0xfd, 0x36, 0xd1, + 0x54, 0x17, 0x92, 0xda, 0xf1, 0x49, 0x1b, 0x8e, 0x30, 0xaa, 0x13, 0x38, + 0x3d, 0x81, 0x3e, 0x99, 0x3d, 0xeb, 0x0e, 0x27, 0x6d, 0x13, 0x43, 0x99, + 0xe4, 0x2d, 0xfd, 0xab, 0xaa, 0x83, 0x9f, 0x35, 0x0e, 0xf4, 0xb7, 0x25, + 0xd5, 0xf7, 0x13, 0xfc, 0x4c, 0x54, 0x7e, 0x19, 0xf6, 0x35, 0x66, 0x6d, + 0x7a, 0x1b, 0x59, 0x99, 0x8d, 0xc4, 0xba, 0xd4, 0xee, 0xaa, 0x64, 0x7b, + 0x87, 0x91, 0x2d, 0xf7, 0x83, 0x90, 0xca, 0x8a, 0x54, 0x9c, 0x74, 0xe7, + 0x1c, 0xe7, 0x8f, 0x5e, 0x7e, 0xf6, 0xf6, 0xe7, 0x51, 0xbd, 0x96, 0xf2, + 0xf2, 0x66, 0x9a, 0xe2, 0x56, 0xdc, 0xee, 0xdd, 0x49, 0xff, 0x00, 0x3d, + 0xbb, 0x51, 0x60, 0xb9, 0x13, 0x1c, 0x0a, 0xbb, 0xa1, 0xe9, 0x17, 0x1a, + 0xee, 0xb3, 0x6f, 0xa7, 0xdb, 0x83, 0xba, 0x56, 0xf9, 0x9b, 0xfb, 0xab, + 0xdc, 0x9f, 0xc2, 0xa8, 0x12, 0x49, 0xc0, 0x19, 0x24, 0xf1, 0x5e, 0xdb, + 0xf0, 0xd7, 0xc2, 0x4d, 0xa2, 0x69, 0xcd, 0xa8, 0xde, 0xc6, 0x56, 0xfa, + 0xe8, 0x0c, 0x2b, 0x0e, 0x63, 0x4e, 0xc3, 0xea, 0x7b, 0xd3, 0x03, 0xb3, + 0xb0, 0xb1, 0x83, 0x4d, 0xb0, 0x82, 0xca, 0xd9, 0x02, 0xc3, 0x0a, 0x04, + 0x50, 0x2a, 0xcd, 0x14, 0x52, 0x00, 0xa2, 0x8a, 0x28, 0x00, 0xa2, 0x8a, + 0x28, 0x00, 0xa2, 0x8a, 0x28, 0x00, 0xa2, 0x8a, 0x28, 0x00, 0xa8, 0x2f, + 0x2c, 0xed, 0xef, 0xed, 0x5e, 0xda, 0xea, 0x14, 0x9a, 0x17, 0x18, 0x64, + 0x71, 0x90, 0x6a, 0x7a, 0x28, 0x03, 0xcc, 0xb5, 0x5f, 0x83, 0xf6, 0xb3, + 0xcc, 0xd2, 0x69, 0xba, 0x83, 0xdb, 0x86, 0x39, 0x11, 0xca, 0x9b, 0x80, + 0xfa, 0x11, 0x8a, 0xc4, 0x93, 0xe0, 0xfe, 0xb4, 0xa7, 0xf7, 0x77, 0xf6, + 0x4c, 0x3f, 0xda, 0xdc, 0x3f, 0xa1, 0xaf, 0x68, 0xa2, 0x80, 0x3c, 0x54, + 0x7c, 0x21, 0xd7, 0x80, 0xff, 0x00, 0x8f, 0xcb, 0x0c, 0xff, 0x00, 0xbe, + 0xdf, 0xfc, 0x4d, 0x07, 0xe1, 0x0e, 0xbd, 0xff, 0x00, 0x3f, 0x96, 0x3f, + 0xf7, 0xd3, 0x7f, 0x85, 0x7b, 0x55, 0x14, 0x01, 0xe2, 0xa3, 0xe1, 0x0e, + 0xbb, 0xff, 0x00, 0x3f, 0x96, 0x03, 0xfe, 0x04, 0xdf, 0xfc, 0x4d, 0x58, + 0x87, 0xe0, 0xee, 0xa2, 0xcd, 0xfb, 0xfd, 0x52, 0xd9, 0x17, 0xbe, 0xc4, + 0x2d, 0xfe, 0x15, 0xec, 0x54, 0x50, 0x07, 0x1d, 0xe1, 0xcf, 0x87, 0x3a, + 0x3e, 0x83, 0x2a, 0xdc, 0x49, 0xba, 0xf2, 0xe9, 0x79, 0x59, 0x26, 0x03, + 0x09, 0xf4, 0x15, 0xd8, 0xd1, 0x45, 0x00, 0x14, 0x51, 0x45, 0x00, 0x14, + 0x51, 0x45, 0x00, 0x14, 0x51, 0x45, 0x00, 0x7f, 0xff, 0xd9, 0xff, 0xe1, + 0x0c, 0x77, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6e, 0x73, 0x2e, + 0x61, 0x64, 0x6f, 0x62, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x78, 0x61, + 0x70, 0x2f, 0x31, 0x2e, 0x30, 0x2f, 0x00, 0x3c, 0x3f, 0x78, 0x70, 0x61, + 0x63, 0x6b, 0x65, 0x74, 0x20, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x3d, 0x22, + 0xef, 0xbb, 0xbf, 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x57, 0x35, 0x4d, + 0x30, 0x4d, 0x70, 0x43, 0x65, 0x68, 0x69, 0x48, 0x7a, 0x72, 0x65, 0x53, + 0x7a, 0x4e, 0x54, 0x63, 0x7a, 0x6b, 0x63, 0x39, 0x64, 0x22, 0x3f, 0x3e, + 0x20, 0x3c, 0x78, 0x3a, 0x78, 0x6d, 0x70, 0x6d, 0x65, 0x74, 0x61, 0x20, + 0x78, 0x6d, 0x6c, 0x6e, 0x73, 0x3a, 0x78, 0x3d, 0x22, 0x61, 0x64, 0x6f, + 0x62, 0x65, 0x3a, 0x6e, 0x73, 0x3a, 0x6d, 0x65, 0x74, 0x61, 0x2f, 0x22, + 0x20, 0x78, 0x3a, 0x78, 0x6d, 0x70, 0x74, 0x6b, 0x3d, 0x22, 0x58, 0x4d, + 0x50, 0x20, 0x43, 0x6f, 0x72, 0x65, 0x20, 0x34, 0x2e, 0x34, 0x2e, 0x30, + 0x2d, 0x45, 0x78, 0x69, 0x76, 0x32, 0x22, 0x3e, 0x20, 0x3c, 0x72, 0x64, + 0x66, 0x3a, 0x52, 0x44, 0x46, 0x20, 0x78, 0x6d, 0x6c, 0x6e, 0x73, 0x3a, + 0x72, 0x64, 0x66, 0x3d, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, + 0x77, 0x77, 0x77, 0x2e, 0x77, 0x33, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x31, + 0x39, 0x39, 0x39, 0x2f, 0x30, 0x32, 0x2f, 0x32, 0x32, 0x2d, 0x72, 0x64, + 0x66, 0x2d, 0x73, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x2d, 0x6e, 0x73, 0x23, + 0x22, 0x3e, 0x20, 0x3c, 0x72, 0x64, 0x66, 0x3a, 0x44, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x64, 0x66, 0x3a, + 0x61, 0x62, 0x6f, 0x75, 0x74, 0x3d, 0x22, 0x22, 0x20, 0x78, 0x6d, 0x6c, + 0x6e, 0x73, 0x3a, 0x78, 0x6d, 0x70, 0x4d, 0x4d, 0x3d, 0x22, 0x68, 0x74, + 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6e, 0x73, 0x2e, 0x61, 0x64, 0x6f, 0x62, + 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x78, 0x61, 0x70, 0x2f, 0x31, 0x2e, + 0x30, 0x2f, 0x6d, 0x6d, 0x2f, 0x22, 0x20, 0x78, 0x6d, 0x6c, 0x6e, 0x73, + 0x3a, 0x73, 0x74, 0x45, 0x76, 0x74, 0x3d, 0x22, 0x68, 0x74, 0x74, 0x70, + 0x3a, 0x2f, 0x2f, 0x6e, 0x73, 0x2e, 0x61, 0x64, 0x6f, 0x62, 0x65, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x78, 0x61, 0x70, 0x2f, 0x31, 0x2e, 0x30, 0x2f, + 0x73, 0x54, 0x79, 0x70, 0x65, 0x2f, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x23, 0x22, 0x20, 0x78, 0x6d, + 0x6c, 0x6e, 0x73, 0x3a, 0x64, 0x63, 0x3d, 0x22, 0x68, 0x74, 0x74, 0x70, + 0x3a, 0x2f, 0x2f, 0x70, 0x75, 0x72, 0x6c, 0x2e, 0x6f, 0x72, 0x67, 0x2f, + 0x64, 0x63, 0x2f, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, + 0x31, 0x2e, 0x31, 0x2f, 0x22, 0x20, 0x78, 0x6d, 0x6c, 0x6e, 0x73, 0x3a, + 0x47, 0x49, 0x4d, 0x50, 0x3d, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, + 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x69, 0x6d, 0x70, 0x2e, 0x6f, 0x72, + 0x67, 0x2f, 0x78, 0x6d, 0x70, 0x2f, 0x22, 0x20, 0x78, 0x6d, 0x6c, 0x6e, + 0x73, 0x3a, 0x78, 0x6d, 0x70, 0x3d, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, + 0x2f, 0x2f, 0x6e, 0x73, 0x2e, 0x61, 0x64, 0x6f, 0x62, 0x65, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x78, 0x61, 0x70, 0x2f, 0x31, 0x2e, 0x30, 0x2f, 0x22, + 0x20, 0x78, 0x6d, 0x70, 0x4d, 0x4d, 0x3a, 0x44, 0x6f, 0x63, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x49, 0x44, 0x3d, 0x22, 0x67, 0x69, 0x6d, 0x70, 0x3a, + 0x64, 0x6f, 0x63, 0x69, 0x64, 0x3a, 0x67, 0x69, 0x6d, 0x70, 0x3a, 0x61, + 0x64, 0x38, 0x61, 0x34, 0x35, 0x64, 0x66, 0x2d, 0x65, 0x32, 0x31, 0x35, + 0x2d, 0x34, 0x61, 0x62, 0x38, 0x2d, 0x62, 0x39, 0x39, 0x39, 0x2d, 0x33, + 0x38, 0x63, 0x32, 0x63, 0x32, 0x66, 0x31, 0x30, 0x35, 0x35, 0x35, 0x22, + 0x20, 0x78, 0x6d, 0x70, 0x4d, 0x4d, 0x3a, 0x49, 0x6e, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x49, 0x44, 0x3d, 0x22, 0x78, 0x6d, 0x70, 0x2e, 0x69, + 0x69, 0x64, 0x3a, 0x64, 0x35, 0x38, 0x36, 0x64, 0x66, 0x33, 0x65, 0x2d, + 0x64, 0x32, 0x61, 0x64, 0x2d, 0x34, 0x62, 0x61, 0x63, 0x2d, 0x62, 0x34, + 0x35, 0x39, 0x2d, 0x39, 0x36, 0x32, 0x36, 0x63, 0x63, 0x65, 0x35, 0x66, + 0x65, 0x33, 0x31, 0x22, 0x20, 0x78, 0x6d, 0x70, 0x4d, 0x4d, 0x3a, 0x4f, + 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x44, 0x6f, 0x63, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x49, 0x44, 0x3d, 0x22, 0x78, 0x6d, 0x70, 0x2e, 0x64, + 0x69, 0x64, 0x3a, 0x30, 0x36, 0x31, 0x31, 0x31, 0x32, 0x61, 0x36, 0x2d, + 0x61, 0x32, 0x65, 0x30, 0x2d, 0x34, 0x35, 0x36, 0x63, 0x2d, 0x39, 0x66, + 0x33, 0x38, 0x2d, 0x32, 0x61, 0x64, 0x63, 0x66, 0x39, 0x62, 0x62, 0x38, + 0x38, 0x34, 0x61, 0x22, 0x20, 0x64, 0x63, 0x3a, 0x46, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x3d, 0x22, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x6a, 0x70, + 0x65, 0x67, 0x22, 0x20, 0x47, 0x49, 0x4d, 0x50, 0x3a, 0x41, 0x50, 0x49, + 0x3d, 0x22, 0x32, 0x2e, 0x30, 0x22, 0x20, 0x47, 0x49, 0x4d, 0x50, 0x3a, + 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x3d, 0x22, 0x4c, 0x69, + 0x6e, 0x75, 0x78, 0x22, 0x20, 0x47, 0x49, 0x4d, 0x50, 0x3a, 0x54, 0x69, + 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x3d, 0x22, 0x31, 0x36, 0x35, + 0x30, 0x37, 0x34, 0x31, 0x34, 0x39, 0x31, 0x37, 0x38, 0x34, 0x38, 0x38, + 0x34, 0x22, 0x20, 0x47, 0x49, 0x4d, 0x50, 0x3a, 0x56, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x3d, 0x22, 0x32, 0x2e, 0x31, 0x30, 0x2e, 0x33, 0x30, + 0x22, 0x20, 0x78, 0x6d, 0x70, 0x3a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, + 0x72, 0x54, 0x6f, 0x6f, 0x6c, 0x3d, 0x22, 0x47, 0x49, 0x4d, 0x50, 0x20, + 0x32, 0x2e, 0x31, 0x30, 0x22, 0x3e, 0x20, 0x3c, 0x78, 0x6d, 0x70, 0x4d, + 0x4d, 0x3a, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x3e, 0x20, 0x3c, + 0x72, 0x64, 0x66, 0x3a, 0x53, 0x65, 0x71, 0x3e, 0x20, 0x3c, 0x72, 0x64, + 0x66, 0x3a, 0x6c, 0x69, 0x20, 0x73, 0x74, 0x45, 0x76, 0x74, 0x3a, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3d, 0x22, 0x73, 0x61, 0x76, 0x65, 0x64, + 0x22, 0x20, 0x73, 0x74, 0x45, 0x76, 0x74, 0x3a, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x64, 0x3d, 0x22, 0x2f, 0x22, 0x20, 0x73, 0x74, 0x45, 0x76, + 0x74, 0x3a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x44, + 0x3d, 0x22, 0x78, 0x6d, 0x70, 0x2e, 0x69, 0x69, 0x64, 0x3a, 0x61, 0x65, + 0x31, 0x36, 0x62, 0x33, 0x36, 0x37, 0x2d, 0x63, 0x64, 0x35, 0x65, 0x2d, + 0x34, 0x62, 0x39, 0x65, 0x2d, 0x61, 0x66, 0x39, 0x61, 0x2d, 0x61, 0x65, + 0x30, 0x66, 0x37, 0x36, 0x63, 0x38, 0x35, 0x65, 0x30, 0x66, 0x22, 0x20, + 0x73, 0x74, 0x45, 0x76, 0x74, 0x3a, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, + 0x72, 0x65, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x3d, 0x22, 0x47, 0x69, 0x6d, + 0x70, 0x20, 0x32, 0x2e, 0x31, 0x30, 0x20, 0x28, 0x4c, 0x69, 0x6e, 0x75, + 0x78, 0x29, 0x22, 0x20, 0x73, 0x74, 0x45, 0x76, 0x74, 0x3a, 0x77, 0x68, + 0x65, 0x6e, 0x3d, 0x22, 0x32, 0x30, 0x32, 0x32, 0x2d, 0x30, 0x34, 0x2d, + 0x32, 0x33, 0x54, 0x32, 0x31, 0x3a, 0x31, 0x38, 0x3a, 0x31, 0x31, 0x2b, + 0x30, 0x32, 0x3a, 0x30, 0x30, 0x22, 0x2f, 0x3e, 0x20, 0x3c, 0x2f, 0x72, + 0x64, 0x66, 0x3a, 0x53, 0x65, 0x71, 0x3e, 0x20, 0x3c, 0x2f, 0x78, 0x6d, + 0x70, 0x4d, 0x4d, 0x3a, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x3e, + 0x20, 0x3c, 0x2f, 0x72, 0x64, 0x66, 0x3a, 0x44, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3e, 0x20, 0x3c, 0x2f, 0x72, 0x64, + 0x66, 0x3a, 0x52, 0x44, 0x46, 0x3e, 0x20, 0x3c, 0x2f, 0x78, 0x3a, 0x78, + 0x6d, 0x70, 0x6d, 0x65, 0x74, 0x61, 0x3e, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x3c, 0x3f, 0x78, 0x70, 0x61, 0x63, 0x6b, 0x65, + 0x74, 0x20, 0x65, 0x6e, 0x64, 0x3d, 0x22, 0x77, 0x22, 0x3f, 0x3e, 0xff, + 0xe2, 0x02, 0xb0, 0x49, 0x43, 0x43, 0x5f, 0x50, 0x52, 0x4f, 0x46, 0x49, + 0x4c, 0x45, 0x00, 0x01, 0x01, 0x00, 0x00, 0x02, 0xa0, 0x6c, 0x63, 0x6d, + 0x73, 0x04, 0x30, 0x00, 0x00, 0x6d, 0x6e, 0x74, 0x72, 0x52, 0x47, 0x42, + 0x20, 0x58, 0x59, 0x5a, 0x20, 0x07, 0xe6, 0x00, 0x04, 0x00, 0x17, 0x00, + 0x13, 0x00, 0x08, 0x00, 0x21, 0x61, 0x63, 0x73, 0x70, 0x41, 0x50, 0x50, + 0x4c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf6, 0xd6, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0xd3, + 0x2d, 0x6c, 0x63, 0x6d, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0d, 0x64, 0x65, 0x73, 0x63, 0x00, 0x00, 0x01, + 0x20, 0x00, 0x00, 0x00, 0x40, 0x63, 0x70, 0x72, 0x74, 0x00, 0x00, 0x01, + 0x60, 0x00, 0x00, 0x00, 0x36, 0x77, 0x74, 0x70, 0x74, 0x00, 0x00, 0x01, + 0x98, 0x00, 0x00, 0x00, 0x14, 0x63, 0x68, 0x61, 0x64, 0x00, 0x00, 0x01, + 0xac, 0x00, 0x00, 0x00, 0x2c, 0x72, 0x58, 0x59, 0x5a, 0x00, 0x00, 0x01, + 0xd8, 0x00, 0x00, 0x00, 0x14, 0x62, 0x58, 0x59, 0x5a, 0x00, 0x00, 0x01, + 0xec, 0x00, 0x00, 0x00, 0x14, 0x67, 0x58, 0x59, 0x5a, 0x00, 0x00, 0x02, + 0x00, 0x00, 0x00, 0x00, 0x14, 0x72, 0x54, 0x52, 0x43, 0x00, 0x00, 0x02, + 0x14, 0x00, 0x00, 0x00, 0x20, 0x67, 0x54, 0x52, 0x43, 0x00, 0x00, 0x02, + 0x14, 0x00, 0x00, 0x00, 0x20, 0x62, 0x54, 0x52, 0x43, 0x00, 0x00, 0x02, + 0x14, 0x00, 0x00, 0x00, 0x20, 0x63, 0x68, 0x72, 0x6d, 0x00, 0x00, 0x02, + 0x34, 0x00, 0x00, 0x00, 0x24, 0x64, 0x6d, 0x6e, 0x64, 0x00, 0x00, 0x02, + 0x58, 0x00, 0x00, 0x00, 0x24, 0x64, 0x6d, 0x64, 0x64, 0x00, 0x00, 0x02, + 0x7c, 0x00, 0x00, 0x00, 0x24, 0x6d, 0x6c, 0x75, 0x63, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0c, 0x65, 0x6e, 0x55, + 0x53, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x47, 0x00, + 0x49, 0x00, 0x4d, 0x00, 0x50, 0x00, 0x20, 0x00, 0x62, 0x00, 0x75, 0x00, + 0x69, 0x00, 0x6c, 0x00, 0x74, 0x00, 0x2d, 0x00, 0x69, 0x00, 0x6e, 0x00, + 0x20, 0x00, 0x73, 0x00, 0x52, 0x00, 0x47, 0x00, 0x42, 0x6d, 0x6c, 0x75, + 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x0c, 0x65, 0x6e, 0x55, 0x53, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x50, 0x00, 0x75, 0x00, 0x62, 0x00, 0x6c, 0x00, 0x69, 0x00, + 0x63, 0x00, 0x20, 0x00, 0x44, 0x00, 0x6f, 0x00, 0x6d, 0x00, 0x61, 0x00, + 0x69, 0x00, 0x6e, 0x00, 0x00, 0x58, 0x59, 0x5a, 0x20, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf6, 0xd6, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0xd3, + 0x2d, 0x73, 0x66, 0x33, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0c, + 0x42, 0x00, 0x00, 0x05, 0xde, 0xff, 0xff, 0xf3, 0x25, 0x00, 0x00, 0x07, + 0x93, 0x00, 0x00, 0xfd, 0x90, 0xff, 0xff, 0xfb, 0xa1, 0xff, 0xff, 0xfd, + 0xa2, 0x00, 0x00, 0x03, 0xdc, 0x00, 0x00, 0xc0, 0x6e, 0x58, 0x59, 0x5a, + 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6f, 0xa0, 0x00, 0x00, 0x38, + 0xf5, 0x00, 0x00, 0x03, 0x90, 0x58, 0x59, 0x5a, 0x20, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x24, 0x9f, 0x00, 0x00, 0x0f, 0x84, 0x00, 0x00, 0xb6, + 0xc4, 0x58, 0x59, 0x5a, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x62, + 0x97, 0x00, 0x00, 0xb7, 0x87, 0x00, 0x00, 0x18, 0xd9, 0x70, 0x61, 0x72, + 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x66, + 0x66, 0x00, 0x00, 0xf2, 0xa7, 0x00, 0x00, 0x0d, 0x59, 0x00, 0x00, 0x13, + 0xd0, 0x00, 0x00, 0x0a, 0x5b, 0x63, 0x68, 0x72, 0x6d, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0xa3, 0xd7, 0x00, 0x00, 0x54, + 0x7c, 0x00, 0x00, 0x4c, 0xcd, 0x00, 0x00, 0x99, 0x9a, 0x00, 0x00, 0x26, + 0x67, 0x00, 0x00, 0x0f, 0x5c, 0x6d, 0x6c, 0x75, 0x63, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0c, 0x65, 0x6e, 0x55, + 0x53, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x47, 0x00, + 0x49, 0x00, 0x4d, 0x00, 0x50, 0x6d, 0x6c, 0x75, 0x63, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0c, 0x65, 0x6e, 0x55, + 0x53, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x73, 0x00, + 0x52, 0x00, 0x47, 0x00, 0x42, 0xff, 0xdb, 0x00, 0x43, 0x00, 0x03, 0x02, + 0x02, 0x03, 0x02, 0x02, 0x03, 0x03, 0x03, 0x03, 0x04, 0x03, 0x03, 0x04, + 0x05, 0x08, 0x05, 0x05, 0x04, 0x04, 0x05, 0x0a, 0x07, 0x07, 0x06, 0x08, + 0x0c, 0x0a, 0x0c, 0x0c, 0x0b, 0x0a, 0x0b, 0x0b, 0x0d, 0x0e, 0x12, 0x10, + 0x0d, 0x0e, 0x11, 0x0e, 0x0b, 0x0b, 0x10, 0x16, 0x10, 0x11, 0x13, 0x14, + 0x15, 0x15, 0x15, 0x0c, 0x0f, 0x17, 0x18, 0x16, 0x14, 0x18, 0x12, 0x14, + 0x15, 0x14, 0xff, 0xdb, 0x00, 0x43, 0x01, 0x03, 0x04, 0x04, 0x05, 0x04, + 0x05, 0x09, 0x05, 0x05, 0x09, 0x14, 0x0d, 0x0b, 0x0d, 0x14, 0x14, 0x14, + 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, + 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, + 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, + 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0xff, + 0xc2, 0x00, 0x11, 0x08, 0x01, 0x54, 0x00, 0xc8, 0x03, 0x01, 0x11, 0x00, + 0x02, 0x11, 0x01, 0x03, 0x11, 0x01, 0xff, 0xc4, 0x00, 0x1c, 0x00, 0x01, + 0x00, 0x01, 0x05, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x07, 0x08, 0x05, 0x06, + 0xff, 0xc4, 0x00, 0x17, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, + 0x03, 0xff, 0xda, 0x00, 0x0c, 0x03, 0x01, 0x00, 0x02, 0x10, 0x03, 0x10, + 0x00, 0x00, 0x01, 0xda, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x83, 0xce, 0x31, 0x13, 0x10, 0xa4, 0xa8, + 0xcb, 0x32, 0xd7, 0xd2, 0x2f, 0x00, 0x00, 0x00, 0x00, 0x41, 0xf0, 0x16, + 0x6b, 0x93, 0xe6, 0xeb, 0xc3, 0x4f, 0x38, 0xa0, 0x10, 0x48, 0x24, 0x15, + 0x1e, 0x91, 0xef, 0x2f, 0xd4, 0x46, 0xc8, 0x8f, 0xb7, 0x50, 0x00, 0x03, + 0x42, 0xd9, 0xa7, 0x6c, 0xa8, 0xa8, 0x80, 0x48, 0x04, 0x90, 0x41, 0x24, + 0x12, 0x52, 0x49, 0x49, 0xbd, 0x65, 0xdc, 0xd2, 0x80, 0x07, 0xcc, 0x59, + 0xc9, 0x56, 0x56, 0x52, 0x58, 0x32, 0x0a, 0xc1, 0x04, 0x80, 0x49, 0x49, + 0x50, 0x24, 0x82, 0x80, 0x76, 0x0e, 0x75, 0xec, 0x00, 0x0d, 0x59, 0x67, + 0x3a, 0x59, 0x90, 0x59, 0x2e, 0x10, 0x54, 0x63, 0xac, 0x03, 0x21, 0x31, + 0x96, 0xa2, 0xe2, 0x42, 0xdc, 0x4a, 0x16, 0xa4, 0xa8, 0xb2, 0x74, 0xec, + 0xbb, 0x02, 0x50, 0x06, 0xa7, 0xb3, 0x9e, 0x6c, 0xc9, 0x31, 0xca, 0xcb, + 0x66, 0x55, 0x62, 0xcb, 0x7d, 0x3c, 0xb9, 0xac, 0xeb, 0x30, 0xa5, 0xf4, + 0x2c, 0xa4, 0xb0, 0x4a, 0xd9, 0x8c, 0x9b, 0x32, 0x52, 0xc1, 0xd2, 0xb2, + 0xec, 0x89, 0x40, 0x1a, 0xa2, 0xce, 0x78, 0xb3, 0x24, 0xa4, 0xa8, 0xb6, + 0x54, 0x52, 0x64, 0x16, 0x16, 0xa3, 0x10, 0x83, 0x24, 0xb4, 0x49, 0x90, + 0x52, 0x92, 0x58, 0x3a, 0x56, 0x5d, 0x91, 0x28, 0x03, 0x54, 0x59, 0xce, + 0xf6, 0x64, 0x96, 0x8b, 0x30, 0x33, 0x6a, 0xd8, 0x20, 0xac, 0x92, 0x4a, + 0x4a, 0x89, 0x29, 0x20, 0x82, 0xd1, 0xd2, 0x92, 0xec, 0x89, 0x40, 0x1a, + 0x9e, 0xce, 0x78, 0xb3, 0x24, 0xa8, 0x92, 0x92, 0x0a, 0x49, 0x24, 0x02, + 0xa2, 0x09, 0x04, 0x02, 0x92, 0xc9, 0xd2, 0xf2, 0xec, 0x69, 0x40, 0x1a, + 0xa2, 0xce, 0x79, 0xb2, 0xe9, 0x6d, 0x44, 0x00, 0x08, 0x04, 0x92, 0x40, + 0x24, 0x02, 0xe2, 0x5b, 0x3a, 0x5a, 0x5d, 0x8d, 0x28, 0x03, 0x53, 0x59, + 0xcf, 0xb6, 0x79, 0xf2, 0xda, 0x50, 0x00, 0x00, 0x00, 0x00, 0x03, 0xd5, + 0xb2, 0x13, 0xa5, 0xa5, 0xd8, 0xd2, 0x80, 0x35, 0x2d, 0x9a, 0x0e, 0xcf, + 0x3a, 0x5c, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0xac, 0xca, 0x4e, + 0x93, 0x97, 0x62, 0xca, 0x00, 0xd5, 0x16, 0x68, 0x0b, 0x3c, 0xe9, 0x71, + 0x94, 0x00, 0x00, 0x00, 0x00, 0x00, 0xce, 0xb3, 0x2d, 0x3a, 0x4e, 0x5d, + 0x89, 0x28, 0x03, 0x54, 0x59, 0xa0, 0x2c, 0xf3, 0x97, 0x1a, 0x50, 0x00, + 0x00, 0x00, 0x00, 0x03, 0x3e, 0xcc, 0xa4, 0xe9, 0x5c, 0xdd, 0x84, 0xa0, + 0x0d, 0x4f, 0x66, 0x81, 0xb3, 0xce, 0x5c, 0x69, 0x40, 0x00, 0x00, 0x00, + 0x00, 0x0c, 0xeb, 0x32, 0x93, 0xa5, 0x73, 0x76, 0x1a, 0x80, 0x35, 0x3d, + 0x9a, 0x06, 0xcf, 0x35, 0x71, 0xe5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, + 0xac, 0xca, 0x4e, 0x96, 0xcd, 0xd8, 0x4a, 0x00, 0xd4, 0xf6, 0x68, 0x1b, + 0x3c, 0xc5, 0xb1, 0x28, 0x00, 0x00, 0x00, 0x00, 0x01, 0x9f, 0x66, 0x42, + 0x74, 0xbe, 0x6e, 0xc2, 0x50, 0x06, 0xa7, 0xb3, 0x40, 0xd9, 0xe5, 0xcd, + 0x59, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x42, 0xcc, 0x94, 0xe9, 0x5c, + 0xeb, 0x61, 0x00, 0x0d, 0x4f, 0x66, 0x80, 0xb3, 0xcc, 0x5b, 0x32, 0x80, + 0x00, 0x00, 0x00, 0x00, 0x19, 0xf6, 0x64, 0xa7, 0x4b, 0xe7, 0x5b, 0x04, + 0x00, 0x6a, 0x7b, 0x34, 0x05, 0x9e, 0x72, 0xe3, 0xca, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x67, 0xd9, 0x92, 0x9d, 0x2f, 0x9d, 0x6c, 0x10, 0x01, 0xa9, + 0xec, 0xd0, 0x16, 0x79, 0xcb, 0x8f, 0x28, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x9f, 0x66, 0x42, 0x74, 0xc4, 0xbb, 0x06, 0x50, 0x06, 0xa7, 0xb3, 0x40, + 0xd9, 0xe6, 0xae, 0x3c, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x06, 0x7d, 0x99, + 0x09, 0xd3, 0x12, 0xec, 0x19, 0x40, 0x1a, 0x9e, 0xcd, 0x03, 0x67, 0x9a, + 0xb8, 0xf2, 0x80, 0x00, 0x00, 0x00, 0x00, 0x19, 0xf6, 0x64, 0xa7, 0x4b, + 0xe7, 0x5b, 0x04, 0x00, 0x6a, 0x7b, 0x34, 0x0d, 0x9e, 0x6a, 0xe3, 0xca, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7a, 0x16, 0x64, 0x27, 0x4b, 0xe7, 0x5b, + 0x04, 0x00, 0x6a, 0x8b, 0x34, 0x05, 0x98, 0x4b, 0x85, 0x28, 0x00, 0x00, + 0x00, 0x00, 0x01, 0xe8, 0xd9, 0x79, 0x3a, 0x67, 0x37, 0x60, 0x28, 0x03, + 0x53, 0xd9, 0xcf, 0x76, 0x66, 0xdb, 0xe2, 0x66, 0xc2, 0x49, 0x6d, 0x64, + 0xad, 0x29, 0x5a, 0x49, 0x20, 0x00, 0x01, 0xea, 0x59, 0x6e, 0x4e, 0x9f, + 0x97, 0xef, 0xd4, 0x01, 0xa9, 0xec, 0xe7, 0xab, 0x33, 0x0b, 0xd6, 0xc2, + 0x41, 0x0a, 0x21, 0x11, 0x16, 0xca, 0x80, 0x82, 0x4d, 0x51, 0x25, 0xa3, + 0x1a, 0x3a, 0x82, 0x5f, 0xbf, 0x50, 0x06, 0xac, 0xb3, 0x9c, 0xec, 0xbc, + 0x57, 0x54, 0x90, 0x44, 0x40, 0x24, 0x92, 0x5a, 0x82, 0x41, 0x05, 0x49, + 0x4a, 0x52, 0x5a, 0x8e, 0xa4, 0x97, 0xef, 0x14, 0x01, 0xf2, 0x16, 0x72, + 0x6d, 0x92, 0x53, 0x2a, 0xa4, 0x10, 0x0c, 0xbb, 0x2d, 0xc1, 0xac, 0x68, + 0xa8, 0x12, 0x82, 0x2b, 0x21, 0x2c, 0x4d, 0x76, 0x4c, 0x7b, 0x00, 0x03, + 0xcc, 0x38, 0xeb, 0x52, 0xd9, 0x7d, 0x05, 0xb0, 0x41, 0x26, 0x45, 0x61, + 0x97, 0xd6, 0x89, 0x64, 0x24, 0x20, 0x82, 0xb2, 0xf4, 0xd7, 0x68, 0x44, + 0x80, 0x08, 0x39, 0x2f, 0x59, 0xf9, 0xb5, 0xad, 0x24, 0xa0, 0x90, 0x5a, + 0x5c, 0x93, 0x09, 0x32, 0x8b, 0x2b, 0x74, 0x84, 0xa8, 0x82, 0x4a, 0x4f, + 0xbb, 0x9a, 0xe9, 0xd8, 0x00, 0x01, 0xa4, 0x75, 0x34, 0x9a, 0x5a, 0x5a, + 0x60, 0x42, 0x91, 0x59, 0x05, 0xb4, 0xac, 0x2e, 0x3c, 0x0a, 0x88, 0x05, + 0xfb, 0x3a, 0x0f, 0x3a, 0xdb, 0x00, 0x00, 0x0f, 0x02, 0xce, 0x42, 0xb2, + 0xdc, 0x4d, 0x40, 0x85, 0x65, 0x47, 0xaa, 0xbf, 0x61, 0x1f, 0x28, 0x79, + 0x95, 0xe6, 0xa5, 0x54, 0x88, 0x24, 0xc9, 0x6b, 0xb2, 0xa3, 0x30, 0x00, + 0x00, 0x39, 0xa3, 0x53, 0x59, 0xc9, 0x70, 0x50, 0x83, 0xe9, 0xb3, 0x70, + 0x0f, 0x6e, 0xbc, 0x52, 0xec, 0x79, 0xb5, 0x88, 0x82, 0x4a, 0x4d, 0xc8, + 0xd6, 0xfd, 0x80, 0x00, 0x00, 0x7c, 0xb5, 0x9c, 0x95, 0x65, 0x11, 0x50, + 0xaf, 0xa0, 0x97, 0xed, 0x32, 0xf8, 0x04, 0xf7, 0xed, 0xf2, 0x24, 0xfa, + 0xbb, 0x70, 0x4f, 0x85, 0xb2, 0x01, 0x90, 0xd7, 0x62, 0x47, 0xa8, 0x00, + 0x00, 0x00, 0x73, 0xd6, 0x9a, 0x82, 0x66, 0xe9, 0x35, 0xf4, 0x32, 0xf8, + 0xe6, 0x2e, 0x5f, 0x6e, 0xd7, 0xc2, 0xcd, 0xfd, 0x56, 0xf9, 0x7b, 0x52, + 0xeb, 0xeb, 0x99, 0x2d, 0xb5, 0xbd, 0xe3, 0x75, 0x80, 0x00, 0x00, 0x03, + 0xc9, 0x39, 0x0b, 0x59, 0xc1, 0x8a, 0xcf, 0xa0, 0x59, 0x8c, 0x19, 0x73, + 0xac, 0xc3, 0xcf, 0x5c, 0x8a, 0xa6, 0xf3, 0xf1, 0x2e, 0x69, 0x3d, 0x96, + 0xbb, 0x02, 0x2f, 0x80, 0x00, 0x00, 0x00, 0x69, 0xaa, 0xd0, 0x0c, 0xdc, + 0x32, 0x0f, 0xa3, 0x97, 0xe8, 0x4f, 0x91, 0xaf, 0x46, 0x3d, 0x25, 0xf9, + 0x5b, 0x3c, 0xa4, 0xb2, 0xd7, 0x4c, 0x46, 0xcc, 0x00, 0x00, 0x00, 0x00, + 0x18, 0xe7, 0x28, 0x5c, 0xfc, 0x93, 0x55, 0xb3, 0x98, 0x7a, 0x52, 0xe7, + 0x1e, 0x79, 0x8f, 0x5e, 0x5a, 0x41, 0xb0, 0x1a, 0xea, 0x18, 0x90, 0x00, + 0x00, 0x00, 0x00, 0x3c, 0xd3, 0x48, 0x57, 0xc5, 0x18, 0x44, 0xa1, 0x45, + 0x66, 0x71, 0xb0, 0x63, 0x74, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x07, 0xff, 0xc4, 0x00, 0x31, 0x10, 0x00, 0x00, 0x05, + 0x02, 0x03, 0x07, 0x03, 0x04, 0x02, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x11, 0x14, 0x20, 0x10, + 0x12, 0x13, 0x30, 0x33, 0x34, 0x35, 0x07, 0x21, 0x32, 0x15, 0x16, 0x31, + 0x41, 0x22, 0x24, 0x23, 0x42, 0x50, 0x43, 0xff, 0xda, 0x00, 0x08, 0x01, + 0x01, 0x00, 0x01, 0x05, 0x02, 0xff, 0x00, 0x82, 0xa7, 0xdb, 0x6c, 0x2e, + 0xb1, 0x05, 0xb0, 0xab, 0x8e, 0x98, 0x90, 0x77, 0x65, 0x24, 0x87, 0xdd, + 0xd4, 0x90, 0x57, 0x65, 0x24, 0xc2, 0x6e, 0x3a, 0x62, 0x82, 0x2b, 0x10, + 0x5c, 0x08, 0x79, 0xb7, 0x39, 0xb5, 0x5b, 0xd2, 0x0d, 0x34, 0xe4, 0xfa, + 0x87, 0x35, 0xc0, 0xf5, 0xdd, 0x54, 0x7c, 0x3b, 0x54, 0x96, 0xf8, 0x35, + 0xa8, 0xc6, 0x26, 0x3d, 0xc7, 0xb8, 0xc4, 0x62, 0x63, 0x11, 0xbc, 0x60, + 0x9c, 0x51, 0x06, 0xaa, 0xf3, 0x58, 0x0c, 0x5e, 0x35, 0x56, 0x04, 0x5f, + 0x51, 0x65, 0x24, 0xe9, 0x57, 0x74, 0x1a, 0xa2, 0xb5, 0xde, 0x17, 0x52, + 0x9d, 0x73, 0xf2, 0x30, 0x18, 0x72, 0x70, 0x18, 0x0c, 0x06, 0x03, 0x00, + 0x46, 0x69, 0x3b, 0x36, 0xe9, 0x53, 0xea, 0xd3, 0x72, 0x4f, 0xfa, 0x75, + 0x24, 0xd4, 0x6b, 0x51, 0x05, 0xab, 0x70, 0x8b, 0x88, 0xa0, 0x93, 0xc7, + 0x97, 0x80, 0x32, 0x06, 0x1a, 0x75, 0x4c, 0x3b, 0x48, 0x9b, 0xf5, 0x0a, + 0x6e, 0x8b, 0xfd, 0x58, 0x53, 0xd2, 0x08, 0x39, 0xba, 0xa5, 0x1b, 0xc9, + 0xc4, 0x9c, 0x25, 0xc8, 0xc3, 0x13, 0x37, 0x89, 0x27, 0x98, 0x48, 0xcc, + 0xa4, 0x29, 0x65, 0xc3, 0xcc, 0xa4, 0x66, 0x12, 0x1a, 0x73, 0x88, 0xa5, + 0x3e, 0x94, 0x84, 0x3a, 0x4b, 0x0a, 0x7c, 0x92, 0x6d, 0xb8, 0x4e, 0x6c, + 0x31, 0x63, 0xb9, 0xbf, 0x40, 0xd1, 0xea, 0x07, 0x66, 0x41, 0x1e, 0xe7, + 0xc3, 0xde, 0x5f, 0x04, 0x82, 0xd9, 0x2d, 0xc4, 0xf4, 0xa4, 0xa4, 0xb8, + 0x7c, 0x04, 0x13, 0x69, 0x34, 0x92, 0x50, 0x9f, 0xe8, 0x27, 0x02, 0x4c, + 0x84, 0xb4, 0xd1, 0x44, 0x67, 0x01, 0x1d, 0xa4, 0xac, 0x9c, 0xc1, 0x87, + 0xb7, 0xff, 0x00, 0xcd, 0x1c, 0xcb, 0x31, 0xfa, 0x31, 0x61, 0xf8, 0x5d, + 0x17, 0xff, 0x00, 0x66, 0x90, 0x9f, 0xcb, 0x5b, 0x17, 0xf0, 0x4f, 0xb3, + 0x4e, 0x23, 0x88, 0xdf, 0xb6, 0xe2, 0x5a, 0x4f, 0x01, 0x29, 0x51, 0xc6, + 0x26, 0x5c, 0x22, 0x5c, 0x65, 0x99, 0xb0, 0xda, 0xdb, 0x79, 0xc8, 0xdf, + 0xc9, 0x98, 0xfb, 0x8a, 0xdc, 0x22, 0x94, 0xda, 0x38, 0x4f, 0x03, 0x16, + 0x1f, 0x85, 0xd1, 0xea, 0x07, 0x64, 0x90, 0x41, 0x4d, 0x2b, 0x1c, 0x56, + 0x40, 0x9b, 0x52, 0x87, 0xe1, 0xb0, 0x60, 0xb6, 0xfe, 0xb6, 0xfe, 0xb6, + 0x28, 0x58, 0x7e, 0x17, 0x47, 0xa8, 0x1d, 0x92, 0x41, 0x6c, 0xc7, 0xdb, + 0xf2, 0x30, 0xd9, 0x80, 0xc3, 0x56, 0x1a, 0x0c, 0x58, 0x7e, 0x0f, 0x45, + 0xff, 0x00, 0xd9, 0x24, 0x82, 0x9c, 0x4a, 0x06, 0x65, 0x23, 0x32, 0x81, + 0x99, 0x40, 0xcc, 0xa4, 0x66, 0x10, 0x33, 0x29, 0x19, 0x94, 0x8c, 0xca, + 0x46, 0x69, 0x23, 0x34, 0x91, 0x99, 0x48, 0xcd, 0x24, 0x66, 0x50, 0x33, + 0x29, 0x07, 0x25, 0x20, 0x95, 0xbc, 0x14, 0x2c, 0x3f, 0x05, 0xa3, 0xd4, + 0x0e, 0xcd, 0xb2, 0xc4, 0x3b, 0xd4, 0xe7, 0xc0, 0x3d, 0xe7, 0x15, 0xec, + 0x2c, 0x3f, 0x05, 0xa3, 0xd4, 0x0e, 0xd2, 0x3f, 0x52, 0x47, 0x5b, 0x9f, + 0x07, 0xbb, 0x77, 0xe5, 0x61, 0xf8, 0x1d, 0x17, 0xff, 0x00, 0x67, 0x1f, + 0xa9, 0x27, 0xad, 0xcf, 0x85, 0xdd, 0x3b, 0xf3, 0xb1, 0x7c, 0x16, 0x8b, + 0xff, 0x00, 0xb3, 0x63, 0xa9, 0x27, 0xad, 0xcf, 0x83, 0xdd, 0x3b, 0xf2, + 0xb1, 0xbc, 0x16, 0x8b, 0xff, 0x00, 0xb3, 0x8f, 0xd4, 0x93, 0xd7, 0xe7, + 0xc2, 0xee, 0x5d, 0xf9, 0xd8, 0xbe, 0x0b, 0x45, 0xff, 0x00, 0xd9, 0x31, + 0xf3, 0x91, 0xd6, 0xe7, 0xc2, 0xee, 0x9e, 0xf9, 0xd8, 0xbe, 0x0b, 0x45, + 0xff, 0x00, 0xd9, 0xb1, 0xf3, 0x7f, 0xad, 0xcf, 0x83, 0xdd, 0x3b, 0xf3, + 0xb1, 0xbc, 0x0e, 0x8b, 0xff, 0x00, 0xb3, 0x63, 0xe6, 0xf7, 0x57, 0x9f, + 0x03, 0xbb, 0x7b, 0xe7, 0x63, 0x78, 0x1d, 0x17, 0xff, 0x00, 0x67, 0x1f, + 0xe6, 0xf7, 0x57, 0x9f, 0x07, 0xba, 0x77, 0xe7, 0x63, 0x78, 0x1d, 0x17, + 0xff, 0x00, 0x65, 0x1f, 0xa8, 0xff, 0x00, 0x5b, 0x9f, 0x07, 0xba, 0x7b, + 0xe7, 0x63, 0x78, 0x1d, 0x17, 0xff, 0x00, 0x67, 0x1f, 0xa9, 0x23, 0xad, + 0xcf, 0x83, 0xdd, 0x3d, 0xf2, 0xb1, 0xbc, 0x0e, 0x8b, 0xff, 0x00, 0xb3, + 0x8f, 0xf3, 0x91, 0xd6, 0xe7, 0xc1, 0xee, 0x9e, 0xf9, 0xd8, 0xde, 0x07, + 0x45, 0xff, 0x00, 0xd9, 0xb1, 0xd4, 0x91, 0xd6, 0xe7, 0xc1, 0xee, 0x9e, + 0xf9, 0xd8, 0xde, 0x07, 0x45, 0xff, 0x00, 0xd9, 0xb1, 0xd4, 0x91, 0xd5, + 0xe7, 0xc0, 0xee, 0x9e, 0xf9, 0xd8, 0xde, 0x03, 0x45, 0xff, 0x00, 0xd9, + 0x47, 0xea, 0x4c, 0x4e, 0xe4, 0x8e, 0x7c, 0x02, 0xfe, 0xcb, 0xa7, 0x8a, + 0xec, 0x6f, 0x01, 0xa2, 0xff, 0x00, 0xec, 0xd0, 0x78, 0x1c, 0xc6, 0xf8, + 0xc5, 0xc2, 0x31, 0xc3, 0x31, 0xc2, 0x31, 0xba, 0x63, 0x74, 0xc1, 0x34, + 0x66, 0x0d, 0xb3, 0x21, 0xba, 0x63, 0x70, 0xc6, 0xe9, 0x8d, 0xd3, 0x18, + 0x18, 0xdd, 0x31, 0xba, 0x63, 0x74, 0xc4, 0x54, 0xf0, 0xc1, 0x8b, 0x1f, + 0xc0, 0x68, 0xbf, 0xfb, 0x34, 0x84, 0x39, 0x81, 0x11, 0xa0, 0x19, 0xa0, + 0x6f, 0x20, 0x6f, 0x20, 0x1a, 0x90, 0x37, 0x90, 0x37, 0x90, 0x31, 0x49, + 0x8d, 0xe4, 0x8d, 0xe4, 0x8f, 0xe0, 0x31, 0x40, 0xc5, 0x23, 0x14, 0x83, + 0x52, 0x42, 0x95, 0x88, 0x31, 0x63, 0xf8, 0x0d, 0x17, 0xe3, 0x6a, 0x54, + 0x14, 0x9e, 0xdc, 0x46, 0x20, 0xb6, 0x7e, 0x74, 0x62, 0x31, 0xd9, 0xfb, + 0xc4, 0x62, 0x30, 0x06, 0x2c, 0xa4, 0x29, 0x14, 0x0d, 0x17, 0x53, 0x5c, + 0x4a, 0x29, 0x96, 0xea, 0xd4, 0xad, 0xd4, 0x70, 0x14, 0x63, 0x2e, 0x0a, + 0x36, 0x23, 0x2c, 0x32, 0xc0, 0x98, 0x32, 0x33, 0x46, 0x0d, 0xec, 0x26, + 0xd4, 0xe8, 0xcb, 0x8c, 0xb0, 0xcb, 0x0c, 0xb8, 0xe0, 0x04, 0xa4, 0xf0, + 0xfc, 0x9d, 0x1d, 0x9c, 0xbd, 0x2b, 0x45, 0x4d, 0x9c, 0xc5, 0x3e, 0x6a, + 0x37, 0x25, 0xff, 0x00, 0xa8, 0xfc, 0x6c, 0xde, 0x18, 0x8f, 0xd2, 0x7d, + 0xe1, 0x86, 0xc7, 0xeb, 0x41, 0x16, 0x01, 0xbe, 0xa5, 0x3a, 0x3e, 0x6e, + 0xa0, 0x45, 0x81, 0x69, 0xba, 0x21, 0x64, 0xea, 0x5f, 0xf8, 0x91, 0x90, + 0xf6, 0xd9, 0x80, 0xf6, 0x0b, 0x51, 0x11, 0x20, 0xff, 0x00, 0xa2, 0x18, + 0x23, 0x5a, 0xb7, 0xbd, 0xb1, 0x2d, 0xb8, 0x03, 0x51, 0x60, 0xc1, 0x92, + 0x97, 0x62, 0x43, 0xcc, 0xd7, 0xb5, 0x7a, 0x81, 0x4e, 0x0d, 0x2f, 0x74, + 0x95, 0x1d, 0x26, 0x79, 0x61, 0x97, 0x19, 0x61, 0x96, 0x05, 0x19, 0x21, + 0x4a, 0xc7, 0x62, 0x55, 0xba, 0x6e, 0xa1, 0x0f, 0x1e, 0x58, 0x65, 0x86, + 0x58, 0x65, 0x86, 0x58, 0x87, 0xf1, 0x42, 0x7d, 0x3d, 0xa7, 0x65, 0xe9, + 0xba, 0xab, 0x90, 0x3e, 0xa3, 0x4d, 0x90, 0xdf, 0x05, 0xf2, 0xd3, 0x16, + 0x33, 0xb3, 0x1e, 0x5c, 0x58, 0x11, 0x4a, 0x12, 0xe1, 0x4f, 0x86, 0x97, + 0x29, 0x35, 0x19, 0x12, 0xa0, 0x3d, 0x11, 0xbd, 0x98, 0xed, 0x89, 0x15, + 0x73, 0xa5, 0xc3, 0x8a, 0x88, 0x51, 0x75, 0xde, 0xf4, 0x8c, 0x94, 0xf2, + 0xd0, 0x61, 0x45, 0xfe, 0x72, 0x96, 0xd4, 0x23, 0x8b, 0x75, 0x4d, 0x8d, + 0x03, 0xea, 0x6b, 0x7c, 0x76, 0xb1, 0xe5, 0xb2, 0x86, 0x1e, 0xda, 0x63, + 0xd3, 0xba, 0x3f, 0x11, 0xfe, 0x45, 0xc7, 0x4a, 0xfa, 0xad, 0x39, 0xe6, + 0x8e, 0x3b, 0xb8, 0xed, 0xa6, 0xb8, 0x71, 0x18, 0x95, 0x6a, 0x37, 0x43, + 0x4c, 0x19, 0x73, 0xe6, 0x55, 0x73, 0xb1, 0x04, 0xba, 0x94, 0xea, 0x7b, + 0x94, 0x3a, 0x5b, 0x15, 0x59, 0x75, 0x38, 0x99, 0x38, 0xfb, 0x62, 0x45, + 0x72, 0x7c, 0xaa, 0x64, 0x06, 0xe9, 0x70, 0x79, 0x37, 0xd5, 0x0f, 0x2f, + 0x20, 0xb6, 0xbd, 0x1d, 0xa6, 0xed, 0x59, 0x0e, 0x3e, 0x65, 0x1d, 0x0e, + 0xbb, 0x59, 0x3a, 0x0c, 0x80, 0xe3, 0x87, 0x26, 0x5b, 0x8d, 0xad, 0x75, + 0xb6, 0x5a, 0x81, 0x3e, 0xb9, 0xb0, 0xc7, 0xa7, 0xb4, 0x3e, 0x1b, 0x7c, + 0xaa, 0xa4, 0x04, 0xd4, 0xa1, 0x54, 0x61, 0xaa, 0x0c, 0xa2, 0x31, 0x88, + 0xa6, 0xb6, 0x89, 0x31, 0x21, 0xc8, 0x89, 0x51, 0x6a, 0x04, 0x4a, 0x84, + 0x3a, 0xb5, 0x42, 0x33, 0x0d, 0x46, 0x9d, 0x09, 0xea, 0x91, 0xbc, 0xac, + 0xb5, 0x3a, 0x1b, 0x68, 0x8f, 0x40, 0x06, 0x62, 0x8b, 0x4b, 0x5d, 0x66, + 0xa4, 0xcb, 0x28, 0x8e, 0xcf, 0x2e, 0xfc, 0xa2, 0x71, 0x5b, 0x2f, 0x63, + 0x0c, 0x48, 0x5c, 0x57, 0x8c, 0xb7, 0x57, 0x5f, 0x6a, 0x8d, 0x52, 0x74, + 0xad, 0xea, 0xa2, 0x8a, 0x9f, 0x01, 0xa8, 0x0e, 0x56, 0xdb, 0x87, 0x56, + 0xa9, 0x54, 0xa7, 0x67, 0x24, 0x1e, 0xcb, 0x1a, 0x87, 0xf4, 0xda, 0x77, + 0x32, 0x43, 0x08, 0x94, 0xc5, 0xc9, 0x43, 0x76, 0x8f, 0x38, 0x8f, 0x64, + 0x59, 0xb2, 0x20, 0xb9, 0x22, 0x54, 0x3a, 0x88, 0x8d, 0x0e, 0x1a, 0xe0, + 0x97, 0xd2, 0xe3, 0xa6, 0x4d, 0x4e, 0x54, 0xb6, 0x46, 0x22, 0xcf, 0xb7, + 0x15, 0x58, 0x99, 0xce, 0x9f, 0x4f, 0x62, 0xa5, 0x1e, 0xa7, 0xe9, 0xcc, + 0x84, 0x2d, 0xcb, 0x46, 0xb0, 0xd0, 0x3b, 0x7a, 0xa8, 0x43, 0xed, 0xea, + 0xa9, 0x0f, 0xb7, 0xaa, 0xa3, 0xed, 0xea, 0xa0, 0x2b, 0x6e, 0xaa, 0xa3, + 0x66, 0xce, 0xac, 0x3e, 0x74, 0x9f, 0x4e, 0x77, 0x54, 0xc3, 0x0d, 0xc5, + 0x6b, 0xfe, 0xcf, 0xff, 0xc4, 0x00, 0x1b, 0x11, 0x00, 0x02, 0x02, 0x03, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x02, 0x11, 0x21, 0x40, 0x70, 0x90, 0xff, 0xda, 0x00, 0x08, + 0x01, 0x03, 0x01, 0x01, 0x3f, 0x01, 0xf6, 0x3e, 0x8c, 0x0e, 0x0a, 0xb6, + 0x63, 0x22, 0x95, 0x8f, 0x83, 0xff, 0x00, 0xff, 0xc4, 0x00, 0x1e, 0x11, + 0x00, 0x02, 0x02, 0x02, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x40, 0x11, 0x20, 0x00, 0x30, 0x10, 0x41, + 0x50, 0x60, 0x70, 0xff, 0xda, 0x00, 0x08, 0x01, 0x02, 0x01, 0x01, 0x3f, + 0x01, 0xfb, 0xf0, 0xc8, 0xd5, 0xd6, 0xf0, 0xc8, 0x64, 0x32, 0x19, 0x09, + 0x0b, 0x86, 0x43, 0x21, 0x90, 0xc8, 0x48, 0x5c, 0x24, 0x2e, 0x12, 0x17, + 0x09, 0x0b, 0x84, 0x85, 0xc2, 0x42, 0xe1, 0x21, 0x70, 0x90, 0xb8, 0x48, + 0x5c, 0x70, 0x50, 0x17, 0x0c, 0x86, 0x43, 0x23, 0xc2, 0xeb, 0xca, 0x1c, + 0x46, 0x46, 0x46, 0x46, 0x45, 0xa3, 0x23, 0x23, 0x23, 0x23, 0x48, 0xd1, + 0x3c, 0x4f, 0x9c, 0x59, 0x2c, 0x9b, 0x0f, 0xc1, 0xff, 0x00, 0xff, 0xc4, + 0x00, 0x44, 0x10, 0x00, 0x01, 0x03, 0x01, 0x04, 0x05, 0x08, 0x05, 0x0a, + 0x05, 0x04, 0x03, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x03, 0x11, + 0x04, 0x12, 0x21, 0x31, 0x10, 0x20, 0x22, 0x41, 0x71, 0x05, 0x13, 0x32, + 0x40, 0x51, 0x61, 0x72, 0x81, 0x14, 0x30, 0x33, 0x52, 0x92, 0x23, 0x34, + 0x35, 0x42, 0x62, 0x82, 0xa1, 0xb1, 0xc1, 0xd1, 0x15, 0x50, 0x73, 0x83, + 0x91, 0x06, 0x24, 0x43, 0xf0, 0x63, 0x93, 0xd3, 0xff, 0xda, 0x00, 0x08, + 0x01, 0x01, 0x00, 0x06, 0x3f, 0x02, 0xfe, 0x43, 0xb5, 0x23, 0x5b, 0xc4, + 0xad, 0xab, 0x64, 0x03, 0xfb, 0x81, 0x63, 0x6d, 0x8b, 0xfc, 0xaf, 0x9e, + 0x37, 0xe1, 0x3f, 0xb2, 0xf9, 0xd8, 0xf8, 0x4a, 0xf9, 0xe3, 0x7e, 0x12, + 0xb0, 0xb6, 0xc5, 0xfe, 0x56, 0xcd, 0xb2, 0x03, 0xfd, 0xc0, 0xb6, 0x5e, + 0xd7, 0x70, 0x3e, 0xb4, 0xb1, 0x84, 0xda, 0xa5, 0x1b, 0x99, 0x97, 0xf9, + 0x47, 0x9a, 0x8a, 0x28, 0x47, 0x0b, 0xc5, 0x63, 0x6b, 0x7b, 0x7c, 0x14, + 0x6a, 0xf9, 0x4b, 0x4c, 0xaf, 0xf1, 0x3c, 0xac, 0xfd, 0x46, 0x05, 0x7c, + 0x9d, 0xaa, 0x66, 0x70, 0x79, 0x5f, 0x3a, 0x73, 0xbc, 0x60, 0x15, 0xf2, + 0xf0, 0x45, 0x28, 0xfb, 0x3b, 0x25, 0x06, 0x5e, 0x30, 0x4a, 0x7e, 0xac, + 0x9b, 0xfc, 0xfd, 0x43, 0xec, 0x56, 0x47, 0xdd, 0x88, 0x60, 0xf7, 0x8f, + 0xad, 0xd4, 0x70, 0x42, 0xc3, 0x6b, 0x75, 0x5d, 0xff, 0x00, 0x1b, 0xcf, + 0xe5, 0xad, 0x33, 0xda, 0x68, 0xf7, 0x6c, 0xb5, 0x13, 0xa7, 0x7f, 0x92, + 0xef, 0xf5, 0xcd, 0x7b, 0x4d, 0x0b, 0x4a, 0x82, 0x7d, 0xee, 0x6e, 0x3c, + 0x75, 0x62, 0x6e, 0xe3, 0x78, 0xe9, 0x66, 0x38, 0x6f, 0x59, 0xa8, 0xe9, + 0xc0, 0xac, 0x15, 0x08, 0x2b, 0x7a, 0xde, 0xaf, 0xee, 0x5b, 0xd6, 0x4a, + 0xe8, 0x18, 0xaa, 0x67, 0xa0, 0x8a, 0x1a, 0x8c, 0x16, 0x1a, 0x63, 0x1e, + 0xeb, 0x88, 0xd5, 0x83, 0xef, 0x7e, 0x9a, 0x02, 0x7e, 0xe0, 0x17, 0x49, + 0x13, 0x5c, 0x94, 0x5c, 0x3f, 0x55, 0x7a, 0x9b, 0x57, 0x91, 0xa3, 0x71, + 0xb9, 0x5a, 0xac, 0x59, 0x53, 0xdb, 0x55, 0x25, 0x70, 0xc6, 0xa1, 0x7b, + 0x3a, 0xf7, 0xa1, 0xb0, 0x0d, 0x5a, 0x0f, 0xe0, 0xaf, 0xf7, 0x1a, 0x27, + 0x39, 0xd8, 0xd0, 0xe4, 0x98, 0x63, 0xec, 0xc4, 0x27, 0x17, 0xb6, 0xa7, + 0xb1, 0x5e, 0xa5, 0x1b, 0x4c, 0x74, 0xfd, 0xed, 0x58, 0x7e, 0xf6, 0x80, + 0xa5, 0xff, 0x00, 0xbb, 0xf4, 0x39, 0x33, 0x87, 0xea, 0xae, 0xef, 0xaa, + 0x2d, 0xed, 0x65, 0x11, 0x61, 0xa5, 0xef, 0x79, 0x18, 0xc9, 0x15, 0xdc, + 0xa9, 0x7f, 0xf1, 0x55, 0x2e, 0x05, 0x35, 0xd2, 0x1b, 0xcd, 0x1d, 0xea, + 0xb1, 0x9a, 0x03, 0xb9, 0x5e, 0x76, 0x3d, 0xc9, 0xf2, 0x1a, 0x39, 0xa5, + 0x3e, 0x86, 0xb1, 0xbb, 0x4f, 0xde, 0xd5, 0x87, 0xef, 0x69, 0x25, 0xa7, + 0x3d, 0x18, 0xfe, 0x29, 0xa3, 0xb3, 0xd7, 0x7d, 0xfd, 0x58, 0xbe, 0xf7, + 0x54, 0x1e, 0x33, 0xab, 0x17, 0x9e, 0x8c, 0x73, 0xd1, 0x92, 0xde, 0xb2, + 0x2b, 0x22, 0xb2, 0x59, 0x2c, 0x8a, 0xc8, 0xac, 0x8a, 0xc8, 0xac, 0x8a, + 0xc8, 0xac, 0x8a, 0xdf, 0xa4, 0x78, 0xce, 0xac, 0x5e, 0x7a, 0x0f, 0x50, + 0xe6, 0xdd, 0x93, 0xb4, 0x0f, 0x19, 0xd5, 0x87, 0xcd, 0x37, 0x8a, 0x7f, + 0x50, 0x8f, 0x8a, 0x28, 0x78, 0xce, 0xac, 0x5e, 0x69, 0xa9, 0xdd, 0x41, + 0x89, 0xc9, 0xbe, 0x23, 0xab, 0x1f, 0x9a, 0x09, 0xdd, 0x41, 0x88, 0xa6, + 0x78, 0x8e, 0xac, 0x5e, 0x68, 0x27, 0x75, 0x06, 0x22, 0x9b, 0xe2, 0x3a, + 0xb1, 0x79, 0xa6, 0xa7, 0xf5, 0x06, 0x71, 0x47, 0x8a, 0x67, 0x88, 0xea, + 0xc5, 0xe6, 0x9a, 0x9f, 0xc7, 0xa8, 0x31, 0x39, 0x33, 0xc4, 0x75, 0x62, + 0xf3, 0x41, 0x3f, 0x8f, 0x50, 0x8f, 0x8a, 0x3c, 0x53, 0x3c, 0x47, 0x56, + 0x2f, 0x34, 0xd4, 0xee, 0x3d, 0x41, 0x88, 0xa6, 0x78, 0x8e, 0xac, 0x5e, + 0x69, 0xa9, 0xfc, 0x7a, 0x83, 0x11, 0x4c, 0xf1, 0x1d, 0x58, 0xbc, 0xd0, + 0x4e, 0xea, 0x0c, 0x45, 0x33, 0xc4, 0x75, 0x62, 0xf3, 0x41, 0x3b, 0xa8, + 0x31, 0x14, 0xcf, 0x11, 0xd5, 0x8f, 0xcd, 0x35, 0x3b, 0xa8, 0x31, 0x14, + 0xcf, 0x11, 0xd5, 0x8f, 0xcd, 0x04, 0xee, 0xa1, 0x1a, 0x2a, 0x3f, 0x11, + 0xd5, 0x8f, 0xcd, 0x35, 0x38, 0x75, 0x06, 0xa2, 0xa3, 0xf1, 0x1d, 0x58, + 0xbc, 0xd0, 0x41, 0xe3, 0xd5, 0x64, 0xb2, 0xd3, 0x96, 0x82, 0xe3, 0xa2, + 0x3f, 0x11, 0xd5, 0x8f, 0xcf, 0x45, 0x37, 0x2c, 0x96, 0x4b, 0x25, 0x92, + 0xc9, 0x64, 0xb2, 0x59, 0x2c, 0x97, 0x45, 0x64, 0xb2, 0x59, 0x2c, 0x96, + 0x5a, 0x63, 0xf1, 0x1d, 0x58, 0xc8, 0x6d, 0x47, 0x54, 0x86, 0xf0, 0xa5, + 0x4d, 0x46, 0xac, 0xbf, 0x64, 0x82, 0x88, 0xec, 0x2b, 0x05, 0x8b, 0xf1, + 0x5d, 0x32, 0xba, 0x6b, 0xa6, 0x57, 0x4c, 0xac, 0x1d, 0x52, 0x9a, 0xf1, + 0x91, 0xd3, 0x78, 0xba, 0xe8, 0xdc, 0xba, 0x65, 0x74, 0xca, 0xe9, 0x95, + 0xed, 0x0a, 0xe9, 0xa3, 0xda, 0xdd, 0x16, 0x48, 0xf2, 0x2d, 0x89, 0xbf, + 0x96, 0xad, 0xa2, 0x3e, 0xd6, 0x14, 0xfd, 0xdb, 0xd3, 0x7c, 0x5a, 0xe7, + 0xfa, 0x9a, 0x1d, 0xe1, 0x29, 0xbc, 0x35, 0x8f, 0x80, 0xa8, 0x21, 0xf7, + 0xde, 0x1a, 0xa9, 0xad, 0x23, 0x77, 0x07, 0x11, 0xfb, 0x20, 0xee, 0xc7, + 0x6b, 0xf1, 0x7d, 0x74, 0x53, 0xb9, 0x37, 0x86, 0xb3, 0xce, 0xe0, 0xc4, + 0xd7, 0xfd, 0x58, 0x41, 0x7e, 0xbb, 0x2d, 0x0d, 0x1d, 0x21, 0x43, 0xc4, + 0x2e, 0xd0, 0x77, 0x2d, 0x97, 0x16, 0xf7, 0x2f, 0x68, 0xbd, 0xaa, 0xf6, + 0xab, 0xda, 0xac, 0x5e, 0x4a, 0x03, 0x70, 0xd0, 0x0e, 0xf5, 0x7b, 0xa0, + 0xee, 0xe5, 0xed, 0x17, 0xb5, 0x5e, 0xd9, 0x7b, 0x55, 0xed, 0x15, 0xd6, + 0xa9, 0x2d, 0x4e, 0x1b, 0x53, 0xbb, 0x0e, 0x03, 0x5e, 0x58, 0xc0, 0xdb, + 0x1b, 0x4d, 0xe2, 0x9c, 0xdd, 0xdb, 0xb5, 0xb9, 0xa8, 0x80, 0x2f, 0xa1, + 0x76, 0x2e, 0x03, 0x00, 0x2a, 0x73, 0xe0, 0xa3, 0xf4, 0x9b, 0x69, 0x32, + 0x98, 0xef, 0x98, 0xec, 0xed, 0x6c, 0x82, 0xb5, 0xe8, 0xdf, 0x0e, 0xec, + 0xfc, 0xd3, 0x2d, 0xd1, 0x7f, 0xa6, 0x39, 0xcb, 0x15, 0x94, 0x1f, 0x4c, + 0x7b, 0x27, 0x93, 0x3e, 0xed, 0xa4, 0xc3, 0xce, 0xbf, 0x92, 0xf9, 0xc9, + 0x2e, 0x73, 0x41, 0x9c, 0xe3, 0x18, 0xdf, 0x7a, 0xf1, 0x72, 0x64, 0x8f, + 0xb8, 0x58, 0xf2, 0x5a, 0xd7, 0x47, 0x2b, 0x5e, 0x09, 0x14, 0xaf, 0x44, + 0xf7, 0x8d, 0x68, 0xac, 0xf1, 0xe2, 0xf9, 0x1d, 0x74, 0x28, 0xa0, 0x8f, + 0xa1, 0x1b, 0x43, 0x47, 0xa8, 0x74, 0x8c, 0x1f, 0x26, 0xfd, 0xb1, 0xfa, + 0xeb, 0x3a, 0xc5, 0x62, 0x7f, 0x34, 0xd8, 0x83, 0xc5, 0xa2, 0xd3, 0x3c, + 0x21, 0x84, 0x0c, 0x8e, 0xf7, 0x70, 0xc3, 0x3e, 0xc4, 0x3d, 0x06, 0x2e, + 0x6c, 0xd0, 0xb4, 0xcd, 0x28, 0x0e, 0x7b, 0xbb, 0xc7, 0xb9, 0xe5, 0x8f, + 0x7a, 0xb4, 0xd9, 0xaf, 0xba, 0x41, 0x3f, 0x48, 0xb8, 0xd6, 0xf7, 0x8b, + 0xde, 0xff, 0x00, 0xb9, 0x8c, 0x13, 0x19, 0x6d, 0x1e, 0x9b, 0x08, 0x75, + 0x48, 0x93, 0xa7, 0xe4, 0xfc, 0xc7, 0xe5, 0xdc, 0x98, 0xf6, 0x3c, 0xc9, + 0xc9, 0xae, 0x24, 0x3d, 0xa5, 0x8d, 0x7b, 0xe0, 0x71, 0x1d, 0xff, 0x00, + 0x81, 0xc2, 0xb4, 0x57, 0x63, 0x73, 0xdf, 0x19, 0x6b, 0x5c, 0x0c, 0x8c, + 0xba, 0x71, 0x00, 0xe5, 0x53, 0xdb, 0xab, 0x27, 0x28, 0x48, 0x36, 0x59, + 0xb1, 0x1f, 0x1d, 0xe7, 0xd4, 0xbd, 0x80, 0x56, 0x56, 0x6d, 0x33, 0xf6, + 0x45, 0xa7, 0x52, 0xd9, 0x6a, 0xbc, 0xe8, 0xe8, 0xc1, 0x0b, 0x64, 0x60, + 0x37, 0x9a, 0xe7, 0x64, 0x6b, 0xf5, 0x7a, 0x27, 0x1f, 0x2d, 0xeb, 0xd2, + 0xbf, 0x8c, 0xcc, 0xe0, 0xeb, 0x38, 0x99, 0xee, 0xb1, 0x8a, 0xbb, 0x17, + 0x01, 0x8e, 0x3f, 0x69, 0x59, 0xec, 0x7f, 0xc4, 0x6d, 0x2d, 0xe7, 0x66, + 0x6c, 0x57, 0xb9, 0xd7, 0x61, 0x53, 0x45, 0xf4, 0xc7, 0x2c, 0xfc, 0x23, + 0xff, 0x00, 0xa2, 0x88, 0xb6, 0xd9, 0x35, 0xa6, 0xcb, 0x3b, 0x79, 0xc6, + 0xb2, 0xd5, 0xb4, 0x1c, 0x2f, 0x11, 0xb4, 0xd3, 0x51, 0x9b, 0x55, 0xa9, + 0xb1, 0xb8, 0x59, 0x6c, 0xb6, 0x86, 0x47, 0x0e, 0xde, 0x21, 0x8e, 0x78, + 0xbd, 0x9d, 0x32, 0x17, 0x4d, 0x31, 0xaf, 0x47, 0xbd, 0x5b, 0xb9, 0x34, + 0x5a, 0xbd, 0x37, 0xd0, 0x25, 0x0f, 0x12, 0x50, 0xb9, 0xa1, 0x9d, 0x1a, + 0x34, 0xfd, 0x5c, 0x48, 0xa8, 0xdf, 0xe5, 0xa9, 0x15, 0x9e, 0x21, 0x57, + 0xc8, 0xeb, 0xa1, 0x43, 0x66, 0x8f, 0xa3, 0x18, 0xa7, 0x1e, 0xff, 0x00, + 0x55, 0xe9, 0x31, 0x37, 0x62, 0x4c, 0x7c, 0xf7, 0xea, 0x7a, 0x40, 0x9d, + 0xb1, 0xda, 0x24, 0xb5, 0x18, 0x8c, 0x54, 0xc6, 0x46, 0x00, 0xd3, 0x9e, + 0xea, 0x12, 0x99, 0x1c, 0xd7, 0x80, 0x60, 0x17, 0x58, 0x45, 0x00, 0x14, + 0x1b, 0xbb, 0xc5, 0x38, 0xa8, 0x99, 0x67, 0xf9, 0xc3, 0xa7, 0x02, 0x3c, + 0x69, 0xb5, 0x7b, 0x0c, 0x55, 0x23, 0x1c, 0x93, 0x3b, 0xce, 0x0d, 0x8e, + 0x2b, 0x65, 0x5c, 0xe3, 0xd8, 0x05, 0xf5, 0x1b, 0x6d, 0x4e, 0xe6, 0x58, + 0xda, 0x46, 0x6e, 0xb7, 0xd9, 0xb7, 0x82, 0x31, 0xc7, 0x2c, 0x76, 0x0b, + 0xa2, 0xe3, 0x25, 0xbe, 0xe0, 0xcb, 0x81, 0x98, 0x1a, 0xd2, 0xb8, 0xb7, + 0x7d, 0x31, 0xaa, 0xe5, 0xe6, 0xc5, 0x3c, 0x71, 0xd9, 0x39, 0xa9, 0x66, + 0x86, 0x20, 0xdf, 0x68, 0x5a, 0xd2, 0x45, 0x3b, 0x29, 0xa8, 0xee, 0x51, + 0x94, 0x6d, 0x3b, 0x66, 0x2e, 0x1b, 0xcf, 0xab, 0x92, 0x07, 0x6f, 0xc8, + 0xf6, 0x14, 0xf8, 0xde, 0x2e, 0xd0, 0xe9, 0xb6, 0xd9, 0xaf, 0x52, 0xd1, + 0x23, 0x01, 0x60, 0x73, 0x49, 0x6e, 0x18, 0x9c, 0xb2, 0x3d, 0xf9, 0x52, + 0xf2, 0x89, 0xb2, 0x58, 0x2d, 0xb6, 0x8b, 0x4c, 0x6c, 0x0c, 0x73, 0xac, + 0x8f, 0xc0, 0x81, 0x80, 0x34, 0xba, 0x77, 0x50, 0x79, 0x2b, 0x3d, 0xb7, + 0xf8, 0x75, 0xa5, 0xdc, 0xd4, 0xed, 0x9a, 0xef, 0x34, 0xec, 0x68, 0x6a, + 0xaf, 0x47, 0x61, 0xb7, 0xd9, 0x5d, 0x78, 0x0b, 0xd6, 0xa3, 0xb2, 0x73, + 0xfb, 0x21, 0x36, 0xd7, 0x66, 0x8a, 0x4b, 0x45, 0xe6, 0x81, 0x30, 0x65, + 0x5e, 0xe6, 0xbf, 0x23, 0x5f, 0x15, 0x2f, 0x79, 0xf7, 0x2f, 0x97, 0xe4, + 0xcb, 0x44, 0x76, 0x9b, 0x9c, 0xd7, 0x3f, 0x25, 0xe0, 0xce, 0x34, 0xed, + 0xa6, 0x1d, 0x9d, 0xca, 0x77, 0xca, 0xea, 0x3a, 0xd0, 0xf1, 0xcc, 0x86, + 0x34, 0xd4, 0xdd, 0x38, 0xd4, 0xe5, 0x4e, 0xec, 0xeb, 0x77, 0x4c, 0x56, + 0x66, 0xe4, 0x4d, 0x5c, 0xee, 0xc0, 0x99, 0x14, 0x62, 0xeb, 0x18, 0x28, + 0x07, 0xac, 0xf4, 0xc8, 0xc7, 0x73, 0xff, 0x00, 0x43, 0xa5, 0xb2, 0xc4, + 0xeb, 0xaf, 0x6a, 0x67, 0x28, 0xd9, 0xe5, 0x8f, 0x99, 0x91, 0xf1, 0x41, + 0x68, 0xb3, 0x32, 0x2a, 0x90, 0x48, 0xc7, 0x64, 0x8b, 0xa6, 0xa5, 0x8e, + 0x22, 0x9d, 0xd9, 0x29, 0x1b, 0xc8, 0x6e, 0x2e, 0x73, 0x2e, 0xba, 0xe3, + 0xe9, 0x1d, 0xec, 0x0d, 0xfa, 0x03, 0x42, 0x4e, 0x0d, 0xc0, 0x76, 0x95, + 0x51, 0xc9, 0xb6, 0xc2, 0x3f, 0xa0, 0xef, 0xd9, 0x19, 0x79, 0x5d, 0xae, + 0xb3, 0xc2, 0x36, 0x43, 0x1d, 0x4b, 0xe4, 0xd5, 0xb5, 0xd8, 0x38, 0xf4, + 0x4b, 0xb1, 0xed, 0x53, 0xc3, 0xc9, 0x56, 0x96, 0x59, 0xf9, 0x22, 0x18, + 0x9b, 0x39, 0x7c, 0xd1, 0x16, 0x83, 0x88, 0x6f, 0xd5, 0x6d, 0xe3, 0x8b, + 0xbf, 0x34, 0x6e, 0x0b, 0x96, 0x56, 0xb9, 0xdc, 0xcc, 0x41, 0xa1, 0xb7, + 0x5b, 0x5e, 0xed, 0xf9, 0x63, 0xdd, 0xa7, 0xd2, 0x25, 0x6d, 0x27, 0xb4, + 0x63, 0x8e, 0xe6, 0xee, 0xf5, 0xaf, 0x8a, 0x41, 0x56, 0x3c, 0x50, 0xa7, + 0x02, 0x2b, 0x19, 0xc5, 0xae, 0xed, 0x1a, 0x79, 0xcb, 0x34, 0xf2, 0x59, + 0xdf, 0x4a, 0x5e, 0x89, 0xe5, 0xa6, 0x8a, 0x67, 0x5a, 0x2c, 0xa2, 0x09, + 0x9f, 0x21, 0x94, 0x49, 0x66, 0xae, 0xd7, 0x6b, 0x4d, 0xe3, 0x80, 0xef, + 0xdd, 0xd8, 0x54, 0xee, 0x1c, 0xb8, 0xfb, 0x1c, 0x98, 0x73, 0x36, 0x67, + 0xb6, 0x43, 0xc6, 0xf1, 0x68, 0xa2, 0x7b, 0xe3, 0x8e, 0x6b, 0x54, 0xae, + 0x6d, 0xdb, 0x96, 0x91, 0x46, 0x83, 0x5e, 0x95, 0x5a, 0x6b, 0x96, 0xee, + 0xfc, 0xcd, 0x13, 0x21, 0x92, 0x67, 0x9b, 0x3b, 0x29, 0x72, 0x1b, 0xc6, + 0xe3, 0x68, 0x28, 0x28, 0x34, 0x89, 0xe5, 0x6f, 0xfb, 0x38, 0x8d, 0x49, + 0xf7, 0xcf, 0x67, 0xaf, 0x30, 0xda, 0x23, 0x0f, 0x61, 0xfc, 0x13, 0x9d, + 0x62, 0x95, 0xb2, 0x33, 0xdc, 0x7e, 0x05, 0x63, 0x61, 0x79, 0xf0, 0x90, + 0x57, 0xd1, 0xf6, 0x8f, 0xfd, 0x65, 0x7d, 0x1f, 0x68, 0xf8, 0x17, 0xcc, + 0x2d, 0x1f, 0x02, 0xfa, 0x3e, 0xd1, 0xf0, 0x2f, 0xa3, 0xe7, 0xf8, 0x15, + 0x3d, 0x0c, 0xb3, 0xbd, 0xee, 0x01, 0x07, 0xf2, 0x84, 0xc1, 0xff, 0x00, + 0xf8, 0xa2, 0xfd, 0xd3, 0x62, 0x89, 0x82, 0x38, 0xdb, 0x80, 0x6b, 0x7f, + 0x9d, 0x7f, 0xff, 0xc4, 0x00, 0x2a, 0x10, 0x01, 0x00, 0x02, 0x01, 0x02, + 0x04, 0x05, 0x05, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x11, 0x21, 0x31, 0x41, 0x51, 0x61, 0x71, 0xa1, 0x10, 0x20, 0x81, + 0x91, 0xb1, 0x30, 0x40, 0xc1, 0xd1, 0xf0, 0xe1, 0xf1, 0x50, 0xff, 0xda, + 0x00, 0x08, 0x01, 0x01, 0x00, 0x01, 0x3f, 0x21, 0xff, 0x00, 0xc1, 0xb8, + 0xc5, 0x70, 0xc8, 0x95, 0x2d, 0xc3, 0xfd, 0xe7, 0xc0, 0xbb, 0xc6, 0x6a, + 0xfe, 0x8b, 0x1f, 0xcf, 0xfe, 0x22, 0xbf, 0x37, 0xe9, 0x9f, 0x22, 0xeb, + 0x12, 0x05, 0x9d, 0xbf, 0xd6, 0x76, 0x0d, 0xdf, 0xa9, 0xa4, 0xc7, 0x78, + 0x97, 0xc5, 0xe7, 0xfa, 0xdc, 0x4b, 0x82, 0x99, 0x77, 0x31, 0xda, 0x1c, + 0x82, 0x3c, 0x1f, 0x01, 0x2f, 0x68, 0x5d, 0x45, 0x5f, 0x79, 0xaa, 0xa5, + 0xe7, 0x2e, 0x97, 0xc5, 0x2f, 0x89, 0x96, 0xad, 0x60, 0x19, 0xb9, 0x7b, + 0x81, 0x6f, 0x16, 0xd1, 0xae, 0x72, 0x92, 0x80, 0xd0, 0x34, 0xa0, 0x00, + 0x9f, 0xca, 0x90, 0x11, 0xc5, 0x36, 0xfc, 0x84, 0xd3, 0xc9, 0x8a, 0x83, + 0xa3, 0x47, 0xd0, 0x7c, 0x99, 0x3b, 0x95, 0xc0, 0xe5, 0xe0, 0x3c, 0x2a, + 0x95, 0xa4, 0xaa, 0xe5, 0x00, 0x65, 0x72, 0xf0, 0xa9, 0x58, 0x87, 0xb2, + 0x6a, 0xc6, 0x90, 0xb4, 0x33, 0x8c, 0x58, 0x2c, 0x24, 0xda, 0x1b, 0xeb, + 0x5e, 0x7f, 0xc7, 0x99, 0x69, 0x45, 0x77, 0x37, 0xfc, 0xb8, 0xcd, 0xd5, + 0x75, 0x61, 0x8f, 0xa3, 0x6c, 0xa1, 0x63, 0x4e, 0x4c, 0x4d, 0x3b, 0xa3, + 0x52, 0x6d, 0xca, 0x06, 0x3f, 0x12, 0xad, 0xd6, 0x6b, 0x3d, 0xe7, 0xcc, + 0x4f, 0x49, 0xbe, 0x3b, 0xc0, 0xbe, 0xb2, 0xb3, 0x32, 0xdb, 0xd6, 0xa2, + 0x24, 0x15, 0x15, 0xb5, 0xa0, 0x9b, 0x4f, 0xf2, 0xb5, 0x61, 0xf2, 0xa8, + 0x4e, 0x44, 0xf4, 0x0f, 0xdf, 0x83, 0x82, 0x20, 0x69, 0x97, 0xa2, 0x59, + 0x05, 0x03, 0x48, 0x9b, 0x95, 0xa2, 0xf1, 0xcd, 0x7c, 0x42, 0x87, 0xc6, + 0x33, 0x01, 0x27, 0x2a, 0x07, 0xda, 0x30, 0x02, 0xcf, 0x09, 0xc8, 0x87, + 0x8c, 0x82, 0x6a, 0xc1, 0x7d, 0x8b, 0x9b, 0xe9, 0x6f, 0x53, 0x30, 0x1e, + 0x9b, 0xc6, 0xfc, 0x85, 0x87, 0x07, 0x2d, 0x23, 0xce, 0x18, 0xcc, 0x6b, + 0xf0, 0x0f, 0x97, 0xb0, 0xf8, 0xc6, 0x10, 0x52, 0xda, 0xf3, 0x03, 0x47, + 0x23, 0x87, 0x39, 0xfc, 0x88, 0x01, 0xdf, 0x55, 0x54, 0x54, 0xa0, 0x0e, + 0xff, 0x00, 0x54, 0xd8, 0xc5, 0x93, 0x15, 0x60, 0x83, 0xd4, 0xa2, 0x2f, + 0x07, 0x36, 0x4a, 0x3e, 0xab, 0x07, 0x36, 0xd2, 0xfe, 0x23, 0x06, 0x0f, + 0x7c, 0xa5, 0x0a, 0xba, 0x0b, 0x70, 0xb6, 0xfc, 0xc6, 0xb2, 0xc2, 0xd5, + 0xf4, 0x63, 0xbd, 0x80, 0x7a, 0xae, 0x16, 0x15, 0xbe, 0x85, 0xd1, 0x23, + 0x66, 0x8d, 0xb9, 0xaa, 0x66, 0x25, 0x55, 0x57, 0x6c, 0x91, 0xac, 0xa6, + 0x32, 0xe7, 0xaf, 0xf0, 0x79, 0x5e, 0x2e, 0x5f, 0x03, 0xc0, 0xfd, 0xc8, + 0xf3, 0x22, 0x2c, 0x77, 0xb7, 0xe6, 0x1f, 0x56, 0xf9, 0x4c, 0x09, 0x0a, + 0x1c, 0xf4, 0x65, 0x83, 0xb9, 0xc9, 0xda, 0xe8, 0x95, 0xa4, 0x3b, 0x4f, + 0x65, 0x7e, 0x65, 0x2a, 0x4e, 0x2d, 0xae, 0xff, 0x00, 0x72, 0x98, 0xa0, + 0x6c, 0x42, 0xe4, 0x9b, 0xab, 0x08, 0x88, 0x50, 0x2c, 0xed, 0x89, 0x62, + 0xe3, 0xe7, 0x15, 0x04, 0x94, 0x66, 0x82, 0x16, 0x2e, 0x54, 0x1e, 0x6c, + 0xb6, 0x80, 0x92, 0xb7, 0xe2, 0x4b, 0xf6, 0xf0, 0x7f, 0x7e, 0x9e, 0x5d, + 0x17, 0xf3, 0x04, 0x31, 0xd2, 0x6e, 0x72, 0x84, 0xb0, 0x0b, 0x43, 0x58, + 0xe2, 0x5e, 0x79, 0x91, 0x7b, 0xb7, 0x5c, 0x09, 0xce, 0x13, 0x5d, 0x72, + 0xb2, 0xde, 0x13, 0x26, 0x7a, 0xe5, 0x53, 0x15, 0xda, 0x5e, 0xec, 0x32, + 0xb9, 0xdc, 0xce, 0xb9, 0x97, 0x1c, 0xe8, 0x8f, 0x56, 0x75, 0xcf, 0x33, + 0xc0, 0x13, 0xd6, 0x0f, 0x63, 0xcb, 0xfc, 0x5c, 0x8f, 0x00, 0xc3, 0x3e, + 0x25, 0xf0, 0xd6, 0x37, 0xab, 0xbf, 0x80, 0x2b, 0x49, 0x7c, 0x72, 0x97, + 0xc5, 0x99, 0x81, 0xca, 0x52, 0x9a, 0x46, 0xef, 0xf7, 0x03, 0x15, 0xae, + 0x20, 0x5f, 0x5e, 0x53, 0x0c, 0x63, 0xa4, 0xd6, 0x56, 0x22, 0x7a, 0x78, + 0x7f, 0x95, 0xc0, 0xf2, 0xff, 0x00, 0x5f, 0x22, 0x5d, 0x53, 0x55, 0x74, + 0x13, 0xad, 0x28, 0xdc, 0xc7, 0x80, 0xbc, 0x12, 0xa8, 0x73, 0x70, 0xe2, + 0x3d, 0xbc, 0x12, 0xc9, 0x1e, 0x2d, 0xc5, 0x77, 0x81, 0x8b, 0xd9, 0x41, + 0x05, 0x69, 0x35, 0x72, 0x9f, 0xdb, 0xe5, 0xe5, 0xfe, 0xfe, 0x92, 0xc8, + 0x56, 0x65, 0xc1, 0x78, 0xfd, 0x81, 0xdb, 0x6c, 0x9c, 0x98, 0x6c, 0x90, + 0x7f, 0x7f, 0x0f, 0x2f, 0x5d, 0xff, 0x00, 0x3e, 0x1d, 0xdf, 0x7d, 0x82, + 0x8b, 0xab, 0xcb, 0x2d, 0x94, 0xaf, 0xf3, 0xf3, 0x07, 0x79, 0x3b, 0xbf, + 0xb0, 0xef, 0x66, 0x34, 0x71, 0x7c, 0xe4, 0x6e, 0xf6, 0x77, 0x3f, 0x61, + 0xde, 0x4e, 0xff, 0x00, 0xcd, 0x03, 0xe1, 0x0f, 0x73, 0xf6, 0x1d, 0xfc, + 0xef, 0x7c, 0xcc, 0xef, 0x23, 0x69, 0xad, 0xcc, 0xba, 0x9f, 0x63, 0x5d, + 0xdb, 0xce, 0x84, 0xef, 0xa2, 0xf7, 0x1f, 0x61, 0xde, 0xce, 0xf1, 0xf3, + 0x13, 0xd7, 0x47, 0x7f, 0x3b, 0xa7, 0xd8, 0x87, 0x72, 0xf3, 0x40, 0xe5, + 0x8e, 0xea, 0x77, 0xef, 0xb0, 0xef, 0x61, 0xf7, 0x66, 0x3e, 0x5c, 0xef, + 0x61, 0xfb, 0x90, 0xd7, 0xd8, 0x0e, 0xe6, 0x77, 0x3e, 0x66, 0x39, 0x0f, + 0xbf, 0x05, 0x75, 0xfe, 0xc3, 0xb9, 0x9d, 0xdf, 0x9f, 0x91, 0xdd, 0xcc, + 0xba, 0xff, 0x00, 0x61, 0xde, 0xc1, 0x5d, 0x5f, 0x31, 0x28, 0xcd, 0x8e, + 0xe6, 0x67, 0x77, 0xf6, 0x1d, 0xec, 0x5a, 0xbc, 0x5f, 0x3b, 0x28, 0xfb, + 0xb3, 0xbb, 0xfb, 0x0e, 0xea, 0x77, 0x6c, 0x1e, 0x64, 0x25, 0xaf, 0xa5, + 0x92, 0xd6, 0xe3, 0xf6, 0x17, 0x3f, 0x0c, 0xcc, 0x47, 0x8f, 0x98, 0x0e, + 0x4b, 0xa7, 0x08, 0x7a, 0xca, 0xa7, 0x4e, 0x27, 0x11, 0x6a, 0x72, 0x19, + 0xca, 0x85, 0xae, 0x09, 0xce, 0xe7, 0x21, 0x9c, 0x89, 0xcf, 0x4e, 0x62, + 0x72, 0x98, 0x26, 0xcc, 0xe6, 0x27, 0x21, 0x88, 0x75, 0x55, 0x1d, 0xe6, + 0xf5, 0xf3, 0x51, 0x78, 0x26, 0x61, 0x95, 0xb4, 0xe1, 0x90, 0xf5, 0x2e, + 0x7d, 0xb0, 0xa6, 0x05, 0x38, 0xf1, 0x39, 0x2b, 0xc3, 0x86, 0x94, 0xdb, + 0x50, 0xb0, 0x08, 0x82, 0x61, 0xe2, 0xcc, 0xd3, 0xc6, 0x0e, 0x1e, 0x73, + 0x1f, 0x30, 0xa8, 0xa1, 0xbc, 0xc9, 0xac, 0x1e, 0x12, 0xe5, 0x15, 0x8d, + 0xae, 0x3a, 0x73, 0x2e, 0xa6, 0x89, 0x77, 0x5c, 0x60, 0xd4, 0x1a, 0x78, + 0xca, 0x13, 0x36, 0x2e, 0x4e, 0x12, 0xc6, 0x11, 0x8f, 0x03, 0xe0, 0x5e, + 0x8d, 0xeb, 0xb7, 0x38, 0xf9, 0x6e, 0xb5, 0x7f, 0x37, 0x5f, 0x99, 0x75, + 0xeb, 0x44, 0x40, 0xa5, 0xba, 0x13, 0x50, 0xdd, 0x12, 0xf5, 0x2b, 0x5a, + 0xef, 0xc3, 0x28, 0x91, 0x6e, 0x98, 0xef, 0x0f, 0x32, 0xc7, 0x9d, 0x47, + 0x84, 0x22, 0xba, 0xd4, 0x23, 0x20, 0xd0, 0x4b, 0xdc, 0xad, 0x0f, 0xe6, + 0x4b, 0xc2, 0xdc, 0x7e, 0xd2, 0x96, 0xe9, 0x5b, 0xcc, 0xe3, 0x34, 0x48, + 0xad, 0x94, 0x04, 0xe7, 0x4b, 0xf2, 0xe1, 0x0b, 0x6b, 0x75, 0xac, 0x4a, + 0x2d, 0x64, 0xc5, 0x5e, 0x3d, 0x99, 0x97, 0x72, 0xed, 0xa4, 0x5a, 0x96, + 0xa8, 0xa7, 0x5d, 0x65, 0xc2, 0xe2, 0xf3, 0xaf, 0x68, 0x3e, 0xf2, 0x9b, + 0x2f, 0xf4, 0x43, 0x4f, 0x96, 0x2c, 0xba, 0x96, 0xbe, 0x09, 0x0f, 0xf9, + 0xb7, 0x25, 0x27, 0xfb, 0xa6, 0x01, 0x0c, 0x06, 0x0f, 0x2e, 0xb1, 0xab, + 0x68, 0x07, 0x4d, 0x7b, 0x19, 0x55, 0xb2, 0x25, 0xe5, 0xe1, 0xad, 0x32, + 0x8d, 0xa5, 0x38, 0xe6, 0x6e, 0xc9, 0x52, 0xcc, 0xd4, 0x1e, 0x45, 0xc7, + 0x4a, 0x9c, 0xf8, 0x45, 0x45, 0xca, 0xc2, 0xfa, 0x40, 0xbd, 0x01, 0x30, + 0x6a, 0x4c, 0x7f, 0x32, 0xaf, 0x79, 0x41, 0x33, 0x09, 0xaa, 0x5a, 0xcc, + 0xb2, 0xfd, 0x49, 0x86, 0xed, 0x27, 0x5d, 0x0e, 0xef, 0x9e, 0xe7, 0x75, + 0x83, 0xd2, 0xed, 0xf1, 0x2c, 0x04, 0xa1, 0x4a, 0xde, 0x61, 0xad, 0xc5, + 0xb4, 0x41, 0xbf, 0xda, 0x7f, 0x75, 0x3a, 0xbe, 0xd1, 0x06, 0xec, 0xf2, + 0x96, 0x71, 0x3c, 0x2a, 0x51, 0x02, 0x82, 0x80, 0xda, 0x57, 0xbc, 0x63, + 0x5a, 0x0d, 0xca, 0xd9, 0x53, 0x2e, 0xc5, 0x95, 0xff, 0x00, 0x98, 0x0d, + 0x97, 0xb4, 0xa5, 0x7e, 0x93, 0x2f, 0xf3, 0x38, 0xed, 0xf4, 0x80, 0xb1, + 0x69, 0xd5, 0x75, 0x66, 0x26, 0x28, 0x5f, 0xa5, 0xf3, 0x7e, 0xde, 0x7c, + 0xce, 0x07, 0xa6, 0xfd, 0xe4, 0xf5, 0x8b, 0xa0, 0xdb, 0xd9, 0x1c, 0x2f, + 0x58, 0xe2, 0xa7, 0x19, 0x6c, 0x00, 0xa5, 0x58, 0x1b, 0x09, 0x68, 0x34, + 0x50, 0x39, 0xf0, 0x68, 0xda, 0x17, 0x00, 0xa0, 0x6e, 0x9a, 0xd4, 0x44, + 0x0b, 0x80, 0x49, 0xa5, 0xeb, 0xb9, 0x5a, 0xcc, 0x0d, 0x0d, 0xbd, 0x96, + 0x28, 0x9d, 0x2a, 0xc6, 0xf3, 0x6e, 0x0c, 0x09, 0x2e, 0x3f, 0x36, 0x25, + 0xa7, 0xfb, 0x4b, 0x5d, 0xe1, 0xb6, 0x6e, 0x65, 0xc6, 0x5f, 0xfc, 0x8b, + 0x5f, 0xf6, 0x15, 0x28, 0x90, 0x07, 0xab, 0xd1, 0x03, 0xe8, 0x2d, 0x0b, + 0xa2, 0xf3, 0xd1, 0xe8, 0xfc, 0xc7, 0x37, 0x9b, 0xf3, 0xe7, 0x09, 0xaa, + 0x0b, 0x90, 0xe1, 0x96, 0xc8, 0xd9, 0xa6, 0x86, 0x64, 0x19, 0x39, 0x18, + 0xa8, 0xb9, 0xdd, 0x7a, 0x85, 0x61, 0xa6, 0x93, 0x79, 0xe2, 0x9c, 0xfb, + 0x40, 0x98, 0xd3, 0x54, 0x74, 0x69, 0x6f, 0x26, 0x80, 0x15, 0x07, 0x00, + 0x98, 0xd5, 0x55, 0x2e, 0x96, 0x0b, 0xcb, 0x55, 0x91, 0xc5, 0x06, 0xf5, + 0x4b, 0x26, 0x8e, 0x02, 0x08, 0xe0, 0x22, 0x15, 0x56, 0x07, 0x1c, 0xce, + 0x0a, 0x3d, 0x4c, 0xac, 0xc7, 0x2c, 0xbc, 0xcc, 0x26, 0xf1, 0xad, 0xe6, + 0xaf, 0xe0, 0x31, 0xeb, 0xf4, 0x40, 0xc3, 0xd4, 0x1c, 0x7d, 0x44, 0xbc, + 0x63, 0x85, 0xc3, 0x74, 0xc6, 0xd2, 0x9b, 0x4d, 0xa1, 0xb1, 0xb6, 0x16, + 0x76, 0x82, 0x9a, 0x05, 0xca, 0xc5, 0xa6, 0xa1, 0xf6, 0xab, 0x1c, 0xa9, + 0xd5, 0x4c, 0xb6, 0xcb, 0xb3, 0x12, 0xbc, 0x82, 0xc3, 0x6a, 0xbe, 0x7e, + 0x04, 0x34, 0x93, 0xa5, 0xbe, 0xa2, 0xb5, 0x3e, 0x3b, 0x31, 0x3b, 0xb4, + 0xd3, 0x53, 0xcb, 0x50, 0x6a, 0x96, 0xc9, 0x6e, 0xd7, 0xcb, 0x63, 0x90, + 0x6b, 0x22, 0x9b, 0x11, 0x54, 0x33, 0xa1, 0xd3, 0x7c, 0x4b, 0xac, 0xcb, + 0xc4, 0xac, 0x96, 0x07, 0xe6, 0x09, 0x78, 0xb6, 0xe2, 0xdf, 0xd4, 0xfd, + 0x2e, 0x32, 0x0c, 0x0d, 0x36, 0x3d, 0x75, 0x8f, 0x12, 0xb1, 0xca, 0x39, + 0x66, 0xb5, 0xa2, 0xd9, 0x3d, 0x36, 0x32, 0x38, 0xd9, 0x7a, 0x11, 0xc6, + 0x7a, 0xbe, 0xaa, 0x93, 0x46, 0x05, 0x7d, 0x59, 0x8d, 0x05, 0x51, 0x4f, + 0x36, 0xc3, 0x26, 0x6b, 0x24, 0x51, 0x62, 0xb2, 0x5e, 0xd3, 0x50, 0x5e, + 0x11, 0x12, 0x2c, 0x1a, 0x23, 0x90, 0xe5, 0xb5, 0xe2, 0xb6, 0xb6, 0xb0, + 0x43, 0xd8, 0x48, 0x52, 0xd5, 0x81, 0x0e, 0x0d, 0x5a, 0x06, 0x68, 0x2e, + 0x34, 0x2d, 0x0f, 0x72, 0xb7, 0x99, 0x66, 0x8b, 0x2a, 0x3a, 0x70, 0x8e, + 0x6e, 0x2e, 0x93, 0xb7, 0xe4, 0x69, 0xef, 0xf4, 0xf5, 0x71, 0x37, 0xed, + 0x0c, 0x6a, 0x29, 0x04, 0x76, 0x77, 0xf1, 0x04, 0xeb, 0xd1, 0xcc, 0x6a, + 0xe0, 0xa2, 0x05, 0x2a, 0x19, 0x52, 0x08, 0x32, 0x83, 0xaa, 0x25, 0x4a, + 0x68, 0x28, 0xe0, 0xbb, 0x9d, 0x07, 0x68, 0x86, 0x9a, 0x72, 0x86, 0x31, + 0xd4, 0x68, 0x26, 0x05, 0x66, 0xc7, 0x18, 0xba, 0xb3, 0x81, 0xb2, 0xcc, + 0x6f, 0x60, 0xe9, 0x91, 0x6a, 0xa3, 0x59, 0x85, 0x6d, 0x4b, 0x6b, 0x0f, + 0x7f, 0x87, 0x16, 0x65, 0x45, 0x0b, 0x60, 0x30, 0x6b, 0xd1, 0x6e, 0x8e, + 0xa6, 0xaa, 0x6b, 0xbf, 0x81, 0x78, 0xa7, 0x24, 0xbd, 0x58, 0x48, 0x45, + 0x3e, 0xc1, 0xf5, 0x2a, 0xf3, 0x71, 0x46, 0xcf, 0xf0, 0x44, 0xd0, 0xea, + 0x4d, 0x66, 0xc5, 0x00, 0xd0, 0x9c, 0x11, 0x1c, 0x22, 0x58, 0x8e, 0x11, + 0xa6, 0x6e, 0x88, 0x41, 0xa2, 0xb8, 0xd8, 0xa5, 0x6c, 0x58, 0x28, 0x86, + 0x41, 0x30, 0x6b, 0x00, 0x26, 0xbe, 0x50, 0x37, 0x39, 0xd0, 0x82, 0xb8, + 0xae, 0xe6, 0x51, 0x5c, 0x5b, 0xc8, 0x22, 0x86, 0x83, 0x36, 0x54, 0x59, + 0x0d, 0x0d, 0x3d, 0xaa, 0x85, 0x8d, 0x5c, 0x53, 0x71, 0x58, 0x06, 0xc2, + 0xcc, 0x30, 0xa3, 0x92, 0xd3, 0x2d, 0x11, 0x62, 0x38, 0x26, 0x85, 0x11, + 0x4d, 0x5b, 0x4f, 0x5d, 0x7d, 0xbe, 0xad, 0xa3, 0x24, 0xb9, 0x45, 0xce, + 0x9e, 0x07, 0x8d, 0xe0, 0xad, 0xc6, 0x49, 0xb6, 0xb1, 0x6a, 0xab, 0x1d, + 0x30, 0x7b, 0x4d, 0x52, 0xb0, 0x82, 0x55, 0x12, 0x88, 0xa5, 0x0d, 0x9b, + 0x98, 0xec, 0xd4, 0x02, 0x5e, 0x8a, 0x4e, 0xa8, 0x68, 0x62, 0x85, 0x93, + 0x5b, 0x2f, 0x32, 0x68, 0x6d, 0xa5, 0x71, 0x04, 0x86, 0x46, 0x33, 0xd4, + 0x1a, 0xd3, 0x7d, 0x5b, 0x6d, 0x55, 0x84, 0x61, 0x3d, 0x96, 0x16, 0x9b, + 0x07, 0xf3, 0x00, 0x0a, 0x30, 0x7d, 0x6e, 0x2e, 0x04, 0xd5, 0x71, 0x1d, + 0xa2, 0x07, 0x99, 0x16, 0xae, 0x57, 0xa4, 0x6e, 0xbf, 0x8e, 0x70, 0xcd, + 0x7f, 0xd1, 0x49, 0xfe, 0xc3, 0x1b, 0xab, 0xbd, 0x85, 0xfb, 0x9d, 0x72, + 0xb8, 0x7a, 0xe8, 0x20, 0xc0, 0x27, 0x61, 0x9d, 0xe0, 0x17, 0x03, 0x79, + 0xa9, 0xeb, 0xfa, 0x43, 0x35, 0x34, 0x94, 0x07, 0xfe, 0xd7, 0xff, 0xda, + 0x00, 0x0c, 0x03, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00, 0x10, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x13, 0x3e, 0xdb, 0xc0, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x8d, 0xff, 0x00, + 0xdb, 0x6f, 0xf9, 0x98, 0x00, 0x00, 0x17, 0xef, 0xfe, 0xdb, 0xfd, 0xb7, + 0xdf, 0x20, 0x00, 0x0b, 0x7e, 0xbe, 0xfb, 0xfd, 0xff, 0x00, 0xdb, 0x7d, + 0x00, 0x07, 0x3e, 0xf7, 0xc4, 0x9e, 0x4f, 0xb8, 0x6d, 0x90, 0x00, 0xed, + 0xda, 0x6c, 0x68, 0xec, 0x08, 0x43, 0xd2, 0x00, 0x0c, 0xb6, 0xff, 0x00, + 0xfd, 0x2b, 0x70, 0x9b, 0xfe, 0x40, 0x03, 0xde, 0x7f, 0x6d, 0xf7, 0xff, + 0x00, 0xef, 0xf7, 0x68, 0x00, 0x7b, 0xdf, 0xef, 0xb6, 0xfb, 0x7d, 0xff, + 0x00, 0xd9, 0x00, 0x0f, 0x58, 0x10, 0x01, 0xb0, 0x40, 0x01, 0x3b, 0x20, + 0x01, 0xcf, 0x49, 0x24, 0x92, 0x49, 0x24, 0x93, 0xb4, 0x00, 0x3b, 0x69, + 0x24, 0x92, 0x49, 0x24, 0x92, 0xa4, 0x80, 0x03, 0x7d, 0x24, 0x92, 0x49, + 0x24, 0x92, 0x54, 0xd0, 0x00, 0x6e, 0xa4, 0x92, 0x49, 0x24, 0x92, 0x48, + 0x96, 0x00, 0x1f, 0xd4, 0x92, 0x49, 0x24, 0x92, 0x49, 0x3b, 0xc0, 0x03, + 0xba, 0x92, 0x49, 0x24, 0x92, 0x49, 0x2b, 0x58, 0x00, 0x76, 0x52, 0x49, + 0x24, 0x92, 0x49, 0x25, 0x6f, 0x00, 0x0e, 0xf2, 0x49, 0x24, 0x92, 0x49, + 0x24, 0x89, 0xc0, 0x01, 0xfd, 0x49, 0x24, 0x92, 0x49, 0x24, 0x91, 0xa8, + 0x00, 0x3f, 0x29, 0x24, 0x92, 0x49, 0x24, 0x92, 0x35, 0x00, 0x05, 0xf5, + 0x24, 0x92, 0x49, 0x24, 0x92, 0x45, 0x90, 0x00, 0x7e, 0xa4, 0x92, 0x49, + 0x24, 0x92, 0x48, 0xd2, 0x00, 0x1f, 0xd4, 0x92, 0x49, 0x24, 0x92, 0x49, + 0x12, 0x80, 0x01, 0xba, 0x92, 0x49, 0x24, 0x92, 0x49, 0x22, 0x70, 0x00, + 0x3e, 0xd2, 0x49, 0x24, 0x92, 0x49, 0x24, 0xeb, 0x00, 0x06, 0x66, 0x6f, + 0x27, 0x16, 0xd8, 0x44, 0x93, 0x60, 0x01, 0xcf, 0x4f, 0xe5, 0xda, 0x4b, + 0x2c, 0xbb, 0x6c, 0x00, 0x3f, 0xe4, 0x9f, 0xfb, 0xfb, 0x20, 0x37, 0xef, + 0x80, 0x05, 0xef, 0x40, 0x20, 0x3f, 0x65, 0xbb, 0x9d, 0x60, 0x00, 0xd0, + 0x36, 0xdf, 0x7e, 0xcd, 0x93, 0x7e, 0xe0, 0x00, 0x13, 0x86, 0xdb, 0xf9, + 0x7b, 0x13, 0x7d, 0xb8, 0x00, 0x00, 0x4f, 0x53, 0xcc, 0x6f, 0xf6, 0xcb, + 0x63, 0x80, 0x00, 0x03, 0xfb, 0xec, 0xfb, 0xfa, 0xef, 0xb6, 0x80, 0x00, + 0x00, 0x27, 0x7d, 0x9e, 0x84, 0xb3, 0xf6, 0xe0, 0x00, 0x00, 0x01, 0xad, + 0xf8, 0xd8, 0x7f, 0xbe, 0xf4, 0x00, 0x00, 0x00, 0x13, 0xf6, 0x61, 0x44, + 0x0f, 0xd6, 0x00, 0x00, 0x00, 0x03, 0x56, 0xe1, 0xcb, 0x8b, 0xde, 0x80, + 0x00, 0x00, 0x00, 0x0c, 0xfb, 0x2e, 0x20, 0x1e, 0x40, 0x00, 0x00, 0x00, + 0x00, 0x1e, 0xe7, 0xde, 0x1b, 0x90, 0x00, 0x00, 0x00, 0x00, 0x06, 0x01, + 0x3c, 0x94, 0xd0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x7f, 0xff, 0xc4, 0x00, 0x1f, 0x11, 0x00, 0x02, 0x02, 0x03, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x11, + 0x00, 0x10, 0x20, 0x31, 0x40, 0x30, 0x41, 0x50, 0x21, 0x60, 0xff, 0xda, + 0x00, 0x08, 0x01, 0x03, 0x01, 0x01, 0x3f, 0x10, 0xfc, 0x37, 0x1c, 0x71, + 0xc7, 0xee, 0xe3, 0x8f, 0xd1, 0xc7, 0x1f, 0x81, 0x3c, 0x43, 0x23, 0xd2, + 0x73, 0x51, 0x45, 0x4a, 0x2a, 0x54, 0xb0, 0x18, 0x9c, 0xc5, 0xfd, 0xad, + 0xc3, 0x09, 0xb3, 0xab, 0x18, 0x9f, 0x1f, 0xb3, 0xec, 0x71, 0xc3, 0x1c, + 0x73, 0xe6, 0x03, 0x13, 0xc8, 0x31, 0x3c, 0x83, 0x13, 0x6a, 0x28, 0xa2, + 0x8a, 0x28, 0xa2, 0x8a, 0x28, 0xa2, 0x8a, 0x28, 0xac, 0x62, 0x68, 0x70, + 0x1a, 0x18, 0x9a, 0x1c, 0x07, 0x54, 0x31, 0x34, 0x38, 0x0e, 0xa8, 0x62, + 0x68, 0x70, 0x1d, 0x50, 0xc4, 0xd0, 0xe0, 0x3a, 0xa1, 0x89, 0xa1, 0xc0, + 0x75, 0x43, 0x13, 0x43, 0x80, 0xea, 0x86, 0x27, 0x88, 0xeb, 0x33, 0xc4, + 0x75, 0x99, 0xa1, 0xc0, 0x75, 0x99, 0xa1, 0xc0, 0x75, 0x43, 0x13, 0x43, + 0x80, 0xea, 0x86, 0x26, 0x87, 0x01, 0xd6, 0x66, 0x87, 0x01, 0xd6, 0x66, + 0x87, 0x01, 0xa1, 0x89, 0xa1, 0x4e, 0x3b, 0x7e, 0x83, 0x13, 0xc8, 0x31, + 0x3c, 0x83, 0x13, 0xee, 0xe3, 0xf2, 0xf9, 0x07, 0xe0, 0x1e, 0x13, 0x6e, + 0x3a, 0x71, 0xe0, 0xe3, 0x8e, 0x38, 0xe3, 0xf1, 0x3e, 0x0a, 0x28, 0xb8, + 0x35, 0x96, 0xa3, 0x8e, 0x39, 0xbf, 0x73, 0x88, 0xa6, 0x5d, 0x12, 0xa0, + 0x87, 0x8c, 0x50, 0xfa, 0x80, 0x7d, 0xc2, 0x18, 0x4f, 0xeb, 0x84, 0x2d, + 0xf1, 0x88, 0xa8, 0x88, 0x00, 0x11, 0x80, 0x8e, 0x0c, 0x26, 0x5f, 0x29, + 0xa1, 0xce, 0xe3, 0x8f, 0x9d, 0x7f, 0x80, 0xff, 0xc4, 0x00, 0x1f, 0x11, + 0x00, 0x02, 0x01, 0x05, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x11, 0x10, 0x20, 0x21, 0x31, 0x41, + 0x40, 0x30, 0x51, 0x50, 0xff, 0xda, 0x00, 0x08, 0x01, 0x02, 0x01, 0x01, + 0x3f, 0x10, 0xfe, 0x14, 0x32, 0x19, 0x0c, 0x86, 0x43, 0x21, 0x90, 0xfe, + 0xd0, 0x42, 0x21, 0x7d, 0x21, 0x10, 0x86, 0xbe, 0x09, 0x47, 0x89, 0xab, + 0x92, 0x97, 0x66, 0x7c, 0x0f, 0x17, 0x15, 0x19, 0x27, 0x69, 0x24, 0x92, + 0x4f, 0x49, 0x24, 0x59, 0x26, 0x92, 0x2c, 0xd5, 0xdb, 0xd5, 0x60, 0x82, + 0x0e, 0x0c, 0x8a, 0x45, 0x0e, 0x10, 0x90, 0x94, 0x8f, 0x0f, 0x07, 0x45, + 0xba, 0x31, 0xdb, 0xd0, 0xa8, 0xbb, 0x46, 0x72, 0xb1, 0x83, 0x90, 0x43, + 0x20, 0x5b, 0xc8, 0xd7, 0xe0, 0x94, 0x1d, 0x91, 0x61, 0xd5, 0xdb, 0xd0, + 0xa9, 0x04, 0xfd, 0xd8, 0xed, 0xe8, 0x5e, 0x37, 0x6f, 0x42, 0x24, 0x92, + 0x51, 0x28, 0x92, 0x51, 0x28, 0x94, 0x4a, 0x25, 0x12, 0x89, 0x44, 0xa2, + 0x51, 0x24, 0xd5, 0xdb, 0xd0, 0x87, 0xe0, 0xfc, 0x0c, 0x76, 0xf4, 0x21, + 0xf8, 0x16, 0xc6, 0x3b, 0x7a, 0x10, 0xfc, 0x0b, 0x63, 0x1d, 0xbd, 0x08, + 0x7b, 0xf0, 0x2d, 0x8c, 0x76, 0xf4, 0x21, 0xef, 0xc0, 0xb6, 0x31, 0xdb, + 0xd0, 0x87, 0xbf, 0x06, 0xc3, 0x1d, 0xbd, 0x08, 0x7b, 0xf0, 0x6c, 0x31, + 0xdb, 0xd0, 0xbc, 0x3b, 0x0c, 0x76, 0xf4, 0x22, 0x3c, 0x1b, 0x0c, 0x76, + 0xf4, 0x21, 0xef, 0xc1, 0xb0, 0xc7, 0x6f, 0x42, 0x1e, 0xfc, 0x1b, 0x0c, + 0x76, 0xf4, 0x21, 0xef, 0xc1, 0xb0, 0xc7, 0x6f, 0x42, 0x1e, 0xfc, 0x1b, + 0x0c, 0x76, 0xf4, 0x21, 0xef, 0xc1, 0xb0, 0xc7, 0x6f, 0x42, 0x12, 0x1f, + 0x83, 0x61, 0x8e, 0xde, 0x84, 0x3c, 0xdf, 0x9b, 0x72, 0x66, 0xab, 0x03, + 0x1d, 0xbd, 0x0a, 0x98, 0x30, 0x60, 0xc1, 0x83, 0x14, 0xc1, 0x8a, 0x62, + 0xb8, 0x20, 0x79, 0xa3, 0xb7, 0xab, 0x24, 0x92, 0x49, 0xb6, 0x49, 0x30, + 0x60, 0x9a, 0x6a, 0x8e, 0xdd, 0xa8, 0xc8, 0x64, 0x10, 0x41, 0x04, 0x3a, + 0xb2, 0x08, 0x20, 0x82, 0x2c, 0x76, 0xad, 0x8f, 0x63, 0xbd, 0x06, 0x2b, + 0xd7, 0xc1, 0xe5, 0x27, 0xf0, 0x5a, 0xa2, 0xdb, 0x13, 0xbb, 0xac, 0x77, + 0xe4, 0xa0, 0x43, 0x12, 0x24, 0x48, 0x90, 0x95, 0x66, 0x06, 0xa4, 0x91, + 0x22, 0x44, 0x89, 0x1c, 0x81, 0xde, 0xd0, 0xc7, 0xbb, 0x59, 0x24, 0x89, + 0x64, 0x89, 0xfb, 0xed, 0x5a, 0xc6, 0xe7, 0x84, 0x10, 0x41, 0xab, 0x9f, + 0xc5, 0x38, 0x63, 0x51, 0x71, 0x65, 0xc1, 0x03, 0xc0, 0xdc, 0x8b, 0xee, + 0xb2, 0xac, 0xda, 0x8a, 0x51, 0x2c, 0x91, 0x43, 0xd8, 0xac, 0x7f, 0x34, + 0xe1, 0x8e, 0xc4, 0xd1, 0x31, 0xac, 0x92, 0xe2, 0x04, 0xf0, 0x27, 0x2a, + 0x2d, 0x92, 0x46, 0xe8, 0xaa, 0xfe, 0xdb, 0xcd, 0x90, 0x41, 0x1f, 0xb6, + 0x3f, 0xbe, 0x89, 0x26, 0xe9, 0x27, 0xfb, 0x7f, 0xff, 0xc4, 0x00, 0x2a, + 0x10, 0x01, 0x00, 0x02, 0x02, 0x01, 0x02, 0x06, 0x02, 0x03, 0x00, 0x03, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x11, 0x21, 0x31, 0x41, 0x51, + 0x61, 0x20, 0x71, 0x81, 0x91, 0xa1, 0xb1, 0xc1, 0xf0, 0x30, 0x40, 0xd1, + 0x10, 0x50, 0xf1, 0xe1, 0xff, 0xda, 0x00, 0x08, 0x01, 0x01, 0x00, 0x01, + 0x3f, 0x10, 0xff, 0x00, 0xa1, 0x29, 0x03, 0xb3, 0x43, 0xee, 0xc7, 0xe6, + 0x7b, 0x56, 0x1e, 0x91, 0x71, 0x66, 0xbf, 0x7d, 0x5c, 0xb7, 0x11, 0xda, + 0xbd, 0xc8, 0x18, 0xf8, 0xa3, 0x28, 0x03, 0x7c, 0x84, 0x9a, 0x2d, 0x8d, + 0x7f, 0xbc, 0x26, 0x9a, 0x01, 0x49, 0x7d, 0xe0, 0x51, 0x29, 0xd3, 0x63, + 0xec, 0xff, 0x00, 0x22, 0x81, 0x56, 0x83, 0x6b, 0x1e, 0xe0, 0xa0, 0x8e, + 0x89, 0x31, 0xec, 0x82, 0x26, 0x38, 0x68, 0x1e, 0xa8, 0x51, 0xb2, 0x50, + 0x0a, 0x1e, 0xa4, 0x92, 0xbb, 0x9a, 0x80, 0x7d, 0x0d, 0x23, 0x8a, 0x83, + 0x36, 0x97, 0xee, 0x16, 0x9b, 0x71, 0xb7, 0xac, 0x6d, 0xe9, 0xe6, 0xa6, + 0x44, 0xd1, 0x01, 0xd9, 0xde, 0xe5, 0x05, 0x88, 0x7d, 0xc2, 0x92, 0xa5, + 0x74, 0x98, 0x32, 0xcf, 0x79, 0x95, 0x1d, 0xa4, 0x57, 0xcc, 0x37, 0x51, + 0x82, 0x4f, 0x22, 0xe7, 0x2f, 0xaa, 0x32, 0xf9, 0xa8, 0xbe, 0xf7, 0x01, + 0x08, 0xda, 0x3b, 0xbd, 0xdf, 0xc1, 0x0e, 0xec, 0xac, 0xd0, 0xc6, 0x09, + 0xb6, 0x5a, 0x06, 0x97, 0x83, 0xf8, 0x10, 0x80, 0x34, 0xed, 0x25, 0x8f, + 0x4e, 0x37, 0xe5, 0x15, 0x0d, 0xda, 0xfc, 0x4b, 0xea, 0x81, 0xed, 0x5a, + 0x9b, 0xd1, 0x4b, 0xc9, 0x5b, 0x8b, 0x12, 0xee, 0xb9, 0xa8, 0x0b, 0xa5, + 0xeb, 0x84, 0x97, 0x74, 0x57, 0xaa, 0x20, 0x1a, 0xe8, 0x6e, 0xfd, 0x20, + 0x1a, 0x44, 0xf9, 0xc0, 0x13, 0xbf, 0x21, 0x1a, 0x2b, 0x81, 0xf8, 0xa8, + 0x5e, 0xc3, 0x6b, 0x8b, 0x26, 0x4a, 0x4b, 0xf5, 0x5c, 0x45, 0x84, 0xb4, + 0xe9, 0x31, 0x68, 0xbb, 0x6b, 0x0f, 0xdc, 0xf2, 0x07, 0x17, 0xc6, 0x62, + 0xd1, 0x55, 0xac, 0x75, 0x60, 0xc6, 0x40, 0x44, 0xb3, 0xca, 0x36, 0x9d, + 0x95, 0x9b, 0x85, 0xe7, 0xb9, 0xf2, 0xe9, 0x5e, 0x1c, 0x37, 0x37, 0x34, + 0x84, 0xda, 0x74, 0x40, 0xaf, 0xa8, 0x44, 0x16, 0xd4, 0xb9, 0x20, 0x56, + 0x5c, 0xd6, 0x02, 0x00, 0x6c, 0xed, 0x17, 0xab, 0x99, 0x48, 0x4e, 0xbf, + 0xc5, 0x1b, 0x67, 0xc8, 0x10, 0x39, 0x96, 0x1a, 0xdf, 0x51, 0xcc, 0xa1, + 0x28, 0x55, 0xf0, 0xfc, 0xcb, 0x02, 0x24, 0x3d, 0x2a, 0x53, 0x95, 0x5f, + 0x7e, 0xf1, 0x04, 0x3a, 0x20, 0x55, 0x37, 0x63, 0x86, 0x28, 0x97, 0xb1, + 0xfb, 0xa8, 0x2d, 0x8b, 0x1e, 0x4a, 0x94, 0x05, 0xdf, 0xc9, 0x80, 0xb8, + 0x50, 0x99, 0x6d, 0xe2, 0x5e, 0xe2, 0x2f, 0x7a, 0x19, 0x68, 0x73, 0x64, + 0x54, 0x85, 0x63, 0xb6, 0x48, 0x43, 0x49, 0xbb, 0x43, 0x76, 0x3c, 0x32, + 0xd8, 0xaa, 0x98, 0x7e, 0x85, 0x8b, 0xeb, 0xe1, 0xa6, 0x60, 0x45, 0xe2, + 0xe9, 0x7d, 0xa0, 0xbd, 0xd3, 0x6e, 0xe5, 0x84, 0xa0, 0x35, 0x61, 0x4e, + 0x3c, 0xa2, 0xf0, 0x1d, 0x68, 0xda, 0x54, 0x33, 0xe8, 0x30, 0xe0, 0xb4, + 0x81, 0x80, 0x3a, 0x62, 0x24, 0xd6, 0x5c, 0xc1, 0x64, 0xbe, 0x44, 0x50, + 0x01, 0x56, 0xab, 0x2a, 0x7a, 0x44, 0xc7, 0xd4, 0x80, 0x6c, 0xf5, 0x85, + 0x7a, 0x29, 0xba, 0xad, 0xca, 0x0b, 0x16, 0xea, 0xab, 0x1f, 0x70, 0x56, + 0x46, 0x1b, 0x16, 0x82, 0xd7, 0xdc, 0x1b, 0xda, 0xa9, 0x99, 0x76, 0xef, + 0x01, 0x51, 0xd1, 0xd6, 0x99, 0x54, 0x8b, 0x9e, 0x01, 0x62, 0x76, 0x00, + 0xe0, 0x6b, 0xfc, 0x95, 0xea, 0x51, 0xce, 0xb4, 0x80, 0xca, 0x96, 0xc1, + 0xc3, 0x9e, 0x61, 0x55, 0xaa, 0x6d, 0x1c, 0xbd, 0x04, 0x16, 0x55, 0xb8, + 0x2e, 0xff, 0x00, 0xfb, 0x11, 0xb7, 0x0a, 0xf3, 0x96, 0xe3, 0x89, 0x83, + 0x1d, 0x06, 0x8f, 0xb7, 0xc3, 0x98, 0x52, 0x82, 0xe2, 0x15, 0xe8, 0x0b, + 0xeb, 0x80, 0x84, 0x00, 0x34, 0x53, 0x89, 0x89, 0x89, 0xad, 0x79, 0x04, + 0xc5, 0x76, 0xfd, 0xf9, 0xcb, 0x55, 0x89, 0x65, 0x2f, 0x21, 0xf9, 0xf8, + 0x8a, 0x4c, 0x16, 0x06, 0xe8, 0xcb, 0xaf, 0x2a, 0x89, 0xa7, 0x50, 0x57, + 0x22, 0x2b, 0x8f, 0x39, 0x71, 0x94, 0xa5, 0xb1, 0xb2, 0xef, 0xaa, 0xc7, + 0x28, 0xdc, 0x22, 0x84, 0x02, 0x83, 0xa3, 0x6f, 0xac, 0xc3, 0xa0, 0x08, + 0xe8, 0x07, 0xe8, 0xf6, 0x60, 0x15, 0x1a, 0xd8, 0xe5, 0xec, 0xcc, 0x72, + 0x1c, 0x15, 0x15, 0x1a, 0x78, 0x69, 0xe9, 0x0b, 0xbe, 0x66, 0xca, 0x51, + 0x25, 0xf5, 0x14, 0xf5, 0x98, 0x8d, 0x06, 0xdb, 0x42, 0xb7, 0x37, 0xc4, + 0x28, 0xa5, 0x80, 0xdd, 0x8a, 0x0e, 0xc9, 0x9f, 0x58, 0x6f, 0x64, 0xda, + 0xbb, 0x97, 0xe7, 0x10, 0x48, 0x63, 0xc2, 0xd0, 0x28, 0x17, 0xdd, 0x4a, + 0xef, 0x0d, 0x96, 0x0c, 0xd4, 0xa8, 0xd6, 0xfb, 0x40, 0x11, 0xba, 0xb8, + 0xbf, 0x08, 0x16, 0x2b, 0x87, 0xac, 0x0e, 0x07, 0x49, 0x99, 0xaa, 0x5e, + 0x5c, 0x67, 0x32, 0xcc, 0x76, 0x86, 0x4f, 0x46, 0x25, 0xcb, 0x02, 0xbc, + 0xb7, 0x09, 0x76, 0x41, 0xb0, 0x31, 0xa4, 0x04, 0xb6, 0xab, 0x98, 0xc6, + 0x98, 0xd4, 0x33, 0x98, 0xc2, 0x51, 0xbf, 0x69, 0xa9, 0x0e, 0x5b, 0x68, + 0x03, 0xde, 0xac, 0x61, 0x99, 0x9d, 0x16, 0x9b, 0xa1, 0x7a, 0x20, 0x3d, + 0x60, 0x9f, 0x54, 0x2d, 0x1a, 0x40, 0xbc, 0x53, 0xf2, 0x94, 0xb7, 0x9c, + 0x34, 0x22, 0x24, 0xe0, 0xa7, 0x7f, 0x3b, 0x88, 0xb0, 0x61, 0x42, 0x98, + 0x43, 0xa0, 0xd6, 0x35, 0x0b, 0x64, 0xb5, 0x55, 0xd4, 0x5f, 0x27, 0xcc, + 0xcc, 0x64, 0x93, 0x74, 0xf5, 0x58, 0x06, 0xa0, 0xdd, 0xe4, 0x12, 0xe1, + 0xe4, 0x1c, 0x0b, 0x07, 0x47, 0x19, 0x10, 0x3d, 0xe3, 0x6b, 0x6f, 0xd5, + 0xcf, 0x68, 0x40, 0x42, 0xbf, 0x7a, 0x5c, 0xa5, 0x78, 0x44, 0x3e, 0xcf, + 0x0e, 0x74, 0x37, 0xbc, 0x72, 0x07, 0xa9, 0x71, 0x96, 0x94, 0x23, 0xdd, + 0x98, 0x87, 0x96, 0x54, 0xad, 0xae, 0x93, 0x99, 0x73, 0x88, 0x39, 0xdf, + 0x03, 0x3a, 0xbc, 0x5d, 0x06, 0x8b, 0x54, 0x52, 0x60, 0x4e, 0x03, 0xea, + 0x1e, 0x91, 0x4a, 0x0b, 0x66, 0xb7, 0x10, 0x45, 0xe0, 0x38, 0x01, 0x99, + 0x5e, 0x68, 0x72, 0x56, 0x20, 0x82, 0xd3, 0xba, 0x7d, 0x41, 0x5e, 0xdd, + 0x69, 0xe3, 0xa4, 0x48, 0x91, 0x93, 0x4e, 0xf3, 0x14, 0xb6, 0x8b, 0x73, + 0x85, 0x6e, 0x16, 0x68, 0xe4, 0xe4, 0xad, 0x77, 0xef, 0x16, 0x9b, 0x2a, + 0xaf, 0x37, 0x7e, 0xf2, 0xf4, 0x01, 0xe1, 0xbf, 0x96, 0x2c, 0x63, 0x45, + 0xdb, 0x79, 0x96, 0xd6, 0x90, 0x21, 0xbc, 0x1e, 0xa6, 0xe3, 0x95, 0x28, + 0xce, 0x6e, 0x87, 0xfc, 0xf8, 0x41, 0x6e, 0x6c, 0x06, 0xf1, 0xfa, 0x11, + 0xa1, 0xba, 0x34, 0x06, 0xe7, 0x78, 0x3a, 0x24, 0x54, 0x14, 0xb4, 0x3b, + 0x6a, 0x82, 0xe2, 0xb6, 0x56, 0x78, 0xbc, 0xd7, 0x73, 0xa7, 0xa4, 0x6f, + 0x92, 0xb4, 0x8d, 0x98, 0x2b, 0x72, 0x2b, 0x81, 0xaa, 0x99, 0xda, 0x23, + 0xc4, 0x68, 0xae, 0xc7, 0x24, 0xc9, 0x6b, 0xa3, 0x07, 0xac, 0xa7, 0x67, + 0x78, 0x34, 0x6f, 0xb5, 0x7b, 0xcb, 0x85, 0xa5, 0xee, 0xc1, 0xa8, 0x09, + 0x78, 0xd0, 0x7e, 0xbf, 0x6e, 0x25, 0x17, 0x26, 0x2b, 0xe6, 0x28, 0xc1, + 0x91, 0x8b, 0x67, 0xcf, 0xe2, 0x59, 0x17, 0x4d, 0x68, 0xd3, 0xff, 0x00, + 0x92, 0x80, 0xa6, 0x0d, 0x59, 0xb3, 0x18, 0x82, 0xb5, 0x18, 0x38, 0x31, + 0x79, 0xce, 0x23, 0x25, 0xdd, 0x3a, 0x4a, 0xd3, 0x7a, 0x3b, 0x47, 0x6d, + 0xb1, 0xa1, 0xaf, 0xd7, 0x37, 0xe1, 0x55, 0x43, 0x90, 0x75, 0x02, 0x1a, + 0x5d, 0xf3, 0x98, 0x51, 0x72, 0x89, 0x0d, 0x84, 0x66, 0x38, 0xe9, 0x31, + 0x0a, 0x5d, 0x8a, 0x88, 0x3e, 0x70, 0x42, 0xd5, 0x51, 0x71, 0x60, 0x4b, + 0xd7, 0x71, 0xd0, 0x0c, 0xcb, 0xda, 0x70, 0xf3, 0x44, 0xb6, 0x5b, 0x73, + 0x91, 0xb8, 0xea, 0xd5, 0xce, 0x3f, 0xd8, 0xee, 0x37, 0x4c, 0x90, 0x37, + 0xa7, 0x93, 0x19, 0x8e, 0x6a, 0x5e, 0xba, 0xcc, 0xcb, 0x76, 0x7a, 0x11, + 0xe0, 0x4f, 0x70, 0x49, 0x4d, 0x06, 0x2e, 0xd5, 0xf9, 0x94, 0x1e, 0x71, + 0x31, 0x13, 0xd1, 0x6b, 0xcf, 0x0c, 0x0e, 0x0e, 0x76, 0x88, 0x44, 0xbc, + 0x6e, 0xf2, 0xf0, 0x9b, 0x59, 0x5d, 0x7e, 0xd0, 0xc2, 0x85, 0x34, 0x5b, + 0x02, 0x65, 0xa5, 0x3f, 0xa1, 0xa3, 0x4b, 0x2f, 0xa2, 0xfe, 0xf7, 0x8e, + 0xa5, 0xd8, 0xd4, 0x62, 0xe6, 0xef, 0xd0, 0xc7, 0x84, 0x04, 0x82, 0xd5, + 0x8f, 0x1a, 0x8e, 0xb2, 0xb0, 0xd9, 0xdf, 0x73, 0xf7, 0x7b, 0x7f, 0x41, + 0x0a, 0x39, 0x17, 0xed, 0x30, 0x2b, 0xc2, 0xa7, 0x5c, 0xc2, 0x2b, 0x12, + 0xdf, 0x1e, 0x1a, 0x02, 0xe6, 0xf2, 0xf4, 0x20, 0x32, 0x63, 0x5f, 0x49, + 0xfb, 0xdd, 0xbf, 0xa1, 0xfb, 0x7d, 0xa5, 0x45, 0xab, 0xf7, 0x40, 0x8e, + 0xbb, 0xfc, 0x5e, 0x1a, 0x8f, 0xcd, 0xfe, 0x12, 0xcc, 0xdf, 0xad, 0xdb, + 0xfa, 0x02, 0xdf, 0x8b, 0xfd, 0x4a, 0xad, 0xdf, 0xf7, 0x32, 0xfd, 0xed, + 0x78, 0x7d, 0xcb, 0xf0, 0x82, 0xf3, 0xf2, 0x7d, 0xcc, 0x7a, 0x1f, 0xe3, + 0xfa, 0x01, 0xa8, 0xeb, 0xfa, 0x97, 0x16, 0xb9, 0xfd, 0xcc, 0xbf, 0x5b, + 0x5e, 0x1b, 0xb4, 0xbc, 0x9f, 0x04, 0x6d, 0x5c, 0x1c, 0xc6, 0xda, 0xeb, + 0xfe, 0x81, 0x71, 0xc5, 0x9c, 0xbb, 0xfb, 0x22, 0xbc, 0x7a, 0x2f, 0xaf, + 0x09, 0xcf, 0xaa, 0x7e, 0x84, 0x74, 0x93, 0x62, 0x3f, 0xa3, 0xfd, 0x03, + 0x8c, 0xdc, 0x37, 0xd2, 0x8f, 0x79, 0x8e, 0x0d, 0xfe, 0x2f, 0x08, 0xbe, + 0xb1, 0xfa, 0x11, 0xa8, 0xcf, 0x23, 0xf6, 0x5f, 0xe8, 0x1b, 0x38, 0x60, + 0x6c, 0x32, 0x3f, 0xdb, 0x1e, 0x1c, 0x03, 0x76, 0x7e, 0x09, 0x6b, 0xba, + 0xc6, 0xaf, 0xed, 0x7f, 0xd0, 0xb6, 0x2d, 0x9f, 0x84, 0x26, 0xf7, 0x23, + 0x80, 0xf5, 0x37, 0xc7, 0x86, 0xe3, 0x1f, 0xa8, 0x4c, 0x0b, 0xc0, 0xfb, + 0x8f, 0x7b, 0x39, 0x38, 0xfe, 0x82, 0xc8, 0x6e, 0xdf, 0x51, 0x97, 0x75, + 0x7f, 0x72, 0xbe, 0xe5, 0xf1, 0xe1, 0x4a, 0x78, 0x1f, 0xa1, 0x11, 0xe8, + 0xc5, 0x35, 0xeb, 0xfe, 0x86, 0x2c, 0x75, 0x7d, 0x33, 0x2a, 0xfa, 0xfe, + 0xe2, 0x28, 0xaa, 0xdd, 0xf1, 0xe1, 0x4f, 0xec, 0xe9, 0x05, 0x1d, 0xe6, + 0x5e, 0x4e, 0xef, 0xfd, 0x0c, 0x83, 0xbb, 0xe9, 0x9e, 0xa1, 0xfd, 0xc2, + 0xde, 0xf3, 0xf8, 0xbc, 0x39, 0x9f, 0x1f, 0xe2, 0x31, 0x09, 0x87, 0xba, + 0x3c, 0x9d, 0xdf, 0xd0, 0xb5, 0xfc, 0xeb, 0x2a, 0xda, 0xff, 0x00, 0x68, + 0xcb, 0xcf, 0xda, 0xbc, 0x36, 0xbf, 0x8a, 0xb7, 0xc4, 0x2c, 0xcd, 0x1a, + 0x76, 0x86, 0xbf, 0xa1, 0xab, 0x9b, 0xcb, 0x0d, 0x8f, 0xed, 0x70, 0x8a, + 0xbb, 0xdf, 0x1e, 0x15, 0x41, 0xfa, 0xd4, 0x0f, 0x3c, 0x98, 0xa5, 0x37, + 0x63, 0xfa, 0x17, 0x26, 0xb3, 0x30, 0x94, 0x30, 0xaf, 0xb8, 0x2b, 0xf5, + 0xf5, 0xe1, 0xa9, 0xaa, 0xed, 0x1f, 0x53, 0x60, 0xe8, 0xc2, 0xca, 0x95, + 0xec, 0xeb, 0xde, 0x73, 0xe9, 0xe7, 0x19, 0xd1, 0x16, 0xe1, 0x88, 0x9b, + 0x5f, 0x14, 0x1c, 0xd8, 0x84, 0x8a, 0x0e, 0xac, 0xe0, 0x0f, 0x24, 0xc6, + 0xbe, 0xf1, 0x05, 0x16, 0xf4, 0x44, 0x37, 0xec, 0x44, 0xff, 0x00, 0xc2, + 0x7f, 0xe5, 0x4b, 0x6e, 0x2e, 0xd3, 0xdf, 0x3a, 0x4c, 0xa9, 0xf1, 0x40, + 0x79, 0x1a, 0x01, 0xeb, 0x19, 0x3b, 0x15, 0xc1, 0x5d, 0xe4, 0xfa, 0xf0, + 0x95, 0x55, 0xc7, 0xe1, 0x02, 0x07, 0x38, 0x96, 0x2f, 0x91, 0x7d, 0x30, + 0x19, 0x68, 0xe9, 0x51, 0x5c, 0x0d, 0x47, 0x08, 0xaf, 0x74, 0x55, 0xab, + 0x7e, 0x53, 0x8a, 0x27, 0x62, 0x36, 0x1e, 0x7c, 0x13, 0xa0, 0x5d, 0xc0, + 0x94, 0x93, 0x3d, 0x21, 0x75, 0xe4, 0xbd, 0x47, 0xa8, 0x08, 0x20, 0x2f, + 0xac, 0xc5, 0x42, 0x73, 0xda, 0x15, 0x6c, 0x16, 0x5e, 0xa5, 0x35, 0x13, + 0x9c, 0x90, 0x4a, 0x87, 0xb4, 0xba, 0xa0, 0x2d, 0xc3, 0xd9, 0xd2, 0x7e, + 0xd3, 0xb7, 0x86, 0xe0, 0x92, 0xd0, 0x11, 0x61, 0xe6, 0xd3, 0xed, 0x00, + 0x1a, 0xc1, 0xa1, 0x56, 0xad, 0xa4, 0x40, 0xdb, 0x8f, 0x59, 0xd8, 0x1e, + 0x70, 0x50, 0x51, 0xe0, 0x96, 0x8d, 0x13, 0x38, 0x88, 0xe6, 0x84, 0x4c, + 0x87, 0x6b, 0x97, 0x48, 0x6b, 0x21, 0xf2, 0x85, 0x64, 0xbf, 0x39, 0x49, + 0xa5, 0x59, 0x98, 0x8a, 0xe5, 0xe2, 0xe3, 0x61, 0x5a, 0xbd, 0x91, 0x9d, + 0x47, 0x54, 0xde, 0x3a, 0x28, 0x2e, 0x20, 0xa3, 0x9e, 0x91, 0xb5, 0xe4, + 0xcc, 0x25, 0xbb, 0xa8, 0x45, 0x5b, 0xab, 0x9a, 0x7d, 0x89, 0xab, 0xf0, + 0x0e, 0xd8, 0x7c, 0x20, 0x8d, 0xa2, 0xf6, 0xc5, 0xbe, 0xce, 0x2e, 0xf0, + 0x9d, 0xf6, 0x62, 0x25, 0x85, 0x07, 0x77, 0x44, 0xd7, 0x05, 0xb0, 0xe0, + 0xed, 0x11, 0x3c, 0x98, 0x98, 0x04, 0xf8, 0x17, 0xb8, 0xe6, 0x06, 0x7e, + 0xa5, 0x4b, 0x43, 0xca, 0xb2, 0x24, 0x20, 0x64, 0xd7, 0xd9, 0x32, 0xb8, + 0xd1, 0xc1, 0xed, 0x77, 0x8a, 0xc3, 0x37, 0xdb, 0x98, 0x6b, 0x1a, 0x17, + 0xde, 0x88, 0x6d, 0x4a, 0x76, 0x96, 0x55, 0x90, 0x5f, 0x68, 0x30, 0xd9, + 0x86, 0xb1, 0x2a, 0xef, 0x64, 0x55, 0x8b, 0x13, 0x58, 0xe3, 0xde, 0x06, + 0xd9, 0xf2, 0xa6, 0x0f, 0x24, 0x03, 0x22, 0xf0, 0xf5, 0x8d, 0x9d, 0xca, + 0x4c, 0x04, 0xc7, 0xaa, 0xac, 0x7c, 0x97, 0xc2, 0x18, 0xf1, 0x45, 0x6c, + 0x27, 0xe4, 0x12, 0xc0, 0x42, 0x91, 0xe7, 0x97, 0xe6, 0xe5, 0x7a, 0x97, + 0xc6, 0x71, 0x0a, 0x2f, 0x15, 0x79, 0x83, 0x64, 0xa2, 0xce, 0xbe, 0xd7, + 0x2a, 0x41, 0x15, 0xe7, 0xa3, 0x50, 0x82, 0xd9, 0x65, 0xb6, 0xe6, 0x8a, + 0x73, 0x78, 0xb7, 0x53, 0x2b, 0x4a, 0x56, 0xdd, 0x40, 0x3b, 0x6c, 0x76, + 0x99, 0x02, 0x80, 0x94, 0x79, 0xa3, 0x0a, 0x98, 0x3b, 0x15, 0x82, 0x2a, + 0x98, 0xc6, 0x86, 0xe1, 0x5f, 0x73, 0x82, 0x08, 0xe7, 0x2e, 0x65, 0xae, + 0x1c, 0x37, 0x86, 0xe7, 0xb0, 0x65, 0xdc, 0x7a, 0x8c, 0x0d, 0xc7, 0x59, + 0x3d, 0xf5, 0x70, 0x9b, 0x2b, 0x2f, 0xe6, 0x00, 0xa0, 0xc0, 0x38, 0x0f, + 0x0a, 0x01, 0x12, 0xc7, 0x08, 0xce, 0x4f, 0x49, 0x73, 0x6c, 0xf5, 0x85, + 0x72, 0x16, 0x79, 0xc2, 0x93, 0xed, 0x26, 0x9a, 0x95, 0x68, 0xa3, 0x88, + 0xb1, 0x68, 0x59, 0x9c, 0xc7, 0x20, 0x80, 0xf3, 0x80, 0x16, 0x03, 0x91, + 0x78, 0x26, 0x56, 0x58, 0x1c, 0x75, 0x82, 0xd3, 0x2e, 0x59, 0x9f, 0x00, + 0x1e, 0xef, 0x45, 0xf9, 0x4b, 0xea, 0x3c, 0xdc, 0xc1, 0x55, 0x5b, 0x8d, + 0xaa, 0x8a, 0x37, 0x91, 0xa3, 0xb1, 0x0a, 0x47, 0xda, 0x1b, 0x44, 0xf2, + 0xdc, 0x1b, 0x52, 0x9b, 0xbb, 0x8c, 0x0a, 0x50, 0xdf, 0x91, 0x1b, 0x00, + 0xf4, 0x84, 0x40, 0xb4, 0x66, 0x11, 0x85, 0x81, 0x1c, 0xb5, 0x11, 0xdc, + 0xb3, 0xba, 0xc6, 0x1e, 0xfd, 0x2f, 0xa7, 0x8d, 0xf8, 0xea, 0x0d, 0x8d, + 0xd9, 0xea, 0xe2, 0x43, 0x88, 0x71, 0xc8, 0x63, 0xe5, 0xc7, 0x77, 0xc8, + 0x66, 0x08, 0x56, 0xee, 0xbf, 0xf6, 0x04, 0x44, 0x65, 0x75, 0x7f, 0xec, + 0xaa, 0xe1, 0x3a, 0xb7, 0xff, 0x00, 0x66, 0x41, 0x67, 0x85, 0xee, 0x55, + 0xa4, 0xb8, 0x52, 0xfd, 0xe7, 0x62, 0x0e, 0x41, 0xd6, 0x51, 0x5d, 0x20, + 0xa8, 0x92, 0xab, 0x89, 0xdb, 0xa4, 0x7d, 0xa9, 0x6a, 0xf9, 0x8d, 0x75, + 0x8f, 0x53, 0xef, 0xaa, 0x84, 0xd0, 0xf5, 0xd7, 0xdc, 0xa3, 0x05, 0x5e, + 0x7c, 0xfc, 0xca, 0x0b, 0xb7, 0xab, 0x3f, 0x32, 0xe6, 0xc5, 0xd2, 0x0e, + 0xfe, 0xe1, 0xb7, 0x35, 0xcc, 0xb6, 0x44, 0x5b, 0xbb, 0x09, 0xe6, 0xfd, + 0xaf, 0x1d, 0x4a, 0x6b, 0x5b, 0x77, 0x81, 0xe4, 0x83, 0x3b, 0x02, 0xf6, + 0xea, 0xc8, 0x7a, 0x6b, 0xd2, 0x5a, 0x1b, 0x79, 0x69, 0x94, 0x39, 0xb4, + 0x9a, 0xac, 0x4c, 0x99, 0x2b, 0xc9, 0x77, 0x72, 0xdb, 0x43, 0xce, 0x56, + 0x25, 0xa5, 0x07, 0x3b, 0x94, 0xa4, 0x10, 0x9a, 0xf0, 0x80, 0x37, 0x2e, + 0x6a, 0x8b, 0x50, 0x80, 0x86, 0x86, 0xe3, 0xb2, 0x9a, 0xc5, 0x48, 0x94, + 0x8c, 0x08, 0x8b, 0x54, 0x87, 0x10, 0x08, 0xc6, 0xe8, 0x72, 0xd6, 0x61, + 0x30, 0x37, 0x91, 0xd4, 0x4a, 0xa9, 0xd8, 0x04, 0xa1, 0x11, 0x65, 0x4c, + 0xc8, 0x55, 0x09, 0x46, 0x47, 0x7a, 0x5d, 0x35, 0x50, 0x22, 0x80, 0x69, + 0x6e, 0xf0, 0x14, 0xd8, 0x5d, 0x75, 0xff, 0x00, 0x20, 0xad, 0x12, 0x9e, + 0x87, 0x13, 0x02, 0x9b, 0x35, 0x67, 0x74, 0x23, 0x8b, 0xc6, 0x85, 0x6a, + 0xde, 0xc1, 0x6a, 0xf4, 0x27, 0x78, 0x20, 0xb4, 0x02, 0xde, 0xee, 0xde, + 0xef, 0xf0, 0x32, 0x74, 0x28, 0x30, 0x0b, 0xf2, 0xb5, 0xc0, 0x23, 0xd3, + 0x97, 0xb4, 0x33, 0x6b, 0x6a, 0xf7, 0x2b, 0x01, 0x03, 0x2c, 0x08, 0x4a, + 0xa6, 0x8c, 0xe0, 0x4a, 0x9a, 0x2b, 0x54, 0x54, 0x3e, 0x29, 0x72, 0x1b, + 0x64, 0x52, 0xc9, 0x66, 0x95, 0x33, 0x37, 0x8f, 0xfa, 0x15, 0x00, 0x95, + 0x0a, 0xd1, 0x58, 0x51, 0xd1, 0xb2, 0xd9, 0xb6, 0x05, 0x9e, 0xa8, 0x0a, + 0x18, 0x09, 0x80, 0xd5, 0xc3, 0xae, 0xc6, 0x13, 0x83, 0x00, 0x82, 0x02, + 0xc2, 0xc1, 0x58, 0xda, 0xa8, 0xd0, 0xc1, 0x45, 0xaa, 0xc7, 0x79, 0xed, + 0x05, 0x26, 0xc5, 0xad, 0x23, 0x80, 0xab, 0x8a, 0x71, 0x74, 0x0f, 0x2a, + 0xce, 0x75, 0xa9, 0x70, 0xd2, 0x9d, 0x20, 0x8d, 0x0d, 0x62, 0x2b, 0x2e, + 0x15, 0xed, 0xb8, 0x97, 0x68, 0x70, 0x21, 0x83, 0xcc, 0x3d, 0x5e, 0x9f, + 0xc2, 0x30, 0xc1, 0xb0, 0xca, 0xaf, 0x63, 0x07, 0x9d, 0x43, 0xee, 0x8f, + 0x63, 0xbf, 0xd4, 0x2a, 0xcb, 0x8c, 0xdb, 0x05, 0x39, 0x35, 0x7c, 0x10, + 0xb0, 0x6d, 0x9b, 0x25, 0xb6, 0x36, 0x42, 0x82, 0xd8, 0xc8, 0x48, 0x53, + 0xb4, 0x52, 0x94, 0x64, 0xce, 0xb5, 0x10, 0x05, 0x6b, 0xad, 0x4a, 0x85, + 0x67, 0x74, 0xb7, 0x9b, 0x6d, 0x65, 0x5f, 0xf1, 0x98, 0x6c, 0xc1, 0x8a, + 0x7f, 0x5b, 0xa2, 0x42, 0xf4, 0x04, 0x75, 0x67, 0x3a, 0x55, 0x79, 0x15, + 0x23, 0xf0, 0xa0, 0x02, 0x11, 0xb9, 0xd1, 0x30, 0x50, 0x4c, 0x2c, 0xda, + 0x30, 0xa6, 0x29, 0x65, 0xa3, 0x68, 0xf2, 0x31, 0xbb, 0x79, 0x9c, 0x0e, + 0x8e, 0x99, 0x8f, 0x9f, 0x8e, 0x21, 0x5c, 0xaa, 0xd0, 0x16, 0xaf, 0x01, + 0x00, 0xf5, 0xb6, 0xb4, 0xef, 0x6e, 0xe8, 0xbe, 0xbf, 0xc4, 0x80, 0xc1, + 0xd4, 0xc4, 0x79, 0xf7, 0x54, 0xf5, 0x26, 0xb2, 0x39, 0xf8, 0x86, 0x17, + 0x97, 0x35, 0x2d, 0x78, 0x15, 0xdc, 0x8b, 0x92, 0x6b, 0x39, 0xa6, 0x05, + 0x4a, 0x0a, 0x1e, 0x53, 0x5a, 0xfc, 0x79, 0x98, 0x08, 0xe0, 0xb1, 0x12, + 0xf0, 0x4a, 0x6d, 0x78, 0x48, 0xd4, 0x02, 0x19, 0xa6, 0x5e, 0x40, 0x9b, + 0x11, 0x80, 0x80, 0x40, 0x4c, 0x28, 0x2b, 0x39, 0x00, 0x65, 0x50, 0x26, + 0x33, 0x0b, 0x45, 0x9a, 0x2a, 0x55, 0x2a, 0xd5, 0x08, 0x42, 0x91, 0x3a, + 0xe8, 0x36, 0xde, 0x1a, 0x80, 0xe0, 0x68, 0x64, 0x65, 0xe9, 0xd7, 0xff, + 0x00, 0xb8, 0x44, 0x70, 0x48, 0x61, 0x75, 0xe6, 0xb3, 0x6b, 0x07, 0x04, + 0x1d, 0x3a, 0x4c, 0x0e, 0x6e, 0xb4, 0xcd, 0x4e, 0xa1, 0x75, 0xb4, 0x3d, + 0xd1, 0x4e, 0xc7, 0x57, 0xf1, 0x87, 0xc1, 0x65, 0x9a, 0xf5, 0x7a, 0xfc, + 0x2c, 0x3b, 0x25, 0xf6, 0xb6, 0x87, 0xbe, 0x7c, 0xa7, 0x2b, 0xc6, 0xae, + 0x58, 0x31, 0xae, 0x48, 0xb2, 0x68, 0xaa, 0x39, 0xcb, 0x21, 0x78, 0xf2, + 0x85, 0x8f, 0xf3, 0xf3, 0xcb, 0xae, 0x02, 0xca, 0x40, 0x39, 0x12, 0x98, + 0xb2, 0x04, 0xb9, 0x6f, 0x5b, 0xc2, 0xe0, 0xdc, 0x6d, 0x56, 0x92, 0x69, + 0xcc, 0x37, 0x6c, 0x0e, 0x1d, 0x96, 0x36, 0x15, 0xe7, 0xcc, 0xe4, 0x12, + 0x29, 0x3c, 0x1e, 0x2e, 0x88, 0x90, 0xb5, 0x53, 0xf0, 0x15, 0x35, 0x6e, + 0x35, 0xb2, 0x31, 0x4c, 0xbf, 0xaf, 0x37, 0xaa, 0xac, 0xdb, 0x71, 0x2d, + 0x90, 0x35, 0x65, 0xf3, 0x14, 0x69, 0x2b, 0x8b, 0x85, 0x5d, 0x30, 0x16, + 0x65, 0x37, 0xa6, 0x0e, 0xaa, 0x43, 0x16, 0x8e, 0xe0, 0xd4, 0x1e, 0xc7, + 0xf2, 0x1d, 0x97, 0x83, 0x3d, 0x9f, 0x21, 0xdb, 0xd2, 0x20, 0x0a, 0x4a, + 0xa4, 0xe7, 0xbc, 0x10, 0x07, 0x3b, 0x8f, 0x35, 0xca, 0x6c, 0x08, 0x85, + 0x2b, 0x01, 0x28, 0x02, 0x29, 0x04, 0x87, 0x72, 0x87, 0x14, 0x90, 0x20, + 0x57, 0x36, 0x80, 0x5a, 0x38, 0xb3, 0x82, 0x16, 0x01, 0x71, 0xbb, 0x32, + 0x40, 0xaf, 0x25, 0x8e, 0x7b, 0xa2, 0x99, 0xf8, 0xd5, 0x0a, 0xa5, 0x0b, + 0x4a, 0x14, 0xb3, 0x00, 0xa9, 0x1f, 0xba, 0xc2, 0x20, 0xd6, 0x97, 0x14, + 0x21, 0x6c, 0xae, 0x67, 0x97, 0xfc, 0xb6, 0x46, 0x50, 0x69, 0x08, 0x51, + 0x99, 0x8a, 0xac, 0x5e, 0xea, 0x2c, 0x1b, 0x7b, 0x6a, 0x3a, 0x31, 0x54, + 0x2b, 0x6f, 0xb3, 0xc9, 0xe7, 0xd1, 0xfc, 0xa5, 0x0d, 0xc3, 0xe5, 0x15, + 0x8e, 0xfc, 0x8f, 0x58, 0x85, 0x28, 0x33, 0xb4, 0xec, 0x4d, 0x27, 0x52, + 0x18, 0x75, 0x7e, 0x26, 0x06, 0x4c, 0x15, 0x1a, 0xd7, 0xd1, 0x11, 0x13, + 0x12, 0xa5, 0x2b, 0x56, 0x3a, 0x41, 0xac, 0x5a, 0xb2, 0x69, 0x40, 0x2b, + 0x4d, 0xf1, 0x09, 0x30, 0xd3, 0x03, 0x94, 0x06, 0x6c, 0x0e, 0x40, 0x45, + 0x64, 0x1c, 0x99, 0x49, 0x6c, 0x48, 0x55, 0x14, 0x0b, 0xa1, 0x12, 0x13, + 0xdd, 0xb8, 0x94, 0x22, 0x09, 0x73, 0x7b, 0x04, 0x07, 0x27, 0xca, 0x6f, + 0x75, 0xc5, 0xdc, 0x37, 0x17, 0x16, 0x83, 0x9e, 0xa0, 0xba, 0x69, 0xa3, + 0x1b, 0x48, 0x08, 0x00, 0x28, 0x02, 0x80, 0xfe, 0x6c, 0xdb, 0x98, 0xd3, + 0xd6, 0x25, 0xfa, 0xc7, 0x27, 0x8f, 0x93, 0x13, 0x25, 0xe6, 0xa7, 0x94, + 0x57, 0x44, 0xe4, 0x77, 0xdf, 0x8b, 0x22, 0xab, 0x1f, 0xe0, 0x11, 0x08, + 0xf2, 0xf0, 0xbf, 0x89, 0x4b, 0x95, 0x75, 0xb7, 0xf1, 0x1c, 0x02, 0xd7, + 0x5a, 0xfd, 0xea, 0x57, 0xa5, 0xeb, 0xef, 0x26, 0x88, 0xe4, 0x42, 0x9e, + 0xfc, 0x1b, 0xbf, 0xb1, 0x35, 0xd9, 0x70, 0x76, 0x9c, 0x1a, 0xea, 0x0e, + 0x77, 0x06, 0x89, 0x7c, 0x8a, 0xc7, 0xe7, 0x9f, 0xfb, 0xaf, 0xff, 0xd9 +}; +unsigned int background_R_jpg_len = 19068; diff --git a/core/embed/unix/background_R.jpg b/core/embed/unix/background_R.jpg new file mode 100644 index 000000000..e3c97cc1e Binary files /dev/null and b/core/embed/unix/background_R.jpg differ diff --git a/core/embed/unix/flash.c b/core/embed/unix/flash.c index c7d4691d9..c9a400b94 100644 --- a/core/embed/unix/flash.c +++ b/core/embed/unix/flash.c @@ -47,7 +47,7 @@ static const uint32_t FLASH_SECTOR_TABLE[FLASH_SECTOR_COUNT + 1] = { [9] = 0x080A0000, // - 0x080BFFFF | 128 KiB [10] = 0x080C0000, // - 0x080DFFFF | 128 KiB [11] = 0x080E0000, // - 0x080FFFFF | 128 KiB -#if defined TREZOR_MODEL_T +#if defined TREZOR_MODEL_T || defined TREZOR_MODEL_R [12] = 0x08100000, // - 0x08103FFF | 16 KiB [13] = 0x08104000, // - 0x08107FFF | 16 KiB [14] = 0x08108000, // - 0x0810BFFF | 16 KiB diff --git a/core/embed/unix/jpg_to_h.py b/core/embed/unix/jpg_to_h.py new file mode 100644 index 000000000..01e0449e0 --- /dev/null +++ b/core/embed/unix/jpg_to_h.py @@ -0,0 +1,34 @@ +""" +Creates a header file containing image data. +""" + +background_image = "background_R.jpg" + +h_file_name = "background_R.h" + +h_file_template = """\ +// clang-format off +unsigned char background_R_jpg[] = {content}; +unsigned int background_R_jpg_len = {length}; +""" + +with open(background_image, "rb") as f: + image_data = f.read() + +column_count = 12 + +content = "{{\n{image_bytes}\n}}" +image_bytes = " " # begin with indent +for index, byte in enumerate(image_data, start=1): + image_bytes += f"0x{byte:02x}," + # If at the end of line, include a newline with indent, otherwise just space + if index % column_count == 0: + image_bytes += "\n " + else: + image_bytes += " " + +# Get rid of trailing coma +image_bytes = image_bytes.rstrip(", \n") + +with open(h_file_name, "w") as f: + f.write(h_file_template.format(content=content.format(image_bytes=image_bytes), length=len(image_data))) diff --git a/core/embed/unix/touch.c b/core/embed/unix/touch.c index 0467b5df6..171e551de 100644 --- a/core/embed/unix/touch.c +++ b/core/embed/unix/touch.c @@ -102,7 +102,7 @@ uint32_t touch_read(void) { return 0; } -#elif defined TREZOR_MODEL_1 +#elif defined TREZOR_MODEL_1 || defined TREZOR_MODEL_R #include "button.h" diff --git a/core/src/all_modules.py b/core/src/all_modules.py index 163737621..f6c279f8c 100644 --- a/core/src/all_modules.py +++ b/core/src/all_modules.py @@ -186,6 +186,8 @@ trezor.ui.constants import trezor.ui.constants trezor.ui.constants.t1 import trezor.ui.constants.t1 +trezor.ui.constants.tr +import trezor.ui.constants.tr trezor.ui.constants.tt import trezor.ui.constants.tt trezor.ui.container @@ -202,6 +204,8 @@ trezor.ui.layouts.reset import trezor.ui.layouts.reset trezor.ui.layouts.t1 import trezor.ui.layouts.t1 +trezor.ui.layouts.tr +import trezor.ui.layouts.tr trezor.ui.layouts.tt import trezor.ui.layouts.tt trezor.ui.layouts.tt.altcoin diff --git a/core/src/apps/base.py b/core/src/apps/base.py index be523e587..a9954a0f3 100644 --- a/core/src/apps/base.py +++ b/core/src/apps/base.py @@ -55,7 +55,6 @@ def get_features() -> Features: Capability.Crypto, Capability.Shamir, Capability.ShamirGroups, - Capability.PassphraseEntry, ] else: f.capabilities = [ @@ -74,8 +73,12 @@ def get_features() -> Features: Capability.U2F, Capability.Shamir, Capability.ShamirGroups, - Capability.PassphraseEntry, ] + + # Other models are not capable of PassphraseEntry + if utils.MODEL in ("T",): + f.capabilities.append(Capability.PassphraseEntry) + f.sd_card_present = sdcard.is_present() f.initialized = storage.device.is_initialized() diff --git a/core/src/apps/homescreen/homescreen.py b/core/src/apps/homescreen/homescreen.py index 4dd46b74d..1520e939d 100644 --- a/core/src/apps/homescreen/homescreen.py +++ b/core/src/apps/homescreen/homescreen.py @@ -4,7 +4,7 @@ from micropython import const import storage import storage.cache import storage.device -from trezor import config, ui +from trezor import config, ui, utils from trezor.ui.loader import Loader, LoaderNeutral from apps.base import lock_device @@ -53,7 +53,10 @@ class Homescreen(HomescreenBase): # homescreen with shifted avatar and text on bottom ui.display.avatar(48, 48 - 10, self.get_image(), ui.WHITE, ui.BLACK) - ui.display.text_center(ui.WIDTH // 2, 220, self.label, ui.BOLD, ui.FG, ui.BG) + label_heights = {"1": 54, "R": 110, "T": 220} + ui.display.text_center( + ui.WIDTH // 2, label_heights[utils.MODEL], self.label, ui.BOLD, ui.FG, ui.BG + ) def on_touch_start(self, _x: int, _y: int) -> None: if self.loader.start_ms is not None: diff --git a/core/src/apps/workflow_handlers.py b/core/src/apps/workflow_handlers.py index a76849834..a5839084e 100644 --- a/core/src/apps/workflow_handlers.py +++ b/core/src/apps/workflow_handlers.py @@ -50,7 +50,7 @@ def find_message_handler_module(msg_type: int) -> str: elif msg_type == MessageType.GetNonce: return "apps.management.get_nonce" - if utils.MODEL == "T" and msg_type == MessageType.SdProtect: + if utils.MODEL in ("T",) and msg_type == MessageType.SdProtect: return "apps.management.sd_protect" # bitcoin diff --git a/core/src/storage/device.py b/core/src/storage/device.py index eaf489511..8f2a4532b 100644 --- a/core/src/storage/device.py +++ b/core/src/storage/device.py @@ -4,6 +4,7 @@ from ubinascii import hexlify import storage.cache from storage import common +from trezor import utils if TYPE_CHECKING: from trezor.enums import BackupType @@ -199,6 +200,9 @@ def get_passphrase_always_on_device() -> bool: - If DEVICE(1) => returns True, the check against b"\x01" in get_bool succeeds. - If HOST(2) => returns False, the check against b"\x01" in get_bool fails. """ + # Some models do not support passphrase input on device + if utils.MODEL in ("1", "R"): + return False return common.get_bool(_NAMESPACE, _PASSPHRASE_ALWAYS_ON_DEVICE) diff --git a/core/src/trezor/ui/__init__.py b/core/src/trezor/ui/__init__.py index 99a8f3ce2..b94b73490 100644 --- a/core/src/trezor/ui/__init__.py +++ b/core/src/trezor/ui/__init__.py @@ -49,7 +49,7 @@ else: # in both debug and production, emulator needs to draw the screen explicitly -if utils.EMULATOR or utils.MODEL == "1": +if utils.EMULATOR or utils.MODEL in ("1", "R"): loop.after_step_hook = refresh @@ -240,7 +240,7 @@ class Component: def __init__(self) -> None: self.repaint = True - if utils.MODEL == "T": + if utils.MODEL in ("T",): def dispatch(self, event: int, x: int, y: int) -> None: if event is RENDER: @@ -263,7 +263,7 @@ class Component: def on_touch_end(self, x: int, y: int) -> None: pass - elif utils.MODEL == "1": + elif utils.MODEL in ("1", "R"): def dispatch(self, event: int, x: int, y: int) -> None: if event is RENDER: @@ -374,7 +374,7 @@ class Layout(Component): Usually overridden to add another tasks to the list.""" return self.handle_input(), self.handle_rendering() - if utils.MODEL == "T": + if utils.MODEL in ("T",): def handle_input(self) -> Generator: """Task that is waiting for the user input.""" @@ -388,7 +388,7 @@ class Layout(Component): # way to get the lowest input-to-render latency. self.dispatch(RENDER, 0, 0) - elif utils.MODEL == "1": + elif utils.MODEL in ("1", "R"): def handle_input(self) -> Generator: """Task that is waiting for the user input.""" diff --git a/core/src/trezor/ui/constants/__init__.py b/core/src/trezor/ui/constants/__init__.py index ef1cf9b8e..55c1c66f1 100644 --- a/core/src/trezor/ui/constants/__init__.py +++ b/core/src/trezor/ui/constants/__init__.py @@ -1,8 +1,10 @@ from trezor import utils -if utils.MODEL == "1": +if utils.MODEL in ("1",): from .t1 import * # noqa: F401,F403 -elif utils.MODEL == "T": +elif utils.MODEL in ("R",): + from .tr import * # noqa: F401,F403 +elif utils.MODEL in ("T",): from .tt import * # noqa: F401,F403 else: raise ValueError("Unknown Trezor model") diff --git a/core/src/trezor/ui/constants/tr.py b/core/src/trezor/ui/constants/tr.py new file mode 100644 index 000000000..91be0728d --- /dev/null +++ b/core/src/trezor/ui/constants/tr.py @@ -0,0 +1,9 @@ +from micropython import const + +TEXT_HEADER_HEIGHT = const(13) +TEXT_LINE_HEIGHT = const(9) +TEXT_LINE_HEIGHT_HALF = const(4) +TEXT_MARGIN_LEFT = const(0) +TEXT_MAX_LINES = const(4) +TEXT_MAX_LINES_NO_HEADER = const(5) +PAGINATION_MARGIN_RIGHT = const(4) diff --git a/core/src/trezor/ui/layouts/__init__.py b/core/src/trezor/ui/layouts/__init__.py index 527666382..dca4f8dc8 100644 --- a/core/src/trezor/ui/layouts/__init__.py +++ b/core/src/trezor/ui/layouts/__init__.py @@ -10,9 +10,11 @@ except ImportError: # NOTE: using any import magic probably causes mypy not to check equivalence of # layout type signatures across models -if utils.MODEL == "1": +if utils.MODEL in ("1",): from .t1 import * # noqa: F401,F403 -elif utils.MODEL == "T": +elif utils.MODEL in ("R",): + from .tr import * # noqa: F401,F403 +elif utils.MODEL in ("T",): if not UI2: from .tt import * # noqa: F401,F403 else: diff --git a/core/src/trezor/ui/layouts/tr/__init__.py b/core/src/trezor/ui/layouts/tr/__init__.py new file mode 100644 index 000000000..6ce8e46f2 --- /dev/null +++ b/core/src/trezor/ui/layouts/tr/__init__.py @@ -0,0 +1,295 @@ +from typing import TYPE_CHECKING, Sequence + +from trezor import io, log, loop, ui, wire, workflow +from trezor.enums import ButtonRequestType + +import trezorui2 + +from ..common import button_request, interact + +if TYPE_CHECKING: + from typing import Any, NoReturn, Type + + ExceptionType = BaseException | Type[BaseException] + + +class _RustLayout(ui.Layout): + # pylint: disable=super-init-not-called + def __init__(self, layout: Any): + self.layout = layout + self.timer = loop.Timer() + self.layout.set_timer_fn(self.set_timer) + + def set_timer(self, token: int, deadline: int) -> None: + self.timer.schedule(deadline, token) + + def create_tasks(self) -> tuple[loop.Task, ...]: + return self.handle_input_and_rendering(), self.handle_timers() + + def handle_input_and_rendering(self) -> loop.Task: # type: ignore [awaitable-is-generator] + button = loop.wait(io.BUTTON) + ui.display.clear() + self.layout.paint() + while True: + # Using `yield` instead of `await` to avoid allocations. + event, button_num = yield button + workflow.idle_timer.touch() + msg = None + if event in (io.BUTTON_PRESSED, io.BUTTON_RELEASED): + msg = self.layout.button_event(event, button_num) + self.layout.paint() + if msg is not None: + raise ui.Result(msg) + + def handle_timers(self) -> loop.Task: # type: ignore [awaitable-is-generator] + while True: + # Using `yield` instead of `await` to avoid allocations. + token = yield self.timer + msg = self.layout.timer(token) + self.layout.paint() + if msg is not None: + raise ui.Result(msg) + + +async def confirm_action( + ctx: wire.GenericContext, + br_type: str, + title: str, + action: str | None = None, + description: str | None = None, + description_param: str | None = None, + description_param_font: int = ui.BOLD, + verb: str | bytes | None = "OK", + verb_cancel: str | bytes | None = "cancel", + hold: bool = False, + hold_danger: bool = False, + icon: str | None = None, + icon_color: int | None = None, + reverse: bool = False, + larger_vspace: bool = False, + exc: ExceptionType = wire.ActionCancelled, + br_code: ButtonRequestType = ButtonRequestType.Other, +) -> None: + if isinstance(verb, bytes) or isinstance(verb_cancel, bytes): + raise NotImplementedError + + if description is not None and description_param is not None: + if description_param_font != ui.BOLD: + log.error(__name__, "confirm_action description_param_font not implemented") + description = description.format(description_param) + + if hold: + log.error(__name__, "confirm_action hold not implemented") + + result = await interact( + ctx, + _RustLayout( + trezorui2.confirm_action( + title=title.upper(), + action=action, + description=description, + verb=verb, + verb_cancel=verb_cancel, + hold=hold, + reverse=reverse, + ) + ), + br_type, + br_code, + ) + if result is not trezorui2.CONFIRMED: + raise exc + + +async def confirm_text( + ctx: wire.GenericContext, + br_type: str, + title: str, + data: str, + description: str | None = None, + br_code: ButtonRequestType = ButtonRequestType.Other, + icon: str = ui.ICON_SEND, # TODO cleanup @ redesign + icon_color: int = ui.GREEN, # TODO cleanup @ redesign +) -> None: + result = await interact( + ctx, + _RustLayout( + trezorui2.confirm_text( + title=title.upper(), + data=data, + description=description, + ) + ), + br_type, + br_code, + ) + if result is not trezorui2.CONFIRMED: + raise wire.ActionCancelled + + +async def show_success( + ctx: wire.GenericContext, + br_type: str, + content: str, +) -> None: + result = await interact( + ctx, + _RustLayout( + trezorui2.confirm_text( + title="Success", + data=content, + description="", + ) + ), + br_type, + br_code=ButtonRequestType.Other, + ) + if result is not trezorui2.CONFIRMED: + raise wire.ActionCancelled + + +async def show_address( + ctx: wire.GenericContext, + address: str, + *, + case_sensitive: bool = True, + address_qr: str | None = None, + title: str = "Confirm address", + network: str | None = None, + multisig_index: int | None = None, + xpubs: Sequence[str] = (), + address_extra: str | None = None, + title_qr: str | None = None, +) -> None: + result = await interact( + ctx, + _RustLayout( + trezorui2.confirm_text( + title="ADDRESS", + data=address, + description="Confirm address", + ) + ), + "show_address", + ButtonRequestType.Address, + ) + if result is not trezorui2.CONFIRMED: + raise wire.ActionCancelled + + +async def confirm_output( + ctx: wire.GenericContext, + address: str, + amount: str, + font_amount: int = ui.NORMAL, # TODO cleanup @ redesign + title: str = "Confirm sending", + icon: str = ui.ICON_SEND, +) -> None: + result = await interact( + ctx, + _RustLayout( + trezorui2.confirm_text( + title=title, + data=f"Send {amount} to {address}?", + description="Confirm Output", + ) + ), + "confirm_output", + ButtonRequestType.Other, + ) + if result is not trezorui2.CONFIRMED: + raise wire.ActionCancelled + + +async def confirm_total( + ctx: wire.GenericContext, + total_amount: str, + fee_amount: str, + title: str = "Confirm transaction", + total_label: str = "Total amount:\n", + fee_label: str = "\nincluding fee:\n", + icon_color: int = ui.GREEN, + br_type: str = "confirm_total", + br_code: ButtonRequestType = ButtonRequestType.SignTx, +) -> None: + result = await interact( + ctx, + _RustLayout( + trezorui2.confirm_text( + title=title, + data=f"{total_label}{total_amount}\n{fee_label}{fee_amount}", + description="Confirm Output", + ) + ), + br_type, + br_code, + ) + if result is not trezorui2.CONFIRMED: + raise wire.ActionCancelled + + +async def confirm_blob( + ctx: wire.GenericContext, + br_type: str, + title: str, + data: bytes | str, + description: str | None = None, + hold: bool = False, + br_code: ButtonRequestType = ButtonRequestType.Other, + icon: str = ui.ICON_SEND, # TODO cleanup @ redesign + icon_color: int = ui.GREEN, # TODO cleanup @ redesign + ask_pagination: bool = False, +) -> None: + result = await interact( + ctx, + _RustLayout( + trezorui2.confirm_text( + title=title, + data=str(data), + description=description, + ) + ), + br_type, + br_code, + ) + if result is not trezorui2.CONFIRMED: + raise wire.ActionCancelled + + +def draw_simple_text(title: str, description: str = "") -> None: + log.error(__name__, "draw_simple_text not implemented") + + +async def request_pin_on_device( + ctx: wire.GenericContext, + prompt: str, + attempts_remaining: int | None, + allow_cancel: bool, +) -> str: + await button_request(ctx, "pin_device", code=ButtonRequestType.PinEntry) + + # TODO: this should not be callable on TR + return "1234" + + +async def show_error_and_raise( + ctx: wire.GenericContext, + br_type: str, + content: str, + header: str = "Error", + subheader: str | None = None, + button: str = "Close", + red: bool = False, + exc: ExceptionType = wire.ActionCancelled, +) -> NoReturn: + raise NotImplementedError + + +async def show_popup( + title: str, + description: str, + subtitle: str | None = None, + description_param: str = "", + timeout_ms: int = 3000, +) -> None: + raise NotImplementedError